nova-17.0.13/0000775000175000017500000000000013556316574012667 5ustar zuulzuul00000000000000nova-17.0.13/releasenotes/0000775000175000017500000000000013556316574015360 5ustar zuulzuul00000000000000nova-17.0.13/releasenotes/notes/0000775000175000017500000000000013556316574016510 5ustar zuulzuul00000000000000nova-17.0.13/releasenotes/notes/trim-default-sched-filters-e70de3bb4c7b1a1b.yaml0000664000175000017500000000100013556316250027117 0ustar zuulzuul00000000000000--- upgrade: - | Since we now use Placement to verify basic CPU/RAM/disk resources when using the FilterScheduler, the ``RamFilter`` and ``DiskFilter`` entries are being removed from the default value for the ``enabled_filters`` config option in the ``[filter_scheduler]`` group. If you are overriding this option, you probably should remove them from your version. If you are using CachingScheduler you may wish to enable these filters as we will not use Placement in that case. nova-17.0.13/releasenotes/notes/remove-deprecated-remap_vbd_dev-opt-22c1898f25b58280.yaml0000664000175000017500000000030513556316250030353 0ustar zuulzuul00000000000000--- upgrade: - | The following deprecated configuration options have been removed from the ``xenserver`` section of ``nova.conf``: - ``remap_vbd_dev`` - ``remap_vbd_dev_prefix`` nova-17.0.13/releasenotes/notes/deprecate_compute_stats_class-229abfcb8816bdbd.yaml0000664000175000017500000000053013556316250030107 0ustar zuulzuul00000000000000--- deprecations: - Deprecate ``compute_stats_class`` config option. This allowed loading an alternate implementation for collecting statistics for the local compute host. Deployments that felt the need to use this facility are encouraged to propose additions upstream so we can create a stable and supported interface here. nova-17.0.13/releasenotes/notes/quota-limits-classes-api-db-88e5d0d2426d2dba.yaml0000664000175000017500000000116413556316250027074 0ustar zuulzuul00000000000000--- upgrade: - | Quota limits and classes are being moved to the API database for Cells v2. In this release, the online data migrations will move any quota limits and classes you have in your main database to the API database, retaining all attributes. .. note:: Quota limits and classes can no longer be soft-deleted as the API database does not replicate the legacy soft-delete functionality from the main database. As such, deleted quota limits and classes are not migrated and the behavior users will experience will be the same as if a purge of deleted records was performed. nova-17.0.13/releasenotes/notes/remove-api-rate-limit-option-91a17e057081381a.yaml0000664000175000017500000000045713556316250026777 0ustar zuulzuul00000000000000--- other: - The ``api_rate_limit`` configuration option has been removed. The option was disabled by default back in the Havana release since it's effectively broken for more than one API worker. It has been removed because the legacy v2 API code that was using it has also been removed. nova-17.0.13/releasenotes/notes/bp-soft-reboot-poweroff-203e0f33e3b8042e.yaml0000664000175000017500000000043513556316250026174 0ustar zuulzuul00000000000000--- features: - Adds soft reboot support to Ironic virt driver. If hardware driver in Ironic doesn't support soft reboot, hard reboot is tried. This feature requires the Ironic service to support API version 1.27 or later. It also requires python-ironicclient >= 1.10.0. nova-17.0.13/releasenotes/notes/deprecate-compute-options-011c9a454182a8bf.yaml0000664000175000017500000000045013556316250026606 0ustar zuulzuul00000000000000--- deprecations: - | The config options ``multi_instance_display_name_template`` and ``null_kernel`` in the ``DEFAULT`` group are now deprecated and may be removed as early as the 16.0.0 release. These options are deprecated to keep API behaviour consistent across deployments.nova-17.0.13/releasenotes/notes/get-me-a-network-992eabc81b5e5347.yaml0000664000175000017500000000400513556316250024671 0ustar zuulzuul00000000000000--- features: - | The 2.37 microversion adds support for automatic allocation of network resources for a project when ``networks: auto`` is specified in a server create request. If the project does not have any networks available to it and the ``auto-allocated-topology`` API is available in the Neutron networking service, Nova will call that API to allocate resources for the project. There is some setup required in the deployment for the ``auto-allocated-topology`` API to work in Neutron. See the `Additional features`_ section of the OpenStack Networking Guide for more details for setting up this feature in Neutron. .. note:: The API does not default to 'auto'. However, python-novaclient will default to passing 'auto' for this microversion if no specific network values are provided to the CLI. .. note:: This feature is not available until all of the compute services in the deployment are running Newton code. This is to avoid sending a server create request to a Mitaka compute that can not understand a network ID of 'auto' or 'none'. If this is the case, the API will treat the request as if ``networks`` was not in the server create request body. Once all computes are upgraded to Newton, a restart of the nova-api service will be required to use this new feature. .. _Additional features: http://docs.openstack.org/networking-guide/intro-os-networking-features.html upgrade: - | The 2.37 microversion enforces the following: * ``networks`` is required in the server create request body for the API. Specifying ``networks: auto`` is similar to not requesting specific networks when creating a server before 2.37. * The ``uuid`` field in the ``networks`` object of a server create request is now required to be in UUID format, it cannot be a random string. More specifically, the API used to support a nic uuid with a "br-" prefix but that is a legacy artifact which is no longer supported. nova-17.0.13/releasenotes/notes/remove-deprecated-legacy_api-config-options-f3f096df3a03d956.yaml0000664000175000017500000000042113556316250032226 0ustar zuulzuul00000000000000--- upgrade: - The config options 'osapi_compute_ext_list' and 'osapi_compute_extension' were deprecated in mitaka. Hence these options were completely removed in newton, as v2 API is removed and v2.1 API doesn't provide the option of configuring extensions. nova-17.0.13/releasenotes/notes/vendordata-service-tokens-876505167395a56d.yaml0000664000175000017500000000137713556316250026414 0ustar zuulzuul00000000000000--- fixes: - | The nova metadata service will now pass a nove service token to the external vendordata server. These options can be configured using various Keystone-related options available in the ``vendordata_dynamic_auth`` group. A new service token has been created for this purpose. Previously, the requesting user's keystone token was passed through to the external vendordata server if available, otherwise no token is passed. This resolves issues with scenarios such as cloud-init's use of the metadata server on first boot to determine configuration information. Refer to the blueprints at http://specs.openstack.org/openstack/nova-specs/specs/ocata/approved/vendordata-reboot-ocata.html for more information. nova-17.0.13/releasenotes/notes/remove-deprecated-cinder-options-newton-fc3dce6856101ef8.yaml0000664000175000017500000000031613556316250031524 0ustar zuulzuul00000000000000--- upgrade: - | The following deprecated configuration options have been removed from the ``cinder`` section of nova.conf: - ca_certificates_file - api_insecure - http_timeout././@LongLink0000000000000000000000000000014600000000000011216 Lustar 00000000000000nova-17.0.13/releasenotes/notes/remove-on-shared-storage-flag-from-evacuate-api-76a3d58616479fe9.yamlnova-17.0.13/releasenotes/notes/remove-on-shared-storage-flag-from-evacuate-api-76a3d58616479fe9.yam0000664000175000017500000000054113556316250032342 0ustar zuulzuul00000000000000--- features: - Remove ``onSharedStorage`` parameter from server's evacuate action in microversion 2.14. Nova will automatically detect if the instance is on shared storage. Also adminPass is removed from the response body which makes the response body empty. The user can get the password with the server's os-server-password action. nova-17.0.13/releasenotes/notes/allocation-candidates-traits-1adf079ed0c6563c.yaml0000664000175000017500000000102413556316250027402 0ustar zuulzuul00000000000000--- features: - | Add ``required`` query parameter to the ``GET /allocation_candidates`` API in new placement microversion 1.17. The parameter accepts a list of traits separated by ``,``, which is used to further limit the list of allocation requests to resource providers that have the capacity to fulfill the requested resources AND *collectively* have all of the required traits associated with them. In the same microversion, the provider summary includes the traits associated with each provider. nova-17.0.13/releasenotes/notes/deprecate-ironic-host-manager-bacb8d7b1e318e37.yaml0000664000175000017500000000122513556316250027536 0ustar zuulzuul00000000000000--- deprecations: - | The `IronicHostManager` is now deprecated along with the ``[scheduler]/host_manager`` option of ``ironic_host_manager``. As of the 16.0.0 Pike release, the ``ExactRamFilter``, ``ExactCoreFilter``, and ``ExactDiskFilter`` scheduler filters are all deprecated along with the ``[scheduler]/use_baremetal_filters`` and ``[scheduler]/baremental_enabled_filters`` options. Deployments should migrate to using resource classes with baremetal flavors as described in the ironic install guide: https://docs.openstack.org/ironic/latest/install/configure-nova-flavors.html#scheduling-based-on-resource-classes nova-17.0.13/releasenotes/notes/deprecate-nova-manage-network-commands-212726e67bffdfc4.yaml0000664000175000017500000000062013556316251031275 0ustar zuulzuul00000000000000--- deprecations: - | The following nova-manage commands are deprecated for removal in the Nova 15.0.0 Ocata release: * nova-maange account scrub * nova-manage fixed * * nova-manage floating * * nova-manage network * * nova-manage project scrub * nova-manage vpn * These commands only work with nova-network which is itself deprecated in favor of Neutron. nova-17.0.13/releasenotes/notes/quota-show-detail-access-d6f37282d288fa33.yaml0000664000175000017500000000026413556316250026341 0ustar zuulzuul00000000000000--- upgrade: - The default policy for os_compute_api:os-quota-sets:detail has been changed to permit listing of quotas with details to project users, not only to admins. nova-17.0.13/releasenotes/notes/apply-limits-to-qemu-img-8813f7a333ebdf69.yaml0000664000175000017500000000044113556316250026375 0ustar zuulzuul00000000000000--- security: - The qemu-img tool now has resource limits applied which prevent it from using more than 1GB of address space or more than 2 seconds of CPU time. This provides protection against denial of service attacks from maliciously crafted or corrupted disk images. nova-17.0.13/releasenotes/notes/remove-unused-config-opt-fake-call-37a56f6ec15f7d90.yaml0000664000175000017500000000026713556316250030275 0ustar zuulzuul00000000000000other: - The network configuration option 'fake_call' has been removed. It hasn't been used for several cycles, and has no effect on any code, so there should be no impact. ././@LongLink0000000000000000000000000000015400000000000011215 Lustar 00000000000000nova-17.0.13/releasenotes/notes/queens-compute-requires-placement-1.14-for-nested-rps-8abb49df061b167e.yamlnova-17.0.13/releasenotes/notes/queens-compute-requires-placement-1.14-for-nested-rps-8abb49df061b160000664000175000017500000000043313556316250032467 0ustar zuulzuul00000000000000--- upgrade: - | The ``nova-compute`` service requires Placement API version 1.14 at a minimum to support `nested resource providers`_. .. _nested resource providers: http://specs.openstack.org/openstack/nova-specs/specs/queens/approved/nested-resource-providers.html nova-17.0.13/releasenotes/notes/bug-volume-attach-policy-1635358-671ce4d4ee8c211b.yaml0000664000175000017500000000051013556316250027326 0ustar zuulzuul00000000000000--- upgrade: - | The os-volume_attachments APIs no longer check ``os_compute_api:os-volumes`` policy. They do still check ``os_compute_api:os-volumes-attachments`` policy rules. Deployers who have customized policy should confirm that their settings for os-volume_attachments policy checks are sufficient. nova-17.0.13/releasenotes/notes/remove-libvirt-migration-flags-config-8bf909c1295cc53f.yaml0000664000175000017500000000074513556316250031112 0ustar zuulzuul00000000000000--- upgrade: - The 'live_migration_flag' and 'block_migration_flag' options in libvirt section that were deprecated in Mitaka have been completely removed in Newton, because nova automatically sets correct migration flags. New config options has been added to retain possibility to turn tunnelling, auto-converge and post-copy on/off, respectively named `live_migration_tunnelled`, `live_migration_permit_auto_converge` and `live_migration_permit_post_copy`. nova-17.0.13/releasenotes/notes/rm_import_object_ns-5344a390b0af465e.yaml0000664000175000017500000000113313556316250025546 0ustar zuulzuul00000000000000--- upgrade: - Only virt drivers in the nova.virt namespace may be loaded. This has been the case according to nova docs for several releases, but a quirk in some library code meant that loading things outside the namespace continued to work unintentionally. That has been fixed, which means "compute_driver = nova.virt.foo" is invalid (and now enforced as such), and should be "compute_driver = foo" instead. other: - Virt drivers are no longer loaded with the import_object_ns function, which means that only virt drivers in the nova.virt namespace can be loaded. nova-17.0.13/releasenotes/notes/bp-instance-tags-3acb227083320796.yaml0000664000175000017500000000022213556316250024505 0ustar zuulzuul00000000000000--- features: - Microversion v2.26 allows to create/update/delete simple string tags. They can be used for filtering servers by these tags. nova-17.0.13/releasenotes/notes/rename-libvirt-num-iscsi-scan-tries-opt-8329385f84d2518e.yaml0000664000175000017500000000046713556316250031103 0ustar zuulzuul00000000000000--- upgrade: - | ``libvirt.num_iscsi_scan_tries`` option has been renamed to ``libvirt.num_volume_scan_tries``, as the previous name was suggesting that this option only concerns devices connected using iSCSI interface. It also concerns devices connected using fibrechannel, scaleio and disco.nova-17.0.13/releasenotes/notes/add-pci-weigher-4a7e0a7b8e908975.yaml0000664000175000017500000000040313556316250024464 0ustar zuulzuul00000000000000--- features: - | Add ``PCIWeigher`` weigher. This can be used to ensure non-PCI instances don't occupy resources on hosts with PCI devices. This can be configured using the ``[filter_scheduler] pci_weight_multiplier`` configuration option. nova-17.0.13/releasenotes/notes/placement-last-modified-cf43aece4c54fc97.yaml0000664000175000017500000000102413556316250026513 0ustar zuulzuul00000000000000--- features: - | Throughout the Placement API, in microversion 1.15, 'last-modified' headers have been added to GET responses and those PUT and POST responses that have bodies. The value is either the actual last modified time of the most recently modified associated database entity or the current time if there is no direct mapping to the database. In addition, 'cache-control: no-cache' headers are added where the 'last-modified' header has been added to prevent inadvertent caching of resources. ././@LongLink0000000000000000000000000000015600000000000011217 Lustar 00000000000000nova-17.0.13/releasenotes/notes/set_migration_status_to_error_on_live-migration_failure-d1f6f29ceafdd598.yamlnova-17.0.13/releasenotes/notes/set_migration_status_to_error_on_live-migration_failure-d1f6f29ceafd0000664000175000017500000000075513556316250034066 0ustar zuulzuul00000000000000--- fixes: - To make live-migration consistent with resize, confirm-resize and revert-resize operations, the migration status is changed to 'error' instead of 'failed' in case of live-migration failure. With this change the periodic task '_cleanup_incomplete_migrations' is now able to remove orphaned instance files from compute nodes in case of live-migration failures. There is no impact since migration status 'error' and 'failed' refer to the same failed state. nova-17.0.13/releasenotes/notes/rm-sched-host-mgr-class-load-2a86749a38f0688d.yaml0000664000175000017500000000057213556316250026745 0ustar zuulzuul00000000000000--- upgrade: - The ability to load a custom scheduler host manager via the ``scheduler_host_manager`` configuration option was deprecated in the 13.0.0 Mitaka release and is now removed in the 14.0.0 Newton release. Host managers can only be selected by name and not by full class path. The allowed values are ``host_manager`` and ``ironic_host_manager``. nova-17.0.13/releasenotes/notes/force-live-migration-be5a10cd9c8eb981.yaml0000664000175000017500000000015613556316250025766 0ustar zuulzuul00000000000000--- features: - A new REST API to force live migration to complete has been added in microversion 2.22. nova-17.0.13/releasenotes/notes/imageRef-as-uuid-only-0164c04206a42683.yaml0000664000175000017500000000124513556316250025327 0ustar zuulzuul00000000000000--- upgrade: - imageRef input to the REST API is now restricted to be UUID or an empty string only. imageRef input while create, rebuild and rescue server etc must be a valid UUID now. Previously, a random image ref url containing image UUID was accepted. But now all the reference of imageRef must be a valid UUID (with below exception) otherwise API will return 400. Exception- In case boot server from volume. Previously empty string was allowed in imageRef and which is ok in case of boot from volume. Nova will keep the same behavior and allow empty string in case of boot from volume only and 400 in all other case. nova-17.0.13/releasenotes/notes/bp-soft-reboot-poweroff-6215d216a6aedafa.yaml0000664000175000017500000000031413556316250026411 0ustar zuulzuul00000000000000--- features: - Adds soft power off support to Ironic virt driver. This feature requires the Ironic service to support API version 1.27 or later. It also requires python-ironicclient >= 1.10.0. nova-17.0.13/releasenotes/notes/sriov-pf-passthrough-neutron-port-vlan-7d19df7ac6e2730a.yaml0000664000175000017500000000130313556316250031401 0ustar zuulzuul00000000000000--- features: - | VLAN tags associated with instance network interfaces are now exposed via the metadata API and instance config drives and can be consumed by the instance. This is an extension of the device tagging mechanism added in past releases. This is useful for instances utilizing SR-IOV physical functions (PFs). The VLAN configuration for the guest's virtual interfaces associated with these devices cannot be configured inside the guest OS from the host, but nonetheless must be configured with the VLAN tags of the device to ensure packet delivery. This feature makes this possible. .. note:: VLAN tags are currently only supported via the Libvirt driver. nova-17.0.13/releasenotes/notes/automatic-live-migration-completion-post-copy-a7a3a986961c93d8.yaml0000664000175000017500000000076713556316250032565 0ustar zuulzuul00000000000000--- features: - New configuration option live_migration_permit_post_copy has been added to start live migrations in a way that allows nova to switch an on-going live migration to post-copy mode. Requires libvirt>=1.3.3 and QEMU>=2.5.0. If post copy is permitted and version requirements are met it also changes behaviour of 'live_migration_force_complete', so that it switches on-going live migration to post-copy mode instead of pausing an instance during live migration. nova-17.0.13/releasenotes/notes/libvirt_ppc64le_hugepage_support-b9fd39cf20c8e91d.yaml0000664000175000017500000000010213556316250030414 0ustar zuulzuul00000000000000--- features: - Added hugepage support for POWER architectures. nova-17.0.13/releasenotes/notes/bp-hyper-v-remotefx-1474ef1a082ad1b0.yaml0000664000175000017500000000357413556316250025410 0ustar zuulzuul00000000000000--- features: - | Hyper-V RemoteFX feature. Microsoft RemoteFX enhances the visual experience in RDP connections, including providing access to virtualized instances of a physical GPU to multiple guests running on Hyper-V. In order to use RemoteFX in Hyper-V 2012 R2, one or more DirectX 11 capable display adapters must be present and the RDS-Virtualization server feature must be installed. To enable this feature, the following config option must be set in the Hyper-V compute node's 'nova.conf' file:: [hyperv] enable_remotefx = True To create instances with RemoteFX capabilities, the following flavor extra specs must be used: **os:resolution**. Guest VM screen resolution size. Acceptable values:: 1024x768, 1280x1024, 1600x1200, 1920x1200, 2560x1600, 3840x2160 '3840x2160' is only available on Windows / Hyper-V Server 2016. **os:monitors**. Guest VM number of monitors. Acceptable values:: [1, 4] - Windows / Hyper-V Server 2012 R2 [1, 8] - Windows / Hyper-V Server 2016 **os:vram**. Guest VM VRAM amount. Only available on Windows / Hyper-V Server 2016. Acceptable values:: 64, 128, 256, 512, 1024 There are a few considerations that needs to be kept in mind: * Not all guests support RemoteFX capabilities. * Windows / Hyper-V Server 2012 R2 does not support Generation 2 VMs with RemoteFX capabilities. * Per resolution, there is a maximum amount of monitors that can be added. The limits are as follows: For Windows / Hyper-V Server 2012 R2:: 1024x768: 4 1280x1024: 4 1600x1200: 3 1920x1200: 2 2560x1600: 1 For Windows / Hyper-V Server 2016:: 1024x768: 8 1280x1024: 8 1600x1200: 4 1920x1200: 4 2560x1600: 2 3840x2160: 1 nova-17.0.13/releasenotes/notes/soft-affinity-for-server-group-f45e191bd8cdbd15.yaml0000664000175000017500000000050713556316250027746 0ustar zuulzuul00000000000000--- features: - Two new policies soft-affinity and soft-anti-affinity have been implemented for the server-group feature of Nova. This means that POST /v2.1/{tenant_id}/os-server-groups API resource now accepts 'soft-affinity' and 'soft-anti-affinity' as value of the 'policies' key of the request body. nova-17.0.13/releasenotes/notes/remove-cert-becab1c042700f80.yaml0000664000175000017500000000026013556316250024062 0ustar zuulzuul00000000000000--- upgrade: - The deprecated nova cert daemon is now removed. The /os-certificates API endpoint that depended on this service now returns 410 whenever it is called. nova-17.0.13/releasenotes/notes/nova-status-upgrade-check-8190e6061680ff1f.yaml0000664000175000017500000000112013556316250026423 0ustar zuulzuul00000000000000--- features: - | A new ``nova-status upgrade check`` CLI is provided for checking the readiness of a deployment when preparing to upgrade to the latest release. The tool is written to handle both fresh installs and upgrades from an earlier release, for example upgrading from the 14.0.3 Newton release. There can be multiple checks performed with varying degrees of success. More details on the command and how to interpret results are in the `nova-status man page`_. .. _nova-status man page: http://docs.openstack.org/developer/nova/man/nova-status.html nova-17.0.13/releasenotes/notes/remove_deprecated_cells_driver_conf_opt-dbb80137b3632500.yaml0000664000175000017500000000030713556316250031521 0ustar zuulzuul00000000000000--- upgrade: - | ``driver`` configuration option has been removed from ``cells`` group. There is only one possible driver for cells (CellsRPCDriver), which makes this option redundant. nova-17.0.13/releasenotes/notes/rm-conductor-local-apis-f121afaee99f6fa4.yaml0000664000175000017500000000047413556316250026470 0ustar zuulzuul00000000000000--- upgrade: - | The ''use_local'' option, which made it possible to perform nova-conductor operations locally, has been removed. This legacy mode was introduced to bridge a gap during the transition to the conductor service. It no longer represents a reasonable alternative for deployers. nova-17.0.13/releasenotes/notes/scheduler-limit-placement-650fc06be2a08781.yaml0000664000175000017500000000056113556316250026556 0ustar zuulzuul00000000000000--- fixes: - | The FilterScheduler now limits the number of results in the query it makes to placement to avoid situations where every compute node in a large deployment is returned. This is configurable with the new ``[scheduler]/max_placement_results`` configuration option, which defaults to 1000, a sane starting value for any size deployment.nova-17.0.13/releasenotes/notes/remove-bittorent-in-xenapi-driver-7b03447b8a1760fe.yaml0000664000175000017500000000023713556316250030205 0ustar zuulzuul00000000000000--- other: - | With XenAPI driver, we have deprecated bittorrent since '15.0.0', so we decide to remove all bittorrent related files and unit tests. nova-17.0.13/releasenotes/notes/notification-transformation-ocata-ec42281e9df6019c.yaml0000664000175000017500000000111013556316250030414 0ustar zuulzuul00000000000000--- features: - | The following legacy notifications have been transformed to a new versioned payload: * aggregate.create * aggregate.delete * instance.create * instance.finish_resize * instance.power_off * instance.resume * instance.shelve_offload * instance.shutdown * instance.snapshot * instance.unpause * instance.unshelve Every versioned notification has a sample file stored under doc/notification_samples directory. Consult http://docs.openstack.org/developer/nova/notifications.html for more information. nova-17.0.13/releasenotes/notes/deprecate_ert-449b16638c008457.yaml0000664000175000017500000000062113556316250024113 0ustar zuulzuul00000000000000--- upgrade: - | The Extensible Resource Tracker is deprecated and will be removed in the 14.0.0 release. If you use this functionality and have custom resources that are managed by the Extensible Resource Tracker, please contact the Nova development team by posting to the openstack-dev mailing list. There is no future planned support for the tracking of custom resources. nova-17.0.13/releasenotes/notes/libvirt_hardware_policy_from_libosinfo-19e261851d1ad93a.yaml0000664000175000017500000000102613556316250031512 0ustar zuulzuul00000000000000--- features: - For the libvirt driver, by default hardware properties will be retrieved from the Glance image and if such haven't been provided, it will use a libosinfo database to get those values. If users want to force a specific guest OS ID for the image, they can now use a new glance image property ``os_distro`` (eg. ``--property os_distro=fedora21``). In order to use the libosinfo database, you need to separately install the related native package provided for your operating system distribution. nova-17.0.13/releasenotes/notes/request-spec-api-db-b9cc6e0624d563c5.yaml0000664000175000017500000000162313556316250025356 0ustar zuulzuul00000000000000--- upgrade: - | The commit with change-id Idd4bbbe8eea68b9e538fa1567efd304e9115a02a requires that the nova_api database is setup and Nova is configured to use it. Instructions on doing that are provided below. Nova now requires that two databases are available and configured. The existing nova database needs no changes, but a new nova_api database needs to be setup. It is configured and managed very similarly to the nova database. A new connection string configuration option is available in the api_database group. An example:: [api_database] connection = mysql+pymysql://user:secret@127.0.0.1/nova_api?charset=utf8 And a new nova-manage command has been added to manage db migrations for this database. "nova-manage api_db sync" and "nova-manage api_db version" are available and function like the parallel "nova-manage db ..." version. nova-17.0.13/releasenotes/notes/new-oslo-reports-option-619c3dbf3ae320fb.yaml0000664000175000017500000000001713556316250026473 0ustar zuulzuul00000000000000--- prelude: > nova-17.0.13/releasenotes/notes/deprecate-nova-manage-commands-9de1abbc94e06d16.yaml0000664000175000017500000000416413556316250027665 0ustar zuulzuul00000000000000--- upgrade: - | The ``nova-manage project quota_usage_refresh`` and its alias ``nova-manage account quota_usage_refresh`` commands have been renamed ``nova-manage quota refresh``. Aliases are provided but these are marked as deprecated and will be removed in the next release of nova. deprecations: - | A number of `nova-manage` commands have been deprecated. The commands, along with the reasons for their deprecation, are listed below: `account` This allows for the creation, deletion, update and listing of user and project quotas. Operators should use the equivalent resources in the `REST API`__ instead. The ``quota_usage_refresh`` sub-command has been renamed to ``nova-manage quota refresh``. This new command should be used instead. `agent` This allows for the creation, deletion, update and listing of "agent builds". Operators should use the equivalent resources in the `REST API`__ instead. `host` This allows for the listing of compute hosts. Operators should use the equivalent resources in the `REST API`__ instead. `log` This allows for the filtering of errors from nova's logs and extraction of all logs from syslog. This command has not been actively maintained in a long time, is not tested, and can be achieved using `journalctl` or by simply grepping through ``/var/log``. It will simply be removed. `project` This is an alias for `account` and has been deprecated for the same reasons. `shell` This starts the Python interactive interpreter. It is a clone of the same functionality found in Django's `django-manage` command. This command hasn't been actively maintained in a long time and is not tested. It will simply be removed. These commands will be removed in their entirety during the Queens cycle. __ https://developer.openstack.org/api-ref/compute/#quota-sets-os-quota-sets __ https://developer.openstack.org/api-ref/compute/#guest-agents-os-agents __ https://developer.openstack.org/api-ref/compute/#compute-services-os-services nova-17.0.13/releasenotes/notes/neutron-mtu-6a7edd9e396107d7.yaml0000664000175000017500000000121213556316250024107 0ustar zuulzuul00000000000000--- deprecations: - The ``network_device_mtu`` option in Nova is deprecated for removal since network MTU should be specified when creating the network with nova-network. With Neutron networks, the MTU value comes from the ``segment_mtu`` configuration option in Neutron. other: - The Neutron network MTU value is now used when plugging virtual interfaces in nova-compute. If the value is 0, which is the default value for the ``segment_mtu`` configuration option in Neutron before Mitaka, then the (deprecated) ``network_device_mtu`` configuration option in Nova is used, which defaults to not setting an MTU value. nova-17.0.13/releasenotes/notes/api-database-now-required-6245f39d36885d1c.yaml0000664000175000017500000000032113556316250026403 0ustar zuulzuul00000000000000--- upgrade: - During an upgrade to Mitaka, operators must create and initialize a database for the API service. Configure this in [api_database]/connection, and then run ``nova-manage api_db sync`` nova-17.0.13/releasenotes/notes/ironic-via-ksa-deffd3dac48ff4eb.yaml0000664000175000017500000000067213556316250025070 0ustar zuulzuul00000000000000--- upgrade: - | Nova now uses keystoneauth1 configuration to set up communication with the baremetal service. Use keystoneauth1 loading parameters for auth, Session, and Adapter setup in the ``[ironic]`` conf section. This includes using ``endpoint_override`` in favor of ``api_endpoint``. deprecations: - | Configuration option ``[ironic]api_endpoint`` is deprecated in favor of ``[ironic]endpoint_override``. nova-17.0.13/releasenotes/notes/volume-attach-versioned-notifications-ef5afde3a5f6a749.yaml0000664000175000017500000000047313556316250031452 0ustar zuulzuul00000000000000--- features: - | The following volume attach and volume detach versioned notifications have been added to the nova-compute service: * instance.volume_attach.start * instance.volume_attach.end * instance.volume_attach.error * instance.volume_detach.start * instance.volume_detach.end nova-17.0.13/releasenotes/notes/add-neutron-floating_pool-option-cba402c2de407b78.yaml0000664000175000017500000000047013556316250030227 0ustar zuulzuul00000000000000--- upgrade: - | A ``default_floating_pool`` configuration option has been added in the ``[neutron]`` group. The existing ``default_floating_pool`` option in the ``[DEFAULT]`` group is retained and should be used by nova-network users. Neutron users meanwhile should migrate to the new option. nova-17.0.13/releasenotes/notes/bp-service-hyper-uuid-in-api-cc7b9f21cc458e1b.yaml0000664000175000017500000000072313556316250027245 0ustar zuulzuul00000000000000--- features: - | Microversion 2.53 changes service and hypervisor IDs to UUIDs to ensure uniqueness across cells. Prior to this, ID collisions were possible in multi-cell deployments. See the `REST API Version History`_ and `Compute API reference`_ for details. .. _REST API Version History: https://docs.openstack.org/developer/nova/api_microversion_history.html .. _Compute API reference: https://developer.openstack.org/api-ref/compute/nova-17.0.13/releasenotes/notes/known-issue-on-api-1efca45440136f3e.yaml0000664000175000017500000000064213556316250025236 0ustar zuulzuul00000000000000--- issues: - When using Neutron extension 'port_security' and booting an instance on a network with 'port_security_enabled=False' the Nova API response says there is a 'default' security group attached to the instance which is incorrect. However when listing security groups for the instance there are none listed, which is correct. The API response will be fixed separately with a microversion.nova-17.0.13/releasenotes/notes/deprecate_hooks-6f6d60ac206a6da6.yaml0000664000175000017500000000050013556316250025004 0ustar zuulzuul00000000000000--- deprecations: - Deprecate the use of nova.hooks. This facility used to let arbitrary out of tree code be executed around certain internal actions, but is unsuitable for having a well maintained API. Anyone using this facility should bring forward their use cases in the Newton cycle as nova-specs. nova-17.0.13/releasenotes/notes/remove-config-serial-listen-2660be1c0863ea5a.yaml0000664000175000017500000000024313556316250027076 0ustar zuulzuul00000000000000--- upgrade: - | The previously deprecated config option ``listen```of the group ``serial_console`` has been removed, as it was never used in the code. nova-17.0.13/releasenotes/notes/v21enable-8454d6eca3ec604f.yaml0000664000175000017500000000032113556316250023436 0ustar zuulzuul00000000000000--- upgrade: - The deprecated osapi_v21.enabled config option has been removed. This previously allowed you a way to disable the v2.1 API. That is no longer something we support, v2.1 is mandatory. nova-17.0.13/releasenotes/notes/privsep-queens-rootwrap-adds-907aa1bc8e3eb2ca.yaml0000664000175000017500000000130313556316250027554 0ustar zuulzuul00000000000000--- upgrade: - | A sys-admin privsep daemon has been added and needs to be included in your rootwrap configuration. - | Calls to mount in the virt disk api no longer ignore the value of stderr. - | The nova-idmapshift binary has been removed. This has been replaced by internal functionality using privsep. - | The following commands are no longer required to be listed in your rootwrap configuration: blkid; blockdev; cat; chown; cryptsetup; dd; ebrctl; ifc_ctl; kpartx; losetup; lvcreate; lvremove; lvs; mkdir; mm-ctl; mount; nova-idmapshift; parted; ploop; prl_disk_tool; qemu-nbd; readlink; shred; tee; touch; umount; vgs; vrouter-port-control; and xend. nova-17.0.13/releasenotes/notes/cell-id-db-sync-nova-manage-8504b54dd115a2e9.yaml0000664000175000017500000000064313556316250026554 0ustar zuulzuul00000000000000--- upgrade: - | 'nova-manage db sync' can now sync the cell0 database. The cell0 db is required to store instances that cannot be scheduled to any cell. Before the 'db sync' command is called, the cell0 database must be created by the operator and a cell mapping for cell0 must be created using 'nova-manage cell_v2 map_cell0'. This command only needs to be called when upgrading to CellsV2. nova-17.0.13/releasenotes/notes/bug-1716786-7c3fc081f29f4dac.yaml0000664000175000017500000000021213556316250023353 0ustar zuulzuul00000000000000--- deprecations: - | The ``idle_timeout`` option in the ``api_database`` group has been renamed to ``connection_recycle_time``.nova-17.0.13/releasenotes/notes/bp-ephemeral-disk-ploop-a9b3af1f36ae42ed.yaml0000664000175000017500000000012413556316250026430 0ustar zuulzuul00000000000000--- features: - Virtuozzo hypervisor now supports ephemeral disks for containers. nova-17.0.13/releasenotes/notes/pci-passthrough-whitelist-regex-support-5004c5db4fbe09c8.yaml0000664000175000017500000000033613556316250031632 0ustar zuulzuul00000000000000--- features: - Enhance pci.passthrough_whitelist to support regular expression syntax. The 'address' field can be regular expression syntax. The old pci.passthrough_whitelist, glob sytnax, is still valid config.nova-17.0.13/releasenotes/notes/ironic_api_version_opt_deprecated-50c9b0486e78fe6e.yaml0000664000175000017500000000111113556316250030534 0ustar zuulzuul00000000000000--- deprecations: - The configuration option ``api_version`` in the ``ironic`` group was marked as deprecated and will be removed in the future. The only possible value for that configuration was "1" (because Ironic only has 1 API version) and the Ironic team came to an agreement that setting the API version via configuration option should not be supported anymore. As the Ironic driver in Nova requests the Ironic v1.8 API, that means that Nova 13.0.0 ("Mitaka") requires Ironic 4.0.0 ("Liberty") or newer if you want to use the Ironic driver. nova-17.0.13/releasenotes/notes/deprecate-nova-network-opts-b6da6af4497ef4ca.yaml0000664000175000017500000000212013556316250027367 0ustar zuulzuul00000000000000--- deprecations: - | The following options, found in ``DEFAULT``, were only used for configuring nova-network and are, like nova-network itself, now deprecated. - ``flat_network_bridge`` - ``flat_network_dns`` - ``flat_interface`` - ``vlan_interface`` - ``vlan_start`` - ``num_networks`` - ``vpn_ip`` - ``vpn_start`` - ``network_size`` - ``fixed_range_v6`` - ``gateway`` - ``gateway_v6`` - ``cnt_vpn_clients`` - ``fixed_ip_disassociate_timeout`` - ``create_unique_mac_address_attempts`` - ``teardown_unused_network_gateway`` - ``l3_lib`` - ``network_driver`` - ``multi_host`` - ``force_dhcp_release`` - ``update_dns_entries`` - ``dns_update_periodic_interval`` - ``dhcp_domain`` - ``use_neutron`` - ``auto_assign_floating_ip`` - ``floating_ip_dns_manager`` - ``instance_dns_manager`` - ``instance_dns_domain`` The following options, found in ``quota``, are also deprecated. - ``floating_ips`` - ``fixed_ips`` - ``security_groups`` - ``security_group_rules`` nova-17.0.13/releasenotes/notes/xenserver-glance-plugin-1.3-11c3b70b8c928263.yaml0000664000175000017500000000036013556316250026476 0ustar zuulzuul00000000000000--- upgrade: - The glance xenserver plugin has been bumped to version 1.3 which includes new interfaces for referencing glance servers by url. All dom0 will need to be upgraded with this plugin before upgrading the nova code. nova-17.0.13/releasenotes/notes/deprecate_nova_network-093e937dcdb7fc57.yaml0000664000175000017500000000051713556316250026430 0ustar zuulzuul00000000000000--- deprecations: - Nova network is now deprecated. Based on the results of the current OpenStack User Survey less than 10% of our users remain on Nova network. This is the signal that it is time migrate to Neutron. No new features will be added to Nova network, and bugs will only be fixed on a case by case basis. nova-17.0.13/releasenotes/notes/deprecate-TypeAffinityFilter-465c47a6b2a7bd77.yaml0000664000175000017500000000066513556316250027326 0ustar zuulzuul00000000000000--- deprecations: - | TypeAffinityFilter is deprecated for removal in the 17.0.0 Queens release. There is no replacement planned for this filter. It is fundamentally flawed in that it relies on the ``flavors.id`` primary key and if a flavor "changed", i.e. deleted and re-created with new values, it will result in this filter thinking it is a different flavor, thus breaking the usefulness of this filter. ././@LongLink0000000000000000000000000000015700000000000011220 Lustar 00000000000000nova-17.0.13/releasenotes/notes/libvirt-change-default-value-of-live-migration-tunnelled-4248cf76df605fdf.yamlnova-17.0.13/releasenotes/notes/libvirt-change-default-value-of-live-migration-tunnelled-4248cf76df60000664000175000017500000000060713556316250033062 0ustar zuulzuul00000000000000--- upgrade: - Default value of live_migration_tunnelled config option in libvirt section has been changed to False. After upgrading nova to Newton all live migrations will be non-tunnelled unless live_migration_tunnelled is explicitly set to True. It means that, by default, the migration traffic will not go through libvirt and therefore will no longer be encrypted. nova-17.0.13/releasenotes/notes/rm-deprecated-nova-manage-cmds-ocata-b3-813d3bcecfb939e2.yaml0000664000175000017500000000033313556316250031161 0ustar zuulzuul00000000000000--- upgrade: - | The following deprecated nova-manage commands have been removed: * ``nova-manage account scrub`` * ``nova-manage fixed *`` * ``nova-manage project scrub`` * ``nova-manage vpn *`` nova-17.0.13/releasenotes/notes/13.0.0-cve-bugs-fe43ef267a82f304.yaml0000664000175000017500000000144613556316250024041 0ustar zuulzuul00000000000000--- security: - | [OSSA 2016-001] Nova host data leak through snapshot (CVE-2015-7548) * `Bug 1524274 `_ * `Announcement `__ [OSSA 2016-002] Xen connection password leak in logs via StorageError (CVE-2015-8749) * `Bug 1516765 `_ * `Announcement `__ [OSSA 2016-007] Host data leak during resize/migrate for raw-backed instances (CVE-2016-2140) * `Bug 1548450 `_ * `Announcement `__nova-17.0.13/releasenotes/notes/policy-sample-defaults-changed-b5eea1daeb305251.yaml0000664000175000017500000000127613556316250027677 0ustar zuulzuul00000000000000--- other: - The sample policy file shipped with Nova contained many policies set to ""(allow all) which was not the proper default for many of those checks. It was also a source of confusion as some people thought "" meant to use the default rule. These empty policies have been updated to be explicit in all cases. Many of them were changed to match the default rule of "admin_or_owner" which is a more restrictive policy check but does not change the restrictiveness of the API calls overall because there are similar checks in the database already. This does not affect any existing deployment, just the sample file included for use by new deployments. nova-17.0.13/releasenotes/notes/vmware_integration_bridge-249567087da5ecb2.yaml0000664000175000017500000000031613556316250026746 0ustar zuulzuul00000000000000--- upgrade: - For backward compatible support the setting ``CONF.vmware.integration_bridge`` needs to be set when using the Neutron NSX|MH plugin. The default value has been set to ``None``. nova-17.0.13/releasenotes/notes/live-migration-vz-3236af37a522e411.yaml0000664000175000017500000000020513556316250025004 0ustar zuulzuul00000000000000--- features: - Live migration is supported for both Virtuozzo containers and virtual machines when using virt_type=parallels. nova-17.0.13/releasenotes/notes/removing-pci-parent_addr-migration-f7dfa2b441cf30e8.yaml0000664000175000017500000000052413556316251030607 0ustar zuulzuul00000000000000--- upgrade: - In mitaka, an online migration was added to migrate older SRIOV parent device information from extra_info to a new column. Since two releases have gone out with that migration, it is removed in Ocata and operators are expetected to have run it as part of either of the previous two releases, if applicable. nova-17.0.13/releasenotes/notes/reworked-nova-manage-db-commands-b958b0a41a4004a6.yaml0000664000175000017500000000124413556316250027674 0ustar zuulzuul00000000000000--- upgrade: - | The ``nova-manage api_db sync`` and ``nova-manage db sync`` commands previously took an optional ``--version`` parameter to determine which version to sync to. For example:: $ nova-manage api_db sync --version some-version This is now an optional positional argument. For example:: $ nova-manage api_db sync some-version Aliases are provided but these are marked as deprecated and will be removed in the next release of nova. deprecations: - | The ``--version`` parameters of the ``nova-manage api_db sync`` and ``nova-manage db sync`` commands has been deprecated in favor of positional arguments. nova-17.0.13/releasenotes/notes/drbd-libvirt-volume-driver-d27c79e62c0beb64.yaml0000664000175000017500000000041213556316250027042 0ustar zuulzuul00000000000000--- features: - | The libvirt compute driver now supports attaching volumes of type "drbd". See the `DRBD documentation`_ for more information. .. _DRBD documentation: http://docs.linbit.com/docs/users-guide-9.0/p-apps/#s-openstack-transport-protocol nova-17.0.13/releasenotes/notes/bp-symmetric-allocations-6ff7b270c32dcb7d.yaml0000664000175000017500000000110613556316250026657 0ustar zuulzuul00000000000000--- features: - | The 1.12 version of the placement API changes handling of the `PUT /allocations/{consumer_uuid}` request to use a dict-based structure for the JSON request body to make it more aligned with the response body of `GET /allocations/{consumer_uuid}`. Because `PUT` requires `user_id` and `project_id` in the request body, these fields are added to the `GET` response. In addition, the response body for ``GET /allocation_candidates`` is updated so the allocations in the ``allocation_requests`` object work with the new `PUT` format. nova-17.0.13/releasenotes/notes/libvirt-cpu-model-extra-flags-ssbd-fdbda6e4da495915.yaml0000664000175000017500000000077513556316251030462 0ustar zuulzuul00000000000000--- security: - | The 'SSBD' and 'VIRT-SSBD' cpu flags have been added to the list of available choices for the ``[libvirt]/cpu_model_extra_flags`` config option. These are important for proper mitigation of the Spectre 3a and 4 CVEs. Note that the use of either of these flags require updated packages below nova, including libvirt, qemu (specifically >=2.9.0 for virt-ssbd), linux, and system firmware. For more information see https://www.us-cert.gov/ncas/alerts/TA18-141Anova-17.0.13/releasenotes/notes/virtual-device-role-tagging-ec0c36226a3f2e4d.yaml0000664000175000017500000000264413556316250027155 0ustar zuulzuul00000000000000--- features: - | The 2.32 microversion adds support for virtual device role tagging. Device role tagging is an answer to the question 'Which device is which, inside the guest?' When booting an instance, an optional arbitrary 'tag' parameter can be set on virtual network interfaces and/or block device mappings. This tag is exposed to the instance through the metadata API and on the config drive. Each tagged virtual network interface is listed along with information about the virtual hardware, such as bus type (ex: PCI), bus address (ex: 0000:00:02.0), and MAC address. For tagged block devices, the exposed hardware metadata includes the bus (ex: SCSI), bus address (ex: 1:0:2:0) and serial number. The 2.32 microversion also adds the 2016-06-30 version to the metadata API. Starting with 2016-06-30, the metadata contains a 'devices' sections which lists any devices that are tagged as described in the previous paragraph, along with their hardware metadata. issues: - When using virtual device role tagging, the metadata on the config drive lags behind the metadata obtained from the metadata API. For example, if a tagged virtual network interface is detached from the instance, its tag remains in the metadata on the config drive. This is due to the nature of the config drive, which, once written, cannot be easily updated by Nova. nova-17.0.13/releasenotes/notes/pike-fw-driver-noop-699d411b790035d4.yaml0000664000175000017500000000035713556316250025175 0ustar zuulzuul00000000000000--- upgrade: - | The default value of the ``[DEFAULT]/firewall_driver`` configuration option has been changed to ``nova.virt.firewall.NoopFirewallDriver`` to coincide with the default value of ``[DEFAULT]/use_neutron=True``. ././@LongLink0000000000000000000000000000015000000000000011211 Lustar 00000000000000nova-17.0.13/releasenotes/notes/automatic-live-migration-completion-auto-converge-3ddd3a40eaf3ef5b.yamlnova-17.0.13/releasenotes/notes/automatic-live-migration-completion-auto-converge-3ddd3a40eaf3ef5b.y0000664000175000017500000000044113556316250033232 0ustar zuulzuul00000000000000--- features: - New configuration option live_migration_permit_auto_converge has been added to allow hypervisor to throttle down CPU of an instance during live migration in case of a slow progress due to high ratio of dirty pages. Requires libvirt>=1.2.3 and QEMU>=1.6.0.nova-17.0.13/releasenotes/notes/resource_providers_scheduler_db_filters-16b2ed3da00c51dd.yaml0000664000175000017500000000201713556316250032074 0ustar zuulzuul00000000000000--- features: - nova-scheduler process is now calling the placement API in order to get a list of valid destinations before calling the filters. That works only if all your compute nodes are fully upgraded to Ocata. If some nodes are not upgraded, the scheduler will still lookup from the DB instead which is less performant. upgrade: - Since the Placement service is now mandatory in Ocata, you need to deploy it and amend your compute node configuration with correct placement instructions before restarting nova-compute or the compute node will refuse to start. - If by Newton (14.0.0), you don't use any of the CoreFilter, RamFilter or DiskFilter, then please modify all your compute node's configuration by amending either ``cpu_allocation_ratio`` (if you don't use CoreFilter) or ``ram_allocation_ratio`` (if you don't use RamFilter) or ``disk_allocation_ratio`` (if you don't use DiskFilter) by putting a 9999.0 value for the ratio before upgrading the nova-scheduler to Ocata. nova-17.0.13/releasenotes/notes/list-invalid-status-af07af378728bc57.yaml0000664000175000017500000000062013556316250025527 0ustar zuulzuul00000000000000--- fixes: - Corrected response for the case where an invalid status value is passed as a filter to the list servers API call. As there are sufficient statuses defined already, any invalid status should not be accepted. As of microversion 2.38, the API will return 400 HTTPBadRequest if an invalid status is passed to list servers API for both admin as well as non admin user. nova-17.0.13/releasenotes/notes/switch-to-oslo-cache-7114a0ab2dea52df.yaml0000664000175000017500000000057713556316250025663 0ustar zuulzuul00000000000000--- prelude: > deprecations: - Option ``memcached_servers`` is deprecated in Mitaka. Operators should use oslo.cache configuration instead. Specifically ``enabled`` option under [cache] section should be set to True, the ``backend`` option to ``oslo_cache.memcache_pool`` and the location(s) of the memcached servers should be in [cache]/memcache_servers option. nova-17.0.13/releasenotes/notes/bug-1732976-doubled-allocations-rebuild-23e4d3b06eb4f43f.yaml0000664000175000017500000000146113556316250030640 0ustar zuulzuul00000000000000--- security: - | `OSSA-2017-006`_: Nova FilterScheduler doubles resource allocations during rebuild with new image (CVE-2017-17051) By repeatedly rebuilding an instance with new images, an authenticated user may consume untracked resources on a hypervisor host leading to a denial of service. This regression was introduced with the fix for `OSSA-2017-005`_ (CVE-2017-16239), however, only Nova stable/pike or later deployments with that fix applied and relying on the default FilterScheduler are affected. The fix is in the `nova-api` and `nova-scheduler` services. .. note:: The fix for errata in `OSSA-2017-005`_ (CVE-2017-16239) will need to be applied in addition to this fix. .. _OSSA-2017-006: https://security.openstack.org/ossa/OSSA-2017-006.html nova-17.0.13/releasenotes/notes/upgrade_rootwrap_compute_filters-428ca239f2e4e63d.yaml0000664000175000017500000000124213556316250030452 0ustar zuulzuul00000000000000--- upgrade: - Upgrade the rootwrap configuration for the compute service, so that patches requiring new rootwrap configuration can be tested with grenade. fixes: - In a race condition if base image is deleted by ImageCacheManager while imagebackend is copying the image to instance path, then the instance goes in to error state. In this case when libvirt has changed the base file ownership to libvirt-qemu while imagebackend is copying the image, then we get permission denied error on updating the file access time using os.utime. Fixed this issue by updating the base file access time with root user privileges using 'touch' command.nova-17.0.13/releasenotes/notes/bug-1599034-35ca4dea612d8fdb.yaml0000664000175000017500000000060213556316250023422 0ustar zuulzuul00000000000000--- upgrade: - | The type of following config options have been changed from string to URI. They are checked whether they follow the URI format or not and its scheme. - ``api_endpoint`` in the ``ironic`` group - ``mksproxy_base_url`` in the ``mks`` group - ``html5_proxy_base_url`` in the ``rdp`` group - ``serial_port_proxy_uri`` in the ``vmware`` group nova-17.0.13/releasenotes/notes/filters_use_reqspec-9f92b9c0ead76093.yaml0000664000175000017500000000066713556316250025672 0ustar zuulzuul00000000000000--- upgrade: - | Filters internal interface changed using now the RequestSpec NovaObject instead of an old filter_properties dictionary. In case you run out-of-tree filters, you need to modify the host_passes() method to accept a new RequestSpec object and modify the filter internals to use that new object. You can see other in-tree filters for getting the logic or ask for help in #openstack-nova IRC channel. nova-17.0.13/releasenotes/notes/vendordata-reboot-hard-failure-42beeb1044680a50.yaml0000664000175000017500000000044113556316250027460 0ustar zuulzuul00000000000000--- features: - | The vendordata metadata system now supports a hard failure mode. This can be enabled using the ``api.vendordata_dynamic_failure_fatal`` configuration option. When enabled, an instance will fail to start if the instance cannot fetch dynamic vendordata. nova-17.0.13/releasenotes/notes/bp-deprecate-image-meta-proxy-api-7f21e1e6a94944ee.yaml0000664000175000017500000000061413556316250030100 0ustar zuulzuul00000000000000--- deprecations: - Implemented microversion v2.39 that deprecates `image-metadata` proxy API, removes image metadata quota checks for 'createImage' and 'createBackup' actions. After this version Glance configuration option `image_property_quota` should be used to control the quota of image metadatas. Also, removes the `maxImageMeta` field from `os-limits` API response. nova-17.0.13/releasenotes/notes/deprecate_db_driver-91c76ca8011d663c.yaml0000664000175000017500000000053113556316250025471 0ustar zuulzuul00000000000000--- deprecations: - Deprecate the ``db_driver`` config option. Previously this let you replace our SQLAlchemy database layer with your own. This approach is deprecated. Deployments that felt the need to use the facility are encourage to work with upstream Nova to address db driver concerns in the main SQLAlchemy code paths. nova-17.0.13/releasenotes/notes/deprecate-monkey-patch-5cd654924694b9ae.yaml0000664000175000017500000000113513556316250026067 0ustar zuulzuul00000000000000--- deprecations: - | The following configuration options are deprecated for removal: - ``[DEFAULT]/monkey_patch`` - ``[DEFAULT]/monkey_patch_modules`` Monkey patching nova is not tested, not supported, and is a barrier to interoperability. If you have code which relies on monkey patching decorators, for example, for notifications, please propose those changes upstream. As a result, the following option is also deprecated for removal since it is only used when specified with ``[DEFAULT]/monkey_patch_modules``: - ``[notifications]/default_publisher_id`` nova-17.0.13/releasenotes/notes/xentool-destory-cached-image-c9d39a733002ca7d.yaml0000664000175000017500000000060213556316250027235 0ustar zuulzuul00000000000000--- fixes: - | For the XenAPI driver, in order to delete cached images based on when they were created, a new ``--keep-days DAYS`` option is added to the ``destroy_cached_images`` script to delete cached images which were created at least ``DAYS`` days ago. By default, all unused cached images will be deleted when the script is run if they have ``cached_time``. nova-17.0.13/releasenotes/notes/modern-microversions-964ae9a17df8c4b3.yaml0000664000175000017500000000042113556316250026052 0ustar zuulzuul00000000000000--- features: - > Microversions may now (with microversion 2.27) be requested with the "OpenStack-API-Version: compute 2.27" header, in alignment with OpenStack-wide standards. The original format, "X-OpenStack-Nova-API-Version: 2.27", may still be used. nova-17.0.13/releasenotes/notes/os-brick-lock-dir-c659089679aac50f.yaml0000664000175000017500000000102313556316250024745 0ustar zuulzuul00000000000000--- issues: - When running Nova Compute and Cinder Volume or Backup services on the same host they must use a shared lock directory to avoid rare race conditions that can cause volume operation failures (primarily attach/detach of volumes). This is done by setting the "lock_path" to the same directory in the "oslo_concurrency" section of nova.conf and cinder.conf. This issue affects all previous releases utilizing os-brick and shared operations on hosts between Nova Compute and Cinder data services. nova-17.0.13/releasenotes/notes/enable_new_services-compute-only-0abf5d3cbec40eb2.yaml0000664000175000017500000000066513556316250030521 0ustar zuulzuul00000000000000--- other: - | The ``[DEFAULT]/enable_new_services`` configuration option will now only be used to auto-disable new nova-compute services. Other services like nova-conductor, nova-scheduler and nova-osapi_compute will not be auto-disabled since disabling them does nothing functionally, and starting in Pike the ``PUT /os-services/enable`` REST API will not be able to find non-compute services to enable them. nova-17.0.13/releasenotes/notes/mitaka_prelude-c8b955ed78a5ad65.yaml0000664000175000017500000000150413556316250024664 0ustar zuulzuul00000000000000--- prelude: | Nova 13.0.0 release is including a lot of new features and bugfixes. It can be extremely hard to mention all the changes we introduced during that release but we beg you to read at least the upgrade section which describes the required modifications that you need to do for upgrading your cloud from 12.0.0 (Liberty) to 13.0.0 (Mitaka). That said, a few major changes are worth to notice here. This is not an exhaustive list of things to notice, rather just important things you need to know : - Latest API microversion supported for Mitaka is v2.25 - Nova now requires a second database (called 'API DB'). - A new nova-manage script allows you to perform all online DB migrations once you upgrade your cloud - EC2 API support is fully removed. nova-17.0.13/releasenotes/notes/pike-multicell-api-ae4fbebd711165ce.yaml0000664000175000017500000000216013556316250025500 0ustar zuulzuul00000000000000--- upgrade: - | Parts of the compute REST API are now relying on getting information from cells via their mappings in the ``nova_api`` database. This is to support multiple cells. For example, when listing compute hosts or services, all cells will be iterated in the API and the results will be returned. This change can have impacts, however, to deployment tooling that relies on parts of the API, like listing compute hosts, `before` the compute hosts are mapped using the ``nova-manage cell_v2 discover_hosts`` command. If you were using ``nova hypervisor-list`` after starting new nova-compute services to tell when to run ``nova-manage cell_v2 discover_hosts``, you should change your tooling to instead use one of the following commands:: nova service-list --binary nova-compute [--host ] openstack compute service list --service nova-compute [--host ] As a reminder, there is also the ``[scheduler]/discover_hosts_in_cells_interval`` configuration option which can be used to automatically discover hosts from the nova-scheduler service.nova-17.0.13/releasenotes/notes/deprecate-cellsv1-592b3c3612a9dfa5.yaml0000664000175000017500000000037413556316250025105 0ustar zuulzuul00000000000000--- deprecations: - | Cells v1, which includes the ``[cells]`` configuration options and ``nova-cells`` service, is deprecated in favor of Cells v2. For information on Cells v2, see: https://docs.openstack.org/nova/latest/user/cells.html nova-17.0.13/releasenotes/notes/remove_deprecated_cert_topic_conf_opt-6402aeca8629da95.yaml0000664000175000017500000000013313556316250031356 0ustar zuulzuul00000000000000--- upgrade: - | The deprecated ``cert_topic`` configuration option has been removed.nova-17.0.13/releasenotes/notes/add-new-fields-to-InstancePaylod-bc5ef2ecfed880a2.yaml0000664000175000017500000000055213556316250030221 0ustar zuulzuul00000000000000features: - | The fields ``locked`` and ``display_description`` have been added to InstancePayload. Versioned notifications for instance actions will include these fields. A few examples of versioned notifications that use InstancePayload: * ``instance.create`` * ``instance.delete`` * ``instance.resize`` * ``instance.pause``nova-17.0.13/releasenotes/notes/bp-virtuozzo-rescue-support-a0f69357a93e5e92.yaml0000664000175000017500000000013013556316250027216 0ustar zuulzuul00000000000000--- features: - Virtuozzo instances with ploop disks now support the rescue operation nova-17.0.13/releasenotes/notes/bp-hyperv-use-os-brick-bf576a5bc97f0ea2.yaml0000664000175000017500000000057013556316250026162 0ustar zuulzuul00000000000000--- features: - | The Hyper-V driver now uses os-brick for volume related operations, introducing the following new features: - Attaching volumes over fibre channel on a passthrough basis. - Improved iSCSI MPIO support, by connecting to multiple iSCSI targets/portals when available and allowing using a predefined list of initiator HBAs. nova-17.0.13/releasenotes/notes/share-pci-between-numa-nodes-0bd206eeca4ebcde.yaml0000664000175000017500000000121213556316250027505 0ustar zuulzuul00000000000000--- features: - | Added support for PCI device NUMA affinity policies. These allow you to configure how strict your NUMA affinity should be on a per-device basis or, more specifically, per device alias. These are configured as part of the ``[pci]alias`` configuration option(s). There are three policies supported: - ``required`` (must-have) - ``legacy`` (must-have-if-available) (default) - ``preferred`` (nice-to-have) In all cases, strict NUMA affinity is provided if possible. The key difference between the policies is how much NUMA affinity one is willing to forsake before failing to schedule. nova-17.0.13/releasenotes/notes/flavor-api-policy-granularity-f563d621c615fd64.yaml0000664000175000017500000000072413556316250027423 0ustar zuulzuul00000000000000--- features: - | Add granularity to the ``os_compute_api:os-flavor-manage`` policy with the addition of distinct actions for create and delete: - ``os_compute_api:os-flavor-manage:create`` - ``os_compute_api:os-flavor-manage:delete`` To address backwards compatibility, the new rules added to the flavor_manage.py policy file, default to the existing rule, ``os_compute_api:os-flavor-manage``, if it is set to a non-default value. nova-17.0.13/releasenotes/notes/disable-live-migration-with-numa-bc710a1bcde25957.yaml0000664000175000017500000000250013556316250030104 0ustar zuulzuul00000000000000--- upgrade: - | Live migration of instances with NUMA topologies is now disabled by default when using the libvirt driver. This includes live migration of instances with CPU pinning or hugepages. CPU pinning and huge page information for such instances is not currently re-calculated, as noted in `bug #1289064`_. This means that if instances were already present on the destination host, the migrated instance could be placed on the same dedicated cores as these instances or use hugepages allocated for another instance. Alternately, if the host platforms were not homogeneous, the instance could be assigned to non-existent cores or be inadvertently split across host NUMA nodes. The `long term solution`_ to these issues is to recalculate the XML on the destination node. When this work is completed, the restriction on live migration with NUMA topologies will be lifted. For operators that are aware of the issues and are able to manually work around them, the ``[workarounds] enable_numa_live_migration`` option can be used to allow the broken behavior. For more information, refer to `bug #1289064`_. .. _bug #1289064: https://bugs.launchpad.net/nova/+bug/1289064 .. _long term solution: https://blueprints.launchpad.net/nova/+spec/numa-aware-live-migration nova-17.0.13/releasenotes/notes/instance-actions-read-deleted-instances-18bbb327924b66c7.yaml0000664000175000017500000000060613556316250031270 0ustar zuulzuul00000000000000--- features: - The os-instance-actions methods now read actions from deleted instances. This means that 'GET /v2.1/{tenant-id}/servers/{server-id}/os-instance-actions' and 'GET /v2.1/{tenant-id}/servers/{server-id}/os-instance-actions/{req-id}' will return instance-action items even if the instance corresponding to '{server-id}' has been deleted. nova-17.0.13/releasenotes/notes/cells-single-migration-command-0e98d66e31e02a50.yaml0000664000175000017500000000215113556316250027477 0ustar zuulzuul00000000000000--- upgrade: - A new nova-manage command has been added which will upgrade a deployment to cells v2. Running the command will setup a single cell containing the existing hosts and instances. No data or instances will be moved during this operation, but new data will be added to the nova_api database. New instances booted after this point will be placed into the cell. Please note that this does not mean that cells v2 is fully functional at this time, but this is a significant part of the effort to get there. The new command is "nova-manage cell_v2 simple_cell_setup --transport_url " where transport_url is the connection information for the current message queue used by Nova. Operators must create a new database for cell0 before running `cell_v2 simple_cell_setup`. The simple cell setup command expects the name of the cell0 database to be `
_cell0` as it will create a cell mapping for cell0 based on the main database connection, sync the cell0 database, and associate existing hosts and instances with the single cell. nova-17.0.13/releasenotes/notes/scheduler-placement-allocation-candidates-a6221e1819ea1c2d.yaml0000664000175000017500000000060713556316250031733 0ustar zuulzuul00000000000000--- upgrade: - | The scheduler now requests allocation candidates from the Placement service during scheduling. The allocation candidates information was introduced in the Placement API 1.10 microversion, so you should upgrade the placement service before the Nova scheduler service so that the scheduler can take advantage of the allocation candidate information. nova-17.0.13/releasenotes/notes/use-neutron-when-list-instances-by-ip-6682018bf88b6b0e.yaml0000664000175000017500000000031413556316250030723 0ustar zuulzuul00000000000000--- features: - When ``IP address substring filtering`` extension is available in Neutron, Nova will proxy the instance list with ``ip`` or ``ip6`` filter to Neutron for better performance. nova-17.0.13/releasenotes/notes/bug-1707256-shared-storage-placement-5f221e124500b999.yaml0000664000175000017500000000111313556316250027634 0ustar zuulzuul00000000000000--- issues: - | Due to `bug 1707256`_, shared storage modeling in Placement is not supported by the scheduler. This means that in the Pike release series, an operator will be unable to model a shared storage pool between two or more compute hosts using the Placement service for scheduling and resource tracking. This is not a regression, just a note about functionality that is not yet available. Support for modeling shared storage providers will be worked on in the Queens release. .. _bug 1707256: https://bugs.launchpad.net/nova/+bug/1707256 nova-17.0.13/releasenotes/notes/move-console-opt-to-console-group-de693ac26bc9b090.yaml0000664000175000017500000000021713556316250030300 0ustar zuulzuul00000000000000--- upgrade: - | ``console_public_hostname`` console options under the ``DEFAULT`` group have been moved to the ``xenserver`` group. nova-17.0.13/releasenotes/notes/set_guest_time-736939fe725cbdab.yaml0000664000175000017500000000046713556316250024721 0ustar zuulzuul00000000000000--- features: - Libvirt driver will attempt to update the time of a suspended and/or a migrated guest in order to keep the guest clock in sync. This operation will require the guest agent to be configured and running in order to be able to run. However, this operation will not be disruptive. nova-17.0.13/releasenotes/notes/hide_hypervisor_id-6f93e7552336930d.yaml0000664000175000017500000000226213556316250025255 0ustar zuulzuul00000000000000--- features: - | Some hypervisors add a signature to their guests, e.g. KVM is adding ``KVMKVMKVM\0\0\0``, Xen: ``XenVMMXenVMM``. The existence of a hypervisor signature enables some paravirtualization features on the guest as well as disallowing certain drivers which test for the hypervisor to load e.g. Nvidia driver [1]: "The latest Nvidia driver (337.88) specifically checks for KVM as the hypervisor and reports Code 43 for the driver in a Windows guest when found. Removing or changing the KVM signature is sufficient for the driver to load and work." The new ``img_hide_hypervisor_id`` image metadata property hides the hypervisor signature for the guest. Currently only the libvirt compute driver can hide hypervisor signature for the guest host. To verify if hiding hypervisor id is working on Linux based system:: $ cpuid | grep -i hypervisor_id The result should not be (for KVM hypervisor):: $ hypervisor_id = KVMKVMKVM\0\0\0 You can enable this feature by setting the ``img_hide_hypervisor_id=true`` property in a Glance image. [1]: http://git.qemu.org/?p=qemu.git;a=commitdiff;h=f522d2a nova-17.0.13/releasenotes/notes/bp-add-pagination-for-instance-actions-1c14cb3fc9887d2a.yaml0000664000175000017500000000053013556316250031161 0ustar zuulzuul00000000000000--- features: - | Add pagination support and ``changes-since`` filter for os-instance-actions API. Users can now use ``limit`` and ``marker`` to perform paginated query when listing instance actions. Users can also use ``changes-since`` filter to filter the results based on the last time the instance action was updated. nova-17.0.13/releasenotes/notes/sriov-ovs-offload-1c3fe79e847f8c8f.yaml0000664000175000017500000000126013556316250025267 0ustar zuulzuul00000000000000--- features: - | Adds support to OVS vif type with direct port (SR-IOV). In order to use this OVS acceleration mode, ``openvswitch`` 2.8.0 and 'Linux Kernel' 4.8 are required. This feature allows control of an SR-IOV virtual function (VF) via OpenFlow control plane and gain improved performance of 'Open vSwitch'. Please note that in Pike release we can't differentiate between SR-IOV hardware and OVS offloaded on the same host. This limitation should be resolved when the enable-sriov-nic-features will be completed. Until then operators can use host aggregates to ensure that they can schedule instances on specific hosts based on hardware. nova-17.0.13/releasenotes/notes/remove-nova-manage-service-subcommand-2a11ed662864341c.yaml0000664000175000017500000000033613556316250030703 0ustar zuulzuul00000000000000--- upgrade: - The service subcommand of nova-manage was deprecated in 13.0. Now in 14.0 the service subcommand is removed. Use service-* commands from python-novaclient or the os-services REST resource instead. nova-17.0.13/releasenotes/notes/deprecate-image-download-ext-point-cd5809e11bbd09d3.yaml0000664000175000017500000000121713556316250030423 0ustar zuulzuul00000000000000--- deprecations: - | The ``[glance]/allowed_direct_url_schemes`` configuration option and ``nova.image.download.modules`` extension point have been deprecated for removal. These were originally added for the *nova.image.download.file* FileTransfer extension which was removed in the 16.0.0 Pike release. The ``nova.image.download.modules`` extension point is not maintained and there is no indication of its use in production clouds. If you are using this extension point, please make the nova development team aware by contacting us in the #openstack-nova freenode IRC channel or on the openstack-dev mailing list. nova-17.0.13/releasenotes/notes/os-server-tags-default-policy-change-003a244908a67289.yaml0000664000175000017500000000043213556316250030322 0ustar zuulzuul00000000000000upgrade: - The default policy on os-server-tags has been changed from ``RULE_ANY`` (allow all) to ``RULE_ADMIN_OR_OWNER``. This is because server tags should only be manipulated on servers owned by the user or admin. This doesn't have any affect on how the API works. nova-17.0.13/releasenotes/notes/hyperv-uefi-secure-boot-a2a617ac2c313afd.yaml0000664000175000017500000000204613556316251026410 0ustar zuulzuul00000000000000--- features: - | Added support for Hyper-V VMs with UEFI Secure Boot enabled. In order to create such VMs, there are a couple of things to consider: * Images should be prepared for Generation 2 VMs. The image property "hw_machine_type=hyperv-gen2" is mandatory. * The guest OS type must be specified in order to properly spawn the VMs. It can be specifed through the image property "os_type", and the acceptable values are "windows" or "linux". * The UEFI Secure Boot feature can be requested through the image property "os_secure_boot" (acceptable values: "disabled", "optional", "required") or flavor extra spec "os:secure_boot" (acceptable values: "disabled", "required"). The flavor extra spec will take precedence. If the image property and the flavor extra spec values are conflicting, then an exception is raised. * This feature is supported on Windows / Hyper-V Server 2012 R2 for Windows guests, and Windows / Hyper-V Server 2016 for both Windows and Linux guests. nova-17.0.13/releasenotes/notes/hyper-v-ovs-vif-348fca68db4918fe.yaml0000664000175000017500000000077413556316250024667 0ustar zuulzuul00000000000000--- features: - The nova Hyper-V driver can now plug OVS VIFs. This means that neutron-ovs-agent can be used as an L2 agent instead of neutron-hyperv-agent. In order to plug OVS VIFs, the configuration option "vswitch_name" from the "hyperv" section must be set to the vSwitch which has the OVS extension enabled. Hot-plugging is only supported on Windows / Hyper-V Server 2016 + Generation 2 VMs. Older Hyper-V versions only support attaching vNICs while the VM is turned off. nova-17.0.13/releasenotes/notes/bp-virt-driver-cpu-thread-pinning-1aaeeb6648f8e009.yaml0000664000175000017500000000075613556316250030241 0ustar zuulzuul00000000000000--- features: - Added support for CPU thread policies, which can be used to control how the libvirt virt driver places guests with respect to CPU SMT "threads". These are provided as instance and image metadata options, 'hw:cpu_thread_policy' and 'hw_cpu_thread_policy' respectively, and provide an additional level of control over CPU pinning policy, when compared to the existing CPU policy feature. These changes were introduced in commits '83cd67c' and 'aaaba4a'. nova-17.0.13/releasenotes/notes/add-support-for-vgpu-libvirt-91d2983e643f5ff1.yaml0000664000175000017500000000724513556316250027224 0ustar zuulzuul00000000000000--- features: - | The libvirt driver now supports booting instances by asking for virtual GPUs. In order to support that, the operators should specify the enabled vGPU types in the nova-compute configuration file by using the configuration option ``[devices]/enabled_vgpu_types``. Only the enabled vGPU types can be used by instances. For knowing which types the physical GPU driver supports for libvirt, the operator can look at the sysfs by doing:: ls /sys/class/mdev_bus//mdev_supported_types Operators can specify a VGPU resource in a flavor by adding in the flavor's extra specs:: nova flavor-key set resources:VGPU=1 That said, Nova currently has some caveats for using vGPUs. * For the moment, only a single type can be supported across one compute node, which means that libvirt will create the vGPU by using that specific type only. It's also possible to have two compute nodes having different types but there is no possibility yet to specify in the flavor which specific type we want to use for that instance. * Suspending a guest having vGPUs doesn't work yet given a libvirt concern (it can't hot-unplug mediated devices from a guest). Workarounds using other instance actions (like snapshotting the instance or shelving it) are recommended until libvirt supports that. If a user asks to suspend the instance, Nova will get an exception that will set the instance state back to ``ACTIVE``, and you can see the suspend action in ``os-instance-action`` API will be Error. * Resizing an instance with a new flavor that has vGPU resources doesn't allocate those vGPUs to the instance (the instance is created without vGPU resources). We propose to work around this problem by rebuilding the instance once it has been resized so then it will have allocated vGPUs. * Migrating an instance to another host will have the same problem as resize. In case you want to migrate an instance, make sure to rebuild it. * Rescuing an instance having vGPUs will mean that the rescue image won't use the existing vGPUs. When unrescuing, it will use again the existing vGPUs that were allocated to the instance. That said, given Nova looks at all the allocated vGPUs when trying to find unallocated ones, there could be a race condition if an instance is rescued at the moment a new instance asking for vGPUs is created, because both instances could use the same vGPUs. If you want to rescue an instance, make sure to disable the host until we fix that in Nova. * Mediated devices that are created by the libvirt driver are not persisted upon reboot. Consequently, a guest startup would fail since the virtual device wouldn't exist. In order to prevent that issue, when restarting the compute service, the libvirt driver now looks at all the guest XMLs to check if they have mediated devices, and if the mediated device no longer exists, then Nova recreates it by using the same UUID. * If you use NVIDIA GRID cards, please know that there is a limitation with the NVIDIA driver that prevents one guest to have more than one virtual GPU from the same physical card. One guest can have two or more virtual GPUs but then it requires each vGPU to be hosted by a separate physical card. Until that limitation is removed, please avoid creating flavors asking for more than one vGPU. We are working actively to remove or workaround those caveats, but please understand that for the moment this feature is experimental given all the above. nova-17.0.13/releasenotes/notes/libvirt-cpu-model-extra-flags-a23085f58bd22d27.yaml0000664000175000017500000000200513556316251027264 0ustar zuulzuul00000000000000--- fixes: - | The libvirt driver now allows specifying individual CPU feature flags for guests, via a new configuration attribute ``[libvirt]/cpu_model_extra_flags`` -- only with ``custom`` as the ``[libvirt]/cpu_model``. Refer to its documentation in ``nova.conf`` for usage details. One of the motivations for this is to alleviate the performance degradation (caused as a result of applying the "Meltdown" CVE fixes) for guests running with certain Intel-based virtual CPU models. This guest performance impact is reduced by exposing the CPU feature flag 'PCID' ("Process-Context ID") to the *guest* CPU, assuming that it is available in the physical hardware itself. Note that besides ``custom``, Nova's libvirt driver has two other CPU modes: ``host-model`` (which is the default), and ``host-passthrough``. Refer to the ``[libvirt]/cpu_model_extra_flags`` documentation for what to do when you are using either of those CPU modes in context of 'PCID'. nova-17.0.13/releasenotes/notes/bug-1735687-add-list-hosts-in-cellv2-7afa67ce0d48b6a2.yaml0000664000175000017500000000016713556316250030010 0ustar zuulzuul00000000000000--- features: - | Add a ``nova-manage cell_v2 list_hosts`` command for listing hosts in one or all v2 cells. nova-17.0.13/releasenotes/notes/remove-wsdl-location-config-33d439f7fb7036a2.yaml0000664000175000017500000000025313556316250027037 0ustar zuulzuul00000000000000--- upgrade: - | The ``[vmware] wsdl_location`` configuration option has been removed after being deprecated in 15.0.0. It was unused and should have no impact. nova-17.0.13/releasenotes/notes/scheduling-to-disabled-hosts-79f5b5d20a42875a.yaml0000664000175000017500000000033313556316250027173 0ustar zuulzuul00000000000000--- upgrade: - The FilterScheduler is now including disabled hosts. Make sure you include the ComputeFilter in the ``scheduler_default_filters`` config option to avoid placing instances on disabled hosts. nova-17.0.13/releasenotes/notes/add-interface-attach-detach-support-in-ironic-cb2bf11f3875350a.yaml0000664000175000017500000000171513556316250032350 0ustar zuulzuul00000000000000--- features: - | Adds interface attach/detach support to baremetal nodes using ironic virt driver. Note that the instance info cache update relies on getting a ``network-changed`` event from neutron, or on the periodic task healing the instance info cache, both of which are asynchronous. This means that nova's cached network information (which is what is sent e.g. in the ``GET /servers`` responses) may not be up to date immediately after the attachment or detachment. upgrade: - | Interface attachment/detachment for ironic virt driver was implemented in in-tree network interfaces in ironic version 8.0, and this release is required for nova's interface attachment feature to work. Prior to that release, calling VIF attach on an active ironic node using in-tree network interfaces would be basically a noop. It should not be an issue during the upgrade though, as it is required to upgrade ironic before nova. nova-17.0.13/releasenotes/notes/oslopolicy-scripts-957b364b8ffd7c3f.yaml0000664000175000017500000000122513556316250025562 0ustar zuulzuul00000000000000--- features: - Nova is now configured to work with two oslo.policy CLI scripts that have been added. The first of these can be called like "oslopolicy-list-redundant --namespace nova" and will output a list of policy rules in policy.[json|yaml] that match the project defaults. These rules can be removed from the policy file as they have no effect there. The second script can be called like "oslopolicy-policy-generator --namespace nova --output-file policy-merged.yaml" and will populate the policy-merged.yaml file with the effective policy. This is the merged results of project defaults and config file overrides. nova-17.0.13/releasenotes/notes/xenapi-virt-device-role-tagging-5ffb440f75fae834.yaml0000664000175000017500000000173513556316250027756 0ustar zuulzuul00000000000000--- features: - | The ``XenAPI`` compute driver now supports creating servers with virtual interface and block device tags which was introduced in the ``2.32`` microversion. Note that multiple paths will exist for a tagged disk for the following reasons: 1. HVM guests may not have the paravirtualization (PV) drivers installed, in which case the disk will be accessible on the ``ide`` bus. When the PV drivers are installed the disk will be accessible on the ``xen`` bus. 2. Windows guests with PV drivers installed expose devices in a different way to Linux guests with PV drivers. Linux systems will see disk paths under ``/sys/devices/``, but Windows guests will see them in the registry, for example ``HKLM\System\ControlSet001\Enum\SCSIDisk``. These two disks are both on the ``xen`` bus. See the following XenAPI documentation for details: http://xenbits.xen.org/docs/4.2-testing/misc/vbd-interface.txt nova-17.0.13/releasenotes/notes/bug-1725331-fcf93514045a557a.yaml0000664000175000017500000000031513556316250023120 0ustar zuulzuul00000000000000--- features: - | The ``nova-manage cell_v2 delete_cell`` command returns an exit code 4 when there are instance mappings to a cell to delete but all instances have been deleted in the cell. nova-17.0.13/releasenotes/notes/bp-opencontrail-nova-vif-plugin-b132102ad79ebf90.yaml0000664000175000017500000000056313556316250027705 0ustar zuulzuul00000000000000--- features: - | The model name vhostuser_vrouter_plug is set by the neutron contrail plugin during a VM (network port) creation. The libvirt compute driver now supports plugging virtual interfaces of type "contrail_vrouter" which are provided by the contrail-nova-vif-driver plugin [1]. [1] https://github.com/Juniper/contrail-nova-vif-driver nova-17.0.13/releasenotes/notes/add-swap-volume-notifications-bb7e14230fccfd6e.yaml0000664000175000017500000000033013556316250027663 0ustar zuulzuul00000000000000--- features: - | The following versioned swap volume notifications have been added in the compute manager: * instance.volume_swap.start * instance.volume_swap.end * instance.volume_swap.error nova-17.0.13/releasenotes/notes/add-osprofiler-support-b04f1e4cfa550440.yaml0000664000175000017500000000317613556316250026215 0ustar zuulzuul00000000000000--- features: - OSProfiler support was added. This cross-project profiling library allows to trace various OpenStack requests through all OpenStack services that support it. To initiate OpenStack request tracing `--profile ` option needs to be added to the CLI command. This key needs to present one of the secret keys defined in nova.conf configuration file with `hmac_keys` option under the `[profiler]` configuration section. To enable or disable Nova profiling the appropriate `enabled` option under the same section needs to be set either to `True` or `False`. By default Nova will trace all API and RPC requests, but there is an opportunity to trace DB requests as well. For this purpose `trace_sqlalchemy` option needs to be set to `True`. As a prerequisite OSProfiler library and its storage backend needs to be installed to the environment. If so (and if profiling is enabled in nova.conf) the trace can be generated via following command, for instance - `$ nova --profile SECRET_KEY boot --image --flavor `. At the end of output there will be message with , and to plot nice HTML graphs the following command should be used - `$ osprofiler trace show --html --out result.html` security: - OSProfiler support requires passing of trace information between various OpenStack services. This information is securely signed by one of HMAC keys, defined in nova.conf configuration file. To allow cross-project tracing user should use the key, that is common among all OpenStack services he or she wants to trace. nova-17.0.13/releasenotes/notes/bp-nova-api-hypervsor-cpu-info-b84cddf8b70b88d2.yaml0000664000175000017500000000025413556316250027637 0ustar zuulzuul00000000000000--- features: - Added microversion v2.28 from which hypervisor's 'cpu_info' field returned as JSON object by sending GET /v2.1/os-hypervisors/{hypervisor_id} request. nova-17.0.13/releasenotes/notes/websocket-proxy-to-host-security-c3eca0647b0cbc02.yaml0000664000175000017500000000360013556316250030320 0ustar zuulzuul00000000000000--- features: - | Added a number of new configuration options to the ``[vnc]`` group, which together allow for the configuration of authentication used between the *nova-novncproxy* server and the compute node VNC server. - ``auth_schemes`` - ``vencrypt_client_key`` - ``vencrypt_client_cert`` - ``vencrypt_ca_certs`` For more information, refer to `the documentation`__. __ https://docs.openstack.org/nova/latest/admin/remote-console-access.html - | The *nova-novncproxy* server can now be configured to do a security negotiation with the compute node VNC server. If the VeNCrypt auth scheme is enabled, this establishes a TLS session to provide encryption of all data. The proxy will validate the x509 certs issued by the remote server to ensure it is connecting to a valid compute node. The proxy can also send its own x509 cert to allow the compute node to validate that the connection comes from the official proxy server. To make use of VeNCrypt, configuration steps are required for both the `nova-novncproxy` service and libvirt on all the compute nodes. The ``/etc/libvirt/qemu.conf`` file should be modified to set the ``vnc_tls`` option to ``1``, and optionally the ``vnc_tls_x509_verify`` option to ``1``. Certificates must also be deployed on the compute node. The ``nova.conf`` file should have the ``auth_schemes`` parameter in the ``vnc`` group set. If there are a mix of compute nodes, some with VeNCrypt enabled and others with it disabled, then the ``auth_schemes`` configuration option should be set to ``['vencrypt', 'none']``. Once all compute nodes have VeNCrypt enabled, the ``auth_schemes`` parameter can be set to just ``['vencrypt']``. For more information, refer to `the documentation`__. __ https://docs.openstack.org/nova/latest/admin/remote-console-access.html nova-17.0.13/releasenotes/notes/remove-deprecated-compute-opts-bc935162bc4723ac.yaml0000664000175000017500000000043113556316250027616 0ustar zuulzuul00000000000000--- upgrade: - | The following deprecated configuration options have been removed from the ``compute`` section of ``nova.conf``: - ``null_kernel`` These were deprecated in the 15.0.0 release as they allowed for inconsistent API behavior across deployments. nova-17.0.13/releasenotes/notes/add-cors-to-versions-pipeline-56277ca66e796569.yaml0000664000175000017500000000047613556316250027206 0ustar zuulzuul00000000000000--- upgrade: - To allow access to the versions REST API from diverse origins, CORS support has been added to the 'oscomputeversions' pipeline in '/etc/nova/api-paste.ini'. Existing deployments that wish to enable support should add the 'cors' filter at the start of the 'oscomputeversions' pipeline. nova-17.0.13/releasenotes/notes/force_config_drive_opt-e087055e14c40d88.yaml0000664000175000017500000000043713556316250026145 0ustar zuulzuul00000000000000--- upgrade: - | The ``force_config_drive`` configuration option provided an ``always`` value which was deprecated in the previous release. That ``always`` value is now no longer accepted and deployments using that value have to change it to ``True`` before upgrading. nova-17.0.13/releasenotes/notes/veritas_hyperscale_libvirt_driver-ba02bea54a9a99db.yaml0000664000175000017500000000015413556316250031013 0ustar zuulzuul00000000000000--- features: - The libvirt compute driver now supports connecting to Veritas HyperScale volume backends. nova-17.0.13/releasenotes/notes/placement-api-endpoint-interface-set-29af8b9400ce7775.yaml0000664000175000017500000000062313556316250030620 0ustar zuulzuul00000000000000--- other: - The Placement API can be set to connect to a specific keystone endpoint interface using the ``os_interface`` option in the ``[placement]`` section inside ``nova.conf``. This value is not required but can be used if a non-default endpoint interface is desired for connecting to the Placement service. By default, keystoneauth will connect to the "public" endpoint. nova-17.0.13/releasenotes/notes/bug-1712008-4ab2538211b8c3d9.yaml0000664000175000017500000000147313556316250023114 0ustar zuulzuul00000000000000--- upgrade: - | The ``nova-conductor`` service now needs access to the Placement service in the case of forcing a destination host during a live migration. Ensure the ``[placement]`` section of nova.conf for the ``nova-conductor`` service is filled in. fixes: - | When forcing a specified destination host during live migration, the scheduler is bypassed but resource allocations will still be made in the Placement service against the forced destination host. If the resource allocation against the destination host fails, the live migration operation will fail, regardless of the ``force`` flag being specified in the API. The guest will be unchanged on the source host. For more details, see `bug 1712008`_. .. _bug 1712008: https://bugs.launchpad.net/nova/+bug/1712008 nova-17.0.13/releasenotes/notes/add-perf-event-e1385b6b6346fbda.yaml0000664000175000017500000000032613556316250024462 0ustar zuulzuul00000000000000--- features: - Add perf event support for libvirt driver. This can be done by adding new configure option 'enabled_perf_events' in libvirt section of nova.conf. This feature requires libvirt>=2.0.0. nova-17.0.13/releasenotes/notes/remove-unused-config-opt-iqn_prefix-defb44120dae93e3.yaml0000664000175000017500000000025713556316250030741 0ustar zuulzuul00000000000000--- other: - The XenServer configuration option 'iqn_prefix' has been removed. It was not used anywhere and has no effect on any code, so there should be no impact. nova-17.0.13/releasenotes/notes/deprecate_unused_policy-d3bf8589aee63eb6.yaml0000664000175000017500000000034113556316250026652 0ustar zuulzuul00000000000000--- deprecations: - | Some unused policies have been deprecated. These are: * ``os_compute_api:os-server-groups`` * ``os_compute_api:flavors`` Please note you should remove these from your policy file(s). nova-17.0.13/releasenotes/notes/reserved-hugepages-per-nodes-f36225d5fca807e4.yaml0000664000175000017500000000016113556316250027260 0ustar zuulzuul00000000000000features: - Adds reserved_huge_pages option to reserve amount of huge pages used by third party components.././@LongLink0000000000000000000000000000016200000000000011214 Lustar 00000000000000nova-17.0.13/releasenotes/notes/deprecates-multinic-floatingipaction-osvirtualinterface-api-73b24e5304635e9d.yamlnova-17.0.13/releasenotes/notes/deprecates-multinic-floatingipaction-osvirtualinterface-api-73b24e530000664000175000017500000000170113556316250033444 0ustar zuulzuul00000000000000--- deprecations: - | The following APIs which are considered as proxies of Neutron networking API, are deprecated and will result in a 404 error response in microversion `2.44`:: POST /servers/{server_uuid}/action { "addFixedIp": {...} } POST /servers/{server_uuid}/action { "removeFixedIp": {...} } POST /servers/{server_uuid}/action { "addFloatingIp": {...} } POST /servers/{server_uuid}/action { "removeFloatingIp": {...} } Those server actions can be replaced by calling the Neutron API directly. The nova-network specific API to query the server's interfaces is deprecated:: GET /servers/{server_uuid}/os-virtual-interfaces To query attached neutron interfaces for a specific server, the API `GET /servers/{server_uuid}/os-interface` can be used. nova-17.0.13/releasenotes/notes/ironic-multitenant-networking-6f124964831d4a6c.yaml0000664000175000017500000000066313556316250027463 0ustar zuulzuul00000000000000--- features: - Multitenant networking for the ironic compute driver is now supported. To enable this feature, ironic nodes must be using the 'neutron' network_interface. upgrade: - The ironic driver now requires python-ironicclient>=1.5.0 (previously >=1.1.0), and requires the ironic service to support API version 1.20 or higher. As usual, ironic should be upgraded before nova for a smooth upgrade process. nova-17.0.13/releasenotes/notes/deprecate-the-cinder-v2-support-0cebc90580a3e80f.yaml0000664000175000017500000000033613556316250027667 0ustar zuulzuul00000000000000deprecations: - | Nova support for using the Block Storage (Cinder) v2 API is now deprecated and will be removed in the 17.0.0 Queens release. The v3 API is now the default and is backward compatible with the v2 API.nova-17.0.13/releasenotes/notes/remove-nova-cells-topic-config-a7cd4d1a3e2d7d5b.yaml0000664000175000017500000000022613556316250027726 0ustar zuulzuul00000000000000--- upgrade: - | The cells topic configuration option has been removed. Please make sure your cells related message queue topic is 'cells'. nova-17.0.13/releasenotes/notes/fix-default-cell0-db-connection-f9717053cc34778e.yaml0000664000175000017500000000074213556316250027406 0ustar zuulzuul00000000000000--- fixes: - | The ``nova-manage cell_v2 simple_cell_setup`` command now creates the default cell0 database connection using the ``[database]`` connection configuration option rather than the ``[api_database]`` connection. The cell0 database schema is the `main` database, i.e. the `instances` table, rather than the `api` database schema. In other words, the cell0 database would be called something like ``nova_cell0`` rather than ``nova_api_cell0``.nova-17.0.13/releasenotes/notes/microversion-2.43-77d63cae38695fd1.yaml0000664000175000017500000000076713556316250024733 0ustar zuulzuul00000000000000--- deprecations: - | The ``os-hosts`` API is deprecated as of the 2.43 microversion. Requests made with microversion >= 2.43 will result in a 404 error. To list and show host details, use the ``os-hypervisors`` API. To enable or disable a service, use the ``os-services`` API. There is no replacement for the `shutdown`, `startup`, `reboot`, or `maintenance_mode` actions as those are system-level operations which should be outside of the control of the compute service. nova-17.0.13/releasenotes/notes/api.fault-notification-removal-9f3142ba7cb13ca9.yaml0000664000175000017500000000103213556316250027657 0ustar zuulzuul00000000000000--- upgrade: - | The ``notify_on_api_faults`` config option and the ``api.fault`` notification it enabled have been removed. As noted in `bug 1699115`_, the ``api.fault`` notification has not worked since the v2.1 API was introduced. As the v2.0 API is supported with the v2.1 codebase since Newton, this notification has not been emitted since Newton. Given that no one has reported an issue with this in that time, it is simply removed. .. _`bug 1699115`: https://bugs.launchpad.net/nova/+bug/1699115 nova-17.0.13/releasenotes/notes/add-api-config-to-api-group-af20a57a9e3e1b85.yaml0000664000175000017500000000170013556316250026736 0ustar zuulzuul00000000000000--- upgrade: - | API configuration options have been moved to the 'api' group. They should no longer be included in the 'DEFAULT' group. Options affected by this change: * ``auth_strategy`` * ``use_forwarded_for`` * ``config_drive_skip_versions`` * ``vendordata_providers`` * ``vendordata_dynamic_targets`` * ``vendordata_dynamic_ssl_certfile`` * ``vendordata_dynamic_connect_timeout`` * ``vendordata_dynamic_read_timeout`` * ``metadata_cache_expiration`` * ``vendordata_jsonfile_path`` * ``max_limit`` (was ``osapi_max_limit``) * ``compute_link_prefix`` (was ``osapi_compute_link_prefix``) * ``glance_link_prefix`` (was ``osapi_glance_link_prefix``) * ``allow_instance_snapshots`` * ``hide_server_address_states`` (was ``osapi_hide_server_address_states``) * ``fping_path`` * ``use_neutron_default_nets`` * ``neutron_default_tenant_id`` * ``enable_instance_password`` nova-17.0.13/releasenotes/notes/remove-unused-admin_actions_policy-rule-c868436ac6fad50d.yaml0000664000175000017500000000020313556316250031607 0ustar zuulzuul00000000000000--- upgrade: - | Policy rule with name os_compute_api:os-admin-actions has been removed as it was never used by any API. nova-17.0.13/releasenotes/notes/rename-iscsi-multipath-opt-eabbafccd2b74a0a.yaml0000664000175000017500000000015213556316250027376 0ustar zuulzuul00000000000000--- upgrade: - The libvirt option 'iscsi_use_multipath' has been renamed to 'volume_use_multipath'. nova-17.0.13/releasenotes/notes/bug-1673613-7357d40ba9ab1fa6.yaml0000664000175000017500000000053213556316250023260 0ustar zuulzuul00000000000000--- fixes: - | Includes the fix for `bug 1673613`_ which could cause issues when upgrading and running ``nova-manage cell_v2 simple_cell_setup`` or ``nova-manage cell_v2 map_cell0`` where the database connection is read from config and has special characters in the URL. .. _bug 1673613: https://launchpad.net/bugs/1673613 nova-17.0.13/releasenotes/notes/os-migrations-ef225e5b309d5497.yaml0000664000175000017500000000051113556316250024321 0ustar zuulzuul00000000000000--- deprecations: - The old top-level resource `/os-migrations` is deprecated, it won't be extended anymore. And migration_type for /os-migrations, also add ref link to the /servers/{uuid}/migrations/{id} for it when the migration is an in-progress live-migration. This has been added in microversion 2.23. nova-17.0.13/releasenotes/notes/compute_upgrade_levels_auto-97acebc7b45b76df.yaml0000664000175000017500000000120513556316250027614 0ustar zuulzuul00000000000000--- features: - | A new ``auto`` value for the configuration option ``upgrade_levels.compute`` is accepted, that allows automatic determination of the compute service version to use for RPC communication. By default, we still use the newest version if not set in the config, a specific version if asked, and only do this automatic behavior if 'auto' is configured. When 'auto' is used, sending a SIGHUP to the service will cause the value to be re-calculated. Thus, after an upgrade is complete, sending SIGHUP to all services will cause them to start sending messages compliant with the newer RPC version. nova-17.0.13/releasenotes/notes/wsgi-applications-8017c3192d2b143e.yaml0000664000175000017500000000061013556316250025061 0ustar zuulzuul00000000000000--- upgrade: - | WSGI application scripts ``nova-api-wsgi`` and ``nova-metadata-wsgi`` are now available. They allow running the compute and metadata APIs using a WSGI server of choice (for example nginx and uwsgi, apache2 with mod_proxy_uwsgi or gunicorn). The eventlet-based servers are still available, but the WSGI options will allow greater deployment flexibility. nova-17.0.13/releasenotes/notes/bug-1744325-rebuild-error-status-9e2da03f3f81fd6e.yaml0000664000175000017500000000032713556316250027447 0ustar zuulzuul00000000000000--- fixes: - | If scheduling fails during rebuild the server instance will go to ERROR state and a fault will be recorded. `Bug 1744325`_ .. _Bug 1744325: https://bugs.launchpad.net/nova/+bug/1744325 nova-17.0.13/releasenotes/notes/discover-hosts-periodic-is-more-efficient-6c55b606a7831750.yaml0000664000175000017500000000043213556316250031433 0ustar zuulzuul00000000000000--- features: - The `discover_hosts_in_cells_interval` periodic task in the scheduler is now more efficient in that it can specifically query unmapped compute nodes from the cell databases instead of having to query them all and compare against existing host mappings.nova-17.0.13/releasenotes/notes/neutron-via-ksa-9f386b09cff98a9e.yaml0000664000175000017500000000127313556316250024740 0ustar zuulzuul00000000000000--- upgrade: - | Nova now uses keystoneauth1 configuration to set up communication with the network service. Use keystoneauth1 loading parameters for Adapter setup in the ``[neutron]`` conf section (auth and Session options continue to work as before). Of note: * Legacy option ``url`` is deprecated and replaced by ``endpoint_override``. This should not need to be specified if an appropriate service catalog entry exists for the network service. * When ``url`` is not used, ``region_name`` no longer defaults to ``RegionOne``. * In Queens, specifying ``url`` will trigger the legacy behavior. The ``url`` option will be removed in Rocky. nova-17.0.13/releasenotes/notes/libvirt-deprecate-migration-flags-config-4ba1e2d6c9ef09ff.yaml0000664000175000017500000000054613556316250031763 0ustar zuulzuul00000000000000--- deprecations: - | The libvirt live_migration_flag and block_migration_flag config options are deprecated. These options gave too fine grained control over the flags used and, in some cases, misconfigurations could have dangerous side effects. Please note the availability of a new live_migration_tunnelled configuration option. nova-17.0.13/releasenotes/notes/deprecate-default-flavor-6c144f67f8032dfa.yaml0000664000175000017500000000035413556316250026452 0ustar zuulzuul00000000000000--- deprecations: - The ``default_flavor`` config option is now deprecated and may be removed as early as the 15.0.0 release. It is an option which was only relevant for the deprecated EC2 API and is not used in the Nova API. nova-17.0.13/releasenotes/notes/deprecate_live_migration_uri-8ae6656664db5ba0.yaml0000664000175000017500000000105213556316250027504 0ustar zuulzuul00000000000000--- deprecations: - | The ``live_migration_uri`` option in the [libvirt] configuration section is deprecated, and will be removed in a future release. The ``live_migration_scheme`` should be used to change scheme used for live migration, and ``live_migration_inbound_addr`` should be used to change target URI. features: - | The libvirt driver now has a ``live_migration_scheme`` configuration option which should be used where the ``live_migration_uri`` would previously have been configured with non-default scheme. nova-17.0.13/releasenotes/notes/libvirt-mtu-configuration-0a3e9129dd33b0bc.yaml0000664000175000017500000000021113556316251026761 0ustar zuulzuul00000000000000--- fixes: - | For libvirt driver. Now when creating tap devices the MTU will be configured. Requires libvirt 3.3.0 at least. nova-17.0.13/releasenotes/notes/mutable-config-e7e82b3d7c38f3a5.yaml0000664000175000017500000000060113556316250024561 0ustar zuulzuul00000000000000--- features: - | Nova has been enabled for mutable config. Certain options may be reloaded by sending SIGHUP to the correct process. Live migration options will apply to live migrations currently in progress. Please refer to the configuration manual. * DEFAULT.debug * libvirt.live_migration_completion_timeout * libvirt.live_migration_progress_timeout nova-17.0.13/releasenotes/notes/supported-virtuozzo-version-569db9259a7ee579.yaml0000664000175000017500000000027513556316250027357 0ustar zuulzuul00000000000000--- upgrade: - As of Ocata, the minimum version of Virtuozzo that nova compute will interoperate with will be 7.0.0. Deployments using older versions of Virtuozzo should upgrade. nova-17.0.13/releasenotes/notes/bp-instance-crash-dump-7ccbba7799dc66f9.yaml0000664000175000017500000000016213556316250026227 0ustar zuulzuul00000000000000--- features: - A new server action trigger_crash_dump has been added to the REST API in microversion 2.17. nova-17.0.13/releasenotes/notes/bug-hyperv-1629040-e1eb35a7b31d9af8.yaml0000664000175000017500000000026613556316250024656 0ustar zuulzuul00000000000000--- fixes: - The Hyper-V driver no longer accepts cold migrating instances to the same host. Note that this does not apply to resizes, in which case this is still allowed. nova-17.0.13/releasenotes/notes/versioned-notifications-423f4d8d2a3992c6.yaml0000664000175000017500000000066013556316250026375 0ustar zuulzuul00000000000000--- features: - As part of refactoring the notification interface of Nova a new config option 'notification_format' has been added to specifies which notification format shall be used by nova. The possible values are 'unversioned' (e.g. legacy), 'versioned', 'both'. The default value is 'both'. The new versioned notifications are documented in http://docs.openstack.org/developer/nova/notifications.html nova-17.0.13/releasenotes/notes/deprecate-api-extensions-policies-5613bc4eea59709d.yaml0000664000175000017500000000156313556316250030317 0ustar zuulzuul00000000000000--- deprecations: - | Nova API extension concept is removed in Pike. These extensions have their own policies enforcement which are not needed any more. All the below policies which were added mainly for extensions are deprecated for removal: - Show & List detail server - ``os_compute_api:os-config-drive`` - ``os_compute_api:os-extended-availability-zone`` - ``os_compute_api:os-extended-status`` - ``os_compute_api:os-extended-volumes`` - ``os_compute_api:os-keypairs`` - ``os_compute_api:os-server-usage`` - ``os_compute_api:os-security-groups`` (only from ``/servers`` APIs) - Create, Update, Show & List detail flavor - ``os_compute_api:os-flavor-rxtx`` - ``os_compute_api:os-flavor-access`` (only from ``/flavors`` APIs) - Show & List detail image - ``os_compute_api:image-size`` nova-17.0.13/releasenotes/notes/bug-1679750-local-delete-allocations-cb7bfbcb6c36b6a2.yaml0000664000175000017500000000123013556316250030337 0ustar zuulzuul00000000000000--- upgrade: - | The ``nova-api`` service now requires the ``[placement]`` section to be configured in nova.conf if you are using a separate config file just for that service. This is because the ``nova-api`` service now needs to talk to the placement service in order to delete resource provider allocations when deleting an instance and the ``nova-compute`` service on which that instance is running is down. This change is idempotent if ``[placement]`` is not configured in ``nova-api`` but it will result in new warnings in the logs until configured. See bug https://bugs.launchpad.net/nova/+bug/1679750 for more details. nova-17.0.13/releasenotes/notes/sched_remove_classpath_import-5d0f48eb388e6948.yaml0000664000175000017500000000041613556316250027645 0ustar zuulzuul00000000000000--- upgrades: - The ability to specify the scheduler driver via a full class path was deprecated in Mitaka, and has now been removed. Drivers must now be listed as one of the entrypoints under the namespace 'nova.scheduler.driver' of the 'setup.cfg' file. nova-17.0.13/releasenotes/notes/sync_power_state_pool_size-81d2d142bffa055b.yaml0000664000175000017500000000065313556316250027324 0ustar zuulzuul00000000000000--- other: - New configuration option sync_power_state_pool_size has been added to set the number of greenthreads available for use to sync power states. Default value (1000) matches the previous implicit default value provided by Greenpool. This option can be used to reduce the number of concurrent requests made to the hypervisor or system with real instance power states for performance reasons. nova-17.0.13/releasenotes/notes/allocation-candidates-limit-37fe5c2ce57daf7f.yaml0000664000175000017500000000102213556316250027364 0ustar zuulzuul00000000000000--- features: - | Add support, in new placement microversion 1.16, for a ``limit`` query parameter when making a ``GET /allocation_candidates`` request. The parameter accepts an integer value, `N`, which limits the number of candidates returned. A new configuration item ``[placement]/randomize_allocation_candidates``, defaulting to `False`, controls how the limited results are chosen. If `True`, a random sampling of the entire result set is taken, otherwise the first N results are returned. nova-17.0.13/releasenotes/notes/vgpu-18da86834c90f041.yaml0000664000175000017500000000263013556316250022424 0ustar zuulzuul00000000000000--- features: - | When using XenAPI driver for XenServer, we can support booting instances with a vGPU attached to get better graphics processing capability. In order to use this feature, the operators should specify the enabled vGPU types in the nova compute configuration file with the configuration option - ``[devices]/enabled_vgpu_types``. Only the enabled vGPU types can be used by instances. XenServer automatically detects and groups together identical physical GPUs. Although the physical GPUs may support multiple vGPU types, at the moment nova only supports a single vGPU type for each compute node. The operators can run the following CLI commands in XenServer to get the available vGPU types if the host supports vGPU:: xe vgpu-type-list The values of ``model-name ( RO):`` from the output of the above commands are the vGPU type names which you can choose from to set the nova configure - ``[devices]/enabled_vgpu_types``. Please choose only one vGPU type to be enabled. The operators should specify a vGPU resource in the flavor's extra_specs:: nova flavor-key set resources:VGPU=1 Then users can use the flavor to boot instances with a vGPU attached. At the moment, XenServer doesn't support multiple vGPUs for a single instance, so ``resources:VGPU`` in the flavor's extra_specs should always be ``1``. nova-17.0.13/releasenotes/notes/deprecates-proxy-apis-5e11d7c4ae5227d2.yaml0000664000175000017500000000215413556316250026024 0ustar zuulzuul00000000000000--- deprecations: - | All the APIs which proxy to other services were deprecated in this API version. Those APIs will return 404 on Microversion 2.36 or higher. The API user should use native API as instead of using those pure proxy for other REST APIs. The quotas and limits related to network resources 'fixed_ips', 'floating ips', 'security_groups', 'security_group_rules', 'networks' are filtered out of os-quotas and limit APIs respectively and those quotas should be managed through OpenStack network service. For using nova-network, you only can use API and manage quotas under Microversion '2.36'. The 'os-fping' API was deprecated also, this API is only related to nova-network and depend on the deployment. The deprecated APIs are as below: - /images - /os-networks - /os-fixed-ips - /os-floating-ips - /os-floating-ips-bulk - /os-floating-ip-pools - /os-floating-ip-dns - /os-security-groups - /os-security-group-rules - /os-security-group-default-rules - /os-volumes - /os-snapshots - /os-baremetal-nodes - /os-fping nova-17.0.13/releasenotes/notes/vmware-console-log-384fbb9a6aa095ad.yaml0000664000175000017500000000046213556316250025460 0ustar zuulzuul00000000000000--- features: - | VMware serial console log is completed. `VSPC`_ must be deployed along with nova-compute and configured properly. The ``[vmware]/serial_log_dir`` config option must have the same value in both nova.conf and vspc.conf. .. _VSPC: https://github.com/openstack/vmware-vspc nova-17.0.13/releasenotes/notes/placement-traits-api-efa17d46ea1b616b.yaml0000664000175000017500000000121313556316250025752 0ustar zuulzuul00000000000000--- features: - | Traits are added to the placement with Microversion 1.6. * GET /traits: Returns all resource classes. * PUT /traits/{name}: To insert a single custom trait. * GET /traits/{name}: To check if a trait name exists. * DELETE /traits/{name}: To delete the specified trait. * GET /resource_providers/{uuid}/traits: a list of traits associated with a specific resource provider * PUT /resource_providers/{uuid}/traits: Set all the traits for a specific resource provider * DELETE /resource_providers/{uuid}/traits: Remove any existing trait associations for a specific resource provider nova-17.0.13/releasenotes/notes/bp-add-project-and-user-id-a560d087656157d4.yaml0000664000175000017500000000036613556316250026273 0ustar zuulzuul00000000000000--- features: - | Project-id and user-id are now also returned in the return data of os-server-groups APIs. In order to use this new feature, user have to contain the header of request microversion v2.13 in the API request. nova-17.0.13/releasenotes/notes/bug-1713150-default_publisher_id-f46f4f6a39347951.yaml0000664000175000017500000000024113556316250027224 0ustar zuulzuul00000000000000--- upgrade: - | The ``[notifications]/default_publisher_id`` configuration option now defaults to ``[DEFAULT]/host`` rather than ``[DEFAULT]/my_ip``. nova-17.0.13/releasenotes/notes/bug-1811726-multi-node-delete-2ba17f02c6171fbb.yaml0000664000175000017500000000064413556316250026564 0ustar zuulzuul00000000000000--- fixes: - | `Bug 1811726`_ is fixed by deleting the resource provider (in placement) associated with each compute node record managed by a ``nova-compute`` service when that service is deleted via the ``DELETE /os-services/{service_id}`` API. This is particularly important for compute services managing ironic baremetal nodes. .. _Bug 1811726: https://bugs.launchpad.net/nova/+bug/1811726 nova-17.0.13/releasenotes/notes/add-xvp-config-to-vnc-group-349cca99f05fcfd3.yaml0000664000175000017500000000023113556316250027112 0ustar zuulzuul00000000000000--- upgrade: - All VNC XVP configuration options have been added to the 'vnc' group. They should no longer be included in the 'DEFAULT' group. nova-17.0.13/releasenotes/notes/return-uuid-attribute-for-aggregates-70d9f733f86fb1a3.yaml0000664000175000017500000000032713556316250030771 0ustar zuulzuul00000000000000--- features: - A new 2.41 microversion was added to the Compute API. Users specifying this microversion will now see the 'uuid' attribute of aggregates when calling the `os-aggregates` REST API endpoint. nova-17.0.13/releasenotes/notes/service-status-notification-e137297f5d5aa45d.yaml0000664000175000017500000000055713556316250027261 0ustar zuulzuul00000000000000--- features: - A new service.status versioned notification has been introduced. When the status of the Service object is changed nova will send a new service.update notification with versioned payload according to bp versioned-notification-api. The new notification is documented in http://docs.openstack.org/developer/nova/notifications.html nova-17.0.13/releasenotes/notes/netronome-smartnic-enablement-d3897fb294429282.yaml0000664000175000017500000000141013556316250027331 0ustar zuulzuul00000000000000--- features: - This release adds support for Netronome's Agilio OVS VIF type. In order to use the accelerated plugging modes, external Neutron and OS-VIF plugins are required. Consult https://github.com/Netronome/agilio-ovs-openstack-plugin for installation and operation instructions. Consult the Agilio documentation available at https://support.netronome.com/ for more information about the plugin compatibility and support matrix. - The ``virtio-forwarder`` VNIC type has been added to the list of VNICs. This VNIC type is intended to request a low-latency virtio port inside the instance, likely backed by hardware acceleration. Currently the Agilio OVS external Neutron and OS-VIF plugins provide support for this VNIC mode. nova-17.0.13/releasenotes/notes/bug-1778044-f498ee2f2cfb35ea.yaml0000664000175000017500000000132313556316250023440 0ustar zuulzuul00000000000000--- issues: - | The initial implementation of native LUKS decryption within Libvirt 2.2.0 had a `known issue`_ with the use of passphrases that were a multiple of 16 bytes in size. This was `resolved`_ in the upstream 3.3.0 release of Libvirt and has been backported to various downstream distribution specific versions. A simple warning will reference the above if this issue is encountered by Nova however operators of the environment will still need to update Libvirt to a version where this issue has been fixed to resolve the issue. .. _known issue: https://bugzilla.redhat.com/show_bug.cgi?id=1447297 .. _resolved: https://libvirt.org/git/?p=libvirt.git;a=commit;h=7189099 ././@LongLink0000000000000000000000000000014700000000000011217 Lustar 00000000000000nova-17.0.13/releasenotes/notes/Make-versioned-notifications-topics-configurable-a4baad995a74a076.yamlnova-17.0.13/releasenotes/notes/Make-versioned-notifications-topics-configurable-a4baad995a74a076.ya0000664000175000017500000000023113556316250032776 0ustar zuulzuul00000000000000--- features: - The versioned_notifications_topic configuration option; This enables one to configure the topics used for versioned notifications. nova-17.0.13/releasenotes/notes/minimum_vc_version-0695a79dc1df3caa.yaml0000664000175000017500000000053213556316250025647 0ustar zuulzuul00000000000000--- upgrade: - As of Ocata, the minimum version of VMware vCenter that nova compute will interoperate with will be 5.1.0. Deployments using older versions of vCenter should upgrade. Running with vCenter version less than 5.5.0 is also now deprecated and 5.5.0 will become the minimum version in the 16.0.0 Pike release of Nova. nova-17.0.13/releasenotes/notes/bug_1659328-73686be497f5f85a.yaml0000664000175000017500000000017013556316250023244 0ustar zuulzuul00000000000000--- fixes: - | The i/o performance for Quobyte volumes has been increased significantly by disabling xattrs. nova-17.0.13/releasenotes/notes/ebtables-version-fde659fe18b0e0c0.yaml0000664000175000017500000000015013556316250025201 0ustar zuulzuul00000000000000--- upgrade: - nova now requires ebtables 2.0.10 or later - nova recommends libvirt 1.2.11 or later nova-17.0.13/releasenotes/notes/bp-get-valid-server-state-a817488f4c8d3822.yaml0000664000175000017500000000056413556316250026357 0ustar zuulzuul00000000000000--- features: - | A new host_status attribute for servers/detail and servers/{server_id}. In order to use this new feature, user have to contain the header of request microversion v2.16 in the API request. A new policy ``os_compute_api:servers:show:host_status`` added to enable the feature. By default, this is only exposed to cloud administrators. nova-17.0.13/releasenotes/notes/bug-1721179-87bc7b64215944c0.yaml0000664000175000017500000000050013556316250023044 0ustar zuulzuul00000000000000--- features: - | The ``delete_host`` command has been added in ``nova-manage cell_v2`` to delete a host from a cell (host mappings). The ``force`` option has been added in ``nova-manage cell_v2 delete_cell``. If the ``force`` option is specified, a cell can be deleted even if the cell has hosts. nova-17.0.13/releasenotes/notes/optional_project_id-6aebf1cb394d498f.yaml0000664000175000017500000000104713556316250026002 0ustar zuulzuul00000000000000--- features: - Provides API 2.18, which makes the use of project_ids in API urls optional. upgrade: - In order to make project_id optional in urls, we must constrain the set of allowed values for project_id in our urls. This defaults to a regex of ``[0-9a-f\-]+``, which will match hex uuids (with / without dashes), and integers. This covers all known project_id formats in the wild. If your site uses other values for project_id, you can set a site specific validation with ``project_id_regex`` config variable. nova-17.0.13/releasenotes/notes/microversion-2.45-608ba80a84c8aec8.yaml0000664000175000017500000000115513556316250024771 0ustar zuulzuul00000000000000--- other: - | The 2.45 microversion is introduced which changes the response for the ``createImage`` and ``createBackup`` server action APIs to no longer return a ``Location`` response header. With microversion 2.45 those APIs now return a json dict in the response body with a single ``image_id`` key whose value is the snapshot image ID (a uuid). The old ``Location`` header in the response before microversion 2.45 is most likely broken and inaccessible by end users since it relies on the internal Glance API server configuration and does not take into account Glance API versions. nova-17.0.13/releasenotes/notes/remove-deprecated-keymgr-db807dc76c83263e.yaml0000664000175000017500000000154013556316250026476 0ustar zuulzuul00000000000000--- upgrade: - | The old deprecated ``keymgr`` options have been removed. Configuration options using the ``[keymgr]`` group will not be applied anymore. Use the ``[key_manager]`` group from Castellan instead. The Castellan ``api_class`` options should also be used instead, as most of the options that lived in Nova have migrated to Castellan. - Instead of ``api_class`` option ``nova.keymgr.barbican.BarbicanKeyManager``, use ``castellan.key_manager.barbican_key_manager.BarbicanKeyManager`` - Instead of ``api_class`` option ``nova.tests.unit.keymgr.mock_key_mgr.MockKeyManager``, use ``castellan.tests.unit.key_manager.mock_key_manager.MockKeyManager`` - ``nova.keymgr.conf_key_mgr.ConfKeyManager`` still remains, but the ``fixed_key`` configuration options should be moved to the ``[key_manager]`` section nova-17.0.13/releasenotes/notes/placement-claims-844540aa7bf52b33.yaml0000664000175000017500000000137713556316250024737 0ustar zuulzuul00000000000000--- other: - | The filter scheduler will now attempt to claim a number of resources in the placement API after determining a list of potential hosts. We attempt to claim these resources for each instance in the build request, and if a claim does not succeed, we try this claim against the next potential host the scheduler selected. This claim retry process can potentially attempt claims against a large number of hosts, and we do not limit the number of hosts to attempt claims against. Claims for resources may fail due to another scheduler process concurrently claiming resources against the same compute node. This concurrent resource claim is normal and the retry of a claim request should be unusual but harmless. nova-17.0.13/releasenotes/notes/policy-discover-cli-a14a115cacbdc9c6.yaml0000664000175000017500000000057613556316250025670 0ustar zuulzuul00000000000000--- features: - The nova-policy command line is implemented as a tool to experience the under-development feature policy discovery. User can input the credentials information and the instance info, the tool will return a list of API which can be allowed to invoke. There isn't any contract for the interface of the tool due to the feature still under-development. nova-17.0.13/releasenotes/notes/bug-1686136-b07bef4c56e92b31.yaml0000664000175000017500000000047613556316250023276 0ustar zuulzuul00000000000000--- other: - Adds ``sata`` as a valid disk bus for qemu and kvm hypervisors. Setting the ``hw_disk_bus`` custom property on glance images allows for selecting the type of disk bus e.g. VIRTIO/IDE/SCSI. Some Linux (custom) images require use of SATA bus rather than any other that seem to be allowed. nova-17.0.13/releasenotes/notes/placement-rest-api-nested-resource-providers-552a923a96d7adca.yaml0000664000175000017500000000145113556316250032472 0ustar zuulzuul00000000000000--- features: - New placement REST API microversion 1.14 is added to support nested resource providers. Users of the placement REST API can now pass a ``in_tree=`` parameter to the ``GET /resource_providers`` REST API call. This will trigger the placement service to return all resource provider records within the "provider tree" of the resource provider with the supplied UUID value. The resource provider representation now includes a ``parent_provider_uuid`` value that indicates the UUID of the immediate parent resource provider, or ``null`` if the provider has no parent. For convenience, the resource provider resource also contains a ``root_provider_uuid`` field that is populated with the UUID of the top-most resource provider in the provider tree. nova-17.0.13/releasenotes/notes/1516578-628b417b372f4f0f.yaml0000664000175000017500000000116413556316250022364 0ustar zuulzuul00000000000000--- features: - | Enables NUMA topology reporting on PowerPC architecture from the libvirt driver in Nova but with a caveat as mentioned below. NUMA cell affinity and dedicated cpu pinning code assumes that the host operating system is exposed to threads. PowerPC based hosts use core based scheduling for processes. Due to this, the cores on the PowerPC architecture are treated as threads. Since cores are always less than or equal to the threads on a system, this leads to non-optimal resource usage while pinning. This feature is supported from libvirt version 1.2.19 for PowerPC. nova-17.0.13/releasenotes/notes/deprecate-allow_instance_snapshots-c63c45856c902e1e.yaml0000664000175000017500000000047713556316250030572 0ustar zuulzuul00000000000000--- deprecations: - | The ``[api]/allow_instance_snapshots`` configuration option is now deprecated for removal. To disable snapshots in the ``createImage`` server action API, change the ``os_compute_api:servers:create_image`` and ``os_compute_api:servers:create_image:allow_volume_backed`` policies. nova-17.0.13/releasenotes/notes/glance-api-servers-must-be-urls-558298647cbfc81c.yaml0000664000175000017500000000031613556316250027564 0ustar zuulzuul00000000000000--- upgrade: - | If using the ``api_servers`` option in the ``[glance]`` configuration section, the values therein must be URLs. Raw IP addresses will result in hard failure of API requests. nova-17.0.13/releasenotes/notes/archive-all-db-aadf2ce0394c24fa.yaml0000664000175000017500000000042613556316250024562 0ustar zuulzuul00000000000000--- features: - | Support for archiving all deleted rows from the database has been added to the ``nova-manage db archive_deleted_rows`` command. The ``--until-complete`` option will continuously run the process until no more rows are available for archiving. nova-17.0.13/releasenotes/notes/remove_config_network_device_mtu-75780f727c322ff3.yaml0000664000175000017500000000024413556316250030251 0ustar zuulzuul00000000000000--- upgrade: - The network_device_mtu option in Nova is deprecated for removal in 13.0.0 since network MTU should be specified when creating the network. ././@LongLink0000000000000000000000000000014700000000000011217 Lustar 00000000000000nova-17.0.13/releasenotes/notes/add-whitelist-for-server-list-filter-sort-params-2ae766d03ba895e5.yamlnova-17.0.13/releasenotes/notes/add-whitelist-for-server-list-filter-sort-params-2ae766d03ba895e5.ya0000664000175000017500000000460613556316250032616 0ustar zuulzuul00000000000000--- upgrade: - | The filter and sort query parameters for server list API are now limited according to whitelists. The whitelists are different for admin and non-admin users. **Filtering** The whitelist for REST API filters for admin users: - access_ip_v4 - access_ip_v6 - all_tenants - auto_disk_config - availability_zone - config_drive - changes-since - created_at - deleted - description - display_description - display_name - flavor - host - hostname - image - image_ref - ip - ip6 - kernel_id - key_name - launch_index - launched_at - limit - locked_by - marker - name - node - not-tags (available in 2.26+) - not-tags-any (available in 2.26+) - power_state - progress - project_id - ramdisk_id - reservation_id - root_device_name - sort_dir - sort_key - status - tags (available in 2.26+) - tags-any (available in 2.26+) - task_state - tenant_id - terminated_at - user_id - uuid - vm_state For non-admin users, there is a whitelist for filters already. That whitelist is unchanged. **Sorting** The whitelist for sort keys for admin users: - access_ip_v4 - access_ip_v6 - auto_disk_config - availability_zone - config_drive - created_at - display_description - display_name - host - hostname - image_ref - instance_type_id - kernel_id - key_name - launch_index - launched_at - locked_by - node - power_state - progress - project_id - ramdisk_id - root_device_name - task_state - terminated_at - updated_at - user_id - uuid - vm_state For non-admin users, the sort key ``host`` and ``node`` will be excluded. **Other** `HTTP Bad Request 400` will be returned for the filters/sort keys which are on joined tables or internal data model attributes. They would previously cause a `HTTP Server Internal Error 500`, namely: - block_device_mapping - info_cache - metadata - pci_devices - security_groups - services - system_metadata In order to maintain backward compatibility, filter and sort parameters which are not mapped to the REST API `servers` resource representation are ignored. nova-17.0.13/releasenotes/notes/remove-auth-admin-token-support-1b59ae7739b06bc2.yaml0000664000175000017500000000033613556316250027754 0ustar zuulzuul00000000000000--- upgrade: - The deprecated auth parameter `admin_auth_token` was removed from the [ironic] config option group. The use of `admin_auth_token` is insecure compared to the use of a proper username/password. nova-17.0.13/releasenotes/notes/bug-1695861-ebc8a0aa7a87f7e0.yaml0000664000175000017500000000052013556316251023432 0ustar zuulzuul00000000000000--- fixes: - | Fixes `bug 1695861`_ in which the aggregate API accepted requests that have availability zone names including ':'. With this fix, a creation of an availabilty zone whose name includes ':' results in a ``400 BadRequest`` error response. .. _bug 1695861: https://bugs.launchpad.net/nova/+bug/1695861 nova-17.0.13/releasenotes/notes/deprecate-live-migration-progress-timeout-b4640047dc5c8eed.yaml0000664000175000017500000000143213556316250032066 0ustar zuulzuul00000000000000--- issues: - | The live-migration progress timeout controlled by the configuration option ``[libvirt]/live_migration_progress_timeout`` has been discovered to frequently cause live-migrations to fail with a progress timeout error, even though the live-migration is still making good progress. To minimize problems caused by these checks we have changed the default to 0, which means do not trigger a timeout. To modify when a live-migration will fail with a timeout error, please now look at ``[libvirt]/live_migration_completion_timeout`` and ``[libvirt]/live_migration_downtime``. deprecations: - | ``[libvirt]/live_migration_progress_timeout`` has been deprecated as this feature has been found not to work. See bug 1644248 for more details. nova-17.0.13/releasenotes/notes/deprecate-xenserver-vif-driver-option-12eb279c0c93c157.yaml0000664000175000017500000000116613556316250031056 0ustar zuulzuul00000000000000--- upgrade: - | The default value for the ``[xenserver]/vif_driver`` configuration option has been changed to ``nova.virt.xenapi.vif.XenAPIOpenVswitchDriver`` to match the default configuration of ``[DEFAULT]/use_neutron=True``. deprecations: - | The ``[xenserver]/vif_driver`` configuration option is deprecated for removal. The ``XenAPIOpenVswitchDriver`` vif driver is used for Neutron and the ``XenAPIBridgeDriver`` vif driver is used for nova-network, which itself is deprecated. In the future, the ``use_neutron`` configuration option will be used to determine which vif driver to load. nova-17.0.13/releasenotes/notes/deprecate-nova-manage-commands-569835050b675180.yaml0000664000175000017500000000044513556316250027153 0ustar zuulzuul00000000000000--- deprecations: - | The `nova-manage cell` command has been deprecated. This command configures various aspects of the Cells v1 functionality. Cells v1 has been deprecated, thus, this command is also deprecated. It will be removed in its entirety when Cells v1 is removed. nova-17.0.13/releasenotes/notes/glance-via-ksa-5646eb3d5db51c54.yaml0000664000175000017500000000113113556316250024356 0ustar zuulzuul00000000000000--- upgrade: - | Nova now uses keystoneauth1 configuration to set up communication with the image service. Use keystoneauth1 loading parameters for Session and Adapter setup in the ``[glance]`` conf section. This includes using ``endpoint_override`` in favor of ``api_servers``. The ``[glance]api_servers`` conf option is still supported, but should only be used if you need multiple endpoints and are unable to use a load balancer for some reason. However, note that no configuration is necessary with an appropriate service catalog entry for the image service. nova-17.0.13/releasenotes/notes/bug-1559026-47c3fa3468d66b07.yaml0000664000175000017500000000035113556316250023133 0ustar zuulzuul00000000000000--- upgrade: - The ``record`` configuration option for the console proxy services (like VNC, serial, spice) is changed from boolean to string. It specifies the filename that will be used for recording websocket frames. nova-17.0.13/releasenotes/notes/oslo_reports_config-23d89ab202937d25.yaml0000664000175000017500000000077713556316250025531 0ustar zuulzuul00000000000000--- features: - | Configuration options for `oslo.reports`, found in the ``oslo_reports`` group, are now exposed in nova. These include: - ``log_dir`` - ``file_event_handler`` - ``file_event_handler_interval`` These will allow using a file trigger for the reports, which is particularly useful for Windows nodes where the default signals are not available. Also, specifying a log directory will allow the reports to be generated at a specific location instead of stdout. nova-17.0.13/releasenotes/notes/ironic-virt-driver-switch-to-vif-attach-detach-cc8583c604510f95.yaml0000664000175000017500000000035113556316250032373 0ustar zuulzuul00000000000000--- upgrade: - The Ironic driver now requires python-ironicclient>=1.9.0, and requires Ironic service to support API version 1.28 or higher. As usual, Ironic should be upgraded before Nova for a smooth upgrade process. nova-17.0.13/releasenotes/notes/remove_volume_api_class-a3c618228c89f57b.yaml0000664000175000017500000000024113556316250026431 0ustar zuulzuul00000000000000--- upgrade: - The deprecated ``volume_api_class`` config option has been removed. We only have one sensible backend for it, so don't need it anymore. nova-17.0.13/releasenotes/notes/add-pci-config-to-pci-group-5648cc0f307f24f8.yaml0000664000175000017500000000043013556316250026613 0ustar zuulzuul00000000000000--- upgrade: - | All pci configuration options have been added to the 'pci' group. They should no longer be included in the 'DEFAULT' group. These options are as below: - pci_alias (now pci.alias) - pci_passthrough_whitelist (now pci.passthrough_whitelist) nova-17.0.13/releasenotes/notes/bp-virtuozzo-instance-resize-support-b523e6e8a0de0fbc.yaml0000664000175000017500000000041413556316250031315 0ustar zuulzuul00000000000000--- features: - Virtuozzo ploop disks can be resized now during "nova resize". upgrade: - You must update the rootwrap configuration for the compute service if you use ploop images, so that "ploop grow" filter is changed to "prl_disk_tool resize". nova-17.0.13/releasenotes/notes/ironic-driver-hash-ring-7d763d87b9236e5d.yaml0000664000175000017500000000337613556316250026205 0ustar zuulzuul00000000000000--- features: - | Adds a new feature to the ironic virt driver, which allows multiple nova-compute services to be run simultaneously. This uses consistent hashing to divide the ironic nodes between the nova-compute services, with the hash ring being refreshed each time the resource tracker runs. Note that instances will still be owned by the same nova-compute service for the entire life of the instance, and so the ironic node that instance is on will also be managed by the same nova-compute service until the node is deleted. This also means that removing a nova-compute service will leave instances managed by that service orphaned, and as such most instance actions will not work until a nova-compute service with the same hostname is brought (back) online. When nova-compute services are brought up or down, the ring will eventually re-balance (when the resource tracker runs on each compute). This may result in duplicate compute_node entries for ironic nodes while the nova-compute service pool is re-balancing. However, because any nova-compute service running the ironic virt driver can manage any ironic node, if a build request goes to the compute service not currently managing the node the build request is for, it will still succeed. There is no configuration to do to enable this feature; it is always enabled. There are no major changes when only one compute service is running. If more compute services are brought online, the bigger changes come into play. Note that this is tested when running with only one nova-compute service, but not more than one. As such, this should be used with caution for multiple compute hosts until it is properly tested in CI. nova-17.0.13/releasenotes/notes/add-wsgi-config-to-wsgi-group-712b8cd9ada65b2e.yaml0000664000175000017500000000022313556316250027416 0ustar zuulzuul00000000000000--- upgrade: - All WSGI configuration options have been added to the 'wsgi' group. They should no longer be included in the 'DEFAULT' group. nova-17.0.13/releasenotes/notes/fix-multiarch-image-props-filter-f2e885aa53d585ea.yaml0000664000175000017500000000076113556316250030154 0ustar zuulzuul00000000000000--- fixes: - The behaviour of ImagePropertiesFilter when using multiple architectures in a cloud can be unpredictable for a user if they forget to set the architecture property in their image. Nova now allows the deployer to specify a fallback in ``[filter_scheduler]image_properties_default_architecture`` to use a default architecture if none is specified. Without this, it is possible that a VM would get scheduled on a compute node that does not support the image. nova-17.0.13/releasenotes/notes/request_log-e7680b3276910743.yaml0000664000175000017500000000101413556316250023633 0ustar zuulzuul00000000000000--- upgrade: - | A new request_log middleware is created to log REST HTTP requests even if Nova API is not running under eventlet.wsgi. Because this is an api-paste.ini change, you will need to manually update your api-paste.ini with the one from the release to get this functionality. The new request logs will only emit when it is detected that nova-api is not running under eventlet, and will include the microversion of the request in addition to all the previously logged information. nova-17.0.13/releasenotes/notes/notification-transformation-queens-c360f10c7516cae4.yaml0000664000175000017500000000147213556316250030622 0ustar zuulzuul00000000000000--- features: - | The following legacy notifications have been transformed to a new versioned payload: * aggregate.add_host * aggregate.remove_host * instance.evacuate * instance.interface_attach * instance.interface_detach * instance.live_migration_abort * instance.live_migration_pre * instance.rescue * instance.resize_confirm * instance.resize_prep * instance.resize_revert * instance.resize.error * instance.trigger_crash_dump * instance.unrescue * keypair.delete * keypair.import * server_group.create * server_group.delete Every versioned notification has a sample file stored under doc/notification_samples directory. Consult https://docs.openstack.org/nova/latest/reference/notifications.html for more information. nova-17.0.13/releasenotes/notes/fix-ironic-inventory-d565c77af83c710d.yaml0000664000175000017500000000257213556316250025716 0ustar zuulzuul00000000000000--- fixes: - | The ironic virt driver no longer reports an empty inventory for bare metal nodes that have instances on them. Instead the custom resource class, VCPU, memory and disk are reported as they are configured on the node. issues: - | Due to the changes in scheduling of bare metal nodes, additional resources may be reported as free to Placement. This happens in two cases: * An instance is deployed with a flavor smaller than a node (only possible when exact filters are not used) * Node properties were modified in ironic for a deployed nodes When such instances were deployed without using a custom resource class, it is possible for the scheduler to try deploying another instance on the same node. It will cause a failure in the compute and a scheduling retry. The recommended work around is to assign a resource class to all ironic nodes, and use it for scheduling of bare metal instances. deprecations: - | Scheduling bare metal (ironic) instances using standard resource classes (VCPU, memory, disk) is deprecated and will no longer be supported in Queens. Custom resource classes should be used instead. Please refer to the `ironic documentation `_ for a detailed explanation. nova-17.0.13/releasenotes/notes/bp-virtuozzo-cloud-storage-support-4f4cda52ca41538e.yaml0000664000175000017500000000052513556316250030627 0ustar zuulzuul00000000000000--- features: - | Virtuozzo Storage is available as a volume backend in libvirt virtualization driver. .. note:: Only qcow2/raw volume format supported, but not ploop. upgrade: - For the Virtuozzo Storage driver to work with os-brick <1.4.0, you need to allow "pstorage-mount" in rootwrap filters for nova-compute. nova-17.0.13/releasenotes/notes/config-cinder-admin-creds-b86038a3e87a1021.yaml0000664000175000017500000000202413556316250026321 0ustar zuulzuul00000000000000--- fixes: - | It is now possible to configure the ``[cinder]`` section of nova.conf to allow setting admin-role credentials for scenarios where a user token is not available to perform actions on a volume. For example, when ``reclaim_instance_interval`` is a positive integer, instances are soft deleted until the nova-compute service periodic task removes them. If a soft deleted instance has volumes attached, the compute service needs to be able to detach and possibly delete the associated volumes, otherwise they will be orphaned in the block storage service. Similarly, if ``running_deleted_instance_poll_interval`` is set and ``running_deleted_instance_action = reap``, then the compute service will need to be able to detach and possibly delete volumes attached to instances that are reaped. See `bug 1733736`_ and `bug 1734025`_ for more details. .. _bug 1733736: https://bugs.launchpad.net/nova/+bug/1733736 .. _bug 1734025: https://bugs.launchpad.net/nova/+bug/1734025 nova-17.0.13/releasenotes/notes/bug-1759316-nova-status-api-version-check-183fac0525bfd68c.yaml0000664000175000017500000000076513556316250031070 0ustar zuulzuul00000000000000--- upgrade: - | A new check is added to ``nova-status upgrade check`` which will scan all cells looking for ``nova-osapi_compute`` service versions which are from before Ocata and which may cause issues with how the compute API finds instances. This will result in a warning if: * No cell mappings are found * The minimum ``nova-osapi_compute`` service version is less than 15 in any given cell See https://bugs.launchpad.net/nova/+bug/1759316 for more details. nova-17.0.13/releasenotes/notes/parallels_support_snapshot-29b4ffae300c1f05.yaml0000664000175000017500000000013613556316250027337 0ustar zuulzuul00000000000000--- features: - Libvirt with Virtuozzo virtualization type now supports snapshot operations nova-17.0.13/releasenotes/notes/remove-scheduler_json_config_location-option-c669e8c9867ce0fb.yaml0000664000175000017500000000023713556316250032735 0ustar zuulzuul00000000000000--- upgrade: - | The ``scheduler_json_config_location`` configuration option has not been used since the 13.0.0 Mitaka release and has been removed. nova-17.0.13/releasenotes/notes/service-uuid-online-migration-17d48f198a6d4deb.yaml0000664000175000017500000000037513556316250027554 0ustar zuulzuul00000000000000--- upgrade: - | An online data migration has been added to populate the ``services.uuid`` column in the nova database for non-deleted services records. Listing or showing services out of the ``os-services`` API will have the same effect. nova-17.0.13/releasenotes/notes/remove-check-attach-68b9ec781ad184ff.yaml0000664000175000017500000000242213556316250025511 0ustar zuulzuul00000000000000--- fixes: - | Fixes `bug 1581230`_ by removing the internal ``check_attach`` call from the Nova code as it can cause race conditions and the checks are handled by ``reserve_volume`` in Cinder. ``reserve_volume`` is called in every volume attach scenario to provide the necessary checks and volume state validation on the Cinder side. other: - | By removing the ``check_attach`` internal call from Nova, small behavioral changes were introduced. ``reserve_volume`` call was added to the boot from volume scenario. In case a failure occurs while building the instance, the instance goes into ERROR state while the volume stays in ``attaching`` state. The volume state will be set back to ``available`` when the instance gets deleted. Additional availability zone check is added to the volume attach flow, which results in an availability zone check when an instance gets unshelved. In case the deployment is not sensitive to availability zones and not using the AvailabilityZoneFilter scheduler filter the current default settings (cross_az_attach=True) are allowing to perform unshelve the same way as before this change without additional configuration. .. _`bug 1581230`: https://bugs.launchpad.net/nova/+bug/1581230 nova-17.0.13/releasenotes/notes/remove-deprecated-vendordata_driver-opt-3ececc051e581070.yaml0000664000175000017500000000102413556316250031456 0ustar zuulzuul00000000000000--- upgrade: - | The ``[DEFAULT] vendordata_driver`` option was deprecated in Mitaka and has now been removed. Configuration of vendordata drivers should now be done by using the ``[api] vendordata_providers`` option. For more information, refer to the `vendordata documentation`__. __ https://docs.openstack.org/nova/latest/user/vendordata.html - | The ``[api] vendordata_providers`` option now defaults to ``[StaticJSON]``. This ensures existing behavior of the vendordata v1 driver is preserved. nova-17.0.13/releasenotes/notes/bug-1661258-ee202843157f6a27.yaml0000664000175000017500000000056013556316250023050 0ustar zuulzuul00000000000000--- issues: - | Ironic nodes that were deleted from ironic's database during Newton may result in orphaned resource providers causing incorrect scheduling decisions, leading to a reschedule. If this happens, the orphaned resource providers will need to be identified and removed. See also https://bugs.launchpad.net/nova/+bug/1661258 nova-17.0.13/releasenotes/notes/ironic-serial-console-support-82632bd4db6d1fda.yaml0000664000175000017500000000070013556316250027642 0ustar zuulzuul00000000000000--- features: - Adds serial console support to Ironic driver. Nova now supports serial console to Ironic bare metals for Ironic ``socat`` console driver. In order to use this feature, serial console must be configured in Nova and the Ironic ``socat`` console driver must be used and configured in Ironic. Ironic serial console configuration is documented in http://docs.openstack.org/developer/ironic/deploy/console.html. nova-17.0.13/releasenotes/notes/add-cloudpipe-config-to-cloudpipe-group-ab96ebcb3ffc5d82.yaml0000664000175000017500000000023513556316250031614 0ustar zuulzuul00000000000000--- upgrade: - All cloudpipe configuration options have been added to the 'cloudpipe' group. They should no longer be included in the 'DEFAULT' group. nova-17.0.13/releasenotes/notes/fill-instance-action-record-gaps-14b36eba313d6d87.yaml0000664000175000017500000000046113556316250030004 0ustar zuulzuul00000000000000--- features: - | The following instance action records have been added: * ``attach_interface`` * ``detach_interface`` * ``attach_volume`` * ``detach_volume`` * ``swap_volume`` * ``lock`` * ``unlock`` * ``shelveOffload`` * ``createBackup`` * ``createImage`` nova-17.0.13/releasenotes/notes/deprecate-topic-opts-68b1a752dba1eb24.yaml0000664000175000017500000000046113556316250025701 0ustar zuulzuul00000000000000--- deprecations: - | The ``topic`` config options are now deprecated and will be removed in the next release. The deprecated options are as below: * cells.topic * compute_topic * conductor.topic * console_topic * consoleauth_topic * network_topic * scheduler_topic nova-17.0.13/releasenotes/notes/lock_policy-75bea372036acbd5.yaml0000664000175000017500000000001713556316250024155 0ustar zuulzuul00000000000000--- prelude: > nova-17.0.13/releasenotes/notes/ocata-requires-cellv2-96bd243be874d77f.yaml0000664000175000017500000000124213556316250025730 0ustar zuulzuul00000000000000--- upgrade: - Ocata requires that your deployment have created the cell and host mappings in Newton. If you have not done this, Ocata's `db sync` command will fail. Small deployments will want to run `nova-manage cell_v2 simple_cell_setup` on Newton before upgrading. Operators must create a new database for cell0 before running `cell_v2 simple_cell_setup`. The simple cell setup command expects the name of the cell0 database to be `
_cell0` as it will create a cell mapping for cell0 based on the main database connection, sync the cell0 database, and associate existing hosts and instances with the single cell. nova-17.0.13/releasenotes/notes/move-notifications-opts-to-notifications-group-7dc9e76673472b8b.yaml0000664000175000017500000000056313556316250032767 0ustar zuulzuul00000000000000--- upgrade: - | Following Notifications related configuration options have been moved from the ``DEFAULT`` group to the ``notifications`` group: - ``notify_on_state_change`` - ``notify_on_api_faults`` (was ``notify_api_faults``) - ``default_level`` (was ``default_notification_level``) - ``default_publisher_id`` - ``notification_format`` nova-17.0.13/releasenotes/notes/disco_volume_libvirt_driver-916428b8bd852732.yaml0000664000175000017500000000012213556316250027162 0ustar zuulzuul00000000000000--- features: - Libvirt driver in Nova now supports Cinder DISCO volume driver. nova-17.0.13/releasenotes/notes/vendordata-reboot-cache-boot-roles-6051fabcd4981928.yaml0000664000175000017500000000061513556316250030272 0ustar zuulzuul00000000000000--- features: - | The vendordata metadata system now caches boot time roles. Some external vendordata services want to provide metadata based on the role of the user who started the instance. It would be confusing if the metadata returned changed later if the role of the user changed, so we cache the boot time roles and then pass those to the external vendordata service. nova-17.0.13/releasenotes/notes/deprecate-config-image-file-url-46c20999756afce0.yaml0000664000175000017500000000060313556316250027526 0ustar zuulzuul00000000000000--- deprecations: - The feature to download *Glance* images via file transfer instead of HTTP is now deprecated and may be removed as early as the 15.0.0 release. The config options ``filesystems`` in the section ``image_file_url`` are affected as well as the derived sections ``image_file_url:`` and their config options ``id`` and ``mountpoint``.nova-17.0.13/releasenotes/notes/bug-1733886-os-quota-sets-force-2.36-5866924621ecc857.yaml0000664000175000017500000000110213556316250027214 0ustar zuulzuul00000000000000--- fixes: - | This release includes a fix for `bug 1733886`_ which was a regression introduced in the 2.36 API microversion where the ``force`` parameter was missing from the ``PUT /os-quota-sets/{tenant_id}`` API request schema so users could not force quota updates with microversion 2.36 or later. The bug is now fixed so that the ``force`` parameter can once again be specified during quota updates. There is no new microversion for this change since it is an admin-only API. .. _bug 1733886: https://bugs.launchpad.net/nova/+bug/1733886 nova-17.0.13/releasenotes/notes/deprecate-conductor-manager-class-03620676d939b0eb.yaml0000664000175000017500000000015413556316250030105 0ustar zuulzuul00000000000000--- deprecations: - The conductor.manager configuration option is now deprecated and will be removed. nova-17.0.13/releasenotes/notes/deprecate_glance_opts-eab01aba5dcda38a.yaml0000664000175000017500000000031613556316250026444 0ustar zuulzuul00000000000000--- deprecations: - The host, port, and protocol options in the [glance] configuration section are deprecated, and will be removed in the N release. The api_servers value should be used instead. nova-17.0.13/releasenotes/notes/bug-1704788-490797827bae9142.yaml0000664000175000017500000000034313556316250023012 0ustar zuulzuul00000000000000--- fixes: - Correctly allow the use of a custom scheduler driver by using the name of the custom driver entry point in the ``[scheduler]/driver`` config option. You must also update the entry point in ``setup.cfg``. nova-17.0.13/releasenotes/notes/vendordata-reboot-ad1130444a63f2d0.yaml0000664000175000017500000000052013556316250025110 0ustar zuulzuul00000000000000--- features: - This release includes a new implementation of the vendordata metadata system. Please see the blueprint at http://specs.openstack.org/openstack/nova-specs/specs/newton/approved/vendordata-reboot.html for a detailed description. There is also documentation in the Nova source tree in vendordata.rst. nova-17.0.13/releasenotes/notes/deprecate-barbican-config-options-68ae65643ac41e2f.yaml0000664000175000017500000000030113556316250030223 0ustar zuulzuul00000000000000--- deprecations: - All barbican config options in Nova are now deprecated and may be removed as early as 15.0.0 release. All of these options are moved to the Castellan library. nova-17.0.13/releasenotes/notes/remove-discoverable-policy-rules-4a2c87e1c88a3228.yaml0000664000175000017500000000071413556316250030106 0ustar zuulzuul00000000000000--- upgrade: - | All policy rules with the following naming scheme have been removed: ``os_compute_api:{extension_alias}:discoverable`` These policy rules were used to hide an enabled extension from the list active API extensions API. Given it is no longer possible to disable any API extensions, it makes no sense to have the option to hide the fact an API extension is active. As such, all these policy rules have been removed. nova-17.0.13/releasenotes/notes/placement-rest-custom-resource-classes-a3f2175772983b0a.yaml0000664000175000017500000000076713556316250031165 0ustar zuulzuul00000000000000--- features: - | A new administrator-only resource endpoint was added to the OpenStack Placement REST API for managing custom resource classes. Custom resource classes are specific to a deployment and represent types of quantitative resources that are not interoperable between OpenStack clouds. See the `Placement REST API Version History`_ documentation for usage details. .. _Placement REST API Version History: http://docs.openstack.org/developer/nova/placement.html#id2 nova-17.0.13/releasenotes/notes/bug-1414895-8f7d8da6499f8e94.yaml0000664000175000017500000000216413556316250023257 0ustar zuulzuul00000000000000--- other: - | The ``[workarounds]/ensure_libvirt_rbd_instance_dir_cleanup`` configuration option has been introduced. This can be used by operators to ensure that instance directories are always removed during cleanup within the Libvirt driver while using ``[libvirt]/images_type = rbd``. This works around known issues such as `bug 1414895`_ when cleaning up after an evacuation and `bug 1761062`_ when reverting from an instance resize. Operators should be aware that this workaround only applies when using the libvirt compute driver and rbd images_type as enabled by the following configuration options: * ``[DEFAULT]/compute_driver = libvirt`` * ``[libvirt]/images_type = rbd`` .. warning:: Operators will need to ensure that the instance directory itself, specified by ``[DEFAULT]/instances_path``, is not shared between computes before enabling this workaround, otherwise files associated with running instances may be removed. .. _bug 1414895: https://bugs.launchpad.net/nova/+bug/1414895 .. _bug 1761062: https://bugs.launchpad.net/nova/+bug/1761062 nova-17.0.13/releasenotes/notes/bp-keypairs-pagination-634c46aaa1058161.yaml0000664000175000017500000000031113556316250025773 0ustar zuulzuul00000000000000--- features: - Added microversion v2.35 that adds pagination support for keypairs with the help of new optional parameters 'limit' and 'marker' which were added to GET /os-keypairs request. nova-17.0.13/releasenotes/notes/update-swap-decorator-7622a265df55feaa.yaml0000664000175000017500000000027713556316250026100 0ustar zuulzuul00000000000000--- fixes: - prevent swap_volume action if the instance is in state SUSPENDED, STOPPED or SOFT_DELETED. A conflict (409) will be raised now as previously it used to fail silently. nova-17.0.13/releasenotes/notes/drop_instancev1_obj-4447ddd2bea644fa.yaml0000664000175000017500000000043413556316250025670 0ustar zuulzuul00000000000000--- upgrade: - | (Only if you do continuous deployment) 1337890ace918fa2555046c01c8624be014ce2d8 drops support for an instance major version, which means that you must have deployed at least commit 713d8cb0777afb9fe4f665b9a40cac894b04aacb before deploying this one. nova-17.0.13/releasenotes/notes/remove-cloudpipe-api-f7aea9372046ecfc.yaml0000664000175000017500000000023113556316250025766 0ustar zuulzuul00000000000000--- upgrade: - The deprecated /os-cloudpipe API endpoint has been removed. Whenever calls are made to that endpoint it now returns a 410 response. nova-17.0.13/releasenotes/notes/refresh-quotas-usage-362b239171c75f5f.yaml0000664000175000017500000000077113556316250025523 0ustar zuulzuul00000000000000--- features: - Add a nova-manage command to refresh the quota usages for a project or user. This can be used when the usages in the quota-usages database table are out-of-sync with the actual usages. For example, if a resource usage is at the limit in the quota_usages table, but the actual usage is less, then nova will not allow VMs to be created for that project or user. The nova-manage command can be used to re-sync the quota_usages table with the actual usage. nova-17.0.13/releasenotes/notes/config_scheduler_driver-e751ae392bc1a1d0.yaml0000664000175000017500000000067513556316250026530 0ustar zuulzuul00000000000000--- upgrade: - | The option ``scheduler_driver`` is now changed to use entrypoint instead of full class path. Set one of the entrypoints under the namespace 'nova.scheduler.driver' in 'setup.cfg'. Its default value is 'host_manager'. The full class path style is still supported in current release. But it is not recommended because class path can be changed and this support will be dropped in the next major release. nova-17.0.13/releasenotes/notes/.placeholder0000664000175000017500000000000013556316250020750 0ustar zuulzuul00000000000000nova-17.0.13/releasenotes/notes/pagination-for-usage-a313397f9a7e9a70.yaml0000664000175000017500000000132213556316250025545 0ustar zuulzuul00000000000000--- features: - | Added microversion v2.40 which introduces pagination support for usage with the help of new optional parameters 'limit' and 'marker'. If 'limit' isn't provided, it will default to the configurable max limit which is currently 1000. :: /os-simple-tenant-usage?limit={limit}&marker={instance_uuid} /os-simple-tenant-usage/{tenant}?limit={limit}&marker={instance_uuid} Older microversions will not accept these new paging query parameters, but they will start to silently limit by the max limit to encourage the adoption of this new microversion, and circumvent the existing possibility DoS-like usage requests on systems with thousands of instances.nova-17.0.13/releasenotes/notes/openstack-request-id-95f7bc7e960344a4.yaml0000664000175000017500000000071113556316250025601 0ustar zuulzuul00000000000000--- features: - | Nova now uses oslo.middleware for request_id processing. This means that there is now a new ``X-OpenStack-Request-ID`` header returned on every request which mirrors the content of the existing ``X-Compute-Request-ID``. The expected existence of this header is signaled by Microversion 2.46. If server version >= 2.46, you can expect to see this header in your results (regardless of microversion requested). nova-17.0.13/releasenotes/notes/ironic-resource-class-6496fed067df629f.yaml0000664000175000017500000000021513556316250026037 0ustar zuulzuul00000000000000--- upgrade: - The ironic driver now requires python-ironicclient>=1.6.0, and requires the ironic service to support API version 1.21. nova-17.0.13/releasenotes/notes/notify_on_state_change_opt-e3c6f6664e143993.yaml0000664000175000017500000000044613556316250027056 0ustar zuulzuul00000000000000--- upgrade: - | The ``notify_on_state_change`` configuration option was StrOpt, which would accept any string or None in the previous release. Starting in the Newton release, it allows only three values: None, ``vm_state``, ``vm_and_task_state``. The default value is None. nova-17.0.13/releasenotes/notes/libvirt-script-with-empty-path-2b49caa68b05278d.yaml0000664000175000017500000000272213556316250027617 0ustar zuulzuul00000000000000--- issues: - | When generating Libvirt XML to attach network interfaces for the `tap`, `ivs`, `iovisor`, `midonet`, and `vrouter` virtual interface types Nova previously generated an empty path attribute to the script element (` """ def run(self): notifications = self._collect_notifications() return self._build_markup(notifications) def _import_all_notification_packages(self): map(lambda module: importlib.import_module(module), ('nova.notifications.objects.' + name for _, name, _ in pkgutil.iter_modules(nova.notifications.objects.__path__))) def _collect_notifications(self): self._import_all_notification_packages() base.NovaObjectRegistry.register_notification_objects() notifications = {} ovos = base.NovaObjectRegistry.obj_classes() for name, cls in ovos.items(): cls = cls[0] if (issubclass(cls, notification.NotificationBase) and cls != notification.NotificationBase): payload_name = cls.fields['payload'].objname payload_cls = ovos[payload_name][0] for sample in cls.samples: if sample in notifications: raise ValueError('Duplicated usage of %s ' 'sample file detected' % sample) notifications[sample] = ((cls.__name__, payload_cls.__name__, sample)) return sorted(notifications.values()) def _build_markup(self, notifications): content = [] cols = ['Event type', 'Notification class', 'Payload class', 'Sample'] table = nodes.table() content.append(table) group = nodes.tgroup(cols=len(cols)) table.append(group) head = nodes.thead() group.append(head) for _ in cols: group.append(nodes.colspec(colwidth=1)) body = nodes.tbody() group.append(body) # fill the table header row = nodes.row() body.append(row) for col_name in cols: col = nodes.entry() row.append(col) text = nodes.strong(text=col_name) col.append(text) # fill the table content, one notification per row for name, payload, sample_file in notifications: event_type = sample_file[0: -5].replace('-', '.') row = nodes.row() body.append(row) col = nodes.entry() row.append(col) text = nodes.literal(text=event_type) col.append(text) col = nodes.entry() row.append(col) text = nodes.literal(text=name) col.append(text) col = nodes.entry() row.append(col) text = nodes.literal(text=payload) col.append(text) col = nodes.entry() row.append(col) with open(os.path.join(self.SAMPLE_ROOT, sample_file), 'r') as f: sample_content = f.read() sample_obj = jsonutils.loads(sample_content) sample_obj = json_ref.resolve_refs( sample_obj, base_path=os.path.abspath(self.SAMPLE_ROOT)) sample_content = jsonutils.dumps(sample_obj, sort_keys=True, indent=4, separators=(',', ': ')) event_type = sample_file[0: -5] html_str = self.TOGGLE_SCRIPT % ((event_type, ) * 3) html_str += ("" % event_type) html_str += ("
%s
" % (event_type, sample_content)) raw = nodes.raw('', html_str, format="html") col.append(raw) return content def setup(app): app.add_directive('versioned_notifications', VersionedNotificationDirective) nova-17.0.13/doc/ext/support_matrix.py0000664000175000017500000004500013556316250017674 0ustar zuulzuul00000000000000# Copyright (C) 2014 Red Hat, Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. """ This provides a sphinx extension able to render the source/support-matrix.ini file into the developer documentation. It is used via a single directive in the .rst file .. support_matrix:: """ import re import sys from six.moves import configparser from docutils import nodes from docutils.parsers import rst class SupportMatrix(object): """Represents the entire support matrix for Nova virt drivers """ def __init__(self): # List of SupportMatrixFeature instances, describing # all the features present in Nova virt drivers self.features = [] # Dict of (name, SupportMatrixTarget) enumerating # all the hypervisor drivers that have data recorded # for them in self.features. The 'name' dict key is # the value from the SupportMatrixTarget.key attribute self.targets = {} class SupportMatrixFeature(object): STATUS_MANDATORY = "mandatory" STATUS_CHOICE = "choice" STATUS_CONDITION = "condition" STATUS_OPTIONAL = "optional" STATUS_ALL = [STATUS_MANDATORY, STATUS_CHOICE, STATUS_CONDITION, STATUS_OPTIONAL] def __init__(self, key, title, status=STATUS_OPTIONAL, group=None, notes=None, cli=None): if not cli: cli = [] # A unique key (eg 'foo.bar.wizz') to identify the feature self.key = key # A human friendly short title for the feature self.title = title # One of the status constants self.status = status # Detail string if status was choice/condition self.group = group # Arbitrarily long string describing the feature in detail self.notes = notes # Dict of (name, SupportMatrixImplementation) detailing # the implementation for each hypervisor driver. The # 'name' dict key is the value from SupportMatrixTarget.key # for the hypervisor in question self.implementations = {} # A list of CLI commands which are related to that feature self.cli = cli class SupportMatrixImplementation(object): STATUS_COMPLETE = "complete" STATUS_PARTIAL = "partial" STATUS_MISSING = "missing" STATUS_UKNOWN = "unknown" STATUS_ALL = [STATUS_COMPLETE, STATUS_PARTIAL, STATUS_MISSING, STATUS_UKNOWN] def __init__(self, status=STATUS_MISSING, notes=None): # One of the status constants detailing the implementation # level self.status = status # Arbitrary string describing any caveats of the implementation. # Mandatory if status is 'partial', optional otherwise. self.notes = notes class SupportMatrixTarget(object): def __init__(self, key, title, driver, hypervisor=None, architecture=None): """:param key: Unique identifier for the hypervisor driver :param title: Human friendly name of the hypervisor :param driver: Name of the Nova driver :param hypervisor: (optional) Name of the hypervisor, if many :param architecture: (optional) Name of the architecture, if many """ self.key = key self.title = title self.driver = driver self.hypervisor = hypervisor self.architecture = architecture class SupportMatrixDirective(rst.Directive): # The argument is the filename, e.g. support-matrix.ini required_arguments = 1 def run(self): matrix = self._load_support_matrix() return self._build_markup(matrix) def _load_support_matrix(self): """Reads the support-matrix.ini file and populates an instance of the SupportMatrix class with all the data. :returns: SupportMatrix instance """ # SafeConfigParser was deprecated in Python 3.2 if sys.version_info >= (3, 2): cfg = configparser.ConfigParser() else: cfg = configparser.SafeConfigParser() env = self.state.document.settings.env fname = self.arguments[0] rel_fpath, fpath = env.relfn2path(fname) with open(fpath) as fp: cfg.readfp(fp) # This ensures that the docs are rebuilt whenever the # .ini file changes env.note_dependency(rel_fpath) matrix = SupportMatrix() matrix.targets = self._get_targets(cfg) matrix.features = self._get_features(cfg, matrix.targets) return matrix def _get_targets(self, cfg): # The 'targets' section is special - it lists all the # hypervisors that this file records data for targets = {} for item in cfg.options("targets"): if not item.startswith("driver-impl-"): continue # The driver string will optionally contain # a hypervisor and architecture qualifier # so we expect between 1 and 3 components # in the name key = item[12:] title = cfg.get("targets", item) name = key.split("-") if len(name) == 1: target = SupportMatrixTarget(key, title, name[0]) elif len(name) == 2: target = SupportMatrixTarget(key, title, name[0], name[1]) elif len(name) == 3: target = SupportMatrixTarget(key, title, name[0], name[1], name[2]) else: raise Exception("'%s' field is malformed in '[%s]' section" % (item, "DEFAULT")) targets[key] = target return targets def _get_features(self, cfg, targets): # All sections except 'targets' describe some feature of # the Nova hypervisor driver implementation features = [] for section in cfg.sections(): if section == "targets": continue if not cfg.has_option(section, "title"): raise Exception( "'title' field missing in '[%s]' section" % section) title = cfg.get(section, "title") status = SupportMatrixFeature.STATUS_OPTIONAL if cfg.has_option(section, "status"): # The value is a string "status(group)" where # the 'group' part is optional status = cfg.get(section, "status") offset = status.find("(") group = None if offset != -1: group = status[offset + 1:-1] status = status[0:offset] if status not in SupportMatrixFeature.STATUS_ALL: raise Exception( "'status' field value '%s' in ['%s']" "section must be %s" % (status, section, ",".join(SupportMatrixFeature.STATUS_ALL))) notes = None if cfg.has_option(section, "notes"): notes = cfg.get(section, "notes") cli = [] if cfg.has_option(section, "cli"): cli = cfg.get(section, "cli") feature = SupportMatrixFeature(section, title, status, group, notes, cli) # Now we've got the basic feature details, we must process # the hypervisor driver implementation for each feature for item in cfg.options(section): if not item.startswith("driver-impl-"): continue key = item[12:] if key not in targets: raise Exception( "Driver impl '%s' in '[%s]' not declared" % (item, section)) status = cfg.get(section, item) if status not in SupportMatrixImplementation.STATUS_ALL: raise Exception( "'%s' value '%s' in '[%s]' section must be %s" % (item, status, section, ",".join(SupportMatrixImplementation.STATUS_ALL))) noteskey = "driver-notes-" + item[12:] notes = None if cfg.has_option(section, noteskey): notes = cfg.get(section, noteskey) target = targets[key] impl = SupportMatrixImplementation(status, notes) feature.implementations[target.key] = impl for key in targets: if key not in feature.implementations: raise Exception("'%s' missing in '[%s]' section" % (key, section)) features.append(feature) return features def _build_markup(self, matrix): """Constructs the docutils content for the support matrix """ content = [] self._build_summary(matrix, content) self._build_details(matrix, content) self._build_notes(content) return content def _build_summary(self, matrix, content): """Constructs the docutils content for the summary of the support matrix. The summary consists of a giant table, with one row for each feature, and a column for each hypervisor driver. It provides an 'at a glance' summary of the status of each driver """ summarytitle = nodes.subtitle(text="Summary") summary = nodes.table() cols = len(matrix.targets.keys()) cols += 2 summarygroup = nodes.tgroup(cols=cols) summarybody = nodes.tbody() summaryhead = nodes.thead() for i in range(cols): summarygroup.append(nodes.colspec(colwidth=1)) summarygroup.append(summaryhead) summarygroup.append(summarybody) summary.append(summarygroup) content.append(summarytitle) content.append(summary) # This sets up all the column headers - two fixed # columns for feature name & status header = nodes.row() blank = nodes.entry() blank.append(nodes.emphasis(text="Feature")) header.append(blank) blank = nodes.entry() blank.append(nodes.emphasis(text="Status")) header.append(blank) summaryhead.append(header) # then one column for each hypervisor driver impls = list(matrix.targets.keys()) impls.sort() for key in impls: target = matrix.targets[key] implcol = nodes.entry() header.append(implcol) implcol.append(nodes.strong(text=target.title)) # We now produce the body of the table, one row for # each feature to report on for feature in matrix.features: item = nodes.row() # the hyperlink target name linking to details id = re.sub("[^a-zA-Z0-9_]", "_", feature.key) # first the to fixed columns for title/status keycol = nodes.entry() item.append(keycol) keyref = nodes.reference(refid=id) keytxt = nodes.inline() keycol.append(keytxt) keytxt.append(keyref) keyref.append(nodes.strong(text=feature.title)) statuscol = nodes.entry() item.append(statuscol) statuscol.append(nodes.inline( text=feature.status, classes=["sp_feature_" + feature.status])) # and then one column for each hypervisor driver impls = list(matrix.targets.keys()) impls.sort() for key in impls: target = matrix.targets[key] impl = feature.implementations[key] implcol = nodes.entry() item.append(implcol) id = re.sub("[^a-zA-Z0-9_]", "_", feature.key + "_" + key) implref = nodes.reference(refid=id) impltxt = nodes.inline() implcol.append(impltxt) impltxt.append(implref) status = "" if impl.status == SupportMatrixImplementation.STATUS_COMPLETE: status = u"\u2714" elif impl.status == SupportMatrixImplementation.STATUS_MISSING: status = u"\u2716" elif impl.status == SupportMatrixImplementation.STATUS_PARTIAL: status = u"\u2714" elif impl.status == SupportMatrixImplementation.STATUS_UKNOWN: status = u"?" implref.append(nodes.literal( text=status, classes=["sp_impl_summary", "sp_impl_" + impl.status])) summarybody.append(item) def _build_details(self, matrix, content): """Constructs the docutils content for the details of the support matrix. This is generated as a bullet list of features. Against each feature we provide the description of the feature and then the details of the hypervisor impls, with any driver specific notes that exist """ detailstitle = nodes.subtitle(text="Details") details = nodes.bullet_list() content.append(detailstitle) content.append(details) # One list entry for each feature we're reporting on for feature in matrix.features: item = nodes.list_item() status = feature.status if feature.group is not None: status += "(" + feature.group + ")" # The hypervisor target name linked from summary table id = re.sub("[^a-zA-Z0-9_]", "_", feature.key) # Highlight the feature title name item.append(nodes.strong(text=feature.title, ids=[id])) para = nodes.paragraph() para.append(nodes.strong(text="Status: " + status + ". ")) if feature.notes is not None: para.append(nodes.inline(text=feature.notes)) item.append(para) if feature.cli: item.append(self._create_cli_paragraph(feature)) para_divers = nodes.paragraph() para_divers.append(nodes.strong(text="drivers:")) # A sub-list giving details of each hypervisor target impls = nodes.bullet_list() for key in feature.implementations: target = matrix.targets[key] impl = feature.implementations[key] subitem = nodes.list_item() id = re.sub("[^a-zA-Z0-9_]", "_", feature.key + "_" + key) subitem += [ nodes.strong(text=target.title + ": "), nodes.literal(text=impl.status, classes=["sp_impl_" + impl.status], ids=[id]), ] if impl.notes is not None: subitem.append(self._create_notes_paragraph(impl.notes)) impls.append(subitem) para_divers.append(impls) item.append(para_divers) details.append(item) def _build_notes(self, content): """Constructs a list of notes content for the support matrix. This is generated as a bullet list. """ notestitle = nodes.subtitle(text="Notes") notes = nodes.bullet_list() content.append(notestitle) content.append(notes) NOTES = [ "Virtuozzo was formerly named Parallels in this document" ] for note in NOTES: item = nodes.list_item() item.append(nodes.strong(text=note)) notes.append(item) def _create_cli_paragraph(self, feature): """Create a paragraph which represents the CLI commands of the feature The paragraph will have a bullet list of CLI commands. """ para = nodes.paragraph() para.append(nodes.strong(text="CLI commands:")) commands = nodes.bullet_list() for c in feature.cli.split(";"): cli_command = nodes.list_item() cli_command += nodes.literal(text=c, classes=["sp_cli"]) commands.append(cli_command) para.append(commands) return para def _create_notes_paragraph(self, notes): """Constructs a paragraph which represents the implementation notes The paragraph consists of text and clickable URL nodes if links were given in the notes. """ para = nodes.paragraph() # links could start with http:// or https:// link_idxs = [m.start() for m in re.finditer('https?://', notes)] start_idx = 0 for link_idx in link_idxs: # assume the notes start with text (could be empty) para.append(nodes.inline(text=notes[start_idx:link_idx])) # create a URL node until the next text or the end of the notes link_end_idx = notes.find(" ", link_idx) if link_end_idx == -1: # In case the notes end with a link without a blank link_end_idx = len(notes) uri = notes[link_idx:link_end_idx + 1] para.append(nodes.reference("", uri, refuri=uri)) start_idx = link_end_idx + 1 # get all text after the last link (could be empty) or all of the # text if no link was given para.append(nodes.inline(text=notes[start_idx:])) return para def setup(app): app.add_directive('support_matrix', SupportMatrixDirective) app.add_stylesheet('support-matrix.css') nova-17.0.13/doc/ext/feature_matrix.py0000664000175000017500000005234213556316250017622 0ustar zuulzuul00000000000000# Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. """ This provides a sphinx extension able to render from an ini file (from the doc/source/* directory) a feature matrix into the developer documentation. It is used via a single directive in the .rst file .. feature_matrix:: feature_classification.ini """ import re import sys from six.moves import configparser from docutils import nodes from docutils.parsers import rst class Matrix(object): """Matrix represents the entire feature matrix parsed from an ini file This includes: * self.features is a list of MatrixFeature instances, the rows and cells * self.targets is a dict of (MatrixTarget.key, MatrixTarget), the columns """ def __init__(self): self.features = [] self.targets = {} class MatrixTarget(object): def __init__(self, key, title, driver, hypervisor=None, architecture=None, link=None): """MatrixTarget modes a target, a column in the matrix This is usually a specific CI system, or collection of related deployment configurations. :param key: Unique identifier for the hypervisor driver :param title: Human friendly name of the hypervisor :param driver: Name of the Nova driver :param hypervisor: (optional) Name of the hypervisor, if many :param architecture: (optional) Name of the architecture, if many :param link: (optional) URL to docs about this target """ self.key = key self.title = title self.driver = driver self.hypervisor = hypervisor self.architecture = architecture self.link = link class MatrixImplementation(object): STATUS_COMPLETE = "complete" STATUS_PARTIAL = "partial" STATUS_MISSING = "missing" STATUS_UKNOWN = "unknown" STATUS_ALL = [STATUS_COMPLETE, STATUS_PARTIAL, STATUS_MISSING, STATUS_UKNOWN] def __init__(self, status=STATUS_MISSING, notes=None, release=None): """MatrixImplementation models a cell in the matrix This models the current state of a target for a specific feature :param status: One off complete, partial, missing, unknown. See the RST docs for a definition of those. :param notes: Arbitrary string describing any caveats of the implementation. Mandatory if status is 'partial'. :param release: Letter of the release entry was last updated. i.e. m=mitaka, c=cactus. If not known it is None. """ self.status = status self.notes = notes self.release = release class MatrixFeature(object): MATURITY_INCOMPLETE = "incomplete" MATURITY_EXPERIMENTAL = "experimental" MATURITY_COMPLETE = "complete" MATURITY_DEPRECATED = "deprecated" MATURITY_ALL = [MATURITY_INCOMPLETE, MATURITY_EXPERIMENTAL, MATURITY_COMPLETE, MATURITY_DEPRECATED] def __init__(self, key, title, notes=None, cli=None, maturity=None, api_doc_link=None, admin_doc_link=None, tempest_test_uuids=None): """MatrixFeature models a row in the matrix This initialises ``self.implementations``, which is a dict of (MatrixTarget.key, MatrixImplementation) This is the list of cells for the given row of the matrix. :param key: used as the HTML id for the details, and so in the URL :param title: human friendly short title, used in the matrix :param notes: Arbitrarily long string describing the feature :param cli: list of cli commands related to the feature :param maturity: incomplete, experimental, complete or deprecated for a full definition see the rst doc :param api_doc_link: URL to the API ref for this feature :param admin_doc_link: URL to the admin docs for using this feature :param tempest_test_uuids: uuids for tests that validate this feature """ if cli is None: cli = [] if tempest_test_uuids is None: tempest_test_uuids = [] self.key = key self.title = title self.notes = notes self.implementations = {} self.cli = cli self.maturity = maturity self.api_doc_link = api_doc_link self.admin_doc_link = admin_doc_link self.tempest_test_uuids = tempest_test_uuids class FeatureMatrixDirective(rst.Directive): """The Sphinx directive plugin Has single required argument, the filename for the ini file. The usage of the directive looks like this:: .. feature_matrix:: feature_matrix_gp.ini """ required_arguments = 1 def run(self): matrix = self._load_feature_matrix() return self._build_markup(matrix) def _load_feature_matrix(self): """Reads the feature-matrix.ini file and populates an instance of the Matrix class with all the data. :returns: Matrix instance """ # SafeConfigParser was deprecated in Python 3.2 if sys.version_info >= (3, 2): cfg = configparser.ConfigParser() else: cfg = configparser.SafeConfigParser() env = self.state.document.settings.env filename = self.arguments[0] rel_fpath, fpath = env.relfn2path(filename) with open(fpath) as fp: cfg.readfp(fp) # This ensures that the docs are rebuilt whenever the # .ini file changes env.note_dependency(rel_fpath) matrix = Matrix() matrix.targets = self._get_targets(cfg) matrix.features = self._get_features(cfg, matrix.targets) return matrix def _get_targets(self, cfg): """The 'targets' section is special - it lists all the hypervisors that this file records data for. """ targets = {} for section in cfg.sections(): if not section.startswith("target."): continue key = section[7:] title = cfg.get(section, "title") link = cfg.get(section, "link") driver = key.split("-")[0] target = MatrixTarget(key, title, driver, link=link) targets[key] = target return targets def _get_features(self, cfg, targets): """All sections except 'targets' describe some feature of the Nova hypervisor driver implementation. """ features = [] for section in cfg.sections(): if section == "targets": continue if section.startswith("target."): continue if not cfg.has_option(section, "title"): raise Exception( "'title' field missing in '[%s]' section" % section) title = cfg.get(section, "title") maturity = MatrixFeature.MATURITY_INCOMPLETE if cfg.has_option(section, "maturity"): maturity = cfg.get(section, "maturity").lower() if maturity not in MatrixFeature.MATURITY_ALL: raise Exception( "'maturity' field value '%s' in ['%s']" "section must be %s" % (maturity, section, ",".join(MatrixFeature.MATURITY_ALL))) notes = None if cfg.has_option(section, "notes"): notes = cfg.get(section, "notes") cli = [] if cfg.has_option(section, "cli"): cli = cfg.get(section, "cli") api_doc_link = None if cfg.has_option(section, "api_doc_link"): api_doc_link = cfg.get(section, "api_doc_link") admin_doc_link = None if cfg.has_option(section, "admin_doc_link"): admin_doc_link = cfg.get(section, "admin_doc_link") tempest_test_uuids = [] if cfg.has_option(section, "tempest_test_uuids"): tempest_test_uuids = cfg.get(section, "tempest_test_uuids") feature = MatrixFeature(section, title, notes, cli, maturity, api_doc_link, admin_doc_link, tempest_test_uuids) # Now we've got the basic feature details, we must process # the hypervisor driver implementation for each feature for item in cfg.options(section): key = item.replace("driver-impl-", "") if key not in targets: # TODO(johngarbutt) would be better to skip known list if item.startswith("driver-impl-"): raise Exception( "Driver impl '%s' in '[%s]' not declared" % (item, section)) continue impl_status_and_release = cfg.get(section, item) impl_status_and_release = impl_status_and_release.split(":") impl_status = impl_status_and_release[0] release = None if len(impl_status_and_release) == 2: release = impl_status_and_release[1] if impl_status not in MatrixImplementation.STATUS_ALL: raise Exception( "'%s' value '%s' in '[%s]' section must be %s" % (item, impl_status, section, ",".join(MatrixImplementation.STATUS_ALL))) noteskey = "driver-notes-" + item[12:] notes = None if cfg.has_option(section, noteskey): notes = cfg.get(section, noteskey) target = targets[key] impl = MatrixImplementation(impl_status, notes, release) feature.implementations[target.key] = impl for key in targets: if key not in feature.implementations: raise Exception("'%s' missing in '[%s]' section" % (key, section)) features.append(feature) return features def _build_markup(self, matrix): """Constructs the docutils content for the feature matrix""" content = [] self._build_summary(matrix, content) self._build_details(matrix, content) return content def _build_summary(self, matrix, content): """Constructs the docutils content for the summary of the feature matrix. The summary consists of a giant table, with one row for each feature, and a column for each hypervisor driver. It provides an 'at a glance' summary of the status of each driver """ summarytitle = nodes.subtitle(text="Summary") summary = nodes.table() cols = len(matrix.targets.keys()) cols += 2 summarygroup = nodes.tgroup(cols=cols) summarybody = nodes.tbody() summaryhead = nodes.thead() for i in range(cols): summarygroup.append(nodes.colspec(colwidth=1)) summarygroup.append(summaryhead) summarygroup.append(summarybody) summary.append(summarygroup) content.append(summarytitle) content.append(summary) # This sets up all the column headers - two fixed # columns for feature name & status header = nodes.row() blank = nodes.entry() blank.append(nodes.emphasis(text="Feature")) header.append(blank) blank = nodes.entry() blank.append(nodes.emphasis(text="Maturity")) header.append(blank) summaryhead.append(header) # then one column for each hypervisor driver impls = matrix.targets.keys() impls.sort() for key in impls: target = matrix.targets[key] implcol = nodes.entry() header.append(implcol) if target.link: uri = target.link target_ref = nodes.reference("", refuri=uri) target_txt = nodes.inline() implcol.append(target_txt) target_txt.append(target_ref) target_ref.append(nodes.strong(text=target.title)) else: implcol.append(nodes.strong(text=target.title)) # We now produce the body of the table, one row for # each feature to report on for feature in matrix.features: item = nodes.row() # the hyperlink target name linking to details id = re.sub("[^a-zA-Z0-9_]", "_", feature.key) # first the to fixed columns for title/status keycol = nodes.entry() item.append(keycol) keyref = nodes.reference(refid=id) keytxt = nodes.inline() keycol.append(keytxt) keytxt.append(keyref) keyref.append(nodes.strong(text=feature.title)) maturitycol = nodes.entry() item.append(maturitycol) maturitycol.append(nodes.inline( text=feature.maturity, classes=["fm_maturity_" + feature.maturity])) # and then one column for each hypervisor driver impls = matrix.targets.keys() impls.sort() for key in impls: target = matrix.targets[key] impl = feature.implementations[key] implcol = nodes.entry() item.append(implcol) id = re.sub("[^a-zA-Z0-9_]", "_", feature.key + "_" + key) implref = nodes.reference(refid=id) impltxt = nodes.inline() implcol.append(impltxt) impltxt.append(implref) impl_status = "" if impl.status == MatrixImplementation.STATUS_COMPLETE: impl_status = u"\u2714" elif impl.status == MatrixImplementation.STATUS_MISSING: impl_status = u"\u2716" elif impl.status == MatrixImplementation.STATUS_PARTIAL: impl_status = u"\u2714" elif impl.status == MatrixImplementation.STATUS_UKNOWN: impl_status = u"?" implref.append(nodes.literal( text=impl_status, classes=["fm_impl_summary", "fm_impl_" + impl.status])) if impl.release: implref.append(nodes.inline(text=" %s" % impl.release)) summarybody.append(item) def _build_details(self, matrix, content): """Constructs the docutils content for the details of the feature matrix. This is generated as a bullet list of features. Against each feature we provide the description of the feature and then the details of the hypervisor impls, with any driver specific notes that exist """ detailstitle = nodes.subtitle(text="Details") details = nodes.bullet_list() content.append(detailstitle) content.append(details) # One list entry for each feature we're reporting on for feature in matrix.features: item = nodes.list_item() # The hypervisor target name linked from summary table id = re.sub("[^a-zA-Z0-9_]", "_", feature.key) # Highlight the feature title name item.append(nodes.strong(text=feature.title, ids=[id])) if feature.notes is not None: para_notes = nodes.paragraph() para_notes.append(nodes.inline(text=feature.notes)) item.append(para_notes) self._add_feature_info(item, feature) if feature.cli: item.append(self._create_cli_paragraph(feature)) para_divers = nodes.paragraph() para_divers.append(nodes.strong(text="drivers:")) # A sub-list giving details of each hypervisor target impls = nodes.bullet_list() for key in feature.implementations: target = matrix.targets[key] impl = feature.implementations[key] subitem = nodes.list_item() id = re.sub("[^a-zA-Z0-9_]", "_", feature.key + "_" + key) subitem += [ nodes.strong(text=target.title + ": "), nodes.literal(text=impl.status, classes=["fm_impl_" + impl.status], ids=[id]), ] if impl.release: release_letter = impl.release.upper() release_text = \ ' (updated in "%s" release)' % release_letter subitem.append(nodes.inline(text=release_text)) if impl.notes is not None: subitem.append(self._create_notes_paragraph(impl.notes)) impls.append(subitem) para_divers.append(impls) item.append(para_divers) details.append(item) def _add_feature_info(self, item, feature): para_info = nodes.paragraph() para_info.append(nodes.strong(text="info:")) info_list = nodes.bullet_list() maturity_literal = nodes.literal(text=feature.maturity, classes=["fm_maturity_" + feature.maturity]) self._append_info_list_item(info_list, "Maturity", items=[maturity_literal]) self._append_info_list_item(info_list, "API Docs", link=feature.api_doc_link) self._append_info_list_item(info_list, "Admin Docs", link=feature.admin_doc_link) tempest_items = [] if feature.tempest_test_uuids: for uuid in feature.tempest_test_uuids.split(";"): base = "https://github.com/openstack/tempest/search?q=%s" link = base % uuid inline_ref = self._get_uri_ref(link, text=uuid) tempest_items.append(inline_ref) tempest_items.append(nodes.inline(text=", ")) # removing trailing punctuation tempest_items = tempest_items[:-1] self._append_info_list_item(info_list, "Tempest tests", items=tempest_items) para_info.append(info_list) item.append(para_info) def _get_uri_ref(self, link, text=None): if not text: text = link ref = nodes.reference("", text, refuri=link) inline = nodes.inline() inline.append(ref) return inline def _append_info_list_item(self, info_list, title, text=None, link=None, items=None): subitem = nodes.list_item() subitem.append(nodes.strong(text="%s: " % title)) if items: for item in items: subitem.append(item) elif link: inline_link = self._get_uri_ref(link, text) subitem.append(inline_link) elif text: subitem.append(nodes.literal(text=text)) info_list.append(subitem) def _create_cli_paragraph(self, feature): """Create a paragraph which represents the CLI commands of the feature The paragraph will have a bullet list of CLI commands. """ para = nodes.paragraph() para.append(nodes.strong(text="CLI commands:")) commands = nodes.bullet_list() for c in feature.cli.split(";"): cli_command = nodes.list_item() cli_command += nodes.literal(text=c, classes=["fm_cli"]) commands.append(cli_command) para.append(commands) return para def _create_notes_paragraph(self, notes): """Constructs a paragraph which represents the implementation notes The paragraph consists of text and clickable URL nodes if links were given in the notes. """ para = nodes.paragraph() # links could start with http:// or https:// link_idxs = [m.start() for m in re.finditer('https?://', notes)] start_idx = 0 for link_idx in link_idxs: # assume the notes start with text (could be empty) para.append(nodes.inline(text=notes[start_idx:link_idx])) # create a URL node until the next text or the end of the notes link_end_idx = notes.find(" ", link_idx) if link_end_idx == -1: # In case the notes end with a link without a blank link_end_idx = len(notes) uri = notes[link_idx:link_end_idx + 1] para.append(nodes.reference("", uri, refuri=uri)) start_idx = link_end_idx + 1 # get all text after the last link (could be empty) or all of the # text if no link was given para.append(nodes.inline(text=notes[start_idx:])) return para def setup(app): app.add_directive('feature_matrix', FeatureMatrixDirective) app.add_stylesheet('feature-matrix.css') nova-17.0.13/doc/notification_samples/0000775000175000017500000000000013556316574017646 5ustar zuulzuul00000000000000nova-17.0.13/doc/notification_samples/instance-shelve-end.json0000664000175000017500000000645313556316250024374 0ustar zuulzuul00000000000000{ "event_type":"instance.shelve.end", "payload":{ "nova_object.data":{ "architecture":"x86_64", "availability_zone": "nova", "block_devices": [{ "nova_object.data": { "boot_index": null, "delete_on_termination": false, "device_name": "/dev/sdb", "tag": null, "volume_id": "a07f71dc-8151-4e7d-a0cc-cd24a3f11113" }, "nova_object.name": "BlockDevicePayload", "nova_object.namespace": "nova", "nova_object.version": "1.0" }], "created_at":"2012-10-29T13:42:11Z", "deleted_at":null, "display_name":"some-server", "display_description":"some-server", "fault":null, "host":"compute", "host_name":"some-server", "ip_addresses": [{ "nova_object.name": "IpPayload", "nova_object.namespace": "nova", "nova_object.version": "1.0", "nova_object.data": { "mac": "fa:16:3e:4c:2c:30", "address": "192.168.1.3", "port_uuid": "ce531f90-199f-48c0-816c-13e38010b442", "meta": {}, "version": 4, "label": "private-network", "device_name": "tapce531f90-19" } }], "key_name": "my-key", "kernel_id":"", "launched_at":"2012-10-29T13:42:11Z", "image_uuid": "155d900f-4e14-4e4c-a73d-069cbf4541e6", "metadata":{}, "locked":false, "node":"fake-mini", "os_type":null, "progress":0, "ramdisk_id":"", "reservation_id":"r-npxv0e40", "state":"shelved", "task_state":null, "power_state":"shutdown", "tenant_id":"6f70656e737461636b20342065766572", "terminated_at":null, "auto_disk_config":"MANUAL", "flavor": { "nova_object.name": "FlavorPayload", "nova_object.data": { "flavorid": "a22d5517-147c-4147-a0d1-e698df5cd4e3", "name": "test_flavor", "root_gb": 1, "vcpus": 1, "ephemeral_gb": 0, "memory_mb": 512, "disabled": false, "rxtx_factor": 1.0, "extra_specs": { "hw:watchdog_action": "disabled" }, "projects": null, "swap": 0, "is_public": true, "vcpu_weight": 0, "description":null }, "nova_object.version": "1.4", "nova_object.namespace": "nova" }, "user_id":"fake", "uuid":"178b0921-8f85-4257-88b6-2e743b5a975c", "updated_at": "2012-10-29T13:42:11Z" }, "nova_object.name":"InstanceActionPayload", "nova_object.namespace":"nova", "nova_object.version":"1.5" }, "priority":"INFO", "publisher_id":"nova-compute:compute" } nova-17.0.13/doc/notification_samples/instance-resize-error.json0000664000175000017500000000662113556316250024767 0ustar zuulzuul00000000000000{ "event_type":"instance.resize.error", "payload":{ "nova_object.data":{ "architecture":"x86_64", "auto_disk_config":"MANUAL", "availability_zone":"nova", "block_devices":[], "created_at":"2012-10-29T13:42:11Z", "deleted_at":null, "display_description":"some-server", "display_name":"some-server", "fault":{ "nova_object.data":{ "exception":"FlavorDiskTooSmall", "exception_message":"The created instance's disk would be too small.", "function_name":"_build_resources", "module_name":"nova.tests.functional.notification_sample_tests.test_instance" }, "nova_object.name":"ExceptionPayload", "nova_object.namespace":"nova", "nova_object.version":"1.0" }, "flavor":{ "nova_object.data":{ "disabled":false, "ephemeral_gb":0, "extra_specs":{ "hw:watchdog_action":"disabled" }, "flavorid":"a22d5517-147c-4147-a0d1-e698df5cd4e3", "is_public":true, "memory_mb":512, "name":"test_flavor", "projects":null, "root_gb":1, "rxtx_factor":1.0, "swap":0, "vcpu_weight":0, "vcpus":1, "description":null }, "nova_object.name":"FlavorPayload", "nova_object.namespace":"nova", "nova_object.version":"1.4" }, "host":"compute", "host_name":"some-server", "image_uuid":"155d900f-4e14-4e4c-a73d-069cbf4541e6", "ip_addresses":[ { "nova_object.data":{ "address":"192.168.1.3", "device_name":"tapce531f90-19", "label":"private-network", "mac":"fa:16:3e:4c:2c:30", "meta":{}, "port_uuid":"ce531f90-199f-48c0-816c-13e38010b442", "version":4 }, "nova_object.name":"IpPayload", "nova_object.namespace":"nova", "nova_object.version":"1.0" } ], "kernel_id":"", "key_name":"my-key", "launched_at":"2012-10-29T13:42:11Z", "locked":false, "metadata":{}, "node":"fake-mini", "os_type":null, "power_state":"running", "progress":0, "ramdisk_id":"", "reservation_id":"r-fekt9l17", "state":"active", "task_state":"resize_prep", "tenant_id":"6f70656e737461636b20342065766572", "terminated_at":null, "user_id":"fake", "updated_at": "2012-10-29T13:42:11Z", "uuid":"6db66f8a-0cdc-45b8-a851-41d79536883b" }, "nova_object.name":"InstanceActionPayload", "nova_object.namespace":"nova", "nova_object.version":"1.5" }, "priority":"ERROR", "publisher_id":"nova-compute:compute" } nova-17.0.13/doc/notification_samples/instance-delete-end.json0000664000175000017500000000066013556316250024342 0ustar zuulzuul00000000000000{ "event_type":"instance.delete.end", "payload":{ "$ref":"common_payloads/InstanceActionPayload.json#", "nova_object.data":{ "deleted_at":"2012-10-29T13:42:11Z", "ip_addresses":[], "power_state":"pending", "state":"deleted", "terminated_at":"2012-10-29T13:42:11Z" } }, "priority":"INFO", "publisher_id":"nova-compute:compute" } nova-17.0.13/doc/notification_samples/instance-reboot-start.json0000664000175000017500000000043213556316250024756 0ustar zuulzuul00000000000000{ "event_type":"instance.reboot.start", "payload":{ "$ref":"common_payloads/InstanceActionPayload.json#", "nova_object.data":{ "task_state":"reboot_pending_hard" } }, "priority":"INFO", "publisher_id":"nova-compute:compute" } nova-17.0.13/doc/notification_samples/instance-soft_delete-start.json0000664000175000017500000000651713556316250025773 0ustar zuulzuul00000000000000{ "event_type":"instance.soft_delete.start", "payload":{ "nova_object.data":{ "architecture": "x86_64", "availability_zone": "nova", "block_devices": [{ "nova_object.data": { "boot_index": null, "delete_on_termination": false, "device_name": "/dev/sdb", "tag": null, "volume_id": "a07f71dc-8151-4e7d-a0cc-cd24a3f11113" }, "nova_object.name": "BlockDevicePayload", "nova_object.namespace": "nova", "nova_object.version": "1.0" }], "created_at":"2012-10-29T13:42:11Z", "deleted_at":"2012-10-29T13:42:11Z", "display_name":"some-server", "display_description":"some-server", "fault":null, "host":"compute", "host_name":"some-server", "ip_addresses": [{ "nova_object.name": "IpPayload", "nova_object.namespace": "nova", "nova_object.version": "1.0", "nova_object.data": { "mac": "fa:16:3e:4c:2c:30", "address": "192.168.1.3", "port_uuid": "ce531f90-199f-48c0-816c-13e38010b442", "meta": {}, "version": 4, "label": "private-network", "device_name": "tapce531f90-19" } }], "key_name": "my-key", "kernel_id":"", "launched_at":"2012-10-29T13:42:11Z", "image_uuid": "155d900f-4e14-4e4c-a73d-069cbf4541e6", "metadata":{}, "locked":false, "node":"fake-mini", "os_type":null, "progress":0, "ramdisk_id":"", "reservation_id":"r-npxv0e40", "state":"active", "task_state": "soft-deleting", "power_state":"running", "tenant_id":"6f70656e737461636b20342065766572", "terminated_at":null, "auto_disk_config":"MANUAL", "flavor": { "nova_object.name": "FlavorPayload", "nova_object.data": { "flavorid": "a22d5517-147c-4147-a0d1-e698df5cd4e3", "name": "test_flavor", "root_gb": 1, "vcpus": 1, "ephemeral_gb": 0, "memory_mb": 512, "disabled": false, "rxtx_factor": 1.0, "extra_specs": { "hw:watchdog_action": "disabled" }, "projects": null, "swap": 0, "is_public": true, "vcpu_weight": 0, "description":null }, "nova_object.version": "1.4", "nova_object.namespace": "nova" }, "updated_at": "2012-10-29T13:42:11Z", "user_id":"fake", "uuid":"178b0921-8f85-4257-88b6-2e743b5a975c" }, "nova_object.name":"InstanceActionPayload", "nova_object.namespace":"nova", "nova_object.version":"1.5" }, "priority":"INFO", "publisher_id":"nova-compute:compute" } nova-17.0.13/doc/notification_samples/instance-update-tags-action.json0000664000175000017500000000731113556316250026025 0ustar zuulzuul00000000000000{ "event_type": "instance.update", "payload": { "nova_object.data": { "architecture": "x86_64", "audit_period": { "nova_object.data": { "audit_period_beginning": "2012-10-01T00:00:00Z", "audit_period_ending": "2012-10-29T13:42:11Z"}, "nova_object.name": "AuditPeriodPayload", "nova_object.namespace": "nova", "nova_object.version": "1.0"}, "auto_disk_config": "MANUAL", "availability_zone": "nova", "block_devices": [], "bandwidth": [], "created_at": "2012-10-29T13:42:11Z", "deleted_at": null, "display_description": "some-server", "display_name": "some-server", "flavor": { "nova_object.data": { "disabled": false, "ephemeral_gb": 0, "extra_specs": { "hw:watchdog_action": "disabled" }, "flavorid": "a22d5517-147c-4147-a0d1-e698df5cd4e3", "is_public": true, "memory_mb": 512, "name": "test_flavor", "projects": null, "root_gb": 1, "rxtx_factor": 1.0, "swap": 0, "vcpu_weight": 0, "vcpus": 1, "description":null}, "nova_object.name": "FlavorPayload", "nova_object.namespace": "nova", "nova_object.version": "1.4"}, "host": "compute", "host_name": "some-server", "image_uuid": "155d900f-4e14-4e4c-a73d-069cbf4541e6", "ip_addresses": [ { "nova_object.data": { "address": "192.168.1.3", "device_name": "tapce531f90-19", "label": "private-network", "mac": "fa:16:3e:4c:2c:30", "meta": {}, "port_uuid": "ce531f90-199f-48c0-816c-13e38010b442", "version": 4}, "nova_object.name": "IpPayload", "nova_object.namespace": "nova", "nova_object.version": "1.0" } ], "kernel_id": "", "key_name": "my-key", "launched_at": "2012-10-29T13:42:11Z", "locked": false, "metadata": {}, "node": "fake-mini", "old_display_name": null, "os_type": null, "power_state": "running", "progress": 0, "ramdisk_id": "", "reservation_id": "r-53ad660s", "state": "active", "state_update": { "nova_object.data": { "new_task_state": null, "old_state": "active", "old_task_state": null, "state": "active"}, "nova_object.name": "InstanceStateUpdatePayload", "nova_object.namespace": "nova", "nova_object.version": "1.0"}, "tags": ["tag1"], "task_state": null, "tenant_id": "6f70656e737461636b20342065766572", "terminated_at": null, "user_id": "fake", "uuid": "d5ca7280-1f12-4238-a86f-378bb5d93c38", "updated_at": "2012-10-29T13:42:11Z" }, "nova_object.name": "InstanceUpdatePayload", "nova_object.namespace": "nova", "nova_object.version": "1.6"}, "priority": "INFO", "publisher_id": "nova-api:fake-mini" } nova-17.0.13/doc/notification_samples/instance-unrescue-end.json0000664000175000017500000000027113556316250024727 0ustar zuulzuul00000000000000{ "event_type": "instance.unrescue.end", "payload":{"$ref": "common_payloads/InstanceActionPayload.json#"}, "priority": "INFO", "publisher_id": "nova-compute:compute" } nova-17.0.13/doc/notification_samples/keypair-import-start.json0000664000175000017500000000040613556316250024637 0ustar zuulzuul00000000000000{ "priority": "INFO", "payload": { "$ref": "common_payloads/KeypairPayload.json#", "nova_object.data": { "fingerprint": null } }, "event_type": "keypair.import.start", "publisher_id": "nova-api:fake-mini" }nova-17.0.13/doc/notification_samples/instance-delete-start.json0000664000175000017500000000041713556316250024731 0ustar zuulzuul00000000000000{ "event_type":"instance.delete.start", "payload":{ "$ref":"common_payloads/InstanceActionPayload.json#", "nova_object.data":{ "task_state":"deleting" } }, "priority":"INFO", "publisher_id":"nova-compute:compute" } nova-17.0.13/doc/notification_samples/instance-volume_detach-start.json0000664000175000017500000000662713556316250026317 0ustar zuulzuul00000000000000{ "event_type": "instance.volume_detach.start", "payload": { "nova_object.data": { "architecture": "x86_64", "availability_zone": "nova", "block_devices": [{ "nova_object.data": { "boot_index": null, "delete_on_termination": false, "device_name": "/dev/sdb", "tag": null, "volume_id": "a07f71dc-8151-4e7d-a0cc-cd24a3f11113" }, "nova_object.name": "BlockDevicePayload", "nova_object.namespace": "nova", "nova_object.version": "1.0" }], "created_at": "2012-10-29T13:42:11Z", "deleted_at": null, "display_name": "some-server", "display_description":"some-server", "fault": null, "flavor": { "nova_object.name": "FlavorPayload", "nova_object.data": { "flavorid": "a22d5517-147c-4147-a0d1-e698df5cd4e3", "name": "test_flavor", "projects": null, "root_gb": 1, "vcpus": 1, "ephemeral_gb": 0, "memory_mb": 512, "disabled": false, "rxtx_factor": 1.0, "extra_specs": { "hw:watchdog_action": "disabled" }, "swap": 0, "is_public": true, "vcpu_weight": 0, "description":null }, "nova_object.version": "1.4", "nova_object.namespace": "nova" }, "host": "compute", "host_name": "some-server", "image_uuid": "155d900f-4e14-4e4c-a73d-069cbf4541e6", "ip_addresses": [{ "nova_object.data": { "address": "192.168.1.3", "device_name": "tapce531f90-19", "label": "private-network", "meta": {}, "port_uuid": "ce531f90-199f-48c0-816c-13e38010b442", "version": 4, "mac": "fa:16:3e:4c:2c:30" }, "nova_object.name": "IpPayload", "nova_object.namespace": "nova", "nova_object.version": "1.0" }], "key_name": "my-key", "kernel_id": "", "launched_at": "2012-10-29T13:42:11Z", "metadata": {}, "locked":false, "node": "fake-mini", "volume_id": "a07f71dc-8151-4e7d-a0cc-cd24a3f11113", "os_type": null, "power_state":"running", "progress": 0, "ramdisk_id": "", "reservation_id": "r-6w6ruqaz", "state": "active", "task_state": null, "tenant_id": "6f70656e737461636b20342065766572", "terminated_at": null, "auto_disk_config": "MANUAL", "user_id": "fake", "uuid": "0ab886d0-7443-4107-9265-48371bfa662b", "updated_at": "2012-10-29T13:42:11Z" }, "nova_object.name": "InstanceActionVolumePayload", "nova_object.namespace": "nova", "nova_object.version": "1.3" }, "priority": "INFO", "publisher_id": "nova-compute:compute" } nova-17.0.13/doc/notification_samples/keypair-delete-start.json0000664000175000017500000000025713556316250024573 0ustar zuulzuul00000000000000{ "priority": "INFO", "payload": {"$ref": "common_payloads/KeypairPayload.json#"}, "event_type": "keypair.delete.start", "publisher_id": "nova-api:fake-mini" }nova-17.0.13/doc/notification_samples/instance-trigger_crash_dump-end.json0000664000175000017500000000663713556316250026762 0ustar zuulzuul00000000000000{ "event_type":"instance.trigger_crash_dump.end", "payload": { "nova_object.data": { "architecture": "x86_64", "auto_disk_config": "MANUAL", "availability_zone": "nova", "block_devices": [ { "nova_object.data": { "boot_index": null, "delete_on_termination": false, "device_name": "/dev/sdb", "tag": null, "volume_id": "a07f71dc-8151-4e7d-a0cc-cd24a3f11113" }, "nova_object.name": "BlockDevicePayload", "nova_object.namespace": "nova", "nova_object.version": "1.0" } ], "created_at": "2012-10-29T13:42:11Z", "deleted_at": null, "display_name": "some-server", "display_description": "some-server", "fault": null, "host": "compute", "host_name": "some-server", "ip_addresses": [{ "nova_object.name": "IpPayload", "nova_object.namespace": "nova", "nova_object.version": "1.0", "nova_object.data": { "mac": "fa:16:3e:4c:2c:30", "address": "192.168.1.3", "port_uuid": "ce531f90-199f-48c0-816c-13e38010b442", "meta": {}, "version": 4, "label": "private-network", "device_name": "tapce531f90-19" } }], "kernel_id": "", "key_name": "my-key", "launched_at": "2012-10-29T13:42:11Z", "updated_at": "2012-10-29T13:42:11Z", "image_uuid": "155d900f-4e14-4e4c-a73d-069cbf4541e6", "metadata": {}, "locked": false, "node": "fake-mini", "os_type": null, "progress": 0, "ramdisk_id": "", "reservation_id": "r-npxv0e40", "state": "active", "task_state": null, "power_state": "running", "tenant_id": "6f70656e737461636b20342065766572", "terminated_at": null, "flavor": { "nova_object.name": "FlavorPayload", "nova_object.data": { "flavorid": "a22d5517-147c-4147-a0d1-e698df5cd4e3", "name": "test_flavor", "root_gb": 1, "vcpus": 1, "ephemeral_gb": 0, "memory_mb": 512, "disabled": false, "projects": null, "rxtx_factor": 1.0, "extra_specs": { "hw:watchdog_action": "disabled" }, "swap": 0, "is_public": true, "vcpu_weight": 0, "description":null }, "nova_object.version": "1.4", "nova_object.namespace": "nova" }, "user_id": "fake", "uuid": "0ab886d0-7443-4107-9265-48371bfa662b" }, "nova_object.name": "InstanceActionPayload", "nova_object.namespace": "nova", "nova_object.version": "1.5" }, "priority": "INFO", "publisher_id": "nova-compute:compute" } nova-17.0.13/doc/notification_samples/instance-shutdown-start.json0000664000175000017500000000646313556316250025351 0ustar zuulzuul00000000000000{ "event_type":"instance.shutdown.start", "payload":{ "nova_object.data":{ "architecture":"x86_64", "availability_zone": "nova", "block_devices": [{ "nova_object.data": { "boot_index": null, "delete_on_termination": false, "device_name": "/dev/sdb", "tag": null, "volume_id": "a07f71dc-8151-4e7d-a0cc-cd24a3f11113" }, "nova_object.name": "BlockDevicePayload", "nova_object.namespace": "nova", "nova_object.version": "1.0" }], "created_at":"2012-10-29T13:42:11Z", "deleted_at":null, "display_name":"some-server", "display_description":"some-server", "fault":null, "host":"compute", "host_name":"some-server", "ip_addresses": [{ "nova_object.name": "IpPayload", "nova_object.namespace": "nova", "nova_object.version": "1.0", "nova_object.data": { "mac": "fa:16:3e:4c:2c:30", "address": "192.168.1.3", "port_uuid": "ce531f90-199f-48c0-816c-13e38010b442", "meta": {}, "version": 4, "label": "private-network", "device_name": "tapce531f90-19" } }], "key_name": "my-key", "kernel_id":"", "launched_at":"2012-10-29T13:42:11Z", "image_uuid": "155d900f-4e14-4e4c-a73d-069cbf4541e6", "metadata":{}, "locked":false, "node":"fake-mini", "os_type":null, "progress":0, "ramdisk_id":"", "reservation_id":"r-npxv0e40", "state":"active", "task_state":"deleting", "power_state":"running", "tenant_id":"6f70656e737461636b20342065766572", "terminated_at":null, "auto_disk_config":"MANUAL", "flavor": { "nova_object.name": "FlavorPayload", "nova_object.data": { "flavorid": "a22d5517-147c-4147-a0d1-e698df5cd4e3", "name": "test_flavor", "root_gb": 1, "vcpus": 1, "ephemeral_gb": 0, "memory_mb": 512, "disabled": false, "rxtx_factor": 1.0, "extra_specs": { "hw:watchdog_action": "disabled" }, "projects": null, "swap": 0, "is_public": true, "vcpu_weight": 0, "description":null }, "nova_object.version": "1.4", "nova_object.namespace": "nova" }, "user_id":"fake", "uuid":"178b0921-8f85-4257-88b6-2e743b5a975c", "updated_at": "2012-10-29T13:42:11Z" }, "nova_object.name":"InstanceActionPayload", "nova_object.namespace":"nova", "nova_object.version":"1.5" }, "priority":"INFO", "publisher_id":"nova-compute:compute" } nova-17.0.13/doc/notification_samples/aggregate-add_host-end.json0000664000175000017500000000041413556316250025004 0ustar zuulzuul00000000000000{ "priority": "INFO", "payload": { "$ref": "common_payloads/AggregatePayload.json#", "nova_object.data": { "hosts": ["compute"] } }, "event_type": "aggregate.add_host.end", "publisher_id": "nova-api:fake-mini" } nova-17.0.13/doc/notification_samples/server_group-delete.json0000664000175000017500000000026313556316250024513 0ustar zuulzuul00000000000000{ "priority": "INFO", "payload": {"$ref": "common_payloads/ServerGroupPayload.json#"}, "event_type": "server_group.delete", "publisher_id": "nova-api:fake-mini" } nova-17.0.13/doc/notification_samples/instance-create-end.json0000664000175000017500000000026313556316250024342 0ustar zuulzuul00000000000000{ "event_type":"instance.create.end", "payload":{"$ref":"common_payloads/InstanceCreatePayload.json#"}, "priority":"INFO", "publisher_id":"nova-compute:compute" } nova-17.0.13/doc/notification_samples/instance-trigger_crash_dump-start.json0000664000175000017500000000664113556316250027344 0ustar zuulzuul00000000000000{ "event_type":"instance.trigger_crash_dump.start", "payload": { "nova_object.data": { "architecture": "x86_64", "auto_disk_config": "MANUAL", "availability_zone": "nova", "block_devices": [ { "nova_object.data": { "boot_index": null, "delete_on_termination": false, "device_name": "/dev/sdb", "tag": null, "volume_id": "a07f71dc-8151-4e7d-a0cc-cd24a3f11113" }, "nova_object.name": "BlockDevicePayload", "nova_object.namespace": "nova", "nova_object.version": "1.0" } ], "created_at": "2012-10-29T13:42:11Z", "deleted_at": null, "display_name": "some-server", "display_description": "some-server", "fault": null, "host": "compute", "host_name": "some-server", "ip_addresses": [{ "nova_object.name": "IpPayload", "nova_object.namespace": "nova", "nova_object.version": "1.0", "nova_object.data": { "mac": "fa:16:3e:4c:2c:30", "address": "192.168.1.3", "port_uuid": "ce531f90-199f-48c0-816c-13e38010b442", "meta": {}, "version": 4, "label": "private-network", "device_name": "tapce531f90-19" } }], "kernel_id": "", "key_name": "my-key", "launched_at": "2012-10-29T13:42:11Z", "updated_at": "2012-10-29T13:42:11Z", "image_uuid": "155d900f-4e14-4e4c-a73d-069cbf4541e6", "metadata": {}, "locked": false, "node": "fake-mini", "os_type": null, "progress": 0, "ramdisk_id": "", "reservation_id": "r-npxv0e40", "state": "active", "task_state": null, "power_state": "running", "tenant_id": "6f70656e737461636b20342065766572", "terminated_at": null, "flavor": { "nova_object.name": "FlavorPayload", "nova_object.data": { "flavorid": "a22d5517-147c-4147-a0d1-e698df5cd4e3", "name": "test_flavor", "root_gb": 1, "vcpus": 1, "ephemeral_gb": 0, "memory_mb": 512, "disabled": false, "projects": null, "rxtx_factor": 1.0, "extra_specs": { "hw:watchdog_action": "disabled" }, "swap": 0, "is_public": true, "vcpu_weight": 0, "description":null }, "nova_object.version": "1.4", "nova_object.namespace": "nova" }, "user_id": "fake", "uuid": "0ab886d0-7443-4107-9265-48371bfa662b" }, "nova_object.name": "InstanceActionPayload", "nova_object.namespace": "nova", "nova_object.version": "1.5" }, "priority": "INFO", "publisher_id": "nova-compute:compute" } nova-17.0.13/doc/notification_samples/instance-rebuild-end.json0000664000175000017500000000655213556316250024534 0ustar zuulzuul00000000000000{ "event_type": "instance.rebuild.end", "publisher_id": "nova-compute:compute", "payload": { "nova_object.namespace": "nova", "nova_object.version": "1.5", "nova_object.data": { "node": "fake-mini", "fault": null, "host_name": "some-server", "power_state": "running", "image_uuid": "a2459075-d96c-40d5-893e-577ff92e721c", "display_name": "some-server", "display_description": "some-server", "auto_disk_config":"MANUAL", "tenant_id": "6f70656e737461636b20342065766572", "key_name": "my-key", "kernel_id": "", "created_at": "2012-10-29T13:42:11Z", "host": "compute", "reservation_id": "r-wczvhcla", "flavor": { "nova_object.namespace": "nova", "nova_object.version": "1.4", "nova_object.data": { "disabled": false, "ephemeral_gb": 0, "extra_specs": {"hw:watchdog_action": "disabled"}, "flavorid": "a22d5517-147c-4147-a0d1-e698df5cd4e3", "is_public": true, "memory_mb": 512, "name": "test_flavor", "projects": null, "root_gb": 1, "rxtx_factor": 1.0, "swap": 0, "vcpu_weight": 0, "vcpus": 1, "description":null }, "nova_object.name": "FlavorPayload" }, "user_id": "fake", "terminated_at": null, "ip_addresses": [ { "nova_object.namespace": "nova", "nova_object.version": "1.0", "nova_object.data": { "port_uuid": "ce531f90-199f-48c0-816c-13e38010b442", "version": 4, "label": "private-network", "address": "192.168.1.3", "meta": {}, "mac": "fa:16:3e:4c:2c:30", "device_name": "tapce531f90-19" }, "nova_object.name": "IpPayload" } ], "state": "active", "launched_at": "2012-10-29T13:42:11Z", "metadata": {}, "deleted_at": null, "os_type": null, "uuid": "b271fcb9-75c3-4c76-84eb-6ccad1150ece", "locked": false, "availability_zone": "nova", "block_devices": [{ "nova_object.data": { "boot_index": null, "delete_on_termination": false, "device_name": "/dev/sdb", "tag": null, "volume_id": "a07f71dc-8151-4e7d-a0cc-cd24a3f11113" }, "nova_object.name": "BlockDevicePayload", "nova_object.namespace": "nova", "nova_object.version": "1.0" }], "ramdisk_id": "", "architecture": null, "progress": 0, "task_state": null, "updated_at": "2012-10-29T13:42:11Z" }, "nova_object.name": "InstanceActionPayload" }, "priority": "INFO" } nova-17.0.13/doc/notification_samples/aggregate-create-end.json0000664000175000017500000000030013556316250024454 0ustar zuulzuul00000000000000{ "priority": "INFO", "payload": { "$ref": "common_payloads/AggregatePayload.json#" }, "event_type": "aggregate.create.end", "publisher_id": "nova-api:fake-mini" } nova-17.0.13/doc/notification_samples/aggregate-delete-start.json0000664000175000017500000000030213556316250025044 0ustar zuulzuul00000000000000{ "priority": "INFO", "payload": { "$ref": "common_payloads/AggregatePayload.json#" }, "event_type": "aggregate.delete.start", "publisher_id": "nova-api:fake-mini" } nova-17.0.13/doc/notification_samples/instance-interface_attach-error.json0000664000175000017500000000140413556316250026744 0ustar zuulzuul00000000000000{ "priority": "ERROR", "event_type": "instance.interface_attach.error", "payload":{ "$ref":"common_payloads/InstanceActionPayload.json#", "nova_object.data": { "fault": { "nova_object.data": { "exception": "InterfaceAttachFailed", "exception_message": "dummy", "function_name": "_unsuccessful_attach_interface", "module_name": "nova.tests.functional.notification_sample_tests.test_instance" }, "nova_object.name": "ExceptionPayload", "nova_object.namespace": "nova", "nova_object.version": "1.0" } } }, "publisher_id": "nova-compute:compute" } nova-17.0.13/doc/notification_samples/instance-resize_prep-start.json0000664000175000017500000000031013556316250026006 0ustar zuulzuul00000000000000{ "event_type": "instance.resize_prep.start", "payload": {"$ref":"common_payloads/InstanceActionResizePrepPayload.json#"}, "priority": "INFO", "publisher_id": "nova-compute:compute" } nova-17.0.13/doc/notification_samples/instance-shelve_offload-start.json0000664000175000017500000000650713556316250026455 0ustar zuulzuul00000000000000{ "event_type":"instance.shelve_offload.start", "payload":{ "nova_object.data":{ "architecture":"x86_64", "availability_zone": "nova", "block_devices": [{ "nova_object.data": { "boot_index": null, "delete_on_termination": false, "device_name": "/dev/sdb", "tag": null, "volume_id": "a07f71dc-8151-4e7d-a0cc-cd24a3f11113" }, "nova_object.name": "BlockDevicePayload", "nova_object.namespace": "nova", "nova_object.version": "1.0" }], "created_at":"2012-10-29T13:42:11Z", "deleted_at":null, "display_name":"some-server", "display_description":"some-server", "fault":null, "host":"compute", "host_name":"some-server", "ip_addresses": [{ "nova_object.name": "IpPayload", "nova_object.namespace": "nova", "nova_object.version": "1.0", "nova_object.data": { "mac": "fa:16:3e:4c:2c:30", "address": "192.168.1.3", "port_uuid": "ce531f90-199f-48c0-816c-13e38010b442", "meta": {}, "version": 4, "label": "private-network", "device_name": "tapce531f90-19" } }], "key_name": "my-key", "kernel_id":"", "launched_at":"2012-10-29T13:42:11Z", "image_uuid": "155d900f-4e14-4e4c-a73d-069cbf4541e6", "metadata":{}, "locked":false, "node":"fake-mini", "os_type":null, "progress":0, "ramdisk_id":"", "reservation_id":"r-npxv0e40", "state":"shelved", "task_state":"shelving_offloading", "power_state":"shutdown", "tenant_id":"6f70656e737461636b20342065766572", "terminated_at":null, "auto_disk_config":"MANUAL", "flavor": { "nova_object.name": "FlavorPayload", "nova_object.data": { "flavorid": "a22d5517-147c-4147-a0d1-e698df5cd4e3", "name": "test_flavor", "root_gb": 1, "vcpus": 1, "ephemeral_gb": 0, "memory_mb": 512, "disabled": false, "rxtx_factor": 1.0, "extra_specs": { "hw:watchdog_action": "disabled" }, "projects": null, "swap": 0, "is_public": true, "vcpu_weight": 0, "description":null }, "nova_object.version": "1.4", "nova_object.namespace": "nova" }, "user_id":"fake", "uuid":"178b0921-8f85-4257-88b6-2e743b5a975c", "updated_at": "2012-10-29T13:42:11Z" }, "nova_object.name":"InstanceActionPayload", "nova_object.namespace":"nova", "nova_object.version":"1.5" }, "priority":"INFO", "publisher_id":"nova-compute:compute" } nova-17.0.13/doc/notification_samples/service-delete.json0000664000175000017500000000027713556316250023436 0ustar zuulzuul00000000000000{ "priority": "INFO", "payload": { "$ref": "common_payloads/ServiceStatusPayload.json#" }, "event_type": "service.delete", "publisher_id": "nova-compute:host2" } nova-17.0.13/doc/notification_samples/instance-live_migration_rollback-start.json0000664000175000017500000000030613556316250030345 0ustar zuulzuul00000000000000{ "event_type":"instance.live_migration_rollback.start", "payload":{"$ref":"common_payloads/InstanceActionPayload.json#"}, "priority":"INFO", "publisher_id":"nova-compute:compute" } nova-17.0.13/doc/notification_samples/instance-reboot-end.json0000664000175000017500000000026313556316250024371 0ustar zuulzuul00000000000000{ "event_type":"instance.reboot.end", "payload":{"$ref":"common_payloads/InstanceActionPayload.json#"}, "priority":"INFO", "publisher_id":"nova-compute:compute" } nova-17.0.13/doc/notification_samples/instance-interface_attach-end.json0000664000175000017500000000276713556316250026376 0ustar zuulzuul00000000000000{ "publisher_id": "nova-compute:compute", "event_type": "instance.interface_attach.end", "priority": "INFO", "payload": { "$ref":"common_payloads/InstanceActionPayload.json#", "nova_object.data":{ "ip_addresses": [ { "nova_object.data": { "device_name": "tapce531f90-19", "address": "192.168.1.3", "version": 4, "label": "private-network", "port_uuid": "ce531f90-199f-48c0-816c-13e38010b442", "mac": "fa:16:3e:4c:2c:30", "meta": {} }, "nova_object.name": "IpPayload", "nova_object.namespace": "nova", "nova_object.version": "1.0" }, { "nova_object.data": { "device_name": "tap88dae9fa-0d", "address": "192.168.1.30", "version": 4, "label": "private-network", "port_uuid": "88dae9fa-0dc6-49e3-8c29-3abc41e99ac9", "mac": "00:0c:29:0d:11:74", "meta": {} }, "nova_object.name": "IpPayload", "nova_object.namespace": "nova", "nova_object.version": "1.0" } ] } } } nova-17.0.13/doc/notification_samples/aggregate-create-start.json0000664000175000017500000000043513556316250025054 0ustar zuulzuul00000000000000{ "priority": "INFO", "payload": { "$ref": "common_payloads/AggregatePayload.json#", "nova_object.data": { "hosts": null, "id": null } }, "event_type": "aggregate.create.start", "publisher_id": "nova-api:fake-mini" } nova-17.0.13/doc/notification_samples/instance-live_migration_pre-end.json0000664000175000017500000000043713556316250026760 0ustar zuulzuul00000000000000{ "event_type": "instance.live_migration_pre.end", "payload": { "$ref": "common_payloads/InstanceActionPayload.json#", "nova_object.data": { "task_state": "migrating" } }, "priority": "INFO", "publisher_id": "nova-compute:host2" } nova-17.0.13/doc/notification_samples/instance-resize-start.json0000664000175000017500000000647113556316250024776 0ustar zuulzuul00000000000000{ "event_type":"instance.resize.start", "payload":{ "nova_object.data":{ "architecture":"x86_64", "availability_zone": "nova", "block_devices": [{ "nova_object.data": { "boot_index": null, "delete_on_termination": false, "device_name": "/dev/sdb", "tag": null, "volume_id": "a07f71dc-8151-4e7d-a0cc-cd24a3f11113" }, "nova_object.name": "BlockDevicePayload", "nova_object.namespace": "nova", "nova_object.version": "1.0" }], "created_at":"2012-10-29T13:42:11Z", "deleted_at":null, "display_name":"some-server", "display_description":"some-server", "fault":null, "host":"compute", "host_name":"some-server", "ip_addresses": [{ "nova_object.name": "IpPayload", "nova_object.namespace": "nova", "nova_object.version": "1.0", "nova_object.data": { "mac": "fa:16:3e:4c:2c:30", "address": "192.168.1.3", "port_uuid": "ce531f90-199f-48c0-816c-13e38010b442", "meta": {}, "version": 4, "label": "private-network", "device_name": "tapce531f90-19" } }], "key_name": "my-key", "kernel_id":"", "launched_at":"2012-10-29T13:42:11Z", "image_uuid": "155d900f-4e14-4e4c-a73d-069cbf4541e6", "metadata":{}, "locked":false, "node":"fake-mini", "os_type":null, "progress":0, "ramdisk_id":"", "reservation_id":"r-npxv0e40", "state":"active", "task_state":"resize_migrating", "power_state":"running", "tenant_id":"6f70656e737461636b20342065766572", "terminated_at":null, "auto_disk_config":"MANUAL", "flavor": { "nova_object.name": "FlavorPayload", "nova_object.data": { "flavorid": "a22d5517-147c-4147-a0d1-e698df5cd4e3", "name": "test_flavor", "root_gb": 1, "vcpus": 1, "ephemeral_gb": 0, "memory_mb": 512, "disabled": false, "rxtx_factor": 1.0, "extra_specs": { "hw:watchdog_action": "disabled" }, "projects": null, "swap": 0, "is_public": true, "vcpu_weight": 0, "description":null }, "nova_object.version": "1.4", "nova_object.namespace": "nova" }, "user_id":"fake", "uuid":"178b0921-8f85-4257-88b6-2e743b5a975c", "updated_at": "2012-10-29T13:42:11Z" }, "nova_object.name":"InstanceActionPayload", "nova_object.namespace":"nova", "nova_object.version":"1.5" }, "priority":"INFO", "publisher_id":"nova-compute:compute" } nova-17.0.13/doc/notification_samples/instance-power_on-end.json0000664000175000017500000000026613556316250024732 0ustar zuulzuul00000000000000{ "event_type":"instance.power_on.end", "payload":{"$ref": "common_payloads/InstanceActionPayload.json#"}, "priority":"INFO", "publisher_id":"nova-compute:compute" } nova-17.0.13/doc/notification_samples/instance-resize_confirm-start.json0000664000175000017500000000101113556316250026474 0ustar zuulzuul00000000000000{ "event_type":"instance.resize_confirm.start", "payload": { "$ref": "common_payloads/InstanceActionPayload.json#", "nova_object.data": { "flavor": { "nova_object.data": { "flavorid": "2", "memory_mb": 2048, "name": "m1.small", "root_gb":20 } }, "state": "resized" } }, "priority":"INFO", "publisher_id":"nova-compute:compute" } nova-17.0.13/doc/notification_samples/instance-rebuild-start.json0000664000175000017500000000656413556316250025126 0ustar zuulzuul00000000000000{ "priority": "INFO", "event_type": "instance.rebuild.start", "publisher_id": "nova-compute:compute", "payload": { "nova_object.name": "InstanceActionPayload", "nova_object.namespace": "nova", "nova_object.version": "1.5", "nova_object.data": { "display_description": "some-server", "reservation_id": "r-rqe0mlje", "progress": 0, "user_id": "fake", "task_state": "rebuilding", "auto_disk_config":"MANUAL", "node": "fake-mini", "created_at": "2012-10-29T13:42:11Z", "key_name": "my-key", "kernel_id": "", "metadata": {}, "deleted_at": null, "host_name": "some-server", "uuid": "ff0ee97f-3f14-4259-a79c-83949f8493bd", "os_type": null, "display_name": "some-server", "ramdisk_id": "", "power_state": "running", "locked": false, "flavor": { "nova_object.name": "FlavorPayload", "nova_object.namespace": "nova", "nova_object.version": "1.4", "nova_object.data": { "disabled": false, "ephemeral_gb": 0, "extra_specs": {"hw:watchdog_action": "disabled"}, "flavorid": "a22d5517-147c-4147-a0d1-e698df5cd4e3", "is_public": true, "memory_mb": 512, "name": "test_flavor", "projects": null, "root_gb": 1, "rxtx_factor": 1.0, "swap": 0, "vcpu_weight": 0, "vcpus": 1, "description":null } }, "terminated_at": null, "architecture": null, "launched_at": "2012-10-29T13:42:11Z", "ip_addresses": [ { "nova_object.name": "IpPayload", "nova_object.namespace": "nova", "nova_object.version": "1.0", "nova_object.data": { "meta": {}, "mac": "fa:16:3e:4c:2c:30", "label": "private-network", "port_uuid": "ce531f90-199f-48c0-816c-13e38010b442", "version": 4, "device_name": "tapce531f90-19", "address": "192.168.1.3" } } ], "tenant_id": "6f70656e737461636b20342065766572", "availability_zone": "nova", "block_devices": [{ "nova_object.data": { "boot_index": null, "delete_on_termination": false, "device_name": "/dev/sdb", "tag": null, "volume_id": "a07f71dc-8151-4e7d-a0cc-cd24a3f11113" }, "nova_object.name": "BlockDevicePayload", "nova_object.namespace": "nova", "nova_object.version": "1.0" }], "host": "compute", "image_uuid": "a2459075-d96c-40d5-893e-577ff92e721c", "state": "active", "fault": null, "updated_at": "2012-10-29T13:42:11Z" } } } nova-17.0.13/doc/notification_samples/instance-live_migration_abort-start.json0000664000175000017500000000672713556316250027700 0ustar zuulzuul00000000000000{ "event_type":"instance.live_migration_abort.start", "payload":{ "nova_object.data":{ "architecture":"x86_64", "auto_disk_config":"MANUAL", "availability_zone":"nova", "block_devices":[ { "nova_object.data":{ "boot_index":null, "delete_on_termination":false, "device_name":"/dev/sdb", "tag":null, "volume_id":"a07f71dc-8151-4e7d-a0cc-cd24a3f11113" }, "nova_object.name":"BlockDevicePayload", "nova_object.namespace":"nova", "nova_object.version":"1.0" } ], "created_at":"2012-10-29T13:42:11Z", "deleted_at":null, "display_description":"some-server", "display_name":"some-server", "fault":null, "flavor":{ "nova_object.data":{ "disabled":false, "ephemeral_gb":0, "extra_specs":{ "hw:watchdog_action":"disabled" }, "flavorid":"a22d5517-147c-4147-a0d1-e698df5cd4e3", "is_public":true, "memory_mb":512, "name":"test_flavor", "projects":null, "root_gb":1, "rxtx_factor":1.0, "swap":0, "vcpu_weight":0, "vcpus":1, "description":null }, "nova_object.name":"FlavorPayload", "nova_object.namespace":"nova", "nova_object.version":"1.4" }, "host":"compute", "host_name":"some-server", "image_uuid":"155d900f-4e14-4e4c-a73d-069cbf4541e6", "ip_addresses":[ { "nova_object.data":{ "address":"192.168.1.3", "device_name":"tapce531f90-19", "label":"private-network", "mac":"fa:16:3e:4c:2c:30", "meta":{ }, "port_uuid":"ce531f90-199f-48c0-816c-13e38010b442", "version":4 }, "nova_object.name":"IpPayload", "nova_object.namespace":"nova", "nova_object.version":"1.0" } ], "kernel_id":"", "key_name":"my-key", "launched_at":"2012-10-29T13:42:11Z", "locked":false, "metadata":{ }, "node":"fake-mini", "os_type":null, "power_state":"running", "progress":0, "ramdisk_id":"", "reservation_id":"r-n223ckb3", "state":"active", "task_state":"migrating", "tenant_id":"6f70656e737461636b20342065766572", "terminated_at":null, "updated_at": "2012-10-29T13:42:11Z", "user_id":"fake", "uuid":"82468110-e659-40ab-a0eb-496df936e6ff" }, "nova_object.name":"InstanceActionPayload", "nova_object.namespace":"nova", "nova_object.version":"1.5" }, "priority":"INFO", "publisher_id":"nova-compute:compute" }nova-17.0.13/doc/notification_samples/instance-power_off-end.json0000664000175000017500000000046113556316250025065 0ustar zuulzuul00000000000000{ "event_type":"instance.power_off.end", "payload":{ "$ref": "common_payloads/InstanceActionPayload.json#", "nova_object.data":{ "state":"stopped", "power_state":"shutdown" } }, "priority":"INFO", "publisher_id":"nova-compute:compute" } nova-17.0.13/doc/notification_samples/instance-resize_revert-end.json0000664000175000017500000000027213556316250025767 0ustar zuulzuul00000000000000{ "event_type":"instance.resize_revert.end", "payload":{"$ref":"common_payloads/InstanceActionPayload.json#"}, "priority":"INFO", "publisher_id":"nova-compute:compute" } nova-17.0.13/doc/notification_samples/keypair-create-end.json0000664000175000017500000000025613556316250024204 0ustar zuulzuul00000000000000{ "priority": "INFO", "payload": {"$ref": "common_payloads/KeypairPayload.json#"}, "event_type": "keypair.create.end", "publisher_id": "nova-api:fake-mini" } nova-17.0.13/doc/notification_samples/instance-resize_confirm-end.json0000664000175000017500000000074713556316250026124 0ustar zuulzuul00000000000000{ "event_type":"instance.resize_confirm.end", "payload": { "$ref": "common_payloads/InstanceActionPayload.json#", "nova_object.data": { "flavor": { "nova_object.data": { "flavorid": "2", "memory_mb": 2048, "name": "m1.small", "root_gb":20 } } } }, "priority":"INFO", "publisher_id":"nova-compute:compute" } nova-17.0.13/doc/notification_samples/instance-resume-start.json0000664000175000017500000000646413556316250024777 0ustar zuulzuul00000000000000{ "event_type":"instance.resume.start", "payload":{ "nova_object.data":{ "architecture":"x86_64", "availability_zone": "nova", "block_devices": [{ "nova_object.data": { "boot_index": null, "delete_on_termination": false, "device_name": "/dev/sdb", "tag": null, "volume_id": "a07f71dc-8151-4e7d-a0cc-cd24a3f11113" }, "nova_object.name": "BlockDevicePayload", "nova_object.namespace": "nova", "nova_object.version": "1.0" }], "created_at":"2012-10-29T13:42:11Z", "deleted_at":null, "display_name":"some-server", "display_description":"some-server", "fault":null, "host":"compute", "host_name":"some-server", "ip_addresses": [{ "nova_object.name": "IpPayload", "nova_object.namespace": "nova", "nova_object.version": "1.0", "nova_object.data": { "mac": "fa:16:3e:4c:2c:30", "address": "192.168.1.3", "port_uuid": "ce531f90-199f-48c0-816c-13e38010b442", "meta": {}, "version": 4, "label": "private-network", "device_name": "tapce531f90-19" } }], "key_name": "my-key", "kernel_id":"", "launched_at":"2012-10-29T13:42:11Z", "image_uuid": "155d900f-4e14-4e4c-a73d-069cbf4541e6", "metadata":{}, "locked":false, "node":"fake-mini", "os_type":null, "progress":0, "ramdisk_id":"", "reservation_id":"r-npxv0e40", "state":"suspended", "task_state":"resuming", "power_state":"running", "tenant_id":"6f70656e737461636b20342065766572", "terminated_at":null, "auto_disk_config":"MANUAL", "flavor": { "nova_object.name": "FlavorPayload", "nova_object.data": { "flavorid": "a22d5517-147c-4147-a0d1-e698df5cd4e3", "name": "test_flavor", "root_gb": 1, "vcpus": 1, "ephemeral_gb": 0, "memory_mb": 512, "disabled": false, "rxtx_factor": 1.0, "extra_specs": { "hw:watchdog_action": "disabled" }, "projects": null, "swap": 0, "is_public": true, "vcpu_weight": 0, "description":null }, "nova_object.version": "1.4", "nova_object.namespace": "nova" }, "user_id":"fake", "uuid":"178b0921-8f85-4257-88b6-2e743b5a975c", "updated_at": "2012-10-29T13:42:11Z" }, "nova_object.name":"InstanceActionPayload", "nova_object.namespace":"nova", "nova_object.version":"1.5" }, "priority":"INFO", "publisher_id":"nova-compute:compute" } nova-17.0.13/doc/notification_samples/instance-unrescue-start.json0000664000175000017500000000054013556316250025315 0ustar zuulzuul00000000000000{ "event_type": "instance.unrescue.start", "payload":{ "$ref": "common_payloads/InstanceActionPayload.json#", "nova_object.data": { "power_state": "shutdown", "task_state": "unrescuing", "state": "rescued" } }, "priority": "INFO", "publisher_id": "nova-compute:compute" } nova-17.0.13/doc/notification_samples/instance-snapshot-start.json0000664000175000017500000000661213556316250025331 0ustar zuulzuul00000000000000{ "event_type":"instance.snapshot.start", "payload":{ "nova_object.data":{ "architecture":"x86_64", "availability_zone": "nova", "block_devices": [{ "nova_object.data": { "boot_index": null, "delete_on_termination": false, "device_name": "/dev/sdb", "tag": null, "volume_id": "a07f71dc-8151-4e7d-a0cc-cd24a3f11113" }, "nova_object.name": "BlockDevicePayload", "nova_object.namespace": "nova", "nova_object.version": "1.0" }], "created_at":"2012-10-29T13:42:11Z", "deleted_at":null, "display_name":"some-server", "display_description":"some-server", "fault":null, "host":"compute", "host_name":"some-server", "ip_addresses": [{ "nova_object.name": "IpPayload", "nova_object.namespace": "nova", "nova_object.version": "1.0", "nova_object.data": { "mac": "fa:16:3e:4c:2c:30", "address": "192.168.1.3", "port_uuid": "ce531f90-199f-48c0-816c-13e38010b442", "meta": {}, "version": 4, "label": "private-network", "device_name": "tapce531f90-19" } }], "key_name": "my-key", "kernel_id":"", "launched_at":"2012-10-29T13:42:11Z", "image_uuid": "155d900f-4e14-4e4c-a73d-069cbf4541e6", "metadata":{}, "locked":false, "node":"fake-mini", "os_type":null, "progress":0, "ramdisk_id":"", "reservation_id":"r-npxv0e40", "state":"active", "task_state":"image_snapshot", "power_state":"running", "tenant_id":"6f70656e737461636b20342065766572", "terminated_at":null, "auto_disk_config":"MANUAL", "flavor": { "nova_object.name": "FlavorPayload", "nova_object.data": { "flavorid": "a22d5517-147c-4147-a0d1-e698df5cd4e3", "name": "test_flavor", "root_gb": 1, "vcpus": 1, "ephemeral_gb": 0, "memory_mb": 512, "disabled": false, "rxtx_factor": 1.0, "extra_specs": { "hw:watchdog_action": "disabled" }, "projects": null, "swap": 0, "is_public": true, "vcpu_weight": 0, "description":null }, "nova_object.version": "1.4", "nova_object.namespace": "nova" }, "user_id":"fake", "uuid":"178b0921-8f85-4257-88b6-2e743b5a975c", "updated_at": "2012-10-29T13:42:11Z", "snapshot_image_id": "d2aae36f-785c-4518-8016-bc9534d9fc7f" }, "nova_object.name":"InstanceActionSnapshotPayload", "nova_object.namespace":"nova", "nova_object.version":"1.6" }, "priority":"INFO", "publisher_id":"nova-compute:compute" } nova-17.0.13/doc/notification_samples/instance-volume_swap-start.json0000664000175000017500000000674113556316250026036 0ustar zuulzuul00000000000000{ "event_type": "instance.volume_swap.start", "payload": { "nova_object.data": { "architecture": "x86_64", "availability_zone": "nova", "block_devices": [{ "nova_object.data": { "boot_index": null, "delete_on_termination": false, "device_name": "/dev/sdb", "tag": null, "volume_id": "a07f71dc-8151-4e7d-a0cc-cd24a3f11113" }, "nova_object.name": "BlockDevicePayload", "nova_object.namespace": "nova", "nova_object.version": "1.0" }], "created_at": "2012-10-29T13:42:11Z", "deleted_at": null, "display_name": "some-server", "display_description":"some-server", "fault": null, "flavor": { "nova_object.data": { "flavorid": "a22d5517-147c-4147-a0d1-e698df5cd4e3", "name": "test_flavor", "root_gb": 1, "vcpus": 1, "ephemeral_gb": 0, "memory_mb": 512, "disabled": false, "rxtx_factor": 1.0, "extra_specs": { "hw:watchdog_action": "disabled" }, "projects": null, "swap": 0, "is_public": true, "vcpu_weight": 0, "description":null }, "nova_object.name": "FlavorPayload", "nova_object.namespace": "nova", "nova_object.version": "1.4" }, "host": "compute", "host_name": "some-server", "image_uuid": "155d900f-4e14-4e4c-a73d-069cbf4541e6", "ip_addresses": [{ "nova_object.data": { "address": "192.168.1.3", "device_name": "tapce531f90-19", "label": "private-network", "meta": {}, "port_uuid": "ce531f90-199f-48c0-816c-13e38010b442", "version": 4, "mac": "fa:16:3e:4c:2c:30" }, "nova_object.name": "IpPayload", "nova_object.namespace": "nova", "nova_object.version": "1.0" }], "key_name": "my-key", "kernel_id": "", "launched_at": "2012-10-29T13:42:11Z", "metadata": {}, "locked":false, "new_volume_id": "227cc671-f30b-4488-96fd-7d0bf13648d8", "node": "fake-mini", "old_volume_id": "a07f71dc-8151-4e7d-a0cc-cd24a3f11113", "os_type": null, "power_state":"running", "progress": 0, "ramdisk_id": "", "reservation_id": "r-6w6ruqaz", "state": "active", "task_state": null, "tenant_id": "6f70656e737461636b20342065766572", "terminated_at": null, "auto_disk_config":"MANUAL", "updated_at": "2012-10-29T13:42:11Z", "user_id": "fake", "uuid": "0ab886d0-7443-4107-9265-48371bfa662b" }, "nova_object.name": "InstanceActionVolumeSwapPayload", "nova_object.namespace": "nova", "nova_object.version": "1.5" }, "priority": "INFO", "publisher_id": "nova-compute:compute" } nova-17.0.13/doc/notification_samples/keypair-import-end.json0000664000175000017500000000025513556316250024252 0ustar zuulzuul00000000000000{ "priority": "INFO", "payload": {"$ref": "common_payloads/KeypairPayload.json#"}, "event_type": "keypair.import.end", "publisher_id": "nova-api:fake-mini" }nova-17.0.13/doc/notification_samples/service-update.json0000664000175000017500000000052713556316250023454 0ustar zuulzuul00000000000000{ "priority": "INFO", "payload": { "$ref": "common_payloads/ServiceStatusPayload.json#", "nova_object.data": { "host": "host1", "last_seen_up": "2012-10-29T13:42:05Z", "report_count": 1 } }, "event_type": "service.update", "publisher_id": "nova-compute:host1" } nova-17.0.13/doc/notification_samples/instance-reboot-error.json0000664000175000017500000000152413556316250024755 0ustar zuulzuul00000000000000{ "event_type":"instance.reboot.error", "payload":{ "$ref":"common_payloads/InstanceActionPayload.json#", "nova_object.data": { "fault": { "nova_object.data": { "exception": "UnsupportedVirtType", "exception_message": "Virtualization type 'FakeVirt' is not supported by this compute driver", "function_name": "_hard_reboot", "module_name": "nova.tests.functional.notification_sample_tests.test_instance" }, "nova_object.name": "ExceptionPayload", "nova_object.namespace": "nova", "nova_object.version": "1.0" }, "task_state":"reboot_started_hard" } }, "priority":"ERROR", "publisher_id":"nova-compute:compute" } nova-17.0.13/doc/notification_samples/instance-rebuild-error.json0000664000175000017500000000761513556316250025120 0ustar zuulzuul00000000000000{ "priority": "ERROR", "payload": { "nova_object.name": "InstanceActionPayload", "nova_object.data": { "state": "active", "availability_zone": "nova", "key_name": "my-key", "block_devices": [{ "nova_object.data": { "boot_index": null, "delete_on_termination": false, "device_name": "/dev/sdb", "tag": null, "volume_id": "a07f71dc-8151-4e7d-a0cc-cd24a3f11113" }, "nova_object.name": "BlockDevicePayload", "nova_object.namespace": "nova", "nova_object.version": "1.0" }], "kernel_id": "", "host_name": "some-server", "progress": 0, "task_state": "rebuilding", "deleted_at": null, "architecture": null, "auto_disk_config":"MANUAL", "ramdisk_id": "", "locked": false, "created_at": "2012-10-29T13:42:11Z", "host": "compute", "display_name": "some-server", "os_type": null, "metadata": {}, "ip_addresses": [ { "nova_object.name": "IpPayload", "nova_object.data": { "device_name": "tapce531f90-19", "port_uuid": "ce531f90-199f-48c0-816c-13e38010b442", "address": "192.168.1.3", "version": 4, "meta": {}, "label": "private-network", "mac": "fa:16:3e:4c:2c:30" }, "nova_object.version": "1.0", "nova_object.namespace": "nova" } ], "power_state": "running", "display_description": "some-server", "uuid": "5fafd989-4043-44b4-8acc-907e847f4b70", "flavor": { "nova_object.name": "FlavorPayload", "nova_object.data": { "disabled": false, "ephemeral_gb": 0, "extra_specs": {"hw:watchdog_action": "disabled"}, "flavorid": "a22d5517-147c-4147-a0d1-e698df5cd4e3", "is_public": true, "memory_mb": 512, "name": "test_flavor", "projects": null, "root_gb": 1, "rxtx_factor": 1.0, "swap": 0, "vcpu_weight": 0, "vcpus": 1, "description":null }, "nova_object.version": "1.4", "nova_object.namespace": "nova" }, "reservation_id": "r-pfiic52h", "terminated_at": null, "tenant_id": "6f70656e737461636b20342065766572", "node": "fake-mini", "launched_at": "2012-10-29T13:42:11Z", "user_id": "fake", "image_uuid": "a2459075-d96c-40d5-893e-577ff92e721c", "fault": { "nova_object.name": "ExceptionPayload", "nova_object.data": { "module_name": "nova.tests.functional.notification_sample_tests.test_instance", "exception_message": "Virtual Interface creation failed", "function_name": "_virtual_interface_create_failed", "exception": "VirtualInterfaceCreateException" }, "nova_object.version": "1.0", "nova_object.namespace": "nova" }, "updated_at": "2012-10-29T13:42:11Z" }, "nova_object.version": "1.5", "nova_object.namespace": "nova" }, "publisher_id": "nova-compute:compute", "event_type": "instance.rebuild.error" } nova-17.0.13/doc/notification_samples/instance-live_migration_pre-start.json0000664000175000017500000000044113556316250027342 0ustar zuulzuul00000000000000{ "event_type": "instance.live_migration_pre.start", "payload": { "$ref": "common_payloads/InstanceActionPayload.json#", "nova_object.data": { "task_state": "migrating" } }, "priority": "INFO", "publisher_id": "nova-compute:host2" } nova-17.0.13/doc/notification_samples/instance-interface_detach-start.json0000664000175000017500000000277113556316250026744 0ustar zuulzuul00000000000000{ "priority": "INFO", "event_type": "instance.interface_detach.start", "payload": { "$ref":"common_payloads/InstanceActionPayload.json#", "nova_object.data":{ "ip_addresses": [ { "nova_object.data": { "device_name": "tapce531f90-19", "address": "192.168.1.3", "version": 4, "label": "private-network", "port_uuid": "ce531f90-199f-48c0-816c-13e38010b442", "mac": "fa:16:3e:4c:2c:30", "meta": {} }, "nova_object.name": "IpPayload", "nova_object.namespace": "nova", "nova_object.version": "1.0" }, { "nova_object.data": { "device_name": "tap88dae9fa-0d", "address": "192.168.1.30", "version": 4, "label": "private-network", "port_uuid": "88dae9fa-0dc6-49e3-8c29-3abc41e99ac9", "mac": "00:0c:29:0d:11:74", "meta": {} }, "nova_object.name": "IpPayload", "nova_object.namespace": "nova", "nova_object.version": "1.0" } ] } }, "publisher_id": "nova-compute:compute" } nova-17.0.13/doc/notification_samples/instance-pause-end.json0000664000175000017500000000041013556316250024206 0ustar zuulzuul00000000000000{ "event_type":"instance.pause.end", "payload":{ "$ref": "common_payloads/InstanceActionPayload.json#", "nova_object.data": { "state": "paused" } }, "priority":"INFO", "publisher_id":"nova-compute:compute" } nova-17.0.13/doc/notification_samples/instance-unshelve-start.json0000664000175000017500000000646513556316250025331 0ustar zuulzuul00000000000000{ "event_type":"instance.unshelve.start", "payload":{ "nova_object.data":{ "architecture":"x86_64", "availability_zone": "nova", "block_devices": [{ "nova_object.data": { "boot_index": null, "delete_on_termination": false, "device_name": "/dev/sdb", "tag": null, "volume_id": "a07f71dc-8151-4e7d-a0cc-cd24a3f11113" }, "nova_object.name": "BlockDevicePayload", "nova_object.namespace": "nova", "nova_object.version": "1.0" }], "created_at":"2012-10-29T13:42:11Z", "deleted_at":null, "display_name":"some-server", "display_description":"some-server", "fault":null, "host":null, "host_name":"some-server", "ip_addresses": [{ "nova_object.name": "IpPayload", "nova_object.namespace": "nova", "nova_object.version": "1.0", "nova_object.data": { "mac": "fa:16:3e:4c:2c:30", "address": "192.168.1.3", "port_uuid": "ce531f90-199f-48c0-816c-13e38010b442", "meta": {}, "version": 4, "label": "private-network", "device_name": "tapce531f90-19" } }], "key_name": "my-key", "kernel_id":"", "launched_at":"2012-10-29T13:42:11Z", "image_uuid": "155d900f-4e14-4e4c-a73d-069cbf4541e6", "metadata":{}, "locked":false, "node":null, "os_type":null, "progress":0, "ramdisk_id":"", "reservation_id":"r-npxv0e40", "state":"shelved_offloaded", "task_state":"unshelving", "power_state":"shutdown", "tenant_id":"6f70656e737461636b20342065766572", "terminated_at":null, "auto_disk_config":"MANUAL", "flavor": { "nova_object.name": "FlavorPayload", "nova_object.data": { "flavorid": "a22d5517-147c-4147-a0d1-e698df5cd4e3", "name": "test_flavor", "root_gb": 1, "vcpus": 1, "ephemeral_gb": 0, "memory_mb": 512, "disabled": false, "rxtx_factor": 1.0, "extra_specs": { "hw:watchdog_action": "disabled" }, "projects": null, "swap": 0, "is_public": true, "vcpu_weight": 0, "description":null }, "nova_object.version": "1.4", "nova_object.namespace": "nova" }, "user_id":"fake", "uuid":"178b0921-8f85-4257-88b6-2e743b5a975c", "updated_at": "2012-10-29T13:42:11Z" }, "nova_object.name":"InstanceActionPayload", "nova_object.namespace":"nova", "nova_object.version":"1.5" }, "priority":"INFO", "publisher_id":"nova-compute:compute" } nova-17.0.13/doc/notification_samples/keypair-delete-end.json0000664000175000017500000000025513556316250024202 0ustar zuulzuul00000000000000{ "priority": "INFO", "payload": {"$ref": "common_payloads/KeypairPayload.json#"}, "event_type": "keypair.delete.end", "publisher_id": "nova-api:fake-mini" }nova-17.0.13/doc/notification_samples/instance-volume_detach-end.json0000664000175000017500000000662513556316250025726 0ustar zuulzuul00000000000000{ "event_type": "instance.volume_detach.end", "payload": { "nova_object.data": { "architecture": "x86_64", "availability_zone": "nova", "block_devices": [{ "nova_object.data": { "boot_index": null, "delete_on_termination": false, "device_name": "/dev/sdb", "tag": null, "volume_id": "a07f71dc-8151-4e7d-a0cc-cd24a3f11113" }, "nova_object.name": "BlockDevicePayload", "nova_object.namespace": "nova", "nova_object.version": "1.0" }], "created_at": "2012-10-29T13:42:11Z", "deleted_at": null, "display_name": "some-server", "display_description":"some-server", "fault": null, "flavor": { "nova_object.name": "FlavorPayload", "nova_object.data": { "flavorid": "a22d5517-147c-4147-a0d1-e698df5cd4e3", "name": "test_flavor", "projects": null, "root_gb": 1, "vcpus": 1, "ephemeral_gb": 0, "memory_mb": 512, "disabled": false, "rxtx_factor": 1.0, "extra_specs": { "hw:watchdog_action": "disabled" }, "swap": 0, "is_public": true, "vcpu_weight": 0, "description":null }, "nova_object.version": "1.4", "nova_object.namespace": "nova" }, "host": "compute", "host_name": "some-server", "image_uuid": "155d900f-4e14-4e4c-a73d-069cbf4541e6", "ip_addresses": [{ "nova_object.data": { "address": "192.168.1.3", "device_name": "tapce531f90-19", "label": "private-network", "meta": {}, "port_uuid": "ce531f90-199f-48c0-816c-13e38010b442", "version": 4, "mac": "fa:16:3e:4c:2c:30" }, "nova_object.name": "IpPayload", "nova_object.namespace": "nova", "nova_object.version": "1.0" }], "key_name": "my-key", "kernel_id": "", "launched_at": "2012-10-29T13:42:11Z", "metadata": {}, "locked":false, "node": "fake-mini", "volume_id": "a07f71dc-8151-4e7d-a0cc-cd24a3f11113", "os_type": null, "power_state":"running", "progress": 0, "ramdisk_id": "", "reservation_id": "r-6w6ruqaz", "state": "active", "task_state": null, "tenant_id": "6f70656e737461636b20342065766572", "terminated_at": null, "auto_disk_config": "MANUAL", "user_id": "fake", "uuid": "0ab886d0-7443-4107-9265-48371bfa662b", "updated_at": "2012-10-29T13:42:11Z" }, "nova_object.name": "InstanceActionVolumePayload", "nova_object.namespace": "nova", "nova_object.version": "1.3" }, "priority": "INFO", "publisher_id": "nova-compute:compute" } nova-17.0.13/doc/notification_samples/instance-volume_attach-end.json0000664000175000017500000000662513556316250025742 0ustar zuulzuul00000000000000{ "event_type": "instance.volume_attach.end", "payload": { "nova_object.data": { "architecture": "x86_64", "availability_zone": "nova", "block_devices": [{ "nova_object.data": { "boot_index": null, "delete_on_termination": false, "device_name": "/dev/sdb", "tag": null, "volume_id": "a07f71dc-8151-4e7d-a0cc-cd24a3f11113" }, "nova_object.name": "BlockDevicePayload", "nova_object.namespace": "nova", "nova_object.version": "1.0" }], "created_at": "2012-10-29T13:42:11Z", "deleted_at": null, "display_name": "some-server", "display_description":"some-server", "fault": null, "flavor": { "nova_object.name": "FlavorPayload", "nova_object.data": { "flavorid": "a22d5517-147c-4147-a0d1-e698df5cd4e3", "name": "test_flavor", "projects": null, "root_gb": 1, "vcpus": 1, "ephemeral_gb": 0, "memory_mb": 512, "disabled": false, "rxtx_factor": 1.0, "extra_specs": { "hw:watchdog_action": "disabled" }, "swap": 0, "is_public": true, "vcpu_weight": 0, "description":null }, "nova_object.version": "1.4", "nova_object.namespace": "nova" }, "host": "compute", "host_name": "some-server", "image_uuid": "155d900f-4e14-4e4c-a73d-069cbf4541e6", "ip_addresses": [{ "nova_object.data": { "address": "192.168.1.3", "device_name": "tapce531f90-19", "label": "private-network", "meta": {}, "port_uuid": "ce531f90-199f-48c0-816c-13e38010b442", "version": 4, "mac": "fa:16:3e:4c:2c:30" }, "nova_object.name": "IpPayload", "nova_object.namespace": "nova", "nova_object.version": "1.0" }], "key_name": "my-key", "kernel_id": "", "launched_at": "2012-10-29T13:42:11Z", "metadata": {}, "locked":false, "node": "fake-mini", "volume_id": "a07f71dc-8151-4e7d-a0cc-cd24a3f11113", "os_type": null, "power_state":"running", "progress": 0, "ramdisk_id": "", "reservation_id": "r-6w6ruqaz", "state": "active", "task_state": null, "tenant_id": "6f70656e737461636b20342065766572", "terminated_at": null, "auto_disk_config": "MANUAL", "user_id": "fake", "uuid": "0ab886d0-7443-4107-9265-48371bfa662b", "updated_at": "2012-10-29T13:42:11Z" }, "nova_object.name": "InstanceActionVolumePayload", "nova_object.namespace": "nova", "nova_object.version": "1.3" }, "priority": "INFO", "publisher_id": "nova-compute:compute" } nova-17.0.13/doc/notification_samples/instance-unshelve-end.json0000664000175000017500000000645313556316250024737 0ustar zuulzuul00000000000000{ "event_type":"instance.unshelve.end", "payload":{ "nova_object.data":{ "architecture":"x86_64", "availability_zone": "nova", "block_devices": [{ "nova_object.data": { "boot_index": null, "delete_on_termination": false, "device_name": "/dev/sdb", "tag": null, "volume_id": "a07f71dc-8151-4e7d-a0cc-cd24a3f11113" }, "nova_object.name": "BlockDevicePayload", "nova_object.namespace": "nova", "nova_object.version": "1.0" }], "created_at":"2012-10-29T13:42:11Z", "deleted_at":null, "display_name":"some-server", "display_description":"some-server", "fault":null, "host":"compute", "host_name":"some-server", "ip_addresses": [{ "nova_object.name": "IpPayload", "nova_object.namespace": "nova", "nova_object.version": "1.0", "nova_object.data": { "mac": "fa:16:3e:4c:2c:30", "address": "192.168.1.3", "port_uuid": "ce531f90-199f-48c0-816c-13e38010b442", "meta": {}, "version": 4, "label": "private-network", "device_name": "tapce531f90-19" } }], "key_name": "my-key", "kernel_id":"", "launched_at":"2012-10-29T13:42:11Z", "image_uuid": "155d900f-4e14-4e4c-a73d-069cbf4541e6", "metadata":{}, "locked":false, "node":"fake-mini", "os_type":null, "progress":0, "ramdisk_id":"", "reservation_id":"r-npxv0e40", "state":"active", "task_state":null, "power_state":"running", "tenant_id":"6f70656e737461636b20342065766572", "terminated_at":null, "auto_disk_config":"MANUAL", "flavor": { "nova_object.name": "FlavorPayload", "nova_object.data": { "flavorid": "a22d5517-147c-4147-a0d1-e698df5cd4e3", "name": "test_flavor", "root_gb": 1, "vcpus": 1, "ephemeral_gb": 0, "memory_mb": 512, "disabled": false, "rxtx_factor": 1.0, "extra_specs": { "hw:watchdog_action": "disabled" }, "projects": null, "swap": 0, "is_public": true, "vcpu_weight": 0, "description":null }, "nova_object.version": "1.4", "nova_object.namespace": "nova" }, "user_id":"fake", "uuid":"178b0921-8f85-4257-88b6-2e743b5a975c", "updated_at": "2012-10-29T13:42:11Z" }, "nova_object.name":"InstanceActionPayload", "nova_object.namespace":"nova", "nova_object.version":"1.5" }, "priority":"INFO", "publisher_id":"nova-compute:compute" } nova-17.0.13/doc/notification_samples/flavor-update.json0000664000175000017500000000150313556316250023300 0ustar zuulzuul00000000000000{ "priority": "INFO", "payload": { "nova_object.namespace": "nova", "nova_object.version": "1.4", "nova_object.name": "FlavorPayload", "nova_object.data": { "name": "test_flavor", "memory_mb": 1024, "ephemeral_gb": 0, "disabled": false, "vcpus": 2, "extra_specs": { "key1": "value1", "key2": "value2" }, "projects": ["fake_tenant"], "swap": 0, "rxtx_factor": 2.0, "is_public": false, "root_gb": 10, "vcpu_weight": 0, "flavorid": "a22d5517-147c-4147-a0d1-e698df5cd4e3", "description":null } }, "event_type": "flavor.update", "publisher_id": "nova-api:fake-mini" } nova-17.0.13/doc/notification_samples/instance-snapshot-end.json0000664000175000017500000000657413556316250024751 0ustar zuulzuul00000000000000{ "event_type":"instance.snapshot.end", "payload":{ "nova_object.data":{ "architecture":"x86_64", "availability_zone": "nova", "block_devices": [{ "nova_object.data": { "boot_index": null, "delete_on_termination": false, "device_name": "/dev/sdb", "tag": null, "volume_id": "a07f71dc-8151-4e7d-a0cc-cd24a3f11113" }, "nova_object.name": "BlockDevicePayload", "nova_object.namespace": "nova", "nova_object.version": "1.0" }], "created_at":"2012-10-29T13:42:11Z", "deleted_at":null, "display_name":"some-server", "display_description":"some-server", "fault":null, "host":"compute", "host_name":"some-server", "ip_addresses": [{ "nova_object.name": "IpPayload", "nova_object.namespace": "nova", "nova_object.version": "1.0", "nova_object.data": { "mac": "fa:16:3e:4c:2c:30", "address": "192.168.1.3", "port_uuid": "ce531f90-199f-48c0-816c-13e38010b442", "meta": {}, "version": 4, "label": "private-network", "device_name": "tapce531f90-19" } }], "key_name": "my-key", "kernel_id":"", "launched_at":"2012-10-29T13:42:11Z", "image_uuid": "155d900f-4e14-4e4c-a73d-069cbf4541e6", "metadata":{}, "locked":false, "node":"fake-mini", "os_type":null, "progress":0, "ramdisk_id":"", "reservation_id":"r-npxv0e40", "state":"active", "task_state":null, "power_state":"running", "tenant_id":"6f70656e737461636b20342065766572", "terminated_at":null, "auto_disk_config":"MANUAL", "flavor": { "nova_object.name": "FlavorPayload", "nova_object.data": { "flavorid": "a22d5517-147c-4147-a0d1-e698df5cd4e3", "name": "test_flavor", "root_gb": 1, "vcpus": 1, "ephemeral_gb": 0, "memory_mb": 512, "disabled": false, "rxtx_factor": 1.0, "extra_specs": { "hw:watchdog_action": "disabled" }, "projects": null, "swap": 0, "is_public": true, "vcpu_weight": 0, "description":null }, "nova_object.version": "1.4", "nova_object.namespace": "nova" }, "user_id":"fake", "uuid":"178b0921-8f85-4257-88b6-2e743b5a975c", "updated_at": "2012-10-29T13:42:11Z", "snapshot_image_id": "d2aae36f-785c-4518-8016-bc9534d9fc7f" }, "nova_object.name":"InstanceActionSnapshotPayload", "nova_object.namespace":"nova", "nova_object.version":"1.6" }, "priority":"INFO", "publisher_id":"nova-compute:compute" } nova-17.0.13/doc/notification_samples/instance-volume_attach-start.json0000664000175000017500000000662713556316250026333 0ustar zuulzuul00000000000000{ "event_type": "instance.volume_attach.start", "payload": { "nova_object.data": { "architecture": "x86_64", "availability_zone": "nova", "block_devices": [{ "nova_object.data": { "boot_index": null, "delete_on_termination": false, "device_name": "/dev/sdb", "tag": null, "volume_id": "a07f71dc-8151-4e7d-a0cc-cd24a3f11113" }, "nova_object.name": "BlockDevicePayload", "nova_object.namespace": "nova", "nova_object.version": "1.0" }], "created_at": "2012-10-29T13:42:11Z", "deleted_at": null, "display_name": "some-server", "display_description":"some-server", "fault": null, "flavor": { "nova_object.name": "FlavorPayload", "nova_object.data": { "flavorid": "a22d5517-147c-4147-a0d1-e698df5cd4e3", "name": "test_flavor", "projects": null, "root_gb": 1, "vcpus": 1, "ephemeral_gb": 0, "memory_mb": 512, "disabled": false, "rxtx_factor": 1.0, "extra_specs": { "hw:watchdog_action": "disabled" }, "swap": 0, "is_public": true, "vcpu_weight": 0, "description":null }, "nova_object.version": "1.4", "nova_object.namespace": "nova" }, "host": "compute", "host_name": "some-server", "image_uuid": "155d900f-4e14-4e4c-a73d-069cbf4541e6", "ip_addresses": [{ "nova_object.data": { "address": "192.168.1.3", "device_name": "tapce531f90-19", "label": "private-network", "meta": {}, "port_uuid": "ce531f90-199f-48c0-816c-13e38010b442", "version": 4, "mac": "fa:16:3e:4c:2c:30" }, "nova_object.name": "IpPayload", "nova_object.namespace": "nova", "nova_object.version": "1.0" }], "key_name": "my-key", "kernel_id": "", "launched_at": "2012-10-29T13:42:11Z", "metadata": {}, "locked":false, "node": "fake-mini", "volume_id": "a07f71dc-8151-4e7d-a0cc-cd24a3f11113", "os_type": null, "power_state":"running", "progress": 0, "ramdisk_id": "", "reservation_id": "r-6w6ruqaz", "state": "active", "task_state": null, "tenant_id": "6f70656e737461636b20342065766572", "terminated_at": null, "auto_disk_config": "MANUAL", "user_id": "fake", "uuid": "0ab886d0-7443-4107-9265-48371bfa662b", "updated_at": "2012-10-29T13:42:11Z" }, "nova_object.name": "InstanceActionVolumePayload", "nova_object.namespace": "nova", "nova_object.version": "1.3" }, "priority": "INFO", "publisher_id": "nova-compute:compute" } nova-17.0.13/doc/notification_samples/instance-shelve_offload-end.json0000664000175000017500000000645713556316250026072 0ustar zuulzuul00000000000000{ "event_type":"instance.shelve_offload.end", "payload":{ "nova_object.data":{ "architecture":"x86_64", "availability_zone": null, "block_devices": [{ "nova_object.data": { "boot_index": null, "delete_on_termination": false, "device_name": "/dev/sdb", "tag": null, "volume_id": "a07f71dc-8151-4e7d-a0cc-cd24a3f11113" }, "nova_object.name": "BlockDevicePayload", "nova_object.namespace": "nova", "nova_object.version": "1.0" }], "created_at":"2012-10-29T13:42:11Z", "deleted_at":null, "display_name":"some-server", "display_description":"some-server", "fault":null, "host":null, "host_name":"some-server", "ip_addresses": [{ "nova_object.name": "IpPayload", "nova_object.namespace": "nova", "nova_object.version": "1.0", "nova_object.data": { "mac": "fa:16:3e:4c:2c:30", "address": "192.168.1.3", "port_uuid": "ce531f90-199f-48c0-816c-13e38010b442", "meta": {}, "version": 4, "label": "private-network", "device_name": "tapce531f90-19" } }], "key_name": "my-key", "kernel_id":"", "launched_at":"2012-10-29T13:42:11Z", "image_uuid": "155d900f-4e14-4e4c-a73d-069cbf4541e6", "metadata":{}, "locked":false, "node":null, "os_type":null, "progress":0, "ramdisk_id":"", "reservation_id":"r-npxv0e40", "state":"shelved_offloaded", "task_state":null, "power_state":"shutdown", "tenant_id":"6f70656e737461636b20342065766572", "terminated_at":null, "auto_disk_config":"MANUAL", "flavor": { "nova_object.name": "FlavorPayload", "nova_object.data": { "flavorid": "a22d5517-147c-4147-a0d1-e698df5cd4e3", "name": "test_flavor", "root_gb": 1, "vcpus": 1, "ephemeral_gb": 0, "memory_mb": 512, "disabled": false, "rxtx_factor": 1.0, "extra_specs": { "hw:watchdog_action": "disabled" }, "projects": null, "swap": 0, "is_public": true, "vcpu_weight": 0, "description":null }, "nova_object.version": "1.4", "nova_object.namespace": "nova" }, "user_id":"fake", "uuid":"178b0921-8f85-4257-88b6-2e743b5a975c", "updated_at": "2012-10-29T13:42:11Z" }, "nova_object.name":"InstanceActionPayload", "nova_object.namespace":"nova", "nova_object.version":"1.5" }, "priority":"INFO", "publisher_id":"nova-compute:compute" } nova-17.0.13/doc/notification_samples/instance-resize_finish-start.json0000664000175000017500000000647313556316250026340 0ustar zuulzuul00000000000000{ "event_type":"instance.resize_finish.start", "payload":{ "nova_object.data":{ "architecture":"x86_64", "availability_zone": "nova", "block_devices": [{ "nova_object.data": { "boot_index": null, "delete_on_termination": false, "device_name": "/dev/sdb", "tag": null, "volume_id": "a07f71dc-8151-4e7d-a0cc-cd24a3f11113" }, "nova_object.name": "BlockDevicePayload", "nova_object.namespace": "nova", "nova_object.version": "1.0" }], "created_at":"2012-10-29T13:42:11Z", "deleted_at":null, "display_name":"some-server", "display_description":"some-server", "fault":null, "host":"compute", "host_name":"some-server", "ip_addresses": [{ "nova_object.name": "IpPayload", "nova_object.namespace": "nova", "nova_object.version": "1.0", "nova_object.data": { "mac": "fa:16:3e:4c:2c:30", "address": "192.168.1.3", "port_uuid": "ce531f90-199f-48c0-816c-13e38010b442", "meta": {}, "version": 4, "label": "private-network", "device_name": "tapce531f90-19" } }], "key_name": "my-key", "kernel_id":"", "launched_at":"2012-10-29T13:42:11Z", "image_uuid": "155d900f-4e14-4e4c-a73d-069cbf4541e6", "metadata":{}, "locked":false, "node":"fake-mini", "os_type":null, "progress":0, "ramdisk_id":"", "reservation_id":"r-npxv0e40", "state":"active", "task_state":"resize_finish", "power_state":"running", "tenant_id":"6f70656e737461636b20342065766572", "terminated_at":null, "auto_disk_config":"MANUAL", "flavor": { "nova_object.name": "FlavorPayload", "nova_object.data": { "flavorid": "d5a8bb54-365a-45ae-abdb-38d249df7845", "name": "other_flavor", "root_gb": 1, "vcpus": 1, "ephemeral_gb": 0, "memory_mb": 256, "disabled": false, "rxtx_factor": 1.0, "extra_specs": { "hw:watchdog_action": "reset" }, "projects": null, "swap": 0, "is_public": true, "vcpu_weight": 0, "description":null }, "nova_object.version": "1.4", "nova_object.namespace": "nova" }, "user_id":"fake", "uuid":"178b0921-8f85-4257-88b6-2e743b5a975c", "updated_at": "2012-10-29T13:42:11Z" }, "nova_object.name":"InstanceActionPayload", "nova_object.namespace":"nova", "nova_object.version":"1.5" }, "priority":"INFO", "publisher_id":"nova-compute:compute" } nova-17.0.13/doc/notification_samples/instance-volume_swap-end.json0000664000175000017500000000673713556316250025454 0ustar zuulzuul00000000000000{ "event_type": "instance.volume_swap.end", "payload": { "nova_object.data": { "architecture": "x86_64", "availability_zone": "nova", "block_devices": [{ "nova_object.data": { "boot_index": null, "delete_on_termination": false, "device_name": "/dev/sdb", "tag": null, "volume_id": "227cc671-f30b-4488-96fd-7d0bf13648d8" }, "nova_object.name": "BlockDevicePayload", "nova_object.namespace": "nova", "nova_object.version": "1.0" }], "created_at": "2012-10-29T13:42:11Z", "deleted_at": null, "display_name": "some-server", "display_description":"some-server", "fault": null, "flavor": { "nova_object.data": { "flavorid": "a22d5517-147c-4147-a0d1-e698df5cd4e3", "name": "test_flavor", "root_gb": 1, "vcpus": 1, "ephemeral_gb": 0, "memory_mb": 512, "disabled": false, "rxtx_factor": 1.0, "extra_specs": { "hw:watchdog_action": "disabled" }, "projects": null, "swap": 0, "is_public": true, "vcpu_weight": 0, "description":null }, "nova_object.name": "FlavorPayload", "nova_object.namespace": "nova", "nova_object.version": "1.4" }, "host": "compute", "host_name": "some-server", "image_uuid": "155d900f-4e14-4e4c-a73d-069cbf4541e6", "ip_addresses": [{ "nova_object.data": { "address": "192.168.1.3", "device_name": "tapce531f90-19", "label": "private-network", "meta": {}, "port_uuid": "ce531f90-199f-48c0-816c-13e38010b442", "version": 4, "mac": "fa:16:3e:4c:2c:30" }, "nova_object.name": "IpPayload", "nova_object.namespace": "nova", "nova_object.version": "1.0" }], "key_name": "my-key", "kernel_id": "", "launched_at": "2012-10-29T13:42:11Z", "metadata": {}, "locked":false, "new_volume_id": "227cc671-f30b-4488-96fd-7d0bf13648d8", "node": "fake-mini", "old_volume_id": "a07f71dc-8151-4e7d-a0cc-cd24a3f11113", "os_type": null, "power_state":"running", "progress": 0, "ramdisk_id": "", "reservation_id": "r-6w6ruqaz", "state": "active", "task_state": null, "tenant_id": "6f70656e737461636b20342065766572", "terminated_at": null, "auto_disk_config":"MANUAL", "updated_at": "2012-10-29T13:42:11Z", "user_id": "fake", "uuid": "0ab886d0-7443-4107-9265-48371bfa662b" }, "nova_object.name": "InstanceActionVolumeSwapPayload", "nova_object.namespace": "nova", "nova_object.version": "1.5" }, "priority": "INFO", "publisher_id": "nova-compute:compute" } nova-17.0.13/doc/notification_samples/instance-unpause-end.json0000664000175000017500000000026513556316250024561 0ustar zuulzuul00000000000000{ "event_type":"instance.unpause.end", "payload":{"$ref": "common_payloads/InstanceActionPayload.json#"}, "priority":"INFO", "publisher_id":"nova-compute:compute" } nova-17.0.13/doc/notification_samples/keypair-create-start.json0000664000175000017500000000044713556316250024575 0ustar zuulzuul00000000000000{ "priority": "INFO", "payload": { "$ref": "common_payloads/KeypairPayload.json#", "nova_object.data": { "fingerprint": null, "public_key": null } }, "event_type": "keypair.create.start", "publisher_id": "nova-api:fake-mini" } nova-17.0.13/doc/notification_samples/instance-create-start.json0000664000175000017500000000070713556316250024734 0ustar zuulzuul00000000000000{ "event_type":"instance.create.start", "payload":{ "$ref":"common_payloads/InstanceCreatePayload.json#", "nova_object.data": { "host": null, "ip_addresses": [], "launched_at": null, "node": null, "updated_at": null, "power_state": "pending", "state": "building" } }, "priority":"INFO", "publisher_id":"nova-compute:compute" } nova-17.0.13/doc/notification_samples/instance-resume-end.json0000664000175000017500000000645113556316250024404 0ustar zuulzuul00000000000000{ "event_type":"instance.resume.end", "payload":{ "nova_object.data":{ "architecture":"x86_64", "availability_zone": "nova", "block_devices": [{ "nova_object.data": { "boot_index": null, "delete_on_termination": false, "device_name": "/dev/sdb", "tag": null, "volume_id": "a07f71dc-8151-4e7d-a0cc-cd24a3f11113" }, "nova_object.name": "BlockDevicePayload", "nova_object.namespace": "nova", "nova_object.version": "1.0" }], "created_at":"2012-10-29T13:42:11Z", "deleted_at":null, "display_name":"some-server", "display_description":"some-server", "fault":null, "host":"compute", "host_name":"some-server", "ip_addresses": [{ "nova_object.name": "IpPayload", "nova_object.namespace": "nova", "nova_object.version": "1.0", "nova_object.data": { "mac": "fa:16:3e:4c:2c:30", "address": "192.168.1.3", "port_uuid": "ce531f90-199f-48c0-816c-13e38010b442", "meta": {}, "version": 4, "label": "private-network", "device_name": "tapce531f90-19" } }], "key_name": "my-key", "kernel_id":"", "launched_at":"2012-10-29T13:42:11Z", "image_uuid": "155d900f-4e14-4e4c-a73d-069cbf4541e6", "metadata":{}, "locked":false, "node":"fake-mini", "os_type":null, "progress":0, "ramdisk_id":"", "reservation_id":"r-npxv0e40", "state":"active", "task_state":null, "power_state":"running", "tenant_id":"6f70656e737461636b20342065766572", "terminated_at":null, "auto_disk_config":"MANUAL", "flavor": { "nova_object.name": "FlavorPayload", "nova_object.data": { "flavorid": "a22d5517-147c-4147-a0d1-e698df5cd4e3", "name": "test_flavor", "root_gb": 1, "vcpus": 1, "ephemeral_gb": 0, "memory_mb": 512, "disabled": false, "rxtx_factor": 1.0, "extra_specs": { "hw:watchdog_action": "disabled" }, "projects": null, "swap": 0, "is_public": true, "vcpu_weight": 0, "description":null }, "nova_object.version": "1.4", "nova_object.namespace": "nova" }, "user_id":"fake", "uuid":"178b0921-8f85-4257-88b6-2e743b5a975c", "updated_at": "2012-10-29T13:42:11Z" }, "nova_object.name":"InstanceActionPayload", "nova_object.namespace":"nova", "nova_object.version":"1.5" }, "priority":"INFO", "publisher_id":"nova-compute:compute" } nova-17.0.13/doc/notification_samples/instance-volume_attach-error.json0000664000175000017500000000765113556316250026325 0ustar zuulzuul00000000000000{ "event_type": "instance.volume_attach.error", "payload": { "nova_object.data": { "architecture": "x86_64", "availability_zone": "nova", "block_devices": [{ "nova_object.data": { "boot_index": null, "delete_on_termination": false, "device_name": "/dev/sdb", "tag": null, "volume_id": "a07f71dc-8151-4e7d-a0cc-cd24a3f11113" }, "nova_object.name": "BlockDevicePayload", "nova_object.namespace": "nova", "nova_object.version": "1.0" }], "created_at": "2012-10-29T13:42:11Z", "deleted_at": null, "display_name": "some-server", "display_description":"some-server", "fault": { "nova_object.data": { "exception": "CinderConnectionFailed", "exception_message": "Connection to cinder host failed: Connection timed out", "function_name": "attach_volume", "module_name": "nova.tests.functional.notification_sample_tests.test_instance" }, "nova_object.name": "ExceptionPayload", "nova_object.namespace": "nova", "nova_object.version": "1.0" }, "flavor": { "nova_object.name": "FlavorPayload", "nova_object.data": { "flavorid": "a22d5517-147c-4147-a0d1-e698df5cd4e3", "name": "test_flavor", "projects": null, "root_gb": 1, "vcpus": 1, "ephemeral_gb": 0, "memory_mb": 512, "disabled": false, "rxtx_factor": 1.0, "extra_specs": { "hw:watchdog_action": "disabled" }, "swap": 0, "is_public": true, "vcpu_weight": 0, "description":null }, "nova_object.version": "1.4", "nova_object.namespace": "nova" }, "host": "compute", "host_name": "some-server", "image_uuid": "155d900f-4e14-4e4c-a73d-069cbf4541e6", "ip_addresses": [{ "nova_object.data": { "address": "192.168.1.3", "device_name": "tapce531f90-19", "label": "private-network", "meta": {}, "port_uuid": "ce531f90-199f-48c0-816c-13e38010b442", "version": 4, "mac": "fa:16:3e:4c:2c:30" }, "nova_object.name": "IpPayload", "nova_object.namespace": "nova", "nova_object.version": "1.0" }], "key_name": "my-key", "kernel_id": "", "launched_at": "2012-10-29T13:42:11Z", "metadata": {}, "locked":false, "node": "fake-mini", "volume_id": "a07f71dc-8151-4e7d-a0cc-cd24a3f11113", "os_type": null, "power_state":"running", "progress": 0, "ramdisk_id": "", "reservation_id": "r-6w6ruqaz", "state": "active", "task_state": null, "tenant_id": "6f70656e737461636b20342065766572", "terminated_at": null, "auto_disk_config": "MANUAL", "user_id": "fake", "uuid": "0ab886d0-7443-4107-9265-48371bfa662b", "updated_at": "2012-10-29T13:42:11Z" }, "nova_object.name": "InstanceActionVolumePayload", "nova_object.namespace": "nova", "nova_object.version": "1.3" }, "priority": "ERROR", "publisher_id": "nova-compute:compute" } nova-17.0.13/doc/notification_samples/instance-resize_revert-start.json0000664000175000017500000000124713556316250026361 0ustar zuulzuul00000000000000{ "event_type":"instance.resize_revert.start", "payload":{ "$ref":"common_payloads/InstanceActionPayload.json#", "nova_object.data": { "flavor":{ "nova_object.data": { "flavorid": "d5a8bb54-365a-45ae-abdb-38d249df7845", "name": "other_flavor", "memory_mb": 256, "extra_specs": { "hw:watchdog_action": "reset" } } }, "state":"resized", "task_state":"resize_reverting" } }, "priority":"INFO", "publisher_id":"nova-compute:compute" } nova-17.0.13/doc/notification_samples/instance-create-error.json0000664000175000017500000000163013556316250024724 0ustar zuulzuul00000000000000{ "event_type":"instance.create.error", "payload":{ "$ref":"common_payloads/InstanceCreatePayload.json#", "nova_object.data": { "fault": { "nova_object.data": { "exception": "FlavorDiskTooSmall", "exception_message": "The created instance's disk would be too small.", "function_name": "_build_resources", "module_name": "nova.tests.functional.notification_sample_tests.test_instance" }, "nova_object.name": "ExceptionPayload", "nova_object.namespace": "nova", "nova_object.version": "1.0" }, "ip_addresses": [], "launched_at": null, "power_state": "pending", "state": "building" } }, "priority":"ERROR", "publisher_id":"nova-compute:compute" } nova-17.0.13/doc/notification_samples/instance-suspend-end.json0000664000175000017500000000645513556316250024571 0ustar zuulzuul00000000000000{ "event_type":"instance.suspend.end", "payload":{ "nova_object.data":{ "architecture":"x86_64", "availability_zone": "nova", "block_devices": [{ "nova_object.data": { "boot_index": null, "delete_on_termination": false, "device_name": "/dev/sdb", "tag": null, "volume_id": "a07f71dc-8151-4e7d-a0cc-cd24a3f11113" }, "nova_object.name": "BlockDevicePayload", "nova_object.namespace": "nova", "nova_object.version": "1.0" }], "created_at":"2012-10-29T13:42:11Z", "deleted_at":null, "display_name":"some-server", "display_description":"some-server", "fault":null, "host":"compute", "host_name":"some-server", "ip_addresses": [{ "nova_object.name": "IpPayload", "nova_object.namespace": "nova", "nova_object.version": "1.0", "nova_object.data": { "mac": "fa:16:3e:4c:2c:30", "address": "192.168.1.3", "port_uuid": "ce531f90-199f-48c0-816c-13e38010b442", "meta": {}, "version": 4, "label": "private-network", "device_name": "tapce531f90-19" } }], "key_name": "my-key", "kernel_id":"", "launched_at":"2012-10-29T13:42:11Z", "image_uuid": "155d900f-4e14-4e4c-a73d-069cbf4541e6", "metadata":{}, "locked":false, "node":"fake-mini", "os_type":null, "progress":0, "ramdisk_id":"", "reservation_id":"r-npxv0e40", "state":"suspended", "task_state":null, "power_state":"running", "tenant_id":"6f70656e737461636b20342065766572", "terminated_at":null, "auto_disk_config":"MANUAL", "flavor": { "nova_object.name": "FlavorPayload", "nova_object.data": { "flavorid": "a22d5517-147c-4147-a0d1-e698df5cd4e3", "name": "test_flavor", "root_gb": 1, "vcpus": 1, "ephemeral_gb": 0, "memory_mb": 512, "disabled": false, "rxtx_factor": 1.0, "extra_specs": { "hw:watchdog_action": "disabled" }, "projects": null, "swap": 0, "is_public": true, "vcpu_weight": 0, "description":null }, "nova_object.version": "1.4", "nova_object.namespace": "nova" }, "user_id":"fake", "uuid":"178b0921-8f85-4257-88b6-2e743b5a975c", "updated_at": "2012-10-29T13:42:11Z" }, "nova_object.name":"InstanceActionPayload", "nova_object.namespace":"nova", "nova_object.version":"1.5" }, "priority":"INFO", "publisher_id":"nova-compute:compute" } nova-17.0.13/doc/notification_samples/aggregate-delete-end.json0000664000175000017500000000030013556316250024453 0ustar zuulzuul00000000000000{ "priority": "INFO", "payload": { "$ref": "common_payloads/AggregatePayload.json#" }, "event_type": "aggregate.delete.end", "publisher_id": "nova-api:fake-mini" } nova-17.0.13/doc/notification_samples/instance-live_migration_rollback-end.json0000664000175000017500000000030413556316250027754 0ustar zuulzuul00000000000000{ "event_type":"instance.live_migration_rollback.end", "payload":{"$ref":"common_payloads/InstanceActionPayload.json#"}, "priority":"INFO", "publisher_id":"nova-compute:compute" } nova-17.0.13/doc/notification_samples/aggregate-add_host-start.json0000664000175000017500000000030413556316250025371 0ustar zuulzuul00000000000000{ "priority": "INFO", "payload": { "$ref": "common_payloads/AggregatePayload.json#" }, "event_type": "aggregate.add_host.start", "publisher_id": "nova-api:fake-mini" } nova-17.0.13/doc/notification_samples/instance-power_off-start.json0000664000175000017500000000042713556316250025456 0ustar zuulzuul00000000000000{ "event_type":"instance.power_off.start", "payload":{ "$ref": "common_payloads/InstanceActionPayload.json#", "nova_object.data":{ "task_state":"powering-off" } }, "priority":"INFO", "publisher_id":"nova-compute:compute" } nova-17.0.13/doc/notification_samples/aggregate-remove_host-start.json0000664000175000017500000000042113556316250026136 0ustar zuulzuul00000000000000{ "priority": "INFO", "payload": { "$ref": "common_payloads/AggregatePayload.json#", "nova_object.data": { "hosts": ["compute"] } }, "event_type": "aggregate.remove_host.start", "publisher_id": "nova-api:fake-mini" } nova-17.0.13/doc/notification_samples/flavor-create.json0000664000175000017500000000134713556316250023267 0ustar zuulzuul00000000000000{ "priority": "INFO", "payload": { "nova_object.namespace": "nova", "nova_object.version": "1.4", "nova_object.name": "FlavorPayload", "nova_object.data": { "name": "test_flavor", "memory_mb": 1024, "ephemeral_gb": 0, "disabled": false, "vcpus": 2, "swap": 0, "rxtx_factor": 2.0, "is_public": true, "root_gb": 10, "vcpu_weight": 0, "flavorid": "a22d5517-147c-4147-a0d1-e698df5cd4e3", "extra_specs": null, "projects": [], "description":null } }, "event_type": "flavor.create", "publisher_id": "nova-api:fake-mini" } nova-17.0.13/doc/notification_samples/instance-rescue-end.json0000664000175000017500000000047113556316250024366 0ustar zuulzuul00000000000000{ "event_type": "instance.rescue.end", "payload": { "$ref": "common_payloads/InstanceActionRescuePayload.json#", "nova_object.data": { "state": "rescued", "power_state": "shutdown" } }, "priority":"INFO", "publisher_id":"nova-compute:compute" } nova-17.0.13/doc/notification_samples/instance-rescue-start.json0000664000175000017500000000043413556316250024754 0ustar zuulzuul00000000000000{ "event_type": "instance.rescue.start", "payload": { "$ref": "common_payloads/InstanceActionRescuePayload.json#", "nova_object.data": { "task_state": "rescuing" } }, "priority": "INFO", "publisher_id": "nova-compute:compute" } nova-17.0.13/doc/notification_samples/instance-pause-start.json0000664000175000017500000000042013556316250024576 0ustar zuulzuul00000000000000{ "event_type":"instance.pause.start", "payload":{ "$ref": "common_payloads/InstanceActionPayload.json#", "nova_object.data": { "task_state": "pausing" } }, "priority":"INFO", "publisher_id":"nova-compute:compute" } nova-17.0.13/doc/notification_samples/instance-volume_swap-error.json0000664000175000017500000000770013556316250026026 0ustar zuulzuul00000000000000{ "event_type": "instance.volume_swap.error", "payload": { "nova_object.data": { "architecture": "x86_64", "availability_zone": "nova", "block_devices": [{ "nova_object.data": { "boot_index": null, "delete_on_termination": false, "device_name": "/dev/sdb", "tag": null, "volume_id": "a07f71dc-8151-4e7d-a0cc-cd24a3f11113" }, "nova_object.name": "BlockDevicePayload", "nova_object.namespace": "nova", "nova_object.version": "1.0" }], "created_at": "2012-10-29T13:42:11Z", "deleted_at": null, "display_name": "some-server", "display_description":"some-server", "fault": { "nova_object.data": { "exception": "TypeError", "exception_message": "'tuple' object does not support item assignment", "function_name": "_init_volume_connection", "module_name": "nova.compute.manager" }, "nova_object.name": "ExceptionPayload", "nova_object.namespace": "nova", "nova_object.version": "1.0" }, "flavor": { "nova_object.data": { "flavorid": "a22d5517-147c-4147-a0d1-e698df5cd4e3", "name": "test_flavor", "root_gb": 1, "vcpus": 1, "ephemeral_gb": 0, "memory_mb": 512, "disabled": false, "rxtx_factor": 1.0, "extra_specs": { "hw:watchdog_action": "disabled" }, "projects": null, "swap": 0, "is_public": true, "vcpu_weight": 0, "description":null }, "nova_object.name": "FlavorPayload", "nova_object.namespace": "nova", "nova_object.version": "1.4" }, "host": "compute", "host_name": "some-server", "image_uuid": "155d900f-4e14-4e4c-a73d-069cbf4541e6", "ip_addresses": [{ "nova_object.data": { "address": "192.168.1.3", "device_name": "tapce531f90-19", "label": "private-network", "meta": {}, "port_uuid": "ce531f90-199f-48c0-816c-13e38010b442", "version": 4, "mac": "fa:16:3e:4c:2c:30" }, "nova_object.name": "IpPayload", "nova_object.namespace": "nova", "nova_object.version": "1.0" }], "key_name": "my-key", "kernel_id": "", "launched_at": "2012-10-29T13:42:11Z", "metadata": {}, "locked":false, "new_volume_id": "9c6d9c2d-7a8f-4c80-938d-3bf062b8d489", "node": "fake-mini", "old_volume_id": "828419fa-3efb-4533-b458-4267ca5fe9b1", "os_type": null, "power_state":"running", "progress": 0, "ramdisk_id": "", "reservation_id": "r-6w6ruqaz", "state": "active", "task_state": null, "tenant_id": "6f70656e737461636b20342065766572", "terminated_at": null, "auto_disk_config":"MANUAL", "updated_at": "2012-10-29T13:42:11Z", "user_id": "fake", "uuid": "0ab886d0-7443-4107-9265-48371bfa662b" }, "nova_object.name": "InstanceActionVolumeSwapPayload", "nova_object.namespace": "nova", "nova_object.version": "1.5" }, "priority": "ERROR", "publisher_id": "nova-compute:compute" } nova-17.0.13/doc/notification_samples/instance-restore-end.json0000664000175000017500000000645213556316250024570 0ustar zuulzuul00000000000000{ "event_type":"instance.restore.end", "payload":{ "nova_object.data":{ "architecture":"x86_64", "availability_zone": "nova", "block_devices": [{ "nova_object.data": { "boot_index": null, "delete_on_termination": false, "device_name": "/dev/sdb", "tag": null, "volume_id": "a07f71dc-8151-4e7d-a0cc-cd24a3f11113" }, "nova_object.name": "BlockDevicePayload", "nova_object.namespace": "nova", "nova_object.version": "1.0" }], "created_at":"2012-10-29T13:42:11Z", "deleted_at":null, "display_name":"some-server", "display_description":"some-server", "fault":null, "host":"compute", "host_name":"some-server", "ip_addresses": [{ "nova_object.name": "IpPayload", "nova_object.namespace": "nova", "nova_object.version": "1.0", "nova_object.data": { "mac": "fa:16:3e:4c:2c:30", "address": "192.168.1.3", "port_uuid": "ce531f90-199f-48c0-816c-13e38010b442", "meta": {}, "version": 4, "label": "private-network", "device_name": "tapce531f90-19" } }], "key_name": "my-key", "kernel_id":"", "launched_at":"2012-10-29T13:42:11Z", "image_uuid": "155d900f-4e14-4e4c-a73d-069cbf4541e6", "metadata":{}, "locked":false, "node":"fake-mini", "os_type":null, "progress":0, "ramdisk_id":"", "reservation_id":"r-npxv0e40", "state":"active", "task_state":null, "power_state":"running", "tenant_id":"6f70656e737461636b20342065766572", "terminated_at":null, "auto_disk_config":"MANUAL", "flavor": { "nova_object.name": "FlavorPayload", "nova_object.data": { "flavorid": "a22d5517-147c-4147-a0d1-e698df5cd4e3", "name": "test_flavor", "root_gb": 1, "vcpus": 1, "ephemeral_gb": 0, "memory_mb": 512, "disabled": false, "rxtx_factor": 1.0, "extra_specs": { "hw:watchdog_action": "disabled" }, "projects": null, "swap": 0, "is_public": true, "vcpu_weight": 0, "description":null }, "nova_object.version": "1.4", "nova_object.namespace": "nova" }, "user_id":"fake", "uuid":"178b0921-8f85-4257-88b6-2e743b5a975c", "updated_at": "2012-10-29T13:42:11Z" }, "nova_object.name":"InstanceActionPayload", "nova_object.namespace":"nova", "nova_object.version":"1.5" }, "priority":"INFO", "publisher_id":"nova-compute:compute" } nova-17.0.13/doc/notification_samples/instance-resize_prep-end.json0000664000175000017500000000030613556316250025424 0ustar zuulzuul00000000000000{ "event_type": "instance.resize_prep.end", "payload": {"$ref":"common_payloads/InstanceActionResizePrepPayload.json#"}, "priority": "INFO", "publisher_id": "nova-compute:compute" } nova-17.0.13/doc/notification_samples/instance-evacuate.json0000664000175000017500000000055613556316250024135 0ustar zuulzuul00000000000000{ "event_type": "instance.evacuate", "payload": { "$ref": "common_payloads/InstanceActionPayload.json#", "nova_object.data": { "host": "host2", "node": "host2", "power_state": "pending", "task_state": "rebuilding" } }, "priority": "INFO", "publisher_id": "nova-api:host2" } nova-17.0.13/doc/notification_samples/instance-resize-end.json0000664000175000017500000000646613556316250024413 0ustar zuulzuul00000000000000{ "event_type":"instance.resize.end", "payload":{ "nova_object.data":{ "architecture":"x86_64", "availability_zone": "nova", "block_devices": [{ "nova_object.data": { "boot_index": null, "delete_on_termination": false, "device_name": "/dev/sdb", "tag": null, "volume_id": "a07f71dc-8151-4e7d-a0cc-cd24a3f11113" }, "nova_object.name": "BlockDevicePayload", "nova_object.namespace": "nova", "nova_object.version": "1.0" }], "created_at":"2012-10-29T13:42:11Z", "deleted_at":null, "display_name":"some-server", "display_description":"some-server", "fault":null, "host":"compute", "host_name":"some-server", "ip_addresses": [{ "nova_object.name": "IpPayload", "nova_object.namespace": "nova", "nova_object.version": "1.0", "nova_object.data": { "mac": "fa:16:3e:4c:2c:30", "address": "192.168.1.3", "port_uuid": "ce531f90-199f-48c0-816c-13e38010b442", "meta": {}, "version": 4, "label": "private-network", "device_name": "tapce531f90-19" } }], "key_name": "my-key", "kernel_id":"", "launched_at":"2012-10-29T13:42:11Z", "image_uuid": "155d900f-4e14-4e4c-a73d-069cbf4541e6", "metadata":{}, "locked":false, "node":"fake-mini", "os_type":null, "progress":0, "ramdisk_id":"", "reservation_id":"r-npxv0e40", "state":"active", "task_state":"resize_migrated", "power_state":"running", "tenant_id":"6f70656e737461636b20342065766572", "terminated_at":null, "auto_disk_config":"MANUAL", "flavor": { "nova_object.name": "FlavorPayload", "nova_object.data": { "flavorid": "a22d5517-147c-4147-a0d1-e698df5cd4e3", "name": "test_flavor", "root_gb": 1, "vcpus": 1, "ephemeral_gb": 0, "memory_mb": 512, "disabled": false, "rxtx_factor": 1.0, "extra_specs": { "hw:watchdog_action": "disabled" }, "projects": null, "swap": 0, "is_public": true, "vcpu_weight": 0, "description":null }, "nova_object.version": "1.4", "nova_object.namespace": "nova" }, "user_id":"fake", "uuid":"178b0921-8f85-4257-88b6-2e743b5a975c", "updated_at": "2012-10-29T13:42:11Z" }, "nova_object.name":"InstanceActionPayload", "nova_object.namespace":"nova", "nova_object.version":"1.5" }, "priority":"INFO", "publisher_id":"nova-compute:compute" } nova-17.0.13/doc/notification_samples/service-create.json0000664000175000017500000000027713556316250023437 0ustar zuulzuul00000000000000{ "priority": "INFO", "payload": { "$ref": "common_payloads/ServiceStatusPayload.json#" }, "event_type": "service.create", "publisher_id": "nova-compute:host2" } nova-17.0.13/doc/notification_samples/flavor-delete.json0000664000175000017500000000135113556316250023261 0ustar zuulzuul00000000000000{ "priority": "INFO", "payload": { "nova_object.namespace": "nova", "nova_object.version": "1.4", "nova_object.name": "FlavorPayload", "nova_object.data": { "name": "test_flavor", "memory_mb": 1024, "ephemeral_gb": 0, "disabled": false, "vcpus": 2, "swap": 0, "rxtx_factor": 2.0, "is_public": true, "root_gb": 10, "vcpu_weight": 0, "flavorid": "a22d5517-147c-4147-a0d1-e698df5cd4e3", "extra_specs": null, "projects": null, "description":null } }, "event_type": "flavor.delete", "publisher_id": "nova-api:fake-mini" } nova-17.0.13/doc/notification_samples/instance-restore-start.json0000664000175000017500000000647013556316250025157 0ustar zuulzuul00000000000000{ "event_type":"instance.restore.start", "payload":{ "nova_object.data":{ "architecture":"x86_64", "availability_zone": "nova", "block_devices": [{ "nova_object.data": { "boot_index": null, "delete_on_termination": false, "device_name": "/dev/sdb", "tag": null, "volume_id": "a07f71dc-8151-4e7d-a0cc-cd24a3f11113" }, "nova_object.name": "BlockDevicePayload", "nova_object.namespace": "nova", "nova_object.version": "1.0" }], "created_at":"2012-10-29T13:42:11Z", "deleted_at":null, "display_name":"some-server", "display_description":"some-server", "fault":null, "host":"compute", "host_name":"some-server", "ip_addresses": [{ "nova_object.name": "IpPayload", "nova_object.namespace": "nova", "nova_object.version": "1.0", "nova_object.data": { "mac": "fa:16:3e:4c:2c:30", "address": "192.168.1.3", "port_uuid": "ce531f90-199f-48c0-816c-13e38010b442", "meta": {}, "version": 4, "label": "private-network", "device_name": "tapce531f90-19" } }], "key_name": "my-key", "kernel_id":"", "launched_at":"2012-10-29T13:42:11Z", "image_uuid": "155d900f-4e14-4e4c-a73d-069cbf4541e6", "metadata":{}, "locked":false, "node":"fake-mini", "os_type":null, "progress":0, "ramdisk_id":"", "reservation_id":"r-npxv0e40", "state":"soft-delete", "task_state":"restoring", "power_state":"running", "tenant_id":"6f70656e737461636b20342065766572", "terminated_at":null, "auto_disk_config":"MANUAL", "flavor": { "nova_object.name": "FlavorPayload", "nova_object.data": { "flavorid": "a22d5517-147c-4147-a0d1-e698df5cd4e3", "name": "test_flavor", "root_gb": 1, "vcpus": 1, "ephemeral_gb": 0, "memory_mb": 512, "disabled": false, "rxtx_factor": 1.0, "extra_specs": { "hw:watchdog_action": "disabled" }, "projects": null, "swap": 0, "is_public": true, "vcpu_weight": 0, "description":null }, "nova_object.version": "1.4", "nova_object.namespace": "nova" }, "user_id":"fake", "uuid":"178b0921-8f85-4257-88b6-2e743b5a975c", "updated_at": "2012-10-29T13:42:11Z" }, "nova_object.name":"InstanceActionPayload", "nova_object.namespace":"nova", "nova_object.version":"1.5" }, "priority":"INFO", "publisher_id":"nova-compute:compute" } nova-17.0.13/doc/notification_samples/common_payloads/0000775000175000017500000000000013556316574023032 5ustar zuulzuul00000000000000nova-17.0.13/doc/notification_samples/common_payloads/FlavorPayload.json0000664000175000017500000000112413556316250026455 0ustar zuulzuul00000000000000{ "nova_object.name": "FlavorPayload", "nova_object.data": { "flavorid": "a22d5517-147c-4147-a0d1-e698df5cd4e3", "name": "test_flavor", "root_gb": 1, "vcpus": 1, "ephemeral_gb": 0, "memory_mb": 512, "disabled": false, "rxtx_factor": 1.0, "extra_specs": { "hw:watchdog_action": "disabled" }, "projects": null, "swap": 0, "is_public": true, "vcpu_weight": 0, "description": null }, "nova_object.version": "1.4", "nova_object.namespace": "nova" } nova-17.0.13/doc/notification_samples/common_payloads/ServiceStatusPayload.json0000664000175000017500000000076713556316250030044 0ustar zuulzuul00000000000000{ "nova_object.name": "ServiceStatusPayload", "nova_object.namespace": "nova", "nova_object.version": "1.1", "nova_object.data": { "host": "host2", "disabled": false, "binary": "nova-compute", "topic": "compute", "disabled_reason": null, "forced_down": false, "version": 23, "availability_zone": null, "uuid": "fa69c544-906b-4a6a-a9c6-c1f7a8078c73", "last_seen_up": null, "report_count": 0 } } nova-17.0.13/doc/notification_samples/common_payloads/InstanceCreatePayload.json0000664000175000017500000000165713556316250030127 0ustar zuulzuul00000000000000{ "$ref":"InstanceActionPayload.json", "nova_object.data": { "block_devices": [], "keypairs": [ { "nova_object.version": "1.0", "nova_object.namespace": "nova", "nova_object.name": "KeypairPayload", "nova_object.data": { "user_id": "fake", "name": "my-key", "fingerprint": "1e:2c:9b:56:79:4b:45:77:f9:ca:7a:98:2c:b0:d5:3c", "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQDx8nkQv/zgGgB4rMYmIf+6A4l6Rr+o/6lHBQdW5aYd44bd8JttDCE/F/pNRr0lRE+PiqSPO8nDPHw0010JeMH9gYgnnFlyY3/OcJ02RhIPyyxYpv9FhY+2YiUkpwFOcLImyrxEsYXpD/0d3ac30bNH6Sw9JD9UZHYcpSxsIbECHw== Generated-by-Nova", "type": "ssh" } } ], "tags": ["tag"] }, "nova_object.name":"InstanceCreatePayload", "nova_object.version": "1.7" } nova-17.0.13/doc/notification_samples/common_payloads/ServerGroupPayload.json0000664000175000017500000000066213556316250027515 0ustar zuulzuul00000000000000{ "nova_object.version": "1.0", "nova_object.namespace": "nova", "nova_object.name": "ServerGroupPayload", "nova_object.data": { "uuid": "788608ec-ebdc-45c5-bc7f-e5f24ab92c80", "name": "test-server-group", "project_id": "6f70656e737461636b20342065766572", "user_id": "fake", "policies": [ "anti-affinity" ], "members": [], "hosts": null } }nova-17.0.13/doc/notification_samples/common_payloads/IpPayload.json0000664000175000017500000000061113556316250025574 0ustar zuulzuul00000000000000{ "nova_object.name": "IpPayload", "nova_object.namespace": "nova", "nova_object.version": "1.0", "nova_object.data": { "mac": "fa:16:3e:4c:2c:30", "address": "192.168.1.3", "port_uuid": "ce531f90-199f-48c0-816c-13e38010b442", "meta": {}, "version": 4, "label": "private-network", "device_name": "tapce531f90-19" } } nova-17.0.13/doc/notification_samples/common_payloads/BlockDevicePayload.json0000664000175000017500000000052113556316250027376 0ustar zuulzuul00000000000000{ "nova_object.data": { "boot_index": null, "delete_on_termination": false, "device_name": "/dev/sdb", "tag": null, "volume_id": "a07f71dc-8151-4e7d-a0cc-cd24a3f11113" }, "nova_object.name": "BlockDevicePayload", "nova_object.namespace": "nova", "nova_object.version": "1.0" } nova-17.0.13/doc/notification_samples/common_payloads/AggregatePayload.json0000664000175000017500000000053513556316250027117 0ustar zuulzuul00000000000000{ "nova_object.version": "1.1", "nova_object.namespace": "nova", "nova_object.name": "AggregatePayload", "nova_object.data": { "name": "my-aggregate", "metadata": { "availability_zone": "nova" }, "uuid": "788608ec-ebdc-45c5-bc7f-e5f24ab92c80", "hosts": [], "id": 1 } } nova-17.0.13/doc/notification_samples/common_payloads/InstanceActionRescuePayload.json0000664000175000017500000000035213556316250031277 0ustar zuulzuul00000000000000{ "$ref": "InstanceActionPayload.json", "nova_object.data": { "rescue_image_ref": "a2459075-d96c-40d5-893e-577ff92e721c" }, "nova_object.name": "InstanceActionRescuePayload", "nova_object.version": "1.0" } nova-17.0.13/doc/notification_samples/common_payloads/InstanceActionPayload.json0000664000175000017500000000251513556316250030133 0ustar zuulzuul00000000000000{ "nova_object.data":{ "architecture":"x86_64", "availability_zone": "nova", "block_devices": [ {"$ref": "BlockDevicePayload.json#"} ], "created_at":"2012-10-29T13:42:11Z", "deleted_at":null, "display_name":"some-server", "display_description":"some-server", "fault":null, "host":"compute", "host_name":"some-server", "ip_addresses": [ {"$ref": "IpPayload.json#"} ], "kernel_id":"", "key_name": "my-key", "launched_at":"2012-10-29T13:42:11Z", "image_uuid": "155d900f-4e14-4e4c-a73d-069cbf4541e6", "metadata":{}, "locked":false, "node":"fake-mini", "os_type":null, "progress":0, "ramdisk_id":"", "reservation_id":"r-npxv0e40", "state":"active", "task_state":null, "power_state":"running", "tenant_id":"6f70656e737461636b20342065766572", "terminated_at":null, "auto_disk_config":"MANUAL", "flavor": {"$ref": "FlavorPayload.json#"}, "updated_at": "2012-10-29T13:42:11Z", "user_id":"fake", "uuid":"178b0921-8f85-4257-88b6-2e743b5a975c" }, "nova_object.name":"InstanceActionPayload", "nova_object.namespace":"nova", "nova_object.version":"1.5" } nova-17.0.13/doc/notification_samples/common_payloads/InstanceActionResizePrepPayload.json0000664000175000017500000000174713556316250032152 0ustar zuulzuul00000000000000{ "$ref": "InstanceActionPayload.json", "nova_object.data":{ "new_flavor": { "nova_object.name": "FlavorPayload", "nova_object.data": { "description": null, "disabled": false, "ephemeral_gb": 0, "extra_specs": { "hw:watchdog_action": "reset" }, "flavorid": "d5a8bb54-365a-45ae-abdb-38d249df7845", "is_public": true, "memory_mb": 256, "name": "other_flavor", "projects": null, "root_gb": 1, "rxtx_factor": 1.0, "swap": 0, "vcpu_weight": 0, "vcpus": 1 }, "nova_object.namespace": "nova", "nova_object.version": "1.4" }, "task_state": "resize_prep" }, "nova_object.name": "InstanceActionResizePrepPayload", "nova_object.version": "1.0" } nova-17.0.13/doc/notification_samples/common_payloads/KeypairPayload.json0000664000175000017500000000105113556316250026627 0ustar zuulzuul00000000000000{ "nova_object.version": "1.0", "nova_object.namespace": "nova", "nova_object.name": "KeypairPayload", "nova_object.data": { "user_id": "fake", "name": "my-key", "fingerprint": "1e:2c:9b:56:79:4b:45:77:f9:ca:7a:98:2c:b0:d5:3c", "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQDx8nkQv/zgGgB4rMYmIf+6A4l6Rr+o/6lHBQdW5aYd44bd8JttDCE/F/pNRr0lRE+PiqSPO8nDPHw0010JeMH9gYgnnFlyY3/OcJ02RhIPyyxYpv9FhY+2YiUkpwFOcLImyrxEsYXpD/0d3ac30bNH6Sw9JD9UZHYcpSxsIbECHw== Generated-by-Nova", "type": "ssh" } }nova-17.0.13/doc/notification_samples/instance-suspend-start.json0000664000175000017500000000646413556316250025160 0ustar zuulzuul00000000000000{ "event_type":"instance.suspend.start", "payload":{ "nova_object.data":{ "architecture":"x86_64", "availability_zone": "nova", "block_devices": [{ "nova_object.data": { "boot_index": null, "delete_on_termination": false, "device_name": "/dev/sdb", "tag": null, "volume_id": "a07f71dc-8151-4e7d-a0cc-cd24a3f11113" }, "nova_object.name": "BlockDevicePayload", "nova_object.namespace": "nova", "nova_object.version": "1.0" }], "created_at":"2012-10-29T13:42:11Z", "deleted_at":null, "display_name":"some-server", "display_description":"some-server", "fault":null, "host":"compute", "host_name":"some-server", "ip_addresses": [{ "nova_object.name": "IpPayload", "nova_object.namespace": "nova", "nova_object.version": "1.0", "nova_object.data": { "mac": "fa:16:3e:4c:2c:30", "address": "192.168.1.3", "port_uuid": "ce531f90-199f-48c0-816c-13e38010b442", "meta": {}, "version": 4, "label": "private-network", "device_name": "tapce531f90-19" } }], "key_name": "my-key", "kernel_id":"", "launched_at":"2012-10-29T13:42:11Z", "image_uuid": "155d900f-4e14-4e4c-a73d-069cbf4541e6", "metadata":{}, "locked":false, "node":"fake-mini", "os_type":null, "progress":0, "ramdisk_id":"", "reservation_id":"r-npxv0e40", "state":"active", "task_state":"suspending", "power_state":"running", "tenant_id":"6f70656e737461636b20342065766572", "terminated_at":null, "auto_disk_config":"MANUAL", "flavor": { "nova_object.name": "FlavorPayload", "nova_object.data": { "flavorid": "a22d5517-147c-4147-a0d1-e698df5cd4e3", "name": "test_flavor", "root_gb": 1, "vcpus": 1, "ephemeral_gb": 0, "memory_mb": 512, "disabled": false, "rxtx_factor": 1.0, "extra_specs": { "hw:watchdog_action": "disabled" }, "projects": null, "swap": 0, "is_public": true, "vcpu_weight": 0, "description":null }, "nova_object.version": "1.4", "nova_object.namespace": "nova" }, "user_id":"fake", "uuid":"178b0921-8f85-4257-88b6-2e743b5a975c", "updated_at": "2012-10-29T13:42:11Z" }, "nova_object.name":"InstanceActionPayload", "nova_object.namespace":"nova", "nova_object.version":"1.5" }, "priority":"INFO", "publisher_id":"nova-compute:compute" } nova-17.0.13/doc/notification_samples/instance-soft_delete-end.json0000664000175000017500000000650613556316250025402 0ustar zuulzuul00000000000000{ "event_type":"instance.soft_delete.end", "payload":{ "nova_object.data":{ "architecture": "x86_64", "availability_zone": "nova", "block_devices": [{ "nova_object.data": { "boot_index": null, "delete_on_termination": false, "device_name": "/dev/sdb", "tag": null, "volume_id": "a07f71dc-8151-4e7d-a0cc-cd24a3f11113" }, "nova_object.name": "BlockDevicePayload", "nova_object.namespace": "nova", "nova_object.version": "1.0" }], "created_at":"2012-10-29T13:42:11Z", "deleted_at":"2012-10-29T13:42:11Z", "display_name":"some-server", "display_description":"some-server", "fault":null, "host":"compute", "host_name":"some-server", "ip_addresses": [{ "nova_object.name": "IpPayload", "nova_object.namespace": "nova", "nova_object.version": "1.0", "nova_object.data": { "mac": "fa:16:3e:4c:2c:30", "address": "192.168.1.3", "port_uuid": "ce531f90-199f-48c0-816c-13e38010b442", "meta": {}, "version": 4, "label": "private-network", "device_name": "tapce531f90-19" } }], "key_name": "my-key", "kernel_id":"", "launched_at":"2012-10-29T13:42:11Z", "image_uuid": "155d900f-4e14-4e4c-a73d-069cbf4541e6", "metadata":{}, "locked":false, "node":"fake-mini", "os_type":null, "progress":0, "ramdisk_id":"", "reservation_id":"r-npxv0e40", "state":"soft-delete", "task_state":null, "power_state":"running", "tenant_id":"6f70656e737461636b20342065766572", "terminated_at":null, "auto_disk_config":"MANUAL", "flavor": { "nova_object.name": "FlavorPayload", "nova_object.data": { "flavorid": "a22d5517-147c-4147-a0d1-e698df5cd4e3", "name": "test_flavor", "root_gb": 1, "vcpus": 1, "ephemeral_gb": 0, "memory_mb": 512, "disabled": false, "rxtx_factor": 1.0, "extra_specs": { "hw:watchdog_action": "disabled" }, "projects": null, "swap": 0, "is_public": true, "vcpu_weight": 0, "description":null }, "nova_object.version": "1.4", "nova_object.namespace": "nova" }, "updated_at": "2012-10-29T13:42:11Z", "user_id":"fake", "uuid":"178b0921-8f85-4257-88b6-2e743b5a975c" }, "nova_object.name":"InstanceActionPayload", "nova_object.namespace":"nova", "nova_object.version":"1.5" }, "priority":"INFO", "publisher_id":"nova-compute:compute" } nova-17.0.13/doc/notification_samples/instance-live_migration_abort-end.json0000664000175000017500000000672513556316250027307 0ustar zuulzuul00000000000000{ "event_type":"instance.live_migration_abort.end", "payload":{ "nova_object.data":{ "architecture":"x86_64", "auto_disk_config":"MANUAL", "availability_zone":"nova", "block_devices":[ { "nova_object.data":{ "boot_index":null, "delete_on_termination":false, "device_name":"/dev/sdb", "tag":null, "volume_id":"a07f71dc-8151-4e7d-a0cc-cd24a3f11113" }, "nova_object.name":"BlockDevicePayload", "nova_object.namespace":"nova", "nova_object.version":"1.0" } ], "created_at":"2012-10-29T13:42:11Z", "deleted_at":null, "display_description":"some-server", "display_name":"some-server", "fault":null, "flavor":{ "nova_object.data":{ "disabled":false, "ephemeral_gb":0, "extra_specs":{ "hw:watchdog_action":"disabled" }, "flavorid":"a22d5517-147c-4147-a0d1-e698df5cd4e3", "is_public":true, "memory_mb":512, "name":"test_flavor", "projects":null, "root_gb":1, "rxtx_factor":1.0, "swap":0, "vcpu_weight":0, "vcpus":1, "description":null }, "nova_object.name":"FlavorPayload", "nova_object.namespace":"nova", "nova_object.version":"1.4" }, "host":"compute", "host_name":"some-server", "image_uuid":"155d900f-4e14-4e4c-a73d-069cbf4541e6", "ip_addresses":[ { "nova_object.data":{ "address":"192.168.1.3", "device_name":"tapce531f90-19", "label":"private-network", "mac":"fa:16:3e:4c:2c:30", "meta":{ }, "port_uuid":"ce531f90-199f-48c0-816c-13e38010b442", "version":4 }, "nova_object.name":"IpPayload", "nova_object.namespace":"nova", "nova_object.version":"1.0" } ], "kernel_id":"", "key_name":"my-key", "launched_at":"2012-10-29T13:42:11Z", "locked":false, "metadata":{ }, "node":"fake-mini", "os_type":null, "power_state":"running", "progress":0, "ramdisk_id":"", "reservation_id":"r-v3dru799", "state":"active", "task_state":"migrating", "tenant_id":"6f70656e737461636b20342065766572", "terminated_at":null, "updated_at": "2012-10-29T13:42:11Z", "user_id":"fake", "uuid":"a57417b7-5d78-4b39-95de-4ba9505ba40e" }, "nova_object.name":"InstanceActionPayload", "nova_object.namespace":"nova", "nova_object.version":"1.5" }, "priority":"INFO", "publisher_id":"nova-compute:compute" }nova-17.0.13/doc/notification_samples/instance-update.json0000664000175000017500000000617013556316250023620 0ustar zuulzuul00000000000000{ "event_type": "instance.update", "payload": { "nova_object.data": { "architecture": "x86_64", "audit_period": { "nova_object.data": { "audit_period_beginning": "2012-10-01T00:00:00Z", "audit_period_ending": "2012-10-29T13:42:11Z"}, "nova_object.name": "AuditPeriodPayload", "nova_object.namespace": "nova", "nova_object.version": "1.0" }, "availability_zone": "nova", "block_devices": [], "bandwidth": [], "created_at": "2012-10-29T13:42:11Z", "deleted_at": null, "display_name": "some-server", "display_description":"some-server", "host": "compute", "host_name": "some-server", "image_uuid": "155d900f-4e14-4e4c-a73d-069cbf4541e6", "key_name": "my-key", "kernel_id": "", "launched_at": null, "metadata": {}, "locked":false, "node": "fake-mini", "old_display_name": null, "os_type": null, "progress": 0, "ramdisk_id": "", "reservation_id": "r-sd3ygfjj", "state": "building", "task_state": "scheduling", "power_state": "pending", "ip_addresses": [], "state_update": { "nova_object.data": { "new_task_state": null, "old_state": "building", "old_task_state": null, "state": "building"}, "nova_object.name": "InstanceStateUpdatePayload", "nova_object.namespace": "nova", "nova_object.version": "1.0"}, "tenant_id": "6f70656e737461636b20342065766572", "terminated_at": null, "auto_disk_config":"MANUAL", "flavor": { "nova_object.name": "FlavorPayload", "nova_object.data": { "flavorid": "a22d5517-147c-4147-a0d1-e698df5cd4e3", "name": "test_flavor", "root_gb": 1, "vcpus": 1, "ephemeral_gb": 0, "memory_mb": 512, "disabled": false, "rxtx_factor": 1.0, "extra_specs": { "hw:watchdog_action": "disabled" }, "projects": null, "swap": 0, "is_public": true, "vcpu_weight": 0, "description":null }, "nova_object.version": "1.4", "nova_object.namespace": "nova" }, "tags": [], "user_id": "fake", "uuid": "c03c0bf9-f46e-4e4f-93f1-817568567ee2", "updated_at": null }, "nova_object.name": "InstanceUpdatePayload", "nova_object.namespace": "nova", "nova_object.version": "1.6"}, "priority": "INFO", "publisher_id": "nova-compute:fake-mini" } nova-17.0.13/doc/notification_samples/instance-shutdown-end.json0000664000175000017500000000541513556316250024756 0ustar zuulzuul00000000000000{ "event_type":"instance.shutdown.end", "payload":{ "nova_object.data":{ "architecture":"x86_64", "availability_zone": "nova", "block_devices": [{ "nova_object.data": { "boot_index": null, "delete_on_termination": false, "device_name": "/dev/sdb", "tag": null, "volume_id": "a07f71dc-8151-4e7d-a0cc-cd24a3f11113" }, "nova_object.name": "BlockDevicePayload", "nova_object.namespace": "nova", "nova_object.version": "1.0" }], "created_at":"2012-10-29T13:42:11Z", "deleted_at":null, "display_name":"some-server", "display_description":"some-server", "fault":null, "host":"compute", "host_name":"some-server", "key_name": "my-key", "ip_addresses": [], "kernel_id":"", "launched_at":"2012-10-29T13:42:11Z", "image_uuid": "155d900f-4e14-4e4c-a73d-069cbf4541e6", "metadata":{}, "locked":false, "node":"fake-mini", "os_type":null, "progress":0, "ramdisk_id":"", "reservation_id":"r-npxv0e40", "state":"active", "task_state":"deleting", "power_state":"running", "tenant_id":"6f70656e737461636b20342065766572", "terminated_at":null, "auto_disk_config":"MANUAL", "flavor": { "nova_object.name": "FlavorPayload", "nova_object.data": { "flavorid": "a22d5517-147c-4147-a0d1-e698df5cd4e3", "name": "test_flavor", "root_gb": 1, "vcpus": 1, "ephemeral_gb": 0, "memory_mb": 512, "disabled": false, "rxtx_factor": 1.0, "extra_specs": { "hw:watchdog_action": "disabled" }, "projects": null, "swap": 0, "is_public": true, "vcpu_weight": 0, "description":null }, "nova_object.version": "1.4", "nova_object.namespace": "nova" }, "user_id":"fake", "uuid":"178b0921-8f85-4257-88b6-2e743b5a975c", "updated_at": "2012-10-29T13:42:11Z" }, "nova_object.name":"InstanceActionPayload", "nova_object.namespace":"nova", "nova_object.version":"1.5" }, "priority":"INFO", "publisher_id":"nova-compute:compute" } nova-17.0.13/doc/notification_samples/instance-resize_finish-end.json0000664000175000017500000000645713556316250025753 0ustar zuulzuul00000000000000{ "event_type":"instance.resize_finish.end", "payload":{ "nova_object.data":{ "architecture":"x86_64", "availability_zone": "nova", "block_devices": [{ "nova_object.data": { "boot_index": null, "delete_on_termination": false, "device_name": "/dev/sdb", "tag": null, "volume_id": "a07f71dc-8151-4e7d-a0cc-cd24a3f11113" }, "nova_object.name": "BlockDevicePayload", "nova_object.namespace": "nova", "nova_object.version": "1.0" }], "created_at":"2012-10-29T13:42:11Z", "deleted_at":null, "display_name":"some-server", "display_description":"some-server", "fault":null, "host":"compute", "host_name":"some-server", "ip_addresses": [{ "nova_object.name": "IpPayload", "nova_object.namespace": "nova", "nova_object.version": "1.0", "nova_object.data": { "mac": "fa:16:3e:4c:2c:30", "address": "192.168.1.3", "port_uuid": "ce531f90-199f-48c0-816c-13e38010b442", "meta": {}, "version": 4, "label": "private-network", "device_name": "tapce531f90-19" } }], "key_name": "my-key", "kernel_id":"", "launched_at":"2012-10-29T13:42:11Z", "image_uuid": "155d900f-4e14-4e4c-a73d-069cbf4541e6", "metadata":{}, "locked":false, "node":"fake-mini", "os_type":null, "progress":0, "ramdisk_id":"", "reservation_id":"r-npxv0e40", "state":"resized", "task_state":null, "power_state":"running", "tenant_id":"6f70656e737461636b20342065766572", "terminated_at":null, "auto_disk_config":"MANUAL", "flavor": { "nova_object.name": "FlavorPayload", "nova_object.data": { "flavorid": "d5a8bb54-365a-45ae-abdb-38d249df7845", "name": "other_flavor", "root_gb": 1, "vcpus": 1, "ephemeral_gb": 0, "memory_mb": 256, "disabled": false, "rxtx_factor": 1.0, "extra_specs": { "hw:watchdog_action": "reset" }, "projects": null, "swap": 0, "is_public": true, "vcpu_weight": 0, "description":null }, "nova_object.version": "1.4", "nova_object.namespace": "nova" }, "user_id":"fake", "uuid":"178b0921-8f85-4257-88b6-2e743b5a975c", "updated_at": "2012-10-29T13:42:11Z" }, "nova_object.name":"InstanceActionPayload", "nova_object.namespace":"nova", "nova_object.version":"1.5" }, "priority":"INFO", "publisher_id":"nova-compute:compute" } nova-17.0.13/doc/notification_samples/instance-interface_attach-start.json0000664000175000017500000000030213556316250026744 0ustar zuulzuul00000000000000{ "priority": "INFO", "event_type": "instance.interface_attach.start", "payload":{"$ref":"common_payloads/InstanceActionPayload.json#"}, "publisher_id": "nova-compute:compute" } nova-17.0.13/doc/notification_samples/instance-shelve-start.json0000664000175000017500000000646113556316250024762 0ustar zuulzuul00000000000000{ "event_type":"instance.shelve.start", "payload":{ "nova_object.data":{ "architecture":"x86_64", "availability_zone": "nova", "block_devices": [{ "nova_object.data": { "boot_index": null, "delete_on_termination": false, "device_name": "/dev/sdb", "tag": null, "volume_id": "a07f71dc-8151-4e7d-a0cc-cd24a3f11113" }, "nova_object.name": "BlockDevicePayload", "nova_object.namespace": "nova", "nova_object.version": "1.0" }], "created_at":"2012-10-29T13:42:11Z", "deleted_at":null, "display_name":"some-server", "display_description":"some-server", "fault":null, "host":"compute", "host_name":"some-server", "ip_addresses": [{ "nova_object.name": "IpPayload", "nova_object.namespace": "nova", "nova_object.version": "1.0", "nova_object.data": { "mac": "fa:16:3e:4c:2c:30", "address": "192.168.1.3", "port_uuid": "ce531f90-199f-48c0-816c-13e38010b442", "meta": {}, "version": 4, "label": "private-network", "device_name": "tapce531f90-19" } }], "key_name": "my-key", "kernel_id":"", "launched_at":"2012-10-29T13:42:11Z", "image_uuid": "155d900f-4e14-4e4c-a73d-069cbf4541e6", "metadata":{}, "locked":false, "node":"fake-mini", "os_type":null, "progress":0, "ramdisk_id":"", "reservation_id":"r-npxv0e40", "state":"active", "task_state":"shelving", "power_state":"running", "tenant_id":"6f70656e737461636b20342065766572", "terminated_at":null, "auto_disk_config":"MANUAL", "flavor": { "nova_object.name": "FlavorPayload", "nova_object.data": { "flavorid": "a22d5517-147c-4147-a0d1-e698df5cd4e3", "name": "test_flavor", "root_gb": 1, "vcpus": 1, "ephemeral_gb": 0, "memory_mb": 512, "disabled": false, "rxtx_factor": 1.0, "extra_specs": { "hw:watchdog_action": "disabled" }, "projects": null, "swap": 0, "is_public": true, "vcpu_weight": 0, "description":null }, "nova_object.version": "1.4", "nova_object.namespace": "nova" }, "user_id":"fake", "uuid":"178b0921-8f85-4257-88b6-2e743b5a975c", "updated_at": "2012-10-29T13:42:11Z" }, "nova_object.name":"InstanceActionPayload", "nova_object.namespace":"nova", "nova_object.version":"1.5" }, "priority":"INFO", "publisher_id":"nova-compute:compute" } nova-17.0.13/doc/notification_samples/instance-interface_detach-end.json0000664000175000017500000000030013556316250026337 0ustar zuulzuul00000000000000{ "publisher_id": "nova-compute:compute", "event_type": "instance.interface_detach.end", "priority": "INFO", "payload":{"$ref":"common_payloads/InstanceActionPayload.json#"} } nova-17.0.13/doc/notification_samples/server_group-create.json0000664000175000017500000000026313556316250024514 0ustar zuulzuul00000000000000{ "priority": "INFO", "payload": {"$ref": "common_payloads/ServerGroupPayload.json#"}, "event_type": "server_group.create", "publisher_id": "nova-api:fake-mini" } nova-17.0.13/doc/notification_samples/aggregate-remove_host-end.json0000664000175000017500000000030513556316250025550 0ustar zuulzuul00000000000000{ "priority": "INFO", "payload": { "$ref": "common_payloads/AggregatePayload.json#" }, "event_type": "aggregate.remove_host.end", "publisher_id": "nova-api:fake-mini" } nova-17.0.13/doc/notification_samples/instance-power_on-start.json0000664000175000017500000000053213556316250025315 0ustar zuulzuul00000000000000{ "event_type":"instance.power_on.start", "payload":{ "$ref": "common_payloads/InstanceActionPayload.json#", "nova_object.data":{ "task_state":"powering-on", "state":"stopped", "power_state":"shutdown" } }, "priority":"INFO", "publisher_id":"nova-compute:compute" } nova-17.0.13/doc/notification_samples/instance-unpause-start.json0000664000175000017500000000046313556316250025150 0ustar zuulzuul00000000000000{ "event_type":"instance.unpause.start", "payload":{ "$ref": "common_payloads/InstanceActionPayload.json#", "nova_object.data": { "state": "paused", "task_state": "unpausing" } }, "priority":"INFO", "publisher_id":"nova-compute:compute" } nova-17.0.13/doc/notification_samples/compute-exception.json0000664000175000017500000000103613556316250024200 0ustar zuulzuul00000000000000{ "event_type": "compute.exception", "payload": { "nova_object.data": { "exception": "AggregateNameExists", "exception_message": "Aggregate versioned_exc_aggregate already exists.", "function_name": "_aggregate_create_in_db", "module_name": "nova.objects.aggregate" }, "nova_object.name": "ExceptionPayload", "nova_object.namespace": "nova", "nova_object.version": "1.0" }, "priority": "ERROR", "publisher_id": "nova-api:fake-mini" } nova-17.0.13/doc/api_samples/0000775000175000017500000000000013556316574015731 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/os-networks/0000775000175000017500000000000013556316574020224 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/os-networks/network-create-resp.json0000664000175000017500000000173313556316250025013 0ustar zuulzuul00000000000000{ "network": { "bridge": null, "bridge_interface": null, "broadcast": "10.20.105.255", "cidr": "10.20.105.0/24", "cidr_v6": null, "created_at": null, "deleted": null, "deleted_at": null, "dhcp_server": "10.20.105.2", "dhcp_start": "10.20.105.2", "dns1": null, "dns2": null, "enable_dhcp": false, "gateway": "10.20.105.1", "gateway_v6": null, "host": null, "id": "d7a17c0c-457e-4ab4-a99c-4fa1762f5359", "injected": null, "label": "new net 111", "mtu": 9000, "multi_host": null, "netmask": "255.255.255.0", "netmask_v6": null, "priority": null, "project_id": null, "rxtx_base": null, "share_address": true, "updated_at": null, "vlan": null, "vpn_private_address": null, "vpn_public_address": null, "vpn_public_port": null } }nova-17.0.13/doc/api_samples/os-networks/network-create-req.json0000664000175000017500000000044513556316250024630 0ustar zuulzuul00000000000000{ "network": { "label": "new net 111", "cidr": "10.20.105.0/24", "mtu": 9000, "dhcp_server": "10.20.105.2", "enable_dhcp": false, "share_address": true, "allowed_start": "10.20.105.10", "allowed_end": "10.20.105.200" } } nova-17.0.13/doc/api_samples/os-networks/network-add-req.json0000664000175000017500000000002213556316250024104 0ustar zuulzuul00000000000000{ "id": "1" } nova-17.0.13/doc/api_samples/os-networks/networks-list-resp.json0000664000175000017500000000447113556316250024710 0ustar zuulzuul00000000000000{ "networks": [ { "bridge": "br100", "bridge_interface": "eth0", "broadcast": "10.0.0.7", "cidr": "10.0.0.0/29", "cidr_v6": null, "created_at": "2011-08-15T06:19:19.387525", "deleted": false, "deleted_at": null, "dhcp_server": "10.0.0.1", "dhcp_start": "10.0.0.3", "dns1": null, "dns2": null, "enable_dhcp": true, "gateway": "10.0.0.1", "gateway_v6": null, "host": "nsokolov-desktop", "id": "20c8acc0-f747-4d71-a389-46d078ebf047", "injected": false, "label": "mynet_0", "mtu": null, "multi_host": false, "netmask": "255.255.255.248", "netmask_v6": null, "priority": null, "project_id": "6133f8b603924f45bc0c9e21f6df12fa", "rxtx_base": null, "share_address": false, "updated_at": "2011-08-16T09:26:13.048257", "vlan": 100, "vpn_private_address": "10.0.0.2", "vpn_public_address": "127.0.0.1", "vpn_public_port": 1000 }, { "bridge": "br101", "bridge_interface": "eth0", "broadcast": "10.0.0.15", "cidr": "10.0.0.10/29", "cidr_v6": null, "created_at": "2011-08-15T06:19:19.885495", "deleted": false, "deleted_at": null, "dhcp_server": "10.0.0.9", "dhcp_start": "10.0.0.11", "dns1": null, "dns2": null, "enable_dhcp": true, "gateway": "10.0.0.9", "gateway_v6": null, "host": null, "id": "20c8acc0-f747-4d71-a389-46d078ebf000", "injected": false, "label": "mynet_1", "mtu": null, "multi_host": false, "netmask": "255.255.255.248", "netmask_v6": null, "priority": null, "project_id": null, "rxtx_base": null, "share_address": false, "updated_at": null, "vlan": 101, "vpn_private_address": "10.0.0.10", "vpn_public_address": null, "vpn_public_port": 1001 } ] }nova-17.0.13/doc/api_samples/os-networks/network-show-resp.json0000664000175000017500000000207013556316250024523 0ustar zuulzuul00000000000000{ "network": { "bridge": "br100", "bridge_interface": "eth0", "broadcast": "10.0.0.7", "cidr": "10.0.0.0/29", "cidr_v6": null, "created_at": "2011-08-15T06:19:19.387525", "deleted": false, "deleted_at": null, "dhcp_server": "10.0.0.1", "dhcp_start": "10.0.0.3", "dns1": null, "dns2": null, "enable_dhcp": true, "gateway": "10.0.0.1", "gateway_v6": null, "host": "nsokolov-desktop", "id": "20c8acc0-f747-4d71-a389-46d078ebf047", "injected": false, "label": "mynet_0", "mtu": null, "multi_host": false, "netmask": "255.255.255.248", "netmask_v6": null, "priority": null, "project_id": "6133f8b603924f45bc0c9e21f6df12fa", "rxtx_base": null, "share_address": false, "updated_at": "2011-08-16T09:26:13.048257", "vlan": 100, "vpn_private_address": "10.0.0.2", "vpn_public_address": "127.0.0.1", "vpn_public_port": 1000 } }nova-17.0.13/doc/api_samples/os-evacuate/0000775000175000017500000000000013556316574020145 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/os-evacuate/server-evacuate-resp.json0000664000175000017500000000004413556316250025075 0ustar zuulzuul00000000000000{ "adminPass": "MySecretPass" } nova-17.0.13/doc/api_samples/os-evacuate/v2.14/0000775000175000017500000000000013556316574020717 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/os-evacuate/v2.14/server-evacuate-find-host-req.json0000664000175000017500000000010013556316250027347 0ustar zuulzuul00000000000000{ "evacuate": { "adminPass": "MySecretPass" } } nova-17.0.13/doc/api_samples/os-evacuate/v2.14/server-evacuate-req.json0000664000175000017500000000013413556316250025465 0ustar zuulzuul00000000000000{ "evacuate": { "host": "testHost", "adminPass": "MySecretPass" } } nova-17.0.13/doc/api_samples/os-evacuate/v2.29/0000775000175000017500000000000013556316574020725 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/os-evacuate/v2.29/server-evacuate-req.json0000664000175000017500000000016413556316250025476 0ustar zuulzuul00000000000000{ "evacuate": { "host": "testHost", "adminPass": "MySecretPass", "force": false } } nova-17.0.13/doc/api_samples/os-evacuate/server-evacuate-find-host-req.json0000664000175000017500000000014413556316250026605 0ustar zuulzuul00000000000000{ "evacuate": { "adminPass": "MySecretPass", "onSharedStorage": "False" } } nova-17.0.13/doc/api_samples/os-evacuate/server-evacuate-find-host-resp.json0000664000175000017500000000004413556316250026766 0ustar zuulzuul00000000000000{ "adminPass": "MySecretPass" } nova-17.0.13/doc/api_samples/os-evacuate/server-evacuate-req.json0000664000175000017500000000023013556316250024710 0ustar zuulzuul00000000000000{ "evacuate": { "host": "b419863b7d814906a68fb31703c0dbd6", "adminPass": "MySecretPass", "onSharedStorage": "False" } } nova-17.0.13/doc/api_samples/os-rescue/0000775000175000017500000000000013556316574017636 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/os-rescue/server-rescue.json0000664000175000017500000000004413556316250023310 0ustar zuulzuul00000000000000{ "adminPass": "MySecretPass" } nova-17.0.13/doc/api_samples/os-rescue/server-rescue-req-with-image-ref.json0000664000175000017500000000020213556316250026674 0ustar zuulzuul00000000000000{ "rescue": { "adminPass": "MySecretPass", "rescue_image_ref": "70a599e0-31e7-49b7-b260-868f441e862b" } } nova-17.0.13/doc/api_samples/os-rescue/server-get-resp-unrescue.json0000664000175000017500000000502713556316250025405 0ustar zuulzuul00000000000000{ "server": { "accessIPv4": "1.2.3.4", "accessIPv6": "80fe::", "addresses": { "private": [ { "addr": "192.168.0.3", "OS-EXT-IPS-MAC:mac_addr": "aa:bb:cc:dd:ee:ff", "OS-EXT-IPS:type": "fixed", "version": 4 } ] }, "created": "2013-09-18T07:22:09Z", "flavor": { "id": "1", "links": [ { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/flavors/1", "rel": "bookmark" } ] }, "hostId": "53cd4520a6cc639eeabcae4a0512b93e4675d431002e0b60e2dcfc04", "id": "edfc3905-1f3c-4819-8fc3-a7d8131cfa22", "image": { "id": "70a599e0-31e7-49b7-b260-868f441e862b", "links": [ { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/images/70a599e0-31e7-49b7-b260-868f441e862b", "rel": "bookmark" } ] }, "key_name": null, "links": [ { "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/servers/edfc3905-1f3c-4819-8fc3-a7d8131cfa22", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/servers/edfc3905-1f3c-4819-8fc3-a7d8131cfa22", "rel": "bookmark" } ], "metadata": { "My Server Name": "Apache1" }, "name": "new-server-test", "progress": 0, "status": "ACTIVE", "tenant_id": "6f70656e737461636b20342065766572", "updated": "2013-09-18T07:22:12Z", "user_id": "fake", "config_drive": "", "OS-DCF:diskConfig": "AUTO", "OS-EXT-AZ:availability_zone": "nova", "OS-EXT-SRV-ATTR:host": "b8b357f7100d4391828f2177c922ef93", "OS-EXT-SRV-ATTR:hypervisor_hostname": "fake-mini", "OS-EXT-SRV-ATTR:instance_name": "instance-00000001", "OS-EXT-STS:power_state": 1, "OS-EXT-STS:task_state": null, "OS-EXT-STS:vm_state": "active", "os-extended-volumes:volumes_attached": [], "OS-SRV-USG:launched_at": "2013-09-23T13:37:00.880302", "OS-SRV-USG:terminated_at": null, "security_groups": [ { "name": "default" } ] } } nova-17.0.13/doc/api_samples/os-rescue/server-unrescue-req.json0000664000175000017500000000003013556316250024433 0ustar zuulzuul00000000000000{ "unrescue": null }nova-17.0.13/doc/api_samples/os-rescue/server-rescue-req.json0000664000175000017500000000007613556316250024102 0ustar zuulzuul00000000000000{ "rescue": { "adminPass": "MySecretPass" } } nova-17.0.13/doc/api_samples/os-rescue/server-get-resp-rescue.json0000664000175000017500000000500113556316250025032 0ustar zuulzuul00000000000000{ "server": { "accessIPv4": "1.2.3.4", "accessIPv6": "80fe::", "addresses": { "private": [ { "addr": "192.168.0.3", "OS-EXT-IPS-MAC:mac_addr": "aa:bb:cc:dd:ee:ff", "OS-EXT-IPS:type": "fixed", "version": 4 } ] }, "created": "2013-09-18T07:22:09Z", "flavor": { "id": "1", "links": [ { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/flavors/1", "rel": "bookmark" } ] }, "hostId": "f04994c5b4aac1cacbb83b09c2506e457d97dd54f620961624574690", "id": "2fd0c66b-50af-41d2-9253-9fa41e7e8dd8", "image": { "id": "70a599e0-31e7-49b7-b260-868f441e862b", "links": [ { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/images/70a599e0-31e7-49b7-b260-868f441e862b", "rel": "bookmark" } ] }, "key_name": null, "links": [ { "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/servers/2fd0c66b-50af-41d2-9253-9fa41e7e8dd8", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/servers/2fd0c66b-50af-41d2-9253-9fa41e7e8dd8", "rel": "bookmark" } ], "metadata": { "My Server Name": "Apache1" }, "name": "new-server-test", "status": "RESCUE", "tenant_id": "6f70656e737461636b20342065766572", "updated": "2013-09-18T07:22:11Z", "user_id": "fake", "config_drive": "", "OS-DCF:diskConfig": "AUTO", "OS-EXT-AZ:availability_zone": "nova", "OS-EXT-SRV-ATTR:host": "b8b357f7100d4391828f2177c922ef93", "OS-EXT-SRV-ATTR:hypervisor_hostname": "fake-mini", "OS-EXT-SRV-ATTR:instance_name": "instance-00000001", "OS-EXT-STS:power_state": 4, "OS-EXT-STS:task_state": null, "OS-EXT-STS:vm_state": "rescued", "os-extended-volumes:volumes_attached": [], "OS-SRV-USG:launched_at": "2013-09-23T13:37:00.880302", "OS-SRV-USG:terminated_at": null, "security_groups": [ { "name": "default" } ] } } nova-17.0.13/doc/api_samples/os-admin-password/0000775000175000017500000000000013556316574021300 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/os-admin-password/admin-password-change-password.json0000664000175000017500000000007713556316250030201 0ustar zuulzuul00000000000000{ "changePassword" : { "adminPass" : "foo" } } nova-17.0.13/doc/api_samples/images/0000775000175000017500000000000013556316574017176 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/images/images-list-get-resp.json0000664000175000017500000001325413556316250024027 0ustar zuulzuul00000000000000{ "images": [ { "id": "70a599e0-31e7-49b7-b260-868f441e862b", "links": [ { "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/images/70a599e0-31e7-49b7-b260-868f441e862b", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/images/70a599e0-31e7-49b7-b260-868f441e862b", "rel": "bookmark" }, { "href": "http://glance.openstack.example.com/images/70a599e0-31e7-49b7-b260-868f441e862b", "rel": "alternate", "type": "application/vnd.openstack.image" } ], "name": "fakeimage7" }, { "id": "155d900f-4e14-4e4c-a73d-069cbf4541e6", "links": [ { "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/images/155d900f-4e14-4e4c-a73d-069cbf4541e6", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/images/155d900f-4e14-4e4c-a73d-069cbf4541e6", "rel": "bookmark" }, { "href": "http://glance.openstack.example.com/images/155d900f-4e14-4e4c-a73d-069cbf4541e6", "rel": "alternate", "type": "application/vnd.openstack.image" } ], "name": "fakeimage123456" }, { "id": "a2459075-d96c-40d5-893e-577ff92e721c", "links": [ { "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/images/a2459075-d96c-40d5-893e-577ff92e721c", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/images/a2459075-d96c-40d5-893e-577ff92e721c", "rel": "bookmark" }, { "href": "http://glance.openstack.example.com/images/a2459075-d96c-40d5-893e-577ff92e721c", "rel": "alternate", "type": "application/vnd.openstack.image" } ], "name": "fakeimage123456" }, { "id": "a440c04b-79fa-479c-bed1-0b816eaec379", "links": [ { "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/images/a440c04b-79fa-479c-bed1-0b816eaec379", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/images/a440c04b-79fa-479c-bed1-0b816eaec379", "rel": "bookmark" }, { "href": "http://glance.openstack.example.com/images/a440c04b-79fa-479c-bed1-0b816eaec379", "rel": "alternate", "type": "application/vnd.openstack.image" } ], "name": "fakeimage6" }, { "id": "c905cedb-7281-47e4-8a62-f26bc5fc4c77", "links": [ { "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/images/c905cedb-7281-47e4-8a62-f26bc5fc4c77", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/images/c905cedb-7281-47e4-8a62-f26bc5fc4c77", "rel": "bookmark" }, { "href": "http://glance.openstack.example.com/images/c905cedb-7281-47e4-8a62-f26bc5fc4c77", "rel": "alternate", "type": "application/vnd.openstack.image" } ], "name": "fakeimage123456" }, { "id": "cedef40a-ed67-4d10-800e-17455edce175", "links": [ { "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/images/cedef40a-ed67-4d10-800e-17455edce175", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/images/cedef40a-ed67-4d10-800e-17455edce175", "rel": "bookmark" }, { "href": "http://glance.openstack.example.com/images/cedef40a-ed67-4d10-800e-17455edce175", "rel": "alternate", "type": "application/vnd.openstack.image" } ], "name": "fakeimage123456" }, { "id": "76fa36fc-c930-4bf3-8c8a-ea2a2420deb6", "links": [ { "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/images/76fa36fc-c930-4bf3-8c8a-ea2a2420deb6", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/images/76fa36fc-c930-4bf3-8c8a-ea2a2420deb6", "rel": "bookmark" }, { "href": "http://glance.openstack.example.com/images/76fa36fc-c930-4bf3-8c8a-ea2a2420deb6", "rel": "alternate", "type": "application/vnd.openstack.image" } ], "name": "fakeimage123456" } ] } nova-17.0.13/doc/api_samples/images/image-meta-key-put-resp.json0000664000175000017500000000007313556316250024431 0ustar zuulzuul00000000000000{ "meta": { "auto_disk_config": "False" } }nova-17.0.13/doc/api_samples/images/image-metadata-post-resp.json0000664000175000017500000000030113556316250024644 0ustar zuulzuul00000000000000{ "metadata": { "Label": "UpdatedImage", "architecture": "x86_64", "auto_disk_config": "True", "kernel_id": "False", "ramdisk_id": "nokernel" } }nova-17.0.13/doc/api_samples/images/image-get-resp.json0000664000175000017500000000226613556316250022674 0ustar zuulzuul00000000000000{ "image": { "OS-DCF:diskConfig": "AUTO", "OS-EXT-IMG-SIZE:size": "74185822", "created": "2011-01-01T01:02:03Z", "id": "70a599e0-31e7-49b7-b260-868f441e862b", "links": [ { "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/images/70a599e0-31e7-49b7-b260-868f441e862b", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/images/70a599e0-31e7-49b7-b260-868f441e862b", "rel": "bookmark" }, { "href": "http://glance.openstack.example.com/images/70a599e0-31e7-49b7-b260-868f441e862b", "rel": "alternate", "type": "application/vnd.openstack.image" } ], "metadata": { "architecture": "x86_64", "auto_disk_config": "True", "kernel_id": "nokernel", "ramdisk_id": "nokernel" }, "minDisk": 0, "minRam": 0, "name": "fakeimage7", "progress": 100, "status": "ACTIVE", "updated": "2011-01-01T01:02:03Z" } } nova-17.0.13/doc/api_samples/images/image-metadata-put-req.json0000664000175000017500000000013213556316250024307 0ustar zuulzuul00000000000000{ "metadata": { "auto_disk_config": "True", "Label": "Changed" } }nova-17.0.13/doc/api_samples/images/image-meta-key-get.json0000664000175000017500000000006713556316250023434 0ustar zuulzuul00000000000000{ "meta": { "kernel_id": "nokernel" } }nova-17.0.13/doc/api_samples/images/image-metadata-post-req.json0000664000175000017500000000013113556316250024463 0ustar zuulzuul00000000000000{ "metadata": { "kernel_id": "False", "Label": "UpdatedImage" } }nova-17.0.13/doc/api_samples/images/image-metadata-get-resp.json0000664000175000017500000000024313556316250024443 0ustar zuulzuul00000000000000{ "metadata": { "architecture": "x86_64", "auto_disk_config": "True", "kernel_id": "nokernel", "ramdisk_id": "nokernel" } }nova-17.0.13/doc/api_samples/images/images-details-get-resp.json0000664000175000017500000002107413556316250024500 0ustar zuulzuul00000000000000{ "images": [ { "OS-DCF:diskConfig": "AUTO", "OS-EXT-IMG-SIZE:size": "74185822", "created": "2011-01-01T01:02:03Z", "id": "70a599e0-31e7-49b7-b260-868f441e862b", "links": [ { "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/images/70a599e0-31e7-49b7-b260-868f441e862b", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/images/70a599e0-31e7-49b7-b260-868f441e862b", "rel": "bookmark" }, { "href": "http://glance.openstack.example.com/images/70a599e0-31e7-49b7-b260-868f441e862b", "rel": "alternate", "type": "application/vnd.openstack.image" } ], "metadata": { "architecture": "x86_64", "auto_disk_config": "True", "kernel_id": "nokernel", "ramdisk_id": "nokernel" }, "minDisk": 0, "minRam": 0, "name": "fakeimage7", "progress": 100, "status": "ACTIVE", "updated": "2011-01-01T01:02:03Z" }, { "OS-EXT-IMG-SIZE:size": "74185822", "created": "2011-01-01T01:02:03Z", "id": "155d900f-4e14-4e4c-a73d-069cbf4541e6", "links": [ { "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/images/155d900f-4e14-4e4c-a73d-069cbf4541e6", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/images/155d900f-4e14-4e4c-a73d-069cbf4541e6", "rel": "bookmark" }, { "href": "http://glance.openstack.example.com/images/155d900f-4e14-4e4c-a73d-069cbf4541e6", "rel": "alternate", "type": "application/vnd.openstack.image" } ], "metadata": { "architecture": "x86_64", "kernel_id": "nokernel", "ramdisk_id": "nokernel" }, "minDisk": 0, "minRam": 0, "name": "fakeimage123456", "progress": 100, "status": "ACTIVE", "updated": "2011-01-01T01:02:03Z" }, { "OS-EXT-IMG-SIZE:size": "74185822", "created": "2011-01-01T01:02:03Z", "id": "a2459075-d96c-40d5-893e-577ff92e721c", "links": [ { "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/images/a2459075-d96c-40d5-893e-577ff92e721c", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/images/a2459075-d96c-40d5-893e-577ff92e721c", "rel": "bookmark" }, { "href": "http://glance.openstack.example.com/images/a2459075-d96c-40d5-893e-577ff92e721c", "rel": "alternate", "type": "application/vnd.openstack.image" } ], "metadata": { "kernel_id": "nokernel", "ramdisk_id": "nokernel" }, "minDisk": 0, "minRam": 0, "name": "fakeimage123456", "progress": 100, "status": "ACTIVE", "updated": "2011-01-01T01:02:03Z" }, { "OS-DCF:diskConfig": "MANUAL", "OS-EXT-IMG-SIZE:size": "74185822", "created": "2011-01-01T01:02:03Z", "id": "a440c04b-79fa-479c-bed1-0b816eaec379", "links": [ { "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/images/a440c04b-79fa-479c-bed1-0b816eaec379", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/images/a440c04b-79fa-479c-bed1-0b816eaec379", "rel": "bookmark" }, { "href": "http://glance.openstack.example.com/images/a440c04b-79fa-479c-bed1-0b816eaec379", "rel": "alternate", "type": "application/vnd.openstack.image" } ], "metadata": { "architecture": "x86_64", "auto_disk_config": "False", "kernel_id": "nokernel", "ramdisk_id": "nokernel" }, "minDisk": 0, "minRam": 0, "name": "fakeimage6", "progress": 100, "status": "ACTIVE", "updated": "2011-01-01T01:02:03Z" }, { "OS-EXT-IMG-SIZE:size": "74185822", "created": "2011-01-01T01:02:03Z", "id": "c905cedb-7281-47e4-8a62-f26bc5fc4c77", "links": [ { "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/images/c905cedb-7281-47e4-8a62-f26bc5fc4c77", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/images/c905cedb-7281-47e4-8a62-f26bc5fc4c77", "rel": "bookmark" }, { "href": "http://glance.openstack.example.com/images/c905cedb-7281-47e4-8a62-f26bc5fc4c77", "rel": "alternate", "type": "application/vnd.openstack.image" } ], "metadata": { "kernel_id": "155d900f-4e14-4e4c-a73d-069cbf4541e6", "ramdisk_id": null }, "minDisk": 0, "minRam": 0, "name": "fakeimage123456", "progress": 100, "status": "ACTIVE", "updated": "2011-01-01T01:02:03Z" }, { "OS-EXT-IMG-SIZE:size": "74185822", "created": "2011-01-01T01:02:03Z", "id": "cedef40a-ed67-4d10-800e-17455edce175", "links": [ { "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/images/cedef40a-ed67-4d10-800e-17455edce175", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/images/cedef40a-ed67-4d10-800e-17455edce175", "rel": "bookmark" }, { "href": "http://glance.openstack.example.com/images/cedef40a-ed67-4d10-800e-17455edce175", "rel": "alternate", "type": "application/vnd.openstack.image" } ], "metadata": { "kernel_id": "nokernel", "ramdisk_id": "nokernel" }, "minDisk": 0, "minRam": 0, "name": "fakeimage123456", "progress": 100, "status": "ACTIVE", "updated": "2011-01-01T01:02:03Z" }, { "OS-EXT-IMG-SIZE:size": "74185822", "created": "2011-01-01T01:02:03Z", "id": "76fa36fc-c930-4bf3-8c8a-ea2a2420deb6", "links": [ { "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/images/76fa36fc-c930-4bf3-8c8a-ea2a2420deb6", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/images/76fa36fc-c930-4bf3-8c8a-ea2a2420deb6", "rel": "bookmark" }, { "href": "http://glance.openstack.example.com/images/76fa36fc-c930-4bf3-8c8a-ea2a2420deb6", "rel": "alternate", "type": "application/vnd.openstack.image" } ], "metadata": { "kernel_id": "nokernel", "ramdisk_id": "nokernel" }, "minDisk": 0, "minRam": 0, "name": "fakeimage123456", "progress": 100, "status": "ACTIVE", "updated": "2011-01-01T01:02:03Z" } ] } nova-17.0.13/doc/api_samples/images/image-metadata-put-resp.json0000664000175000017500000000013213556316250024471 0ustar zuulzuul00000000000000{ "metadata": { "Label": "Changed", "auto_disk_config": "True" } }nova-17.0.13/doc/api_samples/images/image-meta-key-put-req.json0000664000175000017500000000007413556316250024250 0ustar zuulzuul00000000000000{ "meta": { "auto_disk_config": "False" } } nova-17.0.13/doc/api_samples/versions/0000775000175000017500000000000013556316574017601 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/versions/v21-version-get-resp.json0000664000175000017500000000123513556316250024303 0ustar zuulzuul00000000000000{ "version": { "id": "v2.1", "links": [ { "href": "http://openstack.example.com/v2.1/", "rel": "self" }, { "href": "http://docs.openstack.org/", "rel": "describedby", "type": "text/html" } ], "media-types": [ { "base": "application/json", "type": "application/vnd.openstack.compute+json;version=2.1" } ], "status": "CURRENT", "version": "2.60", "min_version": "2.1", "updated": "2013-07-23T11:33:21Z" } } nova-17.0.13/doc/api_samples/versions/v2-version-get-resp.json0000664000175000017500000000122413556316250024220 0ustar zuulzuul00000000000000{ "version": { "id": "v2.0", "links": [ { "href": "http://openstack.example.com/v2/", "rel": "self" }, { "href": "http://docs.openstack.org/", "rel": "describedby", "type": "text/html" } ], "media-types": [ { "base": "application/json", "type": "application/vnd.openstack.compute+json;version=2" } ], "status": "SUPPORTED", "version": "", "min_version": "", "updated": "2011-01-21T11:33:21Z" } } nova-17.0.13/doc/api_samples/versions/versions-get-resp.json0000664000175000017500000000135613556316250024064 0ustar zuulzuul00000000000000{ "versions": [ { "id": "v2.0", "links": [ { "href": "http://openstack.example.com/v2/", "rel": "self" } ], "status": "SUPPORTED", "version": "", "min_version": "", "updated": "2011-01-21T11:33:21Z" }, { "id": "v2.1", "links": [ { "href": "http://openstack.example.com/v2.1/", "rel": "self" } ], "status": "CURRENT", "version": "2.60", "min_version": "2.1", "updated": "2013-07-23T11:33:21Z" } ] } nova-17.0.13/doc/api_samples/os-multiple-create/0000775000175000017500000000000013556316574021444 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/os-multiple-create/multiple-create-post-req.json0000664000175000017500000000047013556316250027173 0ustar zuulzuul00000000000000{ "server": { "name": "new-server-test", "imageRef": "70a599e0-31e7-49b7-b260-868f441e862b", "flavorRef": "1", "metadata": { "My Server Name": "Apache1" }, "return_reservation_id": "True", "min_count": "2", "max_count": "3" } } nova-17.0.13/doc/api_samples/os-multiple-create/multiple-create-no-resv-post-req.json0000664000175000017500000000041713556316250030563 0ustar zuulzuul00000000000000{ "server": { "name": "new-server-test", "imageRef": "70a599e0-31e7-49b7-b260-868f441e862b", "flavorRef": "1", "metadata": { "My Server Name": "Apache1" }, "min_count": "2", "max_count": "3" } } nova-17.0.13/doc/api_samples/os-multiple-create/multiple-create-no-resv-post-resp.json0000664000175000017500000000124513556316250030745 0ustar zuulzuul00000000000000{ "server": { "OS-DCF:diskConfig": "AUTO", "adminPass": "wfksH3GTTseP", "id": "440cf918-3ee0-4143-b289-f63e1d2000e6", "links": [ { "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/servers/440cf918-3ee0-4143-b289-f63e1d2000e6", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/servers/440cf918-3ee0-4143-b289-f63e1d2000e6", "rel": "bookmark" } ], "security_groups": [ { "name": "default" } ] } } nova-17.0.13/doc/api_samples/os-multiple-create/multiple-create-post-resp.json0000664000175000017500000000004613556316250027354 0ustar zuulzuul00000000000000{ "reservation_id": "r-3fhpjulh" }nova-17.0.13/doc/api_samples/flavors/0000775000175000017500000000000013556316574017405 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/flavors/flavor-get-resp.json0000664000175000017500000000122113556316250023300 0ustar zuulzuul00000000000000{ "flavor": { "OS-FLV-DISABLED:disabled": false, "disk": 1, "OS-FLV-EXT-DATA:ephemeral": 0, "os-flavor-access:is_public": true, "id": "1", "links": [ { "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/flavors/1", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/flavors/1", "rel": "bookmark" } ], "name": "m1.tiny", "ram": 512, "swap": "", "vcpus": 1, "rxtx_factor": 1.0 } } nova-17.0.13/doc/api_samples/flavors/v2.55/0000775000175000017500000000000013556316574020164 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/flavors/v2.55/flavor-get-resp.json0000664000175000017500000000131313556316250024061 0ustar zuulzuul00000000000000{ "flavor": { "OS-FLV-DISABLED:disabled": false, "disk": 20, "OS-FLV-EXT-DATA:ephemeral": 0, "os-flavor-access:is_public": true, "id": "7", "links": [ { "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/flavors/7", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/flavors/7", "rel": "bookmark" } ], "name": "m1.small.description", "ram": 2048, "swap": "", "vcpus": 1, "rxtx_factor": 1.0, "description": "test description" } } nova-17.0.13/doc/api_samples/flavors/v2.55/flavors-list-resp.json0000664000175000017500000000674613556316250024457 0ustar zuulzuul00000000000000{ "flavors": [ { "id": "1", "links": [ { "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/flavors/1", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/flavors/1", "rel": "bookmark" } ], "name": "m1.tiny", "description": null }, { "id": "2", "links": [ { "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/flavors/2", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/flavors/2", "rel": "bookmark" } ], "name": "m1.small", "description": null }, { "id": "3", "links": [ { "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/flavors/3", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/flavors/3", "rel": "bookmark" } ], "name": "m1.medium", "description": null }, { "id": "4", "links": [ { "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/flavors/4", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/flavors/4", "rel": "bookmark" } ], "name": "m1.large", "description": null }, { "id": "5", "links": [ { "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/flavors/5", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/flavors/5", "rel": "bookmark" } ], "name": "m1.xlarge", "description": null }, { "id": "6", "links": [ { "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/flavors/6", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/flavors/6", "rel": "bookmark" } ], "name": "m1.tiny.specs", "description": null }, { "id": "7", "links": [ { "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/flavors/7", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/flavors/7", "rel": "bookmark" } ], "name": "m1.small.description", "description": "test description" } ] } nova-17.0.13/doc/api_samples/flavors/v2.55/flavors-detail-resp.json0000664000175000017500000001247013556316250024735 0ustar zuulzuul00000000000000{ "flavors": [ { "OS-FLV-DISABLED:disabled": false, "disk": 1, "OS-FLV-EXT-DATA:ephemeral": 0, "os-flavor-access:is_public": true, "id": "1", "links": [ { "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/flavors/1", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/flavors/1", "rel": "bookmark" } ], "name": "m1.tiny", "ram": 512, "swap": "", "vcpus": 1, "rxtx_factor": 1.0, "description": null }, { "OS-FLV-DISABLED:disabled": false, "disk": 20, "OS-FLV-EXT-DATA:ephemeral": 0, "os-flavor-access:is_public": true, "id": "2", "links": [ { "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/flavors/2", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/flavors/2", "rel": "bookmark" } ], "name": "m1.small", "ram": 2048, "swap": "", "vcpus": 1, "rxtx_factor": 1.0, "description": null }, { "OS-FLV-DISABLED:disabled": false, "disk": 40, "OS-FLV-EXT-DATA:ephemeral": 0, "os-flavor-access:is_public": true, "id": "3", "links": [ { "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/flavors/3", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/flavors/3", "rel": "bookmark" } ], "name": "m1.medium", "ram": 4096, "swap": "", "vcpus": 2, "rxtx_factor": 1.0, "description": null }, { "OS-FLV-DISABLED:disabled": false, "disk": 80, "OS-FLV-EXT-DATA:ephemeral": 0, "os-flavor-access:is_public": true, "id": "4", "links": [ { "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/flavors/4", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/flavors/4", "rel": "bookmark" } ], "name": "m1.large", "ram": 8192, "swap": "", "vcpus": 4, "rxtx_factor": 1.0, "description": null }, { "OS-FLV-DISABLED:disabled": false, "disk": 160, "OS-FLV-EXT-DATA:ephemeral": 0, "os-flavor-access:is_public": true, "id": "5", "links": [ { "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/flavors/5", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/flavors/5", "rel": "bookmark" } ], "name": "m1.xlarge", "ram": 16384, "swap": "", "vcpus": 8, "rxtx_factor": 1.0, "description": null }, { "OS-FLV-DISABLED:disabled": false, "disk": 1, "OS-FLV-EXT-DATA:ephemeral": 0, "os-flavor-access:is_public": true, "id": "6", "links": [ { "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/flavors/6", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/flavors/6", "rel": "bookmark" } ], "name": "m1.tiny.specs", "ram": 512, "swap": "", "vcpus": 1, "rxtx_factor": 1.0, "description": null }, { "OS-FLV-DISABLED:disabled": false, "disk": 20, "OS-FLV-EXT-DATA:ephemeral": 0, "os-flavor-access:is_public": true, "id": "7", "links": [ { "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/flavors/7", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/flavors/7", "rel": "bookmark" } ], "name": "m1.small.description", "ram": 2048, "swap": "", "vcpus": 1, "rxtx_factor": 1.0, "description": "test description" } ] } nova-17.0.13/doc/api_samples/flavors/flavors-list-resp.json0000664000175000017500000000542213556316250023666 0ustar zuulzuul00000000000000{ "flavors": [ { "id": "1", "links": [ { "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/flavors/1", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/flavors/1", "rel": "bookmark" } ], "name": "m1.tiny" }, { "id": "2", "links": [ { "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/flavors/2", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/flavors/2", "rel": "bookmark" } ], "name": "m1.small" }, { "id": "3", "links": [ { "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/flavors/3", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/flavors/3", "rel": "bookmark" } ], "name": "m1.medium" }, { "id": "4", "links": [ { "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/flavors/4", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/flavors/4", "rel": "bookmark" } ], "name": "m1.large" }, { "id": "5", "links": [ { "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/flavors/5", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/flavors/5", "rel": "bookmark" } ], "name": "m1.xlarge" }, { "id": "6", "links": [ { "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/flavors/6", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/flavors/6", "rel": "bookmark" } ], "name": "m1.tiny.specs" } ] } nova-17.0.13/doc/api_samples/flavors/flavors-detail-resp.json0000664000175000017500000001053013556316250024151 0ustar zuulzuul00000000000000{ "flavors": [ { "OS-FLV-DISABLED:disabled": false, "disk": 1, "OS-FLV-EXT-DATA:ephemeral": 0, "os-flavor-access:is_public": true, "id": "1", "links": [ { "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/flavors/1", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/flavors/1", "rel": "bookmark" } ], "name": "m1.tiny", "ram": 512, "swap": "", "vcpus": 1, "rxtx_factor": 1.0 }, { "OS-FLV-DISABLED:disabled": false, "disk": 20, "OS-FLV-EXT-DATA:ephemeral": 0, "os-flavor-access:is_public": true, "id": "2", "links": [ { "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/flavors/2", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/flavors/2", "rel": "bookmark" } ], "name": "m1.small", "ram": 2048, "swap": "", "vcpus": 1, "rxtx_factor": 1.0 }, { "OS-FLV-DISABLED:disabled": false, "disk": 40, "OS-FLV-EXT-DATA:ephemeral": 0, "os-flavor-access:is_public": true, "id": "3", "links": [ { "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/flavors/3", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/flavors/3", "rel": "bookmark" } ], "name": "m1.medium", "ram": 4096, "swap": "", "vcpus": 2, "rxtx_factor": 1.0 }, { "OS-FLV-DISABLED:disabled": false, "disk": 80, "OS-FLV-EXT-DATA:ephemeral": 0, "os-flavor-access:is_public": true, "id": "4", "links": [ { "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/flavors/4", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/flavors/4", "rel": "bookmark" } ], "name": "m1.large", "ram": 8192, "swap": "", "vcpus": 4, "rxtx_factor": 1.0 }, { "OS-FLV-DISABLED:disabled": false, "disk": 160, "OS-FLV-EXT-DATA:ephemeral": 0, "os-flavor-access:is_public": true, "id": "5", "links": [ { "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/flavors/5", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/flavors/5", "rel": "bookmark" } ], "name": "m1.xlarge", "ram": 16384, "swap": "", "vcpus": 8, "rxtx_factor": 1.0 }, { "OS-FLV-DISABLED:disabled": false, "disk": 1, "OS-FLV-EXT-DATA:ephemeral": 0, "os-flavor-access:is_public": true, "id": "6", "links": [ { "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/flavors/6", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/flavors/6", "rel": "bookmark" } ], "name": "m1.tiny.specs", "ram": 512, "swap": "", "vcpus": 1, "rxtx_factor": 1.0 } ] } nova-17.0.13/doc/api_samples/os-services/0000775000175000017500000000000013556316574020173 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/os-services/service-enable-put-req.json0000664000175000017500000000006513556316250025335 0ustar zuulzuul00000000000000{ "host": "host1", "binary": "nova-compute" }nova-17.0.13/doc/api_samples/os-services/service-disable-put-req.json0000664000175000017500000000006513556316250025512 0ustar zuulzuul00000000000000{ "host": "host1", "binary": "nova-compute" }nova-17.0.13/doc/api_samples/os-services/service-enable-put-resp.json0000664000175000017500000000016113556316250025514 0ustar zuulzuul00000000000000{ "service": { "binary": "nova-compute", "host": "host1", "status": "enabled" } }nova-17.0.13/doc/api_samples/os-services/service-disable-put-resp.json0000664000175000017500000000016213556316250025672 0ustar zuulzuul00000000000000{ "service": { "binary": "nova-compute", "host": "host1", "status": "disabled" } }nova-17.0.13/doc/api_samples/os-services/services-list-get-resp.json0000664000175000017500000000227313556316250025401 0ustar zuulzuul00000000000000{ "services": [ { "id": 1, "binary": "nova-scheduler", "disabled_reason": "test1", "host": "host1", "state": "up", "status": "disabled", "updated_at": "2012-10-29T13:42:02.000000", "zone": "internal" }, { "id": 2, "binary": "nova-compute", "disabled_reason": "test2", "host": "host1", "state": "up", "status": "disabled", "updated_at": "2012-10-29T13:42:05.000000", "zone": "nova" }, { "id": 3, "binary": "nova-scheduler", "disabled_reason": null, "host": "host2", "state": "down", "status": "enabled", "updated_at": "2012-09-19T06:55:34.000000", "zone": "internal" }, { "id": 4, "binary": "nova-compute", "disabled_reason": "test4", "host": "host2", "state": "down", "status": "disabled", "updated_at": "2012-09-18T08:03:38.000000", "zone": "nova" } ] } nova-17.0.13/doc/api_samples/os-services/service-disable-log-put-resp.json0000664000175000017500000000022613556316250026452 0ustar zuulzuul00000000000000{ "service": { "binary": "nova-compute", "disabled_reason": "test2", "host": "host1", "status": "disabled" } }nova-17.0.13/doc/api_samples/os-services/v2.53/0000775000175000017500000000000013556316574020750 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/os-services/v2.53/service-force-down-put-resp.json0000664000175000017500000000051613556316250027112 0ustar zuulzuul00000000000000{ "service": { "id": "e81d66a4-ddd3-4aba-8a84-171d1cb4d339", "binary": "nova-compute", "disabled_reason": "test2", "host": "host1", "state": "down", "status": "disabled", "updated_at": "2012-10-29T13:42:05.000000", "forced_down": true, "zone": "nova" } }nova-17.0.13/doc/api_samples/os-services/v2.53/service-enable-put-req.json0000664000175000017500000000003313556316250026105 0ustar zuulzuul00000000000000{ "status": "enabled" }nova-17.0.13/doc/api_samples/os-services/v2.53/service-disable-put-req.json0000664000175000017500000000003413556316250026263 0ustar zuulzuul00000000000000{ "status": "disabled" }nova-17.0.13/doc/api_samples/os-services/v2.53/service-enable-put-resp.json0000664000175000017500000000051113556316250026270 0ustar zuulzuul00000000000000{ "service": { "id": "e81d66a4-ddd3-4aba-8a84-171d1cb4d339", "binary": "nova-compute", "disabled_reason": null, "host": "host1", "state": "up", "status": "enabled", "updated_at": "2012-10-29T13:42:05.000000", "forced_down": false, "zone": "nova" } }nova-17.0.13/doc/api_samples/os-services/v2.53/service-disable-put-resp.json0000664000175000017500000000051213556316250026446 0ustar zuulzuul00000000000000{ "service": { "id": "e81d66a4-ddd3-4aba-8a84-171d1cb4d339", "binary": "nova-compute", "disabled_reason": null, "host": "host1", "state": "up", "status": "disabled", "updated_at": "2012-10-29T13:42:05.000000", "forced_down": false, "zone": "nova" } }nova-17.0.13/doc/api_samples/os-services/v2.53/services-list-get-resp.json0000664000175000017500000000272713556316250026162 0ustar zuulzuul00000000000000{ "services": [ { "id": "c4726392-27de-4ff9-b2e0-5aa1d08a520f", "binary": "nova-scheduler", "disabled_reason": "test1", "host": "host1", "state": "up", "status": "disabled", "updated_at": "2012-10-29T13:42:02.000000", "forced_down": false, "zone": "internal" }, { "id": "e81d66a4-ddd3-4aba-8a84-171d1cb4d339", "binary": "nova-compute", "disabled_reason": "test2", "host": "host1", "state": "up", "status": "disabled", "updated_at": "2012-10-29T13:42:05.000000", "forced_down": false, "zone": "nova" }, { "id": "bbd684ff-d3f6-492e-a30a-a12a2d2db0e0", "binary": "nova-scheduler", "disabled_reason": null, "host": "host2", "state": "down", "status": "enabled", "updated_at": "2012-09-19T06:55:34.000000", "forced_down": false, "zone": "internal" }, { "id": "13aa304e-5340-45a7-a7fb-b6d6e914d272", "binary": "nova-compute", "disabled_reason": "test4", "host": "host2", "state": "down", "status": "disabled", "updated_at": "2012-09-18T08:03:38.000000", "forced_down": false, "zone": "nova" } ] } nova-17.0.13/doc/api_samples/os-services/v2.53/service-disable-log-put-resp.json0000664000175000017500000000052313556316250027227 0ustar zuulzuul00000000000000{ "service": { "id": "e81d66a4-ddd3-4aba-8a84-171d1cb4d339", "binary": "nova-compute", "disabled_reason": "maintenance", "host": "host1", "state": "up", "status": "disabled", "updated_at": "2012-10-29T13:42:05.000000", "forced_down": false, "zone": "nova" } }nova-17.0.13/doc/api_samples/os-services/v2.53/service-force-down-put-req.json0000664000175000017500000000003313556316250026722 0ustar zuulzuul00000000000000{ "forced_down": true }nova-17.0.13/doc/api_samples/os-services/v2.53/service-disable-log-put-req.json0000664000175000017500000000010213556316250027036 0ustar zuulzuul00000000000000{ "status": "disabled", "disabled_reason": "maintenance" }nova-17.0.13/doc/api_samples/os-services/v2.11/0000775000175000017500000000000013556316574020742 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/os-services/v2.11/service-force-down-put-resp.json0000664000175000017500000000016213556316250027101 0ustar zuulzuul00000000000000{ "service": { "binary": "nova-compute", "host": "host1", "forced_down": true } } nova-17.0.13/doc/api_samples/os-services/v2.11/service-enable-put-req.json0000664000175000017500000000006513556316250026104 0ustar zuulzuul00000000000000{ "host": "host1", "binary": "nova-compute" }nova-17.0.13/doc/api_samples/os-services/v2.11/service-disable-put-req.json0000664000175000017500000000006513556316250026261 0ustar zuulzuul00000000000000{ "host": "host1", "binary": "nova-compute" }nova-17.0.13/doc/api_samples/os-services/v2.11/service-enable-put-resp.json0000664000175000017500000000016113556316250026263 0ustar zuulzuul00000000000000{ "service": { "binary": "nova-compute", "host": "host1", "status": "enabled" } }nova-17.0.13/doc/api_samples/os-services/v2.11/service-disable-put-resp.json0000664000175000017500000000016213556316250026441 0ustar zuulzuul00000000000000{ "service": { "binary": "nova-compute", "host": "host1", "status": "disabled" } }nova-17.0.13/doc/api_samples/os-services/v2.11/services-list-get-resp.json0000664000175000017500000000250313556316250026144 0ustar zuulzuul00000000000000{ "services": [ { "id": 1, "binary": "nova-scheduler", "disabled_reason": "test1", "host": "host1", "state": "up", "status": "disabled", "updated_at": "2012-10-29T13:42:02.000000", "forced_down": false, "zone": "internal" }, { "id": 2, "binary": "nova-compute", "disabled_reason": "test2", "host": "host1", "state": "up", "status": "disabled", "updated_at": "2012-10-29T13:42:05.000000", "forced_down": false, "zone": "nova" }, { "id": 3, "binary": "nova-scheduler", "disabled_reason": null, "host": "host2", "state": "down", "status": "enabled", "updated_at": "2012-09-19T06:55:34.000000", "forced_down": false, "zone": "internal" }, { "id": 4, "binary": "nova-compute", "disabled_reason": "test4", "host": "host2", "state": "down", "status": "disabled", "updated_at": "2012-09-18T08:03:38.000000", "forced_down": false, "zone": "nova" } ] } nova-17.0.13/doc/api_samples/os-services/v2.11/service-disable-log-put-resp.json0000664000175000017500000000022613556316250027221 0ustar zuulzuul00000000000000{ "service": { "binary": "nova-compute", "disabled_reason": "test2", "host": "host1", "status": "disabled" } }nova-17.0.13/doc/api_samples/os-services/v2.11/service-force-down-put-req.json0000664000175000017500000000011713556316250026717 0ustar zuulzuul00000000000000{ "host": "host1", "binary": "nova-compute", "forced_down": true } nova-17.0.13/doc/api_samples/os-services/v2.11/service-disable-log-put-req.json0000664000175000017500000000012513556316250027035 0ustar zuulzuul00000000000000{ "host": "host1", "binary": "nova-compute", "disabled_reason": "test2" }nova-17.0.13/doc/api_samples/os-services/service-disable-log-put-req.json0000664000175000017500000000012513556316250026266 0ustar zuulzuul00000000000000{ "host": "host1", "binary": "nova-compute", "disabled_reason": "test2" }nova-17.0.13/doc/api_samples/os-simple-tenant-usage/0000775000175000017500000000000013556316574022232 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/os-simple-tenant-usage/v2.40/0000775000175000017500000000000013556316574023003 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/os-simple-tenant-usage/v2.40/simple-tenant-usage-get-detail.json0000664000175000017500000000245313556316250031570 0ustar zuulzuul00000000000000{ "tenant_usages": [ { "start": "2012-10-08T20:10:44.587336", "stop": "2012-10-08T21:10:44.587336", "tenant_id": "6f70656e737461636b20342065766572", "total_hours": 1.0, "total_local_gb_usage": 1.0, "total_memory_mb_usage": 512.0, "total_vcpus_usage": 1.0, "server_usages": [ { "ended_at": null, "flavor": "m1.tiny", "hours": 1.0, "instance_id": "1f1deceb-17b5-4c04-84c7-e0d4499c8fe0", "local_gb": 1, "memory_mb": 512, "name": "instance-2", "started_at": "2012-10-08T20:10:44.541277", "state": "active", "tenant_id": "6f70656e737461636b20342065766572", "uptime": 3600, "vcpus": 1 } ] } ], "tenant_usages_links": [ { "href": "http://openstack.example.com/v2.1/6f70656e737461636b20342065766572/os-simple-tenant-usage?detailed=1&end=2016-10-12+18%3A22%3A04.868106&limit=1&marker=1f1deceb-17b5-4c04-84c7-e0d4499c8fe0&start=2016-10-12+18%3A22%3A04.868106", "rel": "next" } ] } nova-17.0.13/doc/api_samples/os-simple-tenant-usage/v2.40/simple-tenant-usage-get-all.json0000664000175000017500000000474513556316250031104 0ustar zuulzuul00000000000000{ "tenant_usages": [ { "server_usages": [ { "ended_at": null, "flavor": "m1.tiny", "hours": 1.0, "instance_id": "1f1deceb-17b5-4c04-84c7-e0d4499c8f06", "local_gb": 1, "memory_mb": 512, "name": "instance-3", "started_at": "2018-10-09T11:29:04.166194", "state": "active", "tenant_id": "0000000e737461636b20342065000000", "uptime": 3600, "vcpus": 1 } ], "start": "2018-10-09T11:29:04.166194", "stop": "2018-10-09T12:29:04.166194", "tenant_id": "0000000e737461636b20342065000000", "total_hours": 1.0, "total_local_gb_usage": 1.0, "total_memory_mb_usage": 512.0, "total_vcpus_usage": 1.0 }, { "server_usages": [ { "ended_at": null, "flavor": "m1.tiny", "hours": 1.0, "instance_id": "1f1deceb-17b5-4c04-84c7-e0d4499c8f00", "local_gb": 1, "memory_mb": 512, "name": "instance-1", "started_at": "2018-10-09T11:29:04.166194", "state": "active", "tenant_id": "6f70656e737461636b20342065766572", "uptime": 3600, "vcpus": 1 }, { "ended_at": null, "flavor": "m1.tiny", "hours": 1.0, "instance_id": "1f1deceb-17b5-4c04-84c7-e0d4499c8f03", "local_gb": 1, "memory_mb": 512, "name": "instance-2", "started_at": "2018-10-09T11:29:04.166194", "state": "active", "tenant_id": "6f70656e737461636b20342065766572", "uptime": 3600, "vcpus": 1 } ], "start": "2018-10-09T11:29:04.166194", "stop": "2018-10-09T12:29:04.166194", "tenant_id": "6f70656e737461636b20342065766572", "total_hours": 2.0, "total_local_gb_usage": 2.0, "total_memory_mb_usage": 1024.0, "total_vcpus_usage": 2.0 } ] }nova-17.0.13/doc/api_samples/os-simple-tenant-usage/v2.40/simple-tenant-usage-get.json0000664000175000017500000000126013556316250030323 0ustar zuulzuul00000000000000{ "tenant_usages": [ { "start": "2012-10-08T21:10:44.587336", "stop": "2012-10-08T22:10:44.587336", "tenant_id": "6f70656e737461636b20342065766572", "total_hours": 1.0, "total_local_gb_usage": 1.0, "total_memory_mb_usage": 512.0, "total_vcpus_usage": 1.0 } ], "tenant_usages_links": [ { "href": "http://openstack.example.com/v2.1/6f70656e737461636b20342065766572/os-simple-tenant-usage?end=2016-10-12+18%3A22%3A04.868106&limit=1&marker=1f1deceb-17b5-4c04-84c7-e0d4499c8fe0&start=2016-10-12+18%3A22%3A04.868106", "rel": "next" } ] } nova-17.0.13/doc/api_samples/os-simple-tenant-usage/v2.40/simple-tenant-usage-get-specific.json0000664000175000017500000000231713556316250032112 0ustar zuulzuul00000000000000{ "tenant_usage": { "server_usages": [ { "ended_at": null, "flavor": "m1.tiny", "hours": 1.0, "instance_id": "1f1deceb-17b5-4c04-84c7-e0d4499c8fe0", "local_gb": 1, "memory_mb": 512, "name": "instance-2", "started_at": "2012-10-08T20:10:44.541277", "state": "active", "tenant_id": "6f70656e737461636b20342065766572", "uptime": 3600, "vcpus": 1 } ], "start": "2012-10-08T20:10:44.587336", "stop": "2012-10-08T21:10:44.587336", "tenant_id": "6f70656e737461636b20342065766572", "total_hours": 1.0, "total_local_gb_usage": 1.0, "total_memory_mb_usage": 512.0, "total_vcpus_usage": 1.0 }, "tenant_usage_links": [ { "href": "http://openstack.example.com/v2.1/6f70656e737461636b20342065766572/os-simple-tenant-usage/6f70656e737461636b20342065766572?end=2016-10-12+18%3A22%3A04.868106&limit=1&marker=1f1deceb-17b5-4c04-84c7-e0d4499c8fe0&start=2016-10-12+18%3A22%3A04.868106", "rel": "next" } ] } nova-17.0.13/doc/api_samples/os-simple-tenant-usage/simple-tenant-usage-get-detail.json0000664000175000017500000000174613556316250031023 0ustar zuulzuul00000000000000{ "tenant_usages": [ { "start": "2012-10-08T20:10:44.587336", "stop": "2012-10-08T21:10:44.587336", "tenant_id": "6f70656e737461636b20342065766572", "total_hours": 1.0, "total_local_gb_usage": 1.0, "total_memory_mb_usage": 512.0, "total_vcpus_usage": 1.0, "server_usages": [ { "ended_at": null, "flavor": "m1.tiny", "hours": 1.0, "instance_id": "1f1deceb-17b5-4c04-84c7-e0d4499c8fe0", "local_gb": 1, "memory_mb": 512, "name": "new-server-test", "started_at": "2012-10-08T20:10:44.541277", "state": "active", "tenant_id": "6f70656e737461636b20342065766572", "uptime": 3600, "vcpus": 1 } ] } ] } nova-17.0.13/doc/api_samples/os-simple-tenant-usage/simple-tenant-usage-get.json0000664000175000017500000000056113556316250027555 0ustar zuulzuul00000000000000{ "tenant_usages": [ { "start": "2012-10-08T21:10:44.587336", "stop": "2012-10-08T22:10:44.587336", "tenant_id": "6f70656e737461636b20342065766572", "total_hours": 1.0, "total_local_gb_usage": 1.0, "total_memory_mb_usage": 512.0, "total_vcpus_usage": 1.0 } ] } nova-17.0.13/doc/api_samples/os-simple-tenant-usage/simple-tenant-usage-get-specific.json0000664000175000017500000000156513556316250031345 0ustar zuulzuul00000000000000{ "tenant_usage": { "server_usages": [ { "ended_at": null, "flavor": "m1.tiny", "hours": 1.0, "instance_id": "1f1deceb-17b5-4c04-84c7-e0d4499c8fe0", "local_gb": 1, "memory_mb": 512, "name": "new-server-test", "started_at": "2012-10-08T20:10:44.541277", "state": "active", "tenant_id": "6f70656e737461636b20342065766572", "uptime": 3600, "vcpus": 1 } ], "start": "2012-10-08T20:10:44.587336", "stop": "2012-10-08T21:10:44.587336", "tenant_id": "6f70656e737461636b20342065766572", "total_hours": 1.0, "total_local_gb_usage": 1.0, "total_memory_mb_usage": 512.0, "total_vcpus_usage": 1.0 } } nova-17.0.13/doc/api_samples/consoles/0000775000175000017500000000000013556316574017556 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/consoles/consoles-list-get-resp.json0000664000175000017500000000022613556316250024762 0ustar zuulzuul00000000000000{ "consoles": [ { "console": { "console_type": "fake", "id": 1 } } ] }nova-17.0.13/doc/api_samples/consoles/consoles-get-resp.json0000664000175000017500000000030613556316250024010 0ustar zuulzuul00000000000000{ "console": { "console_type": "fake", "host": "fake", "id": 1, "instance_name": "instance-00000001", "password": "C4jBpJ6x", "port": 5999 } }nova-17.0.13/doc/api_samples/os-agents/0000775000175000017500000000000013556316574017631 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/os-agents/agents-get-resp.json0000664000175000017500000000046713556316250023527 0ustar zuulzuul00000000000000{ "agents": [ { "agent_id": 1, "architecture": "x86", "hypervisor": "xen", "md5hash": "add6bb58e139be103324d04d82d8f545", "os": "os", "url": "http://example.com/path/to/resource", "version": "8.0" } ] } nova-17.0.13/doc/api_samples/os-agents/agent-update-put-req.json0000664000175000017500000000023613556316250024465 0ustar zuulzuul00000000000000{ "para": { "url": "http://example.com/path/to/resource", "md5hash": "add6bb58e139be103324d04d82d8f545", "version": "7.0" } } nova-17.0.13/doc/api_samples/os-agents/agent-update-put-resp.json0000664000175000017500000000027013556316250024645 0ustar zuulzuul00000000000000{ "agent": { "agent_id": "1", "md5hash": "add6bb58e139be103324d04d82d8f545", "url": "http://example.com/path/to/resource", "version": "7.0" } } nova-17.0.13/doc/api_samples/os-agents/agent-post-resp.json0000664000175000017500000000040613556316250023543 0ustar zuulzuul00000000000000{ "agent": { "agent_id": 1, "architecture": "x86", "hypervisor": "xen", "md5hash": "add6bb58e139be103324d04d82d8f545", "os": "os", "url": "http://example.com/path/to/resource", "version": "8.0" } } nova-17.0.13/doc/api_samples/os-agents/agent-post-req.json0000664000175000017500000000035713556316250023366 0ustar zuulzuul00000000000000{ "agent": { "hypervisor": "xen", "os": "os", "architecture": "x86", "version": "8.0", "md5hash": "add6bb58e139be103324d04d82d8f545", "url": "http://example.com/path/to/resource" } } nova-17.0.13/doc/api_samples/os-server-external-events/0000775000175000017500000000000013556316574023000 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/os-server-external-events/event-create-resp.json0000664000175000017500000000035413556316250027215 0ustar zuulzuul00000000000000{ "events": [ { "code": 200, "name": "network-changed", "server_uuid": "ff1df7b2-6772-45fd-9326-c0a3b05591c2", "status": "completed", "tag": "foo" } ] }nova-17.0.13/doc/api_samples/os-server-external-events/event-create-req.json0000664000175000017500000000031613556316250027031 0ustar zuulzuul00000000000000{ "events": [ { "name": "test-event", "tag": "foo", "status": "completed", "server_uuid": "3df201cf-2451-44f2-8d25-a4ca826fc1f3" } ] }nova-17.0.13/doc/api_samples/os-pause-server/0000775000175000017500000000000013556316574020771 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/os-pause-server/pause-server.json0000664000175000017500000000002513556316250024271 0ustar zuulzuul00000000000000{ "pause": null }nova-17.0.13/doc/api_samples/os-pause-server/unpause-server.json0000664000175000017500000000002713556316250024636 0ustar zuulzuul00000000000000{ "unpause": null }nova-17.0.13/doc/api_samples/os-cloudpipe/0000775000175000017500000000000013556316574020334 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/os-cloudpipe/cloud-pipe-update-req.json0000664000175000017500000000014013556316250025317 0ustar zuulzuul00000000000000{ "configure_project": { "vpn_ip": "192.168.1.1", "vpn_port": "2000" } }nova-17.0.13/doc/api_samples/os-cloudpipe/cloud-pipe-create-req.json0000664000175000017500000000013213556316250025301 0ustar zuulzuul00000000000000{ "cloudpipe": { "project_id": "059f21e3-c20e-4efc-9e7a-eba2ab3c6f9a" } } nova-17.0.13/doc/api_samples/os-cloudpipe/cloud-pipe-get-resp.json0000664000175000017500000000056413556316250025010 0ustar zuulzuul00000000000000{ "cloudpipes": [ { "created_at": "2012-11-27T17:18:01Z", "instance_id": "27deecdb-baa3-4a26-9c82-32994b815b01", "internal_ip": "192.168.0.3", "project_id": "fa1765bd-a352-49c7-a6b7-8ee108a3cb0c", "public_ip": "127.0.0.1", "public_port": 22, "state": "down" } ] } nova-17.0.13/doc/api_samples/os-cloudpipe/cloud-pipe-create-resp.json0000664000175000017500000000007513556316250025471 0ustar zuulzuul00000000000000{ "instance_id": "1e9b8425-34af-488e-b969-4d46f4a6382e" }nova-17.0.13/doc/api_samples/os-volumes/0000775000175000017500000000000013556316574020042 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/os-volumes/update-volume-req.json0000664000175000017500000000013613556316250024300 0ustar zuulzuul00000000000000{ "volumeAttachment": { "volumeId": "a26887c6-c47b-4654-abb5-dfadf7d3f805" } }nova-17.0.13/doc/api_samples/os-volumes/os-volumes-index-resp.json0000664000175000017500000000141413556316250025111 0ustar zuulzuul00000000000000{ "volumes": [ { "attachments": [ { "device": "/", "id": "a26887c6-c47b-4654-abb5-dfadf7d3f803", "serverId": "3912f2b4-c5ba-4aec-9165-872876fe202e", "volumeId": "a26887c6-c47b-4654-abb5-dfadf7d3f803" } ], "availabilityZone": "zone1:host1", "createdAt": "2013-02-19T20:01:40.274897", "displayDescription": "Volume Description", "displayName": "Volume Name", "id": "a26887c6-c47b-4654-abb5-dfadf7d3f803", "metadata": {}, "size": 100, "snapshotId": null, "status": "in-use", "volumeType": "Backup" } ] }nova-17.0.13/doc/api_samples/os-volumes/snapshots-show-resp.json0000664000175000017500000000041213556316250024670 0ustar zuulzuul00000000000000{ "snapshot": { "createdAt": "2013-02-25T16:27:54.724209", "displayDescription": "Default description", "displayName": "Default name", "id": "100", "size": 100, "status": "available", "volumeId": 12 } }nova-17.0.13/doc/api_samples/os-volumes/snapshots-list-resp.json0000664000175000017500000000156513556316250024675 0ustar zuulzuul00000000000000{ "snapshots": [ { "createdAt": "2013-02-25T16:27:54.684999", "displayDescription": "Default description", "displayName": "Default name", "id": 100, "size": 100, "status": "available", "volumeId": 12 }, { "createdAt": "2013-02-25T16:27:54.685005", "displayDescription": "Default description", "displayName": "Default name", "id": 101, "size": 100, "status": "available", "volumeId": 12 }, { "createdAt": "2013-02-25T16:27:54.685008", "displayDescription": "Default description", "displayName": "Default name", "id": 102, "size": 100, "status": "available", "volumeId": 12 } ] }nova-17.0.13/doc/api_samples/os-volumes/os-volumes-get-resp.json0000664000175000017500000000125713556316250024566 0ustar zuulzuul00000000000000{ "volume": { "attachments": [ { "device": "/", "id": "a26887c6-c47b-4654-abb5-dfadf7d3f803", "serverId": "3912f2b4-c5ba-4aec-9165-872876fe202e", "volumeId": "a26887c6-c47b-4654-abb5-dfadf7d3f803" } ], "availabilityZone": "zone1:host1", "createdAt": "2013-02-18T14:51:18.528085", "displayDescription": "Volume Description", "displayName": "Volume Name", "id": "a26887c6-c47b-4654-abb5-dfadf7d3f803", "metadata": {}, "size": 100, "snapshotId": null, "status": "in-use", "volumeType": "Backup" } }nova-17.0.13/doc/api_samples/os-volumes/v2.49/0000775000175000017500000000000013556316574020624 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/os-volumes/v2.49/attach-volume-to-server-resp.json0000664000175000017500000000035713556316250027157 0ustar zuulzuul00000000000000{ "volumeAttachment": { "device": "/dev/sdb", "id": "a26887c6-c47b-4654-abb5-dfadf7d3f803", "serverId": "84ffbfa0-daf4-4e23-bf4b-dc532c459d4e", "volumeId": "a26887c6-c47b-4654-abb5-dfadf7d3f803" } } nova-17.0.13/doc/api_samples/os-volumes/v2.49/attach-volume-to-server-req.json0000664000175000017500000000016513556316250026772 0ustar zuulzuul00000000000000{ "volumeAttachment": { "volumeId": "a26887c6-c47b-4654-abb5-dfadf7d3f803", "tag": "foo" } } nova-17.0.13/doc/api_samples/os-volumes/os-volumes-post-resp.json0000664000175000017500000000125713556316250024774 0ustar zuulzuul00000000000000{ "volume": { "attachments": [ { "device": "/", "id": "a26887c6-c47b-4654-abb5-dfadf7d3f803", "serverId": "3912f2b4-c5ba-4aec-9165-872876fe202e", "volumeId": "a26887c6-c47b-4654-abb5-dfadf7d3f803" } ], "availabilityZone": "zone1:host1", "createdAt": "2013-02-18T14:51:17.970024", "displayDescription": "Volume Description", "displayName": "Volume Name", "id": "a26887c6-c47b-4654-abb5-dfadf7d3f803", "metadata": {}, "size": 100, "snapshotId": null, "status": "in-use", "volumeType": "Backup" } }nova-17.0.13/doc/api_samples/os-volumes/list-volume-attachments-resp.json0000664000175000017500000000100313556316250026456 0ustar zuulzuul00000000000000{ "volumeAttachments": [ { "device": "/dev/sdd", "id": "a26887c6-c47b-4654-abb5-dfadf7d3f803", "serverId": "4d8c3732-a248-40ed-bebc-539a6ffd25c0", "volumeId": "a26887c6-c47b-4654-abb5-dfadf7d3f803" }, { "device": "/dev/sdc", "id": "a26887c6-c47b-4654-abb5-dfadf7d3f804", "serverId": "4d8c3732-a248-40ed-bebc-539a6ffd25c0", "volumeId": "a26887c6-c47b-4654-abb5-dfadf7d3f804" } ] }nova-17.0.13/doc/api_samples/os-volumes/attach-volume-to-server-resp.json0000664000175000017500000000035613556316250026374 0ustar zuulzuul00000000000000{ "volumeAttachment": { "device": "/dev/vdd", "id": "a26887c6-c47b-4654-abb5-dfadf7d3f803", "serverId": "0c92f3f6-c253-4c9b-bd43-e880a8d2eb0a", "volumeId": "a26887c6-c47b-4654-abb5-dfadf7d3f803" } }nova-17.0.13/doc/api_samples/os-volumes/volume-attachment-detail-resp.json0000664000175000017500000000035613556316250026574 0ustar zuulzuul00000000000000{ "volumeAttachment": { "device": "/dev/sdd", "id": "a26887c6-c47b-4654-abb5-dfadf7d3f803", "serverId": "2390fb4d-1693-45d7-b309-e29c4af16538", "volumeId": "a26887c6-c47b-4654-abb5-dfadf7d3f803" } }nova-17.0.13/doc/api_samples/os-volumes/snapshot-create-req.json0000664000175000017500000000030313556316250024605 0ustar zuulzuul00000000000000{ "snapshot": { "display_name": "snap-001", "display_description": "Daily backup", "volume_id": "521752a6-acf6-4b2d-bc7a-119f9148cd8c", "force": false } }nova-17.0.13/doc/api_samples/os-volumes/os-volumes-detail-resp.json0000664000175000017500000000141513556316250025245 0ustar zuulzuul00000000000000{ "volumes": [ { "attachments": [ { "device": "/", "id": "a26887c6-c47b-4654-abb5-dfadf7d3f803", "serverId": "3912f2b4-c5ba-4aec-9165-872876fe202e", "volumeId": "a26887c6-c47b-4654-abb5-dfadf7d3f803" } ], "availabilityZone": "zone1:host1", "createdAt": "1999-01-01T01:01:01.000000", "displayDescription": "Volume Description", "displayName": "Volume Name", "id": "a26887c6-c47b-4654-abb5-dfadf7d3f803", "metadata": {}, "size": 100, "snapshotId": null, "status": "in-use", "volumeType": "Backup" } ] } nova-17.0.13/doc/api_samples/os-volumes/os-volumes-post-req.json0000664000175000017500000000026613556316250024611 0ustar zuulzuul00000000000000{ "volume": { "availability_zone": "zone1:host1", "display_name": "Volume Name", "display_description": "Volume Description", "size": 100 } } nova-17.0.13/doc/api_samples/os-volumes/snapshots-detail-resp.json0000664000175000017500000000156513556316250025164 0ustar zuulzuul00000000000000{ "snapshots": [ { "createdAt": "2013-02-25T16:27:54.671372", "displayDescription": "Default description", "displayName": "Default name", "id": 100, "size": 100, "status": "available", "volumeId": 12 }, { "createdAt": "2013-02-25T16:27:54.671378", "displayDescription": "Default description", "displayName": "Default name", "id": 101, "size": 100, "status": "available", "volumeId": 12 }, { "createdAt": "2013-02-25T16:27:54.671381", "displayDescription": "Default description", "displayName": "Default name", "id": 102, "size": 100, "status": "available", "volumeId": 12 } ] }nova-17.0.13/doc/api_samples/os-volumes/attach-volume-to-server-req.json0000664000175000017500000000017413556316250026210 0ustar zuulzuul00000000000000{ "volumeAttachment": { "volumeId": "a26887c6-c47b-4654-abb5-dfadf7d3f803", "device": "/dev/vdd" } }nova-17.0.13/doc/api_samples/os-volumes/snapshot-create-resp.json0000664000175000017500000000044113556316250024772 0ustar zuulzuul00000000000000{ "snapshot": { "createdAt": "2013-02-25T16:27:54.680544", "displayDescription": "Daily backup", "displayName": "snap-001", "id": 100, "size": 100, "status": "available", "volumeId": "521752a6-acf6-4b2d-bc7a-119f9148cd8c" } }nova-17.0.13/doc/api_samples/os-hypervisors/0000775000175000017500000000000013556316574020745 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/os-hypervisors/hypervisors-list-resp.json0000664000175000017500000000026313556316250026145 0ustar zuulzuul00000000000000{ "hypervisors": [ { "hypervisor_hostname": "fake-mini", "id": 1, "state": "up", "status": "enabled" } ] } nova-17.0.13/doc/api_samples/os-hypervisors/hypervisors-uptime-resp.json0000664000175000017500000000035213556316250026474 0ustar zuulzuul00000000000000{ "hypervisor": { "hypervisor_hostname": "fake-mini", "id": 1, "state": "up", "status": "enabled", "uptime": " 08:32:11 up 93 days, 18:25, 12 users, load average: 0.20, 0.12, 0.14" } } nova-17.0.13/doc/api_samples/os-hypervisors/hypervisors-statistics-resp.json0000664000175000017500000000055713556316250027372 0ustar zuulzuul00000000000000{ "hypervisor_statistics": { "count": 1, "current_workload": 0, "disk_available_least": 0, "free_disk_gb": 1028, "free_ram_mb": 7680, "local_gb": 1028, "local_gb_used": 0, "memory_mb": 8192, "memory_mb_used": 512, "running_vms": 0, "vcpus": 2, "vcpus_used": 0 } }nova-17.0.13/doc/api_samples/os-hypervisors/hypervisors-without-servers-resp.json0000664000175000017500000000026313556316250030364 0ustar zuulzuul00000000000000{ "hypervisors": [ { "hypervisor_hostname": "fake-mini", "id": 1, "state": "up", "status": "enabled" } ] } nova-17.0.13/doc/api_samples/os-hypervisors/hypervisors-detail-resp.json0000664000175000017500000000175613556316250026444 0ustar zuulzuul00000000000000{ "hypervisors": [ { "cpu_info": "{\"arch\": \"x86_64\", \"model\": \"Nehalem\", \"vendor\": \"Intel\", \"features\": [\"pge\", \"clflush\"], \"topology\": {\"cores\": 1, \"threads\": 1, \"sockets\": 4}}", "current_workload": 0, "status": "enabled", "state": "up", "disk_available_least": 0, "host_ip": "1.1.1.1", "free_disk_gb": 1028, "free_ram_mb": 7680, "hypervisor_hostname": "fake-mini", "hypervisor_type": "fake", "hypervisor_version": 1000, "id": 1, "local_gb": 1028, "local_gb_used": 0, "memory_mb": 8192, "memory_mb_used": 512, "running_vms": 0, "service": { "host": "e6a37ee802d74863ab8b91ade8f12a67", "id": 2, "disabled_reason": null }, "vcpus": 2, "vcpus_used": 0 } ] } nova-17.0.13/doc/api_samples/os-hypervisors/v2.33/0000775000175000017500000000000013556316574021520 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/os-hypervisors/v2.33/hypervisors-list-resp.json0000664000175000017500000000056613556316250026726 0ustar zuulzuul00000000000000{ "hypervisors": [ { "hypervisor_hostname": "host1", "id": 2, "state": "up", "status": "enabled" } ], "hypervisors_links": [ { "href": "http://openstack.example.com/v2.1/6f70656e737461636b20342065766572/hypervisors?limit=1&marker=2", "rel": "next" } ] } nova-17.0.13/doc/api_samples/os-hypervisors/v2.33/hypervisors-detail-resp.json0000664000175000017500000000254713556316250027216 0ustar zuulzuul00000000000000{ "hypervisors": [ { "cpu_info": { "arch": "x86_64", "model": "Nehalem", "vendor": "Intel", "features": [ "pge", "clflush" ], "topology": { "cores": 1, "threads": 1, "sockets": 4 } }, "current_workload": 0, "status": "enabled", "state": "up", "disk_available_least": 0, "host_ip": "1.1.1.1", "free_disk_gb": 1028, "free_ram_mb": 7680, "hypervisor_hostname": "host1", "hypervisor_type": "fake", "hypervisor_version": 1000, "id": 2, "local_gb": 1028, "local_gb_used": 0, "memory_mb": 8192, "memory_mb_used": 512, "running_vms": 0, "service": { "host": "host1", "id": 7, "disabled_reason": null }, "vcpus": 2, "vcpus_used": 0 } ], "hypervisors_links": [ { "href": "http://openstack.example.com/v2.1/6f70656e737461636b20342065766572/hypervisors/detail?limit=1&marker=2", "rel": "next" } ] } nova-17.0.13/doc/api_samples/os-hypervisors/hypervisors-with-servers-resp.json0000664000175000017500000000100213556316250027624 0ustar zuulzuul00000000000000{ "hypervisors": [ { "hypervisor_hostname": "fake-mini", "id": 1, "state": "up", "status": "enabled", "servers": [ { "name": "test_server1", "uuid": "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa" }, { "name": "test_server2", "uuid": "bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb" } ] } ] } nova-17.0.13/doc/api_samples/os-hypervisors/v2.28/0000775000175000017500000000000013556316574021524 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/os-hypervisors/v2.28/hypervisors-list-resp.json0000664000175000017500000000026313556316250026724 0ustar zuulzuul00000000000000{ "hypervisors": [ { "hypervisor_hostname": "fake-mini", "id": 1, "state": "up", "status": "enabled" } ] } nova-17.0.13/doc/api_samples/os-hypervisors/v2.28/hypervisors-uptime-resp.json0000664000175000017500000000035213556316250027253 0ustar zuulzuul00000000000000{ "hypervisor": { "hypervisor_hostname": "fake-mini", "id": 1, "state": "up", "status": "enabled", "uptime": " 08:32:11 up 93 days, 18:25, 12 users, load average: 0.20, 0.12, 0.14" } } nova-17.0.13/doc/api_samples/os-hypervisors/v2.28/hypervisors-statistics-resp.json0000664000175000017500000000055713556316250030151 0ustar zuulzuul00000000000000{ "hypervisor_statistics": { "count": 1, "current_workload": 0, "disk_available_least": 0, "free_disk_gb": 1028, "free_ram_mb": 7680, "local_gb": 1028, "local_gb_used": 0, "memory_mb": 8192, "memory_mb_used": 512, "running_vms": 0, "vcpus": 2, "vcpus_used": 0 } }nova-17.0.13/doc/api_samples/os-hypervisors/v2.28/hypervisors-without-servers-resp.json0000664000175000017500000000026313556316250031143 0ustar zuulzuul00000000000000{ "hypervisors": [ { "hypervisor_hostname": "fake-mini", "id": 1, "state": "up", "status": "enabled" } ] } nova-17.0.13/doc/api_samples/os-hypervisors/v2.28/hypervisors-detail-resp.json0000664000175000017500000000227013556316250027213 0ustar zuulzuul00000000000000{ "hypervisors": [ { "cpu_info": { "arch": "x86_64", "model": "Nehalem", "vendor": "Intel", "features": [ "pge", "clflush" ], "topology": { "cores": 1, "threads": 1, "sockets": 4 } }, "current_workload": 0, "status": "enabled", "state": "up", "disk_available_least": 0, "host_ip": "1.1.1.1", "free_disk_gb": 1028, "free_ram_mb": 7680, "hypervisor_hostname": "fake-mini", "hypervisor_type": "fake", "hypervisor_version": 1000, "id": 1, "local_gb": 1028, "local_gb_used": 0, "memory_mb": 8192, "memory_mb_used": 512, "running_vms": 0, "service": { "host": "e6a37ee802d74863ab8b91ade8f12a67", "id": 2, "disabled_reason": null }, "vcpus": 2, "vcpus_used": 0 } ] } nova-17.0.13/doc/api_samples/os-hypervisors/v2.28/hypervisors-with-servers-resp.json0000664000175000017500000000100213556316250030403 0ustar zuulzuul00000000000000{ "hypervisors": [ { "hypervisor_hostname": "fake-mini", "id": 1, "state": "up", "status": "enabled", "servers": [ { "name": "test_server1", "uuid": "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa" }, { "name": "test_server2", "uuid": "bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb" } ] } ] } nova-17.0.13/doc/api_samples/os-hypervisors/v2.28/hypervisors-show-resp.json0000664000175000017500000000201713556316250026730 0ustar zuulzuul00000000000000{ "hypervisor": { "cpu_info": { "arch": "x86_64", "model": "Nehalem", "vendor": "Intel", "features": [ "pge", "clflush" ], "topology": { "cores": 1, "threads": 1, "sockets": 4 } }, "state": "up", "status": "enabled", "current_workload": 0, "disk_available_least": 0, "host_ip": "1.1.1.1", "free_disk_gb": 1028, "free_ram_mb": 7680, "hypervisor_hostname": "fake-mini", "hypervisor_type": "fake", "hypervisor_version": 1000, "id": 1, "local_gb": 1028, "local_gb_used": 0, "memory_mb": 8192, "memory_mb_used": 512, "running_vms": 0, "service": { "host": "043b3cacf6f34c90a7245151fc8ebcda", "id": 2, "disabled_reason": null }, "vcpus": 2, "vcpus_used": 0 } } nova-17.0.13/doc/api_samples/os-hypervisors/v2.28/hypervisors-search-resp.json0000664000175000017500000000026313556316250027216 0ustar zuulzuul00000000000000{ "hypervisors": [ { "hypervisor_hostname": "fake-mini", "id": 1, "state": "up", "status": "enabled" } ] } nova-17.0.13/doc/api_samples/os-hypervisors/v2.53/0000775000175000017500000000000013556316574021522 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/os-hypervisors/v2.53/hypervisors-list-resp.json0000664000175000017500000000070213556316250026720 0ustar zuulzuul00000000000000{ "hypervisors": [ { "hypervisor_hostname": "fake-mini", "id": "1bb62a04-c576-402c-8147-9e89757a09e3", "state": "up", "status": "enabled" } ], "hypervisors_links": [ { "href": "http://openstack.example.com/v2.1/6f70656e737461636b20342065766572/hypervisors?limit=1&marker=1bb62a04-c576-402c-8147-9e89757a09e3", "rel": "next" } ] } nova-17.0.13/doc/api_samples/os-hypervisors/v2.53/hypervisors-uptime-resp.json0000664000175000017500000000041713556316250027253 0ustar zuulzuul00000000000000{ "hypervisor": { "hypervisor_hostname": "fake-mini", "id": "b1e43b5f-eec1-44e0-9f10-7b4945c0226d", "state": "up", "status": "enabled", "uptime": " 08:32:11 up 93 days, 18:25, 12 users, load average: 0.20, 0.12, 0.14" } } nova-17.0.13/doc/api_samples/os-hypervisors/v2.53/hypervisors-statistics-resp.json0000664000175000017500000000055713556316250030147 0ustar zuulzuul00000000000000{ "hypervisor_statistics": { "count": 1, "current_workload": 0, "disk_available_least": 0, "free_disk_gb": 1028, "free_ram_mb": 7680, "local_gb": 1028, "local_gb_used": 0, "memory_mb": 8192, "memory_mb_used": 512, "running_vms": 0, "vcpus": 2, "vcpus_used": 0 } }nova-17.0.13/doc/api_samples/os-hypervisors/v2.53/hypervisors-detail-with-servers-resp.json0000664000175000017500000000306613556316250031655 0ustar zuulzuul00000000000000{ "hypervisors": [ { "cpu_info": { "arch": "x86_64", "model": "Nehalem", "vendor": "Intel", "features": [ "pge", "clflush" ], "topology": { "cores": 1, "threads": 1, "sockets": 4 } }, "current_workload": 0, "status": "enabled", "servers": [ { "name": "test_server1", "uuid": "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa" }, { "name": "test_server2", "uuid": "bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb" } ], "state": "up", "disk_available_least": 0, "host_ip": "1.1.1.1", "free_disk_gb": 1028, "free_ram_mb": 7680, "hypervisor_hostname": "fake-mini", "hypervisor_type": "fake", "hypervisor_version": 1000, "id": "b1e43b5f-eec1-44e0-9f10-7b4945c0226d", "local_gb": 1028, "local_gb_used": 0, "memory_mb": 8192, "memory_mb_used": 512, "running_vms": 0, "service": { "host": "host1", "id": "5d343e1d-938e-4284-b98b-6a2b5406ba76", "disabled_reason": null }, "vcpus": 2, "vcpus_used": 0 } ] } nova-17.0.13/doc/api_samples/os-hypervisors/v2.53/hypervisors-without-servers-resp.json0000664000175000017500000000033013556316250031134 0ustar zuulzuul00000000000000{ "hypervisors": [ { "hypervisor_hostname": "fake-mini", "id": "b1e43b5f-eec1-44e0-9f10-7b4945c0226d", "state": "up", "status": "enabled" } ] } nova-17.0.13/doc/api_samples/os-hypervisors/v2.53/hypervisors-detail-resp.json0000664000175000017500000000272413556316250027215 0ustar zuulzuul00000000000000{ "hypervisors": [ { "cpu_info": { "arch": "x86_64", "model": "Nehalem", "vendor": "Intel", "features": [ "pge", "clflush" ], "topology": { "cores": 1, "threads": 1, "sockets": 4 } }, "current_workload": 0, "status": "enabled", "state": "up", "disk_available_least": 0, "host_ip": "1.1.1.1", "free_disk_gb": 1028, "free_ram_mb": 7680, "hypervisor_hostname": "host2", "hypervisor_type": "fake", "hypervisor_version": 1000, "id": "1bb62a04-c576-402c-8147-9e89757a09e3", "local_gb": 1028, "local_gb_used": 0, "memory_mb": 8192, "memory_mb_used": 512, "running_vms": 0, "service": { "host": "host1", "id": "62f62f6e-a713-4cbe-87d3-3ecf8a1e0f8d", "disabled_reason": null }, "vcpus": 2, "vcpus_used": 0 } ], "hypervisors_links": [ { "href": "http://openstack.example.com/v2.1/6f70656e737461636b20342065766572/hypervisors/detail?limit=1&marker=1bb62a04-c576-402c-8147-9e89757a09e3", "rel": "next" } ] } nova-17.0.13/doc/api_samples/os-hypervisors/v2.53/hypervisors-with-servers-resp.json0000664000175000017500000000104713556316250030412 0ustar zuulzuul00000000000000{ "hypervisors": [ { "hypervisor_hostname": "fake-mini", "id": "b1e43b5f-eec1-44e0-9f10-7b4945c0226d", "state": "up", "status": "enabled", "servers": [ { "name": "test_server1", "uuid": "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa" }, { "name": "test_server2", "uuid": "bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb" } ] } ] } nova-17.0.13/doc/api_samples/os-hypervisors/v2.53/hypervisors-show-with-servers-resp.json0000664000175000017500000000260013556316250031364 0ustar zuulzuul00000000000000{ "hypervisor": { "cpu_info": { "arch": "x86_64", "model": "Nehalem", "vendor": "Intel", "features": [ "pge", "clflush" ], "topology": { "cores": 1, "threads": 1, "sockets": 4 } }, "state": "up", "status": "enabled", "servers": [ { "name": "test_server1", "uuid": "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa" }, { "name": "test_server2", "uuid": "bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb" } ], "current_workload": 0, "disk_available_least": 0, "host_ip": "1.1.1.1", "free_disk_gb": 1028, "free_ram_mb": 7680, "hypervisor_hostname": "fake-mini", "hypervisor_type": "fake", "hypervisor_version": 1000, "id": "b1e43b5f-eec1-44e0-9f10-7b4945c0226d", "local_gb": 1028, "local_gb_used": 0, "memory_mb": 8192, "memory_mb_used": 512, "running_vms": 0, "service": { "host": "043b3cacf6f34c90a7245151fc8ebcda", "id": "5d343e1d-938e-4284-b98b-6a2b5406ba76", "disabled_reason": null }, "vcpus": 2, "vcpus_used": 0 } } nova-17.0.13/doc/api_samples/os-hypervisors/v2.53/hypervisors-show-resp.json0000664000175000017500000000213113556316250026723 0ustar zuulzuul00000000000000{ "hypervisor": { "cpu_info": { "arch": "x86_64", "model": "Nehalem", "vendor": "Intel", "features": [ "pge", "clflush" ], "topology": { "cores": 1, "threads": 1, "sockets": 4 } }, "state": "up", "status": "enabled", "current_workload": 0, "disk_available_least": 0, "host_ip": "1.1.1.1", "free_disk_gb": 1028, "free_ram_mb": 7680, "hypervisor_hostname": "fake-mini", "hypervisor_type": "fake", "hypervisor_version": 1000, "id": "b1e43b5f-eec1-44e0-9f10-7b4945c0226d", "local_gb": 1028, "local_gb_used": 0, "memory_mb": 8192, "memory_mb_used": 512, "running_vms": 0, "service": { "host": "043b3cacf6f34c90a7245151fc8ebcda", "id": "5d343e1d-938e-4284-b98b-6a2b5406ba76", "disabled_reason": null }, "vcpus": 2, "vcpus_used": 0 } } nova-17.0.13/doc/api_samples/os-hypervisors/v2.53/hypervisors-search-resp.json0000664000175000017500000000033013556316250027207 0ustar zuulzuul00000000000000{ "hypervisors": [ { "hypervisor_hostname": "fake-mini", "id": "b1e43b5f-eec1-44e0-9f10-7b4945c0226d", "state": "up", "status": "enabled" } ] } nova-17.0.13/doc/api_samples/os-hypervisors/hypervisors-show-resp.json0000664000175000017500000000157113556316250026155 0ustar zuulzuul00000000000000{ "hypervisor": { "cpu_info": "{\"arch\": \"x86_64\", \"model\": \"Nehalem\", \"vendor\": \"Intel\", \"features\": [\"pge\", \"clflush\"], \"topology\": {\"cores\": 1, \"threads\": 1, \"sockets\": 4}}", "state": "up", "status": "enabled", "current_workload": 0, "disk_available_least": 0, "host_ip": "1.1.1.1", "free_disk_gb": 1028, "free_ram_mb": 7680, "hypervisor_hostname": "fake-mini", "hypervisor_type": "fake", "hypervisor_version": 1000, "id": 1, "local_gb": 1028, "local_gb_used": 0, "memory_mb": 8192, "memory_mb_used": 512, "running_vms": 0, "service": { "host": "043b3cacf6f34c90a7245151fc8ebcda", "id": 2, "disabled_reason": null }, "vcpus": 2, "vcpus_used": 0 } } nova-17.0.13/doc/api_samples/os-hypervisors/hypervisors-search-resp.json0000664000175000017500000000026313556316250026437 0ustar zuulzuul00000000000000{ "hypervisors": [ { "hypervisor_hostname": "fake-mini", "id": 1, "state": "up", "status": "enabled" } ] } nova-17.0.13/doc/api_samples/os-admin-actions/0000775000175000017500000000000013556316574021076 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/os-admin-actions/admin-actions-inject-network-info.json0000664000175000017500000000004213556316250030374 0ustar zuulzuul00000000000000{ "injectNetworkInfo": null } nova-17.0.13/doc/api_samples/os-admin-actions/admin-actions-reset-server-state.json0000664000175000017500000000007313556316250030250 0ustar zuulzuul00000000000000{ "os-resetState": { "state": "active" } } nova-17.0.13/doc/api_samples/os-admin-actions/admin-actions-reset-network.json0000664000175000017500000000003513556316250027313 0ustar zuulzuul00000000000000{ "resetNetwork": null } nova-17.0.13/doc/api_samples/os-server-tags/0000775000175000017500000000000013556316574020612 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/os-server-tags/v2.26/0000775000175000017500000000000013556316574021367 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/os-server-tags/v2.26/server-tags-index-resp.json0000664000175000017500000000004113556316250026562 0ustar zuulzuul00000000000000{ "tags": ["tag1", "tag2"] } nova-17.0.13/doc/api_samples/os-server-tags/v2.26/server-tags-show-details-resp.json0000664000175000017500000000602013556316250030061 0ustar zuulzuul00000000000000{ "server": { "tags": ["tag1", "tag2"], "accessIPv4": "1.2.3.4", "accessIPv6": "80fe::", "addresses": { "private": [ { "addr": "192.168.0.3", "OS-EXT-IPS-MAC:mac_addr": "aa:bb:cc:dd:ee:ff", "OS-EXT-IPS:type": "fixed", "version": 4 } ] }, "created": "2012-12-02T02:11:55Z", "flavor": { "id": "1", "links": [ { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/flavors/1", "rel": "bookmark" } ] }, "hostId": "c949ab4256cea23b6089b710aa2df48bf6577ed915278b62e33ad8bb", "id": "5046e2f2-3b33-4041-b3cf-e085f73e78e7", "image": { "id": "70a599e0-31e7-49b7-b260-868f441e862b", "links": [ { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/images/70a599e0-31e7-49b7-b260-868f441e862b", "rel": "bookmark" } ] }, "links": [ { "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/servers/5046e2f2-3b33-4041-b3cf-e085f73e78e7", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/servers/5046e2f2-3b33-4041-b3cf-e085f73e78e7", "rel": "bookmark" } ], "metadata": { "My Server Name": "Apache1" }, "name": "new-server-test", "progress": 0, "status": "ACTIVE", "tenant_id": "6f70656e737461636b20342065766572", "updated": "2012-12-02T02:11:55Z", "key_name": null, "user_id": "fake", "locked": false, "description": null, "config_drive": "", "OS-DCF:diskConfig": "AUTO", "OS-EXT-AZ:availability_zone": "nova", "OS-EXT-SRV-ATTR:host": "b8b357f7100d4391828f2177c922ef93", "OS-EXT-SRV-ATTR:hypervisor_hostname": "fake-mini", "OS-EXT-SRV-ATTR:instance_name": "instance-00000001", "OS-EXT-SRV-ATTR:reservation_id": "r-00000001", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:hostname": "fake-hostname", "OS-EXT-SRV-ATTR:root_device_name": "/dev/sda", "OS-EXT-SRV-ATTR:user_data": "IyEvYmluL2Jhc2gKL2Jpbi9zdQplY2hvICJJIGFtIGluIHlvdSEiCg==", "OS-EXT-STS:power_state": 1, "OS-EXT-STS:task_state": null, "OS-EXT-STS:vm_state": "active", "os-extended-volumes:volumes_attached": [], "OS-SRV-USG:launched_at": "2013-09-23T13:37:00.880302", "OS-SRV-USG:terminated_at": null, "security_groups": [ { "name": "default" } ], "host_status": "UP" } } nova-17.0.13/doc/api_samples/os-server-tags/v2.26/server-tags-put-all-req.json0000664000175000017500000000004113556316250026647 0ustar zuulzuul00000000000000{ "tags": ["tag1", "tag2"] } nova-17.0.13/doc/api_samples/os-server-tags/v2.26/server-tags-put-all-resp.json0000664000175000017500000000004113556316250027031 0ustar zuulzuul00000000000000{ "tags": ["tag1", "tag2"] } nova-17.0.13/doc/api_samples/os-server-tags/v2.26/servers-tags-details-resp.json0000664000175000017500000000655113556316250027277 0ustar zuulzuul00000000000000{ "servers": [ { "accessIPv4": "1.2.3.4", "accessIPv6": "80fe::", "addresses": { "private": [ { "addr": "192.168.0.3", "OS-EXT-IPS-MAC:mac_addr": "aa:bb:cc:dd:ee:ff", "OS-EXT-IPS:type": "fixed", "version": 4 } ] }, "created": "2013-09-03T04:01:32Z", "flavor": { "id": "1", "links": [ { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/flavors/1", "rel": "bookmark" } ] }, "hostId": "bcf92836fc9ed4203a75cb0337afc7f917d2be504164b995c2334b25", "id": "f5dc173b-6804-445a-a6d8-c705dad5b5eb", "image": { "id": "70a599e0-31e7-49b7-b260-868f441e862b", "links": [ { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/images/70a599e0-31e7-49b7-b260-868f441e862b", "rel": "bookmark" } ] }, "key_name": null, "links": [ { "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/servers/f5dc173b-6804-445a-a6d8-c705dad5b5eb", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/servers/f5dc173b-6804-445a-a6d8-c705dad5b5eb", "rel": "bookmark" } ], "metadata": { "My Server Name": "Apache1" }, "name": "new-server-test", "progress": 0, "status": "ACTIVE", "tenant_id": "6f70656e737461636b20342065766572", "updated": "2013-09-03T04:01:32Z", "user_id": "fake", "locked": false, "tags": ["tag1", "tag2"], "description": null, "config_drive": "", "OS-DCF:diskConfig": "AUTO", "OS-EXT-AZ:availability_zone": "nova", "OS-EXT-SRV-ATTR:host": "c3f14e9812ad496baf92ccfb3c61e15f", "OS-EXT-SRV-ATTR:hypervisor_hostname": "fake-mini", "OS-EXT-SRV-ATTR:instance_name": "instance-00000001", "OS-EXT-SRV-ATTR:reservation_id": "r-00000001", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:hostname": "fake-hostname", "OS-EXT-SRV-ATTR:root_device_name": "/dev/sda", "OS-EXT-SRV-ATTR:user_data": "IyEvYmluL2Jhc2gKL2Jpbi9zdQplY2hvICJJIGFtIGluIHlvdSEiCg==", "OS-EXT-STS:power_state": 1, "OS-EXT-STS:task_state": null, "OS-EXT-STS:vm_state": "active", "os-extended-volumes:volumes_attached": [], "OS-SRV-USG:launched_at": "2013-09-23T13:53:12.774549", "OS-SRV-USG:terminated_at": null, "security_groups": [ { "name": "default" } ], "host_status": "UP" } ] } nova-17.0.13/doc/api_samples/os-attach-interfaces/0000775000175000017500000000000013556316574021735 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/os-attach-interfaces/attach-interfaces-create-resp.json0000664000175000017500000000062213556316250030414 0ustar zuulzuul00000000000000{ "interfaceAttachment": { "fixed_ips": [ { "ip_address": "192.168.1.3", "subnet_id": "f8a6e8f8-c2ec-497c-9f23-da9616de54ef" } ], "mac_addr": "fa:16:3e:4c:2c:30", "net_id": "3cb9bc59-5699-4588-a4b1-b87f96708bc6", "port_id": "ce531f90-199f-48c0-816c-13e38010b442", "port_state": "ACTIVE" } }nova-17.0.13/doc/api_samples/os-attach-interfaces/attach-interfaces-create-req.json0000664000175000017500000000014013556316250030225 0ustar zuulzuul00000000000000{ "interfaceAttachment": { "port_id": "ce531f90-199f-48c0-816c-13e38010b442" } }nova-17.0.13/doc/api_samples/os-attach-interfaces/v2.49/0000775000175000017500000000000013556316574022517 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/os-attach-interfaces/v2.49/attach-interfaces-create-resp.json0000664000175000017500000000062313556316250031177 0ustar zuulzuul00000000000000{ "interfaceAttachment": { "fixed_ips": [ { "ip_address": "192.168.1.3", "subnet_id": "f8a6e8f8-c2ec-497c-9f23-da9616de54ef" } ], "mac_addr": "fa:16:3e:4c:2c:30", "net_id": "3cb9bc59-5699-4588-a4b1-b87f96708bc6", "port_id": "ce531f90-199f-48c0-816c-13e38010b442", "port_state": "ACTIVE" } } nova-17.0.13/doc/api_samples/os-attach-interfaces/v2.49/attach-interfaces-create-req.json0000664000175000017500000000016713556316250031020 0ustar zuulzuul00000000000000{ "interfaceAttachment": { "port_id": "ce531f90-199f-48c0-816c-13e38010b442", "tag": "foo" } } nova-17.0.13/doc/api_samples/os-attach-interfaces/attach-interfaces-list-resp.json0000664000175000017500000000071713556316250030131 0ustar zuulzuul00000000000000{ "interfaceAttachments": [ { "fixed_ips": [ { "ip_address": "192.168.1.3", "subnet_id": "f8a6e8f8-c2ec-497c-9f23-da9616de54ef" } ], "mac_addr": "fa:16:3e:4c:2c:30", "net_id": "3cb9bc59-5699-4588-a4b1-b87f96708bc6", "port_id": "ce531f90-199f-48c0-816c-13e38010b442", "port_state": "ACTIVE" } ] }nova-17.0.13/doc/api_samples/os-attach-interfaces/attach-interfaces-show-resp.json0000664000175000017500000000062213556316250030131 0ustar zuulzuul00000000000000{ "interfaceAttachment": { "fixed_ips": [ { "ip_address": "192.168.1.3", "subnet_id": "f8a6e8f8-c2ec-497c-9f23-da9616de54ef" } ], "mac_addr": "fa:16:3e:4c:2c:30", "net_id": "3cb9bc59-5699-4588-a4b1-b87f96708bc6", "port_id": "ce531f90-199f-48c0-816c-13e38010b442", "port_state": "ACTIVE" } }nova-17.0.13/doc/api_samples/os-attach-interfaces/attach-interfaces-create-net_id-req.json0000664000175000017500000000031213556316250031466 0ustar zuulzuul00000000000000{ "interfaceAttachment": { "fixed_ips": [ { "ip_address": "192.168.1.3" } ], "net_id": "3cb9bc59-5699-4588-a4b1-b87f96708bc6" } } nova-17.0.13/doc/api_samples/os-quota-class-sets/0000775000175000017500000000000013556316574021560 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/os-quota-class-sets/quota-classes-update-post-resp.json0000664000175000017500000000064213556316250030442 0ustar zuulzuul00000000000000{ "quota_class_set": { "cores": 50, "fixed_ips": -1, "floating_ips": 10, "injected_file_content_bytes": 10240, "injected_file_path_bytes": 255, "injected_files": 5, "instances": 50, "key_pairs": 100, "metadata_items": 128, "ram": 51200, "security_group_rules": 20, "security_groups": 10, "networks": 3 } } nova-17.0.13/doc/api_samples/os-quota-class-sets/v2.57/0000775000175000017500000000000013556316574022341 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/os-quota-class-sets/v2.57/quota-classes-update-post-resp.json0000664000175000017500000000034013556316250031216 0ustar zuulzuul00000000000000{ "quota_class_set": { "cores": 50, "instances": 50, "key_pairs": 100, "metadata_items": 128, "ram": 51200, "server_groups": 10, "server_group_members": 10 } } nova-17.0.13/doc/api_samples/os-quota-class-sets/v2.57/quota-classes-show-get-resp.json0000664000175000017500000000037413556316250030515 0ustar zuulzuul00000000000000{ "quota_class_set": { "cores": 20, "id": "test_class", "instances": 10, "key_pairs": 100, "metadata_items": 128, "ram": 51200, "server_groups": 10, "server_group_members": 10 } } nova-17.0.13/doc/api_samples/os-quota-class-sets/v2.57/quota-classes-update-post-req.json0000664000175000017500000000034013556316250031034 0ustar zuulzuul00000000000000{ "quota_class_set": { "instances": 50, "cores": 50, "ram": 51200, "metadata_items": 128, "key_pairs": 100, "server_groups": 10, "server_group_members": 10 } } nova-17.0.13/doc/api_samples/os-quota-class-sets/quota-classes-show-get-resp.json0000664000175000017500000000067613556316250027741 0ustar zuulzuul00000000000000{ "quota_class_set": { "cores": 20, "fixed_ips": -1, "floating_ips": 10, "id": "test_class", "injected_file_content_bytes": 10240, "injected_file_path_bytes": 255, "injected_files": 5, "instances": 10, "key_pairs": 100, "metadata_items": 128, "ram": 51200, "security_group_rules": 20, "security_groups": 10, "networks": 3 } } nova-17.0.13/doc/api_samples/os-quota-class-sets/quota-classes-update-post-req.json0000664000175000017500000000064213556316250030260 0ustar zuulzuul00000000000000{ "quota_class_set": { "instances": 50, "cores": 50, "ram": 51200, "floating_ips": 10, "fixed_ips": -1, "metadata_items": 128, "injected_files": 5, "injected_file_content_bytes": 10240, "injected_file_path_bytes": 255, "security_groups": 10, "security_group_rules": 20, "key_pairs": 100, "networks": 3 } } nova-17.0.13/doc/api_samples/os-quota-class-sets/v2.50/0000775000175000017500000000000013556316574022332 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/os-quota-class-sets/v2.50/quota-classes-update-post-resp.json0000664000175000017500000000052413556316250031213 0ustar zuulzuul00000000000000{ "quota_class_set": { "cores": 50, "injected_file_content_bytes": 10240, "injected_file_path_bytes": 255, "injected_files": 5, "instances": 50, "key_pairs": 100, "metadata_items": 128, "ram": 51200, "server_groups": 10, "server_group_members": 10 } } nova-17.0.13/doc/api_samples/os-quota-class-sets/v2.50/quota-classes-show-get-resp.json0000664000175000017500000000056013556316250030503 0ustar zuulzuul00000000000000{ "quota_class_set": { "cores": 20, "id": "test_class", "injected_file_content_bytes": 10240, "injected_file_path_bytes": 255, "injected_files": 5, "instances": 10, "key_pairs": 100, "metadata_items": 128, "ram": 51200, "server_groups": 10, "server_group_members": 10 } } nova-17.0.13/doc/api_samples/os-quota-class-sets/v2.50/quota-classes-update-post-req.json0000664000175000017500000000052413556316250031031 0ustar zuulzuul00000000000000{ "quota_class_set": { "instances": 50, "cores": 50, "ram": 51200, "metadata_items": 128, "injected_files": 5, "injected_file_content_bytes": 10240, "injected_file_path_bytes": 255, "key_pairs": 100, "server_groups": 10, "server_group_members": 10 } } nova-17.0.13/doc/api_samples/os-migrate-server/0000775000175000017500000000000013556316574021304 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/os-migrate-server/v2.30/0000775000175000017500000000000013556316574022054 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/os-migrate-server/v2.30/live-migrate-server.json0000664000175000017500000000022013556316250026621 0ustar zuulzuul00000000000000{ "os-migrateLive": { "host": "01c0cadef72d47e28a672a76060d492c", "block_migration": "auto", "force": false } } nova-17.0.13/doc/api_samples/os-migrate-server/live-migrate-server.json0000664000175000017500000000023213556316250026054 0ustar zuulzuul00000000000000{ "os-migrateLive": { "host": "01c0cadef72d47e28a672a76060d492c", "block_migration": false, "disk_over_commit": false } } nova-17.0.13/doc/api_samples/os-migrate-server/v2.25/0000775000175000017500000000000013556316574022060 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/os-migrate-server/v2.25/live-migrate-server.json0000664000175000017500000000017013556316250026631 0ustar zuulzuul00000000000000{ "os-migrateLive": { "host": "01c0cadef72d47e28a672a76060d492c", "block_migration": "auto" } } nova-17.0.13/doc/api_samples/os-migrate-server/migrate-server.json0000664000175000017500000000002713556316250025121 0ustar zuulzuul00000000000000{ "migrate": null }nova-17.0.13/doc/api_samples/os-migrate-server/v2.56/0000775000175000017500000000000013556316574022064 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/os-migrate-server/v2.56/migrate-server-null.json0000664000175000017500000000002713556316250026651 0ustar zuulzuul00000000000000{ "migrate": null }nova-17.0.13/doc/api_samples/os-migrate-server/v2.56/migrate-server.json0000664000175000017500000000006313556316250025701 0ustar zuulzuul00000000000000{ "migrate": { "host": "host1" } } nova-17.0.13/doc/api_samples/os-certificates/0000775000175000017500000000000013556316574021015 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/os-certificates/certificate-get-root-resp.json0000664000175000017500000000214413556316250026667 0ustar zuulzuul00000000000000{ "certificate": { "data": "-----BEGIN CERTIFICATE-----\nMIICyzCCAjSgAwIBAgIJAJ8zSIxUp/m4MA0GCSqGSIb3DQEBBAUAME4xEjAQBgNV\nBAoTCU5PVkEgUk9PVDEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzETMBEGA1UECBMK\nQ2FsaWZvcm5pYTELMAkGA1UEBhMCVVMwHhcNMTIxMDE3MDEzMzM5WhcNMTMxMDE3\nMDEzMzM5WjBOMRIwEAYDVQQKEwlOT1ZBIFJPT1QxFjAUBgNVBAcTDU1vdW50YWlu\nIFZpZXcxEzARBgNVBAgTCkNhbGlmb3JuaWExCzAJBgNVBAYTAlVTMIGfMA0GCSqG\nSIb3DQEBAQUAA4GNADCBiQKBgQDXW4QfQQxJG4MqurqK8nU/Lge0mfNKxXj/Gwvg\n2sQVwxzmKfoxih8Nn6yt0yHMNjhoji1UoWI03TXUnPZRAZmsypGKZeBd7Y1ZOCPB\nXGZVGrQm+PB2kZU+3cD8fVKcueMLLeZ+LRt5d0njnoKhc5xjqMlfFPimHMba4OL6\nTnYzPQIDAQABo4GwMIGtMAwGA1UdEwQFMAMBAf8wHQYDVR0OBBYEFKyoKu4SMOFM\ngx5Ec7p0nrCkabvxMH4GA1UdIwR3MHWAFKyoKu4SMOFMgx5Ec7p0nrCkabvxoVKk\nUDBOMRIwEAYDVQQKEwlOT1ZBIFJPT1QxFjAUBgNVBAcTDU1vdW50YWluIFZpZXcx\nEzARBgNVBAgTCkNhbGlmb3JuaWExCzAJBgNVBAYTAlVTggkAnzNIjFSn+bgwDQYJ\nKoZIhvcNAQEEBQADgYEAXuvXlu1o/SVvykSLhHW8QiAY00yzN/eDzYmZGomgiuoO\n/x+ayVzbrz1UWZnBD+lC4hll2iELSmf22LjLoF+s/9NyPqHxGL3FrfatBkndaiF8\nAx/TMEyCPl7IQWi+3zzatqOKHSHiG7a9SGn/7o2aNTIWKVulfy5GvmbBjBM/0UE=\n-----END CERTIFICATE-----\n", "private_key": null } }nova-17.0.13/doc/api_samples/os-certificates/certificate-create-resp.json0000664000175000017500000000672313556316250026401 0ustar zuulzuul00000000000000{ "certificate": { "data": "Certificate:\n Data:\n Version: 1 (0x0)\n Serial Number: 1018 (0x3fa)\n Signature Algorithm: md5WithRSAEncryption\n Issuer: O=NOVA ROOT, L=Mountain View, ST=California, C=US\n Validity\n Not Before: Aug 12 07:20:30 2013 GMT\n Not After : Aug 12 07:20:30 2014 GMT\n Subject: C=US, ST=California, O=OpenStack, OU=NovaDev, CN=openstack-fake-2013-08-12T07:20:30Z\n Subject Public Key Info:\n Public Key Algorithm: rsaEncryption\n Public-Key: (1024 bit)\n Modulus:\n 00:ac:ff:b1:d1:ed:54:4e:35:6c:34:b4:8f:0b:04:\n 50:25:a3:e2:4f:02:4c:4f:26:59:bd:f3:fd:eb:da:\n 18:c2:36:aa:63:42:72:1f:88:4f:3a:ec:e7:9f:8e:\n 44:2a:d3:b8:94:7b:20:41:f8:48:02:57:91:4c:16:\n 62:f1:21:d4:f2:40:b5:86:50:d9:61:f0:be:ff:d8:\n 8d:9f:4b:aa:6a:07:38:a2:7f:87:21:fc:e6:6e:1d:\n 0a:95:1a:90:0e:60:c2:24:e9:8e:e8:68:1b:e9:f3:\n c6:b0:7c:da:c5:20:66:9b:85:ea:f5:c9:a7:de:ee:\n 16:b1:51:a0:4d:e3:95:98:df\n Exponent: 65537 (0x10001)\n Signature Algorithm: md5WithRSAEncryption\n 15:42:ca:71:cc:32:af:dc:cf:45:91:df:8a:b8:30:c4:7f:78:\n 80:a7:25:c2:d9:81:3e:b3:dd:22:cc:3b:f8:94:e7:8f:04:f6:\n 93:04:9e:85:d4:10:40:ff:5a:07:47:24:b5:ae:93:ad:8d:e1:\n e6:54:4a:8d:4a:29:53:c4:8d:04:6b:0b:f6:af:38:78:02:c5:\n 05:19:89:82:2d:ba:fd:11:3c:1e:18:c9:0c:3d:03:93:6e:bc:\n 66:70:34:ee:03:78:8a:1d:3d:64:e8:20:2f:90:81:8e:49:1d:\n 07:37:15:66:42:cb:58:39:ad:56:ce:ed:47:c6:78:0b:0e:75:\n 29:ca\n-----BEGIN CERTIFICATE-----\nMIICNDCCAZ0CAgP6MA0GCSqGSIb3DQEBBAUAME4xEjAQBgNVBAoTCU5PVkEgUk9P\nVDEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzETMBEGA1UECBMKQ2FsaWZvcm5pYTEL\nMAkGA1UEBhMCVVMwHhcNMTMwODEyMDcyMDMwWhcNMTQwODEyMDcyMDMwWjB2MQsw\nCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTESMBAGA1UECgwJT3BlblN0\nYWNrMRAwDgYDVQQLDAdOb3ZhRGV2MSwwKgYDVQQDDCNvcGVuc3RhY2stZmFrZS0y\nMDEzLTA4LTEyVDA3OjIwOjMwWjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA\nrP+x0e1UTjVsNLSPCwRQJaPiTwJMTyZZvfP969oYwjaqY0JyH4hPOuznn45EKtO4\nlHsgQfhIAleRTBZi8SHU8kC1hlDZYfC+/9iNn0uqagc4on+HIfzmbh0KlRqQDmDC\nJOmO6Ggb6fPGsHzaxSBmm4Xq9cmn3u4WsVGgTeOVmN8CAwEAATANBgkqhkiG9w0B\nAQQFAAOBgQAVQspxzDKv3M9Fkd+KuDDEf3iApyXC2YE+s90izDv4lOePBPaTBJ6F\n1BBA/1oHRyS1rpOtjeHmVEqNSilTxI0Eawv2rzh4AsUFGYmCLbr9ETweGMkMPQOT\nbrxmcDTuA3iKHT1k6CAvkIGOSR0HNxVmQstYOa1Wzu1HxngLDnUpyg==\n-----END CERTIFICATE-----\n", "private_key": "-----BEGIN RSA PRIVATE KEY-----\nMIICXgIBAAKBgQCs/7HR7VRONWw0tI8LBFAlo+JPAkxPJlm98/3r2hjCNqpjQnIf\niE867OefjkQq07iUeyBB+EgCV5FMFmLxIdTyQLWGUNlh8L7/2I2fS6pqBziif4ch\n/OZuHQqVGpAOYMIk6Y7oaBvp88awfNrFIGabher1yafe7haxUaBN45WY3wIDAQAB\nAoGBAIrcr2I/KyWf0hw4Nn10V9TuyE/9Gz2JHg3QFKjFJox2DqygADT5WAeHc6Bq\nNKNf0NA2SL1LSpm+ql01tvOw4VjE5TF6OHiIzHuTTnXggG6vuA8rxp6L24HtkAcC\n0CBno9ggSX6jVornJPBfxpkwITYSvH57BUFVD7ovbPyWGzS5AkEA1JeUtL6zxwps\nWRr1aJ8Ill2uQk/RUIvSZOU61s+B190zvHikFy8LD8CI6vvBmjC/IZuZVedufjqs\n4vX82uDO3QJBANBSh2b2dyB4AGVFY9vXMRtALAspJHbLHy+zTKxlGPFiuz7Se3ps\n8Kehz4C/CBXgQkk194dwFSGE19/PQfyJROsCQQCFFDJZhrtBUMwMZ2zSRiN5BUGt\nbwuncS+OS1Su3Yz5VRYq2BZYEPHKtYrAFkLWQ8eRwTaWaN5pFE/fb38OgQXdAkA4\nDm0W/K0zlHbuyUxEpNQ28/6mBi0ktiWvLT0tioq6sYmXLwZA/D2JrhXrG/xt/ol3\nr8jqrfNRsLByLhAgh0N/AkEAl2eR0O97lTEgFNqzIQwVmIAn9mBO3cnf3tycvlDU\nm6eb2CS242y4QalfCCAEjxoJURdfsm3/D1iFo00X+IWF+A==\n-----END RSA PRIVATE KEY-----\n" } }nova-17.0.13/doc/api_samples/flavor-access/0000775000175000017500000000000013556316574020461 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/flavor-access/flavor-access-add-tenant-req.json0000664000175000017500000000010313556316250026667 0ustar zuulzuul00000000000000{ "addTenantAccess": { "tenant": "fake_tenant" } } nova-17.0.13/doc/api_samples/flavor-access/flavor-create-req.json0000664000175000017500000000026613556316250024666 0ustar zuulzuul00000000000000{ "flavor": { "name": "test_flavor", "ram": 1024, "vcpus": 2, "disk": 10, "id": "10", "os-flavor-access:is_public": false } } nova-17.0.13/doc/api_samples/flavor-access/v2.7/0000775000175000017500000000000013556316574021155 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/flavor-access/v2.7/flavor-access-add-tenant-req.json0000664000175000017500000000010313556316250027363 0ustar zuulzuul00000000000000{ "addTenantAccess": { "tenant": "fake_tenant" } } nova-17.0.13/doc/api_samples/flavor-access/v2.7/flavor-create-req.json0000664000175000017500000000026513556316250025361 0ustar zuulzuul00000000000000{ "flavor": { "name": "test_flavor", "ram": 1024, "vcpus": 2, "disk": 10, "id": "10", "os-flavor-access:is_public": true } } nova-17.0.13/doc/api_samples/flavor-access/flavor-access-list-resp.json0000664000175000017500000000017213556316250026013 0ustar zuulzuul00000000000000{ "flavor_access": [ { "flavor_id": "10", "tenant_id": "fake_tenant" } ] }nova-17.0.13/doc/api_samples/flavor-access/flavor-access-remove-tenant-resp.json0000664000175000017500000000004013556316250027616 0ustar zuulzuul00000000000000{ "flavor_access": [ ] }nova-17.0.13/doc/api_samples/flavor-access/flavor-access-remove-tenant-req.json0000664000175000017500000000010613556316250027437 0ustar zuulzuul00000000000000{ "removeTenantAccess": { "tenant": "fake_tenant" } } nova-17.0.13/doc/api_samples/flavor-access/flavor-access-add-tenant-resp.json0000664000175000017500000000017213556316250027057 0ustar zuulzuul00000000000000{ "flavor_access": [ { "flavor_id": "10", "tenant_id": "fake_tenant" } ] }nova-17.0.13/doc/api_samples/os-console-output/0000775000175000017500000000000013556316574021350 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/os-console-output/console-output-post-req.json0000664000175000017500000000007413556316250027003 0ustar zuulzuul00000000000000{ "os-getConsoleOutput": { "length": 50 } } nova-17.0.13/doc/api_samples/os-console-output/console-output-post-resp.json0000664000175000017500000000007313556316250027164 0ustar zuulzuul00000000000000{ "output": "FAKE CONSOLE OUTPUT\nANOTHER\nLAST LINE" }nova-17.0.13/doc/api_samples/os-create-backup/0000775000175000017500000000000013556316574021056 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/os-create-backup/create-backup-req.json0000664000175000017500000000016213556316250025232 0ustar zuulzuul00000000000000{ "createBackup": { "name": "Backup 1", "backup_type": "daily", "rotation": 1 } } nova-17.0.13/doc/api_samples/os-create-backup/v2.45/0000775000175000017500000000000013556316574021634 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/os-create-backup/v2.45/create-backup-resp.json0000664000175000017500000000007213556316250026172 0ustar zuulzuul00000000000000{ "image_id": "0e7761dd-ee98-41f0-ba35-05994e446431" }nova-17.0.13/doc/api_samples/os-create-backup/v2.45/create-backup-req.json0000664000175000017500000000016313556316250026011 0ustar zuulzuul00000000000000{ "createBackup": { "name": "Backup 1", "backup_type": "weekly", "rotation": 1 } } nova-17.0.13/doc/api_samples/os-migrations/0000775000175000017500000000000013556316574020524 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/os-migrations/v2.59/0000775000175000017500000000000013556316574021307 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/os-migrations/v2.59/migrations-get-with-limit.json0000664000175000017500000000154113556316250027210 0ustar zuulzuul00000000000000{ "migrations": [ { "created_at": "2016-06-23T14:42:02.000000", "dest_compute": "compute20", "dest_host": "5.6.7.8", "dest_node": "node20", "id": 4, "instance_uuid": "9128d044-7b61-403e-b766-7547076ff6c1", "new_instance_type_id": 6, "old_instance_type_id": 5, "source_compute": "compute10", "source_node": "node10", "status": "migrating", "migration_type": "resize", "updated_at": "2016-06-23T14:42:02.000000", "uuid": "42341d4b-346a-40d0-83c6-5f4f6892b650" } ], "migrations_links": [{ "href": "http://openstack.example.com/v2.1/6f70656e737461636b20342065766572/os-migrations?limit=1&marker=42341d4b-346a-40d0-83c6-5f4f6892b650", "rel": "next" }] } nova-17.0.13/doc/api_samples/os-migrations/v2.59/migrations-get-with-marker.json0000664000175000017500000000217413556316250027356 0ustar zuulzuul00000000000000{ "migrations": [ { "created_at": "2016-01-29T11:42:02.000000", "dest_compute": "compute2", "dest_host": "1.2.3.4", "dest_node": "node2", "id": 1, "instance_uuid": "8600d31b-d1a1-4632-b2ff-45c2be1a70ff", "links": [ { "href": "http://openstack.example.com/v2.1/6f70656e737461636b20342065766572/servers/8600d31b-d1a1-4632-b2ff-45c2be1a70ff/migrations/1", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/servers/8600d31b-d1a1-4632-b2ff-45c2be1a70ff/migrations/1", "rel": "bookmark" } ], "new_instance_type_id": 1, "old_instance_type_id": 1, "source_compute": "compute1", "source_node": "node1", "status": "running", "migration_type": "live-migration", "updated_at": "2016-01-29T11:42:02.000000", "uuid": "12341d4b-346a-40d0-83c6-5f4f6892b650" } ] } nova-17.0.13/doc/api_samples/os-migrations/v2.59/migrations-get.json0000664000175000017500000000572113556316250025127 0ustar zuulzuul00000000000000{ "migrations": [ { "created_at": "2016-06-23T14:42:02.000000", "dest_compute": "compute20", "dest_host": "5.6.7.8", "dest_node": "node20", "id": 4, "instance_uuid": "9128d044-7b61-403e-b766-7547076ff6c1", "new_instance_type_id": 6, "old_instance_type_id": 5, "source_compute": "compute10", "source_node": "node10", "status": "migrating", "migration_type": "resize", "updated_at": "2016-06-23T14:42:02.000000", "uuid": "42341d4b-346a-40d0-83c6-5f4f6892b650" }, { "created_at": "2016-06-23T13:42:02.000000", "dest_compute": "compute20", "dest_host": "5.6.7.8", "dest_node": "node20", "id": 3, "instance_uuid": "9128d044-7b61-403e-b766-7547076ff6c1", "new_instance_type_id": 6, "old_instance_type_id": 5, "source_compute": "compute10", "source_node": "node10", "status": "error", "migration_type": "resize", "updated_at": "2016-06-23T13:42:02.000000", "uuid": "32341d4b-346a-40d0-83c6-5f4f6892b650" }, { "created_at": "2016-01-29T12:42:02.000000", "dest_compute": "compute2", "dest_host": "1.2.3.4", "dest_node": "node2", "id": 2, "instance_uuid": "8600d31b-d1a1-4632-b2ff-45c2be1a70ff", "new_instance_type_id": 1, "old_instance_type_id": 1, "source_compute": "compute1", "source_node": "node1", "status": "error", "migration_type": "live-migration", "updated_at": "2016-01-29T12:42:02.000000", "uuid": "22341d4b-346a-40d0-83c6-5f4f6892b650" }, { "created_at": "2016-01-29T11:42:02.000000", "dest_compute": "compute2", "dest_host": "1.2.3.4", "dest_node": "node2", "id": 1, "instance_uuid": "8600d31b-d1a1-4632-b2ff-45c2be1a70ff", "links": [ { "href": "http://openstack.example.com/v2.1/6f70656e737461636b20342065766572/servers/8600d31b-d1a1-4632-b2ff-45c2be1a70ff/migrations/1", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/servers/8600d31b-d1a1-4632-b2ff-45c2be1a70ff/migrations/1", "rel": "bookmark" } ], "new_instance_type_id": 1, "old_instance_type_id": 1, "source_compute": "compute1", "source_node": "node1", "status": "running", "migration_type": "live-migration", "updated_at": "2016-01-29T11:42:02.000000", "uuid": "12341d4b-346a-40d0-83c6-5f4f6892b650" } ] } nova-17.0.13/doc/api_samples/os-migrations/v2.59/migrations-get-with-timestamp-filter.json0000664000175000017500000000237713556316250031370 0ustar zuulzuul00000000000000{ "migrations": [ { "created_at": "2016-06-23T14:42:02.000000", "dest_compute": "compute20", "dest_host": "5.6.7.8", "dest_node": "node20", "id": 4, "instance_uuid": "9128d044-7b61-403e-b766-7547076ff6c1", "new_instance_type_id": 6, "old_instance_type_id": 5, "source_compute": "compute10", "source_node": "node10", "status": "migrating", "migration_type": "resize", "updated_at": "2016-06-23T14:42:02.000000", "uuid": "42341d4b-346a-40d0-83c6-5f4f6892b650" }, { "created_at": "2016-06-23T13:42:02.000000", "dest_compute": "compute20", "dest_host": "5.6.7.8", "dest_node": "node20", "id": 3, "instance_uuid": "9128d044-7b61-403e-b766-7547076ff6c1", "new_instance_type_id": 6, "old_instance_type_id": 5, "source_compute": "compute10", "source_node": "node10", "status": "error", "migration_type": "resize", "updated_at": "2016-06-23T13:42:02.000000", "uuid": "32341d4b-346a-40d0-83c6-5f4f6892b650" } ] } nova-17.0.13/doc/api_samples/os-migrations/migrations-get.json0000664000175000017500000000201013556316250024330 0ustar zuulzuul00000000000000{ "migrations": [ { "created_at": "2012-10-29T13:42:02.000000", "dest_compute": "compute2", "dest_host": "1.2.3.4", "dest_node": "node2", "id": 1234, "instance_uuid": "instance_id_123", "new_instance_type_id": 2, "old_instance_type_id": 1, "source_compute": "compute1", "source_node": "node1", "status": "Done", "updated_at": "2012-10-29T13:42:02.000000" }, { "created_at": "2013-10-22T13:42:02.000000", "dest_compute": "compute20", "dest_host": "5.6.7.8", "dest_node": "node20", "id": 5678, "instance_uuid": "instance_id_456", "new_instance_type_id": 6, "old_instance_type_id": 5, "source_compute": "compute10", "source_node": "node10", "status": "Done", "updated_at": "2013-10-22T13:42:02.000000" } ] }nova-17.0.13/doc/api_samples/os-migrations/v2.23/0000775000175000017500000000000013556316574021276 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/os-migrations/v2.23/migrations-get.json0000664000175000017500000000534113556316250025114 0ustar zuulzuul00000000000000{ "migrations": [ { "created_at": "2016-01-29T13:42:02.000000", "dest_compute": "compute2", "dest_host": "1.2.3.4", "dest_node": "node2", "id": 1, "instance_uuid": "8600d31b-d1a1-4632-b2ff-45c2be1a70ff", "links": [ { "href": "http://openstack.example.com/v2.1/6f70656e737461636b20342065766572/servers/8600d31b-d1a1-4632-b2ff-45c2be1a70ff/migrations/1", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/servers/8600d31b-d1a1-4632-b2ff-45c2be1a70ff/migrations/1", "rel": "bookmark" } ], "new_instance_type_id": 2, "old_instance_type_id": 1, "source_compute": "compute1", "source_node": "node1", "status": "running", "migration_type": "live-migration", "updated_at": "2016-01-29T13:42:02.000000" }, { "created_at": "2016-01-29T13:42:02.000000", "dest_compute": "compute2", "dest_host": "1.2.3.4", "dest_node": "node2", "id": 2, "instance_uuid": "8600d31b-d1a1-4632-b2ff-45c2be1a70ff", "new_instance_type_id": 2, "old_instance_type_id": 1, "source_compute": "compute1", "source_node": "node1", "status": "error", "migration_type": "live-migration", "updated_at": "2016-01-29T13:42:02.000000" }, { "created_at": "2016-01-22T13:42:02.000000", "dest_compute": "compute20", "dest_host": "5.6.7.8", "dest_node": "node20", "id": 3, "instance_uuid": "9128d044-7b61-403e-b766-7547076ff6c1", "new_instance_type_id": 6, "old_instance_type_id": 5, "source_compute": "compute10", "source_node": "node10", "status": "error", "migration_type": "resize", "updated_at": "2016-01-22T13:42:02.000000" }, { "created_at": "2016-01-22T13:42:02.000000", "dest_compute": "compute20", "dest_host": "5.6.7.8", "dest_node": "node20", "id": 4, "instance_uuid": "9128d044-7b61-403e-b766-7547076ff6c1", "new_instance_type_id": 6, "old_instance_type_id": 5, "source_compute": "compute10", "source_node": "node10", "status": "migrating", "migration_type": "resize", "updated_at": "2016-01-22T13:42:02.000000" } ] } nova-17.0.13/doc/api_samples/os-floating-ip-dns/0000775000175000017500000000000013556316574021343 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/os-floating-ip-dns/floating-ip-dns-create-or-update-entry-resp.json0000664000175000017500000000024713556316250032470 0ustar zuulzuul00000000000000{ "dns_entry": { "domain": "domain1.example.org", "id": null, "ip": "192.168.1.1", "name": "instance1", "type": "A" } }nova-17.0.13/doc/api_samples/os-floating-ip-dns/floating-ip-dns-create-or-update-resp.json0000664000175000017500000000024413556316250031326 0ustar zuulzuul00000000000000{ "domain_entry": { "availability_zone": null, "domain": "domain1.example.org", "project": "project1", "scope": "public" } }nova-17.0.13/doc/api_samples/os-floating-ip-dns/floating-ip-dns-create-or-update-req.json0000664000175000017500000000013113556316250031137 0ustar zuulzuul00000000000000{ "domain_entry": { "scope": "public", "project": "project1" } } nova-17.0.13/doc/api_samples/os-floating-ip-dns/floating-ip-dns-list-resp.json0000664000175000017500000000031213556316250027134 0ustar zuulzuul00000000000000{ "domain_entries": [ { "availability_zone": null, "domain": "domain1.example.org", "project": "project1", "scope": "public" } ] }nova-17.0.13/doc/api_samples/os-floating-ip-dns/floating-ip-dns-entry-get-resp.json0000664000175000017500000000025013556316250030100 0ustar zuulzuul00000000000000{ "dns_entry": { "domain": "domain1.example.org", "id": null, "ip": "192.168.1.1", "name": "instance1", "type": null } }nova-17.0.13/doc/api_samples/os-floating-ip-dns/floating-ip-dns-entry-list-resp.json0000664000175000017500000000032213556316250030274 0ustar zuulzuul00000000000000{ "dns_entries": [ { "domain": "domain1.example.org", "id": null, "ip": "192.168.1.1", "name": "instance1", "type": null } ] }nova-17.0.13/doc/api_samples/os-floating-ip-dns/floating-ip-dns-create-or-update-entry-req.json0000664000175000017500000000012413556316250032300 0ustar zuulzuul00000000000000{ "dns_entry": { "ip": "192.168.53.11", "dns_type": "A" } } nova-17.0.13/doc/api_samples/os-preserve-ephemeral-rebuild/0000775000175000017500000000000013556316574023567 5ustar zuulzuul00000000000000././@LongLink0000000000000000000000000000015100000000000011212 Lustar 00000000000000nova-17.0.13/doc/api_samples/os-preserve-ephemeral-rebuild/server-action-rebuild-preserve-ephemeral.jsonnova-17.0.13/doc/api_samples/os-preserve-ephemeral-rebuild/server-action-rebuild-preserve-ephemeral.0000664000175000017500000000037113556316250033556 0ustar zuulzuul00000000000000{ "rebuild": { "imageRef": "70a599e0-31e7-49b7-b260-868f441e862b", "name": "foobar", "adminPass": "seekr3t", "metadata": { "meta_var": "meta_val" }, "preserve_ephemeral": false } } ././@LongLink0000000000000000000000000000015600000000000011217 Lustar 00000000000000nova-17.0.13/doc/api_samples/os-preserve-ephemeral-rebuild/server-action-rebuild-preserve-ephemeral-resp.jsonnova-17.0.13/doc/api_samples/os-preserve-ephemeral-rebuild/server-action-rebuild-preserve-ephemeral-0000664000175000017500000000343013556316250033554 0ustar zuulzuul00000000000000{ "server": { "OS-DCF:diskConfig": "AUTO", "accessIPv4": "1.2.3.4", "accessIPv6": "80fe::", "addresses": { "private": [ { "addr": "192.168.0.3", "version": 4 } ] }, "adminPass": "seekr3t", "created": "2013-12-30T12:28:14Z", "flavor": { "id": "1", "links": [ { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/flavors/1", "rel": "bookmark" } ] }, "hostId": "ee8ea077f8548ce25c59c2d5020d0f82810c815c210fd68194a5c0f8", "id": "810e78d5-47fe-48bf-9559-bfe5dc918685", "image": { "id": "70a599e0-31e7-49b7-b260-868f441e862b", "links": [ { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/images/70a599e0-31e7-49b7-b260-868f441e862b", "rel": "bookmark" } ] }, "links": [ { "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/servers/810e78d5-47fe-48bf-9559-bfe5dc918685", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/servers/810e78d5-47fe-48bf-9559-bfe5dc918685", "rel": "bookmark" } ], "metadata": { "meta_var": "meta_val" }, "name": "foobar", "progress": 0, "status": "ACTIVE", "tenant_id": "6f70656e737461636b20342065766572", "updated": "2013-12-30T12:28:15Z", "user_id": "fake" } }nova-17.0.13/doc/api_samples/servers-sort/0000775000175000017500000000000013556316574020407 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/servers-sort/server-sort-keys-list-resp.json0000664000175000017500000000113513556316250026455 0ustar zuulzuul00000000000000{ "servers": [ { "id": "e08e6d34-fcc1-480e-b11e-24a675b479f8", "links": [ { "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/servers/e08e6d34-fcc1-480e-b11e-24a675b479f8", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/servers/e08e6d34-fcc1-480e-b11e-24a675b479f8", "rel": "bookmark" } ], "name": "new-server-test" } ] } nova-17.0.13/doc/api_samples/limits/0000775000175000017500000000000013556316574017232 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/limits/v2.57/0000775000175000017500000000000013556316574020013 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/limits/v2.57/limit-get-resp.json0000664000175000017500000000073113556316250023540 0ustar zuulzuul00000000000000{ "limits": { "absolute": { "maxServerMeta": 128, "maxTotalCores": 20, "maxTotalInstances": 10, "maxTotalKeypairs": 100, "maxTotalRAMSize": 51200, "maxServerGroups": 10, "maxServerGroupMembers": 10, "totalCoresUsed": 0, "totalInstancesUsed": 0, "totalRAMUsed": 0, "totalServerGroupsUsed": 0 }, "rate": [] } } nova-17.0.13/doc/api_samples/limits/v2.39/0000775000175000017500000000000013556316574020013 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/limits/v2.39/limit-get-resp.json0000664000175000017500000000104313556316250023535 0ustar zuulzuul00000000000000{ "limits": { "absolute": { "maxPersonality": 5, "maxPersonalitySize": 10240, "maxServerMeta": 128, "maxTotalCores": 20, "maxTotalInstances": 10, "maxTotalKeypairs": 100, "maxTotalRAMSize": 51200, "maxServerGroups": 10, "maxServerGroupMembers": 10, "totalCoresUsed": 0, "totalInstancesUsed": 0, "totalRAMUsed": 0, "totalServerGroupsUsed": 0 }, "rate": [] } } nova-17.0.13/doc/api_samples/limits/v2.36/0000775000175000017500000000000013556316574020010 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/limits/v2.36/limit-get-resp.json0000664000175000017500000000110413556316250023530 0ustar zuulzuul00000000000000{ "limits": { "absolute": { "maxImageMeta": 128, "maxPersonality": 5, "maxPersonalitySize": 10240, "maxServerMeta": 128, "maxTotalCores": 20, "maxTotalInstances": 10, "maxTotalKeypairs": 100, "maxTotalRAMSize": 51200, "maxServerGroups": 10, "maxServerGroupMembers": 10, "totalCoresUsed": 0, "totalInstancesUsed": 0, "totalRAMUsed": 0, "totalServerGroupsUsed": 0 }, "rate": [] } } nova-17.0.13/doc/api_samples/limits/limit-get-resp.json0000664000175000017500000000141213556316250022754 0ustar zuulzuul00000000000000{ "limits": { "absolute": { "maxImageMeta": 128, "maxPersonality": 5, "maxPersonalitySize": 10240, "maxSecurityGroupRules": 20, "maxSecurityGroups": 10, "maxServerMeta": 128, "maxTotalCores": 20, "maxTotalFloatingIps": 10, "maxTotalInstances": 10, "maxTotalKeypairs": 100, "maxTotalRAMSize": 51200, "maxServerGroups": 10, "maxServerGroupMembers": 10, "totalCoresUsed": 0, "totalInstancesUsed": 0, "totalRAMUsed": 0, "totalSecurityGroupsUsed": 0, "totalFloatingIpsUsed": 0, "totalServerGroupsUsed": 0 }, "rate": [] } } nova-17.0.13/doc/api_samples/os-shelve/0000775000175000017500000000000013556316574017636 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/os-shelve/os-shelve.json0000664000175000017500000000002613556316250022423 0ustar zuulzuul00000000000000{ "shelve": null }nova-17.0.13/doc/api_samples/os-shelve/os-shelve-offload.json0000664000175000017500000000003613556316250024034 0ustar zuulzuul00000000000000{ "shelveOffload": null } nova-17.0.13/doc/api_samples/os-shelve/os-unshelve.json0000664000175000017500000000003113556316250022762 0ustar zuulzuul00000000000000{ "unshelve": null } nova-17.0.13/doc/api_samples/servers/0000775000175000017500000000000013556316574017422 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/servers/server-create-req-v237.json0000664000175000017500000000233113556316250024336 0ustar zuulzuul00000000000000{ "server" : { "accessIPv4": "1.2.3.4", "accessIPv6": "80fe::", "name" : "new-server-test", "imageRef" : "70a599e0-31e7-49b7-b260-868f441e862b", "flavorRef" : "1", "availability_zone": "nova", "OS-DCF:diskConfig": "AUTO", "metadata" : { "My Server Name" : "Apache1" }, "personality": [ { "path": "/etc/banner.txt", "contents": "ICAgICAgDQoiQSBjbG91ZCBkb2VzIG5vdCBrbm93IHdoeSBp dCBtb3ZlcyBpbiBqdXN0IHN1Y2ggYSBkaXJlY3Rpb24gYW5k IGF0IHN1Y2ggYSBzcGVlZC4uLkl0IGZlZWxzIGFuIGltcHVs c2lvbi4uLnRoaXMgaXMgdGhlIHBsYWNlIHRvIGdvIG5vdy4g QnV0IHRoZSBza3kga25vd3MgdGhlIHJlYXNvbnMgYW5kIHRo ZSBwYXR0ZXJucyBiZWhpbmQgYWxsIGNsb3VkcywgYW5kIHlv dSB3aWxsIGtub3csIHRvbywgd2hlbiB5b3UgbGlmdCB5b3Vy c2VsZiBoaWdoIGVub3VnaCB0byBzZWUgYmV5b25kIGhvcml6 b25zLiINCg0KLVJpY2hhcmQgQmFjaA==" } ], "security_groups": [ { "name": "default" } ], "user_data" : "IyEvYmluL2Jhc2gKL2Jpbi9zdQplY2hvICJJIGFtIGluIHlvdSEiCg==", "networks": "auto" }, "OS-SCH-HNT:scheduler_hints": { "same_host": "48e6a9f6-30af-47e0-bc04-acaed113bb4e" } } nova-17.0.13/doc/api_samples/servers/server-action-confirm-resize.json0000664000175000017500000000003613556316250026016 0ustar zuulzuul00000000000000{ "confirmResize" : null }nova-17.0.13/doc/api_samples/servers/v2.9/0000775000175000017500000000000013556316574020120 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/servers/v2.9/server-get-resp.json0000664000175000017500000000623413556316250024041 0ustar zuulzuul00000000000000{ "server": { "accessIPv4": "1.2.3.4", "accessIPv6": "80fe::", "addresses": { "private": [ { "addr": "192.168.0.3", "OS-EXT-IPS-MAC:mac_addr": "aa:bb:cc:dd:ee:ff", "OS-EXT-IPS:type": "fixed", "version": 4 } ] }, "created": "2013-09-03T04:01:32Z", "flavor": { "id": "1", "links": [ { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/flavors/1", "rel": "bookmark" } ] }, "hostId": "92154fab69d5883ba2c8622b7e65f745dd33257221c07af363c51b29", "id": "0e44cc9c-e052-415d-afbf-469b0d384170", "image": { "id": "70a599e0-31e7-49b7-b260-868f441e862b", "links": [ { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/images/70a599e0-31e7-49b7-b260-868f441e862b", "rel": "bookmark" } ] }, "key_name": null, "links": [ { "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/servers/0e44cc9c-e052-415d-afbf-469b0d384170", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/servers/0e44cc9c-e052-415d-afbf-469b0d384170", "rel": "bookmark" } ], "metadata": { "My Server Name": "Apache1" }, "name": "new-server-test", "config_drive": "", "OS-DCF:diskConfig": "AUTO", "OS-EXT-AZ:availability_zone": "nova", "OS-EXT-SRV-ATTR:host": "b8b357f7100d4391828f2177c922ef93", "OS-EXT-SRV-ATTR:hypervisor_hostname": "fake-mini", "OS-EXT-SRV-ATTR:instance_name": "instance-00000001", "OS-EXT-SRV-ATTR:reservation_id": "r-00000001", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:hostname": "fake-hostname", "OS-EXT-SRV-ATTR:root_device_name": "/dev/sda", "OS-EXT-SRV-ATTR:user_data": "IyEvYmluL2Jhc2gKL2Jpbi9zdQplY2hvICJJIGFtIGluIHlvdSEiCg==", "OS-EXT-STS:power_state": 1, "OS-EXT-STS:task_state": null, "OS-EXT-STS:vm_state": "active", "os-extended-volumes:volumes_attached": [ { "id": "volume_id1", "delete_on_termination": false }, { "id": "volume_id2", "delete_on_termination": false } ], "OS-SRV-USG:launched_at": "2013-09-23T13:37:00.880302", "OS-SRV-USG:terminated_at": null, "progress": 0, "security_groups": [ { "name": "default" } ], "status": "ACTIVE", "tenant_id": "6f70656e737461636b20342065766572", "updated": "2013-09-03T04:01:33Z", "user_id": "fake", "locked": false } } nova-17.0.13/doc/api_samples/servers/v2.9/servers-list-resp.json0000664000175000017500000000113413556316250024412 0ustar zuulzuul00000000000000{ "servers": [ { "id": "22c91117-08de-4894-9aa9-6ef382400985", "links": [ { "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/servers/22c91117-08de-4894-9aa9-6ef382400985", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/servers/22c91117-08de-4894-9aa9-6ef382400985", "rel": "bookmark" } ], "name": "new-server-test" } ] }nova-17.0.13/doc/api_samples/servers/v2.9/servers-details-resp.json0000664000175000017500000000701513556316250025070 0ustar zuulzuul00000000000000{ "servers": [ { "accessIPv4": "1.2.3.4", "accessIPv6": "80fe::", "addresses": { "private": [ { "addr": "192.168.0.3", "OS-EXT-IPS-MAC:mac_addr": "aa:bb:cc:dd:ee:ff", "OS-EXT-IPS:type": "fixed", "version": 4 } ] }, "created": "2013-09-03T04:01:32Z", "flavor": { "id": "1", "links": [ { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/flavors/1", "rel": "bookmark" } ] }, "hostId": "bcf92836fc9ed4203a75cb0337afc7f917d2be504164b995c2334b25", "id": "f5dc173b-6804-445a-a6d8-c705dad5b5eb", "image": { "id": "70a599e0-31e7-49b7-b260-868f441e862b", "links": [ { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/images/70a599e0-31e7-49b7-b260-868f441e862b", "rel": "bookmark" } ] }, "key_name": null, "links": [ { "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/servers/f5dc173b-6804-445a-a6d8-c705dad5b5eb", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/servers/f5dc173b-6804-445a-a6d8-c705dad5b5eb", "rel": "bookmark" } ], "metadata": { "My Server Name": "Apache1" }, "name": "new-server-test", "config_drive": "", "OS-DCF:diskConfig": "AUTO", "OS-EXT-AZ:availability_zone": "nova", "OS-EXT-SRV-ATTR:host": "c3f14e9812ad496baf92ccfb3c61e15f", "OS-EXT-SRV-ATTR:hypervisor_hostname": "fake-mini", "OS-EXT-SRV-ATTR:instance_name": "instance-00000001", "OS-EXT-SRV-ATTR:reservation_id": "r-00000001", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:hostname": "fake-hostname", "OS-EXT-SRV-ATTR:root_device_name": "/dev/sda", "OS-EXT-SRV-ATTR:user_data": "IyEvYmluL2Jhc2gKL2Jpbi9zdQplY2hvICJJIGFtIGluIHlvdSEiCg==", "OS-EXT-STS:power_state": 1, "OS-EXT-STS:task_state": null, "OS-EXT-STS:vm_state": "active", "os-extended-volumes:volumes_attached": [ { "id": "volume_id1", "delete_on_termination": false }, { "id": "volume_id2", "delete_on_termination": false } ], "OS-SRV-USG:launched_at": "2013-09-23T13:53:12.774549", "OS-SRV-USG:terminated_at": null, "progress": 0, "security_groups": [ { "name": "default" } ], "status": "ACTIVE", "tenant_id": "6f70656e737461636b20342065766572", "updated": "2013-09-03T04:01:32Z", "user_id": "fake", "locked": false } ] } nova-17.0.13/doc/api_samples/servers/v2.42/0000775000175000017500000000000013556316574020175 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/servers/v2.42/server-create-req.json0000664000175000017500000000102213556316250024406 0ustar zuulzuul00000000000000{ "server" : { "name" : "device-tagging-server", "flavorRef" : "http://openstack.example.com/flavors/1", "networks" : [{ "uuid" : "ff608d40-75e9-48cb-b745-77bb55b5eaf2", "tag": "nic1" }], "block_device_mapping_v2": [{ "uuid": "70a599e0-31e7-49b7-b260-868f441e862b", "source_type": "image", "destination_type": "volume", "boot_index": 0, "volume_size": "1", "tag": "disk1" }] } }nova-17.0.13/doc/api_samples/servers/v2.42/server-create-resp.json0000664000175000017500000000124613556316250024600 0ustar zuulzuul00000000000000{ "server": { "OS-DCF:diskConfig": "AUTO", "adminPass": "S5wqy9sPYUvU", "id": "97108291-2fd7-4dc2-a909-eaae0306a6a9", "links": [ { "href": "http://openstack.example.com/v2.1/6f70656e737461636b20342065766572/servers/97108291-2fd7-4dc2-a909-eaae0306a6a9", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/servers/97108291-2fd7-4dc2-a909-eaae0306a6a9", "rel": "bookmark" } ], "security_groups": [ { "name": "default" } ] } }nova-17.0.13/doc/api_samples/servers/v2.47/0000775000175000017500000000000013556316574020202 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/servers/v2.47/server-create-req.json0000664000175000017500000000236013556316250024421 0ustar zuulzuul00000000000000{ "server" : { "accessIPv4": "1.2.3.4", "accessIPv6": "80fe::", "name" : "new-server-test", "imageRef" : "70a599e0-31e7-49b7-b260-868f441e862b", "flavorRef" : "6", "availability_zone": "nova", "OS-DCF:diskConfig": "AUTO", "metadata" : { "My Server Name" : "Apache1" }, "personality": [ { "path": "/etc/banner.txt", "contents": "ICAgICAgDQoiQSBjbG91ZCBkb2VzIG5vdCBrbm93IHdoeSBp dCBtb3ZlcyBpbiBqdXN0IHN1Y2ggYSBkaXJlY3Rpb24gYW5k IGF0IHN1Y2ggYSBzcGVlZC4uLkl0IGZlZWxzIGFuIGltcHVs c2lvbi4uLnRoaXMgaXMgdGhlIHBsYWNlIHRvIGdvIG5vdy4g QnV0IHRoZSBza3kga25vd3MgdGhlIHJlYXNvbnMgYW5kIHRo ZSBwYXR0ZXJucyBiZWhpbmQgYWxsIGNsb3VkcywgYW5kIHlv dSB3aWxsIGtub3csIHRvbywgd2hlbiB5b3UgbGlmdCB5b3Vy c2VsZiBoaWdoIGVub3VnaCB0byBzZWUgYmV5b25kIGhvcml6 b25zLiINCg0KLVJpY2hhcmQgQmFjaA==" } ], "security_groups": [ { "name": "default" } ], "user_data" : "IyEvYmluL2Jhc2gKL2Jpbi9zdQplY2hvICJJIGFtIGluIHlvdSEiCg==", "networks": "auto" }, "OS-SCH-HNT:scheduler_hints": { "same_host": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}" } }nova-17.0.13/doc/api_samples/servers/v2.47/server-update-resp.json0000664000175000017500000000344413556316250024626 0ustar zuulzuul00000000000000{ "server": { "OS-DCF:diskConfig": "AUTO", "accessIPv4": "1.2.3.4", "accessIPv6": "80fe::", "addresses": { "private": [ { "addr": "192.168.0.3", "version": 4 } ] }, "created": "2012-12-02T02:11:57Z", "description": null, "flavor": { "disk": 1, "ephemeral": 0, "extra_specs": {}, "original_name": "m1.tiny", "ram": 512, "swap": 0, "vcpus": 1 }, "hostId": "6e84af987b4e7ec1c039b16d21f508f4a505672bd94fb0218b668d07", "id": "324dfb7d-f4a9-419a-9a19-237df04b443b", "image": { "id": "70a599e0-31e7-49b7-b260-868f441e862b", "links": [ { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/images/70a599e0-31e7-49b7-b260-868f441e862b", "rel": "bookmark" } ] }, "links": [ { "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/servers/324dfb7d-f4a9-419a-9a19-237df04b443b", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/servers/324dfb7d-f4a9-419a-9a19-237df04b443b", "rel": "bookmark" } ], "locked": false, "metadata": { "My Server Name": "Apache1" }, "name": "new-server-test", "progress": 0, "status": "ACTIVE", "tags": [], "tenant_id": "6f70656e737461636b20342065766572", "updated": "2012-12-02T02:11:58Z", "user_id": "fake" } } nova-17.0.13/doc/api_samples/servers/v2.47/server-action-rebuild.json0000664000175000017500000000156713556316250025302 0ustar zuulzuul00000000000000{ "rebuild" : { "imageRef" : "70a599e0-31e7-49b7-b260-868f441e862b", "accessIPv4" : "1.2.3.4", "accessIPv6" : "80fe::", "adminPass" : "seekr3t", "metadata" : { "meta_var" : "meta_val" }, "name" : "foobar", "OS-DCF:diskConfig": "AUTO", "personality" : [ { "path" : "/etc/banner.txt", "contents" : "ICAgICAgDQoiQSBjbG91ZCBkb2VzIG5vdCBrbm93IHdoeSBp dCBtb3ZlcyBpbiBqdXN0IHN1Y2ggYSBkaXJlY3Rpb24gYW5k IGF0IHN1Y2ggYSBzcGVlZC4uLkl0IGZlZWxzIGFuIGltcHVs c2lvbi4uLnRoaXMgaXMgdGhlIHBsYWNlIHRvIGdvIG5vdy4g QnV0IHRoZSBza3kga25vd3MgdGhlIHJlYXNvbnMgYW5kIHRo ZSBwYXR0ZXJucyBiZWhpbmQgYWxsIGNsb3VkcywgYW5kIHlv dSB3aWxsIGtub3csIHRvbywgd2hlbiB5b3UgbGlmdCB5b3Vy c2VsZiBoaWdoIGVub3VnaCB0byBzZWUgYmV5b25kIGhvcml6 b25zLiINCg0KLVJpY2hhcmQgQmFjaA==" } ] } } nova-17.0.13/doc/api_samples/servers/v2.47/server-get-resp.json0000664000175000017500000000650313556316250024122 0ustar zuulzuul00000000000000{ "server": { "OS-DCF:diskConfig": "AUTO", "OS-EXT-AZ:availability_zone": "nova", "OS-EXT-SRV-ATTR:host": "compute", "OS-EXT-SRV-ATTR:hostname": "new-server-test", "OS-EXT-SRV-ATTR:hypervisor_hostname": "fake-mini", "OS-EXT-SRV-ATTR:instance_name": "instance-00000001", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:reservation_id": "r-ov3q80zj", "OS-EXT-SRV-ATTR:root_device_name": "/dev/sda", "OS-EXT-SRV-ATTR:user_data": "IyEvYmluL2Jhc2gKL2Jpbi9zdQplY2hvICJJIGFtIGluIHlvdSEiCg==", "OS-EXT-STS:power_state": 1, "OS-EXT-STS:task_state": null, "OS-EXT-STS:vm_state": "active", "OS-SRV-USG:launched_at": "2017-02-14T19:23:59.895661", "OS-SRV-USG:terminated_at": null, "accessIPv4": "1.2.3.4", "accessIPv6": "80fe::", "addresses": { "private": [ { "OS-EXT-IPS-MAC:mac_addr": "aa:bb:cc:dd:ee:ff", "OS-EXT-IPS:type": "fixed", "addr": "192.168.0.3", "version": 4 } ] }, "config_drive": "", "created": "2017-02-14T19:23:58Z", "description": null, "flavor": { "disk": 1, "ephemeral": 0, "extra_specs": { "hw:cpu_model": "SandyBridge", "hw:mem_page_size": "2048", "hw:cpu_policy": "dedicated" }, "original_name": "m1.tiny.specs", "ram": 512, "swap": 0, "vcpus": 1 }, "hostId": "2091634baaccdc4c5a1d57069c833e402921df696b7f970791b12ec6", "host_status": "UP", "id": "9168b536-cd40-4630-b43f-b259807c6e87", "image": { "id": "70a599e0-31e7-49b7-b260-868f441e862b", "links": [ { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/images/70a599e0-31e7-49b7-b260-868f441e862b", "rel": "bookmark" } ] }, "key_name": null, "links": [ { "href": "http://openstack.example.com/v2.1/6f70656e737461636b20342065766572/servers/9168b536-cd40-4630-b43f-b259807c6e87", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/servers/9168b536-cd40-4630-b43f-b259807c6e87", "rel": "bookmark" } ], "locked": false, "metadata": { "My Server Name": "Apache1" }, "name": "new-server-test", "os-extended-volumes:volumes_attached": [ { "delete_on_termination": false, "id": "volume_id1" }, { "delete_on_termination": false, "id": "volume_id2" } ], "progress": 0, "security_groups": [ { "name": "default" } ], "status": "ACTIVE", "tags": [], "tenant_id": "6f70656e737461636b20342065766572", "updated": "2017-02-14T19:24:00Z", "user_id": "fake" } } nova-17.0.13/doc/api_samples/servers/v2.47/server-create-resp.json0000664000175000017500000000124613556316250024605 0ustar zuulzuul00000000000000{ "server": { "OS-DCF:diskConfig": "AUTO", "adminPass": "S5wqy9sPYUvU", "id": "97108291-2fd7-4dc2-a909-eaae0306a6a9", "links": [ { "href": "http://openstack.example.com/v2.1/6f70656e737461636b20342065766572/servers/97108291-2fd7-4dc2-a909-eaae0306a6a9", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/servers/97108291-2fd7-4dc2-a909-eaae0306a6a9", "rel": "bookmark" } ], "security_groups": [ { "name": "default" } ] } }nova-17.0.13/doc/api_samples/servers/v2.47/server-action-rebuild-resp.json0000664000175000017500000000346713556316250026252 0ustar zuulzuul00000000000000{ "server": { "accessIPv4": "1.2.3.4", "accessIPv6": "80fe::", "addresses": { "private": [ { "addr": "192.168.0.3", "version": 4 } ] }, "adminPass": "seekr3t", "created": "2013-11-14T06:29:00Z", "flavor": { "disk": 1, "ephemeral": 0, "extra_specs": {}, "original_name": "m1.tiny", "ram": 512, "swap": 0, "vcpus": 1 }, "hostId": "28d8d56f0e3a77e20891f455721cbb68032e017045e20aa5dfc6cb66", "id": "a0a80a94-3d81-4a10-822a-daa0cf9e870b", "image": { "id": "70a599e0-31e7-49b7-b260-868f441e862b", "links": [ { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/images/70a599e0-31e7-49b7-b260-868f441e862b", "rel": "bookmark" } ] }, "links": [ { "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/servers/a0a80a94-3d81-4a10-822a-daa0cf9e870b", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/servers/a0a80a94-3d81-4a10-822a-daa0cf9e870b", "rel": "bookmark" } ], "locked": false, "metadata": { "meta_var": "meta_val" }, "name": "foobar", "description" : null, "progress": 0, "status": "ACTIVE", "OS-DCF:diskConfig": "AUTO", "tags": [], "tenant_id": "6f70656e737461636b20342065766572", "updated": "2013-11-14T06:29:02Z", "user_id": "fake" } } nova-17.0.13/doc/api_samples/servers/v2.47/servers-list-resp.json0000664000175000017500000000113613556316250024476 0ustar zuulzuul00000000000000{ "servers": [ { "id": "6e3a87e6-a133-452e-86e1-a31291c1b1c8", "links": [ { "href": "http://openstack.example.com/v2.1/6f70656e737461636b20342065766572/servers/6e3a87e6-a133-452e-86e1-a31291c1b1c8", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/servers/6e3a87e6-a133-452e-86e1-a31291c1b1c8", "rel": "bookmark" } ], "name": "new-server-test" } ] }nova-17.0.13/doc/api_samples/servers/v2.47/server-update-req.json0000664000175000017500000000024213556316250024435 0ustar zuulzuul00000000000000{ "server": { "accessIPv4": "1.2.3.4", "accessIPv6": "80fe::", "OS-DCF:diskConfig": "AUTO", "name" : "new-server-test" } }nova-17.0.13/doc/api_samples/servers/v2.47/servers-details-resp.json0000664000175000017500000000732013556316250025151 0ustar zuulzuul00000000000000{ "servers": [ { "OS-DCF:diskConfig": "AUTO", "OS-EXT-AZ:availability_zone": "nova", "OS-EXT-SRV-ATTR:host": "compute", "OS-EXT-SRV-ATTR:hostname": "new-server-test", "OS-EXT-SRV-ATTR:hypervisor_hostname": "fake-mini", "OS-EXT-SRV-ATTR:instance_name": "instance-00000001", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:reservation_id": "r-iffothgx", "OS-EXT-SRV-ATTR:root_device_name": "/dev/sda", "OS-EXT-SRV-ATTR:user_data": "IyEvYmluL2Jhc2gKL2Jpbi9zdQplY2hvICJJIGFtIGluIHlvdSEiCg==", "OS-EXT-STS:power_state": 1, "OS-EXT-STS:task_state": null, "OS-EXT-STS:vm_state": "active", "OS-SRV-USG:launched_at": "2017-02-14T19:24:43.891568", "OS-SRV-USG:terminated_at": null, "accessIPv4": "1.2.3.4", "accessIPv6": "80fe::", "addresses": { "private": [ { "OS-EXT-IPS-MAC:mac_addr": "aa:bb:cc:dd:ee:ff", "OS-EXT-IPS:type": "fixed", "addr": "192.168.0.3", "version": 4 } ] }, "config_drive": "", "created": "2017-02-14T19:24:42Z", "description": null, "flavor": { "disk": 1, "ephemeral": 0, "extra_specs": { "hw:cpu_model": "SandyBridge", "hw:mem_page_size": "2048", "hw:cpu_policy": "dedicated" }, "original_name": "m1.tiny.specs", "ram": 512, "swap": 0, "vcpus": 1 }, "hostId": "2091634baaccdc4c5a1d57069c833e402921df696b7f970791b12ec6", "host_status": "UP", "id": "764e369e-a874-4401-b7ce-43e4760888da", "image": { "id": "70a599e0-31e7-49b7-b260-868f441e862b", "links": [ { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/images/70a599e0-31e7-49b7-b260-868f441e862b", "rel": "bookmark" } ] }, "key_name": null, "links": [ { "href": "http://openstack.example.com/v2.1/6f70656e737461636b20342065766572/servers/764e369e-a874-4401-b7ce-43e4760888da", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/servers/764e369e-a874-4401-b7ce-43e4760888da", "rel": "bookmark" } ], "locked": false, "metadata": { "My Server Name": "Apache1" }, "name": "new-server-test", "os-extended-volumes:volumes_attached": [ { "delete_on_termination": false, "id": "volume_id1" }, { "delete_on_termination": false, "id": "volume_id2" } ], "progress": 0, "security_groups": [ { "name": "default" } ], "status": "ACTIVE", "tags": [], "tenant_id": "6f70656e737461636b20342065766572", "updated": "2017-02-14T19:24:43Z", "user_id": "fake" } ] } nova-17.0.13/doc/api_samples/servers/v2.57/0000775000175000017500000000000013556316574020203 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/servers/v2.57/server-create-req.json0000664000175000017500000000114413556316250024421 0ustar zuulzuul00000000000000{ "server" : { "accessIPv4": "1.2.3.4", "accessIPv6": "80fe::", "name" : "new-server-test", "imageRef" : "70a599e0-31e7-49b7-b260-868f441e862b", "flavorRef" : "http://openstack.example.com/flavors/1", "availability_zone": "nova", "OS-DCF:diskConfig": "AUTO", "metadata" : { "My Server Name" : "Apache1" }, "security_groups": [ { "name": "default" } ], "user_data": "IyEvYmluL2Jhc2gKL2Jpbi9zdQplY2hvICJJIGFtIGluIHlvdSEiCg==", "networks": "auto" } } nova-17.0.13/doc/api_samples/servers/v2.57/server-action-rebuild.json0000664000175000017500000000062713556316250025277 0ustar zuulzuul00000000000000{ "rebuild" : { "accessIPv4": "1.2.3.4", "accessIPv6": "80fe::", "imageRef": "70a599e0-31e7-49b7-b260-868f441e862b", "name": "foobar", "key_name": "new-key", "description": "description of foobar", "adminPass": "seekr3t", "metadata" : { "meta_var": "meta_val" }, "user_data": "ZWNobyAiaGVsbG8gd29ybGQi" } } nova-17.0.13/doc/api_samples/servers/v2.57/server-create-resp.json0000664000175000017500000000124613556316250024606 0ustar zuulzuul00000000000000{ "server": { "OS-DCF:diskConfig": "AUTO", "adminPass": "S5wqy9sPYUvU", "id": "97108291-2fd7-4dc2-a909-eaae0306a6a9", "links": [ { "href": "http://openstack.example.com/v2.1/6f70656e737461636b20342065766572/servers/97108291-2fd7-4dc2-a909-eaae0306a6a9", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/servers/97108291-2fd7-4dc2-a909-eaae0306a6a9", "rel": "bookmark" } ], "security_groups": [ { "name": "default" } ] } }nova-17.0.13/doc/api_samples/servers/v2.57/server-action-rebuild-resp.json0000664000175000017500000000363113556316250026244 0ustar zuulzuul00000000000000{ "server": { "accessIPv4": "1.2.3.4", "accessIPv6": "80fe::", "addresses": { "private": [ { "addr": "192.168.0.3", "version": 4 } ] }, "adminPass": "seekr3t", "created": "2013-11-14T06:29:00Z", "flavor": { "disk": 1, "ephemeral": 0, "extra_specs": {}, "original_name": "m1.tiny", "ram": 512, "swap": 0, "vcpus": 1 }, "hostId": "28d8d56f0e3a77e20891f455721cbb68032e017045e20aa5dfc6cb66", "id": "a0a80a94-3d81-4a10-822a-daa0cf9e870b", "image": { "id": "70a599e0-31e7-49b7-b260-868f441e862b", "links": [ { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/images/70a599e0-31e7-49b7-b260-868f441e862b", "rel": "bookmark" } ] }, "links": [ { "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/servers/a0a80a94-3d81-4a10-822a-daa0cf9e870b", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/servers/a0a80a94-3d81-4a10-822a-daa0cf9e870b", "rel": "bookmark" } ], "locked": false, "metadata": { "meta_var": "meta_val" }, "name": "foobar", "key_name": "new-key", "description": "description of foobar", "progress": 0, "status": "ACTIVE", "OS-DCF:diskConfig": "AUTO", "tenant_id": "6f70656e737461636b20342065766572", "updated": "2013-11-14T06:29:02Z", "user_id": "fake", "tags": [], "user_data": "ZWNobyAiaGVsbG8gd29ybGQi" } } nova-17.0.13/doc/api_samples/servers/v2.19/0000775000175000017500000000000013556316574020201 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/servers/v2.19/server-put-req.json0000664000175000017500000000017013556316250023762 0ustar zuulzuul00000000000000{ "server" : { "name" : "updated-server-test", "description" : "updated-server-description" } } nova-17.0.13/doc/api_samples/servers/v2.19/server-create-req.json0000664000175000017500000000057013556316250024421 0ustar zuulzuul00000000000000{ "server" : { "accessIPv4": "1.2.3.4", "accessIPv6": "80fe::", "name" : "new-server-test", "description" : "new-server-description", "imageRef" : "70a599e0-31e7-49b7-b260-868f441e862b", "flavorRef" : "http://openstack.example.com/flavors/1", "metadata" : { "My Server Name" : "Apache1" } } }nova-17.0.13/doc/api_samples/servers/v2.19/server-action-rebuild.json0000664000175000017500000000051613556316250025272 0ustar zuulzuul00000000000000{ "rebuild" : { "accessIPv4" : "1.2.3.4", "accessIPv6" : "80fe::", "imageRef" : "70a599e0-31e7-49b7-b260-868f441e862b", "name" : "foobar", "description" : "description of foobar", "adminPass" : "seekr3t", "metadata" : { "meta_var" : "meta_val" } } } nova-17.0.13/doc/api_samples/servers/v2.19/server-get-resp.json0000664000175000017500000000626213556316250024123 0ustar zuulzuul00000000000000{ "server": { "accessIPv4": "1.2.3.4", "accessIPv6": "80fe::", "addresses": { "private": [ { "OS-EXT-IPS-MAC:mac_addr": "aa:bb:cc:dd:ee:ff", "OS-EXT-IPS:type": "fixed", "addr": "192.168.0.3", "version": 4 } ] }, "created": "2015-12-07T17:24:14Z", "description": "new-server-description", "flavor": { "id": "1", "links": [ { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/flavors/1", "rel": "bookmark" } ] }, "hostId": "c656e68b04b483cfc87cdbaa2346557b174ec1cb6be6afbd2a0133a0", "id": "ddb205dc-717e-496e-8e96-88a3b31b075d", "image": { "id": "70a599e0-31e7-49b7-b260-868f441e862b", "links": [ { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/images/70a599e0-31e7-49b7-b260-868f441e862b", "rel": "bookmark" } ] }, "key_name": null, "links": [ { "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/servers/ddb205dc-717e-496e-8e96-88a3b31b075d", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/servers/ddb205dc-717e-496e-8e96-88a3b31b075d", "rel": "bookmark" } ], "locked": false, "metadata": { "My Server Name": "Apache1" }, "name": "new-server-test", "config_drive": "", "OS-DCF:diskConfig": "AUTO", "OS-EXT-AZ:availability_zone": "nova", "OS-EXT-SRV-ATTR:host": "b8b357f7100d4391828f2177c922ef93", "OS-EXT-SRV-ATTR:hypervisor_hostname": "fake-mini", "OS-EXT-SRV-ATTR:instance_name": "instance-00000001", "OS-EXT-SRV-ATTR:reservation_id": "r-00000001", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:hostname": "fake-hostname", "OS-EXT-SRV-ATTR:root_device_name": "/dev/sda", "OS-EXT-SRV-ATTR:user_data": "", "OS-EXT-STS:power_state": 1, "OS-EXT-STS:task_state": null, "OS-EXT-STS:vm_state": "active", "os-extended-volumes:volumes_attached": [ { "id": "volume_id1", "delete_on_termination": false }, { "id": "volume_id2", "delete_on_termination": false } ], "OS-SRV-USG:launched_at": "2013-09-23T13:37:00.880302", "OS-SRV-USG:terminated_at": null, "progress": 0, "security_groups": [ { "name": "default" } ], "host_status": "UP", "status": "ACTIVE", "tenant_id": "6f70656e737461636b20342065766572", "updated": "2015-12-07T17:24:15Z", "user_id": "fake" } } nova-17.0.13/doc/api_samples/servers/v2.19/server-create-resp.json0000664000175000017500000000124413556316250024602 0ustar zuulzuul00000000000000{ "server": { "adminPass": "rySfUy7xL4C5", "OS-DCF:diskConfig": "AUTO", "id": "19923676-e78b-46fb-af62-a5942aece2ac", "links": [ { "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/servers/19923676-e78b-46fb-af62-a5942aece2ac", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/servers/19923676-e78b-46fb-af62-a5942aece2ac", "rel": "bookmark" } ], "security_groups": [ { "name": "default" } ] } }nova-17.0.13/doc/api_samples/servers/v2.19/server-put-resp.json0000664000175000017500000000353013556316250024147 0ustar zuulzuul00000000000000{ "server": { "accessIPv4": "1.2.3.4", "accessIPv6": "80fe::", "OS-DCF:diskConfig": "AUTO", "addresses": { "private": [ { "addr": "192.168.0.3", "version": 4 } ] }, "created": "2015-12-07T19:19:36Z", "description": "updated-server-description", "flavor": { "id": "1", "links": [ { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/flavors/1", "rel": "bookmark" } ] }, "hostId": "4e17a358ca9bbc8ac6e215837b6410c0baa21b2463fefe3e8f712b31", "id": "c509708e-f0c6-461f-b2b3-507547959eb2", "image": { "id": "70a599e0-31e7-49b7-b260-868f441e862b", "links": [ { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/images/70a599e0-31e7-49b7-b260-868f441e862b", "rel": "bookmark" } ] }, "links": [ { "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/servers/c509708e-f0c6-461f-b2b3-507547959eb2", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/servers/c509708e-f0c6-461f-b2b3-507547959eb2", "rel": "bookmark" } ], "locked": false, "metadata": { "My Server Name": "Apache1" }, "name": "updated-server-test", "progress": 0, "status": "ACTIVE", "tenant_id": "6f70656e737461636b20342065766572", "updated": "2015-12-07T19:19:36Z", "user_id": "fake" } }nova-17.0.13/doc/api_samples/servers/v2.19/server-action-rebuild-resp.json0000664000175000017500000000354313556316250026244 0ustar zuulzuul00000000000000{ "server": { "accessIPv4": "1.2.3.4", "accessIPv6": "80fe::", "addresses": { "private": [ { "addr": "192.168.0.3", "version": 4 } ] }, "adminPass": "seekr3t", "created": "2013-11-14T06:29:00Z", "flavor": { "id": "1", "links": [ { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/flavors/1", "rel": "bookmark" } ] }, "hostId": "28d8d56f0e3a77e20891f455721cbb68032e017045e20aa5dfc6cb66", "id": "a0a80a94-3d81-4a10-822a-daa0cf9e870b", "image": { "id": "70a599e0-31e7-49b7-b260-868f441e862b", "links": [ { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/images/70a599e0-31e7-49b7-b260-868f441e862b", "rel": "bookmark" } ] }, "links": [ { "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/servers/a0a80a94-3d81-4a10-822a-daa0cf9e870b", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/servers/a0a80a94-3d81-4a10-822a-daa0cf9e870b", "rel": "bookmark" } ], "locked": false, "metadata": { "meta_var": "meta_val" }, "name": "foobar", "description" : "description of foobar", "progress": 0, "status": "ACTIVE", "OS-DCF:diskConfig": "AUTO", "tenant_id": "6f70656e737461636b20342065766572", "updated": "2013-11-14T06:29:02Z", "user_id": "fake" } } nova-17.0.13/doc/api_samples/servers/v2.19/servers-list-resp.json0000664000175000017500000000113413556316250024473 0ustar zuulzuul00000000000000{ "servers": [ { "id": "78d95942-8805-4597-b1af-3d0e38330758", "links": [ { "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/servers/78d95942-8805-4597-b1af-3d0e38330758", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/servers/78d95942-8805-4597-b1af-3d0e38330758", "rel": "bookmark" } ], "name": "new-server-test" } ] }nova-17.0.13/doc/api_samples/servers/v2.19/servers-details-resp.json0000664000175000017500000000705313556316250025153 0ustar zuulzuul00000000000000{ "servers": [ { "accessIPv4": "1.2.3.4", "accessIPv6": "80fe::", "addresses": { "private": [ { "OS-EXT-IPS-MAC:mac_addr": "aa:bb:cc:dd:ee:ff", "OS-EXT-IPS:type": "fixed", "addr": "192.168.0.3", "version": 4 } ] }, "created": "2015-12-07T19:54:48Z", "description": "new-server-description", "flavor": { "id": "1", "links": [ { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/flavors/1", "rel": "bookmark" } ] }, "hostId": "a672ab12738567bfcb852c846d66a6ce5c3555b42d73db80bdc6f1a4", "id": "91965362-fd86-4543-8ce1-c17074d2984d", "image": { "id": "70a599e0-31e7-49b7-b260-868f441e862b", "links": [ { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/images/70a599e0-31e7-49b7-b260-868f441e862b", "rel": "bookmark" } ] }, "key_name": null, "links": [ { "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/servers/91965362-fd86-4543-8ce1-c17074d2984d", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/servers/91965362-fd86-4543-8ce1-c17074d2984d", "rel": "bookmark" } ], "locked": false, "metadata": { "My Server Name": "Apache1" }, "name": "new-server-test", "config_drive": "", "OS-DCF:diskConfig": "AUTO", "OS-EXT-AZ:availability_zone": "nova", "OS-EXT-SRV-ATTR:host": "c3f14e9812ad496baf92ccfb3c61e15f", "OS-EXT-SRV-ATTR:hypervisor_hostname": "fake-mini", "OS-EXT-SRV-ATTR:instance_name": "instance-00000001", "OS-EXT-SRV-ATTR:reservation_id": "r-00000001", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:hostname": "fake-hostname", "OS-EXT-SRV-ATTR:root_device_name": "/dev/sda", "OS-EXT-SRV-ATTR:user_data": "", "OS-EXT-STS:power_state": 1, "OS-EXT-STS:task_state": null, "OS-EXT-STS:vm_state": "active", "os-extended-volumes:volumes_attached": [ { "id": "volume_id1", "delete_on_termination": false }, { "id": "volume_id2", "delete_on_termination": false } ], "OS-SRV-USG:launched_at": "2013-09-23T13:53:12.774549", "OS-SRV-USG:terminated_at": null, "progress": 0, "security_groups": [ { "name": "default" } ], "host_status": "UP", "status": "ACTIVE", "tenant_id": "6f70656e737461636b20342065766572", "updated": "2015-12-07T19:54:49Z", "user_id": "fake" } ] } nova-17.0.13/doc/api_samples/servers/server-action-create-image.json0000664000175000017500000000020013556316250025376 0ustar zuulzuul00000000000000{ "createImage" : { "name" : "foo-image", "metadata": { "meta_var": "meta_val" } } }nova-17.0.13/doc/api_samples/servers/server-create-req.json0000664000175000017500000000227513556316250023646 0ustar zuulzuul00000000000000{ "server" : { "accessIPv4": "1.2.3.4", "accessIPv6": "80fe::", "name" : "new-server-test", "imageRef" : "70a599e0-31e7-49b7-b260-868f441e862b", "flavorRef" : "1", "availability_zone": "nova", "OS-DCF:diskConfig": "AUTO", "metadata" : { "My Server Name" : "Apache1" }, "personality": [ { "path": "/etc/banner.txt", "contents": "ICAgICAgDQoiQSBjbG91ZCBkb2VzIG5vdCBrbm93IHdoeSBp dCBtb3ZlcyBpbiBqdXN0IHN1Y2ggYSBkaXJlY3Rpb24gYW5k IGF0IHN1Y2ggYSBzcGVlZC4uLkl0IGZlZWxzIGFuIGltcHVs c2lvbi4uLnRoaXMgaXMgdGhlIHBsYWNlIHRvIGdvIG5vdy4g QnV0IHRoZSBza3kga25vd3MgdGhlIHJlYXNvbnMgYW5kIHRo ZSBwYXR0ZXJucyBiZWhpbmQgYWxsIGNsb3VkcywgYW5kIHlv dSB3aWxsIGtub3csIHRvbywgd2hlbiB5b3UgbGlmdCB5b3Vy c2VsZiBoaWdoIGVub3VnaCB0byBzZWUgYmV5b25kIGhvcml6 b25zLiINCg0KLVJpY2hhcmQgQmFjaA==" } ], "security_groups": [ { "name": "default" } ], "user_data" : "IyEvYmluL2Jhc2gKL2Jpbi9zdQplY2hvICJJIGFtIGluIHlvdSEiCg==" }, "OS-SCH-HNT:scheduler_hints": { "same_host": "48e6a9f6-30af-47e0-bc04-acaed113bb4e" } } nova-17.0.13/doc/api_samples/servers/server-action-reboot.json0000664000175000017500000000006213556316250024353 0ustar zuulzuul00000000000000{ "reboot" : { "type" : "HARD" } }nova-17.0.13/doc/api_samples/servers/server-action-revert-resize.json0000664000175000017500000000003513556316250025667 0ustar zuulzuul00000000000000{ "revertResize" : null }nova-17.0.13/doc/api_samples/servers/v2.16/0000775000175000017500000000000013556316574020176 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/servers/v2.16/server-get-resp.json0000664000175000017500000000627713556316250024126 0ustar zuulzuul00000000000000{ "server": { "addresses": { "private": [ { "addr": "192.168.0.3", "OS-EXT-IPS-MAC:mac_addr": "aa:bb:cc:dd:ee:ff", "OS-EXT-IPS:type": "fixed", "version": 4 } ] }, "created": "2013-09-16T02:55:07Z", "flavor": { "id": "1", "links": [ { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/flavors/1", "rel": "bookmark" } ] }, "hostId": "3bf189131c61d0e71b0a8686a897a0f50d1693b48c47b721fe77155b", "id": "c278163e-36f9-4cf2-b1ac-80db4c63f7a8", "image": { "id": "70a599e0-31e7-49b7-b260-868f441e862b", "links": [ { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/images/70a599e0-31e7-49b7-b260-868f441e862b", "rel": "bookmark" } ] }, "key_name": null, "links": [ { "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/servers/c278163e-36f9-4cf2-b1ac-80db4c63f7a8", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/servers/c278163e-36f9-4cf2-b1ac-80db4c63f7a8", "rel": "bookmark" } ], "metadata": { "My Server Name": "Apache1" }, "name": "new-server-test", "config_drive": "", "OS-DCF:diskConfig": "AUTO", "OS-EXT-AZ:availability_zone": "nova", "OS-EXT-SRV-ATTR:host": "c5f474bf81474f9dbbc404d5b2e4e9b3", "OS-EXT-SRV-ATTR:hypervisor_hostname": "fake-mini", "OS-EXT-SRV-ATTR:instance_name": "instance-00000001", "OS-EXT-SRV-ATTR:hostname": "new-server-test", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:reservation_id": "r-12345678", "OS-EXT-SRV-ATTR:root_device_name": "/dev/sda", "OS-EXT-SRV-ATTR:kernel_id": null, "OS-EXT-SRV-ATTR:ramdisk_id": null, "OS-EXT-SRV-ATTR:user_data": "IyEvYmluL2Jhc2gKL2Jpbi9zdQplY2hvICJJIGFtIGluIHlvdSEiCg==", "OS-EXT-STS:power_state": 1, "OS-EXT-STS:task_state": null, "OS-EXT-STS:vm_state": "active", "os-extended-volumes:volumes_attached": [ { "id": "volume_id1", "delete_on_termination": false }, { "id": "volume_id2", "delete_on_termination": false } ], "OS-SRV-USG:launched_at": "2013-09-23T13:37:00.880302", "OS-SRV-USG:terminated_at": null, "security_groups": [ { "name": "default" } ], "locked": false, "accessIPv4": "1.2.3.4", "accessIPv6": "80fe::", "progress": 0, "status": "ACTIVE", "host_status": "UP", "tenant_id": "6f70656e737461636b20342065766572", "updated": "2013-09-16T02:55:08Z", "user_id": "fake" } } nova-17.0.13/doc/api_samples/servers/v2.16/servers-list-resp.json0000664000175000017500000000113413556316250024470 0ustar zuulzuul00000000000000{ "servers": [ { "id": "22c91117-08de-4894-9aa9-6ef382400985", "links": [ { "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/servers/22c91117-08de-4894-9aa9-6ef382400985", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/servers/22c91117-08de-4894-9aa9-6ef382400985", "rel": "bookmark" } ], "name": "new-server-test" } ] }nova-17.0.13/doc/api_samples/servers/v2.16/servers-details-resp.json0000664000175000017500000000706413556316250025152 0ustar zuulzuul00000000000000{ "servers": [ { "addresses": { "private": [ { "addr": "192.168.0.3", "OS-EXT-IPS-MAC:mac_addr": "aa:bb:cc:dd:ee:ff", "OS-EXT-IPS:type": "fixed", "version": 4 } ] }, "created": "2013-09-16T02:55:03Z", "flavor": { "id": "1", "links": [ { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/flavors/1", "rel": "bookmark" } ] }, "hostId": "63cf07a9fd82e1d2294926ec5c0d2e1e0ca449224246df75e16f23dc", "id": "a8c1c13d-ec7e-47c7-b4ff-077f72c1ca46", "image": { "id": "70a599e0-31e7-49b7-b260-868f441e862b", "links": [ { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/images/70a599e0-31e7-49b7-b260-868f441e862b", "rel": "bookmark" } ] }, "key_name": null, "links": [ { "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/servers/a8c1c13d-ec7e-47c7-b4ff-077f72c1ca46", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/servers/a8c1c13d-ec7e-47c7-b4ff-077f72c1ca46", "rel": "bookmark" } ], "metadata": { "My Server Name": "Apache1" }, "name": "new-server-test", "config_drive": "", "OS-DCF:diskConfig": "AUTO", "OS-EXT-AZ:availability_zone": "nova", "OS-EXT-SRV-ATTR:host": "bc8efe4fdb7148a4bb921a2b03d17de6", "OS-EXT-SRV-ATTR:hypervisor_hostname": "fake-mini", "OS-EXT-SRV-ATTR:instance_name": "instance-00000001", "OS-EXT-SRV-ATTR:hostname": "new-server-test", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:reservation_id": "r-12345678", "OS-EXT-SRV-ATTR:root_device_name": "/dev/sda", "OS-EXT-SRV-ATTR:kernel_id": null, "OS-EXT-SRV-ATTR:ramdisk_id": null, "OS-EXT-SRV-ATTR:user_data": "IyEvYmluL2Jhc2gKL2Jpbi9zdQplY2hvICJJIGFtIGluIHlvdSEiCg==", "locked": false, "accessIPv4": "1.2.3.4", "accessIPv6": "80fe::", "OS-EXT-STS:power_state": 1, "OS-EXT-STS:task_state": null, "OS-EXT-STS:vm_state": "active", "os-extended-volumes:volumes_attached": [ { "id": "volume_id1", "delete_on_termination": false }, { "id": "volume_id2", "delete_on_termination": false } ], "OS-SRV-USG:launched_at": "2013-09-23T13:53:12.774549", "OS-SRV-USG:terminated_at": null, "progress": 0, "security_groups": [ { "name": "default" } ], "status": "ACTIVE", "host_status": "UP", "tenant_id": "6f70656e737461636b20342065766572", "updated": "2013-09-16T02:55:05Z", "user_id": "fake" } ] } nova-17.0.13/doc/api_samples/servers/v2.32/0000775000175000017500000000000013556316574020174 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/servers/v2.32/server-create-req.json0000664000175000017500000000102313556316250024406 0ustar zuulzuul00000000000000{ "server" : { "name" : "device-tagging-server", "flavorRef" : "http://openstack.example.com/flavors/1", "networks" : [{ "uuid" : "ff608d40-75e9-48cb-b745-77bb55b5eaf2", "tag": "nic1" }], "block_device_mapping_v2": [{ "uuid": "70a599e0-31e7-49b7-b260-868f441e862b", "source_type": "image", "destination_type": "volume", "boot_index": 0, "volume_size": "1", "tag": "disk1" }] } } nova-17.0.13/doc/api_samples/servers/v2.32/server-create-resp.json0000664000175000017500000000124713556316250024600 0ustar zuulzuul00000000000000{ "server": { "adminPass": "rojsEujtu7GB", "OS-DCF:diskConfig": "AUTO", "id": "05ec6bde-40bf-47e8-ac07-89c12b2eee03", "links": [ { "href": "http://openstack.example.com/v2.1/6f70656e737461636b20342065766572/servers/05ec6bde-40bf-47e8-ac07-89c12b2eee03", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/servers/05ec6bde-40bf-47e8-ac07-89c12b2eee03", "rel": "bookmark" } ], "security_groups": [ { "name": "default" } ] } } nova-17.0.13/doc/api_samples/servers/server-action-start.json0000664000175000017500000000003113556316250024212 0ustar zuulzuul00000000000000{ "os-start" : null }nova-17.0.13/doc/api_samples/servers/v2.52/0000775000175000017500000000000013556316574020176 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/servers/v2.52/server-create-req.json0000664000175000017500000000244013556316250024414 0ustar zuulzuul00000000000000{ "server" : { "accessIPv4": "1.2.3.4", "accessIPv6": "80fe::", "name" : "new-server-test", "imageRef" : "70a599e0-31e7-49b7-b260-868f441e862b", "flavorRef" : "http://openstack.example.com/flavors/1", "availability_zone": "nova", "OS-DCF:diskConfig": "AUTO", "metadata" : { "My Server Name" : "Apache1" }, "personality": [ { "path": "/etc/banner.txt", "contents": "ICAgICAgDQoiQSBjbG91ZCBkb2VzIG5vdCBrbm93IHdoeSBp dCBtb3ZlcyBpbiBqdXN0IHN1Y2ggYSBkaXJlY3Rpb24gYW5k IGF0IHN1Y2ggYSBzcGVlZC4uLkl0IGZlZWxzIGFuIGltcHVs c2lvbi4uLnRoaXMgaXMgdGhlIHBsYWNlIHRvIGdvIG5vdy4g QnV0IHRoZSBza3kga25vd3MgdGhlIHJlYXNvbnMgYW5kIHRo ZSBwYXR0ZXJucyBiZWhpbmQgYWxsIGNsb3VkcywgYW5kIHlv dSB3aWxsIGtub3csIHRvbywgd2hlbiB5b3UgbGlmdCB5b3Vy c2VsZiBoaWdoIGVub3VnaCB0byBzZWUgYmV5b25kIGhvcml6 b25zLiINCg0KLVJpY2hhcmQgQmFjaA==" } ], "security_groups": [ { "name": "default" } ], "user_data" : "IyEvYmluL2Jhc2gKL2Jpbi9zdQplY2hvICJJIGFtIGluIHlvdSEiCg==", "networks": "auto", "tags": ["tag1", "tag2"] }, "OS-SCH-HNT:scheduler_hints": { "same_host": "48e6a9f6-30af-47e0-bc04-acaed113bb4e" } } nova-17.0.13/doc/api_samples/servers/v2.52/server-get-resp.json0000664000175000017500000000626613556316250024124 0ustar zuulzuul00000000000000{ "server": { "OS-DCF:diskConfig": "AUTO", "OS-EXT-AZ:availability_zone": "nova", "OS-EXT-SRV-ATTR:host": "compute", "OS-EXT-SRV-ATTR:hostname": "new-server-test", "OS-EXT-SRV-ATTR:hypervisor_hostname": "fake-mini", "OS-EXT-SRV-ATTR:instance_name": "instance-00000001", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:reservation_id": "r-ov3q80zj", "OS-EXT-SRV-ATTR:root_device_name": "/dev/sda", "OS-EXT-SRV-ATTR:user_data": "IyEvYmluL2Jhc2gKL2Jpbi9zdQplY2hvICJJIGFtIGluIHlvdSEiCg==", "OS-EXT-STS:power_state": 1, "OS-EXT-STS:task_state": null, "OS-EXT-STS:vm_state": "active", "OS-SRV-USG:launched_at": "2017-02-14T19:23:59.895661", "OS-SRV-USG:terminated_at": null, "accessIPv4": "1.2.3.4", "accessIPv6": "80fe::", "addresses": { "private": [ { "OS-EXT-IPS-MAC:mac_addr": "aa:bb:cc:dd:ee:ff", "OS-EXT-IPS:type": "fixed", "addr": "192.168.0.3", "version": 4 } ] }, "config_drive": "", "created": "2017-02-14T19:23:58Z", "description": null, "flavor": { "disk": 1, "ephemeral": 0, "extra_specs": {}, "original_name": "m1.tiny", "ram": 512, "swap": 0, "vcpus": 1 }, "hostId": "2091634baaccdc4c5a1d57069c833e402921df696b7f970791b12ec6", "host_status": "UP", "id": "9168b536-cd40-4630-b43f-b259807c6e87", "image": { "id": "70a599e0-31e7-49b7-b260-868f441e862b", "links": [ { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/images/70a599e0-31e7-49b7-b260-868f441e862b", "rel": "bookmark" } ] }, "key_name": null, "links": [ { "href": "http://openstack.example.com/v2.1/6f70656e737461636b20342065766572/servers/9168b536-cd40-4630-b43f-b259807c6e87", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/servers/9168b536-cd40-4630-b43f-b259807c6e87", "rel": "bookmark" } ], "locked": false, "metadata": { "My Server Name": "Apache1" }, "name": "new-server-test", "os-extended-volumes:volumes_attached": [ { "delete_on_termination": false, "id": "volume_id1" }, { "delete_on_termination": false, "id": "volume_id2" } ], "progress": 0, "security_groups": [ { "name": "default" } ], "status": "ACTIVE", "tags": ["tag1", "tag2"], "tenant_id": "6f70656e737461636b20342065766572", "updated": "2017-02-14T19:24:00Z", "user_id": "fake" } } nova-17.0.13/doc/api_samples/servers/v2.52/server-create-resp.json0000664000175000017500000000124613556316250024601 0ustar zuulzuul00000000000000{ "server": { "OS-DCF:diskConfig": "AUTO", "adminPass": "S5wqy9sPYUvU", "id": "97108291-2fd7-4dc2-a909-eaae0306a6a9", "links": [ { "href": "http://openstack.example.com/v2.1/6f70656e737461636b20342065766572/servers/97108291-2fd7-4dc2-a909-eaae0306a6a9", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/servers/97108291-2fd7-4dc2-a909-eaae0306a6a9", "rel": "bookmark" } ], "security_groups": [ { "name": "default" } ] } }nova-17.0.13/doc/api_samples/servers/v2.52/servers-list-resp.json0000664000175000017500000000113613556316250024472 0ustar zuulzuul00000000000000{ "servers": [ { "id": "6e3a87e6-a133-452e-86e1-a31291c1b1c8", "links": [ { "href": "http://openstack.example.com/v2.1/6f70656e737461636b20342065766572/servers/6e3a87e6-a133-452e-86e1-a31291c1b1c8", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/servers/6e3a87e6-a133-452e-86e1-a31291c1b1c8", "rel": "bookmark" } ], "name": "new-server-test" } ] }nova-17.0.13/doc/api_samples/servers/v2.52/servers-details-resp.json0000664000175000017500000000706313556316250025151 0ustar zuulzuul00000000000000{ "servers": [ { "OS-DCF:diskConfig": "AUTO", "OS-EXT-AZ:availability_zone": "nova", "OS-EXT-SRV-ATTR:host": "compute", "OS-EXT-SRV-ATTR:hostname": "new-server-test", "OS-EXT-SRV-ATTR:hypervisor_hostname": "fake-mini", "OS-EXT-SRV-ATTR:instance_name": "instance-00000001", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:reservation_id": "r-iffothgx", "OS-EXT-SRV-ATTR:root_device_name": "/dev/sda", "OS-EXT-SRV-ATTR:user_data": "IyEvYmluL2Jhc2gKL2Jpbi9zdQplY2hvICJJIGFtIGluIHlvdSEiCg==", "OS-EXT-STS:power_state": 1, "OS-EXT-STS:task_state": null, "OS-EXT-STS:vm_state": "active", "OS-SRV-USG:launched_at": "2017-02-14T19:24:43.891568", "OS-SRV-USG:terminated_at": null, "accessIPv4": "1.2.3.4", "accessIPv6": "80fe::", "addresses": { "private": [ { "OS-EXT-IPS-MAC:mac_addr": "aa:bb:cc:dd:ee:ff", "OS-EXT-IPS:type": "fixed", "addr": "192.168.0.3", "version": 4 } ] }, "config_drive": "", "created": "2017-02-14T19:24:42Z", "description": null, "flavor": { "disk": 1, "ephemeral": 0, "extra_specs": {}, "original_name": "m1.tiny", "ram": 512, "swap": 0, "vcpus": 1 }, "hostId": "2091634baaccdc4c5a1d57069c833e402921df696b7f970791b12ec6", "host_status": "UP", "id": "764e369e-a874-4401-b7ce-43e4760888da", "image": { "id": "70a599e0-31e7-49b7-b260-868f441e862b", "links": [ { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/images/70a599e0-31e7-49b7-b260-868f441e862b", "rel": "bookmark" } ] }, "key_name": null, "links": [ { "href": "http://openstack.example.com/v2.1/6f70656e737461636b20342065766572/servers/764e369e-a874-4401-b7ce-43e4760888da", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/servers/764e369e-a874-4401-b7ce-43e4760888da", "rel": "bookmark" } ], "locked": false, "metadata": { "My Server Name": "Apache1" }, "name": "new-server-test", "os-extended-volumes:volumes_attached": [ { "delete_on_termination": false, "id": "volume_id1" }, { "delete_on_termination": false, "id": "volume_id2" } ], "progress": 0, "security_groups": [ { "name": "default" } ], "status": "ACTIVE", "tags": ["tag1", "tag2"], "tenant_id": "6f70656e737461636b20342065766572", "updated": "2017-02-14T19:24:43Z", "user_id": "fake" } ] } nova-17.0.13/doc/api_samples/servers/server-update-resp.json0000664000175000017500000000340613556316250024044 0ustar zuulzuul00000000000000{ "server": { "OS-DCF:diskConfig": "AUTO", "accessIPv4": "1.2.3.4", "accessIPv6": "80fe::", "addresses": { "private": [ { "addr": "192.168.0.3", "version": 4 } ] }, "created": "2012-12-02T02:11:57Z", "flavor": { "id": "1", "links": [ { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/flavors/1", "rel": "bookmark" } ] }, "hostId": "6e84af987b4e7ec1c039b16d21f508f4a505672bd94fb0218b668d07", "id": "324dfb7d-f4a9-419a-9a19-237df04b443b", "image": { "id": "70a599e0-31e7-49b7-b260-868f441e862b", "links": [ { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/images/70a599e0-31e7-49b7-b260-868f441e862b", "rel": "bookmark" } ] }, "links": [ { "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/servers/324dfb7d-f4a9-419a-9a19-237df04b443b", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/servers/324dfb7d-f4a9-419a-9a19-237df04b443b", "rel": "bookmark" } ], "metadata": { "My Server Name": "Apache1" }, "name": "new-server-test", "progress": 0, "status": "ACTIVE", "tenant_id": "6f70656e737461636b20342065766572", "updated": "2012-12-02T02:11:58Z", "user_id": "fake" } }nova-17.0.13/doc/api_samples/servers/v2.54/0000775000175000017500000000000013556316574020200 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/servers/v2.54/server-action-rebuild.json0000664000175000017500000000055513556316250025274 0ustar zuulzuul00000000000000{ "rebuild" : { "accessIPv4" : "1.2.3.4", "accessIPv6" : "80fe::", "imageRef" : "70a599e0-31e7-49b7-b260-868f441e862b", "name" : "foobar", "key_name": "new-key", "description" : "description of foobar", "adminPass" : "seekr3t", "metadata" : { "meta_var" : "meta_val" } } } nova-17.0.13/doc/api_samples/servers/v2.54/server-action-rebuild-resp.json0000664000175000017500000000355113556316250026242 0ustar zuulzuul00000000000000{ "server": { "accessIPv4": "1.2.3.4", "accessIPv6": "80fe::", "addresses": { "private": [ { "addr": "192.168.0.3", "version": 4 } ] }, "adminPass": "seekr3t", "created": "2013-11-14T06:29:00Z", "flavor": { "disk": 1, "ephemeral": 0, "extra_specs": {}, "original_name": "m1.tiny", "ram": 512, "swap": 0, "vcpus": 1 }, "hostId": "28d8d56f0e3a77e20891f455721cbb68032e017045e20aa5dfc6cb66", "id": "a0a80a94-3d81-4a10-822a-daa0cf9e870b", "image": { "id": "70a599e0-31e7-49b7-b260-868f441e862b", "links": [ { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/images/70a599e0-31e7-49b7-b260-868f441e862b", "rel": "bookmark" } ] }, "links": [ { "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/servers/a0a80a94-3d81-4a10-822a-daa0cf9e870b", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/servers/a0a80a94-3d81-4a10-822a-daa0cf9e870b", "rel": "bookmark" } ], "locked": false, "metadata": { "meta_var": "meta_val" }, "name": "foobar", "key_name": "new-key", "description" : "description of foobar", "progress": 0, "status": "ACTIVE", "OS-DCF:diskConfig": "AUTO", "tenant_id": "6f70656e737461636b20342065766572", "updated": "2013-11-14T06:29:02Z", "user_id": "fake", "tags": [] } } nova-17.0.13/doc/api_samples/servers/server-action-rebuild.json0000664000175000017500000000156413556316250024517 0ustar zuulzuul00000000000000{ "rebuild" : { "accessIPv4" : "1.2.3.4", "accessIPv6" : "80fe::", "OS-DCF:diskConfig": "AUTO", "imageRef" : "70a599e0-31e7-49b7-b260-868f441e862b", "name" : "foobar", "adminPass" : "seekr3t", "metadata" : { "meta_var" : "meta_val" }, "personality": [ { "path": "/etc/banner.txt", "contents": "ICAgICAgDQoiQSBjbG91ZCBkb2VzIG5vdCBrbm93IHdoeSBp dCBtb3ZlcyBpbiBqdXN0IHN1Y2ggYSBkaXJlY3Rpb24gYW5k IGF0IHN1Y2ggYSBzcGVlZC4uLkl0IGZlZWxzIGFuIGltcHVs c2lvbi4uLnRoaXMgaXMgdGhlIHBsYWNlIHRvIGdvIG5vdy4g QnV0IHRoZSBza3kga25vd3MgdGhlIHJlYXNvbnMgYW5kIHRo ZSBwYXR0ZXJucyBiZWhpbmQgYWxsIGNsb3VkcywgYW5kIHlv dSB3aWxsIGtub3csIHRvbywgd2hlbiB5b3UgbGlmdCB5b3Vy c2VsZiBoaWdoIGVub3VnaCB0byBzZWUgYmV5b25kIGhvcml6 b25zLiINCg0KLVJpY2hhcmQgQmFjaA==" } ] } } nova-17.0.13/doc/api_samples/servers/server-create-req-v257.json0000664000175000017500000000114413556316250024341 0ustar zuulzuul00000000000000{ "server" : { "accessIPv4": "1.2.3.4", "accessIPv6": "80fe::", "name" : "new-server-test", "imageRef" : "70a599e0-31e7-49b7-b260-868f441e862b", "flavorRef" : "http://openstack.example.com/flavors/1", "availability_zone": "nova", "OS-DCF:diskConfig": "AUTO", "metadata" : { "My Server Name" : "Apache1" }, "security_groups": [ { "name": "default" } ], "user_data": "IyEvYmluL2Jhc2gKL2Jpbi9zdQplY2hvICJJIGFtIGluIHlvdSEiCg==", "networks": "auto" } } nova-17.0.13/doc/api_samples/servers/server-action-addfloatingip-req.json0000664000175000017500000000015213556316250026453 0ustar zuulzuul00000000000000{ "addFloatingIp" : { "address": "10.10.10.10", "fixed_address": "192.168.0.3" } }nova-17.0.13/doc/api_samples/servers/v2.3/0000775000175000017500000000000013556316574020112 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/servers/v2.3/server-get-resp.json0000664000175000017500000000620313556316250024027 0ustar zuulzuul00000000000000{ "server": { "accessIPv4": "1.2.3.4", "accessIPv6": "80fe::", "addresses": { "private": [ { "addr": "192.168.0.3", "OS-EXT-IPS-MAC:mac_addr": "aa:bb:cc:dd:ee:ff", "OS-EXT-IPS:type": "fixed", "version": 4 } ] }, "created": "2013-09-03T04:01:32Z", "flavor": { "id": "1", "links": [ { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/flavors/1", "rel": "bookmark" } ] }, "hostId": "92154fab69d5883ba2c8622b7e65f745dd33257221c07af363c51b29", "id": "0e44cc9c-e052-415d-afbf-469b0d384170", "image": { "id": "70a599e0-31e7-49b7-b260-868f441e862b", "links": [ { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/images/70a599e0-31e7-49b7-b260-868f441e862b", "rel": "bookmark" } ] }, "key_name": null, "links": [ { "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/servers/0e44cc9c-e052-415d-afbf-469b0d384170", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/servers/0e44cc9c-e052-415d-afbf-469b0d384170", "rel": "bookmark" } ], "metadata": { "My Server Name": "Apache1" }, "name": "new-server-test", "config_drive": "", "OS-DCF:diskConfig": "AUTO", "OS-EXT-AZ:availability_zone": "nova", "OS-EXT-SRV-ATTR:host": "b8b357f7100d4391828f2177c922ef93", "OS-EXT-SRV-ATTR:hypervisor_hostname": "fake-mini", "OS-EXT-SRV-ATTR:instance_name": "instance-00000001", "OS-EXT-SRV-ATTR:reservation_id": "r-00000001", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:hostname": "fake-hostname", "OS-EXT-SRV-ATTR:root_device_name": "/dev/sda", "OS-EXT-SRV-ATTR:user_data": "IyEvYmluL2Jhc2gKL2Jpbi9zdQplY2hvICJJIGFtIGluIHlvdSEiCg==", "OS-EXT-STS:power_state": 1, "OS-EXT-STS:task_state": null, "OS-EXT-STS:vm_state": "active", "os-extended-volumes:volumes_attached": [ { "id": "volume_id1", "delete_on_termination": false }, { "id": "volume_id2", "delete_on_termination": false } ], "OS-SRV-USG:launched_at": "2013-09-23T13:37:00.880302", "OS-SRV-USG:terminated_at": null, "progress": 0, "security_groups": [ { "name": "default" } ], "status": "ACTIVE", "tenant_id": "6f70656e737461636b20342065766572", "updated": "2013-09-03T04:01:33Z", "user_id": "fake" } } nova-17.0.13/doc/api_samples/servers/v2.3/servers-list-resp.json0000664000175000017500000000113413556316250024404 0ustar zuulzuul00000000000000{ "servers": [ { "id": "22c91117-08de-4894-9aa9-6ef382400985", "links": [ { "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/servers/22c91117-08de-4894-9aa9-6ef382400985", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/servers/22c91117-08de-4894-9aa9-6ef382400985", "rel": "bookmark" } ], "name": "new-server-test" } ] }nova-17.0.13/doc/api_samples/servers/v2.3/servers-details-resp.json0000664000175000017500000000676013556316250025070 0ustar zuulzuul00000000000000{ "servers": [ { "accessIPv4": "1.2.3.4", "accessIPv6": "80fe::", "addresses": { "private": [ { "addr": "192.168.0.3", "OS-EXT-IPS-MAC:mac_addr": "aa:bb:cc:dd:ee:ff", "OS-EXT-IPS:type": "fixed", "version": 4 } ] }, "created": "2013-09-03T04:01:32Z", "flavor": { "id": "1", "links": [ { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/flavors/1", "rel": "bookmark" } ] }, "hostId": "bcf92836fc9ed4203a75cb0337afc7f917d2be504164b995c2334b25", "id": "f5dc173b-6804-445a-a6d8-c705dad5b5eb", "image": { "id": "70a599e0-31e7-49b7-b260-868f441e862b", "links": [ { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/images/70a599e0-31e7-49b7-b260-868f441e862b", "rel": "bookmark" } ] }, "key_name": null, "links": [ { "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/servers/f5dc173b-6804-445a-a6d8-c705dad5b5eb", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/servers/f5dc173b-6804-445a-a6d8-c705dad5b5eb", "rel": "bookmark" } ], "metadata": { "My Server Name": "Apache1" }, "name": "new-server-test", "config_drive": "", "OS-DCF:diskConfig": "AUTO", "OS-EXT-AZ:availability_zone": "nova", "OS-EXT-SRV-ATTR:host": "c3f14e9812ad496baf92ccfb3c61e15f", "OS-EXT-SRV-ATTR:hypervisor_hostname": "fake-mini", "OS-EXT-SRV-ATTR:instance_name": "instance-00000001", "OS-EXT-SRV-ATTR:reservation_id": "r-00000001", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:hostname": "fake-hostname", "OS-EXT-SRV-ATTR:root_device_name": "/dev/sda", "OS-EXT-SRV-ATTR:user_data": "IyEvYmluL2Jhc2gKL2Jpbi9zdQplY2hvICJJIGFtIGluIHlvdSEiCg==", "OS-EXT-STS:power_state": 1, "OS-EXT-STS:task_state": null, "OS-EXT-STS:vm_state": "active", "os-extended-volumes:volumes_attached": [ { "id": "volume_id1", "delete_on_termination": false }, { "id": "volume_id2", "delete_on_termination": false } ], "OS-SRV-USG:launched_at": "2013-09-23T13:53:12.774549", "OS-SRV-USG:terminated_at": null, "progress": 0, "security_groups": [ { "name": "default" } ], "status": "ACTIVE", "tenant_id": "6f70656e737461636b20342065766572", "updated": "2013-09-03T04:01:32Z", "user_id": "fake" } ] } nova-17.0.13/doc/api_samples/servers/v2.37/0000775000175000017500000000000013556316574020201 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/servers/v2.37/server-create-req.json0000664000175000017500000000033113556316250024414 0ustar zuulzuul00000000000000{ "server": { "name": "auto-allocate-network", "imageRef": "70a599e0-31e7-49b7-b260-868f441e862b", "flavorRef": "http://openstack.example.com/flavors/1", "networks": "auto" } } nova-17.0.13/doc/api_samples/servers/v2.37/server-create-resp.json0000664000175000017500000000124413556316250024602 0ustar zuulzuul00000000000000{ "server": { "adminPass": "rySfUy7xL4C5", "OS-DCF:diskConfig": "AUTO", "id": "19923676-e78b-46fb-af62-a5942aece2ac", "links": [ { "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/servers/19923676-e78b-46fb-af62-a5942aece2ac", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/servers/19923676-e78b-46fb-af62-a5942aece2ac", "rel": "bookmark" } ], "security_groups": [ { "name": "default" } ] } }nova-17.0.13/doc/api_samples/servers/server-get-resp.json0000664000175000017500000000523713556316250023345 0ustar zuulzuul00000000000000{ "server": { "accessIPv4": "1.2.3.4", "accessIPv6": "80fe::", "addresses": { "private": [ { "addr": "192.168.0.3", "OS-EXT-IPS-MAC:mac_addr": "aa:bb:cc:dd:ee:ff", "OS-EXT-IPS:type": "fixed", "version": 4 } ] }, "created": "2013-09-03T04:01:32Z", "flavor": { "id": "1", "links": [ { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/flavors/1", "rel": "bookmark" } ] }, "hostId": "92154fab69d5883ba2c8622b7e65f745dd33257221c07af363c51b29", "id": "0e44cc9c-e052-415d-afbf-469b0d384170", "image": { "id": "70a599e0-31e7-49b7-b260-868f441e862b", "links": [ { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/images/70a599e0-31e7-49b7-b260-868f441e862b", "rel": "bookmark" } ] }, "key_name": null, "links": [ { "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/servers/0e44cc9c-e052-415d-afbf-469b0d384170", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/servers/0e44cc9c-e052-415d-afbf-469b0d384170", "rel": "bookmark" } ], "metadata": { "My Server Name": "Apache1" }, "name": "new-server-test", "config_drive": "", "OS-DCF:diskConfig": "AUTO", "OS-EXT-AZ:availability_zone": "nova", "OS-EXT-SRV-ATTR:host": "b8b357f7100d4391828f2177c922ef93", "OS-EXT-SRV-ATTR:hypervisor_hostname": "fake-mini", "OS-EXT-SRV-ATTR:instance_name": "instance-00000001", "OS-EXT-STS:power_state": 1, "OS-EXT-STS:task_state": null, "OS-EXT-STS:vm_state": "active", "os-extended-volumes:volumes_attached": [ { "id": "volume_id1" }, { "id": "volume_id2" } ], "OS-SRV-USG:launched_at": "2013-09-23T13:37:00.880302", "OS-SRV-USG:terminated_at": null, "progress": 0, "security_groups": [ { "name": "default" } ], "status": "ACTIVE", "tenant_id": "6f70656e737461636b20342065766572", "updated": "2013-09-03T04:01:33Z", "user_id": "fake" } } nova-17.0.13/doc/api_samples/servers/server-create-resp.json0000664000175000017500000000124513556316250024024 0ustar zuulzuul00000000000000{ "server": { "OS-DCF:diskConfig": "AUTO", "adminPass": "6NpUwoz2QDRN", "id": "f5dc173b-6804-445a-a6d8-c705dad5b5eb", "links": [ { "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/servers/f5dc173b-6804-445a-a6d8-c705dad5b5eb", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/servers/f5dc173b-6804-445a-a6d8-c705dad5b5eb", "rel": "bookmark" } ], "security_groups": [ { "name": "default" } ] } } nova-17.0.13/doc/api_samples/servers/server-action-resize.json0000664000175000017500000000013113556316250024357 0ustar zuulzuul00000000000000{ "resize" : { "flavorRef" : "2", "OS-DCF:diskConfig": "AUTO" } }nova-17.0.13/doc/api_samples/servers/server-action-rebuild-resp.json0000664000175000017500000000343013556316250025460 0ustar zuulzuul00000000000000{ "server": { "accessIPv4": "1.2.3.4", "accessIPv6": "80fe::", "OS-DCF:diskConfig": "AUTO", "addresses": { "private": [ { "addr": "192.168.0.3", "version": 4 } ] }, "adminPass": "seekr3t", "created": "2013-11-14T06:29:00Z", "flavor": { "id": "1", "links": [ { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/flavors/1", "rel": "bookmark" } ] }, "hostId": "28d8d56f0e3a77e20891f455721cbb68032e017045e20aa5dfc6cb66", "id": "a0a80a94-3d81-4a10-822a-daa0cf9e870b", "image": { "id": "70a599e0-31e7-49b7-b260-868f441e862b", "links": [ { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/images/70a599e0-31e7-49b7-b260-868f441e862b", "rel": "bookmark" } ] }, "links": [ { "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/servers/a0a80a94-3d81-4a10-822a-daa0cf9e870b", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/servers/a0a80a94-3d81-4a10-822a-daa0cf9e870b", "rel": "bookmark" } ], "metadata": { "meta_var": "meta_val" }, "name": "foobar", "progress": 0, "status": "ACTIVE", "tenant_id": "6f70656e737461636b20342065766572", "updated": "2013-11-14T06:29:02Z", "user_id": "fake" } }nova-17.0.13/doc/api_samples/servers/servers-list-resp.json0000664000175000017500000000113413556316250023714 0ustar zuulzuul00000000000000{ "servers": [ { "id": "22c91117-08de-4894-9aa9-6ef382400985", "links": [ { "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/servers/22c91117-08de-4894-9aa9-6ef382400985", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/servers/22c91117-08de-4894-9aa9-6ef382400985", "rel": "bookmark" } ], "name": "new-server-test" } ] }nova-17.0.13/doc/api_samples/servers/server-update-req.json0000664000175000017500000000024213556316250023655 0ustar zuulzuul00000000000000{ "server": { "accessIPv4": "4.3.2.1", "accessIPv6": "80fe::", "OS-DCF:diskConfig": "AUTO", "name" : "new-server-test" } }nova-17.0.13/doc/api_samples/servers/v2.17/0000775000175000017500000000000013556316574020177 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/servers/v2.17/server-action-trigger-crash-dump.json0000664000175000017500000000004313556316250027341 0ustar zuulzuul00000000000000{ "trigger_crash_dump": null } nova-17.0.13/doc/api_samples/servers/server-action-removefloatingip-req.json0000664000175000017500000000010513556316250027216 0ustar zuulzuul00000000000000{ "removeFloatingIp": { "address": "172.16.10.7" } } nova-17.0.13/doc/api_samples/servers/server-action-stop.json0000664000175000017500000000003013556316250024041 0ustar zuulzuul00000000000000{ "os-stop" : null }nova-17.0.13/doc/api_samples/servers/v2.26/0000775000175000017500000000000013556316574020177 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/servers/v2.26/server-action-rebuild.json0000664000175000017500000000171513556316250025272 0ustar zuulzuul00000000000000{ "rebuild" : { "imageRef" : "70a599e0-31e7-49b7-b260-868f441e862b", "accessIPv4" : "1.2.3.4", "accessIPv6" : "80fe::", "adminPass" : "seekr3t", "metadata" : { "meta_var" : "meta_val" }, "name" : "foobar", "OS-DCF:diskConfig": "AUTO", "personality" : [ { "path" : "/etc/banner.txt", "contents" : "ICAgICAgDQoiQSBjbG91ZCBkb2VzIG5vdCBrbm93IHdoeSBp dCBtb3ZlcyBpbiBqdXN0IHN1Y2ggYSBkaXJlY3Rpb24gYW5k IGF0IHN1Y2ggYSBzcGVlZC4uLkl0IGZlZWxzIGFuIGltcHVs c2lvbi4uLnRoaXMgaXMgdGhlIHBsYWNlIHRvIGdvIG5vdy4g QnV0IHRoZSBza3kga25vd3MgdGhlIHJlYXNvbnMgYW5kIHRo ZSBwYXR0ZXJucyBiZWhpbmQgYWxsIGNsb3VkcywgYW5kIHlv dSB3aWxsIGtub3csIHRvbywgd2hlbiB5b3UgbGlmdCB5b3Vy c2VsZiBoaWdoIGVub3VnaCB0byBzZWUgYmV5b25kIGhvcml6 b25zLiINCg0KLVJpY2hhcmQgQmFjaA==" } ], "preserve_ephemeral": false, "description" : "description of foobar" } } nova-17.0.13/doc/api_samples/servers/v2.26/server-action-rebuild-resp.json0000664000175000017500000000360513556316250026241 0ustar zuulzuul00000000000000{ "server": { "accessIPv4": "1.2.3.4", "accessIPv6": "80fe::", "addresses": { "private": [ { "addr": "192.168.0.3", "version": 4 } ] }, "adminPass": "seekr3t", "created": "2013-11-14T06:29:00Z", "flavor": { "id": "1", "links": [ { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/flavors/1", "rel": "bookmark" } ] }, "hostId": "28d8d56f0e3a77e20891f455721cbb68032e017045e20aa5dfc6cb66", "id": "a0a80a94-3d81-4a10-822a-daa0cf9e870b", "image": { "id": "70a599e0-31e7-49b7-b260-868f441e862b", "links": [ { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/images/70a599e0-31e7-49b7-b260-868f441e862b", "rel": "bookmark" } ] }, "links": [ { "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/servers/a0a80a94-3d81-4a10-822a-daa0cf9e870b", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/servers/a0a80a94-3d81-4a10-822a-daa0cf9e870b", "rel": "bookmark" } ], "metadata": { "meta_var": "meta_val" }, "name": "foobar", "OS-DCF:diskConfig": "AUTO", "progress": 0, "status": "ACTIVE", "tenant_id": "6f70656e737461636b20342065766572", "updated": "2013-11-14T06:29:02Z", "user_id": "fake", "locked": false, "description" : "description of foobar", "tags": ["tag1", "tag2"] } } nova-17.0.13/doc/api_samples/servers/v2.45/0000775000175000017500000000000013556316574020200 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/servers/v2.45/server-action-create-image.json0000664000175000017500000000020013556316250026154 0ustar zuulzuul00000000000000{ "createImage" : { "name" : "foo-image", "metadata": { "meta_var": "meta_val" } } }nova-17.0.13/doc/api_samples/servers/v2.45/server-action-create-image-resp.json0000664000175000017500000000007213556316250027132 0ustar zuulzuul00000000000000{ "image_id": "0e7761dd-ee98-41f0-ba35-05994e446431" }nova-17.0.13/doc/api_samples/servers/servers-details-resp.json0000664000175000017500000000575013556316250024376 0ustar zuulzuul00000000000000{ "servers": [ { "accessIPv4": "1.2.3.4", "accessIPv6": "80fe::", "addresses": { "private": [ { "addr": "192.168.0.3", "OS-EXT-IPS-MAC:mac_addr": "aa:bb:cc:dd:ee:ff", "OS-EXT-IPS:type": "fixed", "version": 4 } ] }, "created": "2013-09-03T04:01:32Z", "flavor": { "id": "1", "links": [ { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/flavors/1", "rel": "bookmark" } ] }, "hostId": "bcf92836fc9ed4203a75cb0337afc7f917d2be504164b995c2334b25", "id": "f5dc173b-6804-445a-a6d8-c705dad5b5eb", "image": { "id": "70a599e0-31e7-49b7-b260-868f441e862b", "links": [ { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/images/70a599e0-31e7-49b7-b260-868f441e862b", "rel": "bookmark" } ] }, "key_name": null, "links": [ { "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/servers/f5dc173b-6804-445a-a6d8-c705dad5b5eb", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/servers/f5dc173b-6804-445a-a6d8-c705dad5b5eb", "rel": "bookmark" } ], "metadata": { "My Server Name": "Apache1" }, "name": "new-server-test", "config_drive": "", "OS-DCF:diskConfig": "AUTO", "OS-EXT-AZ:availability_zone": "nova", "OS-EXT-SRV-ATTR:host": "c3f14e9812ad496baf92ccfb3c61e15f", "OS-EXT-SRV-ATTR:hypervisor_hostname": "fake-mini", "OS-EXT-SRV-ATTR:instance_name": "instance-00000001", "OS-EXT-STS:power_state": 1, "OS-EXT-STS:task_state": null, "OS-EXT-STS:vm_state": "active", "os-extended-volumes:volumes_attached": [ { "id": "volume_id1" }, { "id": "volume_id2" } ], "OS-SRV-USG:launched_at": "2013-09-23T13:53:12.774549", "OS-SRV-USG:terminated_at": null, "progress": 0, "security_groups": [ { "name": "default" } ], "status": "ACTIVE", "tenant_id": "6f70656e737461636b20342065766572", "updated": "2013-09-03T04:01:32Z", "user_id": "fake" } ] } nova-17.0.13/doc/api_samples/os-floating-ips-bulk/0000775000175000017500000000000013556316574021677 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/os-floating-ips-bulk/floating-ips-bulk-delete-resp.json0000664000175000017500000000006413556316250030317 0ustar zuulzuul00000000000000{ "floating_ips_bulk_delete": "192.168.1.0/24" }nova-17.0.13/doc/api_samples/os-floating-ips-bulk/floating-ips-bulk-list-resp.json0000664000175000017500000000124713556316250030034 0ustar zuulzuul00000000000000{ "floating_ip_info": [ { "address": "10.10.10.1", "instance_uuid": null, "fixed_ip": null, "interface": "eth0", "pool": "nova", "project_id": null }, { "address": "10.10.10.2", "instance_uuid": null, "fixed_ip": null, "interface": "eth0", "pool": "nova", "project_id": null }, { "address": "10.10.10.3", "instance_uuid": null, "fixed_ip": null, "interface": "eth0", "pool": "nova", "project_id": null } ] }nova-17.0.13/doc/api_samples/os-floating-ips-bulk/floating-ips-bulk-create-req.json0000664000175000017500000000020613556316250030134 0ustar zuulzuul00000000000000{ "floating_ips_bulk_create": { "ip_range": "192.168.1.0/24", "pool": "nova", "interface": "eth0" } } nova-17.0.13/doc/api_samples/os-floating-ips-bulk/floating-ips-bulk-delete-req.json0000664000175000017500000000004413556316250030133 0ustar zuulzuul00000000000000{ "ip_range": "192.168.1.0/24" }nova-17.0.13/doc/api_samples/os-floating-ips-bulk/floating-ips-bulk-create-resp.json0000664000175000017500000000020513556316250030315 0ustar zuulzuul00000000000000{ "floating_ips_bulk_create": { "interface": "eth0", "ip_range": "192.168.1.0/24", "pool": "nova" } }nova-17.0.13/doc/api_samples/os-floating-ips-bulk/floating-ips-bulk-list-by-host-resp.json0000664000175000017500000000037113556316250031414 0ustar zuulzuul00000000000000{ "floating_ip_info": [ { "address": "10.10.10.3", "instance_uuid": null, "fixed_ip": null, "interface": "eth0", "pool": "nova", "project_id": null } ] }nova-17.0.13/doc/api_samples/os-remote-consoles/0000775000175000017500000000000013556316574021466 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/os-remote-consoles/get-vnc-console-post-req.json0000664000175000017500000000007313556316250027123 0ustar zuulzuul00000000000000{ "os-getVNCConsole": { "type": "novnc" } }nova-17.0.13/doc/api_samples/os-remote-consoles/v2.6/0000775000175000017500000000000013556316574022161 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/os-remote-consoles/v2.6/create-vnc-console-req.json0000664000175000017500000000012513556316250027315 0ustar zuulzuul00000000000000{ "remote_console": { "protocol": "vnc", "type": "novnc" } } nova-17.0.13/doc/api_samples/os-remote-consoles/v2.6/create-vnc-console-resp.json0000664000175000017500000000027013556316250027500 0ustar zuulzuul00000000000000{ "remote_console": { "protocol": "vnc", "type": "novnc", "url": "http://example.com:6080/vnc_auto.html?token=b60bcfc3-5fd4-4d21-986c-e83379107819" } } nova-17.0.13/doc/api_samples/os-remote-consoles/get-spice-console-post-req.json0000664000175000017500000000010313556316250027432 0ustar zuulzuul00000000000000{ "os-getSPICEConsole": { "type": "spice-html5" } }nova-17.0.13/doc/api_samples/os-remote-consoles/v2.8/0000775000175000017500000000000013556316574022163 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/os-remote-consoles/v2.8/create-mks-console-resp.json0000664000175000017500000000026413556316250027511 0ustar zuulzuul00000000000000{ "remote_console": { "protocol": "mks", "type": "webmks", "url": "http://example.com:6090/mks.html?token=b60bcfc3-5fd4-4d21-986c-e83379107819" } } nova-17.0.13/doc/api_samples/os-remote-consoles/v2.8/create-mks-console-req.json0000664000175000017500000000012613556316250027324 0ustar zuulzuul00000000000000{ "remote_console": { "protocol": "mks", "type": "webmks" } } nova-17.0.13/doc/api_samples/os-remote-consoles/get-rdp-console-post-resp.json0000664000175000017500000000021313556316250027300 0ustar zuulzuul00000000000000{ "console": { "type": "rdp-html5", "url": "http://127.0.0.1:6083/?token=191996c3-7b0f-42f3-95a7-f1839f2da6ed" } } nova-17.0.13/doc/api_samples/os-remote-consoles/get-vnc-console-post-resp.json0000664000175000017500000000022313556316250027302 0ustar zuulzuul00000000000000{ "console": { "type": "novnc", "url": "http://127.0.0.1:6080/vnc_auto.html?token=191996c3-7b0f-42f3-95a7-f1839f2da6ed" } }nova-17.0.13/doc/api_samples/os-remote-consoles/get-serial-console-post-req.json0000664000175000017500000000010013556316250027603 0ustar zuulzuul00000000000000{ "os-getSerialConsole": { "type": "serial" } } nova-17.0.13/doc/api_samples/os-remote-consoles/get-rdp-console-post-req.json0000664000175000017500000000010013556316250027111 0ustar zuulzuul00000000000000{ "os-getRDPConsole": { "type": "rdp-html5" } } nova-17.0.13/doc/api_samples/os-remote-consoles/get-spice-console-post-resp.json0000664000175000017500000000023313556316250027620 0ustar zuulzuul00000000000000{ "console": { "type": "spice-html5", "url": "http://127.0.0.1:6082/spice_auto.html?token=a30e5d08-6a20-4043-958f-0852440c6af4" } }nova-17.0.13/doc/api_samples/os-remote-consoles/get-serial-console-post-resp.json0000664000175000017500000000020513556316250027773 0ustar zuulzuul00000000000000{ "console": { "type": "serial", "url":"ws://127.0.0.1:6083/?token=f9906a48-b71e-4f18-baca-c987da3ebdb3" } } nova-17.0.13/doc/api_samples/os-floating-ip-pools/0000775000175000017500000000000013556316574021713 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/os-floating-ip-pools/floatingippools-list-resp.json0000664000175000017500000000020513556316250027723 0ustar zuulzuul00000000000000{ "floating_ip_pools": [ { "name": "pool1" }, { "name": "pool2" } ] }nova-17.0.13/doc/api_samples/os-quota-sets/0000775000175000017500000000000013556316574020455 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/os-quota-sets/quotas-update-force-post-req.json0000664000175000017500000000011513556316250026774 0ustar zuulzuul00000000000000{ "quota_set": { "force": "True", "instances": 45 } }nova-17.0.13/doc/api_samples/os-quota-sets/v2.57/0000775000175000017500000000000013556316574021236 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/os-quota-sets/v2.57/quotas-update-force-post-req.json0000664000175000017500000000011513556316250027555 0ustar zuulzuul00000000000000{ "quota_set": { "force": "True", "instances": 45 } }nova-17.0.13/doc/api_samples/os-quota-sets/v2.57/user-quotas-show-get-resp.json0000664000175000017500000000036713556316250027120 0ustar zuulzuul00000000000000{ "quota_set": { "cores": 20, "id": "fake_tenant", "instances": 10, "key_pairs": 100, "metadata_items": 128, "ram": 51200, "server_groups": 10, "server_group_members": 10 } } nova-17.0.13/doc/api_samples/os-quota-sets/v2.57/quotas-show-detail-get-resp.json0000664000175000017500000000151213556316250027375 0ustar zuulzuul00000000000000{ "quota_set": { "cores": { "in_use": 0, "limit": 20, "reserved": 0 }, "id": "fake_tenant", "instances": { "in_use": 0, "limit": 10, "reserved": 0 }, "key_pairs": { "in_use": 0, "limit": 100, "reserved": 0 }, "metadata_items": { "in_use": 0, "limit": 128, "reserved": 0 }, "ram": { "in_use": 0, "limit": 51200, "reserved": 0 }, "server_group_members": { "in_use": 0, "limit": 10, "reserved": 0 }, "server_groups": { "in_use": 0, "limit": 10, "reserved": 0 } } } nova-17.0.13/doc/api_samples/os-quota-sets/v2.57/user-quotas-update-post-req.json0000664000175000017500000000006313556316250027437 0ustar zuulzuul00000000000000{ "quota_set": { "instances": 9 } }nova-17.0.13/doc/api_samples/os-quota-sets/v2.57/quotas-update-post-req.json0000664000175000017500000000006413556316250026464 0ustar zuulzuul00000000000000{ "quota_set": { "instances": 20 } }nova-17.0.13/doc/api_samples/os-quota-sets/v2.57/user-quotas-update-post-resp.json0000664000175000017500000000033113556316250027617 0ustar zuulzuul00000000000000{ "quota_set": { "cores": 20, "instances": 9, "key_pairs": 100, "metadata_items": 128, "ram": 51200, "server_groups": 10, "server_group_members": 10 } } nova-17.0.13/doc/api_samples/os-quota-sets/v2.57/quotas-show-defaults-get-resp.json0000664000175000017500000000036713556316250027751 0ustar zuulzuul00000000000000{ "quota_set": { "cores": 20, "id": "fake_tenant", "instances": 10, "key_pairs": 100, "metadata_items": 128, "ram": 51200, "server_groups": 10, "server_group_members": 10 } } nova-17.0.13/doc/api_samples/os-quota-sets/v2.57/quotas-show-get-resp.json0000664000175000017500000000036713556316250026144 0ustar zuulzuul00000000000000{ "quota_set": { "cores": 20, "id": "fake_tenant", "instances": 10, "key_pairs": 100, "metadata_items": 128, "ram": 51200, "server_groups": 10, "server_group_members": 10 } } nova-17.0.13/doc/api_samples/os-quota-sets/v2.57/quotas-update-post-resp.json0000664000175000017500000000033213556316250026644 0ustar zuulzuul00000000000000{ "quota_set": { "cores": 20, "instances": 20, "key_pairs": 100, "metadata_items": 128, "ram": 51200, "server_groups": 10, "server_group_members": 10 } } nova-17.0.13/doc/api_samples/os-quota-sets/v2.57/quotas-update-force-post-resp.json0000664000175000017500000000033213556316250027740 0ustar zuulzuul00000000000000{ "quota_set": { "cores": 20, "instances": 45, "key_pairs": 100, "metadata_items": 128, "ram": 51200, "server_groups": 10, "server_group_members": 10 } } nova-17.0.13/doc/api_samples/os-quota-sets/user-quotas-show-get-resp.json0000664000175000017500000000077213556316250026337 0ustar zuulzuul00000000000000{ "quota_set": { "cores": 20, "fixed_ips": -1, "floating_ips": 10, "id": "fake_tenant", "injected_file_content_bytes": 10240, "injected_file_path_bytes": 255, "injected_files": 5, "instances": 10, "key_pairs": 100, "metadata_items": 128, "ram": 51200, "security_group_rules": 20, "security_groups": 10, "server_groups": 10, "server_group_members": 10, "networks": 3 } } nova-17.0.13/doc/api_samples/os-quota-sets/quotas-show-detail-get-resp.json0000664000175000017500000000336513556316250026624 0ustar zuulzuul00000000000000{ "quota_set": { "cores": { "in_use": 0, "limit": 20, "reserved": 0 }, "fixed_ips": { "in_use": 0, "limit": -1, "reserved": 0 }, "floating_ips": { "in_use": 0, "limit": 10, "reserved": 0 }, "id": "fake_tenant", "injected_file_content_bytes": { "in_use": 0, "limit": 10240, "reserved": 0 }, "injected_file_path_bytes": { "in_use": 0, "limit": 255, "reserved": 0 }, "injected_files": { "in_use": 0, "limit": 5, "reserved": 0 }, "instances": { "in_use": 0, "limit": 10, "reserved": 0 }, "key_pairs": { "in_use": 0, "limit": 100, "reserved": 0 }, "metadata_items": { "in_use": 0, "limit": 128, "reserved": 0 }, "ram": { "in_use": 0, "limit": 51200, "reserved": 0 }, "security_group_rules": { "in_use": 0, "limit": 20, "reserved": 0 }, "security_groups": { "in_use": 0, "limit": 10, "reserved": 0 }, "server_group_members": { "in_use": 0, "limit": 10, "reserved": 0 }, "server_groups": { "in_use": 0, "limit": 10, "reserved": 0 }, "networks": { "in_use": 2, "limit": 3, "reserved": 0 } } } nova-17.0.13/doc/api_samples/os-quota-sets/user-quotas-update-post-req.json0000664000175000017500000000011413556316250026653 0ustar zuulzuul00000000000000{ "quota_set": { "force": "True", "instances": 9 } }nova-17.0.13/doc/api_samples/os-quota-sets/quotas-update-post-req.json0000664000175000017500000000007213556316250025702 0ustar zuulzuul00000000000000{ "quota_set": { "security_groups": 45 } }nova-17.0.13/doc/api_samples/os-quota-sets/user-quotas-update-post-resp.json0000664000175000017500000000073413556316250027045 0ustar zuulzuul00000000000000{ "quota_set": { "cores": 20, "fixed_ips": -1, "floating_ips": 10, "injected_file_content_bytes": 10240, "injected_file_path_bytes": 255, "injected_files": 5, "instances": 9, "key_pairs": 100, "metadata_items": 128, "ram": 51200, "security_group_rules": 20, "security_groups": 10, "server_groups": 10, "server_group_members": 10, "networks": 3 } } nova-17.0.13/doc/api_samples/os-quota-sets/quotas-show-defaults-get-resp.json0000664000175000017500000000077213556316250027170 0ustar zuulzuul00000000000000{ "quota_set": { "cores": 20, "fixed_ips": -1, "floating_ips": 10, "id": "fake_tenant", "injected_file_content_bytes": 10240, "injected_file_path_bytes": 255, "injected_files": 5, "instances": 10, "key_pairs": 100, "metadata_items": 128, "ram": 51200, "security_group_rules": 20, "security_groups": 10, "server_groups": 10, "server_group_members": 10, "networks": 3 } } nova-17.0.13/doc/api_samples/os-quota-sets/quotas-show-get-resp.json0000664000175000017500000000077213556316250025363 0ustar zuulzuul00000000000000{ "quota_set": { "cores": 20, "fixed_ips": -1, "floating_ips": 10, "id": "fake_tenant", "injected_file_content_bytes": 10240, "injected_file_path_bytes": 255, "injected_files": 5, "instances": 10, "key_pairs": 100, "metadata_items": 128, "ram": 51200, "security_group_rules": 20, "security_groups": 10, "server_groups": 10, "server_group_members": 10, "networks": 3 } } nova-17.0.13/doc/api_samples/os-quota-sets/v2.36/0000775000175000017500000000000013556316574021233 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/os-quota-sets/v2.36/quotas-update-force-post-req.json0000664000175000017500000000011513556316250027552 0ustar zuulzuul00000000000000{ "quota_set": { "force": "True", "instances": 45 } }nova-17.0.13/doc/api_samples/os-quota-sets/v2.36/user-quotas-show-get-resp.json0000664000175000017500000000055313556316250027112 0ustar zuulzuul00000000000000{ "quota_set": { "cores": 20, "id": "fake_tenant", "injected_file_content_bytes": 10240, "injected_file_path_bytes": 255, "injected_files": 5, "instances": 10, "key_pairs": 100, "metadata_items": 128, "ram": 51200, "server_groups": 10, "server_group_members": 10 } } nova-17.0.13/doc/api_samples/os-quota-sets/v2.36/quotas-show-detail-get-resp.json0000664000175000017500000000227513556316250027401 0ustar zuulzuul00000000000000{ "quota_set": { "cores": { "in_use": 0, "limit": 20, "reserved": 0 }, "id": "fake_tenant", "injected_file_content_bytes": { "in_use": 0, "limit": 10240, "reserved": 0 }, "injected_file_path_bytes": { "in_use": 0, "limit": 255, "reserved": 0 }, "injected_files": { "in_use": 0, "limit": 5, "reserved": 0 }, "instances": { "in_use": 0, "limit": 10, "reserved": 0 }, "key_pairs": { "in_use": 0, "limit": 100, "reserved": 0 }, "metadata_items": { "in_use": 0, "limit": 128, "reserved": 0 }, "ram": { "in_use": 0, "limit": 51200, "reserved": 0 }, "server_group_members": { "in_use": 0, "limit": 10, "reserved": 0 }, "server_groups": { "in_use": 0, "limit": 10, "reserved": 0 } } } nova-17.0.13/doc/api_samples/os-quota-sets/v2.36/user-quotas-update-post-req.json0000664000175000017500000000011413556316250027431 0ustar zuulzuul00000000000000{ "quota_set": { "force": "True", "instances": 9 } }nova-17.0.13/doc/api_samples/os-quota-sets/v2.36/quotas-update-post-req.json0000664000175000017500000000006413556316250026461 0ustar zuulzuul00000000000000{ "quota_set": { "instances": 45 } }nova-17.0.13/doc/api_samples/os-quota-sets/v2.36/user-quotas-update-post-resp.json0000664000175000017500000000051513556316250027620 0ustar zuulzuul00000000000000{ "quota_set": { "cores": 20, "injected_file_content_bytes": 10240, "injected_file_path_bytes": 255, "injected_files": 5, "instances": 9, "key_pairs": 100, "metadata_items": 128, "ram": 51200, "server_groups": 10, "server_group_members": 10 } } nova-17.0.13/doc/api_samples/os-quota-sets/v2.36/quotas-show-defaults-get-resp.json0000664000175000017500000000055313556316250027743 0ustar zuulzuul00000000000000{ "quota_set": { "cores": 20, "id": "fake_tenant", "injected_file_content_bytes": 10240, "injected_file_path_bytes": 255, "injected_files": 5, "instances": 10, "key_pairs": 100, "metadata_items": 128, "ram": 51200, "server_groups": 10, "server_group_members": 10 } } nova-17.0.13/doc/api_samples/os-quota-sets/v2.36/quotas-show-get-resp.json0000664000175000017500000000055313556316250026136 0ustar zuulzuul00000000000000{ "quota_set": { "cores": 20, "id": "fake_tenant", "injected_file_content_bytes": 10240, "injected_file_path_bytes": 255, "injected_files": 5, "instances": 10, "key_pairs": 100, "metadata_items": 128, "ram": 51200, "server_groups": 10, "server_group_members": 10 } } nova-17.0.13/doc/api_samples/os-quota-sets/v2.36/quotas-update-post-resp.json0000664000175000017500000000051613556316250026645 0ustar zuulzuul00000000000000{ "quota_set": { "cores": 20, "injected_file_content_bytes": 10240, "injected_file_path_bytes": 255, "injected_files": 5, "instances": 45, "key_pairs": 100, "metadata_items": 128, "ram": 51200, "server_groups": 10, "server_group_members": 10 } } nova-17.0.13/doc/api_samples/os-quota-sets/v2.36/quotas-update-force-post-resp.json0000664000175000017500000000051613556316250027741 0ustar zuulzuul00000000000000{ "quota_set": { "cores": 20, "injected_file_content_bytes": 10240, "injected_file_path_bytes": 255, "injected_files": 5, "instances": 45, "key_pairs": 100, "metadata_items": 128, "ram": 51200, "server_groups": 10, "server_group_members": 10 } } nova-17.0.13/doc/api_samples/os-quota-sets/quotas-update-post-resp.json0000664000175000017500000000073513556316250026072 0ustar zuulzuul00000000000000{ "quota_set": { "cores": 20, "fixed_ips": -1, "floating_ips": 10, "injected_file_content_bytes": 10240, "injected_file_path_bytes": 255, "injected_files": 5, "instances": 10, "key_pairs": 100, "metadata_items": 128, "ram": 51200, "security_group_rules": 20, "security_groups": 45, "server_groups": 10, "server_group_members": 10, "networks": 3 } } nova-17.0.13/doc/api_samples/os-quota-sets/quotas-update-force-post-resp.json0000664000175000017500000000073513556316250027166 0ustar zuulzuul00000000000000{ "quota_set": { "cores": 20, "fixed_ips": -1, "floating_ips": 10, "injected_file_content_bytes": 10240, "injected_file_path_bytes": 255, "injected_files": 5, "instances": 45, "key_pairs": 100, "metadata_items": 128, "ram": 51200, "security_group_rules": 20, "security_groups": 10, "server_groups": 10, "server_group_members": 10, "networks": 3 } } nova-17.0.13/doc/api_samples/os-security-groups/0000775000175000017500000000000013556316574021534 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/os-security-groups/server-security-groups-list-resp.json0000664000175000017500000000034513556316250031030 0ustar zuulzuul00000000000000{ "security_groups": [ { "description": "default", "id": 1, "name": "default", "rules": [], "tenant_id": "6f70656e737461636b20342065766572" } ] }nova-17.0.13/doc/api_samples/os-security-groups/security-groups-create-resp.json0000664000175000017500000000027413556316250030015 0ustar zuulzuul00000000000000{ "security_group": { "description": "default", "id": 1, "name": "default", "rules": [], "tenant_id": "6f70656e737461636b20342065766572" } }nova-17.0.13/doc/api_samples/os-security-groups/security-group-rules-post-req.json0000664000175000017500000000032513556316250030317 0ustar zuulzuul00000000000000{ "security_group_rule": { "parent_group_id": "21111111-1111-1111-1111-111111111112", "ip_protocol": "tcp", "from_port": 22, "to_port": 22, "cidr": "10.0.0.0/24" } }nova-17.0.13/doc/api_samples/os-security-groups/security-group-post-req.json0000664000175000017500000000013613556316250027167 0ustar zuulzuul00000000000000{ "security_group": { "name": "test", "description": "description" } }nova-17.0.13/doc/api_samples/os-security-groups/security-groups-get-resp.json0000664000175000017500000000027413556316250027331 0ustar zuulzuul00000000000000{ "security_group": { "description": "default", "id": 1, "name": "default", "rules": [], "tenant_id": "6f70656e737461636b20342065766572" } }nova-17.0.13/doc/api_samples/os-security-groups/security-group-remove-post-req.json0000664000175000017500000000007513556316250030464 0ustar zuulzuul00000000000000{ "removeSecurityGroup": { "name": "test" } }nova-17.0.13/doc/api_samples/os-security-groups/security-group-rules-post-resp.json0000664000175000017500000000050413556316250030500 0ustar zuulzuul00000000000000{ "security_group_rule": { "from_port": 22, "group": {}, "id": "00000000-0000-0000-0000-000000000000", "ip_protocol": "tcp", "ip_range": { "cidr": "10.0.0.0/24" }, "parent_group_id": "11111111-1111-1111-1111-111111111111", "to_port": 22 } }nova-17.0.13/doc/api_samples/os-security-groups/security-groups-list-get-resp.json0000664000175000017500000000034513556316250030301 0ustar zuulzuul00000000000000{ "security_groups": [ { "description": "default", "id": 1, "name": "default", "rules": [], "tenant_id": "6f70656e737461636b20342065766572" } ] }nova-17.0.13/doc/api_samples/os-security-groups/security-group-add-post-req.json0000664000175000017500000000007213556316250027714 0ustar zuulzuul00000000000000{ "addSecurityGroup": { "name": "test" } }nova-17.0.13/doc/api_samples/os-instance-actions/0000775000175000017500000000000013556316574021612 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/os-instance-actions/instance-action-get-resp.json0000664000175000017500000000154613556316250027305 0ustar zuulzuul00000000000000{ "instanceAction": { "action": "reboot", "events": [ { "event": "schedule", "finish_time": "2012-12-05T01:02:00.000000", "result": "Success", "start_time": "2012-12-05T01:00:02.000000", "traceback": "" }, { "event": "compute_create", "finish_time": "2012-12-05T01:04:00.000000", "result": "Success", "start_time": "2012-12-05T01:03:00.000000", "traceback": "" } ], "instance_uuid": "b48316c5-71e8-45e4-9884-6c78055b9b13", "message": "", "project_id": "147", "request_id": "req-3293a3f1-b44c-4609-b8d2-d81b105636b8", "start_time": "2012-12-05T00:00:00.000000", "user_id": "789" } } nova-17.0.13/doc/api_samples/os-instance-actions/instance-actions-list-resp.json0000664000175000017500000000130413556316250027654 0ustar zuulzuul00000000000000{ "instanceActions": [ { "action": "resize", "instance_uuid": "b48316c5-71e8-45e4-9884-6c78055b9b13", "message": "", "project_id": "842", "request_id": "req-25517360-b757-47d3-be45-0e8d2a01b36a", "start_time": "2012-12-05T01:00:00.000000", "user_id": "789" }, { "action": "reboot", "instance_uuid": "b48316c5-71e8-45e4-9884-6c78055b9b13", "message": "", "project_id": "147", "request_id": "req-3293a3f1-b44c-4609-b8d2-d81b105636b8", "start_time": "2012-12-05T00:00:00.000000", "user_id": "789" } ] } nova-17.0.13/doc/api_samples/os-instance-actions/v2.51/0000775000175000017500000000000013556316574022365 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/os-instance-actions/v2.51/instance-action-get-resp.json0000664000175000017500000000154613556316250030060 0ustar zuulzuul00000000000000{ "instanceAction": { "action": "reboot", "events": [ { "event": "schedule", "finish_time": "2012-12-05T01:02:00.000000", "result": "Success", "start_time": "2012-12-05T01:00:02.000000", "traceback": "" }, { "event": "compute_create", "finish_time": "2012-12-05T01:04:00.000000", "result": "Success", "start_time": "2012-12-05T01:03:00.000000", "traceback": "" } ], "instance_uuid": "b48316c5-71e8-45e4-9884-6c78055b9b13", "message": "", "project_id": "147", "request_id": "req-3293a3f1-b44c-4609-b8d2-d81b105636b8", "start_time": "2012-12-05T00:00:00.000000", "user_id": "789" } } nova-17.0.13/doc/api_samples/os-instance-actions/v2.51/instance-actions-list-resp.json0000664000175000017500000000130413556316250030427 0ustar zuulzuul00000000000000{ "instanceActions": [ { "action": "resize", "instance_uuid": "b48316c5-71e8-45e4-9884-6c78055b9b13", "message": "", "project_id": "842", "request_id": "req-25517360-b757-47d3-be45-0e8d2a01b36a", "start_time": "2012-12-05T01:00:00.000000", "user_id": "789" }, { "action": "reboot", "instance_uuid": "b48316c5-71e8-45e4-9884-6c78055b9b13", "message": "", "project_id": "147", "request_id": "req-3293a3f1-b44c-4609-b8d2-d81b105636b8", "start_time": "2012-12-05T00:00:00.000000", "user_id": "789" } ] } nova-17.0.13/doc/api_samples/os-instance-actions/v2.51/instance-action-get-non-admin-resp.json0000664000175000017500000000144413556316250031733 0ustar zuulzuul00000000000000{ "instanceAction": { "action": "reboot", "events": [ { "event": "schedule", "finish_time": "2012-12-05T01:02:00.000000", "result": "Success", "start_time": "2012-12-05T01:00:02.000000" }, { "event": "compute_create", "finish_time": "2012-12-05T01:04:00.000000", "result": "Success", "start_time": "2012-12-05T01:03:00.000000" } ], "instance_uuid": "b48316c5-71e8-45e4-9884-6c78055b9b13", "message": "", "project_id": "147", "request_id": "req-3293a3f1-b44c-4609-b8d2-d81b105636b8", "start_time": "2012-12-05T00:00:00.000000", "user_id": "789" } } nova-17.0.13/doc/api_samples/os-instance-actions/v2.58/0000775000175000017500000000000013556316574022374 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/os-instance-actions/v2.58/instance-action-get-resp.json0000664000175000017500000000127713556316250030070 0ustar zuulzuul00000000000000{ "instanceAction": { "action": "stop", "events": [ { "event": "compute_stop_instance", "finish_time": "2017-12-07T11:07:06.431902", "result": "Success", "start_time": "2017-12-07T11:07:06.251280", "traceback": null } ], "instance_uuid": "b48316c5-71e8-45e4-9884-6c78055b9b13", "message": "", "project_id": "6f70656e737461636b20342065766572", "request_id": "req-3293a3f1-b44c-4609-b8d2-d81b105636b8", "start_time": "2017-12-07T11:07:06.088644", "updated_at": "2017-12-07T11:07:06.431902", "user_id": "fake" } } nova-17.0.13/doc/api_samples/os-instance-actions/v2.58/instance-actions-list-resp.json0000664000175000017500000000156213556316250030444 0ustar zuulzuul00000000000000{ "instanceActions": [ { "instance_uuid": "e357e6d8-952e-4d1d-b74f-c8519e937706", "user_id": "fake", "start_time": "2017-12-07T11:07:06.088644", "updated_at": "2017-12-07T11:07:06.431902", "request_id": "req-e80018f1-c5bd-45ee-aaa9-290f2f5ef7bc", "action": "stop", "message": null, "project_id": "6f70656e737461636b20342065766572" }, { "instance_uuid": "e357e6d8-952e-4d1d-b74f-c8519e937706", "user_id": "fake", "start_time": "2017-12-07T11:07:04.313653", "updated_at": "2017-12-07T11:07:06.058351", "request_id": "req-c8fd339d-d2bf-43c2-a98a-84328281f83e", "action": "create", "message": null, "project_id": "6f70656e737461636b20342065766572" } ] } ././@LongLink0000000000000000000000000000015000000000000011211 Lustar 00000000000000nova-17.0.13/doc/api_samples/os-instance-actions/v2.58/instance-actions-list-with-timestamp-filter.jsonnova-17.0.13/doc/api_samples/os-instance-actions/v2.58/instance-actions-list-with-timestamp-filter.j0000664000175000017500000000071113556316250033205 0ustar zuulzuul00000000000000{ "instanceActions": [ { "instance_uuid": "e357e6d8-952e-4d1d-b74f-c8519e937706", "user_id": "fake", "start_time": "2017-12-07T11:07:06.088644", "updated_at": "2017-12-07T11:07:06.431902", "request_id": "req-e80018f1-c5bd-45ee-aaa9-290f2f5ef7bc", "action": "stop", "message": null, "project_id": "6f70656e737461636b20342065766572" } ] } nova-17.0.13/doc/api_samples/os-instance-actions/v2.58/instance-actions-list-with-marker-resp.json0000664000175000017500000000071313556316250032671 0ustar zuulzuul00000000000000{ "instanceActions": [ { "instance_uuid": "e357e6d8-952e-4d1d-b74f-c8519e937706", "user_id": "fake", "start_time": "2017-12-07T11:07:04.313653", "updated_at": "2017-12-07T11:07:06.058351", "request_id": "req-c8fd339d-d2bf-43c2-a98a-84328281f83e", "action": "create", "message": null, "project_id": "6f70656e737461636b20342065766572" } ] } nova-17.0.13/doc/api_samples/os-instance-actions/v2.58/instance-actions-list-with-limit-resp.json0000664000175000017500000000134013556316250032523 0ustar zuulzuul00000000000000{ "instanceActions": [ { "instance_uuid": "e357e6d8-952e-4d1d-b74f-c8519e937706", "user_id": "fake", "start_time": "2017-12-07T11:07:06.088644", "updated_at": "2017-12-07T11:07:06.431902", "request_id": "req-e80018f1-c5bd-45ee-aaa9-290f2f5ef7bc", "action": "stop", "message": null, "project_id": "6f70656e737461636b20342065766572" } ], "links": [ { "href": "http://openstack.example.com/v2.1/6f70656e737461636b20342065766572/servers/e357e6d8-952e-4d1d-b74f-c8519e937706/os-instance-actions?limit=1&marker=req-e80018f1-c5bd-45ee-aaa9-290f2f5ef7bc", "rel": "next" } ] } nova-17.0.13/doc/api_samples/os-instance-actions/v2.58/instance-action-get-non-admin-resp.json0000664000175000017500000000123613556316250031741 0ustar zuulzuul00000000000000{ "instanceAction": { "action": "stop", "events": [ { "event": "compute_stop_instance", "finish_time": "2017-12-07T11:07:06.431902", "result": "Success", "start_time": "2017-12-07T11:07:06.251280" } ], "instance_uuid": "b48316c5-71e8-45e4-9884-6c78055b9b13", "message": null, "project_id": "6f70656e737461636b20342065766572", "request_id": "req-3293a3f1-b44c-4609-b8d2-d81b105636b8", "start_time": "2017-12-07T11:07:06.088644", "updated_at": "2017-12-07T11:07:06.431902", "user_id": "fake" } } nova-17.0.13/doc/api_samples/os-instance-actions/v2.21/0000775000175000017500000000000013556316574022362 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/os-instance-actions/v2.21/instance-action-get-resp.json0000664000175000017500000000154613556316250030055 0ustar zuulzuul00000000000000{ "instanceAction": { "action": "reboot", "events": [ { "event": "schedule", "finish_time": "2012-12-05T01:02:00.000000", "result": "Success", "start_time": "2012-12-05T01:00:02.000000", "traceback": "" }, { "event": "compute_create", "finish_time": "2012-12-05T01:04:00.000000", "result": "Success", "start_time": "2012-12-05T01:03:00.000000", "traceback": "" } ], "instance_uuid": "b48316c5-71e8-45e4-9884-6c78055b9b13", "message": "", "project_id": "147", "request_id": "req-3293a3f1-b44c-4609-b8d2-d81b105636b8", "start_time": "2012-12-05T00:00:00.000000", "user_id": "789" } } nova-17.0.13/doc/api_samples/os-instance-actions/v2.21/instance-actions-list-resp.json0000664000175000017500000000130413556316250030424 0ustar zuulzuul00000000000000{ "instanceActions": [ { "action": "resize", "instance_uuid": "b48316c5-71e8-45e4-9884-6c78055b9b13", "message": "", "project_id": "842", "request_id": "req-25517360-b757-47d3-be45-0e8d2a01b36a", "start_time": "2012-12-05T01:00:00.000000", "user_id": "789" }, { "action": "reboot", "instance_uuid": "b48316c5-71e8-45e4-9884-6c78055b9b13", "message": "", "project_id": "147", "request_id": "req-3293a3f1-b44c-4609-b8d2-d81b105636b8", "start_time": "2012-12-05T00:00:00.000000", "user_id": "789" } ] } nova-17.0.13/doc/api_samples/keypairs/0000775000175000017500000000000013556316574017560 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/keypairs/v2.35/0000775000175000017500000000000013556316574020335 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/keypairs/v2.35/keypairs-post-req.json0000664000175000017500000000021413556316250024613 0ustar zuulzuul00000000000000{ "keypair": { "name": "keypair-ab9ff2e6-a6d7-4915-a241-044c369c07f9", "type": "ssh", "user_id": "fake" } } nova-17.0.13/doc/api_samples/keypairs/v2.35/keypairs-list-resp.json0000664000175000017500000000165413556316250024774 0ustar zuulzuul00000000000000{ "keypairs": [ { "keypair": { "fingerprint": "7e:eb:ab:24:ba:d1:e1:88:ae:9a:fb:66:53:df:d3:bd", "name": "keypair-5d935425-31d5-48a7-a0f1-e76e9813f2c3", "type": "ssh", "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCkF3MX59OrlBs3dH5CU7lNmvpbrgZxSpyGjlnE8Flkirnc/Up22lpjznoxqeoTAwTW034k7Dz6aYIrZGmQwe2TkE084yqvlj45Dkyoj95fW/sZacm0cZNuL69EObEGHdprfGJQajrpz22NQoCD8TFB8Wv+8om9NH9Le6s+WPe98WC77KLw8qgfQsbIey+JawPWl4O67ZdL5xrypuRjfIPWjgy/VH85IXg/Z/GONZ2nxHgSShMkwqSFECAC5L3PHB+0+/12M/iikdatFSVGjpuHvkLOs3oe7m6HlOfluSJ85BzLWBbvva93qkGmLg4ZAc8rPh2O+YIsBUHNLLMM/oQp Generated-by-Nova\n" } } ], "keypairs_links": [ { "href": "http://openstack.example.com/v2.1/6f70656e737461636b20342065766572/keypairs?limit=1&marker=keypair-5d935425-31d5-48a7-a0f1-e76e9813f2c3", "rel": "next" } ] }nova-17.0.13/doc/api_samples/keypairs/v2.35/keypairs-list-user1-resp.json0000664000175000017500000000130013556316250026015 0ustar zuulzuul00000000000000{ "keypairs": [ { "keypair": { "fingerprint": "7e:eb:ab:24:ba:d1:e1:88:ae:9a:fb:66:53:df:d3:bd", "name": "keypair-5d935425-31d5-48a7-a0f1-e76e9813f2c3", "type": "ssh", "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCkF3MX59OrlBs3dH5CU7lNmvpbrgZxSpyGjlnE8Flkirnc/Up22lpjznoxqeoTAwTW034k7Dz6aYIrZGmQwe2TkE084yqvlj45Dkyoj95fW/sZacm0cZNuL69EObEGHdprfGJQajrpz22NQoCD8TFB8Wv+8om9NH9Le6s+WPe98WC77KLw8qgfQsbIey+JawPWl4O67ZdL5xrypuRjfIPWjgy/VH85IXg/Z/GONZ2nxHgSShMkwqSFECAC5L3PHB+0+/12M/iikdatFSVGjpuHvkLOs3oe7m6HlOfluSJ85BzLWBbvva93qkGmLg4ZAc8rPh2O+YIsBUHNLLMM/oQp Generated-by-Nova\n" } } ] }nova-17.0.13/doc/api_samples/keypairs/v2.35/keypairs-post-resp.json0000664000175000017500000000450513556316250025004 0ustar zuulzuul00000000000000{ "keypair": { "fingerprint": "7e:eb:ab:24:ba:d1:e1:88:ae:9a:fb:66:53:df:d3:bd", "name": "keypair-ab9ff2e6-a6d7-4915-a241-044c369c07f9", "type": "ssh", "private_key": "-----BEGIN RSA PRIVATE KEY-----\nMIIEpAIBAAKCAQEApBdzF+fTq5QbN3R+QlO5TZr6W64GcUqcho5ZxPBZZIq53P1K\ndtpaY856ManqEwME1tN+JOw8+mmCK2RpkMHtk5BNPOMqr5Y+OQ5MqI/eX1v7GWnJ\ntHGTbi+vRDmxBh3aa3xiUGo66c9tjUKAg/ExQfFr/vKJvTR/S3urPlj3vfFgu+yi\n8PKoH0LGyHsviWsD1peDuu2XS+ca8qbkY3yD1o4Mv1R/OSF4P2fxjjWdp8R4EkoT\nJMKkhRAgAuS9zxwftPv9djP4opHWrRUlRo6bh75CzrN6Hu5uh5Tn5bkifOQcy1gW\n772vd6pBpi4OGQHPKz4djvmCLAVBzSyzDP6EKQIDAQABAoIBAQCB+tU/ZXKlIe+h\nMNTmoz1QfOe+AY625Rwx9cakGqMk4kKyC62VkgcxshfXCToSjzyhEuyEQOFYloT2\n7FY2xXb0gcS861Efv0pQlcQhbbz/GnQ/wC13ktPu3zTdPTm9l54xsFiMTGmYVaf4\n0mnMmhyjmKIsVGDJEDGZUD/oZj7wJGOFha5M4FZrZlJIrEZC0rGGlcC0kGF2no6B\nj1Mu7HjyK3pTKf4dlp+jeRikUF5Pct+qT+rcv2rZ3fl3inxtlLEwZeFPbp/njf/U\nIGxFzZsuLmiFlsJar6M5nEckTB3p25maWWaR8/0jvJRgsPnuoUrUoGDq87DMKCdk\nlw6by9fRAoGBANhnS9ko7Of+ntqIFR7xOG9p/oPATztgHkFxe4GbQ0leaDRTx3vE\ndQmUCnn24xtyVECaI9a4IV+LP1npw8niWUJ4pjgdAlkF4cCTu9sN+cBO15SfdACI\nzD1DaaHmpFCAWlpTo68VWlvWll6i2ncCkRJR1+q/C/yQz7asvl4AakElAoGBAMId\nxqMT2Sy9xLuHsrAoMUvBOkwaMYZH+IAb4DvUDjVIiKWjmonrmopS5Lpb+ALBKqZe\neVfD6HwWQqGwCFItToaEkZvrNfTapoNCHWWg001D49765UV5lMrArDbM1vXtFfM4\nDRYM6+Y6o/6QH8EBgXtyBxcYthIDBM3wBJa67xG1AoGAKTm8fFlMkIG0N4N3Kpbf\nnnH915GaRoBwIx2AXtd6QQ7oIRfYx95MQY/fUw7SgxcLr+btbulTCkWXwwRClUI2\nqPAdElGMcfMp56r9PaTy8EzUyu55heSJrB4ckIhEw0VAcTa/1wnlVduSd+LkZYmq\no2fOD11n5iycNXvBJF1F4LUCgYAMaRbwCi7SW3eefbiA5rDwJPRzNSGBckyC9EVL\nzezynyaNYH5a3wNMYKxa9dJPasYtSND9OXs9o7ay26xMhLUGiKc+jrUuaGRI9Asp\nGjUoNXT2JphN7s4CgHsCLep4YqYKnMTJah4S5CDj/5boIg6DM/EcGupZEHRYLkY8\n1MrAGQKBgQCi9yeC39ctLUNn+Ix604gttWWChdt3ozufTZ7HybJOSRA9Gh3iD5gm\nzlz0xqpGShKpOY2k+ftvja0poMdGeJLt84P3r2q01IgI7w0LmOj5m0W10dHysH27\nBWpCnHdBJMxnBsMRPoM4MKkmKWD9l5PSTCTWtkIpsyuDCko6D9UwZA==\n-----END RSA PRIVATE KEY-----\n", "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCkF3MX59OrlBs3dH5CU7lNmvpbrgZxSpyGjlnE8Flkirnc/Up22lpjznoxqeoTAwTW034k7Dz6aYIrZGmQwe2TkE084yqvlj45Dkyoj95fW/sZacm0cZNuL69EObEGHdprfGJQajrpz22NQoCD8TFB8Wv+8om9NH9Le6s+WPe98WC77KLw8qgfQsbIey+JawPWl4O67ZdL5xrypuRjfIPWjgy/VH85IXg/Z/GONZ2nxHgSShMkwqSFECAC5L3PHB+0+/12M/iikdatFSVGjpuHvkLOs3oe7m6HlOfluSJ85BzLWBbvva93qkGmLg4ZAc8rPh2O+YIsBUHNLLMM/oQp Generated-by-Nova\n", "user_id": "fake" } } nova-17.0.13/doc/api_samples/keypairs/v2.35/keypairs-list-user2-resp.json0000664000175000017500000000167213556316250026032 0ustar zuulzuul00000000000000{ "keypairs": [ { "keypair": { "fingerprint": "7e:eb:ab:24:ba:d1:e1:88:ae:9a:fb:66:53:df:d3:bd", "name": "keypair-5d935425-31d5-48a7-a0f1-e76e9813f2c3", "type": "ssh", "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCkF3MX59OrlBs3dH5CU7lNmvpbrgZxSpyGjlnE8Flkirnc/Up22lpjznoxqeoTAwTW034k7Dz6aYIrZGmQwe2TkE084yqvlj45Dkyoj95fW/sZacm0cZNuL69EObEGHdprfGJQajrpz22NQoCD8TFB8Wv+8om9NH9Le6s+WPe98WC77KLw8qgfQsbIey+JawPWl4O67ZdL5xrypuRjfIPWjgy/VH85IXg/Z/GONZ2nxHgSShMkwqSFECAC5L3PHB+0+/12M/iikdatFSVGjpuHvkLOs3oe7m6HlOfluSJ85BzLWBbvva93qkGmLg4ZAc8rPh2O+YIsBUHNLLMM/oQp Generated-by-Nova\n" } } ], "keypairs_links": [ { "href": "http://openstack.example.com/v2.1/6f70656e737461636b20342065766572/keypairs?limit=1&marker=keypair-5d935425-31d5-48a7-a0f1-e76e9813f2c3&user_id=user2", "rel": "next" } ] }nova-17.0.13/doc/api_samples/keypairs/keypairs-post-req.json0000664000175000017500000000013113556316250024034 0ustar zuulzuul00000000000000{ "keypair": { "name": "keypair-ab9ff2e6-a6d7-4915-a241-044c369c07f9" } }nova-17.0.13/doc/api_samples/keypairs/keypairs-list-resp.json0000664000175000017500000000124113556316250024207 0ustar zuulzuul00000000000000{ "keypairs": [ { "keypair": { "fingerprint": "7e:eb:ab:24:ba:d1:e1:88:ae:9a:fb:66:53:df:d3:bd", "name": "keypair-50ca852e-273f-4cdc-8949-45feba200837", "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCkF3MX59OrlBs3dH5CU7lNmvpbrgZxSpyGjlnE8Flkirnc/Up22lpjznoxqeoTAwTW034k7Dz6aYIrZGmQwe2TkE084yqvlj45Dkyoj95fW/sZacm0cZNuL69EObEGHdprfGJQajrpz22NQoCD8TFB8Wv+8om9NH9Le6s+WPe98WC77KLw8qgfQsbIey+JawPWl4O67ZdL5xrypuRjfIPWjgy/VH85IXg/Z/GONZ2nxHgSShMkwqSFECAC5L3PHB+0+/12M/iikdatFSVGjpuHvkLOs3oe7m6HlOfluSJ85BzLWBbvva93qkGmLg4ZAc8rPh2O+YIsBUHNLLMM/oQp Generated-by-Nova\n" } } ] }nova-17.0.13/doc/api_samples/keypairs/v2.10/0000775000175000017500000000000013556316574020326 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/keypairs/v2.10/keypairs-post-req.json0000664000175000017500000000021413556316250024604 0ustar zuulzuul00000000000000{ "keypair": { "name": "keypair-ab9ff2e6-a6d7-4915-a241-044c369c07f9", "type": "ssh", "user_id": "fake" } } nova-17.0.13/doc/api_samples/keypairs/v2.10/keypairs-list-resp.json0000664000175000017500000000130013556316250024751 0ustar zuulzuul00000000000000{ "keypairs": [ { "keypair": { "fingerprint": "7e:eb:ab:24:ba:d1:e1:88:ae:9a:fb:66:53:df:d3:bd", "name": "keypair-50ca852e-273f-4cdc-8949-45feba200837", "type": "ssh", "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCkF3MX59OrlBs3dH5CU7lNmvpbrgZxSpyGjlnE8Flkirnc/Up22lpjznoxqeoTAwTW034k7Dz6aYIrZGmQwe2TkE084yqvlj45Dkyoj95fW/sZacm0cZNuL69EObEGHdprfGJQajrpz22NQoCD8TFB8Wv+8om9NH9Le6s+WPe98WC77KLw8qgfQsbIey+JawPWl4O67ZdL5xrypuRjfIPWjgy/VH85IXg/Z/GONZ2nxHgSShMkwqSFECAC5L3PHB+0+/12M/iikdatFSVGjpuHvkLOs3oe7m6HlOfluSJ85BzLWBbvva93qkGmLg4ZAc8rPh2O+YIsBUHNLLMM/oQp Generated-by-Nova\n" } } ] }nova-17.0.13/doc/api_samples/keypairs/v2.10/keypairs-post-resp.json0000664000175000017500000000450513556316250024775 0ustar zuulzuul00000000000000{ "keypair": { "fingerprint": "7e:eb:ab:24:ba:d1:e1:88:ae:9a:fb:66:53:df:d3:bd", "name": "keypair-ab9ff2e6-a6d7-4915-a241-044c369c07f9", "type": "ssh", "private_key": "-----BEGIN RSA PRIVATE KEY-----\nMIIEpAIBAAKCAQEApBdzF+fTq5QbN3R+QlO5TZr6W64GcUqcho5ZxPBZZIq53P1K\ndtpaY856ManqEwME1tN+JOw8+mmCK2RpkMHtk5BNPOMqr5Y+OQ5MqI/eX1v7GWnJ\ntHGTbi+vRDmxBh3aa3xiUGo66c9tjUKAg/ExQfFr/vKJvTR/S3urPlj3vfFgu+yi\n8PKoH0LGyHsviWsD1peDuu2XS+ca8qbkY3yD1o4Mv1R/OSF4P2fxjjWdp8R4EkoT\nJMKkhRAgAuS9zxwftPv9djP4opHWrRUlRo6bh75CzrN6Hu5uh5Tn5bkifOQcy1gW\n772vd6pBpi4OGQHPKz4djvmCLAVBzSyzDP6EKQIDAQABAoIBAQCB+tU/ZXKlIe+h\nMNTmoz1QfOe+AY625Rwx9cakGqMk4kKyC62VkgcxshfXCToSjzyhEuyEQOFYloT2\n7FY2xXb0gcS861Efv0pQlcQhbbz/GnQ/wC13ktPu3zTdPTm9l54xsFiMTGmYVaf4\n0mnMmhyjmKIsVGDJEDGZUD/oZj7wJGOFha5M4FZrZlJIrEZC0rGGlcC0kGF2no6B\nj1Mu7HjyK3pTKf4dlp+jeRikUF5Pct+qT+rcv2rZ3fl3inxtlLEwZeFPbp/njf/U\nIGxFzZsuLmiFlsJar6M5nEckTB3p25maWWaR8/0jvJRgsPnuoUrUoGDq87DMKCdk\nlw6by9fRAoGBANhnS9ko7Of+ntqIFR7xOG9p/oPATztgHkFxe4GbQ0leaDRTx3vE\ndQmUCnn24xtyVECaI9a4IV+LP1npw8niWUJ4pjgdAlkF4cCTu9sN+cBO15SfdACI\nzD1DaaHmpFCAWlpTo68VWlvWll6i2ncCkRJR1+q/C/yQz7asvl4AakElAoGBAMId\nxqMT2Sy9xLuHsrAoMUvBOkwaMYZH+IAb4DvUDjVIiKWjmonrmopS5Lpb+ALBKqZe\neVfD6HwWQqGwCFItToaEkZvrNfTapoNCHWWg001D49765UV5lMrArDbM1vXtFfM4\nDRYM6+Y6o/6QH8EBgXtyBxcYthIDBM3wBJa67xG1AoGAKTm8fFlMkIG0N4N3Kpbf\nnnH915GaRoBwIx2AXtd6QQ7oIRfYx95MQY/fUw7SgxcLr+btbulTCkWXwwRClUI2\nqPAdElGMcfMp56r9PaTy8EzUyu55heSJrB4ckIhEw0VAcTa/1wnlVduSd+LkZYmq\no2fOD11n5iycNXvBJF1F4LUCgYAMaRbwCi7SW3eefbiA5rDwJPRzNSGBckyC9EVL\nzezynyaNYH5a3wNMYKxa9dJPasYtSND9OXs9o7ay26xMhLUGiKc+jrUuaGRI9Asp\nGjUoNXT2JphN7s4CgHsCLep4YqYKnMTJah4S5CDj/5boIg6DM/EcGupZEHRYLkY8\n1MrAGQKBgQCi9yeC39ctLUNn+Ix604gttWWChdt3ozufTZ7HybJOSRA9Gh3iD5gm\nzlz0xqpGShKpOY2k+ftvja0poMdGeJLt84P3r2q01IgI7w0LmOj5m0W10dHysH27\nBWpCnHdBJMxnBsMRPoM4MKkmKWD9l5PSTCTWtkIpsyuDCko6D9UwZA==\n-----END RSA PRIVATE KEY-----\n", "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCkF3MX59OrlBs3dH5CU7lNmvpbrgZxSpyGjlnE8Flkirnc/Up22lpjznoxqeoTAwTW034k7Dz6aYIrZGmQwe2TkE084yqvlj45Dkyoj95fW/sZacm0cZNuL69EObEGHdprfGJQajrpz22NQoCD8TFB8Wv+8om9NH9Le6s+WPe98WC77KLw8qgfQsbIey+JawPWl4O67ZdL5xrypuRjfIPWjgy/VH85IXg/Z/GONZ2nxHgSShMkwqSFECAC5L3PHB+0+/12M/iikdatFSVGjpuHvkLOs3oe7m6HlOfluSJ85BzLWBbvva93qkGmLg4ZAc8rPh2O+YIsBUHNLLMM/oQp Generated-by-Nova\n", "user_id": "fake" } } nova-17.0.13/doc/api_samples/keypairs/v2.10/keypairs-import-post-resp.json0000664000175000017500000000072513556316250026305 0ustar zuulzuul00000000000000{ "keypair": { "fingerprint": "1e:2c:9b:56:79:4b:45:77:f9:ca:7a:98:2c:b0:d5:3c", "name": "keypair-803a1926-af78-4b05-902a-1d6f7a8d9d3e", "type": "ssh", "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQDx8nkQv/zgGgB4rMYmIf+6A4l6Rr+o/6lHBQdW5aYd44bd8JttDCE/F/pNRr0lRE+PiqSPO8nDPHw0010JeMH9gYgnnFlyY3/OcJ02RhIPyyxYpv9FhY+2YiUkpwFOcLImyrxEsYXpD/0d3ac30bNH6Sw9JD9UZHYcpSxsIbECHw== Generated-by-Nova", "user_id": "fake" } }nova-17.0.13/doc/api_samples/keypairs/v2.10/keypairs-import-post-req.json0000664000175000017500000000061413556316250026120 0ustar zuulzuul00000000000000{ "keypair": { "name": "keypair-d20a3d59-9433-4b79-8726-20b431d89c78", "type": "ssh", "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQDx8nkQv/zgGgB4rMYmIf+6A4l6Rr+o/6lHBQdW5aYd44bd8JttDCE/F/pNRr0lRE+PiqSPO8nDPHw0010JeMH9gYgnnFlyY3/OcJ02RhIPyyxYpv9FhY+2YiUkpwFOcLImyrxEsYXpD/0d3ac30bNH6Sw9JD9UZHYcpSxsIbECHw== Generated-by-Nova", "user_id": "fake" } } nova-17.0.13/doc/api_samples/keypairs/v2.10/keypairs-get-resp.json0000664000175000017500000000142713556316250024567 0ustar zuulzuul00000000000000{ "keypair": { "fingerprint": "44:fe:29:6e:23:14:b9:53:5b:65:82:58:1c:fe:5a:c3", "name": "keypair-6638abdb-c4e8-407c-ba88-c8dd7cc3c4f1", "type": "ssh", "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC1HTrHCbb9NawNLSV8N6tSa8i637+EC2dA+lsdHHfQlT54t+N0nHhJPlKWDLhc579j87vp6RDFriFJ/smsTnDnf64O12z0kBaJpJPH2zXrBkZFK6q2rmxydURzX/z0yLSCP77SFJ0fdXWH2hMsAusflGyryHGX20n+mZK6mDrxVzGxEz228dwQ5G7Az5OoZDWygH2pqPvKjkifRw0jwUKf3BbkP0QvANACOk26cv16mNFpFJfI1N3OC5lUsZQtKGR01ptJoWijYKccqhkAKuo902tg/qup58J5kflNm7I61sy1mJon6SGqNUSfoQagqtBH6vd/tU1jnlwZ03uUroAL Generated-by-Nova\n", "user_id": "fake", "deleted": false, "created_at": "2014-05-07T12:06:13.681238", "updated_at": null, "deleted_at": null, "id": 1 } } nova-17.0.13/doc/api_samples/keypairs/keypairs-post-resp.json0000664000175000017500000000445513556316250024233 0ustar zuulzuul00000000000000{ "keypair": { "fingerprint": "7e:eb:ab:24:ba:d1:e1:88:ae:9a:fb:66:53:df:d3:bd", "name": "keypair-50ca852e-273f-4cdc-8949-45feba200837", "private_key": "-----BEGIN RSA PRIVATE KEY-----\nMIIEpAIBAAKCAQEApBdzF+fTq5QbN3R+QlO5TZr6W64GcUqcho5ZxPBZZIq53P1K\ndtpaY856ManqEwME1tN+JOw8+mmCK2RpkMHtk5BNPOMqr5Y+OQ5MqI/eX1v7GWnJ\ntHGTbi+vRDmxBh3aa3xiUGo66c9tjUKAg/ExQfFr/vKJvTR/S3urPlj3vfFgu+yi\n8PKoH0LGyHsviWsD1peDuu2XS+ca8qbkY3yD1o4Mv1R/OSF4P2fxjjWdp8R4EkoT\nJMKkhRAgAuS9zxwftPv9djP4opHWrRUlRo6bh75CzrN6Hu5uh5Tn5bkifOQcy1gW\n772vd6pBpi4OGQHPKz4djvmCLAVBzSyzDP6EKQIDAQABAoIBAQCB+tU/ZXKlIe+h\nMNTmoz1QfOe+AY625Rwx9cakGqMk4kKyC62VkgcxshfXCToSjzyhEuyEQOFYloT2\n7FY2xXb0gcS861Efv0pQlcQhbbz/GnQ/wC13ktPu3zTdPTm9l54xsFiMTGmYVaf4\n0mnMmhyjmKIsVGDJEDGZUD/oZj7wJGOFha5M4FZrZlJIrEZC0rGGlcC0kGF2no6B\nj1Mu7HjyK3pTKf4dlp+jeRikUF5Pct+qT+rcv2rZ3fl3inxtlLEwZeFPbp/njf/U\nIGxFzZsuLmiFlsJar6M5nEckTB3p25maWWaR8/0jvJRgsPnuoUrUoGDq87DMKCdk\nlw6by9fRAoGBANhnS9ko7Of+ntqIFR7xOG9p/oPATztgHkFxe4GbQ0leaDRTx3vE\ndQmUCnn24xtyVECaI9a4IV+LP1npw8niWUJ4pjgdAlkF4cCTu9sN+cBO15SfdACI\nzD1DaaHmpFCAWlpTo68VWlvWll6i2ncCkRJR1+q/C/yQz7asvl4AakElAoGBAMId\nxqMT2Sy9xLuHsrAoMUvBOkwaMYZH+IAb4DvUDjVIiKWjmonrmopS5Lpb+ALBKqZe\neVfD6HwWQqGwCFItToaEkZvrNfTapoNCHWWg001D49765UV5lMrArDbM1vXtFfM4\nDRYM6+Y6o/6QH8EBgXtyBxcYthIDBM3wBJa67xG1AoGAKTm8fFlMkIG0N4N3Kpbf\nnnH915GaRoBwIx2AXtd6QQ7oIRfYx95MQY/fUw7SgxcLr+btbulTCkWXwwRClUI2\nqPAdElGMcfMp56r9PaTy8EzUyu55heSJrB4ckIhEw0VAcTa/1wnlVduSd+LkZYmq\no2fOD11n5iycNXvBJF1F4LUCgYAMaRbwCi7SW3eefbiA5rDwJPRzNSGBckyC9EVL\nzezynyaNYH5a3wNMYKxa9dJPasYtSND9OXs9o7ay26xMhLUGiKc+jrUuaGRI9Asp\nGjUoNXT2JphN7s4CgHsCLep4YqYKnMTJah4S5CDj/5boIg6DM/EcGupZEHRYLkY8\n1MrAGQKBgQCi9yeC39ctLUNn+Ix604gttWWChdt3ozufTZ7HybJOSRA9Gh3iD5gm\nzlz0xqpGShKpOY2k+ftvja0poMdGeJLt84P3r2q01IgI7w0LmOj5m0W10dHysH27\nBWpCnHdBJMxnBsMRPoM4MKkmKWD9l5PSTCTWtkIpsyuDCko6D9UwZA==\n-----END RSA PRIVATE KEY-----\n", "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCkF3MX59OrlBs3dH5CU7lNmvpbrgZxSpyGjlnE8Flkirnc/Up22lpjznoxqeoTAwTW034k7Dz6aYIrZGmQwe2TkE084yqvlj45Dkyoj95fW/sZacm0cZNuL69EObEGHdprfGJQajrpz22NQoCD8TFB8Wv+8om9NH9Le6s+WPe98WC77KLw8qgfQsbIey+JawPWl4O67ZdL5xrypuRjfIPWjgy/VH85IXg/Z/GONZ2nxHgSShMkwqSFECAC5L3PHB+0+/12M/iikdatFSVGjpuHvkLOs3oe7m6HlOfluSJ85BzLWBbvva93qkGmLg4ZAc8rPh2O+YIsBUHNLLMM/oQp Generated-by-Nova\n", "user_id": "fake" } }nova-17.0.13/doc/api_samples/keypairs/keypairs-import-post-resp.json0000664000175000017500000000067613556316250025544 0ustar zuulzuul00000000000000{ "keypair": { "fingerprint": "1e:2c:9b:56:79:4b:45:77:f9:ca:7a:98:2c:b0:d5:3c", "name": "keypair-803a1926-af78-4b05-902a-1d6f7a8d9d3e", "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQDx8nkQv/zgGgB4rMYmIf+6A4l6Rr+o/6lHBQdW5aYd44bd8JttDCE/F/pNRr0lRE+PiqSPO8nDPHw0010JeMH9gYgnnFlyY3/OcJ02RhIPyyxYpv9FhY+2YiUkpwFOcLImyrxEsYXpD/0d3ac30bNH6Sw9JD9UZHYcpSxsIbECHw== Generated-by-Nova", "user_id": "fake" } }nova-17.0.13/doc/api_samples/keypairs/v2.2/0000775000175000017500000000000013556316574020247 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/keypairs/v2.2/keypairs-post-req.json0000664000175000017500000000016013556316250024525 0ustar zuulzuul00000000000000{ "keypair": { "name": "keypair-ab9ff2e6-a6d7-4915-a241-044c369c07f9", "type": "ssh" } }nova-17.0.13/doc/api_samples/keypairs/v2.2/keypairs-list-resp.json0000664000175000017500000000130013556316250024672 0ustar zuulzuul00000000000000{ "keypairs": [ { "keypair": { "fingerprint": "7e:eb:ab:24:ba:d1:e1:88:ae:9a:fb:66:53:df:d3:bd", "name": "keypair-50ca852e-273f-4cdc-8949-45feba200837", "type": "ssh", "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCkF3MX59OrlBs3dH5CU7lNmvpbrgZxSpyGjlnE8Flkirnc/Up22lpjznoxqeoTAwTW034k7Dz6aYIrZGmQwe2TkE084yqvlj45Dkyoj95fW/sZacm0cZNuL69EObEGHdprfGJQajrpz22NQoCD8TFB8Wv+8om9NH9Le6s+WPe98WC77KLw8qgfQsbIey+JawPWl4O67ZdL5xrypuRjfIPWjgy/VH85IXg/Z/GONZ2nxHgSShMkwqSFECAC5L3PHB+0+/12M/iikdatFSVGjpuHvkLOs3oe7m6HlOfluSJ85BzLWBbvva93qkGmLg4ZAc8rPh2O+YIsBUHNLLMM/oQp Generated-by-Nova\n" } } ] }nova-17.0.13/doc/api_samples/keypairs/v2.2/keypairs-post-resp.json0000664000175000017500000000450413556316250024715 0ustar zuulzuul00000000000000{ "keypair": { "fingerprint": "7e:eb:ab:24:ba:d1:e1:88:ae:9a:fb:66:53:df:d3:bd", "name": "keypair-50ca852e-273f-4cdc-8949-45feba200837", "type": "ssh", "private_key": "-----BEGIN RSA PRIVATE KEY-----\nMIIEpAIBAAKCAQEApBdzF+fTq5QbN3R+QlO5TZr6W64GcUqcho5ZxPBZZIq53P1K\ndtpaY856ManqEwME1tN+JOw8+mmCK2RpkMHtk5BNPOMqr5Y+OQ5MqI/eX1v7GWnJ\ntHGTbi+vRDmxBh3aa3xiUGo66c9tjUKAg/ExQfFr/vKJvTR/S3urPlj3vfFgu+yi\n8PKoH0LGyHsviWsD1peDuu2XS+ca8qbkY3yD1o4Mv1R/OSF4P2fxjjWdp8R4EkoT\nJMKkhRAgAuS9zxwftPv9djP4opHWrRUlRo6bh75CzrN6Hu5uh5Tn5bkifOQcy1gW\n772vd6pBpi4OGQHPKz4djvmCLAVBzSyzDP6EKQIDAQABAoIBAQCB+tU/ZXKlIe+h\nMNTmoz1QfOe+AY625Rwx9cakGqMk4kKyC62VkgcxshfXCToSjzyhEuyEQOFYloT2\n7FY2xXb0gcS861Efv0pQlcQhbbz/GnQ/wC13ktPu3zTdPTm9l54xsFiMTGmYVaf4\n0mnMmhyjmKIsVGDJEDGZUD/oZj7wJGOFha5M4FZrZlJIrEZC0rGGlcC0kGF2no6B\nj1Mu7HjyK3pTKf4dlp+jeRikUF5Pct+qT+rcv2rZ3fl3inxtlLEwZeFPbp/njf/U\nIGxFzZsuLmiFlsJar6M5nEckTB3p25maWWaR8/0jvJRgsPnuoUrUoGDq87DMKCdk\nlw6by9fRAoGBANhnS9ko7Of+ntqIFR7xOG9p/oPATztgHkFxe4GbQ0leaDRTx3vE\ndQmUCnn24xtyVECaI9a4IV+LP1npw8niWUJ4pjgdAlkF4cCTu9sN+cBO15SfdACI\nzD1DaaHmpFCAWlpTo68VWlvWll6i2ncCkRJR1+q/C/yQz7asvl4AakElAoGBAMId\nxqMT2Sy9xLuHsrAoMUvBOkwaMYZH+IAb4DvUDjVIiKWjmonrmopS5Lpb+ALBKqZe\neVfD6HwWQqGwCFItToaEkZvrNfTapoNCHWWg001D49765UV5lMrArDbM1vXtFfM4\nDRYM6+Y6o/6QH8EBgXtyBxcYthIDBM3wBJa67xG1AoGAKTm8fFlMkIG0N4N3Kpbf\nnnH915GaRoBwIx2AXtd6QQ7oIRfYx95MQY/fUw7SgxcLr+btbulTCkWXwwRClUI2\nqPAdElGMcfMp56r9PaTy8EzUyu55heSJrB4ckIhEw0VAcTa/1wnlVduSd+LkZYmq\no2fOD11n5iycNXvBJF1F4LUCgYAMaRbwCi7SW3eefbiA5rDwJPRzNSGBckyC9EVL\nzezynyaNYH5a3wNMYKxa9dJPasYtSND9OXs9o7ay26xMhLUGiKc+jrUuaGRI9Asp\nGjUoNXT2JphN7s4CgHsCLep4YqYKnMTJah4S5CDj/5boIg6DM/EcGupZEHRYLkY8\n1MrAGQKBgQCi9yeC39ctLUNn+Ix604gttWWChdt3ozufTZ7HybJOSRA9Gh3iD5gm\nzlz0xqpGShKpOY2k+ftvja0poMdGeJLt84P3r2q01IgI7w0LmOj5m0W10dHysH27\nBWpCnHdBJMxnBsMRPoM4MKkmKWD9l5PSTCTWtkIpsyuDCko6D9UwZA==\n-----END RSA PRIVATE KEY-----\n", "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCkF3MX59OrlBs3dH5CU7lNmvpbrgZxSpyGjlnE8Flkirnc/Up22lpjznoxqeoTAwTW034k7Dz6aYIrZGmQwe2TkE084yqvlj45Dkyoj95fW/sZacm0cZNuL69EObEGHdprfGJQajrpz22NQoCD8TFB8Wv+8om9NH9Le6s+WPe98WC77KLw8qgfQsbIey+JawPWl4O67ZdL5xrypuRjfIPWjgy/VH85IXg/Z/GONZ2nxHgSShMkwqSFECAC5L3PHB+0+/12M/iikdatFSVGjpuHvkLOs3oe7m6HlOfluSJ85BzLWBbvva93qkGmLg4ZAc8rPh2O+YIsBUHNLLMM/oQp Generated-by-Nova\n", "user_id": "fake" } }nova-17.0.13/doc/api_samples/keypairs/v2.2/keypairs-import-post-resp.json0000664000175000017500000000072513556316250026226 0ustar zuulzuul00000000000000{ "keypair": { "fingerprint": "1e:2c:9b:56:79:4b:45:77:f9:ca:7a:98:2c:b0:d5:3c", "name": "keypair-803a1926-af78-4b05-902a-1d6f7a8d9d3e", "type": "ssh", "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQDx8nkQv/zgGgB4rMYmIf+6A4l6Rr+o/6lHBQdW5aYd44bd8JttDCE/F/pNRr0lRE+PiqSPO8nDPHw0010JeMH9gYgnnFlyY3/OcJ02RhIPyyxYpv9FhY+2YiUkpwFOcLImyrxEsYXpD/0d3ac30bNH6Sw9JD9UZHYcpSxsIbECHw== Generated-by-Nova", "user_id": "fake" } }nova-17.0.13/doc/api_samples/keypairs/v2.2/keypairs-import-post-req.json0000664000175000017500000000056013556316250026041 0ustar zuulzuul00000000000000{ "keypair": { "name": "keypair-d20a3d59-9433-4b79-8726-20b431d89c78", "type": "ssh", "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQDx8nkQv/zgGgB4rMYmIf+6A4l6Rr+o/6lHBQdW5aYd44bd8JttDCE/F/pNRr0lRE+PiqSPO8nDPHw0010JeMH9gYgnnFlyY3/OcJ02RhIPyyxYpv9FhY+2YiUkpwFOcLImyrxEsYXpD/0d3ac30bNH6Sw9JD9UZHYcpSxsIbECHw== Generated-by-Nova" } }nova-17.0.13/doc/api_samples/keypairs/v2.2/keypairs-get-resp.json0000664000175000017500000000142713556316250024510 0ustar zuulzuul00000000000000{ "keypair": { "fingerprint": "44:fe:29:6e:23:14:b9:53:5b:65:82:58:1c:fe:5a:c3", "name": "keypair-6638abdb-c4e8-407c-ba88-c8dd7cc3c4f1", "type": "ssh", "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC1HTrHCbb9NawNLSV8N6tSa8i637+EC2dA+lsdHHfQlT54t+N0nHhJPlKWDLhc579j87vp6RDFriFJ/smsTnDnf64O12z0kBaJpJPH2zXrBkZFK6q2rmxydURzX/z0yLSCP77SFJ0fdXWH2hMsAusflGyryHGX20n+mZK6mDrxVzGxEz228dwQ5G7Az5OoZDWygH2pqPvKjkifRw0jwUKf3BbkP0QvANACOk26cv16mNFpFJfI1N3OC5lUsZQtKGR01ptJoWijYKccqhkAKuo902tg/qup58J5kflNm7I61sy1mJon6SGqNUSfoQagqtBH6vd/tU1jnlwZ03uUroAL Generated-by-Nova\n", "user_id": "fake", "deleted": false, "created_at": "2014-05-07T12:06:13.681238", "updated_at": null, "deleted_at": null, "id": 1 } } nova-17.0.13/doc/api_samples/keypairs/keypairs-import-post-req.json0000664000175000017500000000053113556316250025350 0ustar zuulzuul00000000000000{ "keypair": { "name": "keypair-d20a3d59-9433-4b79-8726-20b431d89c78", "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQDx8nkQv/zgGgB4rMYmIf+6A4l6Rr+o/6lHBQdW5aYd44bd8JttDCE/F/pNRr0lRE+PiqSPO8nDPHw0010JeMH9gYgnnFlyY3/OcJ02RhIPyyxYpv9FhY+2YiUkpwFOcLImyrxEsYXpD/0d3ac30bNH6Sw9JD9UZHYcpSxsIbECHw== Generated-by-Nova" } }nova-17.0.13/doc/api_samples/keypairs/keypairs-get-resp.json0000664000175000017500000000140013556316250024010 0ustar zuulzuul00000000000000{ "keypair": { "fingerprint": "44:fe:29:6e:23:14:b9:53:5b:65:82:58:1c:fe:5a:c3", "name": "keypair-6638abdb-c4e8-407c-ba88-c8dd7cc3c4f1", "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC1HTrHCbb9NawNLSV8N6tSa8i637+EC2dA+lsdHHfQlT54t+N0nHhJPlKWDLhc579j87vp6RDFriFJ/smsTnDnf64O12z0kBaJpJPH2zXrBkZFK6q2rmxydURzX/z0yLSCP77SFJ0fdXWH2hMsAusflGyryHGX20n+mZK6mDrxVzGxEz228dwQ5G7Az5OoZDWygH2pqPvKjkifRw0jwUKf3BbkP0QvANACOk26cv16mNFpFJfI1N3OC5lUsZQtKGR01ptJoWijYKccqhkAKuo902tg/qup58J5kflNm7I61sy1mJon6SGqNUSfoQagqtBH6vd/tU1jnlwZ03uUroAL Generated-by-Nova\n", "user_id": "fake", "deleted": false, "created_at": "2014-05-07T12:06:13.681238", "updated_at": null, "deleted_at": null, "id": 1 } } nova-17.0.13/doc/api_samples/os-floating-ips/0000775000175000017500000000000013556316574020744 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/os-floating-ips/floating-ips-create-resp.json0000664000175000017500000000023113556316250026426 0ustar zuulzuul00000000000000{ "floating_ip": { "fixed_ip": null, "id": 1, "instance_id": null, "ip": "10.10.10.1", "pool": "nova" } }nova-17.0.13/doc/api_samples/os-floating-ips/floating-ips-list-empty-resp.json0000664000175000017500000000003213556316250027271 0ustar zuulzuul00000000000000{ "floating_ips": [] }nova-17.0.13/doc/api_samples/os-floating-ips/floating-ips-create-req.json0000664000175000017500000000002613556316250026246 0ustar zuulzuul00000000000000{ "pool": "nova" }nova-17.0.13/doc/api_samples/os-floating-ips/floating-ips-get-resp.json0000664000175000017500000000023113556316250025742 0ustar zuulzuul00000000000000{ "floating_ip": { "fixed_ip": null, "id": 1, "instance_id": null, "ip": "10.10.10.1", "pool": "nova" } }nova-17.0.13/doc/api_samples/os-floating-ips/floating-ips-list-resp.json0000664000175000017500000000054613556316250026147 0ustar zuulzuul00000000000000{ "floating_ips": [ { "fixed_ip": null, "id": 1, "instance_id": null, "ip": "10.10.10.1", "pool": "nova" }, { "fixed_ip": null, "id": 2, "instance_id": null, "ip": "10.10.10.2", "pool": "nova" } ] }nova-17.0.13/doc/api_samples/os-virtual-interfaces/0000775000175000017500000000000013556316574022157 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/os-virtual-interfaces/vifs-list-resp.json0000664000175000017500000000024213556316250025726 0ustar zuulzuul00000000000000{ "virtual_interfaces": [ { "id": "cec8b9bb-5d22-4104-b3c8-4c35db3210a6", "mac_address": "fa:16:3e:3c:ce:6f" } ] }nova-17.0.13/doc/api_samples/os-virtual-interfaces/v2.12/0000775000175000017500000000000013556316574022727 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/os-virtual-interfaces/v2.12/vifs-list-resp.json0000664000175000017500000000034113556316250026476 0ustar zuulzuul00000000000000{ "virtual_interfaces": [ { "id": "cec8b9bb-5d22-4104-b3c8-4c35db3210a6", "mac_address": "fa:16:3e:3c:ce:6f", "net_id": "cec8b9bb-5d22-4104-b3c8-4c35db3210a7" } ] } nova-17.0.13/doc/api_samples/os-virtual-interfaces/vifs-list-resp-v2.json0000664000175000017500000000036013556316250026254 0ustar zuulzuul00000000000000{ "virtual_interfaces": [ { "id": "cec8b9bb-5d22-4104-b3c8-4c35db3210a6", "mac_address": "fa:16:3e:3c:ce:6f", "OS-EXT-VIF-NET:net_id": "cec8b9bb-5d22-4104-b3c8-4c35db3210a7" } ] } nova-17.0.13/doc/api_samples/os-security-group-default-rules/0000775000175000017500000000000013556316574024123 5ustar zuulzuul00000000000000././@LongLink0000000000000000000000000000015100000000000011212 Lustar 00000000000000nova-17.0.13/doc/api_samples/os-security-group-default-rules/security-group-default-rules-show-resp.jsonnova-17.0.13/doc/api_samples/os-security-group-default-rules/security-group-default-rules-show-resp.0000664000175000017500000000032113556316250033607 0ustar zuulzuul00000000000000{ "security_group_default_rule": { "from_port": 80, "id": 1, "ip_protocol": "TCP", "ip_range": { "cidr": "10.10.10.0/24" }, "to_port": 80 } }././@LongLink0000000000000000000000000000015300000000000011214 Lustar 00000000000000nova-17.0.13/doc/api_samples/os-security-group-default-rules/security-group-default-rules-create-resp.jsonnova-17.0.13/doc/api_samples/os-security-group-default-rules/security-group-default-rules-create-res0000664000175000017500000000032113556316250033634 0ustar zuulzuul00000000000000{ "security_group_default_rule": { "from_port": 80, "id": 1, "ip_protocol": "TCP", "ip_range": { "cidr": "10.10.10.0/24" }, "to_port": 80 } }././@LongLink0000000000000000000000000000015100000000000011212 Lustar 00000000000000nova-17.0.13/doc/api_samples/os-security-group-default-rules/security-group-default-rules-list-resp.jsonnova-17.0.13/doc/api_samples/os-security-group-default-rules/security-group-default-rules-list-resp.0000664000175000017500000000040213556316250033602 0ustar zuulzuul00000000000000{ "security_group_default_rules": [ { "from_port": 80, "id": 1, "ip_protocol": "TCP", "ip_range": { "cidr": "10.10.10.0/24" }, "to_port": 80 } ] }././@LongLink0000000000000000000000000000015200000000000011213 Lustar 00000000000000nova-17.0.13/doc/api_samples/os-security-group-default-rules/security-group-default-rules-create-req.jsonnova-17.0.13/doc/api_samples/os-security-group-default-rules/security-group-default-rules-create-req0000664000175000017500000000024013556316250033632 0ustar zuulzuul00000000000000{ "security_group_default_rule": { "ip_protocol": "TCP", "from_port": "80", "to_port": "80", "cidr": "10.10.10.0/24" } }nova-17.0.13/doc/api_samples/server-migrations/0000775000175000017500000000000013556316574021411 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/server-migrations/live-migrate-server.json0000664000175000017500000000023213556316250026161 0ustar zuulzuul00000000000000{ "os-migrateLive": { "host": "01c0cadef72d47e28a672a76060d492c", "block_migration": false, "disk_over_commit": false } } nova-17.0.13/doc/api_samples/server-migrations/v2.59/0000775000175000017500000000000013556316574022174 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/server-migrations/v2.59/migrations-get.json0000664000175000017500000000127513556316250026014 0ustar zuulzuul00000000000000{ "migration": { "created_at": "2016-01-29T13:42:02.000000", "dest_compute": "compute2", "dest_host": "1.2.3.4", "dest_node": "node2", "id": 1, "server_uuid": "4cfba335-03d8-49b2-8c52-e69043d1e8fe", "source_compute": "compute1", "source_node": "node1", "status": "running", "memory_total_bytes": 123456, "memory_processed_bytes": 12345, "memory_remaining_bytes": 111111, "disk_total_bytes": 234567, "disk_processed_bytes": 23456, "disk_remaining_bytes": 211111, "updated_at": "2016-01-29T13:42:02.000000", "uuid": "12341d4b-346a-40d0-83c6-5f4f6892b650" } } nova-17.0.13/doc/api_samples/server-migrations/v2.59/migrations-index.json0000664000175000017500000000142613556316250026342 0ustar zuulzuul00000000000000{ "migrations": [ { "created_at": "2016-01-29T13:42:02.000000", "dest_compute": "compute2", "dest_host": "1.2.3.4", "dest_node": "node2", "id": 1, "server_uuid": "4cfba335-03d8-49b2-8c52-e69043d1e8fe", "source_compute": "compute1", "source_node": "node1", "status": "running", "memory_total_bytes": 123456, "memory_processed_bytes": 12345, "memory_remaining_bytes": 111111, "disk_total_bytes": 234567, "disk_processed_bytes": 23456, "disk_remaining_bytes": 211111, "updated_at": "2016-01-29T13:42:02.000000", "uuid": "12341d4b-346a-40d0-83c6-5f4f6892b650" } ] } nova-17.0.13/doc/api_samples/server-migrations/force_complete.json0000664000175000017500000000003713556316250025261 0ustar zuulzuul00000000000000{ "force_complete": null } nova-17.0.13/doc/api_samples/server-migrations/v2.23/0000775000175000017500000000000013556316574022163 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/server-migrations/v2.23/migrations-get.json0000664000175000017500000000120513556316250025774 0ustar zuulzuul00000000000000{ "migration": { "created_at": "2016-01-29T13:42:02.000000", "dest_compute": "compute2", "dest_host": "1.2.3.4", "dest_node": "node2", "id": 1, "server_uuid": "4cfba335-03d8-49b2-8c52-e69043d1e8fe", "source_compute": "compute1", "source_node": "node1", "status": "running", "memory_total_bytes": 123456, "memory_processed_bytes": 12345, "memory_remaining_bytes": 111111, "disk_total_bytes": 234567, "disk_processed_bytes": 23456, "disk_remaining_bytes": 211111, "updated_at": "2016-01-29T13:42:02.000000" } } nova-17.0.13/doc/api_samples/server-migrations/v2.23/migrations-index.json0000664000175000017500000000133213556316250026325 0ustar zuulzuul00000000000000{ "migrations": [ { "created_at": "2016-01-29T13:42:02.000000", "dest_compute": "compute2", "dest_host": "1.2.3.4", "dest_node": "node2", "id": 1, "server_uuid": "4cfba335-03d8-49b2-8c52-e69043d1e8fe", "source_compute": "compute1", "source_node": "node1", "status": "running", "memory_total_bytes": 123456, "memory_processed_bytes": 12345, "memory_remaining_bytes": 111111, "disk_total_bytes": 234567, "disk_processed_bytes": 23456, "disk_remaining_bytes": 211111, "updated_at": "2016-01-29T13:42:02.000000" } ] } nova-17.0.13/doc/api_samples/os-instance-usage-audit-log/0000775000175000017500000000000013556316574023141 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/os-instance-usage-audit-log/inst-usage-audit-log-index-get-resp.json0000664000175000017500000000225313556316250032620 0ustar zuulzuul00000000000000{ "instance_usage_audit_logs": { "hosts_not_run": [ "samplehost3" ], "log": { "samplehost0": { "errors": 1, "instances": 1, "message": "Instance usage audit ran for host samplehost0, 1 instances in 0.01 seconds.", "state": "DONE" }, "samplehost1": { "errors": 1, "instances": 2, "message": "Instance usage audit ran for host samplehost1, 2 instances in 0.01 seconds.", "state": "DONE" }, "samplehost2": { "errors": 1, "instances": 3, "message": "Instance usage audit ran for host samplehost2, 3 instances in 0.01 seconds.", "state": "DONE" } }, "num_hosts": 4, "num_hosts_done": 3, "num_hosts_not_run": 1, "num_hosts_running": 0, "overall_status": "3 of 4 hosts done. 3 errors.", "period_beginning": "2012-06-01 00:00:00", "period_ending": "2012-07-01 00:00:00", "total_errors": 3, "total_instances": 6 } } nova-17.0.13/doc/api_samples/os-instance-usage-audit-log/inst-usage-audit-log-show-get-resp.json0000664000175000017500000000225213556316250032470 0ustar zuulzuul00000000000000{ "instance_usage_audit_log": { "hosts_not_run": [ "samplehost3" ], "log": { "samplehost0": { "errors": 1, "instances": 1, "message": "Instance usage audit ran for host samplehost0, 1 instances in 0.01 seconds.", "state": "DONE" }, "samplehost1": { "errors": 1, "instances": 2, "message": "Instance usage audit ran for host samplehost1, 2 instances in 0.01 seconds.", "state": "DONE" }, "samplehost2": { "errors": 1, "instances": 3, "message": "Instance usage audit ran for host samplehost2, 3 instances in 0.01 seconds.", "state": "DONE" } }, "num_hosts": 4, "num_hosts_done": 3, "num_hosts_not_run": 1, "num_hosts_running": 0, "overall_status": "3 of 4 hosts done. 3 errors.", "period_beginning": "2012-06-01 00:00:00", "period_ending": "2012-07-01 00:00:00", "total_errors": 3, "total_instances": 6 } } nova-17.0.13/doc/api_samples/os-baremetal-nodes/0000775000175000017500000000000013556316574021412 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/os-baremetal-nodes/baremetal-node-get-resp.json0000664000175000017500000000046413556316250026703 0ustar zuulzuul00000000000000{ "node": { "cpus": "2", "disk_gb": "10", "host": "IRONIC MANAGED", "id": "058d27fa-241b-445a-a386-08c04f96db43", "instance_uuid": "1ea4e53e-149a-4f02-9515-590c9fb2315a", "interfaces": [], "memory_mb": "1024", "task_state": "active" } }nova-17.0.13/doc/api_samples/os-baremetal-nodes/baremetal-node-list-resp.json0000664000175000017500000000106113556316250027071 0ustar zuulzuul00000000000000{ "nodes": [ { "cpus": "2", "disk_gb": "10", "host": "IRONIC MANAGED", "id": "058d27fa-241b-445a-a386-08c04f96db43", "interfaces": [], "memory_mb": "1024", "task_state": "active" }, { "cpus": "2", "disk_gb": "10", "host": "IRONIC MANAGED", "id": "e2025409-f3ce-4d6a-9788-c565cf3b1b1c", "interfaces": [], "memory_mb": "1024", "task_state": "active" } ] }nova-17.0.13/doc/api_samples/flavor-extra-specs/0000775000175000017500000000000013556316574021456 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/flavor-extra-specs/flavor-extra-specs-create-resp.json0000664000175000017500000000012113556316250030267 0ustar zuulzuul00000000000000{ "extra_specs": { "key1": "value1", "key2": "value2" } }nova-17.0.13/doc/api_samples/flavor-extra-specs/flavor-extra-specs-create-req.json0000664000175000017500000000012113556316250030105 0ustar zuulzuul00000000000000{ "extra_specs": { "key1": "value1", "key2": "value2" } }nova-17.0.13/doc/api_samples/flavor-extra-specs/flavor-extra-specs-get-resp.json0000664000175000017500000000003013556316250027602 0ustar zuulzuul00000000000000{ "key1": "value1" }nova-17.0.13/doc/api_samples/flavor-extra-specs/flavor-extra-specs-update-req.json0000664000175000017500000000003413556316250030127 0ustar zuulzuul00000000000000{ "key1": "new_value1" }nova-17.0.13/doc/api_samples/flavor-extra-specs/flavor-extra-specs-update-resp.json0000664000175000017500000000003413556316250030311 0ustar zuulzuul00000000000000{ "key1": "new_value1" }nova-17.0.13/doc/api_samples/flavor-extra-specs/flavor-extra-specs-list-resp.json0000664000175000017500000000012113556316250027777 0ustar zuulzuul00000000000000{ "extra_specs": { "key1": "value1", "key2": "value2" } }nova-17.0.13/doc/api_samples/os-aggregates/0000775000175000017500000000000013556316574020461 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/os-aggregates/aggregates-list-get-resp.json0000664000175000017500000000066513556316250026160 0ustar zuulzuul00000000000000{ "aggregates": [ { "availability_zone": "london", "created_at": "2013-08-18T12:17:56.856455", "deleted": false, "deleted_at": null, "hosts": ["21549b2f665945baaa7101926a00143c"], "id": 1, "metadata": { "availability_zone": "london" }, "name": "name", "updated_at": null } ] } nova-17.0.13/doc/api_samples/os-aggregates/v2.41/0000775000175000017500000000000013556316574021233 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/os-aggregates/v2.41/aggregates-list-get-resp.json0000664000175000017500000000076613556316250026734 0ustar zuulzuul00000000000000{ "aggregates": [ { "availability_zone": "london", "created_at": "2016-12-27T23:47:32.911515", "deleted": false, "deleted_at": null, "hosts": [ "compute" ], "id": 1, "metadata": { "availability_zone": "london" }, "name": "name", "updated_at": null, "uuid": "6ba28ba7-f29b-45cc-a30b-6e3a40c2fb14" } ] } nova-17.0.13/doc/api_samples/os-aggregates/v2.41/aggregate-post-resp.json0000664000175000017500000000045213556316250025776 0ustar zuulzuul00000000000000{ "aggregate": { "availability_zone": "london", "created_at": "2016-12-27T22:51:32.877711", "deleted": false, "deleted_at": null, "id": 1, "name": "name", "updated_at": null, "uuid": "86a0da0e-9f0c-4f51-a1e0-3c25edab3783" } } nova-17.0.13/doc/api_samples/os-aggregates/v2.41/aggregates-metadata-post-resp.json0000664000175000017500000000067613556316250027747 0ustar zuulzuul00000000000000{ "aggregate": { "availability_zone": "london", "created_at": "2016-12-27T23:59:18.623100", "deleted": false, "deleted_at": null, "hosts": [], "id": 1, "metadata": { "availability_zone": "london", "key": "value" }, "name": "name", "updated_at": "2016-12-27T23:59:18.723348", "uuid": "26002bdb-62cc-41bd-813a-0ad22db32625" } } nova-17.0.13/doc/api_samples/os-aggregates/v2.41/aggregate-update-post-req.json0000664000175000017500000000014013556316250027066 0ustar zuulzuul00000000000000{ "aggregate": { "name": "newname", "availability_zone": "nova2" } }nova-17.0.13/doc/api_samples/os-aggregates/v2.41/aggregates-get-resp.json0000664000175000017500000000061213556316250025751 0ustar zuulzuul00000000000000{ "aggregate": { "availability_zone": "london", "created_at": "2016-12-27T23:47:30.563527", "deleted": false, "deleted_at": null, "hosts": [], "id": 1, "metadata": { "availability_zone": "london" }, "name": "name", "updated_at": null, "uuid": "fd0a5b12-7e8d-469d-bfd5-64a6823e7407" } } nova-17.0.13/doc/api_samples/os-aggregates/v2.41/aggregate-add-host-post-req.json0000664000175000017500000000006513556316250027315 0ustar zuulzuul00000000000000{ "add_host": { "host": "compute" } }nova-17.0.13/doc/api_samples/os-aggregates/v2.41/aggregates-remove-host-post-resp.json0000664000175000017500000000061213556316250030425 0ustar zuulzuul00000000000000{ "aggregate": { "availability_zone": "london", "created_at": "2016-12-27T23:47:30.594805", "deleted": false, "deleted_at": null, "hosts": [], "id": 1, "metadata": { "availability_zone": "london" }, "name": "name", "updated_at": null, "uuid": "d1842372-89c5-4fbd-ad5a-5d2e16c85456" } } nova-17.0.13/doc/api_samples/os-aggregates/v2.41/aggregate-update-post-resp.json0000664000175000017500000000064213556316250027257 0ustar zuulzuul00000000000000{ "aggregate": { "availability_zone": "nova2", "created_at": "2016-12-27T23:47:32.897139", "deleted": false, "deleted_at": null, "hosts": [], "id": 1, "metadata": { "availability_zone": "nova2" }, "name": "newname", "updated_at": "2016-12-27T23:47:33.067180", "uuid": "6f74e3f3-df28-48f3-98e1-ac941b1c5e43" } }nova-17.0.13/doc/api_samples/os-aggregates/v2.41/aggregate-metadata-post-req.json0000664000175000017500000000021213556316250027364 0ustar zuulzuul00000000000000{ "set_metadata": { "metadata": { "key": "value" } } }nova-17.0.13/doc/api_samples/os-aggregates/v2.41/aggregates-add-host-post-resp.json0000664000175000017500000000065113556316250027663 0ustar zuulzuul00000000000000{ "aggregate": { "availability_zone": "london", "created_at": "2016-12-27T23:47:30.594805", "deleted": false, "deleted_at": null, "hosts": [ "compute" ], "id": 1, "metadata": { "availability_zone": "london" }, "name": "name", "updated_at": null, "uuid": "d1842372-89c5-4fbd-ad5a-5d2e16c85456" } } nova-17.0.13/doc/api_samples/os-aggregates/v2.41/aggregate-remove-host-post-req.json0000664000175000017500000000007013556316250030056 0ustar zuulzuul00000000000000{ "remove_host": { "host": "compute" } }nova-17.0.13/doc/api_samples/os-aggregates/v2.41/aggregate-post-req.json0000664000175000017500000000013413556316250025611 0ustar zuulzuul00000000000000{ "aggregate": { "name": "name", "availability_zone": "nova" } }nova-17.0.13/doc/api_samples/os-aggregates/aggregate-post-resp.json0000664000175000017500000000036213556316250025224 0ustar zuulzuul00000000000000{ "aggregate": { "availability_zone": "london", "created_at": "2013-08-18T12:17:55.751757", "deleted": false, "deleted_at": null, "id": 1, "name": "name", "updated_at": null } } nova-17.0.13/doc/api_samples/os-aggregates/aggregates-metadata-post-resp.json0000664000175000017500000000060613556316250027166 0ustar zuulzuul00000000000000{ "aggregate": { "availability_zone": "london", "created_at": "2013-08-18T12:17:55.959571", "deleted": false, "deleted_at": null, "hosts": [], "id": 1, "metadata": { "availability_zone": "london", "key": "value" }, "name": "name", "updated_at": "2013-08-18T12:17:55.986540" } } nova-17.0.13/doc/api_samples/os-aggregates/aggregate-update-post-req.json0000664000175000017500000000014013556316250026314 0ustar zuulzuul00000000000000{ "aggregate": { "name": "newname", "availability_zone": "nova2" } }nova-17.0.13/doc/api_samples/os-aggregates/aggregates-get-resp.json0000664000175000017500000000052213556316250025177 0ustar zuulzuul00000000000000{ "aggregate": { "availability_zone": "london", "created_at": "2013-08-18T12:17:56.380226", "deleted": false, "deleted_at": null, "hosts": [], "id": 1, "metadata": { "availability_zone": "london" }, "name": "name", "updated_at": null } } nova-17.0.13/doc/api_samples/os-aggregates/aggregate-add-host-post-req.json0000664000175000017500000000011713556316250026541 0ustar zuulzuul00000000000000{ "add_host": { "host": "21549b2f665945baaa7101926a00143c" } } nova-17.0.13/doc/api_samples/os-aggregates/aggregates-remove-host-post-resp.json0000664000175000017500000000052213556316250027653 0ustar zuulzuul00000000000000{ "aggregate": { "availability_zone": "london", "created_at": "2013-08-18T12:17:56.990581", "deleted": false, "deleted_at": null, "hosts": [], "id": 1, "metadata": { "availability_zone": "london" }, "name": "name", "updated_at": null } } nova-17.0.13/doc/api_samples/os-aggregates/aggregate-update-post-resp.json0000664000175000017500000000055313556316250026506 0ustar zuulzuul00000000000000{ "aggregate": { "availability_zone": "nova2", "created_at": "2013-08-18T12:17:56.259751", "deleted": false, "deleted_at": null, "hosts": [], "id": 1, "metadata": { "availability_zone": "nova2" }, "name": "newname", "updated_at": "2013-08-18T12:17:56.286720" } } nova-17.0.13/doc/api_samples/os-aggregates/aggregate-metadata-post-req.json0000664000175000017500000000021213556316250026612 0ustar zuulzuul00000000000000{ "set_metadata": { "metadata": { "key": "value" } } }nova-17.0.13/doc/api_samples/os-aggregates/aggregates-add-host-post-resp.json0000664000175000017500000000061213556316250027106 0ustar zuulzuul00000000000000{ "aggregate": { "availability_zone": "london", "created_at": "2013-08-18T12:17:56.297823", "deleted": false, "deleted_at": null, "hosts": [ "21549b2f665945baaa7101926a00143c" ], "id": 1, "metadata": { "availability_zone": "london" }, "name": "name", "updated_at": null } } nova-17.0.13/doc/api_samples/os-aggregates/aggregate-remove-host-post-req.json0000664000175000017500000000012213556316250027302 0ustar zuulzuul00000000000000{ "remove_host": { "host": "bf1454b3d71145d49fca2101c56c728d" } } nova-17.0.13/doc/api_samples/os-aggregates/aggregate-post-req.json0000664000175000017500000000013713556316250025042 0ustar zuulzuul00000000000000{ "aggregate": { "name": "name", "availability_zone": "london" } } nova-17.0.13/doc/api_samples/os-fixed-ips/0000775000175000017500000000000013556316574020240 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/os-fixed-ips/fixedip-post-req.json0000664000175000017500000000002713556316250024321 0ustar zuulzuul00000000000000{ "reserve": null }nova-17.0.13/doc/api_samples/os-fixed-ips/fixedips-get-resp.json0000664000175000017500000000023713556316250024463 0ustar zuulzuul00000000000000{ "fixed_ip": { "address": "192.168.1.1", "cidr": "192.168.1.0/24", "host": "host", "hostname": "compute.host.pvt" } } nova-17.0.13/doc/api_samples/os-fixed-ips/v2.4/0000775000175000017500000000000013556316574020731 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/os-fixed-ips/v2.4/fixedip-post-req.json0000664000175000017500000000002713556316250025012 0ustar zuulzuul00000000000000{ "reserve": null }nova-17.0.13/doc/api_samples/os-fixed-ips/v2.4/fixedips-get-resp.json0000664000175000017500000000027213556316250025153 0ustar zuulzuul00000000000000{ "fixed_ip": { "address": "192.168.1.1", "cidr": "192.168.1.0/24", "host": "host", "hostname": "compute.host.pvt", "reserved": false } } nova-17.0.13/doc/api_samples/os-multinic/0000775000175000017500000000000013556316574020174 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/os-multinic/multinic-remove-fixed-ip-req.json0000664000175000017500000000007713556316250026471 0ustar zuulzuul00000000000000{ "removeFixedIp": { "address": "10.0.0.4" } } nova-17.0.13/doc/api_samples/os-multinic/multinic-add-fixed-ip-req.json0000664000175000017500000000013113556316250025713 0ustar zuulzuul00000000000000{ "addFixedIp": { "networkId": "e1882e38-38c2-4239-ade7-35d644cb963a" } }nova-17.0.13/doc/api_samples/os-quota-sets-noop/0000775000175000017500000000000013556316574021426 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/os-quota-sets-noop/quotas-update-force-post-req.json0000664000175000017500000000011513556316250027745 0ustar zuulzuul00000000000000{ "quota_set": { "force": "True", "instances": 45 } }nova-17.0.13/doc/api_samples/os-quota-sets-noop/user-quotas-show-get-resp.json0000664000175000017500000000076213556316250027307 0ustar zuulzuul00000000000000{ "quota_set": { "cores": -1, "fixed_ips": -1, "floating_ips": -1, "id": "fake_tenant", "injected_file_content_bytes": -1, "injected_file_path_bytes": -1, "injected_files": -1, "instances": -1, "key_pairs": -1, "metadata_items": -1, "networks": -1, "ram": -1, "security_group_rules": -1, "security_groups": -1, "server_group_members": -1, "server_groups": -1 } }nova-17.0.13/doc/api_samples/os-quota-sets-noop/quotas-show-detail-get-resp.json0000664000175000017500000000341313556316250027567 0ustar zuulzuul00000000000000{ "quota_set": { "cores": { "in_use": -1, "limit": -1, "reserved": -1 }, "fixed_ips": { "in_use": -1, "limit": -1, "reserved": -1 }, "floating_ips": { "in_use": -1, "limit": -1, "reserved": -1 }, "id": "fake_tenant", "injected_file_content_bytes": { "in_use": -1, "limit": -1, "reserved": -1 }, "injected_file_path_bytes": { "in_use": -1, "limit": -1, "reserved": -1 }, "injected_files": { "in_use": -1, "limit": -1, "reserved": -1 }, "instances": { "in_use": -1, "limit": -1, "reserved": -1 }, "key_pairs": { "in_use": -1, "limit": -1, "reserved": -1 }, "metadata_items": { "in_use": -1, "limit": -1, "reserved": -1 }, "networks": { "in_use": -1, "limit": -1, "reserved": -1 }, "ram": { "in_use": -1, "limit": -1, "reserved": -1 }, "security_group_rules": { "in_use": -1, "limit": -1, "reserved": -1 }, "security_groups": { "in_use": -1, "limit": -1, "reserved": -1 }, "server_group_members": { "in_use": -1, "limit": -1, "reserved": -1 }, "server_groups": { "in_use": -1, "limit": -1, "reserved": -1 } } }nova-17.0.13/doc/api_samples/os-quota-sets-noop/user-quotas-update-post-req.json0000664000175000017500000000011413556316250027624 0ustar zuulzuul00000000000000{ "quota_set": { "force": "True", "instances": 9 } }nova-17.0.13/doc/api_samples/os-quota-sets-noop/quotas-update-post-req.json0000664000175000017500000000007213556316250026653 0ustar zuulzuul00000000000000{ "quota_set": { "security_groups": 45 } }nova-17.0.13/doc/api_samples/os-quota-sets-noop/user-quotas-update-post-resp.json0000664000175000017500000000072513556316250030016 0ustar zuulzuul00000000000000{ "quota_set": { "cores": -1, "fixed_ips": -1, "floating_ips": -1, "injected_file_content_bytes": -1, "injected_file_path_bytes": -1, "injected_files": -1, "instances": -1, "key_pairs": -1, "metadata_items": -1, "networks": -1, "ram": -1, "security_group_rules": -1, "security_groups": -1, "server_group_members": -1, "server_groups": -1 } }nova-17.0.13/doc/api_samples/os-quota-sets-noop/quotas-show-defaults-get-resp.json0000664000175000017500000000076213556316250030140 0ustar zuulzuul00000000000000{ "quota_set": { "cores": -1, "fixed_ips": -1, "floating_ips": -1, "id": "fake_tenant", "injected_file_content_bytes": -1, "injected_file_path_bytes": -1, "injected_files": -1, "instances": -1, "key_pairs": -1, "metadata_items": -1, "networks": -1, "ram": -1, "security_group_rules": -1, "security_groups": -1, "server_group_members": -1, "server_groups": -1 } }nova-17.0.13/doc/api_samples/os-quota-sets-noop/quotas-show-get-resp.json0000664000175000017500000000076213556316250026333 0ustar zuulzuul00000000000000{ "quota_set": { "cores": -1, "fixed_ips": -1, "floating_ips": -1, "id": "fake_tenant", "injected_file_content_bytes": -1, "injected_file_path_bytes": -1, "injected_files": -1, "instances": -1, "key_pairs": -1, "metadata_items": -1, "networks": -1, "ram": -1, "security_group_rules": -1, "security_groups": -1, "server_group_members": -1, "server_groups": -1 } }nova-17.0.13/doc/api_samples/os-quota-sets-noop/quotas-update-post-resp.json0000664000175000017500000000072513556316250027042 0ustar zuulzuul00000000000000{ "quota_set": { "cores": -1, "fixed_ips": -1, "floating_ips": -1, "injected_file_content_bytes": -1, "injected_file_path_bytes": -1, "injected_files": -1, "instances": -1, "key_pairs": -1, "metadata_items": -1, "networks": -1, "ram": -1, "security_group_rules": -1, "security_groups": -1, "server_group_members": -1, "server_groups": -1 } }nova-17.0.13/doc/api_samples/os-quota-sets-noop/quotas-update-force-post-resp.json0000664000175000017500000000072513556316250030136 0ustar zuulzuul00000000000000{ "quota_set": { "cores": -1, "fixed_ips": -1, "floating_ips": -1, "injected_file_content_bytes": -1, "injected_file_path_bytes": -1, "injected_files": -1, "instances": -1, "key_pairs": -1, "metadata_items": -1, "networks": -1, "ram": -1, "security_group_rules": -1, "security_groups": -1, "server_group_members": -1, "server_groups": -1 } }nova-17.0.13/doc/api_samples/os-availability-zone/0000775000175000017500000000000013556316574021773 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/os-availability-zone/availability-zone-list-resp.json0000664000175000017500000000030213556316250030213 0ustar zuulzuul00000000000000{ "availabilityZoneInfo": [ { "hosts": null, "zoneName": "nova", "zoneState": { "available": true } } ] } nova-17.0.13/doc/api_samples/os-availability-zone/availability-zone-detail-resp.json0000664000175000017500000000302713556316250030511 0ustar zuulzuul00000000000000{ "availabilityZoneInfo": [ { "hosts": { "conductor": { "nova-conductor": { "active": true, "available": true, "updated_at": null } }, "consoleauth": { "nova-consoleauth": { "active": true, "available": true, "updated_at": null } }, "network": { "nova-network": { "active": true, "available": true, "updated_at": null } }, "scheduler": { "nova-scheduler": { "active": true, "available": true, "updated_at": null } } }, "zoneName": "internal", "zoneState": { "available": true } }, { "hosts": { "compute": { "nova-compute": { "active": true, "available": true, "updated_at": null } } }, "zoneName": "nova", "zoneState": { "available": true } } ] } nova-17.0.13/doc/api_samples/os-availability-zone/availability-zone-post-req.json0000664000175000017500000000146313556316250030054 0ustar zuulzuul00000000000000{ "server" : { "name" : "new-server-test", "imageRef" : "70a599e0-31e7-49b7-b260-868f441e862b", "flavorRef" : "1", "metadata" : { "My Server Name" : "Apache1" }, "availability_zone": "nova", "personality" : [ { "path" : "/etc/banner.txt", "contents" : "ICAgICAgDQoiQSBjbG91ZCBkb2VzIG5vdCBrbm93IHdoeSBpdCBtb3ZlcyBpbiBqdXN0IHN1Y2ggYSBkaXJlY3Rpb24gYW5kIGF0IHN1Y2ggYSBzcGVlZC4uLkl0IGZlZWxzIGFuIGltcHVsc2lvbi4uLnRoaXMgaXMgdGhlIHBsYWNlIHRvIGdvIG5vdy4gQnV0IHRoZSBza3kga25vd3MgdGhlIHJlYXNvbnMgYW5kIHRoZSBwYXR0ZXJucyBiZWhpbmQgYWxsIGNsb3VkcywgYW5kIHlvdSB3aWxsIGtub3csIHRvbywgd2hlbiB5b3UgbGlmdCB5b3Vyc2VsZiBoaWdoIGVub3VnaCB0byBzZWUgYmV5b25kIGhvcml6b25zLiINCg0KLVJpY2hhcmQgQmFjaA==" } ] } } nova-17.0.13/doc/api_samples/os-availability-zone/availability-zone-post-resp.json0000664000175000017500000000124413556316250030233 0ustar zuulzuul00000000000000{ "server": { "adminPass": "k4pKvTfcA4gY", "id": "3e45fa2a-5204-466f-a684-c2a8e1c82d7f", "links": [ { "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/servers/3e45fa2a-5204-466f-a684-c2a8e1c82d7f", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/servers/3e45fa2a-5204-466f-a684-c2a8e1c82d7f", "rel": "bookmark" } ], "OS-DCF:diskConfig": "AUTO", "security_groups": [ { "name": "default" } ] } }nova-17.0.13/doc/api_samples/os-hosts/0000775000175000017500000000000013556316574017510 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/os-hosts/hosts-list-resp.json0000664000175000017500000000137313556316250023456 0ustar zuulzuul00000000000000{ "hosts": [ { "host_name": "b6e4adbc193d428ea923899d07fb001e", "service": "conductor", "zone": "internal" }, { "host_name": "09c025b0efc64211bd23fc50fa974cdf", "service": "compute", "zone": "nova" }, { "host_name": "e73ec0bd35c64de4a1adfa8b8969a1f6", "service": "consoleauth", "zone": "internal" }, { "host_name": "396a8a0a234f476eb05fb9fbc5802ba7", "service": "network", "zone": "internal" }, { "host_name": "abffda96592c4eacaf4111c28fddee17", "service": "scheduler", "zone": "internal" } ] } nova-17.0.13/doc/api_samples/os-hosts/host-get-startup.json0000664000175000017500000000012213556316250023617 0ustar zuulzuul00000000000000{ "host": "4b392b27930343bbaa27fd5d8328a564", "power_action": "startup" } nova-17.0.13/doc/api_samples/os-hosts/host-put-maintenance-resp.json0000664000175000017500000000016713556316250025410 0ustar zuulzuul00000000000000{ "host": "65c5d5b7e3bd44308e67fc50f362aee6", "maintenance_mode": "off_maintenance", "status": "enabled" } nova-17.0.13/doc/api_samples/os-hosts/host-get-resp.json0000664000175000017500000000140613556316250023074 0ustar zuulzuul00000000000000{ "host": [ { "resource": { "cpu": 2, "disk_gb": 1028, "host": "c1a7de0ac9d94e4baceae031d05caae3", "memory_mb": 8192, "project": "(total)" } }, { "resource": { "cpu": 0, "disk_gb": 0, "host": "c1a7de0ac9d94e4baceae031d05caae3", "memory_mb": 512, "project": "(used_now)" } }, { "resource": { "cpu": 0, "disk_gb": 0, "host": "c1a7de0ac9d94e4baceae031d05caae3", "memory_mb": 0, "project": "(used_max)" } } ] }nova-17.0.13/doc/api_samples/os-hosts/host-get-shutdown.json0000664000175000017500000000012313556316250023771 0ustar zuulzuul00000000000000{ "host": "77cfa0002e4d45fe97f185968111b27b", "power_action": "shutdown" } nova-17.0.13/doc/api_samples/os-hosts/host-put-maintenance-req.json0000664000175000017500000000007613556316250025225 0ustar zuulzuul00000000000000{ "status": "enable", "maintenance_mode": "disable" } nova-17.0.13/doc/api_samples/os-hosts/host-get-reboot.json0000664000175000017500000000012113556316250023406 0ustar zuulzuul00000000000000{ "host": "9557750dbc464741a89c907921c1cb31", "power_action": "reboot" } nova-17.0.13/doc/api_samples/server-ips/0000775000175000017500000000000013556316574020030 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/server-ips/server-ips-resp.json0000664000175000017500000000023313556316250023756 0ustar zuulzuul00000000000000{ "addresses": { "private": [ { "addr": "192.168.0.3", "version": 4 } ] } }nova-17.0.13/doc/api_samples/server-ips/server-ips-network-resp.json0000664000175000017500000000015213556316250025445 0ustar zuulzuul00000000000000{ "private": [ { "addr": "192.168.0.3", "version": 4 } ] }nova-17.0.13/doc/api_samples/os-fping/0000775000175000017500000000000013556316574017453 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/os-fping/fping-get-resp.json0000664000175000017500000000030113556316250023156 0ustar zuulzuul00000000000000{ "servers": [ { "alive": false, "id": "1d1aea35-472b-40cf-9337-8eb68480aaa1", "project_id": "6f70656e737461636b20342065766572" } ] }nova-17.0.13/doc/api_samples/os-fping/fping-get-details-resp.json0000664000175000017500000000024013556316250024603 0ustar zuulzuul00000000000000{ "server": { "alive": false, "id": "f5e6fd6d-c0a3-4f9e-aabf-d69196b6d11a", "project_id": "6f70656e737461636b20342065766572" } }nova-17.0.13/doc/api_samples/extension-info/0000775000175000017500000000000013556316574020676 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/extension-info/extensions-get-resp.json0000664000175000017500000000040413556316250025501 0ustar zuulzuul00000000000000{ "extension": { "alias": "os-agents", "description": "Agents support.", "links": [], "name": "Agents", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" } }nova-17.0.13/doc/api_samples/extension-info/extensions-list-resp.json0000664000175000017500000007560713556316250025716 0ustar zuulzuul00000000000000{ "extensions": [ { "alias": "NMN", "description": "Multiple network support.", "links": [], "name": "Multinic", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "OS-DCF", "description": "Disk Management Extension.", "links": [], "name": "DiskConfig", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "OS-EXT-AZ", "description": "Extended Availability Zone support.", "links": [], "name": "ExtendedAvailabilityZone", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "OS-EXT-IMG-SIZE", "description": "Adds image size to image listings.", "links": [], "name": "ImageSize", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "OS-EXT-IPS", "description": "Adds type parameter to the ip list.", "links": [], "name": "ExtendedIps", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "OS-EXT-IPS-MAC", "description": "Adds mac address parameter to the ip list.", "links": [], "name": "ExtendedIpsMac", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "OS-EXT-SRV-ATTR", "description": "Extended Server Attributes support.", "links": [], "name": "ExtendedServerAttributes", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "OS-EXT-STS", "description": "Extended Status support.", "links": [], "name": "ExtendedStatus", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "OS-FLV-DISABLED", "description": "Support to show the disabled status of a flavor.", "links": [], "name": "FlavorDisabled", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "OS-FLV-EXT-DATA", "description": "Provide additional data for flavors.", "links": [], "name": "FlavorExtraData", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "OS-SCH-HNT", "description": "Pass arbitrary key/value pairs to the scheduler.", "links": [], "name": "SchedulerHints", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "OS-SRV-USG", "description": "Adds launched_at and terminated_at on Servers.", "links": [], "name": "ServerUsage", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-access-ips", "description": "Access IPs support.", "links": [], "name": "AccessIPs", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-admin-actions", "description": "Enable admin-only server actions\n\n Actions include: resetNetwork, injectNetworkInfo, os-resetState\n ", "links": [], "name": "AdminActions", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-admin-password", "description": "Admin password management support.", "links": [], "name": "AdminPassword", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-agents", "description": "Agents support.", "links": [], "name": "Agents", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-aggregates", "description": "Admin-only aggregate administration.", "links": [], "name": "Aggregates", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-assisted-volume-snapshots", "description": "Assisted volume snapshots.", "links": [], "name": "AssistedVolumeSnapshots", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-attach-interfaces", "description": "Attach interface support.", "links": [], "name": "AttachInterfaces", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-availability-zone", "description": "1. Add availability_zone to the Create Server API.\n 2. Add availability zones describing.\n ", "links": [], "name": "AvailabilityZone", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-baremetal-ext-status", "description": "Add extended status in Baremetal Nodes v2 API.", "links": [], "name": "BareMetalExtStatus", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-baremetal-nodes", "description": "Admin-only bare-metal node administration.", "links": [], "name": "BareMetalNodes", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-block-device-mapping", "description": "Block device mapping boot support.", "links": [], "name": "BlockDeviceMapping", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-block-device-mapping-v2-boot", "description": "Allow boot with the new BDM data format.", "links": [], "name": "BlockDeviceMappingV2Boot", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-cell-capacities", "description": "Adding functionality to get cell capacities.", "links": [], "name": "CellCapacities", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-cells", "description": "Enables cells-related functionality such as adding neighbor cells,\n listing neighbor cells, and getting the capabilities of the local cell.\n ", "links": [], "name": "Cells", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-certificates", "description": "Certificates support.", "links": [], "name": "Certificates", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-cloudpipe", "description": "Adds actions to create cloudpipe instances.\n\n When running with the Vlan network mode, you need a mechanism to route\n from the public Internet to your vlans. This mechanism is known as a\n cloudpipe.\n\n At the time of creating this class, only OpenVPN is supported. Support for\n a SSH Bastion host is forthcoming.\n ", "links": [], "name": "Cloudpipe", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-cloudpipe-update", "description": "Adds the ability to set the vpn ip/port for cloudpipe instances.", "links": [], "name": "CloudpipeUpdate", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-config-drive", "description": "Config Drive Extension.", "links": [], "name": "ConfigDrive", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-console-auth-tokens", "description": "Console token authentication support.", "links": [], "name": "ConsoleAuthTokens", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-console-output", "description": "Console log output support, with tailing ability.", "links": [], "name": "ConsoleOutput", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-consoles", "description": "Interactive Console support.", "links": [], "name": "Consoles", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-create-backup", "description": "Create a backup of a server.", "links": [], "name": "CreateBackup", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-create-server-ext", "description": "Extended support to the Create Server v1.1 API.", "links": [], "name": "Createserverext", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-deferred-delete", "description": "Instance deferred delete.", "links": [], "name": "DeferredDelete", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-evacuate", "description": "Enables server evacuation.", "links": [], "name": "Evacuate", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-extended-evacuate-find-host", "description": "Enables server evacuation without target host. Scheduler will select one to target.", "links": [], "name": "ExtendedEvacuateFindHost", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-extended-floating-ips", "description": "Adds optional fixed_address to the add floating IP command.", "links": [], "name": "ExtendedFloatingIps", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-extended-hypervisors", "description": "Extended hypervisors support.", "links": [], "name": "ExtendedHypervisors", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-extended-networks", "description": "Adds additional fields to networks.", "links": [], "name": "ExtendedNetworks", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-extended-quotas", "description": "Adds ability for admins to delete quota and optionally force the update Quota command.", "links": [], "name": "ExtendedQuotas", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-extended-rescue-with-image", "description": "Allow the user to specify the image to use for rescue.", "links": [], "name": "ExtendedRescueWithImage", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-extended-services", "description": "Extended services support.", "links": [], "name": "ExtendedServices", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-extended-services-delete", "description": "Extended services deletion support.", "links": [], "name": "ExtendedServicesDelete", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-extended-status", "description": "Extended Status support.", "links": [], "name": "ExtendedStatus", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-extended-volumes", "description": "Extended Volumes support.", "links": [], "name": "ExtendedVolumes", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-fixed-ips", "description": "Fixed IPs support.", "links": [], "name": "FixedIPs", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-flavor-access", "description": "Flavor access support.", "links": [], "name": "FlavorAccess", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-flavor-extra-specs", "description": "Flavors extra specs support.", "links": [], "name": "FlavorExtraSpecs", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-flavor-manage", "description": "Flavor create/delete API support.", "links": [], "name": "FlavorManage", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-flavor-rxtx", "description": "Support to show the rxtx status of a flavor.", "links": [], "name": "FlavorRxtx", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-flavor-swap", "description": "Support to show the swap status of a flavor.", "links": [], "name": "FlavorSwap", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-floating-ip-dns", "description": "Floating IP DNS support.", "links": [], "name": "FloatingIpDns", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-floating-ip-pools", "description": "Floating IPs support.", "links": [], "name": "FloatingIpPools", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-floating-ips", "description": "Floating IPs support.", "links": [], "name": "FloatingIps", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-floating-ips-bulk", "description": "Bulk handling of Floating IPs.", "links": [], "name": "FloatingIpsBulk", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-fping", "description": "Fping Management Extension.", "links": [], "name": "Fping", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-hide-server-addresses", "description": "Support hiding server addresses in certain states.", "links": [], "name": "HideServerAddresses", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-hosts", "description": "Admin-only host administration.", "links": [], "name": "Hosts", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-hypervisor-status", "description": "Show hypervisor status.", "links": [], "name": "HypervisorStatus", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-hypervisors", "description": "Admin-only hypervisor administration.", "links": [], "name": "Hypervisors", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-instance-actions", "description": "View a log of actions and events taken on an instance.", "links": [], "name": "InstanceActions", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-instance_usage_audit_log", "description": "Admin-only Task Log Monitoring.", "links": [], "name": "OSInstanceUsageAuditLog", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-keypairs", "description": "Keypair Support.", "links": [], "name": "Keypairs", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-lock-server", "description": "Enable lock/unlock server actions.", "links": [], "name": "LockServer", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-migrate-server", "description": "Enable migrate and live-migrate server actions.", "links": [], "name": "MigrateServer", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-migrations", "description": "Provide data on migrations.", "links": [], "name": "Migrations", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-multiple-create", "description": "Allow multiple create in the Create Server v2.1 API.", "links": [], "name": "MultipleCreate", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-networks", "description": "Admin-only Network Management Extension.", "links": [], "name": "Networks", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-networks-associate", "description": "Network association support.", "links": [], "name": "NetworkAssociationSupport", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-pause-server", "description": "Enable pause/unpause server actions.", "links": [], "name": "PauseServer", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-personality", "description": "Personality support.", "links": [], "name": "Personality", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-preserve-ephemeral-rebuild", "description": "Allow preservation of the ephemeral partition on rebuild.", "links": [], "name": "PreserveEphemeralOnRebuild", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-quota-class-sets", "description": "Quota classes management support.", "links": [], "name": "QuotaClasses", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-quota-sets", "description": "Quotas management support.", "links": [], "name": "Quotas", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-rescue", "description": "Instance rescue mode.", "links": [], "name": "Rescue", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-security-group-default-rules", "description": "Default rules for security group support.", "links": [], "name": "SecurityGroupDefaultRules", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-security-groups", "description": "Security group support.", "links": [], "name": "SecurityGroups", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-server-diagnostics", "description": "Allow Admins to view server diagnostics through server action.", "links": [], "name": "ServerDiagnostics", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-server-external-events", "description": "Server External Event Triggers.", "links": [], "name": "ServerExternalEvents", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-server-group-quotas", "description": "Adds quota support to server groups.", "links": [], "name": "ServerGroupQuotas", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-server-groups", "description": "Server group support.", "links": [], "name": "ServerGroups", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-server-list-multi-status", "description": "Allow to filter the servers by a set of status values.", "links": [], "name": "ServerListMultiStatus", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-server-password", "description": "Server password support.", "links": [], "name": "ServerPassword", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-server-sort-keys", "description": "Add sorting support in get Server v2 API.", "links": [], "name": "ServerSortKeys", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-server-start-stop", "description": "Start/Stop instance compute API support.", "links": [], "name": "ServerStartStop", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-services", "description": "Services support.", "links": [], "name": "Services", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-shelve", "description": "Instance shelve mode.", "links": [], "name": "Shelve", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-simple-tenant-usage", "description": "Simple tenant usage extension.", "links": [], "name": "SimpleTenantUsage", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-suspend-server", "description": "Enable suspend/resume server actions.", "links": [], "name": "SuspendServer", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-tenant-networks", "description": "Tenant-based Network Management Extension.", "links": [], "name": "OSTenantNetworks", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-used-limits", "description": "Provide data on limited resources that are being used.", "links": [], "name": "UsedLimits", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-used-limits-for-admin", "description": "Provide data to admin on limited resources used by other tenants.", "links": [], "name": "UsedLimitsForAdmin", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-user-data", "description": "Add user_data to the Create Server API.", "links": [], "name": "UserData", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-user-quotas", "description": "Project user quota support.", "links": [], "name": "UserQuotas", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-virtual-interfaces", "description": "Virtual interface support.", "links": [], "name": "VirtualInterfaces", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-volume-attachment-update", "description": "Support for updating a volume attachment.", "links": [], "name": "VolumeAttachmentUpdate", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-volumes", "description": "Volumes support.", "links": [], "name": "Volumes", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" } ] } nova-17.0.13/doc/api_samples/extension-info/extensions-list-resp-v21-compatible.json0000664000175000017500000007632213556316250030434 0ustar zuulzuul00000000000000{ "extensions": [ { "alias": "NMN", "description": "Multiple network support.", "links": [], "name": "Multinic", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "OS-DCF", "description": "Disk Management Extension.", "links": [], "name": "DiskConfig", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "OS-EXT-AZ", "description": "Extended Availability Zone support.", "links": [], "name": "ExtendedAvailabilityZone", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "OS-EXT-IMG-SIZE", "description": "Adds image size to image listings.", "links": [], "name": "ImageSize", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "OS-EXT-IPS", "description": "Adds type parameter to the ip list.", "links": [], "name": "ExtendedIps", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "OS-EXT-IPS-MAC", "description": "Adds mac address parameter to the ip list.", "links": [], "name": "ExtendedIpsMac", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "OS-EXT-SRV-ATTR", "description": "Extended Server Attributes support.", "links": [], "name": "ExtendedServerAttributes", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "OS-EXT-STS", "description": "Extended Status support.", "links": [], "name": "ExtendedStatus", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "OS-EXT-VIF-NET", "description": "Adds network id parameter to the virtual interface list.", "links": [], "name": "ExtendedVIFNet", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "OS-FLV-DISABLED", "description": "Support to show the disabled status of a flavor.", "links": [], "name": "FlavorDisabled", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "OS-FLV-EXT-DATA", "description": "Provide additional data for flavors.", "links": [], "name": "FlavorExtraData", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "OS-SCH-HNT", "description": "Pass arbitrary key/value pairs to the scheduler.", "links": [], "name": "SchedulerHints", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "OS-SRV-USG", "description": "Adds launched_at and terminated_at on Servers.", "links": [], "name": "ServerUsage", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-access-ips", "description": "Access IPs support.", "links": [], "name": "AccessIPs", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-admin-actions", "description": "Enable admin-only server actions\n\n Actions include: resetNetwork, injectNetworkInfo, os-resetState\n ", "links": [], "name": "AdminActions", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-admin-password", "description": "Admin password management support.", "links": [], "name": "AdminPassword", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-agents", "description": "Agents support.", "links": [], "name": "Agents", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-aggregates", "description": "Admin-only aggregate administration.", "links": [], "name": "Aggregates", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-assisted-volume-snapshots", "description": "Assisted volume snapshots.", "links": [], "name": "AssistedVolumeSnapshots", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-attach-interfaces", "description": "Attach interface support.", "links": [], "name": "AttachInterfaces", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-availability-zone", "description": "1. Add availability_zone to the Create Server API.\n 2. Add availability zones describing.\n ", "links": [], "name": "AvailabilityZone", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-baremetal-ext-status", "description": "Add extended status in Baremetal Nodes v2 API.", "links": [], "name": "BareMetalExtStatus", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-baremetal-nodes", "description": "Admin-only bare-metal node administration.", "links": [], "name": "BareMetalNodes", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-block-device-mapping", "description": "Block device mapping boot support.", "links": [], "name": "BlockDeviceMapping", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-block-device-mapping-v2-boot", "description": "Allow boot with the new BDM data format.", "links": [], "name": "BlockDeviceMappingV2Boot", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-cell-capacities", "description": "Adding functionality to get cell capacities.", "links": [], "name": "CellCapacities", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-cells", "description": "Enables cells-related functionality such as adding neighbor cells,\n listing neighbor cells, and getting the capabilities of the local cell.\n ", "links": [], "name": "Cells", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-certificates", "description": "Certificates support.", "links": [], "name": "Certificates", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-cloudpipe", "description": "Adds actions to create cloudpipe instances.\n\n When running with the Vlan network mode, you need a mechanism to route\n from the public Internet to your vlans. This mechanism is known as a\n cloudpipe.\n\n At the time of creating this class, only OpenVPN is supported. Support for\n a SSH Bastion host is forthcoming.\n ", "links": [], "name": "Cloudpipe", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-cloudpipe-update", "description": "Adds the ability to set the vpn ip/port for cloudpipe instances.", "links": [], "name": "CloudpipeUpdate", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-config-drive", "description": "Config Drive Extension.", "links": [], "name": "ConfigDrive", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-console-auth-tokens", "description": "Console token authentication support.", "links": [], "name": "ConsoleAuthTokens", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-console-output", "description": "Console log output support, with tailing ability.", "links": [], "name": "ConsoleOutput", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-consoles", "description": "Interactive Console support.", "links": [], "name": "Consoles", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-create-backup", "description": "Create a backup of a server.", "links": [], "name": "CreateBackup", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-create-server-ext", "description": "Extended support to the Create Server v1.1 API.", "links": [], "name": "Createserverext", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-deferred-delete", "description": "Instance deferred delete.", "links": [], "name": "DeferredDelete", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-evacuate", "description": "Enables server evacuation.", "links": [], "name": "Evacuate", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-extended-evacuate-find-host", "description": "Enables server evacuation without target host. Scheduler will select one to target.", "links": [], "name": "ExtendedEvacuateFindHost", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-extended-floating-ips", "description": "Adds optional fixed_address to the add floating IP command.", "links": [], "name": "ExtendedFloatingIps", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-extended-hypervisors", "description": "Extended hypervisors support.", "links": [], "name": "ExtendedHypervisors", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-extended-networks", "description": "Adds additional fields to networks.", "links": [], "name": "ExtendedNetworks", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-extended-quotas", "description": "Adds ability for admins to delete quota and optionally force the update Quota command.", "links": [], "name": "ExtendedQuotas", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-extended-rescue-with-image", "description": "Allow the user to specify the image to use for rescue.", "links": [], "name": "ExtendedRescueWithImage", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-extended-services", "description": "Extended services support.", "links": [], "name": "ExtendedServices", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-extended-services-delete", "description": "Extended services deletion support.", "links": [], "name": "ExtendedServicesDelete", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-extended-status", "description": "Extended Status support.", "links": [], "name": "ExtendedStatus", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-extended-volumes", "description": "Extended Volumes support.", "links": [], "name": "ExtendedVolumes", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-fixed-ips", "description": "Fixed IPs support.", "links": [], "name": "FixedIPs", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-flavor-access", "description": "Flavor access support.", "links": [], "name": "FlavorAccess", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-flavor-extra-specs", "description": "Flavors extra specs support.", "links": [], "name": "FlavorExtraSpecs", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-flavor-manage", "description": "Flavor create/delete API support.", "links": [], "name": "FlavorManage", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-flavor-rxtx", "description": "Support to show the rxtx status of a flavor.", "links": [], "name": "FlavorRxtx", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-flavor-swap", "description": "Support to show the swap status of a flavor.", "links": [], "name": "FlavorSwap", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-floating-ip-dns", "description": "Floating IP DNS support.", "links": [], "name": "FloatingIpDns", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-floating-ip-pools", "description": "Floating IPs support.", "links": [], "name": "FloatingIpPools", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-floating-ips", "description": "Floating IPs support.", "links": [], "name": "FloatingIps", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-floating-ips-bulk", "description": "Bulk handling of Floating IPs.", "links": [], "name": "FloatingIpsBulk", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-fping", "description": "Fping Management Extension.", "links": [], "name": "Fping", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-hide-server-addresses", "description": "Support hiding server addresses in certain states.", "links": [], "name": "HideServerAddresses", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-hosts", "description": "Admin-only host administration.", "links": [], "name": "Hosts", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-hypervisor-status", "description": "Show hypervisor status.", "links": [], "name": "HypervisorStatus", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-hypervisors", "description": "Admin-only hypervisor administration.", "links": [], "name": "Hypervisors", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-instance-actions", "description": "View a log of actions and events taken on an instance.", "links": [], "name": "InstanceActions", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-instance_usage_audit_log", "description": "Admin-only Task Log Monitoring.", "links": [], "name": "OSInstanceUsageAuditLog", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-keypairs", "description": "Keypair Support.", "links": [], "name": "Keypairs", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-lock-server", "description": "Enable lock/unlock server actions.", "links": [], "name": "LockServer", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-migrate-server", "description": "Enable migrate and live-migrate server actions.", "links": [], "name": "MigrateServer", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-migrations", "description": "Provide data on migrations.", "links": [], "name": "Migrations", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-multiple-create", "description": "Allow multiple create in the Create Server v2.1 API.", "links": [], "name": "MultipleCreate", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-networks", "description": "Admin-only Network Management Extension.", "links": [], "name": "Networks", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-networks-associate", "description": "Network association support.", "links": [], "name": "NetworkAssociationSupport", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-pause-server", "description": "Enable pause/unpause server actions.", "links": [], "name": "PauseServer", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-personality", "description": "Personality support.", "links": [], "name": "Personality", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-preserve-ephemeral-rebuild", "description": "Allow preservation of the ephemeral partition on rebuild.", "links": [], "name": "PreserveEphemeralOnRebuild", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-quota-class-sets", "description": "Quota classes management support.", "links": [], "name": "QuotaClasses", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-quota-sets", "description": "Quotas management support.", "links": [], "name": "Quotas", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-rescue", "description": "Instance rescue mode.", "links": [], "name": "Rescue", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-security-group-default-rules", "description": "Default rules for security group support.", "links": [], "name": "SecurityGroupDefaultRules", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-security-groups", "description": "Security group support.", "links": [], "name": "SecurityGroups", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-server-diagnostics", "description": "Allow Admins to view server diagnostics through server action.", "links": [], "name": "ServerDiagnostics", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-server-external-events", "description": "Server External Event Triggers.", "links": [], "name": "ServerExternalEvents", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-server-group-quotas", "description": "Adds quota support to server groups.", "links": [], "name": "ServerGroupQuotas", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-server-groups", "description": "Server group support.", "links": [], "name": "ServerGroups", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-server-list-multi-status", "description": "Allow to filter the servers by a set of status values.", "links": [], "name": "ServerListMultiStatus", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-server-password", "description": "Server password support.", "links": [], "name": "ServerPassword", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-server-sort-keys", "description": "Add sorting support in get Server v2 API.", "links": [], "name": "ServerSortKeys", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-server-start-stop", "description": "Start/Stop instance compute API support.", "links": [], "name": "ServerStartStop", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-services", "description": "Services support.", "links": [], "name": "Services", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-shelve", "description": "Instance shelve mode.", "links": [], "name": "Shelve", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-simple-tenant-usage", "description": "Simple tenant usage extension.", "links": [], "name": "SimpleTenantUsage", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-suspend-server", "description": "Enable suspend/resume server actions.", "links": [], "name": "SuspendServer", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-tenant-networks", "description": "Tenant-based Network Management Extension.", "links": [], "name": "OSTenantNetworks", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-used-limits", "description": "Provide data on limited resources that are being used.", "links": [], "name": "UsedLimits", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-used-limits-for-admin", "description": "Provide data to admin on limited resources used by other tenants.", "links": [], "name": "UsedLimitsForAdmin", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-user-data", "description": "Add user_data to the Create Server API.", "links": [], "name": "UserData", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-user-quotas", "description": "Project user quota support.", "links": [], "name": "UserQuotas", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-virtual-interfaces", "description": "Virtual interface support.", "links": [], "name": "VirtualInterfaces", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-volume-attachment-update", "description": "Support for updating a volume attachment.", "links": [], "name": "VolumeAttachmentUpdate", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" }, { "alias": "os-volumes", "description": "Volumes support.", "links": [], "name": "Volumes", "namespace": "http://docs.openstack.org/compute/ext/fake_xml", "updated": "2014-12-03T00:00:00Z" } ] } nova-17.0.13/doc/api_samples/os-assisted-volume-snapshots/0000775000175000017500000000000013556316574023514 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/os-assisted-volume-snapshots/snapshot-create-assisted-req.json0000664000175000017500000000047613556316250032107 0ustar zuulzuul00000000000000{ "snapshot": { "volume_id": "521752a6-acf6-4b2d-bc7a-119f9148cd8c", "create_info": { "snapshot_id": "421752a6-acf6-4b2d-bc7a-119f9148cd8c", "type": "qcow2", "new_file": "new_file_name", "id": "421752a6-acf6-4b2d-bc7a-119f9148cd8c" } } } nova-17.0.13/doc/api_samples/os-assisted-volume-snapshots/snapshot-create-assisted-resp.json0000664000175000017500000000021413556316250032257 0ustar zuulzuul00000000000000{ "snapshot": { "id": "421752a6-acf6-4b2d-bc7a-119f9148cd8c", "volumeId": "521752a6-acf6-4b2d-bc7a-119f9148cd8c" } }nova-17.0.13/doc/api_samples/os-server-diagnostics/0000775000175000017500000000000013556316574022163 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/os-server-diagnostics/v2.48/0000775000175000017500000000000013556316574022744 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/os-server-diagnostics/v2.48/server-diagnostics-get-resp.json0000664000175000017500000000201513556316250031163 0ustar zuulzuul00000000000000{ "config_drive": true, "cpu_details": [ { "id": 0, "time": 17300000000, "utilisation": 15 } ], "disk_details": [ { "errors_count": 1, "read_bytes": 262144, "read_requests": 112, "write_bytes": 5778432, "write_requests": 488 } ], "driver": "libvirt", "hypervisor": "kvm", "hypervisor_os": "ubuntu", "memory_details": { "maximum": 524288, "used": 0 }, "nic_details": [ { "mac_address": "01:23:45:67:89:ab", "rx_drop": 200, "rx_errors": 100, "rx_octets": 2070139, "rx_packets": 26701, "rx_rate": 300, "tx_drop": 500, "tx_errors": 400, "tx_octets": 140208, "tx_packets": 662, "tx_rate": 600 } ], "num_cpus": 1, "num_disks": 1, "num_nics": 1, "state": "running", "uptime": 46664 } nova-17.0.13/doc/api_samples/os-server-diagnostics/server-diagnostics-get-resp.json0000664000175000017500000000060313556316250030403 0ustar zuulzuul00000000000000{ "cpu0_time": 17300000000, "memory": 524288, "vda_errors": -1, "vda_read": 262144, "vda_read_req": 112, "vda_write": 5778432, "vda_write_req": 488, "vnet1_rx": 2070139, "vnet1_rx_drop": 0, "vnet1_rx_errors": 0, "vnet1_rx_packets": 26701, "vnet1_tx": 140208, "vnet1_tx_drop": 0, "vnet1_tx_errors": 0, "vnet1_tx_packets": 662 } nova-17.0.13/doc/api_samples/os-server-groups/0000775000175000017500000000000013556316574021173 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/os-server-groups/server-groups-list-resp.json0000664000175000017500000000035413556316250026622 0ustar zuulzuul00000000000000{ "server_groups": [ { "id": "616fb98f-46ca-475e-917e-2563e5a8cd19", "name": "test", "policies": ["anti-affinity"], "members": [], "metadata": {} } ] } nova-17.0.13/doc/api_samples/os-server-groups/server-groups-get-resp.json0000664000175000017500000000030313556316250026420 0ustar zuulzuul00000000000000{ "server_group": { "id": "5bbcc3c4-1da2-4437-a48a-66f15b1b13f9", "name": "test", "policies": ["anti-affinity"], "members": [], "metadata": {} } } nova-17.0.13/doc/api_samples/os-server-groups/v2.13/0000775000175000017500000000000013556316574021744 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/os-server-groups/v2.13/server-groups-list-resp.json0000664000175000017500000000051113556316250027366 0ustar zuulzuul00000000000000{ "server_groups": [ { "id": "616fb98f-46ca-475e-917e-2563e5a8cd19", "name": "test", "policies": ["anti-affinity"], "members": [], "metadata": {}, "project_id": "6f70656e737461636b20342065766572", "user_id": "fake" } ] } nova-17.0.13/doc/api_samples/os-server-groups/v2.13/server-groups-get-resp.json0000664000175000017500000000043013556316250027172 0ustar zuulzuul00000000000000{ "server_group": { "id": "5bbcc3c4-1da2-4437-a48a-66f15b1b13f9", "name": "test", "policies": ["anti-affinity"], "members": [], "metadata": {}, "project_id": "6f70656e737461636b20342065766572", "user_id": "fake" } } nova-17.0.13/doc/api_samples/os-server-groups/v2.13/server-groups-post-req.json0000664000175000017500000000013613556316250027221 0ustar zuulzuul00000000000000{ "server_group": { "name": "test", "policies": ["anti-affinity"] } } nova-17.0.13/doc/api_samples/os-server-groups/v2.13/server-groups-post-resp.json0000664000175000017500000000043013556316250027400 0ustar zuulzuul00000000000000{ "server_group": { "id": "5bbcc3c4-1da2-4437-a48a-66f15b1b13f9", "name": "test", "policies": ["anti-affinity"], "members": [], "metadata": {}, "project_id": "6f70656e737461636b20342065766572", "user_id": "fake" } } nova-17.0.13/doc/api_samples/os-server-groups/server-groups-post-req.json0000664000175000017500000000013613556316250026450 0ustar zuulzuul00000000000000{ "server_group": { "name": "test", "policies": ["anti-affinity"] } } nova-17.0.13/doc/api_samples/os-server-groups/server-groups-post-resp.json0000664000175000017500000000030313556316250026626 0ustar zuulzuul00000000000000{ "server_group": { "id": "5bbcc3c4-1da2-4437-a48a-66f15b1b13f9", "name": "test", "policies": ["anti-affinity"], "members": [], "metadata": {} } } nova-17.0.13/doc/api_samples/os-deferred-delete/0000775000175000017500000000000013556316574021370 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/os-deferred-delete/restore-post-req.json0000664000175000017500000000002713556316250025504 0ustar zuulzuul00000000000000{ "restore": null }nova-17.0.13/doc/api_samples/os-deferred-delete/force-delete-post-req.json0000664000175000017500000000003413556316250026355 0ustar zuulzuul00000000000000{ "forceDelete": null } nova-17.0.13/doc/api_samples/os-cells/0000775000175000017500000000000013556316574017452 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/os-cells/cells-capacities-resp.json0000664000175000017500000000116213556316250024510 0ustar zuulzuul00000000000000{ "cell": { "capacities": { "disk_free": { "total_mb": 1052672, "units_by_mb": { "0": 0, "163840": 5, "20480": 46, "40960": 23, "81920": 11 } }, "ram_free": { "total_mb": 7680, "units_by_mb": { "16384": 0, "2048": 3, "4096": 1, "512": 13, "8192": 0 } } } } }nova-17.0.13/doc/api_samples/os-cells/cells-list-resp.json0000664000175000017500000000160413556316250023357 0ustar zuulzuul00000000000000{ "cells": [ { "name": "cell1", "rpc_host": null, "rpc_port": null, "type": "child", "username": "username1" }, { "name": "cell3", "rpc_host": null, "rpc_port": null, "type": "child", "username": "username3" }, { "name": "cell5", "rpc_host": null, "rpc_port": null, "type": "child", "username": "username5" }, { "name": "cell2", "rpc_host": null, "rpc_port": null, "type": "parent", "username": "username2" }, { "name": "cell4", "rpc_host": null, "rpc_port": null, "type": "parent", "username": "username4" } ] }nova-17.0.13/doc/api_samples/os-cells/cells-get-resp.json0000664000175000017500000000023513556316250023162 0ustar zuulzuul00000000000000{ "cell": { "name": "cell3", "rpc_host": null, "rpc_port": null, "type": "child", "username": "username3" } }nova-17.0.13/doc/api_samples/os-cells/cells-list-empty-resp.json0000664000175000017500000000002313556316250024505 0ustar zuulzuul00000000000000{ "cells": [] }nova-17.0.13/doc/api_samples/os-console-auth-tokens/0000775000175000017500000000000013556316574022252 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/os-console-auth-tokens/get-console-connect-info-get-resp.json0000664000175000017500000000032613556316250031460 0ustar zuulzuul00000000000000{ "console": { "instance_uuid": "b48316c5-71e8-45e4-9884-6c78055b9b13", "host": "localhost", "port": 5900, "internal_access_path": "51af38c3-555e-4884-a314-6c8cdde37444" } } nova-17.0.13/doc/api_samples/os-console-auth-tokens/get-rdp-console-post-req.json0000664000175000017500000000010013556316250027675 0ustar zuulzuul00000000000000{ "os-getRDPConsole": { "type": "rdp-html5" } } nova-17.0.13/doc/api_samples/os-suspend-server/0000775000175000017500000000000013556316574021335 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/os-suspend-server/server-suspend.json0000664000175000017500000000002713556316250025203 0ustar zuulzuul00000000000000{ "suspend": null }nova-17.0.13/doc/api_samples/os-suspend-server/server-resume.json0000664000175000017500000000002613556316250025021 0ustar zuulzuul00000000000000{ "resume": null }nova-17.0.13/doc/api_samples/server-metadata/0000775000175000017500000000000013556316574021015 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/server-metadata/server-metadata-resp.json0000664000175000017500000000006313556316250025731 0ustar zuulzuul00000000000000{ "meta": { "foo": "Foo Value" } } nova-17.0.13/doc/api_samples/server-metadata/server-metadata-all-resp.json0000664000175000017500000000006613556316250026502 0ustar zuulzuul00000000000000{ "metadata": { "foo": "Foo Value" } }nova-17.0.13/doc/api_samples/server-metadata/server-metadata-all-req.json0000664000175000017500000000006713556316250026321 0ustar zuulzuul00000000000000{ "metadata": { "foo": "Foo Value" } } nova-17.0.13/doc/api_samples/server-metadata/server-metadata-req.json0000664000175000017500000000006313556316250025547 0ustar zuulzuul00000000000000{ "meta": { "foo": "Bar Value" } } nova-17.0.13/doc/api_samples/os-server-password/0000775000175000017500000000000013556316574021516 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/os-server-password/get-password-resp.json0000664000175000017500000000055613556316250025774 0ustar zuulzuul00000000000000{ "password": "xlozO3wLCBRWAa2yDjCCVx8vwNPypxnypmRYDa/zErlQ+EzPe1S/Gz6nfmC52mOlOSCRuUOmG7kqqgejPof6M7bOezS387zjq4LSvvwp28zUknzy4YzfFGhnHAdai3TxUJ26pfQCYrq8UTzmKF2Bq8ioSEtVVzM0A96pDh8W2i7BOz6MdoiVyiev/I1K2LsuipfxSJR7Wdke4zNXJjHHP2RfYsVbZ/k9ANu+Nz4iIH8/7Cacud/pphH7EjrY6a4RZNrjQskrhKYed0YERpotyjYk1eDtRe72GrSiXteqCM4biaQ5w3ruS+AcX//PXk3uJ5kC7d67fPXaVz4WaQRYMg==" }nova-17.0.13/doc/api_samples/flavor-manage/0000775000175000017500000000000013556316574020450 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/flavor-manage/flavor-create-post-req.json0000664000175000017500000000024513556316250025635 0ustar zuulzuul00000000000000{ "flavor": { "name": "test_flavor", "ram": 1024, "vcpus": 2, "disk": 10, "id": "10", "rxtx_factor": 2.0 } } nova-17.0.13/doc/api_samples/flavor-manage/v2.55/0000775000175000017500000000000013556316574021227 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/flavor-manage/v2.55/flavor-create-post-req.json0000664000175000017500000000032013556316250026406 0ustar zuulzuul00000000000000{ "flavor": { "name": "test_flavor", "ram": 1024, "vcpus": 2, "disk": 10, "id": "10", "rxtx_factor": 2.0, "description": "test description" } } nova-17.0.13/doc/api_samples/flavor-manage/v2.55/flavor-update-resp.json0000664000175000017500000000130113556316250025624 0ustar zuulzuul00000000000000{ "flavor": { "OS-FLV-DISABLED:disabled": false, "disk": 1, "OS-FLV-EXT-DATA:ephemeral": 0, "os-flavor-access:is_public": true, "id": "1", "links": [ { "href": "http://openstack.example.com/v2.1/6f70656e737461636b20342065766572/flavors/1", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/flavors/1", "rel": "bookmark" } ], "name": "m1.tiny", "ram": 512, "swap": "", "vcpus": 1, "rxtx_factor": 1.0, "description": "updated description" } } nova-17.0.13/doc/api_samples/flavor-manage/v2.55/flavor-create-post-resp.json0000664000175000017500000000130513556316250026574 0ustar zuulzuul00000000000000{ "flavor": { "OS-FLV-DISABLED:disabled": false, "disk": 10, "OS-FLV-EXT-DATA:ephemeral": 0, "os-flavor-access:is_public": true, "id": "10", "links": [ { "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/flavors/10", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/flavors/10", "rel": "bookmark" } ], "name": "test_flavor", "ram": 1024, "swap": "", "rxtx_factor": 2.0, "vcpus": 2, "description": "test description" } } nova-17.0.13/doc/api_samples/flavor-manage/v2.55/flavor-update-req.json0000664000175000017500000000010713556316250025445 0ustar zuulzuul00000000000000{ "flavor": { "description": "updated description" } } nova-17.0.13/doc/api_samples/flavor-manage/flavor-create-post-resp.json0000664000175000017500000000123213556316250026014 0ustar zuulzuul00000000000000{ "flavor": { "OS-FLV-DISABLED:disabled": false, "disk": 10, "OS-FLV-EXT-DATA:ephemeral": 0, "os-flavor-access:is_public": true, "id": "10", "links": [ { "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/flavors/10", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/flavors/10", "rel": "bookmark" } ], "name": "test_flavor", "ram": 1024, "swap": "", "rxtx_factor": 2.0, "vcpus": 2 } } nova-17.0.13/doc/api_samples/os-hide-server-addresses/0000775000175000017500000000000013556316574022540 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/os-hide-server-addresses/server-get-resp.json0000664000175000017500000000451713556316250026463 0ustar zuulzuul00000000000000{ "server": { "accessIPv4": "1.2.3.4", "accessIPv6": "80fe::", "addresses": {}, "created": "2013-09-24T14:39:00Z", "flavor": { "id": "1", "links": [ { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/flavors/1", "rel": "bookmark" } ] }, "hostId": "d0635823e9162b22b90ff103f0c30f129bacf6ffb72f4d6fde87e738", "id": "4bdee8c7-507f-40f2-8429-d301edd3791b", "image": { "id": "70a599e0-31e7-49b7-b260-868f441e862b", "links": [ { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/images/70a599e0-31e7-49b7-b260-868f441e862b", "rel": "bookmark" } ] }, "key_name": null, "links": [ { "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/servers/4bdee8c7-507f-40f2-8429-d301edd3791b", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/servers/4bdee8c7-507f-40f2-8429-d301edd3791b", "rel": "bookmark" } ], "metadata": { "My Server Name": "Apache1" }, "name": "new-server-test", "config_drive": "", "OS-DCF:diskConfig": "AUTO", "OS-EXT-AZ:availability_zone": "nova", "OS-EXT-SRV-ATTR:host": "b8b357f7100d4391828f2177c922ef93", "OS-EXT-SRV-ATTR:hypervisor_hostname": "fake-mini", "OS-EXT-SRV-ATTR:instance_name": "instance-00000001", "OS-EXT-STS:power_state": 1, "OS-EXT-STS:task_state": null, "OS-EXT-STS:vm_state": "active", "os-extended-volumes:volumes_attached": [ {"id": "volume_id1"}, {"id": "volume_id2"} ], "OS-SRV-USG:launched_at": "2013-09-23T13:37:00.880302", "OS-SRV-USG:terminated_at": null, "progress": 0, "security_groups": [ { "name": "default" } ], "status": "ACTIVE", "tenant_id": "6f70656e737461636b20342065766572", "updated": "2013-09-24T14:39:01Z", "user_id": "fake" } } nova-17.0.13/doc/api_samples/os-hide-server-addresses/servers-list-resp.json0000664000175000017500000000113413556316250027032 0ustar zuulzuul00000000000000{ "servers": [ { "id": "b2a7068b-8aed-41a4-aa74-af8feb984bae", "links": [ { "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/servers/b2a7068b-8aed-41a4-aa74-af8feb984bae", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/servers/b2a7068b-8aed-41a4-aa74-af8feb984bae", "rel": "bookmark" } ], "name": "new-server-test" } ] }nova-17.0.13/doc/api_samples/os-hide-server-addresses/servers-details-resp.json0000664000175000017500000000514413556316250027511 0ustar zuulzuul00000000000000{ "servers": [ { "accessIPv4": "1.2.3.4", "accessIPv6": "80fe::", "addresses": {}, "created": "2013-09-24T14:44:01Z", "flavor": { "id": "1", "links": [ { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/flavors/1", "rel": "bookmark" } ] }, "hostId": "a4fa72ae8741e5e18fb062c15657b8f689b8da2837b734c61fc9eedd", "id": "a747eac1-e3ed-446c-935a-c2a2853f919c", "image": { "id": "70a599e0-31e7-49b7-b260-868f441e862b", "links": [ { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/images/70a599e0-31e7-49b7-b260-868f441e862b", "rel": "bookmark" } ] }, "key_name": null, "links": [ { "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/servers/a747eac1-e3ed-446c-935a-c2a2853f919c", "rel": "self" }, { "href": "http://openstack.example.com/6f70656e737461636b20342065766572/servers/a747eac1-e3ed-446c-935a-c2a2853f919c", "rel": "bookmark" } ], "metadata": { "My Server Name": "Apache1" }, "name": "new-server-test", "config_drive": "", "OS-DCF:diskConfig": "AUTO", "OS-EXT-AZ:availability_zone": "nova", "OS-EXT-SRV-ATTR:host": "c3f14e9812ad496baf92ccfb3c61e15f", "OS-EXT-SRV-ATTR:hypervisor_hostname": "fake-mini", "OS-EXT-SRV-ATTR:instance_name": "instance-00000001", "OS-EXT-STS:power_state": 1, "OS-EXT-STS:task_state": null, "OS-EXT-STS:vm_state": "active", "os-extended-volumes:volumes_attached": [ {"id": "volume_id1"}, {"id": "volume_id2"} ], "OS-SRV-USG:launched_at": "2013-09-23T13:53:12.774549", "OS-SRV-USG:terminated_at": null, "progress": 0, "security_groups": [ { "name": "default" } ], "status": "ACTIVE", "tenant_id": "6f70656e737461636b20342065766572", "updated": "2013-09-24T14:44:01Z", "user_id": "fake" } ] } nova-17.0.13/doc/api_samples/os-tenant-networks/0000775000175000017500000000000013556316574021513 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/os-tenant-networks/networks-post-req.json0000664000175000017500000000024513556316250026022 0ustar zuulzuul00000000000000{ "network": { "label": "public", "cidr": "172.0.0.0/24", "vlan_start": 1, "num_networks": 1, "network_size": 255 } }nova-17.0.13/doc/api_samples/os-tenant-networks/networks-list-res.json0000664000175000017500000000047313556316250026015 0ustar zuulzuul00000000000000{ "networks": [ { "cidr": "10.0.0.0/29", "id": "616fb98f-46ca-475e-917e-2563e5a8cd19", "label": "test_0" }, { "cidr": "10.0.0.8/29", "id": "616fb98f-46ca-475e-917e-2563e5a8cd20", "label": "test_1" } ] } nova-17.0.13/doc/api_samples/os-tenant-networks/networks-post-res.json0000664000175000017500000000021313556316250026017 0ustar zuulzuul00000000000000{ "network": { "cidr": "172.0.0.0/24", "id": "5bbcc3c4-1da2-4437-a48a-66f15b1b13f9", "label": "public" } } nova-17.0.13/doc/api_samples/os-networks-associate/0000775000175000017500000000000013556316574022175 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/os-networks-associate/network-disassociate-host-req.json0000664000175000017500000000004113556316250030754 0ustar zuulzuul00000000000000{ "disassociate_host": null }nova-17.0.13/doc/api_samples/os-networks-associate/network-associate-host-req.json0000664000175000017500000000004413556316250030257 0ustar zuulzuul00000000000000{ "associate_host": "testHost" }nova-17.0.13/doc/api_samples/os-networks-associate/network-disassociate-req.json0000664000175000017500000000003413556316250030003 0ustar zuulzuul00000000000000{ "disassociate": null }nova-17.0.13/doc/api_samples/os-networks-associate/network-disassociate-project-req.json0000664000175000017500000000004413556316250031450 0ustar zuulzuul00000000000000{ "disassociate_project": null }nova-17.0.13/doc/api_samples/os-lock-server/0000775000175000017500000000000013556316574020604 5ustar zuulzuul00000000000000nova-17.0.13/doc/api_samples/os-lock-server/lock-server.json0000664000175000017500000000002413556316250023716 0ustar zuulzuul00000000000000{ "lock": null }nova-17.0.13/doc/api_samples/os-lock-server/unlock-server.json0000664000175000017500000000002613556316250024263 0ustar zuulzuul00000000000000{ "unlock": null }nova-17.0.13/doc/README.rst0000664000175000017500000000067113556316250015116 0ustar zuulzuul00000000000000OpenStack Nova Documentation README =================================== Both contributor developer documentation and REST API documentation are sourced here. Contributor developer docs are built to: https://docs.openstack.org/nova/latest/ API guide docs are built to: https://developer.openstack.org/api-guide/compute/ For more details, see the "Building the Documentation" section of doc/source/contributor/development-environment.rst. nova-17.0.13/doc/source/0000775000175000017500000000000013556316574014734 5ustar zuulzuul00000000000000nova-17.0.13/doc/source/index.rst0000664000175000017500000002644513556316250016577 0ustar zuulzuul00000000000000.. Copyright 2010-2012 United States Government as represented by the Administrator of the National Aeronautics and Space Administration. All Rights Reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. ======================== OpenStack Compute (nova) ======================== What is nova? ============= Nova is the OpenStack project that provides a way to provision compute instances (aka virtual servers). Nova supports creating virtual machines, baremetal servers (through the use of ironic), and has limited support for system containers. Nova runs as a set of daemons on top of existing Linux servers to provide that service. It requires the following additional OpenStack services for basic function: * `Keystone `__: This provides identity and authentication for all OpenStack services. * `Glance `__: This provides the compute image repository. All compute instances launch from glance images. * `Neutron `__: This is responsible for provisioning the virtual or physical networks that compute instances connect to on boot. It can also integrate with other services to include: persistent block storage, encrypted disks, and baremetal compute instances. For End Users ============= As an end user of nova, you'll use nova to create and manage servers with either tools or the API directly. Tools for using Nova -------------------- * `Horizon `_: The official web ui for the OpenStack Project. * `OpenStack Client `_: The official CLI for OpenStack Projects. You should use this as your CLI for most things, it includes not just nova commands but also commands for most of the projects in OpenStack. * `Nova Client `_: For some very advanced features (or administrative commands) of nova you may need to use nova client. It is still supported, but the ``openstack`` cli is recommended. Writing to the API ------------------ All end user (and some administrative) features of nova are exposed via a REST API, which can be used to build more complicated logic or automation with nova. This can be consumed directly, or via various SDKs. The following resources will help you get started with consuming the API directly. * `Compute API Guide `_: The concept guide for the API. This helps lay out the concepts behind the API to make consuming the API reference easier. * `Compute API Reference `_: The complete reference for the compute API, including all methods and request / response parameters and their meaning. * :doc:`Compute API Microversion History `: The compute API evolves over time through `Microversions `_. This provides the history of all those changes. Consider it a "what's new" in the compute API. * `Placement API Reference `_: The complete reference for the placement API, including all methods and request / response parameters and their meaning. * :ref:`Placement API Microversion History `: The placement API evolves over time through `Microversions `_. This provides the history of all those changes. Consider it a "what's new" in the placement API. * :doc:`Block Device Mapping `: One of the trickier parts to understand is the Block Device Mapping parameters used to connect specific block devices to computes. This deserves its own deep dive. * :doc:`Configuration drive `: Provide information to the guest instance when it is created. Nova can be configured to emit notifications over RPC. * :ref:`Versioned Notifications `: This provides the list of existing versioned notifications with sample payloads. For Operators ============= Architecture Overview --------------------- * :doc:`Nova architecture `: An overview of how all the parts in nova fit together. Installation ------------ .. TODO(sdague): links to all the rest of the install guide pieces. The detailed install guide for nova. A functioning nova will also require having installed `keystone `__, `glance `__, and `neutron `__. Please ensure that you follow their install guides first. .. toctree:: :maxdepth: 2 install/index Deployment Considerations ------------------------- There is information you might want to consider before doing your deployment, especially if it is going to be a larger deployment. For smaller deployments the defaults from the :doc:`install guide ` will be sufficient. * **Compute Driver Features Supported**: While the majority of nova deployments use libvirt/kvm, you can use nova with other compute drivers. Nova attempts to provide a unified feature set across these, however, not all features are implemented on all backends, and not all features are equally well tested. * :doc:`Feature Support by Use Case `: A view of what features each driver supports based on what's important to some large use cases (General Purpose Cloud, NFV Cloud, HPC Cloud). * :doc:`Feature Support full list `: A detailed dive through features in each compute driver backend. * :doc:`Cells v2 Planning `: For large deployments, Cells v2 allows sharding of your compute environment. Upfront planning is key to a successful Cells v2 layout. * :doc:`Placement service `: Overview of the placement service, including how it fits in with the rest of nova. * :doc:`Running nova-api on wsgi `: Considerations for using a real WSGI container instead of the baked-in eventlet web server. Maintenance ----------- Once you are running nova, the following information is extremely useful. * :doc:`Admin Guide `: A collection of guides for administrating nova. .. warning:: This guide was imported during the Pike cycle and is a bit out of date. It will be updated during Queens to be more accurate. * :doc:`Flavors `: What flavors are and why they are used. * :doc:`Upgrades `: How nova is designed to be upgraded for minimal service impact, and the order you should do them in. * :doc:`Quotas `: Managing project quotas in nova. * :doc:`Aggregates `: Aggregates are a useful way of grouping hosts together for scheduling purposes. * :doc:`Filter Scheduler `: How the filter scheduler is configured, and how that will impact where compute instances land in your environment. If you are seeing unexpected distribution of compute instances in your hosts, you'll want to dive into this configuration. * :doc:`Exposing custom metadata to compute instances `: How and when you might want to extend the basic metadata exposed to compute instances (either via metadata server or config drive) for your specific purposes. Reference Material ------------------ * :doc:`Nova CLI Command References `: the complete command reference for all the daemons and admin tools that come with nova. * **Configuration**: * :doc:`Configuration Guide `: detailed configuration guides for various parts of you Nova system. Helpful reference for setting up specific hypervisor backends. * :doc:`Config Reference `: a complete reference of all configuration options available in the nova.conf file. * :doc:`Sample Config File `: a sample config file with inline documentation. * **Policy**: nova, like most OpenStack projects, uses a policy language to restrict permissions on REST API actions. * :doc:`Policy Reference `: a complete reference of all policy points in nova and what they impact. * :doc:`Sample Policy File `: a sample policy file with inline documentation. For Contributors ================ If you are new to Nova, this should help you start to understand what Nova actually does, and why. .. toctree:: :maxdepth: 1 contributor/index There are also a number of technical references on both current and future looking parts of our architecture. These are collected below. .. toctree:: :maxdepth: 1 reference/index .. # NOTE(mriedem): This is the section where we hide things that we don't # actually want in the table of contents but sphinx build would fail if # they aren't in the toctree somewhere. For example, we hide api/autoindex # since that's already covered with modindex below. .. toctree:: :hidden: admin/index admin/configuration/index cli/index configuration/index configuration/config configuration/sample-config configuration/policy configuration/sample-policy contributor/development-environment contributor/api contributor/api-2 contributor/blueprints contributor/code-review contributor/documentation contributor/microversions contributor/placement.rst contributor/policies.rst contributor/releasenotes contributor/testing contributor/testing/libvirt-numa contributor/testing/serial-console contributor/testing/zero-downtime-upgrade contributor/how-to-get-involved contributor/process contributor/project-scope reference/api-microversion-history.rst reference/gmr reference/i18n reference/live-migration reference/notifications reference/policy-enforcement reference/rpc reference/scheduling reference/scheduler-evolution reference/services reference/stable-api reference/threading reference/vm-states user/index user/aggregates user/architecture user/block-device-mapping user/cells user/cellsv2-layout user/conductor user/config-drive user/feature-classification user/filter-scheduler user/flavors user/manage-ip-addresses user/placement user/quotas user/support-matrix user/upgrade user/user-data user/vendordata user/wsgi Search ====== * :ref:`Nova document search `: Search the contents of this document. * `OpenStack wide search `_: Search the wider set of OpenStack documentation, including forums. nova-17.0.13/doc/source/_static/0000775000175000017500000000000013556316574016362 5ustar zuulzuul00000000000000nova-17.0.13/doc/source/_static/images/0000775000175000017500000000000013556316574017627 5ustar zuulzuul00000000000000nova-17.0.13/doc/source/_static/images/rpc-rabt.svg0000664000175000017500000010200713556316250022051 0ustar zuulzuul00000000000000 Page-1 Rounded rectangle ATM switch name: control_exchange (type: topic) Sheet.3 Sheet.4 Sheet.5 Sheet.6 Sheet.7 Sheet.8 name: control_exchange(type: topic) Sheet.17 Rectangle Rectangle.10 Rectangle.11 Rectangle.12 Rectangle.13 Rectangle.14 Rectangle.15 Sheet.9 Rectangle Rectangle.10 Rectangle.11 Rectangle.12 Rectangle.13 Rectangle.14 Rectangle.15 Sheet.25 Sheet.27 key: topic key: topic Sheet.28 key: topic.host key: topic.host Sheet.26 Rectangle Topic Consumer Topic Consumer Rectangle.30 Topic Consumer Topic Consumer Sheet.31 Sheet.32 Sheet.33 Rectangle.34 Rectangle.35 Direct Publisher DirectPublisher Sheet.36 Worker (e.g. compute) Worker(e.g. compute) ATM switch.37 name: msg_id (type: direct) Sheet.38 Sheet.39 Sheet.40 Sheet.41 Sheet.42 Sheet.43 name: msg_id(type: direct) Sheet.44 Rectangle Rectangle.10 Rectangle.11 Rectangle.12 Rectangle.13 Rectangle.14 Rectangle.15 Sheet.52 key: msg_id key: msg_id Sheet.53 Sheet.54 Rectangle.57 Rectangle.58 Direct Consumer DirectConsumer Sheet.59 Invoker (e.g. api) Invoker(e.g. api) Rectangle.55 Topic Publisher Topic Publisher Sheet.56 Sheet.60 Sheet.62 RabbitMQ Node (single virtual host context) RabbitMQ Node(single virtual host context) nova-17.0.13/doc/source/_static/images/create-vm-states.svg0000664000175000017500000002420413556316250023525 0ustar zuulzuul00000000000000 blockdiag seqdiag { edge_length = 250; span_height = 40; node_width=200; default_note_color = lightblue; // Use note (put note on rightside) api [label="Compute.api"]; manager [label="Compute.manager"]; api -> manager [label = "create_db_entry_for_new_instance", note = "VM: Building Task: Scheduling Power: No State"]; manager -> manager [label="_start_building", note ="VM: Building Task: None"]; manager -> manager [label="_allocate_network", note ="VM: Building Task: Networking"]; manager -> manager [label="_prep_block_device", note ="VM: Building Task: Block_Device_Mapping"]; manager -> manager [label="_spawn", note ="VM: Building Task: Spawning"]; api <-- manager [note ="VM: Active Task: None"]; } Compute.api Compute.manager VM: Building Task: Scheduling Power: No State VM: Building Task: None VM: Building Task: Networking VM: Building Task: Block_Device_Mapping VM: Building Task: Spawning VM: Active Task: None create_db_entry_for_new_instance _start_building _allocate_network _prep_block_device _spawn nova-17.0.13/doc/source/_static/images/architecture.svg0000664000175000017500000015207613556316250023034 0ustar zuulzuul00000000000000 API Conductor API API Conductor Conductor Scheduler Scheduler Scheduler DB Compute Compute Compute Keystone Network Glance & Cinder oslo.messaging DB HTTP Nova service External service Hypervisor Nova-Networking API Conductor API API Conductor Conductor Scheduler Scheduler Scheduler DB Compute Compute Compute Keystone Glance & Cinder Hypervisor Neutron Neutron nova-17.0.13/doc/source/_static/images/filtering-workflow-1.png0000664000175000017500000020266513556316250024330 0ustar zuulzuul00000000000000PNG  IHDR&sRGBbKGD pHYs+tIME;o IDATxgp\Yv{.7,bjuKN޶PKjV#NFhm#6b(vFe$4=ьԶԶڗ#E$L3w?*6YU$"&̇ι=E!H$D"r$D"Ha"H$D"D"H$)L$D"H0H$D"D"H$&D"H0H$D"D"H$&D"H$RH$D"D"H$D D"H$RH$D"Ha"H$D D"H$)L$D"H0H$D"D"H$&D"H0H$D"D"H$&D"H$RH$D"D"H$D D"H$RH$D"Ha"H$D D"H$)L$D"Ha"H$D"D"H$)L$D"H0H$D"D"H$&D"H$~x!Bͯߍ(((o-H6qp8, !\ uTUEQ;I$&#FVI٤1Mz8(ix G' rrj!_) &N۶ʆP# 'M"H$B?*8]kkTuڦ1 ?fi u\Y6e#,K2'LN%1tCZ@k+jCx<~sߵmn4qLnO+H09xP(Tc!D#a X !@\WO:FC2expd"!W%;2N8L8x{ԱlZ:RD&LAH$S8Cvy|J/!u{r}]th+8h~@[d@$ ۻ.=ӤY.cZ җN!Har0 jxP,;eѬT0kuR(CRHe1R>iDRI#c4i+X$G ?ϖH$R87SDD)4]{a["n`*щ ~0ɞs4mP*E0Q`&\g11<بH0_ضR6\6 o{AuWsx]c۶-$d;1{=fgY-Q|>RCCBЪh+D gO&˛%Hat59I&yVXS'N`r';ԛM޺q#14/S' `hpP |D KRm#h'Rf{|<~~OZd+< tpӹb^A4ʹD"dﱘ0=zqGŤIvoLY["2Mr E<%+Haw&[SS, Ttf|pa9J ^}-GvfmՙYbq.?GW&''Y(IBZ*r#CDhuv:KkkKs"@ gʪ&7ޞb'>2PЪh*e|tTɎ87ofFjl>sKnqٳ|3\ejvR%B01Y"*즨a\&9:E LLP{\~N#oD"ɣ .X*ƈ+ D#ezi\>/P#30OT$:4EEa`bmquf'oD"O,+Ih2 3ei`>avy`*#Aƭ؎#oD"Α/7!Oz=LNOj5J\"x`$rp'/U%=6Jr[T"dgtLϣA`J<fz(D4<$ט[X HaL޾MuH l"%ŵ7hX&C7{>4KjUD" k,Wd76rJɖͫWCŢ2#M$)LcR]fY.bFE$**GJQhfׯ|D %N=čí),ۖ)?t]Zğcxw2SU(j,e2RH$Rl qz: "()w;ܼ}[&J>qvsmM&}%a0,,H$R<B2ѣ<;!# J%i2n#cQõDz|6K8DQﭑ\EpBT]Gx<ܜ";y{lYXğG]m& \-Har͙i*$.֮_l)O8t:>{ss/,pI9J| L$3ݦj1=Le`_4D~+Had [UAbFfB5jB,JH'Z%dWVW+'NCcFfG2~E9QnJ>fhXTٳh$)LޛVlf 4vtbxs$;sN|2r 0@"XI=b.`xliKrרV;;E!=2L.%1x6J$]YF-,.S6%Jz,MD§Jn]\.#0(w>DT;mih=[6t:4 i4sgշVqx^/z0rV&J$RܛJJv@4+Uts#>yVz r7T*1XLrtMSZ!n)䉦Ө??7YEH ;F.wZ)ޑh_ZC&#ŽD"ɏ `~q  9-'1kQ¡/JַoP0gCa^6);a*p׻Mu=>ТD}sj%L$RK$R|q\L/}GHc2-qN-ORpחTz; 9n߾ͅem 0 EBuzϓ lSWp݉T KQ19O>)'Cܼuk9X ͪnBZ-BjdZ~exqI$Ur5 ]TQ !yԁɭF]RfE8|jT{&}'N`LDK299/Jq/Av 8 'gP16nWDrI\aSruMkNV[u?uA?ۄжmfBH0qy<{vli=zq]Eqgn}jxjEБH0Ԫ{&~9;XʨlRHJveyuE{u[\BxdS9Pdqu%#J]]H07uۻs"Wgq9[}L !p]{?µiVɾNH*ɲ,} iw:R?ҵ;d_rF*X{±J$.L,rZ^,FI._KJV/^oۺkRus_c^WԺ]yHKQ(ҒBGHxW'ƻ^u73e閿ԭ봘 ^yP#Q =`iyGpH ;Q5Mrk"}]\EhFHdmTp4+l M a1& ɳ PU:&h-^37 2; 8J!?=4XnG?-U,BÄChR "ig7G\{Z">=3ֱtjd"!OBjht;NelD35UA4|^/!Ϗ' B;"L kk@G:>۝%Wok:c,2u/XTP5 6'?ѣTKSYͽE8re'.q:$d0$(ҳk"nFin^[ =b/pOn]sr&G818LJQo( SI ac_nO1CO]|Lt$JuvK .]aqoNJO8CXgN_OCS)qd|\dGBPVɮ+q4@,J*x3/PuK0u]z.k+ngp`>8$/; K34 ¥VK\,Aս]MQF3;C\ר1#ۗt*ܭK ceuU }JvyG7s~~ <(D>E  x'x$^?Ñ5V Q;4'~,Y96FmR.8a K/Q o(--DcKǑG%[ƶm^|!H0LS@?uYko160=#NM~Ucx|73].-~л^RP~^{?fR%,pz.ȃ2-R{ىv!o:?t޶n|/K4a xq]b%:{Urq?=wM{<qqQJrEǏmN^/0qܹ=!ʷ-bV;zu3}L[iu:zb@80|>Jrt2%g}D\2ރ?M[9?'8%QP| Dܚr 0rľHV`4gyq뭷8y],T^A~mP""3ڷ Jj 8-O⪦ YY~,Z]^ ![%9&x8IX)Ũk8#Vr_l_c.J0"N;?=:ys]}l赻]HTZ*mN=9Br!WiB8RIapbJ4[p[%:?U.uV'OIN˛׮\' [V5 crv]{<0B(h.-DI fdMNRcy`<(QwDI =EU+F~%Nޠi?1w.൭B,ƛ30 ~ba_2)W{(J'~jtDۆedĺp *D2GyzDI&(v#%WoܠbI'D@* C nK%GT{е*CG-N?5F?FK)7؎-{c6z]n<(YEg>?T:e9ܒ,ׯSv=G˃(DC!(8>ce(.aHSOKL7SχjuR{ N=n Lsǭ|IZ(JOq3mt=긼B_:-duy:`4B0E4FG0q W(|EXNQh:cD;(( Ϸ]N{|ڪ_@p"}O,`;ξ*Aa,+*㏝9d`KK;_vzU2D4!jtK %'~\5LӔҳ,ߺEWC??>J6Kl9Ȏ-{[ƴ-bm+ o^| <Gn)@8DZ2vm#;&Jo (V\]t(Y(Ɠ} qiluU G;HB f<"R̿I[`Lt[i8JZ% J=d!jv#H2D@_- bcG2{7VhDn IDAT|4mz׋@ސdQo6p6|LX\D3y}}tfxBDzc Pr"I/| !Pw.buTnQo8x{b R*+})({(Dh1rn٧[&algi%(i]Tj" 72}}rbCKetom>-!0 3tȷ3yQ?x{=  NLO1w&g~Q/.S,7 >lpXYKKy,qzC"L\L.J#_\ıc:mItMZah,X9^E>RCD9_0HRdžcSmcT._'lK$xK=NNO!HOFq6j$ Bx~u4 XO4BeS*6g|}?uץnKarHBp{jm186?U'YQ_L n b)) Nl>O:">ޒ0i68Blku .;${RnW =Bӥiۺm:0wmr H$O$v@7Hap Jcg"x(bV38즠Z_y@b'<ѡm%oP,qa`gQՈcÇrlH|佷u*s lA>R1c{~ʪO=0ܒ0)U+h CۖE yT`uQrR;'TCTpX:{z`L7|/9}U:*0@>Epa)sdz2P[SOMo\~;xTbDb۾5]1L*" ՝nFM4aMt:GuC,6m7Mkk6rJ(YXʲP^q]m(z؂k֖:ç.}P.b/0|`(5VRg!y> G^EKLXD {fwECxk#uoЖy&vrHrd%9C=Mѷ8~| M;DLNj1G<8F.=ПOV-CfU[h)x÷ r !F훻'VˢݞmZIYVKa9KSl44W Ggg7_3^<Duq&"N ~ôy;_gBp5fnw?8.Bd@4CZW&oݤ$"j}eN(bB@> ם%Xc5PL*x¤TyRĵUT50~wXy@7 \U^Ka4 mK"@Ӓxo+ICFgZ]_e Vz}D*9|Rg.㿄~XVM[ޅ`J ցlRn!\}pD@z[\qfI&z~`ť%CmUvтj/ƁpW4S㱋jU oG/ZkXUF o^9ķ> i4x_Bmno>'=ae 3F湽 Ez>5,˒܂"rdo2R}@i yם#Zz`M%),.QTH>D䁄iht:D2k5y`WW#Z/7V$K7{QuQVO63ZypE6_y L~qWC1tG>n DD2s&>&CͶiw:D09P f%~,}01~Pt^]4s -lO^<3ss$"j@¤`]RK`v r@vc5v`WI.tWHђkς' jrbf=,p՗u[/!"3'0lu[E:5Wa TF#A$-{&Z@Uی>Qn#֗&73K\&Ln=(\Qu7P GYOv]v5"0QUrC:NH`ڙS'Nln+/qJ)±x!gkWŽS?@uc$rBۡotD6jhY\wk=H5< ؇(j59D^C3i|j9t^_9* xԝ37>L?Y$lr_wʯlUvU//\/'90ђ%a]m4nbDAܑ}BZ ¥\mr!\NfcVX\Vnf#hzPTڑ4=4N}}fX"ǾAAա7+(D^/mK41fDX{B!=i6MX`H5)<~M\E<<&~!lF/'X4 $ b:(Ds{ryK4 |}ݍڬ}7˙ cEݘ4ӡk8~7yqğ217 k5An?,; >o^k ީׄ}r2OuEݑ˹x=^LԤ"fewĤn(r1-՘ӵ;vӬc lǾgm!e?<֏٘dfk>SNyՅ/Y[BnеOHztOKUG eI 꺈 E4*&W^X8XS"'^tߥݭΆ+fy dw(غrA4UhJmVEB`ގ,eʶGLW?@DUש(F rg~ϋٸ[_ޮ#_Gט_LD肣OoT=_oY fgLg=KATT6@@z#lbUÇi^U5>'[vc`'96zşz8A|80z.B Ω&I>A kp4n( gčz@fQi;Z*QtTAwwo*phz]4\]|@Ws}Ӡ-L=*ԧX^Nk+B˶a噾Ԕ8}Э S7S:IV@ pu ,f^(3X(#bt(Op#M ޤ﫳:zt*%gGeBl6Q cOV¤BJrd 7/S\[= %),~ NBe'G?sln70y=|7(*#9at% r+@h}s/ JU>qr5?l1~SOXlD}K !0@c=/l)D|->,OۻxTcc; Lj5|^0+*+nZ%c~0`Unnе?zZ%p}>|Q}FgJ 25 E?j:O,|iCCvEFVP-\F< яUAS֙~'\/9Q$/xzquN^ 2PM /o0|^ڽ~N鶞a䐁PXcm]t O>~vk,du8\ď ٻ/#a++ w)q0-(̥3xQ11e*q.VKZۧ,Fwu[SO_O2pxvWbjɋxuW~w40640ug9j$k e} fIO{f\Q4TUG}[(fB|hlKtz5T-*"‰vzSg6&{R1&cO٧%a6yv 완P]U1SX;ˉ[莃a[ OJ#\@C-,W{@D>SC^e5?6I4=-VP7*~F/"ߦ5o35msdh^g{b<噊*Z-<V%ij p KFY6E,N1]L}xxF-14"@HdK|ӼfWK"תptnn3chz$.Th6Q}j.kRթfO@5||s4VC|?s  &c A6`|bJ;"Ov= QZt+ F1zI4hw~鹗vBp hZPho-EA pd9||qx4C2CyÍ49N6n?⣨*C&.#&7K BU@~cK A #nMDU8+ Feo9(:O8O[{O w|[_Z*p7ǸV.1jo*|6.%RPz,2N&B0HHsɘU~Z(Ptx"YVOCH$Lm`ZSqPv3g1<3OQ ęJHM`cM ;}M=`>w8I%I,5O _215%I9ӹ|-1%#oR,ci+ѱ{꽍M*"(^:l4yrcl4FIKWêon:l>v9 f.\6E(H.*2w0Lg2HB $ -I$]N ́p08oN.0 CǴl,ƒ:N'})ۥ0< ܿEEI IDATT}BA0X{jeۘl{}*@]8VZw8I2eS)\><_55# dpeEɁ~0%|^ΊaL) (ߦqmi헬(H>wQxO`Lf-&I /Wu2F۶\ޚm12k$+ 4]'L =G%J1 n}7!$ ccb?PT=,-IX{= L"'ЮO.X"[ΚG,2RC1b{ Jzd,[&|εi01nd4B]u N/LݕW?m*U۲6W/ Z8EH$^Z!I֜ж!6'HoH⪕a0dU%Ls՜ D,}# dGu[H <[QUҖElj/L22 }L*hZhL@zzߊ|fd8- UJ-4JF6X 3yt.>@1%u? "Wd+at:>ϲ+Xbw1i-NrI]"EBui&Y+|2,arȃ۹AiDF1͢yP*&,Ҧ QT <fD[@*E&'皤it] >^#$&NRZz IZ:Zu:c]5:ɀ$!-sReZ|za/Vdy}MmHccXV zXV^}1, EYm@8 oA#V4ӌ~D4ŶKW ,VM#O 9IӘ^ W>īO[(N1ɓAbqJK/!K;=nfq,vpwWL92m̈PhO,H8ccv% !EA q(4IJ,edLl.FWԡ(uP4SD"D\it&sLfgD"_\+Y1w7{PL0Q,[`yoɀeaY6k^;Iln3L}D"uc$-cO`3#HLT$Hܛ1l }Nme}-DIM$YSw.tH\`8b @A|,c}Դ%$&p1݃ɲ-|t=[h_L+ynSܯϒԑwKar͉>"7CI65fPրɚFr6if&Y 6я_Xpa׮`?[[tK^%El&f:aڔ e5_= @  j~3p=熻I[ϣJ0'8JIQ5p ݃hMVLzٙA)t !5ϘdY1 +L6l(Gr{oaL8?{Ӥ_/ō0[I.ɉ7ZE]TVT!w4^L,zCGm~QW傤3idE3et{EU-lԐrG- Jk֥q!GN(W B[j2Y0qq6WZ]-{t:*̜gMdYB]C9RرyyjQ>D 4<`QL3aT4 FNrn]guͿJ^m ŏh73/W϶} ~M^dU>F@,\%5MPp my'uƣv񯈧ӴU$M…u CF)G_9&V1 9q6e2 yf2 _;TפS*o}{ MC] Ty!}n9BaR!o&KP:oMtڤCN,$/)2}3q4M YY=L4Ճ&٤aJEQ .:U_%9ss?C;̛ZOnUmt05oYK(Yimh9]xUA0ƙߍSN0p0rw`{"SBšy~hT0Hfp.C$EQINH2Z9x/[-ɮ'!>x}p)Wmãz(h K\pMQz2ͩB9"p9%17ž$y܋1L3K852sgPR^izYJM#V9ˮf:vP9w~C4b?$SQ FbT/6k4$yMǹ6|{)Gdx}uEdZ us/oPUAR$v3kԶO9ifӦTw ;yQtr+3<ږFNЍ$ [H9ʘxuNg@!E4&Wzޡ@~Ǒ]L]%ϜGT\6ZP|#4AWd$ w>ɵO8=[4UoZQAQW^V߯먺G[2s3DR[Px[YVC4v. ږoSXrx d7`3^ AsoRlr$ Ytl)対pHhv>$4#l,iU,]Ε>+}' a6zQ$AiI)jJ{Ov;q߰YGR- eM-Ӓt>7ȿӳ^/CExyg6TbqKk p줗MijᅣtK?;ڹ9M4us:d5D?DndIcKS6+Ȋey»o.eST$ ~j@R3IvP\u +6(%VU9Ĵm^© [:; s۶:XIR)*xr.t||;Iq,Upۨ-z먎BYF+Bq%uԡ9^؅/k78u,B6NNR7rL@Ws?`Te_un*NBeTs'8! s'"ŷ./ݮʤLD /Q$-]T5W+D- ˵恉:Wu JMZwQT_ob ڣTda%Pon3#Xu)$W8ڐ(75,3/:mnW6G7 V~}N)L6*Gbfձ3!l٩i,!1(..Ǘk655ŋuA} Ź {p02Zm6+]qEz7Ԓ<{r&''222O?O:::(,,'Hqx sU;pXsF)o( |%N{vWP]Sd>x( lKWc4sQ_t>K4yC"PT$f=fF/Őari>9}WR}< L')Ԕ:bv.CՊl%9||*Cqq[=|VY'N;mmmݻgy]v E,kBEaDdG1ξFq]Q}j|G|ޡ ,K.,瞣ʗk?etډbPܱm6utճ٧) 48ewy??%PYYISSv-[PXXa?Ӱ$6Fќ֖d,er066M6~{1:;;;IsQ706cRb1KPwGa`dP+W 5tRyיr7w #>b|‹Ļo3nك8?{PYVY$<ÎcN7Q][Ihۣlj'. +MC/1>Aӵ=}_|)**{w^#$͎TuˣQ# sdSl /M1v=m[ΌSV_=[V IDAT1tzѷ$db7 3gpCOd2`W!, Ӵo:&F0$gi=~BY!Jڋ{xU}/f6rr~q8OΈU J|'.2<$X}OMA&cMEmbX3gꫯxj뿶2m19¡ K ULD6/+!9B^4S*VР@?8ڶͥKn+;PRR®]kjd /|Fq?f/*z ożegTMo4IGru{SXBvqb7ۄ&cQmTW"J\;!7좼T3NEӣH:TIYI~-*.+bF T~yaL&L j] yUvn'~xu;vZFQ:ġCBl۶Vyr ;Y.ɯ]r% ^g욁݂YAm3:zٙi+ݦR)&o]/;^?~3g'{_eq~n藨.zZ}~/ !1._1<`&\RcWu!I:%lсfPN梳 LS/#/?H=ztѿwvm$|.6r,-rT:$$'p@V$+6a#<+vAqff4ǪKNׇ{~Nm۸;J~?.J0i-)*HڵkVΊ*B+K|f{02c.g6*D0h҆`G0rul%$h*ί* ,laJesNCcn㮷&/ L<kt:| T0: $FWF-/@]|AN`"IRv*^2v5]^$A(FW;N>]}W_}/*^MӨ۷SL*B&x~oJ4D2gx}|VYloQirQ$;osꍿ瘭RƮP[Zpikk[ 8}4LM(**"sAmSO=WB|/~@@92 Fq%4L!I2ΜDaۘlۏ\bY&)(BGu'? p8۷uV۹64H_*w/V')߱E|psuT Y9ۿmiφe,#%84BUA*X,~9;/CCXi+?͹)w۶3{,(n{!k.:;;ٹs'TׯXPSC@4Mi;)?,4A&K.EIq7lPrlIZqYV:S餽Jhiia۶mrBi߶m3+ P_s-)R\DB%`屗~ݩ9Ʈ|cS8jPϮIaa!@]ٲe {'sCFA]?w*~'σi!>?tQ-kQ?IK$ 85E 3DAoVFyQ%԰ bl4(]F6U'{b>sٲe ;w\ЗɯҼx'2Qjlz\ VEVROsB C S_(#f8I|ж /@I'OQ_;~^XFm&FL}A_Y!TY;~cS9ݟcx*I}.suu5?0]]]tuuyfBX OK$5 tؙ3g φ0Ȳ=I,2B0x9蕍J26֏e} Ţ^ )++B1BTJ%TSHMC%9զ*WN}ĴZ8=_'m`f"ne7nll_f۶m߿j:^؂QU}=G J'(G]bVT$# dܸ^%!M!{s塧wpX2Oֲ,"D"CXV {ޠ~|Jn+SVɔ\OE؃h?-uDhh:0{:Goxkh(C@v(.vS> TK AfHxM;9r}tV8). #'Lqf楤tȣ9{ ^ R\죬"OedΝ?`0w$ #4 f]5=$ꥸxˆ0JU ^gjOaJ10XtnW^y完ʗ%zt$I!TF PTME#>z(_`I m g.\/MdGqY G>>ƵO"2@-ٌ>6Kgg'`,ll:~}=zwnI`r&JIBUGLtG|1HnF:/P,SrHdph;̇$IQVVvןC,Iũt]M&'JkyZR  ACRYRy虯STFm>E>rP+͖'^dmϽD$p]KEE( 4[ P":6e]A~Lŋ-oP_TF pj2O|WcZ6KAIxWl2R𓔶 6$gKoWQxӰ0Ԡ@Eqs 2wm(,WqH.(d`HfyjU(p3 i>x $W^ ܗ `|f.gW])NEYsќ;̽AI/OǨlCry<܀* |y>4 &ĉ/xCݒ^|[MǤtyq46z_C]UhYB-7DّCxx4Yfg>\4iY<+J/(Zslbt0]ޭJUn/Gا&H  xw+?J6^qb_%;(w4vOi|/8~@OK;gD3xjќ;Jڐ0+wqiD?+ZNuTƕN1l}ɇTKe\"OsG`E=W]ڏdx$-;yk/u[=C+>E7ԁTUC$'>> "x<ƺ%>fg(.AV D&,ˋrdYVF\?U "1L~\HLr 'e9{%H1t;SD2y~oUƟqmW`fS/jUb2YHzUX'$+:v0E(BIŰ,KUwI#t6@Ԩeee8zwÚ{&#cj(/< ;LJ}yfCa':n,T,VZlBQ (֎֍_ttC^>N[WO͢zK+!,$ QWd+Î#oN$n'tc2QJ:P k0.Dzp͌`&²k.,$#eiD5 /tec v" wǤOS/_$ ׻Gw(=z_]Bߠ略q !r]ۖs~%!čj#}?|a9˩y=t?v BS"v&\9M_%*YHv곧Xۉe8\v8MO}PкۇQ>C}eó2 ݄(" HS5l3t'\!A&塾i(`g|z(D&:1w5j 6V[<>ۜ7M4dFZT,ؓe$N)+Xfif H29KtKiԅJOkϿ$"c Hi,6.gX*{o,qA^۠ضlT5Ϙ0q:&V11U~:[Go?9_現:}_%vF(>Cm;񳟆9gQHm(80TEtM>_iƧF TJ7qG(O }P]"я0 rqlc{S2u-!LJGKuw/m7),0аm\\UF{΄ǚwIG.9BqVP>IofkV4v:Lhj hA N51…LDf/g j$}ym1,E3 ]ǶU ږblקub3*6p`M2`fB'6bKa&zDZ”UUiʽ7fi}?@ڑ&ZlBe{3&"g 3?PmkhTp+,?ٿPp~o)"m'g3>xoPq_gl$c$';Mn} }8DٶO%Es)* at"a$p7OZ(D}S8'M==?qBLJ0R^9DhNh`YI.:9le1?{;HFdK)^xe}Nj?Ϳ'$ %}ϱ )LQ#p*.ό К4Ewi+W/)ۈ27)@&BH(:o%EòSXDI+l+hb,r׹~Uש /~g Ʀ']ʕO1'JP5 mtעض=C- Н^ 40B*~,#1$*H2%5/xl?') ϜY'W{ +K;*+( =LwsczQCJ"G(i!AzXmXQ!Zy!9oFWIon{>T5h0e?@<|CnSN0\X#|-fc`l7xd@ $E emrsAe`?0U伏/{c,q$kow5{7# {)C<)AKg=nԍdf( Ma(2X/%.vt%=~[\ff.` 񐎷PUV+R 8Ns]w1/1( ]wݾ]!QV5T8@+\Gk >~:G_g-}ccoq5/Gk+4 4$&o5rIX\S*`p{EITO%ǂdkHkbYyï. o}Δ/`0\V1M}L>8eYzp/m{#%k%:{O*s{UQ5C ق05i0XH~t'OpSeloNLяe+MQDEHdDy$w2])]ܑ_=@WqKWEdIE_˗IPu]76.:E ]S?o??Ӛ$qU nsutM["jM{xOkޠ<j2+uR. |>S_x/H*_4vY x-HX|钉0I#~;FV"kgY]|t}t,ͽF4{_GסgW\'&M}eK%%nɲm$Pǫ_Qg GZ #Y"u&{!S='8j}?zh?#{ zWEҙ5u$1/UڂD}wn'q?G<\W\B'uO%*ZH4 m}}>]I}7:_u:лݷyu/x9Z[@Bq(ĻKFX  IDAT N-4~.nU**zY\#6dn\0ks[u3@s$A>%^3ᰕp]$a~1eTeca3."X#I{6ᮃ(1DUׇmqf/r{p҇h́?d\;-)n`kG3Q&_MJ})6{Hn,\EV-p jӞ5PQ" :@k&?No, /Xa{ ۅexk+DCXGxBW2wsM~۹9Q]b˛^,3zٵ=9ML6\Ѯ k<))MWXfp\uo@QAB_mͺ~z]ՉG J 6T%YޗY9XǤ$O567Aj(U](,]ſpć ^'V .\ɒLWzTw)K:0-${8NL$ 4!I hpJj!dE`(a4p7i2[_ro05=&$7 iHб4=Ǯޜz4 \{xްp+h8./Y]fP '@W(/iMR l$LJ_:-e9O[pd A5TI±׍.FJ寓{?XYd3k岷3 !%q'7$'0P$YB¡b2G= 15}5e~In A=z\N /`Ƕeɋ7( 4$Au?C==!"N$=s.v $Cy0MU- lSS];@TtM{ 7VDK xs¶mk2m&kON$`9{,KzY`&T0t­sίP:҃۔g*­$&,lt΄cۨ^cc`y-Ȭw ` rYJaPY7!$6'/e gJaٵgCh; kW0MʥϚJh]MJ,#[pɉg.!DUjh!-QӧjͳkEVfpaujMj Z 4`嬵K䧊?w lY0٪BЬ>Rнyħ딪QjWZ0͖I M#&eab^9]7}8M"Ŭ`,DvbgX\XB߄|Tf3 ۢ&b+C!\FtCLʹmГI0}&+WqJi"Յ kkT*~`ژ[*äqG4!+3T2Adyg@rSSD0׭ڵ,LaD|CpJNɺɦ@rYfv.4W-{>T~X\I~bpxwrU$) LoڳmiL]Gb}&s2w.ߡ tR"&A D2gǐD+2'?p7_2yuZpxgBͭ!қ+yĤQeEQ7ArNe5H&%B2;^P"`U+q#!;y&;{."}OJ,…0 Hu9iX$>c3Hjо/02Ѷwj6$y &&o 1.ݢBw !fo37wbBMyZ 4UJ^qkOJj5 ",vnVT1!}|4 Y5RaV!N(o'ꭓKBhF|ҪVuKk E!QVRVhGvRR*͗"(Hƛu]nݺ|@%(fur3DġCԶm.\J*uYq]Zd2aP,>]ש52'Rb,v1I(Է YXDPEۂI!I8bRǓT~Ν{$ gnnRhVaZ]oNy q??YXXOID"Z,>_e{9G47,b) dE}Eah#ѵGw $tK ٥MAX >c"I@ju9+DB!l1B s qZiU̹s瘟_^?H$9w$Ittt0:3cۨ-fM@,?c"IHسv V yn!&D0hlL0yK6uͫUΝ;4_}>~? ###~O) Z5_%|,챊# kk[⫔j߽sͅKԺ׼P..æ U^Vf =} w+K|=:eJ,@!©(W"ie±w7KW*9s۷osIP/I*iB(\r`+Ȯ R A\FIib 7˭je }m*7.X-h+)ǿmVf Eƹ#j1.wԍìH'2H-2f%:?z]^Vpv óyJ~mn޼ɉ'9p`'d0p>$. Wd.dy~ZYA22t/\[bb45fp$ǞMӝKX"OML>a[Κsc "aS*\)u2CE?y":vs uG@%e[ZLR0!~d@$Iv^r/G,w}kׯ:tnݞjc dZ?SvP=:ˁ=U|ĮhBc٧:NU;KK\>r#\K?n?~/J*hy/_IۜY~-ylb-2f-mA9w Q@u_e_CMq ~acd䯣LL~Zn0^R_{\.eG)w Io8m}(,ǤZ* =ͷH( P,mw2]]dO8} Fk:FBoۚ&pŵ[^' ^}ؽeG\hR"g >G+ l ʕ+9|ߖJI4'WH07`jAšH{A֝ ~u\Y*ҕ ZPsWvK>('?C(Tj0>3OML(+hvҗy$&YX}+%z+qm He(&9x94n#jm5†(%]8/oX}BTSmdAm? zZqƾ=ڵר1bmjxk2Ƨ72YS-a9{JWJ+%Q4 %Ok`jncGn},o0>C.]ċ/#G,ӖLrknp<4J0b# W}/:ȮBvg>j3=ӟ, M,:|qȝA,_X$qREz<1Bfq]ւJz7yxL9 v [Șf`M Èc;\ξ_d!7c7t$q^ZMѤG=py>C9‘#GFigg(^-qm#s_|/N[A.?^~v.CL]!3;CH|>V^7~i_x|7E|ǟ| )cR,)s|[3MMϵE8'L4~P8t7$(v7"?/VEXVy5PrE"b_-Gv27o|[>c(U DL|DU k\?uQ(AH I$4=z8pAO~ .222±c3MIfV@L-m;C'du|ܬW_8Tħj? eq4?]y 뱰= -aj\|3{=6uzb;1V]@;Ph dM3|D˗IyGKWp73@ީ"QQ,LS:.ttd'X̗iUlb˥Hіnߺ RK*ib4L{Dq"l⸳ ]V,}SBӨ̵mzre~m/7x$I1DͲ>ǪcoCVNRWBHUXѯOړGA~ʗ9kp C%>OVEi1,,bS%? ( >lznqUL%lto3._@B@(@ɟ4c$IB[2-5ȝ?FS ^(ɄZ^}ۿ- Ii~ܖcP$&03mT(,.iߑd_T`z?2 t$aJ? $IRi-vjbx+WNk$(z ]=oP\<|  p$aZ4~i&8ÕW9[  ˯`lG1Y[\sӾs8T#HL鸽6X 3sD*qfg_P̘9'Ԝ?]%z EFۨMإC}(OѻLD o#} Y3xmȒL,uV !if}K&jUd4=a (P=-$ݻȊGkHK+# j#rH[ӆMB(B8vSguDZ #B 9JЧ!K-:kخ-CCq]dŇ鋡2F)^>ُ#d$n9A*:11z=+r,4}8`cIP#u%%ׯ_睷fhpǏo)$=]]]pg94f1 T^jpV.-=G =To:$"GwIG+iyJA*q8фeF)h$zI:X1|(fЌ|x#IZ R4*MtކBɊpye5@!y})Izkj\?HBPTne.nwa__'Nh'*YB-]+)+._]To41F'H9ʼn(|᫋gܹBR\;SkL_|s_q~hT|7$ IDATɵ;~Po/Zus L "G#C)SyKd!Dk/'hD1IJDFZl~@;6:Gt9ɻ5:ʹsM ɲL|p m?sŜ:|Wgw_+i Z _ 3` |/zWy^ßm-Yܐ=Ah#J"5vOd[~UxU']0pqVEޝx4JX>tYP#%{SռV %nqi9qĦoh8BXәAR8-Ajב$ŵ ===ϔGDD$ Rۭ:@Q#}b>Z,FEo2bvb<3)Phzck @#ψQN>M[*ʼn'ѓ$Øc&} TWi G{KVViDH>Ag&&X|RcJJ9$5=,\Qz{MG0@ٰ=<);dtey0663gH&>Ιgb:ujyo%Ibd~N C%ZzA06[\"=Ѱ%>>]Zu,i3Իty #ݜD:\!cn, G- ŞBEa8]vGQ{c4hU芊kTdfvg 9u$:\\1Lӳ}{Qvq.o'_:_!/e2h={ң鉗^4" k"dt靿H"]QnR,%}bL.-"\j[ BKU+/lz 4<>bR.зpJJ8{ sIɭ;I$dIn$I\IQnU-bɲ=]vO 8u`پxj=y NU[`Y5tX_c BHFd6__ґnbiyg.[כusU*?BȔ-K;= V嵓JNTB*=4"A4"Px$Tf{ؐRU%O5N>M.^{}>VΟHUoSFdZZDa1( <7C2gba\\[5*)Ey[)h^~c!p2 'Ow[~]ɵ;>ϰ4'0m?1$D[7{ȗXX*vF[VH}룤@Yώ`0*I ]Ԙ1I)g=U0pldLb=q<#|>[o*'Nd޽z:yIxg^Y+)*6$)D"0ԪUfV4S@YX8O2W7bR-r0 H H>o1)djL^M "I;kN< #ľ|> .9w mOJdIf`> ̏޳h/-հ&yOML S֙dVATzvFs,.^T҉R?a DC! %D2`yj!+ Ts~dygWr,-MP.0 y{N2Νcff'Nׇ, "i#|p"+S]9q;tbtwv6l-(B2/ԗ,m]CJ/Q(Q?кHK" (u>G1k3qej.D(;H  Vbu6؉ӌ/3߿cH' #JelyR#4^yԚLe!0LAn%)wt}昛D>"D}kZ %[>aP ?P9c*g- -0ss I0H<7<%[_?2Y*XB&բÝcׂD"C;!f'Eןb CRCZٳ\~'O;z n q%Ax/>IRd$Jny'2 !(L]_O B-0?a!(Z[l=<Z[qguR2z:ŕA$igLf1Ezo>Y2p *ɕJQE! !%t /塪*H%L.B2zksΖj5, Dzk:q/?R˼KS0Ёt;ݑ *UJ+qnw|fb( HERO(ڎ>B@qX۪Y"DLfǯU:M,-D<^9</^9|xWt]A.|1wzTlD===. LL$Iُ/qͱm ]@USA,Xh)0kP]hnĢэSe|'KT:+q\`RX"{<.^?Gz#irdd׮49Euxs˸"twu5Dn`U*OI1ݠn#ȲLku]n޼;'N7)Ý9H1?vb6eY)++tR/$l&$qst5Y"nC$]J\+ؗn]Ӷl.\hK&)e bsﰘ>[KX,OkN-sc õN )[Bf` *ikm6G[*!I `ە[Ǯ#er) ­P,̮ \ܾ.4νB$V~8m^{2ԻJm $K)kI$wm۷9s4D'O=a%+ĢQ?zCCC$Mi'&)5$IVܪEqq +txa0t}KSMOQ.o‡^kA2nۏ&Kﳖ_B j 7L̝'("L{޻\4U:A89o3 hhA9_ `vyNi,dd,~uERH(nk/+  IAo2YV+ܙx  [E.^ 7iWhJ֖7[J$Ϝ!q)O4,ňEE_ZbyiI0CA DxUUy\^$RհbTFX8DwXl[(V|e2 #&]Rl{\;斸}0Je?Jm[M8 c+3SGqLUϓU i{M1hWl 5O>Gl)lT7 uG J1{ 5Bk2qj&F %l~ޗ~" h?? &)abm{Z(^d>[BeUeh+MD.SaI~]C j_̾ЖcλqYB NmΖ$BaÞ. +kkQp@V$MEuT]C%$IBmlkp㠫`doh4ۖ^+3K R6 [UIuUez2s{#Y_}A*;8j;{L0)q4Ag|m?'Ū䰊P-M19[SM%'R vHyaDKkخȸ +LSD d+ص5׾bہ.IU@ 8@mnE82}wΜ>MZ7:zzY>8LbJn18aX]T-ΰZIߦՕq,W !V >"F!˷ɕVZ,7k  s׳Clk#O։`bO{ڕs@!rI00(lݶ3gŹfu 37f9gmٖ%YJRb H9* @)R%Q DU~]:̇X<=8-?"c%|_E,رcdYKmmt &6jNmwjdb5ΤN#(9P>D6qW!Q".hltrژ=Fg4#" `R?俓Zes;muP,jmCA U'x[>lɎӊ x~BYan0+s*)HY]gaO̩ N;jo-e&3>>)@FAU=&p't64>2McǏ'No^`w?>_(0t ꪻ}'|Y7SY?IDᦃX;FٱZM͓LhBDC %Eca, osS~ :qz: ݧ`J(tPQ IQP*@nWMzmhl h43Xy<ǎcl|;w٩]N]dRMV}J:7ܓ(P9\+͡><"8vp\f 7:0F#ussXvjZBxˠ=^`1ޠIZ؅dI=;{GgkGd-VSr8MMҷDUUΞ=˥KشM6'ttau5XHFxA N݉HpqKyL&UAbu80Yz|2ښF4Ν;ǹпdY/@w%$I4QN)A׾B&/Р؈j%Y +(ѹv PwqCCC477k.LG&Iۋ]4KX# Z@VU ]ug6HOWN;- qq;?`Ϟ="G~IAho`yyũijZ b89Mۍ[=a2uGt5ũiNU~&LNNr1<{q9_x1=΃_%f諂,g/](KḢK6l#|-4M( 1iHI6isss9ryCC <ַ~t c16OsFZC!.^'gIc|?ݝ|}Sٻw/`Ptta@ <&zz!8ĉI2. IzKԹ@CC=5b1 ̺y7@drdih4'e Rtt֝0llŦ̺/7K"SX }}zFPs "͡UA+ه X$M"T"`hht* PHo:0yq:l!DT-l 89E߿<\iij!PEjaq5C*e ''qM lܸ.DI:fhhh4ݻijj>n= t8ӋKYCyOH.꠪[JtOqJLdT,YrIQ5|6_ȩgqèFrOR"bk_[-g fRZv=\6'XP  }}C? f&爗JUE02%'HM_OﺨUU9uΟB˗?_iw>` ~x.jKm=@sO,}V;] ^ÖZ3_aFo9E'r,]mXoQ%e?q5aMdru6'h54׿Vaa}x{XT4jX63N:z(4b"j'P-;F#/_fnb_}=f5MJ[x]+N٬NLi5bH}0H:9F#2<<(YTUEeZ۶5MswhNS+D秉,'D#FDA@Si" T`O>|bWީ!-![67awLzJmK+NfIOE`͈F1evjBYSd4J.bK]S=4b:tBIU@mQPL]h\`5 KϬi(<rE fuML"s't[8/Lckm3@.a~nRuMTW94 j+sVBujdfsux3@us3M2)ml] ! ˳FuM8FBѱ%LO,M]k7Jfk3iBnsT6N3ODGmԆjY,Mg8n|c2Y&Py@xr (@cC>3<<^ntp%"SӸXA`z.uR$&2R|N| wR>x'/bv8%9^%j<6o~xӎaaf‹=sD;tpH)PË<^x۽&O'&4ME/op@! [ֵy,X*Ze45<Nzap xcTοo8qg2W=-UV8'Mr`?vt5I qpOi8˿;\16 c0}p`[+3XO7dx1-/$ll>0xFfDj7lED~4ȹW.>im=M¾[)Μضʱ1KFlJ7㧶BnUHE4Bco?vtP\;331\K;y_̫ho3رe cT :@e\A(4Bz,u.67Ssu3l6^, 2EThmn!XU'F0O H[FiRLx5T&'Vj$@\Sd|#yy;hhi!L bihbWHMFsO/vcd>b%LFxBoh41VgP A" 3"ڱj'r6TkcN:z;0&03#ND#|խ"wT 2r Wrh"I6[*.k~A(Ik @#MM̗A2 ᵙ|Wau/rĵ F4R2,/V"P Qj`0yhhk`|nMihE$LvRʥ.a Qc0 tl;4ƃ;f{bܘ :=0 kHge#NJP|ɶ͛YX\drfh:vw܆%A@-IEc("~PɤYZ{~fjWQO}DPUU>$I(к ?k f.l~%u|6yk^erbOV^R*i*!kοFM[A6mNšŧRQe&+H ď _efj~q+O<эX6,k T-}h3sD6zeQӈKp! ckGkX߾` EA`4ߟn'FvXVd1Ӫ[ d zF*"44* hvsa=t)Q= a $S\N,NwvzG+)3R)&3!UU"#f=$jk [\`9t`u8M7f(r94K<[Zq\zeMCT(d (84Vzhyzb2iaqiiEfn7F`@D{I wTRT"I!a2xVr: xI M|i>]*qqGb9`6Zp` L `Q_&8cw:nkC;~;eL\Yboh /#m۸9u>ӗh@Gb ھ~n39._5ݛ7q'kj0bF?sKc\>/V%Ź#2o)[ k_&۲Ʌp'l۾^9{bUcbx[nxVV #W9w.zZrW(;QaƦl|9Z,d0PэQu^I ҷ[K//qvrAD& RfT Ycd S4 `@+(Ӥ#2(rYFn%YWnCY'VB\FDXݎQUEAUUDm5PP)q2(Zb6G¹dllT.GMSn'M+n6毠 | O}AˋK{پ(rS'Y /ɕ=[۬DHlYYd%C5ٴom5QT&HIrq66P*&Ҁ( V x-3>n v_Q#0O,Gvְ47u-pշe6|6|3@}(sHV?M mkX<,FeJ6(8&#PU^V I˓ΖԆhixK[woa(ʸCT{iy̞ uU(v ~JT) H"NDX* 6.χu94M#ϓNHe234Je"˹uas_'?1N'wP )FN}gtmV{R[_S'/I,3ա$h"WOsN[9:::::k3FP,#"F ,!T bC-)UT F3g.R|&HT*%R]#hB!\QDf UUJyUCMXfDbLلI(RT$ qN>F#ь erl 99یN-R.k~{j >;,%ؼ̞C+L}{70q4W͢\exdi :sQEgh+̬ȘA|j9 =]qxO7 yEhz| D3 Pr({xrGqu0۩ zɦ{ 4ȵp6D<ߺ{9u+WG(`Sűz2/DKݷ oU2̍:y"{C>>wU";ĘQ5Gx$Ŧ'# $w%/Fg9I̭x~==YX0yGNNӾi^Ugo3C+F4y R7Ws|>O-oR<ť#0bcKdߎv2❪I+Fpm.Cǖ-47:Kmm{\oH Ox*q#o&Wf1a6o촊`"S,1fq.Lx93=9I"S6r7bsog}("tǎ~n^A&+\![P((Z\x'ǙJtR̖ikCEWYIh|CbgFQ5ɍ[~"_}I Nlm$aq)EYdP5 D+-ݴm&h%XqWS;==Դ׆zE1he, tٿ Bl!P@KǦ]TXDAbr])!R(xk(,M07 }tR߻fw3'?cC>"Sc)bH<$ \.3v A0z In _QSERPd<3ĒY@0Ȧ}ܷpUWfP, Y FH5rh΀*H1j-&%!ݳ _M;6R,μꥥ+-:v*dYNx<%se%CkK-F-,ƩEFm餷4ߟEVZ9CrZFvrT^]q#X,U@Elt sf8{Êd3b~ʩ8o`mNRFZ`0 | VSK$y*S4A 2Z IDAT%Sqykl.3qědb ꗖI3֞AQ$7]lGiS ̱Djs(gy)hFLFW\h0bW3@6gjVfQV!XY%YBe3,px]LGRDGGGG/L?V I~%X-j6] r,JrS^@!gP3dz P)d("O` w'F\N35;_[6jbIŠ2 S_A#ȣ)4Q]X򿱩Mvӗ/}ɱ duٳ_>uM')"NC} 3׮0!ĩݾj%FEԚ[{?#h\݁X]IlQ2W2)rFb{ƗZR6vZ#H*-[9:::::$ri+\>yxRlLQab _bqb1;'dx#T ߇lP4n3c\# sl$#ydF s,D'OȔdC5^̍F2>1M|$ l"I|adW"ʷ[0є{ASW ėp WWdDP ,dʽ5Du[ O̲861RsX`j`^Ν9WTZ ]6-z͋ "miuN/ | zD.y*]UMs7]ѷ@29܏i Z5yl76O-!7?z–BxyEE2qÆǞ"!X=lx[ٺ23Sػ b@^@>h|'%[y3oElÇS6}5o b!!Z44jD6\Q%Vٰ)%2 eEC6[۬jDN㱭h3)2&IɊݱMMې8l"ɔ=ކry4рDP R9,n/j*a7F> _TX"j@&f6Q(ct|8ţ08($cn QXɧӫe$ˉ,>G6CX2sӨf.1:G Is}`qz0"t\AVR$Q@-YkFb bEJ+S=MA!Hmwo #|mM&:::::_rea> dReSʱw͔Q*fg|^\/)NLEGu{}[Naf|2Vj9Ùf#5<&pe+eUk!NT'B*/0[xsÕ#qP1cG]o& `*2vJ*2Kmߌ]Hr" P|v?͵.O正6Q+,)߽ ;G=ܱaM|F. c>-s7ʢ0~,JUΗK )YjFDU}=M8~jC 2ScXT\ CSW 9SZ4VjE@ziuR҄îQ'L#H˓LϡFI /nz6j!$fftHO1>|XTI]@v0\<~=:ЊbEEdad(ttdHv6-}=hy?rTqՊ`tكZ SMKgQbv~|jL X~ZlkBh fLFJ7_LήP߷{b󽢔VϢ "첒,!h*L.Za|$e~ k(۰e@T*QJ'I̍SZ2[kо~{h{Aov 4t`?|:CA2 |h6Z[J%2-w[>{o|Pc5b YXݒLiV#+\ƩP?%.Lttttt6AB@)VbŸc-xn,wғ %_6`]lA6lht*tdlħi_ @6Zpݸc}kϐ!_1b:PʐHdR$/b 8z5\_^'82qӺe'~3 G)Uʹ5:| U;$/O07 VF8 ܚ5JǮ6VO_$`ʊvo'4,5r=;iۺll7_̱ٴ dm1LP:;f&N @Oҩc߾mwX>q"unK#op [|L4 9%ukd--;l2 3C̋UdjRSI 07l#ɒe[[k}m˒7 J{Yd 6&34$F |R_-|0y,x|3M"ŗG4\L18REuyxmC捴q U节FM&A͛T١Aw /aJ/GIX}htgpdoXqz?;Elۿ"|+_۫ !SOO8루v_e(Ir+KmٌGo1h ,L2nHu] j|m\ԍ+a}D.b /CD1D%̎y+3izx cm7HKcir 4CP'5BePBlmtwhڿBi43q7.m N~>J^~1eE~zqѩ[wkt]˽ye{)J 1sIY-q̏c[*0V|vgcmCM$ ةE&ձisQ;/q-w"b,3=(jXkLN-SRH>c \e!ePcN399OA afGzJ>`9{~<㾟qtnم{o]^Zx84Y'd2i+,,+〪h(8E&c,rq`Y6*:zg3 :V0͕r2a]rmX[IdY S'ܲ~qu(膱2kmeZznd"ɢᆗC&Q4;mZ;cYd- б25}U3T,e֧k <'}͠&ʹ};'WnqRO]w.,[iCӔQ]XQuU}3UMc jtKk$ݸ[ Ρwۆ5%**˼s]Pu|}\麽CN[J1:0@ƾǹm?5<ʧob2x9ˣ|HOǔzi?ʒ奪8Ń<+-&B!TrώaxlT>`-q ^_O팶|̙(Uٱq $H&6P }ŭj;˩"x jƱ:'p|a=zM5(8,^ L,y;ͱ!} WO~@y?'8ߓd3pK$R69@}4@穣Ϛ) [3' kAh]5͇g$'N-r<͵8wCS؊Nqu?FЄӴ^ba) RmuI}>3~=8p=fimc.~$~.AЫxPٶ"5IBצdt0%Nfo4~Q}ZgM{tNQ-h6j7puJ%,ݟ7ࣣ=0} mR"e4ys-ApWi»DZN0˒f6ǨzM:zn(*팍/db \n2CcsVKeXlm!r ٍ;67et.MrO?GJPPD ZZnˮ}dfz%eTnffd9d|de8[\aÎ473}^N!@=NeXB+RťWVP#%k˦6<7hp/o_>*:mŘJ_h"-&Bgv?\Z5ȖT(u`ybWf9bl{M&ϣʆm83a(jI_|Oev+&!-,„`sORp-p,d雰9x) 6w]gSuCUreV.FGFt3PS]µa^)߱ю#^*a_|kJ=>Aģ՝"Kqtu,7y^IHrI|fEǪpcgcgrU{bv+]#T%voBq2X9rH%x yTT@Cb4@SlҩL6cN&A mT?U8;he}zXFqk4] L_r;Nu5MPE-{2\udp>κ:>;r^leU%?FoPZbȭ1OlI ]^~3XʁkLO9/e[cۤSIIL6s$O @^0Lby7ohA:6T2NÇزى1[rwF\/Vf(.@i׃ǟI[(B!% LIHb(IF(0=A$4n>gj'cI;hX,-.Jgqn c1‡m硧^a}> m OĨl,pR\C+$[AUTe=ҊNUד] e; + +Mӏ_лSm:L㥼ζoc]ХN0e!V +Io2AjHՖ]'i8cK$iL?[=֯y\mH 18yx}--AgpIDAT{ m%XZWW 7|n'COG'Hle`"?ӅwyP;__86;ʮ0 j~m.0pUk ˧/>~G= hmH^No8X(N]l^쑷0^7rZ?<{([`K1]3G=86p%MƦ(04gQ{D´\ꡢ]Ui(3G8oPU ˂R.v9jbw#.CSl#ͣ-snU y[( hy%4 manager [label = "create_db_entry_for_new_instance", note = "VM: Building Task: Scheduling Power: No State"]; manager -> manager [label="_start_building", note ="VM: Building Task: None"]; manager -> manager [label="_allocate_network", note ="VM: Building Task: Networking"]; manager -> manager [label="_prep_block_device", note ="VM: Building Task: Block_Device_Mapping"]; manager -> manager [label="_spawn", note ="VM: Building Task: Spawning"]; api <-- manager [note ="VM: Active Task: None"]; } nova-17.0.13/doc/source/_static/images/architecture.dia0000664000175000017500000001527213556316250022766 0ustar zuulzuul00000000000000]ms7_V'F7 `V^Kmr]ȼHI9}~h[P"kV%eiF/]OWr 0tq-.|?/_}O,Z}fO^fa=,Wf>6WW/\L6fL/LuZ^/.^4W\w/Wg'/_z6{\N߬mͯtuWYd݃KG57WE˯f3]Z7~_ۗ*hs5Y]e7ƻ$/neqo+n~\q㊛_[6lPr>,dUǂwe,L]wz/WǍ[boJw?[̧m~vS??Pm".O[b~B^Noo.{Ԫ߿nׅi>aɇ|ܪn~9ofo}&75=<4K=?{ytO}=Y|$/f_{w?jq+nzYc bJ#Uy)ys_*r>mD̲l " 7lih3uj ;o}:^>_)JkXd8{PC HSd.nG YNz0k6/daK׫jqZM/|w~"onOj00]\_0uckw.WY.6w-&fv^O΋|۶oge9O6ϛɺmOC& #HFRHct&#p"9 wKe wDJ ODU;#G)du7mZv8}\\\o+E'? : G@t*Z$"I.K 0ʪS8e h B" bGz|hZH5w[I`q|D H=jzG嫿/b8cیR7*YjzoOAݵwvŬ0S;.8F͒{-cJa츏%Tvi:ʎwbǩv2* b]v@q#3d+;~L5;v!xE)ʱܕJH褰)ZNJ+=Vz܉3rnCH1 46. vjƒruR)`(rϑ2{wv-A` %vTY n@#QuZg#Bd3(EVV*GG*yP< 8gr !h(%$LP|X*b %вLSex# (V'9 `q-_B՗W_^}n{$ ! "nɐg[>[8 =R dFK~ejλw&/rdʑ#w ל,@u92s*}M! GH話];hrpPy#-(WE捣VH՘/2 1;±Y]XO׶mG,Ze-eWz8Ki6r]'!0Q) !oԵ9BMձcsv(H}foC]CH!Y'yiG&aH]vT!T1Rɻ($͑4ᰓ >ÄzHUOE]*ܘLL=Z maY.4V6x`aaZ>ꍒjq}!l ^ ed ʑAm/yc>s. V] CJ<^w kĺn|dmLY ls ΋:]G;cD8BQ\lh8M[LE;7LQS?US>L}:|D4I_T34Kѹ" ȍNbه>PK 4As4Sl.-p̹ěYUd" m{cGfD.ӏl?ѳ?Nލ8vGsoQOr&MUc@L `̺!LDz wJ--7M@cПDyQ: "Q40)XB.r9aZSBH"zVQ9J0$FN"UADDNDY@*#gmaouN#g=P"ϺDW \DńI>d myv Ѻrm:Tu>3JI78DT8[X?q>im"xkS?83o_6+g>&Ec21,󥹚ד^O j׵Dkkwd}H}]]dRh1 *wU+w p׀B\ʈco,}vGVzLڮ_OhKF=̱f:;E2'TX$3v%a̱nK}JeO5Zy=x~R&WLX[J#'oj8i&%~ɣKkR" xV/K -d%`YQ%!:ꨞʶ9b]De* di*aNn;]/TutZj#4u<zGla$"0 GCB~rfFN.jl}8|"(ffn˝䃫S0 #{%EInM:K)Ga{X]L)I&DIOHvHcӷFG7k]ȾrϘF.J[+{PF A9`%q䇯nylSvvr V[}n5@[8vv$fp!y3[1}Tz0䙛 }>Ieڡˏ606^2KKtv"KYϝ +AF{)rΏ Du 2b(LҔUr&%g J ?A'@ Y#KIȣصYډ×P d%J;GTJʉ!=$Ljll "7c=(IA'$$'ɡ+bvCvת`k IljBvy$%T$YIn$"'r#ouqCJ;<,"dOkLQk@.D! RYz99 Qzc:P|X)B &І@S(ªɤH 3^eg,+b Cp+wc*Kl͈.Afc$C&L*m}Z+Ǖ8hr渆CHzlNA×PidJlnǺ4 KB&GoxqRiph2>2*WLŮϢJIH nER"u{͢j}mI[QT(N{M {I%YaF7ξp.Tз=gSKK?/Ko~/KgJb$Ti۪%biNlʆ&@(yFcdj7)|󅶰=Ҹ~,Ԅ1Ea=b݈}XOsnr)r'zv֒q"Tφ!^,[z=TܘTT@lM3i;clCԕ)tIA"Kija+_Ц"<ΠB Mv W9[@L&LQ(Z " "=T=+)Rlr0ݎEm/\ RKftP4I4[00R]C>W.0I P._# !lI &O ?r лcVҰ"˱42 1c4F.cJwǡVt,L$Xhr*o3t&ʍPHá|8@#/VG(0;,1eAPٱceʎ;ft# PU.q3#u@ٱ'Rpq|d{k&`/=a"D l\$S:Blc_ ~RYCU!jaPS}Y8 ܇trA ׫u^G,dND:LSF~6\.ZܟtpQK0ESPC9ǜI97 CL_I)@iK_:W:|҇  AJLoaaL[Uxv=6,+aRj l01tR+GMQ˜j.MgɡU/Q/el@$WSzD6ix ҄ D l{̇fWɕcP Q 9 "}nD$fȱ* 8Cbl=i}6 A =IU 9m y,L|c$ !ª^Gƍ Ǝ sh$|VPCPvpd+#ٚ`$$OcG$ P \78z7BGoUP 'e2Xyz_y28g0YcVx+01fי{&l}֛2MCT[ EGuL^Y1N@0{vVh8zsHٵb솃!}ds;Rv& 'sRݵ>폹-K ΨRS?wrq}b=TEH 4p∝!zv*(]Q%-cLdfx>crO1<@|`n}"Y'9ɣtpQBJ?仭KERjH~0!y!uGmS9([IKhH(|f\($Vm:9`&`'}}ѻeFaZ4TJ Hӳ#w*d^DMS?^x;rVޗ3+ŒU+LI ꭋۀWƪ T'~@N(t͛jrz);nova-17.0.13/doc/source/_static/images/filtering-workflow-2.png0000664000175000017500000022303013556316250024316 0ustar zuulzuul00000000000000PNG  IHDRwSsRGBbKGD pHYs  tIME   tEXtCommentCreated with GIMPW IDATxw\םX9PD QD,rXso0O3ffwpQ9}($JdYOU O̯^%HdeB2뽑N2UҪ)/a}+tS 3Wa|5SLN3JXF$@j3ZӉḑ||5M8rYbǺ =W:C|:6rRRg/^cD<'Ȳ#ի,sgnԛ2WqWM!e>182nje9(+LyEhT ߒ$ϋQHqEluyE~z/wvVfgqY˺q(;O p|hX%TV>ri6K\=L$Djk;!ydnH\f| `*iv\Vd`| =p P.15_5T,2=9Y2[X ?iR(qHB@ ݰ4LRD_k%*!c'T/pذ{'GTӾ"! !aw:qy#rL²#f|bW`w) [ d373KX|r9g)&0 S¥`bbPhx$V a:jki#0KDd_\>i^,L 6_hpejS<NWS+9IGVȲLպ]Ӷ]'{ח˜kp@3ǚ/ c1|UPɅ$6Uyu4Klؐ@UWWFenNef&nUAnv#|̆ mؤwvjk9u mUYgn}93͉C'ԷS_6F(eDU$Lv,L q*S Dkh,݇æaqoy*jWrBMuJcE@]eIMxa-xoB9{~sIWWiR']@S6v ]?|vhtk sG(f7t)>ݧ bUr?g}[![Bő뢔Gob6f#W]峩3y6GXXXBxLrd"A:Y{ʊ-Rv B $DT$ *{y$csДM(6:-d)&p:QdXkndy<'rE o:>0 29rӧEH:ot\F&[ вi3tChi*=PSz&rn݊X KJ1=éO?gRDRT{ؾcroR$ Bw( $Esқp@`dxuFXyK @$.^Nбe#z~sOQ> l!D/]]kp`s D* 6~YS2Jnd 9v<%te >3پMZ=?jXS#37C"DH pǁ$QaxP) íSP%ISLM{H~~+!9GOuk)fsQzִRBǣgD=FyS!JN?5LR6; (]i~:R{dE IBOQb bzдAS/t#Ǚc[oîB0;pw~iﹱ ;IR vC+wAN=tGi#0|Ffm}n(5.>B＀^sΟ"sptGȦS PDiZd 2sTD"N[@R =TI,9:#xjS8zFbCe2, Y2vz&2s\< |Au:*Z%a(0ä.eyE+Rꢘҡ|?vUba_6o 0u^&p8RfZ#l]$XJs'͟U_B>1ų}4As 9ui?%!0y~ΩǙYLs3 [D&_>5nmMgOxblW1 zO vR"I>fmR.(/wrn A:1,2p%>8L"ZSc$* ꢁŀ"Q&&W07~zs?FϋkK,ӓD5-E%U!.M5\x#u56Ѵ"Nu. }Nը h0 :Cl U5( .#)GSIcsg/rĎgh:O&ʉ1~rO};uU>TMC@Ul5-D+/0,)] w;œ?\DOcvx|1M|tt~;>@?璉Y`rK2.4B:m^ir$Wh̓Oj LTtF47d͙lz-68o97eIĖfC2STh 3RW$z38\ϋa068\dmgiۖӒwgx`q(^$myo\^!ݓGHkhC꒤]ӈy7Q "m)M3;4nx5?٬2kΎ 9Ĺ[8KxE`2pz额}ol|I&ۚqh[30q f'uYN}) _};ֳ=pϽ.HU( MCP, KibIMe/ȩ vYL b~D!cw<3`tHS]YpJM=>}0\;ѓ-ff4t?΂ś,?ryc<#5THC 5+ F}qGx7bkȩ9]ᢳ,p<=7_#$0D5R?Nv4|xpL, <%IJub-0֚ˊ,-.=av-,>i"-;KeuqԱUZvH I]T Ӡ\.i[ Ɍ NZa05y3O} LΕX']*}2g\>~,Q*̏?ͮ7gfhqVԲo.?YV"mN*>BhR ?U$joL3iik xػՉzlb'R]l9siJV=ف$OcLO܆eCTjb\8IYwʱ35вai,_U檝/JGN_9H]HHb ~?FD Yͮ9.q96r>C]z9پ%UC Ȳ+w.Iߥ)hK_.[B8* .xy7E5(ʒnjP0I:(ӓ=TS, 囩y6/U!4FCkK ?VlzH.J1_@ɋuGUeYι|p?>D/<1^<$ ݋sfSY>bMƆK[]2 ktV$*sRߓylaPddn($#Yq!Me !'ZC3`Rpxd*mK_$Fe8_>ծaWFX?9BI#dIc;oDG(h ہ=K*MWxP;>3\juZ2n2_tNv|[߃XùdK+x(B0VCǖU !cc+%)nrc҇ N~)#Su"m~a>OBȁG[yis3^s6}1k}aRGh1)v3 غ?H]g9.M)t W/rT9~9M!Y;ߛD#x ʔT| ,d1ۖ D>_ _("L\.G^l7O[~6l&V(6/.B%1ȸB5ktոVVe\16B3-u4"Ɏ=>j2ϒ,MdI"5M4ͧ"%$r[wmi͎r%tM,\O$&U]Փ'8 kF&8|8)f |kd;< Ӵ6xa6w`'YCI_b䗧F29fyͳ۞k֠*X=jkȀ&q1>bRP$4lz9_`ϼ$9p84|55_Mo VNbsHfwk7p2._ЇP_{oqd, FNsSN2=?Ğv)KYX?bdd.1DOj1Ջh0ϼ2 UK<剐l{)I`J*/̖4&#&]Wku~O4zك.!)21T́X0 Iz0GzK-/ƦܸcCN4WPIbfO(x(6'HnۧQ=KP$IgoSK<.݆{^o{)>PR_Srv$Iƚȅ|s a bo3K{x?eޠ.6?{C:3@$g( E/;qmCmYv=(+oah_Vyo~L -eiha█!9=t>L/oAv7!wW G_#A!2Ay:7Cl\ivkĪd wC( 4L4KMkFx<$YCx:be<3KQ >vocs1_F~kv;? IOa^3|uk x8[C0Vw_:6C5ި1nK^'STClZ :T$B6\r|:<*k<]bBMÝuYs42:̳546I,@}P ش'V@,ӹv-2Ϙ\htj3mTH IDAT)Ef㮝t]ev*AE:lY*Vo߼` `u~j.) '_Jҫâ?X߁"?^IhX˳7F{$\w]@m6Y2_?+KOl^!2x4.=zWg{)7o& Z22_B&WYRfcSg'M-,,I07m"zg#sIZL@WYB6L&: y9y$Ѩbxry@,*(a.-jW=Lɟ (6$ݱ,wMS0<:FX>kD]MgAQhNk7dfff1a19yhtuʼkIJ=c/#y@ݪ96+o]0 LX'#+ʊGlH1d7E4K&U5 ˏ^ 9؈$=@&-<̻ȣU4ڜ̿33;82e˻x!VlNV̇nJnBPLc*4lه)'?a 01JtY3&s16a[۷8fLPFuڰZQN|B"ܕkmZ腏܏VYG] `#D(I)=0|E bYYy 9sH,cV2+<3Y/LI7ʗ9GxWӜ8ߍacSRUӨ3ar¾beY"9v5N$IB"?K@Z/~ݿ%<z9R;p5*٬`Pӳl k.CLP.`*njCڎ{d!^" X7FLLqg C w[ ȥg&sDbK>'vmo>o26DW3y-$ʲ|b N^$Lʹ,݋򥴝$)H&5~ bWL2M!JӣD[i޵KbޏeD.* j-G[VfrHE]srrrh+_3<Fn!1tXj^24_݊L3OS6!X#q(g?#xm}ӆ}B *o";p\~l2HTUVa)sBGWЅJUXM3+ᱤ{}')[& RRD)Gb ŒIU+:\9櫧mwn0z`y@|b̥d6 ` PM{H.[® cӸQJ)/fk?Ė"Ρ*& }3lv(N\ 3F 몄|QUt J@H*BZ[? ˱rkn%jjVKaxX&gqM$IѰ;Fn%i1-h:k5kס ~X5R,86R,$@V%S>)fP+_X+QU9 JJQOH-x2Wto&;|lNU0Bj<D"# r3̌\%J|Z Uף WRfGy!M??LkDcBipV%=>BcwY iRvSv`won%*sWQaɧBBsxt^~$-~&IHHw#!K#f/ Wls#hj}%Bc$/1UfΜ`jl/܅GrLӴmEH*~4!eQNo(6h;m_+ \:N2^s>J !Dt9p|>. gt|nf=^'ZU&uW?$2 l4?t)k{ _m)z][$0@ו_+[H{*$0v.Wbfxmf@!ZN=@&\RR#hC =F`Kn oz:۩EASfca<ϙ2v$ņ'$f_ _.1}A$Eż< f1"ֽ'?Aߡ_#;Bؗ2NJL͏$k*.&;:ַc8~d46R.EY4SDZ0 I ulW_K dbCblWV8Tkۅ.'vߘ4Md-@ 2B{=+FPzTN #t%OFvҶ%f3[i~{uY{Puw3#f,~Cҙ A5P۹ۍr1{"ؔ"l BLMq+ ݳx ʗX};n 6i=Km4hnűTxV? 11l"*{]xNRgp%Vӊz&z/9-Ԉ!^:Q* 6ʅI)lؗ\"P%N2oHRiٛQa %p*G l6r+k6mg1u;B諽I`d'HfRD;~j0IG,iTG$Pb>%B * GN}JocɥC&/3u?࡟34:xAFSjpc}GhM15n88Y|9Ix{×&2JK۾H=sJ~ GZ$1#޽Und'Rv|r/O=5S`&+ɩO8GM~i>$EcÙij<=qAEV;w8qiҍל u2צ]잎$hvt3BӘ,x&"K!5u\,=;cd8WIQQBU[3v[ EQ@w~)s:Nϱkvf]7yb5Eu=ڗ31q `'_yg=Cyc=9f3`3)QEJZn~ؿakzwז%]Y-ʦ(sAAf0{BzD!J%4'<< [3ߦ}h5>S%?~"W]VHj?<7q$ϡ @3.hv$ Z8|k9k1/?=w=i%O25sj Q$;;'܇?Ck',}G!wu#|߿U:+R n݋G~ muRW m_zI m'|4␟u:n@%zi~_9*P4U4~U23+ANsF)k5I%u:o>'񛢞vK?Wx_$M߀ ފM7PtnҸ4_Z>'agcřI\ӓ#lA08MRCLs~w0R1+Fo7C/S4NOT0 ]T!pleeBPDpTJ TL̫C& &{It<}Q\A|;;f|v@ #Lώ D=l| J5s<)U1kY`Fr7G*5O9:bzW*o"Qzm@d躬s%ݒPSp!E{G"{ Tb cS5,WInMS?Q%[p1|>=EU"GW$5.A>m&Ex[@QVT͕4n| h+hcmE7jj@j6BW]D{\pv}0B<{ֵy'ݖ~+q*tw !07n\{/1_@LrF3*VahL='ރ7Ǜ~ѐ&>}Ftpre E'ԾP8U֤tvnZaZ]B{C:;=SR+3juǕA0ar^w&>|{ض\OzCXsvoZWw߲gk"qƮw\ I݅~ɗ"9رC^CѮC=C$>FlՃ7ECմEk|aa[@ao`u7t֔W~ٶkJQ(<ϠE^k_4ʔ(ִM|E`~zkPm s<6aޠ^]כ%ekiK5a\0x24wm(ȃغ 4)+p|w(X ] 7Ჰ@T{ [7iZ(Mi psK4KƬau;іE0LNVO b5k. XwvtvpS#餷 41X\3 7Җ2˼xh --Z[w,>:xkɦkI*m6Sw&ZG,Rc>::4K{}c5a.oz_[8,Ո[6wA͹Chh] UiaT״c+O5oUaM?m#Kv8vvB- d-)c}Je˪6k07o(;=5ɋ'DcĻ0IW/{ r]Mi\y?2jpfZ2UXCk~Bcl}5&/37'ش[ 5~xzp!t ΞX[s7[*z9p%R3!6`~$?;Wc$ 5KLh4.~WϨ|b ZZfik t)aq́yl[uoRC̏e8hQi̞"7qӎ^qH"y2(k)ulcvãTV!4~Bf[O*#&̯Τ9%K+\,adeS./J|;+yt27( s)g9(;(ӴLA9̌")qV\@m׃Z\D`"8R>@\KOS7*̏M3U+vYg|Ƃy˼X\$,P.@w̏97"O.OAʻn?'O.hp@%b~Cl^#̬ێpǨ@J; G SԂIXɊ\]@h)~6ڄ \K` UgRb R[%{eciꭍs%0{9z6f,NR~BڲM|O/q{)yBcGFbZJ$q i#_ZX֟iJf{/-Xsnc4a~0;l&12fl\'w,0[)h Acܽs^T g79?D x(to=Rb#|[(s&Bxə`'UddgYX&ЗEjGN #,V!8v694rw;R~QN8*gfSyi'9Xg*6p$GU*TH uvR.q)Q*skPKD*:q)w? <~7H;څ7 F2c^M,Ny7Z`Pt 1 lIYV' T*;莄$^ 08'd 1l3/ffǧ9o[!I bfHLmڋ&H}*Z"VeOs 1̞@'~La1R^yrn4ˏAR*Y_{s0QP ss9l,~|faBWδЁbX3.%KT;;McVesmIX-LoO}TIN!86B8BNQC1{cZ~J,܊++J\Kא4ٹ< -@)5Dv~ O 0}Cr<5&\=T/Y-kb_epBww9YrhIjʝ#Av7)mƗCll_R?v*v-8A~@'(: z)&;n;]Rl.ӯKA !O(>U nݏw)uzPʑ9Hpe @S>Wd_8Om`ٴ)Mi)_E-fdgQ S @] }t-\qW{wSWwTgIz'bc(-yJ2w{M]u?2װsU\b8ΊtӴ;wpȳsE4;~nJMin<"`\UA803۟V_W͍+xo梞^mLb=R%*uI5!m>RRn!0 ,bX i,!O?UYӡ;|mx]BG-3MQ{6EQ.xO@o)ylG_`y ~<)v!(Z)%:q5p*uU}XZ/p@jJ1Mx4ULfh;kNJp8MfgylK5އ-q([x>w7xy,r3[B90yr"jԌ Di!R8zra[H͸\;5БX(E wot~i11zJXm{;P#kS*A+.Pyma{!z >B]j!QōuS\]Q̃]|TЪgA1<~<2=ϒ<>o5d }5XRg/Vd 9ҥu@@rH濝{RC% |~NqqKHaא9Uk!\Μ*:ykQc28 yyʅ4OX"TOB @m۸K)ql+&.ZMb D`YW 4@#sփ0Y %I|+Zs*pUÃ9 ɣ-rX{wBݵB۩e֮lÖߩ7Lg|&J8k?~F1*Yza;6<ֆHMaߊ 8Ɗ )R\hꄺ(DNE5E$F{cZ~yls)k8!nG-;J>%%+?y>=׋T\Ppm/6$'Kd"Od0[Բ<1qRSt^-`_J0q ;G_z61vQsIge|[/7"DT3Dhz U3QjɈ`y)4GPI?ϣ}5Oml!EQ ω[/,0| ~޳!}į_)k۵B)%tۮ_܆RbWy5˾#U UI_Sos&KWTb1@:PH kb_V؎D(9|{a傺y?+-^_Xך^S=6[]xϽM>j WuPːp/NJ{h')FͯY\u*my=<%⣿A7B8~OD)XrU\0]gCjF?{A'uYP$ ۇCfap'5? @0Bbس bOj,fvIq5"`&r :=^TJzjbUR"U$d׳ _U`:^)GoJZ0) !N'Xȏc*.먙E`MOQ*RH x`DLBz^A=w1ff6_%qnwCRIg!`e񏾅Q-z~S?~ݺ_k&ɷ_f;vf0)+S^C]uvȧgPk5 !(BVT}rȭ_X`䬍-!4yk VlQ 8F aڣn?~|lZk. s\0.>٥N _v5i j g}bgO*FDU` 1*l a{,bP%v?ho2 (}~oPlK y-ad>Ne^"ܺ3Z*,m\֪m:&0} O-BeWJ5e?_G9مTÛPiu c, 1v) ][niM(bY\+2ëշ]\U7K[|mK9 +Y>%N0vx1 }lů]<$ɉO ptV!(z5oq/PFb̟Wybngϵͮl[z}&p)S*fYckOOR°}&G^6z SGk]3G1dQ P8MtҚ1)1?Y&~bB8TTé+cv xNDh+j4;U~l P@Jc~(u6:,ȷ.qFB!&''I8"$07kq`^r֢P#e⫂0wȿ𢡄x< tc:C~քU~NX#V?"XCGOlv?f!QNxV!4Co͇hEg7%ô|(ߧFVmc,sfݯ+u;Jw/0ss(1CTC ^fw)L7J5EPxjj=zB `y} wr6zJsuJH=ڈh"scQYS,+Fc5SD+&(V 糥`| ?"68oO2Qޙ#T?H"kLakZnn ɖb'϶eF4=N\MRAA vS WJh"H!"L7նs=3?kֻ T*DAO0{ϟ1!C{?!yu cS"8Za\gs%'{ erTpjCo/{}_"عl*uSSb&x)(JB(A#9Ͽ_%>e)Wl,Mg&i g;OՊ<y9^"Sw+j)JE#Ep2F>O1A)QA-?JS2ӣ-Fy뙣zg%bB-HhVZ({cWߒjU\V+ُTTsKJ̩8Dfx+QZbG'}OIx~xY`،`):uVSEuCP*I[// YTܦ8ǮCb=< [~t+PE̪YY9St4`Kz۳^j8*7`:tL& E-Et *5Bv?'%#szg)g3\ek h|0~F"oQoU%VmI_ҽxf֒OzG(ue4נY ~M{<_QW9S y ݟ~wVq5J D kD2(2P>[b74ұyPW~@ IDATS=C%5RF[c,ae1JEjXYT%?G.S'۶s-@fqVйi~=F瀄|5*~|J[c9`r2y˭]`ݫɫc(Rо)6C_`!Mսv$sEuQK@8Ohz@sqUrN28Vd[Fxr bjq! Ywީ^ RIޔƴk(s)uȮ{|9* 6[//+B@T0K#;#"1*E*HlVͭH[BT<Ǐs֭[nw!$h U n#aZC ]]a8|J&8۷У!>_&=caFL{6aJFJőkwGơcU5Gl[SE&B`{zȭyfncwݟW{Ȍ0ՏH$Yܒ[b74oam3 vI%MC8 0D^u ® PB`%7pA c/f*!q)7RN| ܳ@'#BDvf!9)mv#@ 2Az}Rr|l~G,VG]bHL;yl}o)'ra#L_'{T6_KR 8r$|CO\\(Z5_`HmH?U]u tj_5U,yӲW/tytxb>C^/:u.MC<K0~`xK-˼ ^/_^V5ZA뀏%{Bb[ۄPHc >SK7;_Pbs?ss0SCW)>콛"#yDGw~T:!euwMB玑K ݏbJG_$Bj:Z+(/`G˰6Uj!2񡫯!#LvW(t;(vbY0 SuCsq޵n\^s_oW$?"5?OR\ezftz-_bcЅJaddn^ﲭ9/S&`ĭ.y07>{s)2{<G6 av!@_f( i*_Ğ:*mo='曤Wo|oW1TQ47z T%9!ZWy+?Hҕh:=gnɮZDu\#7XLvb1̙32<b]f >(~*ֹKAu:|^;MiJSҔ@%9t) b1줵P(</4}MiJS*q\ɹyJ9(U7hAONNP,ܹcFs0@v`WԋDhM|SrC0gd9MKc;w$‵jʾ} k.6lpѥtd&)j 9ΊHtTZ͖HFƁp" #$*?Γm75MSr0فEKins"xEɖRJFGG9~8>UV144tK`~>rwh D.)abؘ˶m?bxxm5ONgk5O̸kabAaUPr)M~-mʗ¼F0}INq T*:trLgg'|7WuΞG>6E9I)(Q,fzUB„/rrֻ!a>7=H- {hJSK%̛eH cTiΞ=(tttqSouB.6}} Ç(JX3vxa~r35PyڄySr0 yk ds'OR,I$ ޔuFG?!{ƃy/n 0HAl830ѬxՔ KM/a-Hq/|ER߱@./?F*7 ̏`\w,f9v; cÁfI֦\SscLWY|| sd9fǩ^q)l&HJXX)0)4a@OPPRцTFeLᎃÖ %¸ֺ" 4ΑB[JTq-Wb\7j!7\ .ر7sLM 8w.adDQJH|dw2B5\/N3V5̛RE\FVL-AFK)%`cNj"l)%Pb) 7鴋m[Re#]Z6U4)ŭ?4mc{[)P&nt*lOeFgybp]e~~|>%L(7*b1Tj1,eiA5e)8sS'|Xo0HS[R/~Jj(ߡfKP y㻦}f H.s2?7W?`KuYMY ;DR,, O4,UIMY]IM~MR&y귘YtaZ Bu;"f蔣kɇF_!9vh#ݽpW Ӑw hVBfJH:Q>x^SK.Ckn)t ¿L&ܥ5?BH Q9CjmI|S`t0^~MHg+"eqPg"TpJbU)VKY\`1bF(c%_}`T_8RJ0i6 4еt_r# H/+<y4WH!@.b{[p=X:q4ȦUSS2W掳V]P 8|Xty25/vK8X4SVl})ԭafWd(QitKzhi2<Y F)QjsCş,]j͒T%1(94G<7RJza,M/YVFQL2THEІAT0U6B=R!].%z% F B`pe öo{$f2=koz9fא 5(D'8b!P&)\#k>k爟>e5Uz}#rnh7t}E.9Ep-8S_NԱF.#"'(2̫MӾ!l8o){nw[#0&3`V[*Q c%uST"eYH)Qeŀ.$7gQVZ5X.SvC )%z:. s6RIDH5O}H7ޙ0DljUv&VT9pWЩDgZe!޶4v7l]Eq@C(h8k0B|BFXG-<(k# \XH_?ԝ2(M6[k%Aա$&bbꘋ1KP;Tg(PvFu$'NSEqvOa! j?{\ו{~I7 0(Ԓ(R'wkeTMux5So]kV؊T$E9D7sΞ. R$VD\޻k{BA*Q4NRsO~@!;|YFxh/0[zKŦhOG-D+#9!gI7&8W)F:)%e!ehv7~f@uF?uigmuE,[p QxkMTg_|i\{y=d['>Oxi?oɀT 9]~ߒ͙Xvc_YL4~4EmJf6K!դVLeDZtV'<)([عV b=t!-m-,d%¶.ZNRHf|4Jx_HL`*ªQ$E7*7Rllx G(wv-̯:mXDwG~G\eo+A0&M'OШƷiހUR&2>UohgK-Y &7 |?* #7ulO'IU+tU–ڟZ?M(}A!+rhzǬa.RYM$Ѯ L7Gȵ>g7Ӕ-ɶwx\Dɣ?#$*תDΑ^EOlc2h%]"XO)-zhG1/Q UeD^PT5/Gj̅l=E WuJݎviK, LuYhs@PGk΁W3*.6^?(;YbZ8uKK̋GkHΖ( ֶ$'07NWejeYY%<?h>7ćߧ}ȓtߏV[2[)FQi]\Iϒfh3騋] t&7t2S X{*=vHaA-`/UG`k^{=/(L̥Yq S wp>JPpqb{_aAD4]~LtjAkD Oɇ[" J|gvs /JI(|e&P 9%<AFaOniT5B! mM%1s`a{(HӦj%h\W]V 6˾Z\nrX8#{IRޏD,CS@Mg:G(gkL%Ҳ9NEa8oYđ|l6.k$~vųsdn}B֤X;6]t)TjM ٞƼQc+P2ދB#! 2H l}lS-I Z~_fLt?B^bnkY S=pS!qT]C1shZօhRgF/S\`6Ã5=a:*5ʊBj>:k{ݬ%]U+!]y(c^rlw9@_n37-%ihP.hLZ!=ʉg BtÛ䬌݇#qPcxΓ8{=OPzK| 1e_vB pȚ|sXeWvjabOϜ%q`iOP(KF?F6[y!vmЌ/Uý^SirTU!-T-,VvKdLwifqj^k/p*uވ.Aەb{VÆ(+X%,5/*loSч֧K al8*j A*M!ecAzöqcA\3l(z6Fۺ 'O90qWOh撼_>ur$_QuɅ|lOPqPb)rR*Z&"z|>bgDfP B"})Lm~i>UAl V_z-hʗ 7 Lw %Lb6SqC +:@h[$8-GKUPke ϐ6аjx5a_jȅ-=m[H` ,kS0@<҂d[w_t Z`Fi@GRh% {v?wq.~tM=a\ӔWh :g.T6D]šeb<祿;&B@fS$LWͫ=qON p!wEoK?5m|ǣNC1ۻSwc`nzr/O{/tǽ"'|󎋓0l")r~,}qZ6&4=C:$i+ T2 /I H-\3bkQ:"9:],c6IEZ%:6r䒏RsŨx\-j$w{.َރo:حmٞݬmFבMC hLL% ͎Z˄JVd۞Zbct\PojKBPnadSϏlgj+ zĶ;Nz(Q"#"63=^Ltr|3/tɻ75 mO+zawRj|ejnNץ>``\bM-"$ڶJDHPFz|ޑm&mzae?[zBb19IEG꼸}-m;7E]U@Aʱ 6ZN-S}!,{1`7مY-xz6Wڶh$n\fG bz|/b2{nذtEASO{46n@Ԡ?j\5 ƚW#ټ6jnX\lڶJ:F"+[`GxxCsF́z6KCHRLyiB]awW,K%i#*70nYs~\hw83 ĠN/֭YK}wjB U}0wu0O$JN\.M?d>nהj_=ˎ*tmt*YSmw|)aw.^vw:3|oW/2ͥzGqVK38>vJCOSRХ/]"lkdЭ<=29BNVyt;蓓S_3.m?J|svT1Ў>o/65(qKY8Yfݮ%,νdj:U5-09 Хc/]̶f%+=Ie|C|8дfI/aUyfc}}!68@ҁ12FyDu?.\tw t}[Rԩ"릱w̥ٖIS ,&!gؑyzb3(r͕0Yy0?ztx<|FDzХ/ sIOU.i2ҳ( R] OtaHUu8$ _gU{mX,Il~%]̶ZQ0wN` ff3 6\ߓ\*RQ@BeS@)N#rft+,-'8L90A;ȑ33KR‘\_ 垝:)/ӎG+<]Խ.4k"'Q,AX(lMDO˂QQ*#qx;|: ;'ƚe(^*Y&G`s``,.%-V3gi[mw\/>Sqi ?JqP{;#VT M'3ELQ}>ֽKB% us %T>3^!) 0(Ym$lj/cKʡc>,O(_‘Is49N~8AO@2L;irH|YFF998D= ;ēe^A15N=cvBcJ L18NǛ3}M`@p؆WYK"UdSnTH[v۴ڽʉ.cY*^)9csY]s)8rdei֙(~k`<=t oÁUI!\9{}VBkzKQjiB>d\:~u|ܚbʕwurU\w}d$`i/^)um[_xlLط W;+nRBYC):6Ε)E| K}7gy78xx)Q*'YU*_qr@yъ%n02hr=j10MlOɵ^6%Zad hZZB[ELD`!/qkL>ѻ{{aZ9vӚ}. crnK/N/ T)%G2jqȿev>"w]]k%7AQ\2'BafʱuGHA5CСIcG<Cg ^dze!d:L x0EyqBJjYN(ڲ 1|ɋG\>ƗK Lsª!@* Vz"T?/ c":X֫ bWtۏoxjfDv #W ZK]{헄F&PL˗dɧOOhRNBLyloW*L< 4?3;^8ǰڻP.9j$RrZq+WnۘցDH [U^ 3N* rkyyvf-8U*u[lwyŹ:ѽ*k7z VkcDZ4wc,l*6v/~O\:;h⮈ i`xEZ_s%MoQچghg"喝VA5FŌa5bYA#;}wխ`-&W릟cے @(l'#(>E)˜8Eajm5>$xO~(NotZshJc=""u ƚ>]W@=C+cc#IS37uu|S3T0(^$N07(FTo3}s(i< q?" {_)2`Ь8_%mM%0Ҫ5/nE9r xqZZ]{(/f -?k>ŗJŲ.oѳ2ZRb=4z>M^YTS!I݃\CV1)-l6m.@^rP9=D o?34y4ajɡ"Ll(nK@BbQ7mN,`Yd5.;]tmvW}/i mO`"t~?I48bh\[ қBR?8W4u.p `̎8?{DB<[۸ݮw1?$HoQl!kv3ajncĎT"573?O1C1ݓm˄p蘁s۾BzӦHkt`3a^h ֢^3"}qqb4UpU\dVǞ: EQGZ"x9X˜@̀Z:^_8۰J-knJvw#~j!=_JX}$jf(_6C_$] =Žz鉒~\j&fu_ۚ'40* *kIwU%Se9&ʗ},F6%XJykdyxAf+ぇD<0hjՙzBlk6L tfoho<r.SM 3O+,桒hNMXQ*鹗0Oj#?5.u]7loZЇ>v߈~PBu_EPl_4_?Z7]~~A*OY&I&ׯU䛿IlBT <`m -AՑz0XE-ost7|.vێGw}v9Kgʁ?E%D:~`ĊuQ Wk $Z1e#]EV`{OvD E~u!nMTZСw̆:ۼRR\(uS"=PM$`桯Qha[ FD3:Z}i6n`V|:.H+İ.G%ª#a[WVInjg+byT:z39F>@B*MM:~a팆*MfvّTBm15Q{9^ X3c P5a}XzwR}SۼQ8X g|/5TV*V堯%%9~3k#pռdMy<X?2V[%2SU4ߓ.G#|t?v}96ع% +"Q,n- gj|j4X/=~Ɋq+F90lGRi*LB*: *1B K1"1=i ΃rE$-wY"o/=A%[hT2Gwݏ4gszw0sg f~"Y&>V{_KǨb2"t9tn OVY}oæ^5=.(R7%*ȤLM:*Bl[r|Lz:LLwDKI[:)7\66DagH9Bۯa^fy|KUkB8L7 Q|ڙ۱|W׍ E# ĺ"ȯF GK0=5ՄBLՋJ}T%?NQkIVC5\n{3M>嚺(FiͶk,lB6&wg)UΞ5xqjB4?shsI/X<>^(A~ 6й9b(=H(UE0|>aC4tc"W/ľƂ@|.U!3 Z P ζRZž{6Rs튢 0o~hÏ[/In]?M_#D)lE$rszw\V4sl$lwwp-™vlea0\Lտ%~[h {wXk^!;>G5@OQiSDIxDS~g.0_|Gwt!,]X.׊;Œxzؼ EqV$! ( 75;!mY}0K{`9cxfgA1&;(72~e+r kSz  vOU UNTl6)R;fmeԽR^C{V_v2mQliE9&voY{ݨ\.E/Nމ<ʳ[;rhi`^+̻ gat}k>E2ٺ e\Y&e6lYhjg#!Ys-ڸaU?-I6RsC5k<~vBM07MͲ٬Ph=I"Ѻh.cTJS+ÔS[/@Ydzi UfS2 ?Pv.-ڳ\ afײ,ZZX[0rU[2WX"%]p]E&oK6n4 nhN )%1\WzM2?O{eϞ=N\wXVWh+{Ѵ[WGdY.ErWG'Ӝ !P,MABNCM@wȑaX'_qׯܚ$,*GпTzlHv&#G7hFf 8vbߗi3BfxʘL6UU{n*A[iuplFN/Mui-:8>sTyvrɑ'0kc'+1/ٹtCd9:0?>ٿ4mfO156LM 53 04<P.< 186ǎD,M^J-Ϟm^t̡R>U̿O^ ۠lv<[\/[K)O_s+tv.2R>\b̡P躏{,Zb,V57ϸ4JgKw(uj14Z(̎5n#̥r 6`I8$*/KK Y>E5뢚ϬIU29>LI垹eY| ,+-]tv3p9'3S թQAJ?hoϼTر7qFYfӧ\:05=|-<=rVJaJ\7l)(ҜrX{1&7!|f)A\Z73넺cruv9w߈:ι(oEw (62b3;+9UR.#W GA,mkfEjS|gX?]|~/S{ M*5)uI R 9@Jvk̜yO I8>2v=FgŁ#GI>%PT4WOտ:W]g%ڶ89FضkcA [>+c{a]T'q|o1mdncfƆ"lǩ"p}#`2Q◥)-kYd;rcV6M`8yPS'Djvb.h !)'LTO@4E=s{Q[xBEmRAw .օP%{II[ :IUmO_%ս{ق#>@ULXe7k~ z: H a'|[W*39rhIg6lFxaz}# obժ{'03zHj`%rU&(ΎSc:V{\D:yBL,rSX{uau*AB[#(5EOijh(=:KQ( 2&Β=WT-wQb&Yf)-_!}iRAUω H>B)DVc*Mݸus-lF]hOP%2A|jIe(3oba߂ɹTe(U4[lFX[װ籧Qk[p?oC^B&"M]cPĚQ,1XZnBm Bo Mk[ dn(GKϣ1(FukH΁,vm^M2\q=WqH{:,{{\xH"%JTRuwm5eoوnb7bwg{H*e { E$5'ss;svd,2e2 gx",$Q _`ϰ>OmKe#oPR깇TgS^zϴ?`Cj;ZQ5ljv2o41@:h9,f{\J`3tmlQ'1yj~ i ܶ\Y%J=R#=*Y>Yc5]wZdzhʓvZ9[%ڰ9wGBB|^R$Fj,;UoE* |x(T+,Aܥ%̇pWT:;r x+[շ35=JQAVF1H :ܵGG.Hɗ-3L~[.j^t~b*$'Qt.lf!Ҳʞ)ob˘G.0:tF@~%.ΐ= z1`Pl}L,╶3xoQXai6NDzsЋ*~0Ȼz)܈(>uQPdQ-sw@jmorYUr#~; J*KٜeOHSU !|Ԟx 9ėFT5ƾ)0>UYD8oâ۱[ >"4tmӡHЯ˶+Eqd Pc嗝GvO?2vuwzS}C0# HQrUUv|Ir$9:;L2o|]+ٚge:H5v7fcFL)f,Ϡۍ@oUF08?)Y$tq=~OMzν+]$ID*:ʵ?E-_:8~6pZoҁQ:]d,5UR@їZ 1?K&A29.3c=f*Dn"Sc3t?M*Z#v:%[ܻ.bKskDU@ͬ:=0Uح0ҿ@.ߍB> cpQ 3@"\Vy.:J;^Y}ŢQ`4 t/1Jqʑ$ҶW06@cTbx=oYPS8\@M㋢AX"ldfifg5^'ea7a}FdsRG)ѭu<-g]#aHd37_,NK}3~YGɆ&R3q,/(w> E;N&$x{koVHfޑ3.ژCV,^Ϥ1:_۬~]*j5ݕj_觶+AUHE6Q .N `tU/H$O(?@J>[O )(r#/%:ӯ zD1;"~cY0PRVl=z.xyJv9KrE0gUқӬ]޽&ZGVTPe6cvlb^IJǑv${NjZZu_U#UJ<ŢҕB&ARseBw/O/EAR*f,ŗ ͂CރN[ez=\X86??i*R~ #츫:Mwu޻eV&HDB,k"uФ* G噚HgP$.}6?'Y%9I#CqS 7QUVJxOdd=6Q/`u8XZ%{ޜ']re.2#;-pSu)7dbI<$ tw4թL>#a<2)>$7TbQ,U/Q~!&w" PHH'`b21V;#,mZf#&/yM g3Jo I$@g)p" st6A2b-l1#?^XPЙ]8| /{J61ʉ'n˗q՟IȇYM^;v3G.$ Q;P9UEz&seuLSQG[[Ӝi9AgHkY`{>b*^R(gjym`Kb~)+8;ևYa>nrznYuQޙ&H:qg9dnh:Iajnl6x-!kv;U_UJkl̐O'-McR%9,G,7`kYBV!,N( F;/bU~?!vNHNJl:6vn=5tAUt8{ 7Wl& uxU_p퓏Qt}QNP4-7~ϼ,{c?F"ɂ[Eu z 18k҃ Qoh߳1{#+TYAOj]I!Ml}T"`U( I?|5G-dQ>n=9/kv{/J-,# * >#hK C<3MPDgr| }|o0SYװ "N.`=/^xs?3@$fěDsMFFYռlpc6JDxW:%+Z$M]R/P2:QA.$]J1%4G8PځeǶ(,فQɱ2:%K\H 6Lhns<N:уmVFOGdwUZBw']"+Rx/җ )<Դ_~4[FVuWn|ˁ~fj肨CvZ 1;D[Ȋ@L,B"O;u/=$#1z"iۻDW+0$ d|&k祫}Aɓ+L%uQo"]TzV3 |r UXɇ|dXH#tyFj 꿰stWy&.}¼=@mޯ052B[TUWn8AiEAf;iCKXdP5ӕ䝪k쾷fnUݔei-L$Lj*^GxzXZOqG0/b`5|H'ꏾYyـl4ci_qXV(iy;GSoSS "QIBr E='/6,p_I b9|m$ ;]v#U NT.`JD"ʯ&+ _ޏsN/=kU\,~!n0wTz7 : n3}݄$mg я7PF*`s31X_'PY$ (25=gm9>s%bIRFx@N6!+S$]8 IDATzK#Ʉ Wlx|=eob1PU\6/>.2: (t|aaWV}cgRķWfAImLs)i~݋NDcv1 {*gI9TFmz߶SwePrfި?CWuCwn*z^A\++)gXJ8 m߇ 8ЮX$HEszr{ fo3_fu~DT]G kS4wHIID[R ,[wsa^(<5L<*zcwwVS18+h9h@4Yiz/XJb{[ig0;J ?rQDhz+}xC]GX2~!Zo Ya6,"}Si8jmxVRc/H2X\z̘uZ=ǰSyɈl@G_Q҃^'Y%81^?RycC!%.$c | ~?yLfC?o$]xAw"@a'"ekeW%>ߎ׬w<$&46_5d, ^?P1q!-bHN]'{ %I:P,x뢈^'ax;nvF@o#K225q*KP yr;7(҈J_Ǯ (i@C[پ>[cܿ΢3!#6^6uZs4j:%&ʺ&p i 5v~π4;$HJ_ (mRަ( xY_[K0}&nEM{#;}#{ \.xͦSYJ3;ԲS:P 9~8&g 2,,[ʞ]*+SSJ܈ Ȫ,v"&k$>E"  {s~+0p.O_׆_s ν #I6gHE#XˏRtJ_B!}{s+-B f4 ΄;<˲,;s&&PȅŲCNgN#M9lrjŠ?؏KQzH5;=zI5fCI Kh %yZ`45Cp\UUTUE$Fy=.2Usm8Ez{{tl$i ho!K֗C4XrU<2 Ջ "ԴbPBu&/_ z#UݯasVV2GyTq$)ZDA3, zh(zL&&ć Wq8\L5B?JB한ix'9r9nܸ˗IR8 ԜkʻbyID{<¡&r hsLR4ߐM%P`dYOe*E~2uw^ @t@NGQVMx>%Ҝ;NGso2$͢o"W케~$H(OJ ̅mNu5p`_OR\vk׮pNs^E ̓Igr39qDicс͸XGj)[o$PLMESIqȃUNj+hETl6dnUUmyy9GL&^KsB1 1VAIiണaAf`0xtbX~RYYO4 LKHR;~z333CYYX dz qfDO})L|߾VQ5<<<׮]chd|B`ZvS(Ķ' 3u5i =11^ t:|Ȅ$ 65kJU~ ?EGnܸ+Wp?;-}DØL&1hm.]DKs MMMY{'J,#NkVd佰:n)))ٗ Lݯ42e~._S鞚]N"d2{o@<ҥK,,.7&>M311ǟ~\z֑dsk+4ؤ!.]D2uB>"M\tA&&ӳ7OJ67ob2q\5OOOH&9qz^ ӏoh4clu:, :Q B,--!I)qn޼,ugrʠIW-nܸ ,SS[X@?kƢ SWWGYY& C2("" ",1yPb.`0o!)q׮]X,3r=jzzk׮1;;l6gA#51>>JG AhkkpQdTK4errUU|= JUU&''z*\OM&'tUU?&jkd$:;gbb@ @C}myFUUBjjjhll|lIp:b6f=$tAA&AQ|>fY${e9y6U!"/vw?5h4ʵkr |mmm78KZIC6erj`0Hmm-2Z-:נ 2x<S᠄B!._CQWW@>gjj χݜEOEaxx-Ξ=Kuu5L&dPÜ{EP>}UUIӌ099$@GGc*;v9$Iz9@$ehkkA{d20+*4I 8l'^W666ꫯd2X,9rn@zffM xGt~^/OLLdhmmdAÏ  HOOS#fKkk+---.UUfeuǎ=sXxBeb(ϟjf"? jrrf|>k#$333NA׿d2aT,&Ȅa}}p:@4h3A,QG ݸyX,K6pOV+'yp:  4l *h~r]UU!JJJOr_\\dmmv_A?/KKK34weB*A>IfMQ L***AÏ 1>1AEy8(SZZx=ׇ(h;"LPԠaemmh$X?+d;EMO ߺDWWׁ 311ACCv@^/嚾!dYfjrJyy&'777c CQFGGm [[[lnnԤeHeZ'г,}}->iZZZpݚ#Aß'&&ZPk;4;;$TUUiyVAOw6}0f-:נ"ƕ{d2,8y:~:0TUUim<ڮs  BE&>p|ں:M Og2q\Ԗ#r##~ D" }O+*(z5t ֎h4J,ta}mvm׹ 3yѣ{.뵵5(Z),,,0:6F{{;ھD:fllmk 3Ǽj:weIZ@說H&Ѯ]wJnh:D<^+ 1C!666hllԮtBWҙ {zl"444PZZ E?|> >OF*Z&[۩i>eEޮeF4hx֖8KK464h}UУ(}}}+*+03==Mss3C bI|>Z^ۨٹ9v-zPEQ:ari5hx@lmoJCCVcxt:5TBWUɩ)8|0^W{,yiooRY4<nu[;N5'xm2x:x }{{~j먯cfL3L4< ( kͻ{B4~L\zNOOF҆4<Earj ^mlnnI}]vÇq:b38###TWW4kHRRWW9cj(cbbEQв#4<` 25=MPQ1ba45DBOܼyơC42y Fik{{gLc#Gs4hxdYn} :&''tڌJ芢022v(-eelllgysehX&-هoqqQ+mTBu`ll6*}(-,3?7G[[v] B,Uh)РSx^::::CW F6wh"3;;KMu5n[OeAϟ}wSUUM?CȷMΞ=lAگi]k;5-ikk?M.=#[Ȧ&' A(S,'`0H QQQA0AbcceN9s׼B BA1&`0xeN*d Ed=F*++osO]UU8WTz^ j߇"7Zۨ*SSSi%UU Br9M4v~W#2333\{v.--G75PK(byi鶝|{2fM)) qD'.2r9kJ>G$КP}H$ W&I>3"8:m!gTC &#mCAo4[ZZ[od Lʖ|UP5<Ә$UUL&ޅQamx<x6I3 UUu:rH$MK3AEmQ##uw<}}}@ww6T1X,244bAS `PUU d2RUU8H*,..ݍ҈1ť%VWW9t萶\$)*++q'ڪMMMtP]UU677IK|Xk"y뼶 -:נ!B8E#=ƭ^1 ??kMUUVVVJTUX,"2*fY{` r9Z[[5AC֘WC vRbEQX, {B,..rQFm޸5Ad2ioBfQ, IF$INSNx4iﱂLMM҂P( 2`45נG /,Ex<N:ua?"* z<B!677Fp1f'J,cssbɴ3_6vp8G###D2 W^q $cGR]] J36G"#JvNss3>gVUkI#-u%U)0?8@觥%(( SCMTD /1^mN6^*T lEzLck43lnmS(X].Z[[)//32WU: K$TQ sPUt*jA c~l]GeH@dBRzM z=f^ &LjnxI%Rvb\>df}cłd@s]Ȧ hdY1!a1o,BTVf3$eSUl*h{<ܧI&2X6Dn&b $2vL2lǠ6_bXX,X{l&U5||DlT5NDjko%l2F4$_PK2+cWfE]s;b1_8rRjJD}]`ߏnc4Eq셪X~DVO2g.ss~*[o`4 |Ʀ_,wRs̭dVR.qNU%8'\U-Ι ӧNQڏ+}10EBpPYYsq__c/^z*T-_oNz UCɄ<ǩ ?3+4sS6*1>ޢyl.BIrÌ߸8ٚCvG|gi=Al }_e 磬;MזH%&4ry҂Rr-&%Ե41,X*zI$brdd?D&PUb~bFƶ6npU9\Rى,J=6L&?AʬMy?njZ2q2QA!_TH01FAg_@UsyJl 6{~P2;1E$`PҌaFƙ#bwd { 喎lMwuT[++eP 9R4  i#WUl2A._DXvbK߲yp[ E`j|/bO{$<*,~g]8c LU#LTE)dI&Ө-6LFݎL2A # X6lo&jYaI'e`j3G*\T*jhYcrbo9*+}*N rQN:Sa67M;ٝTQonJgI(nǠGF*5,x`90u-H |T9b6-Lpӯ48imFL*Λߑ1݆$J."Ɂ(a;BxJbt:3bsXU$ 2΀aCv҆Y"zl;AmK38k!DflR zSwQLCpTE&LP\eD"W j,a}qSu%V֩U߿G`Wbg~t xE+\z .bʚ2\敿ﰢ5;̬_@R,\D(6պbQQ I})3enXHkc7-5|5>,uWeQg9nxH)H¢dܸ_ aGY* qFOYgPUJ쵋\ Dy ]Y{IYÔ]HEf7eIo+T|EYT̮2=fzY]"l03t9,Օx &~>M oKGLxK^d#BQ̫/S0Eꪪ8te8ֲF^y5~ +;x8v5*yֶ(I"#} BY%vU'VwΛ@8Swd|ѧn%@? O]Ͼ%- rO^Ӌcx}>L d蛤 ڞ3<Ѿ$qyqh5#.# 4얛-\̈́O]`cDnL0!z'7fmgEn ReQGiΜ@Dꘀ즪:@;aj~tO_cz!_ Agl9PLh_;?\׌,|R_PfS7>W5BcW%fytcD2fY.(k=87/2us,./fڏƣK0;F᷸p 5,.0t_x:ia8]m\Kx޿t-3#S]d֦X{fsjWRb"(E~bWy~կx7o {:yQk3,ljjב9U(bBQ^9x4ZLN@)LnHίqIIvmEWyW 8JjV>r~őfäA^J!WYyWob\p>ESC. ]~*.8r(mm9y̕g&h3G5-.!7yn;j!b29tݗF5#E^}]-׾ddbzӿk c1lz'(e;/8dmzX1C 7U.0̄\k9]ae)V‰֧/nkbqqi-ct $YjNX/r2mXB:3_ec+j!DpzGb{[A*J7) ɍY.y9T| P߾?F5, HNQA9WE8` V`@!W(Q-O> /k`5[c [ۀA#[m]ˣV_ ^FG]@ yv/;z 1>kʏOaPl6694eKc7MBޚ!;9O2:4.lf^}6~~@o#} ܼF4/|Vi4Eپ˲Vȣ")m(IŨVSPfDA\%HONQbnBGl zq[˪q&ygv?`Nh5j;c!μs}xՓq :s;<\hElc=ʭ"o)F$PJٷax:ͣ H*l D݂E4 2:9A,^Bgz{rMV^}ED) ۸M7pYd%BipoᶩRRsX{lJfsy9F{۫{d "Yqg>*JW&UA,J#{\]؋gHD}h5&xx#%~&a&@_bf@M[)U uW GӔkH 1>^O(fɑ^ x[*Y29 0;&䙙'\=Rt jhBgaS7jT7Vq:"-A p.N/etfl+qxKP43Kq&]޾j iٍes4|Yznl b+YrTcŅy&LCC7z .+6x9Y,+od17;C&a ,cNu &qԃI6;<.n=`Al^ y&[hA.s_""3/`s< K s`sC:҆+gRR;K:_,R zn%rE+/()n^^#Ԅo&[X'ٱeJNp8w.{YN&6ky0 EDu ,TՔ#޲}<[ӁZ)o;&:D}XUb ᶸq`q)0u4@OM$EIfQP$E]x[ 8Q4P?.7Li [X}8A8\ Xy3 ݈ƃA=_'~oI.b8u[X"w<W$jB4v)(4yāg?0[m8ʏKu\N?ơʉFvR "!M'_ZSq8TWNjs564QV;ߩOw7ƁtѪ$Xlv,j1W+('!H26Yq6W. xʚx(E3E\B$}5Di#P-8&K$IWWW%R^j|m ZlKJ ۑВIH85E Kt4D%X* (͆Ţn]PV3r:]74?@P`vSuKhIfCjnיzdYa_C6=N4 j-j".`ٶ ۮ%u qX-۹w\%Պ,5){l)ۦ`M ><-OB ɥ%w?&H|)+++^9-T;E~=;xe_xY~>AۙSX?(b5F)+*=Kvje7O~|d0dhfǶ-?{I]?6==|?Ay)-Ze 8?G={_Y ?ʏ* l6AIRxy֯!4Mt@?Ǒ\1&:g|Mf'1,>)LOLዕ}f$-+ⷋMBM&Z7xյa~K I2 M3"nk躱:Zȷ_ >¿X_IMov.WIrww)|Ȭr?u{A>ܾE?51]9)w /;j^k 4Mpmf>k75INa8؍e.}rʃg*s703t~z {AZKePdf9s=% LANWHy8qj?F!Გ.k:KJٜǍ; Yw&5; qZQ5 iz_!mЁ2_u]m4 ''GX,w^mJ +膀+%o,19*$B69@YI/+K HY)VV7yCbg}gyvZQqw8XSj:9Hg1p"^`enl!/㴂27jr$@ FأaJ&w75ޯrtRJpeL +ǥݼh]%M 榊iVhIme{Ab%OX8L L5%z`Y\ZD90H-α7REW(?HsK=W]$="0s{av3I3'J)2`#"vU$Q$q֥#b;AD% ]0LDYFz"BϦcôY@qByǴb۸QzY444]@&Aox4bD[7IE0SC9} hhjȊk I!454[a2,b:Emo.P@Vԭ$&ZACV"4E>$y;vMqÏQrHc~7"HE/ ؚ,o=9Q&aKd+D 9Hve{4$^VFƦ|pj#ŚeDڣK1M1%lħ/lxl "Rlc&Yl&Iאb|o&ّLA˯^++]iOlUGk2?1(/ N0/o&9m 4F]wFMp9}&I..Ǧp{sӛH4瘹 IDAT Xn\7_0;4=,̌2 0?WȂN&/p7h|aM[\L+zxOau80t['ZYe~Ac~vRkQ@6?2a^Ki>FkeR$Wk M^Ƥ]cmq)R|X~V7Q ){-1>*Չ v:8Q;U,2d9jNcjKzn X@Lgh4BGCܿ~tC)S#\vNnc&S]_ K+8 ~GEիLLJ(k9-ȂLm}f+@3T%;Й%6͵$Txí^76UGhi6KW_Bu9s?ǽ4 ܾ@:*9h  @Y-GNyJ C g0S'ɍwс2Qm1hec2Eg~pU]t-r~`#r q߶@,q((ϜDX=R9ʶ#4,6xu]lzTG ZKHͧ_6exyiOCgOp4_1 i]=\ƣ4[|ULQ%^¡-H>e|zǏE)+qs=NDEL?W vEB,/_ejvHu#GOc v;L:[Q(7;:/q4@JX7;ﲶAR픷!L,XkP_cƇɩ!~pYFGTU3 :Eܦ@ǒ72/7?7hj[jj+QJiz*4+kxl w/o`xVy?ѵjO~sB1ܑֆ:"Sv?ɩe?Z`ej~nE[C`Yrյ6"ًKP][x:nOPzHts-un$#i9rcyO/tPg*s;eI&)o"Ya=Qvʨ]J>=ȅ.'3qj\xcVӅݮHr;+ƁSǰ䦹~*\|Crj#uO/r?AñӴ61u?W BC'hkfez #KT74Q<5K \=%=Y䏴Fnm{~(br{XC=yE`zb%/+"wΓ*X 'h Ex.Ajé d*"xoz}dJJQg8ߥLnx 㖫B6R`e /VTxM9UXMmj@Mί'W.Fqp9,HXH2*J?$~dwQRV7`MO勷~NuK߱nkY_tȲB)"#nI SxY%vCu)UV఩.?XD-!K8Ur VnY*y_y0T =Q[.A@uz8mX~BA(h9vh@e fh8##V}M$)Eqx5QQ[`m3cb(xvYuR޸ƖF4"7,0i Yaiu DBZV&Fa6 'OSYWKۉXL224MIah8rʨqr A#8B}1l.dwu&G ns4`5VV1 O0SD(o_`rjlj*jYb~5)9curcAV"!6秙^i>uNVXfv~i ~B0*8}A:Bmcu 6ג䳛'CŔ*SClhJ!Jޏ\g "hX>:C#L bVzTƶj?{c7W?a Ta|p"`zNibUU<n$$+4C8{ J}5T4`azt~5 ӆ!Zpl bb`OM3mZ`"p9-S{١AL_w,?kTWDW2k2h )l^?F[݆4G"?By]#Zؘgu#'q *}, Y 0x8iWGWï81\Rko[7G 0,2Pti4MT4WND-pwvXwOq8@ԧ{=>:9ik](edIoT:Ams8(ibbQQՊ$niVBR-8fݚA&e#d]e0WSL$[ݯTCϰŐdvbG ӛdswl lVi|ՍE0k!jEt#E%յ]2UVe0 Sg#Z]DEi aEV`31?A0 H/Q|@;ULm1F2ź4Mdqkq]n}.RuGۂ>,Nc.v^epu~Bbe;U!ϰZ;]L2kd6sXvDb/̡HRV0Qƃ |kDM >ggi!]JQZNв:@V][.5Y0uoy#g~.[K۹Whi(yz\ҨoG͹uDm&AgfjB9E˻,-R0@pJL<&bgsjMP8WBnfy@g8-GL=C~aŵenv9Դ$gZr R(dHӤǘ\Шom ^QFz~٥~Z;}d-!jZPR`k+IܢV$P^$r p@t Ahɡ!-e(fVU54K2k8 aDL20@M[3J+ܟ]$nX. )vƗ QX[]Eh<դ/A _EiЎ$* {BϬsH'W-n^'cm-CG%JNd*U A˲Sş DIc[yS("l$Aux@gvh%›o5R],$':Y1p;.R3~+Zv `fnC6%Ә> U8mg.fQ{vU$Z!kKE ?+!:k+Ng2FA7+KJIDĠoX^lG Y ko=FIm [s3T_zF>&S %X_[`(Z C^[mUҚ#ؙ{ <ē3ɸr+:V`\`/?KEON0zҮ4'#H5Y "\T8T kjlClqލ{İLs7७HHǵw&5p܎Ds7؝$WCkS q笲J8x(7owljF%lNcw<]5Ni>u6`*ۈ >IG]~L]SFkK w/sF78vwXb^`zhk5ځUE$CGe\{蹦":D- %̵Uνt׊ k[imHhgL[XYWpl"dӧH~rL[ɑ#{qbBg |,6>*0x.$k: 8_DaAR\`%f_fAjK8Z6;Da U5OX46H֖˧:_]b@#QQr K8ԇ7na!n3.z[&Y4bg.x#3T:CB18}7o2K9ҹIaJ߿ho04`"?_a$ : a(8*8 <:+ms{ݽoLPUGh,G VPQxD(ېIs*[K JES3vs%^auG8vU~MܹsNR(ƦR{hM tsOqiƦf(v/!훨aGY(uMtvq]a7R-K{JXE2Z8l}wHL-y +Xn, : cCܸp9dZ*T'߹O/ؘ]yǛhg=.|``/12Ɖ7~V]Q&^߀2-I_!΀qz:;Xc=oІE*N7[ۖT"Vۈ#:?D~f?C[_VgzV&r jx5XB2s!?ۿey%dq#n{o FD!~ikqr71\Q|NW ӹ95ͬ-v EY* 9է? VWU;h"h?I&b aUe'_$ZfQRB8L ~@lDc!J+1ޯLm~N#Cøm{µͬod%w0a%AAsAm^ Kdr6$@Q%ڱ_TJ 7LA$\$Viߢ,&\G0B,v?1TYMuH.,3)k>āM(h肕r6B6"^A0u4C TVeid!XU O˺PRQ?& M"~.&5Yg*iOrqG#g'"6,/':s` T`e~R-M &x9'`,Vȡ:CG%_M`uaFHU-(hr"0b!Cre ?Fvd=%@q{<!T,`Uތ":}c2k,/#4l'ۉHPȐCR˫((Ϝ4yfņF? *  %47)OhGX܏$ɄʱIP__/ũ.-a.\NI%qVPt5 ӍM+kX|1:I,Ǫl6DBFDbTH.i:~C=wQ}T#Y_^deewvode~Mvt$ua+ r" v|+HuZ[ }hIRjbrxD66628av Hba+$8zVm$PP[Qɱ<>/vNjr;Q-vn;(xP{OR,icxĦţ}W:1S`M)OxmG|, 3ny3;BO~ԊE'_<^5v6[(}=k> zsˬ5GtDq+{<ءccxj @1(K,aל嫅o}sg HMa%Jծ _h2T;n OD|;S?OxA.|'뮿ŧÒϢ{\|ϵlEbLDRxrrgy9QylB^]w(>9'_uOL|Wa9W [}{,%@KUlʟ!X<[k{{/ &<~mwV!3gb3[gA-w 4I/MrwK6)G&}SklT@»c ͮ_OϮqS>;]>ss'lczk~b2|or7M! )`umkC]ֳ.BM7o)M q}Mx] MMwɩE dU4֣eё$*y·GO&?78ٜ@;ug{{{7o3:r9َ xQF2r)ƧD u;>.L }IDATqw`/ v3:BXb@j}rVw8Gϝtc```9sF[xRq/)NITה> ^duM|0#GV}g_9bVy0@Z"3Tvǚ\55Fz#t_5-;w?߃=.3=ekCp Dأ/n X YRo!(v|Ve- Z>Cj-%,!3NE/{}.S1WqQݻ;:p48=؃Df}]H^B!G/"AE9]== yB$6 f.K.a:$ MtAƪHd]ɢ(ͦ](4u24GVm4 c%Ï,m9Ae1V#:_%x[Fjɴ=؃5O~%q)D8?ʭ{֐ft:#] UхYe-,r~c":⠼{/a/32m?Kx8-XNe^#bbd ͡q>%M=bM6b=؃1l wS̑\!>  N=ξNO &8{!r8N\>]TTWVm7$ vϼL+<켌L#O35y!Vje,QSqN&2t2 DZN|{OvKKc)#{ $# w)F%{MoSs/ i膉()(JQM,jEr,oZ0 ?1f% ?kAjB4b5u`70gC;MsqLҦ/%#4f$MRnRٯdX$ݵ&mק6{ gf&__?(p{kڔŐcrb8{=5ί,إݯ<{xqvK)v>c: : i㔛 6i|~WUwTky`ZlLzm\.s>K: : :: : : G rIENDB`nova-17.0.13/doc/source/_static/images/nova-spec-process.graphml0000664000175000017500000012701513556316250024547 0ustar zuulzuul00000000000000 API Cell Folder 1 nova-cells nova-cells rabbit cell slots cell slots nova-api child cell Folder 2 rabbit nova-scheduler mysql - hoststate hoststate nova-cells nova-compute <?xml version="1.0" encoding="utf-8"?> <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="40px" height="48px" viewBox="0 0 40 48" enable-background="new 0 0 40 48" xml:space="preserve"> <defs> </defs> <linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="370.2002" y1="655.0938" x2="409.4502" y2="655.0938" gradientTransform="matrix(1 0 0 1 -370.2002 -614.5742)"> <stop offset="0" style="stop-color:#4D4D4D"/> <stop offset="0.0558" style="stop-color:#5F5F5F"/> <stop offset="0.2103" style="stop-color:#8D8D8D"/> <stop offset="0.3479" style="stop-color:#AEAEAE"/> <stop offset="0.4623" style="stop-color:#C2C2C2"/> <stop offset="0.5394" style="stop-color:#C9C9C9"/> <stop offset="0.6247" style="stop-color:#C5C5C5"/> <stop offset="0.7072" style="stop-color:#BABABA"/> <stop offset="0.7885" style="stop-color:#A6A6A6"/> <stop offset="0.869" style="stop-color:#8B8B8B"/> <stop offset="0.9484" style="stop-color:#686868"/> <stop offset="1" style="stop-color:#4D4D4D"/> </linearGradient> <path fill="url(#SVGID_1_)" d="M19.625,37.613C8.787,37.613,0,35.738,0,33.425v10c0,2.313,8.787,4.188,19.625,4.188 c10.839,0,19.625-1.875,19.625-4.188v-10C39.25,35.738,30.464,37.613,19.625,37.613z"/> <linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="370.2002" y1="649.0938" x2="409.4502" y2="649.0938" gradientTransform="matrix(1 0 0 1 -370.2002 -614.5742)"> <stop offset="0" style="stop-color:#B3B3B3"/> <stop offset="0.0171" style="stop-color:#B6B6B6"/> <stop offset="0.235" style="stop-color:#D7D7D7"/> <stop offset="0.4168" style="stop-color:#EBEBEB"/> <stop offset="0.5394" style="stop-color:#F2F2F2"/> <stop offset="0.6579" style="stop-color:#EEEEEE"/> <stop offset="0.7724" style="stop-color:#E3E3E3"/> <stop offset="0.8853" style="stop-color:#CFCFCF"/> <stop offset="0.9965" style="stop-color:#B4B4B4"/> <stop offset="1" style="stop-color:#B3B3B3"/> </linearGradient> <path fill="url(#SVGID_2_)" d="M19.625,37.613c10.839,0,19.625-1.875,19.625-4.188l-1.229-2c0,2.168-8.235,3.927-18.396,3.927 c-9.481,0-17.396-1.959-18.396-3.927l-1.229,2C0,35.738,8.787,37.613,19.625,37.613z"/> <linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="371.4297" y1="646" x2="408.2217" y2="646" gradientTransform="matrix(1 0 0 1 -370.2002 -614.5742)"> <stop offset="0" style="stop-color:#C9C9C9"/> <stop offset="1" style="stop-color:#808080"/> </linearGradient> <ellipse fill="url(#SVGID_3_)" cx="19.625" cy="31.425" rx="18.396" ry="3.926"/> <linearGradient id="SVGID_4_" gradientUnits="userSpaceOnUse" x1="370.2002" y1="641.0938" x2="409.4502" y2="641.0938" gradientTransform="matrix(1 0 0 1 -370.2002 -614.5742)"> <stop offset="0" style="stop-color:#4D4D4D"/> <stop offset="0.0558" style="stop-color:#5F5F5F"/> <stop offset="0.2103" style="stop-color:#8D8D8D"/> <stop offset="0.3479" style="stop-color:#AEAEAE"/> <stop offset="0.4623" style="stop-color:#C2C2C2"/> <stop offset="0.5394" style="stop-color:#C9C9C9"/> <stop offset="0.6247" style="stop-color:#C5C5C5"/> <stop offset="0.7072" style="stop-color:#BABABA"/> <stop offset="0.7885" style="stop-color:#A6A6A6"/> <stop offset="0.869" style="stop-color:#8B8B8B"/> <stop offset="0.9484" style="stop-color:#686868"/> <stop offset="1" style="stop-color:#4D4D4D"/> </linearGradient> <path fill="url(#SVGID_4_)" d="M19.625,23.613C8.787,23.613,0,21.738,0,19.425v10c0,2.313,8.787,4.188,19.625,4.188 c10.839,0,19.625-1.875,19.625-4.188v-10C39.25,21.738,30.464,23.613,19.625,23.613z"/> <linearGradient id="SVGID_5_" gradientUnits="userSpaceOnUse" x1="370.2002" y1="635.0938" x2="409.4502" y2="635.0938" gradientTransform="matrix(1 0 0 1 -370.2002 -614.5742)"> <stop offset="0" style="stop-color:#B3B3B3"/> <stop offset="0.0171" style="stop-color:#B6B6B6"/> <stop offset="0.235" style="stop-color:#D7D7D7"/> <stop offset="0.4168" style="stop-color:#EBEBEB"/> <stop offset="0.5394" style="stop-color:#F2F2F2"/> <stop offset="0.6579" style="stop-color:#EEEEEE"/> <stop offset="0.7724" style="stop-color:#E3E3E3"/> <stop offset="0.8853" style="stop-color:#CFCFCF"/> <stop offset="0.9965" style="stop-color:#B4B4B4"/> <stop offset="1" style="stop-color:#B3B3B3"/> </linearGradient> <path fill="url(#SVGID_5_)" d="M19.625,23.613c10.839,0,19.625-1.875,19.625-4.188l-1.229-2c0,2.168-8.235,3.926-18.396,3.926 c-9.481,0-17.396-1.959-18.396-3.926l-1.229,2C0,21.738,8.787,23.613,19.625,23.613z"/> <linearGradient id="SVGID_6_" gradientUnits="userSpaceOnUse" x1="371.4297" y1="632" x2="408.2217" y2="632" gradientTransform="matrix(1 0 0 1 -370.2002 -614.5742)"> <stop offset="0" style="stop-color:#C9C9C9"/> <stop offset="1" style="stop-color:#808080"/> </linearGradient> <ellipse fill="url(#SVGID_6_)" cx="19.625" cy="17.426" rx="18.396" ry="3.926"/> <linearGradient id="SVGID_7_" gradientUnits="userSpaceOnUse" x1="370.2002" y1="627.5938" x2="409.4502" y2="627.5938" gradientTransform="matrix(1 0 0 1 -370.2002 -614.5742)"> <stop offset="0" style="stop-color:#4D4D4D"/> <stop offset="0.0558" style="stop-color:#5F5F5F"/> <stop offset="0.2103" style="stop-color:#8D8D8D"/> <stop offset="0.3479" style="stop-color:#AEAEAE"/> <stop offset="0.4623" style="stop-color:#C2C2C2"/> <stop offset="0.5394" style="stop-color:#C9C9C9"/> <stop offset="0.6247" style="stop-color:#C5C5C5"/> <stop offset="0.7072" style="stop-color:#BABABA"/> <stop offset="0.7885" style="stop-color:#A6A6A6"/> <stop offset="0.869" style="stop-color:#8B8B8B"/> <stop offset="0.9484" style="stop-color:#686868"/> <stop offset="1" style="stop-color:#4D4D4D"/> </linearGradient> <path fill="url(#SVGID_7_)" d="M19.625,10.113C8.787,10.113,0,8.238,0,5.925v10c0,2.313,8.787,4.188,19.625,4.188 c10.839,0,19.625-1.875,19.625-4.188v-10C39.25,8.238,30.464,10.113,19.625,10.113z"/> <linearGradient id="SVGID_8_" gradientUnits="userSpaceOnUse" x1="370.2002" y1="621.5938" x2="409.4502" y2="621.5938" gradientTransform="matrix(1 0 0 1 -370.2002 -614.5742)"> <stop offset="0" style="stop-color:#B3B3B3"/> <stop offset="0.0171" style="stop-color:#B6B6B6"/> <stop offset="0.235" style="stop-color:#D7D7D7"/> <stop offset="0.4168" style="stop-color:#EBEBEB"/> <stop offset="0.5394" style="stop-color:#F2F2F2"/> <stop offset="0.6579" style="stop-color:#EEEEEE"/> <stop offset="0.7724" style="stop-color:#E3E3E3"/> <stop offset="0.8853" style="stop-color:#CFCFCF"/> <stop offset="0.9965" style="stop-color:#B4B4B4"/> <stop offset="1" style="stop-color:#B3B3B3"/> </linearGradient> <path fill="url(#SVGID_8_)" d="M19.625,10.113c10.839,0,19.625-1.875,19.625-4.188l-1.229-2c0,2.168-8.235,3.926-18.396,3.926 c-9.481,0-17.396-1.959-18.396-3.926L0,5.925C0,8.238,8.787,10.113,19.625,10.113z"/> <linearGradient id="SVGID_9_" gradientUnits="userSpaceOnUse" x1="371.4297" y1="618.5" x2="408.2217" y2="618.5" gradientTransform="matrix(1 0 0 1 -370.2002 -614.5742)"> <stop offset="0" style="stop-color:#C9C9C9"/> <stop offset="1" style="stop-color:#808080"/> </linearGradient> <ellipse fill="url(#SVGID_9_)" cx="19.625" cy="3.926" rx="18.396" ry="3.926"/> <path opacity="0.24" fill="#FFFFFF" enable-background="new " d="M31.291,46.792c0,0-4.313,0.578-7.249,0.694 C20.917,47.613,15,47.613,15,47.613l-2.443-10.279l-0.119-2.283l-1.231-1.842L9.789,23.024l-0.082-0.119L9.3,20.715l-1.45-1.44 L5.329,8.793c0,0,5.296,0.882,7.234,1.07s8.375,0.25,8.375,0.25l3,9.875l-0.25,1.313l1.063,2.168l2.312,9.644l-0.375,1.875 l1.627,2.193L31.291,46.792z"/> </svg> <?xml version="1.0" encoding="utf-8"?> <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="41px" height="48px" viewBox="-0.875 -0.887 41 48" enable-background="new -0.875 -0.887 41 48" xml:space="preserve"> <defs> </defs> <linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="642.8008" y1="-979.1445" x2="682.0508" y2="-979.1445" gradientTransform="matrix(1 0 0 -1 -642.8008 -939.4756)"> <stop offset="0" style="stop-color:#3C89C9"/> <stop offset="0.1482" style="stop-color:#60A6DD"/> <stop offset="0.3113" style="stop-color:#81C1F0"/> <stop offset="0.4476" style="stop-color:#95D1FB"/> <stop offset="0.5394" style="stop-color:#9CD7FF"/> <stop offset="0.636" style="stop-color:#98D4FD"/> <stop offset="0.7293" style="stop-color:#8DCAF6"/> <stop offset="0.8214" style="stop-color:#79BBEB"/> <stop offset="0.912" style="stop-color:#5EA5DC"/> <stop offset="1" style="stop-color:#3C89C9"/> </linearGradient> <path fill="url(#SVGID_1_)" d="M19.625,36.763C8.787,36.763,0,34.888,0,32.575v10c0,2.313,8.787,4.188,19.625,4.188 c10.839,0,19.625-1.875,19.625-4.188v-10C39.25,34.888,30.464,36.763,19.625,36.763z"/> <linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="642.8008" y1="-973.1445" x2="682.0508" y2="-973.1445" gradientTransform="matrix(1 0 0 -1 -642.8008 -939.4756)"> <stop offset="0" style="stop-color:#9CD7FF"/> <stop offset="0.0039" style="stop-color:#9DD7FF"/> <stop offset="0.2273" style="stop-color:#BDE5FF"/> <stop offset="0.4138" style="stop-color:#D1EEFF"/> <stop offset="0.5394" style="stop-color:#D9F1FF"/> <stop offset="0.6155" style="stop-color:#D5EFFE"/> <stop offset="0.6891" style="stop-color:#C9E7FA"/> <stop offset="0.7617" style="stop-color:#B6DAF3"/> <stop offset="0.8337" style="stop-color:#9AC8EA"/> <stop offset="0.9052" style="stop-color:#77B0DD"/> <stop offset="0.9754" style="stop-color:#4D94CF"/> <stop offset="1" style="stop-color:#3C89C9"/> </linearGradient> <path fill="url(#SVGID_2_)" d="M19.625,36.763c10.839,0,19.625-1.875,19.625-4.188l-1.229-2c0,2.168-8.235,3.927-18.396,3.927 c-9.481,0-17.396-1.959-18.396-3.927l-1.229,2C0,34.888,8.787,36.763,19.625,36.763z"/> <path fill="#3C89C9" d="M19.625,26.468c10.16,0,19.625,2.775,19.625,2.775c-0.375,2.721-5.367,5.438-19.554,5.438 c-12.125,0-18.467-2.484-19.541-4.918C-0.127,29.125,9.465,26.468,19.625,26.468z"/> <linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="642.8008" y1="-965.6948" x2="682.0508" y2="-965.6948" gradientTransform="matrix(1 0 0 -1 -642.8008 -939.4756)"> <stop offset="0" style="stop-color:#3C89C9"/> <stop offset="0.1482" style="stop-color:#60A6DD"/> <stop offset="0.3113" style="stop-color:#81C1F0"/> <stop offset="0.4476" style="stop-color:#95D1FB"/> <stop offset="0.5394" style="stop-color:#9CD7FF"/> <stop offset="0.636" style="stop-color:#98D4FD"/> <stop offset="0.7293" style="stop-color:#8DCAF6"/> <stop offset="0.8214" style="stop-color:#79BBEB"/> <stop offset="0.912" style="stop-color:#5EA5DC"/> <stop offset="1" style="stop-color:#3C89C9"/> </linearGradient> <path fill="url(#SVGID_3_)" d="M19.625,23.313C8.787,23.313,0,21.438,0,19.125v10c0,2.313,8.787,4.188,19.625,4.188 c10.839,0,19.625-1.875,19.625-4.188v-10C39.25,21.438,30.464,23.313,19.625,23.313z"/> <linearGradient id="SVGID_4_" gradientUnits="userSpaceOnUse" x1="642.8008" y1="-959.6948" x2="682.0508" y2="-959.6948" gradientTransform="matrix(1 0 0 -1 -642.8008 -939.4756)"> <stop offset="0" style="stop-color:#9CD7FF"/> <stop offset="0.0039" style="stop-color:#9DD7FF"/> <stop offset="0.2273" style="stop-color:#BDE5FF"/> <stop offset="0.4138" style="stop-color:#D1EEFF"/> <stop offset="0.5394" style="stop-color:#D9F1FF"/> <stop offset="0.6155" style="stop-color:#D5EFFE"/> <stop offset="0.6891" style="stop-color:#C9E7FA"/> <stop offset="0.7617" style="stop-color:#B6DAF3"/> <stop offset="0.8337" style="stop-color:#9AC8EA"/> <stop offset="0.9052" style="stop-color:#77B0DD"/> <stop offset="0.9754" style="stop-color:#4D94CF"/> <stop offset="1" style="stop-color:#3C89C9"/> </linearGradient> <path fill="url(#SVGID_4_)" d="M19.625,23.313c10.839,0,19.625-1.875,19.625-4.188l-1.229-2c0,2.168-8.235,3.926-18.396,3.926 c-9.481,0-17.396-1.959-18.396-3.926l-1.229,2C0,21.438,8.787,23.313,19.625,23.313z"/> <path fill="#3C89C9" d="M19.476,13.019c10.161,0,19.625,2.775,19.625,2.775c-0.375,2.721-5.367,5.438-19.555,5.438 c-12.125,0-18.467-2.485-19.541-4.918C-0.277,15.674,9.316,13.019,19.476,13.019z"/> <linearGradient id="SVGID_5_" gradientUnits="userSpaceOnUse" x1="642.8008" y1="-952.4946" x2="682.0508" y2="-952.4946" gradientTransform="matrix(1 0 0 -1 -642.8008 -939.4756)"> <stop offset="0" style="stop-color:#3C89C9"/> <stop offset="0.1482" style="stop-color:#60A6DD"/> <stop offset="0.3113" style="stop-color:#81C1F0"/> <stop offset="0.4476" style="stop-color:#95D1FB"/> <stop offset="0.5394" style="stop-color:#9CD7FF"/> <stop offset="0.636" style="stop-color:#98D4FD"/> <stop offset="0.7293" style="stop-color:#8DCAF6"/> <stop offset="0.8214" style="stop-color:#79BBEB"/> <stop offset="0.912" style="stop-color:#5EA5DC"/> <stop offset="1" style="stop-color:#3C89C9"/> </linearGradient> <path fill="url(#SVGID_5_)" d="M19.625,10.113C8.787,10.113,0,8.238,0,5.925v10c0,2.313,8.787,4.188,19.625,4.188 c10.839,0,19.625-1.875,19.625-4.188v-10C39.25,8.238,30.464,10.113,19.625,10.113z"/> <linearGradient id="SVGID_6_" gradientUnits="userSpaceOnUse" x1="642.8008" y1="-946.4946" x2="682.0508" y2="-946.4946" gradientTransform="matrix(1 0 0 -1 -642.8008 -939.4756)"> <stop offset="0" style="stop-color:#9CD7FF"/> <stop offset="0.0039" style="stop-color:#9DD7FF"/> <stop offset="0.2273" style="stop-color:#BDE5FF"/> <stop offset="0.4138" style="stop-color:#D1EEFF"/> <stop offset="0.5394" style="stop-color:#D9F1FF"/> <stop offset="0.6155" style="stop-color:#D5EFFE"/> <stop offset="0.6891" style="stop-color:#C9E7FA"/> <stop offset="0.7617" style="stop-color:#B6DAF3"/> <stop offset="0.8337" style="stop-color:#9AC8EA"/> <stop offset="0.9052" style="stop-color:#77B0DD"/> <stop offset="0.9754" style="stop-color:#4D94CF"/> <stop offset="1" style="stop-color:#3C89C9"/> </linearGradient> <path fill="url(#SVGID_6_)" d="M19.625,10.113c10.839,0,19.625-1.875,19.625-4.188l-1.229-2c0,2.168-8.235,3.926-18.396,3.926 c-9.481,0-17.396-1.959-18.396-3.926L0,5.925C0,8.238,8.787,10.113,19.625,10.113z"/> <linearGradient id="SVGID_7_" gradientUnits="userSpaceOnUse" x1="644.0293" y1="-943.4014" x2="680.8223" y2="-943.4014" gradientTransform="matrix(1 0 0 -1 -642.8008 -939.4756)"> <stop offset="0" style="stop-color:#9CD7FF"/> <stop offset="1" style="stop-color:#3C89C9"/> </linearGradient> <ellipse fill="url(#SVGID_7_)" cx="19.625" cy="3.926" rx="18.396" ry="3.926"/> <path opacity="0.24" fill="#FFFFFF" enable-background="new " d="M31.04,45.982c0,0-4.354,0.664-7.29,0.781 c-3.125,0.125-8.952,0-8.952,0l-2.384-10.292l0.044-2.108l-1.251-1.154L9.789,23.024l-0.082-0.119L9.5,20.529l-1.65-1.254 L5.329,8.793c0,0,4.213,0.903,7.234,1.07s8.375,0.25,8.375,0.25l3,9.875l-0.25,1.313l1.063,2.168l2.312,9.645l-0.521,1.416 l1.46,1.834L31.04,45.982z"/> </svg> nova-17.0.13/doc/source/_static/images/rpc-flow-1.svg0000664000175000017500000010610213556316250022226 0ustar zuulzuul00000000000000 Page-1 Rounded rectangle ATM switch name: control_exchange (type: topic) Sheet.3 Sheet.4 Sheet.5 Sheet.6 Sheet.7 Sheet.8 name: control_exchange(type: topic) Sheet.9 Rectangle Rectangle.10 Rectangle.11 Rectangle.12 Rectangle.13 Rectangle.14 Rectangle.15 Sheet.17 Rectangle Rectangle.10 Rectangle.11 Rectangle.12 Rectangle.13 Rectangle.14 Rectangle.15 Sheet.25 Sheet.26 key: topic key: topic Sheet.27 key: topic.host key: topic.host Sheet.28 Rectangle Topic Consumer Topic Consumer Rectangle.30 Topic Consumer Topic Consumer Sheet.31 Sheet.32 Sheet.33 Rectangle.34 Rectangle.35 Direct Publisher DirectPublisher Sheet.36 Worker (e.g. compute) Worker(e.g. compute) ATM switch.37 name: msg_id (type: direct) Sheet.38 Sheet.39 Sheet.40 Sheet.41 Sheet.42 Sheet.43 name: msg_id(type: direct) Sheet.44 Rectangle Rectangle.10 Rectangle.11 Rectangle.12 Rectangle.13 Rectangle.14 Rectangle.15 Sheet.52 key: msg_id key: msg_id Sheet.53 Sheet.54 Rectangle.57 Rectangle.56 Direct Consumer DirectConsumer Sheet.57 Invoker (e.g. api) Invoker(e.g. api) Rectangle.55 Topic Publisher Topic Publisher Sheet.59 Sheet.60 Sheet.61 RabbitMQ Node RabbitMQ Node Sheet.62 Sheet.64 rpc.call (topic.host) rpc.call(topic.host) Sheet.63 Sheet.66 Sheet.67 Sheet.68 nova-17.0.13/doc/source/_static/images/rpc-arch.png0000664000175000017500000006410213556316250022026 0ustar zuulzuul00000000000000PNG  IHDRp HsRGB@} pHYs+tEXtSoftwareMicrosoft Office5qgIDATx \gy9g3q[j[ Xhq()X)ϴ~=:3mVqhV9xTy2^)Ea| #p)SK43:v Y9KH0wo{[?sU}~~o@vT \*!9 Ge#qUm, q }}ΛgtwY׽o@XɖF.ʶ[s+n^-;uWnhxbV>Mk6u9' N@ל7lt̗-'e#p鶹J!p&py\[n nWv} Z_+e+ufzC p \kdӆDo2 3K`N|7ls8FuI{+7nSx^9[k~@#p5뮹~n>KDޥ%iUӿy˹m̻eV p~pL[$Nn p p@ΥYuT>bs屺)7xJ^K[Usuݪ{_* n w9nI LMU@U_"U&V'dZ`KBDdE 7ɀҎLiI'p@'peI+bg[mGs@% \'py ѼymZR*N˜@8f89 W+rfDlۦZuͤwv\xWp2U蜛ULĭ2 nl\~p0ǁ&˾yt+pGۛ}g?W̞<8@8@=j-Q:ArU?Շ[g p T}"CT^(z~  p@յ@1_[ p{@-zV1UL"ކ#pR%ai8 pRU'a zi.S8@*:^}z p A7˻i p7WΛ6c#ru 1ۙ p{muM6, p}K;-o~7Ьey(]y啟߼yM6u#MlܸBaEٲe˅e{݈e?VN @zg۫_պ|辞Y۽5eNc{ ԓߖ^#Cx6}fVk>}K'}ǚA-2(/N$\2"m"[ܿ7i]DD$:vׯ4?~y8Ν;|'Zrk׮g4z'4 "6rOiYN4+p"\d_\+%Ѭ_8vX+5 /Id[oȨDgff>&QEN&f;ԗZr8yԏOY^ "q"t C{qD٤?Y$n?Vx3g&Bڽ$xѦD/YEf9`ed5|aJ4<ۥitff{ed+++S!mq,,ѹ 6|5$i8?9+^ \L 5"p i$VH&Qϛm 5u"pC8)#3%ږihfƍ;33+t0i'DD,Ҭj3 pC8I*#He$|#- LӼn!mذᖫ&e鸼$m۶F"w.pMdJR4m8҈ pm.˽okv…|gɈLKRK'y_G;xky,p~G$Ft2G~kuLC:8 oSO=o^'"^{G-4'9 C qeQ%pRtΝߑ/p"k?pGuz;8oh2 \;KIKS9an@`lN*(IxE^D>O~Z%J"`"Pmּ뮻ɖlKǮ#O8(p|'}{ُ/p;ɶ*~տΗemn$d*iFC8)%B'5$tiN|}INEeEt/>*hNoX񿇼~NU>w_]W?틧ø(\q!p C^L8۔ (Ӵ Q#=&LY_"W*p?X+ UwwmfڿIh]Y}I9WnýkEnx厛>!T0q*]`dw{m& )P,$PYKfm3 *E| nq/I["0'&IM@8nLNRsܟ>ſ ?Kj^s5gu4 NrW|;Y6 ZT&oe]F>ڪv?ML.#?wDDeLC8Pꫯڇ>u}x%ͪ"pqA^w[n&&pZo>ڣVn|9:"HVd2Mee85]G  mтvK]F~|}wҮ~+eV#۶mDZ^2[ٴiol (p*T6zr F+оty.9m7q7odPXo\o/i.ݵk׳ҿ0{*pފȑ/V>2ҸmHPB?,GD佢Q9v@&Ñe˖;\YY^裏6_>i&붏  pU"cڟL3-IGT"/mIA86;;333ۿ.ٳڦS+|Y8ی*BMPjI?7`#A'E?!Y@Ñ㒈]c=6u9IA6I0= gY1d-fNѮpFʺ2@͛(͆RjRs{= ]tыGI`"Niis BF V"pMj\m:YF[v/!p=TvHmOU*J:{MqܹL[#G{KXS}D̀)Q.jd<4iδD4凊.7wkojeIKyt^~/ wC:{lNSqGDHF "K0^ܫ|i %.97rH~ 8bO+5,8@Oщ%AIK/ȔE#y"ocƍ?KsE{pߋDDbǢ pT \*;I*8ynZ}^t[lމV%W>o[},[G88Fi81Ras2VM Y[u(鲡&T'sx{ߗiYÅW`Qp \vC8@{INiڌUEyiщޢ׬}hBE8@`.ois(N'%h?~NnW$:"0U'$r$B*aÎ Ҳˋ2)(F%mwF88@C@*@88fd~^@18M+h=AU/IL#7-' F88^ $ -KWy!-B8@"oEɼ4d CN^͗VOV lKk2)VkW~J}8,,F^!pPNu ҈H/,cבZ|^dL[ѓ:WvlQ{ݞJLSe}9D8Pi\ؠͬPDOh//u:WHTL5Gnr p-^ɰSe5jהvg?/+g*zU|c+p*AI͇$ p p8mT4Gr"EVO~6XN4=lDC8  p pS#p[_~ |7{CC8mx)y%N<98@88@8@8@C8@8Bo} rȮ/8@8@ƙNn]E`[:Z0wח8#(E4.(`Q]Ku[K>!\X͸9'ry..nl!7n+=3\}N͵uwmo+v'!p#*޴~>(镈^Q7h{wuf*!v?>ќT~;"q~,>r躪F!p.VMs9#m }IXAY uULd~FT("p!pOv_Y$nNVąXK/яrG:9بX}YIeY[nL)y*&bWw&C8@5ڇc/ymjΛVH#p'oU|ZUrQ5g}e'e8õMWqb`6ֽ抁\4mO/Bt p7>ק^hom>_|8w$>TupYv?7ѷ{ K&nIB94}@%#y(UmjU~o6@%.%`=0m]Wn14mޔܳL{?g!p I{aLCk˵'8Oa+plN8K2_85B^@D$fT^!p!p@q-H!p7zH Vd62CR6(%&&ͨڔ*5!p_5nڌM2}%/\&ӉQ]G%ǹ #8C\jMYVݘ*unN.H3"}ߤG8CF=D`YĹ*SN ,WbޫĐY_$ \`4\s/P8@8.k0ebaJej U3F :u]}As w'7绻kG߿3_U/I+z!p-vFiIX%_gmfJeB hVtpe?3rkK7\>/V`5w GW%&Q7i: !pHwвYm/H['` ߤ>pKȽُf^Pm:#pZ'ͧ0ivg=0=5mЭMAETڤߛD$H/8@8?\޳\ 0NW4P .p \ tX'pF?\M/:^ZJKGф!p7뀤0^n 93d"knE~]n[Ծmf=1^moe+__ovN8@xy>CC\*.iK0_u@E|gZN7%))8i T7K?88nn2'TL9MsUf7ɼ38[ӑ&TCv 6%z@FμnM/j8#y p\ّؗQ!p]cΘݫyNw|g4ij?MK=d9"9N1 ppz8M#"zM!pgvlnv pЗKӈhTȀ!pK$n;%pZUp*s!p\q-Aj'HN襤ŞD8TN"nkŞg 8HEN8s78kځ=KG9NJC8SH  Bഘ ͨA !pd }K2 p!pC^@`(gn!p\Qqn8&#Ry!pK{ p0pc*!p\_4I{ B C8NqN8; C8|&i/ p0XKMQ2 8@8 K{s8@8I{Cːg( p\F!peH(-pg+#=} :#i/ pq'ه'#CǾt_s۫_N}7qGs.wi I{C8h{-Y&&BҒ8_"p.iiJfϱ&??Z}0M"u<[o ܑ2'p$m/,w&m#ozs)?ҝw4Y8;-&Gܴ)5Ko=i굛e~/} 8䤥TYri~"y{ byڟ9w'#{N8NxC8DZG&VtsS|'DN?=KGA8!q8‰O Y8^$E8!q8 騒s(!pC#pS!prHڋ!pC#S!p6sBw<8=7'ed@Zfڐ4 Z 3fg7~~מ"25.ud8!q8m*6o/$GG8!űMexMC^/BhNI-g>B\wHdE4q> 8|AhN4x=\+Y&!pAn*eM)ZEc/&GN8c!pm\nZ"p pMn`By ceEhB 5q|p؄:M%85Mj}m$pc/ѵ2=)g^U=T\)amho{8ܚ/`~6v8;cn"cZbIͮyzqY֗8%)C$uȴ<385UEl3vG'Ix;=w FT-є5^3sQysЭSX0f4%?Jcs}]G?xg=pxi}w.E!p5iuhSmNS;7kg?7>֍S+h.$#p]nx˭."nP~tQ \hQ^q+ѫLkȱ1;:Y+\c]tAC8n v/nJ?ZOG|نVY}mC b6`f`ќJf;%nzNj%Jq;n|9^Cw'|I~w>̍{K$`c-p˧N)Rg+ _DRJF&T=4ݧD⒍m٨8]?TTM]7 ,8[0 70ȼ<.pI&{ jXϻ>:&C*IQ~pi' =v3MxY~EX_ܠFZyMV\Ɋ ڞ~TtZ{j.i7d>[i+/yilBO/6 7QgC=HRG$1lG.t3& K8˻6Q9<5MoH4 kO'?hD'.  _)/˽{6&hGM 9!\j 7Z4{sSFɛ]= \^ q֎1Vgf#֎#)'&vΗa$$=$ä"8}3FB{l4=_CWX~ŏN?\wMUݼm:Pň2.cCCAͺi$mGNE"JO}j2/&%M[KZ5Z 'fIzh]j%)6{.kIe_n˖󣽡h} @F"pClBuIMX>OBQ4tqY"նoM9% 5}jGAH \:ǹ8:Bk7W;6@/^ky5t}k.A4Ku¯Gg`;%pk"PRӈu칦sPkz[)ϵӈlٲiW2^JV K7ȒY!p}( T;SqM~"P h}ŴSd/5o{sE71d_I()AJ!}#ceͩr~K42Y;6mܱ{MȡLIe\ۚ^Y1 M |nu lbP\oB6RPs?tNjtzct?Cǰ} i)Nsv 3gW$p"#p f "p_#6!*~Iuա=iKLisD- F[?+NEfԁK78/I2)O85߱=)GD$č"Ljw؅dI>rX:(AaN4!$R p4C 鹥N8ӇͥX^lr(>oR)PscoSih6srIlS$5}gG&vJ8V=?A/pXz/t"ycr!p pCS4 дM 1G*IC NK)-=*Eo~6 &ˮ:{ pU3i^$%ErmʵzٶowF`h7L[1{@H oC:9^{j@7h:$NqcMu.n8 bP#!p9j"uE".x!p p,KsRk IjlWN /͸}u"pMY?IBe۽J*<8='p˒,4'[^#wv]nٚ~6N$p~~^j(#pC#pc)p:9%2Vp9SJZ4T*Uv%+O~Ύ:Wi ?G+lY>zqc!p)˵'v]ۋ%7qv'+Ez!t_!S1Gk%#8!q8PG)pK!p{=^{ٗ8'#G8X rT5P;=^.'\rT-&tϒi3h鶚K\ŕq:^8%7M1gRO :+TCٗ3iZ}8!q8QS*[n"NQ;}٬iH:8+uݗ?AL/<8=7K}Hj8/89.]M`:˝+nn :x9(J4"pKrjϱf&dt_qPrILkx厛>>G? :? C8sx87 .'ܹI.p}}GNm_<OC8w&ۑ]F/t"V.p:y9םǞB8[NCk{%/ pMMpҜ!p/ps+.!( pH{ght5nj7*;}͋.!i2%-U4=ѽ,i e{ρIõ~C 86߄1g 7ZK?C8J8;\; -< p7'ͫړT~er!p!p!pA'H!p!p8y3C8@;OʨT8CC#p˒C8@+pC8@\\]=!5R8@8C8.+TqC8C2"p.'ܹI(p!pMh+p85_C8! RmGtΞᜁn8C8=#"y!p .;wPR9oC8oeDNJNI+ppB󩧞 !p%Eͻo^}#p!pIݵؗs8n$6^dC8k{p!p7=\;"p!p\FN[99C*pZ5=!p@q8}}ӟnEgy4"!p2wv z<97Tѧ|>8qC8D^*pBN8@ DBR!puY[y78CpKy|8nh8|8C>Sι7pm/7Ji!pu}/G<7p MIE97pӺ6&B8n=G|I88Cz:q> \$&i*!p=.'9  E%?%'Є!p|4  p.r3S!psiIy!p p8)%8C"p2Uj5C8.5;9 7ț: "tRJ C8~,b? p@ΎFѧ"sA8󼾻wr -@ ܉'V+3ڨ!p6 pܘ DDz-99kG/@TN1< b@8K9'7 3w00o* RZ>!p@nF#\y啟߼yM6>7} Š[7oٲ傿e]l_9cZNFJ7k]}G8Cz>ˈT1ȬEK 1331.K/G*[z{m>-8}@Ξ?}A'?'ᵯ}"yߎNFl4/8}1 C8.\ 2!p"<lr/ȚҭGoٳǏ_kwDJ'El C8K 8`,E܈}O<^+++wnݺLC!p p-p.'9iN圃\.{[ltN:gle~ ۔biH⾙ Cos˜smذo{yE[iwĉ־5tƿ뮻n:yIF$C8@_$ᜃTNFJn߾z]gO&#'m-MgH[GyH@&_9ZrAj'?|TNNOSaבmؔv<ɲ2]~R%?]]_hX7F@88)%8 ^۶lrxR􏋋hYђyϙ|yt;S>%MLҧMiTqWfY8i%S%M"1Q#v?>coMm''$p{h(N% FgDb(jh+Kj%}6mWc+RC , \*x3{jie 9[ ,X'LW[_"^ *0i Q]UHJ6v"p=x0Μ9TMkN埡Y{GDÊXGT#i Uqϲ^rބۄڍ٨,/͠@麡"~tivW۾vJc*M4\or=5] ~2M8nNkA%L{5o:UmTt_ĹfčZA,C8FFo'H mSdsѰ_>|ͫ LTn"p pFj;$3gaBb?\J΍lU}fN#p  `@90l[pѪbH.h{BWksfCN _!_7=?҃!pr= ]CZyLҊʵrwm$o8䄻M0VpQ p!p^""z~0d!L~.jC&V91|Y?si=lʀWJ`F8`:سT=\} ps*޴F(Ȁ_BC&õ=!p8|V>0ꕽ*xӋ*1)s#{cwߪI[rIx~ {[hBOyh pc#p/_eN8n:PKF*Fƴ"&-!V4/M;Vn(8}yߵn=,7~\B%D:#D$!pEom#I m.gWer~=++yR;MpKѵsC%m!Q*y͐K WFLkAD81vSInzMkZ-f]ҡSw1Aw(֯k-W?p,K^85r$2eU쳑$On[ŀ)cdۊr@?!p*)&S`}7iF iM )@qC8 #p]CCFD8 #-vDKЈPzaK`3"r.an +g3]Mo. W\knre?ݚ'?݇08D~E}`:@Q;,׎uMpq ܺT^z7 foa/Fz\ Y i{>x& :¢W̾`*鶶iTCuL%[!nX~KKtT~tэLjɖ`k{w/מ@.gZ px=$'u*qO⋝\ޥյ*L\;" p\ZWtѰ7=Xʦ1T;9 Y p\KrM!p!,j{׊dõ=!p@V%7 pA2Hu@[팮.oI _҆ pxmCzKRvWf9+.j48 #@^#`TimTVk2_3mƑɢM\|?8I@*2*p~Ky侥?Mi_I؛ E\ݒWdWLbޒMŅ&u˗#u?*脳A_k_D3;ŗ]/BCG{Cs۫_7qGDN[/qU'Fk}"勞^qrXtSWt4B\g;|>O4b !}l}UZR'dµ,C\ƒF#_dɫaZJhYhKhUJlǟ^ @,r ܧ!pܿ/Vd̓eykeBӺn'l3MJjy'K5} g=fڼ[?ׅ8@ 8 .Y(֏?[)e5z=ѓn :VBr& :_ewM]'\ ڢ67秊=yf'oz͛gE p0Q{j" șHO͎"jg<=0]F$LI5g?vN'-#h4yr6gϘռFE7dRZylgA G͈)tU/O4O}="4"d6Y i+.2$Z:Me+6jnNӁz]ƒ\ p@H8'oʏw'=*IF▵"'k.VDԴ֧iM.{Y2U[G p}kxN%ITZn?}s}FΏMGFJ1˭ۏC#|kh<jB{8~MqҴګte pN/מ |(uNH>[)ҦJګUrfQ$gbuVNu`0HI8DoXJ *V*Gqԋv/2HU3q۝h9̴I b@8N%=1WRDlXR34CJ3O+qq42'ےmE |Yn(.~IJ,֢Il|ش !pɸ (sD(B7d)o=]+Y3yBhrUL~K[{ V ~t݊Nfy}ُ-gߨ/ p\ % 1 RrL%Z*:TwjEtb pyj-_ "QrHڤ91t*p1 杘j4ڊ%]\y>%BǤ~?`k/>k1.Egͩ +yNi m Hu"p%;xҴlL4[ݿ0B}5eUL_ӄ`G2&CElM8y:?:'1{~f+ !pU#ju#ꁁeoz$팋pi$oeJ&4[>4ɵ-?biHFMAI71|-xK5@:,l3Utb4I!& p5aOqvZd7qkJJV?h7 >.޼Ri[ެIDͭR;"LCH`puN;)iSMC/[\̀B׶|ݦFBQ=]&TP/0x봫ڍ:uH8_hqDGʶ{T.3f _i^nG>ډ b%UY22M뚪 ٮz}::O+Ifa{j?_ه~^ !p0T\(b'pzz>|R3 0Xay9SJZ%R:aD"pON#zf[XvL6]ͯw7.^\ oFv҄$I%WnIQ? $z%BBbASw&Y ^n'q~t7oƔG}tpM YHiz3{w#pzMvK=~H^ezopnuΛy @I[:r[ v8?YlWgж6ӆEF`0I8'_NuМqOC畴ļyjKbed6nW^[6Yy.|v"76: Ok'\IT V8$È!p0D1M1 BR^e.N~bM5P՝-[>k (SkQ8JfE%]].onFnjqi8mF$e!Tl׍:3#78mfИ^"%/WrQ ̳ͯ"pWiCҬ ^TfXJ ;D"K''"[}N viWN89I7o_ p7eyC`JGp uy]0rVItZ=$Q&lnޭS67om5 FmE3h\#p7ßo?zAo$y:\/oRm7'_e7Nk-SԨٶOW4Ӌ^@z"^*p!pϧrd@Ϧe +.!p%`G|٬2b.=8C`*k%HR?=Ȱ*# p&&[\i|hٸ}pQ7< KM3kn%ifeVs+*2O-*P!pW}*3׈@r7DElNmZC5MUdyM)mO_8`M FTD$7+y5:~mC8ۦSur\HMp~'lZFLK,BԡO-:ge04MZp5F+^\[k/_pڥ bѽ1ZRKrA \R=A]._wQI>! pᇌVTh fS[0^-Y#\gHe\-SCb(Ҥ5-4 p\zurȪi(pu͆)VG|Yo{fl 'pYH6Nde4MQ$ FIW4Q8/Z{[#gG+FCj_9mJ@Cĩt "j2 >P!Sl:*U0.JRu=:;@%ai12`͇:1+(`Gq$^>j~j6Tt 5"78>pc+0xٲ#OYx}+r!Ls8@8ٰeȹ A!p0 pTY~ e+njޤh/+Y4B)O}l#f+es-俜K9 ^b.꼙em-ՆB'gJ}/󾧢"NEWaQmO@8 [:n~/mTU'V4-}?w1f%JDI܂}rZU.H p(J[ɫP7Fl5-YjxߣNO %\MHa@8)._54ڧ%/JsM߹$R\U/ -m.e2=+RX=n0h ̜rk.ЯnMG4& N5Iӯ|'ܢ,8`XXz6Ħ_˙A%AOt|zW5uui~\L/@8Q \tL@lsZ[i޴Jq9,|@8 \3v) px0 8@@^BS$q$p;D`d<8IQSi3IENDB`nova-17.0.13/doc/source/_static/images/rpc-flow-1.png0000664000175000017500000012002613556316250022214 0ustar zuulzuul00000000000000PNG  IHDRYiásRGBgAMA a cHRMz&u0`:pQ< pHYs&?IDATx^ ?pEPWJHb"nqGçDTB *"ʧĨ QED%cHL&1Im=3=<̽oWw_SU P*@T P*@T P*@T P*@T P*@T P*@T g}N۷oFm3Q̶xn+[)G!{84T P* mm}馛}|?1r;Z5e @v7Q^=ˇy7h555QCe\< *@PdžnD1WKW>  <6o~;wf 7VzMxT P*@@eP-|166P zٹ|Դv5T P*@@;v\cF Zllllh+WG;v9ϝ ύ P*@Ȏ=6d?~`6666.ḩb鮭1;kJT MMѥ-ו!llllͷM4bf |T dCF6Gh6666.]RU&]Ґ-gWebӿoZ8+C[m:.6666 r;O|VUOl ^,2fMNj0NȓC1X.&7S| _ ŹeI&fT P*Z'4<h}Fw33~*+@e T P*V7^8e N"iRmQ`.yT T@۶>XtE$FKoY=@lllnnMuhYLړrdTfW?}4m0 L9[mFKjXT P*@,W @dmQ=aKT P hhM'mmQ=]u.%?T $@> CғњGT `llllDlϮ=OQ1eOZK.grDe*@@h磾O`Nx# jyE!F"ˠT  `u ( kdlvEl F@> `"md ,V8z`x4*@@F =2DyxjX^ u{(A@ 6666i :u9N9 Ϩ^DQ6;eP*P4r)DѱKߵ[=աCL뮻s#)_9/QF5L= N/`25휅8 %YW SF$}Pkk/]w\>ǏWs{E]䔿K.jΜ9Ny0uSܦ͜g5֩'` N 3Q*@Z+)Pf>B@K&+ ` X> U(@e66H ` ^lp)JoXa&&I,6,` l޻5uVmm 6@%ֹK |`vW>T dBD פ==<lkXl&z*I%`x$*@r(@"mKQũ`Ū\zj~΢k>;>v!euh%&G lb}|/-_#a(@"mKc'Z9`[n%!X Ib/e=8B)r8hօa>C9U&_Y"GM{QxoXlnXl;ĄG+)i3g{ `3FG\_LwNG9KYiC u A CJ,oll,Pk`y[=a/+y&b?nf7JVs`zX,(˶g/׏KB`c!OSS oL}77*E9/P AN{@lj/ +R᥽aONNXl̨O)2Eaq)@KYK7y x Xv(edzYhzQj^as"'Ӌm⽕j6{" `pX*@GD׎e$K8'B&$N,!L4<#9ݳiEVU"*ٸSz# ɉ‰qd\ d ` 97pl,@ R:N{B'b+ rK[!¶E(|}ӌ~YS T " m/ 66H `F&²(1+[ <6USF` Kا=\XP: .ix^,>TV!mvnցrecK Ј1kk7m#*eZQ&ʐ|?VQlJ#̱ $0Ɉ NW>y|',[x/ {Y7yX7 4'X*W9A@,ʇAl/^&pF{PyL$ vɉ`vǝv"U_W>װ?`5g&&2[[ "l(pP~0><sHX,; vQCd=@Գ>I! !NJLµ|靧1B\h.8[Bm20dX.~/VC&sL@_^?")OnMuܹsziV%c5l Xly`^X+}b?٬+Kk/_'Qs6b{YbЉ2n:_f5Gƽ^BlN |f9~^W_Z.L 0H%zt.%p}?|RZ`4hP)OϭVSΈ^Y̋PO,Ao"jVg_y]_{냊 Wypd?˟^K^foCHfyvR/y>\]|W(,-7So}OX)C`cMyx] JPڵkWuM7zl{U޽K eYVWГK%֧e,<GVB!M@yڰ}k2-+Ʒ*;h&c.s\,ݲu+6N!,:KSz_:tu/{7Ϩ,k3:6g!<6 J^Q `voB_%E߉Gɱfn VR|ئ7ooг> S]` -mn=hQ8W,#کS'u 7իWGLݾ8~5$IL]u&` 9E?,Ҍv9cccc`mlgYs|,l[ظDf]}!`kj@ݙ@Xޠ8#F7xC^5Gj|숑VYr,Ko2E4+<ƕ:GOP9Sc3ks=!K؄*!:ֆ ^Wm~{Yj˱#fh8fxxe^!,:d,s;ҋ/=Xc|lguf jKKZyd`Ye#|a2k^ g dR&.Z֞1uAqƈVhpFaÖ EA5 ` Q.eCYW6lO'xBׯ@` oT;w.,r|l4,_NMMMS'L㐠8`j6o|7~CB6M<[>Kyr2eNuvkypw&e(?ͺ0-028i9,h}G1z~59c&o=8;Z $` X,Ee <럸\uH6QQ9@Lo@10ȋQvC2E7)PjzPy emB|^f} ,Va"(,G?zմin<@Ϫ?uMX?~SuMx,˞8J0 pg{FB|@s9$m(6Ӌ[ 4weJXt%- 8f5!=>SG/H\pBˠ6c)t^NH]pZh0aѣ6lZjU]!=sLէOj)Y, ` 6a_`ˁOMϪYF_ޠyoxXMFJ%vvi'/aaE(gl_ji9ۗS%وfmƎ>裺qƵ{ҩUz\QD%`s֓t6nJքz,f*L!)komӠR]v)o7=ǥL S0zY_ kN%X?)i{+;6'NrYM(A:czV2i V~McA~G{,pPE<&@+chM>+p6]l6M+B,8_Bul^}ݞVZt:=k_׺_޹Ոd٢l{k`c ?|?8qBh&7L m*Ui}>W{fcmw rqb@(<+~V&C۱ iXl-RvK{G=?\}]۶׿ZmV\,XShNX l~(seHHr%؉[US$Ne#ٳgP_)Mjv*+xq;?\T|I]ɠDXg紟 6fVZGuO\+C3^a3Vj>GGqSj-(XLd{LBًLdzq,n֘{Kl{'ڴU+Z1;0v[O<PI,E6fgHu FDѮ(^BӜI[/azZ,,$N2iI1&b(Ij'OP͜;B"c`1h=uu oxٳ:KCM:U}駉>LV?O?.Rl (le=f[Y2 Nv{>)[`3i륇x4.vj,.e`ᕑL)3 與՜^F.Ky8n~XoȌwy%胔rP1Ly*q#ۥI]r%&q1B,X,f&~ bR(f ?k^Ń>H `+[l}bAUk5x| )clSk6h S4@Sk ԬԼhaRX3,Nt CSR͚+[miُ[sT@dW]oT2lX`1 6mxa]ӏ5vpCue)BZz>}ݻ:՛oQ%_y['pLM'zȞQ=.oGNGc+@@v4b,jf?26.2`Y6PȎ! p^s5j 6 v9 ;n8oJX?O>PW]uٳ3fn,B}MqG^x {I 7<Փ|؉nYróJasGʳ}69?֩&:L `M`v\xmLM,Ʊ9 8R+m'zrFS%mYaEK#;!wɘ+Iخ`-ZcȧB|g-,oHou6 @f><.k{c]|X'S$39* `fyϣv"9x6lvI9! p9?mzBWP R gV:&w}j;=&MZ}քZl^HJ]ClcKmaQB<^rG km7l!xTk{zD0Dy_]#bRW=.5%wXFtjTsϩoQ=%,}: /r `}% 7:l0Ld/\O>K%BI7ݦ `ǃYW h.Ab;|E8&62W`su9~2mSH\xM]#t11BI{uPA,p}ꩧu1qSW\qE}#lP t uh:I{EݫJ8!IB o~ҞY<[wʖ !~]wݥ0$,cilKՏVڴ|=Iױǝ:q&K-7U+-3 ^Z$OUM+9~vjY!ZR9x~ͬ?fEVj`]ղN=Ƿf`1#0f6w3br0h E~|W_uޝ[~s`TuI{@8kv;YDL{:PCnnԬY2q輪.eK,\PaJXĉ` ̩ |ro+&YXշ~[]ry-e= u 7WꤣVWn-z"\x^7*[D8`zi>a귖jr^(/x~/d+o_Wc`csqw眣~zjwb‹uy]?6xaO<(;h5iXz<_l /&r lNeoNBXmN@"+0o9H"#)a~+!dIʖr\lC9&dC sT'z`. ZWj/j,ׄ}/}%@I~!P`'( aHXJ `S٧  cõSl6 T  d`1k5& ʨ: 96hmT*`cK 1ʕ+ը#=//'NPC[MK:~D߫N;[>yd V`|Me,,a  P/ꕵ6@fT d@,`PBY]֞؄Jke,$-C1#>*`c^ucZW{3'ք׫/l-{ԀexPuܸq(V1v"v;o,6.ǡ%`'% d`-&0(o VJPl{Rs0m/ z'[Y1<:ýz=X@묣~{UWy XK8&f ɘAy޼y^3^r= ɢ v@dwM 41@ DK:hq\mu_y&lnze+ȏ0`^w9AXWgl.2KXQu`_"bҦFH0†ixⷻᄏٓĽvU=kR`Xjc`W ^I[Hx)ݧErA2> `V,Ac`1v/`++kڳ'BmsgKXV:D&:L `T6,KƸժ !~%/:u^a}hu\U.S/f̘+ 0+/y`A)\/sZ½D6U];Lu : lX,[-RE0rh=t=>o_o&cdXٰc1GP \Cu\"D&:L `T6,KƐ,wq5g!;ݛmsgϮ'N&r_x)`Lt]j ܧ5$:X'QPF%` _c[;"P8eo A`u]^X,V\.o̘1jСjN.`"zT\>`l"<6,K0F :먣:J=c>sjᄏ6hyI{_&zgJK<}-D,Bh"ZTL>׏X'K:2m׮/G1eOQ9j="K%Vkxbc?d{b %KZ,ւuI#>[ >'O5ar.ӳ uM`v?lzEkn׎dFMMMSӭ}IN & 6 #,c.Z#`[&kvt-UW d{s56hmVs;kޚ=&[nEmmCLX3&lz lzE <Յd%`Cy?s`a'% DFAmQ Ɣ! pj0%m2O VсN:Cm.%Wbvߠ5Yz"P=O#}xc|kBMu5^H[/Ν;7t"`ueOMj{Z\"φn赕]o K6m8CYaA,֩s< I\JuW2JgDlo'~gtJ~V<4uV؇5 n>NQ=PݻP.D1%go ]tS~9s>vs᭭@~d-lgd$FMRmh d(Hz?~Ho\,:F=gyt7zc`` 7n,`#|Pa2(oϽD"R##a$x'&kJ`wd$FMRmh \bL:В7vM7U^{4N_.אq~4G?<$XeKM!`-ZW`jP>lF=K'S{>%; 1t\zm"4rԩjžiҤIb9z)-:vTM Ξ=[U>1mOd;HH{ ` 삣TKmma)9d}hS`U,ŀF$@$BnMB{O~ /԰ ̘FpҩgK\yN%`Gb'% `Sr!rR l IpI(,vv:rHhѢRz衇=T] E%lw@: dVXlj;O=JXO?* >LX;s/Ǟc|~H%`jBDZ9QuWp+ !:q-c3KYi/&Fq ΪVTKM=ar]wۣ| kΟ?K;m4/r-jРAxj< ٝxkqݻW/cܔ' vE͙3ǩh0uS{0ԠO;UhW=E[|X~;C(„G7 ӳ{SRVJ%AXlf ALԱc|jƌva "ZtjQk2si4(=HQZ $bx_x,`+Ʒa/+y6p N 3Q+@%f .Tc۴i*+\GH.Xl6v V?Pe,[Z?~fr#QH `3҉b#:vUzt^&))!m!` Y-[%xXl߬9TK4aR=[n{52}.iˤC%`sh]?%X{<+æU6'r2&[yG\O\=oAKHm\C%` ɛihXCXթGG="VEd D/PI֐E>7'63<#9ՠ)WK%`Xl򖂦%I7H)X ե@<+$Q,'t,"ٳrb˕W uyh*!غK:O'Ym XlV ~av%_f! u<+[McOTMiއ[;/C6 x|+p>=+5&6p ` ~kyeWk& i:6Qq 6.?)Q$%W"hiDv%ʎeep!` a˵WvmX+∣쁕tE޻͐{ĥBǥ.-X,@mK~۶m} yy>6ɲjT[ܝ TP^玘gT>)l6V}s٩.Cs?^)/2.]9s8 a6Ե}GB`szE]̉ -ey3؟`k`{myfW^:"최cfdĒZ41/]wA 1k-t~_tHtqM'l&|1t`R(ס [XdQXg#} l=`kR;6U˼؄'ݢ7mC؆e;;%lΩeCg/vcer,f~۰eoX,n..f9ucP-ͲN;_ٯ^(H6#z߾aa ?,]gu`hhKCP=IpTlI}&W= s`/6;jO$[l Ap.+0[I󵽺c;ز]gMn ݐl uu ZkOkz!c 3ܳ(9r|Am/7kn󋜲˗')yUR>g-l\~R6%"'@ ?_(;?fg 5y3T:U̐S@]FGǬ ?`K^U RtGlkQ F*aQ@K&ZONvq ն4\sáܾ.לyJ` JQ n zI6/4 `!*/ZK.04엲Ug_AHC4\ԁh1;ZVe9:yclϘ҉TW4e˸]s*3#|MPm28xq,bs68$`iģ@oB' z,x`74J$,4$sOTlB~@3ʸF|WX 5={fDž}e ~G2UfD.!ɘYׄF\(KB]rm85˖I!eH'.0.,Vf/tRGݾ9I$L`^fX˯ I_]Ji)ZJ`LrQ6fXVū߄Dk8ZZ~%dva6K9fÝέs˭Ejau~E9] F=>7:(:Ko3%%cP+"\p#{d#P)@%:r"`g;$ű`\Tnrbx[t%`sfOz:Xbu\1Hok.@~${"'&Ƕqc>R&kdt=Fܟ C,67KJuZ` 032gaBSCŒT ` XF#$B[k<}78Yɤ`ՇP*X,F@a_ux%.x<<*X,F@#` ʤ`3uϲTn ` 9K$݁xŞL#ueM%֭O Xd@ `[,f11@YTZ>hnO?T&yYK=uz^$Z8@IMX4st#G}~_%ݡO?vX`;wD͙3'0~j뭷'eW577;tM"ϥa}3w ` Q,l[ظDf]Ϊj?_*Ph!`Kr xw}4 3X{q^Sw+0ͷU;찓S{mvmwoS>#Lw=(+A%F htqnd2`љG)26X4bsf}#7ܷ9N: vxlXR&'6zV*V xl@%`nlf"fPk~cNMw/W3$Ya%`i2 0WYGʳё~-y9),i1YtuL1ј \j:9ԒqˀϢma)9d}hS|@6wQq/}&q\sj~͸K6/\t`MR`ibP /%.yd:+!1CMϤ{Z ͨ^:q@cO0Y;Y=H$ʶL6U~qQ>c}<灜,F>\ruvꀲ$ïiX,*@^JUIxuV4`Ő4biR?㽖o1 ^-QmUvh]Q"yt%4CʳNj#(7^W.+k2K=L Ica_9>`O֖{qKϢ䥔]5^]WK-9-F.O04=koڍ 6RX{oԣ\x1 6_Au[!ߘSR=96/H.HƫC%`Mxq= ^Q3$_/h3Q,3x|À[,7vHzuʥR¤;ӝr2VQ9xA;#` oXۀ@WՄVs `즷Ƌ0»k$n[ףv'<X'[j5)'3Q`K%>ZDȃY,#$i$X" !MViV_ tۃtl}7@lS(@MϵCM&@ hh*xƷt\/"ꫯzU3g]ۭ[w5GAW `[_@p1pq,X6C4Yg^{5oWLSNU{.l>+U˸ΛqKϢ䥔]5^]WKJhg`Xu=|b\a;*][nXa fRby)eW$e$!` /qypX.=0&`b؃7!I'Kw}j*u:@NTeRjrɌTjL]WKqJe@9JfS 0}Yzʕ+= 6C,„;d&*y)XDs$*wF%^2/UY3_2Jչ&%p=蠃ŋ{epbJ(ǁ>qyQdK Թ8d&*y)XDs4Mkt8s^6<":L `T6=ȠqnC]:aʤwkA#`ix^n{`:u}<Л?[sN뙐Ȝ`LQLe3Pbʮ4:,KeHi0駟V .T\sѣ+\5g;73$c)L<_,Z!:L `T6؅{vS45Ël,4kQi<=묳fmƎ>裺yۯݺuWnӖ)֩ `4х.DTtmrj13`#1uE.Ԋ+26[mm 5m>sjܹꨣb5k5UmŸ]}WfNzCu#Xm`tav [N-L+]h'zЪf;k5 ^-YD=jwVV/_Rt7頃Ju#'uFf(Ѡ}KuenZL%!<$ڞra ,H0Bq6 /Zl0a|~3[o?n kՎ=ZuС=ղ9Ku"ا Ff(Ѡqz`aFNhY0NM,ߝ gXԘeԅ#Gag=20uOv;1/gaPIjX@ !~ǔ,b|,@kbq7|Svi%mll"MDu2Ψ F NS[<Zn6D'LQm߷袋7tQC 'ekN ><0_|(wwT{vʋaZ_S~8~66P `^_1V3g_Z>CJ ۩&jk#+@` l[}L؂XBSAFcgm{ɓ'do[#SO;ep jСNy)L]s"to7tF>|~3^O4D+WT/~;?p[5=j/=~{iso` n`f"'zސr1 _0PrĕXxQキj?MJ' W_}kVu]v'|RkظKKX~[ptd6786{BLK%L9sǏ~aQb<[n^L:T&y"ڟeMtZiYF8eol?` Q֞|VXlZcZO:HuzyW}wۭbx`o7… ՠAڣh"駟ƞx'|R͘1|#`26߷'K'` )5{ yT]!K\s52ط~[&@;{ァ>0ٳլYc.K- 5סɞyG;)PCc;Sc1[cShhvN1]w.zj/+TݺuSƍSΨqߘkV ) 0ŘvKH\pA Vy7|qEhzTK,=9PnB h$NmUuNKXz&"ƼV DOzիzƪV>s\.>uXXlKCm ({x^ u<*#bO?_(õ^(z`遭g+{`yu 7Uf!~)Z|~ k9XLGycbw_o,_sp>Zdzg }w|YfLsFl;L!Ee3fFKI٢# osuJSƍᑕ Dxb<|)o.6K(a|4郺`c Klj<}SCetnf_/-YX\=?ϥY{F>80A(!/"^2:ۭ O3¾])+v[+մcAasǩ<lrI=THm-7xL rcFv#첪ڇmõ^(z`遭g㱃=X,fuZUӞX٦1|x(|wG,^dL淀+f2Lflٻ ۙXۙ;4ɨ?ؾvWÖKM>Ǒ LxEZm6 n{ W\qECѬSsL,=@%s=Տ=2:V&x /k^577:,^]V,b -f6&/;EulM{`ќ? U28[8kL`0Űe~, $lk޸>lN |Zv{ pXz`xl7,bM^xA-[[FcFbxa%wNo&sXYFǜ * [wL t"\?BXn{Υ'ծE@?TVV6Ӌ+b3c;I^8`kki߻kߜ.+y!9'qj}`遥<sO5.IJp[l `NА -JmW[4̚:^D, IO$? %)tOʀVs.:>qi5oݶ>B}skghK߄hbtv=MiF='% 4znB6?G)iڕP▥qZ2dp l|XlF}[jNag)lg>Fcam G(cB죈j8>V{m{oo~*/#J'tTD: lqEt&͂ծcLضE$oYuZ]{e>,FkBME7 m4zc^g=:va)ST{n OcoyeBrwV#< >"D\`1YӱǝzO']ho:c8#0-}K.JqXLi̩v( uYF{TwrK 53ACpe{`Q@<*D5 %KI5V@cnO}Z/E慓& 8&hv]A G՞W=#ӽf7\P0!$f͊ev{ Hf~@_xD;oك%Nb Vxִ` +Mg7X؟~a?w`+٥vbNJV&?=Ys~Z34ﭔyCg־pӸae4es;i_]+C'`[Ծ}o pBi έ^y$NǏW[n:g!AŋYzꙇpS6gĉLĘ燂XXx\`ًὝ={5k1cׯ"%e=Qwbf' v 0'rǹXN䚑vx1% RM\,l[ظDL`1 )7,b? ! ~RDʉ` )~P b,{+.\P=3 PxUWJ+c#9D;K0]OtO:نyF3&rI!xW A@ .kqgf9@+ٹ)!ftvmL /EB[b$D0Wj%DA7Frùx`˅d70|(țrӘgKm,!K,=yqԱ%/G=iU<2:AK4^1 0 5L%` IXaksTMY`a,6ٹoRzL6^JX\$Vbm+Ltxk"dr,}mLcr>oܲy RcӻE,=l<ݕSR bs9`L^vB,to[{cefG}v}`j!WQb} SnY\z`km?sT/qޠ3\።z;3xL픩37t->{챪I-K&[`m]tZ+a'qbX~*}4I8U ٕhC`ـل%"obs GtɜX %M}o V2$|юAWܟK,=9pɘ+Ucz~Ue=Sp^Y%whƛ]WmoW]Lb|]?c0K 3 lP Dl#eiQȋy[f16㶷 ڷu/QנZ`W6yU78O tKlP`oi-[2'yj;vl(y晪^J:dNgFe|9ڸ5XFyD%`T>6V6` --Sy(FXlLjHcRXV[mtRc~U 0/h;Hy=M\66dLgIl3s%tgX,{G` !fq&oWuةw=$O.aHWRƬY<;wnD͓%`uoܐ S+݇Cc3iFɢبˋרgb|l3֎x8u^;b`u]>j&Ϙ1A}rbKUsF3hYg@!?yRKrF!u`(z1>vq7V]wK$N:g)ƾXC m5'k2s!` R9,K%`+}A]!Cr bCwqGջwoή9uF}矌UYS|w dqw} kVJ&b6>#S}Ob3gz Om5IVÄ|X'CK%:*D%` S#FrJ?>'jOG8E5յl׼g ?['冩kpNUNxF}=&tС~xb$o;,Vnu_zKM%`ng"` بdoŋj|j.z=.:Z_kƮu"$q+m` n,td3S/]AVKmiC{C*8q-Ԥ̬zz2Y3/]7[nnP-*kj&?b9t饗M7ݴt!8ݰϣ':Y Xl 6.?)QYףYؔU0! [lYXMs`u˞y?X҆'^i3g{7H>}7cq<X$~_]v٥t c\n֩'`XFL)@- 2:ɵlpU%C{;`asakU۶m=\GzQGy橅 iӦyr K`r7N;+n^4p%:؂۷)9"عbʦ' sX~e6ئ6Šk{I%8K.D-X`t{~SOm5#/X'"R}_Wn)CN-2@Tۨa0eR5nȲ L`4Cf# a=0.CAn P/c6'.ƴBlp)yin-UW db u7~ f8מ={= m|IՍdD td9[-LlN)@c5V`RP&y„F:3hWO F H3 ]2R/9:<:u2^q<(Ko1ҠvS%w-^{ ϟ?_M:X#M4Il06W N}xIdtd994bZ~r6g*ht ~0} 7r[ hխE& ˱2BM/pjlݬ,o3KzmڴQ'|2ed;cK\gϘqlyV P:(@5h0cʱ /H.HƫCm} si)7=W*2Cih+PNJ]q%pXewv1,rΙ]㵋 `3n)YT ` BLa2Қ3%']p6P6@͸gQRʮ/H.HƫC%~F4o+Xs-3)'YW`^NuuN9 +@^ ( ʝ` ,Bl1:Hc`)wr,μf :Ru9N9 +@^ (CnHSX'3$39*@u*lMIʵX,֘6mm 6@uN21XG dQ,Ke`HUu{t*(#:GX'QPF*5Jeѓ666&G:`swIzBغσSx ` d `5P:ؔ]> Z: ~P sF=L0a&z-c&/m嫔:[vx)]ʽΩ6$g7kac P:YeYi<\!N&F/Giװ*Q60 P*v +cy'ּAmIaʼnn)=?tw'a'e|Mx8'*uR''`e ^*6 ]*Hȧ;%xZNOx-\͹s*{~cebxi!T7X/a_%| r̝uǐmm,)rpa_M;2D&v"ʅ}o!#яaP*PAj7\M `0@,XM煰RLXuugoːh9[xd v9AфvDo=&'8,d3IW@5+q02nլ<0dxQ y@`{zz`ۇKe``` `g DPcQS  ՜c QeWʰ!:SgT TP/A`|$ DEB 1`"5Z荠Gmmmm[ ,%RPwt4Zֶmq~\jjp#rOT P)9(jcxmmm5asFgc;)ed ъ%iU&]1<|t.y&0cԕֻ ء7nTo12~Z(cN~cBfI0;1Ca=rN86cHPWoy|f⑮5 s| 6IBRh]0#QNj,5a9;hf#n3Gō$J(׬ B5Ȣ79K Ģa% It9{$@&x@E{醲r^ԡ>2q<_<6aĊ l/}>(+M}ӡ Ûd,Va^Sl͡t0ZU)KhfJ'8 85!֮jY lOL^s"ۀx#]`v:c[KYI{ҩ>С=HPA] V+`2ZE%I|J]cx6OaS˛3, רa-;fWUv_2txzA{v",&J7ؠßuXUĝR\$gGuŎ =,;,E 3F}ze(f<8Dx-iFFN%F+I~KC&bpxH(`M[ۨT_$V }f>^|^J(5GnfWZ?M{fE7جH;E.Cx(@ `Qaإ=-"uOM;a|6l70m\q,F7AkB,SA y`f|['Vn80BM&aĵ< ޱc/ḩi1X| ++@~~]vd+Z< M"=S#foa`gͺӨ vʝK8Gi㧍YI[hwUNnP;ҩc yÌY{ 9aT9?wh⍓E3?&%%@mQ;l5ss6ӛ +6XIJy~}.1:[5+ǐ}Źoh2=4bsbxX&+_2y Y$jM1dB͘YWd\1qƝ:=rɧsL,'|B8hI8cH \s?cI1ܜ0Eډw]רQ f 7n@y[d{tÔ)y,n^?Tmvxd̕0l#7@=u#?2k:\-|1{| =T> 4gd JԞ v;V Gyrؖ@,uَ`˹͖lf8/V43Vǽ³ A`ޤaD #j˱7IvFzZWa΃ym^ml\Z!?S}zcD 2\кm.GƳ LaQdHoaʌ+ohŸ(˥T D@S 8E'.`, P*P'z6:UY*VsfcEwC[1ݧ {ъ^1GT P*@Q L;X!axLbn$?8TǢT P*@T P*@T P*@T P*@T P*@T P*@T P*@T P*@T P*@T P*@fĬXi\ẏSODT P*@@)%,uy֟eO ([9 ,>AL,K1d|rJ'\ʋݨT P*@FF@+jKj!ؕM]SΥ`fQOW~f+=ʍ. o, P*@T P0=Â7@(ҮJ+N~y ƒP,M^m 6]rKuQyT P*@ȼBvb]O$EpXxŻX),X~}P%@#1`d*@T P*@@%d Wp B~h,N~gy`_6 8Ts8=h@.QGW(:+?`ECeV5BrQ~pHnT P*@T +P `l(ȘN'߆#6!$^H? 3cL˘ScHMhϻ̺PNyhtuL5.Wwk?Zü[`%4Zݢ{1AT P*@T P_,\+J .M57˒ c?+k1pi?J1 jX_{WlzM-5?~!2|u2CŇ%T P*@TYs s< RBfz<()Pm' c6t1ߣXYmmv9WW>B)c'Ow:.۠\Q*@T P*@JKRUni9L`]ARH3+^a36 m ٨6hvg?5V4)w [ m% njT P*@T Psd9,V/i{* r". e{/XZ a~\",`yZG8f {рl5CT P*@(M$ڢ شZ[ !A;JwY:*E9rΑ۩T P*@ Txx[.&,03VF偅h8o$ X5k^.;78@2O /Pgc%5F@ J=b3]onkkyubM P*@T P(UZRԘ=gSpr8rk"O]}ʕe ǖ8 Page-1 Box.8 Compute Compute Box.2 Volume Storage VolumeStorage Box Auth Manager Auth Manager Box.4 Cloud Controller CloudController Box.3 API Server API Server Box.6 Object Store ObjectStore Box.7 Node Controller NodeController Dynamic connector Dynamic connector.11 Dynamic connector.12 http http Circle Nova-Manage Nova-Manage Circle.15 Euca2ools Euca2ools Dynamic connector.16 Dynamic connector.17 Sheet.15 Project User Role Network VPN ProjectUserRoleNetworkVPN Sheet.16 VM instance Security group Volume Snapshot VM image IP address... VM instanceSecurity groupVolumeSnapshotVM imageIP addressSSH keyAvailability zone Box.20 Network Controller Network Controller Box.5 Storage Controller Storage Controller Dot & arrow Dot & arrow.14 Dynamic connector.13 Sheet.22 AMQP AMQP Sheet.23 AMQP AMQP Sheet.24 AMQP AMQP Sheet.25 REST REST Sheet.26 local method local method Sheet.27 local method local method Sheet.28 local method local method nova-17.0.13/doc/source/_static/images/rpc-flow-2.png0000664000175000017500000007367213556316250022233 0ustar zuulzuul00000000000000PNG  IHDRWcsRGBgAMA a cHRMz&u0`:pQ< pHYs&?w#IDATx^ $E!CfoA@<("Ȣ0(=,.l31 #8 ( "*SdVFUeUETu]y9OƲj|PPPPPPPPPPPPPPPPPPPPPPPP`p ,v۩fϞ}Zkuc6 `fͺqbbҩ}+(((+ h=rbo1cpЋyq'.3o64l ?8 3>?%l-~~|xu{Ofzq(((c y|!/`eClF;X+ˆX, dfMܿWF c60~6pg*}xkfdۢQp@@@U9*oxv m݀GY:wqΜq-m3@@@3g/y٢ݿx^lmn)6xӥ8 h*~]ț?n<;6 ܳb-|ێfK] d̙kj_+v>_z /3w]6EV!T2o[[_7wW\3MiPJa^[džM45C`["MNmFܒݖoo]hGIPP 3"?&pU2^U̞=mHHADǵ)Ǖ|%l`«ޓ@.(0j 8@6 `M;P/`epD`q1@+6帒 `@u`q1@$`q8l`6p+[bK.B_>eWDw6K<;Ц`؁>r\ P Xe5b{>Q۬Yw޹6;Xtݍ6ڨX*n`ATz7lT7޸2lb酗<;AvM; } @ Š[3޶N*N9"+V&9sԦS#8XhQTZ%dMe˖Ew/tg}.Dh!f# =>D(xCPIͰOWl5 =>D(,3(:mk,a"gm"o@Woh!&l(Xvn`d*SNCB @& G |;X6fqP`XvPOA-XW0|l(XvZϞ`+5ڳE |i^m`siTΑأYRn!.ndV}_p@w0ox Ālˠ @ 0o9~vizɔbw(M`;NA>~i#y Mj`1j (Q?tC1 Q"# {{[+[AW`, _σ*|~jš{rקl,pѯ|-X6نp8{=-|t7cGTZ}ݏC0T!v8ݰ*HP<,uX #rm 0Hi*ES} VitLii=,<]y8*$}g6ƶX4}.Xi9vݔS|'6nU;@`w4zv  6]lٸ:`:;zQ) Kl0u+.UX%iS6_{hR3,X`'EءLg,s[ه5xVj ֑lj4UZyO|譥O-i >5ԒO VJE`>Nv@!r]/G寫y]\+SVOՌ,6DN,XF 2gDOڎcT 5gt`l`V`ʩ}3U.#f*^XEPe~MGbYlp/KZ >`dׇK< [_:]" l]\w;gyYl1yl)lhXucRk)  *{3ܾmU* .mvetF`#}#P  o,60@`a1ljeC4f-a @gm0|Ɇy_Y__Ua=XϏ8relv8߉-i މ(#ƪO]NX`bor;Ϻ*VXQ/̙SN 8bѢEQihM6)-[^u zCGߨ}*)\ݡGXk?y+vgT+Cl6/n[~<#?O[m3=度iS66v"O}vD`31 ;>u=;`؁l҆d6&NYD`g}WݾG֛= y}F.^Hw^*kƆz^5 9`}ē Mz+ !ύ!{ݒ73fhu=jm 1֡`N1u뢬ZNb\ډޯ둼Z7Thk]8QH$j `OVTl5~Xv /)nA \\sbM7?ˮX 2uescu[cWv*j==-|* ^}i+ՑM܂{s&ٲ`pb= XtMSN)f͚:xU' `XV, `Zu w/mU6JuȡizI|_]wÖS?:`&s-?ox+_9 4-GpL, ڄwv{n: ejaw(惮޹уtLinU_oDQ^_5-?-|[9²*d xfLquQl,.LaVVk;裋}{ŏ~MKt(:k;W\}]_LO lmY9&?un7Si xRZ㣎YJ ,|yj1;m:_u;SkJcmʧ!6>.2/7MDqmʍ\@FN̄]xw,?qvy9ldzK dI^u,H{&lD@A`؝X(4X] X]5A _@qܪ,~&Uy4 ;@PXo C w]3(~t?(N8UǪ;φn`XV)0[ 9}cfl_R׺[:=_wN5 8y= k9{a$?y[|[-Y5. -HK`ս7˲U.U9eY䶮 q-:\ Gݟ`XVAjۮ?_owvֳv߳[f~#i, ^6\VﶺI..mX$O!]+['[ [x;v$;IKZ~F\6`]x֬Pjos9f31,;j-iW2:;16&Mc,݊V۹#Jg+t g6ەIw[w>vu`;4l=j-r _ַg۴ϛ鷿t, ¶,Vhg ~Վ2q:ơ3[uuMOs4I6ѓ/6 qjIOwQp~s;NvVBu Ewu #29t v ^9`#ql{yu5,N??6Nôjqn*_~%}tܺ+?c!6Dޮue~[K^奁mMR3q`;؛okE.6+z;W}g:G, {ۺ6wtϷa=ٓ8 b|"1cF.vdIe][@VbӪ}86ŕFF&J`bwܾ/ ܟԧ7߼ws[v gS`o[o-.]W{zhh㪼ہ>;5fW݌>w:*>6t}0n~~T|h97Yy>bw.MnZ;׿6Eciv)lT&1nxcxWF{+/8*]e^9,ԁ`h`HiIoV݄} {&8뮻Z׼5nşgGyd_z.myyqt`_ [#f]M>[B\fH&%wp1wpM:Iu`6*@m6p0vHť`08䠃M]zqM&&JV3^[<.絢oiO<5.VewM9/n'ظT,+SB<*k]czΚv݇u}v `È߭8URe)Yzأr9:sTj{^Z?я[ne񖷼noۡlńoA,ASN| mM`؞V]dqf7Ty1]ݬdW`4~bw,ji:E`؎i'vbm`⁑Qn|[Zu+V(4_l%\2pXmFm`7Z1q`v~;wSq*]jbNj徏w1Vi3 ,>ZV3 c`-??}<i2gIfoWn۟r-a⧻gf`w~_nyI4ֺ[V{}?я ->/_PT>C5\Ӛ-,5՚_-|H`q¿wSC>lt3}KMȿk~gdK'm#n}®7tf# ft/v[-zscƦfaB(5X,˷*mlo`WU/V3^tgr$C'>Qlu!=_M^xÑG7Z\V]xӟ]vYV[{xxG_mV|K_j;ëM` 6on2`iy`Ѥˇ-O E[ [@:}mKj4$t7usbx zEakF9uM'`<a-[FcXΗ&)m=Z:lc^׬FH?m s=7`?ϊw-G>҂^7{ō7ؚL (E~tS}AD`}o+v;mfޝ-?uX]}n1񲚨hǝvx٘u`ΟJ1B:V5+sY8d}v!>؊r!Ů/fʕ+[}kl"cx=}_p*?|i]vݭ}㗶)ʩ:"׹گs۵_O۵_ ԔʢoS:uR2~,04- k`6b|MdZ |/6hbxn:[r@;Z6 `52:6LGfwON27*vi? MOj!7Dl}ۏ WL;QA F-iw4 @:fI+[WS׳4VVQY<5+_K n{ylt; FKE¾&=rɋݶ,mE'fo3`:viy:hV_vQIEF{ꢐݼC2wⷯ=-;8̍ύu[o-^W/]sU^VVbeV}of ifWu[3+2f{!ROG>kp((RTZT p-@Wf8.BoOgye SNFlT$QbwUGqr>9+M|x57UvBO}W<د녺oS,,;lE{f3gƝF`Ս8t" .lu"<#ٍMu'7`Bܐ558֚+/d ^ Bu{EOSVSN9xH O(:vZ˖-ku+^hQUXU:E^SX?~KwQHgPhm|G7?ܰp6lsvFlT$D6 t@OL|;GL$, d.jfb-7)JNU׬XM5]-RuוºunVd_6m/6[o?>;;wnZU)f~>ǭ 1U&cy i5]ֈ tnl8fVleyB>jRzXur:ֆ>sXո;Vڰe0)ϘtLdlWI?mMk9_\wKtI'x`5{Y)Q*žzVf$ֶ/(]}n<7tbDhS2k[+8 x ǜ*u-MdyҔN_WQ\g]O׳Q_>JdTMR nhHԲ9ro[D '|r曯 o^Ʀn]sܶk 2<lOy`&Nr`vmw `nbqد~n@ws7Io|cq}Cnp X߾Jt6VE[n&J6R+-IcqT;G"oݷ2/cݖ_x-) 2:ͷgfVa7Q ֻzm.== UV?(x`uYlf42`nߟ uS Xt~O8a.7u\<\o\lRnO&UeA0Vp&4QS]v#A㨕l~cٸ~\'25 ZgncnW]y{c]S\W`Ea7sT= 4r a57֕=5=96S+2NX=~Գ;I .ݒRU`$V0qT9yw6??:BtڧS0ky:}]YMj]>lpۉS^+_Jk)+~-=(~mwn|yrJCه)uh5~]_?k6lzl DIiTR'lt; FKEBWXBlQXQi`} yj_Z 뀳 >R^{)Y`m?]ϋ\4nWp@kb[dϫ9ն&X[sun8[ Q>Ѿ- k8'IPl"6X &(*Hֵp AuÞA6|بνVպoU]vokp*nU Vwviuk_Z+n,PPWU Ѯ%ڼ$Dj+dQbJԠ]Vk]` f{6;1لu`5A&qRv1JǻtT5Qԗ_k'ԧ*elu댓-l=?;J^6*`Җu 2,4е_E`mlٌ51P9k]٦b +n//|akYR?<ȖEQ_ᆱj&6ؠַ؛nmw AZ+Z{7^{m/}>WlF;HG]{Zcy]UohF|;M(P$Zw`fIlV&`R:jZ:LON4udPY-}Cn=\w`EJ7qcZ"׺I5לؽ]w^qnҪf0~'":GalK` LTomm&G`󵁑XE誺m&`עekhׅ؟MX{[ɚ`zs=*vw^zn?U]˺ھ<;ZGV3 ˶Tv酗T.ޠQ'|;M(kYl,Yv=m׭^"^Lbtl0[;TMU `b+UXiok.g} `5V٪m]Y@+zЋ^RVv1c8mW\}ݦz)l49 4 vr> ;y>~,"\=8j&}[u.Nq9裋]mXgDQU۠Wo^w->ymvs6s95|;M(kB8.J=l}[dAt>v[kVagQ?kt^wZ=uZ_lٲnÚIsλ4ŽM7%;Qxvp7WB))aS`؂lO(9^wuŖ믿J`8@aZ{v밺 enmM'yҾ7߼&W׿^̝95{~vk__r1Tw5Io}G݂rb"\NFYWO6>åNMBVllPޙZL t\7uccWz3ֈdKW@VݎMTvL{5״R\v~g5ɷ*`ϟl"uC9>4WݹM/^?);U|A]Sk]WnV@V/| {\p \WGث;j7 lZ1ȺkѮ- k`D|'`Bzg `o𗽬x/1~Ӌ\%X8)I&\vL{UW~{ M>Yp-6`"! 1 ;.`iMZFon*馛9._ܚj;5i-^vemӆy`Fl_ZݘΗֹ6ڨ5C0˺ASN| vhHblciG-e%aݠz;\xqq׷V2}+635U*iVmt\u39G AgU>+U w +l:uhע pW;-[ &}BFmCyM %m\D`_Yubu7I@v]7~Oo~X`떷{k2'U>E{]K`nD`Qqnɛ9s>N*e={[ D*2ΜnY^O?[O84/u?uMU/:4 >c\g`~O,t奁mMB0۝3K 4vaf![5<Κ՚xG|}nkwL `?϶Ƶv1nA`_M'yl .q>m lMQœ6U%o = `\N`sW]uUkv[^gZ `/B0/~>Gz6 2+<.J Mnʌն9e y.!S Fba:1c,[G]h X7qYkPsNum^}]mx`q콐7`N67xwxXY87am'a4[Mx FA>[o}&umOkNjcER;ݎ=BKLklq. cy4lQ\!Tk&rР튫+ g>Ph9q(*pXZ|WFoZvivQ]`t,5 ,&pZ؄+'â@;XM̤H⨣j-6E]T\q_nZgT0`X6C!"' ߼kEqWn*nFڟsF-6@%ՏRPu|`${Vk= 1C:3U,;Gw=*jYV阺+w?VaEzu[´lOB WNE`dN4jN;q{_~yk[ti{NfK/${L͙dyXkHYUn~b~}JouUzKc)w/`|Q*o,ls_Fmb#"߀O|-/~X'!؄+'âl6wy&`Rbm/vK̝;zYZ)7ڔ` |rlتqTE[ `n:n`X6`Um V0 fړa}' :0v, &dx۴ H ƥPFO`kK^V;m.X;[3'SPP`krlFS鸓Fb;GFnn;.^]uםUX6__̙36qE'&˖-۽SuZ?g4Nfp۩lm5XـN͝7w{{'C?v|p_4>˝``ky׊kmQo^xI60RDKx\qK_(S"1}ф^Ko`pnPAV GyvAk9. r)lQ[\yُ&J> ҅XA} ]k`O]sT\'| ,׺wڅ`8Ku $N` j0#@V [#$cepgt^x*?k)NAVٹo}ؾ `>Uÿ0ϪkuU~G>ƏVՃPVŮ>l&`~`ؑmHnևW]u /8GfIoM&dzk-2}n TemP; /mU`Ď۠ EkX#mZٷq5*.ku҅Xl۷ozƿײzu5xViUvl~`5  d +m/k]15 NP +bM*  2 |4ТzR??5>)x;Tf+lS:ǠJe+Ҕu!6k*]̵bGAu>CmοgrڏUꃿiaew; CgI6g*-Pr>XFw&zԤ|mIaQCȮe=бAaYuOv_M i 2gG=IOŽiT`k]2'aΠz;ԢeN5дb}K;ԶVUCiPH(E VW~i`)q>{`17y}ز/|t;~({MُC˗.kFjPaztY]~|,M>r/ ZwRWo3`bB`AߘAY;X ZUECMFۢcPU^NʉkʁPՏd???mwV^Н-(, 8$XlDmMLv=n,nXo`^?vZ U >M}*'a4[6 E-c%"a~4vzviҮZN" Eu~8 l *Ch?xCbC?~@<o?l?`ӪK&x^#@ ?.Fp.l\8~ +ˢ\-I_m4c[5 %5'F:f~:'x`˟:2wu{X{&h#P$v*1[`XcѶ^#l6&,_hCX4~7ܘ?35e͵? v_VkUVUׅαz`.V^~7eHit`؄|Q)J_"6PSIMh?HcN"zYuQ׻.ģ`~ZW? ҇il=аQjf1,kFlLmx{W~LVk5y9az+[/@?tB` (E; t`gRu@~-nz s{z6Yc˺c`;pO#ilT$PQ:"XcT4L>X6m&Ig `.g^1#c7=| g' ׉gج{ {Όq q:*N]e2rf]H3RX6y&U `Vl΁Nz =xgY)jȩ]STf^YI:̓W`b`ؑ&R>܍Clb~s+ 10w 3:ͨ2(* WA6\k` |Aq|^>lۋwnz~wL o6p j36(0dXc<.q8RC]`5qCn.l$,{0R Y2dCy @ pZ3ywu4R,Q[|H[.-ǁv6mҿ 6;suBJ(hk*}MS~GP̎#_H.^XlYԶ_|qmڳ:M~^{V7p3ΈJީQ:-Oq&>{כ=|ZZX)56 H)0{9w֥su|Ӡ n酗g[m>s7 oYN~…SJ哷*vQ7|tYW\}]6",P<`.6n֦Ȭ"8:ǠN\EJu҇cG혎oWޚ!tct]+gg]}6&Tcڴ . я QP(8 paw[1HU_ȭR4-s$ʣtSl׷%G4lYذˮҰ۱`1P*EU}ؕ"ԇ)lyX޺2PZֆݬ꒺l`%߄]AhP]Ɯ[ !$[ Sӵ+U?6 p elt loB6ߺ +>~2g #uk -16 btk?ln'm#֋z3尽]g`|]%Wt>Nq* g!dʢÏj Nu S12 %+SԺmCz ]`]&vެYn9s iPu||o};w-a&qH>eXyjMo$Q~e'n~7L!iL??S31TY{yfMh=?{beh  GZ+-;،+/k\""-'3)1GflE;met옮<:gxGX~2:ue}O)_Rs k7ۏ@gGyT}6U6FgѩI ,s&(M4%RS57XBiCgvX6U&ӧrp^t `5X{Lo'6Q`<6ɰh,J0Y8u 짳ډvkAup|կInQ fe}vnLԢ3*Iܰ;-{T6]콡rW/ ܦ )hdz fQ`A6ɰh,;AV`Թq퇓XgSe*sqֺǺ]m4'Ͷ=sַƆzaxn\DMΦ6a^mMe`݆6cߧ6Bg#ȹ+&\l•aXvHK?:ol8qA'󗪒f7F-YgYb7}ʹU+ʆTMtoTpv #ȹ+&\l•aXESsG<6X89} d2-k" #Uaڰ|׆ȾVm06C"@`oO=Ɂ, @lecam~7\ְpWl8N $Y}r 4 C`gP؄MMr2, /}:w6 -Yڃut* ' `OD`Iʺ{? fqPdl)w'8l 2:u<:#}$q>+E^Vllb#wjkα ,kYT\U?) ֵíRqf@3 ;p/kEz%K k@je4ialB y~fkww6ͱZ~~gX:P5.3lxzd*{^tj@l֡GR`>K 4elĵ^UKTuNUxS?i:N֕]^M^M`.3|PW^}ΟG`Xl 1nƃZW9MA `)6Z*(b"(0& , ZiFiU_k.F{QlT$`@), `@6F;YlT$`@)p*2<%¹)6 h5 3!f(0> 8rt. - QPPS=(Nl`X6FlT$D@@qo {u5l -`] 6Z* 6 h(3\яϷT.iE/&Q6 m=- Q _滢a(Р,r2e~lnhH*[wեNMBV@;@i*Y/ 96-gm-+&\yl•aX5 dΎ7em#ȹ+&\l•aX`lh ="l5&\9 `q\v\^BC4 ="l5&\9 `Xm#ȹ+&\l•aXǵa5' nlE]6` , `@6fQ`A6ɰh,ڰJa6F{D)I`6ɰh, 6 4llGtK9/:5 QZ6aC~Ghy)8 ;G(?Olw`.3|PW^3?ُ, 6 4ll#FKEXLDqmq%z{ 0w`(6Z* `Xla`,6Z* X )0s:޶nܣ(H 6 tclwFKEr'P PF''sl(6}`"! x 86 `MbRPPXLe>bRPPX>8MEpȇh 6 .- Q _&\ȷT.:86 flt[FKEBWz 4LyIl _`h6Z*@ %OX6_G'lnhH*[w)\)Slh5 &l"l•aъ ܗ":86 fltS FKE㓨lkة`qSs)6 kl[tK9#:5 QZ6a` ,R:6 4llE]6` 8 ;DQw]S6fQ`A6ɰh, 6 4llE]6` 8 ;MEpȇh 6 zD9w؄kMr2, ,6 ` GDsWM؄+'â,kÎ+Q|fuה zD9w؄kMr2, ,6 ` GDsWM؄+'â,kÎkS! klG4/:% Ql&\9 `Xmr)A^`{UOUA|P XǵaǕYQ3ꎺkhe b(N`Xl6`"aD`1Xǵaǵ 6ڋ`"! H`Xl6`"! H1f\ۖߍװG)uGa]RF}(c۽v6 jlFKEB@@`qqlhh(((e.6 h(((qm*C>D|mv1hH*0ኾ4SrHS(Sw6 m=- Q _滢a(Р,pj0&|mnhH*[wD|mvhHb(g3gm9lmvhHb(R`S7Al.hHX TB@QN<$6 - QPPSQɧl 5`] 6Z* 8ԜF`@ 6FlT$D@@el`lFKEBW W->%G4 1Q6;F(]AhPv4FR6`"! oQ`qzSpz)v >- Q _|.ŒbQ&v4FR6%`"aVL*2-w`qzSpz)v 4- kXOR iK`j zlvEKEB6_`K,ч%4Rp) ]4 M؄+'â, b6а zD9w؄kMr2, 6^ >`3(r pdX4`Xl6C"p  WNE`X׆T"@h$60<`3(r pdX4`Xl6C"p  WNE`X׆W^Ëz=ڧblE]6` , `@6F{D)I`6ɰh,ڰJrglG¥ozUU>?mnk6_e*`Xla`=a]W巶_9^MF[ SJt6^Qga=E3yw5^ ѮN}YK/C5}((0: spF@@HRzhglM=B@zJvW60j6 ((0,Nw6ω"B\#?XQsl PbP *Zt=lQv yrk\ P`$`qǴ~il`x6&Ѵm\P= ˂4>v r@UVSq{!og%#o\Š|reg`d=6 # ݊~j+eiTlT `OFouG6|9h>֥€X?_kܣmRz][ūAH%+zhgl*!U]TS;Ǣa[j+ >762,)_23.4J wa _ayv^av{q spFرs-kA,ł$,jc>~1x<}P1cǮaU2E t=p/{X(塏;Em-=O *@`lMo,j(U~da@kUBǂ/CJgk t ?+Շb[&M+)ڋ@5XZʻW;eׂؕ2\nVtp̬e%%;M7K$@is |~tR Ee_0M@^CVŁ5;F}xZ^f蛆KD3ކ<-~WfS"6Gvx6•QP9z8h `fl3msRգ/ z*Wt{6uXa6FL " @[XQsl ct(Yz >ۯway>`T93LKul͓G)fMLu8|sl`Tl)A@@9s؇pGŁ>el`x6S"@@5?%Çh `b8H>((((7pЋl yZkpZ+2F@@@[oJ8|60*6pu?eE@&ݭ a6н lrB[@@Q@ XUwª@ M:R`a7C;lgm݅!P0A_t '?Y>>9&+[]rBVT־cؿ?]4?JcW3ohƬYg{@l̘1M Kdռl*(چލ=t(eЧ_d^,UWS1u_9:麖Fy?je4q5&_5 v{p޺s ݰl`\m@_gF-'[}nq*~oY ܉Q4Y) '?xE#vUH~A_re+*i #5:a7 `@6:qoC&&TO@h`%(0{Ծگsѷ҄ gst;u$P!K^,UXh'k%å `>zX(=9ݩY)p-}bl>rE3gu5fq r (h60>/zr@>o|_Wi /-;ς;~9]ߘon `~ G=P;׺ۋ?K#g6k֬/Bt@34qq*'dO@P)Pϕ#*>\Tn:CW Au!u` EqrĸWxœrk'քQr {VE&gVrW/u2<^~9{DRbi]oAu/Gk;"?ֺI H ÞN;v!w l wa޼ ַ f>5ȞXom `AZ(Pu~[7a_pv'u$Y{u=<&FS`bb6b.U@,clso>G8g-j"h+R >6螀6/ZY4պ6QAm,-fX$@(, tjz0zUVČՃ]"GSmgϞ}Q#6 `g[̚xx?k4p.{*Njd0:[ClKP镶]/&ݧV\6l?z䍍-ln6Ef=s:akq^ D +GFva@.6pGO͞Vrkۄ}(i'`0,CO ,rփ&<ձ0O|529ul FO͝q+PS(ؼl79y+pZ᭷vMǝTh{;=`3V6 `y#^{[{u~"wxϻ٢S~3zukw=SwͲj_y(( * :-vߓlh `@v6`%SuG2zϞMS6LWA5PPPPPFu޴~WON.a&/k=? G3=AJsf2|PPPPPP` N­Bi=miXtLZBB+L^`*AYݢ~(n;qjoaܮAꤓ:V9PPPPPd Mĺ{X^Gi5T ([*u<:VIaewv F5A@@@@h\XEa=40w/~RFR ؘA,oyZDW=2Vb(((((zeQH[UUs= NFi@Ri>eZ:++#ۃqr* @^ vq:WA}WMQ(F+#k{:Yqm:f+ʤtK*ZG]ں!D|UNXi2_YX=>Wi.~:LU#0QPPPPW `}5ˢ|u  ,iװ|>U3UZ2{SY>v~̤Nu?Wj`rZ^~ުVki.u _QPPPPPT*U,<c?!G] ȧcS+'^VkyYe,Y>e[$Q_O!l[}?B\hGM&&E@@@@@U0@3X#ief@,i08a@Vآ&V)ӲX,[qP76.jݮ1 t@ZӪe윲n"M>`}.ezuQ=\~t8N].' ehv5u1FԕE"{ʫ@cN@[ǫ`} jϱ"޷p|o: q(((((+PUi죁:+P궚 J8+Ֆ rݏEЯ: ӖMskPPPPPPU[5VҺѵnWuޕ]4xentK;QU7]vV_X+lB\C@@@@@(PXժbl/j5*j]ҲTU*w6҄P\UUePz®nY]lvi/Fa];yY]@PPPPPLv[Yl7pXc(\ZzKmUe͇*ѪL++ge5mMTf@Դ@418!DZM[іQ xPPPPPPQ.d>뎪og0vXAct MYwU,bە߇[rVu:Oԅ״y*+}+:gj̮3YQ5u:_*CcUzv6tW:+WF:ڪ4`UnHxkn((((((*Gہa\((((((c@UW1E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@1Pߎő>7IENDB`nova-17.0.13/doc/source/_static/images/rpc-flow-2.svg0000664000175000017500000005775013556316250022245 0ustar zuulzuul00000000000000 Page-1 Rounded rectangle ATM switch name: control_exchange (type: topic) Sheet.3 Sheet.4 Sheet.5 Sheet.6 Sheet.7 Sheet.8 name: control_exchange(type: topic) Sheet.9 Rectangle Rectangle.10 Rectangle.11 Rectangle.12 Rectangle.13 Rectangle.14 Rectangle.15 Sheet.17 Rectangle Rectangle.10 Rectangle.11 Rectangle.12 Rectangle.13 Rectangle.14 Rectangle.15 Sheet.25 Sheet.26 key: topic key: topic Sheet.27 key: topic.host key: topic.host Sheet.28 Rectangle Topic Consumer Topic Consumer Rectangle.30 Topic Consumer Topic Consumer Sheet.31 Sheet.32 Sheet.33 Rectangle.34 Sheet.36 Worker (e.g. compute) Worker(e.g. compute) Rectangle.57 Sheet.57 Invoker (e.g. api) Invoker(e.g. api) Rectangle.55 Topic Publisher Topic Publisher Sheet.59 Sheet.61 RabbitMQ Node RabbitMQ Node Sheet.62 Sheet.63 rpc.cast(topic) rpc.cast(topic) Sheet.64 Sheet.65 nova-17.0.13/doc/source/_static/images/evolution-of-api.png0000664000175000017500000007316513556316250023535 0ustar zuulzuul00000000000000PNG  IHDRsRGBgAMA a pHYsodv IDATx^ۓə]IÒ 9]m01RkQfHDʻ<6%Y  ipA C7;vְatэ>O̬;Whb7˓cʼn3 6A@Y 4[sSI(@;ެ}SkbmOn_d 줭-^; P41ԛ;&6?~rthb7{s 66} M pgݓ¶-^;{D&`^D&iOmmfqM G/ҖncA@1v+v%RP{e;Z8 A@/Җ'w֓0hi WN.&.`A@)Xm7xM xَ&Qm%`$A@dnչhbhg<ہmܿM M-;2bA@xrn;GWO?[Oh&&-msv2q #oz{[uh/ @gvʼn3rll~o&@CA@rَ:uq M S=kg7̠Y!dَb?57 M Wv'/2a!pَxJ1414/Ql'N'yCA@CDz-mmAR-hbh}Z-88&пe;Z•SB'&pI8(j 'Ro˓c;Ii>9 `َp⽤@PPewLuM av49bo+)T414&:Hj y:uayr̓X=ZI zQ+ m=͏՘)41t 638~&XBؖncE_A@B,Gs"•Shb@W8~&]wwgQ1qS=M 0BmMOzb -\9x/9 pot1\l㽉LCנᴐJyu)OBa39bo+9hb"On_d4ȚxArM@jXīQr@G*1OagMq& Z'MGWO33C6g'+ J&`l0r뼸ؒJ&#`lXgkɅ@D0V?ɥ Uĕ8F'/"ZP7BZspzOnM%4@0#"Vng81EQA$o,mMM_ZvSJrC Fý{M<~UO7`Xm~6F yԅGWO{BF֦/$7ȃ&?[8 lƹ>y@tg0aX1M MhO 3JxiL@@}1"&ڵ+{ P/?}&_aXp'@&Js|t7ƹ_xkb{M/G:q>M.hbs" ]˜'[B !I.'}Q;z0U' @ =Jxmf51τ$=?<9+W>?[{͏ǂhCd"oohWq$PlyATý-ڲWĕdA>kiy-=$fj41@UXxob9ðb[DOV޾K7m/Q 410a5{{Mq-孷i~>aU̕<,[8#ޫCM 08V6g'ă$֦xX:-}gc#>Yq]8%O^wֽRa0TQ hb~<63@a6?~R'?ՁeQ1lX_McSM KD+c5lzSi7/&ʰymlXLG =M Yd %*.^{ө}S ; waՃz s>m=<:H;2yed˓c=M 6LUvb ʧ<:H'?,gv񓢪sz ,LUT\3QlX?lkNg85N6t]G<:`{@+s[u^=/llܿƪlz?9QOjv^ٰڣ ! `z'Ri/>!Q۶qhb Rm?WYOGE{ezhkjo+hbiw֟)?N}Evzezeg+hbEf25~oOSi?DLyezezv7hb!Xqa<'>IՁ?eXz+[zzAA@9ښZ k'l7>ucwXfe٦߼VcNI侻x+ֽ M M`{Fҍ~>aO۾Ͼ+r2}+ֽmܿi0 V֦/-\95-l]'?>i~Opo=1T&#~o簑5U|7En>YIszn$hb+z0H`7_zS7}]丿R,0`P3.ay{t^k?{_WnJui+뺅&pa +~Ɠo|#["ʀuipoKG0hb: ư&y<;yBWZ~p_b$ 41T cX {r{Ƨ?•.mmzp@@`0uc'VtM C%V°>}s_/>a͂]-^;^``mmNfk0 뇭L~ow^x>_|C"'}q?Obvq'+?i"hb˳On_ `O/, G |,uYON_msv2n6hb;;30UV^z0:lm>ES7DΫ/!lyr,zhb# wVn10̷;ɳ*z^y^ai~8<1g6N/Oy~ 0̶[&T41%0 +c>JP9t ck;g(T 41tJbG /o.[xV =ðM_JP1˳SH٣3[Z~0~pGf/9a}yU6g'+0{Ăv08qF<@@@)s|knj^h_U6,߼78yiG 1Sp`XǶpQwJ7Lei&JdM -8ZYZV/N&zO}c޺ɉ690LS[w'\rL6ޛHJ&(|?gL(Z]'G<[`_䇯Nx13auֻ[sr-!$hb dOzbgE~=!C'>Ϛ5V3]zC~G?e:&=^gޙO556WMxcѠv,8 ƈ{uPƺ7=U5=~Uqpfz7>?d5'֠j1pW,'G_= q-ũG 8F;BXmN&NjYY?g=C{Yc9 =3X%yGZdq%jJ 6-*g?'d{h|EByYcelƹX4-p_^o(ibe?' M Pu5aOʞ,>{G$cD ibU\ZnVծ;+LvN]H|AAT!6__r{b3 iٞ8ĉfD_Ś8 19qJB>&lMye[i.i hbj!*>d˟hwYCGA}S4":،v(Įz+TrYɚv_gsPHƺ-\9?! $4%O\zJppnF.&B=}{bU3X>[k~q۵_䨉άxb@j$a`K6$&4B N]Xe|Wd}̓%MiC||tPhq='rt7yVWz Q-rҍsh$hbqNp=@vwkپO1G{f,iF75 /XX-5q[Or441 `pm˻K૟oN}c{X J X8?]eY& MIl_Q'Zcsv2IM _aISKc|=,ON|^Y<ۼЯܾ(Ztؔ_;&ij&NFD6" W^vvm)lJAX<9z|t LL%-NY{$~/^ M KA c8=&:BzwVf 75=cOL 'A.?r 0bM !P< F:X>Ͷ }l)}%s=[NHzblƑήzc̺AZj# [\3rَ?G>=PX.:+ =*j41`sv0m~⹗rdhbJZoreEsV=dF2Czcv&[Co..Tjm@)s̕{Pe%VX km֌ 1VŠ&`E:LZ{"d"Zeh9jTF M %qI Y)wJ&_zs~(UI4,T R)6k[`UuC[sSp]W ڕUlbye,| v8.f\T%cM #ͳ1Oac6Mݞ)TCkTԒEP"b5`Iftr欨* m '4QZrɫ4rEe_LNc:He]ReZ0XB, Wמ^\#r,鼒aD9YrQGWO^+ 9'B6'Oun&R3C70׃Q*A"/"cw k8Qd'(FʟAj\Ƀ۾4$'ʇ ۡ0+~ap[nĎ w.Iqv5kI`\K+,a@ȡ0``t:=[TYI۠i5Vymx1^8|rF4n*h FK^i⢕}q&3'i\ Zh#y)Khvv, O7$8+vܶK D׌enAh<ѱ!Ao-\Gisj\u)JEF<5VҾPVȓa @d}b CF4S\jWDmm'Gˉ[@ހY*+D E09jnj~ڴQ#jfz&;/VHV41 ;+{ kw94bNCB6 Vm5n XN;al;xԒ4·_5\K)-aAC%ޛ`DMթ ըX2SkLȴ3RUed7B!MrqZMMV*&QїACYiOBaͰ1lm>9كę hD *%lS&ҭӮ4}3\&M m&r`13-kTr4qLhazi?%_›0}ifM #M ͳɱ&N5%֗2ь7S$RUqA4,K&zp&Nz]m}ӄM"kX$M M ́0=Z5qV.8A+T1_颉⠉  I+Fpԓ][G:LHY`^zˡ:r;_.;!yhb= w,QS[vv{sɹm-yC -Hc3vwJui M 5`k;z2 鹄w֓  |:tܢU:}U~Q.ZuZaMy.M D,q:3Kj}Yfĕz[IsWC?54-sx~v?~<[_v֓\X5M|00:et}wEjǑJ{n"N艇=ՅUЖnJP[\JOhqi~ Ƒ=Ǒ6S 6am J&ڰ<8q^Xly9P#*n,<;5z5ū5٘i[&p6}ɓ_XEl~F+kOxⲚzf']r_2+M-AC]e •SEegArX]-ĥ;W.(-M.]yFGu)I`lRKpm.]LO0PQN/\9 2lXlP9wI)|:G@AC؜d%ęo+ 'zh W^^}q{sƄ_{wo!ab_J M ç 5/$W^W>+j+dU:6hiriwe&(7}liW`alo+/.KrR<>>N~PԪHA}%#CaCHzblƑήDQ]R)l+fv% M än|pg]g$wOSr^^;»˳C^y*w>`!>s\*ejI4{z !?I퉱c;Y,6N]6]Y̔EȔ9=(FѲQ+uT3hb{[}=,q_맿7_G}7|Ͻ?^_*ɯWn6m Ć>@G?% %ůZ9\z?yaEL*HlmQL˜Wb4q]ו,veŷ!WrXTQ۹ :.41 ~=h!>>>?;M7g~;BOUH^}Oj&Kc%Qy,)ReRo"\%4vxp;C_U,|מ޲Pg0PV.xX 8>~79q?xgGG"Vg{ΫCT 5hTǵB*\ )oPv`F_Oj/W3M( *Ibrv(̊vܖ f=[z]g7D̗?LJ{⵳f 5 C=lwkZK>N'yK?w{^1 pp+@c@CZAۗ/Iv<=>:wֽ,k !&&pz(6UٞlS/?j/Å*mڂuoXM/Åzl_hi'uo?X-^;C+41㣃oznW8::|O_~n;O7vO]_Xyz+~9:|LLu0JãӐ[bm3e9= $36(ҡ[tGd:F #}2}sRݚN7!d6Z5{nl?65?e~IL4NQ)4:jWьqpuB+[o>b(W rhq-Io^B{OEiMh)T-MV^xeƘr.#ؕt:h}GIgϭU ZF2DN"ZPA[0tM񒗴'/%RTZKKdg w^;N: U cp.NWeKD/ʌr5 /<OmjL`,r'&hb(v%b&K; w<),⽵w;b"XȞE#MbLZi,!Z鰬gT"%%CvŖ5cMƏ&ܦ}&aJQZr#$:M ax.F4ޖ'ǶO\>ؑ};(}JnjZ0ZJvmiDt&Lx~ / ԧ*d,;)i]&{[By*6?~R*o,%5PSdgԩm٩ZHĔ0M>32~~x;pk<]1D>8"ym,N$Sω_T41<[Z0=Ͱ7.((`9@ R%%Ԯ- O}ɨHc.|\LAQ?_)q[Ɂ;qBzNEAn!k=~Uh6hbX'G&0"ArW=E8px=`6 M rNmzxM hQgg^3f Җncn5MZIjF4(rt㜧GbAfA{s#;xqAR 4h!'GĖ'Ƕ$&hQ`mfS ?o| yΫ:lf)`tA#$ %ί/& /^MnZ`ɜA ii_86V-rrZfC& y3"hh&<;:SLM_:YO '8&4c,čeᴧjXX+Hn M[.!(,ɑӖ/Srʁ&= wvd̙a< ,f`P$kD3JW&(elӼn)5/N]៸f&<:4U݉r*ٺCbZNIN 0 '%`On_D kdc:ZU6ķ)HTZq&;QPd)m}9+KRSܽJE*;_sj@xf@W+8N||ZA9qs;v$hSA\s'yH!hɸp'qc~r4DSY{ @PL,_0tL2^r{*<͏n8 ϐ/Y~Zdۍ/r#;UxGx%?i}UV4+-mT;͍x; 4y6_ A\QX3(C>rJP-^0 Q%_ԯhɮ<4u&]j nn> b1ZgUZ`Wd($vb\&0eLM)VRՌK^=&u|9[עdܶ8P=O+ [χջuh%;F`'׫P[}7=U:,?9; z@Rjk]JuNrl75ɿ[+0U6?Be6(wP",IfB9׋,kpgĊ_J0S.te.v1[zK=XYH(3-[eHN_)f _,;2@oqt%l.C݇2Jt]BfɤX܃"_7~'VHB&n(2gZ ,)qjCJYk18yNW{[`^ls,NbG:v .H0³61@:YDBEŸޮPl !=En!Mr^Thb41M!3Ή8m{WDý+/{6?~rsvR Ě$5j*e? .O8V4kWg:g^X6Sf;;\ᔞ޵&|㧇 ӬL.lm{m'>@>7ya8U.[ICӋ +7 bZRek"XȎCnSYdskA5t!MgK'ԍxUM6{sųF+Dp~ϊ<m7#EѾjk@:MuәmT♥ HI.Ћl.6tKn ̻-H9OV\JV }\vbEXϖ^OB M;iWW?)}>=XϤ]Pɶ![S-^65Ԡ'rKZ Ug[N(~x*dbb%g;f? /X\MZaޏ<.qk$jX_iv@8E5)7BGlJf@ҍsr͛и"vL.ylkԭlRN_5*-i\ A:ڻe|J)D,MLw9˖ɁgLыS{rku;Y'e d:փa9 1CWNaK:v bqQyF-v[K$).7BU&n'/z5h}SۋH<߳9]7X U @(5^B8k"JkEKjnųtcʹ`WҦuD:Ξ[* d9a2=heԕ<ܹp9^T-&=;I*\94V/H3pJc|:eps(m`M74n䈬H@:DL'}SyY}8qڼ:@I~kK<@Zz"kqST ڪkFu?_HApg})#y[•P^{I'Ϗ~h:^Lw"LSY^y4OY Ԗ&NDg-^O!TXvS~C2_*j4n6@)-uYOu7}ݓھOnmML?wag gֳk!SRW䯮"4 hOBOlFTX"#VYq4z{Gd Mew9c{toΙ``j/`a]8}a-cfѫ0ÒE@CAYlOLlK4E41@ظӲ=_bQmKfBHKj釛ⴾYt"yV LM]0i3CV\L#.70hb(oOn_d~ &cCT56SesHE$DF(K(p3Q83U8u S*&v8zt'gzgh2Xlm ^3G܎%x?\呿rn8@ ZL-sn5hbg#P`ߘ ˍtBbXB;&*&QJ#2? Y3x)@ƴ.SռYY&xMOvi˓cL0*MEm]ɇ OU(XB_s% &l9i7H,d!ԛ1ٰ'NƔz:~?h6RR4qIOvcwd1a7-vkÂU4l L]G y1јc`0]+ADocʯ*5# pr!RYPi >H#qc?Mc嬨y{uXb81uFV9OcM]~Og- *jnQr#/HX;҄$fl;PvFW?s#znl{vb:Nj\a@4YeZ}*˟$@K%#{UgY•C7,~upqPͺ]kQ /gݬ^{VĒKM_.^yqb9p@Eɵ+A#YKj)Cۦ3X3Qf  o7aN4_[) ySb\cuM9iۡNh=M†&z6PG" (B~b4@X՘$veHv[{pĜ$IQ'P*i/1CAvԹ.0ꚸk8oܿ8͐OQҶ&NѷJ.>ѥ #I!olұrW-bj5x-*#;5!YO\@}qJ'pZ5 }ͨs'B j\uSxԍ)q%;Z(oxP=FBw0jբPY"]ήlbZ:\'o/!m5QY|[&l*QDX࿥!DP"˼r9,⣉0wq4n^+(|Mթ O1їW}G[dbs)^L%֯(ER2G:E5q4ήp[tD`g*?R?N {b?h@?p; Fh. Bڶ;jbmfNM NN*_x4΃X޴,6*y:TV<[lyn8mJH[wh!rŢ&޶GO~fT;B5`q⌧zc6?~rg^+,+&,+9\?8ݨYGʦv9#e6 ܃GdG",/ge [v/ܽJS Mc57=3&!n8JrisJbpW%L R<ͪqvZ>76{eD Tf(#-b׮ӭU0'' eVlXbK9IPff>Fyv8}4Fijr۳:l;M%,m҉B6F.(&,3z?8z18 Sieu \[WcըF+d)N*414Fi[=YiZ4rfcN6c/h|5%jîJ:*U` e T8,NY [բ|MSzy%ǐ"KfPgwy سL^&)%&V)cYtmFBPOd^S+URI:+QK%_r"7LD܌-yR4h▟ r@c Yw1[L'6Ήhݲ(hTjD^qv#4--ZK;EdW'Ѭ+ֹpakC!wէӑ:/>C@"lM*@%gNvU;94Do7`)&?mod YNEXqm݌9mCf̕ ^6z~"UT+7*O}ލ/rtr\KnY*/[M: ~ء T ]0 :* 'NͻJVWԳ,ybA4Al|Z7XA,mhԵôRN"\ۢ[͕N(h#M{LE̴Omhb+ƒ+ 4} b&Ch O׹Ѻs ^"`͵')IZ3<+R=lq I4OkByg^i6C%N[k֔P`ơe= ?94]zpLZ$ĪW5EL$Z0qZ E%-0ph<½< !-bGtXx ã8iĻ˳IH p4eۆkKXR'4t. oaфB:exV u#TRoM||t8qSª(%LHCNT?=DOYɹj,ɒLϸzN, >cζu (p.GHX*x~RE/Wfo/8*8A0ꭉ7_԰ bBs{mz+~"%ԮQZBEԞ?c\_9vp:"nK%RN4%XS|fv)xh|22ۻColJ"ScM|nʩ$SpCPR,<MjjhsjPpdXWT|zͷ{\uW˿yzQ@ߨ&?lm>N1:>=uEϷ!׼/"T&\v*hͦ',0SrzJ<8eOW[6ԞNR*Lt2f8W/@ߩ&^qzC.VHi_FԤ_FG+N'NmKW.#N^Y.rG]~y~ҹݚUG*9_LU6IT4key3כj2Myn['G8D]+<,\PT*T80XjM'qՍjIm2<\hp Uvu"O({\/\P`7S;ovVTCU*1댸f3<{IE+b^@A*S?UUx#5ytnJIR'MlB%w$X~?Dj#C=LdsZl~J7 Mp``XC2mVEx[Shb!v;3E++3=%?Mh9q2-{,Am4 ޚJBѣIbq*u|܋l{Cc'lm rՁc v|A̕1^5"@ Չ' \ݠ"[*0Q-mya$8@f$ER*9j18drZ.'1ˋHG/ĺxdFꦵ$RWY+΢Iʝ<ϖNo}hL]ݘEŴZ5d2Ms*JO*mf8|Y&rRNdU:B+d,kT*r)MfqWXbܰb0c'?ć{[ WNR 7s-{L*M(uN=,ovvXrb۱q]K֏mE#&2w\v މpwţCh3w?i?`[jLvo.ĴRv=NNaW"vdjfƓQhq5qL4WU2IP?$?\hb'5U_CW@;>&QM &^Ǝ3` d+ MZ 3x&gכLR/v;M 'Yr!qUmhѿF5e§*#X*a~ڔ\^`4!Tѵq x{P!&-V:QR/] [K&&"7kY 5޲6 i^_0Χ4˺|Df} {zĄh=Fc=b1 czIKnŌhOf+kW/Hf<2n1pze|$fԇ'Mh?( c8Yu9PF }?s3m3Y xq|cAWZ%1f":L;vA|X&)^@̃&W dxaFBBGZUhb~"Kd"4hضґsc3n1 N%Nm>+0Kpr;ۅRa-\T1;x1c9p-ͮq֢0X|gN%,/΂뺊VH V MA69v\s 8d/!h(u=iݓb&${o`k"jhLk' f F>qETn||+_+<ܰ2䁓b\+ hb.p7iŐ^K]9nl[HgdHQIF^T33$ 3 ,tR2W m*Im EѬBg0Y$M Pab: } /ЙAG _yM Pa"fPt0/X ,# kDإ`2`p6u:Oͨ?F]?d`~]Yn`aeC7ҢU၃u bƀ& R_IY.")bQPƗ>s-Fdʒ D(~,D,*Յf3VFoRup `QbSq_Vxܖ p:FCBђ]u%z3 :g}o&RKu Q%E>76cu$ᙟpFv^ԑ:By\e A T@ejtO&#mCDVXG05ٖ –6衇M @: J"%7=rn/'0lCX@|{{e41F41:hbu0ꠉ`A&QM ƛWtOU.)mABGԡ byx<&q%Bc֐}ebzUAfsAfd\!9ҲbΉ೑t6ki;_Qቓ G,Jc]-g-IkVT,ǔs$t`pT7XY)NeK zZWKp#\TaYZ! :tngv)wKVT4njųQت@A砉F-y[[R8q"NXvb8t6+MO,`d /=41! uF TTbAZi'ŗᖊuVݜOA̭G)b1I4~4Gh.vk:M 0RztapvЉ[7܋P@̕&'K+ı7:h|41hcV3VU2 T>?D~ۧYSO @>i}mӇGA!m ۶lm+mnlMClfĶ16ц~F n}]ښ6,Žn&vAEF>li&>ͬ[K[ne }?|L}(sk39?t)Fxy?5l94zXeƴMF[ShtmoM?]3&QF(׍Y=w75#oEWgzq׮kk3<bX~wĘ>V+v5v#)cߎ]~յvوkvW{vW+lg]z%]xrve.(οȱ.Dٹ);*;sΣNy|tg*;ؓNcN(4dh{CC [ـ!{*?x07h(ͱ>PgAzۍH Pֵҫ?uWY}u֛g$X.=]؍`%*kݮZDtTֲMjQҞSyyλAW[ԝu҃5ӓӫ 6Di?knko=iX{>VB/tǾRàvrv0C>tңÏ>^ݢyvv '+;S{ҩܾc'5p{⩧ٞIɧ)[3)ʞy9f-*5Xfs9~.Ɩ?ٚu ΠV)+[3aZ;ͱ l]ʷ>6!l&1ߔ3Glme]ک)isOEソn.Zkt+\ά^N /q@R4T-`{ X*0^wF]u3l,0z,8`nY6 q46F>&00GmHk +lVA9W1.`R%W_ye^@ K'=L:3踓j"=/=8@ `MW ^w 뀕/ll~>₋ o" E m۩gLCV,̈́l@pIL Ӱ?1^d b`A[3vi f۵9×MW5/ tx1x+*@JZxF`]{3p={z1 \Bl{Сt^ ߃x yv G27ߢv>SlO+s [I_q% QyhGծϷk' 淚lٶNr#]o8~]}̏iʶmqh=Z5V'}ッ 8CswPC{-\7$V32] `U@s <6}k9~R~'Z~ʣ $6;ȴ18Fz;[|twn]÷f nM&F0dzǀM6@:Y_v`}5]^3ep籷{.Cs3q˰==ۣr'/eؚb'BV{/6'뇬b kzړ5AkBV{ jS ,ɺ^dK2,@M{a- 7j.gUQു5aukl5p;<^Xt=]Cw@.]7 .`k][ׁ [m^oe֬/TVgD^|޼Neﲭf{;i Z I6muwMϜI}wmx.Z˶lﲽŶ%t^C<W^}fd`;c `OkM@ [GkMk\V+yw;﹏~1{ࡌ[v}RÏ w?^Ox{)nRvݞƃ @X(dNcn875B8o_zT<~C{ O'qs<[!cj"dgÓY+T Ț&dŚ.=(ȶC-ȓ(u@ 0nlüX&tnkCtyvY{ 5ˀ^!f xݟY0*/k E}hcK|豥[lڒe1mK,[qr λtڋiOdٲ'd?DvM<8Ц =ԣiջlouzm5mw mw4}Ǯ > <M8J~eςl6u}]}Xz-c -c ʂm:*4T?<$֭bxa7r^*3w}>L?=8~=$?q2=2qJ0l{x$Jb=2#pax~<`zp/lӃsf0hO-| 9ƜE,.sp=l5lp37cY.dMXnXXd="dֆDzs6l[sf1?f,ȳ5iGk ޸ڰyۤsIA fw3$e ݘ]g^+^t t1\3&)rZtB .p۶;Л|?%pl&MAN${M9 \Ņ)i^-|` Țs6dMldh1?Bքo۳pM64at7jqUetܤsnfN3UxܨTAfhYCrETвb.7h>!e հ}i*ze&ΊQdע|MmҔ|-eiNVDvO|Ӧ@^;Sg /;ߏ_zmk+V]w1ue6;l,/ul]D]N:=xYg:흑[lo6zmյKȷTLҾ=`P2vT mпW^yƎufx&W/&3*xQFbu-,{$ٜf=1r1jY1m6C6>9 h),>{<~,kx;gϟ ~pD^U>۝X<2V-c2V>q̉l0Ze06zu1FdBldl`moVV\iz [ӫ5C札 %yUYBDVM CZlyA lo7B*żnkjOW /eXl*ؾlqO=۱qCCDm"ClyI' # sAϰ7x5<2=‹t!{{ӳ9V\y>|pe1b8Ui5W;޵u|{-]Y{չ=k>V߾uyk#Σl/t"lޚ1Օ=5WkZju\رd¶nC' Є,B],XX"ڳEwa ߣm>BB[ѱ|gT]_@} R{mle(tc"T Of" yn;45wER7|:ldZ17 U Y6+u؅ 0ȚaQa m H6(t5ʞ. [Y <ݠ&t5p|oXhٞ5P[^eضiA-TN}̓imX s/3oE0`9SO?CaVݻ}klT0_~Q1]{LCO]tgؖ=Yg Ul]r֥g;lﱽ ZkN^jeg*{v+I/B۳lO1:{apl5hYh1g. ڛwyG>O/]2{ D&sinKQ,2uoKQkLan wscs͞ac7q7xhg7<^\| »=a{1ǫQTs&kX2b9 jV-fM/Vd]bKhhL}miA6 -PBO ,g؞g{%n~sc9_ag[nm %GyQEv4_{6mr+ijMͳY e-kz;W=.V-Re?+ m{M3+H?\AvMsyknʏ{V92]~:Y"sv@lx71¦uCM%3h/e::m E{c:#ɼp *e=2:osEH^/>`coO66ŚmȚՐfMzgyۈ Zu Z:6XosLf[{mV 9)lu)ŭ`V!*l/mB̼p~]&3W.csXr ]rIYD6CIkS핗~*5`Dx2{P%j>Aאg|[LGvtỐAK$UA7?lŋ@iVz[+zmBV4mی-gK׳-ٜjNK{7ؖ=>7ۘTiXG/rg؞b[ƶw-UD{9Zhj4m"ۄ驫/Ailuv$, Ѕ>ز bjN,¹$'_2q;v=4/St΃ Ychٞ Ai)/Y%ʳ~f؞})[ʞ2Y{ ~HׄZF_23QiTr1 öm;ݓ#M{ll3O+: 4dE+6ۅQ r+]H 駟 s0Y!vMh{zh|bX1ì,l3z^nAKe}[Slٞg{0'wN8/Yؖ-\ػ%݊.iZ6g c =} [^yAk5zBvj0$gu@810C{Y:YfٓF:6|Yc1 ߇i8Cw Zt!{8=]{ҹsw=`˞xȁ-cH/a(/yA+D=Ʃigxι3i԰?mϡ{?^{vֽ|tjB&^Oןv'Mvfo>s)O\,zLa%=AŶ-zK!=Jy{{{:i*S5]0}wЄh4m ی:Ah.|ElKg{rpzvp{znH{zqH;p\~9&vt xq/0=-g{fHzmh "w9lfHSwHS&={Õ4h[ Z@@V-?(*HM7:l7\s<9dIcp:!}q'!cǟOLȿOƚf϶8'mv&ٛՇ`VWo϶p^h gAϲ=ۋ>q>}t/c{mkOϟ϶m1w}hLlSٖaGh[:CyZg1ӣ^-Gye 3y3psryr^χ-{R~_x ~:ۇ}x\e4 c˿܇<"Ǘ7<,* xj~x<}Jә|L2lG!| j!` 4 Nɏ Ex#';٣ݽ`f'|6mJVے*gwkpgóN^KNqQ|GP@ ~\@Ffb52rќlUݍS-P@X!kjj!i.~A Z X_ ڪm]mu@[Bo^5W-AUAs|ўϵ3Q \ˀ-l'M Loئw#Eiǜ|wNŽ)X#]N<:vi񚛉4g=iji|z ε~a]ď;v;2fm=2FvhF&?HJ3f6*v0ZؑCi)lO3=fp± V۴}[ ӏÖ;DSO5-f[t0Z6=t ;jz[iX]*[s~lǦk" lu4v<<@v*%`oOx鰱.5z02sJ:QI k/|2sa2NYg^4@׆nzAۀ] r `7*հl"${q.raruC̺PVV*-U:|5QU tJt<^x | @rb3xwi S6õs.<h_,m/Hed: /Wz c#"~ܵ0]cQ&MM#3'ܓylOҢSؖ=~ҳlϟy0p9˰sW\{om8UJE,gJٞa{Ciibz8 ?kJ9Amc<=]XX3q2onCW#c ]yNY}O I='t&@ a:@f8 Uyz 醂g!j{Y億ϺO/rW'z1ەHuX;' Ggw`F*3`O*:U{xVm2:T;=\G5؝Fw@v4exrhЈ-?ziU*$~BIBXUkyqY1B!9!#UEC8 #Z\$P\X.ٚ>6Ɓ ɅBZBY■lH6aq;[Tls]'5ݠ4f!{P|nV!"y-tY]3@ι+3`<7ܵ||+a$%*:c +y?uTvYv1KE]:vU7rͬX@7TfҢNEL"-DzɋN}'֓腋O='˗H.;^eo\~i[|?ˮ5~+NWV^Οɉv-w?uI vi e.ͼU]T70Eh5l*csձ.ȃ\w57I[*k %߮` bEnb١i:«d=w3M9gq$؞z#o9x;xOA9gU^'oQɾe@ {5[zyWx SPrVϻLwLOf*oN96cKC=ƞ;FO.؀\j[J_˫٫ŖdR9Z\uQ  -W{ _a$VQb{@kʚ{eò=%ʢ̼l[%к^NkBH%lmjO׮kg V&c\8->vC<ݨUne U +JM?^]bG<4~);/[ {-Zߖ>\ڞ⿟i0ǖ,{1\AjǞx֞ۓ|ߵǟ\ΎQ=ŏSמ[n߽mz%zszл3{hl6lf׶mmdzl.?`[l]w@kg6w-6ƍQ J [f^Nla(hN6h5i6'JjrJw;LGHnu(^V>M%}So5 Y~R 'HgoN--mQZQ[Z1Z1].%t\Wnmm]@'3 xz ǟq\tlvtL׶t4QlGv*#:-ճ=bZ \4nh5tV6(rl1.'y[7[0`=\qaS6R.: Hȣy0ާK 0zD7j@esK8ͼɘC^W/?2ICv\HQwVqޮ^,m=6r伮 [7 t3j tc"tѷZ-%0kF T\^Qz_0$9Syiʰ`0LJ! #r٪l' {mCm2sh[amiH1k*%1$ iAVLz&hMFC5#-Wy7ߢLmw xd`¾Pdebery%0ib4Y&G<0(ETu=N]ORaH24501Z΅afZUVGqym*|ԯEEZ^uPhXo9 ^SNixAV^T@/2Kus Tfa ݪеAcaЭpߪN mcj~*ǮzJ{7 7UV8s;@[rP ȣ.cp!Ze gc̹b`hn|]ʋP> .<Q^.<\n[f l/q[U{ ]DG3\</N(垜Ш< 7 ;3V+m=m|2im|ln1GYtA T Rs0 H`&V;t ]zjlW2+Չ(k='U^թǝgO- &P{8՝! Cjo֞)Ak9$#hyq T 2AFӞ͚ݥ)Cq!CuHݠ𲙍L6$U@٧]aa^nQ^nU<\xu!l h&1l ,O.x^ĐhΜ.6;'x.o|3aR W'0CAsI\3l{GI3ܸyܠ2`[a$!e&Wsڦa#jm_$Y ۠[ ] 8=^/8 _ /x|ks=@<BաT iouz$8a?9[2eS d/4X{mDE l"8]^'+ag ;E-YP@q O@!v-DRp^ ,vbpbTрEc4d{m=.dmІA^K\N8+qxYI0W)NV>lޓ[Eky|vٞ^Dce2knJ*,&,l`{$^VNg?hy-y:4Q8|e[f+oðO[J{%ezA {K={a^xQrop~aO/~ֱYɧUpqlRT-.| !C*r s#S^WdrmU*ϲQ^m2s-E (s0&ajy)js2LciV׈q9ӲWs2ma{&}qƋGY+}꾻@߆dn#6_Myw Az='`/6Gm=DC?DT6Er?!}i.c])_}e||y~^Sk+{E&4 o_}1 V0+kvXآy=5nZ$&m  D @$@V˔ DuS/o~~g/>nM_~~vm\y¶w [MHg& *4ak/ J`[% DuSin6lXq,.M4  TNN[lV ܼmi9X±2OFX2(/܎e+|VV4 CUb{M^-(VTPYw0+4lU(@'}}V-ڣ&jq{|=^[ ZaU?jD9ɮs{ݪklZ6#AgTl*ʩ4a|Jzg5ϋ{5- "$Wt\ IuՎI?ykjC9poCZ 괏addX mY2l?kPo68CW^6nM﫴\_K}|f<)Yﱎ Q[އ7.7?xG' #wzbგxU"{#|~J7H.+Ѿ)/uh#_!G;TaOBJ(,0e<Bm_5\Wk7})}cT?%w(bk@۫W,[Lr}~/|:agOH|_B=Os^5y [/|lymf;tlOUL;:v̅|ls>3{@c \*9ʌ8 NfTn?o@Nq|q AB?AOh1^8m=7': Ʀ^جVu<[;2' n3χ۞x"7קW}vo|<տ?:?$j]zMl5hKJJhvN;8>~[N{5g o]FD[{҄U0a-B_}I:ΔpöP؆7ƴ _噃Vվ8v{7A `w{y|Dog^gk3}sοm%NW[ vѡJFqtwxis׮>Ta+m\6+^w`Q AfJ {>tK3W*h4vvX5o>OKҾU=O wqПl b0JpNlu990rgƄBMYO| mپЕ"*sЪ{q4'5՟H~%/PRo^ՃWl#o2C3YaʠOھ~y1 A}yaH&d'i k$_ק , >'*`/@LOr|\s1GؚFvl͂l?grt S>Ysil)tA9R,픬jEjxr?I`۸2-JW+Eڿ^2KIǬ^ǴH{V=Ju~ = lJG㬿Yν{@~kfa{ϫwʺي[r~ 6(M QتNKV3ad҉EрhH Ͽ}E >\V% lEUO# % ۳ϻnjd*MYRgcDU@ZE)sO>ϽYleTc.(, s/8"FC0_٪8TG/יJrщᚬ1[S.Pr>|RBlQK. .L‚l>TF#E 7JG! m sϿek`뀶*5;UN=ͨ<ðzIU -R3RN\25! ҄0F7 ^ti`GvaiǫZO3 իճtrJθv O_!j -ؾel_1_=[3|'W=S4c0rlCAիi%):e%y^4"; [=_ fKռ-lI-9۠y XO3-آIh!ΐ0)LuP&u!j Wul0l8nْ, l{LROJ k׫P*hי"W"'9yMyH}@Z]tEy]Y`BkxpIA&W'0iJN4rӰ=ZԲulEh@4PH /q)Ub$`f<[ #K96bG$ ԮRUn@VR϶vOt>iрh@4P3H ZS _ХW\E.p2l*lE5#tigigрh65lᤂ`9[W%WPad7Yy ez*-рh@4H pR5KS_ p򫮡F\MFY~ZrB y|9 ԾR-;'X- W\u+IWXI+TTP9?y3*{*25/^5+r9T#}AIs  5:lqe'/l׌$W*;p+5VՇUpQu f*'$hUeVY>LC}|_1^[^umSoUK/ jSiܼFun7Mf^h@4  d4l_c؎!Q0˯ wF4F8ڳs[6I/ D` n^op0l΄qcil7Qoq)emRW' ҄ eʄ-4cxo-?RG4  ҂q,W_lk=6Iۘ[ͷJ'+NVh#t=u*`[=L` F+]ٛo lEh@4P4lMP7g5~'~]lųV4  ҂[M| #ڝ|{'jtdum.+^h } [8KQa-~nsw'l2Ih@4PH f7-{莻UVγ!kCwD`<*2WLyC,f=ۄb3ǹ^xqpdvY>鈅y R{)4S5a;ݯlkmֳuNtg믗R6r/;g/+dtr~ Siv5;s8wg;=qX Ԏ҂-[VF?-% ҂~D2?Pŝ˞%l-}[8} VtZqϛ$_&Z$=?;9/@Zx2(qgǟ|iZƷKx>'[9.EI:C> K75E`1;K1C=>E?3_i؈qSV= R4Tjrb/\K'L2ߋxqg[ՁB*F<9Fۭѝ4 a~)+3k#H]4 ȥ҂Iu4=ɷO2S|瞧gÞSO?ͻz^nd hly+¨z^^c# P`-z>̲UjP0KVn b0 IzmV.pgEiJ<=ru ˯°}i/({|mԳB[ -`׻u:Md]c­}>^,l|B/B9b5lqCa/;/V}wla OпeМ߳N6 VGB $8\w|Dii -I}4Kg+啯K/rl*/m(l0a[o֚ #d!vj{ ,Vϫsq~g J4 (P [8+^ZI+^v \7|g+*{y+>\9/1dѕlŝW_{^yuzUkŗ~ئP5[6u9\_'9K b~Kߙ0o^-z7ߤW_ꫜzuM >RW.uf@Z˯ `wxm|^gꫯs4G>C:h@4  ` '+ 3-;[oޡ7پm.HCr  EiN*c;wWl|#-!h@4 @je'2(x|}=~يg+[D@k -~N0d]\d {l5CoJ'+N&}D`7:Nk`` ;tB鄢рh5l9"p\c[vZn5l}}^zm1\g,;c9Ǣ@H rDxuc`Z{^[l2I- * ND}V>Գ*SʴLKRisNsZ0Cu(_R dhĵ#銫M2 V/ nD=[ʱS 麻zwcɪ}u dP" ҂UҥW^MF\x z?#ci^{lW6ʳg3NGW5^@?lSɅOΑh@4`k -[ ٓ6t/f龴3ŝ{07h(7<|gۘD+AVyۼ ɅT.@e5l[@쮬nCOlAP3p͝hճ m|=[tv@yhF4P?4lS~Q ]nK l|-` Ж;͂mB ~[K[JD0 ] [npٺzXb5VU*7Գ˅O4  Ҁm]vܝڏZsBYU!d v]r |i`9рh@4&l[wmOj٦{2׶f¦r&\y"nh@4  ҀmQ4m֣ԪloԢa #7RnQMG^!V: le9~/ϗ(!P Ҁm}=+[ l[p|m+j[DSg+;_94llܜK͋{PV]Nnֺ#vc&ņW3hÄ؊g'޽h@4 HMДiYK,{Zu u}ݤ`ۺ}Z3eζLF2 ҀmiԙԤE{jܢ ߶|nL=[,MְEY{/}@4P4 lIS+ڼXYlآ,B JHzрh@4PO4ls.\GYV VٰEYa4#TЩvP&+]b&UB/6S#2縞|UןQk9ע@*mZD&Md-3adlUe-` !86#UƮ窀k&⏬7['B:h@4 (\ ۿ6nAm҂vjڂaۂ֮ ltZ [O6MiY_Y' NTYf%% D9@:mΞk"mQluA:ޱU^.lXF;Rs+V4 Ha=f{jq9[F6K0$Uq jr{>jEрh l5p aˏ[{6Q=لa`Y!z9hणyE@j MejlEd+29rnE`ɔjV#!_.Hрh056lwܵYgS5 l SPr* 5&lwܥ)sFF(V<[E@}@ڰa @j6/n>5VЈD4a *u RjGdrAs- w n(lZtK  ?n֬ l5hGdrAs- w Ŝx{Ǔ/}@4P4+[H%iDрh5 A4  rmXBE+T$[ηh@4Z$1I4  ' lųh@4  X5 [I(#4*z ҂ ZB֖لʅH4   [[ұKǒ)Z L 8l%P.Bрhi m鯍 RV:[}l{EYG`[E'9@}@` 64]쳕V:^Ѽh~k@`Uw/_4 jVD'рh@4P5 V2LjD@5 q'u/+VPyzN"  lSmYE9V3\\W S-sUt@JJ4 ȵ ><=꾂Y=@7HZ ߀mzs?'ʳU-/g~t\w|јh@4+ lix>ju=X.Ϋ5a!ޫ -?X|[-@i ->21SGl F'򼰪^0d4)l|)G_g+]s[ZZ4_`4úګ䷋w# G zUrg[аߚ4 , A lmبZӂ=ېz^Vyen0*,>/^˨>z7E`;y*I 5gmMF4ڇ;B-`~_TY^mvY`+¾+@öYvFl`A+-рh@4PHzE2[g~YmaG.rE@2 (ljK0fjdleQh@4  Ԓ҄NM[Nw|-!}׸-2(= ,*ߞff@qf)y٪\Zč@!K>6+V/*q6{|}L`w1Xd}I_WۧVE/-}N҂- uLe6˳ؖUwwV:p pAh fw瓴_mq%/}T;&9$A^ps?G5 [7qfÝȱgNueF~8՛'6<皩S*f<s-3f`|Lcz {+t%"XGI:ޣeǞs~;R'H.+ѾQt|mm êx6TJQP6ώ,vCD?cOlTRoVivWL˺u2"y2LC׆|_wȸzq;pV [s!1ޯk{ʥTjt:|ywhqg{ύo6KVjq0%X|l"?AOh2C|zqwG~t~qBMc/9z5!1خa…D^U6,tWo6yrI`u#quVl>?-B?{P'gΚpP,➯6l"B7_p<ϟ7A I6qP{PX-$x|Wzӑ7Qk@l77yQs!ZwV:|\yƟ[{ǿlsaϪG[:iE=[4COx u8Z`ƭk?Ō&`#MW/IE1:7a]s]h5p l:\ X8pƇKמ~kzrrl4(ݹ[g[G`&Z#rSگr%JͳMviFg+}Q9s  ҆mSTs,M=>21`gk / nK I#_(]hS\OF{ij @mֺ5y[x,V`+MSY'рhhFaFމ| 0tQ8E@u4P mV$J D@ ֟]أm<&Z8 lUJ&`1יPr{et- ҂3yq{j޺=b۰QFlQ'h#R|*'O8*|fwR#9 Dta-v%cbu&%4atjZ:1lNa9NSO3sb/1me;߭SuJϯ/C·hf5lhYTTܑێ Z@#W`um{.N&Nɰ-I [-DUQ |%lju~yf;h4*lK:S[bvanmmǰm.;`M2hlU _.IQ 7Po3zO^t֢@:mljѦ+[7jٶ;lד6lL 6oo{ҮE=غ.EԼeHfb=ʹ`E_CA-z!9 [^PFBM[&r[Bdz:\ӌ$&z=[uf]]ƽ_."5}͉5l4l0hQqAԦjuO퇴v [Ynp[IK*m/AD`;m\h*mm?ڸ#v;*6/DM[x#guaUVuFz@:mEfsڡԮ>ԡǁi ۝L³mHjYĦsbE@h -Ngض;GlFB͊ERWK[t>L{]΅ рh4lٖtİa佨C9 ϖjd,^m/j=AI-j!{D@4l[ry.t6Jދa.rnyʣUI-8Ԅ35J' D@m̫jj" @v8mc΍<-Am5|tBрh@4 ȕҁ-'Pl{QkNhQ[J: R# k+RUԹqqDрh 4 l jlũ 83UZ;viA;pm[_=ۄ%j?q r DU@:-t8/r׺*߸a˅Sv]n?܌OL)6I!\1(OtU/"Wh } [kQ҉:ߝ?(v{;7ul9Ϊ'rzDWA7{N *+3N֋S)Յ|UT"Sc,/+ UNKBl=$kGJ/7+m*m*;H]϶\i[T6l:eoզ<ۦVt@d߬^tޠ4P=q (4plt7諯 (׮JW_ Cݹ0ȹs%HWցl nxg[N0&\ k!06km^"N-`M.>ou]:l_u_:oWSS4Pw4 ph9h¤u Js`Qa+ ,׷Zpa(؆_zk0+:4Mra;9WrDjV`W$ r}r´|~_e~6ݎ*))7MlǗ-[/ riVLNNрh } l%Md%/ҦҦkFa}YjzV{AIKDl lųV4  rmXFx2 DVFрh@4c lQzf!>*=RVFiI>K$Y lkk.SH=ۚr1 @6jPF3pL=V/iQƫk|?]?~Lic԰NNh@g+:N-#Z zIņzqUkܼYyJ>:7~)ەz׉&D4 @vzK"{ml#$]܁_U5(^v\nEBν{@5 q֐"zsҶI[D5mO|\lD@i@`+рh@4c ls2rh@4 leD+ D9ր6 ,9.D@i@`+h@4  X5۵MZxem͍d*m- jWJfj^t0@U4w5vVz"rT\KhTA*2 3znd}^ŘzTOUNG:h@4 o l2w3@hCͺS"fپ$b\A~Ks-\P%'r9?U@uma|ڲAxx(计mS`~,{Lrr=E@~k֪&lەBΏрh QԴ"9۳ W딣Ӟgdل5=Ux<^Uap8ir1 DuKy[ǮW ,RRϛc] rgbyb!z2'sрhi `њԋ[#\jA>[  ԤRYԲm'jѦ#tP~Fڦa#jmZąså^t\K>[% DiV`LR RE. R:h@4 _܉ vDрh QܬJ϶~d/[4 l1o ˚JgϝM~_4P5P+B)DMC7rq79rI[ Eрh QҼ5Prڞ]#'{Ue c@Ҍ|$~Ȩ66   lq² T{S!}i} u'ؤoz竾\wf*QUVS7k=_^ml[~46o`; Fǫ줳4scKR7+Cg(  6X ջڟgkכEج FNROC-(4rvY^Y8kP <6hP]zBT"9rn ][&NferƇt#ayy`eҬ$zJR63цZ,zp=+5Oq6E[4 G l-a$nȉV{!9n^/$m~벅v99Couׅ%(~рh HyLYl|X}7ݨnj>fH7ެ@h/mwko~|ml&i5յq IޯkCU\"& U lj#qK^8D H^1NjeF!W!Dmx,Rmr j x5r%ފdl#/ j@`+T DkV`IS[dt$DmG3Ngs%J4 ȕjMZmlӯZXls% \8Dx  lqӯ9HdZV:D|66 rԳue#&g qgEG4  Գ5r Wtt:h@4jo 4^,l?|'^>O.&рh4g~ԳoZ\4  jM[%"9ȳzNY<ۚm^Z4  lS7clcDǐDij `ϒ" Dm䋘8& 5P+ż-lrjdU4   O[leh@4  X5 fۑ^,md4.T4  AY`+Q:h@4 6ǡ(*r1 D~ l2W# D9@fPEsET]F2 D e[.+dGK"fD@vFj^ܞ")۳[ˍt8QPt^Rϓ.-w"㫧zzHG(HΑh57@ed׷Fz-`lV <L}E|U\!1<ެYDί_@2 l} 8!5FsCU `DSA2 DB@Z6cjיZD-tT#4lD MCZF֞m(lM0F̃FbK o7E:pj oDU@)jdaۀiy 5=P1< e/n2<_][J̪t4y\E[y[sAQsտ)`,R-ަ ̭?+'_οh~j o`+.]4 Hm9[m7n #ׇ(рh@4P4*lR[Yрh@4 04*lų59 DH7RH4  ? ]6'V<' h9 Dl{=Zd M2%˦Níi/k?@` tQTAHM>7+?"xIIDQ-@W__짟~#}7g}NoK*6֞mxJ'K0VBрh@4Pl'Mo~W_/f~A3ӆ7ަMЄ ##g#nNs-kIdn a\K/8,а՞͠W׿~'?>~v+o*6"gΖ=[6}4ܖ)tA%SqnʦϜM͊Z> cwE^4 M _@?GB[|H6l5k6oG[![Ocnk{kl6ڎ6nL]P;eiԼUqJX^ ۰zծ+,m-m- Ҁm-hTܙN]=۰3H5ږ4v{ڸy uu5YsS5$ ;rv9mvksd%-#{рh@4P;H-Z9ԦGn73p[6mz Fn((jӾf`Tn%FV%JXoW^;Bvv jSiiV4c\jׇzQlϴyg>{נ=}t1TMXo6O|\lD@h 6/)Y SA ummܺm=`mV8 ݏWټ.lu)U}*gFgF*'Nvv ԼҀmQ4{Bא96}O`?`;`Ra+h P)rj2𸐼JjzL$#Gŭ/na V&⋯BmW#Ԟ*,EtvӀ=b;PK`+'ȱE@5`hС4s#={,ضґ<*ݗm?ۗ6!m~gjVJ'6 D ^pT1{6=䓞˴z@ض։>q9o{ۿ0lysnCg +JS4   ZildGnuH `gHjdrA YF?s$>k 0lXeBʞg֟C>ngbjݶ@@ėDuXi[v@s=F=އzh;ho^ !m#/jԢ=bJjѲ (V@k 0rhc >2P!Fkܴy+u3(BƢV%"Xb lH? #7oۆf=:vߍ6m}N!-ԱG?U>4 BINWU#mey\Q=*5Ҟ@logʕ\gCjf4sY嚶]#;V`+ Ҁmcz9qkQVQ4Tw]ضlۉ`Sx"!Kb\ٸ{^lWwp\Jy&wOshlsc~u6 \r- m]^h76eΜEw8FضnEAEʦNgm. o]wߗ^s&5Nm>? zq߬z=o<<3 $2Qg?O`^' hk 6WaDӊ[[lU|~0Xc>Qya'L %'^,x N\?U#¶mت02^TV_zN #jzea'K@ KӳE d ?IV}+K`+؊ XlC`Il0rg Ƅa´zN1yY= " -I[5՟ߘɎ߿HInXs!Z[>؊h64`5lW?~{U u6{ﭥ7zVzo '~`^ad-`!&߂98ilD+x5$ hhU4믿enQ`}۫ߢW D-W l!dE2K)鷩\MEyv…W_ѯJ~ʻ??>oV.޳{4|س,r`@ki#͛ZƂ-R1 '5~mIǮI-8,Zl B#[GވC.r Dh &#k*M1;;V`+ D4`FN0m:#&yJ;D@gy- r~D@Yت{]TA4.UB"t+)) E (lv \ԵdԳmҬfœ$,рh@4P5P3:{7m]{S=3f-e!xрh@4P-? 5u46lmڼ:@Rn}hԬEn`Ѩ?9@-@۷o_ԩ]{A\p7NA8fy="hiV0u;ٍ:@̧V%[ъD@Ak ʳ=謳΢QFԌVR lCa-[?ރ^RGEqۂn4FD2 Du[as:|ҢE@LR>϶S'iG^р=CUbjզVFрh@4Pа|)“]dAEPni9{0 @h X ,Ѻ='O4 HC?ʁ 4K5 BFO;>oGѰ!*.XJxm?D>C:h@4  4l0@gmrWku ܣi G{p|m9.鸢рh@44l,X X6g(4xRR(MDgA4  4lÀ1 K[#qБh톑ų^D׀mLO[@jѠjUN"w-F΍hf4a hVbHm}|HOxO!?'MƯ׷v> e%tP[qǂSݢ55-jM6iBxnܴ +XӢV 1w?|F+zj31iрh@4 5p ']h?q:k=a*EC .L=y h4k|YmͪLg[~^?Sm}ߋp ~Y*a1cONϚl cQV1f*2M>L6&O irMl ?cL#M16aTMB {N&NGblWe֦Sy]v|Go. ԃ+u]5o[BmV{-JÆV9~Mq~--=num:Ryq{j֎ִU[&-ېi[PZTLҼ5EZm;5mIq&-ȴ4.8qTYafg޹)USmgg~tyyњҷJoA`]‚|<ߒ~P?N}/%7A}%f?I'*zX5mav? OP_ҿP4[tljܤ)APYou  ;T R`m:u15^t>6@M43fBV54.J mٶ k Y-r ZZynħ6=۫\CՃ-h-{ϏΧÎ:+" U@ k@"̫}!3 TM]tJN`0h0]\,\b*Tر$&" @ąɹmXXW6N0:3imTYآ/ա\MlZ6 `m`g͡޳f. @M2:qU_7M/*}șa]Fv lvs?sne +|ml*@@@J+tJ+'9_z{/l6Y\ykV]uo## `66[OwG +jk|ȏ~wXh?N76 `؀o;=5*GC`~МGl@6p#n׽2;,WÄQ~{'ˆȂ( $6y WslhВpZ׼4PP[e}͑ BAl`l`:!yo5OPPS/?w?@qs<l/M\eئ(((0 ?<8=qN:6 `aZO9~4IIW@ ,W^`yl`(m '>\uH`7؆^+@E٨a;606e4*@`t5h T89`6P9xWl;(0 GZԏ e, v՛Y7)}q5> n7M*l_a`9+ RRmVU~UWn3aC$ 0?0O<֒ t z[uUc_ٳg)SDh~\/n޸fx׻nA|tzӒoP! ,kcVHלl>9s8CKb4G2~} 6%S`zRU?5|0\{/ǕW-T O=;s_pTiӦnɝ}nݾF/iMӪu],[w-CT|) n7{xv;(; pp쬊).BS%̹7y: .M?;0o׷.ziU^:`X:,.Km{)[Y?rV4akֵr<i5cm[Qv7OSCE3 B-*8>ә?{׻5zݑ3q.~* ;X-VLLJR7*?"8#*UV{xcοR7[ەG)#_ByL dԵ@c6Y-qڧj{PX;70V;_,ɏ`Î3r{{gUW]z2&igD=p;i;g'j l-;d.++jXEXP!8'UbEfW}6.xZ몬w=׭mJMmqX~ץunVNu< U`ql1G&aǹnnpկJ}knҤI 5qq\=vP, ؂CvXA--bdw. jnVjbVGPUL+cpmuYR  leŃ_[) z[1MSY\~awGeYf˲;Cޥ`bleNED=AM9a *3ܦE|cV.Jk( ufYjuQH~`Ǎ3+IbN쏱&YsGRyGŋg}Ҵ`{RW2>V3k;v ]X-v?99} :Tɚq'z6݌.1]3zlݡc|u`%eVdj>ZĐi'RY%*Q-x 5&Y1vӧOww{纚.b֫5q^_ ZO`leRE'w= `ET~bAm]Mgkd(`֜<`yVwvpr98MdfsOf 1xc~ǝݍCҵ`ble~F+x Oj݃f*N돉MB![bOei~ ;WQFP[C蘴zÉXs[Nϱ^|U vhKll1G'G{UVi⪫9O^xQw'O 7ڸ'n<(s ,[wt L)vTW/6ߴ#slde`#`;6=ݡYg/Q+~g'>1Lid͘\r:N5`X}F: !kT,)LƤ1On`9:"_W>G?rozVF-ɌP/Z& e2/`K`XJ|r`9:1;|ww;mܣ>~5*]nʔ)L>̠;*5`X= V*li`ӟ/<3Ug?ӀleR"{]w uk;[oT:j?QY3+W Uչjl ->}f=[c,UB[ovmJˬ}E`+{p*-{?^׻|;_lTz'̙3nj41٘Zgόb6ݏz [o}ckSN9e еh|:\u^p}l? `;(,6.Ċw}wsql;C/FA.sm(Ns%8}m7|IgqK~򪼢sᇻ78MEME9zklm` usW~3~]F]V謺ݎ}@~ۧϣJYӶ=1[]S7=[kܩ?6.|n„ [vw-Xj&foOq;6J`167oϯrvS&oxct$7xjScN9M`5eMmFrUm`V&4@4UF7c) Zv`}+;kX؇~)R;cƌVD+tѨ㏻~v4ԩ`;U}6YSoQ"lYXEDZXu/#\?낫nFIYvvz޼QB;& neq'pB*zǜy{VF%iƌeٝj'm5S^me tjrqymVPv 63MS v޼y$bk^K^0%7{r"OOg}nTַ56̹`;m6ӭ.D` -F`($S`L9*F(h8c[ ._#p#}=[^ v~OQooh7 `jlYc`yc`:1]*a w˝Rȫ"XŋSO=4AN~򓟸Y/??}7v,l3K75eVsF5,U`f_u 'cRuX,XHCusjewi lW} `;wҺns>&c`?k]};<[{'kؗ^z}ݭ|`Ts}3'Ы h`ZuI/m՛^$ t!:8C"K-ԍU>[n'\VDžj)l٭2>8`v6mydE`\~y[fg!I~+sϹ:˭ڭ߀_| .׿oG?Tlg /^[1X>`+C&&%.[R6 i5تmTl6S) vnAlW_=<7+դN'reN}O?>O 7]veNYu2pUwaD>H/[bek#li"ۧ)߱ۨ60luDž^p!leRRP] lش:3ßYs=+nYmwfƬCu;KYt, b-ۿ23hM9m $}| Wy Nm'l8V)z8[A_Vmm!@Tum:^AS`k ^VIIA( 6W  `/H7[ɎH*hS#Xnn9Gs.pmove;Fg!3g"[EaՕ(o¤YMyM6q?Zլ$pGg5 Kt ׫WNr] f ~0) KD[ ԮyX}/n;5 *?Z-k6 vNuk`\lTdAIli5y+J*jWYj~&2"Vss4_IօVKwK^\1=, 뮻m?׿R=eVr9kO^ nMpsM CPմhQ"El# `6ܞ5a楃PLJ @in=]B<+1|%>9 ЅgϷ@ēN-Cy{=C_\0f/M_B~z{+b6wۚku5VWa?-x<O=b+B[v]V.9"DW44Sd3**p?cUWܢq^Bg2W LJ @(T$ai$ɭkU*7H7Vsϔ-}Qm"mtubV"i5ցtM~ j=guV4tŭɔ` YMn+GWCUa.[> <~>2T^O(E҅;9&sǿS=et> >㏻6޸>*ɚQ=s[?Y;[oeb9?dkl}݌ګnl{`+*P {>QS'cq!/86:U"/@Uweଲ p'X+S[0Zx["Ν*sΘ5ӓg$*{T!>?w?.ܘ|žs9j+XMKZGmx衇ZhsAo7~뮻57 =<&a 'b<|P  , |P,,*"yȫpb16u-6Ej<Ϫ`{{;\UwъYf̤MXE^ ^H@v{p5BEa-i 4!Ԏ]R `m`fU 2:>E*iKt 6V6`:l ꏱXK~6]ƖVuה+XE/^ ~|Aett(+{r0Uz=UDu7q x7:Fp߶ŋ&s;^O` W `Umnx̚؟ *` :k]  jl۹Õ̜VL"\7ovfEO=XEc7JgΞ:ooTR?v!2HZW20[AU(PMqi4)d6{+ykWegc ږQY~TyOOQa;Ͻa5Qǻt 'L/'|m2ՄNZSVsm~C8+ jYO:ia*1 qv<9c7W RYwfCZ\NdPk@),<~],MiPo]`# ;p!{mtXdGbTr4a2ɢieذMlS9Wdh_ZbǯVKc`N,xlNkMN_j݀#r_K"}XT0qj߾{>EO~Ҋ>mSS_"gҤRբD`;a![i ; U@e<2f=vz%`;wB=]* 8P$bkzH2v~Z3x≎ֆ6^șr7j?i}\{ CC"CzD;mǍ`;wBk -ksHY=_%u '-s„Qx=)9vV[fVM_cWۍk}rK `y jmYszʶQ0KWXθá![?Q l)`{yU8i8QXomn…|u;(^c{[K쬝@ dw*7/5`r#Ofswedҙvv tUE/ [21)iNeQ Ԡ 5hUWAsg7 `%I$v5pW_}ܔd Uex6r<@k_kMXMn7܊j4쬱D`c leźII++PXF s/kN>:k t >͓I`8yV[}ݣ_ynqۮK Ә.7[`ͮ|u׵h$T}{νpPЫsϪltӮ)5`+,ʤ`Xz,XX-GկvR,UUo׶0%["Io],Y tMf)I8K/=] leN[T,$̺`;wԲVݭ(m9`7yw(DOLn=k_Kf͚4@W+}{oT`;^Aۿ׮W63y1leRRP Mg.M4+1X%>9 ;V,+ Or8'p,ĚTdM%pdg@7cn7Xil.x?=] le[T fN*lw[E;j7zwƐjǍ1ZvK-x*r$w)<_jml`;^۟׭BB\V,(uwՌlG7g;;nܹcV /LG`yo}[nɜ4+7X+Cm c۹mn`;v"-U4~DԤdj>7'$pZk3eK`;wvNW%vm-X{'ft\ph"Z6Y+V3+ ;)鎬oiYPl+(-> 188a t!.A,q\7v檫Nzi"i5XկKerAQ㫪=Xhتr9Ze7qd'$3tI-UwauZؑGcً5Q {cʘ&nUWmՕV_ߊ |$: 56'6rCQY>%$O4VV) vhL(VPigItؽ op}\uX'Fd78]tEe`L"~qhj:85D`ÆMS2W =cߏ؟#Hߒ8K*|yd_jd:xmS޵^yJl}vkOYkÎt;sT~vMʫ2/s7ol]tWˮ,vjUF: XoD`r۩ 9}3>}o+2Zb@v$.X͓w `e]뷕29} g$%u+-Z6NƻǶh~[;A26^1lu~xH>Ul`{%0mFAvsG'h)ik5Ubu5r4nUXM"U6";`]GcWMͯr!SLmRkB*1s`#d+ 2Iw @`#{(9 +2 믿; Af!V qvZoѕMlm%dX(Nթ (^u 8`#mmh|cd2ҵ;쮺*wwm7h F dW9 B;I6 f!nSluG: 6YBHߧJ+`TjQ`zR Ol1GȏqZf5 J@tƌ[.\ `uxd<컦MsZՎ1]'.s{+)|9W,[`*lYD'زr PStͽz8 hiIG}Úk;oC{x(ܦ=ߴ_-}0w9 V|P l1G?EW};`ۯTޱo 9s渝vi8#g4h[ [`XؽV#U"nK[g98mjyMԏ>y{ح/(UHybN??hp\k`lÐ XUY LqX1`|O `͚(Pll1GD ~H!?;T>3Nr;Zp'V~Mn}l FWl1Gq) ~H!?[ZAͿ1 - {`X} F: :IC,;s6>c`#1[Ы6l)6a)b`8ϝ*`|k st 4 ,[7tU!vybNiגetۀϭV]uh~\ٳg)SDh~\9s8(C~ևoa}79_6@ϰ>,=y;tz7+|~l>/n5,|-d_XIipkߋj8/)}dP5U鸓m`#//;/֛aIyMkO'Ҵc]r \V _&~|[IFj&OѣjoWn>(ȫ>6mJpAyrͿ,]#dU`bQ|97_Vo 4A6*z0[AeͺU]W)~]X6a lPOMj'iHu,蔵Ɂs`b O'GMpFtm5P68Zt<+82X*x`˚`b? 4P.u8ݾVq۷"íϴOIHU:VyE4G#G-[y/^1]vn{Y)+OWS;Vm QI+-lWYUv>vLzk;ZK?_Otva'kb?Eg.Yc[D`쟴dbКZV=#[Ѥg ς߯}%P:QCX(=0Pҏ`P "zog0npp]ʷvXUiPC4hdD*G49(lN_ڦ:^ Ͽ F*OUP2iH~meZyt W=>N@ nZIwQ9a8.w\Q[!y sK%Ex6V`? u4bWI zBPAy  6i~\( X3PkAV,2@+S[C- :mR@hD0صs#jsxja~0:c|K!эwr:`l^ygKϠg2np2`*3fu[[:ҶOoվ:m}HPY hVd~-|aTYHgvQ, nkiE#,4xjږuJ{=tGdW럧{ܐ l|Kڌ=#%ې%늬m>K[+6*|Y4eX%ް~àzL`# @AjXb(`+ FCS՛_!kcpp986F:VLxu`XĤY_ y/ד={e{>c~$4`{fÉV+ga(?ígz 0+$+Ut Ml^vSV6`BBdaN7-*:"k!6@ KkgҔ;`XϺI+yN3%|akz{ļ\ {v aOzf+IWlwš +$ 4UD`j61gq YD2|V6`}nNcl`Nb $ۛ_ [jpx]C 6ζ]u|XvyQN`XM"ÅbVeY6[k޷AoޱlWM GRIkRߺv:և:+;i?En>?ipipo]Ah8Em5+Xp[ڟ!l= cu'/3u]®u{ZP`X>Ll+Rƴb5P=*ǯ#X/+wl;H#YƖ j\3k̨a6ɢWGtL(ZSO`-ZW4sÞ#ip8 ~xU]۽W]gY$y؏5)0+GOCN'0vy"uONQyQVy`XnQ_=,gtZ.U /3VZ>Z^VmɵɝT oT,NwyJlr$o3VYgJɸWSJ{,k9iCГp6 l@S|_T蘴zGacTn/fs9< XPll3.аkw\ `H\X~{+*rQ(Pll~yP=6P ,&cH]/As tG6RW-(tXte`8j`#'N85 Al, w8 Z stXte`XܽQ(pk `x,[xE"w5-.ot: `H\6`;D`kQ7K˔!I=Ui~e΁ Yvʔ)={+r̜9s1'Og l`8zFeNeR tU"ِC\/&E8~D^ iuN0QRtZjWEUE=9ԑÎ,66H!?$ 嘥; } 2l`mT7XmJM}5}8H(/6F: ITWn>(ȫf;r9:n oYAc8Ӻ> .{Mw׎ #H;aY-뗫\EdlЛl,[f$v!օneq(FH &k M ®Ƃ:ZY֝V 4Vx[F}ǛZ9Y#eO[d,mЪUVZ0kqEA63`ill,[ زq\Ԭ'G6`& J+8 ZC8A^15߰I|NsڧrԾ"MC.ayc\^6 46U`ز:59м)~hl#~$3tvFj{Yc] os6\i݊<~1p'`@7mmsJX vU^ G(;YKdM ljuMV~?qX"B^x/**u;ܺF@/+B"3 4C6~ l)i w'B6cʬx[+.6n291`7u $[%gBDS' t? *M.OzjNdT5VU?n&vjkVTl4,VT5d`\Jgb@N ݛuou卣󩢽l@+ţë`IlI4P5NΕE! .ѱHԍ_`.ѓ6ɱ>i G٘p4) ngif(.~@r-6 B `+"Pnl h׭7ʁLX|E@TvΤOmiW_iݪcl@VዯN)L^%;nۋ.BH_ U-ǕvM `mWjZ>) ڂo+Seile[Tӓ2f):TeF!YN wQ>h͈mk3iy=2Һ[ `pDǪ fZL$Iu=ء<Ir'`y톶Ql'LG@`mo%HԒ"@ ]4ov@=M~WkVJ4x`# kgҶ-$:C[l^.>a]AZltӏfu !`MXn:.l]~>(*9+,i@)F^N^Aol{6`$U&R5ӘkTy!Ԫ,"! ӺEt!ni_u#lxwMOl5`L8Al:HvԆp^[)-kc`K4c+еq9Z+h7p__$bΌNӮv$NC~66_#rԧ[Tllus4u#a4j]ӖQ9f!ƂFVݟXkcy?߀7mc.vmȯ_ߦ4}flÐ ׈)֧55U)$ 4͙=dY熓9 e%`Fk>#`}W6/ǏZ7mU]H[(m[ɖ*J[c6OC~66_#rԧ[Tl,PH}\m \fat>`#`aw^9l)#lt>`#`{4Nh 49n*+o{lÐ ׈)֧55U)$<z؝I:mtMLܜ(Pl-2SI j8u:ԅa@ltȆ@ۀ 4A6*8Ms&i6 `u0 K(rkȫ ((R `M6a  l]/Z(0}$!F,dӜIڃMb@6*@*059CΌlBG*((R `M MB`kjPJXɦ9:mҫ,/^Z 8u:ԅa@l!BUkϙ,dӜIڃMb@6CQCp,b"uaofs'ݰ?/[11)iNeQ Ԡ[TU+`Fly Zf &:SϽ96 VY(jPAd@`DN{l`IX7}}ǀ{6`mV[͝u@lC ̳`+RKiA ` :uƀf}ln„ yf[w ,[SV&%ե[$W4v?~(n /tO?t/2te|llU`+*P`zRr<_ʔD7zz瘣}tך̶ s9gMrcjw/JleRRP HȝT @iL6RJ"q t4p]{ٳݯ~ctx0g`5"G} iMM)F  pݰmēNu"&Mr'p[x{g;J*GYٛm<\_g6akDح\Q_ *F}y[{:r8G|IsU}QwGeYf=zPlt>P +kv)D[lm`΅8EB-**vÍ6v_z% [DOlÐ ׈)֧55U)$6I^iWw?яo~FuQc֛-,d;Y6akD`Ӛ*R&o01c[c5ܧ?8/B#OS}LÎ`|l F: |Q[ƍIC7>ll; `կo}l9soƤ+M2śyc|l9[`#llFO6 :h\*i6RL4606ϟ﮽Z]vzw]c7M6g}C~IĝP';MWtwqi5uZ/*_>O;-d#C%t` , `M* @CmG! wl-[Z(vrk @;sOk\_zw'Ig1cymlQϡ LLX%ih4zӒ +6ު%`[ DJJ|@+p/bcfOfmƌ=s_pO=" l 硆C47ޘX s*4-(pK;=(CtqxEi2wb?4&{cNf|l*t|}?7pёUIJͳn"lX.lD6ޱ |( ~o[y駟v~_;nحl뮽aؑh,L^~}Q ގQW2qg>N;GmW_wm]|W{&Nt$3s}ZN1{'>~aO}gqƤܽ3>v>2>6خ P, F,M9ƓY};i k*_9FtrT4Sٳg 蠌8;F|E]Zw]7UjM>hv[m?5&m;(.3~| y|,$䕶l lwZu~ŋ]GpYS4.r&YuUT4 .z?>V"wt˻ɽk =SꫯvSNuz׻C=P:~GvHV;`+v,**`+2,[ǝVqlc /gK r!~ss믴;}֨b'p/g_}~u _Q`+s,&&%U6  Vfm `X;:8`تfʋ)7n\O>>^{mw/=M_ֵ`*~cq&'`تl]9, qU\Dl E}qf:o~MI `z{oK'?qYkz饗vvR;,[kXY1RSf몎a%`d(/ޫ[1n‹^L~2\Bg.>>3WkI[p+vש]{uB\{H= CJq2`L9]ؙO8'`)ꋻ7) `V\ѽA;+[nqN,>swzp I'?8u:)*pڴwq馛Xo*V*pH)NO,{vuebcјK AS槁ne_J V[̚,[5(Q^o5Oet4 MWt+~'I&KT}#i[`߸n̙nM6q]vJ">h ^mk{le .IJs'Jjzu!@j`y;nSUleRsX6|w/5],UwMWY=72 60)b>n-,/~-Zk/{x#8WM$@O.֋vr`Rl8XsVyE1.rL/=8J9,t}qrNY+뷢ߨ-;lS>{`Ѕ.nY"28?':֌PoTȪ.ĭY#_A-srX6|w/5]<n<}~޿+#Y(q va7=LJjVݙX-C2 8zKS 6) %t ,H5ձ0x˜]v؆i. 3,'4-(`m:xѾ{9O ,hu!u`F (UW]8W?]q-{'ƺn FtNl.i`32+Oízr*rh CULe)جR@f7 <`MQ3p0o|l-(ƍ`^KM)`5)f Vz$عs3L;n緿=u}nu`0g#pHؕ7 2pjZoK`ZM0B2I]F'߬ 1z7< {%jXl9=,t}qrN?ywH2KևDcN_=䓭O?{gZR9'4͙3=i6s܍78fX\`_6aklͣ#Zq0 ɴYp8X xװkf&y`Eohl&q"t3l?^jN{v_ߚXi˱&waMdۓ1&-# #-gle^llЧ3l8!eD``t7P{BϢ~x?*+.kڊXX6&Z&6`ئ틻t`~a{>k-raӦ^5^֒'MrIO؞wyg4V-[\IIVI Z>Pz?nr0Yc`>zl2#,"D`0~H,$<5}#ہ7k lթm9З-sxX6|w/5]NVW\]vYO}j pq ~I#YEf6A`[_ذ1qDZMlaهz9 ha%~[U7a.'` +Dz8`^Ծ9^┺qΝ$ԇպ'Nt>hk 췓hwXDb'IVC}_ó҂SK[gtvfz+aoLlHX-B6Ӱe8iw.V 4Mn)) l7`2P85Tfeƻr$H%Q`9(>iw-VYŽAIÇzgZZU@)͟?5& [ܦHl~o̬>Ԇ&cubz\j~ڞIּN.~ «~bn:6`*2< `~~ǝ݉'n[4VՒnXmlfkيZ?(YVK~cJ VӒ`k֩UCMtw'nrZs{y_waG?] `oJS>4ϺϥkZ%C~Uy~O6Ρ`تfʋtXf7pH]{üB0U :]1%0{^2+{&\"m7&q,=+UVC^U/m[>Rʯn iG6ʰXԍ&]1yP:nܳ#X`GIZ7rt5X5q/Χr|WEфjtWEJ+qI6&FbRAoL7<[}o[}׊pg?s>,r8ց-]K9]R˛&qzܸ/<<4OM q6 v\w(Hs/~1;mD@6&5`w˾uXa7« VuGS Rۥ:&qzvSwuRHzSz `E{#0U:.oʸq9o4Oʃ?qn) `ӢGZFG>æk]آ%:ޫ {z_k[dzRkXuSJZzdv+ӂb #9C/U γJ}مXF"y!#1Cq_(wm֛˧aWdڮr|hqͯ'{cfEfkKu]:Nos¶uƻUVHlSmQi[ITEXLmwv%pjzTi=dօ1jIk *-<@n`>\XEmk3so6ƸdOݍ̸}c.ȂLIm3hQ(4pRmKoz_A)Oگm*˺Lox87Oћ9ZO6`~tisn'u;ݷѱ[f7!I X&~reG^4idccNf~馛ZyiL qN@Gs{nPV{`+3 `ȦE}ƈɓkC l@LFi@6?<FoVWo Exa4эrS(-r<[كTAl ygE`oI"I8}pK u$/#cmR3fMWܵ5b3]hIlyv2zD=1}?To}^.?2~'tNaO_6oGE`J,9]Sgz;nO{olZ" aY7rCݏpYC,r[=SMCSVcYSuq63l`/`/V֟+t;o-Y";3ۂʴفoF7yd⣒ΛI8{.3&`zK7ÝA|ߐȾ!K}!~ HYP^i=?TY~Pcɩ"~}ʬ_ 1VUFaƣrt!. v34B\:9)\ q6/F;;v…(jwOtw,gq[1 RAM6iɞ6Hf2`XPش^El[;3Ap+36;qT'>ֱlYmvolҥP0z7#3ó7 ~;Xzԃp҅8?K6Ζf'ƍ7؝}٭%o4V([C}sђ7'tR+L_WUw}wt`|Xc~#1p' {m+&`m VVNhe%w%.N/oT\9l ^ܽ2,:unWٵ^{kllt9,_j jD5~XM&U&tMNK=sk']> %N4u5K<l`rVXK/= o~[{e7%@֢GS[nT`^S~HVl}pK.QO,ꖨW|s7wHq6NIcx^d|Ig}{ĉ< bOO"h9\sM `uI, vhS+,\ y8l>qNsm7d>ڱEMd<,7pC?N&)BmKuX& ui9, x+igV^yd79s渻;*mF; b2:j ؗmر8ȔlwZuqNmny]ҫ_|VRIز[VkMF_5/6=f-royt!Nho4xtșǸWo}[_ >jyE_Їw1`$]|NcvJ+ ;۔΃q{f9 ==06]DU^Q,cqI6=Fci~N:f|2:Z'- `$@˻7߼5[+lE`e}ahE~HV,[e%K;:ph?v6pWu_(0&SOM½.?|%uh={_.-{Mwͪ9Cm3[)ܯ!jiy|_GUuնSկo"r&ʗ6VTgǨ qEf:>4r( ӜYZۧ6% ScjOUKlFtWtsUW~~5]yDQFmC~Jv$.d&V(GnyEbɌSsp4_?lhہeFhU":΢VZykt8!Z?1l-Fw gs[׿͚5=tzʶNCatUU2XC&)F^ cQİk ч\ߏpg]8eV ~ 5^U6i9 `CX`Z `k񱂬^z4"?aD\K.QF: |Ql}ZSSE B_H~wa`$Er8)F+!Zqi6-fk1g4]3>vpIpt>`#`9$N6Iuni3a*hL^EA5f.ayy2-Ӵ(.c`p^Y6^b' 0g`5"G} iMM)F s~et6yVPiqx3Ӵ樖Zڤ[Mڤr-8!ZdSN x`#llFO>"H!x'G **@󣗊k"Ӣayiδe(!XDmipE:~[M(6d?B/lz`#llFO>"H!ꝡ( ƔY6=Yup\o ȷ6akD`Ӛ*Rwn Hn7-ӺZg-Yx67v Ԛ9ydoәÓ<@#`qhDH&v.TF˱`ͱzmtȆ@۫Z6:J8 `@ltȆ@N@]o-yf9R8\l6a  l]/Z(0}$!Fl)zc6,`qP` աygF6O!@`Hr=li6ڤ21]^[l5)$4ՠ@ 8E=c3؀&tK9K+ڀfVמ;`*( KE8LNlh (\S(Џ l7tY9'=1"g>x4lEw6P-4tn ou߰m5StQzZ}V-irl[VVvֹ 6&OpSOZ(PlygcJ~kM}䈙NTJߏjm<_tOu18c i_nx=_<[ePV}nCqY'( a~+bM:ԁ((C]`A_l>0pɄ!|k#AS&v "'-qgSg l6``UvL+ׇTw+׏>}PC}7}LCrG@@:`scEqMr6 i|} (PH\dX[N!b[uۀ͟WoxQ}#0ni.lA[FGyնp=oEd:16˲AͻN?WϟY՞Prom<0iܔll#e7!0jD2bҩIQ)P#COt},šVX+W7}6?ڦK琶LhI;ElZj\f"A6le.Š$[=-O3`ºt~! `Nʀm)h <i TujeZ;غ%(`uܰll@{3ݚ.ƊZd6 kҘ6ʟPj@ d=rC~\jw{ .}PaXArVt5m x/%o ɹa@6 Uw_n̶̎`ֶ M` (U/ T'-H ,, bqY&C CtY|my@,aFb}F5! B-[~ V0ya+606tU_?mFufaP*V+|zMoZln*P`}6Enu!#~u, :v `6 T )`2U %g4_>-7}60‚߳X34lYiՅXMi݊n.[AǨm&oC}=mk5jYA'̆[c]~O4-xdG Hj{-F-c Hֈ&>doUB1og-].e`qb؆KfZ& 3jGJG:^ـ` ix)]3T[liUyCUg@RSX`닗aD7,ۢ*dQ``Aæd뭿{hImkjڼJkJײ68v枚! +*P2P &>p#41=6;H-E B˦iMݨKtWYe~#4 PPP`KU{CF\OlVҏTۭ g Vٴq~7Y*{Ë"Cueu,] ڡV鐥v.0M8a@@@>P`Vx,SĹ&//6`jpi[ x!*Ϗ1MꯒU>BiWhuvn~bMOU;i, :oCDZ;\x[inG6MD@@Xy-%gaۀ`,:u5aTpçAOI58w֧V( / 4`UO[emh9B܏]4?Sr-5<@@@>P`+_{9Ѕ.60P6`p.^| !ASDg9 D6@LJ0kX#G[>4PPP Q`OD?5 >XF- `|lu7v5iZ]g+oo(FobT<@SS^5Ŷև0{_/r606ۅXiMռl^43沠 f}ȓne0>9g@T@k( TfWGpE }Q08XǟuHvi,3I kc` f/mcHjXwf^Ӵ6뱵V2ӗN;í &r"{s)r*e?~g;/ 9^6`6^˰?q 8#uXeڌ!̽;IFƝZYUi+˖Q9~j[Vȟ9 7Mp~n̳c4 BZoV)U ]rSԎ)zmǥuoTKqӶ17/ߩ+U:!h"jKɜ}Lij1Im֡2~mWڕ!VYvNa{*29US-p'N? r+(lh.SdVIfiхcWoD72}>_# SeH!nAl(jYfc3 O\=NtY3w^=w+ 0<:Y-8HC0{ .aRӇGƬɐ"O+pou -h_OhYT+ڧn[(,˩`؀u.xRETc-zVw; rZ?% $m8RowX/P9w+Rc.pS7lzE4¥tK5R}p9VN.3yJx> 7[I1[5z5vb],Xf]3M>h_v3}ԆAGui^3\_Lߠڱu3ѥEvNV[TUF*ol׾ct(6 `ՋqϺ[I}P 4m(`?g*_umJ ;CȠiӼ|LشYOSQi|v-xFiŰLJݼ12Lu|,ݝZꪓO^8ԉS `6- Zmⳗ6u0teUӱ]sgi-YŏԆ+X7c7s줭R:6 X4+CLZЀޒ0(-bc-'rqPlE^ߺ~k~yٜшaSY=CùflioO+#wYuL6l$*҂tlo˴'v2DXq&`ONg"f~7F۲?Pzn[qi{t3.gzp̱lh ,\H<҆]aj³6tMHC?SVC woMM+cV:Z]3ea\GY^3lUŶ~ւd8v /4&aպ+s- m &Zflk3u:`6o[uҤgVC O&ZD:N?3p8C擫>}:u!qVIM6Z/BP A?7ʪ1MOVT9G|rmɋ"8QN6 `W<ۭj/N8=qӜaжav0d+)Y-Xծ/oijpgeZy~WN_ZS ֵڇh) @]G<vf!- ^"MhԺ b,}8VaSW^y{Xc?~șq, `6PO8//_p4yp{g跇˾KP>oj@kvk3 P~Lruc#i5?3\/GF̎umq *c4՝#\1vۑꍌ9)Iq 9 ows?snvl6`=sv:Ə_)<Mf};_qr-{9@@@@@X>)GEn_Tt2kФE?lB:h=BW/5츲8+K[t~e{ɋ(((((0 &YIQBXK?. ԥAky;gvv_yŜ{<l r< @KXA4m 1S'vEt v1GR"WTo)Xдv|1W<(((((Sذq^l0TENm't,>Eu!NXt&1݆4PPPPP Fvu~Eo"vݍCTF'-ke+Ϗ8eGcifg2&im^<4λiۂE۵ʻ1L@@@@@V `Ɍ|P ZwP6*Auv]~V7+ kQSՍZ2mjV9k;k_uUNkw]fZ~Ktژ`ٕ_Kyɩ X+ XZɴҢMб>M^P~g &X #ifAFuOx]Z4S~0rx6TyO(l 1~lY^]GficZ鬺 ,× iv⃯-¬sL%;@@@@@h)``֭VpQfЬm*fz> U )+j],=L7^K:㳺 !녅I>67k4]eQPPPP\?2h]j53P6oW+ˠ&EL>٘6mتtg>6"t6i^0OLd9\Hk ۖG@@@@T @;5 R$UaFqCP[+*X#UldNֵ8'eq-pM!=9]@@@@@_]OТ(((((}mσr]G6 _ce{U10N+W/j† @* pM8v%#x ۮV_nj. YPcF ڭYݙ^aLC;6jjf9_BMUF Ĵ!.Tڷ3ߞAu>mZ:ԝ(((((mH*smR%e߾ U *Q!ژU}Y3qaQW>JjYGtvܬˡsY9w V~pib6L.Ŵ!.o߀6\Z&,˺lG@@@@P@PNdvx3yT`Ӡ %BX lڸ߬(i AݱX@^0&FK6(iFѭ6X=ۆłoi܇UE#n 4Am18оp,mI!LBuv3e bISUWeHkC<]p[xiggڤ`^;cڐVFڶMɿo:<6Mա (((((PR0;ƕX Ni|Ӝ Ӗ`U+tlܱ̃S]> 9 PPPPU!OF% %`Mjp)pI2 ` " D?cam 1]v.YjB _b!ͮm>Q~Ft=qj?XV3 qv@@@@l_|Jn3kG- -QP^nYT"t?Vg8mW.;,2=m[x}ٙv/\{}YHp;_}^b#u#,_ٔl(C|V&(ە& duLZT-pF[ՙ,_EwϬxڢ㲎-]^Ӯm;߼6䝃owl[ Ŷ|((((( P mңe3}hNA4PPPPPPP4T~7>wFꖜ PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP KEmWIENDB`nova-17.0.13/doc/source/_static/images/nova-spec-process.svg0000664000175000017500000013200113556316250023703 0ustar zuulzuul00000000000000 launchpad create a bug create a blueprint create a blueprint End states out of scope code merged bug fix? idea REST API change? submit spec for review a feature? spec merged blueprint approved for release spec required? add link on nova meeting agenda blueprint hit by feature freeze re-submit for next release blueprint unapproved apply procedural -2 upload code for review remove procedural -2 review blueprint in nova meeting no yes nova-17.0.13/doc/source/_static/support-matrix.css0000664000175000017500000000117613556316250022106 0ustar zuulzuul00000000000000 .sp_feature_mandatory { font-weight: bold; } .sp_feature_optional { } .sp_feature_choice { font-style: italic; font-weight: bold; } .sp_feature_condition { font-style: italic; font-weight: bold; } .sp_impl_complete { color: rgb(0, 120, 0); font-weight: normal; } .sp_impl_missing { color: rgb(120, 0, 0); font-weight: normal; } .sp_impl_partial { color: rgb(170, 170, 0); font-weight: normal; } .sp_impl_unknown { color: rgb(170, 170, 170); font-weight: normal; } .sp_impl_summary { font-size: 2em; } .sp_cli { font-family: monospace; background-color: #F5F5F5; }nova-17.0.13/doc/source/_static/feature-matrix.css0000664000175000017500000000100413556316250022013 0ustar zuulzuul00000000000000.fm_maturity_complete, .fm_impl_complete { color: rgb(0, 120, 0); font-weight: normal; } .fm_maturity_deprecated, .fm_impl_missing { color: rgb(120, 0, 0); font-weight: normal; } .fm_maturity_experimental, .fm_impl_partial { color: rgb(170, 170, 0); font-weight: normal; } .fm_maturity_incomplete, .fm_impl_unknown { color: rgb(170, 170, 170); font-weight: normal; } .fm_impl_summary { font-size: 2em; } .fm_cli { font-family: monospace; background-color: #F5F5F5; } nova-17.0.13/doc/source/configuration/0000775000175000017500000000000013556316574017603 5ustar zuulzuul00000000000000nova-17.0.13/doc/source/configuration/sample-config.rst0000664000175000017500000000112313556316250023045 0ustar zuulzuul00000000000000========================= Sample Configuration File ========================= The following is a sample nova configuration for adaptation and use. For a detailed overview of all available configuration options, refer to :doc:`/configuration/config`. The sample configuration can also be viewed in :download:`file form `. .. important:: The sample configuration file is auto-generated from nova when this documentation is built. You must ensure your version of nova matches the version of this documentation. .. literalinclude:: /_static/nova.conf.sample nova-17.0.13/doc/source/configuration/index.rst0000664000175000017500000000216613556316250021440 0ustar zuulzuul00000000000000=================== Configuration Guide =================== The static configuration for nova lives in two main files: ``nova.conf`` and ``policy.json``. These are described below. For a bigger picture view on configuring nova to solve specific problems, refer to the :doc:`Nova Admin Guide `. Configuration ------------- * :doc:`Configuration Guide `: Detailed configuration guides for various parts of you Nova system. Helpful reference for setting up specific hypervisor backends. * :doc:`Config Reference `: A complete reference of all configuration options available in the ``nova.conf`` file. * :doc:`Sample Config File `: A sample config file with inline documentation. Policy ------ Nova, like most OpenStack projects, uses a policy language to restrict permissions on REST API actions. * :doc:`Policy Reference `: A complete reference of all policy points in nova and what they impact. * :doc:`Sample Policy File `: A sample policy file with inline documentation. nova-17.0.13/doc/source/configuration/config.rst0000664000175000017500000000044713556316250021576 0ustar zuulzuul00000000000000===================== Configuration Options ===================== The following is an overview of all available configuration options in Nova. For a sample configuration file, refer to :doc:`/configuration/sample-config`. .. show-options:: :config-file: etc/nova/nova-config-generator.conf nova-17.0.13/doc/source/configuration/sample-policy.rst0000664000175000017500000000072513556316250023106 0ustar zuulzuul00000000000000================== Sample Policy File ================== The following is a sample nova policy file for adaptation and use. The sample policy can also be viewed in :download:`file form `. .. important:: The sample policy file is auto-generated from nova when this documentation is built. You must ensure your version of nova matches the version of this documentation. .. literalinclude:: /_static/nova.policy.yaml.sample nova-17.0.13/doc/source/configuration/policy.rst0000664000175000017500000000036313556316250021625 0ustar zuulzuul00000000000000======== Policies ======== The following is an overview of all available policies in Nova. For a sample configuration file, refer to :doc:`/configuration/sample-policy`. .. show-policy:: :config-file: etc/nova/nova-policy-generator.conf nova-17.0.13/doc/source/common/0000775000175000017500000000000013556316574016224 5ustar zuulzuul00000000000000nova-17.0.13/doc/source/common/numa-live-migration-warning.txt0000664000175000017500000000070113556316250024301 0ustar zuulzuul00000000000000.. important:: Unless :oslo.config:option:`specifically enabled `, live migration is not currently possible for instances with a NUMA topology when using the libvirt driver. A NUMA topology may be specified explicitly or can be added implicitly due to the use of CPU pinning or huge pages. Refer to `bug #1289064`__ for more information. __ https://bugs.launchpad.net/nova/+bug/1289064 nova-17.0.13/doc/source/reference/0000775000175000017500000000000013556316574016672 5ustar zuulzuul00000000000000nova-17.0.13/doc/source/reference/policy-enforcement.rst0000664000175000017500000001554713556316250023231 0ustar zuulzuul00000000000000.. Copyright 2014 Intel All Rights Reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. Rest API Policy Enforcement =========================== Here is a vision of how we want policy to be enforced in nova. Problems with current system ---------------------------- There are several problems for current API policy. * The permission checking is spread through the various levels of the nova code, also there are some hard-coded permission checks that make some policies not enforceable. * API policy rules need better granularity. Some of extensions just use one rule for all the APIs. Deployer can't get better granularity control for the APIs. * More easy way to override default policy settings for deployer. And Currently all the API(EC2, V2, V2.1) rules mix in one policy.json file. These are the kinds of things we need to make easier: 1. Operator wants to enable a specific role to access the service API which is not possible because there is currently a hard coded admin check. 2. One policy rule per API action. Having a check in the REST API and a redundant check in the compute API can confuse developers and deployers. 3. Operator can specify different rules for APIs that in same extension. 4. Operator can override the default policy rule easily without mixing his own config and default config in one policy.json file. Future of policy enforcement ---------------------------- The generic rule for all the improvement is keep V2 API back-compatible. Because V2 API may be deprecated after V2.1 parity with V2. This can reduce the risk we take. The improvement just for EC2 and V2.1 API. There isn't any user for V2.1, as it isn't ready yet. We have to do change for EC2 API. EC2 API won't be removed like v2 API. If we keep back-compatible for EC2 API also, the old compute api layer checks won't be removed forever. EC2 API is really small than Nova API. It's about 29 APIs without volume and image related(those policy check done by cinder and glance). So it will affect user less. Enforcement policy at REST API layer ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The policy should be only enforced at REST API layer. This is clear for user to know where the policy will be enforced. If the policy spread into multiple layer of nova code, user won't know when and where the policy will be enforced if they didn't have knowledge about nova code. Remove all the permission checking under REST API layer. Policy will only be enforced at REST API layer. This will affect the EC2 API and V2.1 API, there are some API just have policy enforcement at Compute/Network API layer, those policy will be move to API layer and renamed. Removes hard-code permission checks ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Hard-coded permission checks make it impossible to supply a configurable policy. They should be removed in order to make nova auth completely configurable. This will affect EC2 API and Nova V2.1 API. User need update their policy rule to match the old hard-code permission. For Nova V2 API, the hard-code permission checks will be moved to REST API layer to guarantee it won't break the back-compatibility. That may ugly some hard-code permission check in API layer, but V2 API will be removed once V2.1 API ready, so our choice will reduce the risk. Port policy.d into nova ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ This feature make deployer can override default policy rule easily. And When nova default policy config changed, deployer only need replace default policy config files with new one. It won't affect his own policy config in other files. Use different prefix in policy rule name for EC2/V2/V2.1 API ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Currently all the APIs(Nova v2/v2.1 API, EC2 API) use same set of policy rules. Especially there isn't obvious mapping between those policy rules and EC2 API. User can know clearly which policy should be configured for specific API. Nova should provide different prefix for policy rule name that used to group them, and put them in different policy configure file in policy.d * EC2 API: Use prefix "ec2_api". The rule looks like "ec2_api:[action]" * Nova V2 API: After we move to V2.1, we needn't spend time to change V2 api rule, and needn't to bother deployer upgrade their policy config. So just keep V2 API policy rule named as before. * Nova V2.1 API: We name the policy rule as "os_compute_api:[extension]:[action]". The core API may be changed in the future, so we needn't name them as "compute" or "compute_extension" to distinguish the core or extension API. This will affect EC2 API and V2.1 API. For EC2 API, it need deployer update their policy config. For V2.1 API, there isn't any user yet, so there won't any effect. Group the policy rules into different policy files ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ After group the policy rules for different API, we can separate them into different files. Then deployer will more clear for which rule he can set for specific API. The rules can be grouped as below: * policy.json: It only contains the generic rule, like: :: "context_is_admin": "role:admin", "admin_or_owner": "is_admin:True or project_id:%(project_id)s", "default": "rule:admin_or_owner", * policy.d/00-ec2-api.conf: It contains all the policy rules for EC2 API. * policy.d/00-v2-api.conf: It contains all the policy rules for nova V2 API. * policy.d/00-v2.1-api.conf: It contains all the policy rules for nova v2.1 API. The prefix '00-' is used to order the configure file. All the files in policy.d will be loaded by alphabetical order. '00-' means those files will be loaded very early. Existed Nova API being restricted --------------------------------- Nova provide default policy rules for all the APIs. Operator should only make the policy rule more permissive. If the Operator make the API to be restricted that make break the existed API user or application. That's kind of back-incompatible. SO Operator can free to add additional permission to the existed API. Policy Enforcement by user_id ----------------------------- In the legacy v2 API, the policy enforces with target object, and some operators implement user-based authorization based on that. Actually only project-based authorization is well tested, the user based authorization is untested and isn't supported by Nova. In the future, the nova will remove all the supports for user-based authorization. nova-17.0.13/doc/source/reference/vm-states.rst0000664000175000017500000001212513556316250021337 0ustar zuulzuul00000000000000Virtual Machine States and Transitions ======================================= The following diagrams and tables show the required virtual machine (VM) states and task states for various commands issued by the user. Allowed State Transitions -------------------------- .. graphviz:: digraph states { graph [pad=".35", ranksep="0.65", nodesep="0.55", concentrate=true]; node [fontsize=10 fontname="Monospace"]; edge [arrowhead="normal", arrowsize="0.8"]; label="All states are allowed to transition to DELETED and ERROR."; forcelabels=true; labelloc=bottom; labeljust=left; /* states */ building [label="BUILDING"] active [label="ACTIVE"] paused [label="PAUSED"] suspended [label="SUSPENDED"] stopped [label="STOPPED"] rescued [label="RESCUED"] resized [label="RESIZED"] soft_deleted [label="SOFT_DELETED"] shelved [label="SHELVED"] shelved_offloaded [label="SHELVED_OFFLOADED"] deleted [label="DELETED", color="red"] error [label="ERROR", color="red"] /* transitions [action] */ building -> active active -> active [headport=nw, tailport=ne] // manual layout active -> soft_deleted [tailport=e] // prevent arrowhead overlap active -> suspended active -> paused [tailport=w] // prevent arrowhead overlap active -> stopped active -> shelved active -> shelved_offloaded active -> rescued active -> resized soft_deleted -> active [headport=e] // prevent arrowhead overlap suspended -> active suspended -> shelved suspended -> shelved_offloaded paused -> active paused -> shelved paused -> shelved_offloaded stopped -> active stopped -> stopped [headport=nw, tailport=ne] // manual layout stopped -> resized stopped -> rescued stopped -> shelved stopped -> shelved_offloaded resized -> active rescued -> active shelved -> shelved_offloaded shelved -> active shelved_offloaded -> active } Requirements for Commands ------------------------- ================== ================== ==================== ================ Command Req'd VM States Req'd Task States Target State ================== ================== ==================== ================ pause Active, Shutoff, Resize Verify, unset Paused Rescued unpause Paused N/A Active suspend Active, Shutoff N/A Suspended resume Suspended N/A Active rescue Active, Shutoff Resize Verify, unset Rescued unrescue Rescued N/A Active set admin password Active N/A Active rebuild Active, Shutoff Resize Verify, unset Active force delete Soft Deleted N/A Deleted restore Soft Deleted N/A Active soft delete Active, Shutoff, N/A Soft Deleted Error delete Active, Shutoff, N/A Deleted Building, Rescued, Error backup Active, Shutoff N/A Active, Shutoff snapshot Active, Shutoff N/A Active, Shutoff start Shutoff, Stopped N/A Active stop Active, Shutoff, Resize Verify, unset Stopped Rescued reboot Active, Shutoff, Resize Verify, unset Active Rescued resize Active, Shutoff Resize Verify, unset Resized revert resize Active, Shutoff Resize Verify, unset Active confirm resize Active, Shutoff Resize Verify, unset Active ================== ================== ==================== ================ VM states and Possible Commands ------------------------------- ============ ================================================================= VM State Commands ============ ================================================================= Paused unpause Suspended resume Active set admin password, suspend, pause, rescue, rebuild, soft delete, delete, backup, snapshot, stop, reboot, resize, revert resize, confirm resize Shutoff suspend, pause, rescue, rebuild, soft delete, delete, backup, start, snapshot, stop, reboot, resize, revert resize, confirm resize Rescued unrescue, pause Stopped rescue, delete, start Soft Deleted force delete, restore Error soft delete, delete Building delete Rescued delete, stop, reboot ============ ================================================================= Create Instance States ---------------------- The following diagram shows the sequence of VM states, task states, and power states when a new VM instance is created. .. image:: /_static/images/create-vm-states.svg :alt: Sequence of VM states, task states, and power states when a new VM instance is created. nova-17.0.13/doc/source/reference/api-microversion-history.rst0000664000175000017500000000011613556316250024376 0ustar zuulzuul00000000000000.. include:: ../../../nova/api/openstack/compute/rest_api_version_history.rst nova-17.0.13/doc/source/reference/scheduler-evolution.rst0000664000175000017500000001545613556316250023426 0ustar zuulzuul00000000000000.. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. =================== Scheduler Evolution =================== Evolving the scheduler has been a priority item over several releases: http://specs.openstack.org/openstack/nova-specs/#priorities The scheduler has become tightly coupled with the rest of nova, limiting its capabilities, accuracy, flexibility and maintainability. The goal of scheduler evolution is to bring about a better separation of concerns between scheduling functionality and the rest of nova. Once this effort has completed, its conceivable that the nova-scheduler could become a separate git repo, outside of nova but within the compute project. This is not the current focus. Problem Use Cases ================== Many users are wanting to do more advanced things with the scheduler, but the current architecture is not ready to support those use cases in a maintainable way. A few examples will help to illustrate where the scheduler falls short: Cross Project Affinity ----------------------- It can be desirable, when booting from a volume, to use a compute node that is close to the shared storage where that volume is. Similarly, for the sake of performance, it can be desirable to use a compute node that is in a particular location in relation to a pre-created port. Accessing Aggregates in Filters and Weights -------------------------------------------- Any DB access in a filter or weight slows down the scheduler. Until the end of kilo, there was no way to deal with the scheduler accessing information about aggregates without querying the DB in every call to host_passes() in a filter. Filter Scheduler Alternatives ------------------------------ For certain use cases, radically different schedulers may perform much better than the filter scheduler. We should not block this innovation. It is unreasonable to assume a single scheduler will work for all use cases. However, to enable this kind of innovation in a maintainable way, a single strong scheduler interface is required. Project Scale issues --------------------- There are many interesting ideas for new schedulers, like the solver scheduler, and frequent requests to add new filters and weights to the scheduling system. The current nova team does not have the bandwidth to deal with all these requests. A dedicated scheduler team could work on these items independently of the rest of nova. The tight coupling that currently exists makes it impossible to work on the scheduler in isolation. A stable interface is required before the code can be split out. Key areas we are evolving ========================== Here we discuss, at a high level, areas that are being addressed as part of the scheduler evolution work. Fixing the Scheduler DB model ------------------------------ We need the nova and scheduler data models to be independent of each other. The first step is breaking the link between the ComputeNode and Service DB tables. In theory where the Service information is stored should be pluggable through the service group API, and should be independent of the scheduler service. For example, it could be managed via zookeeper rather than polling the nova DB. There are also places where filters and weights call into the nova DB to find out information about aggregates. This needs to be sent to the scheduler, rather than reading directly from the nova database. Versioning Scheduler Placement Interfaces ------------------------------------------ At the start of kilo, the scheduler is passed a set of dictionaries across a versioned RPC interface. The dictionaries can create problems with the backwards compatibility needed for live-upgrades. Luckily we already have the oslo.versionedobjects infrastructure we can use to model this data in a way that can be versioned across releases. This effort is mostly focusing around the request_spec. See, for example, `this spec`_. Sending host and node stats to the scheduler --------------------------------------------- Periodically nova-compute updates the scheduler state stored in the database. We need a good way to model the data that is being sent from the compute nodes into the scheduler, so over time, the scheduler can move to having its own database. This is linked to the work on the resource tracker. Updating the Scheduler about other data ---------------------------------------- For things like host aggregates, we need the scheduler to cache information about those, and know when there are changes so it can update its cache. Over time, its possible that we need to send cinder and neutron data, so the scheduler can use that data to help pick a nova-compute host. Resource Tracker ----------------- The recent work to add support for NUMA and PCI pass through have shown we have no good pattern to extend the resource tracker. Ideally we want to keep the innovation inside the nova tree, but we also need it to be easier. This is very related to the effort to re-think how we model resources, as covered by discussion about `resource providers`_. Parallelism and Concurrency ---------------------------- The current design of the nova-scheduler is very racy, and can lead to excessive numbers of build retries before the correct host is found. The recent NUMA features are particularly impacted by how the scheduler works. All this has lead to many people running only a single nova-scheduler process configured to use a very small greenthread pool. The work on cells v2 will mean that we soon need the scheduler to scale for much larger problems. The current scheduler works best with less than 1k nodes but we will need the scheduler to work with at least 10k nodes. Various ideas have been discussed to reduce races when running multiple nova-scheduler processes. One idea is to use two-phase commit "style" resource tracker claims. Another idea involves using incremental updates so it is more efficient to keep the scheduler's state up to date, potentially using Kafka. For more details, see the `backlog spec`_ that describes more of the details around this problem. .. _this spec: http://specs.openstack.org/openstack/nova-specs/specs/kilo/approved/sched-select-destinations-use-request-spec-object.html .. _resource providers: https://blueprints.launchpad.net/nova/+spec/resource-providers .. _backlog spec: http://specs.openstack.org/openstack/nova-specs/specs/backlog/approved/parallel-scheduler.html nova-17.0.13/doc/source/reference/index.rst0000664000175000017500000000370113556316250020523 0ustar zuulzuul00000000000000================================ Technical Reference Deep Dives ================================ The nova project is large, and there are lots of complicated parts in it where it helps to have an overview to understand how the internals of a particular part work. Internals ========= The following is a dive into some of the internals in nova. * :doc:`/reference/rpc`: How nova uses AMQP as an RPC transport * :doc:`/reference/scheduling`: The workflow through the scheduling process * :doc:`/reference/live-migration`: The live migration flow * :doc:`/reference/services`: Module descriptions for some of the key modules used in starting / running services * :doc:`/reference/vm-states`: Cheat sheet for understanding the life cycle of compute instances * :doc:`/reference/threading`: The concurrency model used in nova, which is based on eventlet, and may not be familiar to everyone. * :doc:`/reference/notifications`: How the notifications subsystem works in nova, and considerations when adding notifications. Debugging ========= * :doc:`/reference/gmr`: Inspired by Amiga, a way to trigger a very comprehensive dump of a running service for deep debugging. Forward Looking Plans ===================== The following section includes documents that describe the overall plan behind groups of nova-specs. Most of these cover items relating to the evolution of various parts of nova's architecture. Once the work is complete, these documents will move into the "Internals" section. If you want to get involved in shaping the future of nova's architecture, these are a great place to start reading up on the current plans. * :doc:`/user/cells`: Comparison of Cells v1 and v2, and how v2 is evolving * :doc:`/reference/policy-enforcement`: How we want policy checks on API actions to work in the future * :doc:`/reference/stable-api`: What stable api means to nova * :doc:`/reference/scheduler-evolution`: Motivation behind the scheduler / placement evolution nova-17.0.13/doc/source/reference/gmr.rst0000664000175000017500000000560113556316250020202 0ustar zuulzuul00000000000000.. Copyright (c) 2014 OpenStack Foundation Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. Guru Meditation Reports ======================= Nova contains a mechanism whereby developers and system administrators can generate a report about the state of a running Nova executable. This report is called a *Guru Meditation Report* (*GMR* for short). Generating a GMR ---------------- A *GMR* can be generated by sending the *USR2* signal to any Nova process with support (see below). The *GMR* will then be outputted standard error for that particular process. For example, suppose that ``nova-api`` has process id ``8675``, and was run with ``2>/var/log/nova/nova-api-err.log``. Then, ``kill -USR2 8675`` will trigger the Guru Meditation report to be printed to ``/var/log/nova/nova-api-err.log``. Structure of a GMR ------------------ The *GMR* is designed to be extensible; any particular executable may add its own sections. However, the base *GMR* consists of several sections: Package Shows information about the package to which this process belongs, including version information Threads Shows stack traces and thread ids for each of the threads within this process Green Threads Shows stack traces for each of the green threads within this process (green threads don't have thread ids) Configuration Lists all the configuration options currently accessible via the CONF object for the current process Adding Support for GMRs to New Executables ------------------------------------------ Adding support for a *GMR* to a given executable is fairly easy. First import the module, as well as the Nova version module: .. code-block:: python from oslo_reports import guru_meditation_report as gmr from nova import version Then, register any additional sections (optional): .. code-block:: python TextGuruMeditation.register_section('Some Special Section', some_section_generator) Finally (under main), before running the "main loop" of the executable (usually ``service.server(server)`` or something similar), register the *GMR* hook: .. code-block:: python TextGuruMeditation.setup_autorun(version) Extending the GMR ----------------- As mentioned above, additional sections can be added to the GMR for a particular executable. For more information, see the inline documentation under :mod:`oslo.reports` nova-17.0.13/doc/source/reference/services.rst0000664000175000017500000000446013556316250021242 0ustar zuulzuul00000000000000.. Copyright 2010-2011 United States Government as represented by the Administrator of the National Aeronautics and Space Administration. All Rights Reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. .. _service_manager_driver: Services, Managers and Drivers ============================== The responsibilities of Services, Managers, and Drivers, can be a bit confusing to people that are new to nova. This document attempts to outline the division of responsibilities to make understanding the system a little bit easier. Currently, Managers and Drivers are specified by flags and loaded using utils.load_object(). This method allows for them to be implemented as singletons, classes, modules or objects. As long as the path specified by the flag leads to an object (or a callable that returns an object) that responds to getattr, it should work as a manager or driver. The :mod:`nova.service` Module ------------------------------ .. automodule:: nova.service :noindex: :members: :undoc-members: :show-inheritance: The :mod:`nova.manager` Module ------------------------------ .. automodule:: nova.manager :noindex: :members: :undoc-members: :show-inheritance: Implementation-Specific Drivers ------------------------------- A manager will generally load a driver for some of its tasks. The driver is responsible for specific implementation details. Anything running shell commands on a host, or dealing with other non-python code should probably be happening in a driver. Drivers should not touch the database as the database management is done inside `nova-conductor`. It usually makes sense to define an Abstract Base Class for the specific driver (i.e. VolumeDriver), to define the methods that a different driver would need to implement. nova-17.0.13/doc/source/reference/i18n.rst0000664000175000017500000000323613556316250020176 0ustar zuulzuul00000000000000Internationalization ==================== Nova uses the `oslo.i18n library `_ to support internationalization. The oslo.i18n library is built on top of `gettext `_ and provides functions that are used to enable user-facing strings such as log messages to appear in the appropriate language in different locales. Nova exposes the oslo.i18n library support via the ``nova/i18n.py`` integration module. This module provides the functions needed to wrap translatable strings. It provides the ``_()`` wrapper for general user-facing messages (such as ones that end up in command line responses, or responses over the network). One upon a time there was an effort to translate log messages in OpenStack projects. But starting with the Ocata release these are no longer being supported. Log messages **should not** be translated. Any use of ``_LI()``, ``_LW()``, ``_LE()``, ``_LC()`` are vestigial and will be removed over time. No new uses of these should be added. You should use the basic wrapper ``_()`` for strings which are not log messages that are expected to get to an end user:: raise nova.SomeException(_('Invalid service catalogue')) Do not use ``locals()`` for formatting messages because: 1. It is not as clear as using explicit dicts. 2. It could produce hidden errors during refactoring. 3. Changing the name of a variable causes a change in the message. 4. It creates a lot of otherwise unused variables. If you do not follow the project conventions, your code may cause hacking checks to fail. The ``_()`` function can be imported with :: from nova.i18n import _ nova-17.0.13/doc/source/reference/stable-api.rst0000664000175000017500000001327513556316250021444 0ustar zuulzuul00000000000000.. Copyright 2015 Intel All Rights Reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. Nova Stable REST API ==================== This document describes both the current state of the Nova REST API -- as of the Pike release -- and also attempts to describe how the Nova team evolved the REST API's implementation over time and removed some of the cruft that has crept in over the years. Background ---------- Nova used to include two distinct frameworks for exposing REST API functionality. Older code is called the "v2 API" and existed in the /nova/api/openstack/compute/legacy_v2/ directory. This code tree was totally removed during Netwon release time frame (14.0.0 and later). Newer code is called the "v2.1 API" and exists in the /nova/api/openstack/compute directory. The v2 API is the old Nova REST API. It is mostly replaced by v2.1 API. The v2.1 API is the new Nova REST API with a set of improvements which includes `Microversion `_ and standardized validation of inputs using JSON-Schema. Also the v2.1 API is totally backwards compatible with the v2 API (That is the reason we call it as v2.1 API). Current Stable API ------------------ * Nova v2.1 API + Microversion (v2.1 APIs are backward-compatible with v2 API, but more strict validation) * /v2 & /v2.1 endpoint supported * v2 compatible mode for old v2 users Evolution of Nova REST API -------------------------- .. image:: /_static/images/evolution-of-api.png Nova v2 API + Extensions ************************ Nova used to have v2 API. In v2 API, there was a concept called 'extension'. An operator can use it to enable/disable part of Nova REST API based on requirements. An end user may query the '/extensions' API to discover what *API functionality* is supported by the Nova deployment. Unfortunately, because v2 API extensions could be enabled or disabled from one deployment to another -- as well as custom API extensions added to one deployment and not another -- it was impossible for an end user to know what the OpenStack Compute API actually included. No two OpenStack deployments were consistent, which made cloud interoperability impossible. In the Newton release, stevedore loading of API extension plugins was deprecated and marked for removal. In the Newton release, v2 API code base has been removed and /v2 endpoints were directed to v2.1 code base. v2 API compatibility mode based on v2.1 API ******************************************* v2.1 API is exactly same as v2 API except strong input validation with no additional request parameter allowed and Microversion feature. Since Newton, '/v2' endpoint also started using v2.1 API implementation. But to keep the backward compatibility of v2 API, '/v2' endpoint should not return error on additional request parameter or any new headers for Microversion. v2 API must be same as it has been since starting. To achieve that behavior legacy v2 compatibility mode has been introduced. v2 compatibility mode is based on v2.1 implementation with below difference: * Skip additionalProperties checks in request body * Ignore Microversion headers in request * No Microversion headers in response Nova v2.1 API + Microversion **************************** In the Kilo release, nova v2.1 API has been released. v2.1 API is supposed to be backward compatible with v2 API with strong input validation using JSON Schema. v2.1 API comes up with microversion concept which is a way to version the API changes. Each new feature or modification in API has to done via microversion bump. API extensions concept was deprecated from the v2.1 API, are no longer needed to evolve the REST API, and no new API functionality should use the API extension classes to implement new functionality. Instead, new API functionality should be added via microversion concept and use the microversioning decorators to add or change the REST API. v2.1 API had plugin framework which was using stevedore to load Nova REST API extensions instead of old V2 handcrafted extension load mechanism. There was an argument that the plugin framework supported extensibility in the Nova API to allow deployers to publish custom API resources. In the Newton release, config options of blacklist and whitelist extensions and stevedore things were deprecated and marked for removal. In Pike, stevedore based plugin framework has been removed and url mapping is done with plain router list. There is no more dynamic magic of detecting API implementation for url. See :doc:`Extending the API ` for more information. The '/extensions' API exposed the list of enabled API functions to users by GET method. However as the above, new API extensions should not be added to the list of this API. The '/extensions' API is frozen in Nova V2.1 API and is `deprecated `_. Things which are History now **************************** As of the Pike release, many deprecated things have been removed and became history in Nova API world: * v2 legacy framework * API extensions concept * stevedore magic to load the extension/plugin dynamically * Configurable way to enable/disable APIs extensions nova-17.0.13/doc/source/reference/threading.rst0000664000175000017500000000520513556316250021362 0ustar zuulzuul00000000000000Threading model =============== All OpenStack services use *green thread* model of threading, implemented through using the Python `eventlet `_ and `greenlet `_ libraries. Green threads use a cooperative model of threading: thread context switches can only occur when specific eventlet or greenlet library calls are made (e.g., sleep, certain I/O calls). From the operating system's point of view, each OpenStack service runs in a single thread. The use of green threads reduces the likelihood of race conditions, but does not completely eliminate them. In some cases, you may need to use the ``@lockutils.synchronized(...)`` decorator to avoid races. In addition, since there is only one operating system thread, a call that blocks that main thread will block the entire process. Yielding the thread in long-running tasks ----------------------------------------- If a code path takes a long time to execute and does not contain any methods that trigger an eventlet context switch, the long-running thread will block any pending threads. This scenario can be avoided by adding calls to the eventlet sleep method in the long-running code path. The sleep call will trigger a context switch if there are pending threads, and using an argument of 0 will avoid introducing delays in the case that there is only a single green thread:: from eventlet import greenthread ... greenthread.sleep(0) In current code, time.sleep(0)does the same thing as greenthread.sleep(0) if time module is patched through eventlet.monkey_patch(). To be explicit, we recommend contributors use ``greenthread.sleep()`` instead of ``time.sleep()``. MySQL access and eventlet ------------------------- There are some MySQL DB API drivers for oslo.db, like `PyMySQL`_, MySQL-python etc. PyMySQL is the default MySQL DB API driver for oslo.db, and it works well with eventlet. MySQL-python uses an external C library for accessing the MySQL database. Since eventlet cannot use monkey-patching to intercept blocking calls in a C library, so queries to the MySQL database will block the main thread of a service. The Diablo release contained a thread-pooling implementation that did not block, but this implementation resulted in a `bug`_ and was removed. See this `mailing list thread`_ for a discussion of this issue, including a discussion of the `impact on performance`_. .. _bug: https://bugs.launchpad.net/nova/+bug/838581 .. _mailing list thread: https://lists.launchpad.net/openstack/msg08118.html .. _impact on performance: https://lists.launchpad.net/openstack/msg08217.html .. _PyMySQL: https://wiki.openstack.org/wiki/PyMySQL_evaluation nova-17.0.13/doc/source/reference/rpc.rst0000664000175000017500000003234313556316250020204 0ustar zuulzuul00000000000000.. Copyright (c) 2010 Citrix Systems, Inc. All Rights Reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. AMQP and Nova ============= AMQP is the messaging technology chosen by the OpenStack cloud. The AMQP broker, default to Rabbitmq, sits between any two Nova components and allows them to communicate in a loosely coupled fashion. More precisely, Nova components (the compute fabric of OpenStack) use Remote Procedure Calls (RPC hereinafter) to communicate to one another; however such a paradigm is built atop the publish/subscribe paradigm so that the following benefits can be achieved: * Decoupling between client and servant (such as the client does not need to know where the servant's reference is). * Full a-synchronism between client and servant (such as the client does not need the servant to run at the same time of the remote call). * Random balancing of remote calls (such as if more servants are up and running, one-way calls are transparently dispatched to the first available servant). Nova uses direct, fanout, and topic-based exchanges. The architecture looks like the one depicted in the figure below: .. image:: /_static/images/rpc-arch.png :width: 60% Nova implements RPC (both request+response, and one-way, respectively nicknamed ``rpc.call`` and ``rpc.cast``) over AMQP by providing an adapter class which take cares of marshaling and unmarshaling of messages into function calls. Each Nova service (for example Compute, Scheduler, etc.) create two queues at the initialization time, one which accepts messages with routing keys ``NODE-TYPE.NODE-ID`` (for example ``compute.hostname``) and another, which accepts messages with routing keys as generic ``NODE-TYPE`` (for example ``compute``). The former is used specifically when Nova-API needs to redirect commands to a specific node like ``openstack server delete $instance``. In this case, only the compute node whose host's hypervisor is running the virtual machine can kill the instance. The API acts as a consumer when RPC calls are request/response, otherwise it acts as a publisher only. Nova RPC Mappings ----------------- The figure below shows the internals of a message broker node (referred to as a RabbitMQ node in the diagrams) when a single instance is deployed and shared in an OpenStack cloud. Every Nova component connects to the message broker and, depending on its personality (for example a compute node or a network node), may use the queue either as an Invoker (such as API or Scheduler) or a Worker (such as Compute or Network). Invokers and Workers do not actually exist in the Nova object model, but we are going to use them as an abstraction for sake of clarity. An Invoker is a component that sends messages in the queuing system via two operations: 1) ``rpc.call`` and ii) ``rpc.cast``; a Worker is a component that receives messages from the queuing system and reply accordingly to ``rpc.call`` operations. Figure 2 shows the following internal elements: Topic Publisher A Topic Publisher comes to life when an ``rpc.call`` or an ``rpc.cast`` operation is executed; this object is instantiated and used to push a message to the queuing system. Every publisher connects always to the same topic-based exchange; its life-cycle is limited to the message delivery. Direct Consumer A Direct Consumer comes to life if (and only if) an ``rpc.call`` operation is executed; this object is instantiated and used to receive a response message from the queuing system. Every consumer connects to a unique direct-based exchange via a unique exclusive queue; its life-cycle is limited to the message delivery; the exchange and queue identifiers are determined by a UUID generator, and are marshaled in the message sent by the Topic Publisher (only ``rpc.call`` operations). Topic Consumer A Topic Consumer comes to life as soon as a Worker is instantiated and exists throughout its life-cycle; this object is used to receive messages from the queue and it invokes the appropriate action as defined by the Worker role. A Topic Consumer connects to the same topic-based exchange either via a shared queue or via a unique exclusive queue. Every Worker has two topic consumers, one that is addressed only during ``rpc.cast`` operations (and it connects to a shared queue whose exchange key is ``topic``) and the other that is addressed only during ``rpc.call`` operations (and it connects to a unique queue whose exchange key is ``topic.host``). Direct Publisher A Direct Publisher comes to life only during ``rpc.call`` operations and it is instantiated to return the message required by the request/response operation. The object connects to a direct-based exchange whose identity is dictated by the incoming message. Topic Exchange The Exchange is a routing table that exists in the context of a virtual host (the multi-tenancy mechanism provided by RabbitMQ etc); its type (such as topic vs. direct) determines the routing policy; a message broker node will have only one topic-based exchange for every topic in Nova. Direct Exchange This is a routing table that is created during ``rpc.call`` operations; there are many instances of this kind of exchange throughout the life-cycle of a message broker node, one for each ``rpc.call`` invoked. Queue Element A Queue is a message bucket. Messages are kept in the queue until a Consumer (either Topic or Direct Consumer) connects to the queue and fetch it. Queues can be shared or can be exclusive. Queues whose routing key is ``topic`` are shared amongst Workers of the same personality. .. image:: /_static/images/rpc-rabt.png :width: 60% RPC Calls --------- The diagram below shows the message flow during an ``rpc.call`` operation: 1. A Topic Publisher is instantiated to send the message request to the queuing system; immediately before the publishing operation, a Direct Consumer is instantiated to wait for the response message. 2. Once the message is dispatched by the exchange, it is fetched by the Topic Consumer dictated by the routing key (such as 'topic.host') and passed to the Worker in charge of the task. 3. Once the task is completed, a Direct Publisher is allocated to send the response message to the queuing system. 4. Once the message is dispatched by the exchange, it is fetched by the Direct Consumer dictated by the routing key (such as ``msg_id``) and passed to the Invoker. .. image:: /_static/images/rpc-flow-1.png :width: 60% RPC Casts --------- The diagram below shows the message flow during an ``rpc.cast`` operation: 1. A Topic Publisher is instantiated to send the message request to the queuing system. 2. Once the message is dispatched by the exchange, it is fetched by the Topic Consumer dictated by the routing key (such as 'topic') and passed to the Worker in charge of the task. .. image:: /_static/images/rpc-flow-2.png :width: 60% AMQP Broker Load ---------------- At any given time the load of a message broker node running RabbitMQ etc is function of the following parameters: Throughput of API calls The number of API calls (more precisely ``rpc.call`` ops) being served by the OpenStack cloud dictates the number of direct-based exchanges, related queues and direct consumers connected to them. Number of Workers There is one queue shared amongst workers with the same personality; however there are as many exclusive queues as the number of workers; the number of workers dictates also the number of routing keys within the topic-based exchange, which is shared amongst all workers. The figure below shows the status of a RabbitMQ node after Nova components' bootstrap in a test environment. Exchanges and queues being created by Nova components are: * Exchanges 1. nova (topic exchange) * Queues 1. ``compute.phantom`` (``phantom`` is hostname) 2. ``compute`` 3. ``network.phantom`` (``phantom`` is hostname) 4. ``network`` 5. ``scheduler.phantom`` (``phantom`` is hostname) 6. ``scheduler`` .. image:: /_static/images/rpc-state.png :width: 60% RabbitMQ Gotchas ---------------- Nova uses Kombu to connect to the RabbitMQ environment. Kombu is a Python library that in turn uses AMQPLib, a library that implements the standard AMQP 0.8 at the time of writing. When using Kombu, Invokers and Workers need the following parameters in order to instantiate a Connection object that connects to the RabbitMQ server (please note that most of the following material can be also found in the Kombu documentation; it has been summarized and revised here for sake of clarity): ``hostname`` The hostname to the AMQP server. ``userid`` A valid username used to authenticate to the server. ``password`` The password used to authenticate to the server. ``virtual_host`` The name of the virtual host to work with. This virtual host must exist on the server, and the user must have access to it. Default is "/". ``port`` The port of the AMQP server. Default is ``5672`` (amqp). The following parameters are default: ``insist`` Insist on connecting to a server. In a configuration with multiple load-sharing servers, the Insist option tells the server that the client is insisting on a connection to the specified server. Default is False. ``connect_timeout`` The timeout in seconds before the client gives up connecting to the server. The default is no timeout. ``ssl`` Use SSL to connect to the server. The default is False. More precisely Consumers need the following parameters: ``connection`` The above mentioned Connection object. ``queue`` Name of the queue. ``exchange`` Name of the exchange the queue binds to. ``routing_key`` The interpretation of the routing key depends on the value of the ``exchange_type`` attribute. Direct exchange If the routing key property of the message and the ``routing_key`` attribute of the queue are identical, then the message is forwarded to the queue. Fanout exchange Messages are forwarded to the queues bound the exchange, even if the binding does not have a key. Topic exchange If the routing key property of the message matches the routing key of the key according to a primitive pattern matching scheme, then the message is forwarded to the queue. The message routing key then consists of words separated by dots (``.``, like domain names), and two special characters are available; star (``*``) and hash (``#``). The star matches any word, and the hash matches zero or more words. For example ``.stock.#`` matches the routing keys ``usd.stock`` and ``eur.stock.db`` but not ``stock.nasdaq``. ``durable`` This flag determines the durability of both exchanges and queues; durable exchanges and queues remain active when a RabbitMQ server restarts. Non-durable exchanges/queues (transient exchanges/queues) are purged when a server restarts. It is worth noting that AMQP specifies that durable queues cannot bind to transient exchanges. Default is True. ``auto_delete`` If set, the exchange is deleted when all queues have finished using it. Default is False. ``exclusive`` Exclusive queues (such as non-shared) may only be consumed from by the current connection. When exclusive is on, this also implies ``auto_delete``. Default is False. ``exchange_type`` AMQP defines several default exchange types (routing algorithms) that covers most of the common messaging use cases. ``auto_ack`` Acknowledgment is handled automatically once messages are received. By default ``auto_ack`` is set to False, and the receiver is required to manually handle acknowledgment. ``no_ack`` It disable acknowledgment on the server-side. This is different from ``auto_ack`` in that acknowledgment is turned off altogether. This functionality increases performance but at the cost of reliability. Messages can get lost if a client dies before it can deliver them to the application. ``auto_declare`` If this is True and the exchange name is set, the exchange will be automatically declared at instantiation. Auto declare is on by default. Publishers specify most the parameters of Consumers (such as they do not specify a queue name), but they can also specify the following: ``delivery_mode`` The default delivery mode used for messages. The value is an integer. The following delivery modes are supported by RabbitMQ: ``1`` (transient) The message is transient. Which means it is stored in memory only, and is lost if the server dies or restarts. ``2`` (persistent) The message is persistent. Which means the message is stored both in-memory, and on disk, and therefore preserved if the server dies or restarts. The default value is ``2`` (persistent). During a send operation, Publishers can override the delivery mode of messages so that, for example, transient messages can be sent over a durable queue. nova-17.0.13/doc/source/reference/live-migration.rst0000664000175000017500000000400613556316250022341 0ustar zuulzuul00000000000000.. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. ================ Live Migration ================ .. seqdiag:: seqdiag { Conductor; Source; Destination; edge_length = 300; span_height = 15; activation = none; default_note_color = white; Conductor -> Destination [label = "call", note = "check_can_live_migrate_destination"]; Source <- Destination [label = "call", leftnote = "check_can_live_migrate_source"]; Source --> Destination; Conductor <-- Destination; Conductor ->> Source [label = "cast", note = "live_migrate"]; Source -> Destination [label = "call", note = "pre_live_migration (set up dest)"]; Source <-- Destination; === driver.live_migration (success) === Source -> Source [leftnote = "post_live_migration (clean up source)"]; Source -> Destination [label = "call", note = "post_live_migration_at_destination (finish dest)"]; Source <-- Destination; === driver.live_migration (failure) === Source -> Source [leftnote = "_rollback_live_migration"]; Source -> Destination [label = "call", note = "remove_volume_connections"]; Source <-- Destination; Source ->> Destination [label = "cast", note = "rollback_live_migration_at_destination"]; } nova-17.0.13/doc/source/reference/scheduling.rst0000664000175000017500000001471313556316250021546 0ustar zuulzuul00000000000000.. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. ============ Scheduling ============ This is an overview of how scheduling works in nova from Pike onwards. For information on the scheduler itself, refer to :doc:`/user/filter-scheduler`. For an overview of why we've changed how the scheduler works, refer to :doc:`/reference/scheduler-evolution`. Overview -------- The scheduling process is described below. .. note:: This is current as of the 16.0.0 Pike release. Any mention of alternative hosts passed between the scheduler and conductor(s) is future work. .. actdiag:: actdiag { build-spec -> send-spec -> send-reqs -> query -> return-rps -> create -> filter -> claim -> return-hosts -> send-hosts; lane conductor { label = "Conductor"; build-spec [label = "Build request spec object", height = 38]; send-spec [label = "Submit request spec to scheduler", height = 38]; send-hosts [label = "Submit list of suitable hosts to target cell", height = 51]; } lane scheduler { label = "Scheduler"; send-reqs [label = "Submit resource requirements to placement", height = 64]; create [label = "Create a HostState object for each RP returned from Placement", height = 64]; filter [label = "Filter and weigh results", height = 38]; return-hosts [label = "Return a list of selected host & alternates, along with their allocations, to the conductor", height = 89]; } lane placement { label = "Placement"; query [label = "Query to determine the RPs representing compute nodes to satisfy requirements", height = 64]; return-rps [label = "Return list of resource providers and their corresponding allocations to scheduler", height = 89]; claim [label = "Create allocations against selected compute node", height = 64]; } } As the above diagram illustrates, scheduling works like so: #. Scheduler gets a request spec from the "super conductor", containing resource requirements. The "super conductor" operates at the top level of a deployment, as contrasted with the "cell conductor", which operates within a particular cell. #. Scheduler sends those requirements to placement. #. Placement runs a query to determine the resource providers (in this case, compute nodes) that can satisfy those requirements. #. Placement then constructs a data structure for each compute node as documented in the `spec`__. The data structure contains summaries of the matching resource provider information for each compute node, along with the AllocationRequest that will be used to claim the requested resources if that compute node is selected. #. Placement returns this data structure to the Scheduler. #. The Scheduler creates HostState objects for each compute node contained in the provider summaries. These HostState objects contain the information about the host that will be used for subsequent filtering and weighing. #. Since the request spec can specify one or more instances to be scheduled. The Scheduler repeats the next several steps for each requested instance. #. Scheduler runs these HostState objects through the filters and weighers to further refine and rank the hosts to match the request. #. Scheduler then selects the HostState at the top of the ranked list, and determines its matching AllocationRequest from the data returned by Placement. It uses that AllocationRequest as the body of the request sent to Placement to claim the resources. #. If the claim is not successful, that indicates that another process has consumed those resources, and the host is no longer able to satisfy the request. In that event, the Scheduler moves on to the next host in the list, repeating the process until it is able to successfully claim the resources. #. Once the Scheduler has found a host for which a successful claim has been made, it needs to select a number of "alternate" hosts. These are hosts from the ranked list that are in the same cell as the selected host, which can be used by the cell conductor in the event that the build on the selected host fails for some reason. The number of alternates is determined by the configuration option `scheduler.max_attempts`. #. Scheduler creates two list structures for each requested instance: one for the hosts (selected + alternates), and the other for their matching AllocationRequests. #. To create the alternates, Scheduler determines the cell of the selected host. It then iterates through the ranked list of HostState objects to find a number of additional hosts in that same cell. It adds those hosts to the host list, and their AllocationRequest to the allocation list. #. Once those lists are created, the Scheduler has completed what it needs to do for a requested instance. #. Scheduler repeats this process for any additional requested instances. When all instances have been scheduled, it creates a 2-tuple to return to the super conductor, with the first element of the tuple being a list of lists of hosts, and the second being a list of lists of the AllocationRequests. #. Scheduler returns that 2-tuple to the super conductor. #. For each requested instance, the super conductor determines the cell of the selected host. It then sends a 2-tuple of ([hosts], [AllocationRequests]) for that instance to the target cell conductor. #. Target cell conductor tries to build the instance on the selected host. If it fails, it uses the AllocationRequest data for that host to unclaim the resources for the selected host. It then iterates through the list of alternates by first attempting to claim the resources, and if successful, building the instance on that host. Only when all alternates fail does the build request fail. __ https://specs.openstack.org/openstack/nova-specs/specs/pike/approved/placement-allocation-requests.html nova-17.0.13/doc/source/reference/notifications.rst0000664000175000017500000003643413556316250022276 0ustar zuulzuul00000000000000.. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. Notifications in Nova ===================== Similarly to other OpenStack services Nova emits notifications to the message bus with the Notifier class provided by oslo.messaging [1]_. From the notification consumer point of view a notification consists of two parts: an envelope with a fixed structure defined by oslo.messaging and a payload defined by the service emitting the notification. The envelope format is the following:: { "priority": , "event_type": , "timestamp": , "publisher_id": , "message_id": , "payload": } Notifications can be completely disabled by setting the following in your nova configuration file: .. code-block:: ini [oslo_messaging_notifications] driver = noop There are two types of notifications in Nova: legacy notifications which have an unversioned payload and newer notifications which have a versioned payload. Unversioned notifications ------------------------- Nova code uses the nova.rpc.get_notifier call to get a configured oslo.messaging Notifier object and it uses the oslo provided functions on the Notifier object to emit notifications. The configuration of the returned Notifier object depends on the parameters of the get_notifier call and the value of the oslo.messaging configuration options `driver` and `topics`. There are notification configuration options in Nova which are specific for certain notification types like `notifications.notify_on_state_change`, `notifications.default_level`, etc. The structure of the payload of the unversioned notifications is defined in the code that emits the notification and no documentation or enforced backward compatibility contract exists for that format. Versioned notifications ----------------------- The versioned notification concept is created to fix the shortcomings of the unversioned notifications. The envelope structure of the emitted notification is the same as in the unversioned notification case as it is provided by oslo.messaging. However the payload is not a free form dictionary but a serialized oslo versionedobject [2]_. .. _service.update: For example the wire format of the `service.update` notification looks like the following:: { "priority":"INFO", "payload":{ "nova_object.namespace":"nova", "nova_object.name":"ServiceStatusPayload", "nova_object.version":"1.0", "nova_object.data":{ "host":"host1", "disabled":false, "last_seen_up":null, "binary":"nova-compute", "topic":"compute", "disabled_reason":null, "report_count":1, "forced_down":false, "version":2 } }, "event_type":"service.update", "publisher_id":"nova-compute:host1" } The serialized oslo versionedobject as a payload provides a version number to the consumer so the consumer can detect if the structure of the payload is changed. Nova provides the following contract regarding the versioned notification payload: * the payload version defined by the `the nova_object.version` field of the payload will be increased if and only if the syntax or the semantics of the `nova_object.data` field of the payload is changed. * a minor version bump indicates a backward compatible change which means that only new fields are added to the payload so a well written consumer can still consume the new payload without any change. * a major version bump indicates a backward incompatible change of the payload which can mean removed fields, type change, etc in the payload. * there is an additional field 'nova_object.name' for every payload besides 'nova_object.data' and 'nova_object.version'. This field contains the name of the nova internal representation of the payload type. Client code should not depend on this name. There is a Nova configuration parameter `notifications.notification_format` that can be used to specify which notifications are emitted by Nova. The possible values are `unversioned`, `versioned`, `both` and the default value is `both`. The versioned notifications are emitted to a different topic than the legacy notifications. By default they are emitted to 'versioned_notifications' but it is configurable in the nova.conf with the `versioned_notifications_topic` config option. How to add a new versioned notification ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ To support the above contract from the Nova code every versioned notification is modeled with oslo versionedobjects. Every versioned notification class shall inherit from the `nova.notifications.objects.base.NotificationBase` which already defines three mandatory fields of the notification `event_type`, `publisher_id` and `priority`. The new notification class shall add a new field `payload` with an appropriate payload type. The payload object of the notifications shall inherit from the `nova.objects.notifications.base.NotificationPayloadBase` class and shall define the fields of the payload as versionedobject fields. The base classes are described in the following section. The nova.notifications.objects.base module .......................................... .. automodule:: nova.notifications.objects.base :noindex: :members: :show-inheritance: Please note that the notification objects shall not be registered to the NovaObjectRegistry to avoid mixing nova internal objects with the notification objects. Instead of that use the register_notification decorator on every concrete notification object. The following code example defines the necessary model classes for a new notification `myobject.update`:: @notification.notification_sample('myobject-update.json') @object_base.NovaObjectRegistry.register.register_notification class MyObjectNotification(notification.NotificationBase): # Version 1.0: Initial version VERSION = '1.0' fields = { 'payload': fields.ObjectField('MyObjectUpdatePayload') } @object_base.NovaObjectRegistry.register.register_notification class MyObjectUpdatePayload(notification.NotificationPayloadBase): # Version 1.0: Initial version VERSION = '1.0' fields = { 'some_data': fields.StringField(), 'another_data': fields.StringField(), } After that the notification can be populated and emitted with the following code:: payload = MyObjectUpdatePayload(some_data="foo", another_data="bar") MyObjectNotification( publisher=notification.NotificationPublisher.from_service_obj( ), event_type=notification.EventType( object='myobject', action=fields.NotificationAction.UPDATE), priority=fields.NotificationPriority.INFO, payload=payload).emit(context) The above code will generate the following notification on the wire:: { "priority":"INFO", "payload":{ "nova_object.namespace":"nova", "nova_object.name":"MyObjectUpdatePayload", "nova_object.version":"1.0", "nova_object.data":{ "some_data":"foo", "another_data":"bar", } }, "event_type":"myobject.update", "publisher_id":":" } There is a possibility to reuse an existing versionedobject as notification payload by adding a `SCHEMA` field for the payload class that defines a mapping between the fields of existing objects and the fields of the new payload object. For example the service.status notification reuses the existing `nova.objects.service.Service` object when defines the notification's payload:: @notification.notification_sample('service-update.json') @object_base.NovaObjectRegistry.register.register_notification class ServiceStatusNotification(notification.NotificationBase): # Version 1.0: Initial version VERSION = '1.0' fields = { 'payload': fields.ObjectField('ServiceStatusPayload') } @object_base.NovaObjectRegistry.register.register_notification class ServiceStatusPayload(notification.NotificationPayloadBase): SCHEMA = { 'host': ('service', 'host'), 'binary': ('service', 'binary'), 'topic': ('service', 'topic'), 'report_count': ('service', 'report_count'), 'disabled': ('service', 'disabled'), 'disabled_reason': ('service', 'disabled_reason'), 'availability_zone': ('service', 'availability_zone'), 'last_seen_up': ('service', 'last_seen_up'), 'forced_down': ('service', 'forced_down'), 'version': ('service', 'version') } # Version 1.0: Initial version VERSION = '1.0' fields = { 'host': fields.StringField(nullable=True), 'binary': fields.StringField(nullable=True), 'topic': fields.StringField(nullable=True), 'report_count': fields.IntegerField(), 'disabled': fields.BooleanField(), 'disabled_reason': fields.StringField(nullable=True), 'availability_zone': fields.StringField(nullable=True), 'last_seen_up': fields.DateTimeField(nullable=True), 'forced_down': fields.BooleanField(), 'version': fields.IntegerField(), } def populate_schema(self, service): super(ServiceStatusPayload, self).populate_schema(service=service) If the `SCHEMA` field is defined then the payload object needs to be populated with the `populate_schema` call before it can be emitted:: payload = ServiceStatusPayload() payload.populate_schema(service=) ServiceStatusNotification( publisher=notification.NotificationPublisher.from_service_obj( ), event_type=notification.EventType( object='service', action=fields.NotificationAction.UPDATE), priority=fields.NotificationPriority.INFO, payload=payload).emit(context) The above code will emit the :ref:`already shown notification` on the wire. Every item in the `SCHEMA` has the syntax of:: : (, ) The mapping defined in the `SCHEMA` field has the following semantics. When the `populate_schema` function is called the content of the `SCHEMA` field is enumerated and the value of the field of the pointed parameter object is copied to the requested payload field. So in the above example the `host` field of the payload object is populated from the value of the `host` field of the `service` object that is passed as a parameter to the `populate_schema` call. A notification payload object can reuse fields from multiple existing objects. Also a notification can have both new and reused fields in its payload. Note that the notification's publisher instance can be created two different ways. It can be created by instantiating the `NotificationPublisher` object with a `host` and a `source` string parameter or it can be generated from a `Service` object by calling `NotificationPublisher.from_service_obj` function. Versioned notifications shall have a sample file stored under `doc/sample_notifications` directory and the notification object shall be decorated with the `notification_sample` decorator. For example the `service.update` notification has a sample file stored in `doc/sample_notifications/service-update.json` and the ServiceUpdateNotification class is decorated accordingly. Notification payload classes can use inheritance to avoid duplicating common payload fragments in nova code. However the leaf classes used directly in a notification should be created with care to avoid future needs of adding extra level of inheritance that changes the name of the leaf class as that name is present in the payload class. If this cannot be avoided and the only change is the renaming then the version of the new payload shall be the same as the old payload was before the rename. See [3]_ as an example. If the renaming involves any other changes on the payload (e.g. adding new fields) then the version of the new payload shall be higher than the old payload was. See [4]_ as an example. What should be in the notification payload ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ This is just a guideline. You should always consider the actual use case that requires the notification. * Always include the identifier (e.g. uuid) of the entity that can be used to query the whole entity over the REST API so that the consumer can get more information about the entity. * You should consider including those fields that are related to the event you are sending the notification about. For example if a change of a field of the entity triggers an update notification then you should include the field to the payload. * An update notification should contain information about what part of the entity is changed. Either by filling the nova_object.changes part of the payload (note that it is not supported by the notification framework currently) or sending both the old state and the new state of the entity in the payload. * You should never include a nova internal object in the payload. Create a new object and use the SCHEMA field to map the internal object to the notification payload. This way the evolution of the internal object model can be decoupled from the evolution of the notification payload. * The delete notification should contain the same information as the create or update notifications. This makes it possible for the consumer to listen only to the delete notifications but still filter on some fields of the entity (e.g. project_id). Existing versioned notifications ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. note:: Versioned notifications are added in each release, so the samples represented below may not necessarily be in an older version of nova. Ensure you are looking at the correct version of the documentation for the release you are using. .. This is a reference anchor used in the main index page. .. _versioned_notification_samples: .. versioned_notifications:: .. [1] http://docs.openstack.org/developer/oslo.messaging/notifier.html .. [2] http://docs.openstack.org/developer/oslo.versionedobjects .. [3] https://review.openstack.org/#/c/463001/ .. [4] https://review.openstack.org/#/c/453077/ nova-17.0.13/doc/source/_extra/0000775000175000017500000000000013556316574016216 5ustar zuulzuul00000000000000nova-17.0.13/doc/source/_extra/.htaccess0000664000175000017500000001470713556316250020014 0ustar zuulzuul00000000000000# The following is generated with: # # git log --follow --name-status --format='%H' 2d0dfc632f.. -- doc/source | \ # grep ^R | grep .rst | cut -f2- | \ # sed -e 's|doc/source/|redirectmatch 301 ^/nova/([^/]+)/|' -e 's|doc/source/|/nova/$1/|' -e 's/.rst/.html$/' -e 's/.rst/.html/' | \ # sort redirectmatch 301 ^/nova/([^/]+)/addmethod.openstackapi.html$ /nova/$1/contributor/api-2.html redirectmatch 301 ^/nova/([^/]+)/admin/flavors2.html$ /nova/$1/admin/flavors.html redirectmatch 301 ^/nova/([^/]+)/aggregates.html$ /nova/$1/user/aggregates.html redirectmatch 301 ^/nova/([^/]+)/api_microversion_dev.html$ /nova/$1/contributor/microversions.html redirectmatch 301 ^/nova/([^/]+)/api_microversion_history.html$ /nova/$1/reference/api-microversion-history.html redirectmatch 301 ^/nova/([^/]+)/api_plugins.html$ /nova/$1/contributor/api.html redirectmatch 301 ^/nova/([^/]+)/architecture.html$ /nova/$1/user/architecture.html redirectmatch 301 ^/nova/([^/]+)/block_device_mapping.html$ /nova/$1/user/block-device-mapping.html redirectmatch 301 ^/nova/([^/]+)/blueprints.html$ /nova/$1/contributor/blueprints.html redirectmatch 301 ^/nova/([^/]+)/cells.html$ /nova/$1/user/cells.html redirectmatch 301 ^/nova/([^/]+)/code-review.html$ /nova/$1/contributor/code-review.html redirectmatch 301 ^/nova/([^/]+)/conductor.html$ /nova/$1/user/conductor.html redirectmatch 301 ^/nova/([^/]+)/development.environment.html$ /nova/$1/contributor/development-environment.html redirectmatch 301 ^/nova/([^/]+)/devref/api.html /nova/$1/contributor/api.html redirectmatch 301 ^/nova/([^/]+)/devref/cells.html /nova/$1/user/cells.html redirectmatch 301 ^/nova/([^/]+)/devref/filter_scheduler.html /nova/$1/user/filter-scheduler.html # catch all, if we hit something in devref assume it moved to # reference unless we have already triggered a hit above. redirectmatch 301 ^/nova/([^/]+)/devref/([^/]+).html /nova/$1/reference/$2.html redirectmatch 301 ^/nova/([^/]+)/feature_classification.html$ /nova/$1/user/feature-classification.html redirectmatch 301 ^/nova/([^/]+)/filter_scheduler.html$ /nova/$1/user/filter-scheduler.html redirectmatch 301 ^/nova/([^/]+)/gmr.html$ /nova/$1/reference/gmr.html redirectmatch 301 ^/nova/([^/]+)/how_to_get_involved.html$ /nova/$1/contributor/how-to-get-involved.html redirectmatch 301 ^/nova/([^/]+)/i18n.html$ /nova/$1/reference/i18n.html redirectmatch 301 ^/nova/([^/]+)/man/index.html$ /nova/$1/cli/index.html redirectmatch 301 ^/nova/([^/]+)/man/nova-api-metadata.html$ /nova/$1/cli/nova-api-metadata.html redirectmatch 301 ^/nova/([^/]+)/man/nova-api-os-compute.html$ /nova/$1/cli/nova-api-os-compute.html redirectmatch 301 ^/nova/([^/]+)/man/nova-api.html$ /nova/$1/cli/nova-api.html redirectmatch 301 ^/nova/([^/]+)/man/nova-cells.html$ /nova/$1/cli/nova-cells.html # this is gone and never coming back, indicate that to the end users redirectmatch 410 ^/nova/([^/]+)/man/nova-cert.html$ redirectmatch 301 ^/nova/([^/]+)/man/nova-compute.html$ /nova/$1/cli/nova-compute.html redirectmatch 301 ^/nova/([^/]+)/man/nova-conductor.html$ /nova/$1/cli/nova-conductor.html redirectmatch 301 ^/nova/([^/]+)/man/nova-console.html$ /nova/$1/cli/nova-console.html redirectmatch 301 ^/nova/([^/]+)/man/nova-consoleauth.html$ /nova/$1/cli/nova-consoleauth.html redirectmatch 301 ^/nova/([^/]+)/man/nova-dhcpbridge.html$ /nova/$1/cli/nova-dhcpbridge.html redirectmatch 301 ^/nova/([^/]+)/man/nova-idmapshift.html$ /nova/$1/cli/nova-idmapshift.html redirectmatch 301 ^/nova/([^/]+)/man/nova-manage.html$ /nova/$1/cli/nova-manage.html redirectmatch 301 ^/nova/([^/]+)/man/nova-network.html$ /nova/$1/cli/nova-network.html redirectmatch 301 ^/nova/([^/]+)/man/nova-novncproxy.html$ /nova/$1/cli/nova-novncproxy.html redirectmatch 301 ^/nova/([^/]+)/man/nova-rootwrap.html$ /nova/$1/cli/nova-rootwrap.html redirectmatch 301 ^/nova/([^/]+)/man/nova-scheduler.html$ /nova/$1/cli/nova-scheduler.html redirectmatch 301 ^/nova/([^/]+)/man/nova-serialproxy.html$ /nova/$1/cli/nova-serialproxy.html redirectmatch 301 ^/nova/([^/]+)/man/nova-spicehtml5proxy.html$ /nova/$1/cli/nova-spicehtml5proxy.html redirectmatch 301 ^/nova/([^/]+)/man/nova-status.html$ /nova/$1/cli/nova-status.html redirectmatch 301 ^/nova/([^/]+)/man/nova-xvpvncproxy.html$ /nova/$1/cli/nova-xvpvncproxy.html redirectmatch 301 ^/nova/([^/]+)/notifications.html$ /nova/$1/reference/notifications.html redirectmatch 301 ^/nova/([^/]+)/placement.html$ /nova/$1/user/placement.html redirectmatch 301 ^/nova/([^/]+)/placement_dev.html$ /nova/$1/contributor/placement.html redirectmatch 301 ^/nova/([^/]+)/policies.html$ /nova/$1/contributor/policies.html redirectmatch 301 ^/nova/([^/]+)/policy_enforcement.html$ /nova/$1/reference/policy-enforcement.html redirectmatch 301 ^/nova/([^/]+)/process.html$ /nova/$1/contributor/process.html redirectmatch 301 ^/nova/([^/]+)/project_scope.html$ /nova/$1/contributor/project-scope.html redirectmatch 301 ^/nova/([^/]+)/quotas.html$ /nova/$1/user/quotas.html redirectmatch 301 ^/nova/([^/]+)/releasenotes.html$ /nova/$1/contributor/releasenotes.html redirectmatch 301 ^/nova/([^/]+)/rpc.html$ /nova/$1/reference/rpc.html redirectmatch 301 ^/nova/([^/]+)/sample_config.html$ /nova/$1/configuration/sample-config.html redirectmatch 301 ^/nova/([^/]+)/sample_policy.html$ /nova/$1/configuration/sample-policy.html redirectmatch 301 ^/nova/([^/]+)/scheduler_evolution.html$ /nova/$1/reference/scheduler-evolution.html redirectmatch 301 ^/nova/([^/]+)/services.html$ /nova/$1/reference/services.html redirectmatch 301 ^/nova/([^/]+)/stable_api.html$ /nova/$1/reference/stable-api.html redirectmatch 301 ^/nova/([^/]+)/support-matrix.html$ /nova/$1/user/support-matrix.html redirectmatch 301 ^/nova/([^/]+)/test_strategy.html$ /nova/$1/contributor/testing.html redirectmatch 301 ^/nova/([^/]+)/testing/libvirt-numa.html$ /nova/$1/contributor/testing/libvirt-numa.html redirectmatch 301 ^/nova/([^/]+)/testing/serial-console.html$ /nova/$1/contributor/testing/serial-console.html redirectmatch 301 ^/nova/([^/]+)/testing/zero-downtime-upgrade.html$ /nova/$1/contributor/testing/zero-downtime-upgrade.html redirectmatch 301 ^/nova/([^/]+)/threading.html$ /nova/$1/reference/threading.html redirectmatch 301 ^/nova/([^/]+)/upgrade.html$ /nova/$1/user/upgrade.html redirectmatch 301 ^/nova/([^/]+)/vendordata.html$ /nova/$1/user/vendordata.html redirectmatch 301 ^/nova/([^/]+)/vmstates.html$ /nova/$1/reference/vm-states.html redirectmatch 301 ^/nova/([^/]+)/wsgi.html$ /nova/$1/user/wsgi.html redirectmatch 301 ^/nova/([^/]+)/user/cellsv2_layout.html$ /nova/$1/user/cellsv2-layout.html nova-17.0.13/doc/source/contributor/0000775000175000017500000000000013556316574017306 5ustar zuulzuul00000000000000nova-17.0.13/doc/source/contributor/documentation.rst0000664000175000017500000000704713556316250022710 0ustar zuulzuul00000000000000======================== Documentation Guidelines ======================== These are some basic guidelines for contributing to documentation in nova. Review Guidelines ================= Documentation-only patches differ from code patches in a few ways. * They are often written by users / operators that aren't plugged into daily cycles of nova or on IRC * Outstanding patches are far more likely to trigger merge conflict in Git than code patches * There may be wide variation on points of view of what the "best" or "clearest" way is to say a thing This all can lead to a large number of practical documentation improvements stalling out because the author submitted the fix, and does not have the time to merge conflict chase or is used to the Gerrit follow up model. As such, documentation patches should be evaluated in the basic context of "does this make things better than the current tree". Patches are cheap, it can always be further enhanced in future patches. Typo / trivial documentation only fixes should get approved with a single +2. How users consume docs ====================== The current primary target for all documentation in nova is the web. While it is theoretically possible to generate PDF versions of the content, the tree is not currently well structured for that, and it's not clear there is an audience for that. The main nova docs tree ``doc/source`` is published per release, so there will be copies of all of this as both the ``latest`` URL (which is master), and for every stable release (e.g. ``pike``). .. note:: This raises an interesting and unexplored question about whether we want all of ``doc/source`` published with stable branches that will be stale and unimproved as we address content in ``latest``. The ``api-ref`` and ``api-guide`` publish only from master to a single site on `developer.openstack.org`. As such, they are effectively branchless. Guidelines for consumable docs ============================== * Give users context before following a link Most users exploring our documentation will be trying to learn about our software. Entry and subpages that provide links to in depth topics need to provide some basic context about why someone would need to know about a ``filter scheduler`` before following the link named filter scheduler. Providing these summaries helps the new consumer come up to speed more quickly. * Doc moves require ``.htaccess`` redirects If a file is moved in a documentation source tree, we should be aware that it might be linked from external sources, and is now a ``404 Not Found`` error for real users. All doc moves should include an entry in ``doc/source/_extra/.htaccess`` to redirect from the old page to the new page. * Images are good, please provide source An image is worth a 1000 words, but can go stale pretty quickly. We ideally want ``png`` files for display on the web, but that's a non modifiable format. For any new diagram contributions we should also get some kind of source format (``svg`` is ideal as it can be modified with open tools) along with ``png`` formats. Long Term TODOs =============== * Sort out our toctree / sidebar navigation During the bulk import of the install, admin, config guides we started with a unified toctree, which was a ton of entries, and made the navigation sidebar in Nova incredibly confusing. The short term fix was to just make that almost entirely hidden and rely on structured landing and sub pages. Long term it would be good to reconcile the toctree / sidebar into something that feels coherent. nova-17.0.13/doc/source/contributor/policies.rst0000664000175000017500000001354013556316250021641 0ustar zuulzuul00000000000000.. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. Development policies -------------------- Out Of Tree Support =================== While nova has many entrypoints and other places in the code that allow for wiring in out of tree code, upstream doesn't actively make any guarantees about these extensibility points; we don't support them, make any guarantees about compatibility, stability, etc. Furthermore, hooks and extension points in the code impede efforts in Nova to support interoperability between OpenStack clouds. Therefore an effort is being made to systematically deprecate and remove hooks, extension points, and classloading of managers and other services. Public Contractual APIs ======================== Although nova has many internal APIs, they are not all public contractual APIs. Below is a link of our public contractual APIs: * https://developer.openstack.org/api-ref/compute/ Anything not in this list is considered private, not to be used outside of nova, and should not be considered stable. REST APIs ========== Follow the guidelines set in: https://wiki.openstack.org/wiki/APIChangeGuidelines The canonical source for REST API behavior is the code *not* documentation. Documentation is manually generated after the code by folks looking at the code and writing up what they think it does, and it is very easy to get this wrong. This policy is in place to prevent us from making backwards incompatible changes to REST APIs. Patches and Reviews =================== Merging a patch requires a non-trivial amount of reviewer resources. As a patch author, you should try to offset the reviewer resources spent on your patch by reviewing other patches. If no one does this, the review team (cores and otherwise) become spread too thin. For review guidelines see: https://docs.openstack.org/infra/manual/developers.html#peer-review Reverts for Retrospective Vetos =============================== Sometimes our simple "2 +2s" approval policy will result in errors. These errors might be a bug that was missed, or equally importantly, it might be that other cores feel that there is a need for more discussion on the implementation of a given piece of code. Rather than `an enforced time-based solution`_ - for example, a patch couldn't be merged until it has been up for review for 3 days - we have chosen an honor-based system where core reviewers would not approve potentially contentious patches until the proposal had been sufficiently socialized and everyone had a chance to raise any concerns. Recognising that mistakes can happen, we also have a policy where contentious patches which were quickly approved should be reverted so that the discussion around the proposal can continue as if the patch had never been merged in the first place. In such a situation, the procedure is: 0. The commit to be reverted must not have been released. 1. The core team member who has a -2 worthy objection should propose a revert, stating the specific concerns that they feel need addressing. 2. Any subsequent patches depending on the to-be-reverted patch may need to be reverted also. 3. Other core team members should quickly approve the revert. No detailed debate should be needed at this point. A -2 vote on a revert is strongly discouraged, because it effectively blocks the right of cores approving the revert from -2 voting on the original patch. 4. The original patch submitter should re-submit the change, with a reference to the original patch and the revert. 5. The original reviewers of the patch should restore their votes and attempt to summarize their previous reasons for their votes. 6. The patch should not be re-approved until the concerns of the people proposing the revert are worked through. A mailing list discussion or design spec might be the best way to achieve this. .. _`an enforced time-based solution`: https://lists.launchpad.net/openstack/msg08574.html Metrics Gathering ================= Nova currently has a monitor plugin to gather CPU metrics on compute nodes. This feeds into the MetricsFilter and MetricsWeigher in the scheduler. The CPU metrics monitor is only implemented for the libvirt compute driver. External projects like `Ceilometer`_ and `Watcher`_ consume these metrics. Over time people have tried to add new monitor plugins for things like memory bandwidth. There have also been attempts to expose these monitors over CLI, the REST API, and notifications. At the `Newton midcycle`_ it was decided that Nova does a poor job as a metrics gathering tool, especially as it's incomplete, not tested, and there are numerous other tools available to get this information as their primary function. Therefore, there is a freeze on adding new metrics monitoring plugins which also includes exposing existing monitored metrics outside of Nova, like with the nova-manage CLI, the REST API, or the notification bus. Long-term, metrics gathering will likely be deprecated within Nova. Since there is not yet a clear replacement, the deprecation is open-ended, but serves as a signal that new deployments should not rely on the metrics that Nova gathers and should instead focus their efforts on alternative solutions for placement. .. _Ceilometer: https://docs.openstack.org/ceilometer/latest/ .. _Watcher: https://docs.openstack.org/watcher/latest/ .. _Newton midcycle: http://lists.openstack.org/pipermail/openstack-dev/2016-August/100600.html nova-17.0.13/doc/source/contributor/code-review.rst0000664000175000017500000002602413556316250022244 0ustar zuulzuul00000000000000.. _code-review: ========================== Code Review Guide for Nova ========================== This is a very terse set of points for reviewers to consider when looking at nova code. These are things that are important for the continued smooth operation of Nova, but that tend to be carried as "tribal knowledge" instead of being written down. It is an attempt to boil down some of those things into nearly checklist format. Further explanation about why some of these things are important belongs elsewhere and should be linked from here. Upgrade-Related Concerns ======================== RPC API Versions ---------------- * If an RPC method is modified, the following needs to happen: * The manager-side (example: compute/manager) needs a version bump * The manager-side method needs to tolerate older calls as well as newer calls * Arguments can be added as long as they are optional. Arguments cannot be removed or changed in an incompatible way. * The RPC client code (example: compute/rpcapi.py) needs to be able to honor a pin for the older version (see self.client.can_send_version() calls). If we are pinned at 1.5, but the version requirement for a method is 1.7, we need to be able to formulate the call at version 1.5. * Methods can drop compatibility with older versions when we bump a major version. * RPC methods can be deprecated by removing the client (example: compute/rpcapi.py) implementation. However, the manager method must continue to exist until the major version of the API is bumped. Object Versions --------------- * If a tracked attribute (i.e. listed in fields) or remotable method is added, or a method is changed, the object version must be bumped. Changes for methods follow the same rules as above for regular RPC methods. We have tests to try to catch these changes, which remind you to bump the version and then correct the version-hash in the tests. * Field types cannot be changed. If absolutely required, create a new attribute and deprecate the old one. Ideally, support converting the old attribute to the new one with an obj_load_attr() handler. There are some exceptional cases where changing the type can be allowed, but care must be taken to ensure it does not affect the wireline API. * New attributes should be removed from the primitive in obj_make_compatible() if the attribute was added after the target version. * Remotable methods should not return unversioned structures wherever possible. They should return objects or simple values as the return types are not (and cannot) be checked by the hash tests. * Remotable methods should not take complex structures as arguments. These cannot be verified by the hash tests, and thus are subject to drift. Either construct an object and pass that, or pass all the simple values required to make the call. * Changes to an object as described above will cause a hash to change in TestObjectVersions. This is a reminder to the developer and the reviewer that the version needs to be bumped. There are times when we need to make a change to an object without bumping its version, but those cases are only where the hash logic detects a change that is not actually a compatibility issue and must be handled carefully. Database Schema --------------- * Changes to the database schema must generally be additive-only. This means you can add columns, but you can't drop or alter a column. We have some hacky tests to try to catch these things, but they are fragile. Extreme reviewer attention to non-online alterations to the DB schema will help us avoid disaster. * Dropping things from the schema is a thing we need to be extremely careful about, making sure that the column has not been used (even present in one of our models) for at least a release. * Data migrations must not be present in schema migrations. If data needs to be converted to another format, or moved from one place to another, then that must be done while the database server remains online. Generally, this can and should be hidden within the object layer so that an object can load from either the old or new location, and save to the new one. * Multiple Cells v2 cells are supported started in the Pike release. As such, any online data migrations that move data from a cell database to the API database must be multi-cell aware. REST API ========= When making a change to the nova API, we should always follow `the API WG guidelines `_ rather than going for "local" consistency. Developers and reviewers should read all of the guidelines, but they are very long. So here are some key points: * `Terms `_ * ``project`` should be used in the REST API instead of ``tenant``. * ``server`` should be used in the REST API instead of ``instance``. * ``compute`` should be used in the REST API instead of ``nova``. * `Naming Conventions `_ * URL should not include underscores; use hyphens ('-') instead. * The field names contained in a request/response body should use snake_case style, not CamelCase or Mixed_Case style. * `HTTP Response Codes `_ * Synchronous resource creation: ``201 Created`` * Asynchronous resource creation: ``202 Accepted`` * Synchronous resource deletion: ``204 No Content`` * For all other successful operations: ``200 OK`` Config Options ============== Location -------- The central place where all config options should reside is the ``/nova/conf/`` package. Options that are in named sections of ``nova.conf``, such as ``[serial_console]``, should be in their own module. Options that are in the ``[DEFAULT]`` section should be placed in modules that represent a natural grouping. For example, all of the options that affect the scheduler would be in the ``scheduler.py`` file, and all the networking options would be moved to ``network.py``. Implementation -------------- A config option should be checked for: * A short description which explains what it does. If it is a unit (e.g. timeouts or so) describe the unit which is used (seconds, megabyte, mebibyte, ...). * A long description which explains the impact and scope. The operators should know the expected change in the behavior of Nova if they tweak this. * Descriptions/Validations for the possible values. * If this is an option with numeric values (int, float), describe the edge cases (like the min value, max value, 0, -1). * If this is a DictOpt, describe the allowed keys. * If this is a StrOpt, list any possible regex validations, or provide a list of acceptable and/or prohibited values. Previously used sections which explained which services consume a specific config option and which options are related to each other got dropped because they are too hard to maintain: http://lists.openstack.org/pipermail/openstack-dev/2016-May/095538.html Third Party Tests ================= Any change that is not tested well by the Jenkins check jobs must have a recent +1 vote from an appropriate third party test (or tests) on the latest patchset, before a core reviewer is allowed to make a +2 vote. Virt drivers ------------ At a minimum, we must ensure that any technology specific code has a +1 from the relevant third party test, on the latest patchset, before a +2 vote can be applied. Specifically, changes to nova/virt/driver/ need a +1 vote from the respective third party CI. For example, if you change something in the XenAPI virt driver, you must wait for a +1 from the XenServer CI on the latest patchset, before you can give that patch set a +2 vote. This is important to ensure: * We keep those drivers stable * We don't break that third party CI Notes ----- Please note: * Long term, we should ensure that any patch a third party CI is allowed to vote on, can be blocked from merging by that third party CI. But we need a lot more work to make something like that feasible, hence the proposed compromise. * While its possible to break a virt driver CI system by changing code that is outside the virt drivers, this policy is not focusing on fixing that. A third party test failure should always be investigated, but the failure of a third party test to report in a timely manner should not block others. * We are only talking about the testing of in-tree code. Please note the only public API is our REST API, see: :doc:`policies` Should I run the experimental queue jobs on this change? ======================================================== Because we can't run all CI jobs in the check and gate pipelines, some jobs can be executed on demand, thanks to the experimental pipeline. To run the experimental jobs, you need to comment your Gerrit review with "check experimental". The experimental jobs aim to test specific features, such as LXC containers or DVR with multiple nodes. Also, it might be useful to run them when we want to test backward compatibility with tools that deploy OpenStack outside Devstack (e.g. TripleO, etc). They can produce a non-voting feedback of whether the system continues to work when we deprecate or remove some options or features in Nova. The experimental queue can also be used to test that new CI jobs are correct before making them voting. Database Schema =============== * Use the ``utf8`` charset only where necessary. Some string fields, such as hex-stringified UUID values, MD5 fingerprints, SHA1 hashes or base64-encoded data, are always interpreted using ASCII encoding. A hex-stringified UUID value in ``latin1`` is 1/3 the size of the same field in ``utf8``, impacting performance without bringing any benefit. If there are no string type columns in the table, or the string type columns contain **only** the data described above, then stick with ``latin1``. Microversion API ================ If a new microversion API is added, the following needs to happen: * A new patch for the microversion API change in python-novaclient side should be submitted before the microversion change in Nova is merged. * If the microversion changes the response schema, a new schema and test for the microversion must be added to Tempest. The microversion change in Nova should not be merged until the Tempest test is submitted and at least passing; it does not need to be merged yet as long as it is testing the Nova change via Depends-On. The Nova microversion change commit message should reference the Change-Id of the Tempest test for reviewers to identify it. Notifications ============= * Every new notification type shall use the new versioned notification infrastructure documented in :doc:`/reference/notifications` Release Notes ============= A release note is required on changes that have upgrade impact, security impact, introduce a new feature, fix Critical bugs, or fix long-standing bugs with high importance. See :doc:`releasenotes` for details on how to create a release note, each available section and the type of content required. nova-17.0.13/doc/source/contributor/index.rst0000664000175000017500000000666213556316250021150 0ustar zuulzuul00000000000000=========================== Contributor Documentation =========================== Contributing to nova gives you the power to help add features, fix bugs, enhance documentation, and increase testing. Contributions of any type are valuable, and part of what keeps the project going. Here are a list of resources to get your started. Getting Started =============== * :doc:`/contributor/how-to-get-involved`: Overview of engaging in the project * :doc:`/contributor/development-environment`: Get your computer setup to contribute Nova Process ============ The nova community is a large community. We have lots of users, and they all have a lot of expectations around upgrade and backwards compatibility. For example, having a good stable API, with discoverable versions and capabilities is important for maintaining the strong ecosystem around nova. Our process is always evolving, just as nova and the community around nova evolves over time. If there are things that seem strange, or you have ideas on how to improve things, please bring them forward on IRC or the openstack-dev mailing list, so we continue to improve how the nova community operates. This section looks at the processes and why. The main aim behind all the process is to aid communication between all members of the nova community, while keeping users happy and keeping developers productive. * :doc:`/contributor/project-scope`: The focus is on features and bug fixes that make nova work better within this scope * :doc:`/contributor/policies`: General guidelines about what's supported * :doc:`/contributor/process`: The processes we follow around feature and bug submission, including how the release calendar works, and the freezes we go under * :doc:`/contributor/blueprints`: An overview of our tracking artifacts. Reviewing ========= * :doc:`/contributor/releasenotes`: When we need a release note for a contribution. * :doc:`/contributor/code-review`: Important cheat sheet for what's important when doing code review in Nova, especially some things that are hard to test for, but need human eyes. * :doc:`/reference/i18n`: What we require for i18n in patches * :doc:`/contributor/documentation`: Guidelines for handling documentation contributions Testing ======= Because Python is a dynamic language, code that is not tested might not even be Python code. All new code needs to be validated somehow. * :doc:`/contributor/testing`: An overview of our test taxonomy and the kinds of testing we do and expect. * **Testing Guides**: There are also specific testing guides for features that are hard to test in our gate. * :doc:`/contributor/testing/libvirt-numa` * :doc:`/contributor/testing/serial-console` * :doc:`/contributor/testing/zero-downtime-upgrade` The Nova API ============ Because we have many consumers of our API, we're extremely careful about changes done to the API, as the impact can be very wide. * :doc:`/contributor/api`: How the code is structured inside the API layer * :doc:`/contributor/api-2`: (needs update) * :doc:`/contributor/microversions`: How the API is (micro)versioned and what you need to do when adding an API exposed feature that needs a new microversion. Nova Major Subsystems ===================== Major subsystems in nova have different needs; some of those are documented here. If you are contributing to one of these please read the subsystem guide before diving in. * :doc:`/contributor/placement` * :doc:`/user/conductor` nova-17.0.13/doc/source/contributor/blueprints.rst0000664000175000017500000000570513556316250022225 0ustar zuulzuul00000000000000================================== Blueprints, Specs and Priorities ================================== Like most OpenStack projects, Nova uses `blueprints`_ and specifications (specs) to track new features, but not all blueprints require a spec. This document covers when a spec is needed. .. note:: Nova's specs live at: `specs.openstack.org`_ .. _`blueprints`: http://docs.openstack.org/infra/manual/developers.html#working-on-specifications-and-blueprints .. _`specs.openstack.org`: http://specs.openstack.org/openstack/nova-specs/ Specs ===== A spec is needed for any feature that requires a design discussion. All features need a blueprint but not all blueprints require a spec. If a new feature is straightforward enough that it doesn't need any design discussion, then no spec is required. In order to provide the sort of documentation that would otherwise be provided via a spec, the commit message should include a ``DocImpact`` flag and a thorough description of the feature from a user/operator perspective. Guidelines for when a feature doesn't need a spec. * Is the feature a single self contained change? * If the feature touches code all over the place, it probably should have a design discussion. * If the feature is big enough that it needs more than one commit, it probably should have a design discussion. * Not an API change. * API changes always require a design discussion. When a blueprint does not require a spec it still needs to be approved before the code which implements the blueprint is merged. Specless blueprints are discussed and potentially approved during the `Open Discussion` portion of the weekly `nova IRC meeting`_. See `trivial specifications`_ for more details. Project Priorities =================== * Pick several project priority themes, in the form of use cases, to help us prioritize work * Generate list of improvement blueprints based on the themes * Produce rough draft of list going into summit and finalize the list at the summit * Publish list of project priorities and look for volunteers to work on them * Update spec template to include * Specific use cases * State if the spec is project priority or not * Keep an up to date list of project priority blueprints that need code review in an etherpad. * Consumers of project priority and project priority blueprint lists: * Reviewers looking for direction of where to spend their blueprint review time. If a large subset of nova-core doesn't use the project priorities it means the core team is not aligned properly and should revisit the list of project priorities * The blueprint approval team, to help find the right balance of blueprints * Contributors looking for something to work on * People looking for what they can expect in the next release .. _nova IRC meeting: http://eavesdrop.openstack.org/#Nova_Team_Meeting .. _trivial specifications: https://specs.openstack.org/openstack/nova-specs/readme.html#trivial-specifications nova-17.0.13/doc/source/contributor/project-scope.rst0000664000175000017500000003205713556316250022613 0ustar zuulzuul00000000000000.. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. Scope of the Nova project ========================== Nova is focusing on doing an awesome job of its core mission. This document aims to clarify that core mission. This is a living document to help record where we agree about what Nova should and should not be doing, and why. Please treat this as a discussion of interesting, and hopefully useful, examples. It is not intended to be an exhaustive policy statement. Mission -------- Our mission statement starts with: To implement services and associated libraries to provide massively scalable, on demand, self service access to compute resources. Our official mission statement also includes the following examples of compute resources: bare metal, virtual machines, and containers. For the full official mission statement see: http://governance.openstack.org/reference/projects/nova.html#mission This document aims to help clarify what the mission statement means. Compute Resources ------------------ Nova is all about access to compute resources. This section looks at the types of compute resource Nova works with. Virtual Servers **************** Nova was originally focused purely on providing access to virtual servers running on a variety of different hypervisors. The majority of users use Nova only to provide access to virtual servers from a single hypervisor, however, its possible to have a Nova deployment include multiple different types of hypervisors, while at the same time offering containers and bare metal servers. Containers *********** The Nova API is not a good fit for a lot of container use cases. The Magnum project intends to deliver a good container experience built on top of Nova. Nova allows you to use containers in a similar way to how you would use on demand virtual machines. We want to maintain this distinction, so we maintain the integrity and usefulness of the existing Nova API. For example, Nova is not designed to spin up new containers for every apache request, nor do we plan to control what goes on inside containers. They get the same metadata provided to them as virtual machines, to do with as they see fit. Bare Metal Servers ******************* Ironic project has been pioneering the idea of treating physical machines in a similar way to on demand virtual machines. Nova's driver is able to allow a multi-tenant cloud style use of Ironic controlled resources. While currently there are operations that are a fundamental part of our virtual machine abstraction that are not currently available in ironic, such as attaching iSCSI volumes, it does not fundamentally change the semantics of our API, and as such is a suitable Nova driver. Moreover, it is expected that gap with shrink over time. Driver Parity ************** Our goal for the Nova API to provide a consistent abstraction to access on demand compute resources. We are not aiming to expose all features of all hypervisors. Where the details of the underlying hypervisor leak through our APIs, we have failed in this goal, and we must work towards better abstractions that are more interoperable. This is one reason why we put so much emphasis on the use of Tempest in third party CI systems. The key tenant of driver parity is that if a feature is supported in a driver, it must feel the same to users, as if they where using any of the other drivers that also support that feature. The exception is that, if possible for widely different performance characteristics, but the effect of that API call must be identical. Following on from that, should a feature only be added to one of the drivers, we must make every effort to ensure another driver could be implemented to match that behavior. Its important that drivers support enough features, so the API actually provides a consistent abstraction. For example, being unable to create a server or delete a server, would severely undermine that goal. In fact, Nova only ever manages resources it creates. Upgrades --------- Nova is widely used in production. As such we need to respect the needs of our existing users. At the same time we need evolve the current code base, including both adding and removing features. This section outlines how we expect people to upgrade, and what we do to help existing users that upgrade in the way we expect. Upgrade expectations ********************* Our upgrade plan is to concentrate on upgrades from N-1 to the Nth release. So for someone running juno, they would have to upgrade to kilo before upgrading to liberty. This is designed to balance the need for a smooth upgrade, against having to keep maintaining the compatibility code to make that upgrade possible. We talk about this approach as users consuming the stable branch. In addition, we also support users upgrading from the master branch, technically, between any two commits within the same release cycle. In certain cases, when crossing release boundaries, you must upgrade to the stable branch, before upgrading to the tip of master. This is to support those that are doing some level of "Continuous Deployment" from the tip of master into production. Many of the public cloud provides running OpenStack use this approach so they are able to get access to bug fixes and features they work on into production sooner. This becomes important when you consider reverting a commit that turns out to have been bad idea. We have to assume any public API change may have already been deployed into production, and as such cannot be reverted. In a similar way, a database migration may have been deployed. Any commit that will affect an upgrade gets the UpgradeImpact tag added to the commit message, so there is no requirement to wait for release notes. Don't break existing users **************************** As a community we are aiming towards a smooth upgrade process, where users must be unaware you have just upgraded your deployment, except that there might be additional feature available and improved stability and performance of some existing features. We don't ever want to remove features our users rely on. Sometimes we need to migrate users to a new implementation of that feature, which may require extra steps by the deployer, but the end users must be unaffected by such changes. However there are times when some features become a problem to maintain, and fall into disrepair. We aim to be honest with our users and highlight the issues we have, so we are in a position to find help to fix that situation. Ideally we are able to rework the feature so it can be maintained, but in some rare cases, the feature no longer works, is not tested, and no one is stepping forward to maintain that feature, the best option can be to remove that feature. When we remove features, we need to warn users by first marking those features as deprecated, before we finally remove the feature. The idea is to get feedback on how important the feature is to our user base. Where a feature is important we work with the whole community to find a path forward for those users. API Scope ---------- Nova aims to provide a highly interoperable and stable REST API for our users to get self-service access to compute resources. No more API Proxies ******************** Nova API current has some APIs that are now (in kilo) mostly just a proxy to other OpenStack services. If it were possible to remove a public API, these are some we might start with. As such, we don't want to add any more. The first example is the API that is a proxy to the Glance v1 API. As Glance moves to deprecate its v1 API, we need to translate calls from the old v1 API we expose, to Glance's v2 API. The next API to mention is the networking APIs, in particular the security groups API. If you are using nova-network, Nova is still the only way to perform these network operations. But if you use Neutron, security groups has a much richer Neutron API, and if you use both Nova API and Neutron API, the miss match can lead to some very unexpected results, in certain cases. Our intention is to avoid adding to the problems we already have in this area. No more Orchestration ********************** Nova is a low level infrastructure API. It is plumbing upon which richer ideas can be built. Heat and Magnum being great examples of that. While we have some APIs that could be considered orchestration, and we must continue to maintain those, we do not intend to add any more APIs that do orchestration. Third Party APIs ***************** Nova aims to focus on making a great API that is highly interoperable across all Nova deployments. We have historically done a very poor job of implementing and maintaining compatibility with third party APIs inside the Nova tree. As such, all new efforts should instead focus on external projects that provide third party compatibility on top of the Nova API. Where needed, we will work with those projects to extend the Nova API such that its possible to add that functionality on top of the Nova API. However, we do not intend to add API calls for those services to persist third party API specific information in the Nova database. Instead we want to focus on additions that enhance the existing Nova API. Scalability ------------ Our mission includes the text "massively scalable". Lets discuss what that means. Nova has three main axes of scale: Number of API requests, number of compute nodes and number of active instances. In many cases the number of compute nodes and active instances are so closely related, you rarely need to consider those separately. There are other items, such as the number of tenants, and the number of instances per tenant. But, again, these are very rarely the key scale issue. Its possible to have a small cloud with lots of requests for very short lived VMs, or a large cloud with lots of longer lived VMs. These need to scale out different components of the Nova system to reach their required level of scale. Ideally all Nova components are either scaled out to match the number of API requests and build requests, or scaled out to match the number of running servers. If we create components that have their load increased relative to both of these items, we can run into inefficiencies or resource contention. Although it is possible to make that work in some cases, this should always be considered. We intend Nova to be usable for both small and massive deployments. Where small involves 1-10 hypervisors and massive deployments are single regions with greater than 10,000 hypervisors. That should be seen as our current goal, not an upper limit. There are some features that would not scale well for either the small scale or the very large scale. Ideally we would not accept these features, but if there is a strong case to add such features, we must work hard to ensure you can run without that feature at the scale you are required to run. IaaS not Batch Processing -------------------------- Currently Nova focuses on providing on-demand compute resources in the style of classic Infrastructure-as-a-service clouds. A large pool of compute resources that people can consume in a self-service way. Nova is not currently optimized for dealing with a larger number of requests for compute resources compared with the amount of compute resources currently available. We generally assume that a level of spare capacity is maintained for future requests. This is needed for users who want to quickly scale out, and extra capacity becomes available again as users scale in. While spare capacity is also not required, we are not optimizing for a system that aims to run at 100% capacity at all times. As such our quota system is more focused on limiting the current level of resource usage, rather than ensuring a fair balance of resources between all incoming requests. This doesn't exclude adding features to support making a better use of spare capacity, such as "spot instances". There have been discussions around how to change Nova to work better for batch job processing. But the current focus is on how to layer such an abstraction on top of the basic primitives Nova currently provides, possibly adding additional APIs where that makes good sense. Should this turn out to be impractical, we may have to revise our approach. Deployment and Packaging ------------------------- Nova does not plan on creating its own packaging or deployment systems. Our CI infrastructure is powered by Devstack. This can also be used by developers to test their work on a full deployment of Nova. We do not develop any deployment or packaging for production deployments. Being widely adopted by many distributions and commercial products, we instead choose to work with all those parties to ensure they are able to effectively package and deploy Nova. nova-17.0.13/doc/source/contributor/microversions.rst0000664000175000017500000003670013556316250022737 0ustar zuulzuul00000000000000API Microversions ================= Background ---------- Nova uses a framework we call 'API Microversions' for allowing changes to the API while preserving backward compatibility. The basic idea is that a user has to explicitly ask for their request to be treated with a particular version of the API. So breaking changes can be added to the API without breaking users who don't specifically ask for it. This is done with an HTTP header ``OpenStack-API-Version`` which has as its value a string containing the name of the service, ``compute``, and a monotonically increasing semantic version number starting from ``2.1``. The full form of the header takes the form:: OpenStack-API-Version: compute 2.1 If a user makes a request without specifying a version, they will get the ``DEFAULT_API_VERSION`` as defined in ``nova/api/openstack/wsgi.py``. This value is currently ``2.1`` and is expected to remain so for quite a long time. There is a special value ``latest`` which can be specified, which will allow a client to always receive the most recent version of API responses from the server. .. warning:: The ``latest`` value is mostly meant for integration testing and would be dangerous to rely on in client code since Nova microversions are not following semver and therefore backward compatibility is not guaranteed. Clients, like python-novaclient, should always require a specific microversion but limit what is acceptable to the version range that it understands at the time. .. warning:: To maintain compatibility, an earlier form of the microversion header is acceptable. It takes the form:: X-OpenStack-Nova-API-Version: 2.1 This form will continue to be supported until the ``DEFAULT_API_VERSION`` is raised to version ``2.27`` or higher. Clients accessing deployments of the Nova API which are not yet providing microversion ``2.27`` must use the older form. For full details please read the `Kilo spec for microversions `_ and `Microversion Specification `_. When do I need a new Microversion? ---------------------------------- A microversion is needed when the contract to the user is changed. The user contract covers many kinds of information such as: - the Request - the list of resource urls which exist on the server Example: adding a new servers/{ID}/foo which didn't exist in a previous version of the code - the list of query parameters that are valid on urls Example: adding a new parameter ``is_yellow`` servers/{ID}?is_yellow=True - the list of query parameter values for non free form fields Example: parameter filter_by takes a small set of constants/enums "A", "B", "C". Adding support for new enum "D". - new headers accepted on a request - the list of attributes and data structures accepted. Example: adding a new attribute 'locked': True/False to the request body However, the attribute ``os.scheduler_hints`` of the "create a server" API is an exception to this. A new scheduler which adds a new attribute to ``os:scheduler_hints`` doesn't require a new microversion, because available schedulers depend on cloud environments, and we accept customized schedulers as a rule. - the Response - the list of attributes and data structures returned Example: adding a new attribute 'locked': True/False to the output of servers/{ID} - the allowed values of non free form fields Example: adding a new allowed ``status`` to servers/{ID} - the list of status codes allowed for a particular request Example: an API previously could return 200, 400, 403, 404 and the change would make the API now also be allowed to return 409. See [#f2]_ for the 400, 403, 404 and 415 cases. - changing a status code on a particular response Example: changing the return code of an API from 501 to 400. .. note:: Fixing a bug so that a 400+ code is returned rather than a 500 or 503 does not require a microversion change. It's assumed that clients are not expected to handle a 500 or 503 response and therefore should not need to opt-in to microversion changes that fixes a 500 or 503 response from happening. According to the OpenStack API Working Group, a **500 Internal Server Error** should **not** be returned to the user for failures due to user error that can be fixed by changing the request on the client side. See [#f1]_. - new headers returned on a response The following flow chart attempts to walk through the process of "do we need a microversion". .. graphviz:: digraph states { label="Do I need a microversion?" silent_fail[shape="diamond", style="", group=g1, label="Did we silently fail to do what is asked?"]; ret_500[shape="diamond", style="", group=g1, label="Did we return a 500 before?"]; new_error[shape="diamond", style="", group=g1, label="Are we changing what status code is returned?"]; new_attr[shape="diamond", style="", group=g1, label="Did we add or remove an attribute to a payload?"]; new_param[shape="diamond", style="", group=g1, label="Did we add or remove an accepted query string parameter or value?"]; new_resource[shape="diamond", style="", group=g1, label="Did we add or remove a resource url?"]; no[shape="box", style=rounded, label="No microversion needed"]; yes[shape="box", style=rounded, label="Yes, you need a microversion"]; no2[shape="box", style=rounded, label="No microversion needed, it's a bug"]; silent_fail -> ret_500[label=" no"]; silent_fail -> no2[label="yes"]; ret_500 -> no2[label="yes [1]"]; ret_500 -> new_error[label=" no"]; new_error -> new_attr[label=" no"]; new_error -> yes[label="yes"]; new_attr -> new_param[label=" no"]; new_attr -> yes[label="yes"]; new_param -> new_resource[label=" no"]; new_param -> yes[label="yes"]; new_resource -> no[label=" no"]; new_resource -> yes[label="yes"]; {rank=same; yes new_attr} {rank=same; no2 ret_500} {rank=min; silent_fail} } **Footnotes** .. [#f1] When fixing 500 errors that previously caused stack traces, try to map the new error into the existing set of errors that API call could previously return (400 if nothing else is appropriate). Changing the set of allowed status codes from a request is changing the contract, and should be part of a microversion (except in [#f2]_). The reason why we are so strict on contract is that we'd like application writers to be able to know, for sure, what the contract is at every microversion in Nova. If they do not, they will need to write conditional code in their application to handle ambiguities. When in doubt, consider application authors. If it would work with no client side changes on both Nova versions, you probably don't need a microversion. If, on the other hand, there is any ambiguity, a microversion is probably needed. .. [#f2] The exception to not needing a microversion when returning a previously unspecified error code is the 400, 403, 404 and 415 cases. This is considered OK to return even if previously unspecified in the code since it's implied given keystone authentication can fail with a 403 and API validation can fail with a 400 for invalid json request body. Request to url/resource that does not exist always fails with 404. Invalid content types are handled before API methods are called which results in a 415. .. note:: When in doubt about whether or not a microversion is required for changing an error response code, consult the `Nova API subteam`_. .. _Nova API subteam: https://wiki.openstack.org/wiki/Meetings/NovaAPI When a microversion is not needed --------------------------------- A microversion is not needed in the following situation: - the response - Changing the error message without changing the response code does not require a new microversion. - Removing an inapplicable HTTP header, for example, suppose the Retry-After HTTP header is being returned with a 4xx code. This header should only be returned with a 503 or 3xx response, so it may be removed without bumping the microversion. - An obvious regression bug in an admin-only API where the bug can still be fixed upstream on active stable branches. Admin-only APIs are less of a concern for interoperability and generally a regression in behavior can be dealt with as a bug fix when the documentation clearly shows the API behavior was unexpectedly regressed. See [#f3]_ for an example. Intentional behavior changes to an admin-only API *do* require a microversion, like the :ref:`2.53 microversion <2.53-microversion>` for example. **Footnotes** .. [#f3] https://review.openstack.org/#/c/523194/ In Code ------- In ``nova/api/openstack/wsgi.py`` we define an ``@api_version`` decorator which is intended to be used on top-level Controller methods. It is not appropriate for lower-level methods. Some examples: Adding a new API method ~~~~~~~~~~~~~~~~~~~~~~~ In the controller class:: @wsgi.Controller.api_version("2.4") def my_api_method(self, req, id): .... This method would only be available if the caller had specified an ``OpenStack-API-Version`` of >= ``2.4``. If they had specified a lower version (or not specified it and received the default of ``2.1``) the server would respond with ``HTTP/404``. Removing an API method ~~~~~~~~~~~~~~~~~~~~~~ In the controller class:: @wsgi.Controller.api_version("2.1", "2.4") def my_api_method(self, req, id): .... This method would only be available if the caller had specified an ``OpenStack-API-Version`` of <= ``2.4``. If ``2.5`` or later is specified the server will respond with ``HTTP/404``. Changing a method's behavior ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In the controller class:: @wsgi.Controller.api_version("2.1", "2.3") def my_api_method(self, req, id): .... method_1 ... @wsgi.Controller.api_version("2.4") # noqa def my_api_method(self, req, id): .... method_2 ... If a caller specified ``2.1``, ``2.2`` or ``2.3`` (or received the default of ``2.1``) they would see the result from ``method_1``, ``2.4`` or later ``method_2``. It is vital that the two methods have the same name, so the second of them will need ``# noqa`` to avoid failing flake8's ``F811`` rule. The two methods may be different in any kind of semantics (schema validation, return values, response codes, etc) A change in schema only ~~~~~~~~~~~~~~~~~~~~~~~ If there is no change to the method, only to the schema that is used for validation, you can add a version range to the ``validation.schema`` decorator:: @wsgi.Controller.api_version("2.1") @validation.schema(dummy_schema.dummy, "2.3", "2.8") @validation.schema(dummy_schema.dummy2, "2.9") def update(self, req, id, body): .... This method will be available from version ``2.1``, validated according to ``dummy_schema.dummy`` from ``2.3`` to ``2.8``, and validated according to ``dummy_schema.dummy2`` from ``2.9`` onward. When not using decorators ~~~~~~~~~~~~~~~~~~~~~~~~~ When you don't want to use the ``@api_version`` decorator on a method or you want to change behavior within a method (say it leads to simpler or simply a lot less code) you can directly test for the requested version with a method as long as you have access to the api request object (commonly called ``req``). Every API method has an api_version_request object attached to the req object and that can be used to modify behavior based on its value:: def index(self, req): req_version = req.api_version_request req1_min = api_version_request.APIVersionRequest("2.1") req1_max = api_version_request.APIVersionRequest("2.5") req2_min = api_version_request.APIVersionRequest("2.6") req2_max = api_version_request.APIVersionRequest("2.10") if req_version.matches(req1_min, req1_max): ....stuff.... elif req_version.matches(req2min, req2_max): ....other stuff.... elif req_version > api_version_request.APIVersionRequest("2.10"): ....more stuff..... The first argument to the matches method is the minimum acceptable version and the second is maximum acceptable version. A specified version can be null:: null_version = APIVersionRequest() If the minimum version specified is null then there is no restriction on the minimum version, and likewise if the maximum version is null there is no restriction the maximum version. Alternatively a one sided comparison can be used as in the example above. Other necessary changes ----------------------- If you are adding a patch which adds a new microversion, it is necessary to add changes to other places which describe your change: * Update ``REST_API_VERSION_HISTORY`` in ``nova/api/openstack/api_version_request.py`` * Update ``_MAX_API_VERSION`` in ``nova/api/openstack/api_version_request.py`` * Add a verbose description to ``nova/api/openstack/compute/rest_api_version_history.rst``. * Add a `release note`_ with a ``features`` section announcing the new or changed feature and the microversion. * Update the expected versions in affected tests, for example in ``nova/tests/unit/api/openstack/compute/test_versions.py``. * Update the get versions api sample file: ``doc/api_samples/versions/versions-get-resp.json`` and ``doc/api_samples/versions/v21-version-get-resp.json``. * Make a new commit to python-novaclient and update corresponding files to enable the newly added microversion API. * If the microversion changes the response schema, a new schema and test for the microversion must be added to Tempest. * Update the `API Reference`_ documentation as appropriate. The source is located under `api-ref/source/`. .. _release note: https://docs.openstack.org/nova/latest/contributor/releasenotes.html .. _API Reference: https://developer.openstack.org/api-ref/compute/ Allocating a microversion ------------------------- If you are adding a patch which adds a new microversion, it is necessary to allocate the next microversion number. Except under extremely unusual circumstances and this would have been mentioned in the nova spec for the change, the minor number of ``_MAX_API_VERSION`` will be incremented. This will also be the new microversion number for the API change. It is possible that multiple microversion patches would be proposed in parallel and the microversions would conflict between patches. This will cause a merge conflict. We don't reserve a microversion for each patch in advance as we don't know the final merge order. Developers may need over time to rebase their patch calculating a new version number as above based on the updated value of ``_MAX_API_VERSION``. Testing Microversioned API Methods ---------------------------------- Testing a microversioned API method is very similar to a normal controller method test, you just need to add the ``OpenStack-API-Version`` header, for example:: req = fakes.HTTPRequest.blank('/testable/url/endpoint') req.headers = {'OpenStack-API-Version': 'compute 2.28'} req.api_version_request = api_version.APIVersionRequest('2.6') controller = controller.TestableController() res = controller.index(req) ... assertions about the response ... For many examples of testing, the canonical examples are in ``nova/tests/unit/api/openstack/compute/test_microversions.py``. nova-17.0.13/doc/source/contributor/api-2.rst0000664000175000017500000000444313556316250020744 0ustar zuulzuul00000000000000.. Copyright 2010-2011 OpenStack Foundation All Rights Reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. .. TODO:: This should be merged into contributor/api Adding a Method to the OpenStack API ==================================== The interface is a mostly RESTful API. REST stands for Representational State Transfer and provides an architecture "style" for distributed systems using HTTP for transport. Figure out a way to express your request and response in terms of resources that are being created, modified, read, or destroyed. Routing ------- To map URLs to controllers+actions, OpenStack uses the Routes package, a clone of Rails routes for Python implementations. See http://routes.groovie.org/ for more information. URLs are mapped to "action" methods on "controller" classes in ``nova/api/openstack/__init__/ApiRouter.__init__`` . See http://routes.groovie.org/manual.html for all syntax, but you'll probably just need these two: - mapper.connect() lets you map a single URL to a single action on a controller. - mapper.resource() connects many standard URLs to actions on a controller. Controllers and actions ----------------------- Controllers live in ``nova/api/openstack``, and inherit from nova.wsgi.Controller. See ``nova/api/openstack/compute/servers.py`` for an example. Action methods take parameters that are sucked out of the URL by mapper.connect() or .resource(). The first two parameters are self and the WebOb request, from which you can get the req.environ, req.body, req.headers, etc. Serialization ------------- Actions return a dictionary, and wsgi.Controller serializes that to JSON. Faults ------ If you need to return a non-200, you should return faults.Fault(webob.exc.HTTPNotFound()) replacing the exception as appropriate. nova-17.0.13/doc/source/contributor/how-to-get-involved.rst0000664000175000017500000003522713556316250023656 0ustar zuulzuul00000000000000.. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. .. _getting_involved: ===================================== How to get (more) involved with Nova ===================================== So you want to get more involved with Nova? Or you are new to Nova and wondering where to start? We are working on building easy ways for you to get help and ideas on how to learn more about Nova and how the Nova community works. Any questions, please ask! If you are unsure who to ask, then please contact the `Mentoring Czar`__. __ `Nova People`_ How do I get started? ===================== There are quite a few global docs on this: - http://www.openstack.org/assets/welcome-guide/OpenStackWelcomeGuide.pdf - https://wiki.openstack.org/wiki/How_To_Contribute - http://www.openstack.org/community/ There is more general info, non Nova specific info here: - https://wiki.openstack.org/wiki/Mentors - https://wiki.openstack.org/wiki/OpenStack_Upstream_Training What should I work on? ~~~~~~~~~~~~~~~~~~~~~~ So you are starting out your Nova journey, where is a good place to start? If you'd like to learn how Nova works before changing anything (good idea!), we recommend looking for reviews with -1s and -2s and seeing why they got downvoted. There is also the :ref:`code-review`. Once you have some understanding, start reviewing patches. It's OK to ask people to explain things you don't understand. It's also OK to see some potential problems but put a +0. Another way is to look for a subteam you'd like to get involved with and review their patches. See: https://etherpad.openstack.org/p/queens-nova-priorities-tracking Once you're ready to write code, take a look at some of the work already marked as low-hanging fruit: * https://bugs.launchpad.net/nova/+bugs?field.tag=low-hanging-fruit * https://etherpad.openstack.org/p/nova-low-hanging-fruit How do I get my feature in? ~~~~~~~~~~~~~~~~~~~~~~~~~~~ The best way of getting your feature in is... well it depends. First concentrate on solving your problem and/or use case, don't fixate on getting the code you have working merged. It's likely things will need significant re-work after you discuss how your needs match up with all the existing ways Nova is currently being used. The good news, is this process should leave you with a feature that's more flexible and doesn't lock you into your current way of thinking. A key part of getting code merged, is helping with reviewing other people's code. Great reviews of others code will help free up more core reviewer time to look at your own patches. In addition, you will understand how the review is thinking when they review your code. Also, work out if any on going efforts are blocking your feature and helping out speeding those up. The spec review process should help with this effort. For more details on our process, please see: :ref:`process`. What is expected of a good contributor? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ TODO - need more info on this Top Tips for working with the Nova community ============================================ Here are some top tips around engaging with the Nova community: - IRC - we talk a lot in #openstack-nova - do ask us questions in there, and we will try to help you - not sure about asking questions? feel free to listen in around other people's questions - we recommend you setup an IRC bouncer: https://wiki.openstack.org/wiki/IRC - Email - Use the [nova] tag in the mailing lists - Filtering on [nova] and [all] can help tame the list - Be Open - i.e. don't review your teams code in private, do it publicly in gerrit - i.e. be ready to talk about openly about problems you are having, not "theoretical" issues - that way you can start to gain the trust of the wider community - Got a problem? Please ask! - Please raise any problems and ask questions early - we want to help you before you are frustrated or annoyed - unsure who to ask? Just ask in IRC, or check out the list of `Nova people`_. - Talk about problems first, then solutions - Nova is a big project. At first, it can be hard to see the big picture - Don't think about "merging your patch", instead think about "solving your problem" - conversations are more productive that way - It's not the decision that's important, it's the reason behind it that's important - Don't like the way the community is going? - Please ask why we were going that way, and please engage with the debate - If you don't, we are unable to learn from what you have to offer - No one will decide, this is stuck, who can help me? - it's rare, but it happens - it's the `Nova PTL`__'s job to help you - ...but if you don't ask, it's hard for them to help you __ `Nova People`_ Process ======= It can feel like you are faced with a wall of process. We are a big community, to make sure the right communication happens, we do use a minimal amount of process. If you find something that doesn't make sense, please: - ask questions to find out \*why\* it happens - if you know of a better way to do it, please speak up - one "better way" might be to remove the process if it no longer helps To learn more about Nova's process, please read :ref:`process`. Why bother with any process? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Why is it worth creating a bug or blueprint to track your code review? This may seem like silly process, but there is usually a good reason behind it. We have lots of code to review, and we have tools to try and get to really important code reviews first. If yours is really important, but not picked up by our tools, it's possible you just get lost in the bottom of a big queue. If you have a bug fix, you have done loads of work to identify the issue, and test out your fix, and submit it. By adding a bug report, you are making it easier for other folks who hit the same problem to find your work, possibly saving them the hours of pain you went through. With any luck that gives all those people the time to fix different bugs, all that might have affected you, if you had not given them the time go fix it. It's similar with blueprints. You have worked out how to scratch your itch, lets tell others about that great new feature you have added, so they can use that. Also, it stops someone with a similar idea going through all the pain of creating a feature only to find you already have that feature ready and up for review, or merged into the latest release. Hopefully this gives you an idea why we have applied a small layer of process to what we are doing. Having said all this, we need to unlearn old habits to move forward, there may be better ways to do things, and we are open to trying them. Please help be part of the solution. .. _why_plus1: Why do code reviews if I am not in nova-core? ============================================= Code reviews are the life blood of the Nova developer community. There is a good discussion on how you do good reviews, and how anyone can be a reviewer: http://docs.openstack.org/infra/manual/developers.html#peer-review In the draft process guide, I discuss how doing reviews can help get your code merged faster: :ref:`process`. Lets look at some of the top reasons why participating with code reviews really helps you: - Doing more reviews, and seeing what other reviewers notice, will help you better understand what is expected of code that gets merged into master - Having more non-core people do great reviews, leaves less review work for the core reviewers to do, so we are able get more code merged - Empathy is one of the keys to a happy community. If you are used to doing code reviews, you will better understand the comments you get when people review your code. As you do more code reviews, and see what others notice, you will get a better idea of what people are looking for when then apply a +2 to your code. - TODO - needs more detail What are the most useful types of code review comments? Well here are a few to the top ones: - Fundamental flaws are the biggest thing to spot. Does the patch break a whole set of existing users, or an existing feature? - Consistency of behaviour is really important. Does this bit of code do things differently to where similar things happen else where in Nova? - Is the code easy to maintain, well tested and easy to read? Code is read order of magnitude times more than it is written, so optimise for the reader of the code, not the writer. - TODO - what others should go here? Let's look at some problems people hit when starting out doing code reviews: - My +1 doesn't mean anything, why should I bother? - So your +1 really does help. Some really useful -1 votes that lead to a +1 vote helps get code into a position - When to use -1 vs 0 vs +1 - Please see the guidelines here: http://docs.openstack.org/infra/manual/developers.html#peer-review - I have already reviewed this code internally, no point in adding a +1 externally? - Please talk to your company about doing all code reviews in the public, that is a much better way to get involved. showing how the code has evolved upstream, is much better than trying to 'perfect' code internally, before uploading for public review. You can use Draft mode, and mark things as WIP if you prefer, but please do the reviews upstream. - Where do I start? What should I review? - There are various tools, but a good place to start is: https://etherpad.openstack.org/p/queens-nova-priorities-tracking - Depending on the time in the cycle, it's worth looking at NeedsCodeReview blueprints: https://blueprints.launchpad.net/nova/ - Custom Gerrit review dashboards often provide a more manageable view of the outstanding reviews, and help focus your efforts: - Nova Review Inbox: https://goo.gl/1vTS0Z - Small Bug Fixes: http://ow.ly/WAw1J - Maybe take a look at things you want to see merged, bug fixes and features, or little code fixes - Look for things that have been waiting a long time for a review: http://5885fef486164bb8596d-41634d3e64ee11f37e8658ed1b4d12ec.r44.cf3.rackcdn.com/nova-openreviews.html - If you get through the above lists, try other tools, such as: http://status.openstack.org/reviews How to do great code reviews? ============================= http://docs.openstack.org/infra/manual/developers.html#peer-review For more tips, please see: `Why do code reviews if I am not in nova-core?`_ How do I become nova-core? ========================== You don't have to be nova-core to be a valued member of the Nova community. There are many, many ways you can help. Every quality review that helps someone get their patch closer to being ready to merge helps everyone get their code merged faster. The first step to becoming nova-core is learning how to be an active member of the Nova community, including learning how to do great code reviews. For more details see: https://wiki.openstack.org/wiki/Nova/CoreTeam#Membership_Expectations If you feel like you have the time to commit to all the nova-core membership expectations, reach out to the Nova PTL who will be able to find you an existing member of nova-core to help mentor you. If all goes well, and you seem like a good candidate, your mentor will contact the rest of the nova-core team to ask them to start looking at your reviews, so they are able to vote for you, if you get nominated for join nova-core. We encourage all mentoring, where possible, to occur on #openstack-nova so everyone can learn and benefit from your discussions. The above mentoring is available to every one who wants to learn how to better code reviews, even if you don't ever want to commit to becoming nova-core. If you already have a mentor, that's great, the process is only there for folks who are still trying to find a mentor. Being admitted to the mentoring program no way guarantees you will become a member of nova-core eventually, it's here to help you improve, and help you have the sort of involvement and conversations that can lead to becoming a member of nova-core. How to do great nova-spec reviews? ================================== https://specs.openstack.org/openstack/nova-specs/specs/queens/template.html https://docs.openstack.org/nova/latest/contributor/blueprints.html#specs Spec reviews are always a step ahead of the normal code reviews. Follow the above links for some great information on specs/reviews. The following could be some important tips: 1. The specs are published as html documents. Ensure that the author has a proper render of the same via the .rst file. 2. More often than not, it's important to know that there are no overlaps across multiple specs. 3. Ensure that a proper dependency of the spec is identified. For example - a user desired feature that requires a proper base enablement should be a dependent spec. 4. Ask for clarity on changes that appear ambiguous to you. 5. Every release nova gets a huge set of spec proposals and that's a huge task for the limited set of nova cores to complete. Helping the cores with additional reviews is always a great thing. How to do great bug triage? =========================== https://wiki.openstack.org/wiki/Nova/BugTriage Sylvain Bauza and Stephen Finucane gave a nice `presentation`_ on this topic at the Queens summit in Sydney. .. _presentation: https://www.openstack.org/videos/sydney-2017/upstream-bug-triage-the-hidden-gem How to step up into a project leadership role? ============================================== There are many ways to help lead the Nova project: * Mentoring efforts, and getting started tips: https://wiki.openstack.org/wiki/Nova/Mentoring * Info on process, with a focus on how you can go from an idea to getting code merged Nova: https://wiki.openstack.org/wiki/Nova/Mitaka_Release_Schedule * Consider leading an existing `Nova subteam`_ or forming a new one. * Consider becoming a `Bug tag owner`_. * Contact the PTL about becoming a Czar `Nova People`_. .. _`Nova people`: https://wiki.openstack.org/wiki/Nova#People .. _`Nova subteam`: https://wiki.openstack.org/wiki/Nova#Nova_subteams .. _`Bug tag owner`: https://wiki.openstack.org/wiki/Nova/BugTriage#Step_2:_Triage_Tagged_Bugs nova-17.0.13/doc/source/contributor/api.rst0000664000175000017500000002143613556316250020606 0ustar zuulzuul00000000000000Extending the API ================= Background ---------- Nova has v2.1 API frameworks which supports microversions. This document covers how to add API for the v2.1 API framework. A :doc:`microversions specific document ` covers the details around what is required for the microversions part. The v2.1 API framework is under ``nova/api`` and each API is implemented in ``nova/api/openstack/compute``. Note that any change to the Nova API to be merged will first require a spec be approved first. See `here `_ for the appropriate repository. For guidance on the design of the API please refer to the `OpenStack API WG `_ Basic API Controller -------------------- API controller includes the implementation of API methods for a resource. A very basic controller of a v2.1 API:: """Basic Controller""" from nova.api.openstack.compute.schemas import xyz from nova.api.openstack import extensions from nova.api.openstack import wsgi from nova.api import validation class BasicController(wsgi.Controller): # Define support for GET on a collection def index(self, req): data = {'param': 'val'} return data # Define support for POST on a collection @extensions.expected_errors((400, 409)) @validation.schema(xyz.create) @wsgi.response(201) def create(self, req, body): write_body_here = ok return response_body # Defining support for other RESTFul methods based on resouce. See `servers.py for ref `_. All of the controller modules should live in the ``nova/api/openstack/compute`` directory. URL Mapping to API ~~~~~~~~~~~~~~~~~~ The URL mapping is based on the plain list which routes the API request to appropriate controller and method. Each API needs to add its route information in ``nova/api/openstack/compute/routes.py``. A basic skeleton of URL mapping in routers.py:: """URL Mapping Router List""" import functools import nova.api.openstack from nova.api.openstack.compute import basic_api # Create a controller object basic_controller = functools.partial( _create_controller, basic_api.BasicController, [], []) # Routing list structure: # ( # ('Route path': { # 'HTTP method: [ # 'Controller', # 'The method of controller is used to handle this route' # ], # ... # }), # ... # ) ROUTE_LIST = ( . . . ('/basic', { 'GET': [basic_controller, 'index'], 'POST': [basic_controller, 'create'] }), . . . ) Complete routing list can be found in `routes.py `_. Policy ~~~~~~ Policy (permission) is defined ``etc/nova/policy.json``. Implementation of policy is changing a bit at the moment. Will add more to this document or reference another one in the future. Also look at the authorize call in controller currently merged. Modularity ~~~~~~~~~~ The Nova REST API is separated into different controllers in the directory 'nova/api/openstack/compute/' Because microversions are supported in the Nova REST API, the API can be extended without any new controller. But for code readability, the Nova REST API code still needs modularity. Here are rules for how to separate modules: * You are adding a new resource The new resource should be in standalone module. There isn't any reason to put different resources in a single module. * Add sub-resource for existing resource To prevent an existing resource module becoming over-inflated, the sub-resource should be implemented in a separate module. * Add extended attributes for existing resource In normally, the extended attributes is part of existing resource's data model too. So this can be added into existing resource module directly and lightly. To avoid namespace complexity, we should avoid to add extended attributes in existing extended models. New extended attributes needn't any namespace prefix anymore. JSON-Schema ~~~~~~~~~~~ The v2.1 API validates a REST request body with JSON-Schema library. Valid body formats are defined with JSON-Schema in the directory 'nova/api/openstack/compute/schemas'. Each definition is used at the corresponding method with the ``validation.schema`` decorator like:: @validation.schema(schema.update_something) def update(self, req, id, body): .... Similarly to controller modularity, JSON-Schema definitions can be added in same or separate JSON-Schema module. The following are the combinations of extensible API and method name which returns additional JSON-Schema parameters: * Create a server API - get_server_create_schema() For example, keypairs extension(Keypairs class) contains the method get_server_create_schema() which returns:: { 'key_name': parameter_types.name, } then the parameter key_name is allowed on Create a server API. .. note:: Currently only create schema are implemented in modular way. Final goal is to merge them all and define the concluded process in this doc. These are essentially hooks into the servers controller which allow other controller to modify behaviour without having to modify servers.py. In the past not having this capability led to very large chunks of unrelated code being added to servers.py which was difficult to maintain. Unit Tests ---------- Unit tests for the API can be found under path ``nova/tests/unit/api/openstack/compute/``. Unit tests for the API are generally negative scenario tests, because the positive scenarios are tested with functional API samples tests. Negative tests would include such things as: * Request schema validation failures, for both the request body and query parameters * HTTPNotFound or other >=400 response code failures Functional tests and API Samples -------------------------------- All functional API changes, including new microversions - especially if there are new request or response parameters, should have new functional API samples tests. The API samples tests are made of two parts: * The API sample for the reference docs. These are found under path ``doc/api_samples/``. There is typically one directory per API controller with subdirectories per microversion for that API controller. The unversioned samples are used for the base v2.0 / v2.1 APIs. * Corresponding API sample templates found under path ``nova/tests/functional/api_sample_tests/api_samples``. These have a similar structure to the API reference docs samples, except the format of the sample can include substitution variables filled in by the tests where necessary, for example, to substitute things that change per test run, like a server UUID. The actual functional tests are found under path ``nova/tests/functional/api_sample_tests/``. Most, if not all, API samples tests extend the ``ApiSampleTestBaseV21`` class which extends ``ApiSampleTestBase``. These base classes provide the framework for making a request using an API reference doc sample and validating the response using the corresponding template file, along with any variable substitutions that need to be made. Note that it is possible to automatically generate the API reference doc samples using the templates by simply running the tests using ``tox -r -e api-samples``. This relies, of course, upon the test and templates being correct for the test to pass, which may take some iteration. In general, if you are adding a new microversion to an existing API controller, it is easiest to simply copy an existing test and modify it for the new microversion and the new samples/templates. The functional API samples tests are not the simplest thing in the world to get used to, and can be very frustrating at times when they fail in not obvious ways. If you need help debugging a functional API sample test failure, feel free to post your work-in-progress change for review and ask for help in the ``openstack-nova`` freenode IRC channel. Documentation ------------- All API changes must also include updates to the compute API reference, which can be found under path ``api-ref/source/``. Things to consider here include: * Adding new request and/or response parameters with a new microversion * Marking existing parameters as deprecated in a new microversion More information on the compute API reference format and conventions can be found here: https://wiki.openstack.org/wiki/NovaAPIRef For more detailed documentation of certain aspects of the API, consider writing something into the compute API guide found under path ``api-guide/source/``. nova-17.0.13/doc/source/contributor/development-environment.rst0000664000175000017500000001447713556316250024730 0ustar zuulzuul00000000000000.. Copyright 2010-2011 United States Government as represented by the Administrator of the National Aeronautics and Space Administration. All Rights Reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. ======================= Development Quickstart ======================= This page describes how to setup and use a working Python development environment that can be used in developing nova on Ubuntu, Fedora or Mac OS X. These instructions assume you're already familiar with git. Following these instructions will allow you to build the documentation and run the nova unit tests. If you want to be able to run nova (i.e., launch VM instances), you will also need to --- either manually or by letting DevStack do it for you --- install libvirt and at least one of the `supported hypervisors`_. Running nova is currently only supported on Linux, although you can run the unit tests on Mac OS X. .. _supported hypervisors: http://wiki.openstack.org/HypervisorSupportMatrix .. note:: For how to contribute to Nova, see HowToContribute_. Nova uses the Gerrit code review system, GerritWorkflow_. .. _GerritWorkflow: http://docs.openstack.org/infra/manual/developers.html#development-workflow .. _HowToContribute: http://docs.openstack.org/infra/manual/developers.html .. _`docs.openstack.org`: http://docs.openstack.org Setup ===== There are two ways to create a development environment: using DevStack, or explicitly installing and cloning just what you need. Using DevStack -------------- See `Devstack`_ Documentation. If you would like to use Vagrant, there is a `Vagrant`_ for DevStack. .. _`Devstack`: http://docs.openstack.org/developer/devstack/ .. _`Vagrant`: https://github.com/openstack-dev/devstack-vagrant/blob/master/README.md .. Until the vagrant markdown documents are rendered somewhere on .openstack.org, linking to github Explicit Install/Clone ---------------------- DevStack installs a complete OpenStack environment. Alternatively, you can explicitly install and clone just what you need for Nova development. Getting the code ```````````````` Grab the code from git:: git clone https://git.openstack.org/openstack/nova cd nova Linux Systems ````````````` The first step of this process is to install the system (not Python) packages that are required. Following are instructions on how to do this on Linux and on the Mac. .. note:: This section is tested for Nova on Ubuntu (14.04-64) and Fedora-based (RHEL 6.1) distributions. Feel free to add notes and change according to your experiences or operating system. Install the prerequisite packages listed in the ``bindep.txt`` file. On Debian-based distributions (e.g., Debian/Mint/Ubuntu):: sudo apt-get install python-pip sudo pip install tox tox -e bindep sudo apt-get install On Fedora-based distributions (e.g., Fedora/RHEL/CentOS/Scientific Linux):: sudo yum install python-pip sudo pip install tox tox -e bindep sudo yum install On openSUSE-based distributions (SLES 12, openSUSE Leap 42.1 or Tumbleweed):: sudo zypper in python-pip sudo pip install tox tox -e bindep sudo zypper in Mac OS X Systems ```````````````` Install virtualenv:: sudo easy_install virtualenv Check the version of OpenSSL you have installed:: openssl version The stock version of OpenSSL that ships with Mac OS X 10.6 (OpenSSL 0.9.8l) or Mac OS X 10.7 (OpenSSL 0.9.8r) or Mac OS X 10.10.3 (OpenSSL 0.9.8zc) works fine with nova. OpenSSL versions from brew like OpenSSL 1.0.1k work fine as well. Building the Documentation ========================== Install the prerequisite packages: graphviz To do a full documentation build, issue the following command while the nova directory is current. .. code-block:: bash tox -edocs That will create a Python virtual environment, install the needed Python prerequisites in that environment, and build all the documentation in that environment. Running unit tests ================== See `Running Python Unit Tests`_. .. _`Running Python Unit Tests`: http://docs.openstack.org/infra/manual/python.html#running-python-unit-tests Note that some unit and functional tests use a database. See the file ``tools/test-setup.sh`` on how the databases are set up in the OpenStack CI environment and replicate it in your test environment. Using a remote debugger ======================= Some modern IDE such as pycharm (commercial) or Eclipse (open source) support remote debugging. In order to run nova with remote debugging, start the nova process with the following parameters --remote_debug-host --remote_debug-port Before you start your nova process, start the remote debugger using the instructions for that debugger. For pycharm - http://blog.jetbrains.com/pycharm/2010/12/python-remote-debug-with-pycharm/ For Eclipse - http://pydev.org/manual_adv_remote_debugger.html More detailed instructions are located here - http://novaremotedebug.blogspot.com Using fake computes for tests ============================= The number of instances supported by fake computes is not limited by physical constraints. It allows you to perform stress tests on a deployment with few resources (typically a laptop). But you must avoid using scheduler filters limiting the number of instances per compute (like RamFilter, DiskFilter, AggregateCoreFilter), otherwise they will limit the number of instances per compute. Fake computes can also be used in multi hypervisor-type deployments in order to take advantage of fake and "real" computes during tests: * create many fake instances for stress tests * create some "real" instances for functional tests Fake computes can be used for testing Nova itself but also applications on top of it. nova-17.0.13/doc/source/contributor/placement.rst0000664000175000017500000004746113556316250022013 0ustar zuulzuul00000000000000.. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. =============================== Placement API Developer Notes =============================== Overview ======== The Nova project introduced the :doc:`placement service ` as part of the Newton release. The service provides an HTTP API to manage inventories of different classes of resources, such as disk or virtual cpus, made available by entities called resource providers. Information provided through the placement API is intended to enable more effective accounting of resources in an OpenStack deployment and better scheduling of various entities in the cloud. The document serves to explain the architecture of the system and to provide some guidance on how to maintain and extend the code. For more detail on why the system was created and how it does its job see :doc:`/user/placement`. Big Picture =========== The placement service is straightforward: It is a `WSGI`_ application that sends and receives JSON, using an RDBMS (usually MySQL) for persistence. As state is managed solely in the DB, scaling the placement service is done by increasing the number of WSGI application instances and scaling the RDBMS using traditional database scaling techniques. For sake of consistency and because there was initially intent to make the entities in the placement service available over RPC, `versioned objects`_ are used to provide the interface between the HTTP application layer and the SQLAlchemy-driven persistence layer. Even without RPC, these objects provide useful structuring and separation of the code. Though the placement service doesn't aspire to be a `microservice` it does aspire to continue to be small and minimally complex. This means a relatively small amount of middleware that is not configurable, and a limited number of exposed resources where any given resource is represented by one (and only one) URL that expresses a noun that is a member of the system. Adding additional resources should be considered a significant change requiring robust review from many stakeholders. The set of HTTP resources represents a concise and constrained grammar for expressing the management of resource providers, inventories, resource classes and allocations. If a solution is initially designed to need more resources or a more complex grammar that may be a sign that we need to give our goals greater scrutiny. Is there a way to do what we want with what we have already? Can some other service help? Is a new collaborating service required? Minimal Framework ================= The API is set up to use a minimal framework that tries to keep the structure of the application as discoverable as possible and keeps the HTTP interaction near the surface. The goal of this is to make things easy to trace when debugging or adding functionality. Functionality which is required for every request is handled in raw WSGI middleware that is composed in the `nova.api.openstack.placement.deploy` module. Dispatch or routing is handled declaratively via the ``ROUTE_DECLARATIONS`` map defined in the `nova.api.openstack.placement.handler` module. Mapping is by URL plus request method. The destination is a complete WSGI application, using a subclass of the `wsgify`_ method from `WebOb`_ to provide a `Request`_ object that provides convenience methods for accessing request headers, bodies, and query parameters and for generating responses. In the placement API these mini-applications are called `handlers`. The `wsgify` subclass is provided in `nova.api.openstack.placement.wsgi_wrapper` as `PlacementWsgify`. It is used to make sure that JSON formatted error responses are structured according to the API-WG `errors`_ guideline. This division between middleware, dispatch and handlers is supposed to provide clues on where a particular behavior or functionality should be implemented. Like most such systems, this doesn't always work but is a useful tool. Gotchas ======= This section tries to shed some light on some of the differences between the placement API and some of the nova APIs or on situations which may be surprising or unexpected. * The placement API is somewhat more strict about `Content-Type` and `Accept` headers in an effort to follow the HTTP RFCs. If a user-agent sends some JSON in a `PUT` or `POST` request without a `Content-Type` of `application/json` the request will result in an error. If a `GET` request is made without an `Accept` header, the response will default to being `application/json`. If a request is made with an explicit `Accept` header that does not include `application/json` then there will be an error and the error will attempt to be in the requested format (for example, `text/plain`). * If a URL exists, but a request is made using a method that that URL does not support, the API will respond with a `405` error. Sometimes in the nova APIs this can be a `404` (which is wrong, but understandable given the constraints of the code). * Because each handler is individually wrapped by the `PlacementWsgify` decorator any exception that is a subclass of `webob.exc.WSGIHTTPException` that is raised from within the handler, such as `webob.exc.HTTPBadRequest`, will be caught by WebOb and turned into a valid `Response`_ containing headers and body set by WebOb based on the information given when the exception was raised. It will not be seen as an exception by any of the middleware in the placement stack. In general this is a good thing, but it can lead to some confusion if, for example, you are trying to add some middleware that operates on exceptions. Other exceptions that are not from `WebOb`_ will raise outside the handlers where they will either be caught in the `__call__` method of the `PlacementHandler` app that is responsible for dispatch, or by the `FaultWrap` middleware. Microversions ============= The placement API makes use of `microversions`_ to allow the release of new features on an opt in basis. See :doc:`/user/placement` for an up to date history of the available microversions. The rules around when a microversion is needed are the same as for the :doc:`compute API `. When adding a new microversion there are a few bits of required housekeeping that must be done in the code: * Update the ``VERSIONS`` list in ``nova/api/openstack/placement/microversion.py`` to indicate the new microversion and give a very brief summary of the added feature. * Update ``nova/api/openstack/placement/rest_api_version_history.rst`` to add a more detailed section describing the new microversion. * Add a `release note`_ with a ``features`` section announcing the new or changed feature and the microversion. * If the ``version_handler`` decorator (see below) has been used, increment ``TOTAL_VERSIONED_METHODS`` in ``nova/tests/unit/api/openstack/placement/test_microversion.py``. This provides a confirmatory check just to make sure you're paying attention and as a helpful reminder to do the other things in this list. * Include functional gabbi tests as appropriate (see `Using Gabbi`_). At the least, update the ``latest microversion`` test in ``nova/tests/functional/api/openstack/placement/gabbits/microversion.yaml``. * Update the `API Reference`_ documentation as appropriate. The source is located under `placement-api-ref/source/`. In the placement API, microversions only use the modern form of the version header:: OpenStack-API-Version: placement 1.2 If a valid microversion is present in a request it will be placed, as a ``Version`` object, into the WSGI environment with the ``placement.microversion`` key. Often, accessing this in handler code directly (to control branching) is the most explicit and granular way to have different behavior per microversion. A ``Version`` instance can be treated as a tuple of two ints and compared as such or there is a ``matches`` method. In other cases there are some helper methods in the microversion package: * The ``raise_http_status_code_if_not_version`` utility will raise a http status code if the requested microversion is not within a described version window. * The ``version_handler`` decorator makes it possible to have multiple different handler methods of the same (fully-qualified by package) name, each available for a different microversion window. If a request wants a microversion that's not available, a 404 response is returned. There is a unit test in place which will fail if there are version intersections. Adding a New Handler ==================== Adding a new URL or a new method (e.g, ``PATCH``) to an existing URL requires adding a new handler function. In either case a new microversion and release note is required. When adding an entirely new route a request for a lower microversion should return a ``404``. When adding a new method to an existing URL a request for a lower microversion should return a ``405``. In either case, the ``ROUTE_DECLARATIONS`` dictionary in the `nova.api.openstack.placement.handler` module should be updated to point to a function within a module that contains handlers for the type of entity identified by the URL. Collection and individual entity handlers of the same type should be in the same module. As mentioned above, the handler function should be decorated with ``@wsgi_wrapper.PlacementWsgify``, take a single argument ``req`` which is a WebOb `Request`_ object, and return a WebOb `Response`_. For ``PUT`` and ``POST`` methods, request bodies are expected to be JSON based on a content-type of ``application/json``. This may be enforced by using a decorator: ``@util.require_content('application/json')``. If the body is not `JSON`, a ``415`` response status is returned. Response bodies are usually `JSON`. A handler can check the `Accept` header provided in a request using another decorator: ``@util.check_accept('application/json')``. If the header does not allow `JSON`, a ``406`` response status is returned. If a hander returns a response body, a ``Last-Modified`` header should be included with the response. If the entity or entities in the response body are directly associated with an object (or objects, in the case of a collection response) that has an ``updated_at`` (or ``created_at``) field, that field's value can be used as the value of the header (WebOb will take care of turning the datetime object into a string timestamp). A ``util.pick_last_modified`` is available to help choose the most recent last-modified when traversing a collection of entities. If there is no directly associated object (for example, the output is the composite of several objects) then the ``Last-Modified`` time should be ``timeutils.utcnow(with_timezone=True)`` (the timezone must be set in order to be a valid HTTP timestamp). For example, the response__ to ``GET /allocation_candidates`` should have a last-modified header of now because it is composed from queries against many different database entities, presents a mixture of result types (allocation requests and provider summaries), and has a view of the system that is only meaningful *now*. __ https://developer.openstack.org/api-ref/placement/#list-allocation-candidates If a ``Last-Modified`` header is set, then a ``Cache-Control`` header with a value of ``no-cache`` must be set as well. This is to avoid user-agents inadvertently caching the responses. `JSON` sent in a request should be validated against a JSON Schema. A ``util.extract_json`` method is available. This takes a request body and a schema. If multiple schema are used for different microversions of the same request, the caller is responsible for selecting the right one before calling ``extract_json``. When a handler needs to read or write the data store it should use methods on the objects found in the `nova.objects.resource_provider` package. Doing so requires a context which is provided to the handler method via the WSGI environment. It can be retrieved as follows:: context = req.environ['placement.context'] .. note:: If your change requires new methods or new objects in the `resource_provider` package, after you've made sure that you really do need those new methods or objects (you may not!) make those changes in a patch that is separate from and prior to the HTTP API change. Testing of handler code is described in the next section. Testing ======= Most of the handler code in the placement API is tested using `gabbi`_. Some utility code is tested with unit tests found in `nova/tests/unit/api/openstack/placement/`. The back-end objects are tested with a combination of unit and functional tests found in ``nova/tests/unit/objects/test_resource_provider.py`` and `nova/tests/functional/db`. Adding unit and non-gabbi functional tests is done in the same way as other aspects of nova. Using Gabbi ----------- Gabbi was developed in the `telemetry`_ project to provide a declarative way to test HTTP APIs that preserves visibility of both the request and response of the HTTP interaction. Tests are written in YAML files where each file is an ordered suite of tests. Fixtures (such as a database) are set up and torn down at the beginning and end of each file, not each test. JSON response bodies can be evaluated with `JSONPath`_. The placement WSGI application is run via `wsgi-intercept`_, meaning that real HTTP requests are being made over a file handle that appears to Python to be a socket. In the placement API the YAML files (aka "gabbits") can be found in ``nova/tests/functional/api/openstack/placement/gabbits``. Fixture definitions are in ``fixtures.py`` in the parent directory. Tests are currently grouped by handlers (e.g., ``resource-provider.yaml`` and ``inventory.yaml``). This is not a requirement and as we increase the number of tests it makes sense to have more YAML files with fewer tests, divided up by the arc of API interaction that they test. The gabbi tests are integrated into the functional tox target, loaded via ``nova/tests/functional/api/openstack/placement/test_placement_api.py``. If you want to run just the gabbi tests one way to do so is:: tox -efunctional test_placement_api If you want to run just one yaml file (in this example ``inventory.yaml``):: tox -efunctional placement_api.inventory It is also possible to run just one test from within one file. When you do this every test prior to the one you asked for will also be run. This is because the YAML represents a sequence of dependent requests. Select the test by using the name in the yaml file, replacing space with ``_``:: tox -efunctional placement_api.inventory_post_new_ipv4_address_inventory .. note:: `.testr.conf` in the nova repository is configured such that each gabbi YAML is considered a group. Thus, all tests in the file will be run in the same process when running testr concurrently (the default). Writing More Gabbi Tests ------------------------ The docs for `gabbi`_ try to be complete and explain the `syntax`_ in some depth. Where something is missing or confusing, please log a `bug`_. While it is possible to test all aspects of a response (all the response headers, the status code, every attribute in a JSON structure) in one single test, doing so will likely make the test harder to read and will certainly make debugging more challenging. If there are multiple things that need to be asserted, making multiple requests is reasonable. Since database set up is only happening once per file (instead of once per test) and since there's no TCP overhead, the tests run quickly. While `fixtures`_ can be used to establish entities that are required for tests, creating those entities via the HTTP API results in tests which are more descriptive. For example the ``inventory.yaml`` file creates the resource provider to which it will then add inventory. This makes it easy to explore a sequence of interactions and a variety of responses with the tests: * create a resource provider * confirm it has empty inventory * add inventory to the resource provider (in a few different ways) * confirm the resource provider now has inventory * modify the inventory * delete the inventory * confirm the resource provider now has empty inventory Nothing special is required to add a new set of tests: create a YAML file with a unique name in the same directory as the others. The other files can provide examples. Gabbi can provide a useful way of doing test driven development of a new handler: create a YAML file that describes the desired URLs and behavior and write the code to make it pass. It's also possible to use gabbi against a running placement service, for example in devstack. See `gabbi-run`_ to get started. Futures ======= Since before it was created there has been a long term goal for the placement service to be extracted to its own repository and operate as its own independent service. There are many reasons for this, but two main ones are: * Multiple projects, not just nova, will eventually need to manage resource providers using the placement API. * A separate service helps to maintain and preserve a strong contract between the placement service and the consumers of the service. To lessen the pain of the eventual extraction of placement the service has been developed in a way to limit dependency on the rest of the nova codebase and be self-contained: * Most code is in `nova/api/openstack/placement` except for oslo versioned object code in ``nova/objects/resource_provider.py``. * Database query code is kept within the objects. * The methods on the objects are not remotable, as the only intended caller is the placement API code. There are some exceptions to the self-contained rule (which will have to be addressed if the extraction ever happens): * Exceptions unique to the placement API are still within the `nova.exceptions` package. * Code related to a resource class cache is within the `nova.db` package. * Database models, migrations and tables use the nova api database. * The nova `FaultWrapper` middleware is being used. * `nova.i18n` package provides the ``_`` and related functions. * ``nova.conf`` is used for configuration. * Unit and functional tests depend on fixtures and other functionality in base classes provided by nova. When creating new code for the placement service, please be aware of the plan for an eventual extraction and avoid creating unnecessary interdependencies. .. _WSGI: https://www.python.org/dev/peps/pep-3333/ .. _versioned objects: http://docs.openstack.org/developer/oslo.versionedobjects/ .. _wsgify: http://docs.webob.org/en/latest/api/dec.html .. _WebOb: http://docs.webob.org/en/latest/ .. _Request: http://docs.webob.org/en/latest/reference.html#request .. _Response: http://docs.webob.org/en/latest/#response .. _microversions: http://specs.openstack.org/openstack/api-wg/guidelines/microversion_specification.html .. _release note: https://docs.openstack.org/reno/latest/user/usage.html .. _gabbi: https://gabbi.readthedocs.io/ .. _telemetry: http://specs.openstack.org/openstack/telemetry-specs/specs/kilo/declarative-http-tests.html .. _wsgi-intercept: http://wsgi-intercept.readthedocs.io/ .. _syntax: https://gabbi.readthedocs.io/en/latest/format.html .. _bug: https://github.com/cdent/gabbi/issues .. _fixtures: http://gabbi.readthedocs.io/en/latest/fixtures.html .. _JSONPath: http://goessner.net/articles/JsonPath/ .. _gabbi-run: http://gabbi.readthedocs.io/en/latest/runner.html .. _errors: http://specs.openstack.org/openstack/api-wg/guidelines/errors.html .. _API Reference: https://developer.openstack.org/api-ref/placement/ nova-17.0.13/doc/source/contributor/releasenotes.rst0000664000175000017500000000536513556316250022531 0ustar zuulzuul00000000000000.. _releasenotes: Release Notes ============= What is reno ? -------------- Nova uses `reno `_ for providing release notes in-tree. That means that a patch can include a *reno file* or a series can have a follow-on change containing that file explaining what the impact is. A *reno file* is a YAML file written in the releasenotes/notes tree which is generated using the reno tool this way: .. code-block:: bash $ tox -e venv -- reno new where usually ```` can be ``bp-`` for a blueprint or ``bug-XXXXXX`` for a bugfix. Refer to the `reno documentation `_ for the full list of sections. When a release note is needed ----------------------------- A release note is required anytime a reno section is needed. Below are some examples for each section. Any sections that would be blank should be left out of the note file entirely. If no section is needed, then you know you don't need to provide a release note :-) * ``upgrade`` * The patch has an `UpgradeImpact `_ tag * A DB change needs some deployer modification (like a migration) * A configuration option change (deprecation, removal or modified default) * some specific changes that have a `DocImpact `_ tag but require further action from an deployer perspective * any patch that requires an action from the deployer in general * ``security`` * If the patch fixes a known vulnerability * ``features`` * If the patch has an `APIImpact `_ tag * For nova-manage and python-novaclient changes, if it adds or changes a new command, including adding new options to existing commands * not all blueprints in general, just the ones impacting a `contractual API `_ * a new virt driver is provided or an existing driver impacts the `HypervisorSupportMatrix `_ * ``critical`` * Bugfixes categorized as Critical in Launchpad *impacting users* * ``fixes`` * No clear definition of such bugfixes. Hairy long-standing bugs with high importance that have been fixed are good candidates though. Three sections are left intentionally unexplained (``prelude``, ``issues`` and ``other``). Those are targeted to be filled in close to the release time for providing details about the soon-ish release. Don't use them unless you know exactly what you are doing. nova-17.0.13/doc/source/contributor/testing.rst0000664000175000017500000001002713556316250021504 0ustar zuulzuul00000000000000.. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. ============== Test Strategy ============== A key part of the "four opens" is ensuring the OpenStack delivers well-tested and usable software. For more details see: http://docs.openstack.org/project-team-guide/introduction.html#the-four-opens Experience has shown that untested features are frequently broken, in part due to the velocity of upstream changes. As we aim to ensure we keep all features working across upgrades, we must aim to test all features. Reporting Test Coverage ======================= For details on plans to report the current test coverage, refer to :doc:`/user/feature-classification`. Running tests and reporting results =================================== Voting in Gerrit ---------------- On every review in gerrit, check tests are run on very patch set, and are able to report a +1 or -1 vote. For more details, please see: http://docs.openstack.org/infra/manual/developers.html#automated-testing Before merging any code, there is an integrate gate test queue, to ensure master is always passing all tests. For more details, please see: http://docs.openstack.org/infra/zuul/gating.html Infra vs Third-Party -------------------- Tests that use fully open source components are generally run by the OpenStack Infra teams. Test setups that use non-open technology must be run outside of that infrastructure, but should still report their results upstream. For more details, please see: http://docs.openstack.org/infra/system-config/third_party.html Ad-hoc testing -------------- It is particularly common for people to run ad-hoc tests on each released milestone, such as RC1, to stop regressions. While these efforts can help stabilize the release, as a community we have a much stronger preference for continuous integration testing. Partly this is because we encourage users to deploy master, and we generally have to assume that any upstream commit may already been deployed in production. Types of tests ============== Unit tests ---------- Unit tests help document and enforce the contract for each component. Without good unit test coverage it is hard to continue to quickly evolve the codebase. The correct level of unit test coverage is very subjective, and as such we are not aiming for a particular percentage of coverage, rather we are aiming for good coverage. Generally, every code change should have a related unit test: https://github.com/openstack/nova/blob/master/HACKING.rst#creating-unit-tests Integration tests ----------------- Today, our integration tests involve running the Tempest test suite on a variety of Nova deployment scenarios. In addition, we have third parties running the tests on their preferred Nova deployment scenario. Functional tests ---------------- Nova has a set of in-tree functional tests that focus on things that are out of scope for tempest testing and unit testing. Tempest tests run against a full live OpenStack deployment, generally deployed using devstack. At the other extreme, unit tests typically use mock to test a unit of code in isolation. Functional tests don't run an entire stack, they are isolated to nova code, and have no reliance on external services. They do have a WSGI app, nova services and a database, with minimal stubbing of nova internals. Interoperability tests ----------------------- The DefCore committee maintains a list that contains a subset of Tempest tests. These are used to verify if a particular Nova deployment's API responds as expected. For more details, see: https://github.com/openstack/defcore nova-17.0.13/doc/source/contributor/testing/0000775000175000017500000000000013556316574020763 5ustar zuulzuul00000000000000nova-17.0.13/doc/source/contributor/testing/libvirt-numa.rst0000664000175000017500000005637413556316250024134 0ustar zuulzuul00000000000000================================================ Testing NUMA related hardware setup with libvirt ================================================ This page describes how to test the libvirt driver's handling of the NUMA placement, large page allocation and CPU pinning features. It relies on setting up a virtual machine as the test environment and requires support for nested virtualization since plain QEMU is not sufficiently functional. The virtual machine will itself be given NUMA topology, so it can then act as a virtual "host" for testing purposes. ------------------------------------------ Provisioning a virtual machine for testing ------------------------------------------ The entire test process will take place inside a large virtual machine running Fedora 24. The instructions should work for any other Linux distribution which includes libvirt >= 1.2.9 and QEMU >= 2.1.2 The tests will require support for nested KVM, which is not enabled by default on hypervisor hosts. It must be explicitly turned on in the host when loading the kvm-intel/kvm-amd kernel modules. On Intel hosts verify it with .. code-block:: bash # cat /sys/module/kvm_intel/parameters/nested N # rmmod kvm-intel # echo "options kvm-intel nested=y" > /etc/modprobe.d/dist.conf # modprobe kvm-intel # cat /sys/module/kvm_intel/parameters/nested Y While on AMD hosts verify it with .. code-block:: bash # cat /sys/module/kvm_amd/parameters/nested 0 # rmmod kvm-amd # echo "options kvm-amd nested=1" > /etc/modprobe.d/dist.conf # modprobe kvm-amd # cat /sys/module/kvm_amd/parameters/nested 1 The virt-install command below shows how to provision a basic Fedora 24 x86_64 guest with 8 virtual CPUs, 8 GB of RAM and 20 GB of disk space: .. code-block:: bash # cd /var/lib/libvirt/images # wget https://download.fedoraproject.org/pub/fedora/linux/releases/24/Server/x86_64/iso/Fedora-Server-netinst-x86_64-24-1.2.iso # virt-install \ --name f24x86_64 \ --ram 8000 \ --vcpus 8 \ --file /var/lib/libvirt/images/f24x86_64.img \ --file-size 20 --cdrom /var/lib/libvirt/images/Fedora-Server-netinst-x86_64-24-1.2.iso \ --os-variant fedora23 When the virt-viewer application displays the installer, follow the defaults for the installation with a couple of exceptions: * The automatic disk partition setup can be optionally tweaked to reduce the swap space allocated. No more than 500MB is required, free'ing up an extra 1.5 GB for the root disk * Select "Minimal install" when asked for the installation type since a desktop environment is not required * When creating a user account be sure to select the option "Make this user administrator" so it gets 'sudo' rights Once the installation process has completed, the virtual machine will reboot into the final operating system. It is now ready to deploy an OpenStack development environment. --------------------------------- Setting up a devstack environment --------------------------------- For later ease of use, copy your SSH public key into the virtual machine: .. code-block:: bash # ssh-copy-id Now login to the virtual machine: .. code-block:: bash # ssh The Fedora minimal install does not contain git. Install git and clone the devstack repo: .. code-block:: bash $ sudo dnf install git $ git clone git://github.com/openstack-dev/devstack.git $ cd devstack At this point a fairly standard devstack setup can be done with one exception: we should enable the ``NUMATopologyFilter`` filter, which we will use later. For example: .. code-block:: bash $ cat >>local.conf < select numa_topology from compute_nodes; +----------------------------------------------------------------------------+ | numa_topology | +----------------------------------------------------------------------------+ | { | "nova_object.name": "NUMATopology", | "nova_object.data": { | "cells": [{ | "nova_object.name": "NUMACell", | "nova_object.data": { | "cpu_usage": 0, | "memory_usage": 0, | "cpuset": [0, 1, 2, 3, 4, 5, 6, 7], | "pinned_cpus": [], | "siblings": [], | "memory": 7793, | "mempages": [ | { | "nova_object.name": "NUMAPagesTopology", | "nova_object.data": { | "used": 0, | "total": 987430, | "reserved":0, | "size_kb": 4 | }, | }, | { | "nova_object.name": "NUMAPagesTopology", | "nova_object.data": { | "used": 0, | "total": 0, | "reserved":0, | "size_kb": 2048 | }, | }, | { | "nova_object.name": "NUMAPagesTopology", | "nova_object.data": { | "used": 0, | "total": 0, | "reserved": 0, | "size_kb": 1048576 | }, | } | ], | "id": 0 | }, | }, | ] | }, | } +----------------------------------------------------------------------------+ Meanwhile, the guest instance should not have any NUMA configuration recorded: .. code-block:: bash MariaDB [nova]> select numa_topology from instance_extra; +---------------+ | numa_topology | +---------------+ | NULL | +---------------+ ----------------------------------------------------- Reconfiguring the test instance to have NUMA topology ----------------------------------------------------- Now that devstack is proved operational, it is time to configure some NUMA topology for the test VM, so that it can be used to verify the OpenStack NUMA support. To do the changes, the VM instance that is running devstack must be shut down: .. code-block:: bash $ sudo shutdown -h now And now back on the physical host edit the guest config as root: .. code-block:: bash $ sudo virsh edit f21x86_64 The first thing is to change the `` block to do passthrough of the host CPU. In particular this exposes the "SVM" or "VMX" feature bits to the guest so that "Nested KVM" can work. At the same time we want to define the NUMA topology of the guest. To make things interesting we're going to give the guest an asymmetric topology with 4 CPUS and 4 GBs of RAM in the first NUMA node and 2 CPUs and 2 GB of RAM in the second and third NUMA nodes. So modify the guest XML to include the following CPU XML: .. code-block:: xml Now start the guest again: .. code-block:: bash # virsh start f24x86_64 ...and login back in: .. code-block:: bash # ssh Before starting OpenStack services again, it is necessary to explicitly set the libvirt virtualization type to KVM, so that guests can take advantage of nested KVM: .. code-block:: bash $ sudo sed -i 's/virt_type = qemu/virt_type = kvm/g' /etc/nova/nova.conf With that done, OpenStack can be started again: .. code-block:: bash $ cd devstack $ ./stack.sh The first thing is to check that the compute node picked up the new NUMA topology setup for the guest: .. code-block:: bash $ mysql -u root -p123456 nova MariaDB [nova]> select numa_topology from compute_nodes; +----------------------------------------------------------------------------+ | numa_topology | +----------------------------------------------------------------------------+ | { | "nova_object.name": "NUMATopology", | "nova_object.data": { | "cells": [ | { | "nova_object.name": "NUMACell", | "nova_object.data": { | "cpu_usage": 0, | "memory_usage": 0, | "cpuset": [0, 1, 2, 3], | "pinned_cpus": [], | "siblings": [], | "memory": 3856, | "mempages": [ | { | "nova_object.name": "NUMAPagesTopology", | "nova_object.data": { | "used": 0, | "total": 987231, | "reserved": 0, | "size_kb": 4 | }, | }, | { | "nova_object.name": "NUMAPagesTopology", | "nova_object.data": { | "used": 0, | "total": 0, | "reserved": 0, | "size_kb": 2048 | }, | }, | { | "nova_object.name": "NUMAPagesTopology", | "nova_object.data": { | "used": 0, | "total": 0, | "reserved": 0, | "size_kb": 1048576 | }, | } | ], | "id": 0 | }, | }, | { | "nova_object.name": "NUMACell", | "nova_object.data": { | "cpu_usage": 0, | "memory_usage": 0, | "cpuset": [4, 5], | "pinned_cpus": [], | "siblings": [], | "memory": 1969, | "mempages": [ | { | "nova_object.name": "NUMAPagesTopology", | "nova_object.data": { | "used": 0, | "total": 504202, | "reserved": 0, | "size_kb": 4 | }, | }, | { | "nova_object.name": "NUMAPagesTopology", | "nova_object.data": { | "used": 0, | "total": 0, | "reserved": 0, | "size_kb": 2048 | }, | }, | { | "nova_object.name": "NUMAPagesTopology", | "nova_object.data": { | "used": 0, | "total": 0, | "reserved": 0, | "size_kb": 1048576 | }, | } | ], | "id": 1 | }, | }, | { | "nova_object.name": "NUMACell", | "nova_object.data": { | "cpu_usage": 0, | "memory_usage": 0, | "cpuset": [6, 7], | "pinned_cpus": [], | "siblings": [], | "memory": 1967, | "mempages": [ | { | "nova_object.name": "NUMAPagesTopology", | "nova_object.data": { | "used": 0, | "total": 503565, | "reserved": 0, | "size_kb": 4 | }, | }, | { | "nova_object.name": "NUMAPagesTopology", | "nova_object.data": { | "used": 0, | "total": 0, | "reserved": 0, | "size_kb": 2048 | }, | }, | { | "nova_object.name": "NUMAPagesTopology", | "nova_object.data": { | "used": 0, | "total": 0, | "reserved": 0, | "size_kb": 1048576 | }, | } | ], | "id": 2 | }, | } | ] | }, | } +----------------------------------------------------------------------------+ This indeed shows that there are now 3 NUMA nodes for the "host" machine, the first with 4 GB of RAM and 4 CPUs, and others with 2 GB of RAM and 2 CPUs each. ----------------------------------------------------- Testing instance boot with no NUMA topology requested ----------------------------------------------------- For the sake of backwards compatibility, if the NUMA filter is enabled, but the flavor/image does not have any NUMA settings requested, it should be assumed that the guest will have a single NUMA node. The guest should be locked to a single host NUMA node too. Boot a guest with the `m1.tiny` flavor to test this condition: .. code-block:: bash $ . openrc admin admin $ openstack server create --image cirros-0.3.4-x86_64-uec --flavor m1.tiny \ cirros1 Now look at the libvirt guest XML: .. code-block:: bash $ sudo virsh list Id Name State ---------------------------------------------------- 1 instance-00000001 running $ sudo virsh dumpxml instance-00000001 ... 1 ... This example shows that there is no explicit NUMA topology listed in the guest XML. ------------------------------------------------ Testing instance boot with 1 NUMA cell requested ------------------------------------------------ Moving forward a little, explicitly tell nova that the NUMA topology for the guest should have a single NUMA node. This should operate in an identical manner to the default behavior where no NUMA policy is set. To define the topology we will create a new flavor: .. code-block:: bash $ openstack flavor create --ram 1024 --disk 1 --vcpus 4 m1.numa $ openstack flavor set --property hw:numa_nodes=1 m1.numa $ openstack flavor show m1.numa Now boot the guest using this new flavor: .. code-block:: bash $ openstack server create --image cirros-0.3.4-x86_64-uec --flavor m1.numa \ cirros2 Looking at the resulting guest XML from libvirt: .. code-block:: bash $ sudo virsh list Id Name State ---------------------------------------------------- 1 instance-00000001 running 2 instance-00000002 running $ sudo virsh dumpxml instance-00000002 ... 4 ... ... The XML shows: * Each guest CPU has been pinned to the physical CPUs associated with a particular NUMA node * The emulator threads have been pinned to the union of all physical CPUs in the host NUMA node that the guest is placed on * The guest has been given a virtual NUMA topology with a single node holding all RAM and CPUs * The guest NUMA node has been strictly pinned to a host NUMA node. As a further sanity test, check what nova recorded for the instance in the database. This should match the ```` information: .. code-block:: bash $ mysql -u root -p123456 nova MariaDB [nova]> select numa_topology from instance_extra; +----------------------------------------------------------------------------+ | numa_topology | +----------------------------------------------------------------------------+ | { | "nova_object.name": "InstanceNUMATopology", | "nova_object.data": { | "cells": [ | { | "nova_object.name": "InstanceNUMACell", | "nova_object.data": { | "pagesize": null, | "cpu_topology": null, | "cpuset": [0, 1, 2, 3], | "cpu_policy": null, | "memory": 1024, | "cpu_pinning_raw": null, | "id": 0, | "cpu_thread_policy": null | }, | } | ] | }, | } +----------------------------------------------------------------------------+ Delete this instance: .. code-block:: bash $ openstack server delete cirros2 ------------------------------------------------- Testing instance boot with 2 NUMA cells requested ------------------------------------------------- Now getting more advanced we tell nova that the guest will have two NUMA nodes. To define the topology we will change the previously defined flavor: .. code-block:: bash $ openstack flavor set --property hw:numa_nodes=2 m1.numa $ openstack flavor show m1.numa Now boot the guest using this changed flavor: .. code-block:: bash $ openstack server create --image cirros-0.3.4-x86_64-uec --flavor m1.numa \ cirros2 Looking at the resulting guest XML from libvirt: .. code-block:: bash $ sudo virsh list Id Name State ---------------------------------------------------- 1 instance-00000001 running 3 instance-00000003 running $ sudo virsh dumpxml instance-00000003 ... 4 ... ... The XML shows: * Each guest CPU has been pinned to the physical CPUs associated with particular NUMA nodes * The emulator threads have been pinned to the union of all physical CPUs in the host NUMA nodes that the guest is placed on * The guest has been given a virtual NUMA topology with two nodes, each holding half the RAM and CPUs * The guest NUMA nodes have been strictly pinned to different host NUMA node As a further sanity test, check what nova recorded for the instance in the database. This should match the ```` information: .. code-block:: bash MariaDB [nova]> select numa_topology from instance_extra; +----------------------------------------------------------------------------+ | numa_topology | +----------------------------------------------------------------------------+ | { | "nova_object.name": "InstanceNUMATopology", | "nova_object.data": { | "cells": [ | { | "nova_object.name": "InstanceNUMACell", | "nova_object.data": { | "pagesize": null, | "cpu_topology": null, | "cpuset": [0, 1], | "cpu_policy": null, | "memory": 512, | "cpu_pinning_raw": null, | "id": 0, | "cpu_thread_policy": null | }, | }, | { | "nova_object.name": "InstanceNUMACell", | "nova_object.data": { | "pagesize": null, | "cpu_topology": null, | "cpuset": [2, 3], | "cpu_policy": null, | "memory": 512, | "cpu_pinning_raw": null, | "id": 1, | "cpu_thread_policy": null | }, | } | ] | }, | } +----------------------------------------------------------------------------+ nova-17.0.13/doc/source/contributor/testing/zero-downtime-upgrade.rst0000664000175000017500000001367013556316250025743 0ustar zuulzuul00000000000000===================================== Testing Zero Downtime Upgrade Process ===================================== Zero Downtime upgrade eliminates any disruption to nova API service during upgrade. Nova API services are upgraded at the end. The basic idea of the zero downtime upgrade process is to have the connections drain from the old API before being upgraded. In this process, new connections go to the new API nodes while old connections slowly drain from the old nodes. This ensures that the user sees the max_supported API version as a monotonically increasing number. There might be some performance degradation during the process due to slow HTTP responses and delayed request handling, but there is no API downtime. This page describes how to test the zero downtime upgrade process. ----------- Environment ----------- * Multinode devstack environment with 2 nodes: * controller - All services (N release) * compute-api - Only n-cpu and n-api services (N release) * Highly available load balancer (HAProxy) on top of the n-api services. This is required for zero downtime upgrade as it allows one n-api service to run while we upgrade the other. See instructions to setup HAProxy below. ----------------------------- Instructions to setup HAProxy ----------------------------- Install HAProxy and Keepalived on both nodes. .. code-block:: bash # apt-get install haproxy keepalived Let the kernel know that we intend to bind additional IP addresses that won't be defined in the interfaces file. To do this, edit ``/etc/sysctl.conf`` and add the following line: .. code-block:: INI net.ipv4.ip_nonlocal_bind=1 Make this take effect without rebooting. .. code-block:: bash # sysctl -p Configure HAProxy to add backend servers and assign virtual IP to the frontend. On both nodes add the below HAProxy config: .. code-block:: bash # cd /etc/haproxy # cat >> haproxy.cfg <> default_backend nova-api backend nova-api balance roundrobin option tcplog server controller 192.168.0.88:8774 check server apicomp 192.168.0.89:8774 check EOF .. note:: Just change the IP for log in the global section on each node. On both nodes add ``keepalived.conf``: .. code-block:: bash # cd /etc/keepalived # cat >> keepalived.conf <> 0" | sudo socat /var/run/haproxy.sock stdio * OR disable service using: .. code-block:: bash # echo "disable server nova-api/<>" | sudo socat /var/run/haproxy.sock stdio * This allows the current node to complete all the pending requests. When this is being upgraded, other api node serves the requests. This way we can achieve zero downtime. * Restart n-api service and enable n-api using the command: .. code-block:: bash # echo "enable server nova-api/<>" | sudo socat /var/run/haproxy.sock stdio * Drain connections from other old api node in the same way and upgrade. * No tempest tests should fail since there is no API downtime. After maintenance window ''''''''''''''''''''''''' * Follow the steps from general rolling upgrade process to clear any cached service version data and complete all online data migrations. nova-17.0.13/doc/source/contributor/testing/serial-console.rst0000664000175000017500000000527013556316250024427 0ustar zuulzuul00000000000000 ====================== Testing Serial Console ====================== The main aim of this feature is exposing an interactive web-based serial consoles through a web-socket proxy. This page describes how to test it from a devstack environment. --------------------------------- Setting up a devstack environment --------------------------------- For instructions on how to setup devstack with serial console support enabled see `this guide `_. --------------- Testing the API --------------- Starting a new instance. .. code-block:: bash # cd devstack && . openrc # nova boot --flavor 1 --image cirros-0.3.2-x86_64-uec cirros1 Nova provides a command `nova get-serial-console` which will returns a URL with a valid token to connect to the serial console of VMs. .. code-block:: bash # nova get-serial-console cirros1 +--------+-----------------------------------------------------------------+ | Type | Url | +--------+-----------------------------------------------------------------+ | serial | ws://127.0.0.1:6083/?token=5f7854b7-bf3a-41eb-857a-43fc33f0b1ec | +--------+-----------------------------------------------------------------+ Currently nova does not provide any client able to connect from an interactive console through a web-socket. A simple client for *test purpose* can be written with few lines of Python. .. code-block:: python # sudo easy_install ws4py || sudo pip install ws4py # cat >> client.py < cirros1 login nova-17.0.13/doc/source/contributor/process.rst0000664000175000017500000011306313556316250021511 0ustar zuulzuul00000000000000.. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. .. _process: ================= Nova team process ================= Nova is always evolving its processes, but it's important to explain why we have them: so we can all work to ensure that the interactions we need to happen do happen. The process exists to make productive communication between all members of our community easier. OpenStack Wide Patterns ======================= Nova follows most of the generally adopted norms for OpenStack projects. You can get more details here: * https://docs.openstack.org/infra/manual/developers.html * https://docs.openstack.org/project-team-guide/ If you are new to Nova, please read this first: :ref:`getting_involved`. Dates overview ============== For Queens, please see: https://wiki.openstack.org/wiki/Nova/Queens_Release_Schedule .. note: Throughout this document any link which references the name of a release cycle in the link can usually be changed to the name of the current cycle to get up to date information. Feature Freeze ~~~~~~~~~~~~~~ Feature freeze primarily provides a window of time to help the horizontal teams prepare their items for release, while giving developers time to focus on stabilising what is currently in master, and encouraging users and packagers to perform tests (automated, and manual) on the release, to spot any major bugs. The Nova release process is aligned with the `development cycle schedule `_ used by many OpenStack projects, including the following steps. - Feature Proposal Freeze - make sure all code is up for review - so we can optimise for completed features, not lots of half completed features - Feature Freeze - make sure all feature code is merged - String Freeze - give translators time to translate all our strings .. note:: debug logs are no longer translated - Dependency Freeze - time to co-ordinate the final list of dependencies, and give packagers time to package them - generally it is also quite destabilising to take upgrades (beyond bug fixes) this late As with all processes here, there are exceptions. The exceptions at this stage need to be discussed with the horizontal teams that might be affected by changes beyond this point, and as such are discussed with one of the OpenStack release managers. Spec and Blueprint Approval Freeze ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ This is a (mostly) Nova specific process. Why we have a Spec Freeze: - specs take a long time to review and reviewing specs throughout the cycle distracts from code reviews - keeping specs "open" and being slow at reviewing them (or just ignoring them) annoys the spec submitters - we generally have more code submitted that we can review, this time bounding is a useful way to limit the number of submissions By the freeze date, we expect all blueprints that will be approved for the cycle to be listed on launchpad and all relevant specs to be merged. For Queens, blueprints can be found at https://blueprints.launchpad.net/nova/queens and specs at https://specs.openstack.org/openstack/nova-specs/specs/queens/index.html Starting with Liberty, we are keeping a backlog open for submission at all times. .. note:: The focus is on accepting and agreeing problem statements as being in scope, rather than queueing up work items for the next release. We are still working on a new lightweight process to get out of the backlog and approved for a particular release. For more details on backlog specs, please see: http://specs.openstack.org/openstack/nova-specs/specs/backlog/index.html There can be exceptions, usually it's an urgent feature request that comes up after the initial deadline. These will generally be discussed at the weekly Nova meeting, by adding the spec or blueprint to discuss in the appropriate place in the meeting agenda here (ideally make yourself available to discuss the blueprint, or alternatively make your case on the ML before the meeting): https://wiki.openstack.org/wiki/Meetings/Nova#Agenda_for_next_meeting Non-priority Feature Freeze ~~~~~~~~~~~~~~~~~~~~~~~~~~~ This is a Nova specific process. This only applies to low priority blueprints in this list: https://blueprints.launchpad.net/nova/queens We currently have a very finite amount of review bandwidth. In order to make code review time for the agreed community wide priorities, we have to not do some other things. In each cycle, milestones are used to bound when certain types of work will be active and reviewed and to avoid crushing the gate with too much code near the end of the cycle. For example, in the Liberty cycle, we reserved the liberty-3 milestone for priority features and bug fixes and did not merge any non-priority things during liberty-3. This meant that liberty-2 was the "Feature Freeze" for blueprints that were not a priority for the Liberty cycle. You can see the list of priorities for each release: http://specs.openstack.org/openstack/nova-specs/#priorities For things that are very close to merging, it's possible to request an exception for one week after the freeze date, given the patches get enough +2s from the core team to get the code merged. But we expect this list to be zero, if everything goes to plan (no massive gate failures, etc). For history of the process see: http://lists.openstack.org/pipermail/openstack-dev/2015-July/070920.html Exception process: - Please add request in here: https://etherpad.openstack.org/p/queens-nova-non-priority-feature-freeze (ideally with core reviewers to sponsor your patch, normally the folks who have already viewed those patches) - make sure you make your request before the end of the feature freeze exception period - nova-drivers will meet to decide what gets an exception (for some history see: http://lists.openstack.org/pipermail/openstack-dev/2015-February/056208.html) - an initial list of exceptions (probably just a PTL compiled list at that point) will be available for discussion during the next Nova meeting - the aim is to merge the code for all exceptions early in the following week Alternatives: - It was hoped to make this a continuous process using "slots" to control what gets reviewed, but this was rejected by the community when it was last discussed. There is hope this can be resurrected to avoid the "lumpy" nature of this process. - Currently the runways/kanban ideas are blocked on us adopting something like phabricator that could support such workflows String Freeze ~~~~~~~~~~~~~ String Freeze provides an opportunity for translators to translate user-visible messages to a variety of languages. By not changing strings after the date of the string freeze, the job of the translators is made a bit easier. For more information on string and other OpenStack-wide release processes see `the release management docs `_. How do I get my code merged? ============================ OK, so you are new to Nova, and you have been given a feature to implement. How do I make that happen? You can get most of your questions answered here: - https://docs.openstack.org/infra/manual/developers.html But let's put a Nova specific twist on things... Overview ~~~~~~~~ .. image:: /_static/images/nova-spec-process.svg :alt: Flow chart showing the Nova bug/feature process Where do you track bugs? ~~~~~~~~~~~~~~~~~~~~~~~~ We track bugs here: - https://bugs.launchpad.net/nova If you fix an issue, please raise a bug so others who spot that issue can find the fix you kindly created for them. Also before submitting your patch it's worth checking to see if someone has already fixed it for you (Launchpad helps you with that, at little, when you create the bug report). When do I need a blueprint vs a spec? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ For more details see: - https://docs.openstack.org/nova/latest/contributor/blueprints.html To understand this question, we need to understand why blueprints and specs are useful. But here is the rough idea: - if it needs a spec, it will need a blueprint. - if it's an API change, it needs a spec. - if it's a single small patch that touches a small amount of code, with limited deployer and doc impact, it probably doesn't need a spec. If you are unsure, please ask johnthetubaguy on IRC, or one of the other nova-drivers. How do I get my blueprint approved? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ So you need your blueprint approved? Here is how: - if you don't need a spec, please add a link to your blueprint to the agenda for the next nova meeting: https://wiki.openstack.org/wiki/Meetings/Nova - be sure your blueprint description has enough context for the review in that meeting. - if you need a spec, then please submit a nova-spec for review, see: https://docs.openstack.org/infra/manual/developers.html Got any more questions? Contact johnthetubaguy or one of the other nova-specs-core who are awake at the same time as you. IRC is best as you will often get an immediate response, if they are too busy send him/her an email. How do I get a procedural -2 removed from my patch? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ When feature freeze hits, any patches for blueprints that are still in review get a procedural -2 to stop them merging. In Nova a blueprint is only approved for a single release. To have the -2 removed, you need to get the blueprint approved for the current release (see `How do I get my blueprint approved?`_). Why are the reviewers being mean to me? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Code reviews take intense concentration and a lot of time. This tends to lead to terse responses with very little preamble or nicety. That said, there's no excuse for being actively rude or mean. OpenStack has a Code of Conduct (https://www.openstack.org/legal/community-code-of-conduct/) and if you feel this has been breached please raise the matter privately. Either with the relevant parties, the PTL or failing those, the OpenStack Foundation. That said, there are many objective reasons for applying a -1 or -2 to a patch: - Firstly and simply, patches must address their intended purpose successfully. - Patches must not have negative side-effects like wiping the database or causing a functional regression. Usually removing anything, however tiny, requires a deprecation warning be issued for a cycle. - Code must be maintainable, that is it must adhere to coding standards and be as readable as possible for an average OpenStack developer (we acknowledge that this person is not easy to define). - Patches must respect the direction of the project, for example they should not make approved specs substantially more difficult to implement. - Release coordinators need the correct process to be followed so scope can be tracked accurately. Bug fixes require bugs, features require blueprints and all but the simplest features require specs. If there is a blueprint, it must be approved for the release/milestone the patch is attempting to merge into. Please particularly bear in mind that a -2 does not mean "never ever" nor does it mean "your idea is bad and you are dumb". It simply means "do not merge today". You may need to wait some time, rethink your approach or even revisit the problem definition but there is almost always some way forward. The core who applied the -2 should tell you what you need to do. My code review seems stuck, what can I do? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ First and foremost - address any -1s and -2s! The review load on Nova is high enough that patches with negative reviews often get filtered out entirely. A few tips: - Be precise. Ensure you're not talking at cross purposes. - Try to understand where the reviewer is coming from. They may have a very different perspective and/or use-case to you. - If you don't understand the problem, ask them to explain - this is common and helpful behaviour. - Be positive. Everyone's patches have issues, including core reviewers. No-one cares once the issues are fixed. - Try not to flip-flop. When two reviewers are pulling you in different directions, stop pushing code and negotiate the best way forward. - If the reviewer does not respond to replies left on the patchset, reach out to them on IRC or email. If they still don't respond, you can try to ask their colleagues if they're on holiday (or simply wait). Finally, you can ask for mediation in the Nova meeting by adding it to the agenda (https://wiki.openstack.org/wiki/Meetings/Nova). This is also what you should do if you are unable to negotiate a resolution to an issue. Secondly, Nova is a big project, be aware of the average wait times: http://russellbryant.net/openstack-stats/nova-openreviews.html Eventually you should get some +1s from people working through the review queue. Expect to get -1s as well. You can ask for reviews within your company, 1-2 are useful (not more), especially if those reviewers are known to give good reviews. You can spend some time while you wait reviewing other people's code - they may reciprocate and you may learn something (:ref:`Why do code reviews when I'm not core? `). If you've waited an appropriate amount of time and you haven't had any +1s, you can ask on IRC for reviews. Please don't ask for core review straight away, especially not directly (IRC or email). Core reviewer time is very valuable and gaining some +1s is a good way to show your patch meets basic quality standards. Once you have a few +1s, be patient. Remember the average wait times. You can ask for reviews each week in IRC, it helps to ask when cores are awake. Bugs ^^^^ It helps to apply correct tracking information. - Put "Closes-Bug", "Partial-Bug" or "Related-Bug" in the commit message tags as necessary. - If you have to raise a bug in Launchpad first, do it - this helps someone else find your fix. - Make sure the bug has the correct priority and tag set: https://wiki.openstack.org/wiki/Nova/BugTriage#Step_2:_Triage_Tagged_Bugs Features ^^^^^^^^ Again, it helps to apply correct tracking information. For blueprint-only features: - Put your blueprint in the commit message, EG "blueprint simple-feature". - Mark the blueprint as NeedsCodeReview if you are finished. - Maintain the whiteboard on the blueprint so it's easy to understand which patches need reviews. - Use a single topic for all related patches. All patches for one blueprint should share a topic. For blueprint and spec features, do everything for blueprint-only features and also: - If it's a project or subteam priority, add it to: https://etherpad.openstack.org/p/queens-nova-priorities-tracking - Ensure your spec is approved for the current release cycle. If your code is a project or subteam priority, the cores interested in that priority might not mind a ping after it has sat with +1s for a week. If you abuse this privilege, you'll lose respect. If it's not a priority, your blueprint/spec has been approved for the cycle and you have been patient, you can raise it during the Nova meeting. The outcome may be that your spec gets unapproved for the cycle, so that priority items can take focus. If this happens to you, sorry - it should not have been approved in the first place, Nova team bit off more than they could chew, it is their mistake not yours. You can re-propose it for the next cycle. If it's not a priority and your spec has not been approved, your code will not merge this cycle. Please re-propose your spec for the next cycle. Nova Process Mission ==================== This section takes a high level look at the guiding principles behind the Nova process. Open ~~~~ Our mission is to have: - Open Source - Open Design - Open Development - Open Community We have to work out how to keep communication open in all areas. We need to be welcoming and mentor new people, and make it easy for them to pickup the knowledge they need to get involved with OpenStack. For more info on Open, please see: https://wiki.openstack.org/wiki/Open Interoperable API, supporting a vibrant ecosystem ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ An interoperable API that gives users on-demand access to compute resources is at the heart of Nova's mission: https://docs.openstack.org/nova/latest/contributor/project-scope.html#mission Nova has a vibrant ecosystem of tools built on top of the current Nova API. All features should be designed to work with all technology combinations, so the feature can be adopted by our ecosystem. If a new feature is not adopted by the ecosystem, it will make it hard for your users to make use of those features, defeating most of the reason to add the feature in the first place. The microversion system allows users to isolate themselves This is a very different aim to being "pluggable" or wanting to expose all capabilities to end users. At the same time, it is not just a "lowest common denominator" set of APIs. It should be discoverable which features are available, and while no implementation details should leak to the end users, purely admin concepts may need to understand technology specific details that back the interoperable and more abstract concepts that are exposed to the end user. This is a hard goal, and one area we currently don't do well is isolating image creators from these technology specific details. Smooth Upgrades ~~~~~~~~~~~~~~~ As part of our mission for a vibrant ecosystem around our APIs, we want to make it easy for those deploying Nova to upgrade with minimal impact to their users. Here is the scope of Nova's upgrade support: - upgrade from any commit, to any future commit, within the same major release - only support upgrades between N and N+1 major versions, to reduce technical debt relating to upgrades Here are some of the things we require developers to do, to help with upgrades: - when replacing an existing feature or configuration option, make it clear how to transition to any replacement - deprecate configuration options and features before removing them - i.e. continue to support and test features for at least one release before they are removed - this gives time for operator feedback on any removals - End User API will always be kept backwards compatible Interaction goals ~~~~~~~~~~~~~~~~~ When thinking about the importance of process, we should take a look at: http://agilemanifesto.org With that in mind, let's look at how we want different members of the community to interact. Let's start with looking at issues we have tried to resolve in the past (currently in no particular order). We must: - have a way for everyone to review blueprints and designs, including allowing for input from operators and all types of users (keep it open) - take care to not expand Nova's scope any more than absolutely necessary - ensure we get sufficient focus on the core of Nova so that we can maintain or improve the stability and flexibility of the overall codebase - support any API we release approximately forever. We currently release every commit, so we're motivated to get the API right the first time - avoid low priority blueprints that slow work on high priority work, without blocking those forever - focus on a consistent experience for our users, rather than ease of development - optimise for completed blueprints, rather than more half completed blueprints, so we get maximum value for our users out of our review bandwidth - focus efforts on a subset of patches to allow our core reviewers to be more productive - set realistic expectations on what can be reviewed in a particular cycle, to avoid sitting in an expensive rebase loop - be aware of users that do not work on the project full time - be aware of users that are only able to work on the project at certain times that may not align with the overall community cadence - discuss designs for non-trivial work before implementing it, to avoid the expense of late-breaking design issues FAQs ==== Why bother with all this process? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ We are a large community, spread across multiple timezones, working with several horizontal teams. Good communication is a challenge and the processes we have are mostly there to try and help fix some communication challenges. If you have a problem with a process, please engage with the community, discover the reasons behind our current process, and help fix the issues you are experiencing. Why don't you remove old process? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ We do! For example, in Liberty we stopped trying to predict the milestones when a feature will land. As we evolve, it is important to unlearn new habits and explore if things get better if we choose to optimise for a different set of issues. Why are specs useful? ~~~~~~~~~~~~~~~~~~~~~ Spec reviews allow anyone to step up and contribute to reviews, just like with code. Before we used gerrit, it was a very messy review process, that felt very "closed" to most people involved in that process. As Nova has grown in size, it can be hard to work out how to modify Nova to meet your needs. Specs are a great way of having that discussion with the wider Nova community. For Nova to be a success, we need to ensure we don't break our existing users. The spec template helps focus the mind on the impact your change might have on existing users and gives an opportunity to discuss the best way to deal with those issues. However, there are some pitfalls with the process. Here are some top tips to avoid them: - keep it simple. Shorter, simpler, more decomposed specs are quicker to review and merge much quicker (just like code patches). - specs can help with documentation but they are only intended to document the design discussion rather than document the final code. - don't add details that are best reviewed in code, it's better to leave those things for the code review. If we have specs, why still have blueprints? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ We use specs to record the design agreement, we use blueprints to track progress on the implementation of the spec. Currently, in Nova, specs are only approved for one release, and must be re-submitted for each release you want to merge the spec, although that is currently under review. Why do we have priorities? ~~~~~~~~~~~~~~~~~~~~~~~~~~ To be clear, there is no "nova dev team manager", we are an open team of professional software developers, that all work for a variety of (mostly competing) companies that collaborate to ensure the Nova project is a success. Over time, a lot of technical debt has accumulated, because there was a lack of collective ownership to solve those cross-cutting concerns. Before the Kilo release, it was noted that progress felt much slower, because we were unable to get appropriate attention on the architectural evolution of Nova. This was important, partly for major concerns like upgrades and stability. We agreed it's something we all care about and it needs to be given priority to ensure that these things get fixed. Since Kilo, priorities have been discussed at the summit. This turns in to a spec review which eventually means we get a list of priorities here: http://specs.openstack.org/openstack/nova-specs/#priorities Allocating our finite review bandwidth to these efforts means we have to limit the reviews we do on non-priority items. This is mostly why we now have the non-priority Feature Freeze. For more on this, see below. Blocking a priority effort is one of the few widely acceptable reasons to block someone adding a feature. One of the great advantages of being more explicit about that relationship is that people can step up to help review and/or implement the work that is needed to unblock the feature they want to get landed. This is a key part of being an Open community. Why is there a Feature Freeze (and String Freeze) in Nova? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The main reason Nova has a feature freeze is that it allows people working on docs and translations to sync up with the latest code. Traditionally this happens at the same time across multiple projects, so the docs are synced between what used to be called the "integrated release". We also use this time period as an excuse to focus our development efforts on bug fixes, ideally lower risk bug fixes, and improving test coverage. In theory, with a waterfall hat on, this would be a time for testing and stabilisation of the product. In Nova we have a much stronger focus on keeping every commit stable, by making use of extensive continuous testing. In reality, we frequently see the biggest influx of fixes in the few weeks after the release, as distributions do final testing of the released code. It is hoped that the work on Feature Classification will lead us to better understand the levels of testing of different Nova features, so we will be able to reduce and dependency between Feature Freeze and regression testing. It is also likely that the move away from "integrated" releases will help find a more developer friendly approach to keep the docs and translations in sync. Why is there a non-priority Feature Freeze in Nova? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ We have already discussed why we have priority features. The rate at which code can be merged to Nova is primarily constrained by the amount of time able to be spent reviewing code. Given this, earmarking review time for priority items means depriving it from non-priority items. The simplest way to make space for the priority features is to stop reviewing and merging non-priority features for a whole milestone. The idea being developers should focus on bug fixes and priority features during that milestone, rather than working on non-priority features. A known limitation of this approach is developer frustration. Many developers are not being given permission to review code, work on bug fixes or work on priority features, and so feel very unproductive upstream. An alternative approach of "slots" or "runways" has been considered, that uses a kanban style approach to regulate the influx of work onto the review queue. We are yet to get agreement on a more balanced approach, so the existing system is being continued to ensure priority items are more likely to get the attention they require. Why do you still use Launchpad? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ We are actively looking for an alternative to Launchpad's bugs and blueprints. Originally the idea was to create Storyboard. However development stalled for a while so interest waned. The project has become more active recently so it may be worth looking again: https://storyboard.openstack.org/#!/page/about When should I submit my spec? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Ideally we want to get all specs for a release merged before the summit. For things that we can't get agreement on, we can then discuss those at the summit. There will always be ideas that come up at the summit and need to be finalised after the summit. This causes a rush which is best avoided. How can I get my code merged faster? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ So no-one is coming to review your code, how do you speed up that process? Firstly, make sure you are following the above process. If it's a feature, make sure you have an approved blueprint. If it's a bug, make sure it is triaged, has its priority set correctly, it has the correct bug tag and is marked as in progress. If the blueprint has all the code up for review, change it from Started into NeedsCodeReview so people know only reviews are blocking you, make sure it hasn't accidentally got marked as implemented. Secondly, if you have a negative review (-1 or -2) and you responded to that in a comment or uploading a new change with some updates, but that reviewer hasn't come back for over a week, it's probably a good time to reach out to the reviewer on IRC (or via email) to see if they could look again now you have addressed their comments. If you can't get agreement, and your review gets stuck (i.e. requires mediation), you can raise your patch during the Nova meeting and we will try to resolve any disagreement. Thirdly, is it in merge conflict with master or are any of the CI tests failing? Particularly any third-party CI tests that are relevant to the code you are changing. If you're fixing something that only occasionally failed before, maybe recheck a few times to prove the tests stay passing. Without green tests, reviewers tend to move on and look at the other patches that have the tests passing. OK, so you have followed all the process (i.e. your patches are getting advertised via the project's tracking mechanisms), and your patches either have no reviews, or only positive reviews. Now what? Have you considered reviewing other people's patches? Firstly, participating in the review process is the best way for you to understand what reviewers are wanting to see in the code you are submitting. As you get more practiced at reviewing it will help you to write "merge-ready" code. Secondly, if you help review other peoples code and help get their patches ready for the core reviewers to add a +2, it will free up a lot of non-core and core reviewer time, so they are more likely to get time to review your code. For more details, please see: :ref:`Why do code reviews when I'm not core? ` Please note, I am not recommending you go to ask people on IRC or via email for reviews. Please try to get your code reviewed using the above process first. In many cases multiple direct pings generate frustration on both sides and that tends to be counter productive. Now you have got your code merged, lets make sure you don't need to fix this bug again. The fact the bug exists means there is a gap in our testing. Your patch should have included some good unit tests to stop the bug coming back. But don't stop there, maybe its time to add tempest tests, to make sure your use case keeps working? Maybe you need to set up a third party CI so your combination of drivers will keep working? Getting that extra testing in place should stop a whole heap of bugs, again giving reviewers more time to get to the issues or features you want to add in the future. Process Evolution Ideas ======================= We are always evolving our process as we try to improve and adapt to the changing shape of the community. Here we discuss some of the ideas, along with their pros and cons. Splitting out the virt drivers (or other bits of code) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Currently, Nova doesn't have strong enough interfaces to split out the virt drivers, scheduler or REST API. This is seen as the key blocker. Let's look at both sides of the debate here. Reasons for the split: - can have separate core teams for each repo - this leads to quicker turn around times, largely due to focused teams - splitting out things from core means less knowledge required to become core in a specific area Reasons against the split: - loss of interoperability between drivers - this is a core part of Nova's mission, to have a single API across all deployments, and a strong ecosystem of tools and apps built on that - we can overcome some of this with stronger interfaces and functional tests - new features often need changes in the API and virt driver anyway - the new "depends-on" can make these cross-repo dependencies easier - loss of code style consistency across the code base - fear of fragmenting the nova community, leaving few to work on the core of the project - could work in subteams within the main tree TODO - need to complete analysis Subteam recommendation as a +2 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ There are groups of people with great knowledge of particular bits of the code base. It may be a good idea to give their recommendation of a merge greater strength. In addition, having the subteam focus review efforts on a subset of patches should help concentrate the nova-core reviews they get, and increase the velocity of getting code merged. The first part is for subgroups to show they can do a great job of recommending patches. This is starting in here: https://etherpad.openstack.org/p/queens-nova-priorities-tracking Ideally this would be done with gerrit user "tags" rather than an etherpad. There are some investigations by sdague in how feasible it would be to add tags to gerrit. Stop having to submit a spec for each release ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ As mentioned above, we use blueprints for tracking, and specs to record design decisions. Targeting specs to a specific release is a heavyweight solution and blurs the lines between specs and blueprints. At the same time, we don't want to lose the opportunity to revise existing blueprints. Maybe there is a better balance? What about this kind of process: - backlog has these folders: - backlog/incomplete - merge a partial spec - backlog/complete - merge complete specs (remove tracking details, such as assignee part of the template) - ?? backlog/expired - specs are moved here from incomplete or complete when no longer seem to be given attention (after 1 year, by default) - /implemented - when a spec is complete it gets moved into the release directory and possibly updated to reflect what actually happened - there will no longer be a per-release approved spec list To get your blueprint approved: - add it to the next nova meeting - if a spec is required, update the URL to point to the spec merged in a spec to the blueprint - ensure there is an assignee in the blueprint - a day before the meeting, a note is sent to the ML to review the list before the meeting - discuss any final objections in the nova-meeting - this may result in a request to refine the spec, if things have changed since it was merged - trivial cases can be approved in advance by a nova-driver, so not all folks need to go through the meeting This still needs more thought, but should decouple the spec review from the release process. It is also more compatible with a runway style system, that might be less focused on milestones. Runways ~~~~~~~ Runways are a form of Kanban, where we look at optimising the flow through the system, by ensuring we focus our efforts on reviewing a specific subset of patches. The idea goes something like this: - define some states, such as: design backlog, design review, code backlog, code review, test+doc backlog, complete - blueprints must be in one of the above state - large or high priority bugs may also occupy a code review slot - core reviewer member moves item between the slots - must not violate the rules on the number of items in each state - states have a limited number of slots, to ensure focus - certain percentage of slots are dedicated to priorities, depending on point in the cycle, and the type of the cycle, etc Reasons for: - more focused review effort, get more things merged more quickly - more upfront about when your code is likely to get reviewed - smooth out current "lumpy" non-priority feature freeze system Reasons against: - feels like more process overhead - control is too centralised Replacing Milestones with SemVer Releases ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ You can deploy any commit of Nova and upgrade to a later commit in that same release. Making our milestones versioned more like an official release would help signal to our users that people can use the milestones in production, and get a level of upgrade support. It could go something like this: - 14.0.0 is milestone 1 - 14.0.1 is milestone 2 (maybe, because we add features, it should be 14.1.0?) - 14.0.2 is milestone 3 - we might do other releases (once a critical bug is fixed?), as it makes sense, but we will always be the time bound ones - 14.0.3 two weeks after milestone 3, adds only bug fixes (and updates to RPC versions?) - maybe a stable branch is created at this point? - 14.1.0 adds updated translations and co-ordinated docs - this is released from the stable branch? - 15.0.0 is the next milestone, in the following cycle - not the bump of the major version to signal an upgrade incompatibility with 13.x We are currently watching Ironic to see how their use of semver goes, and see what lessons need to be learnt before we look to maybe apply this technique during M. Feature Classification ~~~~~~~~~~~~~~~~~~~~~~ This is a look at moving forward this effort: - https://docs.openstack.org/nova/latest/user/support-matrix.html The things we need to cover: - note what is tested, and how often that test passes (via 3rd party CI, or otherwise) - link to current test results for stable and master (time since last pass, recent pass rate, etc) - TODO - sync with jogo on his third party CI audit and getting trends, ask infra - include experimental features (untested feature) - get better at the impact of volume drivers and network drivers on available features (not just hypervisor drivers) Main benefits: - users get a clear picture of what is known to work - be clear about when experimental features are removed, if no tests are added - allows a way to add experimental things into Nova, and track either their removal or maturation nova-17.0.13/doc/source/install/0000775000175000017500000000000013556316574016402 5ustar zuulzuul00000000000000nova-17.0.13/doc/source/install/compute-install.rst0000664000175000017500000000234313556316250022245 0ustar zuulzuul00000000000000Install and configure a compute node ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ This section describes how to install and configure the Compute service on a compute node for Ubuntu, openSUSE and SUSE Linux Enterprise, and Red Hat Enterprise Linux and CentOS. The service supports several hypervisors to deploy instances or virtual machines (VMs). For simplicity, this configuration uses the Quick EMUlator (QEMU) hypervisor with the kernel-based VM (KVM) extension on compute nodes that support hardware acceleration for virtual machines. On legacy hardware, this configuration uses the generic QEMU hypervisor. You can follow these instructions with minor modifications to horizontally scale your environment with additional compute nodes. .. note:: This section assumes that you are following the instructions in this guide step-by-step to configure the first compute node. If you want to configure additional compute nodes, prepare them in a similar fashion to the first compute node in the :ref:`example architectures ` section. Each additional compute node requires a unique IP address. .. toctree:: :glob: compute-install-ubuntu.rst compute-install-rdo.rst compute-install-obs.rst nova-17.0.13/doc/source/install/overview.rst0000664000175000017500000001531713556316250021000 0ustar zuulzuul00000000000000======== Overview ======== The OpenStack project is an open source cloud computing platform that supports all types of cloud environments. The project aims for simple implementation, massive scalability, and a rich set of features. Cloud computing experts from around the world contribute to the project. OpenStack provides an Infrastructure-as-a-Service (IaaS) solution through a variety of complementary services. Each service offers an Application Programming Interface (API) that facilitates this integration. This guide covers step-by-step deployment of the major OpenStack services using a functional example architecture suitable for new users of OpenStack with sufficient Linux experience. This guide is not intended to be used for production system installations, but to create a minimum proof-of-concept for the purpose of learning about OpenStack. After becoming familiar with basic installation, configuration, operation, and troubleshooting of these OpenStack services, you should consider the following steps toward deployment using a production architecture: * Determine and implement the necessary core and optional services to meet performance and redundancy requirements. * Increase security using methods such as firewalls, encryption, and service policies. * Implement a deployment tool such as Ansible, Chef, Puppet, or Salt to automate deployment and management of the production environment. .. _overview-example-architectures: Example architecture ~~~~~~~~~~~~~~~~~~~~ The example architecture requires at least two nodes (hosts) to launch a basic virtual machine (VM) or instance. Optional services such as Block Storage and Object Storage require additional nodes. .. important:: The example architecture used in this guide is a minimum configuration, and is not intended for production system installations. It is designed to provide a minimum proof-of-concept for the purpose of learning about OpenStack. For information on creating architectures for specific use cases, or how to determine which architecture is required, see the `Architecture Design Guide `_. This example architecture differs from a minimal production architecture as follows: * Networking agents reside on the controller node instead of one or more dedicated network nodes. * Overlay (tunnel) traffic for self-service networks traverses the management network instead of a dedicated network. For more information on production architectures, see the `Architecture Design Guide `_, `OpenStack Operations Guide `_, and `OpenStack Networking Guide `_. .. _figure-hwreqs: .. figure:: figures/hwreqs.png :alt: Hardware requirements **Hardware requirements** Controller ---------- The controller node runs the Identity service, Image service, management portions of Compute, management portion of Networking, various Networking agents, and the Dashboard. It also includes supporting services such as an SQL database, message queue, and Network Time Protocol (NTP). Optionally, the controller node runs portions of the Block Storage, Object Storage, Orchestration, and Telemetry services. The controller node requires a minimum of two network interfaces. Compute ------- The compute node runs the hypervisor portion of Compute that operates instances. By default, Compute uses the kernel-based VM (KVM) hypervisor. The compute node also runs a Networking service agent that connects instances to virtual networks and provides firewalling services to instances via security groups. You can deploy more than one compute node. Each node requires a minimum of two network interfaces. Block Storage ------------- The optional Block Storage node contains the disks that the Block Storage and Shared File System services provision for instances. For simplicity, service traffic between compute nodes and this node uses the management network. Production environments should implement a separate storage network to increase performance and security. You can deploy more than one block storage node. Each node requires a minimum of one network interface. Object Storage -------------- The optional Object Storage node contain the disks that the Object Storage service uses for storing accounts, containers, and objects. For simplicity, service traffic between compute nodes and this node uses the management network. Production environments should implement a separate storage network to increase performance and security. This service requires two nodes. Each node requires a minimum of one network interface. You can deploy more than two object storage nodes. Networking ~~~~~~~~~~ Choose one of the following virtual networking options. .. _network1: Networking Option 1: Provider networks -------------------------------------- The provider networks option deploys the OpenStack Networking service in the simplest way possible with primarily layer-2 (bridging/switching) services and VLAN segmentation of networks. Essentially, it bridges virtual networks to physical networks and relies on physical network infrastructure for layer-3 (routing) services. Additionally, a DHCP CREATE DATABASE nova_api; MariaDB [(none)]> CREATE DATABASE nova; MariaDB [(none)]> CREATE DATABASE nova_cell0; * Grant proper access to the databases: .. code-block:: console MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'localhost' \ IDENTIFIED BY 'NOVA_DBPASS'; MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'%' \ IDENTIFIED BY 'NOVA_DBPASS'; MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' \ IDENTIFIED BY 'NOVA_DBPASS'; MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' \ IDENTIFIED BY 'NOVA_DBPASS'; MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'localhost' \ IDENTIFIED BY 'NOVA_DBPASS'; MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'%' \ IDENTIFIED BY 'NOVA_DBPASS'; Replace ``NOVA_DBPASS`` with a suitable password. * Exit the database access client. #. Source the ``admin`` credentials to gain access to admin-only CLI commands: .. code-block:: console $ . admin-openrc #. Create the Compute service credentials: * Create the ``nova`` user: .. code-block:: console $ openstack user create --domain default --password-prompt nova User Password: Repeat User Password: +---------------------+----------------------------------+ | Field | Value | +---------------------+----------------------------------+ | domain_id | default | | enabled | True | | id | 8a7dbf5279404537b1c7b86c033620fe | | name | nova | | options | {} | | password_expires_at | None | +---------------------+----------------------------------+ * Add the ``admin`` role to the ``nova`` user: .. code-block:: console $ openstack role add --project service --user nova admin .. note:: This command provides no output. * Create the ``nova`` service entity: .. code-block:: console $ openstack service create --name nova \ --description "OpenStack Compute" compute +-------------+----------------------------------+ | Field | Value | +-------------+----------------------------------+ | description | OpenStack Compute | | enabled | True | | id | 060d59eac51b4594815603d75a00aba2 | | name | nova | | type | compute | +-------------+----------------------------------+ #. Create the Compute API service endpoints: .. code-block:: console $ openstack endpoint create --region RegionOne \ compute public http://controller:8774/v2.1 +--------------+-------------------------------------------+ | Field | Value | +--------------+-------------------------------------------+ | enabled | True | | id | 3c1caa473bfe4390a11e7177894bcc7b | | interface | public | | region | RegionOne | | region_id | RegionOne | | service_id | 060d59eac51b4594815603d75a00aba2 | | service_name | nova | | service_type | compute | | url | http://controller:8774/v2.1 | +--------------+-------------------------------------------+ $ openstack endpoint create --region RegionOne \ compute internal http://controller:8774/v2.1 +--------------+-------------------------------------------+ | Field | Value | +--------------+-------------------------------------------+ | enabled | True | | id | e3c918de680746a586eac1f2d9bc10ab | | interface | internal | | region | RegionOne | | region_id | RegionOne | | service_id | 060d59eac51b4594815603d75a00aba2 | | service_name | nova | | service_type | compute | | url | http://controller:8774/v2.1 | +--------------+-------------------------------------------+ $ openstack endpoint create --region RegionOne \ compute admin http://controller:8774/v2.1 +--------------+-------------------------------------------+ | Field | Value | +--------------+-------------------------------------------+ | enabled | True | | id | 38f7af91666a47cfb97b4dc790b94424 | | interface | admin | | region | RegionOne | | region_id | RegionOne | | service_id | 060d59eac51b4594815603d75a00aba2 | | service_name | nova | | service_type | compute | | url | http://controller:8774/v2.1 | +--------------+-------------------------------------------+ #. Create a Placement service user using your chosen ``PLACEMENT_PASS``: .. code-block:: console $ openstack user create --domain default --password-prompt placement User Password: Repeat User Password: +---------------------+----------------------------------+ | Field | Value | +---------------------+----------------------------------+ | domain_id | default | | enabled | True | | id | fa742015a6494a949f67629884fc7ec8 | | name | placement | | options | {} | | password_expires_at | None | +---------------------+----------------------------------+ #. Add the Placement user to the service project with the admin role: .. code-block:: console $ openstack role add --project service --user placement admin .. note:: This command provides no output. #. Create the Placement API entry in the service catalog: .. code-block:: console $ openstack service create --name placement --description "Placement API" placement +-------------+----------------------------------+ | Field | Value | +-------------+----------------------------------+ | description | Placement API | | enabled | True | | id | 2d1a27022e6e4185b86adac4444c495f | | name | placement | | type | placement | +-------------+----------------------------------+ #. Create the Placement API service endpoints: .. code-block:: console $ openstack endpoint create --region RegionOne placement public http://controller:8780 +--------------+----------------------------------+ | Field | Value | +--------------+----------------------------------+ | enabled | True | | id | 2b1b2637908b4137a9c2e0470487cbc0 | | interface | public | | region | RegionOne | | region_id | RegionOne | | service_id | 2d1a27022e6e4185b86adac4444c495f | | service_name | placement | | service_type | placement | | url | http://controller:8780 | +--------------+----------------------------------+ $ openstack endpoint create --region RegionOne placement internal http://controller:8780 +--------------+----------------------------------+ | Field | Value | +--------------+----------------------------------+ | enabled | True | | id | 02bcda9a150a4bd7993ff4879df971ab | | interface | internal | | region | RegionOne | | region_id | RegionOne | | service_id | 2d1a27022e6e4185b86adac4444c495f | | service_name | placement | | service_type | placement | | url | http://controller:8780 | +--------------+----------------------------------+ $ openstack endpoint create --region RegionOne placement admin http://controller:8780 +--------------+----------------------------------+ | Field | Value | +--------------+----------------------------------+ | enabled | True | | id | 3d71177b9e0f406f98cbff198d74b182 | | interface | admin | | region | RegionOne | | region_id | RegionOne | | service_id | 2d1a27022e6e4185b86adac4444c495f | | service_name | placement | | service_type | placement | | url | http://controller:8780 | +--------------+----------------------------------+ Install and configure components -------------------------------- .. include:: shared/note_configuration_vary_by_distribution.rst .. note:: As of the Newton release, SUSE OpenStack packages are shipped with the upstream default configuration files. For example, ``/etc/nova/nova.conf`` has customizations in ``/etc/nova/nova.conf.d/010-nova.conf``. While the following instructions modify the default configuration file, adding a new file in ``/etc/nova/nova.conf.d`` achieves the same result. #. Install the packages: .. code-block:: console # zypper install openstack-nova-api openstack-nova-scheduler \ openstack-nova-conductor openstack-nova-consoleauth \ openstack-nova-novncproxy openstack-nova-placement-api \ iptables #. Edit the ``/etc/nova/nova.conf`` file and complete the following actions: * In the ``[DEFAULT]`` section, enable only the compute and metadata APIs: .. path /etc/nova/nova.conf .. code-block:: ini [DEFAULT] # ... enabled_apis = osapi_compute,metadata * In the ``[api_database]`` and ``[database]`` sections, configure database access: .. path /etc/nova/nova.conf .. code-block:: ini [api_database] # ... connection = mysql+pymysql://nova:NOVA_DBPASS@controller/nova_api [database] # ... connection = mysql+pymysql://nova:NOVA_DBPASS@controller/nova Replace ``NOVA_DBPASS`` with the password you chose for the Compute databases. * In the ``[DEFAULT]`` section, configure ``RabbitMQ`` message queue access: .. path /etc/nova/nova.conf .. code-block:: ini [DEFAULT] # ... transport_url = rabbit://openstack:RABBIT_PASS@controller Replace ``RABBIT_PASS`` with the password you chose for the ``openstack`` account in ``RabbitMQ``. * In the ``[api]`` and ``[keystone_authtoken]`` sections, configure Identity service access: .. path /etc/nova/nova.conf .. code-block:: ini [api] # ... auth_strategy = keystone [keystone_authtoken] # ... auth_url = http://controller:5000/v3 memcached_servers = controller:11211 auth_type = password project_domain_name = default user_domain_name = default project_name = service username = nova password = NOVA_PASS Replace ``NOVA_PASS`` with the password you chose for the ``nova`` user in the Identity service. .. note:: Comment out or remove any other options in the ``[keystone_authtoken]`` section. * In the ``[DEFAULT]`` section, configure the ``my_ip`` option to use the management interface IP address of the controller node: .. path /etc/nova/nova.conf .. code-block:: ini [DEFAULT] # ... my_ip = 10.0.0.11 * In the ``[DEFAULT]`` section, enable support for the Networking service: .. path /etc/nova/nova.conf .. code-block:: ini [DEFAULT] # ... use_neutron = True firewall_driver = nova.virt.firewall.NoopFirewallDriver .. note:: By default, Compute uses an internal firewall driver. Since the Networking service includes a firewall driver, you must disable the Compute firewall driver by using the ``nova.virt.firewall.NoopFirewallDriver`` firewall driver. * In the ``[vnc]`` section, configure the VNC proxy to use the management interface IP address of the controller node: .. path /etc/nova/nova.conf .. code-block:: ini [vnc] enabled = true # ... server_listen = $my_ip server_proxyclient_address = $my_ip * In the ``[glance]`` section, configure the location of the Image service API: .. path /etc/nova/nova.conf .. code-block:: ini [glance] # ... api_servers = http://controller:9292 * In the ``[oslo_concurrency]`` section, configure the lock path: .. path /etc/nova/nova.conf .. code-block:: ini [oslo_concurrency] # ... lock_path = /var/run/nova * In the ``[placement]`` section, configure the Placement API: .. path /etc/nova/nova.conf .. code-block:: ini [placement] # ... os_region_name = RegionOne project_domain_name = Default project_name = service auth_type = password user_domain_name = Default auth_url = http://controller:5000/v3 username = placement password = PLACEMENT_PASS Replace ``PLACEMENT_PASS`` with the password you choose for the ``placement`` user in the Identity service. Comment out any other options in the ``[placement]`` section. #. Populate the ``nova-api`` database: .. code-block:: console # su -s /bin/sh -c "nova-manage api_db sync" nova .. note:: Ignore any deprecation messages in this output. #. Register the ``cell0`` database: .. code-block:: console # su -s /bin/sh -c "nova-manage cell_v2 map_cell0" nova #. Create the ``cell1`` cell: .. code-block:: console # su -s /bin/sh -c "nova-manage cell_v2 create_cell --name=cell1 --verbose" nova 109e1d4b-536a-40d0-83c6-5f121b82b650 #. Populate the nova database: .. code-block:: console # su -s /bin/sh -c "nova-manage db sync" nova #. Verify nova cell0 and cell1 are registered correctly: .. code-block:: console # nova-manage cell_v2 list_cells +-------+--------------------------------------+ | Name | UUID | +-------+--------------------------------------+ | cell1 | 109e1d4b-536a-40d0-83c6-5f121b82b650 | | cell0 | 00000000-0000-0000-0000-000000000000 | +-------+--------------------------------------+ Finalize installation --------------------- * Enable the placement API Apache vhost: .. code-block:: console # mv /etc/apache2/vhosts.d/nova-placement-api.conf.sample /etc/apache2/vhosts.d/nova-placement-api.conf # systemctl reload apache2.service * Start the Compute services and configure them to start when the system boots: .. code-block:: console # systemctl enable openstack-nova-api.service \ openstack-nova-consoleauth.service openstack-nova-scheduler.service \ openstack-nova-conductor.service openstack-nova-novncproxy.service # systemctl start openstack-nova-api.service \ openstack-nova-consoleauth.service openstack-nova-scheduler.service \ openstack-nova-conductor.service openstack-nova-novncproxy.service nova-17.0.13/doc/source/install/get-started-compute.rst0000664000175000017500000000742013556316250023023 0ustar zuulzuul00000000000000======================== Compute service overview ======================== .. todo:: Update a lot of the links in here. Use OpenStack Compute to host and manage cloud computing systems. OpenStack Compute is a major part of an Infrastructure-as-a-Service (IaaS) system. The main modules are implemented in Python. OpenStack Compute interacts with OpenStack Identity for authentication; OpenStack Image service for disk and server images; and OpenStack Dashboard for the user and administrative interface. Image access is limited by projects, and by users; quotas are limited per project (the number of instances, for example). OpenStack Compute can scale horizontally on standard hardware, and download images to launch instances. OpenStack Compute consists of the following areas and their components: ``nova-api`` service Accepts and responds to end user compute API calls. The service supports the OpenStack Compute API. It enforces some policies and initiates most orchestration activities, such as running an instance. ``nova-api-metadata`` service Accepts metadata requests from instances. The ``nova-api-metadata`` service is generally used when you run in multi-host mode with ``nova-network`` installations. For details, see :ref:`metadata-service` in the Compute Administrator Guide. ``nova-compute`` service A worker daemon that creates and terminates virtual machine instances through hypervisor APIs. For example: - XenAPI for XenServer/XCP - libvirt for KVM or QEMU - VMwareAPI for VMware Processing is fairly complex. Basically, the daemon accepts actions from the queue and performs a series of system commands such as launching a KVM instance and updating its state in the database. ``nova-placement-api`` service Tracks the inventory and usage of each provider. For details, see :doc:`/user/placement`. ``nova-scheduler`` service Takes a virtual machine instance request from the queue and determines on which compute server host it runs. ``nova-conductor`` module Mediates interactions between the ``nova-compute`` service and the database. It eliminates direct accesses to the cloud database made by the ``nova-compute`` service. The ``nova-conductor`` module scales horizontally. However, do not deploy it on nodes where the ``nova-compute`` service runs. For more information, see the ``conductor`` section in the :doc:`/configuration/config`. ``nova-consoleauth`` daemon Authorizes tokens for users that console proxies provide. See ``nova-novncproxy`` and ``nova-xvpvncproxy``. This service must be running for console proxies to work. You can run proxies of either type against a single nova-consoleauth service in a cluster configuration. For information, see :ref:`about-nova-consoleauth`. ``nova-novncproxy`` daemon Provides a proxy for accessing running instances through a VNC connection. Supports browser-based novnc clients. ``nova-spicehtml5proxy`` daemon Provides a proxy for accessing running instances through a SPICE connection. Supports browser-based HTML5 client. ``nova-xvpvncproxy`` daemon Provides a proxy for accessing running instances through a VNC connection. Supports an OpenStack-specific Java client. The queue A central hub for passing messages between daemons. Usually implemented with `RabbitMQ `__, also can be implemented with another AMQP message queue, such as `ZeroMQ `__. SQL database Stores most build-time and run-time states for a cloud infrastructure, including: - Available instance types - Instances in use - Available networks - Projects Theoretically, OpenStack Compute can support any database that SQLAlchemy supports. Common databases are SQLite3 for test and development work, MySQL, MariaDB, and PostgreSQL. nova-17.0.13/doc/source/install/compute-install-obs.rst0000664000175000017500000002224313556316250023027 0ustar zuulzuul00000000000000Install and configure a compute node for openSUSE and SUSE Linux Enterprise ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ This section describes how to install and configure the Compute service on a compute node. The service supports several hypervisors to deploy instances or virtual machines (VMs). For simplicity, this configuration uses the Quick EMUlator (QEMU) hypervisor with the kernel-based VM (KVM) extension on compute nodes that support hardware acceleration for virtual machines. On legacy hardware, this configuration uses the generic QEMU hypervisor. You can follow these instructions with minor modifications to horizontally scale your environment with additional compute nodes. .. note:: This section assumes that you are following the instructions in this guide step-by-step to configure the first compute node. If you want to configure additional compute nodes, prepare them in a similar fashion to the first compute node in the :ref:`example architectures ` section. Each additional compute node requires a unique IP address. Install and configure components -------------------------------- .. include:: shared/note_configuration_vary_by_distribution.rst #. Install the packages: .. code-block:: console # zypper install openstack-nova-compute genisoimage qemu-kvm libvirt #. Edit the ``/etc/nova/nova.conf`` file and complete the following actions: * In the ``[DEFAULT]`` section, enable only the compute and metadata APIs: .. path /etc/nova/nova.conf .. code-block:: ini [DEFAULT] # ... enabled_apis = osapi_compute,metadata * In the ``[DEFAULT]`` section, set the ``compute_driver``: .. path /etc/nova/nova.conf .. code-block:: ini [DEFAULT] # ... compute_driver = libvirt.LibvirtDriver * In the ``[DEFAULT]`` section, configure ``RabbitMQ`` message queue access: .. path /etc/nova/nova.conf .. code-block:: ini [DEFAULT] # ... transport_url = rabbit://openstack:RABBIT_PASS@controller Replace ``RABBIT_PASS`` with the password you chose for the ``openstack`` account in ``RabbitMQ``. * In the ``[api]`` and ``[keystone_authtoken]`` sections, configure Identity service access: .. path /etc/nova/nova.conf .. code-block:: ini [api] # ... auth_strategy = keystone [keystone_authtoken] # ... auth_url = http://controller:5000/v3 memcached_servers = controller:11211 auth_type = password project_domain_name = default user_domain_name = default project_name = service username = nova password = NOVA_PASS Replace ``NOVA_PASS`` with the password you chose for the ``nova`` user in the Identity service. .. note:: Comment out or remove any other options in the ``[keystone_authtoken]`` section. * In the ``[DEFAULT]`` section, configure the ``my_ip`` option: .. path /etc/nova/nova.conf .. code-block:: ini [DEFAULT] # ... my_ip = MANAGEMENT_INTERFACE_IP_ADDRESS Replace ``MANAGEMENT_INTERFACE_IP_ADDRESS`` with the IP address of the management network interface on your compute node, typically ``10.0.0.31`` for the first node in the :ref:`example architecture `. * In the ``[DEFAULT]`` section, enable support for the Networking service: .. path /etc/nova/nova.conf .. code-block:: ini [DEFAULT] # ... use_neutron = True firewall_driver = nova.virt.firewall.NoopFirewallDriver .. note:: By default, Compute uses an internal firewall service. Since Networking includes a firewall service, you must disable the Compute firewall service by using the ``nova.virt.firewall.NoopFirewallDriver`` firewall driver. * In the ``[vnc]`` section, enable and configure remote console access: .. path /etc/nova/nova.conf .. code-block:: ini [vnc] # ... enabled = True server_listen = 0.0.0.0 server_proxyclient_address = $my_ip novncproxy_base_url = http://controller:6080/vnc_auto.html The server component listens on all IP addresses and the proxy component only listens on the management interface IP address of the compute node. The base URL indicates the location where you can use a web browser to access remote consoles of instances on this compute node. .. note:: If the web browser to access remote consoles resides on a host that cannot resolve the ``controller`` hostname, you must replace ``controller`` with the management interface IP address of the controller node. * In the ``[glance]`` section, configure the location of the Image service API: .. path /etc/nova/nova.conf .. code-block:: ini [glance] # ... api_servers = http://controller:9292 * In the ``[oslo_concurrency]`` section, configure the lock path: .. path /etc/nova/nova.conf .. code-block:: ini [oslo_concurrency] # ... lock_path = /var/run/nova * In the ``[placement]`` section, configure the Placement API: .. path /etc/nova/nova.conf .. code-block:: ini [placement] # ... os_region_name = RegionOne project_domain_name = Default project_name = service auth_type = password user_domain_name = Default auth_url = http://controller:5000/v3 username = placement password = PLACEMENT_PASS Replace ``PLACEMENT_PASS`` with the password you choose for the ``placement`` user in the Identity service. Comment out any other options in the ``[placement]`` section. #. Ensure the kernel module ``nbd`` is loaded. .. code-block:: console # modprobe nbd #. Ensure the module loads on every boot by adding ``nbd`` to the ``/etc/modules-load.d/nbd.conf`` file. Finalize installation --------------------- #. Determine whether your compute node supports hardware acceleration for virtual machines: .. code-block:: console $ egrep -c '(vmx|svm)' /proc/cpuinfo If this command returns a value of ``one or greater``, your compute node supports hardware acceleration which typically requires no additional configuration. If this command returns a value of ``zero``, your compute node does not support hardware acceleration and you must configure ``libvirt`` to use QEMU instead of KVM. * Edit the ``[libvirt]`` section in the ``/etc/nova/nova.conf`` file as follows: .. path /etc/nova/nova.conf .. code-block:: ini [libvirt] # ... virt_type = qemu #. Start the Compute service including its dependencies and configure them to start automatically when the system boots: .. code-block:: console # systemctl enable libvirtd.service openstack-nova-compute.service # systemctl start libvirtd.service openstack-nova-compute.service .. note:: If the ``nova-compute`` service fails to start, check ``/var/log/nova/nova-compute.log``. The error message ``AMQP server on controller:5672 is unreachable`` likely indicates that the firewall on the controller node is preventing access to port 5672. Configure the firewall to open port 5672 on the controller node and restart ``nova-compute`` service on the compute node. Add the compute node to the cell database ----------------------------------------- .. important:: Run the following commands on the **controller** node. #. Source the admin credentials to enable admin-only CLI commands, then confirm there are compute hosts in the database: .. code-block:: console $ . admin-openrc $ openstack compute service list --service nova-compute +----+-------+--------------+------+-------+---------+----------------------------+ | ID | Host | Binary | Zone | State | Status | Updated At | +----+-------+--------------+------+-------+---------+----------------------------+ | 1 | node1 | nova-compute | nova | up | enabled | 2017-04-14T15:30:44.000000 | +----+-------+--------------+------+-------+---------+----------------------------+ #. Discover compute hosts: .. code-block:: console # su -s /bin/sh -c "nova-manage cell_v2 discover_hosts --verbose" nova Found 2 cell mappings. Skipping cell0 since it does not contain hosts. Getting compute nodes from cell 'cell1': ad5a5985-a719-4567-98d8-8d148aaae4bc Found 1 computes in cell: ad5a5985-a719-4567-98d8-8d148aaae4bc Checking host mapping for compute host 'compute': fe58ddc1-1d65-4f87-9456-bc040dc106b3 Creating host mapping for compute host 'compute': fe58ddc1-1d65-4f87-9456-bc040dc106b3 .. note:: When you add new compute nodes, you must run ``nova-manage cell_v2 discover_hosts`` on the controller node to register those new compute nodes. Alternatively, you can set an appropriate interval in ``/etc/nova/nova.conf``: .. code-block:: ini [scheduler] discover_hosts_in_cells_interval = 300 nova-17.0.13/doc/source/install/controller-install-ubuntu.rst0000664000175000017500000004045213556316250024277 0ustar zuulzuul00000000000000Install and configure controller node for Ubuntu ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ This section describes how to install and configure the Compute service, code-named nova, on the controller node. Prerequisites ------------- Before you install and configure the Compute service, you must create databases, service credentials, and API endpoints. #. To create the databases, complete these steps: * Use the database access client to connect to the database server as the ``root`` user: .. code-block:: console # mysql * Create the ``nova_api``, ``nova``, and ``nova_cell0`` databases: .. code-block:: console MariaDB [(none)]> CREATE DATABASE nova_api; MariaDB [(none)]> CREATE DATABASE nova; MariaDB [(none)]> CREATE DATABASE nova_cell0; * Grant proper access to the databases: .. code-block:: console MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'localhost' \ IDENTIFIED BY 'NOVA_DBPASS'; MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'%' \ IDENTIFIED BY 'NOVA_DBPASS'; MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' \ IDENTIFIED BY 'NOVA_DBPASS'; MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' \ IDENTIFIED BY 'NOVA_DBPASS'; MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'localhost' \ IDENTIFIED BY 'NOVA_DBPASS'; MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'%' \ IDENTIFIED BY 'NOVA_DBPASS'; Replace ``NOVA_DBPASS`` with a suitable password. * Exit the database access client. #. Source the ``admin`` credentials to gain access to admin-only CLI commands: .. code-block:: console $ . admin-openrc #. Create the Compute service credentials: * Create the ``nova`` user: .. code-block:: console $ openstack user create --domain default --password-prompt nova User Password: Repeat User Password: +---------------------+----------------------------------+ | Field | Value | +---------------------+----------------------------------+ | domain_id | default | | enabled | True | | id | 8a7dbf5279404537b1c7b86c033620fe | | name | nova | | options | {} | | password_expires_at | None | +---------------------+----------------------------------+ * Add the ``admin`` role to the ``nova`` user: .. code-block:: console $ openstack role add --project service --user nova admin .. note:: This command provides no output. * Create the ``nova`` service entity: .. code-block:: console $ openstack service create --name nova \ --description "OpenStack Compute" compute +-------------+----------------------------------+ | Field | Value | +-------------+----------------------------------+ | description | OpenStack Compute | | enabled | True | | id | 060d59eac51b4594815603d75a00aba2 | | name | nova | | type | compute | +-------------+----------------------------------+ #. Create the Compute API service endpoints: .. code-block:: console $ openstack endpoint create --region RegionOne \ compute public http://controller:8774/v2.1 +--------------+-------------------------------------------+ | Field | Value | +--------------+-------------------------------------------+ | enabled | True | | id | 3c1caa473bfe4390a11e7177894bcc7b | | interface | public | | region | RegionOne | | region_id | RegionOne | | service_id | 060d59eac51b4594815603d75a00aba2 | | service_name | nova | | service_type | compute | | url | http://controller:8774/v2.1 | +--------------+-------------------------------------------+ $ openstack endpoint create --region RegionOne \ compute internal http://controller:8774/v2.1 +--------------+-------------------------------------------+ | Field | Value | +--------------+-------------------------------------------+ | enabled | True | | id | e3c918de680746a586eac1f2d9bc10ab | | interface | internal | | region | RegionOne | | region_id | RegionOne | | service_id | 060d59eac51b4594815603d75a00aba2 | | service_name | nova | | service_type | compute | | url | http://controller:8774/v2.1 | +--------------+-------------------------------------------+ $ openstack endpoint create --region RegionOne \ compute admin http://controller:8774/v2.1 +--------------+-------------------------------------------+ | Field | Value | +--------------+-------------------------------------------+ | enabled | True | | id | 38f7af91666a47cfb97b4dc790b94424 | | interface | admin | | region | RegionOne | | region_id | RegionOne | | service_id | 060d59eac51b4594815603d75a00aba2 | | service_name | nova | | service_type | compute | | url | http://controller:8774/v2.1 | +--------------+-------------------------------------------+ #. Create a Placement service user using your chosen ``PLACEMENT_PASS``: .. code-block:: console $ openstack user create --domain default --password-prompt placement User Password: Repeat User Password: +---------------------+----------------------------------+ | Field | Value | +---------------------+----------------------------------+ | domain_id | default | | enabled | True | | id | fa742015a6494a949f67629884fc7ec8 | | name | placement | | options | {} | | password_expires_at | None | +---------------------+----------------------------------+ #. Add the Placement user to the service project with the admin role: .. code-block:: console $ openstack role add --project service --user placement admin .. note:: This command provides no output. #. Create the Placement API entry in the service catalog: .. code-block:: console $ openstack service create --name placement --description "Placement API" placement +-------------+----------------------------------+ | Field | Value | +-------------+----------------------------------+ | description | Placement API | | enabled | True | | id | 2d1a27022e6e4185b86adac4444c495f | | name | placement | | type | placement | +-------------+----------------------------------+ #. Create the Placement API service endpoints: .. code-block:: console $ openstack endpoint create --region RegionOne placement public http://controller:8778 +--------------+----------------------------------+ | Field | Value | +--------------+----------------------------------+ | enabled | True | | id | 2b1b2637908b4137a9c2e0470487cbc0 | | interface | public | | region | RegionOne | | region_id | RegionOne | | service_id | 2d1a27022e6e4185b86adac4444c495f | | service_name | placement | | service_type | placement | | url | http://controller:8778 | +--------------+----------------------------------+ $ openstack endpoint create --region RegionOne placement internal http://controller:8778 +--------------+----------------------------------+ | Field | Value | +--------------+----------------------------------+ | enabled | True | | id | 02bcda9a150a4bd7993ff4879df971ab | | interface | internal | | region | RegionOne | | region_id | RegionOne | | service_id | 2d1a27022e6e4185b86adac4444c495f | | service_name | placement | | service_type | placement | | url | http://controller:8778 | +--------------+----------------------------------+ $ openstack endpoint create --region RegionOne placement admin http://controller:8778 +--------------+----------------------------------+ | Field | Value | +--------------+----------------------------------+ | enabled | True | | id | 3d71177b9e0f406f98cbff198d74b182 | | interface | admin | | region | RegionOne | | region_id | RegionOne | | service_id | 2d1a27022e6e4185b86adac4444c495f | | service_name | placement | | service_type | placement | | url | http://controller:8778 | +--------------+----------------------------------+ Install and configure components -------------------------------- .. include:: shared/note_configuration_vary_by_distribution.rst #. Install the packages: .. code-block:: console # apt install nova-api nova-conductor nova-consoleauth \ nova-novncproxy nova-scheduler nova-placement-api #. Edit the ``/etc/nova/nova.conf`` file and complete the following actions: * In the ``[api_database]`` and ``[database]`` sections, configure database access: .. path /etc/nova/nova.conf .. code-block:: ini [api_database] # ... connection = mysql+pymysql://nova:NOVA_DBPASS@controller/nova_api [database] # ... connection = mysql+pymysql://nova:NOVA_DBPASS@controller/nova Replace ``NOVA_DBPASS`` with the password you chose for the Compute databases. * In the ``[DEFAULT]`` section, configure ``RabbitMQ`` message queue access: .. path /etc/nova/nova.conf .. code-block:: ini [DEFAULT] # ... transport_url = rabbit://openstack:RABBIT_PASS@controller Replace ``RABBIT_PASS`` with the password you chose for the ``openstack`` account in ``RabbitMQ``. * In the ``[api]`` and ``[keystone_authtoken]`` sections, configure Identity service access: .. path /etc/nova/nova.conf .. code-block:: ini [api] # ... auth_strategy = keystone [keystone_authtoken] # ... auth_url = http://controller:5000/v3 memcached_servers = controller:11211 auth_type = password project_domain_name = default user_domain_name = default project_name = service username = nova password = NOVA_PASS Replace ``NOVA_PASS`` with the password you chose for the ``nova`` user in the Identity service. .. note:: Comment out or remove any other options in the ``[keystone_authtoken]`` section. * In the ``[DEFAULT]`` section, configure the ``my_ip`` option to use the management interface IP address of the controller node: .. path /etc/nova/nova.conf .. code-block:: ini [DEFAULT] # ... my_ip = 10.0.0.11 * In the ``[DEFAULT]`` section, enable support for the Networking service: .. path /etc/nova/nova.conf .. code-block:: ini [DEFAULT] # ... use_neutron = True firewall_driver = nova.virt.firewall.NoopFirewallDriver .. note:: By default, Compute uses an internal firewall driver. Since the Networking service includes a firewall driver, you must disable the Compute firewall driver by using the ``nova.virt.firewall.NoopFirewallDriver`` firewall driver. * In the ``[vnc]`` section, configure the VNC proxy to use the management interface IP address of the controller node: .. path /etc/nova/nova.conf .. code-block:: ini [vnc] enabled = true # ... server_listen = $my_ip server_proxyclient_address = $my_ip * In the ``[glance]`` section, configure the location of the Image service API: .. path /etc/nova/nova.conf .. code-block:: ini [glance] # ... api_servers = http://controller:9292 * In the ``[oslo_concurrency]`` section, configure the lock path: .. path /etc/nova/nova.conf .. code-block:: ini [oslo_concurrency] # ... lock_path = /var/lib/nova/tmp * Due to a packaging bug, remove the ``log_dir`` option from the ``[DEFAULT]`` section. * In the ``[placement]`` section, configure the Placement API: .. path /etc/nova/nova.conf .. code-block:: ini [placement] # ... os_region_name = RegionOne project_domain_name = Default project_name = service auth_type = password user_domain_name = Default auth_url = http://controller:5000/v3 username = placement password = PLACEMENT_PASS Replace ``PLACEMENT_PASS`` with the password you choose for the ``placement`` user in the Identity service. Comment out any other options in the ``[placement]`` section. #. Populate the nova-api database: .. code-block:: console # su -s /bin/sh -c "nova-manage api_db sync" nova .. note:: Ignore any deprecation messages in this output. #. Register the ``cell0`` database: .. code-block:: console # su -s /bin/sh -c "nova-manage cell_v2 map_cell0" nova #. Create the ``cell1`` cell: .. code-block:: console # su -s /bin/sh -c "nova-manage cell_v2 create_cell --name=cell1 --verbose" nova 109e1d4b-536a-40d0-83c6-5f121b82b650 #. Populate the nova database: .. code-block:: console # su -s /bin/sh -c "nova-manage db sync" nova #. Verify nova cell0 and cell1 are registered correctly: .. code-block:: console # nova-manage cell_v2 list_cells +-------+--------------------------------------+ | Name | UUID | +-------+--------------------------------------+ | cell1 | 109e1d4b-536a-40d0-83c6-5f121b82b650 | | cell0 | 00000000-0000-0000-0000-000000000000 | +-------+--------------------------------------+ Finalize installation --------------------- * Restart the Compute services: .. code-block:: console # service nova-api restart # service nova-consoleauth restart # service nova-scheduler restart # service nova-conductor restart # service nova-novncproxy restart nova-17.0.13/doc/source/install/shared/0000775000175000017500000000000013556316574017650 5ustar zuulzuul00000000000000nova-17.0.13/doc/source/install/shared/note_configuration_vary_by_distribution.rst0000664000175000017500000000046313556316250030622 0ustar zuulzuul00000000000000.. note:: Default configuration files vary by distribution. You might need to add these sections and options rather than modifying existing sections and options. Also, an ellipsis (``...``) in the configuration snippets indicates potential default configuration options that you should retain. nova-17.0.13/doc/source/install/compute-install-rdo.rst0000664000175000017500000002137113556316250023031 0ustar zuulzuul00000000000000Install and configure a compute node for Red Hat Enterprise Linux and CentOS ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ This section describes how to install and configure the Compute service on a compute node. The service supports several hypervisors to deploy instances or virtual machines (VMs). For simplicity, this configuration uses the Quick EMUlator (QEMU) hypervisor with the kernel-based VM (KVM) extension on compute nodes that support hardware acceleration for virtual machines. On legacy hardware, this configuration uses the generic QEMU hypervisor. You can follow these instructions with minor modifications to horizontally scale your environment with additional compute nodes. .. note:: This section assumes that you are following the instructions in this guide step-by-step to configure the first compute node. If you want to configure additional compute nodes, prepare them in a similar fashion to the first compute node in the :ref:`example architectures ` section. Each additional compute node requires a unique IP address. Install and configure components -------------------------------- .. include:: shared/note_configuration_vary_by_distribution.rst #. Install the packages: .. code-block:: console # yum install openstack-nova-compute #. Edit the ``/etc/nova/nova.conf`` file and complete the following actions: * In the ``[DEFAULT]`` section, enable only the compute and metadata APIs: .. path /etc/nova/nova.conf .. code-block:: ini [DEFAULT] # ... enabled_apis = osapi_compute,metadata * In the ``[DEFAULT]`` section, configure ``RabbitMQ`` message queue access: .. path /etc/nova/nova.conf .. code-block:: ini [DEFAULT] # ... transport_url = rabbit://openstack:RABBIT_PASS@controller Replace ``RABBIT_PASS`` with the password you chose for the ``openstack`` account in ``RabbitMQ``. * In the ``[api]`` and ``[keystone_authtoken]`` sections, configure Identity service access: .. path /etc/nova/nova.conf .. code-block:: ini [api] # ... auth_strategy = keystone [keystone_authtoken] # ... auth_url = http://controller:5000/v3 memcached_servers = controller:11211 auth_type = password project_domain_name = default user_domain_name = default project_name = service username = nova password = NOVA_PASS Replace ``NOVA_PASS`` with the password you chose for the ``nova`` user in the Identity service. .. note:: Comment out or remove any other options in the ``[keystone_authtoken]`` section. * In the ``[DEFAULT]`` section, configure the ``my_ip`` option: .. path /etc/nova/nova.conf .. code-block:: ini [DEFAULT] # ... my_ip = MANAGEMENT_INTERFACE_IP_ADDRESS Replace ``MANAGEMENT_INTERFACE_IP_ADDRESS`` with the IP address of the management network interface on your compute node, typically 10.0.0.31 for the first node in the :ref:`example architecture `. * In the ``[DEFAULT]`` section, enable support for the Networking service: .. path /etc/nova/nova.conf .. code-block:: ini [DEFAULT] # ... use_neutron = True firewall_driver = nova.virt.firewall.NoopFirewallDriver .. note:: By default, Compute uses an internal firewall service. Since Networking includes a firewall service, you must disable the Compute firewall service by using the ``nova.virt.firewall.NoopFirewallDriver`` firewall driver. * In the ``[vnc]`` section, enable and configure remote console access: .. path /etc/nova/nova.conf .. code-block:: ini [vnc] # ... enabled = True server_listen = 0.0.0.0 server_proxyclient_address = $my_ip novncproxy_base_url = http://controller:6080/vnc_auto.html The server component listens on all IP addresses and the proxy component only listens on the management interface IP address of the compute node. The base URL indicates the location where you can use a web browser to access remote consoles of instances on this compute node. .. note:: If the web browser to access remote consoles resides on a host that cannot resolve the ``controller`` hostname, you must replace ``controller`` with the management interface IP address of the controller node. * In the ``[glance]`` section, configure the location of the Image service API: .. path /etc/nova/nova.conf .. code-block:: ini [glance] # ... api_servers = http://controller:9292 * In the ``[oslo_concurrency]`` section, configure the lock path: .. path /etc/nova/nova.conf .. code-block:: ini [oslo_concurrency] # ... lock_path = /var/lib/nova/tmp * In the ``[placement]`` section, configure the Placement API: .. path /etc/nova/nova.conf .. code-block:: ini [placement] # ... os_region_name = RegionOne project_domain_name = Default project_name = service auth_type = password user_domain_name = Default auth_url = http://controller:5000/v3 username = placement password = PLACEMENT_PASS Replace ``PLACEMENT_PASS`` with the password you choose for the ``placement`` user in the Identity service. Comment out any other options in the ``[placement]`` section. Finalize installation --------------------- #. Determine whether your compute node supports hardware acceleration for virtual machines: .. code-block:: console $ egrep -c '(vmx|svm)' /proc/cpuinfo If this command returns a value of ``one or greater``, your compute node supports hardware acceleration which typically requires no additional configuration. If this command returns a value of ``zero``, your compute node does not support hardware acceleration and you must configure ``libvirt`` to use QEMU instead of KVM. * Edit the ``[libvirt]`` section in the ``/etc/nova/nova.conf`` file as follows: .. path /etc/nova/nova.conf .. code-block:: ini [libvirt] # ... virt_type = qemu #. Start the Compute service including its dependencies and configure them to start automatically when the system boots: .. code-block:: console # systemctl enable libvirtd.service openstack-nova-compute.service # systemctl start libvirtd.service openstack-nova-compute.service .. note:: If the ``nova-compute`` service fails to start, check ``/var/log/nova/nova-compute.log``. The error message ``AMQP server on controller:5672 is unreachable`` likely indicates that the firewall on the controller node is preventing access to port 5672. Configure the firewall to open port 5672 on the controller node and restart ``nova-compute`` service on the compute node. Add the compute node to the cell database ----------------------------------------- .. important:: Run the following commands on the **controller** node. #. Source the admin credentials to enable admin-only CLI commands, then confirm there are compute hosts in the database: .. code-block:: console $ . admin-openrc $ openstack compute service list --service nova-compute +----+-------+--------------+------+-------+---------+----------------------------+ | ID | Host | Binary | Zone | State | Status | Updated At | +----+-------+--------------+------+-------+---------+----------------------------+ | 1 | node1 | nova-compute | nova | up | enabled | 2017-04-14T15:30:44.000000 | +----+-------+--------------+------+-------+---------+----------------------------+ #. Discover compute hosts: .. code-block:: console # su -s /bin/sh -c "nova-manage cell_v2 discover_hosts --verbose" nova Found 2 cell mappings. Skipping cell0 since it does not contain hosts. Getting compute nodes from cell 'cell1': ad5a5985-a719-4567-98d8-8d148aaae4bc Found 1 computes in cell: ad5a5985-a719-4567-98d8-8d148aaae4bc Checking host mapping for compute host 'compute': fe58ddc1-1d65-4f87-9456-bc040dc106b3 Creating host mapping for compute host 'compute': fe58ddc1-1d65-4f87-9456-bc040dc106b3 .. note:: When you add new compute nodes, you must run ``nova-manage cell_v2 discover_hosts`` on the controller node to register those new compute nodes. Alternatively, you can set an appropriate interval in ``/etc/nova/nova.conf``: .. code-block:: ini [scheduler] discover_hosts_in_cells_interval = 300 nova-17.0.13/doc/source/install/controller-install-rdo.rst0000664000175000017500000004274313556316250023546 0ustar zuulzuul00000000000000Install and configure controller node for Red Hat Enterprise Linux and CentOS ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ This section describes how to install and configure the Compute service, code-named nova, on the controller node. Prerequisites ------------- Before you install and configure the Compute service, you must create databases, service credentials, and API endpoints. #. To create the databases, complete these steps: * Use the database access client to connect to the database server as the ``root`` user: .. code-block:: console $ mysql -u root -p * Create the ``nova_api``, ``nova``, and ``nova_cell0`` databases: .. code-block:: console MariaDB [(none)]> CREATE DATABASE nova_api; MariaDB [(none)]> CREATE DATABASE nova; MariaDB [(none)]> CREATE DATABASE nova_cell0; * Grant proper access to the databases: .. code-block:: console MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'localhost' \ IDENTIFIED BY 'NOVA_DBPASS'; MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'%' \ IDENTIFIED BY 'NOVA_DBPASS'; MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' \ IDENTIFIED BY 'NOVA_DBPASS'; MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' \ IDENTIFIED BY 'NOVA_DBPASS'; MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'localhost' \ IDENTIFIED BY 'NOVA_DBPASS'; MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'%' \ IDENTIFIED BY 'NOVA_DBPASS'; Replace ``NOVA_DBPASS`` with a suitable password. * Exit the database access client. #. Source the ``admin`` credentials to gain access to admin-only CLI commands: .. code-block:: console $ . admin-openrc #. Create the Compute service credentials: * Create the ``nova`` user: .. code-block:: console $ openstack user create --domain default --password-prompt nova User Password: Repeat User Password: +---------------------+----------------------------------+ | Field | Value | +---------------------+----------------------------------+ | domain_id | default | | enabled | True | | id | 8a7dbf5279404537b1c7b86c033620fe | | name | nova | | options | {} | | password_expires_at | None | +---------------------+----------------------------------+ * Add the ``admin`` role to the ``nova`` user: .. code-block:: console $ openstack role add --project service --user nova admin .. note:: This command provides no output. * Create the ``nova`` service entity: .. code-block:: console $ openstack service create --name nova \ --description "OpenStack Compute" compute +-------------+----------------------------------+ | Field | Value | +-------------+----------------------------------+ | description | OpenStack Compute | | enabled | True | | id | 060d59eac51b4594815603d75a00aba2 | | name | nova | | type | compute | +-------------+----------------------------------+ #. Create the Compute API service endpoints: .. code-block:: console $ openstack endpoint create --region RegionOne \ compute public http://controller:8774/v2.1 +--------------+-------------------------------------------+ | Field | Value | +--------------+-------------------------------------------+ | enabled | True | | id | 3c1caa473bfe4390a11e7177894bcc7b | | interface | public | | region | RegionOne | | region_id | RegionOne | | service_id | 060d59eac51b4594815603d75a00aba2 | | service_name | nova | | service_type | compute | | url | http://controller:8774/v2.1 | +--------------+-------------------------------------------+ $ openstack endpoint create --region RegionOne \ compute internal http://controller:8774/v2.1 +--------------+-------------------------------------------+ | Field | Value | +--------------+-------------------------------------------+ | enabled | True | | id | e3c918de680746a586eac1f2d9bc10ab | | interface | internal | | region | RegionOne | | region_id | RegionOne | | service_id | 060d59eac51b4594815603d75a00aba2 | | service_name | nova | | service_type | compute | | url | http://controller:8774/v2.1 | +--------------+-------------------------------------------+ $ openstack endpoint create --region RegionOne \ compute admin http://controller:8774/v2.1 +--------------+-------------------------------------------+ | Field | Value | +--------------+-------------------------------------------+ | enabled | True | | id | 38f7af91666a47cfb97b4dc790b94424 | | interface | admin | | region | RegionOne | | region_id | RegionOne | | service_id | 060d59eac51b4594815603d75a00aba2 | | service_name | nova | | service_type | compute | | url | http://controller:8774/v2.1 | +--------------+-------------------------------------------+ #. Create a Placement service user using your chosen ``PLACEMENT_PASS``: .. code-block:: console $ openstack user create --domain default --password-prompt placement User Password: Repeat User Password: +---------------------+----------------------------------+ | Field | Value | +---------------------+----------------------------------+ | domain_id | default | | enabled | True | | id | fa742015a6494a949f67629884fc7ec8 | | name | placement | | options | {} | | password_expires_at | None | +---------------------+----------------------------------+ #. Add the Placement user to the service project with the admin role: .. code-block:: console $ openstack role add --project service --user placement admin .. note:: This command provides no output. #. Create the Placement API entry in the service catalog: .. code-block:: console $ openstack service create --name placement --description "Placement API" placement +-------------+----------------------------------+ | Field | Value | +-------------+----------------------------------+ | description | Placement API | | enabled | True | | id | 2d1a27022e6e4185b86adac4444c495f | | name | placement | | type | placement | +-------------+----------------------------------+ #. Create the Placement API service endpoints: .. code-block:: console $ openstack endpoint create --region RegionOne placement public http://controller:8778 +--------------+----------------------------------+ | Field | Value | +--------------+----------------------------------+ | enabled | True | | id | 2b1b2637908b4137a9c2e0470487cbc0 | | interface | public | | region | RegionOne | | region_id | RegionOne | | service_id | 2d1a27022e6e4185b86adac4444c495f | | service_name | placement | | service_type | placement | | url | http://controller:8778 | +--------------+----------------------------------+ $ openstack endpoint create --region RegionOne placement internal http://controller:8778 +--------------+----------------------------------+ | Field | Value | +--------------+----------------------------------+ | enabled | True | | id | 02bcda9a150a4bd7993ff4879df971ab | | interface | internal | | region | RegionOne | | region_id | RegionOne | | service_id | 2d1a27022e6e4185b86adac4444c495f | | service_name | placement | | service_type | placement | | url | http://controller:8778 | +--------------+----------------------------------+ $ openstack endpoint create --region RegionOne placement admin http://controller:8778 +--------------+----------------------------------+ | Field | Value | +--------------+----------------------------------+ | enabled | True | | id | 3d71177b9e0f406f98cbff198d74b182 | | interface | admin | | region | RegionOne | | region_id | RegionOne | | service_id | 2d1a27022e6e4185b86adac4444c495f | | service_name | placement | | service_type | placement | | url | http://controller:8778 | +--------------+----------------------------------+ Install and configure components -------------------------------- .. include:: shared/note_configuration_vary_by_distribution.rst #. Install the packages: .. code-block:: console # yum install openstack-nova-api openstack-nova-conductor \ openstack-nova-console openstack-nova-novncproxy \ openstack-nova-scheduler openstack-nova-placement-api #. Edit the ``/etc/nova/nova.conf`` file and complete the following actions: * In the ``[DEFAULT]`` section, enable only the compute and metadata APIs: .. path /etc/nova/nova.conf .. code-block:: ini [DEFAULT] # ... enabled_apis = osapi_compute,metadata * In the ``[api_database]`` and ``[database]`` sections, configure database access: .. path /etc/nova/nova.conf .. code-block:: ini [api_database] # ... connection = mysql+pymysql://nova:NOVA_DBPASS@controller/nova_api [database] # ... connection = mysql+pymysql://nova:NOVA_DBPASS@controller/nova Replace ``NOVA_DBPASS`` with the password you chose for the Compute databases. * In the ``[DEFAULT]`` section, configure ``RabbitMQ`` message queue access: .. path /etc/nova/nova.conf .. code-block:: ini [DEFAULT] # ... transport_url = rabbit://openstack:RABBIT_PASS@controller Replace ``RABBIT_PASS`` with the password you chose for the ``openstack`` account in ``RabbitMQ``. * In the ``[api]`` and ``[keystone_authtoken]`` sections, configure Identity service access: .. path /etc/nova/nova.conf .. code-block:: ini [api] # ... auth_strategy = keystone [keystone_authtoken] # ... auth_url = http://controller:5000/v3 memcached_servers = controller:11211 auth_type = password project_domain_name = default user_domain_name = default project_name = service username = nova password = NOVA_PASS Replace ``NOVA_PASS`` with the password you chose for the ``nova`` user in the Identity service. .. note:: Comment out or remove any other options in the ``[keystone_authtoken]`` section. * In the ``[DEFAULT]`` section, configure the ``my_ip`` option to use the management interface IP address of the controller node: .. path /etc/nova/nova.conf .. code-block:: ini [DEFAULT] # ... my_ip = 10.0.0.11 * In the ``[DEFAULT]`` section, enable support for the Networking service: .. path /etc/nova/nova.conf .. code-block:: ini [DEFAULT] # ... use_neutron = True firewall_driver = nova.virt.firewall.NoopFirewallDriver .. note:: By default, Compute uses an internal firewall driver. Since the Networking service includes a firewall driver, you must disable the Compute firewall driver by using the ``nova.virt.firewall.NoopFirewallDriver`` firewall driver. * In the ``[vnc]`` section, configure the VNC proxy to use the management interface IP address of the controller node: .. path /etc/nova/nova.conf .. code-block:: ini [vnc] enabled = true # ... server_listen = $my_ip server_proxyclient_address = $my_ip * In the ``[glance]`` section, configure the location of the Image service API: .. path /etc/nova/nova.conf .. code-block:: ini [glance] # ... api_servers = http://controller:9292 * In the ``[oslo_concurrency]`` section, configure the lock path: .. path /etc/nova/nova.conf .. code-block:: ini [oslo_concurrency] # ... lock_path = /var/lib/nova/tmp * In the ``[placement]`` section, configure the Placement API: .. path /etc/nova/nova.conf .. code-block:: ini [placement] # ... os_region_name = RegionOne project_domain_name = Default project_name = service auth_type = password user_domain_name = Default auth_url = http://controller:5000/v3 username = placement password = PLACEMENT_PASS Replace ``PLACEMENT_PASS`` with the password you choose for the ``placement`` user in the Identity service. Comment out any other options in the ``[placement]`` section. * Due to a `packaging bug `_, you must enable access to the Placement API by adding the following configuration to ``/etc/httpd/conf.d/00-nova-placement-api.conf``: .. path /etc/httpd/conf.d/00-nova-placement-api.conf .. code-block:: ini = 2.4> Require all granted Order allow,deny Allow from all * Restart the httpd service: .. code-block:: console # systemctl restart httpd #. Populate the ``nova-api`` database: .. code-block:: console # su -s /bin/sh -c "nova-manage api_db sync" nova .. note:: Ignore any deprecation messages in this output. 4. Register the ``cell0`` database: .. code-block:: console # su -s /bin/sh -c "nova-manage cell_v2 map_cell0" nova 5. Create the ``cell1`` cell: .. code-block:: console # su -s /bin/sh -c "nova-manage cell_v2 create_cell --name=cell1 --verbose" nova 109e1d4b-536a-40d0-83c6-5f121b82b650 6. Populate the nova database: .. code-block:: console # su -s /bin/sh -c "nova-manage db sync" nova 7. Verify nova cell0 and cell1 are registered correctly: .. code-block:: console # nova-manage cell_v2 list_cells +-------+--------------------------------------+ | Name | UUID | +-------+--------------------------------------+ | cell1 | 109e1d4b-536a-40d0-83c6-5f121b82b650 | | cell0 | 00000000-0000-0000-0000-000000000000 | +-------+--------------------------------------+ Finalize installation --------------------- * Start the Compute services and configure them to start when the system boots: .. code-block:: console # systemctl enable openstack-nova-api.service \ openstack-nova-consoleauth.service openstack-nova-scheduler.service \ openstack-nova-conductor.service openstack-nova-novncproxy.service # systemctl start openstack-nova-api.service \ openstack-nova-consoleauth.service openstack-nova-scheduler.service \ openstack-nova-conductor.service openstack-nova-novncproxy.service nova-17.0.13/doc/source/install/figures/0000775000175000017500000000000013556316574020046 5ustar zuulzuul00000000000000nova-17.0.13/doc/source/install/figures/network1-services.png0000664000175000017500000051645013556316250024151 0ustar zuulzuul00000000000000PNG  IHDRsRGB pHYs&:4iTXtXML:com.adobe.xmp 5 2 1 2@IDATx|Eg]){E}W}$ Rr\](ڐDEWW_{{W@Per%ʳ\vwv晙3m 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&Z٪BÁaL \W P`U=dL&p~N%}|>m|=g9ci??)S,yĊc#L׼wQ;;* Njń^FGRўUƅB; P" ]ե00N~[O(O(_w]3c䲖 [[H&sLr꼧Nx CIo [pnhG(4Z:Nz(ݶHi]8e ϐ쌸vswlڎ}}[%N;?OZws}(/CpR+%dB}n٧LpW.[o*)ԃVX}Pd?tK-qtdyw+WR-sSu./pk:W(cyx@>/KwHM!-k]0o eׇoǥ3&v<lxicu$ΥKz ̝PjD%b1iS=4GY;$4i|~Ή-;y>CZ]LvP%æ>{{pSM_2@~+a;kVw8rMNs? gç% Ӕ9sPZ θ%%8I=6VhB.^Kc)|Azη0i1ʫ<055yXU̝SOS5[42riA^maCnPiqsYM (NYA5᠉xuGܲl2;Gem>&|Th_G6{Ni>ϞΎMu W KM 켳ș??KWValp{敷(C턼l/%Y#rq 1챹ʼoȗ=n]<ıGN]Hh4R Mq8t#z>āUϿň+5FDRa{Lt:gOŸaxGXjV"^PXQғU.I4!/vF\}[:Wq)@xvm{f_yM!S yy }Lg%DƢ韠7a0NM c454 *V+l~ 8G%>QaIӔv>W\Pi160gOǝsE'deqc:B1˜=/`Q<4RRChQ >9Θ[߃dYgPY@C4ވ^6[a&yTlz5FG h,AR>ϝiT73p;zesw@a?Hހ~fx/3GӴa?)yx :1=nXJ܎' Ay[0zM"!zDz\ޥg(ʺhJ2p+]iQyx + '0ǯ!.qFzHL9帡p>.0go2_"S4V.lX3x*n]=#d+U꺧^5гsozC>?v@)z r!V#h')=HSg`[OO ]yϱ}FJ5}}GV]² ﲼLLh6?g-Az`mT^]gV|TXGkMQFbռ>qB=P=HK1,@Cr?^SH{ИCHXraQlKZN B(Des|iU?'D"I}#'q커h4Z[`crC %LѿγeryPmF x VhƳzGJ @;t&N\}y4^[!Ngi]pE 27 C{΍Ms!?<&xG F(QU7 뜚nҴtTS0MMSVF~hxz=KaHߋkr4/{%K*@tp-ØaxлebrPZ#DuzOr@y*/v~m7T~5O2OޱBE%kJשÿN'wt/5J Y3NK8\=v@X^(/O3F{yW[*'7H'﹭:Y[1J_7 y,>Z:y3oM fI9 Iq w( Sը`Ўԃ,*q+ eFcY ~Y?*!y: n7ˎ@=C7= '{t8첌̨R 'mN GznO5 SUTL̃5]APS EV|τ) rc7L|-)s(:Q\8 "UNq;1{s?YL)c Nun+=nES#lk$;FT93uȌ/] y=;~h9Li,R!7S=HX?dĒ/7+A E_wN/Ww/}_59nW; n n߻T_7BZCoy6DѠ0XҲȴ+8ڼ%<:|q.H1@ٌwD*pNMLaO(QOH/\2:uܸrJn!M>Jfnv+&0cFaO@CPc=>3jht;M1ʖ#ei% :yNg@HgKT+ $9=C t3(gEwG| yS1Es"92"V6bq$е{z h䟄]]E< p%qC`A9pz㉴Qo2db9|[IL@^l]iQP] BWP}Ĵs쮱*%;mی ܘ.'sZ˾emmj Fn7\B Z;\* J{$/U}kHhpQ#Q^n*7዗\J胺 _؊캡kCqǗLMD(9L As+=2 6CdFm+``+ :?EC^ԋz:~R ]T5!'WY3f_ǓF2zw~)uF?pO * d%`IAbBS\(Nі_b+aM%;8_JcKĬG8g}";}cpT(3<ydIwc?YU+fs=L[nHAZGO[pé@ci=@AÔ9C/Z# !=yhϻkߑ0Mi}!^}P>俑H-ACK>ȨWw)qE B ؛xg(Xba.cnN8nuؼY +}~o§rx,Ec0hO{]V.Φ߷Aw/ֆ捈c`Ҕi^a?-\f]<>S6>-D{~V|93Z3VBJ`)#s/z?*iyp*=vm¨ U)"Ӽ%~w)eڕ k=J4)l<*f>_oX'hE?E*hNu')+X\3*$kguۉ8alSq!挝WKs{^"7,'b3b*~YbЮ4.G>DQ ȝJω4 ٗ&M9W{NkcJ&,ԩ?8͙qѢԾ\J<(zcz|bH(DoYUW9EpFOuJN?Ɖ(/> LR}88lV tvj LS  ͨ^FxnM>W"bD3 n ?ʽ펯@k##-E8<)!t*4 չcZ;90_ 3-NUBR&G{*x#ѳ&zw&%>Nؒd(G"^Q ے&0 CLl݋ cٍg <Ŋ`M*y*44X=xXH3лP,n}0Q)U[6WKĝ):AzDc x.ޕ1\&gԌi\ڸFp]ާw14ZZ5$4W,2(V=L@c))Ǐ k1T JEaIWCǍ]^:)(1R!w}|S%#6l/41JwzwҤe.C;lzUb(|Z-V6ZmpCv9" MKݍ Cly2Ǣ0{4veJAxN7矆Jph8 M_'|0LQy`8Ζm!ӵ.QuqRԿRt!QOECbE]sJ1 ߐ?*p>)> tnfz]5Bѻ)[5`7:uX9є/(6~.O;HS;`F<؋>7gGݞys1r0 ,L8$]KUpm ,j Jɉqʯw]&eU^֨ѬVuA2_O"JiWxkl䀅SmƁN(s\qy-+5&F`wC0@9]76oDK[PNå|9\zv \gò2F\|Z5 VRh|DjrN[1bGhߍF~ OP!mfJ7240aw^ F/ܫh^. dUSɨʺtEvbzI5;R9cK,6M/a"0q!5ћ!in mFω7'Q1ׅd EPxL Kvfِ_Gm\qb !~ Hv < yM8r4B1.bP>>8.·!HOB7O |>\HO䗺JCԀ'9o )r 'JCV +_!/P^b|;'Oo@y} %+,;ZN˩hAMp_719XW[uehå7go>4;PƶWJ{E/G בg;ko(N!3~y>7&o$sMɲ(+*Yo+C[(3֏?/ƇZcQޔ 3.hI<ђ&'Hiduf&#P/Cw8r1;3cR(Th$X%Gi޴'PVbVxwo%n $w1~P4݃vK8| "{D_߳{|X}I/Vet6J&E@&TYACF]hPaRC>%h't05 h[ԝ[Lv啾+}4tv!(7w{+L–s0[aە kS+8ճ裟r!(чCH?dik_4$~"|E:3܆S4Yϰx=vއaGxgL(̼_Leڹ0< _Tuꀜ=&Yȋws[Z׋tH a}L#Yj~DSkFSgڷZ_1=v\A9^ח5Vp.bYp5F1V0ꮡ]xjhez͛*0rx51 r MDŽ^eZ?"Z9KF@ MS>o~prO4-ОXWL<54o龮TjĪoZ+ƭ{_bh#l9OVK_-yzfvHfi&`mFF+¼0Ej*RXЗ1J XI_9{q Oej9`+1U9NLZa]]vǂ쾈614Ӥz`O--.הּDPO&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&N 0&RI@w(6VFGRv2“C~ɸcL 0&RETd9L sD( t_B珺w]7wԭI_چ/( Nn3PEcÿCוjJ?X6`L`G 82&9sXs^&KThͩhP\uxCib%M(y>g@{lj 0&Мh6o5JiڕyW]T ZovM`E-'" 0VCV&4emKxd"~FBO*u2dﮤ Ta?ΑhɜizRq8t9|Pbo  ^_*447aXk3BG q^d܇Mú,ʮy:kҲ/ >=;\AѸf EcU$8KL (AXCj6y2ţsj8}.nGe+Y4 ,"+$*n^=v E/}jEs?\ٜLYDF *1&@xd~Fl 0&P/jD Dcx^ź-+[~w_y-nj1X<~ק@Z1JaYsp?}%t̐KJE0—oݵڳtX1HoAp7U`*@gr+,51ݛ<}Dܱ&MG6bsaS&@JJP(n-oYi8s0ȧ.E~$|ãGE`ʢjE,cDb m;ƿ?ӚLI⎹ d$^Av [~C# aO2C@B|r˴u Bvvj$F+^q)uB%% 0&l4?s 0vLs!zeK6ROml ; D1<($(;N37 'R9F}׊*ɀ_u'K6k^H%bѓ5Mk%̝?vBYbO(3b5ţ,=xh0snbqw@ J =ʌo`L ;&v UԪgbv-|E 5zAw1]⾧kC1u e 5 #GeFwgHak]&Z1 ߅>)P M[-5REFWC-|>{޴l:sL 'JhH&H=V6Rϔ%2& td{U2_3`-v_ EAՖpz^6֊5@/~/,' 02(/8|.HN~[O!˺>_tI/b(W/.Ч؁3}! ڙedAz޾$U̷h|`!P=d! 0&b(3Ρ'GLg4j_qx0v#,%psūxGjeQ@ϩ15+Z ^фS}êT/}0c.mbLb1»+.0 ]({Jt|hIYVۗr5FШ6#kΕIS`L 0FU7B;eL 0=h"ofeRyVKٔxSY5_vN :”Rݒ L]\:,UVs.aT\%fj%m|ga#Ç%q<^bƕ27T"_F'2-VamBYb 6_.Ov-*VF7 ޲Z9^Ǿ,eF4Y!CNe'>nޠ|&J3`L 9</I߮،EW(z OM%^ACFeRֿjeZ/eb+v̱Gg{݋n}*Zc5`L Ce,L 0&*cg!+Ζ,[c}Bt}WXyZI{챮RqA[^瞠ؔᛤѽ"\.>xBSH4y9eL>xVHօC|ީ_.yy>k&@13`L 0&`Q=)R_p`;$^C&;G 0&к qRg`Z`L EQE͙`LE E {`&#F`L <*%zvY(<,&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0! FlMcsg 7-TVR]j;&`B(!J%gyaa"b5.m=fXB\&CEgl;6G-ȫkHxP=&MsmBkkR]gX)% Q%eL 0&Ц E臣胺#4&u]}9f\iyͷUJZ \,dؓD?3B([U~?RI`ΓM& 䝂!#R>CZh\&h?Κ*TJ]iS}5ƒ֘*-֜wfNT[ f % L^fc)l!Gn0\ NRMJ%'k\&hc0cbčy;[SkMѺҚnfneBZ!`L Sɬ@aT.磊9Tqtdeb8?)0++#086@Vc鑙34LJMWX@AJM V4ϔ%0&@Mv݂:_WTUԴLw\5vMKE#O;r$+$C5a4O eͣRUJ u^ 55xڒ.JXf5fNV5/ k<9^L5g3+YFCkhCHya^>SWgtJ*%NY&" e%6Ҷm(Jjwo"F>uU%/]m ))K,rXfS5#xe'mɚ(/pC/™iZVA0yCc`)Ɔ`wL Oc_X/ŷ3Oh[Rږȇk>mu6H uJ/EZ'VIugPjqStQ&I %*\֗>y!o{ 7G 'DΩX а@TzRb:X;P . V&uLքW n{y.;{`BdF[K ,Gy(7:QN迡=rZc,{8'䣯BXV6R WV 45/0@(O}/gq{a OidFnҰ+h7v;b' ]@#K+:Ke\OM&v3*nB|4Oh, 43@YR_ ic]]$ᒓe%N))SfL3˦-h_` E_6qdQ(QM- ҵ+m9gnNtp~pp[a/I'9f 9j&%*m;= /IΛ3e[ 2=^)9$ܗWnUT詸#.DQ⯅y̧v:Ul`XZ[P8Þ8H׵bcp/WW + Gn DhVc6 |qB,r/lu4q`tdvn*[\]ee}({(9GVntEd$\r'o3Uv PFϧ)TNkbjNGLZB}w] 8} B}/|p{D k"gŲ3{}EyմϜDSqޛ4! +9C9 ѹgOQ~0;w^OfU=?afc%=3WK..Ca@\VVRjA0w]7I^*%zOeHCFt%BoʧP &YL .f5Y>;>Pb7DCu/^x!!_󛋍rn7^ZTx0ŁD?ydsZ~eiKAϓ 9 bGe#\UE8#9b k!so)*d9^ViA@* KYx?톯M6ր$v[m5My.OMQ/wǠ Q)>H,ʫA(g0aXuShF݅(x·aF5e&VrW*_@_/2EƩ+]L0Ƶ=e iòΎHœL>;kVrcoH-sOK{,L3ZYgGS$#lXOɶC* r멈fI|VʠiYxV)s̗dWX>՟^ع2G@ՖAx-BG/^y . ^C[6מ;!X|%F2C&?J^Ig)A1xy{ ~5ޣ:a!dAa"q-< e~ޣg\/mhsi&%ŠQљlQ˹b"1FX5JSWWZ5Ye'f9{ݫ,%ϺwQ[h&3p8FT% -if/l{'ઑ!uJƒ5pZ@v o#+w`\p0:UzPO!1 Ļ M0ӴQ{r7v" {P/LAiz`|Rh( RQJ(wDq])aZ߆kic/cmȿSZ>7sr̚ G9T36`E K’eBgz@Qpl$Pwl@ݱsYU񱂅WƧ8ǀKiuf,u1N{kتOVi803I@SLEVq"2SކJGjX'儥1bL 9ޞת0=d@Ӣh92B;t6yCb"]y1KJۍ&JmI) Z0mBOuHvW 鎋Ls:qH%C2~2u*D#?Kr2 u2c*c;[{S[S;ݛv2Fnj ]&E"{Fȗ?13mOg/tcv ٠ݸ \F8>n* 2hG+:|ݖQVLzA̾/ޞ"\NS;&NTTa=r;b=,^]A5D0Q`1pO#"J_7?C7v9\ʲnEJ }$XSgR >%}gHp~Ŏ\LS2W#<p>ZӖ*DiweZ[~/ 3Xw-K(t/?%'1J]0FqvZcXÍR=~v>M;Gx^jOsjyG6j*47 9/h,S'ðf=Q+)LL(NC`Ox9_<& L!Oʚ/諈#)D@TKc{ixe!+)?WBh0d≅( M h4*yDQchV/@;"@OVS`x7գɼөD0I( !l)hXg:[⎣eHj|]3<e{ICuT{'(Oc-QG =#6;M}ҁjL>+̛%sdG]G]>`-k$ .b͇g;ͨ*GRB\h00/pO@#?%oZ0ބ\vU:M10ۥ 7 /xhfzSq4Iz3L1Sif uA' *v]2Z#w.n}w#8Xz;]׹wpݜs>goC" Zc\+0-UPon{Ԫxɼ-gyNT&_ xʝmNqΖs~FZchgc~Ӻhi<~Ds>|F;.n4dx'XnPn~/?%BO2n3淽".0RweYKCAf| 4 ,PF3 7He^փ#Lӣ_5w5OJkSk F{\UmƼ=7YYMdҔg2M1Mɑe3&@8GG2t*\|w L0ZEꛨy? C&Ϫ:V4E`:(dSWc t;l=84=(oMbe#yf 0&@$GJC[}ѧ#YPSB~g)[)N)"'~VZ Χ#]ȗvI QP6nZ橈`%U?)DD6-%VdP¼5?ne7w;0Bif o bXJ 4)DVn(S)g n9.XifMI@u0*5/,siH6HT)R"!ք\ira} ]2:Xݻf>%ifrS[.ZӴ6`.OE08bh1N9llak`Ueo~_\cWO ؏ |BR_]зM3sC=fec&J2ʚ`z˜@ p>MV""fas˩ 3:lߡbˌ鞦姄 W/_#>]~\餫W7[4GJҨ%4mHemZ*5dp>.gםh⨃ٿD#j >h`ٙ~oEo3M]4[푧㧍 )QL+˚?7qbE}0rxPr g?b\*(-X .h*1 Rփ^Fٳl7r- ,H;!?WE5ZHq< vB{Wjꅂ'hsgNE==BmI$"#Bz۫.7\~ P46[m ((( )-w٭>}M-#|8֨P3 +M?DfnZMow1+7^q<=DEMJRpN.9E٭>pCʏV0(|Z.{PB=20ݛ/ 5:Jqu}q8n=4pBGפhǰ {a*~¯Y:K'd́P(0(%` Xe@Z|:fFt("_<'BR(4!g^s{Ѧ\ygA$N PZN,mWOדU884nLR?{N2?`wO5j ݘ VD`])WgF~BGS|R۲>V5.sw=פ: LJc=!RxΦ!Lѡ[PvHvP!|(<{@?KhM cY=.dQ(|[_o';~MU[ʧDW4U4|ӐWOݳ'ni{)7![CU]s2 h_(M)m)53%C}eiD yZŖճg);bm@zODyQa %2Up4AECLkh?fؼ.oLt()>+ txZK"S~e[p? ;Qۮ E;75 =@OڎI[ʧDUilK3gT> 8eEۡ AweҠP6ߘЧ죸hPRG{P3:wyx m'iSdkDZ*[H`ɕn3{]!eG1*.[ޮt֤62@~Eg|A@_;8J>O{-O}i=`+u69#3YkljLu`ZVN9#MS`{-B'iJCd }gC-SZXs!tF7j@*pwA'JXweA'4n@D6P7yč ?Q?Jݷ޵*ꌢ+l p~XH{kEyϳ̇_ʃpmf <=kJ>-ԳJO>`cq`4nO(oFlDִҼѮSM >v4G~XC]Qe:.U?dG<rនG]<ղ;"9Ν;u:wt`UjGєq ,\cG?4G۽TlH nYR)m"/P8 D4M㷡w-c˅AƸXO_ koQbގ^)9fǰF@[ɧFi0գbΒ%4uoڛMsp]%WBacKm9^>]5Q!6:phiܘ'?}= [gf]SU m(;}O>wxS1KQEX HIPj^|ZPNr קDdw {5PJE-emFΨL >Uw7zGwO=Lx:<̺զ ؞PIEh2lbȨl#h!b[8Y8h m!ˆ4łS\`gEG@!YivCj [ЙhZZA"[K͐,G]֮$>gqƑPZ\x!W^_,me_^!Aة@ P71`!gG˧PƚJʰ@2U|x#p.( ֘@R-?`FM3•:|@aq ?sݻ}0? }^G[n ޏs(my!:|~ |jop`:1bP`DGR&[0M" {S*I!e`5zيUb[i׫8!{G:Uq_=w9apm J\}{_Lx/gDc)|1G۸UP"aM~_ើ@i_VR2"-:GŦ%̿;EKO[r; ZJ}O'ߺ>Oi"ƭ:^;u03:7eY%2".>C<Ҿ_n>l!`㥟[^?CwbϿXWw%C|rҷQv萦*ʆl)x;{r|z`"4h-5x/G#͹X]ز:HNm9ߜы_K(!nʩ RdRз3lRr<"qI|D߃PsV%:LdC<:(/n[-IĻE"{ ?֋ċȾ |?!W P+B)2II қr<}9smDrB0ŭeIWoamC#z~3uТQ!#O66ғǟ,1a"5=C?sA l?R4nYw4X%]J!˗F?8wp·'E7e~b}aeqgW9|z,7cv#yB(S@pC !Na|f*;LPry݀81U߸t*> `xO%dD!ElDNpI%vH$?Avʸ:pBuj5Y O)TNxE1E-d;\!l8!'EEN-BDmLpmuњŊWEb04Ԯn !|Utl^_}kW٦vCbƽu#:BeE⇡n-k.<#Uڨ2GAӻC3rp]ڨ9K70׹ص5sb Ц]/<T[\M&B:K>tPILWvDC$C.qB,<4SzZ6XoE;'5?.4P%}C]O56b%E2׮QU`q~@R$\I&hhڳ =~;gAa(˧p=3iqQ0" MQ_wHS!^{lto4`?Bv=SDȶHcGnwT.2 4wiil D., %[5ǣE _׊Fu"$].B =蹇i,{ہb!CcF-GsҌtW470``@'nwbvs+"A<.@|4$@nirO-JXY(4+cg*5?0  (Si߼̿DS`? W$MآپֳdbEVNi%3:KK@s 2&=5=z+\.'N%ha}:Y0nnrJX--셰@-ADxEѴ^t{BT"@`@id(ÁcEKhBqd"id`cj@x}CTp-# B)hRP%c|[ h7 ~R˥Gi/F (2҄hCUily>Ps)##}w}{ @3{Fj~q4U5!nL:39vXtPPh1{k16'HM5RAz#lsDo}Ѩ8(5k՚ I i.F S˲sh%΀Ep76܌`z 2bP"5lfBM%͕*(M]*cUJj:d@I *!RӄiѺ]"|p:) #CD3#d("M Bd hbAp}>_tnPU?+oX{@6\ ;!$=%z> z? ovo#Qjl:x4ںFT_P83X8wF]pq"94s!覮&X݈*" + 5F4db *xZ6Z=N 9ٛo8WhiFt%U"{lt<;,h'e σ8)^@I >3BUK'5e F˩Ш\mp (\Q #/]IWo3ԙ7hG0iΫE \[QU: j 00_+K/{ KذLzdFa+GUȕ.={GƯa!͏<)נ )0m8OG\MVtBת^vo9QhlUbEYhhF ]P^N&釱n!1oV)0W)\*p9IXwi >!A2Tt+jg1o&XMW`/s{wj TP\ɾ|J5-}x.hq_-8;phfg2~?W]<0QCшfa`0[Ls0 w#o1Ź8y AGrH tV2V)02$o ywd!(͏†8[PBT+iX 6K7SN}'$]ъLV 0,i Φ,g9t@ plX4Z b9#pÔNKctF(ǁZmT{lwDAU^҆b&9'WiFhasۼ~MIw?#PAs:p ˠ΀- vcVclLNͫ`>%:~s ]&KPQm%$  ? ̯CZHgRAM[H\q{0НhhͭhN({}8 2nܫ#7Qb'n(&ln}ƒoF=Y&4 ֦ "08ru{oE$MMҠ92v|+Z#x FGp2W6\A&f\ wǦjsYY7gAsU~l>ˋ}:HRhtFݻT (4yY;̵34J&LGD!BC^ yi5a4mn;vЊ(oD♂Fs3JKw hC&}l4)dNB((&cȲ_'tn$@W׊#AQ /֑(u>x6~(Oq ` ݝ`^]dn;G!>DE['FDnC #Ѽt[8 =:SވJFg=T[sRd1z%)Pe3g6p^DЄQ 9_i89>T-&ڲqTUs>)H8S:$fw[O8*[l̃lK:VL]Z[|MjBly9kQlt^'3\.=Gwޛh_py P yyq!$t*3@O],Uo6g( :e1[3t8-[;pqϋ#PҦ߀p5}QO"6dD0c?VVn})rb46<41@/ϾJ3d2HMȷHzGW>qd(94xh^#8kB}:7E=ls{c|I1%6 C|0tuu\QQWa c=`o`E|ՁVv(N;d% xİR/O w@9u}E@x)&"O,dڤmFAF NsǙzx{G(\E$-fx9EFbTW|Jn\7##{ F,_^m ڽ PUE E)lazA~OaY&?%,8Ќx&$`7nk0p-3 3jKJ5,sS^?M{uhԇm+M`ЩtϧMRIas_;cPj㮖D[nzj\(DUVES ^r*A&(bDє0r|zWN@ztjv>L<,9/#z+a5e%+1WbCV*#H|{eB,0,A 挌kjٯg.J{6Rd'}|:wvAu{>d.2oJлaeZ\RW'=oӟ;E~KPpȌ>}Fz8 :3AoޢSCذ3X&shΕܕЈё}\YQW!0&;NX1kru]LW=g~1z!hĝԑmo<_jOI/x>"‘h0-+V)aC/(qvȩ&|4 #t߱-ȨʥX&O :u|[tǏ60|voXf1˷ WӮ!rK-qn a6"hs#r%Ѡvul1izzjֻxndAO"xdt&c=c_4 4[C<fhLm1"ش22V.X'`$6+F$plcH23qor,vF+_1;sI"T&4!=ڈ5u8֪=F Zq̯2oDi:4kk7/,w ˫K1Ţĥ+cbGf/Zf.81>/Sj=݅fL|c/t$lX%jP,,sD kwA?-dݞ2 ӯsK1w};x`]t*vqE'n\b8ls9MalYܣz=49x7!eHtj1Ź7$8l0Юi]LR0v0+)7 bDMĄ;Iab-GLqXh"J0a:5z Q_Zŕk"%-]:N[f51nxOI=U/$b|L*؊vS"!ca?zb㞣qB9 jXշ}~b|w3w'nau5' gcڣFf젮5-U*IxAv*b }x*T;?Af(ltn@շw[3^:pq'گm͢$$C{-ƟcpН{Vl/]x)}(!PW.uW4-58#F>8OZ,~[~04?Nԕ'VR#’qKԽjx_$3Ɨs8^2zGa #}gf &H fv]nj$ 2[6+ևp+^`zUF/=mq0eWu˱@Ф^D ti%jC Uyʌ^t`IɝڀYm߼$b!h娡 Av=G-XֻWf>jLDJjhB9zѮGWhNMZA;0[Bhn*nDUY~d5TŽPyMA ~(vlY_Wi;R\@6࿅^hӸ.5cg=BçV."LWZ%71҇<"|jǼcҬjVfyjM (;xsC* [Så7 ]) 31'f{Ps)SV@(^5suN?g B ێ?,VϢQ&T x[>8 ~C}-}R8ESm2xL&w4SPs(^,ZK$&][EYeVvn 6B6P0:=~$NfR(JP^GU `/䢧}q98b^5CrҤa {ons+Mbgr$`3KA%UAL=c}:8}ewbxg<}G303鈛O& PP{م+ד-@>}N ~ՠ }hlaŦ\ӟ#4vmQ\ (g_e?LFŐ@hH!fQ 9}z L -cAL 5jt †'%5F?@C(} bˎ]z;jeXUt&]H`raJ%;ƕ@IDAT%TfT =Ђs??/- H C-2BKd P˅ISph5Z5#7w.8rc˗IQ.4τd>iLQO)7v<>wfssΔ{jSI>ka8>#=270t:aǦٹ˿4[s'#I$Ɵ f*/07c ViȈ(jˍ*DFƌ?ugP3y"t v4&6dîEm/O^>c21=5v7K̿fG[sRx)8&39iU>8n:B9'<VF;7or7#|D>XNC"1>~GxDX1+cl/>Xn7 cvZ"à΂AޟT 0V9ǤTR5r?b1]Jzݳ:+`'ޯN%S i. 2ZkҀ% կb S+j^hN$chmkMZ8=skmuH'{/gw0O&m)肓yU[vta[ ~Z<>f8@8%=ڊAXI3/Ecf 77,3׮:(aC-TtX?I#aC+PLFI4ú t̘>eM;S Ƣ^Wm9 /ReTтl޽Ч A Բ08 4[2 ҢAmYF9kq0 1 N~H)Щɒ oX.NAIf gf5: #No\"o+hhѾ|ut}pU}뽇M u^d]V@ Jа-L'r&ͣs#b _-jo >OGaē'>Ƿz٨%>Ʒ :< LxΟI4w]Ty2pj?ю1@HzEN='ĻVP@@-MbޢIje`aqo():u%̬5 Y7)P11X[/>>V J }05_Vn\ի}Be *"}\_yX?lR=yCդ$42Ϭ;grܕW'cI0̹j/ oAۗ\CtдN⵫W3s9+6GGj0u{<&˕`3$Gk/ow[ݜ>\p;SAfK]ݹߦo| ފuc 8|ؽi'))콆bHe>΁]e@N]kԮ{V,}.69d|մ-fǩqU-RpΠvC^Zj< \!.\*G7tJPwܸ|%awFķCE4*-%#@שQsEmԳ޷=U*RZ & 4O#kXOѸK Qb-3Jկq', arM82$ɭ퟽yB5L6k>E2Kۼb6l5y(GY{ a|?]y`5s_z6+ vVlnY|>o5Զu2y繱2ɒ {dD Dv+dt- xILWԢA^9N8o༹w'L֏W>>ee;̫}MagN6͐in|kRqm;5MedX"<>L( "椏~={ՅN 6aJ6?d6Sf֭ccx2vPW?_@ ptc~ZlOQ~JP dPFAaT\&-9摟׫IOeEw8(#x~7uڻdl;8Zaex-4zhzW%CN\Qj>b&MW{(#23"nbsE)l(f3Rعπ3.7Oxŕhca +^Ψý`/eT!::e5YCfqb)aCQi5d& J#>(Rs{ۋs٪ M gZԮY=Q8?isy˵_\)Op`Js5PyܲRH-gV#|rkk4-|PLvF`(Q"a6H49biQUH{曊AɏfohXL;#nqؼLFLCl3H% ʩPu`6S:^ ϼA)}vԐ 3hD %oFvьf^Ð2Vl{d9SB%Yp (xł+j jZ\i}F.v)Ze΂q0aǻ6?~ زzy-b6,;;k 0bP 3:µL 3a#` SNŮڰ䏥iiW"y9w#à ҁ-`R ~­r8hڨ@dbjj6"p2qWb[Y0&r̸?c78Pؠ& BT?i%`;X@a?wM;bOJ[`mlY6[86mm=Q`1ѩ|Mm{h%evh[Cvм /XDОme1*W)8PhD'prTQ>\? 5l5]۶ Ҳ?1%KMb?jBnp)esgk ش^fBBV 7#ΐ9##=rիI'۽_#"@FB9Ja,6p!}5HTnp[LܬN-CτWk׿L|7TLj 719HXu Y"񟝝q=ڕ)N>n.dqޠA9eFŹ:f8.s82[H` KQP&T,eY~:]`„eM9iTTrc z#h(P؎v h͹hT>h80 0m?1ĺ`\Ȼ" MA\a&9ti))p9Dkh;)>, mO>h30P 0B/na/ىRCFf #v׶]bqLFqB sfu cM [2d}aV% J >X3 ڹA !;Ķ8wHaA/MH^gsQmڭ7qP†:xsn)Z @ [\&͗{Z4[:jvAL6~\][V{L*P{b>(ݪ a{ B D f_Z$L%e7KmqN3 1SJ0|DXp>RgǏ E"QPB;8>|LCL~ZǢ'4?1W ZDIS5)քJ!m.ؕ? ?.$M'b*U %] |ӱկgo2η*}2CS^ԯUMG ͢hBbRh .@Yӣ-O$Xi;!@ Z6 Ǟ{~e=sYN=C`Ї]E5"BiB;*aCSp<ǽ'mUs^SQoQW 08jDt}%ۧv:)敫iRqsIq`4f ڰ0b^aE (^b)B #UԤm 00Pl 3}bW=%l(S1a+h( Ɛ7QXQ0+N =Um8.P(C JS9):uQ=!~ j9~nyJ)܁0J}0N[Upa5ridmG s#69"nsi]=װv ᬥj2cz&u-gԳhR}:ڐlsX_ fxf}:4q oW>Y&U M6QgL2Խ(`K+E_]&ԼGM ./>YE1 Z}T8 152Ȭq^]羨`GQ1EodTռbEs{ҧEܣ6c Wx*ǬCՃCls06? G1n5U"cEͶui:ؖÿ| 5l\(pBJNL׶y~3nZ2/,Uz<-lS~8Si?Lc 2f j^v9m9ulw~x])!C]S{c JL L}'#r|=I^+hh 9?-Wcj2~8*o\y#;ICՕ<7&i$gI~`f41]ڣ7Y5{|VcXϗѐEn1uM\"u$}eʛVIDOUs]FM%ĀEX̔ ̖~~~?{}Vq҇Gg9{ԗw>>ycwȝlIFyb0g ~丱erk!|Bmb&zf|M\ Eu*ܬ]"i5wfIm4dn/ n |Pׄ'743+E@ 骞dN;玃ۯ {}ʩOgS^ j`:H//2BrǧOQ73ƏYDaԯOg~ ӟ2gEL@30t$3'_I]L?3PKW|N}>%nD5c^?O6i#м鍧w˸A L<t9:m2K7FGdۯɈkRzPLT^_Ša%}=C//'2.%_N5 |%Ւyz,=4YY,2KkFI3%i(GDʳHjyyV[qx6ycaEfee=CFVgT"У߼s>#lNg>yz=-ljVx%d8kd,/k,X_ _}^V09vԢ=L i/̕@h/ydTӗoNA~ =`thr--|Jz>2! p9sXKz@?>K*6 yS:'`صNdE_!p+Bb_F\PptjAK FCcrsI"Z%*Yd3"l]'$hRd,ŐNvY.83 C8/\KNщ4zB #whϺʕ?BO+] nq[klM`Ɨu"* j4JRʃ1"XCf327 {"7t[66gg_ϒbW/nb6_ںvE,҄Z,r>&%_-F㣟QtkD D#DE \*|[w 0gc`ȓg. pXNtW,>@>U=!9H8,^o',Aa5i:QoA0Bڙ>}MG `VRl+W+iBԢa:ew1;-)z;A*[0[z751LVx~wgn paFl:}oW?=>OCq]U`dBqC2K1a2Lӯe mkz鄩ӣ-O$lŹ$gM;v_~l6V}@hHm?|_ݰ +Lu,Ǹlߒc1N|de$i!|xJ JظnႥ欬difa@Ǘ|5b~?o*NI oMiTЩ3^%D*BVAC[1?ڲ>.*3&s%ǽ>ת\{sn˶m\w3*bTtS/ &|<\<-x 41(L-- GX, 1VLHKK=fw4`p=uk18޴i4mfL2Ad"ө )q  B;:=`v+qx;f?N >D|l h=977{~fK1؇T ~+8t9~KC_z|=2r\Fa;֭qd_ż5C"xr\9y2j8i0T/#~xNK,8p ͫg s[&l#F$Ûr]%;p~!b~rѮY=ڍv,f-(MLwO{HrPD-ZGm药TURQjXK ޮ^EP?t>w_{m˾cpF2N-h/88zzz}tT.';IׯJqMNI>>JԨRU7deg#B$㬘Kq .X7-OTpzhF0seb75itLFI݂UXOnRKfmi:EƱ}?-y6ͧ+aCi6e$<=Щ; 2 jaAdJdsں@}E+zņ~ZHfTE\=,7`Rd4''"+!nsh)vsbGGC-XS3 ȸ~:wxi0QBN(7g}^J!˗PmAfR)lpRB9AAwÜeSwRfIWos詯3g؟OJ%#GN_ÀCy%iX L!i{\L<ةWP>K4%,0?Æ2Y)׭fG̚MxM o^РS7:u!L!JLjX[/;DEFɝXN jU?L,LrZ`q'}dFzQ.9%MP2W{XEUÐm2\DACQ`;D_;(]Na6+F#1 ?\KDx12$SI"voXA= hEjazwt)r%e[D܉3",$XthK;ՙt3prB0M-hTE/DIɐ8q/4\;4+8^t .zM\ѪQmq5 2(ȾZILWdzuj"g/^PAF Ϊbu""~U玃ɻA %~5,~\ Q2,⾡X-ViRG,Ev@8\{NMO>i'{?aJIKnЌfpkջ 8QKaWo 1q۠!}zY )aŠ X\23-τ}Mq6,ciZdj 9+N4Rǖ̻j0.C0TR.N9DV,zwl!wa־c$j4WkWIlhׁBFD#2u7yu({2R`0f"VHo95Z4/<8D ?1OsBlUQ; &Mwun!c4ߙObT)1w3ɏb(uaصX󐘷r5 WiVX,c ?;(@OHFEb2Y5DIk}(M= cZ-M۵>A O݂w 3iBу[F/ЇSJAUj6M-ĨwS{2j5(LPpA:ǙBzE:6Tcָ%F>n Vl{D_G;-Z[[,#b6fUH H\7:}C`t(P#-t Ma Uit?v:׸MGj[/mOcandT]oj,Q ?iWO G&=:=j($+-ݸǶ)<(/4EffjKU?IeD ^KMH0a2%@D;؞^qn8 })n&sO-Usq#x!1S t@pK} ΀з$ٜE:7s=7_(ϻlM0G`|ẇBmR}8ՃVSo]h~E ƯPaq)p Zk65ǓV`0WF~N%lh?j`4G -;nRkAQ}JfYFߡ34R)`=y66h%8iWa#B):aT]uѡ֞&26{j@t+qR|*Wh6~b %!һcSLMIwDڡ&kY 2F%g.t& aCMj/3*աfpQ@U /Vc O2cH5K* #۔6[X|ݶivTNZc$jfb)b$* Ee[{}"Df\ >E"@Q9p^aep?ݏ:8W Z&Uc2\ Wi4:ǑǐTi0W׹E0G-]NN|>mҖJ''O[fL҇\`42d<cϞ?i:sGzJ-;4ybpWd!jt8zgg8G&$=:VB~pݾ(- %+~lIa0ז:=878 (HsZMXa߆@!XM)E-I4n >CD4FrRm[,{oއ.b]b<60"D|8Bҕ0y]j^`QsXovN ;h}!81̵5To9%hF J{/ 2rwgu1Wa4rHgageY;Qj+xyѹߠ&[V.I@}<)^S\p4ŭfЬf>Bs?C'?v?ڿ|>h0$hF{)\QCi/ Q]YGA΄ "j7rlUw@Gj+EanjPHCrЗ^{)!{yy8oL vF(5G#_=yVyv/ֹe}RA[K_i?r8@w@>+̕[ӎ2S0[N zgOުI1 U]:5[Q:*LlK[&Щɒ!-m?~| {%3Kc_.ZU_Wn'iE?zoqOJ-T\&E¹K'YyQiX~P4SL{^v'];An\Lo٦8c?Ci$"sѴ/CjRlǻψfnQ})?L?>5(;),"= ?B͈Ǥ~{t$K3'_I Rb6~g~N:Mm i`Nu>z_F"9\3-<>DVcguk)%۾yCmvy4%dKOԱE1U{jC46!3υ=t0b\Q^uĎRp^>l8rsZU$l ja)0?.Et-(Eǽ0y_`-fs-h, a}S&!wk딂 H9|Zlw&2}6;G^ȗoM]e0ԗG/ﺤSw ?\nr8hŨ@0Pb,5p5-oB>/3=BfzL8Js-2s>!o~m]G^(|H^-(/ύ''$~Gyw)@{ nQݼ3?3ފ^|Q<"LyL\ P!r%"NK/xa޵ kN}e Oѩ S Yl'3V:x+W`@j:^9Dk؇Z`ޚ aBE_*=`D:{X`wˢ*ΔF._^kPQA Ɗ)s:LlɈ} T׋ڹǾ'5M;h`0]0 Ԣ|ydPc 0yZ?n@1m=Щ 0 "y, dFZ㦋Ix 0#Va+x] 6Ő>?L3a ,ݸW&dVIC&i~Vo} |!99˼?4:|r4g'[sVX9xfeg9Ü0tf3҅-ns2>X-s? '\\7 hXۤ=G-`q'1.477 rJӭbө'/R<sFƵ]0\*=WCK0UfXfܨ##{JH*Xvrd#n?WUzd. NJЍ| yJG^e_9?K0ZcY ̶K*]0[@nDz\)tf Fb)p^s%h(4xt3'7a8bE CL|h ;9K2g V!mRQB% DI rA]d+*JegbA\wۼ< oKA(*T/c(T=BQsEGfn >z w5ah4`]GFulX=NOz_N5鍷]†/]GPc`4cO9KqT(>>Яu fsM0?#hVѠvui6UÇ%لL䌴Bz#1G!vx06d'"cxDi><763!J 2-y14@.0qN&1<\FUi6lW7#тĴ'F/Hz]n$*/dқ aKz|/ro֌lٻĥ+cbD"~:J`( >gTGl^Ֆ٫ߙ&4=kZ Ge>qef%W!CG*{\\G} [1SrBnq\k5 Su^ .bcŷ.l[շBIU5'2a3װR< E3D>DinWm >KsHH%!J#1w';gtɣa xF}u,Feoh#F>8OZtZFkzN%lufԽjx_̘6>~UDnQKd} &dfa+Z،s>rڹ#S=0t=hEZUZ5"ÜB eo{HxkjHztIL"Jkk.ȳU(,N:=)o]fT?{&;Cl˥B{a=IK6ʨ4>>i|| h.CcGqQ18Hzm'] ө䁳xyK +huhYM{65c4{| sz{|gK?;֧mbp5nxzR4l @IDATw1.Ŭ])*U `A{mzQ^`~̫z(EZl7][ ދG ~h4W7qfTCeniR:woN,a)X#_`B}4N͙ S(K*5^a$ʳX1:ш+'K-tnHٶݡΎtI Ӟ-=o{4YvH@a93\T  `͊WS`uΞ Kpt8)2qƉT{k"(U( z@A=')te co9w\Kjɼ~/GPP*2ƾ(h(~nyto6"*W 5|RR$^@k81}D;xNFo/~Eˑl.Ҏؓb#|")<-X}GʄA NM .YHj$V*"fŖ؂aڴqeƨDĠu4asHŐ U}@oѰKGeA%H}Џ٫[i1[v##3##!%=D_Jބ4ٞZFhTY0_:텂*aA΀U tЏ2S*[}zRuXojk,;Bnd.IE+r9rLJx1@DzU+4 ,W (c SE2"m-xNPV'ܘGӪE}eFҴYݿ5x:yp 0zy=]2A nτ/$#J\-#EY~DzXv ,$JGU\|7#`ҽmcѧS YY`o$SؐM)0_6hʴpX~># 1" W9/_ο!A}"!%>/}D~iL(L[îY<~N$8cl:q$n=4 XOƄ?i8-7̹LjƼ*[4gҦ*թ޻ QjKFՊWf&."un!̱aj.kg4cT3^H->!Z/_/a|r+Yo{EzY$3fDh66; &ݡuv,Yկ%PQ ;b ( ڋ#hL, #1!RkHb%p^2w~ը2}0+= .Jg=<" 4 h61gҷCg` >a&MnE(vwԝ?-+WlٱӅBT;`|2̵aQ||>7{pOɕTD7g[wĞl_ %hpo^۴eѪ689{VN_J} s89i}FK| 09C?11J)'Q/-]ڶĝUa1XkW⒤=K 0¹b ls׵`c(c&}p^&~xN# V .Qko6sb@V6 ԂPQ|c1w""UV{Zgbc ҃7W߀`5Q2pjfjm5@8L<trQ::iw["V(4.*&^ S󞣀:,w t@wUڄQJv40RQ@K.mR=Ţu!+; Mm] Std$;"ݹe4c_lBGm6PSB?ǣ/Z-S|pWo<^-""œnXpØ]Nc`輸 |?6 qP~p-dkܩ03 ii){m|z^ yޫ۲r|M{0eߩ\H҄VA$ڵI`hF}ǞmfTُks%dxAHI'$܎hἥ.uֶ]fά~Q4 0EtmU!m{>ޅiGa;e )(l+M]a*#E2@x "9<6Fc]~ u&Odĵp?6Өl 䈦uшHPG>×r-2$( Agi^&ûj(u$|DU͟W BsU:YȜ^`/vZpAN%nsQW'?9PP@VVV~}[mAp0Y^1d Zs;1ɇ\3?áght;Ic_ |Z"] K]Me>&.\w n^nG C҇cK#Gѝ`L`rM{jP^2V&]~x멻eY3f/ct&,Vs? apuBX"!ƀ){d+@ =~3".ψ߅5p$Ok)l{Y As[ %.]uR}cOWvLaoP.Z0~x|vI)':-o%P𓙕mJHI3aL u0dge^Ũp)\PРwIPPfT4KW(#`ڕQm:hМ`TCa*TČz,3"#+ĬLG&]i٢ii)B%m (@ y?yO`l UWGYFܯ9F(6=" )a6wH?Cº@-2_I (?4 X,Eࠒ]:@3w&ay5'ދ +!<& ]&ENo)ۊ]w le.Cf!9q^Ҥm55hR!>$<Ӕ}Nrb"o(*VwQ[|⾄쬬djĊSMÆ2zfFRZJSG;#\# d$i&̨8 #mpWcd_>7iѨV-BJW(X6_7^$rq1;J{EڠAw =X>;KZwNqdw ۘ#h"IjIJ~)̲ue#1 P!GäQ}EhP:j >q7'Tm~q:x|51KmlW4zR CAPZ !qS$Y|\3?w}2 <ȜPwn-qΝhC %lk-I.%(3c؃#TI#Z~JؒF(|*Ag{Z/<:U=;?NY U&]e`}:8Hz3@y&O͇j)0A2`XhA܉Hkg.&†Byi/Z1 & .ā+Ai*`bz=jY1d0Z\Y,w74J H2 C 5߳63U@Ȉ`0S.h(yYc6HJJQ4b>PD άO? ĉ~_5>tp+0_M{p Mn7px6_8E'F0hԻ .#?Oч W6Fp34) a(mHOhI80nCp,Þ6]EFiX+†Qڢ~u82/(#;hD*,c@ǀwcO.%ES:(h(a}AF%w8r5~_G0(C1|΃c(T^҈N0:xq9 KE'QQ?@R:87YΪ3kk)lqHe%Ծ_QбP9ٮXfe6ѷCSD 1n-{zz^׼:BEIwCx1_0}gI1>@Fel)짧Ia}"@&C8QKQYJP̬O'Us1pcɬ5Eb&̣'kUzX/U Zmjv|QD/Nǐ4gS.-}z# }ߔcŷ_=160@3&&,#|ڰrX2hZZ*?Q7vH].s(Gr>y|nfow4V{ -8(>x|@& a)4[nХݰ6+ps_VnNMDń=EYpv,\K {Z†B2d@Be,C=>eY-eaė‰l ?qxpXbtB (ZPEm2"=Q Y\\];7\k48ЖsRPk9t!Cah2L+~I=hZGa7]XkI̅kbx}M5-ڰGv2~`]*hُ"Vk2o,d%lEiD@V2&#qlL\@%`'D48܇ >$pogLn9.ch\ 1AC>pѷj\NipNM`7̊|uSzx _WL_9;Xߵ<"#sOcI藡C1a`G!R9i+Y5Dv4RPj¦S<4L"g_!Kҁbr8`yV fZL~]]V:| !%d[69$zm"~ZEjXCxMEgVВl{>R&7ARߩZU*@#XJ_#R2$&КS'b6"# mLp\h0y d.u i1!)͔g4ޚ8mF<~\d"#S&3Bu(2^=Q'Kge'L@PIXDԬR1t]lwֱE3_;Q 2_`3:DK;̘s=1mFogMH[t,:x5Bօ!qLbO Tw(m\ J>[G?o{C?QKJIjw{)SEkJCU\i(Y2@imJ*ɶ<~NFL9S[<-(acG qOjĊ!.qEΙ& ]Fbr?ow.$c>صe?7? [՛իn"[6n::x?0),cLr䄯ލ\. > 4zŽMј3TujW1ui@thV7f(:1``>fHGߙ˯?r>s0A{ڧHnYOy2g`^vMkKS.p?dp$i3Hs4#ơJ2VFj_vB%?>ΎR{k h@A^RIGg %) kT;:%.?좉=:{ ݮImYERhsI:a³Axz; 8|Ǽo'H8 ";oٖ*g/&+o4?A(p84x@i'L9 I\?+;8+mFa--sk -v$$_gg?P~mt@ ]Se@P94"rLI0 L4GѤxbokO>'ԶXK*@rX(4! @ iVn|5)Sa >Hw^d.m Oҩ' 㯾MP"1 WF yiPn7m?x S" _IL:}ڠ;^fV:+wgGC`)FBV`/_g/{oD|I<:SFZL5oo yOtpm&A{ʖ1P0DseJDI *I0鏺X&0rI'z_?K'0m"XK* `Zм>@H2 K(( !M=7=s GtR99/ߚ(͢ػV}.h87*Ec1oSӇOt[24#CF*Uxj[Ӵ4xCBCxph'7̱[I8iD <hV:maRECJв /KV k3Uʋ0?-!ͅƖGE܉x5ʶ1J22өWd@ZmR+xF}G;6H\)Q9 _O`%!9Uز_\MLѧ>"&Jq62՟;2V2Պ0L.\RI}+QӐ$GC7*[c:' >Dl1 :}cL2i5k ACy }l޽LG sgoO_h}ȡ~FSBnm pah8{詤>@Gl%$;"gJ I̗(\hxqzV6EoZRI˶hdLKж K^8 TLlh|Xi7YAŇ| G"ǹ^6γuWGU5`t::ZNdfXwݟ7qa.lw bsb!#}W]G(}ٿ3`'Ǖ{"O[>wIDx'M}/|_ :jq\7r]@A Df [/=rSSkLʼn<-a]l#&c[q=wɨ-QjE1aDOQLx5YF-._'He^+X70kmJ`R V>)M_fB0?ݬq;M8_|Z 6f5 S>ZqN5ȸ.D&C+pBkEit֌-2rO,Qpbc' "̨Hyn] F#CƵĜ%DXLea~JbHYIg\g CŽCՂl@1_GWI屑H|J0%ţHd ,v~G;jU#bqTHI Р.;>R0s$(bGȾL'Ic0,l?(;DC+b.x"(=ۈA`k {3f!3 QA/x`/R2 -R7dqú &}"pL$D'lP0?ib̐}kҍ12+l*@#=l73&e՟.FGaڵq9A4΢eb |qnmO Ev$OW1QP~[Z$ӣb53Smc'uA{(5]LfӲERlSH¡ i@So[]5$Ldt1>4oJW<';Ƅ$[3NhHӸpn{I3Y' @-I22brZ%7_{h(ֈ:U]%x(P@XfNͱ^ɑ΋}"dՠR}+΂ d"&bJCeCP0v91u2 NSдPa"&R@v˾rAC}}n;ѤvYPiZ7\ kwl 훊Y0ksE155u#4(6bS j=!,O?pdfea>ԜaSZlRj:B 1:HtV(a?'6{G-HKcm\U}vPj0Y&3#s ءd!xS$:z9'cjM(xR(&з H_+bKOY, 5wxKL=s8wfx;8Z&H30?VP4ɶ*St:Q.Sw DjUe9dEA 4=Y F6;7>wM&@!h+ <~N"YNre&!97E ܴN5mƹf jVIkAm r ͻ2A+?|߾} RVW&eI\gCJZ7c1 X>4o{w5)EԂ4,߷?ah6tk޲bokOy-_KJEnqMj$B-"* O(hƣ.hƑyà gW\JP== jZŀ#jpG\_P` A0mQR€C+j-ՠ`A)uP+F^:zI.I;|kʶ]†0չ(m߽50@&AуbC[ |lgqTeu섯r@ڽg%TV׫^\$]yh6,g X\4ϲ&u5Ha 2iGT>7yS !\A )`FoK b:ŤQ}--}x.(Dh.(h0`op|+OV ߛVae'u^Js-򴹠Muok Q;}&ަԜfkҪ~LmQ}8@F4H "v/KnyB18/?^u?Bp&dt: =gk8p1OKeiXpe7QQ} 24i >dd]Zf}fHnTK~Z B߿o{8Jgb{3:χ X:+3supg_о[_‡78nRCU)0:~K7~TM-imq&P; @KfsQy_|ma9B' V+6Z:@++s5<diZ'o`Fg p1 >F4*\OUg5W"ŕ:żiqKAC Snl^u!1Вx ,O{сFt|`rJkͨ^ED.j7N}"Bɤm9g:b6҇X̷V ٓ30Lkw]e2KMwEIƞ-{{/>2D ?޻~D^ E99Mh"~3i>zQ!uM/d?0AůC6 #۶IWljU[ex_KZ [ڂgn`i Ͼ:fS7cw@8xBU]\$} k}+!#;YkWǙoOB8P-tnY_PNq*&-T<@ɈX2 xamyh6.eL˾>#&P@ow3%襁0+q f8td Hv)eo cw*)lq6c"{ A̵a6jJG^MlVB RkE KaSel>w͌[̭#R} TH,>pAHֻۣXN}w4N}RbGt "J%w:m&a4Wx``: 1#ԯQIm0m&NT%X,&na4z[c&)d:n'iE0E8vr'zWI3j6{j#irpSwטe2Sh־5B^8&X_H擹uÓ|A#1`)h-EIDeEWf1 g2Mj+7{Alk+k)hv4=k[t ?DysmUiZ_ϋzM3}4ܶz9EF /OaC ^l@o8:YroѶ#?"M |whW-3FFFk \6>"007L՛̧9ƹy}6X.<6ǁ^^MQ$ڌ(h}-6M>t ByF;fZadypXUsnNpfwh@'a%1$B+4!X3u-UQa4"$CIPnh;L)SEX4Ђ#vJ"ܳ^ջ|ҩ׀dט6sÓVpԧCSQ0/8Mݑ6N1oVyg5M+7Wޘۯsd"Ǟ ~\Qڱofaҵ;qHnF) L1wC Zni([Ʋg1I A!&blkIiұ6E9h:hN(W&D /9[A\r#g/?b{S-1WծI-6屈_FU8t0B֜^0"0':Ҿū~3?ߢ& (p)(O~1A Z=iS^2<hNpJA}ӺwuK7hҸ-2m?x S" _I@w4H%.y:,,8#zby~_޴+g_ȯTѩH$*H_;ƌ-ψ/HөY91pV9s`:e0t{ v5FNň33o(̤!jP@sTUiT !J론mZb[>Pq y,tz5eapi4Z#f޷]GN_}cgM's!H6N"Q;JG`[{}.ԾX rhi](jc!Ӯv]y A%Jzcw2肆/ mxr\9~~}~ Cq9Z=?j$ O>:>rWIn~N[5 /~f Cdr=B> kR&JǥkQc&94Ij>nɬE2eCBXl[);(_173J<=_QCy&[B  C>93FxAj˜Af S8 b/4R`[ =vN`A^X,+_'F(hk 1c(T=yEV ^,Yع#-\ A:r@}Fj!Is<#>BוMWںd.2oja͂('w7PlT\^j4\6o4V+ KY{hvc;DžąՈ~_?Bb^w6lu83ԡ4{q|s 5)`hZ,gdxW3LE{O?ȫB\>_ќ>~Ю`IbX)ճԬ<94[!A7b^-hS{1ɺ]N0 ,˶ۿdR;r!>ַOF~m[xb:8 3Y-^7TT-UVV>԰Ă;†sZiOjӏy7%}w5]bرoRH=}4tlѦS 3xߗ4l+R|ܫGCh |=/6?~ixd(px#:N9I5}7 Lk^{ z9ݰ*pL1'[S+>'lZBZAC[>#0UJZL4oA`uM2jBD w),l[bmC=1@歔Bs"P Ӳ-үh @M7F7+dh)C_Ds$=09c{ThJSItMEY~Gդ3'B15 GThH'"oWO"{.gG&Tlw Db{b-H<2`xhp %6Ed}4 `"j5yhaS&D59{柍{m A*Ə ʲ v|onM˰)V Lj{6!?;>sF+ꤠ!8)3E&:qydS<6f4<00$p<|NM447۷B2z|0:D*ۆGqN:휀EBkr0!;$辅kZ|$y~;#Dqú$dON˟D>JɄRl4hE9{ 5HPyͥB^P蝃2u d|fX e3|ǀ:'?E,X|*Oa%0CC2ͱ"v܆x|StAH .l{T!TsJL򿿭Ƌ7 e{ۆbYG,{u8x/M@K`c&c=紴yVՊ C@n t󙈹7ճ 78W+m/b׉76xd"ǟPl?ky]⒃zh9i6_`r];" xta$w #'Ȅ8(%-=y`Z%j.@4{Lf \* FPF`rRzЯSv-!ҏo/~^%[6@uWk`j3ocv&,jFJ9wvj!ѥU#>9Ԑ0h@ǖ$ -S}Q!=re`]о(`0 FBEGhev"8c $Rg&_=iι-{ wb>iVi5*W GÁW]S]8f&M6~E-FcAe 'u31Q3 9O;,[_ Çy%گuJA-1Sy7 jEȸest"}h;&( MRxOwA?D3OX Cڡ y;n״*`1Y({1BM$TPy@_/ÀPP&@qFVS_=X#(ėņP;_/R)(m۟kw-̟öYդN7ejJ e]xg(.E +!GƒL\_@@2A\n;i-uWdXsS4߳uqj4e\w Q|,Pǜc==M8%M5 &,:m`i.|>M %rCMGzD3c^ xWRC0s0wͮʖ)a#JE^sQeHINW*8xaeKG3m~Z .4&{|+\@ e=wDHXy y ”j.lA;BK` >CC'˅u"z!{FxPI7iupP9C-[&uIq# _@څ _oFiѩ;]x_p:w'*MgAXG/m0  =F)4C^^ "Ra+6m8xa@*z#j޶q|UU?,#Eb5mZM{XS$"sQ_bPV͝L.Gx_Wn&lC$37e,% }G"fAMO>/5ǪH{ISˏ͜>muGV+N Zuo^ q@7֨e`t=nTI6 Qj@zAq6o݁͞03-'E3eI9K6A(acäPú ^QaRC А`a ZxeqX4ݢ >秖|xVM-Z2M&ɨdpv?wA.95[ scGC+kO`hT"O|1`&y;YCt}2OFC&Z01?60`ޖ%jR $^tE5`.W8`Ve݅Sr8y4n# f(Ln|)8%0k}?07h$P(gDb$E tp51VKAC;yh^J|(ZFx:蝂69B c4_ LAj| S H !wiVacޢM@SeFuB&u a4Pm;]lH:m~V Zws>l4i m:c`ts@ ZOȝV SpUs*9 +w k50_}8#g P ̭s4>8~cuEdK7%}Vv rnS!N("rwJڿ~נU+ @]<0ccbI Im9Jj-܇ktF5.U=§Åe8gʝ!i˥M~O/@AҸmC"_^PFyqgj[-˱Pϸ#7rQ,MJCx{LXj}CZ4 )G2_\2Vk>kimg@ HAқꏭ+rMƜFJL\Ym.'`SK][2ذ'8+ X{#d~7 hRȄe`BVLK&~+ T@uA ?C;+$3 a1_NeY2 Π@ C"-'=1ww]>pR1p><+( -U2<  Z?hlO"ThiWGk܌#mՠ c7801 PT(c F`|ip^z6`hfqm0 R7"MFⵙ; rͧeW|Y Z:Hℂ?5WRƼ *à/[ghwj$wƞ@³R!hN7(S65pfLh]ʹK3&SSF|kJΞ8'zí4ztݷ6Z4*,ЮP6٫ד.:%)-{9xlg*љ00IU{,.XumS:p)ԭ s̛:@=hJ+xXX{hD-hZA܉RP`Xet>s1A+Pԙ}\9)#= mMWO_FԡR"ewɴфh%{ u䆎y7JT4-g%t8[A+ThyDO[\Y>;,A.0 hb/ VYHGIԴT,kk8 B՛F"JڇWԲQ+ ҏ\QͪZ#LzԨѬkn2Ze;_U gHpY(Ep #*9R@u ~wϤ=0w/?z_A hU%QXM99Q-X*aC lNތE ~g _;j0r/v@+xׂ2k6 rٌgLaAФNUBbLj>(6]U&6w n00nKB3V3$]qYk\jwE}䗉;%N^3@FA@aX*xl}-]>׽3ٜ) P;}jޥ#)5MrVT0~;o oA,Z l4 h^H?:z30k9.hCZ$2a=1\}ߡ3;bS:8I\FPOdTQ[1چnFdO[v'p?(T]aMS$wn1m܏(Z_^Lȁ}=F+љ3$|盿$>T.<{h/|GFk@6 5rsqT 謑U! B曛4T>TiVD1;&zWiaB' Kt{0=͸j.t S0ߍGN-PEڠ2sisYͫ.U=)rzǜӗoMٖԷ򛳦OͳX7Np0 *57~zrpFJBA:hO)j4e\ql$.%5$j> I4*66sG~'=z|D@VVV~}[mA hӣ?rp`gQEr]ҪZh+Tu3/~ںYæ?<-mpU-PޞLʍ@Ehnڤ#:QAjH- RoY'=AIj6_R\v7ge^TT/nմ~ G锛FFsg ;;G20i~ 4S`4q+ZP֞6KZsk 1,}JG"&kPk=Qp|@$[\@8~8Wq /aŚ {NJd`tk> aA54eN|ChAZv_pXҤm55hR!>$<_Ӕ}Nrb"ߑxV ;b(\)67LBvVVz^y2zyb)&a_y=3#)-%#*(hA*}9Ǒsypc@oxM @=\&O+`NѸU lG9muAsஔZȵdٱG,HP6 %@"DVPؒ) sٕE:ՆZ ]v8g;bβRNwnn^ɹC+lk t1: 9g]:\M}UukKM@Z…v-  ksV1RkA@1jwJFAi5lN@-FшTVc.9)gr>NOz(t(P ^>Ǯ E&up.QB;8>|O:oeӧ{MTjKNvN͜V/z a OgE.' 6Z-k%lp!@ Z:ń+fA1{ZA1 <>ǘԻ :}XEOTc "PP QUs'L"wMzIU,e|.N܁{5op*\c@ǀ30 S+aC߬yg] @>.8O.r6k.,\d(pX 1#YPcHƀR(p|atnp'}(o8XnP(C HdK7Eߘ]◠ƑG톚7;G&y1MZ2ޅ+I2- X[{GW nGy7}6:VA}eZUlFP+}_y ?h+m<7BNtE_<)ljYa&NʼnPǏ2,,ƼCU%H(aXQmm~Z{Wef{?~`g%*"/\ s̯|D氟e!0S.wSśĞçEJZ*>{Ѯi"׭*`~]thVWݾj~Vg†ZT1ZB"a@;Y)&L+UNEb{ΑN(g{ת}ڳԵ^Ng[}U㧘uO 6[ -^xP&#GzZ2n2_V UKj:ϵnǀ<|vŞ}E ftU'?`5 T*A[k[V\† ?iAP U eT}0 "M 锟ΘMO&cmA>NnB+Š%y`5-l`{wJY&uzQB=3|mS'NuhVxhP/!9U_Mĝ!rzh6Ocs:;Y4Oᜯγo07D%hКի.?_ *vŝL"طC3nΒMF0q%!EluHtjQO=sQL9;?,jTzow}gG4eV)FoڎQ:7Eԫ^ɳ)UuǨBE&lDF~x6dLRg ~Shp\h0QábIی Ii ?,8oM6#jǏkYd4+2X>YW x*Y JIX`ԬR1t:*[:ulQN@2_p~V_v sǁ~rB'xCԨiVu+[Z5)l?(Z6)/+Jb ]/l$fg(!\th^W>u^!* 8QObrva7BԩVISˁ][K $BB,EĈ>6KawVHLM-U**Hs4+[:H VQ3DUy4hNH m#cu1ѿKK:6(68xb=7]I:a|LJXj.L1'[SOVTȻƀ9羂0UҩCzĪKѶZǀ22{cU}^ջNd> 6ozɽMј0bҺw8CvoH"C/oS6:v;MGN_9QhVy~+)[f@f?s\pаVUeiRaa|3",4D,ТA +61 JBآ| 2g0 [44i}sr23}N)<`?]UjǨUJ2 - @ӟ,5tZy(W&D4'fun)!cQ}ERsV @ Z#_KYmC]|†f Je};qI2!JU$ԑ\[ً =/~OQ {Ӈ}S7ЇxbSBC)ר>E˝;]r8$_JX ذ%?W^|9zF浄T^I F w9)❯|gwk- m L`ʋ1*!)ՔuU.?R=YӧhIbV|dy)ݴn5椑0#AU:$Pѱ8>Q`1 |AfA:/l;(ͥ(t2 r e/SFqWe5jp;s1gL"G.=3\"'Ά_}9 G1]! h nK0ʴ'L4|N$Ju[ x0T +Dﻳ!nRqK:AG:_鵠{s&yNuKjɄx3+,I3;R%Eyh6힛*%_GMlX+wӋxqv!Z(Ɩ4j iWS"(JG߀R%K@^9}Qѿs }Dj:’ج}vqU7Fw KBR+My uXawj㵂\OF[5~uMK4\:Q[{c2-i'6{Ӈ="ϊ@Ā_fᑓF6dh7]иEhB 2Oi63?C[Mq]gp:1iC>c8{X#N_ISMsӫV(+Kgop8K:2rUk_ɪPoHfuz2v!i9-sQq?s(M²h== t~aWRžgI (gm[!-m#,at!"ѤJl-͐OW((GSt"g{|?.VlհEZhSѨ'4%J|E)j4|e0v+ KY{hvdKáGo9K躘C" ů/765b|6jQ\s 4}6tǀDԛ?G[ؠ_!Cv}xv|Žܥsr NX@;fF l|o<Wl wiG<6Jd{;`oLؾ~U,ڪ lzq%Щ.x5WMji^ޥIs.A0#0B?\ Чⶠ#LHN[p/L)%t;r=)X7G^by;~tunEVIf{B+QӐ2GR嶞8KkG4,.0Ql#U<v>8mԬ. =q Yq|t]cqasbXN}#O3Elӯ70 i!@`, ]|u|͋tc |><1((4{".jS|l 3@D% Q4Vk>k.-uMM9L}O 4<9||hf-iN׭uCC iBqC捾L܌i~Mks]Ѩw Y „ɛ'[f0昗 J9%2VE҇!"">xh4[=[[T  737|`P.4q=zh4v=JRƛ^t\u!{Dr՟{PWqX-֔(dfLKKNs;`lmbqEr2l}ri@7 )Iv24bM4:kԉ<&-.)\ 5!̣(3JmWz.ǜcR6?J;B~m]չhmGdO_EȘoc਀)0` WGԾ1۵} va"[4\^聘?0u&KD|O+D܁{2҄7tJA7fsw?Χ .p $]pX=bET@PB  $zBHOv&wlv7mw9MfvΝ;瞹{Z%dj6nAOsNBRx2>Ǭs/$`e$H&l؉ɽm+ڴ7%\5z2Y2tx}jrrEJ$hn.<%Z'[K/_D,'6U|oA\TD"Fl':4+1q'3W0.-+ZXn7bמO3Pdb˛2RS<_1mN-_d8)aIݼUXוƹrǹWMt͊2Ѡ5`~]%x%ɸc9҄;1Z:Ug~c{~͎ՄoGB1R&r}2:qD{ct}&>DZQpz/D_;~*ģ9Nd49Mma9}YԴwSeV+&L33a܀K:~۪eSR'J2p֘8w Nc5m{C{:+cǂġ&?oo3Hf#-̡@/0𓜖aY/뗾)l{j3(dh4γ:N %;Ŭi;Q`&b`F n춋8JtcqE MYNқ"ՈzW `3sQ; @>tB '.˕AJ!q`"1tM¦XL֊w(O[4SMNڷ%µ&Z7m!\CM1b@ *pƼ`4 ׆cV]eC&0D?&?zHy&]v)}{T/'!,@ٻ̇ 3ܼx|KAU6F-c$3L@N8E)@d& P6CM|~r$#xu1ص7BCO -@J@ ]:`RX:~Lȉ8Ҫh״.1i Yf5هGC{YhiLfQT3cĭyO[ev*}yDO釾@8ӿԒ>$S *^l 7(#z#l#P.#Yʭ"p$/\();Z( Q [i79u-+559Z8Iv6i۷R`o/OvK@VvVzzjjbW1*&284XjBJauWGҩ55n7.] ۆzMZԬ۴isLɀjG3/BL3?'%&Op4~Cn@ XLe$'%$ĝ>yxo) 2X)iHrE&|4&|д<'飪/}>Pc{$ (&{[],@{DMX9sA \JH"3$.3r➫:59@ 'bO9؃Pŏ$ڂ Ww7_~{cuX1j=4@:{FH!flw NA-UjG{j3.++[~ch-hkk 0E1 5vtC$3CE'vZD݃:)aHfdb=;^Zk.ygdA|/%ptkl?Q؎5ås?ԷzT3[/gGg; yJ rs2`rJXk O]t9ڣ4kUHdÑ&SNӂN֠ajr%ؙ"9uaM Kiz-f 7L T]NLSs++Q!IOMJc=GLb\k@IDATYCHiAbNK h+|BBU`u\P)Gc/ A+ǗCƜ[aCa@at󨠋"|h&G2xd8cNZ0p1iɏ9ǜA>xs<^'}ߜrZpeqi.IF"6 ɔ>t !Ʃ䦀Chn)4}¼{ qۼQ%i}b 2FjI~Jy~x][FWϋgGG?Q)O&Z!C(tALw3Ib#bѺ]f2RLԷc3)U,KӪ2ˢxhdinB2*#_:n$c08 ='[2_. ZC璀eVvK2Uw܀>aW1 CxLp9}<6W XA'ԹV ( Z2{ET -~9mZ4wL6MrG8 ZN tǰ\2YSp"VӬfi\yOߨmsAT@fUW׊:ja3[B]FĂ!J2EWcqumU|$Y#,<=nO[WA&#}(LA5uŰX f{2q܈ ~8RPJPLdr G,š[Ϝ H@2I_ćG/CS(1g6HC }4PAǤoE#L:mi)"Zj*8IRЬ~ذ+ZT#[Z#\9c9ioL4GoXTlߑӢY`e!0 T,RGXDᴘ{Rb:ce, QG9 KG%p?i 1z{-Z%zU茶M J`֖!s#Nz<(:?j`7iIC) 5&>)3ֻΌJ}ab4ƂS͗@AC!>Ѩj+jJ0AaEJt^쮾J6YۏAdxq0llf}!_ HrʘGTW;zV6ɝ '{2\eԮ+FAn#7!7bܸWw2cV6f (]S2JP2MU4kU9}=7EFIVUk†_-+ ?0$σĸ"̾MN:˾G|(81ϝ>Q^W^R 4)!5Ur\%ҼB7g0J΅KA02XUA:"FczpрPrmKNF 𝡆BEUq|夙&f@$NFt^f Ԏ#1U᥉#,FX36#iq@|q|B7M8/rh!>5ENjDʭz5Ři-^E{/[{v0 3r;>^SPS .i7UFgy:֖S9đ‰vo ?2/y}Zt0b~S;n a#k>I5Pq]+V(;\dܡMцTv;*xd-Y *}úi䣉sY`F†<שCFPS\V0J,myk zIcnғe;N#mTX.>k>f>kcqq,h)isݪ8dI,Oǣ/vl4B F93,`Y[aCi5cW7dJYTzjgNxQ 57ri~_pN$,)\d?hp[3&o9a: Ā=#V`hJ`%&[ߙWI$cx]7sf+͡y MٳСgKM-wac=Aa  s-3U1"HupC 1Z))%h2͚7y25UQ*hct0@3x|^ˉIdv0aN7>xh%Õ00q#kԹgIy?g X X`MBgȀ|GNIK w<^ߋώ{WBh>,\S !GN!P N1U~8W5¸Y 砶Mֆ4x#19ouө.lWCAN1PbR@d\G^yYOrW 0;+5K0] RG27UWf8] VWcs^gf`\ǹ~)垝8bvnY&:,14GtUiËWցNN}r)ZU9]t 1P k/ʽzٛdx[YxK+&4y![,lrُ/O٩y=G>eA'/HZ-)6-+w+Ӂ;"GuMP4q] N e̷;uaUa;E}˙C:b,b[}d0NjյɱdOsl4?r*́azlL9{^1d /L@N*39vW``鼡=k C:mӤg=;vԘ)ou3*+xUvLziukT-QtFދg1'(8t"N:cTOu{&S͈ Z",IɩbޢbE sCtܝ4oL, ٰ"D%h!uWU FjRD {v|>\nm,ʚCa޽e62Pa)y999̼l9 JjV4aTO+91m _ù s bÆ%XF+5Z7{K Ljǎ};[4 Xa#Cq4j09DN?+CYƧH=E+$ZsG>|g/V* )3L҅["Dr ʼqo7cMA50<2o Fo# |ޭVh$gl@! 0 3Uk="S쇘S!]=1rj. 3e[2Bbp~+\ PѯSw}PI N\SW6*?P=4L~F`va\A_) D .2x[FTf X0kUنy?ͦ>^F<-IcV`)f+F"q$&#ɚway=6."1 횆ldҲ3}ڿSsb_TYY˷ jS 2Iۏ+#m>硞H 7_Nr6jv:!#EE44,ɩbTvЉX\H5Dp4%hK6GĈXiB%'J}}D3CdȐ+i lD tW\ONpsRf֮!R"ش'F2=6Yi/hZY ѫ|dvmEA!xRJBˀ"Cxġ94CD*4;nO-a&x1X!"w*Q 5( yaCG]kB<{G bx6vУ@=}fIӣuIJW"855Y 4]zsJ߹̀wb.b}dѱY=q' ʜ0i﷐b{tP9ŭ̥4۷R)6Egٺ>b)l|M9t+-):Xѷ#LOx^[>>w ?^I-ntAkRGL͉YA"V/ CbʸRƀ F2Vѱy]u&=[!D(}Rd{ RRcg/zC`5qT/IayN}odxp0!;ًCЗv0d#6Y y+6VlqRLV_, A5)>#3[/ޢ~jaa·Sf/ ~>Hw>ɸB3  QDW0#yyH6SC,th"smtpVmu{RkDƕPZe0Lj:7EZZCpsZw:.:7pu($w7wBD&p,: {]7s0t뚝4S RHa[>tCAX!R|d 1`SsۋE^/'^G@ n(A? LC ;g(2u_l+*.WCx[sϾrJܫd?i_ ?F=ܱN#RLgѭ=4Jzpj†7ң˕J;4W0ĞS@2gWag.n( vnQ?-83 MldJcPd!_1\e5,{/F.~^.!p ԙX, )mꬅx6;^Ъx[j[Ș}`&*W!T W@EpG5=W؍tUڨ ju@C %qjdwA Rd4EML3Z6AWj@VvJczM5%&!եK؅czvm)}VZPfiߝ}ۋXx NɭۤFZJM:W8qH+.4h BLݱF>`B HquTI]k^"4X;V)PĄu@ GS"MMfͫŁUń<n\Y?LڻL1?7kS~|Y.:QV_j>r.> PTyfT&c22or C5W;iB`vi.㣥fNo{XtXб'-5!d^-ʵ0 5%=/ +&8'j+̝rܦ<$PϥegL?MW9aOi axj*T4ys:f7|?hfCY+=״SKC74,6FS3 Y[h9sìP~S@eA8lRKx䊚= 0+֩C{7H߇ CQx BP@M}p3U8YS@Q+w4ɹ i+cjr2w'ҰSTP>0 3rO\$r@K2k>+{a>Ld~&`g[ F~e' $+M_\wfRe+NX]֣ ëܥ3J(i(p@b:0$mF:e`A|Vȸ,@I}pFm5F.XnQ^j$~00y^ GIm'J ey> `c84ih&km{o9ZaƂrpPՂ!7}~ԪiAiɬ[[Ε;Oiڦ}՘=qxnЕ)Y$U^97/\-W|"~{[X<ǔ4X*{h/=.^F'MLLnj[$ tZ;[i/BN{󗉁]ZB;[/<'/ejX ,†OŊ,N[hiclx[3&\!lX*tm9KK{}do<&[F"-{BLb`L&tiYO8x Z-dŨ#L|l-|G<(s}Fj&H;>n#U؟Ln0w;px0R#gE= >6)ymED5@&ݴSlK&92Rsmӄo;vX"#j`[0̂ܣv!foΚ0@Iw0p5Z X7+춅4 aHU5H胓zR >>c@ cEzH1 Yo:k?|yN4'5) -QE +K[ SN2D(pXоix`FE*F)$Z ]ԌC0駥=oUjѱkO9 AztG&OEv˕+&n25,mB4Xu x_*1!pt0_-وU` =6i`u ]NBqJrR|5KN-_ a*'hmLc#D}C#PH5r'̶8?oo}hNm$(tj95"h흜q<8yn جk7pg}2?{:?(Gs8N ᛱ ΰ4Mf2XWNr`@nh*6>>ն3J̉X:#I2E}I9(v Z&Njpt%p[k;eK UPQ*wfX;}̍ÇB*yʎVFRZ= o2??^#!}JAA"(>X@[c[~Zg/13`F,cT _^M )f}C?{vOP`iJa Gѥ3L<*W9*X`v}:61O39}L'pX0v`g-ҷBÔ 6h&Fh^GA\{K'}éc1[QV0Gqv}d(9r+K h0ݰ@3Т sđFвkq,  =+z(UZPmݳ]$.?4燖hDQj[$bO WiPs[x~F \ipL0 i}'}ˋg"6!+!aƆ2Z#M]Z! 44gi A4eRw(lFY@ҸEiwvl)ɝ$H:jNܸ](d*mYuмж ( >4šs[˹cc®MGrlGi D WS3WMxf]Ԣiͥ=~p?'Pw[EN6ErvT2Z26 4fJf9J!(*'ͧ80𱡉[cWժq+CB{u@h^2dͼ`e( ӼU3o6Ws)krҎ{K~PY>ҹ S٩ڎq_}KAC zmwtUѳؓ'DԪ0ip,C:m f5c:Cf(\3楚y/0WOeT⥤WU/&25OHj :< _\D.34ԼR*J 7:cLh:/V!e 0T*䉌#+2 i <j$]!,CS2ޅ<4*DvW]fY&He俗0r~qUha_+zX%),F$W!-KKG>{w%t[0-M; S`1t ѷR]^HAv0j1 Mw6% c¨皽Y(ESBgw4}1k<YA f%=00TyQ PG_Mىa-Y*aC lN6A hRŭ="7JRg✅?&[ ;Q`"{pssݭ^줍Ƭp!GaC \5IkL9.3`M9y^^yxd6[Vs@6Cf_Go,)):^5 0PpAiFJJ};zRX'ܔ@=`ئ!b}O-^j# 6~j}vV ۹'We N#s]f8w&[@1SH1P|QhN i CfǼ@s}x4`lfn1/މ :jګʹni¹ϴ}/q839w7%5T*JMZj?i|ґIun j&SN) 4rX^oOmO:o@.Qg_L^[ y> Z2 اXٿJ78~T, zt KH:tp2&j" l0gr@!2Rvz7HcĐ `Prt['㇢޴-#s_.l(ՙR30 (YVeoH{A1hB2dyh3\rMf'-W #{%v: aEC'VN|Z &S†l&>[AmRc~e*-'` CQ10w[8pG\.^8ekaeNLoS.}&Rܧy@isq!BA70͈ԫ}Ue꜌p:=$94 u-\!f ye/6orT0 N@"P@z%ݧ2Cn"UZgd,~Wngo4JpHa +K>߯ u dh [򲐇 Ԛ< _ʨBtuRĖm$@}<7%l(3*E:}ZϹ npXň76Yvqo`jv"@9)0a57E>/޼%<jvA8tkpmέ €*l-1b%-#lN*f}Cxmkз2d5 ,1&d́Ct0ctioe<(J` GӰ5H ֚e !u.Ms,V9euAZfڹamXF FsS% &f\-DHlc -3ĬL؇A݀>L:~۪eSRsE:tndA:$b> HJn%p[FꋒGjbЯXT׀0&;d4etZOzf)z }"ǏK߼7s  6hIaCM8ԡ XfgyF[+,c-1=kadvh6~m 0ͼ^Yb[n_WF@2ƈhi:6w{i"+M1Kڣ͝=s9 MpCvHө0#Awa^n7ݾf9Zś 2 TpU"pd\Ͽfm;6 iܴ_Py^yⶀ,驩ׯ_9}$&*&28Wd(P1]i5HZC؁ApӚSQ8~h־s 5 :Si3Hݷ\ūZzzzV`q$def'S'VJ8iR']8}ȁ#{*(hpAs?؏+}c[+# hFaʗ }>:zJ,#y-+hFaF.^c%hxA9ΰd}hڦݓ66_&C#IRj"מ$o>l8&@?<ESnJdߒ) s *u3u*:@k^=g^lQÅ {YR|\¹~<:):V}zyh7 9np ͱEj : cb4˗Vu1{+7 W Vi1{]q+Ёw"k&D ޚ1Yd a&@MJD0tT|y~up/ c S:~%f9-F?v4}#F7~sW*TB5sp(PqA-RpP%dt1`LnI?m6.(JIW!{k@fKϊ>$WlصJ$Cf 6 j:di(pcS*a-ecghziB;8`'c WMҨbfy/sp (ܫqcP _5vh5O8ĀvނE9ʁU) tqڡ*afIǜX8P4cK:7Q`*&NLp&}(g8~X.P(C H`Cy7E<◠G7[ E;p ̊ gz_~_/ukԤ2EE rgn\fķ[ o틬Z`"gQV9P}k%UN%d N({sǪ}ڽԱ^N{[yUuNݧ` |e> od{^5X;!P8'E&13}\0ƈQɧeVhVFY`mסHNݸ$6ޓa9;tߎ37#VG,*4QRԢp,b I[$6H9aTo2 i)Qz Ӆ jN2qQ!⎡w H-Ƙ)rHJEy[?KKP!g?1v0d25DMu%U@߻iI&Lfi̞:}3fM»ݗrC;/sqzy w-Мb7B_tH01!E{AMDo[QtoHܳcWlO3@˳ߋL^pZ 1(%JxE  ?  "NQH=[g_!=< ;zZϛ=%+ا P+idBHfoh7 +FqR:&uLN%FaU x2S̬Gy)HլNW)gR79\+[V50Fv3-b̕0krBw;q*?>7DMLr8lI6%#]FUgSC{GΈ Ƣ 0-Rr3%D}:6S=8$+?俨A7gqj@jW"ŹK hC 4'Y̜GkRwLGm?4=~81k 0WEJbw #װvuѯsN["ő3E&!FUx0 ^mqٳ}zyr~h[Q 5ݻLGϜ'0OS&sT)}=7V(oǏBVYf5aC' t >w1a,&cb>uR9%Ǽ <.f#}%dƭgAR@0V' XԂF@m0wb+·Q,D`Bƽz`̘+#:,>t\% ZLd2g⻿bEuDDߢ N;LA ELNE)M97%38f4 גMWPQQ?&97\mߐ~-Lar:4X 54sX`f~vCj/ 3?s fa.  _fkx66R0Lwj^4aTOPn @h/O0>jP $ :}`-@P#0q=D/c7%ꑗ_769sXgJKInLLqسQN&)TUaT+-ʭh !@fCoI-KjmB2id]j*.^/l_s4mQWEx OtW_i , 7r~j,ӒG"IjTܴL_x%Y~XoL:ŏ;?EK :>;>}ZY[Eg3RS҅{}qʌYY3YMRcHMIrMMˀFJDz4b!  "Ѷڣ pѭՑ*Va l OS{mɲ{w\yorrϝ8Z59\%lZ5F.ze o NxaZwyz>J\~ʕkAR?\a.~' 0 )&_OQnN}ˉ}7rş#E˅p#2g2߄2z):(y&L|1[kihl*@IDAT>_1{5?K IjۧLf`zR8{IZ<#r񝑊((am[Y٬'o8d(lYWcvnE#Ō&ÌZij63cլ[:Y3x@Y휐PZ/];ƺD#˽70 YnP6I3˷ V> ԔP;HD i]`fGtHVB.[v m'}Q!c舚lax}$|UzeAcL8&oy}#n[Ex8K}!awŘUы: MzGx߾mɭ>B}ێ>>m'ppX zV3T{ND3\uo.E]YͼvULD(U#lP ꜽ=UuMF]5-MXuoKnv rǖcˑO*iKdHAp-Ё;dQ>%nxs>bj}E1y{ Ԡ1ًeVYN3cYI`[3&sw'n,;"(Wi]d^h 1>?翿_\c˩bÒQ%K#7":u߁ľiCz~}vq9j)COrY^9>m4%aDi{-#Pˈ@D'̿X/1j" nifؓ'D$ `✜'n,ZY6Vp kD9MKo>Ln#Q|1R`eC>ex{tB?mIn;;p7Ğ8%p#8FJ9.Y׳4m0Ynf_+x{OEi\ϯђt(c> ;v|l4n:8z=n?_;~SݸTMAC [/]mJ@L#͙ne C֪Q-5/J*h(\ր#<}1qYؿgג%h6HS.ͽ6fnYEfffzi6f1FjS5PfI:}7]}|-=V8^&skе0r\?udMLfagS8_sdϒvi4Aa_Khۘ-oɏ=p'M+>EAZyhDζ5;[ń\6ּҥ$INQgQqb,]q0<e{s:M|]  Z""U%b,K8[4#(K1 C^^}@*&ǏeHŤc\6x9~8m2t^6Q1qg=Un%S-RР`$$x?ׯcbY 9Ո 'mDKO̜(<}>}%3 i"C|b#G-`UWbC!8AcH$hnnAt KHJ?~ib|dlZ,DU9tնzݑ']`MXi@)1|S* }@h gUE~.9_/љZJ-Z*|dQt$_t >˛2RSŴeG?slS1]u]i._5C7+68GShu h>E}9Dh `R.C-<_ Z:Ug~c{~͎ռ{`gDgV'h"[.?V*:|ck)0ǰ9s`KYn Xod_r%(PVpv1 ʼn%vDذ׶eew{\+><1YVEb?4b/\KT81; fS1ܣ؊_Cb52K?8vq7!;d4pZ}s;?3FSBj(xP60< o˨St7fe&El8OpR)aTiY3^U-RB07 [֮]ԱW?Yj@ ͐ u(v]+(Ӹ'^x}1Lbq6E\7>5}v ))rhR"pA%bïbr-=bQeu'm }0cq?z֪x qǘ^ݿs ċoЍOH̴? Yxki"!"$͚uw~1x=4/'qIWAFݑۉN-rNlaːO;@WO~Y쨵*T*\fQ}pDD8#6m@/UVg⯈[#Ec:1}ABQ={񂛧A|{yVo=ct&޴' j?¢+|o~hnn0Vy$S\MtlVO7j%8t ٶqD$C;Rk뚝H~v}D$Cce[4.{AG;~*q!qBF7 ίj4o[X{t2ovvVo045]T>Wcn i&fg>h 迤S1뷭Z:%zMGp77D:媶ոkط=lw{ 90xL/ 8m~lgb eV^^ajO''9-tG23 ^/}{Sx<}fP)io\1ym$`&Tb^I l9 +by&]v F0ejc6E+YG)MCDP/&n tR8wY$r keIa+߽:4ɓQ|`-V4ˋ rFqf2 +{Dѫ`d?]VTd<| Nq{-9#.HfnWQR(0Y3@- vhV¢BڑZQؼ(,O$C-3ۢi&ls7cDZB%m#G#T .-*FN]JMM΄c9NiҺ]M5XKWqSnYY驩ׯ_AƨȈh`b &JN`uqU6kҢfݦMTFȴ`M Uk?z=yiBtVffg9)1xEUL,2N<7 Ҧڨ *|c`g?yOg⃳ (xy-)p8n݀>n6wvG-0T$7:a3IАZ9R9~3++DJЉX)0yQӺ53B$375{cNG%gOϳ*̶&=3~]s;>' IwꍁPѶIϋuGГ5f0GqVzm+ړ}*JAw1.el6HR@s-+߾YlD<>x,V&a`זRF9Sؠ|%:4dɢK,٣is!796ؑobtd.ժeu;WU8oG)؇ܔ0~$b2p\1枌b\s{)4;^# ^+<Xn^S81\KZ8qN}GQ8S9xVp4~z{֫|ǔA:U~V]H@oBMt:իHPJV4Iօ盳E`<$۵)"FtkH/6C6{g3Vۊܫ0[jR7X޶Y+:jʂCU@DVlawZ`["aUh="Ѵzfi])glUʮ4RgrbVLoNJ!MF^n| !>d_r}KACi5J̤oqvW*w/)2 $߇1U~Jy~x][efy(h4>e)^+d(eS<k\/1psS β!<&}E%6+4S۱YnP ,K!D)CEO7|Fyk#XK G` 5-4ǰ>m̺;nZp+(,n(үb|Ie$/6*LFc%lp— qSz7%J LC2iܔf+jy3˩{qX@l1++ꯡGc(d 7ߏʕ %lPAߥ _|bh71GG=qNat>c%kD%.kMcA+E:΍ IT7Հ7LlZ4LJh7%0҄-^quX$g<@MfGePڷӗbSD4VPf`07 yWYL˷BcxY1~>Ҧμ!x)@h39!̓ݒ^Bs)ە+OXWϢ?qv9(լ&n$޾?3,醂yߑӢ=>)9EfRҞ?h nC G!%U+I)4.Ѵ,^X*ݫ6ZI\12lT.E (Y8؟ܴB`J >sߏO= ڍo㲶d觏p$Ȥja˨Sߦl F9xp~o$S jLR}Sa왟?[36r[Uv̨ ޓrJׄ ZI ~W%WK6^_%v9{B苁,hZ|iRD!>Ѩjw^T' .vAd4bo,^w)ٛO  ^I8aXan1!-Y[F tm~@&$UZ|_jh%U`6>Hmktc<Ҳɔ4:}i~<k`U  1e `KGӲ{SڻW췆mV;Ndʨ] V;@GnCnSŸqs0'Od42v2csgܠi,ۮ}O)UKWc4W0T}s;?K6^(SѪ.ۻ@pٻ-ۼGTC(L%lɳ|/3/f } &%C"3ĸRπ=|EQ^yxP> :wytж3')Gfh)jѼkLkঀ]=F(1gXZc,l檽Ć? pj]L>;т5W^=kֲF( !ΐ,٣iU9AIR1CnԼB5ELb̴LPܖ}֌<>sF6dXfi8߉UE dTvSe{'h˩cm9uSZ/O)h-اyw Hξ+hӔap]ذLFiVQHd1ʶ~jɜ4-=2K2rqHu a4XO:!;݄ ' %y6wER֬ *}Jc܌AT)dɤY{qA,n=mU8C.s@F& u=o݄⊦yn *O:ۺfUN\s!w[grY'k)vD2F|/lƟoCcޘӹyw&~qͨ/ .BCi73J'C߫0"OBrY> T㯾_ ,Mu }W97,9 oJ`|/4[}XǔYҏ䡓†ltcX$Y4L: S`rMH6GkQ~r3Yx[:2ri(" z$,WHwG,T?ױXI(4ӊG$eS+iXT-~^W+tE l*3 {#9]xCXϷbv Zl晹 aop4~v#L8~f~9lB}8odj >~[{{{s46^!F0 6A1<3m\90^FYgFP8Vtdq)]ذN:]^D`RCmFan6X*}F\Aa DR!\B?6D1YK 5ɿE2??7F(%s 1K77|5_#;\ު;Uo14CzH˴ؚ@ؒWMZxh!>lv1^pUS?4@%U`VY zy*?ˣZZ Am1 ?h8{G^}cs^߈2 })YTYǏ+U]ذ(<U WF$^Oo?s@ ? !f+.*0Dvca֥1c@@(h(-]g'pą[֧i`'2q7cdEyc19SoWI@1 6Ph]J.B`Ok.TP^j i Ƒнm#`vQ é |^7b(M71@\ڠAEKOiߢUSRĭbb_M=1?~̯ 0 ^BzMz/RE)TEwذLSBbGt{!+$6r!{S޼̾7}h _Ph Gofb{ ^&R(VT@M*¤j>rl0\<}>N0Fr bC{zt|dFq>?ilфV#97î T\N-C^@,W9 PvW)hu honA=/I'wњׯ&r z9Z+@n_Y~][_Fͨǂ| yy3P{ Q -${eIgf^nhYAXK}Zuhui-CҪqLƵHb>1فGNyj#h;˶ YxL yWv20@ˆ /aw]ٝ,/]sdBP399iS*EcΈLGı`s I%^Odg F{W+Dbd7x\ȴ+4ڴ^wש]CS uCܿtÞ㇏:'PNө?US0L5ɑ \`BݮmX4IC8;psd&)ld$nfAs]c֡suM+\ιc8wLȃ"[:҃}Odf2&eSo -m$,yk0Uxna-M{ɳL,;7A(έ/U3v'n yjO -\`wis:U˥ヌӗF|v\hCYUFy=O6Z86u_ש*!D6wk-M^EjjzBJ(ڳisW ɲ6r NZIqFS@Đxhݟ2M_i*(Z4cTC} mʤ:*9DaE&9h:C};g0nQllbR#D#mӏc bi!0=FHW u1h jjY O !kG>u.c *KVЁe2|!\/CGB) (y[.1Ӳ@o;̀8{J(XfDzNIrLX|8ۑsq/HI-B do&n-0>}s$ _Kr$ 4i K[@gzV0||??Z&7F.QJ;`RHzC ^Pu~S.r^tju Lަh.שC0Bn/mK /Ůf{qdO92hd]I0N A aA1{} 꽵M/!LT'qUiTK=zRFDu@Q|)_|Qʇb.9OPFEi:q0}j)У})0P5c^z~][I#Q QYݍ͑s:v8-瘍֥_;bēi`XQ =AXMl<%x@z%sIɐ%sOK(O׵k!KĜwΜS/`6OНI6?\M0bNG|f7 hdO`{r gܥ&$$ȳtGcFwlLbFƐ@dޣAskD>{\^| ?C2nhg4[7J + "͢hh&g6њ2kw(AjTy3O ? ZPy- +T ?4׫B& |w'ƛFa/sBnKI9nw%>Tǵ-˖ &J[[C0Lm<͛:; O(Qf5-ܲ fcؽҵ)y8,!*:wa#U|F5aNR1k2VmGO ~0rlK &{epW,9fAA*T<.͡h&뷱\^^ٺ?AVvmva#J*C)UeS l42F\NuVxТE-Lu7O2 g,k{K%'G%&kf4ClAsιOIL8gI4>-N1g rP=FqP`9pey?@#A"A8(gw"ąBXZV%BӫiβeFPc.x٘>+C^AA&M584tY)Y,&Ixs])Q,̚EgPѼ^ʹޠB|ԆPӀ"d}1 ]jPB>~Fua2F"Tʁ~=Qf_j]0OgQiQVWfhB|ƵQ7 .{.d"A Hs?\ gdt{tjgŸlԵp|R7׷j(}V hxAUe^kh&]Б"MשdYv#Sl \;N"q(|D5:$puasι?jܸ+kBpEDy0[o m{ݱ̧旿1հlz/P14wiCS*j]&sB,Ƙ}:Mx4s9~N|P^P8q(Li} ɊaUtY]]"|qo;ŗrsUTi>_ͱk7h+jV*+>2W<=YZ &@#Yt ҍvh߮(hG.5[PN7ꋟxmnz< 06)EvLL?++dSVnN85,p`%їȗ¯j3ϔ+^L +| C\[6oyfͶe7}tYpw6מ^~wYRI]ӯyL a)ڽ9syshd!{}B\p3.?'(Xs aS{a,;Ou<ݻ}&! ;N=fܕ6*r\ɃJFCfbQ7A )@Cⓟ/eyW㒐Ϡw&cߥ؄ah|BŁt@o5L 6%cުi0Bqݰ̚{j}ͪQLP҇ʍ <̼9ȬVB3#C]`~돷g;q$|32pWg~s4Qe|WsllC]SС] dcS1tQdy]L%oAd Rq~zZ&<AL6~!D ˕/=G/QFV42 [,Bx9 q>`tm'm4EaC 9:U)y)`kY`yo Ne;֘Ե=Ail_ \L.-;ې^ _a𕰡[~ lΝsF0=J/7sie_ŝVH8@AI@7DmwjMQ/ p{qӚoT-ե9wߏ9~ԗ\eںş&ڤo}Mv!|]3d0u##'(SԨD*` :AA+;} K 2O}2bb ?1+ac+fM_ZtoqCY35F!H\vpΣc8=O)l0A1 &}Wd>Ȱ^%as8زnnPa8&zp7V;XdoNv,QEaw%џU0K;8K+\.?]HgMntf\xu¨0ÈqvȨKCPhv@`иsS=cΜbphO)j4ߧ|Z &S†lp&} W \}n>_?| )]a}P v*Fv)ko/0t=ޮU| aA9F_uѓ6[.]*q!-~үhv-:W]ۙz ZѻEkF{\HW\}(A,5Gm_jgu8JV/* 2}:=?$MgVx&c aܡ];3cnBEHƦdA:p]lMR "}(aw4{a΃1忟ZE讕)QL{^(MESHyd]?1AǜnK>{0+c\7P& ŸotJ"o;Z;d`UbYcuy+SCϛ7W=u*wL h Z @5"w!Q s_qofmרנiHXEB 0#dANNNLMx=ڼ~?:Wd(P5]i5HF0ÈBrAm4veS~jتmju6 +Z>|ذ)qѐ*U)qwfKL+O,#9%9BŸٺg̀I8h:ȵ"}po RF`Zg7CqphмS6[]ƥٹ.9##UIu(8b8Bp `MJp>rj((I#S@@1 <+p%l(LHGEPAF(`pC\C~eZKxVOzQs|*s]❚ \7x u -Pyn%NH28*=kZ4 W><[lspw >B4k74glaΤGŤ v- 5S!2APd ,`҇:Q44GR gJ@Y1\OSuG Y>BN\;(d{ [{n_*s;i-E>|נY?@^Qan?Pu&^1 32 Q9,ť[0-Z M5Ǿ"Bш@P3{iHe]wY,6~պs ίZ;8/jnpY`@~n?qk\ƀ `\wHL \u+ab<5?,Pࠐa4c&搌ΥQfQ0+K =Um~ %l35+zStoC?d svb}(z#{H(gs>#>&o5H7˧bJ惵(skvyA#qd7/exs}D2<D*LW@ѽ:!C01} 䵰z>*䢬>Cfa*LQUL`T]&}gիtBAW<+0sV3=g,pbo}y,͝[g, pY1{f}4@ܯ^`cŏ3#'Έ eJཎNzo.ċ6 k~ZE:_$%S@VA;1h/0mڴ[t gm3ʟ[Ŭ4>r$@5Xםk~]<@1j|u7aj1۱g,E^YC:KeRW6yBdqHAjEZI\0* xy1AbnoXb΄#K7쮈XZu҈ 厭6 ;t XSX;jzӣK 1mQ YUA2QE36haڌTȟ#=*Z6!uxX@UbbP.DhH}Œu;ϳWo^?Z&n앢kMj=;eKW|:HcC7͡:Ni x_[fyCTEGAу#Io㱃9xcߕĊ۽v8U֭mRGkV*3`(yd||ўWGx ;S6Z/^qEh|Fdhipkխ^QآFF&, 0o{Р%=4Fs%ߟP&2 98կsߚln9u'>E<9FѬn57-P6ɪ}GqMDuM{įֈ_O'&? GwQ|Iq&6^|1;Eē[`w3DţnRkFָ;y6ҿ[-n[-Su+ `O \1a߶loxqDGmNy,O>W}믳?X^ԫQ@.ľT/Mи5uΪN7~o}paiHIC ;>.U"kU0׏,תR^Mڎ:T9u~[`{;G~tCKIN>}66_ѵ;'L]Q^Y<]HHfNtn\Xv,14d.Ba\Q7Zpy)lwM8+(ZT$zUx ))F8]``Iv1x燴#g|^ ڠw^kV6& @h=7Q:>R<>ܪ}=Jdo> )E.*)9&wlh5nulTx&Zү{͐o}gN-@IDATbc^Ԕ솦<XJ8e?)zgzM[@솟c`ر%DZoțh +†/}]b)AFܬo19Z6kۋ>v&}ӱzaٳeYm!?ȋ577k"nJ*{#c >u^#԰&ip OSj:,$XtmWQ#S4Xv4َ-7c;ιo@gp0=fU^CQt:gaX@J%Y`TسpB t* lǜ{zp54yF, .M\W٤nNVYy, 3$v! u1¡vi3-KX\;7cڷ:(7-u:/xlfb4B;9&&H,۸G h}1;O)`eFd2nݻ{ I)؁bE&pv?OSn@(r7G({ԓ(< ^<*Nq2s F!\ͤ.i&w_VyPcXXm?}n6-y۲9. `SKRt?}Z&3B%A5}: $Y>+TMx:51E\N,@/\ܨXv3EDJ ok|`^~ pα]hEs> ?d:B/ҤKg.$I_U|?\U_l2'S`VSIo(Vg?Sܸ]Ep oGMөjFخqXzesqE>8w4P(pR$msRؠ Eq=ꣵkW/}ٮPν;6zw{g ,#Q0˕(7Ǡ;P kŰ{{ʄeø?@!x2>dMT6|ybB% lEX oB p-BN . eQBn&%߽mc Iydʬ"hʋIlb;ҬIeJ! 6=r gbx`Qx{CKqmڲV //v1~,U*T2gMv+bgzmCqI8r|ؾ?N"+Mc|#z#raEI+~UʧA1'zŲB ONJg.GNOGQj= }?-v4{$LlLG~][!A)Y{̨͒ש"qS˰O#-1 Q\iC:'n"ȡ`):(-+X؝Q'#Mh FjSmZn5;a}|kGBBҿdj'XHO.#0Ic``xZfy !(6~R?b5M%o[8}̒*j3(d '2z%@i ALwhՠ([2 a+Ha[uwݎR8}F#1ՖGn60׷n' !DăbQt uB|iTb![Je/NY|| AAdywNP1z80F ML1فxP.!u&#^Yf&_ Q` W5 ԳЇwb'Ck$lm@-AŲf&ݱ4>}^ƕK !ZY&q^='٣5+!Iqu_xoj46:,cF岲d| ' v1^;:;9:wwAhQ:'$#K^~\FjВ7תRCͻ)T">C,:4+>i JM<1+wې}>h,(>#C>& oZ7)"ԴdЊa JS8#d-K?%Yq"l yi a¨%ΰoJ -+zf>@AFq5vxtܴ1pgz,Zr()AZ {|2nAw_Ag?4~2X֧ˀQJ`NVBeqcHGf 02|潜cW{҂qy h@i"m~E&)EuqL i2vV^}GNpo{LSURvcWPzl쥵Zo[jbhJ j -R7F 4S*w~qq~B&!'~?ou4AX ,Ϲ(AG :B-R : uNß*U?K`^xCFD49}PDa*߶ZRk"nM?,Zh[gF2ѣ2-OYAuyPkd;#@4r4V6: Ԃ^?~a0 J`@ڦaZV[X ݁c2xo'>!!$VKF:~B]q]R00E-4 (T} aOĘխX^3҇_х7(,yD0S)>+zrwW>U}qXVg׺Q)m'rFvh-UQ#']qύKraBRldEMNʨ&~ L4an>~_uR蟱j>h0;m;6ӗb܅x)Tpab\7ː Aeb,*Äk뾣2/O< }{x3K3.f:3:{׷jIWV{i]ye@(*5bFQ鉞To4[q uuWPP+W2ӂQsֺa-/]%oeZãVh6s|YwŝG2pIaְbP՘f /A,_'~Y7MsHg28}\^j4@nf^8rKO}w54bdlGXV|[3̡[{S3[MlN?8Z{;̵7a%9'a⨈ ֏K%{Vkz Rތ0fx[E 8 iDIfsK疢uM:bZWQ&#;Chհhm̕ HO̕2dhOA _!hTijڋ?KDH)%ԊegxߥBgofnEmp%n2XZNFY}-Lj>>ijbkY7M!wv,B`D&C_'zUGdujiDB/qSpo5ulQOܲO܆~͉##>A+4A}k2dTh_gERO1*kOuN9CpVsˌ }4`:MRjЂmCát}~>*␱%;L F,80i ߱Q44bt_p-tMʀW[dyZ?-l0 ᰻ԫڅy "F#@x[<\iMf窎~a6<,Vn']d9r"{AK~-hxFR>>{g'(kOLNvJN?zPxLJ?ܞ70AdR0:L=w#џvl}b4Bq~_$YPUg~-7`' ~ (*~CXw/iB` Z8|լB&7]ѣ8D )$MԳmS¬kݪ99@F=uUW1r;:5)Ń#"gC%2#-R(N0,_6˧ FZANiW%63h38(ps^i4;Hn? EًϢ<;sq5Z@[9t@-L6Q-Vժ9;d>ƟuO6(?Oup lŨ#lsaꭉ2P|'jz(| Z$<|ᏟwW Ja#!L"ْ=" $<+Y 4f b#q9}JG`C pWYAf 63qIwoX0nMgJ?1að`wMFN14>Q[kDS.g3b%\]ug'N:;r8<#,K굞 O$dx*-S˟\O2a0S cb7ٶ{zk̉FߔoݔImcc\9VMN؃h4R/G:dIǿ `\M쒫[g<GKd=cb. ayE)q_3qǜeMN' '&"~M̀*V B&B,7L PݮBt{b|f h?19'|Φ|0c15.o4mI4J됈[u+9;߻ڀ;+Of"LXX2VS2V8GZ@'$ձԝr۩eRP1;'Bkq9f6dF3ujc[oh%S&_qx羣's&c(Si0$wߙbB2;έ#MjqyœyL07O`p!|K}#Y?MG`B2Y }HᯅEVmoJI">CQ=x-dt2h2<,u]5*˳gO <{t;t@z0 HפJ?婘&|!k9b3Sv g/݂-IKP)PQ׵N==[t6͎ @&a b;ĪOQ &S^; T/%Ҳzq/+K)!Bw?ōA$sG IfiwMvepni5jEGu26~aoedݟ^}1ޞ>w4d^:zCxǠ]-]c Nl#b6ةum_w윉?DhrTV 8CʵB7 $<.XRX.õ q-|,:R6OV"]y74IJ%Q!Wvƈ mz"Zu;!óS6ǣ6̓h5ҾÀًqp 969+bÝ74jz%?]#Bu`v2\jL|4̨HHeOyLaÈ)Ā?_{?-&r ϑv=RI)EtrJ kiaMB e=vhXq,!@~Ajzl,WXkHns|5|fŜo  < "Pt l `QBvc8e}8,*F,2Bu`_VlsT]o|,p=sL AkfW 6i"f \X{4UJ]|:hzyM)Aqx-MWN.o/4Ͳ[gJM9sg^{->Yg Mv$Q15F φa|Y^Me>7 M{׈klb1igdV]s^h>\Θ[ʇBg ߇p>"L_A:U:0 .(,,}U6c9?rHvB 3i2pb;$8 kL `_EQ,l`ߒp8h1vtu쁵/x *BCw>~a\ݿ- kO*yS=knGKZ߯@3+>)>( ]-qja`D?'%B?q͊@ i^-#e[*AF{ؼ]F,~9QajBZ[Jf[oSf/oCf,Կ4,V(@[),{8U^5B4a9{] LѮ$Rclxj,'o^* n@:5䴿^BgrrҦZU1!7ͧh]F'?۠?jL (YoEۜB M6 y%V0ꀰocǮA-I{|2a9T A){ӱ |,AOw 'AYDoȈz&hD:lOrGK!#FF(~.c{xb3k45 䙌C|j2ނv$kV Y{Y x0?kHLOQuLf\*01F*~sk+  whn?T3u/y@H_Q)85Wfesr?Pi!)H2,7sʧ;y' <eK Gl9}31 u]TVq+=! j4P0rucûݴ/rR}dם߃-pqÆy@hs/oAq.%MAD5#_2x<Ľ6c[nh!LZ"^Ҝ 7zAxXvG!*tPW0^Qd=(Unu0Q @#dXU0>xz<]tȢ1Z}p&T4.O qlO#;&BF6LDKWGǨyVn ̭G:>b=f?}xhݟhszĀ #(fdRx!6ZsFUL HRiOgcKj-,aiI:36qp }p^-40 Mz'w}hddUar_61#'}4 {>>D ˕8ʗ(lx|hI ﻩ/Z7 15R0 1" 9Iپ o{ʖ #(Lx߃̛[#5ӻ`lv'HiPvC2r}kݎ+*͠jO`8f!h1ft[ )",S|+*9&4k4cP6BCAC i!Z{CS-{9 Oa$3Zhg]dΐ90@43zөYz{)6;賃_K3D+M4aØ'6>Ae~41 #6k^bYt|^Ř<ݎ/b.9κ*o臵Wc_LIȌy}J 4^֥4`K M<~M@/R>k%$\W󯺢JSu<(hpZ7G_3B ڟi&[yUFH,HI6?dL0bN%}AdBL4iQ(] 6G eY6ɐʤIQ`bEQ0C``)V縷܅sfzl&e4y$Ϳ(`4SvH#cQ xʷRIcHs_zaG;$޺Q-UjЏ7ba4$d6jTQ^%$KM^lOQ/;M$>iNg pe>21p4P )7t&Ȱߠ *bpq|l)lp /붔.ݕ}pG'0i '<)XFڕ+, Y}/* )8 S$iBԣΞq-L*c)dY;ORO\| 'wjwh |+@L胓%*:wa#$Ɋ~Wwx49  jzz *khٖz`HL;ȢC \5ʽȹd-!ɣj7sS>\SUFM\S NL'[:^m;5rK֪"PKS:+u XюQ !촣d.>/[MUFd ӭ[5,'V\կ잳)p\݊6F.\IӼzjڰhi^OmgWfvӣ7nӾ3PapdyĀYb` _h Y*W J #IO=eoIoN09ݿY=&>}ቋ! |h3+'}:MS4sڦL/2UaLx飩Z,Kter((Da6YQhD=v;(=Fc;GhÄ❉W0&D:/yj{1U&׮xaĮH͉G7}G6pGVi^=fFKƼ>~7C>n)>yWO{>5aɔ1?&BwE3Pо](hӇ[&L 01[е],mKsH!9IWӀB i^7މB2#o >ee_yt[4A.5_wPCI)Š5 MMmA"C1'ێ:6IcTב|~!3QJ MT`BvC!7}+Rxه_yei=x`[?<ͫ'%pƼ>Ct/3zUϽ=S! ]{=߅of?ӷ9ط8 R0%dQͳU=~5x\Sλȝ'yޣÉpu`s9?v3mR smi ]W1Gfg&hYfe8~aeO(ddW5g;q$hoi^=53ZRy}:O0d>Re;9oBx0OYhׇ/@[>tbm4,] @fL  Uf' 5|vFi5;w΍kZ(]//'`e_0MIaä лcS!A4%!!5ߨZK;~_nT^|뀟4b'i$Yjk-&01`b@€ ,5k|BΚDM($I>uyTƚHY0ȸ 4_ cplYRm~ W=+Ig[`e7 _i= [а^y%ń\4IUW@FI/\?MZ*rݷ>#O= l6[>l* <{&01 iD mi{.GcW`t?TmZ ǝXwoÐ7#ou:t>42%A#(ݩ0C& J>43N&FkS,zq_ Y JaSm1 pRMV65[UMʹ'Klۯ6q-~Cb2 :C ʌtA0#\ἊK-:]ckU)ؾ5Z5O`pGT,g=i /eƅ3j7~ b`h,;>rĂށ$}O&t..j?fBpOo|Vد5]6x&|}Ka犜+x@8J(fY4?jU;;ԷaFz`T0hP(fә swh΅+̘p; QɃ 6&T-BtEPp+#hv;*Mc?]pYTVD1~\$ H (&X0$Ì(bfOͮcNa% 1 \?(t '`^bkiE6PnBxm⨈xmǻʹ`;COKxq[|OJu՜X<%%דojÁZA: ;sg||so?3hSFMCŠ-Rd`i- rrrbblŋgٵ}Y"@FB9J,6E jLSQu2)\?f5lնA:u - W>lؔXCAE+WJ>5|$6[bZy2fy f\Oq p8S.$\;yx{6o܃)TPuM~pV &014i, jVw!#Fw?EZ;hC6=Ww-~-Rhz7u5mP~DK0zt:zeK3t ƂuKX`ڴi~+ rvc߹/9y^;gVg5;_M1Z8놎|U~z=`OĦ?Jc8|Lׄe;UmЈ}Vq\x} tC]p4*Z}L Q|}s¹+>{$ܴn&#B A& @8< ɹ%S@@1 <{+iUH:Q5 ҧc5ql3\/,xt|:y(:V{sa65j &5NׅIn~(2yKpbI\eY24Du89QO58WVM< 8P_3S0Q?`;>842c,ߖoWMk'ʼMP>Kpr웈Guy&}[7}1dDd=\3 >/;dL})#a 8 }{ s] D<G{cv{#~1*Ƞ7G_xyXQmt ^_ atI@L~hBqٓ?À?)Hj-(ANr^((s&}JAL(!sBanP  Tc}PuAmRpPƵL01`bG9mc0m;vݐ*U(t@{a1z+jO-̼J`՛`P~jb^C7ACC~ٓ Kg}M8c&>>s%/G_k8CKߢ :?װ@"yJv[Aaؐ,pqPDg׋(;8G9}. ˒ %z6,YF\g0ݞ)[OL.i:=9>d.##^ayuZè=39/@}ٖV~d,мWaC1xdB>a@}y_1{FA1 <>Իt &P]U~{S1ϹM  Zv5 ZuθI3Xu/anG^\+8J&01+ F:bԖC CG1~dw޴ .Rh:5Q RWƺ?.ٗσ`ܩix A)DkEKo=  +-^.5L-Ϻ$ &'|iX|6qSj  (C$˕!j? ܉uB8aS܏9X47fYS֖2˼6A?<k b?€?5d xp.yȜ_ayooe|I'ҖjuB JxP )M)KPGUj(n9o,czȈ10qfCw~ ߌ0哑Y~ipjye,gp$qѭɝuc\ܛea|I: aRT tI>D!]-&b1r%n]LܚGOj]yP>U0+/emu/ɇ`_۴/7r-̹hV\,lG+eKeYz%-=HeM& }d%z ǢkCb \tTKd,;R`8n4 M pq9JԁlIB_+PtGFըPk0>WH#MڣUS1pԻYG+skn &L L-77v?C  mI*+{-b7l N˅;:-Α-U<:XUO-v1}m ^u<^Qۄvjb{L=;4iv;S@~!zy<Imz1;ɗx@]jxT=` t=ƇMj ue@Mw ܵn/{~9=/ W-W}T~dԇK}Ȍ&5w\xytiT&}~^GF: ^Ϟ3SfKxW813r?%d{=lb@1mīWZ4os&qZF-hlUμ'mH%$^@BBmpJ R FRMYƿ>>%֧/bG?ZʰS^ǁd`|C&ȕ-EJ:E'TA ]d;f٭6 FKO.뮻rS0 @_hGtܛr_† 1-R*`@)lb8È0{¨>ꥤ?0)#S&ǀgu۽u1tLoJy7CC'~01yE:˹AM_Ht'&2 3c%K5r at$%h@Qi!o;+B$2tV>OrtbJrtڃ/DASc^{ 6htƒ.͢H +6.2Q#^:N<܏J*u P=f; E^zТR%BԏH<!AKH8u}bjEZ Z槨1Gxy1AbnoXb΄#K7쮸z~Zun/]ڰ[VYY| )K>c}|#F-6`^01'H tsv34vط`Z XhՑ#ozꅚF(>!AaHwGDZ%mz0qAg ͺ~(61d)ꈷquVoC{!Мy"/#_灁E_r+dl4An;Y K- ųNF[u=9(F? WUj75\BJw{\ssi9< YݭYZxD.>u~Z%L|"/k<AWs`7#w15 `TBRؖ}BnXל"Ǐ~ W]PTdXŦ?ٕŭp'{:~`s|vgƢ.I x=6~H\i%co׫C/F3Z_KfD f<6-cM (֞y#f|7M- 4wOs057z2sqIx&P@/$RL5L~yb{e}_w0@АQclh㦼fDo͓u U 4#"' U뀀VZ qnuxz@U:?}R}xk2ף| UפR\hq+xK '+j?U bKzF!Prx,BNjdtmgM]X ME\Tz &:d[u`TE(S! ƆItn4g& eBR? fý^o1\bW߯_H.tXq=U]US@@x9n>T#mL<^n8>OzfըptSׯV+Dv%`Ѷi0ƲNa"@q:wv}lj@!w_Ï>(PRP( k;r up\֌Z=$vSb(kk]Ec@9k\\S{'$gqLǪ\Uz[2WvZ)UL[ԹB@!p2,9qK7OA8e-Sqp0e6GU /nJW_1~27\\\䩅Й.RS?G=ҢSǸĊ(?ͦJ:l`S8SJPqpdpW {[ f#F5Nj_7a/>q֮N'9SSs}$(7C(AQ9}}}9VYg'a${Ԝޫu\BƂ5zb v8by7Xz{Y ApMB@!p 8KHn+ ceҝT u@%$^ZN`0^xd0xyѡgNHR-4sJzeT˫wz~h .@3;!`"}\fww_2g!b9샷`] >nH0UӒcr+Q{Ac16眩\qg1beD&o++]}WNEQÛs IMtl}n.t?jUԹtYU q -\l }gTzUs4u? Cݑ׉zgG/%_/oPwq5(>iediKdiOi6=B凜 ԡ̫H"%J5* cpb#ne:!94WhD-H'PjԸnHX˲+$QiP"]I<`o@ Z%$к]Gb8]eNwR7₏' ,C9YAA|<7 dMK{E.gyuҚw#vr11fb+kBxdl7}Nme ]' uEjI0ɮzcFzācqkFP կLɩvg ֊ڃ~\^;jߌڋ~Y숁 X^ 5䜘a7ms_FI)KIE60}kg '%]I AgjX'D0Dky0W;c6.sZ$װj\t . rC.c'M|h0c&w(ڝiߑ38чi_ccKIƕƁۺ;n kwQ~KjZVˁqԮi(YX3fG`( %%hhuA!E5=ܯIOzx? '?Z4k+hȹylMLNӯeLny.+3Ä؏ L6%Q[>XY̆(󗒨{v9r:.  j S% `6@tm9҈'ݼ2ѓ X`0i>TJ\c1VJ$6j~ԩeq.fiWIe6x^>  7dAWZffކu("KJM K /e)!52ij,j 3g_qq޸2ddZ(ah G;NjTGs6&9C* L͌o -8bpV ZEsUkԭF;RZFXڶXͨ#onM^팷mOҡ *fPa(Љ]|(56)zz5X␒X~qǛUsEޭ-H3 >^tfR D&/^M( ?WG /HbVa"Ə((f?xdc Zi|iXtK3>Ka~H>9ِ_+g ƔPg2RH ]Jӻ> mrKm4tH4l'YgfQݐԥ2YJ&(E73*`X"dv ܻZUyB;Ys ʓ|ʌٖB5cM-d AqǕҌye[hcl@ QPz0g̨ j^VnЄ bQo :8 ]Z5njm/Hs]d屷}`N}40p8s? l43o5d <;KЅ/-EdvR;V(-A?d6#&Y5=ԶR3UB^+X McU L\:4'Tz2,R#G\oU끧JTh\P\aG**3?J1PR*j7nTZ6)jW)({\  ߓd4ztP_h<6 ǀ*=Ѯh_Oi?P.tY FU=}m-O}ғ*}җROwwj5=[yyՅh6@c|P-hɆ}"s?UPxifw=tՉd.*xiZ/y)~kJwZ2g""7g.83~4|1o3adwؕmX&| l=` ^*j7nwhC^ainu)\z@@c+&!^7Q'tFݚABQ!j*aXiq/<%_۶oڒ 1B4̆rMG( {tӄ+J1DNwp=@*Qdbo~0oG&9+½t5!BJ!oI>JG+xK6 ={iϮ{3ۣX@!P>a^hP-CXt9elAT#$n.+|iaĽ($N {/9t\)j7l-#ӝ=\`Ć DhQU0Rcذê  9(P,1h_y=ƻ_OB*=!aԡ0rTnv\Y2QX{Ϩk r@TfOA՘pdm#qq4J'.+wЭ#=\N]7۶riM~]< XLz0U Oj+c֌+/N> +Nv%/[?U.TyzxW^X!pc$6})I}+!)lHiԺcq\60rtCB@!pmrlFDDJ5orGԪ{[5A1Tm1]N(|9}=CNl b! ?zr_T!йUCSvQ Wn4U6A`vԗFPA;nh?C ;iv q==Ȍwp8g<[2qjpQTȸ1A!!wDGB%mSsl1^!P(n^FYS`6==C|tpf7U.: G6sc8m ]fc?;|z_{馫&jX!fx1Mi._:p{DZ5!M8hd\?|5+]sp!Tv B\{-uXIDȸQI;voHJ6:R /V\iЅڳS #gw]LOÒZ6/@E!c6vEQGsAHF3/ً3-A[;QKq3A+ (B1F9%q46~XIHc|0ߍȸϻTrxU0+m ƾqmoUhv#4IYRUiHFÚaN{3u!lZ|m_fSm/睯aĜ?>KXM$KW_N!PJ&Efxɼc8"ORUn?$(8CpxL% ,Rx)g C.N1J0 Aҁ$5χ:rIcRvm&c32SG\7VOq`|twVFP@sRIl1-/099w%GBO@ڗ>|,/eᕸbukk1by6LVg|,zZ:[X}թfp e·J~ ]ت| @kal #K;M*S {[()<voۘnҒ*XI؃^ZPhߔ HHBGxS2j`ֶ H*$ ,]ܽږ#DX}3yosǪ~Č \Uxﺇ iƘo&=l{D22-X Zh@_>n%M %xNbN jB+4_SQYDE3E<`id>ep`W*3r5+87z1W,Fha-êwԱ3ԤnSmX'DTrhZ?lq= +_hXtMiwE 8YI2sQ団 DiZq@[ؠ Ψ(k]f?B'rH5f|ӣD~BYQQ.hSq{## YyQ vK6^?V欄'GIh!(Ɯ[c=5qilu\H"+.]nU8K @ a)&9Wv$:<U&<H1' F.cHAEjTޘp7}Iy ;5rj%C91ʖ}ci=tRP uKEnݸ6~h)w(ӹ`أ sh8"6b<-֯L k=7wyCbY?Q\nؾsĢpV.} NfA}obG<9T_ v$ӆY9wk1x?Vsv|bRuc6 Ngl5АO>$L0?K.<{QQ~o4X}S3xg$rǛE>ul5^5VPdAja$0Ck6>Tݜuߣ&FC05jӲ-3.];PAz1"^7?e RdގA=# n1"80GҀ<%ÓlX5RYDlX@(%\27=m&+*DqW*5Hſ7%jJw$.y":. Eb~,@bq}b_fIY KH\f|ٻ*A5Zw3H7W-*BPv v[FöPrR TϷ?&ˌu<9yAE2[FCþpٖ;ikb[~<͘˼0y$T5̌1]y8|_cR ǞZ6vWp+Vjlݟ4 c{@}iDƼC@X dAƇcJј\F#Wm4U.B`vԗ\@, ԊTp[sl[p۟$]wfy]/a;u?s Y^}c}f=}2/7L=Z/Kʴ_GaXUF|_cOlj]b4_, A*+?l?b`/]Y} }ߡSMn ̂`6`>)! OπLs/Rㇽۻ9Խ‹F9LcsgH)3iK(w=VEv8=}k;\G>y^Kv7l Z& @~0Ua~dKwhݬ ʄ{.}~3c#\ F,8F'lPZ.1HvN֦&*N6|&Bgm7;*Z2 l;h Ҋ`lFm6?s\TAJ7$PƏ+N=ty%g̍b~Dȅz#v1-TriFjڅqJ!S uD`BxdqSY,fPF5[ ?.lJ>_VlXdYmֳ/k|d6$QPu-rZyMm= ?-v]=3 /0>`?[j=_,hwpȢw+ JLojevTѻu7 돍[.!6\N7UhcD8޻eçWo9"!' JQ{A*(0YiiI){m|nվY>w"I ^ðlwؚX$"^;B! aȩ+7PSq.GY>y'-k1aleסkC2g³׶S9Ld/XTK>?G5g)D" Fch'bu[Xـ " m{NԴV) ǵ*%YO{UQ=*p vb2 }Ēnum^*Ե231"Vd3u_8Gg. aR @р$ǣ⷟>IfCJ6*@UR9~`u}Q~O}eP_Gfs[n&mod64ak{+D!A@1R`W;&+4u(c6wi (б 9ƒ5+2$MAN|P`9Y`6x~oYk'%U6 #p` 8pom1c}e5_ZHIfCQ)Fyi)ʃ7_~}U/69uBܻkaɥE\pEl+|VO=c/ [xq^QƏ| |sS-5=E  w{9FϞc7M{p`< n]o+N iWP:r@`gkQ4ɑ֘Llf UX2ehR7ҁТ{h}M{Ģkً"p!1!'C&1`X :DTQXIh f(_yvBf[ .zi>a9WffbLYs7& P}lkgg[D5|U4oDz6ReC lɘU.\IĆ d6 DHfV%d߇~5祦6}l 85V-_睷sM . jږncUO٢'&b3/~Ym0pu fC;.B"+$yr֍&Rl ^ Ox9r<QuLhX I ;m)B1iǵd1vg]1kw꾁"٪\DիlľA:5{yCibu>F:2G@x炵nvfl$yQVx(މ"b8g; +4bqa<|jlUJaNaܙzź|:7߬E[?`O*nJ=qqY왙I))N9w1.^׏ݥT#d+R\ ,Xթ eZ?صEh㦭|}1O~$%AVVw;-G|ʋ|]lNMIJTO/HNK{w7 I5*ym0V,A8WPX@'1\ (Tnj@L .q/gql˗v}Ou`6"鹄$Ȓ0!h<i@boQGN3AQVz `f@s4,o[&D uKw2=4Hk%5BmIZ3Q,mƘ[8ZL7̆x})}fM [kz|$9nk dFٱh>DAg>vQTvM2h[L 09 ]{A}N30ƱA0!ѻ!^x..|{ybXgM*a7 yR@oU9 6+R(J@VFeh*ek%qgy@|X ƻmBSXuZ>FŶwGSYhSQ]IgK0%xz%TxVDY*m4gjatS!~̚s4pIZugfOfr@,,`Obr R2g*y {DRKz.ia㋺_{a6z8Usvx|,$Qc9zd@ ƞrR2늀l?)R L AN]1QR,H!P"%xO=D d ##d3*m܁7N.R`dȱ Z>©:u@*R(#Me^J4lj7 ;H0['Ґ\[y{{!yy(J$^B*mL1QDl|9#\vaۉ f8CunҕβX^V\@jӂ@#[BV+3tӗvJO;卯%ɣ$il?xX8~"2_;0ǒǒG70J7$!|[ B@'ɞq ' :|H!P*CA10rc6y |}}TNfs*߸qcP2h_9v]d!7<ȍBb=WPA`vԗ\oH?u(z_FM{dӝ:=~ZW3%n|ԙU:ϪC ޖm%vŜ8Ah=mۤ.#_*t"0(a e4fr{褰ɀ)glTc4_BQى /`xWF;!~>t1 /o{ #қ_&/C ;ǧFK3c@4 *>cÖѐȅ'lhKDoE@;L~1 |qDJ*p Ge?ügTz6a\@; ݐ%sS`DޫgGL])GH֨훏v8$J2!9J&=թeCl@ѯs+NMFbHKݱ {+3VzQY;6x}UDdW7tļ1YAiƇGcrLL'+qpJ7& q|Hh}ćm4kvDPk#& jVc=ߨe{^=Į4q(YY`6]&ʖpO?HJJC}=b#usYɖ`#7~fmCbe[ ɑC\4=AvO|*`k ł&GvvDL&f/?̥ygXjߜ Yթ״&ъlR6~#6x\7Fc&n<׸/9c:y_^bbt3$!q4rDcl48HB$`ڟ7{[M__>[C^yt( z3,RRbj(x,)+psA6t{ /[1yEY[=jBgqQ5~?E.$bu.*BGM;JQWQﻬ7+,,}`ePcpe~ #0!,?Rό|h#`d1cX{ӭMfz}ՇH7 8eI~w:3 xDxHN\Ǩ@uA!P+*};~Yv 288E( ޓ 1*yJvkBjw<nj) QA 0׎GGݾ\5=OKNc6XKFPԱB@!P( g!PQ%0X M8G8U]*xfل{`cx+$G읿_sh{ ua6RrB@!P( @I l@&/?[pl|~Gq`ۦz6vM9GI Җ р{[x:e[);֮qϦha΀d6d/9xLU B@!P(\^ը0Ѹ jڷe{v1h6ڀUQN?F~|9ޟ?y1DW҃T= B@!P\E`+bGAޫ~A5[1Ъ оuBRjk۶{`np:/}*HRP( B@! رvrlܰ" ~p^ǍgQ OE771ms?8Nھ-p]7TSR( B@!PR oWgۦ(-Y"~rS%Z(ECG B@!PC0V0 e]xY:uYqEF{:r讹}}@mHS&RFS+ B@!(7`އ%TCC> ,O \Dž,3E8k/fz2k>Q'M͚=Ȩ8eEP=P( BE9uhXO0>^:e(mxT`.oK @z5=IچltJ]Z7*k=D_Bf*K/D{-C }ujՀ,tYfZ๊pq8> 򓦗m.SB@!P( Ur/ 0R!Ԩ=}>/q4 l{|¥|(cno/AŲP-]Swζf45W\h;fr[i.WHU B@!P(?^@- kap3=<l@b~ө%ڵ5(?=vwo~aߵbZw$jUG˒s43'['F ȹIݢt|<8'5"8{1~\NMN{mc-/Oڴ=0kvURq"T ֍sT$Cr46~XIHc|<4K4\BO;|>7Id>f5JHLuS`p[&3<:4~]r|%ZR,Rzi¨[z:ݤ9;i;t6=nJƅEX-I#8j$,< NUOB@!P( l "Oj(:OC(.2 jL>IDe6SBR /,px{ćS]Vyq&.;JLVA;6իPfNj:h@cMV_Ly?VAUs2SmyGzFECkg)f<@ɩ`.,ҁjW@?ز!M3:O.F]`2?s/3;uĵq#}a7OG@o q$Aq9\iKl5-t=\|b ku8>?wgq5tߦrT( B"I`Jf)oO?oJJM{/Qs]IMWy7sR3ؙ ߟ|GKp1)U0%>x[B>҅jsKbrӔiF`iƯ^cW2Ub>#pT̶VR( @ dRN(径Y\;ypU?jh,u`u%Ie<[ʖ}E͌pp}60~KO] wbrRO+ B@!(9v{9HFغgIq0.lϞ҃)(ѐao@ؔ@ZŶneWZP傔q:TT=yԹUTS止Gcu]v?+*v0C%iޣhUQLsMb a?Ѕ֫)Y0=9LHkW7.ڝtߠ).\|%(3>h]:rZH^jZի0uv#_"N2:_K-"n)faPVX6|t=j#GHZvWZV̚<|vdmvV B@!H22/'&󦴌,EId ^ ī곍$_/fBt4䒍Tݜ#9p6æM"yv4eaЌr[JR'na$Xj* Jf^ed iCq1RM0p;۲a|x?ǫt=LmR7/TKo9@%t`xE>a?oo/O bFSVs7=+= r969L얝ωVNHP+:Y_᥅Fc4 TqBXĸl]{o4ᅁ:9aȄ"?#-Jϰ*VtDx z5X4gEI>k0uzG5Mpȩ#ݓnwq8P[ßn1Ƈ9Ҫ[ҿkP0lkHVE:, #^ ϱh.Oa5Oܞ3 00Ü6K4.;MfϿOJBnt'Y3'ݝrؾw_6o\bfNиnWI3S\ xƔ=m@vk.cqS"#Owixf+R( #%6~P{ޜdԢzzQ#V^yoRPZ)JrGCTjFšZUa A 9?OfrҋLӡy=ڰp_Sl m!d:{f.l=tB JowVZ#Zխ=΃'MP *dg{eQa޴~M$fIvoyXFb20b)x)@<fszkUǧF>͌F3%_x{x$^;%G*"kS 5i# ^e<=[t9N˟ (4!|zlŒŲOMȓ1hwf4қYRG4jmt2{}žÏ] f4ښi6_Ӝf)z03\Wݼ|8T?ZM_Wl5f9l^!P(* (yL_bھ5;;ic!yPw`D[M~<>o:ywŪ?xR^</ڟ>w{{qRxw4[ V#ȟkvz_h"zlҒ{鵙-fV}D۹UC$ԫL`l:6(b¾A`z?5zldf/{޺zyǺ`A_/9i;qQkeΠ$/Si]sޅǏLXPbD3sDL~Ni~<_ޓA{ըRg͔g5mƬWOÙIaSO igaq[ِJ9{KCE1y+80uڜl榍F*q-,CfV<^>ҁHY[OL}5çSD>q\XYfd>c&xgV/"r%Igrwo23| $?%2Ҫk8]5O'ONDRRDg_ZҏT+sxR4 Br"`յܚ4 ܰd}p =hmx!Tw\Dѷ${:N![|eju$V=~/> Nh9*yӣwJgk,XMG\&'|{X56#x6t0_ifGzwyKWO@2rȩyV~YvvV2o;ҍ:fd N%5W^|.|ګB fk8ֳoLZ2srXu*g)H p۱$#j| qaխqMϥ8hIR[YJ B@!3ğ0I73/Xa~\ L%%Ly0FFxc<# ΖѐK`wx*)–0Q|yþE2{PQ|Ѿhg=;!'d0!J+F&,líFv=O%5gBw3UMtUƱw$`bXw^}졻  UX4+H̿^@XVx}5ߛ(~|WI̐/lpXruvWYӼXL#-zjڕs(F|yjP( b"  ldX{ӭM` }s?AQ%+7}.$M>KIIœB2N!Ä)L!n/f5ټ>N]HbFEl H4Csvakf˥ݜ~AZgfܪ{ӈ;<rZR[,슖)WpjI=JMl_rswr-޻l1Ӳfv-I2LfU_90jC9K5^`fmͯs0y_aeg,V=+&[ן({gJ&<=>%2On/P()ِTiRx>}ڼbW.%+-Q8^h7 )[W.Ì%!%8{Zxl.%XMg5^xapt}ZZχ M6f b\n{fgXE&z7C?ht.y.|FU-PϜ LjժOYOm8|zQ^S{_E3 @E 6tU] * I7 Ec)*HoC{3s&dRHyw?s{w3{O5Hpx*ϫBs^?ɾqBTԉʔGO*ވߡ,Q]}9rK }`nZm2 6Vx{;r|v:5^6c-v9޵bfee2 uc Gk4)G|a*31:R0` y`Dnib"f"ph"lȹrE]{jӮsNABBBlVC5,\ܜ̬#{ٿcXbK>ĊK 6 ACDАuAҸ-8"x/Zdu(oUz@@@j ÔJ|,e*‡D rO&r/}8s]yBz5g  LN6q| >׵|!p@`>1q5SB4FCj ' (yɰw*v†b]R]j*|Z.!'Ȼp[lA@@j^}Bޙ6djlaKɗ!,Q4VìÈ.,|ZBPnP\Br%!˝>IFL:Gkp@@@eУR! !/=rEQp\ .'Ţ<K!@m!P|pGi-ăԆdqr A\MN2-љnFk3+9<*nt3!>:*yaC:'p?Yx>A4sP,"YV6tsQ㣇uj˞[k}{tP؊qxMyW2shaAmDj$9ο?ͱ r4aC/p>%\۲g ؇H[V{%F'K   PU2&\2AK/ZZ7 کmm_'Ib:ɤiMXq\j!p|pyio#j͓j7;)Zw$]ԥoI= e 4y%Q%v+{6e5!z?OcwR쒌P:]UuC(a11Ss[9 -#!uᜅ46Gd#DQF}9H>?"aYP65vn*U-'+_zIPB@@@@F} -MxVh4JUKD1OI>g˖RHG\?۪͍*@U,<2{|SYsрQ"-}VEz<* NyFIyK}@I    "cJ,2ͧ)NR0IY?0P ;GyJ~Uޓk!\t @@@ US%_1 d{0Y޶|Hdyf<!/B?Z"[   u*_ NhԴͲaQA}PV30my3Yu'JDeKA[=A}VnTQeH]@@@j0>lƏcfk}^hpꭴt.J&B4Gn6#ܰRkyқ/>Lv[妫ϧVMCUe>[;ˢatǠnvӮC'誎 Acі#B.GEqk@@@@j*d VY^4VNloC:,rz'?RS)]QϿW^А6b3`SyQZ=Ԡ^;v ߎI4ooV6 YΜ?߂O]prPHW#Q)%& Bә`{]mOvkM}lܠ7}4o7= m"5oR-{p^3R׊,4N_(HfLC#PjF5 rN:3߼'?;{Vj&O/\sUzX8a4ԢIթ 5]ѨQVMƏ^ې)+ iF2 +lՔnbȭ=#+IquhݔrGY𐐚Mo{S ~p ] mԻK[j G2>'vZiGA?O'…>{#$V*j(    p H4L,% ճ Q*LI?(%# I=;M}ޣ' 'Y9ttu5:hDHϚJևRט5 6.4bA{l{x8egGG4jL,hȞREi:Ϻ)%q &Rv~u!͔.\FXv۞#sog4c!$XDeA^= aC 2Qy)*K !.fB -IQZL% &<72Iaᓺ + ex:rķ]etkߒ^%۩^p гX<ᨍmyS;E"&[Fض/~\NO$v鷻whAK7h=$7gc y;pe;GAب@@@|L,%&d3/Ջ?7 ֿ8H\y}B* !f9XpHct9Dmtt_IIQ$E.D@wh]{q54x1pSUO0yuC 1#5Yi h׿#'nb͇YP'VCj6>E    P dҘPGZ̗dxv(tofJ{w*x ZNI5lԙM䋿9thT7Z1}18gFԹT^6Iw;!k!vh$<_J<}^0s.=1m-Xҗ_x9䴌"Eʦb ّ\|Wf~7^Eݖd*E*E(=otԾ <6Z%ۃb    ' ǟcz yXy$oNaeu;uA@Yqظ0]Ѳ 忳у5Ig.GAugjq^ūXIWme!⬾8Z7oܐoޣ/#Z}?;doWʭ Ձ3t]tkBb7n}:ΦZ׳Թj>MJD;1zuYĉw֯BΈpp66j= F6ҵ9"ejo|̗EEJW    B 2:vev\/ḿeG=u7˸ oީ Y-Q %O`lwcҷF_׸' k $],^*W*)H}%%y3Y!m2[$bzUɿʆFز(}K4v^k\|5'l( c%O^d!m}poL W!j=G.kb!rlFeɡ(USf-dBg#k#%fMw0O%oYzRg4AbTNc.R\*pF5iW!lԄQBA@@@"C"ML^BY޼I-a>,7:׶F \N\/gٷ^ߓ$֕PhDVWz~\l\x Ƙ׹U h-ĭYu0 Wh=bN3kT~MIERG^b:    +.Vdmi쯱i/q;WUvHݼI#Z>12<]>xF= yU5Nҟ4+j+ )@Ǣ{WJ)+[W¦SwXS,Mt-뫡 Wq tl m!cuz]_7> 2 o&L Uk͛][_nVB73BUv\zj%[#qS~[7kҤ ((_㍆Y̻TM{eA=%{#L܍Ke]g|DodvoQCèǕRyV?qm+ՎI4W*MؐUdIOQ-^4UCyyj1'- t/Cm{|2?x@1{vCލ{]HvՖp~|[ac{4 5ZpՕz,Z_kzM;Gn^G#f z7S5]ѿy=V07C Cxzrv nxfH4v2ڮEa<[$S~kH̟$fdSZllMkJtM'P}|^!Ӎulӌ7cSxu禾WwnClkm'?4[UX(}p~;dӬ$dV9X;]sse릴!#0r}[Ázڲ֨;o,QVߌ:/1ot*ovF7wƧkw׆Oր8@@@kx YTҮ,2k5t-k"=3m"5bA5bIOؼoNsizIߓ{nhل&F&$luX׮XDUc dƏ{(oTuEuOC}֌XjKrdx͡R;e?גv:E(:#.9{SeԌbYS!np2_@?:, hh?&s].7JP y&&WjŢRG=xꂾ hR\ "iб5!A; Stz$'h.]e:5v(FE+23}+MrzZ#; ͉pV]P/ǿ@nm 1Lcf&ރ@ jJt~OK6tFnv΅䔌j6ZĮIvdl?p\pGT"0LrrlBh*g. Q"m8K'zl$ṇST͵$û9q%N֨ԣf}9Z]'Ox&SY}+ ɩ37Wlw UZEȗ2PiK,L-Jԏb I/֊   'KtIDATϫĢA&R8df>-V746ݯt9efa[V}P"~.,j Q͊ܗ_q͘~^rr]Zdn[ݗB|EOR3t(=1rr6wEЪ)nNٔIe~=>33WngrZ-YΧZv_YGUees2{QꋕIFcJW龂C⊵ '`QT}@ '`L&JE?\ѢyM_MA6k+>Eթ/WKNσ8?0?B[^+YVį}M3Ĕi,Ul՞}/6dD7>a5E^DLzD4; YhǁD 9}I$b"&>"#"\ӥhUzJ 2޼QxzFQK.Z|$KwiSy@Vl5xW\ /0E   P B[)lT / /%3nݯ­ ^t)%`ealr%]Jn%*UR`h¨;t>!R/=qe÷]/#6<q*eH. K"f=,ɑDy;Fi}3ziq2'4zDzXyAӜ ~U>t_lLD湆` @@@d.Q&`ú߻xDeѓ|Y} yϧ߅!h{P+<{ OB8$a%Lhp%5U9ede>=>;aE4eIb(z+Eq# 2"!rѱˤ9r9cGY6cӠ~ZhR'ȄG|&RwZPBjrdڇ'ϥ7LKKư,Q 9B@A&eR1'33-}eX F'>Dݾ%"xoҙdںn,4ҹfy] z7>6~[tD"HH|p'ǎ4lDVB ' B۸rx/V,xѧpe :DV_69"~"lϮ!pa;{gbM,ptٺ2"N5huϑth~G"hHL(S/FlȮ}mqC:Xi#57r`eBa2v95jyC,Ԥ4]ͻ}V3_$ hl}TlۊsW/gnaj)Q/ڥWMw޾{%r'}6.e;[ N 2ckJY&],w:I@Led5*1ѵG}-kVn}z5W./~!ZJ. v:5^6쓅xҎٽt͢gfah4̂ ̧~޶,iHumU>)leUB@*4֑/V>~zl鼎VRޜ7a7G}yN\toW:҃7)/SYe l81 yEM7;gqGp2|UW_Ѯs׮!۬6NGA.+''++%+=pYlo&ľ(6,W;ve>4I$g3g;SڡB-6?-6$c~.wn\?7W7x.1q<6p;rmkFvb@E!>)cӣk@@HpR_? 3ϒ2^ p2ILPuEؐ)l@`(>d$QF?/c,E08K>,-! Xmʍ?^*P@u=O ]hX%V..-)g6\CҴȘQf /7<&`݂6;ׅYЈz>`糮,Tz£y2ɱ,+6~N08g>ogmsO2%S11 bA-vh-)#X{nbȿ)dTU͆:X)*X^|0XW!1^iF}6ͭz]t9sY㜿G1'vDt|0Ovy ++Y2(7:&9Ƶۦ미=19Yݜ)SK}׏(SCr:ݢ867.J/v='G H"k:b(^{L6{fUy}lv(ǜVyM4gV3{9u__ۧ-y{lHR$aLX;q7Ƶc3PcI?m#bzaCi+i;^ohZ;Y,îd!hHQCMUB@@P1Svڭ#Z&E !\8{K8W9/b :&f x[А}R(1N.)HkA~/`MSU*FA"_BJ/h@ frWBE,P kC&4Kp2햳NӼ%([TXRz&Gak#'xxYS2$T)4yL+E9H4.dԜC.?}gN9o5kq )R#@$;ygڒ)Zn6 pJ{c16Ș)e1m.HcqŹ f8<Z[؞l9s֨<X;6kn|@ ߣ2{|=̜fsHuFދD.#_50}z@vC:KMucJaMnq]_1M߉}S#Rj8>X 7@@k,(l5TF/pkmXb-|sn>*2]I<'GebWF'W5ZkV&L+[*-.;&\tbhxܳ,% uw]/+Ŏ^z)H/rT]kx>?;fV(R 46R),oz!eFb$n]mx5'>"'C=J?rR򅬻xyڑclԴ'ͭ6ۈDƳ<,l`cS>܆I22Q+NpժgIj-UtՈa;ƆYo8t?>3gUXykm)߲]bw    3xDiP-hIbE"ۼ81 zXml4LIhB cN 5 o\||3/IvRyG˕բJ㍆EI*&K&LnaPV=R]XVS0^}qy{s8 oᙎk(qɥ+,'9"T@u0_*7bY[ †[S'̍^zUUz\]FV)kzu=׫)h^ 6xR|Z#ڗQ QHrNyQ29ysY]+XxY.oEQD@@@4N7/@n wz+Cbxs)ީ@|Ra/z%Õ=nyd O^y@@@@@$>)lԽ\p@IFZ RY%@@@@@@@@@@@@@@@@@@@@@@@r|r5*Ϯ~96E۬:bO@ײ^jJ VŲ`VDBuu@@@@@@6LJIi=y9׌LDKO9^mrǛ3Ҍ)ɡ폾:qbVGL뭩uß|4͙>cGl㡕}D6}UG|/ͥ{3+[a-(Rߺ?-9b,^ .T7"*;}IENDB`nova-17.0.13/doc/source/install/figures/network2-services.graffle0000664000175000017500000000770113556316250024766 0ustar zuulzuul00000000000000[s6_Ԧ MǷ6n|K$یfv` PJRqLRrk9|`I p@\~:N(95sC^Oߝ!rm_{'gOR|css{0ٞqzx:3 4ܼ4U&ezQ?L6Ohۀf'TW:>;fv0=$[(|?JyIűʾ̪nĹe#7=RPkڨ]o>͐\֞^^$)mNlRzi|Әp\΋!fSܚK1K Չ.ohjjnieU.cEi:wEkpk+zrsq㷪=TfȠ$ۈULIoBqڥmP~? z "/RY'|#on.ؑldqa^v!{݄F2LvBA֝5%gNڒ(\$BPpj[JVcC ;骲:{DH¦wdBg4ܑwd#h %D6"F=e6G7\%gHGneĦp KZ8& pD8>vqw>c3J$9*dR SWE,"GE^^$ Z1,jQJ,A%0vL9qťtldj2R"#H$_c^Fڻ}DJ…$`',8 ]۲!\QeED!v' ;|s9;a _Fk%x';=m&2EfK(ѻg"zeCNUGqW}j\d`\GlqN w;o3t,2fp$j#tH:Q23Je2&- $̲%r5i! Hn'OF UOg{<ФLvs8XfcH<$;9C{iAEM[XS ̇[M^l̑C4{F@[UE㎨C! uֽi^ w݊ߑ!ta56n9/W ضq);:O'52K'#TUtᄒ iO+-If`"V'G<8/)3}`/rEw^jύfGwSufnl?K7غnx [\Ë(m̨>};N0rf.pQ QEfqf"tw6 Jb"36SHK,AE3X?NdGC.+{(Pkr[ sɳ~n7x#Kptcq˨rbRpGZV64eTU4hT6dwj fԵAu2[#pl.,fCUg,C'uNŪx{at;H$d1=lʡ L`$w\*l 9vЗ[7(禰'#򉝞ixz&p_U:oRD-;*SSik2.&3(;R )BJJ-Еsud!8Or'W#Mqr2Ln99dKdI1Qh<s[HFXffΘc±m m<4Pܱ5ftC| >ӵ"df 6t{W qnʯߙ; m e0j<̔eߩhL~Q}W 2bͦa$Ar!_}~WC\Cpf4bI~'yk_w 5 2 1 2@IDATx|Eg])ҋ_a{m}m* E@r\](bAJ}_}}E}l;v RTZM6l.. IxN<3 `L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 4+Yņ#@\g*yyA(&.l @N>/_%a~GpA#,߷ zȑf4lZ qzejE9Yo8s<@&дtuz^? ǚp]1(zt}n cNCj=K3C+euf/~sU3JJV>]ZǴ2tWƭq˲‡Xlڪp.+{7]K59H4%X'=7mhn2 <%yzvpx/)(V|{#v?oJRMRN=`7]`ieҩn 8mJujnE)HowenmuK&A7OP[.<"G`w*KݯX uu7UҍB=dՇſosOhXUR8*2=%.[gKJO[//W8QI?kMDqKOX.5=3^4?|Ϥ6O %qHy8H =xĘ@r~By{ߖib/}r=8޿dOp\Mc7ׅB=b1vo](Q?cLe`aeWkT 4eh:4zٔ6MT&zo goqEFM%l)U)KRs4)&8_l*`FD@({L gV4?ZG[X-,A)R;] 70\rЇ顿DKcf;o]y#)ŭBjYoKhaYeŌ''fC Sϟ ٳTz](u*+/x4~+~j;L*GIuO}uljcL :7уaS&PMt5 ~tSoRVlNPP"2h|  ThEl tUV$fN"G#jsuiAėwzi9,[H!pPyACٹ (4EzOg]LA;,B aG@iyd݇1Q{jfAذr6Eb}w9sgr/ f7U<8&;9wuڕ| Чh-4޹)ѡAHu~vh!8>()'x<'7'F"/'A#?>:Aɟ^j P0uORo&$={iL7m~PAÎr^(m4 {FvuL% z@\MPm~9K}yS{ "ت^ÔQmz}kh~Q]s.V7 M@J͜!ױD g mR-7ͳgw1dBLwT4l s` |=HGPyZ&j:'Tc2]O&G#QB 䜊3GaڋӱM0s蜟);3u6顡a-A`UC%0QՈ>%2"EzXĝy0$]  A@:;ѐH] ~=HňoyG8%<ݩ͕`sS\(|AfG[Ii$!Nimr ~ ]nty [;-{{>vcM\r@}]?yܷiZx'Z9Wce[: 3 3(CP܏Ԙ5EP'*(zqߘw>x/|Nxt䒇cɼ6b$ĩc9 /F=`8"j|9XLz^xm2e_rSF쳥*~GY[B'&FZ áHgwcϓ(o=>0{2"V9iڷG7gTWСLVR+,+Q(pz!irP*ڦ T"OwxJ,1CG8Ѓ2y^_5*9 @и{yw=uA;j:(xPnQ6ūl>>3=>! ڭ㌲[/BtlO41ԩQFbXռ>qB=P_r8vyT2Ƀh={:|)B7r܏d:UJiʾ(6%%*,e]Knx $?C o.1١Kvs>eqy[יf X ;Ey sު~gJA4Ss#}…fFX!hM6/_(|6ol(vvbf48!5N[~y4A[/"Mjk6y]~zGL9PeX΍s!?<);xG՟hKWeY({3QΩqkUڋ]SotRNhSl1AHkbmL4q;Fț IvtE@#EF޶W7VU( |)gt!efex { QJNW~Mt}:iX:)zJd^3+4xpv.1-K \ʎo뾗8iLj 1vϨxQTcxJ,1m kFPt0N\}Fh>㝋{wfi0!_RQ/dyy-ڏyӆR۶pMw>3d6̀o&Ii `!;Q"v"(͢ cnA좣LP PC_6~Dz<.qѯ G7h9⌆=F\N@JRvXNf4:f)ݓvo;#=/}.PjR1Q'l}W)<`J0c:\4ȍ! 8Ρ ǼTϺ q fE*د4F칟)n.cLvn+=nASlk̊d;F"D93ڤGSAہ=hȰ㹷L450X(S}>2wZȇQhrI@6FPg=KzAԯߌɴ)t ;:'Xz񇺉 c B!-AGx>/WAAL$:"~5=+2׾\u:8>K?;j#"UH-&wזe |u[-[((+L6TG{;.B9(L2.g4Tu>@JĻo}YlPAoI_t}=BUoes dF ,hTS |B  Bw bA 'd\}t<\G>JF0NA٢Ⰴv]a5%,trSe#uۡci24yzJ)ﱅTu]xt w縌.}D*Z.eF2LՔzu{gI4 ^OŎE2ŞZȟ\vDjkPbkmJ<*]E'jgj7Ї uspw4;%"Q^6*owH|cZV<'vo'H| C/'b0 GLLv uhv0çsE:/3p?ޞiuM+҇q_蕾C <-F>" б,]Av+ jQ%dٖ+"VB<9qґz\$^ k!mG}:.o$hZiœV!S&(ԅ4`644Ow?6{}x;9]%ۂ UI4F`@WDdSn."Ou:bߨBٯT#v·C{sJg|Zh4Pǎ59*Dž>l_]3>v-ԟZJ^+t4NSl )r;FsiƱ|Q"dpQ0pXSXkٵ߄(ByHxbW޺ F7mEmv""w,Yq=ôfCW*EjTs[?:45f<`? e[<-vM< 銧N:$dK#᝹\vcۋST~gV#An-%_Fډ[BۍWi" ~;z4|J0ɰxeLCG"[Bcfu>pfHf2|Pl)qK]Y^Xs0 ]"g{AOC߃>ԩb+g1؅E?;x0)^ǐBcÖP6Eȴw?O Cw-4yY;UVa⅐Lǚ nN+>3F{DFnGw oV݋ѨO{:Ǟ؋z9;>Jho9*\8\eLy0!a {W.ubOhg>uZ Z8Gۏ(M_#͢cЎ/Η{4{u gmŞc_ޗNhQ>3<#9dYwcγi0e͆>vy.X%N[ yPTu&$QQqNإ;])6sc⠶TfFBM:آ;kyτ>hpE=c}0[DI3ݩG|SnS/%*)E-m .Al#;ֶm-?lgK"կ;3* rjD_]X o!*rZy$zv@=əyEB,dE ~)!ΣMێ:hij+aEzjU9 0F6 $-E~T/ IBTeAx;~0th|ޘ{M:Fi.b؍Ե IM />~0*ߋ{PߡrQwryY=Y{vm6 FyOl9:cbp01.-ўD7osP:EPQTW _l+N X:SH&po;|tݺ&+.jwي)<,a0knBvpޤz.IM aB/IFtxooĈC7Ez!8ꌗm. l=pxLDT߻fX+}/_Ng+N&[R֓HS=zLu^_SnkJvđB-~5g6VDFqS-k)0f4e5gGwWCx;C0gV5Wef?ԱYߢX]vY9q"AgTC'Ҍ |ܱWQ9"MNXt7iep(Fˊ]o:1c^1d1gWj)ɶʦRlsA"&w9>л7H\R߇iڑwxn̎;cI&Fh𡥊F-&/n(:=ZLi& #ܳory4aTڧQ#dܙSB0!rrFHH F3 ܣ]Nʍp.| > tgnfxJB#o$nm9rgկH/ծa|AǬu O2Ոeıyn< o?ؾ~ IksHrd U^ )uq<_+wbgD8"j12QZjA sJ>PaOSE|*6t(=<ߗdיn t{U ~O@Hg o %)آMA0t/+\&T>H%KUc-E>͒hJуT^(Mcǧ$8g4tͤi븻-!up`f{(e UyN33@ϯs!2z+E.GQ/i*{wTx!=ì<=ksA\^b>mdFdivvEQ.?7j`uP`A(3Ǽ." FŐ@7Yw6mλ;#"M hw=x-Ϝ놖Xㅺu"u_- N ОB^ŧg_q?]wf<"b#@ȞPfo{L7aYv] $7ApLa<6Ө.)㫸Ӹ~Ol7*0\S&qNڋz AaTReJ C\ڡ*U)tN-޵gYNo^d,?MKF4nC e:FoBzox܏EWWl7|5h2}h(?h) 5&\OxjgeV_ -[@F>į 9aeb(XflpE0E )_}&Q*=EgSjw-eڏh?JuDR{-|vE;< }v [ޅY5~+}=ٹE|R񝌅u r@,?>*iqrxǙ(xmsܭUa"%M G!oPVhfRY 7)֍.e1lwP>F(#nH4R H|-ζ`PE)lG}Zp,Zw~8[=3io^δ17gȁ!e%X+ #/^w zԣgP U[DuWmi!+, moBcKϞK<~NBWOzĝL xf#tF`&\w@k{djp;:=HrG_gm- Mt&FD~=:;*zSvCX^>!yy ^ _|v4|" F̉g_ {|Y}c7Ty\jmA` *Uï1BSW3!(R>Srh] 9(y6KviCqW•p:{#zw{+g|W:+MvpPwc`ʾ k+R}ٗ0^G?w!B0g 9={D^gGb GuRV^oBc8ޕ'#xW[iCQ/nH\='4H=s5TFj@y18|?CgKM&w]!ZGRVb}Q*P1md%e*M.RC_-y(jx> ImԱv^[j~0h7=^yZ$Z:، $>@ @*o~:in8ړK6cyLOmWŪbPZ$eS %l̂!38=m-wS]ܨ^sbw v뺞ۭT<]VE hX;A8":2{Ǭ6dNA(v|C.uY9CǦ:.FE7Jw5w)1C[FIt5MmU1R:_/״4*oZuGXb6JS>Yk,"ox:R.5MƼuYsyvnֽ ְsm_qS<.`L 0D`a#Q$&v{9-Q66?|GԿ|͙:u[SA׽E᷷ S"@p* }bS0t]i.d~3&vHN#`L n=%_F81֤v pѦ) Jb(ML`/4?Ogii41&)㰘`m B]ge:yɮJsAN` %;6{桦eђ3@!F `-SG}[_:483g@s srMm5(b:쟌ǡu'/[f_OGQ09re [sR>JߤО;~?~=tJс> ~>{5MNH}4# a-س>k`:4AY؉3~$ Jb5U{)GHFch,xB/Iw% J J[ án!hv@u;<W6'SzV">QRݍ͘`L~ tNu&Fw8SӦmq粍[=|QNguss.vۇVXm0m|D #|]g;BJGOPUHP~SiɱMe>='/>sAN֛cC=&zSO];` Ft.lI k3s:A4+f@>s #)K8FzWݻ/G;S,⺷/)l. 93&@cTMY7v` #~3:A6I&K1,l*Unj$?ӳfEzc6Ls>QʞRKfoq[eq)Tj ~X@:AV %G|ψLiCZ})"N *3"l}ŵ\Gr$6>`LjT2&v[PrTR4ɻR9$lNjm3&+`ʴC3SWёs/jmYt#0RC*[QsҔam(::ڏH 8b6EC Ҳ/:G w^"BձV 0&!:&Hq3gvebOk.>!r*(E,[V+9} ,r @pa{_jc27YsY03҃g0icrޭ.}|c8C#Nv~s3h`L 0&hFJnEY-R"|Δ$ʛom Å 3,JGxԈlOV/`L h=v@Y޾9e5i{̷UJQ \$d8D7"sP t'% Y$+IH䜁 RZ? 0&Zq3gvJ(., XԍfS^s̕]\v3NS[ ufJ&0YsYrԞ('YqJ,qKLO ȳL 0& d'BcRzč9;SkNѼҜnzve|Z%L 0&#`9h{6> ~^fʲ6&C3z~6Zؠ/; gL 0& js6(^"i~~5U'RKmLרBO_5*1`L AnsI8%*{"Te00!bNr,`@]|i|zUJ^DQc#`L C=5^n5IUrOoi9QMB /'pPw4Zw5:  v`L >h6Inw IʮTiUD5 DF MZd!pܹm/nvEwLj*I|k2j% (C֌Θ,k6}mt1D ]կ,3+kC: )}C)3' !9{t^λn*n?.v,lΊm&@z(SZ'mnbvgA$]mFUԡRZ˪fV0ӃYzYs r7D !Ye#7^3aBP?`?vgJKb){w?XX_T13, -]_\*5)={%=&䌶οCKD9c/oSʗZcښCPFyzqYoSJ%,둌@hjs_,q1=z"=_"=/n?<1VE}& ♍qcW 0S6ly^ ;^o umRDO}R#)YK`$Dx!'zE L k*r) 9{(xml5;rѹ$\< YZҔt|<7Ϟabt/KC=EKSC9tJ[g>X.OVXJaYC,l4I HIxSӴ eݼ 1=E)9$ܥ-;_(qBhF*(?RhYF8DN=Ò"^5D<AQ=qsE=+4y#=CZ\#Jx9ARnC@e EpbM _3&PmIj[6Nå]ԧwcĠ )>D,~g!0!Xu:SVN}e%[x.?n3il[a]Aw`Oz)0Dg7cL:Wb]S͜eux 9R}oBt-<$h `L}Z1,6,͚>R퇔C8Gy3͒7 Y)Զ3g,iK~r:'j?s+x \hU[9: K|h8* e}F rۧ~0pu@hߺeGMQ%B07/$4Q*:H FN#eHP\* =K'rX!R:!L={|_L] :rRF`Σǭ;- "vn7JfEpǓ V @/GǁPOϹ?K>3&&C.cRoN;*CPIr~Ơd͆&:&Q80t7h ݣ]a]!S!N~[MB#=]K 2a rE;oskHwa4' XoBc١Qo;τdL.%;蜞{ i5ه&ke=!XL NRm/I\V.$cni/Ipnێ7o_ouj7"Nno]SŢ~h7آ B YB؆&2nk_ JiFX.vlI'Bkի9ּUнܰV|@ԡ :R;]>5+N.6G\^h'6*P{uc9GQ>߫0 S+1q76xbO9#PoK EM"MԱXA뇄wo~QNȞyi Mh&4*DsGf /,̴U~g2 Z1 WCvIxyF'`$Ϫ[BYga" x/B5zd,[,jTi86 ݾQ"gHVR٣#mcΦqr{q]gB+KP;Vۇ;f92nyLgO|C+V]9{6qO:SEī"*W MfLǫ~0ID~Nǝ恵5Mk7)VFE{N6R#\d(asSVk ^Jh7sӳvWZun٣&3p8ZT]Eg[:n؂.t#3 Oӧn}*W $&i{AZ߁%ff|E \_Bi+o6 ,OS!hC;x^N䶧J~GqnQ=CQzޭMFhP|RhUQBwDQm 8-'l>:\2 O];bMN.Y31ݘǛN *1'@Svw`WՉ @k#赺Hɞ[6Cj](;hVMdQ] Q3LQ!8hw"g*ztpLb}Ld0:a~(5xڎvYfUѢW.ϡshvk3#c>綰U6mS(exSqa OT!LKVqѡ+,J'ATށHGjdupҘsCcbL >ޮ!ת06Λx)ƓNԐUSQ+.HkU|Z˥$yKoN;nuh/~Ǘ{Z7>>ʌ:v+֕cN]cWڹw\Ǹ`$!8G#Ws< mrTw>oN}wx@To(w>fLvR5 cά2'QCy[uxҳ3WHkTvln\Fmx>n* r$hjG3/*lTq'w6OC.Z< YO4Qy!Qub>華V1A G;6l=uʔOc++;H@Jm<4OA:cCP[RI_ȑ#M/?W ju|#N{On gd^Bkt!B?e݆v7 y*"}+:T)gRf  ډaϑGᲡ|?EΙTW<&>zf 2QYKEM q(֝oUt]Wy'=N%Oq q v)ֱF_L? !OxgzSs/X5Ǵ6%WavU}C`gWk 睎'|݊r6؃ lFupgͩ۾s=^[.eB_Xߴ!fsc 5EkюK%}ҼЧʢX_Nm~k# Ozj=q쾽ԵտU3uWZ b"iPL i8>;#/'p;Dz((WazjTb{MB}jȀ+#{_ٙ+q|~7.ɴO:mjiM&G $@Ӊsv ݁$|<ߎ׺U=[VD\uvm)}DP5~4Eo66_aدo[%kJte!jvANZ_S?])`?*(/D2H)ʅ-ݻgѦ͝ӳC>]G 6L(102cz޼ =c 4QdmL֭gj'}-ڤz60XL|P|{}z䫧W7K4xGBhWz ڼD(k@=ԟGy=hCؿX& > `}_,_Zf}v-c f=Twi#hJhATӹʲOMTV9#s>x)ZMđA|nኳĵ.>hGjs @yFyGyHyWN=4kn#ZC|XIBk5eӹCZ:GxC.7i)Yl9W7;gN=5E XFR4t6AӺtރ\ޱ~wo쾌ɨ a?u*F^Ejph! {!4pAG$hm'?:5DX 2 ;t(1 qRWŕ1CgCxe*џ h|r}iŭ-bMOS r(ilT[89{a^kRc=aRxΣ!'I17[Pv>z!|Tf=/_ 2t&e 7sf#ǐZ= /{>isNc9oI˻jIJSn2z齼v"y-/6$F\s5$SlG"@yJyKyiWNK%Uʶx>dT_0ذHM#NAJ(`# 63fژaڂ1!TP~ɱzjN9daly3/u Hpݻ|)D,oe?/fAn.Awok>j{~5TNOEͫZuWLw.]6!4w_ŕ G8<ݽj./lar6!1| PmoDOTMQg%$IHO3?7| 8Qm[F[0pvF tR,wW\˯&H@%RJ]? m'ͮ}2`B@:kRnvuMIKz x?͢3>j! Q_ү-JOg0<6ާʴ*7*]Ebf&~-BMQ5_MuG{xFYS_z6ӳ^a41|o h ͉fYOs1tf7j@%;'ܺ:awx *6PbۼM?xo U4EWA>.cqrK4g?GXpmz B=kZJ93J $ilܧEۯ.:H\%-j <un@tڧB6+Yv c~gKZhw;}v?xޗJ<^B#8M[ |ӿ3H&ԠW> 5V&R.] @Fǫd>a;F}(0zb^;(^%9fOEF@K)#G뀏I4B'zNAQٰgyOO}*gTDwz$@(!=Ifnږ==sv9sEjجX~fa){t!Llp53Wfq p y( [[0Ǹ8/}=ǥk;8b< `Q}WFL1zR&U4oiiQYY8}wHrܝ d`u"jV$h+7^Tyq" aV,/F v%Wŋ uk}vqmb=^P"JѻCSѵu#m/'$ 2NW}-Hy۶p< yӱQcKE\IL%Wv } 2ā琔b.eqY[mY,1~˺>.}hV9,8+8;*"N僃D5ŽC3 8k+)O[_Lt'XĜ8'ET%Wp`YKzJJ=㯄 /f%eg>E_|0" 3@BZ?:z7(37J Z6,wOyHBbq};~CTf[V RLe8"A 7x1(r~Z ew4V[#†Q;sSǗϬCG*(~^I4ĕ?%324qE)hPt ¸aF9`w+^V up ߞDqbYMGfO~bVٔ21mJ9\!js K ^r<~1sz)lFQ?!Cu'0>G3ȝgƪPn@^ @o\Q:M{i0<ѧb3F"%lDNpI%vH$?Avʸ҉ pBuj5Y GN_ )TNxÅkw>vB4p4}:6 `eqiµaDk"nj\[#Vl/^OM#k0Ө_7ԆCz[6>#l+['+/^/X]*~*hڲ6=bQe*Á}:7+{+4PӒbh`',uj!vi4^\ڴTs@KTQ%,T64kz@1}e7>T4@2:!'@3j=W[ѱE}Y]¸x^m~2I*~\I3uX j Za/V˂^xO bb?ef ׁFO1WCn>q@/a]R6 澰z/dfc{†)eC T'ЃlO{xE RxhHiӸݯԔWo\INKt`T@ow- :0Q44((޳ϦJȷ&_ ΈEg{I9Q՗ҾwGu@IкIq&R_Yb_"#ټ~dyQ4iAX_q=!,$HP>m -Hk|CʉvM#SgBĨ?&VYϿvg͎`Q-ĆG9j>)3mE]n]QBywAe`4HԂ,@%O`Mќ#w$MW1k rVK N2n._^CD:!d1۩,v>%<{IL9rZ2dU<ڽ(|I*h1gQ&{ (eZ,BBzFbc`rD$h%$AC!'oByis V, 25=CDжHcGnwL.24{iil1D., %Z֗ǣE ֈ%%K?.h> uAnz!hڵ=,vघ4n@DИ|@>5rPQ{.F (Pn0cNC0z_%3H{µ+(/&hMz=YE+EFu$cs\fa?Cey !ՅWhc劤닞횈a=J&V$ j%$V2:4 cңmSأ]rn[L>)p*AT G#ɄqVw$&e2^ W)/ NcNCD% H1ZQPEz8phReh:6-^VM /B0ڌчa=JiZHA*ׂv3'\~DvoiDR"#M8x2N}Ƞ*m9Cj0쮇zObh|f/(Vn/n:4mI't& 2~%uk%&^WZJ}6HoM{C:/5GtVـ-!TbԞ <,K8)jZ4\Gy?f00``pMݯ`c4zu(iUА@iRrגX$Б&dP U*=M%WǙY٫ &!CInJhD"c@ v&WpxySҬRfZkܞ"͝CЎp=J[(]46Z:u^LmZ ?ك/(@^ ;.8"94s!覎&XJ"+ 5Fddb d *ixZ4+Z< /8ٛo^?=S];4J$v=2O杍]&דPG`AdH/\\$sW"H۪e2u³$hTBT8g.(΍%K+7L4F4T[؇W [SϠ.~8Yu(`a W5^Npa]$Ș 5Wr+uNʕ]2{ b5_qarey*SA"a26q)QQJ .!A2Tt+j1o&VXMW`/sĻw*TP\ɾ|J5-}x.hq_-8;phfg 3~?8xß8l [^K*ðآ¯CyILlz߁@=4 [a0K/T}=o̝.҇Ӈ+ͨ1`aFvIb:W.#1W#)D1ZiX%”s#˰t%3IZjc{4? lf7C IS-j0%%cE0X/ٸ'W3;mip5[+BS3YMh-䳴.8dzCT:dѳAtk.l+ S:-Mh=ҍ!H:jQ`iQqZ631%>LS5B3[t@GfjH#Z ЁfWtPg^ pnOhPכ$&gm^.\g(0YƎvh+9'VUqn`~ @:&Zjڨ݂FH ,|@ҍ\= DӯGknEs*F4`@q^= x&;q3@1`qc7\}~3DYR4IP֍)qO} "lo ̑{Yך1WGA0:Ty8ݼ @04ZU;4ATJoZQ<Fg`_V^2FZ6D%R@ΣaIQ2d: MwB2Kˉh[t۱VOy#,0ߟD2x4_Sx6dG?fO"2MdQџ(T̎b9,.Ng6HXT,~5o'|Q(<l S jj臒$G 1 VNj;~"CTx2`Dvtn?԰12ͫ}.)l~sg9eã;[荨dy#p@U1 (q>/?,tNB-9ضs"j&* 00``]S܇Ri[Fumk hOva1 [{J&Q\g;df[>~Sz$er[oPbY;b㇠@<Jp[${o܃.a} ;(}b#Uw .`+qBb W9u*0n(JU2@Nip@LŅ!cO~=ݿs6vi+?{m?P]ubfv)p/h[v>|1]H?/ *BJE=qÌM8[[=OА'(Ҍ|yd>*34 5!Vۮ8َ# C4XΙ|FY;\}u2)(ba;{.#J9 #"7:g ΞPP?yG84~tn ,p6ϵB@A߭0hvکߠ[V,s0 0MxizA u)1/K4YL y?`'&o7*p :-0_Pt#>ƛ޻->g 00Pz0@<"i1K2å2΀Sr*<Kl}95bD`ٲoc`Vm8.Z(JaAYUb#L~&KXpLHrQ|o` 5# 3jKbr_9sekm% :t5No|-AI60g+Ac`Hn: :jZ 'BTk _?<)|n1khP75eBrp= HI^;Vc3oϊ}h:iNoY(0Peaҩ9Cn2݀m64Y 8(dA_x)2oFT`A=NBo:#6aDxS+<⿞WY+b_I|ܠ"WNM R40``T`@1j_*^xI 3ݜM2&My7M~("8Ϗ߱y=?&G?8{_N}eO=Щ!l8# /f'*CFA]zFǃo 2CVq&}eʔ{ѽMQT<,9"z+aե%+1WbkCVy*#d.2oJлaeZTBW;=oӟ;E~KPpȌ>}Fz8 :3AoޢSCذ3X&chܕ}\YQW0&;̥bd((퐙%>]+X{6o1z h"_ONE䖚]%lwBfGd+o leQV5lKŃ1iQzznjֻhndAOuë LQ{?ƾphT8t2y gDi1kedNJIi\GQ'X#x "ddfVWފX6 Z+_kwgDLhCz6q8֪=F Zq̯2o{Di:4K+7.,w˫I1kICzbGf/Zf.81>/(BI'd&xE j6UՊ5(?-,s#kw6@?eݞ2 ӯS 1w}=o̝t*vqE 'jTb8ls=KalYܣz=4%x7!Ptj1tnHp`m:b1%`aV@So=5o'5` X1szѡy`HÆ"l9!Q_ĵT"o=/[7ԤPp֞Xum0d&lqۦԩn10vcYq1ɸGLe~T9,DQ[@?YiS>Gٻ`cɰ:m֕VQ#3vPq;JCKou$]F+bGIgd &H fvoj( 2Zԗ+ևp+^`zUFϯ=mq0iWu˱@иnx tn)ƪC UʌN`IɝZYm׬$b!#h娡 AHMf 2ַn'ա?KK"5Ih zm*C%dVsH'f^YQa9Uqo!nCi_ ZԓUڎ> o.U*/Z7z"yi R^&QC ^>c1iVi5+W<  p9!⭩қV)i͘ ΓM=9{ϔkSQeYIhȏ 'vz&&o3)54sz?o[QQP&:vĜ$5!n[ ׮t2&(%y@MI~~Bg,sVy>CqJPx􇩔^Oj#'D]@IDAT8dQ4kӖFRNӠ PHv$̒17j`r5gQ}txr򙂌B"ԩ-s%l13 8qͯߦٗ :l`XCE֡紏c^tvʵ$KFzzEޠک4!-,ߴKbcc;.-"ʖ9 :S(mWn+$qQ>$R)g~@9a2p@Ԃ)b2\vF4-~ky}9F5^aÓݒ lr=LBQC@#sF*ULGY'r4ӡjIe䦭U={G,mtL"P +&=0߅:HNg~y'EAs'b/n"_b}IGY ZɫY{2ogkT`S=ƊyyM[yNr++9KFZZlbJ6ɾs.q EЦ@?-o_Aq e=C_QD$t>p_ks}zJBx>ځy]0$ LI y: N~`A GA jv$' 4]m9a#n(:?JXjԪ@+l6_ރ82\b>/|Dī{?“вa-33?MlA ?lԖQdk՞60Dj:BlX;cAAk˷йV*p^Պ1Mg!؅)cvh_YjKeFE-N9y€4<"#4Af 5\ޫ45Fˆ={G.rl`ٲ??ʅT'?/)Y1n,,^xxݙrOm 0`- G?I?`zQs<N'FOzdۿKŭ1y2KܙSkêTyj*/07c1Vi]Ȉ(ukTUv! WYΠg˹"tv4&6dm/W^>c219vKV%0F0QQMۡyX:kCm&"Ni꣣NwSrsefvn\]p}P0oYP/~ ,4NAqch6b)(pҌ@ˣ(t !{}^&} Ŝyn%l痴M1r6t dd H> )@njS'ٴK:ep`,zqu2"ʠ*=g>ej]a(ld ުDmaЗk2ʁ]9T0AXpC,L͇NML|;%3/dz03X;s̾-FjW98uWUq9c:{﨓t$BuM_ Pma:3i g hUc}C֞'|: JqN~odQK'(*}Po\p;SAf˗oS׿ފuc 8{ӺOг706J}0;K7>(''_kkU=+XwT[x>6_rݴmꏓZA^5mS{y" xQ5nC 3:-]BTn&`qQJ ðohT4[= /_ze'֢n\z&VIӷS k T04B&.0< |5cV?IFOWCt.a8GA2 ا]8JCb76hb+d$8n:qp+AgX,d&($}$0]Ka;ѶQ[ +IܶfŁV5w]Pr6WJ؉]M|jkmՁv 3ce@$ ؉ W>ZuLe1dPi{6OW:Qӂrߝ8eZ?^t3Ͷ?4]we Dv iLs[lP?h)a`Kd0 `6苲1'ͯ.vZpW `7n{ۼܥ˖l Sh_f|Z &S†l&>RE j6i1[$< pPJ틯;.zڻ+8wpNK70d[ hK1'%3pt'|Ux uf6Oꍾ-)96ѥ\mBYpj~ɐcI?aR:Ξ{I^4>/L7 Žú!q`ٷV}xv'Q0F*e+gD@݂t}sHarfc>Ι;ww*(3 %WQ{1< _ʨBtuuٱv5Ɖ妄 eFl4H(@JU U믥+^luլMό51GpNZRw?W~kݦXדeJs7rqдK*uѷ 3^2sàe^U߲)aò2Q Y0㪑/fdX cx` \|+Ws62 J 2 })% \HJ+J(hCII i7?@*CLBM\FcN`2N[઒QsAL}˕?23.~rƘ !6hIaGz(3O~^FVAP Ǖj|p' P({WhDi*xM+vϔL8h֧d=BHCm0+ V M/`y~BҔjҔCkBF߈@WcGqZlVv* DM9th&FnF+J3q [{*Nլ*^|Vu1hq6JkEyO!.!QIuco`c`b,&o).uQ;胈P4BCAP2JP8qIj՜הbw5~ռc ;8:]ElDtCYۿjہ<&TgK+my Ej<돿v]O yzjt1r@:,;&UlZ ŰP9l(W,+#X,A(:wgH75m[EIHOd~U; JPƒTpN!yEoNy]=gw~_Gjn 3ws̃>h):DUkwp 4M6ZᴮkPp51M:Y}LcCmH9K,ok3<>8@L˟" sy&um(q3OT^JB0ݥ.Ej#&KTRVx,âE>*AC} фQPnd8js_X0裰_yOч72jP=SKo"~8M;1phƃ9J1P\LOrÑD-hMȘ}8^kFbGsgy6/  [9{" \ІFwPM y^0R3rg(ݩB1ZAQ{vc`@LiMZ=JSBWEU=V bg*R2I=c[jLy\\PuQ\LzyOߌtBAW+^=V=-7p;r?%dk9cs $\Ki/dTX>O-k Bh昚 Gv޸x~<8fu9?cZ*NYocG"2_L{y#/0 %+koFs c2Qޭ! 0`o7"-R6 )V-}ڔŬ N&s֌v2\= 6W<1=wz?r29oc5|>w̶1L@P3>& [nVd4ךly蔌FE2 ֋qCAuKWkWsIkc ȼ梉 tUK0'Nkǡ{WT>}'Z3)k/YBHt5~RExKԮ͌ hQl:l';Lsfd 4QI3@@R?kɖT?ȴ S_;{(:Xl:Uz<1ؠ%^x7{@ן-10qʴ~lSW8h5r,ٸW:ٷ}.;Eo&# DHjC3QlpPY50 I%_zV2vz2.?J|'a1׋tEnHI_Fyr~`20AuЮZWy!h~'G^נY_ZXtjIj!X&s>z+4%x˾c596^~7EքǍavF=hc$Ly0ݛ2v?R3,pXgxbGE2S(7x_Eѷ;E`ltomϤ4ݭKFKH iϤ DAWtӟ0Yޫ^@jLĮI/Qf5б%܅+ PNC D0B f-O##UwDV5 YsLOo ?叇__Ea}=C//'ԴW&†^FŃr-ɒ& s}MgV>KRQҌo1BQ-xNIҮ=qTu7bMCzStY?O;a6dݱy}ã{wa c1g'߂:h})c J0cVB:waӴY=胇0渟9v mF<ͨ>ptrAK FCcr3 "j*YD,_#$hRd,ŐNvY.83 C8/XKNщ4zB #wxϺeʔBO+] nqkvc?5 Rw6{g0h5%) D,A!3cȅ}RCO:}-gI1xz7am1/o]<MhiM-Zm|N\}xᐽQtmX F""kT\"[w !0gc`S. pXtW,,>@>M9)9OpE_NdMꆧfTdDF AY+rskgB:-܇ZImԯL' Q>-zJ9x~("C'ĪyMl?l1R: :/2Y#N%P1q+^}<[JZ*X57]"T ErLaƄ0 OhӉӣ-O8lŹ8gM:t?o6Fƾt` 4$nX˔ xUc\:oɱ昗 zv>2Cy޴Gg|L% %l[093 V`40bqFk7o*NI oMiDЩ3^%D*BVAC[1?ڲ>.,3&sǽ>ײzl۲m82h2W1ֳ 31slO ^~y|11B SjK/KnzzyՠDA&dҒo_;Z08:lŵrwoZIb"l}i@P 6Om3OMS̠S 2Jad ܊ 8aj0G@[;NvBuw[=N >D|l h=977{~fK1؇T~+8t9~KB_z|=2rcAcV8ofbjVJp<9yRj8i0T/#~xN-8p *g s[&o#F(ÛrY)=p~a|~bѶi]ڍv,f-(LwO{nHeQDN-ZmTUT^lPS ή^E1P/t>w_{m˾pF2-k/88%=%:EDIGfpo%^IL%Wv)Šxod FpYYPqIk;+{o@,1~.i0(>%).ڣ,?\up2zM%dR lV"o=we.~(@wNQq#Z6%*a2ZW1+cWxRѠvu\$j7ЈUBXaZTvxe.qH<~g\aLŏ7!JE3bň֍k%Ȯ>^xO bRWL!:W\ c'LT)i Qn~ z7aY6jp)l6 ܵaC;w:hH^`VhJX>"f=8@jFᙰs x` \| +7fS†aiӧiݠSSҩ 1dn++%TV\qok7VS2Ydޣ'_ 1CgsWN` o^,k%hJ[|fex†*A(N^&{uh >KeH:Ccөe}Au(jU"ˇvI]OK!Jn\й{K7?2̤i +ɱ780e fab3nx/q5)Y|:$9؊;~h+dx-",.6џnw ~ZpQ:ե0nxwg3mKaD%iyپL81f"^4բ:pq QZ=ۈи)ߟrBh!\Ly-@xsF^ǀtAfI?n7e$e@˱KԶ^df͂BW.@M:@fVfZZJՔqۏJE <+FČ 4%6mO $N-; τnw)ngiԶihV/B2H/<0,WWNܗcTN&`9z&NٜPkv\fkSDhP`xq,dP8t ?}:I!V ٨ZQ9CnTĠ@sF,MʘȆ"}[ ~Cf:u'! #f^0\ R^nv$&UH{fA}|01^W=Dں ڥ?E,_.-sU /B ^oZnz=grqT=jYzrs섖m#R`R2džfVV@?&4⽿4oDv2iPAm>Nmp)x4.&{ NEVpw3Z..z6d丢h#+A]?a+wh1W"c@ C-qPA hpOp# 4IՠSZv xmWt†Y2&~ob_FZճu t5I4ƾT@&D]%(="1GȨYF"\R$ЙČN9|.p Z&& ($BA1l)`Vg@S;gHwTC|N*Yt&$A 5FR\b\$WF\$[fx]4DlPxiX *pD'3 qx hޗmcƂBjM.ӨQTy}$4$АlJƃТAXךEC&Ѐb}.jmN揢W'⪱k;2*Ws.CɀPcqXp"ɔ8dޕV#qA:bvItIΧ ZEѻCs1 jU~[%PZ _*Mf] Z{٬kU̫{ٓyOHoKX#w]:Wh^?BA O݌w 3iBу[F/ЇSJAUj6M-ĨwS{2j5(LPpA:ǙBzE:6Tcָ%F>n Fl{T_G[-Z[K,#|K7fUHB o2u̳IP4+F['햮ɚ&44Wil ^J4m??kw'rS#Y`Izj8Z7+ѱQ@!u_5 o=MԷn!)xT 23gP[Rb(I*„'~gdشyim [\ TN$M=M~Y3Зbo2R5pjk7X?[ˊI;@a tܧ H }{M9!iX3|#<׳]ShNe flZ]x-w0|(9,5߇s]]h5uVх_YZYżiiaPchqN'FO|>mJ'Sbs3O}^{w^~[2pDgNA49ÞAzƄJ-;4ybpWd"jt8zgg8G&$%-V!^? z?N_Ö?[F~9&oqզ–uau_7TT!"^9 )]6 S?-{b7s.P1b?ɍC`5A?u<&Sy/FctGo_?ߛ''xn0Z_5N ss#s;U{;C2u?nr1巑.KwϕBA1hY٤?]РB"LG]K/M_w⼣5~u=`.Z\Y{W̻ۀXVs$hd33ղ}GG(pp"oP-+Ǣ>N̅]W /)*8֗sfh3hVH3o;O\_i4QD_N5Ej(,,vBI gBAs9ph*̻C#Ԣ0T75(!{9pKd/ϐDVcgum)%۾yCmvy4%dKOԡy}1{*= "rڐh:1}HyUbGI)l8ʁc/c992Q6F 5[Zذj@|xQsC 㞛2/&4ZQ-;ȵuJA$9+;V>C/D?Ks e]t.axw`Mnu(*'!<\('}FsL GiEr'䍯T2r(ӫoiëd#$H9.иG[}7}q̏/7#U0_>nRW=tF$lÈ9{Wx=0̻vaWcЩT7:P^bT5ⳙYN0' ta œ){ yrٖ乏Vn .S4,m ģі{0r|ߺ l1M :uttj1܊ ފY)W9--u:J{2"l*7FU^ فYUUK6t#p0CґW+DN/)d>`XkᒡJl: `US.׿/x58 S0sܑa߱X-lP??sDL:wVUhĖL,0ڇ/W 'v&Qq)v,/Oohx}úQQ*]Bx\Ȃܼ>r (Wa؝?H#z+ײe *U+Yރ%_ӹKW.f3ŪUUi=Z5YќA%Va!o'8%l}.g~﷾{1RL~pc>qK #zzs ë)g '=%lx4DF~` pbJ=0YKE#<=<4g- y6tBn4<:pܙēs0!&>ȝ%i陂!Uj۲BP:CF?2Rˁs2\m31 .m^ Wӗ1 #5tԜh#kёjϪa9ZM!FF h ;*A8cuEZ>!V{GAӓנS}Gz-:u$yn@@IDATnWm8nXSΒd88wLdj UԯUMbyMqAhI6!9#A%E`LѺ? `Gɇ|nDo̝t#t{::'G$s&DAc3#Sȥpf8$.kW,ͦ#*fD9fh>#|I/4Yt= BeE Yڽm˟@>:+&Am͘QȖK\$:4'Fm/G#ÑF~uQ[mib(K+A޳pTS}a8jqzRDD6X*x;z 2贄`A^tJswz¦z~~ T|Qff.\Pr!y1tm1'D:꫏r7_Z Pp֞GJew3+u`{ڿ8n۴ N>?8y ,OJ9`(@q|Y6>k!5d\4,!!?,\H* ň__ $:v8:%b@ &W.ugհk p y?iAoi)GGi:uABnWיQwPVbmO~2cEW/AFFe3L'(0P ea0ka3VϹ^i6!uX1d3329"+aMi_Xup*=l4 zoO~Z.FT75[4%*Z* 'M#Sa-裞*;rY<=a@QU\=?,ԐPz0渇T4yLt$)*0\A<[iQL}~2@0ٙsg[.;V^QFyeHU(( 1'D GwhwuۺOvS1AY/gsVxɊqβl^[6)NLo#:;{汗>hu(QU{65c4{l sz{|gK?vӶY>8КAna7_LMϰ PBf|v.ƥ"b պ1eBUe_@@A,wﵹ]/joy՜TH t7fk ^ӗ`{ Q&Gm;9MYnie[?, v> D_=,Rv9Pϖҩ9Cn&yw \%Pzal2A(N?lVmxßU||hDΕ:l(VoۏPAgG{ hs|iOۖ=ܴuwEa9#+$  [c͊WS`uǽΞKpt8)2qƉT{m,(+ ~@A=')te bo9w\r-ɒΗ# ((zc_t 7fufF #޷S &~﫷Goo#` O.)gX1oնR!lS%rK*q@axuo1 -zFYe$`6m}Tv11hb3>>d> Db" v~t>hS"%I={{#|=m:ȣHKMLI3ׁ7b1 A&pKM*KǡPP),Haq;`~QfsJPe o\7BBiհa)G2A!fa犲s}zJrvlC >9/FgHjŘ3~~!e w?a*VfT ҂߼)jWsh}Z/H?]6 wPG<>fY?WG˰4C&(AdDɗ>pddHt: 뀏w!{ED@@+bAuum*+hT'm] ((;{%t If&gxf&mf2޼w}{޽ӎ!t}9HFu9=qNV 8!Fh2BD EFg̘aA~0Mv˷`ŠȰ4/ɀ: \e@#E^Ƞ˴".-x"1A(_& ǕP5p u=[T%12}0˔*l(?0Tk:Nm0j1˓}(}=Gg` D:0pC+: qwrˁ7#sm8t0)#cS!are< (l9珿;nfflY '†[>sWVm.m}$g?nƟOoXX^ 2A^>{4k̷@ 3+;~]6"}2QmMO[~sjݴr>g?p<\P߄B` 5{V2ptcts;|.4ʽOzF :W?vKͣFi\t& Sh󚫀:,y9kB!]sU5v:A)wIP=c 5 uՄ 1&y𔚷zP"ddf2KQzЌ$|u3fB;hn2&`8殱Z3c'.]y{fN YoPtZ WEP׶+ѿϚ6!_C?S=<|G"cI00:kY1@H>ŃfPc[)L p\`:mʙ嬨Vr]4)~dH0!:Vi{9>yi岄xxZD"_1.+j}wM6~(?95lؙz ykڲ䶵;Z0eIIq\(L$i¨ՠ~}6Ү;m{2 Pۿo &?KHg4(p@J:1 f<[2v_joW+ A0p͌H3w[ S:ɳaNMw#\V sVjJ7˹ #0md07bڞm%_i CxK7}.Vn٧'):QU n&{K͖H OJֹhpN{1.i0\tʤc/Qo l0 i8Nްdfl4:tQQ^[!LZ3gʥ{^Me36Fϛ*\8f*ۨ;zX+8oBc+46=j9ϴ ˰ s.H1~z_S /l+RtH`$?ӂhLܸObx䉌b5L[Lմnu5 陸 RN_^GdtީsxV ݳ.Go;}2Ѩj U?}*$xH0rrF,G}տkKmE N 6H=\$m`kg!!! >ۨ?\bc60d x,Af3iLxH1%t>4J}/yͧ8&FD_?9~D쫒cDcg.vQ5Dp7r=ݞIe0/anEh^ ПY@`(L-cU2|FJ"&QY@>_1 SХa`r0 yGwk=TYI2|cN7W-Z}a~oB ܲ/ǎGY -u /˪Ϡ4#d&ݠ A0y-l`_b~ا_s~;,20XZ¾p}&̣:Egp$lY⛭+(6>bFesh!]K_Me>&.w n'.[yC҇}9K!Gm`L`M;J:&rzuYFMX<ꈀUCQ S).0P>#y~ /]-tvΛ' +"p?kxII;S:|pKdD)waG~Ү&'P5?idĂUKFzů6?1 "3I3 bFC;yFI!/޳qnjV>lK1#(ˎ?Ї [vɉ\B%mp#ft 5G6"nσG6v]~0p6f9]G+ڣC"WVT#uRvQDؠ-uEaݿ"CwQ/qZ\B[VP溜,E߰tZ gCk0w&C@yM7)336662b.Cf!c?Iێkk4,,|LxX9'q qq4bPZD߻F 5dd'Sk'V<6iWRΟ8tp0r*8r BFf2bFEg8&i,$%X͘JۤuF6nQ2T%C˄wRRR/8["mPРch5H`7ÑVyyDӫ$rHC̴dX3M$iB-I·YVY_ 9_a!sg9r4WK {s=1[nބg` PX;ͦ~A/ 2d8 %om7uOZX0ug$4>On[ 2{ ?@9W #5"l1ەV4X<)Xھ훷cۇc # M ;$w)$4BSQipYz#k|N,acoEagB>0ɩZr{@(mnBoj>`h;p:к"ٮM1{MkO5 A~ /;2,6 $-A4@0h1q0 Qɕup3R,M)H_7Ga"4FP 5sBrMH6!X}( Fg~F\hGNa8[Ä|`zH˪I9-ǁ.f-svs0K8*o0RxԾ AB;K ~;2,؇"`y&E.u9aL*QvC ~7t t"4"¨ɽ8t B?0 }]xbpI41ЦqMPCGAmC,|"VN2.~uWo;GJ:iڕuBP*P[ԯ9*syK<фJ0&01AƓqd@rҔB 6pgdT^c‘CaCH^>+H mA4bFq?€}Hƾ: m^iD5Ǐ9~L f]\;2n.A^w,,L5WJUvլeՌEUߎM*~cyӟP ~yAh-A"%0*5}h9DgVO=}l_ |'2 d2dOƁ .09x?53+y2I]fƑY ?EOI#(d=-^Y%JèEL ؇yN6 !G囒zGF|Chs͘  Êqˠij9#TX.o6#ѣcY6c],%81]LrǍ}FGLC -H?Mf]#?6{㾨7y7s jk480뱣!g9L!C~oYgX꾤箶oZGjX+Թ+= /4gvyC#QA~ (wh6KNV^T†4WO:n{Hyp6V,YZ po TVBI ,O{l ,'gM}LGjޯ *}XrЇeV! ;E)e>lONx%ؚ9%mOI9^Ŧpe̜{Q_d_Y=~]-**kLiВy>R68;T|jU. *19U!h >oL?u ֌Xa c6 @RYcm ɩAV1& lG5$*1< -¤B>TzFhII.[Oz]GkZ5qBy)Yλ^ӯBԸcϤ/ꙋe0MU7Sƌ&^dr^M&r+T(m}T J_]?o[O<ʹd%M0rAiT\RժmZb^۠ Rŋ[:4AۮM'J-{Q'0rVO"llwL]SZEhnzK>u^s"B^=SU+12G{5,Og3|ŭU-T@K ZLNMG ЧϏ~5jE-+d}Ix> 4ŻMTujWlںجn$gm-0˻ǔ7aΫc]im;tA.QA׽[^ErT|}Ya j  :m״6:v*H8{k$`rסZP|iDc+/[  蚓yq['=`e*4.$Wg a) kTR[}/yc0 &}}罁^ԄXlA?%~W+vppUpUf,`46ㇿ󮦦]K2 #6>ɖ~*ga F a>UĄ*I#]!"3ۤx=/ &3֙aos~;B9l7f2sz㩻 -ΒJJ*EF@#Q1d/ͪ].a:CE4z9^%Rذ<[/>дm=,]èyh`WM{~0z\w(p4/IhOT,Tﻭ%#!p#`Q^~dP翬AK㯼^ߚw $㜌u )ij]9a}gCN WSe_1EE)M<ʗ)m7T^=GG厁C%A/s-<2%d0b}7Vޜ{Wv/&hf#t.sPpR%C޳1k8W:5Sffm,sz05^ V7ٞ)h oU#} m٤53j n DbZhMFhm h $뉃c%B;qn 硫@:f _#m&`lW J>4r?B2,[5%{ 5*Sa~DC wV UQMN.&(J^5M:Լ"q%G0|9e?n؄$hnu9.Q8i6,ٰG]Pr~_aJtŚna ͆VX/i:EFam`\\Lf˗JD]i8LxKhu1Hb|'GUP8׆VSG yG/ڠsB'tZQ>ON-6 $w *VԳ$G4[7e:7F-^` y|A yDvR}tW>i#s#ġ GЧ&`? r%}5NDvwGOH:TsK4sK0I&#nU5$0_pa>GpW3̜,2agI%b3a,B ԽpL:)Թ%$‰zS3#SobClK[}>/Q3x 1p7> <҇}WVVZ`(>?g|/[OWWϝК;u:+.Lq1e?#ϕg›Az'A/>ư(QpW6k kd蝕'(hӉ%-~M0>}Zs\Tty)ky虿 L $@,NfBBzcQV;f[ CU΀ :a loo?5z>Áܱf2Wl=gǯgb Vn `_ٿq2g=i@(wr`ҩ7qQ)Wd8Aafp3a2#>%)ZD^x:c8l~2mzm:- TwAK`eQ &\!Ft@WeqWo[g.Wpk^{ ٳPk+酎\Ԃ6gVU^nda#L%..jq;ȸv}l'M2 ίǾ/t.\^}G2i)!5|f`)@ 6| nHOزz7[W+$do"l-ZF34@h0N4~La!z"#WTPbۄ ea!1"]73K@6kUeJ30م+=[#gEzUM7hv/gTeJ:iZ֛ԧ?.P\=d@!NcVqH͍ޡ>t{WL[$(b'ґ+}J# -L-۴WmuT㱘KVćj: ^K/Ę1x߭5 5nx͓z| x k!!^6#!L=:b' j9 j&}'̲ (<'MM_f [ryHOկrg虋[vQ*\vmsTͤjٰZ> qS6vաI?YAK6A+yvZyZ8Tu3I]?a*4AMOQ5G+սM#=WxqЁҵqʬ9j`(lp~M[lzA}233zYi%le!Xs%0槐ncFx&dA%߿os&''ƢٴM iS_[5ĦldL1>4c"KHcB<ʭܲ_lH8{6{i35Y'&+@ISSޣ1jC.:'7_h(^ۙ:)E̎f<t( w[X}Hgհ[ %KP8 F–`c <+ɋ Ax=GΨ/~Y*Z 4-`Ԯuٝ=.h3\1ձ~MjW ҞujaM~sr~uG`ʓ<WWCP}]U R>u^-VA+uy$@ v~5>mi]8B0ҡ=z cSl٠ڪZ:X_Rukq5QH3L O\׬X$2) sVmSJFAOBs4ܽ'4XaԌ.㫋 WS-\/jԲMڍ4)^:DXɈ,ɔM+ ddfĥ$&^F=wl9 :x̾F~&Qgx)J6Q”Ud- hIpm'A3&!\MR.ߢm 7(LhJ>Ȱ; i\[5SUpz!9턀@L,fZ[Af& }6TȪ ;+ҡw6 :ym<0r^Fc2!5-CM|:0AW-i-˳ܦY]+3,wԩV7vN-% 3R%F~?jDqhn0U7jFiƽZ̲067PH]WVO'ݷA@Z I?mbB*WeU*ܽ.†*lP}6e9G׾vnۃ6|/n'1 >42G \A k`X_Ahms&kn_ө C(]ȼrCc d2 կV,fA]j@ӓ`i߿KsdWf*"Ghswn -OZz`"Yaud֩CBipnY\EZd9k4\p\Ї~wo9+ $γ9!19E7cKUX>4orww9>QՂ`4w0gm5m:5e2Sw̼'m&L ldnBa ffa4 VB4 gԭ֬j.ȤbgaOp-`$ގ@!=Ԭ tVcu,F ]P{^.h.('jCGpy{6<&P+ʿ~EFjӞ:]Uy,0&:z܃ue@ㆨ>HhPkJ@5h{sF} G!1T2dPf{ Fy7 Eq2&#xLDaMcNa? qυ ҟGԚޱd+̫{K`8Xf>{+d<툛fx5S)#M=> }oB p,ߴO1J  Q'T[Z$ +"]QS5LovگgSK 9}n8ϋ-4yd^ժauhn3 *-^MЦu+jtcDӫ2\w)e<" 1܋ fdh"+⎂S^lYu1 }ȱ? a")'Ft$Hө9#ϚQ*e5N}vjfts0/⺡.҇XV S~`ߖoիd;ɗ@{b<Ͻ`-NG>t4(Ly y#/N3iߧ}ViN W/hZ;| p%YqU~}ܣ]g'eO_^5UEkL\-y#}K2`^j h p^Vnt1hN#LBnGpp0MM[Ќ~ IAGj32KuS= ƿzﵟG;tG'yYf\#Q1#i6|z[D:}|{1'P~YVɄMp8i 0h%P`p/D04{6-@ظ= zcZ/umBH:Rr 4O@{lﰾud'gmڣc]ZW:©5 7%E8b;-J;(}:gE ٖd3aR ,)>Q'QQ`Q'NXYn#*>r C3UhN; ''Ġ J'N$~&~_/.F _oUSƌoQ@@ Tt"3ڨos亘4UBX,@{0[0Cp KȳhFj49C_2>m@aT:6[]BIK;yubng9O 0@`@Vd_MpHF2Fr_:2ߋhB3N "dȾ(gkѿZsZ m4W>\|GU7>Rv6_{Q |ҩ߀fݘylܠsVSFn'-zFq!t1~:Y;vަڱj(ʖK&3r3oB#sДs3 $}S,˘d %sobĀ`C yC炃Wbs@´6|DYb`}co;o|s:؜j \ W ĸVGߺ ץ I.hi1NR':2iOg@ |q*_b:R Y_ :[i`RH`!g p.]kYi_~e}>ZgQCk \Iʙ{>ĀLԲG)@ +!<^ ֵG6~wYn0@WѶM{~0z\w(p!hTގi;|mTsh^zcLՠ/Yiۺ'{Q_>Ӏ%&2-w^ī|c3<#]]N]MDӺȩsW#)S˜IrS*BN9gfI1CR!@s$UiT !J!жq-~a,j xxt:=sʲ~lX6Fir؜SY ЮC'w#Mp'{!P6NYQ;JA`Wrw}7yNԁ4Y{ ii[(lXc!.<A|bJCA㉻{[LA#/md_ٿAAzqCq8Z=;z On\&jT ֟=8d?NVA2iפLj Qc594Ij>nͬOE2J‡#RSFUѿb"Nzwh[z!|gglNF?H $L6X1B }H,/V/ݮav`jc"fQB-wU#g[ςV٫w[ቑnL HMzf *W^'խUC<,\푋f܊ ǾZ#5Ť9DQL[KߜGct7CS9uI@ kZZvc\=|3*g>]0ȾhJܼy2eE_JFóx1k' @cek`ҧ]͖/l帀дھ}^F1婻XVm=v)뷘lx}< 8ac̚Vb U *+d yqpcF^ q~Es* 7o橇tXO +jFܪF>+x^LC3c˲m酪`d;,aרq,&~{aӿߘ7X 3W(o~ΞN?e?^|@kXp3jvazZiOj_N>˷ybXo퓵zAZCWa. vhԓ.iSJO?mz92BnJN9Irn-[{hRA`b@ίZ}gYd(p#؅;=s>.m"bj8n$4yqxQwé16jb`oXQ5 ]7 )dyQ)f]$Ha /Uy\MԙKBC]Μ*V rܻ}>X @`Z~E#dj˜y1_ւRk'遁])˥BUJ_HǤke9A{>j+15 GxhH %gG=v !x*v@ȕ[+Db{j9H<2b РK݉6G9h hEjr3\^Hbl?zm7@x^) l=~uz<.1Eժ\^/zM8~F 6Q7:)hh%KۢA \cü؄8 .f4p=44\+ y91 HjLNYAunvJc]~/d|\1곟h3Ɩ 4lDaz^07ڌQCk5PIM5#q:ѵU#>9Ԑ0h@r#qHZtAm?Ea)ƻ##¸B"`w^ ق >(LKL,ELwjonϳWqwѯ+t~7xp0&#kW)[2m$d$O[n6{Wmpܡ@c HownTs;  6O?Ї?X-{ekZc4mLJ( qPI=j"?z0?sF3`|(d6r"92A!> CfN~5G{R mo˷-̟ö9DN4ejJr{c] 3gs1GSd=dX Ud H ~Fÿn ko AۺN}҃s_N&LM7ʕV -CidOIJgn4/\))R'Dq+x- ZA] |`61MhX%a=GjmĹ`W -}?w~$LYSܣqA1LA(= lRZphlke-HunnM<d nƽdKzIA5W $*3bͤtd&D-\CQa,fvnAAC +U2mz >*:&NnQ"Yh AA8I2sx9yh*U*bN'9Nq8`tAA+\M(\_cIŽ3({\w)/ϻ&ظHrVm+߱ Df  \L8 Z8jUCSœU[UEIy[o SlDXЅ˗2{I"ֈ,[*W:K FX7`*峂ЯW;!r0c-Y)(: *+!x%後(,} H>< NjJ-ދHY `~_]Gpt̢॑./냨i ,{ƵsDr2%=F>00kkRwBum:G~_nJֹUś IziE@ aסȪNQ@ 9f) W#ČAZ3;|f?T.''%mVZt[ {kw"ph^oZRs$}H3F%Y߳?w+{"OH yĬ&P?[toPvs;U)__ӚQ+!Yx ؙ :4A&]xO B Ft2zI 5"ô,`0g/Gb95}ڦv!EDpnGyu'q5(h zΧd+,<F&u2F9#!#) 0,WW w Ѽ 3vjw L ) Ѭ~50i]OJN- fbJ^E`Cy"MyL;ӂ<<-xaYs6e.j64 Z{s>l4qzm:/nWb4K?&ܳ\Ca; +c*W5F+D@ -a4%p=G /ߦvk ̝qhF?|.~ZoNE/P"#^.鳴&d"=\O6~ŭʽd(A6` }ҳc{ AM+#-66& +M(Y>$^.yp1O 'WWRd.cm zWr2֍Kh־ŕ[goW-0cF|r+rSO\I N8gs /+y<$\7Ea`25I m̍n%vҎ%t(iimg@ HIAқ+m̌-+D"lpG`scGi&.,ra%-v.lpAW ܝ}P=`?o'&-Ѥ mKÄ LL>+$FӺӏ! {Xjׯss]L'3H2^(ap{x htmhnvZ]o\d$.^B+|Z6PxΗJjPRlt\Ae0ymY-!bi-|qA4'))Ək]yKōCŘ3SwY,P“]k5V, oå4ztaw[4*(ЮPp,6JW&;qsp/8Xy9x\g*љ00I Y< \꼧@tB̙y[ W<8OGM6'j4³ƕ4hk*†lI܉^l[>g|O/^nwy~ELHe3$ "VkF%3~ %=q qF&i'"oj# p`,c<!Tb3J0A:U/1۸v0\ͦ6Y':S-%7&[% ӇwEa />*U˂_ot Z!85*8 }?-zoICgP(|.¿j.#2;φ A4 .JGh7I \D^_ТY!s29 F|D:y3ͦS(O-?o1'+W۶ I^3}c0*(0 4$lpz599.q5xv:VH7 tdN&5NB^hڝpl^襤8rH8Y  eUdG 2A&9hZEyc?=+q:\w6(5`RCM\lt.}00nKB3V3$]qYk\MSSYnQem #70À뿿EV׳|6x. ^ߓ-5g@܀e'N#h{OJ־\lAUw5 grMAm>#5_MfO BGo ,DzM{uHpп X@ҮIl-6;\D7ƍ~S)<A>H~{s'5}j٫"E~jQ:N3Z}N"d$7=j9ϴ ˰P`q҃0 &}7>8^Ea؎iP%u0 {kf{W GyҽVؑ2v!͒ȄԝMػk}2 WB (4E&*Vi/p?h}J3!S/wGgGݯ׌}H^λ9 )܁6 5$/4_FN͇f03 o.bf=ig 1 ͟1/e[a{qum>t4Ll(N"cPFGt4W/yp/EFM씙lqs\BO{99e>u$6&!]|fWTΈ]y<Ą@zzz{|mG hc?[?4WNKZBUF>?[7kŇz +%FrMSD'_Y!CO>k@ӝGDI2Q %񌿱2g/*1a*>_jZE^锋FFs@FFffR%LOjAUu !66GZuk"5 }JsG""7a5{sخ`% (hx굉yG~Yg ߛ# 'm&=WSiرOkc,l2W>5!p0u _ʨBtu–+nw0 &}172x>8q&pE^ysբevfjCx}7O1@F„j-nKKoj3h. 2g2~p"w[}%h Q24XGM!H[|'~DmR~U0(xn ÑiVuE:w&h3Wα[e-GTh#l\8z>dHffF0PWJ,acU_'Br~ ۘ dA&߿os&''rEaat~HAa#WE(63EV֑Iˆ["#JYG.nBji:UfyRl6?2.~A9^pAaf6qL (8R--@}C}ѲhF!Wm[4 d{[ N$B*))h87Ij5lܢdxK 6#< _ii))q)Oܿg-G^A @ws8~;*nc/HKnp Z?5i۱qz +6O!!.U UEk,)7pMCFzzJvy2fyb) a_v5-5>91Cwܡ)TPqUs# {&=64B`s&xL-P`ֲ-q6OCX6s|ma8$U)ȍ8۾y;}8&#AI.?!DQP`ߒ) s yY4A:eqlBȾaۃk;d2.왤&Y'7cm,59AHFaCߦV3Ā0 c(fsx "g&D/ 6LL"pak:{ʪ!X}HaduJFAפ OQ#4" 3 t̥#3Iq@e}R'! Y> ǞY!2d`>L Ǝ/O8aimS8wpjZ l͖BC_lLc68ɐYy vC^\lBa@&{a32 (pc{qLp:)} "F(p3HcjeiD)4p^MҨ0eY8~2np`"}CL 6"lo|կ2mMx<0G,Yaa6F6^ON ufaտkK:6(6dq܃Jdo:zmP}Os. W5Sffm,;9 Sa^}o8yKS!:6A%,mM ha095Mw,C>?ը_@`GO7y>ɰZcR6kU+ۺnH=6[^aw)o S\+GMC'}tOOKp=DŽ羕y-S!x=rr\pHpаVeiRa|S*2"\,ТA uq-lPcrLߥ$թE}}=^Mga68ii}Y33SSN)<`_OE UjvǨUrz#m- @HMP5tMiun{L-ծ+vZMA[ c}UKVr@ F#GKK]†f U+Q́+|)P"pjڂO1^Gίۛ?u 0-AKկQ?*r6+upHs!v,`ǼiWbx4 '#XV4Mg%wsُԽJ8e2S#u+ Ql|-h]NS&NxĬldvr)ݴn5a0ۮ@U*Qc1 |&Рf%s[W6RJ:A Z9>G0KӑUj:rN a#55ȑ?ZӅ߆/#rG*D粷<[/?дm=, YK;^W^ytHfG6=qQ/ߍA9':IrC}*eSb}u0M*nKyxA-闏zɯk2.qN:[jr҅4 5dBʖSG X0qh4xu,_GߎM0qV~5%\v3tQ-h @[R.')WUP*J/Fuyu[.-O&Z-yN_nR;R]V ym}\ZX(D<,>?sVmKXj 11FAC0|#,X[umO4<ڍQ?H-8((Q/4;0vnkb (-Qc5dHwSиAhdq64mk?%XMQͽOܿ1iC>{`w:}z:s&M5MRs.c#@Yp9'Z"LOl؃z3T<0Փ M˪0o/.ro#idFYg{-!#[@!j.']OCp>DYQ6> C B/[5-; wjوF*C=c;pUz%U*,T]]Nщ ذZa_-BNFlX~aŊShJg,1b1,SQ+ ICsޕ_Z\]c0j$` >"pxz as 4]|8Eԟ?g[ؠ_U?/٬Cv>TO@ Ɗsrٻ*_J Bg.WEbuUY@QZWĊAEz%@PC =$47{/&3oΝ;瞹{d bW%h/ Gs>XvLJM;z|VQ{p% xc-cV-Mxdӣvԯը#+wkȣL@4U`z*͕i,܎Qt5R>taJEGr}؂`OQ/+imS?M`yihyaifˣVHfB*S#H5arڛ qxU!uC[Nbtp[OE>놼 ACy.sS6  '$ۧHh.g>vdXűm)&02}1(4A 0S'C0x}\ Ν5}N. 1{#uk]8kky(e &xZٱoy3oIs꾻6ܴ@MīK}i~Iksɸ%hi4UB]K0aVY0 |}'ReaIo:}8 㥫B҇!4450tڒb !(V MAC 7W,[cJFH3 O/sK2>.6V/^YBi4ؿgҥx%l3gjNm4qx6fs"333â3 Gkʕ1 Zİ-ڣ-c Fh2f'XBEU4y&C,b_(Khw\#L:V@JdQ% 9VθàGy,}x=o8wcRF4R.}Vƫ˝o&kJd2ӱe&߈ }<<Ý ԟ\ Q%''H N-r9t ɏXw`t31ݲpkɦ־$h6 Ť|4:oJ&-.)\x-?kB w=̭$3JmWz}/}8R %t C^>>m[h>,WFdW_Ș:QSbquV6)4Ӆ ⋈jbRq7|Q#JśM2:b ?ٯ߸_vn{2҄'}Z:A[[L8 ]p2OQ4JitfgN* 38Tuz2sSě܇9fݜ`3_&a${-#qF2!g.D 6'us˾|Js ֊Dfx i))u.Wr%Ass}Y(!08iZ,O}$fa#^XqvEOCJbxvC3wt7qi_gt’ {#x"WK74)U*V)%O?/_c"c!):;ȸ9mBD%c;hRؠ)Ǿ KzŎC є>{~_h0-Nܘyްh&RIHZ:`ng9/׭[ڳß,X[EfBd>\ס`! {+o.9"}&aM)r::c%p{/S ;4 V0THIZ!=+۱.~h )FZ Zj6|'r4+i~*MY}Ӡq9/̓>_ | hF@1Z)ߜ5RAʈpqy=adO&kO1q+/\I?&\ -PxhH7ċj~0IQ.2(J==|!'<܆5yYKU{"X P"DƈFo=|M{bg&u8]?rFl!@_D6koo{1|QrhѠxsTj%Y{vh"V]nb.0h8-WD68hw"0tc ;H?ib͎2n}mсa9>2:qD{w}%fuEa" d{{ܭe׎J,GF7Mίj/{X}{v&.+aӍU"-`6e9Io<*W#&%RRe\e& #q篊 # vBs6ʕAJ!š`"1t-;¦X L։Q&^4]UNڷ%u&Z7m!\G-*ּ%`4Gv E{bV[e0D?.>yHy&]v)}{7w &!,*Aѫ̇ Ы3ܺx[|KA6f-c$3L@N8s!A%Ad&} P6CM|~r$#xv1ص7BC -@J@ }};`=RX?qd"<'i/Ea!2'La.KK0w!P`)D4*(W V0{k*N$Ȭb%JD21W;C0+ށiުz7ч3 ݣ}ZF1 KBxcK&jʱH"Jb  q$Ȑ\'a,(t=0b/ t즆C= ?Bh .%$~oǴ,۱cFh|# E֍<-RD#/Fœ]ZwՎjY f0!\VVXК&7Bab jYHf+9N P/qzwA:F!xeө9!@T7ZsL=?{i #MvGǩӂN֠ar%"y uaM Kiv=f L jW ]MJSs++Q!IOMJc=GLbRYCHiAb.H h+|RbU`u\P)Gcwʕ+X}!lbOm0ϡA0:ayTETi>4<2.J-iqj1iɏ9ǜA>xsnq |A枓-/lmsI2+ |n@bW1 CxLp9}<6W XA'ԾV YLP-us6e-K&&xpyhDtA-'D^ )8OԇZ~wECM+ʀiV@4z~uʼoͿ a!sҪ+kExOHՊ%^h!Ha[Fb*K2E)p%#AGFġҷVsH&4Q#5$ hV?Dl#*bexd:h##꺈h~a0 5WLԼK=ꞎ yBk|ΪVopI&W+:Oj|&zÒUJAj 0ɷ+j)Pٯ@筕Np:}-WPg/%_y$$q,RKl ;>Z@8ŠC͸ԫ.賱mQ5ɕ#8)C`vD?}ߔb`,3(QBr|t8 ' ܓө -`)hhb>RI`_U?*M+dW<l*T0ֳz?mRXV qBAБQ&IM N)d1I!N9)lufT ]M-Vk k:5~ | $"R2 "U \8`^ aoQ`oS@s!DZ mM&|&ruur#ΩMe.6y2T8 (`m|568x&EwpNmV;Ndʨ] V;@<GnCnSŸqs10i~lY7Ql=IdTheܫ1h>E9gs{nN>>)ׂ l+ /?28σ"̾MN:˾pG|(81ϝ:A^Wޜ8J- θ^^$by?k#,HPN`Y>R 4)!5Ur\%ҼB7g0J΅KA02XUA:"AkظǺsрPrmKNF+𝡆BEUq |e&f@$NFt^f Ԏ#1U ñ,FX36#iq@|q|B7M8/rha|j $ɉ[ik212]3Ri{;T_a46jC!w"}򽸧hUѧ.\^nvm9u-sJ#~eT_`2wFײ}('lk[V9QPYOnɌyBw m;{*xd-Y *}úi䣉s&Y`&A†ծk>f>kcqq,h) nkxdI4Oד5h2օ.sfXҌ7eCi//UϞ*6R֮+:3f9d0b#4qzw8oi3Czy`5Bk͹"Λ=mbnQ6lA?c@ c1bV[mF\b5 u= ԊWup h:u~BG(tYjR2 Lyb/1qwpe ? fZ!4Rxiʗd4@"X2 9QƀdS3d]NTG.dg<ջ3֠ s:~+SR9r LLpʭŹ&͚<mZ۴.g[f\w9†~կ00[+䞸^N2J!7xۻ̻!ULB͒.LBjen.ȽpvRO׾&4kR F˼4axC'/UԲ>MXu:-MhV14GtUiג7N'N}r)ZUYUc@ǀWb@1jgL nʼb{\f«^^fO[0~|my ^?9eh#1WEءe޽LQ|pFYEM뚠( hB:?=N%}5]ذAaNb_brAǀ(V_D?Y2 ,Zu--LYC˔)7ѽ CEdeP ڍ줂=0CaU\ytJ5!iRK_^Pgc1S1)+fTV0un V"K!`ٖLU]v$bcO9PpdtLL2F3DkYܓSļśǦH>%n#;3\3dnaHߏ%^U) ixqypɆȧsPݶ(m~y–Abp\Bd.2ojbZ/3ֲeJWJ#{ \ɉck@_M4lקϨ6-2huެ0I<8[4 X)aޣN5~Ni`r~VγO?VHHA|ޞQ}<]?U #)3L҅["Dr ʼ񗮉o7cm!50<2o Fo# |ޭVh$glB! 0 33Uk=;j;yly8Qcy*+?\dOD$3WA@v\ W=a;kۿs 5Eg鸏;npo!uC[NΥOBqޝ'_Jz+j8vlVޡwOA*;wU1аeډ'IB ԠqH&+@@[52Va t( QG@[sA!Cvd.-Q1{>q)!?/6Nf֪.R"ز7V26Yeh&RQ ѫdvmAu5'=Eq94C箈4#iw2- O-a&x1X!<w*Q 5( yaAG]kB<{)Aģ1Gq7XǾZ㠤Q};$Epά.\S=%Bf@O71f@gr~qzmVO܋"u2'Z-|{6r8] n9j7g? Z5eҝu}8߇!6qX㷤|yO`>0a>y O_4GOj,u; ]db &nN 7Y¸50`$mʬ4!B8qG<&/?{I[ZF 1@p\,Ek#$NL~0g/ 8zB_*BR;ؓ_!:7puNo龜MX}pB2uQ LH`CE[ŢiB @;f>w|醂@=oq2Cȣ2t焑 ]&@!7 F!z=3MO yz/x`g"yf_9UoFe"ynN^)3t\%=8ua ՍY gKJ%8vVNޏ+bo)s d ܰ3]Z7L WK;&6OK2 I(y`vdڲ GO]{/dž-~^!" p ԙ WR}U 43R@sY Glfw&U[ש񀍷Զ1e;LU/\pPN 6\!UDfvUŎ\a75R^9(@BlPsZj /Kג%#&)Z7hfՄ RRSsn9.7SMjnC[g6KK#TbԂb53O^tvDln}H&5JU+UmFFh.c'XBxNFP!BJAimtm)(Zjߵ:%R3`տs aNLhY pq4%d<iּZ\j񽘐GC7`~X{IffqtJޏ} a/E'Kk NnFm2 &' x2T#z& V"o>3Jj.ho[QQ@e {cD?_ !j ot2W))yy_X!7>V\Id6͖) x.5f*q&1Ӥ paƜ_EwݐZV_y)'10mA3j]!T yM;04tCSosh4%4!k -džb%0)/T8aCisu,%O:[y ҳ:4JkEq1fNiZV^e`BU BCB4jV[uj _\QU Q0n0crshOrp~( OA] H]az+?S〓5 ||T-x\79A4mwcLKI!NZBv FaZ SlO=reXt*yC! ]Ky{75&Qtb&ʴ|Qz#fǁfwը2|Z5z{G>3/%&pаDo+ " }W5mg=fj:lh0$Ύ>,ه/uHez<˺f@K2k>+`>Ld~.~4ݵc^6ˠOHj W䝹 2N'jlKͤWNGOQ3AW+(+/>(͢XW0z`dXM jWegRX!J N%B wU`MFIS{:{-ڬYύ8x}d $K0hū"єL֎@T stŒeࠪoCoLUӂҒYk+w<ڴM*Q{+SH$+Sb^);yEBk;N!y)i:U*^z]NH`Г&r&&W`5-i :UbGiOBN{[B;[/<'/z[X ,†_^,N[hiclxiqĐ6,q TfFF|rZ6֜Yͥ= z8^+;˖!-/|+t @x dlACb QJQBaCf~m;RY}N7R/6A҄ؑl^ ZgZug_Q uH3<Z&U5wԖ&D>4c #am$6_FZM?ymR cxor +??[l6yQl: &Yyӑ{T`2Ĵ-YHA N-vBC0k$좚P}p#9`9?1 %PXR-a/=2(_-tA }d j0HKdQ`ʒ2wԯ , 9oZGD`[#C9[}6 øwł@*F傊rCҿ$h($ڔg(I:]~\燖hDQj[$a?'WiPs[x~F \ipL0 i}'|ˊ, ϫO#㍻c Ɔ2Z#M]Z! 44_'i A4eRO(lFY@Ҹiwv*Y SR};Ht.qͷ|9 "PTڲqԡy? mPA|niCasճA[Ǡrlч;k "i7WMxf]Ԣiͥ= ~^j=y8"pYj`tJjBU}4ڰHЎWD vvT2Z2K2 4fJf9J!(* ͧ80ڛ𱡉[cWU+ٱ/CB{<@<T!`~ ɘu>rƣR 7<8bscrҀ!= Hz[X[ ecRӣDM(:a f@ƋN(s7$ťiN0߁ VGȐ?_]p!~vmf?6GJT5#*jk{B&$-&}p\s7]I8 n[@ `<PP`|Bbrle?URKXB ]$W &O24/`2HP3/X9i2Bp~34o[qޒdϺr>dvc8DfR>h Ci^[GǾ>x\?P'm92 >'zN[~FBYhΐY,)0 nLμx\2WIR+pqe' $I_Qc EKZQ/Ly F j^)L(CMmng8~IMr5 @DYcc~ s ʷ\9As0y"Ȋ2%<jw$ ]!,GS2އ<4*DvW]fY&HeW1r~qUh_ϫvzX%),A$.-K#h`VV:<]S&)L0X[g/%`;QAy{@k1aTs,s"MI3fu6}1sʮ<YA f楋?00Tz^XAftp (ݣ줰?.S6DA n~s4n("}\ۯy'%†ۙ8gᏉAhf6Hbf\O;i1+_.D(l(Ӛڣ&i )'qu{̠)Q0돏{+cc (ҟ hjhnģs&Ge) _ \܋/go Thf^GLffh2x0Dp? Zpu+hl Ԃs^` F:*Fr9_Ѧֻ`$@( !9}><hwjY4<3f99y.񇳤mEĜ 2]t=fYeam1:*"xtl8@AN@E 7SSnߵׯ\X~m j=m "чz[-_⥶8jxð'l'))Ii)<h'k`Z~rU@!41;`sg0Z#35d %g rA!=\hvk ɥ}{Bm{~y|tMZԶ8<,|ڭ`J%IВY>=l岭*'ba?Ap^)ď' q vn(lFzșs:}!w >8>!#u5{ŵkT=ǃrBɝ&O^gˆ7G;<]P8ѫ3n30 (YVeoH{A1hB2dEh3\J.OH_ܓ =Me[f|r%̰b2:IGU{-=90k v`+2SmwT`N~ZN-5q,f|b9{-iZ&t8Dj\Ut&:S p)͔?yȸG_fB4Á6`5'c-ZOQ~JP ֤p@1?MZ*;j̓7&?;9;!.~?c#Dl;Za?u(*Fj "˅ l-qs0ɓtʥO#@vD0O^ mp<.DXh:VC~b+lDUY!: zN-B" kN2B|BYD?<|:e|F l ÛL)0^IiL됛H&րߕYś9)l(f3Rܪ?ҩπ.wO*BjBZÖ4@Bq['KUఱN <of2 sS†2RĬӇz5v}P v*F(uư+ x V H 䯱)={sx4S-5~УV92O 0te.764bgj=>^}-'^ C6 !MȥgdɈA4!c E<KͽE(-LB_#%hXkWvexα[1֙Fk>gצuaѻ"b1";;k@M|˙q]` @zfYᙰ}|*6fפ$u0(at`I:})8>ɑ+J(j#FjSRCa/_\߀0&;d4etZOFf)F }"Ǐ̌+߼7s  6hIaCM8ԡ XfgyF[+,c-1=kaDvh6}~m 0ͼ܈Yb[n_WFtG2i:6W{i"+M6Sڣ͝5}9 mpCn;E'Z0WׁÚXN-?S{g*ʼnDHII6E8Y&u7m\ַ|nx, rFFZZRڍ FFE@c  |Zs*JǏwjZA~~*A5MyşxU7joo ,n̴djĊSKc;fFɗN;zhԾx" 8nP# sXb -lÅ {Yʅs?yurSt~Nn8s61ctj1 #h4ʗ- 3jbPVoPc(fNH!VEMΉ͞6Qd a&@MJD0tT|y~u, c S:~%f9-F?v4}#F/~sW*TB5sp(PqA-RpP%dt1`LiI?m6}OIkǑŽ?ٝlYчÛ aVX d,м†V^\qY7a@MYP̞iP<>f9u/NVRN>v}F(pg(Ԫy=q{u]O$*f^>'½78VUcV:1@ Ho-X#X^U€ I 6h6^1Dx̉ KAC1a@1 pc_jbpX Q JEgz8T 8+zSt>ڑ!~ nqWݞpqo8﷍b`VNM(S^TF֍kیrP}U\ L{?<92O?mouo/qw-3nk7y4c0D PC1 ?(M~۩<+ N8d{u Ǎ̈`h^+*QTy^yWч;2JP^5SKo$AWA^>ŏ֢>TjsvgS6:40N6}+16d8xR0ng? klώF&6/:^mo#{LxvV]ݯ0G&nl@DQ/SmR\dҌYM_̜|6T9p㋑Į&|/2:xbTZIAեGI1]A|3 \5^p@{XOw:»‰vo ?<ʱΩ PAa̝ # LwYq%_UyˈM{unDcUd3:{bd2#HW!tt%VEN5\!INH ym1< ֧ވ'q9ڍ+b+CcA]7 (j#bIT GqhSEՇcy{I2EZ`󋔞MUߙq+U=pA_7'Z1x[3CX_i(o맻 ~i\ CL&c]A[WPaeHv;:}8 άazz; y3{f̧niτ2|/sqzyp;Dnc.jr1V(wv0F^9C8yh/ g1>q [c4+,~Ǖ;sW!! B )i1?q BϦ݇Eqb$qOًįv)pR^?85/[F{|0Kedf˨SJu.Qj%1ad}C$3,!0-\a`MR"nz 2`0Zk]j͚sS[V[N(ȕVw422!$?4`?UۢDx)|m:~Ja6qU!Di& ,Vn/]O{vHuH )j߳'){dXw1~̃E՘= & $ >3c7eWY!/)X1ЏIrjnSӽ0Ϝ8}yJVZϘ8MJ :}n܌O2,-&!Wժ$SϤm{Vk`zϝgZp5+a@//j.c숞岐+s*>3}[V&NY9ޤkƒ[![g; AcԆɅ20-Rr3%D8'z6S==8$|ˋAQ)&f_) ϼ ^d)ԪVI/\$ 9ɂf"]d?j+aHyMT+D8b} kU};`Z%(5KjT g˓?EKqcV/Ǩ)jհj57w^+~Y!5]O-{^|ˊ,U'׮&݀ .VU;D="Q = m}}CEpiKI١ORxk LꌉB[7i@`FVORLMπ$# {ӿ>'zwY@b͓nr.}@a4&.Ē|!L6P#dMVXdc!l]DM|tx7v6;s W| :*t|& zb!esc д)L?|?to%ͨ(bF.V}+hE m:bh1chAʋ;4b8El; _{iZ H*y!vړ{zwm#jмB[rޝ'e}|A~%~3ӔmfxO4iSg #9%]>yN<;?XohjSCJߊ-ډ A$hh~\-,1]Ӻ0Jt4j\@ jJ/CaC+p8u\-l`W8+0PJ@IDATjD wN^)ˉ.Pc3P_:ڹK>^rΛE8̃Z!PG!TZ8>3gM6[1{{a.}(-ajT?pd<]!/'ĂD,XGVSr̻q-1)%lW@fzV$qHcuEMh6/o-"|uKBt޿f*dܫU}Ss CǕ=O$ ZOAXTqL|9ѱy]y> ѷhNk{'GSP#AafQ:4#z~#@iJӯSN,e, g) Y2FS͛ (eo6oq%tN09M:c9/WG3?~;ˡPA5u󗅙9DQ„ 3t;Azzu_J Ns])lwl^4~dPn @hMݲ0>2;3(p 3q{շp}^CA@N$:h^x/üX-WO|{.i0qNuԔij(d}BU&N!̽Bd\]<6nPH>tVw+%Fݤ50Wy?K%8p5ډi[G TOGbu/< ѳij27-ɂ;rAjIn#6>%}BI1px@GzAy[m!U*noʹԋta^G_4mf?9w uTRSni7QұtMcj.6C.uڲ\r9_$ȓu^[oݗR5$9ΪVa}9W V mGAѽs^1@QbA_ޡ޻ C7+_`2L2-1H+: w0])j)_Q{9q>fԔWYVS;uK``WnPPLp@[[#EY^{ZԞdO~Y+um-RK8fG{Zcx!iaUSx ~WӨ1htDM0<$|UZEAcL8&_?y}#n[Ex:z >Ɛ0b*E&w{3c?ǯ6DVKKK!>`8 , W=W+hT{^D3\uk.E]YͼvULD(U#lP ꜽ=UuMF[&,:%7;31;jԑnS;My 3):pK-ȘSV.}#&M&G_NSy9, B@  L4*myaimkG|kj>7{Dn.ĭe"X^ej}ՋqxU!uC[N*IpXN>5Ԯ. =$mN ӧ,Ps;>Fjc}d>vdXєN)˹ oMlH@7/#.+#az1>шUapgŝm4_҇'SsrvEZקX'mޣf 8׈usN}\Qj|R`eC>exwB?mI;;p7;%p#8FJ9.]K4m0Ynf_NFi\ϯђt(e> ޯ_[j^Gc Ti7n-U{n9aSP6Hs;ȐjTS&l  O_ n\v5 lξҥh6HSv^ N3Wm~Ά9ٌ4ƈg2E'`?-Pȸ%hh?OGi4 F1;aǺ*r /\_ zGJSu- ՗Os6UQh4GP{[Uj{p>qǪKdbHWJ΀')QLǖ|#2l4` Ojb~,99j' H6$iŇȝ2~B˷-XT1R{wMecڹi׮\Iƛ(4u'ﲾxṂQzGoyq0>Ӕ?(pߍMu("RUr,&˲HE30bBL;zX[L:ƕ; ~;hODlZO7M+6*&1To[鮻~}3HmhFa4F/عq-dI n[4OtJAykvׯ_cof禃@X4#2x9SF)_>Qx]|KCg DFD(]Fm%~#RR!9𒠹y}1,19E}3@9Ut9kUWuGdt 5acٖI9N0 Y@l\8s*{>UzΤU+U@h߾P#B7e"Z;N+_t3-WL[ QvqEc6ԍYmXhq z4npW/ݬ(@ NQnѺ|;^1r h `R.CM<_ Z:Ug~czyθUk?Wa3i+׏=4y-W/^G+t E5۔IS؊ Μ9p|\l,7/'$j0#Q<>!&#UQxt= kЇ7&*BSƹK2$:t"^Ln D'r!):%;ȸqbN2d8-Ǿ KzŎC є> : 02Yɑ 7Y 7%lf?9M+X) .s8ynО}d*-74CޖJpסt` v`LިʛK`*wHIخcStʅ|cSgսi2AZ%l`IX (_ pb}{ThICLjX*40^_!;jM YT8Έ{bDƵĚ⯬dU*ՙ bն( ƘnA_zPmTp}pm>>[1KDo` aQqbh 1[&LU^d1?Dhz!]PC- p2gƵ Hݢ<HL˶hZ=Se˂ Ahvp*q!qBF7 ίj4{X}{vWc 陙&fg>h S1^&5F"MG47D:媶ոkؿ#lO]G9 9^>a);~ygb eV^^ajO''%dff|2m\ΖTQA!CKBqG 法`JR{I>&'ಁ;4@8tc背6VEBNyTdMK$ Aw&[&b6=OJa#.HI*$ʒW{vh'd:hA@ .$̪ tAbx϶WQt:Q -D}D*22$ 2v;2T0VgȧGVջ|o> YO! !8nag$ݬэ*J &+caQBX4+)l1)0ˈ¸"2>9-f6O0v+Q҆'2pD?BҢbԵLh9V&իۤY3_ x*b!+;+##--)ƍ$l흗v!DgefMyş' z\D8?>>e[bfJrbbc1QGEATSeޞoL5LOO~-ә,aC1 ^ GpGc@ 5N[{l+oM EyN /L^uE3{Դnuq%P'LMƾb[18Ybs 1k/d\>Idݎzc!TmR]ѸN5\oICQ`mE{r_y)(.fs߹ަQmws.AK7ʷoVG6"y}dm"?'@Aa0KKI#Mщ)lPpNH Yܪ,h\C, 5v=lKjhYΕD_l-|/{pJ5!7%Lɬq W'cgs<^J iHäqGS-k '+CS&Qeo|>^*1%hNQd3Iom5<Y"O.4&S5z}1ҽXOtj &Sis^ kU걏8~沈x'ԅU"7cřڅD&D]d UԚhd_r}KACi5J̤i_8;اL{7y2 $߇1U~Jy~x][efy(h4>e)^+d(eS<k\/1psS ҅!<&x}Eo-6+4S,7[(p)]ElO/|p(5F,%Dkh[he a (T}uw ޹5V=QtQXP _P00  0s{_lVUA+ x\jEs}D8s*`c w+U18fz:5v4՛Eisen8xdXw1~̃ѤE#>Fc%lp— qSz7%܈ńqO!4nJb<Խ8t37[ʺhƌ#g6*Pɶoi+Jăz7)KK,o cƏ#{}HJK\ւiׂVtl)R6 ns=LlZ4rnKe* G6oIψ8t̎.\IYCiN_-1XMNBW܄A\ef2?mdbIz:<~Vaзg. l`| loٮ|\y:}~ì+GQFUѵu#A ux}͎yaI7,)i/.n0"AKPwK_j84#Q[RbLBrYyMOҳh5ө -`)h(aFui7b@1Ϫ2X7럙:ih7 >eCáޓt",O}JA&2qBQ&IC N)d1I!Nyl8SmU1Za{ʟ58( \JEᯖna^l0 Eo /J m|iOIcIA>aІLxQՂ# -O*(\|wjijŲUoRx73F"!8t\ttfb3`$ҵ;҇WWju]>=ܽTٿӳBz6N۪9^y׹eCk௓)iuz#x^2*ր-ťk428@"+(>`e&Eo ۬&w2pQw":x؏؇اq^#ai'Nl42u4msgMߤi,ۮ}O)UKWc4W0T}s;?K6^(SѪ.ۻ@pٻ-ߺWTE(L%lɳ|/5/a KxyNvlg)ؿ߄=|yQ^|P> :wG"YPU{9 Xw ~= 1LV(<}v诣ktczpeGQBy!uY^GӪ^sTbzJڈ)/gXzelXt qYRXGae71`bĀbB? JK4ݺDέ4?mYи 9s0u^K>W}2 %qL TSE=9 !ej< 53!06̺L C>-ň2_hAnzr;lTqk6}`WFԴ|R}C>$B8z5ǀ倫ZU+r!jRq&Ucj0Di鈩Adqgا##0+iMS$d&t=ə vL 0BU~-=+?Ky~͏u)' av4vo/~,A=xc:Uγ?j>Gk31pi0\vsbG?Ce7f &D6Ί'Np}Le/~O>ffҵMcW^b䄯!dh6mJSo,ZXkoL/zB"?%h8RcԪR$Ps{#2dv9Wd'LsYWف0$)Z\ȴ+8)ht'loۨaɦQTSr^H߹ͨhtZh2*𬭏#ޝdd5훉mBᐉ}uʶGbR  sx(h߼Lޖ&C1/,]qF&/,@_ߨ]L :MW̮2#4qpOj9ヷޘ>ÞMnuѧ 1΃q29*vہUu)NixFp"~bmr f J( ш4~P]?̵~&\ -B[Q5Lm܁#31 FH"Sͭ wZz]ׄs!ZAFeVv}7"^iRWd%z;|쌘|؆Le!ZD]$zTvr8-̻t:1@(:bTӇ2I3k#'.n~J3?E4ukGO;6}ABvs;,rϳ9Nc;z]~2dgDYM--t&A}\QAg-X AYw疢s Zi٩Eq33I{3@Đ:x/,A<ظN P 0vO35|./v̻91"|d*71:G6S.v~D-cNK :xj3ȐCaf?뤐CdrH;lPOY9ˤlA$BOGmHr>GFN*7[ pqM=k!ێ`'|m':6̓">^{5[#4Y>a:LsCqdg}|=x-QjA)h>=:4#ׇ$ oKr$ i KE7^AZϙ绿{v 36Ap5$]E2µo*Ue+NIS(Nmu47sEW86;0 ?^)cb4n.9#1) if}QѾE}([fy4xzxKGvh>gߎz^DKƐӘ^ja[3bH?\sv怦KZh9:l ͫӵh U*2=j| h~wmUhdt߱ eäy^*Ƽ>#fsSbꉫ;5M$v=Ie V))0'$O&k!܅aNE8Bd!a ňg4.#w]M0i۳ힸ2>,GN٥`1ijG?ǑU^A} ʅ4W\]b6N3 4H6q)M?(ןvojt).o0랷/NI~9iݾ'_rsj<AV:L w'LaH3?Ϡ6 BI\ա(;񲆵!&T]ZA@{\:0 *|Y bs5 'wH`BĀ792---61%M3q>sSg^҄_Y yIq Y 9ijfs~ty?k&0ǡ\&@Шv58ҧ3򾄁=&3s,]CjQȃ>q>1aKpX3%\lp8Y}Oe0uy 5mֻ j0%%Km;YE/A}. kW0 {]2o'@[MVWE}мX3j&0btZ*b< ]cӻr_Ύ.ײS66R;R8F INJ<ֲa-6*@ƃJR!s  9#%.$V>H/hWs8:aZdvDEᏰ?˳0WU=m);x⵩ޟ)Dāȱ'XD tDZfԑۿrV8BY#<~LiS} BDӺ)_a 7okg)OXo?D1gޝ)Gs-Ws@W/fKӧq` c#ޞ&7VjDYhN.zo0׏{w.GFA#>.joF;8~]{X 06 9 :`c-" Ќp_E'h)\(Xy/R=/3ϔ-^8fibf ?Ҥm0ܵu#)0. sKAZ0/K^/ wmꖇ+pwG k#ʝ{XObt~ABe)M?yYYhcgNZ\Q25jSKx~A8 Qz,urdIS } <_ L'>\H 2懡pC !v3za,;~<ѿk&!zdžu~ݨZ jíy:'N*M>ƀ C{s  ~!80#2}ޝ>Ojh.# |we jUŘDk7tZm&սaFPÆ É@ZA: M &o SqoѴǹ ˬ1nv?ڬdJ}a+K^sD4Rp9|8.(!#\\-w~#==viN#5Pt)\` W $3¥1)P((Ow1ɸX:(AC}W .n1Z^T R[\L((%B6@'VBfؘ-IkL Z xK BP/3o][Yn>؄BaÑoaJPoa1!МbC(q͈ E?=zhʭ6JD|ߗJa!wBf6J$QE@"Kn;Of %pJH0@QgO)-jYUmVGl}X&쒙{qϐ^ Qa3lbvl\w g&` p9כV-411<b(h0H$n+^9Hf/ɂ+׀|1ktԱO)d|*<8Pvx֞QD6Aؼy:.ߏRPTmRp}{r}zMV;aA `_`0 pѴ`@Sok~_F}.r0ŁؓDf9AwRWmTX3^4n6jb1M^,W%}=4SQ.AAy%;\1>)t,d&( }a#0Kq}7(|eQRJarms-]}7eοZ;|Yzhڮ`FW|:Ātf1)\5j ?bi_?4" |1}r=aVlAq߉Hhkh\gpTjE|Zѫ _Eo C5?d6w6;}VGX;l >McPÙ %zj^2)l(fzP)l0KV̟ 9%6Aqc0gn!!/e9W.{:_J;&6,P])~HB, Gܛۢ]f6o^6LhH<xY@䴴ڽsMJ{E^sޕV`>(!bh9\, ~:7Өeaaqa cF@2Ze )67p_fK,O,Ox?!ĿHKOK=|>ġ=ބ2B \7(ptkE֜@ :< O7#nqdh޶6[_]ƥٹ.aS Iur8ϑ8Bq `Jp]><`oȤ) ss6x&}d/z> \?vkf;C%<'O[=WY>.N68|a7^+afèPM( bgd3sYNK`҇[M5ޠ"Bш@Pg1{HU|e8߮p C%`p~yQsK3d܍~kƀ `\wHL : A*fA}l!㇅ 2b p€?2Fsid I>4Ʌ7DWAqP†:sQ ^7E1{?/Aͣ8ԺB鉠hK3̽P0!`c2EYb( "Q}y6~p0w8]|#AfMi0.zVQP^EwdT]w%8l|gҨMf L\*~|wΡ0Чњk}5~ o.whVrA*J(W0$s& 6T3?@.î>d”oU9‚ˤbx/ H'pz=k?9ԵYNO1zΪjLuPԩ^Y޲†Z,^\oqW=Xr0I~;& 6T@;z{jc}|j!*#zЅHSZp,˼)"z&}x ެC6Z1:v#" 6>=ワ;Od,Ba?1׭֌wVPę'Ҕ:]r'v7c}޸X{Y.p`?cgļĶ}((qnN%o.*{DU[,"Z#ΞKZ47_QX,ÙDjM7c m?\] |{跢u¬Yl)tIh:%XwM3dĸ uy6 ѵs ̣q~H \[b6/Cڎ>nhO۝TX>I2V3oڬP@6gd=19M{uj}&q> b(QemHޢn*gɇS۰:v`ݮk]Z7zˇ?5"&z.ckBx?$֎m>fMxUԩ#hV@88xnt_ fkZWn\G ؼh߼CO ?,X%v<& )1fXh1by+؇nN'L\we; !y+E"[6[5^IDTWb:LcE1`sQFN@IDATiP_[f\q[t_M:kӢ^#aU|+zKtnݤ޹U#M\5S9J{^Y5Ll>d]{I`%^}@9gAmФnu[&_`>AKzi=ExKxC9\/+z~xYFЍz#1)U!׊6MiA t7w_wֶX[pxٻERJxpVMTPV<2kѣC3q/v o|5GTTN…5_LCM'ȣ^1|\xbp˃`Nשfỹ/?nPxvu:Ԍ;C/ZG`kGqtCKOK;u&!_ө?nm&OS[6)K M,]S\1i.hp-8r"^ ] ʅ4]Jh8(Z.HvmnςY⒃us$֧7GA_/P6ac_{ :w.>Z@P20QpofGHV \l#pQ2H(<@WQp\ѷVBոWiyYZ>`گRK/M|IߤPRΜOIRREh4BRB!bb{b@S8s|+˅gOOԫ!X$k!99mLZfɸ8ү|%~χ/tff&\1E(@nUo^~YCA=MA(^mPxr-7>=f@2=>xBkI;f[[+MA8&m V32Mk9?%=w:,wsҤi@6^q (կ r8lMTWuh.j)(3GDYh+.E!=/Й]Д'K 'zG ~Qi%4|Ef7|'M?#^@S@@Q}=y5Ybs\Z%=4,|j^EGs8LٙN Jee |(, ܬ5O `gmk㧯noZla;i!d)1tq V$OX8(fxmg #n%bOƋ<5b3. :@YTݎMنs)pLcbٰaV 8*ҝN',G*Ze3x-hSy`<ٿk;լߩưҤLpH ]@D`5'A0Cbp0 l^ݢ{(;\Lo9]*ƒZرa46F9co@[У}3#ښkMKt?bA)^{dHIKU+32ML{j=[{wBGN}GOjG (-63ζqy+:f M01+9 O >7  x#T&p4Nq2t`s9 }#VfG FO:uotj.ļQ1P6>1I?C`Ǚ檈&r:5AE\ؿ /?2XvuFD ok|`^| pα]͕L(dAV=8}.}GOx{ʱM*֬t^UFr3,foU1hp;Rxo٪cw`.7n7kVNm#>QvHmĵ]Z of/OMWN 'O"&vE˭,y7n6h3aXoubƛfTd,ʄ"#+Yؾ8;s^|?tYƹ˅פ nYe .zsҙҟb>,=A*z~~Ar`hnB1{{wo? T IL\G 4[!GЫ]۰a=Jܿ[k!%87ʯ0ڮLGa ҍ#^Y{ uެ'00e|䕴P)lg%lpa`!AAmB)"$Nٱ9"lq+4vjrX;ĊGfBGVݱ$Za|J(_V`R56wQr1r5rdFM\=?wZT*&^^\޲,zT cw\zG?,B *~Jfz̮u;DۦuĂ[]F$>vF[Il '@Һ5"!/ȁ>^\x@ҊO@fP I[=B(AةВw &ծzQs'3ϡc}qfqx-fpskPQֻb17zj{&iÙdfA4uEFȇo"ȡU`]):(-+X۝ d'#M}k FjSŬ^mݚ]\ٶhy5Yd2,C'V$Al00<„I=tlv Si[~}ich2iwnkq*aK€' 6]R/r m=bӒ,8 }цq*rK rL"!)YLsм0դpWDV̺n~)l=-j Ka`+:ɓS|f">d?_QRyu\RiT↫ډvɬ~&2o:/"ԴdЊa JS8#d-O?%Yq"l yiou K aߔAZV"|Fhȁ]ےp5vXl1pgz,P-qz9wA=>cZ ҋSϡ |l?@ ,{cEDt|P+Nw,¸1"rBM?vc[{҂q-|4 49Ik ֍pL i2vہש*'8wF]PC=JZؕ&5D'[8pah& ƖR3ixZ6PeNƸ8!]7'}=_~y4AfQ^~I |'<4&Sm̰- `jsoO+MuoDߓ{!poҫ@bmJ*ݫTX'puJ@L'A wCqkQO >X ,Ϟq~CF!C)aP͏9m'?ğءZ?z`^~#Fӓ54Y}Xd!Z^ZoWk".M?$:XOThB2NX22qYՑ֨.G>m5i 7@}muԂ^?~a0/J`@թEfV[X 2o`w>!$VU+eD:v\]3]Rp0Dh[hP41iR]g "$3X֓`4S=|(eu]Tešcqc[y]Ftiq( ܃ |hh'胻2 +l'SϞ³_L>6j,vY%hCGѿ#7z\i Emt=7R/ŏ H95-&#{+$\02҄'Mo8Ly1֝ ]ƪ{%숶dhcO_w璤P k"YLwpBh++B0=&\[!x)@з4p1}>3|wUМ~W6ծ&͟.C\xԈGfnLewaл\ڤnuN r)+'-5g[4"9iUPO?Z+ Ej>M㢞՝{#"'p4F!;dR)h5,T5f KPe(l E0g!_M|SR ·j W0YS]/Q{ sh/$m>6nR+vž2rMx$I0uB\ *&ےBVUkGToFu|&~1[Ѝ}} GFs}cRУxY}uNǟxٻv=V*ʁQ>}dZ!턹`Tm)H዆6ḋ?"Uĝ}벢?Q@p&RdJ 4b/ORx73nDpⷥ١畬2X~[NFY}-Lj1>ijbky7M,B`DV#]rntQ\nmZ:?DžsG ZZ̜R]9ԭ]Sr^qQP̂:T7|0'&TɬQU}5>K >ܪY>ׅs35…:[ .р4"+pZdfCA7B M"Qix[G7:+xA4۹ ^N,k`1j'ْ0:6.Іn|o 6+>Vus%oÎCb喽!N=؋iA#w$ nLPdȵtiG47H? {Lwʈ[7f;̪N>Sryx]HGgࡀ]?1AMLD(T:.s7|Hb6Twՙwwם@_ _MGIP9elndGjD!lQmE"XI?Dw'Ԥ0Z*@NBWk(AfO>U)pD߆NMs QYfVL)dzP@Z'{Ux/#nx4֫Hـy42k!4Yd$v~|cYTşXnO~m|nn}e^(9A?&P vVj՜2ѿNO8tl7.;~jɄlstnꭏ2P|jɦxZ$<OR%R(hr1Ll@x7̌MH"ob\:px?^"ySv+RL#(;,kB>0tBؐpBi"rxk/ H."rc $Եkb5}B*=%J>t }Ii:cb7\.^? > ڒ&G_?-j\oWڀ;+%Of"LXX2V2V8Gz!21wHկ[k1SbT艳1]-l x7^A 'asM?-r/@νGLP`^I348_!zthh69h O s.0ta;}h pZ>\䁏 ^~e@0/oK֋: Cߔvç2&D n%r8.edjyX,]ꞻj3Ugu,!$\*>y8ϳ94rXntMӄ~!Dr-Y,OFs5ُg`Ke Ea Ծuzj ym^c 21XR1ĪO &S; TjW(R3^VMSF#BW_ŵA$sG INiwMvek2kЊ0>dlߚɺ/ Lc]})|[_yq ÇA}ه]c Nl#b6ةξumOw윉DhrT9V 8CʵB7 $<NXRX.۵ q9|,:2!OV2uy7,Բ9Q WvzbD%Voz"Zu"óS6ǣ!̓hӢ5ҾOɀqp9b[DYDNr^Z70 ⟮m PҷL*_=83*>y!<aĔymbĀb얉€Eud]F'\LӢqm:-L5C״p&s!ɍ c=vhXq,9t~Njzf,WRk'ƒ=QO>XNy7K%p\(G `h6FO0(1|+B2s^^䔿Z#KF^+6>"2>׌BC8n߹sL A}kfW 6i"f `f6 1D5Rmc$o~x^CzC\4^FӕSYz7yK MҙCӃ`5x /$'4D4G*SiDDlƗ噄dYɱS|S`O~ڴwkX\H-fǐP1`Zu{pfjf_:cn{T:+ ov~gõffx3 l7Up@1&¶)pY #sxtPʁ̤Pr"D!C&0GQ,l`_p`HkU(c|@~Q4}YZo)֞U9{/ݎS9UfV|SP鿁@͍e@2j8T~NM!3L_2.},hZŤW/)ƽzq&l3"]%h/6E?9ۯKT.0̐Ɩ2ٸƫŌy+ )rJ`>OAw7(q2[6@D ^@^ן!Nѝ(om_aߤu~ŬwP{?:u1> d-gWOU(dp4U *_Oٰ`;{E@^ }v`cL46o'&J8mEva&BCގl : <`+*po䰱Q,I{.>vu Vw#w;{с=gXEg ا;aY =b\TS/[ZSA\c60ānn*8`vܯv&ڎ|Z,^Q^MN9vL͆mob1p;ЭxJ!d4AQba^3I1tOz׮;Ʋ!V!1rA{X}ڈ+.v hb7"QmM&S>vVCd"ϡ~{_>Fuq8lQ.%Bظq_4\!ld}cܡu]|sGFGkQ.~{xl\Q+ 013+ )p[W#dƵ&KrDo 27sj07 ٶ_ +b;_!4FLj <=>1ڛD 6#վt7;]Z{uhCYԠBojCޮ _&|)scԼ+!@_uLW~}Ԣu1 |o|pwvFCݴY>)Q>Gw>gSUkRx6Z AngI*h-,SI:6uKpS|^',0{֧ M{-gydTTmaM>wW61ק0}4\"|}6h\U+e6r|G4B f=ǞS?Ϻyutmu/ &ZypPX=Gţ!0P2֞2$/L.r02aȜ/9Coe y!HS@iRW%dec^SPBG6+ pՕ&j}ctH;PSsgU 84yoAKNMd79,M1S)߉ 1KKFrS9fG! oK3A+7h#S0IHJf&f2iɠ5ڹeCdo(v:&srDTE\F la9Q1ƲرݽwTh"OJiSPB)"o)؝sޟy4>L="'xC:dj吟Fmpg1q`9FT2T1$}$^>?*e`Sv{8ͪ 09_+b©$;|N/}S4WH;\svYR؅͡RKaLjBh^IV\^vAhj$ ,Ak\&M7BЛc1h$,sStH&LBZ6!ɼGa09_ըMjhFC&\胝p=`dxYU 4kY:f$J5Z3Z)9a09J69 @ OI&Z#SW\N޳;j*f͜wF9+1G4W\:eӜ:k"vN_'`@w:gp4SA 2-`pq">!6<0YXE$ݖNEDd*Wm/dR#*4ߡ\X{ZC#3t2wPlf&T 9 )lDT1pU"BÜh:U0{6qi`i7]Կ20CrjqYÚ^$ fYAPPF fv1Aߋ뷪kKn޶C6Ģm%pu7L (aC4gA֗vp.yrʖ%V͚|s}zJ4A4=%f!)zù7z.fRqx+A5rRKMǺW/S#R:2"[QB! [pE O|DS5Me`gp8? jCiXص_ޯgv ]ԌPf ľ]eԩ0j8ٴY%SϞ%Q4}֛gU_!C#"FokW:APj09CٷY=&;}0h#*C-W8@S|M֐O_F S7MRuƣ9_g ɷC?s஼'BjǏQ&̕NBRMO]]"ޚ2M1ѥ#Z~[KѧK+qlk~~Htn&ѳS3X΂sQnn\J~VÐ̽@/3 lOC0 8/m2rpo$MeԽܠNH>ʖ)S.{p>~0$S'D7Xa@s $`$QͳRTOO —γ`O~eaM(\sΏL. (\  E1*QX 4iq6GzzP^cxW_K48jXo<}&-(ҧۂvD|k'b cj5g^?hUŊo 4p/31۝ +jBs;g7V J L(0K̈ØkΗG6F'Z4 틊>i,+ &c'pԼkb0M 2@Ξ=qnƵoiLfv>gQt(/-qoӪe&&ӳ7tC1 >BIRpp>fjWڜMN˕9. rVl<^[GII L6)fPcn&L %l(HffWR/qECoy[L(B pG;\1>3l)l0A1 &} Hd,I/ cphߤFM7ZRD aҹo9.޾qٿ2_i=pUbXx`=c,7kV#^Ao QcG)[#Q]}1k Ӑ7 sͤ3~N2]t;4V 6f2X(%p Aaۤ2 ~wxh```PB0`&twVaH8vp~`bĀ70DŽm)5ioFcg`tQmZKǝXoÈnt:t2G>:&N%C1eة/+cA:98mb&?ŢOaҬ6p7:zwϫغIsFZ&E?`/]uNgpX'_%S<̨H>2Pb}(U`V^oSMyA]47-;ʙ`mpGT,g=uSϼV1y׍sgnq05@ &򋁑{qz#L?͚ж~Hӵn[hh`|=w< =YYIt}q:%}r|9#p24P \ϢmkV~PBµ ӧ#TMgVx&c a;?gAryH2D%2 J0P>&Jك VGмyrW%)q~=BU._V{dDV$,C>av )#E4]?cNaͨ)1 \?(t0- N&EfS@, Aㅩ"ժ[oт =-I{mI}#:V97 y*`S"Zj_ȁz[A: ;sgRRsOs[Ԭ^CF `G/> ȂrCwn۹i>tVi Qkλj2 &}9% &€``uAUժ.F1nb$[S:u6dS)z1rlQBӯZK>]jUM߹BqMꢡP 4Cv;8X{zx 끶^^6̚5+`]arPΎ{;S=&U2]x)#'Gp6?NʑG_ `ʦJc8 |քe;Umȉ Vvq\d tތJhU"T|1u8Ugo ?'RCnǏHڎu18vd %]#KP$L(]I>ޠ֩qm>;6وcqzaSͲ9% zuޞ< eT H9ǠaY\|GJl;-LDS3#EAyߩ6M 2ϱ:L@=.2( aQvv#Cf 6x # c(cS--~uSͱ7胈P4BCAP2FA\K\70MҨbfYu3p (ܫukP _vp^&#M>yj &U~~;ˁaN )4U{ec]O xcƜ|kԀVVB0hԴ?|ʔ q$5iJxOElq*nAbu }cL vϺ$ [ #֨/>FtW.} ^sNGN~[*F_JАoM w֍!sqoG7rCH`+?`! :h1u۰+q}72 3I)xg'kmAm!oN~vFEM~#ÜfeYC@IDATP|Urv:_ZeUB͏T6}/X#+A9-0_^)0 ZAWBԻ9,`DN r( sAla0&*AC}N yO,Q tdᢢEwdTq]3v\!4j7uø30p~\;P V`b@1ĺ|70c7m0tϩ3XaK@vX.TЉ?Xqm hnV։-6rt}Hl Yks`îFzhVԨD`=؆3 ;gIy /ܴq`Mj#ԋGHRãxW/]8-6>B nRAͻhypU}髴Ou}aj}B#>\Cf0[bCͣua5飰,>82 \^xZx=c9umw9'*SB3&L F<UPb럽@!$ޛ""X'=lD=)곋 QD; @HϽ$6777&)ΙئKNOEhO_gDMuf]|.XS:~cH0zlk~'ZG͎%03q+yBP>6J#JRy5fZ;I٦DoWxG K1Xk(zOh{mțܶbfϱxpR~,ԇM M܆3W{0Ǣs`0/ 愻wEpΝb6dk0`̏Mvj^1 X/@&PgC obXa̩Q[TK5>3񡏛Ly;Ot~X…< %t :@](@fˢ þPgއh#*`dEfLye/XOxq0l:|<&q~hTL;LIW}//{{D|56lo iH<zWOLr@/ļl_}epfbJ^Fzy"hǵxʒc?eM6슗3SH/y,3fٌ NeS]F&oDQn?Nc*c gӄ]b1M[^8WۿG,nmb;6?_q1936 ׻kJk8OE`3hӴeܧKx Gj|7z˹%K2Z7 {wjN6o(-*}8=p?47l~Թ٦ {9oGϭ>멞*@RsׇQ& /bb_D/pXf:\2ʶ7crwESD'ZppFzWf0o̅@s.2y./kuqmr==Kǟ蔫{ۢe4dd1рrY@1\N\< |a}L)',yz=z,99ě[؍̩t|n薻Qɍ^$zn%`AҕP1bNr%r`v%e݈ wpOKxE=:y,d>Oz'p@IRCU:h|ozZ~,R% jTb>s>Y_r;SQUUTV\x! w#ky5:3Ķ3'&Z'dȜȐJ,7i؀^Ϗf^X,_̈f<55cM H֞y#n|1:Z7]ȍi{SDw,c:G^߉pHp ^"!xvTg`˳Kmr6uOTbc+Mz9խM}̈'@(9dkiygӢp%`G@3lyjMhWCYY=ΡٿYJss7gpK2VOTrdRtO] aɣ)/8xcYG΁53郂L8j,5*knmտLNR+0ow~ ßVqƇ ]eTd:g]CbF2ʀAaVywyfbm`n)u^ebN e'5t:2.qZ_ɣSfl4+ts>oHO76L kԵݓ\˽L{Fao3\b\o:Bܡ+͊V91*cB/C 9vtCVs_vRUAjT@yx?Sl ^vyqa`߾yi0ЗdYYk\u{{bH5m?| DP櫦*D`FTiNC5::{H{ɉRmQުfy7:􎿍Uck=f}b|7)5ͣ=W9i*/ {ggO, Ba}{0%9FYVFRˬ酡~[CHZWm[t.)^Hef|37(ME/&Jc@෵{jե#|K1\ԥBlt8)gQ n] ]˷ёDlDԫCw؅XJ;Xx38.U7W焾HK HP6Pc~iwR:y&`<{KzԦIjk6Ӂcg8(eDd˾c"mqdX䙫(`u@_3RCƬyı {]Kzhx"qiT7(q4θY] #ޞzvFFcnhPP?{$BRp;lL JJJLYJ`0hxygAHPtXy9oHRRRs6* (RTVs/" Hٜq)vMdplAяxT gR$Km"}g/Ёg~Z4v `N{4dtA)k>bu~ػ#6 ώD[M^tGNmќeCӿ[L&M}rHaasnR- {T¸+]Z-hxL~\vĝ ww7ؽ- ^H0>5 +Ow.vߜ֩EF(zcfnra};8"BPRZ =qMze~2!cWMĶQbwmնX"l1OЭ5vNHGÝܹc5twwfAHd"J@ah03Pct\KixHOHXym mS:6s7}\M|<=yhe1F'U]EUB&"W~1Ͼcf2E&pi~,ޒ9a1)۹3qH&5lvgOyeK_Y@uupٸ5k`X!.3>#MԖզHbF43?QV?7'ѱ#gћ6=vqMԥW>>/$ 4k66ml6 =aNuiHf#2.1Q]`|-t76Zy?K- \{Y 48@6C…d+WPkfVM>p`^ğgs#Ҍ̬\y|!$7f}-KrH3$k9:vx䜡eeenܠn[JS #؜v1K. 1{ J;؛lzLa>N`s%wVLb6ܡUVD`BԔKh.O080+ a =4W-mc1OFiڲhoulf/z;NҡI1=C!$MˀrQJfahm8\)H,?*S vX-+w$mA@aՖc0Gx'2JM|d.2ƀ\av5̬udմB|8غxdE;9ubp;;B}&_ wKQ#fԶiz@ 9,J߼Ϸ|ԣUYҔwPQl9 1OW3X>l{3;TWW@ښ !9JU=.Eע+g`21{A 1c#u&E*6 xSӺ>oQ~ϘXV &pg2*g_Ó)dy^L-л>w2g|IЭod:y>6 P{}FV6I-,H=>'՞a ǃ\0.QWaym *еP[+HݱӉb{}] a&Cz*B~<>_WR@58=-S ;fns m%{R4@x;z=Iɧ|)yYTyC.5(6i:vp* Tb\Je)StUU8&.Qsa]䚯J`icv/-ͥ4a{VVM boݸ>%$sx*T  ~ 6q)Xn37tnҸZXfKc-ɹ5 'ԟ\Kxjx{[| 9ҺpHl(z ɹ¥'U*R!P$ ;`4@z?ѯ_O>-\KxsOjTl w?aE=/@z|@ ŧD} /;&q;,:z`O~VٳgP]e7gڊ#ʁ:v ig ξZY0#ؕo0y)WR1ٵG֑Ԫq`,$$#ٳn`|0Xeilp5cҋ_9v5=1UjÓ?`(=ab 6DU8>p-gnRB5nx'nan]E޴7$s<`k(.ޝZ=GT})**^!P#܊EWddDL-$5u6`pKo{7pB̭p8rhԔx 9-Ĩ6oC3<[ n[\blC?/qM^H)$b]/݆aۣUJsO_M!`(j3>dfv>z,@&<_[ii-KD^;\de_V Wѷ8,]1# G}oyﵧX]c,{do<{ֳ c\Ki*esAW#7߆7rq|`|öb?XB@!``쳵_|iىB"9Oro?x=niXd1~tRL 1kjxK (o*Q Z: pfoqW?ߘv0rl+{_u. TNH.VѽFhO@:1%1S{I)yy^d?=p7rWd4'ز|qWB%@)RT ̱XW+٫+juy %{ߑ \TædLĤZ(V׳pUʪkTkPW\C0bk0|G[Wk!&q]պ> !AWy+S]qhC1YNf#a!R`q8V=~okMu톒lT€^?E W@`;F$?zUULL XpNSusXE&1tѰaӳ 577VvHMܮ-|@X GEۮ"W( @Lb4*iUFMFL~p9.Ù l,\.: G$p-1alc9[Ew2o9(&?7ЮC~Ԁ! {uiHD@h<8THnD^0.'4X1NUePT e^`!d<بݪQoHJ6:Ti.ްFԍ: /ó{_/.nD_(?<A!b6vĞ{y e8LH[2tnLB:!:Ϟ &l:B6s!J[۩s;3jdˋcJ\0LxUV2\H8.9q@BerR\{k? 6`k0#wEؽ nd=~@z,䠣o>vB$ C{]>s!_c%r ų- ov*+ (B_ۦy%q$>Qı4f?[pz1g908Q#! ^E8KWh͎Ľ71nZap ONi@6:{g?KoÝ> 9kAMɟcYr--v|PeQ$2RUe/`X3~tMtpZ$OL 5үϾcv J6. UokwKS^ET,_2]-kU2#l&|铟bS[o^).}!b@\2_tUD`BԔ8 oG2X`z3$Ć\od+sˋq%f5@oh/JMˢXxWpC(U_Adžs*Th[EC[5&ᅿ%ٖLgXEf_p-?VGA~)BL*PS)u(_Ce~C'7χ:nL9V'v-&cSi 8NcT `308czf{yZp{yYxCиAhm|~؊-wd9];_hXߎtu-i?Rda$𮃧h Qҍ{J Dh횊AzQ.~2W};AsjLn1OtNs`-A'.t`Mv5lԑldo`7W QX]$,пD QQve-G);9@*ۉ @Ѻb)tT H8lS̿hnaQmv{sYD=4sn!̥};fs%厬ܗ]4v\eqY~B`l T;AWVo?H#u* S?_LBa)s.&/_N').005ҍ=lN9Esb5cA?EZ4f݄7u~ݢBs֐*ZxzoE#F@:AE [$dCG?7^ ~_C}b'vk `݊.IiCbhoI2pi?O$O x鉶2YrCe.}Pd ' @h;qO1`6տuΒM3˒+>  _VlؘTP!L+ƛԫ]-{عn \=p`MU̳N#|woa*8`-[x#\5W s]I6{o^IwPeC^|81/<`.eLwԃqol--&$.3YҝCٰNGegMK='++rF&}N_yq4Tx˘bJ! <pk񇱂]،}Dp`yK'ذ^k:eذ(Ơ(%u(mz9>;#]6T:>0և 5k ղ'mݸ/OxpLcpI8";ˁCRYˑAۈ@-vql&lB"^Gh[S Ǖ){oI\\Ua- $<(%ҹ4^-ѴhXD)?ldO La "ag7~_y6G;Jד/k9"Co3cш1n$8A$\1/[׶+?җtLZ*)Ϫx^UaKbx"as{;W ap% w5\U ޽08hd4 Ƈ]K! ̊+ԣuZ.qkArmKaB|lѲ5=Vx4jJ$A=|mVW\aO~'-}` +->\b|84^Eܾ7 e-Khefr"Z84{ĒT3 o'i\ !q,Ro"Hf"wQn=ߝvIm~T{ę~V.@ LP1X `v3/ߩm6Ϗ?]KE'O{۝DԨ;ع$|pvF'*M6֌|'Bgm79"2 l;*h `lF}>?}\U0X H\㣸Ʃbo⨬3E5[Ҏ9N5UWrf G[4[ۥ pk$II5dgB@!D&D7yZKb6`4j9Œx@|loŁ{ŁH׺|iq%!q͍ܫ~8g#]8>\QLd&rxc Lq(Osq>7Xrs?r ( kKY*^g)J>9.%֥[__?rWjQp9y%%Ljp{ӺO._nB \0qMnoq"a|9NOOkWÃb{Xߙ$N̕) @w7mU@/7)0gۢH!( D1"C@*-2C⼓Vx8AksEu>™0GA,v5>fD_٪<6n9Hb!1ql^y:`6A.`0%*%-ϼm1ՑḖm光 ^~`U_E ]Wկ+/P=@)ZT~Je6vrP?iګ5$Opbֳ**B%.B!LCXv \ө̆kpP0` ,6}&~ߐ^ɚyt:Ʊ}?-eԧ|$!%EpP9Q9`wcӿyⓏ}hfNNN) NslB @ZHwn\Gj` p 8B,pt\ tl 䮆3Saf+u4=ij+ f^|CXz^?__/ jφ]Ybы:(@̅duӘP&,]1g#tz"͒{i+[EDK m&pkpQ;p|Hfv%h_-~sҚ =~&| ~ \S# ։`ËJ_ydWu1d]?cf1 ?l- o/@L *. *E`=m6L@/rD. FX|#Ѱy/0 ;mw&R F$0#I)WĢR9q"vf@Ix{8[+z5AlĹQXP(^3ĴZd;,ʜz<``Nƌd66>1CW_E+ _^y*?*l|2m㢦An5ܽb¸3-eĿlݩk{xrwSG`HɸrCqvo?ʕ cw)(Xj|058> R:LK~֝hڼ_?`=,bwmG,_c!3L _;QTqC2[, 8 ݕgXPC"R}S30ƹA0!;c??!Yp6!|yXTzð1o02yTs2m"?WP̬KT+Jcq'">Of#00Ѿ]LªSu 1>ƪFZVO3k5ӓ$_/ě\~M˟y`0meOK+i߆AO$f2k:%Aja֓ߙ9v<Xڟ Β1|bdDRxGw<>/@M \" 9w Zr녓 @*R(l#őLO;htJ0sdM?;jeFr3J,Ϙ,o{vF9~`~-KeIf#:G_6Z2ZJ;b `6 l3?VTE3.BgG#|/mx( ޔ}-YZ9w`AygyOq&=j:70W%sE _rdz_%*gE  fL~m ' o^8{KVasбE$>K 9؜y>Z6 nG]Ys:ԨVbGIȁj19k"2좶}pZ-N/k4"%XJӔgc&`ia<2ĄK0<[[N@?|"U1:rXz3 fA1-t>-F=>,Xf4€)r!d>ҸP@Z(o{|%c"Vb̙_Y |yDJ*p rq9_Gro; *4ܬ)pzE @se֍Gz^%ِy?)NI};zKƂـc@6B~Y}y1݈%!Mm޿opO"zD8lkCT.Yi`6¨Pv~ggz=Ԣ uNEx̂TLH&a C,օ ʄ20a&j޷"U g+{"[,,fo~B=+gu ǂi6x}y]Dy凿A`k,ְ@g ZyeH帐gLrA*k|%S`Z9MF>rr .R2ƏOyp! \yX&6De;D5%}@PB`0hޠ￷Iw0zMiNP=1l' ,=˕5 u(+A21e͍fu&kj  jH,q8:rEsˁ*`k ł&D0S^"l}J`~0;2թ״*Ee}픺PEFŁg`=&cEG|*s|`=kY?{tZx.ܗ0gH&Cޓ8ymy16pԅB@!P0be#?;",$G87rEQs>>ʕxnZ" '?`60 ztR2\;(X| AtZ9$aժ4+}R&hGA(rax'At3TZ-4+\PU*mkثJ.c/o!O,,o}aePcpeQ(WE5e ΈL>p@2Yƛ'|5]+PTy' k>eF}tc0iCdRfy? <+׍hDxEH.\ǨHuF@k>ƇK?6DG>G~ ZT3l` J7dg\zozm41#jJhDǴc{޺4=:lPkB@!P(B@ӡzlM`8pp>+~y9,ag. e+FF-hٿ{_ZG100&06Bl8*SB@!P( %ـ*MA"ܙd##jW8GY*V р{[x{8^3\ٶz6D}s%!%| crT( B@!`ڨF'e`TӞMڵXîEX @/=l:\gN99:"#`Kq,K\`2u d6l0( B@!P(*T®66!ծ,敿|ﴪy l?o;E39YWRO;oI&XP8xHfx*]t&%٨0*B@!P(Jm,Bd0|'yqx#|kQR  $G0`, 7FK!vy;rPF9@S( B@!pq6۩\#d =~-_੒)#E.TB␪rG)030$HTRũ B@!P$XQ`. /_ 9-vd0\TQ y!Q[!%p*WB@!P(X5Xbjl!f6IfgT̄l@J~FwyU9+ B@!puz lBw*62nqQ̆58F&iJd4&D0S^R6+FES* B@!`)w5է$6]я `GZ`ɡ<נRPL"lP( B"0!j@}Fl\TRX3OqƳ;OpH&eJP( B@!L,i yɉ|}n&(̤i6UEׯ0K[,'-_{*W@1  B@!P(CQ S߾^_D"xY-KT -ɩLGs6;+äsx RWQv B@!P(j  A˻am55_o/S)rm#E{-=VXǦOnU('p5B@!P(0^F?>~o6;'a3cH=7š:y,Tﴮbԫ_3n4/G9Pr^Q( B@!P\z?ш֦nucF7OU_{'=˷;c̤ B*z]!P( Bx4jJ:+fq㇆4 GֆV`Ք]o=pLO4U)Qĕd B@!P(W̗8lPlY^1#*FZ5AH O=ǀyeSCjB@!P( +␿ gh BߐG?;d]L`"f"f6G4H߳i&n4wӹa] B@!P(!^@͇_:opp"el;p?V>ndeP369fvBO\;F [1Q'[<Ȩ8EPP( B5e 4#frCհ{`6==#|tPdWN.\,\Vl9@W3 ҃&ie1u ukۤH&gVx<˷\Mxrrs)^"뼵hסS\ eM^G]4\; #Wn =-=ۃᙪ0iz/P( B@!PZT~%BJ6GHP-?3(5;i=4nԱe$\ɠl^H1Mױ]Z7/@A!ln{6=BH}ЩsIy+Xfؠ.򥌹PT7+B{"9;&Ojp1tMo8H˞GeMb'Ln?6B@!P(QJ~8u#v<&z󱻄Tt\?75 yL/H'$r şH[XEӃ6:L EZ\TO8O!AԶi dH'w 7i̤vƜMJq.v/ G֡+fAzޛ\7qfE eO4[^OHX곟7`YӰ~0My#khC4?g'ǃҜCjgItMǸ)r-[Iӧp|Y%V~#.8]+v* B@!P*T /h&xѝKm^}HJHdvS7eo,QePRfhz:gB "l,c UzQ-)n-آ!xQVhm}Ix]^ױeCٯI,o3^((Ow#3EfK^Y94zxjQ>N2JMˤwо4NT?P֍i[SHi m1Q4_kxt? 9>^ đ0'Fj-bvi'ruV8MVےn廌S8 B@!`Q);RYe [tǛR 1rPãiBaEZF=}wR؜v`. o.RYP[n}a?kM,s`W h$0#"ߋ;qCCUB3$}"ÂEqY6LHR z7vP챳&$9"o/.#K^;Qs4Q2rL8_`6,dž{M)hTLoߌӏm>?̚~5mB@!P(C@J1 Lt\ 9a; D`Aݠ$Pe;h)Y6$Kf $9>12ŭFa%2s& wҟkw1ipE^I54Իahmh'!PْP<-\]Ljak6 [#''?{3_e+̩Qٛr[)fjB@!P(ʈrA)e̢A~b~ߑxJy}R* gǁ' Ò&ϲ$BJcz6Yi`؍J#|PoA tP9t՞9$yz\P#azdRڧ#}r:vȋjtqQP¬Q ~Tb%N 33c&;K1+?XU"B@!P(j !8l %,6ZRKp#5 'TdI+c"  /OwZRem0CNNV"wHO!H8vĞa}; cjxc/VHpnf".N0Dw {\$ ,oZy V$i;`nBu${ԶEGΣle-04>ވ/G9翭4c4%?6B@!P(5 QS3b&/N-qy#W*Cz'.O>%% ~#ҵs*`c:&KB@!P(.EעppUծ±8+]=^1*R( B#鮺\ӑWB%"Q8|Uϲ!w4>%zwLx]Hc8f }p۽mGe8g\ B@!P(Bi?ulM ~R'TF֍ g4 Aqfح { :Dn&q E_0t`J*Aۊp*B@!P(GiSа>~P0K6$MJ9p3IT;nwu߭C ,iQЉ#h[A6:̒^Ԧi}5`u)/;hHw &]?.Do>vx_hp.F][7oRQW3m-E ~Ask"FC60#`~^N8 Eq|8(y+G",lKz÷3riv~^vr@!qfwBؽ- VF7.iQƨ B@!P(g/<`&x2=ȡPS^TC rPjZ&aő,XK<Ȍܪ/5 Kp4U|{q>;'Rph6΄ocuft{.bFAvnAF P!nzڦ`*ăթsWо#GvE[A xypmPIڸ3ZuE@?+'&FpKSFԍ7 ~f,ш~i_[%v]R *Yt r~]93:jkULP( @3̜ˤȒZBBa]St#c?Pjըh;IYETt!9m'R0ujQ9Գ?Ew4Ԣ:fTdulgq':4QT@GЎ4O;w-h!"pjӤ=Č9vn/̬\y| \c=)b*%D ѦGiBîXç%48pԯ[#s4;IH1dt:w5CM3qH i\55%F,usljB@!P8̬K)ief6)=3fUYjh0nZ.򮽤H%TL@]ȚRa#?_VJtw| $\\ɠiE[8e?`RnsW էmް^{kB3suyI+8(@H-~IfV"#NxgDq%]dg牨 rr΅b6kѨ,i=?yh46cQʥ승FRT(8bevrF% $<`vuBw훲={j, TJKmO&t`x鉶v_'fFw>TJ"؞\dcTIzz5v:% x&w޳Vr3Zـ΁]_+o7=;#r9V9La6鳧Q~2e$t[ ?R( QSƙuI~Ќ7qOfOL8.*S2ihފ,bHW,O݃UMs{aW7w&Olx ώ|/===<,[Qoe-_uxI5(n4yxErYS^ @:Ob5Hp٣kn螊003'Ҡ ]&w(͞}$FRdXxJAjɆ{/8$_Nlt]\\t;3Bnv!"(44Z6u; }kI0ȶBucKlBSHgM摡,E0&Oi ͒ԑR58. [eʠPD[-y bNy)̔|њL4G<|S#b3yk#D0:Y{{bR>YhBf=gޙ /n M/A:xjT?OLz!穮=n\ڶf94X0dskwUߟ=%=@l`׆^U+ PԜxkܿ(`iқBIB %=d=''1Ng>|g̨̳q,JZ+8op8#hRA;76Z#([|0&¶y潭 ?q^~@L++I3&}Kit!D򓸄kpkR0p''EX|oߋ8 m]H[HxBzk,?שHfiĜ7m+4[LP^9_o/',Vi<;)OdB Y\N3YqXM}gۣ_jG'q#4)1 e_nLh.zq}8YJN:?ܦw@X+V<++5fH"nWF{hx_Ri64KъG:KwJ{vS&hS)B1ş!/Mi8S{ޥ.IH3Rz '.& qN%i'(lmVϡ tG POUQZbT-ٱ eѵSu߆<_%"t%$A ҈RSd] L=б8]kbi"`L@3ҀalTʈ:e2Evd|hB+2U5$(h˓p`4*:2s4CN^U5ap?']0#.<—ƗYu:/ߏ$lhN1^9g͆W0֏J,p0zGW f9诗2Y-W$Jm{'H@Ț3poU5 ?~H*[!KBqiIR m~ Gʖ5<Q+ M %/8֋y?(WJ9P^Jj$h6$i奀QxG1o+: ԡ 0&@% 肆.lfz嗦[o *T9[!@㛚._avv)taz7j%&dR?WZKQ˲f?d#n)܎V͒<N(숄7m Vyٵty졞2MPFo}ZGa/,ӫu中kE`"f^`h!ަǽ \m#{$'ןs!-\ދ -&=ڣW^Yc:!| 6Bs& 3P&d\}ݪa>Pw侊qHAƖ}IRn׭ =.;AV$x#IvW` &K l1*?'zf9gn]"Xb4&3Ԩ"8Lû<& YJA??xqf>"6¯#?Hc. t*K¡Fd~JuvU>V oEL7/pfHy*XlS[pmi:%O,IkFϫLZF%sbVVgdL 0B&44$b]_dvuTGLHqd4Ɯƞz(+h8mj\WP $Va ~(T<_?a" Rcm`/3ĉ 4!^gp҈T%lM pΫ4IQ8M榞 Ύ;{} (jG}F-B6>,O;%Gxk`UJVk x +ͱ6W5 yX>goI:2'Li7Ә`L5A4وt[w+6,i"1ԍb?ΡqqPD.h HR5 44Mp"ePZ/""@FQ9$}Sܜ 0&@"OF髶.@i%IAZ +"^ 92( $H8Z 6ȌN*hw:؉' 8n[2%̸Y{ Ggko(*uL`L 0F&F}8M> j54_4>4v$XfC$|Z ]PAkPbT uS+6&bY\Vj]#v6Y_3&`ABRQua&F͆Q 9Ѕ:fCj5$ti)^AJIa;>`aRCY~&$k`L 0&P_`t[q_6.d'$pa4of]h2(Oł†?UzM&sTSTuL26~s_`L 4hA_e F'SPyh]AG0xI[FkYrK*ދ'ܔh" C[H{ӝhmi3 E9+`L 0&аQ&F.訟a>6g7HPY(iQTP\l&8r`L 0&@EhE†&p}zt*xJR{,VtU&i,|bRP#c^Qu^o5|k8 && /Iz51L 0&@}!P|H{E(ă&hqrpAA\IUrM)S֯{@LEդ>/lP/(6vcه!|4x9zI&: ;L 0&+jԈ;:u.m~:IWui#x]S=G݇%ɔp8T.i/8!a/Bd(ZV}0q1Rq`L 0&̛ޢ.c.0NsA4NxclڶE7oE8tzFgtN'Yq\ꌰAiHyT+ب*H6iHoI4=iDG{&ǻ\_uYCb}eL 0&i)ˈq1V>u@JBS|`e_(αMlxuJ0yt̔뜊Nu 5o6 li#DG!: 0&W$ c/:,Io!hH SzJ=#C-˽,BW//T=~kL 0&@Dի_޷uDXlfZ$4>TZk\r>Y+pw:؉kW =.`L 0Gn}{$ 4@V4y=p]߁re!&KsJU)oӘ`L 0&|([ZJs?| Q;{ UhiIذ"һYT k'!\`L 0& El=Lh0GNzI7V/mQ4.QO_$`L 0&Ѐ H*VDt %Hh6ڰѨ@>(r;&MrO֮ bSy;|Rqn܈е&pX5Ґ`L 0:L2C 0Y,CUl& )Vl'sl]ڵOuhHCyO~P=;j{&yqaTozBpȲhfZ;Ǘ}bǡh_h&xBv:žS.m˔ Ac(viлPHWH]=`L 0&@"@B4alh8b]ۮ}ybޒM_"HY+^ۣ ԆWol< veh$<}A,g/7$tYiײ𭢢~jwu.ڻo<ݖurL 0&`G}D2D<(d=G=-55=cK^|t  G2;v? peޅx[Ś>L53&`L \vz%E]Q;edBHPv4 9%I$h<wۏcaVrL 0&)4``j͢T/l$XjH s%=;bzCS蜾7f᨞cth"ڷjf#4_JI.H@xp4Ʋi3`ЃquC! 2#ݚ5YŰ.C  Otլ#^} =`L 0&@'@I}Bk2_IŒ !PdiQ߯̔Z 9b-JKa K:̠BS@S/#)Z0,b1ϜĒs8$ rχa Y|+N %?IDATC/GϹ{dDZ Zj ԗX7=+X7i02a*仲d.m|}rMwVK~TୋR3:{QR({\1S$TThlcL 0&>Lv>A!}npWf7a$o0Cu^M=5V\'=&h\Ua*%ģwޠi6R.m՜{-V| !✶9ZlDv@[jw CxVkCVm+ZI[L$(t2T-t_7jsC߶C+!ĠzhQ?h'̭]ΐph.x5Q6 Vn/~}?õ6O7K{NM~`w3;6 yWG>N0j|𧻓jWѱpA&`L 0_!0;2'.fyqs "G3ݾ=^ړpY{!d宱0>ЖEa OiK麏Fi^@a)P: 0yX*+Sy T(o.&cIKBW˲S+KaK,;a=p^4. ߭$P<}@=[/Jym+X͓?_$v?S*hY-g#dcH[J\ culTcL 0&PTV4]po%l"_yhE(2kڴhMqNy+|`*@BAy M FXFRtN}}8HKCKCE4 ,lԅQ62&`L*C*MN^ӂ ZM4|K~^ ,͇![}jIX(A'L 0&`9۞r6֟}MņJJL 0&`L \ٸ$!L 0&`LPhm6FLΩ8ǭ+15 #!0u**eb,upBӉz?`L 0_!e(.6_c,q;˪Ozi rnټT+GjpWփ.U^x[~^c6"c& TYaEHEt۾&TNYں?~ #T:92:*̍S 0&j*Whffq\ m&ر:kqVmmMÂU>.ߪԵtbSإǷ˶hy͒вDc8{+Դj媧 0B2nү`fOx5.ڎg4sާʽBRQ`L ,0r7.˺jsIN٫s_)*zu.][sW=GR|nUAB.[S*hPkڇӗ9a#!vP/uޱg~V/yL 0&(CvnݸG7PЮ_>]wkLoƫ:kxf~{n֮i;;7_Z'4vlGPzv (oo6q7$qq3vo%wвs⋅ymwIt.;vr=l}N~?NʾR,$w)ӇEv<ѾE3]Ճ`y}+iP=)yn^7׉a4&`L :ЪDxeV̧#w&_.\/BfNʥFx^F !ն=ڛ6|ۮ]ڵ'XxnwnŒ m?V1;E0բBYd6B cp>I>=̵F{ AyqGLf'>-lD[#>p}x^ԩq8ևp`L 032s]D~erkĵD+U*xou٫XggL 0&9Z SzSw8Hp{^T<3Llh*hmNC[ dv'0H@GS>4-e'L DMK+yF&Wjq]+׋7WF> \V"M!@Ž"6҄mhjZ'.9^̆TSz$i'5 *s*QRKŒJ%?zwSk_T] QQҰK2ׄS]xJ^34kDL 0&El=$lhZ9&lľcT\jLH66ًpMh+(RY!Bi*^xXT;'EnhD69OxL(}f.nrx7~:~ JhѬH0ާhu>,*[^HHQd˦ ^*JG,"@\2^TssҲ bջvsS?&N>/hYrئUץi/kw2=ھ} s0cu^QP(Lh9ck.|)Wd)lX3}Fi?Ȕ5;Q?L60  2")* {]>dw߻=3=+G,ݸG\i+L 0&@'O&P^Hzx~EE4 _E A5N['MڪS@qBͻYKY^į~HL|mȔi@c,L:≻o9V&#׉ӊTQeX!s$YD\>%? wkwVcE5HFR#P w5{.Zv$=维Ne=P Xf˒|P`W;P ^`U0&4!so 5EuR1#*SOrH3 nt) ;S*UR`!b܈{4|U5 #rM~"g#h w=\Y%`l`afQXV$ )PrEm#!C47O>!7v{h|S΍kgCFл@;( z7>qmL 0&h~_b)E7$HP}p&''g4i\͗<}.Cݥ3>:N4Zݲ/I:v`׫H^V0AB ^jNe#&`L 0O :,I&7i C'M$rP Ɯo+I|컯@HРHSOFlЮq˪IX({\knU6s`L 0R 44!M[t۰;)BMRSm>E'hy]Ǖ[̬WnϿ$dQATdFU͛g'{޿nR_>e;ې *1Y*Z6dv iy3R'^l,L 0& FE3VPco;tӝwv:AX}MKV+ *|@áҎa- :~`^M0 .1uסBҜ)ok]6rY" UQo=TCxzaYlcSH~$č; %!mK*[GvgH˕֡ `L *tTootC: #ݓrK]u?(lG:$ ;傂 ذq[$T_LZ :'ҀEx;FX hi>Hq' #IoA#DʽB-iĸI({BV'LAxQ2I'k>M&nV3&7|GF9oF/6V*p]k*4ߧ@DEB^|1H 4$TS$`FCӠ{ՠ.adtЌ܀@Fܨ W_|#.(#̒yI kviOXh")̘9!ѶieQxmk9 0&@k>S:۟hrjtk]'G"AE  @!i#7HG>hu. IȩSl3mX,l`}+.9ձ32M(%bHO#aos!gE=YPi$OͤB1q"H$8^:H[܇0ک磼X`S^ig%KRMbXt_$E i8US3>2e-xWЪ|D+FLFQӑ&&URύy>oZv{H/8;WRD&WTfhJqd8 E~ۡ Nb]z9UC`dVh|v7S /g6wdNPUL16n#JAc}>wd5/de܀{Ct}G)7 cEwAI&*H^f6>cQot:662xrݶ90&'3y(:RLH+ K&4  ƎI`4u=R:3(Y'3[[5v, (5$r`%_e% M!!Pdiz:ů~"T5~TLc1MK&[[t߭Yѹ&A#| *POt-~G+"Ob[H~N3QcK􋖂gj1wy4ɓ<G٧\Te "d$Lߥ2tI-u~yFB+g/"G,NqI24YA"oIRMhS3U2F H1'}SHR૚ uZTc!U:Gz}pa2(/$L'1l ķsc?.N s^PپO?/߅8/пn1h{ϊckko~@2Q/72&}I( 5q' Oi=:e58a!C+'i%N΍& }/b(!wz!%Ba {.R@TO$4bΛZ-v&e/͜//?d+dJI8y(xSuYqXM}gۣA`1$H-e0b`/Or a`]x?b32(/[ G"jE?`L +([l}"/jKr;~ӗp' k糢#@HƐ"i.h,NGa}| '7$R|R؀8+$ۢ_υS>W{ͪLoP1H{̘_ݗk{t@Q.yI4at̔렝q`_=Hg4 -uO-\˽Yq1IcՆ>ȣ h)]РrV@@M]׃&%99d (?' e#U7U賦p8?kC zV>{8O=ji# 2BDit[dFA2U4(S*R(]s`L 0C>@ELk5[jR$&pAGq]7"pе>t^J.>#HIAQc>0VQ=}*uÔ}E2QiPT|KHB09HRTZ@"&lonI'ІUyN,j:琝_PLI7ТQ5%LўBe Osi I$8HSBi#{IAT>(\ d?~0^:/9U@C\`u@b줍-Om/diiRJڌ tIz:q4kSF OĿ퐒'ߙwOyGS2/t)Nj* C}(ƐUDi k$ULHK8(v</p(ڗw= ^۷~?ONDr. 3bn_ѪY1shT^:cO!yq=Ԙ0wif߈HاQ-MV5;}0T%+/F'05㲿վbHG$ߏ)Z8CL 0:@B0`5 y{IӦqv8C7vL&Ѫrja\?^9|!&IViXqr _ck9\y!mXdrd̔ژ;H 8(e+98&h:ԉX2\Ӥũi"߇v/v -8aBrV5[ R݁%xGL.E<]@NS9)bJ,>"6!?Hc. t*K¡{UTl`2bͺƥFCxgLtNkp[af&Rs y,]^uC0M\mBwQUӡWugP?vI=x$n$k Ac/hcG'Ch*9_(gN9y %%G>#XXȺϑsN¨i&-˰D܏Z6P"m(LNP^r6zq`%jߖǪjоݦ0kyCp>3iqMU5 }0K|#r:`L 0&|&.)LACsŪv91 zX-J2FOf4*/ߘ_Fy+N&3-/-KEy}FӽR̈́M *+UY=2*=>/2>{:_3&`L%VYIO`:r9`ZTnڻ*5M ӳ{`L 4T5z\[` Cx^[ϬR0}?L 0&`>C' LϪB|f.EC$Af9gl0y\›Ϫuaӿ&I`L 4,iF7 N\6kX&nphN&{V 0&`L TL'5fXՋL9rw+C ϙ7xby*;W~`L 0&<Ia֞6csO*RجgCK%9;`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&P=>{WF,/^ܮǐ̒i؉K&`L 0&pI{MW1Vv\5;>_!PP:3&`L 0&pi !e8Ŀxw!Blvĉ ~C&On&)P!O$Nxi_'~`L 0&(%Pg jI@#e> 7s Z{gwy[-eG0DOӏ*5>YzZ]3B0}{/\L 0&`Lr\Vv3(>pKώޫn\h# XŴb=zw=w 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&`L 0&~GIENDB`nova-17.0.13/doc/source/install/figures/hwreqs.png0000664000175000017500000026132213556316250022062 0ustar zuulzuul00000000000000PNG  IHDRvFNsRGB pHYs&:4iTXtXML:com.adobe.xmp 5 2 1 2@IDATx]E֮sTL gTs8쬎,άb8|FTQ HJ%g6LgvfvR{^U#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0@( #A*ܕCv˖W ތ#0@D(f&mX&,O8H2.q60ZDP@D;0@XbF`@@Q Ey E,[oMSܕhV2Gb@07s\M?^WꝹT2e# e_FH2sVq]_[oXv?wc) i,f5Bh 5;hczF><\a=fδSٳg[oxxwoG􋗮HtYnR.v:ggE t>}w#m3`nNe4M E;+HwKJ;R~0!g2#kpFYr(D>Q^M6ʥ.G=ky=#ӅìekǾ)OZLGb!,ߕ '^S4mGނf#n[E(8^878oU:x ~[}c)jU Ct\BbRZ\p ]C9@K<\p*B;^S'N,өY%sauy驺.ߺe̺dY?U|/ҟS |("z 5&ؑ"s<н eڢئ(=fb2GTz-&q7^'M=Vռ"gn J. d?'-6' 9O~\ALcdfOs"%۳MӄrIOԣ_a 0'7yBރnESRf:'*i0^c]Mj P 7#AKkW޷سf8o"(>+caa%|>'=aSzk`ԕ<Eb+--' ˎ`Ggǘs`LG/Ҕ\Mt>ݣy *Dn{U{.|XQpRЫ{bT:}{ 2&(Y$,-џ2PIiFEcm|oVH,s ˫(Pt'*wpT(ɓq_2.uNJ +촪(Cul"VKgф.oAcBU-x|Iv}BNq1y[=|á'7PS<,65^A;J^M K YHzYizP0h16×J j1^S Tߠ>#zuV@9+ j/zy>nl?IRiVIS5$LS[5]v-wŎ'qy7gnZmϷ 0rۃU364@e0)BgS4gC3R}1,3s'œ2*t^Q-,t!t4~g9XIq@J[+Ii8FZiv.pN ùP>@qfOzlaeFu>DlV|dabPWƧׂBE|C`I9Od ݫF%B ]3i,^( fC /vI +1ԢX.$'96J%D&)@]ӴkL~OMXB=T?q.WEyڨ$w޹N"5Z”d"Y_/#"Шct"2: :CcwKu b7@i QPzF(gwe:,C|6^-=k^$SIIgXsAVEEK4U5@Q61'R>}GMwNØ.w޵jq ~YQvJ :"ԨB h%mGOOVB9EX$O"_z<yBvk00ѠDR=|+]̸Y۬=G}+vL8|}X0#`lza2#-+gE/R?km:Xoh,r2wY.b>h}Yޓ PoTA2}rlRxɓbD"ʹc@ǂHI Hv0P8Mt-G"ܼ1jO:e#OVp`5:xI>պH·>t^{-h~N+<@?x +C'=1GCC ,`,9*> i$^܍g^dmH'E:'z`~T1ԋ[`1+7Oyd$R\~0 9r@J{zu|deJ6h5>]7RJY^vU`E|2uC54ȞfP+aWś,ocֈjq&ٶ(9m #wH~ˣ?>O2[y &&GS,7rG(i F$|L_+hc$Igewf+ŢlBՏY!$`%94*#5wcmݓ RL7U4o{ĥߒ*|xE*J 7&3?N`"#rd|-#lyJL7QhjLaJt=Bs:b{as2%Ok)]U.(g}ffJV}kBn[oFm=m-͆c1҇ 揽6WL4 vH?<߃GJ")^J7vf0L| Rٱ֣:0`E92>hTvN&V}c0+/gU@a1Pi>p* ưX)JٶGglFl٬_cy-ӬkC`3 v,)_Cv3-}Pğž&?]!`n Β0;3hc#c0p PLh@Hk,c!rʠ#`Ք*+{tL#ś;_@5ә:Jiyp)Mke}fU9E0︍f2d3G$Y(mj+fڴ2_ynچM>'rC`C93lY'jLvcYEu>Bmг̽p ӓsoW;/wCIWSyp=88uMp$ðOYQt䯡޳#(+o˕CT.(r hZ%ā#ʬ{$Bm6GxŰ9>}bZi7L^̊*3i(8OC/:2dTʐ>š]<$ww$=O`@ mcon뉵8i )&נGRn(,c[}޷q91p!8xݳo} .np[|^g?> Jsxw﬊Sx3$,+0h ;#G7IFj#/lE/pF]섣Z@θ??0K gTw<1'``T)lʣ F irҠ#@\(HB[i@;Jϝ|q䭶(^YK}_;|yÄ@;X֋Xڻ SQ~d,; |f=;SJ%w~-6=pĤ;_`H j;ݢFxw$ܛZA.a8y-_doӱfg*΃}KYS ?-L "lO,ϼaۻ߂w`wr]1oxpo(HK'dM\zű :Իq{ 2 FAjSN.uLn"eF i`0ˎ`trf8oߒ2>Ǟ{fuƓϒO.嫛_T~fӺ)K?لP,¶!}7i{#7һMa<߁P/ vW)=ZJu3s&aڐ?ɓ]I e=]ŧz E%%GJ ܑ))3cA,Hd/lv!~/[,M4ig|dr,Fi pʹimJ M.TtxPK]E,Fk d*(0M܂~u]O}sD`5RGЗeEѮWOE E5U<(|d1MB^rb;MUXNS4ӘH6fܘvF  (cvy򽺴B2;o[cXINNSDCw<_D!IE9YNS2Hv)e`D`6- _ZZG'g\MSާN"[b "8F"FJs!6ir+vR)T؂KNVYTcm`Fܳ)g'Y$'eFYdn!/g%9Yt@nP_U'OI/:i! Q:{ͫ=2w#DyMd*ɔmReB_RgAe #`@xɑ[]nYN$Hޅ,LɬU͑\fF ^(pq61B#'S`95VN `\RF sHXQυ&Or)cAtJ",Ij%AMmv $ڵM*aENܣiD@sG$ˤr4(9fY2UO/KF !p % +H7̛' ˑIƃ4ɀrreTMsc y˥f6ډK>{7W&R3G2EDr4r4(9!FsCɗQ+…~F Al#dDŠ2 b_p|F!"y"Jc9M#s / +#$=Hu&('J@Op+yt-XFp8H:JMX^*|Jʯi~)A)kť„m>f"pV.[o23/N;L(tZYە3'}95;a1deCtd9={l[NEM6^47orc NnR"K*HmQH=ﰇkMpEc*LMݮ3q-ó'`fqaixAzbxxE`BIIWJA vTsmO8YQl\j)2?7Rjq:/Mfn踖`aX7ns 3gڵu[jl,-q$լ7?eq@~ d_g8xg_|a\~o i +mJ!Em2+գΘGm1C[v|&劫ZE;MceFrkyYbpMt,8@*/h,QsA#ұ]<ݷǒ^7GT+NAyQ& 2M.rǬ)(B¹ky :Sv `n^P@֪uvnfڴ}nhn},W|=+"F&(Vt4*ɄQ}cīAqA>u?0U+֎Eƣa>p# ~.PE(4nW!=Eî6p*}ZOA hxtafs.-Mr4t܇`Wзgf;fHζ,"m,Y*c'.GÅrk`˧EQн\4e5 PeiPNPEv'&߱՘t ~ ~RJfɰ姚罈7no{-ߪy|K3І4:a}B :~&Sr,|g~觿'1|No}AUh/<1DQtM]mf. \ ehB^(-·#~F9U=_ai,5 D[VcO+>ɓP<4rV0i'יNJ_gDx< Б 2J]_ rX;AJ #5/PEk-ؼ3þG wgsL~čW8vT( ^=]W=-tmi{q՛4=Zl)rwt^u Vxtzy0;R]꙾ ňN[~|iԇaP(C=XC)Dky0)c脵Pt7Rh#e?\,D>q7ws~Nݺ&t7wcG6aߢR{z .LF2Cn&(^9Ȇnis4Rq ޥ. cg=w:2 3]E 8Wk,W ogɑ.I8q2mT>vm8|㢉"Fp>TN4@ou٬m>©Xxi dBvA}Cc)g[ZBɚݹU_ծiLO^Vf"ΦNQ~n(YB,6҆ay躩Sӡ:Qb&`ml.F?QL /^>ڮ)[?lgڹzz1A~NENrmh'|z$ڟSgh1+.ZG]e+uzEts ],bF?%rhmk1DRm10`&,z2{l64@,uBPB`Eyy.P^C6yMVQHuHX ER8(`/Ke2@:zC~Ip:hA!|L?z,/#=#gKG3*HyTLWtO7jVs.m]論CvaJU8]Gs9O5X ̞Nle NO6aP^O i@=*RIf&cIզB=]+%$<4{GA~XYt:UR"m*qEQXU5#]})(ӗ'}Oܦ[}s#A7O *bt4kJ>+I&(l;b'd5lͭ}A+k~7\WꜼ̸ŝ#=&v Ki?MѱۙdO,~LtFBz/bG%BĢ~ QE=WVe1Œ[M7 BжN+as[Y^N_lDz#[m_X(f"j.X,:, *$ N សv>{+wyt g)w_a#3E, гPV4$m *Zwh H rLAb.hyv(jOWzo,?5F?I-8IW$|W2RO.#四kR;靆1ϝ1a›(`Ka/jLW;׀I.1? ^.yH]YDZ fhKz*S|+٘Iܙ.dzo<]a} ODspqǢ#Ć<~hk+.,ФY(<y3@<,<Kd{ *YfO,lSb*lsL؞lo<6ϡWӺ}q1@p)h#,lſ gAWHߡQɘHнm'jo[ъT uZ%O^iQ] /]y=13RlQ4ݎ{J04$4taC;)\"KzJGޣ Z =0(|-m7az K1M_C4> }#9.Ƅ>$wg'e˷\'VeVLt>Sh+pN29yl!ØD1;ЦBmcPw JCD ]O[iVz/BbXRO~\1ϫ/(q6/Qݭvj)wx=;E(wBIV%fOz5ٔeϾ7`[?p$>"*eQYUC6Ca:p+iܸg3hzy>ثmw[h ̰'ꍰÂu pIt*A8%2k3(Wfz< adѴAf@,^wOD&@^TH1_+0Y:H?= L9 *=lWåv7 'v֙^q]6p׻ۭa3 NٯH Ie'o;(VдCq (`5q70g(0DsPקca⧜i`#(Iޗz Pzq -_Z,DK.~ݧ,tgZS;܄Ix6"'.6f/8Z$ѩmt`=O'=دdOv tz}m=D,䬷PިRƸ@:KƑxdS_0خFXk ɑ5lV!-ӡ1$& eI5v(ŶXRNXU7AvDg K& "L}Xă-l`G>:_j l#dd`<2 K''YjaZ(彜Q޽s->nrL E$p ˼ݤ4eB)sxmUlo]C?Pi(x~"מ_GKa$ߢC {mvY˛t(jGt pkA6zr y7[O^m"x.Au{OF&rbB>LC:gNPQ}@`*k  Ou-&Ͻj;tv[;Wfgi1kRŭ~po`(B gcep>S}B<+ !B]ݱQ"ܽ;/Py6ziE<|%FKSfOE!4mf2](g 5̫c@?$sD QRQOqN">v e!ڱ7$tl'iVYd|m D?6u6[ >)c.},uWaw,.T=*ꄋ6xӫHnYPo9F{z'ty}9b;$ ,]`ʵͦpO;oKJм4wx &&δDYG4^2h_11DUޕn?uMvF`] Oȓ>g$(=xď:oe%y 0nFgwa{9c̓ف hX-ykC A5E:<(`ǻp??ṭ%-Wc)'0,/ h\e: ߥ~&,38޴۬Cy|9i؇U!>a,}   36pɼBV=WcP @|mN ud4]xk]=,_@o{gb$lw)ǢSy䠬K+J[ d]^B[[( lهv(*Kp>li:v pkbaB*Tb9Z_k%BAnEkt}ݮ< ; `Wø4d\tۑYM7dH}l,_fSSP֎ )~a}>?! [ܙ?s0g01ll6j}YS40^^ˍ[$Z6lqN7;h5&'YqVlY=!+ab)'}o{F"&^3dʌ4?VwӲ5OM=R|:ڛUefoH{[EphGu릒UVkuW4~{d]ƓaX\]`m [Q}N|ﶆV8^ŖVWUVpEg: ]1KȔri"%+nu:zlnߦd%$6I蟡]C}l, tVEN7T{/Eh|_ 6ӮsMɞA 1)Z<c6pN(f(+&3if*~eT{ Ɉ6j̒'t캂]W5H͐xLG3ߊ~hi]f|} 9UOR>: v*1>˓p2dMBedF!0sĢi'i["1#uƓVǞ-9+˲֬uQƁBȌ#Д[(I_Ҕ ea P5Ů)!f2Z5ڝ(XQN=0#0#qn1Uɮpc!D㸌#0@X8%F#hIqH3g`FHG@cc BI̗A83)#0#0 VØ\F`F` rjp\F`F`l2#4M&:gf)T@Д)Se9y=58Gwtu^}a#yKb^7>^3 TMq c2ta%g%qߦSQJAS.yp[}bE(-.U#)bPPz=[gҬۊlc!⽉o&Z6R&[>⛦<^|tڒ:2y]V#5A5Q9$)iPo|(Prl5G 6'7zUպЩX-r6=P\vTj{+-2ȵ>Z[ɗ^z AHJ\zmY[^o[ofj;oUO,x s&/üB(kn_x&U˕4-#YNG#2ENS(+d۪MۧUM:_wmA!tWr}su࠲FL|^>movz5kR;˫ݘojoF}]]ʓ!=A⟟(nAT^sgM(eJ*irP΄64w^>JxY,~ݷ4 \StQ?-:ȍ|N1sb*PXЪ f^sd#ԾJRbƂV]X#&3ȻXTu&ӉjP9ι4$eK,{Q#/jw٭NERl(_[l7TB*:M5 =y5Ő~i8d7:m2ii(wQ˩tf+ʔ>ݫ׀xGeg.Fjyc\o12֭cA#0*0Ĩ)5 r$ih_W*~^`9ݏEw,qCS3;jJf=SsQ^=J#v#@]-v~ķ?z?s&fOf͕y JQI!u$n_K4ARܾFCRp`D|f9 95Yc5O۷ք]~cvN H5kv^|_2kɅYGse^GRaRkn_G,$RоB r*HU64 NB.UrjLC&wYG@-ȟ]uF )9ٸ)[ QUf^'kgȐf} @>rj a9m ~=t@IDATJ95KQtI/c0쓜& 7Ή  ϼ-Of_7aogQSKg|#y4Lal.cxM*oYpMԅMU@ypOVXU]*D䝉kX:&:O_%!+V*I^&]NCAC%oC֝m[.jrA}5e[VV!_(ϼ5_ypqؑ!ٰyϜ,C).=e7 dN0D;d=}XzS>8W,#zvn/=T%~:ŦtԮsAaźY, pE:c=|< _(Xv^ug'(XlzXyYW`_zoXrp{T1wqQEOmٱWbMe~2쫯'Rb=aI_4HggHw涯a)S5QӠ@!A4 Ivi„wȄT4Lkʷ8,A|w{_~Emeg] =䴴Akvfh}$r$۴'9_,>XclܶKNrZoܷصRQMtj* BA %|tI 3>9v; {]KƉ[D//74JۭXnS8|IxZ A':(tҪ氟V^]iK3= `2|x_ OMd/גXmݦ˟~zLͼ% myR޾yY=4 ܺE.Fm6/<ǃ1`Ц66(}lK) -AVkSMn_=#H8B!c4T-_gbbnٚUecЎm[ Z47vԟL m)r7g2BI^qzyj4r^Saq3Wj@%ɚQ/M|k+\s0Z=ط,4bpw8CIs:<3.$萨8Kd\4OFz1q,^J7<{*u}E~[+^H.ӟ9_.U&ͻ&f/`b`VѮUYI^:+dV#u^oqpf;2\ 浬3tMi- O wMy># COc`>qx"-_S!'^D$2֒. *ѩ]˔_n2NNc= hC8MFN]sW ]mR]6m\gf}!~\OjqfRIN':]#^6x7FLb7CQ%NWb-{֎܅cROdsgڪsFA\Ӌ&Hi8|: 35Ӟ{WL܀-!*VVo n& 𙔭͘}#^x_=OGsI絑gu sSp0}_}p 8HM0?5{.Bp)tIԁoڶ[_U}):X(9\$ڈw:L!jb)GrtnCM~ᚖ1P$D}7v*}NI iegwh?|q&Y^2TEgdc(SDtHc-AiPɑ rB|ǥ3Xg1b,H3jh&%{؊l.WU$7SdGG+QEœw]]irߧ1cB 8damLG~Yv-y0ܥSFAvrOiHl>咢egqRw|aZ!ʶ gkHvqTӱ?8h>EnB(#i3HYJtdf2_~/îB;sƛJSTzArI2TOOfXZcEKD׿Ox0CʱTh[q!:ZH&+Ad \:N?4{t)vK9%s aSo bYHL4)PDr}حE4dB|zx-)$oیt];b_>@;.;GG ΐ3xmF߳Xb}Pr `lHp9Z,6CEPMȶrۮ}M svwDȴ~OF) 2#ͨϧkPϾ}ũnw=E/O(Zaf˄يFu? VW~8Qxy*Gc$Kbq/;IUxQWreۘ3@rh1k<[8RcE98 #0#l&:O4g>Mvڜ#Д(3+@`F`D@G]('%GgJK@di0#0"hY@cF1sigF`F0 f(Ӗ'W7p)$tiᥱ$,F4=mHrʮ>bw~}: [wS{GG:ئ%N>Ŀ,hбGGNizq۬M\>ؾk/NX8+OG ؎kŌ>qŧgN#Ʊ Y?Vz5p{\{՟FZ|~? sq"JJ KCPk8, ']'Ł:0DbE|j(MG(Ĵ}Wp4F1o7?{goҊf<89q3==i'nQux˼3{}OߴΙ S XN/=f!p$w{.&I_~? Wg␙1HpYɊ#'N]aFm(l3U.2$lپ[-:%s{+sok6n[`qۄf̴iT4@,qs:r:yj%tXZL\sɘUbOٓxTj~n!o%sR(UUmUw #)}e $Óѩ(FDu[SUm_gZ.QQ ,OFҶxJ]D ȃQZ-(y dIt*7S'2Cn0iM8ȃšmZGrit)u:W»ʩF{r-Rчk.r: Id6 Zヺ.ޝpR `R-r}_H?:_jݘxZ}:[X &zlEY0kkv]E}|} ڥtY' M<FsVFSy=ff[7*W/,:~@`w!Yo`E3#/>54lT,?ÈX.DGL 񭶦fW]#b.ݼ&[f>1&[势9J>m?`ޱO.i2Jio_ MUNn_82hsӡPlIY~G_0}u/z'xW?VyPWH;f 3GM&cq`]* *Y6ԀK%@غFI9vر? ~Xo Fl7n%h1Gv;(>WQe#MtSNV~z~f,#9[{19^auNB_W} Acq[p>W)|#y@~0ܧt=uw#{Wj1E*E?_'h쏿Szum0LQھkjrjbj-~$x2Mf9 ^)2BL޺sԩW8^t6tp}g0 ,OmlD9Ք~ :3e@Bu+Q7o=D%=u1 {6pѸ3%x% u-K# - FA?=J?|!NO  fl@ѧ{W%H@.6ҝ{5qkǶyb򓯉ŠԷ/d^pމn Χ?/cm)g"|Oa*D$ʼnNv ?qW6K8K̓LK |KFҙͿXxe t:y33t➌%Ll_!3&Fde4"\L(S,څ y*d;.A TcO0| ?(ʏHQ'9@xڂEo8q5 d|ϼ6}xȥzk|w)h_sn/0mgȝ4q?IޥRNPi$Ear{|.;]n߲}p-A4K84|q:7$HdH._,T2cA+)u@Q% w&ѐ&&䵉mr@!il C.9thڈ ipTIhfΨTWϿo۩۸xCh9JIgRВFPT9ߡRzs >x M3L?ʯUv#+ol.}?b$f/z"}u/X6żOP~V|g]טiD贈KS& 6=Vp!$k TP=F&::(Pu Y 35JA~y{<#я!tϹM^u|mr\|3f9mPK4IȟnW [+whsׁo>+75tJ2p}& < 0A,A4LS'f+DQ"xJqVR*M`|/OؑB-T'yF{rg2>J+K=ڇ]ZyoHc):p2fJQ̂+ THʲB*MQlGbr,Mctu}LOy&9Txe*ϙgglsHaRbLWyߜdr`ӳĊ3Ii, ::4>kYYheƊ44.웑>6kYY}caNj>&4MtFzVmVo)t:e#_S2d^'Ԧ]vŢ :B9Z2t"y>]< $JSφ"""!R}fnnڽ0;~gΝsϜ{mAgc#=wߴ;v G{ރײ{nEFɦGYH*>*/iNk9z%vUj|H{#+.h]dɧ^ɦEz]iBiACfזC|rxbye6]~~/Uj O+q {Wk&v8x*]| 8/f)#S'<9·[ITB|_:œ_V> x{^b,S QFڳ0 ^h$?زI>2/iL`nK> -/4>$N2tfžP*s6)%>}ov&UHy*I/ w>ebWqKRHZ`U_TD%|*|Z1FRкdɧ(UFCPv?>VkD_XVht5NIqFq\->'7nA@|,E7!I:2Aݭ\\ʣ܍ɧ%X|%4d*=c0|:G䋚eS",>1)itTښ:ď8Zc,)jc=nKϩӍ|xV9Rӫ,iJ5Ir| .$i{s$xxORNɒOCL:ŧ+ςԚ 87 H ֲj8¿rz;D SI7cbCJ%D~4Z:HZ5:$Jk(M| j~H>NM>A\&5hnJ?ɕvmwr9 Nđx ChaK˯L_A#䕒V k_0TZ'`A]`LFH>?>Vu@|ݪ7<г@鈀>FOъD?7Ġ8&)>Vf"(~;wiZ;/[7,Vl^tm+BE֩1˹bWc7\W :W,?%Dl}PpOJa_Z'eҮG-:v(2ggB׎TM` ŷ lvCthT\:o8.G>F7A6QPnyM?p(7/<1Gq0~X* k~8[ 4+4D4owO_љ³] UO[I>վFE1O HHrDnJ-(?ZjLZoxX+4R+{=.6v;Mt6CuմBRKgA[%h1ng5,30?\߉sgC޾mï'$:(emnH@!$_ \MeCF2'x^I`QZg>.}hXiIش렠a6 /;G{z {vd?˝7aB[_v^/+Qu أn1>]5 ,wDB4C">w|ՕO#4zBz)"yx7#1&§ޭz%FO1O HPRT rVϲyXU*^n&GNdD-p䒗4w ΜɧQrv)WNiBpXXy8t<[,YyW A "Ƞѯ|#ˍhYwمgNjB#Fϳ#F{t "_n:I1cbgR}jjɳ gwi})`L嗥%kwi+yHF34(kH Sȍ>HUO[v|QZ?Y3Y%HAp7}\< 67cBhZ\ ~!{?%s8b_YDʽW ~eGDvNl.DQXq1UvA/˄ю",d)بW2Ss#Lz#Nk8Q%!&E&$׽ϏRsX&6=qRٴ5W>Eӹ?-p[/;WL>u ܂RQ?"3ҺGxLO[9ɧKhV 4DOKV/(z [~@%S@[GP@Rҗ I Ɖ\]<^Cu,`x[EDe47UdFge9ZYnDs@u]KuHKu>Nk%M'x{|pͼ!M35չ\'YQtyg?/.U/MBϹ6ɚ428Mk`1n|5X蘾w+*(hZrF!iTX^z0(Fļ_761/rQ4Հ41/~۸(ia˶'!_]^ $C'o9@WNRĻRꦀp8I`0.M8L&IEt$ϒ_oߧE|k1{)=;Bf|*X{Yr`0|`ldJi?^ne%jYS#(剷UGBPf#6<$v?C7.@Mdnovb-[ϰ=ϲ Wʹ"+;,$uvN⅕hn(07mP\DxbmT(Өˡ]%k҆gy~i5_WFN.mkg鞍4{:,m-wOL*cޫSkѺY2p.ͧ8imr&ru糖huFug9zFвjF ѩBO{m|?^n["jA:=j;f,5n#ez+j^癚{)#/.]KB3_&7]:@-f'6\{L3-5P\c)oꭂ_JtZG6DZC.O&z>UPQњv_7Xsmʎa (Ցp+ H|DFz(#j*(ˠW))wkW : }Z;.lcVzZd./s\i;Ge ѯX)]S.}YsGS g:לq2/<4uXkC# 4ywkExޗ|Fո%KUUN+Jҵjh6I-C#P|Q(QVHl{*f\QG֑,`dq_l_%L-|Ѫ^#H$D@" HAjEJ" H$D DF?_٢azL^H$D@" H".&*Bvh8uIA9d^D@" R㊒%Ij9jkH!M n.dxCpm7oe\d|\kJOHteSieSj_ v{!HhѸ򂳴gmn[U :#9:kďģ&B|=g$ü[C5_g`{kOC@qXV$Vu n?>=|l&} T 8&&?65}X_8>uC]T[AL,^]6r7JѸA]՝I^TKeu7f#Pj ʻ5u$ѽ}Kк-?qt[_3;|8x/w P܆鹅h a,մM1H׻ܷpذ#S'ͭS/'3"1h?bv ..nk ho˱us|e. !H>.ޕ]ʦ@hәWevj,ZM:\ѳSߧ7gqtB˽ =w嗿}:q0SYf_ϻo!nǻ<:2|Gݥx/>za;G{_iX/QtlD$cڻ@\ܯp\fc0DVMĿ!sŌy+ĕu]ۉ\F|2_j5 F\v u&EKEZ;=Dێ_i'Ol ݊i/Y$FߪV(2:u|n_|ګSk]l)P}OO}|}œ fNFO6 28 [ 'O nAٝh|9Z x tWb~f# AYu8v;yбuS>u L.1kկ Y%'%`J.%m{oOP|U狄X_P|wm`Hnq$ѫckmpش|C3fŜujt!v30GguI \|֠S _hW].tT]9F_}9.qÐUnwp]Ck3F_C}jFz|KURyxǸh)rGP@}Z'!.)dܰ3S{_o`'v~ e"Сu_)`ӵ- GVbݾ 96ѵh_iU}O3SG(ӋY's(*q=?:C?/Z'$Ɖa( +Z7/,3z}šdro.~s (3luPc~΂@|,f"Fa5̲e9 G"Azh30LSY7H‚ʪWumh:R㫯g§_⨨~WՕOgwkZL3L!hXsȗi\kEP6BƤ(P ʧ@kMYK\q>FZPִf9GN(4]hdp{4o!-_: !‡^6#>'5O#=mubMZߖmpwzܺNb˞C"挏6L_ @밧'P06)ȷ ^_8Ui4psׅuϖMkaf\G.gdzsĺӚFc;=CP{:u96jƸ([8;'f >g-^[*wg ӎz؊|8oD45hOlс8{v-DٞXUV&7n6o_,YCeg,j4=&onT먶Һii_}kFp| JS.B{'R{m\?7B3Dúu:$L Scp6h OiGsT*|>FT>@IDATBLfcݟzI;G{C>ŧ\ͬa`NXI[ 6z rj!4ezCݹ Y.6&dqE}:v-?%޲W]=^?aOQz8snv1f[3?X~9E0ۦe[xؼ⮺lh,p-|,ѼcfOv>Dr:K xG~/k+FnP$W/JQՙO#8#2i^|zQ^D[s^NAO{vl%?7|Qm9)AFvA ~}+횙WbR>T=kT|* k iU}VħmiN:me~;XHʬRxF[767lsP[D.e}&F{jZim> *h:Y-).<oF'!=JA'jO,ޣ947).,4*F>$dJݥ (W]ާ.&*V - HAf_dl~]IlIQ J詢LRdpO!YI*'@h+A3mi&n.+ ė8ZtzYX3n`R/OrF/<7?^I|ZO;k0Si Fx|& #9&S3I!.$-n׼۵wvuK%-BRZZ0C$e6I{ 1#Y3es{jghU}ѭ\q#~/y-+h#4+~j̃ktZvQ_}6=#m<$pӼ&M]mE_ˍVNn%E:ɧaK^M!|8qpU 筫߸F|%;@6jY7h~pqg,5s1&ė8o&7uYG5xmۺ3/)Mhii]f3US``#z. k(M.G2&OIHyvmޘi/,ȬӰYv:pC=зM{YCv dX'((,gŠC9ذnH߸;'CUt.KSΙ)VY3h 閃ŐOYu(E L^fr|uYڅ2FG˷\L91F":1T(G3d|ei"ͪCC FHa,t̤I;DqC84=-W4]pիv;䐄wjR|\/QZժ7]q:vmg;}`PAq4)D0](:\ǃB> uAY(#*"A/pX ԴU6uUI`d*Chxu>SJ hI:a.[y[ԫy3ָ{]ݶvǏ:{@2.yx]S ]HMVLM2{'Ao ǥwuaͧ,TҺbh uUBҬb YyT ;\#k9&i·uB]^ AyZ] 94%J[)WUf@0DPnimVc}͑3l(1ߞ Ze]Xk=oM>+Om2qX?V]?\H ְIpُ {ZXZXç,H:08æu`J, __tZY:>[,u]5}{㧂^m:vngۖZ|\#YjUY~"(l1ե {/e˺hVA1t 6ÃמBrmSBAA4˨I?PL?jɥPoRLR_]1w*SV"iiHCH1,EGQe #p-76lR?繃R9uß>+2:,؎EUimlN)i,N_ ( K/aˊpgs=aLtM(=j(R{v&bS!!>B]湲oCfs {fdv>eIk=DkE+iΐiV inpWhL#PgH탸a3GjMJTɆLkS ̾5]$I?JQT4d$އGu.M OK?=i$*YUD~в?1Z:f iɔVJ\bڌ!-o?y ˴h E_k6J= @N9b~;c\YYk{囶GU!T+AِB$D@" LUubT/ R'^R]_Biiye|SRW0JPM D@" T2S' Q0z0o ]S}eifLU珱Mj8f Yxpm?t,VRG@U6cYY*r2D@" H D8) 1J)fͲ1?VpVk,>i;UeC4N(i$nkйPz! DM SXs#nο?3< ~KA22^" H$QDOQlߪ M6Y~Smz0:uU0Ø,#ڴI%ھ}1.HZ̮争jr.{2 a5t++;G;&I:Oe9 8W;Yodq H$D RB]v ^)i.j3<^Z\.]; ۫ܶ Pm`vbeAxͶwAb}*_JQXY0O[ɬD@" @@Q7w`LAgbK]f?}hE?u:(DLlL %rϵD3Z)$xC7Jky߳{2^պF*_RP;S" H$%{A*=|$c49Ӈ(}-&6N־x枫D&dtw_i޾lLqC+Z),+E" ,P$D@" j} lEh ۥofIi(5El k'b{=4@Z)g"uOSPQ%D@"5"m)3Xps_P x }λ @R޿ 2K!qrr&mEķ{jÕgZ:E" H$F #m<"]O˟ק:gf5kSNݤ;yis ;y+v[;,XS?hZƜ5xpQڙL ʵD@" <G%x\󒂛M}Ѡ!Έw #ŽG>rGau_eyֽq1+D; eg)(CMfH$DbC[PVM q dR,]!ZĸRĨ:Jh 8k $ v_D@" H${vX5{Ӱ,~'=uo1"TQ}rbi` 8Tn)nVwĶ}EDt\&f_#N[/("{tQW?IoD\;z.]ڭĬĭ6KsVQ,y-kwQe۳CIB8♛Eg;glR\kI/;.H$U ѩJm -7|33e^*S BMGd{V7v8s-įK׋0 PjZݡSgwo">!ܢ {Ѡn8k[wMeW^wlTظ DEr:ycޝݵ_zkѾEcm; x\NniMA9l\VsFz(#)5F(ːH$@( j{lU暇x#)еY6zתl+CM3*YFh)4OzXz8uJ9&+ (3 OF:x Bov<_@ uD|l A9@.yEת5!kdg%D@"Pxǖ 266u fiK7M`>oipª-{MفaۤA]q,봻'K ևF'o+9MKۿ{{9v-q^#vҫ f>'3 E%Bv#?đxf? ٥"$D@"  $)UfZ5B c]8aOvvmBfvwpWѻskq_n!]޶.^@cfw.[G)a >խ7bҍ ם4o|&/eBry5k+e%D@"%,f wUfNd o.\)8{7־T.@م^>]ˉ\PʫDN5//},ycA^:.j\_x) z (FkQD^.Xp.}Q@CUo O+z޼Gئ%?hngvf;7k_'qgB~>3xCC RP9O" H$X6w ZX,<1_uae϶-6iU[-Gg+qVѠ^"L(0]my}:7"' N($ϝnrAB0!lt0ɴD@" ^`*E&5>wHYj鳍Ze&5K޹e_vpUudy3-36\k%fH*ဟdUEas5oӮclBB:,鐥v,,,8]{྽/[:?7 ( \v'8٘ʢ$D@"6S' a!S *\{#ﰉPv#{fddPÑ# G=uqAegš Ҕ_j C eBy ʺɅm25ʵ*'`z1*Kr8ɼD@" 0Uyr#hۛz` HN7ɠ 9 n \KAhq16vin3O.P]Bu$Y" H$ SWx"odj[l0&M>6- Qej=ڠY&. < #FaZe&vE " `%D@"  DK9a |;]_ }iv!M/JeO DX?!5L#dN py%D@"j|eA5>N¡(־S'<?YA1*xO2 _Ѕe ƺp ȵ8FpHeD@" T )Ƃ;a| 4Uudl@M5C-p\53Ob_ ]LTGG  ӧO7vY׽R`m{iј.~8j[Bk6=*7.DnVyKU#OZ\F <1O^qi$֊4<q&|Uq8u0~m4G>t z>":*k-c<܋pݨ@<52_L%>~}+lbf4ۃtSiarK!4&GϕI|>/.Z5(c(~xHt+isɽ /+㻑dLK4'<[xCН&X3_D5N c(H:v;>#ǧ!-/d<,(`yMnU/1|.pj,ʰ=Ǡvb$_y%>xέF@`(vU1VF{վBo>jcݱcOD2@C.x!.W7lMjt8`j!8 {yrnsfl*Q[vlKT!sNS'*JlQc##(Oظ W`rpħDV]v!K+EQ6vy2H$U% ]Ѥ*ҴٌQ)iTN=nѨz_[6_#ld>!f3h^-S>DgPIk@/+2*ӓ''eO2hFOVf&PqgwMʿ,11{V+1q8:DWs ;Ti/بY²Q~QDv:!ii<췧g?ֶ:$*,^|S-,_ !9]UL:ak%֫ ɨߺaY؜f$K!9xpRAZ4J&e:lQ }AU6kp;n4fsϧnd~D 2lY2 @ms @lӗojIJR9aT2SiGy$[>\Иp_IMrtLs}`bx^ 0eD (oyt3i4"2* @t.x+ʻcaңZn"%5nxԮrǽv֏OH a b^:~tď8ͦtSr.ʨUH#uÐ^4R|3M^$hZy.[#mBWHJ#@ \[:V  n6:u/]en]_F糌vngI\ H<-fEhqr F~&Yo9Y$, b4) »t.cJ"!)sK>H(^p;I I޴+Ss]ӹޝDՊ!M#`m1}RrnMMĐ~Űs{h3Z6.rJtIgXth[UaZ9k6 Bt Msnf\??-\#Nm6nX$jeg^~A+AA&iVݧ l22hϪ5ˎJ"f] UreaZY> H7˔Ax\nbaZOjz{uj%cYPB8ѬS'&Vlkw_=H\=lկ#'5ax!X=,ߴKB>Ec-jLQh:фOZ$5o(mn#K{EfPx"4o̧\ .mje8X!2D@"P*@ˁͰso02H$a" G-aV(Spӊ#n/8NM;|U8!Ndhc]5XDtYm&T7m$x4kTO?gՂ,5+6” (@yc^:e_.ĉ_9n\4gnp @tMAHLTrYČ{716X6{wam\o X%X׷ldz9rTp!4<<ӳnGwL,+,QS|3lԳ5Gi$Mr5OQ;s"P nd~컧2htaYW-}m~ _{}[/uEWK֋@^~OOpv6b [m .ڋEuᏸ9 { ̷tvѧ[;]6]#ba]Q]1)b_ж>Xxe!Bxx"pİ/"4WZ<_32J6WBH^ dtvpp| bàuSu, kLPz$xٓRd0~iR'ON܄t8m?kpM;܋ l}_{]%jRY5LA&dԎBzn[4~|?)7­m|9WB` c1G~9A[TWNDͦ~rr왻wY~JPÊE8g犕{ڔơDf kNx??$"W˞%]sƆۻpb3o|.~3shbpnߖqo} |q<~N>LsXMWDW^9.:X,fSMii2=l-Kk6zcg0{fٷN /cDV/Z^OI_7^Y;o={2y.#6 ,x Y׫J-c: cnD3+(׉R uh$ĊwU*59/ڤvsW7xK:|.Ύma\!Ku9s(gP^ :k 0v1ZC8",x6hF'}34qvco %1aӞytī$Iubyjm.xaz4Qf<`4QqZs^UJh益WE8jO,Ѕd/p!inؗ C| -,gf4O~"h$t sYG(LʍKוup[DWW|&I/#E% @nQEuFT'0I7 [=o )icoӳeҺsߞߊ~|c*9"`>Ԑj_TLch|DU,sU{ɈFE| 0i yvA1)>CQxNCSq;v&Θ_o[Z}?mṺͳny{t|)[irH M:՞OƇ aZFb^Z0 LhМhTU,ܞ}X9|`1_UG^?X EXxʣpKA5dy?MK($Dz ^8w/Z_ Ļ&<}!K`n_ɴxP\$!${f2 A|kizwaPK==j04=*z^OO{fTvxL.c90Y@J@Mo#{ Up}.kڎL8zg54pr7'{u8e/ Z?Y&=iψ#:ݧ+rGpw`xJ,SVv{Uu=_x$jQx4=]Ո#GqE> w%FӆmQLS$[hF\w?LTcŃ2['`L᠟.K,l>|ϊ ɛ-Mu}S-\C`4/_Jx44>/=:~D[Y̆0 z^GE C?WW>u`r:a>ƇG  u4h980LSQ@ UuQzQ2ڻd*i-Xd˖|a>u߻1@y&pmkWg,Tp%CE A lAI;UG[}%Zh;A᭬jƭ" B{&Ѓj9~ -{Fx2@y@FZԮb:vEu G 6Qi BQfZ-'E|6{y|q+pG3RR 't.4ߌ66d3./WbK7cecaWŋE"o_4, dv10M`CKk[b"|_5>3`LruR?5-'=Դq3G̓10uB{ϧ"E!6n~ͳRo~nA{= Ӑj冠%$dViO.A`Ygkǡ׿9η}*9BKf:h-Ӿ`4:S20/d6˻rB|̆ŌB$ױm XxYvni k"}isn|*IƘ匫[ 5AZ0|6LgarAZRQ #O^NMSxFj(ffFﯯQ[-4ۋ&\SKvkƉ\>r{ e7ܺiï{ہK2''%bXkvfdUo?4cF㔑uxWK A"UA:L Y0tk쳝 I }g`[*ilfN-m=K]+ju_b* '<~oZ[t+.m+vqn! ު8}`1^gE0-7;9|"e=z2je-Ѧ[nFi^hV[8JRM=\zK/M}鬂 Xl? lYT !>\jr~2rט  g[-3l= a1څDP6/uPPuz$OG-ncw:Irci(ƣ~uӌQ /> b *-rxD]Nآ(␟1P\(?fMI2!ezEGj2kQLc"s}Gz}5gQIpG!قC{r%ڧomڵKH IY1#] Lc=t~nɃ{wo۰|z0%-;\N\-(~*76s{ݜ(pp)ѶR1{)@~h!lHq|Ӟ{By >D>O.(=P)jh{*\=;>UCUu[R_&Kg)`h_< KhCX|  [0W|rQbQv:Ch~Br I/NmF8a9 ltL0e҂>r=.suS:U#^g&4ҏ3P@@)Qke_=~/.??pՂykpC<]e cyItA9 T e˴fDĠ5Zг흿VewNh>ƿ Xi6R7ָ<꾧k|tǕ` J62?5WJ1 ؃zy : xt 90\bjѪRa"ўOIU ťGK:1ӊM¥M8$HԸL-p3@$o?uؖm~G=y⟠[:_%<e'RPtSKmU|#})[gestuϧ.;ե4b O$$EEjwM^T>MYZMZc!ċaB0 KaBs_7x6+|fRՕO,1dL i?1!5<*8L6U^5(T^=)1TzXq4iqYk!PÍB2tAB)ē_Y+_5WL&(#:)UNvph8X]G^+й( =ϳSuݣ怇eu_ZVew;eM4TGyOfѶ4i Hl**a0l rTRF@8ۤ@AZ Uf`7A@IDAT|m00"˴~C #)~֡֯u2?ׂ>Bii!P^}=wIt65ЦdCSHWmdph T )1\< ݶᅌ&/ƓFb揟bZ]m.~~?sO`\,,~9p 7yM?^'X\N>ue§{^^t|[g\UQԐk4 TJQABM2^sxާVy0_5/ <󠖘B05{Q*5u!Yϋ^{|x5^Sc#4AYbz4>vKd)$){lq vGAnxQ.X,UAfc~j?aV ʏ6 E!c³kba%bmk*6))JhOnh!cPt_f?MP \[чB2sřUKxk4 гBaoÒh}\ibDLnƐ AtT_JR*=nX|W~3v&(]H@N</ieiuס> J[xT ՕO#l/ xN_v+Jzt%"pL*`pħ?^5c<=}6*7TvT?aMISL1xε!9wM?8H\qQVL\kEoCv(!a\@J96VqC<9?؅ޗJ3W;+MMLΣ1cS^: l3ZMIɄսo61yrfUp9qβ1ƣƧoUS̤unl~T\GBP.Şܵ;Az6?j+/+445aP Oɋ=GZn$]h>WOL G׹?޴=E`jz+̈_FLDQGZ[co(8 3F]$>fz*q1j/OxQĺu%א{T$Ⱥ&]*PvNpu2''[-|b172|jTFc;X(^]||hd0+3}Ahfh<몃^s5[&4| ~RL^ڗ0"a4Ư ش=nj'm|EvIQ>1_@5Jau :̳.0 -*=2Gpp85zB@A\Z eqfh`ЌYpvt,ɋ#I!9P+;)wЬAqDNPk1nq8Kx H13YLW,2W ((zf:ӥ~@&묉oZ(ELtdžuwл~Wʘ<ה|w>,&.6WyI1֠O@OtvsҲv#1M-nhkܽQ&J"\GO>'^<<Oha.x?[H>-I1qvxq\t.>.LbgwlcwZWu(^hoӝCr@8.5!AjMyhNzN,Rx Ն͛-4횜LkOآ++pL "a@ZUVH zZMm㶄%m遣=LN,Ȋ9OçKU-646II=cO.D@"PQ>+' 9 >A.z+j XՊ~zJ= (("MIvw3w3Iv7{Nvٙwgy}hwujwx_`|x&>q %Z eo3~EY?rK (* Ͷ?/݂RNiZMfD|iKa$?i oj;Ep jζZjodk_F4͜ '>$c%v`) 8%MW6kUL*.% To4٪<]E/ck]1rw1>&+a; orG7nڵ_V&P`k[k_p&Nh.F@'(Ϛ_$,&c&&!I=;]ЫS$z)":Y+`ӰyoHd4Z˧¼oRaYWſnw8Z1oǺ E՗cN.v\O~*umjSzW˝NW[F T0jT?Mkq˂Kxw MdHMz+{Zg'nܳkpńRk]F.پv[jEYW3l¼vl~Bb kC$r;Iuw }Sl*_ JyrJFNhmg2@#D  A<>y7<ɦ-!lk2{'/O>{:P$?g|\]tqâw(` Z+ʵ> --遛Gb,A 5p"7{0,ѻ\l?e,uO?雲[7ޢh2Y'oUr@0@h(SO%5U[H~ DpH["9TǼI";֪y OrBk\ D42.1<T0oa!ƍړ&'jz1 nSb v}K ]cdyso;jϊE`hşosbAKr-sM  O8/#o^,Ud5&jNlv?͒@>aG#cR_2T8_L$Z'e\yB5>O6]WyF ({h; š7 D}M!?YnqGU62T>üAN ͜W.D.s텳@u`ȜdM50 =c|`YH` < &$iZev4dꙢVu> τ xdp4oT**)1pKPuˤ⬸TR?-zvA'ɩ\q3<7rZn8>Y}­`eLly 7ĴN0.4}9/VÐᎉҟ{|Op4ƘW6pu!Ƣdnv'eVk[@ r1NƶTRWno7g~}3d%Ջ*;,[: %eܺE s>_-I>iM`+ʾ]'2o((x>^|h_9$ì+ +uRocS^T :q**m]Э ՗ m’敿!3׺F#sì}2F xXhՠbi4=lX4S/P9.)+.m[~+TaW|Gz dKşhȤz| EHQOCú7Am!!^$g[cSjG0Oa~#kDjĵ3D+l79~~c+h޴P=>W<5 u>y[eOgjPp>a+|6mY4p|լ\0#h_5JaRbWq aOg.\jHok[O 4L;i[5#%":Ac~Qnw;!=4Lq{v8~`kQ 8㜫a6dTv0nHAney$y2I2649,\7HS 9~B>6$sYdVT4wo $Anma0DVfwov/OyXmWM΅3&KUmk)!+ʒ$Wv mf3;j[/Wfѡul?ĕ8QӴl.Yt8$8M6-uӱ3]d*P1qq>~|=t  zQxܩӇZqP"EN!Փ ēvDrJ. -/\~ڛcv]cڌ귓KdM EVD7Կ՟|TX:HIJ!cxٟS+Y]~CyU9{2zf?3%BYKɾbt _W% JDhQfWk`oz>0zFK4|X++fskB>.3:_ 9v)#bQ_\3IN O|??NLҵ6.QG3rD>NAQi9>@'Aώ]'im|Y$>wfbF@'h( +B:t}3e|C`go}\tuB %ފo]^ !ӻK$L?ɻ\M$onX XM~/6I7>6F$B.iv{4?&j L}p;ͤ5iBՅ*r!4RHv_#KI<}(TrD2Z*fJ3{&ddo>/Gl,eZt:}2kE†,)4t5u#eљ @פ  Uv^'4MSڒu2-L}NK' mZDX/FΒu8-̕mNŖv6~2uqȩ/-֢L$*;]<D' ݥ,CuS9 9XP"+Ѥ0Hs?Fs8dBr)# 5eO*Ou6/Kߡaʴ`ʿ4wHd9DV)e7~;ejl?4Op }+0Lw)bNkZ6k 8ϿTv;-!\sKZoh/z:~x$dAfT K [\.֠i337t|0(Z E$tSA # B)܄ Ԅ䰡UIZre^FNiY ϝ\n9k??pbF@(FI}>+:1!@ouC:qvF "`E9"iN5f&fc~ /\;#BXQ!\#.3W \/#)h0)p?HC hE-UvIp"3#)F`F@mVR6%\#0#0N%T*8 lF@ǝ:{ .dF`0 FSe%29E6]52zaI}/S irsmrO r|v!8uέku-c R1B.s y c6CWֲuuz*t0oݟj>ZjNx7N"O_ t/ÝGK,/"TN€33@!/V*fVUр^,",5ulFz[V^~/^AkepH%Z.9Jk o{ QQ&jO6EnmaђuhYAUߡ+Q؂_NG9\xlSB~!4E_tKˬ<Lٷµ?T\s|%l#UN_u]r#5Z[vTZ+.EQNNJJD=>jY<*@?: PPT*mZ;U㨲_o^-.,.}Ӛ& ,JdopOGtd/LvC82VYQQ@Trýb3Tpslʬe" ;Z\*)>qla_ɑ*Zg0@8JQ\(4Pfb=)=%Qf7WOgCvzSO*r%.&Ì;j׏w(ZaANS*\r+:̇u|Fz_0ۥF@mQ&@&wְHꞨ 8$O Fl^,2胰 aٺ]pE٩/kp$<\(V>WyT~xSvdܠ$>g"޴7-a4u-c1Ͼcg_+*yj=)|[F˲kZ6"h*h\u]J®ç]sp#΋z\Ho&Ê{@~b0%;yZАkgJ #MN0Of} L*aRtI(ټn/ܼ7G oN[{>Oa>ΛLO׿8mY)ՒV`fs2|'\[ Bذ(<(d-Dfe%؏^wnRy(ۄ#VN hmAS\Ӈyu5d6O^P84O[و笄]Ѣ] GҘkuUIr* 5#4v6sJ'>]/IUN .] ugo{k䩾p_XRYyģ'Q4лmE@ޙӯ~JUƃH-nGz8ܼau?vLӣ6nq6k*:ߎuu%רӾE5iDgC֘Zat5 ci8jt.`4B h2TVP,uK/wlAކ+Q dj+ȍ[~nNw}e o5? 7ojv.e '95 8<&rFo©$uעH7ki/7`|C xE~=dդaRidU!ab+n߁[^|{GWjaZ?cot`Id'p˟ax>\ oڷRk<2a6N#4ZzA2@^Ku?nOo@pZ"q l8}[k-^ '\ _Y-%KNMȗ_%oGўhmN?l\PXTRsÚ^RĆ>" l{qjjwdϮɔߴY{r:筸h70k1.4_2UV|Kn 8uur_3u˖,)--`Tp6t`ɓ}74}7|tUyy))dE&Bɟї5s JGG\ .qC+y7# QpXp%T1K^}۵ҭ[|bRZlB|d)*6ke$R9s!,Jk$)[JkS4_>dw3>IzL|\SUTN|ġq K?=$ܰ͟(MsjsC޲4k5jaQocPâi@VO_(b/~ٷ}U7]v& Q"\h6Y#IQ&K2:FR~-s*;q9遈n̟SIem MV 㫓TŠ=Ζ/#e(-_9"Hd=B$p!HHR")‹0:Nyō75I̟oʟqEf%0uvu˜aַr.FPejr0Ll5Y$VI(5DxPR",^, IpF6WEirKaIQu5`+ƒĵIM0A hEGKu`NVIRZtJr)uorLkRłaI̟g 01{5s&+g[{F@w(a )P(ƴѤ$ \_`EzIM_mFT&36׮"kƵ˜OϜo1e] x7h"ERr,ָ+aBI e : \kubUÜՇRbu0[`TE #4AL̟<;<.s&ס)9Sg>̪C.`zQE{x0 )6q@$#HFVC9Wf?ZFF`Fq#̖} pF`F` ̖*7.F`F`F@ЊrG; 7F=#0Q+QJ޴% $ѻ oqVYݿߊ&Έ;_x\ Vr5XZT5W?9e`,c%v`) 8%x` ù֪*GAQT\f5LgϞwVe[W-zDJWbd!ެWnk.E„N\בF5u8=aVt׌#2du*M5wK1cSR吤̞ZK`) bʬiؼ7Gs$t|/Bl2>>길G+6uy3 g .?/-ǜ6\4ȟ2UcR-Ɵ1@T0jl,?R T$/j81IW6H9n/!ܳkpńRk]F.پvYC!s~o6[Ha\uy;q6?w\1hu׆!WP(So:ĉp*_ Jyrf`E hEd?丟?}1#-9>DMޝyl~ľWDeǟ^-Ao?M& ̛o*yPP:{?ĝGxf}V`UP`J2~bΟ52g9;#@Њr 5xI)_!e끛GLsCn. ],9h薝`nʖ+wf\c{y?%oyE壳;u}`XP7`a}k5+WcP Sy| @:]ɝ++*E05U*)bfjr=׏nYR|BoK57?Rd'Z5OI9\""h()7̵:Z\g" Wph0J_rkwLbhmV:+pr}շjšC1o_ ۝ 5Or%B$ZE$Ys\E$!Z I<͟UYe[x`@7i/*,Ħi, [%6:/G0o_(7,\h_F{\F+!נXr.^FA+,U4 krk~6f4h "%IjqG(162T>üs8q44sʃ( `|̫12g~x|_`|)`t@Њ2TQ< &B$*[+=VǓ 戶G3!)i֤{?*?Լi\xK<`KȢLQ? ;u|z E +d1 ʵ?P hKm 4_#3#Ы_-Yq-.TMW OWaaq#J.\bA%&1bQ a^AQ7ߕ72zvRfݢjdt=(]K&_!=;@ZN8#4j/Y]jZFˌCHVrM{i2|y3C.M1(Wy-\HNp| A FP 2XR ]5~Z"$H tގzCrx0[c!Ku/zhN_~ZR9QvK.zQk%jvyj)ʨNR7Yv7 qrJ:~s B;DPկչ=uS#|*w`!@0tP..\.iɉc;\qvMަfSmc }C_=+KPYO>XCuwjDkТL)(Cl;!:P9Maْ,lJyQ+$:2M(5keAn ~ZY(;&Pb! fHF hrt6i&Zr,%I1 (h/[ڴLwiȆ 0u_I eK}LѡƅC/m-IZ\#lAqEФ2̛}١:X9mOJUNmNŖV\Ye٤H:݋L,'F VC "SMc-SiV鷌h$͟yu_N(Zдs05`[#0C x+Yh"F 8(<W 0#0"E9#P9<.T>F@ìn^;cm``EY;ldF 0(<.'F-0[ja YuH@F@ˆr#@D(pb!@YfQ}n"h,!QUrڨ2QrX,Uv`%eЪy*\7~fcgh[Qdwt??Rn${k"to >_?.$Pvn?_iоUsj{iAku`9UP ic`0".K'a㞣mci8|܃{ |j++^ :ъ|j]Go6Q} 4֊J8v&dS/˩zX6XN SNFe_*"qTzchj"Q:{_Jʬ0OYpפa@!?CjR@pՔB]@q`1dkddާ]~~9#1:*8wt=d5Lu-?#0W9#>=}Vc@IDAT.2qI`E,SQ%1~0w6pbZ4:ɀ +}FU>p~ZgxIT)Za7'Z7d &ү[;xIЧk6|b3Y+_:b܆z+yԛGE_8 \ Y7 2O`;VXRE%нux""h(2i(]Q#0Ar~,iNmZgoLIJTT-!Y 9u.2}A@V{&_ q_ϋdR|-cQN<5 zwj#++yQC-cr|iד;&r᩿ASES6ʐjɵe}=D@YNF;A^+ՂyWznZh@7x~okw·@88gHԦ=Cn KCVùlN8C>ޣC&e?΢``bJw) DL*j:fe%GTzxfxo{ c16RYy<:@l@L-V9 Z^"Z1@hZQVX)ʲZqTuE"&4(.0>dtY󗊡'/^ Ӳr/btxYeeߟC'T{řR\L ZJv-( 6U ZhsAhݎ-oIOIg}]#*+*  GXkQNCk3T/@93# ]/RUZEP$kYi^qyA[?v.žj{ ,E1;\c43r:_@ytc(Gܞ7d:ٯ\ùCV4IhiXjډp$<**`JժJ.W`hFo?~ړ_L3y,~xv!MqN4}\8Ŷ< ;uA!j\Gu+e^5vN9p|u#(R'ܙվ!^^)K8C7v}En zwIW:g8E|^G|2͆ЧKIњ8d-] FZ5s6Yv:%.rL3^?twD3_\ͪ p>$x( U6~ݲ+hqYM} ncyy6-a@ve.E! [+UN}ZpG{wfF6k*BSCkLdŅpiKƯzmc|ubyTz QٗX`ř/50P &.kDy$=yuִ TTVkBu<"ΰ6W6^wç.T%\hnZ=3k{un6o6ҟAOSy]O9S\ύL[U &r]w k:6rIN_͜?\# P֑ŃRlTC5>9) 8{}pL4SE]õRI8e@+<8]ڦ6G8^<{<%)(Kт7OkyhQe H,\yjEЬE3d\{HSrbb P7Z@e2@h(Ss,uK/wl-A5Ƅ5;WcrZp#pCʲջzΛ[<^7 ^)(u4D\8"f|wp.k{U1@8B Oo] E1dƥi5Z⪪*rRFyqUjz`cI4ܐ^*`lN 6D δq`湇vo߃xbŅ.y\YƄ;ojo9Wq*Q<\e qqԽx Pަ)buܺ8#n| O2XF0#L r%ZCIAܩ)͚IVClw ,εrR @ķ?f8}[їxjELJVT?tزMfϼv}al${/7awJ= kz?P3wUrb~>0"y4kAʲ;/7%宻Z5O1Gq#@ >Y K]0'Y#IH*_ _Z޽3'#+K*z3oxIѽ\)BI߀sf5+4PZ k`*g|eE9F"L\(TeL]69wEaHk45['uہ4m¢}/"6BiTB -ٕc2r6qOD V\ywnuxX( G J2E8jl-8V/s-a>T-K-0#Ъ>V;0<30Z @Vczi82S4..zI||bҰӮ[Q&9gc8E˶a(\4E£ 4On+:$_dIiiEle\h:1HRjN<򗘘lɓt2yC'q7?oo*//%"BVWp:[׵\#=r=:T.k_F+A+d-7[(Y8Mp )kgbҫo]uC9-6!>l2d2m+jD];iHsrkayiI>s`CX!!+p d&kvʩA%sמMc"ogT%䭢uK'8phqCZ?ޙ<̣,Ӻqpm0ġX[ K1NH8[A.&5K:Aqk:_}m:c0"C2̪n;Efb 'Y>R.o-%}mBIh4 p߰ SGSU֊?xY~/'…R|fOؔBHR݂֤1,X+ >'N\qz wXzÕ̟?^uuZFˌnΦmCq I嵃u?M4JzA]Kz̗6sFA+8Pju)œ+wRpeK(fKDAD,11Ũ0p3[ ͘ظlxw@E~F-V k$)d E &Fß&PU SxFԊ(3o}rsK~(*'gN?;u~Tkk}BvOO`G xEẕVfRe"J EY)1qqyfeKN.UV}$%V߾{ϟ=uRVJ%@NJҢLB P(XgGl?gsC *x|KbOr[t1cwL6LpBOTftgazUr"F_B(SNkGI$eLV)XsNUpWvƼ3F]w/~?șlLѢT) ϥ5 <7_#и:.11&V[wb;ws1J*I]to?~mXWku{fYfOdL;Ճ@RB(ɡWO-4w?N*3nͷ_WQԅ/.>ko_9#\1H9U7fn m˺KQ9fԵπ>XG賯Yʵ9\Yxf5ewRQ aRbLkr%&3MiQբ?fN27m__zћ鿊`NV$ڤ; [8oKcbcr F@O4dю˞u]۟?SoYMW3ZguəP9 ;| # 5e,U~E2-t XqWhSlLQ0afs[\SCfKp[[Vm~|ofxվ &Ġ_+11gnD9m)Ɂ1 ȏ>ԩkEpoUoMoNzZW ~靳ŧ17DUzi<|m2-/a6 1 r:Ŧ&~4gf;b@Wbm]2X ;p:xn._ &I>n4ߨ8/u9ox:֘8G&9/#h@Њm y1R G+-3k|A-٩J3oJ+o0j -"`G:*a3>WRO6ӧo1#0 "ZC?͜E%rlWJOô#Y6ǜRJW{T購h7>wOfM4W@%9BQBNfyX|>TotBqΞ?(<7Z%IQm 5r7t˩Gq3>|`Qpբ,\29h\w'W/%%Ó^gOg0C8!^&q K#KT_rx\}~_^o0)eG_zz9}U6V,u0[D*Q#y3OEYsۻˇ;r|9'..!ils"dez8wCztb5zM !r]*}1Ƣ,zG\\r}cl|ԅ,5Xl D:ѫx`0#p8Rl+d+3wï߂AMfdJ~lnSbB3|l-x*6y?0l +m<]^8ȥ7;MC=S7`%~r<@D q>5b)ʄvKb?A{w:?/_"h+:l J?e}%],"3@cB@ E$,UDA\2TVJV*CNe4&}圆 u  >}᲼G8"]n|N8UY-#Khخ^G#XN\`?ZQDKUl,kZ#=\+݀K\fI)Y9K -#4t_*.?n2+N3-۹*++'))):K8Lpd4 vzPNNc˩:x0@(^~o[!$?gա*fh ZSmړgARtL<E%0{7h01HY&wrx\ :n÷Έ|Ơ*'Vr*x`? '7G}ZOv8?lu.F&9#i*VO;M,j5ɽm3AFj_X]Nχda |qtl!g]ql{ faHI~v ͽ/ zqu]]G`]Poczth?4 >C! t@aL+oHN#SBADF *^PUlfd$E/$Ud*߱3PYU}d_~^87⍳Kۖqw_,zYѻƏRo6@d`+*"muڵj&+v?{v/߰ )=4yKd5& wŹ֫!`@ç\ǂ '_™ѠtL4Q4U(QEॲJ 9Ɖm\BN kaDmce sp4szC_崡1b9%M0F@ VBR%Uj4H/eX)k.%; Knm#MXdeZPPXJ]Љ,L}:gCl R?z1}SGuTkMi㐒NEw9ւjr壛ټY튯}ޥ]K;C"X~u'e;]+?G8U'6._Fk_|O8gxa̘9$Dڡu\/;lg9r闌B얰xv鏜z#&, 0\#wj24 {O*. %Vl|ŵ*\lwlB]?x &r}_B+N3[ὥ`hʼnvơ;1\3)Ey6)4+F2"As gpfGN^y*ڹpUcd0]%tƏ y_Qa;4G8=+ |G3*~8<_4/7s_xgtnY}V9ݹOQHoڬg_$oo@>>ԕR!\M䴡14Pݟ2@`r r}bÅ \5ú_C;{Sny`d*ÓK3pxR<2{:/­şsWZkaUMN"4X 7|Ou%D(%I#XNkF`C@ E" 9n\2B_]8sª>¢C^9A!/pÊeOK/L2'F+4>m3IKf9oYN}És1@d";j}S/w?w^ze98ӆBkX7`;( ބwM|Oq_ rL 3-Iо8\h* zK'_%R#1Ҕמ9nzg;>|`]/REׇ`|zGV |7?x%R(э@r %nԤ( pr4)m96BI&aˆ>ʤ G|"hFAZ0 g}#Ϡ7gimݺ+J,NC1@T# KIX97#Wj8 Ng͛ħ{: "HJ G )BQ}PwEl/%q&|LNL!dS/H%𛂦t7=[X"˩{XYN{F-%*iUӟ_ɠIp,z}kRr0YAAQl)ĴN6)Ф$S^qKn7Iϝ9z|=c3罈\* iO=ts3)v,N6,N<`(gf-:k'xa\0gG}̹=(/˅"Zeq&|hOQOrx\"`@RJEE^Ui`tE݂:$,&F˩ K~ a"ApCP&Mv"et#&%cZSVENЍX(LkNr)p㏗N{J/9~{3~x~1rW!,qYD<|C3g>{ޓ4- ̙E]Ib;bi0 ! I2 Ad.ޑ,oI;lR@?LBS# s<YN=r(Ǖ06#  ލ7hYUW||֕0/wmvqKA,f#%9QJi`Ļ`Ս4TT2GAQfCZfG4@`OhPLI2?^P\9 -x5*_~.c9uO˩{\x/#D'j(QgKŀ_ϙʾQ%%wfCA=]ڶ4Q1;WCRD &;>=:q6:i?%?p㳦<|M.+l]nI>OSgλJE9$;~Aio-,`nDW3A;Fs&%6VjQTbN_ o}~bm`o> lG+Zs s 㰓-Fuj*-imXFkHF͜K7?҃x =:d:V}ĕ&/h2S W\!N2!g,oeG/,i,qu`1CuYvg{An=lj]WCl-SMF%۰)~}FǶoٱJkV.EM(QcoY15mef=ҹ{-s?XNk0r0|W[Nkj-F lQ n1$ ~`}Ѭ$G8%3#j| ϺQMEͺ#-9x18 StzvtZOcF@ЊYhiD}\,D&l$9W7Orp~bu1c4>#88kM4(fuCi+!,AC0@#B hE9 -U kr|ѣ⼣q4E(ҾӰz[xWCQ7 {qfE9VV9~>8r"f>s`"eJ}*(ǥyq 8ծywtk' rySqj|O81/u2ǝ:{ ƒS(eM6mW&`Fog׹o43S@y7Ɂ )QqNBQG ' O0[?)0{à\jrc%0RD8YLN .&ūft} x xp$lI~aXvt瓆zG7_Q9_7Сu0?ԭc\Xq^mZ+{ʧY K!E:L*HM xMxC:@8 TM$qx`\N?п[[d=~zYf,~ a9GD#RB8݄I KUUeIQiyѿw TVUti7텣q#*䖰qw2xgZѯ3N'33+š9 .ꨞ?t u"~vt:}C*Y/ GoIE4? @hqrT雬-?šgԿےAۿ=Ϛ>4߼36Z"--ʉ+srɟ37U?33_{ߗJ̃Ohz/(29F޵y5aq9[nۋO=d:,2˜^,k8ш 22O:(}luJD:@.Z;Y7o Y魵uk/˜n[5CN:v.'?2BZw+8GgC꘭u̗s8v!=ǟ{= #|ʞe'f<7jdQece(? o5OhқTKN?Z}ɯ}ΡyP;\3t˶LӳFD5sZnsz̾N6r p7ztq.ǫV|tC-]<0F#CGЛyPsh;=?.\~Mܜ7?&CN4GD?,s|A(B3$18W2%}w c,2-co bxHpwϑzi n =4ܵOy`Sڧ}x >,9s{,bZܼ˓էgvΰ^}v\Njeok>1߾vvT$oI׋]鞹봝~JZP!giTC@ tX2Y; W8>sGْf<ٗisLNҵKL0z{2+[QkA8ݞ5>C>?9ŗ2o9 ()O5Ua$L:kA!LӆT؆_EUYSzs}}͝y5ss`vr,k[L_˒2prc<ء}+Jte77H*S,[,{g:Z2k ϡJgjsiG#tC:kaQ:H!lZ0ʝ F;[Q9X֛"+qÞ}?]Fۥ0&])IkmAh9T["}/l"'=ǟR4H֡;\/v PLCמwGK@r:m! #@hqV, =vjU|yPi$Lwr7wJCd٣wg]t׎ܠddi 2-62:$eqe8E]zy~|k.E헬sآwY"sX򣞽t'zR~WAAawiY!5#}unW.Yſl۲E6틬0@\^ ogԫrҋruQI-<|q>\|sNơAr?+h<%{@38PxZ7J@ (M8 Kxj8 u{׭[k_7F 5]VVfҠ% \MGYoӁ5Pn˅z\p|BO,Yz\IV~q(I@:@e߷ =UvF~i_( ӡE^0(րO' g d㴋:(jj?2{˺ꩭy$'Δּ3JљI~sw\MeN+W^$n#7N IZ(KWgN>?Vd|̗@9l!p=r@YB@Ygd(C˲~Hb Jg]/0HM*8ٜ= 5θ*ȷ^\~ktFoqöKEμBN$@%U'mSNdӔS 5[} X:}eٜ7S{.>MjrR3[ё=;7Ot6{N5KcWl:Zu*tb|hlOVA#D=|4À%lY0@ 9嶺IgGTm+a.S|Nnsæ8?y|،P |3/d]{/a p_k7:+Ǐ?lq46O" >e_\ᵨTyH>4/U'*+4iRgIEfX YϹլ;~~oG^WO>iMg:N͕ }Unm\>y+gV JqXJ?{ƾwۘ1̤D*Y3=.%zӑ?-$!5v팪x|GWu:V~uX7n]?23~~r$D#^&s̷/C^k}gqńʓk+y$j"~S/Q3J}^tRsƞPХDŽ@> Ak2/&HΧsE@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@mˢGUL_2q{e,g&j=lQ{u@@]eߟeUrUƺk3GYk(7^J(#3Cg@l?b[ @@!ЪrIBa!@k2?yVVc^-GM;|9]/+DŜ+@@*jrIEZ;uoI UgZ|KWZ8'0f`j*w 7HkTh{>bb}.~ikY\ܼ姝_` Һ|׷ ZIDATi瞷aѳ^,y  Q -9dhuB25E@d[ FSH l=ov0#.'H>0݌QqeBj@@4P-27ItKNjg)13ZH? :>ɍ{-{{O3C,+F@h@e}qCͬ e Hzf\  69 {0'm޹KQG$}  r(˹Oa"y3qM  pHhRy$uID< }̷L  m,@YM!uʼnz+  @ EW@@h=ֳ%g@@,@܁<  zʭgK  X@yT@@r6EU"p[ UwI`92ƚ2RՔq6%  EyE]rÒgG:jW)A*u%Syr& Jv]YߟUj˒J`nQvzllioNHS[ C?kϖSs ,N;{$3Y<3mFe0qq<3Gs'6mITzӤI=mJeXuĬucEkix˰,) uxub¯T!ʾZcnn7_^\p ucէ /swT}3<7L|`]uMg#Ψ,[itjjv&=N:FZ>;?6pg9c!51/Y1bynH߿m̘MzdEՌtfڈ|m=yraX_]1*)YςdˉM-_ZcnL++[p6l&_5.i:WTM&u$lML  >hQnCk!җ Wcw.i4ƛZo=cvmAnVSwkJ#oun ctyet硒g_Ϲ}ݠ6XZwwobԹ@[nwLvM$i%^)/<pPZѝM$2.CՔ&%0V=~G&oVAwǍ7.=uS][[>$ejf W4fڻT~G-$1SjT~guW'}x2ZFv gGswn &)vs-{)LIn췮N"﬇[u)/جn٤Pk/H#S]:Fre #Պ4Y fcR_5tY_ZA4A] -u~- m.zf}~ܿ5R e/}_bW߳_O_D;ۛ.z]-J"s޹;N/W˾EnT/# p0~ʞZ9vwKr^H7g|NJ>7#Q'-waU\h`4N ʀh|dիɔdQ7vMA&<|VCI7%0X2/;OR Ni1KL4IWǫʺGVךm}SI_Z7]C6"~S|e-eKdd+5䓣ytl64  pP|Ps[PwW {W֥}cI}:z]2 K5҂yYv>!7UiZ LTZ7HsV[W$ܨ붂>~"9 3W]M0W{WnkS+M*-]H4zQc۔IbKV$emdx?vPkƎ }b&%KnzC؆ X@Z5ѹBzsLήTUɍ{tkdX?qѭ)Gj%UUtC:Dоl1.`s].琫ԥsǨUC؆ \8^̌QE2;BԮ@Y>oJR9@0ܪ3?󯖹Y¸YGr  @r(K-dG0wjxf\1i<=_7)1@@lԋ RU@oFzp?{?('Gf')w̨ :3! -YʲE2؇rw[\+2Q<3x  @L͝GdsL:Q꧎`{:iq*  @i< 6^vbQ\&7  ОZ5P]V%W]%#8sn=aE]13O08:n7'-@@&rv5FUL_mH_ ?%Pޤs]ia|x9G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@iGUL_|q{4gC3W|7{[ޡ;XF.Ɨ'w͌ĸߵzR@@ ڤEb◜K]y:=ieeZ]NZC\cGfT2M8@@@@Gwm @@+7Wo <*LlJf#N-(@@ -??nJ:[A6;y՚# (yKK%oVt{ieen4u[&.G{6;muU׬wy?Ԇ'3BZz-oh:?6qbim>D#57VWuNzmrMNMH cl)HkSF'Ϩ,[2Ɉ+igG~AZɟJՉz~?Y=UJYEpz/F\ /H1򣣿 /XZ돖7^ʱo9Y+77\]Yig㤬c$ϻ峵,Ouw.bWXQک}g]zsytRC}}_t @ve׋W$kr% 4>'I-6tEvTɺ?N{rGF K88W5ɷ-$wEXE&nԥ6>.)ֳWO,sz]F'ARVF7%PNk4h ^b圷 =!ܿeir2Åsz=n?X %Fm,K-Od9ܳb/fϑWڶPy("a.H=G@~Ę Yn|s;P1.,ay$? Α-/.8vN|7欝?jv @ZkzSj.bqA[J{o#>$QY~mUwpl> KtuNo[]QNs1K7v쿦8^yV}2(#vl] к-3WTM&_kK4|-@~ zJ^Jp:NZgTkN˷/$M5xDU;sUrI3pl{BKKswaF:p3m^>|M#֓zɓ \}u]8g1;FZe3%?0+Yo?X[;p6l&_|>+-–D"pO"/_>Yk60iu{ *eDnIm֬YҨմ%컬"=Z/dg{=_Vw˸L70|H$[;_ȊLZ5v$eLoW$~*&)];\ՙ^a}-n:J_}lVfn@N%-ԚK:~dm(owoJ݁W̿{G>V@@hQ>){Wד)w}Ci\T}Zu]-deǟ3-頑9r/+U?1\g{LUfBwf,:1eƎWS^Fsdo%z*R b 5{)z]xK{Ub[˟ʞk> Rnr؏ @GjQkiHaDnΣGAa+o|S"LeҟL:ZbQA`~$I/ܫӺ⛫>:=i RJGg>'eܾcS>ܿ7$J*&Fץ6Pn <݋~_NJݜݖNe*W\1auwk;K7%0X.;OR Ni1KL4xUYhZO}*Kpp~wKKxl򃡲%2ĕҚFcdQyUʵV7vMA&<|~+&{lJu<Εkp3K@[ g-2@\罋`KsK 7-DҒeyҊDI59#fcCgT_س`FQ:X\9O9~ZNnbGϗKƻpe].9.)#A<_&_o_xG?˿3k&]-zL6VaY[OzԂZpi2TJ0"}]H4z'_/:s2xU21X)JK&J%~IڹQcc7ȍ$G}檯gg@ZA@n.zFV:ol{ڵ@ h ݊+ݕ~/ ~Co+8\כ;MǏ?qz%UU4ֿG}٦IX.TUX>*ā^6V^coZ5} @EsP52L9c L{E m.b_Z965/'@9킛f$*2cT# KVf'iֱ԰5Bq;ي  К9 5}h׶5+/yowt|wDs^{LR۝!}wW9y[@~=ru9D@89{ȾNGl}<ʯ 8LyGM7zQot<8eN@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@  [.eTIENDB`nova-17.0.13/doc/source/install/figures/network2-services.svg0000664000175000017500000014221013556316250024152 0ustar zuulzuul00000000000000 Produced by OmniGraffle 6.5.2 2016-04-26 14:55:33 +0000Canvas 1Layer 1 Controller NodeSQL DatabaseServiceBlock Storage Nodes Object Storage NodesNetworking Option 2: Self-Service NetworksService LayoutCore componentOptional componentMessage QueueIdentityImage ServiceComputeManagementNetworkingManagementBlock StorageManagementNetwork Time ServiceOrchestrationDatabaseManagementObject StorageProxy ServiceNetworkingL3 AgentNetworkingDHCP Agent Compute NodesKVM HypervisorComputeNetworkingLinux Bridge AgentTelemetryAgentTelemetryAgent(s)NetworkingML2 Plug-inObject StorageAccount ServiceObject StorageContainer ServiceObject StorageObject ServiceBlock StorageVolume ServiceShared File SystemServiceiSCSI TargetServiceNetworkingMetadata AgentNetworkingLinux Bridge AgentLinux NetworkUtilitiesLinux NetworkUtilitiesShared File SystemManagementTelemetryAgentNoSQL DatabaseServiceTelemetryManagement nova-17.0.13/doc/source/install/figures/hwreqs.graffle0000664000175000017500000000767213556316250022712 0ustar zuulzuul00000000000000[W۸ǟ˧G%Y0m 30gX,(SNw?@RHI -֯_z~JG/ ~yN 7l{A~T}ݳN}čw;Gvfslqrt:k9/ټ6p^b8hDa_Gl.3:{!;msW϶>Wn]#FGA[j&A/uWGVsqN |?:4EN _Ax(c:r:_˭$gMmPgBڊLS0A6K,cl/y __4!k! I[e,%9'e;2k7,'9Sã{se+|v<1}@ a qu&L2-Rt~Z4?۾ *y<֭)vW&TIW囔nRҠKW%wI¨Ǎ?8Nyܴ\ǯ\*nKc|<_+he۴Rn*%9̃DZjyvTEҲ4)Dq aDJl_rNڜMM8©m3ܠɘbT۪ Zd$/k2 0脳ԥ .r%Mtg$ Q}qS q_-'ltϻv4Zh]lSXYrgqkZ͖g9eu<߿ᕟnKJr"Ir}Ӕlγ&eTR̥䅔G_K^V;:jee.=`AQvt5Stڲf@GN R6Sj>gK<&fm<;q];wC7tC KyT!;x^:@ǤQ<=HyLnu|}O2H}wyEHM䍁'o$ovjyj"Hj7ISiIr^/ x9g7": <&^wT6k49h_`ɒ6ЉH* 6<Rx{[e.p.;fcPͼ{X4Ra y7gqP c 60`XND"gMCm^e );UeLŵOY6 pCdy3hr !#9B!+Rx+RTF7-|*%1X$)8"\ ֔oĬB*JmX!M֧HL)bAJů"~惬q*djBVn!3RWfU*RRRIvϓUMRVéjFIs!" 2miTTWDԏ-߫Vȫ^ī,I%8J%z5Jr5Vڝ10uviPnK"MpQWQWq-iQru(psXqow~G?^^8;c-> 6}w_ߞ#݉S4n0;%pD3$.!p̋JWΠRNx#mۍy4q 8L.>u{ ~{mޑ@o{J"-ɪ^;48DNTPih4 |V)4u 18f\1sO˯pR74\bG1Ou \YfLLGq 2Jg[ʚB_jRNiJQzMyV{闅h[TU>4WHganova-17.0.13/doc/source/install/figures/hwreqs.svg0000664000175000017500000012130313556316250022067 0ustar zuulzuul00000000000000 Produced by OmniGraffle 6.5.2 2016-04-26 14:57:28 +0000Canvas 1Layer 1Controller NodeCompute Node 11-2CPUBlock Storage Node 1Object Storage Node 1Object Storage Node 2Hardware RequirementsCore componentOptional component8 GBRAM100 GBStorage2-4+CPU8+ GBRAM100+ GBStorage1-2CPU4 GBRAM2NIC2NIC1NIC1NIC4+ GBRAM1-2CPU1NIC100+ GBStorage100+ GBStorage/dev/sdb/dev/sdb/dev/sdc/dev/sdb/dev/sdc1-2CPU4+ GBRAM100+ GBStorage/dev/sdc nova-17.0.13/doc/source/install/figures/network1-services.graffle0000664000175000017500000000770413556316250024770 0ustar zuulzuul00000000000000s۶?O>;i@0ڸ+f4s E$? Y^}db v 04>$ Ĵ*^ ~|-?/7vup1 43ϷwGPmo\G ><}n<ʲыkR`}#d7Pd0{Y9fRz:pˍg;]? >cF%GQO}G!125PKkg{s^E<%1O?f^֨"dXq^|ӅI=eƯQk/tz7 gUz?52{uټSx󆤍vT=ΚB4 ZL8r6SJ@ݩ-,b;B:MvmriJ1.8uujdJ:yTRN1߮SЙ[[M\秵LfKnU , C-CҞ3]p6RQNjҭqثcȹTNV7q%VDD*+߯yzvxVBAlܽ~wݼݭHi+XVvi.w\Ɗ%gҞS.d[_׋j=jjv`zQqdᆞ(9:,[zvqI7^/kl49A%QEg5-)܅VuOA ~$f?g;]ݾG|W^2_@2;Hp;O8SPyI}‚p,RQ/i/El7a,V. p@D$/Y0T|@O0~xu7N(M/_sG#sBŸ ǹ G%ukIF)֕Y\ܓ66@yO2It.ײ%ё{s<̹S]Gh9 ʼp<0\S2 > iMAK#a;d{ A!w5|ꀌ;K`G%_= ۆItLK  TJp דtD:>J:@~(itnL 4`lmU.:F1)cks@@H爩DH"$kɇ#mP{؄X@D|:H$q;ك,,P钧ncI@sm;6n-a'p a{ʰ==9a[ɢ߹b)ae%Ao|jIdzg*G"z@o^2P2ͯiNLEҭ'I5*TC%7ݍo6)6Nlp5TD*"q+0?HNuǁ4KBT9 .F\SQ$[]@o<ۜanƶiy=~P 8 :EiܻEU\=JI%G|)"bq՞?gbm/çbk::D!pzg?O7KX޺sDbI\SFVHd${ N09\rERDzD4"1||c_)h:/ 'µ]CȷNC$>&$~DD"><\E7 6<tg t[246FBũ5kG|D>"v RPWlYt8H[`#tHZ[a'>!9rn8w4-}m|15%NC!Vp=݂fpbѵm33n n4 p[4?dܢs(˲+t\3"8)Dԣ-j=He30}#x\ĺ7xAy2;eFw fnj?١;l]?tHBÏ8y̤ރ}i ;N02j.%pPrZ7.E4q4hgUW$V3 }EjmK,AEMl!m=ss]yíc}C59g-'r?GX;n,c9CUf;̑GF[UF*ե eqgWpAMRpE`Ru.fl u AMˆxya'񧠧YjڽOLM<>0#$.+Xs6#Z^)~ܦA3Nj'ZRW+c]!%dW]dmHNbxi枵 qJ1ScBL!STexafmfuVGm[`8ά~3 .™HSY 3;/.Tu7@ı)~\Y"`1v¹#NQC-yZ` 1c5C+˘ΌÆ~RK9 ze=3L:5e5v*:=NZσZs|_:W!n&ґ7J/䋫ϯj@z gl5)%wA\4:9Dsu+•NPg*iJ.jTm$g45'C_kN$OjJ1HS]tû@]UN;yx{{ݍF=թ~IiVDt.Q{j╹K|W0Q.8kTF1>c JgNGx,$_U 4@Ӑ)hDJIg?AN [ۢ /,A\\yA%&xYv_#}OL-~IgIFvz& ]fµك1]@Vsً,x Ԡiy0(g)TU0C3O4 D< 쵞ho7R~8z{:WWgo-N.}w||.܅C~qASknsx?V4*wVR1-OZxc Z1lq\8gptӐR pˑ}JtG|>Tv<'nova-17.0.13/doc/source/install/figures/network1-services.svg0000664000175000017500000014032313556316250024154 0ustar zuulzuul00000000000000 Produced by OmniGraffle 6.5.2 2016-04-26 14:56:09 +0000Canvas 1Layer 1 Controller NodeSQL DatabaseServiceBlock Storage Nodes Object Storage NodesNetworking Option 1: Provider NetworksService LayoutCore componentOptional componentMessage QueueIdentityImage ServiceComputeManagementNetworkingManagementBlock StorageManagementNetwork Time ServiceOrchestrationTelemetryManagementObject StorageProxy ServiceNetworkingDHCP Agent Compute NodesKVM HypervisorComputeNetworkingLinux Bridge AgentTelemetryAgentTelemetryAgent(s)NetworkingML2 Plug-inObject StorageAccount ServiceObject StorageContainer ServiceObject StorageObject ServiceBlock StorageVolume ServiceTelemetryAgentiSCSI TargetServiceNetworkingLinux Bridge AgentLinux NetworkUtilitiesLinux NetworkUtilitiesShared File SystemServiceShared File SystemManagementNoSQL DatabaseServiceNetworkingMetadata AgentDatabaseManagement nova-17.0.13/doc/source/install/compute-install-ubuntu.rst0000664000175000017500000002071513556316250023570 0ustar zuulzuul00000000000000Install and configure a compute node for Ubuntu ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ This section describes how to install and configure the Compute service on a compute node. The service supports several hypervisors to deploy instances or virtual machines (VMs). For simplicity, this configuration uses the Quick EMUlator (QEMU) hypervisor with the kernel-based VM (KVM) extension on compute nodes that support hardware acceleration for virtual machines. On legacy hardware, this configuration uses the generic QEMU hypervisor. You can follow these instructions with minor modifications to horizontally scale your environment with additional compute nodes. .. note:: This section assumes that you are following the instructions in this guide step-by-step to configure the first compute node. If you want to configure additional compute nodes, prepare them in a similar fashion to the first compute node in the :ref:`example architectures ` section. Each additional compute node requires a unique IP address. Install and configure components -------------------------------- .. include:: shared/note_configuration_vary_by_distribution.rst #. Install the packages: .. code-block:: console # apt install nova-compute 2. Edit the ``/etc/nova/nova.conf`` file and complete the following actions: * In the ``[DEFAULT]`` section, configure ``RabbitMQ`` message queue access: .. path /etc/nova/nova.conf .. code-block:: ini [DEFAULT] # ... transport_url = rabbit://openstack:RABBIT_PASS@controller Replace ``RABBIT_PASS`` with the password you chose for the ``openstack`` account in ``RabbitMQ``. * In the ``[api]`` and ``[keystone_authtoken]`` sections, configure Identity service access: .. path /etc/nova/nova.conf .. code-block:: ini [api] # ... auth_strategy = keystone [keystone_authtoken] # ... auth_url = http://controller:5000/v3 memcached_servers = controller:11211 auth_type = password project_domain_name = default user_domain_name = default project_name = service username = nova password = NOVA_PASS Replace ``NOVA_PASS`` with the password you chose for the ``nova`` user in the Identity service. .. note:: Comment out or remove any other options in the ``[keystone_authtoken]`` section. * In the ``[DEFAULT]`` section, configure the ``my_ip`` option: .. path /etc/nova/nova.conf .. code-block:: ini [DEFAULT] # ... my_ip = MANAGEMENT_INTERFACE_IP_ADDRESS Replace ``MANAGEMENT_INTERFACE_IP_ADDRESS`` with the IP address of the management network interface on your compute node, typically 10.0.0.31 for the first node in the :ref:`example architecture `. * In the ``[DEFAULT]`` section, enable support for the Networking service: .. path /etc/nova/nova.conf .. code-block:: ini [DEFAULT] # ... use_neutron = True firewall_driver = nova.virt.firewall.NoopFirewallDriver .. note:: By default, Compute uses an internal firewall service. Since Networking includes a firewall service, you must disable the Compute firewall service by using the ``nova.virt.firewall.NoopFirewallDriver`` firewall driver. * In the ``[vnc]`` section, enable and configure remote console access: .. path /etc/nova/nova.conf .. code-block:: ini [vnc] # ... enabled = True server_listen = 0.0.0.0 server_proxyclient_address = $my_ip novncproxy_base_url = http://controller:6080/vnc_auto.html The server component listens on all IP addresses and the proxy component only listens on the management interface IP address of the compute node. The base URL indicates the location where you can use a web browser to access remote consoles of instances on this compute node. .. note:: If the web browser to access remote consoles resides on a host that cannot resolve the ``controller`` hostname, you must replace ``controller`` with the management interface IP address of the controller node. * In the ``[glance]`` section, configure the location of the Image service API: .. path /etc/nova/nova.conf .. code-block:: ini [glance] # ... api_servers = http://controller:9292 * In the ``[oslo_concurrency]`` section, configure the lock path: .. path /etc/nova/nova.conf .. code-block:: ini [oslo_concurrency] # ... lock_path = /var/lib/nova/tmp .. todo:: https://bugs.launchpad.net/ubuntu/+source/nova/+bug/1506667 * Due to a packaging bug, remove the ``log_dir`` option from the ``[DEFAULT]`` section. * In the ``[placement]`` section, configure the Placement API: .. path /etc/nova/nova.conf .. code-block:: ini [placement] # ... os_region_name = RegionOne project_domain_name = Default project_name = service auth_type = password user_domain_name = Default auth_url = http://controller:5000/v3 username = placement password = PLACEMENT_PASS Replace ``PLACEMENT_PASS`` with the password you choose for the ``placement`` user in the Identity service. Comment out any other options in the ``[placement]`` section. Finalize installation --------------------- #. Determine whether your compute node supports hardware acceleration for virtual machines: .. code-block:: console $ egrep -c '(vmx|svm)' /proc/cpuinfo If this command returns a value of ``one or greater``, your compute node supports hardware acceleration which typically requires no additional configuration. If this command returns a value of ``zero``, your compute node does not support hardware acceleration and you must configure ``libvirt`` to use QEMU instead of KVM. * Edit the ``[libvirt]`` section in the ``/etc/nova/nova-compute.conf`` file as follows: .. path /etc/nova/nova-compute.conf .. code-block:: ini [libvirt] # ... virt_type = qemu #. Restart the Compute service: .. code-block:: console # service nova-compute restart .. note:: If the ``nova-compute`` service fails to start, check ``/var/log/nova/nova-compute.log``. The error message ``AMQP server on controller:5672 is unreachable`` likely indicates that the firewall on the controller node is preventing access to port 5672. Configure the firewall to open port 5672 on the controller node and restart ``nova-compute`` service on the compute node. Add the compute node to the cell database ----------------------------------------- .. important:: Run the following commands on the **controller** node. #. Source the admin credentials to enable admin-only CLI commands, then confirm there are compute hosts in the database: .. code-block:: console $ . admin-openrc $ openstack compute service list --service nova-compute +----+-------+--------------+------+-------+---------+----------------------------+ | ID | Host | Binary | Zone | State | Status | Updated At | +----+-------+--------------+------+-------+---------+----------------------------+ | 1 | node1 | nova-compute | nova | up | enabled | 2017-04-14T15:30:44.000000 | +----+-------+--------------+------+-------+---------+----------------------------+ #. Discover compute hosts: .. code-block:: console # su -s /bin/sh -c "nova-manage cell_v2 discover_hosts --verbose" nova Found 2 cell mappings. Skipping cell0 since it does not contain hosts. Getting compute nodes from cell 'cell1': ad5a5985-a719-4567-98d8-8d148aaae4bc Found 1 computes in cell: ad5a5985-a719-4567-98d8-8d148aaae4bc Checking host mapping for compute host 'compute': fe58ddc1-1d65-4f87-9456-bc040dc106b3 Creating host mapping for compute host 'compute': fe58ddc1-1d65-4f87-9456-bc040dc106b3 .. note:: When you add new compute nodes, you must run ``nova-manage cell_v2 discover_hosts`` on the controller node to register those new compute nodes. Alternatively, you can set an appropriate interval in ``/etc/nova/nova.conf``: .. code-block:: ini [scheduler] discover_hosts_in_cells_interval = 300 nova-17.0.13/doc/source/conf.py0000664000175000017500000001742713556316250016235 0ustar zuulzuul00000000000000# Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # # nova documentation build configuration file # # Refer to the Sphinx documentation for advice on configuring this file: # # http://www.sphinx-doc.org/en/stable/config.html import os import sys from nova.version import version_info # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. sys.path.insert(0, os.path.abspath('../../')) sys.path.insert(0, os.path.abspath('../')) sys.path.insert(0, os.path.abspath('./')) # -- General configuration ---------------------------------------------------- # Add any Sphinx extension module names here, as strings. They can be # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom ones. extensions = ['sphinx.ext.autodoc', 'sphinx.ext.todo', 'openstackdocstheme', 'sphinx.ext.coverage', 'sphinx.ext.graphviz', 'ext.support_matrix', 'oslo_config.sphinxconfiggen', 'oslo_config.sphinxext', 'oslo_policy.sphinxpolicygen', 'oslo_policy.sphinxext', 'ext.versioned_notifications', 'ext.feature_matrix', 'sphinxcontrib.actdiag', 'sphinxcontrib.seqdiag', ] # openstackdocstheme options repository_name = 'openstack/nova' bug_project = 'nova' bug_tag = '' config_generator_config_file = '../../etc/nova/nova-config-generator.conf' sample_config_basename = '_static/nova' policy_generator_config_file = '../../etc/nova/nova-policy-generator.conf' sample_policy_basename = '_static/nova' actdiag_html_image_format = 'SVG' actdiag_antialias = True seqdiag_html_image_format = 'SVG' seqdiag_antialias = True todo_include_todos = True # The suffix of source filenames. source_suffix = '.rst' # The master toctree document. master_doc = 'index' # General information about the project. project = u'nova' copyright = u'2010-present, OpenStack Foundation' # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the # built documents. # # The full version, including alpha/beta/rc tags. release = version_info.release_string() # The short X.Y version. version = version_info.version_string() # A list of glob-style patterns that should be excluded when looking for # source files. They are matched against the source file names relative to the # source directory, using slashes as directory separators on all platforms. exclude_patterns = [ 'api/nova.wsgi.nova-*', 'api/nova.tests.*', ] # If true, the current module name will be prepended to all description # unit titles (such as .. function::). add_module_names = False # If true, sectionauthor and moduleauthor directives will be shown in the # output. They are ignored by default. show_authors = False # The name of the Pygments (syntax highlighting) style to use. pygments_style = 'sphinx' # A list of ignored prefixes for module index sorting. modindex_common_prefix = ['nova.'] # -- Options for man page output ---------------------------------------------- # Grouping the document tree for man pages. # List of tuples 'sourcefile', 'target', u'title', u'Authors name', 'manual' _man_pages = [ ('nova-api-metadata', u'Cloud controller fabric'), ('nova-api-os-compute', u'Cloud controller fabric'), ('nova-api', u'Cloud controller fabric'), ('nova-cells', u'Cloud controller fabric'), ('nova-compute', u'Cloud controller fabric'), ('nova-console', u'Cloud controller fabric'), ('nova-consoleauth', u'Cloud controller fabric'), ('nova-dhcpbridge', u'Cloud controller fabric'), ('nova-manage', u'Cloud controller fabric'), ('nova-network', u'Cloud controller fabric'), ('nova-novncproxy', u'Cloud controller fabric'), ('nova-spicehtml5proxy', u'Cloud controller fabric'), ('nova-serialproxy', u'Cloud controller fabric'), ('nova-rootwrap', u'Cloud controller fabric'), ('nova-scheduler', u'Cloud controller fabric'), ('nova-xvpvncproxy', u'Cloud controller fabric'), ('nova-conductor', u'Cloud controller fabric'), ] man_pages = [ ('cli/%s' % name, name, description, [u'OpenStack'], 1) for name, description in _man_pages] # -- Options for HTML output -------------------------------------------------- # The theme to use for HTML and HTML Help pages. Major themes that come with # Sphinx are currently 'default' and 'sphinxdoc'. html_theme = 'openstackdocs' # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". html_static_path = ['_static'] # Add any paths that contain "extra" files, such as .htaccess or # robots.txt. html_extra_path = ['_extra'] # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # using the given strftime format. html_last_updated_fmt = '%Y-%m-%d %H:%M' # Disable smartquotes to ensure all quoted example config options can be copied # from the docs without later causing unicode errors within Nova. html_use_smartypants = False # -- Options for LaTeX output ------------------------------------------------- # Grouping the document tree into LaTeX files. List of tuples # (source start file, target name, title, author, documentclass # [howto/manual]). latex_documents = [ ('index', 'Nova.tex', u'Nova Documentation', u'OpenStack Foundation', 'manual'), ] # -- Custom extensions -------------------------------------------------------- def monkey_patch_blockdiag(): """Monkey patch the blockdiag library. The default word wrapping in blockdiag is poor, and breaks on a fixed text width rather than on word boundaries. There's a patch submitted to resolve this [1]_ but it's unlikely to merge anytime soon. TODO: Remove this once blockdiag is bumped to 1.6, which will hopefully include the fix. .. [1] https://bitbucket.org/blockdiag/blockdiag/pull-requests/16/ """ from blockdiag.imagedraw import textfolder def splitlabel(text): """Split text to lines as generator. Every line will be stripped. If text includes characters "\n\n", treat as line separator. Ignore '\n' to allow line wrapping. """ lines = [x.strip() for x in text.splitlines()] out = [] for line in lines: if line: out.append(line) else: yield ' '.join(out) out = [] yield ' '.join(out) def splittext(metrics, text, bound, measure='width'): folded = [' '] for word in text.split(): # Try appending the word to the last line tryline = ' '.join([folded[-1], word]).strip() textsize = metrics.textsize(tryline) if getattr(textsize, measure) > bound: # Start a new line. Appends `word` even if > bound. folded.append(word) else: folded[-1] = tryline return folded # monkey patch those babies textfolder.splitlabel = splitlabel textfolder.splittext = splittext monkey_patch_blockdiag() nova-17.0.13/doc/source/user/0000775000175000017500000000000013556316574015712 5ustar zuulzuul00000000000000nova-17.0.13/doc/source/user/cells.rst0000664000175000017500000006650113556316250017545 0ustar zuulzuul00000000000000.. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. .. _cells: ======= Cells ======= Before reading further, there is a nice overview presentation_ that Andrew Laski gave at the Austin (Newton) summit which is worth watching. .. _presentation: https://www.openstack.org/videos/video/nova-cells-v2-whats-going-on Cells V1 ======== Historically, Nova has depended on a single logical database and message queue that all nodes depend on for communication and data persistence. This becomes an issue for deployers as scaling and providing fault tolerance for these systems is difficult. We have an experimental feature in Nova called "cells", hereafter referred to as "cells v1", which is used by some large deployments to partition compute nodes into smaller groups, coupled with a database and queue. This seems to be a well-liked and easy-to-understand arrangement of resources, but the implementation of it has issues for maintenance and correctness. See `Comparison with Cells V1`_ for more detail. Status ~~~~~~ .. warning:: Cells v1 is deprecated in favor of Cells v2 as of the 16.0.0 Pike release. Cells v1 is considered experimental and receives much less testing than the rest of Nova. For example, there is no job for testing cells v1 with Neutron. The priority for the core team is implementation of and migration to cells v2. Because of this, there are a few restrictions placed on cells v1: #. Cells v1 is in feature freeze. This means no new feature proposals for cells v1 will be accepted by the core team, which includes but is not limited to API parity, e.g. supporting virtual interface attach/detach with Neutron. #. Latent bugs caused by the cells v1 design will not be fixed, e.g. `bug 1489581 `_. So if new tests are added to Tempest which trigger a latent bug in cells v1 it may not be fixed. However, regressions in working function should be tracked with bugs and fixed. **Suffice it to say, new deployments of cells v1 are not encouraged.** The restrictions above are basically meant to prioritize effort and focus on getting cells v2 completed, and feature requests and hard to fix latent bugs detract from that effort. Further discussion on this can be found in the `2015/11/12 Nova meeting minutes `_. There are no plans to remove Cells V1 until V2 is usable by existing deployments and there is a migration path. .. _cells-v2: Cells V2 ======== * `Newton Summit Video - Nova Cells V2: What's Going On? `_ * `Pike Summit Video - Scaling Nova: How CellsV2 Affects Your Deployment `_ * `Queens Summit Video - Add Cellsv2 to your existing Nova deployment `_ Manifesto ~~~~~~~~~ Proposal -------- Right now, when a request hits the Nova API for a particular instance, the instance information is fetched from the database, which contains the hostname of the compute node on which the instance currently lives. If the request needs to take action on the instance (which is most of them), the hostname is used to calculate the name of a queue, and a message is written there which finds its way to the proper compute node. The meat of this proposal is changing the above hostname lookup into two parts that yield three pieces of information instead of one. Basically, instead of merely looking up the *name* of the compute node on which an instance lives, we will also obtain database and queue connection information. Thus, when asked to take action on instance $foo, we will: 1. Lookup the three-tuple of (database, queue, hostname) for that instance 2. Connect to that database and fetch the instance record 3. Connect to the queue and send the message to the proper hostname queue The above differs from the current organization in two ways. First, we need to do two database lookups before we know where the instance lives. Second, we need to demand-connect to the appropriate database and queue. Both of these have performance implications, but we believe we can mitigate the impacts through the use of things like a memcache of instance mapping information and pooling of connections to database and queue systems. The number of cells will always be much smaller than the number of instances. There are availability implications with this change since something like a 'nova list' which might query multiple cells could end up with a partial result if there is a database failure in a cell. A database failure within a cell would cause larger issues than a partial list result so the expectation is that it would be addressed quickly and cellsv2 will handle it by indicating in the response that the data may not be complete. Since this is very similar to what we have with current cells, in terms of organization of resources, we have decided to call this "cellsv2" for disambiguation. After this work is complete there will no longer be a "no cells" deployment. The default installation of Nova will be a single cell setup. Benefits -------- The benefits of this new organization are: * Native sharding of the database and queue as a first-class-feature in nova. All of the code paths will go through the lookup procedure and thus we won't have the same feature parity issues as we do with current cells. * No high-level replication of all the cell databases at the top. The API will need a database of its own for things like the instance index, but it will not need to replicate all the data at the top level. * It draws a clear line between global and local data elements. Things like flavors and keypairs are clearly global concepts that need only live at the top level. Providing this separation allows compute nodes to become even more stateless and insulated from things like deleted/changed global data. * Existing non-cells users will suddenly gain the ability to spawn a new "cell" from their existing deployment without changing their architecture. Simply adding information about the new database and queue systems to the new index will allow them to consume those resources. * Existing cells users will need to fill out the cells mapping index, shutdown their existing cells synchronization service, and ultimately clean up their top level database. However, since the high-level organization is not substantially different, they will not have to re-architect their systems to move to cellsv2. * Adding new sets of hosts as a new "cell" allows them to be plugged into a deployment and tested before allowing builds to be scheduled to them. Comparison with Cells V1 ------------------------ In reality, the proposed organization is nearly the same as what we currently have in cells today. A cell mostly consists of a database, queue, and set of compute nodes. The primary difference is that current cells require a nova-cells service that synchronizes information up and down from the top level to the child cell. Additionally, there are alternate code paths in compute/api.py which handle routing messages to cells instead of directly down to a compute host. Both of these differences are relevant to why we have a hard time achieving feature and test parity with regular nova (because many things take an alternate path with cells) and why it's hard to understand what is going on (all the extra synchronization of data). The new proposed cellsv2 organization avoids both of these problems by letting things live where they should, teaching nova to natively find the right db, queue, and compute node to handle a given request. Database split ~~~~~~~~~~~~~~ As mentioned above there is a split between global data and data that is local to a cell. The following is a breakdown of what data can uncontroversially considered global versus local to a cell. Missing data will be filled in as consensus is reached on the data that is more difficult to cleanly place. The missing data is mostly concerned with scheduling and networking. Global (API-level) Tables ------------------------- instance_types instance_type_projects instance_type_extra_specs quotas project_user_quotas quota_classes quota_usages security_groups security_group_rules security_group_default_rules provider_fw_rules key_pairs migrations networks tags Cell-level Tables ----------------- instances instance_info_caches instance_extra instance_metadata instance_system_metadata instance_faults instance_actions instance_actions_events instance_id_mappings pci_devices block_device_mapping virtual_interfaces Setup of Cells V2 ================= Overview ~~~~~~~~ As more of the CellsV2 implementation is finished, all operators are required to make changes to their deployment. For all deployments (even those that only intend to have one cell), these changes are configuration-related, both in the main nova configuration file as well as some extra records in the databases. All nova deployments must now have the following databases available and configured: 1. The "API" database 2. One special "cell" database called "cell0" 3. One (or eventually more) "cell" databases Thus, a small nova deployment will have an API database, a cell0, and what we will call here a "cell1" database. High-level tracking information is kept in the API database. Instances that are never scheduled are relegated to the cell0 database, which is effectively a graveyard of instances that failed to start. All successful/running instances are stored in "cell1". First Time Setup ~~~~~~~~~~~~~~~~ Since there is only one API database, the connection information for it is stored in the nova.conf file. :: [api_database] connection = mysql+pymysql://root:secretmysql@dbserver/nova_api?charset=utf8 Since there may be multiple "cell" databases (and in fact everyone will have cell0 and cell1 at a minimum), connection info for these is stored in the API database. Thus, you must have connection information in your config file for the API database before continuing to the steps below, so that `nova-manage` can find your other databases. The following examples show the full expanded command line usage of the setup commands. This is to make it easier to visualize which of the various URLs are used by each of the commands. However, you should be able to put all of that in the config file and `nova-manage` will use those values. If need be, you can create separate config files and pass them as `nova-manage --config-file foo.conf` to control the behavior without specifying things on the command lines. The commands below use the API database so remember to run `nova-manage api_db sync` first. First we will create the necessary records for the cell0 database. To do that we use `nova-manage` like this:: nova-manage cell_v2 map_cell0 --database_connection \ mysql+pymysql://root:secretmysql@dbserver/nova_cell0?charset=utf8 .. note:: If you don't specify `--database_connection` then `nova-manage` will use the `[database]/connection` value from your config file, and mangle the database name to have a `_cell0` suffix. .. warning:: If your databases are on separate hosts then you should specify `--database_connection` or make certain that the nova.conf being used has the `[database]/connection` value pointing to the same user/password/host that will work for the cell0 database. If the cell0 mapping was created incorrectly, it can be deleted using the `nova-manage cell_v2 delete_cell` command and then run `map_cell0` again with the proper database connection value. Since no hosts are ever in cell0, nothing further is required for its setup. Note that all deployments only ever have one cell0, as it is special, so once you have done this step you never need to do it again, even if you add more regular cells. Now, we must create another cell which will be our first "regular" cell, which has actual compute hosts in it, and to which instances can actually be scheduled. First, we create the cell record like this:: nova-manage cell_v2 create_cell --verbose --name cell1 \ --database_connection mysql+pymysql://root:secretmysql@127.0.0.1/nova?charset=utf8 --transport-url rabbit://stackrabbit:secretrabbit@mqserver:5672/ .. note:: If you don't specify the database and transport urls then `nova-manage` will use the `[database]/connection` and `[DEFAULT]/transport_url` values from the config file. .. note:: At this point, the API database can now find the cell database, and further commands will attempt to look inside. If this is a completely fresh database (such as if you're adding a cell, or if this is a new deployment), then you will need to run `nova-manage db sync` on it to initialize the schema. The `nova-manage cell_v2 create_cell` command will print the UUID of the newly-created cell if `--verbose` is passed, which is useful if you need to run commands like `discover_hosts` targeted at a specific cell. Now we have a cell, but no hosts are in it which means the scheduler will never actually place instances there. The next step is to scan the database for compute node records and add them into the cell we just created. For this step, you must have had a compute node started such that it registers itself as a running service. Once that has happened, you can scan and add it to the cell:: nova-manage cell_v2 discover_hosts This command will connect to any databases for which you have created cells (as above), look for hosts that have registered themselves there, and map those hosts in the API database so that they are visible to the scheduler as available targets for instances. Any time you add more compute hosts to a cell, you need to re-run this command to map them from the top-level so they can be utilized. References ~~~~~~~~~~ * :doc:`nova-manage man page ` Step-By-Step for Common Use Cases ================================= The following are step-by-step examples for common use cases setting up Cells V2. This is intended as a quick reference that puts together everything explained in `Setup of Cells V2`_. It is assumed that you have followed all other install steps for Nova and are setting up Cells V2 specifically at this point. Fresh Install ~~~~~~~~~~~~~ You are installing Nova for the first time and have no compute hosts in the database yet. This will set up a single cell Nova deployment. 1. Reminder: You should have already created and synced the Nova API database by creating a database, configuring its connection in the ``[api_database]/connection`` setting in the Nova configuration file, and running ``nova-manage api_db sync``. 2. Create a database for cell0. If you are going to pass the database connection url on the command line in step 3, you can name the cell0 database whatever you want. If you are not going to pass the database url on the command line in step 3, you need to name the cell0 database based on the name of your existing Nova database: _cell0. For example, if your Nova database is named ``nova``, then your cell0 database should be named ``nova_cell0``. 3. Run the ``map_cell0`` command to create and map cell0:: nova-manage cell_v2 map_cell0 \ --database_connection The database connection url is generated based on the ``[database]/connection`` setting in the Nova configuration file if not specified on the command line. 4. Run ``nova-manage db sync`` to populate the cell0 database with a schema. The ``db sync`` command reads the database connection for cell0 that was created in step 3. 5. Run the ``create_cell`` command to create the single cell which will contain your compute hosts:: nova-manage cell_v2 create_cell --name \ --transport-url \ --database_connection The transport url is taken from the ``[DEFAULT]/transport_url`` setting in the Nova configuration file if not specified on the command line. The database url is taken from the ``[database]/connection`` setting in the Nova configuration file if not specified on the command line. 6. Configure your compute host(s), making sure ``[DEFAULT]/transport_url`` matches the transport URL for the cell created in step 5, and start the nova-compute service. Before step 7, make sure you have compute hosts in the database by running:: nova service-list --binary nova-compute 7. Run the ``discover_hosts`` command to map compute hosts to the single cell by running:: nova-manage cell_v2 discover_hosts The command will search for compute hosts in the database of the cell you created in step 5 and map them to the cell. You can also configure a periodic task to have Nova discover new hosts automatically by setting the ``[scheduler]/discover_hosts_in_cells_interval`` to a time interval in seconds. The periodic task is run by the nova-scheduler service, so you must be sure to configure it on all of your nova-scheduler hosts. .. note:: Remember: In the future, whenever you add new compute hosts, you will need to run the ``discover_hosts`` command after starting them to map them to the cell if you did not configure the automatic host discovery in step 7. Upgrade (minimal) ~~~~~~~~~~~~~~~~~ You are upgrading an existing Nova install and have compute hosts in the database. This will set up a single cell Nova deployment. 1. If you haven't already created a cell0 database in a prior release, create a database for cell0 with a name based on the name of your Nova database: _cell0. If your Nova database is named ``nova``, then your cell0 database should be named ``nova_cell0``. .. warning:: In Newton, the ``simple_cell_setup`` command expects the name of the cell0 database to be based on the name of the Nova API database: _cell0 and the database connection url is taken from the ``[api_database]/connection`` setting in the Nova configuration file. 2. Run the ``simple_cell_setup`` command to create and map cell0, create and map the single cell, and map existing compute hosts and instances to the single cell:: nova-manage cell_v2 simple_cell_setup \ --transport-url The transport url is taken from the ``[DEFAULT]/transport_url`` setting in the Nova configuration file if not specified on the command line. The database connection url will be generated based on the ``[database]/connection`` setting in the Nova configuration file. .. note:: Remember: In the future, whenever you add new compute hosts, you will need to run the ``discover_hosts`` command after starting them to map them to the cell. You can also configure a periodic task to have Nova discover new hosts automatically by setting the ``[scheduler]/discover_hosts_in_cells_interval`` to a time interval in seconds. The periodic task is run by the nova-scheduler service, so you must be sure to configure it on all of your nova-scheduler hosts. Upgrade with Cells V1 ~~~~~~~~~~~~~~~~~~~~~ You are upgrading an existing Nova install that has Cells V1 enabled and have compute hosts in your databases. This will set up a multiple cell Nova deployment. At this time, it is recommended to keep Cells V1 enabled during and after the upgrade as multiple Cells V2 cell support is not fully finished and may not work properly in all scenarios. These upgrade steps will help ensure a simple cutover from Cells V1 to Cells V2 in the future. 1. If you haven't already created a cell0 database in a prior release, create a database for cell0. If you are going to pass the database connection url on the command line in step 2, you can name the cell0 database whatever you want. If you are not going to pass the database url on the command line in step 2, you need to name the cell0 database based on the name of your existing Nova database: _cell0. For example, if your Nova database is named ``nova``, then your cell0 database should be named ``nova_cell0``. 2. Run the ``map_cell0`` command to create and map cell0:: nova-manage cell_v2 map_cell0 \ --database_connection The database connection url is generated based on the ``[database]/connection`` setting in the Nova configuration file if not specified on the command line. 3. Run ``nova-manage db sync`` to populate the cell0 database with a schema. The ``db sync`` command reads the database connection for cell0 that was created in step 2. 4. Run the ``create_cell`` command to create cells which will contain your compute hosts:: nova-manage cell_v2 create_cell --name \ --transport-url \ --database_connection You will need to repeat this step for each cell in your deployment. Your existing cell database will be re-used -- this simply informs the top-level API database about your existing cell databases. It is a good idea to specify a name for the new cell you create so you can easily look up cell uuids with the ``list_cells`` command later if needed. The transport url is taken from the ``[DEFAULT]/transport_url`` setting in the Nova configuration file if not specified on the command line. The database url is taken from the ``[database]/connection`` setting in the Nova configuration file if not specified on the command line. If you are not going to specify ``--database_connection`` and ``--transport-url`` on the command line, be sure to specify your existing cell Nova configuration file:: nova-manage --config-file cell_v2 create_cell \ --name 5. Run the ``discover_hosts`` command to map compute hosts to cells:: nova-manage cell_v2 discover_hosts --cell_uuid You will need to repeat this step for each cell in your deployment unless you omit the ``--cell_uuid`` option. If the cell uuid is not specified on the command line, ``discover_hosts`` will search for compute hosts in each cell database and map them to the corresponding cell. You can use the ``list_cells`` command to look up cell uuids if you are going to specify ``--cell_uuid``. You can also configure a periodic task to have Nova discover new hosts automatically by setting the ``[scheduler]/discover_hosts_in_cells_interval`` to a time interval in seconds. The periodic task is run by the nova-scheduler service, so you must be sure to configure it on all of your nova-scheduler hosts. 6. Run the ``map_instances`` command to map instances to cells:: nova-manage cell_v2 map_instances --cell_uuid \ --max-count You will need to repeat this step for each cell in your deployment. You can use the ``list_cells`` command to look up cell uuids. The ``--max-count`` option can be specified if you would like to limit the number of instances to map in a single run. If ``--max-count`` is not specified, all instances will be mapped. Repeated runs of the command will start from where the last run finished so it is not necessary to increase ``--max-count`` to finish. An exit code of 0 indicates that all instances have been mapped. An exit code of 1 indicates that there are remaining instances that need to be mapped. .. note:: Remember: In the future, whenever you add new compute hosts, you will need to run the ``discover_hosts`` command after starting them to map them to a cell if you did not configure the automatic host discovery in step 5. Adding a new cell to an existing deployment ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ To expand your deployment with a new cell, first follow the usual steps for standing up a new Cells V1 cell. After that is finished, follow step 4 in `Upgrade with Cells V1`_ to create a new Cells V2 cell for it. If you have added new compute hosts for the new cell, you will also need to run the ``discover_hosts`` command after starting them to map them to the new cell if you did not configure the automatic host discovery as described in step 5 in `Upgrade with Cells V1`_. References ~~~~~~~~~~ * :doc:`nova-manage man page ` FAQs ==== #. How do I find out which hosts are bound to which cell? There are a couple of ways to do this. 1. Run ``nova-manage --config-file host list``. This will only lists hosts in the provided cell nova.conf. Note, however, that this command is deprecated as of the 16.0.0 Pike release. 2. Run ``nova-manage cell_v2 discover_hosts --verbose``. This does not produce a report but if you are trying to determine if a host is in a cell you can run this and it will report any hosts that are not yet mapped to a cell and map them. This command is idempotent. 3. Run ``nova-manage cell_v2 list_hosts``. This will list hosts in all cells. If you want to list hosts in a specific cell, you can run ``nova-manage cell_v2 list_hosts --cell_uuid ``. #. I updated the database_connection and/or transport_url in a cell using the ``nova-manage cell_v2 update_cell`` command but the API is still trying to use the old settings. The cell mappings are cached in the nova-api service worker so you will need to restart the worker process to rebuild the cache. Note that there is another global cache tied to request contexts, which is used in the nova-conductor and nova-scheduler services, so you might need to do the same if you are having the same issue in those services. As of the 16.0.0 Pike release there is no timer on the cache or hook to refresh the cache using a SIGHUP to the service. #. I have upgraded from Newton to Ocata and I can list instances but I get a 404 NotFound error when I try to get details on a specific instance. Instances need to be mapped to cells so the API knows which cell an instance lives in. When upgrading, the ``nova-manage cell_v2 simple_cell_setup`` command will automatically map the instances to the single cell which is backed by the existing nova database. If you have already upgraded and did not use the ``simple_cell_setup`` command, you can run the ``nova-manage cell_v2 map_instances --cell_uuid `` command to map all instances in the given cell. See the :ref:`man-page-cells-v2` man page for details on command usage. #. Should I change any of the ``[cells]`` configuration options for Cells v2? **NO**. Those options are for Cells v1 usage only and are not used at all for Cells v2. That includes the ``nova-cells`` service - it has nothing to do with Cells v2. nova-17.0.13/doc/source/user/support-matrix.rst0000664000175000017500000000361413556316250021455 0ustar zuulzuul00000000000000 Feature Support Matrix ====================== .. warning:: Please note, while this document is still being maintained, this is slowly being updated to re-group and classify features using the definitions described in here: :doc:`feature-classification` When considering which capabilities should be marked as mandatory the following general guiding principles were applied * **Inclusivity** - people have shown ability to make effective use of a wide range of virtualization technologies with broadly varying featuresets. Aiming to keep the requirements as inclusive as possible, avoids second-guessing what a user may wish to use the cloud compute service for. * **Bootstrapping** - a practical use case test is to consider that starting point for the compute deploy is an empty data center with new machines and network connectivity. The look at what are the minimum features required of a compute service, in order to get user instances running and processing work over the network. * **Competition** - an early leader in the cloud compute service space was Amazon EC2. A sanity check for whether a feature should be mandatory is to consider whether it was available in the first public release of EC2. This had quite a narrow featureset, but none the less found very high usage in many use cases. So it serves to illustrate that many features need not be considered mandatory in order to get useful work done. * **Reality** - there are many virt drivers currently shipped with Nova, each with their own supported feature set. Any feature which is missing in at least one virt driver that is already in-tree, must by inference be considered optional until all in-tree drivers support it. This does not rule out the possibility of a currently optional feature becoming mandatory at a later date, based on other principles above. .. support_matrix:: support-matrix.ini nova-17.0.13/doc/source/user/config-drive.rst0000664000175000017500000002461013556316250021012 0ustar zuulzuul00000000000000======================================= Store metadata on a configuration drive ======================================= You can configure OpenStack to write metadata to a special configuration drive that attaches to the instance when it boots. The instance can mount this drive and read files from it to get information that is normally available through the :ref:`metadata service `. This metadata is different from the user data. One use case for using the configuration drive is to pass a networking configuration when you do not use DHCP to assign IP addresses to instances. For example, you might pass the IP address configuration for the instance through the configuration drive, which the instance can mount and access before you configure the network settings for the instance. Any modern guest operating system that is capable of mounting an ISO 9660 or VFAT file system can use the configuration drive. Requirements and guidelines ~~~~~~~~~~~~~~~~~~~~~~~~~~~ To use the configuration drive, you must follow the following requirements for the compute host and image. **Compute host requirements** - The following hypervisors support the configuration drive: libvirt, XenServer, Hyper-V, and VMware. Also, the Bare Metal service supports the configuration drive. - To use configuration drive with libvirt, XenServer, or VMware, you must first install the genisoimage package on each compute host. Otherwise, instances do not boot properly. Use the ``mkisofs_cmd`` flag to set the path where you install the genisoimage program. If genisoimage is in same path as the ``nova-compute`` service, you do not need to set this flag. - To use configuration drive with Hyper-V, you must set the ``mkisofs_cmd`` value to the full path to an ``mkisofs.exe`` installation. Additionally, you must set the ``qemu_img_cmd`` value in the ``hyperv`` configuration section to the full path to an :command:`qemu-img` command installation. - To use configuration drive with the Bare Metal service, you do not need to prepare anything because the Bare Metal service treats the configuration drive properly. **Image requirements** - An image built with a recent version of the cloud-init package can automatically access metadata passed through the configuration drive. The cloud-init package version 0.7.1 works with Ubuntu, Fedora based images (such as Red Hat Enterprise Linux) and openSUSE based images (such as SUSE Linux Enterprise Server). - If an image does not have the cloud-init package installed, you must customize the image to run a script that mounts the configuration drive on boot, reads the data from the drive, and takes appropriate action such as adding the public key to an account. You can read more details about how data is organized on the configuration drive. - If you use Xen with a configuration drive, use the ``xenapi_disable_agent`` configuration parameter to disable the agent. **Guidelines** - Do not rely on the presence of the EC2 metadata in the configuration drive, because this content might be removed in a future release. For example, do not rely on files in the ``ec2`` directory. - When you create images that access configuration drive data and multiple directories are under the ``openstack`` directory, always select the highest API version by date that your consumer supports. For example, if your guest image supports the 2012-03-05, 2012-08-05, and 2013-04-13 versions, try 2013-04-13 first and fall back to a previous version if 2013-04-13 is not present. Enable and access the configuration drive ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #. To enable the configuration drive, pass the ``--config-drive true`` parameter to the :command:`openstack server create` command. The following example enables the configuration drive and passes user data, two files, and two key/value metadata pairs, all of which are accessible from the configuration drive: .. code-block:: console $ openstack server create --config-drive true --image my-image-name \ --flavor 1 --key-name mykey --user-data ./my-user-data.txt \ --file /etc/network/interfaces=/home/myuser/instance-interfaces \ --file known_hosts=/home/myuser/.ssh/known_hosts \ --property role=webservers --property essential=false MYINSTANCE You can also configure the Compute service to always create a configuration drive by setting the following option in the ``/etc/nova/nova.conf`` file: .. code-block:: console force_config_drive = true .. note:: If a user passes the ``--config-drive true`` flag to the :command:`nova boot` command, an administrator cannot disable the configuration drive. #. If your guest operating system supports accessing disk by label, you can mount the configuration drive as the ``/dev/disk/by-label/configurationDriveVolumeLabel`` device. In the following example, the configuration drive has the ``config-2`` volume label: .. code-block:: console # mkdir -p /mnt/config # mount /dev/disk/by-label/config-2 /mnt/config .. note:: Ensure that you use at least version 0.3.1 of CirrOS for configuration drive support. If your guest operating system does not use ``udev``, the ``/dev/disk/by-label`` directory is not present. You can use the :command:`blkid` command to identify the block device that corresponds to the configuration drive. For example, when you boot the CirrOS image with the ``m1.tiny`` flavor, the device is ``/dev/vdb``: .. code-block:: console # blkid -t LABEL="config-2" -odevice .. code-block:: console /dev/vdb Once identified, you can mount the device: .. code-block:: console # mkdir -p /mnt/config # mount /dev/vdb /mnt/config Configuration drive contents ---------------------------- In this example, the contents of the configuration drive are as follows:: ec2/2009-04-04/meta-data.json ec2/2009-04-04/user-data ec2/latest/meta-data.json ec2/latest/user-data openstack/2012-08-10/meta_data.json openstack/2012-08-10/user_data openstack/content openstack/content/0000 openstack/content/0001 openstack/latest/meta_data.json openstack/latest/user_data The files that appear on the configuration drive depend on the arguments that you pass to the :command:`openstack server create` command. OpenStack metadata format ------------------------- The following example shows the contents of the ``openstack/2012-08-10/meta_data.json`` and ``openstack/latest/meta_data.json`` files. These files are identical. The file contents are formatted for readability. .. code-block:: json { "availability_zone": "nova", "files": [ { "content_path": "/content/0000", "path": "/etc/network/interfaces" }, { "content_path": "/content/0001", "path": "known_hosts" } ], "hostname": "test.novalocal", "launch_index": 0, "name": "test", "meta": { "role": "webservers", "essential": "false" }, "public_keys": { "mykey": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQDBqUfVvCSez0/Wfpd8dLLgZXV9GtXQ7hnMN+Z0OWQUyebVEHey1CXuin0uY1cAJMhUq8j98SiW+cU0sU4J3x5l2+xi1bodDm1BtFWVeLIOQINpfV1n8fKjHB+ynPpe1F6tMDvrFGUlJs44t30BrujMXBe8Rq44cCk6wqyjATA3rQ== Generated by Nova\n" }, "uuid": "83679162-1378-4288-a2d4-70e13ec132aa" } Note the effect of the ``--file /etc/network/interfaces=/home/myuser/instance-interfaces`` argument that was passed to the :command:`openstack server create` command. The contents of this file are contained in the ``openstack/content/0000`` file on the configuration drive, and the path is specified as ``/etc/network/interfaces`` in the ``meta_data.json`` file. EC2 metadata format ------------------- The following example shows the contents of the ``ec2/2009-04-04/meta-data.json`` and the ``ec2/latest/meta-data.json`` files. These files are identical. The file contents are formatted to improve readability. .. code-block:: json { "ami-id": "ami-00000001", "ami-launch-index": 0, "ami-manifest-path": "FIXME", "block-device-mapping": { "ami": "sda1", "ephemeral0": "sda2", "root": "/dev/sda1", "swap": "sda3" }, "hostname": "test.novalocal", "instance-action": "none", "instance-id": "i-00000001", "instance-type": "m1.tiny", "kernel-id": "aki-00000002", "local-hostname": "test.novalocal", "local-ipv4": null, "placement": { "availability-zone": "nova" }, "public-hostname": "test.novalocal", "public-ipv4": "", "public-keys": { "0": { "openssh-key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQDBqUfVvCSez0/Wfpd8dLLgZXV9GtXQ7hnMN+Z0OWQUyebVEHey1CXuin0uY1cAJMhUq8j98SiW+cU0sU4J3x5l2+xi1bodDm1BtFWVeLIOQINpfV1n8fKjHB+ynPpe1F6tMDvrFGUlJs44t30BrujMXBe8Rq44cCk6wqyjATA3rQ== Generated by Nova\n" } }, "ramdisk-id": "ari-00000003", "reservation-id": "r-7lfps8wj", "security-groups": [ "default" ] } User data --------- The ``openstack/2012-08-10/user_data``, ``openstack/latest/user_data``, ``ec2/2009-04-04/user-data``, and ``ec2/latest/user-data`` file are present only if the ``--user-data`` flag and the contents of the user data file are passed to the :command:`openstack server create` command. Configuration drive format -------------------------- The default format of the configuration drive as an ISO 9660 file system. To explicitly specify the ISO 9660 format, add the following line to the ``/etc/nova/nova.conf`` file: .. code-block:: console config_drive_format=iso9660 By default, you cannot attach the configuration drive image as a CD drive instead of as a disk drive. To attach a CD drive, add the following line to the ``/etc/nova/nova.conf`` file: .. code-block:: console config_drive_cdrom=true For legacy reasons, you can configure the configuration drive to use VFAT format instead of ISO 9660. It is unlikely that you would require VFAT format because ISO 9660 is widely supported across operating systems. However, to use the VFAT format, add the following line to the ``/etc/nova/nova.conf`` file: .. code-block:: console config_drive_format=vfat If you choose VFAT, the configuration drive is 64 MB. nova-17.0.13/doc/source/user/support-matrix.ini0000664000175000017500000014662013556316250021431 0ustar zuulzuul00000000000000# Copyright (C) 2014 Red Hat, Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # # # # ========================================= # Nova Hypervisor Feature Capability Matrix # ========================================= # # This obsoletes the information previously at # # https://wiki.openstack.org/wiki/HypervisorSupportMatrix # # This file contains a specification of what feature capabilities each # hypervisor driver in Nova is able to support. Feature capabilities include # what API operations are supported, what storage / networking features can be # used and what aspects of the guest machine can be configured. The capabilities # can be considered to be structured into nested groups, but in this file they # have been flattened for ease of representation. The section names represent # the group structure. At the top level there are the following groups defined # # - operation - public API operations # - storage - host storage configuration options # - networking - host networking configuration options # - guest - guest hardware configuration options # # When considering which capabilities should be marked as mandatory, # consider the general guiding principles listed in the support-matrix.rst # file # # The 'status' field takes possible values # # - mandatory - unconditionally required to be implemented # - optional - optional to support, nice to have # - choice(group) - at least one of the options within the named group # must be implemented # - conditional(cond) - required, if the referenced condition is met. # # The value against each 'driver-impl-XXXX' entry refers to the level # of the implementation of the feature in that driver # # - complete - fully implemented, expected to work at all times # - partial - implemented, but with caveats about when it will work # eg some configurations or hardware or guest OS may not # support it # - missing - not implemented at all # # In the case of the driver being marked as 'partial', then # 'driver-notes-XXX' entry should be used to explain the caveats # around the implementation. # # The 'cli' field takes a list of nova client commands, separated by semicolon. # These CLi commands are related to that feature. # Example: # cli=nova list;nova show # [targets] # List of driver impls we are going to record info for later # This list only covers drivers that are in the Nova source # tree. Out of tree drivers should maintain their own equivalent # document, and merge it with this when their code merges into # Nova core. driver-impl-xenserver=XenServer driver-impl-libvirt-kvm-x86=Libvirt KVM (x86) driver-impl-libvirt-kvm-ppc64=Libvirt KVM (ppc64) driver-impl-libvirt-kvm-s390x=Libvirt KVM (s390x) driver-impl-libvirt-qemu-x86=Libvirt QEMU (x86) driver-impl-libvirt-lxc=Libvirt LXC driver-impl-libvirt-xen=Libvirt Xen driver-impl-libvirt-vz-vm=Libvirt Virtuozzo VM driver-impl-libvirt-vz-ct=Libvirt Virtuozzo CT driver-impl-vmware=VMware vCenter driver-impl-hyperv=Hyper-V driver-impl-ironic=Ironic driver-impl-powervm=PowerVM [operation.attach-volume] title=Attach block volume to instance status=optional notes=The attach volume operation provides a means to hotplug additional block storage to a running instance. This allows storage capabilities to be expanded without interruption of service. In a cloud model it would be more typical to just spin up a new instance with large storage, so the ability to hotplug extra storage is for those cases where the instance is considered to be more of a pet than cattle. Therefore this operation is not considered to be mandatory to support. cli=nova volume-attach driver-impl-xenserver=complete driver-impl-libvirt-kvm-x86=complete driver-impl-libvirt-kvm-ppc64=complete driver-impl-libvirt-kvm-s390x=complete driver-impl-libvirt-qemu-x86=complete driver-impl-libvirt-lxc=missing driver-impl-libvirt-xen=complete driver-impl-vmware=complete driver-impl-hyperv=complete driver-impl-ironic=missing driver-impl-libvirt-vz-vm=complete driver-impl-libvirt-vz-ct=missing driver-impl-powervm=missing [operation.attach-tagged-volume] title=Attach tagged block device to instance status=optional notes=Attach a block device with a tag to an existing server instance. See "Device tags" for more information. cli=nova volume-attach [--tag ] driver-impl-xenserver=missing driver-impl-libvirt-kvm-x86=complete driver-impl-libvirt-kvm-ppc64=complete driver-impl-libvirt-kvm-s390x=complete driver-impl-libvirt-qemu-x86=complete driver-impl-libvirt-lxc=missing driver-impl-libvirt-xen=complete driver-impl-vmware=missing driver-impl-hyperv=missing driver-impl-ironic=missing driver-impl-libvirt-vz-vm=complete driver-impl-libvirt-vz-ct=missing driver-impl-powervm=missing [operation.detach-volume] title=Detach block volume from instance status=optional notes=See notes for attach volume operation. cli=nova volume-detach driver-impl-xenserver=complete driver-impl-libvirt-kvm-x86=complete driver-impl-libvirt-kvm-ppc64=complete driver-impl-libvirt-kvm-s390x=complete driver-impl-libvirt-qemu-x86=complete driver-impl-libvirt-lxc=missing driver-impl-libvirt-xen=complete driver-impl-vmware=complete driver-impl-hyperv=complete driver-impl-ironic=missing driver-impl-libvirt-vz-vm=complete driver-impl-libvirt-vz-ct=missing driver-impl-powervm=missing [operation.extend-volume] title=Extend block volume attached to instance status=optional notes=The extend volume operation provides a means to extend the size of an attached volume. This allows volume size to be expanded without interruption of service. In a cloud model it would be more typical to just spin up a new instance with large storage, so the ability to extend the size of an attached volume is for those cases where the instance is considered to be more of a pet than cattle. Therefore this operation is not considered to be mandatory to support. cli=cinder extend driver-impl-xenserver=missing driver-impl-libvirt-kvm-x86=complete driver-impl-libvirt-kvm-ppc64=unknown driver-impl-libvirt-kvm-s390x=unknown driver-impl-libvirt-qemu-x86=complete driver-impl-libvirt-lxc=missing driver-impl-libvirt-xen=unknown driver-impl-vmware=missing driver-impl-hyperv=missing driver-impl-ironic=missing driver-impl-libvirt-vz-vm=unknown driver-impl-libvirt-vz-ct=missing driver-impl-powervm=missing [operation.attach-interface] title=Attach virtual network interface to instance status=optional notes=The attach interface operation provides a means to hotplug additional interfaces to a running instance. Hotplug support varies between guest OSes and some guests require a reboot for new interfaces to be detected. This operation allows interface capabilities to be expanded without interruption of service. In a cloud model it would be more typical to just spin up a new instance with more interfaces. cli=nova interface-attach driver-impl-xenserver=complete driver-impl-libvirt-kvm-x86=complete driver-impl-libvirt-kvm-ppc64=complete driver-impl-libvirt-kvm-s390x=complete driver-impl-libvirt-qemu-x86=complete driver-impl-libvirt-lxc=missing driver-impl-libvirt-xen=complete driver-impl-vmware=complete driver-impl-hyperv=partial driver-notes-hyperv=Works without issue if instance is off. When hotplugging, only works if using Windows/Hyper-V Server 2016 and the instance is a Generation 2 VM. driver-impl-ironic=complete driver-impl-libvirt-vz-vm=complete driver-impl-libvirt-vz-ct=complete driver-impl-powervm=missing [operation.attach-tagged-interface] title=Attach tagged virtual network interface to instance status=optional notes=Attach a virtual network interface with a tag to an existing server instance. See "Device tags" for more information. cli=nova interface-attach [--tag ] driver-impl-xenserver=missing driver-impl-libvirt-kvm-x86=complete driver-impl-libvirt-kvm-ppc64=complete driver-impl-libvirt-kvm-s390x=complete driver-impl-libvirt-qemu-x86=complete driver-impl-libvirt-lxc=missing driver-impl-libvirt-xen=complete driver-impl-vmware=missing driver-impl-hyperv=missing driver-impl-ironic=missing driver-impl-libvirt-vz-vm=complete driver-impl-libvirt-vz-ct=missing driver-impl-powervm=missing [operation.detach-interface] title=Detach virtual network interface from instance status=optional notes=See notes for attach-interface operation. cli=nova interface-detach driver-impl-xenserver=complete driver-impl-libvirt-kvm-x86=complete driver-impl-libvirt-kvm-ppc64=complete driver-impl-libvirt-kvm-s390x=complete driver-impl-libvirt-qemu-x86=complete driver-impl-libvirt-lxc=missing driver-impl-libvirt-xen=complete driver-impl-vmware=complete driver-impl-hyperv=complete driver-notes-hyperv=Works without issue if instance is off. When hotplugging, only works if using Windows/Hyper-V Server 2016 and the instance is a Generation 2 VM. driver-impl-ironic=complete driver-impl-libvirt-vz-vm=complete driver-impl-libvirt-vz-ct=complete driver-impl-powervm=missing [operation.maintenance-mode] title=Set the host in a maintenance mode status=optional notes=This operation allows a host to be placed into maintenance mode, automatically triggering migration of any running instances to an alternative host and preventing new instances from being launched. This is not considered to be a mandatory operation to support. The driver methods to implement are "host_maintenance_mode" and "set_host_enabled". cli=nova host-update driver-impl-xenserver=complete driver-impl-libvirt-kvm-x86=missing driver-impl-libvirt-kvm-ppc64=missing driver-impl-libvirt-kvm-s390x=missing driver-impl-libvirt-qemu-x86=missing driver-impl-libvirt-lxc=missing driver-impl-libvirt-xen=missing driver-impl-vmware=missing driver-impl-hyperv=missing driver-impl-ironic=missing driver-impl-libvirt-vz-vm=missing driver-impl-libvirt-vz-ct=missing driver-impl-powervm=missing [operation.evacuate] title=Evacuate instances from a host status=optional notes=A possible failure scenario in a cloud environment is the outage of one of the compute nodes. In such a case the instances of the down host can be evacuated to another host. It is assumed that the old host is unlikely ever to be powered back on, otherwise the evacuation attempt will be rejected. When the instances get moved to the new host, their volumes get re-attached and the locally stored data is dropped. That happens in the same way as a rebuild. This is not considered to be a mandatory operation to support. cli=nova evacuate ;nova host-evacuate driver-impl-xenserver=unknown driver-impl-libvirt-kvm-x86=complete driver-impl-libvirt-kvm-ppc64=unknown driver-impl-libvirt-kvm-s390x=complete driver-impl-libvirt-qemu-x86=unknown driver-impl-libvirt-lxc=unknown driver-impl-libvirt-xen=unknown driver-impl-vmware=unknown driver-impl-hyperv=unknown driver-impl-ironic=unknown driver-impl-libvirt-vz-vm=missing driver-impl-libvirt-vz-ct=missing driver-impl-powervm=missing [operation.rebuild] title=Rebuild instance status=optional notes=A possible use case is additional attributes need to be set to the instance, nova will purge all existing data from the system and remakes the VM with given information such as 'metadata' and 'personalities'. Though this is not considered to be a mandatory operation to support. cli=nova rebuild driver-impl-xenserver=complete driver-impl-libvirt-kvm-x86=complete driver-impl-libvirt-kvm-ppc64=complete driver-impl-libvirt-kvm-s390x=complete driver-impl-libvirt-qemu-x86=complete driver-impl-libvirt-lxc=complete driver-impl-libvirt-xen=complete driver-impl-vmware=complete driver-impl-hyperv=complete driver-impl-ironic=complete driver-impl-libvirt-vz-vm=complete driver-impl-libvirt-vz-ct=complete driver-impl-powervm=missing [operation.get-guest-info] title=Guest instance status status=mandatory notes=Provides realtime information about the power state of the guest instance. Since the power state is used by the compute manager for tracking changes in guests, this operation is considered mandatory to support. cli= driver-impl-xenserver=complete driver-impl-libvirt-kvm-x86=complete driver-impl-libvirt-kvm-ppc64=complete driver-impl-libvirt-kvm-s390x=complete driver-impl-libvirt-qemu-x86=complete driver-impl-libvirt-lxc=complete driver-impl-libvirt-xen=complete driver-impl-vmware=complete driver-impl-hyperv=complete driver-impl-ironic=complete driver-impl-libvirt-vz-vm=complete driver-impl-libvirt-vz-ct=complete driver-impl-powervm=complete [operation.get-host-uptime] title=Guest host uptime status=optional notes=Returns the result of host uptime since power on, it's used to report hypervisor status. cli= driver-impl-xenserver=complete driver-impl-libvirt-kvm-x86=complete driver-impl-libvirt-kvm-ppc64=complete driver-impl-libvirt-kvm-s390x=complete driver-impl-libvirt-qemu-x86=complete driver-impl-libvirt-lxc=complete driver-impl-libvirt-xen=complete driver-impl-vmware=missing driver-impl-hyperv=complete driver-impl-ironic=missing driver-impl-libvirt-vz-vm=complete driver-impl-libvirt-vz-ct=complete driver-impl-powervm=complete [operation.get-host-ip] title=Guest host ip status=optional notes=Returns the ip of this host, it's used when doing resize and migration. cli= driver-impl-xenserver=complete driver-impl-libvirt-kvm-x86=complete driver-impl-libvirt-kvm-ppc64=complete driver-impl-libvirt-kvm-s390x=complete driver-impl-libvirt-qemu-x86=complete driver-impl-libvirt-lxc=complete driver-impl-libvirt-xen=complete driver-impl-vmware=complete driver-impl-hyperv=complete driver-impl-ironic=missing driver-impl-libvirt-vz-vm=complete driver-impl-libvirt-vz-ct=complete driver-impl-powervm=complete [operation.live-migrate] title=Live migrate instance across hosts status=optional notes=Live migration provides a way to move an instance off one compute host, to another compute host. Administrators may use this to evacuate instances from a host that needs to undergo maintenance tasks, though of course this may not help if the host is already suffering a failure. In general instances are considered cattle rather than pets, so it is expected that an instance is liable to be killed if host maintenance is required. It is technically challenging for some hypervisors to provide support for the live migration operation, particularly those built on the container based virtualization. Therefore this operation is not considered mandatory to support. cli=nova live-migration ;nova host-evacuate-live driver-impl-xenserver=complete driver-impl-libvirt-kvm-x86=complete driver-impl-libvirt-kvm-ppc64=complete driver-impl-libvirt-kvm-s390x=complete driver-impl-libvirt-qemu-x86=complete driver-impl-libvirt-lxc=missing driver-impl-libvirt-xen=complete driver-impl-vmware=missing driver-notes-vmware=https://bugs.launchpad.net/nova/+bug/1192192 driver-impl-hyperv=complete driver-impl-ironic=missing driver-impl-libvirt-vz-vm=complete driver-impl-libvirt-vz-ct=complete driver-impl-powervm=missing [operation.force-live-migration-to-complete] title=Force live migration to complete status=optional notes=Live migration provides a way to move a running instance to another compute host. But it can sometimes fail to complete if an instance has a high rate of memory or disk page access. This operation provides the user with an option to assist the progress of the live migration. The mechanism used to complete the live migration depends on the underlying virtualization subsystem capabilities. If libvirt/qemu is used and the post-copy feature is available and enabled then the force complete operation will cause a switch to post-copy mode. Otherwise the instance will be suspended until the migration is completed or aborted. cli=nova live-migration-force-complete driver-impl-xenserver=missing driver-impl-libvirt-kvm-x86=complete driver-notes-libvirt-kvm-x86=Requires libvirt>=1.3.3, qemu>=2.5.0 driver-impl-libvirt-kvm-ppc64=complete driver-notes-libvirt-kvm-ppc64=Requires libvirt>=1.3.3, qemu>=2.5.0 driver-impl-libvirt-kvm-s390x=complete driver-notes-libvirt-kvm-s390x=Requires libvirt>=1.3.3, qemu>=2.5.0 driver-impl-libvirt-qemu-x86=complete driver-notes-libvirt-qemu-x86=Requires libvirt>=1.3.3, qemu>=2.5.0 driver-impl-libvirt-lxc=missing driver-impl-libvirt-xen=missing driver-impl-vmware=missing driver-impl-hyperv=missing driver-impl-ironic=missing driver-impl-libvirt-vz-vm=missing driver-impl-libvirt-vz-ct=missing driver-impl-powervm=missing [operation.launch] title=Launch instance status=mandatory notes=Importing pre-existing running virtual machines on a host is considered out of scope of the cloud paradigm. Therefore this operation is mandatory to support in drivers. cli= driver-impl-xenserver=complete driver-impl-libvirt-kvm-x86=complete driver-impl-libvirt-kvm-ppc64=complete driver-impl-libvirt-kvm-s390x=complete driver-impl-libvirt-qemu-x86=complete driver-impl-libvirt-lxc=complete driver-impl-libvirt-xen=complete driver-impl-vmware=complete driver-impl-hyperv=complete driver-impl-ironic=complete driver-impl-libvirt-vz-vm=complete driver-impl-libvirt-vz-ct=complete driver-impl-powervm=complete [operation.pause] title=Stop instance CPUs (pause) status=optional notes=Stopping an instances CPUs can be thought of as roughly equivalent to suspend-to-RAM. The instance is still present in memory, but execution has stopped. The problem, however, is that there is no mechanism to inform the guest OS that this takes place, so upon unpausing, its clocks will no longer report correct time. For this reason hypervisor vendors generally discourage use of this feature and some do not even implement it. Therefore this operation is considered optional to support in drivers. cli=nova pause driver-impl-xenserver=complete driver-impl-libvirt-kvm-x86=complete driver-impl-libvirt-kvm-ppc64=complete driver-impl-libvirt-kvm-s390x=complete driver-impl-libvirt-qemu-x86=complete driver-impl-libvirt-lxc=complete driver-impl-libvirt-xen=complete driver-impl-vmware=missing driver-impl-hyperv=complete driver-impl-ironic=missing driver-impl-libvirt-vz-vm=complete driver-impl-libvirt-vz-ct=missing driver-impl-powervm=missing [operation.reboot] title=Reboot instance status=optional notes=It is reasonable for a guest OS administrator to trigger a graceful reboot from inside the instance. A host initiated graceful reboot requires guest co-operation and a non-graceful reboot can be achieved by a combination of stop+start. Therefore this operation is considered optional. cli=nova reboot driver-impl-xenserver=complete driver-impl-libvirt-kvm-x86=complete driver-impl-libvirt-kvm-ppc64=complete driver-impl-libvirt-kvm-s390x=complete driver-impl-libvirt-qemu-x86=complete driver-impl-libvirt-lxc=complete driver-impl-libvirt-xen=complete driver-impl-vmware=complete driver-impl-hyperv=complete driver-impl-ironic=complete driver-impl-libvirt-vz-vm=complete driver-impl-libvirt-vz-ct=complete driver-impl-powervm=complete [operation.rescue] title=Rescue instance status=optional notes=The rescue operation starts an instance in a special configuration whereby it is booted from an special root disk image. The goal is to allow an administrator to recover the state of a broken virtual machine. In general the cloud model considers instances to be cattle, so if an instance breaks the general expectation is that it be thrown away and a new instance created. Therefore this operation is considered optional to support in drivers. cli=nova rescue driver-impl-xenserver=complete driver-impl-libvirt-kvm-x86=complete driver-impl-libvirt-kvm-ppc64=complete driver-impl-libvirt-kvm-s390x=complete driver-impl-libvirt-qemu-x86=complete driver-impl-libvirt-lxc=missing driver-impl-libvirt-xen=complete driver-impl-vmware=complete driver-impl-hyperv=complete driver-impl-ironic=missing driver-impl-libvirt-vz-vm=complete driver-impl-libvirt-vz-ct=complete driver-impl-powervm=missing [operation.resize] title=Resize instance status=optional notes=The resize operation allows the user to change a running instance to match the size of a different flavor from the one it was initially launched with. There are many different flavor attributes that potentially need to be updated. In general it is technically challenging for a hypervisor to support the alteration of all relevant config settings for a running instance. Therefore this operation is considered optional to support in drivers. cli=nova resize driver-impl-xenserver=complete driver-impl-libvirt-kvm-x86=complete driver-impl-libvirt-kvm-ppc64=complete driver-impl-libvirt-kvm-s390x=complete driver-impl-libvirt-qemu-x86=complete driver-impl-libvirt-lxc=missing driver-impl-libvirt-xen=complete driver-impl-vmware=complete driver-impl-hyperv=complete driver-impl-ironic=missing driver-impl-libvirt-vz-vm=complete driver-notes-vz-vm=Resizing Virtuozzo instances implies guest filesystem resize also driver-impl-libvirt-vz-ct=complete driver-notes-vz-ct=Resizing Virtuozzo instances implies guest filesystem resize also driver-impl-powervm=missing [operation.resume] title=Restore instance status=optional notes=See notes for the suspend operation cli=nova resume driver-impl-xenserver=complete driver-impl-libvirt-kvm-x86=complete driver-impl-libvirt-kvm-ppc64=complete driver-impl-libvirt-kvm-s390x=complete driver-impl-libvirt-qemu-x86=complete driver-impl-libvirt-lxc=missing driver-impl-libvirt-xen=complete driver-impl-vmware=complete driver-impl-hyperv=complete driver-impl-ironic=missing driver-impl-libvirt-vz-vm=complete driver-impl-libvirt-vz-ct=complete driver-impl-powervm=missing [operation.set-admin-password] title=Set instance admin password status=optional notes=Provides a mechanism to (re)set the password of the administrator account inside the instance operating system. This requires that the hypervisor has a way to communicate with the running guest operating system. Given the wide range of operating systems in existence it is unreasonable to expect this to be practical in the general case. The configdrive and metadata service both provide a mechanism for setting the administrator password at initial boot time. In the case where this operation were not available, the administrator would simply have to login to the guest and change the password in the normal manner, so this is just a convenient optimization. Therefore this operation is not considered mandatory for drivers to support. cli=nova set-password driver-impl-xenserver=complete driver-notes-xenserver=Requires XenAPI agent on the guest. driver-impl-libvirt-kvm-x86=complete driver-notes-libvirt-kvm-x86=Requires libvirt>=1.2.16 and hw_qemu_guest_agent. driver-impl-libvirt-kvm-ppc64=missing driver-impl-libvirt-kvm-s390x=missing driver-impl-libvirt-qemu-x86=complete driver-notes-libvirt-qemu-x86=Requires libvirt>=1.2.16 and hw_qemu_guest_agent. driver-impl-libvirt-lxc=missing driver-impl-libvirt-xen=missing driver-impl-vmware=missing driver-impl-hyperv=missing driver-impl-ironic=missing driver-impl-libvirt-vz-vm=complete driver-notes-libvirt-vz-vm=Requires libvirt>=2.0.0 driver-impl-libvirt-vz-ct=complete driver-notes-libvirt-vz-ct=Requires libvirt>=2.0.0 driver-impl-powervm=missing [operation.snapshot] title=Save snapshot of instance disk status=optional notes=The snapshot operation allows the current state of the instance root disk to be saved and uploaded back into the glance image repository. The instance can later be booted again using this saved image. This is in effect making the ephemeral instance root disk into a semi-persistent storage, in so much as it is preserved even though the guest is no longer running. In general though, the expectation is that the root disks are ephemeral so the ability to take a snapshot cannot be assumed. Therefore this operation is not considered mandatory to support. cli=nova image-create driver-impl-xenserver=complete driver-impl-libvirt-kvm-x86=complete driver-impl-libvirt-kvm-ppc64=complete driver-impl-libvirt-kvm-s390x=complete driver-impl-libvirt-qemu-x86=complete driver-impl-libvirt-lxc=missing driver-impl-libvirt-xen=partial driver-notes-libvirt-xen=Only cold snapshots (pause + snapshot) supported driver-impl-vmware=complete driver-impl-hyperv=complete driver-impl-ironic=missing driver-impl-libvirt-vz-vm=complete driver-impl-libvirt-vz-ct=complete driver-impl-powervm=missing [operation.suspend] title=Suspend instance status=optional notes=Suspending an instance can be thought of as roughly equivalent to suspend-to-disk. The instance no longer consumes any RAM or CPUs, with its live running state having been preserved in a file on disk. It can later be restored, at which point it should continue execution where it left off. As with stopping instance CPUs, it suffers from the fact that the guest OS will typically be left with a clock that is no longer telling correct time. For container based virtualization solutions, this operation is particularly technically challenging to implement and is an area of active research. This operation tends to make more sense when thinking of instances as pets, rather than cattle, since with cattle it would be simpler to just terminate the instance instead of suspending. Therefore this operation is considered optional to support. cli=nova suspend driver-impl-xenserver=complete driver-impl-libvirt-kvm-x86=complete driver-impl-libvirt-kvm-ppc64=complete driver-impl-libvirt-kvm-s390x=complete driver-impl-libvirt-qemu-x86=complete driver-impl-libvirt-lxc=missing driver-impl-libvirt-xen=complete driver-impl-vmware=complete driver-impl-hyperv=complete driver-impl-ironic=missing driver-impl-libvirt-vz-vm=complete driver-impl-libvirt-vz-ct=complete driver-impl-powervm=missing [operation.swap-volume] title=Swap block volumes status=optional notes=The swap volume operation is a mechanism for changing a running instance so that its attached volume(s) are backed by different storage in the host. An alternative to this would be to simply terminate the existing instance and spawn a new instance with the new storage. In other words this operation is primarily targeted towards the pet use case rather than cattle, however, it is required for volume migration to work in the volume service. This is considered optional to support. cli=nova volume-update driver-impl-xenserver=missing driver-impl-libvirt-kvm-x86=complete driver-impl-libvirt-kvm-ppc64=complete driver-impl-libvirt-kvm-s390x=complete driver-impl-libvirt-qemu-x86=complete driver-impl-libvirt-lxc=missing driver-impl-libvirt-xen=complete driver-impl-vmware=missing driver-impl-hyperv=missing driver-impl-ironic=missing driver-impl-libvirt-vz-vm=complete driver-impl-libvirt-vz-ct=missing driver-impl-powervm=missing [operation.terminate] title=Shutdown instance status=mandatory notes=The ability to terminate a virtual machine is required in order for a cloud user to stop utilizing resources and thus avoid indefinitely ongoing billing. Therefore this operation is mandatory to support in drivers. cli=nova delete driver-impl-xenserver=complete driver-impl-libvirt-kvm-x86=complete driver-impl-libvirt-kvm-ppc64=complete driver-impl-libvirt-kvm-s390x=complete driver-impl-libvirt-qemu-x86=complete driver-impl-libvirt-lxc=complete driver-notes-libvirt-lxc=Fails in latest Ubuntu Trusty kernel from security repository (3.13.0-76-generic), but works in upstream 3.13.x kernels as well as default Ubuntu Trusty latest kernel (3.13.0-58-generic). driver-impl-libvirt-xen=complete driver-impl-vmware=complete driver-impl-hyperv=complete driver-impl-ironic=complete driver-impl-libvirt-vz-vm=complete driver-impl-libvirt-vz-ct=complete driver-impl-powervm=complete [operation.trigger-crash-dump] title=Trigger crash dump status=optional notes=The trigger crash dump operation is a mechanism for triggering a crash dump in an instance. The feature is typically implemented by injecting an NMI (Non-maskable Interrupt) into the instance. It provides a means to dump the production memory image as a dump file which is useful for users. Therefore this operation is considered optional to support. cli=nova trigger-crash-dump driver-impl-xenserver=missing driver-impl-libvirt-kvm-x86=complete driver-impl-libvirt-kvm-ppc64=complete driver-impl-libvirt-kvm-s390x=complete driver-impl-libvirt-qemu-x86=complete driver-impl-libvirt-lxc=missing driver-impl-libvirt-xen=missing driver-impl-vmware=missing driver-impl-hyperv=missing driver-impl-ironic=complete driver-impl-libvirt-vz-vm=missing driver-impl-libvirt-vz-ct=missing driver-impl-powervm=missing [operation.unpause] title=Resume instance CPUs (unpause) status=optional notes=See notes for the "Stop instance CPUs" operation cli=nova unpause driver-impl-xenserver=complete driver-impl-libvirt-kvm-x86=complete driver-impl-libvirt-kvm-ppc64=complete driver-impl-libvirt-kvm-s390x=complete driver-impl-libvirt-qemu-x86=complete driver-impl-libvirt-lxc=complete driver-impl-libvirt-xen=complete driver-impl-vmware=missing driver-impl-hyperv=complete driver-impl-ironic=missing driver-impl-libvirt-vz-vm=complete driver-impl-libvirt-vz-ct=complete driver-impl-powervm=missing [guest.disk.autoconfig] title=Auto configure disk status=optional notes=Partition and resize FS to match the size specified by flavors.root_gb, As this is hypervisor specific feature. Therefore this operation is considered optional to support. cli= driver-impl-xenserver=complete driver-impl-libvirt-kvm-x86=missing driver-impl-libvirt-kvm-ppc64=missing driver-impl-libvirt-kvm-s390x=missing driver-impl-libvirt-qemu-x86=missing driver-impl-libvirt-lxc=missing driver-impl-libvirt-xen=missing driver-impl-vmware=missing driver-impl-hyperv=missing driver-impl-ironic=missing driver-impl-libvirt-vz-vm=missing driver-impl-libvirt-vz-ct=missing driver-impl-powervm=missing [guest.disk.rate-limit] title=Instance disk I/O limits status=optional notes=The ability to set rate limits on virtual disks allows for greater performance isolation between instances running on the same host storage. It is valid to delegate scheduling of I/O operations to the hypervisor with its default settings, instead of doing fine grained tuning. Therefore this is not considered to be an mandatory configuration to support. cli=nova limits driver-impl-xenserver=missing driver-impl-libvirt-kvm-x86=complete driver-impl-libvirt-kvm-ppc64=complete driver-impl-libvirt-kvm-s390x=complete driver-impl-libvirt-qemu-x86=complete driver-impl-libvirt-lxc=missing driver-impl-libvirt-xen=missing driver-impl-vmware=missing driver-impl-hyperv=missing driver-impl-ironic=missing driver-impl-libvirt-vz-vm=missing driver-impl-libvirt-vz-ct=missing driver-impl-powervm=missing [guest.setup.configdrive] title=Config drive support status=choice(guest.setup) notes=The config drive provides an information channel into the guest operating system, to enable configuration of the administrator password, file injection, registration of SSH keys, etc. Since cloud images typically ship with all login methods locked, a mechanism to set the administrator password or keys is required to get login access. Alternatives include the metadata service and disk injection. At least one of the guest setup mechanisms is required to be supported by drivers, in order to enable login access. cli= driver-impl-xenserver=complete driver-impl-libvirt-kvm-x86=complete driver-impl-libvirt-kvm-ppc64=missing driver-impl-libvirt-kvm-s390x=complete driver-impl-libvirt-qemu-x86=complete driver-impl-libvirt-lxc=complete driver-impl-libvirt-xen=complete driver-impl-vmware=complete driver-impl-hyperv=complete driver-impl-ironic=complete driver-impl-libvirt-vz-vm=complete driver-impl-libvirt-vz-ct=missing driver-impl-powervm=complete [guest.setup.inject.file] title=Inject files into disk image status=optional notes=This allows for the end user to provide data for multiple files to be injected into the root filesystem before an instance is booted. This requires that the compute node understand the format of the filesystem and any partitioning scheme it might use on the block device. This is a non-trivial problem considering the vast number of filesystems in existence. The problem of injecting files to a guest OS is better solved by obtaining via the metadata service or config drive. Therefore this operation is considered optional to support. cli= driver-impl-xenserver=complete driver-impl-libvirt-kvm-x86=complete driver-impl-libvirt-kvm-ppc64=missing driver-impl-libvirt-kvm-s390x=missing driver-impl-libvirt-qemu-x86=complete driver-impl-libvirt-lxc=missing driver-impl-libvirt-xen=missing driver-impl-vmware=missing driver-impl-hyperv=missing driver-impl-ironic=missing driver-impl-libvirt-vz-vm=missing driver-impl-libvirt-vz-ct=missing driver-impl-powervm=missing [guest.setup.inject.networking] title=Inject guest networking config status=optional notes=This allows for static networking configuration (IP address, netmask, gateway and routes) to be injected directly into the root filesystem before an instance is booted. This requires that the compute node understand how networking is configured in the guest OS which is a non-trivial problem considering the vast number of operating system types. The problem of configuring networking is better solved by DHCP or by obtaining static config via config drive. Therefore this operation is considered optional to support. cli= driver-impl-xenserver=partial driver-notes-xenserver=Only for Debian derived guests driver-impl-libvirt-kvm-x86=partial driver-notes-libvirt-kvm-x86=Only for Debian derived guests driver-impl-libvirt-kvm-ppc64=missing driver-impl-libvirt-kvm-s390x=missing driver-impl-libvirt-qemu-x86=partial driver-notes-libvirt-qemu-x86=Only for Debian derived guests driver-impl-libvirt-lxc=missing driver-impl-libvirt-xen=missing driver-impl-vmware=partial driver-notes-vmware=requires vmware tools installed driver-impl-hyperv=missing driver-impl-ironic=missing driver-impl-libvirt-vz-vm=missing driver-impl-libvirt-vz-ct=missing driver-impl-powervm=missing [console.rdp] title=Remote desktop over RDP status=choice(console) notes=This allows the administrator to interact with the graphical console of the guest OS via RDP. This provides a way to see boot up messages and login to the instance when networking configuration has failed, thus preventing a network based login. Some operating systems may prefer to emit messages via the serial console for easier consumption. Therefore support for this operation is not mandatory, however, a driver is required to support at least one of the listed console access operations. cli=nova get-rdp-console driver-impl-xenserver=missing driver-impl-libvirt-kvm-x86=missing driver-impl-libvirt-kvm-ppc64=missing driver-impl-libvirt-kvm-s390x=missing driver-impl-libvirt-qemu-x86=missing driver-impl-libvirt-lxc=missing driver-impl-libvirt-xen=missing driver-impl-vmware=missing driver-impl-hyperv=complete driver-impl-ironic=missing driver-impl-libvirt-vz-vm=missing driver-impl-libvirt-vz-ct=missing driver-impl-powervm=missing [console.serial.log] title=View serial console logs status=choice(console) notes=This allows the administrator to query the logs of data emitted by the guest OS on its virtualized serial port. For UNIX guests this typically includes all boot up messages and so is useful for diagnosing problems when an instance fails to successfully boot. Not all guest operating systems will be able to emit boot information on a serial console, others may only support graphical consoles. Therefore support for this operation is not mandatory, however, a driver is required to support at least one of the listed console access operations. cli=nova console-log driver-impl-xenserver=complete driver-impl-libvirt-kvm-x86=complete driver-impl-libvirt-kvm-ppc64=missing driver-impl-libvirt-kvm-s390x=complete driver-impl-libvirt-qemu-x86=complete driver-impl-libvirt-lxc=missing driver-impl-libvirt-xen=complete driver-impl-vmware=complete driver-impl-hyperv=complete driver-impl-ironic=missing driver-impl-libvirt-vz-vm=missing driver-impl-libvirt-vz-ct=missing driver-impl-powervm=missing [console.serial.interactive] title=Remote interactive serial console status=choice(console) notes=This allows the administrator to interact with the serial console of the guest OS. This provides a way to see boot up messages and login to the instance when networking configuration has failed, thus preventing a network based login. Not all guest operating systems will be able to emit boot information on a serial console, others may only support graphical consoles. Therefore support for this operation is not mandatory, however, a driver is required to support at least one of the listed console access operations. This feature was introduced in the Juno release with blueprint https://blueprints.launchpad.net/nova/+spec/serial-ports cli=nova get-serial-console driver-impl-xenserver=missing driver-impl-libvirt-kvm-x86=complete driver-impl-libvirt-kvm-ppc64=unknown driver-impl-libvirt-kvm-s390x=complete driver-impl-libvirt-qemu-x86=unknown driver-impl-libvirt-lxc=unknown driver-impl-libvirt-xen=unknown driver-impl-vmware=missing driver-impl-hyperv=complete driver-impl-ironic=complete driver-impl-libvirt-vz-vm=missing driver-impl-libvirt-vz-ct=missing driver-impl-powervm=missing [console.spice] title=Remote desktop over SPICE status=choice(console) notes=This allows the administrator to interact with the graphical console of the guest OS via SPICE. This provides a way to see boot up messages and login to the instance when networking configuration has failed, thus preventing a network based login. Some operating systems may prefer to emit messages via the serial console for easier consumption. Therefore support for this operation is not mandatory, however, a driver is required to support at least one of the listed console access operations. cli=nova get-spice-console driver-impl-xenserver=missing driver-impl-libvirt-kvm-x86=complete driver-impl-libvirt-kvm-ppc64=missing driver-impl-libvirt-kvm-s390x=missing driver-impl-libvirt-qemu-x86=complete driver-impl-libvirt-lxc=missing driver-impl-libvirt-xen=missing driver-impl-vmware=missing driver-impl-hyperv=missing driver-impl-ironic=missing driver-impl-libvirt-vz-vm=missing driver-impl-libvirt-vz-ct=missing driver-impl-powervm=missing [console.vnc] title=Remote desktop over VNC status=choice(console) notes=This allows the administrator to interact with the graphical console of the guest OS via VNC. This provides a way to see boot up messages and login to the instance when networking configuration has failed, thus preventing a network based login. Some operating systems may prefer to emit messages via the serial console for easier consumption. Therefore support for this operation is not mandatory, however, a driver is required to support at least one of the listed console access operations. cli=nova get-vnc-console driver-impl-xenserver=complete driver-impl-libvirt-kvm-x86=complete driver-impl-libvirt-kvm-ppc64=missing driver-impl-libvirt-kvm-s390x=missing driver-impl-libvirt-qemu-x86=complete driver-impl-libvirt-lxc=missing driver-impl-libvirt-xen=complete driver-impl-vmware=complete driver-impl-hyperv=missing driver-impl-ironic=missing driver-impl-libvirt-vz-vm=complete driver-impl-libvirt-vz-ct=complete driver-impl-powervm=complete [storage.block] title=Block storage support status=optional notes=Block storage provides instances with direct attached virtual disks that can be used for persistent storage of data. As an alternative to direct attached disks, an instance may choose to use network based persistent storage. OpenStack provides object storage via the Swift service, or a traditional filesystem such as NFS may be used. Some types of instances may not require persistent storage at all, being simple transaction processing systems reading requests & sending results to and from the network. Therefore support for this configuration is not considered mandatory for drivers to support. cli= driver-impl-xenserver=complete driver-impl-libvirt-kvm-x86=complete driver-impl-libvirt-kvm-ppc64=complete driver-impl-libvirt-kvm-s390x=complete driver-impl-libvirt-qemu-x86=complete driver-impl-libvirt-lxc=complete driver-impl-libvirt-xen=complete driver-impl-vmware=complete driver-impl-hyperv=complete driver-impl-ironic=complete driver-impl-libvirt-vz-vm=partial driver-impl-libvirt-vz-ct=missing driver-impl-powervm=missing [storage.block.backend.fibrechannel] title=Block storage over fibre channel status=optional notes=To maximise performance of the block storage, it may be desirable to directly access fibre channel LUNs from the underlying storage technology on the compute hosts. Since this is just a performance optimization of the I/O path it is not considered mandatory to support. cli= driver-impl-xenserver=missing driver-impl-libvirt-kvm-x86=complete driver-impl-libvirt-kvm-ppc64=missing driver-impl-libvirt-kvm-s390x=complete driver-impl-libvirt-qemu-x86=complete driver-impl-libvirt-lxc=complete driver-impl-libvirt-xen=complete driver-impl-vmware=missing driver-impl-hyperv=complete driver-impl-ironic=missing driver-impl-libvirt-vz-vm=complete driver-impl-libvirt-vz-ct=missing driver-impl-powervm=missing [storage.block.backend.iscsi] title=Block storage over iSCSI status=condition(storage.block==complete) notes=If the driver wishes to support block storage, it is common to provide an iSCSI based backend to access the storage from cinder. This isolates the compute layer for knowledge of the specific storage technology used by Cinder, albeit at a potential performance cost due to the longer I/O path involved. If the driver chooses to support block storage, then this is considered mandatory to support, otherwise it is considered optional. cli= driver-impl-xenserver=complete driver-impl-libvirt-kvm-x86=complete driver-impl-libvirt-kvm-ppc64=complete driver-impl-libvirt-kvm-s390x=complete driver-impl-libvirt-qemu-x86=complete driver-impl-libvirt-lxc=complete driver-impl-libvirt-xen=complete driver-impl-vmware=complete driver-impl-hyperv=complete driver-impl-ironic=complete driver-impl-libvirt-vz-vm=complete driver-impl-libvirt-vz-ct=missing driver-impl-powervm=missing [storage.block.backend.iscsi.auth.chap] title=CHAP authentication for iSCSI status=optional notes=If accessing the cinder iSCSI service over an untrusted LAN it is desirable to be able to enable authentication for the iSCSI protocol. CHAP is the commonly used authentication protocol for iSCSI. This is not considered mandatory to support. (?) cli= driver-impl-xenserver=complete driver-impl-libvirt-kvm-x86=complete driver-impl-libvirt-kvm-ppc64=complete driver-impl-libvirt-kvm-s390x=complete driver-impl-libvirt-qemu-x86=complete driver-impl-libvirt-lxc=complete driver-impl-libvirt-xen=complete driver-impl-vmware=missing driver-impl-hyperv=complete driver-impl-ironic=complete driver-impl-libvirt-vz-vm=complete driver-impl-libvirt-vz-ct=missing driver-impl-powervm=missing [storage.image] title=Image storage support status=mandatory notes=This refers to the ability to boot an instance from an image stored in the glance image repository. Without this feature it would not be possible to bootstrap from a clean environment, since there would be no way to get block volumes populated and reliance on external PXE servers is out of scope. Therefore this is considered a mandatory storage feature to support. cli=nova boot --image driver-impl-xenserver=complete driver-impl-libvirt-kvm-x86=complete driver-impl-libvirt-kvm-ppc64=complete driver-impl-libvirt-kvm-s390x=complete driver-impl-libvirt-qemu-x86=complete driver-impl-libvirt-lxc=complete driver-impl-libvirt-xen=complete driver-impl-vmware=complete driver-impl-hyperv=complete driver-impl-ironic=complete driver-impl-libvirt-vz-vm=complete driver-impl-libvirt-vz-ct=complete driver-impl-powervm=complete [networking.firewallrules] title=Network firewall rules status=optional notes=Unclear how this is different from security groups cli= driver-impl-xenserver=complete driver-impl-libvirt-kvm-x86=complete driver-impl-libvirt-kvm-ppc64=complete driver-impl-libvirt-kvm-s390x=complete driver-impl-libvirt-qemu-x86=complete driver-impl-libvirt-lxc=complete driver-impl-libvirt-xen=complete driver-impl-vmware=missing driver-impl-hyperv=missing driver-impl-ironic=missing driver-impl-libvirt-vz-vm=complete driver-impl-libvirt-vz-ct=complete driver-impl-powervm=complete [networking.routing] title=Network routing status=optional notes=Unclear what this refers to cli= driver-impl-xenserver=complete driver-impl-libvirt-kvm-x86=complete driver-impl-libvirt-kvm-ppc64=missing driver-impl-libvirt-kvm-s390x=complete driver-impl-libvirt-qemu-x86=complete driver-impl-libvirt-lxc=complete driver-impl-libvirt-xen=complete driver-impl-vmware=complete driver-impl-hyperv=missing driver-impl-ironic=complete driver-impl-libvirt-vz-vm=complete driver-impl-libvirt-vz-ct=complete driver-impl-powervm=complete [networking.securitygroups] title=Network security groups status=optional notes=The security groups feature provides a way to define rules to isolate the network traffic of different instances running on a compute host. This would prevent actions such as MAC and IP address spoofing, or the ability to setup rogue DHCP servers. In a private cloud environment this may be considered to be a superfluous requirement. Therefore this is considered to be an optional configuration to support. cli= driver-impl-xenserver=complete driver-impl-libvirt-kvm-x86=complete driver-impl-libvirt-kvm-ppc64=complete driver-impl-libvirt-kvm-s390x=complete driver-impl-libvirt-qemu-x86=complete driver-impl-libvirt-lxc=complete driver-impl-libvirt-xen=complete driver-impl-vmware=partial driver-notes-vmware=This is supported by the Neutron NSX plugins driver-impl-hyperv=missing driver-impl-ironic=missing driver-impl-libvirt-vz-vm=complete driver-impl-libvirt-vz-ct=complete driver-impl-powervm=complete [networking.topology.flat] title=Flat networking status=choice(networking.topology) notes=Provide network connectivity to guests using a flat topology across all compute nodes. At least one of the networking configurations is mandatory to support in the drivers. cli= driver-impl-xenserver=complete driver-impl-libvirt-kvm-x86=complete driver-impl-libvirt-kvm-ppc64=complete driver-impl-libvirt-kvm-s390x=complete driver-impl-libvirt-qemu-x86=complete driver-impl-libvirt-lxc=complete driver-impl-libvirt-xen=complete driver-impl-vmware=complete driver-impl-hyperv=complete driver-impl-ironic=complete driver-impl-libvirt-vz-vm=complete driver-impl-libvirt-vz-ct=complete driver-impl-powervm=complete [networking.topology.vlan] title=VLAN networking status=choice(networking.topology) notes=Provide network connectivity to guests using VLANs to define the topology when using nova-network. At least one of the networking configurations is mandatory to support in the drivers. cli= driver-impl-xenserver=complete driver-impl-libvirt-kvm-x86=complete driver-impl-libvirt-kvm-ppc64=complete driver-impl-libvirt-kvm-s390x=complete driver-impl-libvirt-qemu-x86=complete driver-impl-libvirt-lxc=complete driver-impl-libvirt-xen=complete driver-impl-vmware=complete driver-impl-hyperv=missing driver-impl-ironic=missing driver-impl-libvirt-vz-vm=complete driver-impl-libvirt-vz-ct=complete driver-impl-powervm=complete [operation.uefi-boot] title=uefi boot status=optional notes=This allows users to boot a guest with uefi firmware. cli= driver-impl-xenserver=missing driver-impl-libvirt-kvm-x86=complete driver-impl-libvirt-kvm-ppc64=missing driver-impl-libvirt-kvm-s390x=missing driver-impl-libvirt-qemu-x86=complete driver-impl-libvirt-lxc=missing driver-impl-libvirt-xen=missing driver-impl-vmware=missing driver-impl-hyperv=missing driver-impl-ironic=partial driver-notes-ironic=depends on hardware support driver-impl-libvirt-vz-vm=missing driver-impl-libvirt-vz-ct=missing driver-impl-powervm=missing [operation.device-tags] title=Device tags status=optional notes=This allows users to set tags on virtual devices when creating a server instance. Device tags are used to identify virtual device metadata, as exposed in the metadata API and on the config drive. For example, a network interface tagged with "nic1" will appear in the metadata along with its bus (ex: PCI), bus address (ex: 0000:00:02.0), MAC address, and tag (nic1). If multiple networks are defined, the order in which they appear in the guest operating system will not necessarily reflect the order in which they are given in the server boot request. Guests should therefore not depend on device order to deduce any information about their network devices. Instead, device role tags should be used. Device tags can be applied to virtual network interfaces and block devices. cli=nova boot driver-impl-xenserver=complete driver-impl-libvirt-kvm-x86=complete driver-impl-libvirt-kvm-ppc64=complete driver-impl-libvirt-kvm-s390x=complete driver-impl-libvirt-qemu-x86=complete driver-impl-libvirt-lxc=unknown driver-impl-libvirt-xen=complete driver-impl-vmware=missing driver-impl-hyperv=complete driver-impl-ironic=missing driver-impl-libvirt-vz-vm=complete driver-impl-libvirt-vz-ct=unknown driver-impl-powervm=missing [operation.quiesce] title=quiesce status=optional notes=Quiesce the specified instance to prepare for snapshots. For libvirt, guest filesystems will be frozen through qemu agent. cli= driver-impl-xenserver=missing driver-impl-libvirt-kvm-x86=complete driver-impl-libvirt-kvm-ppc64=complete driver-impl-libvirt-kvm-s390x=complete driver-impl-libvirt-qemu-x86=complete driver-impl-libvirt-lxc=missing driver-impl-libvirt-xen=missing driver-impl-vmware=missing driver-impl-hyperv=missing driver-impl-ironic=missing driver-impl-libvirt-vz-vm=missing driver-impl-libvirt-vz-ct=missing driver-impl-powervm=missing [operation.unquiesce] title=unquiesce status=optional notes=See notes for the quiesce operation cli= driver-impl-xenserver=missing driver-impl-libvirt-kvm-x86=complete driver-impl-libvirt-kvm-ppc64=complete driver-impl-libvirt-kvm-s390x=complete driver-impl-libvirt-qemu-x86=complete driver-impl-libvirt-lxc=missing driver-impl-libvirt-xen=missing driver-impl-vmware=missing driver-impl-hyperv=missing driver-impl-ironic=missing driver-impl-libvirt-vz-vm=missing driver-impl-libvirt-vz-ct=missing driver-impl-powervm=missing [operation.multiattach-volume] title=Attach block volume to multiple instances status=optional notes=The multiattach volume operation is an extension to the attach volume operation. It allows to attach a single volume to multiple instances. This operation is not considered to be mandatory to support. Note that for the libvirt driver, this is only supported if qemu<2.10 or libvirt>=3.10. cli=nova volume-attach driver-impl-xenserver=missing driver-impl-libvirt-kvm-x86=complete driver-impl-libvirt-kvm-ppc64=complete driver-impl-libvirt-kvm-s390x=complete driver-impl-libvirt-qemu-x86=complete driver-impl-libvirt-lxc=missing driver-impl-libvirt-xen=complete driver-impl-vmware=missing driver-impl-hyperv=missing driver-impl-ironic=missing driver-impl-libvirt-vz-vm=complete driver-impl-libvirt-vz-ct=missing driver-impl-powervm=missing nova-17.0.13/doc/source/user/index.rst0000664000175000017500000000631713556316250017551 0ustar zuulzuul00000000000000================== User Documentation ================== End user guide -------------- .. toctree:: :maxdepth: 1 launch-instances .. todo:: The rest of this document should probably move to the admin guide. Architecture Overview --------------------- * :doc:`Nova architecture `: An overview of how all the parts in nova fit together. * :doc:`Block Device Mapping `: One of the more complicated parts to understand is the Block Device Mapping parameters used to connect specific block devices to computes. This deserves its own deep dive. * :doc:`Conductor `: TODO Deployment Considerations ------------------------- There is information you might want to consider before doing your deployment, especially if it is going to be a larger deployment. For smaller deployments the defaults from the :doc:`install guide ` will be sufficient. * **Compute Driver Features Supported**: While the majority of nova deployments use libvirt/kvm, you can use nova with other compute drivers. Nova attempts to provide a unified feature set across these, however, not all features are implemented on all backends, and not all features are equally well tested. * :doc:`Feature Support by Use Case `: A view of what features each driver supports based on what's important to some large use cases (General Purpose Cloud, NFV Cloud, HPC Cloud). * :doc:`Feature Support full list `: A detailed dive through features in each compute driver backend. * :doc:`Cells v2 Planning `: For large deployments, Cells v2 allows sharding of your compute environment. Upfront planning is key to a successful Cells v2 layout. * :doc:`Placement service `: Overview of the placement service, including how it fits in with the rest of nova. * :doc:`Running nova-api on wsgi `: Considerations for using a real WSGI container instead of the baked-in eventlet web server. Maintenance ----------- Once you are running nova, the following information is extremely useful. * :doc:`Admin Guide `: A collection of guides for administrating nova. .. warning:: This guide was imported during the Pike cycle and is a bit out of date. It will be updated during Queens to be more accurate. * :doc:`Upgrades `: How nova is designed to be upgraded for minimal service impact, and the order you should do them in. * :doc:`Quotas `: Managing project quotas in nova. * :doc:`Aggregates `: Aggregates are a useful way of grouping hosts together for scheduling purposes. * :doc:`Filter Scheduler `: How the filter scheduler is configured, and how that will impact where compute instances land in your environment. If you are seeing unexpected distribution of compute instances in your hosts, you'll want to dive into this configuration. * :doc:`Exposing custom metadata to compute instances `: How and when you might want to extend the basic metadata exposed to compute instances (either via metadata server or config drive) for your specific purposes. nova-17.0.13/doc/source/user/launch-instance-from-image.rst0000664000175000017500000001557213556316250023542 0ustar zuulzuul00000000000000================================ Launch an instance from an image ================================ Follow the steps below to launch an instance from an image. #. After you gather required parameters, run the following command to launch an instance. Specify the server name, flavor ID, and image ID. .. code-block:: console $ openstack server create --flavor FLAVOR_ID --image IMAGE_ID --key-name KEY_NAME \ --user-data USER_DATA_FILE --security-group SEC_GROUP_NAME --property KEY=VALUE \ INSTANCE_NAME Optionally, you can provide a key name for access control and a security group for security. You can also include metadata key and value pairs. For example, you can add a description for your server by providing the ``--property description="My Server"`` parameter. You can pass user data in a local file at instance launch by using the ``--user-data USER-DATA-FILE`` parameter. .. important:: If you boot an instance with an INSTANCE_NAME greater than 63 characters, Compute truncates it automatically when turning it into a host name to ensure the correct work of dnsmasq. The corresponding warning is written into the ``neutron-dnsmasq.log`` file. The following command launches the ``MyCirrosServer`` instance with the ``m1.small`` flavor (ID of ``1``), ``cirros-0.3.2-x86_64-uec`` image (ID of ``397e713c-b95b-4186-ad46-6126863ea0a9``), ``default`` security group, ``KeyPair01`` key, and a user data file called ``cloudinit.file``: .. code-block:: console $ openstack server create --flavor 1 --image 397e713c-b95b-4186-ad46-6126863ea0a9 \ --security-group default --key-name KeyPair01 --user-data cloudinit.file \ myCirrosServer Depending on the parameters that you provide, the command returns a list of server properties. .. code-block:: console +--------------------------------------+-----------------------------------------------+ | Field | Value | +--------------------------------------+-----------------------------------------------+ | OS-DCF:diskConfig | MANUAL | | OS-EXT-AZ:availability_zone | | | OS-EXT-SRV-ATTR:host | None | | OS-EXT-SRV-ATTR:hypervisor_hostname | None | | OS-EXT-SRV-ATTR:instance_name | | | OS-EXT-STS:power_state | NOSTATE | | OS-EXT-STS:task_state | scheduling | | OS-EXT-STS:vm_state | building | | OS-SRV-USG:launched_at | None | | OS-SRV-USG:terminated_at | None | | accessIPv4 | | | accessIPv6 | | | addresses | | | adminPass | E4Ksozt4Efi8 | | config_drive | | | created | 2016-11-30T14:48:05Z | | flavor | m1.tiny | | hostId | | | id | 89015cc9-bdf1-458a-8518-fdca2b4a5785 | | image | cirros (397e713c-b95b-4186-ad46-6126863ea0a9) | | key_name | KeyPair01 | | name | myCirrosServer | | os-extended-volumes:volumes_attached | [] | | progress | 0 | | project_id | 5669caad86a04256994cdf755df4d3c1 | | properties | | | security_groups | [{u'name': u'default'}] | | status | BUILD | | updated | 2016-11-30T14:48:05Z | | user_id | c36cec73b0e44876a4478b1e6cd749bb | | metadata | {u'KEY': u'VALUE'} | +--------------------------------------+-----------------------------------------------+ A status of ``BUILD`` indicates that the instance has started, but is not yet online. A status of ``ACTIVE`` indicates that the instance is active. #. Copy the server ID value from the ``id`` field in the output. Use the ID to get server details or to delete your server. #. Copy the administrative password value from the ``adminPass`` field. Use the password to log in to your server. #. Check if the instance is online. .. code-block:: console $ openstack server list The list shows the ID, name, status, and private (and if assigned, public) IP addresses for all instances in the project to which you belong: .. code-block:: console +-------------+----------------------+--------+------------+-------------+------------------+------------+ | ID | Name | Status | Task State | Power State | Networks | Image Name | +-------------+----------------------+--------+------------+-------------+------------------+------------+ | 84c6e57d... | myCirrosServer | ACTIVE | None | Running | private=10.0.0.3 | cirros | | 8a99547e... | myInstanceFromVolume | ACTIVE | None | Running | private=10.0.0.4 | centos | +-------------+----------------------+--------+------------+-------------+------------------+------------+ If the status for the instance is ACTIVE, the instance is online. #. To view the available options for the :command:`openstack server list` command, run the following command: .. code-block:: console $ openstack help server list .. note:: If you did not provide a key pair, security groups, or rules, you can access the instance only from inside the cloud through VNC. Even pinging the instance is not possible. nova-17.0.13/doc/source/user/feature-classification.rst0000664000175000017500000001422613556316250023064 0ustar zuulzuul00000000000000.. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. ====================== Feature Classification ====================== This document presents a matrix that describes which features are ready to be used and which features are works in progress. It includes links to relevant documentation and functional tests. .. warning:: Please note: this is a work in progress! Aims ==== Users want reliable, long-term solutions for their use cases. The feature classification matrix identifies which features are complete and ready to use, and which should be used with caution. The matrix also benefits developers by providing a list of features that require further work to be considered complete. Below is a matrix for a selection of important verticals: * :ref:`matrix-gp` * :ref:`matrix-nfv` * :ref:`matrix-hpc` For more details on the concepts in each matrix, please see :ref:`notes-on-concepts`. .. _matrix-gp: General Purpose Cloud Features =============================== This is a summary of the key features dev/test clouds, and other similar general purpose clouds need, and it describes their current state. Below there are sections on NFV and HPC specific features. These look at specific features and scenarios that are important to those more specific sets of use cases. .. feature_matrix:: feature-matrix-gp.ini .. _matrix-nfv: NFV Cloud Features ================== Network Function Virtualization (NFV) is about virtualizing network node functions into building blocks that may connect, or chain together to create a particular service. It is common for this workloads needing bare metal like performance, i.e. low latency and close to line speed performance. .. include:: /common/numa-live-migration-warning.txt .. feature_matrix:: feature-matrix-nfv.ini .. _matrix-hpc: HPC Cloud Features ================== High Performance Compute (HPC) cloud have some specific needs that are covered in this set of features. .. feature_matrix:: feature-matrix-hpc.ini .. _notes-on-concepts: Notes on Concepts ================= This document uses the following terminology. Users ----- These are the users we talk about in this document: application deployer creates and deletes servers, directly or indirectly using an API application developer creates images and apps that run on the cloud cloud operator administers the cloud self service administrator runs and uses the cloud .. note:: This is not an exhaustive list of personas, but rather an indicative set of users. Feature Group ------------- To reduce the size of the matrix, we organize the features into groups. Each group maps to a set of user stories that can be validated by a set of scenarios and tests. Typically, this means a set of tempest tests. This list focuses on API concepts like attach and detach volumes, rather than deployment specific concepts like attach an iSCSI volume to a KVM based VM. Deployment ---------- A deployment maps to a specific test environment. We provide a full description of the environment, so it is possible to reproduce the reported test results for each of the Feature Groups. This description includes all aspects of the deployment, for example the hypervisor, number of nova-compute services, storage, network driver, and types of images being tested. Feature Group Maturity ----------------------- The Feature Group Maturity rating is specific to the API concepts, rather than specific to a particular deployment. That detail is covered in the deployment rating for each feature group. .. note:: Although having some similarities, this list is not directly related to the DefCore effort. **Feature Group ratings:** Incomplete Incomplete features are those that do not have enough functionality to satisfy real world use cases. Experimental Experimental features should be used with extreme caution. They are likely to have little or no upstream testing, and are therefore likely to contain bugs. Complete For a feature to be considered complete, it must have: * complete API docs (concept and REST call definition) * complete Administrator docs * tempest tests that define if the feature works correctly * sufficient functionality and reliability to be useful in real world scenarios * a reasonable expectation that the feature will be supported long-term Complete and Required There are various reasons why a complete feature may be required, but generally it is when all drivers support that feature. New drivers need to prove they support all required features before they are allowed in upstream Nova. Required features are those that any new technology must support before being allowed into tree. The larger the list, the more features are available on all Nova based clouds. Deprecated Deprecated features are those that are scheduled to be removed in a future major release of Nova. If a feature is marked as complete, it should never be deprecated. If a feature is incomplete or experimental for several releases, it runs the risk of being deprecated and later removed from the code base. Deployment Rating for a Feature Group -------------------------------------- The deployment rating refers to the state of the tests for each Feature Group on a particular deployment. **Deployment ratings:** Unknown No data is available. Not Implemented No tests exist. Implemented Self declared that the tempest tests pass. Regularly Tested Tested by third party CI. Checked Tested as part of the check or gate queue. The eventual goal is to automate this list from a third party CI reporting system, but currently we document manual inspections in an ini file. Ideally, we will review the list at every milestone. nova-17.0.13/doc/source/user/flavors.rst0000664000175000017500000006352513556316250020122 0ustar zuulzuul00000000000000======= Flavors ======= In OpenStack, flavors define the compute, memory, and storage capacity of nova computing instances. To put it simply, a flavor is an available hardware configuration for a server. It defines the *size* of a virtual server that can be launched. .. note:: Flavors can also determine on which compute host a flavor can be used to launch an instance. For information about customizing flavors, refer to :doc:`/admin/flavors`. Overview -------- A flavor consists of the following parameters: Flavor ID Unique ID (integer or UUID) for the new flavor. This property is required. If specifying 'auto', a UUID will be automatically generated. Name Name for the new flavor. This property is required. Historically, names were given a format `XX.SIZE_NAME`. These are typically not required, though some third party tools may rely on it. VCPUs Number of virtual CPUs to use. This property is required. Memory MB Amount of RAM to use (in megabytes). This property is required. Root Disk GB Amount of disk space (in gigabytes) to use for the root (``/``) partition. This property is required. The root disk is an ephemeral disk that the base image is copied into. When booting from a persistent volume it is not used. The ``0`` size is a special case which uses the native base image size as the size of the ephemeral root volume. However, in this case the filter scheduler cannot select the compute host based on the virtual image size. As a result, ``0`` should only be used for volume booted instances or for testing purposes. Volume-backed instances can be enforced for flavors with zero root disk via the ``os_compute_api:servers:create:zero_disk_flavor`` policy rule. Ephemeral Disk GB Amount of disk space (in gigabytes) to use for the ephemeral partition. This property is optional. If unspecified, the value is ``0`` by default. Ephemeral disks offer machine local disk storage linked to the lifecycle of a VM instance. When a VM is terminated, all data on the ephemeral disk is lost. Ephemeral disks are not included in any snapshots. Swap Amount of swap space (in megabytes) to use. This property is optional. If unspecified, the value is ``0`` by default. RXTX Factor The receive/transmit factor of any network ports on the instance. This property is optional. If unspecified, the value is ``1.0`` by default. .. note:: This property only applies if using the `xen` compute driver with the `nova-network` network driver. It will likely be deprecated in a future release. `neutron` users should refer to the `neutron QoS documentation`__. __ https://docs.openstack.org/neutron/latest/admin/config-qos.html Is Public Boolean value that defines whether the flavor is available to all users or private to the project it was created in. This property is optional. In unspecified, the value is ``True`` by default. By default, a flavor is public and available to all projects. Private flavors are only accessible to those on the access list for a given project and are invisible to other projects. Extra Specs Key and value pairs that define on which compute nodes a flavor can run. These are optional. Extra specs are generally used as scheduler hints for more advanced instance configuration. The key-value pairs used must correspond to well-known options. For more information on the standardized extra specs available, :ref:`see below ` .. _flavors-extra-specs: Extra Specs ~~~~~~~~~~~ .. TODO: Consider adding a table of contents here for the various extra specs or make them sub-sections. .. todo:: A lot of these need investigation - for example, I can find no reference to the ``cpu_shares_level`` option outside of documentation and (possibly) useless tests. We should assess which drivers each option actually apply to. CPU limits You can configure the CPU limits with control parameters. For example, to configure the I/O limit, use: .. code-block:: console $ openstack flavor set FLAVOR-NAME \ --property quota:read_bytes_sec=10240000 \ --property quota:write_bytes_sec=10240000 Use these optional parameters to control weight shares, enforcement intervals for runtime quotas, and a quota for maximum allowed bandwidth: - ``cpu_shares``: Specifies the proportional weighted share for the domain. If this element is omitted, the service defaults to the OS provided defaults. There is no unit for the value; it is a relative measure based on the setting of other VMs. For example, a VM configured with value 2048 gets twice as much CPU time as a VM configured with value 1024. - ``cpu_shares_level``: On VMware, specifies the allocation level. Can be ``custom``, ``high``, ``normal``, or ``low``. If you choose ``custom``, set the number of shares using ``cpu_shares_share``. - ``cpu_period``: Specifies the enforcement interval (unit: microseconds) for QEMU and LXC hypervisors. Within a period, each VCPU of the domain is not allowed to consume more than the quota worth of runtime. The value should be in range ``[1000, 1000000]``. A period with value 0 means no value. - ``cpu_limit``: Specifies the upper limit for VMware machine CPU allocation in MHz. This parameter ensures that a machine never uses more than the defined amount of CPU time. It can be used to enforce a limit on the machine's CPU performance. - ``cpu_reservation``: Specifies the guaranteed minimum CPU reservation in MHz for VMware. This means that if needed, the machine will definitely get allocated the reserved amount of CPU cycles. - ``cpu_quota``: Specifies the maximum allowed bandwidth (unit: microseconds). A domain with a negative-value quota indicates that the domain has infinite bandwidth, which means that it is not bandwidth controlled. The value should be in range ``[1000, 18446744073709551]`` or less than 0. A quota with value 0 means no value. You can use this feature to ensure that all vCPUs run at the same speed. For example: .. code-block:: console $ openstack flavor set FLAVOR-NAME \ --property quota:cpu_quota=10000 \ --property quota:cpu_period=20000 In this example, an instance of ``FLAVOR-NAME`` can only consume a maximum of 50% CPU of a physical CPU computing capability. Memory limits For VMware, you can configure the memory limits with control parameters. Use these optional parameters to limit the memory allocation, guarantee minimum memory reservation, and to specify shares used in case of resource contention: - ``memory_limit``: Specifies the upper limit for VMware machine memory allocation in MB. The utilization of a virtual machine will not exceed this limit, even if there are available resources. This is typically used to ensure a consistent performance of virtual machines independent of available resources. - ``memory_reservation``: Specifies the guaranteed minimum memory reservation in MB for VMware. This means the specified amount of memory will definitely be allocated to the machine. - ``memory_shares_level``: On VMware, specifies the allocation level. This can be ``custom``, ``high``, ``normal`` or ``low``. If you choose ``custom``, set the number of shares using ``memory_shares_share``. - ``memory_shares_share``: Specifies the number of shares allocated in the event that ``custom`` is used. There is no unit for this value. It is a relative measure based on the settings for other VMs. For example: .. code-block:: console $ openstack flavor set FLAVOR-NAME \ --property quota:memory_shares_level=custom \ --property quota:memory_shares_share=15 Disk I/O limits For VMware, you can configure the resource limits for disk with control parameters. Use these optional parameters to limit the disk utilization, guarantee disk allocation, and to specify shares used in case of resource contention. This allows the VMware driver to enable disk allocations for the running instance. - ``disk_io_limit``: Specifies the upper limit for disk utilization in I/O per second. The utilization of a virtual machine will not exceed this limit, even if there are available resources. The default value is -1 which indicates unlimited usage. - ``disk_io_reservation``: Specifies the guaranteed minimum disk allocation in terms of Input/output Operations Per Second (IOPS). - ``disk_io_shares_level``: Specifies the allocation level. This can be ``custom``, ``high``, ``normal`` or ``low``. If you choose custom, set the number of shares using ``disk_io_shares_share``. - ``disk_io_shares_share``: Specifies the number of shares allocated in the event that ``custom`` is used. When there is resource contention, this value is used to determine the resource allocation. The example below sets the ``disk_io_reservation`` to 2000 IOPS. .. code-block:: console $ openstack flavor set FLAVOR-NAME \ --property quota:disk_io_reservation=2000 Disk tuning Using disk I/O quotas, you can set maximum disk write to 10 MB per second for a VM user. For example: .. code-block:: console $ openstack flavor set FLAVOR-NAME \ --property quota:disk_write_bytes_sec=10485760 The disk I/O options are: - ``disk_read_bytes_sec`` - ``disk_read_iops_sec`` - ``disk_write_bytes_sec`` - ``disk_write_iops_sec`` - ``disk_total_bytes_sec`` - ``disk_total_iops_sec`` Bandwidth I/O The vif I/O options are: - ``vif_inbound_average`` - ``vif_inbound_burst`` - ``vif_inbound_peak`` - ``vif_outbound_average`` - ``vif_outbound_burst`` - ``vif_outbound_peak`` Incoming and outgoing traffic can be shaped independently. The bandwidth element can have at most, one inbound and at most, one outbound child element. If you leave any of these child elements out, no quality of service (QoS) is applied on that traffic direction. So, if you want to shape only the network's incoming traffic, use inbound only (and vice versa). Each element has one mandatory attribute average, which specifies the average bit rate on the interface being shaped. There are also two optional attributes (integer): ``peak``, which specifies the maximum rate at which a bridge can send data (kilobytes/second), and ``burst``, the amount of bytes that can be burst at peak speed (kilobytes). The rate is shared equally within domains connected to the network. The example below sets network traffic bandwidth limits for existing flavor as follows: - Outbound traffic: - average: 262 Mbps (32768 kilobytes/second) - peak: 524 Mbps (65536 kilobytes/second) - burst: 65536 kilobytes - Inbound traffic: - average: 262 Mbps (32768 kilobytes/second) - peak: 524 Mbps (65536 kilobytes/second) - burst: 65536 kilobytes .. code-block:: console $ openstack flavor set FLAVOR-NAME \ --property quota:vif_outbound_average=32768 \ --property quota:vif_outbound_peak=65536 \ --property quota:vif_outbound_burst=65536 \ --property quota:vif_inbound_average=32768 \ --property quota:vif_inbound_peak=65536 \ --property quota:vif_inbound_burst=65536 .. note:: All the speed limit values in above example are specified in kilobytes/second. And burst values are in kilobytes. Values were converted using `Data rate units on Wikipedia `_. Watchdog behavior For the libvirt driver, you can enable and set the behavior of a virtual hardware watchdog device for each flavor. Watchdog devices keep an eye on the guest server, and carry out the configured action, if the server hangs. The watchdog uses the i6300esb device (emulating a PCI Intel 6300ESB). If ``hw:watchdog_action`` is not specified, the watchdog is disabled. To set the behavior, use: .. code-block:: console $ openstack flavor set FLAVOR-NAME --property hw:watchdog_action=ACTION Valid ACTION values are: - ``disabled``: (default) The device is not attached. - ``reset``: Forcefully reset the guest. - ``poweroff``: Forcefully power off the guest. - ``pause``: Pause the guest. - ``none``: Only enable the watchdog; do nothing if the server hangs. .. note:: Watchdog behavior set using a specific image's properties will override behavior set using flavors. Random-number generator If a random-number generator device has been added to the instance through its image properties, the device can be enabled and configured using: .. code-block:: console $ openstack flavor set FLAVOR-NAME \ --property hw_rng:allowed=True \ --property hw_rng:rate_bytes=RATE-BYTES \ --property hw_rng:rate_period=RATE-PERIOD Where: - RATE-BYTES: (integer) Allowed amount of bytes that the guest can read from the host's entropy per period. - RATE-PERIOD: (integer) Duration of the read period in milliseconds. CPU topology For the libvirt driver, you can define the topology of the processors in the virtual machine using properties. The properties with ``max`` limit the number that can be selected by the user with image properties. .. code-block:: console $ openstack flavor set FLAVOR-NAME \ --property hw:cpu_sockets=FLAVOR-SOCKETS \ --property hw:cpu_cores=FLAVOR-CORES \ --property hw:cpu_threads=FLAVOR-THREADS \ --property hw:cpu_max_sockets=FLAVOR-SOCKETS \ --property hw:cpu_max_cores=FLAVOR-CORES \ --property hw:cpu_max_threads=FLAVOR-THREADS Where: - FLAVOR-SOCKETS: (integer) The number of sockets for the guest VM. By default, this is set to the number of vCPUs requested. - FLAVOR-CORES: (integer) The number of cores per socket for the guest VM. By default, this is set to ``1``. - FLAVOR-THREADS: (integer) The number of threads per core for the guest VM. By default, this is set to ``1``. .. _extra-specs-cpu-policy: CPU pinning policy For the libvirt driver, you can pin the virtual CPUs (vCPUs) of instances to the host's physical CPU cores (pCPUs) using properties. You can further refine this by stating how hardware CPU threads in a simultaneous multithreading-based (SMT) architecture be used. These configurations will result in improved per-instance determinism and performance. .. note:: SMT-based architectures include Intel processors with Hyper-Threading technology. In these architectures, processor cores share a number of components with one or more other cores. Cores in such architectures are commonly referred to as hardware threads, while the cores that a given core share components with are known as thread siblings. .. note:: Host aggregates should be used to separate these pinned instances from unpinned instances as the latter will not respect the resourcing requirements of the former. .. code:: console $ openstack flavor set FLAVOR-NAME \ --property hw:cpu_policy=CPU-POLICY \ --property hw:cpu_thread_policy=CPU-THREAD-POLICY Valid CPU-POLICY values are: - ``shared``: (default) The guest vCPUs will be allowed to freely float across host pCPUs, albeit potentially constrained by NUMA policy. - ``dedicated``: The guest vCPUs will be strictly pinned to a set of host pCPUs. In the absence of an explicit vCPU topology request, the drivers typically expose all vCPUs as sockets with one core and one thread. When strict CPU pinning is in effect the guest CPU topology will be setup to match the topology of the CPUs to which it is pinned. This option implies an overcommit ratio of 1.0. For example, if a two vCPU guest is pinned to a single host core with two threads, then the guest will get a topology of one socket, one core, two threads. Valid CPU-THREAD-POLICY values are: - ``prefer``: (default) The host may or may not have an SMT architecture. Where an SMT architecture is present, thread siblings are preferred. - ``isolate``: The host must not have an SMT architecture or must emulate a non-SMT architecture. If the host does not have an SMT architecture, each vCPU is placed on a different core as expected. If the host does have an SMT architecture - that is, one or more cores have thread siblings - then each vCPU is placed on a different physical core. No vCPUs from other guests are placed on the same core. All but one thread sibling on each utilized core is therefore guaranteed to be unusable. - ``require``: The host must have an SMT architecture. Each vCPU is allocated on thread siblings. If the host does not have an SMT architecture, then it is not used. If the host has an SMT architecture, but not enough cores with free thread siblings are available, then scheduling fails. .. note:: The ``hw:cpu_thread_policy`` option is only valid if ``hw:cpu_policy`` is set to ``dedicated``. .. _extra-specs-numa-topology: NUMA topology For the libvirt driver, you can define the host NUMA placement for the instance vCPU threads as well as the allocation of instance vCPUs and memory from the host NUMA nodes. For flavors whose memory and vCPU allocations are larger than the size of NUMA nodes in the compute hosts, the definition of a NUMA topology allows hosts to better utilize NUMA and improve performance of the instance OS. .. code-block:: console $ openstack flavor set FLAVOR-NAME \ --property hw:numa_nodes=FLAVOR-NODES \ --property hw:numa_cpus.N=FLAVOR-CORES \ --property hw:numa_mem.N=FLAVOR-MEMORY Where: - FLAVOR-NODES: (integer) The number of host NUMA nodes to restrict execution of instance vCPU threads to. If not specified, the vCPU threads can run on any number of the host NUMA nodes available. - N: (integer) The instance NUMA node to apply a given CPU or memory configuration to, where N is in the range ``0`` to ``FLAVOR-NODES - 1``. - FLAVOR-CORES: (comma-separated list of integers) A list of instance vCPUs to map to instance NUMA node N. If not specified, vCPUs are evenly divided among available NUMA nodes. - FLAVOR-MEMORY: (integer) The number of MB of instance memory to map to instance NUMA node N. If not specified, memory is evenly divided among available NUMA nodes. .. note:: ``hw:numa_cpus.N`` and ``hw:numa_mem.N`` are only valid if ``hw:numa_nodes`` is set. Additionally, they are only required if the instance's NUMA nodes have an asymmetrical allocation of CPUs and RAM (important for some NFV workloads). .. note:: The ``N`` parameter is an index of *guest* NUMA nodes and may not correspond to *host* NUMA nodes. For example, on a platform with two NUMA nodes, the scheduler may opt to place guest NUMA node 0, as referenced in ``hw:numa_mem.0`` on host NUMA node 1 and vice versa. Similarly, the integers used for ``FLAVOR-CORES`` are indexes of *guest* vCPUs and may not correspond to *host* CPUs. As such, this feature cannot be used to constrain instances to specific host CPUs or NUMA nodes. .. warning:: If the combined values of ``hw:numa_cpus.N`` or ``hw:numa_mem.N`` are greater than the available number of CPUs or memory respectively, an exception is raised. .. _extra-specs-realtime-policy: CPU real-time policy For the libvirt driver, you can state that one or more of your instance virtual CPUs (vCPUs), though not all of them, run with a real-time policy. When used on a correctly configured host, this provides stronger guarantees for worst case scheduler latency for vCPUs and is a requirement for certain applications. .. todo:: Document the required steps to configure hosts and guests. There are a lot of things necessary, from isolating hosts and configuring the ``vcpu_pin_set`` nova configuration option on the host, to choosing a correctly configured guest image. .. important:: While most of your instance vCPUs can run with a real-time policy, you must mark at least one vCPU as non-real-time, to be used for both non-real-time guest processes and emulator overhead (housekeeping) processes. .. important:: To use this extra spec, you must enable pinned CPUs. Refer to :ref:`CPU policy ` for more information. .. code:: console $ openstack flavor set FLAVOR-NAME \ --property hw:cpu_realtime=CPU-REALTIME-POLICY \ --property hw:cpu_realtime_mask=CPU-REALTIME-MASK Where: CPU-REALTIME-POLICY (enum): One of: - ``no``: (default) The guest vCPUs will not have a real-time policy - ``yes``: The guest vCPUs will have a real-time policy CPU-REALTIME-MASK (coremask): A coremask indicating which vCPUs **will not** have a real-time policy. This should start with a ``^``. For example, a value of ``^0-1`` indicates that all vCPUs *except* vCPUs ``0`` and ``1`` will have a real-time policy. .. note:: The ``hw:cpu_realtime_mask`` option is only valid if ``hw:cpu_realtime`` is set to ``yes``. Emulator threads policy For the libvirt driver, you can assign a separate pCPU to an instance that will be used for emulator threads, which are emulator processes not directly related to the guest OS. This pCPU will used in addition to the pCPUs used for the guest. This is generally required for use with a :ref:`real-time workload `. .. important:: To use this extra spec, you must enable pinned CPUs. Refer to :ref:`CPU policy ` for more information. .. code:: console $ openstack flavor set FLAVOR-NAME \ --property hw:emulator_threads_policy=THREAD-POLICY Valid THREAD-POLICY values are: - ``share``: (default) The emulator threads float across the pCPUs associated to the guest. - ``isolate``: The emulator threads are isolated on a single pCPU. Large pages allocation You can configure the size of large pages used to back the VMs. .. code:: console $ openstack flavor set FLAVOR-NAME \ --property hw:mem_page_size=PAGE_SIZE Valid ``PAGE_SIZE`` values are: - ``small``: (default) The smallest page size is used. Example: 4 KB on x86. - ``large``: Only use larger page sizes for guest RAM. Example: either 2 MB or 1 GB on x86. - ``any``: It is left up to the compute driver to decide. In this case, the libvirt driver might try to find large pages, but fall back to small pages. Other drivers may choose alternate policies for ``any``. - pagesize: (string) An explicit page size can be set if the workload has specific requirements. This value can be an integer value for the page size in KB, or can use any standard suffix. Example: ``4KB``, ``2MB``, ``2048``, ``1GB``. .. note:: Large pages can be enabled for guest RAM without any regard to whether the guest OS will use them or not. If the guest OS chooses not to use huge pages, it will merely see small pages as before. Conversely, if a guest OS does intend to use huge pages, it is very important that the guest RAM be backed by huge pages. Otherwise, the guest OS will not be getting the performance benefit it is expecting. PCI passthrough You can assign PCI devices to a guest by specifying them in the flavor. .. code:: console $ openstack flavor set FLAVOR-NAME \ --property pci_passthrough:alias=ALIAS:COUNT Where: - ALIAS: (string) The alias which correspond to a particular PCI device class as configured in the nova configuration file (see :doc:`/configuration/config`). - COUNT: (integer) The amount of PCI devices of type ALIAS to be assigned to a guest. Secure Boot When your Compute services use the Hyper-V hypervisor, you can enable secure boot for Windows and Linux instances. .. code:: console $ openstack flavor set FLAVOR-NAME \ --property os:secure_boot=SECURE_BOOT_OPTION Valid ``SECURE_BOOT_OPTION`` values are: - ``required``: Enable Secure Boot for instances running with this flavor. - ``disabled`` or ``optional``: (default) Disable Secure Boot for instances running with this flavor. Custom resource classes and standard resource classes to override Added in the 16.0.0 Pike release. Specify custom resource classes to require or override quantity values of standard resource classes. The syntax of the extra spec is ``resources:=VALUE`` (``VALUE`` is integer). The name of custom resource classes must start with ``CUSTOM_``. Standard resource classes to override are ``VCPU``, ``MEMORY_MB`` or ``DISK_GB``. In this case, you can disable scheduling based on standard resource classes by setting the value to ``0``. For example: - resources:CUSTOM_BAREMETAL_SMALL=1 - resources:VCPU=0 See `Create flavors for use with the Bare Metal service `_ for more examples. Required traits Added in the 17.0.0 Queens release. Required traits allow specifying a server to build on a compute node with the set of traits specified in the flavor. The traits are associated with the resource provider that represents the compute node in the Placement API. See the resource provider traits API reference for more details: https://developer.openstack.org/api-ref/placement/#resource-provider-traits The syntax of the extra spec is ``trait:=required``, for example: - trait:HW_CPU_X86_AVX2=required - trait:STORAGE_DISK_SSD=required The scheduler will pass required traits to the ``GET /allocation_candidates`` endpoint in the Placement API to include only resource providers that can satisfy the required traits. Currently the only valid value is ``required``. Any other value will be considered invalid. The FilterScheduler is currently the only scheduler driver that supports this feature. nova-17.0.13/doc/source/user/architecture.rst0000664000175000017500000000571613556316250021126 0ustar zuulzuul00000000000000.. Copyright 2010-2011 United States Government as represented by the Administrator of the National Aeronautics and Space Administration. All Rights Reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. Nova System Architecture ======================== Nova is comprised of multiple server processes, each performing different functions. The user-facing interface is a REST API, while internally Nova components communicate via an RPC message passing mechanism. The API servers process REST requests, which typically involve database reads/writes, optionally sending RPC messages to other Nova services, and generating responses to the REST calls. RPC messaging is done via the **oslo.messaging** library, an abstraction on top of message queues. Most of the major nova components can be run on multiple servers, and have a `manager` that is listening for `RPC` messages. The one major exception is nova-compute, where a single process runs on the hypervisor it is managing (except when using the VMware or Ironic drivers). The manager also, optionally, has periodic tasks. For more details on our `RPC` system, please see: :doc:`/reference/rpc` Nova also uses a central database that is (logically) shared between all components. However, to aid upgrade, the DB is accessed through an object layer that ensures an upgraded control plane can still communicate with a nova-compute running the previous release. To make this possible nova-compute proxies DB requests over `RPC` to a central manager called `nova-conductor` To horizontally expand Nova deployments, we have a deployment sharding concept called cells. For more information please see: :doc:`cells` Components ---------- Below you will find a helpful explanation of the key components of a typical (non-cells v1) Nova deployment. .. image:: /_static/images/architecture.svg :width: 100% * DB: sql database for data storage. * API: component that receives HTTP requests, converts commands and communicates with other components via the **oslo.messaging** queue or HTTP * Scheduler: decides which host gets each instance * Network: manages ip forwarding, bridges, and vlans * Compute: manages communication with hypervisor and virtual machines. * Conductor: handles requests that need coordination(build/resize), acts as a database proxy, or handles object conversions. While all services are designed to be horizontally scalable, you should have significantly more computes then anything else. nova-17.0.13/doc/source/user/feature-matrix-gp.ini0000664000175000017500000003132613556316250021750 0ustar zuulzuul00000000000000# # Lists all the CI jobs as targets # [target.libvirt-kvm] title=libvirt+kvm (x86 & ppc64) link=http://docs.openstack.org/infra/manual/developers.html#project-gating [target.libvirt-kvm-s390] title=libvirt+kvm (s390x) link=http://docs.openstack.org/infra/manual/developers.html#project-gating [target.libvirt-virtuozzo-ct] title=libvirt+virtuozzo CT link=https://wiki.openstack.org/wiki/ThirdPartySystems/Virtuozzo_CI [target.libvirt-virtuozzo-vm] title=libvirt+virtuozzo VM link=https://wiki.openstack.org/wiki/ThirdPartySystems/Virtuozzo_Storage_CI [target.libvirt-xen] title=libvirt+xen link=https://wiki.openstack.org/wiki/ThirdPartySystems/XenProject_CI [target.xenserver] title=XenServer CI link=https://wiki.openstack.org/wiki/XenServer/XenServer_CI [target.vmware] title=VMware CI link=https://wiki.openstack.org/wiki/NovaVMware/Minesweeper [target.hyperv] title=Hyper-V CI link=https://wiki.openstack.org/wiki/ThirdPartySystems/Hyper-V_CI [target.ironic] title=Ironic CI link= [target.powervm] title=IBM PowerVM CI link=https://wiki.openstack.org/wiki/ThirdPartySystems/IBM_PowerVM_CI # # Lists all features # # Includes information on the feature, its maturity, status, # links to admin docs, api docs and tempest test uuids. # # It then lists the current state for each of the about CI jobs. # It is hoped this mapping will eventually be automated. # # This doesn't include things like Server metadata, Server tagging, # or Lock Server, or Keypair CRUD as they can all be tested independently # of the nova virt driver used. # [operation.create-delete-server] title=Create Server and Delete Server notes=This includes creating a server, and deleting a server. Specifically this is about booting a server from a glance image using the default disk and network configuration. maturity=complete api_doc_link=http://developer.openstack.org/api-ref/compute/#servers-servers admin_doc_link=https://docs.openstack.org/nova/latest/user/launch-instances.html tempest_test_uuids=9a438d88-10c6-4bcd-8b5b-5b6e25e1346f;585e934c-448e-43c4-acbf-d06a9b899997 libvirt-kvm=complete libvirt-kvm-s390=unknown libvirt-virtuozzo-ct=partial driver-notes-libvirt-virtuozzo-ct=This is not tested in a CI system, but it is implemented. libvirt-virtuozzo-vm=partial driver-notes-libvirt-virtuozzo-vm=This is not tested in a CI system, but it is implemented. libvirt-xen=complete xenserver=complete vmware=complete hyperv=complete ironic=unknown powervm=complete [operation.snapshot-server] title=Snapshot Server notes=This is creating a glance image from the currently running server. maturity=complete api_doc_link=http://developer.openstack.org/api-ref/compute/?expanded=#servers-run-an-action-servers-action admin_doc_link=https://docs.openstack.org/glance/latest/admin/troubleshooting.html tempest_test_uuids=aaacd1d0-55a2-4ce8-818a-b5439df8adc9 cli= libvirt-kvm=complete libvirt-kvm-s390=unknown libvirt-virtuozzo-ct=partial driver-notes-libvirt-virtuozzo-ct=This is not tested in a CI system, but it is implemented. libvirt-virtuozzo-vm=partial driver-notes-libvirt-virtuozzo-vm=This is not tested in a CI system, but it is implemented. libvirt-xen=complete xenserver=complete vmware=unknown hyperv=unknown ironic=unknown powervm=missing [operation.power-ops] title=Server power ops notes=This includes reboot, shutdown and start. maturity=complete api_doc_link=http://developer.openstack.org/api-ref/compute/?expanded=#servers-run-an-action-servers-action tempest_test_uuids=2cb1baf6-ac8d-4429-bf0d-ba8a0ba53e32;af8eafd4-38a7-4a4b-bdbc-75145a580560 cli= libvirt-kvm=complete libvirt-kvm-s390=unknown libvirt-virtuozzo-ct=partial driver-notes-libvirt-virtuozzo-ct=This is not tested in a CI system, but it is implemented. libvirt-virtuozzo-vm=partial driver-notes-libvirt-virtuozzo-vm=This is not tested in a CI system, but it is implemented. libvirt-xen=complete xenserver=complete vmware=complete hyperv=complete ironic=unknown powervm=complete [operation.rebuild-server] title=Rebuild Server notes=You can rebuild a server, optionally specifying the glance image to use. maturity=complete api_doc_link=http://developer.openstack.org/api-ref/compute/?expanded=#servers-run-an-action-servers-action tempest_test_uuids=aaa6cdf3-55a7-461a-add9-1c8596b9a07c cli= libvirt-kvm=complete libvirt-kvm-s390=unknown libvirt-virtuozzo-ct=partial driver-notes-libvirt-virtuozzo-ct=This is not tested in a CI system, but it is implemented. libvirt-virtuozzo-vm=partial driver-notes-libvirt-virtuozzo-vm=This is not tested in a CI system, but it is implemented. libvirt-xen=complete xenserver=complete vmware=complete hyperv=complete ironic=unknown powervm=missing [operation.resize-server] title=Resize Server notes=You resize a server to a new flavor, then confirm or revert that operation. maturity=complete api_doc_link=http://developer.openstack.org/api-ref/compute/?expanded=#servers-run-an-action-servers-action tempest_test_uuids=1499262a-9328-4eda-9068-db1ac57498d2 cli= libvirt-kvm=complete libvirt-kvm-s390=unknown libvirt-virtuozzo-ct=complete libvirt-virtuozzo-vm=partial driver-notes-libvirt-virtuozzo-vm=This is not tested in a CI system, but it is implemented. libvirt-xen=complete xenserver=complete vmware=complete hyperv=complete ironic=unknown powervm=missing [operation.server-volume-ops] title=Volume Operations notes=This is about attaching volumes, detaching volumes. maturity=complete api_doc_link=http://developer.openstack.org/api-ref/compute/#servers-with-volume-attachments-servers-os-volume-attachments admin_doc_link=https://docs.openstack.org/cinder/latest/admin/blockstorage-manage-volumes.html tempest_test_uuids=fff42874-7db5-4487-a8e1-ddda5fb5288d cli= libvirt-kvm=complete libvirt-kvm-s390=unknown libvirt-virtuozzo-ct=complete libvirt-virtuozzo-vm=complete libvirt-xen=complete xenserver=complete vmware=complete hyperv=complete ironic=missing powervm=missing [operation.server-bdm] title=Custom disk configurations on boot notes=This is about supporting all the features of BDMv2. This includes booting from a volume, in various ways, and specifying a custom set of ephemeral disks. Note some drivers only supports part of what the API allows. maturity=complete api_doc_link=http://developer.openstack.org/api-ref/compute/?expanded=create-image-createimage-action-detail#create-server admin_doc_link=https://docs.openstack.org/nova/latest/user/block-device-mapping.html tempest_test_uuids=557cd2c2-4eb8-4dce-98be-f86765ff311b, 36c34c67-7b54-4b59-b188-02a2f458a63b cli= libvirt-kvm=complete libvirt-kvm-s390=unknown libvirt-virtuozzo-ct=missing libvirt-virtuozzo-vm=complete libvirt-xen=complete xenserver=partial driver-notes-xenserver=This is not tested in a CI system, and only partially implemented. vmware=partial driver-notes-vmware=This is not tested in a CI system, but it is implemented. hyperv=complete:n ironic=missing powervm=missing [operation.server-neutron] title=Custom neutron configurations on boot notes=This is about supporting booting from one or more neutron ports, or all the related short cuts such as booting a specified network. This does not include SR-IOV or similar, just simple neutron ports. maturity=complete api_doc_link=http://developer.openstack.org/api-ref/compute/?&expanded=create-server-detail admin_doc_link= tempest_test_uuids=2f3a0127-95c7-4977-92d2-bc5aec602fb4 cli= libvirt-kvm=complete libvirt-kvm-s390=unknown libvirt-virtuozzo-ct=unknown libvirt-virtuozzo-vm=unknown libvirt-xen=partial driver-notes-libvirt-xen=This is not tested in a CI system, but it is implemented. xenserver=partial driver-notes-xenserver=This is not tested in a CI system, but it is implemented. vmware=partial driver-notes-vmware=This is not tested in a CI system, but it is implemented. hyperv=partial driver-notes-hyperv=This is not tested in a CI system, but it is implemented. ironic=missing powervm=complete [operation.server-pause] title=Pause a Server notes=This is pause and unpause a server, where the state is held in memory. maturity=complete api_doc_link=http://developer.openstack.org/api-ref/compute/?#pause-server-pause-action admin_doc_link= tempest_test_uuids=bd61a9fd-062f-4670-972b-2d6c3e3b9e73 cli= libvirt-kvm=complete libvirt-kvm-s390=unknown libvirt-virtuozzo-ct=missing libvirt-virtuozzo-vm=partial driver-notes-libvirt-virtuozzo-vm=This is not tested in a CI system, but it is implemented. libvirt-xen=complete xenserver=complete vmware=partial driver-notes-vmware=This is not tested in a CI system, but it is implemented. hyperv=complete ironic=missing powervm=missing [operation.server-suspend] title=Suspend a Server notes=This suspend and resume a server, where the state is held on disk. maturity=complete api_doc_link=http://developer.openstack.org/api-ref/compute/?expanded=suspend-server-suspend-action-detail admin_doc_link= tempest_test_uuids=0d8ee21e-b749-462d-83da-b85b41c86c7f cli= libvirt-kvm=complete libvirt-kvm-s390=unknown libvirt-virtuozzo-ct=partial driver-notes-libvirt-virtuozzo-ct=This is not tested in a CI system, but it is implemented. libvirt-virtuozzo-vm=partial driver-notes-libvirt-virtuozzo-vm=This is not tested in a CI system, but it is implemented. libvirt-xen=complete xenserver=complete vmware=complete hyperv=complete ironic=missing powervm=missing [operation.server-consoleoutput] title=Server console output notes=This gets the current server console output. maturity=complete api_doc_link=http://developer.openstack.org/api-ref/compute/#show-console-output-os-getconsoleoutput-action admin_doc_link= tempest_test_uuids=4b8867e6-fffa-4d54-b1d1-6fdda57be2f3 cli= libvirt-kvm=complete libvirt-kvm-s390=unknown libvirt-virtuozzo-ct=unknown libvirt-virtuozzo-vm=unknown libvirt-xen=complete xenserver=complete vmware=partial driver-notes-vmware=This is not tested in a CI system, but it is implemented. hyperv=partial driver-notes-hyperv=This is not tested in a CI system, but it is implemented. ironic=missing powervm=complete [operation.server-rescue] title=Server Rescue notes=This boots a server with a new root disk from the specified glance image to allow a user to fix a boot partition configuration, or similar. maturity=complete api_doc_link=http://developer.openstack.org/api-ref/compute/#rescue-server-rescue-action admin_doc_link= tempest_test_uuids=fd032140-714c-42e4-a8fd-adcd8df06be6;70cdb8a1-89f8-437d-9448-8844fd82bf46 cli= libvirt-kvm=complete libvirt-kvm-s390=unknown libvirt-virtuozzo-ct=partial driver-notes-libvirt-virtuozzo-ct=This is not tested in a CI system, but it is implemented. libvirt-virtuozzo-vm=complete libvirt-xen=complete xenserver=complete vmware=complete hyperv=partial driver-notes-hyperv=This is not tested in a CI system, but it is implemented. ironic=missing powervm=missing [operation.server-configdrive] title=Server Config Drive notes=This ensures the user data provided by the user when booting a server is available in one of the expected config drive locations. maturity=complete api_doc_link=http://developer.openstack.org/api-ref/compute/#create-server admin_doc_link=https://docs.openstack.org/nova/latest/user/config-drive.html tempest_test_uuids=7fff3fb3-91d8-4fd0-bd7d-0204f1f180ba cli= libvirt-kvm=complete libvirt-kvm-s390=unknown libvirt-virtuozzo-ct=missing libvirt-virtuozzo-vm=partial driver-notes-libvirt-virtuozzo-vm=This is not tested in a CI system, but it is implemented. libvirt-xen=complete xenserver=complete vmware=complete hyperv=complete ironic=partial driver-notes-ironic=This is not tested in a CI system, but it is implemented. powervm=complete [operation.server-changepassword] title=Server Change Password notes=The ability to reset the password of a user within the server. maturity=experimental api_doc_link=http://developer.openstack.org/api-ref/compute/#change-administrative-password-changepassword-action admin_doc_link= tempest_test_uuids=6158df09-4b82-4ab3-af6d-29cf36af858d cli= libvirt-kvm=partial driver-notes-libvirt-kvm=This is not tested in a CI system, but it is implemented. libvirt-kvm-s390=unknown libvirt-virtuozzo-ct=missing libvirt-virtuozzo-vm=missing libvirt-xen=missing xenserver=partial driver-notes-xenserver=This is not tested in a CI system, but it is implemented. vmware=missing hyperv=partial driver-notes-hyperv=This is not tested in a CI system, but it is implemented. ironic=missing powervm=missing [operation.server-shelve] title=Server Shelve and Unshelve notes=The ability to keep a server logically alive, but not using any cloud resources. For local disk based instances, this involves taking a snapshot, called offloading. maturity=complete api_doc_link=http://developer.openstack.org/api-ref/compute/#shelve-server-shelve-action admin_doc_link= tempest_test_uuids=1164e700-0af0-4a4c-8792-35909a88743c,c1b6318c-b9da-490b-9c67-9339b627271f cli= libvirt-kvm=complete libvirt-kvm-s390=unknown libvirt-virtuozzo-ct=missing libvirt-virtuozzo-vm=complete libvirt-xen=complete xenserver=complete vmware=missing hyperv=complete ironic=missing powervm=missing nova-17.0.13/doc/source/user/feature-matrix-hpc.ini0000664000175000017500000000514513556316250022114 0ustar zuulzuul00000000000000[target.libvirt-kvm] title=libvirt+kvm (x86 & ppc64) link=http://docs.openstack.org/infra/manual/developers.html#project-gating [target.libvirt-kvm-s390] title=libvirt+kvm (s390x) link=http://docs.openstack.org/infra/manual/developers.html#project-gating [target.libvirt-virtuozzo-ct] title=libvirt+virtuozzo CT link=https://wiki.openstack.org/wiki/ThirdPartySystems/Virtuozzo_CI [target.libvirt-virtuozzo-vm] title=libvirt+virtuozzo VM link=https://wiki.openstack.org/wiki/ThirdPartySystems/Virtuozzo_Storage_CI [target.libvirt-xen] title=libvirt+xen link=https://wiki.openstack.org/wiki/ThirdPartySystems/XenProject_CI [target.xenserver] title=XenServer CI link=https://wiki.openstack.org/wiki/XenServer/XenServer_CI [target.vmware] title=VMware CI link=https://wiki.openstack.org/wiki/NovaVMware/Minesweeper [target.hyperv] title=Hyper-V CI link=https://wiki.openstack.org/wiki/ThirdPartySystems/Hyper-V_CI [target.ironic] title=Ironic link=http://docs.openstack.org/infra/manual/developers.html#project-gating [target.powervm] title=PowerVM CI link=https://wiki.openstack.org/wiki/ThirdPartySystems/IBM_PowerVM_CI [operation.gpu-passthrough] title=GPU Passthrough notes=The PCI passthrough feature in OpenStack allows full access and direct control of a physical PCI device in guests. This mechanism is generic for any devices that can be attached to a PCI bus. Correct driver installation is the only requirement for the guest to properly use the devices. maturity=experimental api_doc_link=https://developer.openstack.org/api-ref/compute/#create-server admin_doc_link=https://docs.openstack.org/nova/latest/admin/pci-passthrough.html tempest_test_uuids=9a438d88-10c6-4bcd-8b5b-5b6e25e1346f;585e934c-448e-43c4-acbf-d06a9b899997 libvirt-kvm=complete:l libvirt-kvm-s390=unknown libvirt-virtuozzo-ct=partial driver-notes-libvirt-virtuozzo-ct=This is not tested in a CI system, but it is implemented. libvirt-virtuozzo-vm=partial driver-notes-libvirt-virtuozzo-vm=This is not tested in a CI system, but it is implemented. libvirt-xen=missing xenserver=partial:k vmware=missing hyperv=missing ironic=unknown powervm=missing [operation.virtual-gpu] title=Virtual GPUs notes=Attach a virtual GPU to an instance at server creation time maturity=experimental api_doc_link=https://developer.openstack.org/api-ref/compute/#create-server admin_doc_link=https://docs.openstack.org/nova/latest/admin/virtual-gpu.html libvirt-kvm=partial:queens libvirt-kvm-s390=unknown libvirt-virtuozzo-ct=unknown libvirt-virtuozzo-vm=unknown libvirt-xen=unknown xenserver=partial:queens vmware=missing hyperv=missing ironic=missing powervm=missing nova-17.0.13/doc/source/user/launch-instance-using-ISO-image.rst0000664000175000017500000001601113556316250024341 0ustar zuulzuul00000000000000================================== Launch an instance using ISO image ================================== .. _Boot_instance_from_ISO_image: Boot an instance from an ISO image ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ OpenStack supports booting instances using ISO images. But before you make such instances functional, use the :command:`openstack server create` command with the following parameters to boot an instance: .. code-block:: console $ openstack server create --image ubuntu-14.04.2-server-amd64.iso \ --nic net-id = NETWORK_UUID \ --flavor 2 INSTANCE_NAME +--------------------------------------+--------------------------------------------+ | Field | Value | +--------------------------------------+--------------------------------------------+ | OS-DCF:diskConfig | MANUAL | | OS-EXT-AZ:availability_zone | nova | | OS-EXT-SRV-ATTR:host | - | | OS-EXT-SRV-ATTR:hypervisor_hostname | - | | OS-EXT-SRV-ATTR:instance_name | instance-00000004 | | OS-EXT-STS:power_state | 0 | | OS-EXT-STS:task_state | scheduling | | OS-EXT-STS:vm_state | building | | OS-SRV-USG:launched_at | - | | OS-SRV-USG:terminated_at | - | | accessIPv4 | | | accessIPv6 | | | adminPass | ZaiYeC8iucgU | | config_drive | | | created | 2015-06-01T16:34:50Z | | flavor | m1.small (2) | | hostId | | | id | 1e1797f3-1662-49ff-ae8c-a77e82ee1571 | | image | ubuntu-14.04.2-server-amd64.iso | | key_name | - | | metadata | {} | | name | INSTANCE_NAME | | os-extended-volumes:volumes_attached | [] | | progress | 0 | | security_groups | default | | status | BUILD | | tenant_id | ccef9e62b1e645df98728fb2b3076f27 | | updated | 2014-05-09T16:34:51Z | | user_id | fef060ae7bfd4024b3edb97dff59017a | +--------------------------------------+--------------------------------------------+ In this command, ``ubuntu-14.04.2-server-amd64.iso`` is the ISO image, and ``INSTANCE_NAME`` is the name of the new instance. ``NETWORK_UUID`` is a valid network id in your system. Create a bootable volume for the instance to reside on after shutdown. #. Create the volume: .. code-block:: console $ openstack volume create \ --size \ --bootable VOLUME_NAME #. Attach the instance to the volume: .. code-block:: console $ openstack server add volume INSTANCE_NAME \ VOLUME_NAME \ --device /dev/vda .. note:: You need the Block Storage service to preserve the instance after shutdown. The ``--block-device`` argument, used with the legacy :command:`nova boot`, will not work with the OpenStack :command:`openstack server create` command. Instead, the :command:`openstack volume create` and :command:`openstack server add volume` commands create persistent storage. After the instance is successfully launched, connect to the instance using a remote console and follow the instructions to install the system as using ISO images on regular computers. When the installation is finished and system is rebooted, the instance asks you again to install the operating system, which means your instance is not usable. If you have problems with image creation, please check the `Virtual Machine Image Guide `_ for reference. .. _Make_instance_booted_from_ISO_image_functional: Make the instances booted from ISO image functional ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Now complete the following steps to make your instances created using ISO image actually functional. #. Delete the instance using the following command. .. code-block:: console $ openstack server delete INSTANCE_NAME #. After you delete the instance, the system you have just installed using your ISO image remains, because the parameter ``shutdown=preserve`` was set, so run the following command. .. code-block:: console $ openstack volume list +--------------------------+-------------------------+-----------+------+-------------+ | ID | Display Name | Status | Size | Attached to | +--------------------------+-------------------------+-----------+------+-------------+ | 8edd7c97-1276-47a5-9563- |dc01d873-d0f1-40b6-bfcc- | available | 10 | | | 1025f4264e4f | 26a8d955a1d9-blank-vol | | | | +--------------------------+-------------------------+-----------+------+-------------+ You get a list with all the volumes in your system. In this list, you can find the volume that is attached to your ISO created instance, with the false bootable property. #. Upload the volume to glance. .. code-block:: console $ openstack image create --volume SOURCE_VOLUME IMAGE_NAME $ openstack image list +-------------------+------------+--------+ | ID | Name | Status | +-------------------+------------+--------+ | 74303284-f802-... | IMAGE_NAME | active | +-------------------+------------+--------+ The ``SOURCE_VOLUME`` is the UUID or a name of the volume that is attached to your ISO created instance, and the ``IMAGE_NAME`` is the name that you give to your new image. #. After the image is successfully uploaded, you can use the new image to boot instances. The instances launched using this image contain the system that you have just installed using the ISO image. nova-17.0.13/doc/source/user/vendordata.rst0000664000175000017500000001364613556316250020574 0ustar zuulzuul00000000000000Vendordata ========== Nova presents configuration information to instances it starts via a mechanism called metadata. This metadata is made available via either a configdrive, or the metadata service. These mechanisms are widely used via helpers such as cloud-init to specify things like the root password the instance should use. There are three separate groups of people who need to be able to specify metadata for an instance. User provided data ------------------ The user who booted the instance can pass metadata to the instance in several ways. For authentication keypairs, the keypairs functionality of the Nova APIs can be used to upload a key and then specify that key during the Nova boot API request. For less structured data, a small opaque blob of data may be passed via the user-data feature of the Nova API. Examples of such unstructured data would be the puppet role that the instance should use, or the HTTP address of a server to fetch post-boot configuration information from. Nova provided data ------------------ Nova itself needs to pass information to the instance via its internal implementation of the metadata system. Such information includes the network configuration for the instance, as well as the requested hostname for the instance. This happens by default and requires no configuration by the user or deployer. Deployer provided data ---------------------- There is however a third type of data. It is possible that the deployer of OpenStack needs to pass data to an instance. It is also possible that this data is not known to the user starting the instance. An example might be a cryptographic token to be used to register the instance with Active Directory post boot -- the user starting the instance should not have access to Active Directory to create this token, but the Nova deployment might have permissions to generate the token on the user's behalf. Nova supports a mechanism to add "vendordata" to the metadata handed to instances. This is done by loading named modules, which must appear in the nova source code. We provide two such modules: - StaticJSON: a module which can include the contents of a static JSON file loaded from disk. This can be used for things which don't change between instances, such as the location of the corporate puppet server. - DynamicJSON: a module which will make a request to an external REST service to determine what metadata to add to an instance. This is how we recommend you generate things like Active Directory tokens which change per instance. Tell me more about DynamicJSON ============================== To use DynamicJSON, you configure it like this: - Add "DynamicJSON" to the vendordata_providers configuration option. This can also include "StaticJSON" if you'd like. - Specify the REST services to be contacted to generate metadata in the vendordata_dynamic_targets configuration option. There can be more than one of these, but note that they will be queried once per metadata request from the instance, which can mean a fair bit of traffic depending on your configuration and the configuration of the instance. The format for an entry in vendordata_dynamic_targets is like this: @ Where name is a short string not including the '@' character, and where the URL can include a port number if so required. An example would be:: testing@http://127.0.0.1:125 Metadata fetched from this target will appear in the metadata service at a new file called vendordata2.json, with a path (either in the metadata service URL or in the configdrive) like this: openstack/2016-10-06/vendor_data2.json For each dynamic target, there will be an entry in the JSON file named after that target. For example:: { "testing": { "value1": 1, "value2": 2, "value3": "three" } } Do not specify the same name more than once. If you do, we will ignore subsequent uses of a previously used name. The following data is passed to your REST service as a JSON encoded POST: +-------------+-------------------------------------------------+ | Key | Description | +=============+=================================================+ | project-id | The ID of the project that owns this instance. | +-------------+-------------------------------------------------+ | instance-id | The UUID of this instance. | +-------------+-------------------------------------------------+ | image-id | The ID of the image used to boot this instance. | +-------------+-------------------------------------------------+ | user-data | As specified by the user at boot time. | +-------------+-------------------------------------------------+ | hostname | The hostname of the instance. | +-------------+-------------------------------------------------+ | metadata | As specified by the user at boot time. | +-------------+-------------------------------------------------+ Deployment considerations ========================= Nova provides authentication to external metadata services in order to provide some level of certainty that the request came from nova. This is done by providing a service token with the request -- you can then just deploy your metadata service with the keystone authentication WSGI middleware. This is configured using the keystone authentication parameters in the ``vendordata_dynamic_auth`` configuration group. References ========== * Michael Still's talk from the Queens summit in Sydney: `Metadata, User Data, Vendor Data, oh my!`_ * Michael's blog post on `deploying a simple vendordata service`_ which provides more details and sample code to supplement the documentation above. .. _Metadata, User Data, Vendor Data, oh my!: https://www.openstack.org/videos/sydney-2017/metadata-user-data-vendor-data-oh-my .. _deploying a simple vendordata service: http://www.stillhq.com/openstack/000022.html nova-17.0.13/doc/source/user/filter-scheduler.rst0000664000175000017500000007102513556316250021701 0ustar zuulzuul00000000000000Filter Scheduler ================ The **Filter Scheduler** supports `filtering` and `weighting` to make informed decisions on where a new instance should be created. This Scheduler supports working with Compute Nodes only. Filtering --------- .. image:: /_static/images/filtering-workflow-1.png During its work Filter Scheduler iterates over all found compute nodes, evaluating each against a set of filters. The list of resulting hosts is ordered by weighers. The Scheduler then chooses hosts for the requested number of instances, choosing the most weighted hosts. For a specific filter to succeed for a specific host, the filter matches the user request against the state of the host plus some extra magic as defined by each filter (described in more detail below). If the Scheduler cannot find candidates for the next instance, it means that there are no appropriate hosts where that instance can be scheduled. The Filter Scheduler has to be quite flexible to support the required variety of `filtering` and `weighting` strategies. If this flexibility is insufficient you can implement `your own filtering algorithm`. There are many standard filter classes which may be used (:mod:`nova.scheduler.filters`): * |AllHostsFilter| - does no filtering. It passes all the available hosts. * |ImagePropertiesFilter| - filters hosts based on properties defined on the instance's image. It passes hosts that can support the properties specified on the image used by the instance. * |AvailabilityZoneFilter| - filters hosts by availability zone. It passes hosts matching the availability zone specified in the instance properties. Use a comma to specify multiple zones. The filter will then ensure it matches any zone specified. * |ComputeCapabilitiesFilter| - checks that the capabilities provided by the host compute service satisfy any extra specifications associated with the instance type. It passes hosts that can create the specified instance type. If an extra specs key contains a colon (:), anything before the colon is treated as a namespace and anything after the colon is treated as the key to be matched. If a namespace is present and is not ``capabilities``, the filter ignores the namespace. For example ``capabilities:cpu_info:features`` is a valid scope format. For backward compatibility, when a key doesn't contain a colon (:), the key's contents are important. If this key is an attribute of HostState object, like ``free_disk_mb``, the filter also treats the extra specs key as the key to be matched. If not, the filter will ignore the key. The extra specifications can have an operator at the beginning of the value string of a key/value pair. If there is no operator specified, then a default operator of ``s==`` is used. Valid operators are: :: * = (equal to or greater than as a number; same as vcpus case) * == (equal to as a number) * != (not equal to as a number) * >= (greater than or equal to as a number) * <= (less than or equal to as a number) * s== (equal to as a string) * s!= (not equal to as a string) * s>= (greater than or equal to as a string) * s> (greater than as a string) * s<= (less than or equal to as a string) * s< (less than as a string) * (substring) * (all elements contained in collection) * (find one of these) Examples are: ">= 5", "s== 2.1.0", " gcc", " aes mmx", and " fpu gpu" some of attributes that can be used as useful key and their values contains: :: * free_ram_mb (compared with a number, values like ">= 4096") * free_disk_mb (compared with a number, values like ">= 10240") * host (compared with a string, values like: " compute","s== compute_01") * hypervisor_type (compared with a string, values like: "s== QEMU", "s== powervm") * hypervisor_version (compared with a number, values like : ">= 1005003", "== 2000000") * num_instances (compared with a number, values like: "<= 10") * num_io_ops (compared with a number, values like: "<= 5") * vcpus_total (compared with a number, values like: "= 48", ">=24") * vcpus_used (compared with a number, values like: "= 0", "<= 10") * |AggregateInstanceExtraSpecsFilter| - checks that the aggregate metadata satisfies any extra specifications associated with the instance type (that have no scope or are scoped with ``aggregate_instance_extra_specs``). It passes hosts that can create the specified instance type. The extra specifications can have the same operators as |ComputeCapabilitiesFilter|. To specify multiple values for the same key use a comma. E.g., "value1,value2". All hosts are passed if no extra_specs are specified. * |ComputeFilter| - passes all hosts that are operational and enabled. * |CoreFilter| - filters based on CPU core utilization. It passes hosts with sufficient number of CPU cores. * |AggregateCoreFilter| - filters hosts by CPU core number with per-aggregate ``cpu_allocation_ratio`` setting. If no per-aggregate value is found, it will fall back to the global default ``cpu_allocation_ratio``. If more than one value is found for a host (meaning the host is in two different aggregates with different ratio settings), the minimum value will be used. * |IsolatedHostsFilter| - filter based on ``isolated_images``, ``isolated_hosts`` and ``restrict_isolated_hosts_to_isolated_images`` flags. * |JsonFilter| - allows simple JSON-based grammar for selecting hosts. * |RamFilter| - filters hosts by their RAM. Only hosts with sufficient RAM to host the instance are passed. * |AggregateRamFilter| - filters hosts by RAM with per-aggregate ``ram_allocation_ratio`` setting. If no per-aggregate value is found, it will fall back to the global default ``ram_allocation_ratio``. If more than one value is found for a host (meaning the host is in two different aggregates with different ratio settings), the minimum value will be used. * |DiskFilter| - filters hosts by their disk allocation. Only hosts with sufficient disk space to host the instance are passed. ``disk_allocation_ratio`` setting. The virtual disk to physical disk allocation ratio, 1.0 by default. The total allowed allocated disk size will be physical disk multiplied this ratio. * |AggregateDiskFilter| - filters hosts by disk allocation with per-aggregate ``disk_allocation_ratio`` setting. If no per-aggregate value is found, it will fall back to the global default ``disk_allocation_ratio``. If more than one value is found for a host (meaning the host is in two or more different aggregates with different ratio settings), the minimum value will be used. * |NumInstancesFilter| - filters compute nodes by number of running instances. Nodes with too many instances will be filtered. ``max_instances_per_host`` setting. Maximum number of instances allowed to run on this host. The host will be ignored by the scheduler if more than ``max_instances_per_host`` already exist on the host. * |AggregateNumInstancesFilter| - filters hosts by number of instances with per-aggregate ``max_instances_per_host`` setting. If no per-aggregate value is found, it will fall back to the global default ``max_instances_per_host``. If more than one value is found for a host (meaning the host is in two or more different aggregates with different max instances per host settings), the minimum value will be used. * |IoOpsFilter| - filters hosts by concurrent I/O operations on it. hosts with too many concurrent I/O operations will be filtered. ``max_io_ops_per_host`` setting. Maximum number of I/O intensive instances allowed to run on this host, the host will be ignored by scheduler if more than ``max_io_ops_per_host`` instances such as build/resize/snapshot etc are running on it. * |AggregateIoOpsFilter| - filters hosts by I/O operations with per-aggregate ``max_io_ops_per_host`` setting. If no per-aggregate value is found, it will fall back to the global default ``max_io_ops_per_host``. If more than one value is found for a host (meaning the host is in two or more different aggregates with different max io operations settings), the minimum value will be used. * |PciPassthroughFilter| - Filter that schedules instances on a host if the host has devices to meet the device requests in the 'extra_specs' for the flavor. * |SimpleCIDRAffinityFilter| - allows a new instance on a host within the same IP block. * |DifferentHostFilter| - allows the instance on a different host from a set of instances. * |SameHostFilter| - puts the instance on the same host as another instance in a set of instances. * |RetryFilter| - filters hosts that have been attempted for scheduling. Only passes hosts that have not been previously attempted. * |AggregateTypeAffinityFilter| - limits instance_type by aggregate. This filter passes hosts if no instance_type key is set or the instance_type aggregate metadata value contains the name of the instance_type requested. The value of the instance_type metadata entry is a string that may contain either a single instance_type name or a comma separated list of instance_type names. e.g. 'm1.nano' or "m1.nano,m1.small" * |ServerGroupAntiAffinityFilter| - This filter implements anti-affinity for a server group. First you must create a server group with a policy of 'anti-affinity' via the server groups API. Then, when you boot a new server, provide a scheduler hint of 'group=' where is the UUID of the server group you created. This will result in the server getting added to the group. When the server gets scheduled, anti-affinity will be enforced among all servers in that group. * |ServerGroupAffinityFilter| - This filter works the same way as ServerGroupAntiAffinityFilter. The difference is that when you create the server group, you should specify a policy of 'affinity'. * |AggregateMultiTenancyIsolation| - isolate tenants in specific aggregates. To specify multiple tenants use a comma. Eg. "tenant1,tenant2" * |AggregateImagePropertiesIsolation| - isolates hosts based on image properties and aggregate metadata. Use a comma to specify multiple values for the same property. The filter will then ensure at least one value matches. * |MetricsFilter| - filters hosts based on metrics weight_setting. Only hosts with the available metrics are passed. * |NUMATopologyFilter| - filters hosts based on the NUMA topology requested by the instance, if any. Now we can focus on these standard filter classes in some detail. We'll skip the simplest ones, such as |AllHostsFilter|, |CoreFilter| and |RamFilter|, because their functionality is relatively simple and can be understood from the code. For example class |RamFilter| has the next realization: :: class RamFilter(filters.BaseHostFilter): """Ram Filter with over subscription flag""" def host_passes(self, host_state, filter_properties): """Only return hosts with sufficient available RAM.""" instance_type = filter_properties.get('instance_type') requested_ram = instance_type['memory_mb'] free_ram_mb = host_state.free_ram_mb total_usable_ram_mb = host_state.total_usable_ram_mb used_ram_mb = total_usable_ram_mb - free_ram_mb return total_usable_ram_mb * FLAGS.ram_allocation_ratio - used_ram_mb >= requested_ram Here ``ram_allocation_ratio`` means the virtual RAM to physical RAM allocation ratio (it is ``1.5`` by default). The |AvailabilityZoneFilter| looks at the availability zone of compute node and availability zone from the properties of the request. Each compute service has its own availability zone. So deployment engineers have an option to run scheduler with availability zones support and can configure availability zones on each compute host. This class's method ``host_passes`` returns ``True`` if availability zone mentioned in request is the same on the current compute host. The |ImagePropertiesFilter| filters hosts based on the architecture, hypervisor type and virtual machine mode specified in the instance. For example, an instance might require a host that supports the ARM architecture on a qemu compute host. The |ImagePropertiesFilter| will only pass hosts that can satisfy this request. These instance properties are populated from properties defined on the instance's image. E.g. an image can be decorated with these properties using ``glance image-update img-uuid --property architecture=arm --property hypervisor_type=qemu`` Only hosts that satisfy these requirements will pass the |ImagePropertiesFilter|. |ComputeCapabilitiesFilter| checks if the host satisfies any ``extra_specs`` specified on the instance type. The ``extra_specs`` can contain key/value pairs. The key for the filter is either non-scope format (i.e. no ``:`` contained), or scope format in capabilities scope (i.e. ``capabilities:xxx:yyy``). One example of capabilities scope is ``capabilities:cpu_info:features``, which will match host's cpu features capabilities. The |ComputeCapabilitiesFilter| will only pass hosts whose capabilities satisfy the requested specifications. All hosts are passed if no ``extra_specs`` are specified. |ComputeFilter| is quite simple and passes any host whose compute service is enabled and operational. Now we are going to |IsolatedHostsFilter|. There can be some special hosts reserved for specific images. These hosts are called **isolated**. So the images to run on the isolated hosts are also called isolated. The filter checks if ``isolated_images`` flag named in instance specifications is the same as the host specified in ``isolated_hosts``. Isolated hosts can run non-isolated images if the flag ``restrict_isolated_hosts_to_isolated_images`` is set to false. |DifferentHostFilter| - method ``host_passes`` returns ``True`` if the host to place an instance on is different from all the hosts used by a set of instances. |SameHostFilter| does the opposite to what |DifferentHostFilter| does. ``host_passes`` returns ``True`` if the host we want to place an instance on is one of the hosts used by a set of instances. |SimpleCIDRAffinityFilter| looks at the subnet mask and investigates if the network address of the current host is in the same sub network as it was defined in the request. |JsonFilter| - this filter provides the opportunity to write complicated queries for the hosts capabilities filtering, based on simple JSON-like syntax. There can be used the following operations for the host states properties: ``=``, ``<``, ``>``, ``in``, ``<=``, ``>=``, that can be combined with the following logical operations: ``not``, ``or``, ``and``. For example, the following query can be found in tests: :: ['and', ['>=', '$free_ram_mb', 1024], ['>=', '$free_disk_mb', 200 * 1024] ] This query will filter all hosts with free RAM greater or equal than 1024 MB and at the same time with free disk space greater or equal than 200 GB. Many filters use data from ``scheduler_hints``, that is defined in the moment of creation of the new server for the user. The only exception for this rule is |JsonFilter|, that takes data from the schedulers ``HostState`` data structure directly. Variable naming, such as the ``$free_ram_mb`` example above, should be based on those attributes. The |RetryFilter| filters hosts that have already been attempted for scheduling. It only passes hosts that have not been previously attempted. If a compute node is raising an exception when spawning an instance, then the compute manager will reschedule it by adding the failing host to a retry dictionary so that the RetryFilter will not accept it as a possible destination. That means that if all of your compute nodes are failing, then the RetryFilter will return 0 hosts and the scheduler will raise a NoValidHost exception even if the problem is related to 1:N compute nodes. If you see that case in the scheduler logs, then your problem is most likely related to a compute problem and you should check the compute logs. The |NUMATopologyFilter| considers the NUMA topology that was specified for the instance through the use of flavor extra_specs in combination with the image properties, as described in detail in the related nova-spec document: * http://git.openstack.org/cgit/openstack/nova-specs/tree/specs/juno/implemented/virt-driver-numa-placement.rst and try to match it with the topology exposed by the host, accounting for the ``ram_allocation_ratio`` and ``cpu_allocation_ratio`` for over-subscription. The filtering is done in the following manner: * Filter will attempt to pack instance cells onto host cells. * It will consider the standard over-subscription limits for each host NUMA cell, and provide limits to the compute host accordingly (as mentioned above). * If instance has no topology defined, it will be considered for any host. * If instance has a topology defined, it will be considered only for NUMA capable hosts. Configuring Filters ------------------- To use filters you specify two settings: * ``filter_scheduler.available_filters`` - Defines filter classes made available to the scheduler. This setting can be used multiple times. * ``filter_scheduler.enabled_filters`` - Of the available filters, defines those that the scheduler uses by default. The default values for these settings in nova.conf are: :: --filter_scheduler.available_filters=nova.scheduler.filters.all_filters --filter_scheduler.enabled_filters=ComputeFilter,AvailabilityZoneFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter With this configuration, all filters in ``nova.scheduler.filters`` would be available, and by default the |ComputeFilter|, |AvailabilityZoneFilter|, |ComputeCapabilitiesFilter|, |ImagePropertiesFilter|, |ServerGroupAntiAffinityFilter|, and |ServerGroupAffinityFilter| would be used. Writing Your Own Filter ----------------------- To create **your own filter** you must inherit from |BaseHostFilter| and implement one method: ``host_passes``. This method should return ``True`` if a host passes the filter. It takes ``host_state`` (describing the host) and ``filter_properties`` dictionary as the parameters. As an example, nova.conf could contain the following scheduler-related settings: :: --scheduler.driver=nova.scheduler.FilterScheduler --filter_scheduler.available_filters=nova.scheduler.filters.all_filters --filter_scheduler.available_filters=myfilter.MyFilter --filter_scheduler.enabled_filters=RamFilter,ComputeFilter,MyFilter .. note:: When writing your own filter, be sure to add it to the list of available filters and enable it in the default filters. The "all_filters" setting only includes the filters shipped with nova. With these settings, nova will use the ``FilterScheduler`` for the scheduler driver. All of the standard nova filters and MyFilter are available to the FilterScheduler, but just the RamFilter, ComputeFilter, and MyFilter will be used on each request. Each filter selects hosts in a different way and has different costs. The order of ``filter_scheduler.enabled_filters`` affects scheduling performance. The general suggestion is to filter out invalid hosts as soon as possible to avoid unnecessary costs. We can sort ``filter_scheduler.enabled_filters`` items by their costs in reverse order. For example, ComputeFilter is better before any resource calculating filters like RamFilter, CoreFilter. In medium/large environments having AvailabilityZoneFilter before any capability or resource calculating filters can be useful. Weights ------- Filter Scheduler uses the so-called **weights** during its work. A weigher is a way to select the best suitable host from a group of valid hosts by giving weights to all the hosts in the list. In order to prioritize one weigher against another, all the weighers have to define a multiplier that will be applied before computing the weight for a node. All the weights are normalized beforehand so that the multiplier can be applied easily. Therefore the final weight for the object will be:: weight = w1_multiplier * norm(w1) + w2_multiplier * norm(w2) + ... A weigher should be a subclass of ``weights.BaseHostWeigher`` and they can implement both the ``weight_multiplier`` and ``_weight_object`` methods or just implement the ``weight_objects`` method. ``weight_objects`` method is overridden only if you need access to all objects in order to calculate weights, and it just return a list of weights, and not modify the weight of the object directly, since final weights are normalized and computed by ``weight.BaseWeightHandler``. The Filter Scheduler weighs hosts based on the config option `filter_scheduler.weight_classes`, this defaults to `nova.scheduler.weights.all_weighers`, which selects the following weighers: * |RAMWeigher| Compute weight based on available RAM on the compute node. Sort with the largest weight winning. If the multiplier is negative, the host with least RAM available will win (useful for stacking hosts, instead of spreading). * |DiskWeigher| Hosts are weighted and sorted by free disk space with the largest weight winning. If the multiplier is negative, the host with less disk space available will win (useful for stacking hosts, instead of spreading). * |MetricsWeigher| This weigher can compute the weight based on the compute node host's various metrics. The to-be weighed metrics and their weighing ratio are specified in the configuration file as the followings:: metrics_weight_setting = name1=1.0, name2=-1.0 * |IoOpsWeigher| The weigher can compute the weight based on the compute node host's workload. The default is to preferably choose light workload compute hosts. If the multiplier is positive, the weigher prefer choosing heavy workload compute hosts, the weighing has the opposite effect of the default. * |PCIWeigher| Compute a weighting based on the number of PCI devices on the host and the number of PCI devices requested by the instance. For example, given three hosts - one with a single PCI device, one with many PCI devices, and one with no PCI devices - nova should prioritise these differently based on the demands of the instance. If the instance requests a single PCI device, then the first of the hosts should be preferred. Similarly, if the instance requests multiple PCI devices, then the second of these hosts would be preferred. Finally, if the instance does not request a PCI device, then the last of these hosts should be preferred. For this to be of any value, at least one of the |PciPassthroughFilter| or |NUMATopologyFilter| filters must be enabled. :Configuration Option: ``[filter_scheduler] pci_weight_multiplier``. Only positive values are allowed for the multiplier as a negative value would force non-PCI instances away from non-PCI hosts, thus, causing future scheduling issues. * |ServerGroupSoftAffinityWeigher| The weigher can compute the weight based on the number of instances that run on the same server group. The largest weight defines the preferred host for the new instance. For the multiplier only a positive value is meaningful for the calculation as a negative value would mean that the affinity weigher would prefer non collocating placement. * |ServerGroupSoftAntiAffinityWeigher| The weigher can compute the weight based on the number of instances that run on the same server group as a negative value. The largest weight defines the preferred host for the new instance. For the multiplier only a positive value is meaningful for the calculation as a negative value would mean that the anti-affinity weigher would prefer collocating placement. Filter Scheduler makes a local list of acceptable hosts by repeated filtering and weighing. Each time it chooses a host, it virtually consumes resources on it, so subsequent selections can adjust accordingly. It is useful if the customer asks for a large block of instances, because weight is computed for each instance requested. .. image:: /_static/images/filtering-workflow-2.png At the end Filter Scheduler sorts selected hosts by their weight and attempts to provision instances on the chosen hosts. P.S.: you can find more examples of using Filter Scheduler and standard filters in :mod:`nova.tests.scheduler`. .. |AllHostsFilter| replace:: :class:`AllHostsFilter ` .. |ImagePropertiesFilter| replace:: :class:`ImagePropertiesFilter ` .. |AvailabilityZoneFilter| replace:: :class:`AvailabilityZoneFilter ` .. |BaseHostFilter| replace:: :class:`BaseHostFilter ` .. |ComputeCapabilitiesFilter| replace:: :class:`ComputeCapabilitiesFilter ` .. |ComputeFilter| replace:: :class:`ComputeFilter ` .. |CoreFilter| replace:: :class:`CoreFilter ` .. |AggregateCoreFilter| replace:: :class:`AggregateCoreFilter ` .. |IsolatedHostsFilter| replace:: :class:`IsolatedHostsFilter ` .. |JsonFilter| replace:: :class:`JsonFilter ` .. |RamFilter| replace:: :class:`RamFilter ` .. |AggregateRamFilter| replace:: :class:`AggregateRamFilter ` .. |DiskFilter| replace:: :class:`DiskFilter ` .. |AggregateDiskFilter| replace:: :class:`AggregateDiskFilter ` .. |NumInstancesFilter| replace:: :class:`NumInstancesFilter ` .. |AggregateNumInstancesFilter| replace:: :class:`AggregateNumInstancesFilter ` .. |IoOpsFilter| replace:: :class:`IoOpsFilter ` .. |AggregateIoOpsFilter| replace:: :class:`AggregateIoOpsFilter ` .. |PciPassthroughFilter| replace:: :class:`PciPassthroughFilter ` .. |SimpleCIDRAffinityFilter| replace:: :class:`SimpleCIDRAffinityFilter ` .. |DifferentHostFilter| replace:: :class:`DifferentHostFilter ` .. |SameHostFilter| replace:: :class:`SameHostFilter ` .. |RetryFilter| replace:: :class:`RetryFilter ` .. |AggregateTypeAffinityFilter| replace:: :class:`AggregateTypeAffinityFilter ` .. |ServerGroupAntiAffinityFilter| replace:: :class:`ServerGroupAntiAffinityFilter ` .. |ServerGroupAffinityFilter| replace:: :class:`ServerGroupAffinityFilter ` .. |AggregateInstanceExtraSpecsFilter| replace:: :class:`AggregateInstanceExtraSpecsFilter ` .. |AggregateMultiTenancyIsolation| replace:: :class:`AggregateMultiTenancyIsolation ` .. |NUMATopologyFilter| replace:: :class:`NUMATopologyFilter ` .. |RAMWeigher| replace:: :class:`RAMWeigher ` .. |AggregateImagePropertiesIsolation| replace:: :class:`AggregateImagePropertiesIsolation ` .. |MetricsFilter| replace:: :class:`MetricsFilter ` .. |MetricsWeigher| replace:: :class:`MetricsWeigher ` .. |IoOpsWeigher| replace:: :class:`IoOpsWeigher ` .. |PCIWeigher| replace:: :class:`PCIWeigher ` .. |ServerGroupSoftAffinityWeigher| replace:: :class:`ServerGroupSoftAffinityWeigher ` .. |ServerGroupSoftAntiAffinityWeigher| replace:: :class:`ServerGroupSoftAntiAffinityWeigher ` .. |DiskWeigher| replace:: :class:`DiskWeigher ` nova-17.0.13/doc/source/user/launch-instances.rst0000664000175000017500000001467513556316250021707 0ustar zuulzuul00000000000000================ Launch instances ================ Instances are virtual machines that run inside the cloud. Before you can launch an instance, gather the following parameters: - The **instance source** can be an image, snapshot, or block storage volume that contains an image or snapshot. - A **name** for your instance. - The **flavor** for your instance, which defines the compute, memory, and storage capacity of nova computing instances. A flavor is an available hardware configuration for a server. It defines the size of a virtual server that can be launched. - Any **user data** files. A user data file is a special key in the metadata service that holds a file that cloud-aware applications in the guest instance can access. For example, one application that uses user data is the `cloud-init `__ system, which is an open-source package from Ubuntu that is available on various Linux distributions and that handles early initialization of a cloud instance. - Access and security credentials, which include one or both of the following credentials: - A **key pair** for your instance, which are SSH credentials that are injected into images when they are launched. For the key pair to be successfully injected, the image must contain the ``cloud-init`` package. Create at least one key pair for each project. If you already have generated a key pair with an external tool, you can import it into OpenStack. You can use the key pair for multiple instances that belong to that project. - A **security group** that defines which incoming network traffic is forwarded to instances. Security groups hold a set of firewall policies, known as *security group rules*. - If needed, you can assign a **floating (public) IP address** to a running instance to make it accessible from outside the cloud. See :doc:`manage-ip-addresses`. - You can also attach a block storage device, or **volume**, for persistent storage. .. note:: Instances that use the default security group cannot, by default, be accessed from any IP address outside of the cloud. If you want those IP addresses to access the instances, you must modify the rules for the default security group. After you gather the parameters that you need to launch an instance, you can launch it from an :doc:`image` or a :doc:`volume`. You can launch an instance directly from one of the available OpenStack images or from an image that you have copied to a persistent volume. The OpenStack Image service provides a pool of images that are accessible to members of different projects. Gather parameters to launch an instance ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Before you begin, source the OpenStack RC file. #. Create a flavor. Creating a flavor is typically only available to administrators of a cloud because this has implications for scheduling efficiently in the cloud. .. code-block:: console $ openstack flavor create --ram 512 --disk 1 --vcpus 1 m1.tiny #. List the available flavors. .. code-block:: console $ openstack flavor list Note the ID of the flavor that you want to use for your instance:: +-----+-----------+-------+------+-----------+-------+-----------+ | ID | Name | RAM | Disk | Ephemeral | VCPUs | Is_Public | +-----+-----------+-------+------+-----------+-------+-----------+ | 1 | m1.tiny | 512 | 1 | 0 | 1 | True | | 2 | m1.small | 2048 | 20 | 0 | 1 | True | | 3 | m1.medium | 4096 | 40 | 0 | 2 | True | | 4 | m1.large | 8192 | 80 | 0 | 4 | True | | 5 | m1.xlarge | 16384 | 160 | 0 | 8 | True | +-----+-----------+-------+------+-----------+-------+-----------+ #. List the available images. .. code-block:: console $ openstack image list Note the ID of the image from which you want to boot your instance:: +--------------------------------------+---------------------------------+--------+ | ID | Name | Status | +--------------------------------------+---------------------------------+--------+ | 397e713c-b95b-4186-ad46-6126863ea0a9 | cirros-0.3.5-x86_64-uec | active | | df430cc2-3406-4061-b635-a51c16e488ac | cirros-0.3.5-x86_64-uec-kernel | active | | 3cf852bd-2332-48f4-9ae4-7d926d50945e | cirros-0.3.5-x86_64-uec-ramdisk | active | +--------------------------------------+---------------------------------+--------+ You can also filter the image list by using :command:`grep` to find a specific image, as follows: .. code-block:: console $ openstack image list | grep 'kernel' | df430cc2-3406-4061-b635-a51c16e488ac | cirros-0.3.5-x86_64-uec-kernel | active | #. List the available security groups. .. code-block:: console $ openstack security group list .. note:: If you are an admin user, this command will list groups for all tenants. Note the ID of the security group that you want to use for your instance:: +--------------------------------------+---------+------------------------+----------------------------------+ | ID | Name | Description | Project | +--------------------------------------+---------+------------------------+----------------------------------+ | b0d78827-0981-45ef-8561-93aee39bbd9f | default | Default security group | 5669caad86a04256994cdf755df4d3c1 | | ec02e79e-83e1-48a5-86ad-14ab9a8c375f | default | Default security group | 1eaaf6ede7a24e78859591444abf314a | +--------------------------------------+---------+------------------------+----------------------------------+ If you have not created any security groups, you can assign the instance to only the default security group. You can view rules for a specified security group: .. code-block:: console $ openstack security group rule list default #. List the available key pairs, and note the key pair name that you use for SSH access. .. code-block:: console $ openstack keypair list Launch an instance ~~~~~~~~~~~~~~~~~~ You can launch an instance from various sources. .. toctree:: :maxdepth: 2 launch-instance-from-image.rst launch-instance-from-volume.rst launch-instance-using-ISO-image.rst nova-17.0.13/doc/source/user/placement.rst0000664000175000017500000003660713556316250020417 0ustar zuulzuul00000000000000.. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. =============== Placement API =============== Overview ======== Nova introduced the placement API service in the 14.0.0 Newton release. This is a separate REST API stack and data model used to track resource provider inventories and usages, along with different classes of resources. For example, a resource provider can be a compute node, a shared storage pool, or an IP allocation pool. The placement service tracks the inventory and usage of each provider. For example, an instance created on a compute node may be a consumer of resources such as RAM and CPU from a compute node resource provider, disk from an external shared storage pool resource provider and IP addresses from an external IP pool resource provider. The types of resources consumed are tracked as **classes**. The service provides a set of standard resource classes (for example `DISK_GB`, `MEMORY_MB`, and `VCPU`) and provides the ability to define custom resource classes as needed. Each resource provider may also have a set of traits which describe qualitative aspects of the resource provider. Traits describe an aspect of a resource provider that cannot itself be consumed but a workload may wish to specify. For example, available disk may be solid state drives (SSD). References ~~~~~~~~~~ The following specifications represent the stages of design and development of resource providers and the Placement service. Implementation details may have changed or be partially complete at this time. * `Generic Resource Pools `_ * `Compute Node Inventory `_ * `Resource Provider Allocations `_ * `Resource Provider Base Models `_ * `Nested Resource Providers`_ * `Custom Resource Classes `_ * `Scheduler Filters in DB `_ * `Scheduler claiming resources to the Placement API `_ * `The Traits API - Manage Traits with ResourceProvider `_ * `Request Traits During Scheduling`_ .. _Nested Resource Providers: http://specs.openstack.org/openstack/nova-specs/specs/queens/approved/nested-resource-providers.html .. _Request Traits During Scheduling: https://specs.openstack.org/openstack/nova-specs/specs/queens/approved/request-traits-in-nova.html Deployment ========== The placement-api service must be deployed at some point after you have upgraded to the 14.0.0 Newton release but before you can upgrade to the 15.0.0 Ocata release. This is so that the resource tracker in the nova-compute service can populate resource provider (compute node) inventory and allocation information which will be used by the nova-scheduler service in Ocata. Steps ~~~~~ **1. Deploy the API service** At this time the placement API code is still in Nova alongside the compute REST API code (nova-api). So once you have upgraded nova-api to Newton you already have the placement API code, you just need to install the service. Nova provides a ``nova-placement-api`` WSGI script for running the service with Apache, nginx or other WSGI-capable web servers. Depending on what packaging solution is used to deploy OpenStack, the WSGI script may be in ``/usr/bin`` or ``/usr/local/bin``. .. note:: The placement API service is currently developed within Nova but it is designed to be as separate as possible from the existing code so that it can eventually be split into a separate project. ``nova-placement-api``, as a standard WSGI script, provides a module level ``application`` attribute that most WSGI servers expect to find. This means it is possible to run it with lots of different servers, providing flexibility in the face of different deployment scenarios. Common scenarios include: * apache2_ with mod_wsgi_ * apache2 with mod_proxy_uwsgi_ * nginx_ with uwsgi_ * nginx with gunicorn_ In all of these scenarios the host, port and mounting path (or prefix) of the application is controlled in the web server's configuration, not in the configuration (``nova.conf``) of the placement application. When placement was `first added to DevStack`_ it used the ``mod_wsgi`` style. Later it `was updated`_ to use mod_proxy_uwsgi_. Looking at those changes can be useful for understanding the relevant options. DevStack is configured to host placement at ``/placement`` on either the default port for http or for https (``80`` or ``443``) depending on whether TLS is being used. Using a default port is desirable. By default, the placement application will get its configuration for settings such as the database connection URL from ``/etc/nova/nova.conf``. The directory the configuration file will be found in can be changed by setting ``OS_PLACEMENT_CONFIG_DIR`` in the environment of the process that starts the application. .. note:: When using uwsgi with a front end (e.g., apache2 or nginx) something needs to ensure that the uwsgi process is running. In DevStack this is done with systemd_. This is one of many different ways to manage uwsgi. This document refrains from declaring a set of installation instructions for the placement service. This is because a major point of having a WSGI application is to make the deployment as flexible as possible. Because the placement API service is itself stateless (all state is in the database), it is possible to deploy as many servers as desired behind a load balancing solution for robust and simple scaling. If you familiarize yourself with installing generic WSGI applications (using the links in the common scenarios list, above), those techniques will be applicable here. .. _apache2: http://httpd.apache.org/ .. _mod_wsgi: https://modwsgi.readthedocs.io/ .. _mod_proxy_uwsgi: http://uwsgi-docs.readthedocs.io/en/latest/Apache.html .. _nginx: http://nginx.org/ .. _uwsgi: http://uwsgi-docs.readthedocs.io/en/latest/Nginx.html .. _gunicorn: http://gunicorn.org/ .. _first added to DevStack: https://review.openstack.org/#/c/342362/ .. _was updated: https://review.openstack.org/#/c/456717/ .. _systemd: https://review.openstack.org/#/c/448323/ **2. Synchronize the database** In the Newton release the Nova **api** database is the only deployment option for the placement API service and the resources it manages. After upgrading the nova-api service for Newton and running the ``nova-manage api_db sync`` command the placement tables will be created. .. note:: There are plans to add the ability to run the placement service with a separate **placement** database that would just have the tables necessary for that service and not everything else that goes into the Nova **api** database. **3. Create accounts and update the service catalog** Create a **placement** service user with an **admin** role in Keystone. The placement API is a separate service and thus should be registered under a **placement** service type in the service catalog as that is what the resource tracker in the nova-compute node will use to look up the endpoint. Devstack sets up the placement service on the default HTTP port (80) with a ``/placement`` prefix instead of using an independent port. **4. Configure and restart nova-compute services** The 14.0.0 Newton nova-compute service code will begin reporting resource provider inventory and usage information as soon as the placement API service is in place and can respond to requests via the endpoint registered in the service catalog. ``nova.conf`` on the compute nodes must be updated in the ``[placement]`` group to contain credentials for making requests from nova-compute to the placement-api service. .. note:: After upgrading nova-compute code to Newton and restarting the service, the nova-compute service will attempt to make a connection to the placement API and if that is not yet available a warning will be logged. The nova-compute service will keep attempting to connect to the placement API, warning periodically on error until it is successful. Keep in mind that Placement is optional in Newton, but required in Ocata, so the placement service should be enabled before upgrading to Ocata. nova.conf on the compute nodes will need to be updated in the ``[placement]`` group for credentials to make requests from nova-compute to the placement-api service. .. _placement-upgrade-notes: Upgrade Notes ============= The following sub-sections provide notes on upgrading to a given target release. .. note:: As a reminder, the :doc:`nova-status upgrade check ` tool can be used to help determine the status of your deployment and how ready it is to perform an upgrade. Ocata (15.0.0) ~~~~~~~~~~~~~~ * The ``nova-compute`` service will fail to start in Ocata unless the ``[placement]`` section of nova.conf on the compute is configured. As mentioned in the deployment steps above, the Placement service should be deployed by this point so the computes can register and start reporting inventory and allocation information. If the computes are deployed and configured `before` the Placement service, they will continue to try and reconnect in a loop so that you do not need to restart the nova-compute process to talk to the Placement service after the compute is properly configured. * The ``nova.scheduler.filter_scheduler.FilterScheduler`` in Ocata will fallback to not using the Placement service as long as there are older ``nova-compute`` services running in the deployment. This allows for rolling upgrades of the computes to not affect scheduling for the FilterScheduler. However, the fallback mechanism will be removed in the 16.0.0 Pike release such that the scheduler will make decisions based on the Placement service and the resource providers (compute nodes) registered there. This means if the computes are not reporting into Placement by Pike, build requests will fail with **NoValidHost** errors. * While the FilterScheduler technically depends on the Placement service in Ocata, if you deploy the Placement service `after` you upgrade the ``nova-scheduler`` service to Ocata and restart it, things will still work. The scheduler will gracefully handle the absence of the Placement service. However, once all computes are upgraded, the scheduler not being able to make requests to Placement will result in **NoValidHost** errors. * It is currently possible to exclude the ``CoreFilter``, ``RamFilter`` and ``DiskFilter`` from the list of enabled FilterScheduler filters such that scheduling decisions are not based on CPU, RAM or disk usage. Once all computes are reporting into the Placement service, however, and the FilterScheduler starts to use the Placement service for decisions, those excluded filters are ignored and the scheduler will make requests based on VCPU, MEMORY_MB and DISK_GB inventory. If you wish to effectively ignore that type of resource for placement decisions, you will need to adjust the corresponding ``cpu_allocation_ratio``, ``ram_allocation_ratio``, and/or ``disk_allocation_ratio`` configuration options to be very high values, e.g. 9999.0. * Users of CellsV1 will need to deploy a placement per cell, matching the scope and cardinality of the regular ``nova-scheduler`` process. Pike (16.0.0) ~~~~~~~~~~~~~ * The ``nova.scheduler.filter_scheduler.FilterScheduler`` in Pike will no longer fall back to not using the Placement Service, even if older computes are running in the deployment. * The FilterScheduler now requests allocation candidates from the Placement service during scheduling. The allocation candidates information was introduced in the Placement API 1.10 microversion, so you should upgrade the placement service **before** the Nova scheduler service so that the scheduler can take advantage of the allocation candidate information. The scheduler gets the allocation candidates from the placement API and uses those to get the compute nodes, which come from the cell(s). The compute nodes are passed through the enabled scheduler filters and weighers. The scheduler then iterates over this filtered and weighed list of hosts and attempts to claim resources in the placement API for each instance in the request. Claiming resources involves finding an allocation candidate that contains an allocation against the selected host's UUID and asking the placement API to allocate the requested instance resources. We continue performing this claim request until success or we run out of allocation candidates, resulting in a NoValidHost error. For a move operation, such as migration, allocations are made in Placement against both the source and destination compute node. Once the move operation is complete, the resource tracker in the *nova-compute* service will adjust the allocations in Placement appropriately. For a resize to the same host, allocations are summed on the single compute node. This could pose a problem if the compute node has limited capacity. Since resizing to the same host is disabled by default, and generally only used in testing, this is mentioned for completeness but should not be a concern for production deployments. Queens (17.0.0) ~~~~~~~~~~~~~~~ * The minimum Placement API microversion required by the *nova-scheduler* service is ``1.17`` in order to support `Request Traits During Scheduling`_. This means you must upgrade the placement service before upgrading any *nova-scheduler* services to Queens. REST API ======== The placement API service has its own `REST API`_ and data model. One can get a sample of the REST API via the functional test `gabbits`_. .. _`REST API`: https://developer.openstack.org/api-ref/placement/ .. _gabbits: http://git.openstack.org/cgit/openstack/nova/tree/nova/tests/functional/api/openstack/placement/gabbits Microversions ~~~~~~~~~~~~~ The placement API uses microversions for making incremental changes to the API which client requests must opt into. It is especially important to keep in mind that nova-compute is a client of the placement REST API and based on how Nova supports rolling upgrades the nova-compute service could be Newton level code making requests to an Ocata placement API, and vice-versa, an Ocata compute service in a cells v2 cell could be making requests to a Newton placement API. .. _placement-api-microversion-history: .. include:: ../../../nova/api/openstack/placement/rest_api_version_history.rst nova-17.0.13/doc/source/user/aggregates.rst0000664000175000017500000001744613556316250020560 0ustar zuulzuul00000000000000.. Copyright 2012 OpenStack Foundation Copyright 2012 Citrix Systems, Inc. Copyright 2012, The Cloudscaling Group, Inc. All Rights Reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. Host Aggregates =============== Host aggregates can be regarded as a mechanism to further partition an availability zone; while availability zones are visible to users, host aggregates are only visible to administrators. Host aggregates started out as a way to use Xen hypervisor resource pools, but has been generalized to provide a mechanism to allow administrators to assign key-value pairs to groups of machines. Each node can have multiple aggregates, each aggregate can have multiple key-value pairs, and the same key-value pair can be assigned to multiple aggregate. This information can be used in the scheduler to enable advanced scheduling, to set up xen hypervisor resources pools or to define logical groups for migration. For more information, including an example of associating a group of hosts to a flavor, see :ref:`host-aggregates`. Availability Zones (AZs) ------------------------ Availability Zones are the end-user visible logical abstraction for partitioning a cloud without knowing the physical infrastructure. That abstraction doesn't come up in Nova with an actual database model since the availability zone is actually a specific metadata information attached to an aggregate. Adding that specific metadata to an aggregate makes the aggregate visible from an end-user perspective and consequently allows to schedule upon a specific set of hosts (the ones belonging to the aggregate). That said, there are a few rules to know that diverge from an API perspective between aggregates and availability zones: - one host can be in multiple aggregates, but it can only be in one availability zone - by default a host is part of a default availability zone even if it doesn't belong to an aggregate (the configuration option is named ``default_availability_zone``) .. warning:: That last rule can be very error-prone. Since the user can see the list of availability zones, they have no way to know whether the default availability zone name (currently *nova*) is provided because an host belongs to an aggregate whose AZ metadata key is set to *nova*, or because there are at least one host belonging to no aggregate. Consequently, it is highly recommended for users to never ever ask for booting an instance by specifying an explicit AZ named *nova* and for operators to never set the AZ metadata for an aggregate to *nova*. That leads to some problems due to the fact that the instance AZ information is explicitly attached to *nova* which could break further move operations when either the host is moved to another aggregate or when the user would like to migrate the instance. .. note:: Availablity zone name must NOT contain ':' since it is used by admin users to specify hosts where instances are launched in server creation. See :doc:`Select hosts where instances are launched ` for more detail. Xen Pool Host Aggregates ------------------------ Originally all aggregates were Xen resource pools, now an aggregate can be set up as a resource pool by giving the aggregate the correct key-value pair. You can use aggregates for XenServer resource pools when you have multiple compute nodes installed (only XenServer/XCP via xenapi driver is currently supported), and you want to leverage the capabilities of the underlying hypervisor resource pools. For example, you want to enable VM live migration (i.e. VM migration within the pool) or enable host maintenance with zero-downtime for guest instances. Please, note that VM migration across pools (i.e. storage migration) is not yet supported in XenServer/XCP, but will be added when available. Bear in mind that the two migration techniques are not mutually exclusive and can be used in combination for a higher level of flexibility in your cloud management. Design ------ The OSAPI Admin API is extended to support the following operations: * Aggregates * list aggregates: returns a list of all the host-aggregates * create aggregate: creates an aggregate, takes a friendly name, etc. returns an id * show aggregate: shows the details of an aggregate (id, name, availability_zone, hosts and metadata) * update aggregate: updates the name and availability zone of an aggregate * set metadata: sets the metadata on an aggregate to the values supplied * delete aggregate: deletes an aggregate, it fails if the aggregate is not empty * add host: adds a host to the aggregate * remove host: removes a host from the aggregate * Hosts * list all hosts by service * It has been depricated since microversion 2.43. Use `list hypervisors` instead. * start host maintenance (or evacuate-host): disallow a host to serve API requests and migrate instances to other hosts of the aggregate * It has been depricated since microversion 2.43. Use `disable service` instead. * stop host maintenance: (or rebalance-host): put the host back into operational mode, migrating instances back onto that host * It has been depricated since microversion 2.43. Use `enable service` instead. * Hypervisors * list hypervisors: list hypervisors with hypervisor hostname * Compute services * enable service * disable service Using the Nova CLI ------------------ Using the nova command you can create, delete and manage aggregates. The following section outlines the list of available commands. Usage ~~~~~ :: * aggregate-list Print a list of all aggregates. * aggregate-create [] Create a new aggregate with the specified details. * aggregate-delete Delete the aggregate by its ID or name. * aggregate-show Show details of the aggregate specified by its ID or name. * aggregate-add-host Add the host to the aggregate specified by its ID or name. * aggregate-remove-host Remove the specified host from the aggregate specified by its ID or name. * aggregate-set-metadata [ ...] Update the metadata associated with the aggregate specified by its ID or name. * aggregate-update [--name ] [--availability-zone ] Update the aggregate's name or availability zone. * host-list List all hosts by service. * hypervisor-list [--matching ] [--marker ] [--limit ] List hypervisors. * host-update [--status ] [--maintenance ] Put/resume host into/from maintenance. * service-enable Enable the service. * service-disable [--reason ] Disable the service. nova-17.0.13/doc/source/user/block-device-mapping.rst0000664000175000017500000002451213556316250022417 0ustar zuulzuul00000000000000.. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. Block Device Mapping in Nova ============================ Nova has a concept of block devices that can be exposed to cloud instances. There are several types of block devices an instance can have (we will go into more details about this later in this document), and which ones are available depends on a particular deployment and the usage limitations set for tenants and users. Block device mapping is a way to organize and keep data about all of the block devices an instance has. When we talk about block device mapping, we usually refer to one of two things 1. API/CLI structure and syntax for specifying block devices for an instance boot request 2. The data structure internal to Nova that is used for recording and keeping, which is ultimately persisted in the block_device_mapping table. However, Nova internally has several "slightly" different formats for representing the same data. All of them are documented in the code and or presented by a distinct set of classes, but not knowing that they exist might trip up people reading the code. So in addition to BlockDeviceMapping [1]_ objects that mirror the database schema, we have: 2.1 The API format - this is the set of raw key-value pairs received from the API client, and is almost immediately transformed into the object; however, some validations are done using this format. We will refer to this format as the 'API BDMs' from now on. 2.2 The virt driver format - this is the format defined by the classes in :mod: `nova.virt.block_device`. This format is used and expected by the code in the various virt drivers. These classes, in addition to exposing a different format (mimicking the Python dict interface), also provide a place to bundle some functionality common to certain types of block devices (for example attaching volumes which has to interact with both Cinder and the virt driver code). We will refer to this format as 'Driver BDMs' from now on. Data format and its history ---------------------------- In the early days of Nova, block device mapping general structure closely mirrored that of the EC2 API. During the Havana release of Nova, block device handling code, and in turn the block device mapping structure, had work done on improving the generality and usefulness. These improvements included exposing additional details and features in the API. In order to facilitate this, a new extension was added to the v2 API called `BlockDeviceMappingV2Boot` [2]_, that added an additional `block_device_mapping_v2` field to the instance boot API request. Block device mapping v1 (aka legacy) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This was the original format that supported only cinder volumes (similar to how EC2 block devices support only EBS volumes). Every entry was keyed by device name (we will discuss why this was problematic in its own section later on this page), and would accept only: * UUID of the Cinder volume or snapshot * Type field - used only to distinguish between volumes and Cinder volume snapshots * Optional size field * Optional `delete_on_termination` flag While all of Nova internal code only uses and stores the new data structure, we still need to handle API requests that use the legacy format. This is handled by the Nova API service on every request. As we will see later, since block device mapping information can also be stored in the image metadata in Glance, this is another place where we need to handle the v1 format. The code to handle legacy conversions is part of the :mod: `nova.block_device` module. Intermezzo - problem with device names ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Using device names as the primary per-instance identifier, and exposing them in the API, is problematic for Nova mostly because several hypervisors Nova supports with its drivers can't guarantee that the device names the guest OS assigns are the ones the user requested from Nova. Exposing such a detail in the public API of Nova is obviously not ideal, but it needed to stay for backwards compatibility. It is also required for some (slightly obscure) features around overloading a block device in a Glance image when booting an instance [3]_. The plan for fixing this was to allow users to not specify the device name of a block device, and Nova will determine it (with the help of the virt driver), so that it can still be discovered through the API and used when necessary, like for the features mentioned above (and preferably only then). Another use for specifying the device name was to allow the "boot from volume" functionality, by specifying a device name that matches the root device name for the instance (usually `/dev/vda`). Currently (mid Liberty) users are discouraged from specifying device names for all calls requiring or allowing block device mapping, except when trying to override the image block device mapping on instance boot, and it will likely remain like that in the future. Libvirt device driver will outright override any device names passed with it's own values. Block device mapping v2 ^^^^^^^^^^^^^^^^^^^^^^^ New format was introduced in an attempt to solve issues with the original block device mapping format discussed above, and also to allow for more flexibility and addition of features that were not possible with the simple format we had. New block device mapping is a list of dictionaries containing the following fields (in addition to the ones that were already there): * source_type - this can have one of the following values: * `image` * `volume` * `snapshot` * `blank` * destination_type - this can have one of the following values: * `local` * `volume` * guest_format - Tells Nova how/if to format the device prior to attaching, should be only used with blank local images. Denotes a swap disk if the value is `swap`. * device_name - See the previous section for a more in depth explanation of this - currently best left empty (not specified that is), unless the user wants to override the existing device specified in the image metadata. In case of Libvirt, even when passed in with the purpose of overriding the existing image metadata, final set of device names for the instance may still get changed by the driver. * disk_bus and device_type - low level details that some hypervisors (currently only libvirt) may support. Some example disk_bus values can be: `ide`, `usb`, `virtio`, `scsi`, while device_type may be `disk`, `cdrom`, `floppy`, `lun`. This is not an exhaustive list as it depends on the virtualization driver, and may change as more support is added. Leaving these empty is the most common thing to do. * boot_index - Defines the order in which a hypervisor will try devices when attempting to boot the guest from storage. Each device which is capable of being used as boot device should be given a unique boot index, starting from 0 in ascending order. Some hypervisors may not support booting from multiple devices, so will only consider the device with boot index of 0. Some hypervisors will support booting from multiple devices, but only if they are of different types - eg a disk and CD-ROM. Setting a negative value or None indicates that the device should not be used for booting. The simplest usage is to set it to 0 for the boot device and leave it as None for any other devices. Valid source / destination combinations ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Combination of the ``source_type`` and ``destination_type`` will define the kind of block device the entry is referring to. The following combinations are supported: * `image` -> `local` - this is only currently reserved for the entry referring to the Glance image that the instance is being booted with (it should also be marked as a boot device). It is also worth noting that an API request that specifies this, also has to provide the same Glance uuid as the `image_ref` parameter to the boot request (this is done for backwards compatibility and may be changed in the future). This functionality might be extended to specify additional Glance images to be attached to an instance after boot (similar to kernel/ramdisk images) but this functionality is not supported by any of the current drivers. * `volume` -> `volume` - this is just a Cinder volume to be attached to the instance. It can be marked as a boot device. * `snapshot` -> `volume` - this works exactly as passing `type=snap` does. It would create a volume from a Cinder volume snapshot and attach that volume to the instance. Can be marked bootable. * `image` -> `volume` - As one would imagine, this would download a Glance image to a cinder volume and attach it to an instance. Can also be marked as bootable. This is really only a shortcut for creating a volume out of an image before booting an instance with the newly created volume. * `blank` -> `volume` - Creates a blank Cinder volume and attaches it. This will also require the volume size to be set. * `blank` -> `local` - Depending on the guest_format field (see below), this will either mean an ephemeral blank disk on hypervisor local storage, or a swap disk (instances can have only one of those). Nova will not allow mixing of BDMv1 and BDMv2 in a single request, and will do basic validation to make sure that the requested block device mapping is valid before accepting a boot request. .. [1] In addition to the BlockDeviceMapping Nova object, we also have the BlockDeviceDict class in :mod: `nova.block_device` module. This class handles transforming and validating the API BDM format. .. [2] This work predates API microversions and thus the only way to add it was by means of an API extension. .. [3] This is a feature that the EC2 API offers as well and has been in Nova for a long time, although it has been broken in several releases. More info can be found on `this bug ` nova-17.0.13/doc/source/user/feature-matrix-nfv.ini0000664000175000017500000000372513556316250022135 0ustar zuulzuul00000000000000# # Lists all the CI jobs as targets # [target.libvirt-kvm] title=libvirt+kvm (x86 & ppc64) link=http://docs.openstack.org/infra/manual/developers.html#project-gating [target.libvirt-kvm-s390] title=libvirt+kvm (s390x) link=http://docs.openstack.org/infra/manual/developers.html#project-gating [target.libvirt-xen] title=libvirt+xen link=https://wiki.openstack.org/wiki/ThirdPartySystems/XenProject_CI # # Lists all features # # Includes information on the feature, its maturity, status, # links to admin docs, api docs and tempest test uuids. # # It then lists the current state for each of the about CI jobs. # It is hoped this mapping will eventually be automated. # [operation.numa-placement] title=NUMA Placement notes=Configure placement of instance vCPUs and memory across host NUMA nodes maturity=experimental api_doc_link=https://developer.openstack.org/api-ref/compute/#create-server admin_doc_link=https://docs.openstack.org/nova/latest/admin/cpu-topologies.html#customizing-instance-cpu-pinning-policies tempest_test_uuids=9a438d88-10c6-4bcd-8b5b-5b6e25e1346f;585e934c-448e-43c4-acbf-d06a9b899997 libvirt-kvm=partial libvirt-kvm-s390=unknown libvirt-xen=missing [operation.cpu-pinning-policy] title=CPU Pinning Policy notes=Enable/disable binding of instance vCPUs to host CPUs maturity=experimental api_doc_link=https://developer.openstack.org/api-ref/compute/#create-server admin_doc_link=https://docs.openstack.org/nova/latest/admin/cpu-topologies.html#customizing-instance-cpu-pinning-policies libvirt-kvm=partial libvirt-kvm-s390=unknown libvirt-xen=missing [operation.cpu-pinning-thread-policy] title=CPU Pinning Thread Policy notes=Configure usage of host hardware threads when pinning is used maturity=experimental api_doc_link=https://developer.openstack.org/api-ref/compute/#create-server admin_doc_link=https://docs.openstack.org/nova/latest/admin/cpu-topologies.html#customizing-instance-cpu-pinning-policies libvirt-kvm=partial libvirt-kvm-s390=unknown libvirt-xen=missing nova-17.0.13/doc/source/user/wsgi.rst0000664000175000017500000000337313556316250017412 0ustar zuulzuul00000000000000Using WSGI with Nova ==================== Though the compute and metadata APIs can be run using independent scripts that provide eventlet-based HTTP servers, it is generally considered more performant and flexible to run them using a generic HTTP server that supports WSGI_ (such as Apache_ or nginx_). The nova project provides two automatically generated entry points that support this: ``nova-api-wsgi`` and ``nova-metadata-wsgi``. These read ``nova.conf`` and ``api-paste.ini`` and generate the required module-level ``application`` that most WSGI servers require. If nova is installed using pip, these two scripts will be installed into whatever the expected ``bin`` directory is for the environment. The new scripts replace older experimental scripts that could be found in the ``nova/wsgi`` directory of the code repository. The new scripts are *not* experimental. When running the compute and metadata services with WSGI, sharing the compute and metadata service in the same process is not supported (as it is in the eventlet-based scripts). In devstack as of May 2017, the compute and metadata APIs are hosted by a Apache communicating with uwsgi_ via mod_proxy_uwsgi_. Inspecting the configuration created there can provide some guidance on one option for managing the WSGI scripts. It is important to remember, however, that one of the major features of using WSGI is that there are many different ways to host a WSGI application. Different servers make different choices about performance and configurability. .. _WSGI: https://www.python.org/dev/peps/pep-3333/ .. _apache: http://httpd.apache.org/ .. _nginx: http://nginx.org/en/ .. _uwsgi: https://uwsgi-docs.readthedocs.io/ .. _mod_proxy_uwsgi: http://uwsgi-docs.readthedocs.io/en/latest/Apache.html#mod-proxy-uwsgi nova-17.0.13/doc/source/user/upgrade.rst0000664000175000017500000003605513556316250020073 0ustar zuulzuul00000000000000.. Copyright 2014 Rackspace All Rights Reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. Upgrades ======== Nova aims to provide upgrades with minimal downtime. Firstly, the data plane. There should be no VM downtime when you upgrade Nova. Nova has had this since the early days, with the exception of some nova-network related services. Secondly, we want no downtime during upgrades of the Nova control plane. This document is trying to describe how we can achieve that. Once we have introduced the key concepts relating to upgrade, we will introduce the process needed for a no downtime upgrade of nova. .. _minimal_downtime_upgrade: Minimal Downtime Upgrade Process -------------------------------- Plan your upgrade ''''''''''''''''' * Read and ensure you understand the release notes for the next release. * You should ensure all required steps from the previous upgrade have been completed, such as data migrations. * Make a backup of your database. Nova does not support downgrading of the database. Hence, in case of upgrade failure, restoring database from backup is the only choice. * During upgrade be aware that there will be additional load on nova-conductor. You may find you need to add extra nova-conductor workers to deal with the additional upgrade related load. Rolling upgrade process ''''''''''''''''''''''' To reduce downtime, the compute services can be upgraded in a rolling fashion. It means upgrading a few services at a time. This results in a condition where both old (N) and new (N+1) nova-compute services co-exist for a certain time period. Note that, there is no upgrade of the hypervisor here, this is just upgrading the nova services. If reduced downtime is not a concern (or lower complexity is desired), all services may be taken down and restarted at the same time. #. Before maintenance window: * Start the process with the controller node. Install the code for the next version of Nova, either in a venv or a separate control plane node, including all the python dependencies. * Using the newly installed nova code, run the DB sync. (``nova-manage db sync``; ``nova-manage api_db sync``). These schema change operations should have minimal or no effect on performance, and should not cause any operations to fail. * At this point, new columns and tables may exist in the database. These DB schema changes are done in a way that both the N and N+1 release can perform operations against the same schema. #. During maintenance window: * Several nova services rely on the external placement service, and while efforts are made for the nova code to work with older versions of the placement API, it is generally best to upgrade placement before any nova services. See the :ref:`placement upgrade notes ` for more details on upgrading the placement service. * For maximum safety (no failed API operations), gracefully shutdown all the services (i.e. SIG_TERM) except nova-compute. * Start all services on the new code, with ``[upgrade_levels]compute=auto`` in nova.conf. It is safest to start nova-conductor first and nova-api last. Note that you may use a static alias name instead of ``auto``, such as ``[upgrade_levels]compute=``. Also note that this step is only required if compute services are not upgraded in lock-step with the control services. * If desired, gracefully shutdown nova-compute (i.e. SIG_TERM) services in small batches, then start the new version of the code with: ``[upgrade_levels]compute=auto``. If this batch-based approach is used, only a few compute nodes will have any delayed API actions, and to ensure there is enough capacity online to service any boot requests that happen during this time. #. After maintenance window: * Once all services are running the new code, double check in the DB that there are no old orphaned service records using `nova service-list`. * Now that all services are upgraded, we need to send the SIG_HUP signal, so all the services clear any cached service version data. When a new service starts, it automatically detects which version of the compute RPC protocol to use, and it can decide if it is safe to do any online data migrations. Note, if you used a static value for the upgrade_level, such as ``[upgrade_levels]compute=``, you must update nova.conf to remove that configuration value and do a full service restart. * Now all the services are upgraded and signaled, the system is able to use the latest version of the RPC protocol and can access all of the features in the new release. * Once all the services are running the latest version of the code, and all the services are aware they all have been upgraded, it is safe to transform the data in the database into its new format. While some of this work happens on demand when the system reads a database row that needs updating, we must get all the data transformed into the current version before the next upgrade. Additionally, some data may not be transformed automatically so performing the data migration is necessary to avoid performance degradation due to compatibility routines. * This process can put significant extra write load on the database. Complete all online data migrations using: ``nova-manage db online_data_migrations --max-count ``. Note that you can use the ``--max-count`` argument to reduce the load this operation will place on the database, which allows you to run a small chunk of the migrations until all of the work is done. Each time it is run, it will show a summary of completed and remaining records. You run this command until you see completed and remaining records as zeros. The chunk size you should use depend on your infrastructure and how much additional load you can impose on the database. To reduce load, perform smaller batches with delays between chunks. To reduce time to completion, run larger batches. * At this point, you must also ensure you update the configuration, to stop using any deprecated features or options, and perform any required work to transition to alternative features. All the deprecated options should be supported for one cycle, but should be removed before your next upgrade is performed. Current Database Upgrade Types ------------------------------ Currently Nova has 2 types of database upgrades that are in use. #. Schema Migrations #. Data Migrations Schema Migrations '''''''''''''''''' Schema migrations are defined in ``nova/db/sqlalchemy/migrate_repo/versions`` and in ``nova/db/sqlalchemy/api_migrations/migrate_repo/versions``. They are the routines that transform our database structure, which should be additive and able to be applied to a running system before service code has been upgraded. Data Migrations ''''''''''''''''' Online data migrations occur in two places: #. Inline migrations that occur as part of normal run-time activity as data is read in the old format and written in the new format #. Background online migrations that are performed using ``nova-manage`` to complete transformations that will not occur incidentally due to normal runtime activity. An example of online data migrations are the flavor migrations done as part of Nova object version 1.18. This included a transient migration of flavor storage from one database location to another. .. note:: Database downgrades are not supported. Migration policy: ''''''''''''''''' The following guidelines for schema and data migrations are followed in order to ease upgrades: * Additive schema migrations - In general, almost all schema migrations should be additive. Put simply, they should only create elements like columns, indices, and tables. * Subtractive schema migrations - To remove an element like a column or table during the N release cycle: #. The element must be deprecated and retained for backward compatibility. (This allows for graceful upgrade from N to N+1.) #. Data migration, by the objects layer, must completely migrate data from the old version of the schema to the new version. * `Data migration example `_ * `Data migration enforcement example `_ (for sqlalchemy migrate/deprecated scripts): #. The column can then be removed with a migration at the start of N+2. * All schema migrations should be idempotent. (For example, a migration should check if an element exists in the schema before attempting to add it.) This logic comes for free in the autogenerated workflow of the online migrations. * Constraints - When adding a foreign or unique key constraint, the schema migration code needs to handle possible problems with data before applying the constraint. (Example: A unique constraint must clean up duplicate records before applying said constraint.) * Data migrations - As mentioned above, data migrations will be done in an online fashion by custom code in the object layer that handles moving data between the old and new portions of the schema. In addition, for each type of data migration performed, there should exist a nova-manage option for an operator to manually request that rows be migrated. * See `flavor migration spec `_ for an example of data migrations in the object layer. *Future* work - #. Adding plumbing to enforce that relevant data migrations are completed before running `contract` in the expand/migrate/contract schema migration workflow. A potential solution would be for `contract` to run a gating test for each specific subtract operation to determine if the operation can be completed. Concepts -------- Here are the key concepts you need to know before reading the section on the upgrade process: RPC version pinning Through careful RPC versioning, newer nodes are able to talk to older nova-compute nodes. When upgrading control plane nodes, we can pin them at an older version of the compute RPC API, until all the compute nodes are able to be upgraded. https://wiki.openstack.org/wiki/RpcMajorVersionUpdates .. note:: This does not apply to cells v1 deployments since cells v1 does not support rolling upgrades. It is assumed that cells v1 deployments are upgraded in lockstep so n-1 cells compatibility does not work. The procedure for rolling upgrades with multiple cells v2 cells is not yet determined. Online Configuration Reload During the upgrade, we pin new serves at the older RPC version. When all services are updated to use newer code, we need to unpin them so we are able to use any new functionality. To avoid having to restart the service, using the current SIGHUP signal handling, or otherwise, ideally we need a way to update the currently running process to use the latest configuration. Graceful service shutdown Many nova services are python processes listening for messages on a AMQP queue, including nova-compute. When sending the process the SIGTERM the process stops getting new work from its queue, completes any outstanding work, then terminates. During this process, messages can be left on the queue for when the python process starts back up. This gives us a way to shutdown a service using older code, and start up a service using newer code with minimal impact. If its a service that can have multiple workers, like nova-conductor, you can usually add the new workers before the graceful shutdown of the old workers. In the case of singleton services, like nova-compute, some actions could be delayed during the restart, but ideally no actions should fail due to the restart. .. note:: While this is true for the RabbitMQ RPC backend, we need to confirm what happens for other RPC backends. API load balancer draining When upgrading API nodes, you can make your load balancer only send new connections to the newer API nodes, allowing for a seamless update of your API nodes. Expand/Contract DB Migrations Modern databases are able to make many schema changes while you are still writing to the database. Taking this a step further, we can make all DB changes by first adding the new structures, expanding. Then you can slowly move all the data into a new location and format. Once that is complete, you can drop bits of the scheme that are no long needed, i.e. contract. This happens multiple cycles after we have stopped using a particular piece of schema, and can happen in a schema migration without affecting runtime code. Online Data Migrations using objects In Kilo we are moving all data migration into the DB objects code. When trying to migrate data in the database from the old format to the new format, this is done in the object code when reading or saving things that are in the old format. For records that are not updated, you need to run a background process to convert those records into the newer format. This process must be completed before you contract the database schema. DB prune deleted rows Currently resources are soft deleted in the main database, so users are able to track instances in the DB that are created and destroyed in production. However, most people have a data retention policy, of say 30 days or 90 days after which they will want to delete those entries. Not deleting those entries affects DB performance as indices grow very large and data migrations take longer as there is more data to migrate. nova-conductor object backports RPC pinning ensures new services can talk to the older service's method signatures. But many of the parameters are objects that may well be too new for the old service to understand, so you are able to send the object back to the nova-conductor to be downgraded to a version the older service can understand. Testing ------- Once we have all the pieces in place, we hope to move the Grenade testing to follow this new pattern. The current tests only cover the existing upgrade process where: * old computes can run with new control plane * but control plane is turned off for DB migrations nova-17.0.13/doc/source/user/manage-ip-addresses.rst0000664000175000017500000002004013556316250022240 0ustar zuulzuul00000000000000=================== Manage IP addresses =================== Each instance has a private, fixed IP address and can also have a public, or floating IP address. Private IP addresses are used for communication between instances, and public addresses are used for communication with networks outside the cloud, including the Internet. When you launch an instance, it is automatically assigned a private IP address that stays the same until you explicitly terminate the instance. Rebooting an instance has no effect on the private IP address. A pool of floating IP addresses, configured by the cloud administrator, is available in OpenStack Compute. The project quota defines the maximum number of floating IP addresses that you can allocate to the project. After you allocate a floating IP address to a project, you can: - Associate the floating IP address with an instance of the project. - Disassociate a floating IP address from an instance in the project. - Delete a floating IP from the project which automatically deletes that IP's associations. Use the :command:`openstack` commands to manage floating IP addresses. List floating IP address information ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ To list all pools that provide floating IP addresses, run: .. code-block:: console $ openstack floating ip pool list +--------+ | name | +--------+ | public | | test | +--------+ .. note:: If this list is empty, the cloud administrator must configure a pool of floating IP addresses. To list all floating IP addresses that are allocated to the current project, run: .. code-block:: console $ openstack floating ip list +--------------------------------------+---------------------+------------------+------+ | ID | Floating IP Address | Fixed IP Address | Port | +--------------------------------------+---------------------+------------------+------+ | 760963b2-779c-4a49-a50d-f073c1ca5b9e | 172.24.4.228 | None | None | | 89532684-13e1-4af3-bd79-f434c9920cc3 | 172.24.4.235 | None | None | | ea3ebc6d-a146-47cd-aaa8-35f06e1e8c3d | 172.24.4.229 | None | None | +--------------------------------------+---------------------+------------------+------+ For each floating IP address that is allocated to the current project, the command outputs the floating IP address, the ID for the instance to which the floating IP address is assigned, the associated fixed IP address, and the pool from which the floating IP address was allocated. Associate floating IP addresses ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ You can assign a floating IP address to a project and to an instance. #. Run the following command to allocate a floating IP address to the current project. By default, the floating IP address is allocated from the public pool. The command outputs the allocated IP address: .. code-block:: console $ openstack floating ip create public +---------------------+--------------------------------------+ | Field | Value | +---------------------+--------------------------------------+ | created_at | 2016-11-30T15:02:05Z | | description | | | fixed_ip_address | None | | floating_ip_address | 172.24.4.236 | | floating_network_id | 0bf90de6-fc0f-4dba-b80d-96670dfb331a | | headers | | | id | c70ad74b-2f64-4e60-965e-f24fc12b3194 | | port_id | None | | project_id | 5669caad86a04256994cdf755df4d3c1 | | project_id | 5669caad86a04256994cdf755df4d3c1 | | revision_number | 1 | | router_id | None | | status | DOWN | | updated_at | 2016-11-30T15:02:05Z | +---------------------+--------------------------------------+ #. List all project instances with which a floating IP address could be associated. .. code-block:: console $ openstack server list +---------------------+------+---------+------------+-------------+------------------+------------+ | ID | Name | Status | Task State | Power State | Networks | Image Name | +---------------------+------+---------+------------+-------------+------------------+------------+ | d5c854f9-d3e5-4f... | VM1 | ACTIVE | - | Running | private=10.0.0.3 | cirros | | 42290b01-0968-43... | VM2 | SHUTOFF | - | Shutdown | private=10.0.0.4 | centos | +---------------------+------+---------+------------+-------------+------------------+------------+ Note the server ID to use. #. List ports associated with the selected server. .. code-block:: console $ openstack port list --device-id SERVER_ID +--------------------------------------+------+-------------------+--------------------------------------------------------------+--------+ | ID | Name | MAC Address | Fixed IP Addresses | Status | +--------------------------------------+------+-------------------+--------------------------------------------------------------+--------+ | 40e9dea9-f457-458f-bc46-6f4ebea3c268 | | fa:16:3e:00:57:3e | ip_address='10.0.0.4', subnet_id='23ee9de7-362e- | ACTIVE | | | | | 49e2-a3b0-0de1c14930cb' | | | | | | ip_address='fd22:4c4c:81c2:0:f816:3eff:fe00:573e', subnet_id | | | | | | ='a2b3acbe-fbeb-40d3-b21f-121268c21b55' | | +--------------------------------------+------+-------------------+--------------------------------------------------------------+--------+ Note the port ID to use. #. Associate an IP address with an instance in the project, as follows: .. code-block:: console $ openstack floating ip set --port PORT_ID FLOATING_IP_ADDRESS For example: .. code-block:: console $ openstack floating ip set --port 40e9dea9-f457-458f-bc46-6f4ebea3c268 172.24.4.225 The instance is now associated with two IP addresses: .. code-block:: console $ openstack server list +------------------+------+--------+------------+-------------+-------------------------------+------------+ | ID | Name | Status | Task State | Power State | Networks | Image Name | +------------------+------+--------+------------+-------------+-------------------------------+------------+ | d5c854f9-d3e5... | VM1 | ACTIVE | - | Running | private=10.0.0.3, 172.24.4.225| cirros | | 42290b01-0968... | VM2 | SHUTOFF| - | Shutdown | private=10.0.0.4 | centos | +------------------+------+--------+------------+-------------+-------------------------------+------------+ After you associate the IP address and configure security group rules for the instance, the instance is publicly available at the floating IP address. Disassociate floating IP addresses ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ To disassociate a floating IP address from an instance: .. code-block:: console $ openstack floating ip unset --port FLOATING_IP_ADDRESS To remove the floating IP address from a project: .. code-block:: console $ openstack floating ip delete FLOATING_IP_ADDRESS The IP address is returned to the pool of IP addresses that is available for all projects. If the IP address is still associated with a running instance, it is automatically disassociated from that instance. nova-17.0.13/doc/source/user/launch-instance-from-volume.rst0000664000175000017500000004635113556316250023766 0ustar zuulzuul00000000000000================================ Launch an instance from a volume ================================ You can boot instances from a volume instead of an image. To complete these tasks, use these parameters on the :command:`openstack server create` command: .. tabularcolumns:: |p{0.3\textwidth}|p{0.25\textwidth}|p{0.4\textwidth}| .. list-table:: :header-rows: 1 :widths: 30 15 30 * - Task - openstack server create parameter - Information * - Boot an instance from an image and attach a non-bootable volume. - ``--block-device`` - :ref:`Boot_instance_from_image_and_attach_non-bootable_volume` * - Create a volume from an image and boot an instance from that volume. - ``--block-device`` - :ref:`Create_volume_from_image_and_boot_instance` * - Boot from an existing source image, volume, or snapshot. - ``--block-device`` - :ref:`Create_volume_from_image_and_boot_instance` * - Attach a swap disk to an instance. - ``--swap`` - :ref:`Attach_swap_or_ephemeral_disk_to_an_instance` * - Attach an ephemeral disk to an instance. - ``--ephemeral`` - :ref:`Attach_swap_or_ephemeral_disk_to_an_instance` .. note:: To attach a volume to a running instance, see `Attach a volume to an instance`_. .. _Attach a volume to an instance: https://docs.openstack.org/cinder/latest/cli/cli-manage-volumes.html#attach-a-volume-to-an-instance .. _Boot_instance_from_image_and_attach_non-bootable_volume: Boot instance from image and attach non-bootable volume ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Create a non-bootable volume and attach that volume to an instance that you boot from an image. To create a non-bootable volume, do not create it from an image. The volume must be entirely empty with no partition table and no file system. #. Create a non-bootable volume. .. code-block:: console $ openstack volume create --size 8 my-volume +---------------------+--------------------------------------+ | Field | Value | +---------------------+--------------------------------------+ | attachments | [] | | availability_zone | nova | | bootable | false | | consistencygroup_id | None | | created_at | 2016-11-25T10:37:08.850997 | | description | None | | encrypted | False | | id | b8f7bbec-6274-4cd7-90e7-60916a5e75d4 | | migration_status | None | | multiattach | False | | name | my-volume | | properties | | | replication_status | disabled | | size | 8 | | snapshot_id | None | | source_volid | None | | status | creating | | type | None | | updated_at | None | | user_id | 0678735e449149b0a42076e12dd54e28 | +---------------------+--------------------------------------+ #. List volumes. .. code-block:: console $ openstack volume list +--------------------------------------+--------------+-----------+------+-------------+ | ID | Display Name | Status | Size | Attached to | +--------------------------------------+--------------+-----------+------+-------------+ | b8f7bbec-6274-4cd7-90e7-60916a5e75d4 | my-volume | available | 8 | | +--------------------------------------+--------------+-----------+------+-------------+ #. Boot an instance from an image and attach the empty volume to the instance. .. code-block:: console $ openstack server create --flavor 2 --image 98901246-af91-43d8-b5e6-a4506aa8f369 \ --block-device source=volume,id=d620d971-b160-4c4e-8652-2513d74e2080,dest=volume,shutdown=preserve \ myInstanceWithVolume +--------------------------------------+--------------------------------------------+ | Field | Value | +--------------------------------------+--------------------------------------------+ | OS-DCF:diskConfig | MANUAL | | OS-EXT-AZ:availability_zone | nova | | OS-EXT-SRV-ATTR:host | - | | OS-EXT-SRV-ATTR:hypervisor_hostname | - | | OS-EXT-SRV-ATTR:instance_name | instance-00000004 | | OS-EXT-STS:power_state | 0 | | OS-EXT-STS:task_state | scheduling | | OS-EXT-STS:vm_state | building | | OS-SRV-USG:launched_at | - | | OS-SRV-USG:terminated_at | - | | accessIPv4 | | | accessIPv6 | | | adminPass | ZaiYeC8iucgU | | config_drive | | | created | 2014-05-09T16:34:50Z | | flavor | m1.small (2) | | hostId | | | id | 1e1797f3-1662-49ff-ae8c-a77e82ee1571 | | image | cirros-0.3.5-x86_64-uec (98901246-af91-... | | key_name | - | | metadata | {} | | name | myInstanceWithVolume | | os-extended-volumes:volumes_attached | [{"id": "d620d971-b160-4c4e-8652-2513d7... | | progress | 0 | | security_groups | default | | status | BUILD | | tenant_id | ccef9e62b1e645df98728fb2b3076f27 | | updated | 2014-05-09T16:34:51Z | | user_id | fef060ae7bfd4024b3edb97dff59017a | +--------------------------------------+--------------------------------------------+ .. _Create_volume_from_image_and_boot_instance: Create volume from image and boot instance ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ You can create a volume from an existing image, volume, or snapshot. This procedure shows you how to create a volume from an image, and use the volume to boot an instance. #. List the available images. .. code-block:: console $ openstack image list +-----------------+---------------------------------+--------+ | ID | Name | Status | +-----------------+---------------------------------+--------+ | 484e05af-a14... | Fedora-x86_64-20-20131211.1-sda | active | | 98901246-af9... | cirros-0.3.5-x86_64-uec | active | | b6e95589-7eb... | cirros-0.3.5-x86_64-uec-kernel | active | | c90893ea-e73... | cirros-0.3.5-x86_64-uec-ramdisk | active | +-----------------+---------------------------------+--------+ Note the ID of the image that you want to use to create a volume. If you want to create a volume to a specific storage backend, you need to use an image which has *cinder_img_volume_type* property. In this case, a new volume will be created as *storage_backend1* volume type. .. code-block:: console $ openstack image show 98901246-af9d-4b61-bea8-09cc6dc41829 +------------------+------------------------------------------------------+ | Field | Value | +------------------+------------------------------------------------------+ | checksum | ee1eca47dc88f4879d8a229cc70a07c6 | | container_format | bare | | created_at | 2016-10-08T14:59:05Z | | disk_format | qcow2 | | file | /v2/images/9fef3b2d-c35d-4b61-bea8-09cc6dc41829/file | | id | 98901246-af9d-4b61-bea8-09cc6dc41829 | | min_disk | 0 | | min_ram | 0 | | name | cirros-0.3.5-x86_64-uec | | owner | 8d8ef3cdf2b54c25831cbb409ad9ae86 | | protected | False | | schema | /v2/schemas/image | | size | 13287936 | | status | active | | tags | | | updated_at | 2016-10-19T09:12:52Z | | virtual_size | None | | visibility | public | +------------------+------------------------------------------------------+ #. List the available flavors. .. code-block:: console $ openstack flavor list +-----+-----------+-------+------+-----------+-------+-----------+ | ID | Name | RAM | Disk | Ephemeral | VCPUs | Is_Public | +-----+-----------+-------+------+-----------+-------+-----------+ | 1 | m1.tiny | 512 | 1 | 0 | 1 | True | | 2 | m1.small | 2048 | 20 | 0 | 1 | True | | 3 | m1.medium | 4096 | 40 | 0 | 2 | True | | 4 | m1.large | 8192 | 80 | 0 | 4 | True | | 5 | m1.xlarge | 16384 | 160 | 0 | 8 | True | +-----+-----------+-------+------+-----------+-------+-----------+ Note the ID of the flavor that you want to use to create a volume. #. To create a bootable volume from an image and launch an instance from this volume, use the ``--block-device`` parameter. For example: .. code-block:: console $ openstack server create --flavor FLAVOR --block-device \ source=SOURCE,id=ID,dest=DEST,size=SIZE,shutdown=PRESERVE,bootindex=INDEX \ NAME The parameters are: - ``--flavor`` The flavor ID or name. - ``--block-device`` source=SOURCE,id=ID,dest=DEST,size=SIZE,shutdown=PRESERVE,bootindex=INDEX **source=SOURCE** The type of object used to create the block device. Valid values are ``volume``, ``snapshot``, ``image``, and ``blank``. **id=ID** The ID of the source object. **dest=DEST** The type of the target virtual device. Valid values are ``volume`` and ``local``. **size=SIZE** The size of the volume that is created. **shutdown={preserve\|remove}** What to do with the volume when the instance is deleted. ``preserve`` does not delete the volume. ``remove`` deletes the volume. **bootindex=INDEX** Orders the boot disks. Use ``0`` to boot from this volume. - ``NAME``. The name for the server. See :doc:`block-device-mapping` for more details on these parameters. #. Create a bootable volume from an image. Cinder makes a volume bootable when ``--image`` parameter is passed. .. code-block:: console $ openstack volume create --image IMAGE_ID --size SIZE_IN_GB bootable_volume .. note:: A bootable encrypted volume can also be created by adding the `-–type ENCRYPTED_VOLUME_TYPE` parameter to the volume create command: .. code-block:: console $ openstack volume create --type ENCRYPTED_VOLUME_TYPE --image IMAGE_ID --size SIZE_IN_GB bootable_volume +---------------------+--------------------------------------+ | Field | Value | +---------------------+--------------------------------------+ | attachments | [] | | availability_zone | nova | | bootable | false | | consistencygroup_id | None | | created_at | 2017-06-13T18:59:57.626872 | | description | None | | encrypted | True | | id | ded57a86-5b51-43ab-b70e-9bc0f91ef4ab | | multiattach | False | | name | bootable_volume | | properties | | | replication_status | None | | size | 1 | | snapshot_id | None | | source_volid | None | | status | creating | | type | LUKS | | updated_at | None | | user_id | 459ae34ffcd94edab0c128ed616bb19f | +---------------------+--------------------------------------+ This requires an encrypted volume type, which must be created ahead of time by an admin. See `Create an encrypted volume type `_ in the OpenStack Horizon Administration Guide. #. Create a VM from previously created bootable volume. The volume is not deleted when the instance is terminated. .. code-block:: console $ openstack server create --flavor 2 --volume VOLUME_ID \ --block-device source=volume,id=$VOLUME_ID,dest=volume,size=10,shutdown=preserve,bootindex=0 \ myInstanceFromVolume +--------------------------------------+--------------------------------+ | Field | Value | +--------------------------------------+--------------------------------+ | OS-EXT-STS:task_state | scheduling | | image | Attempt to boot from volume | | | - no image supplied | | OS-EXT-STS:vm_state | building | | OS-EXT-SRV-ATTR:instance_name | instance-00000003 | | OS-SRV-USG:launched_at | None | | flavor | m1.small | | id | 2e65c854-dba9-4f68-8f08-fe3... | | security_groups | [{u'name': u'default'}] | | user_id | 352b37f5c89144d4ad053413926... | | OS-DCF:diskConfig | MANUAL | | accessIPv4 | | | accessIPv6 | | | progress | 0 | | OS-EXT-STS:power_state | 0 | | OS-EXT-AZ:availability_zone | nova | | config_drive | | | status | BUILD | | updated | 2014-02-02T13:29:54Z | | hostId | | | OS-EXT-SRV-ATTR:host | None | | OS-SRV-USG:terminated_at | None | | key_name | None | | OS-EXT-SRV-ATTR:hypervisor_hostname | None | | name | myInstanceFromVolume | | adminPass | TzjqyGsRcJo9 | | tenant_id | f7ac731cc11f40efbc03a9f9e1d... | | created | 2014-02-02T13:29:53Z | | os-extended-volumes:volumes_attached | [{"id": "2fff50ab..."}] | | metadata | {} | +--------------------------------------+--------------------------------+ #. List volumes to see the bootable volume and its attached ``myInstanceFromVolume`` instance. .. code-block:: console $ openstack volume list +---------------------+-----------------+--------+------+---------------------------------+ | ID | Display Name | Status | Size | Attached to | +---------------------+-----------------+--------+------+---------------------------------+ | c612f739-8592-44c4- | bootable_volume | in-use | 10 | Attached to myInstanceFromVolume| | b7d4-0fee2fe1da0c | | | | on /dev/vda | +---------------------+-----------------+--------+------+---------------------------------+ .. _Attach_swap_or_ephemeral_disk_to_an_instance: Attach swap or ephemeral disk to an instance ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Use the ``nova boot`` ``--swap`` parameter to attach a swap disk on boot or the ``nova boot`` ``--ephemeral`` parameter to attach an ephemeral disk on boot. When you terminate the instance, both disks are deleted. Boot an instance with a 512 MB swap disk and 2 GB ephemeral disk. .. code-block:: console $ nova boot --flavor FLAVOR --image IMAGE_ID --swap 512 \ --ephemeral size=2 NAME .. note:: The flavor defines the maximum swap and ephemeral disk size. You cannot exceed these maximum values. nova-17.0.13/doc/source/user/conductor.rst0000664000175000017500000000617213556316250020441 0ustar zuulzuul00000000000000.. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. Conductor as a place for orchestrating tasks ============================================ In addition to its roles as a database proxy and object backporter the conductor service also serves as a centralized place to manage the execution of workflows which involve the scheduler. Rebuild, resize/migrate, and building an instance are managed here. This was done in order to have a better separation of responsibilities between what compute nodes should handle and what the scheduler should handle, and to clean up the path of execution. Conductor was chosen because in order to query the scheduler in a synchronous manner it needed to happen after the API had returned a response otherwise API response times would increase. And changing the scheduler call from asynchronous to synchronous helped to clean up the code. To illustrate this the old process for building an instance was: * API receives request to build an instance. * API sends an RPC cast to the scheduler to pick a compute. * Scheduler sends an RPC cast to the compute to build the instance, which means the scheduler needs to be able to communicate with all computes. * If the build succeeds it stops here. * If the build fails then the compute decides if the max number of scheduler retries has been hit. If so the build stops there. * If the build should be rescheduled the compute sends an RPC cast to the scheduler in order to pick another compute. This was overly complicated and meant that the logic for scheduling/rescheduling was distributed throughout the code. The answer to this was to change to process to be the following: * API receives request to build an instance. * API sends an RPC cast to the conductor to build an instance. (or runs locally if conductor is configured to use local_mode) * Conductor sends an RPC call to the scheduler to pick a compute and waits for the response. If there is a scheduler fail it stops the build at the conductor. * Conductor sends an RPC cast to the compute to build the instance. * If the build succeeds it stops here. * If the build fails then compute sends an RPC cast to conductor to build an instance. This is the same RPC message that was sent by the API. This new process means the scheduler only deals with scheduling, the compute only deals with building an instance, and the conductor manages the workflow. The code is now cleaner in the scheduler and computes. The resize/migrate process has not yet been fully converted to a style to take advantage of what conductor can provide so expect that this will change over time. nova-17.0.13/doc/source/user/cellsv2-layout.rst0000664000175000017500000003533213556316250021326 0ustar zuulzuul00000000000000.. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. =================== Cells Layout (v2) =================== This document describes the layout of a deployment with Cells version 2, including deployment considerations for security and scale. It is focused on code present in Pike and later, and while it is geared towards people who want to have multiple cells for whatever reason, the nature of the cellsv2 support in Nova means that it applies in some way to all deployments. .. note:: The concepts laid out in this document do not in any way relate to CellsV1, which includes the ``nova-cells`` service, and the ``[cells]`` section of the configuration file. For more information on the differences, see the main :ref:`cells` page. Concepts ======== A basic Nova system consists of the following components: * The nova-api service which provides the external REST API to users. * The nova-scheduler and placement services which are responsible for tracking resources and deciding which compute node instances should be on. * An "API database" that is used primarily by nova-api and nova-scheduler (called *API-level services* below) to track location information about instances, as well as a temporary location for instances being built but not yet scheduled. * The nova-conductor service which offloads long-running tasks for the API-level service, as well as insulates compute nodes from direct database access * The nova-compute service which manages the virt driver and hypervisor host. * A "cell database" which is used by API, conductor and compute services, and which houses the majority of the information about instances. * A "cell0 database" which is just like the cell database, but contains only instances that failed to be scheduled. * A message queue which allows the services to communicate with each other via RPC. All deployments have at least the above components. Small deployments likely have a single message queue that all services share, and a single database server which hosts the API database, a single cell database, as well as the required cell0 database. This is considered a "single-cell deployment" because it only has one "real" cell. The cell0 database mimics a regular cell, but has no compute nodes and is used only as a place to put instances that fail to land on a real compute node (and thus a real cell). The purpose of the cells functionality in nova is specifically to allow larger deployments to shard their many compute nodes into cells, each of which has a database and message queue. The API database is always and only global, but there can be many cell databases (where the bulk of the instance information lives), each with a portion of the instances for the entire deployment within. All of the nova services use a configuration file, all of which will at a minimum specify a message queue endpoint (i.e. ``[DEFAULT]/transport_url``). Most of the services also require configuration of database connection information (i.e. ``[database]/connection``). API-level services that need access to the global routing and placement information will also be configured to reach the API database (i.e. ``[api_database]/connection``). .. note:: The pair of ``transport_url`` and ``[database]/connection`` configured for a service defines what cell a service lives in. API-level services need to be able to contact other services in all of the cells. Since they only have one configured ``transport_url`` and ``[database]/connection`` they look up the information for the other cells in the API database, with records called *cell mappings*. .. note:: The API database must have cell mapping records that match the ``transport_url`` and ``[database]/connection`` configuration elements of the lower-level services. See the ``nova-manage`` :ref:`man-page-cells-v2` commands for more information about how to create and examine these records. Service Layout ============== The services generally have a well-defined communication pattern that dictates their layout in a deployment. In a small/simple scenario, the rules do not have much of an impact as all the services can communicate with each other on a single message bus and in a single cell database. However, as the deployment grows, scaling and security concerns may drive separation and isolation of the services. Simple ------ This is a diagram of the basic services that a simple (single-cell) deployment would have, as well as the relationships (i.e. communication paths) between them: .. graphviz:: digraph services { graph [pad="0.35", ranksep="0.65", nodesep="0.55", concentrate=true]; node [fontsize=10 fontname="Monospace"]; edge [arrowhead="normal", arrowsize="0.8"]; labelloc=bottom; labeljust=left; { rank=same api [label="nova-api"] apidb [label="API Database" shape="box"] scheduler [label="nova-scheduler"] } { rank=same mq [label="MQ" shape="diamond"] conductor [label="nova-conductor"] } { rank=same cell0db [label="Cell0 Database" shape="box"] celldb [label="Cell Database" shape="box"] compute [label="nova-compute"] } api -> mq -> compute conductor -> mq -> scheduler api -> apidb api -> cell0db api -> celldb conductor -> apidb conductor -> cell0db conductor -> celldb } All of the services are configured to talk to each other over the same message bus, and there is only one cell database where live instance data resides. The cell0 database is present (and required) but as no compute nodes are connected to it, this is still a "single cell" deployment. Multiple Cells -------------- In order to shard the services into multiple cells, a number of things must happen. First, the message bus must be split into pieces along the same lines as the cell database. Second, a dedicated conductor must be run for the API-level services, with access to the API database and a dedicated message queue. We call this *super conductor* to distinguish its place and purpose from the per-cell conductor nodes. .. graphviz:: digraph services2 { graph [pad="0.35", ranksep="0.65", nodesep="0.55", concentrate=true]; node [fontsize=10 fontname="Monospace"]; edge [arrowhead="normal", arrowsize="0.8"]; labelloc=bottom; labeljust=left; subgraph api { api [label="nova-api"] scheduler [label="nova-scheduler"] conductor [label="super conductor"] { rank=same apimq [label="API MQ" shape="diamond"] apidb [label="API Database" shape="box"] } api -> apimq -> conductor api -> apidb conductor -> apimq -> scheduler conductor -> apidb } subgraph clustercell0 { label="Cell 0" color=green cell0db [label="Cell Database" shape="box"] } subgraph clustercell1 { label="Cell 1" color=blue mq1 [label="Cell MQ" shape="diamond"] cell1db [label="Cell Database" shape="box"] conductor1 [label="nova-conductor"] compute1 [label="nova-compute"] conductor1 -> mq1 -> compute1 conductor1 -> cell1db } subgraph clustercell2 { label="Cell 2" color=red mq2 [label="Cell MQ" shape="diamond"] cell2db [label="Cell Database" shape="box"] conductor2 [label="nova-conductor"] compute2 [label="nova-compute"] conductor2 -> mq2 -> compute2 conductor2 -> cell2db } api -> mq1 -> conductor1 api -> mq2 -> conductor2 api -> cell0db api -> cell1db api -> cell2db conductor -> cell0db conductor -> cell1db conductor -> mq1 conductor -> cell2db conductor -> mq2 } It is important to note that services in the lower cell boxes only have the ability to call back to the placement API but cannot access any other API-layer services via RPC, nor do they have access to the API database for global visibility of resources across the cloud. This is intentional and provides security and failure domain isolation benefits, but also has impacts on some things that would otherwise require this any-to-any communication style. Check the release notes for the version of Nova you are using for the most up-to-date information about any caveats that may be present due to this limitation. Caveats of a Multi-Cell deployment ---------------------------------- .. note:: This information is correct as of the Pike release. Where improvements have been made or issues fixed, they are noted per item. Cross-cell instance migrations ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Currently it is not possible to migrate an instance from a host in one cell to a host in another cell. This may be possible in the future, but it is currently unsupported. This impacts cold migration, resizes, live migrations, evacuate, and unshelve operations. Quota-related quirks ~~~~~~~~~~~~~~~~~~~~ Quotas are now calculated live at the point at which an operation would consume more resource, instead of being kept statically in the database. This means that a multi-cell environment may incorrectly calculate the usage of a tenant if one of the cells is unreachable, as those resources cannot be counted. In this case, the tenant may be able to consume more resource from one of the available cells, putting them far over quota when the unreachable cell returns. In the future, placement will provide us with a consistent way to calculate usage independent of the actual cell being reachable. Performance of listing instances ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. note:: This has been resolved in the Queens release [#]_. With multiple cells, the instance list operation may not sort and paginate results properly when crossing multiple cell boundaries. Further, the performance of a sorted list operation will be considerably slower than with a single cell. Notifications ~~~~~~~~~~~~~ With a multi-cell environment with multiple message queues, it is likely that operators will want to configure a separate connection to a unified queue for notifications. This can be done in the configuration file of all nodes. See the `oslo.messaging configuration `_ documentation for more details. Neutron Metadata API proxy ~~~~~~~~~~~~~~~~~~~~~~~~~~ The Neutron metadata API proxy should be global across all cells, and thus be configured as an API-level service with access to the ``[api_database]/connection`` information. Consoleauth service and console proxies ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The consoleauth service should be global across all cells and thus be configured as an API-level service with access to the ``[api_database]/connection`` information. The various console proxies should also be global across all cells but they don't need access to the API database. Future work will deprecate the consoleauth service, store token authorizations in the cell databases, and require console proxies running per cell instead of globally. Operations Requiring upcalls ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ If you deploy multiple cells with a superconductor as described above, computes and cell-based conductors will not have the ability to speak to the scheduler as they are not connected to the same MQ. This is by design for isolation, but currently the processes are not in place to implement some features without such connectivity. Thus, anything that requires a so-called "upcall" will not function. This impacts the following: #. Instance reschedules during boot and resize .. note:: This has been resolved in the Queens release [#]_. #. Instance affinity reporting from the compute nodes to scheduler #. The late anti-affinity check during server create and evacuate #. Querying host aggregates from the cell #. Attaching a volume and ``[cinder]/cross_az_attach=False`` The first is simple: if you boot an instance, it gets scheduled to a compute node, fails, it would normally be re-scheduled to another node. That requires scheduler intervention and thus it will not work in Pike with a multi-cell layout. If you do not rely on reschedules for covering up transient compute-node failures, then this will not affect you. To ensure you do not make futile attempts at rescheduling, you should set ``[scheduler]/max_attempts=1`` in ``nova.conf``. The second two are related. The summary is that some of the facilities that Nova has for ensuring that affinity/anti-affinity is preserved between instances does not function in Pike with a multi-cell layout. If you don't use affinity operations, then this will not affect you. To make sure you don't make futile attempts at the affinity check, you should set ``[workarounds]/disable_group_policy_check_upcall=True`` and ``[filter_scheduler]/track_instance_changes=False`` in ``nova.conf``. The fourth is currently only a problem when performing live migrations using the XenAPI driver and not specifying ``--block-migrate``. The driver will attempt to figure out if block migration should be performed based on source and destination hosts being in the same aggregate. Since aggregates data has migrated to the API database, the cell conductor will not be able to access the aggregate information and will fail. The fifth is a problem because when a volume is attached to an instance in the *nova-compute* service, and ``[cinder]/cross_az_attach=False`` in nova.conf, we attempt to look up the availability zone that the instance is in which includes getting any host aggregates that the ``instance.host`` is in. Since the aggregates are in the API database and the cell conductor cannot access that information, so this will fail. In the future this check could be moved to the *nova-api* service such that the availability zone between the instance and the volume is checked before we reach the cell, except in the case of boot from volume where the *nova-compute* service itself creates the volume and must tell Cinder in which availability zone to create the volume. Long-term, volume creation during boot from volume should be moved to the top-level superconductor which would eliminate this AZ up-call check problem. .. [#] https://blueprints.launchpad.net/nova/+spec/efficient-multi-cell-instance-list-and-sort .. [#] https://specs.openstack.org/openstack/nova-specs/specs/queens/approved/return-alternate-hosts.html nova-17.0.13/doc/source/user/quotas.rst0000664000175000017500000000634013556316250017752 0ustar zuulzuul00000000000000.. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. ======== Quotas ======== Nova uses a quota system for setting limits on resources such as number of instances or amount of CPU that a specific project or user can use. Quotas are enforced by making a claim, or reservation, on resources when a request is made, such as creating a new server. If the claim fails, the request is rejected. If the reservation succeeds then the operation progresses until such a point that the reservation is either converted into usage (the operation was successful) or rolled back (the operation failed). Typically the quota reservation is made in the nova-api service and the usage or rollback is performed in the nova-compute service, at least when dealing with a server creation or move operation. Quota limits and usage can be retrieved via the ``limits`` REST API. Checking quota ============== When calculating limits for a given resource and tenant, the following checks are made in order: * Depending on the resource, is there a tenant-specific limit on the resource in either the `quotas` or `project_user_quotas` tables in the database? If so, use that as the limit. You can create these resources by doing:: openstack quota set --instances 5 * Check to see if there is a hard limit for the given resource in the `quota_classes` table in the database for the `default` quota class. If so, use that as the limit. You can modify the default quota limit for a resource by doing:: openstack quota set --class --instances 5 default * If the above does not provide a resource limit, then rely on the ``quota_*`` configuration options for the default limit. .. note:: The API sets the limit in the `quota_classes` table. Once a default limit is set via the `default` quota class, that takes precedence over any changes to that resource limit in the configuration options. In other words, once you've changed things via the API, you either have to keep those synchronized with the configuration values or remove the default limit from the database manually as there is no REST API for removing quota class values from the database. Known issues ============ TODO: talk about quotas getting out of sync and `how to recover`_ .. _how to recover: https://specs.openstack.org/openstack/nova-specs/specs/newton/implemented/refresh-quotas-usage.html Future plans ============ TODO: talk about quotas in the `resource counting spec`_ and `nested quotas`_ .. _resource counting spec: https://specs.openstack.org/openstack/nova-specs/specs/ocata/approved/cells-count-resources-to-check-quota-in-api.html .. _nested quotas: https://specs.openstack.org/openstack/nova-specs/specs/mitaka/approved/nested-quota-driver-api.html nova-17.0.13/doc/source/user/user-data.rst0000664000175000017500000000155113556316250020322 0ustar zuulzuul00000000000000============================== Provide user data to instances ============================== *User data* is a blob of data that the user can specify when they launch an instance. The instance can access this data through the metadata service or config drive. Commonly used to pass a shell script that the instance runs on boot. For example, one application that uses user data is the `cloud-init `__ system, which is an open-source package from Ubuntu that is available on various Linux distributions and which handles early initialization of a cloud instance. You can place user data in a local file and pass it through the ``--user-data `` parameter at instance creation. .. code-block:: console $ openstack server create --image ubuntu-cloudimage --flavor 1 \ --user-data mydata.file VM_INSTANCE nova-17.0.13/doc/source/admin/0000775000175000017500000000000013556316574016024 5ustar zuulzuul00000000000000nova-17.0.13/doc/source/admin/migration.rst0000664000175000017500000000505013556316250020536 0ustar zuulzuul00000000000000================= Migrate instances ================= When you want to move an instance from one compute host to another, you can use the :command:`openstack server migrate` command. The scheduler chooses the destination compute host based on its settings. This process does not assume that the instance has shared storage available on the target host. If you are using SSH tunneling, you must ensure that each node is configured with SSH key authentication so that the Compute service can use SSH to move disks to other nodes. For more information, see :ref:`cli-os-migrate-cfg-ssh`. #. To list the VMs you want to migrate, run: .. code-block:: console $ openstack server list #. Use the :command:`openstack server migrate` command. .. code-block:: console $ openstack server migrate --live TARGET_HOST VM_INSTANCE #. To migrate an instance and watch the status, use this example script: .. code-block:: bash #!/bin/bash # Provide usage usage() { echo "Usage: $0 VM_ID" exit 1 } [[ $# -eq 0 ]] && usage # Migrate the VM to an alternate hypervisor echo -n "Migrating instance to alternate host" VM_ID=$1 openstack server migrate $VM_ID VM_OUTPUT=$(openstack server show $VM_ID) VM_STATUS=$(echo "$VM_OUTPUT" | grep status | awk '{print $4}') while [[ "$VM_STATUS" != "VERIFY_RESIZE" ]]; do echo -n "." sleep 2 VM_OUTPUT=$(openstack server show $VM_ID) VM_STATUS=$(echo "$VM_OUTPUT" | grep status | awk '{print $4}') done nova resize-confirm $VM_ID echo " instance migrated and resized." echo; # Show the details for the VM echo "Updated instance details:" openstack server show $VM_ID # Pause to allow users to examine VM details read -p "Pausing, press to exit." .. note:: If you see the following error, it means you are either running the command with the wrong credentials, such as a non-admin user, or the ``policy.json`` file prevents migration for your user:: ERROR (Forbidden): Policy doesn't allow compute_extension:admin_actions:migrate to be performed. (HTTP 403)`` .. note:: If you see the following error, similar to this message, SSH tunneling was not set up between the compute nodes:: ProcessExecutionError: Unexpected error while running command. Stderr: u Host key verification failed.\r\n The instance is booted from a new host, but preserves its configuration including instance ID, name, IP address, any metadata, and other properties. nova-17.0.13/doc/source/admin/numa.rst0000664000175000017500000000241413556316250017506 0ustar zuulzuul00000000000000============================================= Consider NUMA topology when booting instances ============================================= .. todo:: Merge this into 'cpu-topologies.rst' NUMA topology can exist on both the physical hardware of the host, and the virtual hardware of the instance. OpenStack Compute uses libvirt to tune instances to take advantage of NUMA topologies. The libvirt driver boot process looks at the NUMA topology field of both the instance and the host it is being booted on, and uses that information to generate an appropriate configuration. If the host is NUMA capable, but the instance has not requested a NUMA topology, Compute attempts to pack the instance into a single cell. If this fails, though, Compute will not continue to try. If the host is NUMA capable, and the instance has requested a specific NUMA topology, Compute will try to pin the vCPUs of different NUMA cells on the instance to the corresponding NUMA cells on the host. It will also expose the NUMA topology of the instance to the guest OS. If you want Compute to pin a particular vCPU as part of this process, set the ``vcpu_pin_set`` parameter in the ``nova.conf`` configuration file. For more information about the ``vcpu_pin_set`` parameter, see the Configuration Reference Guide. nova-17.0.13/doc/source/admin/configuring-migrations.rst0000664000175000017500000003557213556316250023245 0ustar zuulzuul00000000000000.. _section_configuring-compute-migrations: ========================= Configure live migrations ========================= Migration enables an administrator to move a virtual machine instance from one compute host to another. A typical scenario is planned maintenance on the source host, but migration can also be useful to redistribute the load when many VM instances are running on a specific physical machine. This document covers live migrations using the :ref:`configuring-migrations-kvm-libvirt` and :ref:`configuring-migrations-xenserver` hypervisors. .. :ref:`_configuring-migrations-kvm-libvirt` .. :ref:`_configuring-migrations-xenserver` .. note:: Not all Compute service hypervisor drivers support live-migration, or support all live-migration features. Similarly not all compute service features are supported. Consult :doc:`/user/support-matrix` to determine which hypervisors support live-migration. See the :doc:`/configuration/index` for details on hypervisor configuration settings. The migration types are: - **Non-live migration**, also known as cold migration or simply migration. The instance is shut down, then moved to another hypervisor and restarted. The instance recognizes that it was rebooted, and the application running on the instance is disrupted. This section does not cover cold migration. - **Live migration** The instance keeps running throughout the migration. This is useful when it is not possible or desirable to stop the application running on the instance. Live migrations can be classified further by the way they treat instance storage: - **Shared storage-based live migration**. The instance has ephemeral disks that are located on storage shared between the source and destination hosts. - **Block live migration**, or simply block migration. The instance has ephemeral disks that are not shared between the source and destination hosts. Block migration is incompatible with read-only devices such as CD-ROMs and Configuration Drive (config\_drive). - **Volume-backed live migration**. Instances use volumes rather than ephemeral disks. Block live migration requires copying disks from the source to the destination host. It takes more time and puts more load on the network. Shared-storage and volume-backed live migration does not copy disks. .. note:: In a multi-cell cloud, instances can be live migrated to a different host in the same cell, but not across cells. The following sections describe how to configure your hosts for live migrations using the KVM and XenServer hypervisors. .. _configuring-migrations-kvm-libvirt: KVM-libvirt ~~~~~~~~~~~ .. :ref:`_configuring-migrations-kvm-general` .. :ref:`_configuring-migrations-kvm-block-and-volume-migration` .. :ref:`_configuring-migrations-kvm-shared-storage` .. _configuring-migrations-kvm-general: General configuration --------------------- To enable any type of live migration, configure the compute hosts according to the instructions below: #. Set the following parameters in ``nova.conf`` on all compute hosts: - ``server_listen=0.0.0.0`` You must not make the VNC server listen to the IP address of its compute host, since that addresses changes when the instance is migrated. .. important:: Since this setting allows VNC clients from any IP address to connect to instance consoles, you must take additional measures like secure networks or firewalls to prevent potential attackers from gaining access to instances. - ``instances_path`` must have the same value for all compute hosts. In this guide, the value ``/var/lib/nova/instances`` is assumed. #. Ensure that name resolution on all compute hosts is identical, so that they can connect each other through their hostnames. If you use ``/etc/hosts`` for name resolution and enable SELinux, ensure that ``/etc/hosts`` has the correct SELinux context: .. code-block:: console # restorecon /etc/hosts #. Enable password-less SSH so that root on one compute host can log on to any other compute host without providing a password. The ``libvirtd`` daemon, which runs as root, uses the SSH protocol to copy the instance to the destination and can't know the passwords of all compute hosts. You may, for example, compile root's public SSH keys on all compute hosts into an ``authorized_keys`` file and deploy that file to the compute hosts. #. Configure the firewalls to allow libvirt to communicate between compute hosts. By default, libvirt uses the TCP port range from 49152 to 49261 for copying memory and disk contents. Compute hosts must accept connections in this range. For information about ports used by libvirt, see the `libvirt documentation `_. .. important:: Be mindful of the security risks introduced by opening ports. .. _configuring-migrations-kvm-block-and-volume-migration: Block migration, volume-based live migration -------------------------------------------- No additional configuration is required for block migration and volume-backed live migration. Be aware that block migration adds load to the network and storage subsystems. .. _configuring-migrations-kvm-shared-storage: Shared storage -------------- Compute hosts have many options for sharing storage, for example NFS, shared disk array LUNs, Ceph or GlusterFS. The next steps show how a regular Linux system might be configured as an NFS v4 server for live migration. For detailed information and alternative ways to configure NFS on Linux, see instructions for `Ubuntu`_, `RHEL and derivatives`_ or `SLES and OpenSUSE`_. .. _`Ubuntu`: https://help.ubuntu.com/community/SettingUpNFSHowTo .. _`RHEL and derivatives`: https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Storage_Administration_Guide/nfs-serverconfig.html .. _`SLES and OpenSUSE`: https://www.suse.com/documentation/sles-12/book_sle_admin/data/sec_nfs_configuring-nfs-server.html #. Ensure that UID and GID of the nova user are identical on the compute hosts and the NFS server. #. Create a directory with enough disk space for all instances in the cloud, owned by user nova. In this guide, we assume ``/var/lib/nova/instances``. #. Set the execute/search bit on the ``instances`` directory: .. code-block:: console $ chmod o+x /var/lib/nova/instances This allows qemu to access the ``instances`` directory tree. #. Export ``/var/lib/nova/instances`` to the compute hosts. For example, add the following line to ``/etc/exports``: .. code-block:: ini /var/lib/nova/instances *(rw,sync,fsid=0,no_root_squash) The asterisk permits access to any NFS client. The option ``fsid=0`` exports the instances directory as the NFS root. After setting up the NFS server, mount the remote filesystem on all compute hosts. #. Assuming the NFS server's hostname is ``nfs-server``, add this line to ``/etc/fstab`` to mount the NFS root: .. code-block:: console nfs-server:/ /var/lib/nova/instances nfs4 defaults 0 0 #. Test NFS by mounting the instances directory and check access permissions for the nova user: .. code-block:: console $ sudo mount -a -v $ ls -ld /var/lib/nova/instances/ drwxr-xr-x. 2 nova nova 6 Mar 14 21:30 /var/lib/nova/instances/ .. _configuring-migrations-kvm-advanced: Advanced configuration for KVM and QEMU --------------------------------------- Live migration copies the instance's memory from the source to the destination compute host. After a memory page has been copied, the instance may write to it again, so that it has to be copied again. Instances that frequently write to different memory pages can overwhelm the memory copy process and prevent the live migration from completing. This section covers configuration settings that can help live migration of memory-intensive instances succeed. #. **Live migration completion timeout** The Compute service aborts a migration when it has been running for too long. The timeout is calculated based on the instance size, which is the instance's memory size in GiB. In the case of block migration, the size of ephemeral storage in GiB is added. The timeout in seconds is the instance size multiplied by the configurable parameter ``live_migration_completion_timeout``, whose default is 800. For example, shared-storage live migration of an instance with 8GiB memory will time out after 6400 seconds. #. **Live migration progress timeout** The Compute service also aborts a live migration when it detects that memory copy is not making progress for a certain time. You can set this time, in seconds, through the configurable parameter ``live_migration_progress_timeout``. In Ocata, the default value of ``live_migration_progress_timeout`` is 0, which disables progress timeouts. You should not change this value, since the algorithm that detects memory copy progress has been determined to be unreliable. It may be re-enabled in future releases. #. **Instance downtime** Near the end of the memory copy, the instance is paused for a short time so that the remaining few pages can be copied without interference from instance memory writes. The Compute service initializes this time to a small value that depends on the instance size, typically around 50 milliseconds. When it notices that the memory copy does not make sufficient progress, it increases the time gradually. You can influence the instance downtime algorithm with the help of three configuration variables on the compute hosts: .. code-block:: ini live_migration_downtime = 500 live_migration_downtime_steps = 10 live_migration_downtime_delay = 75 ``live_migration_downtime`` sets the maximum permitted downtime for a live migration, in *milliseconds*. The default is 500. ``live_migration_downtime_steps`` sets the total number of adjustment steps until ``live_migration_downtime`` is reached. The default is 10 steps. ``live_migration_downtime_delay`` sets the time interval between two adjustment steps in *seconds*. The default is 75. #. **Auto-convergence** One strategy for a successful live migration of a memory-intensive instance is slowing the instance down. This is called auto-convergence. Both libvirt and QEMU implement this feature by automatically throttling the instance's CPU when memory copy delays are detected. Auto-convergence is disabled by default. You can enable it by setting ``live_migration_permit_auto_converge=true``. .. caution:: Before enabling auto-convergence, make sure that the instance's application tolerates a slow-down. Be aware that auto-convergence does not guarantee live migration success. #. **Post-copy** Live migration of a memory-intensive instance is certain to succeed when you enable post-copy. This feature, implemented by libvirt and QEMU, activates the virtual machine on the destination host before all of its memory has been copied. When the virtual machine accesses a page that is missing on the destination host, the resulting page fault is resolved by copying the page from the source host. Post-copy is disabled by default. You can enable it by setting ``live_migration_permit_post_copy=true``. When you enable both auto-convergence and post-copy, auto-convergence remains disabled. .. caution:: The page faults introduced by post-copy can slow the instance down. When the network connection between source and destination host is interrupted, page faults cannot be resolved anymore and the instance is rebooted. .. TODO Bernd: I *believe* that it is certain to succeed, .. but perhaps I am missing something. The full list of live migration configuration parameters is documented in the :doc:`Nova Configuration Options ` .. _configuring-migrations-xenserver: XenServer ~~~~~~~~~ .. :ref:Shared Storage .. :ref:Block migration .. _configuring-migrations-xenserver-shared-storage: Shared storage -------------- **Prerequisites** - **Compatible XenServer hypervisors**. For more information, see the `Requirements for Creating Resource Pools `_ section of the XenServer Administrator's Guide. - **Shared storage**. An NFS export, visible to all XenServer hosts. .. note:: For the supported NFS versions, see the `NFS VHD `_ section of the XenServer Administrator's Guide. To use shared storage live migration with XenServer hypervisors, the hosts must be joined to a XenServer pool. To create that pool, a host aggregate must be created with specific metadata. This metadata is used by the XAPI plug-ins to establish the pool. .. rubric:: Using shared storage live migrations with XenServer Hypervisors #. Add an NFS VHD storage to your master XenServer, and set it as the default storage repository. For more information, see NFS VHD in the XenServer Administrator's Guide. #. Configure all compute nodes to use the default storage repository (``sr``) for pool operations. Add this line to your ``nova.conf`` configuration files on all compute nodes: .. code-block:: ini sr_matching_filter=default-sr:true #. Create a host aggregate. This command creates the aggregate, and then displays a table that contains the ID of the new aggregate .. code-block:: console $ openstack aggregate create --zone AVAILABILITY_ZONE POOL_NAME Add metadata to the aggregate, to mark it as a hypervisor pool .. code-block:: console $ openstack aggregate set --property hypervisor_pool=true AGGREGATE_ID $ openstack aggregate set --property operational_state=created AGGREGATE_ID Make the first compute node part of that aggregate .. code-block:: console $ openstack aggregate add host AGGREGATE_ID MASTER_COMPUTE_NAME The host is now part of a XenServer pool. #. Add hosts to the pool .. code-block:: console $ openstack aggregate add host AGGREGATE_ID COMPUTE_HOST_NAME .. note:: The added compute node and the host will shut down to join the host to the XenServer pool. The operation will fail if any server other than the compute node is running or suspended on the host. .. _configuring-migrations-xenserver-block-migration: Block migration --------------- - **Compatible XenServer hypervisors**. The hypervisors must support the Storage XenMotion feature. See your XenServer manual to make sure your edition has this feature. .. note:: - To use block migration, you must use the ``--block-migrate`` parameter with the live migration command. - Block migration works only with EXT local storage storage repositories, and the server must not have any volumes attached. nova-17.0.13/doc/source/admin/networking-nova.rst0000664000175000017500000010761713556316250021711 0ustar zuulzuul00000000000000============================ Networking with nova-network ============================ .. important:: ``nova-network`` was deprecated in the OpenStack Newton release. In Ocata and future releases, you can start ``nova-network`` only with a cells v1 configuration. This is not a recommended configuration for deployment. Understanding the networking configuration options helps you design the best configuration for your Compute instances. You can choose to either install and configure ``nova-network`` or use the OpenStack Networking service (neutron). This section contains a brief overview of ``nova-network``. For more information about OpenStack Networking, see `Networking `_. Networking concepts ~~~~~~~~~~~~~~~~~~~ Compute assigns a private IP address to each VM instance. Compute makes a distinction between fixed IPs and floating IP. Fixed IPs are IP addresses that are assigned to an instance on creation and stay the same until the instance is explicitly terminated. Floating IPs are addresses that can be dynamically associated with an instance. A floating IP address can be disassociated and associated with another instance at any time. A user can reserve a floating IP for their project. .. note:: Currently, Compute with ``nova-network`` only supports Linux bridge networking that allows virtual interfaces to connect to the outside network through the physical interface. The network controller with ``nova-network`` provides virtual networks to enable compute servers to interact with each other and with the public network. Compute with ``nova-network`` supports the following network modes, which are implemented as Network Manager types: Flat Network Manager In this mode, a network administrator specifies a subnet. IP addresses for VM instances are assigned from the subnet, and then injected into the image on launch. Each instance receives a fixed IP address from the pool of available addresses. A system administrator must create the Linux networking bridge (typically named ``br100``, although this is configurable) on the systems running the ``nova-network`` service. All instances of the system are attached to the same bridge, which is configured manually by the network administrator. .. note:: Configuration injection currently only works on Linux-style systems that keep networking configuration in ``/etc/network/interfaces``. Flat DHCP Network Manager In this mode, OpenStack starts a DHCP server (dnsmasq) to allocate IP addresses to VM instances from the specified subnet, in addition to manually configuring the networking bridge. IP addresses for VM instances are assigned from a subnet specified by the network administrator. Like flat mode, all instances are attached to a single bridge on the compute node. Additionally, a DHCP server configures instances depending on single-/multi-host mode, alongside each ``nova-network``. In this mode, Compute does a bit more configuration. It attempts to bridge into an Ethernet device (``flat_interface``, eth0 by default). For every instance, Compute allocates a fixed IP address and configures dnsmasq with the MAC ID and IP address for the VM. Dnsmasq does not take part in the IP address allocation process, it only hands out IPs according to the mapping done by Compute. Instances receive their fixed IPs with the :command:`dhcpdiscover` command. These IPs are not assigned to any of the host's network interfaces, only to the guest-side interface for the VM. In any setup with flat networking, the hosts providing the ``nova-network`` service are responsible for forwarding traffic from the private network. They also run and configure dnsmasq as a DHCP server listening on this bridge, usually on IP address 10.0.0.1 (see :ref:`compute-dnsmasq`). Compute can determine the NAT entries for each network, although sometimes NAT is not used, such as when the network has been configured with all public IPs, or if a hardware router is used (which is a high availability option). In this case, hosts need to have ``br100`` configured and physically connected to any other nodes that are hosting VMs. You must set the ``flat_network_bridge`` option or create networks with the bridge parameter in order to avoid raising an error. Compute nodes have iptables or ebtables entries created for each project and instance to protect against MAC ID or IP address spoofing and ARP poisoning. .. note:: In single-host Flat DHCP mode you will be able to ping VMs through their fixed IP from the ``nova-network`` node, but you cannot ping them from the compute nodes. This is expected behavior. VLAN Network Manager This is the default mode for OpenStack Compute. In this mode, Compute creates a VLAN and bridge for each project. For multiple-machine installations, the VLAN Network Mode requires a switch that supports VLAN tagging (IEEE 802.1Q). The project gets a range of private IPs that are only accessible from inside the VLAN. In order for a user to access the instances in their project, a special VPN instance (code named ``cloudpipe``) needs to be created. Compute generates a certificate and key for the user to access the VPN and starts the VPN automatically. It provides a private network segment for each project's instances that can be accessed through a dedicated VPN connection from the internet. In this mode, each project gets its own VLAN, Linux networking bridge, and subnet. The subnets are specified by the network administrator, and are assigned dynamically to a project when required. A DHCP server is started for each VLAN to pass out IP addresses to VM instances from the subnet assigned to the project. All instances belonging to one project are bridged into the same VLAN for that project. OpenStack Compute creates the Linux networking bridges and VLANs when required. These network managers can co-exist in a cloud system. However, because you cannot select the type of network for a given project, you cannot configure multiple network types in a single Compute installation. All network managers configure the network using network drivers. For example, the Linux L3 driver (``l3.py`` and ``linux_net.py``), which makes use of ``iptables``, ``route`` and other network management facilities, and the libvirt `network filtering facilities `__. The driver is not tied to any particular network manager; all network managers use the same driver. The driver usually initializes only when the first VM lands on this host node. All network managers operate in either single-host or multi-host mode. This choice greatly influences the network configuration. In single-host mode, a single ``nova-network`` service provides a default gateway for VMs and hosts a single DHCP server (dnsmasq). In multi-host mode, each compute node runs its own ``nova-network`` service. In both cases, all traffic between VMs and the internet flows through ``nova-network``. Each mode has benefits and drawbacks. All networking options require network connectivity to be already set up between OpenStack physical nodes. OpenStack does not configure any physical network interfaces. All network managers automatically create VM virtual interfaces. Some network managers can also create network bridges such as ``br100``. The internal network interface is used for communication with VMs. The interface should not have an IP address attached to it before OpenStack installation, it serves only as a fabric where the actual endpoints are VMs and dnsmasq. Additionally, the internal network interface must be in ``promiscuous`` mode, so that it can receive packets whose target MAC address is the guest VM, not the host. All machines must have a public and internal network interface (controlled by these options: ``public_interface`` for the public interface, and ``flat_interface`` and ``vlan_interface`` for the internal interface with flat or VLAN managers). This guide refers to the public network as the external network and the private network as the internal or project network. For flat and flat DHCP modes, use the :command:`nova network-create` command to create a network: .. code-block:: console $ nova network-create vmnet \ --fixed-range-v4 10.0.0.0/16 --fixed-cidr 10.0.20.0/24 --bridge br100 This example uses the following parameters: ``--fixed-range-v4`` Specifies the network subnet. ``--fixed-cidr`` Specifies a range of fixed IP addresses to allocate, and can be a subset of the ``--fixed-range-v4`` argument. ``--bridge`` Specifies the bridge device to which this network is connected on every compute node. .. _compute-dnsmasq: DHCP server: dnsmasq ~~~~~~~~~~~~~~~~~~~~ The Compute service uses `dnsmasq `__ as the DHCP server when using either Flat DHCP Network Manager or VLAN Network Manager. For Compute to operate in IPv4/IPv6 dual-stack mode, use at least dnsmasq v2.63. The ``nova-network`` service is responsible for starting dnsmasq processes. The behavior of dnsmasq can be customized by creating a dnsmasq configuration file. Specify the configuration file using the ``dnsmasq_config_file`` configuration option: .. code-block:: ini dnsmasq_config_file=/etc/dnsmasq-nova.conf For more information about creating a dnsmasq configuration file, see the :doc:`/configuration/config`, and `the dnsmasq documentation `__. Dnsmasq also acts as a caching DNS server for instances. You can specify the DNS server that dnsmasq uses by setting the ``dns_server`` configuration option in ``/etc/nova/nova.conf``. This example configures dnsmasq to use Google's public DNS server: .. code-block:: ini dns_server=8.8.8.8 Dnsmasq logs to syslog (typically ``/var/log/syslog`` or ``/var/log/messages``, depending on Linux distribution). Logs can be useful for troubleshooting, especially in a situation where VM instances boot successfully but are not reachable over the network. Administrators can specify the starting point IP address to reserve with the DHCP server (in the format n.n.n.n) with this command: .. code-block:: console $ nova-manage fixed reserve --address IP_ADDRESS This reservation only affects which IP address the VMs start at, not the fixed IP addresses that ``nova-network`` places on the bridges. Configure Compute to use IPv6 addresses ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ If you are using OpenStack Compute with ``nova-network``, you can put Compute into dual-stack mode, so that it uses both IPv4 and IPv6 addresses for communication. In dual-stack mode, instances can acquire their IPv6 global unicast addresses by using a stateless address auto-configuration mechanism [RFC 4862/2462]. IPv4/IPv6 dual-stack mode works with both ``VlanManager`` and ``FlatDHCPManager`` networking modes. In ``VlanManager`` networking mode, each project uses a different 64-bit global routing prefix. In ``FlatDHCPManager`` mode, all instances use one 64-bit global routing prefix. This configuration was tested with virtual machine images that have an IPv6 stateless address auto-configuration capability. This capability is required for any VM to run with an IPv6 address. You must use an EUI-64 address for stateless address auto-configuration. Each node that executes a ``nova-*`` service must have ``python-netaddr`` and ``radvd`` installed. .. rubric:: Switch into IPv4/IPv6 dual-stack mode #. For every node running a ``nova-*`` service, install ``python-netaddr``: .. code-block:: console # apt-get install python-netaddr #. For every node running ``nova-network``, install ``radvd`` and configure IPv6 networking: .. code-block:: console # apt-get install radvd # echo 1 > /proc/sys/net/ipv6/conf/all/forwarding # echo 0 > /proc/sys/net/ipv6/conf/all/accept_ra #. On all nodes, edit the ``nova.conf`` file and specify ``use_ipv6 = True``. #. Restart all ``nova-*`` services. .. rubric:: IPv6 configuration options You can use the following options with the :command:`nova network-create` command: - Add a fixed range for IPv6 addresses to the :command:`nova network-create` command. Specify ``public`` or ``private`` after the ``network-create`` parameter. .. code-block:: console $ nova network-create public --fixed-range-v4 FIXED_RANGE_V4 \ --vlan VLAN_ID --vpn VPN_START --fixed-range-v6 FIXED_RANGE_V6 - Set the IPv6 global routing prefix by using the ``--fixed_range_v6`` parameter. The default value for the parameter is ``fd00::/48``. When you use ``FlatDHCPManager``, the command uses the original ``--fixed_range_v6`` value. For example: .. code-block:: console $ nova network-create public --fixed-range-v4 10.0.2.0/24 \ --fixed-range-v6 fd00:1::/48 - When you use ``VlanManager``, the command increments the subnet ID to create subnet prefixes. Guest VMs use this prefix to generate their IPv6 global unicast addresses. For example: .. code-block:: console $ nova network-create public --fixed-range-v4 10.0.1.0/24 --vlan 100 \ --vpn 1000 --fixed-range-v6 fd00:1::/48 .. list-table:: Description of IPv6 configuration options :header-rows: 2 * - Configuration option = Default value - Description * - [DEFAULT] - * - fixed_range_v6 = fd00::/48 - (StrOpt) Fixed IPv6 address block * - gateway_v6 = None - (StrOpt) Default IPv6 gateway * - ipv6_backend = rfc2462 - (StrOpt) Backend to use for IPv6 generation * - use_ipv6 = False - (BoolOpt) Use IPv6 .. _metadata-service: Metadata service ~~~~~~~~~~~~~~~~ Compute uses a metadata service for virtual machine instances to retrieve instance-specific data. Instances access the metadata service at ``http://169.254.169.254``. The metadata service supports two sets of APIs: an OpenStack metadata API and an EC2-compatible API. Both APIs are versioned by date. To retrieve a list of supported versions for the OpenStack metadata API, make a GET request to ``http://169.254.169.254/openstack``: .. code-block:: console $ curl http://169.254.169.254/openstack 2012-08-10 2013-04-04 2013-10-17 latest To list supported versions for the EC2-compatible metadata API, make a GET request to ``http://169.254.169.254``: .. code-block:: console $ curl http://169.254.169.254 1.0 2007-01-19 2007-03-01 2007-08-29 2007-10-10 2007-12-15 2008-02-01 2008-09-01 2009-04-04 latest If you write a consumer for one of these APIs, always attempt to access the most recent API version supported by your consumer first, then fall back to an earlier version if the most recent one is not available. Metadata from the OpenStack API is distributed in JSON format. To retrieve the metadata, make a GET request to ``http://169.254.169.254/openstack/2012-08-10/meta_data.json``: .. code-block:: console $ curl http://169.254.169.254/openstack/2012-08-10/meta_data.json .. code-block:: json { "uuid": "d8e02d56-2648-49a3-bf97-6be8f1204f38", "availability_zone": "nova", "hostname": "test.novalocal", "launch_index": 0, "meta": { "priority": "low", "role": "webserver" }, "project_id": "f7ac731cc11f40efbc03a9f9e1d1d21f", "public_keys": { "mykey": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQDYVEprvtYJXVOBN0XNKV\ VRNCRX6BlnNbI+USLGais1sUWPwtSg7z9K9vhbYAPUZcq8c/s5S9dg5vTH\ bsiyPCIDOKyeHba4MUJq8Oh5b2i71/3BISpyxTBH/uZDHdslW2a+SrPDCe\ uMMoss9NFhBdKtDkdG9zyi0ibmCP6yMdEX8Q== Generated by Nova\n" }, "name": "test" } Instances also retrieve user data (passed as the ``user_data`` parameter in the API call or by the ``--user_data`` flag in the :command:`openstack server create` command) through the metadata service, by making a GET request to ``http://169.254.169.254/openstack/2012-08-10/user_data``: .. code-block:: console $ curl http://169.254.169.254/openstack/2012-08-10/user_data #!/bin/bash echo 'Extra user data here' The metadata service has an API that is compatible with version 2009-04-04 of the `Amazon EC2 metadata service `__. This means that virtual machine images designed for EC2 will work properly with OpenStack. The EC2 API exposes a separate URL for each metadata element. Retrieve a listing of these elements by making a GET query to ``http://169.254.169.254/2009-04-04/meta-data/``: .. code-block:: console $ curl http://169.254.169.254/2009-04-04/meta-data/ ami-id ami-launch-index ami-manifest-path block-device-mapping/ hostname instance-action instance-id instance-type kernel-id local-hostname local-ipv4 placement/ public-hostname public-ipv4 public-keys/ ramdisk-id reservation-id security-groups .. code-block:: console $ curl http://169.254.169.254/2009-04-04/meta-data/block-device-mapping/ ami .. code-block:: console $ curl http://169.254.169.254/2009-04-04/meta-data/placement/ availability-zone .. code-block:: console $ curl http://169.254.169.254/2009-04-04/meta-data/public-keys/ 0=mykey Instances can retrieve the public SSH key (identified by keypair name when a user requests a new instance) by making a GET request to ``http://169.254.169.254/2009-04-04/meta-data/public-keys/0/openssh-key``: .. code-block:: console $ curl http://169.254.169.254/2009-04-04/meta-data/public-keys/0/openssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQDYVEprvtYJXVOBN0XNKVVRNCRX6BlnNbI+US\ LGais1sUWPwtSg7z9K9vhbYAPUZcq8c/s5S9dg5vTHbsiyPCIDOKyeHba4MUJq8Oh5b2i71/3B\ ISpyxTBH/uZDHdslW2a+SrPDCeuMMoss9NFhBdKtDkdG9zyi0ibmCP6yMdEX8Q== Generated\ by Nova Instances can retrieve user data by making a GET request to ``http://169.254.169.254/2009-04-04/user-data``: .. code-block:: console $ curl http://169.254.169.254/2009-04-04/user-data #!/bin/bash echo 'Extra user data here' The metadata service is implemented by either the ``nova-api`` service or the ``nova-api-metadata`` service. Note that the ``nova-api-metadata`` service is generally only used when running in multi-host mode, as it retrieves instance-specific metadata. If you are running the ``nova-api`` service, you must have ``metadata`` as one of the elements listed in the ``enabled_apis`` configuration option in ``/etc/nova/nova.conf``. The default ``enabled_apis`` configuration setting includes the metadata service, so you do not need to modify it. Hosts access the service at ``169.254.169.254:80``, and this is translated to ``metadata_host:metadata_port`` by an iptables rule established by the ``nova-network`` service. In multi-host mode, you can set ``metadata_host`` to ``127.0.0.1``. For instances to reach the metadata service, the ``nova-network`` service must configure iptables to NAT port ``80`` of the ``169.254.169.254`` address to the IP address specified in ``metadata_host`` (this defaults to ``$my_ip``, which is the IP address of the ``nova-network`` service) and port specified in ``metadata_port`` (which defaults to ``8775``) in ``/etc/nova/nova.conf``. .. note:: The ``metadata_host`` configuration option must be an IP address, not a host name. The default Compute service settings assume that ``nova-network`` and ``nova-api`` are running on the same host. If this is not the case, in the ``/etc/nova/nova.conf`` file on the host running ``nova-network``, set the ``metadata_host`` configuration option to the IP address of the host where ``nova-api`` is running. .. list-table:: Description of metadata configuration options :header-rows: 2 * - Configuration option = Default value - Description * - [DEFAULT] - * - metadata_cache_expiration = 15 - (IntOpt) Time in seconds to cache metadata; 0 to disable metadata caching entirely (not recommended). Increasing this should improve response times of the metadata API when under heavy load. Higher values may increase memory usage and result in longer times for host metadata changes to take effect. * - metadata_host = $my_ip - (StrOpt) The IP address for the metadata API server * - metadata_listen = 0.0.0.0 - (StrOpt) The IP address on which the metadata API will listen. * - metadata_listen_port = 8775 - (IntOpt) The port on which the metadata API will listen. * - metadata_manager = nova.api.manager.MetadataManager - (StrOpt) OpenStack metadata service manager * - metadata_port = 8775 - (IntOpt) The port for the metadata API port * - metadata_workers = None - (IntOpt) Number of workers for metadata service. The default will be the number of CPUs available. * - vendordata_driver = nova.api.metadata.vendordata_json.JsonFileVendorData - (StrOpt) Driver to use for vendor data * - vendordata_jsonfile_path = None - (StrOpt) File to load JSON formatted vendor data from Enable ping and SSH on VMs ~~~~~~~~~~~~~~~~~~~~~~~~~~ You need to enable ``ping`` and ``ssh`` on your VMs for network access. This can be done with the :command:`openstack` command. .. note:: Run these commands as root only if the credentials used to interact with ``nova-api`` are in ``/root/.bashrc``. Enable ping and SSH with :command:`openstack security group rule create` commands: .. code-block:: console $ openstack security group rule create --protocol icmp default $ openstack security group rule create --protocol tcp --dst-port 22:22 default If you have run these commands and still cannot ping or SSH your instances, check the number of running ``dnsmasq`` processes, there should be two. If not, kill the processes and restart the service with these commands: .. code-block:: console # killall dnsmasq # service nova-network restart Configure public (floating) IP addresses ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ This section describes how to configure floating IP addresses with ``nova-network``. For information about doing this with OpenStack Networking, see `L3-routing-and-NAT `_. Private and public IP addresses ------------------------------- In this section, the term floating IP address is used to refer to an IP address, usually public, that you can dynamically add to a running virtual instance. Every virtual instance is automatically assigned a private IP address. You can choose to assign a public (or floating) IP address instead. OpenStack Compute uses network address translation (NAT) to assign floating IPs to virtual instances. To be able to assign a floating IP address, edit the ``/etc/nova/nova.conf`` file to specify which interface the ``nova-network`` service should bind public IP addresses to: .. code-block:: ini public_interface=VLAN100 If you make changes to the ``/etc/nova/nova.conf`` file while the ``nova-network`` service is running, you will need to restart the service to pick up the changes. .. note:: Floating IPs are implemented by using a source NAT (SNAT rule in iptables), so security groups can sometimes display inconsistent behavior if VMs use their floating IP to communicate with other VMs, particularly on the same physical host. Traffic from VM to VM across the fixed network does not have this issue, and so this is the recommended setup. To ensure that traffic does not get SNATed to the floating range, explicitly set: .. code-block:: ini dmz_cidr=x.x.x.x/y The ``x.x.x.x/y`` value specifies the range of floating IPs for each pool of floating IPs that you define. This configuration is also required if the VMs in the source group have floating IPs. Enable IP forwarding -------------------- IP forwarding is disabled by default on most Linux distributions. You will need to enable it in order to use floating IPs. .. note:: IP forwarding only needs to be enabled on the nodes that run ``nova-network``. However, you will need to enable it on all compute nodes if you use ``multi_host`` mode. To check if IP forwarding is enabled, run: .. code-block:: console $ cat /proc/sys/net/ipv4/ip_forward 0 Alternatively, run: .. code-block:: console $ sysctl net.ipv4.ip_forward net.ipv4.ip_forward = 0 In these examples, IP forwarding is disabled. To enable IP forwarding dynamically, run: .. code-block:: console # sysctl -w net.ipv4.ip_forward=1 Alternatively, run: .. code-block:: console # echo 1 > /proc/sys/net/ipv4/ip_forward To make the changes permanent, edit the ``/etc/sysctl.conf`` file and update the IP forwarding setting: .. code-block:: ini net.ipv4.ip_forward = 1 Save the file and run this command to apply the changes: .. code-block:: console # sysctl -p You can also apply the changes by restarting the network service: - on Ubuntu, Debian: .. code-block:: console # /etc/init.d/networking restart - on RHEL, Fedora, CentOS, openSUSE and SLES: .. code-block:: console # service network restart Create a list of available floating IP addresses ------------------------------------------------ Compute maintains a list of floating IP addresses that are available for assigning to instances. Use the :command:`nova-manage floating` commands to perform floating IP operations: - Add entries to the list: .. code-block:: console # nova-manage floating create --pool nova --ip_range 68.99.26.170/31 - List the floating IP addresses in the pool: .. code-block:: console # openstack floating ip list - Create specific floating IPs for either a single address or a subnet: .. code-block:: console # nova-manage floating create --pool POOL_NAME --ip_range CIDR - Remove floating IP addresses using the same parameters as the create command: .. code-block:: console # openstack floating ip delete CIDR For more information about how administrators can associate floating IPs with instances, see `ip floating `__ in the python-openstackclient User Documentation. Automatically add floating IPs ------------------------------ You can configure ``nova-network`` to automatically allocate and assign a floating IP address to virtual instances when they are launched. Add this line to the ``/etc/nova/nova.conf`` file: .. code-block:: ini auto_assign_floating_ip=True Save the file, and restart ``nova-network`` .. note:: If this option is enabled, but all floating IP addresses have already been allocated, the :command:`openstack server create` command will fail. Remove a network from a project ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ You cannot delete a network that has been associated to a project. This section describes the procedure for dissociating it so that it can be deleted. In order to disassociate the network, you will need the ID of the project it has been associated to. To get the project ID, you will need to be an administrator. Disassociate the network from the project using the :command:`nova-manage project scrub` command, with the project ID as the final parameter: .. code-block:: console # nova-manage project scrub --project ID Multiple interfaces for instances (multinic) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The multinic feature allows you to use more than one interface with your instances. This is useful in several scenarios: - SSL Configurations (VIPs) - Services failover/HA - Bandwidth Allocation - Administrative/Public access to your instances Each VIP represents a separate network with its own IP block. Every network mode has its own set of changes regarding multinic usage: .. figure:: figures/SCH_5007_V00_NUAC-multi_nic_OpenStack-Flat-manager.jpg :width: 600 .. figure:: figures/SCH_5007_V00_NUAC-multi_nic_OpenStack-Flat-DHCP-manager.jpg :width: 600 .. figure:: figures/SCH_5007_V00_NUAC-multi_nic_OpenStack-VLAN-manager.jpg :width: 600 Using multinic -------------- In order to use multinic, create two networks, and attach them to the project (named ``project`` on the command line): .. code-block:: console $ nova network-create first-net --fixed-range-v4 20.20.0.0/24 --project-id $your-project $ nova network-create second-net --fixed-range-v4 20.20.10.0/24 --project-id $your-project Each new instance will now receive two IP addresses from their respective DHCP servers: .. code-block:: console $ openstack server list +---------+----------+--------+-----------------------------------------+------------+ |ID | Name | Status | Networks | Image Name | +---------+----------+--------+-----------------------------------------+------------+ | 1234... | MyServer | ACTIVE | network2=20.20.0.3; private=20.20.10.14 | cirros | +---------+----------+--------+-----------------------------------------+------------+ .. note:: Make sure you start the second interface on the instance, or it won't be reachable through the second IP. This example demonstrates how to set up the interfaces within the instance. This is the configuration that needs to be applied inside the image. Edit the ``/etc/network/interfaces`` file: .. code-block:: bash # The loopback network interface auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp auto eth1 iface eth1 inet dhcp If the Virtual Network Service Neutron is installed, you can specify the networks to attach to the interfaces by using the ``--nic`` flag with the :command:`openstack server create` command: .. code-block:: console $ openstack server create --image ed8b2a37-5535-4a5f-a615-443513036d71 \ --flavor 1 --nic net-id=NETWORK1_ID --nic net-id=NETWORK2_ID test-vm1 Troubleshooting Networking ~~~~~~~~~~~~~~~~~~~~~~~~~~ Cannot reach floating IPs ------------------------- Problem ------- You cannot reach your instances through the floating IP address. Solution -------- - Check that the default security group allows ICMP (ping) and SSH (port 22), so that you can reach the instances: .. code-block:: console $ openstack security group rule list default +--------------------------------------+-------------+-----------+-----------------+-----------------------+ | ID | IP Protocol | IP Range | Port Range | Remote Security Group | +--------------------------------------+-------------+-----------+-----------------+-----------------------+ | 63536865-e5b6-4df1-bac5-ca6d97d8f54d | tcp | 0.0.0.0/0 | 22:22 | None | | e9d3200f-647a-4293-a9fc-e65ceee189ae | icmp | 0.0.0.0/0 | type=1:code=-1 | None | +--------------------------------------+-------------+-----------+-----------------+-----------------------+ - Check the NAT rules have been added to iptables on the node that is running ``nova-network``: .. code-block:: console # iptables -L -nv -t nat \ -A nova-network-PREROUTING -d 68.99.26.170/32 -j DNAT --to-destination 10.0.0.3 \ -A nova-network-floating-snat -s 10.0.0.3/32 -j SNAT --to-source 68.99.26.170 - Check that the public address (``68.99.26.170`` in this example), has been added to your public interface. You should see the address in the listing when you use the :command:`ip addr` command: .. code-block:: console $ ip addr 2: eth0: mtu 1500 qdisc mq state UP qlen 1000 link/ether xx:xx:xx:17:4b:c2 brd ff:ff:ff:ff:ff:ff inet 13.22.194.80/24 brd 13.22.194.255 scope global eth0 inet 68.99.26.170/32 scope global eth0 inet6 fe80::82b:2bf:fe1:4b2/64 scope link valid_lft forever preferred_lft forever .. note:: You cannot use ``SSH`` to access an instance with a public IP from within the same server because the routing configuration does not allow it. - Use ``tcpdump`` to identify if packets are being routed to the inbound interface on the compute host. If the packets are reaching the compute hosts but the connection is failing, the issue may be that the packet is being dropped by reverse path filtering. Try disabling reverse-path filtering on the inbound interface. For example, if the inbound interface is ``eth2``, run: .. code-block:: console # sysctl -w net.ipv4.conf.ETH2.rp_filter=0 If this solves the problem, add the following line to ``/etc/sysctl.conf`` so that the reverse-path filter is persistent: .. code-block:: ini net.ipv4.conf.rp_filter=0 Temporarily disable firewall ---------------------------- Problem ------- Networking issues prevent administrators accessing or reaching VMs through various pathways. Solution -------- You can disable the firewall by setting this option in ``/etc/nova/nova.conf``: .. code-block:: ini firewall_driver=nova.virt.firewall.NoopFirewallDriver .. warning:: We strongly recommend you remove this line to re-enable the firewall once your networking issues have been resolved. Packet loss from instances to nova-network server (VLANManager mode) -------------------------------------------------------------------- Problem ------- If you can access your instances with ``SSH`` but the network to your instance is slow, or if you find that running certain operations are slower than they should be (for example, ``sudo``), packet loss could be occurring on the connection to the instance. Packet loss can be caused by Linux networking configuration settings related to bridges. Certain settings can cause packets to be dropped between the VLAN interface (for example, ``vlan100``) and the associated bridge interface (for example, ``br100``) on the host running ``nova-network``. Solution -------- One way to check whether this is the problem is to open three terminals and run the following commands: #. In the first terminal, on the host running ``nova-network``, use ``tcpdump`` on the VLAN interface to monitor DNS-related traffic (UDP, port 53). As root, run: .. code-block:: console # tcpdump -K -p -i vlan100 -v -vv udp port 53 #. In the second terminal, also on the host running ``nova-network``, use ``tcpdump`` to monitor DNS-related traffic on the bridge interface. As root, run: .. code-block:: console # tcpdump -K -p -i br100 -v -vv udp port 53 #. In the third terminal, use ``SSH`` to access the instance and generate DNS requests by using the :command:`nslookup` command: .. code-block:: console $ nslookup www.google.com The symptoms may be intermittent, so try running :command:`nslookup` multiple times. If the network configuration is correct, the command should return immediately each time. If it is not correct, the command hangs for several seconds before returning. #. If the :command:`nslookup` command sometimes hangs, and there are packets that appear in the first terminal but not the second, then the problem may be due to filtering done on the bridges. Try disabling filtering, and running these commands as root: .. code-block:: console # sysctl -w net.bridge.bridge-nf-call-arptables=0 # sysctl -w net.bridge.bridge-nf-call-iptables=0 # sysctl -w net.bridge.bridge-nf-call-ip6tables=0 If this solves your issue, add the following line to ``/etc/sysctl.conf`` so that the changes are persistent: .. code-block:: ini net.bridge.bridge-nf-call-arptables=0 net.bridge.bridge-nf-call-iptables=0 net.bridge.bridge-nf-call-ip6tables=0 KVM: Network connectivity works initially, then fails ----------------------------------------------------- Problem ------- With KVM hypervisors, instances running Ubuntu 12.04 sometimes lose network connectivity after functioning properly for a period of time. Solution -------- Try loading the ``vhost_net`` kernel module as a workaround for this issue (see `bug #997978`_) . This kernel module may also `improve network performance`_ on KVM. To load the kernel module: .. _`bug #997978`: https://bugs.launchpad.net/ubuntu/+source/libvirt/+bug/997978/ .. _`improve network performance`: http://www.linux-kvm.org/page/VhostNet .. code-block:: console # modprobe vhost_net .. note:: Loading the module has no effect on running instances. nova-17.0.13/doc/source/admin/node-down.rst0000664000175000017500000002516113556316250020444 0ustar zuulzuul00000000000000================================== Recover from a failed compute node ================================== If you deploy Compute with a shared file system, you can use several methods to quickly recover from a node failure. This section discusses manual recovery. .. _node-down-evacuate-instances: Evacuate instances ~~~~~~~~~~~~~~~~~~ If a hardware malfunction or other error causes the cloud compute node to fail, you can use the :command:`nova evacuate` command to evacuate instances. See :doc:`evacuate instances ` for more information on using the command. .. _nova-compute-node-down-manual-recovery: Manual recovery ~~~~~~~~~~~~~~~ To manually recover a failed compute node: #. Identify the VMs on the affected hosts by using a combination of the :command:`openstack server list` and :command:`openstack server show` commands. #. Query the Compute database for the status of the host. This example converts an EC2 API instance ID to an OpenStack ID. If you use the :command:`nova` commands, you can substitute the ID directly. This example output is truncated: .. code-block:: none mysql> SELECT * FROM instances WHERE id = CONV('15b9', 16, 10) \G; *************************** 1. row *************************** created_at: 2012-06-19 00:48:11 updated_at: 2012-07-03 00:35:11 deleted_at: NULL ... id: 5561 ... power_state: 5 vm_state: shutoff ... hostname: at3-ui02 host: np-rcc54 ... uuid: 3f57699a-e773-4650-a443-b4b37eed5a06 ... task_state: NULL ... .. note:: Find the credentials for your database in ``/etc/nova.conf`` file. #. Decide to which compute host to move the affected VM. Run this database command to move the VM to that host: .. code-block:: mysql mysql> UPDATE instances SET host = 'np-rcc46' WHERE uuid = '3f57699a-e773-4650-a443-b4b37eed5a06'; #. If you use a hypervisor that relies on libvirt, such as KVM, update the ``libvirt.xml`` file in ``/var/lib/nova/instances/[instance ID]`` with these changes: - Change the ``DHCPSERVER`` value to the host IP address of the new compute host. - Update the VNC IP to ``0.0.0.0``. #. Reboot the VM: .. code-block:: console $ openstack server reboot 3f57699a-e773-4650-a443-b4b37eed5a06 Typically, the database update and :command:`openstack server reboot` command recover a VM from a failed host. However, if problems persist, try one of these actions: - Use :command:`virsh` to recreate the network filter configuration. - Restart Compute services. - Update the ``vm_state`` and ``power_state`` fields in the Compute database. Recover from a UID/GID mismatch ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Sometimes when you run Compute with a shared file system or an automated configuration tool, files on your compute node might use the wrong UID or GID. This UID or GID mismatch can prevent you from running live migrations or starting virtual machines. This procedure runs on ``nova-compute`` hosts, based on the KVM hypervisor: #. Set the nova UID to the same number in ``/etc/passwd`` on all hosts. For example, set the UID to ``112``. .. note:: Choose UIDs or GIDs that are not in use for other users or groups. #. Set the ``libvirt-qemu`` UID to the same number in the ``/etc/passwd`` file on all hosts. For example, set the UID to ``119``. #. Set the ``nova`` group to the same number in the ``/etc/group`` file on all hosts. For example, set the group to ``120``. #. Set the ``libvirtd`` group to the same number in the ``/etc/group`` file on all hosts. For example, set the group to ``119``. #. Stop the services on the compute node. #. Change all files that the nova user or group owns. For example: .. code-block:: console # find / -uid 108 -exec chown nova {} \; # note the 108 here is the old nova UID before the change # find / -gid 120 -exec chgrp nova {} \; #. Repeat all steps for the ``libvirt-qemu`` files, if required. #. Restart the services. #. To verify that all files use the correct IDs, run the :command:`find` command. Recover cloud after disaster ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ This section describes how to manage your cloud after a disaster and back up persistent storage volumes. Backups are mandatory, even outside of disaster scenarios. For a definition of a disaster recovery plan (DRP), see `https://en.wikipedia.org/wiki/Disaster\_Recovery\_Plan `_. A disk crash, network loss, or power failure can affect several components in your cloud architecture. The worst disaster for a cloud is a power loss. A power loss affects these components: - A cloud controller (``nova-api``, ``nova-objectstore``, ``nova-network``) - A compute node (``nova-compute``) - A storage area network (SAN) used by OpenStack Block Storage (``cinder-volumes``) Before a power loss: - Create an active iSCSI session from the SAN to the cloud controller (used for the ``cinder-volumes`` LVM's VG). - Create an active iSCSI session from the cloud controller to the compute node (managed by ``cinder-volume``). - Create an iSCSI session for every volume (so 14 EBS volumes requires 14 iSCSI sessions). - Create ``iptables`` or ``ebtables`` rules from the cloud controller to the compute node. This allows access from the cloud controller to the running instance. - Save the current state of the database, the current state of the running instances, and the attached volumes (mount point, volume ID, volume status, etc), at least from the cloud controller to the compute node. After power resumes and all hardware components restart: - The iSCSI session from the SAN to the cloud no longer exists. - The iSCSI session from the cloud controller to the compute node no longer exists. - nova-network reapplies configurations on boot and, as a result, recreates the iptables and ebtables from the cloud controller to the compute node. - Instances stop running. Instances are not lost because neither ``destroy`` nor ``terminate`` ran. The files for the instances remain on the compute node. - The database does not update. .. rubric:: Begin recovery .. warning:: Do not add any steps or change the order of steps in this procedure. #. Check the current relationship between the volume and its instance, so that you can recreate the attachment. Use the :command:`openstack volume list` command to get this information. Note that the :command:`openstack` client can get volume information from OpenStack Block Storage. #. Update the database to clean the stalled state. Do this for every volume by using these queries: .. code-block:: mysql mysql> use cinder; mysql> update volumes set mountpoint=NULL; mysql> update volumes set status="available" where status <>"error_deleting"; mysql> update volumes set attach_status="detached"; mysql> update volumes set instance_id=0; Use :command:`openstack volume list` command to list all volumes. #. Restart the instances by using the :command:`openstack server reboot INSTANCE` command. .. important:: Some instances completely reboot and become reachable, while some might stop at the plymouth stage. This is expected behavior. DO NOT reboot a second time. Instance state at this stage depends on whether you added an `/etc/fstab` entry for that volume. Images built with the cloud-init package remain in a ``pending`` state, while others skip the missing volume and start. You perform this step to ask Compute to reboot every instance so that the stored state is preserved. It does not matter if not all instances come up successfully. For more information about cloud-init, see `help.ubuntu.com/community/CloudInit/ `__. #. If required, run the :command:`openstack server add volume` command to reattach the volumes to their respective instances. This example uses a file of listed volumes to reattach them: .. code-block:: bash #!/bin/bash while read line; do volume=`echo $line | $CUT -f 1 -d " "` instance=`echo $line | $CUT -f 2 -d " "` mount_point=`echo $line | $CUT -f 3 -d " "` echo "ATTACHING VOLUME FOR INSTANCE - $instance" openstack server add volume $instance $volume $mount_point sleep 2 done < $volumes_tmp_file Instances that were stopped at the plymouth stage now automatically continue booting and start normally. Instances that previously started successfully can now see the volume. #. Log in to the instances with SSH and reboot them. If some services depend on the volume or if a volume has an entry in fstab, you can now restart the instance. Restart directly from the instance itself and not through :command:`nova`: .. code-block:: console # shutdown -r now When you plan for and complete a disaster recovery, follow these tips: - Use the ``errors=remount`` option in the ``fstab`` file to prevent data corruption. In the event of an I/O error, this option prevents writes to the disk. Add this configuration option into the cinder-volume server that performs the iSCSI connection to the SAN and into the instances' ``fstab`` files. - Do not add the entry for the SAN's disks to the cinder-volume's ``fstab`` file. Some systems hang on that step, which means you could lose access to your cloud-controller. To re-run the session manually, run this command before performing the mount: .. code-block:: console # iscsiadm -m discovery -t st -p $SAN_IP $ iscsiadm -m node --target-name $IQN -p $SAN_IP -l - On your instances, if you have the whole ``/home/`` directory on the disk, leave a user's directory with the user's bash files and the ``authorized_keys`` file instead of emptying the ``/home/`` directory and mapping the disk on it. This action enables you to connect to the instance without the volume attached, if you allow only connections through public keys. To reproduce the power loss, connect to the compute node that runs that instance and close the iSCSI session. Do not detach the volume by using the :command:`openstack server remove volume` command. You must manually close the iSCSI session. This example closes an iSCSI session with the number ``15``: .. code-block:: console # iscsiadm -m session -u -r 15 Do not forget the ``-r`` option. Otherwise, all sessions close. .. warning:: There is potential for data loss while running instances during this procedure. If you are using Liberty or earlier, ensure you have the correct patch and set the options appropriately. nova-17.0.13/doc/source/admin/evacuate.rst0000664000175000017500000000355113556316250020346 0ustar zuulzuul00000000000000================== Evacuate instances ================== If a hardware malfunction or other error causes a cloud compute node to fail, you can evacuate instances to make them available again. You can optionally include the target host on the :command:`nova evacuate` command. If you omit the host, the scheduler chooses the target host. To preserve user data on the server disk, configure shared storage on the target host. When you evacuate the instance, Compute detects whether shared storage is available on the target host. Also, you must validate that the current VM host is not operational. Otherwise, the evacuation fails. #. To find a host for the evacuated instance, list all hosts: .. code-block:: console $ openstack host list #. Evacuate the instance. You can use the ``--password PWD`` option to pass the instance password to the command. If you do not specify a password, the command generates and prints one after it finishes successfully. The following command evacuates a server from a failed host to ``HOST_B``. .. code-block:: console $ nova evacuate EVACUATED_SERVER_NAME HOST_B The command rebuilds the instance from the original image or volume and returns a password. The command preserves the original configuration, which includes the instance ID, name, uid, IP address, and so on. .. code-block:: console +-----------+--------------+ | Property | Value | +-----------+--------------+ | adminPass | kRAJpErnT4xZ | +-----------+--------------+ #. To preserve the user disk data on the evacuated server, deploy Compute with a shared file system. To configure your system, see :ref:`section_configuring-compute-migrations`. The following example does not change the password. .. code-block:: console $ nova evacuate EVACUATED_SERVER_NAME HOST_B --on-shared-storage nova-17.0.13/doc/source/admin/manage-volumes.rst0000664000175000017500000000671213556316250021473 0ustar zuulzuul00000000000000============== Manage volumes ============== Depending on the setup of your cloud provider, they may give you an endpoint to use to manage volumes. You can use the ``openstack`` CLI to manage volumes. For the purposes of the compute service, attaching, detaching and :doc:`creating a server from a volume <../user/launch-instance-from-volume>` are of primary interest. Refer to the `block storage service CLI guide on managing volumes `_. Volume multi-attach ------------------- Nova `added support for multiattach volumes`_ in the 17.0.0 Queens release. This document covers the nova-specific aspects of this feature. Refer to the `block storage admin guide`_ for more details about creating multiattach-capable volumes. Boot from volume and attaching a volume to a server that is not SHELVED_OFFLOADED is supported. Ultimately the ability to perform these actions depends on the compute host and hypervisor driver that is being used. Requirements ~~~~~~~~~~~~ * The minimum required compute API microversion for attaching a multiattach-capable volume to more than one server is `2.60`_. * Cinder 12.0.0 (Queens) or newer is required. * The ``nova-compute`` service must be running at least Queens release level code (17.0.0) and the hypervisor driver must support attaching block storage devices to more than one guest. Refer to the `feature support matrix`_ for details on which compute drivers support volume multiattach. * When using the libvirt compute driver, the following native package versions determine multiattach support: * libvirt must be greater than or equal to 3.10, or * qemu must be less than 2.10 * Swapping an *in-use* multiattach volume is not supported (this is actually controlled via the block storage volume retype API). Known issues ~~~~~~~~~~~~ * Creating multiple servers in a single request with a multiattach-capable volume as the root disk is not yet supported: https://bugs.launchpad.net/nova/+bug/1747985 * Subsequent attachments to the same volume are all attached in *read/write* mode by default in the block storage service. A future change either in nova or cinder may address this so that subsequent attachments are made in *read-only* mode, or such that the mode can be specified by the user when attaching the volume to the server. Testing ~~~~~~~ Continuous integration testing of the volume multiattach feature is done via the ``nova-multiattach`` job, defined in the `nova repository`_. The tests are defined in the `tempest repository`_. The CI job is setup to run with the **libvirt** compute driver and the **lvm** volume back end. It purposefully does not use the Pike Ubuntu Cloud Archive package mirror so that it gets qemu<2.10. .. _added support for multiattach volumes: https://specs.openstack.org/openstack/nova-specs/specs/queens/implemented/multi-attach-volume.html .. _block storage admin guide: https://docs.openstack.org/cinder/latest/admin/blockstorage-volume-multiattach.html .. _2.60: https://docs.openstack.org/nova/latest/reference/api-microversion-history.html#maximum-in-queens .. _feature support matrix: https://docs.openstack.org/nova/latest/user/support-matrix.html#operation_multiattach_volume .. _nova repository: http://git.openstack.org/cgit/openstack/nova/tree/playbooks/legacy/nova-multiattach/run.yaml .. _tempest repository: http://codesearch.openstack.org/?q=CONF.compute_feature_enabled.volume_multiattach&i=nope&files=&repos=tempest nova-17.0.13/doc/source/admin/service-groups.rst0000664000175000017500000000560113556316250021524 0ustar zuulzuul00000000000000================================ Configure Compute service groups ================================ The Compute service must know the status of each compute node to effectively manage and use them. This can include events like a user launching a new VM, the scheduler sending a request to a live node, or a query to the ServiceGroup API to determine if a node is live. When a compute worker running the nova-compute daemon starts, it calls the join API to join the compute group. Any service (such as the scheduler) can query the group's membership and the status of its nodes. Internally, the ServiceGroup client driver automatically updates the compute worker status. .. _database-servicegroup-driver: Database ServiceGroup driver ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ By default, Compute uses the database driver to track if a node is live. In a compute worker, this driver periodically sends a ``db update`` command to the database, saying “I'm OK” with a timestamp. Compute uses a pre-defined timeout (``service_down_time``) to determine if a node is dead. The driver has limitations, which can be problematic depending on your environment. If a lot of compute worker nodes need to be checked, the database can be put under heavy load, which can cause the timeout to trigger, and a live node could incorrectly be considered dead. By default, the timeout is 60 seconds. Reducing the timeout value can help in this situation, but you must also make the database update more frequently, which again increases the database workload. The database contains data that is both transient (such as whether the node is alive) and persistent (such as entries for VM owners). With the ServiceGroup abstraction, Compute can treat each type separately. .. _memcache-servicegroup-driver: Memcache ServiceGroup driver ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The memcache ServiceGroup driver uses memcached, a distributed memory object caching system that is used to increase site performance. For more details, see `memcached.org `_. To use the memcache driver, you must install memcached. You might already have it installed, as the same driver is also used for the OpenStack Object Storage and OpenStack dashboard. To install memcached, see the *Environment -> Memcached* section in the `Installation Tutorials and Guides `_ depending on your distribution. These values in the ``/etc/nova/nova.conf`` file are required on every node for the memcache driver: .. code-block:: ini # Driver for the ServiceGroup service servicegroup_driver = "mc" # Memcached servers. Use either a list of memcached servers to use for caching (list value), # or "" for in-process caching (default). memcached_servers = # Timeout; maximum time since last check-in for up service (integer value). # Helps to define whether a node is dead service_down_time = 60 nova-17.0.13/doc/source/admin/manage-the-cloud.rst0000664000175000017500000000446013556316250021663 0ustar zuulzuul00000000000000.. _section_manage-the-cloud: ================ Manage the cloud ================ .. toctree:: common/nova-show-usage-statistics-for-hosts-instances.rst System administrators can use the :command:`openstack` to manage their clouds. The ``openstack`` client can be used by all users, though specific commands might be restricted by the Identity service. **Managing the cloud with the openstack client** #. The ``python-openstackclient`` package provides an ``openstack`` shell that enables Compute API interactions from the command line. Install the client, and provide your user name and password (which can be set as environment variables for convenience), for the ability to administer the cloud from the command line. To install python-openstackclient, follow the instructions in the `OpenStack User Guide `_. #. Confirm the installation was successful: .. code-block:: console $ openstack help usage: openstack [--version] [-v | -q] [--log-file LOG_FILE] [-h] [--debug] [--os-cloud ] [--os-region-name ] [--os-cacert ] [--verify | --insecure] [--os-default-domain ] ... Running :command:`openstack help` returns a list of ``openstack`` commands and parameters. To get help for a subcommand, run: .. code-block:: console $ openstack help SUBCOMMAND For a complete list of ``openstack`` commands and parameters, see the `OpenStack Command-Line Reference `__. #. Set the required parameters as environment variables to make running commands easier. For example, you can add ``--os-username`` as an ``openstack`` option, or set it as an environment variable. To set the user name, password, and project as environment variables, use: .. code-block:: console $ export OS_USERNAME=joecool $ export OS_PASSWORD=coolword $ export OS_TENANT_NAME=coolu #. The Identity service gives you an authentication endpoint, which Compute recognizes as ``OS_AUTH_URL``: .. code-block:: console $ export OS_AUTH_URL=http://hostname:5000/v2.0 nova-17.0.13/doc/source/admin/arch.rst0000664000175000017500000003275413556316250017475 0ustar zuulzuul00000000000000=================== System architecture =================== OpenStack Compute contains several main components. - The cloud controller represents the global state and interacts with the other components. The ``API server`` acts as the web services front end for the cloud controller. The ``compute controller`` provides compute server resources and usually also contains the Compute service. - The ``object store`` is an optional component that provides storage services; you can also use OpenStack Object Storage instead. - An ``auth manager`` provides authentication and authorization services when used with the Compute system; you can also use OpenStack Identity as a separate authentication service instead. - A ``volume controller`` provides fast and permanent block-level storage for the compute servers. - The ``network controller`` provides virtual networks to enable compute servers to interact with each other and with the public network. You can also use OpenStack Networking instead. - The ``scheduler`` is used to select the most suitable compute controller to host an instance. Compute uses a messaging-based, ``shared nothing`` architecture. All major components exist on multiple servers, including the compute, volume, and network controllers, and the Object Storage or Image service. The state of the entire system is stored in a database. The cloud controller communicates with the internal object store using HTTP, but it communicates with the scheduler, network controller, and volume controller using Advanced Message Queuing Protocol (AMQP). To avoid blocking a component while waiting for a response, Compute uses asynchronous calls, with a callback that is triggered when a response is received. Hypervisors ~~~~~~~~~~~ Compute controls hypervisors through an API server. Selecting the best hypervisor to use can be difficult, and you must take budget, resource constraints, supported features, and required technical specifications into account. However, the majority of OpenStack development is done on systems using KVM and Xen-based hypervisors. For a detailed list of features and support across different hypervisors, see :doc:`/user/support-matrix`. You can also orchestrate clouds using multiple hypervisors in different availability zones. Compute supports the following hypervisors: - `Baremetal `__ - `Docker `__ - `Hyper-V `__ - `Kernel-based Virtual Machine (KVM) `__ - `Linux Containers (LXC) `__ - `Quick Emulator (QEMU) `__ - `User Mode Linux (UML) `__ - `VMware vSphere `__ - `Xen `__ For more information about hypervisors, see :doc:`/admin/configuration/hypervisors` section in the Nova Configuration Reference. Projects, users, and roles ~~~~~~~~~~~~~~~~~~~~~~~~~~ The Compute system is designed to be used by different consumers in the form of projects on a shared system, and role-based access assignments. Roles control the actions that a user is allowed to perform. Projects are isolated resource containers that form the principal organizational structure within the Compute service. They consist of an individual VLAN, and volumes, instances, images, keys, and users. A user can specify the project by appending ``project_id`` to their access key. If no project is specified in the API request, Compute attempts to use a project with the same ID as the user. For projects, you can use quota controls to limit the: - Number of volumes that can be launched. - Number of processor cores and the amount of RAM that can be allocated. - Floating IP addresses assigned to any instance when it launches. This allows instances to have the same publicly accessible IP addresses. - Fixed IP addresses assigned to the same instance when it launches. This allows instances to have the same publicly or privately accessible IP addresses. Roles control the actions a user is allowed to perform. By default, most actions do not require a particular role, but you can configure them by editing the ``policy.json`` file for user roles. For example, a rule can be defined so that a user must have the ``admin`` role in order to be able to allocate a public IP address. A project limits users' access to particular images. Each user is assigned a user name and password. Keypairs granting access to an instance are enabled for each user, but quotas are set, so that each project can control resource consumption across available hardware resources. .. note:: Earlier versions of OpenStack used the term ``tenant`` instead of ``project``. Because of this legacy terminology, some command-line tools use ``--tenant_id`` where you would normally expect to enter a project ID. Block storage ~~~~~~~~~~~~~ OpenStack provides two classes of block storage: ephemeral storage and persistent volume. .. rubric:: Ephemeral storage Ephemeral storage includes a root ephemeral volume and an additional ephemeral volume. The root disk is associated with an instance, and exists only for the life of this very instance. Generally, it is used to store an instance's root file system, persists across the guest operating system reboots, and is removed on an instance deletion. The amount of the root ephemeral volume is defined by the flavor of an instance. In addition to the ephemeral root volume, all default types of flavors, except ``m1.tiny``, which is the smallest one, provide an additional ephemeral block device sized between 20 and 160 GB (a configurable value to suit an environment). It is represented as a raw block device with no partition table or file system. A cloud-aware operating system can discover, format, and mount such a storage device. OpenStack Compute defines the default file system for different operating systems as Ext4 for Linux distributions, VFAT for non-Linux and non-Windows operating systems, and NTFS for Windows. However, it is possible to specify any other filesystem type by using ``virt_mkfs`` or ``default_ephemeral_format`` configuration options. .. note:: For example, the ``cloud-init`` package included into an Ubuntu's stock cloud image, by default, formats this space as an Ext4 file system and mounts it on ``/mnt``. This is a cloud-init feature, and is not an OpenStack mechanism. OpenStack only provisions the raw storage. .. rubric:: Persistent volume A persistent volume is represented by a persistent virtualized block device independent of any particular instance, and provided by OpenStack Block Storage. Only a single configured instance can access a persistent volume. Multiple instances cannot access a persistent volume. This type of configuration requires a traditional network file system to allow multiple instances accessing the persistent volume. It also requires a traditional network file system like NFS, CIFS, or a cluster file system such as GlusterFS. These systems can be built within an OpenStack cluster, or provisioned outside of it, but OpenStack software does not provide these features. You can configure a persistent volume as bootable and use it to provide a persistent virtual instance similar to the traditional non-cloud-based virtualization system. It is still possible for the resulting instance to keep ephemeral storage, depending on the flavor selected. In this case, the root file system can be on the persistent volume, and its state is maintained, even if the instance is shut down. For more information about this type of configuration, see `Introduction to the Block Storage service `_ in the OpenStack Configuration Reference. .. note:: A persistent volume does not provide concurrent access from multiple instances. That type of configuration requires a traditional network file system like NFS, or CIFS, or a cluster file system such as GlusterFS. These systems can be built within an OpenStack cluster, or provisioned outside of it, but OpenStack software does not provide these features. Building blocks ~~~~~~~~~~~~~~~ In OpenStack the base operating system is usually copied from an image stored in the OpenStack Image service. This is the most common case and results in an ephemeral instance that starts from a known template state and loses all accumulated states on virtual machine deletion. It is also possible to put an operating system on a persistent volume in the OpenStack Block Storage volume system. This gives a more traditional persistent system that accumulates states which are preserved on the OpenStack Block Storage volume across the deletion and re-creation of the virtual machine. To get a list of available images on your system, run: .. code-block:: console $ openstack image list +--------------------------------------+-----------------------------+--------+ | ID | Name | Status | +--------------------------------------+-----------------------------+--------+ | aee1d242-730f-431f-88c1-87630c0f07ba | Ubuntu 14.04 cloudimg amd64 | active | | 0b27baa1-0ca6-49a7-b3f4-48388e440245 | Ubuntu 14.10 cloudimg amd64 | active | | df8d56fc-9cea-4dfd-a8d3-28764de3cb08 | jenkins | active | +--------------------------------------+-----------------------------+--------+ The displayed image attributes are: ``ID`` Automatically generated UUID of the image ``Name`` Free form, human-readable name for image ``Status`` The status of the image. Images marked ``ACTIVE`` are available for use. ``Server`` For images that are created as snapshots of running instances, this is the UUID of the instance the snapshot derives from. For uploaded images, this field is blank. Virtual hardware templates are called ``flavors``. By default, these are configurable by admin users, however that behavior can be changed by redefining the access controls for ``compute_extension:flavormanage`` in ``/etc/nova/policy.json`` on the ``compute-api`` server. For more information, refer to :doc:`/configuration/policy`. For a list of flavors that are available on your system: .. code-block:: console $ openstack flavor list +-----+-----------+-------+------+-----------+-------+-----------+ | ID | Name | RAM | Disk | Ephemeral | VCPUs | Is_Public | +-----+-----------+-------+------+-----------+-------+-----------+ | 1 | m1.tiny | 512 | 1 | 0 | 1 | True | | 2 | m1.small | 2048 | 20 | 0 | 1 | True | | 3 | m1.medium | 4096 | 40 | 0 | 2 | True | | 4 | m1.large | 8192 | 80 | 0 | 4 | True | | 5 | m1.xlarge | 16384 | 160 | 0 | 8 | True | +-----+-----------+-------+------+-----------+-------+-----------+ Compute service architecture ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ These basic categories describe the service architecture and information about the cloud controller. .. rubric:: API server At the heart of the cloud framework is an API server, which makes command and control of the hypervisor, storage, and networking programmatically available to users. The API endpoints are basic HTTP web services which handle authentication, authorization, and basic command and control functions using various API interfaces under the Amazon, Rackspace, and related models. This enables API compatibility with multiple existing tool sets created for interaction with offerings from other vendors. This broad compatibility prevents vendor lock-in. .. rubric:: Message queue A messaging queue brokers the interaction between compute nodes (processing), the networking controllers (software which controls network infrastructure), API endpoints, the scheduler (determines which physical hardware to allocate to a virtual resource), and similar components. Communication to and from the cloud controller is handled by HTTP requests through multiple API endpoints. A typical message passing event begins with the API server receiving a request from a user. The API server authenticates the user and ensures that they are permitted to issue the subject command. The availability of objects implicated in the request is evaluated and, if available, the request is routed to the queuing engine for the relevant workers. Workers continually listen to the queue based on their role, and occasionally their type host name. When an applicable work request arrives on the queue, the worker takes assignment of the task and begins executing it. Upon completion, a response is dispatched to the queue which is received by the API server and relayed to the originating user. Database entries are queried, added, or removed as necessary during the process. .. rubric:: Compute worker Compute workers manage computing instances on host machines. The API dispatches commands to compute workers to complete these tasks: - Run instances - Delete instances (Terminate instances) - Reboot instances - Attach volumes - Detach volumes - Get console output .. rubric:: Network Controller The Network Controller manages the networking resources on host machines. The API server dispatches commands through the message queue, which are subsequently processed by Network Controllers. Specific operations include: - Allocating fixed IP addresses - Configuring VLANs for projects - Configuring networks for compute nodes nova-17.0.13/doc/source/admin/admin-password-injection.rst0000664000175000017500000000431113556316250023454 0ustar zuulzuul00000000000000==================================== Injecting the administrator password ==================================== Compute can generate a random administrator (root) password and inject that password into an instance. If this feature is enabled, users can run :command:`ssh` to an instance without an :command:`ssh` keypair. The random password appears in the output of the :command:`openstack server create` command. You can also view and set the admin password from the dashboard. .. rubric:: Password injection using the dashboard By default, the dashboard will display the ``admin`` password and allow the user to modify it. If you do not want to support password injection, disable the password fields by editing the dashboard's ``local_settings.py`` file. .. code-block:: none OPENSTACK_HYPERVISOR_FEATURES = { ... 'can_set_password': False, } .. rubric:: Password injection on libvirt-based hypervisors For hypervisors that use the libvirt back end (such as KVM, QEMU, and LXC), admin password injection is disabled by default. To enable it, set this option in ``/etc/nova/nova.conf``: .. code-block:: ini [libvirt] inject_password=true When enabled, Compute will modify the password of the admin account by editing the ``/etc/shadow`` file inside the virtual machine instance. .. note:: Users can only use :command:`ssh` to access the instance by using the admin password if the virtual machine image is a Linux distribution, and it has been configured to allow users to use :command:`ssh` as the root user. This is not the case for `Ubuntu cloud images `_ which, by default, does not allow users to use :command:`ssh` to access the root account. .. rubric:: Password injection and XenAPI (XenServer/XCP) When using the XenAPI hypervisor back end, Compute uses the XenAPI agent to inject passwords into guests. The virtual machine image must be configured with the agent for password injection to work. .. rubric:: Password injection and Windows images (all hypervisors) For Windows virtual machines, configure the Windows image to retrieve the admin password on boot by installing an agent such as `cloudbase-init `_. nova-17.0.13/doc/source/admin/index.rst0000664000175000017500000000221413556316250017653 0ustar zuulzuul00000000000000======= Compute ======= The OpenStack Compute service allows you to control an Infrastructure-as-a-Service (IaaS) cloud computing platform. It gives you control over instances and networks, and allows you to manage access to the cloud through users and projects. Compute does not include virtualization software. Instead, it defines drivers that interact with underlying virtualization mechanisms that run on your host operating system, and exposes functionality over a web-based API. .. toctree:: :maxdepth: 2 admin-password-injection.rst adv-config.rst arch.rst availability-zones.rst configuring-migrations.rst cpu-topologies.rst default-ports.rst evacuate.rst flavors.rst huge-pages.rst live-migration-usage.rst manage-logs.rst manage-the-cloud.rst manage-users.rst manage-volumes.rst migration.rst networking-nova.rst node-down.rst numa.rst pci-passthrough.rst quotas2.rst quotas.rst remote-console-access.rst root-wrap-reference.rst security-groups.rst security.rst service-groups.rst services.rst ssh-configuration.rst support-compute.rst system-admin.rst nova-17.0.13/doc/source/admin/configuration/0000775000175000017500000000000013556316574020673 5ustar zuulzuul00000000000000nova-17.0.13/doc/source/admin/configuration/hypervisor-powervm.rst0000664000175000017500000000250313556316250025323 0ustar zuulzuul00000000000000PowerVM ======= Usage ----- To make use of the PowerVM compute driver, a PowerVM system set up with `NovaLink`_ is required. .. _NovaLink: https://www.ibm.com/support/knowledgecenter/en/POWER8/p8eig/p8eig_kickoff.htm Installing the NovaLink software creates the ``pvm_admin`` group. In order to function properly, the user executing the Nova compute service must be a member of this group. Use the ``usermod`` command to add the user. For example, to add the user ``stacker`` to the ``pvm_admin`` group, execute:: sudo usermod -a -G pvm_admin stacker The user must re-login for the change to take effect. The NovaLink architecture is such that the compute driver runs directly on the PowerVM system. No external management element (e.g. Hardware Management Console or PowerVC) is needed. Management of the virtualization is driven through a thin virtual machine running on the PowerVM system. Configuration of the PowerVM system and NovaLink is required ahead of time. If the operator is using volumes or Shared Storage Pools, they are required to be configured ahead of time. Configuration File Options -------------------------- After nova has been installed the user must enable PowerVM as the compute driver. To do so, set the ``compute_driver`` value in the ``nova.conf`` file to ``compute_driver = powervm.driver.PowerVMDriver``. nova-17.0.13/doc/source/admin/configuration/resize.rst0000664000175000017500000000167613556316250022727 0ustar zuulzuul00000000000000================ Configure resize ================ Resize (or Server resize) is the ability to change the flavor of a server, thus allowing it to upscale or downscale according to user needs. For this feature to work properly, you might need to configure some underlying virt layers. KVM ~~~ Resize on KVM is implemented currently by transferring the images between compute nodes over ssh. For KVM you need hostnames to resolve properly and passwordless ssh access between your compute hosts. Direct access from one compute host to another is needed to copy the VM file across. Cloud end users can find out how to resize a server by reading the `OpenStack End User Guide `_. XenServer ~~~~~~~~~ To get resize to work with XenServer (and XCP), you need to establish a root trust between all hypervisor nodes and provide an ``/image`` mount point to your hypervisors dom0. nova-17.0.13/doc/source/admin/configuration/hypervisor-basics.rst0000664000175000017500000000106213556316250025067 0ustar zuulzuul00000000000000=============================== Hypervisor Configuration Basics =============================== The node where the ``nova-compute`` service is installed and operates on the same node that runs all of the virtual machines. This is referred to as the compute node in this guide. By default, the selected hypervisor is KVM. To change to another hypervisor, change the ``virt_type`` option in the ``[libvirt]`` section of ``nova.conf`` and restart the ``nova-compute`` service. Specific options for particular hypervisors can be found in the following sections. nova-17.0.13/doc/source/admin/configuration/cells.rst0000664000175000017500000002601213556316250022517 0ustar zuulzuul00000000000000========== Cells (v1) ========== .. warning:: Configuring and implementing Cells v1 is not recommended for new deployments of the Compute service (nova). Cells v2 replaces cells v1, and v2 is required to install or upgrade the Compute service to the 15.0.0 Ocata release. More information on cells v2 can be found in :doc:`/user/cells`. `Cells` functionality enables you to scale an OpenStack Compute cloud in a more distributed fashion without having to use complicated technologies like database and message queue clustering. It supports very large deployments. When this functionality is enabled, the hosts in an OpenStack Compute cloud are partitioned into groups called cells. Cells are configured as a tree. The top-level cell should have a host that runs a ``nova-api`` service, but no ``nova-compute`` services. Each child cell should run all of the typical ``nova-*`` services in a regular Compute cloud except for ``nova-api``. You can think of cells as a normal Compute deployment in that each cell has its own database server and message queue broker. The ``nova-cells`` service handles communication between cells and selects cells for new instances. This service is required for every cell. Communication between cells is pluggable, and currently the only option is communication through RPC. Cells scheduling is separate from host scheduling. ``nova-cells`` first picks a cell. Once a cell is selected and the new build request reaches its ``nova-cells`` service, it is sent over to the host scheduler in that cell and the build proceeds as it would have without cells. Cell configuration options ~~~~~~~~~~~~~~~~~~~~~~~~~~ .. todo:: This is duplication. We should be able to use the oslo.config.sphinxext module to generate this for us Cells are disabled by default. All cell-related configuration options appear in the ``[cells]`` section in ``nova.conf``. The following cell-related options are currently supported: ``enable`` Set to ``True`` to turn on cell functionality. Default is ``false``. ``name`` Name of the current cell. Must be unique for each cell. ``capabilities`` List of arbitrary ``key=value`` pairs defining capabilities of the current cell. Values include ``hypervisor=xenserver;kvm,os=linux;windows``. ``call_timeout`` How long in seconds to wait for replies from calls between cells. ``scheduler_filter_classes`` Filter classes that the cells scheduler should use. By default, uses ``nova.cells.filters.all_filters`` to map to all cells filters included with Compute. ``scheduler_weight_classes`` Weight classes that the scheduler for cells uses. By default, uses ``nova.cells.weights.all_weighers`` to map to all cells weight algorithms included with Compute. ``ram_weight_multiplier`` Multiplier used to weight RAM. Negative numbers indicate that Compute should stack VMs on one host instead of spreading out new VMs to more hosts in the cell. The default value is 10.0. Configure the API (top-level) cell ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The cell type must be changed in the API cell so that requests can be proxied through ``nova-cells`` down to the correct cell properly. Edit the ``nova.conf`` file in the API cell, and specify ``api`` in the ``cell_type`` key: .. code-block:: ini [DEFAULT] compute_api_class=nova.compute.cells_api.ComputeCellsAPI # ... [cells] cell_type= api Configure the child cells ~~~~~~~~~~~~~~~~~~~~~~~~~ Edit the ``nova.conf`` file in the child cells, and specify ``compute`` in the ``cell_type`` key: .. code-block:: ini [DEFAULT] # Disable quota checking in child cells. Let API cell do it exclusively. quota_driver=nova.quota.NoopQuotaDriver [cells] cell_type = compute Configure the database in each cell ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Before bringing the services online, the database in each cell needs to be configured with information about related cells. In particular, the API cell needs to know about its immediate children, and the child cells must know about their immediate agents. The information needed is the ``RabbitMQ`` server credentials for the particular cell. Use the :command:`nova-manage cell create` command to add this information to the database in each cell: .. code-block:: console # nova-manage cell create -h usage: nova-manage cell create [-h] [--name ] [--cell_type ] [--username ] [--password ] [--broker_hosts ] [--hostname ] [--port ] [--virtual_host ] [--woffset ] [--wscale ] optional arguments: -h, --help show this help message and exit --name Name for the new cell --cell_type Whether the cell is parent/api or child/compute --username Username for the message broker in this cell --password Password for the message broker in this cell --broker_hosts Comma separated list of message brokers in this cell. Each Broker is specified as hostname:port with both mandatory. This option overrides the --hostname and --port options (if provided). --hostname Address of the message broker in this cell --port Port number of the message broker in this cell --virtual_host The virtual host of the message broker in this cell --woffset --wscale As an example, assume an API cell named ``api`` and a child cell named ``cell1``. Within the ``api`` cell, specify the following ``RabbitMQ`` server information: .. code-block:: ini rabbit_host=10.0.0.10 rabbit_port=5672 rabbit_username=api_user rabbit_password=api_passwd rabbit_virtual_host=api_vhost Within the ``cell1`` child cell, specify the following ``RabbitMQ`` server information: .. code-block:: ini rabbit_host=10.0.1.10 rabbit_port=5673 rabbit_username=cell1_user rabbit_password=cell1_passwd rabbit_virtual_host=cell1_vhost You can run this in the API cell as root: .. code-block:: console # nova-manage cell create --name cell1 --cell_type child \ --username cell1_user --password cell1_passwd --hostname 10.0.1.10 \ --port 5673 --virtual_host cell1_vhost --woffset 1.0 --wscale 1.0 Repeat the previous steps for all child cells. In the child cell, run the following, as root: .. code-block:: console # nova-manage cell create --name api --cell_type parent \ --username api_user --password api_passwd --hostname 10.0.0.10 \ --port 5672 --virtual_host api_vhost --woffset 1.0 --wscale 1.0 To customize the Compute cells, use the configuration option settings documented above. Cell scheduling configuration ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ To determine the best cell to use to launch a new instance, Compute uses a set of filters and weights defined in the ``/etc/nova/nova.conf`` file. The following options are available to prioritize cells for scheduling: ``scheduler_filter_classes`` List of filter classes. By default ``nova.cells.filters.all_filters`` is specified, which maps to all cells filters included with Compute (see the section called :ref:`Filters `). ``scheduler_weight_classes`` List of weight classes. By default ``nova.cells.weights.all_weighers`` is specified, which maps to all cell weight algorithms included with Compute. The following modules are available: ``mute_child`` Downgrades the likelihood of child cells being chosen for scheduling requests, which haven't sent capacity or capability updates in a while. Options include ``mute_weight_multiplier`` (multiplier for mute children; value should be negative). ``ram_by_instance_type`` Select cells with the most RAM capacity for the instance type being requested. Because higher weights win, Compute returns the number of available units for the instance type requested. The ``ram_weight_multiplier`` option defaults to 10.0 that adds to the weight by a factor of 10. Use a negative number to stack VMs on one host instead of spreading out new VMs to more hosts in the cell. ``weight_offset`` Allows modifying the database to weight a particular cell. You can use this when you want to disable a cell (for example, '0'), or to set a default cell by making its ``weight_offset`` very high (for example, ``999999999999999``). The highest weight will be the first cell to be scheduled for launching an instance. Additionally, the following options are available for the cell scheduler: ``scheduler_retries`` Specifies how many times the scheduler tries to launch a new instance when no cells are available (default=10). ``scheduler_retry_delay`` Specifies the delay (in seconds) between retries (default=2). As an admin user, you can also add a filter that directs builds to a particular cell. The ``policy.json`` file must have a line with ``"cells_scheduler_filter:TargetCellFilter" : "is_admin:True"`` to let an admin user specify a scheduler hint to direct a build to a particular cell. Optional cell configuration ~~~~~~~~~~~~~~~~~~~~~~~~~~~ Cells store all inter-cell communication data, including user names and passwords, in the database. Because the cells data is not updated very frequently, use the ``[cells]cells_config`` option to specify a JSON file to store cells data. With this configuration, the database is no longer consulted when reloading the cells data. The file must have columns present in the Cell model (excluding common database fields and the ``id`` column). You must specify the queue connection information through a ``transport_url`` field, instead of ``username``, ``password``, and so on. The ``transport_url`` has the following form:: rabbit://USERNAME:PASSWORD@HOSTNAME:PORT/VIRTUAL_HOST The scheme can only be ``rabbit``. The following sample shows this optional configuration: .. code-block:: json { "parent": { "name": "parent", "api_url": "http://api.example.com:8774", "transport_url": "rabbit://rabbit.example.com", "weight_offset": 0.0, "weight_scale": 1.0, "is_parent": true }, "cell1": { "name": "cell1", "api_url": "http://api.example.com:8774", "transport_url": "rabbit://rabbit1.example.com", "weight_offset": 0.0, "weight_scale": 1.0, "is_parent": false }, "cell2": { "name": "cell2", "api_url": "http://api.example.com:8774", "transport_url": "rabbit://rabbit2.example.com", "weight_offset": 0.0, "weight_scale": 1.0, "is_parent": false } } nova-17.0.13/doc/source/admin/configuration/hypervisor-xen-api.rst0000664000175000017500000004070013556316250025166 0ustar zuulzuul00000000000000.. _compute_xen_api: ============================================= XenServer (and other XAPI based Xen variants) ============================================= .. todo:: os-xenapi version is 0.3.1 currently. This document should be modified according to the new version. This todo has been reported as `bug 1718606`_. .. _bug 1718606: https://bugs.launchpad.net/nova/+bug/1718606 This section describes XAPI managed hypervisors, and how to use them with OpenStack. Terminology ~~~~~~~~~~~ Xen --- A hypervisor that provides the fundamental isolation between virtual machines. Xen is open source (GPLv2) and is managed by `XenProject.org `_, a cross-industry organization and a Linux Foundation Collaborative project. Xen is a component of many different products and projects. The hypervisor itself is very similar across all these projects, but the way that it is managed can be different, which can cause confusion if you're not clear which toolstack you are using. Make sure you know what `toolstack `_ you want before you get started. If you want to use Xen with libvirt in OpenStack Compute refer to :doc:`hypervisor-xen-libvirt`. XAPI ---- XAPI is one of the toolstacks that could control a Xen based hypervisor. XAPI's role is similar to libvirt's in the KVM world. The API provided by XAPI is called XenAPI. To learn more about the provided interface, look at `XenAPI Object Model Overview `_ for definitions of XAPI specific terms such as SR, VDI, VIF and PIF. OpenStack has a compute driver which talks to XAPI, therefore all XAPI managed servers could be used with OpenStack. XenAPI ------ XenAPI is the API provided by XAPI. This name is also used by the python library that is a client for XAPI. A set of packages to use XenAPI on existing distributions can be built using the `xenserver/buildroot `_ project. XenServer --------- An Open Source virtualization platform that delivers all features needed for any server and datacenter implementation including the Xen hypervisor and XAPI for the management. For more information and product downloads, visit `xenserver.org `_. XCP --- XCP is not supported anymore. XCP project recommends all XCP users to upgrade to the latest version of XenServer by visiting `xenserver.org `_. Privileged and unprivileged domains ----------------------------------- A Xen host runs a number of virtual machines, VMs, or domains (the terms are synonymous on Xen). One of these is in charge of running the rest of the system, and is known as domain 0, or dom0. It is the first domain to boot after Xen, and owns the storage and networking hardware, the device drivers, and the primary control software. Any other VM is unprivileged, and is known as a domU or guest. All customer VMs are unprivileged, but you should note that on XenServer (and other XenAPI using hypervisors), the OpenStack Compute service (``nova-compute``) also runs in a domU. This gives a level of security isolation between the privileged system software and the OpenStack software (much of which is customer-facing). This architecture is described in more detail later. Paravirtualized versus hardware virtualized domains --------------------------------------------------- A Xen virtual machine can be paravirtualized (PV) or hardware virtualized (HVM). This refers to the interaction between Xen, domain 0, and the guest VM's kernel. PV guests are aware of the fact that they are virtualized and will co-operate with Xen and domain 0; this gives them better performance characteristics. HVM guests are not aware of their environment, and the hardware has to pretend that they are running on an unvirtualized machine. HVM guests do not need to modify the guest operating system, which is essential when running Windows. In OpenStack, customer VMs may run in either PV or HVM mode. However, the OpenStack domU (that's the one running ``nova-compute``) must be running in PV mode. XenAPI deployment architecture ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ A basic OpenStack deployment on a XAPI-managed server, assuming that the network provider is neutron network, looks like this: .. figure:: /figures/xenserver_architecture.png :width: 100% Key things to note: * The hypervisor: Xen * Domain 0: runs XAPI and some small pieces from OpenStack, the XAPI plug-ins. * OpenStack VM: The ``Compute`` service runs in a paravirtualized virtual machine, on the host under management. Each host runs a local instance of ``Compute``. It is also running neutron plugin-agent (``neutron-openvswitch-agent``) to perform local vSwitch configuration. * OpenStack Compute uses the XenAPI Python library to talk to XAPI, and it uses the Management Network to reach from the OpenStack VM to Domain 0. Some notes on the networking: * The above diagram assumes DHCP networking. * There are three main OpenStack networks: * Management network: RabbitMQ, MySQL, inter-host communication, and compute-XAPI communication. Please note that the VM images are downloaded by the XenAPI plug-ins, so make sure that the OpenStack Image service is accessible through this network. It usually means binding those services to the management interface. * Tenant network: controlled by neutron, this is used for tenant traffic. * Public network: floating IPs, public API endpoints. * The networks shown here must be connected to the corresponding physical networks within the data center. In the simplest case, three individual physical network cards could be used. It is also possible to use VLANs to separate these networks. Please note, that the selected configuration must be in line with the networking model selected for the cloud. (In case of VLAN networking, the physical channels have to be able to forward the tagged traffic.) * With the Networking service, you should enable Linux bridge in ``Dom0`` which is used for Compute service. ``nova-compute`` will create Linux bridges for security group and ``neutron-openvswitch-agent`` in Compute node will apply security group rules on these Linux bridges. To implement this, you need to remove ``/etc/modprobe.d/blacklist-bridge*`` in ``Dom0``. Further reading ~~~~~~~~~~~~~~~ Here are some of the resources available to learn more about Xen: * `Citrix XenServer official documentation `_ * `What is Xen? by XenProject.org `_ * `Xen Hypervisor project `_ * `Xapi project `_ * `Further XenServer and OpenStack information `_ Install XenServer ~~~~~~~~~~~~~~~~~ Before you can run OpenStack with XenServer, you must install the hypervisor on `an appropriate server `_. .. note:: Xen is a type 1 hypervisor: When your server starts, Xen is the first software that runs. Consequently, you must install XenServer before you install the operating system where you want to run OpenStack code. You then install ``nova-compute`` into a dedicated virtual machine on the host. Use the following link to download XenServer's installation media: * http://xenserver.org/open-source-virtualization-download.html When you install many servers, you might find it easier to perform `PXE boot installations `_. You can also package any post-installation changes that you want to make to your XenServer by following the instructions of `creating your own XenServer supplemental pack `_. .. important:: Make sure you use the EXT type of storage repository (SR). Features that require access to VHD files (such as copy on write, snapshot and migration) do not work when you use the LVM SR. Storage repository (SR) is a XAPI-specific term relating to the physical storage where virtual disks are stored. On the XenServer installation screen, choose the :guilabel:`XenDesktop Optimized` option. If you use an answer file, make sure you use ``srtype="ext"`` in the ``installation`` tag of the answer file. Post-installation steps ~~~~~~~~~~~~~~~~~~~~~~~ The following steps need to be completed after the hypervisor's installation: #. For resize and migrate functionality, enable password-less SSH authentication and set up the ``/images`` directory on dom0. #. Install the XAPI plug-ins. #. To support AMI type images, you must set up ``/boot/guest`` symlink/directory in dom0. #. Create a paravirtualized virtual machine that can run ``nova-compute``. #. Install and configure ``nova-compute`` in the above virtual machine. Install XAPI plug-ins --------------------- When you use a XAPI managed hypervisor, you can install a Python script (or any executable) on the host side, and execute that through XenAPI. These scripts are called plug-ins. The OpenStack related XAPI plug-ins live in OpenStack os-xenapi code repository. These plug-ins have to be copied to dom0's filesystem, to the appropriate directory, where XAPI can find them. It is important to ensure that the version of the plug-ins are in line with the OpenStack Compute installation you are using. The plugins should typically be copied from the Nova installation running in the Compute's DomU (``pip show os-xenapi`` to find its location), but if you want to download the latest version the following procedure can be used. **Manually installing the plug-ins** #. Create temporary files/directories: .. code-block:: console $ OS_XENAPI_TARBALL=$(mktemp) $ OS_XENAPI_SOURCES=$(mktemp -d) #. Get the source from the openstack.org archives. The example assumes the latest release is used, and the XenServer host is accessible as xenserver. Match those parameters to your setup. .. code-block:: console $ OS_XENAPI_URL=https://tarballs.openstack.org/os-xenapi/os-xenapi-0.1.1.tar.gz $ wget -qO "$OS_XENAPI_TARBALL" "$OS_XENAPI_URL" $ tar xvf "$OS_XENAPI_TARBALL" -d "$OS_XENAPI_SOURCES" #. Copy the plug-ins to the hypervisor: .. code-block:: console $ PLUGINPATH=$(find $OS_XENAPI_SOURCES -path '*/xapi.d/plugins' -type d -print) $ tar -czf - -C "$PLUGINPATH" ./ | > ssh root@xenserver tar -xozf - -C /etc/xapi.d/plugins #. Remove temporary files/directories: .. code-block:: console $ rm "$OS_XENAPI_TARBALL" $ rm -rf "$OS_XENAPI_SOURCES" Prepare for AMI type images --------------------------- To support AMI type images in your OpenStack installation, you must create the ``/boot/guest`` directory on dom0. One of the OpenStack XAPI plugins will extract the kernel and ramdisk from AKI and ARI images and put them to that directory. OpenStack maintains the contents of this directory and its size should not increase during normal operation. However, in case of power failures or accidental shutdowns, some files might be left over. To prevent these files from filling up dom0's filesystem, set up this directory as a symlink that points to a subdirectory of the local SR. Run these commands in dom0 to achieve this setup: .. code-block:: console # LOCAL_SR=$(xe sr-list name-label="Local storage" --minimal) # LOCALPATH="/var/run/sr-mount/$LOCAL_SR/os-guest-kernels" # mkdir -p "$LOCALPATH" # ln -s "$LOCALPATH" /boot/guest Modify dom0 for resize/migration support ---------------------------------------- To resize servers with XenServer you must: * Establish a root trust between all hypervisor nodes of your deployment: To do so, generate an ssh key-pair with the :command:`ssh-keygen` command. Ensure that each of your dom0's ``authorized_keys`` file (located in ``/root/.ssh/authorized_keys``) contains the public key fingerprint (located in ``/root/.ssh/id_rsa.pub``). * Provide a ``/images`` mount point to the dom0 for your hypervisor: dom0 space is at a premium so creating a directory in dom0 is potentially dangerous and likely to fail especially when you resize large servers. The least you can do is to symlink ``/images`` to your local storage SR. The following instructions work for an English-based installation of XenServer and in the case of ext3-based SR (with which the resize functionality is known to work correctly). .. code-block:: console # LOCAL_SR=$(xe sr-list name-label="Local storage" --minimal) # IMG_DIR="/var/run/sr-mount/$LOCAL_SR/images" # mkdir -p "$IMG_DIR" # ln -s "$IMG_DIR" /images XenAPI configuration reference ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The following section discusses some commonly changed options when using the XenAPI driver. The table below provides a complete reference of all configuration options available for configuring XAPI with OpenStack. The recommended way to use XAPI with OpenStack is through the XenAPI driver. To enable the XenAPI driver, add the following configuration options to ``/etc/nova/nova.conf`` and restart ``OpenStack Compute``: .. code-block:: ini compute_driver = xenapi.XenAPIDriver [xenserver] connection_url = http://your_xenapi_management_ip_address connection_username = root connection_password = your_password ovs_integration_bridge = br-int vif_driver = nova.virt.xenapi.vif.XenAPIOpenVswitchDriver These connection details are used by OpenStack Compute service to contact your hypervisor and are the same details you use to connect XenCenter, the XenServer management console, to your XenServer node. .. note:: The ``connection_url`` is generally the management network IP address of the XenServer. Networking configuration ------------------------ The Networking service in the Compute node is running ``neutron-openvswitch-agent``, this manages dom0's OVS. You can refer Networking `openvswitch_agent.ini sample`__ for details, however there are several specific items to look out for. __ https://docs.openstack.org/neutron/latest/configuration/samples/openvswitch-agent.html .. code-block:: ini [agent] minimize_polling = False root_helper_daemon = xenapi_root_helper [ovs] of_listen_address = management_ip_address ovsdb_connection = tcp:your_xenapi_management_ip_address:6640 bridge_mappings = :, ... integration_bridge = br-int [xenapi] connection_url = http://your_xenapi_management_ip_address connection_username = root connection_password = your_pass_word .. note:: The ``ovsdb_connection`` is the connection string for the native OVSDB backend, you need to enable port 6640 in dom0. Agent ----- The agent is a piece of software that runs on the instances, and communicates with OpenStack. In case of the XenAPI driver, the agent communicates with OpenStack through XenStore (see `the Xen Project Wiki `_ for more information on XenStore). If you don't have the guest agent on your VMs, it takes a long time for OpenStack Compute to detect that the VM has successfully started. Generally a large timeout is required for Windows instances, but you may want to adjust: ``agent_version_timeout`` within the ``[xenserver]`` section. VNC proxy address ----------------- Assuming you are talking to XAPI through a management network, and XenServer is on the address: 10.10.1.34 specify the same address for the vnc proxy address: ``server_proxyclient_address=10.10.1.34`` Storage ------- You can specify which Storage Repository to use with nova by editing the following flag. To use the local-storage setup by the default installer: .. code-block:: ini sr_matching_filter = "other-config:i18n-key=local-storage" Another alternative is to use the "default" storage (for example if you have attached NFS or any other shared storage): .. code-block:: ini sr_matching_filter = "default-sr:true" Image upload in TGZ compressed format ------------------------------------- To start uploading ``tgz`` compressed raw disk images to the Image service, configure ``xenapi_image_upload_handler`` by replacing ``GlanceStore`` with ``VdiThroughDevStore``. .. code-block:: ini xenapi_image_upload_handler=nova.virt.xenapi.image.vdi_through_dev.VdiThroughDevStore As opposed to: .. code-block:: ini xenapi_image_upload_handler=nova.virt.xenapi.image.glance.GlanceStore nova-17.0.13/doc/source/admin/configuration/fibre-channel.rst0000664000175000017500000000154213556316250024113 0ustar zuulzuul00000000000000================================= Configuring Fibre Channel Support ================================= Fibre Channel support in OpenStack Compute is remote block storage attached to compute nodes for VMs. .. todo:: This below statement needs to be verified for current release Fibre Channel supported only the KVM hypervisor. Compute and Block Storage support Fibre Channel automatic zoning on Brocade and Cisco switches. On other hardware Fibre Channel arrays must be pre-zoned or directly attached to the KVM hosts. KVM host requirements ~~~~~~~~~~~~~~~~~~~~~ You must install these packages on the KVM host: ``sysfsutils`` Nova uses the ``systool`` application in this package. ``sg3-utils`` or ``sg3_utils`` Nova uses the ``sg_scan`` and ``sginfo`` applications. Installing the ``multipath-tools`` or ``device-mapper-multipath`` package is optional. nova-17.0.13/doc/source/admin/configuration/iscsi-offload.rst0000664000175000017500000000560013556316250024137 0ustar zuulzuul00000000000000=============================================== Configuring iSCSI interface and offload support =============================================== Compute supports open-iscsi iSCSI interfaces for offload cards. Offload hardware must be present and configured on every compute node where offload is desired. Once an open-iscsi interface is configured, the iface name (``iface.iscsi_ifacename``) should be passed to libvirt via the ``iscsi_iface`` parameter for use. All iSCSI sessions will be bound to this iSCSI interface. Currently supported transports (``iface.transport_name``) are ``be2iscsi``, ``bnx2i``, ``cxgb3i``, ``cxgb4i``, ``qla4xxx``, ``ocs``. Configuration changes are required on the compute node only. iSER is supported using the separate iSER LibvirtISERVolumeDriver and will be rejected if used via the ``iscsi_iface`` parameter. iSCSI iface configuration ~~~~~~~~~~~~~~~~~~~~~~~~~ * Note the distinction between the transport name (``iface.transport_name``) and iface name (``iface.iscsi_ifacename``). The actual iface name must be specified via the iscsi_iface parameter to libvirt for offload to work. * The default name for an iSCSI iface (open-iscsi parameter ``iface.iscsi_ifacename``) is in the format transport_name.hwaddress when generated by ``iscsiadm``. * ``iscsiadm`` can be used to view and generate current iface configuration. Every network interface that supports an open-iscsi transport can have one or more iscsi ifaces associated with it. If no ifaces have been configured for a network interface supported by an open-iscsi transport, this command will create a default iface configuration for that network interface. For example : .. code-block:: console # iscsiadm -m iface default tcp,,,, iser iser,,,, bnx2i.00:05:b5:d2:a0:c2 bnx2i,00:05:b5:d2:a0:c2,5.10.10.20,, The output is in the format:: iface_name transport_name,hwaddress,ipaddress,net_ifacename,initiatorname * Individual iface configuration can be viewed via .. code-block:: console # iscsiadm -m iface -I IFACE_NAME # BEGIN RECORD 2.0-873 iface.iscsi_ifacename = cxgb4i.00:07:43:28:b2:58 iface.net_ifacename = iface.ipaddress = 102.50.50.80 iface.hwaddress = 00:07:43:28:b2:58 iface.transport_name = cxgb4i iface.initiatorname = # END RECORD Configuration can be updated as desired via .. code-block:: console # iscsiadm -m iface-I IFACE_NAME--op=update -n iface.SETTING -v VALUE * All iface configurations need a minimum of ``iface.iface_name``, ``iface.transport_name`` and ``iface.hwaddress`` to be correctly configured to work. Some transports may require ``iface.ipaddress`` and ``iface.net_ifacename`` as well to bind correctly. Detailed configuration instructions can be found at http://www.open-iscsi.org/docs/README. nova-17.0.13/doc/source/admin/configuration/index.rst0000664000175000017500000000155413556316250022530 0ustar zuulzuul00000000000000=============== Configuration =============== To configure your Compute installation, you must define configuration options in these files: * ``nova.conf`` contains most of the Compute configuration options and resides in the ``/etc/nova`` directory. * ``api-paste.ini`` defines Compute limits and resides in the ``/etc/nova`` directory. * Configuration files for related services, such as the Image and Identity services. A list of config options based on different topics can be found below: .. toctree:: :maxdepth: 1 /admin/configuration/api.rst /admin/configuration/resize.rst /admin/configuration/fibre-channel.rst /admin/configuration/iscsi-offload.rst /admin/configuration/hypervisors.rst /admin/configuration/schedulers.rst /admin/configuration/cells.rst /admin/configuration/logs.rst /admin/configuration/samples/index.rst nova-17.0.13/doc/source/admin/configuration/hypervisor-virtuozzo.rst0000664000175000017500000000210213556316250025712 0ustar zuulzuul00000000000000========= Virtuozzo ========= Virtuozzo 7.0.0 (or newer), or its community edition OpenVZ, provides both types of virtualization: Kernel Virtual Machines and OS Containers. The type of instance to span is chosen depending on the ``hw_vm_type`` property of an image. .. note:: Some OpenStack Compute features may be missing when running with Virtuozzo as the hypervisor. See :doc:`/user/support-matrix` for details. To enable Virtuozzo Containers, set the following options in ``/etc/nova/nova.conf`` on all hosts running the ``nova-compute`` service. .. code-block:: ini compute_driver = libvirt.LibvirtDriver force_raw_images = False [libvirt] virt_type = parallels images_type = ploop connection_uri = parallels:///system inject_partition = -2 To enable Virtuozzo Virtual Machines, set the following options in ``/etc/nova/nova.conf`` on all hosts running the ``nova-compute`` service. .. code-block:: ini compute_driver = libvirt.LibvirtDriver [libvirt] virt_type = parallels images_type = qcow2 connection_uri = parallels:///system nova-17.0.13/doc/source/admin/configuration/hypervisors.rst0000664000175000017500000000527113556316250024016 0ustar zuulzuul00000000000000=========== Hypervisors =========== .. toctree:: :maxdepth: 1 hypervisor-basics.rst hypervisor-kvm.rst hypervisor-qemu.rst hypervisor-xen-api.rst hypervisor-xen-libvirt.rst hypervisor-lxc.rst hypervisor-vmware.rst hypervisor-hyper-v.rst hypervisor-virtuozzo.rst hypervisor-powervm.rst OpenStack Compute supports many hypervisors, which might make it difficult for you to choose one. Most installations use only one hypervisor. However, you can use :ref:`ComputeFilter` and :ref:`ImagePropertiesFilter` to schedule different hypervisors within the same installation. The following links help you choose a hypervisor. See :doc:`/user/support-matrix` for a detailed list of features and support across the hypervisors. The following hypervisors are supported: * `KVM`_ - Kernel-based Virtual Machine. The virtual disk formats that it supports is inherited from QEMU since it uses a modified QEMU program to launch the virtual machine. The supported formats include raw images, the qcow2, and VMware formats. * `LXC`_ - Linux Containers (through libvirt), used to run Linux-based virtual machines. * `QEMU`_ - Quick EMUlator, generally only used for development purposes. * `VMware vSphere`_ 5.1.0 and newer - Runs VMware-based Linux and Windows images through a connection with a vCenter server. * `Xen (using libvirt) `_ - Xen Project Hypervisor using libvirt as management interface into ``nova-compute`` to run Linux, Windows, FreeBSD and NetBSD virtual machines. * `XenServer`_ - XenServer, Xen Cloud Platform (XCP) and other XAPI based Xen variants runs Linux or Windows virtual machines. You must install the ``nova-compute`` service in a para-virtualized VM. * `Hyper-V`_ - Server virtualization with Microsoft Hyper-V, use to run Windows, Linux, and FreeBSD virtual machines. Runs ``nova-compute`` natively on the Windows virtualization platform. * `Virtuozzo`_ 7.0.0 and newer - OS Containers and Kernel-based Virtual Machines supported via libvirt virt_type=parallels. The supported formats include ploop and qcow2 images. * `PowerVM`_ Server virtualization with IBM PowerVM for AIX, IBM i, and Linux workloads on the Power Systems platform. .. _KVM: http://www.linux-kvm.org/page/Main_Page .. _LXC: https://linuxcontainers.org/ .. _QEMU: http://wiki.qemu.org/Manual .. _VMware vSphere: https://www.vmware.com/support/vsphere-hypervisor .. _Xen: (using libvirt) `_. DRS For any cluster that contains multiple ESX hosts, enable DRS and enable fully automated placement. Shared storage Only shared storage is supported and data stores must be shared among all hosts in a cluster. It is recommended to remove data stores not intended for OpenStack from clusters being configured for OpenStack. Clusters and data stores Do not use OpenStack clusters and data stores for other purposes. If you do, OpenStack displays incorrect usage information. Networking The networking configuration depends on the desired networking model. See :ref:`vmware-networking`. Security groups If you use the VMware driver with OpenStack Networking and the NSX plug-in, security groups are supported. If you use ``nova-network``, security groups are not supported. .. note:: The NSX plug-in is the only plug-in that is validated for vSphere. VNC The port range 5900 - 6105 (inclusive) is automatically enabled for VNC connections on every ESX host in all clusters under OpenStack control. .. note:: In addition to the default VNC port numbers (5900 to 6000) specified in the above document, the following ports are also used: 6101, 6102, and 6105. You must modify the ESXi firewall configuration to allow the VNC ports. Additionally, for the firewall modifications to persist after a reboot, you must create a custom vSphere Installation Bundle (VIB) which is then installed onto the running ESXi host or added to a custom image profile used to install ESXi hosts. For details about how to create a VIB for persisting the firewall configuration modifications, see `Knowledge Base `_. .. note:: The VIB can be downloaded from `openstack-vmwareapi-team/Tools `_. To use multiple vCenter installations with OpenStack, each vCenter must be assigned to a separate availability zone. This is required as the OpenStack Block Storage VMDK driver does not currently work across multiple vCenter installations. VMware vCenter service account ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ OpenStack integration requires a vCenter service account with the following minimum permissions. Apply the permissions to the ``Datacenter`` root object, and select the :guilabel:`Propagate to Child Objects` option. .. list-table:: vCenter permissions tree :header-rows: 1 :widths: 12, 12, 40, 36 * - All Privileges - - - * - - Datastore - - * - - - Allocate space - * - - - Browse datastore - * - - - Low level file operation - * - - - Remove file - * - - Extension - - * - - - Register extension - * - - Folder - - * - - - Create folder - * - - Host - - * - - - Configuration - * - - - - Maintenance * - - - - Network configuration * - - - - Storage partition configuration * - - Network - - * - - - Assign network - * - - Resource - - * - - - Assign virtual machine to resource pool - * - - - Migrate powered off virtual machine - * - - - Migrate powered on virtual machine - * - - Virtual Machine - - * - - - Configuration - * - - - - Add existing disk * - - - - Add new disk * - - - - Add or remove device * - - - - Advanced * - - - - CPU count * - - - - Change resource * - - - - Disk change tracking * - - - - Host USB device * - - - - Memory * - - - - Modify device settings * - - - - Raw device * - - - - Remove disk * - - - - Rename * - - - - Set annotation * - - - - Swapfile placement * - - - Interaction - * - - - - Configure CD media * - - - - Power Off * - - - - Power On * - - - - Reset * - - - - Suspend * - - - Inventory - * - - - - Create from existing * - - - - Create new * - - - - Move * - - - - Remove * - - - - Unregister * - - - Provisioning - * - - - - Clone virtual machine * - - - - Customize * - - - - Create template from virtual machine * - - - Snapshot management - * - - - - Create snapshot * - - - - Remove snapshot * - - Sessions - - * - - - - Validate session * - - - - View and stop sessions * - - vApp - - * - - - Export - * - - - Import - .. _vmware-vcdriver: VMware vCenter driver ~~~~~~~~~~~~~~~~~~~~~ Use the VMware vCenter driver (VMwareVCDriver) to connect OpenStack Compute with vCenter. This recommended configuration enables access through vCenter to advanced vSphere features like vMotion, High Availability, and Dynamic Resource Scheduling (DRS). VMwareVCDriver configuration options ------------------------------------ Add the following VMware-specific configuration options to the ``nova.conf`` file: .. code-block:: ini [DEFAULT] compute_driver = vmwareapi.VMwareVCDriver [vmware] host_ip = host_username = host_password = cluster_name = datastore_regex = .. note:: * Clusters: The vCenter driver can support only a single cluster. Clusters and data stores used by the vCenter driver should not contain any VMs other than those created by the driver. * Data stores: The ``datastore_regex`` setting specifies the data stores to use with Compute. For example, ``datastore_regex="nas.*"`` selects all the data stores that have a name starting with "nas". If this line is omitted, Compute uses the first data store returned by the vSphere API. It is recommended not to use this field and instead remove data stores that are not intended for OpenStack. * Reserved host memory: The ``reserved_host_memory_mb`` option value is 512 MB by default. However, VMware recommends that you set this option to 0 MB because the vCenter driver reports the effective memory available to the virtual machines. * The vCenter driver generates instance name by instance ID. Instance name template is ignored. * The minimum supported vCenter version is 5.5.0. Starting in the OpenStack Ocata release any version lower than 5.5.0 will be logged as a warning. In the OpenStack Pike release this will be enforced. A ``nova-compute`` service can control one or more clusters containing multiple ESXi hosts, making ``nova-compute`` a critical service from a high availability perspective. Because the host that runs ``nova-compute`` can fail while the vCenter and ESX still run, you must protect the ``nova-compute`` service against host failures. .. note:: Many ``nova.conf`` options are relevant to libvirt but do not apply to this driver. .. _vmware-images: Images with VMware vSphere ~~~~~~~~~~~~~~~~~~~~~~~~~~ The vCenter driver supports images in the VMDK format. Disks in this format can be obtained from VMware Fusion or from an ESX environment. It is also possible to convert other formats, such as qcow2, to the VMDK format using the ``qemu-img`` utility. After a VMDK disk is available, load it into the Image service. Then, you can use it with the VMware vCenter driver. The following sections provide additional details on the supported disks and the commands used for conversion and upload. Supported image types --------------------- Upload images to the OpenStack Image service in VMDK format. The following VMDK disk types are supported: * ``VMFS Flat Disks`` (includes thin, thick, zeroedthick, and eagerzeroedthick). Note that once a VMFS thin disk is exported from VMFS to a non-VMFS location, like the OpenStack Image service, it becomes a preallocated flat disk. This impacts the transfer time from the Image service to the data store when the full preallocated flat disk, rather than the thin disk, must be transferred. * ``Monolithic Sparse disks``. Sparse disks get imported from the Image service into ESXi as thin provisioned disks. Monolithic Sparse disks can be obtained from VMware Fusion or can be created by converting from other virtual disk formats using the ``qemu-img`` utility. * ``Stream-optimized disks``. Stream-optimized disks are compressed sparse disks. They can be obtained from VMware vCenter/ESXi when exporting vm to ovf/ova template. The following table shows the ``vmware_disktype`` property that applies to each of the supported VMDK disk types: .. list-table:: OpenStack Image service disk type settings :header-rows: 1 * - vmware_disktype property - VMDK disk type * - sparse - Monolithic Sparse * - thin - VMFS flat, thin provisioned * - preallocated (default) - VMFS flat, thick/zeroedthick/eagerzeroedthick * - streamOptimized - Compressed Sparse The ``vmware_disktype`` property is set when an image is loaded into the Image service. For example, the following command creates a Monolithic Sparse image by setting ``vmware_disktype`` to ``sparse``: .. code-block:: console $ openstack image create \ --disk-format vmdk \ --container-format bare \ --property vmware_disktype="sparse" \ --property vmware_ostype="ubuntu64Guest" \ ubuntu-sparse < ubuntuLTS-sparse.vmdk .. note:: Specifying ``thin`` does not provide any advantage over ``preallocated`` with the current version of the driver. Future versions might restore the thin properties of the disk after it is downloaded to a vSphere data store. The following table shows the ``vmware_ostype`` property that applies to each of the supported guest OS: .. note:: If a glance image has a ``vmware_ostype`` property which does not correspond to a valid VMware guestId, VM creation will fail, and a warning will be logged. .. list-table:: OpenStack Image service OS type settings :header-rows: 1 * - vmware_ostype property - Retail Name * - asianux3_64Guest - Asianux Server 3 (64 bit) * - asianux3Guest - Asianux Server 3 * - asianux4_64Guest - Asianux Server 4 (64 bit) * - asianux4Guest - Asianux Server 4 * - darwin64Guest - Darwin 64 bit * - darwinGuest - Darwin * - debian4_64Guest - Debian GNU/Linux 4 (64 bit) * - debian4Guest - Debian GNU/Linux 4 * - debian5_64Guest - Debian GNU/Linux 5 (64 bit) * - debian5Guest - Debian GNU/Linux 5 * - dosGuest - MS-DOS * - freebsd64Guest - FreeBSD x64 * - freebsdGuest - FreeBSD * - mandrivaGuest - Mandriva Linux * - netware4Guest - Novell NetWare 4 * - netware5Guest - Novell NetWare 5.1 * - netware6Guest - Novell NetWare 6.x * - nld9Guest - Novell Linux Desktop 9 * - oesGuest - Open Enterprise Server * - openServer5Guest - SCO OpenServer 5 * - openServer6Guest - SCO OpenServer 6 * - opensuse64Guest - openSUSE (64 bit) * - opensuseGuest - openSUSE * - os2Guest - OS/2 * - other24xLinux64Guest - Linux 2.4x Kernel (64 bit) (experimental) * - other24xLinuxGuest - Linux 2.4x Kernel * - other26xLinux64Guest - Linux 2.6x Kernel (64 bit) (experimental) * - other26xLinuxGuest - Linux 2.6x Kernel (experimental) * - otherGuest - Other Operating System * - otherGuest64 - Other Operating System (64 bit) (experimental) * - otherLinux64Guest - Linux (64 bit) (experimental) * - otherLinuxGuest - Other Linux * - redhatGuest - Red Hat Linux 2.1 * - rhel2Guest - Red Hat Enterprise Linux 2 * - rhel3_64Guest - Red Hat Enterprise Linux 3 (64 bit) * - rhel3Guest - Red Hat Enterprise Linux 3 * - rhel4_64Guest - Red Hat Enterprise Linux 4 (64 bit) * - rhel4Guest - Red Hat Enterprise Linux 4 * - rhel5_64Guest - Red Hat Enterprise Linux 5 (64 bit) (experimental) * - rhel5Guest - Red Hat Enterprise Linux 5 * - rhel6_64Guest - Red Hat Enterprise Linux 6 (64 bit) * - rhel6Guest - Red Hat Enterprise Linux 6 * - sjdsGuest - Sun Java Desktop System * - sles10_64Guest - SUSE Linux Enterprise Server 10 (64 bit) (experimental) * - sles10Guest - SUSE Linux Enterprise Server 10 * - sles11_64Guest - SUSE Linux Enterprise Server 11 (64 bit) * - sles11Guest - SUSE Linux Enterprise Server 11 * - sles64Guest - SUSE Linux Enterprise Server 9 (64 bit) * - slesGuest - SUSE Linux Enterprise Server 9 * - solaris10_64Guest - Solaris 10 (64 bit) (experimental) * - solaris10Guest - Solaris 10 (32 bit) (experimental) * - solaris6Guest - Solaris 6 * - solaris7Guest - Solaris 7 * - solaris8Guest - Solaris 8 * - solaris9Guest - Solaris 9 * - suse64Guest - SUSE Linux (64 bit) * - suseGuest - SUSE Linux * - turboLinux64Guest - Turbolinux (64 bit) * - turboLinuxGuest - Turbolinux * - ubuntu64Guest - Ubuntu Linux (64 bit) * - ubuntuGuest - Ubuntu Linux * - unixWare7Guest - SCO UnixWare 7 * - win2000AdvServGuest - Windows 2000 Advanced Server * - win2000ProGuest - Windows 2000 Professional * - win2000ServGuest - Windows 2000 Server * - win31Guest - Windows 3.1 * - win95Guest - Windows 95 * - win98Guest - Windows 98 * - windows7_64Guest - Windows 7 (64 bit) * - windows7Guest - Windows 7 * - windows7Server64Guest - Windows Server 2008 R2 (64 bit) * - winLonghorn64Guest - Windows Longhorn (64 bit) (experimental) * - winLonghornGuest - Windows Longhorn (experimental) * - winMeGuest - Windows Millennium Edition * - winNetBusinessGuest - Windows Small Business Server 2003 * - winNetDatacenter64Guest - Windows Server 2003, Datacenter Edition (64 bit) (experimental) * - winNetDatacenterGuest - Windows Server 2003, Datacenter Edition * - winNetEnterprise64Guest - Windows Server 2003, Enterprise Edition (64 bit) * - winNetEnterpriseGuest - Windows Server 2003, Enterprise Edition * - winNetStandard64Guest - Windows Server 2003, Standard Edition (64 bit) * - winNetEnterpriseGuest - Windows Server 2003, Enterprise Edition * - winNetStandard64Guest - Windows Server 2003, Standard Edition (64 bit) * - winNetStandardGuest - Windows Server 2003, Standard Edition * - winNetWebGuest - Windows Server 2003, Web Edition * - winNTGuest - Windows NT 4 * - winVista64Guest - Windows Vista (64 bit) * - winVistaGuest - Windows Vista * - winXPHomeGuest - Windows XP Home Edition * - winXPPro64Guest - Windows XP Professional Edition (64 bit) * - winXPProGuest - Windows XP Professional Convert and load images ----------------------- Using the ``qemu-img`` utility, disk images in several formats (such as, qcow2) can be converted to the VMDK format. For example, the following command can be used to convert a `qcow2 Ubuntu Trusty cloud image `_: .. code-block:: console $ qemu-img convert -f qcow2 ~/Downloads/trusty-server-cloudimg-amd64-disk1.img \ -O vmdk trusty-server-cloudimg-amd64-disk1.vmdk VMDK disks converted through ``qemu-img`` are ``always`` monolithic sparse VMDK disks with an IDE adapter type. Using the previous example of the Ubuntu Trusty image after the ``qemu-img`` conversion, the command to upload the VMDK disk should be something like: .. code-block:: console $ openstack image create \ --container-format bare --disk-format vmdk \ --property vmware_disktype="sparse" \ --property vmware_adaptertype="ide" \ trusty-cloud < trusty-server-cloudimg-amd64-disk1.vmdk Note that the ``vmware_disktype`` is set to ``sparse`` and the ``vmware_adaptertype`` is set to ``ide`` in the previous command. If the image did not come from the ``qemu-img`` utility, the ``vmware_disktype`` and ``vmware_adaptertype`` might be different. To determine the image adapter type from an image file, use the following command and look for the ``ddb.adapterType=`` line: .. code-block:: console $ head -20 Assuming a preallocated disk type and an iSCSI lsiLogic adapter type, the following command uploads the VMDK disk: .. code-block:: console $ openstack image create \ --disk-format vmdk \ --container-format bare \ --property vmware_adaptertype="lsiLogic" \ --property vmware_disktype="preallocated" \ --property vmware_ostype="ubuntu64Guest" \ ubuntu-thick-scsi < ubuntuLTS-flat.vmdk Currently, OS boot VMDK disks with an IDE adapter type cannot be attached to a virtual SCSI controller and likewise disks with one of the SCSI adapter types (such as, busLogic, lsiLogic, lsiLogicsas, paraVirtual) cannot be attached to the IDE controller. Therefore, as the previous examples show, it is important to set the ``vmware_adaptertype`` property correctly. The default adapter type is lsiLogic, which is SCSI, so you can omit the ``vmware_adaptertype`` property if you are certain that the image adapter type is lsiLogic. Tag VMware images ----------------- In a mixed hypervisor environment, OpenStack Compute uses the ``hypervisor_type`` tag to match images to the correct hypervisor type. For VMware images, set the hypervisor type to ``vmware``. Other valid hypervisor types include: ``hyperv``, ``ironic``, ``lxc``, ``qemu``, ``uml``, and ``xen``. Note that ``qemu`` is used for both QEMU and KVM hypervisor types. .. code-block:: console $ openstack image create \ --disk-format vmdk \ --container-format bare \ --property vmware_adaptertype="lsiLogic" \ --property vmware_disktype="preallocated" \ --property hypervisor_type="vmware" \ --property vmware_ostype="ubuntu64Guest" \ ubuntu-thick-scsi < ubuntuLTS-flat.vmdk Optimize images --------------- Monolithic Sparse disks are considerably faster to download but have the overhead of an additional conversion step. When imported into ESX, sparse disks get converted to VMFS flat thin provisioned disks. The download and conversion steps only affect the first launched instance that uses the sparse disk image. The converted disk image is cached, so subsequent instances that use this disk image can simply use the cached version. To avoid the conversion step (at the cost of longer download times) consider converting sparse disks to thin provisioned or preallocated disks before loading them into the Image service. Use one of the following tools to pre-convert sparse disks. vSphere CLI tools Sometimes called the remote CLI or rCLI. Assuming that the sparse disk is made available on a data store accessible by an ESX host, the following command converts it to preallocated format: .. code-block:: console vmkfstools --server=ip_of_some_ESX_host -i \ /vmfs/volumes/datastore1/sparse.vmdk \ /vmfs/volumes/datastore1/converted.vmdk Note that the vifs tool from the same CLI package can be used to upload the disk to be converted. The vifs tool can also be used to download the converted disk if necessary. ``vmkfstools`` directly on the ESX host If the SSH service is enabled on an ESX host, the sparse disk can be uploaded to the ESX data store through scp and the vmkfstools local to the ESX host can use used to perform the conversion. After you log in to the host through ssh, run this command: .. code-block:: console vmkfstools -i /vmfs/volumes/datastore1/sparse.vmdk /vmfs/volumes/datastore1/converted.vmdk ``vmware-vdiskmanager`` ``vmware-vdiskmanager`` is a utility that comes bundled with VMware Fusion and VMware Workstation. The following example converts a sparse disk to preallocated format: .. code-block:: console '/Applications/VMware Fusion.app/Contents/Library/vmware-vdiskmanager' -r sparse.vmdk -t 4 converted.vmdk In the previous cases, the converted vmdk is actually a pair of files: * The descriptor file ``converted.vmdk``. * The actual virtual disk data file ``converted-flat.vmdk``. The file to be uploaded to the Image service is ``converted-flat.vmdk``. Image handling -------------- The ESX hypervisor requires a copy of the VMDK file in order to boot up a virtual machine. As a result, the vCenter OpenStack Compute driver must download the VMDK via HTTP from the Image service to a data store that is visible to the hypervisor. To optimize this process, the first time a VMDK file is used, it gets cached in the data store. A cached image is stored in a folder named after the image ID. Subsequent virtual machines that need the VMDK use the cached version and don't have to copy the file again from the Image service. Even with a cached VMDK, there is still a copy operation from the cache location to the hypervisor file directory in the shared data store. To avoid this copy, boot the image in linked_clone mode. To learn how to enable this mode, see :ref:`vmware-config`. .. note:: You can also use the ``img_linked_clone`` property (or legacy property ``vmware_linked_clone``) in the Image service to override the linked_clone mode on a per-image basis. If spawning a virtual machine image from ISO with a VMDK disk, the image is created and attached to the virtual machine as a blank disk. In that case ``img_linked_clone`` property for the image is just ignored. If multiple compute nodes are running on the same host, or have a shared file system, you can enable them to use the same cache folder on the back-end data store. To configure this action, set the ``cache_prefix`` option in the ``nova.conf`` file. Its value stands for the name prefix of the folder where cached images are stored. .. note:: This can take effect only if compute nodes are running on the same host, or have a shared file system. You can automatically purge unused images after a specified period of time. To configure this action, set these options in the ``DEFAULT`` section in the ``nova.conf`` file: ``remove_unused_base_images`` Set this option to ``True`` to specify that unused images should be removed after the duration specified in the ``remove_unused_original_minimum_age_seconds`` option. The default is ``True``. ``remove_unused_original_minimum_age_seconds`` Specifies the duration in seconds after which an unused image is purged from the cache. The default is ``86400`` (24 hours). .. _vmware-networking: Networking with VMware vSphere ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The VMware driver supports networking with the ``nova-network`` service or the Networking Service. Depending on your installation, complete these configuration steps before you provision VMs: #. **The nova-network service with the FlatManager or FlatDHCPManager**. Create a port group with the same name as the ``flat_network_bridge`` value in the ``nova.conf`` file. The default value is ``br100``. If you specify another value, the new value must be a valid Linux bridge identifier that adheres to Linux bridge naming conventions. All VM NICs are attached to this port group. Ensure that the flat interface of the node that runs the ``nova-network`` service has a path to this network. .. note:: When configuring the port binding for this port group in vCenter, specify ``ephemeral`` for the port binding type. For more information, see `Choosing a port binding type in ESX/ESXi `_ in the VMware Knowledge Base. #. **The nova-network service with the VlanManager**. Set the ``vlan_interface`` configuration option to match the ESX host interface that handles VLAN-tagged VM traffic. OpenStack Compute automatically creates the corresponding port groups. #. If you are using the OpenStack Networking Service: Before provisioning VMs, create a port group with the same name as the ``vmware.integration_bridge`` value in ``nova.conf`` (default is ``br-int``). All VM NICs are attached to this port group for management by the OpenStack Networking plug-in. Volumes with VMware vSphere ~~~~~~~~~~~~~~~~~~~~~~~~~~~ The VMware driver supports attaching volumes from the Block Storage service. The VMware VMDK driver for OpenStack Block Storage is recommended and should be used for managing volumes based on vSphere data stores. For more information about the VMware VMDK driver, see Cinder's manual on the VMDK Driver (TODO: this has not yet been imported and published). Also an iSCSI volume driver provides limited support and can be used only for attachments. .. _vmware-config: Configuration reference ~~~~~~~~~~~~~~~~~~~~~~~ To customize the VMware driver, use the configuration option settings below. .. TODO(sdague): for the import we just copied this in from the auto generated file. We probably need a strategy for doing equivalent autogeneration, but we don't as of yet. Warning: Do not edit this file. It is automatically generated from the software project's code and your changes will be overwritten. The tool to generate this file lives in openstack-doc-tools repository. Please make any changes needed in the code, then run the autogenerate-config-doc tool from the openstack-doc-tools repository, or ask for help on the documentation mailing list, IRC channel or meeting. .. _nova-vmware: .. list-table:: Description of VMware configuration options :header-rows: 1 :class: config-ref-table * - Configuration option = Default value - Description * - **[vmware]** - * - ``api_retry_count`` = ``10`` - (Integer) Number of times VMware vCenter server API must be retried on connection failures, e.g. socket error, etc. * - ``ca_file`` = ``None`` - (String) Specifies the CA bundle file to be used in verifying the vCenter server certificate. * - ``cache_prefix`` = ``None`` - (String) This option adds a prefix to the folder where cached images are stored This is not the full path - just a folder prefix. This should only be used when a datastore cache is shared between compute nodes. .. note:: This should only be used when the compute nodes are running on same host or they have a shared file system. Possible values: * Any string representing the cache prefix to the folder * - ``cluster_name`` = ``None`` - (String) Name of a VMware Cluster ComputeResource. * - ``console_delay_seconds`` = ``None`` - (Integer) Set this value if affected by an increased network latency causing repeated characters when typing in a remote console. * - ``datastore_regex`` = ``None`` - (String) Regular expression pattern to match the name of datastore. The datastore_regex setting specifies the datastores to use with Compute. For example, datastore_regex="nas.*" selects all the data stores that have a name starting with "nas". .. note:: If no regex is given, it just picks the datastore with the most freespace. Possible values: * Any matching regular expression to a datastore must be given * - ``host_ip`` = ``None`` - (String) Hostname or IP address for connection to VMware vCenter host. * - ``host_password`` = ``None`` - (String) Password for connection to VMware vCenter host. * - ``host_port`` = ``443`` - (Port number) Port for connection to VMware vCenter host. * - ``host_username`` = ``None`` - (String) Username for connection to VMware vCenter host. * - ``insecure`` = ``False`` - (Boolean) If true, the vCenter server certificate is not verified. If false, then the default CA truststore is used for verification. Related options: * ca_file: This option is ignored if "ca_file" is set. * - ``integration_bridge`` = ``None`` - (String) This option should be configured only when using the NSX-MH Neutron plugin. This is the name of the integration bridge on the ESXi server or host. This should not be set for any other Neutron plugin. Hence the default value is not set. Possible values: * Any valid string representing the name of the integration bridge * - ``maximum_objects`` = ``100`` - (Integer) This option specifies the limit on the maximum number of objects to return in a single result. A positive value will cause the operation to suspend the retrieval when the count of objects reaches the specified limit. The server may still limit the count to something less than the configured value. Any remaining objects may be retrieved with additional requests. * - ``pbm_default_policy`` = ``None`` - (String) This option specifies the default policy to be used. If pbm_enabled is set and there is no defined storage policy for the specific request, then this policy will be used. Possible values: * Any valid storage policy such as VSAN default storage policy Related options: * pbm_enabled * - ``pbm_enabled`` = ``False`` - (Boolean) This option enables or disables storage policy based placement of instances. Related options: * pbm_default_policy * - ``pbm_wsdl_location`` = ``None`` - (String) This option specifies the PBM service WSDL file location URL. Setting this will disable storage policy based placement of instances. Possible values: * Any valid file path e.g file:///opt/SDK/spbm/wsdl/pbmService.wsdl * - ``serial_port_proxy_uri`` = ``None`` - (String) Identifies a proxy service that provides network access to the serial_port_service_uri. Possible values: * Any valid URI Related options: This option is ignored if serial_port_service_uri is not specified. * serial_port_service_uri * - ``serial_port_service_uri`` = ``None`` - (String) Identifies the remote system where the serial port traffic will be sent. This option adds a virtual serial port which sends console output to a configurable service URI. At the service URI address there will be virtual serial port concentrator that will collect console logs. If this is not set, no serial ports will be added to the created VMs. Possible values: * Any valid URI * - ``task_poll_interval`` = ``0.5`` - (Floating point) Time interval in seconds to poll remote tasks invoked on VMware VC server. * - ``use_linked_clone`` = ``True`` - (Boolean) This option enables/disables the use of linked clone. The ESX hypervisor requires a copy of the VMDK file in order to boot up a virtual machine. The compute driver must download the VMDK via HTTP from the OpenStack Image service to a datastore that is visible to the hypervisor and cache it. Subsequent virtual machines that need the VMDK use the cached version and don't have to copy the file again from the OpenStack Image service. If set to false, even with a cached VMDK, there is still a copy operation from the cache location to the hypervisor file directory in the shared datastore. If set to true, the above copy operation is avoided as it creates copy of the virtual machine that shares virtual disks with its parent VM. * - ``wsdl_location`` = ``None`` - (String) This option specifies VIM Service WSDL Location If vSphere API versions 5.1 and later is being used, this section can be ignored. If version is less than 5.1, WSDL files must be hosted locally and their location must be specified in the above section. Optional over-ride to default location for bug work-arounds. Possible values: * http:///vimService.wsdl * file:///opt/stack/vmware/SDK/wsdl/vim25/vimService.wsdl nova-17.0.13/doc/source/admin/configuration/hypervisor-lxc.rst0000664000175000017500000000310013556316250024404 0ustar zuulzuul00000000000000====================== LXC (Linux containers) ====================== LXC (also known as Linux containers) is a virtualization technology that works at the operating system level. This is different from hardware virtualization, the approach used by other hypervisors such as KVM, Xen, and VMware. LXC (as currently implemented using libvirt in the Compute service) is not a secure virtualization technology for multi-tenant environments (specifically, containers may affect resource quotas for other containers hosted on the same machine). Additional containment technologies, such as AppArmor, may be used to provide better isolation between containers, although this is not the case by default. For all these reasons, the choice of this virtualization technology is not recommended in production. If your compute hosts do not have hardware support for virtualization, LXC will likely provide better performance than QEMU. In addition, if your guests must access specialized hardware, such as GPUs, this might be easier to achieve with LXC than other hypervisors. .. note:: Some OpenStack Compute features might be missing when running with LXC as the hypervisor. See the `hypervisor support matrix `_ for details. To enable LXC, ensure the following options are set in ``/etc/nova/nova.conf`` on all hosts running the ``nova-compute`` service. .. code-block:: ini compute_driver = libvirt.LibvirtDriver [libvirt] virt_type = lxc On Ubuntu, enable LXC support in OpenStack by installing the ``nova-compute-lxc`` package. nova-17.0.13/doc/source/admin/configuration/logs.rst0000664000175000017500000000272013556316250022361 0ustar zuulzuul00000000000000================= Compute log files ================= The corresponding log file of each Compute service is stored in the ``/var/log/nova/`` directory of the host on which each service runs. .. list-table:: Log files used by Compute services :widths: 35 35 30 :header-rows: 1 * - Log file - Service name (CentOS/Fedora/openSUSE/Red Hat Enterprise Linux/SUSE Linux Enterprise) - Service name (Ubuntu/Debian) * - ``nova-api.log`` - ``openstack-nova-api`` - ``nova-api`` * - ``nova-cert.log`` [#a]_ - ``openstack-nova-cert`` - ``nova-cert`` * - ``nova-compute.log`` - ``openstack-nova-compute`` - ``nova-compute`` * - ``nova-conductor.log`` - ``openstack-nova-conductor`` - ``nova-conductor`` * - ``nova-consoleauth.log`` - ``openstack-nova-consoleauth`` - ``nova-consoleauth`` * - ``nova-network.log`` [#b]_ - ``openstack-nova-network`` - ``nova-network`` * - ``nova-manage.log`` - ``nova-manage`` - ``nova-manage`` * - ``nova-scheduler.log`` - ``openstack-nova-scheduler`` - ``nova-scheduler`` .. rubric:: Footnotes .. [#a] The X509 certificate service (``openstack-nova-cert``/``nova-cert``) is only required by the EC2 API to the Compute service. .. [#b] The ``nova`` network service (``openstack-nova-network``/ ``nova-network``) only runs in deployments that are not configured to use the Networking service (``neutron``). nova-17.0.13/doc/source/admin/configuration/api.rst0000664000175000017500000000226513556316250022172 0ustar zuulzuul00000000000000========================= Compute API configuration ========================= The Compute API, run by the ``nova-api`` daemon, is the component of OpenStack Compute that receives and responds to user requests, whether they be direct API calls, or via the CLI tools or dashboard. Configure Compute API password handling ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The OpenStack Compute API enables users to specify an administrative password when they create or rebuild a server instance. If the user does not specify a password, a random password is generated and returned in the API response. In practice, how the admin password is handled depends on the hypervisor in use and might require additional configuration of the instance. For example, you might have to install an agent to handle the password setting. If the hypervisor and instance configuration do not support setting a password at server create time, the password that is returned by the create API call is misleading because it was ignored. To prevent this confusion, use the ``enable_instance_password`` configuration option to disable the return of the admin password for installations that do not support setting instance passwords. nova-17.0.13/doc/source/admin/configuration/hypervisor-hyper-v.rst0000664000175000017500000003571113556316250025225 0ustar zuulzuul00000000000000=============================== Hyper-V virtualization platform =============================== .. todo:: This is really installation guide material and should probably be moved. It is possible to use Hyper-V as a compute node within an OpenStack Deployment. The ``nova-compute`` service runs as ``openstack-compute``, a 32-bit service directly upon the Windows platform with the Hyper-V role enabled. The necessary Python components as well as the ``nova-compute`` service are installed directly onto the Windows platform. Windows Clustering Services are not needed for functionality within the OpenStack infrastructure. The use of the Windows Server 2012 platform is recommend for the best experience and is the platform for active development. The following Windows platforms have been tested as compute nodes: - Windows Server 2012 - Windows Server 2012 R2 Server and Core (with the Hyper-V role enabled) - Hyper-V Server Hyper-V configuration ~~~~~~~~~~~~~~~~~~~~~ The only OpenStack services required on a Hyper-V node are ``nova-compute`` and ``neutron-hyperv-agent``. Regarding the resources needed for this host you have to consider that Hyper-V will require 16 GB - 20 GB of disk space for the OS itself, including updates. Two NICs are required, one connected to the management network and one to the guest data network. The following sections discuss how to prepare the Windows Hyper-V node for operation as an OpenStack compute node. Unless stated otherwise, any configuration information should work for the Windows 2012 and 2012 R2 platforms. Local storage considerations ---------------------------- The Hyper-V compute node needs to have ample storage for storing the virtual machine images running on the compute nodes. You may use a single volume for all, or partition it into an OS volume and VM volume. .. _configure-ntp-windows: Configure NTP ------------- Network time services must be configured to ensure proper operation of the OpenStack nodes. To set network time on your Windows host you must run the following commands: .. code-block:: bat C:\>net stop w32time C:\>w32tm /config /manualpeerlist:pool.ntp.org,0x8 /syncfromflags:MANUAL C:\>net start w32time Keep in mind that the node will have to be time synchronized with the other nodes of your OpenStack environment, so it is important to use the same NTP server. Note that in case of an Active Directory environment, you may do this only for the AD Domain Controller. Configure Hyper-V virtual switching ----------------------------------- Information regarding the Hyper-V virtual Switch can be found in the `Hyper-V Virtual Switch Overview`__. To quickly enable an interface to be used as a Virtual Interface the following PowerShell may be used: .. code-block:: none PS C:\> $if = Get-NetIPAddress -IPAddress 192* | Get-NetIPInterface PS C:\> New-VMSwitch -NetAdapterName $if.ifAlias -Name YOUR_BRIDGE_NAME -AllowManagementOS $false .. note:: It is very important to make sure that when you are using a Hyper-V node with only 1 NIC the -AllowManagementOS option is set on ``True``, otherwise you will lose connectivity to the Hyper-V node. __ https://technet.microsoft.com/en-us/library/hh831823.aspx Enable iSCSI initiator service ------------------------------ To prepare the Hyper-V node to be able to attach to volumes provided by cinder you must first make sure the Windows iSCSI initiator service is running and started automatically. .. code-block:: none PS C:\> Set-Service -Name MSiSCSI -StartupType Automatic PS C:\> Start-Service MSiSCSI Configure shared nothing live migration --------------------------------------- Detailed information on the configuration of live migration can be found in `this guide`__ The following outlines the steps of shared nothing live migration. #. The target host ensures that live migration is enabled and properly configured in Hyper-V. #. The target host checks if the image to be migrated requires a base VHD and pulls it from the Image service if not already available on the target host. #. The source host ensures that live migration is enabled and properly configured in Hyper-V. #. The source host initiates a Hyper-V live migration. #. The source host communicates to the manager the outcome of the operation. The following three configuration options are needed in order to support Hyper-V live migration and must be added to your ``nova.conf`` on the Hyper-V compute node: * This is needed to support shared nothing Hyper-V live migrations. It is used in ``nova/compute/manager.py``. .. code-block:: ini instances_shared_storage = False * This flag is needed to support live migration to hosts with different CPU features. This flag is checked during instance creation in order to limit the CPU features used by the VM. .. code-block:: ini limit_cpu_features = True * This option is used to specify where instances are stored on disk. .. code-block:: ini instances_path = DRIVELETTER:\PATH\TO\YOUR\INSTANCES Additional Requirements: * Hyper-V 2012 R2 or Windows Server 2012 R2 with Hyper-V role enabled * A Windows domain controller with the Hyper-V compute nodes as domain members * The instances_path command-line option/flag needs to be the same on all hosts * The ``openstack-compute`` service deployed with the setup must run with domain credentials. You can set the service credentials with: .. code-block:: bat C:\>sc config openstack-compute obj="DOMAIN\username" password="password" __ https://docs.microsoft.com/en-us/windows-server/virtualization/hyper-v/manage/Use-live-migration-without-Failover-Clustering-to-move-a-virtual-machine How to setup live migration on Hyper-V -------------------------------------- To enable 'shared nothing live' migration, run the 3 instructions below on each Hyper-V host: .. code-block:: none PS C:\> Enable-VMMigration PS C:\> Set-VMMigrationNetwork IP_ADDRESS PS C:\> Set-VMHost -VirtualMachineMigrationAuthenticationTypeKerberos .. note:: Replace the ``IP_ADDRESS`` with the address of the interface which will provide live migration. Additional Reading ------------------ This article clarifies the various live migration options in Hyper-V: `Hyper-V Live Migration of Yesterday `_ Install nova-compute using OpenStack Hyper-V installer ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In case you want to avoid all the manual setup, you can use Cloudbase Solutions' installer. You can find it here: `HyperVNovaCompute_Beta download `_ The tool installs an independent Python environment in order to avoid conflicts with existing applications, and dynamically generates a ``nova.conf`` file based on the parameters provided by you. The tool can also be used for an automated and unattended mode for deployments on a massive number of servers. More details about how to use the installer and its features can be found here: `Cloudbase `_ .. _windows-requirements: Requirements ~~~~~~~~~~~~ Python ------ Python 2.7 32bit must be installed as most of the libraries are not working properly on the 64bit version. **Setting up Python prerequisites** #. Download and install Python 2.7 using the MSI installer from here: `python-2.7.3.msi download `_ .. code-block:: none PS C:\> $src = "https://www.python.org/ftp/python/2.7.3/python-2.7.3.msi" PS C:\> $dest = "$env:temp\python-2.7.3.msi" PS C:\> Invoke-WebRequest –Uri $src –OutFile $dest PS C:\> Unblock-File $dest PS C:\> Start-Process $dest #. Make sure that the ``Python`` and ``Python\Scripts`` paths are set up in the ``PATH`` environment variable. .. code-block:: none PS C:\> $oldPath = [System.Environment]::GetEnvironmentVariable("Path") PS C:\> $newPath = $oldPath + ";C:\python27\;C:\python27\Scripts\" PS C:\> [System.Environment]::SetEnvironmentVariable("Path", $newPath, [System.EnvironmentVariableTarget]::User Python dependencies ------------------- The following packages need to be downloaded and manually installed: ``setuptools`` https://pypi.python.org/packages/2.7/s/setuptools/setuptools-0.6c11.win32-py2.7.exe ``pip`` https://pip.pypa.io/en/latest/installing/ ``PyMySQL`` http://codegood.com/download/10/ ``PyWin32`` https://sourceforge.net/projects/pywin32/files/pywin32/Build%20217/pywin32-217.win32-py2.7.exe ``Greenlet`` http://www.lfd.uci.edu/~gohlke/pythonlibs/#greenlet ``PyCryto`` http://www.voidspace.org.uk/downloads/pycrypto26/pycrypto-2.6.win32-py2.7.exe The following packages must be installed with pip: * ``ecdsa`` * ``amqp`` * ``wmi`` .. code-block:: none PS C:\> pip install ecdsa PS C:\> pip install amqp PS C:\> pip install wmi Other dependencies ------------------ ``qemu-img`` is required for some of the image related operations. You can get it from here: http://qemu.weilnetz.de/. You must make sure that the ``qemu-img`` path is set in the PATH environment variable. Some Python packages need to be compiled, so you may use MinGW or Visual Studio. You can get MinGW from here: http://sourceforge.net/projects/mingw/. You must configure which compiler is to be used for this purpose by using the ``distutils.cfg`` file in ``$Python27\Lib\distutils``, which can contain: .. code-block:: ini [build] compiler = mingw32 As a last step for setting up MinGW, make sure that the MinGW binaries' directories are set up in PATH. Install nova-compute ~~~~~~~~~~~~~~~~~~~~ Download the nova code ---------------------- #. Use Git to download the necessary source code. The installer to run Git on Windows can be downloaded here: https://github.com/msysgit/msysgit/releases/download/Git-1.9.2-preview20140411/Git-1.9.2-preview20140411.exe #. Download the installer. Once the download is complete, run the installer and follow the prompts in the installation wizard. The default should be acceptable for the purposes of this guide. .. code-block:: none PS C:\> $src = "https://github.com/msysgit/msysgit/releases/download/Git-1.9.2-preview20140411/Git-1.9.2-preview20140411.exe" PS C:\> $dest = "$env:temp\Git-1.9.2-preview20140411.exe" PS C:\> Invoke-WebRequest –Uri $src –OutFile $dest PS C:\> Unblock-File $dest PS C:\> Start-Process $dest #. Run the following to clone the nova code. .. code-block:: none PS C:\> git.exe clone https://git.openstack.org/openstack/nova Install nova-compute service ---------------------------- To install ``nova-compute``, run: .. code-block:: none PS C:\> cd c:\nova PS C:\> python setup.py install Configure nova-compute ---------------------- The ``nova.conf`` file must be placed in ``C:\etc\nova`` for running OpenStack on Hyper-V. Below is a sample ``nova.conf`` for Windows: .. code-block:: ini [DEFAULT] auth_strategy = keystone image_service = nova.image.glance.GlanceImageService compute_driver = nova.virt.hyperv.driver.HyperVDriver volume_api_class = nova.volume.cinder.API fake_network = true instances_path = C:\Program Files (x86)\OpenStack\Instances use_cow_images = true force_config_drive = false injected_network_template = C:\Program Files (x86)\OpenStack\Nova\etc\interfaces.template policy_file = C:\Program Files (x86)\OpenStack\Nova\etc\policy.json mkisofs_cmd = C:\Program Files (x86)\OpenStack\Nova\bin\mkisofs.exe allow_resize_to_same_host = true running_deleted_instance_action = reap running_deleted_instance_poll_interval = 120 resize_confirm_window = 5 resume_guests_state_on_host_boot = true rpc_response_timeout = 1800 lock_path = C:\Program Files (x86)\OpenStack\Log\ rpc_backend = nova.openstack.common.rpc.impl_kombu rabbit_host = IP_ADDRESS rabbit_port = 5672 rabbit_userid = guest rabbit_password = Passw0rd logdir = C:\Program Files (x86)\OpenStack\Log\ logfile = nova-compute.log instance_usage_audit = true instance_usage_audit_period = hour use_neutron = True [glance] api_servers = http://IP_ADDRESS:9292 [neutron] url = http://IP_ADDRESS:9696 auth_strategy = keystone project_name = service username = neutron password = Passw0rd auth_url = http://IP_ADDRESS:5000/v3 auth_type = password [hyperv] vswitch_name = newVSwitch0 limit_cpu_features = false config_drive_inject_password = false qemu_img_cmd = C:\Program Files (x86)\OpenStack\Nova\bin\qemu-img.exe config_drive_cdrom = true dynamic_memory_ratio = 1 enable_instance_metrics_collection = true [rdp] enabled = true html5_proxy_base_url = https://IP_ADDRESS:4430 Prepare images for use with Hyper-V ----------------------------------- Hyper-V currently supports only the VHD and VHDX file format for virtual machine instances. Detailed instructions for installing virtual machines on Hyper-V can be found here: `Create Virtual Machines `_ Once you have successfully created a virtual machine, you can then upload the image to `glance` using the `openstack-client`: .. code-block:: none PS C:\> openstack image create --name "VM_IMAGE_NAME" --property hypervisor_type=hyperv --public \ --container-format bare --disk-format vhd .. note:: VHD and VHDX files sizes can be bigger than their maximum internal size, as such you need to boot instances using a flavor with a slightly bigger disk size than the internal size of the disk file. To create VHDs, use the following PowerShell cmdlet: .. code-block:: none PS C:\> New-VHD DISK_NAME.vhd -SizeBytes VHD_SIZE Inject interfaces and routes ---------------------------- The ``interfaces.template`` file describes the network interfaces and routes available on your system and how to activate them. You can specify the location of the file with the ``injected_network_template`` configuration option in ``/etc/nova/nova.conf``. .. code-block:: ini injected_network_template = PATH_TO_FILE A default template exists in ``nova/virt/interfaces.template``. Run Compute with Hyper-V ------------------------ To start the ``nova-compute`` service, run this command from a console in the Windows server: .. code-block:: none PS C:\> C:\Python27\python.exe c:\Python27\Scripts\nova-compute --config-file c:\etc\nova\nova.conf Troubleshoot Hyper-V configuration ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * I ran the :command:`nova-manage service list` command from my controller; however, I'm not seeing smiley faces for Hyper-V compute nodes, what do I do? Verify that you are synchronized with a network time source. For instructions about how to configure NTP on your Hyper-V compute node, see :ref:`configure-ntp-windows`. * How do I restart the compute service? .. code-block:: none PS C:\> net stop nova-compute && net start nova-compute * How do I restart the iSCSI initiator service? .. code-block:: none PS C:\> net stop msiscsi && net start msiscsi nova-17.0.13/doc/source/admin/configuration/hypervisor-xen-libvirt.rst0000664000175000017500000002571213556316250026076 0ustar zuulzuul00000000000000=============== Xen via libvirt =============== OpenStack Compute supports the Xen Project Hypervisor (or Xen). Xen can be integrated with OpenStack Compute via the `libvirt `_ `toolstack `_ or via the `XAPI `_ `toolstack `_. This section describes how to set up OpenStack Compute with Xen and libvirt. For information on how to set up Xen with XAPI refer to :doc:`hypervisor-xen-api`. Installing Xen with libvirt ~~~~~~~~~~~~~~~~~~~~~~~~~~~ At this stage we recommend using the baseline that we use for the `Xen Project OpenStack CI Loop `_, which contains the most recent stability fixes to both Xen and libvirt. `Xen 4.5.1 `_ (or newer) and `libvirt 1.2.15 `_ (or newer) contain the minimum required OpenStack improvements for Xen. Although libvirt 1.2.15 works with Xen, libvirt 1.3.2 or newer is recommended. The necessary Xen changes have also been backported to the Xen 4.4.3 stable branch. Please check with the Linux and FreeBSD distros you are intending to use as `Dom 0 `_, whether the relevant version of Xen and libvirt are available as installable packages. The latest releases of Xen and libvirt packages that fulfil the above minimum requirements for the various openSUSE distributions can always be found and installed from the `Open Build Service `_ Virtualization project. To install these latest packages, add the Virtualization repository to your software management stack and get the newest packages from there. More information about the latest Xen and libvirt packages are available `here `__ and `here `__. Alternatively, it is possible to use the Ubuntu LTS 14.04 Xen Package **4.4.1-0ubuntu0.14.04.4** (Xen 4.4.1) and apply the patches outlined `here `__. You can also use the Ubuntu LTS 14.04 libvirt package **1.2.2 libvirt_1.2.2-0ubuntu13.1.7** as baseline and update it to libvirt version 1.2.15, or 1.2.14 with the patches outlined `here `__ applied. Note that this will require rebuilding these packages partly from source. For further information and latest developments, you may want to consult the Xen Project's `mailing lists for OpenStack related issues and questions `_. Configuring Xen with libvirt ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ To enable Xen via libvirt, ensure the following options are set in ``/etc/nova/nova.conf`` on all hosts running the ``nova-compute`` service. .. code-block:: ini compute_driver = libvirt.LibvirtDriver [libvirt] virt_type = xen Additional configuration options ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Use the following as a guideline for configuring Xen for use in OpenStack: #. **Dom0 memory**: Set it between 1GB and 4GB by adding the following parameter to the Xen Boot Options in the `grub.conf `_ file. .. code-block:: ini dom0_mem=1024M .. note:: The above memory limits are suggestions and should be based on the available compute host resources. For large hosts that will run many hundreds of instances, the suggested values may need to be higher. .. note:: The location of the grub.conf file depends on the host Linux distribution that you are using. Please refer to the distro documentation for more details (see `Dom 0 `_ for more resources). #. **Dom0 vcpus**: Set the virtual CPUs to 4 and employ CPU pinning by adding the following parameters to the Xen Boot Options in the `grub.conf `_ file. .. code-block:: ini dom0_max_vcpus=4 dom0_vcpus_pin .. note:: Note that the above virtual CPU limits are suggestions and should be based on the available compute host resources. For large hosts, that will run many hundred of instances, the suggested values may need to be higher. #. **PV vs HVM guests**: A Xen virtual machine can be paravirtualized (PV) or hardware virtualized (HVM). The virtualization mode determines the interaction between Xen, Dom 0, and the guest VM's kernel. PV guests are aware of the fact that they are virtualized and will co-operate with Xen and Dom 0. The choice of virtualization mode determines performance characteristics. For an overview of Xen virtualization modes, see `Xen Guest Types `_. In OpenStack, customer VMs may run in either PV or HVM mode. The mode is a property of the operating system image used by the VM, and is changed by adjusting the image metadata stored in the Image service. The image metadata can be changed using the :command:`openstack` commands. To choose one of the HVM modes (HVM, HVM with PV Drivers or PVHVM), use :command:`openstack` to set the ``vm_mode`` property to ``hvm``. To choose one of the HVM modes (HVM, HVM with PV Drivers or PVHVM), use one of the following two commands: .. code-block:: console $ openstack image set --property vm_mode=hvm IMAGE To chose PV mode, which is supported by NetBSD, FreeBSD and Linux, use one of the following two commands .. code-block:: console $ openstack image set --property vm_mode=xen IMAGE .. note:: The default for virtualization mode in nova is PV mode. #. **Image formats**: Xen supports raw, qcow2 and vhd image formats. For more information on image formats, refer to the `OpenStack Virtual Image Guide `__ and the `Storage Options Guide on the Xen Project Wiki `_. #. **Image metadata**: In addition to the ``vm_mode`` property discussed above, the ``hypervisor_type`` property is another important component of the image metadata, especially if your cloud contains mixed hypervisor compute nodes. Setting the ``hypervisor_type`` property allows the nova scheduler to select a compute node running the specified hypervisor when launching instances of the image. Image metadata such as ``vm_mode``, ``hypervisor_type``, architecture, and others can be set when importing the image to the Image service. The metadata can also be changed using the :command:`openstack` commands: .. code-block:: console $ openstack image set --property hypervisor_type=xen vm_mode=hvm IMAGE For more more information on image metadata, refer to the `OpenStack Virtual Image Guide `__. #. **Libguestfs file injection**: OpenStack compute nodes can use `libguestfs `_ to inject files into an instance's image prior to launching the instance. libguestfs uses libvirt's QEMU driver to start a qemu process, which is then used to inject files into the image. When using libguestfs for file injection, the compute node must have the libvirt qemu driver installed, in addition to the Xen driver. In RPM based distributions, the qemu driver is provided by the ``libvirt-daemon-qemu`` package. In Debian and Ubuntu, the qemu driver is provided by the ``libvirt-bin`` package. Troubleshoot Xen with libvirt ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ **Important log files**: When an instance fails to start, or when you come across other issues, you should first consult the following log files: * ``/var/log/nova/nova-compute.log`` * ``/var/log/libvirt/libxl/libxl-driver.log``, * ``/var/log/xen/qemu-dm-${instancename}.log``, * ``/var/log/xen/xen-hotplug.log``, * ``/var/log/xen/console/guest-${instancename}`` (to enable see `Enabling Guest Console Logs `_) * Host Console Logs (read `Enabling and Retrieving Host Console Logs `_). If you need further help you can ask questions on the mailing lists `xen-users@ `_, `wg-openstack@ `_ or `raise a bug `_ against Xen. Known issues ~~~~~~~~~~~~ * **Networking**: Xen via libvirt is currently only supported with nova-network. Fixes for a number of bugs are currently being worked on to make sure that Xen via libvirt will also work with OpenStack Networking (neutron). .. todo:: Is this still true? * **Live migration**: Live migration is supported in the libvirt libxl driver since version 1.2.5. However, there were a number of issues when used with OpenStack, in particular with libvirt migration protocol compatibility. It is worth mentioning that libvirt 1.3.0 addresses most of these issues. We do however recommend using libvirt 1.3.2, which is fully supported and tested as part of the Xen Project CI loop. It addresses live migration monitoring related issues and adds support for peer-to-peer migration mode, which nova relies on. * **Live migration monitoring**: On compute nodes running Kilo or later, live migration monitoring relies on libvirt APIs that are only implemented from libvirt version 1.3.1 onwards. When attempting to live migrate, the migration monitoring thread would crash and leave the instance state as "MIGRATING". If you experience such an issue and you are running on a version released before libvirt 1.3.1, make sure you backport libvirt commits ad71665 and b7b4391 from upstream. Additional information and resources ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The following section contains links to other useful resources. * `wiki.xenproject.org/wiki/OpenStack `_ - OpenStack Documentation on the Xen Project wiki * `wiki.xenproject.org/wiki/OpenStack_CI_Loop_for_Xen-Libvirt `_ - Information about the Xen Project OpenStack CI Loop * `wiki.xenproject.org/wiki/OpenStack_via_DevStack `_ - How to set up OpenStack via DevStack * `Mailing lists for OpenStack related issues and questions `_ - This list is dedicated to coordinating bug fixes and issues across Xen, libvirt and OpenStack and the CI loop. nova-17.0.13/doc/source/admin/configuration/samples/0000775000175000017500000000000013556316574022337 5ustar zuulzuul00000000000000nova-17.0.13/doc/source/admin/configuration/samples/rootwrap.conf.rst0000664000175000017500000000070613556316250025664 0ustar zuulzuul00000000000000============= rootwrap.conf ============= The ``rootwrap.conf`` file defines configuration values used by the rootwrap script when the Compute service needs to escalate its privileges to those of the root user. It is also possible to disable the root wrapper, and default to sudo only. Configure the ``disable_rootwrap`` option in the ``[workaround]`` section of the ``nova.conf`` configuration file. .. literalinclude:: /../../etc/nova/rootwrap.conf nova-17.0.13/doc/source/admin/configuration/samples/index.rst0000664000175000017500000000042313556316250024166 0ustar zuulzuul00000000000000========================================== Compute service sample configuration files ========================================== Files in this section can be found in ``/etc/nova``. .. toctree:: :maxdepth: 2 api-paste.ini.rst policy.yaml.rst rootwrap.conf.rst nova-17.0.13/doc/source/admin/configuration/samples/policy.yaml.rst0000664000175000017500000000031513556316250025317 0ustar zuulzuul00000000000000=========== policy.yaml =========== The ``policy.yaml`` file defines additional access controls that apply to the Compute service. .. literalinclude:: /_static/nova.policy.yaml.sample :language: yaml nova-17.0.13/doc/source/admin/configuration/samples/api-paste.ini.rst0000664000175000017500000000026713556316250025526 0ustar zuulzuul00000000000000============= api-paste.ini ============= The Compute service stores its API configuration settings in the ``api-paste.ini`` file. .. literalinclude:: /../../etc/nova/api-paste.ini nova-17.0.13/doc/source/admin/configuration/hypervisor-kvm.rst0000664000175000017500000004142313556316250024425 0ustar zuulzuul00000000000000=== KVM === .. todo:: This is really installation guide material and should probably be moved. KVM is configured as the default hypervisor for Compute. .. note:: This document contains several sections about hypervisor selection. If you are reading this document linearly, you do not want to load the KVM module before you install ``nova-compute``. The ``nova-compute`` service depends on qemu-kvm, which installs ``/lib/udev/rules.d/45-qemu-kvm.rules``, which sets the correct permissions on the ``/dev/kvm`` device node. To enable KVM explicitly, add the following configuration options to the ``/etc/nova/nova.conf`` file: .. code-block:: ini compute_driver = libvirt.LibvirtDriver [libvirt] virt_type = kvm The KVM hypervisor supports the following virtual machine image formats: * Raw * QEMU Copy-on-write (QCOW2) * QED Qemu Enhanced Disk * VMware virtual machine disk format (vmdk) This section describes how to enable KVM on your system. For more information, see the following distribution-specific documentation: * `Fedora: Virtualization Getting Started Guide `_ from the Fedora 22 documentation. * `Ubuntu: KVM/Installation `_ from the Community Ubuntu documentation. * `Debian: Virtualization with KVM `_ from the Debian handbook. * `Red Hat Enterprise Linux: Installing virtualization packages on an existing Red Hat Enterprise Linux system `_ from the ``Red Hat Enterprise Linux Virtualization Host Configuration and Guest Installation Guide``. * `openSUSE: Installing KVM `_ from the openSUSE Virtualization with KVM manual. * `SLES: Installing KVM `_ from the SUSE Linux Enterprise Server ``Virtualization Guide``. .. _enable-kvm: Enable KVM ~~~~~~~~~~ The following sections outline how to enable KVM based hardware virtualization on different architectures and platforms. To perform these steps, you must be logged in as the ``root`` user. For x86 based systems --------------------- #. To determine whether the ``svm`` or ``vmx`` CPU extensions are present, run this command: .. code-block:: console # grep -E 'svm|vmx' /proc/cpuinfo This command generates output if the CPU is capable of hardware-virtualization. Even if output is shown, you might still need to enable virtualization in the system BIOS for full support. If no output appears, consult your system documentation to ensure that your CPU and motherboard support hardware virtualization. Verify that any relevant hardware virtualization options are enabled in the system BIOS. The BIOS for each manufacturer is different. If you must enable virtualization in the BIOS, look for an option containing the words ``virtualization``, ``VT``, ``VMX``, or ``SVM``. #. To list the loaded kernel modules and verify that the ``kvm`` modules are loaded, run this command: .. code-block:: console # lsmod | grep kvm If the output includes ``kvm_intel`` or ``kvm_amd``, the ``kvm`` hardware virtualization modules are loaded and your kernel meets the module requirements for OpenStack Compute. If the output does not show that the ``kvm`` module is loaded, run this command to load it: .. code-block:: console # modprobe -a kvm Run the command for your CPU. For Intel, run this command: .. code-block:: console # modprobe -a kvm-intel For AMD, run this command: .. code-block:: console # modprobe -a kvm-amd Because a KVM installation can change user group membership, you might need to log in again for changes to take effect. If the kernel modules do not load automatically, use the procedures listed in these subsections. If the checks indicate that required hardware virtualization support or kernel modules are disabled or unavailable, you must either enable this support on the system or find a system with this support. .. note:: Some systems require that you enable VT support in the system BIOS. If you believe your processor supports hardware acceleration but the previous command did not produce output, reboot your machine, enter the system BIOS, and enable the VT option. If KVM acceleration is not supported, configure Compute to use a different hypervisor, such as ``QEMU`` or ``Xen``. See :ref:`compute_qemu` or :ref:`compute_xen_api` for details. These procedures help you load the kernel modules for Intel-based and AMD-based processors if they do not load automatically during KVM installation. .. rubric:: Intel-based processors If your compute host is Intel-based, run these commands as root to load the kernel modules: .. code-block:: console # modprobe kvm # modprobe kvm-intel Add these lines to the ``/etc/modules`` file so that these modules load on reboot: .. code-block:: console kvm kvm-intel .. rubric:: AMD-based processors If your compute host is AMD-based, run these commands as root to load the kernel modules: .. code-block:: console # modprobe kvm # modprobe kvm-amd Add these lines to ``/etc/modules`` file so that these modules load on reboot: .. code-block:: console kvm kvm-amd For POWER based systems ----------------------- KVM as a hypervisor is supported on POWER system's PowerNV platform. #. To determine if your POWER platform supports KVM based virtualization run the following command: .. code-block:: console # cat /proc/cpuinfo | grep PowerNV If the previous command generates the following output, then CPU supports KVM based virtualization. .. code-block:: console platform: PowerNV If no output is displayed, then your POWER platform does not support KVM based hardware virtualization. #. To list the loaded kernel modules and verify that the ``kvm`` modules are loaded, run the following command: .. code-block:: console # lsmod | grep kvm If the output includes ``kvm_hv``, the ``kvm`` hardware virtualization modules are loaded and your kernel meets the module requirements for OpenStack Compute. If the output does not show that the ``kvm`` module is loaded, run the following command to load it: .. code-block:: console # modprobe -a kvm For PowerNV platform, run the following command: .. code-block:: console # modprobe -a kvm-hv Because a KVM installation can change user group membership, you might need to log in again for changes to take effect. Configure Compute backing storage ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Backing Storage is the storage used to provide the expanded operating system image, and any ephemeral storage. Inside the virtual machine, this is normally presented as two virtual hard disks (for example, ``/dev/vda`` and ``/dev/vdb`` respectively). However, inside OpenStack, this can be derived from one of these methods: ``lvm``, ``qcow``, ``rbd`` or ``flat``, chosen using the ``images_type`` option in ``nova.conf`` on the compute node. .. note:: The option ``raw`` is acceptable but deprecated in favor of ``flat``. The Flat back end uses either raw or QCOW2 storage. It never uses a backing store, so when using QCOW2 it copies an image rather than creating an overlay. By default, it creates raw files but will use QCOW2 when creating a disk from a QCOW2 if ``force_raw_images`` is not set in configuration. QCOW is the default backing store. It uses a copy-on-write philosophy to delay allocation of storage until it is actually needed. This means that the space required for the backing of an image can be significantly less on the real disk than what seems available in the virtual machine operating system. Flat creates files without any sort of file formatting, effectively creating files with the plain binary one would normally see on a real disk. This can increase performance, but means that the entire size of the virtual disk is reserved on the physical disk. Local `LVM volumes `__ can also be used. Set ``images_volume_group = nova_local`` where ``nova_local`` is the name of the LVM group you have created. Specify the CPU model of KVM guests ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The Compute service enables you to control the guest CPU model that is exposed to KVM virtual machines. Use cases include: * To maximize performance of virtual machines by exposing new host CPU features to the guest * To ensure a consistent default CPU across all machines, removing reliance of variable QEMU defaults In libvirt, the CPU is specified by providing a base CPU model name (which is a shorthand for a set of feature flags), a set of additional feature flags, and the topology (sockets/cores/threads). The libvirt KVM driver provides a number of standard CPU model names. These models are defined in the ``/usr/share/libvirt/cpu_map.xml`` file. Check this file to determine which models are supported by your local installation. Two Compute configuration options in the ``[libvirt]`` group of ``nova.conf`` define which type of CPU model is exposed to the hypervisor when using KVM: ``cpu_mode`` and ``cpu_model``. The ``cpu_mode`` option can take one of the following values: ``none``, ``host-passthrough``, ``host-model``, and ``custom``. Host model (default for KVM & QEMU) ----------------------------------- If your ``nova.conf`` file contains ``cpu_mode=host-model``, libvirt identifies the CPU model in ``/usr/share/libvirt/cpu_map.xml`` file that most closely matches the host, and requests additional CPU flags to complete the match. This configuration provides the maximum functionality and performance and maintains good reliability. With regard to enabling and facilitating live migration between compute nodes, you should assess whether ``host-model`` is suitable for your compute architecture. In general, using ``host-model`` is a safe choice if your compute node CPUs are largely identical. However, if your compute nodes span multiple processor generations, you may be better advised to select a ``custom`` CPU model. Host pass through ----------------- If your ``nova.conf`` file contains ``cpu_mode=host-passthrough``, libvirt tells KVM to pass through the host CPU with no modifications. The difference to host-model, instead of just matching feature flags, every last detail of the host CPU is matched. This gives the best performance, and can be important to some apps which check low level CPU details, but it comes at a cost with respect to migration. In ``host-passthrough`` mode, the guest can only be live-migrated to a target host that matches the source host extremely closely. This definitely includes the physical CPU model and running microcode, and may even include the running kernel. Use this mode only if * your compute nodes have a very large degree of homogeneity (i.e. substantially all of your compute nodes use the exact same CPU generation and model), and you make sure to only live-migrate between hosts with exactly matching kernel versions, `or` * you decide, for some reason and against established best practices, that your compute infrastructure should not support any live migration at all. Custom ------ If your ``nova.conf`` file contains ``cpu_mode=custom``, you can explicitly specify one of the supported named models using the cpu_model configuration option. For example, to configure the KVM guests to expose Nehalem CPUs, your ``nova.conf`` file should contain: .. code-block:: ini [libvirt] cpu_mode = custom cpu_model = Nehalem In selecting the ``custom`` mode, along with a ``cpu_model`` that matches the oldest of your compute node CPUs, you can ensure that live migration between compute nodes will always be possible. However, you should ensure that the ``cpu_model`` you select passes the correct CPU feature flags to the guest. None (default for all libvirt-driven hypervisors other than KVM & QEMU) ----------------------------------------------------------------------- If your ``nova.conf`` file contains ``cpu_mode=none``, libvirt does not specify a CPU model. Instead, the hypervisor chooses the default model. Set CPU feature flags ~~~~~~~~~~~~~~~~~~~~~ Regardless of whether your selected ``cpu_mode`` is ``host-passthrough``, ``host-model``, or ``custom``, it is also possible to selectively enable additional feature flags. Suppose your selected ``custom`` CPU model is ``IvyBridge``, which normally does not enable the ``pcid`` feature flag --- but you do want to pass ``pcid`` into your guest instances. In that case, you would set: .. code-block:: ini [libvirt] cpu_mode = custom cpu_model = IvyBridge cpu_model_extra_flags = pcid Nested guest support ~~~~~~~~~~~~~~~~~~~~ You may choose to enable support for nested guests --- that is, allow your Nova instances to themselves run hardware-accelerated virtual machines with KVM. Doing so requires a module parameter on your KVM kernel module, and corresponding ``nova.conf`` settings. Nested guest support in the KVM kernel module --------------------------------------------- To enable nested KVM guests, your compute node must load the ``kvm_intel`` or ``kvm_amd`` module with ``nested=1``. You can enable the ``nested`` parameter permanently, by creating a file named ``/etc/modprobe.d/kvm.conf`` and populating it with the following content: .. code-block:: none options kvm_intel nested=1 options kvm_amd nested=1 A reboot may be required for the change to become effective. Nested guest support in ``nova.conf`` ------------------------------------- To support nested guests, you must set your ``cpu_mode`` configuration to one of the following options: Host pass through In this mode, nested virtualization is automatically enabled once the KVM kernel module is loaded with nesting support. .. code-block:: ini [libvirt] cpu_mode = host-passthrough However, do consider the other implications that `Host pass through`_ mode has on compute functionality. Host model In this mode, nested virtualization is automatically enabled once the KVM kernel module is loaded with nesting support, **if** the matching CPU model exposes the ``vmx`` feature flag to guests by default (you can verify this with ``virsh capabilities`` on your compute node). .. code-block:: ini [libvirt] cpu_mode = host-model Again, consider the other implications that apply to the `Host model (default for KVM & Qemu)`_ mode. Nested guest support limitations -------------------------------- When enabling nested guests, you should be aware of (and inform your users about) certain limitations that are currently inherent to nested KVM virtualization. Most importantly, guests using nested virtualization will, *while nested guests are running*, * fail to complete live migration; * fail to resume from suspend. See `the KVM documentation `_ for more information on these limitations. Guest agent support ~~~~~~~~~~~~~~~~~~~ Use guest agents to enable optional access between compute nodes and guests through a socket, using the QMP protocol. To enable this feature, you must set ``hw_qemu_guest_agent=yes`` as a metadata parameter on the image you wish to use to create the guest-agent-capable instances from. You can explicitly disable the feature by setting ``hw_qemu_guest_agent=no`` in the image metadata. KVM performance tweaks ~~~~~~~~~~~~~~~~~~~~~~ The `VHostNet `_ kernel module improves network performance. To load the kernel module, run the following command as root: .. code-block:: console # modprobe vhost_net Troubleshoot KVM ~~~~~~~~~~~~~~~~ Trying to launch a new virtual machine instance fails with the ``ERROR`` state, and the following error appears in the ``/var/log/nova/nova-compute.log`` file: .. code-block:: console libvirtError: internal error no supported architecture for os type 'hvm' This message indicates that the KVM kernel modules were not loaded. If you cannot start VMs after installation without rebooting, the permissions might not be set correctly. This can happen if you load the KVM module before you install ``nova-compute``. To check whether the group is set to ``kvm``, run: .. code-block:: console # ls -l /dev/kvm If it is not set to ``kvm``, run: .. code-block:: console # udevadm trigger nova-17.0.13/doc/source/admin/configuration/schedulers.rst0000664000175000017500000013434013556316250023562 0ustar zuulzuul00000000000000================== Compute schedulers ================== Compute uses the ``nova-scheduler`` service to determine how to dispatch compute requests. For example, the ``nova-scheduler`` service determines on which host a VM should launch. In the context of filters, the term ``host`` means a physical node that has a ``nova-compute`` service running on it. You can configure the scheduler through a variety of options. Compute is configured with the following default scheduler options in the ``/etc/nova/nova.conf`` file: .. code-block:: ini [scheduler] driver = filter_scheduler [filter_scheduler] available_filters = nova.scheduler.filters.all_filters enabled_filters = RetryFilter, AvailabilityZoneFilter, ComputeFilter, ComputeCapabilitiesFilter, ImagePropertiesFilter, ServerGroupAntiAffinityFilter, ServerGroupAffinityFilter By default, the scheduler ``driver`` is configured as a filter scheduler, as described in the next section. In the default configuration, this scheduler considers hosts that meet all the following criteria: * Have not been attempted for scheduling purposes (``RetryFilter``). * Are in the requested availability zone (``AvailabilityZoneFilter``). * Can service the request (``ComputeFilter``). * Satisfy the extra specs associated with the instance type (``ComputeCapabilitiesFilter``). * Satisfy any architecture, hypervisor type, or virtual machine mode properties specified on the instance's image properties (``ImagePropertiesFilter``). * Are on a different host than other instances of a group (if requested) (``ServerGroupAntiAffinityFilter``). * Are in a set of group hosts (if requested) (``ServerGroupAffinityFilter``). The scheduler chooses a new host when an instance is migrated. When evacuating instances from a host, the scheduler service honors the target host defined by the administrator on the :command:`nova evacuate` command. If a target is not defined by the administrator, the scheduler determines the target host. For information about instance evacuation, see :ref:`Evacuate instances `. .. _compute-scheduler-filters: Filter scheduler ~~~~~~~~~~~~~~~~ The filter scheduler (``nova.scheduler.filter_scheduler.FilterScheduler``) is the default scheduler for scheduling virtual machine instances. It supports filtering and weighting to make informed decisions on where a new instance should be created. When the filter scheduler receives a request for a resource, it first applies filters to determine which hosts are eligible for consideration when dispatching a resource. Filters are binary: either a host is accepted by the filter, or it is rejected. Hosts that are accepted by the filter are then processed by a different algorithm to decide which hosts to use for that request, described in the :ref:`weights` section. **Filtering** .. figure:: /figures/filteringWorkflow1.png The ``available_filters`` configuration option in ``nova.conf`` provides the Compute service with the list of the filters that are available for use by the scheduler. The default setting specifies all of the filters that are included with the Compute service: .. code-block:: ini [filter_scheduler] available_filters = nova.scheduler.filters.all_filters This configuration option can be specified multiple times. For example, if you implemented your own custom filter in Python called ``myfilter.MyFilter`` and you wanted to use both the built-in filters and your custom filter, your ``nova.conf`` file would contain: .. code-block:: ini [filter_scheduler] available_filters = nova.scheduler.filters.all_filters available_filters = myfilter.MyFilter The ``enabled_filters`` configuration option in ``nova.conf`` defines the list of filters that are applied by the ``nova-scheduler`` service. The default filters are: .. code-block:: ini [filter_scheduler] enabled_filters = RetryFilter, AvailabilityZoneFilter, ComputeCapabilitiesFilter, ImagePropertiesFilter, ServerGroupAntiAffinityFilter, ServerGroupAffinityFilter Compute filters ~~~~~~~~~~~~~~~ The following sections describe the available compute filters. AggregateCoreFilter ------------------- Filters host by CPU core numbers with a per-aggregate ``cpu_allocation_ratio`` value. If the per-aggregate value is not found, the value falls back to the global setting. If the host is in more than one aggregate and more than one value is found, the minimum value will be used. For information about how to use this filter, see :ref:`host-aggregates`. See also :ref:`CoreFilter`. Note the ``cpu_allocation_ratio`` :ref:`bug 1804125 ` restriction. AggregateDiskFilter ------------------- Filters host by disk allocation with a per-aggregate ``disk_allocation_ratio`` value. If the per-aggregate value is not found, the value falls back to the global setting. If the host is in more than one aggregate and more than one value is found, the minimum value will be used. For information about how to use this filter, see :ref:`host-aggregates`. See also :ref:`DiskFilter`. Note the ``disk_allocation_ratio`` :ref:`bug 1804125 ` restriction. AggregateImagePropertiesIsolation --------------------------------- Matches properties defined in an image's metadata against those of aggregates to determine host matches: * If a host belongs to an aggregate and the aggregate defines one or more metadata that matches an image's properties, that host is a candidate to boot the image's instance. * If a host does not belong to any aggregate, it can boot instances from all images. For example, the following aggregate ``myWinAgg`` has the Windows operating system as metadata (named 'windows'): .. code-block:: console $ openstack aggregate show MyWinAgg +-------------------+----------------------------+ | Field | Value | +-------------------+----------------------------+ | availability_zone | zone1 | | created_at | 2017-01-01T15:36:44.000000 | | deleted | False | | deleted_at | None | | hosts | [u'sf-devel'] | | id | 1 | | name | test | | properties | | | updated_at | None | +-------------------+----------------------------+ In this example, because the following Win-2012 image has the ``windows`` property, it boots on the ``sf-devel`` host (all other filters being equal): .. code-block:: console $ openstack image show Win-2012 +------------------+------------------------------------------------------+ | Field | Value | +------------------+------------------------------------------------------+ | checksum | ee1eca47dc88f4879d8a229cc70a07c6 | | container_format | bare | | created_at | 2016-12-13T09:30:30Z | | disk_format | qcow2 | | ... You can configure the ``AggregateImagePropertiesIsolation`` filter by using the following options in the ``nova.conf`` file: .. code-block:: ini # Considers only keys matching the given namespace (string). # Multiple values can be given, as a comma-separated list. aggregate_image_properties_isolation_namespace = # Separator used between the namespace and keys (string). aggregate_image_properties_isolation_separator = . .. _AggregateInstanceExtraSpecsFilter: AggregateInstanceExtraSpecsFilter --------------------------------- Matches properties defined in extra specs for an instance type against admin-defined properties on a host aggregate. Works with specifications that are scoped with ``aggregate_instance_extra_specs``. Multiple values can be given, as a comma-separated list. For backward compatibility, also works with non-scoped specifications; this action is highly discouraged because it conflicts with :ref:`ComputeCapabilitiesFilter` filter when you enable both filters. For information about how to use this filter, see the :ref:`host-aggregates` section. AggregateIoOpsFilter -------------------- Filters host by disk allocation with a per-aggregate ``max_io_ops_per_host`` value. If the per-aggregate value is not found, the value falls back to the global setting. If the host is in more than one aggregate and more than one value is found, the minimum value will be used. For information about how to use this filter, see :ref:`host-aggregates`. See also :ref:`IoOpsFilter`. AggregateMultiTenancyIsolation ------------------------------ Ensures that the tenant (or list of tenants) creates all instances only on specific :ref:`host-aggregates`. If a host is in an aggregate that has the ``filter_tenant_id`` metadata key, the host creates instances from only that tenant or list of tenants. A host can be in different aggregates. If a host does not belong to an aggregate with the metadata key, the host can create instances from all tenants. This setting does not isolate the aggregate from other tenants. Any other tenant can continue to build instances on the specified aggregate. AggregateNumInstancesFilter --------------------------- Filters host by number of instances with a per-aggregate ``max_instances_per_host`` value. If the per-aggregate value is not found, the value falls back to the global setting. If the host is in more than one aggregate and thus more than one value is found, the minimum value will be used. For information about how to use this filter, see :ref:`host-aggregates`. See also :ref:`NumInstancesFilter`. AggregateRamFilter ------------------ Filters host by RAM allocation of instances with a per-aggregate ``ram_allocation_ratio`` value. If the per-aggregate value is not found, the value falls back to the global setting. If the host is in more than one aggregate and thus more than one value is found, the minimum value will be used. For information about how to use this filter, see :ref:`host-aggregates`. See also :ref:`ramfilter`. Note the ``ram_allocation_ratio`` :ref:`bug 1804125 ` restriction. AggregateTypeAffinityFilter --------------------------- This filter passes hosts if no ``instance_type`` key is set or the ``instance_type`` aggregate metadata value contains the name of the ``instance_type`` requested. The value of the ``instance_type`` metadata entry is a string that may contain either a single ``instance_type`` name or a comma-separated list of ``instance_type`` names, such as ``m1.nano`` or ``m1.nano,m1.small``. For information about how to use this filter, see :ref:`host-aggregates`. AllHostsFilter -------------- This is a no-op filter. It does not eliminate any of the available hosts. AvailabilityZoneFilter ---------------------- Filters hosts by availability zone. You must enable this filter for the scheduler to respect availability zones in requests. .. _ComputeCapabilitiesFilter: ComputeCapabilitiesFilter ------------------------- Matches properties defined in extra specs for an instance type against compute capabilities. If an extra specs key contains a colon (``:``), anything before the colon is treated as a namespace and anything after the colon is treated as the key to be matched. If a namespace is present and is not ``capabilities``, the filter ignores the namespace. For backward compatibility, also treats the extra specs key as the key to be matched if no namespace is present; this action is highly discouraged because it conflicts with :ref:`AggregateInstanceExtraSpecsFilter` filter when you enable both filters. .. _ComputeFilter: ComputeFilter ------------- Passes all hosts that are operational and enabled. In general, you should always enable this filter. .. _CoreFilter: CoreFilter ---------- Only schedules instances on hosts if sufficient CPU cores are available. If this filter is not set, the scheduler might over-provision a host based on cores. For example, the virtual cores running on an instance may exceed the physical cores. You can configure this filter to enable a fixed amount of vCPU overcommitment by using the ``cpu_allocation_ratio`` configuration option in ``nova.conf``. The default setting is: .. code-block:: ini cpu_allocation_ratio = 16.0 With this setting, if 8 vCPUs are on a node, the scheduler allows instances up to 128 vCPU to be run on that node. To disallow vCPU overcommitment set: .. code-block:: ini cpu_allocation_ratio = 1.0 .. note:: The Compute API always returns the actual number of CPU cores available on a compute node regardless of the value of the ``cpu_allocation_ratio`` configuration key. As a result changes to the ``cpu_allocation_ratio`` are not reflected via the command line clients or the dashboard. Changes to this configuration key are only taken into account internally in the scheduler. DifferentHostFilter ------------------- Schedules the instance on a different host from a set of instances. To take advantage of this filter, the requester must pass a scheduler hint, using ``different_host`` as the key and a list of instance UUIDs as the value. This filter is the opposite of the ``SameHostFilter``. Using the :command:`openstack server create` command, use the ``--hint`` flag. For example: .. code-block:: console $ openstack server create --image cedef40a-ed67-4d10-800e-17455edce175 \ --flavor 1 --hint different_host=a0cf03a5-d921-4877-bb5c-86d26cf818e1 \ --hint different_host=8c19174f-4220-44f0-824a-cd1eeef10287 server-1 With the API, use the ``os:scheduler_hints`` key. For example: .. code-block:: json { "server": { "name": "server-1", "imageRef": "cedef40a-ed67-4d10-800e-17455edce175", "flavorRef": "1" }, "os:scheduler_hints": { "different_host": [ "a0cf03a5-d921-4877-bb5c-86d26cf818e1", "8c19174f-4220-44f0-824a-cd1eeef10287" ] } } .. _DiskFilter: DiskFilter ---------- Only schedules instances on hosts if there is sufficient disk space available for root and ephemeral storage. You can configure this filter to enable a fixed amount of disk overcommitment by using the ``disk_allocation_ratio`` configuration option in the ``nova.conf`` configuration file. The default setting disables the possibility of the overcommitment and allows launching a VM only if there is a sufficient amount of disk space available on a host: .. code-block:: ini disk_allocation_ratio = 1.0 DiskFilter always considers the value of the ``disk_available_least`` property and not the one of the ``free_disk_gb`` property of a hypervisor's statistics: .. code-block:: console $ openstack hypervisor stats show +----------------------+-------+ | Field | Value | +----------------------+-------+ | count | 1 | | current_workload | 0 | | disk_available_least | 14 | | free_disk_gb | 27 | | free_ram_mb | 15374 | | local_gb | 27 | | local_gb_used | 0 | | memory_mb | 15886 | | memory_mb_used | 512 | | running_vms | 0 | | vcpus | 8 | | vcpus_used | 0 | +----------------------+-------+ As it can be viewed from the command output above, the amount of the available disk space can be less than the amount of the free disk space. It happens because the ``disk_available_least`` property accounts for the virtual size rather than the actual size of images. If you use an image format that is sparse or copy on write so that each virtual instance does not require a 1:1 allocation of a virtual disk to a physical storage, it may be useful to allow the overcommitment of disk space. To enable scheduling instances while overcommitting disk resources on the node, adjust the value of the ``disk_allocation_ratio`` configuration option to greater than ``1.0``: .. code-block:: none disk_allocation_ratio > 1.0 .. note:: If the value is set to ``>1``, we recommend keeping track of the free disk space, as the value approaching ``0`` may result in the incorrect functioning of instances using it at the moment. ExactCoreFilter --------------- Only schedules instances on hosts if host has the exact number of CPU cores. ExactDiskFilter --------------- Only schedules instances on hosts if host has the exact amount of disk available. ExactRamFilter -------------- Only schedules instances on hosts if host has the exact number of RAM available. .. _ImagePropertiesFilter: ImagePropertiesFilter --------------------- Filters hosts based on properties defined on the instance's image. It passes hosts that can support the specified image properties contained in the instance. Properties include the architecture, hypervisor type, hypervisor version (for Xen hypervisor type only), and virtual machine mode. For example, an instance might require a host that runs an ARM-based processor, and QEMU as the hypervisor. You can decorate an image with these properties by using: .. code-block:: console $ openstack image set --architecture arm --property hypervisor_type=qemu \ img-uuid The image properties that the filter checks for are: ``architecture`` describes the machine architecture required by the image. Examples are ``i686``, ``x86_64``, ``arm``, and ``ppc64``. ``hypervisor_type`` describes the hypervisor required by the image. Examples are ``xen``, ``qemu``, and ``xenapi``. .. note:: ``qemu`` is used for both QEMU and KVM hypervisor types. ``hypervisor_version_requires`` describes the hypervisor version required by the image. The property is supported for Xen hypervisor type only. It can be used to enable support for multiple hypervisor versions, and to prevent instances with newer Xen tools from being provisioned on an older version of a hypervisor. If available, the property value is compared to the hypervisor version of the compute host. To filter the hosts by the hypervisor version, add the ``hypervisor_version_requires`` property on the image as metadata and pass an operator and a required hypervisor version as its value: .. code-block:: console $ openstack image set --property hypervisor_type=xen --property \ hypervisor_version_requires=">=4.3" img-uuid ``vm_mode`` describes the hypervisor application binary interface (ABI) required by the image. Examples are ``xen`` for Xen 3.0 paravirtual ABI, ``hvm`` for native ABI, ``uml`` for User Mode Linux paravirtual ABI, ``exe`` for container virt executable ABI. IsolatedHostsFilter ------------------- Allows the admin to define a special (isolated) set of images and a special (isolated) set of hosts, such that the isolated images can only run on the isolated hosts, and the isolated hosts can only run isolated images. The flag ``restrict_isolated_hosts_to_isolated_images`` can be used to force isolated hosts to only run isolated images. The admin must specify the isolated set of images and hosts in the ``nova.conf`` file using the ``isolated_hosts`` and ``isolated_images`` configuration options. For example: .. code-block:: ini [filter_scheduler] isolated_hosts = server1, server2 isolated_images = 342b492c-128f-4a42-8d3a-c5088cf27d13, ebd267a6-ca86-4d6c-9a0e-bd132d6b7d09 .. _IoOpsFilter: IoOpsFilter ----------- The IoOpsFilter filters hosts by concurrent I/O operations on it. Hosts with too many concurrent I/O operations will be filtered out. The ``max_io_ops_per_host`` option specifies the maximum number of I/O intensive instances allowed to run on a host. A host will be ignored by the scheduler if more than ``max_io_ops_per_host`` instances in build, resize, snapshot, migrate, rescue or unshelve task states are running on it. JsonFilter ---------- The JsonFilter allows a user to construct a custom filter by passing a scheduler hint in JSON format. The following operators are supported: * = * < * > * in * <= * >= * not * or * and The filter supports the following variables: * ``$free_ram_mb`` * ``$free_disk_mb`` * ``$total_usable_ram_mb`` * ``$vcpus_total`` * ``$vcpus_used`` Using the :command:`openstack server create` command, use the ``--hint`` flag: .. code-block:: console $ openstack server create --image 827d564a-e636-4fc4-a376-d36f7ebe1747 \ --flavor 1 --hint query='[">=","$free_ram_mb",1024]' server1 With the API, use the ``os:scheduler_hints`` key: .. code-block:: json { "server": { "name": "server-1", "imageRef": "cedef40a-ed67-4d10-800e-17455edce175", "flavorRef": "1" }, "os:scheduler_hints": { "query": "[>=,$free_ram_mb,1024]" } } MetricsFilter ------------- Filters hosts based on meters ``weight_setting``. Only hosts with the available meters are passed so that the metrics weigher will not fail due to these hosts. NUMATopologyFilter ------------------ Filters hosts based on the NUMA topology that was specified for the instance through the use of flavor ``extra_specs`` in combination with the image properties, as described in detail in the `related nova-spec document `_. Filter will try to match the exact NUMA cells of the instance to those of the host. It will consider the standard over-subscription limits each cell, and provide limits to the compute host accordingly. .. note:: If instance has no topology defined, it will be considered for any host. If instance has a topology defined, it will be considered only for NUMA capable hosts. .. _NumInstancesFilter: NumInstancesFilter ------------------ Hosts that have more instances running than specified by the ``max_instances_per_host`` option are filtered out when this filter is in place. PciPassthroughFilter -------------------- The filter schedules instances on a host if the host has devices that meet the device requests in the ``extra_specs`` attribute for the flavor. .. _RamFilter: RamFilter --------- Only schedules instances on hosts that have sufficient RAM available. If this filter is not set, the scheduler may over provision a host based on RAM (for example, the RAM allocated by virtual machine instances may exceed the physical RAM). You can configure this filter to enable a fixed amount of RAM overcommitment by using the ``ram_allocation_ratio`` configuration option in ``nova.conf``. The default setting is: .. code-block:: ini ram_allocation_ratio = 1.5 This setting enables 1.5 GB instances to run on any compute node with 1 GB of free RAM. RetryFilter ----------- Filters out hosts that have already been attempted for scheduling purposes. If the scheduler selects a host to respond to a service request, and the host fails to respond to the request, this filter prevents the scheduler from retrying that host for the service request. This filter is only useful if the ``scheduler_max_attempts`` configuration option is set to a value greater than zero. SameHostFilter -------------- Schedules the instance on the same host as another instance in a set of instances. To take advantage of this filter, the requester must pass a scheduler hint, using ``same_host`` as the key and a list of instance UUIDs as the value. This filter is the opposite of the ``DifferentHostFilter``. Using the :command:`openstack server create` command, use the ``--hint`` flag: .. code-block:: console $ openstack server create --image cedef40a-ed67-4d10-800e-17455edce175 \ --flavor 1 --hint same_host=a0cf03a5-d921-4877-bb5c-86d26cf818e1 \ --hint same_host=8c19174f-4220-44f0-824a-cd1eeef10287 server-1 With the API, use the ``os:scheduler_hints`` key: .. code-block:: json { "server": { "name": "server-1", "imageRef": "cedef40a-ed67-4d10-800e-17455edce175", "flavorRef": "1" }, "os:scheduler_hints": { "same_host": [ "a0cf03a5-d921-4877-bb5c-86d26cf818e1", "8c19174f-4220-44f0-824a-cd1eeef10287" ] } } .. _ServerGroupAffinityFilter: ServerGroupAffinityFilter ------------------------- The ServerGroupAffinityFilter ensures that an instance is scheduled on to a host from a set of group hosts. To take advantage of this filter, the requester must create a server group with an ``affinity`` policy, and pass a scheduler hint, using ``group`` as the key and the server group UUID as the value. Using the :command:`openstack server create` command, use the ``--hint`` flag. For example: .. code-block:: console $ openstack server group create --policy affinity group-1 $ openstack server create --image IMAGE_ID --flavor 1 \ --hint group=SERVER_GROUP_UUID server-1 .. _ServerGroupAntiAffinityFilter: ServerGroupAntiAffinityFilter ----------------------------- The ServerGroupAntiAffinityFilter ensures that each instance in a group is on a different host. To take advantage of this filter, the requester must create a server group with an ``anti-affinity`` policy, and pass a scheduler hint, using ``group`` as the key and the server group UUID as the value. Using the :command:`openstack server create` command, use the ``--hint`` flag. For example: .. code-block:: console $ openstack server group create --policy anti-affinity group-1 $ openstack server create --image IMAGE_ID --flavor 1 \ --hint group=SERVER_GROUP_UUID server-1 SimpleCIDRAffinityFilter ------------------------ Schedules the instance based on host IP subnet range. To take advantage of this filter, the requester must specify a range of valid IP address in CIDR format, by passing two scheduler hints: ``build_near_host_ip`` The first IP address in the subnet (for example, ``192.168.1.1``) ``cidr`` The CIDR that corresponds to the subnet (for example, ``/24``) Using the :command:`openstack server create` command, use the ``--hint`` flag. For example, to specify the IP subnet ``192.168.1.1/24``: .. code-block:: console $ openstack server create --image cedef40a-ed67-4d10-800e-17455edce175 \ --flavor 1 --hint build_near_host_ip=192.168.1.1 --hint cidr=/24 server-1 With the API, use the ``os:scheduler_hints`` key: .. code-block:: json { "server": { "name": "server-1", "imageRef": "cedef40a-ed67-4d10-800e-17455edce175", "flavorRef": "1" }, "os:scheduler_hints": { "build_near_host_ip": "192.168.1.1", "cidr": "24" } } Cell filters ~~~~~~~~~~~~ The following sections describe the available cell filters. DifferentCellFilter ------------------- Schedules the instance on a different cell from a set of instances. To take advantage of this filter, the requester must pass a scheduler hint, using ``different_cell`` as the key and a list of instance UUIDs as the value. ImagePropertiesFilter --------------------- Filters cells based on properties defined on the instance's image. This filter works specifying the hypervisor required in the image metadata and the supported hypervisor version in cell capabilities. TargetCellFilter ---------------- Filters target cells. This filter works by specifying a scheduler hint of ``target_cell``. The value should be the full cell path. .. _weights: Weights ~~~~~~~ When resourcing instances, the filter scheduler filters and weights each host in the list of acceptable hosts. Each time the scheduler selects a host, it virtually consumes resources on it, and subsequent selections are adjusted accordingly. This process is useful when the customer asks for the same large amount of instances, because weight is computed for each requested instance. All weights are normalized before being summed up; the host with the largest weight is given the highest priority. **Weighting hosts** .. figure:: /figures/nova-weighting-hosts.png If cells are used, cells are weighted by the scheduler in the same manner as hosts. Hosts and cells are weighted based on the following options in the ``/etc/nova/nova.conf`` file: .. list-table:: Host weighting options :header-rows: 1 :widths: 10, 25, 60 * - Section - Option - Description * - [DEFAULT] - ``ram_weight_multiplier`` - By default, the scheduler spreads instances across all hosts evenly. Set the ``ram_weight_multiplier`` option to a negative number if you prefer stacking instead of spreading. Use a floating-point value. * - [DEFAULT] - ``scheduler_host_subset_size`` - New instances are scheduled on a host that is chosen randomly from a subset of the N best hosts. This property defines the subset size from which a host is chosen. A value of 1 chooses the first host returned by the weighting functions. This value must be at least 1. A value less than 1 is ignored, and 1 is used instead. Use an integer value. * - [DEFAULT] - ``scheduler_weight_classes`` - Defaults to ``nova.scheduler.weights.all_weighers``. Hosts are then weighted and sorted with the largest weight winning. * - [DEFAULT] - ``io_ops_weight_multiplier`` - Multiplier used for weighing host I/O operations. A negative value means a preference to choose light workload compute hosts. * - [DEFAULT] - ``soft_affinity_weight_multiplier`` - Multiplier used for weighing hosts for group soft-affinity. Only a positive value is meaningful. Negative means that the behavior will change to the opposite, which is soft-anti-affinity. * - [DEFAULT] - ``soft_anti_affinity_weight_multiplier`` - Multiplier used for weighing hosts for group soft-anti-affinity. Only a positive value is meaningful. Negative means that the behavior will change to the opposite, which is soft-affinity. * - [filter_scheduler] - ``build_failure_weight_multiplier`` - Multiplier used for weighing hosts which have recent build failures. A positive value increases the significance of build falures reported by the host recently, making them less likely to be chosen. * - [metrics] - ``weight_multiplier`` - Multiplier for weighting meters. Use a floating-point value. * - [metrics] - ``weight_setting`` - Determines how meters are weighted. Use a comma-separated list of metricName=ratio. For example: ``name1=1.0, name2=-1.0`` results in: ``name1.value * 1.0 + name2.value * -1.0`` * - [metrics] - ``required`` - Specifies how to treat unavailable meters: * True - Raises an exception. To avoid the raised exception, you should use the scheduler filter ``MetricFilter`` to filter out hosts with unavailable meters. * False - Treated as a negative factor in the weighting process (uses the ``weight_of_unavailable`` option). * - [metrics] - ``weight_of_unavailable`` - If ``required`` is set to False, and any one of the meters set by ``weight_setting`` is unavailable, the ``weight_of_unavailable`` value is returned to the scheduler. For example: .. code-block:: ini [DEFAULT] scheduler_host_subset_size = 1 scheduler_weight_classes = nova.scheduler.weights.all_weighers ram_weight_multiplier = 1.0 io_ops_weight_multiplier = 2.0 soft_affinity_weight_multiplier = 1.0 soft_anti_affinity_weight_multiplier = 1.0 [metrics] weight_multiplier = 1.0 weight_setting = name1=1.0, name2=-1.0 required = false weight_of_unavailable = -10000.0 .. list-table:: Cell weighting options :header-rows: 1 :widths: 10, 25, 60 * - Section - Option - Description * - [cells] - ``mute_weight_multiplier`` - Multiplier to weight mute children (hosts which have not sent capacity or capacity updates for some time). Use a negative, floating-point value. * - [cells] - ``offset_weight_multiplier`` - Multiplier to weight cells, so you can specify a preferred cell. Use a floating point value. * - [cells] - ``ram_weight_multiplier`` - By default, the scheduler spreads instances across all cells evenly. Set the ``ram_weight_multiplier`` option to a negative number if you prefer stacking instead of spreading. Use a floating-point value. * - [cells] - ``scheduler_weight_classes`` - Defaults to ``nova.cells.weights.all_weighers``, which maps to all cell weighers included with Compute. Cells are then weighted and sorted with the largest weight winning. For example: .. code-block:: ini [cells] scheduler_weight_classes = nova.cells.weights.all_weighers mute_weight_multiplier = -10.0 ram_weight_multiplier = 1.0 offset_weight_multiplier = 1.0 Chance scheduler ~~~~~~~~~~~~~~~~ As an administrator, you work with the filter scheduler. However, the Compute service also uses the Chance Scheduler, ``nova.scheduler.chance.ChanceScheduler``, which randomly selects from lists of filtered hosts. Utilization aware scheduling ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ It is possible to schedule VMs using advanced scheduling decisions. These decisions are made based on enhanced usage statistics encompassing data like memory cache utilization, memory bandwidth utilization, or network bandwidth utilization. This is disabled by default. The administrator can configure how the metrics are weighted in the configuration file by using the ``weight_setting`` configuration option in the ``nova.conf`` configuration file. For example to configure metric1 with ratio1 and metric2 with ratio2: .. code-block:: ini weight_setting = "metric1=ratio1, metric2=ratio2" .. _host-aggregates: Host aggregates and availability zones ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Host aggregates are a mechanism for partitioning hosts in an OpenStack cloud, or a region of an OpenStack cloud, based on arbitrary characteristics. Examples where an administrator may want to do this include where a group of hosts have additional hardware or performance characteristics. Host aggregates are not explicitly exposed to users. Instead administrators map flavors to host aggregates. Administrators do this by setting metadata on a host aggregate, and matching flavor extra specifications. The scheduler then endeavors to match user requests for instance of the given flavor to a host aggregate with the same key-value pair in its metadata. Compute nodes can be in more than one host aggregate. Administrators are able to optionally expose a host aggregate as an availability zone. Availability zones are different from host aggregates in that they are explicitly exposed to the user, and hosts can only be in a single availability zone. Administrators can configure a default availability zone where instances will be scheduled when the user fails to specify one. Command-line interface ---------------------- The :command:`nova` command-line client supports the following aggregate-related commands. nova aggregate-list Print a list of all aggregates. nova aggregate-create [] Create a new aggregate named ````, and optionally in availability zone ``[]`` if specified. The command returns the ID of the newly created aggregate. Hosts can be made available to multiple host aggregates. Be careful when adding a host to an additional host aggregate when the host is also in an availability zone. Pay attention when using the :command:`nova aggregate-set-metadata` and :command:`nova aggregate-update` commands to avoid user confusion when they boot instances in different availability zones. An error occurs if you cannot add a particular host to an aggregate zone for which it is not intended. nova aggregate-delete Delete an aggregate with its ```` or ````. nova aggregate-show Show details of the aggregate with its ```` or ````. nova aggregate-add-host Add host with name ```` to aggregate with its ```` or ````. nova aggregate-remove-host Remove the host with name ```` from the aggregate with its ```` or ````. nova aggregate-set-metadata [ ...] Add or update metadata (key-value pairs) associated with the aggregate with its ```` or ````. nova aggregate-update [--name ] [--availability-zone ] Update the name and/or availability zone for the aggregate. nova host-list List all hosts by service. It has been depricated since microversion 2.43. Use :command:`nova hypervisor-list` instead. nova hypervisor-list [--matching ] [--marker ] [--limit ] List hypervisors. nova host-update [--status ] [--maintenance ] Put/resume host into/from maintenance. It has been depricated since microversion 2.43. To enable or disable a service, use :command:`nova service-enable` or :command:`nova service-disable` instead. nova service-enable Enable the service. nova service-disable [--reason ] Disable the service. .. note:: Only administrators can access these commands. If you try to use these commands and the user name and tenant that you use to access the Compute service do not have the ``admin`` role or the appropriate privileges, these errors occur: .. code-block:: console ERROR: Policy doesn't allow compute_extension:aggregates to be performed. (HTTP 403) (Request-ID: req-299fbff6-6729-4cef-93b2-e7e1f96b4864) .. code-block:: console ERROR: Policy doesn't allow compute_extension:hosts to be performed. (HTTP 403) (Request-ID: req-ef2400f6-6776-4ea3-b6f1-7704085c27d1) Configure scheduler to support host aggregates ---------------------------------------------- One common use case for host aggregates is when you want to support scheduling instances to a subset of compute hosts because they have a specific capability. For example, you may want to allow users to request compute hosts that have SSD drives if they need access to faster disk I/O, or access to compute hosts that have GPU cards to take advantage of GPU-accelerated code. To configure the scheduler to support host aggregates, the ``scheduler_default_filters`` configuration option must contain the ``AggregateInstanceExtraSpecsFilter`` in addition to the other filters used by the scheduler. Add the following line to ``/etc/nova/nova.conf`` on the host that runs the ``nova-scheduler`` service to enable host aggregates filtering, as well as the other filters that are typically enabled: .. code-block:: ini scheduler_default_filters=AggregateInstanceExtraSpecsFilter,RetryFilter,AvailabilityZoneFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter .. _bug-1804125: .. note:: Regarding the `AggregateCoreFilter`_, `AggregateDiskFilter`_ and `AggregateRamFilter`_, starting in 15.0.0 (Ocata) there is a behavior change where aggregate-based overcommit ratios will no longer be honored during scheduling for the FilterScheduler. Instead, overcommit values must be set on a per-compute-node basis in the Nova configuration files. If you have been relying on per-aggregate overcommit, during your upgrade, you must change to using per-compute-node overcommit ratios in order for your scheduling behavior to stay consistent. Otherwise, you may notice increased NoValidHost scheduling failures as the aggregate-based overcommit is no longer being considered. See `bug 1804125 `_ for more details. Example: Specify compute hosts with SSDs ---------------------------------------- This example configures the Compute service to enable users to request nodes that have solid-state drives (SSDs). You create a ``fast-io`` host aggregate in the ``nova`` availability zone and you add the ``ssd=true`` key-value pair to the aggregate. Then, you add the ``node1``, and ``node2`` compute nodes to it. .. code-block:: console $ openstack aggregate create --zone nova fast-io +-------------------+----------------------------+ | Field | Value | +-------------------+----------------------------+ | availability_zone | nova | | created_at | 2016-12-22T07:31:13.013466 | | deleted | False | | deleted_at | None | | id | 1 | | name | fast-io | | updated_at | None | +-------------------+----------------------------+ $ openstack aggregate set --property ssd=true 1 +-------------------+----------------------------+ | Field | Value | +-------------------+----------------------------+ | availability_zone | nova | | created_at | 2016-12-22T07:31:13.000000 | | deleted | False | | deleted_at | None | | hosts | [] | | id | 1 | | name | fast-io | | properties | ssd='true' | | updated_at | None | +-------------------+----------------------------+ $ openstack aggregate add host 1 node1 +-------------------+--------------------------------------------------+ | Field | Value | +-------------------+--------------------------------------------------+ | availability_zone | nova | | created_at | 2016-12-22T07:31:13.000000 | | deleted | False | | deleted_at | None | | hosts | [u'node1'] | | id | 1 | | metadata | {u'ssd': u'true', u'availability_zone': u'nova'} | | name | fast-io | | updated_at | None | +-------------------+--------------------------------------------------+ $ openstack aggregate add host 1 node2 +-------------------+--------------------------------------------------+ | Field | Value | +-------------------+--------------------------------------------------+ | availability_zone | nova | | created_at | 2016-12-22T07:31:13.000000 | | deleted | False | | deleted_at | None | | hosts | [u'node1', u'node2'] | | id | 1 | | metadata | {u'ssd': u'true', u'availability_zone': u'nova'} | | name | fast-io | | updated_at | None | +-------------------+--------------------------------------------------+ Use the :command:`openstack flavor create` command to create the ``ssd.large`` flavor called with an ID of 6, 8 GB of RAM, 80 GB root disk, and 4 vCPUs. .. code-block:: console $ openstack flavor create --id 6 --ram 8192 --disk 80 --vcpus 4 ssd.large +----------------------------+-----------+ | Field | Value | +----------------------------+-----------+ | OS-FLV-DISABLED:disabled | False | | OS-FLV-EXT-DATA:ephemeral | 0 | | disk | 80 | | id | 6 | | name | ssd.large | | os-flavor-access:is_public | True | | ram | 8192 | | rxtx_factor | 1.0 | | swap | | | vcpus | 4 | +----------------------------+-----------+ Once the flavor is created, specify one or more key-value pairs that match the key-value pairs on the host aggregates with scope ``aggregate_instance_extra_specs``. In this case, that is the ``aggregate_instance_extra_specs:ssd=true`` key-value pair. Setting a key-value pair on a flavor is done using the :command:`openstack flavor set` command. .. code-block:: console $ openstack flavor set --property aggregate_instance_extra_specs:ssd=true ssd.large Once it is set, you should see the ``extra_specs`` property of the ``ssd.large`` flavor populated with a key of ``ssd`` and a corresponding value of ``true``. .. code-block:: console $ openstack flavor show ssd.large +----------------------------+-------------------------------------------+ | Field | Value | +----------------------------+-------------------------------------------+ | OS-FLV-DISABLED:disabled | False | | OS-FLV-EXT-DATA:ephemeral | 0 | | disk | 80 | | id | 6 | | name | ssd.large | | os-flavor-access:is_public | True | | properties | aggregate_instance_extra_specs:ssd='true' | | ram | 8192 | | rxtx_factor | 1.0 | | swap | | | vcpus | 4 | +----------------------------+-------------------------------------------+ Now, when a user requests an instance with the ``ssd.large`` flavor, the scheduler only considers hosts with the ``ssd=true`` key-value pair. In this example, these are ``node1`` and ``node2``. XenServer hypervisor pools to support live migration ---------------------------------------------------- When using the XenAPI-based hypervisor, the Compute service uses host aggregates to manage XenServer Resource pools, which are used in supporting live migration. nova-17.0.13/doc/source/admin/security-groups.rst0000664000175000017500000003131013556316250021727 0ustar zuulzuul00000000000000======================= Manage project security ======================= Security groups are sets of IP filter rules that are applied to all project instances, which define networking access to the instance. Group rules are project specific; project members can edit the default rules for their group and add new rule sets. All projects have a ``default`` security group which is applied to any instance that has no other defined security group. Unless you change the default, this security group denies all incoming traffic and allows only outgoing traffic to your instance. You can use the ``allow_same_net_traffic`` option in the ``/etc/nova/nova.conf`` file to globally control whether the rules apply to hosts which share a network. There are two possible values: ``True`` (default) Hosts on the same subnet are not filtered and are allowed to pass all types of traffic between them. On a flat network, this allows all instances from all projects unfiltered communication. With VLAN networking, this allows access between instances within the same project. You can also simulate this setting by configuring the default security group to allow all traffic from the subnet. ``False`` Security groups are enforced for all connections. Additionally, the number of maximum rules per security group is controlled by the ``security_group_rules`` and the number of allowed security groups per project is controlled by the ``security_groups`` quota (see :ref:`manage-quotas`). List and view current security groups ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ From the command-line you can get a list of security groups for the project, using the :command:`openstack` and :command:`nova` commands: #. Ensure your system variables are set for the user and project for which you are checking security group rules. For example: .. code-block:: console export OS_USERNAME=demo00 export OS_TENANT_NAME=tenant01 #. Output security groups, as follows: .. code-block:: console $ openstack security group list +--------------------------------------+---------+-------------+ | Id | Name | Description | +--------------------------------------+---------+-------------+ | 73580272-d8fa-4927-bd55-c85e43bc4877 | default | default | | 6777138a-deb7-4f10-8236-6400e7aff5b0 | open | all ports | +--------------------------------------+---------+-------------+ #. View the details of a group, as follows: .. code-block:: console $ openstack security group rule list GROUPNAME For example: .. code-block:: console $ openstack security group rule list open +--------------------------------------+-------------+-----------+-----------------+-----------------------+ | ID | IP Protocol | IP Range | Port Range | Remote Security Group | +--------------------------------------+-------------+-----------+-----------------+-----------------------+ | 353d0611-3f67-4848-8222-a92adbdb5d3a | udp | 0.0.0.0/0 | 1:65535 | None | | 63536865-e5b6-4df1-bac5-ca6d97d8f54d | tcp | 0.0.0.0/0 | 1:65535 | None | +--------------------------------------+-------------+-----------+-----------------+-----------------------+ These rules are allow type rules as the default is deny. The first column is the IP protocol (one of ICMP, TCP, or UDP). The second and third columns specify the affected port range. The third column specifies the IP range in CIDR format. This example shows the full port range for all protocols allowed from all IPs. Create a security group ~~~~~~~~~~~~~~~~~~~~~~~ When adding a new security group, you should pick a descriptive but brief name. This name shows up in brief descriptions of the instances that use it where the longer description field often does not. For example, seeing that an instance is using security group "http" is much easier to understand than "bobs\_group" or "secgrp1". #. Ensure your system variables are set for the user and project for which you are creating security group rules. #. Add the new security group, as follows: .. code-block:: console $ openstack security group create GroupName --description Description For example: .. code-block:: console $ openstack security group create global_http --description "Allows Web traffic anywhere on the Internet." +-----------------+--------------------------------------------------------------------------------------------------------------------------+ | Field | Value | +-----------------+--------------------------------------------------------------------------------------------------------------------------+ | created_at | 2016-11-03T13:50:53Z | | description | Allows Web traffic anywhere on the Internet. | | headers | | | id | c0b92b20-4575-432a-b4a9-eaf2ad53f696 | | name | global_http | | project_id | 5669caad86a04256994cdf755df4d3c1 | | project_id | 5669caad86a04256994cdf755df4d3c1 | | revision_number | 1 | | rules | created_at='2016-11-03T13:50:53Z', direction='egress', ethertype='IPv4', id='4d8cec94-e0ee-4c20-9f56-8fb67c21e4df', | | | project_id='5669caad86a04256994cdf755df4d3c1', revision_number='1', updated_at='2016-11-03T13:50:53Z' | | | created_at='2016-11-03T13:50:53Z', direction='egress', ethertype='IPv6', id='31be2ad1-be14-4aef-9492-ecebede2cf12', | | | project_id='5669caad86a04256994cdf755df4d3c1', revision_number='1', updated_at='2016-11-03T13:50:53Z' | | updated_at | 2016-11-03T13:50:53Z | +-----------------+--------------------------------------------------------------------------------------------------------------------------+ #. Add a new group rule, as follows: .. code-block:: console $ openstack security group rule create SEC_GROUP_NAME \ --protocol PROTOCOL --dst-port FROM_PORT:TO_PORT --remote-ip CIDR The arguments are positional, and the ``from-port`` and ``to-port`` arguments specify the local port range connections are allowed to access, not the source and destination ports of the connection. For example: .. code-block:: console $ openstack security group rule create global_http \ --protocol tcp --dst-port 80:80 --remote-ip 0.0.0.0/0 +-------------------+--------------------------------------+ | Field | Value | +-------------------+--------------------------------------+ | created_at | 2016-11-06T14:02:00Z | | description | | | direction | ingress | | ethertype | IPv4 | | headers | | | id | 2ba06233-d5c8-43eb-93a9-8eaa94bc9eb5 | | port_range_max | 80 | | port_range_min | 80 | | project_id | 5669caad86a04256994cdf755df4d3c1 | | project_id | 5669caad86a04256994cdf755df4d3c1 | | protocol | tcp | | remote_group_id | None | | remote_ip_prefix | 0.0.0.0/0 | | revision_number | 1 | | security_group_id | c0b92b20-4575-432a-b4a9-eaf2ad53f696 | | updated_at | 2016-11-06T14:02:00Z | +-------------------+--------------------------------------+ You can create complex rule sets by creating additional rules. For example, if you want to pass both HTTP and HTTPS traffic, run: .. code-block:: console $ openstack security group rule create global_http \ --protocol tcp --dst-port 443:443 --remote-ip 0.0.0.0/0 +-------------------+--------------------------------------+ | Field | Value | +-------------------+--------------------------------------+ | created_at | 2016-11-06T14:09:20Z | | description | | | direction | ingress | | ethertype | IPv4 | | headers | | | id | 821c3ef6-9b21-426b-be5b-c8a94c2a839c | | port_range_max | 443 | | port_range_min | 443 | | project_id | 5669caad86a04256994cdf755df4d3c1 | | project_id | 5669caad86a04256994cdf755df4d3c1 | | protocol | tcp | | remote_group_id | None | | remote_ip_prefix | 0.0.0.0/0 | | revision_number | 1 | | security_group_id | c0b92b20-4575-432a-b4a9-eaf2ad53f696 | | updated_at | 2016-11-06T14:09:20Z | +-------------------+--------------------------------------+ Despite only outputting the newly added rule, this operation is additive (both rules are created and enforced). #. View all rules for the new security group, as follows: .. code-block:: console $ openstack security group rule list global_http +--------------------------------------+-------------+-----------+-----------------+-----------------------+ | ID | IP Protocol | IP Range | Port Range | Remote Security Group | +--------------------------------------+-------------+-----------+-----------------+-----------------------+ | 353d0611-3f67-4848-8222-a92adbdb5d3a | tcp | 0.0.0.0/0 | 80:80 | None | | 63536865-e5b6-4df1-bac5-ca6d97d8f54d | tcp | 0.0.0.0/0 | 443:443 | None | +--------------------------------------+-------------+-----------+-----------------+-----------------------+ Delete a security group ~~~~~~~~~~~~~~~~~~~~~~~ #. Ensure your system variables are set for the user and project for which you are deleting a security group. #. Delete the new security group, as follows: .. code-block:: console $ openstack security group delete GROUPNAME For example: .. code-block:: console $ openstack security group delete global_http Create security group rules for a cluster of instances ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Source Groups are a special, dynamic way of defining the CIDR of allowed sources. The user specifies a Source Group (Security Group name), and all the user's other Instances using the specified Source Group are selected dynamically. This alleviates the need for individual rules to allow each new member of the cluster. #. Make sure to set the system variables for the user and project for which you are creating a security group rule. #. Add a source group, as follows: .. code-block:: console $ openstack security group rule create secGroupName \ --remote-group source-group --protocol ip-protocol \ --dst-port from-port:to-port For example: .. code-block:: console $ openstack security group rule create cluster \ --remote-group global_http --protocol tcp --dst-port 22:22 The ``cluster`` rule allows SSH access from any other instance that uses the ``global_http`` group. nova-17.0.13/doc/source/admin/virtual-gpu.rst0000664000175000017500000002124013556316250021023 0ustar zuulzuul00000000000000======================================= Attaching virtual GPU devices to guests ======================================= The virtual GPU feature in Nova allows a deployment to provide specific GPU types for instances using physical GPUs that can provide virtual devices. For example, a single `Intel GVT-g`_ or a `NVIDIA GRID vGPU`_ physical Graphics Processing Unit (pGPU) can be virtualized as multiple virtual Graphics Processing Units (vGPUs) if the hypervisor supports the hardware driver and has the capability to create guests using those virtual devices. This feature is highly dependent on the hypervisor, its version and the physical devices present on the host. .. important:: As of the Queens release, there is no upstream continuous integration testing with a hardware environment that has virtual GPUs and therefore this feature is considered experimental. Hypervisor-specific caveats are mentioned in the `Caveats`_ section. To enable virtual GPUs, follow the steps below: #. `Enable GPU types (Compute)`_ #. `Configure a flavor (Controller)`_ Enable GPU types (Compute) -------------------------- #. Specify which specific GPU type(s) the instances would get. Edit :oslo.config:option:`devices.enabled_vgpu_types`: .. code-block:: ini [devices] enabled_vgpu_types = nvidia-35 .. note:: As of the Queens release, Nova only supports a single type. If more than one vGPU type is specified (as a comma-separated list), only the first one will be used. To know which specific type(s) to mention, please refer to `How to discover a GPU type`_. #. Restart the ``nova-compute`` service. Configure a flavor (Controller) ------------------------------- Configure a flavor to request one virtual GPU: .. code-block:: console $ openstack flavor set vgpu_1 --property "resources:VGPU=1" .. note:: As of the Queens release, all hypervisors that support virtual GPUs only accept a single virtual GPU per instance. The enabled vGPU types on the compute hosts are not exposed to API users. Flavors configured for vGPU support can be tied to host aggregates as a means to properly schedule those flavors onto the compute hosts that support them. See the `host aggregates`_ guide for more information. .. _host aggregates: https://docs.openstack.org/nova/latest/user/aggregates.html Create instances with virtual GPU devices ----------------------------------------- The ``nova-scheduler`` selects a destination host that has vGPU devices available by calling the Placement API for a specific VGPU resource class provided by compute nodes. .. code-block:: console $ openstack server create --flavor vgpu_1 --image cirros-0.3.5-x86_64-uec --wait test-vgpu .. note:: As of the Queens release, only the *FilterScheduler* scheduler driver uses the Placement API. How to discover a GPU type -------------------------- Depending on your hypervisor: - For libvirt, virtual GPUs are seen as mediated devices. Physical PCI devices (the graphic card here) supporting virtual GPUs propose mediated device (mdev) types. Since mediated devices are supported by the Linux kernel through sysfs files, you can see the required properties as follows: .. code-block:: console $ ls /sys/class/mdev_bus/*/mdev_supported_types /sys/class/mdev_bus/0000:84:00.0/mdev_supported_types: nvidia-35 nvidia-36 nvidia-37 nvidia-38 nvidia-39 nvidia-40 nvidia-41 nvidia-42 nvidia-43 nvidia-44 nvidia-45 /sys/class/mdev_bus/0000:85:00.0/mdev_supported_types: nvidia-35 nvidia-36 nvidia-37 nvidia-38 nvidia-39 nvidia-40 nvidia-41 nvidia-42 nvidia-43 nvidia-44 nvidia-45 /sys/class/mdev_bus/0000:86:00.0/mdev_supported_types: nvidia-35 nvidia-36 nvidia-37 nvidia-38 nvidia-39 nvidia-40 nvidia-41 nvidia-42 nvidia-43 nvidia-44 nvidia-45 /sys/class/mdev_bus/0000:87:00.0/mdev_supported_types: nvidia-35 nvidia-36 nvidia-37 nvidia-38 nvidia-39 nvidia-40 nvidia-41 nvidia-42 nvidia-43 nvidia-44 nvidia-45 - For XenServer, virtual GPU types are created by XenServer at startup depending on the available hardware and config files present in dom0. You can run the command of ``xe vgpu-type-list`` from dom0 to get the available vGPU types. The value for the field of ``model-name ( RO):`` is the vGPU type's name which can be used to set the nova config option ``[devices]/enabled_vgpu_types``. See the following example: .. code-block:: console [root@trailblazer-2 ~]# xe vgpu-type-list uuid ( RO) : 78d2d963-41d6-4130-8842-aedbc559709f vendor-name ( RO): NVIDIA Corporation model-name ( RO): GRID M60-8Q max-heads ( RO): 4 max-resolution ( RO): 4096x2160 uuid ( RO) : a1bb1692-8ce3-4577-a611-6b4b8f35a5c9 vendor-name ( RO): NVIDIA Corporation model-name ( RO): GRID M60-0Q max-heads ( RO): 2 max-resolution ( RO): 2560x1600 uuid ( RO) : 69d03200-49eb-4002-b661-824aec4fd26f vendor-name ( RO): NVIDIA Corporation model-name ( RO): GRID M60-2A max-heads ( RO): 1 max-resolution ( RO): 1280x1024 uuid ( RO) : c58b1007-8b47-4336-95aa-981a5634d03d vendor-name ( RO): NVIDIA Corporation model-name ( RO): GRID M60-4Q max-heads ( RO): 4 max-resolution ( RO): 4096x2160 uuid ( RO) : 292a2b20-887f-4a13-b310-98a75c53b61f vendor-name ( RO): NVIDIA Corporation model-name ( RO): GRID M60-2Q max-heads ( RO): 4 max-resolution ( RO): 4096x2160 uuid ( RO) : d377db6b-a068-4a98-92a8-f94bd8d6cc5d vendor-name ( RO): NVIDIA Corporation model-name ( RO): GRID M60-0B max-heads ( RO): 2 max-resolution ( RO): 2560x1600 ... Caveats ------- .. note:: This information is correct as of the 17.0.0 Queens release. Where improvements have been made or issues fixed, they are noted per item. For libvirt: * Suspending a guest that has vGPUs doesn't yet work because of a libvirt limitation (it can't hot-unplug mediated devices from a guest). Workarounds using other instance actions (like snapshotting the instance or shelving it) are recommended until libvirt gains mdev hot-unplug support. If a user attempts to suspend the instance, the libvirt driver will raise an exception that will cause the instance to be set back to ACTIVE. The ``suspend`` action in the ``os-instance-actions`` API will have an *Error* state. * Resizing an instance with a new flavor that has vGPU resources doesn't allocate those vGPUs to the instance (the instance is created without vGPU resources). The proposed workaround is to rebuild the instance after resizing it. The rebuild operation allocates vGPUS to the instance. * Cold migrating an instance to another host will have the same problem as resize. If you want to migrate an instance, make sure to rebuild it after the migration. * Rescue images do not use vGPUs. An instance being rescued does not keep its vGPUs during rescue. During that time, another instance can receive those vGPUs. This is a known issue. The recommended workaround is to rebuild an instance immediately after rescue. However, rebuilding the rescued instance only helps if there are other free vGPUs on the host. .. note:: This has been resolved in the Rocky release [#]_. For XenServer: * Suspend and live migration with vGPUs attached depends on support from the underlying XenServer version. Please see XenServer release notes for up to date information on when a hypervisor supporting live migration and suspend/resume with vGPUs is available. If a suspend or live migrate operation is attempted with a XenServer version that does not support that operation, an internal exception will occur that will cause nova setting the instance to be in ERROR status. You can use the command of ``openstack server set --state active `` to set it back to ACTIVE. * Resizing an instance with a new flavor that has vGPU resources doesn't allocate those vGPUs to the instance (the instance is created without vGPU resources). The proposed workaround is to rebuild the instance after resizing it. The rebuild operation allocates vGPUS to the instance. * Cold migrating an instance to another host will have the same problem as resize. If you want to migrate an instance, make sure to rebuild it after the migration. .. [#] https://bugs.launchpad.net/nova/+bug/1762688 .. Links .. _Intel GVT-g: https://01.org/igvt-g .. _NVIDIA GRID vGPU: http://docs.nvidia.com/grid/5.0/pdf/grid-vgpu-user-guide.pdf nova-17.0.13/doc/source/admin/common/0000775000175000017500000000000013556316574017314 5ustar zuulzuul00000000000000nova-17.0.13/doc/source/admin/common/nova-show-usage-statistics-for-hosts-instances.rst0000664000175000017500000002037513556316250031166 0ustar zuulzuul00000000000000============================================= Show usage statistics for hosts and instances ============================================= You can show basic statistics on resource usage for hosts and instances. .. note:: For more sophisticated monitoring, see the `ceilometer `__ project. You can also use tools, such as `Ganglia `__ or `Graphite `__, to gather more detailed data. Show host usage statistics ~~~~~~~~~~~~~~~~~~~~~~~~~~ The following examples show the host usage statistics for a host called ``devstack``. * List the hosts and the nova-related services that run on them: .. code-block:: console $ openstack host list +-----------+-------------+----------+ | Host Name | Service | Zone | +-----------+-------------+----------+ | devstack | conductor | internal | | devstack | compute | nova | | devstack | cert | internal | | devstack | network | internal | | devstack | scheduler | internal | | devstack | consoleauth | internal | +-----------+-------------+----------+ * Get a summary of resource usage of all of the instances running on the host: .. code-block:: console $ openstack host show devstack +----------+----------------------------------+-----+-----------+---------+ | Host | Project | CPU | MEMORY MB | DISK GB | +----------+----------------------------------+-----+-----------+---------+ | devstack | (total) | 2 | 4003 | 157 | | devstack | (used_now) | 3 | 5120 | 40 | | devstack | (used_max) | 3 | 4608 | 40 | | devstack | b70d90d65e464582b6b2161cf3603ced | 1 | 512 | 0 | | devstack | 66265572db174a7aa66eba661f58eb9e | 2 | 4096 | 40 | +----------+----------------------------------+-----+-----------+---------+ The ``CPU`` column shows the sum of the virtual CPUs for instances running on the host. The ``MEMORY MB`` column shows the sum of the memory (in MB) allocated to the instances that run on the host. The ``DISK GB`` column shows the sum of the root and ephemeral disk sizes (in GB) of the instances that run on the host. The row that has the value ``used_now`` in the ``PROJECT`` column shows the sum of the resources allocated to the instances that run on the host, plus the resources allocated to the virtual machine of the host itself. The row that has the value ``used_max`` in the ``PROJECT`` column shows the sum of the resources allocated to the instances that run on the host. .. note:: These values are computed by using information about the flavors of the instances that run on the hosts. This command does not query the CPU usage, memory usage, or hard disk usage of the physical host. Show instance usage statistics ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * Get CPU, memory, I/O, and network statistics for an instance. #. List instances: .. code-block:: console $ openstack server list +----------+----------------------+--------+------------+-------------+------------------+------------+ | ID | Name | Status | Task State | Power State | Networks | Image Name | +----------+----------------------+--------+------------+-------------+------------------+------------+ | 84c6e... | myCirrosServer | ACTIVE | None | Running | private=10.0.0.3 | cirros | | 8a995... | myInstanceFromVolume | ACTIVE | None | Running | private=10.0.0.4 | ubuntu | +----------+----------------------+--------+------------+-------------+------------------+------------+ #. Get diagnostic statistics: .. note:: As of microversion v2.48, diagnostics information for all virt drivers will have a standard format as below. For more details on diagnostics response message see `server diagnostics api `__ documentation. .. code-block:: console $ nova diagnostics myCirrosServer +----------------+------------------------------------------------------------------------+ | Property | Value | +----------------+------------------------------------------------------------------------+ | config_drive | False | | cpu_details | [] | | disk_details | [{"read_requests": 887, "errors_count": -1, "read_bytes": 20273152, | | | "write_requests": 89, "write_bytes": 303104}] | | driver | libvirt | | hypervisor | qemu | | hypervisor_os | linux | | memory_details | {"used": 0, "maximum": 0} | | nic_details | [{"rx_packets": 9, "rx_drop": 0, "tx_octets": 1464, "tx_errors": 0, | | | "mac_address": "fa:16:3e:fa:db:d3", "rx_octets": 958, "rx_rate": null, | | | "rx_errors": 0, "tx_drop": 0, "tx_packets": 9, "tx_rate": null}] | | num_cpus | 0 | | num_disks | 1 | | num_nics | 1 | | state | running | | uptime | 5528 | +----------------+------------------------------------------------------------------------+ ``config_drive`` indicates if the config drive is supported on the instance. ``cpu_details`` contains a list of details per vCPU. ``disk_details`` contains a list of details per disk. ``driver`` indicates the current driver on which the VM is running. ``hypervisor`` indicates the current hypervisor on which the VM is running. ``nic_details`` contains a list of details per vNIC. ``uptime`` is the amount of time in seconds that the VM has been running. | Diagnostics prior to v2.48: .. code-block:: console $ nova diagnostics myCirrosServer +---------------------------+--------+ | Property | Value | +---------------------------+--------+ | memory | 524288 | | memory-actual | 524288 | | memory-rss | 6444 | | tap1fec8fb8-7a_rx | 22137 | | tap1fec8fb8-7a_rx_drop | 0 | | tap1fec8fb8-7a_rx_errors | 0 | | tap1fec8fb8-7a_rx_packets | 166 | | tap1fec8fb8-7a_tx | 18032 | | tap1fec8fb8-7a_tx_drop | 0 | | tap1fec8fb8-7a_tx_errors | 0 | | tap1fec8fb8-7a_tx_packets | 130 | | vda_errors | -1 | | vda_read | 2048 | | vda_read_req | 2 | | vda_write | 182272 | | vda_write_req | 74 | +---------------------------+--------+ * Get summary statistics for each project: .. code-block:: console $ openstack usage list Usage from 2013-06-25 to 2013-07-24: +---------+---------+--------------+-----------+---------------+ | Project | Servers | RAM MB-Hours | CPU Hours | Disk GB-Hours | +---------+---------+--------------+-----------+---------------+ | demo | 1 | 344064.44 | 672.00 | 0.00 | | stack | 3 | 671626.76 | 327.94 | 6558.86 | +---------+---------+--------------+-----------+---------------+ nova-17.0.13/doc/source/admin/flavors.rst0000664000175000017500000001100013556316250020211 0ustar zuulzuul00000000000000============== Manage Flavors ============== Admin users can use the :command:`openstack flavor` command to customize and manage flavors. To see information for this command, run: .. code-block:: console $ openstack flavor --help Command "flavor" matches: flavor create flavor delete flavor list flavor set flavor show flavor unset .. note:: Configuration rights can be delegated to additional users by redefining the access controls for ``os_compute_api:os-flavor-manage`` in ``/etc/nova/policy.json`` on the ``nova-api`` server. .. note:: Flavor customization can be limited by the hypervisor in use. For example the libvirt driver enables quotas on CPUs available to a VM, disk tuning, bandwidth I/O, watchdog behavior, random number generator device control, and instance VIF traffic control. For information on the flavors and flavor extra specs, refer to :doc:`/user/flavors`. Create a flavor --------------- #. List flavors to show the ID and name, the amount of memory, the amount of disk space for the root partition and for the ephemeral partition, the swap, and the number of virtual CPUs for each flavor: .. code-block:: console $ openstack flavor list #. To create a flavor, specify a name, ID, RAM size, disk size, and the number of vCPUs for the flavor, as follows: .. code-block:: console $ openstack flavor create FLAVOR_NAME --id FLAVOR_ID \ --ram RAM_IN_MB --disk ROOT_DISK_IN_GB --vcpus NUMBER_OF_VCPUS .. note:: Unique ID (integer or UUID) for the new flavor. If specifying 'auto', a UUID will be automatically generated. Here is an example that creates a public ``m1.extra_tiny`` flavor that automatically gets an ID assigned, with 256 MB memory, no disk space, and one VCPU. .. code-block:: console $ openstack flavor create --public m1.extra_tiny --id auto \ --ram 256 --disk 0 --vcpus 1 #. If an individual user or group of users needs a custom flavor that you do not want other projects to have access to, you can create a private flavor. .. code-block:: console $ openstack flavor create --private m1.extra_tiny --id auto \ --ram 256 --disk 0 --vcpus 1 After you create a flavor, assign it to a project by specifying the flavor name or ID and the project ID: .. code-block:: console $ openstack flavor set --project PROJECT_ID m1.extra_tiny For a list of optional parameters, run this command: .. code-block:: console $ openstack help flavor create #. In addition, you can set or unset properties, commonly referred to as "extra specs", for the existing flavor. The ``extra_specs`` metadata keys can influence the instance directly when it is launched. If a flavor sets the ``quota:vif_outbound_peak=65536`` extra spec, the instance's outbound peak bandwidth I/O should be less than or equal to 512 Mbps. There are several aspects that can work for an instance including *CPU limits*, *Disk tuning*, *Bandwidth I/O*, *Watchdog behavior*, and *Random-number generator*. For information about available metadata keys, see :doc:`/user/flavors`. For a list of optional parameters, run this command: .. code-block:: console $ openstack flavor set --help Modify a flavor --------------- Only the description of flavors can be modified (starting from microversion 2.55). To modify the description of a flavor, specify the flavor name or ID and a new description as follows: .. code-block:: console $ nova flavor-update FLAVOR DESCRIPTION .. note:: There are no commands to update a description of a flavor in the :command:`openstack` command currently (version 3.15.0). Delete a flavor --------------- To delete a flavor, specify the flavor name or ID as follows: .. code-block:: console $ openstack flavor delete FLAVOR Default Flavors --------------- Previous versions of nova typically deployed with default flavors. This was removed from Newton. The following table lists the default flavors for Mitaka and earlier. ============ ========= =============== =============== Flavor VCPUs Disk (in GB) RAM (in MB) ============ ========= =============== =============== m1.tiny 1 1 512 m1.small 1 20 2048 m1.medium 2 40 4096 m1.large 4 80 8192 m1.xlarge 8 160 16384 ============ ========= =============== =============== nova-17.0.13/doc/source/admin/default-ports.rst0000664000175000017500000000210413556316250021333 0ustar zuulzuul00000000000000========================================== Compute service node firewall requirements ========================================== Console connections for virtual machines, whether direct or through a proxy, are received on ports ``5900`` to ``5999``. The firewall on each Compute service node must allow network traffic on these ports. This procedure modifies the iptables firewall to allow incoming connections to the Compute services. **Configuring the service-node firewall** #. Log in to the server that hosts the Compute service, as root. #. Edit the ``/etc/sysconfig/iptables`` file, to add an INPUT rule that allows TCP traffic on ports from ``5900`` to ``5999``. Make sure the new rule appears before any INPUT rules that REJECT traffic: .. code-block:: console -A INPUT -p tcp -m multiport --dports 5900:5999 -j ACCEPT #. Save the changes to the ``/etc/sysconfig/iptables`` file, and restart the ``iptables`` service to pick up the changes: .. code-block:: console $ service iptables restart #. Repeat this process for each Compute service node. nova-17.0.13/doc/source/admin/services.rst0000664000175000017500000000752613556316250020402 0ustar zuulzuul00000000000000======================= Manage Compute services ======================= You can enable and disable Compute services. The following examples disable and enable the ``nova-compute`` service. #. List the Compute services: .. code-block:: console $ openstack compute service list +----+--------------+------------+----------+---------+-------+--------------+ | ID | Binary | Host | Zone | Status | State | Updated At | +----+--------------+------------+----------+---------+-------+--------------+ | 4 | nova- | controller | internal | enabled | up | 2016-12-20T0 | | | consoleauth | | | | | 0:44:48.0000 | | | | | | | | 00 | | 5 | nova- | controller | internal | enabled | up | 2016-12-20T0 | | | scheduler | | | | | 0:44:48.0000 | | | | | | | | 00 | | 6 | nova- | controller | internal | enabled | up | 2016-12-20T0 | | | conductor | | | | | 0:44:54.0000 | | | | | | | | 00 | | 9 | nova-compute | compute | nova | enabled | up | 2016-10-21T0 | | | | | | | | 2:35:03.0000 | | | | | | | | 00 | +----+--------------+------------+----------+---------+-------+--------------+ #. Disable a nova service: .. code-block:: console $ openstack compute service set --disable --disable-reason "trial log" compute nova-compute +----------+--------------+----------+-------------------+ | Host | Binary | Status | Disabled Reason | +----------+--------------+----------+-------------------+ | compute | nova-compute | disabled | trial log | +----------+--------------+----------+-------------------+ #. Check the service list: .. code-block:: console $ openstack compute service list +----+--------------+------------+----------+---------+-------+--------------+ | ID | Binary | Host | Zone | Status | State | Updated At | +----+--------------+------------+----------+---------+-------+--------------+ | 4 | nova- | controller | internal | enabled | up | 2016-12-20T0 | | | consoleauth | | | | | 0:44:48.0000 | | | | | | | | 00 | | 5 | nova- | controller | internal | enabled | up | 2016-12-20T0 | | | scheduler | | | | | 0:44:48.0000 | | | | | | | | 00 | | 6 | nova- | controller | internal | enabled | up | 2016-12-20T0 | | | conductor | | | | | 0:44:54.0000 | | | | | | | | 00 | | 9 | nova-compute | compute | nova | disabled| up | 2016-10-21T0 | | | | | | | | 2:35:03.0000 | | | | | | | | 00 | +----+--------------+------------+----------+---------+-------+--------------+ #. Enable the service: .. code-block:: console $ openstack compute service set --enable compute nova-compute +----------+--------------+---------+ | Host | Binary | Status | +----------+--------------+---------+ | compute | nova-compute | enabled | +----------+--------------+---------+ nova-17.0.13/doc/source/admin/system-admin.rst0000664000175000017500000000550213556316250021161 0ustar zuulzuul00000000000000.. _compute-trusted-pools.rst: ===================== System administration ===================== .. toctree:: :maxdepth: 2 manage-users.rst manage-volumes.rst flavors.rst default-ports.rst admin-password-injection.rst manage-the-cloud.rst manage-logs.rst root-wrap-reference.rst configuring-migrations.rst live-migration-usage.rst remote-console-access.rst service-groups.rst node-down.rst adv-config.rst To effectively administer compute, you must understand how the different installed nodes interact with each other. Compute can be installed in many different ways using multiple servers, but generally multiple compute nodes control the virtual servers and a cloud controller node contains the remaining Compute services. The Compute cloud works using a series of daemon processes named ``nova-*`` that exist persistently on the host machine. These binaries can all run on the same machine or be spread out on multiple boxes in a large deployment. The responsibilities of services and drivers are: **Services** ``nova-api`` Receives XML requests and sends them to the rest of the system. A WSGI app routes and authenticates requests. Supports the OpenStack Compute APIs. A ``nova.conf`` configuration file is created when Compute is installed. ``nova-cert`` Manages certificates. ``nova-compute`` Manages virtual machines. Loads a Service object, and exposes the public methods on ComputeManager through a Remote Procedure Call (RPC). ``nova-conductor`` Provides database-access support for compute nodes (thereby reducing security risks). ``nova-consoleauth`` Manages console authentication. ``nova-objectstore`` A simple file-based storage system for images that replicates most of the S3 API. It can be replaced with OpenStack Image service and either a simple image manager or OpenStack Object Storage as the virtual machine image storage facility. It must exist on the same node as ``nova-compute``. ``nova-network`` Manages floating and fixed IPs, DHCP, bridging and VLANs. Loads a Service object which exposes the public methods on one of the subclasses of NetworkManager. Different networking strategies are available by changing the ``network_manager`` configuration option to ``FlatManager``, ``FlatDHCPManager``, or ``VLANManager`` (defaults to ``VLANManager`` if nothing is specified). ``nova-scheduler`` Dispatches requests for new virtual machines to the correct node. ``nova-novncproxy`` Provides a VNC proxy for browsers, allowing VNC consoles to access virtual machines. .. note:: Some services have drivers that change how the service implements its core functionality. For example, the ``nova-compute`` service supports drivers that let you choose which hypervisor type it can use. ``nova-network`` and ``nova-scheduler`` also have drivers. nova-17.0.13/doc/source/admin/root-wrap-reference.rst0000664000175000017500000001142013556316250022431 0ustar zuulzuul00000000000000==================== Secure with rootwrap ==================== Rootwrap allows unprivileged users to safely run Compute actions as the root user. Compute previously used :command:`sudo` for this purpose, but this was difficult to maintain, and did not allow advanced filters. The :command:`rootwrap` command replaces :command:`sudo` for Compute. To use rootwrap, prefix the Compute command with :command:`nova-rootwrap`. For example: .. code-block:: console $ sudo nova-rootwrap /etc/nova/rootwrap.conf command A generic ``sudoers`` entry lets the Compute user run :command:`nova-rootwrap` as root. The :command:`nova-rootwrap` code looks for filter definition directories in its configuration file, and loads command filters from them. It then checks if the command requested by Compute matches one of those filters and, if so, executes the command (as root). If no filter matches, it denies the request. .. note:: Be aware of issues with using NFS and root-owned files. The NFS share must be configured with the ``no_root_squash`` option enabled, in order for rootwrap to work correctly. Rootwrap is fully controlled by the root user. The root user owns the sudoers entry which allows Compute to run a specific rootwrap executable as root, and only with a specific configuration file (which should also be owned by root). The :command:`nova-rootwrap` command imports the Python modules it needs from a cleaned, system-default PYTHONPATH. The root-owned configuration file points to root-owned filter definition directories, which contain root-owned filters definition files. This chain ensures that the Compute user itself is not in control of the configuration or modules used by the :command:`nova-rootwrap` executable. Configure rootwrap ~~~~~~~~~~~~~~~~~~ Configure rootwrap in the ``rootwrap.conf`` file. Because it is in the trusted security path, it must be owned and writable by only the root user. The ``rootwrap_config=entry`` parameter specifies the file's location in the sudoers entry and in the ``nova.conf`` configuration file. The ``rootwrap.conf`` file uses an INI file format with these sections and parameters: .. list-table:: **rootwrap.conf configuration options** :widths: 64 31 * - Configuration option=Default value - (Type) Description * - [DEFAULT] filters\_path=/etc/nova/rootwrap.d,/usr/share/nova/rootwrap - (ListOpt) Comma-separated list of directories containing filter definition files. Defines where rootwrap filters are stored. Directories defined on this line should all exist, and be owned and writable only by the root user. If the root wrapper is not performing correctly, you can add a workaround option into the ``nova.conf`` configuration file. This workaround re-configures the root wrapper configuration to fall back to running commands as ``sudo``, and is a Kilo release feature. Including this workaround in your configuration file safeguards your environment from issues that can impair root wrapper performance. Tool changes that have impacted `Python Build Reasonableness (PBR) `__ for example, are a known issue that affects root wrapper performance. To set up this workaround, configure the ``disable_rootwrap`` option in the ``[workaround]`` section of the ``nova.conf`` configuration file. The filters definition files contain lists of filters that rootwrap will use to allow or deny a specific command. They are generally suffixed by ``.filters`` . Since they are in the trusted security path, they need to be owned and writable only by the root user. Their location is specified in the ``rootwrap.conf`` file. Filter definition files use an INI file format with a ``[Filters]`` section and several lines, each with a unique parameter name, which should be different for each filter you define: .. list-table:: **Filters configuration options** :widths: 72 39 * - Configuration option=Default value - (Type) Description * - [Filters] filter\_name=kpartx: CommandFilter, /sbin/kpartx, root - (ListOpt) Comma-separated list containing the filter class to use, followed by the Filter arguments (which vary depending on the Filter class selected). Configure the rootwrap daemon ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Administrators can use rootwrap daemon support instead of running rootwrap with :command:`sudo`. The rootwrap daemon reduces the overhead and performance loss that results from running ``oslo.rootwrap`` with :command:`sudo`. Each call that needs rootwrap privileges requires a new instance of rootwrap. The daemon prevents overhead from the repeated calls. The daemon does not support long running processes, however. To enable the rootwrap daemon, set ``use_rootwrap_daemon`` to ``True`` in the Compute service configuration file. nova-17.0.13/doc/source/admin/manage-users.rst0000664000175000017500000000072613556316250021141 0ustar zuulzuul00000000000000.. _section_manage-compute-users: ==================== Manage Compute users ==================== Access to the Euca2ools (ec2) API is controlled by an access key and a secret key. The user's access key needs to be included in the request, and the request must be signed with the secret key. Upon receipt of API requests, Compute verifies the signature and runs commands on behalf of the user. To begin using Compute, you must create a user with the Identity service. nova-17.0.13/doc/source/admin/pci-passthrough.rst0000664000175000017500000001175513556316250021676 0ustar zuulzuul00000000000000======================================== Attaching physical PCI devices to guests ======================================== The PCI passthrough feature in OpenStack allows full access and direct control of a physical PCI device in guests. This mechanism is generic for any kind of PCI device, and runs with a Network Interface Card (NIC), Graphics Processing Unit (GPU), or any other devices that can be attached to a PCI bus. Correct driver installation is the only requirement for the guest to properly use the devices. Some PCI devices provide Single Root I/O Virtualization and Sharing (SR-IOV) capabilities. When SR-IOV is used, a physical device is virtualized and appears as multiple PCI devices. Virtual PCI devices are assigned to the same or different guests. In the case of PCI passthrough, the full physical device is assigned to only one guest and cannot be shared. .. note:: For information on creating servers with virtual SR-IOV devices to guests, refer to the `Networking Guide`_. Attaching SR-IOV ports to existing servers is not currently supported, see `bug 1708433 `_ for details. To enable PCI passthrough, follow the steps below: #. Configure nova-scheduler (Controller) #. Configure nova-api (Controller)** #. Configure a flavor (Controller) #. Enable PCI passthrough (Compute) #. Configure PCI devices in nova-compute (Compute) .. note:: The PCI device with address ``0000:41:00.0`` is used as an example. This will differ between environments. Configure nova-scheduler (Controller) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #. Configure ``nova-scheduler`` as specified in `Configure nova-scheduler`_. #. Restart the ``nova-scheduler`` service. Configure nova-api (Controller) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #. Specify the PCI alias for the device. Configure a PCI alias ``a1`` to request a PCI device with a ``vendor_id`` of ``0x8086`` and a ``product_id`` of ``0x154d``. The ``vendor_id`` and ``product_id`` correspond the PCI device with address ``0000:41:00.0``. Edit ``/etc/nova/nova.conf``: .. code-block:: ini [pci] alias = { "vendor_id":"8086", "product_id":"154d", "device_type":"type-PF", "name":"a1" } For more information about the syntax of ``alias``, refer to :doc:`/configuration/config`. #. Restart the ``nova-api`` service. Configure a flavor (Controller) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Configure a flavor to request two PCI devices, each with ``vendor_id`` of ``0x8086`` and ``product_id`` of ``0x154d``: .. code-block:: console # openstack flavor set m1.large --property "pci_passthrough:alias"="a1:2" For more information about the syntax for ``pci_passthrough:alias``, refer to :doc:`/admin/flavors`. Enable PCI passthrough (Compute) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Enable VT-d and IOMMU. For more information, refer to steps one and two in `Create Virtual Functions`_. Configure PCI devices (Compute) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #. Configure ``nova-compute`` to allow the PCI device to pass through to VMs. Edit ``/etc/nova/nova.conf``: .. code-block:: ini [pci] passthrough_whitelist = { "address": "0000:41:00.0" } Alternatively specify multiple PCI devices using whitelisting: .. code-block:: ini [pci] passthrough_whitelist = { "vendor_id": "8086", "product_id": "10fb" } All PCI devices matching the ``vendor_id`` and ``product_id`` are added to the pool of PCI devices available for passthrough to VMs. For more information about the syntax of ``passthrough_whitelist``, refer to :doc:`/configuration/config`. #. Specify the PCI alias for the device. From the Newton release, to resize guest with PCI device, configure the PCI alias on the compute node as well. Configure a PCI alias ``a1`` to request a PCI device with a ``vendor_id`` of ``0x8086`` and a ``product_id`` of ``0x154d``. The ``vendor_id`` and ``product_id`` correspond the PCI device with address ``0000:41:00.0``. Edit ``/etc/nova/nova.conf``: .. code-block:: ini [pci] alias = { "vendor_id":"8086", "product_id":"154d", "device_type":"type-PF", "name":"a1" } For more information about the syntax of ``alias``, refer to :doc:`/configuration/config`. #. Restart the ``nova-compute`` service. Create instances with PCI passthrough devices ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The ``nova-scheduler`` selects a destination host that has PCI devices available with the specified ``vendor_id`` and ``product_id`` that matches the ``alias`` from the flavor. .. code-block:: console # openstack server create --flavor m1.large --image cirros-0.3.5-x86_64-uec --wait test-pci .. Links .. _`Create Virtual Functions`: https://docs.openstack.org/neutron/latest/admin/config-sriov.html#create-virtual-functions-compute .. _`Configure nova-scheduler`: https://docs.openstack.org/neutron/latest/admin/config-sriov.html#configure-nova-scheduler-controller .. _`Networking Guide`: https://docs.openstack.org/neutron/latest/admin/config-sriov.html nova-17.0.13/doc/source/admin/cpu-topologies.rst0000664000175000017500000003732113556316250021524 0ustar zuulzuul00000000000000============== CPU topologies ============== The NUMA topology and CPU pinning features in OpenStack provide high-level control over how instances run on hypervisor CPUs and the topology of virtual CPUs available to instances. These features help minimize latency and maximize performance. .. include:: /common/numa-live-migration-warning.txt SMP, NUMA, and SMT ~~~~~~~~~~~~~~~~~~ Symmetric multiprocessing (SMP) SMP is a design found in many modern multi-core systems. In an SMP system, there are two or more CPUs and these CPUs are connected by some interconnect. This provides CPUs with equal access to system resources like memory and input/output ports. Non-uniform memory access (NUMA) NUMA is a derivative of the SMP design that is found in many multi-socket systems. In a NUMA system, system memory is divided into cells or nodes that are associated with particular CPUs. Requests for memory on other nodes are possible through an interconnect bus. However, bandwidth across this shared bus is limited. As a result, competition for this resource can incur performance penalties. Simultaneous Multi-Threading (SMT) SMT is a design complementary to SMP. Whereas CPUs in SMP systems share a bus and some memory, CPUs in SMT systems share many more components. CPUs that share components are known as thread siblings. All CPUs appear as usable CPUs on the system and can execute workloads in parallel. However, as with NUMA, threads compete for shared resources. In OpenStack, SMP CPUs are known as *cores*, NUMA cells or nodes are known as *sockets*, and SMT CPUs are known as *threads*. For example, a quad-socket, eight core system with Hyper-Threading would have four sockets, eight cores per socket and two threads per core, for a total of 64 CPUs. Configuring compute nodes for instances with NUMA placement policies ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Hyper-V is configured by default to allow instances to span multiple NUMA nodes, regardless if the instances have been configured to only span N NUMA nodes. This behaviour allows Hyper-V instances to have up to 64 vCPUs and 1 TB of memory. Checking NUMA spanning can easily be done by running this following powershell command: .. code-block:: console (Get-VMHost).NumaSpanningEnabled In order to disable this behaviour, the host will have to be configured to disable NUMA spanning. This can be done by executing these following powershell commands: .. code-block:: console Set-VMHost -NumaSpanningEnabled $false Restart-Service vmms In order to restore this behaviour, execute these powershell commands: .. code-block:: console Set-VMHost -NumaSpanningEnabled $true Restart-Service vmms The ``vmms`` service (Virtual Machine Management Service) is responsible for managing the Hyper-V VMs. The VMs will still run while the service is down or restarting, but they will not be manageable by the ``nova-compute`` service. In order for the effects of the Host NUMA spanning configuration to take effect, the VMs will have to be restarted. Hyper-V does not allow instances with a NUMA topology to have dynamic memory allocation turned on. The Hyper-V driver will ignore the configured ``dynamic_memory_ratio`` from the given ``nova.conf`` file when spawning instances with a NUMA topology. Customizing instance NUMA placement policies ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. important:: The functionality described below is currently only supported by the libvirt/KVM and Hyper-V driver. When running workloads on NUMA hosts, it is important that the vCPUs executing processes are on the same NUMA node as the memory used by these processes. This ensures all memory accesses are local to the node and thus do not consume the limited cross-node memory bandwidth, adding latency to memory accesses. Similarly, large pages are assigned from memory and benefit from the same performance improvements as memory allocated using standard pages. Thus, they also should be local. Finally, PCI devices are directly associated with specific NUMA nodes for the purposes of DMA. Instances that use PCI or SR-IOV devices should be placed on the NUMA node associated with these devices. By default, an instance floats across all NUMA nodes on a host. NUMA awareness can be enabled implicitly through the use of huge pages or pinned CPUs or explicitly through the use of flavor extra specs or image metadata. In all cases, the ``NUMATopologyFilter`` filter must be enabled. Details on this filter are provided in :doc:`/admin/configuration/schedulers` in Nova configuration guide. .. caution:: The NUMA node(s) used are normally chosen at random. However, if a PCI passthrough or SR-IOV device is attached to the instance, then the NUMA node that the device is associated with will be used. This can provide important performance improvements. However, booting a large number of similar instances can result in unbalanced NUMA node usage. Care should be taken to mitigate this issue. See this `discussion`_ for more details. .. caution:: Inadequate per-node resources will result in scheduling failures. Resources that are specific to a node include not only CPUs and memory, but also PCI and SR-IOV resources. It is not possible to use multiple resources from different nodes without requesting a multi-node layout. As such, it may be necessary to ensure PCI or SR-IOV resources are associated with the same NUMA node or force a multi-node layout. When used, NUMA awareness allows the operating system of the instance to intelligently schedule the workloads that it runs and minimize cross-node memory bandwidth. To restrict an instance's vCPUs to a single host NUMA node, run: .. code-block:: console $ openstack flavor set m1.large --property hw:numa_nodes=1 Some workloads have very demanding requirements for memory access latency or bandwidth that exceed the memory bandwidth available from a single NUMA node. For such workloads, it is beneficial to spread the instance across multiple host NUMA nodes, even if the instance's RAM/vCPUs could theoretically fit on a single NUMA node. To force an instance's vCPUs to spread across two host NUMA nodes, run: .. code-block:: console $ openstack flavor set m1.large --property hw:numa_nodes=2 The allocation of instances vCPUs and memory from different host NUMA nodes can be configured. This allows for asymmetric allocation of vCPUs and memory, which can be important for some workloads. To spread the 6 vCPUs and 6 GB of memory of an instance across two NUMA nodes and create an asymmetric 1:2 vCPU and memory mapping between the two nodes, run: .. code-block:: console $ openstack flavor set m1.large --property hw:numa_nodes=2 $ openstack flavor set m1.large \ # configure guest node 0 --property hw:numa_cpus.0=0,1 \ --property hw:numa_mem.0=2048 $ openstack flavor set m1.large \ # configure guest node 1 --property hw:numa_cpus.1=2,3,4,5 \ --property hw:numa_mem.1=4096 .. note:: Hyper-V does not support asymmetric NUMA topologies, and the Hyper-V driver will not spawn instances with such topologies. For more information about the syntax for ``hw:numa_nodes``, ``hw:numa_cpus.N`` and ``hw:num_mem.N``, refer to the :ref:`NUMA topology ` guide. Customizing instance CPU pinning policies ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. important:: The functionality described below is currently only supported by the libvirt/KVM driver. Hyper-V does not support CPU pinning. By default, instance vCPU processes are not assigned to any particular host CPU, instead, they float across host CPUs like any other process. This allows for features like overcommitting of CPUs. In heavily contended systems, this provides optimal system performance at the expense of performance and latency for individual instances. Some workloads require real-time or near real-time behavior, which is not possible with the latency introduced by the default CPU policy. For such workloads, it is beneficial to control which host CPUs are bound to an instance's vCPUs. This process is known as pinning. No instance with pinned CPUs can use the CPUs of another pinned instance, thus preventing resource contention between instances. To configure a flavor to use pinned vCPUs, a use a dedicated CPU policy. To force this, run: .. code-block:: console $ openstack flavor set m1.large --property hw:cpu_policy=dedicated .. caution:: Host aggregates should be used to separate pinned instances from unpinned instances as the latter will not respect the resourcing requirements of the former. When running workloads on SMT hosts, it is important to be aware of the impact that thread siblings can have. Thread siblings share a number of components and contention on these components can impact performance. To configure how to use threads, a CPU thread policy should be specified. For workloads where sharing benefits performance, use thread siblings. To force this, run: .. code-block:: console $ openstack flavor set m1.large \ --property hw:cpu_policy=dedicated \ --property hw:cpu_thread_policy=require For other workloads where performance is impacted by contention for resources, use non-thread siblings or non-SMT hosts. To force this, run: .. code-block:: console $ openstack flavor set m1.large \ --property hw:cpu_policy=dedicated \ --property hw:cpu_thread_policy=isolate Finally, for workloads where performance is minimally impacted, use thread siblings if available. This is the default, but it can be set explicitly: .. code-block:: console $ openstack flavor set m1.large \ --property hw:cpu_policy=dedicated \ --property hw:cpu_thread_policy=prefer For more information about the syntax for ``hw:cpu_policy`` and ``hw:cpu_thread_policy``, refer to the :doc:`/admin/flavors` guide. Applications are frequently packaged as images. For applications that require real-time or near real-time behavior, configure image metadata to ensure created instances are always pinned regardless of flavor. To configure an image to use pinned vCPUs and avoid thread siblings, run: .. code-block:: console $ openstack image set [IMAGE_ID] \ --property hw_cpu_policy=dedicated \ --property hw_cpu_thread_policy=isolate If the flavor specifies a CPU policy of ``dedicated`` then that policy will be used. If the flavor explicitly specifies a CPU policy of ``shared`` and the image specifies no policy or a policy of ``shared`` then the ``shared`` policy will be used, but if the image specifies a policy of ``dedicated`` an exception will be raised. By setting a ``shared`` policy through flavor extra-specs, administrators can prevent users configuring CPU policies in images and impacting resource utilization. To configure this policy, run: .. code-block:: console $ openstack flavor set m1.large --property hw:cpu_policy=shared If the flavor does not specify a CPU thread policy then the CPU thread policy specified by the image (if any) will be used. If both the flavor and image specify a CPU thread policy then they must specify the same policy, otherwise an exception will be raised. .. note:: There is no correlation required between the NUMA topology exposed in the instance and how the instance is actually pinned on the host. This is by design. See this `invalid bug `_ for more information. For more information about image metadata, refer to the `Image metadata`_ guide. Customizing instance CPU topologies ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. important:: The functionality described below is currently only supported by the libvirt/KVM driver. .. note:: Currently it also works with libvirt/QEMU driver but we don't recommend it in production use cases. This is because vCPUs are actually running in one thread on host in qemu TCG (Tiny Code Generator), which is the backend for libvirt/QEMU driver. Work to enable full multi-threading support for TCG (a.k.a. MTTCG) is on going in QEMU community. Please see this `MTTCG project`_ page for detail. In addition to configuring how an instance is scheduled on host CPUs, it is possible to configure how CPUs are represented in the instance itself. By default, when instance NUMA placement is not specified, a topology of N sockets, each with one core and one thread, is used for an instance, where N corresponds to the number of instance vCPUs requested. When instance NUMA placement is specified, the number of sockets is fixed to the number of host NUMA nodes to use and the total number of instance CPUs is split over these sockets. Some workloads benefit from a custom topology. For example, in some operating systems, a different license may be needed depending on the number of CPU sockets. To configure a flavor to use a maximum of two sockets, run: .. code-block:: console $ openstack flavor set m1.large --property hw:cpu_sockets=2 Similarly, to configure a flavor to use one core and one thread, run: .. code-block:: console $ openstack flavor set m1.large \ --property hw:cpu_cores=1 \ --property hw:cpu_threads=1 .. caution:: If specifying all values, the product of sockets multiplied by cores multiplied by threads must equal the number of instance vCPUs. If specifying any one of these values or the multiple of two values, the values must be a factor of the number of instance vCPUs to prevent an exception. For example, specifying ``hw:cpu_sockets=2`` on a host with an odd number of cores fails. Similarly, specifying ``hw:cpu_cores=2`` and ``hw:cpu_threads=4`` on a host with ten cores fails. For more information about the syntax for ``hw:cpu_sockets``, ``hw:cpu_cores`` and ``hw:cpu_threads``, refer to the :doc:`/admin/flavors` guide. It is also possible to set upper limits on the number of sockets, cores, and threads used. Unlike the hard values above, it is not necessary for this exact number to used because it only provides a limit. This can be used to provide some flexibility in scheduling, while ensuring certain limits are not exceeded. For example, to ensure no more than two sockets are defined in the instance topology, run: .. code-block:: console $ openstack flavor set m1.large --property hw:cpu_max_sockets=2 For more information about the syntax for ``hw:cpu_max_sockets``, ``hw:cpu_max_cores``, and ``hw:cpu_max_threads``, refer to the :doc:`/admin/flavors` guide. Applications are frequently packaged as images. For applications that prefer certain CPU topologies, configure image metadata to hint that created instances should have a given topology regardless of flavor. To configure an image to request a two-socket, four-core per socket topology, run: .. code-block:: console $ openstack image set [IMAGE_ID] \ --property hw_cpu_sockets=2 \ --property hw_cpu_cores=4 To constrain instances to a given limit of sockets, cores or threads, use the ``max_`` variants. To configure an image to have a maximum of two sockets and a maximum of one thread, run: .. code-block:: console $ openstack image set [IMAGE_ID] \ --property hw_cpu_max_sockets=2 \ --property hw_cpu_max_threads=1 The value specified in the flavor is treated as the absolute limit. The image limits are not permitted to exceed the flavor limits, they can only be equal to or lower than what the flavor defines. By setting a ``max`` value for sockets, cores, or threads, administrators can prevent users configuring topologies that might, for example, incur an additional licensing fees. For more information about image metadata, refer to the `Image metadata`_ guide. .. Links .. _`Image metadata`: https://docs.openstack.org/image-guide/image-metadata.html .. _`discussion`: http://lists.openstack.org/pipermail/openstack-dev/2016-March/090367.html .. _`MTTCG project`: http://wiki.qemu.org/Features/tcg-multithread nova-17.0.13/doc/source/admin/huge-pages.rst0000664000175000017500000002323013556316250020572 0ustar zuulzuul00000000000000========== Huge pages ========== The huge page feature in OpenStack provides important performance improvements for applications that are highly memory IO-bound. .. note:: Huge pages may also be referred to hugepages or large pages, depending on the source. These terms are synonyms. Pages, the TLB and huge pages ----------------------------- Pages Physical memory is segmented into a series of contiguous regions called pages. Each page contains a number of bytes, referred to as the page size. The system retrieves memory by accessing entire pages, rather than byte by byte. Translation Lookaside Buffer (TLB) A TLB is used to map the virtual addresses of pages to the physical addresses in actual memory. The TLB is a cache and is not limitless, storing only the most recent or frequently accessed pages. During normal operation, processes will sometimes attempt to retrieve pages that are not stored in the cache. This is known as a TLB miss and results in a delay as the processor iterates through the pages themselves to find the missing address mapping. Huge Pages The standard page size in x86 systems is 4 kB. This is optimal for general purpose computing but larger page sizes - 2 MB and 1 GB - are also available. These larger page sizes are known as huge pages. Huge pages result in less efficient memory usage as a process will not generally use all memory available in each page. However, use of huge pages will result in fewer overall pages and a reduced risk of TLB misses. For processes that have significant memory requirements or are memory intensive, the benefits of huge pages frequently outweigh the drawbacks. Persistent Huge Pages On Linux hosts, persistent huge pages are huge pages that are reserved upfront. The HugeTLB provides for the mechanism for this upfront configuration of huge pages. The HugeTLB allows for the allocation of varying quantities of different huge page sizes. Allocation can be made at boot time or run time. Refer to the `Linux hugetlbfs guide`_ for more information. Transparent Huge Pages (THP) On Linux hosts, transparent huge pages are huge pages that are automatically provisioned based on process requests. Transparent huge pages are provisioned on a best effort basis, attempting to provision 2 MB huge pages if available but falling back to 4 kB small pages if not. However, no upfront configuration is necessary. Refer to the `Linux THP guide`_ for more information. Enabling huge pages on the host ------------------------------- Persistent huge pages are required owing to their guaranteed availability. However, persistent huge pages are not enabled by default in most environments. The steps for enabling huge pages differ from platform to platform and only the steps for Linux hosts are described here. On Linux hosts, the number of persistent huge pages on the host can be queried by checking ``/proc/meminfo``: .. code-block:: console $ grep Huge /proc/meminfo AnonHugePages: 0 kB ShmemHugePages: 0 kB HugePages_Total: 0 HugePages_Free: 0 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 2048 kB In this instance, there are 0 persistent huge pages (``HugePages_Total``) and 0 transparent huge pages (``AnonHugePages``) allocated. Huge pages can be allocated at boot time or run time. Huge pages require a contiguous area of memory - memory that gets increasingly fragmented the long a host is running. Identifying contiguous areas of memory is an issue for all huge page sizes, but it is particularly problematic for larger huge page sizes such as 1 GB huge pages. Allocating huge pages at boot time will ensure the correct number of huge pages is always available, while allocating them at run time can fail if memory has become too fragmented. To allocate huge pages at run time, the kernel boot parameters must be extended to include some huge page-specific parameters. This can be achieved by modifying ``/etc/default/grub`` and appending the ``hugepagesz``, ``hugepages``, and ``transparent_hugepages=never`` arguments to ``GRUB_CMDLINE_LINUX``. To allocate, for example, 2048 persistent 2 MB huge pages at boot time, run: .. code-block:: console # echo 'GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX hugepagesz=2M hugepages=2048 transparent_hugepage=never"' > /etc/default/grub $ grep GRUB_CMDLINE_LINUX /etc/default/grub GRUB_CMDLINE_LINUX="..." GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX hugepagesz=2M hugepages=2048 transparent_hugepage=never" .. important:: Persistent huge pages are not usable by standard host OS processes. Ensure enough free, non-huge page memory is reserved for these processes. Reboot the host, then validate that huge pages are now available: .. code-block:: console $ grep "Huge" /proc/meminfo AnonHugePages: 0 kB ShmemHugePages: 0 kB HugePages_Total: 2048 HugePages_Free: 2048 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 2048 kB There are now 2048 2 MB huge pages totalling 4 GB of huge pages. These huge pages must be mounted. On most platforms, this happens automatically. To verify that the huge pages are mounted, run: .. code-block:: console # mount | grep huge hugetlbfs on /dev/hugepages type hugetlbfs (rw) In this instance, the huge pages are mounted at ``/dev/hugepages``. This mount point varies from platform to platform. If the above command did not return anything, the hugepages must be mounted manually. To mount the huge pages at ``/dev/hugepages``, run: .. code-block:: console # mkdir -p /dev/hugepages # mount -t hugetlbfs hugetlbfs /dev/hugepages There are many more ways to configure huge pages, including allocating huge pages at run time, specifying varying allocations for different huge page sizes, or allocating huge pages from memory affinitized to different NUMA nodes. For more information on configuring huge pages on Linux hosts, refer to the `Linux hugetlbfs guide`_. Customizing instance huge pages allocations ------------------------------------------- .. important:: The functionality described below is currently only supported by the libvirt/KVM driver. .. important:: For performance reasons, configuring huge pages for an instance will implicitly result in a NUMA topology being configured for the instance. Configuring a NUMA topology for an instance requires enablement of ``NUMATopologyFilter``. Refer to :doc:`cpu-topologies` for more information. By default, an instance does not use huge pages for its underlying memory. However, huge pages can bring important or required performance improvements for some workloads. Huge pages must be requested explicitly through the use of flavor extra specs or image metadata. To request an instance use huge pages, run: .. code-block:: console $ openstack flavor set m1.large --property hw:mem_page_size=large Different platforms offer different huge page sizes. For example: x86-based platforms offer 2 MB and 1 GB huge page sizes. Specific huge page sizes can be also be requested, with or without a unit suffix. The unit suffix must be one of: Kb(it), Kib(it), Mb(it), Mib(it), Gb(it), Gib(it), Tb(it), Tib(it), KB, KiB, MB, MiB, GB, GiB, TB, TiB. Where a unit suffix is not provided, Kilobytes are assumed. To request an instance to use 2 MB huge pages, run one of: .. code-block:: console $ openstack flavor set m1.large --property hw:mem_page_size=2Mb .. code-block:: console $ openstack flavor set m1.large --property hw:mem_page_size=2048 Enabling huge pages for an instance can have negative consequences for other instances by consuming limited huge pages resources. To explicitly request an instance use small pages, run: .. code-block:: console $ openstack flavor set m1.large --property hw:mem_page_size=small .. note:: Explicitly requesting any page size will still result in a NUMA topology being applied to the instance, as described earlier in this document. Finally, to leave the decision of huge or small pages to the compute driver, run: .. code-block:: console $ openstack flavor set m1.large --property hw:mem_page_size=any For more information about the syntax for ``hw:mem_page_size``, refer to the `Flavors`_ guide. Applications are frequently packaged as images. For applications that require the IO performance improvements that huge pages provides, configure image metadata to ensure instances always request the specific page size regardless of flavor. To configure an image to use 1 GB huge pages, run: .. code-block:: console $ openstack image set [IMAGE_ID] --property hw_mem_page_size=1GB If the flavor specifies a numerical page size or a page size of "small" the image is not allowed to specify a page size and if it does an exception will be raised. If the flavor specifies a page size of ``any`` or ``large`` then any page size specified in the image will be used. By setting a ``small`` page size in the flavor, administrators can prevent users requesting huge pages in flavors and impacting resource utilization. To configure this page size, run: .. code-block:: console $ openstack flavor set m1.large --property hw:mem_page_size=small .. note:: Explicitly requesting any page size will still result in a NUMA topology being applied to the instance, as described earlier in this document. For more information about image metadata, refer to the `Image metadata`_ guide. .. Links .. _`Linux THP guide`: https://www.kernel.org/doc/Documentation/vm/transhuge.txt .. _`Linux hugetlbfs guide`: https://www.kernel.org/doc/Documentation/vm/hugetlbpage.txt .. _`Flavors`: https://docs.openstack.org/admin-guide/compute-flavors.html .. _`Image metadata`: https://docs.openstack.org/image-guide/image-metadata.html nova-17.0.13/doc/source/admin/remote-console-access.rst0000664000175000017500000004525113556316250022746 0ustar zuulzuul00000000000000=============================== Configure remote console access =============================== To provide a remote console or remote desktop access to guest virtual machines, use VNC, SPICE HTML5 or Serial through either the OpenStack dashboard or the command line. Best practice is to select only one of them to run. .. _about-nova-consoleauth: About nova-consoleauth ---------------------- The client proxies leverage a shared service to manage token authentication called ``nova-consoleauth``. This service must be running for either proxy to work. Many proxies of either type can be run against a single ``nova-consoleauth`` service in a cluster configuration. Do not confuse the ``nova-consoleauth`` shared service with ``nova-console``, which is a XenAPI-specific service that most recent VNC proxy architectures do not use. SPICE console ------------- OpenStack Compute supports VNC consoles to guests. The VNC protocol is fairly limited, lacking support for multiple monitors, bi-directional audio, reliable cut-and-paste, video streaming and more. SPICE is a new protocol that aims to address the limitations in VNC and provide good remote desktop support. SPICE support in OpenStack Compute shares a similar architecture to the VNC implementation. The OpenStack dashboard uses a SPICE-HTML5 widget in its console tab that communicates to the ``nova-spicehtml5proxy`` service by using SPICE-over-websockets. The ``nova-spicehtml5proxy`` service communicates directly with the hypervisor process by using SPICE. VNC must be explicitly disabled to get access to the SPICE console. Set the ``vnc_enabled`` option to ``False`` in the ``[DEFAULT]`` section to disable the VNC console. Use the following options to configure SPICE as the console for OpenStack Compute: .. code-block:: console [spice] agent_enabled = False enabled = True html5proxy_base_url = http://IP_ADDRESS:6082/spice_auto.html html5proxy_host = 0.0.0.0 html5proxy_port = 6082 keymap = en-us server_listen = 127.0.0.1 server_proxyclient_address = 127.0.0.1 Replace ``IP_ADDRESS`` with the management interface IP address of the controller or the VIP. VNC console proxy ----------------- The VNC proxy is an OpenStack component that enables compute service users to access their instances through VNC clients. .. note:: The web proxy console URLs do not support the websocket protocol scheme (ws://) on python versions less than 2.7.4. The VNC console connection works as follows: #. A user connects to the API and gets an ``access_url`` such as, ``http://ip:port/?token=xyz``. #. The user pastes the URL in a browser or uses it as a client parameter. #. The browser or client connects to the proxy. #. The proxy talks to ``nova-consoleauth`` to authorize the token for the user, and maps the token to the *private* host and port of the VNC server for an instance. The compute host specifies the address that the proxy should use to connect through the ``nova.conf`` file option, ``server_proxyclient_address``. In this way, the VNC proxy works as a bridge between the public network and private host network. #. The proxy initiates the connection to VNC server and continues to proxy until the session ends. The proxy also tunnels the VNC protocol over WebSockets so that the ``noVNC`` client can talk to VNC servers. In general, the VNC proxy: - Bridges between the public network where the clients live and the private network where VNC servers live. - Mediates token authentication. - Transparently deals with hypervisor-specific connection details to provide a uniform client experience. .. figure:: figures/SCH_5009_V00_NUAC-VNC_OpenStack.png :alt: noVNC process :width: 95% VNC proxy security ~~~~~~~~~~~~~~~~~~ Deploy the public-facing interface of the VNC proxy with HTTPS to prevent attacks from malicious parties on the network between the tenant user and proxy server. When using HTTPS, the TLS encryption only applies to data between the tenant user and proxy server. The data between the proxy server and Compute node instance will still be unencrypted. To provide protection for the latter, it is necessary to enable the VeNCrypt authentication scheme for VNC in both the Compute nodes and noVNC proxy server hosts. QEMU/KVM Compute node configuration +++++++++++++++++++++++++++++++++++ Ensure each Compute node running QEMU/KVM with libvirt has a set of certificates issued to it. The following is a list of the required certificates: - :file:`/etc/pki/libvirt-vnc/server-cert.pem` An x509 certificate to be presented **by the VNC server**. The ``CommonName`` should match the **primary hostname of the compute node**. Use of ``subjectAltName`` is also permitted if there is a need to use multiple hostnames or IP addresses to access the same Compute node. - :file:`/etc/pki/libvirt-vnc/server-key.pem` The private key used to generate the ``server-cert.pem`` file. - :file:`/etc/pki/libvirt-vnc/ca-cert.pem` The authority certificate used to sign ``server-cert.pem`` and sign the VNC proxy server certificates. The certificates must have v3 basic constraints [3]_ present to indicate the permitted key use and purpose data. We recommend using a dedicated certificate authority solely for the VNC service. This authority may be a child of the master certificate authority used for the OpenStack deployment. This is because libvirt does not currently have a mechanism to restrict what certificates can be presented by the proxy server. For further details on certificate creation, consult the QEMU manual page documentation on VNC server certificate setup [2]_. Configure libvirt to enable the VeNCrypt authentication scheme for the VNC server. In :file:`/etc/libvirt/qemu.conf`, uncomment the following settings: - ``vnc_tls=1`` This instructs libvirt to enable the VeNCrypt authentication scheme when launching QEMU, passing it the certificates shown above. - ``vnc_tls_x509_verify=1`` This instructs QEMU to require that all VNC clients present a valid x509 certificate. Assuming a dedicated certificate authority is used for the VNC service, this ensures that only approved VNC proxy servers can connect to the Compute nodes. After editing :file:`qemu.conf`, the ``libvirtd`` service must be restarted: .. code:: shell $ systemctl restart libvirtd.service Changes will not apply to any existing running guests on the Compute node, so this configuration should be done before launching any instances. noVNC proxy server configuration ++++++++++++++++++++++++++++++++ The noVNC proxy server initially only supports the ``none`` authentication scheme, which does no checking. Therefore, it is necessary to enable the ``vencrypt`` authentication scheme by editing the :file:`nova.conf` file to set. .. code:: [vnc] auth_schemes=vencrypt,none The :oslo.config:option:`vnc.auth_schemes` values should be listed in order of preference. If enabling VeNCrypt on an existing deployment which already has instances running, the noVNC proxy server must initially be allowed to use ``vencrypt`` and ``none``. Once it is confirmed that all Compute nodes have VeNCrypt enabled for VNC, it is possible to remove the ``none`` option from the list of the :oslo.config:option:`vnc.auth_schemes` values. At that point, the noVNC proxy will refuse to connect to any Compute node that does not offer VeNCrypt. As well as enabling the authentication scheme, it is necessary to provide certificates to the noVNC proxy. - :file:`/etc/pki/nova-novncproxy/client-cert.pem` An x509 certificate to be presented **to the VNC server**. While libvirt/QEMU will not currently do any validation of the ``CommonName`` field, future versions will allow for setting up access controls based on the ``CommonName``. The ``CommonName`` field should match the **primary hostname of the controller node**. If using a HA deployment, the ``Organization`` field can also be configured to a value that is common across all console proxy instances in the deployment. This avoids the need to modify each compute node's whitelist every time a console proxy instance is added or removed. - :file:`/etc/pki/nova-novncproxy/client-key.pem` The private key used to generate the ``client-cert.pem`` file. - :file:`/etc/pki/nova-novncproxy/ca-cert.pem` The certificate authority cert used to sign ``client-cert.pem`` and sign the compute node VNC server certificates. The certificates must have v3 basic constraints [3]_ present to indicate the permitted key use and purpose data. Once the certificates have been created, the noVNC console proxy service must be told where to find them. This requires editing :file:`nova.conf` to set. .. code:: [vnc] vencrypt_client_key=/etc/pki/nova-novncproxy/client-key.pem vencrypt_client_cert=/etc/pki/nova-novncproxy/client-cert.pem vencrypt_ca_certs=/etc/pki/nova-novncproxy/ca-cert.pem VNC configuration options ~~~~~~~~~~~~~~~~~~~~~~~~~ To customize the VNC console, use the following configuration options in your ``nova.conf`` file: .. note:: To support :ref:`live migration `, you cannot specify a specific IP address for ``server_listen``, because that IP address does not exist on the destination host. .. list-table:: **Description of VNC configuration options** :header-rows: 1 :widths: 25 25 * - Configuration option = Default value - Description * - **[DEFAULT]** - * - ``daemon = False`` - (BoolOpt) Become a daemon (background process) * - ``key = None`` - (StrOpt) SSL key file (if separate from cert) * - ``novncproxy_host = 0.0.0.0`` - (StrOpt) Host on which to listen for incoming requests * - ``novncproxy_port = 6080`` - (IntOpt) Port on which to listen for incoming requests * - ``record = False`` - (BoolOpt) Record sessions to FILE.[session_number] * - ``source_is_ipv6 = False`` - (BoolOpt) Source is ipv6 * - ``ssl_only = False`` - (BoolOpt) Disallow non-encrypted connections * - ``web = /usr/share/spice-html5`` - (StrOpt) Run webserver on same port. Serve files from DIR. * - **[vmware]** - * - ``vnc_port = 5900`` - (IntOpt) VNC starting port * - ``vnc_port_total = 10000`` - vnc_port_total = 10000 * - **[vnc]** - * - enabled = True - (BoolOpt) Enable VNC related features * - novncproxy_base_url = http://127.0.0.1:6080/vnc_auto.html - (StrOpt) Location of VNC console proxy, in the form "http://127.0.0.1:6080/vnc_auto.html" * - server_listen = 127.0.0.1 - (StrOpt) IP address on which instance vncservers should listen * - server_proxyclient_address = 127.0.0.1 - (StrOpt) The address to which proxy clients (like nova-xvpvncproxy) should connect * - xvpvncproxy_base_url = http://127.0.0.1:6081/console - (StrOpt) Location of nova xvp VNC console proxy, in the form "http://127.0.0.1:6081/console" .. note:: - The ``server_proxyclient_address`` defaults to ``127.0.0.1``, which is the address of the compute host that Compute instructs proxies to use when connecting to instance servers. - For all-in-one XenServer domU deployments, set this to ``169.254.0.1.`` - For multi-host XenServer domU deployments, set to a ``dom0 management IP`` on the same network as the proxies. - For multi-host libvirt deployments, set to a host management IP on the same network as the proxies. Typical deployment ~~~~~~~~~~~~~~~~~~ A typical deployment has the following components: - A ``nova-consoleauth`` process. Typically runs on the controller host. - One or more ``nova-novncproxy`` services. Supports browser-based noVNC clients. For simple deployments, this service typically runs on the same machine as ``nova-api`` because it operates as a proxy between the public network and the private compute host network. - One or more ``nova-xvpvncproxy`` services. Supports the special Java client discussed here. For simple deployments, this service typically runs on the same machine as ``nova-api`` because it acts as a proxy between the public network and the private compute host network. - One or more compute hosts. These compute hosts must have correctly configured options, as follows. nova-novncproxy (noVNC) ~~~~~~~~~~~~~~~~~~~~~~~ You must install the noVNC package, which contains the ``nova-novncproxy`` service. As root, run the following command: .. code-block:: console # apt-get install nova-novncproxy .. note:: If using non-US key mappings, then you need at least noVNC 1.0.0 for `a fix `_. The service starts automatically on installation. To restart the service, run: .. code-block:: console # service nova-novncproxy restart The configuration option parameter should point to your ``nova.conf`` file, which includes the message queue server address and credentials. By default, ``nova-novncproxy`` binds on ``0.0.0.0:6080``. To connect the service to your Compute deployment, add the following configuration options to your ``nova.conf`` file: - ``server_listen=0.0.0.0`` Specifies the address on which the VNC service should bind. Make sure it is assigned one of the compute node interfaces. This address is the one used by your domain file. .. code-block:: console .. note:: To use live migration, use the 0.0.0.0 address. - ``server_proxyclient_address=127.0.0.1`` The address of the compute host that Compute instructs proxies to use when connecting to instance ``vncservers``. Frequently asked questions about VNC access to virtual machines ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - **Q: What is the difference between ``nova-xvpvncproxy`` and ``nova-novncproxy``?** A: ``nova-xvpvncproxy``, which ships with OpenStack Compute, is a proxy that supports a simple Java client. nova-novncproxy uses noVNC to provide VNC support through a web browser. - **Q: I want VNC support in the OpenStack dashboard. What services do I need?** A: You need ``nova-novncproxy``, ``nova-consoleauth``, and correctly configured compute hosts. - **Q: When I use ``nova get-vnc-console`` or click on the VNC tab of the OpenStack dashboard, it hangs. Why?** A: Make sure you are running ``nova-consoleauth`` (in addition to ``nova-novncproxy``). The proxies rely on ``nova-consoleauth`` to validate tokens, and waits for a reply from them until a timeout is reached. - **Q: My VNC proxy worked fine during my all-in-one test, but now it doesn't work on multi host. Why?** A: The default options work for an all-in-one install, but changes must be made on your compute hosts once you start to build a cluster. As an example, suppose you have two servers: .. code-block:: bash PROXYSERVER (public_ip=172.24.1.1, management_ip=192.168.1.1) COMPUTESERVER (management_ip=192.168.1.2) Your ``nova-compute`` configuration file must set the following values: .. code-block:: console [vnc] # These flags help construct a connection data structure server_proxyclient_address=192.168.1.2 novncproxy_base_url=http://172.24.1.1:6080/vnc_auto.html xvpvncproxy_base_url=http://172.24.1.1:6081/console # This is the address where the underlying vncserver (not the proxy) # will listen for connections. server_listen=192.168.1.2 .. note:: ``novncproxy_base_url`` and ``xvpvncproxy_base_url`` use a public IP; this is the URL that is ultimately returned to clients, which generally do not have access to your private network. Your PROXYSERVER must be able to reach ``server_proxyclient_address``, because that is the address over which the VNC connection is proxied. - **Q: My noVNC does not work with recent versions of web browsers. Why?** A: Make sure you have installed ``python-numpy``, which is required to support a newer version of the WebSocket protocol (HyBi-07+). - **Q: How do I adjust the dimensions of the VNC window image in the OpenStack dashboard?** A: These values are hard-coded in a Django HTML template. To alter them, edit the ``_detail_vnc.html`` template file. The location of this file varies based on Linux distribution. On Ubuntu 14.04, the file is at ``/usr/share/pyshared/horizon/dashboards/nova/instances/templates/instances/_detail_vnc.html``. Modify the ``width`` and ``height`` options, as follows: .. code-block:: console - **Q: My noVNC connections failed with ValidationError: Origin header protocol does not match. Why?** A: Make sure the ``base_url`` match your TLS setting. If you are using https console connections, make sure that the value of ``novncproxy_base_url`` is set explicitly where the ``nova-novncproxy`` service is running. Serial Console -------------- The *serial console* feature [1]_ in nova is an alternative for graphical consoles like *VNC*, *SPICE*, *RDP*. The example below uses these nodes: * controller node with IP ``192.168.50.100`` * compute node 1 with IP ``192.168.50.104`` * compute node 2 with IP ``192.168.50.105`` Here's the general flow of actions: .. figure:: figures/serial-console-flow.svg :width: 100% :alt: The serial console flow 1. The user requests a serial console connection string for an instance from the REST API. 2. The `nova-api` service asks the `nova-compute` service, which manages that instance, to fulfill that request. 3. That connection string gets used by the user to connect to the `nova-serialproxy` service. 4. The `nova-serialproxy` service then proxies the console interaction to the port of the compute node where the instance is running. That port gets forwarded by the hypervisor into the KVM guest. The config options for those nodes, which are in the section ``[serial_console]`` of your ``nova.conf``, are not intuitive at first. Keep these things in mind: * The ``serialproxy_host`` is the address the `nova-serialproxy` service listens to for incoming connections (see step 3). * The ``serialproxy_port`` value must be the very same as in the URI of ``base_url``. * The ``base_url`` on the compute node will be part of the response the user will get when asking for a serial console connection string (see step 1 from above). This means it needs to be an URL the user can connect to. * The ``proxyclient_address`` on the compute node will be used by the `nova-serialproxy` service to determine where to connect to for proxying the console interaction. References ---------- .. [1] https://specs.openstack.org/openstack/nova-specs/specs/juno/implemented/serial-ports.html .. [2] https://qemu.weilnetz.de/doc/qemu-doc.html#vnc_005fsec_005fcertificate_005fverify .. [3] https://tools.ietf.org/html/rfc3280#section-4.2.1.10 nova-17.0.13/doc/source/admin/live-migration-usage.rst0000664000175000017500000003164213556316250022603 0ustar zuulzuul00000000000000====================== Live-migrate instances ====================== Live-migrating an instance means moving its virtual machine to a different OpenStack Compute server while the instance continues running. Before starting a live-migration, review the chapter :ref:`section_configuring-compute-migrations`. It covers the configuration settings required to enable live-migration, but also reasons for migrations and non-live-migration options. The instructions below cover shared-storage and volume-backed migration. To block-migrate instances, add the command-line option ``-block-migrate`` to the :command:`nova live-migration` command, and ``--block-migration`` to the :command:`openstack server migrate` command. .. _section-manual-selection-of-dest: Manual selection of the destination host ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #. Obtain the ID of the instance you want to migrate: .. code-block:: console $ openstack server list +--------------------------------------+------+--------+-----------------+------------+ | ID | Name | Status | Networks | Image Name | +--------------------------------------+------+--------+-----------------+------------+ | d1df1b5a-70c4-4fed-98b7-423362f2c47c | vm1 | ACTIVE | private=a.b.c.d | ... | | d693db9e-a7cf-45ef-a7c9-b3ecb5f22645 | vm2 | ACTIVE | private=e.f.g.h | ... | +--------------------------------------+------+--------+-----------------+------------+ #. Determine on which host the instance is currently running. In this example, ``vm1`` is running on ``HostB``: .. code-block:: console $ openstack server show d1df1b5a-70c4-4fed-98b7-423362f2c47c +----------------------+--------------------------------------+ | Field | Value | +----------------------+--------------------------------------+ | ... | ... | | OS-EXT-SRV-ATTR:host | HostB | | ... | ... | | addresses | a.b.c.d | | flavor | m1.tiny | | id | d1df1b5a-70c4-4fed-98b7-423362f2c47c | | name | vm1 | | status | ACTIVE | | ... | ... | +----------------------+--------------------------------------+ #. Select the compute node the instance will be migrated to. In this example, we will migrate the instance to ``HostC``, because ``nova-compute`` is running on it: .. code-block:: console $ openstack compute service list +----+------------------+-------+----------+---------+-------+----------------------------+ | ID | Binary | Host | Zone | Status | State | Updated At | +----+------------------+-------+----------+---------+-------+----------------------------+ | 3 | nova-conductor | HostA | internal | enabled | up | 2017-02-18T09:42:29.000000 | | 4 | nova-scheduler | HostA | internal | enabled | up | 2017-02-18T09:42:26.000000 | | 5 | nova-consoleauth | HostA | internal | enabled | up | 2017-02-18T09:42:29.000000 | | 6 | nova-compute | HostB | nova | enabled | up | 2017-02-18T09:42:29.000000 | | 7 | nova-compute | HostC | nova | enabled | up | 2017-02-18T09:42:29.000000 | +----+------------------+-------+----------+---------+-------+----------------------------+ #. Check that ``HostC`` has enough resources for migration: .. code-block:: console $ openstack host show HostC +-------+------------+-----+-----------+---------+ | Host | Project | CPU | Memory MB | Disk GB | +-------+------------+-----+-----------+---------+ | HostC | (total) | 16 | 32232 | 878 | | HostC | (used_now) | 22 | 21284 | 422 | | HostC | (used_max) | 22 | 21284 | 422 | | HostC | p1 | 22 | 21284 | 422 | | HostC | p2 | 22 | 21284 | 422 | +-------+------------+-----+-----------+---------+ - ``cpu``: Number of CPUs - ``memory_mb``: Total amount of memory, in MB - ``disk_gb``: Total amount of space for NOVA-INST-DIR/instances, in GB In this table, the first row shows the total amount of resources available on the physical server. The second line shows the currently used resources. The third line shows the maximum used resources. The fourth line and below shows the resources available for each project. #. Migrate the instance: .. code-block:: console $ openstack server migrate d1df1b5a-70c4-4fed-98b7-423362f2c47c --live HostC #. Confirm that the instance has been migrated successfully: .. code-block:: console $ openstack server show d1df1b5a-70c4-4fed-98b7-423362f2c47c +----------------------+--------------------------------------+ | Field | Value | +----------------------+--------------------------------------+ | ... | ... | | OS-EXT-SRV-ATTR:host | HostC | | ... | ... | +----------------------+--------------------------------------+ If the instance is still running on ``HostB``, the migration failed. The ``nova-scheduler`` and ``nova-conductor`` log files on the controller and the ``nova-compute`` log file on the source compute host can help pin-point the problem. .. _auto_selection_of_dest: Automatic selection of the destination host ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ To leave the selection of the destination host to the Compute service, use the nova command-line client. #. Obtain the instance ID as shown in step 1 of the section :ref:`section-manual-selection-of-dest`. #. Leave out the host selection steps 2, 3, and 4. #. Migrate the instance: .. code-block:: console $ nova live-migration d1df1b5a-70c4-4fed-98b7-423362f2c47c Monitoring the migration ~~~~~~~~~~~~~~~~~~~~~~~~ #. Confirm that the instance is migrating: .. code-block:: console $ openstack server show d1df1b5a-70c4-4fed-98b7-423362f2c47c +----------------------+--------------------------------------+ | Field | Value | +----------------------+--------------------------------------+ | ... | ... | | status | MIGRATING | | ... | ... | +----------------------+--------------------------------------+ #. Check progress Use the nova command-line client for nova's migration monitoring feature. First, obtain the migration ID: .. code-block:: console $ nova server-migration-list d1df1b5a-70c4-4fed-98b7-423362f2c47c +----+-------------+----------- (...) | Id | Source Node | Dest Node | (...) +----+-------------+-----------+ (...) | 2 | - | - | (...) +----+-------------+-----------+ (...) For readability, most output columns were removed. Only the first column, **Id**, is relevant. In this example, the migration ID is 2. Use this to get the migration status. .. code-block:: console $ nova server-migration-show d1df1b5a-70c4-4fed-98b7-423362f2c47c 2 +------------------------+--------------------------------------+ | Property | Value | +------------------------+--------------------------------------+ | created_at | 2017-03-08T02:53:06.000000 | | dest_compute | controller | | dest_host | - | | dest_node | - | | disk_processed_bytes | 0 | | disk_remaining_bytes | 0 | | disk_total_bytes | 0 | | id | 2 | | memory_processed_bytes | 65502513 | | memory_remaining_bytes | 786427904 | | memory_total_bytes | 1091379200 | | server_uuid | d1df1b5a-70c4-4fed-98b7-423362f2c47c | | source_compute | compute2 | | source_node | - | | status | running | | updated_at | 2017-03-08T02:53:47.000000 | +------------------------+--------------------------------------+ The output shows that the migration is running. Progress is measured by the number of memory bytes that remain to be copied. If this number is not decreasing over time, the migration may be unable to complete, and it may be aborted by the Compute service. .. note:: The command reports that no disk bytes are processed, even in the event of block migration. What to do when the migration times out ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ During the migration process, the instance may write to a memory page after that page has been copied to the destination. When that happens, the same page has to be copied again. The instance may write to memory pages faster than they can be copied, so that the migration cannot complete. The Compute service will cancel it when the ``live_migration_completion_timeout``, a configuration parameter, is reached. The following remarks assume the KVM/Libvirt hypervisor. How to know that the migration timed out ---------------------------------------- To determine that the migration timed out, inspect the ``nova-compute`` log file on the source host. The following log entry shows that the migration timed out: .. code-block:: console # grep WARNING.*d1df1b5a-70c4-4fed-98b7-423362f2c47c /var/log/nova/nova-compute.log ... WARNING nova.virt.libvirt.migration [req-...] [instance: ...] live migration not completed after 1800 sec The Compute service also cancels migrations when the memory copy seems to make no progress. Ocata disables this feature by default, but it can be enabled using the configuration parameter ``live_migration_progress_timeout``. Should this be the case, you may find the following message in the log: .. code-block:: console WARNING nova.virt.libvirt.migration [req-...] [instance: ...] live migration stuck for 150 sec Addressing migration timeouts ----------------------------- To stop the migration from putting load on infrastructure resources like network and disks, you may opt to cancel it manually. .. code-block:: console $ nova live-migration-abort INSTANCE_ID MIGRATION_ID To make live-migration succeed, you have several options: - **Manually force-complete the migration** .. code-block:: console $ nova live-migration-force-complete INSTANCE_ID MIGRATION_ID The instance is paused until memory copy completes. .. caution:: Since the pause impacts time keeping on the instance and not all applications tolerate incorrect time settings, use this approach with caution. - **Enable auto-convergence** Auto-convergence is a Libvirt feature. Libvirt detects that the migration is unlikely to complete and slows down its CPU until the memory copy process is faster than the instance's memory writes. To enable auto-convergence, set ``live_migration_permit_auto_converge=true`` in ``nova.conf`` and restart ``nova-compute``. Do this on all compute hosts. .. caution:: One possible downside of auto-convergence is the slowing down of the instance. - **Enable post-copy** This is a Libvirt feature. Libvirt detects that the migration does not progress and responds by activating the virtual machine on the destination host before all its memory has been copied. Access to missing memory pages result in page faults that are satisfied from the source host. To enable post-copy, set ``live_migration_permit_post_copy=true`` in ``nova.conf`` and restart ``nova-compute``. Do this on all compute hosts. When post-copy is enabled, manual force-completion does not pause the instance but switches to the post-copy process. .. caution:: Possible downsides: - When the network connection between source and destination is interrupted, page faults cannot be resolved anymore, and the virtual machine is rebooted. - Post-copy may lead to an increased page fault rate during migration, which can slow the instance down. nova-17.0.13/doc/source/admin/availability-zones.rst0000664000175000017500000000450113556316250022353 0ustar zuulzuul00000000000000========================================= Select hosts where instances are launched ========================================= With the appropriate permissions, you can select which host instances are launched on and which roles can boot instances on this host. #. To select the host where instances are launched, use the ``--availability-zone ZONE:HOST:NODE`` parameter on the :command:`openstack server create` command. For example: .. code-block:: console $ openstack server create --image IMAGE --flavor m1.tiny \ --key-name KEY --availability-zone ZONE:HOST:NODE \ --nic net-id=UUID SERVER .. note:: HOST and NODE are optional parameters. In such cases, use the ``--availability-zone ZONE::NODE``, ``--availability-zone ZONE:HOST`` or ``--availability-zone ZONE``. #. To specify which roles can launch an instance on a specified host, enable the ``create:forced_host`` option in the ``policy.json`` file. By default, this option is enabled for only the admin role. If you see ``Forbidden (HTTP 403)`` in return, then you are not using admin credentials. #. To view the list of valid zones, use the :command:`openstack availability zone list` command. .. code-block:: console $ openstack availability zone list +-----------+-------------+ | Zone Name | Zone Status | +-----------+-------------+ | zone1 | available | | zone2 | available | +-----------+-------------+ #. To view the list of valid compute hosts, use the :command:`openstack host list` command. .. code-block:: console $ openstack host list +----------------+-------------+----------+ | Host Name | Service | Zone | +----------------+-------------+----------+ | compute01 | compute | nova | | compute02 | compute | nova | +----------------+-------------+----------+ #. To view the list of valid compute nodes, use the :command:`openstack hypervisor list` command. .. code-block:: console $ openstack hypervisor list +----+---------------------+ | ID | Hypervisor Hostname | +----+---------------------+ | 1 | server2 | | 2 | server3 | | 3 | server4 | +----+---------------------+ nova-17.0.13/doc/source/admin/ssh-configuration.rst0000664000175000017500000000422113556316250022206 0ustar zuulzuul00000000000000.. _cli-os-migrate-cfg-ssh: =================================== Configure SSH between compute nodes =================================== .. todo:: Consider merging this into a larger "live-migration" document or to the installation guide If you are resizing or migrating an instance between hypervisors, you might encounter an SSH (Permission denied) error. Ensure that each node is configured with SSH key authentication so that the Compute service can use SSH to move disks to other nodes. To share a key pair between compute nodes, complete the following steps: #. On the first node, obtain a key pair (public key and private key). Use the root key that is in the ``/root/.ssh/id_rsa`` and ``/root/.ssh/id_rsa.pub`` directories or generate a new key pair. #. Run :command:`setenforce 0` to put SELinux into permissive mode. #. Enable login abilities for the nova user: .. code-block:: console # usermod -s /bin/bash nova Switch to the nova account. .. code-block:: console # su nova #. As root, create the folder that is needed by SSH and place the private key that you obtained in step 1 into this folder: .. code-block:: console mkdir -p /var/lib/nova/.ssh cp /var/lib/nova/.ssh/id_rsa echo 'StrictHostKeyChecking no' >> /var/lib/nova/.ssh/config chmod 600 /var/lib/nova/.ssh/id_rsa /var/lib/nova/.ssh/authorized_keys #. Repeat steps 2-4 on each node. .. note:: The nodes must share the same key pair, so do not generate a new key pair for any subsequent nodes. #. From the first node, where you created the SSH key, run: .. code-block:: console ssh-copy-id -i nova@remote-host This command installs your public key in a remote machine's ``authorized_keys`` folder. #. Ensure that the nova user can now log in to each node without using a password: .. code-block:: console # su nova $ ssh *computeNodeAddress* $ exit #. As root on each node, restart both libvirt and the Compute services: .. code-block:: console # systemctl restart libvirtd.service # systemctl restart openstack-nova-compute.service nova-17.0.13/doc/source/admin/quotas2.rst0000664000175000017500000000350613556316250020147 0ustar zuulzuul00000000000000.. _manage-quotas: ============= Manage quotas ============= .. todo:: Merge this into 'quotas.rst' To prevent system capacities from being exhausted without notification, you can set up quotas. Quotas are operational limits. For example, the number of gigabytes allowed for each project can be controlled so that cloud resources are optimized. Quotas can be enforced at both the project and the project-user level. Using the command-line interface, you can manage quotas for the OpenStack Compute service, the OpenStack Block Storage service, and the OpenStack Networking service. The cloud operator typically changes default values because a project requires more than ten volumes or 1 TB on a compute node. .. note:: To view all projects, run: .. code-block:: console $ openstack project list +----------------------------------+----------+ | ID | Name | +----------------------------------+----------+ | e66d97ac1b704897853412fc8450f7b9 | admin | | bf4a37b885fe46bd86e999e50adad1d3 | services | | 21bd1c7c95234fd28f589b60903606fa | tenant01 | | f599c5cd1cba4125ae3d7caed08e288c | tenant02 | +----------------------------------+----------+ To display all current users for a project, run: .. code-block:: console $ openstack user list --project PROJECT_NAME +----------------------------------+--------+ | ID | Name | +----------------------------------+--------+ | ea30aa434ab24a139b0e85125ec8a217 | demo00 | | 4f8113c1d838467cad0c2f337b3dfded | demo01 | +----------------------------------+--------+ Use :samp:`openstack quota show {PROJECT_NAME}` to list all quotas for a project. Use :samp:`openstack quota set {PROJECT_NAME} {--parameters}` to set quota values. nova-17.0.13/doc/source/admin/quotas.rst0000664000175000017500000003062013556316250020062 0ustar zuulzuul00000000000000============================= Manage Compute service quotas ============================= As an administrative user, you can use the :command:`nova quota-*` commands, which are provided by the ``python-novaclient`` package, to update the Compute service quotas for a specific project or project user, as well as update the quota defaults for a new project. .. todo:: At some point, probably in Queens, we need to scrub this page and mention the microversions that remove the proxy and network-related resource quotas. .. rubric:: Compute quota descriptions .. list-table:: :header-rows: 1 :widths: 10 40 * - Quota name - Description * - cores - Number of instance cores (VCPUs) allowed per project. * - fixed-ips - Number of fixed IP addresses allowed per project. This number must be equal to or greater than the number of allowed instances. * - floating-ips - Number of floating IP addresses allowed per project. * - injected-file-content-bytes - Number of content bytes allowed per injected file. * - injected-file-path-bytes - Length of injected file path. * - injected-files - Number of injected files allowed per project. * - instances - Number of instances allowed per project. * - key-pairs - Number of key pairs allowed per user. * - metadata-items - Number of metadata items allowed per instance. * - ram - Megabytes of instance ram allowed per project. * - security-groups - Number of security groups per project. * - security-group-rules - Number of security group rules per project. * - server-groups - Number of server groups per project. * - server-group-members - Number of servers per server group. View and update Compute quotas for a project ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ To view and update default quota values --------------------------------------- #. List all default quotas for all projects: .. code-block:: console $ openstack quota show --default +----------------------+----------+ | Field | Value | +----------------------+----------+ | backup-gigabytes | 1000 | | backups | 10 | | cores | 20 | | fixed-ips | -1 | | floating-ips | 50 | | gigabytes | 1000 | | health_monitors | None | | injected-file-size | 10240 | | injected-files | 5 | | injected-path-size | 255 | | instances | 10 | | key-pairs | 100 | | l7_policies | None | | listeners | None | | load_balancers | None | | location | None | | name | None | | networks | 10 | | per-volume-gigabytes | -1 | | pools | None | | ports | 50 | | project | None | | project_name | project | | properties | 128 | | ram | 51200 | | rbac_policies | 10 | | routers | 10 | | secgroup-rules | 100 | | secgroups | 10 | | server-group-members | 10 | | server-groups | 10 | | snapshots | 10 | | subnet_pools | -1 | | subnets | 10 | | volumes | 10 | +----------------------+----------+ .. note:: This lists default quotas for all services and not just nova. #. Update a default value for a new project, for example: .. code-block:: console $ openstack quota set --instances 15 --class default To view quota values for an existing project -------------------------------------------- #. List the currently set quota values for a project: .. code-block:: console $ openstack quota show PROJECT_NAME +----------------------+----------------------------------+ | Field | Value | +----------------------+----------------------------------+ | backup-gigabytes | 1000 | | backups | 10 | | cores | 32 | | fixed-ips | -1 | | floating-ips | 10 | | gigabytes | 1000 | | health_monitors | None | | injected-file-size | 10240 | | injected-files | 5 | | injected-path-size | 255 | | instances | 10 | | key-pairs | 100 | | l7_policies | None | | listeners | None | | load_balancers | None | | location | None | | name | None | | networks | 20 | | per-volume-gigabytes | -1 | | pools | None | | ports | 60 | | project | c8156b55ec3b486193e73d2974196993 | | project_name | project | | properties | 128 | | ram | 65536 | | rbac_policies | 10 | | routers | 10 | | secgroup-rules | 50 | | secgroups | 50 | | server-group-members | 10 | | server-groups | 10 | | snapshots | 10 | | subnet_pools | -1 | | subnets | 20 | | volumes | 10 | +----------------------+----------------------------------+ .. note:: This lists quotas for all services and not just nova. To update quota values for an existing project ---------------------------------------------- #. Obtain the project ID. .. code-block:: console $ project=$(openstack project show -f value -c id PROJECT_NAME) #. Update a particular quota value. To update quotas for a project: .. code-block:: console $ openstack quota set --QUOTA_NAME QUOTA_VALUE PROJECT_NAME To update quotas for a class: .. code-block:: console $ openstack quota set --class --QUOTA_NAME QUOTA_VALUE CLASS_NAME .. note:: Only the ``default`` class is supported by nova. For example: .. code-block:: console $ openstack quota set --instances 50 PROJECT_NAME $ openstack quota show PROJECT_NAME +----------------------+----------------------------------+ | Field | Value | +----------------------+----------------------------------+ | ... | ... | | instances | 50 | | ... | ... | +----------------------+----------------------------------+ .. note:: To view a list of options for the :command:`openstack quota set` command, run: .. code-block:: console $ openstack help quota set View and update Compute quotas for a project user ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ To view quota values for a project user --------------------------------------- #. Place the user ID in a usable variable. .. code-block:: console $ projectUser=$(openstack user show -f value -c id USER_NAME) #. Place the user's project ID in a usable variable, as follows: .. code-block:: console $ project=$(openstack project show -f value -c id PROJECT_NAME) #. List the currently set quota values for a project user. .. code-block:: console $ nova quota-show --user $projectUser --tenant $project For example: .. code-block:: console $ nova quota-show --user $projectUser --tenant $project +-----------------------------+-------+ | Quota | Limit | +-----------------------------+-------+ | instances | 10 | | cores | 20 | | ram | 51200 | | floating_ips | 20 | | fixed_ips | -1 | | metadata_items | 128 | | injected_files | 5 | | injected_file_content_bytes | 10240 | | injected_file_path_bytes | 255 | | key_pairs | 100 | | security_groups | 10 | | security_group_rules | 20 | | server_groups | 10 | | server_group_members | 10 | +-----------------------------+-------+ To update quota values for a project user ----------------------------------------- #. Place the user ID in a usable variable. .. code-block:: console $ projectUser=$(openstack user show -f value -c id USER_NAME) #. Place the user's project ID in a usable variable, as follows: .. code-block:: console $ project=$(openstack project show -f value -c id PROJECT_NAME) #. Update a particular quota value, as follows: .. code-block:: console $ nova quota-update --user $projectUser --QUOTA_NAME QUOTA_VALUE $project For example: .. code-block:: console $ nova quota-update --user $projectUser --floating-ips 12 $project $ nova quota-show --user $projectUser --tenant $project +-----------------------------+-------+ | Quota | Limit | +-----------------------------+-------+ | instances | 10 | | cores | 20 | | ram | 51200 | | floating_ips | 12 | | fixed_ips | -1 | | metadata_items | 128 | | injected_files | 5 | | injected_file_content_bytes | 10240 | | injected_file_path_bytes | 255 | | key_pairs | 100 | | security_groups | 10 | | security_group_rules | 20 | | server_groups | 10 | | server_group_members | 10 | +-----------------------------+-------+ .. note:: To view a list of options for the :command:`nova quota-update` command, run: .. code-block:: console $ nova help quota-update To display the current quota usage for a project user ----------------------------------------------------- Use :command:`nova limits` to get a list of the current quota values and the current quota usage: .. code-block:: console $ nova limits --tenant PROJECT_NAME +------+-----+-------+--------+------+----------------+ | Verb | URI | Value | Remain | Unit | Next_Available | +------+-----+-------+--------+------+----------------+ +------+-----+-------+--------+------+----------------+ +--------------------+------+-------+ | Name | Used | Max | +--------------------+------+-------+ | Cores | 0 | 20 | | Instances | 0 | 10 | | Keypairs | - | 100 | | Personality | - | 5 | | Personality Size | - | 10240 | | RAM | 0 | 51200 | | Server Meta | - | 128 | | ServerGroupMembers | - | 10 | | ServerGroups | 0 | 10 | +--------------------+------+-------+ .. note:: The :command:`nova limits` command generates an empty table as a result of the Compute API, which prints an empty list for backward compatibility purposes. nova-17.0.13/doc/source/admin/manage-logs.rst0000664000175000017500000001661313556316250020746 0ustar zuulzuul00000000000000======= Logging ======= Logging module ~~~~~~~~~~~~~~ Logging behavior can be changed by creating a configuration file. To specify the configuration file, add this line to the ``/etc/nova/nova.conf`` file: .. code-block:: ini log-config=/etc/nova/logging.conf To change the logging level, add ``DEBUG``, ``INFO``, ``WARNING``, or ``ERROR`` as a parameter. The logging configuration file is an INI-style configuration file, which must contain a section called ``logger_nova``. This controls the behavior of the logging facility in the ``nova-*`` services. For example: .. code-block:: ini [logger_nova] level = INFO handlers = stderr qualname = nova This example sets the debugging level to ``INFO`` (which is less verbose than the default ``DEBUG`` setting). For more about the logging configuration syntax, including the ``handlers`` and ``qualname`` variables, see the `Python documentation `__ on logging configuration files. For an example of the ``logging.conf`` file with various defined handlers, see the `Example Configuration File for nova `__. Syslog ~~~~~~ OpenStack Compute services can send logging information to syslog. This is useful if you want to use rsyslog to forward logs to a remote machine. Separately configure the Compute service (nova), the Identity service (keystone), the Image service (glance), and, if you are using it, the Block Storage service (cinder) to send log messages to syslog. Open these configuration files: - ``/etc/nova/nova.conf`` - ``/etc/keystone/keystone.conf`` - ``/etc/glance/glance-api.conf`` - ``/etc/glance/glance-registry.conf`` - ``/etc/cinder/cinder.conf`` In each configuration file, add these lines: .. code-block:: ini debug = False use_syslog = True syslog_log_facility = LOG_LOCAL0 In addition to enabling syslog, these settings also turn off debugging output from the log. .. note:: Although this example uses the same local facility for each service (``LOG_LOCAL0``, which corresponds to syslog facility ``LOCAL0``), we recommend that you configure a separate local facility for each service, as this provides better isolation and more flexibility. For example, you can capture logging information at different severity levels for different services. syslog allows you to define up to eight local facilities, ``LOCAL0, LOCAL1, ..., LOCAL7``. For more information, see the syslog documentation. Rsyslog ~~~~~~~ rsyslog is useful for setting up a centralized log server across multiple machines. This section briefly describe the configuration to set up an rsyslog server. A full treatment of rsyslog is beyond the scope of this book. This section assumes rsyslog has already been installed on your hosts (it is installed by default on most Linux distributions). This example provides a minimal configuration for ``/etc/rsyslog.conf`` on the log server host, which receives the log files .. code-block:: console # provides TCP syslog reception $ModLoad imtcp $InputTCPServerRun 1024 Add a filter rule to ``/etc/rsyslog.conf`` which looks for a host name. This example uses COMPUTE_01 as the compute host name: .. code-block:: none :hostname, isequal, "COMPUTE_01" /mnt/rsyslog/logs/compute-01.log On each compute host, create a file named ``/etc/rsyslog.d/60-nova.conf``, with the following content: .. code-block:: none # prevent debug from dnsmasq with the daemon.none parameter *.*;auth,authpriv.none,daemon.none,local0.none -/var/log/syslog # Specify a log level of ERROR local0.error @@172.20.1.43:1024 Once you have created the file, restart the ``rsyslog`` service. Error-level log messages on the compute hosts should now be sent to the log server. Serial console ~~~~~~~~~~~~~~ The serial console provides a way to examine kernel output and other system messages during troubleshooting if the instance lacks network connectivity. Read-only access from server serial console is possible using the ``os-GetSerialOutput`` server action. Most cloud images enable this feature by default. For more information, see :ref:`compute-common-errors-and-fixes`. OpenStack Juno and later supports read-write access using the serial console using the ``os-GetSerialConsole`` server action. This feature also requires a websocket client to access the serial console. .. rubric:: Configuring read-write serial console access #. On a compute node, edit the ``/etc/nova/nova.conf`` file: In the ``[serial_console]`` section, enable the serial console: .. code-block:: ini [serial_console] # ... enabled = true #. In the ``[serial_console]`` section, configure the serial console proxy similar to graphical console proxies: .. code-block:: ini [serial_console] # ... base_url = ws://controller:6083/ listen = 0.0.0.0 proxyclient_address = MANAGEMENT_INTERFACE_IP_ADDRESS The ``base_url`` option specifies the base URL that clients receive from the API upon requesting a serial console. Typically, this refers to the host name of the controller node. The ``listen`` option specifies the network interface nova-compute should listen on for virtual console connections. Typically, 0.0.0.0 will enable listening on all interfaces. The ``proxyclient_address`` option specifies which network interface the proxy should connect to. Typically, this refers to the IP address of the management interface. When you enable read-write serial console access, Compute will add serial console information to the Libvirt XML file for the instance. For example: .. code-block:: xml .. rubric:: Accessing the serial console on an instance #. Use the :command:`nova get-serial-proxy` command to retrieve the websocket URL for the serial console on the instance: .. code-block:: console $ nova get-serial-proxy INSTANCE_NAME .. list-table:: :header-rows: 0 :widths: 9 65 * - Type - Url * - serial - ws://127.0.0.1:6083/?token=18510769-71ad-4e5a-8348-4218b5613b3d Alternatively, use the API directly: .. code-block:: console $ curl -i 'http://:8774/v2.1//servers//action' \ -X POST \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -H "X-Auth-Project-Id: " \ -H "X-Auth-Token: " \ -d '{"os-getSerialConsole": {"type": "serial"}}' #. Use Python websocket with the URL to generate ``.send``, ``.recv``, and ``.fileno`` methods for serial console access. For example: .. code-block:: python import websocket ws = websocket.create_connection( 'ws://127.0.0.1:6083/?token=18510769-71ad-4e5a-8348-4218b5613b3d', subprotocols=['binary', 'base64']) Alternatively, use a `Python websocket client `__. .. note:: When you enable the serial console, typical instance logging using the :command:`nova console-log` command is disabled. Kernel output and other system messages will not be visible unless you are actively viewing the serial console. nova-17.0.13/doc/source/admin/adv-config.rst0000664000175000017500000000255713556316250020573 0ustar zuulzuul00000000000000====================== Advanced configuration ====================== OpenStack clouds run on platforms that differ greatly in the capabilities that they provide. By default, the Compute service seeks to abstract the underlying hardware that it runs on, rather than exposing specifics about the underlying host platforms. This abstraction manifests itself in many ways. For example, rather than exposing the types and topologies of CPUs running on hosts, the service exposes a number of generic CPUs (virtual CPUs, or vCPUs) and allows for overcommitting of these. In a similar manner, rather than exposing the individual types of network devices available on hosts, generic software-powered network ports are provided. These features are designed to allow high resource utilization and allows the service to provide a generic cost-effective and highly scalable cloud upon which to build applications. This abstraction is beneficial for most workloads. However, there are some workloads where determinism and per-instance performance are important, if not vital. In these cases, instances can be expected to deliver near-native performance. The Compute service provides features to improve individual instance for these kind of workloads. .. include:: /common/numa-live-migration-warning.txt .. toctree:: :maxdepth: 2 pci-passthrough cpu-topologies huge-pages virtual-gpu nova-17.0.13/doc/source/admin/support-compute.rst0000664000175000017500000003344313556316250021742 0ustar zuulzuul00000000000000==================== Troubleshoot Compute ==================== Common problems for Compute typically involve misconfigured networking or credentials that are not sourced properly in the environment. Also, most flat networking configurations do not enable :command:`ping` or :command:`ssh` from a compute node to the instances that run on that node. Another common problem is trying to run 32-bit images on a 64-bit compute node. This section shows you how to troubleshoot Compute. Compute service logging ~~~~~~~~~~~~~~~~~~~~~~~ Compute stores a log file for each service in ``/var/log/nova``. For example, ``nova-compute.log`` is the log for the ``nova-compute`` service. You can set the following options to format log strings for the ``nova.log`` module in the ``nova.conf`` file: * ``logging_context_format_string`` * ``logging_default_format_string`` If the log level is set to ``debug``, you can also specify ``logging_debug_format_suffix`` to append extra formatting. For information about what variables are available for the formatter, see `Formatter Objects `_. You have two logging options for OpenStack Compute based on configuration settings. In ``nova.conf``, include the ``logfile`` option to enable logging. Alternatively you can set ``use_syslog = 1`` so that the nova daemon logs to syslog. Guru Meditation reports ~~~~~~~~~~~~~~~~~~~~~~~ A Guru Meditation report is sent by the Compute service upon receipt of the ``SIGUSR2`` signal (``SIGUSR1`` before Mitaka). This report is a general-purpose error report that includes details about the current state of the service. The error report is sent to ``stderr``. For example, if you redirect error output to ``nova-api-err.log`` using :command:`nova-api 2>/var/log/nova/nova-api-err.log`, resulting in the process ID 8675, you can then run: .. code-block:: console # kill -USR2 8675 This command triggers the Guru Meditation report to be printed to ``/var/log/nova/nova-api-err.log``. The report has the following sections: * Package: Displays information about the package to which the process belongs, including version information. * Threads: Displays stack traces and thread IDs for each of the threads within the process. * Green Threads: Displays stack traces for each of the green threads within the process (green threads do not have thread IDs). * Configuration: Lists all configuration options currently accessible through the CONF object for the current process. For more information, see :doc:`/reference/gmr`. .. _compute-common-errors-and-fixes: Common errors and fixes for Compute ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The `ask.openstack.org `_ site offers a place to ask and answer questions, and you can also mark questions as frequently asked questions. This section describes some errors people have posted previously. Bugs are constantly being fixed, so online resources are a great way to get the most up-to-date errors and fixes. Credential errors, 401, and 403 forbidden errors ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Problem ------- Missing credentials cause a ``403 forbidden`` error. Solution -------- To resolve this issue, use one of these methods: #. Manual method Gets the ``novarc`` file from the project ZIP file, saves existing credentials in case of override, and manually sources the ``novarc`` file. #. Script method Generates ``novarc`` from the project ZIP file and sources it for you. When you run ``nova-api`` the first time, it generates the certificate authority information, including ``openssl.cnf``. If you start the CA services before this, you might not be able to create your ZIP file. Restart the services. When your CA information is available, create your ZIP file. Also, check your HTTP proxy settings to see whether they cause problems with ``novarc`` creation. Instance errors ~~~~~~~~~~~~~~~ Problem ------- Sometimes a particular instance shows ``pending`` or you cannot SSH to it. Sometimes the image itself is the problem. For example, when you use flat manager networking, you do not have a DHCP server and certain images do not support interface injection; you cannot connect to them. Solution -------- To fix instance errors use an image that does support this method, such as Ubuntu, which obtains an IP address correctly with FlatManager network settings. To troubleshoot other possible problems with an instance, such as an instance that stays in a spawning state, check the directory for the particular instance under ``/var/lib/nova/instances`` on the ``nova-compute`` host and make sure that these files are present: * ``libvirt.xml`` * ``disk`` * ``disk-raw`` * ``kernel`` * ``ramdisk`` * ``console.log``, after the instance starts. If any files are missing, empty, or very small, the ``nova-compute`` service did not successfully download the images from the Image service. Also check ``nova-compute.log`` for exceptions. Sometimes they do not appear in the console output. Next, check the log file for the instance in the ``/var/log/libvirt/qemu`` directory to see if it exists and has any useful error messages in it. Finally, from the ``/var/lib/nova/instances`` directory for the instance, see if this command returns an error: .. code-block:: console # virsh create libvirt.xml Empty log output for Linux instances ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Problem ------- You can view the log output of running instances from either the :guilabel:`Log` tab of the dashboard or the output of :command:`nova console-log`. In some cases, the log output of a running Linux instance will be empty or only display a single character (for example, the `?` character). This occurs when the Compute service attempts to retrieve the log output of the instance via a serial console while the instance itself is not configured to send output to the console. Solution -------- To rectify this, append the following parameters to kernel arguments specified in the instance's boot loader: .. code-block:: ini console=tty0 console=ttyS0,115200n8 Upon rebooting, the instance will be configured to send output to the Compute service. Reset the state of an instance ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Problem ------- Instances can remain in an intermediate state, such as ``deleting``. Solution -------- You can use the :command:`nova reset-state` command to manually reset the state of an instance to an error state. You can then delete the instance. For example: .. code-block:: console $ nova reset-state c6bbbf26-b40a-47e7-8d5c-eb17bf65c485 $ openstack server delete c6bbbf26-b40a-47e7-8d5c-eb17bf65c485 You can also use the ``--active`` parameter to force the instance back to an active state instead of an error state. For example: .. code-block:: console $ nova reset-state --active c6bbbf26-b40a-47e7-8d5c-eb17bf65c485 Injection problems ~~~~~~~~~~~~~~~~~~ Problem ------- Instances may boot slowly, or do not boot. File injection can cause this problem. Solution -------- To disable injection in libvirt, set the following in ``nova.conf``: .. code-block:: ini [libvirt] inject_partition = -2 .. note:: If you have not enabled the configuration drive and you want to make user-specified files available from the metadata server for to improve performance and avoid boot failure if injection fails, you must disable injection. Disable live snapshotting ~~~~~~~~~~~~~~~~~~~~~~~~~ Problem ------- Administrators using libvirt version ``1.2.2`` may experience problems with live snapshot creation. Occasionally, libvirt version ``1.2.2`` fails to create live snapshots under the load of creating concurrent snapshot. Solution -------- To effectively disable the libvirt live snapshotting, until the problem is resolved, configure the ``disable_libvirt_livesnapshot`` option. You can turn off the live snapshotting mechanism by setting up its value to ``True`` in the ``[workarounds]`` section of the ``nova.conf`` file: .. code-block:: ini [workarounds] disable_libvirt_livesnapshot = True Cannot find suitable emulator for x86_64 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Problem ------- When you attempt to create a VM, the error shows the VM is in the ``BUILD`` then ``ERROR`` state. Solution -------- On the KVM host, run :command:`cat /proc/cpuinfo`. Make sure the ``vmx`` or ``svm`` flags are set. Follow the instructions in the :ref:`enable-kvm` section in the Nova Configuration Reference to enable hardware virtualization support in your BIOS. Failed to attach volume after detaching ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Problem ------- Failed to attach a volume after detaching the same volume. Solution -------- You must change the device name on the :command:`nova-attach` command. The VM might not clean up after a :command:`nova-detach` command runs. This example shows how the :command:`nova-attach` command fails when you use the ``vdb``, ``vdc``, or ``vdd`` device names: .. code-block:: console # ls -al /dev/disk/by-path/ total 0 drwxr-xr-x 2 root root 200 2012-08-29 17:33 . drwxr-xr-x 5 root root 100 2012-08-29 17:33 .. lrwxrwxrwx 1 root root 9 2012-08-29 17:33 pci-0000:00:04.0-virtio-pci-virtio0 -> ../../vda lrwxrwxrwx 1 root root 10 2012-08-29 17:33 pci-0000:00:04.0-virtio-pci-virtio0-part1 -> ../../vda1 lrwxrwxrwx 1 root root 10 2012-08-29 17:33 pci-0000:00:04.0-virtio-pci-virtio0-part2 -> ../../vda2 lrwxrwxrwx 1 root root 10 2012-08-29 17:33 pci-0000:00:04.0-virtio-pci-virtio0-part5 -> ../../vda5 lrwxrwxrwx 1 root root 9 2012-08-29 17:33 pci-0000:00:06.0-virtio-pci-virtio2 -> ../../vdb lrwxrwxrwx 1 root root 9 2012-08-29 17:33 pci-0000:00:08.0-virtio-pci-virtio3 -> ../../vdc lrwxrwxrwx 1 root root 9 2012-08-29 17:33 pci-0000:00:09.0-virtio-pci-virtio4 -> ../../vdd lrwxrwxrwx 1 root root 10 2012-08-29 17:33 pci-0000:00:09.0-virtio-pci-virtio4-part1 -> ../../vdd1 You might also have this problem after attaching and detaching the same volume from the same VM with the same mount point multiple times. In this case, restart the KVM host. Failed to attach volume, systool is not installed ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Problem ------- This warning and error occurs if you do not have the required ``sysfsutils`` package installed on the compute node: .. code-block:: console WARNING nova.virt.libvirt.utils [req-1200f887-c82b-4e7c-a891-fac2e3735dbb\ admin admin|req-1200f887-c82b-4e7c-a891-fac2e3735dbb admin admin] systool\ is not installed ERROR nova.compute.manager [req-1200f887-c82b-4e7c-a891-fac2e3735dbb admin\ admin|req-1200f887-c82b-4e7c-a891-fac2e3735dbb admin admin] [instance: df834b5a-8c3f-477a-be9b-47c97626555c|instance: df834b5a-8c3f-47\ 7a-be9b-47c97626555c] Failed to attach volume 13d5c633-903a-4764-a5a0-3336945b1db1 at /dev/vdk. Solution -------- Install the ``sysfsutils`` package on the compute node. For example: .. code-block:: console # apt-get install sysfsutils Failed to connect volume in FC SAN ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Problem ------- The compute node failed to connect to a volume in a Fibre Channel (FC) SAN configuration. The WWN may not be zoned correctly in your FC SAN that links the compute host to the storage array: .. code-block:: console ERROR nova.compute.manager [req-2ddd5297-e405-44ab-aed3-152cd2cfb8c2 admin\ demo|req-2ddd5297-e405-44ab-aed3-152cd2cfb8c2 admin demo] [instance: 60ebd\ 6c7-c1e3-4bf0-8ef0-f07aa4c3d5f3|instance: 60ebd6c7-c1e3-4bf0-8ef0-f07aa4c3\ d5f3] Failed to connect to volume 6f6a6a9c-dfcf-4c8d-b1a8-4445ff883200 while\ attaching at /dev/vdjTRACE nova.compute.manager [instance: 60ebd6c7-c1e3-4\ bf0-8ef0-f07aa4c3d5f3|instance: 60ebd6c7-c1e3-4bf0-8ef0-f07aa4c3d5f3] Traceback (most recent call last):…f07aa4c3d5f3\] ClientException: The\ server has either erred or is incapable of performing the requested\ operation.(HTTP 500)(Request-ID: req-71e5132b-21aa-46ee-b3cc-19b5b4ab2f00) Solution -------- The network administrator must configure the FC SAN fabric by correctly zoning the WWN (port names) from your compute node HBAs. Multipath call failed exit ~~~~~~~~~~~~~~~~~~~~~~~~~~ Problem ------- Multipath call failed exit. This warning occurs in the Compute log if you do not have the optional ``multipath-tools`` package installed on the compute node. This is an optional package and the volume attachment does work without the multipath tools installed. If the ``multipath-tools`` package is installed on the compute node, it is used to perform the volume attachment. The IDs in your message are unique to your system. .. code-block:: console WARNING nova.storage.linuxscsi [req-cac861e3-8b29-4143-8f1b-705d0084e571 \ admin admin|req-cac861e3-8b29-4143-8f1b-705d0084e571 admin admin] \ Multipath call failed exit (96) Solution -------- Install the ``multipath-tools`` package on the compute node. For example: .. code-block:: console # apt-get install multipath-tools Failed to Attach Volume, Missing sg_scan ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Problem ------- Failed to attach volume to an instance, ``sg_scan`` file not found. This error occurs when the sg3-utils package is not installed on the compute node. The IDs in your message are unique to your system: .. code-block:: console ERROR nova.compute.manager [req-cf2679fd-dd9e-4909-807f-48fe9bda3642 admin admin|req-cf2679fd-dd9e-4909-807f-48fe9bda3642 admin admin] [instance: 7d7c92e0-49fa-4a8e-87c7-73f22a9585d5|instance: 7d7c92e0-49fa-4a8e-87c7-73f22a9585d5] Failed to attach volume 4cc104c4-ac92-4bd6-9b95-c6686746414a at /dev/vdcTRACE nova.compute.manager [instance: 7d7c92e0-49fa-4a8e-87c7-73f22a9585d5|instance: 7d7c92e0-49fa-4a8e-87c7-73f22a9585d5] Stdout: '/usr/local/bin/nova-rootwrap: Executable not found: /usr/bin/sg_scan' Solution -------- Install the ``sg3-utils`` package on the compute node. For example: .. code-block:: console # apt-get install sg3-utils nova-17.0.13/doc/source/admin/figures/0000775000175000017500000000000013556316574017470 5ustar zuulzuul00000000000000nova-17.0.13/doc/source/admin/figures/SCH_5009_V00_NUAC-VNC_OpenStack.vsd0000664000175000017500000530100013556316250025114 0ustar zuulzuul00000000000000ࡱ> 23456789:;<=>?@ABCDEFRoot EntryRoot EntryFi˛VisioDocumentGSummaryInformation( ODocumentSummaryInformation84  !"#$%&'()*+,-./01HIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~VisioInformation" ՜.+,D՜.+,<HP X`hp x  YPage-10VBackground-1ESSwitchoServeroDatabase serverCloudseDynamic connector.1Bridge EthernetonnHub Patch panelFiber optic transmitter ATM switch Bridge.14 Dynamic connector.15erModemc Ring networkctoTilesetUrbanet AlphabetorkModuletNone tSolidtRegistrationctoVervera None .26ionCity.26Technic Server.29on MainframeonAustere TranscendonBlocksn FirewallonLaptop computerPCtApplication server5 Web server FTP server Email serverervManagement server5E-Commerce server5Public/private key serveric Box callout Comm-linkt Terminalt File serverContactUserctUser.50Status bar itemForwardStatus bar iconCheck user permissionveDynamic connectorioAdd list item permissionsic DiscussioneFindssiUserssiNetworkLinkrk ConfigureeSearchr PropertieseFilteriShuffleKeyLockleUser.69User.70 Round keype Tapered keypeCard reader with keypad Card accessKeywaycUSB keyChateyChevron DocumentssNewInformation iconkeyScripttCopyttLink.84 List boxon List box itemon Dialog form InternetrmPoweret PagesMastersW0|_PID_LINKBASE_VPID_ALTERNATENAMES _TemplateIDATC010498141033Oh+'0OHPhx Schma RseauRaziqueLC:\Program Files\Microsoft Office\Office14\visio content\1033\DTLNET_M.VSTRaziqueMicrosoft Visio@b>˛GN2 EMFxNl8}U HVISIODrawingLM23 ??d(LM(3LMcccYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxx^^^YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYnnnnnnՃcccbbbvvvxxxvvv~~~xxxcccrrrvvvxxxvvvvvvvvv|||xxxvvvxxxxxxnnn|||vvvkkkvvvcccꋋsssssssssssssssssssssssssssssssssssssssqqq{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{|||Јiiiꢢqqqkkk||||||^^^xxxꘘВբqqqkkk|||gggYYYYYYfff̌bbbYYYYYYYYYYYYYYYxxxЍꃃqqqٱ٣kkk|||qqqQQQUUUVVVTTTUUUTTTYYYYYY^^^Ɲ˶坝ƈqqqkkk|||բ~~~~~~ꈈƢsssiii~~~nnn|||bbb}}}aaaxxxžꘘ~~~жՀչ|||rrrշΖfffXXXrrr~~~{{{~~~sss刈ꍍ廻~~~Հ|||興|||xxx|||||||||||||||^^^YYY]]]ˬpppYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY山౱Հ|||}}}sssՃiiiƱ僃Հ|||僃sssxxxrrrnnnvvvxxxrrrnnnrrrnnnrrrkkkrrrxxxkkkxxxnnnvvvvvvvvvfffnnnvvvxxxgggˢڒmmmղըuuueeemmmYYYnnnYYYnnnYYYhhhЃlll{{{YYY|||ζYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYxxxwww~~~xxx湹اٷ⺺һYYYϾnnn游aaaؠ⾾YYYjjj|||kkk||||||vvvvvvxxxvvvvvvvvvmmmvvv|||nnnvvvxxxrrr^^^zzz\\\]]]vvvxxxvvvxxx|||vvvxxx{{{sssxxxxxxrrrxxxYYYYYYlllYYYbbbxxxYYY___QQQUUUVVVTTTTTTUUUTTTVVVVVVYYYYYYYYY___ZZZbbbYYYnnnΧfffYYYnnnˬYYYdddnnnxxxxxxxxxnnn꺺Ϻ⺺Ƭ{{{YYYTTTXXXXXXXXXYYYYYY^^^^^^YYYVVVXXXVVVYYYXXXYYYXXXUUUYYYYYY^^^xxxYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYsss~~~xxxnnn~~~sssxxxxxx\\\լYYYYYYYYYƍՃڈ]]]rrrrrrrrrvvvxxxrrr|||kkkxxxvvvrrrvvvrrrmmmbbbsssՒxxxxxxcccնʞ՗էՈssssss~~~lllhhhhhhxxxնYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY՘՘nnniii{{{풒Ϯrrrsss~~~xxxYYYtttaaa⺺XXXhhhլꬬ^^^SSSXXXYYYVVVYYYXXXVVVXXXVVVXXXYYYVVVXXXXXXVVVXXXTTTYYYXXXsssrrr||||||vvvvvvrrrxxxvvvvvv}}}||||||vvv|||vvvvvv|||vvvvvvxxxrrr|||iiiլ১˻լssscccլnnniiiլiiiiiinnnxxxnnnsss      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                           ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~  Visio (TM) Drawing ؒwRµ%*@8 ߳!fffMMM333-yN77sPɺm88rcc3f{ڌ626?3ff?G}UUUհc5ڬм>{N9KmfwJpYDRb߷qaXPF91I@dddFFF9{$<<$JJ1tl77A@@@p0Ezٕ㰬VęյTBj~daPc*p PT幵.|AJ Pj( YYY `???wwwI}G &&&g \\\Ĭ# {>TTTPX`LLL VVV(Workflw/cmd=2C/Na/Na/Na/Na/Na/Na/&,CU.J:DT5I[1hXT@. /UbW##_b0U]?ȾL \&B1&Wb%e !oM $d )P?;$,, & #& , 5&?D#//?M?\.? 7A  T~,,,'q/%P6$Y6 ((}k?l)P?"  U UA3#o >S@#B:aU_ReUeUeUUeUeUeUePONOD`T_ReUeUeUUeUeUeUeUUb RSR;25OM% >Qiq;RRRggR qh>Qj /A^F' %p3|CbFp#| |% | vi?=Os<34*x,,,/HRQAmeY q]U@Q-,_vL__q____OO_OOYJAe@L&d2K?ɠQ3Ҳ s]֦xΟ$H"Ŧ)Լ Dץ4@dUA??ϩJ[D!# f:45ŧ5ŷ5ŧ 0H 0D$#U   [#Wb ;Ch( D?@eDrqr:ePB#<D5,ND0DDA7XDbabX#F:FDF(A:#7 D% #7H(DRQRHBA7D B7DJBA:B78DBAB8BAtstt<tB9DB9D%B9(!(D2&1'2&(!BA9d!Dn&m'n&d!BY0C&'&!<!BȁD&'ȁ<ȅ"A6761<1B#AT6S7T6T1<T1B$91D6761B%91D67%61B'AF GFA<AB!(9DABaicTgdhTsG'0f6U[e0 sFf|tvu dd4φFRd,c  F،3*d4V56Fs 9Faaj9eOwOkŕh8FTo!32pbGFdF毭oʳUųUvoft\W?޳P`ކmW"> gAkA oojx5lR}J<DTqC`` {<eh]-w>yqyu4x.~O6ARH-D@>QWACGcwc]oP{Jk? `Aooookt|/R|a`OЖ󞦆B1C~}XQ_q^Gʯ$6l~ؿ 2DVhzϛ/// .@Rd&EFߔߦ߸$6HZU@S; 0UUCš@ЖSY+ 2@e?N4nW__ o"4FFoKo|o%///0/B/T/f/x//1/Ug/??,?>?P?b?t?vA<???QV?? OO-O?OQOcMZeH,2T3F_LB֖Eh_c,f;5OHUUx_v_____o__'o*o#Z`orooooo7uI(:L^p8 ʏ ߏ@##5#$Ǡձ=9t++aO##廟3ДPN[UY9q R[p?^܅bpނb JD ಕϧϹFdƞ'2W#2`~cD@J$uO0fB = = 0BvCt346C9C$%S1ղfxߊߜ߮ߡG>VaE$ #㇤bbOA%7I[X{ߪχ4 F9T=5GYk}41u9_3MM$ORdJBį֯ 0B _fx?__KV__-oQcOo}///q/// ?b΅ օ(?:?Vy1d}l?~????????pC%O7O=o"y$oE/Og䀭䭠TA6n` Fo`lɀConɀornzۭ_bݭKQ٭ᷫ熐C㭡pa*ᵃVA8 Əڏ숧1_B,:S/e/KG_OL/7qA6rKRO__+_(O_a_$[____oo'o9oKooooooaoooozY8J`ޡn| #ď o%&oOOǏBM,<>ߓbY`B џA .@Rdv Я⯽N`̿޿&.vIFX*8ϘϪϼ/MA/=ZC9ߙAQE)2TC>OO:/7I:?mI?/D??!OEWi{0h1s_y!](Pb!,AGLL!%. ڕbRV$QraK!qPl#F^/{j1n,`eWctӂW0`ih4`A7'o9o,dSb ~eYl!`VoPz@Uta`e@/$6H  dݏ%R[mǟٟ/m,:DVh!3EWi2x=Ql~Ưد 1CUgyӿ+PbbP5I~M,ɺ ^poo߸/~b'b/~@xߊ@߮H&%$6HZl~^OO _ DVh_k}_ ?o_R__ '9K]o/ 5/??~Q-mx//ϔ%?7?݀L?/?ԏ'bbbmf???????8u7vO$O6OHOZOlO~OOxOOOO' _2__V_h_z_1_}oo__ oo.oYϟdoÿտoooooo*{>>PbtHn2T1?>J溓1hn9'}48Sbǟ̦2Vhԯ @Rvϝϯ*C1p\%&,%);M1k___$6HZooooDVhz); //./@/R/d/v//J/////??%?7?I?[?m?/M___q_L9/@?????;wO O2ODOVOhKlb#裈M?OO@2OO_!W=S_{o____4oFoXojo*/oooo Ty1dvơ9 I``7I*<N`r'Uᶏȏڏ"4F Xj|~?f޳ ? 2 -37%J@J*<EU⸟: ]o䢿ƿؿIDVhz&/d/*Tv߈ߚ*?p/ߔ//5GYk}徭]1+=OassH 晑9Cў<N -?Qouoo2///;/M/_/</b?t?/p/?dP????????Oc#O5OGOYOkO}OOOOOOOO ^)77s"_>7sF_*I=aP 'N£(o__[eaPR:a4p` AcentColr3pzPaP#bbbS$QmCZ:a<b!bNbb;(D___)G!o*lyahg::o#^opopϔooooojHZů~ߴ/ 2?VL?͏ߏ'9KH.psџ:+3ahXXEH2q#q_/VU?_Q_UiSЯ^[_WYݿ￾%4ocϙϙϫϽK/);߷/_q5ߧ߹/ 0BNfp*D));M_088Yr889Qr ޯg&8J\_A̿cuϙ8AFfUϹo//,/>/Qb/t/////s_?? L?^?p????????OӲ-?Qcu|pkCcuBvx~B-qı~@OROvOOOOOODVhuQYSoR1cc?2n__@bVo!o3g>o`k_ob(ϖQc4jn?|fÍonॸoooata*;֤rA ]_5 .@dv߬*/*N` +=Ȍޏ&8Oǯٯ!3EWi{3߯ӿRd-o-?L^u΁b!dph>|f5# h*&N`rߖߨA?8J\n?9OO"4FXj|H" 1oTJ\nFna g );gFT16 F@lvdAV1!` o2o6*/!/xs>/P/b/t//0]U\V/////?xO3?E?Oi?{?Ϗ?????; OO@/O{SOeOEUjO(OOQ{Guf!3BWVtWN~OSܟOOOO__)_;_M]#^_p________oo$o6o.eb dovo;0GtvGÁsbz@-&ÁzqH D{-M6qߧ%%*[mǟʯ!3EWi4Fկ /ASUU$u0Ŀֿ 0hBq7H2TQ%+brGBauE'} ϞȞ 4W/Ugyߋߝ߆? ?9??Qcuu?z?OTOO,>P`bt%n*<N`r4ߖ/*G`b?#/5/RgReT!6 q &x2akR}eeV!1a` o2o{vs ?s//ye?/,)1@U?V`/?? ?FD?V?h?y????@? Oo.O@OvOOO\RoB2SeDž Q`qşןOOOOO__$_cQH\X_j_|_m_@_____. jP屦399j0ʅ&o+oaKs^%7I@nYbO * Oaѳ{K,WJ ҲInπ&)}A9D2%l.Pt =$OӞ@bw֏GX"[D;MnxiĿֿ@ Ȳnw*߽߫y&e/(HZ^3q(:L^nw+A-\}q}@~uf$5fFop?jo|ϼU"%\ 0X^?/60 ϲ??#! tq, /}///4Uf42F_2Fy4?sOO\U??6xSerVoeovoaLOOO4BTfx0BTw0oiNo7B% qFv14:ValidtonJ<>' Prpeges Sh_wIgog}e='0]/E Rue{es D1 NSmm|aPitWkfD U vcgikRxt'esB Sz: %iSgg x]pglyycsrc |xktVncn(U.Iw)iA.MJpt8s%Cey!CUT}mD !vwD!X5@#1!ld/F]":#Tut4/H?z)2/o(#l////? 7@`?:7N7?5 8XAH!t&??_?H??~%3O5"v1HT8OJO\OnOO;7UO9 OE6$o6oHkxcC" bZ1Qczm?_"_4_F_oz)4w_PiTPgdQ_____'Ljaapk &p{xoil ooo $Xz)5OY`rkB#b{ 7@k:7o#tybok2DVhzʟz)6ݒrUHSs߀h]"d}t܏$ 7:#6:7eN9ud~gaƟ؟꟤x+7#BI E*smBn?"vXj|6ίOD@5Pbr8"exZ~eS\/0O"A#>!h //1/C/@=aN9hÒz"#c"a am! Pmsfa`8////?TO*;v_`smM~d?v????'AaI ace^An?@8 `aaCdqoHa aW0mUb8B_T_c^c^gS2C8:aAA_f3 OR SiW0c.O@OROdOvOo *;N`q~AkxOO__&_8Uw^_\___[__o o2oDoVohozoo ooooo5o)hR}xv$6HZl\p!.0uwӏC)<6YXrbRdv ПA]rFxmlns:v14htp/'sUcea .i-ro oUf.-o/GUf=e'v=s=]o'200'Eet1 lnUn'(U)*+,U-./0U1234U5678U9:;?@U4<zE8:&@bN%@ sh8[C-07 AU'()U+,-.U/012U3456U789:U;<=>U?@CDUEFGIJU4< zE8:&@bN%@ 9lC-7 AU'()U*+,-U./01U2345U6789U:;<=U>?@CUDEFGHLU4()*U+,-.UMNOPUQRSTU4<zE8:&@bN%@ ~8 :}C-7 AVU4<zE8:&@bN%@ \;; }A-E7Un'()U*+,-U./01U2345U6789U:;<=U>?@WU4<zE8:&@bN%@ r;[C-07 Aj()+,-./0123456789:;<=>?CNOPQRSTYZ[\]^_`abcdefghRiklUmnopUqrstUuvwxUyz{|U}~UUUUU4?@BU4<zE8:&@bN%@ r=[C-\+> AUn'()U*+,-U./01U2345U6789U:;<=U>?@U4<zE8:&@bN%@ q>[C-07 AU&'()U*+,-.U4< zE8:&@bN%@ xk=?!C-^7 AUn'()U*+,-U./01U2345U6789U:;<=U>?@U4<zE8:&@bN%@ q?[C-ܷ AUn'()U*+,-U./01U2345U6789U:;<=U>?@U4<zE8:&@bN%@ o[C-* A-VU4<zE8:&@bN%@ h(#AA-K17 ;UN'()U*+,-U./01U2345U67@U4<zE8:&@bN%@ (t9A7C-\7 :b()+,-./0123456789:;<=>?CNOPQRST\]^_J`acUdefgUhijkUlmnoUpqrsUtuvwUxyz{U|}~UUUUUU4U?@CDUEFGJU4< zE8:&@bN%@ +HlC-ܺI AUn'()U*+,-U./01U2345U6789U:;<=U>?@U4<zE8:&@bN%@ dI[C-7 AU&-.ZU[U4< zE8:&@bN%@ J!C-;7 AU&-.ZU[U4< zE8:&@bN%@ xJ!C-ȴ7 AU&-.ZU[U4< zE8:&@bN%@ K!C-ܽ37 AUN'()U*+,-U./01U2345U67@U4<zE8:&@bN%@ (w9KAC-7 :U~'()U*+,-U./01U2345U6789U:;<=U>?@AUDEFGU4<zE8:&@bN%@ +LhC-7 AU'()U*+,-U./01U2345U6789U:;<=U>?@CUDEFGJKU4?@CUDEFGHU4?@CUDEFGHU4?@CUDEFGHU4<"zE8:&@bN%@ /OrC-\ P AU'()U*+,-U./01U2345U6789U:;<=U>?@CUDEFGHU4?@CUDEFGHU4<"zE8:&@bN%@ -FQrC-7 AUz'()U*+,-U./01U2345U6789U:;<=U>?@CHU4<zE8:&@bN%@ (-ReC-ܸx7 AU-.N[U4<zE8:&@bN%C@ HXRC-U7 AUN'()U*+,-U./01U2345U67CU4<zE8:&@bN%@ w9@SAC-C7 :Uz'()U+,-.U/012U3456U789:U;<=>U?@DEFGU4<zE8:&@bN%@ SeC-ώBT AU'()U*+,-U./01U2345U6789U:;<=U>?@CUDEFGHU4()+U-UUUU4<zE8:&@bN%@ ~(=X}C-7 AU.()+U-U4< zE8:&@bN%@XY$CH:*7 A-U4<zE8:&@bN%@ )YA-pK7 ;-U4<zE8:&@bN%@ *YA-H?Z ;-U4<zE8:&@bN%@ *aZA-Ko7 ;-U4<zE8:&@bN%@ h)ZA-HK7 ;-U4<zE8:&@bN%@ )/[A-pK=7 ;-U4<zE8:&@bN%@ )[A-K7 ;-U4<zE8:&@bN%@ )[A-М? \ ;-@U4<zE8:&@bN%@ *f\A-ќKt7 ;- U4<zE8:&@bN%@ h*\A-ќK7 ;-U4<zE8:&@bN%@ '4]A-ҜKB7 ;U&'()U*+,-.U4< zE8:&@bN%@ ؈]!C-Ӝ7 A-U4<zE8:&@bN%@ '^A-\՜K%7 ;Uv-.UUUUU}UU U UU4<zE8:&@bN%@ ~^cC-ל7 A- U4<zE8:&@bN%@ P'<_A-؜KJ7 ;U.'-N}[ U    U4< zE8:&@bN%@_%C\ٜ*7 AUF'-.UNOP[}UU4<zE8:&@bN%@ ~x=`}C-Hڜ[7 AU6'()U*+-.}[ !U4< zE8:&@bN%@ `/C-ܜU7 AUB'()U*+-.}[U !"#$%U4<zE8:&@bN%@ =:a9C-0ޜs7 AUB'-.N[( ) * + , - . / 0 1 U4<zE8:&@bN%@ >a8C-0ߜb A-2U4<zE8:&@bN%@ *bbA-l1p7"A-3U4<zE8:&@bN%@ h'bA-$K7 ;-4U4<zE8:&@bN%@ %$c }A-.7-U4<zE8:&@bN%@ 'cA-%K7 ;-U4<zE8:&@bN%@ ; cA-%K7 ;- U4<zE8:&@bN%@ &Md }A-W7-U4<zE8:&@bN%@ ; dA-\(K7 ;-6U4<zE8:&@bN%@ ; eA-H+K7 ;-?U4<zE8:&@bN%@ ; veA-\+K7 ;U>-U_5U789:;U4<zE8:&@bN%@ >e6C--οf AU^-.NUOPQRUST!U<)=)>)@)UA)B)C)D)E)uU4<zE8:&@bN%@ (ofPC-8m7A2-7W89;UFGHIJKuU4< zE8:&@bN%@ Hg,C-PmI7A-LU4<zE8:&@bN%@ < gA-H/K7 ;-MU4<zE8:&@bN%@ < hA-\/K7 ;$ Z@8QR@9QR@!^:RR@)#:MR@#O;GR@($;QR@؂>~=RR@ȃD5>RR@X>QR@h?QR@;@QR@@OR@;AOR@ARR@HvSCTR@ȃCQR@8NDQR@-DQR@(}FEQR@}EOR@h~FJR@HFQR@"FOR@X%kGOR@8GQR@苮MHOR@IRR@<IQR@EJQR@JQR@H˲=KQR@6KRR@87LQR@7gMRR@x8MJR@9NQR@9\ORR@X:*PRR@:PQR@;QQR@8<RQR@<ROR@x=SRR@>LTRR@URR@UOR@ VRR@uVOR@ VNR@hLWOR@qWOR@(:XQR@ȣXMR@hDYMR@YOR@ZQR@HyZOR@覒ZOR@G[OR@([OR@Ȩ\QR@h~\OR@\OR@L]OR@H]QR@諒/^OR@^QR@OT_OR@ȭ_MR@he`MR@`OR@}aQR@XbRR@rbKR@bOR@88cGR@cOR@xcOR@adGR@dOR@X'eOR@eOR@fRR@8fPR@WgPR@xgOR@ &hORL<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<($ ZE8nRE( nRE!oRE-#oREX#!oREx$/oREx>=oREDKoREYoREHgoRE8<uoREHoREoRE軕oREvoREoREoRE.oREx}oRE~oRE~pREpRE"pRE%+pRE9pRE8GpRE8UpRE(=cpREXqpREpRE˲pRE6pRE7pRE(8pRE8pREh9pRE:pRE:pREH;pRE; qRE<qRE(='qRE=5qREh>CqREXQqRE8_qREmqRE({qREH qREqREqqRExqREqREqREXqREqREqRE8rREاrREx#rRE1rRE?rREXMrRE[rREirRE8wrREجrRExrRErRErREXrRErRErREHrRErREsRE(sREsREh-sRE;sREIsREHWsREesREssRE(sREsREh sRUFD  h(^TYYBBUF\.ߗ?x<F BP(?hP?X$ ]B66ȅHq?j|?G IB@L&ɯd2?sU!&;/xt  0RKB` SwitcP,ne work pʴ r pP!aUl d v c z !^| R( G@&L >V&7?J7 ?ppwpwpwnwwyZwpw wwwpwwpwyplRp)~pw߇p}~zZDrag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aabL&d2ٿ\.??{ڿ ;?k?r3r CUG DF P# h @T(PYY#EψUF\.?@L&_d2?@ w?P} Y.B! ":J :f^7r7ֆAu` ?U"U66JJU^^rrUSu#U ^b"h,h'RqU f??z4b u{[`:#"&a#'QT)b" ^l!L1$l" l"7'>>ÿ@qZ05?46 r23ZS2uY0`-1ZBu@ l"r3A'Bl" hL$9u`u `"[ bzb!u`R$"% أ#Q!'1`Vis_PRXYcPm!#5HP4{6NP2`?CopWyr.PgPt u(>P) 20{PU9 M.PcePo0P'ofmR^QraPQUamPi_Pn WAlP eXsRUe0PeePvPdB!#d$%b!*(=#&#@Bd&& "$B##0Ub#]g,7{TrN @ cTg d(a1+_c@11"hh"2)t3*tB+tBa a"aab(!BpaSb"+QQou\%G!!["@@Bq"53T@R"q3<1 KEq`RPQs.PU TPxmPSP^2l"+ 0^<@5b 䱠"5R"br3&BrM_q(pffs_<៵R-m11'rvu"u"2$u3/8B0EBH%Q%Q"2_b3l !!E|QQQQ67l!8ĢAP!!1;(bL1D:b;aqq^eD!b(pQu [ ]@U0` SPa*aPePl rsRQV)P E u.PpBP!ePQ"5X%7\In` WTcPx]SP`DP!vR3^߮߼Iӏb` Syb9Sw>?QEd-MPnyfPcmPuRmt߆EQ`]1SPRd Nm E ZK!P PPr8J\h}]%R'`-sRU3e_ 5Afe3`؇e ,S SRiPQ ՑրTZIPL_PcX@;۞`rBYlPiPq٫€րY0KSR_PoŲ/ٸ!ר@/R/5NwRk,a_B`+x/OI4PQdPSi/, "?=ns#]?,(dN??(JSL1m "/Q9tVQ IQ /?րf?O\I-` R 4PQQ^OpOƒ?O?MPCI?O._qSCRo"mY6AtN BT]]9 M JU@L&d2?@|>??@Fh4?P6 AJuM` W?SuJt At=WG_z#J]RbJlp= ף#R>2yw?@MJA@eb&#z(b),+,&J[(.;?&L ?A$./O%B!!5 g`?Copy_rigTtZ(c)Z2U009ZM 0c 0os0f21r0>1a0i0n}.Z AlY0U 8s]2e10e 05vo0dQ0! $-# ',&?6iie59 6uX7_'0UpBŁ&Z!$0 'F";JlJAh h7!1!Z@x<3ף , <~y#  IRvVJ:?OS QlU^TURUEU{bX,G\ZYaaȫQ5UL&[RQQ .aYU520_BUv"rA # cHD H# h4>T]]9 MT JU@Fh?@+@ ??@?]P6 ]nAJuM{` ?5uJt  Q߸It=W贁NUIRIl%0w#>2zG7z?3@MJA@eb #zbR( (2+2&J[ (wp"?& ?A$ 4/U%B!!5 g`?CopyrigTt (c])020%090uM0c0os 0If21r 0D1a0i 0n.0 WAl_0 8sc2Ue70e0vu0dW0!E$5 򤲝-?# '&6iieE9 6X73'0UvBŴ&!$0 T-FAJlJ8>UhAA 11!`m`0?@rO\.ש ,#<#{ RVJ:9XYUي#rT Q%UE?,b R8]S# l_@ѱQEakQY,aU5U^fGO+|no/j3asChAZGQaX_j_i2>_PU"rA #js( bUGD  3 h0TdYYB 1 U@ BP(?@'J?@ V?,?@f_(@yw?P} ,w 5 &M& DD bb 4  M  4  &M& 4&4& R&R& p&p&d &M& && &&4 && 66o"u` ?J$0BN`l~$I/( /2(>/P(\/n($z/(/(/(I/(/8?"4u.9!t+1  QyUtmQRkyUWq#6&yU~W6͔QUQQR`?CopyrigPt (c)2`2\092`M*`c(`o%s"`f0b!ar$`]aua0`i"`n.2`_ Alx` (hUs|beP`e(`v` dp`RSST SB-S`6b g?/4)=SfS@tff bT#S0Uorc@V*` @4c u vXgw'ntŔf!d] vze!`^H@!!Yd&Db&VUʄ&ՋeʄDՋ3ʄbՋ uʄՋʄՋ|ʄՋƈՋcȆՋƈ!Ջ&ƈ4!ՋDƈR!Ջbƈp!ՋƈRƈ!Ջƈ!Ջƈ!Ջʄ1VHD: # h0>Th]]9 MTIAU@?@kE8?@ ͂?@SSfhr~?Pps-8R?>$ > n JuM{` ?e ;  Su*Jt'  $mCLmta{\_I 3.Jv  q?#cwn?v(A[}Kѭ>JU2N贁N[?@M#J&A@bI(bUW)U+U+U&*Jy#?!lJ ?%P?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>Uh ETh]]9 MTIAU@?@-Ы?@ ͂?@SSfhr~?Pps-8R?>$ > n JuM{` ?e ;  Su*Jt'  H-mta{n_s9/3.Jv  q?#cwn?v(A[}Kѭ>JU2N贁N[?@M#J&A@bI(bUW)U+U+U&Jy#?!lJ ?%P?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>Uh ETh]]9 MTIAU@B?@c?@ ͂?@SSfhr~?Pps-8R?>$#A n JuM{` ?e ;  Su*Jt'  m@mta{7._ xX3.Jv  q?#cwn?v(A[}Kѭ>JU2N贁N[?@M#J&A@bI(bUW)U+U+U&*Jy#?!lJ ?%P?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>Uh ETh]]9 MTIAU@eZԩ?@z?@ ͂?@SSfhr~?Pps-8R?>$ > n JuM{` ?e ;  Su*Jt'  }$~mta{_P@3.Jv  q?#cwn?v(A[}Kѭ>JU2N贁N[?@M#J&A@bI(bUW)U+U+U&*Jy#?!lJ ?%P?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>Uh ETh]]9 MTIAU@h!I?@Zzv?@ ͂?@SSfhr~?Pps-8R?>$ > n JuM{` ?e ;  Su*Jt'  XƿHmta{_z3.Jv  q?#cwn?v(A[}Kѭ>JU2N贁N[?@M#J&A@bI(bUW)U+U+U&Jy#?!lJ ?%P?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>Uh ETh]]9 MTIAU@sLGv?@Bw6t?@ ͂?@SSfhr~?Pps-8R?>$> n JuM{` ?e ;  Su*Jt'  [Rw͖mta{__j3.Jv  q?#cwn?~v(A[}Kѭ>JU2N贁N[R?@M#J&A@bI(b*W)U+U+U&ՆJy#a?!J ?%P?AO"d+bRW+$u/%B#A1A15 `?Cop rigTt (c)x02`09x0Mp0cn0osh0fv2g1rj01av0ih0n.x0 l0 n8s2e0ejn0v0d0:1Y>4#-X#M3 M7#(p0b59 DFXGdG_'2WUA;FJ!$a dFD$&#l,&}>Uh ETh]]9 MTIAU@?@9 EU?@ ͂?@SSfhr~?Pps-8R?>$> n JuM{` ?e ;  Su*Jt'  $mCLmta{_3.Jv  q?#cwn?v(A[}Kѭ>JU2N贁N[?@M#J&A@bI(bW)U+U+TU&Jy#?!J ?%P?AO"d+KbW+$u/%B#A1A15 `?Cop rigTt (c)x02`09x0Mp0cn0osh0fv2g1rj01av0ih0n.x0 l0 n8s2e0en0v0d0:1Y>4#b-#M3 M7A#(p0bP59 DFXG~dG'2WUA);F!$a dF$&#l,&}>Uh ETh]]9 MTIAU@?@,?@ ͂?@SSfhr~?Pps-8R?>$> n JuM{` ?e ;  Su*Jt'  H-mta{X_ 3.Jv  q?#cwn?v(A[}Kѭ>JU2N贁N[?@M#J&A@bI(bUW)U+U+U&Jy#?!lJ ?%P?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>Uh ETh]]9 MTIAU@B?@-r-.?@ ͂?@SSfhr~?Pps-8R?>$> n JuM{` ?e ;  Su*Jt'  m@mta{_ :3.Jv  q?#cwn?v(A[}Kѭ>JU2N贁N[?@M#J&A@bI(bUW)U+U+U&*Jy#?!lJ ?%P?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>Uh ETh]]9 MTIAU@eZԩ?@ƍu?@ ͂?@SSfhr~?Pps-8R?>$> n JuM{` ?e ;  Su*Jt'  }$~mta{_D3.Jv  q?#cwn?v(A[}Kѭ>JU2N贁N[?@M#J&A@bI(bUW)U+U+U&*Jy#?!lJ ?%P?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>Uh ETh]]9 MTIAU@h!I?@O2?@ ͂?@SSfhr~?Pps-8R?>$> n JuM{` ?e ;  Su*Jt'  XƿHmta{p_'F3.Jv  q?#cwn?v(A[}Kѭ>JU2N贁N[?@M#J&A@bI(bUW)U+U+U&Jy#?!lJ ?%P?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>Uh ET]]9 M JU@]u?@x?@,ww'?@d?Pn6 >JuM` ?u#t  fIt=W紁NIRkgS|lWxI#>2zGz;?@MJA@eb #zb(b%)2+2&J[/.;?&L ?A$4/U%B!!5 g`?CopyrigTt (c)0W20%090M0]c0os 0f2R1r 0D1a0i 0n.0 AUl_0 8sc2e70e0vu0dW0!$ę-# '&?6iie59 6X7}'0UvBiŇ&!$0 -FAJlJ8>UhAA@ 11!T2 $<cV] &WR~VJ3kq?@BP( ]S m၏jy#mS zjaֱQE^y`0__ lOA/X5:Fh4 XYePYv81sX5aZjoohY}aUU߭?@,bl'4/\K)aX2>_;"rA #jsHD: # h0>Th]]9 MTIAU@sLGv?@_?@ ͂?@SSfhr~?Pps-8R?>$> n JuM{` ?e ;  Su*Jt'  [Rw͖mta{_3.Jv  q?#cwn?~v(A[}Kѭ>JU2N贁N[?@M#&A@bI(bUW)U+U+U&Jy#?!lJ ?%P?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>Uh ETh]]9 MTIAU@?@*y>{?@ ͂?@SSfhr~?Pps-8R?>$>  uM` ? ; E)u*Jt'  $mCLmta{)4G3.Jv  q?#cwn_?v(A[}Kѭ>JU2N贁N[R?@M#J&A@bI(b*W)U+U+U&Jy#c?!J ?%P?AO"d+bRW+$u/%B#A1A15 `?Cop rigTt (c)x02`09x0Mp0cn0osh0fv2g1rj01av0ih0n.x0 l0 n8s2e0ejn0v0d0:1Y>4#-X#M3 M7#(p0b59 DFXGdG_'2WUA;FJ!$a dFD$&#l,&}>Uh ET]]9 M JU@L&d2?@\.?tP6 >JuM` ?uJt ASt=WJRb~li>t2U?=@MJA@b + &J[N#?0a& ?AT)B!!5 g`?CopyrigTtZ(c)Z20 9ZM c. os f"!r 1ai n.Z Al90 (s=2e0ej vO0d10@!$b-# 'Ya&?6iiek59 6jX7^'0a&Z!|$0 FJlJ UhqMAA ]A !4Ja-'Z@?@  <0贁N#A OR|VJ:6]G+|M__Zw?/#UEF`?0?@ aQS xQ#`Y{GzYk5^ro!o :mX5U'h?gkT:&#dT[RUU4F?@|?BP(flwaw%l5p!Xnc 3dXAYEh4\`Yb/XAdx̼_ZWnQXAYL&tgkRwpQlQE26_HU"]rA HD: # h0>Th]]9 MTIAU@?@?]0?@ ͂?@SSfhr~?Pps-8R?>$hA n JuM{` ?e ;  Su*Jt'  H-mta{AJ_ap3.Jv  q?#cwn?v(A[}Kѭ>JU2N贁N[?@M#J&A@bI(bUW)U+U+U&Jy#?!lJ ?%P?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>Uh ETh]]9 MTIAU@B?@d;]?@ ͂?@SSfhr~?Pps-8R?>$> n JuM{` ?e ;  Su*Jt'  m@mta{d_v3.Jv  q?#cwn?v(A[}Kѭ>JU2N贁N[?@M#J&A@bI(bUW)U+U+U&*Jy#?!lJ ?%P?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>Uh ETh]]9 MTIAU@eZԩ?@>6#TTĶ?@ ͂?@SSfhr~?Pps-8R?>$> n JuM{` ?e ;  u*t'  }$~mta{%$苵3.Jv  q?#cwn?v(A[}KI>JU2N贁NI[?@M#J&A@bI(bW)U+U+TU&Jy#?!J ?%P?AO"d+KbW+$u/%B#A1A15 `?Cop rigTt (c)x02`09x0Mp0cn0osh0fv2g1rj01av0ih0n.x0 l0 n8s2e0en0v0d0:1Y>4#b-#M3 M7A#(p0bP59 DFXG~dG'2WUA);F!$a dF$&#l,&}>Uh ETh]]9 MTIAU@h!I?@Ž?@ ͂?@SSfhr~?Pps-8R?>$> n JuM{` ?e ;  Su*Jt'  XƿHmta{_v3.Jv  q?#cwn?v(A[}Kѭ>JU2N贁N[?@M#J&A@bI(bUW)U+U+U&Jy#?!lJ ?%P?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>Uh ETh]]9 MTIAU@sLGv?@c?@ ͂?@SSfhr~?Pps-8R?>$> n JuM{` ?e ;  Su*Jt'  [Rw͖mta{_] 3.Jv  q?#cwn?~v(A[}Kѭ>JU2N贁N[R?@M#J&A@bI(b*W)U+U+U&ՆJy#a?!J ?%P?AO"d+bRW+$u/%B#A1A15 `?Cop rigTt (c)x02`09x0Mp0cn0osh0fv2g1rj01av0ih0n.x0 l0 n8s2e0ejn0v0d0:1Y>4#-X#M3 M7#(p0g59 DFXGdG_'2WUA;FJ!$a dFD$&#l,&}>Uh ET9 M3JU@L&d2?@\.?ҷP6 m>JuM` ^?5ulbSD_Jt bstE>2zGz;?@MJA@u+b+&K !JS"j& 1"A.b+-,-/*B!!5 `?CopyrwigTt `wc)5020A0950M-0c+0o%s%0f32$1r'0`1ua30i%0n.50_ Al{0 +8Us2eS0e+0v0ds0ib =L!XY'0U Bj&%0 :lJ Uh*M[A[A 9A Z1:'h? Y T:&Qi@J4F?@|BP( IQ!i pP!!U31^ `0,I_[_ {uXEEh4Ẍ TbYb/uX _dx_aZW贁NuXAIL&tKRPQ\%QAI@@ HlQbY 0hauXAo G+|oaZw/(uXAY RU:q Ib_`yA\ppr׌ :muXEOO_\_dH >Z(+s .ṿrAA'FHMza# {!OB 3|~d}@+x!BBGULge PLφ&LYrK߻t*8w yҖ|~{ HO"P9ZΧ6 v XLJ|XƳ ߲Hpmߵ*طZؼ}Ţ} ?xLQ˰]!oWeIL UM'QYAU BN [U h u R.8UEU_l y!񷪆"A#K$X%&'ª()Ū*+$,$-"$./$/ͪ<$0I$1JV$2f!3Up$4}$5U$6U$7U$8$9U$:$;U$<$=U$>$?@ 8 3Y&4Q34CU@4DM4E) 0]1F0j1G0w1H01"01Jb'01201301)401N01QO01P 0J1Q01R)60AS?0AT A!<0-AVFb10cL10M10DUFD  h(^TYYBBUFjZ?F~??x<F BP(?P } kX` BW66 W TTT%TTȅ5H?? (?B@L&d2?-(\.g1(.sUW!AU&w/~  0QB`#serv",comput$dWis r0b$ud n tw 'rk!eA^| (SG|& b?,>?TTwpp pqqppqwqpqwqwq+p pppwwwznw6;5wqpwwwhghw>Drag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aabjZֿ~??cN׿ mF1??SbM1{V↑T*J?@ ?UG DF P# h @T(PYY# 3U@jZ?@~??F?Pn} u{` ?Su#΍>>HX HlHYHH E.Oč>UDDXXUllBa'9-",'tU"J%q4 Q?"'4b0{[`:#26Q79$"t3&9"OL1" ^!'܈ >7@ÿ@q@@?@8B?@!ABP5F02u@K`-1xBu@rCC53A 3Bo2гC9uv`u `"[ۢ b!-u`23kQQ1Q7B`?CopyrigPtf0(c])f020P9f0uMPcPosPIfRQrPQaPiPn f0AUlP XsRePePvPd/`VPs_SBNcPm!#5JP83`5a Q1#d:4%B @8=3R6#d\6P\6 X2$#3+0Ub\3]Jxge8^ E U#".5m Hvq%t{.5tpw3t{Et{t{^y {|tYwmkdaIB'BT1aa"0ք.2132B3z1z1"|+q+qEQQX116Q;r<A>Ab\1EF`rAJ͔!hh)1baA (dT6vQ1oUkQ]b` MPnuPaPtUQra1Q` E50uPp -`ePt=e.5Q`!3]t1LPRdU\ %`u-`bcu30D-!I PPr֯H^-]L˭DRQqU`r\BAPaPrB`LDž5^,B%I SbiPQXj feTϟB LLPcXςPC5%Bl `iPgCų@o߰DLRPo}߄|AqZ@@K ӱpKDQ`;BNQwRkax`2`녨cϣ[I$`Qd `SsPo8SUbPRPsU}AxBuLDmatVa IaXAfBLT R `QQVhP+IQUm-`u-tP !`4줒ӿU챒VBALC`<1B` W2: /XؑLMPmRAy;/M/˒pq//$OPaSDy1!//%ؒ7VI]BPlRgRTP訰y??SPa2CP򿃪X??B` 7T+01I@"`a^%{/MPCAD vOOHKdQ>C2Z>6?H?qgtԁ/tufvop#U@jZ?F~?vvIC-pˑup` s?bujp`&T0a,Stԁ/p]e-2q?@< o5pmH!q."Tԁ.dԂxAƒ@T@>$pÿ^$gqa OvcrSr`Rno>㳫1e&BIrSrOvcv=ss"u~$bb pmp sty:b{bráe@6Cu&P`?hi@k""oűRT h]]9  5AU@jZ?F͂T??Fx?SF?P6 jt`  o?tk[>(A Vu aSuo.]&A]  *ԮJU2zGzt?@L#&A@bA#z7 5#1bO(b])j+$j&[ "*(w "?& ?AU$l/%B115 `?CopyrigTt (cu)Q02`09Q0uMI0cG0osA0IfO2@1rC0|1aO0iA0n.Q0 WAl0 G8s2Ueo0eG0v0d0"1E]4MŤ-&3 &7&l>]Uhz811U!J!u6?F+\.>djIIa? >"(EǑ I%K9E 5EU . K ;;5QIWEEEF _KnSA?8@@Bu?FDR> ?Nk"\6`bmMM\j=am {:e P> #? D"? 5-g?j4B7!B{oogr57!ibDAbE9 MuX7_'0U~rN!$a)5 5vIzHD # =hj0>T h]]9  qAU@;?FI5K?@xEL?6ѿP6 t`  bm&Qo?t@@L]WI,#u aiuoL> JU2zGzt;?@L?&A@b}#zs q#1b(b)+$&[9#H",ɺ (wH"?& ?A$ /%9#BV1V15 `?CopyrigTt (cu)02`090uM0c0os}0If2|1r01a0i}0n.0 WAl0 8s2Ue0e0v0d0"O1E]S4MŤ-9#b3 b7&l>]Uhzt1.A!JN!m.%-+0djV1ax߃S(FJ-&?F mO"> ?Nk"L[Majnha_:e P> #? BK=o? n-?j4Bs!B{__Wr5s!D8E6V 6?wj_|_ ^XE.U@z T6?F @' d_mOoT \VyWxRkrVo_bVh*g:n"'UaEjz36>CN>?Bn}]zGvN7V iDAbE9 MX+G'0UJPN!4ae5 MaHD # =hj0>T h]]9  U@jpiH?F^?@$?F]F?P6 t`  !a&ao?t,F=۳=u;u auo>J2zGzwt?@ʐLAw@b#z1b](b!).+I.&[-m(?0& ?A$I0/Q%!!5 `?CopyrigTt (c)02`090M 0c 0os0f21r0@1a0i0n.0 Al[0 8s_2e30e 0vq0dS0T"!E]$M-# %'&l>]Uhz!1!JF% djc~YZ(_N9zOMGE%_EH$SwO"K ңHE ^&_8_WE_OqOHOOi&DAbPE9 MX7'0UUfb>!$a % f1jHD # Uh4>T#]]9 M5AU@jZ?FL|+?@?F({~?P6 JuM` ?u JYt )t7zEA2&L_D?. > >tJU2q K?=@MJ&A@-b9(+bG)T+T&J[#"#a?& ?AH?/`)#115 {`?CopyrigTt (c);020G09;0M30c10os+0f92*1r-0f1ai+0n.;0 Al0 18s2eY0e10v0dy0z"!4B-#3K 7&)? b 0K8>U# ]A]A "1!ъ!PzQ <%OYAJEU . K;;\%W%EF($L[.FX5Eai%?F 6?wL;] W-\TB⤲8?F@&SA?F @ ?Nk"L'`bmMW_Ye[ٯ7 VK=F: [jr ? D"? XZvD?ta@Boogr5;!QEx]SiLO MLGXa~WOTZiAle59 XG"'0Uc>!$05 .HD # =hj0>T h]]9  IAU@K?FOgVb?FY%?Fwᳬ?PJW?>t`  ^Z?t#ə.E @x?r?/{4܂ G _Z+u u$ >  J JpU?43f<!.&P?b3bbfz@1bAe&bq$d 2zGzt.#@LT"&r(~&i$q)(+}'i"~*#81815 `?Co yrigTt (c)o02`09o0Mg0ce0os_0fm2^1r 1am0i_0n.o0 Al0 e8s2e0ee0v0d0"11E]54M-#D3 %D7.&lUh#7 V1#Ai!J# F/?B1B  VRiAAbE9 MX G{W'0U*R2N!I$a {VZUHPD  # #>h0JTpERI MU@u6?Fjc{g&?@%r`5B?Fm_F:Is?HNtQ`  II?t#]  _ii$!`kNu  iu%wj>M JQ T       "@&&JNU2"?H@Qs#N&A@b(bU)++&RNp}#>H1#19 ?#bbbz| R&/5R}#11`?Co0yrig\t (c)02h090M0c0os0f21r0Aa0i0n.0 Al!@ 8s%Be0e0v7@d@21a4t#-}#3 %746lJ#$JUp5 3 M19 1!q(!FnElrkRt# 8$kcD?@숒@)?FP?P"EkU |1\iOT/irvs}i>`_,of :m ,M ?? S&d2? *b?r4B!B oo1gr #5!>%(EQOOOO__FAc1_C_ D4ևS]_o_yRX+{_,__ #R__ (YQoSo+o=osd {oEeooooooFyUy{* hDVW(I X"c7I!pg bf'iMjSE t%XyG|'0UŢŞN!O4i |UGD # hz0TdYYBU@(%)?Fxg^?@0߯H?Fs7Uݹ?P} t` 87?t#_)TeΦu ]ukv  ̝L&UUU&I&3 U!!`?CopyrigPt _(c) 2\W09 M c os f"!r 1a i n}. Al00U (s42e0e uvF0d(0'HS$#-## 'I?k=#ǒ 2j$B##0U'BM3@&@F0Yk} #HA%DKb5DK3DK5DKED$!GiAZG5(|IDFX7yW'&Dŭ6!4YA yVZHD  # =hj4>T!]]>#AU@0߯H?Fz)e??F˞9q?P6 t`z  ?5t# rXѮu)Nu;):O]ע0 &> # " "+"+"+"+" $+"T-J[U7 ??& bA@ 2b4-#2zGzt#+@ Li68!6 ?}; 72U!:B#AA5 5`?CopyrigTt(c)20F@9M2@c.0@os*@f8B)Ar,@eAa8@i*@n. Al@ 0HsBeX@ej0@v@dx@)21"DM-,;?C G& l>]UhzAE!A#!ְ1J`#@{&pz?FUy{?NT,dKj&b&R&M/8T9K-q?F@F?FdG0 >Nk"?YE*]\LThKjfGD&Qhj ?iU3UGe&Y`?@/Jb)h5oWKoWo;èKod}l$ro`nE2K?Fˌ%4G{?F -q? eZR^{|\?6?vodmP}l>MBe 9 N 1iS? 1?grl#51:PO"4ga@Sq(UE^@O|ǐ[`ߡa v2rbA @3ijD&}laqOz o?#WHZ'Qu=*[^N?F]%P?@O&@ c?FаM<n ?` eb0)\(Pfodm}nv}l?V5(?q$Ix[cN#W{ #iA@&QeE9 MX''0UjdN!0 /HD  # =hj0T h]]9 #]AU@}%?FR$,?@6#V?Fc_3֡w?P6 u` ?u#t  3zM%t3ws%.<%H._'B> #PJU2N贁Nw[?@ʐL+&A@wbu](i+bk)%+&p%#4">9"<5!?& ?M#bbb͓z$ p&"/%T%#L1L15 w`?Co yrigTt (c)02`090M{0cy0oKss0f2r1r 1a0is0n.0 Al0 y8s2e0ey0v0d0"E1E(]I4M-%#X3 X7&l*>(UhE j1#$Ac!J`%#@5e$_F??!foA3nBM( V?FJ-R?@HQ??FS!R?P| llHL6VLD5E+v;*AůʙH: 8snP%$? k?Q? \?4_!__WrA5_! R,U3OC@IL?F4~Kz?P)Oy޾ T!]]>#IAU@܋?F2Oa>?@#r`5B?F*ݷ?P6 t`  >B?\oEt# ŖoZu 0Nu;Y:|8>$# JpU>##<?2& ?5bbbz@b#ANi&bu$'h 2N贁N[2$@ LX"D&v(&m$ :;T'm"*B#d1d15 5`?Co yrigTt (c)020090M0c0os0f21r 1a0i0n.0 Al0 8s2e0e0v0d0"]1"a4M-/p3 p72&l>0>Uhh= 1#!eJ`#&FNTM\jh1B,RBM(!JoUy{O_ e@ So4(D@^Tw?F]֝ä ?Nk"?w_KT\T+\_(Kjӷjmplhj -`\TPQE\Uui,St_o u~!ՠXEO9= T?FL?;uQ_Pm"rA @3sjQ1lğ=GoYniAleE9 MX|'w'0Ur^N!M$|A vzHD  # =hj4>T!]]>#IAU@܋?Fj?@2r`5B?F^ݷ?P6 t`  >B?\oEt# 6ΠZu 0Nu;Y~:#&}>0m8>  PJU2N贁Nwk?@ eL&A( 5bM(b[)h+h+$h&#[-M$#?& ?b$Z*'*B#O1O15 5`?CopyrigTt (c)02U0090M~0c|0osv0f2u1rx01a0iv0n}.0 Al0U |8s2e0e|05v0d0"H1P"L4M-/[3 [7&l>0>Uhh= m1#!S!J`#*&FPUy{_?NTMjC1gc RVMʣ(D#@ ![?F"$. ?Nk"W?IKTLTcKjRlhj p=' (*!)i,SO2Kes9T;QEGUFw6qX}__TM7fTZT\Dž}_P^52XOES"rA 0S#Es3iAleE9 MX|$Gxw'0UrIN!4gA xvzHD  # =hj4>T!]]>#!AU@܋?Fc_v?@#r`5B?F*ݷ?P6 t`  >B?\oEt# ap'EZu 0Nu;Y:|$># BJpU>#͙;? & ?5bbbz@}bAA& K&@ 2zGzt?"K@ L0"&N(bM)+TK/8Z*B<1<15 5`?CoyrigTt (c)s02009s0Mk0ci0osc0fq2b1r1aq0ic0n.s0 Al0 i8s2e0ei0v0d0b"5194M-t/H3 H7T &l>(>UhE=3Z1#E!J!FENTMjN@1h(NoUy{OO e@ o)4(D@^Tw?F]֝ä ?Nk"?'_KD3\T+\(Kj?ӷjmlhj P\ DiAlePsI=MXsG'0UzbZ6N!%$0 sFEjHD  # =hj8>T! ]]>#!AU@܋?F*?@#r`5BW?Fw?P6 t`  >B? \Et#տ|u l4RQu?]>I$>I# JpU>͙#<?& ?9bbbz@b#AE&bQ$$D 2zG[zt#@ L4"&R(^&I$Q)+]'I"^*Bh{.M#To1o15 9`?CoyrigTtk(c)k2009kM0c0os0f21r1a0i0n.k Al0 8s2e0e0v@d0f"h1l4M-:?{3 %{7&l>(>UhE= `51#I!J49fAn^ R)X f"B!Jui,SG?RSlOS u~!N]8-19= T?FL;uQ ?Nk"?YVTQRXQOnğ/=i n (\ wTiAaePE9 MXLg'0UbZiN!)$0 Lf`jUHLuD" # I>h(J TEI 3qMU@jZ?F({~+?P >uA` ?u#VMJ*  )8*A )LG#P`G.$*G8BV6j>t   t|zpb"#"J>U2zGz?@9 +#>;&A@b]m(b{)+Y&^" !l$jN5#",#C"&p "Ms"b{);x'^",^"V/5#113#`?CopyrigXwt dc)0W20090M0]c0os0f2R1r01a0i0n.0 AUl@ 8sBe0e0v@d0R#"lJ8JUlC -(#s!)(J!O?zQ0 # # %YA NEU . K ;;LGE3EF)$OK.FHE\Vai%?F 6?wt\[ W-L/D5Dꤲ8?F@@SA?F @ ?Nk"?wY2`bmM3_Yw[7 K=ދF  #j1H|AIx]Sit\1IMLHDEnPOoDJ1AAeCBp OOG|u?F9 mO"t\7=L驣/XQ eel.%-+?@llփ?FU~> @oVoɽ7y2VzdOfшlA=$o`"jQ3 ex}@4SSa[?o4ui'e!Oa#Əa$jiMiyI,%!Xtz'0U &`50HF vؚ_`H>;s `Dt![x_H=ߚF(M#c&OB 6~d@+8 [sG^#ff !?#%|((W@֛+x-36i,k,x 7  NXUFD  h(^TYYB UFjZ?F~??x<F BPG(?P } X ]B66]  TTUTTTB9T9ȅHBU?? ?B@L&d2?6-G(\.Y(7.sU!}&/)Ѥ&)  0cB`,dat 0b 0se,2rv2,0ompu 0#3di0t0i013d0n0tw*0rk!e ^| (S G& iz ?!3E?? ?  wpp  pqw~ qwqwwpqwqqpppw'wwwqqbwqpwww7{{w^Drag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aabjZֿ~??cN׿ mF1??SbM1{V↑T*J?@ ?UG DF P# h @T(PYY# [U@jZ?@~?tP} u` ?u#2>D>HX DHlHYHH (E9.EUO؍:DUDXXlUlH"' &T",'U)2&5qq/4 ?""'4b0{[`:#26%Q_9 $7&9"L1" 2^!'>~_@ÿ@qh@o?@`B?gD]F0#Bu)@`-1֠Bu@Ur#CC5CAB""Ch9u`u `"[ b!u`2ւ/3Qy1y7B`?CopyrigPt0(c)020P90MPcPosPfRQrPQaPiPn 0Al` XsbePejPv&`d/`VPs__SBNcPm!#5P8[`CQ2y1&3db4&5=Bh8=/3z6&3d66 Ԁ2&4#/30U!r3]ge<^1E U#&5m Hq&5twV5t{3t{FEt{t{y {et !{|tYwmAdaуIOBT.1:a:a&20#V21032=FB3J112I5db6q 7~C|hhE) *^Q_`!CQCQA11B=B;8ARrSqe a> !b1AE4FAނ.1#8dT7`XQ`]rw` MPnuP%aPt%ar6aYQ_` E]0uPpU`e`tee^V5Qn]1PRRd M`uU`b¯Ԧ30Z! PPr#5GCHhz]3 D&bQe^\޿𿏫AP)aB`Ҩ75^gyϏ-% S*biPaϷZeTϏ-LPcX&ߠϫk5N`rBDl 2`i`g̨)@`ߑRPoʂѩ|(ZP\@ pKD`ĖUSPaPEePlP6?ЪX9` TP7`?>` /aZPa_qSbI`zy`DRa0"ZʒT=NwRkqa<.2`s @ҨגcOaI` ad2`%c& d nĝAs Nx+P=鑙mrDatV/a I͢@+aNfP󨑙 R `Qa// '=/KM`C/P⯺/+QUmU`utP I`/ %N4$?6?s 2v? 2Nv??;Hd2QC_3` Wz%?NV%O7OCt aOO#ޅO`M&`mR{OOӧY"Np_1_E;OUe1ySQ]_o_M qt!Tw*foSU@jZ?@?/v/vUpSp2u8p` ?bup` B=ݝ`M,{t!Wp5'm-ׁ<3ohm!Qb8q׏XݥBT!.ct!xAZg>pÿ=$ bUfq vU֒rrrvvvrsY"`ERon_10 бeCZ~bb W}Wbr@":tbWuP`TfnMq1o$6zK}_obK1K2\#b^ºaaaaFҴ_AaY6P`u$`bTs`ݡs`ap䑹x^tݥ5f_b&bׄЂF3s͵N?SYDs\rV@(#e"88G^80G8ɐIFZ,@rb4 2V}uauaxuYV{nx` % P&S.1ua`NEW_ORKd2H IPհs!R۰RЕIհSÑQȑTi|o&ohXAG'0U?8!0oHD # =hj0>T h]]9  5AU@jZ?@͂T??@x?SF?P6 jt`  o?tk[>(A Vu aSuo.]&A]  *ԮJU2zGzt?@L#&A@bA#z7 5#1bO(b])j+$j&[ "*(w "?& ?AU$l/%B115 `?CopyrigTt (cu)Q02`09Q0uMI0cG0osA0IfO2@1rC0|1aO0iA0n.Q0 WAl0 G8s2Ueo0eG0v0d0"1E]4MŤ-&3 &7&l>]Uhz811U!J!u6?@+\.>djIIa? >"(EǑ I%K9E 5EU . K ;;5QIWEEE@ _KnSA?8@VBu?@DR> ?Nk"\6`ObmMM\j=am {:e 뇿P> #? D"? 5-gg?j47!B{oogrK57!ibDAbE9 MX7'0U~rN!R$a)5 5vIzHD # =hj0>T h]]9  qAU@;?@I5K?@xEL?6ѿP6 t`  bm&Qo?t@@L]WI,#u aiuoL> JU2zGzt;?@L?&A@b}#zs q#1b(b)+$&[9#H",ɺ (wH"?& ?A$ /%9#BV1V15 `?CopyrigTt (cu)02`090uM0c0os}0If2|1r01a0i}0n.0 WAl0 8s2Ue0e0v0d0"O1E]S4MŤ-9#b3 b7&l>]Uhzt1.A!JN!m.%-+0djV1ax߃S(@J-&?@ mO"> ?Nk"L[Majnha_:e P> #? BK=o? n-?j4Bs!B{__Wr5s!D8E6V 6?wj_|_ ^XE.U6Vz T6 @ d_mOoT ݬ\VߦyWx?RkrVo_bVh*g:n"'UaEjz}36>CN>?Bn]z/GvN7ViDAAbE9 MX+G'W0UPN!4)ae5 MaHD # =hj0>T h]]9  U@jpiH?@^?@$?@]F?P6 t`  !a&ao?t,F=۳=u;u auo>J2zGzwt?@ʐLAw@b#z1b](b!).+I.&[-m(?0& ?A$I0/Q%!!5 `?CopyrigTt (c)02`090M 0c 0os0f21r0@1a0i0n.0 Al[0 8s_2e30e 0vq0dS0T"!E]$M-# %'&l>]Uhz!1!J@% djc~YZ(_N9zOMGE%_EH$SwO"K ңHE ^&_8_WE_OqOHOOi&DAbPE9 MX7'0UUfb>!$a % f1jHD # Uh4>T#]]9 M5AU@jZ?@L|+?@?@({~?P6 JuM` ?u JYt )t7zEA2&L_D?. > >tJU2q K?=@MJ&A@-b9(+bG)T+T&J[#"#a?& ?AH?/`)#115 {`?CopyrigTt (c);020G09;0M30c10os+0f92*1r-0f1ai+0n.;0 Al0 18s2eY0e10v0dy0z"!4B#e-?3 7)& b 0K8>U# ]A]A "1!ъ!PzQ <%OYAJEU . K;;\%W%E@($L[.FX5Eai%?@ 6?wL;] W-\TB⤲8?W&SA?@ @ ?Nk"L'`bmMW_Ye[7 VK=F: [jr ? D"? X?ZvD?a@Boogr5;!QEؿx]SiLO MLXa~WOTZiAle59 XG"'0Ujc&N!$05 .HD # =hj0>T h]]9  IAU@K?@OgVb?@Y%?@wᳬ?PJW?>t`  ^Z?t#ə.E @x?r?/{4܂ G _Z+u u$ >  J JpU?43f<!.&P?b3bbfz@1bAe&bq$d 2zGzt.#@LT"&r(~&i$q)(+}'i"~*#81815 `?Co yrigTt (c)o02`09o0Mg0ce0os_0fm2^1r 1am0i_0n.o0 Al0 e8s2e0ee0v0d0"11E]54M-#D3 %D7.&lUh#7 V1#Ai!J# F/?B1B  VRiAAbE9 MX G{W'0U*R2N!I$a {VZUHPD  # #>h0JTpERI MU@u6?@jc{g&?@%r`5B?@m_F:Is?HNtQ`  II?t#]  _ii$!`kNu  iu%wj>M JQ T       "@&&JNU2"?H@Qs#N&A@b(bU)++&RNp}#>H1#19 ?#bbbz| R&/5R}#11`?Co0yrig\t (c)02h090M0c0os0f21r0Aa0i0n.0 Al!@ 8s%Be0e0v7@d@21a4t#-}#3 %746lJ#$JUp5 3 M19 1!q(!@nElrkRt# 8$kcD?@숒@)?@P?P"EkU |1\iOT/irvs}i>`_,of :m ,M ?? S&d2? *b?r4B!B oo1gr #5!>%(EQOOOO__@Ac1_C_ D4ևS]_o_yRX+{_,__ #R__ (YQoSo+o=osd {oEeoooooo@yUy{* hDV!VV(I X"c7I!pg bf'iMjSE t%XyG|'0UŢŞN!O4i |UGD # hz0TdYYBU@(%)?@xg^?@0߯H?@s7Uݹ?P} t` 87?t#_)TeΦu ]ukv  ̝L&UUU&I&3 U!!`?CopyrigPt _(c) 2\W09 M c os f"!r 1a i n}. Al00U (s42e0e uvF0d(0'HS$#-## 'I?k=#ǒ 2j$B##0U'BM3@&@F0Yk} #HA%DKb5DK3DK5DKED$!GiAZG5(|IDFX7yW'&Dŭ6!4YA yVZHD  # =hj4>T!]]>#AU@0߯H?@z)e??@˞9q?P6 t`z  ?5t# rXѮu)Nu;):O]ע0 &> # " "+"+"+"+" $+"T-J[U7 ??& bA@ 2b4-#2zGzt#+@ Li68!6 ?}; 72U!:B#AA5 5`?CopyrigTt(c)20F@9M2@c.0@os*@f8B)Ar,@eAa8@i*@n. Al@ 0HsBeX@ej0@v@dx@)21"DM-,;?C G& l>]UhzAE!A#!ְ1J`#@{&pz?@Uy{?NT,dKj&b&R&M/8T9K-q?x6@F?@dG0 >Nk"?YE*]\LT_hKjfGD&Qhj iU3UGe&Y_`?@/b%)h5oWKoWo;KTod}l$roҥ`nE2K?@ˌ%4G{?@ -q eZ̿R^{|\6?vodmP}l>MBe 9 N 1iS? 1?g]rl#51:O("4ga@Sq(UE^@O|ǐ[`Ρa g v2rA @3ijD&}l迲aqOz o?#WHZ'Qu=*[^N?@]%P?@O&@ c?@аM<n ?` eb0)\(Pfodm}nv}l?V5(?q$Ix[cN#W{#iA&QeE9 MX|''0UdN!0 /HD  # =hj0T h]]9 #]AU@}%?@R$,?@6#V?@c_3֡w?P6 u` ?u#t  3zM%t3ws%.<%H._'B> #PJU2N贁Nw[?@ʐL+&A@wbu](i+bk)%+&p%#4">9"<5!?& ?M#bbb͓z$ p&"/%T%#L1L15 w`?Co yrigTt (c)02`090M{0cy0oKss0f2r1r 1a0is0n.0 Al0 y8s2e0ey0v0d0"E1E(]I4M-%#X3 X7&l*>(UhE j1#$Ac!J`%#@5e$_F??!foA3nBM( V?@J-RHQ??@S!R?P| llHL6VLD5E+v;*AʙH: 8snP%$? k?Q? \?f4_!_t_Wr5_! R,U3OC@IL?@4~Kz?P)Oy޾ T!]]>#IAU@܋?@2Oa>?@#r`5B?@*ݷ?P6 t`  >B?\oEt# ŖoZu 0Nu;Y:|8>$# JpU>##<?2& ?5bbbz@b#ANi&bu$'h 2N贁N[2$@ LX"D&v(&m$ :;T'm"*B#d1d15 5`?Co yrigTt (c)020090M0c0os0f21r 1a0i0n.0 Al0 8s2e0e0v0d0"]1"a4M-/p3 p72&l>0>Uhh= 1#!eJ`#&@NTM\jh1B,RBM(!JoUy{O_ e@ So4(DF^Tw?@]֝ä ?Nk"?w_KT\T+\(Kj?ӷjmlhj -`\TPQE\Uu?i,St_o u~!XEO9= T?@L;uQ_Pm"rA @3sjQ1lğ= GoYniAlePE9 MX'w'0UrJ^N!M$|A vzHD  # =hj4>T!]]>#IAU@܋?@j?@2r`5B?@^ݷ?P6 t`  >B?\oEt# 6ΠZu 0Nu;Y~:#&}>0m8>  PJU2N贁Nwk?@ eL&A( 5bM(b[)h+h+$h&#[-M$#?& ?b$Z*'*B#O1O15 5`?CopyrigTt (c)02U0090M~0c|0osv0f2u1rx01a0iv0n}.0 Al0U |8s2e0e|05v0d0"H1P"L4M-/[3 [7&l>0>Uhh= m1#!S!J`#*&@PUy{_?NTMjC1gc RVMʣ(D#F ![?@"$. ?Nk"?+IKTLTcKjRlhj p= (*!)i,SO2Kes9T;QEGUFw6qX}__TM7fTZT\Dž}I_P^52O,ES"rA 0S# Es3iAlePE9 MX$Gxw'0UrJIN!4gA xvzHD  # =hj4>T!]]>#!AU@܋?@c_v?@#r`5B?@*ݷ?P6 t`  >B?\oEt# ap'EZu 0Nu;Y:|$># BJpU>#͙;? & ?5bbbz@}bAA& K&@ 2zGzt?"K@ L0"&N(bM)+TK/8Z*B<1<15 5`?CoyrigTt (c)s02009s0Mk0ci0osc0fq2b1r1aq0ic0n.s0 Al0 i8s2e0ei0v0d0b"5194M-t/H3 H7T &l>(>UhE=3Z1#E!J!@ENTMjN@1h(NoUy{OO e@ o)4(DF^Tw?@]֝ ?Nk_"?'_KD3\T+\(Kjjmlhj P\DiAlesI(=MXsG_'0Uzb6N-!%$0 sFEjHD  # =hj8>T! ]]>#!AU@܋?@*?@#r`5BW?@w?P6 t`  >B? \Et#տ|u l4RQu?]>I$>I# JpU>͙#<?& ?9bbbz@b#AE&bQ$$D 2zG[zt#@ L4"&R(^&I$Q)+]'I"^*Bh{.M#To1o15 9`?CoyrigTtk(c)k2009kM0c0os0f21r1a0i0n.k Al0 8s2e0e0v@d0f"h1l4M-:?{3 %{7&l>(>UhE= `51#I!J49fAn^ R)X f"B!Jui,SG?RSlOS u~!N]8-19= T?@L;uQ ?Nk"?YVTQRXQOnğ/=i n (\ wTiAaePE9 MXLg'0UbZiN!)$0 Lf`jUGD # hz8T YYT#BqU@5?@`0 ?@ t2?@?P} ։u`h?u# Lv3<@PT=d,2<<Pddt m۶YtjfUh!NUdI,@=#B!!u+`?CopyrigP}tg(c)gW20 9gM ]c os f"R!r 1a i n.g AUl0 (s#2e e v50d0+"!$4#bB-m)|# '?h==$&$#66 2j4$#=#0UB%3#3&50$^ #Q9 =#HAQ5D<KE%DdGg*Fj#aOb'*TATA4"1(3&Sa4% `2HAEBOiSHdiSi^PQ5 3FXm'.W'DŜ6-!40 VZUHLuD" # I>h(J TEI 3MU@jZ?@({~+?P >uA` ?u#jJ* )8* 9LGA )`G#dtG.$*G8BVj~>t  e t>"z "p{b+#7"J>U2zGwz?@9 S#>c&A@b(b)+,&" !$5N]#2T#k"6 "M"b)HF;'","/]#11[#`?CopyrigXt dc)020090M0c.0os0f21r0Aa0i0n.0 Al+@ 8s/Be@ej0vA@d#@K"ulJ Ul,aAaAC 5LU(#!Q(r!wW?@s80&9<01# 0IK A# ѥ,Og NEx]SiL5[ML&X39^PzQQ_c_ ?%YAQ)UEEU . K ;;\W)U I@)$_[.F&XA:jai%?@ 6?wL^ W-\/&T5Dꤲ8?Eg@SA?@ @ ?Nk"?I5`bmMohiy[7 K=F  %?j1&XIOD?@u@rLu7j T_ʹhLi,KV@8$Ȯ?@1x}b} yy_@){yEZJ]%8O@G \t;8j|c1}p?i @'WE"NO_T ZYAAekBp OOLJ}u?@9 mO"9=\/hQeel.%-+@mlփ?@U> "8?ɽ7yf\tOfj|A=$䚏Bp$za3ex@4Sa!6Wy'eU!a)#kq&ziM2i?IT%!Xh<'0Ub6502 ?}HD # =hj0>T h]]9 !AU@+3]q?@8i?@.!'?@\S۳r?P6 t`  C=?t#9sxZlRJ)u duo$>  J JU?'N<?& ?AbA@bNbbz87 5#,"b4$,"'b4$2zG7z?@L&5/G/Y 3%,"j&d,,"Rj*/1/15 `?CopyrigTt (c)f02`09f0M^0c\0osV0fd2U1rX01ad0iV0n.f0 Al0 \8s2e0e\0v0d0r"(1E],4Mb-;3 ;7&loUh#7 M1D hp  o%J F( dj!1B2 bdV.RiAbE9 MX|GW'0UR)N!!$a VZHD: # =h4>TB#]]9 TIAU@1q?@!9?@aww'?@տԌU?P6 t`  9F׿=?t ڰ#slgW ª%?)Zu Lhu!s8hAh hJU'N!?2& ?AbA@bNbbzc a#X"b`$X"b`$#2N贁Nk? "@L&a/s/ _%X"&,X"*T#[1[15 `?CopyrigTt (c)020090M0c.0os0f21r01a0i0n.0 Al0 8s2e0ej0v0d0"T1X4M!EQ#-0Og3 g72&l*>0>U#3 A y1vXD #p %J`#@.T'oo>hn56>fcRM(! Zך4_F_ b/OSϏHT >ɪ#f:?@*S)Y=> yy_@YjeeRT;Gq!Qh~n~OkzEMsZJPl -iU@SQEU"pL._qw;m;aU_ BnhX#rA 0X"IsTj߿kHhl!Qdok!(Npd 0Ale E9 MXXGB'W0U*}N!M$)Aj5 vzHD: # =h4>TB#]]9 BIAU@b?@;h?@ ?@F_a4w?P6 t`  /?t {/_  g?xRJu hu!s8&> JtU2]q ?=@ʐL&A@5b]M(b[)h+Ih&[#$"#?& ?AS/t)T#115 `?CopyrigTt (c)O020[09O0MG0c.E0os?0fM2>1rA0z1a i?0n.O0 Al0 E8s2em0ejE0v0d0"@14M#B-,?$3 $7&l>0>U#3 CE761$!; #p _%J*!ԌSU hneNw3󛍩(D#2q>@t|M?@a^!v:1 yy_@I56>[ŀQhnO:@K0hd7l aV@S8E8Vؚ㱫L{_pZ5X50U-0f:?@D?cHe-1>[W9k]geϺQ Y" KaĘ\Bqj]GRׂP_FR}LY5E:/U=uOqsR Y2JZ8 b G0Ale59 MXGB'0Ur:N!R$XA'5 vz_Hp>,ÿ;s ZH(GBFXM/# EOBH8~druo@+CX"o[sGx o$$a(xZ,X8/!!-3#!6F֛8'!N:)!<5?,!B/!F!I!M6H!PN!TVT9! \(!^K!?bUFD  h$^T YYBBUF\.?x<F BP(?43^P? Vs V6gH?R\d ?8EB G 09gB`.Cloud,netwrskcaUins t,pa !i sa ! %e^ M%J 1Gg YR 1H?_^p Qwwx0w x3wxwx0wxwww xQww ww0wp wwwwwwwz pww/ p7^LDrag thuesapWonodwipe.b~߿~?? XAP7d??O\.ߗr3r\.CUG DF P# h @T(PYYUEUF\.?~?F~׻?P} <Y ^.B" N'O'*Q'R'S'T' *^ Y&Y u` ? "s'_":s"Ds"Ns"Xs"bs"ls"vs"s"s"s"s"'&&:&D"uN)*2<7)VU2^L[b1j2 ^`s" H3z3'N‚??lF ?ma[Z<` Ac@entColn@r3z[_b[[bNbbzI1dq9E 8AЇEO 24bYP{[`:BeR&nVB#32Q?]q ؂3Q8A*W1`Vis_MRXY%cPm!P5`12`݉`?Ap]y@igPt?Pu(@)?P20L`U9?PMPc@o`'of>bAr2`AUa@i@n% ?PA@l?P7gsbe*`e@v@d%Bd455uO#4[%B+@q~9p?@IBp7u@usPRD"J-D"t=2u0`B-1D"֝ruL &@BGm3ry=_"n4O N)9u`u `"AA b1O$u`B, ^aepcT<@o?Pm@sĴ@a>5SRTJAn@e@?aT]N@twBk?PD@vVbe)EяFE*UM_q|U۟e"4Fpd(aC l &&2::)BDD BRXX|bb2llbvv TNA5 rT&_Qj~}8pK!bdzӲ=`pM0 : D N X b l v%‡'_"D_"N_"X_"b_"l_"v%™2:2D2N2X2b2Hl2v2BS&2NC󨕃FkZV?F'IOғp~կˍW 2r033(FE9<QߐlzBO$ߪ߼߮(U9|>}>MR,AZl~(|9x uSV!+=  (UǎoC  (ָe.rMi>3LÔ  eD2(dv  Q!Uh!%5QU}4< ?VV$`fBh}Ȳ7O!<?F/*Ȳ/2sU~1p%)E+D>L?/Q<,6FE%mEB?T?f411%U\+:-yO?H1BdhPUifb}WSȊOt6XQ4X @ pp` k*`n`RPn`dxQdЯd79@#AUUiB+T.(T;)dH*d db$"Tt ,@AaiE)khp:j%56_:9c&ЩD3s͵NSY2a)k8la)k(8l|)k 8hm8_ZI۩Qy`Uee8^6JVAAD @^R` WShpCꥁs!`L ctsPzTq`ss wTyr"^RS` pu EqC#5#s SzbCRsqozA`BiEOO\_xX#Nsqe'2q[[!c0_ZˑU#|7t:}#/'_x # fHavU# 1H !eU iEQ % UH duD " # J U> hzi@T(iiJ\ UF~?F~?tP @Yu`?(.8uBbSA{szat? Cteb"0#$YE['?a&?.tb'|z酱2Q?AG}$&}qam{c8`Con0ect0rz 1l2z{{+` Li2?15-tzYaU#F131 ?WPa0t0r0)4;1Z7}`T5M151?UR0u0dB2g6Rz8%"Q-!c_C~#J *$&#FH-B;"2MC &BS{%ZMCQ-!dgG 1`?1py0i@h0 c)20RP9MB0c0os0fDDR1r8P11i2]. AL0lJ=WsRedP1v0dP]@>ֵDCz\MC2qP?_f[!?\.? ~:o -D~% IKMC&&UgyQh @ 1_`S0aP2BiEfoxoyXMGw'0cia&!|$0 vjlAUEu P-QyB:MCz?bkp Tbb-.(},8>8dup*ar%@68K]ou ÏՏ ?|>R9=PbtuYȟڟ x<w(LA7BUgyu]ͯ߯"}>%7GZl~uAҿ '%OHL_qσϧϠue kZV?F'IOғ %NMQdvߚ߬ߠui+.Q7Vi{Q"QucwHD: # h8>T ]]9 M UF~?F~?JP6 7@ZAAM ,'@' T'h'|']"' ' "  " '""'"'0"`''JuM`l? 'y""y"6y"Jy"^y"ry"y"y"y"y"y"y"y",y"&,y":/L/^"uh)!b_A@36Jte! i(Bt1 LJFb4D"FEB>fCJ[oC'N(?F ?"b96BhE#fCtoC2Q͞C@MEMJ3V8E@8;G2JoCQuAuA5 `B`?CopyrigTtk(c])k20 `9kuMPcPosPIfRQrP+aa+PiPn.k WAlF` XsJbUe`ePv\`d>`PoCQ! \l-OS WFfEP b$U9 fuXG_'0UHrũFZ!D0 fzlJ\>Uhqq]!!0!PQAcHQ@1S?Fȓ$,_q?^"d#e4Eq ^"3d]q 0!0"/"Q!0"fBJ4?F;W?FjlJ?FH E(>?NpKv7atuXad#hX\a3g6a0e!2 4#q E6?Fv9?Fb4!?FЩԏ挍maVv]2:{(?-yjI>P!Xj?FT꞊j?F'K?F;(嗟éT.kvd*ĮVq#(]HXEAr ?FK(umB)?F.~rYYH_amAáF+x(~*=į֯uhY*?FY.(v0zkd)D6GdSZpB{(i]"/M͐?Fߧ78ET+Lk ]D am++Tz&{+69[Ϟuf?FP$?F [13nٶ7gۣ挠Y,Idkim0H@eQY"ߤİuӧ?Fl?|f ͲKlKBG]fkϐߵAZV?F:?F* ?P$ 1EK3 3i{߮Gz~}Ԗ0>_NO5q :_" s3t? ט P&d2g? 41z3B2_qr5E~\.儐?FQ( BP >5 w pmD0VY l j٩ 3 UIPY?F3>Dx?Ptk= `K0z߂3S0kg; z0f=kVN?PX#Z3d1H-Z?F)$F\;X})挗J hG~W*fU4~%?FVFKL/GaH)r~(H  N/?t4ZA rGg?F4W eſ?FH?Ýi`)6¿l#kpc'??4FF\>FI(1 O怘Rrq SCH>t v|RuONHD: # h8>T ]]9 M UFx<?FAj?F~?FwQuu?P6 7@FA]A]M ],'@' T'h'|']"' ' "' ' " '""'"'0"JuM`^l? 'e""e"6e"Je"^e"re"e"e"e"e"e"e"e",e"&,e":/KuT)!bA@*36JtQ! 2l] 2t12zG57RQ57)\(1>RJCJ[SC'N'(?F ?^"b'96BtSC2B??088r0MICJF8;;G2J2SC@?JE=26S0#CSCQYAYA5 `2`?CopyrigTtk(c)k20 `9kMPc.PosPfRQrP)aa@iPn.k AlD` XsHbe`ePvZ`d<`P񾔝mT!l-pHS %WF{Vi AbdU9 {YXpG'0UFrōF!D0 fzl*J\>Uhqq!!0!QsAGHQCf֩?F1Qd?J"P#Oe4E] J"3d]] b0!\0"/",&JBJ2(B@?F,/k?F]?F8{# \*?LpKv7_tuX_P#_hX\_3?g6a0Q!2 4#?DEh?F~E ?F_pLVwMҏ䌍m_Vv]$A2:{&-yjI-H+ŕ' YbҖ.K?uAc9z^̰f5U?FF/`_`P \!b@ir_f|Ƣn y(Tf>rpd6ENj/-g?FRr?Fn^\K0z߀3S0k~mr{~.*{ S4K" =b™? C? "@wD#<2tr5EOK4n?F{׀?FBi䌗J hGW*fUÝ)k4Il RuF?FB5r?Fn?$Xp ?G'gH᷷?r~.H  N//4;KGۨI} yFa%?FO"Z/g`)l#&Ƚkpc%//2DF7?d>FM?MRrq LS3H>{v|R؇?>HD: # h8>T ]]9 M UF`0 ?F M  ,'@' T'h'|'] ' ' "' ' " '""'"'0"JuM`^l? 'e""e"6e"Je"^e"re"e"e"e"e"e"e"e",e"&,e":/KuT)!bA@*36JtQ!  \(\] 2t12 _p= 57]@ף57%)2] >JCJ[SC'N'?(?F ?"b'96BtSC2Q?0G88r0MICQJF8;;G2J2SC@?JE=Z26S0#RCSCQYAYA5 `2`?CopyrigTtk(wc)k20 `9kMPcPo%sPfRQrP)aua@iPn.k_ AlD` XUsHbe`ePvZ`d<`PRmT!l-pHS W$F{Vi bdU9 {YXpG'0UFrōF!D0R fzlJ\>Uhqq]!!0!QsAGHQ'n-?F1Qd?J"P#e4E] J"3d]] 0!0"/",&JBJ2G2,?F,/k?F}X?F8{# < ?LpKv7_tuX_P#hX\_3g6a0Q!2 4#?DEU: Z[?F~E ɀ;9C5 ?F?wMҏm_Vv]2:{&-yjIAim.H@eQW °A{?FH 6I_^ d ͲKlK~BG]fkߵy X0?Fjd?F*OzE=M2'-H+ŕ' YbҖ.KuAc!N\?FZf5U?FO/(Sÿ?P? \!b@ir_f|Ƣn? y(Tf>rp^N/-ُg?F6+:n^ºK0z߀3S0kmr{.*{ S4K" =b ? _C? @wD#<2:r5E1f.]n룠?FF[PBi䌗J ~hG~W*fU)k4R9uRuFpZ?Fn$Xp G'gHr~.H  N//4[/I} KKbv"Z/Ýg`)l#&Ƚkp!c%//2DF %>FM?MRrq kLS3H>{v|R?>HD H# h @>T(]]9 MT  UF|>?Fd2L&??FVR?P6 @ZfA]A] >M /]8HC8\C 8pC8C8C8C8C||C 5C 8" 5"C5$""C58"C5L"JuM` ?  "4'C"R"f"z""""""",",".,"B,"V/Kup)8!bSA_36Jtm! q$y BYt1B5A!EM!E*G[~By >zCJ[C'N'(?F ?7"b'96tC2Q??088r_HEyCJV8;Q;G2JB2C@?zE= BFS_#CCF~F$u?FNR?F~Sߪe f"l#ͽU>aſf"J3RRy f"l#>b@Ed3̀ͅap`L!  f$#p)bq65q p)CaAA5 `%B`?CopyrigTt@(c)@20:p9@M&pc$poKspf,rqr pYqaPipn.@ Altp $xsxreLpe$pv"pdlppT$!q$-Hc gFV$VibE9 YXG{'0>bUŽF!D0 UilJ"\>Uh"" !$!8!L!q'ArwHqI}^?Fwo?0je4EZeLdd?]e\DL"K""L"zBJT" Y?F]?Fo?F5? Ѭ:?1ipKv7tuXZlhX\Zexdg6gJ0m!2 4?#oD Um?Fڼt?Fɤ_i?F0>m* 9?F?eD;]D m++Zl?Tz&{si?69Vu9,"f?FXev!Jx W?F8+y٨HZ ͲKlK~ZlBG]Lfk&8}H ?F$j #?F?B?FH+g'Zl Yb*xdKuAc>j ?F-}JӦ?Fզ.ki]7aB< x!Gi@ir_Zlf|Ƣ y($M-wF ?d2huON{v|RONqNwHD: # h0>Th]]9 MP UF~?F~_?P6 dnA >IM .)B) V)]j ~   ) )) ) ) ")")2"e)~)JuM` ?E){"${"8{"L{"`{"t{"{"{"{"{"{"{",{",{"(,{"JU2Q?@M?CJOFA@!@HbʏIKFrB !RDJICB'?Vp BABbI2[GrBLrBOB-ICR SC9 _VICQQW;HB`?CopyrigTt (c)=`2`09=`M5`c3`os-`f;b,ar/`haa;`i-`n.=` Al` 3hsbe[`e3`v`d{`Pi @bU9 VHXWXA'2qpVtUIa fjlJ Q\>UhQQ]~ !!2!DEQ!=H^A@1S?FO$,q(P`"3 e4Es `"C ?]s Jt{Z rGg?F;mx>F9h E(>?NÝ*`)*f#퐲>+3cݛs a0g!2 4#@ES~%?FV?F4W eſ?F}G*H᷷Ļl#*لȽkpcXSH?F-Z?FF?FPL߯@J *⁈hGr~لH  NᵪS UI?FY?F섰a?F@\ K0z~**3S0k~Ä&~ԉ~$ARm}A\.?F:?F3?FDٳx?P+k= 1`竪3*{Gzޟg; z?ԉf=ks :a" F f 94FQ2! 3B2:9rt5EG~[ZVn-C4?F4?Pu>5 Οw ð}H 1唜2fi0ƱVX 23@0Bk{̒[mY*?Fuӧ?F?F* ?P% t1EC6G*ͲKlK~}>NO5 RԋS2Z#@cukǜ{̦Ouf~$l?F|ƯY,*kBG]fk0BO"/M͐ŧ78E [13nٶ7g"]D *m++仌imIلH@eQOY.(vT+Lɇk h!˿S컌Tz&{u69Rd~OEAr K(F0z?Fkd?YH_2mA B{لi]I'p1OjT꞊j?FmB)k.~rkéT.kܶĮ~+x~ل~*=u1O6?Fv9m'K;(-/m*Vv]BÄVq#ޔ]H//rP;W?Fb]/?F?J/pKv7*tuX滌 &ה`Ypl?GuSFjlJ?FH?#5~hX\~ g61!O3K_H8>X"s D')K'g FMth1#iXB H{j]@L'} V6lX-1u. Bj2u2Z2j2#u9r#ULH/MZ1+B#AD5 60`Vis_SE.cTm!#20AD%`;Copy<0wigTt ?DU1f@M)@c<0o+@'ofdBUArX@AUad@iV@n3@ f@WAl@ \HsBUe+@e<0v@d3@J@=## A G?9#"n"Ea&444 70#AHB53_lj#SV6U8l>(UhnE / J$&9"(Fn_g5Fe#pheo'r#T X!! Jc0xo)vR2'"U7A%O3W_7rr5-6 `F2 Vrqu\@|Q:0b)`R@As)@E %T@xd@Di  ei=G]U6Tg'0"q)V!DHAn 6SWaH>"> O`_E )F(Mjw#p"N7B C8"?edo@7.#PUFD  h(^TYYB UF\.?x<F BP(?P?Xv B6u6  T^ThWZTTȅHBU?? ?B@L&d2?J-[(m(K.sU!&/")ҍx;(  0KB` Bridge,n&0two0k(0p&01pP=1al(0d&0v 0c@&0 [1^P| ( G&e WPW"*U---?-. wwwowwwp~wwp!wxxp}wwhd:lww w pvw>ÿ@qZ@E?DFp6@rR$Sn0!u@`i-FAD"BRuL @GCD$]QO(gR_"|i& 4O N)9u`u `"[bO$]u`J425)3Ga171`Vis_PRXYcPm!#5n`46B.R`?CopWyrn`gPt@u(~`)@20`U9@Mn`c`op`'ofbar`aUa`i`n @WAl` hsbUep`e`v pdR13d45*8=363@tFF B4B#30UrC]Vw,7%$T!nLPLsT<`o@m`s`q>g d(aq;_=@TATA2hhbB)3*̈́b+ڄ8bq q200Dr81@a6s2+66u\L %BWQ(A.A[2BB]P@RbESTO$@6r23| e|8e5=_4&F3s͵NSYFețG@DugQ̗,@Ga cupgbE@*28ABTOopD"%J-.RRO(R$[3VÁ`R pasn`e T px``B| 0Ls'_"x#PG $UJ"bk B3U2brZTCfRr ïը8=vv_<H!U"D"=m0!D0!g!@2ÅbBЅ3/xԂb08beaea22Dr3 AAE|66v7 |8Ԑ`b-A-A;hr#zr{qV W!rA8T@GaKk ]]P@` USPa`e`lLsaQi` E0u n`p`e`TbEXew` —T``8` D pvbT3^r` MSb Bbd`5ed;YRmM`nf`c"`u r88eQTAPbd Nm@Te@h=O! P`rxAx8eb`m +sbeXsuĨ9KuAe;S`uJB Sri`a /TTh//A/L`ch{/Ҡ///Blpi`[/@?#?FR`oS?a??uNwbkl"aXb`K?[It`adp s*OT]]9 M JU@x2zGz?@MJA@eb#z(b),+,&J[(.?& I?A$./O%B!!5 g`?CopyrigTtZ(c)Z2009ZM 0c 0os0f21r0>1a0i0n.Z AlY0 8s]2e10e 0vo0dQ0!$$-# '&%?6iie59 6X7'K0UpBŁ&!$K0 'F;JlJAh h7!1!Z@vnǣ f, <AA#  IRvVJ:'BP(?OS spBlU^TURUEUr\.G\ZY?PuPիQ,5U҄Q[pB.aYU520_BU"rA 5#cHD: # h4>T]]9 M JU@1&d2?@Vj?@҄BP(P6 ]AJuM` ?ju#t  k]It=W(\ZIRUIl">2zGzw?@MJAw@eb #zb](b%)2+)2&J[/.w?& ?A$T4/U%B!!5 g`?CopyrigTt (c)020%090M0c0os 0f21r 0D1a0i 0n.0 Al_0 8sc2e70e0vu0dW0!$-# e'& ?6iie59 6X7{'0UŇ&!$0R -FAJlJ8>UhAA 11!T2 $S<cV{ WR~VJd2L&?@ubX,X ]S fR#mS [ÐڱQE^Fh4__ K&oeX5:f'l6 XYePY?ۭsHMQ5aZjoohY}aUVeEVx_;"rA #dsHD: # h4>T]]9 M JU@|BP(?@h4WFP6 v>JuM` ?)uJt  U]It=W{GzUIR]I%l#>m2zw?3S@MJA@eb #z.b( (2+2&J[ (p"?& I?A$ 4/U%B!!5 g`?CopyrigTt (c)020%090M0c0oKs 0f21r 0D1a0i 0n.0 Al_0 8sc2e70e0vu0dW0!$-X# '&?6iie59 6X73'0]UŇ&!$0 -FAJlJ8>Uh 1Z1!Z@o.rɩ  <uCB] WRVJ@ ?@bx ]S ؒQ#hY))QE^jϵZ__ CaX5a9XYePXRmScRU5:]mxc_PU"]rA #dsHD: H ih(>T9 M3JU@xJuM` ^?5ulbSD_Jt bstE>2zGz;?@MJA@u+b+&K !JS"j& 1"A.b+-,-/*B!!5 `?CopyrwigTt `wc)5020A0950M-0c+0o%s%0f32$1r'0`1ua30i%0n.50_ Al{0 +8Us2eS0e+0v0ds0ib =L!XY'0U Bj&%0 :lJ Uh*M[A[A 9A Z1:'BP(?X Y s BQi@JSv?@bX, IYwYQ!i )\(!!U31^Fh4I_[_ p= ףuXEfl6 TbYHuX _Vgj_aZ(oQ !UAI҄AK B\%QAI@h4GFHlQbY{uXAo ].Oroa_(miY"@ _?@-BQȠ\ p_\oR\uXAppD`Zsƌ uXEOO_\HD: H h0>Th]]9 M JU@$?@-#?@%G֖g?@q;Ƙ?P6  n>JuM{` ?5 uJt  -|ߥ_Et9S8-zENسא\Eh)Fx%[v>2N_Nk?<@MJA@cb]b)++&J"< u) ?AHb$z@J+%/F%B!!5 c`?CopyrigTt (c)302`0930M+0c)0oKs#0f12"1r%0^1a10i#0n.30 Aly0 )8s}2eQ0e)0v0dq0!(Y$-3 7x&+0b59 6X7G'K0UhBx&!$Ia F3JlJ]Uhz11Z@S3   8gF/_ M ARnVJ!49BYOPBRWSMRUE:]|`X?\QRYl>Q5U/V@_YQĈU2(_:UrA cHD: H h0>Th]]9 M JU@!\?@JI?@8HL?@VG?P6  n>JuM{` ?5 uJt  4 ^sEt9SPDEN׈]Ehoþ>2N_Nk?<@MJA@cb]b)++&Jޱ< u) Y?AHb$z@+%/F%*B!!5 c`?CopyrigTt _(c)302`W0930M+0c)0os#0f12"1r%0^1a10i#0n}.30 Aly0U )8s}2eQ0e)05v0dq0!PY$-,3 7x&+0b59 6X7G'0UhBx&!$a F3JlJ]Uhz1h1Z@Pg   8gF__  ARnVBJ49BYOPBRWSMRUE:]?{^{?\QRYl>Q5U/V@_YQU2(_:UrA cHD: H h0>Th]]9 M JU@F5x3?@5yF_?@%G֖g?@q;Ƙ?P6 n>JuM{` ?5 uJt  a8~4Et9SuEJENسא\Eh)Fx%[v>2N_Nk?<@MJA@cb]b)++&J:3f< u) ?AHbʣ$z@bb3?bfb)$%/F%BB115 c`?CopyrigTt (cu)>02`09>0uM60c40os.0If<2-1r00i1a<0i.0n.>0 WAl0 48s2Ue\0e40v0d|01Y4Ť-3 7x&60b59 FX|7*G'0UsB)x&!$aI *F>JlJ]Uhz%11Z@S݆ f  8gF_  LR)yVJ49MYZPMRbSXRUE:]|`XJ\Q]Yl>Q5U:VK_YQU23_EUrA cHD: H h0>Th]]9 M JU@ ~?@gŬs7.?@%G֖g?@q;Ƙ?P6 n>JuM{` ?5 uJt  YoDt9~S-/ENس\Eh)Fx%'[v>2N贁Nk?<@MJA@bb)+R+&J"< u) ?AHb$z@J+%/F%B!!5 c`?CopyrigTt (c)302`0930M+0c)0oKs#0f12"1r%0^1a10i#0n.30 Aly0 )8s}2eQ0e)0v0dq0!(Y$-3 7x&+0b59 6X7G'K0UhBx&!$Ia F3JlJ]Uhz11Z@S3   8gF/_ E ARRrRJ!49BYOPBRWSMRUE:]|`X?\QRYl>Q5U/V@_YQĈU2(_:UrA cHD: H h0>Th]]9 M JU@ ôOS?@S !p?@%G֖g?@q;Ƙ?]P6 nAJuM{` ?4 uJt  M:AEt9SENسא\Eh)Fx%[v>2N_Nk?<@MJA@cb]b)++&J~"< u) Y?AHb$z@+%/F%*B!!5 c`?CopyrigTt _(c)302`W0930M+0c)0os#0f12"1r%0^1a10i#0n}.30 Aly0U )8s}2eQ0e)05v0dq0!PY$-,3 7x&+0b59 6X7G'0UhBx&!$a F3JlJ]Uhz1h1Z@Sg݆   8gF_AR M ARnVJ!49BYOPBRWSMRUE:]|`X?\QRYl>Q5U/V@_YQĈU2(_:UrA cHD: H h0>Th]]9 M JU@]C}?@8?@%G֖g?@q;Ƙ?P6 n>JuM{` ?5 uJt  [J}$Et9S=d ENسא\Eh)Fx%[v>2N_Nk?<@MJA@cb]b)++&J"< u) ?AHb$z@J+%/F%B!!5 c`?CopyrigTt (c)302`0930M+0c)0oKs#0f12"1r%0^1a10i#0n.30 Aly0 )8s}2eQ0e)0v0dq0!(Y$-3 7x&+0b59 6X7G'K0UhBx&!$Ia F3JlJ]Uhz11Z@S3   8gF/_ M ARnVJ!49BYOPBRWSMRUE:]|`X?\QRYl>Q5U/V@_YQĈU2(_:UrA cHD: H h0>Th]]9 M JU@Y ?@fJ7%G֖g?@q;u?P6 >JuM` ^?M uJt  (N7Et9Sp%6ENس\Eh)Fx%'[v>2N贁Nk?<@MJAw@cbWb)++&J:3f< u) ?AHb$z@bb3bOfb)$%/F%B115 c`?CopyrigTt (c)>0]2`09>0M60]c40os.0f<2R-1r00i1a<0i.0n.>0 AUl0 48s2e\0e40v0d|0@1Y4-3 7 x&60b5(9 FX7*G_'0UsBx&J!$a *F>JlJ]Uhz%11劵Z@S݆ Y  8gF_i  LRyV J49MYZPMRbSXRUE:]|`XJ\Q]Yl>Q5U:V K_YQU23_EUvrA cHD: H h0>Th]]9 M JU@$䣹?@R?@%G֖g?@q;Ƙ?P6 n>JuM{` ?5 uJt  >b3Et9SWENسא\Eh)Fx%[v>2N_Nk?<@MJA@cb]b)++&J~"< u) Y?AHb$z@+%/F%*B!!5 c`?CopyrigTt _(c)302`W0930M+0c)0os#0f12"1r%0^1a10i#0n}.30 Aly0U )8s}2eQ0e)05v0dq0!PY$-,3 7x&+0b59 6X7G'0UhBx&!$a F3JlJ]Uhz1h1Z@Sg݆   8gF__  ARnVBJ49BYOPBRWSMRUE:]?|`X?\QRYl>Q5U/V@_YQU2(_:UrA cHD: H h0>Th]]9 M JU@֤M?@ yo?@%G֖g?@q;Ƙ?P6 n>JuM{` ?5 uJt  ߸ Et9S)hBDNس\Eh)FxO%[v>2N/Nk?<@MJA@cbb)+R+&J:3f< u) f?AHb$z@bb3bfb)$T%/F%B115 c`?CopyrigTt (c)>02`09>0M60c40os.0f<2-1r00i1a<0i.0n.>0 Al0 48s2e\0e40v0d|01Y4b-3 7Ax&60bP59 FX7*G'0UsBŔx&!$a $*F>JlJ]Uhz@%11Z@?S݆   8gF_  LRyVJ49MYZPMRbSXRUE:]|`XJ\Q]Yl>Q5U:V@K_YQU23_EUrA cHD: # h4>T]]9 M JU@xJuM` ?uJt ASt=WJRb~li>t2U?=@MA@+b + &J[N#a?a& ?A)BB!!5 g`?CopyrigT}tZ(c)ZW20 9ZM ]c os f"R!r 1ai n.Z AUl90 (s=2e0e vO0d10!$ę-# 'a&?6iiek59 Կ6X7'0Ŵa&!|$0 FJlJ UhqMAA ])A !4Ja-'Z@h4FӃ f <{Gz#A OR|VJ:6]].rM__Z)\("UEC@ ?@-bȃ S 1 `#`YR\Xk5^jZso!o ̌aX5U'BOP(?gks#dT[RUUSv?@n aX,flYwq%lSXn?Fh4  p= ףXAYfl6\`YHzmPXAV``ʼ_Z(QYAY҄agklQbE26_HU"rA _H<>gI+s nsMg@q3JFM\#7OB H#~dwso@+_><oKs}G#o'f# (#+\#N#ȇX$V߂$W$X$X$g$$hK$jZ$kH$y$ȓ$z$UFD  h(^TYYBBUF\.ߗ?x<F BP(?hP?XV 55r55 Jbggah5Zg\ȅH?8?f)B@L&d2U?$-5(G(%.sUm!k&/|(  0O~B`"EtPern t],4wo k0p"i0#al*0d v0c 91^| ( 5G&u  * AAS ~pni'TDrag onut he]pe,nUdu /p64lies9Lt]wrkcQm tOfTly lGo_"imdO.bL&d2~?K?=tp'I??C\.r3?r\.CUG D  # h L^T4YY  BUF\.?@L&d2?@~?PYU^f6.NGOGPGQGRGSGTG\G]G^G_G`GaGbGcGdGeGfGgGQJiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGyGzG{G|G}G~GGGGGGGGGGGGGGGGGGGGG736363u` o?%$7G-7B<7BF_G#BP7BZ7Bd7Bn7Bx7B7B7B7B7B7B7B7B7B7B7B7B7B7B"7B"7B"7B""7B,"7B6"7B@"7BJ"7BT"7B^"7Bh"7Br"7B|"7B"7B"7B"7B"7B"7B"7B"7B"7B"7B"7B"7B"7B"7B27B27B27B&27B027B:27BD27BN27BX27Bb27Bl27Bv27B27B27B27B27B27BH27B26g6U6666MBuIU$FrL|Lw&1~rW]@Es  ^7B( ( ~s!v̨ q?@h!;p`:1P IFPr,s~rD1''@A3{:18E9 'N( d?pxh` Acn CS lS r3!ۦpڈ٦p1bbbz0q@!PZY<^pbbNbb™qb"b7+d||u@+@Q Q?@G}x^?@IH‘BMB6}Vu]`-qZBuFgw#/s;}#B(0t@I9u`u`"TYYbzFqDuK`EWAαq1W`V sPwXYEcPm!#528gX1`U?ԑp r gPt1()12U0B91M cq Eo{ o5ԑr] ua iS nE J1A5 l1-sUe{ eq vdE*E WN~`~u01 l2T'sFt5ӤӨὭ w?gߏBq&W,s^KVVTK~u5TԑnI e5TJ Nt uk1DvLN'9K]utc担c8E&cNI[mc}c濵c0BcewcFլcc晱6HZB_z\\Fq ////_ qR/d/v/_///\`//?c+?=?O?cn???@_???_? OO\VCOUOgO_OOO_qOOO__'_9_\\_n__\픱____ꌑ__o_3oEoWo^;t~ooob!ooo\폰,^#M_q\$\%@\%7I_'i{\(ԏ\!) \*>Pb\+\ϟ_,>@c]o_/ů\0 \ 2DV_2v\3Ͽ\ +=5K]oB\6Ϥ϶\7\8 2D\!9gyߋ\:߄\;<x?#5m`3ACTE5[ɳaj1,.tu[񼱼[[_[[([ [CZ==2ffyѭ";;N"""@#2WWj2d`e U@s` M;aiuf,pueQ` Eq0ipeith 'UPouoN:mb>Pb btq' P,r9! / u'EsorK"t=h;/M/$\l/~/A s}-.1 '7`1^/?!' S6"i,l 0?B?`>Th?z?X[Q'Lc,(?`K???B*"liigOP<XLHOZO' RoO_eZOCA8wa' BEp&$/qf`Y4$_8]Sra e\l,)1@#` fi!bty_l_~_W"` WTPQ@^2` Eh6"*lt\a4 l.c`_O|N(,TQw`#|`p/xo6_IPsAd<Told?o/S:bEd +sc*lAxTf;'qmBi tCv9 I[7!3oW='/) fsPt@$:PftMpCnp㏊gTˑ'fmuQ SF l!M_(|/@"ha  c%>UcAXE_`>Z ** [j$w1tt>,3K̗?nؑ`tQgctRm#ZC̗,@_Cc%SuK`rϔ? h!b M^b!bC%_5Ÿ(56c_t&YF3sNSYF??Eq! $U dkV@~?>? ijTMwu `b|tϔ?b+cU@L&d2FX ~u~ߐk7լj(ߎp.AɯD c0I.NO Pl$u1S>GAGAKaaX]8eԁԁrݡݡiaiaa lc/a/aQQAAIIA0,j=al$BAe"!A#Mwx!g%9!@QRQ@ϒ^^!:q"v}#rq01RQz3{| +}*~t36 /*&03!@2M3Z4x|Ut6񡊁7񡕋8񡌛O:񡎵q=>?R0i[8s]&?-ܑ-!lVőncb[r ]#d%+`[ ob Q'eu"$I7 | "#####!#2";#ԁ#ݡ#ia#o#|###/a#Q#A#I###a##A##%#x##L#Q#f#s###q#Q##########)#6CCCPC]C|CwCCCCCCCC`CC "&eR"eR2eR 2eR2eR 2eR*2eR2eR>2eRH2eRR2eR\2eRf2eRp2eRz2eR2eR2eR2eR2eR2eR2eR2eR2eR2eR2eR2eR2eR2eRBeRBeRBeR$BeR.BeR8BeRBBeRLBeRVBeR`BeRjBeRtBeR~BeRBeRBeRBeRBeRBeRBeRBeRBeRBeRBeRBeRBeRReR ReRReRReR(ReR2ReR2(ݤ>2&̶Pl~3+CkߏH2ݤH2&̶ 1CU4}XRoݤR& ̶ F!R8JݤR*&̶R(ݤR&̶TRݤR&̶Xj4!X/|/R//ݤR ̶/0/B/!?j/E?b\?n?ݤb*̶// ?1?3?O b%O7Oݤ b̶???xAO?ObO_ݤb̶yOOOAQ|_O_g__{b ̶B_T_f_ aEo_ioh|ooDr ̶'qo o 4aWo2iEW ̶oooq j Sւc ̶eďk׏&! !̶fx.il٨h ""ڡ2D 42{Vmi{1## Dn2Dk{$$ӯ寉Ŀ o 4D% 9%Rֿp،* &9&Se wVߟzqߟߨU'9'.@hCrVh(9(1 s1Xh) 9)!t!*1*9*"w ?zuy+9+#@RdCgvz(B"&,9,$ - /U0/wC/U/|8 26- 9-%!///x ??EH2*UF.9.&// /c1?/?y??XBV/L/'d?v??,AgO?OzOOXfRV0L0(-O?OQOA0_yOT_{g_y_h/bf1 \1)O__Q_B_o|0oBoixb*yv2\2*__ _ao oo}o 2rB3\3+oooPqo~ 4\4,QcuTxĘSԖ5 \5-,>fATf 6\6Gv: 謫/ /Vf7\7k/ПӯȮ/8\8k0u=xw9 \9k1>PbAϊeτxϊϱ@*:\:k2 + S.߅ASߨz ;\;3Ϙ߆ CS<\<4߽߫a߂ = \=5bt*ed*>\>6+= O.wRew-?\?7@.@g(w&@\@8  /08"@6A \A9N!////82* FB\B:O/a/ s/1R?/v???HQBFC\C;?*?s__ _;avo_ooo(xurvGGK>oPo@q?ocv>HɌH@)qQ,?QxIIdTtsTssSrU} @ `EtherntnrAnkssAs%t sΑϐΑor#r` %P&o]ptis ߢ``N `TWORKÐS{AEÐPOR2I `Q2 ia1ṃ'0Uyu1!1 0tbų)zw tر)1 ۲eʡ0(&100@w뷤H1wLĭGX+L_W8LWGEDrDC  @   !"#$%&'()*+,-./0123456789:;<=>?>A*BCheATe(eJ\U@L&d2?@0~{??@?PYmUU%.u`o?&UH&T"""u,)ct)! q-tm!ʇ"L5 .&b$&"} U}!Uɤa/ '19 b {V?`%2H6"\>3c6?c82\.?A?9[B>30/D?P?y A@lBw0uC񁠙A>9D@SVCA'1X7i`"`?CopyrigPt(Uc 09uM PcPosPIfRQrP=QaPiPn AUlXP Xs\Re0PePvnPd"Z,AuL-$cA2T%c3C#lBF{L u,G"aOCTOU_2sOU!OOOOO_"_4_F_SO*^x_b._o_p__ ooARodovoooo_j_oC.@+k@asx@j`D.mѐBǏُx!0BTfx"ja.ӟ7 -?Qgx:A̯ޯjbu._qxl jeB.k!xґ.@Rdvjf ".5  ;+=Oe>s8jg/s2)N@7/N?[/0p/K///Ns!//@ ??0?B?O/jht?B^?O?P?B[? OO1nsNO`OrOOOO?"jiO?bn_o'_g`<_R{]_o__~sj_____o_6j@or[ ioopo ooo s,>Pbtok !3!);Mc!s6!ȏڏ@q'"5 LYn"ɾ"s1 .@Mhmrײ#ԯ!#/#sQL^pnؿ=$%e:P$[mϕ$shaψ 4o>ߣY%@g~߶%%sq*@Kf:rp">N!/=(<(//-N(?HJ/\/n////Js/;BN)/O#?c@8?N[)Y?k?}?^)XfѰ????? OD?2jt38b/.J~8/2SN4a/x?/0/K4///N4X?$?6?H?Z?l?y/Z?R^5@?O?+POk5!O3OEO[n5mh.xOO@OOOO?j_ib~6-_DoQ_`f_B|{6___~6x__oo&o8oE_"`jor7oopo7oo'79DVhzoƚ5랁8]2H8Sew8ʑΏ,6Q9_và9˟ݟ91"4FXjDwʄ·:ů ܿ):1CY:k,Qv пݯڅg;+BOϏdz!;ϗϩϿ;a$6C^h<ߨ<%<7qBTfx 3=@=Qcu=^@**4O.>]tB+>.>8ġ 2DVhu :!<">?/'0KF /1/C/YL?iH*t//////J3A\eB^@)?@OM?@b?x[@???^@X???O"O4OA?\jAmlRnAO_OPOkAOO _#~A5x@_R_d_v___DOz_1r~B_ oYp.oDBOoaosoB\ooo oo o(2 Ma^uC!CC 0BTfsD؟%D-?UDg(1rُ̟cE@'>K`vEEȎAد@ 2?ZڐdFϱƿBF !F3Q>PbtφϘϥ"/G W,BGM_qGZq߶ & 0KHYp} HHj .@RdqI#+I+=S.Ie$# TUHL5D" # =h @^T(aaJB [U@L&d2?@~?P e.N Q  m>uA` _?`N  Y c$ A.Y8>uQH>tEt#bH ">U.%>R.#N-7/de!#?A. \|#&/,?\.5?IA@/B[|# 'N(#AxT`?CopyrigXt(wc)20(@9M@c@o%s @fB Ar@GAua@i @n._ Alb@ HUsfBe:@e@vx@dZ@ V4 ?)o32TUA??)77se<-#v26ZbhafYv2r|cVqQN "QQQdl5C/oAe+(dVd>lrd "!s(8r4."%S(QVouodC~w.N}" (-DT!I@[0v2rzCsc "oP%3}`wȄՏyE|?v2>E *P&ai7HD H# h @>T(]]9 MT  )AU@L&d2?@W~?P6 $LA n  JuM` ?8* M^ K*0u:Jt7 StJb)>JU5 JD-//!X#V? .B\F#k&/k,?\.?;IA /[F#Y!3/ g"Ai @@2'bH42F/ -o31/!`'; J`U!`?CopyrigTt(c)2009M0c0os0f21r0Aa0i0n. Al,@ 8s0Be@e0vB@dH$@V o4 x?)eno32TUA?2IaH@2U6TO<@2U6X7ibE9 &Xo72'0BUik&!d$0 V1ZlJQUhhf5`'1@1Kdo30C^*Va&JQ&dfl64iAc7FlUnbi:(}m (-DT!;@-0@2rdUj"Uc60eE3&m9GtZTe%|&ov+=~u @2stktbqvu@<&]ew7UHLD  Jh0TlE>M U@L&d2?@W~?JP jJ %A Q"2  .>uA` ?E_  (< _Z&?uMt>p/b ">tq bo>t6  }配>U2TmUg!?#@9 U#!"/ Aw@"b)+&> !v?(t($#>_#2( m"6 G"\"b)H;'"bu3z=&b3~8/D_V_8E"lJaUl~X'4M1!S(t!?@9j# p}j# K$(°b`0w8-DT! lq0$#qj{jr}4k (Mt6 P pp@U<r(5%8:dfl6/wkrvQ uC EW`#0!y0!yD#|ud)<$ooooQdQAuddT8 %9oeS(<@EYeCw<ȏڄؙhjsu qyoNK$ i 8_\H>+s !SFO^? FHM}#!WqB9Yma |o@+Xo>oNaGȘ$FP< Pj=o=!uH<@%RUFD  h(^TYYBCUF\.?x<F BP(?P?\Xt3 D5S?>?5%6qW{qk66b6HCI6CJ6CN6!C&aS6/!C9&R6M!CW&L6k!Cu&16!C&a26!C&36!C&46!C&561C 6a661C)676=1CG6 6[1Ce6 6y1C6a 61C6 61C6 61C661C6!6ACFh9hC7F6KACUF6iACsFa6ACF6ACF6ACF6ACF!6AC Vd9dC'V6;QCEV6YQCcVa6wQCV6QCV6QCV6QCVa6QCV 6 aCf!6+aC5f"6IaCSfa#6gaCqf$60aCfȅU?of?Z0Bc@L&d2?"}3xEx#~sUkqiviҍrx  0bEB`Hub,netwopkpppri hal*pdpvcpp-Qa| xy3U5Gv\ NP?U*U---?-ppwpwwppw׆%p6ppw pwwww }σw ^?w wpwp pd_&wpwwfDrag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aabx<οL&d2??9GΑsп=t??\.r3r\.CUG D # h L^T4YYT UF\.?@x2" $9u`un `"0Yb!u`$"%؂#UQ!'1`Vis_PRXY'cPm!#5P46ޖPg da +_Pb1b1"(Ɣp2)Ӕ2*R+FR"((Rb(!SaDc"76u&`~PG1"1 0&2k@c4p5,CT@Db"5 UaAFUQS_$|lF3s͵NSYF'U;0Re>1,@UQP)epzp51S(("(AT?sR !U/!/keF/X/Ae`'e^//,U SbiPa??g TT]]9 M JU@x2zGz?@MJA@eb#z(b),+,&J[(.?& I?A$./O%B!!5 g`?CopyrigTtZ(c)Z2009ZM 0c 0os0f21r0>1a0i0n.Z AlY0 8s]2e10e 0vo0dQ0!$$-# '&%?6iie59 6X7'K0UpBŁ&!$K0 'F;JlJAh h7!1!Z@vnǣ f, <AA#  IRvVJ:'BP(?OS spBlU^TURUEUr\.G\ZY?PuPիQ,5U҄Q[pB.aYU520_BU"rA 5#cHD: # h4>T]]9 M JU@1&d2?@Vj?@҄BP(P6 ]AJuM` ?ju#t  k]It=W(\ZIRUIl">2zGzw?@MJAw@eb #zb](b%)2+)2&J[/.w?& ?A$T4/U%B!!5 g`?CopyrigTt (c)020%090M0c0os 0f21r 0D1a0i 0n.0 Al_0 8sc2e70e0vu0dW0!$-# e'& ?6iie59 6X7{'0UŇ&!$0R -FAJlJ8>UhAA 11!T2 $S<cV{ WR~VJd2L&?@ubX,X ]S fR#mS [ÐڱQE^Fh4__ K&oeX5:f'l6 XYePY?ۭsHMQ5aZjoohY}aUVeEVx_;"rA #dsHD: # h4>T]]9 M JU@҄BP(?@h4FtP6 >JuM` ?uJt  kU]It=W{GzتIRIl#>2mzw?3@MJAw@eb #zb( (2+T2&J[ (p"?0& ?A$ 4/U%BB!!5 g`?CopyrigTt (c])020%090uM0c0os 0If21r 0D1a0i 0n.0 WAl_0 8sc2Ue70e0vu0dW0!$-# '&?6iieP59 6X7{3'0]UŇ&!$0 -FAJlJ8>Uh@ 11!Z@o?.rɩ  ~<uhB] WRVJ@ ?@bȩ ]S 9Q#hY?))QE^jZ__ CaX5a9XY@ePXRmScRU5:]mx_PU"rA k#dsHD:@ # h4>T]]9 MTJU@aܹ?@&cM?@5?@$D"?P6 v >JuM` ?qu#t  @@|It=Wn5_6uIRFIlI#>2zGzK? HJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A/.7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6#)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ# $<Ef4B 9b`fJ x۰Z @]0?c Q#Oc Q\}ȱ~aE:Õ)0:iG`iw*h<5a#j8oJiqze~EA#o>"]rA #sHD:@ # h4>T]]9 MTJU@ (?@hZ?@>TC?@ݿJWc^?P6 v >JuM` ?)uJt  It=WX IR?8IlRv\#>2zGz? HJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A(.?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!ZA!Z!?v"rA # sHD:@ # h4>T]]9 MTJU@?!Qw?@k?@BZ?@ib+iF?P6 v >JuM` ?qu#t  1It=W_OIRUo}WIlTy6ވI#>2zGzK? HJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A/.7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6#)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ# $<Ef4B 9b`fJ:O@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij? mh~EA#o>"rA k#sHD:@ # h4>T]]9 MTJU@P4K?@l?@u'?@ݿJWc^?P6 v >JuM` ?)uJt  {d5Z\It=W2;wEIRkzIlRv\#>2zGz? HJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A(.?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+Z lJ]UhzЎ!A!Z!?&sA#<# $BK jfJ 'j `00>oPaYc l]]beE:Ͷc0TbCcba`iK8K8h<5eg۰Zk(qQlqe~Ee@||`ai !hA'o>v"rA # sHD:@ # h4>T]]9 MTJU@#zUv?@f s9?@ә!?@8laxy?P6 v >JuM` ?)uJt  V"(It=W7:LIRE! YBIl p#>2zGz? HJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A(.?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!A!19b $<# $B 9b`fJ: muۘ]0:mOc ?i'A~aEesDͅ?c ? V#NeFaze<5e@|lVaiU3Lh`~EA#o>"rA #sHD:@ # h4>T]]9 MTJU@"z>?@^i2VS?@ˋ>WB?@=E?P6 v>JuM` ?)uJt  7It=WܯHIRݮIl$dvĤ#>2zGz?(3 HJsAeb #z (#+#+#&*Jp!p!5 g`?CopyrigTt (c) 2U0 9 M c os f"!rԙ !a i n}. Al U (s"e e 5v0d i!Em$}! (K2?b6 ?ALb4($I3/ 4/U%b-|# |'Yb6?Fiie<59 FjX/G3_'0UBb6Z!}40 aFuJlJ8>UhAA Ў!1!Z}'[- E|zo}#<b$,] VJ:@8Qw0RS S IBf>QE !?@\BU--# i[F @ h<53n:CU9fKo]o ڵ h5a9YUU aUUwiǤ]Q işeq5 h2r_U"rA 5#sHD:@ # h8>T ]]9 MTJU@IKY?@#v\?@(w)٫?@Q`m ^?P6 >JuM`lW? SuJt  o|MtA[_"oRMVYBMpry2VI'>\??\.?lFA8 J2llf?3 HRJB& @i7b#zv t# b( (+&B(ݙ" ?APb)4(z$CD3//&*115 k`?CopyrigTtk(wc)k2009kM0c0o%s0f21r01ua0i0n.k_ Al @ 8UsBe0e0v @ d@1H4-,3 7%bO&&i Ab~59 &&XG3'K0U!R&!4K0 FJlJI  ( sQsQ] 1heA Zl0|z3 0 @?/n' QE bR;bJ:]~^PsojRփUaE !?@q`0 0,c s!R'i e:}ɟh~5aef9oa|b c gT]]9 MTJU@5^?@hP?@5?@$D"?P6 rAJuM` ? qu#t  .9BWyIt=Wn_q8IRFIlI#>2zGzK? HJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A/.7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6#>F O @ie<59 FXG'0U`Rb6!}40 V+ZlJQI0h|G!A !1C# $I<EfB C`fJ x۰Z @]0?c Q#Oc Q\G}ֱ~aE:Õ)0:iG`iw*h<5a#j8oJiqze~EA#o>"rA #sHD:@ # h4>T]]9 MTJU@H?@6͍~>TC?@JWc^?P6 >JuM` ?juJt  HIt=WByIR?8Il?Rv\#>2zGz?) HJsAeb #zbU(#+#+#&Jp!p!5 g`?CopyrigTt (c) W20 9 M ]c os f"R!r !a i n. AUl (s"e e v0d @i!Em$+A(.?b6 ?AgJaT6` F !!l"zbAR +6ig5V181 ?2?;:C?'$4/U%G|# |'b6L3FL ie<59 FXG'K0U`Rb6!}4K0 V+ZlJQI0h|G!A!Z!?"]rA #sHD:@ # h4>T]]9 MTJU@Sw?@K?@BZ?@ib+iF?P6 v>JuM` ?qu#t  fd>It=WN6sgHRUo}WIlTy6ވ#>2zGz? HJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A/.?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼#FO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!A!1lL# $<EfB 9b`fJ:'@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij mh~EA#o>"rA 5#sHD:@ # h4>T]]9 MTJU@t)H׾?@Ȑ?@u'?@ݿJWc^?P6 v>JuM` ?)uJt  ُuߓIt=Wί IRkzIlRv\#>2zGz? HJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigT}tt(c)tW20 9tM ]c os f"R!r !a i n.t AUl (s"e e v0d @i!Em$+A(.?b6 ?AgJaT6` F !!l"zbAR +6ig5V181 ?2?;:C?'$4/U%G|# |'b6L3FO ie<59 FXG'K0U`Rb6!}4K0 V+ZlJ]Uhz!A!Z!刭?&sA#<# $B jfJ 'j `00>oPaYc l]]aE:Ͷ10TbCcba`iK8K8h<5eg۰Zk(qQlqe~Ee@||`ai !hA'o>"rA #sHD:@ # h4>T]]9 MTJU@?^oO?@^?@ә!?@8laxy?P6 v>JuM` ?)uJt  L+It=WݑHIRE! YBIl p#>2zGz? HJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A(.?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!A!19b $<# $B 9b`fJ: muۘ]0:mOc ?i'A~aEesDͅ?c ? V#NeFaze<5e@|lVaiU3Lh`~EA#o>"rA #sHD:@ # h4>T]]9 MTJU@tr,?@Uw?@ˋ>WB?@=E?P6 v>JuM` ?)uJt  6j>It=WNFFIRݮIl$dvĤ#>2zGz?3 HAeb& #z *(#+#+#&UJp!p!5 g`?CopyrigTt (c) 20 9 M c. os f"!r !a i n. Al (s"e ej v0d  i!Em$}! (K2?b6 ?ALb4($3/ 4/U%ę-|# |'b6?Fiie<59 FX/G3'0UBŴb6!}40 TaFuJlJ8>UhAA !1!Z}'- E|zo}v#<b$,] VJ:@8Qw0RS S IBf>QE !?@\BU--# i[F @ h<53n:CU9fKo]o ڵ h5a9YUU aUUwiǤ]Q işeq5 h2r_U"rA 5#sHD:@ # h8>T ]]9 MTJU@^5=~?@,=Vݼ?@(w)٫?@Q`m ^?P6 > uM`lW? SuJt  ?aV_MtA[_=p'MVYBMpry2VI'>\??\.?lFA8 J2llf?3 HRJB& @i7b#zv t#]b( J(+&B(" ?APb)4(z$!D3//&115 k`?CopyrigTtk(c)k2009kM0c0os0f21r01a0i0n.k Al @ 8sBe0e0v @d@1$4-3 7bO&&i b~59 &&XG3'0U!R&!40 FJlJ $  (sQsQ] 1eA!Zl0|z 0 @?n' Q b7fJ:]~^PsojR֯UaE !?@q?`0 0c s!R'i ?e:}ɟh~5aef9oa|b c ؠgT]]9 MTJU@?έ?@=?@5?@$D"?P6 v>JuM` ?qu#t  &lIt=WA_I߃IRFIlI#>2zGzK? HJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A/.7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6#)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ# $<Ef4B 9b`fJ x۰Z @]0?c Q#Oc Q\}ȱ~aE:Õ)0:iG`iw*h<5a#j8oJiqze~EA#o>"]rA #sHD:@ # h4>T]]9 MTJU@Iq?@q֌?@>TC?@ݿJWc^?P6 rhAJuM` ?)uJt  0@hIt=WmiIR?8IlRv\#>2zGz? HJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A(.?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LhFO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!ZA!Z!?v"rA # sHD:@ # h4>T]]9 MTJU@ڮ?@7 ?@BZ?@ib+iF?P6 v>JuM` ?qu#t  JJ&qIt=Wr_hIRUo}WIlTy6ވI#>2zGzK? HJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A/.7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6#)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ# $<Ef4B 9b`fJ:O@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij? mh~EA#o>"rA k#sHD:@ # h4>T]]9 MTJU@=9_?@o(Ѿ?@u'?@ݿJWc^?P6 v>JuM` ?qut  V6>nIt=WgD_~baIRkzIlRv\I#>2zGzK? HJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A(.7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6B>F O @ie<59 FXG'0U`Rb6!}40 V+ZlJ]Uhz!hA!Z![?&sA#<# $B %jfJ 'j `00>oPaYc l]]|eE:Ͷ10TbCcba`iK8K8h<5eg۰Zk(qQlqe~Ee@||`ai !hA'o>"rA #sHD:@ # h4>T]]9 MTJU@BP(?@xQ8?@ә!?@8laxy?P6 v>JuM` ?)uJt  9KIt=WYGJIRE! YBIl p#>2zGz? HJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A(.?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXGB'0U`Rb6!}40 V+ZlJQI0h|G!A !19b$<# $BM 9b`fJ: muۘ]ᇄ0:mOc i'A~aEesD?c  V#NeFaze<5e@|lVaiU?3Lh~EA#o>"rA k#sHD:@ # h4>T]]9 MTJU@W?@M6N?@ˋ>WB?@=E?P6 rlAJuM` ?)uJt  1|It=WƯ:IRݮIl$dvĤ#>2zGz?(3 HJsAeb #z (#+#+#&*Jp!p!5 g`?CopyrigTt (c) 2U0 9 M c os f"!rԙ !a i n}. Al U (s"e e 5v0d i!Em$}! (K2?b6 ?ALb4($I3/ 4/U%b-|# |'Yb6?Fiie<59 FjX/G3_'0UBb6Z!}40 aFuJlJ8>UhAA Ў!1!Z}'[- E|zo}#;<b$k] VJ:@8Qw0RS S IBf>QE !?@\BU--| i[F @ h<53n:CU9fKo]o ڵ h5a9YUU aUUwi]Q ieq'5 h2r_Uv"rA # sHD:@ # h8>T ]]9 MTJU@&J?@_5+:?@(w)٫?@Q`m ^?P6 >JuM`lW? SuJt  y SksMtA[_eMVYBMpry2VI'>\??\.?lFA8 J2llf?3 HRJB& @i7b#zv t#]b( J(+&B(" ?APb)4(z$!D3//&115 k`?CopyrigTtk(c)k2009kM0c0os0f21r01a0i0n.k Al @ 8sBe0e0v @d@1$4-3 7bO&&i b~59 &&XG3'0U!R&!40 FJlJ $  (sQsQ] 1eA!Zl0|z 0 @?n' Q b7fJ:]~^PsojR֯UaE !?@q?`0 0c s!R'i ?e:}ɟh~5aef9oa|b c ؠgT]]9 MTJU@B?@-8?@5?@$D"?P6 v>JuM` ?qu#t  4E$p͡It=W_Lx4IRFIlI#>2zGzK? HJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A/.7?b6 ?AgJaT6` F !!l"zbAJ +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼#FO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!A!1lL# $<EfB 9b`fJ x۰Z @]0?c Q菌#Oc Q\}ֱ~aE:ÕO)0:iG`iw*h<5a#j8oJiqze~EA#o>"rA #sHD:@ # h4>T]]9 MTJU@*ӏ?@c?@>TC?@ݿJWc^?P6 v>JuM` ?)uJt  uIt=Wt]aIR?8IlRv\#>2zGz? HJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A(.?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!ZA!Z!?v"rA # sHD:@ # h4>T]]9 MTJU@"?@ "S/?@BZ?@ib+iF?P6 v >JuM`?qu#t  B?ͳIt=WF_p\cIRUo}WIlTy6ވI#>2zGzK? HJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A/.7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6#( DO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ# $<Ef4B 9b`fJ:O@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij? mh~EA#o>"rA k#sHD:@ # h4>T]]9 MTJU@d?@ 3\D?@u'異JWc^?P6 !>JuM` ?juJt  rs"It=WVIRkzIl?Rv\#>2zGz?) HJsAeb #zbU(#+#+#&Jp!p!5 g`?Copy_rigTtZ(c)Z2U0 9ZM c os f"!rԙ !a i n}.Z Al T[&s"e e 5v0d i!Em$+A(.a?b6 ?AgJaT6` F !!l"z}bA +6ig5V*181 ?2?;#:C?'4/U%G|# |'b6LLFO ie<59 FXG'0U`Rb610 V+ZlJ]Uhz!A!Z!?&osA#<# $B jfJ 'j `00>oPaYc l]]#aE:Ͷ0TbCcba`iK8K8h<5eg۰Zk(qQlqe~Ee@?||`ai !hA'o>"rA #sHD:@ # h4>T]]9 MTJU@69 Ğ?@l_n.?@ә!?@8laxy?P6 v">JuM` ?)uJt  sd It=W> IRE! YBIl p#>2zGz? HJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A(.?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!A!19b $<# $B 9b`fJ: muۘ]0:mOc ?i'A~aEesDͅ?c ? V#NeFaze<5e@|lVaiU3Lh`~EA#o>"rA #sHD:@ # h4>T]]9 MTJU@#&\?@ԋZ|?@ˋ>WB?@=E?P6 v#>JuM` ?)uJt  [It=Wq.IRݮIl$dvĤ#>2zGz?(3 HJsAeb #z (#+#+#&*Jp!p!5 g`?CopyrigTt (c) 2U0 9 M c os f"!rԙ !a i n}. Al U (s"e e 5v0d i!Em$}! (K2?b6 ?ALb4($I3/ 4/U%b-|# |'Yb6?Fiie<59 FjX/G3_'0UBb6Z!}40 aFuJlJ8>UhAA Ў!1!Z}'[- E|zo}#<b$,] VJ:@8Qw0RS S IBf>QE !?@\BU--# i[F @ h<53n:CU9fKo]o ڵ h5a9YUU aUUwiǤ]Q işeq5 h2r_U"rA 5#sHD:@ # h8>T ]]9 MTJU@\W>?@47 ?@(w)٫?@Q`m ^?P6 $>JuM`lW? SuJt  /êQPͰMtA[_Y#MVYBMpry2VI'>\??\.?lFA8 J2llf?3 HRJB& @i7b#zv t#]b( J(+&B(" ?APb)4(z$!D3//&115 k`?CopyrigTtk(c)k2009kM0c0os0f21r01a0i0n.k Al @ 8sBe0e0v @d@1$4-3 7bO&&i b~59 &&XG3'0U!R&!40 FJlJ $  (sQsQ] 1eA!Zl0|z 0 @?n' Q b7fJ:]~^PsojR֯UaE !?@q?`0 0c s!R'i ?e:}ɟh~5aef9oa|b c ؠgTh]]9 M JU@xJuM` ?Uu Jb[LgJt b{tM>2zGz?)77Os@MJA@b7sz}"b)+,& !5Jp"( ?& N"A"b)+ 'b##b#(J,J/B-  Q3M#9 \/??\.?!?f=Q1Q1Y7;m`?CopyrigTt (c)3@2`093@M+@c)@oKs#@f1B"Ar%@^Aa1@i#@n.3@ Aly@ )Hs}BeQ@e)@v@dq@O0i bz59 m6m?7/'0URś65a FTR#l:J Uh(] nQnQ]FQ AB1!:'BP(Ա?a sRYqJSv?@bX,, iYwla)q )\()4eEDnFh4\ono ?p= ףЈhz5Ufl6a \uiHшhnVgj tj(a(4eU҄Q kR!l8aQY@h4GF[|0aui{hFT]1rto(yQiC@ ?@-uUaȳl1rlb\߈hQ:WpZƟ ܈hU_oo)lHD:@ # h4>T]]9 MTJU@D//?@w 8?@5?@$D"?P6 v1>JuM` ?qu#t  z7It=W_iIRFIlI#>2zGzK? HJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A/.7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6#)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ# $<Ef4B 9b`fJ x۰Z @]0?c Q#Oc Q\}ȱ~aE:Õ)0:iG`iw*h<5a#j8oJiqze~EA#o>"]rA #sHD:@ # h4>T]]9 MTJU@qK?@>,Λ?@>TC?@ݿJWc^?P6 v2>JuM` ?)uJt  jDFIt=W-M3}IR?8IlRv\#>2zGz? HJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A(.?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 0??8:C?'4/U%GX|# |'b6LLBBO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!ZA!Z!?v"rA # sHD:@ # h4>T]]9 MTJU@QL ?@L+?@BZ?@ib+iF?P6 v3>JuM` ?qu#t  Ç\UIt=W_ @ٶIRUo}WIlTy6ވI#>2zGzK? HJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A/.7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6#)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ# $<Ef4B 9b`fJ:O@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij? mh~EA#o>"rA k#sHD:@ # h4>T]]9 MTJU@#li[?@e>?@u'?@ݿJWc^?P6 a?JuM` ?uJt  ICIt=WN3אsIRk_zIlRv\#>2zGz?R HJAeb #zb(#+#+T#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A(. ?b6 ?AgJamT6G` F !!l"zbA +6iTg5V181 ?2?;:C?'I4/U%G,|# |'b6&La`B O @ie<59 FXG'0U`Rb6!}40 V+ZlJ]Uhz!hA!Z![?&sA#<# $` %jfJ 'j `00>oPaYc l]]aE:Ͷc0TbCcba`iK8K8h<5eg۰Zk(qQlqe~Ee@||`ai !hA'o>v"rA # sHD:@ # h4>T]]9 MTJU@ 3?@8.G?@ә!?@8laxy?P6 v5>JuM` ?)uJt  ͧILIt=Wf IRE! YBIl p#>2zGz? HJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A(.?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!A!19b $<# $B 9b`fJ: muۘ]0:mOc ?i'A~aEesDͅ?c ? V#NeFaze<5e@|lVaiU3Lh`~EA#o>"rA #sHD:@ # h4>T]]9 MTJU@'HY?@pN?@ˋ>WB?@=E?P6 v6>JuM` ?)uJt  PrIt=WoDIRݮIl$dvĤ#>2zGz?(3 HJsAeb #z (#+#+#&*Jp!p!5 g`?CopyrigTt (c) 2U0 9 M c os f"!rԙ !a i n}. Al U (s"e e 5v0d i!Em$}! (K2?b6 ?ALb4($I3/ 4/U%b-|# |'Yb6?Fiie<59 FjX/G3_'0UBb6Z!}40 aFuJlJ8>UhAA Ў!1!Z}'[- E|zo}#<b$,] VJ:@8Qw0RS S IBf>QE !?@\BU--# i[F @ h<53n:CU9fKo]o ڵ h5a9YUU aUUwiǤ]Q işeq5 h2r_U"rA 5#sHD:@ # h8>T ]]9 MTJU@mڷ?@WZgL?@(w)٫?@Q`m ^?P6 7>JuM`lW? SuJt  NKMtA[X_*`lMVYBMpry2VI'>\??\.?lFA8 J2llf?3 HRJB& @i7b#zv t#]b( J(+&B(" ?APb)4(z$!D3//&115 k`?CopyrigTtk(c)k2009kM0c0os0f21r01a0i0n.k Al @ 8sBe0e0v @d@1$4-3 7bO&&i b~59 &&XG3'0U!R&!40 FJlJ $  (sQsQ] 1eA!Zl0|z 0 @?n' Q b7fJ:]~^PsojR֯UaE !?@q?`0 0c s!R'i ?e:}ɟh~5aef9oa|b c ؠgTh]]9 MTIAU@?@|be?@X͂?@SSfhr~?Pps-8R?>$9> n JuM{` ?e ;  Su*Jt'  $mCLmta{x_&3.Jv  q?D=:%z?v(A[|Jq>JU2N贁N[?@M#J&A@bI(bUW)U+U+U&*Jy#?!lJ ?%P?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>UhETh]]9 MTIAU@?@2R} ?@X͂?@SSfhr~?Pps-8R?>$:> n JuM{` ?e ;  Su*Jt'  H-mta{_mLL}3.Jv  q?D=:%z?v(A[|Jq>JU2N贁N[?@M#J&A@bI(bUW)U+U+U&Jy#?!lJ ?%P?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>UhETh]]9 MTIAU@B?@ K?@X͂?@SSfhr~?Pps-8R?>$;> n JuM{` ?e ;  Su*Jt'  m@mta{ɀ_13.Jv  q?D=:%z?v(A[|Jq>JU2N贁N[?@M#J&A@bI(bUW)U+U+U&*Jy#?!lJ ?%P?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>UhETh]]9 MTIAU@Zԩ?@j4ʼn?@X͂?@SSfhr~?Pps-8R?>$<> n JuM{` ?e ;  Su*Jt'  }$~mta{_M {3.Jv  q?D=:%z?v(A[|Jq>JU2N贁N[?@M#J&A@bI(bUW)U+U+U&*Jy#?!lJ ?%P?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>UhETh]]9 MTIAU@h!I?@u\?@X͂?@SSfhr~?Pps-8R?>$=> n JuM{` ?e ;  Su*Jt'  XƿHmta{"_}{3.Jv  q?D=:%z?v(A[|Jq>JU2N贁N[?@M#J&A@bI(bUW)U+U+U&Jy#?!lJ ?%P?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>UhETh]]9 MTIAU@?@d\0?@X͂?@SSfhr~?Pps-8R?>$>> n JuM{` ?e ;  Su*Jt'  H-mta{pu_3.Jv  q?D=:%z?v(A[|Jq>JU2N贁N[?@M#J&A@bI(bUW)U+U+U&Jy#?!lJ ?%P?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>UhETh]]9 MTIAU@sLGv?@m\?@X͂?@SSfhr~?Pps-8R?>$R>  JuM` ? ;  )u*Jt'  [Rwmta{ēd3.Jv  q?D=:%_z?v(A[|?Jq>JU2N?贁N[?)@M#J&A@wbI(bW)U+U+U&Jy#0?!J ?%P?tAO"d+bW+$u/%B#BA1A15 `?Cop rigTt (c)x0]2`09x0Mp0]cn0osh0fv2Rg1rj01av0ih0Wn.x0 l0U n8s2e0en05v0d0:1PY>4#-#,M3 M7#(p0b59 DFXGdG'/2WUA;F%!$a dF$&#l,&}>UhEuwγ u~w;'bAUSSr`?CopyrigPt (cu) 2\09 uMcoszIfyr|aizn. WAlЀ sԂUeevdȀ;LSPDB-M_ M_?[D =M`DrMM ID1+0UǒM"C $cPc X(.'ƔM$!I] Ue*^Y30DXl ! !dH!\!p!!!!!!!!1$1%&'*()11pD113Ac M?  F4 K &E& 4&4&U R&R&u` W?I$0BN`l~$I/( /2(>/2P(\/n$uz)tw!  IQEtABOJ-EG14%F4GaO ۃ ZUAA/B`?CopyrigPt (c)@2\0 M@c@os@fBAr@Aa@i@n.@ AlP HsRe@e@v&PdPA{BCSDCB-CC "G{$FCTVV RD#C05UbS@qF@ ^PU $fXhW.Dg'dōV%!T] DfXje H^maPaYqT  2qa8wEJtU{BUJtU{3Jt!U{UJtU{JtR!U{|JtU{&qFx&U{tSHvDU{.qFxbU{2qFxU{6uJtUwHD:B # h0>Th]]9 MTIAU@?@&*y>{?@X͂?@SSfhr~?Pps-8R?>$A n JuM{` ?e ;  Su*Jt'  $mCLmta{_n3.Jv  q?D=:%z?v(A[|Jq>JU2N贁N[?@M#J&A@bI(bUW)U+U+U&*Jy#?!lJ ?%P?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>UhET]]9 M JU@xJuM` ?uJt ASt=WJRb~li>t2U?=@MJA@b + &J[N#?0a& ?AT)B!!5 g`?CopyrigTtZ(c)Z20 9ZM c. os f"!r 1ai n.Z Al90 (s=2e0ej vO0d10@!$b-# 'Ya&?6iiek59 6jX7^'0a&Z!|$0 FJlJ UhqMAA ]A !4Ja-'Z@?h4FӃ  <{Gz#A OR|VJ:6]].rM__Z)\("UEC@ ?@-bȃ S 1 `#`YR\Xk5^jZso!o ̌aX5U'BOP(?gks#dT[RUUSv?@n aX,flYwq%lSXn?Fh4  p= ףXAYfl6\`YHzmPXAV``ʼ_Z(QYAY҄agklQbE26_HU"rA HD:B # h0>Th]]9 MTIAU@B?@Dd;]?@X͂?@SSfhr~?Pps-8R?>$F> n JuM{` ?e ;  Su*Jt'  m@mta{_dA3.Jv  q?D=:%z?v(A[|Jq>JU2N贁N[?@M#J&A@bI(bUW)U+U+U&*Jy#?!lJ ?%P?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>UhET]]9 MTJU@F6&?@}%4+ޱ?@5?@$D"?P6 rAJuM` ?qu#t  (LbIt=W_,MyIRFIlI#>2zGzK? HJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A/.7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6#(BO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ# $<Ef4 9b`fJ x۰Z @]0?c Q#Oc Q\}|zeE:ÕO)0:iG`iw*h<5a#j8oJiqze~EA#o>"rA #sHD:@ # h4>T]]9 MTJU@)?@Uj?@>TC?@ݿJWc^?P6 vI>JuM` ?)uJt  6|.It=WL\} IR?8IlRv\#>2zGz? HJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A(.?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!ZA!Z!?v"rA # sHD:@ # h4>T]]9 MTJU@#{5?@ř?@BZ?@ib+iF?P6 vJ>JuM` ?qu#t  DqIt=W_{*IRUo}WIlTy6ވI#>2zGzK? HJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A/.7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6#)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ# $<Ef4B 9b`fJ:O@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij? mh~EA#o>"rA k#sHD:B # h0>Th]]9 MTIAU@Zԩ?@6#TTĶ?@X͂?@SSfhr~?Pps-8R?>$K> n JuM{` ?e ;  Su*Jt'  }$~mta{=g2.Jv  q?D=:%_z?v(A[|Jq>JU2N贁N[R?@M#J&A@bI(b*W)U+U+U&Jy#c?!J ?%P?AO"d+bRW+$u/%B#A1A15 `?Cop rigTt (c)x02`09x0Mp0cn0osh0fv2g1rj01av0ih0n.x0 l0 n8s2e0ejn0v0d0:1Y>4#-X#M3 M7#(p0b59 DFXGdG_'2WUA;FJ!$a dFD$&#l,&}>UhET ]]9 MTJU@fl6?@eb,)?@(w)٫?@Q`m ^?P6 L>JuM`lW? SuJt  LUMtA[_ʓWMVYBMpry2VI'>\??\.?lFA8 J2llf?3 HRJB& @i7b#zv t#]b( J(+&B(" ?APb)4(z$!D3//&115 k`?CopyrigTtk(c)k2009kM0c0os0f21r01a0i0n.k Al @ 8sBe0e0v @d@1$4-3 7bO&&i b~59 &&XG3'0U!R&!40 FJlJ $  (sQsQ] 1eA!Zl0|z 0 @?n' Q b7fJ:]~^PsojR֯UaE !?@q?`0 0c s!R'i ?e:}ɟh~5aef9oa|b c ؠgT]]9 MTJU@S?@ަƢ?@u'?@ݿJWc^?P6 vN>JuM` ?)uJt  cIt=W(?IRkzIlRv\#>2zGz? HJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A(.?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+Z lJ]UhzЎ!A!Z!?&sA#<# $BK jfJ 'j `00>oPaYc l?]]aE:Ͷǝ0TbCcba`iK8K8h<5eg۰Zk(qQlqe~Ee@||`ai !hA'o>"rA #sHD:B # h0>Th]]9 MTIAU@h!I?@Ž?@X͂?@SSfhr~?Pps-8R?>$P> n JuM{` ?e ;  Su*Jt'  XƿHmta{0_Y3.Jv  q?D=:%z?v(A[|Jq>JU2N贁N[?@M#J&A@bI(bUW)U+U+U&Jy#?!,J ?%?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>UhET]]9 MTJU@ةA!z?@B]?@ˋ>WB?@=E?P6 vR>JuM` ?)uJt  wT vIt=W?mIRݮIl$dvĤ#>2zGz?(3 HJsAeb #z (#+#+#&*Jp!p!5 g`?CopyrigTtt(wc)t20 9tM c o%s f"!r !ua i n.t_ Al (Us"e e v0 d i!Em$}! (K2?0b6 ?ALcb4($3/ 4/U%-X|# |'b6?Fiie<59 FX/G3'0UBb6!}40 aFuJl*J8>UhAA !1!Z}'- E|zo}#.<b$]K VJ:@8Qw0RS S IBf>QE !?@\BU--# i[F @ h<53n:CU9fKo]o ڵ h5a9YUU aUUwi]Q ieq'5 h2r_Uv"rA # sHD:@ # h4>T]]9 MTJU@?@zų[?@ә!?@8laxy?P6 vS>JuM` ?)uJt  {It=W ůIRE! YBIl p#>2zGz? HJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A(.?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!A!19b $<# $B 9b`fJ: muۘ]0:mOc ?i'A~aEesDͅ?c ? V#NeFaze<5e@|lVaiU3Lh`~EA#o>"rA #sHD:B # h0>Th]]9 MTIAU@sLGv?@c?@X͂?@SSfhr~?Pps-8R?>$U> n JuM{` ?e ;  Su*Jt'  [Rw͖mta{ۡ_TL3.Jv  q?D=:%z?~v(A[|Jq>JU2N贁N[R?@M#J&A@bI(b*W)U+U+U&ՆJy#a?!J ?%P?AO"d+bRW+$u/%B#A1A15 `?Cop rigTt (c)x02`09x0Mp0cn0osh0fv2g1rj01av0ih0n.x0 l0 n8s2e0ejn0v0d0:1Y>4#-X#M3 M7#(p0b59 DFXGdG_'2WUA;FJ!$a dFD$&#l,&}>UhE9_%O+s u8+DOʅVFMi*I#C ->B CC.~dȿ@n/@{+yDpKsGy>fx>?>:O>]=\H?@LfBDxhBGjBLKlBNoBRC.VCYC]CBa Cd8 Crh$hC/l6CoHCVsC=w 8CzC~CCͅChChCِ'CzC"HC߭(Ck6XCHDߒ'>?zO//?#?5?G?Y?k?}???f@p i@k@xm@Eo@6aB~HdB+1O"&?4)?NI+?;NJ.?NI?^P@PG?1NI(??QB?.OB?J-O6?QFx??NE?_ R?u???IEdRd@*O9?$_"!|PT_ Rb@E(X`@ 7)o2$? DMaUFD  h(^TYYBXCUF~?x<F BP(?P?  B+66 J] 6qa{6a!6ah9ha6a6!a&`8%!a/&6C!aM&6a!ak&6!a&`d9da&6!a&6!a&6!a6a61a6631a=66Q1a[66o1ay6a 61a6!61a6"61a6#61a6a$6AaF%6#Aa-F&6AAaKF'6_AaiF`]9]aF)6AaF*6AaF+6AaFa,6AaF-6QaV.61Qa;V/6OQaYVa06mQawV16QaV26QaV36QaVa46QaV56aa f66!aa+f86?aaIfa96]aagf:6{aaf;6aaf<6aafa=6aaf>6aaf9av@6/qa9vaA6MqaWvB6kqauvC6qav9av!E6qav9avG6a H6a)aI6=aGJ6[aeK6yaL6aaM6aN6Ӂa݆O6a9aQ06-a7R6K aUS6iasT6aU06aV6Ñ a͖W6aX6a Y06a'Z6; aE[6Yac\6wa]06a^6 a_6ѡaۦ`6aa06 ac6+ a5d6IaSe6gaqf06ag6aQ9Qa˶i6߱aj06ak6 a%l69aCm6Waan06uao6 ap6aq6ar06as6 at6)a3u6GaQv06eaow6 ax6ay6az06a{6 a|6a#}67aA~06Ua_6s a}6a6a06a6 a6 a6'a106EaO6c am6a6a06a6 a6a6a!065a?6S a]6qa{ra0rar arara0r%a/rC MraQkrQ0rQr QrQrQ&0r!Q&r3! Q=&rQ!Q[&ro!Qy&0r!Q&r! Q&r!Q&r!Q&0r1Q6r#1 Q-6rA1QK6r_1Qi60r}1Q6r1 Q6r1Q6r1Q60r1Q6rA QFr1AQ;FrOAQYF0rmAQwFrA QFrAQFrAQFrAQFJȖ SUqJ?_,V S=V Q'  T UrQS S@L&ɯd2?]ɓX?\.ҥX^ sUQV T_\ UJ%Q xS T -b@Y T`&P t>h,aeL,dbtok^`eupjet^`h r\wbgQgQ*QJ_i( RU SJWS> 0V]!? ?wwww{np0wzZp~uwpwwppw^w|{pdp^ZDrag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aab~߿~??)j࿔S5E?0FJ?nɶؿ3@ ?DHD: # h4>T]]9 MTJUF~?F͓??FtQ+/?P6 AmJuM` ?uJt At=Wrb#JRbJli:O#>[a? ?AbAw@"b $J2zGz?)@MJ7& #fbu#z$ ( (&,"*BB!!5 g`?CopyrigT}tZ(c)ZW2009ZM 0]c 0os0f2R1r0>1a0i0n.Z AUlY0 8s]2e10e 0vo0dQ0!$ę-# '?6iie59 6X7}'0UpBi!0 'F;JlJAh7!1!ZFTE <EgQ# IRSvVJ:M&d2?6VOSe\^TUR UEU@SG\BZ_ɫQ5[@_,cYU520_BU"rA #cHD: # h4>T]]9 MTJUFM&d2?FDx??Fl5?P6 AmJuM` ?uJt\  ]It=WIW$IRIl ڜI#>[ ? ?Ab A@"b$J2zGz?R=@MJ`=&#f {#z .(b)&,"*BB!!5 g`?CopyrigTt (c])020%090uM0c0os 0If21r 0D1a0i 0n.0 WAl_0 8sc2Ue70e0vu0dW0!$-# '?6iieP59 6X7F"'0UvB!0 -FAJlJ $L!(AA ]A1h1!ZFhmg  <!q}"##M _RVJL!%t?FTE\QeS , φ+#pYYSUKQUE^,n__ "+^HX5:?LV&k?SN#tTkRU5Ulf܄BP(%lgpY?BeO#X(dec]\m\cX ~.K$oZhLYUiXQaIZ^_i3qU32F_XU"rA 5#HD: # h#4>T#3 AMJUFbX?FϏ ?FM&d2?F _gw?P6 #AJuM` ?uJt  k]It=~W.*IRIl̆Rkפ#>[a? ?AbAw@"b$J2zGz?)@MJ=&#fb{#z\ (b)&T,"*B!!5 g`?CopyrigTt (c)020%090M0c0os 0f21r 0D1a0i 0n.0 Al_0 8sc2e70e0vu0dW0!$$-# '%?6iie59 6X7'K0UvB!K0 -FAJlJAh711T?ҿP mVN  Q  . *>uA` ?Gm$m8JuQ\>XbK>tY  wetVy 5Ie>U2zGz?@9 /#>?&Aw@bq(Wb)+&b" !p$4>9#"?& "w"b)";|'b"i,b"/N9#0%B 9#11;8"`?CopyrigXt (wc)020090M0c0o%s0f21r0Aua0i0n.0_ Al/@ 8Us3Be@e0vE@d'@'"i fE 6(X7H!'_2q@&,d50 tFJul>4Ul8QQCaR 1(Q1w!-(N!R?FJ?@ `0R QyUeR /ge%$(U⤖侇_X?,_XN Uωr?F r?FOtO?P"ZO %o1~Y.$!$iA4Y!eX]?C!ebRҡe:S |we"d  1X461Boo wr$5%>aEJe_~?F.ԵN?FaV-u"ؾ?PWRrR~|`%s mK)m >'ʲl} fdjg tsC uL+t-VwfxQUv`q7&ҹ _XRQb%d2[i֥TWVQFd50_#jS aUTf imp#jpm0"XY֘t?FTEY`Qj;!lЙXbQ?,n$ xXfQYJhbPnZ\>]!h"bXjQV6W_QUnU_o_)oTQaRp v__N-aZ?Fah<b}煔M_Ophz y7vPQP]BP({ύ 贁NPE 0BXЕHD: # h4>T]]9 MTJUF~?FS BP??Fx<?P6 #AmJuM` ?uJt At=W5_v@"J]RbJl>t2U.?=@MJA@+b)+&J[P'?g& ?A)*B!!5 g`?CopyrigTtZ(wc)Z2009ZM c o%s f"!r $1uai n.Z_ Al?0 (UsC2e0e vU0 d70!H$-,# 'g&K?6i@ieq59 6X7'K0g&!$K0 F!JlJ\#Uh( #3 ]At!"3'ZF>h f <YDc#BA NR{VJ:5]dGL_^Zh?.2\QE]t?FgPg܉ S )?w#_YXq5^(l]o o e]ǂX5U%?D"?;Vfk(\#cTZRUUM\_Y7ۨ Xno ^Z~#b%{XAYM&d2fkBqlUE25_tGUSrA   UGD  3 h0TdYYBjUFțau?F73X?FGV^bd?FZ^Zp?P} X  f  f0 D fX l f  f  bd  f  & f & 4& fH& \& fp& &! f&" &# f&$ &% f&& &' f6( $6) f86* L6+ f`6, t6- f6. 6/ b6]_61 f62 63 fF4 F5 (F6 T#3 AMJUF^]P'?Fݱ?F#6?F{_ "w?P6  >JuM` ?uJt  (LbIt=W,MyIR_FIl#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ %ޜ\0?c Q#Oc Q\}|zeE:pOϫ0:iG`iw*h<5a#j8oJiqze~EA#o>"rA #sHD:  # h4>T]]9 MTJUFH[b?F:%lj?FݡD?F,6^?P6 v >JuM` ?)uJt  6|.It=WL\} IR?8IlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!ZV\槈?F9"rA #sHD:  # h#4>T#3 AMJUFiW>E?FTb?F %?FP_EyFw?P6 >JuM` ?uJt  DqIt=W{*IRUo_}WIlTy6ވ#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ:%O\0:iG`Oc qy"zeEajoJiaze<5e'fÏ 0mFaij? mh~EA#o>"rA k#sHD:  # h4>T]]9 MTJUFF ?FƢ?F%9.?F,6^?P6 v>JuM` ?)uJt  cIt=W(?IRkzIlRv\#>2zGz?@M2JAe7b #zb(J#+#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c oKs f"!r !a i n. Al (s"e e v0d i!EHm$+A?b6 ?AgJaTv6` F !!l"z۾bZA +J6ig5V181 ?2?;ߑ:C?'4/U%ęG|# b|'b6LFO ie<59 FXG}'0U`Rib6!}40I V+ZlJ]Uhz!AZֺV\?F9&sA#<# $ B bnbJ'jWĞ 00>oPaYc l]]ȱaE:P^0TbCcba`iK8K8h<5e %k?(qQlqe~EeF$||`ai? !hA'oFrA k#sHD:  # h4>T]]9 MTJUFw??FxOe?FV\?F. xy?P6 rAJuM` ? )uJt  {It=W ůIRE! YBIl p#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6L>FO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!A!19b $<# $BJ C`fJ: m$D]ᇄ0:mOc i'A~aEeTE?c  V#NeFaze<5eF$|lVaiU?3Lh~EA#o>"rA k#sHD:  # h4>T]]9 MTJUF% !(@{?FmN,']?F~ tC?F7܄E?P6 v>JuM` ?)uJt  wT vIt=W?mIRݮIl$dvĤ#>2zGz?@MJAebM #zT (#+#+#&Jp!p!5 g`?Copy_rigTtt(c)t2U0 9tM c os f"!rԙ !a i n}.t Al U (s"e e 5v0d i!Em$}! K2?b6 ?ALb4($I3/ 4/U%b-|# |'b6<Fiie<59 FjX/G'0UBib6!}40 aFuJlJ8>UhAA@ !1!Zo(. E|zo}#<bX$-B] VʼJ:F,?0ȒS S I?Bf>QEҺV\?Ft@K\BU--# i[ÏF @ h<53n?I9fKo]o ڵ h5a9YUU aUU 3yk]Q i?eq5 h2r_U"rA k#sHD:  # h8>T ]]9 MTJUFG"7?F~8)?F AE?Fzl]?P6 >JuM`lW? SuJt  LUMtA[_ʓWMVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @nib#zv t#b( (+&B" ?APb)4(z$CD3//&*115 k`?CopyrigTtk(wc)k2009kM0c0o%s0f21r01ua0i0n.k_ Al @ 8UsBe0e0v @ d@1H4-,3 7%bO&&i Ab~59 &&XGK"'0U!R&!40 FJlJ Q! (sQsQ]31heA!Zsꈐ43 0 @?/n' #M b7fJ:]n#vca71xp]] 8usUQPUQS^%S+ %R&bpGba8DaP`Q]`NE_TWOPKJ0WSH+`Ps RUORuIsSk1J0@^e_ erP}28\usvvP62<%-g ۏ'9_us1125q5q2A+Bhh@R)pR*) 2hqhq|b(8 1xpa[3!1Qq6`:zGQ`1f1[j2B@@7RF5VCT @nb2FE5us_4Σ&F3s͵NSYFB@UͬpU ͬQUHͬ|eA§,@Q_Ɔp׏(ɟ 8A B<F5$lAVB\KkF`RC`asPe uexPP2!"! %(P%PORJ1 '2qa` P֒ȑ8(S˱AȕE{8H5AALA˱LܥAL(ARGMAWЛtA5ЛA͞/%AELHD:  # h#4>T#3 AMJUF͹30?FY˟8?F#6?F{_ "w?P6 >JuM` ?uJt  z7It=WiIR_FIl#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ %ޜ\0?c Q#Oc Q\}ȱ~aE:pϫ0:iG`iw*h<5a#j8oJiqze~EA#o>"]rA #sHD:  # h4>T]]9 MTJUF,2?F/LΛ?FݡD?F,6^?P6 v>JuM` ?)uJt  jDFIt=W-M3}IR?8IlRv\#>2zGz?@MlAneb #zb(J#+#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c oKs f"!r !a i n. Al (s"e e v0d i!EHm$+A?b6 ?AgJaTv6` F !!l"z۾bZA +J6ig5V181 ?2?;ߑ:C?'4/U%ęG|# b|'b6LBO ie<59 FXG}'0U`Rib6!}40 V+ZlJQI0h|GЎ!A!ZV\O?F9"rA 5#sHD:  # h#4>T#3 AMJUF *.?F)s*?F %?FP_EyFw?P6 >uM` ?uJt  Ç\UIt=W @ٶIRUo_}WIlTy6ވ#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ:%O\0:iG`Oc qy"zeEajoJiaze<5e'fÏ 0mFaij? mh~EA#o>"rA k#sHD:  # h4>T]]9 MTJUFJ.?Fh ?F%9.?F,6^?P6 v>JuM` ?)uJt  ICIt=WN3sIRkzIlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 $V+ZlJ]Uhz@!A!ZֺV?\?F9&sA #<# $B jfJ'jWĞ 00>oPaYc l]]aE:P^0TbCcba`iK8K8h<5e %k(qQlqe~EeF$ǧ||`ai !hA'o>"rA 5#sHD:  # h4>T]]9 MTJUFPY?F3pG?FV\?F. xy?P6 rhAJuM` ?)uJt  ͧILIt=Wf IRE! YBIl p#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LhSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!`197b$<# h$B 9b`fJ: m$D]0:mOc i'A~aEeT7E?c  V#NeFaze<5eF$|lVaiU3Lh~EA#o>"]rA #sHD:  # h4>T]]9 MTJUF]cZ?FVIܳ?F~ tC?F7܄E?P6 v>JuM` ?)uJt  PrIt=WoDIRݮIl$dvĤ#>2zGz?@MJAebM #zT (#+#+#&Jp!p!5 g`?CopyrigTt (c) W20 9 M ]c os f"R!r !a i n. AUl (s"e e v0d @i!Em$}! K2?b6 3?ALb4(&$3/ 4/U%-|# e|'b6 ?Fiie<59 FX/G'0UBb6!}40 aFuJlJ 8>UhAA !1!Z(. E|zo}#<b$] RVJ:F,a0RS S IBf>QEҺV\?Ft@K\B?U--# i[F @ h<53nI9fKo]o ڵ h5a9YUU aUU~ 3yk]Q ieq5 h2r_U"]rA #sHD:  # h8>T ]]9 MTJUFyh ?F*nK?F AE?Fzl]?P6 >JuM`lW? u t  NKMtA[X*`lMVYBMpry2V'>\¹??\.?lA8 J2l_lf?=@JMJB& @ib#ztv t#b() (+&ՆB3" 3?APb)4(z$D3//&T115 k`?CopyrigTtk(c)k2009kM0c0oKs0f21r01a0i0n.k Al @ 8sBe0e0v @d@14-X3 7JbO&&i b~59 &&XGK"/'0U!R&-!40 FJ%lJ Q! (sQsQ]3Ы1eA!Zsꈐg4 0֚ @?n'#2#M b7fJ:]T#3 AMJUF~S5e?Fk]?F#6?F{_ "w?P6 >JuM` ?uJt  @@|It=Wn56uIR_FIl#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FXGB/'0U`Rb6-!}40 V+ZlJQI0h|G!A!1l&fL# $<EfB 9b`fJ %ޜ\0?c Q菌#Oc Q\}ֱ~aE:pOϫ0:iG`iw*h<5a#j8oJiqze~EA#o>"rA #sHD:  # h4>T]]9 MTJUF3w?Fr(IY?FݡD?F,6^?P6 rlAJuM` ?)uJt  It=WX IR?8IlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LlQkBO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!ZV\槈?F9"rA #sHD:  # h#4>T#3 AMJUFZ)x?F~m?F %?FP_EyFw?P6 >JuM` ?uJt  1It=WOIRUo_}WIlTy6ވ#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ:%O\0:iG`Oc qy"zeEajoJiaze<5e'fÏ 0mFaij? mh~EA#o>"rA k#sHD:  # h4>T]]9 MTJUF:N[%?F ɇ?F%9.?F,6^?P6 v>JuM` ?)uJt  {d5Z\It=W2;wEIRkzIlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V+ZlJ]Uhz!A!ZֺV\?F9&sA#<# $BK jfJ'jWĞ 00>oPaYc l]]beE:P^c0TbCcba`iK8K8h<5e %k(qQlqe~EeF$||`ai !hA'o>v"rA # sHD:  # h4>T]]9 MTJUFydY?F?FV\?F. xy?P6 v>JuM` ?)uJt  V"(It=W7:LIRE! YBIl p#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!`197b$<# h$B 9b`fJ: m$D]0:mOc i'A~aEeT7E?c  V#NeFaze<5eF$|lVaiU3Lh~EA#o>"]rA #sHD:  # h4>T]]9 MTJUFEtJuM`?)uJt  7It=WܯHIRݮIl$dvĤ#>2zGz?@MJAebM #zT (#+#+#&Jp!p!5 g`?CopyrigTt (c) W20 9 M ]c os f"R!r !a i n. AUl (s"e e v0d @i!Em$}! K2?b6 3?ALb4(&$3/ 4/U%-|# e|'b6 ?Fiie<59 FX/G'0UBb6!}40 aFuJlJ 8>UhAA !1!Z(. E|zo}#<bc$ R] )VJ:F,00RS S IBf>QEҺV\?Ft@K\BU--# i?[F @ h<53nI9fKo]o ڵ h5a9YUU aUU? 3yk]Q ieq5 h2r_U"rA #sHD:  # h8>T ]]9 MTJUF̉?F7|?F AE?Fzl]?P6 !>JuM`lW? SuJt  o|MtA[_"oRMVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @nib#zv t#b( (+&B" ?APb)4(z$CD3//&*115 k`?CopyrigTtk(wc)k2009kM0c0o%s0f21r01ua0i0n.k_ Al @ 8UsBe0e0v @ d@1H4-,3 7%bO&&i Ab~59 &&XGK"'0U!R& 10 FJlJ Q! (sQsQ]31heA!Zsꈐ43 0 @?ҏn'8R# b7fJ:]T#3 AMJUFJuM` ?uJt  .9BWyIt=Wnq׏8IR_FIl#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ %ޜ\0?c Q#Oc Q\}ȱ~aE:pϫ0:iG`iw*h<5a#j8oJiqze~EA#o>"]rA #sHD:  # h4>T]]9 MTJUF%?FG>'~ݡD?F,6^?P6 #>JuM` ?juJt  HIt=WByIR?8Il?Rv\#>2zGz?@MJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!ZA!ZV\?F9"rA #sHD:  # h#4>T#3 AMJUFQK݆x?F-1?F %?FP_EyFw?P6 $>JuM` ?uJt  fd>It=WN6sgHRUo}WIlT?y6ވ#>2zGz?@MJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!A!1l&fL# $<EfB 9b`fJ:%ޜ'\0:iG`Oc qy"zeEajoJiaze<5e'fÞ 0mFaij mh~EA#o>"rA 5#sHD:  # h4>T]]9 MTJUF|k~ؾ?F;?F%9.?F,6^?P6 v%>JuM` ?)uJt  ُuߓIt=Wί IRkzIlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTtt(c])t20 9tuM c os If"!r !a i n.t WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+Z lJ]UhzЎ!A!ZֺV\O?F9&sA#<# $B %jfJ'jWĞ 00>oPaYc l]]aE:P^c0TbCcba`iK8K8h<5e %k(qQlqe~EeF$||`ai !hA'o>v"rA # sHD:  # h4>T]]9 MTJUFFJuM` ?)uJt  L+It=WݑHIRE! YBIl p#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!`197b$<# h$B 9b`fJ: m$D]0:mOc i'A~aEeT7E?c  V#NeFaze<5eF$|lVaiU3Lh~EA#o>"]rA #sHD:  # h4>T]]9 MTJUFQt?FRLxw?F~ tC?F7܄E?P6 v'>JuM` ?)uJt  6j>It=WNFFIRݮIl$dvĤ#>2zGz?@MJAebM #zT (#+#+#&Jp!p!5 g`?CopyrigTt (c) W20 9 M ]c os f"R!r !a i n. AUl (s"e e v0d @i!Em$}! K2?b6 3?ALb4(&$3/ 4/U%-|# e|'b6 ?Fiie<59 FX/G'0UBb6!}40 aFuJlJ 8>UhAA !1!Z(. E|zo}#<b$] RVJ:F,a0RS S IBf>QEҺV\?Ft@K\B?U--# i[F @ h<53nI9fKo]o ڵ h5a9YUU aUU~ 3yk]Q ieq5 h2r_U"]rA #sHD:  # h8>T ]]9 MTJUFXf?Fݼ?F AE?Fzl]?P6 (>JuM`lW? SuJt  ?aV_MtA[_=p'MVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @nib#zv t#b( (+&B" ?APb)4(z$CD3//&*115 k`?CopyrigTtk(wc)k2009kM0c0o%s0f21r01ua0i0n.k_ Al @ 8UsBe0e0v @ d@1H4-,3 7%bO&&i Ab~59 &&XGK"'0U!R&!40 FJlJ Q! sQsQ]31heA!Zsꈐ43 0 @?ҏn'R# b7fJ:]T#3 AMJUF;Э?Fn?F#6?F{_ "w?P6 )>JuM` ?uJt  &lIt=WAI׃IR_FIl#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L( DO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ %ޜ\0?c Q#Oc Q\}ȱ~aE:pϫ0:iG`iw*h<5a#j8oJiqze~EA#o>"]rA #sHD:  # h4>T]]9 MTJUFAYr?F L?FݡD?F,6^?P6 v*>JuM` ?)uJt  0@hIt=WmiIR?8IlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!ZV\槈?F9"rA #sHD:  # h#4>T#3 AMJUFZ?F!ќ?F %?FP_EyFw?P6 +>JuM` ?uJt  JJ&qIt=WrhIRUo_}WIlTy6ވ#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ:%O\0:iG`Oc qy"zeEajoJiaze<5e'fÏ 0mFaij? mh~EA#o>"rA k#sHD:  # h4>T]]9 MTJUF9 `?F2{ о?F%9.?F,6^?P6 v,>JuM` ?)uJt  V6>nIt=WgD~baIRkzIlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 $V+ZlJ]Uhz@!A!ZֺV?\?F9&sA #<# $B jfJ'jWĞ 00>oPaYc ?l]]|eE:P^0TbCcba`iK8K8h<5e %k(qQlqe~EeF$||`ai !hA'o>"rA #sHD:  # h4>T]]9 MTJUFq[')?F9i7?FV\?F. xy?P6 v->JuM` ?)uJt  9KIt=WYGJIRE! YBIl p#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!`197b$<# h$B 9b`fJ: m$D]0:mOc i'A~aEeT7E?c  V#NeFaze<5eF$|lVaiU3Lh~EA#o>"]rA #sHD:  # h4>T]]9 MTJUFӅN?FZDM?F~ tC?F7܄E?P6 v.>JuM` ?)uJt  1|It=WƯ:IRݮIl$dvĤ#>2zGz?@MJAebM #zT (#+#+#&Jp!p!5 g`?CopyrigTt (c) W20 9 M ]c os f"R!r !a i n. AUl (s"e e v0d @i!Em$}! K2?b6 3?ALb4(&$3/ 4/U%-|# e|'b6 ?Fiie<59 FX/G'0UBb6!}40 aFuJlJ 8>UhAA !1!Z(. E|zo}#<bc$2] )VJ:F,00RS S IBf>QEҺV\?Ft@K\BU--| i[F @ h<53nI9fKo]o  h5a9YUU aUU 3yk]Q ieq5 hb2r_U"rA #sHD:  # h8>T ]]9 MTJUFv?Fz?F AE?Fzl]?P6 />JuM`lW? SuJt  y SksMtA[_eMVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @nib#zv t#b( (+&B" ?APb)4(z$CD3//&*115 k`?CopyrigTtk(wc)k2009kM0c0o%s0f21r01ua0i0n.k_ Al @ 8UsBe0e0v @ d@1H4-,3 7%bO&&i Ab~59 &&XGK"'0U!R&!40 FJlJ Q! (sQsQ]31heA!Zsꈐ43 0 @?/n' #M b7fJ:]T#3 AMJUF`;?F:7?F#6?F{_ "w?P6 0>JuM` ?uJt  4E$pIt=WLx4IR_FIl#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L( DO ie<59 FuXG_'0U`Rb6J!}4 V"+ZlJUhh|G!A!1l&fL# $<EfB 9b`fJ %ޜ\0?c Q菌#Oc Q\}ֱ~aE:pOϫ0:iG`iw*h<5a#j8oJiqze~EA#o>"rA #sHD:  # h4>T]]9 MTJUF [kԏ?F4 c?FݡD?F,6^?P6 v1>JuM` ?)uJt  uIt=Wt]aIR?8IlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!ZV\槈?F9"rA #sHD:  # h#4>T#3 AMJUFYļ#?FŬ /?F %?FP_EyFw?P6 2>JuM` ?uJt  B?˳It=WFp\cIRUo_}WIlTy6ވ#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181a ??8:C$?'4/U%G|# |'b6L(BBO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ:%O\0:iG`Oc qy"zeEajoJiaze<5e'fÏ 0mFaij? mh~E#o>"rA k#sHD:  # h4>T]]9 MTJUF-!4?FL$$?F%9.,6^?P6 3>JuM` ?juJt  rs"It=WVIRkzIl?Rv\#>2zGz?@MJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigT}tZ(c)ZW20 9ZM ]c os f"R!r !a i n.Z AQl [&s"e e v0d @i!Em$+A?b6 ?AgJaT6` F !!l"zbAR +6ig5V181 ?2?;:C?'$4/U%G|# |'b6L3FO ie<59 FXG'K0U`Rb6!}4K0 V+ZlJ]Uhz!A!ZֺV\?F9&߮sA#`<# $B jfJ'jW?Ğ 00>oPaYc l]G]aE:P^0TbCcba`i?K8K8h<5e %k(qׁQlqe~EeF$||`ai !hA'o>"]rA #sHD:  # h4>T]]9 MTJUFX?Ş?F).?FV\?F. xy?P6 a?JuM` ?uJt  sd It=W> IRE!_ YBIl p#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6La(`BO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!19b$<# $4` 9b`fJ: m$D]0:mOc i'A~aEeTE?c  V#NeFaze<5eF?$|lVaiU3Lh~EA#o>"rA #sHD:  # h4>T]]9 MTJUFQC]?FD?b.?F~ tC?F7܄E?P6 v5>JuM` ?)uJt  [It=Wq.IRݮIl$dvĤ#>2zGz?@MJAebM #zT (#+#+#&Jp!p!5 g`?CopyrigTt (c) W20 9 M ]c os f"R!r !a i n. AUl (s"e e v0d @i!Em$}! K2?b6 3?ALb4(&$3/ 4/U%-|# e|'b6 ?Fiie<59 FX/G'0UBb6!}40 aFuJlJ 8>UhAA !1!Z(. E|zo}#<b$] RVJ:F,a0RS S IBf>QEҺV\?Ft@K\B?U--# i[F @ h<53nI9fKo]o ڵ h5a9YUU aUU~ 3yk]Q ieq5 h2r_U"]rA #sHD:  # h8>T ]]9 MTJUF:??Fq12?F AE?Fzl]?P6 6>JuM`lW? SuJt  /êQPͰMtA[_Y#MVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @nib#zv t#b( (+&B" ?APb)4(z$CD3//&*115 k`?CopyrigTtk(wc)k2009kM0c0o%s0f21r01ua0i0n.k_ Al @ 8UsBe0e0v @ d@1H4-,3 7%bO&&i Ab~59 &&XGK"'0U!R&!40 FJlJ Q! (sQsQ]31heA!Zsꈐ43 0 @?/n' #M b7fJ:] f? @ fA B &C  fE  &F b & 4&H fH&I \&J fp&K &L f&M &N &&O & f&Q &R f6S $6T f86U L6V f`6W t6X f6Y 6Z f6[ 6\ f6] 6^ fF_ F` f(Fa ~L1B~`1F~t1[D1e1R~1~1Z~1^~1b~Af~Aj~(AnT#3 AMJUF6٫&?Fh%4+ޱ?F*5?F$_D"w?P6 8>JuM` ?uJt  (LbIt=W,MyIR_FIl#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6ig5V1`e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ۰Z@]0?c Q#Oc Q\}|zeE:O)0:iG`iw*h<5a#j8oJiqze~EA#o>"rA #sHD:7 # h4>T]]9 MTJUFI)?FUj?FeTC?FǿJWc^?P6 v9>JuM` ?)uJt  6|.It=WL\} IR?8IlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LQ DO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!Z!姈?F9"rA #sHD:7 # h#4>T#3 AMJUFe{5?F?Fs۰Z?FNb_+iFw?P6 :>JuM` ?uJt  DqIt=W{*IRUo_}WIlTy6ވ#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJrO@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij? mh~EA#o>"rA k#sHD:7 # h4>T]]9 MTJUFS?FަƢ?F'?FǿJWc^?P6 v;>JuM` ?)uJt  cIt=W(?IRkzIlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 $V+ZlJ]Uhz@!A!Z5?!?F9&sA #<# $B jfJ'j`00>oPaYc l]]aE:Ͷ0TbCcba`iK8K8h<5e۰ϿZk(qQlqe~EeFͭ||`ai !hA'o>"rA 5#sHD:7 # h4>T]]9 MTJUF蕯?Fcų[?F!?Flaxy?P6 v<>JuM` ?)uJt  {It=W ůIRE! YBIl p#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!`197b$<# h$B 9b`fJ: m٠uۘ]0:mOc i'A~aEe7D?c  V#NeFaze<5eF|lVaiU3Lh~EA#o>"]rA #sHD:7 # h4>T]]9 MTJUFA!z?FA]?F>WB?Ft=E?P6 v=>JuM` ?)uJt  wT vIt=W?mIRݮIl$dvĤ#>2zGz?@MJAebM #zT (#+#+#&Jp!p!5 g`?Copy_rigTtt(c)t2U0 9tM c os f"!rԙ !a i n}.t Al U (s"e e 5v0d i!Em$}! K2?b6 ?ALb4($I3/ 4/U%b-|# |'Yb6?Fiie<59 FjX/G'0UBib6!}40 aFuJlJ8>UhAA@ !1!Z}o'- E|zo}#<b$] VJ:FQw0RS S IBf>QE2!?Fp\BU--# i[F @ h<53n CU9fKo]o  h5a9YUU aUUwi]Q ieq5 hb2r_U"rA #sHD:7 # h8>T ]]9 MTJUF gl6?FDb,)?FUw)٫?FQ`m ^?P6 >>JuM`lW? SuJt  LUMtA[_ʓWMVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @nib#zv t#b( (+&B" ?APb)4(z$CD3//&*115 k`?CopyrigTtk(wc)k2009kM0c0o%s0f21r01ua0i0n.k_ Al @ 8UsBe0e0v @ d@1H4-,3 7%bO&&i Ab~59 &&XGK"'0U!R&!40 FJlJ Q! (sQsQ]31heA!ZU0|z3 0 @?/n' #M b7fJ:]h^PsojRփUaEQ!?!`0 0c s!R'i e:}ɟh~5aef9oa|b c gT#3 AMJUFE//?F_ 8?F*5?F$_D"w?P6 ?>JuM` ?uJt  z7It=WiIR_FIl#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+Ab6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L(a2BO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4a2 9b`fJ۰Z@]0?c Q#Oc Q\}ȱ~aE:)0:iG`iw*h<5a#j8oJiqze~EA#o>"]rA #sHD:7 # h4>T]]9 MTJUFK?Fc>,Λ?FeTC?FǿJWc^?P6 v@>JuM` ?)uJt  jDFIt=W-M3}IR?8IlRv\#>2zGz?MHJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L(BO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!A!Z!?F9v"rA # sHD:7 # h#4>T#3 AMJUFQL ?F7ԩ+?Fs۰Z?FNb_+iFw?P6 A>JuM` ?uJt  Ç\UIt=W @ٶIRUo_}WIlTy6ވ#>2zGz?N@MJ@eb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L( DO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ:rO@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij? mh~EA#o>"rA k#sHD:7 # h4>T]]9 MTJUFLli[?FQ>?F'?FǿJWc^?P6 vB>JuM` ?)uJt  ICIt=WN3sIRkzIlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 $V+ZlJ]Uhz@!A!Z5?!?F9&sA #<# $B jfJ'j`00>oPaYc l]]aE:Ͷ0TbCcba`iK8K8h<5e۰ϿZk(qQlqe~EeFͭ||`ai !hA'o>"rA 5#sHD:7 # h4>T]]9 MTJUF63?F8.G?F!?Flaxy?P6 vC>JuM` ?)uJt  ͧILIt=Wf IRE! YBIl p#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LQ DO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!`197b$<# h$B 9b`fJ: m٠uۘ]0:mOc i'A~aEe7D?c  V#NeFaze<5eF|lVaiU3Lh~EA#o>"]rA #sHD:7 # h4>T]]9 MTJUFPHY?FpN?F>WB?Ft=E?P6 rAJuM` ?)uJt  PrIt=WoDIRݮIl$dvĤ#>2zGz?@MJAebM #zT (#+#+#&Jp!p!5 g`?CopyrigTt (c) W20 9 M ]c os f"R!r !a i n. AUl (s"e e v0d @i!Em$}! K2?b6 3?ALb4(&$3/ 4/U%-|# e|'b6 ?Fiie<59 FX/G'0UBb6!}40 aFuJlJ 8>UhAA !1!Z}'- E|zo}#<bc$] )VJ:FQw00RS S IBf>QE2!?Fp\BU--# i?[F @ h<53n CU9fKo]o ڵ h5a9YUU aUU?wi]Q ieq5 h2r_U"rA #sHD:7 # h8>T ]]9 MTJUFǦmڷ?FWZgL?FUw)٫?FQ`m ^?P6 E>JuM`lW? SuJt  NKMtA[X_*`lMVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @nib#zv t#b( (+&B" ?APb)4(z$CD3//&*115 k`?CopyrigTtk(wc)k2009kM0c0o%s0f21r01ua0i0n.k_ Al @ 8UsBe0e0v @ d@1H4-,3 7%bO&&i Ab~59 &&XGK"'0U!R&!40 FJlJ Q! (sQsQ]31heA!ZU0|z3 0 @?/n' #M b7fJ:]h^PsojRփUaEQ!?!`0 0c s!R'i e:}ɟh~5aef9oa|b c gT#3 AMJUFܹ?F cM?F*5?F$_D"w?P6 F>JuM` ?uJt  @@|It=Wn56uIR_FIl#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ۰Z@]0?c Q#Oc Q\}ȱ~aE:)0:iG`iw*h<5a#j8oJiqze~EA#o>"]rA #sHD:7 # h4>T]]9 MTJUF (?FthZ?FeTC?FǿJWc^?P6 vG>JuM` ?)uJt  It=WX IR?8IlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%`|# |'1b6LQBBO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!Z!姈?F9"rA #sHD:7 # h#4>T#3 AMJUFr!Qw?Fvk?Fs۰Z?FNb_+iFw?P6 AJuM` ?uJt  1It=WOIRUo_}WIlTy6ވ#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L(BO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4 9b`fJ:rO@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij? mh~EA#o>"rA k#sHD:7 # h4>T]]9 MTJUF!P4K?F l?F'?FǿJWc^?P6 vI>JuM` ?)uJt  {d5Z\It=W2;wEIRkzIlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 $V+ZlJ]Uhz@!A!Z5?!?F9&sA #<# $B jfJ'j`00>oPaYc ?l]]beE:Ͷǝ0TbCcba`iK8K8h<5e۰Zk(qQlqe~EeFͭ||`ai !hA'o>"rA #sHD:7 # h4>T]]9 MTJUFYzUv?FS s9?F!?Flaxy?P6 vJ>JuM` ?)uJt  V"(It=W7:LIRE! YBIl p#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!`197b$<# h$B 9b`fJ: m٠uۘ]0:mOc i'A~aEe7D?c  V#NeFaze<5eF|lVaiU3Lh~EA#o>"]rA #sHD:7 # h4>T]]9 MTJUF)"z>?F^i2VS?F>WB?Ft=E?P6 vK>JuM` ?)uJt  7It=WܯHIRݮIl$dvĤ#>2zGz?@MJAebM #zT (#+#+#&Jp!p!5 g`?CopyrigTt (c) W20 9 M ]c os f"R!r !a i n. AUl (s"e e v0d @i!Em$}! K2?b6 3?ALb4(&$3/ 4/U%-|# e|'b6 ?Fiie<59 FX/G'0UBb6!}40 aFuJlJ 8>UhAA !1!Z}'- E|zo}#<b$] RVJ:FQwa0RS S IBf>QE2!?Fp\B?U--# i[F @ h<53n CU9fKo]o ڵ h5a9YUU aUU~wi]Q ieq5 h2r_U"]rA #sHD:7 # h8>T ]]9 MTJUF{KY?F#v\?FUw)٫?FQ`m ^?P6 L>JuM`lW? SuJt  o|MtA[_"oRMVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @nib#zv t#b( (+&B" ?APb)4(z$CD3//&*115 k`?CopyrigTtk(wc)k2009kM0c0o%s0f21r01ua0i0n.k_ Al @ 8UsBe0e0v @ d@1H4-,3 7%bO&&i Ab~59 &&XGK"'0U!R&!40 FJlJ Q! (sQsQ]31heA!ZU0|z3 0 @?/n' #M b7fJ:]h^PsojRփUaEQ!?!`0 0c s!R'i e:}ɟh~5aef9oa|b c gT#3 AMJUF<5^?FUP?F*5?F$_D"w?P6 M>JuM` ?uJt  .9BWyIt=Wnq׏8IR_FIl#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L( DO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ۰Z@]0?c Q#Oc Q\}ȱ~aE:)0:iG`iw*h<5a#j8oJiqze~EA#o>"]rA #sHD:7 # h4>T]]9 MTJUF?F͍~eTC?FJWc^?P6 N>JuM` ?juJt  HIt=WByIR?8Il?Rv\#>2zGz?@MJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!ZA!Z!?F9"rA #sHD:7 # h#4>T#3 AMJUFSw?FK?Fs۰Z?FNb_+iFw?P6 O>JuM` ?uJt  fd>It=WN6sgHRUo}WIlT?y6ވ#>2zGz?@MJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!A!1l&fL# $<EfB 9b`fJ:r'@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij mh~EA#o>"rA 5#sHD:7 # h4>T]]9 MTJUF%u)H׾?FȐ?F'?FǿJWc^?P6 rAJuM` ?)uJt  ُuߓIt=Wί IRkzIlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTtt(c])t20 9tuM c os If"!r !a i n.t WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6LLs2BO ie<59 FXG/'0U`Rb6-!}40 V+Z lJ]UhzЎ!A!Z5!O?F9&sA#<# $s2 %jfJ'j`00>oPaYc l]]aE:Ͷc0TbCcba`iK8K8h<5e۰Zk(qQlqe~EeFͭ||`ai !hA'o>v"rA # sHD:7 # h4>T]]9 MTJUFf^oO?F]?F!?Flaxy?P6 vQ>JuM` ?)uJt  L+It=WݑHIRE! YBIl p#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!`197b$<# h$B 9b`fJ: m٠uۘ]0:mOc i'A~aEe7D?c  V#NeFaze<5eF|lVaiU3Lh~EA#o>"]rA #sHD:7 # h4>T]]9 MTJUFr,?F4w?F>WB?Ft=E?P6 vR>JuM` ?)uJt  6j>It=WNFFIRݮIl$dvĤ#>2zGz?@MJAebM #zT (#+#+#&Jp!p!5 g`?CopyrigTt (c) W20 9 M ]c os f"R!r !a i n. AUl (s"e e v0d @i!Em$}! K2?b6 3?ALb4(&$3/ 4/U%-|# e|'b6 ?Fiie<59 FX/G'0UBb6!}40 aFuJlJ 8>UhAA !1!Z}'- E|zo}#<b$] RVJ:FQwa0RS S IBf>QE2!?Fp\B?U--# i[F @ h<53n CU9fKo]o ڵ h5a9YUU aUU~wi]Q ieq5 h2r_U"]rA #sHD:7 # h8>T ]]9 MTJUF_5=~?Fe,=Vݼ?FUw)٫?FQ`m ^?P6 S>JuM`lW? SuJt  ?aV_MtA[_=p'MVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @nib#zv t#b( (+&B" ?APb)4(z$CD3//&*115 k`?CopyrigTtk(wc)k2009kM0c0o%s0f21r01ua0i0n.k_ Al @ 8UsBe0e0v @ d@1H4-,3 7%bO&&i Ab~59 &&XGK"'0U!R&!40 FJlJ Q! (sQsQ]31heA!ZU0|z3 0 @?/n' #M b7fJ:]h^PsojRփUaEQ!?!`0 0c s!R'i e:}ɟh~5aef9oa|b c gT#3 AMJUF<@έ?F&¬?F*5?F$_D"w?P6 T>JuM` ?uJt  &lIt=WAI׃IR_FIl#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJa6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6 LeE O @ie<59 FXG'0U`Rb6!}40 V+ZlJQI0h|G!A !6&f# &$<EfBM 9b`fJ۰Z@]0?c Q#Oc ?Q\}ֱ~aE:)'0:iG`iw*h<5a#j8oJiqze`~EA#o>"rA #sHD:7 # h4>T]]9 MTJUFpq?Fq֌?FeTC?FǿJWc^?P6 vU>JuM` ?)uJt  0@hIt=WmiIR?8IlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LQBBO ie<59 FXG'0U`RŴb6!}40 V+ZlJQ@hh|G!A!Z!?F9v"rA # sHD:7 # h#4>T#3 AMJUF߳ڮ?F$ ?Fs۰Z?FNb_+iFw?P6 V>JuM` ?uJt  JJ&qIt=WrhIRUo_}WIlTy6ވ#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6big581e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ:rO@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij? mh~EA#o>"rA k#sHD:7 # h4>T]]9 MTJUF>=9_?FL(Ѿ?F'?FǿJWc^?P6 vW>JuM` ?)uJt  V6>nIt=WgD~baIRkzIlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 $V+ZlJ]Uhz@!A!Z5?!?F9&sA #<# $B jfJ'j`00>oPaYc ?l]]|eE:Ͷǝ0TbCcba`iK8K8h<5e۰Zk(qQlqe~EeFͭ||`ai !hA'o>"rA #sHD:7 # h4>T]]9 MTJUFBP(?FxQ8?F!?Flaxy?P6 vX>JuM` ?)uJt  9KIt=WYGJIRE! YBIl p#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FD'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!`197b$<# h$B 9b`fJ: m٠uۘ]0:mOc i'A~aEe7D?c  V#NeFaze<5eF|lVaiU3Lh~EA#o>"]rA #sHD:7 # h4>T]]9 MTJUFMW?FM6N?F>WB?Ft=E?P6 vY>JuM` ?)uJt  1|It=WƯ:IRݮIl$dvĤ#>2zGz?@MJAebM #zT (#+#+#&Jp!p!5 g`?CopyrigTt (c) W20 9 M ]c os f"R!r !a i n. AUl (s"e e v0d @i!Em$}! K2?b6 3?ALb4(&$3/ 4/U%-|# e|'b6 ?Fiie<59 FX/G'0UBb6!}40 aFuJlJ 8>UhAA !1!Z}'- E|zo}#<b$] RVJ:FQwa0RS S IBf>QE2!?Fp\BU--| i?[F @ h<53n CU9fKo]o ڵ h5a9YUU aUU?wi]Q ieq5 h2r_U"rA #sHD:7 # h8>T ]]9 MTJUF('J?FK5+:?FUw)٫?FQ`m ^?P6 Z>JuM`lW? SuJt  y SksMtA[_eMVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @nib#zv t#b( (+&B" ?APb)4(z$CD3//&*115 k`?CopyrigTtk(wc)k2009kM0c0o%s0f21r01ua0i0n.k_ Al @ 8UsBe0e0v @ d@1H4-,3 7%bO&&i Ab~59 &&XGK"'0U!R&!40 FJlJ Q! (sQsQ]31heA! U0|z3 0 @?ҏn'R# b7fJ:]h^PsojR֯UaEQ!?ߟ!`0 0c s!R'i e:}ɟh~5aef9oa|b c gT#3 AMJUFB?F̒-8?F*5?F$_D"w?P6 [>JuM` ?uJt  4E$pIt=WLx4IR_FIl#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ۰Z@]0?c Q#Oc Q\}ȱ~aE:)0:iG`iw*h<5a#j8oJiqze~EA#o>"]rA #sHD:7 # h4>T]]9 MTJUFJ*ӏ?Fc?FeTC?FǿJWc^?P6 v\>JuM` ?)uJt  uIt=Wt]aIR?8IlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!Z!姈?F9"rA #sHD:7 # h#4>T#3 AMJUF"?F!S/?Fs۰Z?FNb_+iFw?P6 ]>JuM` ?uJt  B?˳It=WFp\cIRUo_}WIlTy6ވ#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ:rO@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij? mh~EA#o>"rA k#sHD:7 # h4>T]]9 MTJUF?F2\D?F'異JWc^?P6 ^>JuM` ?juJt  rs"It=WVIRkzIl?Rv\#>2zGz?@MJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigT}tZ(c)ZW20 9ZM ]c os f"R!r !a i n.Z AQl [&s"e e v0d @i!Em$+A?b6 ?AgJaT6` F !!l"zbAR +6ig5V181 ?2?;:C?'$4/U%G|# |'b6L3FO ie<59 FXG'K0U`Rb6!}4K0 V+ZlJ]Uhz!A!Z5!?F9&߮sA#`<# $B jfJ'j?`00>oPaYc l]G]aE:Ͷ0TbCcba`i?K8K8h<5e۰Zk(qׁQlqe~EeFͭ||`ai !hA'o>"]rA #sHD:7 # h4>T]]9 MTJUF79 Ğ?Fl_n.?F!?Flaxy?P6 v_>JuM` ?)uJt  sd It=W> IRE! YBIl p#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!`197b$<# h$B 9b`fJ: m٠uۘ]0:mOc i'A~aEe7D?c  V#NeFaze<5eF|lVaiU3Lh~EA#o>"]rA #sHD:7 # h4>T]]9 MTJUF-#&\?FZ|?F>WB?Ft=E?P6 v`>JuM` ?)uJt  [It=Wq.IRݮIl$dvĤ#>2zGz?@MJAebM #zT (#+#+#&Jp!p!5 g`?CopyrigTt (c) W20 9 M ]c os f"R!r !a i n. AUl (s"e e v0d @i!Em$}! K2?b6 3?ALb4(&$3/ 4/U%-|# e|'b6 ?Fiie<59 FX/G'0UBb6!}40 aFuJlJ 8>UhAA !1!Z}'- E|zo}#<b$] RVJ:FQwa0RS S IBf>QE2!?Fp\B?U--# i[F @ h<53n CU9fKo]o ڵ h5a9YUU aUU~wi]Q ieq5 h2r_U"]rA #sHD:7 # h8>T ]]9 MTJUFW>?F7 ?FUw)٫?FQ`m ^?P6 a>JuM`lW? SuJt  /êQPͰMtA[_Y#MVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @nib#zv t#b( (+&B" ?APb)4(z$CD3//&*115 k`?CopyrigTtk(wc)k2009kM0c0o%s0f21r01ua0i0n.k_ Al @ 8UsBe0e0v @ d@1H4-,3 7%bO&&i Ab~59 &&XGK"'0U!R&!40 FJlJ Q! (sQsQ]31heA!ZU0|z3 0 @?ҏn'0S b7fJ:]h^PsojR֯UaEQ!?ߟ!`0 0c s!R'i e:}ɟh~5aef9oa|b c g~L1B~`1F~t1[D1e1R~1~1Z~1^~1b~Af~Aj~(AnT#3 AMJUF6٫&?Fh%4+ޱ?F*5?F$_D"w?P6 c>JuM` ?uJt  (LbIt=W,MyIR_FIl#>2zGz?N@MJAeb #z (#+#+T#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A ?b6 ?AgJamT6G` F !!l"zbA +6iTg5V181 ?2?;:C?'I4/U%G,|# |'b6&L D O @ie<59 FXG'0U`Rb6!}40 V+ZlJQI0h|G!A !16&f &$<EfBM 9b`fJ۰Z@]0?c Q#Oc Q\}|zeE:)0:iG`i?w*h<5a#j8oJiqze~EA#o>"rA k#sHD:b # h4>T]]9 MTJUFI)?FUj?FeTC?FǿJWc^?P6 vd>JuM` ?)uJt  6|.It=WL\} IR?8IlRv\#>2zGz?@M2JAe7b #zQ (#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6LL0DO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!ZA!Z!?F9"rA #sHD:b # h#4>T#3 AMJUFe{5?F?Fs۰Z?FNb_+iFw?P6 e>JuM` ?uJt  DqIt=W{*IRUo_}WIlTy6ވ#>2zGz?N@MJAeb #z (#+#+T#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A ?b6 ?AgJamT6G` F !!l"zbA +6iTg5V181 ?2?;:C?'I4/U%G,|# |'b6&L0D O @ie<59 FXG'0U`Rb6!}40 V+ZlJQI0h|G!A !16&f &$<EfBM 9b`fJ:r@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij mh~EA#o>"rA #sHD:b # h4>T]]9 MTJUFS?FަƢ?F'?FǿJWc^?P6 vf>JuM` ?)uJt  cIt=W(?IRkzIlRv\#>2zGz?@M2JAe7b #zQ (#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6LL DO ie<59 FXG/'0U`Rb6-!}40 V+Z lJ]UhzЎ!A!Z5!O?F9&sA#< $B %jfJ'j`00>oPaYc l]]aE:Ͷc0TbCcba`iK8K8h<5e۰Zk(qQlqe~EeFͭ||`ai !hA'o>v"rA # sHD:b # h4>T]]9 MTJUF蕯?Fcų[?F!?Flaxy?P6 vg>JuM` ?)uJt  {It=W ůIRE! YBIl p#>2zGz?@M2JAe7b #zQ (#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A?b6 ?A mT6G` F !!l"zbA +6iTg5V181 ?2?;:C?'I4/U%G,|# |'b6&L2B O @ie<59 FXG'0U`Rb6!}40 V+ZlJQI0h|G!A !19b$< $2M 9b`fJ: m٠uۘ]ᇄ0:mOc i'A~aEeD?c  V#NeFaze<5eF|lVaiU?3Lh~EA#o>"rA k#sHD:b # h4>T]]9 MTJUFA!z?FA]?F>WB?Ft=E?P6 rUAJuM` ?)uJt  wT vIt=W?mIRݮIl$dvĤ#>2zGz?@M JAe #z (#+#+#&*Jp!p!5 g`?CopyrigTtt(wc)t20 9tM c o%s f"!r !ua i n.t_ Al (Us"e e v0 d i!Em$}! K2?0b6 ?ALcb4($3/ 4/U%-X|# |'b6?Fiie<59 FX/G_'0UBb6Z!}40 aFuJlJ8>UhAA Ў!1!Z}'[- E|zo}#;<b$T] VJ:FQw0RS S IBf>QE2!?Fp\BU--# i[F @ h<53n CU9fKo]o ?ڵ h5a9YUU aUUwi㼕]Q ieOq5 h2r_U"rA #sHD:b # h8>T ]]9 MTJUF gl6?FDb,)?FUw)٫?FQ`m ^?P6 i>JuM`lW? SuJt  LUMtA[_ʓWMVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @i #zv t#.b( (+&B"f ?APb)4(z$D3//& 115 k`?CopyrigTtk(c])k2009kuM0c0os0If21r01a0i0n.k WAl @ 8sBUe0e0v @d@14-3K 7!bO&& b~59 &&XGK"'0U!R&!40R FJlJ Q! (sQsQ]31eA-!ZU0|z 0f @?n'B# b7fJ:]h^Psoj?R֯UaEQ!?!`0 0c s!R'i e:}ɟh~5aef9oa|b c gT#3 AMJUFE//?F_ 8?F*5?F$_D"w?P6 j>JuM` ?uJt  z7It=WiIR_FIl#>2zGz?N@MJAeb #z (#+#+T#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A ?b6 ?AgJamT6G` F !!l"zbA +6iTg5V181 ?2?;:C?'I4/U%G,|# |'b6fLF O @ie<59 FXG'0U`Rb6!}40 V+ZlJQI0h|G!A !16&f &$<EfBM 9b`fJ۰Z@]0?c Q#Oc ?Q\}ֱ~aE:)'0:iG`iw*h<5a#j8oJiqze`~EA#o>"rA #sHD:b # h4>T]]9 MTJUFK?Fc>,Λ?FeTC?FǿJWc^?P6 vk>JuM` ?)uJt  jDFIt=W-M3}IR?8IlRv\#>2zGz?@M2JAe7b #zQ (#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!ZA!Z!?F9"rA #sHD:b # h#4>T#3 AMJUFQL ?F7ԩ+?Fs۰Z?FNb_+iFw?P6 l>JuM` ?uJt  Ç\UIt=W @ٶIRUo_}WIlTy6ވ#>2zGz?N@MJAeb #z (#+#+T#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A ?b6 ?AgJamT6G` F !!l"zbA +6iTg5V181 ?2?;:C?'I4/U%G,|# |'b6&L D O @ie<59 FXG'0U`Rb6!}40 V+ZMQI0h|G!A !16&f &$<EfBM 9b`fJ:r@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij mh~EA#o>"rA #sHD:b # h4>T]]9 MTJUFLli[?FQ>?F'?FǿJWc^?P6 vm>JuM` ?)uJt  ICIt=WN3sIRkzIlRv\#>2zGz?@M2JAe7b #zQ (#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+Z lJ]UhzЎ!A!Z5!O?F9&sA#< $B %jfJ'j`00>oPaYc l]]aE:Ͷc0TbCcba`iK8K8h<5e۰Zk(qQlqe~EeFͭ||`ai !hA'o>v"rA # sHD:b # h4>T]]9 MTJUF63?F8.G?F!?Flaxy?P6 vn>JuM` ?)uJt  ͧILIt=Wf IRE! YBIl p#>2zGz?@M2JAe7b #zQ (#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6LL DO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!A!19b $< $B 9b`fJ: m٠uۘ]0:mOc ?i'A~aEeDͅ?c ? V#NeFaze<5eF|lVaiU3Lh`~EA#o>"rA #sHD:b # h4>T]]9 MTJUFPHY?FpN?F>WB?Ft=E?P6 vo>JuM` ?)uJt  PrIt=WoDIRݮIl$dvĤ#>2zGz?@M JAe #z (#+#+#&*Jp!p!5 g`?CopyrigTt (c) 2U0 9 M c os f"!rԙ !a i n}. Al U (s"e e 5v0d i!Em$}! K2?b6 ?ALb4($I3/ 4/U%b-|# |'Yb6?Fiie<59 FjX/G'0UBib6!}40 aFuJlJ8>UhAA@ !1!Z}o'- E|zo}#<bX$ [ VʼJ:F?Qw0ȒS S I?Bf>QE2!?Fp\BU--# i[ÏF @ h<53n ?CU9fKo]o ڵ h5a9YUU aUUwi]Q i?eq5 h2r_U"rA k#sHD:b # h8>T ]]9 MTJUFǦmڷ?FWZgL?FUw)٫?FQ`m ^?P6 p>JuM`lW? SuJt  NKMtA[X_*`lMVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @i #zv t#.b( (+&B"f ?APb)4(z$D3//& 115 k`?CopyrigTtk(c])k2009kuM0c0os0If21r01a0i0n.k WAl @ 8sBUe0e0v @d@14-3K 7IbO&&i bP~59 &&XGK"'0U!R&!40 FJlJ $Q! (sQsQ]31ZeA!ZU0|z 0 @?n'0S b7fJ:]h?^PsojR֯UaEQ!?!`c0 0c s!R'i e:}ɟh~5aef9oa|b c gT#3 AMJUFܹ?F cM?F*5?F$_D"w?P6 q>JuM` ?uJt  @@|It=Wn56uIR_FIl#>2zGz?N@MJAeb #z (#+#+T#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A ?b6 ?AgJamT6G` F !!l"zbA +6iTg5V181 ?2?;:C?'I4/U%G,|# |'b6fLF O @ie<59 FXG'0U`Rb6!}40 V+ZlJQI0h|G!A !16&f &$<EfBM 9b`fJ۰Z@]0?c Q#Oc ?Q\}ֱ~aE:)'0:iG`iw*h<5a#j8oJiqze`~EA#o>"rA #sHD:b # h4>T]]9 MTJUF (?FthZ?FeTC?FǿJWc^?P6 vr>JuM` ?)uJt  It=WX IR?8IlRv\#>2zGz?@M2JAe7b #zQ (#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6LL2BO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!ZA!Z!?F9"rA #sHD:b # h#4>T#3 AMJUFr!Qw?Fvk?Fs۰Z?FNb_+iFw?P6 s>JuM` ?uJt  1It=WOIRUo_}WIlTy6ވ#>2zGz?N@MJAeb #z (#+#+T#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A ?b6 ?AgJamT6G` F !!l"zbA +6iTg5V181 ?2?;:C?'I4/U%G,|# |'b6&L D O @ie<59 FXG'0U`Rb6!}40 V+ZlJQI0h|G!A !16&f &$<EfBM 9b`fJ:r@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij mh~EA#o>"rA #sHD:b # h4>T]]9 MTJUF!P4K?F l?F'?FǿJWc^?P6 vt>JuM` ?)uJt  {d5Z\It=W2;wEIRkzIlRv\#>2zGz?@M2JAe7b #zQ (#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6LL DO ie<59 FXG/'0U`Rb6-!}40 V+Z lJ]UhzЎ!A!Z5!O?F9&sA#< $B %jfJ'j`00>oPaYc l]]beE:Ͷ10TbCcba`iK8K8h<5e۰Zk(qQlqe~EeFͭ||`ai !hA'o>"rA #sHD:b # h4>T]]9 MTJUFYzUv?FS s9?F!?Flaxy?P6 vu>JuM` ?)uJt  V"(It=W7:LIRE! YBIl p#>2zGz?@M2JAe7b #zQ (#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!A!19b $< $B 9b`fJ: m٠uۘ]0:mOc ?i'A~aEeDͅ?c ? V#NeFaze<5eF|lVaiU3Lh`~EA#o>"rA #sHD:b # h4>T]]9 MTJUF)"z>?F^i2VS?F>WB?Ft=E?P6 vv>JuM` ?)uJt  7It=WܯHIRݮIl$dvĤ#>2zGz?@M JAe #z (#+#+#&*Jp!p!5 g`?CopyrigTt (c) 2U0 9 M c os f"!rԙ !a i n}. Al U (s"e e 5v0d i!Em$}! K2?b6 ?ALb4($I3/ 4/U%b-|# |'Yb6?Fiie<59 FjX/G'0UBib6!}40 aFuJlJ8>UhAA@ !1!Z}o'- E|zo}#<bX$ 0[ VʼJ:F?Qw0ȒS S I?Bf>QE2!?Fp\BU--# i[ÏF @ h<53n ?CU9fKo]o ڵ h5a9YUU aUUwi]Q i?eq5 h2r_U"rA k#sHD:b # h8>T ]]9 MTJUF{KY?F#v\?FUw)٫?FQ`m ^?P6 w>JuM`lW? SuJt  o|MtA[_"oRMVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @i #zv t#.b( (+&B"f ?APb)4(z$D3//& 115 k`?CopyrigTtk(c])k2009kuM0c0os0If21r01a0i0n.k WAl @ 8sBUe0e0v @d@14-3K 7IbO&&i bP~59 &&XGK"'0U!R&!40 FJlJ $Q! (sQsQ]31ZeA!ZU0|z 0 @?nK' # bS7fJ:]h^PsojR֯UaEQ!?!`0 0c s!R'i e:}ɟh~5aef9oa|b c gT#3 AMJUF<5^?FUP?F*5?F$_D"w?P6 x>JuM` ?uJt  .9BWyIt=Wnq׏8IR_FIl#>2zGz?N@MJAeb #z (#+#+T#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A ?b6 ?AgJamT6G` F !!l"zbA +6iTg5V181 ?2?;:C?'I4/U%G,|# |'b6fLF O @ie<59 FXG'0U`Rb6!}40 V+ZlJQI0h|G!A !16&f &$<EfBM 9b`fJ۰Z@]0?c Q#Oc ?Q\}ֱ~aE:)'0:iG`iw*h<5a#j8oJiqze`~EA#o>"rA #sHD:b # h4>T]]9 MTJUF?F͍~eTC?FJWc^?P6 y>JuM` ?juJt  HIt=WByIR?8Il?Rv\#>2zGz?@MJAebM #zT (#+#+#&Jp!p!5 g`?CopyrigTt (c) W20 9 M ]c os f"R!r !a i n. AUl (s"e e v0d @i!Em$+A?b6 ?AgJaT6` F !!l"zbAR +6ig5V181 ?2?;:C?'$4/U%G|# |'b6L DO ie<59 FXG'K0U`Rb6!}4K0 V+ZlJQI0h|G!A!Z!?F9"rA #sHD:b # h#4>T#3 AMJUFSw?FK?Fs۰Z?FNb_+iFw?P6 z>JuM` ?uJt  fd>It=WN6sgHRUo}WIlT?y6ވ#>2zGz?@MJAebM #zT (#+#+#&Jp!p!5 g`?CopyrigTt (c) W20 9 M ]c os f"R!r !a i n. AUl (s"e e v0d @i!Em$+A?b6 ?AgJaT6` F !!l"zbAR +6ig5V181 ?2?;:C?'$4/U%G|# |'b6L3FO ie<59 FXG'K0U`Rb6!}4K0 V+ZlJQI0h|G!A!1&f $<EfB 9b`fJ:r@]0:iG`Oc ?qy"zeEajoJiaze<5e'f`0mFaij mh~EA#o>v"rA # sHD:b # h4>T]]9 MTJUF%u)H׾?FȐ?F'?FǿJWc^?P6 v{>JuM` ?)uJt  ُuߓIt=Wί IRkzIlRv\#>2zGz?@M2JAe7b #zQ (#+#+#&JBp!p!5 g`?CopyrigT}tt(c)tW20 9tM ]c os f"R!r !a i n.t AUl (s"e e v0d @i!Em$+A?b6 ?AgJaT6` F !!l"zbAR +6ig5V181 ?2?;:C?'$4/U%G|# |'b6L3FO ie<59 FXG'K0U`Rb6!}4K0 V+ZlJ]Uhz!A!Z5!?F9&߮sA#`< $B jfJ'j?`00>oPaYc l]G]aE:Ͷ0TbCcba`i?K8K8h<5e۰Zk(qׁQlqe~EeFͭ||`ai !hA'o>"]rA #sHD:b # h4>T]]9 MTJUFf^oO?F]?F!?Flaxy?P6 v|>JuM` ?)uJt  L+It=WݑHIRE! YBIl p#>2zGz?@M2JAe7b #zQ (#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!A!19b $< $B 9b`fJ: m٠uۘ]0:mOc ?i'A~aEeDͅ?c ? V#NeFaze<5eF|lVaiU3Lh`~EA#o>"rA #sHD:b # h4>T]]9 MTJUFr,?F4w?F>WB?Ft=E?P6 v}>JuM` ?)uJt  6j>It=WNFFIRݮIl$dvĤ#>2zGz?@M JAe #z (#+#+#&*Jp!p!5 g`?CopyrigTt (c) 2U0 9 M c os f"!rԙ !a i n}. Al U (s"e e 5v0d i!Em$}! K2?b6 ?ALb4($I3/ 4/U%b-|# |'Yb6?Fiie<59 FjX/G'0UBib6!}40 aFuJlJ8>UhAA@ !1!Z}o'- E|zo}#<b$] VJ:FQw0RS S IBf>QE2!?Fp\BU--# i[F @ h<53n CU9fKo]o  h5a9YUU aUUwi]Q ieq5 hb2r_U"rA #sHD:b # h8>T ]]9 MTJUF_5=~?Fe,=Vݼ?FUw)٫?FQ`m ^?P6 ~>JuM`lW? SuJt  ?aV_MtA[_=p'MVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @i #zv t#.b( (+&B"f ?APb)4(z$D3//& 115 k`?CopyrigTtk(c])k2009kuM0c0os0If21r01a0i0n.k WAl @ 8sBUe0e0v @d@14-3K 7IbO&&i bP~59 &&XGK"'0U!R&!40 FJlJ $Q! (sQsQ]31ZeA!ZU0|z 0 @?nK' # bS7fJ:]h^PsojR֯UaEQ!?!`0 0c s!R'i e:}ɟh~5aef9oa|b c gT#3 AMJUF<@έ?F&¬?F*5?F$_D"w?P6 >JuM` ?uJt  &lIt=WAI׃IR_FIl#>2zGz?N@MJAeb #z (#+#+T#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A ?b6 ?AgJamT6G` F !!l"zbA +6iTg5V181 ?2?;:C?'I4/U%G,|# |'b6fLF O @ie<59 FXG'0U`Rb6!}40 V+ZlJQI0h|G!A !16&f &$<EfBM 9b`fJ۰Z@]0?c Q#Oc ?Q\}ֱ~aE:)'0:iG`iw*h<5a#j8oJiqze`~EA#o>"rA #sHD:b # h4>T]]9 MTJUFpq?Fq֌?FeTC?FǿJWc^?P6 v>JuM` ?)uJt  0@hIt=WmiIR?8IlRv\#>2zGz?@M2JAe7b #zQ (#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!ZA!Z!?F9"rA #sHD:b # h#4>T#3 AMJUF߳ڮ?F$ ?Fs۰Z?FNb_+iFw?P6 >JuM` ?uJt  JJ&qIt=WrhIRUo_}WIlTy6ވ#>2zGz?N@MJAeb #z (#+#+T#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A ?b6 ?AgJamT6G` F !!l"zbA +6iTg5V181 ?2?;:C?'I4/U%G,|# |'b6fLF O @ie<59 FXG'0U`Rb6!}40 V+ZlJQI0h|G!A !16&f &$<EfBM 9b`fJ:r@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij mh~EA#o>"rA #sHD:b # h4>T]]9 MTJUF>=9_?FL(Ѿ?F'?FǿJWc^?P6 v>JuM` ?)uJt  V6>nIt=WgD~baIRkzIlRv\#>2zGz?@M2JAe7b #zQ (#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+Z lJ]UhzЎ!A!Z5!O?F9&sA#< $B %jfJ'j`00>oPaYc l]]|eE:Ͷ10TbCcba`iK8K8h<5e۰Zk(qQlqe~EeFͭ||`ai !hA'o>"rA #sHD:b # h4>T]]9 MTJUFBP(?FxQ8?F!?Flaxy?P6 v>JuM` ?)uJt  9KIt=WYGJIRE! YBIl p#>2zGz?@M2JAeWb #z@Q (#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!A!19b $< $B 9b`fJ: m٠uۘ]0:mOc ?i'A~aEeDͅ?c ? V#NeFaze<5eF|lVaiU3Lh`~EA#o>"rA #sHD:b # h4>T]]9 MTJUFMW?FM6N?F>WB?Ft=E?P6 v>JuM` ?)uJt  1|It=WƯ:IRݮIl$dvĤ#>2zGz?@M JAe #z (#+#+#&*Jp!p!5 g`?CopyrigTt (c) 2U0 9 M c os f"!rԙ !a i n}. Al U (s"e e 5v0d i!Em$}! K2?b6 ?ALb4($I3/ 4/U%b-|# |'Ib6?Fiie<59 FjX/G'0UBib6!}40 aFuJlJ8>UhAA@ !1!Z}o'- E|zo}#<bX$!B] VʼJ:F?Qw0ȒS S I?Bf>QE2!?Fp\BU--| i[F @ h<53n CU9fKo]o ڵ h5a9YUU aUUwiǤ]Q işeq5 h2r_U"rA 5#sHD:b # h8>T ]]9 MTJUF('J?FK5+:?FUw)٫?FQ`m ^?P6 >JuM`lW? SuJt  y SksMtA[_eMVYBMpry2VI'>\??\.?lA8 M2ll/f?=@MJB& @i #zv t#.b( (+&B"f ?APb)4(z$D3//& 115 k`?CopyrigTtk(c])k2009kuM0c0os0If21r01a0i0n.k WAl @ 8sBUe0e0v @d@14-3K 7IbO&&i bP~59 &&XGK"'0U!R&!40 FJlJ $Q! (sQsQ]31ZeA!ZU0|z 0 @?n'."# b7fJ:]h?^PsojR֯UaEQ!?!`c0 0c s!R'i e:}ɟh~5aef9oa|b c gT#3 AMJUFB?F̒-8?F*5?F$_D"w?P6 >JuM` ?uJt  4E$pIt=WLx4IR_FIl#>2zGz?N@MJAeb #z (#+#+T#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A ?b6 ?AgJamT6G` F !!l"zbA +6iTg5V181 ?2?;:C?'I4/U%G,|# |'b6&L72B O @ie<59 FXG'0U`Rb6!}40 V+ZlJQI0h|G!A !16&f &$<Ef72M 9b`fJ۰Z@]0?c Q#Oc ?Q\}ֱ~aE:)'0:iG`iw*h<5a#j8oJiqze`~EA#o>"rA #sHD:b # h4>T]]9 MTJUFJ*ӏ?Fc?FeTC?FǿJWc^?P6 v>JuM` ?)uJt  uIt=Wt]aIR?8IlRv\#>2zGz?@M2JAe7b #zQ (#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!ZA!Z!?F9"rA #sHD:b # h#4>T#3 AMJUF"?F!S/?Fs۰Z?FNb_+iFw?P6 >JuM` ?uJt  B?˳It=WFp\cIRUo_}WIlTy6ވ#>2zGz?N@MJAeb #z (#+#+T#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A ?b6 ?AgJamT6G` F !!l"zbA +6iTg5V181 ?2?;:C?'I4/U%G,|# |'b6fLF O @ie<59 FXG'0U`Rb6!}40 V+ZlJQI0h|G!A !16&f &$<EfBM 9b`fJ:r@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij mh~EA#o>"rA #sHD:b # h4>T]]9 MTJUF?F2\D?F'異JWc^?P6 ݉>JuM` ?juJt  rs"It=WVIRkzIl?Rv\#>2zGz?@MJAebM #zT (#+#+#&Jp!p!5 `?CopyrigTtZ(c)Z20 9ZM c. os f"!r !a i n.Z Al [&s"e ej v0d  i!Em$+A?b6 ?zAgJaۢT6` F !!l"zbjA) +6ig5UV181 ?2?F;:C?'4/U%G|# |'b6LA#BO ie<59 FXG'0U`Rb6!}40 V+ZlJ]UhzA!Z5!?F9&s7A#< X$" jfJ'j`00>oPaYc l]]aE:?Ͷ0TbCcba`iK8K8h<5e?۰Zk(qQlqe~EeFͭ||`ai !h`A'o>"rA #sHD:b # h4>T]]9 MTJUF79 Ğ?Fl_n.?F!?Flaxy?P6 v>JuM` ?)uJt  sd It=W> IRE! YBIl p#>2zGz?@M2JAe7b #zQ (#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!A!B19b$< $BM 9b`fJ: m٠uۘ]ᇄ0:mOc i'A~aEeD?c  V#NeFaze<5eF|lVaiU?3Lh~EA#o>"rA k#sHD:b # h4>T]]9 MTJUF-#&\?FZ|?F>WB?Ft=E?P6 v>JuM` ?)uJt  [It=Wq.IRݮIl$dvĤ#>2zGz?@M JAe #z (#+#+#&*Jp!p!5 g`?CopyrigTt (c) 2U0 9 M c os f"!rԙ !a i n}. Al U (s"e e 5v0d i!Em$}! K2?b6 ?ALb4($I3/ 4/U%b-|# |'Yb6?Fiie<59 FjX/G'0UBib6!}40 aFuJlJ8>UhAA@ !1!Z}o'- E|zo}#<b$] VM:FQw0RS S IBf>E2!?Fp\BU--# i[F @ h<53n CU9fKo]o  h5a9YUU aUUwi]Q ieq5 hb2r_U"rA #sHD:b # h8>T ]]9 MTJUFW>?F7 ?FUw)٫?FQ`m ^?P6 >JuM`lW? SuJt  /êQPͰMtA[_Y#MVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @i #zv t#.b( (+&B"f ?APb)4(z$D3//& 115 k`?CopyrigTtk(c])k2009kuM0c0os0If21r01a0i0n.k WAl @ 8sBUe0e0v @d@14-3K 7IbO&&i bP~59 &&XGK"'0U!R&!40 FJlJ $Q! (sQsQ]31ZeA!ZU0|z 0 @?nK' # bS7fJ:]h^PsojR֯UaEQ!?!`0 0c s!R'i e:}ɟh~5aef9oa|b c g~L1B~`1F~t1[D1e1R~1~1Z~1^~1b~Af~Aj~(AnT#3 AMJUF6٫&?Fh%4+ޱ?F*5?F$_D"w?P6 >JuM` ?uJt  (LbIt=W,MyIR_FIl#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L(BO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4 9b`fJ۰Z@]0?c Q#Oc Q\}|zeE:O)0:iG`iw*h<5a#j8oJiqze~EA#o>"rA #sHD: # h4>T]]9 MTJUFI)?FUj?FeTC?FǿJWc^?P6 v>JuM` ?)uJt  6|.It=WL\} IR?8IlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!Z!姈?F9"rA #sHD: # h#4>T#3 AMJUFe{5?F?Fs۰Z?FNb_+iFw?P6 >JuM` ?uJt  DqIt=W{*IRUo_}WIlTy6ވ#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ:rO@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij? mh~EA#o>"rA k#sHD: # h4>T]]9 MTJUFS?FަƢ?F'?FǿJWc^?P6 v>JuM` ?)uJt  cIt=W(?IRkzIlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 $V+ZlJ]Uhz@!A!Z5?!?F9&sA #<# $B jfJ'j`00>oPaYc l]]aE:Ͷ0TbCcba`iK8K8h<5e۰ϿZk(qQlqe~EeFͭ||`ai !hA'o>"rA 5#sHD: # h4>T]]9 MTJUF蕯?Fcų[?F!?Flaxy?P6 v>JuM` ?)uJt  {It=W ůIRE! YBIl p#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!`197b$<# h$B 9b`fJ: m٠uۘ]0:mOc i'A~aEe7D?c  V#NeFaze<5eF|lVaiU3Lh~EA#o>"]rA #sHD: # h4>T]]9 MTJUFA!z?FA]?F>WB?Ft=E?P6 v>JuM` ?)uJt  wT vIt=W?mIRݮIl$dvĤ#>2zGz?@MJAebM #zT (#+#+#&Jp!p!5 g`?Copy_rigTtt(c)t2U0 9tM c os f"!rԙ !a i n}.t Al U (s"e e 5v0d i!Em$}! K2?b6 ?ALb4($I3/ 4/U%b-|# |'Yb6?Fiie<59 FjX/G'0UBib6!}40 aFuJlJ8>UhAA@ !1!Z}o'- E|zo}#<b$] VJ:FQw0RS S IBf>QE2!?Fp\BU--# i[F @ h<53n CU9fKo]o  h5a9YUU aUUwi]Q ieq5 hb2r_U"rA #sHD: # h8>T ]]9 MTJUF gl6?FDb,)?FUw)٫?FQ`m ^?P6 >JuM`lW? SuJt  LUMtA[_ʓWMVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @nib#zv t#b( (+&B" ?APb)4(z$CD3//&*115 k`?CopyrigTtk(wc)k2009kM0c0o%s0f21r01ua0i0n.k_ Al @ 8UsBe0e0v @ d@1H4-,3 7%bO&&i b~59 && XGK"'0U!R&!40 FJlJ Q! (sQsQ]31heA!ZU0|z3 0 @?ҏn'B# b7fJ:]h^PsojR֯UaEQ!?ߟ!`0 0c s!R'i e:}ɟh~5aef9oa|b c gT#3 AMJUFE//?F_ 8?F*5?F$_D"w?P6 >JuM` ?uJt  z7It=WiIR_FIl#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ۰Z@]0?c Q#Oc Q\}ȱ~aE:)0:iG`iw*h<5a#j8oJiqze~EA#o>"]rA #sHD: # h4>T]]9 MTJUFK?Fc>,Λ?FeTC?FǿJWc^?P6 v>JuM` ?)uJt  jDFIt=W-M3}IR?8IlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!Z!姈?F9"rA #sHD: # h#4>T#3 AMJUFQL ?F7ԩ+?Fs۰Z?FNb_+iFw?P6 >JuM` ?uJt  Ç\UIt=W @ٶIRUo_}WIlTy6ވ#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ:rO@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij? mh~EA#o>"rA k#sHD: # h4>T]]9 MTJUFLli[?FQ>?F'?FǿJWc^?P6 v>JuM` ?)uJt  ICIt=WN3sIRkzIlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 $V+ZlJ]Uhz@!A!Z5?!?F9&sA #<# $B jfJ'j`00>oPaYc l]]aE:Ͷ0TbCcba`iK8K8h<5e۰ϿZk(qQlqe~EeFͭ||`ai !hA'o>"rA 5#sHD: # h4>T]]9 MTJUF63?F8.G?F!?Flaxy?P6 v>JuM` ?)uJt  ͧILIt=Wf IRE! YBIl p#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!`197b$<# h$B 9b`fJ: m٠uۘ]0:mOc i'A~aEe7D?c  V#NeFaze<5eF|lVaiU3Lh~EA#o>"]rA #sHD: # h4>T]]9 MTJUFPHY?FpN?F>WB?Ft=E?P6 v>JuM` ?)uJt  PrIt=WoDIRݮIl$dvĤ#>2zGz?@MJAebM #zT (#+#+#&Jp!p!5 g`?CopyrigTt (c) W20 9 M ]c os f"R!r !a i n. AUl (s"e e v0d @i!Em$}! K2?b6 3?ALb4(&$3/ 4/U%-|# e|'b6 ?Fiie<59 FX/G'0UBb6!}40 aFuJlJ 8>UhAA !1!Z}'- E|zo}#<b$] RVJ:FQwa0RS S IBf>QE2!?Fp\B?U--# i[F @ h<53n CU9fKo]o ڵ h5a9YUU aUU~wi]Q ieq5 h2r_U"]rA #sHD: # h8>T ]]9 MTJUFǦmڷ?FWZgL?FUw)٫?FQ`m ^?P6 AJuM`lW? SuJt  NKMtA[X_*`lMVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @nib#zv t#b( (+&B" ?APb)4(z$CD3//&*115 k`?CopyrigTtk(wc)k2009kM0c0o%s0f21r01ua0i0n.k_ Al @ 8UsBe0e0v @ d@1H4-,3 7%bO&&i Ab~59 &&XGK"'0U!R&!40 FJlJ Q! (sQsQ]31heA!ZU0|z3 0 @?ҏn'# b7fJ:]h^PsojR֯UaEQ!?ߟ!`0 0c s!R'i e:}ɟh~5aef9oa|b c gT#3 AMJUFܹ?F cM?F*5?F$_D"w?P6 >JuM` ?uJt  @@|It=Wn56uIR_FIl#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ۰Z@]0?c Q#Oc Q\}ȱ~aE:)0:iG`iw*h<5a#j8oJiqze~EA#o>"]rA #sHD: # h4>T]]9 MTJUF (?FthZ?FeTC?FǿJWc^?P6 v>JuM` ?)uJt  It=WX IR?8IlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!Z!姈?F9"rA #sHD: # h#4>T#3 AMJUFr!Qw?Fvk?Fs۰Z?FNb_+iFw?P6 >JuM` ?uJt  1It=WOIRUo_}WIlTy6ވ#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ:rO@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij? mh~EA#o>"rA k#sHD: # h4>T]]9 MTJUF!P4K?F l?F'?FǿJWc^?P6 v>JuM` ?)uJt  {d5Z\It=W2;wEIRkzIlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 $V+ZlJ]Uhz@!A!Z5?!?F9&sA #<# $B jfJ'j`00>oPaYc ?l]]beE:Ͷǝ0TbCcba`iK8K8h<5e۰Zk(qQlqe~EeFͭ||`ai !hA'o>"rA #sHD: # h4>T]]9 MTJUFYzUv?FS s9?F!?Flaxy?P6 v>JuM` ?)uJt  V"(It=W7:LIRE! YBIl p#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!`197b$<# h$B 9b`fJ: m٠uۘ]0:mOc i'A~aEe7D?c  V#NeFaze<5eF|lVaiU3Lh~EA#o>"]rA #sHD: # h4>T]]9 MTJUF)"z>?F^i2VS?F>WB?Ft=E?P6 v>JuM` ?)uJt  7It=WܯHIRݮIl$dvĤ#>2zGz?@MJAebM #zT (#+#+#&Jp!p!5 g`?CopyrigTt (c) W20 9 M ]c os f"R!r !a i n. AUl (s"e e v0d @i!Em$}! K2?b6 3?ALb4(&$3/ 4/U%-|# e|'b6 ?Fiie<59 FX/G'0UBb6!}40 aFuJlJ 8>UhAA !1!Z}'- E|zo}#<b$] RVJ:FQwa0RS S IBf>QE2!?Fp\B?U--# i[F @ h<53n CU9fKo]o ڵ h5a9YUU aUU~wi]Q ieq5 h2r_U"]rA #sHD: # h8>T ]]9 MTJUF{KY?F#v\?FUw)٫?FQ`m ^?P6 >JuM`lW? SuJt  o|MtA[_"oRMVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @nib#zv t#b( (+&B" ?APb)4(z$CD3//&*115 k`?CopyrigTtk(wc)k2009kM0c0o%s0f21r01ua0i0n.k_ Al @ 8UsBe0e0v @ d@1H4-,3 7%bO&&i Ab~59 &&XGK"'0U!R&!40 FJlJ Q! (sQsQ]31heA!ZU0|z3 0 @?/n' #M b7fJ:]h^PsojRփUaEQ!?!`0 0c s!R'i e:}ɟh~5aef9oa|b c gT#3 AMJUF<5^?FUP?F*5?F$_D"w?P6 >JuM` ?uJt  .9BWyIt=Wnq׏8IR_FIl#>2zGz?N@MJAeb #zb(#+B#+#&Mp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L(\"BO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4\" 9b`fJ۰Z@]0?c Q#Oc Q\}ȱ~aE:)0:iG`iw*h<5a#j8oJiqze~EA#o>"]rA #sHD: # h4>T]]9 MTJUF?F͍~eTC?FJWc^?P6 ݤ>JuM` ?juJt  HIt=WByIR?8Il?Rv\#>2zGz?@MJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6LLyBBO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!ZA!Z!?F9"]rA #sHD: # h#4>T#3 AMJUFSw?FK?Fs۰Z?FNb_+iFw?P6 >JuM` ?uJt  fd>It=WN6sgHRUo}WIlT?y6ވ#>2zGz?@MJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!A!1l&fL# $<EfB 9b`fJ:r'@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij mh~EA#o>"rA 5#sHD: # h4>T]]9 MTJUF%u)H׾?FȐ?F'?FǿJWc^?P6 v>JuM` ?)uJt  ُuߓIt=Wί IRkzIlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTtt(c])t20 9tuM c os If"!r !a i n.t WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+Z lJ]UhzЎ!A!Z5!O?F9&sA#<# $B %jfJ'j`00>oPaYc l]]aE:Ͷc0TbCcba`iK8K8h<5e۰Zk(qQlqe~EeFͭ||`ai !hA'o>v"rA # sHD: # h4>T]]9 MTJUFf^oO?F]?F!?Flaxy?P6 v>JuM` ?)uJt  L+It=WݑHIRE! YBIl p#>2zGz?@M2JAe7b #z]b(#+%#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'b6L5*6O ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!19b$<# $4h" 9b`fJ: m٠uۇ]0:mOc i'A~aEeכD?c  V#NeFaze<5eF?|lVaiU3Lh~EA#o>"rA #sHD: # h4>T]]9 MTJUFr,?F4w?F>WB?Ft=E?P6 v>JuM` ?)uJt  6j>It=WNFFIRݮIl$dvĤ#>2zGz?@MJAebM #zT (#+#+#&Jp!p!5 g`?CopyrigTt (c) W20 9 M ]c os f"R!r !a i n. AUl (s"e e v0d @i!Em$}! K2?b6 3?ALb4(&$3/ 4/U%-|# e|'b6 ?Fiie<59 FX/G'0UBb6!}40 aFuJlJ 8>UhAA !1!Z}'- E|zo}#<b$] RVJ:FQwa0RS S IBf>QE2!?Fp\B?U--# i[F @ h<53n CU9fKo]o ڵ h5a9YUU aUU~wi]Q ieq5 h2r_U"]rA #sHD: # h8>T ]]9 MTJUF_5=~?Fe,=Vݼ?FUw)٫?FQ`m ^?P6 >JuM`lW? SuJt  ?aV_MtA[_=p'MVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @nib#zv t#b( (+&B" ?APb)4(z$CD3//&*115 k`?CopyrigTtk(wc)k2009kM0c0o%s0f21r01ua0i0n.k_ Al @ 8UsBe0e0v @ d@1H4-,3 7%bO&&i Ab~59 &&XGK"'0U!R&!40 FJlJ Q! (sQsQ]31heA!ZU0|z3 0 @?/n' #M b7fJ:]h^PsojRփUaEQ!?!`0 0c s!R'i e:}ɟh~5aef9oa|b c gT#3 AMJUF<@έ?F&¬?F*5?F$_D"w?P6 >JuM` ?uJt  &lIt=WAI׃IR_FIl#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ۰Z@]0?c Q#Oc Q\}ȱ~aE:)0:iG`iw*h<5a#j8oJiqze~EA#o>"]rA #sHD: # h4>T]]9 MTJUFpq?Fq֌?FeTC?FǿJWc^?P6 v>JuM` ?)uJt  0@hIt=WmiIR?8IlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!Z!姈?F9"rA #sHD: # h#4>T#3 AMJUF߳ڮ?F$ ?Fs۰Z?FNb_+iFw?P6 >JuM` ?uJt  JJ&qIt=WrhIRUo_}WIlTy6ވ#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ:rO@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij? mh~EA#o>"rA k#sHD: # h4>T]]9 MTJUF>=9_?FL(Ѿ?F'?FǿJWc^?P6 v>JuM` ?)uJt  V6>nIt=WgD~baIRkzIlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 $V+ZlJ]Uhz@!A!Z5?!?F9&sA #<# $B jfJ'j`00>oPaYc ?l]]|eE:Ͷǝ0TbCcba`iK8K8h<5e۰Zk(qQlqe~EeFͭ||`ai !hA'o>"rA #sHD: # h4>T]]9 MTJUFBP(?FxQ8?F!?Flaxy?P6 v>JuM` ?)uJt  9KIt=WYGJIRE! YBIl p#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!`197b$<# h$B 9b`fJ: m٠uۘ]0:mOc i'A~aEe7D?c  V#NeFaze<5eF|lVaiU3Lh~EA#o>"]rA #sHD: # h4>T]]9 MTJUFMW?FM6N?F>WB?Ft=E?P6 v>JuM` ?)uJt  1|It=WƯ:IRݮIl$dvĤ#>2zGz?@MJAebM #zT (#+#+#&Jp!p!5 g`?CopyrigTt (c) W20 9 M ]c os f"R!r !a i n. AUl (s"e e v0d @i!Em$}! K2?b6 3?ALb4(&$3/ 4/U%-|# e|'b6 ?Fiie<59 FX/G'0UBb6!}40 aFuJlJ 8>UhAA !1!Z}'- E|zo}#<b$] RVJ:FQwa0RS S IBf>QE2!?Fp\BU--| i?[F @ h<53n CU9fKo]o ڵ h5a9YUU aUU?wi]Q ieq5 h2r_U"rA #sHD: # h8>T ]]9 MTJUF('J?FK5+:?FUw)٫?FQ`m ^?P6 >JuM`lW? SuJt  y SksMtA[_eMVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @nib#zv t#b( (+&B" ?APb)4(z$CD3//&*115 k`?CopyrigTtk(wc)k2009kM0c0o%s0f21r01ua0i0n.k_ Al @ 8UsBe0e0v @ d@1H4-,3 7%bO&&i Ab~59 &&XGK"'0U!R&!40 FJlJ Q! (sQsQ]31heA!ZU0|z3 0 @?/n' #M b7fJ:]h^PsojRփUaEQ!?!`0 0c s!R'i e:}ɟh~5aef9oa|b c gT#3 AMJUFB?F̒-8?F*5?F$_D"w?P6 >JuM` ?uJt  4E$pIt=WLx4IR_FIl#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ۰Z@]0?c Q#Oc Q\}ȱ~aE:)0:iG`iw*h<5a#j8oJiqze~EA#o>"]rA #sHD: # h4>T]]9 MTJUFJ*ӏ?Fc?FeTC?FǿJWc^?P6 v>JuM` ?)uJt  uIt=Wt]aIR?8IlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!Z!姈?F9"rA #sHD: # h#4>T#3 AMJUF"?F!S/?Fs۰Z?FNb_+iFw?P6 >JuM` ?uJt  B?˳It=WFp\cIRUo_}WIlTy6ވ#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ:rO@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij? mh~EA#o>"rA k#sHD: # h4>T]]9 MTJUF?F2\D?F'異JWc^?P6 ݴ>JuM` ?juJt  rs"It=WVIRkzIl?Rv\#>2zGz?@MJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigT}tZ(c)ZW20 9ZM ]c os f"R!r !a i n.Z AQl [&s"e e v0d @i!Em$+A?b6 ?AgJaT6` F !!l"zbAR +6ig5V181 ?2?;:C?'$4/U%G|# |'b6L3FO ie<59 FXG'K0U`Rb6!}4K0 V+ZlJ]Uhz!A!Z5!?F9&߮sA#`<# $B jfJ'j?`00>oPaYc l]G]aE:Ͷ0TbCcba`i?K8K8h<5e۰Zk(qׁQlqe~EeFͭ||`ai !hA'o>"]rA #sHD: # h4>T]]9 MTJUF79 Ğ?Fl_n.?F!?Flaxy?P6 v>JuM` ?)uJt  sd It=W> IRE! YBIl p#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!`197b$<# h$B 9b`fJ: m٠uۘ]0:mOc i'A~aEe7D?c  V#NeFaze<5eF|lVaiU3Lh~EA#o>"]rA #sHD: # h4>T]]9 MTJUF-#&\?FZ|?F>WB?Ft=E?P6 v>JuM` ?)uJt  [It=Wq.IRݮIl$dvĤ#>2zGz?@MJAebM #zT (#+#+#&Jp!p!5 g`?CopyrigTt (c) W20 9 M ]c os f"R!r !a i n. AUl (s"e e v0d @i!Em$}! K2?b6 3?ALb4(&$3/ 4/U%-|# e|'b6 ?Fiie<59 FX/G'0UBb6!}40 aFuJlJ 8>UhAA !1!Z}'- E|zo}#<b$] RVJ:FQwa0RS S IBf>QE2!?Fp\B?U--# i[F @ h<53n CU9fKo]o ڵ h5a9YUU aUU~wi]Q ieq5 h2r_U"]rA #sHD: # h8>T ]]9 MTJUFW>?F7 ?FUw)٫?FQ`m ^?P6 >JuM`lW? SuJt  /êQPͰMtA[_Y#MVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @nib#zv t#b( (+&B" ?APb)4(z$CD3//&*115 k`?CopyrigTtk(wc)k2009kM0c0o%s0f21r01ua0i0n.k_ Al @ 8UsBe0e0v @ d@1H4-,3 7%bO&&i Ab~59 &&XGK"'0U!R&!40 FJlJ Q! (sQsQ]31heA!ZU0|z3 0 @?/n' #M b7fJ:]h^PsojRփUaEQ!?!`0 0c s!R'i e:}ɟh~5aef9oa|b c g_+s +EiHG%>FM# oBH~dp@+8‘SsHqEZKQxsEm!D% 8D:(-GuE1wEv7yE;{E>~EIBX0F F2FI'4F3MhDQ ~:6FZ9Fw^H;F"bHx=Fe?Fji9AhmKDFpFFt~xHF#xJF{HLFWOF}!H)x#HB=%H+'H͑*Hu8,Hh.H|'HY)HHЧ0%Hs8hHHH)Hc~z)I~8Ij "'hߤIwI6ȨIߪIM)(I XI)QJ:אSJ"UJ'$WJZJr %\Jh^J*`JYY'bJ )eJ'gJt~@:iJaHkJmJf PK (8RK9TK}9VKXK9ZKU9]K#{(X_K&YA*(*./81((u5(X8[ZAlؗkE~~*I8LhߞXPP@TƩRWZU[l8W}_Yb[pf]ߏj(ߐmIqʙh5uܙx{|x ~( XƩ2Zێld("XO~7Ʃ٤Z(lX ɯg1UFD  h(^TYYBBUF~?x<F BP(?P? V B666 6 B66h9ȅ2H??\IB@L&d2?-(\.Y'(.sUM!K&Pm/:  0oB`2Fiber], pt c t ansm t #n tw rk equ p e t h rd 0-1e!91A^| (gUGr& wr  .@ wvwpppopp wwpwxwwwwpx=pp pwvLDrag thuesapWonodwipe.bL&d2ɿ~?P?=t˿)"g??)j3@ ?DHD: # h4>T]]9 MTAUF}Da 0?FH7r?F_/++?FXϸ?P6 `A$M (#<#lPJuM{` ?#{{20{F{ZujJtg  ɟ߇{tј` 'ɭ?s>JU2zGz?@M[#|Jk&A@$7b#z #!"b(b)+&J[e#t"t"?'6 I?A$/%Be#115 "`?CopyrigTt (c)020090M0c0oKs0f21r01a0i0n.0 Al0 8sBe0e0v@d0S"{14\#-Xe#3 7'6\% ZLFiie1E9 FXG/'0UR'6-!B40 FJlJ7Q0hLG1ZA!Y(}=K?Fl@I0`fS?Ks`ZsLbL\"JTy+HlPrW?F腺Z>FbyC ua)H0Ynǿl_Vef[U>dxԷErlg uVcQ$@aELe|}?FCʞ*Nc`vna Oc>wok&O8XWleBPmlfVArieoo.HLe+pQ?FYR&`O]vol``}; PaiEz6!iDF`ޣKH_SFn.ki`"rA k#ڃjnw5}6!i{HD: # h4>T]]9 MTUF)Q~ R?F\L#?Fx?F=:?P6 AA M (<Pdx#  $<PdxmJuM` /?9"9"29"F9"Z9"n9"9"9"9"/(Su()Jt%!  _lcd6tY1s2˟ke5n7rs=e57Fq1 >JU2zGzK?=@M3J6A@n4b%Cz@C2b3H%@3HNKNFJ[3 B?F &?A9D POqEUB3AA5 2`?CopyrigTt (c)5P20AP95PM-Pc.+Pos%Pf3R$Qr'P`Qa3Pi%Pn.5P Al{P +XsReSPej+PvPdsP2@AB3b-3 S  WF5 \fiieU9 fjXg2'0UbŴF!D0 TIf]jlJ @maa ]xQQ9A8`3F+G?F| @"$#әF1 "X3]/Lֲ1r2JAn?FkS?FΘtpb N ?_)Ay*t^(|CN7ȗu$#D[DP1X3aT1 :" $z 2? I? uK?$"X2a@s(BS2}:r5qEqEtFdo?F[K ۃ?FJ(OL?P$DT!  bqt%@{rfJHG^"f~Bt2)Џ⏪32Uu5*&?Fl5?F)b&&~?Fcle?P,A&!٘UީȽ|;!GmH﹡^@pw*oAΏ ՟4ޯFUuu #?F{+.W?,b26I>P-nx:aG|ZÉ-DuH rε50!au>uM"D$.@4#ZqTmz?FD?Fb.\i ]aJ`?@~{bcEt/^Vu1 a{&DFT?@l4ϳ$3<@ƒ>Pn}11WBx~|kz}~tesDޠux)LBk(a\6 `G $#Ppztt~Pz+ݿ]s~aϔb-4쇂3~uy0cفMk?Fǒ?F 6_?P(AT~' 6>Ľ?e+P?Toa?CB1wa1 83쇖y&Nfn~bS9xvD<$Q$#QcuNI|" 0)^VUıwm2G:LB3 .쇪;utq~F>`7bt?di д9Brq 8CJ &*짦f4omGL3A/S/#HD: # h4>T]]9 MTMUF؋@?Fce?F5svL*?F7= ?P6 ]A]M (<P]d_]x#_(_<s__JuM` ?_""2"F"Z"n"""uJt  oUxJ5t!21l]5 7,ȃ5$7ǁO>JU2zG/z?=@Ms3J6A@4b3z郷0392bR808;6J[}3 w(B??F ?A4 T? EB}3AA5 2`?CopyrigTt (c)@20@9@M@c@os@fBAr@Aa@i@n.@ AlP HsRe@e@v-PdPk2ADt3-}3C eG?Ft5 r\ViieIU9 VXW2'0U.b?F!ZD0 VZl1 &@(aa 3ArQ1q8Z}3F{و>r/2"0,s\>rt2JA%)?F+?FvWZk>Fy4 wa)`Ayf/!\3s M_lu|a<1u#Ca aܵ0 lkj? &_8)?"a@=s(<" !rÀ5 EbqEnu3.h?Fn`?F=/*lq?FF|oĵWA|GK|Wu|V#H1CRW%7#I3Et2~IUnuj "?FBĥج|+zw~>{Iσ]X41yu,A1BaNycЍ@2Wa4y}K6#I@ZltF~fUds!'Hɇ?FQy~<?F$f㷖꿈xywF,(|pgF|'c7|,X&l x קi4bqJ+ o N9z)e~zy0l44t;Ff4t/p1znuf.ʐ Lˮ?F I`V'0'|֠{yl7#y%m"gs7#It~jyozY_ƀ%çM,fFI|^t-,捇&F9~lFV6#I.@t~3ot~F+}|$+p?F?~a@v2rA 3z9Xt|L;W-yG7IGYt#~HD: # h4>T]]9 MTMUF}W?F?F5svL*?F7= ?P6 >M (<Pd_]x#_(_<s__JuM` ?_""2"F"Z"n"""uJt  wCHݛ5t!2-8Lc5 7,ȃ5$7ǁO>JU2zG/z?=@Ms3J6A@4b3z郷0392bR808;6J[}3 w(B??F ?A4 T? EB}3AA5 2`?CopyrigTt (c)@20@9@M@c@os@fBAr@Aa@i@n.@ AlP HsRe@e@v-PdPk2ADt3-}3C eG?Ft5 r\ViieIU9 VXW2'0U.b?F!ZD0 VZl1 &@(aa ]ArQ1q8Z}3F{و>r_2h"0,sf >r)t2JA%)?F+?FvWZk>Fy4 wa)`Ayf/!\3s ޿Mlu|a<1u#Ca aܵ0 lkj? &_8S?"a@=sB(<" !r5 EbqEnu3.h?Fn`?F=/*lq?FF|oĵWA|GK|WuǢ|V#HCRW%7#I3Et2~IUnuj "?FBĥج|ﲖ+zw~>{I]X41yu,A1BϠaNycߍ@2Wa4y}K6#IZltF~fU~ds!'Hɇ?FQy~<?F$fՖxywF,(|pgF|'c7|,X&l x ק1^uJ+ o N9z)e~zy0l44t;Ff4t/p1znuf.ʐ Lˮ?F I`V'0'|֠ yl7#y%m"gs7#It~jyozY_ƀ%çM,fFI|^t-,捇&F9~lFV6#I.@t~3ot~F+}|$+p?F?~a@v2rA 3z9Xt|L;W-yG7IGYt#~HD H# h4>T]]9 MMUF:TJ3?F ?FW7")?F(GP@?P6 f@#A#M (<Pd]x#$<PdxmJuM` /?""2"F"Z"n"""u )Jt!  ߆,ߑ'7t172DJM)527HB)5L7r Dɸ!>JU2zGz?=)@M3J6߀A@E4bM3z03a2b808RKFJ[3 PB?gF ?$A4 O5E3AA5 G2`?CopyrigTt (c)@20P9@M@c@oKs@fBAr@$Qa@i@n.@ Al?P HsCRePe@vUPd7P2AED3 5 -_C %GgFViieE9 VXW2'K0UVbgF!DK0 f!jl$1N@(aa ]3AQ18`3FPʞ>FQ?͉@"#] >"3n3v1lr2JA_[3nB?F#lNa?F ?Fe a)A@y?2oW Vytu#|_ӄ 5u3?\1a u׿@ ]h? d?#t?"2%a@ks(<29tK1r55EqEu}?FG?F U?F(k=|S@ܱ|ŗ-_`ǿmgV0ÖpITf#was2Eu2* ?Fd|ڀ >{$*Jr| ZȘ*'vY9!=a,z0WJ⅏ze#wFUuUfNڿ?F6 +C?F}ۛ)NQv1Vy>ﴺkcY︉0h ӯe#wZq~zd! nS@3(}|{gu2lqZt@>% rgrܥg/?B~fȿe#wϢnuex9?Fqp1C5bb=|=I"~;Jt^E>~KAOA/0ƛOu=e#w yJG?Fާ;נpIZ=gE܎=|grE2`~%-Bg0L0;e3w0䬌3t-~F`3FgG ߈A2rA 3+j[K~@])nATGf@B7e3w7I#Ha`dgHD H# h4>T]]9 MUFQ|3?Fͪ'?FH(])?F?\s?P6 A > (<@P]dx#D $<PdxJuM` ?9"9"29"F9"Z9"n9"9"9"9"/()u()Jt%!  [4c7tY1s2&뒺e5n7-V;e57n?ͷqJ1 >JU2zGz?R=@M3J6A@4b%Cz@C.2b3H%@3HNKNFJ[3 B?F I?A9D POqE*3AA5 2`?CopyrigTt (c)5P2U0AP95PM-Pc+Pos%Pf3R$Qr'P`Qa3Pi%Pn}.5P Al{PU +XsReSPe+P5vPdsP2AED3 (5 -_ SK  WFVi@ieE9 VXW2'0UbţF!D0 If]jl J @maa ]xQQ9A8Z3F꺷S"$#P8hB1 2X2?@s6vK r2J:jtFEZ qrs%@"s )1HA\HG@HA"lNa?F|/(?Fb) a)AyF7U1 "fWmA}$# c6n>}X3?$1 a }x ?@ %? z?M?$"X2%a@s(}{^<[}̈ιƋ/90!3'x+;m3; 3)1F;+x(Nڿ?FT&B?Fb{f,-JQ1;Ejv㓌 +ߌK$ؿLrZ\b03>P1Z;~+p•%ʲSpFZ>ppd-Tfs1u񶛄D𷱄K 瓌)h:GrKr߿?#4B31;;uSq~F7ސ?FF;Kf@9Brq 8CysZLs뿇* %L3 /1#;H4B`gHD: # h4>T]]9 MTMUFM&d2?F}{?P6  >M (< Pd_#x_tt_ ___(_<JuM` ?2FZnuJt -t!"J&b$=>tJU2Uj2?R=@MY3Ji6A@%2308b9R;6J[c3r27a? F ?A?9Bc3BfAfA5 2`?CopyrigT}t (c) W20@9 M@]c@os@fBRAr@Aaa0i@n. AUl@ HsBe@e@v@d@Q2_AcDZ3ę-c3rC 2rG FZ5 >\iViieU9 iVXW\r2'0j3 FZ!&D0 VZlJ`>UhLaLa ]Rd u 1A A1AW8Pa o|2U?F,%-@Nx[Jk#b?o--hi  6vZ2JAp?F}l^?F +ْ?F G&S- a),Ayx|S<ݻuz}קu#qSBa y= 30 4*?? ?"2a@/s<"t!r55TqE`ud ?F /wpc*uGs>{T#|f{}b*yZ>voigjJ*#;%7f2pU`uTK`j0rr?F);L^fFp/Xx1ѣ?V|%O4Tqde㼕?FHyt߲Xzΐ_3]ؘ#yԄT|qTS|t]<8l j m?@P3ɡեZ:+a{c3~|+2|}ZliL~|d($7! C]{-m;BP4~ΐKjgVhߩ~D8V-l|G2y)PlƳÿտa:dBl#ꃋ-@t32y ?c$p3~,xEr l|0?FS$^ΐWqp>hmN.Ey?'<(+t^+}m܀3}Tq(*wmnp:~qмZBT<i}~۸73q1&3–(Ko|>F}ѣ ?Fs?FUޒ[g$,y~vZ؆t=<}!uɡaѩYK&h0?FL#|ߘ 1D|\ ťa8 ?Fd\Ў!ݯ|? ﮉ2ɡbҨg7+?FBl;|qyS ~L](MB-eS?F@J9F:?FrIÅ hߏ¢h|@b$yoSk9r|hͦ |ɡe2oe1Br{a 53Q2HD: H h0>Th]]9 MIAUFd^V?F߫C?F>?F?_j|w?P6 8 >M $mJuM` /?`OO.u>Jt;  sxЕt=M4&ٕQ䣯+? G>yJU$"#?.& ?JbA@T"Z+bR\)Z&J#2N贁Nk.#@M# J&]/o/T"Z+'T"*B#BA1A15 `?Cop rigTt (c)x0]2`09x0Mp0]cn0osh0fv2Rg1rj01av0ih0n.x0 AUl0 n8s2e0en0v0d0@:1Y>4#-'M3 M7 .&%p0b5(9 DFX'dG_'0UB.&J!I$a dFxJlJ]Uhz_1!T!Պ(Z#FF-D}ؔ?cJ:Z 4qgjGQ RV"JmTtV,Щ=?FG с aW)O YPRSW:fOtG4Pi3GYA; l'z&@B!@C?F[,P4S *?j0[OeT?UƖaU5mTV.b9 Nj?FZp^9o`isoT0e(a~Th]]9 MIAUFHm?Fʋ?FqZzS̩?Fo_ w?P6 8 >M $mJuM` /?`OO.u>Jt;  zt/ Wٕᆝ?a%?uG>yJU$"#?.& ?JbA@T"Z+bR\)Z&J#2N贁Nk.#@M# J&]/o/T"Z+'T"*B#BA1A15 `?Cop rigTt (c)x0]2`09x0Mp0]cn0osh0fv2Rg1rj01av0ih0n.x0 AUl0 n8s2e0en0v0d0@:1Y>4#-'M3 M7 .&%p0b5(9 DFX'dG_'0UB.&J!I$a dFxJlJ]Uhz_1!T!(Z#Fb?d ?F94:,X,TGZ SY RV"JmTig/?F6o?FşY] `)O 1RSx 4S x$G4:74C͐GYA; ^^s¯&@B:~mTn%y2[9)A\(aU5UF O 2Wα?FG?8LolQ,i33((?l+dUl1"Canoo2m_;T#rA $sHD: H h0>Th]]9 MIAUFk"?Fwc?Fymh?F_!sw?P6 8>M $mJuM` /?`OO.u>Jt;  aMtl#/ו1`ng n}_GT>yJU"#?.& ~?JbA@uT"Z+b\)Z&J#2N贁Nk.#S@M#J&]/o/T"Z+'T"U*B#A1A15 `?Cop rigTt (c)x02`09x0Mp0c.n0osh0fv2g1rj01av0ih0n.x0 Al0 n8s2e0ejn0v0d0:1Y>4#-X'M3 M7.&%p0b59 DFX'dG/'0UB.&%!I$a dFxJ lJ]Uhz_1!T!(Z#FFút[?J:Z 4=iLGQ RSV"JmTVoEXNx A`?F&nƜ?FӪr#> `)O 4S }#GYkhkn/e~:KF4}3>YA; ΣW$@B4mT[PRSbU5U2{6E,?F72*ʶ'?FD;6o;^}p/l@i.fMdӟ2Z[lxg҇.atoo2m_UT#rA $sHD: # h4>T]]9 MTAUF\f?FQ)Xd?Fv?FZW?P6 `>$M (#<#lPJuM{` ?#{{20{F{ZujJtg  ntL_פ| 'RGU˲s>JU2zGz?@M[#|Jk&A@$7b#z #b(b)+&J[e#t"t"?'6 I?A$/%Be#115 "`?CopyrigTt (c)020090M0c0oKs0f21r01a0i0n.0 Al0 8sBe0e0v@d0S"{14\#-Xe#3 7'6\% ZLFiie1E9 FXG/'0UR'6-!B40 FJlJ7Q0hLG1ZAY(э6?FξRI0`fS?Ks`ZsLbRP\"JT6mPD2n ?FHOX\>F->wW Wa)H0YnǿlᜯVef[U>dxԷErlg u?VcQ$@aELeANS?FZ ͉?Fޓ{lʤm>wok&O8XWleBPmlfVArieoo.HLec=}pLwS?FXʍ`ˏvol``}; PaiEz|DF`ޣKH_SF:x~ALrA k#ڃjnw5}Oi{HD: # h4>T]]9 MTAUF8XV?Fp#enD?Fv?FZW?P6 `>$M (#<#lPJuM{` ?#{{20{F{ZujJtg  ґߝ t$wOפ| 'RGU˲s>JU2zGz?@M[#|Jk&A@$7b#z #!"b(b)+&J[e#t"t"?'6 I?A$/%Be#115 "`?CopyrigTt (c)020090M0c0oKs0f21r01a0i0n.0 Al0 8sBe0e0v@d0S"{14\#-Xe#3 7'6\% ZLFiie1E9 FXG/'0UR'6-!B40 FJlJ7Q0hLG1ZA!Y(э6?FξRI0`fS?Ks`?Zs$LL!bL\"JT6mPD2n ?FHOX\>F->wW Wa)H0YnǿlVef[U>d~xԷErlg uVcQ$@aELeANS?FZ ?F{lʤm>wok&O8XWleBPmlfVArieoo.HLec=}pLwS?FXʍ`ˏvol``}; PaiEz|DF`ޣKH_SF:x}~AL"rA k#ڃjnw5}Oi{UGDF P# h @T(PYYU UF~?M&Wd2P} (-. +0@ 0T0h0|Y03 - -3 --3--& &#:u` ? T,_'@@TUThh|U|UU&&K"&5&&0"u:)!z2<7q:U? ?; 4b0{[`+:B Fy3U"'ĉQ9" L A$6 K",G'@I@@q@E?DF@[r&BCkBuq@`-A0"Ruu8 @GC0$5Q;(?RK"U& d4; :)9u `u`["[b!;$wu`񉾑4?R5ػ3a171`Vis_PRXYcPm!#5``08``R`?CopyrF`gPt0(V`)02d`090MF`c:}`oH`ofbvary`aa`iw`n 0Al` }hsbeH`e}`v`dRh13d45!B=31ZrA66 24#30Ur?P].w,-^q^$P$sT<`o0mR`s`a>rv "saI8G28\vvk`2 hY,TYYRJ )eUF,,?F6_v?P fQ#"I#M !:#Q>NIU>bIY>vI]>I M ? I ? I ? I"+M?+Q#*"I*S%&S]V#f"+YV#z"V#"IaV#"IeV#"IAV#"IqV#" IV#"I S&2"IS&2IS&.2IS&B2I V#V2 I>2!>2IS&~2 IV#2+S&2"IS&2+S&2+V#2&?PI3 B&?I("C2B?IJCZB%&"9'a'77@I2I2GUG1uM` ?"I&6BDBXBlBBVVVVVV(V$(V8(VL(V`(/Vt(CV(WV(B,B,B,B,B,B};Āi 1a` Q|Ϳs2e8-ߕq`R~,y\1BTC\Zݼc6[?F[hsF߱~Q>qˁ&t ?FgMuN?Dv` ?,?6 EPU-?-+" Ԍ/UFz[aDv>tJ~M^3;0?gt{s4)/~Z!WJ=˧ب 5Z=fO/߱&////??{?q?;d?*V-?F`xM0P01W=͝4F??=ӎC !]=@/V54, OOS9qW@0kM9~0iZ <ȝ0*DT! SU7:w$ ]UZNOW~/mà' ]: e9T ,,? 6v?G@B1B$Gr65߱O__,_>_P_Fs[Q?F/e[p؟?M ?Sl ʟ_tfS$lߕ름Fx1cn)@aCo?20 6-Ԭ,65vٝJ w(-_q9KrUuw;y+OUF!R>7~n字/䉄5 _fL6&lLXqzݍMJ13LIo%]f Fz^(ʲS | u6)|LXX'} Ĥԭ67,M'5LmmFs]mrtoɊ!3EٿEݍv LSB@ d@}U00|Wdby#ANU 0 0 0 qH3ۓ] _WbB'P.>3]_A0hx%>Hލ?1;>s,}O+NڿW >gEn(F_>3 ]Q3}2bu$ˣSfQNFe'-$Sد|;~*YQoU(_HԪb~xBß;6H~ TEbݍ}nO*/<9n-@P,e'}eݴآm'viޞMTQދP?F/VJ$CճѵȌܷݍ1+OOĮY"ؑX:fDx~@Wt)L[~3x _AVW~IA]m_jݍX;AQq__s*~pm.@a)sI_8`}^ߔfЄ_j]~V^1P0oBoTzyE|N8^~{*ϳ}8CތҢ&s%X>F @4ύ?F*棕 L4?n~g&vn˹5so L~<@D~ew,[{ܿc=(SHǑo ,AU@y2ѝrͲs!?F N?F3?FcT(}03@ya?B᳠{j@1y8bvw ??a醼nMk?FCZώek/Ê?F@ٕ:?P(ܴ'B1/?{!K @-X;L_ @1aѶߘ>3C?FqFLc0/?Fd?<+v7D?6.zY Uco غ9JȆ߈ѿrTߣDqV\s"7G\DN,9FslD7Q-r|O╣'YQF{ F@) l$u(U)}}bQr)g|}1p1<G7t}bHA8sah77@y5?F]}H 0NXUVMFQ¡/.}=!8՞%د-+1pQ4ADF*.}K 0BoaKVWg>t}x=$GB=bvaA Q/R"i L1}/9/K/]')uw?F%ly?F*껩/ѵP﹈b@D>3bSSmlGAȔ|#h`*b5%F[ A-@zjaDi~b.x4dM?O+zOOu (?:?L?^?p??d??Fb2*.Q_ DCY?ˉFY] ) ~ zM?F!d]CZXjĞ82Dҥ4Y 0YLD|^,DYA_^F{aE`?`?Nd,/__b6mʝǧNAIY/////?r6FH?> _$s 1+/,5B/XM6#s"B N~??vLl⿤愈?[G=u?aK&d23L4CUG DF P# h @T(PYY#EψUFL&d2?|>?F~?]P} . B!D:J :^:rY: Au` ?"66JJ^^rrju# ^Jb"h,h'U ?L?4b {N[`:!#"&a#'b"^DQ)3 z$2l!L1$l" l"3'@>>ÿ@q05?B46 r&23c2ui0`҈-1Bu:@ l"3-A7Bl"F L$9u`u `m"[ bb!wu`)$"%أ#Q!'1`Vis_PRXYcPm!#5XP1XP02`?Co_pyr>PgPUt (NP) 2`PW09 M>PcuPo@Pof}RnQrTqPQa}PioPn] AlP uXUsRe@PeuPvP dB!#d$%b!(=#&#Rd&& "$B##0Ub#]&g,7^aNX@cTg@ daA+_ s11"hh22)t3*tBaaR+t"qqb(!pacb"!6u\%G!!["-@@Bq253T@b"q3L [ELP@[UL0]E5 s_$\&F3s͵NSYFue7A6P,@QjPUn725^}@$1p]]( sUQŅUQbN9P %BR&RpRQQcPFL]`NETWOFPK SHPP5 DROIR7IR5S!:0@ L*FrLr]@o"( qffs_PU 7ex}PcPn2l"! 0n<@5~b -"ER"^br36 Bm Ak Adzau"u22u3/BaQaQR5Q5Q"2b3 !!E|7l!!8ԲAP! !1; 8b,/$1JbKa'q'qne!b($pǕW ]-@$ SPaCPqA9P _Equ>PpRP!ePk`25Xq\` TsPxcP`DP!vR*`3^5b` Sb8C.SwXOQEdeyMPnfPc}PuRU`1%PRd$  N$m $`E I[!" PPe5R'`y 7sRU dCeEWAe C`eV^` SRiP@Q//` T;/M/"LoPcX/Ҭ///B lPiP+q/ ?/?R% RoPo_?Pm??NwRkx"adB`K?g IDPQdPS6O@HL7/nOnsICOHL8dhOPO#%AmV2irUQ ]Q 1O+_6 fH_Z_\G` fM#AtO_BO_OM@CO(oFNRCbogq%C2mQtBQW6oHL_Roof MHHiAאe2U w'0U W0 /ix4*є"%ݩ܅uuY>2 H4ֹhńЋńЋNńЋTńЋ>ńЇHD: %# h4>T]]9 M JUF/\r?F.U?F~?F_w?P6 AJuM` ?uJt  ;uAIt=WzIRUIl7O],#>2zGz?)@MJ߀A@ebM #zwb(b%)2+2&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$[w?b6 ?A$$4/U%-|# |'b6%?6iie<59 6X7'M0Ub6!}4K0 -FAJlJAI0h7!1!ZF9|$0f2 <ڒ#  OR|VJa9Z9P] PReS[RUE:dHܣM\]\ɱQ<5U oYaU526_HU"]rA #cHD: "# h4>T]]9 M JUF ?F"]?F|>?Fuvw?P6 ]AJuM` ?uJt  ].It=W`ĆW #JRbJlLXz#>2zGz?S@MJA@eb#z(b)R,+,&Jj!j!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v d c!Eg$[;?\6L ?A$./O%-v# v'\6?6iieP659 6X7'0UpB\6!w4%0 'F;JlJAC0h@7!1!ZF?Hܣ~0, <pB#\  IRvVJ:~?6VOS sgZ^TURUEUEBQG\ZYpBaիQ65UQ[fS.aYUb520_BU"rA #cHD: ## h4>T]]9 M JUFyE+?F0]я?F~?F@?d{w?P6 >JuM` ?uJt  vr It=WP|IRsUIlO.a#>2zG_z?=@MJAw@eb #zb( (2+T2&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$[}! K2?b6 &?A$ 4/U%-|# e|'b6 ?6iie<59 6X7y'0Ub6!}40 -FAJlJAI0h7!1!効ZFHܣۄ0Y <? 6ybi  OR|VJa9PY]PPReS[RUE:]|$M\Q`YdC4U<5U=VN_YQU526_HU"rA #cHD: $# h4>T]]9 M JUF ?FDL?F|>?F~w?P6  >JuM` ?uJt  ].It=W,t@ "JRb~l>t2UK?=@MJA@bJ + &Ji[J'?a& ?A)B !!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r 1uai n. _ Al90 (Us=2e0e vO0 d10!H$-,# 'a&K?6i@iek59 6X7'K0a&!|$K0 FJlJ8>UhAA !!ZF@?d3{  </.a#]M 1R^VJ:]ɜHܣ/_AZ2Ey#xUEUVS s#FT=RxUk5U؝Qˠ\BY3QX5*n?֬BoAZ7],XU[Bl|Q2_*U"rA >sHD: ## h4>T]]9 M qAUFA[?FFw:?FE12Oz_:w?P6 L[ >  (m$JuM{` ?Agg2DuVJtS  .!tw|3s,kIɸ _>JU2N贁/Nk?=@M3#JC&A@b#zw u#bR( (+&jJ=#%'?& ?A"b${$:3/*T'B=#115 `?CopyrigTt (c)020090M0c0os0f21r01a0i0n.0 Al@ 8sBe0e0v@d0+"|144#-=#3 7&4%"XOFiie2E9 ԆFXG|L"'0URi&!40 FJlJ" >UhiQiQD ]GQ N1DJc$LBhL!l%,W2[AN11(Z=#FC[RRTFQ ucR/Q Rf4"J:GdFX_!0wbfc L|c :D)$aER!Jj^opdiUjh2E~V! b# 2 ?߮.hOEu<ɛ?F#Pw|hؾ6|ެ^hu?F/Lw|iU6|^^e~?EYo< thQ[T`vg2w 0M6weQT`Dgwӏ u5XPo`Iϣ4oj7::eQT`Bvu*< f|hQT`r :{T_t Pa?F3SXk͖o?F vT?P);N 90 ,)Ri0m6uR. 6u`yyb !` /K!? -hO.?Ra @cB)r5%aQ K)XiyBG\h5b-Ob?Fԇ*sR6|FsaeQ Q~B?F)qqiQhAeQ9dϢqwiaeQe񯁜ai|hQEWXYWuwZl a++hf! l?FQD0)ˑ6|P?U/hL t9?Fz2)v<>KU6|*hQyո ?ghhWyh= A=}!eQW%|6^T?`NAA_owA j;[6te UI:vdv =KylI?ε~T_Ţr+a W  /~nIX(dur|?F 4?F?PَKK :d?Ltؤ?yl!?(!@[l Xj2GtaCpzm&褯 "4gyC?); 1ecDhe2GoYe%3rQ M3#k2HD: H ih ,>T  9 MJUF ?F~?F|>һP6 m >JuM` ^?5uJHbcFFmtulyt b#tI>2zGwz?@MJA@Wb)+& !Jg"~& E"\Ab)+'A,A/UB115 `?CopyrigTt (c)I020U09I0MA0c.?0os90fG281r;0t1aG0i90n.I0 Al0 ?8s2eg0ej?0v0d0ŤM3 b7~&XXt5i b9 `!X78G'0UB~&%0R 8FLJlJ8>UhAA( 1:9m EsBU[JHU؝Hܣˠ Xm] 3Ey%U3^֬_Z7]G,XHU)a[BUQHUF@?d{lQY?.aXQ,o`ɜQۤoZ 2QXUH_Z_l_~\_H8>t"s ûdGC, FPd(#)wfB s^+~d uo@+WoSsG1,t P05828)h4; 6??8FB RJ0UFD  h(^TYYBBUFL&d2?x<F BP(?P? 8$ B66ȅH?j|;? 5JB@?\.ϗsU!&;/ҍ  0RB`=Bridge,lo ica ,n tw rk sy t m t p"r pPy"i"s c n"cB i2%z e^| R(* G@& ߃l?"488Q ]frsww ww ~ww w!%} Iceqs^QZQDrag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aab|>~??[q㿦)j?&Iz?&d23L4CUG DF P# h @T(PYY#EUFL&d2?@F|>?@_~w?P} Y.  !:J :^:rYDu` ?~"66JJ^^rru# *^:"@,@'酅#U2N贁Nk?H]b{# ?#^4Wb {['`:!#"h69#':"UY^"Q)+3 62D!L1$D" D"&3ɜ'>>ÿ@kq05?460r&BCku2u{0`i-1$Bu@ D"3?AIBD" $$9u`u `"[ b:!𿻐u`$i"&){#)Q!'1`Vis_PRXYcPm!y 5jP1jPAB`?CopyrPPgPt (`P) 20P9 MPPcPoRPofRQrPQaPiPn AlP XsReRPeJPvPdB !r#(d$r%:!B={#&r#dd&& t"r$,7^aN.@.cT<*Po mPsPQ>g da +_c&1&1r"hh")ht3* ut2aaB+ti"aa bo(!`ac:"!6uM\%$G!![2?@@Bq%CT@ br"q3$ 35$6Ep05E5c_r$4&F3s͵N?SYFu eIAt,@)Q ySUn%6}61`]]o(c-U)Q)U)QNqKP % TR&RpRQQuP$]`NETWuOXPK SHPUP VRO!RI S1L0@T$J$r5GYkr"o(pa&&s_<*-pq o(A֨57IABKFkq`RPQsPPU exPuP2D"! 0<@Eb Z"E*"br&3BmACAfa^ur"ku"xu3/\Ԭ20 iBGQGQi"2 b3 !!E0|qq7D!C8ArRA!!A;Jb61\b]aaae!bo(q`軕1W c]?@ SPaCPaAKP EquPPpBdPePC8%XI[m` {TPuP`DBPvR83^xmz"` SQbBRdP5d=QMPnfPcPuRiEQ`]&1PRd Nm 8E !3o! PP_q eiGR'`Q sRU<&eФ/YAeC`Ue.^Ԓ` SRiP@Q8T/%/mLPcX_/҄///B }lPiPq/p/?o* RPo7?PEd?v?YNwRkP"a =Yko HiԿAhǖ꥔ Uはw'0Ur/lAx ;,u;uM1, صpH ֍@噄ѤѤ&Ѥ,ѤHD: %# h4>T]]9 M JUFX^?@ ׬?F~?@?P.6 AJuM` ?urJt  ]It=W_7],IRUIlw#>2zGzw?@MJAw@eb #zb](b%)2+2&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$Ɇ[?b6 &?A$4/U%-|# e|'b6 ?6iie<59 6X7{'0Ub6!}40 -FAJlJAI0h7!1!効Z@9|$0Y2 <ڒ#4  OR|VJa9Z9P]PReS[RUE:d_HܣM\]\ɱQ<5U oYaUb526_HU"rA #cHD: "# h4>T]]9 M CAUF|>?@:x??@V|+q?P6 8]AI]M ] (JuM` ?#SS2uBJt? tzEUQؕKJbtU]OK>JU2zGz;?@M#J&A@bS#zI G#a(+bo)|+|&UJ#!!5 `?CopyrigTt(c)20 9M c oKs f"!r 1a i n. Al70 (s;2e0e vM0d/0!EH$#[#""?06 ?Ag$I~/%-#,# '6%KO/Fi@ie59 /FXEG'0UBŬ6!40 wFJlJ]Uhz!hAg!(Z#F@H/DžB0J>| 8Ene&KQ4\ RV"JT~?@gf_?F)?@ $C?8S sBKYbFe>J^R,UFeTGK!Q? ӧ|+@B:TPܛ\YܨMJe5$!JP/.`*7 `3iK=Dn鷯hZbU5TQ`R?@[uo0lBqaRSgdd*lxrl{!Joo2_Uvg"rA f# =HD: ## h4>T]]9 M !AUFnx?@?d{?Fg݅?@@?P6 $&> JuM` ^?1?u.Jt+  Rqtes.aqzWWqI7>JU2zGz?=@MJA@b1#zt' %#b?()1 ?(Z+Z&UJ!!5 `?CopyrigTt (c) 20 9 M c. os f"!r !a i n. Al0 (s2e ej v+0d 0 !E$[! s2?6 I?AE$ \/}%b-# 'Y6? Fiied59 FjX#G'0UBX640 UF"iJlJAq0h7!1E!`Fmr?@Hӣ۬0$*fq`7$d 6yb7  R VJa9Q|TK ST1 QE:]|$0]Y_dC4a8^] 7sP@EU < KB?x_QYFf*ɴ%Ud,Z7"_+dK lV}?? g52^_pUE"rA kD#TsHD: $# h4>T]]9 M AUF|>?@~?P6 n# >] JuM` ??Su.Jt+L iteJ]zb>tJU2U?=@MJ?A@(b')4+4&J[vr'?& ?A/@)B!!5 `?Copy_rigTt(c)2U0'09M0c0os 0f2 1r 0F1ai 0n}. Ala0U 8se2e90e05vw0dY0! $-# ',&?6iie59 65X7/'0ʼn&-!$0 /FCJ)lJ<>Uh3 C ]1!ZF@@_?d{ J*4 $d?.a7^QiBQ ]RVJ:D]ɜHܣ[_mZ2Ey7UEfU$S sTrTiRU5U؝QX\nY3QX5Vn֬nomZ7],Xf8:`ϋ iؚ~Gc2anY_Wt T}զDTk 0Q: %C?J i3l}f*i&udWl˔alb+d ?ܲVXU2D_VU"rA k#-UHLuD" # ;3h , T  JEuUF'_?@~?F|>ếP VNM A #$Ae  >uA` ?KG `mm. RSu#\>b]XFOmrߞuZptY b7#t&>U2N贁Nk?@9 3#>C&A@q" u(b)e+&f" !It$>=##"4#K"& "{"b)&;'f",f"/N =#11;#`?CopyrigXt (c)020090M0c0oKs0f21r01a0i0n.0 Al @ 8sBe0e0vZ!@d@+"BM=#3 7&4"Ht1EiIfE 4%!X|FGG'0UB&h50 TFJl>(fUlI 8%#IA{!1(R!gG?@c\;0R dUeR ?!c e(T@|$?Fn-?@Z %_C?YsB\Ӌ$UX?uj3dR-=wnQAY ܲVX3 e^Fx*aqRS3jIBFm_[viH{goRJdo~b KYeTGQ# #s sFR-Dn?% FQsN# OwYB tSQ~dlvo@+HWoMsG#) R^ P~[8^bhfiPUFD # hVTYYzU?@ ?IF?h PaR"|ou]ofu2/uU ` C&nect&r` e-?{U H  ^   -}|5 p`I`V?}`xa833ސ]3σ3u 33?, ?Gxpx^& This coUnetrWaumtUcl#yrebtwe h *hp3is.HD # =h @>T(]]9 T 2AYUa? uP6 u]`u buA_ u  >3.TAuV ` lxMui"a)J@-?x;'6"wE- xo'6"y( _rq?o@I ?$m%? @horVA$"38*EL2-_br @P' Z6\11u .$n2y2^2n2u9ȑ#ULH/MM^1 # A D5 :0`Vis_SE.cTm!#20ED)`?Copy@0igTt; kc)j@DCU9j@M-@c@0o/@'ofhBYAr\@AUah@iZ@n7@ j@WAl@ `HsBUe/@e@0v@d7@N@B= #x  A G{?9#r22&0444 MG4'ALB5?_$k&(SZ6Y8# #2"qlSF,C`l>lUhr5 QA+/J *&%(og5k#p f3e'r#TA(11MJEsooR6'2Y7E5S3Wc7r516Ũ_aJ2_quU\DQ>0]b;)`R@As-@E T@xh@DiA eJi=S]UBTJg'0SV!@LA,SrWg 1Cy$A$AMJ6!Hp,@R/TAEb?RQP? _H>Ff"s O`E )F(SWo#*p7BaqeHdo@P+Xu"sUFD  h(^TYYBBUF\.ߗ?x<F BP(?hP?X8 ]B66 TbH?~? ?B@L&dW2?Y (sU/!-&PO/v:  0eIB`Modemw,n tw rk p rui h"al !v c !^| f(U GT&( F?_""U*++'?MwpwtwpwDwwp tGwww G@wwDGwD@w p@wyww[wp|`npXDrag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aabi4FѿL&d2?j?oҿ=t??\.r3r\.CUG DF P# h @T(PYY#EUF\.?@i4F?@M&d2ɻ?P} č,.B ! :J :^:rYD 7 7l7u` ?"66JJ^^rr)u#",'񤔅qU ??4^b,0{][`:#A82A6#'%Q)U" ^/LV1$  d7'>>ÿ@qZ05?46F0r.B4CZ2u0`-V1ZRBu@ 3mAwB h$9u`u `"[bz!u`R$"% #WQ 1 71`Vis_PRXYcPm!#5P4o67>B`?CopWyr~PgPt"0u(P)"020PU9"0M~PcPoP'ofRQrPQUaPiPn "0WAl` Xs bUePePv`dR 1#d$%!*(=#6#@d66 2$B##0Ub3]fg,7^q+^\@V\cTg Pda+_Msd1d1"hhr2)$t3*tR+tHR@ q q"@q@qTb(!PpaFc"+m6u\%RG81>1[B2m@@Rr5.CT@Fb"31 UFHUM5Ms_$&ׄF3s͵NSYF)UW0TewA,@WQ S+epwr5}1PpP"(A2yT?+>BB).B4KCFq`R`Qs\~PU T`xPP2 0<#@4Eb_ &2CE"brd3vRrӟ(Mff.F_<1-mTwNcPpu"ur2u3/R0HRuQ$uQ"2Tb3 &1&1E|FF0RQ(dPpWQ,[[ ]m@0` USPaPePl\rsQAyP E u ~PpPePr5X 1V` ?TPEѣPH` D`vR3𯴊ߜb` SabߣPLB PMBPd`rUdKMPnafPcPubHU\nHUQi{]d1;PRd Nm.0Š)U,03!8 PPr0BQhHpcu]uR`sRUѠeANe>`pe^bt1R; SbiPa¢&T18LPcX!mFTXjB?l'`iPkqo&0Z38RPoO,d/?c dDψ(ȱȱ"(Ms3) &&&WUՁ:p/` %R&RE"ibȱ`NEWOPKPSUH`PV0 ROj2URIV0S$AQxR7 i q'U,ygm5xbb7'dũfɵR3D-҃aa8')uyqarL?aTe5x`H7vAտD?aKDKDaKЅDKDK7eDAKTeDJHD: # h4>T]]9 M JU@i4F?@??@hĻ?P6 ܠAJuM` ?juJt At=W ףp= #JRbJlQO#>2zGz?)@MJ߀A@ebM#z\(b),+),&J[(.w?& ?A$T./O%B!!5 g`?CopyrigTtZ(c)Z2009ZM 0c. 0os0f21r0>1a0i0n.Z AlY0 8s]2e10ej 0vo0dQ0@!$b-# 'Y&?6iie59 6X7'0UpBŴ&!$0 D'F;JlJAh h7!h1!YZ@x f, <#  IRvVJ:ǿxT]]9 M JU@"&d2?@ `?@BP(ĺP6 ]AJuM` ?ju#t  m۶mIt=WwIR$I$+IIl#>2zGz?@M|JA@e7b #zb(b%)2+2&J[/.?& I?A$4/U%B!!5 g`?CopyrigTt (c)020%090M0c0oKs 0f21r 0D1a0i 0n.0 Al_0 8sc2e70e0vu0dW0!$-X# '&?6iie59 6X7/'0UvBŇ&-!$0 -FAJUlJ8>UhAA 1h1!T12 $<cV5{ WR~VJd2L&?@bX,Ʃ ]S fR#mS ?ZZQ4E^0__ %zzX5:U XYePY؉X5aZjoohY}aUVeEVŠRldQY)+R+X2>_;"rA 5#dsHD: # h4>T]]9 M JU@xmJuM` ?uJt  Am۶mIt=WHzGIR]Il#>2nz?3@MJAw@eb #zb( (2+T2&J[ (p"?0& ?A$ 4/U%BB!!5 g`?CopyrigTt (c])020%090uM0c0os 0If21r 0D1a0i 0n.0 WAl_0 8sc2Ue70e0vu0dW0!$-# '&?6iieP59 6X73'0UvBŇ&!$0 -FAJlJ8>Uh@ 11!Z@?t:Né  <qqh#B] WRVJ.@ ?@L&d© ]S )Q#hY8?Kh/QE^ `__ ^BX5a9XYePXRmScRU5:]md2L&U\ahY*PX\eEVV_iaU2>_PU"rA #dsHD: # h4>T]]9 M JU@i4F?@M&ɯd2?tP6  >JuM` ?uJt ASt=WJRb~li>t2U?=@MJA@b + &J[N#?0a& ?AT)B!!5 g`?CopyrigTtZ(c)Z20 9ZM c. os f"!r 1ai n.Z Al90 (s=2e0ej vO0d10@!$b-# 'Ya&?6iiek59 6jX7^'0a&Z!|$0 FJlJ UhqMAA ]A !4Ja-'Z@?fl6˃  <HzGh#BA OR|VJ:6]t:ϝNM__Z(\#UEL@ _?@Lƒ S AA#`YQ(\Xk5^ s`o!o ̌aX5UxT9 M3JU@i4F?@M&d2?ҷP6 m >JuM` ^?5ulbSD_Jt bstE>2zGz;?@MJA@u+b+&K !JS"j& 1"A.b+-,-/*B!!5 `?CopyrwigTt `wc)5020A0950M-0c+0o%s%0f32$1r'0`1ua30i%0n.50_ Al{0 +8Us2eS0e+0v0ds0ib =L!XY'0U Bj&%0 :lJ Uh*M[A[A 9A 1:xTh]]9 M JU@w[2?@2?@?뇤?@bf?P6  n>JuM{` ?5 uJt  hxvEt9SYEN^Ӟ~ӞEh!D#<>>2N_Nk?<@MJA@cb]b)++&J"< u) ?AHb$z@J+%/F%B!!5 c`?CopyrigTt (c)302`0930M+0c)0oKs#0f12"1r%0^1a10i#0n.30 Aly0 )8s}2eQ0e)0v0dq0!(Y$-3 7x&+0b59 6X7G'K0UhBx&!$Ia F3JlJ]Uhz11Z@`Y3   8gF/_ M ARnVJ!49BYOPBRWSMRUE:]R.?\QRYl>Q5U/V@_YQĈU2(_:UrA cHD: H h0>Th]]9 M JU@p8?@d2L&?@αB?@.?P6  n>JuM{` ?5 uJt  YEt9SRQEN߆$1Eh'>2N贁NKk?<@MJA@cbb)++&J[ < u)| ?$%/F%BB!!5 c`?CopyrigTt (cu) 02`09 0uM0c0os If2!r 51a0i n. 0 WAlP0 8sT2Ue(0e0vf0dH0!Y$Ť-['# 'x&0b59 6X|['7'0U?B)x&!$aI 6 JlJ]Uhz!^!Z@mN/?  8gF_  REVJ49Y&PR.S$R_UE:p]"`3  \Q)Yl?>cQ5oUV_YQ_Ub2OUrAg wcHD: H h0>Th]]9 M JU@&6?@0ސ?@?뇤?@bf?P6 n>JuM{` ?5 uJt  lUUEt9S;EN^Ӟ~ӞEh!D#<>>2N_Nk?<@MJA@cb]b)++&J~"< u) Y?AHb$z@+%/F%*B!!5 c`?CopyrigTt _(c)302`W0930M+0c)0os#0f12"1r%0^1a10i#0n}.30 Aly0U )8s}2eQ0e)05v0dq0!PY$-,3 7x&+0b59 6X7G'0UhBx&!$a F3JlJ]Uhz1h1Z@`Yg   8gF__  ARnVBJ49BYOPBRWSMRUE:]?R.?\QRYl>Q5U/V@_YQU2(_:UrA c_H>vQ+s #X8L(r FUߤvf## x!B-|+y~|dlxo@+蠖oLsGhoomP d*ߎUHTx7 z*^_Q$OUFD  h,^TYYBBUF\.?x<F BP(c?Ps?m. 9c:M:O @z0 BH ?? V@L&dW2?F-W(Yi(G.sU!&P/)7(:  0 `WB`&Ring\network ?p$0rr0pPE1al\d$0v0c$0 c1^ (J YG& r+?!) +)!q q ǿ~~|p~~ṗ ~p~;ކ~pp2AAqDrag onut he]pe,nUdu /p64lies9Lt]wrkcQm tOfTly lGo_"imdO.b\.L&d2??;IOғEMQS?=?mar3r\.CUG D  # h T,YYEUF\.?@?FL&d2?P} ϛ% ^.&N+O+.Q+R+S+T+\+]+^+_+`+a+b+c+d*+e+f+g+Q.i+j+k+l+m+n+o+p+q+r+s+t+u+v+w+x+y+z+{+|+}+~++++++++++++++++++*++++73636 3 l_Fu{` ? &CG/B>CBHCBRCB\CBfCBpCBzCBCBCBCBCBCBCBCBCBCBCBCBCBCB"CB"CB"CB$"CB."CB8"CBB"CBL"CBV"CB`"CBj"CBt"CB~"CB"CB"CB"CB"CB"CB"CB"CB"CB"CB"CB"CB"CB2CB 2CB2CB2CB(2CB22CB<2CBF2CBP2CBZ2CBd2CBn2CBx2CB2CB2CB2CB2CB2CB2T6g666U66FFMBuIUHrN|Nw1r L@Gs5 ^CB0  $sV!v q)?@4v!p`:!@ K*RGs Br(1=s0s)) %Rt؉sq1`V sPeXY)cPm!#52862F1`?UCA p r gPt3()32U0Z93M c_ Eoi oM=rK yas iA n) J3A# l3EsUei e_ vd)21wrޟҀs?@A3{d|R$Bƕ~u +@@âɸ!BMBj8}rup`i-qBu *@rw1s!8=}/B 2t@I9u`un`"p2] HqDou`t1E[B2TU뱥)8s5ä  r}vh^T`%AT<7 o3mss >XxĀu7T=n7 eMTNtT yk3Dvd{uu ƃ@Rdư5ߙ߫ƕ9'9h\nE|1CU t@ʴ#FXjHqʶq-?bt[Ű//A:/L/^/~///A///p?!?3?ʼqV?h?z????z?? O@ɯ+O=OOOoOOO9OOO =t__'_!D_V_h_ͪ___#___$o+o=oB%`oroo&ooo'o!(5GY)|*+ .HTfx{şÏƹ/&8J!0m1Ɵ؟2 3BTf͐B_5Я6);7^p ̿_9:3EW;zόϞ(Oas?ߨߺDqm4# 1T 5h86%8llc౓#"AAш]]Ѥ C){q{qpqq22EyyNNaѕѨHr/d~CU|@c` MaЧufu e nA` EqipeBtm/h~4qP o|uNmb /b XQ Pr6HZ/{+ srt_q/\A6s6!P/^za Sil/T1 LcAHR\fpz$.8BLV`jt~""0":"D"N"X"b"|"v""""""""""""""" "" "*"4">"H"R"\"f"p"z"""""""""""""""""$"."8"B"L"V"`"j"t"~""AaXT@b FTP%జJKTltφT0ƐĮbPQwr SS#TS”GLF2DFbXO%—ȩP_(_:_S…LF?Hd}OƁLQ____KFLpXO( B}KoЁ?_T_o(ooS L FY2ణ3oaoЁ !eo}cGYkS L Fft]eҼ–B" E L FsxLfO͏ߏ*H L F l_go}<*A]LF џrmБ Є!7I[EʟLF `0 毯ʯ_&tEULF OT~N򤢿ƿTؿFLF O!H$6 Hϱa6ϗ*FLF ?ZبP6HZߙBLFR5xqy?o%L%9F//"q8?onT&L&9F?ᏼJ`_-?*e'L'r?UO{O$(L(roy:uoڟ) L)r!_@4 oj|*L*r"oݿF\);a+L+r#xQwχP ,L,r$|[6qȟϨ߹-L-r%Ϗ0 fTx.L.r&BX%7*] /L/r'7Msߙ0 0r(3 W2m1  1r)˿@,bt-2 2r*>T!/3/Y=3 3r+p/Iߔ/o!/P//M4 4r,tS?.1i?/??M5 5r-O1(O/^OpO]6 6r;Q?\AO:OP_/_*Um7 7r//?E_Q_{?__}8 8r0+oOo*aeo/_oo}9  9r1oa@$ _Zl: :v2/q6LO+Q; ;v3hA?gwoP?؏<  >v6~_ɯ߯2H'*M? ?v7'=ocsoԿ @ @v8#oGπ"]ϴ¿ϥA  Av9ϻ@RdߊB Bv:zߠߠ.D#IC Cv;`9_oP D Dvv*@  E-GV,Gv !7-[k=HLB,N5>LB_r:?C&2F3s͵NSYQFEB,N>HdDq7ME5qD68W#"U%&EfW@@cX @ S1` Token?_RiP1nD?[Q?##qh1ab /X##zQ?AzQgVD6e]r##"` %P&rPpPrtPe+sA D2`A!_`NTMPUOPKfPS A``UEfPPPObR`5ISi0QAqD_!_\X\OT.U_C0?ni4oo\XXOSw'K0Ur%V!0^ v2Zei1DAT\1sEPuQ1MEX OS%HVl2UxAUx1'ExAMEx HCDrDC  @   !"#$%&'()*+,-./0123456789:;<=>?*>ABhiATiiJ\ 3U@\.?FL&d2?JP}@YIYqX"u`W?"&&5&,"u6)~}bE@{#&t03! 7("tm!,v&b$&"qK!Y$30^?2-,"l-2""2!l"6 #",$=F#"f$6)![0$%J[LD0D=F?|" (&3AA1A1 ;m`"`?CopyrigPt(c 09M-Pc+Pos%Pf3R$Qr'P`Qa3Pi%Pn Al{P +XsRe*SPe+PvPd"!ZOAy 7$^ ?P?b?[!H${eQnB? ???O %O.O@@OROdOvO6CkaOROOOO_ %!_3_E_W_i_{_Vx<kb_b____ o %&o8oJo\onooy_ocoroooo %_.@@Rdvwd %0BTfxyheҏ %5GYk}~/mfĢן  % =Oas~_?gůɲܯ $ %?Q@cuOwhʿ) %RGYk}ϏϜ_i . %I[mߑߣoj!3 %N`r k &8 %Sew+= %Xj|)m 0BU]o9n"/#/5/G/Ub/t/////Io/2? ?(?:?L?Ug?y?@????ϟYp?B OO-O?OQOeGQoOOOOO?ߧfqOR_ _2_D_V_"u!q______yr_ro%o7oIo[o'"voooooos *<N`,#{@yt /ASe1ˏݏu "4FXj6%͟ߟ/yv'9K]o;&ү?yw, >Pbt@'@ſ׿Oyxπ1CUgyE(Ϧϸ_yy#6HZl~J)߽߫oyz$(;M_qO*y{)-@ RdvT+@y|.2EWi{Y%,y}37"J\n^5-/y~8/<2O/a/s///cE.///// ?y=?ABT? f?x???hU/??@???OyBOFRYOkO}OOOme0OOOO__yG_Kb^_p____ru1____ oo yLoPrcouoooow2oooo QUh z|3@%VZm4Џ*/[_r5՟ /? Ɇ`dw6گ"4#Oهei| Ŀ7߿@'9(_jπnҁϓϥϷϕ8,>-o',sߘߪ߼9 1C2! F1 xR'9K:)6} ;@);M<+)~%< .@RA09"5=/!/3/E/W/F5I/2/////E>??&?8?J?\?K:Y?B? ????U?OO@+O=OOOaOP?iOROOOOOeQ_!_3_E_W_dOXGv_b_____uAo#o5oGoYokoZIoroooooDžB(:L^p_NɁHD: H h <>T$]]9 MT kAU@\.?FL&d2=??F?P6 LA P>  + 4DJuM` ?"?o`0?oNu^Jt[ tgJbg>6#J?#,b/ @TZT"Z""P& T/@n_^B% 'N< ?m6 ?AeJa@ۢR4` Ac0entCol0r3z۝0Aٝ0bbbz90“2???9Nbb?1"bAYFbeDG?#E![C39 , B6"hLJ?#QE!TG; J`A`?Apy$@igTt(@)20mP9MYPc$@os@f_RArSP#Aa@i@n. AR @lXWsRePe$@v0dP@ᾡ`1O_o?#2TUam3 FD5#]BrFlL]BrF 0PuGiAbE9 6%yXGg'0bUm6!40 fjlJ qUhhUGHQA3(Z\*{ ٠0"#")b5DrD6"J Az~%"#"BA}/t?PSQ< E!?yET#-#tgaD[#,E:g@qVE`0w>]BrA \Cď'$$+HD  hj @>TA(]]9 M  eAU@\.?FL&d2+?]P6 LA > M /8HJuM` ^? C s4CLsRubJ1t_ tuJb$">JU5 JI4#=#/ @X^X"^"B"6 X/r cb!Bh@,G-v31k!k!5 J``?CopyrigTt(c)2009M0c.0os0f21r0Aa0i0n. Al3@ 8s7Be @e0vI@d+@0tv3?c- =< ?F ?AeJa[_Rf14W` A0cI@n0j1lB3z_ՁA_AbbbzY_)mEZf1T  9 MSAU@\.?Fr??F~q?P6 B >%M a*JuM` ? %U U4:uDJ@bEF&d2ɿuBltA bJt EIM>JoU2TU!?#S@M #~A@@"WbH)U+U&mJ !?v(GtI#J#"# %"& "A@"bH);E'|"/-<*B#h1h15 "`?CopyrigTt(wc)2009M0c0o%s0f21r01ua0i0n._ Al0 8Us2e0e0v0d0"MX#t3 t7&"tt Ei b@9 %!X GގG'0"UX&-50 FʢJlJAUhh)Q)Q!#A@! (:#`RB: 3R$JTV  h1?[_R: @AABUVeLٮ\2maXUe.o_jLo^m2aroo__7\HD H# h4>T]]9 MT CAU@\.?F??F~߻?P6 8M >M (JuM` ?#0SS2uBJt? tTKJWbK>[JU#?,& ?AA@R"bZ$J#B!!5 `?CopyrigT}t(c)W20 9M ]c os f"R!r !a i n. AUl0 (s2e e v0d !$#bB-## ',&%en#2TU1?"@M#R"g&a,R"g&j'\?6iieE9 6XG"7'02U,&-!G$0 NFbJqlJAUhh7!lR!(Q:#N J>83R JWTfV  !?qY_R8>qRl?38VUVL?&d2n\] aٔXEUoe6._x_j omQ2oDo5V_h_o\056 b_HR>+s 1ǡY-MSMלC FHVZ#Cܞ!B hd|@+MsG8oՁPwgF:p uЇ7xsUFD  h ^TYY>UFD"H$'@F @FxT]]9 #4AUFD"H$@F@ @&@F?x0>Uhhn1n1`!#!J`F6 [>A{ (FMBa!? OABE3RNkO}OGBERE6 O?OBE2?;.1rA _0rRxS`3HD: ##=h0>Th]]9 (3q #UFGJg:#@F@ @FWtyz@F.???Pv> u{` ?u3>(.t  ( y?_A@HNpΈ_-t#`aU"p [`JڍU5 ILҹc0U~ "?AG}cTLIb` LineCoklK rzc+"1&Z/#nFFF"?&?#+"1&&` STadK wI/#/N+$;# FC lM 72zS&eacۢR4` uA cG nt)?@#cb3zs94#+$3$I!8<>3 Q3#8.f.30FP=4B/G3B11G;;#?1pyQ i}gTt ( u)@2`09@uMC cQ osK IfB1r@P!a`0iK n.@ UA%2 HsBe@eQ vG d@0 l>]UhzЍA3+!`J!VQAU__T3^_odgU5^No_roU __ooj'EAb59 M{7/v!3rQav44CK7%iOHBTg7D'$~vv I+"688e @ Q:(3O@v5?=+$cz,Z#b~-(T{ HD: ##=h0>Th]]9 3#UF u` ?6u3`b>"6(t  <,?A@U"p [ZBH|гYYt [ՄJU5 CLT0U"?AG}eC]` LineColZI rz۷!#nF;FF{#?&?#),)"/&&` STaKdI wG/#/ZL+$9# FA lK r72Q&a` ?RR) 3#B2((236727kpvB1o31P17;9#?L1wpyO igTt (cu)J@2`09J@uMA cO osM0IfHBL1r<@N!aH@iM0n.J@ UA#2 @HsBeh@eO vE d@0 l>]Uhz1A3)!BJ@o39DYX3UD_d_vY3^__gzUf53^_V_ozU3__H\o_j5bPf59 M{o7l/5v!3HraPv4!$ 5v|mai6oozo7]'$t~kvPv v8%TE xH@L?c8 eaD@eJ@ l@Qo:0@3 9r)']z,Z#(T5-sTAcL@0P@HD: ##=h4>T]]9 P3#UFpo@F@ @F18Q[ @F.q??P> u` ?u3 >,2t  eX?A@LR[ A\c2t#`e"p [NdJU5 MLc0U "?AG}gLMb` LineColO rz$g/"5&0mddd#nFF;F"?&L?#/"5&&` STa%dO wM/#/R+-$?# FG lQ 72W&eagRa` uA cK nt 85W%#gbd3zRw98#/$h(Ph9BB3 (C#8>239FA=B8G3APAG;?#? 1wpyU igT_t ( )@W20@9@MG ]cU osO fBR 1r@T!ad0iO wn.@ A)2U HsBe@eU EvK d@@l> 0>UhhCA3/!J!VCQU__T3^oomgU5^Wo_{oUE_oo%obTG t>Q e jXHle59 M{7/v!3rX/Qz#=!$K 7%inug7D/'2 #vtx J/":UGDF P# h>,/T6D # UFD"H$@]F@&u@P} jih,D@Su`} ?.U@Nu#hQgtSftܸtRtA@3db#t%T/M/"j/+.d#%@?/"t`Make B 0c"0ground#3%~ؒ314+1`VIS_PRXY0CHM!#60z070"w`?C40py20]i00ht&0(,0u)&02009&0UM0c22s40f2R1r0Aa0i40un0 &0Al:@U 8s>Be@e20%v$0d2"e (^q5 J% 3hHA%DK%D,K3DGg $aI_9SFTv4y13TU-T[Te ZTATU J8>wSa%F1Q01$DtybgURwSi@^UR-n,?oUR1j?RRTuKrQi? eb #! >baes?,3QRoX0cD&q1cQ(QR=wS1VZi#3 D40N40UtBn0a0n`Eq#?_^9jYazPtt"(wS117eU5`>Xcy1`I!&` H0d$2&F40qUAw0޸q` SPo]wRR+="v6 ~!R)RRLf] Th 'Q0d_HV> ל ߪJAC BFWt#h<;B} ~w]@ekyo+^CC{]KaX]m*<N`r|3 y@HG8w$UFD  h ^TYYUFD"H$'@F @FxT h]]9 # AUFD"H$@Fcѿ?&@F5 L?sFC?P6 u` ?iu#t A@t   q?7Q.7)CWb7]ARMJqmdddpnFFF? ?Agam9T6` Fil> wCo> orz9b2j9A9obdk#zY)א9S|uX9/K&` /2L%!X!#\#w&` STWadD w/" /;)#82#b5"oU y3#B&(23"I&3cg30U2?AGQ}9L"|w` L ne%?(75N582M:Bhj<:AgCy1y17;C?C!pyJ i! htj(0)j2`09jM cJ osD fBC!r@I!a@iD n.j A" HsRe@eJ v#@dPw0l>]UhzAh#j181Ja`gCVQ'  2 bM[8A_^#e33nLo^og#eE3eVo_o#e!_>82rRA w082YsASi6bE9 MzgG]'4Ō;J!$a vvET#@x@&OnAHD # =hj0>T h]]9 # AUFD"H$@F@ ?&@Fq)?sFC?P6 u` ?iu#t A@t  ^)?7.7C_(\T[>JS/qnFFFa? ?Aga9T6` Fil* Con* orz9_b9A9bW#zE)9S|u%/7&k` /28%ߵ!D!o##&` STaUd0 w/"/+oUz G3#B&( 3"&3iE530U2?AG}x "|` L n e?#2Bh8<:*ACG1G1O7;3?/!py6 i htj(c)j2`09jM c6 os0 fB/!ru@5!a@i0 n.j A" yHsBe@e6 v0d@E0l>]UhzjADJ`XC66Q'  2RM)8@ mT}_^U3^_oagUEUtVKo_ooUp!p_>[QrA E0r sC)84Aeio6AbE9 MzG'4Z;!$Da Wvkv5T0x@?AHD # =hj0>T h]]9 # AUFD"H$@Fɻ1V?&@F&7 ?sFC?P6 u` ?iu#t A@t  Biq?7.7C!_lV}T[>JS/qnFFF? ?ga9T6` Fil* Co* orz}9b 9A9bW#zE)k9S|u%/7&` /28%!ߵ!D!o##w&` STWad0 w/"/+oU QG3#B&(3"&3E530U2?AG}u "|` L 'ne?#2BhP8<:A2CBG1G1O7;3]?/!py6 i htj(cu)j2`09juM c6 os0 IfB/!ru@5!a@i0 n.j UA" yHsBe@e6 v0d@E0 l>]UhzXjADJ`C66Q' C 2RM)8A@mT}_^U3^_oagUEUtVKo_ooU!p_>[QrRA E0r sCio6bE9 MzG]'4Z;J!$a T h]]9 #  AUFR_!@F;(kY?F̅$@F_fw?P6 u` ?u#t  \ Ac?oA@'t3(?.Zd;O?M&S?- >JS/qnFFF? ?{gaCۢT6` Fil4 Co4 orz۾Cb CACbۖa#zO)5CSu//A&` /2B%ߐ!N!y##&` STad: w/"H/+oU (Q3#B&(23"&3E?30U2?AG}u "` L 'ne?-2BhB<:A!CQ1Q1Y7;3?9!py@ i ht (c)@2`09@M c@ oKs: fB9!r@?!a@i: n.@ A" HsBe@e@ v0dH@O0l>]UhztA#B1J`!C660Q'  2RM38@wT_^U3^ookgUEU~VUo_yoU!z_>eQrA O0 rsCiy6bE9 Mz!G'R4d;! $a FvZv5T0x@?(AHD # =hj0>T h]]9 #  AUFR_!@F6??F̅$@F_q)w?P6 u` ?u#t  \ Ac?oA@'t3^)?.Zd;O?Mɯ??- >JS/qnFFF? ?AgލaCT6` Fwil4 Co4 orzCbCACbva#zO)CSu//A&`5 /2B%߿!N!y##&` STad*: w/"/+RoU= Q3# B&(!23"&3iE?30U2?AG}x "` L n e?-2BhB<:*A!CQ1Q1Y7;3?9!py@ i ht (c)@2`09@M c@ os: fB9!r@?!a@i: n.@ A" HsBe*@e@ v0d@O0l>]Uhz`tA#B1ŊJ`!C66"Q '  2RM38@wT_^U3^ookgUEU~VUo_yoU!z_>eQrA rs:Ciy6bE9 Mz!G'4Ŕd;! $a (FvZv5T0x@?(AHD # =hj0>T h]]9 #  AUF^!@Fp>?FKg@FmЁ??P6 u` 7?u#t  ?߀A@'t3;On?.Dioׅ?M@_߾?[ >JUonFFF? ?ob"ozCC]b,#&` STad_owCP lP -rz=&G/Y+[ ##e.2"#&3iE0U2?AG}x "` Li'nez/"Bh,:A!!';:3?I1py\ igTt (c)02`090MB0c\ oKsv f2I1r0[!a0iv n J0AX l07s"BUe0e\ vF0d""l>]Uhz1#!2!ŊJ`%6%6"A2  "RM(@DON(U38^Q_c_W(UE8UF_O_(U2O;2"rA 2#^cFCi%bE9 Mzl7]'4+J! $a ff95TF0x0I?s1HD # =hj0>T h]]9 #  AUF+ $@FmЁ?Fh_IŒ??P6 mu` o?u#t  $C?A@'t3;On?.N@?M? >RJUonFFF? ~?{b"zCCb,#&` STadowCjP lP rz=&G/Y+[ (##."#I&3E0U2?AG}""` LiOnez/"BPh,:A !!';u:3?I1py\ igTt _(c)02`W090MB0c\ osv f2I1rT0[!a0iv n 0AX l07s"Be0e\ vF0d$""l>]Uhz@1#!2!J`%6%6EdA  ("RM(@DON(U38^Q_c_W(UE8UF _O_(U2O;2"rA 2#^c%FCi%bE9 Mzl7'4Ŕ+! $a (ff95TF0x0I?s1HD # =hj0>T h]]9 #  AUFP0&@F'ǖ~rl?FMO?Fq_Ww?P6 u` ?u#t  ~jtx?oA@'t3ʡE?.Cl]M/$A >JUffnFF;F? ?b$zCuCb,#&` STadowCP lP rz=&HG/Y+[z ##."#&3E0U2?AG} "` Linez/"Bh,:A!!';:3?I1py\ igTt (c)02`090MB0c.\ osv f2I1r0[!a0iv n* 0AX l07Us"Be0e\ vF0Id""l>]Uhz1#!2!J`%6%6A  P"RM(@DON(U38^Q_c_W(UE8U@F_O_(U2O,;2"rA 2#J^cFCi%bPE9 Mzl7w'4)+! $aQ ff95TF0x0I?s1HD # =hj0>T h]]9 # AUF€#%@FL&d2?FM_O?ݐ?P6 mu` o?u#t  ~jth?A@t b@(.eX'?(MA>RJUffnFFF? ?b$zCCb&#&` STadowCJ lJ rz7&A/S+I[ # #.2"#&3E0U2?AG} "` Linet/"Bh,T:AB!!';43?C1pyV igTt(cu)2`09uM<0cV osp If2C1r0U!a0Uip n AR l7sBe0eJV v@0d""l>]Uhz1#!,!J`X66DA  " RMB(@DON"U32^K_]_W"UE2UF_O_"Ub2O;,"rAQ ,#Xc@Ci%bE9 Mzf7K'4Ž+!$a ff35T@0x0C?m1HD # =hj0>T h]]9 #  AUFb%@F'ǖ~rl?F2wa?Fq_W}w?P6 u` ?u#t  _LU?oA@'t3ʡE?.j+]M/$A>JUffnFF;F? ?b$zCCb,#&` STadowCjP lP rz=&G/Y+[ (##.2">"#&3E0U2?AG} "` Linez/"Bh,:A!!';:3?I1py\ igTt (c)02`090MB0c.\ osv f2I1r0[!a0iv n* 0AX l07Us"Be0e\ vF0Id""l>]Uhz1#!"J`%6%6EdA  ("RM(@DON(U38^Q_c_W(UE8UF _O_(U2O;#rA 2#^cFCi%bE9 Mzl7]'4+J! $a ff95TF0x0I?s1HD # =hj0>T h]]9 #  AUFu %@F'ǖ~rl?FMO?Fq_Ww?P6 u` ?u#t  ~jth?oA@'t3ʡE?.٬\m]M/S$AAJUnFF;F? ?b$zCuCb,#&` STadowCP lP rz=&HG/Y+[z ##. "#>3E0U2?AG} "` LiOnez/"BPh,:A !!';u:3?I1py\ igTt _(c)02`W090MB0c\ osv f2I1rT0[!a0iv n 0AX l07s"Be0e\ vF0d$""l>]Uhz@1#!2!J`%6%6EA#  R#R M(@DON(U38^Q_c_W(UE8UF_O_(U2O;2"ErA 2#^cFC i%bE9 Mzl7.'4+%! $a ff 95TF0x0I?s1HD # =hj0>T h]]9 #  AUF;%@F'ǖ~rl?FOr?Fq_Ww?P6 u` ?u#t  _vO~?oA@'t3ʡE?.]K=]M/$A>JUnFF;F? ?b$zCuCb,#&` STadowCP lP rz=&HG/Y+[z ##."#&3E0U2?AG} "` Linez/"Bh,:A!!';:3?I1py\ igTt (c)02`090MB0c.\ osv f2I1r0[!a0iv n* 0AX l07Us"Be0e\ vF0Id""l>]Uhz1#!2!J`%6%6A  P"RM(@DON(U38^Q_c_W(UE8U@F_O_(U2O,;2"rA 2#J^cFCi%bPE9 Mzl7w'4)+! $aQ ff95TF0x0I?s1HD # =hj0>T h]]9 #  AUF`9d[%@F?F{?Fߢ_-Jkw?P6 u` ?u#t  a2U0*C?oA@'t3 +?.ڊe]M~jtA>JUnFF;F? ?b$zCuCb,#&` STadowCP lP rz=&HG/Y+[z ##."#&3E0U2?AG} "` Linez/"Bh,:A!!';:3?I1py\ igTt (c)02`090MB0c.\ osv f2I1r0[!a0iv n* 0AX l07Us"Be0e\ vF0Id""l>]Uhz1#!2!J`%6%6A  P"RM(@DON(U38^Q_c_W(UE8U@F_O_(U2O,;2"rA 2#J^cFCi%bPE9 Mzl7w'4)+! $aQ ff95TF0x0I?s1HD: ##=h0>Th]]9 3$#UFt>!@Fp@FU^+m@F BP(??Pv> u{` ?u3>.6.t  ?A@RXqhki)t bk"p [SjJmU5 SLiT0U'"?AG}yFSb` LineColi rz!#nFFF#?&?#I,I"O&&` STadi wg/#/l+$Y# Fa lk &72q&` @?r)o 3#B..36=27.JM3117;Y#?l1pyo igTt (c)R@2`09R@Ma co osm0fPBl1rD@n!aP@im0n.R@ AC2 HHsBep@eo ve d@0l>]Uhz9Ah3I!J@35&5&hQ (;UL_q_T3^__gU5;^_^_oU;__do_j5b59 M{؏7/=v!3PrhaXv4!$A;7ai6oo74'&$|~svXv v_am A` Te xP@l>#mbzR#p8!e t@PQ:(3O'@f5ɔ?{I$m."z,Z#!b~-(T{<\B2>2 HD: ##=h0>Th]]9 3$#UFfG#@F BP(?FUiԄUV?P> u` ?iu3>W..t  x&1?A@RXʡE5i)t bk"p [TjJU5 [ SLT0U'"?AG}F^S` LineColi rz!#nFFF#?&?#I,I"O&&` STadi wg/#/l+$Y# %Fa lk &72q&'` @?r) 3#hR@BL..236=27$1311ԩ7;Y#?l1pyo igTt (c)j@]2`09j@Ma ]co osm0fhBRl1r\@n!ah@im0wn.j@ AC2U `HsBe@eo Eve d@0l>]UhzQA3I!J@X35&5&DQ(SUd__T3^__(gU5S^ov_6oUS__H|o_j5bP59 M{7l/Uv!3hrapv4!$ Uv}aiHz7]'&$Ŕ~vpv vX%Te xh@l?8 e'ad@ej@ @Q:1@3 9rI'm"z,Z#.T5-TAcl@0p@HD: ##=h4>T]]9 P3$#UFl6@Fp@Flf^J @F BP(q??P> u` ?u3 ]>2m2t  %䃞?A@V\m)t bo"p: [nՄJU5 WLT0U+"?AG}FWWb` LineCoklm rz醑!#nFFF#?0&?#M,M"S&&` S.Tadm wk/#i/p+$]# Fe lo *72u&` D?v)h9I!Bo? 3#eB223FA BGT2M3B117;]#?p1pys igTt(c])20@9uMe cs osq0IfBp1rw@r!a@iq0n. UAG2 {HsBe@es vi d@0)l>0>UhhClA3ZM!J@3,9&9&C"Q(nU__T3^__CgU5n^-o_QoUEn__o_(bTe ts0e j$Fje59 Mb{7/v!3rQv5!$;7aiPDV74'2B+#~vx _akq A` Ti x@p>#qb[zމV#qUGDF P# h4TPYY# %UFD"H$@F@&@P} j6   L 4 Hn[u` _?BU 4H9 u#p3lbtntQtRA%@> tS%tK/]'4( tTi%i/](/z.R&U@?/".g`Make BJ0cL0ground #d.#4#30U2)1_FB3!5~*؀3A$D;1`VIS_PRXY@0CHM!060<@78݉"`?C^0puy\0iZ0htP0(V0)P02b@0U9P0M@c\2s^0IfBvAry@Aa@i^0n@0 P0AUl@ }HsBe@e\0vN0d@2"e (^E 5 3r ca%A oCjA$A13 f3ba!5 cq@~n^e3jU?~bhKr;aq? |ub #h bauA1*4H f5ohc&Ac.abaEkQ,o^e= cAzf y3` D^0N^0tBn@a@nEi#_9Y@a `A1A1"( c'AAezeE>Xs A pIp1!` H@dN2&F^0YA @ޮ1` SPo]w:bb+"v 6 ~!bbbf,4T4?Had3E_HV>ל ߪJAC BFY#~6B} ,]@e8ko+>]BBGy]Phe{qX0Q24X55&7 19 $; .x=8/?g6H6(L!%l)JUFD  h ^TYYRUFD"H$'@F @FxH5@@@0ۀ HD:  # ;h4>T]]9 #U,AUFD"H$@FjZV@&@@P -u `u bu  @")lt A)0t#` bFv_n?p [_eAu` ?jurJ:26W&$##D./@%W(l"r/tvel JYO8?$"'D{(/$B}U2q(0?'?96?\.?fd?F 7`BackgroundC0l0rz\)z 5G!3M1 3?l"M@h<:A酙!30O贁Nk?mdddclak)2w` A0ce0t?A)n1bdCzI7!3117;l`?1py0i0h@ (0)2P20>P92PM*PcJ2s0f0R1r$P1a@i0n..2P A0l2P)WUs|RePPe0v@dpP0l>#$!Uh#3 pA QYŊJ*!3"Be(o1HD:  # ;h4>T]]9 #U,AUFD"H$@FVj?&@@P -u `u bu  @")lt A)0t#` bԚp [euv` ?SurAJ\tt&!$)'$"3/E X/j$=(tvel gsS?$"'*Q/$BU2q(0?'?96?\.?Efd?F 7`BackgroundC05l0rz)  5Gt!3M1 3&?l"(MPh<:A!30U_B??mdddLcla)2` ]A0ce0t?A)1b[dCzI7%!3117;l`?1py0i0h@ (0)2P20>P92PM*Pc2s0f0R1r$P1a@i0n.2P KA0l2P)Ws|RUePPe0v@dpP0l>#$!Uh#3 A Q!3 (BHA 3J*!32B'e@o1VcHD:  # ;h4>T]]9 #U,AUFD"H$@Fr߹\.@&@@P -u `u bu  @")lt A)0t#` bF_xP92PM*Pc2s0f0R1r$P1a@i0n.2P KA0l2P)Ws|RUePPe0v@dpP0l>#$!Uh#3 A Q\YJ*!32Be(o1>cHD:  # ;h4>T]]9 #U,AUFD"H$@F~߿?&@@P -u `u bu  @")lt A)0t#` bԚp [euv` ?ur>JvSȱ&$)'$"3/ E X/j$=(Etvel 37?$"'*/$BUo2q(0?'?96?\.?fd?F 7`BackgroundC0l0rz) K 5G!3:M1 3?l"Mh0<:A!300b/?mdddzcla)2` A0ce0t?A)1bdCzI7!3117;l`?1py0i0h@ u(0)2P20>PU92PM*Pc2s0If0R1r$P1a@i0n.2P A0l2P)Ws|Re*PPe0v@dpP0l>#$!Uh#3 A Q]!3 (BA 3J*X!32B'e@o1VcUGDF P# h>,/T6D # UFD"H$@]F@&u@P}  ih0D *@3-T-hc-|u` ?W΍U,@T'*hh||-"| 'u#QtSt% "{tR$t/'A@#KtT%/(/-3b/(08"A2?X>d.3@??2.`Make B0c0ground 335~J3hAmD;1`VIS_PRXY0CHM!#60@79݉j2`?C@puy@i @ht@U(@)@2@0@ @i@As@fBAr@Aa@i@n0 @AlP HsRe@eJ@v@d22e h4^hh P T3 3hHQ5T[5T[3T@[TT[ETh[TX|WndPao7T1128cpAhAhEhATh]]9 3#UFԚ?F BP(?F @F߅d\?P>u` ?iu3>k(.t  9#J{?Ao@HtSݓ_N׳_ambԚp [aJڍU5 ILc0U~!"?AG}cLIc"` LineColc rz$cC"I&nFFF#?&^?B#I&&` STa%dc wa/#/f/G(iF" d3#$..36hH1$d1d1l7;S#? 1pyi igTt ( )@2`09@M[ ci os!0f B 1r@h!a @i!0n.@ AR#0l@GsYBe-@ei v_ dM@b0 l>]Uhz13C!`J/!F%QA(E _._@T3O^h_z_W?UI5N___?U Oa_!o_j5AbI59 M{R7/f!3 raavb5!$fAm/%Q12ooXR7w ' $9~0vx] vF88e 1@tQR:(3O@{f5Q?=C$cz,Z#bS~-(T{<B2 >, HD:  ##=h0>Th]]9 3#UFGZت$@F BP(?Fu?Fa]?P>u` ?iu3>k(.t  aTR'?Ao@HtSˡE_N4@_ambԚp [aJڍU5 ILb0U!"?@2LhcC"II&ynFFF#($(?#R,C"I&&` STadowC l rz&/+_y" QB3#.3i6h H1q$B1B1J7;v`? 1py igTt _(c)02`W090M0c os0f2 1r0!a0i0nU.0  l 8Us-Be@e v?@d!@@0l>]Uhz13 C!J/!FA(EO_T3#^<_N_WU'5N_O_UO5__Y_jD#b'59 M{07/f!3baf-A4!$fm/%ij5|oorX07Ww' $ ~vf Wv $8e'ua0e0 @PHZQ0:^2@3 9R'cz,Z#.T.'~-qT@Ac000HD:  ##=h4>T]]9 P3#UFD"H$@F@Fq!j@FC1[z??P>u` ?u3 >,2t  0*?A7@LtWzGcQR e0qbFL&d2?p [>eՄJU5 MLT0U%"?AG}FWMbg"` LineColg rzR#nwFFF#?x&?F#uM&&` STadg we/#/j+$W# F_ lDi 72o&G,`h9C!Bt! 3#.2236A2JM3117;W#?1pym igTt(c)20U@9M_ c.m osg fGB1r;@l!aG@ig n0 A22 ?HsBeg@em vc d2l>UhhC0A3G!bJ@33&3&C_QA(2VC_h_zT3^__gyUb52^_U_oyUE2__[o_(bT_ ti e j5ieb59 M{7/[v!3nrvv-4!$;7aiX7w'2%#՚~vvv vw_H<>SGל ߪJAC BFZ/|#(-ߖ0T]]9 3#UFD"H$@Fh4@Fj~L$@FZV{?@F?P>mu` o?u3 #,2t  K46?A@LR e,֍t#`F BP(?pz [e"ejJU5 MKLT0U$"?AG}Mb` LineColf -rz!#nFFF#?&F?#F,F"L&&` STa%df wd/#/i+-$V# F^ lh #792n&` =?o))eCQ3#8&327A22\ތ32q@?O FM$? "fKO:F!%311Ԧ7;V#?i1p]yl igTty(c)y2U0@9yM^ cl osj0fBi1rԪ@k!a@ij0n].y A@2 HUsRe@el vb d@0l>0>Uhh7A3gBbJ@32&2&QA(U_ _T3^ o%oxeU5^`o_oU5_ oo.oi3 eB!3)m!#1'/28pȱ;!$8Q 52xbszgO#u%w#vj#lei:M{!/!3wxAJ dQ`$U8!e fQ:(3O@$v9K?F$g"z]#b?M-,T{{/ Ck\tq ĂHD  # =hj0>T h]]9 # AUFD"H$@&@FxitI%"p: [kՆJsnFFF? ?Abm$zOOSsu` FilA ConA orzOk` >/2O%(!(&\#&` STad*G wE/"/+ReU= 3#J8'32H23"&3E#0Ut2??AG}ΐ` L? n /Bh,:A311 7;3?F!pyM igTta(c)a2`09aM? cM oKsG f3BF!r'@L!a3@iG n.a AA" +HsBeS@eM v dHs@0l>]UhzA#!J`366KaDX' (32oRM(@T/_O_KQU3^__gUEU&V_A_!oUk!"_> QrA *bcCi%AbE9 Mz7's4;! $Da fv5T x3@?1HD  # =hj8>T! ]]9 #,AUFD"H$@Fx@&@@P6 -u `u `bu  @e" - A-0t#` b ̮?p [iuu`l?SuvAJ`rJ &$-'("7/ I \/n$A(tzip Q?$"'(/$񓾍U2q,0?+?=6?\.?ljh?F 7`BackgroundCj0l0rz-.~5e%3Q1 3?a t##FGB%3!#rٿnFFFf6AۚsA,? ("bCzy-lB-3&` STa0ow?(!` Fi0lrH2F1` OE=%:?Q1&gp!K7h<:AJ%3117;XQ@?1py0i0htk(0)k20P9kM@c2s0fR1rP1aPi0n.k AB Xs=be*`e0v0d1`0l>#(!Uh #3 XQ\iJQ*%3'928e&o i1HSeE9 MzW'0URr;!4o ]vqv1` T0xP_QH D:  ##=h4>T]]9 3#UFD"H$@F~@Ff>$@FZV{?@F?P>mu` o?u3 >,2t  Q|a?A@LR e,֍t#`Fi4F?pz [e"ejJU5 MKLT0U$"?AGq}2Mb` LineColf rz!#nFFF#?&?#F,F"L&&` STadf wd/#/i+$V# F^ lh #72n&` =?o)eC(3#82A"36A27\327q@?O FM$? HfKO:F! 3117;uV#?i1pyl igTty(wc)y20@9yM^ cl o%sj0fBi1r@k!ua@ij0n.yW A@2 HsRUe@el vb d@0l>0>Uhh7A3gBJ@X32&2&DQ(U__T3^ o%oxeU5^`o_oU5 _ oo.oi3 e23)pm!4/'2$#ձ;!$8Q 52xbszgO#u%t#xj#lei:M{!/!3wxAJ VdQ`$U8bT^ tl0e @he}}k\tq ĂHD:  ##=h0>Th]]9 3#UF3钿Y"@FFە @FNPQkӭ??Pn>u` ?6u3`b >"6(t  z6?A@BHK=kUYt ["p: [ZՄJU5 CLT0U"?AG}eC` LineColZI rz۷!#nF;FF{#?&?#),)"/&&` STaKdI wG/#/ZL+$9# FA lK r72Q&` ?RR) 3#B2((236727kB1o31P17;9#?L1wpyO igTt (cu)J@2`09J@uMA cO osM0IfHBL1r<@N!aH@iM0n.J@ UA#2 @HsBeh@eO vE d@0 l>]Uhz1A3)!BJ@o39DYX3UD_d_vY3^__gzUf53^_V_ozU3__H\o_j5bPf59 M{o7l/5v!3HraPv4!$ 5v|mai6oozo7]'$t~kvPv v8%TE xH@L?c8eaD@e J@ fQo:3@e3 9)']z,Z#bK~-\sTAcL@ 0P@UGDF P# h>,/T6D # CUFD"H$@]F@&u@P} ~ k ,D@Tu` ?LR,ru#|QΉtSzttRt 'A@tT$/ (L/+-3xOb ((A"i/.d#@3)5~??".s`Make B0c0ground#b314 ;1`VIS_PRXYx0CHM!#6008!"`?C0py0i0ht0(0)02@090M@cJ2s0f$BAr@QAa$@i0nx0 0All@ HspBeD@e0v0dx2"eYk} !HA%DK)5D,K3DKDTGnDAD_'7BTAy1y1 "(S11}51<>@XBr1I!&` H@d.2&F0o$@Az0#` SPowRo +<"v8d7e7 J@cbbg bg__0R11"Sa%1+bb$y1r,QHEq)5Se@~|u3{,|uVz?rxK2cxfq<`}? rjb #! bIgaj?@TT,3qEGxsD& 'M1sYq(q{r=SeS,fa0 D0NZbAn$@a@Q"AC@M7LqtKo]e_vH>ל @(T6D UFY,b'@F#H$ @FxT ]]9 TaAUFY,b@F#H$@&@WFF"W@P6 u`bt A@u)΍tStS<tTJ(S3d i)Ob  ADREJ#U0U8"?@$ t0 ?$( ?U kaX:`B c groundC l rzAb#z.)s$%B//#b w/bn3H? K1#5 CL.`M kek2?dQ5.1#A D5 v$`?!py;0]i90htk(50])k20S@9kUM?@c;2s=0fEBR!r9@!aE@i=0wn.k A lk>GsBee@e;0v0d@B1#lhA@=^M G5C G&dRMl>0>UhhE p.A!1 $R0SPJf l#b(.hD Ob"YbM_(F!o+g?7o3coe5noogoeV%efo+o oeE2 o;rAsCghe[+TQQM- &EtJsTl@S6V%B,QE=BAA!D)B0#` D=0N=0t*E2nE@a?@nE,15eq3FB(OqiAbV%9 M!4.'7$ň&!$Q2 $H>%1x (z)ub"`\NWF]}h#C?jeB J]PaHĥ]@+>ީ]B@k!UFDfP h>,/T6D ؉UFY,b'@F#H$ @Fx%B2 6gdaO{'TT'T= S5Ҧ13C#C D)@N)@tC)@nsPaiyPr$^ Ph(:LV?DOowpx`,p|rag ont] hep ad ful--> siz "]bckru"im.bY,b#H$@@5pm;μ@@3F" HD  ?hZ8>T H]]9 UUFY,b@F#H$W@' P6 lA u`l?U  u(tS&A@ctTl$bsTJh=M/ m20U?@LebTqBG H#$\( ?A3`BackgrounWdC l rzuu!$)(=~ H" #{#9"Mj%7 M`M kek/dpQu` EvNO0nt!p'!~u eJع1!';1#Vis_o RXY. hm!#6050 v`?!py ui hx0 ( u)k2009kUM0c"s fBR!r0!ax0i Un0 kA lk*GsdBe0e s1Qd0 &+?"A %l>0>Uhh5@ 7A!!!JnGV lfX 2 3VM@ !Q_&1q_mQU3^__5gU%UHVoc_CoЧU"5G_ #rRA !"cCgThe'+RT!!M-Qt^t JcTl!nqz{,@{3#T811 C!## D N t"w1a0nEH>Or S-"GqS@w`FX_o"#rTB Ks]^a`ĥ]@+Cߧ]BsPUFD  h ^TYYUFD"H$'@F @FxT]]9 #U/P%g(|"./t  {Pk?e"p _o*'6#4!Uh#3 A AYAJ*=3F"+2BU_ ASHD: # ;h4>T]]9 #U#AUF@F\.?Fl6 @@P Vt`  ?"u u u " '@l0+bA80&t# bp [5Ru7?u_eAYJUFL8~i/6a房D!@ '!"*(E,{Pko"] U?N@*(~k *Q/Bo2q0??6??S??F 7`BackgroundCq0lq0rz~8b%I=(1g 3?"&Ph<:AZ20U0B3 Lb+ 7117;Y`]?z1pyo0im0Wht(i0)W20@9M@co2sq0fBz1rԡ@1a@iq0n]. A}0lGsBe@eo0v" Pd@0l>#$>Uh,#3 A AUE 2teA}o #J*A @"BU_1SHD:  # ;ih(>TA9 35AUFi4F? <Ѕ2P $>  u` ^?3 u4#"t  q?A@g#tYsn$"Jh?hB="5 +#?A&\ ?~!~!5 `?CopyrigTt(c)20 9M c os f"!r !a i n. Al (s"e e v0d l>#UhEI !#J?Xl]b4X6WBHD:  # ;h0>Th]]9 #AUFi4F?k?@P -u `u bu  @",% AGh[ >u`] ?u#J" ѿ$ #p/$.?/ ")Z/l)t )baht Da&(/Ԯ$BU27q 0??16?\._?b\?F 7`Backgrou_ndC0l0rz%b5=t3E1 3&? ?9!J31h17;h`?1py0i0hUt (0) 2`W09 M{@c2%s0fB1ru@1ua@i0n. A0l zGsBe@e0v@d@0l># !Uh#3 A jAYbJ*3B`Uy_1HD:  # ;h0>Th]]9 #AUFi4F;? ?@P'-DT!>-u `u bu  @"E% AG[mu` 7?u#e@)J"9$' "/-%Y'%-(c/- t aht aR"/$&QbaBU2q 0??16?\.?Eb\?F 7`BackgroundC0l0rz%b_5=3E1 3? ?9!3117;h`?1py0i0ht (0) 2`09 M{@cJ2s0fB1ru@1a@i0n.. A0l zGUsBe@e0v@d@0l># !Uh#3 pA jAYŊJ*3&"2B`Uy_1SUGD  # h#$T #3 BUFL8?Fc?@Fi4F? uP} VV    $ u` ?ULV){$$ASu#L"p [A@)HtI  {Pk5?0t bF,/|񁠅dyBM#!!Z* "`?CopyrigPt (c) 20 9 M c os f"!r !a i n. Al (s2e e v0d ;"eYk}$Hp1D%|4;E|4$7UGD  # h#$T #3 BUFibAA%@Fc?@Fi4F? P}  u` ?u# VrVh -(^<c=PLVU((<<PP"p [A@Kt  6TA9 35AUFi4F? <Ѕ2P u` ?Mu# t  q?A7@t+"=&9Enm$ >  , Jh?B="5 +#?A&\ ?~!~!5 ~`?CopyrigTtl(c)l20 9lM c os f"!r !a i n.l Al (s"e e v0d. l>UhE`I !#J?l]2b6BHD:  # ;h,>T]]9 #AUFi4Fu?k?@P -vu `u bu  @"E! ACWmu` 7?~u#m>)J" ѻt b[]dt ]&( '/$$y'!t"/%'-/ BU2q0??-6?\.?^X?F 7`BackgroundCj0l0rz!?b!I=3A1g 3?3117;vd`?1py0]i0ht/ (0])/ 20\@9/ UMH@c2s0fNBR1rB@1aN@i0wn./ A0l/ GGsBen@e0v@d@0l8>#t!Uh #3 A 7AI+J*3[2B-UF_1\SHD:  # ;h,>T]]9 #AUFi4F? ?@P'-DT!ݿ>-u `u b_u  @"! ACWu` ?~u#->J"9Bt ]d!t ]"/ $-&b[]$y't"/%'-/ BU2q0??-6?\.?^X?F 7`BackgroundC0l0rz!b!=t3A1 3&?J31h17;d`?1py0i0ht (0) 2U0\@9 MH@c2%s0fNB1rB@1uaN@i0n. A0l GGsBen@e0v@d@0l>#t!Uh #3 A 7AI#J*X3[2B-UF_1\SHD: # ;h4>TB]]#AAUFD"H$@Fc?@F%@FCHy5?P6 Amu` ?A@ u#`%t  ŏ1w-#LRtA`%"p [S$J=#UG ?| ?釉\2q- ?,/>&?\.+?&i/: -4 # #20U" @ #Mb Bh,:*A!!';`?CopyrigTty(c)y2009yM0c.0os0f21r01a0i0n.y Al0 8s2e0e0v0d0 l*>,>UhE=%y1# 1J! rBA?(wN9OOEE3wEOKOY% wESO#R] JiAle%(9 MX&7WW'$ž.! $0 V #x"j__$f!32bGgHf_1 `5kyoobq %?1HD: ##=h0>Th]]9 3#UF( x"@FFxQ}H( @Fy0խ??Pn>u` ?A@u3`b>,2t  ?sFLR +5t ""p [NJU5 MLc0U"?AG}(LM"` LineColS rz$3"9&nFFF#?&^?2#9&&` STa%dS wQ/#/V/7(iF" T3#$2236hL1$T1T1\7;C#?1pyY igTt ( )02`090MK cY os0f21r0X!a0i0n.0 AR0l07sIBe@eY vO d=@R0 l>]Uhz133!J!9 RXEO?_)[3?^X_j_W/U95N_ __/U OQ_ou_j|5Ab959 M{B7/f!3bѿavS4!$f1m%A12(ooXB7sw'$)~ vv: sv688e !@dvQB:(3O@kf9A?=3$z,Z#bԁC~-,T{< B2 > HD: ##=h4>T]]9 P3!#UFD"H$@F<@F ҵ #@Fx萢5?@FN@?Pv> u{` ?{u3` #>,2t  ]?A@LR e0t bF@ ?p [e"eJU5 - MLT0U("?A?G}FMb` LineColj rzR#nwFFF#?x&?I#uP&&` STadj wh/#/m+$Z# Fb lDl 72r&J,`h9F!Bt! 3#.2236A2JM3117;Z#?1pyp igTty(c)y20X@9yMb c.p osj fJB1r>@o!aJ@ij n0 yA52 BHsBej@ep vf d2l>UhhC3A3J!bJ@36&6&C\WA(5UF_k_}T3^__ g|Ue55^_X_o|UE5__^o_(bTb tl e j5iee59 M{7/^v!3qryv-4!$;7ai X7w'2(#՝~vyv vwUGDF P# h>,/T6D # UFD"H$@]F@&u@P}  D 3,@+  h?u` ?U~@@T^,u#Q3tStB%: D"tRB$tK/]'A@3bI/[(#:"tTB%/](/{/A*""/.dJ3@S3y5~h?S?J2.`Make B0c0ground: @3ز3AD[;1`VIS_PRXY0CHM!#60+@892`?]C0py0i0Wht0(0)0U2Q@0W@ I@i0J1s0ftBeArh@Aat@i0n0 0Al@ lHsBe@e0v0dT2A2e4^AA @Jy5 3H=QJ5ITT[y5IT,T[3IT@T[ITT7WEIT^[@EXhTWnda:oTw7T(11J2G8hcAAEA>Xr1IC1&` Hn@d2&F0ot@A0#` SPowoTD!+"vde* @"s)r#r%_w)rgA0o^So=@ib@1$1J2ty2-t3I[t ZtE "bG8TQk`aJ5AK#r)r1{1Qg ga$y5hce@6D3,φ+?6ם ߪJAC BF:wb# ߜxCB} lƥ]@exko+> ]BBȃ)yPA|񈇩DOh?GSφO.( XlX/o?7rUFDfP h,TPYYCUFY,b'@F"H$ @Fx siz "]bckru"im.bY,b"H$@@\L[/f&.{@ͺl@;μ3D UGD" # h <^T$(YY#UFY,b@F"H$+@' ]P} j&(<XP"u` ? ((<<PjP nu#:xtSv߀A@#tT /tb"(9'do `%  `"Mo`Make B c ground!}Q ` Ev nt!pb ~  "%JT%-%'W+3S?$B#i#k0Ud2>3F&=i$46`#4r6r6 :2g"\i#2q0??F`#F\.?y( .O@i#dA+137]D"`?C"y ui h ( ]) 20@9 UM@c"s fBRAr Aa i n. AUl@ HsBe@Ie !d@)01w`V@s_0_RXY@cPWm![06@2.P QW"&/H:L e(^!6D _] i#HZZ`%T[%T@[3TYWgda^oC +T# 1 1`"13Rd3](cvydA C08Ua%k,@odL33TdAfx\3` D N tB!a@n8UA^E `%{MW?r6!3r0v*4*P83r69MTHD # =hj0>T h]]#A UFf0!? c@F"H$@FL( jKb' P6 ]Au` ^?M u#t  ]oEt9SENQ,>ChJ#0O迴Nk?{F 2q ?/&F\.?A8@73`Backgrou_ndCp lp rz@b Q Q#t$]A -]&MB±~<# u;c/u/!O2݇ #Iob< @P2V?h?!ܔ6!P!';3?1py0i0hUtp(0)p2`W09pM@c2%s0f!B1r@!ua!@i0n.p A| lpGsmBeA@e0v@dHa@ l> ,>Uh =E A#!1ŊJ`+6R  8x\ UVMY!9#_x9_5QoU3U+>_3__E2 _U2KrA 2NcCiA1eE(9 MX'E'0UbŔ+!ra .fjvoo{'_ !3rgfc`#fI-pHD # =hj0>T h]]#A UFL( jb@F"H$+@' P6 n>u{` ?5 u#t  ]EQt9SENEEhJ#0O贁Nk?F  ޱ2q ?/&F\.?MA8@73`BackgroundCp lp rz@bI Q:'! #t*$ -&MB±}_'!<# u;c/u/!<݇ #Ib-< @P2V?h?!܂6!!';3?1py0i0htp(0)p2`09pM@c2s0f!B1r@!a!@i0n.p AR| lpGsmBeA@e0v@da@ l> ,>Uh =E A#!1J`X+6  8x" UVMY!!_v9_xoU3^9__1UoUbE2 _U2rA 2NcCiA1eE9 MŔX'E'0Ub+!ra fjvoob{'*?!3rgfc`#fI-pHD # ;hj0>T h]]#A!AUF04qy#@FǮX?Fqo#@uP6 $> lu{` ? ;u4#*t' ‡tfmta{mvm[W"m3J#U0O贁Nk?F 2\2q* ?)/;&F\.?+A,8 iG #f?pH&M<# ";`BackgroundCJ0lJ0rz@ba0a072=?O?a4i6qbWd @B !!';us3?1py0i0ht (}0) @2`0U9 @M@c2s0IfB1r0Y1a@i0n. @ A0l @GsTBe*(@e0vf@dH@ l>,>UhE=%1#!1J`Fr  $&M3 `Q 6RFxAgߊ |? YF_W&d>2 ~`_21^'` _}A_(@M9 __Ue%2OU2rA T 2cxCiA1e%9 MX'g'0EUrŻ+$a f#xB"joo!$m_!3r =w>v12y q-> Ako(#HD # =hj0>T h]]#A UFOvE%@FǮX?FU1@?P6  >u` ?j u#t  ΈEt9SsENCп+EhJ"A|7<F ?ka@X:` Ac entCol* rz} b A bQ#z?)ۀ Ib'Ak!" //.*?/b!#Z/l 񽓱2q0??6F\.?Ey =?:@73`B cwkg0 ou d/b'Q Q3$A -6MB80UB2  !?'117;`?x1py0 ik0h ( )@2`0U9@M@cm2s* IfBx1r@/!a i* n.@ A, l@GsBe*@e0 v d@0Rl> ,>Uh =EAh#1o!J`z*`1  86n8[2 VM(X1_[gU3^9o!oUUE2~_Uo"KrA 0o"c%SiAbE9 M!4E.'D;;Da f jooŕ{7v!3r_w`v`Wvv+H=R_\H>` r =T"?KF(#TB9h^^aǥ_o@{+CVcoQaG膪ʹoPHLUIxéX UFDfP h>(/T6D UFY,b'@F#H$ @FxT P]]9 %AUFY,b@F#H$@'R P6 u`bA@utS!WtT6 WWb; Z RADEJ#U0U?t":#a?L& ? kaX:`Bw cq groundCj l rzAb#z)sx%8B//#b ܭ/b23/!5 /Lf1w`Mw kekz/d!/R:}y` Ev0'nt1p~O2%145 8`?!py i h0 ( )k20>@9kM*@cJ"s0f0B!r0!a0i0n..k A lk)Gs|BeP@e 1dp@B+lhA@=M Ga53+ 7L&AORMl> 0>UhhE A!d1 s$R S PJ8VlbhXD !:bDbM#( !0og?"ocZeX5jnoogZe%jeVoooZeE12_;rA*sCgPhe[+!TQQM- IEJCTf%qbt!%s3,@=M! E=s11 DB` D0NR0t 21a*@nE!X5Xeq3FB(qiA b%9 M!d4?#ԁ'ŔL&!g$oQ5 H> r (z)ub"`\NWF'#Cw"ѷeB CЫ6Paץo@}+8oB(# o4UFD  h$^T YYBUFL&d2?F~?Fx<F BP(?| ~P?| w VBW< 2h5h? Pm?2?2P'2ȅHBU? ? D G 0eB`-City,n_ tworko ly cak iy no si"eo pR a !iq sk a !%= \%E^  G n?~#0?688?U[fcffgf 3fwf c3gwfw` f{~6a wxxxwwp` px wpu 0226yR2gy?LDrag thuesapWonodwipe.b~??Q뿤i??"&d2}L4oҿ޿UGDF P# h @T(PYY*# U@L&d2?@~?FUP} . !P6 :T 7h7|777 ,7%A'7.u`_?U"6@RThh||"u#) ^2<7:U? ?4b0{[`:S1#26X3#"2^QHW93 2 1/L1$-"@ 2  2"3'>>ÿ@ǵqp@eE?oDeF0|r&BCkBu@`i-1Bu @  26CA (B" 2#& "0)9u `u`"[ b1 $𿻐u`񾄑W3J#N5)W3Qq1q71`Vis_PRXYcPm!#5n `13RB`?CopWyrPgPtu(`)20?`U9MPc)`oP'of1b"ar%`^aUa1`i#`n WAly` )hs}bUePe)`v`dRq1N3 dZ4V1B=Tr6N3@t|6|6 x2N4#W30U[r|3]W,7^q_@VcTg dagRsqu2+ D3hhR)^RHqqE2K8CT $0aN2{5\1pac2!6u%\ GŜ1S1J[2@@R4{35s_N4]&F3s͵NSYFwUUaU,@Qr#`er51pN2K8ڀqiviv_<׀,=pޟ &K8AWBCgE/s"ITh]]9 M IAUF~?@s?F,jג?FRW_7r6?Pps-8Rw?>$Y]A  JuM` ? ;  )u*Jt' eta{+23.JvюV?lv_ ?vx]PqE>JU43f;?4.&P?Apb3bbfz@Ave bh(bv)t&*J#!!5 `?CopyrigTt~(c)~2`09~M c o%s f"!r 1ua i n.~_ Al/0 (Us32e0e vE0 d'0!3]$$#-## '.&%d 2zoGz.#@ M#J6h/z/ BK' B*ib~59 6X7oG'K0UB.&!I$Ia oFJl6.}UhU=!1 A(# ~VIP & `!& T` V_RUGD  3 h0TdYYB qUF9r?@H$$?Fvn?@@u?P} Lk f 0u` ?00DuNrtK  jtK޹ѹMWZU;!;!`?CopyrigPt(c)2\09Mj c.h osb fp"a!rd !ap ib n. Al h(s"e ejh v d #"P4#S8$,#B-5# H" G'I?O=5#H&,#Z45656 12j,$#5#0U2%53+&j  ^K5 6X77'456!.4] 6Je$B^ 6D 0HA,%DK%D0GHD: # h 4>T  9 P#CUF0C3?@&@ P?FμW3P6 n>u{` ?5u#t  (]It=W!IVR1_IlI#>y;?? ?bA@"b])b)&2\"@ #[&/#'*+:'";*t\U$q ?/6 46?> Jh1h15 g`?CoprigTt (c)02U0090M0c0os0f21rԑ01a0i0nU.0 0l0 8Us2e0e0v0 d0a1(e4B-t3 t70ieM9 kF:X=GA_'2r"Z!0 F3j|OO{=GyV!%3RGFNDGN_:w5k&_8_Rq @ElAUhhEG1#@A-!T6j& f$<f bfI(:x<'0i`c q$q3a(z=iKquM$ufE`|aOyX+cqE2o;#rA $2H bWHD: # h 4>T  9 P#CUF?@&@ _P?FP6 v >u` ?)u#t  P]It=W!IRg]Hl#>y? ~?bA@"b)b)b$񅴍2\"@#[&*<%&$*Q+:'";*\U$q ?/6 b46?> UJh1h15 g`?CoprigTt (c)020090M0c0oKs0f21r01a0i0n.0 0l0 8s2e0e0v0d0a1e4B-t3 t70@ieM9 kFX=G'2r"!u0 F3j|OO{X=GyV!3RGFNDGN_:w5!k&_8_q @ElAUhhEGІ1#@A!Z@2r80; <qL#4 bvI(a9i@`bcbu3:+}E`lQqi?X+cqM*ufoUyQquE2oe#rA $2H bWHD H# h0>Th]]9 M#JUFvn?@&@ P??@*~w?P6  >JuM` ? u#Jt =t9S!WJNbFh.>y*<? ?AJA@+b)b$J2N7Nk@MJQ&*2%$*+0'1*T!!5 c`?CoprigTtV(c)V2`09VM0c0os0f 21r0M1a 0i0n.V Alh0 8sl2e@0e0v~0d`0!E]$-# '0AbE9 6X7G'0URWB!a F"JlJ]Uhz 1#1-Z61 K 8 0R]VJ:9 6S gPQETT]]B9 #CUF^?@z?FO&_~uP6  >u`3?ju#t  @WIt=WUr mIR~[WPHl#>? ?Lb "z@A gb(N(+b*$2g"?088r #f&#fb8!r.DF&""+E'""F* \ ?X64?+96N?UJ~1~15 g`?CopyrigTt (c)020090M0c.0os0f21r01a0i0n.0 0l0 8s2e0e0v@d0w1P{4B-,3 70ieM9 FXSGG'2WUA!0 F%jOO{SGV!%3R W VdDWN_:5k<_N_Rq VEl QUhhE+G1#VA-"!T6u&F f$<f bvT(:+/U?k`c 2g.q%:uoc xWJ#eaq*uM:uf-l6R|aeyj xx-E2o;""rA !$N*H bWHD:  %$h4>T]]B9 #CUFD%?@\f#??@k߻?P6  >u` ?ju#t  I_IIt=WPaIRIJl*w#>G?? ?b߀A@eb=!z #"b $"bI$2g"?088r b#f&*8!r%/F&"+E'"%F*\ ` ?64?6N?U J~1~15 g`?CopyrigTt (c)020090M0c0os0f21r01a0i0n.0 0l0 8s2e0ej0v@d0@w1{4B-3 70ieM9 FXSGG_'2WUAZ!0 Fw%j(OO{SGV!3R W V@dDWN_:5kH<_N_q VEql QUhhE+G1#VA!Z@+*S?F <`?"B## bv@T(a9i`bcb0u%:A}?l6lgqiQaF 4qMuЍ=7{cc )A #ougq0u-E2oe#rA 0#VN*H bWHD:  %!$h4>T]]B9 #CUFW-?@=?Fh?@uV?P6 v>u` ?)u#t  Ht=WB/aקIR_noIl3ur#>!;??| ?Lb "zo@A gwb(b*)I(&2g"?@#f&#f #-(+(+E'""F*\ ?64?6N? *J~1~15 g`?CopyrigTt (c)02U0090M0c0os0f21rԧ01a0i0nU.0 0l0 8Us2e0e0v@ d0w1({4B-3 70ieM9 FXSGG'2WUA30 F%jOOŕ{SGV!3R W VdDWN_:5k<_N_)q VEl QUhhE+G1#VA"!Z@%g 1?( <Kg" bSvT(:?31J9c 0_M#db0u%@u~~mlfl?"0uM@ur\8ˊc`[y뵸m}q0u-E2oe""rA 3!$Tu bWUGD  3 h0TdYYB qUF 0KR?@xՈ ?F?@_@w?P} Lf  0u` ?00D)uNtK  Uɹt0zkn̹ k*ѹWU;!;!`?CopyrigPt (c)r 2\09r Mj ch o%sb fp"a!rd !uap ib n.r _ Al h(Us"e eh v d #"4#S8$J,#B-5#6G# G'?O)=5#H&,#@Z45656 12,$u#5#0UU53@+&j ^K5 6X77'R456!.4]R 6Je$^ 6D  5#HA,%DK%D0GHD: # Th4> T]]9 #CUF/KR?@wn?F#vP.6 Au`= ? u#t  o,It=W:CIRGm Mw+Il#i>y9 ?? ? bA@"b)b%)&񭃵2\"@# [&/#'*+:'J";*\U$7q ?/6P 46?> J h1h15 g`?Co}prigTt (c])020090uM0c0os0If21r01a0]i0n.0 0Ul0 8s2e0e0v0d0a1e4bB-t3 t70ieM9 kFX=GA'2r"!0 F3jP|OO{=G,yV!3RGFNDGN_:w5k&_8_q @ElAUhhEG1h#@A Tj&1 $<fib bfʼI(:0 0i`c 498˱q3a(z=iKquM$uft:ۍ|HaOybxE2ot;#rA $V2H bWHD: # Th4> T]]9 #CUF?@wݯn?tP6 >u` ?u#t  ]yY'It=W菗:CIRHl#>Hc? ?Lbbcbz@A } b(b*) #a 2g"@#f&*G%1$*+E'""F*t\`$q0??6 *4A?> Js1s15 g`?CopyrigTt (c)0W20090M0]c0os0f2R1r01a0i0Wn.0 )0l0U 8s2e0e05v@d0l1p4B-X3 70ieM9 vFXHG/'2r 2!0 F 3jOOŕ{HGV!3RGVYDGN_:5k1_C_)q KElQUhhE G1#KA Z@~#0f < 1#4 b vT(a9i@`bcb%u3:6}t:l\qi)qM5ufo`y\q%u"E2oe""rA Y!$=H bWHD H# h0>Th]]9 M#JUFʺ?@؏pǶ??@/Qw?P6 >JuM` ? u#Jt =t9S6WBBJNbFhՁ$>:3f<? ?A A@ab3bfbz #b$b$J 2zGz@MJ\&!(<&'$*+;'<*B!!5 c`?CopyrigT}tV(c)V]2`09VM%0]c#0os0f+2R1r0X1a+0i0n.V AUls0 #8sw2eK0e#0v0dk0@!E]$-3 7 %0bE(9 6X7G_'0UbBJ!a F-JlJ]Uhz1#1 劯Z@`Y<  8KAF4 ;RhVJ:Ç9 AS ]yY'PTGRU3U2_DQL_UEUu^jYH ]U2"_UrA Y$c( bUGD  3 h0TdYYB UFZV?@[V?FRHG?@ _BPhw?P} `f  f0 Du` ?00DDX)ubt_  .HLt %+,!iUc!c!`?CopyrigPt (c) 2\09 M c os f"!r !a i n. Al (s"e e v d AK"\#S`$T#B-]#o# &o'?c=]#p&T#4]6]6 Y2T$#]#05U2]3@qS& ^Ps5 6X87.G'4]6%!V4] F(J)e(^(I ]#HAT%D[5D0[3DDWHD: % $h4>T]]B9 #CUFO/?@/`p?FqRA?@?P6 n>u`3?u#t  noIt=WoIR#U HlAw#>2?088r@2#Aeb8 !rztb(#+#+#&y<u"?& ?"#+b%)+@'\?64?+6C? *Js1s15 g`?Coph rigTt (wc)020090M0c0o%s0f21r01ua0i0n.0U 0l0 8s2Ue0e0v@d0l1p4B-j(3 7&0ieM9 vFXj'G'2WUAŇ&!$0 F%CjOO{j'/V!3RGVYDGN_:B5k1_C_q m&lQUhhE GБ1#m!!bTc# $<f b)v^(::'Ԝ?k`c S#q%/u3;c .9~#eVquM/ufflG|aZy{ґ#q"E2o;#rA $CH bWHD: %$h4>T]]B9 #CUF3;?@/`p??@w?P6 >u` ?u#t  oIt=WoWIRIlAw#>2?088r@<#Aeb{8 !rzb(J#+#+#& yL?q#?& ?w"b%)#+b4/U%\?64?6C? *Js1s15 g`?Coph rigTt (wc)020090M0c0o%s0f21r01ua0i0n.0U 0l0 8s2Ue0e0v@d0l1p4B-3 7&0ieM9 vFXHGG'2WUAŇ&!$0 F%CjOO{HG/V!3RGVYDGN_:B5k1_C_q KElQUhhE G1#KA!効Z@x<?f# <h-nѶ# b v^(a9i`bcb%u%:6}fll\qi{ґ)qM5uf o`y\q%u"E2oe:#rA $=+H bWUGD  3 h0TdYYB qUF%@?@5,k?F ?@Q_rw?P} Lbd  0u` ^?U00_uNtK  :Z[tZJ[jIӹ._jѹԒWU;!;!`?CopyrigPt (c)r 2\09r Mj ch o%sb fp"a!rd !uap ib n.r _ Al h(Us"e eh v d #"4#S8$J,#B-5#6G# G'?O)=5#H&,#@Z45656 12,$#5#0U253@+&j ^K5 6rX77'4)56!.4] 6Je$^ P6D  5#HA,%DdK%D0GHD: # Th4> T]]9 #CUFy?@vn?F#?@u?P6 > u` ^?Mu#t  %7YIt=WaR9IR_L=*Hlw#>y!;?? ?bA@"b)Kb)&Z2\"y@#A[&/#'*+:'";*\nU$q ?/6 X46?> Jh1h15 g`?CoprigTt (c)020090M0c0os0f21r01a0i0n.0 0l0 8s2e0e0v0d0a1e4ŤB-t3 t70iePM9 kFX=GA'K2r"!0 FB3j|OO{=GyV!3RGFNDGN_:Bw5k&_8_q @ElAUhhEG1#@A!ŊTj& $L<f bfI(j! ?.۾0c _*#c ˱q3aklquM:mx<ۓ|aUyM8'hxE2o;:#rA $8+H bWHD: # Th4> T]]9 #CUF_xa*?@vn??@?]P6 hvA u{` ?5u#t  ߔ@gIt=WaR9UIRIl%w#>y%? ?bA@"b);b)b$i2\"@#[&*<%&$*+:'";*t\U$q ?/6 46?> Jh1h15 g`?CoprigTt (c)02U0090M0c0os0f21rԑ01a0i0nU.0 0l0 8Us2e0e0v0 d0a1(e4B-t3 t70ieM9 kFX=G'K2r"!0 FB3j|OO{=GyV!3RGFNDGN_:Bw5k&_8_q @ElAUhhEG1#@A!効Z@ xQ0Y; <3H#4Zb bvI(a9i@`bcbu3:+}x<lQqiM8qMuuUo/] d =xd #YuQquE2oe:#rA $8+H bWHD H# h0>Th]]9 M#JUFs`m?@|nH˲?Fdvn?@MQY?P6 v> uM{` ?5 u#Jt  o\SDt9S2X2ENFYEhI5KOV4>y<? ?AJbA@" +b )b $J2N贁NkS@MJ W& *8%"$ *+6'J"7*!!5 c`?CoprigTt (c)(02`09(0M 0c0os0f&21r0S1a&0i0n.(0 Aln0 8sr2eF0e0v0df0!E]$b-# 'A 0bPE9 6X7G'0U]BŔ!a $F(JlJ]Uhz@1#1!Z@?~ 7  >8ħ]i 6RcVJ:_3?f& .;T 1_QKTBR}U3U-_?QD_VT}UEU7&eD YZM8ʺ]a}U2_U#rA $c( bUGD  3 h0TdYYB qUFx<^?@ȵ?Fʺ?@Ot?Pn} L  0u` W?U050DuNtK Ot@ڹ *"!-U;!;!`?Copy_rigPt_(c)2\W09Mj ch osb fp"a!rd !ap ib n}. Al U h(s"e eh 5v d #"4#(S8$,#B-5#G# G'?O=5#H&,#Z45656 12,$#5#0U2&53@+&j  %cK5 6X77'R456!.4]R 6Je$^ 6D  5#HA,%DK%D0GHD: # Th4> T]]9 #CUF/KR?@}JR4?F#vnP6 >u` ?ju# t  ,It=WXBIRGm_ MwIlb>y;?? ?bA@"b.)b)&i2\"@#[&/#'*Q+:'";*\U$q ?/6 b46?> UJh1h15 g`?CoprigTt (c)020090M0c0oKs0f21r01a0i0n.0 0l0 8s2e0e0v0d0a1e4B-t3 t70@ieM9 kFX=GA/'2r"!0 F 3j|OOŕ{=GyV!3RGFNDGN_:w5k&_8_)q @ElAUhhEG1#@A!Tj& $3<fM bfI(:0i`c l$Zaq3a(z=iKquM$ufh6fҍ|aOy"?0x,bxE2o;#rA Y$2H bWHD: # Th4> T]]9 #CUF?@2L&??@@?]P6 lnAu{` ?5u# t  ]yY'It=Wȅ,d!K IRHl%mw#>y%? ?bA@"b);b)b$i2\"@#[&*<%&$*+:'";*t\U$q ?/6 46?> Jh1h15 g`?CoprigTt (c)02U0090M0c0os0f21rԑ01a0i0nU.0 0l0 8Us2e0e0v0 d0a1(e4B-t3 t70ieM9 kFX=G'K2r"!0 FB3j|OO{=GyV!3RGFNDGN_:Bw5k&_8_q @ElAUhhEG1#@A!効Z@v0Y; <B{ %#4k bvI(a9i@`bcbu3:+}76flQqi*h/qM*ufoUyQquE2oe#rA $2H bWHD H# h0>Th]]9 M#JUFʺ?@BP(T??@W0 w?P6 >JuM` ? u8# t =t9S?JNbFh?s>yr<?X ?AJ~A@+b)b$J2N贁NkS@MJ Q&*2%$*+0'J1*!!5 c`?CoprigTtV(c)V2`09VM0c.0os0f 21r0M1a 0i0n.V Alh0 8sl2e@0ej0v~0d`0!E]$-X# '0bE9 6X7G/'0UWB%!a F"J lJ]Uhz 1#1Z@~1  8[_B! 0R]VJ:9 6S ]yY'ETTh]]9 MJUF3;?@z^??@x<w?P6 >JuM` ? uJt  oEt9S֡WlENEhII>yI$<?X ?AJbA@"b )b$ )&J2zGz@M JW& /'*+6'"7*BB!!5 c`?CoprigTt (c)(0]2`09(0M 0]c0os0f&2R1r0S1a&0i0n.(0 AUln0 8sr2eF0e0v0df0@!Y$-# '  0b5(9 6X7G_'0U]BJ!a FR(JlJ,>Uh11!T0 9 F 8  2RYVJ4]1_CY?QsU3:@|>\OQ HS m`wQ52_;#rA 3$@cHD H# h0>Th]]9 M#JUFfl?@z^?F3;?@x<?P6 n>JuM{` ?5 u#Jt  KEt9S֡lENoחEhᐟI>y$<? ?AJbA@"b] )b$ )&J2z_Gz@ MJW& /'*+6'"7*T!!5 c`?CoprigTt (c)(02`09(0M 0c0oKs0f&21r0S1a&0i0n.(0 Aln0 8sr2eF0e0v0df0!E(]$-# ' 0bE9 6X7G'K0U]B!Ia F(JlJ*,>Uh1#1!Tf& 38>VM 2RYVJ:|> 3Y@P HS mۻPwQ34]1_CYQsUE2_;#rA $@c( bHD # h4>T]]9 P#CqAUFe!@b?@M?FQEV?@^?P6 L6 > #(m$uy`?Agg2Du#VtS  n4BH=t; w9_W*Ut3۶_>UF$<?Z& ?bA@b!z #"b$$"b$ 2"Z$@#&(&$:;'"*\$qy0?x?64#( Z4?V> J=#115 `?CopyrigTt (c)"@20.@9"@M@c@os@f BAr@MAa @i@n."@ 0lh@ HslBe@@e@v~@d`@+"1 44#ŤB-=#3 7Z&4%@iePM9 FXG>'K2r2Z&!u$0 VB3jO_{GZ/V!3bwWxVDnW^^Ko:B5k__q JE4"l(>Uhe Ah#A!1(Z=#F@ g0aR LoWGa"@&b$4"(qC^]?Fs(?@|0 ֿ%L|\|HD_LR4Уӟ^L-ٙ"X_a y4 pW? +?Ra@ts<ЯTh]]9 M!AUF<%?@[?FdHǩ?@W_Mw?P6 $[!>  JuM` ? ;  )u*Jt'  P&'mta{T 6Dmv޿mxb$y3>yJU]<?& ?AJbA@,"b4)b4)Sb4$J2zGzR$@MJ &5*`%J$*+^',"_*BB115 `?Cop_rigTt_(c)2`W09MH0cF0os@0fN2?1rB0{1aN0i@0n}. Al0U F8s2en0eF05v0d01PY4-,%3 %7&H0b59 FX7T]]9 MAUFvIڳ?@J?F8?@P} TP>">JuM` W?uJu u bKu `u Y-JWR]nio@&>٣~ C,ᗢeuܥ]h[o?C$ '"/'%S'-+]/' Jt  $Ӗb#"t="! Ư%'_deѬ&'YY-t#JJU2N贁Nk?<MJ6uAdbG8WbU9S;S;S6B3B115 d`?CopyrigTt (c])020090uM0c0os0If21r0Aa0i0n.0 WAl,@ 8s0BUe@e0vB@d$@14Ry36D3IP!BM2b;R?s?fzU3 7F02%je^E(9 BVXWbW_'0URšFZ!D0 bVrvZl!UhX3 1iAA! P@B#J^ewkdHD:  H h0>Th]]9 M!AUFٟx7$?@!{?FdHǩ?@W_Mw?P6 $[#>  JuM` ? ;  )u*Jt'  Y@mta{kbmv޿mxb$y3>yJU]<?& ?AJbA@,"b4)b4)Sb4$J2zGzR$@MJ &5*`%J$*+^',"_*BB115 `?Cop_rigTt_(c)2`W09MH0cF0os@0fN2?1rB0{1aN0i@0n}. Al0U F8s2en0eF05v0d01PY4-,%3 %7&H0b59 FX7T]]9 MAUF4?@R ?F8?@P} TP>$>JuM` W?uJu u bKu `u Y-JWR]ni_@"J&>kn OS?F4H⋘?"  'B"/'%S'-+]/' Jt  |3#"t="Y(ئ%'~#&' bS#JJU2N贁Nk?<MJ6AdbG8bU9JS;S;S6B3115 d`?CopyrigTt (c)020090M0c0oKs0f21r0Aa0i0n.0 Al,@ 8s0Be@e0vB@d$@14y36D3IP* M2b;R?ds?zU3 7F02%je^E9 BVXWbW'0URšF!D%0 bVvZlUhX3 h1iAA0P@#J^ewkdUHTuD" # A#A hz ,T! YJ MUFv{h?@K]`?FU UP N% # H, @ T  cO,OmJuM` /? O"6J^ Ocu#X"bs!Fۅb^uJt  7͉"tY!"^OJU2zGz?)@M#J&A@i"wb8b#9!;!;!62 %!4J#2#"6 p2.2b#9;/72l<2l?TN#=A=Ai"`?Copyrig`t (c)t@20@9t@Ml@cj@osd@frBcArf@Aar@id@n.t@ Al@ jHsBe@ej@v@d@"M#IC IG6"xh"t"Eiyn %1XGcW'0URũ6EK0 cVwZlJUdnUtLQQS) T =1T[A#A1(!`Iοͺ?@|0}# f ǿձm# Կ׌$8n:Moo` =[Weh$+HeQj?@)v&?FQ-?@iH?PS~>  F߈s|.Zߥ"lE _ e?h=X##Rȵ: Izu:t ɩ X"41(RCBS"r"5w5ae2oG[pF&ߞ֡h|}VhYr~!{/te,gEe DT?nxM殏Ea$6ЇK;@R d9:x,IyyߧUC6 -R&6t/}GyzνTB4gwqLAq@dR!5j;?@iwE?FmnX Űu{jlk8 fl?y>ĕl?_'t?quEt&XQV  :T;haai~?@^vνl쇢&UebhMHz?@^Z|b>jca>lTס/hi-Ya\1~|oW.f? 45=uTIy^. ?@}drPFuN?@zH?Q;|Uuelfay1| @pUmɯR^iqeoo oT##$g}i3 uoouBwoҕF})EL h0m&}~+̖ݿBmȇVQ9adv_UF ]"6l|]ΖmC\+~}i3 CQ!]!dΕ+ (al?@֤ |b$G4).&ܕ\w7f_Utpx'Wẏ,k/~? 5kՕHD: # h4>T]]9 M qAUF~?@%g?Fs7s^?@WҔh?P6 mL'>E  ($JuM` ?Agg2DuVbJtS t~Dzb 013v ';_>-JUC!C!5 `?CopyrigTt(wc)20 9Mr cp o%sj fx"i!rl !uax ij n._ Al p(Us"e ep v d +"<#T@$4#B=#uP!7?56 ?Ab`4z@9Al0b{3j8]b8a0$o3-=#O# O'564%酙t=#2mq @?2@ M3#JF?=EQ6<@B: ?6iie59 6XG2'0UR56!P40R FJlJD4Uh8ZQZQ ]   %a!@A1(A/.F?@":W0LRb O_LP)$J^2_o ꗦ`T8a.eEUZ+mQ?@_Vl}l?9+h5Uu?@w Vlm1lrU|pi5Ui焞?@Gd{y}.xbli\V)+hUrw?@wVleHl~s!2+hUpp%Vl߂'}|U'r,.?@C[>?Fi(w?@[ P?PU>b ԿftVlIֶ6l{)eRX0~eGdQR@_:M I~> zg@&? ɿI#?!$?Ra@B r552aQ:iт0;Kq𾙵QP!µ""]JT豸*e2 Z"s 7tG@-(Fm#x"+OB 9 siz "]bckru"im.bY,b"H$@@5pm;μ@@}_3 D HD  # =hj8>T! ]]9 #UFY,b@F"H$@' P6 eA [u`l?  u#(΍tS&Aw@ctTl$bsTJ20-U?FW]ebqRG # ?sakunB`BZ ckgrou_ndCy ly rzubuAub#z)u=~ " #L#9"#MBh\"C? j0>Uhh5`7A#!Jn00.lPX2 3VM(Q_&1_QU3n o2ogUEe0&oo@_oUb5_KrA -sCgSXhe_'r!TH!!M-t "J'sTl!Mq %F{,@wj1%5bPE9 M{k7l!3k'QPsBp#!J$G=1ƀHD  # =hj0>T h]]?5AUF\,b@FW5?'P6 .L]A]  u` ?Eiu#4t1  tuKˁ=JU^;:Fx& sa@`B`BE ckgroundCd ld rz}J b J AJ b#z)ۀJ bA!"b#"bx##釉2q ?/ 6F\.W?5 8?:@7oW/i/.{!'G!1 03] \NB20UB4&'$$%117;`?s1pyh0if0ht (b0)@2`09@M{@cJh2sj0fBs1ru@s!a@ij0n..@ Ap l@zGUsBe@eh0v@Qd@0l> ^Uh[A"A]@MjA#1!J4/%CrA 0"S C`Q%S1Y9**0=*Qt&2t31:?F@F̬%?PKM! [t?[WY[ZnaU0fJ$U~tr<S! YM# ? 3&M@T@0tr$5!:+oog4! `Q^__1js+TN!p_^Wo[r5V rvM,(b  jbE9 M{7! 3a򪆢P3!5$;ۏ7愕HD:  # ;h0>Th]]#TAqAUFv\.%@F4O"Ƈ@F.r?F"H$ @P6 L6>  #. .u` ?)c,c8u#RtO  ߢ.t|} [J@}@@@FV&  ;`BackgroundC l rz@b ݶ bOA!|"/Ԕ/!K)!?#2!3z29b13{z&b@F3:3BU27qm0?l?~6F+?S ? :@7//!'#Qf31 ("C$ $lSF-2f30UB5DV&$$f3"AP"A*G;#?1py0i0hUt(0)2`W09M@c2%s0fB1r@!ua@i0n. A lGsHRePe0vZPd

 4 >UhzQ9 #AA#ZA!J`f3FI' BHN MozӋ[Hİ] 2b\B qD `2biVl+qېeNI e\0q:I lӱ`gB_@ 81!@N~P@CBfxwr|5Q5Vabe9iEovhwD_CrA) @"dlSaAiW.Fsb?FyOa`?P p ? 'l)݆9t$1d$G|,6J]w : ~gBt*<wxUGD" # h <^T$(YY#IUFY,b@F"H$+@' P} B &( u` ?U U(( Fu#PtSNA@tTLb!d ^% j#"MG`Make Bh cj groundQ` E;vl nt{!pb~- J%9-H%W#??$ZB##0U2#sF =$&#M4"6"6 ""\#2qƢ0??6#F\.?QE?@)#A!'`?C"yz ix h (t )n 20W@9n MC@cz"s| fIB:Ar vAa i| n.n Al@ AHsJBei@ez !d@ 1`VC@s_u0RXY@cPm! 06JW@2@3!&H/<e#ha!#3 H%Y #H Z%|T[?%|TWgda_C +T#!!"H!#8d3 (cQA6@0EHa?%Tk,@doEd 3F3TA`f;nd 3` D| N| tsB!aC@nEG!#^E %b{Gd?"6!3lr'0tv$@b#"6=s_H8> r =T"?KFf7#(9TB ȯ|]^aϥ]@+]La?*:P= AGCF}UFD  h(^TYYBBUF\.ߗ?x<F BP(?hP?X` ]B66]  TTTTTdH?ܸ? Q?B@L&d2?-(,1(.sUW!U&(w/x  0KB` Serv",n two k p"i h"al d v0c@ 1^| (SG|& b?,>?TTwpp pqqppqwqpqwqwq+p pppwwwznw6;5wqpwwwhghw>Drag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aabjZֿ~??+ ؿ)j??E(i\.r3r\.CUG DF P# h @T(PYY#E3UF\.?@jZ?F~߻?P} ΍L .B":J :^:rY:f 7 7ָAu` ?Uč"U66JJU^^rr)u#",'tU"J%q4??4bp0{[`: #|2&6#*'Q79" z^L1$" 7'@>>ÿ@q@@5EӅ??D5F0Zr&rBxC2u0`-1Buu&@ CAB@C$9u`u `m"[ b!wu`)3kQQ1Q71`Vis_PRXY%cPm!#5jP4P2B`?CopWyrPgPtf0u(P)f020PU9f0MPcPoP'ofRQrPQUaPiPn% f0WAl` XsbUePePv/`d%SRQ1#d:4%!*@8=3R6#@d\6\6 X2$B#30Ub\3]zg,7^-q>@VpcT<`of0m`sP4a>mmdasIJ'BT1/t"0t.2QQ3QQB3 tj1j1"5hbI6% 72EC?|8LPZX116Q;sa>arExAsF@>>ý__0Ru'@`*Xr>a cc^`Roo H?䣬!e'2$r d bpf`bffb bpf"}Be%Rbk ``.e;Rkbrđf@B #[_z}R=3đđBޅrr++r,$t -tH;:@0a(IafcX(Pq`uK`AP!eqPrqbBq b%F@rBq8%5=3_tD&&|rf"e#F3s͵NSYr'X$G,@R!B衅W_i_.] Q QBHʀ=34I'F}@` %_&͒#J0 Q`wNElWODpKDH0PِRTߐRlIِSqIQiOO|1<3;K'0U?}10~U3Uee8sTeq rqqq13@H36EBM$BM4BeMLBMB3M̅BM-uBG2HD: # h0>Th]]9 MP /AU@jZ?F͂T??FSFظ?P6 .]A]   JuM` W? EKu4bJt1 ytuo[=Jb(A =>JU2zGzt?@dM#߀A@bM;#z1 /#\I(bW)d+)d&J["*(w"?& ?AO$Tf/%B115 `?CopyrigTt(c)2`09MC0c.A0os;0fI2:1r=0v1aI0i;0n. Al0 A8s2ei0ejA0v0d0 1Y4-X 3  7&C0b59 FX7}'0UB)Ź&!$aI 7FKJlJ]Uhz211O! !u6?Fh,\.>*0II=*t >J:@T&ȑ/ [WpY\QEUzU . X[:;QRuSU5UF,®\oZOnlQ 8MP@u?FR >Nk"\T`GbmMlQi_f0%=mUt.m {=4+ ߥP> D"? 5-g?T0tp@bTh]]9 MP qAU@;?F5K?@xEL?6?F6?Pn6 L>M  P$  #uM` ?=`cc.@uRJtO  bm&QȽtA@Lؽl]WI@[>JU2zGzt?+PS@M/#J?&A@bbbPzs q#b](b)+&J[9#,ɺ ("a?& ?AR$ /%B9#V1V15 `?CopyrigTt (c)02`090M0c0os}0f2|1r01a0i}0n.0 Al0 8s2e0e0v0d0'"O1YS40#-9#b3 b7&0%0AbE9 YFX+G'0UB&!4a yFJlJ]Uhzt1h.A!-(:9#t.%-+0JN H߃W%$Jq-&?F mO" >Nk'"\RSWNh[H@_[4I 뇥P> 'CK=o? nO-?N]`@ b<couor5%BUV 6?woZA^ǿXEU@ T6?F __ jv6dDlVߦyZgPRkro}oiBdalN!\z3>6>CRHS X?BnDeTGvN7VHD: # h0>Th]]9 MP JU@jpiH?F[^?@$?F]Fڻ?P6 >JuM` ?j uJt  (a&aEt9S;-FEN=ۯ=Eh?u;>2zGzt?@M|JA@a7b#z}b(b!).+.&J[-m(?& I?A$0/Q%B!!5 c`?CopyrigTt (c)02`090M 0c 0oKs0f21r0@1a0i0n.0 Al[0 8s_2e30e 0vq0dS0!(Y$-# '& 0b59 6uX7_'0UJBŃ&J!$a FJlJ]Uhz!1!劵:F% Y.  8?zY^J4 ]9$]$R9S/RJUE UH$S!\1\? GX5ZU_YQJU __-_?\HD H# Uh4>T#A]]9 M /AU@jZ?FL|+??F@{~?P6 m. >b  JuM` ?+ILKu8J1t5 }ty_7??J]bA>tJU2]U"?=@MJ&A@3(WbA)N+N&JJ[ "#?& ?A9/Z) !!5 `?CopyrigTt(c])20A09uM-0c+0os%0If32$1r'0`1ai%0n. WAl{0 +8s2UeS0e+0v0ds0!E$5 򤲝-? 3  7&6iieE9 6X7 "'0#Ŵ&!$0 TIF]JlJ8>U#9AA `1!:Nk"\T`ObmM\"f4N[7 zex-K=FAa տ[jr D"? WZvD?4xa@RB#Th]]9 M IAU@FK?F\gVb?FY%?F_wᳬ?PJwW?>$[ >  JuM` ? ;  )u*Jt'  ^Zmta{֙3.JvdE @x?"_r?v{4܂ >pJU43f<!.&P~?b3bbfz@bAe&bq$Jd 2zGzt&.#@M#T"I&r(~&i$q)Q+}'i"~*B#81815 `?Co yrigTt (c)o02`09o0Mg0ce0os_0fm2^1r 1am0i_0n.o0 Al0 e8s2e0ee0v0d011Y54#-#D3 D7.&%g0Ab59 ;FX G[G'0URB.&!I$a [FoJl&}>UhE3MV1Ai!(# jV? & `& T` V_RUHPD  # #>h0TpHeeJ EU@u6?F5c{g&?@{r`5B?FF:Iͷ?mj>  M   *  (Y JuM` ? Y ":N`u#xJtu IoI%t"' % 'ii%$'`OkŁJU2"?@Ms#J&A@"b(bU)++&RJp}#>1#19 ?#bbbz| &/5> }#11"`?Co0yrig\t (c)02h090M0c0o%s0f21r0Aua0i0n.0_ Al!@ 8Us%Be0e0v7@ d@k"1Ue4t#B-}#3 746t%0 jU FXyGG'0UR46!O4i FJlJ$jUp5 3 h19 1!q(q4}#&J,t R j# 8bD?@@)?FvP؞?PEkU O|\QnS .܁nts}ped`,of :o ,M ? &d2? bȩ?tP@RBBoogr"55ZQUf_x____bY@ßAc_\jF?4ևi$on&h{c8oJo\opoo T)Y oaoooo o 6$|U7I[mS Uy{䷰7h7}'g"(I%ZvShX"cwӏiďa$xUGD  3 h0TdYYB U@%)?Fxg^?@ ߯H?Fw_7Uw?P}   f  f0 D fX lu` ?00DDXXll)ut  871%t%!?"Ư)1%:'ֿTeΦ1%T'ʤU!!O"`?CopyrigPt (c) 2\09 M c oKs f"!r 1a i n. Al00 (s42e0e vF0d(0"#S$#B-#l# '?R=#ǒ 2$Z##0U'B3@& ^5 DFX7dG'R&Dŭ6!4] dFxJeYk} #HFQ%RT][b5RT0][3RTD][5RTX][RTl]WHD:  H h4>T]]9 MAU@ ߯H?Fԋz)e??F9q?P6  >IM (#<Pd`<#P#dJuM` ? #2FZnubJt E-tA!["XѮJV&bN$p'N]I֤>J)U5 J[-# ?6 ??" A@.2Sb64B#2zGzt3@M#Jc678C6.? ;B72C: #115 k"`?CopyrigTt^ (c])^ 20@@9^ uM,@c*@os$@If2B#Ar&@_Aa2@i$@n.^ WAlz@ *Hs~BUeR@e*@v@dr@"14ʺ#-/ C  G6&iieP59 &XG W'0UiRŴ6!#40 $ V4ZlJ]Uhz@A!1(`C@U&pz?FDUy{?,d@#b`sb`"J-d K-q?F@F?F F0 ?Nk"?GiE*]CpdadC0[dhZe@#eGDQ> @" i$a3n&Y+`~rrood]io;e s"yr1C82K?Fѻ4G{?F-qx>tFjR^{|ZlYZe tmP|{Mޥa 0 1iS? q1+?wa@rc(<;"̏A!rFÀ5H5aE=*[^N?F%P?@"P&@ c?F{MTh]]9 M]AU@}%?F[$,?@+#V?Fd_3֡w?P6 B>M @ $ JuM` ^?3YY.KuHJtE  L<ܩt.'_3zMҩ,wsQ>JU2N贁N[?@M#J+&Aw@b](]i+bk)+)&Jp%#4"?>"<5!?& ?M#bbbz$ Rp&"/%B%#L1L15 `?Co yrigTt (c)02`090M{0cy0oss0f2r1r 1a0is0n.0 Al0 y8s2e0ey0v0d0"E1YI4#b-%#X3 X7A&%{0bP59 OFX!GoG'0UBŔ&!$a oFJlJ(>UhoI j1h$Ac!(`%#@'$F?>D{Q>L!gfQQ R "Jg V?Fo-R?@bHQ??FT!R?P& ߤlH\f6V\P5_E+UDv;*UmʙHQ:? w8s`*%$? .l?Q? ?\?D4_!R oogr5%Q3p_S@hIL?F~Kz?P)Oy޾ F @c"rA b$^sPj+u`dl(ET+QdAf u8<$HD:  H h4>T]]9 MIAU@ ܋?FOa>?@q`5B?F1*ݷ?P6 m8> (JuM` ?#SS2)uBJt?  \Eto֙>_B|KR>JU5 Jp'>͙#<?Z& ?bbbz@b#;A&b$B 2N/N[Z$@MI #"&(&D$ :;'"*#d1d15 `?Co; yrigTt (c)02U0090M0c0os0f21r; 1a0i0n}.0 Al0U 8s2e0e05v0d0"]1a4 #-,/p3 p7Z&'&iieU59 '&X9GG'K0UBZ&!u$K0 FJlJAUhhG1!- (T9C&J> RbT$R}R( "J:]Uy{䷧_8S s_@ o4%BT@.Tw?F:^֝ä >Nk"?YUU!f>)?\(K8ӷjmKl? a\$QU5Ui,SlQ%iu~!8hE_= T?F;uQuo`"rA 4sjQ޽lğ=onHD:  H h4>T]]9 MIAU@ ܋?F<j?@q`5B?F^ݷ?P6 m8>M (JuM` ?#SS2)uBJt?  \Et[Πؙ>_B?&}>J)>JU5 J#2N迴Nk?S@M #JC&AP bu(b)J++&B1[- #L#?&| ?$H*'#O1O15 `?CopyrigTt (c)020090M~0c|0osv0f2u1rx01a0iv0n.0 Al0 |8s2e0e|0v0d0"H1L4 #-/[3 %[7&'&iie@59 '&X|$GrG'0UBi&!40 rFJlJAUhh7m1!{! (Z$CR&FUy{?X> 81cKR RV "J{T@ ![?F=$. >Nk_"?YPSW>OcK8RKl? ף_p= $B:]'i,S\6aYss9$Q@5UV+6o'lQ:ifOdD`i[Dž}soąo82{_U{"rA z$s"HD:  H h4>T]]9 M!AU@ ܋?F@_v?@q`5B?F1*ݷ?P6 m$> JuM` ??Su.Jt+  \Epteap'Eqz>Bq|7>5 Jp>G͙;?2& ?bbbz@bAi&s&Bh 2zGztM?+"@MrX"&v(bu)+s/8*T<1<15 `?Co yrigTt (c)s02009s0Mk0ci0oKsc0fq2b1r 1aq0ic0n.s0 Al0 i8s2e0ei0v0d051P94-H3 H72&iie-59 XG_G'0UB2&M$0 _FsJlJ( >Uh_I `Z1m!afR* zRQd J:`]Uy{w_$S s@ +o4B`T@.Tw?F:^֝ä >Nk?"?zYQYV*)\§(7$d?ӷjm7lb+d ha\HD:  H h8>T ]]9 M!AU@ ܋?F*?@q`5Bǯ?F1?P6 $6>  JuzM`l? C"u2Jt/  \Etti|u~>Bu뒣;>RJU5 Jp>͙#<?6& ?bbbz@b#Am&by$Bl 2zGzt6#I@M\"&Rz(&q$y)+'q"*h,#:3o1o15 `?Co yrigTtk(c)k2009kM0c0os0f21r 1a0i0n.k Al0 8s2e0e0v@d0h1l4e-:?{3 {7I6&&i bP159 &XDGG'0UBX6&Q$0 FRJlJ(>UhI 1lq!a4DC9Nk"?CYQYf.Q;(hğ=;Af/h (\UHLuD" # ;3h( TEJ kU@jZ?F@{W~?P VN- I A `*%#.>>uA` ?%i i4iHu#XpTb>tU b7>t  a>U2zGz]?@9 %#>5&A@g(bu)+&X" !f$>F/#"&#="& "m"bu);r'X"i,X"/N/#11-#`?CopyrwigXt dwc)020090M0c0o%s0f21r01ua0i0n.0_ Al0 8UsBe0e0v@d0"i f &%!X/#]'0UB&Z5%0 VJl>8fUlY(C '(#vAm!#(:/#_Cgwu?F( mO"\>sl?/h%mq.%-+?@lփ?F^Uw>o|m7yQySf|wA=$*<~a3d@9SӀaۏ펃y'e0a#FX_`H> V+s LyC{:,YFhJr#~"IL&OB |oM~d`ro@+xpWoQsG@NfFXHw\HKp`(MScXO3gQj?PUNnVpZu\y_}$⯿<.jAxCtUFD  h(^TYYBBUF\.ߗ?x<F BP(?hP?X` ]!B66U 66 66%66ȅH??f]B@L&d2?-(1(.sUW!U&w/ҍ~  0QB`#Mainfr me, etwo k p rr pP1al d v c %1^| (SUG|& p??(:L ?qpwqqq wq wwpwq  qqwwzEwwtqwqw~wzqwqwp~*?Drag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aabL&d2ٿ\.??{ڿaAv??"jr3r\.CUG DF P# h>@/T(6D # #UF\.?@L&d2W?@w?P} <.4! D:J D:^:r,: A7f77f7 7!7&"l70&u`?( "66JJ^^rrTU/&0&0&D"u#N) ^2<7qU ?4b@{[`:#B'FT3i"'RQ92 z1L>ÿ@q@E?BDF,@rRSBu@`҈-g d(ag;_3@JAJA2hhXB)3*ÄR+Є.bq q2&&:r816a,s2+66u\L %8WQA$A[(BBSP@RXESTO$@,r23rUrD.e53_4&F3s͵N?SYFer=@:u]Qv,@F=a`up]XE628ABTOfD"J-$RRO(R[)VO`Rpasd`.e Tpx``B2+ 0Ls'_"x#0!UJ"b_ 簋 B)U2brJC\Rr˨83vvF_<U"D"=m2Q:2Q]q2XBƅ3/nR0{.b[a[a22:raa  A AE,,f7Ԣ18Q`#A#AQ; ^rprqqMMr1"8J6=a~Ak ]\SP@` SPa`e`lBsa_` E0ud`px`e`JXEas` T``U\cam`uF3dr7` SbM`i`fbUD7SLgn*f`c`ub/.eQXJAPbd. Nm@Je@=O! P`rx7x.[b`m DraeNiu9KoAe1S`u^8 Sri`a /J T//A/^`L`ch@{/Ҡ///Bl pQ/ @?#?<R`#Q?W??*oNwbkl"b`KҸH?[Ij`ad ps*OT]]9 M JU@z^?@]z?@ZVjźP6 ܠAJuM` ?juJt  3\It=W(\I*RIl#>2zGz?@M|JA@e7b #zb(b%)2+2&J[-m(?& I?A$4/U%B!!5 g`?CopyrigTt (c)020%090M0c0oKs 0f21r 0D1a0i 0n.0 Al_0 8sc2e70e0vu0dW0!$-X# '&?6iie59 6X7/'0UvBŇ&-!$0 -FAJlJAn h71Z1!TlL2 $<[V  ORvVJ:%'d2ɩ PY]PeS YY˱QEaZ_`YQU5U=Vr\. l\QY?))bUb526_;"rA #cHD: # h4>T]]9 M JU@d2L&?@P( ??@>?P6 e]A#uM` W?SuJt  RQ͸It=W\_(\IRIlƒ_',#>[,ɺ (? ?Ab A@"Sb$J2zGz?+P@MJ=&#fbbbPz (bE)&,"*UB!!5 g`?CopyrigTt (c)020%090M0c.0os 0f21r 0D1a0i 0n.0 Al_0 8sc2e70ej0vu0dW0@!$b-# 'Y?6iie59 6X7'0UvBŴ!0 D-FAJlJAh71h1!Z@bgX,  <)gV#\ M OR|VJ a9PY]PPReS[RUE:]r\.M\Q`YO Q5U=VN_YQĖU526_HU"rA #cHD: # h4>T]]9 M JU@z^?@<0 ?@bX,?@_~w?P6 >JuM` ?uJt  ףp= It=Wk t@IR)\_(IlK&D#>[-m(? ?AbA@"b$J2zGz?@M»J=&#fb{#z (bE)&,"*UB!!5 g`?CopyrigTt (c)020%090M0c.0os 0f21r 0D1a0i 0n.0 Al_0 8sc2e70ej0vu0dW0@!$b-# 'Y?6iie59 6X7'0UvBŴ!0 D-FAJlJAh71h1!TL&1 $<[V  ORvVJ:?`0 PY]PeS a+QEaZ_`YQU5U~=Vr\.m\QY%NX526_;"]rA #cHD: # h4>T]]9 M JU@RT*J?@r\.?@zP6  >#uM` ?juJt  ףp= It=W\(\IRQIl#>[,ɺ (a? ?Ab Aw@"b$J2zGz?+P@M»J=&#fbbbPz (b)&,"*B !!5 g`?CopyrigTt (wc)020%090M0c0o%s 0f21r 0D1ua0i 0n.0_ Al_0 8Usc2e70e0vu0 dW0!H$-,# 'K?6i@ie59 6X7'0UvB!0 -FAJlJAh711-!Z@3F  <F9Kt#  OR|VJa9PY]PPReS[RUE:]M\Q`YLQ5U=V N_YQU526_HUv"rA # cHD: # h4>T]]9 M JU@L&d2?@|??@t:?P6  >JuM` W?SuJt At=Wi_6#J]RbJlGX%#R>[*(? ?AbA;@"b $J2zGz?@dM#7& #fbu#z$ ( (&,"*BB!!5 g`?CopyrigT}tZ(c)ZW2009ZM 0]c 0os0f2R1r0>1a0i0n.Z AUlY0 8s]2e10e 0vo0dQ0!$ę-# '?6iie59 6X7}'0UpBi!0 'F;JlJF!( ]A!1-!Z@ B <yO#,4#BQ YR VJF!L&?@bX,_S RQ#jYiFQEU,b?@%\\(\\aX5U@?@ՔJR\p=o ף\kQX5Ufl6?@3oF\H8!\4rOiX:=?F&[f3r|UnTeRU ugZY8oJi QyZV'j[3rJa=yUU2@_RU"rA # HD: H ih(>T9 M3AU@L&d2?@\.?JP6 t >%M  &:"S:JuM` ?S0DVhurlnb#4"Jto ob'#t3&>JU#g"X#a?~& ?AJbAW@"+7 #J!%(,Ja#2zGz~"@MW#"6/%b)_;_6" /*Ba#115 2`?CopyrwigTt `wc)020090M0c0o%s0f21r0Aua0i0n.0_ Al/@ 8Us3Be@e0vE@d'@O"ib =X%`!Xa#Y'0UB~&%0 JlJ UhMQQ A75A!U(!1L&?@bX,Ơ h # RQ{h# >_,S{J,b?@xz^?@1o=?@h?PQ ̿ A!Y\(\\tگ@ UnĿvUohú{:i dk6!d P Ln4!lBoogr5%BUfl6ˣ_nH1_Xq~?4F6H/ ݴpX =?!6@,9?@HW8?P`ڒ੿ ) !oqf%$$UjGil!j( gtoomddvg0|RQPbرɠ )8!Oy;DcwVQ]z,Nz(6abxZQ~FZVjp[3’L%q^QFvc~b-Tt$bxbQ蟯 ' OBNz)6bXfUU^@ss9 ?@u?P1r _RUj2ilpfg.ɏmbd,>gxHD: # h0>Th]]9 MP IAU@Dxb?@F+?@`Wڔ?@u5F&?Pps-8R?>$> n JuM{` ?e ;  Su*Jt'  ʼnhmta{|_3.Jv9?\̧q?v-F$>JU2N'N[?@M#J&A@bI(bW)U+RU+U&J[# (<!J m?%P?AR^$(u/%B##1#15 `?CopyrigTt c)Z02`09Z0MR0cP0osJ0fX2I1rL01aX0iJ0n.Z0 l0 P8s2ex0ejP0v0d01Y 4#-X#/3 /7#(R0b59 &FX7FG_'2WUAFJ!$a FFD$&#l,&}>UhEMA11-O!(#H UV & `&d T` V_RHD: # h4>T]]9 M JU@^z?@ `?@<?@>_w?P6 >#uM` ?uJt  QIt=WwIRGzIlƒO_,#>*5 g`?CopyrigTt (c) 2U0 9 Mcosf"r-!a in}. AlH U sL"e e5v^ d@ PB[,ɺ ("a?& ?Ab Aw@"b$- &2?+P@MJ\6#fbbbPz (bE)&,"*%?@6iie 59 @6X7'K0UvBŽ&!$K0 -FAJlJ A>Uh1MDH]A U H!1|4#hLjA*lX!効:@MJR Y <RyJk1LbX,?@`0  S qq#Y`?[G=`a]~mΓAdžeЕQQ0F0ZVCXQ`@iqm2.uQQ=0r"H$YZ~X#Q`kwU{qm)F&uQ'QaZS0W+Q6`V BPXUmt~QR٘6p?@B |"Y(aaX$_کȑYr%e"U1/AoJ\` V"X;Q}rܢZ;o6hׯA\a ?,H%5eQCQ.|JZ'Ja6h1Aupm +p;eQ3@ Z,6hOQ'AE;Y}R8sRYh~Df7gWQAhVǫjfjchiL&E7gjE3ɏd2L14~.yl߶7ggQA?p8;M7 AİeXkQ9QUoQA4F G`XsUWiZñeHD: # h4>T]]9 M JU@JRT*?@+@ ?@ `0?@ ?P6 >n#uM` ?uJt  zGIt=W贁NIRQjIl{^z#R>[,ɺ (? ?Ab A;@"b$UJ=!=!5 g`?CopyrigTt (c)t 20 9t Ml c.j osd fr"c!rf !ar id n.t Al j(s"e ejj v d  6!E:$-I# I'L2]z?+OP@MJ\6#fbbbPz\ (b)&T,"*?@6iie 59 @6X7'0UvBŴ!0 D-FAJlJAhK7[!h1!Z@߆gp8  <JmQ#  OR|VJa9PY]PPReS[RUE:]6BGP(M\Q`YmRbU 5U=VN_YQUM526_HU"]rA #cHD: # h4>T]]9 M JU@jZV?@@?@,b?@&_d2?P(-DTw! @>>JuM` ?uJt  QIst=WR\(\I-lU#>[-m(w?ZP?AbA@"b$J2zG/z?HJ=&#fb{#z (b)&,"*B!!5 g`?CopyrigTt (c)0W20%090M0]c0os 0f2R1r 0D1a0i 0n.0 AUl_0 8sc2e70e0vu0dW0!$ę-# '?6iie59 6X7='0Z!0 -FRAJlJ(>Uh-I 1l!`a9 $< J:@t: HYdQ]S lQE-UV_XYTQHD: # h0>Th]]9 MP 5AU@D 1!?@&?@`Wڔ?@ 6F&?Pps-8R?>$ > n JuMy`?e ;  Su*Jt'  :mta{$_#pYmvK@{3.Jv׊ߖ.?k-I?>JU2N贁N[?@MJ&A@b5(bUC)A+A+A&J[? (<!6 ?%MP?AJ$(a/%B115 `?CopyrigTt] c)F02`W09F0M>0c<0os60fD251r80q1aD0i60nU.F0 l0 <8Us2ed0e<0v0 d01Y 4-3 7 #>0b59 FX72G'2KWU|A F!$a 2F#l(&}>UhE M-11;! AVI & `!&P }T` V_RHD: # h4>T]]9 M JU@&d2?@<0 ?@|>?@_~w?P6 !>#uM` ?uJt  )\(It=Wk t@IRף_p= ׳IlK&D#>[, (? ?Ab A@"b$J2zGz?+P)@MJ=&#fbbbPz (b)&,"*B!!5 g`?CopyrigTt (c)0W20%090M0]c0os 0f2R1r 0D1a0i 0n.0 AUl_0 8sc2e70e0vu0dW0!$ę-# '?6iie59 6X7}'0UvBa!0I -FAJlJ]Uhz11!Z@`0 f <:a+ѐ#B SRԀVJ:BP(?L&YS RJ)#hT_RUEtL!ZrMP  _QdYP^CyQ5Ul6aTYa\8{?h5a=ZR_YyaĚU2:_LU"rA #sHD H# Uh4>T#A]]9 M AU@L&d2?@\.?tP6 j">  ( <$U<mJuM` /?U2FXjutJtq t ,J&b2$H &C">[JU7w$?& ?A5"bA@R"&Jtm#2U"?s"@Mc#J&(IC (/58*m#p1p15 "`?Copy_rigTt (c) 2U009 M0c0os0f21rԙ01a i0n}. Al0U 8s2e0e05v@d0["i1Em4d#(m#5 -EO|3K |7&WFi@ieE9 WFXmGs"'K0#Ŋ&!$K0 FJlJ U#%]VQVQ ]9 1HA!a(Zm#]/z JpC"j(\g}QQ R"fd"J:TZV՛jjS 3sbd dW&@aa5Le@%c~\ja}_,‘up2u?pf}Lb .lukut PF Lpa @cBr5%3q?u,b?@xz^?@oo=?@?PqQ ̿ us&r\ϑ|t@ ħ|v˽|oohwà0B  "K2[@a!fl6NwekH?zGёtm !+s KwYZHCEl#Fxy9ܕwOB í~dto@+UDZoLsGof8 $ (=hZ+P+=OaX5H1?ײ;//%/7/(3X0ϼՁo7k"آS9l%UFD  h ^TYY>UFD"H$'@F @Fx,/T6D # 9UFD"H$@]F@&u@P} jihf,l>u` ?V,@y^u#hQtSfttRt'A@y3dbr(+#tTB/(u/!/ <"/S.pd#@i#5J~?/"._`Make Bx0cz0groundT#X3Ҵ14;1`VIS_PRXYn0CHM!_#60080"`?C0py0i0ht~0(0)~02009~0M@cJ2s0fB Ar@GAa@i0nn0 ~0Alb@ HsfBe:@e0v|0d$n2"e (^C5@ #5 X3hHA%DK5D,K3D@Gg$aq_DaS T@H11"T2-T3[T ZTET@(APa%1 C1o1Do1y.bg B2Q5SiC@nU3bk,qoUcj?bhKrQi? ^ebo #!} baRe#d,UEohbcD&'C1(cQ(QR=S1fZi#3 D0N0UtDBn@a@nEEg_09YBaPPo1o1"(S11iee52>bXc1`I!]&` H@d|2&F0q}A0q` SPowُbb+e"vM- ~-!bb bL~f]Dfah 7Qbdҏ䅕HD: # ;h4>T]]9 # ,AUFD"H$@FZVj@&@@P -u `u bu  _@"f)l A)0t#` bFNt?p [eܠAuv` ?5urJϞ>Xq& $##./@%W(l"r/ tvel 46<R?$&(Q/$BU2q$0?#?56?\.?Ef`?F 7`BackgroundC05l0rz)z5=t3I1 3&?h<:JA#3+0UQB3_ 3117;l`?1py0i0ht (0)@20@9@M@c2s0fB1r@1a@i0n.@ KA0l@Gs RUe@e0vPd@0l>#$!Uh#3 A A\TYJ*3BU_1HD: ##=h0>Th]]9 3 UF>T/?FD"H$@Fn- @FN?t?P>u` o? u3`>$t  `"?A@>D$_~Ut W"p [VJ5 .Lc0U?AGG}YL?b` LineColA r&zY!"'&ɆX#mddd#nFFF"?&?#!"'&&` ]STadA w?/#/D+$1# F9 lC '2I&aWY*1` Ac= nt/#Ybdy3zg9*#!$)$|I!8<e Q3#8$f$3$FP3(B#GB117;1#?!pyG i}gTt (u)@2`09@uM9 cG osA IfB!r@F!aV0iA n.@ UA2 HsBe@eG v= d@0 l>]UhzЁA3!!`J !V)XU__Y3^_oXgU5^Bo_foU@__oojEb59 Mb{7/v!3rav44K7 %iPCH6Hg7w4'~vv !"608e @Q:(3O@v+?=!$Yz,Z#b~~-T{ HD: ##=h0>Th]]9 3 #UFH$$@FFJx-C-?F BP(ԭ??Pn>u` ?6u3`b>"6(t  2U0*?A@BHV-kYt ["p: [ZՄJU5 CLc0U"?AG}]LC` Line_ColI rz])"/&Cmddd#nFFF"?0&?#)$1$)"/&&` STadI wG/#/L+$9# %FA lK 72Q&a]A1` AcE nt?#]bd3zՃ~92#!c'  3#e8((3F7BGk+B$JA3117;9#?1pyO igTtW ()@2`W09@MA cO osI fB1rԗ@N!am0iI n].@ A22 HUsBe@eO vE d@0l>]U@hzA4K ?BEOJ !9"XU__Y3^o(o{gU5^eo_oU_oo$3ojEb5(9 M{7/6v!3ra4v54ve}%i6FWig74 '$~vx 1)"&8ea:@e@ @("4Q:/=@3 9)']zE,Z#(T(-ӁTjQc@0@HD ##=h4>TB]]9 3UF.L@FD"H$@F+@FNt?P>u` o? u3`>"(t L F%u?A@BHڬ\mY(t["p[ZJ5 .LT0U"?A?G}FCb` LineColE rzR˵#nwFFFw#?x&?$#u+&&` STadE wC/#/H+$5# F= lDG '2M&%,`h9!!Btn! 3#.> (3672M%11Ԓ7;5#?!pyK igTt (c)'@W203@9'@M= ]cK osE f%BR!r@J!a%@iE Un0 '@A2 HUsqBeE@eK vA Id2l>0>UhhCA3%!bJ@&)C6XU!_A_SY3g^__WWU@5^_3__WU@E_y_9o_bT= tG e j5ie@5(9 M{x7/69v!3LrA,Tv5!$;7laiooXx7w'2#x~ov]x vw_H<> Eל ߪJAC BFw#84B} uF]@ekHo+xWJ]BzaG=]#P_*<N`r(ߗ?fUFD  h ^TYYHUFD"H$'@F @FxT]]9 #Q ,AUFD"H$@F BߡP(?&@@P-DT! -u `u bu  @")lt A)0t#` bԚp [WenAu` ?urJ &@Fi#$!Uh#3 A Q3 "$BA 3ŊJ*3&"B%e>o1UGDF P# h>,/T6D # 9UFD"H$@]F@&u@P} jih,D >u`} ?VU,@y^u#hQtSft{tRt'A@3<db(+#tTDB/(u/!/<"/S.d#@4#5~%?/"._`Make Bx0cz0gro_und*#X314;1`VIS_PRXYn0CHM!#60082݉"`?C0puy0i0ht~0(0)~0200U9~0M@c2s0IfB Ar@GAa@i0nn0 ~0AUlb@ HsfBe:@e0v|0dn2"e (^C5 (#5 X3hHA%DK5D,K3DGg$aq_aS T11"IT2-T3[T ZTETɴ(Ta%1 C18o1Hy.bgBE 2Q5Si!@nU3lk,{oUZmj?bhuKrQi? ^eb #! >baeo1,UEohlc&'C1(cQPQR=S1fi#3 D0N0tDBn@a@nEEg_09YBaPo1o1"(S11see52>Xc1`I!&` H@d|2&F0}A0q` SPo]wbb+e"vU`6ȅ- ~-!b)bbVf]Dfah 7Qld܏HD: ##=h 0>T@h  9 T3UF}ð?FD"H$@FYjB @F l?uP>u` ? u3`>$t  u?A@>D9ȯvUQt W"up [VJJ5 Lc0U?AG}YL?b` Line_ColA rzY!"'&##nFFF"?&S?#!"'&&w` STadA Iw?/#/D+$1#K F9 lC '2I+'&!$)$|!$L8X< (3#.$3$3632M1P17;1#?!wpyG igT_t ()<@]2`09<@M9 ]cG osA f:BR!r.@F!a:@iA Un0 <@A2 2HUsBeZ@eG v= Id2l>]Uhz#A3!!J !,VKKX%U6_V_hY3|^__WlU5%^_H_olU%__No_j5b59 M{7/'v!3:raBv5X4;s7B %i5oog74'f~]vKx Nv!"I68e ^@Q:(3OO@f+~?!$\Yz,ZB#b ~-~T{ HD: ##=h 0>T@h  9 T3#UFG1"@FF$I @F BP(?V?P>u`} ?u3`b[>"(t  c]K?A@BHuV5Yt T["p [ZjJU5 CKLc0U"?AGQ}]LC` LineColI rzI])"/&Emddd#nFwFF"?&?#)$1$)"/&&` ]STadI wG/#/L+$9# FRA lK 72Q&eoa]R4` AcE nt83Q%#]b[d3z92#M!c'  Q3#8(f(3F7BGkBBLA3B117;9#?1pyO i}gTt (u)@2`09@uMA cO osI IfB1r@N!am0iI n.@ UA22 HsBe@eO vE d@0 l>]UhzA4 ABGOJ!9"XU__Y3^o*o}gU5^go_oU@_oo5ojEb59 Mb{7/v!3rav44vg}%iP8FYkg7w4'$~vv 3)"&P8ea@e@ @$6Q:>@e3 9)']z,Z#(T(-\ՁTQc@ 0@HD: ##=h4>T]]9 @3 UF=U~@FD"H$@F[M l_?uP>u` ? u3`>"(t  {?A@BH-ϝY(Qt ["up [ZJJ5 Li0U"?AG}FLCb` Lne_ColE rz|&.#E#mddd#nFFF"a?&?#%"+&&` S.TadE wC/#i/H+$5# FlG 72M&ea]Ra` AcX0e? t83M%#]bd3zs9.#%$,-$!]/(h9B>3z C#8> (3JF7NBIGJAA!G;5#?1pyK igTt (X0)@20@9@Mc.K osE fB1r@J!a`0iE n.@ A%2 Hs Re@eK v"A d@@l> 0>Uhh @CA3%!J@&CXU__Y3no+o~gU5^ho_oUE_oo6obTt>G e jiHle59 M{G/v!3r@QvE4,K7qgG^"D'2#x [%"6)_H<>? Dל ߪJAC BFxy#:n5B} w]@e ko+>X]B}B]@PG-&P+=Oas?Sĩx%UFD  h ^TYYRUFD"H$'@F @FxT]]9 #AUFD"H$@&@FTЃ$?P ]Au` ? un#`t A@`@I:t5ZE$:"p: [g5J=U5 ? ?B#0{GzI@hQ"*!!5 o`?CopyrigTt](wc)]20 9]M c o%s f"!r !ua i n.]_ Al0 (Us2e e v00-d0l>0>Uhh!#k!UJ`F6[48{  FMBC!??1$E34NMO_OG$E4E6O?O$E28?;1rA TRZSB3HD:  # ;h0>Th]]9 #UFzEI@FD"H$@FE I#@F)[3#Gӹ?P ]Au` ^? u#`t  I.!?_A@=Dgj+U-tA`WU"p [VJ#0{GzK?<@/BhJA/mdddG G) ?AgaYT6` Fil Co orzYbWYAY{bd#;z),!=D" #g#]#M%!!7;}`?!py io ht (c)y02`09y0M c os fw2!rk0!aw0i n.y0 A" o8s2e0e v0d0 l>]Uhz`1X#!J`iF  8H\ 3FM@BsOOAE3NO_WWE%EjFA_Oe_E2cO;QArA RS3HD:  # ;h0>Th]]9 #AUF_k'$@FC@F9C?Fl6_f?P n>u{` ?m u#7`t  Fx $?A@=DsU,tA`Fp5׹?p [WW"WJ#U0{Gz?<@MBh G ^) ?A_aYL!.` Fil Co orVzYAY{b#z)=/["  3~##M% 1 17;}`?!py igTt (c)02`090M c os f2!rz0!a0i n.0 A" ~8s2e0e v0d00l>]Uhzo1X#!Je`FxF ) 8HR )3FMBOOAE3N__fWE%EyFP_Ot_E2rO;`ArA bc3HD:  # ;h0>Th]]9 #AUF_k'$@FF9C?F)[3#ӹ?u?P u` ?u#`b>"(t  Fx $?A@BH_sYCt ["p [ZJ#U0{Gz%?<@?aBhA(G XO) ?A_oa]L.` Fil Co orz]A]bv#z)=/L" !#o#"(#JM!h!7;`?!wpy igTt (cu)y02`09y0uM c os Ifw2!rk0!aw0i n.y0 UA" o8s2e0e v0d0 l>]Uhz`1$ "H/1BJ!`9H""" 3FMBOOE3N __oWE%EY_O}_E2{O;rA bc3HD:  # ;h0>Th]]9 #AUFzEI@FFE I#@F)[?3#ӹ?P u` ?mu#`bn >"m(t  I.!?A@BHgj+YtP ["up [ZJ#U0U?<@/BhA^mdddG `O) ?Aga]T6` Fwil Co orz]b]A]bdv#z)4!=/L" 3o#"(#M%11 7;`?!py iw ht (c)02`090M c os f2!rs0!a0i n.0 A" w8s2e0e v0d00l>]Uhzh1Z$ "71BJ`9H"( "3FMBOOE3N_$_wWEEa_O_E2O;rA bc3UGDF P# h>,/T6D # UFD"H$@]F@&u@P}  k0g,@DTh |u`} ?LU,@TUh|u#QtSt.%& 0"tR.$t|7/I'A@%#tT.%U/I(/g-3b)5/G((""/.d\63@?3e5~???62.`Make B0c0grou/nd& ,3؞314G;1`VIS_PRXY0CHM!#w60@82"`?C0py0i0ht0(0)02=@090MZ@c2s0f`BQArT@Aa`@i0n0 0Al@ XHsBe*@e0v0d2-2 eh8^hhH-Q659TD[e59ThD[39T@D[9TD[E9ThD[5X|D[%U9TDWndaKoc7TP116238ycA1I51x>Xr1I/1&` HZ@d2&F0o`@A0#` SPowo '"0!+x"vde&s ~s!4r:r4r%pw:rgAo%UhmI {a1$162te2-t3I[ ZE*R38\yca651+4r:rB1b?xav@|5Rq'e5ycBE@G'3,'㫊?GMKc`? 3b #/1 bq3Hep@,T*h|62+EM6H'1\+U=yceq@ D0NrQAn`@aZ@5a-2] ,Th O7qouHD:  ##=h0>Th]]9 3!#UFaD@Fi4F?@F3mq?P݀>u` ?u3>(.t  (~k ?A@HrN_atR bp [_a"aJڍU5 ILc0U~$"?AG}cLI` LineCoklf rzcF"L&nFFF#?&S?#F"L&&w` STadf wd/#/i/J(i" Qg3#$.f.36h@H1$g1g1o7;V#?#1pyl igTt ( )@2`09@M^ c.l os$0fB#1r@k!a@i$0n.@ A&0lT@ Gs\Be0@el Evb dP@e0l>]Uhz143F!J2!XVD(Q(E _1_CT3R^k_}_WBUL5N___BUOd_H$o_j5bPL59 M{U7l/f!3raXve5!$fDm2%T12ooXU7w'B#$<~3v!x vI8!e fwQU:(3O@~f5T?F$c"z,Z#bV~-(T{{<B2>/ HD:  ##=h0>Th]]9 3!#UF_k'$@Fi4F?F9C?F3m]?P>u` ?iu3>k(.t  Fx $?A@HN?s_a't bp [a"aJU5 - ILT0U$"?A?G}F/I` LineColf rz!#nFFF#a?&?#F,F"L&&` ]STadf wd/#/i+$V# F^ lh #72n&` =?o)z 3#B..23`6=27kH A3117;V#?i1pyl igTt (c)g@2`09g@M^ cl oKsj0feBi1rY@k!ae@ij0n.g@ A@2 ]HsBe@el vb dH@0l>]UhzNA3F!J@32&2&}Q(PUa__T3^__%gU5P^os_3oUP__yo_ j5b59 M{7/Rv!3eramv4!$Rv}ai6z7 '#$ő~vmv vU%T"b xe@i?8Te'aa@eg@ fQ:?@,3 9F'c"z,Z#.T5-TAci@0m@HD:  ##=h4>T]]9 P3#UFD3@F:N@ @F~?Pn>u` ? vu3`[>"(t  #?A@BHY,t#`F B_P(?p [_["[JU5 Lc0U~"?AG}]TLCb` LineCokl\ rz]<"B&#nFFF#?&?#<"B&&` ]STad\ wZ/#/_+$L# FT l^ 72d+A'Ah9ѤB! Q3#.(f(36(72M3117;L#?1pyb igTt ( )M@20Y@9M@MT cb os\ fKB1r?@a!aK@i\ n0 M@A62 CHsBek@eb vX d2l>0>UhhC4A3 ל ߪJAC BF|#˲R7B} x]@eko+s]K|aIJ][8 3ͩ Ի5 ~Dz G(l P+=Oas   ߥȲs mUFD  h(^TYYBUF\.?x<F BP(?P?< 5 6IHC 6gfa6a9SBU@L&d2U?(sU*!(&J/BH8$q?/&?(H])|  0OB`"Firewal0,n0t0o0k"0p0r0pP711,d 0v0c0 U1^| a(){U5GO& h?0B?E\\\o   w w wy ߹{w yw yϹw {y{wwy w  ߛ{ 뛐*8p  } ߰ i|jDrag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aab\.ҿ~?? ;Կ)j??r]3rCUG DF P# h @T(PYY#EψUF\.?@~߻?P} ,.B ! :J :^:rY:k Au` ?"66JJ^^rru# *^b"h,h')qU ?3?4b {[`:#"&a#'JQ)b" ^^l!L1$l" l"7'>>ÿ@q0-5?46 rz23S2-uY0`-1Bu@ l"r3A`'Bl" L$9u`u `"[ bzb!u`R$"% أ#Q!'1`Vis_PRXYcPm!#5HP47"2`?CopyUr.PgPt (>P]) 20{P9 M.PcePo0PoIfmR^QraPQamPi_Pn AUlP eXsRe0PeePvPdB@!#d$%b!(g#>@f!^#&& "2bbbz12bGbf!cB##0Ub#]g,7^aN @V cT8fda[+_'s1 1"hh"2)t3 *tB+tBaa"qqb(!*paaSb"+6u\%G(!!["@Чcq"53T@ R"q3f uEf;uE5's_t$v&F3s͵NSYFuEf0we'Aj,@QZPUpQ"5x}L1*p"(AT?ݟZ2wB2;6q`RPQs.PU TPxmPSP^2l"+ 0^<@5b ۠۠"x5R"۫br3-PBrw('ٛ`ff_< $R-mA.AQS*pl!u "u"2u3/bBA0oB%Q%Q"2b3 !!E؁؁| NPl!#(>*pQ~ [ ]\@U0` SPaaPePl6rsRQA)P E u.PpBPeP{"5X .0` TcPѼSP"`DPvR3 `r ޹b` S;b4SP&SF.PQ!wPQJEd%TMPn;fPEcmPuR"/6HEQI[]1PRd Nm Eh! PPr"h"CU]%R`sRU3eA(ew3`tJرe^`BT , SRi+~K׻T `L_PcXG&8*JBlPiP;anIY0 -R_PoUS>b©'s)&U1:`` %2R&RviR`f`NEtWO6PKK`SHPP60 4ROJ2R*tI60S1QR`f`s7fitac'Eympx]b7'dYfjBr 3aQrf$i-QIaaL&E`v?`HvADK^DKDQKDqKED3aGHD H# h4>T]]9 MT JU@5wn?@'d2?@vP6 AJuM` W?SuJt  w]It=WuVIRY]JIl#>>@fY(? ?ALbbbz@A ebbfb)]b 6(. T#Jq!q!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d j!n$EB5 -F?}# }'X62zGz?3S@MJD6*-!./@ D)QQ&K,<"Q*i@ieE9 X6Xn73'K0UB!K0 aFuJlJAUhhc7![hz]0T ]]JU@\.?@WjZ?@* `?@JRT?P NamuM` ?,2<u#FtC mtimuV~ڻunO2zGz?>?@MA@bb?bz+ )#bC(+bQ)^+^&Ɇ"@fx?0&?x|5/-&bf^ >/`/%N B1B1`?Copyrigt(c)209Mq0co0o%si0fw2h1rk01uaw0ii0n._ Al0 o8Us2e0eo0v0 d0;1U?4-N3 N7&q045 EFXGeG'0UBų&!$$ eFyJlU`1#El,B^ PhO (!p&d2?@`0  <S ?؉O<S 5<Q3::*\QY'aQ5____Tehf'W{oaYQE##$Wuu']C_U_ kuVn_j@ղ_bl|>xoo uJSAU(:L^xSp8wag?%ehYjdcp i!rx  -?QcxS ?@ je,㨏O4Fӏ 5:vox] 2DVhxSPbtߔ尒 ? ypv y FXj|t:NѧwmN6@4~펰pdNAQcu.0ܰ+ 5P/Q&a/4EHD H# h4>T]]9 MT JU@\.?@W~?P6 >JuM` ?juJt At=WJRb~lT>5 g`?CopyrigTtZ(c)Z20 9ZMcoKsfr!!ain.Z Al< s@"e evR d4 HT5 B[}#?& ?AAw@"b4-/ &&t2Uy2?")@MJx6D8<6<2:iieE9 &5X.7"/'0y3&-!$0 FJ)lJ8>Uh ޓ$Ja7Z@?@ 0<Mbh#B] ?RlVJ:vn?6\ES YwQ#TTKRU%Ur=\PYZd;O#UEd^_OZaQU%5UPBgP([Ma\QU-V'?d2=_OZuV%hb2&_8U2rA 3LsQ% bHD H# h4>T]]9 MT JU@* `?@~?@PBWP(P6  n>JuM{` ?5u#t  5]It=WZd;IRMIl#>>@f.? ?ALbbbz@A ebbfb)]b6(. T#Jq!q!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d j!n$EB5 -F?}# }'X62zGz?S@MJP6-21/D)Q&K,<"Q*iiePE9 X6Xn7'0UB!%0 aFuJlJAUhhc7!-oiLaUe52j_|Uv<"rA ;#c8 bHD H# h4>T]]9 MT JU@\.?@@ ??@{?^?P6 v >JuM` ?)uJt At=W;On#JRbJl?ʡE#>>@f?.a? ?ALbbbz@A ebbfb)bE0(( #Jk!k!5 g`?CopyrigTtZ(c)Z20 9ZM c os f"!r !a i n.Z Al (s"e e v d d!h$B5 ɤ-@?w# Rw'R62zGzM?@MAJ6-2+/>)QK&E,6"K*i@ieE9 R6Xh7'0UB!0 [FoJl8JAUhh]7!6!Z@( <xLK#  }RSVJ:vn?6S YwQUTRU5UXz{\YR/IѫQEUPBP3([MabaiU_52d_vU6"rA 5#c8THD: H ih(>T9 M3JU@\.?@~?ҷP6 m >JuM` ^?5ulbSD_Jt bstE>2zGz;?@MJA@u+b+&K !JS"j& 1"Ab+Kb )-,-/B!!5 `?CopyrigTt `c)502U0A0950M-0c+0os%0f32$1r'0`1a30i%0n}.50 Al{0U +8s2eS0e+0v0ds0ib =L!XY/'0U Bj&%0 :l*J8>Uh@[A[A 1:vݏn? Y YwAQi@qJEr Ti Z?d;O!U3!^9_KZXQAUEPBϡP(KMQLQ I@'d2\ QLYuV_XAo@ ,oKZ?Mb_XEOOO\_H8> G*+s d:TzR4D$o F #yw LB г ~dzC @+htEBG̲_PhI" (J& 2 F, 3Ey/ 8G2(C5 UFD  h(^TYYB>UF~?x<F BP(c?P?  s 6 6DSM 6gM 6D{M6M 6TM66x6K6v6HBU?8/&?R)B@L&d2?h-y(\.gҋ(i.sU!A&/@)Y(  0B`KLaptuo>0,>0or@0ableF0nB0tV0bB0oukF0mB0biT4UcB0m>0u^2rj4nr0A11nV0twJ2i1eq0i>0mV0n@0,PaL0d01e11^| ()IU5G& p??U"6? QQQ ``pwwpw w wނ ppK_wpwpwwppwwpppp ~ w w~~@w?~MpopJpppp~ppwpkwwZDrag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aab~߿?_)jk?3@ ?DUG D # h @^T(YYEUF~K? P} 7K.B!C D :T:h1Y:| 73 7 73v7x7377&u` ? "66JTThh||j&&"uJ&)R2%X<X7eU ?0?' 4b0{[`:1262Q3R2A"'QT9R2 ^L1$K" 7"Gd' @Bc]D?MQ0rBCSBuY@`-1"Ru$ @mGrC$Q'('R7"A& <4' &)9uv`u `"[bR1'$u.`425ؓ3a171`Vis_P_RXYcPm!#5H`o06QB`?CopWyr.`gPt0U(>`)02L`0P`W M.`ce`o0`'ofmb^ara`aUam`i_`n 0WAl` ehsbUe0`ee`v`dR13d45R1*83 Br3 66 2'QbtzV[1SBuL@`` F.`a^al^bz1 -2uߐqݐvR2CB#30U3F:w,7^F`^ P sT<`o0m`sm`a>g da;_zAA2Hhh"B)B* R+R::2mDmr81}ahcwP#6u\$ %W11%[2P@RA4"ECT'$@b2AEȜUiBȜU5z_4ɓ&F3sNSYF=U0ʚu s,@a#Z`ep"EˍLA}28ABTO0V""-sRxQ'(BKF>`R`as.`e T`xm`S`^B 0^LK'7"P#P E""b ..2EB2.˯brCRqʯܯ8z,BF3<^-""B=mQQ<*dh2"B B/R0R%a%a2qqr3 11E++0|ss7C8*PbQ11A;Q(r,`LA=k^u1MAE!ffuVҶ8}aY k q]PU@` SPUaa`e`lsRaQ)` Equ .`pB`e`β"Ep` QTc`S`&c^aEma`u9E^Mx_ ` S*bS`u`EL t_b9UdxM`n*f`cm`ub%7Uh5GAPbds Nm0{U0! P`rxqp2D@%b` Dbaew3uĮAe:fC`c'97/I/ Sbi`ao//¹T//` L_`ch/6?'?9?B"l`i`]?8(Y@?0?R_`?65?ON*h"wbk"a"R`K9B-/H`OI4`ad`cOLO/OOnh$gsC_L(t˰=_O_TQm2/atfa I4aoO_g¹f__㪲`Uk f`Pbao%ov8_No\_MPCOoNo(m Qt Q6LM5GMLvEHbdr!SC qpsY` W@DQQ:V6xHS`C@MOя^u`MpmB :V¡3EYx!O U1vqyRdnu}Ϗo߳(©`X^~"` %_@&דq|`NTWORKurH`PaRTRǰISQk:i*,Ŕ{Xo'0U¹ňaY`y}֏(!(H*ڽ(5|ѳy(!{5{ᤰdvHv˷v d,v5˧v(!&v˟"vĈ~(%vċ~Λ%vİQ5vѼd{5v5UGD  3 h0TdYYB IUF%D"?Fب̓m?Fre?F_jYfw?P} 8Yf u` ?0)u:t7  (\toLӑpG?WS̆{c٤CU!!`?CopyrigPt (c)J 2\09J MB c@ oKs: fH"9!r< u!aH i: n.J Al @(s"eh e@ v d  #S$#B- #l# '?R;= # &#24 6 6 2$Z# #0U2 3@&B ^#5 6X'7'R4 6!4] 6:e6^P#[EBM #HA%DGHD: H ih ,>T  9 M/AUF~?FtC&j+?P6 8V> a JuM` ?0K Ku:yJ6bqlt7~ bJt  $OC>JU2zGz?#@MJ?A@+(b9)F+,F&" !*$5J" "& w"\A1"b9)+6'"s,"s/B-  P3v#9 P1P1X7;`?CopyrigTt (c)020090M0c0os0f21r01a0i0n.0 Al@ 8s Be0e0v@d0N0i @b9 l6(X>7JG'0UBX&50 JF^JlJ UhMAA $ A11!:Lh4 0 tt3J!@|?Fhdzt 0 ?kCYk XEjUqA '[\<1ߑUjU!o6Pa@oVUhq`V r])m܆YaYi*X(QYaD"H?F=0 \S㥛\blXfYFt:N\[ZR ÅبX0Q^pp\.zZ ,\ 6?iwUS5?FrSGo?PE ?=TvE?!Y?.`txv6mT]]9 M 5AUF@ ?Ft:N?FM~u_7w?P6 .>M JuM` ? IKSu8Jt5  rtyV_->5^IWA>JUT5 J#/!/!5 `?CopyrigTt (c)f 20r 9f M^ c\ osV fd"U!rX !ad iV n.f Al \(s"e e\ v d (!E,$#E)edq%rVA٫llx51o>2rA 53eHD H# ih#4>TA#3 AM JUF8?FzwJHM?F,+?F%VA?P6  n>JuM{` ?5uJt  f߰nZIt=Wv%MIRG|׈,IljE7#D>5 J5 g`?CopyrigTt (c)* 206 9* M" c oKs f("!r U!a( i n.* Alp (st"eH e v dh PB~A!"#?& ?AlJa@Y;6` F" q!z!lT"z0_b0A0#bmT3z0B9Ub25181 $?25?G5\ P1u`"?46?8C_1A1b?t0bAFbI&DɤG b&LBFAL2zGz?")@MJFp'CfT<(Gb&I3F-LB3FiieE9 1X]G/'0UR&-!40 jV~Z 3Q hRG!-AT6yf3@$<f@C  bfJ: @BS+c X$}#e`e%akqcEAyHh?F~l0I#c ,aTE1vo>B]rA Cs+( bHD: # h#4>T#3 AMT JUF ?FH$D?F8}, WcSP6  n>JuM{` ?5uJt  s߿ 0eIt=W(\IR}WIl#>5 UJ5 g`?CopyrigTt (c)* 206 9* M" c. os f("!r U!a( i n.* Alp (st"eH ej v dh  E~A!"w#?X& ?AlJa@Y6` F" q!!lT"z}0b0A0#bT3z0UB9b25U181 $?25?*G5\P1u`"?46 ?8_1A1b?t0}bAF'b&D%G &LBFAL2zGz?"@MJF'CfT<(GbE&I3F-LB3Fiie%9 1X]G'0URŴ&!40 jV~Z 3Q hRG!A`Lޖ3?F\.0hO *1J#<=#,AB  f!JabdP$dreEAJT]]9 M qAUFp8?Ft:N?P6 mL >M ($JuM` ?AggL2DuVJtS  {G7zt.%_>JU5 J =#k!k!5 `?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v d +"d!Eh$4#=#|x!F2 J3?]6 ?Ab4z@0Szu< `` F !!l"z֔0` ?251ݔ6b A6b4(4"Y==/w# w']6T4"BK/C2?=@M3#JF3@C37b"9F<2Fiie759 O&5X/GB_A/'0U{R]6-!x40 2VFZlJQD0h$G!Z@!11(Z/CFF\.30AR@Lu)_G  RaCf4"J? 6Bf*}~2?FVor?PE &TvE?~1LZc Jxdid`gR*YB_Lc׏_:M m&!&Ra DBBBTfwr5UBoPb2]rA 3q+"HD: # h4>T]]9 M 5AUFVj?Fޣ ~-?Fe2L&?FZT?P6 m. >b JuM` ?+ILKu8Jt5  O7nty>+B`"$'-A>JU5 J #/!/!5 `?CopyrigTt (wc)f 20r 9f M^ c\ o%sV fd"U!rX !uad iV n.f _ Al \(Us"e e\ v d (!E,$~|y7, SzQ|nF?F.`d %TvE?B1ZBrA YCc4!*uxnG@#r & 4xavDB#Bsrb5UHD: # h4>T]]9 M 5AUF{y3I?F~??Fd2Lq?P6 . >  mJuM` ?0IKu8Jt5  n`ݴڅtyx&1UԅbX9AR>JU5 J#/!/!5 `?CopyrigTt (c)f W20r 9f M^ ]c\ osV fd"RU!rX !ad iV n.f AUl \(s"e e\ v d @(!E,$~ 0T  JUFe?F:[??FO&Q,"7?P }uM` ?j`fpu#zAtw  [{t2Oۨy`<%t2N贁Nk?@MM+&A8 b*](i+i+i&p!!`?Copyrigt (cu) 209 uM c os If"!r 1a# i n. WAl30 (s72Ue 0e vI0d+0"!3 $#)Ry&#‘4?6Q?\c"bk)i+Q;'-,# '6% h5 IFXGiG'K0UBŨ6!4I iF}JlU!#A(ZFj^I30vi p-ڏ|Y &V"(:!]H?F{wX@0pS l01 o(fy { xU,>Pbtv3m?F/@M\lSFp ^ \ 0+??Fް}ulHyƊqWwi?Fܾrޝ۷cl)-i]oa?F5o רo`lۗ]Cfϟy { xY^p𔟦pO4?F0eO,plkleW,^ \ -r[v?Fp =\LhlmhG N1?F[Q{ l/5:1 fz7[;KՃT0P1ey { x¿Կ{dޯ?Fv9|eޝN.l?DɨT[\[fk'?F#Y}3Zflٙ(oWU"NhLޝ].Yt?BدW>lrt~]|%߸'0(f%y{xa v ?FϘǫḿl$h|a[s!?Fۂe2'[\YRSWW ?FIǧmp~Xl-TBi9w_Ku~Սe~< 8qOfSx#5y=Qgk?FG[Pm j%a ;(|a[sjT?FjwZ̮̈́S"o& +~?F 'APm*?w?3f|o7gyP( '7Ƀp5{/$ x //-/?/Q/c/ya-x?FlS+0ƄɰOYOe[s/?F@A ǻDÄZNF7?>.N?F nMoi?~q,P>Ʉ (:^?OD*x 7OIO[OmOOOyNaZBPK+qǀ̩BF6Ks _S~MGt='7e]Վe?Fɍ#cAcaKҌVB_,ϠZp"IؿoodK eowooooo k4@\{-=(eKs;o@,P%T̆m ?;e_#ֶZpp\J)~Wf ,Padҧɻ;y ÏՏ5A ?Frg,mr2 +nrsc9az?FWn ~}\+ :|wص@ymwQkܳ 8I2=d]? ń̙ "Ͻ)i8j7i3 ͯ߯i+?Fu߫˶<yOKs@,0YvjO}ȶѭ $Y MMeܚ-O ߟ4~ <-f5]Xкj 3ʶPbtf2+ PpߚDڋp,ψyӅ猜,4p:9?Fo}!s>ybH E3Ɲp ?Fn~p6Ü~y˓lj~ݨ" : (0!϶<'y'K+HHZl~f~ӋE?F&Ý A;yƿ* ,/=r?Fegm yQEڳs/e\?Ff"h=y/k.h@̵I y|!??4JkYhs??????iHu)?F͎ l䲥aβ ,IO;o\?F!yhX ejyROm,F @^f]ywO~6bԢ`V 6y O_o%d r______??FlO?=Ȣtc&O ,wo<ڐbrqM~@ O`> s>?Fcme~Vve~sO~%HlĀW<]|F<>~zK_]]M),ͭ`7E̺ژB>mfT# ,Bg)?F[='JFmjG;B|'|`yq])tK } /:Pp0&%;Taqԃa/E-? _ [X!////??D Tw2?Fw]12%W嬨$:W{,߰ M >:6yEpV(0AzGxaNtb#P?P-yp\J~%wMIn17O~:3݃* 3%\K?|\^OT[__ { xOO__+_=_"^j^I<=ADǂr-+ű!M!?夿e{*% m9N?:ߤzf"h<=b\㭖h1boyt65o %#M#'VW?FGn5> 9ؗϽrqCug<#ֶ?Fv^݇qLJ|U[>j?F^@;# qYq(ٿ2#>#Md TH7D6D # 4#T  U U !"#$%&'()*+,-./012*3>5h T  M YUFBg?FJ:?FAؔPM.uM`?u#t  jm7}%t!" .Π%'&!%4-Ut}2N贁NKk?@M#&A b(J++&Yz}/R/$38?#b`4zt (+b/R5N}11/"`?Copyrig t(c 09M0c.0os0f21r0Aa i0n Al6@ 8s:Be@e0vL@d{"1U%4e3 756%01hEPFX|GG'0U%R!56S1I FJlY)U4FX1#Aց(`}oO40OeOW0fnj# Qˣ-Y R5b 8!EЏv?F[ =\}g5ly$Oa3[e_q[~haWWrm)T`fnӟ_C1hhE:]_cd0g`h _R"rg t4{s{"oQ#w______Vcޯ?FW9|e!|vr.l`(n :l Jo}`[Q ?F#Y!|helƳoZfuj'7czX!|ߝ fUo(oZf?M :rm3~Tɶi(R}ty { xUV ?Fǫ!|?UvʁD!iip_(n :l r}9!?Fʂߤe2!|ωY\*!ijlߐjǏȯگ` K <ZfB0񁚍axCmƉR}Bty { xYџ+BQgk?FG[!| =jlU)+R(n :l }jT?FwZ!|B9nl(Z!X󁟜 ")p Tϑ` 4/]$R}p ty { x#5GY,h+?F߼߫!| ?iOf+k:l}‚,Y?FqvjO!|6zKi%SI#Zf@,0ƪ!|~9RĞX}ߘNd̮ Q>'ەߘux x&8J\nYJa-x?FglS+0!| @m}i˜?Wz(n}?F@ D!|¶RiBQ:4i!@Se L]yEڨZf?g5 J[#PR}ty xTfxoPoof+k*\onooocN1?FEߋ]2φ gm_h{ 'aV ?FIQ|X"Z~2z}5o]Sh]CYR`-`CLVI h oo&8@6>Pbtg[`#|϶U /(+~?F0'Au=0cLas` =E ߴI h 0BTfYl~g[ 2DFd-?FGt\e(-upғh6SFOp \pH%y|C/h6+S{0 ӼvAf@g+hPљV M H<l5-W/ :FdAg?F#ccMTbzm1Gcqe~1-B?`ZAvkNngoPoboto OkH?Fɝ?) V1? zk "M ,o"r?FLgmƦ J TܪMcSS6-F؏{wKJ\M,z% #߭ҋEŁN"}3cQLYNVV䯀@.HZl~ n P?F͚Dڋ~Ͱd@~y6{:M ,"Ęp:9?Fn8ͣϕ茻yb H v_=x?vQܠK='+ #X;F.+*3 rz@M\vЯ *ͭ?F;Y ~Eؚ)~ykM ,L5?F)-ffA煤 0{l[΁F~Uk߸?I36&&d>!ё*a0tM@ޞs0COρn{϶ f5A ?Frg, {35ٰy^5PנN,z5kzX_z?F-Wn \?/qy?%b/'8a'߀x\tRʓVxK?q%im!Fg?Jq /2_D_V_hV {+,qO_6}i?FrsM<+bSykY=T=/a]e/r_`x ;8$6HZ>asu=?6|./6l,`F@^f\/j~9̿ia/nLHThmO;~?}[h<11?C?U?g?y??@妎Ė  O0B_f^O8e\?FU"hύ?@B^bybOl?Q ,Mo~SA(5 `_ - <\_n_____⩼Pο!!2o^po8p ?Fna9hfoʌn%Zm?7 ZT![!j( ""`DpHxs/ȏ]-߼LbqS?FҾ+cCXA9x1ˠWC s\3EP|`0""ʟܟy*<N##A?FyYǟìiQ9!.Q^=&J+#ͷFSPA &&Dxj!.?Fo,,M V~< XO~U?F>6S p??HUK,HY&/ ?` _/& A[&PXp//////y*ӋE?FTmcͦQl~V)a ''F? |kټ]c¡J:?YnD((!ooo&$ ?FEc:d9~.]Gl))W_?F޶P dS&9~ԫߟFRB1 > 'Nzrmw }}?=In됿Tr)˻)ڸ" 0BT Yoo?F\/8BҡdifO g **ПA Y{?FְgmƦ͌!MdihMcSS%@'9 )|z֠?H,g]r~ei8YY$m**#(:L^p Y'4?FÄ!GQJ?Zqqqdi +"++,#a?F-ߕfadi [΁S<]?~qUg  ʕ7mI[[ߣވ/ZG +' +6$Vhzߌߞ߰@ Y???6 ,,,X?j??"6?FB6"MRp4KTp#1 ?mJ,` O4PHOZG\,U+,d(% Y__of';--Z__G/_t^> s>?Fyme%]U`vdicdUʔQQ ,?w/ ?~efvoZG*/\-K-H& / YP$6HU[../uO/t|?FaqS} 4dIalBt:K7? \T-E_?!#hTXO\.k.h'??OO(O:O)@R(dvK//Oo_t͇W?FЧji QI?e_N|%ЏIMs.qe$ү䧆o*\/ߋ/(o o2oDoVoho)nπϒƗK00o"яF>t44I8?F?f_<'kԸ!Iv' Pr۱|@? }.q?5d䧴*\0 0)Ptlt)K?FZIl_<緬TF!Ǿ iϿ­.L.7\1 ;1J*j|į)"FM?FO4_<`s31In1)0` 202@q1.?FzT~_<ʱI (빸~u7#ߩ MǍKKRw 2 lPiCϨ6\2i2x+Ϫϼ)PK303nߒ[Pr| ?Fo3on1Ox0 ~L":rCF]KSDJlع0 MPq6>B33, aZdFy^#I1Af4b4J?A^31K404dlI?FjwX@_<\X*߰~LϡD/g\Hb1),-FuPx~K :ehDo^1GEG?7l*B4;48-*<NLIw?F`sT5]|N~LZQCݞaQK505dm%?FGn5;TW~ A,p"wQYy>)N1`B@PKB^qq_'T?B5[5h.?(?:?L?^?p???F1 4c}C0\wPN)qk6<6?d]@?`pF*;Z"}^װIAOfQ;8aVȯ#{Wn\=͘OLP$Zɺ}_.qV'@IO^6 !60/D_V_h_z___2\֟?F4vS[p-̬)K7<7o\?y1<<<:y6yrЃ&~?!1b W@=yBP(lf7?۵FSF&Oi{// bxRC//Jy<<8X5X/j/|//// ???6[=2 l=.?f&M?dsl?~?+eXO-y?Fp\JlR ?ɦp{?\s__ ~C +OOJy==ftSr BTGHD: $ Uh4> T]]9 PM /AUF~?FtC&j?P6 .v> mJuM` ?0IKu8Jt5 }ty$AJbA>JU5 *J)";/#?@& ?Abk$zo@w Su`` Fil Co orzw ` Z/2%w!w&}bA&E&UBh115 `?!wpy igT}t(c)W20[09M ]c os fM2R!rA0!aM0i wn. A"U E8s2em0e 5v0d01 4Y=$3 $7@&T"+t32UHB?=@MJGF(I(/HFiie59 &X7G'K0HC@&![$K0 FJlJ$+VA' (++ ]61h!Z3F\ O6?F9.4?.`tx@! y@c#CJVAbX,?F?&d2b iQA.$c Ȑ #Sa3:TLh4b bcitt3h5eqA 'k?\<1lOe5e4P܇a5f_eD"H?F0 wlS㥛ԍlZblheFt:ǝNl+aiR أhQ\.j ,X^F5~I?F\O;\?PcG &TvE?a!"rA #c4xLexmdAa S ύ4xa$B#T]]9 M qAUFbX?Ffl6?FI$D"?Fz^?P6 L6x> ](m$JuM{` ?Agg2DuVJtS  y&1tQ rhGzI>JU5 J0! #<l!A?% ?A^Jb @bbbz #"b9#$"b$B 2% # ?<@M3#J6(&$%"QD;'"**=#115 `?CopyrigTt (c)02U0090M0c0os0f21r0Aa0i0nU.0 l@ 8Us!Be0e0v3@ d@+"1 (44#-=/3K 73L)i@ie59 O&XuGG'0U RŚF!$0R FJlJ8>UhW^Q^Q 1@!V!1(ZuCFWF3Ф JR L?[<œ_Q3$R$4"J1n6f?Fr\. LSW_Y?)$8aE:TCVb]k&aPdd *#8d2L?Fw;?FH?PBzt &TvE?!YaYcR&ekre~RMv'(J9_b 2}&(!&Ra@cBwrÀ5%8aOEev?n?V]kAyqiQ4eDe'BP(\orlh )$a^F)?F.\?PpU#u#rA =4Pz d|oO_Y~sEzw uFtQcwHD: H h4>T]]9 MT JUF|?Ffl6?F'd2?Fz^?P6 n>JuM{` ?5uJt  bX9It=WQIRuVIlGOz|>5 Jr2?@MJA@]gb%(1+Wb3)O+O&B!!5 g`?CopyrigTt (c) W20 9 M ]c os f"R!r !a i n. AUl 0 (s2e e v 0d0!$صh2?6 ?ALb4z@'!Sgu`` F 1!l"z' ` ?25߶1ݐ6:/[)ʼ=# '66Kiie<59 XQGG'0UB6!4%0 FJlJ(>UhI !+!:6V߫j֋#0=1 JUF'ÇpС0RSO S ;[5)۱Q3a9iQY'aHD: H h4>T]]9 MT JUFt:?FFh4?Fz^?FkZV{?P9>JuM` ?uJt  lIt=W9v׾IR}?_5^IIljt#>5 UJ5 g`?CopyrigTt (c)* 206 9* M" c. os f("!r U!a( i n.* Alp (st"eH ej v dh  3Eص!"#a?&?ALb4z@0Sgu`` F" q!!lT"z0` 2?2C516bANt6b4J= &;02zGz#)@MJF86x?OK7XB 6iie%(9 X7G_'0UB&Z!40 FRJlJ(>UhI !lXAa20$)0=~0M:XbX,\QS }A_б5Y9mYQ_H8>z 9s -b@J)F9 #ߥ; OB ٳ%= ~dso@+_6o8s}G"of֛_H C*J rH]O /qS (-3W Z +_ arc Bhg | !Pas//'/9/K/]/o/////////?#?5?G?Y?k?}???????? OO1OCOUOgOyOOOOOOOO __-_?_Q_c_u________oo)o;oMo_oqoooooooo%7I[m!3EWi{Qw iX Џ*<N`r_ x?v ߖUFD  h(^TYYB UF~?x<F BP(?P?X6 Bh9U66 6 6U 6 66W66}ȅHBU??I\BU@L&ɯd2?6-G(?\.Y(7. sU!}&/)J'( G 0yB`7PC,personal 0c0m0utR2,$01i*0o.2]n0tw<2k 0Weq(0i0m0Un*0,Pa0dH0i1e!u1 ^| (g UG& b `,?FLϲppw  pw owwwwpwpw pwpwp݆~(p5;~@?CW~XZwwpwDrag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aab~߿?)j࿚i?3@ ?DUG DF P# h @T(PYY#E#UF~K? P} 7S.BB"D:J :^:rY: ,7 A 7377377&cy7&'}7f:&7N&7fb&7v&7&u`} ? U"6U6JJ^U^rrUUUU&&&&/8(:&N&N&b&b&v&v&j&&"u#L)VB%\L\GUBEqD?3? 4bP{[`:# R&VUC"'JQIL "/L*Q$" "8W!' @>>ÿ@qZPU?TVpPr&bcwRu}P`-*Q"&bu &@WS$Aa(Kb""ch@D )9u`u `"[bz$u`؂CaAG1`Vis_PRXY%cPm!#52madPa%VR%TKa/ZB0gBqq32REqEqAAB5r6$ 7”ECϔ|A8ܔspꓮQQ;< !LAE7ĂFD a,!J^hdh")xA*HKa./Hd$Gpha1]` Mpnupa2ptqrFqa` E@u"pp 6peptuEQ`ѯ]8QP}rd NmP3P9KZ! PprtX˿]r`iDr|q uϯ\/AA$pqc`#E^-% Sripq߫uT+=,LSpcxwߠ E߱Bl pipgE}Ph RSpoO"|ґyz(ޥA` qp鴜D`NwrkhaGpB`e#AI(pqdpss@|'߸ֿSbpsQx/%mF#qtvq Iq{uQf{ r (pqq@(3/+URqm6put%  SGt5QVeqσąV///(C(pA` WlګO`/iMpmr1//\Qp?!?OUpqsIyP?b?XiBplrgrTSp#"2NO)OS4paB2Cpo! 7iO{O` GT01@ `p#_OOGO _u% `_#kapTq#(?=MpCv/Qv__SH"d\"ZqCB??Pq|&Љ و3UF~?vZS\u`?d?7ruAy}5-.B"TqqՈASw>>{ÿc6Hr92u?`s`Bxrq 07K`R oF@IAeB$H|8Ex~8"7=rb ӀӀƞFSrӋb{ra@RKᙑsz}_MSaabn.{&$,"-Ѵh!PPa@iy60`ZUuu`a p*LQ. p`RÑ.1=f@ߒbÑ;J&;i1J5MS_dK&#„BCF3sNSYFw";(LլDQT]]9 M !AUF8?F:?Fm](?FF]?P6 e$A  JuM` ??Su.Jt+  Rqte_|tH1qzrMZqaMKI7>JU5 J["a?2& ?AbAw@X"b`$B2zGz?")@MJ&a#b#z\c a(b`)m&g,X"m* 21215 `?CopyrigTt (wc)i020u09i0Ma0c_0o%sY0fg2X1r[01uag0iY0n.i0_ Al0 _8Us2e0e_0v0 d0+1 (/4->3K >72&i@ie#59 XG'0UB2&M$K0 UFiJlJA h7P1X!ZCFt,ܿ?F9$*m ;6dm S)RJ:^T<@T R}S $S @gQEU23\T xY _5ˀ aYQU#5UFY&yw\QY!ħ[68^_zd {?FC:\4 `]3?X"rA kf#sS*<7$dFl~r7lb+d [!}UHLuD  #;3h0TlaaJ )UF~?һ P m.N >uA` W?I?u#8b>t5 }ty>b"[>U?& ?bAK@8">&>*m!m!`?CopyrigXt(c)2d09M c oKs f"!r !a i n. Al (s"e e v0d f!3(aj$B-y# y'&t2U2?@9 H>6A(A(>/J8M*ifPE p6XB7^G'03&J!-$e F/Jl>!$Ul8AAa  @!#E18!1Zb?F _4 .40nCA.xMѧnA[(:DTPFmq4 _WtY\ FهX3^&o`_sZRXECU֚|I?F'@[\b Eq\ ypQUdKq\;rdXXQϓCگ K/ڇTXK^F!}} p$?P8-DT! .3!^_p_U.~4}]~q.x~TA#3 AM JUF#H^?FՃv?Fꖞ@?FĶ?P6 n>JuM{` ?5uJt  ߀It=WKꑔIR ׼IlV #D>5 J[? & ?AbA@0"b8$2zGz?@M»Je&9#fb#z; 9(bE8)E&?,0"E*UB 1 15 g`?CopyrigTt (c)A020M09A0M90c.70os10f?201r30l1a?0i10n.A0 Al0 78s2e_0ej70v0d0@1 4Y-3 7 &iieE9 X7'0UvBŴ &!%$0 D-FAJlJAh7(1h0!T#VcS( bHD: # h#4>T#3 AMT JUFȹޘ?FOd?FoT#?FqJĻ?P6  >JuM` ?juJt  uD It=W36EIRj׌IlB?@-#>5 J[? & ?AbA@0"b8$B2zGz?@M»Je&9#fb#z; 9(bE8)E&?,0"E* 1 15 g`?CopyrigTt (c)A0W20M09A0M90]c70os10f?2R01r30l1a?0i10n.A0 AUl0 78s2e_0e70v0d01 4-3 7 &iie%9 X7}'0UvBi &!%$0 -FAJlJAh7(10!`3'e?FfAs!h, ?nN#<bydb   VJaRTT $jTRUE:]gy_eZ-ֱQ%UOfkZoaU526_HU0"rA 5>#cHD: # h4>T]]9 M JUFS6h+?Fڨ?FC7LԠ?F_oo߯w?P6  >JuM` ?uJt  k6It=WHףrIR'c_hIlX_#>5 ՆJ[;? & ?AbA@N0"b8$B2zG7z?@MJe&9#fb#z; 9(b8)E&?,0"RE* 1 15 g`?CopyrigTt (c)A020M09A0M90c70os10f?201r30l1a?0i10n.A0 Al0 78s2e_0e70v0d01 4e-3 7 &iie%9 X7'0UvB &!%$0 -FAJlJ]Uhz(10!Z'F#?F9=7Z#<E $ ĀVJt!#cGP!2, TYŏ.ZfQoS 5!;KƱQE:F1aQ, jRYSuRYFU>X%e1lER[6C/I .g\wPU5egㅪlaYpO0X2:_;0"rA >#sHD: # h#4>T#3 AMT JUFJV?FO7x?F g8t8?FxMƻ?P6  >JuM` ?juJt  .![It=WBaIIR#!xIl?7O##>5 J[? & ?AbA@0"b8$B2zGz?@M»Je&9#fb#z; 9(bE8)E&?,0"E* 1 15 g`?CopyrigTt (c)A0W20M09A0M90]c70os10f?2R01r30l1a?0i10n.A0 AUl0 78s2e_0e70v0d01 4-3 7 &iie%9 X7}'0UvBi &!%$0 -FAJlJAh7(10!ZF/, E <{O!#4  OR|VAJaN[]PPReSRUE:]?Cm{ɾ__Z"u)Q%U=V9P]Y\QĖU526_HU0"rA >#cUHLuD" # ;3h( TEJ UF~K? P .N  >uA` ^?A u#0p,bKp>t- bFtq>U2zGz?@9 >?A@(b),+,,&" !$i>"&p ]""b)+'"Y,"VY/N*1*1`?CopyrigXwt dc)a0W20m09a0MY0]cW0osQ0f_2RP1rS01a_0iQ0n.a0 AUl0 W8s2e0eW0v0d0:i f x!X]'0U5BX&50 Jl>$Ul8AAC U  B # A!֚|I?F'@ & b E9& y'9m(^L0T,_>_ *XX3U{?Fr\HzdKB\;rdXXXAk}pCڇ K//XTTZbP _?F92}&~`m`[ ]3PY0nC]MnBU,Nvlza&p (91n-pQYWAliPFmqٸ EY\ FXX܏&o`DZ?RXXE_&__J_|D#AD1guOKOOjkFs"DI@[sDz.q[]J,bu?kZ̯_ofd $?QRp؞lq o|T]]9 M !AUFM4_?FX({'?F8as?F'|~?P6 m$ > JuM` ??Su.Jt+  ,ئqte_GqzLxg q}KRI7>JU5 J["a?2& ?AbAw@X"b`$B2zGz?")@MJ&a#b#z\c a(b`)m&g,X"m* 21215 `?CopyrigTt (wc)i020u09i0Ma0c_0o%sY0fg2X1r[01uag0iY0n.i0_ Al0 _8Us2e0e_0v0 d0+1 (/4->3K >72&i@ie#59 XG'0UB2&M$K0 UFiJlJ]UhzP1X!ZCFFMaT J*m $d2rv 7|QL{RJ:bTVͶ$S ?!͟TT QE!K:?Fc\?7YMQ#5UC6ǎȥy\aY = GZgh5Uc?hV[\]PfaiQb_tSF菐-?FҮYT˳ ]3?X"]rA f#asS*ԍ֯JQed~V(L qAb+d ׻HD: # h4>T]]9 M JUFd $?Fs"D?tP6 >JuM` ?uJt  RpIt=WcsW.IRI%l#>Q5 J2zGzK?=@MJA@neb1#z' %#b?(1 ?(Z+Z&B[ "?& &?AE$ \/}% 1 15 g`?CopyrigTt (c)A0W20M09A0M90]c70os10f?2R01r30l1a?0i10n.A0 AUl0 78s2e_0e70v0d01 4-3 7&iie%9 X7|'0UvBiů&!$0 -FAJlJA h7(1E!bTc1 $<K $  OR)vVJ: KvŦM\lQeS -^PűQEaZ9]`Y\QU%U=V,M_Zڕ]X526_HUE"rA D#cHD: # h#4>T#3 AMT JUFEM?FZI{?F'ϸBl?Fĺ?P6 >mJuM` ?uJt  ^J˛"It=W0"شIR}*IlFw#>5 J2zGz?)@MJ߀A@eb1#z' %#b?(bJM)Z+Z&B[?& ?$AE$\/}% 1 15 g`?CopyrigTt (c)A020M09A0M90c70oKs10f?201r30l1a?0i10n.A0 Al0 78s2e_0e70v0d01 P4-3 7&iie%9 X7/'0UvBů&-!$0 -FAJlJA h7(1ZTlT]]9 M JUF5 J2zGz?S@MJA@eb1#z' %#b?(bJM)Z+Z&B[?& ?$AE$\/}% 1 15 g`?CopyrigTt (c)A020M09A0M90c70oKs10f?201r30l1a?0i10n.A0 Al0 78s2e_0e70v0d01 P4-3 7&iie%9 X7/'0UvBů&-!$0 -FAJlJA h7(1ZE!ZF" Z <] Gʼ#OR  ORS|VJ:-US DZ/`#dTK QEUHǻM\Q`YO$iQ%UY $?)/Ep?Fa_V0w?P} 8f u` ?0)u:t7  Id̝txhˑgFݑZo`ҤCU!!`?CopyrigPt (c)J 2\09J MB c@ oKs: fH"9!r< u!aH i: n.J Al @(s"eh e@ v d  #S$#B- #l# '?R;= # &#24 6 6 2$Z# #0U2 3@&B ^#5 6X'7'R4 6!4] 6:e6^P#[EBM #HA%DGH7D6D # 4# *  !"#$%&'()*+,-./012*3>5h]T]]M YUFhop?F>+?FoPp?Fsqє?PM]uM`^?u#t  EF't!"UY%'~P*%4'?"U}2N贁Nk?@dM#&A b(+++&Y}/R/`$B8?V#bo4z @/'/5N }11/"`?Copyrig t(Uc 09uM0c0os0If21r0*Aa0i0n AUlE@ 8sIBe@e0v[@d{"1U%4e,3 7D6%01wEPFXGG' 0U4RD6b1I FJlY)U4FX14#A(!L15?Fd4Mf0:O$}#?)߰=^!8U}?Fz d@ lxrNj$!la.PX7h3URWa?3am:"~vn*&^x%>awE:}JC4` k|| a(d08gh_oo)o{T#______Hv?F d1a|3`[]w|c?7oHv.?FMFa|S3w|\£|oHvJKmc~ea|{ oHv(sna|;6n5coMA}#5G~QUHv>Η4?F@va|+|w|JCMHv,f V3Sa|p )zyBr7椏Hv]DWrGsɾa|k eą﫚l2 +7a|QWgQ-<̾э_q}Ra&8JHvˁ?F~廽a|/ͼhzyoχڡHvkT?FS;a|3zy? HvJbS6̨6a|ω9?OHvS1Ɇb._ja|^~_\@{}R -?Qc&Wa#UwvnnE>wm|<jBmm*'Waɱ`nk}.V̲o~'݌ssK/8}߯mEKx6iBJP1 UB}K^~o>P/6i@A}///* ! %/7/I/[/m//&A2mo~Kf΍4D2=y|Bm;m`(=w}zNmWUȣ(K\S}|t|d\L|L+YlQn0T%%$ċ^QUHQOOOO& AOSOeOwOOO&놮 G3!(E> H}OĹ[DnXXt' U!2h`Xn b_ Pg3~qP3fbAu~R)umooo& ]oooooo|o&g-N+_!eW?1 il}1HiDYH'rg|xMMXjQ%f|ɒ= %;vro]ݓinÞ]S( & yӏ&f@e!`¥ G8M Z³绾hv0W5gS1a8|QXSbW~7mȧՠ~=߬lB|y:߾nuTѺ'9& ˯ݯﯾ+A 7>M%- q?j j dEuk uQ9)?FAަIif[WvpQ鐲9 =~OIѮ]xz~êJ 1CU& E`=U4 Xw׵\ o5|݄ erKv7(\2Έf!9"pϼRѡ{ R}\ $”ގ#q[\ƧGJ Q\BĪ&iZf}#Xr_N|1i"@w\y =~X@/n????Te/?#?5?G?Y?3㒾?Fu}A{ZϹ?$=l?Fߣ؝@鴡s! U/q2 y#iwjQ rt}\\ǟ~nxBt@fP@Q*(g˼ߙ`]N1YY͓___Z_-_?_Q_c_u_՜t?F#|IΝ} C)u18h6o]?F\ v!ۊ5,'pm~ "߹3*_CRڟ8Yq_S˼_}5#7o7I[m ռwc?F䱹!? Uܟ*d4IM}l+m/r?F!zxy4GXM g1rH-odip'ʽh:PF}LHM\БqWČMQyS:UŸԟSewZ=x?FrJS=W+}| 8*_ޛU z0~+WzBJ/pVD W| 2'ؚ5F] 0+!31rߠ߲߯450i;h4MLTJMUs`I}$z8.=u2fC}1 O2V{uf`5MEp4}o7o9lM* g`S}+M?=;??1O'9K&)E_i) QiğuPmk6nɣ{j}Q}L]_h?>nj^$oVLɓ߱ mkVo@0Vp > vCu!9QAdmLG~ >Qo1/C/U/g/V/ /T7} 7վkEA*w}+% B`;$gK*"V2w@96קM-nvSiF!nLLgqNy4~ QUcqÍZS)^MO_OqOO-v??OO'O|9O F1'ߢM UPiPK>´}]"}9'uH0 A5]mI;;#ǧ66hx~r JQa~&qrMi~߭Uȴ߯E~߻ io{oooI_ oo1oCo|Uo$C$g;#,b2?.x}CwMLW1b[̵yx8ج`}eM}oJjRݣS62`M\|"XB}B+<5asݴf);M_|q7;ӱ,_|#Vx~ C.t 1_!; }i틺%~?3]9r?Fn?59?趒;>L]ߛ^_u^VQ$2Ս޻}ǸПƯد3EWi{7TS@f𿟜L)l\m߇WMw~쾟K,:֑Zь?FSƊl\?i@9 <>̩#Տߘ]l\ s?BZBDȕ݇k2PU}l\q3h^ ϞOasυϗϩS#ѣn>x8Bި9ڞMh #sUx=BT.< @?F %婢?2#.5>_9K 罰5L]!g6L}MJA?**=k}1TӦy?F'sO=/ge [A\{9M?F>Y=k X*e S(N $9-g[?ow-$.Tzv )\$?3߇Nx'fl\|z $M}~' /IpLֵ?F˦6k]zFq&>}w^YM|Ԅ?F<']?0#Jh#h /xIkHw1]ǥK]P|G>q2:|@_3Y 1I l\"_@=H?` @/?$?6?H?U //////1bJx?FL!E#ԇ}Se γybE?FcN} Ɗx3c }CRD80}>~^ϝ{ª\3s./M?F^Y⣝iϟʁi{s_4I[H?FJ8oxJJϑ+ϊUϰʉhFq$ >LT ]~~[4xYpŬ0Ex}LYTfxy."ooo#5yP?Fឍ~QTJZvW9 ?FڡGSۈrQ5|橁5ǤˑIGYh($Qw~5tjl@fxF# -?Qy?FOT ʼn@-1ş9Ыva*S?FR?fB V1?ݰف]沛tk{Τ/Yv{ʙޅ݉}1MZѰb$%7I[my -}\SU=cx|[)T*Oў}|d.KnޟR{nIxߒΫ}@B j-2YpM:H`FZT=e-B~yh,?/߯}%/ASew߉ߞyf}x0 Q>zsg=ڟUbw;IS ڀ>3LI~ goSy?~wib`W?YM7+mɼ7V9H3pvsSs/M/}~iV9@gM!&K]oZBdPeF]ʼY mV6| ig5 ח9]#.Sp_xuT&~?Ftm*ԍ`_rYHp O~![ިKmU|ױ.jriwo /F'gy|yrqFYH?߁h}FUϯz5ꞵ,WCˑB`Ԟ`H}sU2w~xoӄڭfDjt! J Hna)(J6w~nv؜p oo1oCo)______ֹ2JI`H~Ͱ f tɾ4EwߗMMpW[̵yط]?F3,棣SLLh ?mu`Xr}Q͘~?Dp);M_ *ֹci+!c) x+Ҳ{&3oٶ[i?FqTƊF,]H'^ <Əٶ H;z0=}F,XQʮ}7$zLٶzTǬGWF,4$ZgsRF{^ j4Z>~[T-G^8?Fz^.H ~L?%aasS Xޟno#ά:HTFF}6CF J'bO[;| ~^-!3EWiKYYx4?F -t[|L?r69BMj-1(?FN^4>Nsz9ET~.Q^=#94o4>ݠ_J? H~&U7`dU \(5Vm H FۄܱykyU} қh?nBN 2DV3ïկ IQY1Q( &&] 6P^JY8}Soj11Qً;]n;P^u񟷱g_ G!.H?Fh\<;Qq7B1b;Y|#Kk{[oY??cgCo;M_q4' IsЪN =͐\h \[Vmq:Dyxj?FYi&?Gbx)U͖֒z/^bA/ F5f;d#\EH{=Xj|8%5 1C Id匽 轫 (Z-q͜DD D58|UBn FxV5?F+A玕R\ȚE Fk$!2 +\HC.P?%ҧnP A @6D .THD: # h0>Th]]9 MP IAUFOѬ?FA^?FMOh?F9d*C?P68R?>$y> n JuM{` ?e ;  Su*Jt'  q3 Pmta{Z_ebN3.JvH?zhǿUv?vh e:Z}.b%{>JU2N?贁N[?)@M#J&A@wbI(bW)U+U+U&J π(<!lJ ?%P?AO"d+b Y)(u/%B #A1A15 `?Co}p rigTwt c)x0]2`09x0Mp0]cn0osh0fv2Rg1rj01av0ih0Wn.x0 l0U n8s2e0en05v0d0:1PY>4#-#,M3 M7#(p0b59 DFXGdG'/2WUA;F%!$a dF$&#l,&}>UhET ]]9 M qAUFr ?F l?F?Fg!ِ3u?P6 L}>   h,(JuM`l? Ek"k6HuZJtW  7OttG97i;y4v'ʚc>JU #<H!-A?^% ?AJb^ @bbbz #"b#$"b$J 2zGz?<@M7#J&(&$%" ;'"*@!EA#5 hy<=A#B115 `?CopyrigT}tk(c)kW20@9kM@]c@os0fBR1r05Aa@i0Wn.k ] lP@U HsTBe(@e@5vf@dH@/"148#-,?3 7#9 i b59 6XGG'0U?RF!y$0 F ZlJ]Uhz 1hy1!5(`A#FB1?F#)Q PV?d"cP΄ ťc(Mb(8"J! jo0o Cƣ8-$DqaE4d\b@d Kc;d .#8磵g.p~?FTHR?PV7 /!i q7ikWPV]DT#3 AMT 5AUFr ?F l?F?Fg!ِ3?P6 .6> JuM` ?IKu8Jt5  Otyt_G97iͅ;y4vʚIA>JU5 J#2zGz?@MJ/&A@bm#ztc a#b{(Wb)+&B#!!5 `?CopyrigTt (c) 0W2009 0M0]c0os f 2R!r 61a 0i n. 0 AUlQ0 8sU2e)0e0vg0dI0!$[#8"8"?6 ?A$/%-/# '6&iie59 &XG}'0UBi6!40I iF}JlJ(>UhiI !!AaR4 Rx J:j]ݿb~)_.S buBqVy3'?F(ËE?P,a,[ /A1YQYV4hA.xeAR +3l4xa@ R#Bsoogrb5%UGD  3 h0TdYYB UFW)eK?FI{Ä?F9n;*Y?FI_tnw?P} tf  f0 D Xu` ?00DDXXl)uvts  < %t"F0" %'ӿp %,'qdX¤U!!'"`?CopyrigPt (c) 2\09 M c oKs f"!r !a i n. Al0 (s 2e e v0d0s"#S$|#B-#l# '?Rw=#&|#466 2|$Z##0U23@{& ^5 FX`7Th]]9 M]AUF?FMHR  h$ JuM` ? 3YY.KuHJtE  0oI~$tq/袋[Dmk.IQ>JU2N贁NK[?<@M#J+&A@b](bk)i+i+i&Jy%#7 ?3#) ?Ac"i+h//%*B%#U1U15 `?Cop rigTt (c)02`090M0c0o%s|0f2{1r~01ua0i|0n.0_ Al0 8Us2e0e0v0 d0"N1YR4#--0" a7&%0bE9 XFX'xG'0UB&!$$a xFJlJ]Uhzs1Z!1(`%#FXxcӔ?F>D [TQ>Q) R "J:!l?FQXP\C\6m/m$BQYsZ_?FFt%7?F{hUuW{ ]3\+B MTT0TDiQ>8aQ4? /Ȟv/x i[? `RT*?D`@ S <oor5%QEUVV__ <#<>e__f{,Vxh`d3rAg 4 ccgd$ymAv AGuPHD: H h4>T]]9 MJUFoc?F24ͷ?F7?FXPq?P6 >JuM` ^?MuJt  ~27It=W]tEIURF]IlGEw|>2N/Nk?<@MJA@gbb ) +R + &J[_ffy) ?/3)"B5 !!5 g`?CopyrigTt (c)6020B0960M.0c,0oKs&0f42%1r(0a1a40i&0n.60 Al|0 ,8s2eT0e,0v0dt0!P$-/ 3  7|&&iie%9 &X7"G'0UkB|&!$%0 "F6JlJAUhh71!!T $#< $M DRkVJ:+;5jB\aQZS kBձQ3aZ9]UYQQU%U2VZ?9=_30B_ZK&DiaX52+_=U"rA $cHD: H h4>T]]9 MJUFoc?F24ͷ?F7?FXPq?P6 >JuM` ^?MuJt  ~27It=W]tEIURF]IlGEw|>5 J2zGzKt?<@MJA@gb%(b3)1+1+T1&B!!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al 0 (s2e e v 0d0!$)[&`h4|9 ?A(:/[)-#K '6i@ie<59 X7"G'0UkB6!40 "F6JlJ(>Uh"I !e1+!AaBc1 $<@ J:?+;5j:\YQ,RS kBձaQ3"U9]MYIQHD: H h4>T]]9 MJUFoc?FXP?F7?F+;5jq?P6 >JuM` ^?MuJt  ~27It=WE]tIURF]Il\tE#>5 J2z_Gzt?<@MJA@gb]%(b3)1+1+1&B !!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al 0 (Us2e e v 0 d0!H$[&h4|9 C?A:/[)Y-# '6iie<59 X7"G'0UkB6!40 "F6Jl*$>Uh @3 !Ie1+!a1 $<@ JU99YUQIYEQHD: H h4>T]]9 MJUFc?F24ͷ?F7?FXP㟸?Pn6 >JuM` ?uJt  ~o2It=W]tEZIRF^IlEw|>5 J2zGzt?)@MJA@gb%(1+b3)O+O&*B!!5 g`?CopyrigTt (c) 2U0 9 M c os f"!rԶ !a i n}. Al 0U (s2e e 5v 0d0! $![h4?6 ?A:/[)e-# ' 6iie<5(9 X7"G_'0UkB6Z!40 "FR6JlJ(>Uh"I !4e1+!ahBO $<1 J:#]Z9=_30:_RS &DQaQ3"U9=YYQMYIQUHLuD" # ;3h0TlaaBJ >UFE3kh?F3?F_T?FU Whu?P vN>uA` ?)u#>t  5@{It=W#H9IRj;Il廤#2zGzt?@9 >A@gbb )bJ )'+'&>yga?|& ? " +'+,5'UN!!g`?Cop] rigXt (c),02d09,0M$0c."0os0f*21r0W1a*0i0n.,0 Alr0 "8sv2eJ0ej"0v0dj0!Ea$-X3 7|&$0fE 6X7G/'0UaB|&%!$e F,J l>aUl~1#1!jQ?FN @ ?[ql#<3ٽECUS(: 9[#UT eW3wU( R@SRQY?I?dXE ^ߑC8_J_ dX _2_=oV_D#OOOOO _vVFmR^\j:=pd_ofI Њ?F0떜lZ$&Оl ?:Ynx3~ ,az kXao41}gK}YWq`m0BTf|UH luD( " #  #A h]0T]]JMUF:%?F6emP?Fiz9vJ?P N&&M %4&U8HCM 9 / 9 / 9 /9/9CWW W WuM` ?% &W ">"R'&j'&~'&'&'&;&SuQ)t  bD%t!2 F_%7J">67šʿ~ U2zGzK?@Mk3{6A@n4b3z0312b808;6Tu3 A A2`?Copyrigxt c)W@209W@MO@c.M@osG@fUBFArI@AaU@iG@n.W@ AlTW@NGsBeu@eM@5v@d@c2AQ}Dl3R[u3-A B?V?4 ?E-Xu3,C ,GVl5O@(E ԕVXgW|2'0UR)V!-TA VZMU@QjQ1i81g\a?F;|~4P~G #W.?a4Hd3.䛵?Fp _`9},jX?F>@ ]3?iFS_lUӧ:ޜ !hރe#ģ[ Q " i!$a4BH:}k_wg0wEuf.29]~4pO˯ô>P|o!S#_`1y;6}wfl{o@opoQQ$Ug@EiE{iooeD?FD ~a]#Q`7\X!?Fw^?FrY?Fo2?P'DT! /3Q9 մ7'||U|6ys r #, Jދ]? $oe?Ň41:/ B"tŇrf5EU>PbtItnɟ ^HY*Gą 2DhaspA]鯱ï ֯z %7I[mOb罞О )E@ͿXP-?;a+ >L &WEW thqϧ"mϏ] 0BTfߪߘW4. Vwp,> i\_XT&8JZ;?FT}:/?$qxE~yE?FA5g`u/V/ 123\?FrMT/?d3~~?FEa,蕱/?CZ@6 De //*/]0T]]JUFp>)/Ep?F2왵??F ɏD,"7?P uM` ?j`fpu#zAtw tnٳ \b "OMG2N贿Nk?@dM#%&A2 bW(be)Jr+r+r&*!ܿ!`?Copy_rigt_(c)2W09M c os f"!r !1a i n}. Al<0U (s@2e0e 5vR0d40 "!3]$#Ry"&#4?6 Q?]"W*s*;'-X# '6% h5 RFX$GrG'0UBű6!4 rFJlU!h#'A(:FYSocg0vr p_y $(4!Z[7?FL30pS a۫YQ?\I`X3U5 Tީ?FʨQYC\f"qoY5U%?Fq$B\F\bJFXz___\Q# __1_C_U_g_VNx?FM=\>ۆ\34=(_V5T?F}\#R)\b@QoVr]?Fc߰#Z}L \$6ԡyqm0:?F u\.Iſ\)?oUU/ASewV?FN,]\\wzV]~?F@(r\F-~Ȩ\(p|ymIxg?F[j| 7+*y\= qmh?Y?FYgR\Aa\ulӏɟ۟UY=Oas!KC4?F}7PM\8HJ|\ HNVh?Fwi@­\A>xAV%+j7ٽ}#E~\I&)5eF=s '7["mSpуdĿֿRtYk}Ȏ~+]~nn)`]͟Cc֦ъ]#.?FPZk+N:2\y_@W߁2ʞ54}d\e҉qm}&?FUfK­thV\9\ލQak}ߏߡ߳~VZwۿ4&b-} ߜ.c|~kd$~Y""A6\lJ(i0(sVTloV?F} \ǀ_?$qmR'%"2?D= bY\r6yލ 2 QYI0`鎍1/ 48Ve[bV$?Fi뭩1?0pS!K;?F"~[:{Q~b?S)qm#|W-?FG~b .f-?R[Ϡ ލ /*/fɾw2Op>)/Ep?Fd(_a9~ {F!_ ~`2DMz2m^Gm}>IލPobotoj ___o o2o̺m@UP1-JO}^^fon l?FSƊ1̓ ;]\OogMNE0A`^?~uݟ$E~ɰ~%^~ =7}ÀMuҳ1?4tx鑡?3:\ `r $6Hj(i?F ڷ1^̄ZϭSԢ%^XP$֧zw]<<E?F6 "Rf2 =s 7Pq=[~1̇1%]?F | .@Rdc)Jl pe},X|4]-Huvzxډj?FwJ%H]ǕDG7t{GtY~Ǔ.PH#T~]?9+T =~B3~-L /=m$+)Hϰʛ&8J\n|JoWx#0z ),?5Uz!xz?Vsf&; `ߌ 猖gߺ8˺A}2!¹diqBZ$@S =u V N,.zu~6J1&ߴEWi{f&~c?Fۿ>4U, }J\1?Fξ9rзX=YR Qm#07q X; I6 =4T37 xU,=A S)d= Yqas{%?Fyx{wmQ7Z6n4Nl]?F7c2Gsj3j뙚;(N8 i<=ۇ4W-ɫ-9)]-?F`x}SoA뙳x@///?"?Rz//////xmYԒ?F0ufx)r蜅وWjFQ1?GUF MDe9gsaEo2I^~T@s@܂]Y/|sMv۶ IY?}lD?B9kP/ߊ.x/ONϋaz`3O__)_;_uOOOOOOxHOB?Fi$0%oAlOo-M_k"W?F[y\x_ ]g蜢, )+b77bћ9}DxZ]Qey=zFVjx/I bvdRo$6HZooooo  p? {,Բ5~}j8>6zB?FӺ ~|g=)s-?F8H~ݖ}T M?lfa=Kh݁5};p/"_f/tl 8at""4FXj| ߬XNT'(/E9?&I/ i {.PvwHkOQ qӟĶO@ߒ#'ߛ[w̜zfdm ___ooŅp______DAL4?FGww̆Ia{VU$oEFem(5tc(yÂ;UKG whsi}2Ca6o? ?F20?æmEyo6\iq,"4ߤsZ4?F"EwH | QUY% (?FZ <#a;:wPID8 n7 ~f* /e'Mǃac5'?Fԫ|>ka?I}|b:QH,>P גT_HZ> )6s ;gLjOhLAݨF(֯ #c ^OB He߲ ~d] @+yЫ_8sGhoT~ Pȣ  |H? >x} 1X h̿ "\8 L ѻHqU _U exs B d&/#/5/G/Y/k/}//////// ??1?C?U?g?y???????? OO-O?OQOcOuOOOOOOOO__)_;_M___q________oo%o7oIo[omooooooooo!3EWi{ /ASew(-C ԁ/ bҏ+=Oas͟ߟ'9K?y Xs  т"Y %пI! 'B$ h)& H+u) 8%, o"/ ÄYkXu.8 HUFDfP h TPYYhUFL&d2?F`0 ?Fx<F BP(c?P? w<lh -^&88Kh;_ 8srY3 8 83 8 838838 &8&381&8E&38Y&8m&38&d*8&38&8&8&]; 63!8!6#8563$8I6&8]63'8q6(86d2)86*8f6+86,8f6-86.8fF/8F08f/F18CF28fWF38kF48fF58F6U789;8fF<8F=8&F>8 V;fV@83VB8fGVC8[VE8boV;VG8ȗVRH8VI8VJ8VK8VL8fM8fN8-fO`8Af;UfQ8fifR8}fS8ffT8fUUVWXZ8ff[8f\8f v]8v^8f1v_8Eva8fYvb8mvd8fve8vf8Hvrg8vQ;vi8vj8k8l8+m8?n8So8gp8{q8r8s8tuvwy8z8{8|8/}8C~8W8k8Ѕ q  0A`Ap4icbptpo\ evq !aE  -QuYda|z !T3Q_`|]1n@` X?W&&.11 T_?xpxx p  pxp%{wxw?w _w xwOw  p JwwxwpxbL&d2鿃`0 +?? {ҿ ȿUGDF # hz8T YY# B{UFL&d2?F`0 ?P} [u`ho?u#   @B<66D^nY^-] [ [ [ [[[&7^"&[6&[J&[^&]r&[&^&[&d^&[&[&[&[6[&6[:6[N6h^b6![v6"[6#[6$[6%[6&[6'[6([F)[F*[*F+[>F,[RF-[fF.[zF/[F0[F1[F2[F3[F4[F5[V6[V7[.V]_BV9[VV:[jV;[~V<[V=[V>[V?[V@[VA[VB[ fC[f^2fEL[FfF[Zf^nfH[fI[fJ[fK[fL[fM[fN[fO[v^"vQ[6vR[JvS[^vT[rvU[vV[vW[vX[vY[vZ[v[[v\[][&^[:_[N`[ba[vb[c[d[e[Ɔf[چg[Q^i[j[*k[>l[Rm[fn[zo[p[q[r[ʖs[ޖt[u[v[w[.x[By[Vz[j{[~|[}[~[[Φ[[[ ު-2<ZZnn&&"&"&6&6&J&J&^&^&r& r&&&<&U&&&&U&&&&U&&66U&6&6:6:6UN6N6b6b6Uv6v666U6666U6666U66FFUFF*F*FU>F>FRFRFUfFfFzFzFUFFFFUFFFFUFFFFUVVVVU.V.VBVBVUVVVVjVjVU~V~VVVUVVVVUVVVVUVV f fUff2f2fUFfFfZfZfUnfnfffUffffUffffUffffUvv"v"vU6v6vJvJvU^v^vrvrvUvvvvUvvvvUvvvvUvvU&&::UNNbbUvvUUƆƆچچUU**U>>RRUffzzUUʖʖUޖޖUU..BBUVVjjU~~UUΦΦU  $BWW.(%6QDUQ?S>S3Q?RdV"qwX[?( 8RLS`S~SSSSıSرS챔SBRS(Sv|Hv|Rv|\v|fv @ 4񸣢vvy|v|v|v|v|v|v|v-|A|U|U$$}|.|8|V|`|j |t|~1|E|Y|mx؆؆|| "|!"|5"| ]"|q"|("|<"|F" |P"ZZ"|d"|n92|M2|a2|u2|2|2|2|Ȗ2|Җ21@1 AQB|eB|"yB|,B|6B|@B`|TB|^ދQUVVVVUVVVVV SRVfff&f0f :fDfNfSRbfUlfvfffUffffUffffUfffvU vv v*vU4v>vHvRvU\vfvpvzvUvvvvUvvvvUvvvvUvU$.8BULV`jUt~UUĆΆ؆U U(2U<FPZUdnxUUȖҖUܖU"U,6@JUT^h "UȦUܦb&l&U&,@UTh|U&&&&U&̶U046UDXR6lUU66U*>URfz6UFFF$FUUjF.UBFVjU~UFFU(1H1R1\1f1p1z1Ä1Î1Ø1â1ì1ö11111111AAA$A.A8ABALAð÷jAtA~AÈAÒAÜAæAðAúAAAAAAAQ QQQ(Q2QBU=Us/?Se?SU?SѲ?SđPÿ@qP?@R?TV?ܲu`W@jqRu`a@r URfchqb?SuLiup`u`@բѠ+u`ѓb&Y faH1crgg`Ÿ /"(úfiic` dFpaMvaf&afl,s  a?5 %` pq q wu`Vis_PR Y. hm!#5N 93N"+b`?Copyr gt  c)M20Y9MM cCo"o Lÿ҆u` ?u~pQ(-DT! @ p@U au@`ba@? ìҀ@^0FH%@Q.FӀOռB\i@?yQ/FQd@ߐRrf i`R$pnst*oM Pe]ف p ջ bmCuE``-u5@`^0aՁ^0d qn pN<udRE %EЎ%$-+h 0JTlaaM>UFN&d2?F`0 ?F|G?Fm]ri?P U>tA`  M?t q۠ FZ>u hu!s7YaMJMRKm? ?M>bA@bKbmbz #e8 ۢ =# b#2O[(ta k-3thk-![(}/tГ/w t/ t/w t/ t?w t&?t;: Ne F;,";&a#68;R;W *P>B m42A2A`?CopyrigXt _(c)i@2dW09i@Ma@c_@osY@fgBXAr[@Aag@iY@nU.i@ 0l@ _HUsBe@e_@v@-d@\2lH#"p# @K4JUlQQQQPA!@@2Ruݯ?F#& hnGHge) ]NUq Z?FG ߄\.r\oMGhEUKar?F3ojp0m]-Eά\?T\iEUe^?F`1<<0mN[ʰ~\on\i^*S__` 5C3\i__B_TFTA'VW@qqx_[QQ JR! J!4J78 h !a!hE!lU]T T!"#$%T__o{?FlӖ|н1|Ϥo} rhQя Me]otv۲ǀFRH0ύ|dr٣|WӍ[Smp"pʍ|q5JK tvp?FZEoZɍ| 9EPڣ||lbtvX9|"@G!/ ւ?F9|H&3|?<=$_4F+\>30m_d 5\i`U0m~ !Qx$(gN/ ?P0wf>nZ?l? r?;{|{*K1?Fݿ K 1wz_ 9*S?FAcM@=orOyg?_P|* /$?F#K i >捵JLJ=|*zJ@w/d;ЍuI@ͺhˏ4pHD: )&# T=h0>Th]]9 Q BUFܷqP?Fԁ43a?F7??FtYOȻ?P Bt`  XM6 ?t׻4n%O__Bu aquo7>KJASTfw?X ?Az@bbb! ( 6f )  '+ ߈?I-Z#g!z A Qu +%/,8)E!'+ k(?r+o?(a4 8) E"#{ #BstG8tU: Ba L>2?!88;D;68?5;D; tj>8LALA1 `?CopyrigTt (c)@2`09@M{@c.y@oss@fBrAru@Aa@is@n.@ 0l@ yHsBe@ey@vZ@d@v2h<M#l#@ M@?4>UhjA6Q>1| L`Fkdj]J}vMjR]M 6)fMB@Wa\ k_稇avCe=ESeR9Y? l`gESeFeabkod iSQޗh~??5@+ c;Ꞗi"2_U3rA/04sCHD: )&# T=h0>Th]]9 Q BUFdHKJAUVJp?X ?Awz@bbb! ( "f Փ'+ ' qq?z A  +/.&68))E! '+ go?W-sU!n*a4 8) "u#{ u#D!st?8tM: Bav L62?!08;<;60?5;<; tb>{8DADA1 `?CopyrigTt (c){@2`09{@Ms@c.q@osk@fyBjArm@Aay@ik@n.{@ 0l@ qHsBe@eq@vZ@d@n2h<M#l#@ M@?]UhzbA.QR61b L` KdjMaQ  6fM{"@Ftnq\[3K_,7e5EGe<\ֽE?Nf[ NA_qd7eEGec6i\m j'f܋h2_UB3rA'04msCHD: )&# T=h0>Th]]9 Q BUF)8/?FFT?F!/$?Fᱝ̻?P Bt`  vNC?t|¢ϛT H0Bu auo7 >JTA0f88v?WYALv@z bbb!'n 6 % )! ! ,+ <?' o?z #a47% =) J""#K#{% (+ ( tQ#BXYщ?A> ?A "+(/+/=/O/a!y:5rl/@ sU10( /???? "?0<2?M{!b 1/Ĝ/*%,"t:"t>TQQ'@`?CopyrigTt (c)FP2`09FPM>PcTh]]9 PB IAUFJ1>?F}?FF(e?F=PFo?P t`  0!?tj$h5q+ tЖZu Mauo8 >    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 ,p )l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ s"?(a490 9_b!#{t0#tN8tϻ: Ua BL2$18KE;F?VEK]; t>B 4AA0`?CopyrigTt _(c)@2`W09@M@c@os@fBAr@Qa@i@nU.@ @l/P HUs3RePe@vEP-d'P2h<M#bl# M/P?]Uhz@AQ1 L@3FO#۲?F?o2zP dj|aW{'8cUF:&x0?F?F?F_'qoO 0Yigull4aj?N~f0c~o+ fEee?F<'?F@]?FwF%ޕol}dQ3ll BXl귺m|?bBhaU~e`ba`?FV ?F?Th ofl?PI3qoikeðl8` |GT?heFnF$OĒ?F o* leowk~y{f~tGg˂a ,8b1;MHD: )&# ;h0>Th]]9 PB IAUFGF?FEs?F+\(?F~@ t?P t`  9`Ik?t{ͻIu -ZrqKZu Mauo8 >    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 ,p )l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ s"?(a40 9 .*2!#{0:#t8'tϻ:Ua L2$18K;F?VEK.; t>B4AA0`?CopyrigTt (c)@2`09@M@c@oKs@fBAr@Qa@i@n.@ @l/P Hs3RePe@vEPd'P2hb<M#l1# M/P?]UhzAQ1 L@3FMbX9?F4ҫP dj}ah8cUF[~K?F|D?F+Xc?F&PRcGoO 0YiM+FllZaj}0%|f0c̭ fEe.V?Fȿ̅)`oSt?F?(X:olGGTll .Xl{e{|rww@haUe:&x0?F%Clw?FAz?F 1vņflux1qoiFA(]`t߼ |~Th]]9 PB IAUFGF?F\Dֳ?F+\(?F~@ t?P t`  9`Ik?t%h2tMu -ZrqKZu Mauo8 >    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 ,p )l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ s"?(a40 9 .*2!#{0:#t8'tϻ:Ua L2$18K;F?VEK.; t>B4AA0`?CopyrigTt (c)@2`09@M@c@oKs@fBAr@Qa@i@n.@ @l/P Hs3RePe@vEPd'P2hb<M#l1# M/P?]UhzAQ1 L@3FMbX9?F4ҫP dj}ah8cUF[~K?F|D?F+Xc?F&PRcGoO 0YiM+FllZaj}0%|f0c̭ fEe.V?Fȿ̅)`oSt?F?(X:olGGTll .Xl{e{|rww@haUe:&x0?F%Clw?FAz?F 1vņflux1qoiFA(]`t߼ |~Th]]9 PB IAUFXIn?FLw¾?F+\(?F-ku?P t`  -k?tZ߅BTu -CmoLZu Mauo8 >    PEJڍU[\/(?&. ?AbbY!z@Ae bbCt c(a4b  b(h#{ h#΍t(tI*#0f88vb.#i L5<1v(&$7/(D%"6/5;0( t.*B#11`?CopyrigTt] c).@2`W09.@M&@c$@os@f,BAr @YAa,@i@n}..@ Alt@U $HsxBeL@e$@v@dl@"h<M#l# Mt@?]UhzAA!J@#FMbX9?F$x0OԛP dj}תa4(SUF[~K?FE?FSc?F?#oO 0YM+Fӱ\*aj,.}a$?# XEU"n?F +?FbEd?F v<olTBJ\LMYBltavXlp@XEUv/?Fpvw;pg?F $hއvol/AD0qYJg ַBl)$ԞXlD?B:XU^F.fّPKk^Rl_[Ei1GAf`dSOq+a,(bvHD: )&# ;h0>Th]]9 PB IAUFXIn?F(?F+\(?F-ku?P t`  -k?t7/;3bu -+CmoLZu Mauo8>    PEJڍU[\/(?&. ?AbbY!z@Ae bbCt c(a4b  # b(h#{ h#΍t(tI*#0f88vb.#i L1<1v(&$7/(D%"6/5;0( t.*B#11`?CopyrigTt] c).@2`W09.@M&@c$@os@f,BAr @YAa,@i@n}..@ Alt@U $HsxBeL@e$@v@dl@"h<M#l# Mt@?]UhzAA!J@#FMbX9?F%x0OԛP dj}תa4(SUF[~K?FE?Fdc?F,?#oO 0YM+Fӱ\*aj ,.}a?# XEU"n?F{ +?F(%/Nd?F<olTBJ\MYBlU{XlpDc@XEUv/vw;pg?F^$hއ?Fvol/AD0qYf ַBls$ԞXl+?B:XU^F.fّPyKk^Rl_[Ei1GAf`dSOq+a,(bvHD: )&# T=h0>Th]]9 Q BUF贷F$?Ft\@?F\HRq?FƯK7?P Bt`  x#?tK#ll$nZVBu auo7>JA]^'? ?Az@b ( 6f  )ϓb= + _? ' 88o?z A s +=  /)/;/M$[+["-j!Q U1[!x(ar4 ) "'}# }#BtΜQ8t_:Ba~ LH2!B8;N;6B?5;.N; tt>8VAVA `?CopyrigTt (c)@2`09@M@c@oKs}@fB|Ar@Aa@i}@n.@ 0l@ HsBe@e@v@d@2hb<M#l1# M@?4>UhuQuQPtA@Qj LZFχϰ 7j bL\2] 6R1bMB:MbPdc Ɵmdb`GeGEWe$oZ\aibvIGeU@Vϰ+@?F23<~pk_xu jlTh]]9 Q BUF#/?FKGY?F\HRq?FƯK7?P Bt`  ~B?tIH#ll$nZVBu acuo77AJA]^'? ?Az@b ( 6f  )ϓb= + _? ' 88o?z A s +=  /)/;/M$[+["-j!Q U1[!x(ar4 )] "'}#{t }#BtNQ8t_:Ba~ PLH2!B8;N;Q6B?5;N; tt>8VAVA `?CopyrigTt (c)@2`09@M@c@o%s}@fB|Ar@Aua@i}@n.@U 0l@ HsBUe@e@v@d@ 2h<M#l# MT@?4>UhuQuQtA(@QH1j LZFهgϰ 7j bL\G6] 6S-fMB:MbPdc mdb`GeGEWe$oˏZ\ai?bvIGeUWeVϰ+@?Vpk_xu j aGeWe _ooh2K]u:3rA 4s2HD: )&# T=h0>Th]]9 Q BUF/ ֛9?FD6Hr?F\HRq?FƯK7?P Bt`   a1?t -_9#ll$nZVBu auo7>JA]^'? ?Az@b ( 6f  )ϓb= + _? ' 88o?z A s +=  /)/;/M$[+["-j!Q U1[!x(ar4 )] "'}#{t }#BtNQ8t_:Ba~ PLH2!B8;N;Q6B?5;N; tt>8VAVA `?CopyrigTt (c)@2`09@M@c@o%s}@fB|Ar@Aua@i}@n.@U 0l@ HsBUe@e@v@d@ 2h<M#l# MT@?4>UhuQuQtA(@QH1j LZFهgϰ 7j bL\] 6-fMB:MbPdc Ɵmdb`GeGEWenZ\aiavIGeUWeVϰ+@?Vpk_xu j aGe@We_ooh2Kt]u3rA 4s2HD: )&# T=h0>Th]]9 Q BUF[@#?F\O?Fo?FƯK7?P Bt`  ?tJ8Xj$nZVBu auo7>JA]^'? ?Az@b ( 6f  )ϓb= + _? ' 88o?z A s +=  /)/;/M$[+["-j!Q U1[!x(ar4 )] "'}#{t }#BtNQ8t_:Ba~ PLH2!B8;N;Q6B?5;N; tt>8VAVA `?CopyrigTt>(cu)>2`09>uM@c@os}@IfB|Ar@Aa@]i}@n.> 0Ul@ HsBe@e@v@d@B2h,<M#l# M@?U4>UhuQuQtAJ@QH1j LZFهϰ 7j bL\] 6-fMB:ʿMbPdc 2Ngodb`GeGEWe$oZ\aibvIGeUWe4?Vpku j aGeWe_ooh2K]u3rA 4s2HD: )&# ;h0>Th]]9 PB IAUF?FË.5?FQ?F?P t`  ?{R   ] EJ]_DRb(?&. ?Az@bY(e 6f h )ϓb k+ _?Z'e 88o?ze Ae s[+ h g/y//$# L:5 /sUK1*a4 9 2(E#{ #t8tϤ:U a L2T18K;6Ԉ?@EK; tͺ>B40AA0`?CopyrigTwt c)@]2`09@M@]c@os@fBRAr@Aa@i@Wn.@ 0lPU HsRe@e@v/PdP2h<M#l#A MP? <>Uh$QQ(]A(Q1 LZ3;'xP 7jbbFbL7a 6{fM8cUFnDdTh]]9 PB IAUF4{"?F=N?FQ?F?P t`  ^}W;o?tQxČ( 뾅@l* 9u auo8>   ] EJ]_DRb(?&. ?Az@bY(e 6f h )ϓb k+ _?Z'e 88o?ze Ae s[+ h g/y//$# L:5 /sU"K1*a4 9 2(E#{ #t8tϤ:U a L2T18K;6Ԉ?@EK; tͺ>B40AA0`?CopyrigTwt c)@]2`09@M@]c@os@fBRAr@Aa@i@Wn.@ 0lPU HsRe@e@v/PdP2h<M#l#A MP? <>Uh$QQ(]A(Q1 LZ3;'xP 7jbbFbL7a 6{fM8(a?nDFF!@~qWoO 0dTc I\rdcd bjUkgaPbeEef"v?Fr6d?F?kĀqo`OivddlXr`tF0sK|٢jr3t!KU:G}?{]rLl} ]|q3xnTrg?F<ے7pooZgtfio,V|=] 5ve&1?Fpn?FTh]]9 PB IAUFGC<-?F f?FQ?F?P t`  L?RD)o?tC%)Č( 뾅@l* 9u auo8>   ] EJ]_DRb(?&. ?Az@bY(e 6f h )ϓb k+ _?Z'e 88o?ze Ae s[+ h g/y//$# L:5 /sU"K1*a4 9 2(#{ #st8tϥ:RUa L21*8K;6?@EK; tR>B4AA0`?CopyrigTt c)@2`09@M@c.@os@fBAr@Aa@i@n.@ 0lP HsRe@e@vZ/PdP2h<M#l# MP? < >Uh$QQ]AQ1 LZ3;'xP 7jbUbFb7a 6{fM8cUFnDFK!@?FDqWoO 0dTc I\addǼbjUkgabeE(aFjv?Fr6d?FkĀq o`Oi^j^r`t0sKÊ#|pr9t!KU:M}{]r,Ll}]|9xLufTrg?F<ے7vodObdcZgtfi,V #|=c ;vLu&1?Fpn?FTh]]9 PB IAUFĊ?F$n6b?FQ?F?P t`  ro?t,Č( 뾅@l* 9u auo8dA d  ] EJ]_DRb(?&. ?Az@bY(e 6f h )ϓb k+ _?Z'e 88o?ze Ae s[+ h g/y//$# L:5 /sU"K1*a4 9 2(E#{ #t8tϤ:U a L2T18K;6Ԉ?@EK; tͺ>B40AA0`?CopyrigTwt c)@]2`09@M@]c@os@fBRAr@Aa@i@Wn.@ 0lPU HsRe@e@v/PdP2h<M#l#A MP? <>Uh$QQ(]A(Q1 LZ3;'xP 7jbbFbL7da 6{fM8(a?D +F2|>?FW@WoO 0j?rdcd bj{^WeabeEef"v?Fddd?F܃qo`OivddlXr`tuqE|E:jr3t!KU:G}{]rLl}]|q3xngqrg?F~pooZgt_ML|\ 5ve&1?FWf?F?#0b|[m낪 z'oǵ(|F$$!ayTh]]9 Q BUF贷F$?FlIJ?F\HRq?F#o˯Z?P Bt`  x#?tnZ/J#ll#VBu auo7>JTA0f88v?WYϳAjLv@z bbb!' 6Y % )! ! ,+ <?' o?z #a47% @& J"#K#({% (+ (G t#Beı?A>L ?A"&"&$/*8%,"t:"t>  A A6 `?CopyrigTt _(c)D@2`W09D@M<@c:@os4@fBB3Ar6@oAaB@i4@n}.D@ Al@U :HsBeb@e:@v@d@2h/1<M#l#@7? M@?(>Uh7E P+AA!{ L:F A7<6j% bRzg9<2 "\MbPdS mT W5U6ik0YaYvq 2HD: )&# T=h0>Th]]9 Q BUF#/?F ?F\HRq?Fn˯Z?P Bt`  ~B?t6#ll#VBu acuo7hAJTA0f88v?WYϳAjLv@z bbb!' 6Y % )! ! ,+ <?' o?z #a47% =) J"#K#({% (+ (G t#Beı?A>L ?A"&"&$/*8%,"t:"t>  A A6 `?CopyrigTt$(c)$2`09$M<@c:@o%s4@fBB3Ar6@oAuaB@i4@n.$_ Al@ :HUsBeb@e:@v@-d@2`h/1<M#l1#7? PM@?(>Uh7E +AA!{ L:F<F6j% bRzg9<2 "\7MbPdS mT W5UO?6ik0YaYvq 2HD: )&# T=h0>Th]]9 Q BUF/ ֛9?FT?F\HRq?Fn˯Z?P Bt`   a1?t#ll#VBu auo7>JTA0f88v?WYϳAjLv@z bbb!' 6Y % )! ! ,+ <?' o?z #a47% =) J"#K#({% (+ (G t#Beı?A>L ?A"&"&$/*8%,"t:"t>  A A6 `?CopyrigTt _(c)D@2`W09D@M<@c:@os4@fBB3Ar6@oAaB@i4@n}.D@ Al@U :HsBeb@e:@v@d@2h/1<M#l#@7? M@?(>Uh7E P+AA!{ L:F6j% bT ü2 "\MbPdS mT W5UO6ik0YaYvq 2HD: )&# T=h0>Th]]9 Q BUF[@#?Flo]?Fo?Fn˯Z?P Bt`  ?tz6,JJ\8Xj#VBu acuo7AJTA0f88v?WYϳAjLv@z bbb!' 6Y % )! ! ,+ <?' o?z #a47% =) J"#K#({% (+ (G t#Beı?A>L ?A"&"&$/*8%,"t:"t>  A A6 `?CopyrigTt>(c)>2`09>M<@c:@o%s4@fBB3Ar6@oAuaB@i4@n.>_ Al@ :HUsBeb@e:@v@-d@2`h/1<M#l1#7? PM@?(>Uh7E +AA!{ L:F<F6j% bRzg9<2 "\ʩ7MbPdS 2NoT W5UO?6ik0YaYvq 2UHT5D B &# T>h0JTtiiM ENUFlQ?Fڋ?FPaW?F ru?P WNtQ` c͕.:7?tU)oni8;(\I2-nNuj mu){E0f88wv?AVQ Ӎ!@#b#m@b  0#  #W(3 (o+&T" #t#NĽ/?. ?M"&$a%$$,/>*L%i,T"tΞ*T"tR.R11#`?Copyrig`t (c)02l090M0c0os0f21r01a0i0n.0 Al@ 8sBe0e0v0@d@"Vt!X#xB #/ @T,UtE1UA-!@nZ pvm?S׮(%UQG@Y9"S\FkV5%UЗn@‹Pهϰ=\WQS\OXbiTQY%_7_I_[_DQOOOO__^̔ԍ?f Q́)f@vVP|?5^BlӿIY:6Xl?Ib ʏ܏EABTfxF\HRqCk?-q_WaW?ϰ+@"Bl!H,BXQnB)fFޖBoT[inJ\ۙgyAHD: )&# T=h0>Th]]9 Q BUFhY?FlIJ?F&1?F3(e?P Bt`  6n?tҝw~m4tMuVBu auo7>JAS`? ?Az@bbb! ( 6 )  '+ ߈?/I-Z#mg!z A " ././@/R+,g/y'sU1,ar4 )] "#{t #BtNg8tu:Ba PL^2!X8;d;Q6X?E;d; t͊>8lAlA `?CopyrigTt (c)@2`09@M@c@o%s@fBAr@Aua@i@n.@U 0l@ HsBUe@e@v@d@ 2h<M#l# MT@?4>UhQQA(VQ^1| LZFX} g 7j b2ɶGOR] 6SCfMB:ZMbXdc $I$I܍+d `2aa]Eme'la'iL.G]eU@9/$E?;FslAka,dHּgmeoo(oh2gyu3rA 4s2HD: )&# T=h0>Th]]9 Q BUFy?F.޺s?F&1?F3(e?P Bt`  7 ?tN]m4t_MuBu aquo7>KJAS`?X ?Az@bbb! ( 6f )  '+ ߈?I-Z#g!z A " ././@/R+g/y'sU1,a4 ) ."#{ :#Btg8tu:B@a L^2!X8;d;6X?E;d; Kt͊>8alAlA `?CopyrigTt (c)@2`09@M@c@os@fBAr@Aa@i@n.@ 0l@ HsBe@e@v@d@2hX<M#l # M@?4>UhQQAVQ^1| LZFX} 3 7j b2ɶOK] 6SCfMB:ZMbXdc $I$I܍+d 2aa]Emekla'i.]eU@;0$E?FTh]]9 Q BUF߹e?F4jߤ?F!?FTUUUɺ?P Bt`  ?tiqn= ףc?ckBu1 ,duon7>)JAUVJp? ?Awz@b_bb! (݉ " '+ ' qq?z A  +S/.&68))E! '+ g?uW-sUUn*a4 8) "u#{ u#D!tΜ?8tM:Bav L62?!08;<;60?5;.<; tb>{8DADA1 `?CopyrigTt (c){@2`09{@Ms@cq@oKsk@fyBjArm@Aay@ik@n.{@ 0l@ qHsBe@eq@v@d@n2hb<M#l1# M@? Uh,cQcQ] '1PbA.Q61b L`w"?FMDA dj? |m cuۡ'1 6!1fM{":F$3<6d kS=ѣ<n2{!5E[nLa vogaKeE[eV_@cbc g@]amr\GDž}iNu?FS%f|]tElFTh]]9 Q BUFtx?F/!?FTUUU?P Bt`  K_?t)C= ףc?cZBu auo7[>ʜJAUVJp? ?Awz@bbWb! ( 7 " '+ ' qq?z A  +/.&68))E! '+ g?W-sUUn*a4 8) ."u#{ {8aDADA1 `?CopyrigTt (c){@2`09{@Ms@cq@osk@fyBjArm@Aay@ik@n.{@ 0l@ qHsBe@eq@v@d@n2hX<M#l # M@? Uh,@cQcQ] '1bA.Q61b L`zw"?FDA dj O|m cuۡi'1 61fM{":F$3<6d kS=ѣ<n2{!5E[nLah vogaKeE[eV_cbPc g@]amr\Dž}iNu?FS%f|]tElF<2PhQp[" |"*`KeQitVl:qid?5hQ@J_nohU2t3rA 4n2HD: )&# T=h0>Th]]9 Q BUFiv?F{<?FU?F3z[j˺?P Bt`  y]?thS&XRBu ,duo7oAJAa^!? ?Az@bbb! (n 6  )  '+ g~X?I-Z#!g!z A " ,/,/>/P-[ן+g/y'"ي,a4 ) "!E#{ #Btg8tu:Ba L^2!X8;d;6X?Eu;d; t͊>)8lAlA `?CopyrigTt (c)@]2`09@M@]c@os@fBRAr@Aa@i@Wn.@ 0l@U HsBe@e@v@d@2h<M#l#A M@?8>UhoQQ]AJVQ^1| L@}?F! dj ٯla6?ztB: 7d /kyԷ&Dh]EWemkp+ɉ 5d}bGeUWeFBϰ+@ol0juMDhnMbX0j`(DhnC<o+o"<EgUoo6o9HD: )&# T=h0>Th]]9 Q BUFT1#E2H?F]&UaU?F3z[j?P Bt`  ?t1:&XRZBu auo7[!>ʜJAa^Ė? ?Az@bbWb! ( 7 6 )  '+ g~X?I-Z#!g!zV A " ,/,/>/P-[O+g/y',*a4 ) "!#{ #Bstg8tu: Ba L^2!X8;d;6X?E;d; t͊>8lAlA `?CopyrigTt (c)@2`09@M@c.@os@fBAr@Aa@i@n.@ 0l@ HsBe@e@vZ@d@2h<M#l# M@?8>UhoQQ]AVQ^1| L@Ͼ?F! dj ٨la6ztB: 7d /kyԷ&Dh]EWemkp+ɉ 5d}bGeUWeFBϰ+@ol0juMDhnH?MbX0j`DhWef9o-ai qGeUoo$o6o3UHLD )&# R>h 0JTlaaM>UFObFd0?Fgj?F0U?F_gw?P >tA`  N+ru?t sM׵01,_Œ X">u eu!s7-"JɅJUU?HA9 j@7tt7 b:*H&tH  th*Nĵ) ?MB"b;)H&e8H m 3 H -US4o?FPjj?6ֈ@!QpoĬگ eoĩ́ F o 01G}}϶@b@mp?#nʼPV]O߸uy\l2_+ʦE}@p5"iРo~e*al|ٍşןHD: )&# ;h0>Th]]9 PB IAUF\6:?F}?FF(e?F=PFo?P t`  @?tP[5q+ tЖZu Mauo8#>    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 ,p )l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ s"?(a40 9 .*2!#{0:#t8'tϻ:Ua L2$18K;F?VEK.; t>B4AA0`?CopyrigTt (c)@2`09@M@c@oKs@fBAr@Qa@i@n.@ @l/P Hs3RePe@vEPd'P2hb<M#l1# M/P?]UhzAQ1 L@3FO#۲?Fo2zP dj|aW{ޓ8cUF:&x0?F?F?FX'qoO 0Yifull4ajS?ON~f0c?h+ fEeޖe?F<'?F@]?F\F%ޕol}dQ3ll BXy귺m|ԇbBhaUe```?FV ?F?Th ofl?PI3qoijeðl.` |=T?heFnF$OĒ?F o* leowk~y{f~tGg˂a ,8b1;MHD: )&# ;h0>Th]]9 PB IAUF\6:?Fx?FF(e?F=PFo?P t`  @?t%5q+ tЖZu Mauo8$>    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 ,p )l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ s"?(a40 9 .*2!#{0:#t8'tϻ:Ua L2$18K;F?VEK.; t>B4AA0`?CopyrigTt (c)@2`09@M@c@oKs@fBAr@Qa@i@n.@ @l/P Hs3RePe@vEPd'P2hb<M#l1# M/P?]UhzAQ1 L@3FO#۲?Fo2zP dj|a{ޓ8cUF:&x0?F?F?F'qoO 0Yifull4ajK?ON~f0c?+ fEeޖe?F<'?F@]?FsF%ޕol}dQ3ll BXyR귺m|bBhaUe```?FV ?F?Th ofl?PI3qoiGkeðl?2` ,yFT?heFnF*OĒ?F o* leowk~yf~tGg˂a ,8b1;MHD: )&# T=h0>Th]]9 Q BUFL&d?F`0?F(\µ^S?P Bt`  {Go?tNV yAP FBub ,duo7%>RJ[0U?<ALv@tt7 }b6*D&tD  td*JBı) ?A>"b7)D&a4D  V3 D 8/td/tRy.x1x1`?CopyrigTt (c)02`090M0c0os0f21r01a0i0n.0 Al0 8s2e0e0v @d0"h0!<M#l#/MlP> @?UhLAA]R 1 P1"7Ж1bA>!J`oO2z[ dja_q:z׍ Q 6VMB@챝/P\`_m;E,Ui5Uޖ?FQ[5lf\VU'EUY2Ruݯ?FU]˖7sf\pdѣSYUWfe _zx]݅om{ZcXUFRP\g[)JXAp| rhQ#5 IXAYaLPւ?FتcP\T f\3$sXAp"۲ ElU1YA-k?FFoZP\fyf\!XAYX%?F8K7P\{ 䘷f\&SAY&1l?Fr>|]P\-]qiYip~ X1#g~jt-? XAY?F ףp=P\' f\?P=Rw㹥X'RXT}7vP\__/vnTpljlX7U/?$?vQ[E7Ժf\wUQY|>qh|P\4GN"MDX U29_KU#rA0$@CHD: )&# T=h0>Th]]9 Q BUF8?Fā43?F7??FtYOȻ?P Bt`  1=o2?!88;D;68?5u;D; tj>)8LALA1 `?CopyrigTt (c)@]2`09@M{@]cy@oss@fBRrAru@Aa@is@Wn.@ 0l@U yHsBe@ey@v@d@v2h<M#l#A M@?4>UhkQkQjA6Q>1| L`Fdj]JK}vM41R] 6)fMB@Wa\ k_程avCe=E~SeR9Y? lgESeFeabkod i?SQޗh~?5@+ c;ꉞi2_U3rA/04sCHD: )&# T=h0>Th]]9 Q BUF2B9?FZ&?F'l?F{Cƻ?P Bt`  ,i?t('̺㯝4\YDrVBu auo7'>JAUVJp? ?Awz@bbb! ( " '+ ' qq?z A 9 +/.&68))E! '+ g?W-sU"!n*a4 8) "u#{ u#D!t?8tM:Bav L62?!08;<;60?5u;<; tb>){8DADA1 `?CopyrigTt (c){@]2`09{@Ms@]cq@osk@fyBRjArm@Aay@ik@Wn.{@ 0l@U qHsBe@eq@v@d@n2h<M#l# M@?]UhzbA.Q61b L` djM"aQ  6fM{"@Ftnq\[3K_,7e5EGe<\ֽE?Nf[ N_qd7eEGec6i\m jOf܋h2_U3rA'04msCHD: )&# T=h0>Th]]9 Q BUF] ?F t5?F!/$?Fᱝ̻?P Bt`  "?t4@+ϛ׊T, H_0Bu aquo7(>KJTA0f88v?WYgAL5v]@z bbob!'݉ 6 ,% )! ! ,+ <?' o?z #a47% =) J"E#K#{% (+ ( t#BXY?A> ?A "+(/+/=/O/a!y:5r=l/@ sU10( /???? "0<2(?M{!b 1//*%,"st:"t>0QQ'@`?CopyrigTt (cu)FP2`09FPuM>PcTh]]9 PB IAUFR?F}Y?FF(e?F=PFo?P t`  (\#?tƯ.5q+ tЖZu Mauo8)>    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 p l l w+ g?-#U!׷!zme Ae [+j/|//-g#+ s"?(a4\0 9 *2!#{0#t8tϻ:񧂍Ua PL2$18K;QF?VEK; t>B4AA0`?CopyrigTt (c)@2`09@M@c@o%s@fBAr@Qua@i@n.@U @l/P Hs3RUePe@vEPd'P 2h<M#l# M/P?]UhzPAQ1 L@3FO#۲?FoO2zP dj|aW{8cUF:&x0?F?F?F_?'qoO 0Yigull4aj?N~f0co+ fEeޖe?F<'?F@]?FwF%ޕol}dQ3ll BXlﷺm|bBhaUeߔ`ba`?FV ?FTh oflPIϮ3qoikeðl8` |GT?heFnF$OĒ?F o* leowky{ftGg˂a,8b1;MHD: )&# ;h0>Th]]9 PB IAUFpX?F&U?F+\(?F~@ t?P t`  (TJ?t[uᯜ(=u -ZrqKZu Mauo8*>    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 ,p )l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ s"?(a40 9 .*2!#{0:#t8'tϻ:Ua L2$18K;F?VEK.; t>B4AA0`?CopyrigTt (c)@2`09@M@c@oKs@fBAr@Qa@i@n.@ @l/P Hs3RePe@vEPd'P2hb<M#l1# M/P?]UhzAQ1 L@3FMbX9?F4ҫP dj}ah8cUF[~K?F|D?F+Xc?F&PRcGoO 0YiM+FllZaj}0%|f0c̭ fEe.V?Fȿ̅)`oSt?F?(X:olGGTll .Xl{e{|rww@haUe:&x0?F%Clw?FAz?F 1vņflux1qoiFA(]`t߼ |~Th]]9 PB IAUFpX?F*g?F+\(?F~@ t?P t`  (TJ?t4%u -ZrqKZu Mauo8+>    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 ,p )l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ s"?(a40 9 .*2!#{0:#t8'tϻ:Ua L2$18K;F?VEK.; t>B4AA0`?CopyrigTt (c)@2`09@M@c@oKs@fBAr@Qa@i@n.@ @l/P Hs3RePe@vEPd'P2hb<M#l1# M/P?]UhzAQ1 L@3FMbX9?F4ҫP dj}ah8cUF[~K?F|D?F+Xc?F&PRcGoO 0YiM+FllZaj}0%|f0c̭ fEe.V?Fȿ̅)`oSt?F?(X:olGGTll .Xl{e{|rww@haUe:&x0?F%Clw?FAz?F 1vņflux1qoiFA(]`t߼ |~Th]]9 PB IAUF$?Fy}?F+\(?F-ku?P t`  p&k?tl    PEJڍU[\/(?&. ?AbbY!z@Ae bbCt c(a4b  # b(h#{ h#΍t(tI*#0f88vb.#i L5<1v(&$7/(D%"6/5;0( t.*B#11`?CopyrigTt] c).@2`W09.@M&@c$@os@f,BAr @YAa,@i@n}..@ Alt@U $HsxBeL@e$@v@dl@"h<M#l# Mt@?]UhzAA!J@#FMbX9?F$x0OԛP dj}תa4(SUF[~K?FE?FSc?F?#oO 0YM+Fӱ\*aj,.}a$?# XEU"n?F +?FbEd?F v<olTBJ\LMYBltavXlp@XEUv/?Fpvw;pg?F $hއ?FLvo~l/AD0qYJg ַBl)$ԞXlDB:XU^F.fّPKk^Rl_[Ei?1GAf`d?Sq+abvHD: )&# ;h0>Th]]9 PB IAUF$?FQ?F+\(?F-ku?P t`  p&k?t u -+CmoLZu Mauo8->    PEJڍU[\/(?&. ?AbbY!z@Ae bbCt c(a4b  # b(h#{ h#΍t(tI*#0f88vb.#i L5<1v(&$7/(D%"6/5;0( t.*B#11`?CopyrigTt] c).@2`W09.@M&@c$@os@f,BAr @YAa,@i@n}..@ Alt@U $HsxBeL@e$@v@dl@"h<M#l# Mt@?]UhzAA!J@#FMbX9?F%x0OԛP dj}תa4(SUF[~K?FE?Fdc?F,?#oO 0YM+Fӱ\*aj ,.}a?# XEU"n?F{ +?F(%/Nd?F<olTBJ\MYBlU{XlpDc@XEUv/vw;pg?F^$hއ?Fvol/AD0qYf ַBls$ԞXl+?B:XU^F.fّPyKk^Rl_[Ei1GAf`dSOq+a,(bvHD: )&# T=h0>Th]]9 Q BUFt[@#?FX J?F\HRq?FƯK7?P Bt`  =0[?t@'#ll$nZBu duo7.>JA]^'? ?Az@b ( 6f  )ϓb= + _? ' 88o?z A s +=  /)/;/M$[+["-j!Q U1[!x(ar4 )] "'}#{t }#BtNQ8t_:Ba~ PLH2!B8;N;Q6B?5;N; tt>8VAVA `?CopyrigTt (c)@2`09@M@c@o%s}@fB|Ar@Aua@i}@n.@U 0l@ HsBUe@e@v@d@ 2h<M#l# MT@?4>UhuQuQtA(@QH1j LZFهgϰ 7j bL\GB] 6S-fMB:MbPdc mdb`GeGEWe$oˏZ\ai?bvIGeU@Vϰ+@_?F23Th]]9 Q BUF偃?F?F\HRq?FƯK7?P Bt`  Xkw?t[I2#ll$nZVBu auo7/>JA]^'? ?Az@b ( 6f  )ϓb= + _? ' 88o?z A s +=  /)/;/M$[+["-j!Q U1[!x(ar4 )] "'}#{t }#BtNQ8t_:Ba~ PLH2!B8;N;Q6B?5;N; tt>8VAVA `?CopyrigTt (c)@2`09@M@c@o%s}@fB|Ar@Aua@i}@n.@U 0l@ HsBUe@e@v@d@ 2h<M#l# MT@?4>UhuQuQtA(@QH1j LZFهgϰ 7j bL\] 6-fMB:MbPdc Ɵmdb`GeGEWe$oZ\aibvIGeUWeVϰ+@?Vpk_xu j aGe@We_ooh2Kt]u3rA 4s2HD: )&# T=h0>Th]]9 Q BUF͜?Fil8?F\HRq?FƯK7?P Bt`  W׎?tt^ #ll$nZVBu acuo7aJ?JA]^'?X ?Az@bu ( 6  )b= + ? ' 88?z A  +=  /)/;/M$[+["-j!Q U1[!x(a4 ) ."'}#{ :}#BtQ8t_:B@a~ LH2!B8;N;6B?5;N; Ktt>8aVAVA `?CopyrigTt (c)@2`09@M@c@os}@fB|Ar@Aa@i}@n.@ 0l@ HsBe@e@v@d@2hX<M#l # M@?4>UhuQuQtA@QH1j LZFه3 7j bL\`] 6-fMB:MbPdc gmdb`GeGEWenZ\aiavIGeUWeVϰ+@?Vpk_xu j aGeWe_ooh2K]u3rA 4s2HD: )&# T=h0>Th]]9 Q BUF[@#"?F`>?Fo?FƯK7?P Bt`  ?tS'8Xj$nZVBu auo71>JA]^'? ?Az@b ( 6f  )ϓb= + _? ' 88o?z A s +=  /)/;/M$[+["-j!Q U1[!x(ar4 )] "'}#{t }#BtNQ8t_:Ba~ PLH2!B8;N;Q6B?5;N; tt>8VAVA `?CopyrigTt>(cu)>2`09>uM@c@os}@IfB|Ar@Aa@]i}@n.> 0Ul@ HsBe@e@v@d@B2h,<M#l# M@?U4>UhuQuQtAJ@QH1j LZFهϰ 7j bL\] 6-fMB:ʿMbPdc 2Ngodb`GeGEWe$oZ\aibvIGeUWe4?Vpku j aGeWe_ooh2K]u3rA 4s2HD: )&# ;h0>Th]]9 PB IAUFv?Fo]j?FQ?F?P t`  Smo?tT.qČ( 뾅@l* 9u duo82>   ] EJ]_DRb(?&. ?Az@bY(e 6f h )ϓb k+ _?Z'e 88o?ze Ae s[+ h g/y//$# L:5 /sU"K1*a4 9 2(E#{ #t8tϤ:U a L2T18K;6Ԉ?@EK; tͺ>B40AA0`?CopyrigTwt c)@]2`09@M@]c@os@fBRAr@Aa@i@Wn.@ 0lPU HsRe@e@v/PdP2h<M#l#A MP? <>Uh$QQ(]A(Q1 LZ3;'xP 7jbbFb7@c 6{fM8cUFnDdTh]]9 PB IAUFSQ=?F{3?FQ?F?P t`  4o?tPǭ\"Č( 뾅@l* 9u auo83>   ] EJ]_DRb(?&. ?Az@bY(e 6f h )ϓb k+ _?Z'e 88o?ze Ae s[+ h g/y//$# L:5 /sU K1(a4 9 2(E#{ #t8tϤ:U a L2T18K;6Ԉ?@EK; tͺ>B40AA0`?CopyrigTwt c)@]2`09@M@]c@os@fBRAr@Aa@i@Wn.@ 0lPU HsRe@e@v/PdP2h<M#l#A MP? <>Uh$QQ(]A(Q1 LZ3;'xP 7jbbFbL7a 6{fM8(a?nDFF!@~qWoO 0dTc I\rdcd bjUkgaPbeEef"v?Fr6d?F?kĀqo`OivddlXr`tF0sK|٢jr3t!KU:G}?{]rLl} ]|q3xnTrg?F<ے7pooZgtfio,V|=] 5ve&1?Fpn?FTh]]9 PB IAUF!?F?FQ?F?P t`  + {o?tn&Č( 뾅@l* 9u auo84>   ] EJ]_DRb(?&. ?Az@bY(e 6f h )ϓb k+ _?Z'e 88o?ze Ae s[+ h g/y//$# L:5 /sU"K1*a4 9 2(E#{ #t8tϤ:U a L2T18K;6Ԉ?@EK; tͺ>B40AA0`?CopyrigTwt c)@]2`09@M@]c@os@fBRAr@Aa@i@Wn.@ 0lPU HsRe@e@v/PdP2h<M#l#A MP? <>Uh$QQ(]A(Q1 LZ3;'xP 7jbbFbL7a 6{fM8cUFnDFK!@?FDqWoO 0dTc I\addbjUWkgabeE(aFjv?Fr6d?FkĀAqo`Oi^j^r`t0sK#|pr9t!KU:M}{]rYLl}]|9xLufTrg?F<7vodObdcZgtfi,V#|=c ;vLu&1?Fpn?FTh]]9 PB IAUFĊ?F)lIJ?FQ?F?P t`  o?t\Č( 뾅@l* 9u auo85>   ] EJ]_DRb(?&. ?Az@bY(e 6f h )ϓb k+ _?Z'e 88o?ze Ae s[+ h g/y//$# L:5 /sU"K1*a4 9 2(E#{ #t8tϤ:U a L2T18K;6Ԉ?@EK; tͺ>B40AA0`?CopyrigTwt c)@]2`09@M@]c@os@fBRAr@Aa@i@Wn.@ 0lPU HsRe@e@v/PdP2h<M#l#A MP? <>Uh$QQ(]A(Q1 LZ3;'xP 7jbbFbL7a 6{fM8(a?D +F2|>?FW@WoO 0dTc rdcd bj{^ea͂beEef"v?Fddd?F܃q o`OivddlXr`tuqEÊ|:jr3t!KU:G}{]r,Ll}]|q3xngqrg?F~pooZgtML|\ 5ve&1?FWf?F#0bĂ|[m낪 z'ǵ(|F$$!ayTh]]9 Q BUFt[@#?Fyوe??F\HRq?F#o˯Z?P Bt`  =0[?t&0N#ll#Bu duo76>JTA0f88v?WYϳAjL@z bbb!'  ,% )! ! ,+ <?' o?z #a47% =) J"E#K#{% (+ ( t#B2?A> &?A"&"I&$/*%,"t:"Kt> A A6 `?CopyrigTt (c)D@2`09D@M<@c:@oKs4@fBB3Ar6@oAaB@i4@n.D@ Al@ :HsBeb@e:@vZ@d@2h/1<M#bl#7? M@?(>Uh7E +A(A!{ L:F A<6j% bRzg9ǩ<2 "\MbPdS mT W5U6ik0YaYvq 2HD: )&# T=h0>Th]]9 Q BUF偃?F?P?F\HRq?Fn˯Z?P Bt`  Xkw?tGj#ll#VBu auo77>JTA0f88v?WYϳAjLv@z bbb!' 6Y % )! ! ,+ <?' o?z #a47% =) J"#K#({% (+ (G t#Beı?A>L ?A"&"&$/*8%,"t:"t>  A A6 `?CopyrigTt _(c)D@2`W09D@M<@c:@os4@fBB3Ar6@oAaB@i4@n}.D@ Al@U :HsBeb@e:@v@d@2h/1<M#l#@7? M@?(>Uh7E P+AA!{ L:F<6j% bRzg9ǩ<2 "\MbPdS mT W5UO6ik0YaYvq 2HD: )&# T=h0>Th]]9 Q BUF͜?F:'?F\HRq?Fn˯Z?P Bt`  W׎?ts aU#ll#VBu auo78>JTA0f88v?WYϳAjLv@z bbb!' 6Y % )! ! ,+ <?' o?z #a47% =) J"#K#({% (+ (G t#Beı?A>L ?A"&"&$/*8%,"t:"t>  A A6 `?CopyrigTt _(c)D@2`W09D@M<@c:@os4@fBB3Ar6@oAaB@i4@n}.D@ Al@U :HsBeb@e:@v@d@2h/1<M#l#@7? M@?(>Uh7E P+AA!{ L:F6j% bT ü2 "\MbPdS mT W5UO6ik0YaYvq 2HD: )&# T=h0>Th]]9 Q BUF[@#"?F.޺?Fo?Fn˯Z?P Bt`  ?tchE 8Xj#VBu auo79>JTA0f88v?WYϳAjLv@z bbb!' 6Y % )! ! ,+ <?' o?z #a47% =) J"#K#({% (+ (G t#Beı?A>L ?A"&"&$/*8%,"t:"t>  A A6 `?CopyrigTt>(c)>2`09>M<@c:@o%s4@fBB3Ar6@oAuaB@i4@n.>_ Al@ :HUsBeb@e:@v@-d@2`h/1<M#l1#7? PM@?(>Uh7E +AA!{ L:F<F6j% bRzg9<2 "\ʩ7MbPdS 2NoT W5UO?6ik0YaYvq 2UHT5D B &# T>h0JTtiiM ENUF|u(?F-?FPaW?F ru?P WNtQ` 786R7?tU溁i8;(\I2-nNuj mu){:E0f88wv?AVQ Ӎ!@#b#m@b  0#  #W(3 (o+&T" #t#NĽ/?. ?M"&$a%$$,/>*L%i,T"tΞ*T"tR.R11#`?Copyrig`t (c)02l090M0c0os0f21r01a0i0n.0 Al@ 8sBe0e0v0@d@"Vt!X#xB #/ @T,UtE1UA-!@nZ pvm?S׮(%UQG@Y9"S\FkV5%UЗn@‹Pهϰ=\WQS\OXbiTQY%_7_I_[_DQOOOO__^̔ԍ?f Q́)f@vVP|?5^BlӿIY:6Xl?Ib ʏ܏EABTfxF\HRqCk?-q_WaW?ϰ+@"Bl!H,BXQnB)fFޖBoT[inJ\ۙgyAHD: )&# T=h0>Th]]9 Q BUF4@ ,?FYوe?^?F&1?F3(e?P Bt`  N!?tx/m4tMuVBu auo7;>JAS`? ?Az@bbb! ( 6 )  '+ ߈?/I-Z#mg!z A " ././@/R+,g/y'sU1,ar4 )] "#{t #BtNg8tu:Ba PL^2!X8;d;Q6X?E;d; t͊>8lAlA `?CopyrigTt (c)@2`09@M@c@o%s@fBAr@Aua@i@n.@U 0l@ HsBUe@e@v@d@ 2h<M#l# MT@?4>UhQQA(VQ^1| LZFX} g 7j b2ɶO] 6CfMB:ZMbXdc $I$I܍+d 2aa]Eme'la'iL.]eU@9/$Ew?FslAka,dHޓּgmeoo(oh2gyu3rA 4s2HD: )&# T=h0>Th]]9 Q BUFnټk-?F]u)?F&1?F3(e?P Bt`  3?tg[ m4tMuVBu auo7<>JAS`? ?Az@bbb! ( 6 )  '+ ߈?/I-Z#z A* " ././@/R+Yg/y'sU1,a4 ) "#{ #BtΜg8tu:Ba L^2!X8;d;6X?E;.d; t͊>8lAlA `?CopyrigTt (c)@2`09@M@c@oKs@fBAr@Aa@i@n.@ 0l@ HsBe@e@v@d@2hb<M#l1# M@?4>UhQQPAVQ^1| LZFX}  7j b2/O]M 6CfMB:ZMbX͉dc ?$I$I܍+d 2aa]Emekla'i.]eU@;0$E?FTh]]9 Q BUFܲ?FH7H?F!?FTUUUɺ?P Bt`  &?tQ3ņ= ףc?ckBu5 auon7=>)JAUVJp? ?Awz@b_bb! (݉ " '+ ' qq?z A  +S/.&68))E! '+ g?uW-sUUn*a4 8) "u#{ u#D!tΜ?8tM:Bav L62?!08;<;60?5;.<; tb>{8DADA1 `?CopyrigTt (c){@2`09{@Ms@cq@oKsk@fyBjArm@Aay@ik@n.{@ 0l@ qHsBe@eq@v@d@n2hb<M#l1# M@? Uh,cQcQ] '1PbA.Q61b L`w"?FMDA dj? |m cuۡ'1 6!1fM{":F$3<6d kS=ѣ<n2{!5E[nLa vogaKeE[eV_@cbc g@]amr\GDž}iNu?FS%f|]tElFTh]]9 Q BUF:C<?FY!)^?F!?FTUUUɺ?P Bt`  Ȼ?ޫd?ttyI5= ףc?ckBu5 auon7>>)JAUVJp? ?Awz@b_bb! (݉ " '+ ' qq?z A  +S/.&68))E! '+ g?uW-sUUn*a4 8) "u#{ u#D!tΜ?8tM:Bav L62?!08;<;60?5;.<; tb>{8DADA1 `?CopyrigTt (c){@2`09{@Ms@cq@oKsk@fyBjArm@Aay@ik@n.{@ 0l@ qHsBe@eq@v@d@n2hb<M#l1# M@? Uh,cQcQ] '1PbA.Q61b L`w"?FMDA dj? |m cuۡ'1 6!1fM{":F$3<6d kS=ѣ<n2{!5E[nLa vogaKeE[eV_@cbc g@]amr\GDž}iNu?FS%f|]tElFTh]]9 Q BUFx]?FTy4߮?FU?F3z[j˺?P Bt`  Q`7lg?t-xW&XRkBu5 auon7?>)JAa^! ?Az@b_bb! (݉ 6 , )  '+ g~X?ZI-Z#!g![z A " ,/,/>/P-[?+g/y'Eي,a4 ) "!#{ #Btg8t)u:Ba L^2!*X8;d;6X?E;d; tR>8lAlA `?CopyrigTt (c)@2`09@M@c@os@fBAr@Aa@i@n.@ 0l@ HsBe@ej@v@d@2!h<M#l# M@? 8>UhoQQ]AVQ^1| L@?F҄! dj O٨l,d6ztJB: 7d /k?yԷ&Dh]EWemkp+ɉ 5d}bGeUWeFBϏ+@ol0ju?MDhnMbX0j`QDhnC<o+o"Th]]9 Q BUFT1#E2?FLΉ?FU?F3z[j˺?P Bt`  S|.?tп}Qm&XRkBu5 auon7@>)JAa^!? ?Az@b_bb! (݉ 6 , )  '+ g~X?ZI-Z#!g![z A " ,/,/>/P-[?+g/y'Eي,a4 ) "!#{ #Btg8t)u:Ba L^2!*X8;d;6X?E;d; tR>8lAlA `?CopyrigTt (c)@2`09@M@c@os@fBAr@Aa@i@n.@ 0l@ HsBe@ej@v@d@2!h<M#l# M@? 8>UhoQQ]AVQ^1| L?F҄! dj _٨la6ztJB: 7d /k?yԷ&Dh]EWemkp+ɉ 5d}bGeUWeFBϏ+@ol0ju?MDhnHMbX0j`DhWef9o-ai qGeUoo$o6o3UHLD )&# R>h 0JTlaaM>UF+1#E2?F* 9?F0U?F_gw?P >tA`  9|4?t +5f1,_Œ X">u eu!s7-AJɅJUU?H<j@7tt7 b:*H&tH  th*Nĵ) ?MB"b;)H&e8H m 3 H -US4o?FPjj?6ֈ@!QpoĬگ eoĩ́ F o 01G}}϶@b@mp?#nʼPV]O߸uy\l2_+ʦE}@p5"iРo~e*al|ٍşןHD: )&# ;h0>Th]]9 PB IAUF~Q?F?FF(e?F=PFo?P t`  IGr?tn 5q+ tЖZu Mauo8B>    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 ,p )l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ As"(a40 9 *2!#{0#΍t8tIϻ:AUa L2$18K;F?VEK; Kt>B4aAA0`?CopyrigTt (c)@2`09@M@c@os@fBAr@Qa@i@n.@ @l/P Hs3RePe@vEPd'P2hX<M#l # M/P?]UhzA(Q1 L@3FO#?Fo2zP dj|aW{8cUF:&x0?F?Fώ?FX'qoO 0Yifull4ajS?N~dh+ fEeޖe?F<'?F@]?F\F%ޕol}dQ3ll BXlm|ԇbBhaUe```?FV ?FTh oflPIϮ3qoijeðl.` |=T?heFnF$OĒ?F o* leowky{ftGg˂a,8b1;MHD: )&# ;h0>Th]]9 PB IAUF~Q?Fe?FF(e?F=PFo?P t`  IGr?t8n5q+ tЖZu Mauo8C>    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 ,p )l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ As"(a40 9 *2!#{0#΍t8tIϻ:AUa L2$18K;F?VEK; Kt>B4aAA0`?CopyrigTt (c)@2`09@M@c@os@fBAr@Qa@i@n.@ @l/P Hs3RePe@vEPd'P2hX<M#l # M/P?]UhzA(Q1 L@3FO#?Fo2zP dj|a{8cUF:&x0?F?FȎ?F'qoO 0Yifull4ajK?N~d+ fEeޖe?F<'?F@]?FsF%ޕol}dQ3ll BXlRm|bBhaUe`Ԗ``?FV ?FTh oflPIϮ3qoiGkeðl2` |FT?heFnF*OĒ?F o* leowkyftGg˂a,8b1;MHD: )&# T=h0>Th]]9 Q BUF&d29?F `0?F(\µ?F^Sӻ?P Bt`  o?tՐs] yAP FBuj auo7ARJ[0U?<ALv@tt7 }b6*D&tD  td*JBı) ?A>"b7)D&a4D  V3 D 8/td/tRy.x1x1`?CopyrigTt (c)02`090M0c0os0f21r01a0i0n.0 Al0 8s2e0e0v @d0"h0!<M#l#/MlP> @?UhLAA]R 1 P1"7Ж1bA>!J`oO2z[ djaq:z׍ QM 6VMB@챝P\`_m;?E,Ui5Uޖ?FQ[_5lf\VU'EUY2Ruݯ?FU]˖7sf\pdѿSYUWfe /zx]݅om{ZcXXUFRP\g[)JXAp| rhQ#5 ?IXAYaLPւ?FتcP\T f\3$sXAp" ElX1YA-k?FFoZP\fyf\?!,UAYX%?F8K7P\{ f\&SAY&1l?Fr>|]P\-]qiYip~ X1#g~jt-? ѰXAY?F ףp=P\' f\?P=RwX'RXT}7vP\__/vnTpډlX7U/$9SYE7Ժf\wUQY|>îqh|P\4GN?"MX U29_KU#rA0$@CHD: )&# T=h0>Th]]9 Q BUFܷqP?F@?F7??FtYOȻ?P Bt`  XM6 ?ti|9O__Bu aquo7E>KJASTfw?X ?Az@bbb! ( 6f )  '+ ߈?I-Z#g!z A Qu +%/,8)E!'+ k(?r+o,(a4 8) E"#{ #BtΜG8tU:Ba L>2?!88;D;68?5;.D; tj>8LALA1 `?CopyrigTt (c)@2`09@M{@cy@oKss@fBrAru@Aa@is@n.@ 0l@ yHsBe@ey@v@d@v2hb<M#l1# M@?4>UhkQkQPjA6Q>1| L`Fd~j]J}v)M]M 6)fMB@Wa\ k_稇avCe=ESeR9Y? l`gESeFeabkod iSQޗh~??5@+ c;Ꞗi"2_U3rA/04sCHD: )&# T=h0>Th]]9 Q BUFdHJAUVJp? ?Awz@bbb! ( " '+ ' qq?z A 9 +/.&68))E! '+ g?W-sU"!n*a4 8) "u#{ u#D!t?8tM:Bav L62?!08;<;60?5u;<; tb>){8DADA1 `?CopyrigTt (c){@]2`09{@Ms@]cq@osk@fyBRjArm@Aay@ik@Wn.{@ 0l@U qHsBe@eq@v@d@n2h<M#l# M@?]UhzbA.Q61b L` djM"aQ  6fM{"@Ftnq\[3K_,7e5EGe<\ֽE?Nf[ N_qd7eEGec6i\m jOf܋h2_U3rA'04msCHD: )&# T=h0>Th]]9 Q BUF)8/?FFT?F!/$?Fᱝ̻?P Bt`  vNC?tG(ϛT H0Bu auo7G>JTA0f88v?WYALv@z bbb!'n 6 % )! ! ,+ <?' o?z #a47% =) J""#K#{% (+ ( tQ#BXYщ?A> ?A "+(/+/=/O/a!y:5rl/@ sU10( /???? "?0<2?M{!b 1/Ĝ/*%,"t:"t>TQQ'@`?CopyrigTt (c)FP2`09FPM>PcTh]]9 PB IAUFJ1>?Fl?FF(e?F=PFo?P t`  0!?trj5q+ tЖZu Mauo8A    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 ,p )l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ s"?(a40 9 .*2!#{0:#t8'tϻ:Ua L2$18K;F?VEK.; t>B4AA0`?CopyrigTt (c)@2`09@M@c@oKs@fBAr@Qa@i@n.@ @l/P Hs3RePe@vEPd'P2hb<M#l1# M/P?]UhzAQ1 L@3FO#۲?Fo2zP dj|aW{ޓ8cUF:&x0?F?F?F_'qoO 0Yigull4aj?ON~f0c?o+ fEeޖe?F<'?F@]?FwF%ޕol}dQ3ll BXl귺m|bBhaUe`ba`?FV ?FTh oflPI3qoiؿkeðl8` |G?T?heFnF$O?F o* leowky?{ft?Gg˂a,8b1;MHD: )&# ;h0>Th]]9 PB IAUFGF?FEs?F+\(?F~@ t?P t`  9`Ik?t)6^u -ZrqKZu Mauo8I>    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 ,p )l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ s"?(a40 9 .*2!#{0:#t8'tϻ:Ua L2$18K;F?VEK.; t>B4AA0`?CopyrigTt (c)@2`09@M@c@oKs@fBAr@Qa@i@n.@ @l/P Hs3RePe@vEPd'P2hb<M#l1# M/P?]UhzAQ1 L@3FMbX9?F4ҫP dj}ah8cUF[~K?F|D?F+Xc?F&PRcGoO 0YiM+FllZaj}0%|f0c̭ fEe.V?Fȿ̅)`oSt?F?(X:olGGTll .Xl{e{|?rww@,eaUe:&x0?F%Clw?FAz?F 1vņflux1,oiFA(]`t߼ |~Th]]9 PB IAUFGF?FKDֳ?F+\(?F~@ t?P t`  9`Ik?t┯4;u -ZrqKZu Mauo8J>    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 ,p )l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ s"?(a40 9 .*2!#{0:#t8'tϻ:Ua L2$18K;F?VEK.; t>B4AA0`?CopyrigTt (c)@2`09@M@c@oKs@fBAr@Qa@i@n.@ @l/P Hs3RePe@vEPd'P2hb<M#l1# M/P?]UhzAQ1 L@3FMbX9?F4ҫP dj}ah8cUF[~K?F|D?F+Xc?F&PRcGoO 0YiM+FllZaj}0%|f0c̭ fEe.V?Fȿ̅)`oSt?F?(X:olGGTll .Xl{e{|rww@haUe:&x0?F%Clw?FAz?F 1vņflux1qoiFA(]`t߼ |~Th]]9 PB IAUFXIn?F    PEJڍU[\/(?&. ?AbbY!z@Ae bbCt c(a4b  # b(h#{ h#΍t(tI*#0f88vb.#i L5<1v(&$7/(D%"6/5;0( t.*B#11`?CopyrigTt] c).@2`W09.@M&@c$@os@f,BAr @YAa,@i@n}..@ Alt@U $HsxBeL@e$@v@dl@"h<M#l# Mt@?]UhzAA!J@#FMbX9?F$x0OԛP dj}תa4(SUF[~K?FE?FSc?F?#oO 0YM+Fӱ\*aj,.}a$?# XEU"n?F +?FbEd?F v<olTBJ\LMYBltavXlp@,UEUv/?Fpvw;pg?F $hއ?FLvo~l/AD0,YJg ַBl)$ԞXlDB:XU^F.fّPKk^Rl_[Ei?1GAf`d?Sq+a,(bvHD: )&# ;h0>Th]]9 PB IAUFXIn?F(?F+\(?F-ku?P t`  -k?tEeoEu -+CmoLZu Mauo8L>    PEJڍU[\/(?&. ?AbbY!z@Ae bbCt c(a4b  # b(h#{ h#΍t(tI*#0f88vb.#i L5<1v(&$7/(D%"6/5;0( t.*B#11`?CopyrigTt] c).@2`W09.@M&@c$@os@f,BAr @YAa,@i@n}..@ Alt@U $HsxBeL@e$@v@dl@"h<M#l# Mt@?]UhzAA!J@#FMbX9?F%x0OԛP dj}תa4(SUF[~K?FE?Fdc?F,?#oO 0YM+Fӱ\*aj ,.}a?# XEU"n?F{ +?F(%/Nd?F<olTBJ\MYBlU{XlpDc@XEUv/vw;pg?F^$hއ?Fvol/AD0qYf ַBls$ԞXl+?B:XU^F.fّPyKk^Rl_[Ei1GAf`dSOq+a,(bvHD: )&# T=h0>Th]]9 Q BUF贷F$?Ft\@?F\HRq?FƯK7?P Bt`  x#?t#ll$nZVBu auo7M>JA]^'? ?Az@b ( 6f  )ϓb= + _? ' 88o?z A s +=  /)/;/M$[+["-j!Q U1[!x(ar4 )] "'}#{t }#BtNQ8t_:Ba~ PLH2!B8;N;Q6B?5;N; tt>8VAVA `?CopyrigTt (c)@2`09@M@c@o%s}@fB|Ar@Aua@i}@n.@U 0l@ HsBUe@e@v@d@ 2h<M#l# MT@?4>UhuQuQtA(@QH1j LZFهgϰ 7j bL\G@[ 6S-fMB:MbPdc mdb`GeGEWe$oˏZ\ai?bvIGeU@Vϰ+@_?F23Th]]9 Q BUF#/?FKGY?F\HRq?FƯK7?P Bt`  ~B?tl#ll$nZVBu auo7N>JA]^'? ?Az@b ( 6f  )ϓb= + _? ' 88o?z A s +=  /)/;/M$[+["-j!Q U1[!x(ar4 )] "'}#{t }#BtNQ8t_:Ba~ PLH2!B8;N;Q6B?5;N; tt>8VAVA `?CopyrigTt (c)@2`09@M@c@o%s}@fB|Ar@Aua@i}@n.@U 0l@ HsBUe@e@v@d@ 2h<M#l# MT@?4>UhuQuQtA(@QH1j LZFهgϰ 7j bL\] 6-fMB:MbPdc Ɵmdb`GeGEWe$oZ\aibvIGeUWeVϰ+@?Vpk_xu j aGe@We_ooh2Kt]u3rA 4s2HD: )&# T=h0>Th]]9 Q BUF/ ֛9?F46Hr?F\HRq?FƯK7?P Bt`   a1?t 3JA]^'? ?Az@b ( 6f  )ϓb= + _? ' 88o?z A s +=  /)/;/M$[+["-j!Q U1[!x(ar4 )] "'}#{t }#BtNQ8t_:Ba~ PLH2!B8;N;Q6B?5;N; tt>8VAVA `?CopyrigTt (c)@2`09@M@c@o%s}@fB|Ar@Aua@i}@n.@U 0l@ HsBUe@e@v@d@ 2h<M#l# MT@?4>UhuQuQtA(@QH1j LZFهgϰ 7j bL\] 6-fMB:MbPdc Ɵmdb`GeGEWenZ\aiavIGeUWeVϰ+@?Vpk_xu j aGe@We_ooh2Kt]u3rA 4s2HD: )&# T=h0>Th]]9 Q BUF[@#?FLO?Fo?FƯK7?P Bt`  ?tSӈEw8Xj$nZVBu acuo7AJA]^'? ?Az@b ( 6f  )ϓb= + _? ' 88o?z A s +=  /)/;/M$[+["-j!Q U1[!x(ar4 )] "'}#{t }#BtNQ8t_:Ba~ PLH2!B8;N;Q6B?5;N; tt>8VAVA `?CopyrigTt>(cu)>2`09>uM@c@os}@IfB|Ar@Aa@]i}@n.> 0Ul@ HsBe@e@v@d@B2h,<M#l# M@?U4>UhuQuQtAJ@QH1j LZFهϰ 7j bL\ѻ] 6-fMB:ʩMbPdc 2N3odb`GeGEWe$oZ\aibvIGeUWe4?Vpku j aGeWe_ooh2K]u3rA 4s2HD: )&# ;h0>Th]]9 PB IAUF?FtË.5?FQ?F?P t`  ?{R   ] EJ]_DRb(?&. ?Az@bY(e 6f h )ϓb k+ _?Z'e 88o?ze Ae s[+ h g/y//$# L:5 /sU"K1*a4 9 2(E#{ #t8tϤ:U a L2T18K;6Ԉ?@EK; tͺ>B40AA0`?CopyrigTwt c)@]2`09@M@]c@os@fBRAr@Aa@i@Wn.@ 0lPU HsRe@e@v/PdP2h<M#l#A MP? <>Uh$QQ(]A(Q1 LZ3;'xP 7jbbFbL7a 6{fM8cUFnDdTh]]9 PB IAUF4{"?F=N?FQ?F?P t`  ^}W;o?t9pČ( 뾅@l* 9u auo8R>   ] EJ]_DRb(?&. ?Az@bY(e 6f h )ϓb k+ _?Z'e 88o?ze Ae s[+ h g/y//$# L:5 /sU"K1*a4 9 2(E#{ #t8tϤ:U a L2T18K;6Ԉ?@EK; tͺ>B40AA0`?CopyrigTwt c)@]2`09@M@]c@os@fBRAr@Aa@i@Wn.@ 0lPU HsRe@e@v/PdP2h<M#l#A MP? <>Uh$QQ(]A(Q1 LZ3;'xP 7jbbFbL7a 6{fM8(a?nDFF!@~qWoO 0dTc I\rdcd bjUkgaPbeEef"v?Fr6d?F?kĀqo`OivddlXr`tF0sK|٢jr3t!KU:G}?{]rLl} ]|q3xnTrg?F<ے7pooZgtfio,V|=] 5ve&1?Fpn?FTh]]9 PB IAUFGC<-?Ff?FQ?F?P t`  L?RD)o?t? )Č( 뾅@l* 9u auo8S>   ] EJ]_DRb(?&. ?Az@bY(e 6f h )ϓb k+ _?Z'e 88o?ze Ae s[+ h g/y//$# L:5 /sU"K1*a4 9 2(E#{ #t8tϤ:U a L2T18K;6Ԉ?@EK; tͺ>B40AA0`?CopyrigTwt c)@]2`09@M@]c@os@fBRAr@Aa@i@Wn.@ 0lPU HsRe@e@v/PdP2h<M#l#A MP? <>Uh$QQ(]A(Q1 LZ3;'xP 7jbbFbL7a 6{fM8cUFnDFK!@?FDqWoO 0dTc I\addbjUWkgabeE(aFjv?Fr6d?FkĀAqo`Oi^j^r`t0sK#|pr9t!KU:M}{]rYLl}]|9xLufTrg?F<7vodObdcZgtfi,V#|=c ;vLu&1?Fpn?FTh]]9 PB IAUFĊ?Fn6b?FQ?F?P t`  ro?tpwZČ( 뾅@l* 9u auo8T>   ] EJ]_DRb(?&. ?Az@bY(e 6f h )ϓb k+ _?Z'e 88o?ze Ae s[+ h g/y//$# L:5 /sU"K1*a4 9 2(E#{ #t8tϤ:U a L2T18K;6Ԉ?@EK; tͺ>B40AA0`?CopyrigTwt c)@]2`09@M@]c@os@fBRAr@Aa@i@Wn.@ 0lPU HsRe@e@v/PdP2h<M#l#A MP? <>Uh$QQ(]A(Q1 LZ3;'xP 7jbbFbL7a 6{fM8(a?D +F2|>?FW@WoO 0dTc rdcd bj{^ea͂beEef"v?Fddd?F܃q o`OivddlXr`tuqEÊ|:jr3t!KU:G}{]r,Ll}]|q3xngqrg?F~pooZgtML|\ 5ve&1?FWf?F#0bĂ|[m낪 z'ǵ(|F$$!ayTh]]9 Q BUF贷F$?FlIJ?F\HRq?F#o˯Z?P Bt`  x#?tx#ll#VBu auo7U>JTA0f88v?WYϳAjLv@z bbb!' 6Y % )! ! ,+ <?' o?z #a47% =) J"#K#({% (+ (G t#Beı?A>L ?A"&"&$/*8%,"t:"t>  A A6 `?CopyrigTt _(c)D@2`W09D@M<@c:@os4@fBB3Ar6@oAaB@i4@n}.D@ Al@U :HsBeb@e:@v@d@2h/1<M#l#@7? M@?(>Uh7E P+AA!{ L:F A7<6j% bRzg9<2 "\MbPdS mT W5U6ik0YaYvq 2HD: )&# T=h0>Th]]9 Q BUF#/?F ?F\HRq?Fn˯Z?P Bt`  ~B?t AF#ll#VBu auo7V>JTA0f88v?WYϳAjLv@z bbb!' 6Y % )! ! ,+ <?' o?z #a47% =) J"#K#({% (+ (G t#Beı?A>L ?A"&"&$/*8%,"t:"t>  A A6 `?CopyrigTt _(c)D@2`W09D@M<@c:@os4@fBB3Ar6@oAaB@i4@n}.D@ Al@U :HsBeb@e:@v@d@2h/1<M#l#@7? M@?(>Uh7E P+AA!{ L:F<6j% bRzg9ǩ<2 "\MbPdS mT W5UO6ik0YaYvq 2HD: )&# T=h0>Th]]9 Q BUF/ ֛9?FD?F\HRq?Fn˯Z?P Bt`   a1?t(9Sj#ll#VBu auo7W>JTA0f88v?WYϳAjLv@z bbb!' 6Y % )! ! ,+ <?' o?z #a47% =) J"#K#({% (+ (G t#Beı?A>L ?A"&"&$/*8%,"t:"t>  A A6 `?CopyrigTt _(c)D@2`W09D@M<@c:@os4@fBB3Ar6@oAaB@i4@n}.D@ Al@U :HsBeb@e:@v@d@2h/1<M#l#@7? M@?(>Uh7E P+AA!{ L:F6j% bT ü2 "\MbPdS mT W5UO6ik0YaYvq 2HD: )&# T=h0>Th]]9 Q BUF[@#?F\o]?Fo?Fn˯Z?P Bt`  ?tF]8Xj#VBu auo7X>JTA0f88v?WYϳAjLv@z bbb!' 6Y % )! ! ,+ <?' o?z #a47% =) J"#K#({% (+ (G t#Beı?A>L ?A"&"&$/*8%,"t:"t>  A A6 `?CopyrigTt>(c)>2`09>M<@c:@o%s4@fBB3Ar6@oAuaB@i4@n.>_ Al@ :HUsBeb@e:@v@-d@2`h/1<M#l1#7? PM@?(>Uh7E +AA!{ L:F<F6j% bRzg9<2 "\ʩ7MbPdS 2NoT W5UO?6ik0YaYvq 2UHT5D B &# T>h0JTtiiM ENUFlQ?Fڋ?FPaW?F ru?P WNtQ` c͕.:7?tUr=Ki8;(\I2-nNuj mu){YE0f88wv?AVQ Ӎ!@#b#m@b  0#  #W(3 (o+&T" #t#NĽ/?. ?M"&$a%$$,/>*L%i,T"tΞ*T"tR.R11#`?Copyrig`t (c)02l090M0c0os0f21r01a0i0n.0 Al@ 8sBe0e0v0@d@"Vt!X#xB #/ @T,UtE1UA-!@nZ pvm?S׮(%UQG@Y9"S\FkV5%UЗn@‹Pهϰ=\WQS\OXbiTQY%_7_I_[_DQOOOO__^̔ԍ?f Q́)f@vVP|?5^BlӿIY:6Xl?Ib ʏ܏EABTfxF\HRqCk?-q_WaW?ϰ+@"Bl!H,BXQnB)fFޖBoT[inJ\ۙgyAHD: )&# T=h0>Th]]9 Q BUFhY?FlIJ?F&1?F3(e?P Bt`  6n?t:m4tMuVBu auo7Z>JAS`? ?Az@bbb! ( 6 )  '+ ߈?/I-Z#,z A* " ././@/R+Yg/y'sU1,a4 ) "#{ #BtΜg8tu:Ba L^2!X8;d;6X?E;.d; t͊>8lAlA `?CopyrigTt (c)@2`09@M@c@oKs@fBAr@Aa@i@n.@ 0l@ HsBe@e@v@d@2hb<M#l1# M@?4>UhQQPAVQ^1| LFX}  7j b2ɏOR] 6CfMB:ZMbXdc $I$I܍+d 2aa]Eme'la'iL.]eU@9/$Ew?FslAka,dHޓּgmeoo(oh2gyu3rA 4s2HD: )&# T=h0>Th]]9 Q BUFy?Flo]9?F&1?F3(e?P Bt`  7 ?t)!m4tMuBu ,duo7[>JAS`? ?Az@bbb! ( 6 )  '+ ߈?/I-Z#mg!z A " ././@/R+,g/y'sU1,ar4 )] "#{t #BtNg8tu:Ba PL^2!X8;d;Q6X?E;d; t͊>8lAlA `?CopyrigTt (c)@2`09@M@c@o%s@fBAr@Aua@i@n.@U 0l@ HsBUe@e@v@d@ 2h<M#l# MT@?4>UhQQA(VQ^1| LZFX} g 7j b2ɶO] 6CfMB:ZMbXdc $I$I܍+d A2aa]Emekla'i.G]eU@;0$E?[FTh]]9 Q BUF߹e?F$jߤ?F!?FTUUUɺ?P Bt`  ?t&S= ףc?ckBu5 auon7\>)JAUVJp? ?Awz@b_bb! (݉ " '+ ' qq?z A  +S/.&68))E! '+ g?5W-sUU,p(a4 8) "u#{ u#D!tΜ?8tM:Bav L62?!08;<;60?5;.<; tb>{8DADA1 `?CopyrigTt (c){@2`09{@Ms@cq@oKsk@fyBjArm@Aay@ik@n.{@ 0l@ qHsBe@eq@v@d@n2hb<M#l1# M@? Uh,cQcQ] '1PbA.Q61b L`w"?FMDA dj? |m cuۡ'1 6!1fM{":F$3<6d kS=ѣ<n2{!5E[nLa vogaKeE[eV_@cbc g@]amr\GDž}iNu?FS%f|]tElFTh]]9 Q BUFtx?F/?F!?FTUUUɺ?P Bt`  K_?t= ףc?ckBu5 auon7]>)JAUVJp? ?Awz@b_bb! (݉ " '+ ' qq?z A  +S/.&68))E! '+ g?uW-sUUn*a4 8) "u#{ u#D!tΜ?8tM:Bav L62?!08;<;60?5;.<; tb>{8DADA1 `?CopyrigTt (c){@2`09{@Ms@cq@oKsk@fyBjArm@Aay@ik@n.{@ 0l@ qHsBe@eq@v@d@n2hb<M#l1# M@? Uh,cQcQ] '1PbA.Q61b L`w"?FMDA dj? |m cuۡ'1 6!1fM{":F$3<6d kS=ѣ<n2{!5E[nLa vogaKeE[eV_@cbc g@]amr\GDž}iNu?FS%f|]tElFTh]]9 Q BUFiv?F{<?FU?F3z[j˺?P Bt`  y]?tHIΧ&XRBu auo7^>JAa^!? ?Az@bbb! (n 6  )  '+ g~X?I-͊Z#!,[z A " ,/,/>/P-[?+g/y'Eي,a4 ) "!#{ #Btg8t)u:Ba L^2!*X8;d;6X?E;d; tR>8lAlA `?CopyrigTt (c)@2`09@M@c@os@fBAr@Aa@i@n.@ 0l@ HsBe@ej@v@d@2!h<M#l# M@? 8>UhoQQ]AVQ^1| L@?F҄! dj _٨la6ztJB: 7d /k?yԷ&Dh]EWemkp+,rb6c}bGeUWeFBϏ+@ol0ju?MDhnMbX0j`QDhnC<o+o"Th]]9 Q BUFT1#E2H?FK&Ua?FU?F3z[j˺?P Bt`  ?t &XRkBu5 auon7_>)JAa^!? ?Az@b_bb! (݉ 6 , )  '+ g~X?ZI-Z#!g![z A " ,/,/>/P-[?+g/y'Eي,a4 ) "!#{ #Btg8t)u:Ba L^2!*X8;d;6X?E;d; tR>8lAlA `?CopyrigTt (c)@2`09@M@c@os@fBAr@Aa@i@n.@ 0l@ HsBe@ej@v@d@2!h<M#l# M@? 8>UhoQQ]AVQ^1| L@?F҄! dj _٨la6ztJB: 7d /k?yԷ&Dh]EWemkp+ɉ 5d}bGeUWeFBϏ+@ol0ju?MDhnHMbX0j`DhWef9o-ai qGeUoo$o6o3UHLD )&# R>h 0JTlaaM>UFObFd0?F gj?F0U?F_gw?P >tA`  N+ru?t Tլ1,_Œ X">u eu!s7-`JɅJUU?HA9 j@7tt7 b:*H&tH  th*Nĵ) ?MB"b;)H&e8H m 3 H -US4o?FPjj?6ֈ@!QpoĬگ eoĩ́ F o 01G}}϶@b@mp?#nʼPV]O߸uy\l2_+ʦE}@p5"iРo~e*al|ٍşןHD: )&# ;h0>Th]]9 PB IAUF\6:?F}?FF(e?F=PFo?P t`  @?t^$h5q+ tЖZu Mauo8a>    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 ,p )l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ s"?(a40 9 .*2!#{0:#t8'tϻ:Ua L2$18K;F?VEK.; t>B4AA0`?CopyrigTt (c)@2`09@M@c@oKs@fBAr@Qa@i@n.@ @l/P Hs3RePe@vEPd'P2hb<M#l1# M/P?]UhzAQ1 L@3FO#۲?Fo2zP dj|aW{ޓ8cUF:&x0?F?F?FX'qoO 0Yifull4ajS?ON~f0c?h+ fEeޖe?F<'?F@]?F\F%ޕol}dQ3ll BXy귺m|ԇbBhaUe```?FV ?F?Th ofl?PI3qoijeðl.` |=T?heFnF$OĒ?F o* leowk~y{f~tGg˂a ,8b1;MHD: )&# ;h0>Th]]9 PB IAUF\6:?F}?FF(e?F=PFo?P t`  @?t8ȍ5q+ tЖZu Mauo8b>    PEJƱZVJp!?&. ?Az@b/b@Z'݉e 6 ,)l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ s"?(a4 9 .*2!#{:#t8'tϻ:Ua !L2$18K8F?VEK.; t>B4AA0`?CopyrigTt (c)@2`09@M@c@oKs@fBAr@Qa@i@n.@ @l/P Hs3RePe@vEPd'P2hb<M#l1# M/P?]UhzAQ1 L@3FO#۲?Fo2zP dj|a{ޓ8cUF:&x0?F?F?F'qoO 0Yifull4ajK?ON~f0c?+ fEeޖe?F<'?F@]?FsF%ޕol}dQ3ll BXyR귺m|bBhaUe```?FV ?F?Th ofl?PI3qoiGkeðl2` |FT?heFnF*OĒ?F o* leowk~yf~tGg˂a ,8b1;MHD: )&# T=h0>Th]]9 Q BUFL&d?F`0?F(\µ?F^Sӻ?P Bt`  {G?t7F0 yA_P FBu aquo7c>KJm0U?<AL@tMt7( }b6*D&stD  td**Bıa) ?A.>"b7)D&ar4D [ 3 D 8/td/Kty.x1x1`?CopyrigTt (c)02`090M0c0oKs0f21r01a0i0n.0 Al0 8s2e0e0vZ @d0"h!<M#l#/MBl> @?UhLAA]J 1 A 1"7A1bA>!J`?o2z[ dUjaq:z׍40S 6VMՋB@_P\`_m;E,Ui5Uޖ??FQ[5lf\VU'EUY2Ruݯ?FU]˖7sf\pdGѿSYUWfe zx]om{Zc`,UUFRP\g[)JXAp|? rhQ#5 IXAYaLPւ?FتcP\T f\3$sXAp"۲ ElU1YA-k?FFoZP\fyf\!XAYX%?F8K7P\{ 䘷f\&SAY&1l?Fr>|]P\-]qiY?ip~ X1#g~jt-? GXAY?F ףp=P\' f\?P=RwX'RXT}7vP\__/vnTpډlX7U/$?vQ[E7Ժf\wUQY|>îqh|P\4GN"MX U29_KU#rA0$@CHD: )&# T=h0>Th]]9 Q BUF8?F43?F7??FtYOȻ?P Bt`  1=oJASTfw? ?Az@bbb! ( 6 )  '+ ߈?/I-Z#mg!z A u +%/,8)E!'+ k(?r+o#?(a4 8) E"E#{ #BtG8tU:Ba L>2?!88;D;68?5u;D; tj>)8LALA1 `?CopyrigTt (c)@]2`09@M{@]cy@oss@fBRrAru@Aa@is@Wn.@ 0l@U yHsBe@ey@v@d@v2h<M#l#A M@?4>UhkQkQjA6Q>1| L`Fdj]JK}vM4@[ 6)fMB@Wa\ k_程avCe=E~SeR9Y? lgESeFeabkod i?SQޗh~?5@+ c;ꉞi2_U3rA/04sCHD: )&# T=h0>Th]]9 Q BUF2B9?FW]i\?F'l?F{Cƻ?P Bt`  ,i?t^̺㯝4\YDrVBu auo7e>JAUVJp? ?Awz@bbb! ( " '+ ' qq?z A 9 +/.&68))E! '+ g?W-sU"!n*a4 8) "u#{ u#D!t?8tM:Bav L62?!08;<;60?5u;<; tb>){8DADA1 `?CopyrigTt (c){@]2`09{@Ms@]cq@osk@fyBRjArm@Aay@ik@Wn.{@ 0l@U qHsBe@eq@v@d@n2h<M#l# M@?]UhzbA.Q61b L` djMaQ@ 6fM{"@Ftnq\[3K_,7e5EGe<\ֽE?Nf[ NA_qd7eEGec6i\m j#f,7e2_UB3rA'04msCHD: )&# T=h0>Th]]9 Q BUF] ?FtF?F!/$?Fᱝ̻?P Bt`  "?tEQTϛT H0VBu auo7f>JTA0f88v?WYϳAjLv@z bbb!' 6Y % )! ! ,+ <?' o?z #a47% =) J"#K#({% (+ (G t#BXY'?A> ?A "+(/+/=/O/a!y:5r{l/@ sU10( /???? "0aQQ'@`?CopyrigTt (c)FP2`09FPM>PcTh]]9 PB IAUFR?F|}Y?FF(e?F=PFo?P t`  (\#?tN뻫5q+ tЖZu Mauo8g>    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 ,p )l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ s"?(a40 9 .*2!#{0:#t8'tϻ:Ua L2$18K;F?VEK.; t>B4AA0`?CopyrigTt (c)@2`09@M@c@oKs@fBAr@Qa@i@n.@ @l/P Hs3RePe@vEPd'P2hb<M#l1# M/P?]UhzAQ1 L@3FO#۲?Fo2zP dj|aW{ޓ8cUF:&x0?F?F?F_'qoO 0Yigull4aj?ON~f0c?o+ fEeޖe?F<'?F@]?FwF%ޕol}dQ3ll BXl귺m|bBhaUe`ba`?FV ?FTh oflPI3qoiؿkeðl8` |G?T?heFnF$O?F o* leowky?{ft?Gg˂a,8b1;MHD: )&# ;h0>Th]]9 PB IAUFpX?FEsR?F+\(?F~@ t?P t`  (TJ?th/3u -ZrqKZu L,duo8UAU    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 ,p )l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ s"?(a40 9 .*2!#{0:#t8'tϻ:Ua L2$18K;F?VEK.; t>B4AA0`?CopyrigTt (c)@2`09@M@c@oKs@fBAr@Qa@i@n.@ @l/P Hs3RePe@vEPd'P2hb<M#l1# M/P?]UhzAQ1 L@3FMbX9?F4ҫP dj}ah8cUF[~K?F|D?F+Xc?F&PRcGoO 0YiM+FllZaj}0%|f0c̭ fEe.V?Fȿ̅)`oSt?F?(X:olGGTll .Xl{e{|rww@haUe:&x0?F%Clw?FAz?F 1vņflux1qoiFA(]`t߼ |~Th]]9 PB IAUFpX?F<Dֳ`?F+\(?F~@ t?P t`  (TJ?tA u -ZrqKZu Mauo8i>    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 ,p )l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ s"?(a40 9 .*2!#{0:#t8'tϻ:Ua L2$18K;F?VEK.; t>B4AA0`?CopyrigTt (c)@2`09@M@c@oKs@fBAr@Qa@i@n.@ @l/P Hs3RePe@vEPd'P2hb<M#l1# M/P?]UhzAQ1 L@3FMbX9?F4ҫP dj}ah8cUF[~K?F|D?F+Xc?F&PRcGoO 0YiM+FllZaj}0%|f0c̭ fEe.V?Fȿ̅)`oSt?F?(X:olGGTll .Xl{e{|rww@haUe:&x0?F%Clw?FAz?F 1vņflux1qoiFA(]`t߼ |~Th]]9 PB IAUF$?F,w¾`?F+\(?F-ku?P t`  p&k?t?̈n=u -CmoLZu L,duo8j>    PEJڍU[\/(?&. ?AbbY!z@Ae bbCt c(a4b  # b(h#{ h#΍t(tI*#0f88vb.#i L5<1,(&$7/(D%"6/5;0( t.*B#11`?CopyrigTt] c).@2`W09.@M&@c$@os@f,BAr @YAa,@i@n}..@ Alt@U $HsxBeL@e$@v@dl@"h<M#l# Mt@?]UhzAA!J@#FMbX9?F$x0OԛP dj}תa4(SUF[~K?FE?FSc?F?#oO 0YM+Fӱ\*aj,.}a$?# XEU"n?F +?FbEd?F v<olTBJ\LMYBltavXlp@XEUv/?Fpvw;pg?F $hއ?FLvo~l/AD0qYJg ַBl)$ԞXlDB:XU^F.fّPKk^Rl_[Ei?1GAf`d?Sq+a,(bvHD: )&# ;h0>Th]]9 PB IAUF$?F(n?F+\(?F-ku?P t`  p&k?t A4u -+CmoLZu Mauo8k>    PEJڍU[\/(?&. ?AbbY!z@Ae bbCt c(a4b  # b(h#{ h#΍t(tI*#0f88vb.#i L5<1v(&$7/(D%"6/5;0( t.*B#11`?Copy_rigTt$_(c)$2`W09$M&@c$@os@f,BAr @YAa,@i@n}.$ Alt@U $HsxBeL@e$@v@dl@"h<M#l# Mt@?]UhzAA!J@#FMbX9?F%x0OԛP dj}תa4(SUF[~K?FE?Fdc?F,?#oO 0YM+Fӱ\*aj ,.}a?# XEU"n?F{ +?F(%/Nd?F<olTBJ\MYBlU{XlpDc@XEUv/vw;pg?F^$hއ?Fvol/AD0qYf ַBls$ԞXl+?B:XU^F.fّPyKk^Rl_[Ei1GAf`dSOq+a,(bvHD: )&# T=h0>Th]]9 Q BUFt[@#?Ft\?F\HRq?FƯK7?P Bt`  =0[?tRwq#ll$nZBu duo7l>JA]^'? ?Az@b ( 6f  )ϓb= + _? ' 88o?z A s +=  /)/;/M$[+["-j!Q U1[!x(ar4 )] "'}#{t }#BtNQ8t_:Ba~ PLH2!B8;N;Q6B?5;N; tt>8VAVA `?CopyrigTt (c)@2`09@M@c@o%s}@fB|Ar@Aua@i}@n.@U 0l@ HsBUe@e@v@d@ 2h<M#l# MT@?4>UhuQuQtA(@QH1j LZFهgϰ 7j bL\GlR] 6S-fMB:MbPdc mdb`GeGEWe$oˏZ\ai?bvIGeU@Vϰ+@_?F23Th]]9 Q BUF偃?FKG?F\HRq?FƯK7?P Bt`  Xkw?tO [#ll$nZVBu auo7m>JA]^'? ?Az@b ( 6f  )ϓb= + _? ' 88o?z A s +=  /)/;/M$[+["-j!Q U1[!x(ar4 )] "'}#{t }#BtNQ8t_:Ba~ PLH2!B8;N;Q6B?5;N; tt>8VAVA `?CopyrigTt (c)@2`09@M@c@o%s}@fB|Ar@Aua@i}@n.@U 0l@ HsBUe@e@v@d@ 2h<M#l# MT@?4>UhuQuQtA(@QH1j LZFهgϰ 7j bL\] 6-fMB:MbPdc Ɵmdb`GeGEWe$oZ\aibvIGeUWeVϰ+@?Vpk_xu j aGe@We_ooh2Kt]u3rA 4s2HD: )&# T=h0>Th]]9 Q BUF͜?F$6H?F\HRq?FƯK7?P Bt`  W׎?t #ll$nZVBu auo7n>JA]^'? ?Az@b ( 6f  )ϓb= + _? ' 88o?z A s +=  /)/;/M$[+["-j!Q U1[!x(ar4 )] "'}#{t }#BtNQ8t_:Ba~ PLH2!B8;N;Q6B?5;N; tt>8VAVA `?CopyrigTt (c)@2`09@M@c@o%s}@fB|Ar@Aua@i}@n.@U 0l@ HsBUe@e@v@d@ 2h<M#l# MT@?4>UhuQuQtA(@QH1j LZFهgϰ 7j bL\G@[ 6S-fMB:MbPdc mdb`GeGEWenˏZ\ai?avIGeUWeVϰ+@?Vpk_xu j aGeWe _ooh2K]u:3rA 4s2HD: )&# T=h0>Th]]9 Q BUF[@#"?FJA]^'? ?Az@b ( 6f  )ϓb= + _? ' 88o?z A s +=  /)/;/M$[+["-j!Q U1[!x(ar4 )] "'}#{t }#BtNQ8t_:Ba~ PLH2!B8;N;Q6B?5;N; tt>8VAVA `?CopyrigTt>(cu)>2`09>uM@c@os}@IfB|Ar@Aa@]i}@n.> 0Ul@ HsBe@e@v@d@B2h,<M#l# M@?U4>UhuQuQtAJ@QH1j LZFهϰ 7j bL\ѻ}@[ 6-fMB:ʩMbPdc 2N3odb`GeGEWe$oZ\aibvIGeUWe4?Vpku j aGeWe_ooh2K]u3rA 4s2HD: )&# ;h0>Th]]9 PB IAUFv?FdË.?FQ?F?P t`  Smo?tϰոČ( 뾅@l* 9u duo8p>   ] EJ]_DRb(?&. ?Az@bY(e 6f h )ϓb k+ _?Z'e 88o?ze Ae s[+ h g/y//$# L:5 /sU"K1*a4 9 2(E#{ #t8tϤ:U a L2T18K;6Ԉ?@EK; tͺ>B40AA0`?CopyrigTwt c)@]2`09@M@]c@os@fBRAr@Aa@i@Wn.@ 0lPU HsRe@e@v/PdP2h<M#l#A MP? <>Uh$QQ(]A(Q1 LZ3;'xP 7jbbFb7@c 6{fM8cUFnDdTh]]9 PB IAUFSQ=?F|=?FQ?F?P t`  4o?taVpRKČ( 뾅@l* 9u auo8q>   ] EJ]_DRb(?&. ?Az@bY(e 6f h )ϓb k+ _?Z'e 88o?ze Ae s[+ h g/y//$# L:5 /sU K1(a4 9 2(E#{ #t8tϤ:U a L2T18K;6Ԉ?@EK; tͺ>B40AA0`?CopyrigTwt c)@]2`09@M@]c@os@fBRAr@Aa@i@Wn.@ 0lPU HsRe@e@v/PdP2h<M#l#A MP? <>Uh$QQ(]A(Q1 LZ3;'xP 7jbbFbL7a 6{fM8(a?nDFF!@~qWoO 0dTc I\rdcd bjUkgaPbeEef"v?Fr6d?F?kĀqo`OivddlXr`tF0sK|٢jr3t!KU:G}?{]rLl} ]|q3xnTrg?F<ے7pooZgtfio,V|=] 5ve&1?Fpn?FTh]]9 PB IAUF!?F?FQ?F?P t`  + {o?tHUČ( 뾅@l* 9u auo8r>   ] EJ]_DRb(?&. ?Az@bY(e 6f h )ϓb k+ _?Z'e 88o?ze Ae s[+ h g/y//$# L:5 /sU"K1*a4 9 2(E#{ #t8tϤ:U a L2T18K;6Ԉ?@EK; tͺ>B40AA0`?CopyrigTwt c)@]2`09@M@]c@os@fBRAr@Aa@i@Wn.@ 0lPU HsRe@e@v/PdP2h<M#l#A MP? <>Uh$QQ(]A(Q1 LZ3;'xP 7jbbFb7@c 6{fM8cUFnDFK!@?FDqWoO 0dTc I\addǼbjUkgabeE(aFjv?Fr6d?FkĀq o`Oi^j^r`t0sKÊ#|pr9t!KU:M}{]r,Ll}]|9xLufTrg?F<ے7vodObdcZgtfi,V #|=c ;vLu&1?Fpn?FTh]]9 PB IAUFĊ?Fn6b?FQ?F?P t`  o?t]eČ( 뾅@l* 9u auo8s>   ] EJ]_DRb(?&. ?Az@bY(e 6f h )ϓb k+ _?Z'e 88o?ze Ae s[+ h g/y//$# L:5 /sU"K1*a4 9 2(E#{ #t8tϤ:U a L2T18K;6Ԉ?@EK; tͺ>B40AA0`?CopyrigTwt c)@]2`09@M@]c@os@fBRAr@Aa@i@Wn.@ 0lPU HsRe@e@v/PdP2h<M#l#A MP? <>Uh$QQ(]A(Q1 LZ3;'xP 7jbbFb7@c 6{fM8(aD +F2|>?FW@WoO 0dTc ?rdcd bj{^WeabeEef"v?Fddd?F܃qo`OivddlXr`tuqE|E:jr3t!KU:G}{]rLl}]|q3xngqrg?F~pooZgt_ML|\ 5ve&1?FWf?F?#0b|[m낪 z'oǵ(|F$$!ayTh]]9 Q BUFt[@#?FlIJ?F\HRq?F#o˯Z?P Bt`  =0[?t7c`C#ll#Bu duo7t>JTA0f88v?WYϳAjL@z bbb!' 6Y % )! ! ,+ <?' o?z #a47% =) J"#K#({% (+ (G t#Beı?A>L ?A"&"&$/*8%,"t:"t>  A A6 `?CopyrigTt _(c)D@2`W09D@M<@c:@os4@fBB3Ar6@oAaB@i4@n}.D@ Al@U :HsBeb@e:@v@d@2h/1<M#l#@7? M@?(>Uh7E P+AA!{ L:F A7<6j% bRzg9<2 "\MbPdS mT W5U6ik0YaYvq 2HD: )&# T=h0>Th]]9 Q BUF偃?F (?F\HRq?Fn˯Z?P Bt`  Xkw?tɣ#ll#VBu auo7u>JTA0f88v?WYϳAjLv@z bbb!' 6Y % )! ! ,+ <?' o?z #a47% =) J"#K#({% (+ (G t#Beı?A>L ?A"&"&$/*8%,"t:"t>  A A6 `?CopyrigTt _(c)D@2`W09D@M<@c:@os4@fBB3Ar6@oAaB@i4@n}.D@ Al@U :HsBeb@e:@v@d@2h/1<M#l#@7? M@?(>Uh7E P+AA!{ L:F<6j% bRzg9ǩ<2 "\MbPdS mT W5UO6ik0YaYvq 2HD: )&# T=h0>Th]]9 Q BUF͜?F4@?F\HRq?Fn˯Z?P Bt`  W׎?tϘsW~#ll#VBu auo7v>JTA0f88v?WYϳAjLv@z bbb!' 6Y % )! ! ,+ <?' o?z #a47% =) J"#K#({% (+ (G t#Beı?A>L ?A"&"&$/*8%,"t:"t>  A A6 `?CopyrigTt _(c)D@2`W09D@M<@c:@os4@fBB3Ar6@oAaB@i4@n}.D@ Al@U :HsBeb@e:@v@d@2h/1<M#l#@7? M@?(>Uh7E P+AA!{ L:F6j% bT ü2 "\MbPdS mT W5UO6ik0YaYvq 2HD: )&# T=h0>Th]]9 Q BUF[@#"?FLo]Y?Fo?Fn˯Z?P Bt`  ?tC2.8Xj#VBu auo7w>JTA0f88v?WYϳAjLv@z bbb!' 6Y % )! ! ,+ <?' o?z #a47% =) J"#K#({% (+ (G t#Beı?A>L ?A"&"&$/*8%,"t:"t>  A A6 `?CopyrigTt>(c)>2`09>M<@c:@o%s4@fBB3Ar6@oAuaB@i4@n.>_ Al@ :HUsBeb@e:@v@-d@2`h/1<M#l1#7? PM@?(>Uh7E +AA!{ L:F<F6j% bRzg9<2 "\ʩ7MbPdS 2NoT W5UO?6ik0YaYvq 2UHT5D B &# T>h0JTtiiM ENUF|u(?Fڋ?FPaW?F ru?P WNtQ` 786R7?tUau}wAi8;(\I2-nNuj mu){xE0f88wv?AVQ Ӎ!@#b#m@b  0#  #W(3 (o+&T" #t#NĽ/?. ?M"&$a%$$,/>*L%i,T"tΞ*T"tR.R11#`?Copyrig`t (c)02l090M0c0os0f21r01a0i0n.0 Al@ 8sBe0e0v0@d@"Vt!X#xB #/ @T,UtE1UA-!@nZ pvm?S׮(%UQG@Y9"S\FkV5%UЗn@‹Pهϰ=\WQS\OXbiTQY%_7_I_[_DQOOOO__^̔ԍ?f Q́)f@vVP|?5^BlӿIY:6Xl?Ib ʏ܏EABTfxF\HRqCk?-q_WaW?ϰ+@"Bl!H,BXQnB)fFޖBoT[inJ\ۙgyAHD: )&# T=h0>Th]]9 Q BUF4@ ,?FlIJ/?F&1?F3(e?P Bt`  N!?tw;%m4tMuVBu auo7y>JAS`? ?Az@bbb! ( 6 )  '+ ߈?/I-Z#mg!z A " ././@/R+,g/y'sU1,ar4 )] "#{t #BtNg8tu:Ba PL^2!X8;d;Q6X?E;d; t͊>8lAlA `?CopyrigTt (c)@2`09@M@c@o%s@fBAr@Aua@i@n.@U 0l@ HsBUe@e@v@d@ 2h<M#l# MT@?4>UhQQA(VQ^1| LZFX} g 7j b2ɶGO@[ 6SCfMB:ZMbXdc $I$I܍+d `2aa]Eme'la'iL.G]eU@9/$E?;FslAka,dHּgmeoo(oh2gyu3rA 4s2HD: )&# T=h0>Th]]9 Q BUFnټk-?F.޺s?F&1?F3(e?P Bt`  3?tʼnm4tMuVBu auo7z>JAS`? ?Az@bbb! ( 6 )  '+ ߈?/I-Z#z A* " ././@/R+Yg/y'sU1,a4 ) "#{ #BtΜg8tu:Ba L^2!X8;d;6X?E;.d; t͊>8lAlA `?CopyrigTt (c)@2`09@M@c@oKs@fBAr@Aa@i@n.@ 0l@ HsBe@e@v@d@2hb<M#l1# M@?4>UhQQPAVQ^1| LZFX}  7j b2/O]M 6CfMB:ZMbX͉dc ?$I$I܍+d 2aa]Emekla'i.]eU@;0$E?FTh]]9 Q BUFܲ?Fj$?F!?FTUUUɺ?P Bt`  &?t§= ףc?ckBu5 auon7{>)JAUVJp? ?Awz@b_bb! (݉ " '+ ' qq?z A  +S/.&68))E! '+ g?uW-sUUn*a4 8) "u#{ u#D!tΜ?8tM:Bav L62?!08;<;60?5;.<; tb>{8DADA1 `?CopyrigTt (c){@2`09{@Ms@cq@oKsk@fyBjArm@Aay@ik@n.{@ 0l@ qHsBe@eq@v@d@n2hb<M#l1# M@? Uh,cQcQ] '1PbA.Q61b L`w"?FMDA dj? |m cuۡ'1 6!1fM{":F$3<6d kS=ѣ<n2{!5E[nLa vogaKeE[eV_@cbc g@]amr\GDž}iNu?FS%f|]tElFTh]]9 Q BUF:C<?F8!)^?F!?FTUUUɺ?P Bt`  Ȼ?ޫd?tI= ףc?ckBu5 auon7|>)JAUVJp? ?Awz@b_bb! (݉ " '+ ' qq?z A  +S/.&68))E! '+ g?uW-sUUn*a4 8) "u#{ u#D!tΜ?8tM:Bav L62?!08;<;60?5;.<; tb>{8DADA1 `?CopyrigTt (c){@2`09{@Ms@cq@oKsk@fyBjArm@Aay@ik@n.{@ 0l@ qHsBe@eq@v@d@n2hb<M#l1# M@? Uh,cQcQ] '1PbA.Q61b L`w"?FMDA dj? |m cuۡ'1 6!1fM{":F$3<6d kS=ѣ<n2{!5E[nLa vogaKeE[eV_@cbc g@]amr\GDž}iNu?FS%f|]tElFTh]]9 Q BUFx]?F{<W?FU?F3z[j˺?P Bt`  Q`7lg?t M&XRkBu5 auon7}>)JAa^!? ?Az@b_bb! (݉ 6 , )  '+ g~X?ZI-Z#!g![z A " ,/,/>/P-[?+g/y'Eي,a4 ) "!#{ #Btg8t)u:Ba L^2!*X8;d;6X?E;d; tR>8lAlA `?CopyrigTt (c)@2`09@M@c@os@fBAr@Aa@i@n.@ 0l@ HsBe@ej@v@d@2!h<M#l# M@? 8>UhoQQ]AVQ^1| L@?F҄! dj _٨la6ztJB: 7d /k?yԷ&Dh]EWemkp+ɉ 5d}bGeUWeFBϏ+@ol0ju?MDhnMbX0j`QDhnC<o+o"Th]]9 Q BUFT1#E2?FxLΉ?FU?F3z[j˺?P Bt`  S|.?tk, &XRkBu5 auon7~>)JAa^!? ?Az@b_bb! (݉ 6 , )  '+ g~X?ZI-Z#!g![z A " ,/,/>/P-[?+g/y'Eي,a4 ) "!#{ #Btg8t)u:Ba L^2!*X8;d;6X?E;d; tR>8lAlA `?CopyrigTt (c)@2`09@M@c@os@fBAr@Aa@i@n.@ 0l@ HsBe@ej@v@d@2!h<M#l# M@? 8>UhoQQ]AVQ^1| L@?F҄! dj _٨la6ztJB: 7d /k?yԷ&Dh]EWemkp+ɉ 5d}bGeUWeFBϏ+@ol0ju?MDhnHMbX0j`DhWef9o-ai qGeUoo$o6o3UHLD )&# R>h 0JTlaaM>UF+1#E2?Fgj?F0U?F_gw?P >tA`  9|4?t <'Ŵ\1,_Œ X">u eu!s7-JɅJUU?HA9 j@7tt7 b:*H&tH  th*Nĵ) ?MB"b;)H&e8H m 3 H -US4o?FPjj?6ֈ@!QpoĬگ eoĩ́ F o 01G}}϶@b@mp?#nʼPV]O߸uy\l2_+ʦE}@p5"iРo~e*al|ٍşןHD: )&# ;h0>Th]]9 PB IAUF~Q?F|}Y?FF(e?F=PFo?P t`  IGr?ttƯ.5q+ ~Жu auo8M> `  EJƱZVJp!?&. ?Az@bbbe!Y(ne 6 p )l l w+ g?-#U!׷!zme Ae [+j/|//-g#+ s "(a40 9 *2!E#{0#t8tϤ:U a L2T$18K;FԞ?VEK; t>B40AA0`?CopyrigTt (cu)@2`09@uM@c@os@IfBAr@Qa@]i@n.@ @Ul/P Hs3RePe@vEPd'PB2h,<M#l#_9M/P?]UhzAQ1 L@3FO#۲?Fo2zP dj|_aW{8cUF:&x0?F?Fώ?FX'qoO 0Yifull4ajS?N~dh+ fEeޖe?F<'?F@]?F\F%ol}dQ3ll BXl귺m|ԇbBhaUew```?FV ?FTh oflPI3qoijeðl.` |=T?heFnF$OĒ?F o* leowky{ftGOg˂a,8b1;MHD: )&# ;h0>Th]]9 PB IAUF~Q?F8?FF(e?F=PFo?P t`  IGr?t+>`5q+ tЖZu Mauo8>    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 ,p )l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ As"(a40 9 *2!#{0#΍t8tIϻ:AUa L2$18K;F?VEK; Kt>B4aAA0`?CopyrigTt (c)@2`09@M@c@os@fBAr@Qa@i@n.@ @l/P Hs3RePe@vEPd'P2hX<M#l # M/P?]UhzA(Q1 L@3FO#?Fo2zP dj|a{8cUF:&x0?F?FȎ?F'qoO 0Yifu,oi4ajK?N~d+ fEeޖe?F<'?F@]?FsF%ޕol}dQ3ll BXlRm|bBhaUe`Ԗ``?FV ?FTh oflPIϮ3qoiGkeðl2` |FT?heFnF*OĒ?F o* leowkyftGg˂,,8b1;MHD: )&# T=h0>Th]]9 Q BUF&d29?Ft`0L?F(\µ?F^Sӻ?P Bt`  o?tbS yAP FBuj auo7>RJ[0U?<ALv@tt7 }b6*D&tD  td*JBı) ?A>"b7)D&a4D  V3 D 8/td/tRy.x1x1`?CopyrigTt (c)02`090M0c0os0f21r01a0i0n.0 Al0 8s2e0e0v @d0"h0!<M#l#/MlP> @?UhLAA]R 1 P1"7Ж1bA>!J`oO2z[ dja_q:z׍ Q 6VMB@챝/P\`_m;E,Ui5Uޖ?FQ[5lf\VU'EUY2Ruݯ?FU]˖7sf\pdѣSYUWfe _zx]݅om{ZcXUFRP\g[)JXAp| rhQ#5 IXAYaLPւ?FتcP\T f\3$sXAp"۲ ElX1YA-k?FFoZP\fyf\!XAYX%?F8K7P\{ 䘷f\&SAY&1l?Fr>|]P\-]qiYip~ X1#g~jt-? XAY?F ףp=P\' f\?P=Rw㹥X'RXT}7vP\__/vnTpljlX7U/?$?vQ[E7Ժf\wUQY|>qh|P\4GN"MDX U29_KU#rA0$@C_ HN>Lo3s rFYd߫" EMFhP #ȘT B `g+V @elk-o+(/o9BGohoP~rp { п m 8 }OX^ Dc6ߧ W  ! x#@ K& *ҿ 9-+ HĽ B @hF Aʐiϐ ]ҿ  pސrn t &uL ~y 8|I 1&}z X o'@ #'B2 {'E H/ @9K E5'O C'99 m! -%9( (x-  2 $69'T; !()> ~*A*I8,E ?]-@H0L98P9:T 'KXI8\\9ȸ_ 'cv0&8_h |@mIq 0&w z 88~ Ș ׿: 5'XP@98r?d9Xu~v9xxǗJYXzu98|9~9 ]9x &PK 9X H~9 IX "*I b*Io NIB``I ~9x &ά9X  i( ՖIx  ~W  (? )*@& i (  9 g ~(X 0G( 1 n~  [ OI8  ~ O x  e8  w8 Y 8P mR hTM hHV# wY( (]/- 1 p6 9 =I<ȿ2@ OHXqCHKVO IgSxWX[ (^t'c Hth l /"wUFD  h(^TYYBBUFjZ?F~??x<F BP(?P } kX` BW66 W TTT%TTȅ5H?? (?B@L&d2?-(\.g1(.sUW!AU&w/t  0cB`,web,s rv",T P comput$d+i t i 3ud n tw0'rk!eA^| (SG|& f/?,v>? ?T wp  ̠ p ʔ  pqwpqwqnwqpqqbqpppw wwwqqEwqpw߄wwrvrrwDrag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aabjZֿ~??cN׿ mF1??SbM1{V↑T*J?@ ?UG DF P# h @T(PYY# QU@jZ?@~??F?Pn} u{` ?Su#؍>>HX HlHYHH EO.LO4:UDDXXUllk'"&R",I'U25ĉq%4 ?"u'4b0{[`:#(26 U9$"3&x9"L1" ^!'>U@ÿ@ǽq^@?@VBӅ?]DSF0ZBu@`-1ZBuW@rCC!8GAB"2C9u`u `"[ b![u`2 %3Qo1o7B`?CopyrigPt0(c)020P90MPcPosPfRQrPQaPiPn 0Al` Xs bePePv`d/`VPs_SBNcPm!#5Qb41,a@o13dX453B^8=%3p63dz6z6 v24#V%30Urz3]ge<^1E U#5m Hq5twL5t{3t{ez1A+E*F7ԂX$18dT-`XQj2y`]r` MPWnuPaPtar,aOQ` UES0uPpK`ePt[eTL5Qdv],1PRd C`uK`bʦ30ޯ𯇡! PPr+=9H^p]ZaDbQUT\Կ濅APaB`Ȩ-5^]oυ% S biP aϭPeTυLPcXūa5DVߪhB:l(`iPg߸̨@߇RPoǩ|Z\@E pAD`~YxČUSPaPePlP,5ƪXp/` ATP-`54`%aPK]狥%Sb?`.A4`W`ZʦT3NwRk qa2$2`_ @Ȩ͒Y;MI`ad(`cz d ϴ兵nēAs DxP)ߑmr:atV%a Iâ@!auoDfP㞑 R `Qa/)/7M`Cl/Pد/M+QUmK`utP ?`/ D*?"?_ (b? (Dv??;Hd2QC K3` Wf}%5DVO#O `C` akO}O#ԅO` M`mRgOOɧDODp __1;OUQ1y?QI_[_CqtJw fo SU@jZ?Fű?%v%vKpIp(u.p` s?vbup` ? B=݉`C,qtMp5mQ-́<)oTm}QX.q͏Pߊӥ T.OtxFf@>|pÿruob쁙JRq KN̒rr$QUvvvrsE"`RoZK1& be9P bb OObr@muP`TaC]1eߊ_e71721bKa aXaaehAaYip P`u`T_`_`Qhڑx4ӥ5f_dP&b鄞pCwF3s͵NSY:3R rV@0e18TR <շqW,@rB* B}aaaahʾYVԐ;n` %̀P&²S$1aa`NEW_ORKP2H IP_!RRЕISQTҷiroohA'0UQ?8!Ԑ0oHD # =hj0>T h]]9  5AU@jZ?F͂T??Fx?SF?P6 jt`  o?tk[>(A Vu aSuo.]&A]  *ԮJU2zGzt?@L#&A@bA#z7 5#1bO(b])j+$j&[ "*(w "?& ?AU$l/%B115 `?CopyrigTt (cu)Q02`09Q0uMI0cG0osA0IfO2@1rC0|1aO0iA0n.Q0 WAl0 G8s2Ueo0eG0v0d0"1E]4MŤ-&3 &7&l>]Uhz811U!J!u6?F+\.>djIIa? >"(EǑ I%K9E 5EU . K ;;5QIWEEEF _KnSA?8@@Bu?FDR> ?Nk"\6`bmMM\j=am {:e P> #? D"? 5-g?j4B7!B{oogr57!ibDAbE9 MuX7_'0U~rN!$a)5 5vIzHD # =hj0>T h]]9  qAU@;?FI5K?@xEL?6ѿP6 t`  bm&Qo?t@@L]WI,#u aiuoL> JU2zGzt;?@L?&A@b}#zs q#1b(b)+$&[9#H",ɺ (wH"?& ?A$ /%9#BV1V15 `?CopyrigTt (cu)02`090uM0c0os}0If2|1r01a0i}0n.0 WAl0 8s2Ue0e0v0d0"O1E]S4MŤ-9#b3 b7&l>]Uhzt1.A!JN!m.%-+0djV1ax߃S(FJ-&?F mO"> ?Nk"L[Majnha_:e P> #? BK=o? n-?j4Bs!B{__Wr5s!D8E6V 6?wj_|_ ^XE.U@z T6?F @' d_mOoT \VyWxRkrVo_bVh*g:n"'UaEjz36>CN>?Bn}]zGvN7V iDAbE9 MX+G'0UJPN!4ae5 MaHD # =hj0>T h]]9  U@jpiH?F^?@$?F]F?P6 t`  !a&ao?t,F=۳=u;u auo>J2zGzwt?@ʐLAw@b#z1b](b!).+I.&[-m(?0& ?A$I0/Q%!!5 `?CopyrigTt (c)02`090M 0c 0os0f21r0@1a0i0n.0 Al[0 8s_2e30e 0vq0dS0T"!E]$M-# %'&l>]Uhz!1!JF% djc~YZ(_N9zOMGE%_EH$SwO"K ңHE ^&_8_WE_OqOHOOi&DAbPE9 MX7'0UUfb>!$a % f1jHD # Uh4>T#]]9 M5AU@jZ?FL|+?@?F({~?P6 JuM` ?u JYt )t7zEA2&L_D?. > >tJU2q K?=@MJ&A@-b9(+bG)T+T&J[#"#a?& ?AH?/`)#115 {`?CopyrigTt (c);020G09;0M30c10os+0f92*1r-0f1ai+0n.;0 Al0 18s2eY0e10v0dy0z"!4B#e-?3 7)& b 0K8>U# ]A]A "1!ъ!PzQ <%OYAJEU . K;;\%W%EF($L[.FX5Eai%?F 6?wL;] W-\TB⤲8?F@&SA?F @ ?Nk"L'`bmMW_Ye[ٯ7 VK=F: [jr ? D"? XZvD?ta@Boogr5;!QEx]SiLO MLGXa~WOTZiAle59 XG"'0Uc&N!$05 .HD # =hj0>T h]]9  IAU@K?FOgVb?FY%?Fwᳬ?PJW?>t`  ^Z?t#ə.E @x?r?/{4܂ G _Z+u u$ >  J JpU?43f<!.&P?b3bbfz@1bAe&bq$d 2zGzt.#@LT"&r(~&i$q)(+}'i"~*#81815 `?Co yrigTt (c)o02`09o0Mg0ce0os_0fm2^1r 1am0i_0n.o0 Al0 e8s2e0ee0v0d0"11E]54M-#D3 %D7.&lUh#7 V1#Ai!J# F/?B1B  VRiAAbE9 MX G{W'0U*R2N!I$a {VZUHPD  # #>h0JTpERI MU@u6?Fjc{g&?@%r`5B?Fm_F:Is?HNtQ`  II?t#]  _ii$!`kNu  iu%wj>M JQ T       "@&&JNU2"?H@Qs#N&A@b(bU)++&RNp}#>H1#19 ?#bbbz| R&/5R}#11`?Co0yrig\t (c)02h090M0c0os0f21r0Aa0i0n.0 Al!@ 8s%Be0e0v7@d@21a4t#-}#3 %746lJ#$JUp5 3 M19 1!q(!FnElrkRt# 8$kcD?@숒@)?FP?P"EkU |1\iOT/irvs}i>`_,of :m ,M ?? S&d2? *b?r4B!B oo1gr #5!>%(EQOOOO__FAc1_C_ D4ևS]_o_yRX+{_,__ #R__ (YQoSo+o=osd {oEeooooooFyUy{* hDVW(I X"c7I!pg bf'iMjSE t%XyG|'0UŢŞN!O4i |UGD # hz0TdYYBU@(%)?Fxg^?@0߯H?Fs7Uݹ?P} t` 87?t#_)TeΦu ]ukv  ̝L&UUU&I&3 U!!`?CopyrigPt _(c) 2\W09 M c os f"!r 1a i n}. Al00U (s42e0e uvF0d(0'HS$#-## 'I?k=#ǒ 2j$B##0U'BM3@&@F0Yk} #HA%DKb5DK3DK5DKED$!GiAZG5(|IDFX7yW'&Dŭ6!4YA yVZHD  # =hj4>T!]]>#AU@0߯H?Fz)e??F˞9q?P6 t`z  ?5t# rXѮu)Nu;):O]ע0 &> # " "+"+"+"+" $+"T-J[U7 ??& bA@ 2b4-#2zGzt#+@ Li68!6 ?}; 72U!:B#AA5 5`?CopyrigTt(c)20F@9M2@c.0@os*@f8B)Ar,@eAa8@i*@n. Al@ 0HsBeX@ej0@v@dx@)21"DM-,;?C G& l>]UhzAE!A#!ְ1J`#@{&pz?FUy{?NT,dKj&b&R&M/8T9K-q?F@F?FdG0 >Nk"?YE*]\LThKjfGD&Qhj ?iU3UGe&Y`?@/Jb)h5oWKoWo;èKod}l$ro`nE2K?Fˌ%4G{?F -q? eZR^{|\?6?vodmP}l>MBe 9 N 1iS? 1?grl#51:PO"4ga@Sq(UE^@O|ǐ[`ߡa v2rbA @3ijD&}laqOz o?#WHZ'Qu=*[^N?F]%P?@O&@ c?FаM<n ?` eb0)\(Pfodm}nv}l?V5(?q$Ix[cN#W{ #iA@&QeE9 MX''0UjdN!0 /HD  # =hj0T h]]9 #]AU@}%?FR$,?@6#V?Fc_3֡w?P6 u` ?u#t  3zM%t3ws%.<%H._'B> #PJU2N贁Nw[?@ʐL+&A@wbu](i+bk)%+&p%#4">9"<5!?& ?M#bbb͓z$ p&"/%T%#L1L15 w`?Co yrigTt (c)02`090M{0cy0oKss0f2r1r 1a0is0n.0 Al0 y8s2e0ey0v0d0"E1E(]I4M-%#X3 X7&l*>(UhE j1#$Ac!J`%#@5e$_F??!foA3nBM( V?FJ-R?@HQ??FS!R?P| llHL6VLD5E+v;*AůʙH: 8snP%$? k?Q? \?4_!__WrA5_! R,U3OC@IL?F4~Kz?P)Oy޾ T!]]>#IAU@܋?F2Oa>?@#r`5B?F*ݷ?P6 t`  >B?\oEt# ŖoZu 0Nu;Y:|8>$# JpU>##<?2& ?5bbbz@b#ANi&bu$'h 2N贁N[2$@ LX"D&v(&m$ :;T'm"*B#d1d15 5`?Co yrigTt (c)020090M0c0os0f21r 1a0i0n.0 Al0 8s2e0e0v0d0"]1"a4M-/p3 p72&l>0>Uhh= 1#!eJ`#&FNTM\jh1B,RBM(!JoUy{O_ e@ So4(D@^Tw?F]֝ä ?Nk"?w_KT\T+\_(Kjӷjmplhj -`\TPQE\Uui,St_o u~!ՠXEO9= T?FL?;uQ_Pm"rA @3sjQ1lğ=GoYniAleE9 MX|'w'0Ur^N!M$|A vzHD  # =hj4>T!]]>#IAU@܋?Fj?@2r`5B?F^ݷ?P6 t`  >B?\oEt# 6ΠZu 0Nu;Y~:#&}>0m8>  PJU2N贁Nwk?@ eL&A( 5bM(b[)h+h+$h&#[-M$#?& ?b$Z*'*B#O1O15 5`?CopyrigTt (c)02U0090M~0c|0osv0f2u1rx01a0iv0n}.0 Al0U |8s2e0e|05v0d0"H1P"L4M-/[3 [7&l>0>Uhh= m1#!S!J`#*&FPUy{_?NTMjC1gc RVMʣ(D#@ ![?F"$. ?Nk"W?IKTLTcKjRlhj p=' (*!)i,SO2Kes9T;QEGUFw6qX}__TM7fTZT\Dž}_P^52XOES"rA 0S#Es3iAleE9 MX|$Gxw'0UrIN!4gA xvzHD  # =hj4>T!]]>#!AU@܋?Fc_v?@#r`5B?F*ݷ?P6 t`  >B?\oEt# ap'EZu 0Nu;Y:|$># BJpU>#͙;? & ?5bbbz@}bAA& K&@ 2zGzt?"K@ L0"&N(bM)+TK/8Z*B<1<15 5`?CoyrigTt (c)s02009s0Mk0ci0osc0fq2b1r1aq0ic0n.s0 Al0 i8s2e0ei0v0d0b"5194M-t/H3 H7T &l>(>UhE=3Z1#E!J!FENTMjN@1h(NoUy{OO e@ o)4(D@^Tw?F]֝ä ?Nk"?'_KD3\T+\(Kj?ӷjmlhj P\ DiAlePsI=MXsG'0UzbZ6N!%$0 sFEjHD  # =hj8>T! ]]>#!AU@܋?F*?@#r`5BW?Fw?P6 t`  >B? \Et#տ|u l4RQu?]>I$>I# JpU>͙#<?& ?9bbbz@b#AE&bQ$$D 2zG[zt#@ L4"&R(^&I$Q)+]'I"^*Bh{.M#To1o15 9`?CoyrigTtk(c)k2009kM0c0os0f21r1a0i0n.k Al0 8s2e0e0v@d0f"h1l4M-:?{3 %{7&l>(>UhE= `51#I!J49fAn^ R)X f"B!Jui,SG?RSlOS u~!N]8-19= T?FL;uQ ?Nk"?YVTQRXQOnğ/=i n (\ wTiAaePE9 MXLg'0UbZiN!)$0 Lf`jUGD # hz4TYYT#BIU@Sj'ో?FL]&?@j>(?FeTot7Ѻ?P} u` ?u#8k/8CU(.88Lt `lm3tϭ^}ѯnAf'wyU~##0UH"?@&#!!*`?CopyrigPt (c) 20 9 M c os f"!r !a i n. Al (s2e e v0d z!~$#B-#,# 'O#^ =$&#4 {6{6 w2$e#ab3W) #LG,%,Dj8Hg\&dPaxO6'TXAXA"(2Ca%?28(B,"iha05( e&XV7 W'G${6!t40 VZHD: # =h4>TB#]]9 T!AU@%?FYp5?@_RP6 u` ?Mu t  !o)t~7RnB25"!)Lv$>   EJtU2q?=@dLA@-wb%(b3)%@+@&[w#?& ?A+/L)R!!5 {`?CopyrigTt (c)'020309'0M0c0os0f%21r0R1ai0n.'0 Alm0 8sq2eE0e0v0de0f"!$MEBY-?# '&rl U# #7 1* #p| '&)1&JH FFѷ |-B1 @V&Rl( b 0Ale59 MX7'0URN!$0% VZUGD D# h0T@dYY]BIU@j>(?F8??F/I6?Pn} 8WdT t`  7?ht#rL&~n[f1uowuwU!!`?CopyrigPtv(cu)v2\09vuMB c@ os: IfH"9!r< u!aH i: n.v WAl @(s"Ueh e@ v d  #S$#$- ## '?w= # &#24 6 6 $B# #0U2 3@& wa#3~  #dH1%4Gi^#5 6X'EGK'4 6! ] EFYJHD # =h4>TB]]9 \#!AU@#.?F/I6?@P t`  gjo?t#T U $YhAn m7 u)hnx Fu!)J hI 97eyh?#!?9& aAbA@_"bg)b$g)bIg$2zGz9#@L@&h*%}$f*+T'_"*BL1L1`?Co}p rigT}t((c)(W2009(M{0]cy0oss0f2Rr1ru01a0is0n.( AUl0 y8s2e0ey0v0d0E1I4Mb-X3 X79&l)Uh# j1#_!J FF$[ 7#e T$V3RiAlPeE9 XW'0URZFN!^0 VHD # =h0>T@h]]9 #U@딃r?F/(?@2?FkF_w?P t`  ;0K?t# y_h:.A>Dj# ixsj||yyh|j|Ay"s"y,"s,"yJ"y^" yr""y"/y"a|"1y"8y":y";y"|`AUhMq@q] y a7T^1 hjP!,!J!^!o$!$U#$%&U'()*+,t|q!a!U234567$9$!1&1>74Ua#[aJ`S@ɞd?F9^2d3Qqs^2tY7N26J6M#hN1y-loG?gn`bDPu6(āThq 6p?F!_T?@R h^*B?PQi e>amabƫWSuMD,Xud3, utSқJ! \&\xZ? $Zas? V =? @S?d2tR@B8BoRį֧r3Cc EH ]&H[Bѻ?@lML6~ ;m`~b&¨r?+J^t/qO@? [,!rPצ 2XQqH zg?F,53lܿu  ?FM9(֜2Ar}JND7UØB]ٿ?@h߾#?Fd~5ȿMuPu`~dg}-S/9u}DѺ f <-@uušJAV+ǥ8xP?\ q|?FKyhQ~2vTPf=?PoyGV(na~u3vu;*G1+u~ݏֻA_ ^Gϯᬅ?oQo!|b0QJX^?Fsm?@@޻Pg?POWLKz Fw^=g%fԧ!6&]JVbGᬤ? o[oQr!rmz@zg?@f(?FVɱC OPKMgBlVܖVVwVsS3O_ܘ=w?FKL?@jP0A`QʱH=lTG5OxOeuF|Fv=/Fꞏ ,-<60 ]Cs~?Mv1E GZ}v -# &<"ݝK-'>TAFd|6δ̙2{# ,',v #cX#JREB'~5-O$ ,RI~  `ܝ-C-X-_]bd% ,Wl' 4%ŀ>-խ@ײc& , Ǡ4 \lb\c>-R땳J ' ,+E :{(b\s"=]& a:U( ,/?Fb\.bLOOMևQ:U) ,!`3?F k?%6fSԿr`* ,Oڿ?F&Kba,e~Lʴ2ͷ+ ,b d?FjFŋݸML, ,Z׺ı?F bҢu W%r;z- ,TUI8?Fs%:v ~LSa@ . ,3Pވ?Fb^vO$)yϊ&Lؾ1/*mCe%f(~5JOAjuLīt~eq>aT~.j&],_10y՚?Fr`QSٵ?F艿O:McfdilFU1i;}m&R F$w|!l~1`-?F~J~ 03y<$-t9BIL{HiG,LDd|jph:OE 4b\{~-K 6,Ku20e%+~L-r; 7,kh}6`E׻L?S)` {A8 $Fٞ@`o?F%&0MuPu9KdfǸ;}-UL󥶚!s@+C9,*}3?F:ט26-*NY'| ݑU8am?FYe~Kp?@ŮM?F@_O`P jBނ> l'xk超VSOB;6{.f9;?@ v%e??Fh1*o/m_~!Wx ~)j |ALyUƅ?PbO__<J+t?F"e?@'IȂl:xl@׭9,&͓S2&n&Yۙo> =~vU^4Q?@,z"TEo-<[?|8q&?FCv?@s&Ŕck>\ :A:z5,7ح-idsjѦD;gcZT#n$!$ɞd?Fх@Z f<x.Ϗ:"r 23ED'佴9Ki PyT A$))X#!('0Uqŝ)) (h(J TEI 3aAU@jZ?F({~+?P >uA` ?u#ΕMJ*A )83*#<VQ 9jQ 9~Q 9Q 93(QA = Q(Q.$* BT`t &h)&4t   4t"z"pbE#"J>U2zGz?@9 3>+6A@"b]8bk9x;x6N2 !\4N%323326 2Mc2b"k9Kh7N2ׯa : R;l   4"ABoogr#5"Ap(U3TH P/?@ yjPvf MuPu@YF]ul9;VmMgHr f 9LTBUx]Si\QE[?MLx/r?FPzQ- %YAxlQY?U . [ ;;\upQYF)$r[.Fxai%?F 6?w\^ W-\Xj ~ɽ7yކ}dOflA=$'p$`4U@x@4S>aai6$xi'e!aS#8&`iMiI51Xԥ'0U6PE0 H?>_;s 枹\$qG"Fw #My 5OB Jz ~dk{ @+z[sG_fx ʼn 8  H xq F Mߞ 6q? ,s vF x 7z$ N(}r ، Xĺ^H ' ( &UFD  h(^TYYBUFjZ?F~??x<F BPG(?P } X ]B66]  TTUTTT"9Td9TȼHBU?F? ?B@L&d2?@-Q(\.,c(A.sU!&(/)1(  0%YB`'FT,serv2,comput"4di0t0ib04d0n0t;w*0rk!ea| (SG& i?!3E?? ?| wp  p | qw qwqw{pqpqwqqpqvppww'wwwnbwqpwoww6zwxvDrag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aabjZֿ~??cN׿ mF1??*t {V↑T*J?@ ?UG DF P# h @T(PYY# QU@jZ?F~?tP} u` ?u#2>D>HX DHlHYHH EOe.O4:DDXXll*k'"&J",':U2%5%4 ?"'{4b0u{[`:Q1#26"*!^ U9$"3&x9"L61 2!'@>e@ÿ@qn@?@fB?BmDcF0)B-u/@`-1Bu@rCC5GAB"2C9uv`u `"[ۢ b!]u` %3Qo1o7B`?CopyrigPt0(c)020P90MPcPosPfRQrPQaPiPn 0Al` XsbePePv,`d/`VPs_SBNcPm!#E5ab3P=` o13dX45CB ^8=%3p63dz6Pz6 v24#%3+0U'rz3]Jge<^AE U#D5m Hq5twL5t{3t{LEt{t{y {et!{|tYwmAdaT׃IUBT$1H@a@a20)L21632CLB3P1$125jb6w  7C|hh2E)*dQ 8ŔIQIQA11CB;1XrbYqea>!bz1AE:FG$18dT=`XQj2`]r` M`n+uPaPt+arp` ?bup` ? B=ݙ`S,t']p5#mQ-݁<9odm'Qh>qݏPT'._t'xVf@>pÿЅobZbq [Nܒrr$ aUvvvrsU"`Roj[16 beI`bb __br@muP`TaSm1u _u'G1G2Ab[a ahaauhAaYypP` u*`To`o` axx%D5f_d`&b鄮pSF3s͵NSYJCb rV@̓@e8d=`LqW,@r B:р.ǏR}qaqahYV䐷Kn ` %݀P&S41qa`NEWORK`2H Po!RRIJSQ*io"ohAo'0Ua?!0oHD # =hj0>T h]]9  5AU@jZ?F͂T??Fx?SF?P6 jt`  o?tk[>(A Vu aSuo.]&A]  *ԮJU2zGzt?@L#&A@bA#z7 5#1bO(b])j+$j&[ "*(w "?& ?AU$l/%B115 `?CopyrigTt (cu)Q02`09Q0uMI0cG0osA0IfO2@1rC0|1aO0iA0n.Q0 WAl0 G8s2Ueo0eG0v0d0"1E]4MŤ-&3 &7&l>]Uhz811U!J!u6?F+\.>djIIa? >"(EǑ I%K9E 5EU . K ;;5QIWEEEF _KnSA?8@@Bu?FDR> ?Nk"\6`bmMM\j=am {:e P> #? D"? 5-g?j4B7!B{oogr57!ibDAbE9 MuX7_'0U~rN!$a)5 5vIzHD # =hj0>T h]]9  qAU@;?FI5K?@xEL?6ѿP6 t`  bm&Qo?t@@L]WI,#u aiuoL> JU2zGzt;?@L?&A@b}#zs q#1b(b)+$&[9#H",ɺ (wH"?& ?A$ /%9#BV1V15 `?CopyrigTt (cu)02`090uM0c0os}0If2|1r01a0i}0n.0 WAl0 8s2Ue0e0v0d0"O1E]S4MŤ-9#b3 b7&l>]Uhzt1.A!JN!m.%-+0djV1ax߃S(FJ-&?F mO"> ?Nk"L[Majnha_:e P> #? BK=o? n-?j4Bs!B{__Wr5s!D8E6V 6?wj_|_ ^XE.U@z T6?F @' d_mOoT \VyWxRkrVo_bVh*g:n"'UaEjz36>CN>?Bn}]zGvN7V iDAbE9 MX+G'0UJPN!4ae5 MaHD # =hj0>T h]]9  U@jpiH?F^?@$?F]F?P6 t`  !a&ao?t,F=۳=u;u auo>J2zGzwt?@ʐLAw@b#z1b](b!).+I.&[-m(?0& ?A$I0/Q%!!5 `?CopyrigTt (c)02`090M 0c 0os0f21r0@1a0i0n.0 Al[0 8s_2e30e 0vq0dS0T"!E]$M-# %'&l>]Uhz!1!JF% djc~YZ(_N9zOMGE%_EH$SwO"K ңHE ^&_8_WE_OqOHOOi&DAbPE9 MX7'0UUfb>!$a % f1jHD # Uh4>T#]]9 M5AU@jZ?FL|+?@?F({~?P6 JuM` ?u JYt )t7zEA2&L_D?. > >tJU2q K?=@MJ&A@-b9(+bG)T+T&J[#"#a?& ?AH?/`)#115 {`?CopyrigTt (c);020G09;0M30c10os+0f92*1r-0f1ai+0n.;0 Al0 18s2eY0e10v0dy0z"!4B#e-?3 7)& b 0K8>U# ]A]A "1!ъ!PzQ <%OYAJEU . K;;\%W%EF($L[.FX5Eai%?F 6?wL;] W-\TB⤲8?F@&SA?F @ ?Nk"L'`bmMW_Ye[ٯ7 VK=F: [jr ? D"? XZvD?ta@Boogr5;!QEx]SiLO MLGXa~WOTZiAle59 XG"'0Uc&N!$05 .HD # =hj0>T h]]9  IAU@K?FOgVb?FY%?Fwᳬ?PJW?>t`  ^Z?t#ə.E @x?r?/{4܂ G _Z+u u$ >  J JpU?43f<!.&P?b3bbfz@1bAe&bq$d 2zGzt.#@LT"&r(~&i$q)(+}'i"~*#81815 `?Co yrigTt (c)o02`09o0Mg0ce0os_0fm2^1r 1am0i_0n.o0 Al0 e8s2e0ee0v0d0"11E]54M-#D3 %D7.&lUh#7 V1#Ai!J# F/?B1B  VRiAAbE9 MX G{W'0U*R2N!I$a {VZUHPD  # #>h0JTpERI MU@u6?Fjc{g&?@%r`5B?Fm_F:Is?HNtQ`  II?t#]  _ii$!`kNu  iu%wj>M JQ T       "@&&JNU2"?H@Qs#N&A@b(bU)++&RNp}#>H1#19 ?#bbbz| R&/5R}#11`?Co0yrig\t (c)02h090M0c0os0f21r0Aa0i0n.0 Al!@ 8s%Be0e0v7@d@21a4t#-}#3 %746lJ#$JUp5 3 M19 1!q(!FnElrkRt# 8$kcD?@숒@)?FP?P"EkU |1\iOT/irvs}i>`_,of :m ,M ?? S&d2? *b?r4B!B oo1gr #5!>%(EQOOOO__FAc1_C_ D4ևS]_o_yRX+{_,__ #R__ (YQoSo+o=osd {oEeooooooFyUy{* hDVW(I X"c7I!pg bf'iMjSE t%XyG|'0UŢŞN!O4i |UGD # hz0TdYYBU@(%)?Fxg^?@0߯H?Fs7Uݹ?P} t` 87?t#_)TeΦu ]ukv  ̝L&UUU&I&3 U!!`?CopyrigPt _(c) 2\W09 M c os f"!r 1a i n}. Al00U (s42e0e uvF0d(0'HS$#-## 'I?k=#ǒ 2j$B##0U'BM3@&@F0Yk} #HA%DKb5DK3DK5DKED$!GiAZG5(|IDFX7yW'&Dŭ6!4YA yVZHD  # =hj4>T!]]>#AU@0߯H?Fz)e??F˞9q?P6 t`z  ?5t# rXѮu)Nu;):O]ע0 &> # " "+"+"+"+" $+"T-J[U7 ??& bA@ 2b4-#2zGzt#+@ Li68!6 ?}; 72U!:B#AA5 5`?CopyrigTt(c)20F@9M2@c.0@os*@f8B)Ar,@eAa8@i*@n. Al@ 0HsBeX@ej0@v@dx@)21"DM-,;?C G& l>]UhzAE!A#!ְ1J`#@{&pz?FUy{?NT,dKj&b&R&M/8T9K-q?F@F?FdG0 >Nk"?YE*]\LThKjfGD&Qhj ?iU3UGe&Y`?@/Jb)h5oWKoWo;èKod}l$ro`nE2K?Fˌ%4G{?F -q? eZR^{|\?6?vodmP}l>MBe 9 N 1iS? 1?grl#51:PO"4ga@Sq(UE^@O|ǐ[`ߡa v2rbA @3ijD&}laqOz o?#WHZ'Qu=*[^N?F]%P?@O&@ c?FаM<n ?` eb0)\(Pfodm}nv}l?V5(?q$Ix[cN#W{ #iA@&QeE9 MX''0UjdN!0 /HD  # =hj0T h]]9 #]AU@}%?FR$,?@6#V?Fc_3֡w?P6 u` ?u#t  3zM%t3ws%.<%H._'B> #PJU2N贁Nw[?@ʐL+&A@wbu](i+bk)%+&p%#4">9"<5!?& ?M#bbb͓z$ p&"/%T%#L1L15 w`?Co yrigTt (c)02`090M{0cy0oKss0f2r1r 1a0is0n.0 Al0 y8s2e0ey0v0d0"E1E(]I4M-%#X3 X7&l*>(UhE j1#$Ac!J`%#@5e$_F??!foA3nBM( V?FJ-R?@HQ??FS!R?P| llHL6VLD5E+v;*AůʙH: 8snP%$? k?Q? \?4_!__WrA5_! R,U3OC@IL?F4~Kz?P)Oy޾ T!]]>#IAU@܋?F2Oa>?@#r`5B?F*ݷ?P6 t`  >B?\oEt# ŖoZu 0Nu;Y:|8>$# JpU>##<?2& ?5bbbz@b#ANi&bu$'h 2N贁N[2$@ LX"D&v(&m$ :;T'm"*B#d1d15 5`?Co yrigTt (c)020090M0c0os0f21r 1a0i0n.0 Al0 8s2e0e0v0d0"]1"a4M-/p3 p72&l>0>Uhh= 1#!eJ`#&FNTM\jh1B,RBM(!JoUy{O_ e@ So4(D@^Tw?F]֝ä ?Nk"?w_KT\T+\_(Kjӷjmplhj -`\TPQE\Uui,St_o u~!ՠXEO9= T?FL?;uQ_Pm"rA @3sjQ1lğ=GoYniAleE9 MX|'w'0Ur^N!M$|A vzHD  # =hj4>T!]]>#IAU@܋?Fj?@2r`5B?F^ݷ?P6 t`  >B?\oEt# 6ΠZu 0Nu;Y~:#&}>0m8>  PJU2N贁Nwk?@ eL&A( 5bM(b[)h+h+$h&#[-M$#?& ?b$Z*'*B#O1O15 5`?CopyrigTt (c)02U0090M~0c|0osv0f2u1rx01a0iv0n}.0 Al0U |8s2e0e|05v0d0"H1P"L4M-/[3 [7&l>0>Uhh= m1#!S!J`#*&FPUy{_?NTMjC1gc RVMʣ(D#@ ![?F"$. ?Nk"W?IKTLTcKjRlhj p=' (*!)i,SO2Kes9T;QEGUFw6qX}__TM7fTZT\Dž}_P^52XOES"rA 0S#Es3iAleE9 MX|$Gxw'0UrIN!4gA xvzHD  # =hj4>T!]]>#!AU@܋?Fc_v?@#r`5B?F*ݷ?P6 t`  >B?\oEt# ap'EZu 0Nu;Y:|$># BJpU>#͙;? & ?5bbbz@}bAA& K&@ 2zGzt?"K@ L0"&N(bM)+TK/8Z*B<1<15 5`?CoyrigTt (c)s02009s0Mk0ci0osc0fq2b1r1aq0ic0n.s0 Al0 i8s2e0ei0v0d0b"5194M-t/H3 H7T &l>(>UhE=3Z1#E!J!FENTMjN@1h(NoUy{OO e@ o)4(D@^Tw?F]֝ä ?Nk"?'_KD3\T+\(Kj?ӷjmlhj P\ DiAlePsI=MXsG'0UzbZ6N!%$0 sFEjHD  # =hj8>T! ]]>#!AU@܋?F*?@#r`5BW?Fw?P6 t`  >B? \Et#տ|u l4RQu?]>I$>I# JpU>͙#<?& ?9bbbz@b#AE&bQ$$D 2zG[zt#@ L4"&R(^&I$Q)+]'I"^*Bh{.M#To1o15 9`?CoyrigTtk(c)k2009kM0c0os0f21r1a0i0n.k Al0 8s2e0e0v@d0f"h1l4M-:?{3 %{7&l>(>UhE= `51#I!J49fAn^ R)X f"B!Jui,SG?RSlOS u~!N]8-19= T?FL;uQ ?Nk"?YVTQRXQOnğ/=i n (\ wTiAaePE9 MXLg'0UbZiN!)$0 Lf`jUGD # hz4TYYT#BU@5?F;?@ t2?F`0 ֺ?P} u` ?u#+/8<&L9`d<ft99(.8P8L``Uttyt mH 8"tC"hfc!N&>'nJ!O%X'm= 'p ~i##0U"K?@&S#a!1!1*"`?CopyrigPt (c])X020d09X0uMP0cN0osH0IfV2G1rJ01aV0iH0n.X0 WAl0 N8s2Uev0eN0v0d0"14J#B-#-3 -7#^=$.6#@DFPF B$e 0^dA\C #HA%DK%D8K5D`KEDdKEDg&Ca_'TAA""(Pa%288BKc`DcE ciha5 6rX7fg'$)F!DA ffzjUHPD  # #>h,JTEI MU@jZ?F@s??FX7`/?HmNuQ` o?u# j>tMtQ 1@t PATOQ E O#l|O6,2c J^vNt, "t "QwNbo ?!FVxNo]2УɆX3BUYU>VZ\)_ W거QUTAQ LG4CaCa_* Q_*____ o2f 8CT]?FoYDȡ?@ ~1pc} 9dS0]Yb<=p\/_ RT)4HtvzI!| ?^_AV,uݹ:4Z\o &Ja ʆXBU 9A1p@߄ߝZ\X9 (p\P΀dˆXEBUp2t Z\5q[,=6B҆XaU̓쬏 qXa>YU . [[ ;;p\Ua>YF`rZYoQUaai%?FzP4Z\^ W-p\] xTy8?F.?@@SA?FWk@ ?Nk"_|5`bmMp\PB|y[7 ơ|`?])?p*FWAX|a筃,H7~Z\?bxT?:!G4QڡUeB_T_f_x_DOOkoooZ}u?FU2Ty9=ŏsҟGO"vP_?@mlփ?Ff>> }= R3|Ofѡ|&['aޯ)d3#ux"@4SK 6ASʎy'e>'"Y`r,iMm׹ ߵl%1X~G׷_'0UJ26L50Ov ׶HD: # =h4>TB#]]9 TqAU@1D)?FL"ߛ$??Fٵ #ָ?P6 u` ?u4 t  ]<)t7񿗯)2)LEkL>  JtU2qD ?=@LC&A@-bu(b)+&񆤍[=#L"#a?& ?AH{/)=#@1@15 {`?CopyrigTt (c)w02009w0Mo0cm0osg0fu2f1ri01a; ig0n.w0 Al0 m8s2e0em0v0d0"91=4MB=#e-OL3 L7&l>  U#,|A|A9 $] t^1*=# #p Kw&&J`=#R&F 2'_b0CwvA kRqVM(~"!;ɡ?@<3?F ?P-DT! ;d1?Y=:ZTO㿂f{OaB J4 13? v,? (N_?r5w!:8oJo\g"a@jS(.8R!ZFI nx4__ D_U5U,VS?@g$ ?F~4,ێ~@ 8_H_ZTml`KDfl`'E4q2d8R鿃oo`rmkod&'aE2%_7USr(A@z#y3ae&b{, fZT5sae~t?FG=Va|7>-\氹pAiʈ$%?F(XoZ1a|}%\Iii ^WB^:fvEZT˒AiU?FAx߾Ya|k#ӝY~/Yt(Ae o0AleP59 MX=GL"'0UŢbN!40 O5 |HD: # =h4>TB#]]9 T]AU@R7)?Fy߈C??F"ָ?P6 u` ?u4 t  *5y")t7n)2)LI"+BA B JU2q0 ?=@L/&A@ybm#zc a#-bK{(m {(+I&)#Kڬ !?& ?A"&g$bbu/b /%)#Bo1o15 {`?CopyrigTt (c])020090uM0c0os0If21r01a0i0n.0 WAl0 8s2Ue0e0v@d0"h1l4M!E)#𤲝-DO{3 {7&l> U#,AA9 ] 18! #p %J`)#@~t?F # 0hU-~-/HA RVM(ET"rYD?@J-?F-' 9d 0_Y b%r\_oӫ([MFoFl 77]8>!Zݹ:4\\o?gƭkdQEF5W4?@A=?F[Q`??P-DT! :U^Zs[ #l@*p9lJjV\\l_ I&vpkhAzi!J?F߸TF\\Ͼ\zT khzinA9f@.mY <\\ԕ$ ,S{khAzi׍8r?Fį^?m ? ~_5 ә(Ae 0AleE9 MXlGR'0UuőN!40 ~5 ,@HD: # =h4>TB#]]9 TU@~t?FYaJE??F? ~?P6 u` 7?u t  }A_)t7Ǫ+)2)L^A]>REJt2q?R=@LA@-bbJ )+&L ;W!?m&L ?A" &zbbbOz /R;%!!5 {`?CopyrigTt (c)(020409(0M 0c0os0f&21r0S1ai0n.(0 Aln0 8sr2eF0e0v0df0>"!$MDO!EY-?# 'm&l> 0>U#3 -A9 B1 #p ;%J`F(jdO C]Se֑  FM(HC-O"K[%qU5)UuBТ:DY=~W\GUE2OE#rA 0"S3QhA%YB[)xIB_STD(Pd 0Ale59 MX7|B'0UbN!$1A5 fjHD # =hj0>T h]]9 U@/?Fxpz?@]JQ?Fk],>Uh@ !f$; hp _Q%Jd(jcZ(sEp!$a VZHD # =hj0>T h]]9 U@~t?Fxpz?@?Fx?vÂE?P6 t`  }A_?t#%_ ,u auo>J2zGzwt?@ʐLA@bu+b)%#+#&!yHa$?x&L ?A+!#+,1'!!5 `?CopY rigTt (c)(02`09(0M 0c0os0f&21r0S1a&0i0n.(0 Aln0 8sr2eF0e0v0df0I"!E]$M-# %'x&l>],>Uhh 1[$ hp  F%Jdjc%O(Eq!$a VjHD: )# Uh4> T]]9 M#AU@#ܡ,?Fb?JP WJtM`  ?t# AJb $>h g JQubhr6 u!>h=U7Jyb?!A?3& [AJ~CA@Y"wba)b$a)'ba$2zGz3#@MJ&b*%w$`*Q+'Y"**F1F1`?Cop rigTt(c)2009Mu0cs0osm0f{2l1ro01a{0im0n. Al0 s8s2e0es0v0d0?1EC4*-R3 %R73&l& UhVE9 `d1#Y!  FFU 7C@VCi@Ale759 XW'0UjR@N!N$0 VHD: )# Uh0>Th]]9 PM#U@X?Fg.?@DE`v?FepA1D?P JtM`  ;0K?t#˯ yh:.A>j# ixsj||"yy h|yy"s"j|,"s," |J""y^" yr"""y"/y" a|"1y""8y":y"";y"JU2z?Gz:1?N1HSJVAL0bXbY[R[VJSON9;?Ax74Ual#aX`S@fN:O6?F9^2d3QqsR^2tY7+"LN26J6RJN1v{+0?F2rn`XDPk6(āThqZMiڲ?FȒ?@%~?džm@`?PR߷i e>amaXƫWSkMD,Xkd3, ktS?J! \&\xZ? $Zas? V =? ?@?d2tR%߀@8BoR4̧r3cu>XRVSwSy?@r$Wè ;m`X&¨r+J^j{/qO@ [jrPͦ 2XQqE>L?F,D?@ cK'ةhzq 6ѱn|3wsW\ۉ>53lҿ侨gnxP?Fa"&~̜2Ah~sJN:@8PKNWM?@0R?Fw+PuP~y`~dg~~s̜ʪ}Bk3a ,?|IF%̜O,nA3O"?̜g'R S;x+#]Ǯ.uǥ8nP\ {r|%ʿs?Fcj˰?@3?FJ?Poy=V(nxW~u3vk;*G!v+u~ݏֻA_ ^=ů׬{5oGorb&Q"P C.?@M:P̈́} ?PNWLKz Fw^=g%fuԧ!6&{]JVbGᢤ oQo׬Qhzrmٿdlƣn@"N@0?@NPXcC OwPKMgBlVܖF{VmVsOS3E_dNF+P?F_iVJ͸?@9;+0}0'Z,H3wlTG5EnOe{uF Fv=/<~R2d0Pm%s~? MvO1; ܿ;t l h-`w?F?6z?Ϋ9W7FOQ1}M4ڔC͏&ِ1Wi!~RѪV? el 3~]_>-#O &2"ܿ#˕G GWAS?@nA8 ?1ІCѵzT]4-'>T7Fd6Ĵ̏2q#~R|Rl uްJREB'+-E$RߎD~ CXн-C-X-]bd%R| j#$ 4-խ@c&Rf^+ !̠Bd% c~4-Rꕳ@ 'R[\e'? }ķp)~ s"ޗ=?]& as(R lM?FAo .bLOMQs)R ^D^*%6VIrV*R2T?F8]X^*a,eLʴ2ͭ+R ug?FdpA1DݸoL,R;0 W%r;p-RH)?F76˸ LSa@ .RPe6˜R|)yϊ&Lؾ1/|EԈ1f?FFX ر}+ ķ&OjuLīt[q>aJ.j&S"_10|*?F `Jԭ%1+.nNMcfdilFU1i1}m&H F$w|!bt1|q59>?F>FK׀*F/BIL{Hi<[cԍ(=Pї!32$f ˂}sD|2k!f{30%_ʣz?T `c`Tw4G,~LDd|`pta?FVynZ{~~-K6~Ka0?F>&Dw@}|%+)~K-r;7F?FTa|E׻LS)`qA8|}FSP`M{ r?FhPuS@/}Kdf1}-U{Ls@+C9\}K;:*N}O'| ݇Uaqyli!&,$e?@hu?FA3]{ӿP jBނ>\'xk|OVO;|Pq2.?@`Ȩ?Fn |%c_Wx ~)j |A LyU{PbE__<|*&G&?F4J?@2s+M{0xl@ף9,͟S2n?&Yۏo4=|4P `RZC?@b* o0Z d֣r~Pz;'Uo};}לSU>T|m?F3|TsDܷ[ڣ̭?|X?F _PМؓ?@1}v򅗫0z5,7-i~ dsjќD;gcZT#dfN:6RDž@2]Kc$Lŏ0r ڝ 23E솤Dʟ佴/AiऑTAX'0Ugœ 2UGD # hz0TdYYBIU@zUϰ?Fz^?@#ܡ,?Fbݱ?P} t`  ?t#H$IpZίP!::8vgpqu B`Ufpp5uU!!`?CopyrigPt (c)J 2\09J MB c@ o%s: fH"9!r< u!uaH i: n.J _ Al @(Us"eh e@ v d  #S$#- #l# '?R= # &#24 6 6 2$ZB# #0U2 3@& a#3~  #pH1%4GicP#5 6X'.EG'4 6%!4] EFYJ_dH >;s w2mUqCU_ܾF8[ # VOB UOO ~d8ouo@+_xo[sGU, f ?   X Hm xd ? F֛  6hQ ,S   7( NX@ G _U# *9( <9X . VQb1 xS@4 /Z 7$\9 (XM G&UFD  h(^TYYBBUFjZ?F~??x<F BP(?P } kXt BW66 W TTTTT9ȅH?Q?G ?B@L&ɯd2?"-3(?\.E(#. sUk!i&/J( G 0gB`.email,SNM,serv 2,co puT.3d s.r b 4d n 0tw0rk!e^| (QSG& q ?%7I??? wpwp pqwqqqwqwq}pqqqpppw,wwwqqgawqp~wwww;yDrag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aabjZֿ~??cN׿ mF1?? m{V↑T*J?@ ?UG DF P# h @T(PYY# [U@jZ?@~?tP} u` ?u#2>D>HX DHlHYHH EAEdR9.&؍>DDXXllRu'9b"",'US2&5/4&3 ?"'4Wb0{['`:[1#2!6"d^Q_9$7&9"/L6 2&!'ݯ>o@ÿ@qx@?@-pB?wDmF03Bu9@`҈-1Bu @r#CC5 ",CAB2Cm9u`u `"[ b!u`/3Qy1y7B`?CopyrigPt0(c)020P90MPc.PosPfRQrPaaPiPn 0Al ` Xs$bePePv6`d"/`VPs_SBN cPm_!#5P8k` 7Fay1&3db4&5܀MB=/3z6&3d66 2&4#/30U1r3]%ge<^AE U#"&5m Hq&5twV5t{3t{VEt{t{y {etd{|tY wmda*V_BTAJa$Ja&203V21@3 2MVB3Z1125tb6 ta$taC|èEhhPÓnQ* ϔ8ܔAPꓰMB111;@cqcqba>*Ab1%EQF^.1XA#8dTG`XQ"y`])r` M`WnuPaPt5arFaiQ` WEqiPm6`nPvd{V5QX]1PRd*ơ ]`ue`bͯ߯@30! P`r@RdSH@ȱ]C5D6bQ۱eʿܿ{"\ ϬAP9a:B`諸75^ϖϬ% S:bi`#aweT ߬ぶLPchCekT}ߏBalB`i`g̨9@߮,RPoڂ|EZ\@ =phDBU T)?ar0TPpVrKB` B`sR;IY`A Y`Q@;bmr:PeExab!gD"qQr2w`ijJSCC ` TsR\͒kXV` ?ON`1ڒPN`SbY`(|~PEe`a 蘒Z Nwbk4a+.2`\d: IpadB`5cwϯJ)nĺskAx/&/ImTat f?a ];a£rl/kf//ő R pa/a//((/&?4/M`Ci?5?'+ pu"tPf!?BkQ OO"Ȁ\=O_OOkv(OOKHdBQ#CġHC` Wc!wV_ _ C]0ah_z_yi_'`M@m@_2d__vkpoo.KOB%fy "(p5j-T^u uqE珽 ST1.i1xACw>門ÿތc$bel erłłՆ߂^B2`RoUK=e2jrb ]]br-@O"Wyrl]u``dvx~jc*<Q_c--4A4Bj(6yB1B1*P{£qqqDqcҴzQaig6``!-uA`}ż @avh{zI5_}v&ﲄПF3s͵NSYFvy߂f!@v>8M{>6M>Ocլra~g,@wBQ&8P\UqUq}zʷ@ifz}!` %P&4odAA첱UqNNTWORKJeH0P\1RRISQBito̔3GQM'0UƗ?Ϳ10WƕHD # =hj0>T h]]9  5AU@jZ?@͂T??@x?SF?P6 jt`  o?tk[>(A Vu aSuo.]&A]  *ԮJU2zGzt?@L#&A@bA#z7 5#1bO(b])j+$j&[ "*(w "?& ?AU$l/%B115 `?CopyrigTt (cu)Q02`09Q0uMI0cG0osA0IfO2@1rC0|1aO0iA0n.Q0 WAl0 G8s2Ueo0eG0v0d0"1E]4MŤ-&3 &7&l>]Uhz811U!J!u6?@+\.>djIIa? >"(EǑ I%K9E 5EU . K ;;5QIWEEE@ _KnSA?8@VBu?@DR> ?Nk"\6`ObmMM\j=am {:e 뇿P> #? D"? 5-gg?j47!B{oogrK57!ibDAbE9 MX7'0U~rN!R$a)5 5vIzHD # =hj0>T h]]9  qAU@;?@J5K?@xEL?6ѿP6 t`  bm&Qo?t~@@L]WI,#u auoL> @JU2zGzt?@L?&A@b}#zts q#1b(Wb)+&[9#H",ɺ (;H"?&L ?A$ /R%9#V1V15 `?CopyrigTt (c)02`090M0c0os}0f2|1r01a0i}0n.0 Al0 8s2e0e0v0d0"O1E]S4Mb-9#b3 b7I&l>]Uhzt1.AF!JN!n.%-+0rdjV1ax߃)(@K-&?@ mO"> ?Nk"PL[Majnha_:e 뇿P> #? BK=o? n-g?j4s!B{__Wr5s!D8E6V 6?wj_|_ ^XE.U6Vz T6?@ @ d_mOoT ݬ\VyWxRkrVo_bVh*g:n"'UaEjz36>C~N>?Bn]_zGvN7ViDAbE9 MX+G'0UPN!R4ae5 MaHD # =hj0>T h]]9  U@jpiH?@^?@$?@]F?P6 t`  !a&ao?t,F=۳=u;u auo>J2zGzwt?@ʐLAw@b#z1b](b!).+I.&[-m(?0& ?A$I0/Q%!!5 `?CopyrigTt (c)02`090M 0c 0os0f21r0@1a0i0n.0 Al[0 8s_2e30e 0vq0dS0T"!E]$M-# %'&l>]Uhz!1!J@% djc~YZ(_N9zOMGE%_EH$SwO"K ңHE ^&_8_WE_OqOHOOi&DAbPE9 MX7'0UUfb>!$a % f1jHD # Uh4>T#]]9 M5AU@jZ?@L|+?@?@({~?P6 JuM` ?u JYt )t7zEA2&L_D?. > >tJU2q K?=@MJ&A@-b9(+bG)T+T&J[#"#a?& ?AH?/`)#115 {`?CopyrigTt (c);020G09;0M30c10os+0f92*1r-0f1ai+0n.;0 Al0 18s2eY0e10v0dy0z"!4B#e-?3 7)& b 0K8>U# ]A]A "1!ъ!PzQ <%OYAJEU . K;;\%W%E@($L[.FX5Eai%?@ 6?wL;] W-\TB⤲8?W&SA?@ @ ?Nk"L'`bmMW_Ye[7 VK=F: [jr ? D"? X?ZvD?a@Boogr5;!QEؿx]SiLO MLXa~WOTZiAle59 XG"'0Ujc&N!$05 .HD # =hj0>T h]]9  IAU@K?@OgVb?@O?@X5?PJW?>t`  ^Z?t#ə.b?T@[ u?/CG<_Z+u u$ >  J JpU?43f<!.&P?b3bbfz@1bAe&bq$d 2zGzt.#@LT"&r(~&i$q)(+}'i"~*#81815 `?Co yrigTt (c)o02`09o0Mg0ce0os_0fm2^1r 1am0i_0n.o0 Al0 e8s2e0ee0v0d0"11E]54M-#D3 %D7.&lUh#7 V1#Ai!J# F/?B1B  VRiAAbE9 MX G{W'0U*R2N!I$a {VZUHPD  # #>h0JTpERI MU@u6?@ic{g&?@%r`5B?@n_F:Is?HNtQ`  II?t#\  _ii$"`kNu  iu%wj>M JQ T       "@&&JNU2"?H@Qs#N&A@b(bU)++&RNp}#>H1#19 ?#bbbz| R&/5R}#11`?Co0yrig\t (c)02h090M0c0os0f21r0Aa0i0n.0 Al!@ 8s%Be0e0v7@d@21a4t#-}#3 %746lJ#$JUp5 3 M19 1!q(!@oElrkRt# 8$lcD?@숒@)?@P?P"EkU |1\iOT/irvs}i>`_,of :m ,M ?? S&d2? *b?r4B!B oo1gr #5!>%(EQOOOO__@Ac1_C_ D4ևS]_o_zRX,{_,__ #R__ (YQoSo+o=osd {oEeoooooo@zUy{* hDV!VV(I X"c7I!pg bf'iMjSE t%XyG|'0UŢŞN!O4i |UGD # hz0TdYYBU@(%)?@xg^?@0߯H?@s7Uݹ?P} t` 87?t#_)TeΦu ]ukv  ̝L&UUU&I&3 U!!`?CopyrigPt _(c) 2\W09 M c os f"!r 1a i n}. Al00U (s42e0e uvF0d(0'HS$#-## 'I?k=#ǒ 2j$B##0U'BM3@&@F0Yk} #HA%DKb5DK3DK5DKED$!GiAZG5(|IDFX7yW'&Dŭ6!4YA yVZHD  # =hj4>T!]]>#AU@0߯H?@z)e??@˞9q?P6 t`z  ?5t# rXѮu)Nu;):O]ע0 &> # " "+"+"+"+" $+"T-J[U7 ??& bA@ 2b4-#2zGzt#+@ Li68!6 ?}; 72U!:B#AA5 5`?CopyrigTt(c)20F@9M2@c.0@os*@f8B)Ar,@eAa8@i*@n. Al@ 0HsBeX@ej0@v@dx@)21"DM-,;?C G& l>]UhzAE!A#!ְ1J`#@{&pz?@Uy{?NT,dKj&b&R&M/8T9K-q?x6@F?@dG0 >Nk"?YE*]\LT_hKjfGD&Qhj iU3UGe&Y_`?@/b%)h5oWKoWo;KTod}l$roҥ`nE2K?@ˌ%4G{?@ -q eZ̿R^{|\6?vodmP}l>MBe 9 N 1iS? 1?g]rl#51:O("4ga@Sq(UE^@O|ǐ[`Ρa g v2rA @3ijD&}l迲aqOz o?#WHZ'Qu=*[^N?@]%P?@O&@ c?@аM<n ?` eb0)\(Pfodm}nv}l?V5(?q$Ix[cN#W{#iA&QeE9 MX|''0UdN!0 /HD  # =hj0T h]]9 #]AU@}%?@R$,?@6#V?@c_3֡w?P6 u` ?u#t  3zM%t3ws%.<%H._'B> #PJU2N贁Nw[?@ʐL+&A@wbu](i+bk)%+&p%#4">9"<5!?& ?M#bbb͓z$ p&"/%T%#L1L15 w`?Co yrigTt (c)02`090M{0cy0oKss0f2r1r 1a0is0n.0 Al0 y8s2e0ey0v0d0"E1E(]I4M-%#X3 X7&l*>(UhE j1#$Ac!J`%#@5e$_F??!foA3nBM( V?@J-RHQ??@S!R?P| llHL6VLD5E+v;*AʙH: 8snP%$? k?Q? \?f4_!_t_Wr5_! R,U3OC@IL?@4~Kz?P)Oy޾ T!]]>#IAU@܋?@2Oa>?@#r`5B?@*ݷ?P6 t`  >B?\oEt# ŖoZu 0Nu;Y:|8>$# JpU>##<?2& ?5bbbz@b#ANi&bu$'h 2N贁N[2$@ LX"D&v(&m$ :;T'm"*B#d1d15 5`?Co yrigTt (c)020090M0c0os0f21r 1a0i0n.0 Al0 8s2e0e0v0d0"]1"a4M-/p3 p72&l>0>Uhh= 1#!eJ`#&@NTM\jh1B,RBM(!JoUy{O_ e@ So4(DF^Tw?@]֝ä ?Nk"?w_KT\T+\(Kj?ӷjmlhj -`\TPQE\Uu?i,St_o u~!XEO9= T?@L;uQ_Pm"rA @3sjQ1lğ= GoYniAlePE9 MX'w'0UrJ^N!M$|A vzHD  # =hj4>T!]]>#IAU@܋?@j?@2r`5B?@^ݷ?P6 t`  >B?\oEt# 6ΠZu 0Nu;Y~:#&}>0m8>  PJU2N贁Nwk?@ eL&A( 5bM(b[)h+h+$h&#[-M$#?& ?b$Z*'*B#O1O15 5`?CopyrigTt (c)02U0090M~0c|0osv0f2u1rx01a0iv0n}.0 Al0U |8s2e0e|05v0d0"H1P"L4M-/[3 [7&l>0>Uhh= m1#!S!J`#*&@PUy{_?NTMjC1gc RVMʣ(D#F ![?@"$. ?Nk"?+IKTLTcKjRlhj p= (*!)i,SO2Kes9T;QEGUFw6qX}__TM7fTZT\Dž}I_P^52O,ES"rA 0S# Es3iAlePE9 MX$Gxw'0UrJIN!4gA xvzHD  # =hj4>T!]]>#!AU@܋?@c_v?@#r`5B?@*ݷ?P6 t`  >B?\oEt# ap'EZu 0Nu;Y:|$># BJpU>#͙;? & ?5bbbz@}bAA& K&@ 2zGzt?"K@ L0"&N(bM)+TK/8Z*B<1<15 5`?CoyrigTt (c)s02009s0Mk0ci0osc0fq2b1r1aq0ic0n.s0 Al0 i8s2e0ei0v0d0b"5194M-t/H3 H7T &l>(>UhE=3Z1#E!J!@ENTMjN@1h(NoUy{OO e@ o)4(DF^Tw?@]֝ ?Nk_"?'_KD3\T+\(Kjjmlhj P\DiAlesI(=MXsG_'0Uzb6N-!%$0 sFEjHD  # =hj8>T! ]]>#!AU@܋?@*?@#r`5BW?@w?P6 t`  >B? \Et#տ|u l4RQu?]>I$>I# JpU>͙#<?& ?9bbbz@b#AE&bQ$$D 2zG[zt#@ L4"&R(^&I$Q)+]'I"^*Bh{.M#To1o15 9`?CoyrigTtk(c)k2009kM0c0os0f21r1a0i0n.k Al0 8s2e0e0v@d0f"h1l4M-:?{3 %{7&l>(>UhE= `51#I!J49fAn^ R)X f"B!Jui,SG?RSlOS u~!N]8-19= T?@L;uQ ?Nk"?YVTQRXQOnğ/=i n (\ wTiAaePE9 MXLg'0UbZiN!)$0 Lf`jUGD # hz4TYYT#BqU@ t2?@D&d2?@$p?@|>׺?P} u` ?u#Lk/89L<`(.88LL`t m۶m3tبפUC~#9#0Up"?҃@/&9#!!!G*`?CopyrigPt (c) 20 9 M c. os f"!r 1a i n. Al&0 (s*2e ej v<0d0'"@!$0#B-9## 'w#^=9$&0#466 2R0$e#$^ P#30%T% 9#LHLA0%XDcKT%XD8cGg&daO^'BTcAcA0"-()Ca0%g2 ATB_6Si@haX5 &X~7aW'o$Ŵ6!40 aVuZHD: # =h4>TB#]]9 TU@$p?@|>W?P6 u` ?Mu t  )At72(L>REJt2q?=@LA@-bb )+&񆤍[Z#?m& ?A/$)R!!5 {`?CopyrigTt:(c):20 09:M c. os f"!r *1ai n.: AlE0 (sI2e0ej v[0d=0>"@!$MBQ-?# 'm&l>0>U#3 C!*; #p _ &J`@4?g8oyƏ C?,'ߑK FMD(9IMBIGE%UZ8!<A% fjHD: # =h4>TB#]]9 TU@$p?@|>?׸?P6 u` ?u4 t  )t7J)2(LAEJ޵2q?=@L|A@y7b #z]-b( J(2+2&*;q!?& ?A"#&$bb/bI4/U% 1 15 {`?CopyrigTt:(c):20N09:M:0c80os20f@211r40m1a@0i20n.: Al0 88s2e`0e80v0d0X"14MDi!EY-?3 7&Rl>0>U#3 C)1 #p| U%J`@g8oyƩ C2,'ߑB %VM^(9IMBIG3U%CUY8#M)U@$p?@|>?tP >tA`  ?t# >b24 C>u\u!.M# *H>U2llf?@9 >A@b-(C-(b;)W+W&>yg–#?& ?3"B-*X*G,e'񩣕p%1%1`?Cop _rigXt_(c)2dW09MT0cR0osL0fZ2K1rN01aZ0iL0n}. Al0U R8s2ez0eR05v0d0}"1P^"4-,13 17&!Qi 0,fUl4#A5C1CU3! !R \box(<v9s?@^!?@sckz%?PD-DT! /[S@K0Lobp׻nxw_gBs 3CUy_@ xh ,J T  M#EMU@jZ?FH2)'*??@n>?P m>uA` o?u#VlMJl -<lA -PK#TdK2(.K<FZnf>t  t3|>b!F**JRuKJ>U2zGz?@9 ?#>O&Aw@b(Wb)+&r" !$NI#"@#W"6 "\M"b)2;'r",r"/I#11G#`?CopyrigXt (c)020090M0c0os0f21r01a0i0n.0 Al@ 8sBe0e0v-@d@7"BMI#3 76@"!"t1"=ElJ Ul4@AAC 9" =Q A(4#UA!=(^!#?@RXM(0 # g# '?DnMN:U~TR\u5i[HmvQ~X3^w='__ '-~XE:UU . S[ ;;h\gU:U@>wR9o\jZ|K5~XAjai%?@@dQ]^ W-h\_~T9;Tꤲ8?@@)#SpSA?@jK@ ?Nk"V`UY5`bmMh\ly[7 / *?<~X6YxS?LR\cpTqUQ g8oy1 cJQ6YD}uϯ?^&S[vm۶modUQ6Y ~ÀC8[H`K?)K?M~X U@:_L_^_p_DA(G!EM_"_]u?@S.~{>O]UM~1xQDuMuRw?@lփ?@2'>w9Z^|)Sf|u?U35~8q3Du$-@8S,/: CYy$'eisa"+ziM̱iٙI@%!XRGٗ'0UL6t5 0f ٖ_H>x;s \<6x,c @LaFQ #GS XOB UT ~dU @+X![sGe|8 P` (id ch Ak 6o r F֛XWv Hx 5"~ 8#  86h NP W R 3U m 9!UFD  h(^TYYBވUFjZ?F~??x<F BPG(?P } XZ B66  TTTTTTd &!&Y"/&%'D/+6,k&/TȅHBU??/&:& ?B#@L&d2?=8\.Y+8 >sUQ1O6Pq?)(:  0%$gB`.man0ge]m0ntt s0rv2,co0pu03di0t0ibDdt n0twN@rk1ea| 8(SGv6 ߃m `???(:Lpppp wpppp pqp~pqwwqwqwpwqpqqwwqqp pp w. wwwicwqwwwww}Drag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aabjZֿ~??cN׿ mF1??M7{V↑T*J?@ ?UG DF P# h @T(PYY# QU@jZ?@~??F?Pn} u{` ?Su#؍>>HX HlHYHH EO.LO4:UDDXXUllk'"&R",I'U25ĉ%4 ?"u'4b0{N[`:Q1#2T6"!^U9$"3&9"/L6 2&!'ݯ>e@ÿ@qn@?@-fB?mDcFԸ0)Bu/@`҈-1Bu@rCC 5GAB"2Cm9u`u `"[ b!u`%3Qo1o7B`?CopyrigPt0(c)020P90MPc.PosPfRQrPQaPiPn 0Al` XsbePePv,`d/`VPs_SBNcPm_!#5ab4P=`o13dX45CB^8=%3p63dz6z6 v24#%30U'rz3]ge<^AE@ U#5m Hq5twL5t{3t{LEt{t{y {et@!{|tYwm@Ada׃IUBT$1@a@a20)L2163jajaLBA3P1125jb6w 7C |hhE)*dQ8ŔIQIQA11CB!;1XrYqea>!bz1AXE:FG$1 8dT=`XQj2`]r` M`nuPaPt+arp` ?bup` B=ݧ`S,t']p"51m-݁<9orm'Qh>qݏBKT'.mt'xydf@>p{ÿ#ГobZpq [ܒrr$avvvrs{c"`RQoxi16 e5`(bb_ mmbr@ uP`TaS@u._u'U1U2A-b[aahaDauhAaYg6s(P` -u*`}`ᕁ }`ax3R5Y_dn&bpSF3s͵NSYJQbrVC@ړN-e8%dE%'XLqW,@rb:*<Տ`}aahʀYVYn ` %P&S41Ģʢa`NEWOR+Kn2H P}!RȱRISQĢʢĢ ʦio0oŌh^A%'0Uo?č!0ÎoHD # =hj0>T h]]9  5AU@jZ?F͂T??Fx?SF?P6 jt`  o?tk[>(A Vu aSuo.]&A]  *ԮJU2zGzt?@L#&A@bA#z7 5#1bO(b])j+$j&[ "*(w "?& ?AU$l/%B115 `?CopyrigTt (cu)Q02`09Q0uMI0cG0osA0IfO2@1rC0|1aO0iA0n.Q0 WAl0 G8s2Ueo0eG0v0d0"1E]4MŤ-&3 &7&l>]Uhz811U!J!u6?F+\.>djIIa? >"(EǑ I%K9E 5EU . K ;;5QIWEEEF _KnSA?8@@Bu?FDR> ?Nk"\6`bmMM\j=am {:e P> #? D"? 5-g?j4B7!B{oogr57!ibDAbE9 MuX7_'0U~rN!$a)5 5vIzHD # =hj0>T h]]9  qAU@;?FI5K?@xEL?6ѿP6 t`  bm&Qo?t@@L]WI,#u aiuoL> JU2zGzt;?@L?&A@b}#zs q#1b(b)+$&[9#H",ɺ (wH"?& ?A$ /%9#BV1V15 `?CopyrigTt (cu)02`090uM0c0os}0If2|1r01a0i}0n.0 WAl0 8s2Ue0e0v0d0"O1E]S4MŤ-9#b3 b7&l>]Uhzt1.A!JN!m.%-+0djV1ax߃S(FJ-&?F mO"> ?Nk"L[Majnha_:e P> #? BK=o? n-?j4Bs!B{__Wr5s!D8E6V 6?wj_|_ ^XE.U@z T6?F @' d_mOoT \VyWxRkrVo_bVh*g:n"'UaEjz36>CN>?Bn}]zGvN7V iDAbE9 MX+G'0UJPN!4ae5 MaHD # =hj0>T h]]9  U@jpiH?F^?@$?F]F?P6 t`  !a&ao?t,F=۳=u;u auo>J2zGzwt?@ʐLAw@b#z1b](b!).+I.&[-m(?0& ?A$I0/Q%!!5 `?CopyrigTt (c)02`090M 0c 0os0f21r0@1a0i0n.0 Al[0 8s_2e30e 0vq0dS0T"!E]$M-# %'&l>]Uhz!1!JF% djc~YZ(_N9zOMGE%_EH$SwO"K ңHE ^&_8_WE_OqOHOOi&DAbPE9 MX7'0UUfb>!$a % f1jHD # Uh4>T#]]9 M5AU@jZ?FL|+?@?F({~?P6 JuM` ?u JYt )t7zEA2&L_D?. > >tJU2q K?=@MJ&A@-b9(+bG)T+T&J[#"#a?& ?AH?/`)#115 {`?CopyrigTt (c);020G09;0M30c10os+0f92*1r-0f1ai+0n.;0 Al0 18s2eY0e10v0dy0z"!4B#e-?3 7)& b 0K8>U# ]A]A "1!ъ!PzQ <%OYAJEU . K;;\%W%EF($L[.FX5Eai%?F 6?wL;] W-\TB⤲8?F@&SA?F @ ?Nk"L'`bmMW_Ye[ٯ7 VK=F: [jr ? D"? XZvD?ta@Boogr5;!QEx]SiLO MLGXa~WOTZiAle59 XG"'0Uc&N!$05 .HD # =hj0>T h]]9  IAU@K?FOgVb?FY%?Fwᳬ?PJW?>t`  ^Z?t#ə.E @x?r?/{4܂ G _Z+u u$ >  J JpU?43f<!.&P?b3bbfz@1bAe&bq$d 2zGzt.#@LT"&r(~&i$q)(+}'i"~*#81815 `?Co yrigTt (c)o02`09o0Mg0ce0os_0fm2^1r 1am0i_0n.o0 Al0 e8s2e0ee0v0d0"11E]54M-#D3 %D7.&lUh#7 V1#Ai!J# F/?B1B  VRiAAbE9 MX G{W'0U*R2N!I$a {VZUHPD  # #>h0JTpERI MU@u6?Fjc{g&?@%r`5B?Fm_F:Is?HNtQ`  II?t#]  _ii$!`kNu  iu%wj>M JQ T       "@&&JNU2"?H@Qs#N&A@b(bU)++&RNp}#>H1#19 ?#bbbz| R&/5R}#11`?Co0yrig\t (c)02h090M0c0os0f21r0Aa0i0n.0 Al!@ 8s%Be0e0v7@d@21a4t#-}#3 %746lJ#$JUp5 3 M19 1!q(!FnElrkRt# 8$kcD?@숒@)?FP?P"EkU |1\iOT/irvs}i>`_,of :m ,M ?? S&d2? *b?r4B!B oo1gr #5!>%(EQOOOO__FAc1_C_ D4ևS]_o_yRX+{_,__ #R__ (YQoSo+o=osd {oEeooooooFyUy{* hDVW(I X"c7I!pg bf'iMjSE t%XyG|'0UŢŞN!O4i |UGD # hz0TdYYBU@(%)?Fxg^?@0߯H?Fs7Uݹ?P} t` 87?t#_)TeΦu ]ukv  ̝L&UUU&I&3 U!!`?CopyrigPt _(c) 2\W09 M c os f"!r 1a i n}. Al00U (s42e0e uvF0d(0'HS$#-## 'I?k=#ǒ 2j$B##0U'BM3@&@F0Yk} #HA%DKb5DK3DK5DKED$!GiAZG5(|IDFX7yW'&Dŭ6!4YA yVZHD  # =hj4>T!]]>#AU@0߯H?Fz)e??F˞9q?P6 t`z  ?5t# rXѮu)Nu;):O]ע0 &> # " "+"+"+"+" $+"T-J[U7 ??& bA@ 2b4-#2zGzt#+@ Li68!6 ?}; 72U!:B#AA5 5`?CopyrigTt(c)20F@9M2@c.0@os*@f8B)Ar,@eAa8@i*@n. Al@ 0HsBeX@ej0@v@dx@)21"DM-,;?C G& l>]UhzAE!A#!ְ1J`#@{&pz?FUy{?NT,dKj&b&R&M/8T9K-q?F@F?FdG0 >Nk"?YE*]\LThKjfGD&Qhj ?iU3UGe&Y`?@/Jb)h5oWKoWo;èKod}l$ro`nE2K?Fˌ%4G{?F -q? eZR^{|\?6?vodmP}l>MBe 9 N 1iS? 1?grl#51:PO"4ga@Sq(UE^@O|ǐ[`ߡa v2rbA @3ijD&}laqOz o?#WHZ'Qu=*[^N?F]%P?@O&@ c?FаM<n ?` eb0)\(Pfodm}nv}l?V5(?q$Ix[cN#W{ #iA@&QeE9 MX''0UjdN!0 /HD  # =hj0T h]]9 #]AU@}%?FR$,?@6#V?Fc_3֡w?P6 u` ?u#t  3zM%t3ws%.<%H._'B> #PJU2N贁Nw[?@ʐL+&A@wbu](i+bk)%+&p%#4">9"<5!?& ?M#bbb͓z$ p&"/%T%#L1L15 w`?Co yrigTt (c)02`090M{0cy0oKss0f2r1r 1a0is0n.0 Al0 y8s2e0ey0v0d0"E1E(]I4M-%#X3 X7&l*>(UhE j1#$Ac!J`%#@5e$_F??!foA3nBM( V?FJ-R?@HQ??FS!R?P| llHL6VLD5E+v;*AůʙH: 8snP%$? k?Q? \?4_!__WrA5_! R,U3OC@IL?F4~Kz?P)Oy޾ T!]]>#IAU@܋?F2Oa>?@#r`5B?F*ݷ?P6 t`  >B?\oEt# ŖoZu 0Nu;Y:|8>$# JpU>##<?2& ?5bbbz@b#ANi&bu$'h 2N贁N[2$@ LX"D&v(&m$ :;T'm"*B#d1d15 5`?Co yrigTt (c)020090M0c0os0f21r 1a0i0n.0 Al0 8s2e0e0v0d0"]1"a4M-/p3 p72&l>0>Uhh= 1#!eJ`#&FNTM\jh1B,RBM(!JoUy{O_ e@ So4(D@^Tw?F]֝ä ?Nk"?w_KT\T+\_(Kjӷjmplhj -`\TPQE\Uui,St_o u~!ՠXEO9= T?FL?;uQ_Pm"rA @3sjQ1lğ=GoYniAleE9 MX|'w'0Ur^N!M$|A vzHD  # =hj4>T!]]>#IAU@܋?Fj?@2r`5B?F^ݷ?P6 t`  >B?\oEt# 6ΠZu 0Nu;Y~:#&}>0m8>  PJU2N贁Nwk?@ eL&A( 5bM(b[)h+h+$h&#[-M$#?& ?b$Z*'*B#O1O15 5`?CopyrigTt (c)02U0090M~0c|0osv0f2u1rx01a0iv0n}.0 Al0U |8s2e0e|05v0d0"H1P"L4M-/[3 [7&l>0>Uhh= m1#!S!J`#*&FPUy{_?NTMjC1gc RVMʣ(D#@ ![?F"$. ?Nk"W?IKTLTcKjRlhj p=' (*!)i,SO2Kes9T;QEGUFw6qX}__TM7fTZT\Dž}_P^52XOES"rA 0S#Es3iAleE9 MX|$Gxw'0UrIN!4gA xvzHD  # =hj4>T!]]>#!AU@܋?Fc_v?@#r`5B?F*ݷ?P6 t`  >B?\oEt# ap'EZu 0Nu;Y:|$># BJpU>#͙;? & ?5bbbz@}bAA& K&@ 2zGzt?"K@ L0"&N(bM)+TK/8Z*B<1<15 5`?CoyrigTt (c)s02009s0Mk0ci0osc0fq2b1r1aq0ic0n.s0 Al0 i8s2e0ei0v0d0b"5194M-t/H3 H7T &l>(>UhE=3Z1#E!J!FENTMjN@1h(NoUy{OO e@ o)4(D@^Tw?F]֝ä ?Nk"?'_KD3\T+\(Kj?ӷjmlhj P\ DiAlePsI=MXsG'0UzbZ6N!%$0 sFEjHD  # =hj8>T! ]]>#!AU@܋?F*?@#r`5BW?Fw?P6 t`  >B? \Et#տ|u l4RQu?]>I$>I# JpU>͙#<?& ?9bbbz@b#AE&bQ$$D 2zG[zt#@ L4"&R(^&I$Q)+]'I"^*Bh{.M#To1o15 9`?CoyrigTtk(c)k2009kM0c0os0f21r1a0i0n.k Al0 8s2e0e0v@d0f"h1l4M-:?{3 %{7&l>(>UhE= `51#I!J49fAn^ R)X f"B!Jui,SG?RSlOS u~!N]8-19= T?FL;uQ ?Nk"?YVTQRXQOnğ/=i n (\ wTiAaePE9 MXLg'0UbZiN!)$0 Lf`jUGD # hz4TYYT#B#U@f?FjK?@瘛?F1.?ٺ?P} u` ?ut#nW/8d`<Lg<`9ft99b<!9f"9#9f&9&'9f&(9(&)9<&.9P&P&/9n&*9&(.88LL``tt&&&&(&(&J<&<&P/b(n&n&&&t : zBtBIE GeroBE$G?3龅U~0UB?@4sF}CAAJSB`?CopyrigPt(}c; 200P9MPcPo%sPf"RQrPOQUa"PiPnO WAljP XsnRUeBPePvPdO"kBADtCB-}CC EGC=}DFtC dVV $RtDe\^RdYQ qd*a!gtEd8HjUdd{|dh{Sft{ah{ah{ah{ah{ah{ahkah!{ah!{tah(!{edh ,J T  M#EMU@jZ?F??Fĩ!3ܾ?P m>uA` o?u#jpMp -<p=PKA -dK#hxK2(.K<FZn>t,  t"lgyPb;!Fi&d2u!J>U2zGz?@9 g#>w&A@b(b)+&" !$NFq#2h#".6 "M"b)Z;'"i,"/*q#11o#`?CopyrigXt (c)020@90M0c.0os0f21r0$Aa0i0n.0 Al?@ 8sCBe@ej0vU@d7@_"ŤBMq#3 b7.6h"P&0"tY"eElJpYUl@{OX(QYuq'`0\q ٬\:SضX,Qp? X̏ ,MgX0QYŞ6ex`WYBaZuU4QY[S FP\ߴ_\16 4X8Qo џ 4WTX&tqYˣhMGX]}/s]GwXHQYt@tԚ?Fu\ɢ|~\oDlQLQ¿԰:G޿ ˘~XPU~U%BUT__ZAA(GE]T_f_[}u?Fʢ \9=Ŭ\G_ԑuQuucߟ?@ml?F=^`> P+CzOOߎf] B]$嗿<Љq3ux5@4Sa/JYԹ6TfJ'e0k?iMiIh%1X|zG'0U]1.650/ (HD # =h#4>T#3 >U@Ac?FO|_D?@ !?Foצ ?P6 u` ?u >,2t  f?5dLtW1qcRH_Axcl^?kJ2N贁Nk?W@ LA@b ++b )'+'&񉄉ԑ"?& ?A' !zR @$)$)/J%B 31315 `?CopyrigTt (wc)j020v09j0Mb0c`0o%sZ0fh2Y1r\01uah0iZ0n.j0_ Al0 `8Us2e0e`0v0 d0,1(04M-_/?3K ?7&l> 0>Uhh= Q1Zb!!J`F9A,2 %,VMS(Jt= OMmѱQ~%+UD_!OSUE^8__ {GzoXb52O;"rAQ 0#Qc3iAleE9 MXG'0Ub-N!R$KAB5 fjHD # =hj4>T]]>U@CC?Fd?@?FԬVq?P6 u` ?)u hAk,2t  Rg(LtW\jwS}ժcRV]clMJ2N贁Nk?@ LA@]b +Wb )'+'&𩆑;"?& ?A' !zR @$I)$)/J%B31315 `?CopyrigTt (c)j020v09j0Mb0c`0oKsZ0fh2Y1r\01ah0iZ0n.j0 Al0 `8s2e0e`0v0d0,1P04M-_/?3 ?7&l>0>Uhh= Q1b!!J`Fuz T ʼ)UB ,VMS(UjExK?DZ/`D%Q~%+U\bHNOkTI?$i|UE+Ugr?F9Y7TRY_DU52OE"rA 0#Qc3iAleE9 MXG}'0Ub-N!$KAB5 fjHD # =hj4>T]]>!AU@0M,?F (Q!?@2"\?F21기?P6 mu` o?u $lAl 1@,2<UJt  gttqzh&vJU? & ?Ab5"z@AA 6$>)ub ^(6 D#@ D2N߁Nk?@ L&^(+bl)+y&s,d"y*BB[1[15 `?CopyrigTt (c])020090uM0c0os0If21r01a0i0n.0 WAl0 8s2Ue0e0v0d0T1X4M-/g3 g7 &l>0>Uhh= y1!d!J`@"G3?F9;<#R<M(!A|jL, I%% [F?gGQ%SUl"F?F7K^5˖Q YEQCUESUF]k_T Y0ħ[HOMTb^?FWȬs рY+ d"rA 0#c<Fl~rl r!}iA2gE9 MX0G'0U*arUN!%$sAj5 v,zHDJ # =h#4>T#3 >BU@m?Fyg!B?@u>71?F!A0d6u?P6 u` ?iu >k,2t  eypLtWVcRB )clOODJ? ?Ab "z@A $)Mb 6( # D2N߁Nk?@ L&6(+bD)+Q&K,J<"Q*31315 `?CopyrigTt (c)j020v09j0Mb0c`0osZ0fh2Y1r\01ah0iZ0n.j0 Al0 `8s2e0e`0v0d0,104MB-k/?3 ?7l>0>UhhE= Q1n!T#3 >U@rڌ?FlUM?@MX?FI?P6 u` ?u >,2t  ?ou mLtWWcR$_˟clɽJw? ?Ab "zG@A $)]Mb6( # 2N贁Nk?V@ L\&6(bD)+QQ&K,<"Q*B31315 `?CopyrigTt (c)j020v09j0Mb0c`0oKsZ0fh2Y1r\01ah0iZ0n.j0 Al0 `8s2e0e`0v0d0,1P04M-k/?3 ?7l>0>Uhh= Q1n!T]]>TU@n2L?FIҮ?@y“:K?F[dg?P6 u` ?Mu [>,2t  K4LtWc4cR^rCcl{STJ?0 ?Ab "z@A $Һ)Mb6(@ # 2N贁Nk?@ L&6(bD)+Q&K,<"Q*T31315 `?CopyrigTt (c)j020v09j0Mb0c.`0osZ0fh2Y1r\01ah0iZ0n.j0 Al0 `8s2e0ej`0v0d0,1E04M-,k/?3 ?7l>#aUh[3 A Q1n!sXE/U8όKBI .O"tW/U{ؔG\b# aio?p0sX2O;<"rA (0#c3q_(RAeoiAVAeP$59 MXG'0U_r-N!0 B5 v*zHDJ # =h#4>T(#3 >U@ҙK?F<;H?@jB?FEk9?Pn6 u{` ?Su  A,2t  ןG}LtWҤcRMNcl?\zՆJ;? ?Ab "z@A $).Mb6( # 酑2N贁Nk?+@ L&6(bD)+(Q&K,<"Q*31315 `?CopyrigTt (c)j020v09j0Mb0c`0oKsZ0fh2Y1r\01ah0iZ0n.j0 Al0 `8s2e0e`0v0d0,1E(04M-k/?3K ?7l> 0>Uhh= Q1Zn!T]]>!AU@ꪓH|?Fto?@P"?F%dݳ?P6 mu` o?u $!>2 1@,2<UJt  ghttb뽘)ub^(6 D#@ 2N迴Nk?@ L&^(Wbl)+y&Ts,d"y*B[1[15 `?CopyrigTt (c)020090M0c0os0f21r01a0i0n.0 Al0 8s2e0e0v0d0T1X4M-/g3 %g7 &l>#aUh[3 A]@ y1!d!J`&F?ޓ, W_rv J<'R<M(!kuϢ?FK!TBKQ%WUZ&L#\ = GZɛXEWU8(?/&?F9I'\]\WHOC@}?F,^ рYZ+ d"rA 0#c֪J~V(L ~A ׻XWU8TL)?Fj;KL~\M2aiA~AeE9 MX0G}'0UrUN2(!0j5 svzHD # =hj4>T]]>U@gr?F^i`?@?Fyrq?P6 u` ?iu ">k,2t  !LtW( UcR]cl ;_@J2N贁Nk?*<@ LA@wbb ) + + &D  ") ?A !EzR @$)R$ )/J%B31315 `?CopyrigTt (c)j020v09j0Mb0c`0osZ0fh2Y1r\01ah0iZ0n.j0 Al0 `8s2e0e`0v0d0,104M-_/?3 %?7&l>0>Uhh= Q1b!-!J`[F%),2 ,VMыS(K=_LD^^PCűQ~%+U9IS_JUE+UF XOO ڕ]oX52OE"rA 0#Qc3iAleE9 MXG}'0Ub-N!$KAB5 fjUGD # hz0TdYYBIU@a ?Ftnm?@Me?FpWe`ݷ?P} mu` o?u#8#5$+4%5HU$*44HHt  g t3 at?Ы O` *0U"?҃@&T #M!M!`?CopyrigPt (c) 2\09 M| cz ost f"s!rv !a it n. Al z(s"e ez v d F!3YJ$#$- #Y# Y'#^ B= #Z&#l4G6PG6 C2$e^.317;( #HH1|H44Gi^P5 1&X"7.EG'$G6%!@4] EFYJUHuDh#" # J#UU U UUA>a0JTaaMU@Me̷?Fk ?@N?F0Cꮷ,"7?P AtQ`  7?`t#jn \v\fw"MGwugoquo$Kt2zG/z?@Q#+&A8 b*](i+i+i&)j#3$(Qc"bk)+'Rp7171{`?Copyrig}tn(c)n]209nMf0]cd0os^0fl2R]1r`01a# i^0n.n AUl0 d8s2e0ed0v0d0@"01Y44-C3 C7$&lU@U1#A(:!F?SD [6yw(E ?F{ŦL.D;\I`H3E^?FpJ"MC=\C"qoI5Eo9?F(bȵLvF=\#bJFHOOOO@DQKO]OoOOOOf??Fޝ,lCۆ=\)?4=(Of`ẏ?FC+mR)=\/b@QS_fFȄ?F7qm ~=\76ԡy]4։U?F*t,lI=\oooo ?E#goyooooo/?F:}W=\wzfu=pӣ?F߼<,l-~Ȩ]p|y^]x?F}+*y=\+ 3]X0l?F-Zߣh,l Bߒa=\ vl%?EYˏݏfO/?FI42,llHJ|=\HN4f:f?F`\},l>x싟f~?F3x!##E=\J&)O]챘?F/8-k%mSp=\< 2DBB]ǯٯ~S*|ǾȰq~Fn)`]]c֦]L½r]7rG2=\`_g@P 4?F8^d=\he]|J%%D2Vthz1hV~=\K m0BTfCAſ+i /НJ+mV.c|~kdny].!̛ ?FW,lJ(Jd0(fä j[+mޣ =\_?ny]~"2!GD= bY~=\6y@ mL^pCA .i}-|{zv,l3  4f #[tU?Fߞp=,l0ϓpBKg嵿?FdNw:{QBb?ɣ]gۼ?F5̅h.fQ[Ϡ mhzCA&8J 7?FG1^}a aB Kf?F@;,l^s};]K_dШ&?FfOBl?w2OKNe9@?+o)F?{qOCw_PvI4~=z2m?Gm}>ID ___Z1 (_:_L_^_p__H>ho 2 DVhzHMgz?FC_߯():?1ZSGbZ2@ҽw]6<730b837SI|~"RM?L2]-m?Fq,cɥ~)̲1%]? FZ ҟ2 `rѩ]/U Bkn|)<|4];-@uvzwWPFMǕDGt{GI"MqcB߀~@6?HPͿ]M+T/]-$A#8FNL /Y-m$+|*1 |Ŀֿ~ѩ'Z?s =-B^l?2UzVs0~ԦLnQ ~덧쭕g8A}2!"M 2:2?ְqBYZ$@SK]-?FkL}-.zus1v8 .@2ߪ߼ѩ|[s(^lU }J\!Omy͹?F$зX-R P"M^b=-s ,G4,c^lX I6g ]-BS3>-U,-A -,>Pb 1Ԧ(?F~^lAw,?Q7ZьkP?F=S~-sj3jK~)4~"M`dqhY W-߇4ĭɫ)^v 0$3^l0}S1Ix@YpB/T/f/x/"R//*/ѩ??FTmȵ^l5rЯLjوWjFQ/Zyk?F|X"\=De9gs jEo9 ^80>~sMY/|=?t۶ I4TSx?F/doM~^l ONQZW`@?[OmOOO;u??O"O4OFO??FhWy?0WvOo-uѣOd[?FSҮ- ]gWy, l Sz?Fl}WmxZWQ灝in]\h?F.j.\=/I Wdvdp_zooooboo,o>oPoboѩm4p=u_0S}Ÿj8>4W[դ?F:mq_Wş|g #Z?F'[=ݛ}T r=lfa4J0-p/"_flȏr$6HZl~ѩ;h4=(V.@ ʯܯa@Rdv`j^l8g Uw*$B_.nV?F" }"SqN̎?F-;u6D!FA\Y] œ1g ^~SI6? r1 b\nϒϤ϶`kx7|>@|SA-:N^{a*0An?F~ _1ZA}2!g-О?F\b F! qZtq*s 1Mm#)*:ݧ#VْG%E\־ |)߽BJx;mmMQs~߯X9Y Z}l@/P N?M/?1?C?U?U!///// ?7 ;{?Ft\,;) q~-a.d?~A3U'3҈>}>/Eܑp%ߠߤ@^^l{;HkOQ ҠO\ۼ?Fߙ4zf]ziO;_M___q_OOO__&_juW/?Fia~Ia{pU߀_~ Z lS;܃(Siri`RriZ;ӱhsm2Ca6.o&s ?F~f(;EyoIs6\aoZl~:oo 0BzP1c/?FAd)? |hAقUYܙK?FxtQمwPIr2] ~€+Xy'MፍǃaM*2S%ʰ?F+#f~;-a~p}|b:ѧ`vXT 3T %iX3ha TaPaMYU@?F{dܫ?@B?Fx?PM]tQ`  -F7?t#UY~PUu0"u;(,\"b&hUt}2zGz?@dQ#&A b(++&Y}/SV0$38?b`4z */!"!f2$R}11`?Copyriug t(cU 09M0]c0os0f2R1r0!Aa i0un Al<@U 8s@Be@e0vR@d21Y%4e3K 756lU)U4FX1#A2%!Gj0?F73W00"6#8$}-%L#1O)߰=! 8@U$h?FTۜX\rNj$n\B.PXX3@U xQwv&5}X\:"^?5&^,!UnE@UO/NPY[||m]P5Wh@_R_d_v_DQOOO __-_f/,?FRal_`[]lS_fV>ս?F)b rlS3le£ϲ_fq l+{ ~W2ofG Dv~iqhCs}6n~#coo[mE#o%7If[v6/?F2l+|lTCf% ?F92mXlp )B&ur7f}ܑ]{}k ~Xą=mg?]̧lHWg#tdf߻mAY /ASefWc{?Fu]S䱴ls :Llgu伟flo gU?F;^U=lChlx-jfF^eۙq~j0xi|m~c&Mz?lG6OɿE]+=Oas8,ǿ?l:<]izT}ۿ~*P?F=|{FlqHlο:.2~DB'ǘ}l5(3V߆ϾfD ыh殴li7>-I<̾ϲBbGYk}ߏGM~}?FF*.^/ͼi?oߛfu?Ff l3Mi[ KP~0굂c}lOF?آロfIӂr=Eldݠ_\B\n"w\㾥P8bnnE]<0j]SEj`B^ݷk. ρV̲_#u悔&ƀ ܠ\mmElxY=mu1~!Ii)\mz^.P/كYm//&*Ax"x$qQ} F4D2}{=yM].u #q2}~s}z0N?lWU$?μǵF!i}߶bܑ!n@垇D}LnXXt~#ViԂ,iߝXQ b4Oq>ad䅔tnR)u@o0oBoTon _____ o"u2$j1}Xι_!eΟ`?7-:ܐ9Ri>DYH-#Gߍ=ԑ4MXjQ9Ef׹ tt}k͟in?S(:L^pn &*~]JB&u¥ G48Ġ7-a#|GgS>a8|I>3; nP#bWU6mȧ .ֹc`}l:2?xuTѺVhzn 0B=M#p0}!:rd Q%- qOj 7-Vsb: u>O9e>(xx&?FgH??[WvpLQ?M9 Ԣ1/!ﰳm 7xzNªJrτϖϨn (:L^sjJ^/0ЧIs*!\ٖ o5|OF ȷӸ@`?F/ ߃7\!\ψf+!"p@)-_!\?$”Mގ#q|f@LS`8}!\߬BĪ&Zf<1ߒ2 2DVhz=U[[0m{TfP7-^u,b%:k#ԍ?FȘ!\(V!I/iUBg78;L5?Qcuӵ3@?F:Ě ],‰L?L/LY!ԣ?FRs;=w] PʉL?^+UϰGIm߲E,1u5w]LK>P#XrO?? vnj!\Zz -~X@////UX/j/|////=R?FQJ<}A{ХloZ ?@lsچk?Fp"mI鴡si}/q2 ym9HQ em\\g^rBt@|? [úA'5r?#7-oo#5ߕoooooo=zg?Fzl) Ud4I堹> /k͹?FV{<˽h4GX'1rn=["jyN%.:PɟLIUw ~#Q)9=Syeӄ0_6=6LTL=Us|9ks}ߵX5>2f$~1b?Uw0'/N`%;M p4~mmo7o 9Q5:+G(j=?=;J?1OnN&4'9K]Vv*RQxR]6g^ɣ|Zk%O!QڑQ^^h?g^j^}_Txk|j~WmVo@?xp >eBcN#c G!Tx5Pm|LGf.Q,ojF.@RdvSzL``qn ~GA>~wz^gqҕim~x$gK>~ V2wTx"dQᆠA(Os:!nLĥlqNCyQӫKcAahG}6ZSN?H????fF1;?M?_?q???Vv|&5}7@R"oPiyK> k#>ġ"}?A |M-¿t6j`~r_QW44zaqYX8Tȴ߯~n߻d ____T_f_x____ Y<,2?(rݾW1[̵yѿ㸗_go4͵S62M\{Qo^~(Z&T!+<5&s pBr~y>08x޻ ϛCE/RuCQݞ%~޽3]Fb?F?|~퀶5 ~ 趒;پQtoqΣ6 ޻֮Ǹ) 1Ÿԟ)e]+akDH~6 WMw׭K,@&"c?F'%|6 ξi@a > <ŗ&8`kb|-~ 6  s??BD&m/V%߇6 b3hD5^E);M̿޿Ͼ)`]|i!x899|/*a|>5i=ϭ,?F#6 K.5> ս5|[ݍvϒe*y34ݶJA)=`2DVh j@?F-/g ?hA\)/N/U?FM2e-j X*?v(N })2-OrYQ-~.Tk )\}/'?^qq|*=3laz ~} 4}ס@Rdv22(:)*?FN !kyMdFq&w^I/(Y[?Fߧ!Ma#Jh|ϻ/x9P8!il{mM{G~.2:O˕BĈy!" _뼙-Y` k/}///KU/ /2/D/V/4^F?}e_mu? y/X /?Fjnǚq7}? D?Ɗx^o߾AytÉmA~ ^{yoQfAYvӗ-ׂoNZc?OOOOgu O*O~gL<7@p?ʼn@-1ş9p6=n?FQ>~:B !~ ޾UC?i^Jak{_f/˲p6J%V{垇͉}1JMZ ۯ#l~Ư4ʩ݆!~ cx|[) T@ Ѳg.Kn>$?{nIn880ߊfr2Yp=ȓ }UptCE_}lB~?h,,$ϚϬm9eG\'1rth|~1=9zsg-?Ubw;]9 _Y*'1`-LI@0goSy?o7x>PEu{ X~=8+m?ɼ7)}^E"S0 }٫i)}.@R%m9Y; dA Z8M]Y ]V6yY+t8skA rM#\$Sp!_n8$Ye#=]*}_I}4I H~`]ت]~| .ʗjri_.@RdF&|m9;q;gi}I߂h(}(Uϯz5y+[Bq}X~v"x>?0~1>4W *wFI.i}A0p}} &N{*y/ K?]?o??+e'//??$?6?MIbLR$UFײ;nC -+}IDQ$Օi}-HsC V2wYNHCw?F3kDjt!eJ }=Zܵ|#aOQcܝw~BnW؜p f_x___F(O __._@_R_MIst@xAOK~` f ͹+ixrݧJQp~[̵yvOGo?Flg6uMh ٘]oSC`qb?':^Bo}^~^?>Dp$ςb)&8J\nMImc@xgAx+_f{&34'Hee÷@%|~g܂HV <|PFXdTX׊ćgߩXQ#֟7$zLvPFBrX}g$Zg̞Rש<͏ß՟*0BTfxMIߵ.W_=%eiJz#Ms2,MD_c|T%#5JLYXD?F5hFg y@8|ѕSCw]&.mᕼA?鯻Ϳ߿+L^pP>FS`D0 e4Z>+-G_SCa\0І?FKȝ ǶH ~%aWNwZ=!/OG#b q1{~! tIWxa@$,"-MIkO/?F|R |~A&'A;߯bc @``5('Mh-nf=!SCrRat!2vIgn/=gyzu  jf&q#=-uS),/*/NR<btB1*<|N t!ߡ..Nsz9_-ֽ'}.<94o._/?{iPא5] HV:;$HĠ﬉ қZ?nBӭ_2"4FXj ErT@y}Mo 6N?PJY_-_`o颾Mn;NOqȝR?FOZ|<;QaA1b;oIaWW6/H]ToY?vbgCt_Ϭz3,>PbtφϞ m9`Xizh \~wKVaϤ~gPϐsY6i&vb8l5' f EXe]/; ^bAߡqEiK )~E?H{=߷4HZl~-Yf"b }h 0JTlaHaMCMU@Kk?FVٖ?@uW< ?FY鷺?P >uA` ?u &J2A:2,t  #)taN_"舺m\pmv*IJ>U2zGz?@UL?A>A@Wb#q)!?(b'=&Nm ?0& ?M "b?)'7,I! O'11`?CopyrigXt (c)902d0990M10c/0oKs)0f72(1r+0d1a70i)0n.90 Al0 /8s2eW0e/0v0dw0!(]$B-3 7&lJaUl~ 1l !`@9  颥 nw&. ʙF,2 FFՋN@DW9_k7BLL␕U?A%E?AL9C=QIDZB3>X5EER_`y5qLWO ]7@D>XE2OE#rM) 0 " c3AAO(O:OLO^OpOFF&(LKSoW N L Od]uvx?FZl6>LI3nZձL)LA_x1ur/ fLP $e'Hٰ_FfIXDoo p_Uoi &kpiMf5kiX7!'0Uʂ>$e5 UH luD( " # #Aha0JTaaMQU@Ad{?FdT#3 >5AU@c^?F`Ld?@9x(g?F_Uw?P6 u` ?u .6(>2Q 1@;,2<_Jt  N3 trBNٟ,PޟbX"; JU2N贁Nk?@ʄ L&A@bu9(E+bG)%c+c&# #!!5 `?CopyrigTt (wc)020 090M c o%s f"!r +1ua i n.0_ AlF0 (UsJ2e0e v\0 d>0!E$M[#!2?06 ?AN$)e/%-/#K '6l> 2UhE=%!?!J!(NѠuOO u(:@¤̥?FbP;?PEB GݐAY1&YMAJFHe׵B `,a,[ /? :7i? >y4vʚ?rJ5;!:_o#ga@^AOiAlerI=MuXG_'0Ub5N!40% rFjUHLuD" # R>h0JT#3 _aRMC5MU@u{v?F ??F];\zظ?P >uA` ?u .)J2 1@;,2<_J>t  w?t&9W`ݟu㵩OJ[>U $?& ?MbA@D"J&N#y!y!`?CopyrigXt (c) 2d09 M c o%s f"!r !ua i n. _ Al (Us"e e v 0 d r!]$v$-## '&zBt#2q0[?"@9 q>6M(bL)J/8Y*lJ.-$U#8APAa A =!4Q1D!1A9 {?F%@ 0nCϿMnNEuýL9%K FH(5N?:G_&_ RHE5E#f/?FR=JvK ϽLQ ELxAEE^]R__ *HE8,;@ƫn~LnzdKL5rdXHsA8#5 뇯/tH@ED@/GpOc#?P-DT! рY?!IO F_}]~3v!9$e% UGD # hz0TdYYBqU@UJm?FBO ?@IxJC?F+9lbݠ?P} mu` o?u#L*5-+4,5HS+5\$*U44HH\\t  j@g> t~pm J)4 {ו' -U;!;! "`?CopyrigPt (c)r ]2\09r Mj ]ch osb fp"Ra!rd !ap ib n.r AUl h(s"e eh v d #"4#S8$,#4G# &G'?=5#H&,#Z45656 12,$B#5#05U253@+& $^ #E K5 5#\HA%$DH /KK5$D4/GiA^K5 6X7G'4Ŕ56!.4] FJHD* # =hj0>Th]]>]AU@ ąMu?F*]!?@v$?Fu?P6 u` ?iut  Dm%t3._袋%.0I~$%UHSB+> PJlU?B& ?AuA@o +bs(b$%#2zGz?+"@ L&s#v ##zu s/ 5&,J2*%#c1c15 w`?CopyrigTt (c)02`090M0c0os0f21r01a0i0n.0 KA# l07s2Ue0e0v0d0"\1E]`4MŤ-%#o3 o7B&$!A]UhzA 11J`%#@frq?F ["(M(!T?FyIRaZL\m۶mQ8ϐ?F@$mZK\٩?F}e?P,DT! VрYc!ITB M~E'QY5a XȞv/ ,^$ Ui[? RRT*?r.5 1:Oo aosg4 1"KUE[UF5sRŐO_ <tf ?@Gui&PbE9 M5X8G+"!'0UE]N!R]$ar5 vUHLuD*" # R>h-4JTaTa9 JB>U@@(/&?F94;??FIRaZ?P>uA` ?u>t   e~27-t!;E]t-6-P\E`,J%EJff? ?Mdb"z@A }$)1b:( #>!f!?X(d, P酑2N贁Nk@9 ^"&:(+!D:/ 5;T'2U&Ra1a1`?CopyrigXt (c)020090M0c0os0f21r01a0i0n.0 Al0 8s2e0e0v0d0"Z1E^4-/m3 m7lJ0JUllI 1!1` C  /VN!b͉(O"TYURIUD%YU+u7tYF_QER5:MT?7 T [Nё\#CTAE2OEv2rM $Fyc"mA$zG %I OUOYU`fsRsŠq_ _ wT#3 >U@+(/&?F94;??FIRaZw?P6 u` ?u t  <~2)t7E]tU)2)LXE\->J2N迴Nk?+@ LA@{b +b )'+'&D*!!5 {`?CopyrigTt (c) 2U0 9 M c os f"!rԶ !a i n}. Al 0U (s2e e 5v 0d0M"!E$M[h2?6 ?$A$)/J%,b,# '6l>(>UhE=~%!6!JXS(xNWOO D QH~%xE9OAOAiAle6I=MX7'0UjR>!40% 6FZHD:  # ;h0>T@h]]9 BIAU@Y"2?F h?F\9?F_X*qw?P68Rw?>u` ?u$.>. V- (.8:Q [t  !g?t{Yu?pvMl{~ݕvs5Q!fJU2N贁N[R?@L&A@bI(b*W)U+U+U&񩆍y#? (<!J ?%MP?AO"d+b Y)(u/%*B#A1A15 `?Cop rigTt cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4M-#M3 M7#lUh/#7 _1AO!J # F qBd V(R iAb59 MXGW'2WUQ;N!R$aP5 VM&#HD # =hj8>T! ]]9 UqAU@c^?F`Ld?@D6 5D?6Hb?b06]DN`lt   ?N t!rBN,_PaX"; jJU #<nH!A?^%Y ?Ab^ @$bbbz #"b#$"b$ 2N_Nk?<@L&(&$%" ;'"!*@!A#BBhy?H *A#115 "`?CopyrigTtk(wc)k20@9kM@c@o%s0fB1r05Aua@i0n.kU ] lP@ HsTBUe(@e@vf@dH@/"14M-?3 7#l>]Uhz11!J`A#@SfVo?FnOo0  d" ΄ ť^R^M(!`ZQaSt__ Cƣ8-$Րj8:ۦ?@u-{?FrgY?PC d f"Y!Y1a ]D_;s ˿}nE>0F # ZOB Q ~dxϽo@+觎o[sGCY_. fX  ? u l X _G F֛# %# 6)Y +[ .  7 NH  P8^ $? B//'/ (y PX6Hapxc}1oeg.i Qk^(Eq#J&IKXMLVpY9H_d(b%K=fiulHAJo1UFD  h(^TYYB UFjZ?F~??x<F BPG(?P } X ]B66]  TTUTTT9T9ȴHBU?Q?G ?B@L&ɯd2?6-G(?\.Y(7. sU!}&/) *%  0eB`-ecom0er 0eW,s2v2, 4put$4dui0t0ib24ud0n0tw 0rk!% ^| (S G& q?%7I???"" wp ""ppqwqqwqw^qpi ppwpw)wwwqqd^wqp~wwwwwyDrag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aabjZֿ~??cN׿ mF1??%!{V↑T*J?@ ?UG DF P# h @T(PYY# [U@jZ?@~?tP} u` ?u#2>D>HX DHlHYHH EEdR.؍>DDXXllRu'9h",'US2&5/4&3 ?"'4Wb0{['`:[1#26"d^Q_9$7&9"/L6 2&!'ݯ>o@ÿ@qx@?@-pB?wDmF03Bu9@`҈-1Bu@r#CC5",CAB2Cm9u`u `"[ b!u`/3Qy1y7B`?CopyrigPt0(c)020P90MPc.PosPfRQrPaaPiPn 0Al ` Xs$bePePv6`d/`VPs_SBNcPm_!#5P8k` 8Fay1&3db4&5܀MB=/3z6&3d66 2&4#/30U1r3]%ge<^AE U#"&5m Hq&5twV5t{3t{VEt{t{y {etd{|tY wmda*V_BTAJa$Ja&203V21@3 2MVB3Z1125tb6 7$C|èEhhPÓnQ*ϔtataAPꓰMB111;@cqcqba>*Ab1%EQF^.1XA#8dTG`XQy`])r` M`WnuPaPt5arFaiQ` WEqiPm6`nPvd{V5QX]1PRd*ơ ]`ue`bͯ߯@30! P`r@RdSH@ȱ]C5D6bQ۱eʿܿ{"\ ϬAP9a:B`諸75^ϖϬ% S:bi`#aweT ߬ぶLPchCekT}ߏBalB`i`g̨9@߮,RPoڂ|EZ\@ =phDBU T)?ar0TPpVrKB` B`sR;IY`A Y`Q@;bmr:PeExab!gD"qQr2w`ijJSCC ` TsR\͒kXV` ?ON`1ڒBkfHZSbY`|` E@cqTZ Nwbk4qa+.2`f dDIpadB`5cϐT)nĺs kx/0/(mTa t f?a ];a£|v///ő R pa/a@/?(/0?>/M`Cs?5?'U+pu"tPf!?BkQO)O"f=OiODOkvOOKHdBQ#CġRC<` Wm!wV_*_ Cg0ar__yi_'`M@mi2n__v"kpo$o8KOB%fy"FaPoboj qt1dw:1NvcU@jZ?@ű? _v pBup` ?}rup`  B=ݐpj,U>(p5$j-T^u*uq, ST1.s1'xAMw>ÿ$revK ˆeGrςłˆTς߆L2`R"oUK=e2j"rb ggbr-}@"Wbrgu``dv~jc 4F[_c@-->A>Bj(@yL1L1*Z{­q qqqcҴQ:ai6“`k`!uA`aż@q@ʇ{„S5_&ﲄПF3s͵N?SYFy 邉f@ H8W{H5WH`Yc|ag,@ BQр0Bf_q_qʷifz!` %.P&4odAA_qNNTWOWRKeH0PRf1RRI%SQ"it!̔=GQW'70U? 10a?ƕHD # =hj0>T h]]9  5AU@jZ?@͂T??@x?SF?P6 jt`  o?tk[>(A Vu aSuo.]&A]  *ԮJU2zGzt?@L#&A@bA#z7 5#1bO(b])j+$j&[ "*(w "?& ?AU$l/%B115 `?CopyrigTt (cu)Q02`09Q0uMI0cG0osA0IfO2@1rC0|1aO0iA0n.Q0 WAl0 G8s2Ueo0eG0v0d0"1E]4MŤ-&3 &7&l>]Uhz811U!J!u6?@+\.>djIIa? >"(EǑ I%K9E 5EU . K ;;5QIWEEE@ _KnSA?8@VBu?@DR> ?Nk"\6`ObmMM\j=am {:e 뇿P> #? D"? 5-gg?j47!B{oogrK57!ibDAbE9 MX7'0U~rN!R$a)5 5vIzHD # =hj0>T h]]9  qAU@;?@J5K?@xEL?6ѿP6 t`  bm&Qo?t~@@L]WI,#u auoL> @JU2zGzt?@L?&A@b}#zts q#1b(Wb)+&[9#H",ɺ (;H"?&L ?A$ /R%9#V1V15 `?CopyrigTt (c)02`090M0c0os}0f2|1r01a0i}0n.0 Al0 8s2e0e0v0d0"O1E]S4Mb-9#b3 b7I&l>]Uhzt1.AF!JN!n.%-+0rdjV1ax߃)(@K-&?@ mO"> ?Nk"PL[Majnha_:e 뇿P> #? BK=o? n-g?j4s!B{__Wr5s!D8E6V 6?wj_|_ ^XE.U6Vz T6?@ @ d_mOoT ݬ\VyWxRkrVo_bVh*g:n"'UaEjz36>C~N>?Bn]_zGvN7ViDAbE9 MX+G'0UPN!R4ae5 MaHD # =hj0>T h]]9  U@jpiH?@^?@$?@]F?P6 t`  !a&ao?t,F=۳=u;u auo>J2zGzwt?@ʐLAw@b#z1b](b!).+I.&[-m(?0& ?A$I0/Q%!!5 `?CopyrigTt (c)02`090M 0c 0os0f21r0@1a0i0n.0 Al[0 8s_2e30e 0vq0dS0T"!E]$M-# %'&l>]Uhz!1!J@% djc~YZ(_N9zOMGE%_EH$SwO"K ңHE ^&_8_WE_OqOHOOi&DAbPE9 MX7'0UUfb>!$a % f1jHD # Uh4>T#]]9 M5AU@jZ?@L|+?@?@({~?P6 JuM` ?u JYt )t7zEA2&L_D?. > >tJU2q K?=@MJ&A@-b9(+bG)T+T&J[#"#a?& ?AH?/`)#115 {`?CopyrigTt (c);020G09;0M30c10os+0f92*1r-0f1ai+0n.;0 Al0 18s2eY0e10v0dy0z"!4B#e-?3 7)& b 0K8>U# ]A]A "1!ъ!PzQ <%OYAJEU . K;;\%W%E@($L[.FX5Eai%?@ 6?wL;] W-\TB⤲8?W&SA?@ @ ?Nk"L'`bmMW_Ye[7 VK=F: [jr ? D"? X?ZvD?a@Boogr5;!QEؿx]SiLO MLXa~WOTZiAle59 XG"'0Ujc&N!$05 .HD # =hj0>T h]]9  IAU@K?@OgVb?@O?@X5?PJW?>t`  ^Z?t#ə.b?T@[ u?/CG<_Z+u u$ >  J JpU?43f<!.&P?b3bbfz@1bAe&bq$d 2zGzt.#@LT"&r(~&i$q)(+}'i"~*#81815 `?Co yrigTt (c)o02`09o0Mg0ce0os_0fm2^1r 1am0i_0n.o0 Al0 e8s2e0ee0v0d0"11E]54M-#D3 %D7.&lUh#7 V1#Ai!J# F/?B1B  VRiAAbE9 MX G{W'0U*R2N!I$a {VZUHPD  # #>h0JTpERI MU@u6?@ic{g&?@%r`5B?@n_F:Is?HNtQ`  II?t#\  _ii$"`kNu  iu%wj>M JQ T       "@&&JNU2"?H@Qs#N&A@b(bU)++&RNp}#>H1#19 ?#bbbz| R&/5R}#11`?Co0yrig\t (c)02h090M0c0os0f21r0Aa0i0n.0 Al!@ 8s%Be0e0v7@d@21a4t#-}#3 %746lJ#$JUp5 3 M19 1!q(!@oElrkRt# 8$lcD?@숒@)?@P?P"EkU |1\iOT/irvs}i>`_,of :m ,M ?? S&d2? *b?r4B!B oo1gr #5!>%(EQOOOO__@Ac1_C_ D4ևS]_o_zRX,{_,__ #R__ (YQoSo+o=osd {oEeoooooo@zUy{* hDV!VV(I X"c7I!pg bf'iMjSE t%XyG|'0UŢŞN!O4i |UGD # hz0TdYYBU@(%)?@xg^?@0߯H?@s7Uݹ?P} t` 87?t#_)TeΦu ]ukv  ̝L&UUU&I&3 U!!`?CopyrigPt _(c) 2\W09 M c os f"!r 1a i n}. Al00U (s42e0e uvF0d(0'HS$#-## 'I?k=#ǒ 2j$B##0U'BM3@&@F0Yk} #HA%DKb5DK3DK5DKED$!GiAZG5(|IDFX7yW'&Dŭ6!4YA yVZHD  # =hj4>T!]]>#AU@0߯H?@z)e??@˞9q?P6 t`z  ?5t# rXѮu)Nu;):O]ע0 &> # " "+"+"+"+" $+"T-J[U7 ??& bA@ 2b4-#2zGzt#+@ Li68!6 ?}; 72U!:B#AA5 5`?CopyrigTt(c)20F@9M2@c.0@os*@f8B)Ar,@eAa8@i*@n. Al@ 0HsBeX@ej0@v@dx@)21"DM-,;?C G& l>]UhzAE!A#!ְ1J`#@{&pz?@Uy{?NT,dKj&b&R&M/8T9K-q?x6@F?@dG0 >Nk"?YE*]\LT_hKjfGD&Qhj iU3UGe&Y_`?@/b%)h5oWKoWo;KTod}l$roҥ`nE2K?@ˌ%4G{?@ -q eZ̿R^{|\6?vodmP}l>MBe 9 N 1iS? 1?g]rl#51:O("4ga@Sq(UE^@O|ǐ[`Ρa g v2rA @3ijD&}l迲aqOz o?#WHZ'Qu=*[^N?@]%P?@O&@ c?@аM<n ?` eb0)\(Pfodm}nv}l?V5(?q$Ix[cN#W{#iA&QeE9 MX|''0UdN!0 /HD  # =hj0T h]]9 #]AU@}%?@R$,?@6#V?@c_3֡w?P6 u` ?u#t  3zM%t3ws%.<%H._'B> #PJU2N贁Nw[?@ʐL+&A@wbu](i+bk)%+&p%#4">9"<5!?& ?M#bbb͓z$ p&"/%T%#L1L15 w`?Co yrigTt (c)02`090M{0cy0oKss0f2r1r 1a0is0n.0 Al0 y8s2e0ey0v0d0"E1E(]I4M-%#X3 X7&l*>(UhE j1#$Ac!J`%#@5e$_F??!foA3nBM( V?@J-RHQ??@S!R?P| llHL6VLD5E+v;*AʙH: 8snP%$? k?Q? \?f4_!_t_Wr5_! R,U3OC@IL?@4~Kz?P)Oy޾ T!]]>#IAU@܋?@2Oa>?@#r`5B?@*ݷ?P6 t`  >B?\oEt# ŖoZu 0Nu;Y:|8>$# JpU>##<?2& ?5bbbz@b#ANi&bu$'h 2N贁N[2$@ LX"D&v(&m$ :;T'm"*B#d1d15 5`?Co yrigTt (c)020090M0c0os0f21r 1a0i0n.0 Al0 8s2e0e0v0d0"]1"a4M-/p3 p72&l>0>Uhh= 1#!eJ`#&@NTM\jh1B,RBM(!JoUy{O_ e@ So4(DF^Tw?@]֝ä ?Nk"?w_KT\T+\(Kj?ӷjmlhj -`\TPQE\Uu?i,St_o u~!XEO9= T?@L;uQ_Pm"rA @3sjQ1lğ= GoYniAlePE9 MX'w'0UrJ^N!M$|A vzHD  # =hj4>T!]]>#IAU@܋?@j?@2r`5B?@^ݷ?P6 t`  >B?\oEt# 6ΠZu 0Nu;Y~:#&}>0m8>  PJU2N贁Nwk?@ eL&A( 5bM(b[)h+h+$h&#[-M$#?& ?b$Z*'*B#O1O15 5`?CopyrigTt (c)02U0090M~0c|0osv0f2u1rx01a0iv0n}.0 Al0U |8s2e0e|05v0d0"H1P"L4M-/[3 [7&l>0>Uhh= m1#!S!J`#*&@PUy{_?NTMjC1gc RVMʣ(D#F ![?@"$. ?Nk"?+IKTLTcKjRlhj p= (*!)i,SO2Kes9T;QEGUFw6qX}__TM7fTZT\Dž}I_P^52O,ES"rA 0S# Es3iAlePE9 MX$Gxw'0UrJIN!4gA xvzHD  # =hj4>T!]]>#!AU@܋?@c_v?@#r`5B?@*ݷ?P6 t`  >B?\oEt# ap'EZu 0Nu;Y:|$># BJpU>#͙;? & ?5bbbz@}bAA& K&@ 2zGzt?"K@ L0"&N(bM)+TK/8Z*B<1<15 5`?CoyrigTt (c)s02009s0Mk0ci0osc0fq2b1r1aq0ic0n.s0 Al0 i8s2e0ei0v0d0b"5194M-t/H3 H7T &l>(>UhE=3Z1#E!J!@ENTMjN@1h(NoUy{OO e@ o)4(DF^Tw?@]֝ ?Nk_"?'_KD3\T+\(Kjjmlhj P\DiAlesI(=MXsG_'0Uzb6N-!%$0 sFEjHD  # =hj8>T! ]]>#!AU@܋?@*?@#r`5BW?@w?P6 t`  >B? \Et#տ|u l4RQu?]>I$>I# JpU>͙#<?& ?9bbbz@b#AE&bQ$$D 2zG[zt#@ L4"&R(^&I$Q)+]'I"^*Bh{.M#To1o15 9`?CoyrigTtk(c)k2009kM0c0os0f21r1a0i0n.k Al0 8s2e0e0v@d0f"h1l4M-:?{3 %{7&l>(>UhE= `51#I!J49fAn^ R)X f"B!Jui,SG?RSlOS u~!N]8-19= T?@L;uQ ?Nk"?YVTQRXQOnğ/=i n (\ wTiAaePE9 MXLg'0UbZiN!)$0 Lf`jUGD # hz4TYYT#BqU@",?@~?@$p?@|>׺?P} u` ?u#L+/8<L9`( .88L``t uPu3Pt۶m!tUH~#9#[0Up"?@/& 9#!!G*`?CopyrigPt(c)20 9M c os f"!r 1a i n. Al&0 (s*2e e v<0d0'"!$0#B-9#,# 'w#^ =9$&0#4 66 20$e#$^ #3 % 9#HLA0%XD`cKT%XD8cG g&daO^'*TcATcA0"-()Ca0% g2ATBK6SihaX5 &X~7aWK'o$ţ6!4 0 aVuZHD: # =h4>TB#]]9 TU@$p?@|>W?P6 u` ?Mu t  )At72(L>REJt2q?=@LA@-bb )+&񆤍[Z#?m& ?A/$)R!!5 {`?CopyrigTt:(c):20 09:M c. os f"!r *1ai n.: AlE0 (sI2e0ej v[0d=0>"@!$MBQ-?# 'm&l>0>U#3 C!*; #p _ &J`@7?g8oyƏ C?,'ߑK FMD(9IMBIGE%U\8!<A% fjHD: # =h4>TB#]]9 TU@$p?@|>??@?Pn6 u{` ?u th  )t*7)2(QLAEzJ2q?=@LA@yb #zt-b() (2+2&醍N>{??& ?A"b%$$>b7b{/b4/U% 1 15 {`?Copy_rigTt:(c):2U0N09:M:0c80os20f@211r40m1a@0i20n}.: Al0U 88s2e`0e805v0d0X"14Mi!E(-?3K 7&l> 0>U#3 C)1 #p U%J`@!g8oyƩ C2,'ߑB DVM^(9IMBIG3U%~CU[8 h:0T5 AB#MU@1 g?@4?@84C?@Kk^Ӻ?P t`  WwB?t#_L&,qۗ'0 .(='u uu1t6#I    ҩ""PE&&E&U2llf?43f@#&A@)b3bbfzt #Eb(Wb) ; 6#"w?_6C?/$ ;H,7#11+`?Copyright (c)@2t09@M@c@oKs @fB Ar @EAa@i @n.@ Al`@ HsdBe8@e@vv@dX@021M(=4#-#3 7_6( v `@K( vU `A#1(Og0x~u- h'#Q  "8!}Z_]02QEUCT/\?@Wh{vž\<ˉ\78u2/k٠' QQQ,WeI_[Xg_`zT'!68?@J[8j/OW\U M "RSDrV95Uۮ4R?@ rё\!l§\Wԫ{d8m k?NR܆?@ֿK #? }+OqZx~b_Xu5sZ OZ{d+i2o,u2r @3C QAoooooouYYG?@Pb|[p o _7~I|׿zT6Q3M7f?@Cs|h')`ρ?|ώ&a@-_4o0:02i@wE%tHXG'W0UN!z4 0N  UHLuD" # I>h ,J T  M#EMU@jZ?FJX??@HX?P m>uA` o?u#VlMJl -<lA -PK#TdK2(.K<FZnf>t  tt|>b!FQ~uKJ>U2zGz?@9 ?#>O&Aw@b(Wb)+&r" !$NI#"@#W"6 "\M"b)2;'r",r"/I#11G#`?CopyrigXt (c)020090M0c0os0f21r01a0i0n.0 Al@ 8sBe0e0v-@d@7"BMI#3 76@"!"t1"=ElJ Ul0@AAC 9 =QA(#UA!=(^!j9?@+P(0 # 4.!# քOCN6ULw-iN\u5e[EYzX3^GxQ1__ pPzXE6UU . O[ ;;d\@#Q}U6U@ _\fZ__"zXAjai%?@NT_N\^ W-d\ƿFvwzT97Tꤲ8?@)#?@@SAWp>@ ?Nk"R`QY5`ߛbmMd\?E_Wqy[7 9(  UDGzX2YGf?@2CL[N\AlTzXQ2YY a?^&O[?++d\g}UQ2Y?i`hCN\,@Иg*%:׉zXU6U?_z^_p^AA(G!EM __0[u?@ N\>4t>GCc-xQ@uIuc ?@lփ?@nc>s9ZQh |)Sf|Dҍu~4q3@uɕҔ@8S7^A?$My$'eCO9c]ziMqi~I@%!XRG~'0U6t5 Ff ~_H>Y;s ~HA10Hù:zFgv#xJOB Ly~d !o@+Xo[sGD)z: PXOcюԎՎ(؎XڎF֛ݎߎ5Ϣ,Ҧ?86جmNl9aH1d7x38Ly9!UFD  h(^TYYBBUFL&d2?x<F BP(?P? t B66  TTTTTTdH?? Q?BZ@?"-3(\.E(#.sUk!i&/(  0B`PPublic,pr vUa.e0k0y0s0r01, og"a ,n.0tw*0r01y0 1m0t*0p *2r 0pP1!91Us0c*0n82c.!iz275 eA^| (SG& q ?%7I??? wpwp pqwqqqwqwq}pqqqpppw,wwwqqgawqp~wwww;yDrag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aabjZֿ~??cN׿ mF1??f&d23L4CUG DF P# h @T(PYY#E[UFL&d2?jZ?F~?]P} .B":J :^:rY:3 7 77 Au`?؍"66JJ^^*rrUu#J",':U2%&5/4f??z4b0u{[`:[1#2&6#"'V"^%Q_93 2 L1$" "3'@>>ÿ@qZx@mE?wDmF0r&BCZBu%@`-1ZBu&@ >CAB""C$9u`u `"[ bz!u`!Qy1y71`Vis_PRXY%cPm!#5P168B`?CopyUrPgPt0(P])020`90MPc`oPoIf bQrP6aa `iPn% 0AUlQ` hsUbePe`vg`d%R@y1&3db4&5! h8=/3z6&3d6P6 2&4B#/3+0U3r3]*g,^eqV5@cT<*G`o0m?`s `la>t&5 pISO`PdaTs"_BT /&20*V2QQ32DVB3Q1$125kb6x I7EC|ßgh`nQ*ƄQQA``b111;<balrqqAb1#8dsPXQ1`]+r` ]M?`nu-`aPtfarQiQ_` EqiPmg`n `xd>V5Q`N`]1yP%bd Nm0:30ȟڟZq!v P?`r'SHHZ]R`Dgb$a Be>\ЯoAPja}C`y75^GYo-%v Skbi?`Ta:eT̿o-vLPc?hϠk5.@RB$l s`iG`gpϢE%@`ϮqyRPorϱ|ߩZPm\@x px(+s&5ՈUm lparJ0TPpg`PKBg` Br"a;s;0S0LQmrPeExRg""tXqQrb2:`bv+mSJ)CQ`qsĂXC` qP@тuSbp?1PKg`yނn۠UN~w5bka.2` dHEIPNads`fc6H n $׮n~}sIH xJymQt=fpa ஑la1+fHZ㼁y +b P6a`a@lu MO`C(/F,Ÿb/ U+v3utP)Ɵ/H 9// ?Hq?(1tVEImx_dGF~?AvAvp BuJpGYB#uBGYpLJqsp(7Q7Q(xAF@>>ÿOoQ=ONRRCRIHށrA 7S>S"`AR(a1DceF"$?\[?RVRVR?R]?R">UDBb_ PPaMUZB[br@2\ zOz_sv(YqYq!!BO\ɅiqTqvxUzaO9ꂃSS{P_`u`(0y⢀@Bb 2a8RL7@(0aB{8Q|B{BQ|&Cz,@R2ivOOMoM()A)Awb8z[9 N6dՁ:w`` %c`P&!!i2<B)ANDTWORK(%H PD!R1@URIDS{QR<B<hB!i#??=ly|a'0U?Th]]9 MP /AUFjZ?F͂T??FSFظ?P6 .]A]   JuM` W? EKu4bJt1 ytuo[=Jb(A =>JU2zGzt?@dM#߀A@bM;#z1 /#\I(bW)d+)d&J["*(w"?& ?AO$Tf/%B115 `?CopyrigTt(c)2`09MC0c.A0os;0fI2:1r=0v1aI0i;0n. Al0 A8s2ei0ejA0v0d0 1Y4-X 3  7&C0b59 FX7}'0UB)Ź&!$aI 7FKJlJ]Uhz211O! !u6?Fh,\.>*0II=*t >J:@T&ȑ/ [WpY\QEUzU . X[:;QRuSU5UF,®\oZOnlQ 8MP@fu?FR >Nk"\T`bmMlQi_f0%=mUt.m {=4+ 뇥P> D"? 5-g?0tp@bTh]]9 MP qAUF;?F5K?FxEL?6?F6?Pn6 L>M  P$  #uM` ?=`cc.@uRJtO  bm&QȽtA@Lؽl]WI@[>JU2zGzt?@M/#J?&A@b}#zs q#b(b)R+&J[9#H",ɺ (H"?0& ?A$ /%B9#BV1V15 `?CopyrigTt (cu)02`090uM0c0os}0If2|1r01a0i}0n.0 WAl0 8s2Ue0e0v0d0'"O1YS40#Ť-9#b3 b7&0%0bE9 YFX+G'K0UB&!4Ia yFJlJ]Uhzt1.A!-(:9#t.%-+0JN H߃+%$Jq-&?F mO" >Nk"\RSWNh[H@[4I 뇥P> 'CK=o? n-?N]`@ b<couo]r5%BUV 6?woZÃ^ǿXEUV T6?F __ jv6dDlVyZgPRkro}oiBdalN!\z3ˏ6>CRHS X?BnDe>TGvN7VHD: # h0>Th]]9 MP JUFjpiH?F[^?F$?F]Fڻ?P6 >JuM` ?j uJt  (a&aEt9S;-FEN=ۯ=Eh?u;>2zGzt?@M|JA@a7b#z}b(b!).+.&J[-m(?& I?A$0/Q%B!!5 c`?CopyrigTt (c)02`090M 0c 0oKs0f21r0@1a0i0n.0 Al[0 8s_2e30e 0vq0dS0!(Y$-# '& 0b59 6uX7_'0UJBŃ&J!$a FJlJ]Uhz!1!劵:F% Y.  8?zY^J4 ]9$]$R9S/RJUE UH$S!\1\? GX5ZU_YQJU __-_?\HD H# Uh4>T#A]]9 M /AUFjZ?FL|+??F@{~?P6 m. >b  JuM` ?+ILKu8J1t5 }ty_7??J]bA>tJU2wq ?=)@MJ&A@\3(bA)N+)N&J[ "#?& C?A9/Z)*!!5 `?CopyrigTt(wc)20A09M-0c+0o%s%0f32$1r'0`1uai%0n._ Al{0 +8Us2eS0e+0v0 ds0!E$$5 -? 3  7&6iiePE9 6X7 "'0UBţ&!$0 IF]JlJ 8>U#9AA 1[!:Nk"\T`bmM\"f4N[7 zex-K=FAa [jr D"? WZvDS?4xa@R#Th]]9 M IAUFFK?F\gVb?FO?F$_5?PJwW?>$[ >  JuM` ? ;  )u*Jt'  ^Zmta{֙3.Jvt?@[_ u?vC >pJU43f<!.&P~?b3bbfz@bAe&bq$Jd 2zGzt&.#@M#T"I&r(~&i$q)Q+}'i"~*B#81815 `?Co yrigTt (c)o02`09o0Mg0ce0os_0fm2^1r 1am0i_0n.o0 Al0 e8s2e0ee0v0d011Y54#-#D3 D7.&%g0Ab59 ;FX G[G'0URB.&!I$a [FoJl&}>UhE3MV1Ai!(# jV? & `& T` V_RUHPD  # #>h0TpHeeJ EUFu6?F5c{g&?F{r`5B?FF:Iͷ?mj>  M   *  (Y JuM` ? Y ":N`u#xJtu IoI%t"' % 'ii%$'`OkŁJU2"?@Ms#J&A@"b(bU)++&RJp}#>1#19 ?#bbbz| &/5> }#11"`?Co0yrig\t (c)02h090M0c0o%s0f21r0Aua0i0n.0_ Al!@ 8Us%Be0e0v7@ d@k"1Ue4t#B-}#3 746t%0 jU FXyGG'0UR46!O4i FJlJ$jUp5 3 h19 1!q(4}#FXJt R j# 8bD?F@)?FvP؞?PEkU O|Ä\QnS ?.܁nts}ped`,of :o ,M ? &d2? bS?tP@RBoogr"55ZQUf_x____bY@?Ac_\jF4ևi$on&h{ǡ8oJo\opoo T)YAoaoooo o 6$|U7I[mS Uy{䷰7ho}V(f"(I%ZvShX?"cwӏ叭iďa$xUGD  3 h0TdYYB UF%)?Fxg^?F ߯H?Fw_7Uw?P}   f  f0 D fX lu` ?00DDXXll)ut  871%t%!?"Ư)1%:'ֿTeΦ1%T'ʤU!!O"`?CopyrigPt (c) 2\09 M c oKs f"!r 1a i n. Al00 (s42e0e vF0d(0"#S$#B-#l# '?R=#ǒ 2$Z##0U'B3@& ^5 DFX7dG'R&Dŭ6!4] dFxJeYk} #HFQ%RT][b5RT0][3RTD][5RTX][RTl]WHD:  H h4>T]]9 MAUF ߯H?Fԋz)e??F9q?P6  >IM (#<Pd`<#P#dJuM` ? #2FZnubJt E-tA!["XѮJV&bN$p'N]I֤>J)U5 J[-# ?6 ??" A@.2Sb64B#2zGzt3@M#Jc678C6.? ;B72C: #115 k"`?CopyrigTt^ (c])^ 20@@9^ uM,@c*@os$@If2B#Ar&@_Aa2@i$@n.^ WAlz@ *Hs~BUeR@e*@v@dr@"14ʺ#-/ C  G6&iieP59 &XG W'0UiRŴ6!#40 $ V4ZlJ]Uhz@A!1(`CFU&pz?FDUy{?,d@#b`sb`"J-d K-q?FFF?F F0 ?Nk"?GiE*]CpdadC0[dhZe@#eGDQ> @" i$a3n&Y+`~rrood]io;e s"yr1C82K?Fѻ4G{?F-qx>tFjR^{|ZlYZe tmP|{Mޥa 0 1iS? q1+?wa@rc(<;"̏A!rFÀ5H5aE=*[^N?F%P?F"P&@ c?F{MTh]]9 M]AUF}%?F[$,?F+#V?Fd_3֡w?P6 B>M @ $ JuM` ^?3YY.KuHJtE  L<ܩt.'_3zMҩ,wsQ>JU2N贁N[?@M#J+&Aw@b](]i+bk)+)&Jp%#4"?>"<5!?& ?M#bbbz$ Rp&"/%B%#L1L15 `?Co yrigTt (c)02`090M{0cy0oss0f2r1r 1a0is0n.0 Al0 y8s2e0ey0v0d0"E1YI4#b-%#X3 X7A&%{0bP59 OFX!GoG'0UBŔ&!$a oFJlJ(>UhoI j1h$Ac!(`%#F'$F?>D{Q>L!gfQQ R "Jg V?Fo-RbHQ??FT!R?P& lH\f6V\P5E+UDv_;*UmʙHQ:? w8s`*%$? .l?Q? \ς?D4h_!R otogr5%Q3p_SFhIL?F~Kz?P)Oy޾ F @c"rA b$^sPj+u`dl(?ET+QdAf u8<$HD:  H h4>T]]9 MIAUF ܋?FOa>?Fq`5B?F1*ݷ?P6 m8> (JuM` ?#SS2)uBJt?  \Eto֙>_B|KR>JU5 Jp'>͙#<?Z& ?bbbz@b#;A&b$B 2N/N[Z$@MI #"&(&D$ :;'"*#d1d15 `?Co; yrigTt (c)02U0090M0c0os0f21r; 1a0i0n}.0 Al0U 8s2e0e05v0d0"]1a4 #-,/p3 p7Z&'&iieU59 '&X9GG'K0UBZ&!u$K0 FJlJAUhhG1! (T9CFJ> kRbT$R}R( "J:]Uy{䷧_8S s@ o4%BTV.Tw?F:^֝ä >Nk"?YUU!f>)?\(K8ӷjmKl? a\$QU5Ui,SlQ%iu~!8hE_= T?F;uQuo`"rA 4sjQ޽lğ=onHD:  H h4>T]]9 MIAUF ܋?F<j?Fq`5B?F^ݷ?P6 m8>M (JuM` ?#SS2)uBJt?  \Et[Πؙ>_B?&}>J)>JU5 J#2N迴Nk?S@M #JC&AP bu(b)J++&B1[- #L#?&| ?$H*'#O1O15 `?CopyrigTt (c)020090M~0c|0osv0f2u1rx01a0iv0n.0 Al0 |8s2e0e|0v0d0"H1L4 #-/[3 %[7&'&iie@59 '&X|$GrG'0UBi&!40 rFJlJAUhh7m1!{!Պ (Z$CFFUy{?> 81cKR R)V "J{TV ![?F=$. >Nk_"?YPSW>OcK8RKl? ף_p= $B:]'i,S\6aYss9$Q@5UV+6o'lQ:ifOdD`i[Dž}soąo82{_U{"rA z$s"HD:  H h4>T]]9 M!AUF ܋?F@_v?Fq`5B?F1*ݷ?P6 m$> JuM` ??Su.Jt+  \Epteap'Eqz>Bq|7>5 Jp>G͙;?2& ?bbbz@bAi&s&Bh 2zGztM?+"@MrX"&v(bu)+s/8*T<1<15 `?Co yrigTt (c)s02009s0Mk0ci0oKsc0fq2b1r 1aq0ic0n.s0 Al0 i8s2e0ei0v0d051P94-H3 H72&iie-59 XG_G'0UB2&M$0 _FsJlJ( >Uh_I `Z1m!afR* zRQd J:`]Uy{w_$S s@ +o4B`TgV.Tw?F:^֝ >Nk"?zYQYV*)\(7$djm7lb+d ha\HD:  H h8>T ]]9 M!AUF ܋?F*?Fq`5Bǯ?F1?P6 $6>  JuzM`l? C"u2Jt/  \Etti|u~>Bu뒣;>RJU5 Jp>͙#<?6& ?bbbz@b#Am&by$Bl 2zGzt6#I@M\"&Rz(&q$y)+'q"*h,#:3o1o15 `?Co yrigTtk(c)k2009kM0c0os0f21r 1a0i0n.k Al0 8s2e0e0v@d0h1l4e-:?{3 {7I6&&i bP159 &XDGG'0UBX6&Q$0 FRJlJ(>UhI 1lq!a4DC9Nk"?CYQYf.Q;(hğ=;Af/h (\UGD # hz4TYYP# 9UFs2?FM&d2?F$p?F|>׺?P} 5   & >hRQ p  u` W?   *<J>R\npUu# t  mom%ty!V"!%' %'ؤUC~#30U82?҃@&T3q1q1:"`?Copy_rigPt (c) 2U009 M0c0os0f21rԚ01a0i0n}. Al0U 8s2e0e05v@d0"j1En4#-d3}3 }7Q?3^=4~6#DkFkF gB$gdaO&7*THT"(Pa%/BQ  2iRcE U6rXFGE'74ikF!dD0 EZeYk} 3 QYg%kd>vk5kd#avk3kdpvkEkdvk=Ekdvkkd vgHD H# Uh4>T#A]]9 MUAUF‰IJ?F#-c?F?FFt=?P6 &> A](# D<# P# dd# xJuM` ? #2FZnuJt  }7Fi8&t-!G"R7NA9%UB'DM"9%\'+d>tJU2wq ?=@M#&A@q"b(bJ);6J鏵#"wJ3?]6 ?A<#0Ɖ3z #V#bA38/9*#115 W"`?CopyrigTt (c)#@2U0/@9#@M@c@os@f!BAr@NAa i@n}.#@ Ali@U HsmBeA@e@5v@da@"1E4#(#5 -O3K 7]6Fi@ieE9 FXG"'0UR]6!x40 7VKZl:JdTU#& uUT ]9a x 1 A*# 2&#p +5(Z#FF<g60Q0,#0Q4"1 Rf"J! {-?F'<0c 0TYǮixxLpH$a5e r&7?FQh|a-|,CxEe}$X%lE?FV}w{|C|80}-|?"l!eEeaM?FO|7#Nqi}=ԡ$dduC_?F:s?FQ+7?FO9 uPu~0y jBqi/3-u_2O<-u,#$6v›l* ," z3H[o'?F hnd?FCsM>-|6`؄Ì~[U0!܉f;-aaiq x?F#^|P-|hP`]H<dp&B?FŜgN,5ҫi~l/WG~Ɖ|] ܉NQ*TMW.DPF)?Fa$IKbүnexC؆˄ILMƯدaWe=j$,$,hx?F3%?F+S 雖dNɛ˄@&fUٌ[?承uW[w?FqoW?Fsg:o?F)3⿗1܊5#AKƉsω5`R!Oǟ1a:dj{+ hʲdde5a:f?Foj&GCx9e2oeWcrA 3"5a5PeHD: H h0>Th]]9 MIAUFe?FM᜕?FXWF-0?FO?PDJW?A$> n JuM{` ?e ;  u*t'  Oț2mta{ԿHM3.Jv??v*Ij/I>JU2N贁NKk?<@M#J&A@bI(bW)U+U+TU&J#!!5 `?CopyrigTt (c) 2`09 M c os f"!r 1a i n. Al.0 (s22e0e vD0d&0!3]$#y#&#4#9PO"Pd+T/u/%-#,# '6% b}59 DFXGdG'0UBţ6!4a dFxJl(,&}>UhETh]]9 M9MUFJsx?F6?FI?FnjrL?P9V> $ 8 L ` t JuM` ?.BVj~SuJt  5hޅ%ty!"_:~څ%''"%'Bs>JU2N贁Nk?<@M#J6A@"b98bG9JE;E;E6J3115 "`?CopyrigTt (c)02`090M0c0oKs0f21r0Aa0i0n.0 Al@ 8s"Be0e0v4@d@"13H]4#y36#|D3I?A?2T;D?e?5-33 7F%0AbmE9 4VXWTW'0URRœF!DaR TVhZlJTUh6UT]$8]tA1 QJVb(T3RT0bLx"fA RSf"J:mGӎ!=Мoc ]rte$a31sE?Fd0!@c +HjẏvR%amE@uRU?F.$wX|'1Tn|pA-x@uӆN?FFoX|1Rqyh -x@u`CB2OX|Ә {n|O$ dCe?F_';?F4Hy ?F ! uPu@[y!Xn|kb_6nu(nux#vi8˿IQv x" YꥬM$5zG?F}Bh?u?FoyD?FYό Ə،m\ҋ:n|XAB0B5R+?F;(h?F?F;S4، nB6{n|Jqe!{q o.2ZQI{]>F˻w&t 1t?FOiL،?ö}>{} SS~DxĶȯ]z#0bb?Fwϯ،BZc4s  x̶.jlT1|t[mi 0?F_?Ft ҿ t߇R?ɨV=7Th]]9 MIAUF9PR1?Fq`?F]Pġ?F_Ӱ?PDJW?A$> n JuM{` ?e ;  Su*Jt'  Oځmta{_ t-3.JvĬN %e?7Ùf?vGOw{jyƤ>JU2N贁Nk?<@M#J&A@bI(bUW)U+U+U&J#!!5 `?CopyrigTt (c) ]2`09 M ]c os f"R!r 1a i n. AUl.0 (s22e0e vD0d&0@!3]$# y#&#4#J9PO"d+(T/u/%-## '6% g}59 DFXGdG'K0UBţ6!4Ia dFxJl,&}>UhETh]]9 MJUFâ[w?FVFc-??Fx?P9v>JuM` ? )uJt  81QEt9Siޯ2ENEh^ڻ IH^>2N贁Nk?<@MJA@cbbU)++&Jy;?u)?AbP)/%/F%B!!5 c`?CopY rigTt (c)(02`09(0M 0c0os0f&21r0S1a&0i0n.(0 Aln0 8sr2eF0e0v0df0!Y$b-# 'Ax& 0bP59 6X7G'0U]BŔx&!$a $F(JlJ]Uhz@11!ZF(?~O攚   8P[&~ 6RcVJ:)Hpv ?#V Th]]9 MMUF"q?F땘n?Fq0>?F_A!w?P9@7>M  $ 8 L ` t      8L`tJuM` ?""."B"V"j"~""pu)Jt!  1X{%5t132m_%5.7RjX6H7!>JU2N贁Nk?<@M3J6A@C2b8b9J;;6J=y3;?3UI?A2b9?O&EB3AA5 C2`?Cop9@rigTt _(c)P2`W09PMPc@os@fRAr@3QaPi@n}.P AlNPU HsRRe&Pe@5vdPdFP2APYD3-3,C GXF5PbU9 VXWW'0U=bXF!sDa Vjl:J Uh^maa]`t AQ֍A8Z3FWY?F9#}"# C22@fCsa Ur)[v2JAURo?FN?F=!?F G< 6uPuyA/ybMv Js 9o#"u#|u32$N 4 ?A~0 f? h#|S)?"2@Ts(<2"41rÀ5&Eyq3u0,Ǥ?Fs^?Fq?FS|xX1y6>|>E<ti!Z$@nqcN#`qBsq- dM?F"7z@Er4s0{욹nZ|q9a!i[+|ҼN#`V}188| m vqt(?&4yq`y:#Z?Fvd@^=PiY$|n׽\|6 ^yEb$ ^S ݿN#`"jtyVp`iK?F3H?FڛY ʜ|B6yI^a};I| Yb[soq|U?n \*O#`7I~Fmp1BB{?F>v?F 6Qqy hq|o]^})f~^K!OM3`Xjy%gzp jh?F t?Fŷ 9X|9} |)x?pM` #e2e:~Cra D)2HD: H h0>Th]]9 M9MUF$sж?Fp b?F4tV ?F_<?P96>M  $83L 3]`3t3 JuM` ?3.BVj~)uJt  DYU%ty!"8Ӆ%'fY*%';ƐnƤ>JU2N贁Nk?<@M#J6A@"b98bUG9E;E;E6Jy3;?39?A?2bPG9D?e?5B31A1A5 "`?Cop0rigTt (c)h@2`09h@M`@c^@osX@ffBWArZ@Aaf@iX@n.h@ Al@ ^HsBe@e^@v@d@"*AY.D#b-3=C =GA6%`@bPE9 4VXWTW'0URŔ6!4a TTVhZlJ <>Uh$]T]tOA Q1(`3F ?FiXe& 0On?Tڿx#EA_0_;Jb"JaFK`E?F /?F߱)\ uPu1ad0kvX'qeDz`Ֆex#P_v^ܿ4 Sm?T0 -? YzO?x"pp1@c](Qv:y!r55a3id{ Y,?F\?F O&&`VW:E3 xui?k0M5eigJA|@ W|wv0rIQv v uB@#aE^0:O o?F^k#?FTL?FY.}*\/~kU?F#]ҝZ?G3´<]lѤqA|? yFז_t&o˿Wi}id3.aДgSh?FDR<<ddT0~B{*!ZyqH_C,qÿ́w?F?F}SR?FD?ƙ!FsU.RM .fMA.zM +M++M.++M."M+"M+."M+B" M / 9Z#j"M M / 9#"Q& / 9#"U@#"a#"y&/9# 2Q&/M#"322y&M='y&x(-63"-6(-6uM`? A7242H2\2p22222222,2$,28,2L,6d(6x(6(6(6(6(F(%F(68686,86,3B?T?f?x???>u#9|J2b&baFU*JRu0;t1 b.!ta  zKdS'& 0JU2zGz?@dMc vA@b\`;xbIyV{YVv,r !:tJsrcrv rArb"Iy{Fw,r|,rMNsTTs`?Copyright%(c])%209%uMcos{Ifzr}ai{n.% WAlр sՂUeevdɀ+bMs` `vba3Wbtbiv eqX z/'0UÒv.0 zlJvUt@S +HW!!1<!.!@B!oe#Aqhq}?FTOp2c r\2"02c JWidxȯ(U?F:IВ?F -e젌"v?PN,DT! uPuqMk 6̍B!23ץE c#)!:2 Fbk  1d2b4?Q& Bbҿr45u)3ߤi]~젙K.LL̖bTJIr^F_ l ^c ׳fif|F~1r!o` GR["hJY@]+ݾ?F6vb"BFϤ %7ɝh|ֻL~|OߔhcAXT4B;CS;YBUߤ_qt|ȝ\ {~TqUAdɼx1ֶ?F|DB젓 Sb\.B| JLǝrZ~HĢg^ޥFg?F$@Į﫶 ,3JaE̲Sι?x<#̿- B 俋}p4<'xld~1<ܬCs?FicuU FЪ֌?< 1TZ pq~Y,ͲJOuOOadO"o4orVbP}q1EʄOCZ d:d?FQC;sl_<>Д]xeW. buDSwV*ɟjoko}o(ZoUgrrPʃL?Fse9mpi1@ps?C>O"Y+Aq[*2l>M_Xp#:,?F[`XK ^$ǽhXvFLzN?F-\Z?FM+ ")?P@Μ<^'k<\ 4.iyq1Kqkjцpqx"pȯ(UP:IВMk=6̍Bᦺi(֋P:mk?FJNHP?PN,.y1",+~]s\߂~]5zn5]?]ȻEtAF5G u$6GaMș<ѶgQ>E% Jצ#{~[:ĂKǯsԪhZ*ߝVU4db62GA,ϹJLk81-s߭f>T (ז0g1!e\%zynA,=͒}s c 5P=D mOAؿvP $kL`C@Y?F,ɴZ`2a]o*"+H) $WV= ً5Od.t@//GB"I0}!!v!M ~+ ت!fLZf-?FOgE>k^:Ўmz@ܐE! cykA$i/ Ok/5BOkFBKHgJ&?كd v:Ì?JO\O1/6O1_C_y%tNw&q00[^cAD[F=k"l4 x QP*% T|0IWj&?F?0ۃ4_#BDM[ٺF1يC nf1Wob!x///oHokJ?~CvY_0 ?Fy]Gp0V~YPM'aܿuiTױ ?pNo=W/_$OpG/_قuO> >F6q0>XY'O?/?A6ُ}Deٱ 5?u_aX݆ϟs+?QcuAuu?FH_*|>Pe hV8?FeHN55/Ԡlփ~+'vc>`h?Nk"\T`bmMPyG&_Sf \l>{f`lER ͮF9S*#s B}PBA9!F8#TEXOB ~dT%@+(ݓMsG:j|fN?xXkL(@P(h ,Dؗ$U-]A8 Hr3 H !O^")9B /UFDfP h>$KT 6D UF~@x! <`>!kbs{kbsi^% X\/7'TFJ!DbA[ qʕHDB # =hj8>T ]]9 #2AUFM&d2?]?Q6 ~A@9 hpAW(4?u`l?Xuhib  #AEJU `0.UH :l$'!f$5 #!`?CopyrigTtk(c])k20 9kuM c os If"!r !a i n.k WAl (s"Ue e v d $\#2q+0?*?<6M?\.?lp*E&B=#Hn&M4?6PMM4-,(,m# m'6##0OoNk3@*6'l6 ?Uhh#3 t!,$ BWaBE@BJ!>BdCRQ, 9VM (DAAO?_SSUR%c^|__WSU5cU ___C2O;rAc#p (e jO(heoiAb59 7,X\,'w'<4N%!4!m; v$zHD # =hj8>T! ]]9 T #iAUFL&d2ٿ} ??FP!3|>2u `u bu  @[A-0' - luu`l?ubC Ae"& J0G6G'0<p'"R('%.&' '!$ +/ "&"7/"',? U`0 h:HM %B7145 11`?CopyrigTtk(c)k20-@9kM@c@oKs@fBAr@LAa@i@n.k Alg@ HskBe?@e@v}@d_@4="36MD?F-P?M-83 7ԿF#30O贁NkC @Lg@?!Uh35 A"@ aRKaSPJOQsb2t8UoAo,giAreE9 6X7g'2Uq`^!D1 5 fj_(Hgyr Ds{ 9O5LFxmBw#HaiDݑB 7]a&E@+,4aGŁiPH.KX$NPUFD  h,^TYYBBUF\.?x<F BP(c?P?tO @L^^{;B_@L&d2?sU!&"/ȍH$б?W/i&? ~t  0 ;QB`#Com ,link\netw r*"p0r pP1]a ,d0v c0 /1^ ; YP!3u &?  ;;" ;;;gr330;G;#7Drag onut heqp ad likb tw e cmGuiCaisd vOe]sBKcnTe)*`i]^o 9il^)n5k].b\.BP(?? M7Pfo??H D #  B>T>':)DNYh>) e0T9 EM dAU@\.?@?@?BP(?P6 .2A7 7P u` ?8=Q Keuoasu`u`bu`u -##@"L( (0!>zLU<?&(?bAR%g#2q l?AG}F]#qa0 c{`Con0eoct 0r 1l2z0 A0 +` Li2?05U"g# ~#"9 `.4 u{0 `:q1276' x:^%g#@KF$=mG<hB<wOEAGMOQ8u?^"f 4 #G<H7g#AwQ17;1w`VA0s_ RXYJchm!#e5P4PQ`? 1py0igPt (0)P209PMA0c0oPofR 1rP1a0i 2.P ARK0lPWs)bePe0v0dJU" Ip`@#neϥ?xdnf'#rK"c'#f `/2 k@ebum 7@w!;FPSeapb po18 `Qps-8R_t-0`R%J1^#B TU7^%\f*?v~!)?LEp &L,5bK`&! CT<0oPm`s0@a> m D/^""QQl2 2B33B11B56hR6C 7$PMC]E(j )w*:B^%]wQ1{U_ B@#"w` M`nu`a2u9bP1vpuqMc;Ca𡟳œTr`PrRdؐ1 Nؐ!m0k6['Zœ!̓ P`rRdEkœR`GD;bQiPeկ3EĜAP>aůYU_hœ%̓ S?bi`(aѿhUz1h B@̓L 0chAWej|ώUBؐiK0dA2gDMMœ̓ R 0oEAYCUœ`Α Apm0n0}Rfz\SP)aPF1lsQ˒W` ;iC`i0y,B@ ̓ ITPOP` 3c/@śSؐbP` 1mP e B1U"%Ѝ# A77^"[(qpPU]=`% &ROái;bBA`NEWOPKPSA ETPQOkRIWS1PT#ѿq;A11^"!! mBz3BB@9191A??´[(3F&p`g1q1 !0 2`T#;4l5cTIt,@r^";E3EU$hU9_D&zFBECF3s͵NSY";ų`pv*HA`bTfo?wQ&bu0HybDr)Ixbkfz`RQz:c exhGFRbBb<\ARbBg"ұeT2b @@-,eu LbrZSt?A////3s8BP(?N#F@<M?Orb:B$Ix\iĺAqG(.f\gXtFZ'0ye] IV]Zq 8BU~\2C }'qbšg q9#3^sGE[Tb%@tbSAc2} 2FA ]bF" JZd~Eq`axe@:F.qTba'g UD?@ ?`0o:C)aY3pra0]! \2rBa(a 3G2T3rA 0ex9dvn]GWrC jae%ah4F?@ p8Gp  Sfeb]oobs5{HZ,+s 5)d5ukDnmFQq#跐jSB#Ta&o@+/o=axU PUFD  h(^TYYBBUF~?x<F BP(?P? ` B 66 6 66^I6ȅH??A>IB@L&ɯd2?-(?\.1(. sUW!U&w/J G 0B`ETerminal,s"v",c i nt wo k t t o , !1i 01, et 05, qu p 5h rd0]1e!i1A^| (]G|& n?_ Q4FPR? pww {pv w wxwږ#wpwp~pw~? ~' ~~  wwpwl+w~wWv-{wywDrag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aab~߿?)j࿚i?3@ ?DUG DF P# h @T(PYY#EUF~K? P} 7K.B! : DTDh1YD| A3 AA3AA3AA&u` ? "6@@TThh||j&&"u#L&)R2%X<X7eqU ??' 4Wb0{[W`:#2P6Q3A"'򉄉Q9 ^ L1$K" H7"G' @>>ÿ@q@E?DF0܇rzBCCB-uI@`-1"Bu$ @]GbC$ Q`'(R7"A& <4' &)9u`u `"[ bz'$u`R425 ؓ3Q171`Vis_PRXYcPm!#58`0o68B`?CopWyr`gPt0(.`)02<`0U90M`cU`o `'of]bNarQ`aUa]`iO`n 0WAl` UhsbUe `eU`v`dR13d45*8=363@2t66 24B#30Ur3]w,A$T!^@cT<`o0m`s]`a>gdPa!gRsAA2hhB)p3+}RqqRqq281pacR2+6uM\$ %G11[2 P@ЯRECT'$@ b23;.UM5s_4/&ׄF3s͵NSYFU00UQ#,!@Q#J`epE>Ҡj_7Nam uBtS` SB~&_o<м_oB=Eoo/.c` WI4q*ՄVoC`C0N`҃?w`M`mI2JmhO@E!4ay>",>jeрϿ55 ©ltgИa ` %_0&ȳa5`NTW_ORK3bHPIPBQRБR5ISЀQ<) i$ eu؊6ŔX·q-/'0UwŻѡ ˈ74hH臘h5: '4ANѤ%Nb͡"44?4A?4'?e4[?4N?]4?4?Y4"4?9%4?%4ɥܣUHLuD" # ;3h( TEJ eUF~K? P VN% @*&>uA` ^?Ci i4Fu#Xp^Tb>tU b7t>U2zGz?@9 #>/&A@qa(bo)e|+|&R" !I`$>)##" #7"& "g"bo);l'R",R"/N )#z1z1'#`?CopyrigXt dc)020090M0c0os0f21r01a0i0n.0 Al0 8s2e0e0v @d0"i f  %!X)#]'0UB&T50 PJl>8fUlYC !(#pAg!(:)#FM&d2?qFGN tQ!P"(>!p8?ST0gYfRaNrTaU3^\.,__ 31bXEU[Vj?F@  l(\\ rX HYF `0QYp= ףXo`?̺oZqapXUL_^_p_\A*# ?Fg?l6 l\1"X%Du~ |!YRQi3a\ayo7;mDucP]{1cr|%iU{^?F^ lʡE\1_Zd럄ht X01?FXE#?FFb?PƚK G2G2 lû c_tFaXNTN]\R-\^Dr7 јٜ ZLT4&1pBHZlr À5%8yU`0 ST*J! o`rcݘEF3?FAM)ỷ?PMޟ+=){ )LFj?cl~Hӿ忷ǨHD: # h4>T]]9 M qAUFU*JR?FKRT*M&d2?Fp_8w?P6 L]A]M ($JuM` ?Agg2DSuVJtS  tq= ףUp$_>JU2zG_z?=@M3#JC&Aw@b#zw u#b( (+T&J[=# "?0& ?A$ /%B=#BZ1Z15 `?CopyrigTt (c])020090uM0c0os0If21r01a0i0n.0 WAl0 8s2Ue0e0v0d0+"S1W44#-=#f3 f7&4%/O]FiieP E9 ]FXsGL"'0UB&!4%0 FJlJQ h@$Gx12A!1(Z=#FF!0JR Lx{פ_Q\  R)V4"JVT?F]Q!?P-M G2G2\PRSWRc^_Lr___:M -LdTd&!&Ra@SBЯoogr5%Bb#iOD"ZoZD?B!)$a EeVHc^?F7zT?PxT8QoWmilvd)TJEvސl5 gvtmFd(:w.|&E2_U"rA k#ރ+"HD: # h4>T]]9 M 5AUFOt:?Fr\.?F#H$?F|>?P6 e.#A#b  JuM` ?+ILKu8Jt5  r7htyw/ؤA>[JU"?& ?AbA@D"bL$J#2zGz?"S@MJy&M#b#zO M(bL)Y&S,D"Y*B #115 `?CopyrigTt(c])20a09uMM0cK0osE0IfS2D1rG01aS0iE0n. WAl0 K8s2Ues0eK0v0d014-#*3 *7&?!FiieP59 !FX7G'0UB&!9$%0 iF}JlJA h@7<11D!Z#F&*JR?F9.4mL AxY S+RJ:rTDa@ RS .S X%QEU~[r\wY aU5UFGh4\Q iʧEQ8y^Ffj?F~@W?PbʒK G2G2@ D"]rA R#s c4v(O A.x$&AR q|4xa@S#Bsdvwrb5^%HD: # h#4>T#3 AMT JUFx<?Ft:N?F~?F7ͯfл?P6  >JuM` ?juJt It=WGWzHRIlQI#>[? ?AbA@"b$J2z6v?@MJ=&#fb{#z (b)&,"*B!!5 g`?Copy_rigTtZ(c)Z2U0%09ZM0c0os 0f21r 0D1a0i 0n}.Z Al_0U 8sc2e70e05vu0dW0! $-# ',?6iie59 6uX7_'0UvBZ!0 -F"AJlJAh711!TصTh]]9 MP qAUFbX,?F3L&?Ffl6?FWjZ?P6 L6 >M   $ m JuM{` ?=cc.@uRJtO  \(\tu_VQӽmI[>JU s#<@!A?V% ?zAJbV @bbbz #|"b#$|"bĄ$J 2zGz?<)@M/#J&B(&$%|";T'|"*B9#t1t15 `?CopyrigTt (c)02`090M0c0os0f21r01a0i0n.0 U l0 8s2e0e0v@d0'"m1Yq40#b-9#3 7A#-(0bP#E9 wFXIGG'0UBŔnF!q$a TFJlJ8>UhS2Q2Q]1LA|!-(`9#FBP(?FMx HNټOqɠ[Hl[yQ RV0"JU}e\?FAϡ`2If9?PaEQosqvyifdY0_rޖlͅhn4g_oeBdy$w4|!Z$ܿ__  %$?qyU2_U|#rA 4'"HD H# ih#4>TA#3 AM 5AUFbX,?F3L&?Ffl6?FW_jZw?P6 . > JuM` ? IKSu8Jt5  \(\tyuVQӅmݤA>JU2zGz;?@MJ&A@bE#z; 9#bS(ba)n+n&J[#";"?&L ?AY$p/R%#115 `?CopyrigTt (c)U020a09U0MM0cK0osE0fS2D1rG01aS0iE0n.U0 Al0 K8s2es0eK0v0d01E4D#5 Y-?*3 *7&FiieE9 FXG'0UBŴ&!$0 iF}JlJ(>UhiI <1Y!aRY4n Rx_ J:j]_`0 Ɓ_.S F) 8qViH$D?F@\.?Pַ  G2GC2\QYV4GK`mA.x ΤAR Ԡ3l4xa@ R#Bsoog]rb5% 8 bHD: # h4>T]]9 M 5AUFQ( B?F].r?Fx?F`0?P6 m. >b JuM` ?+ILKu8Jt5  ty(\{GzAt>tJU2U"?=@MJ&Aw@b9(WbG)T+T&JJ[#";'?& ?A?/`)UB#115 `?CopyrigTt (c);020G09;0M30c.10os+0f92*1r-0f1ai+0n.;0 Al0 18s2eY0ej10v0dy0@!4b-#3 7Y&?Fiie59 FjXG"^'0#ũ&Z!$0 OFcJlJ8>Uh9AA x"1DJau'Z#FFp8 J4T .xDD3AQ]M RVJ:n] ̅_Zr==B&d2?tW~ɲ`?FH!{?PZss G2G2 .S =;;RSW4O+EA.xSfϽ؍AR X]ded4Jxa@S#Bsoogrb5w%Q5U}H$D\\~?BBQ5\~CftZ a axUv~lk&lqU2n_U"rA 5>#pHD: # h4>T]]9 M JUFp8?F}>??FbX,?P6 >JuM` W?SuJt  f\It=W|?5^UIRIlI +#>5 ՆJ[;? & ?AbA@N0"b8$Be!e!5 g`?CopyrigTt (c) 20 9 M c oKs f"!r !a i n. Al (s"e e v d ^!b$-,q# q' &2zGz?@MJ69#nfb3z; .9(b8)E&?, 0"E*iie59 X:7'0UvB &!%$0 -FAJlJAh/7!0!eZF43, E <ᢋ/.# M OR|VJ:VjUS |bPReS0QEUxx#cHD H# ih#4>TA#3 AM JUFVj?F\.?F`0 Pn6 >JuM` ?uJt  3\ߦIt=WIRfIl$#>5 J[w? & ?AbA;@0"b8$񩣑e!e!5 g`?CopyrigTt (c) W20 9 M ]c os f"R!r !a i n. AUl (s"e e v d @^!Eb$-q# q' &2zGz?S@MJ69#fb3z; 9(b8)(E&?,0"E*iieE9 X:7'K0UvB &!%$K0 -FAJlJAh/7!T#cS( bUGD  3 h0TdYYB IUF}>?F&G/?Fgl6?FB\_z17=w?P} 8f u` ?0)u:t7 ? = ףptDʑ_Gzޑ?"L쇪iU!!`?CopyrigPt (c)J 2\09J MB c@ os: fH"9!r< u!aH i: n.J Al @(s"eh e@ v d  #S$#%B- ## '?;= # &#24 6 6 2$# #0U2 3@&B A^#5 6X'7'4Ŕ 6!4] 6:e6^#[EBM #HA%DGUHuDh" # R#U U  >]0T]]JUFgl6?F &p&??F{jG,"7?P  uM` ?j`fpu#zAtw tnٳ \b "OMGt2N贿Nk?@MM%&A2 bW(c+c+c& !!`?Copyrigt(c)209M c o%s f"!r 1ua i n._ Al-0 (Us12e0e vC0 d%0 "!3]$#Ry&#4?6QC?]"W(c+Q;'-,# '6% h|5 CFXGcG'K0UBŢ6!4I cFwJlU!#A(:F<3)0 vc p/y $(4!Xv݃`?FZyE}0pS a۫YQ\I`X3Uk?FQYC~\f"qoY|5UD/5?Fԧ߾ \F\bJFXk_}__\A#O_"_4_F_X_Vh#?F=]W\>ۆ\34=(_V[e¯?F'e*m#R)\b@QoWZʵ?F,ށmL \$6ԡybm&>e?FDȆY\.Iſ\)ozEU 2DVhVၱ?F}!\\wzVxtD?FYY4F-~Ȩ\(p|y m! ?FߝBF7+*y\= ڙbm&R{?FbZd\Aa\?ulď̟EY.@Rdv m5[?FRⳭ8HJ|\ HN۟VHD2?FߦM\\A>x2V8`?Fitͳ}#E\I&)|5e?:Xa"7["mSpd㯵ǿٿBeJ\n~.?oJ4=|nn)`]Cc֦Š]]7PPE5߁m:2\y_1W3E?F#Bd\eÉbm^9^?FV;.O!thV\9MύAa\n߀ߒߤ߶߻VV ZKX=\ .c|~k綖d]!:`="K\lJ(i0(dV;amЏ9ta*m \ǀ_?bmcO"QGm= bY~\r6y@ύ# AuYKtxoa{6\/ 4)V w!>?F ߄*"̕0ϓpD!K>?FWP! -ߟ:{Qb?D)bmh4(?F|hS ߵ.f-R[Ϡ ύ //-/?* Y7Q%i?F_s"'a E/`'r?Fs7"̍^sÁm;]֜/O?F/RE"ןh~pMM/㿈E8:͉@;$Pe"̪ (M۽^mJ?O.O@ORO ?????O%?kZ@ I~}P"P7|Msk aO=˩ ?Fa7 >fɾw2θOgl6'"*’ ܏{7_(4?F8W!"̿z2m^Gm}>IύAoSoeowj ____o#o\+w(@ `&"-JO}=O^f~oyV 6?F9~"̓ ;M\Oo~ahFp@o!"?ݟ$Eߡ?~%^]"Q>IۢwFX"̰4txڑ3:\Qcu '9لndu%?F<2}G"^̄ZϭSԓD-?F=ߓC.k0w]<<7 Qv@b" "R؝f2]bwƈWРJk "̇1%~]F@m 1CUb^fĽ w \,X|4]-HuvziP=?F ##BOP9]ǕDG(t{GeY zKgPfO2~]9+T~]~;?o-L /=m$+)9ϡʌ);M_q 0;F,5Uz!izVsJ}0W }f6i,g8~ٜ˺A}2!~ tLհ#QqBZ$@S]5tC6 e`,.zu'J1ߥ6HZl~"~ѠZ cX, }ٜ?J\1~C( k0ޜcAKrзX=YϯR p0%N. X, I6]+ Ӂ?FI:5;iU,=A  D)U= 1qRdvE[%ڻ2i{w׾mQ7Z'ütUl?F3&Gsj3jܙ-Ow) S-ۇ4H-ɫ9].E|"?F&ti}S`Aܙx@ ///??Rk/}/////b"m X i)r~ٜوWjFQ"?|PP?Fo%s=De9gsܙaEo#IOl֪E@e~iY/|dM?v۶ :YhSQv}T\Pˇi/ON|aܙz?`$OO__,_uOOOнOOOI@B?FKTG.i`AٜlOo->_|?F!i_ ]gٜ?, )ʼn!|?F3Ck*}DxZٜ?]QVyhk߻?FX[g]/I ٜ?bvd Co '9Koooooopj T&}j8>ͯ߮\nE@L@Gٜ|gxgx0Y3N,*ݖ}T  MlfahhÔ}Dq:6};p/"_f/-?Qc я$]+w(0p:dy~͇JO} M?p 0!s?FYY4ڼ~iS!(p|ʟEDk}'pҧO?zA'xў?R_F!] EQ>sNϽ=(V-Sewaۯ#5ٿ9/{?i߼$&B4O% C3i?y}o3qo?Fq ZiD!'FA\]0$=ڵ}SI6?Ͳ Ai{ߍߟI 0BT~#a\.LSA-BN^{q"?p?Fe6i㪡<_#AA}2![?F1:!6F! [jtE\qRD%yjǍ6Pݿ#V<>tl )ae"%7I[mzj3?C_%?Zzh̿Z} ?-P N?/????eK?]?o????yxz`h qDa.??>#L3ўh>/Ew9&:/ ЎP.JhHkOQ qӠħOʜ- &h̜zfUm@O___oa_s_____}2Z?F$'_{uh̆Ia{V?Uoǿ7e~h̰(ecy) - mz-$.hhsZ}2Ca6o`(~ "?F0.MX×mEyoށ顷6\Zq%բ}t7Z?F~ Oh?H |A?UYwkE?F?>C ?<a,:wPI5) ߈2/WfsM% e'MvǃaËgO?F%F92\aI}|b:B9 /VA ȒTH7D6D # 4# J  !"#$%&'()*+,-./012*3>5haATaaMYUF%>h`?Fr<."L?FcG?Fqј?PM ]u\`^?u#t  EF't !#"UY%'~P*%8'C"Ut2N贁Nk?@d\#&A b(++&Y/R/$78?#bMd4z (+b/513%R 11;3"`?Copyriug t(cU 09M@]c@os @fBR Ar@GAa i @un Alb@U HsfBe:@e@vx@d"1Y]4i<3K 7966i@15P6XGW'0UBQR96W1 VZlY]U]l@TGA#1(!l[?FuO[0:$}#)ߓ=b!8e,չ?FAOw(lxrNj$>la.PXTh|3ecztaLN E'm:"n*&G^|%[a5:q m5a)k?||=a Ed0UgEo"o4oFoT#______evHG?F3'y~|3`[]Ք|cToev_kfP?F;~|S3ٔ|\£oevV!ex<ڤ~|{ |ev-+3t#~|;6nRcoj^}.@RdQUev~؇Z?Fi~|+|ܔ|JCjev<)OO~|p )yBr7ev1 aNְk ~Ůeąܩ#A 5OfYQWgn?FO*~|Ch|`-jݯev%~?&nq΃0xi7y :kOop ~|4ZO勿]oρϓϗU+=Oσ+ӑ!]~|:<]їyT}ςT ?FO'>]P~|qH~|ο:.H!|ςto w'"~| 5(CşVPevR`t)/~|?7>-<Ѫ|Ra 1CUgevo I?Fb7~~|/ͼ셡yoevkY?F>_ ~|3y evMXy"}~|ω9?lev ?< "~|^_\˱R&8J\n|by\M[`bD'nnEm|<z_m6itaW}nk.V̲ocxL45MR9?}.mE?KxSi#;m1LL'7,}K^>P/Si^}///*=! B/T/f/x///byYEvk덚4D2=y_mS M߾}zNmWUdw4֢DB&™t|d˽\Li#hމQ?7B%$Ĩ^QUHnOOO_8& ^OpOOOOObyV~%װ!(E>ܩu;ofUN1[D}~XXtۯ~'haCjmt{ܿ`Xn b_փ%hkqwu~R)uoo 8& zoooooo~KL}"_!eΟW?N eFjӈHi>DYH'h(%i?}ou MMXjQ %f[݉gm`¥ G8j ,E/R&5gS>Na8|'hhv_ ߖ3bW7mȧս[PebݱJ}:?nuTѺ 2DV8& į֯ &i~FR?[M%- q?j  DJP}uQ9/'hdfO?FV+p\[Wvpa9| wdѿOtZ(UxzêJUfeC(6,b#l+eR(߫\(V1:9Oi:4ߋcG1!Gq}9 ?C)uNUBv(Bo?FO& v!~5I-lym(,.$23G_CRHCM4q6vl~_}5#7o Tfxy?F{UX>͘ Uܼ*d4Ij@ ?Fi; Ly4GXj9 g1re-#d\D-h:Pc}Lw4mv/*ĩMQy S:U ߟpʟy7j?FZ?W+}(U*<SW?F .턟bGF赁9 <8߁-`Z͸~~5 CTc/ws}e v#P3ׂo(r.i,"4Nr¿Կy=Lu?F7G3z 9 ˇ 5F?FJ.3$w 1tK -o9a|ዙCѾ;-z0ƛ+WzBg/w-%&G,ߪ 2Dؚ5F] MH,>PNr#߽v<߯0ʨ)QMLTgMUs}I$FATG}=u2f`?}1&OwuXp+MEp41}o7o9ݭ&fgPy}}M?=;??1O2DVh6 yJ]}z aFgRlnk6+nɣj4 anf-n_h?+nj^AoxvTN.g!uh-Vo@MVp >ߜ)sPU 1D'[}LG*>QoN/`/r//.V//+/=/v(#xEAGw} }%(Lʧ1;$gKG"V2w]xR)vJD)3 7F!nLigqN|ݭƃN'QM7ZSF^ jO|OOOJv?O O2ODOVOOh_D PicPK>ѩ݅cDchQ>M cAѩ JBɆf!\.S6x~r|#ݭ#.CqQzUȴ߯b~(oooofo*o<* 8}\q3h^ ߻l~ϢϴQ9 AS@XC^}|/9K ս5١TB㰉\JA**=@$,Q9G\鐒?FU ^d /g [A\9mpï?FnrB=k X* S(N A9]'Nx =$.T~v )\A?S7|#!8+|z AM}D(:LfQ9j,,j?F4*a.ȉ\zFq&ǻ}w^Ym[6?FG!Ɖ\0#Jh@ /x|I]11\\o=P|G>q2:]_1BM4=1vq"_]=H` @]//?A?S?e?e ////??/ԸƑ?F qT}S҂ ϵymޯZ?FQo8G} ϊx"1IQ }M}>~~^{ªy1}eYQrŁ& [ׂox^.cyOK_]_o__+!OO__$_6_/ٗW(?F 5w*zi۟灜i{ސ_26w?Fߒ(xJJ쑻+Uϰ|]FuqyUq~iT ]~[4vp=!;L }?LYh- pzK"o .@R/R7?Fhߤ? QTJZ׬23l%?FO& ?GSۈQ?5])B.zhɅ($Q1(5} X㺾 ?lرc#&8J\n/_?FdW2ʼn@-1ş9ȟ2֮tp?F<*fB s1]V%sAS})Tk{#/v2OB!XLi.݉}1̾MZͯÿտ$0BTfx~P _! QR6#I -hCFUz5|Y}N?#TG}"F$=c*c,j4Z>[T-G#ϊt9a?FQڧc,H ~{%a -2FA`~hLr Xޟno#:L$FFǕgtg'bl[;| ߛ{-,>PbtG)AQHZ?F;ƃOc,t[|{r6<9{mgE?F Cg=:*\R鬱YG/7)- I;-Z?N5şZ=/I'nD5-!bp1{ IWx^q2.BTfx\PX{Zxߛwtu,]R |{A&BQbhì?FB#5һ5(B]-nf!Pb,$21Nw gnV~B]gyz9^p 7QoGI|q~-9@d]/// :/^/p/////\ˍ|x?FȯI|hLYosլ{m|^>`tzϞI|ύKYʰ;!l?bsdzNQN鮢I|\Jm^*Hq^o_`n~APpⶍߥzȣs^ˀ≜O__(ZA}OOOOOO_~ޯ1}^i8Z`֋ ŸLS$W+wvqO j2~Lx/b6^Ni~ KC} mN;-럴 =T=qip8/~ h ;-#霝 2Dz1oooooo\~DG߷&wz P}/p쯹BxN]dK]y.8@h&V&%-2|ЏLWM;| =yidݑ%%-tڨNR 2DV2ď֏ : O21f& =Q>Nsz99]yX21 ;>#94oQ>ݠ_g?]^%mT`>rG.l(5sm H_`?#~6\9Ҵ} қhnBk=Oas#3ί(\Ofe#y~NQmr갯]ߕ 6m^ϕJY9]7}}NQ X]n;m^uԱ_^?$R?F[5l<;Qq<7B1b;-Y='!"/;mZoY?4cgC2oXj|ߎ84 2D\M'g\elh \~5[Vq:a,8ω?F0 iWi&4\GbF|aS)H9z#/<^bAL_߶,fdlEH{=uU%5*eBn v;!#4?FADo)XLȚ|bv!7A!*EKGalH`.P%ҧqp6t KT4HD #h34>T33 AMT JUFM&d2?F W`?P6 >JuM` ?juJt  5]It=Wp= ףIURIl#>5 ՆJ[ ;? & ?Ab A@N0"b8$*e!e!5 g`?CopyrigTt (c) 2U0 9 M c os f"!rԎ !a i n}. Al U (s"e e 5v d ^!Eb$-,q# q' &2zGz?=@MJ69#fE 3z; 9(b8)E&?,0"E*iieE9 jX:72'0UvBŴ &!%$0 D-FAJlJAh/7!h0!ZFg, E <ēNmP#  &OR|VJa9PY]PPReS[RUV%:]x#c S( bHD H# h4>T]]9 MT JUFp8?F@ W?P6 >JuM` ?juJt  f\It=W rI*RIl#>5 J[? & ?AbA@0"'b8$e!e!5 g`?CopyrigTt (c) 20 9 M c oKs f"!r !a i n. Al (s"e e v d ^!EHb$-q# q' &ڝt2U2?@MJ69(5,E&?,2E*iieE9 X:7'03Ŵ &!%$0 TF'JlJ8>UhAA `!1ZF? `, E <A#] =RjVJ:VjCS |b>RSS6 QV%U\.;\QNYu=!ٱQE^?&d2_MZW#h415U)Hb?*V[E! YB\JQUU+Vp;_MZw@0$[D#h2$_6U2rA >#JsS(#e_zH"%u@s $I/bO`MFXk_#VaZOB Urb~d-o@+[Wo8sG?*c^frmXzsrumv(x/zXB}R(}^+82ۈ6h46Ax8Up:Ӧz&M XH'UFD  h(^TYYBUFjZ?F~??x<F BPG(?P } X ]B66]  TTUTTT9T9d9iȅHBU?? ?B@L&_d2?@-Q(\.c(A.sU!&/)1(  0%[B`(file,s0rv2,compuUt$4d0s40r0b24d0n0tw,0rk!e^| (QSG& i?!3E?? ?qq wp  p w{{ qw qwqw{pqpqwqt}pqppw'wwwbwqpwww|zwxvDrag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aabjZֿ~??cN׿ mF1??*t {V↑T*J?@ ?UG DF P# h @T(PYY# QU@jZ?@~??F?Pn} u{` ?Su#؍>>HX HlHYHH EO.LO4:UDDXXUllk'"&R",I'U25ĉ%4 ?"u'4b0{N[`:Q1#2T6"!^U9$"3&9"/L6 2&!'ݯ>e@ÿ@qn@?@-fB?mDcFԸ0)Bu/@`҈-1Bu@rCC 5GAB"2Cm9u`u `"[ b!u`%3Qo1o7B`?CopyrigPt0(c)020P90MPc.PosPfRQrPQaPiPn 0Al` XsbePePv,`d/`VPs_SBNcPm_!#5P8a` 6!bz1AXE:FG$1 8dT=`XQj2`]r` M`nuPaPt+arp{` ?bup` BO=ݛ`S,t@']p5%m-T݁<9ofm'Qh>qݏ,BT'.at'xXf@>pÿЇobLZdq [ܒrr$ avvvrsW"`ERol]16 бeI`~bb a}abr@6uP`TaSo1u"_u'I1I2A!b[aahaauhAaYypP`Z u*`q`*q`azAx'F5_db&bpSF3s͵NSYJEbrV@ΓB!e 8d : LqW,@rB:@0ɏT}sasahYV搹Mny ` %߀P&S41sa`NEWOWRKb2H PRq!RRI%SQio$o¹h^A'70Uc?!0oHD # =hj0>T h]]9  5AU@jZ?F͂T??Fx?SF?P6 jt`  o?tk[>(A Vu aSuo.]&A]  *ԮJU2zGzt?@L#&A@bA#z7 5#1bO(b])j+$j&[ "*(w "?& ?AU$l/%B115 `?CopyrigTt (cu)Q02`09Q0uMI0cG0osA0IfO2@1rC0|1aO0iA0n.Q0 WAl0 G8s2Ueo0eG0v0d0"1E]4MŤ-&3 &7&l>]Uhz811U!J!u6?F+\.>djIIa? >"(EǑ I%K9E 5EU . K ;;5QIWEEEF _KnSA?8@@Bu?FDR> ?Nk"\6`bmMM\j=am {:e P> #? D"? 5-g?j4B7!B{oogr57!ibDAbE9 MuX7_'0U~rN!$a)5 5vIzHD # =hj0>T h]]9  qAU@;?FI5K?@xEL?6ѿP6 t`  bm&Qo?t@@L]WI,#u aiuoL> JU2zGzt;?@L?&A@b}#zs q#1b(b)+$&[9#H",ɺ (wH"?& ?A$ /%9#BV1V15 `?CopyrigTt (cu)02`090uM0c0os}0If2|1r01a0i}0n.0 WAl0 8s2Ue0e0v0d0"O1E]S4MŤ-9#b3 b7&l>]Uhzt1.A!JN!m.%-+0djV1ax߃S(FJ-&?F mO"> ?Nk"L[Majnha_:e P> #? BK=o? n-?j4Bs!B{__Wr5s!D8E6V 6?wj_|_ ^XE.U@z T6?F @' d_mOoT \VyWxRkrVo_bVh*g:n"'UaEjz36>CN>?Bn}]zGvN7V iDAbE9 MX+G'0UJPN!4ae5 MaHD # =hj0>T h]]9  U@jpiH?F^?@$?F]F?P6 t`  !a&ao?t,F=۳=u;u auo>J2zGzwt?@ʐLAw@b#z1b](b!).+I.&[-m(?0& ?A$I0/Q%!!5 `?CopyrigTt (c)02`090M 0c 0os0f21r0@1a0i0n.0 Al[0 8s_2e30e 0vq0dS0T"!E]$M-# %'&l>]Uhz!1!JF% djc~YZ(_N9zOMGE%_EH$SwO"K ңHE ^&_8_WE_OqOHOOi&DAbPE9 MX7'0UUfb>!$a % f1jHD # Uh4>T#]]9 M5AU@jZ?FL|+?@?F({~?P6 JuM` ?u JYt )t7zEA2&L_D?. > >tJU2q K?=@MJ&A@-b9(+bG)T+T&J[#"#a?& ?AH?/`)#115 {`?CopyrigTt (c);020G09;0M30c10os+0f92*1r-0f1ai+0n.;0 Al0 18s2eY0e10v0dy0z"!4B#e-?3 7)& b 0K8>U# ]A]A "1!ъ!PzQ <%OYAJEU . K;;\%W%EF($L[.FX5Eai%?F 6?wL;] W-\TB⤲8?F@&SA?F @ ?Nk"L'`bmMW_Ye[ٯ7 VK=F: [jr ? D"? XZvD?ta@Boogr5;!QEx]SiLO MLGXa~WOTZiAle59 XG"'0Uc&N!$05 .HD # =hj0>T h]]9  IAU@K?FOgVb?FY%?Fwᳬ?PJW?>t`  ^Z?t#ə.E @x?r?/{4܂ G _Z+u u$ >  J JpU?43f<!.&P?b3bbfz@1bAe&bq$d 2zGzt.#@LT"&r(~&i$q)(+}'i"~*#81815 `?Co yrigTt (c)o02`09o0Mg0ce0os_0fm2^1r 1am0i_0n.o0 Al0 e8s2e0ee0v0d0"11E]54M-#D3 %D7.&lUh#7 V1#Ai!J# F/?B1B  VRiAAbE9 MX G{W'0U*R2N!I$a {VZUHPD  # #>h0JTpERI MU@u6?Fjc{g&?@%r`5B?Fm_F:Is?HNtQ`  II?t#]  _ii$!`kNu  iu%wj>M JQ T       "@&&JNU2"?H@Qs#N&A@b(bU)++&RNp}#>H1#19 ?#bbbz| R&/5R}#11`?Co0yrig\t (c)02h090M0c0os0f21r0Aa0i0n.0 Al!@ 8s%Be0e0v7@d@21a4t#-}#3 %746lJ#$JUp5 3 M19 1!q(!FnElrkRt# 8$kcD?@숒@)?FP?P"EkU |1\iOT/irvs}i>`_,of :m ,M ?? S&d2? *b?r4B!B oo1gr #5!>%(EQOOOO__FAc1_C_ D4ևS]_o_yRX+{_,__ #R__ (YQoSo+o=osd {oEeooooooFyUy{* hDVW(I X"c7I!pg bf'iMjSE t%XyG|'0UŢŞN!O4i |UGD # hz0TdYYBU@(%)?Fxg^?@0߯H?Fs7Uݹ?P} t` 87?t#_)TeΦu ]ukv  ̝L&UUU&I&3 U!!`?CopyrigPt _(c) 2\W09 M c os f"!r 1a i n}. Al00U (s42e0e uvF0d(0'HS$#-## 'I?k=#ǒ 2j$B##0U'BM3@&@F0Yk} #HA%DKb5DK3DK5DKED$!GiAZG5(|IDFX7yW'&Dŭ6!4YA yVZHD  # =hj4>T!]]>#AU@0߯H?Fz)e??F˞9q?P6 t`z  ?5t# rXѮu)Nu;):O]ע0 &> # " "+"+"+"+" $+"T-J[U7 ??& bA@ 2b4-#2zGzt#+@ Li68!6 ?}; 72U!:B#AA5 5`?CopyrigTt(c)20F@9M2@c.0@os*@f8B)Ar,@eAa8@i*@n. Al@ 0HsBeX@ej0@v@dx@)21"DM-,;?C G& l>]UhzAE!A#!ְ1J`#@{&pz?FUy{?NT,dKj&b&R&M/8T9K-q?F@F?FdG0 >Nk"?YE*]\LThKjfGD&Qhj ?iU3UGe&Y`?@/Jb)h5oWKoWo;èKod}l$ro`nE2K?Fˌ%4G{?F -q? eZR^{|\?6?vodmP}l>MBe 9 N 1iS? 1?grl#51:PO"4ga@Sq(UE^@O|ǐ[`ߡa v2rbA @3ijD&}laqOz o?#WHZ'Qu=*[^N?F]%P?@O&@ c?FаM<n ?` eb0)\(Pfodm}nv}l?V5(?q$Ix[cN#W{ #iA@&QeE9 MX''0UjdN!0 /HD  # =hj0T h]]9 #]AU@}%?FR$,?@6#V?Fc_3֡w?P6 u` ?u#t  3zM%t3ws%.<%H._'B> #PJU2N贁Nw[?@ʐL+&A@wbu](i+bk)%+&p%#4">9"<5!?& ?M#bbb͓z$ p&"/%T%#L1L15 w`?Co yrigTt (c)02`090M{0cy0oKss0f2r1r 1a0is0n.0 Al0 y8s2e0ey0v0d0"E1E(]I4M-%#X3 X7&l*>(UhE j1#$Ac!J`%#@5e$_F??!foA3nBM( V?FJ-R?@HQ??FS!R?P| llHL6VLD5E+v;*AůʙH: 8snP%$? k?Q? \?4_!__WrA5_! R,U3OC@IL?F4~Kz?P)Oy޾ T!]]>#IAU@܋?F2Oa>?@#r`5B?F*ݷ?P6 t`  >B?\oEt# ŖoZu 0Nu;Y:|8>$# JpU>##<?2& ?5bbbz@b#ANi&bu$'h 2N贁N[2$@ LX"D&v(&m$ :;T'm"*B#d1d15 5`?Co yrigTt (c)020090M0c0os0f21r 1a0i0n.0 Al0 8s2e0e0v0d0"]1"a4M-/p3 p72&l>0>Uhh= 1#!eJ`#&FNTM\jh1B,RBM(!JoUy{O_ e@ So4(D@^Tw?F]֝ä ?Nk"?w_KT\T+\_(Kjӷjmplhj -`\TPQE\Uui,St_o u~!ՠXEO9= T?FL?;uQ_Pm"rA @3sjQ1lğ=GoYniAleE9 MX|'w'0Ur^N!M$|A vzHD  # =hj4>T!]]>#IAU@܋?Fj?@2r`5B?F^ݷ?P6 t`  >B?\oEt# 6ΠZu 0Nu;Y~:#&}>0m8>  PJU2N贁Nwk?@ eL&A( 5bM(b[)h+h+$h&#[-M$#?& ?b$Z*'*B#O1O15 5`?CopyrigTt (c)02U0090M~0c|0osv0f2u1rx01a0iv0n}.0 Al0U |8s2e0e|05v0d0"H1P"L4M-/[3 [7&l>0>Uhh= m1#!S!J`#*&FPUy{_?NTMjC1gc RVMʣ(D#@ ![?F"$. ?Nk"W?IKTLTcKjRlhj p=' (*!)i,SO2Kes9T;QEGUFw6qX}__TM7fTZT\Dž}_P^52XOES"rA 0S#Es3iAleE9 MX|$Gxw'0UrIN!4gA xvzHD  # =hj4>T!]]>#!AU@܋?Fc_v?@#r`5B?F*ݷ?P6 t`  >B?\oEt# ap'EZu 0Nu;Y:|$># BJpU>#͙;? & ?5bbbz@}bAA& K&@ 2zGzt?"K@ L0"&N(bM)+TK/8Z*B<1<15 5`?CoyrigTt (c)s02009s0Mk0ci0osc0fq2b1r1aq0ic0n.s0 Al0 i8s2e0ei0v0d0b"5194M-t/H3 H7T &l>(>UhE=3Z1#E!J!FENTMjN@1h(NoUy{OO e@ o)4(D@^Tw?F]֝ä ?Nk"?'_KD3\T+\(Kj?ӷjmlhj P\ DiAlePsI=MXsG'0UzbZ6N!%$0 sFEjHD  # =hj8>T! ]]>#!AU@܋?F*?@#r`5BW?Fw?P6 t`  >B? \Et#տ|u l4RQu?]>I$>I# JpU>͙#<?& ?9bbbz@b#AE&bQ$$D 2zG[zt#@ L4"&R(^&I$Q)+]'I"^*Bh{.M#To1o15 9`?CoyrigTtk(c)k2009kM0c0os0f21r1a0i0n.k Al0 8s2e0e0v@d0f"h1l4M-:?{3 %{7&l>(>UhE= `51#I!J49fAn^ R)X f"B!Jui,SG?RSlOS u~!N]8-19= T?FL;uQ ?Nk"?YVTQRXQOnğ/=i n (\ wTiAaePE9 MXLg'0UbZiN!)$0 Lf`jUGD # hz4TYYT#BU@5?F;?@ t2?F`0 ֺ?P} u` ?u#t+/8<&L9`d<t9( .88LU``ttyt m "t"hf;!&&'n"!'%0'm= 'p ~i##0U"K?@&S#a!!*_"`?CopyrigPt (c])0020<0900uM(0c&0os 0If.21r"0[1a.0i 0n.00 WAlv0 &8sz2UeN0e&0v0dn0w"!$J#B-#3 7#^=$6#D66 2$e,^6C% #HA%DK%D8K5D`KEDdGg&}c__'TAA""}(Pa%288BKS`DS\U Siha5 &rX7g'$i6!40 f-jUHPD  # #>h,JTEI MU@jZ?F@s??FX7`/?HmNuQ` o?u# j>tMtQ 1@t PATOQ E O#l|O6,2c J^vNt, "t "QwNbo ?!FVxNo]2УɆX3BUYU>VZ\)_ W거QUTAQ LG4CaCa_* Q_*____ o2f 8CT]?FoYDȡ?@ ~1pc} 9dS0]Yb<=p\/_ RT)4HtvzI!| ?^_AV,uݹ:4Z\o &Ja ʆXBU 9A1p@߄ߝZ\X9 (p\P΀dˆXEBUp2t Z\5q[,=6B҆XaU̓쬏 qXa>YU . [[ ;;p\Ua>YF`rZYoQUaai%?FzP4Z\^ W-p\] xTy8?F.?@@SA?FWk@ ?Nk"_|5`bmMp\PB|y[7 ơ|`?])?p*FWAX|a筃,H7~Z\?bxT?:!G4QڡUeB_T_f_x_DOOkoooZ}u?FU2Ty9=ŏsҟGO"vP_?@mlփ?Ff>> }= R3|Ofѡ|&['aޯ)d3#ux"@4SK 6ASʎy'e>'"Y`r,iMm׹ ߵl%1X~G׷_'0UJ26L50Ov ׶HD: # =h4>TB#]]9 TqAU@1D)?FL"ߛ$??Fٵ #ָ?P6 u` ?u4 t  ]<)t7񿗯)2)LEkL>  JtU2qD ?=@LC&A@-bu(b)+&񆤍[=#L"#a?& ?AH{/)=#@1@15 {`?CopyrigTt (c)w02009w0Mo0cm0osg0fu2f1ri01a; ig0n.w0 Al0 m8s2e0em0v0d0"91=4MB=#e-OL3 L7&l>  U#,|A|A9 $] t^1*=# #p Kw&&J`=#R&F 2'_b0CwvA kRqVM(~"!;ɡ?@<3?F ?P-DT! ;d1?Y=:ZTO㿂f{OaB J4 13? v,? (N_?r5w!:8oJo\g"a@jS(.8R!ZFI nx4__ D_U5U,VS?@g$ ?F~4,ێ~@ 8_H_ZTml`KDfl`'E4q2d8R鿃oo`rmkod&'aE2%_7USr(A@z#y3ae&b{, fZT5sae~t?FG=Va|7>-\氹pAiʈ$%?F(XoZ1a|}%\Iii ^WB^:fvEZT˒AiU?FAx߾Ya|k#ӝY~/Yt(Ae o0AleP59 MX=GL"'0UŢbN!40 O5 |HD: # =h4>TB#]]9 T]AU@R7)?Fy߈C??F"ָ?P6 u` ?u4 t  *5y")t7n)2)LI"+BA B JU2q0 ?=@L/&A@ybm#zc a#-bK{(m {(+I&)#Kڬ !?& ?A"&g$bbu/b /%)#Bo1o15 {`?CopyrigTt (c])020090uM0c0os0If21r01a0i0n.0 WAl0 8s2Ue0e0v@d0"h1l4M!E)#𤲝-DO{3 {7&l> U#,AA9 ] 18! #p %J`)#@~t?F # 0hU-~-/HA RVM(ET"rYD?@J-?F-' 9d 0_Y b%r\_oӫ([MFoFl 77]8>!Zݹ:4\\o?gƭkdQEF5W4?@A=?F[Q`??P-DT! :U^Zs[ #l@*p9lJjV\\l_ I&vpkhAzi!J?F߸TF\\Ͼ\zT khzinA9f@.mY <\\ԕ$ ,S{khAzi׍8r?Fį^?m ? ~_5 ә(Ae 0AleE9 MXlGR'0UuőN!40 ~5 ,@HD: # =h4>TB#]]9 TU@~t?FYaJE??F? ~?P6 u` 7?u t  }A_)t7Ǫ+)2)L^A]>REJ2q?R=@LA@yb #z.-b( (%2+2&L q!?& &?A"#&$bb/b 4/U%  1 15 {`?CopyrigTt (wc)B020N09B0M:0c80o%s20f@211r40m1ua@0i20n.B0_ Al0 88Us2e`0e80v0 d0X"1 4Mi!E-?3 R7&l> 0>U#3 GA9 B)1 #p| U%J`F(jdO C]/S֑K VM(HC-O"K[%q3U5CU?uBТ:^Y=~q\G3UE2OE#rA 0"c37QA?Y\[)xIB_mT^(`d :0A@le59 MXGB'0Ur-N!$KA5 fjHD # =hj0>T h]]9 U@/?Fxpz?@]JQ?Fk],>Uh@ !f$; hp _Q%Jd(jcZ(sEp!$a VZHD # =hj0>T h]]9 U@~t?Fxpz?@?Fx?vÂE?P6 t`  }A_?t#%_ ,u auo>J2zGzwt?@ʐLA@bu+b)%#+#&![Ha$?x& ?A//)񩣑!!5 `?CopyrigTt (c) 0]2`09 0M0]c0os f2R!r 51a0i n. 0 AUlP0 8sT2e(0e0vf0dH0@I"!E]$M-# 'x&l>],>Uh ![$ hp| F%JdjcO(hEq<cBɀODI$xD\AEOOOOD~hEuBТ91Y=~D\GiAbE9 MX|7W'0Ub>!$a VZ_H$;s nXk_$:@@_F#XߖVOB P~dpj@+Kn[sG8fط;7h ™F֛Hƙ-(ș6˙Ιp(sc 7XuNw_0*9yZ!<9|&]~),!UFD  h> T6D BU?V}U???Fx<F B_P(?3P?| (^-҅  0B`ZWirefam,\UIusrintfcpoymckpAplctoԸWbeUdac"sJ'#ttaeB^ L% --HR D\ 9  9σ 85  3?`?3i o3?{33 3{?33?% } O3 3| n3?l oa?b BP(xh -RfHz C=4uU2U?YYYFuu@bt !"}&#"b) !# w#""n%?#>~?[ڻ! G% LineColt0mrz۱ "ٓ 3z bT'ܱ "#13?6&F$%` I=7Bs?CH32&n#Z A?AGG"`?s1pyz0iglt (wc)@20@9@Ml0cz0o%st0fBs1r@y1ua@it0n.@ Av0l@GsRe@ez0vp0dt@=@1`Vl0s_<0RXY@clm!W#5@4QP8._vHcs 1D:XF؂;1G#2wB xq93U@ek;o+_=oPa7oPUFD  h$^T YYBBUF\.??x<F BP(?i3^P? .vV B2% 2 2ȅH?p G?`1 Bt  0XGB`User,n tWwo k p"ui h"al d v# c >!^ K%OU# r?/%?IHPNL@DD@@D@tDDtDDGpDtpG ttttG_GOOGGW D@DDGD@%DD@@zD@DGGDDM_iDpicZR?Drag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aab\.ҿL&d2??s׿4?@?p2эr3rCUG DF P# h @T(PYY#EU@\.?@L&d2?]P} .B"H:J "bbrY:f 7 Amu` _?U"66UJJ^^UrrUSu#*",'񩤅MU 02#?T"'#^Ax)"L[$ $3' >>ÿ@q05ӥ?46Zr&23G2uM0`-N12uu&@ f3AB@3t$9u`u `m"[ b!wu`)#A!'1`Vis_PRXY%cPm!#52840!2`?Copyr@gPt (P) 2P09 M@c:)Po@of1R"Qr%P^Qa1Pi#Pn% AlyP )Xs}Re@e)PvPd%BH!#$U~%d$%! =#d&P& "$B##+0Ub#]  gmAdaoc_Td"5 tR6$t 7#tEC0t|hh9PKs(&q`#L ]G2`NgPmPTZqU!hj|]sL#PcgXx'e|Bu@lPioPgyEf|R#Pobv|3qdv]@Vq DPpgPr1PBqn1PxHrfcQA!эSPUa%Pe[PlgPs@ c` "QnoPePjQv@t'PxUrT sAp ;T'PA r`UTTq1PaE m\#ff%<z-q#o&5m1`P]](cEAE5:Z%C %B&MRAiR p!]`NEWO@K SH-0Pr BORIrS1QN1^d^dpЭ&&"(AT܍?<$aylA2;6Mq`CRPQllS exR2" 0R<@5b :::4u"5z":br3@@BK ڿUmRc11"@u&2Mu3+ԼB,@"Q(!`a#b!qo+`9R7[d[#uҳB&53@R"3阼E q`_$&F3s͵NSYFO0UAC,@d_"PUi(X''d&E! EQ7 jXq!Ia2ܬوW.Hƒ%Q &5f ~5! E8! U. UHD: # h0>Th]]9 MP MU@˙?@[ bg?@ƒ?@?]P6 ]&A]M  $ 8A] LGD`G t  DG G GG$oJuM` ?.BVj~uJt  &7&t!"Mg7%'tU% 762>[JU 'N((?6 ?A!2b(A@2b4Jte32zGz?)77s@M[3J68b96<2:Be3hAhA5 2`?CopyrigTt (c)@]2`09@M@]c@os@fBRAr@Aa0i@n.@ AUl@ HsBe@e@v@d@@S2aAYeD\3-e3tC tG 6\5@bU9 kVX=W'0URRł6!4aR VZlJ4Uh8&a&a\qA@Q1Y8`e3@omi?@o˟+00f'##Rܗ'/Rb\2JAL)?@}Ɯ?@FGy?@?Ҿi ǒ$Y1iM/JCl;~e*e<8e#K4 @ J? 7ͫ?"p@c <"!r55qE*uzf7?@|ݨ?@ړ]?@,_oTl%rl |}}Ya|tqw(Kx#0.:Ud:Q5>[}W*??@#Y8'&WSyirlE_Ţ|g;||8Q  cGkfɑudpJ?@P"|*u]ad@k!iNŒ|\(|ݙÚw }:xɒ|)3@*ȡyQ5l~eoc@q(Y?@6qﴐ2rA 3zƟZJJ=ay*/AHD H# h4>T]]9 MT !AU@ `h?@ E?@( y?@b|?P6 $]A n JuM{` ?e? $Su.Jt+  SnpteGVBqzE0E>qچۤ7>[JU 'N(( ? & ?Ab(A@0"Sb8$J2zGz?CUUU@MJe&9#ވ"bU#z.;&b8)E&?,J0"E*115 ^"`?CopyrigTt (c)<020H09<0M40c20os,0f:2+1r.0g1a:0i,0n.<0 Al0 28s2eZ0e20v0dz0!E45 e-?3 7 &6iieE9 6XG{'0o bo &%$0 PFdJlz&>UhE=^!Z10! _V, $*$d* Td$VcR( bHD: # h4>T]]9 M 6AU@ù?@C?@V_#?@ zrC?@+>_$6>M JuM` ??u` noD<Ju ,u ,bsu *| -Jz@"JL>Cјղ?@~T]]9 M 0AU@H}^Wm?@,71?@[>(?@Cn9`P B0wR?>$ >M lJuM{` ?E?Ju`bJu ,u ~,bmWu v {-J)yt@e"J>>?@zc?@c$Û?@s?-'7/I%u'A-(?/I Jt+  >Nkt7"te"^_'n3%':4%'~7JJU2zGz?CUUU@MJ76yAZ2bUu3 zii32Wb9;6B13115 02`?CopyrigTt (c)@W20@9@M@]c@os0f BR1r@9Aa @i0n.@ AUlT@ HsXBe,@e@vj@dL@14[13 'N((3FP% 4(d?U3 7F@T%jeE9 LVXW''0A0A0F-!D0 lVZ9lUhzE ,5i 1a^*0^dJid:SYwh>F R e?ijm$*D@@y46$d tNe%7lb+d hc٢4HD: # h0>Th]]9 MP !AU@܄?@?@oEݒ?@fc?P6 $6 >M JuM` ? ;)u*Jt'  sZlta{Jxlmv _=m)>d3>JU2zGz?CUUU@MJA@"bU-#z#!bs!#<"bD)Q+Q&J[ 'N((?& &?A<$(S/t%UB115 `?CopyrigTt (c)802`0980M00c..0os(0f62'1r*0c1a60i(0n.80 Al~0 .8s2eV0ej.0v0dv0!Y$-X 3  7&00b59 FX7='0Ŧ&$a $F8JlUh E ITh]]9 MP MU@\gr?@KeF{2?@0_'LھP6 @M >M   $ 83]L3` t  3 3  3[3tJuM` ?""."B"V"j"~""""u)Jt!  N7F$6t132_y:G#7.7w%5%H=!>}tJU2q0?=@M3J6Aw@]2b8Wb9;6JJ[326C?IF ?PA?IB3AA5 C2`?CopyrigTt (c)@2`09@M@c@os@fBAr@Qa0i@n.@ Al!P Hs%Re@e@v7PdP2AYD3-3C GIF5@AbSU9 VXyW2'0UbIF!dDa VZlTJoAT>Uh<oAoA]`t AVb8`3@X?@ bgk@#O 3G$ ):r2JXq@|KC8 uV_Itu4$9K]bkt)Y?@>W?@t |jdEJC!|v|#t0\|`jՉw?0GuN.#?ɿۿjjt^qt'f7?@?@cVB?@-~̍{U |S r!|ÿAD:|S|v|8O/w#L,3?j~;̈މ Q5?@]}W*??@ׅK0M='T!x\.!|[2jq|jm|Äމ}ƒpJ?@Ggo: xυAf%r1$yA5pt| D(ǓI |!TJψ' 55)n?@dѓ`iDF_ὐ#ǮD"ϑ<)tyϏ6qy-8n|r!t@Ikݟ -?jta~TUdQ ;f |I ([%6qZueos@xk.?@U.foB]ra 3z׳]yqʰ-;bq2"HD H# ih ,>T  9 M#EMUFuj?@&d2?@ƒUһP6  > M    4/ H/ \/ p/ / // / mJuM` /?*>Rfzu#J"bo1FI AcﰿuJt  ?t,2t!72B1>JU2zGz?@Mg3Jw6A@-2b8b9;62 !4JFq3Bh32.F 2A2b9ZK72i<2?*q3AA5 p2`?CopyrigTt (c)@2U0P9@M@c@os@fBAr@$Qa@i@n}.@ Al?PU HsCRePe@vUPd7P_2bBMq3C G1.Fh2!"t%2eUibE9 h5AXzWW'0Ub1b.FE0I VZlJ1T>Uh<11@ H\p A l5#}Qbe81@;X?@ bgP@3 ggq3 6MgW7]4JAq@dgLjv2xT?@&e ?>Ȓ$YOA"4[Dzx=Buگ+Bu#տ(: (-DT!o Ut  %"4nARB"&r55Hu™0PL?@dl2,|?U6XB|$e6XxEt\s綡?@kZO?@-9b?@B(® Ǣt/y1MB|sf| +6l|?MQ ' K +Xx}uƻ?@3W?@tM/JCB|w|RDDk|& mzf7?@ݨ?@cVB?@w̍{?PFk%rB|:|F,r8|?P)̿޿:Q5?@P[}W*??@ׅK0mM='a3urB|(q|̔mn|{iϡϕtZpJ?@pgo: x+y|xutyw1B HRs?~dso@+ho-BGD@P_GZhNQJUX#8\ѩc+UFD  h> T6D BU????Fx<F B/P(?3P?|C (^-  0B`WWire]fam,\wUIus}rintUfcpoymckpApUlctoWbed*ac"sbe^ F%B --H{ mj? ~?|?<8M;G3?n333?3? k?I3 {33 383?33^|??|nr?3);3bxBP(״??g*+0KҶ?*?.U5 ÓI&5?<$UH TD &# J>hZRMR"Uu!]SAGLD VMA,lWg7GRql Ut(%EaUQsgH ~(ày8?F~p"Z ao4O eA_DHtO3?FIX]?@fs?Fv+ K7AHPyߖ䰜OC.ő"#*tu尕~D72SőMC!RB _&x_DXP'u[*jB!e#dM׉Yb藛A4+=ɕteٕqC ?FD@?FI][h aӰDW-k}̒cuٕ86 ?F ڜ?@9HBV?FtQM_3LA!uWir"޿xٕ- [?@dpՉ?FJqy7ï!lz(AhiW `_Mϳϱٕg{\?F  ߩ ﰜap` ?%%N`ߢrEٕ{@ٛ?#F1ߨ!^D'DqW4Q8 $0BXj]1G nCgל۴ƟؖýIgcpg?Fm1K V 5ҹ_ :WuC'Kx2Uٕy`*?F!X p?FztRvȖ `ҨTui As8ЧW`tO -uÃ뭤 .) ʉte(Hs 5~si(ovհ?FQ~ksm^9`Dj~UWc&.7Iϐ?@˜%V?FL/DAbWwppX0 YXcu@rgdve'?KssG?F]K?@Ke?ӿSɨ*Ԑ7AN @Y釼if!Џ]ZAJlFbҗ ~=A>7b=Ag[k}oŘJ1*LUsqgQq Tr}Ty)TIr-x~Tq k"`p`IcGonk$,@qqU7_yu5)\(J܂dmwB ,snU@e8ko+_؄oTaX -o:UFD  h> T6D jBU???Fx<F BP(?R3P| (^-J G 0B``Wirefam,\UIusrintfcpoymckpAplctRofrsdaog$sb$ ma e^ X%% -Hu |8' ώw@Hww_ >?nDrawg nd]dopi]t sa]u brBa*iem;.bڿoxTB$]]9 #zAU@??Fx<?P6 mu` o?u#Qrr<;>A@]@aa. A  > MJ\}<?& ?A|baUa` FilR CoR orz0>UhhECGQ\#/J`NJF9O Or-B  ,HrMY8m@Kqu3~pEGu E{pTxu2v;'2rRA ]P'2cg8t heDCGU88rTyM;;\2CC3-d BJXcTQQ S\Q&YcSPau`d\5!u@r?̞B#uL@[@x\23*gE̒Ҙ: EQuD, @jqV3e E9 MdxOz6z6]UaO HbTD`xP ȯگrXMW'd%r[uC-! qn n)EH9 ٥q4_EunmFzO#<|>B 'z]Qas]@=+C]x }PUFD  h> T6D BU?X}U???Fx<F B_P(?3P?| (t  0B`NWirefam,\UIusrintf*cpoymckpApl*ctocsfrwrdWe^ *% -H ]?   ?.-) ?i33?33?݌e3e3?e33?e3 3ytojb BP()A??/KҶ\H??5ZU=5? K=?HDB &D# ?h <>T$P]]9 UÍU@XU?@Ԫ?F BP(?@)Aº?P6 lAT >u` ?W."G&,u6J2U?YYYFuu4A@bb !xAwwwL?C. ?[G%` LineCol rz-"#zbT[S` F l .` Z/2%߽!ݽ%%![k3h#""+"Ph\4>*l1k1s7;`?!py igTt (c)#@W20/@9#@M ]c os f!BR!r@!a!@i wn.#@ A"U HsmBeA@e v da@i01`V s_\ RXYa@cTm!#53@1O67h1B\q@?HOFMA87AT_>p  ?@CE@>@uL-,v?2BSvQ &RuQSep7z!\]Uhz Aa\12SJrQKQsVO@,S7aYhe"(nYo O+xP5eL2S^PO4\tE?oy5~9}ew.ue?&VT2s+xE~W.u?U~o.uob'ghyaeN7bTaޔMP%"JT11 Ch1CI'@^AD%%!ڐ7K,@q8ab59 < DrW9k3ac>ˏixX;g5'bD~;7di!0% 5jd&8{;gV!36 1>i5_sϊVH_9\s ":,$*_AF(w8#ȈwB sm}@etoo}+qoMa  oUFD)  h> T6D jBU??Fx<F BP(?3P| (^-  0B`hWirwefam,\UIusrinUtfcpIoymWckpAWplctofrsdaogB$sbR %hl Hbe^( h% -Hu p'9K]wtrDag] nddWopitW sau brthe cp4Lp.bxT$]]9 #UmU@?Fx<P6 u` 7?u#eAE+4:DMJ\A}<? ?A|b@Ua` FilCoorz9A,b #zvr6b< /"/4!b(' &񅴍A2U"8A$( $*BA-%3s"zp%#D?`Bh4M:G? !C4#1BM؂XAAG;v9"`?pyigTt (c)@2U0@9@MS cosfBrԁ@a@in.@ V! HsBe@ev@dt@@1`VS s_RXY@cTm!#5@34L!"\$ǍqHP?G_YVM?\.? !_;!Rl>0>Uhh5CvA\#/Je`F#f$IaX cbifM( a-oRne3noowe5e$fo?oeE2o;"rA @"s.SgXhe979T$M--"JCTXAXA 4wCASS@Au@-T=%4K,@Y_q.F`n3e59 < @T66Ea\RjiЏX7{'YTK!Qn {xH `9g_DʪFh.W#w6B U']Ua`t@+(1a C PUFD  h ^TYYVUF88??x<F BP(?i3P?~v`:DD\fvv霍UF F~# @Ui$!U$ rR"#)78H"HMHL[0 `workfl-0w`/cmd=3Iy 1Ik1p4;1`Vis_PRXY.A0hC0!_#59042]"`?C-0py/0igPt (A0) 2009 M0c/0o"0o3011r0.1Ua0i-0n0 A50l 7sBe*0e/0v/@d00e7% 3$1S29w3 w7? 7>AhBBBBG&? :7dt5]\nF7FFRFF BbL0A 11R` SPaE081161rzV_k$3 F0A*g2 f"3 DoeBE2N贁Nk?OI}B!^`b` L0n/@tpoi^KE 9E]zoW'2r?qF!D$1z5 feT/@x0oq#a7 i\5QfffE\/uR *5K#[$$L%^vF#2a#M\5鏈ndPa'!T>A>A@Ȑo9Fs? 8#3+ %0&2p3B A0A0]`N`TWO0K SH@P` 2OhRVI`SK1QJP5&X4^CPUeA0k u1D 9m2s D 0`A`ASȐY$!-."+;\2H##KB)Ub)RofR||b "H%vœk1Eբ0.c.AP-0at;X.;; ObSпF-0u@d`H@D%RTC,@²\5fZ]@W3&{01A0U60dI0a00A01-030d0bJ4/@-30e0ubf@480}+KE?!0Pʮ?1(N)U??OfUf]@0+|TƔߔܡNeaUk;_m H*6N秊HD: # ;ih#$>T #3 A UF\.?FL&ɯd2?tP Z>u` ?u4# t  9t-GDB8\J5 `?CopyrigTtJ(c)J209JMcosfr!ain.J Al8 s<"e evN dF0  `0^%l>!Uhh # t /J` ,"  R6MB:?:4b30l53@}:?N6?p1x??=21l5%2?5rA _ BC`#?FJů$?FX~wZ?28Pzu` ?7uu? .1J1i 1h j*}cisځ}$8tTF ]Yj?t84 28?u` ?0u8 1r *;Zbi c28Ɠ?2P@u` w?7u?K= JS9ukuBm  1\2q??\.? ?A7}`?Copyright (c))2059)M!coKsf'rTa'in.) Alo sseGevdg} `0HGgGlGr0d'G_2lM EMFD^i-, +@^`^XLg0@u??@ @K<Lj@w >5Aq=A? UAcA*AA5A(ͪ}@?3p?楟A +VA:#NXJO= Gsss3@U*$B:N@dz*Kɑ*߼- >8g 0wT5> F@> >!b:%U;C(UP        J"<CC(^)C$)^TNPPQwC$J ^!k$r-6(+8g?r(??05w1 0? ?25rGM?w4<); :LUKAJBHCW EV V +U !W?S 3YSRFZgQYYlZ?~^__? -"C$^xg+@`z4W4S4e?g|0*: eD=g1_?4B5"G0|.I%C(e;j%! ׫pVpq @_Vk+p+pn qeezh9fav1V1F%neE $1w?qxA@ˡA'1AqdrGȏAqqs9Tr^'rqP?@F'rquL7WA~@1.A-A6=a=A.JJwAx9f2f"j!rr@=Lzoo '(L.Ci^)V% s r-ATn-pwnC AM} MpwT[ f0 ؍pر >g-pg;X >ɐlR%>(q[,J\i^;d|pw @;I`1 Aj]1Aw)\uMLIKAXIAsh3AffF!A"@Xeg~:erzyȏڍPΠZMbs,1ZEcm̿9\;A6;ҟ;1,UxlzځV A7@}?!A|@)AO@I:=b>~==p.AףA.AZdAX90AA1®G3AA4AB`A4p5A+AtOAlKAvLA%3A!JA($>M-AFU(}?A9&%!EA+FA3ANbF5eFAu6Ҙn8ҤpS-79AS1AA&!@BA@v:y@V0>q@h'rszүP,vV1r-*w WWCr-W1ྍY due]fmf{}w^wEin᧋tr-@}|}}} 0.mS-pe]^ w[q̿޿l{]rj  ]A"@ ߄@8m?8 Au7m@pSe@URM߫A2shAA4uJ )8rTԧʡz!+=f!z! >.>5^>=>C<ߦphca␿?>/>f:/L/^/!Ep`  `Ep *p p p ///340fe!rei!!d  wN%V1N%Oz9 ׯ 0>030[0]..'5?--: 5.4W~?,334:52h?++ 9 4 2 ?77 28,%2=6/ "72 ,%&0 1!/02 345'' /0#$ '}()* +,-.0 !"#$%&'  >@ 4QJ>Z ^<0Yk>GY@!AVA@+D- DA:B`AQBAAj=%?AAV@AA9BA~r V@b@@A"Q= 7)RrZAQ6QA6QA.QX9>BRQQRQQJQU8;^]^ߧ@؞P߱7K܆47 U;`;`7`MWA=` `A`pQo0=Daۛ`M۫=``dgڝ&ံBTfxXLA-@l/Ao@H1_z@RV}AUFp%@,!-r@q+@Ck@A`@@n@-@M@-@~uv]FXjqqvJp~aʡξ}?kjk0OʡbX9_=j|K h<> rM@ :"x[&4@J$> > Z:mS@ S@$@zT@Nb@wWaͅ[@S_@ @Ͽc@+p@T@'19p@Ϫ@Qխ@/ж@&1Az@1JA@\VA/݄@W@@`X.Y-PHQ~y@}?Ypu@ˡG@,!r:Mƛ?Zt@_@~q\?j(a/?%%POAp@y@A_s@Z*Aɰ@@)\@Ƚ@Zd5P@@@@Xqp@"UhrbVAףp7@ÃÖqNb`@_-P@]@r\$H¹^uxN܂Ty]____Q5G~a5f5g 7I8I9IBeMXIlkn\EB55!O`@M?M>}&--d->Q5HЪjqꩉw*a =`!W,eYO`E``aUp;IeRensd~a4*)`=en98f9oko(:L|R2 L2 bu> oHwtDAZA2ff8AZAEE\E1j=Z6ZOwA׉A|ppAw|yZyX9ARaAMq=#ۑAtǩ ʑAwAPw"d;ٰffAWp9P©ûprHˡ̴ >>>T`ݬףj~ ~~wyw נ ܾ"@]P9Tw96J&9 "ˡ@B"uN";jZ"dI6!w\5"=ZI"&!J!!B!! &vW|!/*[Z@T{*Z.FF=l?>94??NX00n0 9҉~~aKp 2 M р )@*006d~o,g JFJ%F/F6 +f":AjE>OPObE @C6N5O EB0vI1OH`ICMO]LIV_0_GVINf_IQRvI _`IWvI1_I0B0en҅?Gm0nc рT0a0 d рa }6f0'.xsպaV e0 '@rqjf.n)oo0sA&q"qrq, >Pdvwuqq'$qx.*4FXl~1u/,ʏ܏3u62&C2ADVh|CbQu¡?<ȯگ@`S*FBòL^עl`+4@@Nf!)12B)[G0Ֆ:g߬_cӮ"e2[)Px!J0dE?7dH'33==5No`g!$Ԗ_(.3Х7757Ѕ_odC785?`]JDH}QH`r]JHnDj?O8R`j+]J8O7ZcZмTZVR)G=BM?/Vx?dC]JQdU-5n'`Ko]j2<ê5 'm!B޹ Ufz GJI6DCK%^@,G $%ߓAX̡A'1A| j͆πϪϼȽ`W`zEjЃ!2DVhd`da1){@')1%/B/Ȟ1~A(zEՈD45 $h衒@T} YGoB_(HAs jkQ+w9CSrF>#7\(hB t@eko+ocBG8roPuONWcVUFDfP h>$/T 6D UUF~@xT$N diIh>) e0T9 M B FAU@bX?\.uP6 Aܿu` ?_A@7=5GQu[(fUau`u`bu`u B($>U@f@X'P%7 Az'6-='l(280?@vKk?45?(@X92V* #LA-hbrO@N3mk2u.h(<KF922D8hapK92u\C9?&,<?/M%I#AAFD5 /`Vis_SFT.chm!#5028`?Copy{0igx@t (v@)@2B9@Mh@c{0oj@ofBAr@Aa@i@nt@ @Al@ HsBe*j@e{0vPdt@@u0x#IA MG?9#2B[ DMW`wBk@l@]w`/v@mP=3yh"Kt7";GbA7"J&l_>'8 \#I#2q L`MSg0SF5B\Ej?ofNA?\ZfoG=I#NF DNCMVMV(IR@$iA2E9 mxoTPw/'2rLbMV!FT Pv&ZWg  aT>@"$K"+X"(e2BA)rR'Q'QcR䌄 완M覄$1`Vis_PRXY. h !#59087`?Cpyi}gPt ( U) 2~ 0| Ui rsf"R!r a iUnn A l 's"eb ev" dn ]3' X#!"E# E'? 1*0>2w27 &~ 7dM@޹nFFF}Bq6q6 m2b A2` SPa !!!-rzۺFOKh F` !G2F"X# _EE2NNk?I}YC.R` L` n >_ i5^C5 Muz=G'2rqq6!j4H% VUT x _q#a7 Y5AvV@vVvV\5" !"aR oh  d*%dEN @wu w5,{Vzq !"8]A d lT`"!i e 1m`"s$s da('T 1 1 =)Y6A/#X# %f &"!! YA@}N_PTWOh ]K SH P_PU f"OR`I_PUS!Q%g Vk͏ イ$-*"2A+C2##)84BEcBR,BT@(Hb*%n,}5vI9!Z5[ .Cr!PQt;u*;OSد*Fu d(4bC5f+0WX#&U{ 1 6 d ua0 14u4 4 -bl4 - kez bꌰf 4 2}3n}4En<}cEn?~ H+0 [ 5e aw[ OHĠNŖHD: # ;ih#$>T #3 A UF\.?FL&ɯd2?tP Z>u` ?u4# t  9t-GDB8\J5 `?CopyrigTtJ(c)J209JMcosfr!ain.J Al8 s<"e evN dF0  `0^%l>!Uhh # t /J` 6 `,21"  )R6MB@ ?R6?21l53|>??Ll59 6 ?(?Ol5%2?rA _ BC`#?Fx&?Fx ?28Pzu` ?7uu? .1J1i 1h j*}cisځ}$8tjT t8i 28?u` ?0u8 1r *;Zbi c28Ɠ?2P@u` w?7u?K= JS9ukuBm  1\2q??\.? ?A7}`?Copyright (c))2059)M!coKsf'rTa'in.) Alo sseGevdg} `0dG|gGHmlG0 fG_7l EMFxr@, |+@`^pdg0@u??@ @ @$Q@@AAA!bH=!'G%JVV0g;u{}6{DIjJA.^g/@wv^@@?5AA%q=A"SA!%-"z߈A$9""@:!I&;M"OM""!F!"!>!"%"!'cI6(p'96IcEU(;sq{Y_q_;@1u0Su!95}XL'?5]0 5}/0~x2] 0xa0~a0W/}]0}M6<>j))" $^rj^H4zzX9@{@HAjElC@fAzEjA%3 *BfE@TRAz!*A>#=‘aE?PP0)J0FXM>UoV2EbE!Vl?zJRQZp9%)Eّ__aVjzQQTcpPa__ooD'oaV ChZaTa bpa`oroo֙oobfQ Chaa [rXqoo/IrfQ Chbq^q rqhzӡrfQyqq c`C%7fQ Chjf pϩՂfQChkh~-?YfQChrnxz˱ßݒ fQvFesp8 u5GDufQChzvpqȹ˯fQvFe{x(l=OufQ!Fe~hӿ"`€ 0c_ Vϴ_zϢHIMj1zi+3H@0{4 2Mth7@!щAAHҦґ@(@R%**"`ц/OOAOO>a7=Ϩ`,QYM!J8/_^4G AA^A|?@?)>_///Eϭaޑqz??4p!j % UwGAa i2 ޑց 2DV R{ha@ɆZޑ!! 1CUSx]PLa!!!! /0/B/T/fn!r//R>!!11 / ??0?f)r`?r???RZ!!AA /? O8O0OR~ q/kO@/O1ja>RQ/O __0_fJQN?`Of_O?_iba?___ oBYNOrqOooi)'ѐց@5Aw-A*VARAAwA?S=pAU7Rv/R>I'LACn;n%?+g*y/gpb6HZlgy~!;wUPRk5]L?;?-;-7-EAͪ=55_z4DiR_ўX)Lжՠހހᴑ1A=AףA-A@)J )33AA>>E^A#}QzAz)݁]S]9AQAwy{yߤAǍ`AshA'1uQxyAAjAVwA࣪w̷ ѠݿIݶ"""ޡ"֡"Dlբrݢ\bbblʣEˡ~桢ޡ֡]ijT=)`{y^AAQwA .;jP=_\>? ~Ҁ?g0g >vtהX#"!w ayUy=@Uِ6ה_p"">U Բ"OՂ.@R@NjDZx"*DYxaiJAZ~x"}F} ɁJv)  R  d * m jC~feyzzYI"q"ِ މ}!fq `"4*L^#zz` "!*}z%z!!`"!/*/DpGpJtOU[`Rp`p`tHapa)bGj#A]pGu}{vun[Aui?pdjեbd5dEeJ eQˏ5QERIRMRmR*}M}H;;U6111s51E2 2\A~pߕpN/[fEEAȝp@S5O5K5G@BCNC~ ~qd"A[lFihAh@qYe.vaadaDud޳hq{qi@,p q=AAZmA`mo$x2DVyW{'~ўIIЯjmHAqahva0$h\Fa.A$@p y>–C@&9?}#?"!?5@S@>oTZd?@sh A:w-Aփ.E9A~BAa҅abыl Aå9}R~~ќ6tӦ8nѦf+B]Ҟ,kJԃ3Њe*`QBb@d#Na*S== ~NaNNpY=rSNЁ ancW>_T>!bPbu " QY0 `(\ P±`rqRtpe`,A58z *c e` A )   ~ Y+|x }BV± = ArCAJaa.va~1~TNPPJae(͹VVP daGa|.T?Zcu2^h?f劷 z ! !@  @  wwx ff!@UV!D2@423@"2Fjo|oooe?ooo*u~ƿؿZBs0 aI@Q@PwBJ!ArO^VPVPNOVBVOABhAwO@%"mBOJjA-_WV@I AR*Q+_PP!E@V_`IQ_ QRwAQJ!_*@uRVq(:L⩀*2m) ;h1 &3_q[8.11q.1ՈD45 $h8|ߧT Pn+OB_(HL ⠪EBq"F>#]wB uuU@ekwo+77yofBGToPXzpON{M CVUFD  h> T6D BU?XU??@`?Fx<F BP(?3P?|; (^-  0B`]Wirefaum,\UIusriWntfc%poy]mckp]AplctoWbedac"s!ssH$be^ R% --Hw i] IA?m333?3?y?3?_3m'n~ީ}3?o?)}y}3B3 "4> sb BP(:K??VLҶ?Y\?̗K?vMcUUUuDlW&e97?<$UHPD  &# R>h -C5Bb=I !H>CN3BB5?N??[N;Am1@G%` LineCol@mrz1@"ٓ;@ Sz1@bT'1@>B>CQ3 _V>#5D`ERpXI =~WcSCNR30@aQW!B`?Apy@ig\t (c)>`20J`9>`M@c@os@f` AR@l>`5gsbe\`e@v@d|`P1N`V@s_RXY|`c\m!#5N`46J`Pt\4q`#?ov3Al%k  t7J`P sE@J@CuL(E-1A`"29s NQf"_@s=NRZ"ruqMS74k =BnA\W7BlJ4Up] e8&I]NQ*tD`!p%a9 QMs8qfqjmD?@ Hp`"s :vs y#>t4HF<{Uf#R+gtUXa:ǟ T㊘UFk#<o1w \~ʝ$Y}7@UF\ihct̖?@çly)?Fg,d7\UH ~?e˜Ndx˕f#T9"iJt޿5_Ks 3g!2 TEZuFا򺬜Ei ơGEO~9*Υ?F2W-9#5ʯi ebKa5qi ɚK ύF} "ǻ<:GʝtǍL%Fз?@@T5A{+y&%hw񿊘O%+f#}V7t&L!f#>@1Lt@d7?@6δFX.1?@7Ii _-&1˜Jd݃p]؂wϳό쁞;倈46~i n NuT<-?@gİ?FB?@-Pͯ\hzF˜Nkpa-t![1webNQ UVͿh!Nqա93?FX0sg!𸎃ؙ%\܂i i qa?? u,񄣾 ^uCn2`onI yp84{enߜ˜Zm ?Ļ%yp~-=ʡr! A{aǂ:h!`] QxWizT?/ůc/V!ϚؠnrC%[k?@ѻ  ǨWX-q jω0wse˥)& +'?VVvFZT!ҡpKȹ\?p/pd[ Y=ɲSp?g:XQ]ᑄ8崏Ə؏,>@,w/;r~+(_xfZce40$[)Q_N`w$p_Xvd̪+?F[w?@D4\蔜*)? +%qsi %|w?NY1Oâ ;oq6Un?FWZbE/{\,Op9_pt~5iԅkoO<`o >FG߶}%w++Q\nt{\?@_,S6~j˜`?ԆX ~FaC{WEX!',JH = -?, FB{s)" %݌jTrOQ`_7Zu |r#9?fF$!ѿ+?{sQlg guyt;]Ft?>%_d+B̟`:Rf"D_RF)z>~gj+Oe__uyD@S T6D BU?VU??`Fx<F BP(K?3P?| P(^-:  0B`WWirefam,\U]Iusr_intfcpoytmckupAplctoWbedac"sfd$ae^ F% --H  t  % CFs?c?3?x?33?? ]3|3ML^pz3 p*33?bGzBP(״??X%KҶ?`?/_U5T5&mB5?<$UHlD( &#  >hmcz>ePbTePrRrS9a>oPf2@iTU K=gkcS"bA"SdP;qagUR`?'apy.`igxt c)rp20~p9rpM `c.`oKs(`fpr'ardp-aappi(`n..rp AlrpiwUsrepe.`v$`dp`1`V `s_PRXYpcxm/ #+5p46a^\+TqF+?*<"SA5 0TkEbP` ?@4@.SSuL\U-eQ2e Y02 P ]b12- u `oP1"GT0]0!lwGR U _A $ [PTQ1$$10!9aD!YqaXg3?F8jZM2K 0PTX8(\±éЯ⬩eA_~!0T̑e޹zG?F?@DM/`2F K7A`'3[2i&_ pXP1 R d ,u䰵U_.0˥}?F<{nCl?F#L&ѿ'pY7 (>PώM=%ԗQy@?nς3塛Ϧn fS?Qcո`*Ǘq.?F:c@Y>Ѓ?F˿01BS%̿5{"x<A0R1i3ʢ (:VJ= ףq r((3ʢ  s꤂{1 t(niGƯ3ʢղ% 26Yk_,)=С?F[ a= ު17_؜S㥛?FA /&l? Y%Age/w/4F%%=?5؄Ўi|?5^$?lY O!; M?TQE B%WO3=OãȎD†BMbh?F?5O…BĿ5P% rOO#W†D"΀_%RQȭL.U…@ԙS[{^g_㼟R]fl_ Ҡto%oPBgoidT "?Of@I +psooۇ}}f+x"6}%7XvT0A~ 3Ɓ:\}p= ãʢr4`yӅRoF~md3"ЧfC؀=lXoJC(R,u?Qؕjůџ!.RĿxvðRc( C(!51 *^"4͛TAޯ֑B#C7T@ߚ~_ȯ_ҔcVB)qD9w o2bl&R 8orU7aؖdPPeM0a`y؉{Ȣrx78?FVj)=\S\"rEM8IPӐ j/QhT`I7IUWEcFr#߸ aBـ߿E8_Eϥ`Ģ `X?F$#+/0_o!l̬`ѬI4ܹz @`?GM;X80_B_P/X5_D|=_{-V(__L__Ū/// ??0?B?Хr/H //>Ӭ6H.QUg˛H 7"X x4 g@>ah.?H ?li>OPNM=/i/f < ooo fbooooooooFr+oH JoW\/<,COHgrO\ݱxOp9ǗOO>H ׸]o8U@rB@V&kCP?y ٯ4I.,O܏_.oϤϥ(fbO8 SS3EWiΠm4?FP_Ӑ d[\TfůJH2 ~奔vx< _r*HI[zBBϡP( YV0BTgaSP\ D1 ]o!" n$tv!8J 0 tr @_Dds2 // ĶY/>}///&/5DV@_xWL?Fj M<br+IMʄ'sObXMtφDgas {0 A Ao n ?Fy|Db %.0OOP2i"2@]}~V-M CYѱuDl3P@<ײ?Fchw?ܓ%7ԯϚqqVʄ,DqLY?@-iUY__ r/"(\µhoPYoiVeo1A?U@Yb9]NW@Т?Fº__ّxVu^?2GGʼnC%o7o>Ֆ}p= lpOݒv_?_AlpODO>cEO __As0OBOrOOSиcé4l;8RPWq ?=G\7 ?,_U@3Wҹ7@[8p?*w$?1$H(I Kv?@o //oPgRtȝ¶?ݿ`>ߝӟg`DY-T-?2sT;$ĉB- ;GTs/bB`s`IconD;ð,@7=q DQ7IE̥2\s?F P4L0&9mi (ߧ߹ߔ2XR'2qk?!M U2jCUg2{Ḁ:!Q332̥^E0ӶC_vHcs MeP@M< F86B#x}QB  wNU@e,kPo+_nRoPa%7oXPUFD  h> T6D BU?XU??`?Fx<F B/P(?3P?|S (Н:  0B`LWirefam,\U]Iusr_intfcpoytmckupAplctocJssWeB^ &% -H ~\`C||d{as'Ï?g?3333?3h? ?333Z3_? Z!~? 3?|8 3u333ww Q 1DC*b BP(Lͺ۰??M/KҶezxet??VU D'JĤdRU?wAk?UH `D &# R>h -BRBfBzFFFFFFF (F(B.,BB,FZ(Fn(F(F(V(B,F(F(F(F8V"8V68BF<7f^8Bn 6<P-Iv0BxE~F;C|&.Ml I(:L^p߂cÜr-ؠŀ 4M&㪏AlXUQ** ?!rpjb^_y h6r|/ / ?wQ=/O/Xm+vy?@` /i?@jLz/E Mu b/@aY&UC/ ?/XF!H46{/ϥ?` A8/? 8S );M)dd?@0gHa!"u Y->>'h?@%h ?FB¯?@тAO@`2u xFoRO(5X𯎶۷O?^/FE֊?@upGˮ?F<p?@?o`g_c3>u  @Y?"IzFfU6!No o!?F0,Uh˙?F(?@?-ݠإgoK_i(X3,}qoo g__rM XI΅& s+Lhǣȡ_]߹liX߯:HQ/5m+VoW@1qU?Fډ3?@Ũ̌s zo jXrpoF L<?@-UZ.?@:_ȹտÿJ3$Cu >`%qX:!2ɣ3Eܺ _r$?@Fì3K}y`#^/;_ 4^t'՘Ec- hm*m =OW=eF o?@ f6_ެ38/uD/Uz1` HP/AS tXjF0뷓uHg)9|{F!̯d)GG%?@D?F8]?@f<ɿ+L]mP.VFd߯ PpBcɾA9h8#yQHa/s$!/$?F%Q'?@Nxʎ6/=O ^7ȼ?F߅ CHiPhN ,ᐤEn|XVWm ?I45ѻߊ-ޝ?@6V T6D BU?}??PU?Fx<F B_P(?3P?| (t  0B`NWirefam,\UIusrintf*cpoymckpApl*ctocsntEwrXeB^ *%  -H ws  25?Q ;3w33w3?3 3? 3?x|~??3'@n~bQ BP(??b//KҶ??4俻RU=忬4?[=?UHdD  &# U>hj cBHuR2U?YYYFAuP@[bbF !www?_.?[G%` LineCol rz"#zbTSawS.` F l .k` ?2%!!%%H!w3#"+"@x4Z*h!Ah17`?!wpy igp}t(c)W20K@9M ]c os f=BR!r1@!a=@i wn. A2U 5HsBe]@e v d}@01`V s_x RXY}@cpm!#5O@1O871\q@?O VAT!T8_b  ?@BS @uL-H[N BSQ(BRuQSf*!x(nT";xl5eV\(]Nq$I$||5~,>u5or2dooooooRљ?F\.kV|Ɓ;~h4Fj:Rd= OףpyN%I:q}ɖ$HC,Pbʏ܏Rpʑ?Fx4U@@@@r??n67',?FJӒ~쓘bFt!A8Q)`n _=c?C;nFt T6D BU?zͅ)U??@U??I?3P| (^-҅  0B`WWirefam,\UIusrintfcpoymckpAplctoԸWbeUdac"s"nbe!^ F% --Hu ,33? 3?43 3?O3 ?O:KO3 <l vZWOW?63?b{Gzw?|?]%tN?zS?s*"iJUt"&\-k7U?<$UHPD  &# R>h -PQ("=Y*ሶǪePf̤Ob;aY!]!䟿 x! ˿ïx"ƕ& ߛ:iXh "ϝA8/!F@ϖ˦IQQVxe A!@J?@9 {ޜ:߉TGaƶȸ; n&)א?Af2?@cBڥ>؇apY :؉ͅ10uy嵼?_TШߠ>ǯDqxGߛZ0L7+',,?@.AΙ?AT o/{^\>Y_Od;f܄-؉BSj~}(杻^eƕ ɨZ-F°u?Av 8V Y⻣E腬\)~]D4q&,e`x"ƕ2ߛ!]ybՠl ?A^GP$!~ &3vb'n:?-!l~"™ˀ$'ߛ!?0g/y$zE2o(+dPAwʄ?@^e%~Y!DζM"5Ͻj֧b 92/*™_sKA4ߛusf܊6L5AQdf?@wϸ.Y?Y'9/^.؃-e^??2™J&RE#ߛ#Op.D66VA`(bfC"QO*}sOsOえ_O :?ּOO7™76n?=Whըa%xA*0ڤN1?\w_s#?利(v`>+!<2_ o?ƕyeߛa/j -?Qc d^瓞(Gqמ*_b%H/|F%kJ?= EW(/{"[颙|ӂُ*ds޾@zo` ?G'13E :Z # Q'p蟢OL "ir֟mTf?Fҽ@@u  Kҏ$/#\9&&ꢅ8/DQXs/kG/#/=x~/q  '?@6\ 3ٰ??@59(W?N?j`S6VJ0?_? @TOQoR-O?O@{\D(Q kO#ߩR\RO?nOOO _R\/K_+tV\&K_@` ik _o7o6|mo#.Af ѠoXxho*Dk>k .0QS T6D BU?V=U??PmI?)3P|N (ҝ  0B`MWire]fam,\wUIus}rintUfcpoymckpApUlctocswzNrdWeB^ (%  -H j ?|2.<+&~  33333?3?3?s?33?3y3? ?zWq{3IqHn  zxn3b{Gz|?&X%(?VU5<35U?SEUH TD  &# U>hZ Pth4J*xV1w17G`?!py ig`t (c)/@20;@9/@M c. os f-B!r!@!a-@i n./@ A2 %HsyBeM@e vҜ dm@u01`V s_h RXYm@c`m!#5?@:AAґ\Ǎq@?OFADCT(_J  ?@CJ@uL-8K)> St2RuQWSq|C!hS*"*?A%`< P8S a"YKYU +׏O}:?A.?";=w 1$aJPu)YfyӍґs?D* r9?]Q/Նay/?A~9^I z Y顃ځay&l %_g탒xQ Ws`?A{ɖP`P_qYE[%Dx$/py?quQ *p?AL<l#?5?`aVP{鞁6!Bѷ?0?~?KqyOuq L%u?Ay):?OcP#Q|\QZHTOb^$P?s8? Uy#TOׄqrp!0]o%|I:Mj9?Uu q pG?A W1O`hbQfҌ@vLR?՞߸ xi?Fo& qS"^F?A]|ӮV `^@ߌh%X?Agodm9W̸euvӒ7?AooXHc"R`̓P5~Wo3BtWu{M?-uj|vۅ?A? !YnYX&Lraݮg-t@չg/ ~w?N&9'Uj|[wT?A*@M-[asucۇVI!^1בx3!p?Pq3j|\ʛ?A@Tގ9KMcۍOG}Zсqџś?AןU j|l1/wrCQ#%Vcof"G}qfN߯S`?McсޯU!j|ui/e?2|c;wnQ>!a5ň t"I2rw~_7G?z+P!U#j|2_{fIWjwӿT#Zc_~aӔq^[?7_-Xo ?EPmu$j|u4@p '߫#{5~)^1OEݿXq?!fzޗQ?ՎU%j|H8 `ay;‡i3{A Xqm!S?ӣ>%((~T?Aʿn燡GVDQBlLx)(}W[?A$EdXśGEi7"GqU*j|PkP>ALC{)t]5B$/夈1${M]1K??V+j|Tt<0]UgS{b=J2?6)\H`x?: l`V,j|70?Aj[Υ-/?/S{6AEikyew/2/pA?61?>4eT4/ t-Y_P2?Ar],Ճ `Blq).j| ?A^zަ???c{-`#BlɒGq]?2a?最VaF7?rLPģ?q/Yl&k?A aEi+_)q0Y0?Alab+VX1j|ho?Ay]â4OFOs{ Xx]?2R.ьO2rUԉTM_?~l/w2j|ՌEɼLۿ__gs{%}@q|Zhqo2?:K/ل*}ɑ/w3j|V`V?AA GĔoo?{ [y\ ro~18?pL0~tu1r4Y%(~k?A#x@ٔ \] (Zm~15\Rb?AoÙj|W+Sy\拏 2$r?2lK?gRL6#J{/L4_ \?w؍`ᾼq7Y Y9?AoӟHY \By\&u18\1"?AvǏF ^ט:JT.u2.ؔ8>2K?A-w9\*"*%?`<1 T.a`Yy\U +k!w2d0?iԽ>| ?G"q=!:U]TPåљ`¯T[ZF'B`0?֥\ؕf!K?i ޱt->2??t㕾`?1ޱ:Yk0$?x&啾On?l@ޱ/0Sao?/3QW敾/ݤ?%;%ޱQ@n[?ꬑ~_\?q6ؿ1&ϔy'W?~:1?@}D'z?q^Q?˲Rߢ(hzb2?<}Id!?.R1)B?`X\!O#?b1*N`"K?Zqӏ\?R1+[K0O?ZY2?r5p1,4F}GV?ylqzmr?{qr e-؊P/]?uq~n? ΂Q߁1.,^! ?+ 1#?SF1/׽M?N ~ʛ?y0!?A(5?%+J111sR?paԳ?$ρ12O<-nrO'J1O?uWp݄C/o3Y/k/Hbk?l/i?^?14//w!?҉R(?Q׻?M`e5O15??Q?c8R?' ~S`W?|&I?o6??{]ҹ?IbOL?Oo7%O7O׽/?x~wa?&Oo8OOz(2?UuOR? qG_Q9 __׿a?輥j?iJDO3a:~__?op|_73@a?eD-oa;_oͼ]ed7~}o?RNooko}ooz?~~-ޔ?Doo=oo!o?Bh3.s?9@aq>J\׫r?-Aզt(ac?~ fv?pj!?jl@0Bzf?Hauo!?sAڨ.q7?xhzߏ6 Z?䢉{oˑB(U˱?Ӳ+rL?E"Dş>C㜠G?rMo~=j ?og_bDתG*.?+ӱX9?Lg_$Eo\8?)g?P58PakOd1&?KDaO GUgT/?UA?D}HȿڿjTA?lTA?.r?_W|wI;M׉+!u|>5D?U/D?cJ$Q߼?KSܼ|>q ?[v ޗK!3@bo?`Uz~<ؑ?A ILߦ߸qoU?In$} fd?RD ߼Mg"w?@|>^?kd/Nzg>ᩑ?|>ށq?]AIDoOgqoI?V@MBCA?XѓD/P`rgQ? #0"z|>^!-?E2.ӽQ/?1/o?5!0oRFXHӀη7?+ro?|p0VN{?nSgrgv1o? ZQ,>g]A)?:^)4@as?^Dla>1U7>1$>51da΁U U R !%uq6QU !"#LѪ%&'()*+,J-.0%12ф48c7U|!A$1$0@0Bx?A-s?"u`` l?U2u`` h0;4/!uH0%}g"Oxy銎`!2?꾡xΎ?_6-o6`!9irBVp˜.`r#;zNh<R<trqy:?ؑ}5d!9?P F%uC8J#;ك+hPV!V;XO}ףƏ?IaxOeޯ4t!9&pn?AAE_(V!;["1k9$ٻlE"K;?Z=0?Ġ?{6x!9tv28JR!uV!;x1 -͊ϡGCF'=YP?D߀6)28)s?Am2;#;m_ѵAk9o_eEGV?yql{qf2T!69\zNzߠ?A[_{R<|/]Qk9t~8!9m"lxz?A ǟ߱#;!ak9x2func/? }Տ6!9ao+ٱ#;)gak91#E^ ?+AA#m4!9eB@{?AGoV!;"k9J`r(oFM?NQˎp7?yD5!9S?x_?AJ~#;͌YF?+Z7Џ6!9Db?A?"Vht3;рԳh¼Oa?F55FM^?qOV 5;NS0T֨hst5OGO4}=0eO~w1?*OFT\TOPXS0)WxwwfQ=  VFGAy):K_5}?a=@hp]}e_wST eMmS`"oۻ?|_8u GמY"?A;XOݐ=oOo6}ULO@oz{0Aҹ?Ih!xoLuctoPX쎘//>?APf+w/cqdM@N_ ߐf,LI؟JY&k7}h i~uzTwg? V/'t4cGtvBT8}UߠW ̗ `-2?USi/ ~fw]F-9}Nq u8|s?Nq"~j?^Jʖ!~l>'I?a{fI:xH "|G+oBܭ{73[?eHʖ"lȶE 2?Ak0 G˯ݯ;}`ތہR 5e07곾۵jP#XPۿfzFwwQ11a^$lCȓk?A? [j<}2WW5R-~!?N KAϦ%l<-xW"^ω=}ÔA6[&߼^A?oߎA?9q/&l`Y?ASgȩ߻߉>}`E)vap_߼]?-qGtB?ʖ'lBO}x1%AejX+-k??Bʖ(lR}:3?A{GzZ(laX+!hq袕ٮ?H7A`@ϡkA?()\Vc#?A/ \Ej7 h%*la?AkCʯC&AI +oPMbc4{u0r6-0Z?Cl{ ʖ+lNԲWEKh`r&B͡!ƟAa U?l +r$%/64,lqT~ DJ/&C..4!1!/{uz,?nrh~j0?opʖ-lԕ^GBs?"?&D3DO=ao ƪJ4+`4=ؾX9?Lqʖ.lX?AG h"8/?&EMIK0g5 \8A?kfOEUOy/\+AspѸ\`hqe0l'lscz@B5v;oO&Fߩ4 do Umda&?1ʖ1LAܵ|@je_o&GV.mDo T?Uqotto2Lz;i@a sooH4.m@q (Uj@p?lj~t_Wp|ʖ3L0Bx@-sI.m /1!5?UN>lTU@?44 Ĕ(Q0(SUc $ߜ+(_~:\ApkMp h8\٧ p?A@j'sxJέ<1pЏ $0?`S } ?[9v=(Q_M?Ar]hӸ"K΀ QeNh 3?żඓr!?/e0>kqqZLΎ?ᵐ@RU?Ie ?a?"s0j婞ӿMȟڛj?X֨j?ȿQd's <9$DTT[m4t8*5{?A⪲ʙ\LqY CLAF?AϮN`.Y<8?rL rhw?@xI6C1r.iv ?APY`.h6Y`6A(UX?V0R? s!ՊW!%R\U]?A3r]Tl R`.@~Yx&1OF/ǀ?9@+|<Nbh֋h?AӺ+SYjRSBr1vo?ۣp= :/հeu//T/SB)?:Mz4Ws?^8?pRg1(Q?QTCnE`8%T KD-XD_CTp|A `@`IconAdEYDCT,@BHpqԃ G{ԙm`8\Z?A,U|V~}B XМ_=gWpiOOD`82ПZ?'2qPK=!o8eܢV `8jQԓ__D`8{WAmo!W3uvA}CffoMm=U_H\s Y&Uc@F8AA(#^iBw0B xCU@eko+_9o7B!o/PUFD  h> T6D BU?fD}??ޖz?Fx<F BP(?3P?| (^-t  0B`YWirefam,\UIusrintf*cpoymckpApl*ctouWbedac"sa*cPe!^ J% --Hf X?N??w57544;<J3?s3x{w?33w{o3?333?3ل?G3 3}?3u3b zBP(״??Q%.KҶ?ݳ?$UdPitV&U7^-?<$UHLD &# T>h uA` ?2  O"*O">O"RO"fO"zO"O"O"O"c&w&& (O",l*&&4"u>)J>U2U2?YYYF9u>u< M@>b012632b9 Q!3N٣3225?ON ??[>1m0G%` LineCol@mrz0"ٓ0Cz0bT'023A3OF#4 ElI $=*W_!kStCB03!0QhkQsWG2`?Awpy@igXt (c])P20P9PuM@c@os@IfRArPAaPi@n.P A@lPWs4be*`e@v@d(`iP1>`V@s}_h@RXY(`cXm!#5P4}`0hQt\4q`#?of3A@%? doJ1B@ ?@BcJ@3u3-14"29G A:" @ns=BruqCq7|4? =A\\Wg7QlJfD Ul855aQl-Qc89q%)9?Fs2$s .?勦G yU4Nt`o?F3t?@%kzx?Fhg{  K7Ax@݉_/>l:#ρqtt[_1G }3;!2 @r !UP *(C@?@O{%?FT>~CUD`<%Y_m܁O~K5՗h᭟MXAbY?FHm?F^X)ʥUJ|7 ԐMpہTחpI<CsX…Ql?F'D\ ڌ Ie p7Ie?F}?@=>F٢T.^SɯU&5A4[߲e3EB…dbb?F肘3k~gڌ)t'Ȅh^8Z?Fj?@sLA 2?FF>V~v!X<[&_1ʌ>N`ς… { Ȱڌ&*gtO'ç %)=^.?Fi;%?@Wsֿ|U㸘 = 3hCt -.*tttGtʄj>ÞʆH2?@_ ;F?FOe.NU) ~ӌ/*ۅ\An#)gq㸗l= YFy+{pwٓ4Gݗ@|'+:5"=ß/̓?@8/<r f}h큜M1/pe,W\M/_/@|]@/3Â:Ă?F//` x(6@+ 3 5 ??Ut@Z5t?/  ?C/?g&qgil)QTT@:uɁX%ThATRjpRWFSTQ>qQ4PhQ[cIP%aȈd!QCt,@=RCX>qqmaA DZ:udtx:u9v6R<ʡwuiq__ X[g'd?H ~q [f juLo^o {AU@!3\r2UdvKP6SfIv}U_vHtcs MPOL*@ FxMtM#uB 8yv@eHko+(/moZa(ݛo PUFD  h> T6D BU?e ??Fx<F B_P(?3P?| (t  0B`QWirefam,\UIusrintf*cpoymckpApl*ctocsreHXe^( 0% -H o?Ǐ?~?{?_9XXTT3333?3?333s?3兔3 tw  'œ 79D pBxmwo3Q3b?Cz BP(״?@?%/KҶ??I7A`y忌G^9n|? ?q9BIUH \D &# T>h ?O[W1M0ۢG%` Line_Col@r[zM0"W0&CzM0bT)M0Z2Z3T"S=7` F@l@N` ZoO2E9A9EP5|51oC3"HBNKRBVPD:!ZhQAGښ=2`?Apy@ight (c)PW20P9PM@]c@os@fRRArPAaPi@wn.P ArBU XsRePe@v @dP@1`V@s_0RXYPchm!#5P1#86`@^n1qX`?Woif 3A% do8@ ?@ac@;3uLD5-M1) {0#s-:q :ru!Bq[_s'$-1L`r'2l U8q0D QUAc8af?Fcz`?s e JyM8,%8w9#W3w +G=;ỈEwsh2_cfiZ'$ ;𤁾*UwӥiDf2^P<~zEdqn>oH?@oHWY~aOMf 3_6o~K~)tm41!7Itk ~ =ExGFt7aNdß4 ϴ_ zGy{I+xsHe? 6fn`(?@>1&Zʥ6EW /lewt!ٸy?F5{ɟ} 9oOt`SIw-Хj;-"'hɞ쮿~Z` vC~nx24'>,Q?F1Q}{.i>Jy%~c݊/ Y na.ςt cOtr MAņ2eu]9o.Q¼QmP` 0)t|y/1/cխ7l:N?)[ބ2z'~=ɞ:ƻL|6z ~-u1qyЬ=?@93bq?W8"?ͿL/A>XH ԋ!J~hsɌ??zeb)a ;@eX`OÔO+|SDJyʖ?G~&z>?B_?!Oas5_PwХeƅ%7D輧[ yw?F?(?@z7Ghf`M!{ܾ],d&vigi4"|oRY3it0wqـ" zo;&7Լ?F h${d?$?WgǞ(!&&مp4H֙Է=J պ}5"m(L~Dt0#H0NxFFlA٩6F7bvs"6?F$K){DBQ% Y̎|(8D{ܸPm wFm(ۃ?Fn܅({Y U ;^ ϾyÒٍx,p?F/r L{? T6D BU?VU??PFx<F BP(K?3P?| (ҝ  0B`MWirefaum,\UIusriWntfc%poy]mckp]AplctocsflXe^ (%  -Hm _r?? ??@9 ??33? 31?v?3J33??3F>w3H @b BP(봿?/KҶ?VU5yR55U?[EUH PD  &# >h<JT$EINÕU@VU?@JF BP(HftMru` ?W.> *O.4uHA>J2U?YYYF u<M@-bqb# !Mwwwĕ?K.?O[ۢG%` Line_Col r[z"#zbT)>rAcS` F l .` /2%!%%>!$Cs3p#D"+"RPpd4F*t1s1{7G`?!py ig\t (c)+@W207@9+@M ]c os f)BR!r@!a)@i wn.+@ A"U !HsuBeI@e v di@q01`V s_RXYi@c\m!#5;@1#7@q0\q@?HOFA@?A T$_JP @C@J@uL-4~G: S~Q.Ru!QSmx?!dِSn#?28Oa?MbXCl? rHr= ף?q"E?@GU5G&Ƕs˝o%JS?@嶰} +B-IX9v?qz'>?q]0 l?2o$CS,.  8?kq"vKap*(r!됮|?5?$'w ^?R?Q;޼>Se:0^zڨU3;Us,?7<>/P/qا</$6-˱? w//%1?(s?/naazQ~d(\okoo@wjZ?Fd+JZЫw ua+*C?F-?e_EӺvomϬYpn}GOOcO߇_aDsb kxOb_xaKI OOPbt_jՙui4F!G2oDooKAOSCo_oj C 3EW^:^gxS__07S1UxFďՖ1=O/+=/myl͟WAi1G4A_%??a1lR8%??G JR?F?;(kY*L &6n#ЊVOP֨^'ȰS?*JRi{tKzp館R /- 6X"ӿwe'~ m3aźEL&d2?FϋǶX߄ۧK7I--C\51IR<z/hRx oV9j`_r_*59{WA T6D BU?6T??@U??I?3P| (^-҅  0B`ZWirefam,\UIusrintfcpoymckpAplctoԸWbeUdac"sUsPufea?!^ L%B --H }l??A1*?AJ??Sb?3?3'3u q{3 {1r33{?33?{?3?{?3p qp|U=A}U/Zw3v?be( Gz״?d?bӸX%??΅)PU=E&e?<$UHPD  &# R>h - .BVj~@+&?&&4uAJNU2UU?YYY@Q#NuM Nb 12&&327b%9 !&3N#""%?>?O[N#1 ۢG%` Line_Col0r[z "#03z bT &2&31?F>H4H5RpI =$fGcC3D6BA#0AAGڎ 2`?1py0ig\t (c)&PW202P9&PM0]c0os0f$RR1rP1a$Pi0wn.&P A0l&PWspReDPeJ0v0ddP@1Nw`V0s__RXYdPc\m!#56PG510P@\$qP?_V#AdoJ1@ ?@BSJ@3uL5-12)6AG0c-6Bbua5C'$-BV1LHG'm2lJeUp Q9 iA5c(!6gDio?A`c ?is؉$j8uk-UuI1Paog1EuT߀ٱTr%vPA4ٜ+v+pqaA0v/@"5pw TN/ٜ ~Dqw@dZĸ/.g|qT|q OɽH Tdq@DB`OB2drTCTANA SASI*PaQT]AB,9Cd,@yBHqa1Di "JxTQdYh irBupnBitOOF|JxX>wW'T?E}=qa0D~ VJxj?__F|Jx{>w4&|o!3b2f@rCV4&oBm2U_vHxds ylL~o+@oUB7oPUFD  h(^TYYBBUFL&d2?x<F BP(?P?| 8ȅH?FX? B@?\.,sU(/  07B`:Key,logica ,n tw rk s s em t pJ"r pP#i"Us c n"c !i"%V eA^| .( G&u }%׀EJ߀\<nOikDrag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aab BP(Կ?'Կ?&d23L4CUGDF P# h @T(PYY*# UFL&d2?@ BWP(P} . ! :DTSDrYD Amu` _?U"6@@T^pru# ^v"|,|'q:U? ?4b {[`+:#"6u#'򄤉Q)v" ^!L1$" "(7'>>ÿ@q05?B46 0r&23g2um0`҈-1Bu:@ "31A;B"F `$9u `u`m"[ bv!wu`)$"%ط#Q!'1`Vis_PRXYcPm!#5\P167B`?CopyrBPUgPt (RP) W20P9 MBPucyPoDPofRRrQruPQaPisPun AlPU yXsReDPeyP%vPdBМ!#@d$%v!B=#&#Vd&& "$##0Ub#]u*g,A^aN @ cT<*Po mPsPQ>gdaE C _s (1(1"hh62)t3* tBaa R+t"qq (!pa cv"!6uM\%G!1[21@@Bq653T @ b"q3P_EPB_ UP0aEM5s_$`&ׄF3s͵NSYFue;AT,@QT#nPUr;65b}@`1p"(qffs_hU(/TUUJ5UU@ B_P(? [M #(. M  )FV)UFj)FD~) C)CD)C CD C CD C "=  #"#2"e"#F")"#Z"-&()))) ")l"U'JuM{` ?)"$"8&P6d"t""""""",",&,(6@(C6T("d/pv////u#)t"bCBB !yt!bC#tAFJU2zGz?@MCJVA@\@5XbCYP[YPV&R !4TJCRC RV R;Rb"CY[@W&R}\&R}_CBNaNaC`?Copyrig\t hc)`20`9`M}`c{`osu`fbtarw`aa`iu`n.` Al` {hsbe`e{`v`d`uBi j@ EQXC|a'0UYrźV(e0 $$zlJeUpД A9 DqHQ]?@ǒ"ǔAP"C 4?p "C id XH}$^E?@[ )K\>o HrL?+ 1>k P>#IH GCꈢp q@!"BU3&@d>~:j?8-DT! d;Q+=O҉䍰&kf :" (Wc ٖ4Q q=HBBǟٟr85Uq#!pw@q!!(SqCq !&Q ogċWƄSO=?@ծj?@.H{[?@?pOg-+'|F+`ˑόV<3= g%L?@ȭ?@<&?@%Y0|D6όTЏ匡?+VRgPI@?@u_T[?@w?@xu+D($Jϣߑ_c|~+~ ό0E'匯̟ɴ΋BGs˄?@9pf߄gA|^x4і |?@[>SfOߢu|ؠ !;?@Xf Ne|$rSDKؤ!PIA& 2بz%/N~4լ'=䊭bg^䲦EDEѰ k;8?@LF߮z fc)V|TzLD*Mc/VNHE?@UN??ѯ ߣ?ޱL`F?q9<ᕚ /`X\(*zϒcFCTD?@_~?@R** R?@@;AQo|Oۈό`D 北9Bc]҃Uƺ-jS ?@&nhS?uC-n|G`ş[~4J dOa'9e*G~ѿ?[CTHYaټXr ͍5LJ45'ek-#LC //63FѺuw ɐ'UECaʔF3TJVA&!BIB?@H8???@#bf?@?$ nTfe[|?)˴1҉?1O}޺(꾟.?@?16fOxO6BEQ̡&7jlP?@M?@13 b ?fgo|nWׄ.ƾ>_OO@O̡O__rRMСt+iu@p` idg?@ -kC%_~~GeJk"ߏ___С_oorrMԡ&oZ= P#?@lV?@M$ύXof]L]R όJ 6老QMסyǼo*ԡr6Y=إ~81JJ&Wd}f+1׬$3-?mFj4Q0^dl Jް PWƦp >L]c@=M>%ϭs)vE?@";r,̡?@x{aхÎT"I|!1߼#y\lǑ4N[U ;M_Mpet*)nOE@ 7@,Хܣɨ z=|Եĝ<ƁTX/$/!s"*?@g9Ų?@bn?@ Vp!iѰ?f|^bܲƶy\dAo >%V@V+幻]>spMy-ui3獛f"A<`[ r9Y9HD: ## h4>T]]9 M 9MU@QB% ?@z%/N?@Ŀ_5P6 ]A| ](# <# P# d# x# #mJuM` /?#2FZnuJt  =Dv-%t}!"4މ%'swJ%->tJU2zGz?=@M#J 6A@"b=8bK9RX;X6J3115 "`?CopyrigTt (c)020090M0c0os0f21r01a0i0n.0 Al@ 8sBe0e0v)@d @"1E4R#[31 wqB?F ?AC4 $Z?{5-33 7F%%O ViiebE9 VX!W2'K0URňF!DK0 SVgZlJTo@6UT $<ax@C11AUb(T3RYI0b|"ҩf\C1 Rf"J:m_!oc ]rte$aE1}HOv?@?Xݪ@c +Hj!yvR,xbE?uf9B?@>SW|'1Tm|pЏA,xE?uӛ4?@%pW|?1Rqyh ,x?uC|?@u_T[W|Ә {m|O$}dI?@ˠȭ?@e?@)Ll rLߊ?Zy!Xm|kb_6mu(mu|#vi8lz |" YꥬM(#??@ծj?@1Nx?@ f4?ŏ׌m\ҋ:m|XAB/A9d_?@Hm9S@?@$V 6E׌ nB6{m|Jqe!{q o.2ZÔQM8^N>@M*)nO?@ j?@*# LK׌?ö}>{} SS~Dxĵǯakz^5/n??@!,?@?qVw׌BZc4r  x̶.jlT0{xZl?@YBN?@9}7(ѿ  tR?ɨV=7;Mω5;P4HE?@'~$:vߔ׌V9t,Bq0oo!ߠF?@qKp ;R?.A֍^m|ߵf BJq! myaUe2؄oeC2rA 5B3"HD: ## h4>T]]9 M IAU@ts ?@A3V?@Ჺ?@Qp?QDJWƿ>m$>  JuM` ?? $u.Jt+   qte]_W~7.Jzx?{ltJU2zGzK?=@M #J&A@bM(+b[)h+h&UJ#!!5 `?CopyrigTt (c) 20 9 M c. os f"!r 1a i n. Al#0 (s'2e ej v90d0" !E$ #[#! 2?6PI?AS$ j/%b-## 'Y6 %?Fiier59 FjX1G$"'0UBŴ6!40 DcFwJl0&>UhEM![S! (# rV0$*$d*Y Td$VcRHD: ## h4>T]]9 M JU@s?@߳g?@Δ ?@=_&ʠ w?P6  >JuM` ?uJt  /vIt=W IR_IlAm#>t2zGz?R=@MJA@bbJ )+&J[ V"?m& ?A$ /;%*B!!5 g`?CopyrigTt (c) 2U0 09 M c os f"!r *1ai n}. AlE0U (sI2e0e 5v[0d=0! $-# ',m&?6iiew59 65X7_'0U\Bm&Z!$0 F"'JlJ}AT h7!1!Z@ iO3  <P[&/~# M 5RbVJ:Dq9?;S U$^E#JTAR|UEUG_L3\C\Ry^Qw5U> [k;aYa|U52_.U"rA 5#cHD: ## h4>T]]9 M MU@9e*G?@뢑??@gt D7q?P6 @ > M (< P]dx $<PdxJuM` ?""2"F"Z"n"""Su )Jt!  ټXr)5t172X_;y)52=)5L7dϘ'!>tJU2zG_z?=@M3J6A@a2b]8b9;6J[3 6Ba?MF ?AR4 ?EB3AA5 G2`?CopyrigTt (c)@20@9@M@c@os@fBAr@ Qa0i@n.@ Al%P Hs)Re@e@v;PdP2A$D3-3C GMF5%}_ViieWU9 VXW2'K0U&¢"x|6>|>E<ti!Z$@m;M#_I[2WUuP',Ap4RޓpIwS?@B?0ڙՏ|& |֧|?i$g#i!>qbM#_pFtUrqa.^vb?@)fMo@Dr3s0{욹nZ|q9a!iZ+|һM#_Z1 ɐ'?@a"s|? m vpt(&4xquBIB?@Ǐg0p%#|n׽\|6 ]yEb# ]S ܿM#_!ߊnxyjlPpv?@0?@F?aܛ|B6yI^a};I1y Yb[sop|Un [)N#_6H𔌌@uhǕ?@A5Pqy hq|o]^})f?^K!NL3_Wiy;oZ=SO?@`T]]9 M 9MU@YH?@t{FYX?@m?@Txݠ?P6 m >M (<7 P7d7]x7mJuM` /?72FZnSuJt  ԥiAPɉ%t}!",_։%'%3庉%'?݈iӻI>tJU2zGz?=@M#J 6Aw@"b=8WbK9X;X6J[3 w2?6 ?AC4 TZ?{5B3AA5 "`?CopyrigTt (c)?@20K@9?@M7@c5@os/@f=B.Ar1@jAa0i/@n.?@ Al@ 5HsBe]@e5@v@d}@"AD#-3C eG6% O ViieE9 VX!W2'0UҜRŭ6!40R SVgZlJ <>Uh$]T ]&AAC1(`3@]f?@y]0On?T|#EA0_;b"Ja@B*?@[Ŗ?@2Q vrL0adX0kvX'qeD_z`Օe|#Pv^a Sm?I0 -? Yz?|"a@ca(Qu}!r5{5aEhde}U*\?@dB2n?@Dِ?@BwQTDx~uik0M5eigJ@|@ V|wv0rlz v uB@#aEuVA?@ G0?@#S?@S);glk~@|ˆV| -mHux@ Wl:,*TȻ?@:&;]lѤq@| yF֖^t&o˿Vhhdh/ fα?@C%Y;<ddI0A{*V|qH_C+}u$>?@e_Y?@]=Q?@Y+r;.DZӕleM@@|PMkqYyK\r֑ٯ9edon@!u]?@F<ǜl0C2rA B3 BzU=V|b Hot2 IGxtXjq\#x_H82&#s xh;Z LS Fx0n#JwB U]I~>a,{o@+o;aGCsYPxx] X0٩8274h9T>PPUFD  h> T6D BU?VU??P?Fx<F B/P(?3P?|S (Ν:  0B`KWirefam,\U]Iusr_intfcpoytmckupAplctocslXe^ $%  -H o?6 ?" K 33??33}3?s3E??O3P33333?s33^3?xw73bp= ף BP(??N贁N/KҶ??]VU53{5U?S5?UH XD  &# U>h 1{17G`?!py igdt (c)3@20?@93@M c. os f1B!r%@!a1@i n.3@ A2 )Hs}BeQ@e vҠ dq@y01`]V s_l RYq@cdm!#5C@174x1Z\q@?OF)AHGT,_J . ?@CtJ@uL-<O(B SQt6RuQ?SuG!lm?ݣ`PBGpdn:?"rh &賚:l?5#-e0 CU$Hw$s 0g_?ڱc~b'?'W%X9 ڱCU0/B/Vѝ?_/ $&GQ//d6`?+7e /P?!?bd9d?äW_X~?.F?HX??^71—䑾"P#P??x&1Zڱ?O;shO|#EDB͂a@κoOOPk?w_rOäҽ<#OHƣQOOd)UKOģ U+OGQ_c_d3*Yچ? E0YQ\ڱ__'5%o'_äldi.aU(i\rCt!nT vø#Up"Qԅ4?Fx#˥ۥGzwmlsEGk孅 8P\˥ۥ[BP(.ԏ!:r]ﺟvvD{%u/~L^F0-Qan v8g lvvoko ?FXe#Ͻ|㹼KG7vuu!?F `ztFc๼пse}iƢ?FYyÑ,F3UJ`ع0qxr7ߟqIƋ"0BP&d#2tkxԝ>+Ͻ +ē(!Pg:i(!(%aoaaBϗϫ0r?F ) ]͹_%uqbFJur?/œ>Cl/uJ o,BEIu`F ^ur^?ݣm%}ŜhE$_v~ rh ԕj4F5/G/cDVc+/urn?"41 o賚:ldo"tւ!,/m?8iFc?b'vb't//pY$H?Ĕs 0g ?-B?$NGO6-fOxOTfLUMLUX9C/e),1S_,euV5O_6F_Op_{e_(@]|d/aH?л\.sCoUo??Pvom6`?+7ne /DoReάC9~iBo,0rw[ʡ n,obd9ĔW_X~?.ƛi;+ԑ\;DF1CUg-Aqm_. o ?F^VjrΟHm^7ةbJ?x&1⑏s[FĻ /F~9jnƟCe!;sh|}P5pkOw_rӿ崜v<#绯\篨\O _wρ6!jn$^_ť`Ņ_Yo:I#e[ď~菾e~%g~td08} }T6 BP(ě߭2EWp3*Yچ_? pYOQ\ԲDOi%iq&G":o8jn1` 7oi5Ѭe_aiP\aF[`!펒 j1qyrgJ1CT/ħzT1T$-a$2h#T螠!b`c`I?con!m%M#,@"$(qN'-z ҧns?[["A۰G߶r5iR/?=z:'2q0ݼ !0Z". 6zjV??=z{7A싵O!3B2F # FFOVM[_HO\s }t7M:3F>.#lwB U{I@ekKo+8/MoKaʜo{PUFDf h(TPYYUA@ ?IF?P?hj/ bNb>>is wץ @,wOb WA/>,,'OWT / , 'ȉH?/&?"p  0C`User,c_tiv/0,Ui10e72o10y30ObjI4~$e^| UGoPs??h 1 12 5`L/0af! "`I&bW_ObWnFdF^O%nF nA6B XsRe Pe@vPdY ' C G?d ,p(!P^H  cN$ daocJTX1ddL"d2d2 tBaaR$t 1t >tEAAVvaXt et*brt t*یtܙt7Uݦt޳ttAt!RQfTpW0S&UT`r("#'BaK"B&s7F֍A @J)a`wQs. TPxqPEq?`eUT PP s7oSNZmh g.7' DVeU!0IN 6B8B%7qri"2i"2i"bAy "q?jUmEq3`!3`!b3`!b 3`1rQ 'a!R ’лh0gC<s 1. 1^\ L6L?^?2~3 5(,;C6?;y2?:;O(O?KO15+,?>?OOt?~`B⸤q?`}b Hn7eUGD  # h#$T #3 BވU@?Zm/ʪиP} u` ?u4# t 5 t #J8tV53  S UU%3MU!$g`?CopyrigPt@(c)@20 9@M c oKs f"!r !a i n.@ Al (s2e e v0d S`"1B-y##0" 'I?e ,^A   #!H1p%4;E4;34;547HD: # ;ih(>TA3AU@_bZ$1?@v;?@sSx:?@m?Pn6 u{` ?u# t  ~G?t+&@,\`@V>   @JRUĬ&<Q!?b& ?bbbz@B#E#2zGzb#@ 3JE#!$5 o`?CopyrigTt `c)%020109%0M0c0os0f#21r0P1a#0i0n.%0 Alk0 8so2eC0e0v0d^c0 `1l>q$UBh8119 B # 1 1#J1u?@}/?wרll41 kFMыB!zQ?@4\QLIqMqHgLLE3J@LbUӵQLZeHgLswD}{uݢzaʲ{eD?@*N q:QL3" hK"HbcyN6B  ޭO?  ?K`?]r5!:_ og4!B(ESL1@rC#QLߦMNUGNKX Z?@y?@zI@$TXpUTI8$6jI@_A\]Xˉ4VTܿĖTA3AU@vq.?@ ??@v?@?ƛ?P6 u` 7?u# t  _ Qt+&k1@A> #  ""2"2" P"P" n"n" "" "" """"l22B"2"2A2A2A2A2/$A2/0$A2BaUh@SaSa9 l $k$!"1 2!!Q#Q!JBa *Di]?4 |#O tlO"L"2k6MBAb*R/ux ?@ f:|VbBe|O~Fk_XQ /3qB  ly2 =Q s !#1?rZ35@:(4<7r_8Wu3gux TH?@ 0W^ 9P?@l5͒?P-DT! bRG+|4̋|Iv>'vtPϷ_ٸqt~U Q!398Jk}(#Wugu3?@š?@ @ڢ?@I I~ eЏ!y|m%|?fCn| &w?[4g0hC9k}}#WuB?@r[ɯ@?@p}\y-!{oΏ*E|p* %#|k:|xdw]@Ư0C9@ѯ}#$jQ֒?@ٍE|؛|4WmƭWu2!ɞې:Ag]rvpA7?P,Ȅj6{EA~v+m j~y]m`t,&فw| b%ÿ h`rC9(:}#Wuehtn@6fkЄ;??PDžwN!rA z $Zm͌|}Xko?w4TGMs߅r,39M_}G[qn!cydg*?@+?@vw4y=Y4eh"E|?Pyp2|eLU@"@r翨t)C9zd#Wu!cy ¥?@Po*?@/w ?@Ev\?PǏ yf. |dl|6m67 tw=]q@)sHM)3F#Wu!cy:kJ>?@֣e?@.`WC.e?@#[{ s@rH%b~| |y(R~||Bٵ` W),C#Wu!cyy?@;xY]ÀA z}Wi|YnzvtH,M߸q@sM&O8/?+?)33Wuacyhy`'&/p 9>?P%}q AI<bN-[|t'mmRa|@S>'/l?LO^O)ő?Ē6acyZު:?@\\d`ڲh?@Tvϩ?P/ yKDiҊH|N|̏MD`@ЗY?O__)aOb6bʘ. =L?@ݒл?@7g=:s0rN90W|?;[B*9|>0xYea@_z_oo)_Fr6cy~d@=)yΤϊUp!?PņJoWRj 9~Ipwpht+;vVUͫL _o\!{/ɰQؾې JfK;|E R/qwĕHD: # ;ih(>TA3!AU@ *?@8PzvL ?@?@}j_Nw}?P6 u` ?u# t  Pߢ=t+&Xl@$ &> J=UG ? ?MB#2N贁NkC*u!z$5 o`?CopyrigTt `c) 20 9 M c oKs f"!r !a i n. Al (s"e e vz0d I`1l>,>Uh: #!#J"1E 10 l k6MB: z}?@5ё :?9^B:<_ܙ4|DtH ]H79?zF:1E2?51rA 0HRNS%3HD: # ;ih(>TA3IAU@ T?@3g?@@?@?Pn6 u{` ?u# t  [DrXt+&J}:@8 >$ J=U"<?&& ^?B# #2zGz?"B3 #!$5 o`?CopyrigTt `c) 20 9 M c. os f"!r !a i n. Al0 (s2e e v00d0% `@1l>,>Uh: #!# JJ1@ޏ~J? Y0 K {Él!k)MB9}jN}?@n'I?@KǦ :/??4dd]#=̖^/  "H7>zIzzCL7+E?3r$?@"?ieOw@1SrARS{J пPL/~w5ONHD: # ;ih(>TA3AU@]?@_Ң?@0c6?@%#=e?Pn6 u{` ?u# t  Kqt+&P8`@` >$ #J=U <?v& ?B#Y#2zGz?_"@ 3JY#!$5 o`?CopyrigTt `c)$020009$0M0c0os0f"21r0O1a"0i0n.$0 Alj0 8sn2eB0e0v0dNb0l>G!,>UhG!G": # 1\#JV?@+f_n?%㝢l ÷lkMBD"3?@6?@g  ^:?/IBLJjd8_;qIi! 6AA{E3~ـ@ds?@&_ԍ _E.JS'BFBL6Jzܘ+# \>>[B  B½ɖ{? * ^u?(Wr#5eP:__(W4#a[B({EL@7҇c;n?@7uǔFnx_,@ArA_ bcJH \ 4 BbnbK>>H_)@U " &E '/WBHh/н?J" G 0oB`2user, ndu'n tw wrk sy t m$%1rp i",a60pl:0cB0t:0oH0e^| oUW$3u {? ?k0AICȋeȍ{^zȈ{̝̍Ȍf l` uvDrag thuesapWonodwipe+.miUm9r=ai:bH]tEĿ??$XE ſd:M? ?nUH TD # #Ahj4JTAiiM MU@M?@F]t[Eg?P % -jRMQ Q`#dtoeRQ#mNuQ` _?`RR@o`j~ " "uh#  N+bO%X& X!酕#NU2N贁N{?\N3N"+#R "Q3Rt$V 4i V-)' #% #I0@kq0~5?4~6 !uLrM+0@A0=2b .6u~`bP"o+% A7/I&ց#AF1F7`?Copyrig`t (c)@2U0@9@M@c@os@fBArԻ@Aa@i@n}.@ AlPU HsRe@e@v%PdPO /N`V@s_PE P.@hm! 48B6RwEl#$UtE#3 MA#0 Na.RaSPu(?!:32# (Uo!o3elQQx_______u8`oxo4oFo1tmghUU(g5 Y ooor;/?袋.@ Q.Z?'cK3^~ohUu$%#5?@W鯏Ō(T退hЗ vڟGP23(ta xh0 2"@3ɞ@ZICUyP}өqfAsPbt_Zc0:5*o/e,;D'Q#l%x%Ho˿'9ϗ,hBmQwωβ%\IYQ6Ͼ#č?p"^3Hk}6ѢtqZۻɁTQM+1+13u(z贒A:7k:S0U'R @o@a1Pd @y@t%Pm@u'Ty@ud@a@Am3S%,@>2_H f@s Y"tq_HF8rLxw{#xݡB Va_T}o@+UoBBJ4PUFDfP h>(KT6D UUF~?x<F BP(?E P? g/5> މbnbK>>% 1@ob w!O^#,#,#'owd /> w, #, #'dH?/\&?+2  0(}`9Round,keye0Spria0ge0Bi0as8mi0cPaa0i0ale0ew2v1ei0t7s:2e0at2$ e^ 5Y #UGmdaGO'UTTA(ruC;5d31;1D !P` A0k,Oa0 r]0p~Y&b_`TR%0E)%#A#A" =-7?` 3?37w3y7?pw woc]Drag onut hepe.Rih-clckedtk ywy n9 'eg.bL&d2ɿBP(?P?fОɿ8ݥ??~35CUG DF *A)#h8T P  UUF~?M&d2?F BP(?P} rr(V.BDCfCf&D'LHbbf6 ^։u`h?"u)m bI%%R& R!͜U2'q ?&r#?\.?hmAr"&+'$7q{#.@"`H_eigPt_` UsZ0rG]D\0amZ0tl2~M0`W\0db0Q` i7LbZ0n^032pa ۢb M0a` Evz2tro1R 3H3C<{#HAMD+/`V\0s_TMEGcPm!#5 431H!`?C2yn0]5 u(}@)g20@U9gM\0c2s0IfBAr0Aab0i0nG gAUl@ HsBej41dGi"6{#r% ] r(SVR.4&U~{Qv%"@wIP@VT?]fBu`-M01r[2S@%#Ru H@qrHZV!C?C$2a1,Q&$h)4="u`u `"M0d 1 1`u`i"`07 TC MTG?hec^]0uL"UHi4FF 14WK'%v!t+0. VQ%%2ndaXT7GTHHHr"N%2o(4TLEh PETM&fESz2 &$r2y1nj0CsG:I 0v(`2+'0"3+6T-!\g?y>~?;5i"%5i!uŏ׏*>QP6 KC1d12A51`_R RiMzZ0 11 }pa0d@ Qo&J@mW=\P;41N%5uo(S_QHA"-(a,cZ6bb%","0` Be ߱cQebr32`@{aK(+`mA:E u@exb2YcMigZb2r"mYy@66%2''9B"8$HAHA&P.Q6֝K!!W=K#߱aU0B39ECSe~ߐߢִӛ  i"gaW}as@TQTQ%29B*&R66sRaaR11aaL!"8Sh ?#EcH3@L!a r">9EGZAER ," 50(:&U!P%2>sUKfoG,`x'TS-?ss`i"vUnOZ G7veTa fC[u``ub`fR (:9,@$Zr",ds,waUAi{Bf#pniDHD: E*)#;h ,>T  9 EAUFM&d2?F BPW(?ٻjP t`  ?t Bn>u;.ff af puU b J|U2'q" ?!&M?\.?A4'q'B= $N贁Nk?<@e*%Kb #Z. L@* #*1/45 `G`?CopyrigTt(c)20x09Md0cb0os\0fj2[1r^01aj0i\0n. Al0 b8s2e*0eb0v0d0)l>f0>UhhffS1D! GUaJj #H9pp[  j"FMBVsDjZ"ICOB(`(rMrz$ DEB`BEA!vJVRrFTQJsO@y_ l`Rc c_Hl@s ͿKN?g>FxsLk#Ș!wB h"}ma}uo@+ GyocG_XOo\: *OUFDfP h-,TYTYBɉUA@ ??E P?7 u bCbWY[KX^x @Db LLX%DL9 ew.؉.m(sU!A&/2ȍ2H$??6?@2BW( G 0 `;Taper0d\k0y\S0ring\B0a8m0cPa0i.0al\e21e25s2e0a#t2Ue!^ EUYGmdaOL'3TA}r"Cw5o1w1D !` UA0k0O0 ro0/%b`TUR[ Ew  )?__8/NSe ,̃~ύMώ ̯ Ͽ ^ mϯDrag onut hepe.Rih-clckeKdt:m nss,Ja eVou eEov gba9.mbп?8i6пp:m??@o tڰ4 UG DF *A)#h8T P  U[UA? u?P} wrr*V.B$#F#F$LPi(yBBiF` ^Zu`ho?ul +b)%2& 2!iU2na'qt ?s&R#?\.+?hR""i'#J+''[#.wt@`HeigPt` Us:0r'D<0am:0tL2~.-0`W<0dB0Q+` I7L:0n>0r3e2pa }b -0a` Ev2trGo12 3(@##y,J[#(A-D+/`V<0s_TME'cPm!#5i 4g@7(!."`?C2yN0=5 (]@)g2U0@9gM<0c2%s0fB}Ar0AUaB0i0n' gWAl@ HsBIeJ41d'I"6[#R%~ r3V4U~[QV%f" ?@IPs$U{'UlFBut`q--0a1r["@#VRu(@r(:VC_3a,x$h4"uv`u `"-0d 1 1`u`I"P7 4C 4G?heC^d]uY,"UH!i&F 4dW'r%f!Vd0. dVQ%2nda8QW]!T((R"Nz2AOBRO(4T,Eh 0E4M&FESZ2 &$R2Y1nJ0Cs':) v`e2%03%N !VG?Y>xx?;5I"5fɏۏ$J@_TBa0#%b5EI!i.1P0/ C1D1A]51`_RB7iz:0 l1r1 ]pa0d@Ao :g@7=VJj;Uf.:biʗ"f.SW1#AAo0dG<0bgh:0axo0@a`_am01-?a!`A]@EJy[k@]b1`@I" ,^dYap i2g@eR%(@i(cE&M3.R+R"@2BO(f(Ae(Ap@ )-S``` TP P 1ga503(!"#g0R512T$QD`抁; TPAk0A,(Xa!+#jJ El.;͛X1 9I"g@a{]a@g12BR00SR4Q4QRQQb!!1ba] *4 #h5aiaR#?.<E"!1+a "u+a(UbqR@J2SUf_d&54S}# Ss`US1/bc@$a9cr+a+7ex/:atQtRn4%87 G~Ta FC[u``u` VJ 2bSR-4T7,@p@dlq{zU pS_Fi??v3R_h(=Ra cZb)PRGnB`\"e V )c1eV;Wbr3;Na#vJ)iq` p}Kex o%82bIg7pfBf xp}>@$-/HD *")#=h0>Th]]9 P YAoUA?PZ6 t`  ?tF$]AU]A\yMu?.Ej~] \  u?ڍ bJ J|U2''q: ?9&M?\.? e4/''-!#0O_Nk?<@rLb#I!#r. _L@"B"/KA%J!#k1p45 `K`?CopyrigTt (c) 2`09 M0c.0os0f21r01a0i0n.  Al0 8s2e0eJ0v @d0 $l> <>Uhd)A)A]1,4(B0B@$ $bJT!#b&b&kFtAM "FM(FJ?2OA R\S%j*_YBr 7Krݹ dhrx1eSRTVEJڿJ !PY,1Q!?;_(1:rpRS ?YVUqJi>#o+6k9Eo?^`R rSeX]tW-cmVqW!\!_uVr"QpA/O\F32CvtE'!>"zuF2$gYD heW8YBTxxMQQ"A"EJ^A{Gz?5SU+1 `tH~c*vMÁ%Za*MބYBp TS*%-ATTHx$EeЄUsބ)SJ3&o t $|M5aAb@M%tA2_H4 As LoZ4EQ^L4 FuLߘ-*#ȝ/wB C0ax~1@+I:aGHVP8/:bUFDf h(TPYYUF|>@x>[g%U @0 /\pb x0!(O>D,&E&px /'> d, d, d'dH?/\&?+%2  0(`Ucardke_y,}5,6R3p~01a0c0s01l01aUn2,0e0u0Wit2a0tPUo2z~0t0o0,,w01ng21t0o01lJ~2m%e^H 2E*#UUGo$^  h\1\12\5(;`AF 2d,A8 CJ @`z&bxpbxaVWVpaV aQR __+^DEOOSS<9_K_]_o__DJa b oX%_j^%`/SE2UcBi2l,F0Ax01.A$ib oobgVdaV'_Tq(ʄs Qi [\);M en yv  iDrag onut he]pe,nrih-wcl%cks e/if+ymu%yC.@hD KopisebP&d2ɿx35CUG D # h><T$6D U@|>?L&d2?Fx<޺?P} T uv` ?CuN b} ʆL.BXB 'V  ^6#,"2/D$L/zBU0?Oa4{@`: "&U'[)O"6@<&P"!'D23" L^"'Ԃ%$ bւ#1!'`?CopyrigPt (c) 20@9 M0c0os0fB1r0/Aa@i0n AlJ@ 8sNBe"@ej0v`@d/`V0s__TFScPm!#468@8|&7~uC0;1@2E$P!96@U&R2rq$U ?.T$V 3%u`-z rr1b@CgRuuL@rSS,"N7S3DQeP"ZON"mu `u`0@d 0u 0u`2&\#&io(wb\._?OKA2eOaZe59,UHq%t wphda`kw1TP"(syT_C3UJb pp#xU`{br3{P@"WaCJ(FaShZRCJRa)`IR`@3As0;E @Gex@}hP" "P"D7D2&#nRdvx(s9Ohz?%;%uC %@P&BpdB;AaA}Rb H!4}m9a;9a^Esp"\\񺁺2*2 B(esh15s `@n%` M0u@@At005`nP - PTjBaAt8@l@TTr@@)iJ@e@SS.@Q@t11"15a+'y"}"|(Q?٣tQatRE7Z5!va]٣6Gb``֑gW!!Nq "6%^5 S,@٢"^Efz٣WuC&{U55B0k-kW37,@-@7`P8pP9,@A-@3@C4`P3kA@D}E^ U6 @NqT\aPZZe(@3YP@%i T;g5ə6^Zh\7s''.Tf]u0nʕZQ"wR BWh|1`/ۥGd UHD +D# h0T@dYY'4EU@L&d2?Fx(_HE" /%4DU`0;102B$714+ 3`?CopyrigPt (c)@2\09@M@c@o%s @fB Ar @FAua@i @n.@_ Ala@ HUseBe9@e@vw@IdY@4f^P7 &(nh:MQ%%;gz+j )jp` 91 ,^[Q_5:&*TxAc@0!@SQ%7PCT7T UH `uD " ,# J>  h]0JT]]MR/MU@L&d2?FxP0~ϊ߀LUe3EWi{A"?F}Uϰplݶm'm?ܹag\t'qTPTQ{!{!"T&iB$p1TQ-v/u4;u5 &hI_(H*r X: gF9FvL+?#BwkB _H]}aC@+hW SaG]C:"KOh$?`NyPUFDfP h>(/T6D UUA@ ??E P? gU/5 މbobK>>W[g%U @ /p b x0!O>D,px /'> d, d, d'ȉH?/&k?%2  0(`Tcardkey,6}5,0e~0d0r2l2r~0nJ0e0a01s0,0e0u0iUt2a0tPo2z~0t0o0,9w01ng21t0o01l~2m%e^ 0ER*#UGo$^  \1\12\5(;`AF 2d:,A8 C Ju @`z&bxpbx_VUVp_V _QB __)^EѲOOSS<7_I_[_m__Hab oX%_^Z#`/SE2cBUi2l,F0x01,A"ib oobgdaT'_Tq(s 2Q0 "`(:Lm?p kDrag onut he]pe,nrih-wcl%cks e/ifymu NndFh%o1oNtMDi.sb?88ֿJ?#543=<7gfMUG D # h <^T$YYU@?@g]f?@uP} U u` ?#u.b]*f fV.V LV ^*# "&/8$L@/zqU  0?/Ya4ff{@`: "&'ĉ[)C"-@"D"@D""#" ^,'v%u$ `Kb^ f #1!'`?CopyrigPt (wc) 20@9 M0c0o%s0fB1r0-AUa@i0n WAlH@ 8sLBUe @e0v^@d/`V0s_TFScPm!#?468 B4駙7~sC0;1@2E$D!9\#&_((R\.?/-A2򥜡6UR2rq-U?TV 3u`- rr1bY@#Ru,@Urc!c' "B7C7$aED":/."u `u`k" d ֦0 0-u`2ehaMy56: Hzv%t@!{5t!wp@da7k1Tv"s(sT_C`'!e~*b #0e@obr#`@"a #*(2a cZb&#*bA:`)k`R^@1As09E @ex@]hD"D"87(n@uxs(9/Z?;%vsC %@P&BpbB9A_A]bb !4] 5m[M'Rv"#2y2H݁݁2*ĤB ԡas(esh1ԕ5 ``` M0u>@At0 40`nP - PThB_At6@l@TJT#r>@YiH@e@SJSlf6@czFJFH@u @h@RJRk@M"JM#IA;C;K)D^BWJW\_CJC^@wi>@g*@HJH0dTR#$@tB 45݂`An 0l0g0*<(%3`|B*JB6@r@oT*g6@nj@;KAx0myaD0t2 ExQv6B-Ao\CDQHmcoD!}m'Cd\ 8UVy5pΐ _@rEB#wd)Cm0Bnx 8` SPUa @l6@s$B5 0c< c\im2mȆ݁E~#D`Sm#\]` b@ǡܢK ̖yܕ !aA ^@S;C41^>`@QP3Tmow(D&AKA @ycv%C`5y5B`5@RcEaE>uc U !< YcA>?RTZ%QcI`22p211y2!!¢e+E$~R`1ƦaxDL5 3r`K. V~S|!5%y5-/(~U'y5A? tQ$@Qt^2'sb("|!5Ua$U 6jP`W(`^1R`"Y'H|! Uc,@ r|!~UfL W^sC&{5԰5@tFA@A-?@37U-@7P8P9A-@3@CU@4P3?@A@D}НE|!]"AP@¡*d0Fj"N(@MF݁Iw"MP@iFǡE i7qgi:1h8s:1GW'T?`8I1 0]핾 Sat;Eia`MLWyڼUHLD ,# h0JTlEDIAN /MU@? P >tA`  ?A@Ft >]b7%M>uoSu&{>[ >b M%J͜>U2'q ?&?\.?eD!M\#c+ ''>7L. ?N@n&!Pg#; U 2280?@r"?4֪5 $?rg#brkA lu`u`.>p |0e03F7#"' pw1"zt't)"l J MSt)"Nu>`0;1c@!"NGTADL+(A^@ `?CopyW0igXt(c)2d09M@cW0oKs@fBAr@Aa@i@n0 AlP HsRe@eW0v$Pd$2"lJaUl~PA$e1@aRUPAkW"pv9Ap9AD]'  l(b( 2_n3e%Co\onog3eQkVo_o!oJ>rM*cris#i>MAfQkYxY$w'205J!deD+ }[$&"(i ;RQG1LT!@%oY_V_^k  3o v gAOQiT'>TMg!g!ՎT&PUBqpr1M-;u4'u5h5UHD +D# h0T@dYY'4EoU@?AsTpP?@*Iv?P} t`bAtuLJ- m0u.;m$e ^dsubC^eosuz ?- % 7U"s1(ed #H`/ "!/"xnC#Ps$" /%$4DwU`0;102S5B714+ 3`?CopyrigPt (c)@2\09@M@c@os @fB Ar @FAa@i @n.@ Ala@ HseBe*9@e@vw@dY@ f^7 &(Xh:Q%%;z+ p$,^EQ_5T:&TxAc@A0!@jSQ%7|PCuT7}T UHD +D# h0T@dYY'4EoU@?@AsTp?@*Iɻ?P} t`b_ACtC WuL-j 0uk.;u u ?^   ڛ$R ^e7U"1( #H`/ oezou!_euaPjzy/"C#_E " /%4DU`0;102B714+ 3`?CopyrigPt (c)@2\09@M@c@os @fB Ar @FAa@i @n.@ Ala@ HseBe*9@e@vw@dY@4 f^7 &(Xh:Q%%;z+  p%2,^EQ_5T:&TxAc@A0!@jSQ%7|PBuT7T _BHhBr v+N@s FxLT#CcvWZ H]a0ͿOX@+LS=aGx(˫D:,aeO/?ihOUFD# Th,/TYTYBBUA@ ??P?7 uB BbCbWY[KX^:ש @6wDb LXJDL9   BЗ.,.(sU!&H/2ȍH$?$?66?`2w(  0 B`@Keywa0,SPaft\k21pring\B0a8m0c2n0c0l\e21e07s2e"0a0Ac$e!^ CEUYG& R?(WeVVlepooe xZ|Drag onut hepe.uy l/owWdimdr s;z k* y5a+.bP&d2ɿH?_fО#eY6/˘EUGD # h8^T YYJEU@eY?@/˘?@L&d2?@J?]P} `. N  $(U(+G*G (e$$y(Bju`h?Fu[ b%"&I "!"yU}  "b8#֒K#!$X*`?CopyrigPtg(c)g20 9gM c os f"!r !a i n  gAl0 (s 2e e v0d /`V sW_T E cPm!#5 '46X07$AK' L@$y'J12h2K$5~1R|K#??FB#?\.?h$p123[B8WB2qZ@E?DF @12u0`Ձ-0rwr[2i 1Bu] @rZS"S2A3Q:Re22ShB@s7|# Җ'Hhe/!^=U"+U Hg!daQ/'c_BTFFB")a{"jjh2PP2AA211 QQP?(ua`hN!St ;!sra@ ;!)v.v-~0W'u/u 9;!11Bho{\s!" w9"a{%d@;_r?s@S~jbuvurP'@At_CFeh513Ts p(0se5lr z" ;!1}\slcwt !$x6 >a&lu\sp1fv 6hev5Cj?:R`H7:QtR,tQ”vE`a13Ku4ZQ5F"  (ebSe,@B"pJlh5qmc  B"?(PqxؤN&BQj@[eRJ""Uf p1Uebr3P@j1UT0x"B0o kgP"i& @6y2_gi__8F N$7'F!T0?N 6$9qWF7BHa]DüIA.#HD "-#=h(>T"7 31AU@I&d2?K@J P6 t`  ?Qt# U  l>ƍuQjbb*AluQ b TJU5 L@RGG +$?B& !AbH$5 `C`?CopyrigTt(wc)20 9M c o%s f"!r !ua i n._ Al0 (Us2e e v'0d 0l>4 >UhG1G1@ b!g% Ca4Ը0J}@xRW5 n7o}WSgheof#_TG1M[Q[Q3AARAA2AAj2AA1 JCc8C|@B$%F C0[C,u3F=tReJLsp 61 !@b?2CS,uUd6LsxAXP]pZUN@@ [wM0q5I=t_jZKt* US@5]qH{j5 uKt!X-trc=tDKtC#rC#:S,u+rGfTf A7`G2ciAV1e =MX'2q7B&߁!0% h_HAs )N<r(ORFzLk#gmwB En}]a,1o@+ؔWoBaGoo-PXu PUFD  h> T6D  UA??I43P?<N (^.hh;1 B_1 BsYE V B1 B1VHBU  0B`USB,>\key e^ *%)sU-G/ !L??--B?wpwpp wwpTwp{ xp} wwwwpwwwwwwpww}wOX\Drag onut hep adn"y aex.ubۿk??ؿt 37??UGD" # Q h <T$YY^Q#[U@??@?Pu` 7?u#m )V@@:D:brbYb _ _ _ _l_&7b&&6@^^rr*&&&&&&2S0267E67Jr< >0ÿ@q0?@2?46drD@U238'uL 2-1m2u .FB,@+I2u`u`"V0!u`lB@h4?"?P2HGI'i2)UP@r5B{36{?V ?2bbvbz1`B#p`S`SY`S`S`S`S`S`S02\V/3]`R02S"`R02\V?3\V@3\V02 \V 02 \V 02 \V 02 \V 02 \V 02\V0#`R`R"ccccjBC2Ub%SCvlXsfsf"s7sBBfRsf Rs4v%"zw%2c03>vc%bb|QPAD BS؄LXb0@R=R 58SyTT3rr5705=U2`?CopyrigPt (c)2U09MۀcـosӀfҁrՀaiӀnU. pl) وUs-eeـv?d!31`Vۀs_,PRXY!cPm!#54162ea, U  Yo8cUHEEEYuEn|! 7pf3PalGTDDi2o8T?Ŀ {1lBQ(-DT! @b0Q:!iA>AbsF?G .A;¬sBt7lBh@ %@( ; lƄ& ǚ ,FǏAǏ>>A#@4rj4$4V5 ;5  bXu\)@%iA6T0VQ0#dAbN5Q h=)`R?sۀ T?x3B@5X|Swrg^p @i2o8P1 ,D,@"΀HD: )&# =h ,>T  9 MU@z?@|*?@2z[?@S㯥һ?P Bt`  B֫?t/$*_PcBVBu ]uk&>     7ʡl  K"K"K"K"K"K"K"K"K"K""K""K""K"""K","K"6"K"@"ZJ}BU0@!bA$0:2@;@;@;R@;@6BA"G 4?6L ?A:4B?116 @0 e@0 03lf0Ht6@@Mt`@MthOt}OtВO tO tݼO tO tO tNOtZh1<M#h$@3pxQxQG`?CopyrigTt (c])P20P9PuMPcPosPIfRQrPQaPiPn.P WAlP XsRUePePv `dPK2l>`p>UhX``  !!7"!,!6!l6AQ!J`3@u3J0`f59]|/շY76A 6%vMBCsU@VL ?@2Rq?_,Tk00ie<}󵍕A|]f>^몖v|1s 5E(?u:UOuN$?@i6?@0|]1>î8y~|݋ yN.ݳ*|81|?[!xOu~0O??@o@?@B`r.?@bp` | e1 |17#st ;]tVޟ R?uOu\HI?@w (?@Gd%QǏ~|p p v~t?jTx?8ry?j;R`s?uKy5ZD~|?5^cQT?@mȽHm}W^;ލ~|C('? vKqy?fיKyCD?@_:?@S б?@M|>LiM|I޷|*C|nª̷|95T|sy(Ոft{d"5~jt?@RPFo˴lC`X|?lP6wxKyvn?@- p+?@"?@V*Τ |x|}?8|ۼr|>znȆa}sʡe l6WUh)pU*xKy3?7B)ߋ|hca!~A|!u?(n6x!~KyӜ|F'n}ܔE:(|[J@k~}£>b6!KyaCl]p?@]p&fC|؋k}@|T}# zx!Kyn@e]p,\p}o{z[1}LƦ%ue2h/e3rJQ 4/31RHD: )&# =h ,>T  9 AU@ BҴ?@v?@Ot@?@WB׽-+?P Bt`  gI?ttX̦1P^<(w\5VBu ]uk`&>   J  ֔J}BU02@@}BbAp U"++++&B]##kM?> ?,b#bb zp /K0c!r  i3b/$hb<M#hT{0]#11G`?CopyrigTt (c)@20%@9@M@c@os @fBAr @DAa@i @n.@ Al_@ HscBe7@e@vu@dW@"l>4Uh8AA  v1AƆ!J\HRq?@e ?`f Z<]|̟fW74Bv1 6oVMBSU@$M8{?@ ^c?@)RPv/k/00=YHqoP\:y8)+]fwґdOV|66U5U ?@D;?@IޖN`Œ_,Q_\Qj\1}P\|[~ll7ju:Vdp-hUaWk?@ ?@.PX?@njo\X_P\{ǿlPL ln:1ͳ-hUBҔ?@,et?@+R?@p"ۙ\|5P\p@lfL>&lǟ6.hD:#Tj&:m:P7AT ~Q[Wذr%n%*g>@dZd:\?-'P\ 5܇nQUYo2z[?@I 0Pu?@&1L͸\t~P\kw[OV d@0J~l_>Ʌ)A`?@5^s!):\ѽEaP\Q,\Q-hY+L>î9?@PT7?@G\?OǑSY?k r d? gnBvd ;OU-hU?c/?@! P5n˿PP]:WlpF,d계v-hY*^@US#R`\I_[[i܄f+D̗D"E2$5U#rAg $"HD: )&# =h ,>T  9 IAU@7B?@V?@CDD  )JBU2U"u?{@L@-lA@kGzQ bbbf!['Q Ma q 6!x+ 3"?['!Zd;O?zQ O#b(q (+&B>?8> ?I-\-m/&6))!~0~0x+ n?=!0f21(U/g k/}//%Pkw/1Zd*0@ u/I 2/B4h<M#h8@ #QQ(@I`?CopyrigTtD (wc)D 20DP9D M0Pc.Po%s(Pf6R'Qr*PcQua6Pi(Pn.D _ Al~P .XUsReVPe.PvPdvP2l> *<>Uh$QQ Q! L` #@{֣p= S?`f ڱa]|msQNIZa7R 6zfMB"!|?5n?@qMbX9ElIB2ٗ[lnHa+Q>?@$?@ҹI +W?@x/ka00Hiav@h[l x§?30_fq_J]|;/daeÿg5?@F1ElF4?a[lN,he6i]?@ &h@L?@Uʿm9?@k@;k%7|nS[lU(8gYzc|^fdy|臐T  9 !AU@p$?@&1?@z?@lq?P Bt`  ݸQ?t48F_snϽ@3 Bu ]uk$M > )J 2Uu?g@@-lA_@Gz) bbob>!3'm) a I !P+ ^!?3'}!\(\?'z) '#07\I a) n!/b'#I J(+&B}BU???%478 ?,b?d4zI&"&$/"**'h<M#hj 30 A AZ I`?CopyrigT}t (c) W20P@9 M<@]c:@os4@fBBR3Ar6@oAaB@i4@n. AUl@ :HsBeb@e:@v@d@ 2l>8>UhkAA +A! L`3@ʫcs1?`f ӥg _|=fY7iQ 6VbMB00e?@(ʡEM\5Yc\TP bQ8)Q@:m MbXI?7@Ȼ'`[kZ007TTI d[cabVfv]~|T(RUQUjtߓ?@p$ôM\ lJFc\ia7d4hUs!iJN[E߻!b]A?]"WU9_KP@x+ٮX%?-o?`P_b_tUhi?V4Nӣvd?(Ђ\UbU2SHU"rAg x4 2HD: )&# =h ,>T  9 5AU@0?@Dx0O?@g w?@V-2?P Bt`  Q??tZ<_-iB-P Bu ]uk.M > X  J 2U"u?@L@-lA@kGz= bbbR!G'= Ma ] "!ݓd+ !?G'!\(\?z= ;#07] u)bE;#] (+&BBU?E> ?" ;#Fb3z-D/**7h31<M#h~ 030!A!An I`?CopyrigT}t0 (c)0 W20d@90 MP@]cN@osH@fVBRGArJ@AaV@iH@n.0 AUl@ NHsBev@eN@v@d@2l>4>UhAA ?A! LZ03&@\?6f] ^~|_ar7Q 6VMBSU@1ߗ'%X ?@3Pkn00`eS ]uTUztĴ _flU_JO]|wӠ*U5U_,?@x&e?@j IS*n_]_lq*kr&dϯ4lma!좷e?@5 ̃]PYKle'Jh9QI_[P@ Ҕ?@$M8oP`_r_k4 4lQt'hU2\XUs3rA #2HD: )&# =h ,>T  9 AU@eZ?@ޖz?@=~j?@T$M8{˻?P Bt`  կy ?tm3%R+T"(o_?y(Bu ]iuk` > P  kJ}BU0@@BbAp "+++R+&B]#TTT?> ?%$FbT I3zp #c!  i3 b/$h0!<M#h{0*]#11G`?CopyrigTt (c)@W20%@9@M@]c@os @fBRAr @DAa@i @n.@ AUl_@ HscBe7@e@vu@dW@R"l>v1L>Uh4v1v1   A!JGz%^I ?`fMe"]|IPc87F 6kVMBSU@_,?@K~j%k/009Yt&c~K]ݾaQ`f~KV|x 3eaQU5UnFoZ?@1bDDDľ rhsҿ_\kطAL\!~1P?@* ?@rh휾_]( jL\Ih\˼hԯ3q"9X(iYEaS?@<RqC?@@ tj\DQ#[L\Rϻ%\KL~l r?UY-yP|-kuL``X9?@c\_9pUTTąr\V,ʸldCy^)dDn%}C?@7[~L\}ɩ&_8_J_\VE2%7#rA $"HD: )&# =h ,>T  9 IAU@Cl?@lK~d?@D )J 2U"e?@@-?A@GzQ bbbf!['6Q a q u6!x+ !?['!\(\?zQ O#07q ) !bO#q 8 ; 6B>BUPX`G ?Y> ?,bPbXb`z&2 6$//?22h<M#h D35A5A I`?CopyrigTtD (c])D 20x@9D uMd@cb@os\@IfjB[Ar^@Aaj@i\@n.D WAl@ bHsBUe@eb@v@d@22l> UhaAA(  SA1 LM1֣p= ?@aW?`fO]|=g*71 6VMBSU@gcDwP"?@a} wPT}xk00~Ye0 84 Zsy]f7~kP1f|rIr8"!4?@M8Y~\c5(]QYy>tdQU9Zd;ߛ?@3 P?@7a ol!۶mݗ\f7^?KHlyyrfdh-D_'theҔ_?@Hz\w\;hY>îW?{@b"?@Tc?@K7AljJ\qHl/ܼ^ljth/QiX%`S\_DGfT&ÓQUYvN贁`SQF(?@?@elCvCTW=1fPdyoaiC!1awe7Qiq___Vwe;U22;rA 422HD: )&# =h ,>T  9 IAU@NC?@هϰ+?@ kJ 2U"e?@@-?A@GzQ bbbf!Z['Q aq 6!x+ ^!?['!\(\?'zQ O#07\q ) !/bO#q J8 ; 6B}BUPX`G ?Y> ?,bPbX?b`z&2  6$//?22!h<FM#h D35A5A I`?CopyrigTtD (c)D 20x@9D Md@cb@os\@fjB[Ar^@Aaj@i\@n.D Al@ bHsBe@eb@v@dV@22l> UhaAAP  `SA1 LM1֣p= ?@ T}?`fO]|K741 6VMBSU@gcDwPRq3?@a}W wP|Qxk00Ye0 84 Z]}]f7~kP1f|ʟrᮾIr8"!4?@UM8Y\c5(]QYߝ>tdQU9Zd;ߛ?@i6P?@7Կo2z; ol!۶m۶\SWBN~HlyyrfdM:theҔ_?@Bq\w\0hY>îW?@[!?@Tc?@[ljJ\@qHl/ܼ^l?th/Q~iX%`xS\?_DGfT?䣓QUYvN贁`&{ͅ?@?@N?(el?CvCT?iM1fPd?yoai?RR,1awe7Qiq___Vwe;U22rA 3422HD: )&# =h ,>T  9 IAU@MoZS?@^s?@D?@ rhǻ?P Bt`  #Yt?t\_gY~DWBu ]uk8M>  J}BUe0@@BbA 6"<+<+J<+<+<&B #TTTk?. /?5%>$F7bT#z ?#!<  3 Ob l/$h!<M#h+0 #p11G`?CopyrigT}t (c) W2009 M0]c0os0f2R1r01a0i0n. AUl@ 8sBe0e0v%@d@"l> <>Uh$EAEA 1[6!J` #@Կ?@\-kuL`?`fs ]|vuL7A 6 VMB"!J`YcOO p.w 9 Q8A&J~?@$!i?@ ̓k 07TT< KQtJ]f݇[@a]|PR+~HUyT)Q:DRvN[/?PirTD zWQ77B-?@DvGj 2׶_PPYPZaI<9t\SϏ׷f dh2 +Za|UziK7A`?@e贁Я?@KP3pz?!iJ)Ҩol#\L?ڔ>BY]l|3dm#?`\gyXziN@^`D淪Ol\_KY`}(iy'yIhE2E:6#rA D$"HD: )&# T=h0>Th]]> AU@<^I B?@E?@r A?@PV_L?>Bu `u b]u  -B :mBu` 7?Vuae"B@0Sn7>JBU2U?yBt A1Uh5= A YBJ1eVP7^2 "BU[THD: )&# =h ,>T  9 MU@K?@PT?@2z[?@S㯥һ?P Bt`  B֫?t/$X_ pBVBu ]Suk7&A7     7ʡl  K"K"K"K"K"K"K"K"K"K""K""K""K"""K","K"6"K"@"JBU2U2?<@L- A@:2t D=t7D8!bq:2;6:2t0D= tͮ:By339 ? "+br9;?7h1<M#h 3AAG`?Cop0rigTt (wc)@20@9@M@c@o%s@fBAr@Qua@i@n.@_ Al#P HUs'Re@e@v9P-dP2l>`p>UhX``  !!%,!6!l:1A!J`3@ߌޖu3J?XRf59]|/Y7:1M 6SfMBqcU@VL䥛 ?@2Rqǒ_,Tk@0!ie<3m󵍯A|]f_>^3f|?1s 5E(mehE}eⴁN$?@i6?@0|]12p>î8ާol7iN.ݳ*l81l?[!x}e~0O??@o@?@B`r.?;@``Nl e1 4l?17#vd? ;vt?Vޟ Rme}e\HI?@w (?@Gd%pQlp p fLiM4lIl*ClnjmeyiT}?@v/?@:#uMbꟹl3E]lhtqC,r=meU@k.$?@<a?@\`fH@5k5'>ªl9ߠ5Tիlsy_(ՈftTd~jt?@RPFo˴lC`X4llP6wxyivn?@- -p+?@p"?@V*Τ8lx4l}?8lrl>zQs߃ʡe l6WUhWpU*xyiƻ3??7B)0Ϲlhca!~AlOu(n6x!yilF'n3mܔE:(l[J@km£>76!yiaCl`?@*Ћ`&fql؋k3m@lTm# zx@!yin@eً`,\p韸m-o|?kj[1m?LƦSU2e$CrxA 32D]#2H?G_,bs KX LHF8|Lz#ȃ{w B 4|Dd2xo@+HWzo-sGgooJP4 %*ط,2^Cؼ`|$c'fǯRhiHkPsUFD  h> T6D BU??? 5?Fx<F BP(?3P?|; (^-  0B`WWirefaum,\UIusriWntfc%poy]mckp]AplctoWbedac "scPb e^ F% !--H? 1߃[*/A+*&??s333?3}?33?3333?33?3y3?3b BP(![??=MҶ-@v?J?FѪU& }I&t\7?<$UHLD &# T>h uA`} ? / '"*'">'"R'"f'"z'"'"O&'"'"Dw&&'"" "#u)J݀>U2UZ2?YYYF9>u M@>bP0č1|2Y632b9 !3NS3b2b2J5?> ?i[>10G%` LineCoklP@rzۍ0ˣ"0fCz>0bT܍023aAfOxF45񁠕lI %=G _S$CB J30AcQQ#WG}2`?OApyV@igXt (c)P20P9PMH@cV@oKsP@fROArPUAaPiP@n..P AR@lPWUsRePeV@vL@dPP1>`VH@s_@RXYPcXm!/#5P4-bP\S4ǍqS`?RodfJ3A% |doJ1Bx@ +?@\c@J@{3u3-1 "29 A)"0s2=Bt"5ru=qC!7,4 6=@1 \7W7QlJ]DUl8qqaX!pQAcG8aa.b?@*Z $:s C$I EyP?4Nri<~˜?@)` ]WmƠVHdfwNZ#?FՁ݀?@ih ~?C{A,A#]ƪ$tnL/D -3!22 ]Urf%v˥k![= TU `҅2?F>Tk_JY JRЈ,~J ?ek*ԴƐ^͛CerN?H[IMLl۶Ռ𞤹Erl9&?@w^y-\ Ҡ(P  MT[Q?@EIc?FZbΦ uEJp 7ls͡Ey" Tў|XqίƐ䮄rú #L:>+=rkϖ;\$F>Fu`j_>` {cPEy"u'-SySȯ#~!%1}h~D z;FX7kocFQϧʔ tApt4pD"4HZ~?-ɻk۶n#Q6Yѡk?Fw0Q/WJl~~JtYo*#wϬƐzEr\[y?@3J8&U ;]?@OY=b?FP0D?@-˗gJ  ǿ ؈e6ÈYئxq!y?8~^iƐ{.UF#o?@'JپV~?@9 L y쓔8{(-.ڞz)8aEy`;ӄ ˇ4 &e b˶ +,ZՕ$I 2BTSeT/ura$ߓq?c }&U?F+$ֵ\/MpO O{L_qg),qTq$oxaɾx%T(Ydvbphb,smcT aa``%`Ico#nareRctK,@bhq-vQdەv땙x\%BP( [˳?ѤF` T6D jBU??Fx<F BP(?3P|$s h.̝  0B`JWirefam,`IusrinUtfcpIoymWckpAWplct]o,C"tl,\cPe%vnke^ 6% 7G r?{&A2 &   wwޅ튭yz>- +zyGjh~vPDrawg nd]dopo%t eachvn.bÿ?qĿr??L!;?UGD  3 h0TdYY U@L @??Pn} u{` ?SuLY.X.5H5\$*44*HH\\ )&UL0U"?LLLFVbmB%` LineColV mrzٓ9 l#zbwHB#V?##_#&& "3"n!<.FN lX U/g/@b<|*$Y#6*'ت#1p!' "`?m1wpyt0igPt (cu)@2\09@uMN ct0osn0IfBm1r@s1a@in0n.@ UAh2 Hs]Be1@et0vR dQ@ 1`VN s_60RXYQ@cPm!#5>#@213!!e1a 6D v #YHATH[%T\Wg%&fat_T-T!P,@1 3EHD # =h4>T]]9 !AU@?һ P6 mu` o?u# t  )t72R(L$A  J EJU2q?SL{Nb/@A*  /_b/!8<#3"b;$3"% ]+]&PhI 9?2<?& ?A"t/0 $6117;{`?Copy_rigTt:(c):2U04@9:M @c@os@f&BAr@SAa&@i@n}.: Aln@U HsrBeF@e@Ev@df@0l. Uh #@7 A#!3! J_ |!#FR9 hVwRiAlPev59 -X'W'0UbZ>!<0 V*Bs8!ervrH4EŕHD # =h4>T]]9 !AU@m۶?@êPn6 u{` ?u# t lȸ )t72yL3R)L $]A  J EuJU07?A3{`Backgrou_ndC) l) rz@@ -bAE&bQ$& !R(^&񁠍hI 99<?& ?Ag"t)NC*Q)^&I" ^&!\#{u1bZ @!&0%B=?" !33P2]"1P17;#?2!py' i% ht(! )2U0O@9M;@c'"%s) fAB2!r5@8!uaA@i) n. A5 l:GsBea@e' v@dȁ@0l Uh #7 *Ah#!I!Ja,_ab2!aRO VRiW5ie59 -X'W'0U7b;4%0 V*B~8!e?'IVH*qߕHD # =h4>T]]JU@۶mۯ?@$_I$Inq?P6 u` ?iu# t +T)t764_τ?)2W3X)L >REJ5 {`?CopyrigTt(c)20 9Mcosf"r-!a in. AlH sL"e ev^ d@ K2q ?=Lzb#z@ -b A!&#" ( !(&*?4?F6?\.? E q?F 7w`B6 ck*!u> d*"l," I۽ #b= S? %B?[MZD66\ 2"&J" :l>(>Uh5=#WA!JVC$w(&Vp:~AYii@\ZSQmU3&Vھq>_fTYdf`jTiAleI =M!X,GG_'0Ub;\$0 FJjB8e.F[r _BHCך Z95"MK` F~L:#w)B GCe3o@+XXWo3sG_o~(1X&&PUFD  h> T6D BU?VU??X?Fx<F B/P(?3P?|S (֝:  0B`OWirefam,\U]Iusr_intfcpoytmckupAplctoc*sdu$Xe^ ,% -H s Q4B?Z[?3w?? ?3{ D>3??3@3?w3w3?bp= ף BP(??N贁N/KҶ??]VU53{5U?S5?UH dD  &# J>h cBHu$RYYYwww?? [b@G%` LineCol rzۖ "/#z} bT k E"wSuP` F l .` x/2!%B!B%bK# !w!#Q"W+["$h2nU?F^Al'غ(L"2dq6(&2 !B'0A!'l"`?!py igpt(c)20K@9M c os f=B!r1@!a=@i n. A{" 5HsBe]@eJ v d}@ 1w`V s__RXY}@cpm!#5O@183!t\k4q@#?O VAT!T8_!bA  ?@S @.3uL5-M!H[N SQ(BRuQSf1,bw"la0UaE@7&A!NSQQr?Fy?4FPHS ؉q[YQ!̟)(n! ;x35e?zG]N wq||b5~,>u4or2dooooooRvnk} B;x<)+= ؒ{|$HC,Pbʏ܏n\.岇 iW.THZb3x;|@d_1HϬlρb¯ԯ ~ϵsJP?&d2cu 33ʿ3ϳW$ϧ|\{Md߈b*IyfWom6E_p-oh qo y 'v+oBOo.?oX@ogM . T Y-**RT-c-phwTLᔁ 2`MR`Iconȩ|\%,@RLqM T@Q(HY-*5\rju?&v&vw<ɵiMࢁ&*Xd'2q?J1!t' *jMଡ*&*{A-;!32-æe&uHd\s ;S5rN|_AOFL4#C JB O3]@eko+X]Ka >PUFD  h> T6D BU?xͅ)U??Fx<F B_P(?3P?| (^-҅  0B`TWirefam,\UIusrintfcpoymckpAplctoTTob)rMn%nwae^ @% -H u]? |??!??52+*!~?}u3 33?333?33?χ 33?3333?(u3 3? xxb BP(봿?/KҶ?as!iJU_5>?-kU?BEUHLD &H# >h U@ͅ)U?@|F BP(P p J J>uA` ?.&K*0u:J2U?YYYF9>u8M@->bqb !N ?G. ~?[>G%` LineColژ rz"#zbOTf!/&A%lI D="7_c3l#"A1c1k7G`?!py igXt (c)020090M c oKs f2!r0!a0i n..0 A l07Us,Be@e v d @a01>`V s_` RXY @cXm!#50968`1\nq@?OFA<;DOJQ @C@J@u-0zLC!6 fSz"*}RCuQ#it;~B!T<7_JQlJ!JUl-a-aa) & !1da%1C1Q ZšX'.SrXY0{_Bv߇Ne> -?FI:lw(l*3J;x5e"4?Fiwpk>PlL1+ruH5e֛u7pF*tkOcrYIvu5eGylt A_yQuEe3̼6?EeunAv6C,þ¦|E&Lώ06dOa|e2Vo8Qo ya~i_k9]{WΪikuԎI݄Xu*DyD┖ua"TgASuaiP=7_vʩEeF[15GNvMs!iB5}/p^;jF?M~1sqeueoo"dA-o?oQocouooooo Pv׶?FZR6l!hՇ'Ǻyv;t=o Q< ڎCX>m"Qgb-jB?觪Sښ̙p5. P*y?FgyY߫ڹ!`&h8kl@Ew@z?_,ԙ6ﭪ8H5=st?Fib΄q$ڬ& ~h̢fܝ@d+):ayDo?},.ڈ5ա44H?rѕՋLF>L??!<vYI܏>I?O]J9VkIOq(2z?dOPQ?O(O+B.jTOz,ՌP8 /;_|lo"(//7jT_+BA4q`?֥+To(V/%/rdA?+Bu ?z,-?SDoB;M֕q zTI/+K_2n.?ar4oA $}6éT)XɅ4Xr4۵dF':H@Xf[ٚ&H鏈ʄ)+Byd*40r^;j|[_m_gBYt_ , ۱T ۵&ѡȑT%$Fү.x%("4FyէQ,ύ)ϟew=/O/a/s?'?9???O%YkOOOa5__9E?QuoooUM_)U%7%7Ie!u ՟q~u\g!d!n/$$-$#Ti!r`Icon!%Z ,@"(qhԟe'\* OBPNA5@6"<5i7i=?O? U7'2qC@߬!褿0q. 6BjN?? e{+GAO!3B2V #[FF/_M5_H8Rכ t(.$IFHL߮E#!w B 4@e kp+^Y=B@+ PUFDS  h> T6D BU?PU?Fx<F BP(?3P?|; (^-  0B`_Wirefaum,\UIusriWntfc%poy]mckp]Aplctofrsdaog$ %)!cH"be^ V% --H n????&?2x762F' 3333G333?v?3\?wq<3 ??133 @H}?bl?rUUUWſV??Ǫo??hۏ\5JF?UEUHTD &# J>hZ8JT EI/UU@l?rUUU?@VP ZnM Q $U(83A(L3(`3(t3(@3(3 %(3Q ) 3G[" ) 3#("G#<"[#P"3 NuQ`x?d "."B"V"j"~"""&&&&(&"(&6(&J(&^(4"d"j"uUt)#NU0WUU?F|Q QN CYYYKBED`H?"NbDz@bTܙ@@BOG)R CADB`?Copyrig`tw(c)w20&P9wMPc.Pos PfR Qr PEQaPi Pn.w Al`P XsdRe8PePvvPdXP1N`VPs}_s@RXYXP]c`m! @5*P3P2QV\ C2qP?H_VCAv%xQTo@@S@N+uLr M-Aj"e9} p"/bc=td"buac74x=D! Cb`&1Bt5M qliaUt(@QUmq)c8ia Sc#Pj"c e~ |!i49H?dXQ?@dȽB?@1W4p?@_- )s@,Up}?ZdTj"p#K`'>dT3q!2 UEhg ?@e?@ɱveCzL5b?h* Ќ>daVhvU-?@}HvUg"UYD ~Ev}Ќ1?mb Ÿ6ehBB-kYd;?@A<uFu~+Mb>nlЌTzU)uhT}x?@^sZTO[Ā6RگWdWj4? yUs4Č=fADV\h#?@QB.żd~EX6 ?߃Q= XL(L(\E~h*X9v۲VD1Vd~\uh#@65XvrQ9(/4eOӉ3'U}UAߌqQ0wt)u4g~؇ϰ+@VB)(sAd?|9H<vvr!z\&E@e#Xj -Y 06eRvt|@pBU`JB)@?.`jfDy?@$$5UjekC2؄h FOAPQѐa jf(`{H:$7-؄_>&h/`@@+rh@p)gG/Bt)߾`Z|Rw6// L`9P71z4 ?\/n/-<؄?QM^>7Fy?;qqNVTڷ1)S?` AI*U(T㥛D?@,SDS?;>BQ7?WxfȩU T6D BU?NT??`U??I?3P|' (^-  0B`YWirefaum,\UIusriWntfc%poy]mckp]AplctoWbedac"ssrpHbe^H J% 7U-H~ ptv$8?@K K^NC??3?x3?3~333?~?3?3  ?@8;?zb|Gz??{pܑ֡`M<+ ??迏(\37?z?UH XD  &# U>h < T$mmJ\zU@?@< ףp=?@?A{Gz?P  C  Q 6 U:JEA:^E]:rE:Em:EE:E ru` ?ΡE,2@Th|FuQUYYY"?. ? "b03z @bT;0;0uH1S000AH1#2q0?"#[+5;0G%` LineCol0rVz;0*10?2B6F3a4F9628g1G7 !F3 &#xX R=nGkC!3MB B">\0AAG+2`?1py0igdt (c).P20:P9.PM0c0os0f,R1r P1a,Pi0n..P KA0l.P%WsxRUeLPe0v0dlP@1`V0s_0RYlPcdm!#5J>P5:P2AZ \:?_V#k0d'ora1B0 ?@3vr@L2uLT5)-H1)MA(P0 @c-MBtbua?LC'$->ALG "x2lUx0BPQnD=c(`Sd/U ?!fc #:!o vv \x"u8?8YF JbF,>bHSdg$Hd?An?@J}?A&Rp s%0=)C}̣_ |ɣv?ʣd.qǷ#" |?dr;$E̅]7'3?A Giе?@^h&?AT8[A@߅" 4 KܒJSB$|۷`rH̅~fw#o?@oQPzPu?A3f ;bF4,nJz?\dP1#5Z̅zh2rs,|j񾣏d7 DJLu%BiJeu?'& jgdؐ?A~yiC\H?Ai>[zuཹ.{dqQu;̅S7?A%$?@5 ,~ ?A0Y-0+L4<,Ji$ʇm`,4>Y?AݸߎyvVE32s;J?Em`ՆߘBoqz?MVУuc a2rq `36:?G2S+I[qqQQ|tyueEyuE/,9lAA𼚙3dm۶mŸmht  ѻqqU);M_qn?Aũ4gˢ$I$It.?(/f۹?(\qqB!4FXj|ns#*Ѧ?Aw'ձ3*t"C»qqQ?Qcun\N*f"O//zpgGd%U!TU!c?k+HrTq4B`2}"uH3TAaAh^PASI2PiQT1}%3d,%@28aq:tq`]4EyxLHTYdahwCC<b 1ui(2ODON|RxXFwG7'T?M}Eqbѿ}pFRxjOON|Rx{Fw!f_!2~eV03PVV$o]}e_vHds HأKw@ FL߮G#H%wB U5@eTko+/oNa PUFD  h> T6D jBU???]Fx<F BP(?R3P|$ (^-S.:  0B`UWirefam,\U]Iusr_intfcpoytmckupAplctoT*o brMncpHle^( L% AG Ln 3 ; $3 . c.G.?σ\?3q?{u?3333Մ33?33? 33?q733??v3 333L`353?730bL&d2빿?JXߢ=tݻ?W# |5?BP( {^?M?UG DF P# h @T(PYY# UF BP(?@ ?FL&d2P} u`?Mu#8 >D ^B:DDXfqfl]}bz[@$!"d$2U"?YYYF= uuj!b| !"&#" b) !y#"񉆕#V'?36 ?/"[ԉ![%` LineColj0r["ٓ 3z[bT["(t&=/-2 3P3"/# A>A17"`?1py0igPt gc)u@20@9u@M0c0os0fsB1rg@1as@i0n.u@ KA0lu@lGsBUe@e0v0d@01`V0s_D0RXY@cPm #5@96P0t\$q.P?-_?V?\.?A!P0@7S]^@#uL%-!$/! $/"9fbu!a5ceOav% BZ,0o Hl((auQ9sDYhmgdaTkTAJt"PYr3 (DZqFp>A>AD4`@1CIy@ATgq3Cs,@rxqoo&TVV4<c%nirX7'?T K$Q10 ~!jV{73?!3 4ޟWUHxuD4B &# 4  >hQ(TP4 QJUF x^ъ?FG&d2? FAP t`  7?$tM.5*VW;D;YVu+ 5uE#0W-U?F YYY)">(?"bk$z@boTw w Ef"l/~'!!s`?Copyrigt c) 2009 M c oKs f"!r #1a i n. Al>0 (sB2e0e vZT0d60B( p_A{kUlJY0UYYO!M}@7?FW[&4g;i(EqeEO2ODL[N?ksOO AHHNO'OOKE5OmO-_O1Q??????__xsgˏRu -c[BϡP(İŸ 噖透W ?vECsaõJݤRC2 rqiR"Vaq8`'Saqau)K=Ofxzk sY}yT mCECK@b1ew R&J\\VECeBs&a%DMA6O]j>mtW6 /_HQכ "tD9UcFLuH#C'B `6@elko+ȯoQBG$DPhPUFD  h> T6D BU?zͅ)U??@U?Fx<F BP(?3P?|; (^-  0B`WWirefaum,\UIusriWntfc%poy]mckp]AplctoWbedac"snb e^ F% !--Hu ,33? 3?43 3?O3 ?O:KO3 <l vZWOW?63?b BP(??gXKҶtN?l?s*"iJUt"&\-kU?<$UHPD  &# R>h -P~Q("=Y*ǪePf̤Ob;aXY!]!䟿 x! !˿ïxƕ& łߛ:iX "cϝF>8/!Fϖ˦IQQVрxe A!@z0B?@9 {ޜ?:߉TGaƶȸ; &)א?F v?@cB/ڥ>J  :ͅ10uy嵼_TШߠ>ǯ?OY&ߛZ0L7+',ݠ{D?@.AΙ?Fٵ{^\>Y_Od;f܄-؉؅BSj쵼}(杻^eƕ Z,-F°u?F~vn& ?8V Y⻣E腬\)]D4q&,ex"ƕ2ߛ!]ybՠl ?F~^P$! &3'vb'n:?-!l~"™.BKB$'ߛ!0g/y$zE KU*dPFVT|?@^e%Y!sDq~5߽j֧>b 92/*™njA4ߛus/f܊6՜ Y=5F!'+!<2!_ o?ƕyeߛa/j -?Qcy#Fc瓞(qȞ؝(MH/|F%kJ= EW/{颙|ӂُ޶<} z??@z` G'13E :Z #3 Q'p蟢OL Fqۛ֟mTfFҽ@  Kҏ/9&&!Ԣ8/QXs/kG/#/?6Ų/?q '?@6 F?@59(W??k`S6VJ?_?1cTOQoR-O?O@\D;Gk1}jO"ߨS\ROnOOO c_R\/K_r˻tV&sK_@` ik _o7o6||mo+p^>fee1ѠoXxhxo*Dk>k .0QSqgtqqTqa@ɧx|T(-%TSЮmrq|`Icon,%@qtq@[y(ix\JEBP?@Рn<$i0/B/|xX*'2q60?d!0d &xjt//|ʧx{7Ai?!322i6N66"O=_vH?  cs La{POJMN FHLH#(m& wB 6]@eko+8/]]a%'!< PUFD  h> T6D BU? qq?F~?Fx<F BP(?3P?|8 (^-L.A.  0B`ZWire]fam,t]Iusr_intfcpoytmckupAplcto,UC"tl,\R !s-!bx,"]gid,"c&"%une^ j% -Gu ?&4wOYLwu YNJYdFDrag on]t pead lis bx.bi߿ǜ!?? mF1cN??U`X׿ Ta*ʼy0OໆMÌ?UGHD # =h @>T(]]9 #B 9AU@//:&RSS2 `UO;B` *UW<0iu hp8"COaQa$xboOM.{_Z #1AbS\qntuv]MZ r5L% VrC\9sT?vM?\.5?AB{*9s8AG;C?ap0rf kc)o20{9oM 2x!sy fmar` a7.o AB esel2rKv<0d@1cV0s_PR0YcTm!#52O17ABhLK`4! ;@߁T!A1 u.wV#S/J`!*! !(rB s9MH aO3_xݧOe_ǯ O0A>ObrA]Ncg eTqM Bqq3b@AArA=qqEKKGA8Ad -{ĢqJT3@AEϩɈ3~88x‰@AcQsp2BeGedق'9K߉uma{؇ŬzCoӀ#2` Y oxoi0e{ASClG2TT|?ބmbw3>(ۅA:L E By!ņ,iFbe9 ^ E 'BF!I$1 }9B4` am`l<0x1q7"^3` Al0ib"bP3B2`K TtoBqv[#VVB<s,Z - E:.-xTBjnVqDF/!32"Dn/Ue&A9ƙU-`lp'$)+E$}a'HD # =h8>TB ]]9 #C"AUFi?Fǜ!??@}P6 u`lo?u#o`bt v 1r:Aw%  b ul`A@0t! %$2AZD]3JH +@ uL u I.g  t-^"t-_k"'&!&'ZMC P3K#9A@##2Mz2q0|?(9!L+%g68!t04e2V32Fll<Y3c6c6P L"A4 D|jAgU<` Fil@wCo@or1yglgAg,[bCzOE3vFV6OIbOO).O F KF2\3B\:?WURWM?\.? lfo:5%P1P1X7;`?Apy@igTtk(c)k20`9kM)Pc.@os@fqbAre`Aaq`i@n.k A+R ihsbe`e@vB`d`7;B>0>UhhE5GxZai#U+q2)w:J`6At ~/rSD  8rM(1 E/u3~%I'u5u@wvNru7E2p,;2rA 72 cgthe>{ErT sMAA";HA3蚔"*7BJ3l@aI[c6M`+H`a`i`(H.B%Qll@Ӟq2p 8BD' "3h:ȟڗB@tq`om5k٘7EϯA28keCunk1piAPAe59 D9XL7W'c6H1L!a W jHZŕ{7]Oc6!3XX43'ÕHD: # ;h0>Th]]9 # AUFi?FL}?FL&d2?F BP(Pn u` ?u#`bu~A@!)1t t W>5JWU I?#MBhM@8V0Uq"@L#b$7"&lVVV'<H Ae!9Q+!.` Fil"0Con"0orz9A9#7bG3z9.9Z9suN]3d3$'8+ H!e2 &M ;s`?'1py.0igTtf(c)f2`09fM 0c.0oKs(0fB'1r@-1a@i(0n.Rf h #1 Hs^BUe2@e.0v0dR@P#"0?],>Uh  1j2U+#p 8Ab j0#J`FVBQ7 fRM@B!&_F_BQ|U%[_ _Q|U2_;"KrA "[cCUHLuD  T>h0JTlaaDM >UFi?Fǜ!?FL&d2?@}?P >u~A`bSu >uA@taB>t  KAV$My $yJ== ?yQzNz2q |?@9 ! 7>&>(t05 U55"bf ?"R5"t&B~GKP M#LC] >@w(D:'5"t!6loG``?CopyrigXt (c) 2d09 M0c0os0f21r01a0i0n. Al0 8s2e0e0v0dH0HlJa,JUlK  1z/+!p 8Mb 7w Q $?FUѼ >$?&`$?CA?ARB9?\.¾OIY@5"r"4Q)5G?FB?n_bX_CHOGFV2OSU5"wSHqZ GAa$Bp;O Q]I+5#r& ~SI`!&_5BbZa W   r4QQUoi pY }X3:0}ogT$ ]4ZD xu}oa_BH ך A]kEJj FL .f#po/Q d]@a70@{+U^aGh`؜7`< a@UFD<  h> T6D jBU???Fx<F BP(?R3P|$ (^VB7@E G 0B`fWirefam,`IusrintfcpoymckpAplcto,C"tl,\s!bx"im"cr"u! gWid:$elke^ n%J 7GuE 7 #(hDrawg nd]dopit l s. bxdiem.b࿏x#J NAUFx!ApAV0g(gu`m u#>aa "=4>|-*/!"V"kL]w$A,% @$/@6 "bfA1u{$ffV"7" -V;V"$ -w#2q@|?Oå21r+`#b.A0]n2M@[=ZEA.` LineCol@Mrz=8lobCz=>AIYD"f2fA[B\ J?OV!#?\.?A/@h-/'"HuYT?VHAafFMEA:uABPckg@ou}@dOGRDOA0H)Ff2 JJ.+R cBu2#B0@|!"Saag;2`]?apy`iPht (P])p20#p9pUM{@cRs`frRar paapi`wn.p A`lpwsare5peJ`v@dUp`1w`V{@s_P_RXYUpcTm!#5'p218ae>b%9 %%@&R(bT@xp P7heS5 WT!"=An""`!`!"aa"ɄXRR{{"MAABAb CA kDAEEA'u"v!f1(EFG'?a'G3 `7v @ " pa3n"An%]~vw,prS*䒐=L%v#TaapG rda~=%>QJ{=M@ (%c\=r'b7 *)JC\B7b-B5A` 3o%f}>XU=U*\?M@QʺJ4r8rc0kFL&d2ѿu2Ϙ d#AQQ ~#0=FXSA|G>Em˩|ώϠ=/QTظQΓc"qNO:@Z% <<,@qeU"Kq_/! P#}j<:#>!%.(:J'BH7ek{BvBa۷`AMIjMpltAtA!"n"::""䑀"Ԃ**Ⴉ(Aeaeb;^`DAp&tKrqe޲*n%s)8\`c`&LnPQbM~q !72vRHߒg@~Naf #5%VTss ec ;`!u /2/D/V/&Dr/@/ // Օ/?%s PI&MQepLdwrAs ?@E?hh?s&)Rq U>B5OGLG DXUgO?Of&9OO,OO Y!+_=_O_ a_&)wK{__k8 __ Y1#iބtPz]u#b'2qp?[`U1k0f`"r )XAia4ǁ&qU ǁu\re Չ]ea /#ޱ rѸ) 4Mǿ g.5:z?xM(Ġ  HHXp?"~H9u4YsڏJ !2ut -fjTŮoo*{1d vԟ !3%w&xw {)xHDD # =h ,>T  9 #EUF?FxuR`'LR\u'Jޭ0ql?}@Aun`A Wb č5A|/ȿM?k& AnZ4` Ac entCol r3zۼAٖ&#z}bK)אb# / "!%?08<< 3R#R&= e" 3L)u6B117;`?!py iUgTt&( )&W207@9&M#@]c os f)BR!r@!a i wn.& A l&"GsuBeI@e v di@l>R0>UhhRRA^+ p EA ;#J` 7V\b\]QLt2  3~2RMB(A_d/a_]QU5^__%gUE[>PoS_3oU2X1_;rA *cCBB(7erw:GC\!މi8QeE9 MX7#w'2;<4鿫A #v_H ך {5њ4=k\@X+FLVDg#(mEw-B _8i]Ka,85F@-k7IaGhd@ PHkOjPUFD h> ^T6D BU?@m?I?)3P|t h^-\h.8jUUK.Q LE|  0B`[Wirefam,\UIusrNin& !fcpo&)!yt$ m( ck upA$ plcto f( rsdaP ogl/`* e^ %% UGu )7wwwYk} wU{PXDrawg nd]dopo%t e)ail}frm.mb?8?I$k?%5UG HD )# Jh<> T$E>#MEAU@?@Pu` ?u#t&L>"MRbRvRJA `:RDbvAT>&Uc<~# 3#0q ?åߥA?֔nb@Z.` Li eCokl rzۺ Aٺ ,7b#z ߀A)5 lM '3'3qX2l^2A+q2?o5 ? |*&L'F l /B&/ = )N!0! ?2?? >1&^!!A` STad0w?/..?1Ʉ'9 0CJ[:OY1  S3L!# KR'3GV}"hL>4@ #Q Q(W;"`?}Apy@igTt (c)PW20P9PM ]c@os~@fRR}ArPAaPi~@Un@P PA2 XUs6be `e@v d@R1`V s_PRXY@PcTm!#5P3` ABgheTo~ lTd"GAaM"7Aa}"HAqI2IAqD8A qM9HA-qwR-7t (7cQQ SC` }AnPa$ABGqM%Xc$a6r qb #!$?:7v8CCu}%c[2UH?crixD`zDsqɈGqI5cuAz v #%!-Yrap^! ix2k M"GqgE1ix>{ +CR}ARM(MMfO1eaɃŇٌCh*wU@PHCu,ϯe(b7I5 ^!Z%iMtM%it}%iN1eP#LY#"G  ]aU#bS7@$nB %,˵ CUgŊS{dMM AV0|TՀ9 gQ# / (3h Û(7e 6"J(ߌ3ߠ}%jI5CZ~G!A>#!pA^ U cpoo`A" (J`?ͣMcrjȟ!ArƣA? 7 SS1|lΗ\a-T%%Srnt%* iKq` RHbiz Pa"ae9Ńك21Sq pn*A͚PP] 2͚MP`5:naHD: )# T=h8> T ]]A# 5AU}@?2`Uߵ?2 @YA?PBt` l?@[9BtA`1t#-u3;*B bp 7AgbThoiIuBu FA7YJBBUMbAz:"]@B/TlL!a?& ?A}Bbt`BackgroundC l re1UhhE= A$+] L"J`\S}1F7a  6[bMBa#o!9o5cqe}%ooo@jqqe5eoo6o~FE}1X3>2rA 2sISHD: )# T=h8> T ]]A# AU2?2EH, ?2 @2ߚ`?{?P6Bt` bp 7Au l?A@UBAt#@]A)GV47B bXH4RB@RIx3B##5h7A$J'^, d&N" JBB:/zbAz6"]@B/R#G +3?XA6 ?AlBb6X:`BackgrounWdC0l0r!%6b3z968 Hm1526=#M+2 A#C^39AD"#Ma0UlB?åW@ #;H07#B#A#A+G;;`?1py0i0htk(0)k20@9kM*@c2s0fB1r@1a@i0n.k Af0lTkGs;RePe0EvMPd/P!@h/?g1A0>UhhE= A# /J`rS2,f"$#h6aD"  CCc"ZbMBzAo&+%?npe5noogpeEefo,o pe\Ea o,>2rA !@2s_SHD:  )# h4>T]]9 # Mz?AU@?@H6@@@ N??P t`  o?$t# bu! 33?)uLu. @Q]R,Y]A ԛ JA #Q><"l"A*"?(% |?bAdbb$zddSu` Fwil Co orzd` /2%n!n&(Sc+.In&N"T&7DJ#"=1U&" 43E#(9A2;Z"30q}0?åX 6?"A/U!.S'j\"32}3??6\.+?4.OJ>!"3P2J"3B4141<7;`?!py igTt(c)20@9M c os fB!r@!a@i n. T0! HsRe@e v+Pd PgheY_7U+T#T"";AQ2KAQ*3SAA`H+Pa7Pi PCQ C;UQ5QQSFrQ`B t@om;RF;TοB;L+PAEd_l6*SDTjh7Qi5ienY=(9eXZGnW'@G6uWCF!tt nVmEjoo{ZGG6!3:w;x<42v!{ ,A>e>4N -S4i JMq LTA#/cd9"RnQ'D7  pHK"8  p{0am5qa5qdٟaQE!>N"rA N"=Sp"bD a"g*T t eHD:  ;h8>TB ]]>T }AU2U?2EH, ?@2ߚ`?Pu`l?uhp HAA@Ryt! bN]W67<bfI<hGB6Bt Si BUN` dB V>+&%"+&Y+& JBr/IbAzD"]@%j/BUl_uL?6 ?ADt`BackgrounWdCS0lS0r!yDl.%D,b3zj?|5DSu `` Fi_0l[?` ?2e511274"!13B 41CB.FGh#M2 iC%39A%"FH񡅙a0?å< @@G#iAiAqG;`?\1pyQ0iO0htk(K0)k20MP9kM0cJQ2sS0f?R\1r3Pb1a?PiS0n.k A2 7XsRe_PeQ0vPdPg@0/@l>0>UhhE= (Q%!$+1 "J`S9  a G  6N"bM(too$4oceEneweNE>PotdE1o>BrRA g@B S(]e%_\H\!$, Bt&DJIR FLST#h*UUB9]dH8s]@+_j]7aGȨVP\i(5`ZXpchUFD  h> T6D BU?VU??`Fx<F BP(K?3P?| P(^-:  0B`[Wirefam,\U]Iusr_intfcpoytmckupAplctoWbedac"snt$ae^ N% --H n?Plww?w{}}&~~262.&"{sw?@3333?3 3?3? ?3߆ 3? 3DŽ 3%  ?G3 ) B'\T  u3??|?bP#GzBP(??x%0KҶ??#L M\UUUR7&fmF7?<$UH!D &#  J>hZm@~+DqQɼ]ԿD Ξ $6u?b{?Fm%exxϊǾ01EgZ+Iπ8P! ^>2JיĜϥ0d TMipӀQ߼\3Ѥ(q5"4j?FzެhNaCd;._:33#dh6Ih&f;Nv ~?{F5^Vui8j "~Vu6z< 3j?r 86x?FxGND  z'+KY!?Fi޶?@&N?FW 0ׇ=-zLߠe u j7]6K(yr?FćN|^r'"/ݲV6mXƧ~){E3?IOzU$6H8Χ׶፥0SlD Qh~N $J V~5Xo~ñ.C}9=20zTGjϨCA5DU@qs|"+d?@#5%<;QDpߩqD S=j9C_ p%$ij oY|0m6N4zD E4`[OOE5'i?{=O1tA9??*?<:4ΧCAiᚕ///0We3O1O͐OF?NGoҳ|ʡfoLE`~#`3~MUļm?ux̲EU@ E}/*\?@U-15|W~l?dDIL)FMHF$&A1nuAD}™@OROO@-KKp 0U ]ɥi=9 @fɡd@#ߚ?F_rW?_o13F 뾆h?O<Χ$_o o_uƴ5_G_ Ƕ}ooڟ&cX =M@ao,l%w.4m# 6(t%BZ:KN\33Sm>ab*)U@` 9Ӛ`@r?@Qv,nx`?)fw?(\M?KqTDŽ.ԍ&4)A~]<-`^2QǦ:VZd<#?5d_k +ǟRဉ//:Lbt ߅Z ^`,߮yLHxf<˳mӟmOq,`+ʵ۲LN`YچZ;\YjԭOÉA{ u8?F6<,klk0y;oXa?l[=#K,;;B'{tX?f"?{}, pAtȔ{'K#y1xʗj/A~k"XWwW?F>z@w_PAn/w)*U@>:Uç?F3?@ok(Wb Aa(`kux&y8\GVdܔVU@P/mgԿ.M q] Q} g~+Ac?Jn?@z i@!Zb-t^;6NlZ? ѐoo^Ư~>Ma|i2Ac;I Q MS;[&n+=jInIS죣w@G^(d14r ttKONln/~C݀0|Nš*=BQ~jτ?FOD` @333H͙zU@} 7@_?Fˢմ`0,? tҳNljW PO~??'?^ ///////U@I @,y~ۼn|?5M?˳mfE?~n#ϝꐺ0oicn=o};ԭ0RD  JX8Psaڲ?@N*l9))G (\ mTd l fTd߻JU@Zk&P  VN m<Lֳ%~ʣ:vLaprhv ~ʣa)](:ߖߨߺU@^a"PO̡giCK mOBA5HHq~ߌMZ m˸~vf ׀F 2ߗRͦsϒoֺF_=xrh +~*]2P:a֣TUR\5_aU@'$)_̡?/ݤ ;?~Mv{/̡/ 6K%?ob <m?`?Ԓ .N{_]ߌÙP&45xAri3ò?F֕߈Ltߌ$QM"jϱұvU?FxG?@?FѭL9/|^G;}4 *tߓyC]H:|///@[84PzkKy\4Qs|/rf1<_ p.>&oHfY)2fkxMgo̡87m`?zOOOOgm97DATAOTWlH3BT6AIt-tmH~sTlq 2`m3B`IcGonqu}sD,@rxlqmq2AQIt*IRUH\qP#Gz?F ?BP(?A:-Dr<ኾP}9i-?HX_D؊'2q$u?R}!0R~ ۆHjɏۏ폕H{ ARU!3ܒ2RUps<ɖv_vH!cs g9 WJHx FHL{lB#mw.B `8nU@elko+_joXBBGoPUFD  h> T6D BU?{ͅ???Fx<F B_P(?3P|C (^-  0B`XWire]fam,\wUIus}rintUfcpoymckpApUlctoWbedac"so#wbe!^ H% --H q??%?-|2-?A~?I>>80?003?h?33_?y3333?r?) #&?>CaDD?3?b僰|b;[NBP(??hƵ/KҶ??-_s!i=O&A-?<$UHLD &# T>h uA`} ?Ε/ *>RfzutJ>U2U"?YYYF9>uM@>b 12&"327b!9 !"3 N#""%?> ?[>10G%` LineCol0rz-0"03z0bTd0"2"31?FA4D5l,I !=bG_C3$2B#0AGG2`?1py0igXt (c)"P20.P9"PM0c.0os0f R1rP1a Pi0n."P A0lT"PWslRe@Pe0v0d`P@1>`V0s_0RXY`PcXm!#52P4O68A\$qP?_V#AdoJ1pB@ ?@SJ@3Iu3-1)2AC0Bc-2Bbua1C'$-R1LGğ'QlJUl0 QbD1c(qagv[?F&qiPc Ÿitm:$N~   #_K~$VHGd]wcAa?Fʱ"β?@#ba:?Fm( ƯK7A0d vm GJ UT d0#" ? %񍈈E:M~?@,&¼?FB47ʏ܌  {HGr}Zi ]fÑ4FHgؕ?FsF CϷyO>e?Fy㋟ڎ߫k%J ,o:/s6UdOJ?Fle?@T ?Flȏڎ u+}w{ɝ >6lOl 2ʯR1P?Fz$ a a{S]a'ȃ=}̠Jc@Tc?F -ϟMb=wd?20~ʑϬϼl8*7O W` -f` jEP dy@Ugߐu~@F:6?FƒC ,ۍp+ ]N͊-drA|qutlUGG4`?FAvaxg(wk۞\xw6HJNֵ,&?cHYEgEx7[ExnpqgtqTTV Ʉ8TAj"`yA(F~TAAC4 PASI&P]QTAcd,@qtu0/E2lL8TMdqWf2Cu0v<o'u0ߝk GzIށ0(ؽ0N(Ix0SOaA9I uh;@!9W1;@@@IH!_sʞ π@TZdI@EdI@@I(sNIRI@o'@I,%P{>*Y%PSE8(I?k7[Peya[P.'I@AIPLʛ /kgGP HR0 8XP1%_c-8PߒCM*S7kB<~aADe / TGF !"#$*%&'CU)*+,U-./0U1234567 9:;<=>@ABRC4EFG#IJKLMNOPQRTUVXYy ?JRT@b?X, @*<g( "*^p?(4wq #5GYk}D C:\Progam FilesMcsfUtOfe 14vsocne:\$03J\ANROT_.VSbw}q"4FXj| D C:\Progam FilesMcsftOfe\ 14vUsocnue:\$03J\OPS]_.VXSyq"4FXj|D C:\Progam FilesMcsftOfe\ 14vUsocnue:\$03J\DTLNER_.7VSdyq"4FXj|D C:\Progam FilesMcsftOfe\ 14vUsocnue:\$03JERIH_.VSdyq"4FXj|D C:\Progam FilesMcsftOfe\ 14vUsocnue:\$03J\NETL C_.7VSdyq"4FXj|D C:\Progam FilesMcsftOfe\ 14vUsocnue:\$03J\NETSY_.VVSyq"4FXj|D C:\Progam FilesMcsftOfe\ 14vUsocnue:\$03J\SERUVR_.VSPy}q"4FXj|D C:\Progam FilesMcsft*Ofe W14vsUocne:\$03J\}RKSVP_.XSVuq "4FXj|D C:\Progam FilesMcsftOfe\ 14vUsocnue:\$03J\SWA]_.VPSuq "4FXj|D C:\Progam FilesMcsftOfe\ 14vUsocnue:\$03JW\SW_.VPSuq "4FXj|D C:\Progam FilesMcsftOfe\ 14vUsocnue:\$03J\SWT]_.VPSyq "4FXj|D C:\Progam FilesMcsftOfe\ 14vUsocnue:\$03J\WEBSIT_.VVS]q  2DVhz user_(Oq*dSC!+/h/He/na/~b 2A@(AmE/9A9 *Nb 10Su U Ur`8?JRT@bX, @TFDyC ?P uh,T]UFzE8:&@FbN%@Fǿx187 #&,\6e &2{?'11 #)5 #.1:1t7z1 #5$A$A* #:C;LATZG #39GFHJJA #f[FdOOFA\ V(V((VabZ8gVj &k &l &<QBQAQ22?a>a=Q #n &o & &p &q &okrbookT3ll  U2)}?8;}0x{2"u `D412ws"#uy#s@L&_d2?}x\.x~sU#!CJ1u #s1?x :!@#oonsȇ"ȏrCU Mf6?\00"(p1\1\1(\1!  7:!D!!N!!!Ta1 1 # !41Q"n>1$%UmAGdY dYAGiYdYD!YYp1YN!TeY$AUAU@aUMe0%YD!Udb%YdUd1UdU(̾U-dU1Y*aUud!U!U1UQ!UQ!UBA 1UtAdUA*5YTad UmdUAuYQR5YJa-YiaUSaAU@^aEYhaɿxPGTaЅ6LdAwJau0iռ NA+`HpH\#` Cnt_ectr)R" o1d@aEW>3` UAo|a|i s >2 1Ae Flw zhr|siDVVAmSAm(aUd(Azc}s) _@to /.1ZS[3`SxuJi|y2 /z//6mEy!cl (Fx|!p12 ?2?D2QaCKAHCXI&`hQiю?p5/Q˱Pqp1rxT^$!A!AP uPPmWTRpEsk(O D"^absň)q^_qTD֔ Ta`d8TexUaQMuqQ#tf3r?@p@d?@B-hUpsS?_znsry?uVRtq P7UtqRUWa<"LUg<'4Pxrho eV3fomzJA&qj\?@q`qX3v_PgQ?ym? $@sq`t B-mt7Q@yQBP(??OPQ8@Uiрq,YYENőg! EQ@'n?@qTn74qa[´?@vh?@^G9}kQԚ!W ~u]?u v4.Bl@<#jໍ|߆lsoy ,Ĉ]bv8U@ f@装t8t)%4Uݱ@a7I[B?@u?*us?@Cd ^cPNྏVX4Х|.R@?@2JK6?@\_-]xa?ɇ*51tl" x6~/]a̧ %!PS?@J4^e]_Sk[̧EU)Y vSY4?@~7WYC F:[̧A9mS@NK{?@+uYIJ3ķyrDf{JL]K7j}YҡU˕ؤŭƣ@Лap]ѐEq(:L^pbGG$hï\ k#Y>?>iS?@[}WʽoC !z:ψ P]ύoϧMÅǪz LV>}yP *&8fSECɒaߍfrf$ڔ߯,z <E4"yW/{Oq5X W })X0jXg!A*WခACB#%s9/XeEA4 WB1ziA/@_c$c?@UUh㿁 ?@|BʨEfCV1!_Q_VSSFX% :n[!R?N~k!R(\;c!RARMdaXeoXb8IL`Obgd0cl?YYYfP*"7bbSz`b#`ULq`1%bXc3_:h|?PcJSbvdRcSeRu`` FilwCoor*[z`` o2eafBYFR\~32S?vS?\._?p0SAG~xY=_3 7EN`va-2p` `d??Q?X;Hc3??._'t{*e!Wd}1"Bj- V3_PiR8r#A,j/O/}j#Ay;H/T"B!CFF?\jPGY;H.l@v!3a "Bݡ@zɢ4a=Tw> k䠿̈h;L1cG*14:?3ݕ˹I(,>E-nM~4Ǵ @@2Օl @D?@p`?dG'1MCAR@YBFN֕F WOAuUzQ j_w-.SwXUe*YQ[\,P=FR0A1YUkvaP2A%F(:L~߂06kob"߬߾OSFA"%Uw D :LVh5zkFA1fA8+OdC*@fAiuUCrI~4n"@@T$ @@*dr @w37HU}6irQU*UU2_ Q@q_co O#t&a/[7b2`B2c{g`oundobgqzYPs!a3Qu!$ -LEUY*ȟBi⟮ņU=[u\[/m//']OxZ@@au4k?@pP~@@ńe,-e?dy1΀1v[v fv vvv\nhsoojqgq/%,q@"$dN'V1<doq4Uoٓ!u8 @/-Éo߹ǭR(LiuktR1V4Qtg 2鵕q(rt?k?@EtV}D2www»FFSF$1Se#D33ktHu__0*W)g\_zQ7M3Á?@o}DQ‘DLSev˿aHUQ$6HZl~<Ƴ"l?@࢟\ީD?Կu޼]l[A%E[g5@t__\I l]AuEs0l__o2&=)R+_IBA[xooV;ABKAυEfKo VCAafOGAI6f#vVKA#OA&8iЫֵdAWAI\p2?@IH1 ]][Aɳc>%A=Iuď֏\cA`;AgA~Io>:i@I[kAɱA%EfȟڟsA_fwAx{AVAAYVhK]2EOJq80DAAT! ň II%(!Gܒ=g3vX!g@dA!ϙ<T`=I-JB(!x3q&eQ? BP(?+AG,D?ADBBT!s/A8X@!Ou!h$!,}"%!%PEA (TV|4w%?@N=ǃ @@Itw~u, ?PINB/AgAu@` #?u@ٿ!HxGˆOnF7FFI%%!I%X[APBB`2X@҅8#S2N贁Nk?I}3vAZIQe\.?L?&d2/AGAE/AfiPDx<(zG&&&!'2rq%!.Ԩ!" l",bz:pb :p:pp  ZeM%% O4vпdd܋hE Ѿa%n,D  TA. 2AE%H19/A*$HD$(R+Q$2ZZ")k$Rx$&b@QbHKA9e!x/Hd?ATOAsaa@͊1Ou+M a$bٓEeťe[U@]Hr6?@'GO @@Yp?@ W?45 F@Qe-לhaET<ΰq84v?麧Q /0πBTU1 А9/շ?x{_@Za"!Q1afUAZa9X ;v!$Q9щ<QQ@NnΰƁ▔,(ags;?@SoBAKΰR7 K7A$E$eZ4yGcQ…E$e@B?\+^g=g;OeO荄]?@6d@ D?@@wofCa@UOe:~%J?@ˍGp3T(@_% Q0w0™#wEL?"5bSPu~\@`` Fi! lCo! omrY@z۶@` ,1BTH2O!"U\_2E/"&#?\.?@&AQ_X!Y@eh= >4Br&}///AEQ0Ayϋ8V/ͯA1IP??KGv>5O?YOԝ v??OO TT5mp_utendCP J\nQ8"?]?'"$+ʭ !b 1W2Z iV2  8"X1,fTabPaW-X1Q8cT W2V3FYeoo jZ_l_X,Q8K&o!3rW2!vQYK*Rl_'>C`! gkrooBX,F .?*at=mH5VUu}_=,sH@@6 @@^m @G Yiqs $lU V K!_ D /.$:/] 7 `Bacpgo?PnKPbp!!|*l/'EP$qEu/,$7o!zLuP?Ud7*OB24O9u-FlgEQG4 -,>P9?t~qY4t @@ddֈg@@z?Qs ƈu*<N`rQ/)/ܟ_/q/[mg/// ??9B?T?f?/OO _?GO#OG ^pOsODOY}Z-XTT DQa=PiEPsCP%s eAP_vGPccr$n%eEPmCPsaP________oo(o:oLo^ooo?o/#/oo$6H Ol~p??ana#@òUƿCXAA 8NGpAQ,YSoo6ex?@f}í?@vU??@=O2 PSߑUߥdBtl! kg3tRV9&UW7vW7C]PWR_<=HolTAԈ;oۢXEgoUҫWwww3fs12(0upmYEt@rb#w[sOs-o9\U#VTYA8E :dDOSZ14U !4aq$@q%JD!T|!!qСU%d'()*+$zq.1*4356 Q9B3Q@LXq(#?@ K/"@1?@pKcSk,}?=Еw Y0bp>H֊ YJ/X?L;~YYQð,o)1\UYt^is?@>Ex<"gJ+#p㜟xE~gןB圯8UYv PWs^boUf< ?@ф_%q&AU;?@DVbV[[?@{ƃ{UR) `n59q([/ߍÿտ䃖 &#?@?RPJmaမ2d ZřǖYO D9a\µx.\?@+￞Qso[?@;'ACU׆U?@ws AdxMA+߆bd2{dvλ㟌?@$ZS ο z?@؂--pj|kÁ~fo3?2x>kp&vAbt) |$߿5XݭS_q!U$+Ș?@n3yxӁ[]7Y^pkׁw ve=?@d2/D/ہq?@iWMsՆ//aU7qX?@oH%x぀ˡ1D3^//UwSǤU!X?@>??p(~õvvꢄսY?k?󁀙cu4-lOOSwt.G)5^OpO6zqUF/c@"!(k$_nz شEOO6U.&NPĮvt:d7Is ~l͹VEHPS?@OpmS&ȋߝ}P)cU-~1 l &Nʵz{7Oanko&NPx̀>?@>Caв}G <]~`vC}X@~PhPDZm?@볨masāZ^m~OӘ9 qȁPV[jO#k}́P LfK?@?Bѻ=Ё%dn( ^*hhԁPzc-0Tf}؁P|b}$7&&N܁:=SwT?͐*'/9/}P( QT;z//&NP"mpPX" 1gy֫?O>P3<b(~1a.IO[O>PCv=2 v5OOf%e AyEpysx"5qP1E@W Z|/_>P2xqm~ lp__> P`NtbBw^&/_>PqcJ3b׍Co*o>Pfޢp =rtooV%vU?d`SqPle1pV@ oo} Pa륥4p?`?Q>$~P#&K6p?L;(T^ql9U SVNy!T$$m0vl!u쟉>LΟbUYbφ?@ubdvd} YUٯqف4TمB#ՙ xJsE О&gفLe س T قMaMaAŝL{Gz?M_9MUHƢTDcC}h$[!Lԣ#A ؎;#՛ƨjb_$@@kkW@@7LR!mfryP(-DT!FQ7}c +uz0`[$?u 㰤 &SlbX "bƨ q9Uba !U9@ BP(?R&GUz[o#z؆L#սـ1 ! #@@"@@?@OC "&%w?P[_1ca&*e#u&b&&e#&M&b&&8 e#&b&&*Q"W&a&a&Pu&+3&&/*(&&&+3&&02&ѿ@ƨ*A?zeƤ4IHٟŃ&у Vc၅WGمiD+tKiD!tKXiDtKiD!tKiD8tKiD1tGW\ngL 7O&"@@0$TR @6|f@@r)?d[bA-/?-HQnbtf???$Ԅ}oK&р$ԅၟ Zg_ف_y[E@O"O4OFOD}U?t(`| A&ơAoSot([ epHoT>pit]wd+Hiri*kfa&}da&aɥoɢQLRE0q@l?YYYzb"hz]@@b#$EA㱛ɣ#UpB)(#c~bq~S}`` FiUlCoUorUzց` 2߂{{nbФ-1&чj\2@?{ɣ?\.?A$w#F nbZaDŞoL:Vурf }DUH2' &ыh^S)E8Qc϶(Eᾠ(UJ nh,s a)`kt(:\|bQd:|__q_m[}QԺQQUl_U@JS?"`GxT@@f)G4GP(?-DT!b@oPdmaމR,E*8UG Zmtfeu)/7~`Bcgoudb~ۡE窂C aloɗlQSB_l&UϷe*>ߝ!X$l56;CQAq1>tP1 J;DQIMWuAlRH?@`^$?@wU??@e=S2 @CE2kK2ރ3' 4@PAQ@BSRR9RRRMRa CV MVtSRMRltSR MRP1tSRMR qVRMRtSRMRؑtSR9RRMR1tSb9RbMRtS$b9R$bMRtatSBb9RBbMRZtS`b9R`bkV CV 9V MVcbVcbMRd1cb9Rb*Rf:VfI[f\_nTf~X vXf\f\f\f\f_dfo"df.o@dfLo^dfjo|dfo4lQvhf`mgyt "ΕZƻtɂ\껅ć1F&&އ*Է $z_Gz@Ka=a K@ؒ ޑHݒa ` <8@K#&&Y\KbBaٜaٟ|H9!e!'E|1`?!py i h ( )2w09Mc"s fߢ!rӠ!]i n. z%lk רrҩхvd`&@?sJO95(F7aG wM|?U2K=Fno?@lߧQj4p߅Ľi_d*Ԑ4A% %$h?@x#z {aiW &ة?9 1Žk P҈_IH Gꈢp HrLCE+Qj?@Fyp, [[$h?P>Z ?4Έ+7,>Ͱ&fՉ: Y d;?  BP(Fǀ4ϑxBrs5P %91ApF7XQ<AA3d1oAK0B@P4P1QQ1BaAaտ^VۡϳFC(v?@v@ Nq?@.$?@73Yϒ̗+'kܡF+`V<̾3= |HV=]?@?@R4*?@T6(Нv0kD6TЏ̡+V8V7Ͼ?@8/dyӏ?@ʢȖ9ߑ_ck~+~ Ծ0E'̯̟ɣ1d5S7s?@fAGKU߄gAk^x#5oE\B&?@ =vUOuk¦"1"ot^?@kZU Nek$rSDK ABE%eTt8aA4l& 2/@O@`Ͳ/m4p!5)?@,G?^䲦25"5b#?@߰摨Uܺc)VkܙTzLD!/ARɿ_N.@xJG0* %K ޱLO5q9nWOK AQokOۈ`D ~̗9B!{OOQRɰO0ߤ@ +/y91#OK -nk܁G`~]Ş[~49~ dQ>_P_#'xr|=@nꙟ%~/ɧ?@r[b?@}8@Z?@F^CUܯe[k)ˣqɼ1O}޺( oۯq vUg%璂4@:_?@nϯ%?@bC ?@˪B @gokܰnW.ƾ>!NrrŒҍcԖU@V/ywt~pH;c@=Q<-egJ(Οý?@;0B11&ʲEtÎT"I!1w #hlǑ#=Ϸ *Ж_ɗ`z=|V<vXX1oo  MǙ@}T?@cZ:?@siѰ?f^w ѿbܲƶhd⏏^p-eE@8,?@+K+shmdvۂ3獛f" +@O﷛sr(bHyi5!TP5նd$Ծ'0Um?!dSeR鍌 528eQ , 5%PB%_PeRdSFeQHԄ!TDő .#@$)XuÂ5h4*418 18J4 eQ9ЫA#u?@ϢS!?@9?@O_@`f5o5$$!!*1 22!2222213@221322 622!3B2A3&B2bQ3:Bk$SdSh2622eBZi\ ", r5qn%eTtʂ]rtewq} )?@kZ>HjpQvR}ŝ4R!?@ص =v•́'1T圼pA}FдzGAGK1Rh }R%?@48̮Ә {؜?Oweλİ?@1ώС ?@z[ͩвXҫkb6( vϕi80YꥬMwuN?@yw@ Nq?@)Fl?@;*m\ҋ:ʫXA B(!Ywz?@W?@^&؞?@¡E^`0o nB6{Jqe!{q o.2ZÔQ8[¡>@}8*Lo?@Bv2?}>}ӶSS~ DxĜ߮)te: wtxr?@`RIBZc4Yݛ 7x̶ .jlTbt!ASȷF?@j?Ԛ?@K\ĸϓ tVQR?ɨ ?V=7"4D~Nm :.?@1Bҵ{V9,Bi0ooӶVQ Q~/"[k9dυ`8ǵ?@=% >^ٗߵf BJXԕ my#4 9aueh{(8UDG2E}EI`*Dc1?@CZ2)V>?@9`E`55?QDJWPa$RQE F JO\A2F Feq_ ?*si݋_______ oo-o?oQo/uoooooooo);M_qxw.@Rdv,A݄Cu{=oDUXDhF>=6C-Gi .F&N`C //-/?/Q/c/u///>o//'//?"?4?F?X?@j?^ǡ??}FXspTQW?@mc?@F$0R[3 r0tC6 ZO2BBvHB\$غEG( [^EH7}RO Y'0ʓ ^?@"'x?@p5 Ɂ55vACCA67A32222!3B2B2929292'CAB2AB2-22-22-22M1'C}B2}B211'CB 2B2622B?4B?DBO7B-O?DBKO+4BiO{DBODBOпreb .t mKL6 ͸ny]B;M_qσϧϹ!%7I[mߑߣ!3E5Tfx["4FXjr5!!&Rd5!5!A=11aqq _n}"#ލ.;aq=\r xAWVA,\?@ ?@Dt*Ǖ?@ v bMvP 9o#ז"إ|_إS2$NP4B ?A~N f? h?#|S?RDH>E<tiAZ$@o=OSaK]όS%~sʂZyȲOi?@A溦~Ű8צ׿& ج֧~i$g#iA>qdOCar߄ߌ%SM6!Ln#rbU?@i 욹nZ?q9?a!i\+|ҽO7CaCSFtu@q\wIH m vr(&⇻Fdzu 7>ɧ?@LH?@ 8곝oeL=%n׽\~ج6 _~Eb%~ _S OUCa#aST:_/ɀ0f?@'ŝB6yI^a׭;I Yb[sor|Un ]+PsCa8JS߅%5@yn %mAq?@J;˼7R۩ hqo]^})f^K!PNCaY/k/S15u{fy?@Qkpx0pK49ڲ׭ ٚ)x?/q/NCa??S"v`rq s-*CkriqTLuyvRdud/'0UBŹqp!tt ]Fp\p8Ta,ΈPQ-rgQPTbScFTaAєT!DȖ a\py^#tTYщwLuuhqp8SG \ӝTa9 J&}?@W*İ57C(+48e Cc\ 7jAAmBA[qb|fAqbZUcӚAqbAtqcbb}qbHAqbfۢcQlbrfb[7ro7rl7rl7rl7rl7rl7r h4(w;tAsQ k+ut5uw? luM%bp+j` XU`?CopWyrE@gPtP_(c)P2W09PME@cosfrԠفain].P AlPsèevR dD{&G 8Yp{]`Ek_nPh|’ ƓFF]iA7yS;sP`` FE@l؂z ` A ??!FbMXzIe~"Db A!3B a=, Kҩra2zGz??YYYJA5"S"S.a_b#IGB$0 3BljDnP$EUJAQmS[aaeQA3A X~w5t,?@F',t4On?TJE?A0_;BSl#R ejz?@B]񡦁?@͗ 8T /vX߼'q#,Dz`Pv^hיSm?1-? Yz?2Vw/A1PsQa}}8 0$lPW?@uطbnpd/ 8\7k0M5eqMgJ#,@ ?wv0rRBL uB@acyXQLq/`J-?@WߴԊ أ{gIk~#,ˆ -mL^d٤y#ju?@xR.s?@,'X 8roC]Ѥq yF &o˿!|'BOAh߳{1zV' h<d$0$+*`3NL?@PP 9$O6I&)U=` q)`<1}:7kX( yl*1AH1>o?7o?__/OI-l@$?@N]FQ3WK0LGACFT}C$*k PEr zċ]jvx,!1_ig_y__MC_XA\5ЀS1k0"!A!Q!lBn~;o5Umo~`Mx"+lv#?@٢.TM?@ _*%55GYCTxA =:g * d2;ἄ|d2%o,d2/51vCtP{q9#U2? 4FXj|8  -ϸJa B9U'OzOG \5$_6_뿦s_O_OSr91c!;!f}d<'f NfOM$aR/c!}ROFA9%% (F"6Ocim"-X%dNs4 Y=Ws=x8O<8gPE,zKvBpMMw`MFMTY\'éYYYwww8,Ԗ1 425ӹ$((!OO+O=OoaOsLsU@i "?@?p,WI~ZU?{_Y>y2A:L^pRz?N&&W'# K/ZQz¯ԯ?&k%+c`81/̿޿ϏSި?fujϧϣߠxq/e"4FXVZShߦ$n"tŹ /Y!BVh)ig}AG0ZjQ)M9@RB¬ k[ 2aza,?Szay-8.qY0AgrERWG?@|\ ݴP !a4?0aCgWi%NuSEv +Ev0o8K ) /52gdA Id?G51ɼjaTQ4B-$4R(3c52/zojBMa!&$Ma]du"{oB1I>ye@)'b8/J/\/t5U?@R?@{RʨUPSgvqqu~qxRSuqxA*nBb fwxA ԃ|2b‡-Ĩ{2b/e"Rbt y2 xrLT0rЁC*t0 lC$`vAbszT0b#T0e|1" A6ryCRpsFsbt rsSru`` FilCoorvzT0` Z2uqvbB2ш\݄c?(y?\.?j`PA O^WsqAv=oC PGdž}Sb{Z&NAE2DVf_m/&/-A?DbRY@SY-|VW=aӞUQ =|;_6=|埥 K(ցW@ULpbvprti`dpiCep ptPObOK8#s"??'(D:a52鍤 s%Copyb851Jl'eUѼ8TW52}SFcyyKjKdvLŕ8'Q!3#q52+@ѹQrMe>IC`b*k+LL\%ăGdADWO S#K,Yjaԝg?Y$:{2"@@&?r7`?TPVpdPV:~gBP f^% fg_Q ƅy֏e;as< p51 AyA1pJP1^# -?Q5@@N$_2rcLӤ'ָ:" !@R`!A!\!5Dq!{Ў.!37J\%>,Y1 M\!e1|9>y_QDo6ex?@f}?@vU??@=2 035'hr kg>kB?V9&XkB?7vqlBdhd=0 7ঀ?5ʁ'/*/禠āa"rgbwwwJcf^S€jU\MnpsYTzrRbwSSr-Oe2.rU2Ubc秀^[ȓa\%!O:E4lalbB?: ф5~;Q sqiKĐQ~RKqKKN$r$RK%4(K)K%*K+1Q.Kk113K4K5*K6K7f49Oa3pU@LXq(#3 K/ר(@1?@pKcS<ü]? Wu0bp>pH֊uuJ/XpL;@NuYQ,po)1@2ut^is?@>악qy<"3?J+#pq\%uןB5uYߧv 0Ws^b@Ryf< 4ф_%x~yU;?@生;Rx[[?@{ƃ@ayR)]`n59x#y([/ ߍ%ay &#=RPJ콯ϯJy2j vt5u&vAbt)[m<y5XSۯqy$+Ș?@n3yuqy[]7ழ^u v'qyw߲ ve=U@d҂+qyq?@iWMsAy7qX?@?oHqyˡ1~D3^*<7qywS,@;qy!X?@>?px?qyõvv?ꢄսCqycu-lS/e/GqySwt..G)'%//:Q~yF/cڰ@"!xOqyk$~nz شN5??:Sqy?@>Camq~<]o@?vC}Vhaq@~P XqDZm?@?볨u~&ai{?@a^(:nqu;k/szXJ`|q:^m?OӘ9Z%aqV[jOskmq LfK?@Bѻ=Pba qudnx^*h X$qzcL-0m(q|b}L$7&"4n,q7*=Sw͐*wm0q( Q~;n4q"mp٩=UTu|֍ղ>TuQ'=Uu|;/_/=UP|/ /0A1rNva@cnseC0ut/ mo# ??9'(l!upUTt w6L8},GTq1qp01qMMTu}Ѽo1sT}BFgE){}OyPj(s??}oQ6 _!3'Ref(p19Q 2e>7 A`.GkOOoL MsTqTsJ'm4$B ѭT/ςoчQk_r)uԴ;r@@b!gYP7LR!m$@'cgP(-DT!9ύ!vy'u Y'v1vgFygegtooRղj.A/jh$?k]M ԰sң@ BP(?})_ oى?oQo>8ATKMzzaed55pGxT@@񟙅f)븎up;yzyzEU $ QOD'54@o07ג`BC0cPgoW0n{db@v' CkhaQ5z$bH5p'9A:s.q-˖Cm%G,6[Gُ鏀[M]oooFu},@@4@@9!@@G po{?8?A9:8p/1y8AR{ڢӏ֨#Şkq{*{֟!S0}ϕFVe u8AEۡqϳ+TŒmA QS4WQbQ :x2u>d=h?@"?@??@z$*[րAџ !qt \iwfNtt2^_>-[8>GRn$jE8B(BLd'53l+%1 F(X5ϳu6CquHH\T""C[#b "CS#v/`` F_0lc` /QAFsd2Bl5\y/QR/uW"ϳ5G%V{/;꒵Q10TYQ{c տU鷖E@W( |5?i?(>??QG,|>;O?_O,@|??O Ou PWUTeRusGrRrGqeGPtGP n_RcXQ^QUR LiU__hh#"?]?H'($+u!h1%Z ;fR\8@)ͅ4P4ѽh~4T%P3FeofjP__5X'lQ&)!3Er %MvaYQ*bt]e'>^`! Lgkxoo5L%)Pu 2DV??z8?@{⃋냸& u =8n= }-X }q Ҍ .@RdvUb /&///A/e/w///,@///??$?H?Z?l?OOO_?߆MOO 7I߾OyOĆπO2V"ZN0[SWPnd]RgPu[PhizWP_kPocPseCPmmTagWP|______ oo0oBoTofoxooooo@,>P|`r9K/Q.Ä$ .7rƅwD񋄺Dŵȏr' @@u9@@wU??@f=2 K JE#L%"%47&Si\$i ""ir@#"""" & &#""R#2 "#%2" &92"#Q#M2"#a2"a2"$2"2"Y#2"2"&2"2"#2"2& & & &3B 63)B"DP3=B"=B"&& \B,\B/$pF(F 8\B<\B/<\BC<\BW<\Bk?}4\B?4\B?4\B?4\B?4pFOULF7H\BGMS[z_Gz-3H.uZ"f{@bvh!ġwgâwgfgb Gud 'b_3ѠEi'{ggblZgboom%`?pygzt()2]09McJofrrpai. xre vdhR!WEO(_ǮÀR#ϳU@Hno?@mQj4pģidՋԂA%%$h?@z#z{aig' (ة?> 1k P҈%}#IH GZꈢp' }"Z HrL(r!j?@Hyp,[[$h?P>-DT! 4Έ+q#&f :x" (+d;? BP(Y䬧ؗ4aB"蛯ؗrC56HNw!p_Xw!w!S} Qy91naGQ11gȁoC<놟+ӭ(v?@v@ NqJ.$?@7?3Yew+'УF+`ˑV<˹3= ϟ}x;=]?@ώ?@T4*?@U6(Н[w0գD6TЏӹ?+V;7Ͼ?@8gyӏ?@ʢȖw_cP~+~ ԣ0E'ٹ'̟ɈߚދڵS7sпAGK:߿gAP^xjڵ\B&?@ =v:OuP¦gSֹ"ot^?@kZ: NeP$rSDKgxa5E&%eTtpA`Q& 2g}@P@`R4Uj倱@,L';^䲦 򕓥jֹb#?@:c)VPTzLD7_O.CxJG+ %0ܼޱL4敔q9nW0AQoPOۈ補`D ع9Bk`rM17O}ߤ +y?91#ȶ0-nPG`ş[~4 d#/5/ɲ%'x~s|=pꙟ%Сɧ?@r[b?@8@Z?@F^(:e[~P)ˈA~1O}޺(?Oȯ>_P_AOB3C%:_?@nϯ%?@bC ?@̪BOk3__W_i_too_WHC@Vѿywt@H_j~RGek"cooooo𣲽Wu{fPnS6?@vd&,cr!0 1|9,:] mR J 6QMסy(0ҏ3Gڵ _遼f:+1׬$-mFj%p028@pXp紿ƿpLA,\PX34@~zp > m?c@=!!5jJ(ΟIý?@=0B11 ʲEYzÎT"I!1\#~MllǑƏ0@a :kv9~9] = 握k>{/2ڣ|q0z=|Ե&dԝ<[=X// MǙ}T?@cZ:?@Xؿ2iѰ?f^\bܲƶMld⏏ACU5*@:,?@+K+XM=I[gy3獛f"A\4F@󒚳1iTg(ܙ˕Șd m'0U?6Ŝ!𿹑q pw8B,Li't˕ȘLTFH /iTDqaڟ2hi"PgśȘcn ?@TQ@@!PS? wAHP Pb#"MeBmBE ?YYY vA "BLpzb#Ѐn 27q3?2D?\._?~p07`BackgrouUnClr z =XL~Bm dȔAŜ$șgUmq*c vܖnBVgŮ%B +Tfi1 rU9,1*3hș,1{5ؕ c?@~U?@2@4E81r (1 hFhrtuԑ |M`BtҠDAEG*BޙEMf!*/L q<l1 " XR1LpCbTgRS) `` FXl` o2B'2 g\,toPS]o6# "Pklؕ&oC1%E%ǟ?량/'/m'/q"F>G1). EGY-~%@u@d n^PhuChes t onci .XnfmRaoe X ew~S??d G3X_jP~:L^u `jP}x}xlf!31a f¶hjtg>#` kgtTfz|<Xci1a,?p3B?T?f?x?????;0yn7?@g5W0zEWr%O7OIO 1a ցIHw-ijKPحHhOO __/_A_S_e_w________oo+o=oTofoooooooo|%7I[mߣ5GYk!T0Mqurլԏ;$_/#>g/}B.̐owe̐@R'9K]oɯۯ8#)OG?-?}żտ?  /xOOewGx G] }ɀ$XW1]Y?  ާ?@r7`g2Vpd`Wyc ~ЦӄrRfcA9ff#ޢbfff ff߭ц4p U0UrA1?o!o3o2p xQ@4R@ ERa~ EcPF5 _@:xov?@;IJ@@U@.?@ FW?괕ƋϚ߬߾сSew+=Oasс%7I[m |c,////F ) /Mqܶߚ~/9/;@/߃C*x/5s t3euolr0tn0d 0Htp:/nJmvc 0pmUt?oJPe=yz ?Z_l_A?S?e?w????????OORO=OdaOVhOOOOMO_7&_8_J___Q7_*___ꑗ:H JiIWdK @@w=2 ?@M]F?@V3*%%kޟ&8 c16S;*62 6U66*6*6t ?c%;)tU2{5|7_Ml571:¤cq?K/]/o/EU1~k*1A*1̂1ٌ//I,'O9OKOLx" pv#?@آ.TM?@ __*ŎUU///Sv8 =:g *;R;;R%o;R/566c #|뎤rx@ڋ1a QW2zrcUW:^ߢ|UZHL,dr-bra@ƃA9dL3Oa _#]a( iaif_xS0yn7?@k˷?@x.?@~*_ ѴؽVS _Qfc_\ rDj;?`;C;?*3?Xے 8?LvezIElYYYoa# c[:;±Y@`ς ςooooo  w(Lp̿ϙϋF:dςBϾ.VVNCG}XcB A:O&O%_+U=R˻ݵ5鵂)wTg( @@)iU ?@?@zk}dzZ__`iun૕ a eSXD?\nT?\._?7P=`BacgUrudoo04J&=T ѷ7PrlլA?변1?J$ġ+-鵡eUVU1w%2߱%l.+A$*1ġd7Q*1O鱲#BQ$ٿ?X+U 1)-wTM]FPV3ɽ?p4?@i{2́5P3[]mA8'hx?X=0f7&?fVU{O0wwwZlzaՆd2 FVX5S/S Ri "?@p,GWLb^{2XU{_Y>o;n_U_ZpQQx______oz_$N&&W(oeoa^oEd6o/mTѸoooo'=dp{4i;nEdvomT3 .@RSި}uޏEd mT%-?pQ1,}ыI?ύ-8.qY;EgrEE֫WG?@|\PkV!14}1'ߧ$Ќ5e6 +64/F YLg4᠃4ɋJTݢ-&r "(3<3!p= ף? BP([?/!q:@s4N%J@|m:>F/G?@1!$0QBC//9951 2ǿ8)U?g7)$]@@5\?@wU??@Ptf,<ʊ?60Q O֡l;$"m۶m;$""2)K$")I$IO,F>_>ÿFD%EH$ &>[ET_@G}AUO&?J$1`"DV(VBAQݢALUM2ݣMONmM#bDz2A3Sh"u `` FioPl+ooPomrzے` IO-2ZE#A#F U^$0"Z:ܣ"h"bC!Bb#J񫡐*?_' :Tݢ66)TTA*aTZZѷ+{T)YAO( #T.Tݢ Tg0Mp____Xb/m&n mO _fo~QJUݢWUdU6BTBmed!l1Bz1>4ABex"@nwz1HvݥqqqpZёqePex})PKpAyz14 ! B(qJyf9G.fA,2zGzBOOO"NS`1y yQ@Hno?@jufԐ輱ߗA%\Yd?@z#zߛde ' f?nw U@Hyp,?ȟId?P -DT?! N7d^X|@:1 ԠԠ4!Ԡbү ˥(v?@XA ,m?@.$?@=q?Ǐ>CU=]?@fe'a?@T4*?@L]fBw87Ͼ`Lx@]?gyӏ?@*ߜ|Q@S7s?@a~즌\B&<B<r5"ot^?@SÏ؇5_y5LƏ^XیtF ɏ:@,׉b#?@Ew?]Aw1_HoQc CxJGRw:f:?U?@8?@=+Y'O?@у2 +EXwc%'x2n=x pꙟ%|b[k kїN \x?*Sw!c 7>ɧ?@"6D&?@8@Z?@T?@vd&,cr0J|H1NU@ _&@+`2cmw7IJLA,\hK8w jJ(Ο?@d,0B11?@?|$"kv>T&L ?@=~& e7/ n MǙ?@~?@cZ:?@ )"/ug@:,2? 2/Iq*7qQ]yFFğ?{ܳ q4~<\d4DGj}cU`p `)aIᄎTDغaB CsIF5I?\qmSu%`` FiljZ0ooRzkk` _2Us5s[QSivL,c ",gFIBG 0YYEWi{VX?χEN׈LNFZ mN ?)N埤4R!ГoFǴzGR%?@:E λĘgģ߭ d }Ԇ_Q<.NB)Fl?@/[/,UYwz?@񕄄?@b&z? C+1F[¡ߡ>@vSh$9*Lo +qwe:dek vx)1 ~)ڏgk m?Ԛ?@?q&o~Pm p^1B~H;h7kx:U@2"[kp0C&vqυ`8~sXWlcىo5B1>?P?lam?y???????6;Խ2`dկp?@(K?@V3+4?QDJW>OPObOtOOOOOOKO__(_:_L_^_p___Vǀ____okTa &g˞oU@=*CHWipaȯگD- ?@f)Y"mc?@?9 (!^a%mǿٿG /ASewωϭϦVknEorߣoF@$eo6vGaG&yp Q80?T$~6vRx%/`@ P2DA/ASew6%'x?@ݴ#)GI&# 2DVhzC!&8V7]ok|a !)dp! |a;^opi*t _l7T%YA,\ C)q?@Dt*Ǖs5I 3y&} H?@kEW I J?@@ ˦(_.vsʂZy0uEpD溦?@GbO o& T EprbU&qHkkQ@\[~ϒwĥ 7>Q[&NZ 8곲TjAůoV:_Pk.|fcg$Yx)CFq%mAqop&wExu{fP?*\-?@Qkp ˢJom_}* !B//4!(14/@/R/d/v////=ط{r(87Cc-~3m¼V`6=/ ??1?C?U?g?y???3^????OO%O7OIO[OmFOOO@OO,7Q!D$ٌ7Q_%_C_U_58t,?@[ہx]#2'WvN`]񡦁?@< ʉ(_Q@}}8N$D0\S?@x'bz?@_n_u*o~1|XQLqпtGNYߴԊڦP.^9uXwbro7y#ju?@:9]?@/'X np.̈Ox8(BO={1zPb 〥o79X*a`HG UtP‡|P9%XO;Vƾ@@3NL?@H6l%f8"!fF)t7#i4·ٌp dyR?@\l! Ynu{` ?#u"pB"!pBJot# g+ot5o11{j{ӈ+𐕳QLᡱ0ql)ɝ83/@0iw{ux&8J\C!"2\?Se?\.+?#ࠀ!F#pC2&%/E̓B؏{gU/zs'-4!e%/ +/dU>)?;?7ep.x?/?e}e/"??F?mрSend}sc}e@k_t]k|Bm|@]s@ag|@ էфps)$M`??.r'ee!́b鍱% F:L-8a,naрa]ayMcTb##R_jPzdOO\,M蒥lbo!3~b bf,YAR4M>1Wko*o\,쨵:GTmjW)I~}]+0Žq(·TMqq/0c+& @@~?@^})@@)GR]?%X#NJIHcs/CUJY ss.*% / 7*U-壀0/Q pwȡex(#tJv ;eIMqfUJ.P{!=IMq/q]tlAqKsXktp/X$/Q]Q#QmTt}uhԗ7?@4r?@k ?@%tQ[f?MqN@Տ5#8,\?@]eFxvgK{!W!ty{luԡPၥ;b88RqpwP#Gz? BP(?MqD!QL/^///v|)SQ@rԐXF(GЩ?@SF? K7At|F;kIۊ 2#F߈KUcei?@?R\EF 鴷U$hbxND!%A>heS;q+}ߏߡװ|ZUu`9x!u74`tN?7KU?-~շ9H]ntΉ' %sgx?@"k?@8TX?@$/SŪ A;qhm㵣S?@GYG2W/SU矱㱝>;F$5GYkN88eJuVcӛ^J#6U@`"6Ifx ^?@0?@r6O̻4?\[nQ/Yծڌm h U縡;q4;qy;qQCq i]I,|/?h?K?@~W%`Q@c ᱃,] 5?@-oy?</ ' t9?@VB>R a6R$@[H1w jXOAE>uE/?C/?A?/Z,[q?_Y"͜?^70T_L.A_0mtv̨E0ڻ0p4 :ʺZ>J0Lu9k~O/C(ƒ0׏ .Z $o U_&8OOOO޿k9cɒ0?20_ֿϓ0?Kbס=w0d1Y{?@ P&Y0?t__~־c%P0SO=o/- ġ//o?oo F qMÝ߉{Z 0^.:?@[_?)z#60b5O_U@А57@_?@> m?3p̅T ։ȡoovo;9:{0;]^)0?5kFHfl ?@5q?@~ g]Ayh>' :p2HOU@V80@*`D#k\d1a -?Qc~f=5g )_;]p\ ~+N{ȯQ@V}ꌡF``K]J ' ԆmU@>[u@}5?~ \Pggl H 0(Q 7Iz}\0c/@|Y?5v>غ2 Ȼ?@~隴]πY$`]Pc?@ =0>oĿ?@C:Q}OΟ;6"Efb$q u}Wo=A~42H@ Q@\תco̰rd(9xCفbh/,iebEOas.@RznP|?@? Gv?|**_?@?F{qQ@l0m5@Cfhj,7>/;._>_!M%xSU@rɻT `CIφ4Ϧ?h/mG%2/@zI g<+U; ' u!M5MP?@wU@?x'@kyw#0ߙfh/E! //./@/R/d/QͲR]04;]-Cu vO5w6* h75k^ @&z} ;ݠ:G=j*N(!65!z7E[unM@>tx0x w ֡!??O#O5OGOYOQ@| N ГZyb?/ſ5~Rcꐝ?@u'!:2j?; !+?5?p[ؗy6F=|~ G X@!?{7SA@Io+v?,SoE"___ oo-o?oQ@unq?@pzۏy6Mo~ 5kLa렿,*3ӫ 9}ϖ_)/Rĸ O=RtRἏG=ކF_MyNA?9#%Q@?+Av~.\ NԸ 7m-5 Ǝo~y6ZȈ?+!b߽ 4k?o3W2L.neSlF"+hɜolB)o6 (2?@,q3bDBB,!;@`_` Filk` O2))")6΅\CO_gCt_&AuZ +[\$hoJ /*<N( ooi ~%"4fqouͲo?ո3BTGxyNstrs @RRYC??K'^T[! YAZ M3OE@&&28RZ,ص {ZRTZcF뛫j|PRV9!3U QZ]Z%ݛW>N(`Q2\!kP,3SO=0c "(Y$ /[ ,9Q$ا1)!Qn, /at=?@ٹPM }?@<+5qa==ЈoپT? ԅJ]n? $S68Zѫm10{@gqǸ?@VUngy!ۤ0eAn͓ѥe-rҥ8۠(ݾ;[N? BP(?[(=a`1 !Mdd1tofcV!ƵQ*oYi̓Q@yw?@ƌDirD7ÌDZH8sQmo/P ca;=k U?@4F( ~aQ8M S#Qԍ?@掛@?@ 2`ÿpP?@,P<Z?@4$W>A'qV%r?0{{w~˒?@3/ʵp |CtL9Y躵P ~x.:CDUy@B 5Y?@~XU=adeIo[ooQcuJ]N?@%By[G@";/̓UBq1ӯwykTn$1d1q] ypՅ[g5G/1|)I lԒ yUsK5%)R+g6!3|)6yx5^k|) k̻/1/w^̿/!LQ7iЫֵ =y\?@IH1 ]ؗ//-7\6cy16Em?? 7`Ȁ;y~o>:ih;?O7ZFe;y\Յ/F;qOO? !_3Q$7a[y( `/O_K,Zlq8(TXѳeճ_Qщܒ6Egg@X)doBkɡTd-Dd}()`PoQ? BP(ġ? < qGFS FDTbqg}@}]ۈghjx &g}i_5/ @@I*Ȁ'Cmc?@iiJI%ý?y8Zq@bJ=e`qOatuy`q?PUV``t5tu gѿO&A !el_`Hlxtpa}!1PQMőt[ Lcw o֑qyqy JNy$&g8Ngщ@@)|?@=wU??@=2 ڭ@ tp Cg2(آt݁8THާ|c[=鄜OEqj!1gѣoooogT&c֑ 2u2p ֑Ep`R׃.y0BQ*;~}hp>?@䰟Wɴf $(;02K?@dG'LQ@XT{<8* Q@MSM<z.IvLQMy<՞Y0w^i,ָD?;1;D㯀L+Uw%<U&&+Q@Ĭ?쫠:+Q@3j=~u.!=D_5ϱπ /Aн`C?@H`?H_%v36__)Q%%q@#?@)q AF%ݴFwg(GY%kh73?@W& 8KK/AF52šC/U/abƗ//·A=r &//E??Q?8???EBTgЏ1/?OD8wALĎ/DOVODc:;g:/OODdwMyAnئO+𢡄1@uS$G_Y_> (___qqշ(: _W0Q {:_Vq\_ґ\̱3dWRBչu50ش9̱5e xCB ?@pTZ?@9k?@&{culuȯڦa {{﫢rhp r''#rKǫ鄅C0j?YYYA?T4җaۀ䂰YG.GbNzl@b#산グZBق+GPbf날լ@ -_(o^ebkzhn@#= ,?ȱFп4GB_7BHB‘IBϑ8Bܑ 9B5#a݃ʳzB 9NCd J4Va_Va^Vz!0BL=Õa䯑P@oa]RVa` >׊U,U@ooUevUdߔ ۨua F,a[.nJoU2uplxVςl4ոU vp[FPY|TdJdo/ ?ש hanbiXo÷oeJ$ 7E?2P24i?%ဲzv&Ӆݶ̩ŵd5GYk}Nᓿq滿̿<ϸ)jaw!0BTfx2:R@=ޯЫ2%ݩZ͇{#5GYk}_JUq/R'9 /[i/a 2Iݶ[=t//(/:/Lϛ/ľ_/4]/h_/ _y ]Al">b?n?GmA?:I/q?@gXcx(}'} uxcOH,"rzxOFMLquA";@qŲK@q">fiϤA@ nsUIy1{xXBw'@TDu!C L{x oŲ-OOOOE%ŴOT _̿lw_#s_Tҡ7< o΁{~ҥ=4Ggq{yƏ؇…}iun@@6f @@xwp3 OuXwWi244L>#)%Dm=a(!LF/y4a?;d*(m%go (:L #_q X/j/S  BƄߋɠ)aTѥ͔r-ڔ(xƀ.qP#Gz? BP(?_27.q`aE O-OFI`aW`iΈ8SMEr{le|9FA\tozuq݀q@LD'8\.1da">2yܱ#x,[,o ?.(/FݷD~ե9U@vsz@ 17[(ӏ?Uf fH*05@5Gp% Vh:&~EwΊKٳ|?@Z.P&osd1?@:CĆoS3}?@΋[˜"o:"}53@qL 9˺߇И23Au΁;v?ap: G`/Hw>?@rd)]Gj%Kyn___'M_J|H۹?@Bmpw9V׸?@?2͟U@@@@?@a DfNZR޿IUr?@j>C$`+EOl_ /SU@?9}v|'c.]ڭ@D~5|dcs uM(O??@U@/@{H oѶ8);M_q..7㱈|S}HyTmy]e~/u@l 0!>[= ~MNBʲl͓JaU5 @ {Myw ! 0BTfxU@Jpsmo}L⧳e$Xhܕ?@Gp6o/凿íH-(?&}5<l`@Kj?$`?($I?o`@h?JFj?jj"/??(?:?L?^?U@RЯ\W֖)mʑ/< :ژr㕮/HoC2lj[ X_eVe/~lԘ ݰ1oŭX_v#OOO_ _2_D_U@폫T}L߉)>y~Kş'N\Aᯀ)9}4-KOc?凎jݰel #ŭ$ooooooU@ _jSp˟\*uf9߳ b5B&Iѝ(} '8ͽ8Ew'hM `d'!k//oGHC'ޣMpU=n4PzRwd|@@7 @@vnxűT,?DEx *߶޷6F*F߶:SFÿ̅_e@ MO_O wcW̅d g5uuJ ]AG1Xj͆̈oo/A6vͬ?uK~3Wv@߯ r2E??{¡HЯ-aq7 #)1fa1botoooooo0{H$D @@P( B@@xCP[rpAф1n]D< C??uO#OsYOkNFh@@JRT @@^)ŕ@1嵰OOIRI _J/_A_S_e_w________CoiR)o;oMo_oqod E)euo&ooooSeߛ-?Q^*yj3ɏۅ(/L/k /s5şן 1C j6?H? b {/S\!3hB 76@7>O#% oZiqߓ5߿!H$?@'d2-(L&P‰TL^pAf/%7I[mA }5 e:.@Rd:v9xN_`_7I[///V9//:UQc/e/w%ş/M q?!66+? OOa?s???????f pOOO__&_8_n_@ D"P?@~ XOï____ w n-Dn㖷Uogoyoooooooo w>Pbtoң-?bhz ϰԏBTfs.OƮ֟_0 xp7ȯگ"4FXjqxҿDVπ^ZV@@e]P|?@@b 55qσϕY3! io6 oDo$6HZl~ߐߢߴ.y3! 0BTf_Y_:LFH$6//l~"/ 6Zon~o;l5ooSdlo,KootoC8`r//FeU'(U)*+,U-.UUAAA7A8A9A;A?AFAGAHAIAJAKALAMAuU4<$zE8:&@bN%@ xC-3ѿYAU-UU4<zE8:&@bN%@ 0UC-7"A@ gQR@"ԒKRL<(L<(E8RE"RU`8?s\.@@ LFDNTyB@ uh(TBԆ~ U?zE8:&@?bN%@FxVzqOAOAQ5 ;Hj nU+%@@ ŜK* ?SOF o TG_ƅic܏ʯܯO6aسł0﷿15/AS@dteZ~0֟ aZ*<[OAfx&@F"?$ !ΑB? vPD8 vP /U1( O-D&UA%U f -h"/T))U,   '-P/!(8(B(-$#P/D DU! (,(E(-(U((((U(+-6U?AJE(UH(R(T(e(Ug(y({(0(U3(B(UM(ENPUT]_cUlnr}UUh(t((U((Q(W(U\(`(a(c(Uf(s(v(~(U((((U((((U((((Uk(o(p(r(Uu(w(z((U((((U((((U((((U((((U((((U((((U((N((]((l( "* *+"59:<=>@CILMP5VSUE$%.).*/*xxxxC!+PS!+c!+#x&xU'x*x,x0x Jx4x7x8 x;xFx7#-PɯGxHxURxVxWxXxUYxZx[x\xU^x`xaxdxexfxgX]xix2xbxjxmx xpxtxuxvxxh/{x{xx/xK xkxqx3)Ȩ !!P)GTfpQ 77B/DUYl#~ GWg'%7gA "4U{A fU7|E?@71cu Ě'c0U?DzfeArial UncodeMiS6?/?`4 R$fSymbol$67fWingds*7 fECalibr@  ?$fSwimunt(S$fPMingLU(w$fMS PGothicj@ $fDotum"|i0@ S$fESylaen  $fEstrangeloU dsaC 9$fEVrind1a8 Q$fEShrutqi| Q$fEM_angl$fETunga<"@ Q$fGSendya*/ (   R$fERavi"o Q$fGDhenu"*/ (  R$fELath#/ R$fEGautmqi | Q$fECordia NewE R$fEArial"*Cx /@~4 R$fMalgun Gothic |w L$fETimes NwRoan*Ax /@4$fDSego UI")  7Q$ vEB.B%BD=B3B5BGB0:Btj7BuABv0Bv1BwC0Bws0Bx;Bxޠ.By 9ByE-Bzr2B;Bߡ8BIB`JB>BGuideTheDocPage-1"Gestur Fom aSwitch&msvNoAWutCn 7ecCa}loutPC SidePC TopPC FrontPC OutlineButonScren"Handhel Frot Handhe}l SieHandhel Top&Handhel Ou_tLieCo}nectrNet ormal"Periph Out5ln NetworukFonTower pTower }FontTower Sid TowerOutli nPeriph ToPeriph SdPeriph Font PeriphSadowPeopl"Peopl Outi n3D NetFacu 3DNetShadow&3D NetHighltSymbol TpSymbol Frnt"Symbol OutineSymbol} ide(Default Sv]gtye!HasText$ShapeC5ls$ShapeT ySubhapeTy$SolSH"visLegndSh7apXvisVerion1Row_1Manufctre ProductNmb ePartNumbe*ProductDes_ripinuAsetNumbrSerialNumbLocatinBuildngRoomNetworkamIPAdre sSubnetMask"AdminIterf7ac NumberofPrtsMACdre s$Comuni_tySrng*NetworwkDscWipinPropetis$Lapto cmuerHubDepart5mn HardDi_veSz CPU Memory$ OperatingSwysemIsViableSe7rvBelong7sTPC$Datbse rv CloudRow_2Row_3Row_4Row_5Row_6Row_7Row_8(Dynamic onetrTextPoWsiinBridgeu*Aplicaton servEthernt ScaleAntiScaleRow_9Row_10Row_1Row_12Row_13Row_14Row_15Row_16Row_17Row_18Row_19Row_20Row_21Row_2Row_23Row_24Row_25Row_26Row_27Row_28Row_29Row_30Row_31Row_32Row_3Row_34Row_35Row_36Row_37Row_38Row_39Row_40Row_41Row_42Row_43Row_4Row_45Row_46Row_47Row_48Row_49Row_50Row_51Row_52Row_53Row_54Row_5Row_56Row_57Row_58Row_59Row_60Row_61Row_62Row_63Row_64Patch }pnel4Fiber _optctansemtAusterTranscedvisSpecIDBlocksATM switchBridge.14.Dynamic onetr15ModemRing etwork VBackground-1RegistraionTilesF msvSDContaierExclud daegr eShowFoterBackground*+msvSha_peCtgorisCityServ.29SkinColrMainfrme$msvViioCreat dUrbanAlphabetModuleVerveNone Solid$Background FeNone .26viwsSTXTechniShwufleCom-linkFirewa lBox ca}loutKeyLockUser.698Public/prvate Ukysr Terminalu2AlowShapeMvCbckDirTypeWeb sr vFTP se7rvEmail servType(Ma}ngemnt s7rv (E-Comewrc s vDirBehavoClasGUIDModelGUIDDocumentGU IClasNmeFile s7rvParentGUIDContacUserNameUser.50$Staus briemRe_sizWdthUserWidthFo_rwad AL_Prefayout(AL_Wantuoay ,AL_ChildayoutSye&AL_Justifcaon AL_JustOfs e AL_cyBtwnSubs&AL_cyBelowParnt AL_cxBtwnSubs"AL_cxB_twns t (AL_PropJustOf s e $Staus briconList boxFlow Nrma0Check Wusrpmison6msvPreiwIconCopT Pa gvisKeyword"msvAtoicClas&visWfRuleStNam(visWfRuleStIndx"msvTheeCol r,Dynamic onetr.1&visWfBranchIdex"visWfBranchStvisWfEent$msvTheeEfe7ctvisWfBranchvisWfY evisWfNovisWfBlanku8Ad lisutiemp r son"msvAtoicShapeDi_scusonErrorFindUsersNetworkLinkConfigureSearch&msvStrucueTyp LineEr o<msvSDLitRequr dCaegoi sNetwork.80New*msvSDLitirecionDocumentTopLeftRightIn_tere.103*msvSDL}itAlWgnetScript&Informatin5 cFilterBotomFloatingUser.70"visDecrpton Hident alFastenr  Round keyAskOnDropDiametrLengthTxtSizng Ta_perd kyTaperT5Taper1*Safety_ (Tx ags)"Safety -whie4Ca_rd edrwithky p(IFCPropsnviibleMount BaseElvtionTextWidhCa_rd c7esTechnolgyMountT7ex"TechnolgyxtHairlneKeywaLim1X_eqHLim2XYMxMyAdjCY1USB keyChatChevron,msvSDL]itIewMaerCopy.msvSDConta}ierM7rg ,msvSDContaiert7yl 6msvSDContaiertyl uCStyle8msvSDConta}ierH wad gE g ListbouxiemplacehuodrsHideFr7amLink.84TextColr&placehodrW5itPinX1PinX2spacingStateDialogw frmtopBarHeig hbarWidthbarHeightResizPanlHSideIn_terePower$'NN3КXE3hG3}G3%G3G3̫(G3$G3@ G3\"G3:7G3QG3oG3G3H%G3#G30߬"G3x)G3:*G3XDG3a&G3#G3;G3íG3G3$G30$G3XBG3a"G3#G3G3إ%G3G3#G3"%G30GG3Xd"G38&G3G3h˯)G3G3 G3(;)G3CG3bE3r&G3G3E30Ű G3X$G3 G3 &'-G3TG3r!G3H;G3h;G3 űE3ӱG3;G30 G3Ȧ+&G3XQ$G3uG3&G3X&+G3G3(%G3H # E3/G3L#G3\ o E3{G3X(G3;G3$ӳG3;G3p  E3 !G38-E3P=E3hME3]E3mE3}E3ЛE3E3)G30ִ G3@G3& ,G3;7G3PE3<`G3 |E3\G3G3G3˵G3G3G3$ G3@G3\4G3IG3^G3sG3G3G3$G3@ǶG3\ܶG3G3G3G30G3EG3$ZG3@oG3\G3G3G3÷G3طG3G3$G3@G3\,G3AG3VG3kG3G3G3$G3@G3\ԸG3G3G3G3(G3=G3$RG3@gG3\|G3G3G3G3йG3G3$G3XG3H .4G3@bG3(<zG3G3\G3ǺG3H<G3ȏ&/G380E3@"G3b%G30"G3PE3x HG3XG3G3&<-G3hiE3h<wG3<G3<G3Ƽ'G3E3<G3G3,E3<E3МLE3\&G3<G3=G3G3ͽG3(=G3H=G3G3 7 E3CE3QG3 i9G3h=G3 1G3G3G3 G30<!G3]E3Hk(G3o&G3XG3=ؿG3=G3#G3=2G3LG3iG3$G3 E38E3@G3ho%G3G3=G3\2G30H$G3ol(G3@&/G3xn'G3X$G3%G3n3+G3^%G3m%G3Xm-G3l&G3>G3G3x&4/G3 c9G3!G3k%G3x+G3 ,G3ب9%G3&^.G3+G38'G30G3h'G3X"!G3(>CG3]G3uG3H 5G3&G3G3P E3hE3(E38G3PE3H>^G3zG3ȩ)G3h>G3 =G3G3 . E3&:-G3>gG3  E3E3НE30J G3 &+G3G3 'G32G3$GG3>[G3@uG3($G3&G3>G30&G3>G3?$G3\=G3Ȕ R E3^G3X&rG3E3ܔ  E3G3X&-G3X%G3 2G3D,G3pE3&#G3(?G3&G3&G3H?G3#G3h?8G3QG3 fE38tE3E3PE3E3E3  E3  E3  E30  E3G3hE3G3&+G3=E3ȑ&K0G3&{0G3 6G3$G3 9G3&/!G30&P G3?pG3@G3?G3(G3E3E3\G3ОE3X&/G3&N#G3?qG3?G3&G3E3&G3E  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMUU U UUUU U!"#$U%&&U4<)zE8:&@bN%@ ș C-/ο[ AU4< 8(}A-`7 "A@xmeRR@x8RL<(L<(Em-RE ;R?uR  g"4FX88(}'M@(3O@([>Hֹ2P e}BH P ̚ `.8"ȓ,0f37BxY=wR$U !h@) ER'C ̘z1JbҮ!5l2 ԨT?L*PDC IH%a!nova-17.0.13/doc/source/admin/figures/SCH_5007_V00_NUAC-multi_nic_OpenStack-Flat-DHCP-manager.jpg0000664000175000017500000054140413556316250031454 0ustar zuulzuul00000000000000JFIFHHXICC_PROFILEHMSFTmntrRGB XYZ  -!acspMSFT-BEP rTRC, gTRC8 bTRCD vcgtP'lumi xrXYZ gXYZ bXYZ bkpt wtpt chad ,Infodescicprt( curv  *5AO^o+Jj%O{ >sY]3lk  { :  h ;  n^VV_p?nD-~*: !_""#$Y%%&'v(C))*+,f-A../0123{4h5W6H7<829+:%;"<"=$>(?.@7ABBOC_DqEFGHIKL3MXNOPRS5TiUVXYOZ[]^\_`b?cdf8ghjGkmnloqsY]3lk  { :  h ;  n^VV_p?nD-~*: !_""#$Y%%&'v(C))*+,f-A../0123{4h5W6H7<829+:%;"<"=$>(?.@7ABBOC_DqEFGHIKL3MXNOPRS5TiUVXYOZ[]^\_`b?cdf8ghjGkmnloqsY]3lk  { :  h ;  n^VV_p?nD-~*: !_""#$Y%%&'v(C))*+,f-A../0123{4h5W6H7<829+:%;"<"=$>(?.@7ABBOC_DqEFGHIKL3MXNOPRS5TiUVXYOZ[]^\_`b?cdf8ghjGkmnloq?@ABCEFGH!I+J4K=LFMONXOaPjQsR|STUVWXYZ[\]^_abcd'e3f@gMh[ihjwklmnopqrt uv.w@xSyezw{|}~Ҁ(8HWftÑϒܓ!0@Qcv̢8VtѬ (C\tĸ˹κ̻ƼyX/ÕWƆ9ȘDʘA̒<Α>ОQҾx4ձr4ؼقHܠi2W r4j!FN?_,P\Ag  N 1FPSOF9* !"#y$g%R&8''()*+d,;--./0j1@22345o6F7789:};W<0= =>?@zAWB6CCDEFGHfILJ3KLLMNOPQ{ReSOT8U"V VWXYZ[w\\]@^$__`abcldLe*ffghizjUk0l lmnojpAqqrstiu8V9m:;<=>?ABC/DCEUFhGzHIJKLMNOPQSTU VWXYZ[ \ ]]^_`abcdefgzhgiTj@k+lmmnopqrvs^tFu-vvwxyz{|i}Q~9! ܂ŃhQ9!֌lP3הuR/ ›wP*۠c;nF˫yO%ͰrAܴn4v2뺠T[I!S~ģ4SnȆɝ(ʳ?Xw Ξ5nѲVӝ <"Luminance" = "0"> <"Gamma" = "2.2"> <"Whitepoint" = "6500 K"> <"ChromaticAdaptation" = "2"> <"BlackLuminance" = "0"> } descDell G2410.iccDell G2410.icctextCopyright by ColorLogictExifMM*>F(iNHHC     C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?(((((((((((((((((((((((((((((((((((((((((((((((((((((?~?>,Evu!k% g|:AB|BO_W[k5֧E_G,om%v&2k3i> k$2cF˜ppHn~> ӠᏊ>_=/|A2ꍜ>y[W>7yTahxYk&\xJ6HP H9օOܩBQWÿ -|c:|7qw"@_78S?KKVKxP 0e5A]5Ox~ ԼU Mu*IO=CHlGV 7gcDbnvZilvjG Oً/߆~ӯ%wJganyػP+2jaIN$G?GwzD@]r#S+Hx0A+ȯ߆_{?F0e[8-Jْg;1$QJkVG3v2j3)g}*Ȟ&9;[p#_$QJ)t[?|i _Ļ_viv,ZpX53$ZKthqxÿ[K[i2HwfA9)rOJOО?^xb̲Ĺ}VD%OoA?~3|{3Ͽm̯"Kb6md* >$xGƝ;N9vrJ#5xŭ),R$:GFʰ<)b ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (kڿ??iνyޛFD6s܅%s20xY#gv 2NOS~ :|<_#ú&Ѯd^OXXyͭW7-ntKLh<@u ᙱ_h^y^Vm(I>{Q{VOI?+ڏ+ڏffg}(Oi^y^{03/#>((((((((((((((((((((((((((((((_ߴ?ٿ|q2{ "#Z8ɗa7IG5{7 Vo><7)5+ M\^C` MƕSe2(׍[Ԝ2.BۡV\ x~ֿ+/E|<_z!U՜dE9{G%Dž=R/z|Jd]yLKtbCkcGдxbDt;DѬYX[$[計^m|GH+4G'*7O?__VlY tHv{!BybA/ǯ⿄90?#G91%_b0^W~FKt|a#'qjdڗXW;qN6s R>a5t3OIhS %E~ 2__g5m\[NҞ@#ԼqDzퟀ>#[/|8nO jUlQH22)k9֊(((((((((((((((((((((((((((((((෿k?jQ_YcUdпc?F>>/3D%t`*r=~|DT#3I"~毮x\*hu!TOSH({$|(z{h)$>WOAil5ʹP:3~2]kܦ5xϗ4]2cGkS4y^Ưc/4y^Ƶ<˹'`:խ2[u?~A?:r]6ޅDSI#mQ5h~g_NV'Yo5 wLvW: o;בI+CCYov6q=*uW\z|Cmݞ5cs'5s_םZ.Fn)d1&i]O/#>/#>O>X(((((((((((((((((((((((((((((>,ǁ ^!|+OVKkhZG!FOI~.~џW9Rvgd2> > |0?h~ 9P ;.^i1#Vc__>/@__uoowZ`n= lShڇl?l~%Kf"wyI<@bS~|#gWÿ bє}42]ް)|!́[iY(Iw '~>:A ށo=q$1F1_{࿆m<) hՖl"Bpv#sbX&/j֝G3v)ygޏ,/G}hc3~Ο~>?'wtnX)eFM#B.Ƀ|3} &Ҩ# ɶ<\Ƚ\uMƞ1mwmHmtcevL6I7FCm5jK3֨csjkjx6OUaفv5-t_hZZms賂%Y JLgĖ>HOeG{[`BДW[o;Hs5>$p5j)s ~TqqBy~BjߙUk0^V~G;JLM7mn$yYR!h]C(a\C2dwo x6}|] Ś 5-;iRGq)$?/N^$d{18HF/_ytyT|֓+U\6PHɼk]EC\zqU3*o;UyUwLo:~\I|6$W5V˟)?D2o ogGLZW^^aGLZW^_,QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQ__Q|%[~_H? AI"E@~suoccmKqqq 8FYَOW;oE[ |&/dЭ$ˆ#!F+t ]{;g&i-c*A6 6F9`O?vZ͞ (@fF I$/k)n:daWyHr?3_٧|uO?O>\gt*#ʜymf6eJ%8}"yH[ymSmΩt13<= p>\_Oѳ^mZөDa|r>]]^g֎@Gˣ˫>l(tyu{g֍Z9W#KbF,R!sd``H}65i j/;d3n Hтg"m=A2FU `BfOx,yFV*Yi{{<(ȯ-ʀ$U2&UdYAj'A2|ZᶶO/ąbb?ӅDUG`FsSp<* ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( AɬIE~WMgWJ(O+]~>ѵX4[:uRD؂éS/?(w:769 y/E\cq d }ff >&3I"y+%wCue:xđJ?S=GQ.%M=f%$G(O u<ڷ<]nDw2Y z˧*GLy>/O/'|#džy=u^1-ų,cC/QXd__StNo~L$ >t?Lv؇n|/2Fvxgv$b{q}~xRrٟos&{Yk}sPKlX *́lD_?Zƛ?/cƿmʶm'LyC w uGfe,~$d?o#1s|ҊW!p;ty;3љ~w/;Ak;V]UW+y޼zm3s'5s_םZ.Fn(ɿcOL1џ2_%i_Gz}y2_%i_Gz}~|QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEcx^+^>&޴Qq1UGSNzٯ?io۫4/xknu$|w!-wJHUr1_oE7<V>]֡H?<]_Eb +x~3Z1Oˡ"QJNf[-HdqDF;|/wM\/1$ ְGou[TG?ٷ Sа4 T Y_ ųBҝ#D|?-AҴFEgaal[۠+KgָVM"ĉ*(ª=;e[gֹ (V}h (V}h (V}h (V}h (V}h (W&vڪ}qt] ^(<hړ**J'dTb쎛UD]UG'=y~'?mF[d<1'u/0r|/?Mp3cskRV= 8%xo!3B>XdpmO,_+^rr=jqIY=f/?V(],/ZW_a?E[ ( Š((((((((((((((((((BBf!T O-j*o^f֟>&C'OƑ8?h\OXrY4{XikqZX[1-c\$z_ҿ?-۔c-&ʭo` kEx2]Vz HZω_~FV(,5[kHW2PGםG6UBs]/|cx{ĸ kԆ{MťTm%.MgZ|Ők$Լ5t߼'rF^2NgNり((((((෿k?jQ_YcU3o/¯$kɢ*?LH]_1Gp㑬I 1Eþ#=9SJz<2T%D qe<9tA5h"hа; S]f~ /ZF/_V?_ AV~?uύ |^{x6W[\<>#D"F1G~Cjiem-m$s>kd;Bz{Ikm7|D<_N7d'`}ϲVmW>'_4O ,;uy mEl$'޲riCeI>=xc㟆'kx/6Z#ۥMh6@ȧ`}ѯ?GU_ψ߶ě ?i/xJִ!eYo!O9_bHжò+1eZ|mi|^R|N'"^]7Ku =D'G afOgV?_ h+M*KFO.wKmE4E˪lo=F>nSJM QP"? |2=#ZSm~ӧ &啝j*9sRՆdmg+fbY ] v} //~^|M_n007Z$W,v3L%)ӎ-_7wSFѿOv}LpE\7/[}KW&WƟboi?վ&xF/ y:H ~́uWd>x_Zmo◍X4#xEL4[w2K-ѷ~UT,8W|~mO ?_@,~ l.pmSޱ S]xwA/ڳ?/|5Εvfj^-$VVSwqu|[_ ~(Pz3ʫԝF,/ZW_wVb\Gi_ҍ}v_V$B(0(((((((((((((((((?i?3Ow'rCijyyL'οR?xŚ}ƴv]UQn_ᯂ44?37fs)&idaRG#-+1)JD]>CĹ< (Sv{ъrvvNoMZ_ .t{_^`4c@x#uy xsžM_ '1DNG񑎕6z]Ceaiogic= Jw; f:C~'IwˆW_Z-yȿCUuҼ]'UJItu+;{9F$x+~_ zQJѣ2JuʝHFJ=SO]Q֭{~񵧍xW߈1k~6;:{aڿIfO+lj<+|>4++aP Bs_?yҹ/^4>ɯi긆?x~rpk q-O/~>mό,5g“ߥEnQ |3NV#Z\;~(+I]%ѻ`,7cgbO{Sڼi ivtuw /}X7_ʀ?Z(>~{xwtxw& gb(H粨,{ s|-um>m~\iέ<1e npqm/dgok6IvZ((mLڭhr錝. 2P_? ?fφ6wx.4P~^|<^&MoܭݕP_Ewq"278'O+/OZºeewj0<(lW$}{k<毝ckō[/>xv cW"6"ɸɗfd~rW~_^g帰osm>;2; oo@X5gcq}v|1#Oi7_m`0 &42Mxo۾3Sj_hSi> x Eoih-UʁZKUE^_*@q-͗ό +)guܵG⧉a|;[O?xs_j2iYՏ30_#9>j9$aM0#<jV SBp,9aƪ'ӿgKIMA5 گ|1wǟ\ѠῃC+Z:.|Go Y,Ҙge7I|[_ _yY6̘R}j (btﯡ:f.Vb\Gi_ҍ5OYrJ58OC~G[ ( Š(((((((((((((((((-W?e[𗉮#\[&g&i?"bHtC)eW_[55](/0N;/x Z_<_,UW @ |R:e)YKۧc&*U&֫*RqnIߒQN)]vx~|I&4_x̰]4 ,I! RE0a$=zm>3h>յ*Qrxtr0h3zuwQUlĶҽl>Ҁ `1_gq9Ji(N.[^NO?<4#Ů\d M* )'.k:ZNtQZ@39b?ޣzG=cɑ^55mclMc7aJ {Qj**dO ?KPZoϺ{w[ϣ^7.Wv\M 9dVNhmOeU-m]I#U7vODcr8:Od),3FOPAƿ׭fr*Hph%tNq_doN+>/S/E5夺.faTW{8V~-| ßڷύqx#U8&H1쬇^C XӼC'_E擩yepP:>eXk!8*QwLLaʕh.5ff>d|cғ>-pJkLK޳'ݘtZF? 4x]s@j\.xEQ?(|w=;fF<{d6Qb=MzP)nFDiBg5/|0ԗ*}zI9ͻZg{?g\Ijd^X@x ] ծAKyח[B>˰o_k|mWhyj9FaѧnXHȪ6W!? Y=|1 [7ťiZcF5}=#~3uMf`b>&`=@~|߂ -OY[ͬ lo.5 @rV0s0pԒ {&?ƫ%}_?[>WwtK"AOsJKmZ0 $he4 ĆYpI5gW5XQ7 v3yi,Ϯ_υ>5<>Xͭ63{MмEDwEh"7)2##dNJY^i>4[tV?|}2XI8OK_OnI?֝5j-/?MiZ?$ j,?RȕO1GHb{hT&ZxKouGv &{}VbpRWq޵y6>#8l? U3{{GU{CƿGYU7>x&oxĺ_e8P]v6GZ+(ʞ=jVMޣ0'C,J:$݅*3;7l?lz,WMQؤUۯͯ:CV|UB߲[Jv{h '$Cb۲I;W߳_:6iړďH.du"!;ҮN%l 3Ly~s?V g ^,a`$eܳ7rkN67ɗ^+U9k>7ɗ^+U9h _$+ ď ]sI慘m\q,272*H?J!_`MU⋟n6u]]Al B))fS@%US)6ό)tw{tZ O~џOW~-Qq2$-,>V: *'L}6}'6@n{x/_aiZ-듀-H -C5惫h)uiaet9dp{>]࿀1#oYom9 *5Jk]Wrԋסv۵|yU??lZ隿80DZ;M݁\=B4(|"Ryg)J ]?R IT1ɔE׀k8y_tfG\:h~ VDo RxJE_~Ej `Om U]|E{]gƗi)NK&_U VӃխSِxH/Sׁ֡4KXr+ "㞹s-+,z}=+WU y6TzؽQU0Q Øӕ!y53wEEt4Ml}X5P聉?CX?CX: bMMcO[3}XםX鉇?CXmO,^uC'_OYrJ5=f/?V(OC~G$B(0(((((((((((((((((w FKvGby*HnD-A77,fⱤkaؾ 鷹b@G9N9B8j_&oo%u/h6Q%>?+U-쇜!'$Ȇ9 9flbs 1t]9ޟ?f<x̣ë+i)Eezy([xN'#w~N./,~WH,.NO8⾕+VK'ԅE}L#>rQ5@_岺Ҟ᯼)}Bf<. ~|^Ѣ3\|2nOmRxrz90 <7IUB~n?^ɷz7zNrB3Y%y%JU&,V!"N=ݯ.lt 8ٵ0NLd`g[+=B8x: c 8={t7Xll=26)$l$E#>W58w5K}[W?][^:``:{W:uU:ׅtmYDopP $JӏeժB ܔӣʣ'.eg>}W^⟈wII`vzTvFj7?/sc *{ZU.Twj^gl0ԖOm({8I'ϥg>#fa;nW+$G FT5Og|%8>?46+VqR~YI唰#XQo}]z%m_ S􂏽)cyJKRc SkxwIֵk6p$S8rIOt տhOk%w᫑%d@y9 8ʻrRkeֽ!kzyW?+(+..gkJF'%I'|&^}½y29_q&Of-:_ޒi'~_^5hwzhb #NIh$@/EbVqWIȥ@/#UM\FW og?#u`Si.mmmmEWQ@~E|No ]a 9 _O(\V]g?f/]7_fBv6މʊ kk6IY`# + ^!EiٟRewQujKTurpUF ~z|:wG¿ x-l8Yj}/ vȌh\dBOB+/wo>)|Z|Oz%i%[Z;&L6߻6O@gazAZP<{}=I>|Nv|O3HX@K3#0I53Mz{C𿅮nڦ땆(ǻ1;?oxFKmKeL 09SVw3U8ZحF{Zi͛a# +|8J=34YSg _xwrVIYZڨ&cذ^Ga]%C_y}sUt_9'. sY1)eg/Ňᗃ"x|]jcrqCv~aq׿SïU߳k/ Z(<qpS€8g9Š((((((((((((((((((((((((((w_#>w_#?B)m ~|g+vu_ ZjNco"pF \$d7X+?%0[_Z]R1G")tr)?Q_җS6/sMZh4/Ai$0Eu`DVxO/O~3ҬMCc6$z9O]eeJ/g#|;tĚEyǎwE_:Fq {0-έƷK5O%Ŵ9y mF,Ia dž"I(XՂ"`~ԟ |SoX--I,P_1nwu L`/JkSz_ YZK[{#CYm\YUWVVVro'Vh =V?-rZw6S}@0b%#пT<_ֹ,ZkP/0y,Ukfsik~.+n~.+Ϩtěƞf:~g*ڟYDOş?+Jk{_뗈+Q0IzQ]aEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEGS4zX:]f[aA՝؀ܚM˧NSU%Խ\'WyWȣ\젟¾muY< G~#OǭZ[  <\@k~7/ߋu>+8q&*g!>~G#bkcZ۸|6#+v㏁?xf,$UԚ~Ly+屍7!d|ܯ_/77GoMޔ. oCrM~vNM gIghu1pp u8 +Gۆʱ3Ξ2x  Iq <::|m'EO>T߇D\D8MxG|-??h^!ѼQu'Smƪp$q]GOPƺMwO iӮa meIPyn3_di`Iӆ_3O% WJM~Tc%Ӛ'܏3\Q8M&[2nwǣn?⻉lm5 :NMDuO|W7&Qw-N.f%2 \:YZRa/J16yY%-ky] iBᓓ]w[ÎLHԞ%uUF7֛*tLz~=7: 71eoR 5qx-u X7r vUGeP+?D|?kxƒ[ס`.VU`($>Fp9y}WXfRK.M4fem:[]MS5X~e(EI9:ϙ]II(+-ti!-C\qm8ԃCȃ;^3᫯?#~ ..n-@Sg2刎8f$ )ndN6=Sk`6=kiJs}+M_{xZRֵ {[(uV_"(Y ż_٣wcͥu $N+>~Oh?ni*h͞xI6}MCW|ZkGhto*ϓe 2<9f Ym#k[⿉TRTc6oH$]~|V˟ ~87Jm{-c$ 1e1؍Ÿ ~8|,¯3WS[9所1[[^k"M,$FuۍBls%IWCP|Jki)1>TcSӣaO?5eUte5z;k_Wx?n,|Ki |a[c{/ܞrKF8ٍ;QUoM.uatu$2A^i(yPo-'F6;c.Yc]"2A o^#7߳oNs"Y㈅$tYRL`5_?jEc jZSyMpc1Gd}~HE6-߳YncɶjYOl=E&VD|Wռ ⟈M~K}6BUjZU=soω+L=3 3>ϦY"DgcHC 5zWEa%˙A_֛Vlse}~ϟ,6:Ƌo]8{hsHWAQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEW|n/bVrקט|n/bVrHW?-A{n1O ok۵|Fc?=?bt6R t"|=kf:ݳũjv %|ތ*kn[vb*E3oO|em 6ґH3u92h}v繯oco 潺*KuwrT|VZsͳwEtfG!['D՜FӞ6S VױKqΖ|I)+^L«Dۏip09x/|X~5Z6}kslڕդ&I6J@f`8>[\4Is|eOԑ^_:[g~o"B qccU*^70NǻjL?5q^guZğBNObe#н{{4Q5/yyGy`.;efOhc~.+n~.+ Iifokz10k⭩şΨtD+ +1|Y^#ҴF'gxJҿ z/ėQEfQEQEQEQEQEQEQEQEW?mo /tg񷈡%d|6p"oI',"\ g^_x qk?em&bk>GfU--?~>э|.QF&ךMWUB^j aum-/!s#r{Wx ]N+?|(N܋N#_0N\79}S_ǽ}6jGC^cڼʧl>4߶G|%CWM얷-a^FFk8 U}x0GYW`og7[Koko{h1e\Z<\ sM ־(~׈5yʹx,ki IJ6:3k??b׼f|GdH>#ʀ;rdT5((@+Y>?3|ٌa>u ~ i(E=>!}.FV!<Q_WTEF+?1qfVo]薋 ( ~#|,qw@sZjk07ma_?_NJy/!|EdYi^YAtK2=%gSǿMfEDCq袿??hoOέ_%um:Ŧ/[2Y F8fN XR0Aʵ uR7^g~Yc2DqJ.z=z5[5-Fo1o.^7(VS;+5ozci߄>|K+6{[,܎w@?WxQ }ϊ&5I|5kXkFG)eFI,Nk/I0x/;Y]H[P2r$ow4v55$D\$*gh|KѾ >[hzuZO Cɾcrcס,=5Qx2J1SJRwz-uSA>mJ=<{ &d\OM}Ru-&_iyvnl4,in.'$q"3 $OOgV0 w4x oiFp$yIH|PuZ=A[Q9F=+\DH0p$* ~߁SSCZe\ՙ6`` k{dĞh(((((((k?h/g?>-_VP[jv_ٖjgrŽ6@JQX>ljxsċllUy͉dٻ8݌g+^&{[.Q\4RPqڀ'%多q[=JHPd@qWμW_ ?>2xp=s឵7HyݧQ0v.|tUWMR;Ktv(8琹ժ(-g3E `u~o?C/73z;MQֵzk[yhZie'9F YT酧)#BQ#sY_ >1"πakԿ{| H~{|=ma L4A۸W>2~߶<EρKm4+hl}z@ߕ-/3 c1uO+\5+i$F!^K1%,GE~x{z!g hfZ.{ u(SPI䞤O5}O65ĿaE5W]O?_9\-5)˽8};ƥ௄?N^m7sE PiZ7 Dr7;`yWzφ~=ND*yLKF$߹`9d$؎E|k_ mÙ-I#iF]3(/J;&"Z-~o+Ʈ[N9_3hO :c7M'krtIA JB>C-Qeߌp;\mhut̫@I?2u$FuFtOiZ~cYOfFON?P7#~ȔmJrm=żY2?}G52&Ϟ`~V~Ů*p\kXlUM=ޮ>移OK SFtMGOKouk2FC+)!8uxKuմXu]ꄍb#v,8֏?OZiz|i&Z¬>NVo&5*?.'|5M?6SWj=ҷڋmkcZ)AzK_\;KQԴD}BKmн1(@QM~xmx?2Oῃ6I|$Gt =gCnYO^ 8| *o-9M&ϼ+CtO xVBhz5{-lmb_EU_z֢%eٽտW#>:3xfu4ӂ-]MnQEQEQEQ^edž~-(5 v./kV"A;^9MIa&xϮ{{DFDF` 1!KtGw$mIZ{nچ#gj r3ᔲ@3Ce0{r-WR$uWCr1@7m[Wy2=[N?/"yTXZ8(Oa^F2rAoq>׶~KK8q9kғn$ڔh˯Ϣoҏ'VL`^"Fvտ(\1'ZQvz3+(}JyG|`}J/<; ϢxFִ~1ٔVH#?Q)ƣֆaVHԥ'-SN>魏~~I_iz!0j0Fzߨ~?WȆmЦֹ ݼgoYz HZxjNɶQң yn2Ye{u˸jW7 E71V7SO+|+KL׉9/i'𖽤xÚ"kOKKk?Ē!*kr=h'_ /6xPY4qc4]y 6v2X9+%%tjaJ5!}ꞩŠ(lQEQEQEQEQEw5k45OoSr_]v x],H[rac=F;/l&^$Ηo ^izޅzmn[;4S̉w|&]#t-k~WyuM6J{5FGbřY;np$` ~`oύ{\xx|,!D@7 C9ҪS[=NJ|WIۦ#ΙUdP:Bdt|&?g㞷qŋ^1b r,#5?*_sˡ_D!A$\ cAI2b|]  |%? /~0|T GRBkбl~m?࠷_|@ou%u]#Nz>rY.Wx]d{^C_gNeϊ|u] ww٧-4{C W־,~Zhӟ|C|vԼ]&w%LCu$1!tu.c\~~7玵O 5wiqqdZ2G$ǧΞh~^ c_VѬCgc`w4-l##t$q@k?ڟg-k.OhGo(fUKBr2ϟyd ':x_>?^%t\IۀI,AbI5_ᇃ|jmǀIoKw28 w/|:}n'>|7WmOCcܾ4)Voݸ<|zI.~84~ymO6zk- dex(+;ӿfmY񾝡,E4hO6RFZgكM\u:2QrYr2T1o?Po{D7| ˝J d ./I!~F  Jz8|gF74;YdrlKt۹9؇汫^eG*?n(/#A[zIͦImh[Hy0 2go&wτcLJ mҭI"B:npD5MhZO1ch:VhQ,--tTDUGC^Ul]IGT)F;$P$QFƊW@+şW?tohr/б㣣+Z(p}_l mkZvd XiFHP ݍ򏡯>%o/ |DwLW$0%AQ:OStb>qG1eƾot FLr/ފAQ°w ?e?w?c$lҭXa)`##v1_EοW}r/~^wY~qm6_ .3[>G%7I#:uc5xQks𿊼3oi(w4ooPͲĹ^I<x ߭ ( ( ( ( ( ( ( ( ( ( eJZeJZW c5mڿ&?B)m ~vtG N۵|?;t4[+5#Vڍ*V<)еnoRѴRDk5~]݅Ok8Zr%J~m.ƿr:gխ5,dCb4fF3rGWFkͼh75)"doRKm8\8&ZYMQ, e.gvrh=MTֲ=umtA?vŲ?W5` \Vz5@ejQC<8Q<ksG/j;~m# y0Lo#5d|Uxu~'7fH4Ƿ*phcwo/[-%I2r\(|R1Vj<Ϣߡ!,/ZW_Ɨſ_S/k9F.`iw|@`s?O+Gᇋ![&H }WO|I;$22vr+JsNJJU?5f_R*zISZ( ( ( ( ( (;~ > M|}㨉F!ppE FQC8 katJQ^|/9㣂Qw+M/3CQt;OU4X[(aEgwbN~m|twA"񆹓l,!ncLGkjۛP_j~EXf^Q)g|V gAj+K`xXs2b yi邏~gOYcl-'>ժyuK8x HHx/uijC:,c؀ܪ σ?> x,hݦ//ޚf*v+hk)&sT{Z_|Ax+ VJ? KRE5£QEQ@Q@Q@u+?m׭?geţU +~g>Kwɗm;`lP?~Q^sX??3 WSG+95+1Xs<፳Nneˍ ok㟄mlG ɖ,ﳐR+*dxMb*TtoFv?(Q e֖2겔S}D:njw,WZ'HXPc?u ~_0 6r(`$#pYc+-4 ̘_-Vu-fw ~Ls_Zy>Qe3|?T#U)dx:k\ӂߎ/RQE}YQEQEQEWŏ`|Xixsĺ׆?ZI'2u`>IlҼ_mעkZlvq0Uw+M&}(b졥ڮ[ɯ>!> _xO_< ~ֵm?WS˗k4[`̲)p^l?ܧ$xr?m/|#ak4|c>dĽ}P9^Q=O:vX˜@cy1+-CGUt@xIMPB). ofrf&_$tK xE$-'fɥX$TPVlДl9Mj?_w7Oj6 \E{e N1a˜"= *UaZ>_ZTVe`ip0}30r?hxOiK.4K1Z6jQ<*gy^3k ƾ+p #qAVu)Fjs< YmM'5֎C uO&M:w SLy/|%n`$uQwD;ߨmOßݕqo<wFÂ+࠿={_xNޡÿۛMu]A  '!Kf9>/Ƶ_N| Wie֝ F!@"3C^ $oekmo]t3l NOH:5Iyi߆.ψW3[!A՛rq<}u:&?{l4m7X=*:ε{LJ% )A<3N 04{x_T|>BxI%]OcTMsy2\J"4,(IW [T|7㝕cV3-Qtk M+`g|RSn S /x/gJ"1ԁIϔ5$kEv9?WmbaJe*Q#+¾ğ@<Ȟej,g80^x^?~%_>r:n#{XrUu SQMsu)G>.]u?J8Er_ϧOOĴpt2z^/G6ZkeʟQ_͹Fg|fboI9$h_"?ynkHz~#Š(@(((((((((((}}ghuoc@\ H;1(O ^sCO .|eOƚ=@'Ngˆ1LtH՘W{OGn⋩o}GOBp[?l5?C2woh\I'dR ||"*r Hje5Ƣk [Q|>zZ(Eq}V^% lS[ ox(~:ֵjZuyr^ߒOHIc//IU(das)@.b$Ѧx߂<<+GöV:e™ 9w8ؖc$aCZ~]]rr\g} Q5ÙQ4yG֟GGffyGCZ 3U,Ǡ$!h^E,Rǥ;2}:'dTT pX=~xgu_xBĿi"g(=Œ΀L98*yjFL'"+-\>د1ɮK[PY+UhksD[˩?dO62\pxH`g%#wDzW~ ~8io ( ( ( ( ( ( ( ( ( ( eJZeJZW c5mڿ&?B)m }RUƇږͤU6q[1SoP!$K|sXc&oc۠B'іݫa[x/ߍjW "~ϪiYb<'ȹFs=J -Qs֍ZލbO -m?W5`kbֿ*\{gE/yQQTwok0z<*֍b=E`GF֎p{(micԴ;aTI$^X' k X0[kJu2S!9#V+/?n4CṓK8#A^K ?kVJ]_2ngFUh]%սx^o\V<^Cf9Nnd)WΫdWψl&ť\[(.Sׂ]/GG*qtJ˪W|q5H]}2]Q-^oM6˾t yj,B>xXxߊO^:]8cqSsZOu=.YF"Ohqt=+^Ajؖ!ywhIܹ$l<'1_r~{?G?<|^:w>6Easb[f?Zg$ڒcpN+)b9&E _d5(co |>-׉k /Z=A܅8ES9rF\-lMhѣ9$mKVW|_玼ClP9RTU20X+/ٿúy!Yj7N0@@8g 팊Ws 8qx7wYmYob:UTt2~ CiXSzƄm,EO.]yvmɹ^.?i/W7S^f+D0 6)E`J0⾢/͟>+iD#I`AFO`A q> 𯀼 ihg+aKjN.ǫ˱,ǒI=1<G><YG a]Zu*|W~N [(mH#P0@8TQ_Z>6ۻ (Q@Q@Q@Q@Q@2HTIbu*!;} ;u|B? ŏ(]^`$\~By<3E~?o-< z \M_,q[Ve.L03~-2þ+4wK{+Xa0A=`jy|/;[3Q8M:itom??+/F4u}g]!' g(OF5QcX> ~%ZC<ڃCq'6Jzg2Szx^,?i jvhuȴ 'p=w6sXJY9?fIksOp9y⾷M+ʄM?wi;mպ+|3Zx:-f ıIuu8 @tF V.2MYM=S (((??G4W4;䱃Q4-#$^Qr$rA ?|e<_s&W,W+IYCp9*~tP'~i=Z^)]=fYZB1!GO | ':߆|=˪Βܲ4숊N (Z(>~7>(|5LE _[ mE%1 K6OŸ٣z֗Wk /M槪˹4aAvUQ$I?BK1Oj _>O|P46}? )k)я4ݏ><&üF:|~Inߢ>uþuNGҭtw,Qcǰ|/˾uD>hz֭rylWc4z|"Mx5 Ck&0ϵF28_+_'-868Wڼi{ߡN/r?e>4 Q+/K[G_HxK8xo!c[^7 d~>!> |b+JXǠ^铰g#e>Ҿ.~&6)~0z5b ]͢/=d㎤ˊja6i?m~kn+W%_a_܋RϤb>Gյo~By,vٜ?98?6{Z[oB#^X3gDXNI?L@[ME_ϹI,> C/žI#qc[yV0?06k\tQ[t>75a~߳_Zj6jzsm*YIW^x5ɡ:OڣfT^]WhƝ3@ olC2 m}ͯxC𿆧$|SWmxW .?܌6:ω~u{PʶVLd}5!uc^_xTn\?EFSV9iVv]>~['8OzG},c?sFHnr 6}G r?j eJZFͥx{ß<_7WQMR '6QmJFтwP{ahu9c<pA  WS okD4=U -n%`nf1/03 UeR#:QkF}1QW-i:vvN0%V':RH.$ԠѕQVqGqZreyTyUU{-.eXeYbYzГ{6gm !ZIrXg9|=μ;NI'^v'tҢ#񦫨%fXG|?~0=o:uWuj]YwQ;׌|b]bWw&/mCId^g+BYcU"?~|pQEQEQEQEQEQEQEQEQEQEW|n/bVrקט|n/bVrHW?-A~(o, nao*R :ߺl־W c535]Q?Aqrk-\CIT-G+1t {T9O ih~x}x)L#tL8{iףmݓO.iD,6+h3g72X-5{lGQ} gN.b'-'[8W=`TfW2mn 5i-Wn}ϦoIlT!-z2:=-Z+T9ƽ/_q骷seړt&2sTGo? wZJ~.0^ju$H8eȥ;u ďh$/Kp xg yNw*w:J\vjŦI|/i^F-?My+K^:h-{>yި4W1a>Gy`{>?~~Ͼ7o|Goyqs1 HY.>u m@} ^EE^Pq'&aW!sN0IӋNZnk:.j:SmyJ߉? T2)+, "2P3kϥ|l5JSp<9fhbpcRRM?F_ҏ/WG}+>S<_үgҏ,Qء(>ygҎPLj௅h^CZd1Vo{5- S Jh-&y/f. dcnY.l,eU+,3 tpzWd[ZwA}[d 1~ܿjm _ayqB<mc2H.N+{K I$h,ǀzWGOzm[F" ⶵ?t/k)7 1@Nc y 7$C(ҩ<غO.f 9yK5V 7o(ʥ?*omS> 7IokLmH4VPVgG~6Ừ5ƭ."3mX3S8sc߲3o_Tp:d l洔`( د!cs)*ޔ֧|\ ,oUKY)T}ZJa}OE }~HfjT(c zT)t9q1skJY&7 +c ( ( ( ( ( ( ( ( ( ~|h_7kKԢyS ꦽbʽ uR*Iz\n[+VTAJ-ŧ֧of3T玾xVg˫[HyC'm՟):am}/dmxyUFГ>:~ǿ 6Gwo$_ҡPf[Y>8EˤezӖ_G\ÜcJ8N7֎.Q{H%jy+n}YOmȓC"D`FAuwZW kmB|sN73iI# ['l~>qҵ?Fdj*Nǿvu~_Zx+'J}_lT;Uj[7}袊3񀢊(k|<ߌuϙ'`34goeކM=)U5V۲Kͳ;"OǺ O"KB8O61_xx/5}6 ֿ_ȝ7TH^ b.-e9slNICpw^\+>\!c*yGhӷKQ^8QEVV~ ɯhVkot\~UEy|45ޜ~|3Һۏ و2x;9\OEе~G?Qqc,C$g8G, E~Q@VgEm_Oo/A>.|?Nd;x8ȇQ"s?kC@ucwĖcW %@nːsƵZj1LYl#v٬B]O' ejJc(KM{&Y'k37:M?@#U5Y$|H^I;UGQZQEQEQEQEQEQEQEQEQEQEQEQEQEW|n/bVrקט|n/bVrܴ=_ZV=PI ѴaX rt?@|I(m }O <-??Kgysk{oc\FHtYSit%w/* z?YzVq=3[{VWBv a0#]F&F5Ś7ZVD"TY^+V~ϲcw|Vds.Y,(@Xv7??[~uVɦz~uahc~W;Ha5 i~FNj7!Xҷ?Apϊth.a$bO# B"O ¾3烼MxD Pϴ)/Jl崿:UjA6Zdtu5|KRk=\evn[rz9&|s{ι'^RݚƚEKJo;kmOr:rZo:xg-y޼cĿ%x/5߉+jK%y?>_9_"?~ ~8ioり((((((((((w_#>OmfT2H0T _wj~|U6uYZ`C z$Z(n,(D)$r(eu#x 1__c$ -1\j-)j:p-ph'Sp,hc$/Ux |ٳšx[YĿXI[?9\ILR5]ea+PPSԾ৊o<]6 K Nn5τד]3le9)ڢ|N9Dx{Xk -F\}M5Ծ=f[}ǒ7oP>!V'"ʉ'_j h~9_O+lF]_Qf|~?+/SV "Țoc<]߃~:|~{-|FWficԣ=J=Sz֭+s.%+;'oSWş~|k!x;R\bKoil#lthmd|q]Z|:vGe$՟P[e\aA$޼/R~M|6ozC+vZX=1?_oi^8p5ѢӤxN6#.]J?_Q?w^[ν^ډMyNּ||~F_GG=:\<4{tyZ7s)~^NwQӟ?k/MX;v>vB:gq݃_?OƯ<3“xkZ0Y8jT\|wm\ws_"5mӡfj>ҵ _uL `4G`sA5^zRռan uu*|~-vAݱҼTJKmZ~wOHRZ4lq8B.S嬡m!Vgw|{F zL6Hɺn)&1 9k{67q^Q"0U/;P^[i,{lX#ou9Zt׬okvkĹ_Ln6i`1m>vu՛Q򏡣>"nX)#8=E;sl>:F$ѭGzQ4yGև(>SongGCZPr3h򏡭(Q 9CۙQ5Mo.0#T](]9NTrha%C8IYI4fOgƿ|Gi :ߖK)1>\cH'!kX'sx#ӭ~x0|Qht9{G2NZ1| |Iu͸TPAӯ8E~qHZ1]2įϋ9I>?3SuYj6ciW֗S\F*J j" ~:~?NJO5=Α0';%9&@1_yk:~j^5O xAHO|;~_I "Q*[6*"JJI?s̃1ɱrcʕH]}}eQ]QEQEQEQEQEQEQEUk=;J.,m2Oqq(8rYS_+x?KlS̭BlE:J9<)iw[>6?ot~t7fo~ }9֦~L~vs\k77nx>SXvO+~~џ %Ccx,5~敫Gk?\73*VslcEVUHwM~|(@N I1чIe<Gnn|Qn) .ņ4y{r͞7 ~^ve1+G> ?-EC 7s.L['A}ό *|={ .,E̪vcaIAxj='_kR{xoߞMRvۆ3Ϩ+١RSE5fnxw["F8]7f3R7|=e5udSU Al' 'ğ-O||&da҇3-#O57¿>ָ҅Sl%#+c|k٫xgYbOp?9WWQ(G)xOC~c˂|1G9i$WE**JTcJ/$(lQEQEQ_=Һ'~6_<#C\[5DȪL< %w?> x^>8 \[\]\n(nQ#/dğ 3/%7N|#!|M7dF?5;!>KBh=?n+g¯Ck}^5I҉`V| jÕ((((((((((((((+>7ɗ^+U9k>7ɗ^+U9h# S$+ Կר|J~9|co5Y5]JK$6WRZY<䏴 ,W_J!??`_d@ѐ2 `zk+tMNOOG}0x(zo1ň9ǁj/_^x_f]sYм!Yn fNا&Iї9fwNM7w-Hd;&KB}(CYcX5߄:!WM)Em:^A!NrFk.4S8!o>! ,rE%f0a1;G_Z#N U4|IUIGc&K[: [\[$,zK%o/>aޞ!zSI+>pSG}My~ѝ|J ¼y5VG**-y\V[έ^Ms^w&/mCIdg^1Mw_ڇ^O:W&ƫO%5}_?D/55Z)|ࢊ((((((((((( [k6 ;)0ʌ0x*A lo&G<>>~ iN){W䴺a99=I@ugo(N Jߴ ~ͼdmrh̪vB#  _\G=sC*M `FAuOߵVs_ZSXxHS$ yUnS%dT+X7/+qȚKɏ7O`[$ @|7$Rz1gּ_!x/BJ1o=8?1$|q|omm4k%N(H?<J9}@9vpBvi\*-5GW׍7h~x"҂G< ^~"ѯ*Y]-5YK :1)1̣̩"S^ƒ[GR?7aMO3޼^}?Vv׺a>+WȆFqrGr5hωV!=+{eR11>M|1Zqo܎1tyྊfbMUmb{LDʧU}~,< :x'YCW2^DmPm#,##pe}8WZe˟xyo03H8vX ~Kt 'z'7b-4&-ORy959ayGjThٗ Զ>-ƠNVg'r$9.9 zuJ#ѷo 'xn5tkXe1nS)S_|u7V^kzMƗA7x'p9V 9t|$9o.C 0ʡ1G`q{NxI<-,:ģdN6zynFzt'_NJ_uCv|PYM&4U-ch@Tzxv?3t:f " ;X0??H_qVyW|ni۾ Öʨe_[cWOzi=eA֗$Y/=x_vKi2GayɰBǮI< xkLWΙ,5ż&yYcaXzږ-,< {+c>"=O*&{!gc}kϋ/5VZ+uyp:xS㫒m].Oݗ[qNY(êTiu#NMJ0qakJJqA+)BSIGOf}զelm uL`)&}q}BULG[ OC{;K& KGOW*|#{fN}}amoMYZմY-dAUI?vMחkIҿ?$8ˆWBJ4O~Xڕ՜g:s E(giG| K |D,w1b(q^{X֭giq(pS#`FyUMN #r8s* kkIu˾]]iy^Ə+!K5 ~&x+ީ"oj?4ʃ 'ҕ ԒmG&;6`J&#I/6<˯lu=5}lehǸ)8r0YIG?~(G&99 xT#5ŏ>/u-rIt6:=l,0pc](ᰟ|X*]=ߚ>g Br{ _Ջ_ꓳrǪz߃tKg-~ xXǾ+B;G C0pj^GF9hBp [?&De8Agv8 $UʺW-VJn?3RG[9ZDTcE]]_HXcx[$|.W>9^jLhqdqH@Zz+-%EZWq`p c(=0y.W*rK~OM_/< t*w+&}n@Z|~2seIMz]~AWő^B⾇t .=O86${xm{ZQpoI~'5|>K,Pj.@%&Fiʯx5_joᾑs_ q?w1k5? ?b׿*ݮMZgҭďqp~y\r>+ #GҴ&civɲ(ǠU bq?|~USa'¿w/z5ÿÔSxWu^ôzuɴ[1LµFWWy|{KA?Y=ǝ$N+v8k Q8(WZ>qS,)Ukѩ(ϥܝ̖S۷irmE:}?u9BOIs_s  "4|-׺ ?̹s?<[+zrNIn65MT7\yVt=\-ݺ):/y8受1~s#ºذ(uχ2ǁ*"Tތx8j))EGyfY62x<„Ui}aEWAQ@~hP)hb |w-ޡg/^,kk^h`>-c~ ~1_ h>;x]h> .4F" 4N{cz5D|)bd7aUU͊7 qnx}KTv^/\+]Gyqs!esA^;i~)??a麟#!k ,mlnrhXQ 0."I Kݶ)8Q I\ +[|KN|=m:rũȖ^Dnn>W߿z|f/>ŇVw4uo]z{ȁy7;S敹8 ઐOsK2Ju 1a_k|*`obQ_*_~G?lW-Oc\'/[C r8XU[ *pNxoO;ZƳwڊ^VuBx7(M}EPEPEPEPEPEPEPEPET,//./.-$E ʜsV(((((0&_{ĭWHO0&_{ĭWH%O0[_v?O%O0[_v?{T?+h3Ja<0#5cſ<7+&9Zt~OɿpTΗ]tu%t C.$Z fhD$v;Xq]Tlhc*TwfIymV [kFil8$k.yp|;H#! \x_H9 _7gfDŽtc?gZtTvӅ;ty?<g){ΐˑk+j?=rW+yի}9bWsXz_kV?J{~%ح,| _k??jS_BYcUώ ( ( ( ( ( ( ( ( ( ( ( ( ygiiW67WsF$TaP 0kVqqq&+`Jh/R ~ok?HC?ÝNǀ>寇 9pxq(NV*2qwLd<'34MdjzFj]#Plv>o¾w5ĭ;÷oZhϡyG~|@Iⶆ4߉<EBCtЏfΥg??ODK}7,a/i3ܾ]y ~ⰥØeQNn<ʫ -#obV謯?PZK8tv]_VW ^0&Ifoz+ߌTUn(b ( >~Z]猼64xAUPA65-QM7Eޭ:NkuPugv (&i+ӔvIu?_Ox^W>)PjעTveFKyN# `ޟ"x_|a]~IC& d#9 BcNo^O-Z^wʡe=dŝbel<.!#:kx 4zH&;c, ?x $_Ϊaquvmj2ZI{&Xcz2 R1Ng8-o ҏ&J!xP:o'myݼM']x|׺z 9q%pymI/ .ɼQp]OAu6iqn#?/4N .?z(hKO9 օZbԏxtM',r1GIQ_Gh:FZVWZ>3;N*9#s^)wgeygݬ[iJ=YW2 zʾAZ_|a/C+ca`^t9&PJǩTkkJ{ۛ˹2M<F'%$5_>WNy"_謼T6$LsEV0Ax:i>)u[^|!'?Z-~q*|Cm=/ ]ϕ,$e983_IVgor㖆>+>ܓOIz&|_?^2?/|3xangr¨,q~.ڞ m񆶤jn|-|Nzҫ!x?gߍ`wTдY1ITN{^8G+יW1N\W4?+rsNdΗ?xρz1-Hy01|scdVWߎZ̾|4[؜ss"2IAÏUϰx;Ci-֡7/.FFv 9ŒפR\s>ϗo_1oWE$׫nbÚ<+kkHM&q"4I)xp1Эc˻xyr5TˍateG8Kt3߳ş>1o|->3Р}ؒksGn'Z߄?G[m 61tӆ<}_iο?f__Q8%u:0 4|,^+x*6oc pIb8n ~CxkxD'PVAE>+ue3߆l.K`T~ϡ–[/0Y^(eMILǿva* |'.IYv~#X<6%oNz_/i._EmO}+*ׇgOմWVw,̇0!zM&˧RP]5/5g-a8$Dz$N@we|r8g|_sMxS\.*jQ&p$|y;_5@i_~þ=֛=1c m،AB |+]*]?e>?U90pʸ 23O4r׬%x◁bIxKl $ FvKa\]~Bx3/FY[G(MN$JmǗyPOcuK+үXGo>&q ۾x$n\"0(3QPaz>?Yn+eS=bFڟU7SӵU5 -WLKmwi: z2:Pj}bip$%fAES$((((((((((k[Ѽ7MC^Z&{CPK{{hWG!UG WKu}ooJ>#f07u+g΅ۜ=8w@ J8ɤ?Y~1vM|/]#:O+l^ϗoIrp2k??:kWfYg ʺnG*(hZ>9|P'ǯxZ.\yl$F-4PUq3xoDM;DӭQXח>ǖ>_ q zxO%_>/豞q&/8o zٯyE zGϾx qi0$˩>rI>[s, ]!+(((㜱|`i(:gv9z^[an;/c42%.%aaɎkk?8NŸ 4 !;t($|Fܟ)T6yNHOO-A׻u.]4s̰pHc3$8UrM~|(> }s:[Nm)h/4Ԑ\4=",t:;K+h QDA@76&l–9pN[:DEg?u[Qoǁty[V5]QGh>>hvXGh>>h5fo:Iy|dTNwCH;׌|b]bWw,P~$Xx^v 2mH3!ɬpIM~W MgVJk_>8(((((((((((((((((((B|.um~1{4;Mu,r93ߍ|#o<+-.(2| _4<6~7Wc?]Os#ü}W. :ʽW{9_G$}[}t=e㘲L'gxU Dk]3? ]w \dm| uuIJug׿a/ >ůxAƑ^YPA93kPW|~f C}O>#t8?R+F?sM_RZ>~| c P1mψ0ɑlb$?݌ nFk ?kֹTw#xÚ|K[(4m4K8 @ 2Q_WCBcN G?͸63c13]ܟ2kUg],:<#m4|NP-6feq"1?xAI^Ǚ@ߨ=^~_J HU:BfӼɒK2FO>djTG⯎_[^/jj$c"=Jp2T߅*[)$%y==O/:Rx\K*[K(J:\hmsdUЯ9TF%${f}D 6Q oсM:쎺JSגoKy1}q_<֭KN?5\>y;ق{)|ʝv= 5qBUB7dǐ}0k/]FOeN֧9Vk?KKB,3V.zABXO?ocr8:x&\~'5 ^&iWVqTd&Ml6 IV=`j)yԄhnǒteuKJסHʹ)~8L~,oDz?4ePڝ6 /XW=3XXj_ή_I5 ;r{W>,G-%xKu^~iOAIY{p嗜o;u>$=֙i ֧}pa$Xw|M>xc+(STTWzgxӛcr^ 1)UW,[WfnUYc5)ѭ4^ 2s9: U3Í-3Ş񭿄5 Kkq9"_1B/p%1^ώᷴgb4Ǘȷ \mF^\a_=uI-oe7ʴNd쥤ڬh[S/**tk k[{yʌ28 AgWNb9ӓѧfGZ_ҏ/KngTyU(s<wO|OQOv-bB͞`(B+`?`ό>Iu 1;?Bd+/L9TXJ:X s}/xxѝۍ/mA}=e}5+E>~Ӑh /Ï2WrgqK,3_}OG׉[}< |ϲEO:__l?>,(ռ*H.$Sدis(6iG.O>[' exfߕMy;@M%^.Ӧnx\+~Aك\.t_i0̃'/ؿ Ohuh6yᘙrx[y#`"l0`JN KH#1HFelF'Zϖ=pK}_M~Y/ك¯jfC cR~0Ec qώ+ (JR,O`2:*p]+S ( ( ( ( ( (!kka KH#-~>k .bWCyluʎ0}EaSM\!l<u%5%~n~bcx/㇇]wJOŌq)l3?|*5붚*-؟3)8m~񧄧мW/-owfSXgRk~2EŹ2.^UCXe_5ˉ_~}~)_෎¯]G͹D~9Zo m^6m}Y5> 宯V:r໳eAq]|]*.pY'<K|QzN>*(O _㦗$(цem^ǁ8? 8TtW>+ GMӭ(,2qeJv[O>kQQ]N'> |ۯ*œf6A }+YYhx2?9X0pc5KUe#;~? >'{Ǎ$˗%׎y ?:U|['?a7U0_X1ojkI.*cо6ӟ׋l!C7庸3!ϝ@e+-c^_޵G}/=(|((((((((<jg/^ÿ|uw|1|IukֱRKcydcp;/|4gKk-{5fiF_)grzׄi֒?ŭ*+m5yb 0I~Ur澱*|O/x'|)@aqHHc`(˲,%02k8t#QGz'[u?<^WUbcC66jJ4߆h2zo)8>z{|Yľ֏>j49aelw 5~hb}w/y gч89Y3x ^[~+i?Xާ?|AOoUɇXi>N~T}sOĩ<>GqԵA |;E| F>|*Tq՟$.> irH,@Oj<7oo%&SFIa5馮P?,ncڇὪ >).=X&;,;mg~_>\dF~&$oI9h-c|NZǿwԧ_ ^xC³9Mw]zU3 7J BVl?nUNsRRLVvVzvimae !q(ῂm5[Cb'Clx'5ƨ(HD YJR0&_{ĭWH%.}gG/nqsoJ?i;;O2}l5<}@ͺ6 R21_. @%)w<]ifKJc[ʰO^ @־xo~:N@02F-2^4xh<^ETn*4u;aդҺj0]7P_k;PU1lsqk7i٧u/Z8fzv7[8P<3vku5I^ofl|?]BEׁ?h!x֮(Xάw91Tu\|:]JEW%Ҟ掊Z?C'y?hwd?Qp3T,OZ o఺.5/Lw*jך'_4f#!aJ߲{v^% ~5Ωk%y ga%) Fq/ji-~~/|Jl~ Sii ͭY# #!ץ~`>ފCǯWF|-~d߀7Ƨ.v/ucU=MT\*(u,IcWrQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@յ=Fdy,xI5  \cݜ?|R[]U6 [=6mCCJ, ^v.Wc>F'bOHWw6}?xCo~]wH{W鎃h~𥞅#NдkDmean }Mk_AL^߫<_U3:~qivM.&l(O ( -ľKqp-|[Ң+}Ao*(>O"?k9u.ۤ;eeD2ߍ_A+}!4xqSI ʫ^YZE֟[_\\[\$daFV2H k֊_F{9y&28̺Uҋ}.Toc S,+K%u[`ZU({1 +[E|:&/Góü~h/fp4cӖ]/95?Nj/又.lCxcH*B MFt%7kioo#+*Bg[ ̰MbiUIʋnX^/T_JZ;~6mRQkK+WG/ӓ_A sL6HyWdPAp.8P-@vK$\[iEsO~~gx 8f \oguuϐe? 43IZDҴۛ(Wp魏o͟|H_{It2km~mRJMo|: ?[-ƚnѨqMѷr9TVa^S3+/&m^̈Q 澓s[U߯o7ˆ"S/m5示/ zo| >"lu=..-] k~+}v?]ھ@RVF#w $oTW lb߆?.KxzQS"["@%wg}*(<2Jx< ӳWOɤEUEPEPEPEPEPE`^W5x_/>#-%zBN+w)s V2C! K0 >@Wmw >=xoxznuu+ XMc ӗތALմ t/mvL{A'IDlI 51d[4R++ƮeX=ijyW߂,ff~UWɎW ٯfឯuo.ȥdyLRh,FW̴t|/fV* -I_&>t|  ~c ?f5 AWe?~׫i|]&\&fe9$,cC~վo'mLZ 7vwoV]]2Q1ڧRzW[z:.f~Q^-ÿz'Ae*nD";㒣8GqԅHE幦0NQVw—4;]Ѯe͕ ЫߌO/g|7Zn Чx7K !=(Rh+4p-Z:ѯG#!CW%SNkwZ]ZIl-_5uhDmBM :HHĄOB=</ĺ$%Ք¶2QGVp+֠P~u.яE28~_?f|ASEBZ{+ebsc˼NsDkׁ3lN|q^k[O89ĿjK]7[%&~_^]gN;kfg܃.+BN IC<2IVG <6cН5GkxϪgM-$T=Q^EPEPEPEPEPEP-&뿶_tMb-/RF.61aeH`p>|S׼ , mlmu;)׳*[6!>_ݟsd+?7WiV0<]glηq < G$#Ne׃]5_Z{sG?00N_T9-a+iOɿuH>e3eTipRmԋJJrZJ)R榭zj(,O |vjږmxqA =uhsciqj P;4,7;m^0+mf_q=|B $_fK=]NOkZ$j%c7KupNS(+Ut{)٪' iETUQתڏ {V6Q{uMue<}`+p1һk+u&,j}Ury3#yڵ}(9>y7~GW[XMVK#y({ڃ&#O⋝cM:TƙvZg1<`8q_xZ&& | {E@p=2#ⷵ_ >M^/C?Z1a30`d3-iڗijV=#o;xsq50vtV oMxx3ޱEC_485"IqW޵%WSyI# 6'ҿ^:q4k(ZcsP5KXi-IJ0*H?ZE1 Qҗ.G*Thʟً #wSi)soQBSB ]`na,֫KK[ .%G(ªTV(t ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (' jĖl!kM6/cE+*уI(C+ʱ*\)T7e&ߒZ_(|t|J{/F L>Ls_ xj/o xU˺eϔn-Ԏv!_F |G)#xq xU9WNYwIiQÜJ88~׎R{I'ji=VҺzYrq{/!? L`ZzslǜWw7G{}CK?%p]阢 X(4 qUE8%zo PW.֧qqiZ*4Mh[=ھEWџQ@Q@Q@U=CQRo>=Q,@$u4r^hͻɻYkm"EPEP_~l>4.%iK"_x晨%5Ȧ:+7Ph[?7H*kk^4:+6UB02d9 8CÍOEqx:wnq |+P< )  >7/|?k 4^mu=p\~6N2 ?UW7E+K^z?|RMN򏡣>\஫epri+-үdgo񶖣Vǯxd25L_ii3/Q{U.fҎhQVnow} Q5?\x{Z_@M Q>1&#l~[P_aoL>Ow7J/K~IB4Ep(aou יS/=?-̼8xlDo{zSzzE}Dg<# I;^4Đ"4mKĿ.|coL>qH6Z~}΢ɦ?uؤ_Uܸ9x[=H9YrW\G wGg?8ϧzuwҊaXj5^j:}bK{YHSѕGu1M;QE1|q~|qFf1NO8l Z_M madYg!Q,G2cSQSG4!I#C+ v̸j"*u?hslS;WT; t+|3S-45i4[s_VO ~; &qLbD?wO/60Tc^NkO ߴWk_|}֯ +l}ϖn.vHKt}+3/R:Z[xƔ|WQ97jy~Q^Qoo'D wK2xİFx2zւ9)'jkj_eO>&mQ$VA2Kv汯¾!s|1R/4? IoG66 z{AẔL-S3|Y4ӎ墂kP W漇C ۴Mcp8̀08F+_: d1ۼ~=F K x;熾].%c*V./n?U##޾'/-dӷ+l-Ӫ?]þἾ~BsɾZ8,.iR t%4VI)6gks5O x:?ɎR{fǗ,R? Ѿ0Ϣht+}#vi4Þ>s $p+_VA'%O 钾jZvQ@$~^e|AkZE}١OU4>{>JsG9o 8N|)Xjг4Q+IY?敬}Iᗌ>*kqGZyo@y&?*2G9`O7<h=o0˔M!۟2Al3_Eύ-bŪh)0o̎ETH2I>b6?$#O֍\MJRm|Q^i[ |iWz7<=U&|bPdLs5f8/ sG/>~ּ\nD+iмx&;(?- U$>zti$m%ݶGWucŨkƩ#7 -'Z˒L[vrVLWW|M3@ 01t| %M:h. -5(>`__Uޣ{OΤǭ<'éZL#[8 _y\ό|6ռ%:-OD`1\B㑞a M'0E>;5ׁ5^;u'18o2#aM###S5ˢh~ oN*}BHO'%x!q;5ox.qubK#K֗89+[r.]<PI OR's\SpwtѺ[H2ϊbSkY𮙩}~nr p8&i,tiUhyC(_Gt$g׾%<-#p!15HpUO3eG|$W׈BhB{>y'ˏ07!kbي&n4oSsivr$;D,yUmsI,^c4%Ѿ}S6 iN>|]5Fג W>?m<9 Ll?sgcy9czkHB0U?qVNRmݶm[ (((((+?)yu+?)yu`Og7?"_|;FX多T2y09ʅ#9W~,1o~4˲Giw"Xî7Fde5goL?|9xĞ'y59WF `Qn!u+HY pg {x CJ S+{ E,U2L @2? ]7/bĦO.Uw*$Fd)#(7'bld3r_,ki, K$嫰<a|N_Z(ϫ\xrHbnJ'f g>$g߷?:fgA ic-ԳEs7:ݍ= v~~ܟG액~XFGm/-o.mԎe⺉eT+P'knOյ9Vl:HI%U$kॆ1AeR  _F? <ȑMU,8tە6(>տ'LïhGQu[c )WvH9e᰺tIcS(lffom0=Qw6F޵Ɵ?-uj2xS%ĖX+`)G8#1^}l*\4V~mxxb |=]~c o;_亱ž(}k!k;Da\7o |AvL4ow%n$ bnX-rWoo|+]x'Ѿ%?t/,e`hm+*/B>?iYᛣ)+C2نG]˂evaΚKONkO?Nq}}X`[NqIKmO~_Z/ \I 6^laո`1ǁ|i|~=ܗ^E‰ 2wcw>'|=>-?lxŞ+%ЇO~~9.%ůju 5fmL@݈=5r2,:켽l"ץ*QW z]7{j}m}WSG=M|?gqdxvk-?#a[ƣ-`7GDOZwZ]8#`G >F9VВz/O[Mw3g͎xrL׬5.vmyRB_9jk5x ^~Xei̙P-e-'' K Ya[ğux4 "OF7Bsa~^/4]F, iVH_[XiƜ`ꩴ-!hŷuѹCp8,1eꔱx|UHAʥ5)(pr'UJ/⦶?JAM9Fυe@ekgݨ^d}gNGMq^ rĜk%V܏KYZZgUoz#5fuS:F)%ъbE`t5epH2#fĺoh}ry<($QF.X2zns&H4~iCi,'ֿ[P;ؕih< ~ڿQ_x7᦯SN,mNEa24(lm]͊MH߃xMѴ-2;M>ơ4Aª ,JF[^|h vѾvIuӢ+?E ( (O< u6Kb2Xhjz2~vo8OeWǟ?~m͟|RV= LH!mҲdlb!#@k_'% ';.uU17e"+8F Qj0M'eftcҜKt$BI\sXկ {9<~%-we0^u%VR*s&k o|Ea㸱 mJ.fujI|ųB!=#Ct Yhh=B+; d t#@TzhuVNz- I#""44P @aOU..MnSQ]]roҍߥ\ {~l*GG(\uh~(ML;،W~j·]a7 [WX߳_k%0hW2*\l}l7GZSœ$a W^?a_>8_/ /H/0 3՘<F1_?iς_?~xMק <3DχP ۼ~7Z|J}wOx[DwnGlu;UޱJnl?wͻYjS,2R62ZҢ)E>~DW^+!ӅtMnvuDP4yxG@˳j 4zkmZGQE}W; xc -3zw 3Xg 36*ƭ)8.f٦Lx,2Um.`[]doJA#9v*o_?<5 tui}g~אY_y{ۘЭoogcnBzupl}bt|B~5`s,28nVx8K\s^ 53:% 6t*yh/I~^1j^.h>eeqǒo_?%-ȌO4.|0scmx{U_g^ Y c{OR]W),)$nFNCЃSOZQEQEq:ெ~ľ;&>R|Ҷ34yTT qr]YӃ1uC9F)dx7Cg_f= LUN k4W:{V v'SR&Z>m#7ßZ-=YxZͱx#$VԆV+>8&l֏C<$.'Ԥ97c2~&i1lcN=M>7ωYh^(%"u]6' |3h֕Կ(~/w.:uV8E?ҏɧG(ܟunU\2Pzbt(绺>Aыj>A3;9r: 5KO CLjmeY^`n#cIp$c'{ƶ~6u^_|}W!}4]NY# c\/RgG%%lgs(qΣrOj%N7oܾjW;]oBÃ7UBT xW~ x.Z7/  <7_gڋ /M_ i1pe۾A< ׃Lf?0h뭾잯w?ZȾ7\Ff:٧-kiԜ/N7M?v@ wUG?4q/TqU})B ɻtKc̾ |I*~@u˩jڞ~ Kwu3P"@H +OxW_1mQ5?ppr#CH8ۯ|ox&Y \VALYcy'9#?| + ?~" 3JX]?CW+8(Ui+ EnOD.g +'~cڄdʆvuB5|it hUFA&aR9l '+1ylCeuĕ?ڪr꺿7+W0]mu76ҡIbC# _eM2Q"^ Q]~$-~|_ƚOt]G칱r3@ؒu-O5_ ɣxF4$FznFdo_?fxQ,6W]iǗu1ѫ_]p'Foˇm?&Iiʊ@௞Th?>Ɵ+1wo%竮I"%R~:=߂E,na YY ^j_/dZj ]nmo_/-iZ)hXZ6;nmԟC:BG+Q@Q@Q@Q@Q@Q@Q@Q@V~iS3~ ޓiOjC #-p%W ]~ǿ~[A}aKsmj_Ϛ[2YeBw(w?7kýsNbiwBv6o)uS(?R zov 5u 6Dr\Kp5]dd3;Qz(ibχ4u(<7'vPVIWT+g/oͮ[дs& $W;w#g9%(5/ /^9XĐ0~JiP#odIG>jiޜZ+wd}C߄A:¾-LWiSWVC?7X#[Laa|[X<|D7m"sqqP ¾Ҵ/CiZVl--!X}T+bq?|~d7M]K)^=Oym_ĩ|~mߛa_)ڷtZ[_銱:$݌MI&)23pO?og~ŗچ7DRE}ŧCunS/ЉC|6ХԙT{ ߍcU3lq-o[2q ;?޺1Gz⭀R\YZ332LҿgMӭ?)7_L^AݛKa!R9 NƷ^xSšXkq]n&_/a x$U^l  >M/qFs׌q~>= IuxxgZ]@:!`88f}Zq/֤d.?(< de-|]໔Q=Cwn#$ 7Z/x? <[=jZ h+EL.;.ߔp{jW\ź*ӣ,F9[8 P͜ xu_(T| J mg([[;IF!NQrMp:5W[l?=.?#ΰ䄪CTzS;)o[sЬw@ʊWiZl kDh{|ڃ^ #Ѽ*"bc-<ס|jZw>2j:¯[iuKBWqe`JR1!W*|coyuS◰{_ݏOY[L?~Ӿ$m:|C/kk` 1iǯ޾2׈~$~'ԭ>s>.Pw`{yPm#z~~ g[Zj"|IWP6r Hˌ$`B }OL{<OY_+Ï)aaχ<{1?K&]8f\1 4dj͎qVI>-:W'YY%oG|/~&AgM+H4V}fXȈ. 󐊤 ć1ZEU ?bwW:pծ82[ڍ |K$DEU-WrlO"(Ww{^ߖ$!'bQҿ[> S#e_O elݔl9[>lݔl9[>lݔl9[>lݔl9[>lݕzGl~5Fů{XY}0H}oxg]𦷧T,nê0cᧂ~&xT3Э5hTFˋb9̇CAW>(1| mǍ>xU4xvK6\\睃.lN~?3}aW_Ƃ_m.m#{/B?7u \pw-,:Wv]uk<76Ҡx# ;Z7NWa궒i^&+sG*.mGs&[sJv?<,}qErcp|]'Nh} ^orD]b]KiWjw^O-[? MK0<98FI$~O۟/ho%VV~诡fCȯnm,&ÝE#YOaw_Yz)X᫡ LHdTG(205T$zKzz8sqVXlW\F$ԤyFGzo mHMg2zrGc\ߊ>3|&]?4o,aV *_J:_mB-2)Ͼ?*&O[|J~1PY_irS?k>#8$pӌ9Gk +ۿsZv8Uށsycm"~Ҿ,4[ Ӱ:-"Ǘds_ g um_V-sz8BYO{]L8wKhF ׫&r^ BRV&t{/SϾ,/?wwOtc|Ҷ^Fbq`q^EB K|v"xUGRܤۓ}z+C((+~2M@|/Z^(nkYgBV.Fwj(Cqhׄq[} n8쌌_vhXYiZ]+ 0F `U( 8?zLgH'W[x&;MmwƑm 6s+&Ǩ]i_?fWAKN^lI>y)$*?v?H=n+ϱBS$A=:97 nM5⡦[k^w &餖k$%ЅliqvU&ݥ毢?XC2uꗺJK+z3i~-moiz\[`3;Gjk3|$Ǫ6>՞}[º'tREBpd>NO6T # {:u#+Uև0q6N]OѳEG99o$Qǘo>OOky"$QY<#wSy5;LC.S7} |yHl]O_ C ÌInI4E7JVE5dp0FA`sm/xc<J^ւr{/ӟ2|HWៅ:40|ռk~֮ǩ~U%\$*3_|Y|3s"Kx@o_Dy8dk{ Q|>j>DVW%fL̻1WsJ={=[ (jNZIwI/8?hovM[IK[.뀪?ue9RY5蟤Q@Q@Q@Q@U{nHG$($ߊqM!6,QUnteY\C;U$v`j(C [j뮋mY>Hg?ŏl/{[{>kK{yWkt#~ݗ~[ qf?p(NТ((((((((ٶXv*x.XW7:׿~G~~~?iڴ{-㿝Gȷt^f;K q \[RGe4^?uy Ւ Ӄ{{X|5Rxno3Jʅx$B4p}һUaR pwOT~Wjaq$M;4((((((((lP;V:dwŞ-+L1 zO/+ >\sYU Q曲<;eXgT຿-WgїWV:t0YBy$jK3 hh%Sd2ԝXF#QNcjf^#Dڴw"L,c;\sTҾM;|:Ik ֕l&%5>qϔ>Kׅj#%?3X8=ܢհ_M{_zg>.nl5-_G2ÍW?s'Ï5ѼZh<7Mrp3讬6 V<$n4VRomw ( ( ( ( ()vW^cgp7Vp 2:0!A`w? #&k^m>6OЪǒv ?9e&tVW? -RsgjK$DHum~QEQEQE~qͿo xwO?^#~)N_K畋HW ]xÿ|N/-gLveۘ#nKRT ]~̪FA`Lyw6-ô*ŧRI8Xn\;ӛF\C||<8J<^]牵BZ9A;s})y>~7?gVKc_^-xbO7[QtuPdHd`_'|M4|Cŏ ;Z Oi֓yѺ J*][<:n홪Sfϼٷ'^o_FmzV-wP1Dg >C~fϼSgOA;C տMd-M>0p 7#`+?^oWýO3W ,Pw/ $(X| >뿳o?Oҏ.uVV J42{ui p2GH=86}+wY~_ m xV÷pjk]Kp],Q5bRoۑGa_7a;KڇFh)cVHcN0j˿ٷ'GmW. \a?ݷ]G!7 M~i?ot!l}iz[G)KL+ݤѼ2ShCڳ6}+ w*{h2TΝyxRn:lV19W*5Y|XyZ/Z\|KtXGCXd-uD/tCn#>y>~:cgxeTQ,95|[s@3Vj"D(4:4jf>2B}y>j>>Agy$$9|'=x~otK_)cOtERHT`ZF]Sτu'I5+?zp,[icweJk䐮饎t֑Gi7?#kϵTuv)Ё26C_|_-{~Ė촕u  fkf #HcTHkNaFs:a02mڞ:9Z?%dZ/Mw_v*A5"pk߳V o~l>+4(((?_ïV6^(e޹ Iݔt68 D?O쑫r|6ͧOVOk!Rq:d,UCw_ ˞/];]M+jZ)'׫m~+C-pѵ@20~\s_FWc_xu6_쨇>O|^?goxCá[\ɺ,+2$Sbh>\B>DžKlj6U_[S_<Oß mD sc'}x25q] Ql<-wO悊(:((((+_~Ӟ.V~!h>-={ڭ% J$fW,(ļz}_8?nऺċ-jܵcM0h_l,[ |3|7OL[.fh6"k2pA'+W]-wgo i<5c|@؎O %lzN6#9 i/P7 O|q>Ԓ{hfyX*e$Xfe w:g.~+~Ӿn-M7썠DE-pM~I|M|&Ԧy\|`GHM^:fC3\[pi FUxic?>|zм3a};xz<]~qYȭdҞ~m@դWťk,iwM)Y6cNz:K IVS Wʟ FOnekm7gV6w60=~[ \БXOk57|u۹/!=O!:Z\iI$p $O=ji?g5KoH!x=rGtP1cm߈ ׇ5FèirЧ[ˍ³n=3x^d;iCGj,> @T aD.P` H 0?cw45-m)r]jvv> ݱ&K) +;7VZ'Z*)5gI__I4٦@mJK* @pÂCc W_x_K׾ש35sj$m/pۋ7猒[j?xB<_3ox|{HFsqn>N*#yVg:WQћD19fQ4dT(= _qY_ x]ZYzs28jQùk%'{-Tw?žm!#E3 9u>O|'_ ze>ߧE{ۏ\5™ (|2jſ¯aҾ?PK\` HI&{?VMʤҳj 䓖Km' K N>OO|'8=o.)@x$f) W|:kۄw ƸEڶ &,2H)*`M%ۧf|//TcR)%{=S(+jNDWp4כriGc"?~ ~8ioC% ( ( ( ( ?J?_֥E<\m:XH#*FiJj3R}"S̾[᧹hϑEϚ㌧:z`*dqP$Q"G(TD @aOط5k,*T{Q\XQEQEQEQEQEQEQEQEQEQEW +*|O I֦& pCG2gXv#"**҅H8M]=:8F OH5(i5枧⇀<}/|C^[LgGLom6HF? τ"=WWCw6O̎30 ;>Wzɖ5r _*ǿGxjm-c.DC'eէ)po@Xrc_c&~NӘO W8MJM:O]>~~͗'mDKx컷0'}+ Y^5tetae9z4{J_]8π}O6úSޱ-$;1QEzQ@Q@Q@V'KxK—:牵{ I~``3Տe'JέXRV^lۯ4w? =kNZNw?DqqŽW_l/x51GIde |9Ujoγ?g^u+ˤEzeSqq}zc:W<|K~!s:po5-)Cus׾6uQu/0N˩'x0G>Z`G^8_ZԐxīKKۯs)jNh~𵮉&Em#E8IO$MlU7=g/z#'ޗV;9X_| T‘ƋjUT`((D4((((>~t?KUk+ZŠYEq0,ۘI,`&ؘgq9#{?]ৃyA}mxDaEY@+@f-oHy^K*ßGᎏ/?< i/|auy-᳂9T\2S#u9_OJo~Ծu+ z\Ayg-KP)"rUh_ |=uip..5mhܪ?iAU_5M3Dj6FeOy}{po $yor?o x}bmM4˛a)qlved| 'x5ǃ46ƫ~3wa2gY0Tqj$[r26DjXB~}2((( )K? ~芯9C)@Anw̟ NM4i-zY$ip{&k=-?zF6g#lh,_ac߁u_xa=/Mjn'.]~x7E-m3[s6 wJd-yn+Vʜ 'M#Yh~.m}pVVPC)־b)?r~k\6BYd,׆)숾'׊_ix9IOUMك'<&~^=}G[v4 ~:dML( Q-"*. ywo;||Wᾙ[5ZżL0 K!0Ἵ"5!-%>W?Hku~^6^PgpԘScךgd! _Hh6ŏ? ~9x/Ji2I5+.?"dV#89 7̳EA-GupE+C~Go'_3,x^_3ϕGwsS##~~Ng᎕iZA4QI xy^C\~l]y~!Ҭ.u3~NicNrǕGv ==nGk=ީqa htrr9'_z/ï{㏍>$[ ^"Vi3f*|_ |:/;xb4X7H7n߸䜜ϷIv?5|Ex6c"{|]7ǐ4zUޭnRvXFnˑ$W[?@4h!o2s_/~lnti <ftH#g&oʞmH+Wry`) <7-~>Au;M{L7Zi^ᵖV2bi2GM,kE˯Zj旿Ѭ-(?y <^s]R_,|)'Ew6+;E3DHbi88澻%OZH>u/5 .%V! 쪤+E 8_!j>.sOA~In%Cca밍w7SA_z }_>"+v'i \VҺ7#fy{F>`p?5׶?i #CF˥\Md! *g$VpF}լzƉ BĂhTE|biOh7u=,Zt?*dZ/Mw_v*A5"pk߳V [_袊3 ( ( ( ( xVD.Lg0Gc[tRi5fgV*i4i꟪?:~"Ǟ 4 7eIs#pB8]퍭xsg+;Qq VF)>!_U ⯇~ɑ j;_(<9Rz2x S|wt~WV/+ ]7)[lv:t?Z[a7 n#zt V~]~:~'o=wP/Au [9ů"@H?l_G|JA<ľ|71d|Y䬹e?Fu$RXi<.#/8Oo~I}E5$$HC+)`z})蟦Q@Q@Q@~PCc*~:Z>Ro ү7tP2t?W3#oٟ_ e=+`觕#4&8?h8'i5Y;jn.n&Oʈ 8QKO(ME{S ó[5GOlLƼ|WKVjWh~~D\rKɤXѩw'BIžzwv? oL=eдHn]9N3J~D|\|{~>|TTњuɼ[˃YOYX(q>U|y5-]hLsyAx{W1#wM ]R:ߴpȗw3]Ÿ>\Hߏ>۠r|6B%NQwdw? 8|ֿxcqŢxMG¾'>Vy<!X1>|WoZhn?0 Ƕ޼pO|>=;oiq\A͞9 R:A!xڷck1F1tj^|v<ӧ*>FQ D-~/wH~?S}xo/m/5 in@ w|y2/&PRBOݜ kԡ4`, &ppy7:6d,Dϗ:XKY6'bQ[%-]🎾&9mdl_o?Cw/S֓|HB[OJ3)> O5\+U+ KFI?a٠ÿâw=SVM^(J}ɯ R2< |mu: 3EB;.HO0bA,@xrg}a[隅QcYg*YUvJ9𕬗2ƟQ{c[ 9;?!'ZեT{5ws:P.(a9k<<ސ$QM٧_挾FG"7?WyʺuْkR ~Py5}]B=k?>yq8ߣ[KQjKɅQ]Q@2I#I"@OA^}7⇅>6Ğ*Ӕ\dG>E~vͫ|}|Q= l$xc8>P05ʼnƓPKO>x ֎7_?7+ڟB|]>Eh쒲_$QEQQEQEQEQEQE~3l Go /6y|\GOh sv>|Wshx xuuHb-e볻'|#xo-|*+S7Z )y#ncu,ԔnHʟ|ZAoζyheZ?}Z𗆭?9񵾍cu/\i׺-%DVV˒s}_^-j:^-R+=wR^<`@#@Hs7e}Sᅿ7~$Y]FM$X4~lyEgFۇ8ƿ"?ړi_>Ckطů xFmG:=Cq#J4m 9xE|]o ]xo񷇧*Ri{f%KYLZȢ{ izmΫqigܜrȁLѠ(( )K? }*?x'>(Ҭ<'"cC1 2B&RfOC_6|zҫM}C+G_ZGʼng? |gCWc,wr6vڃo|%&D?V~X/ۯ+0X>3|Tv~(mZEƭd`3;n#iW *+8\>kno2Zum":8 EiZ*sY͚5`6zFEE >(?|WCir印>;UA]D!ivc7~!l~po65܃TALoL[S[6=ʇREpݪ=_Զkw+'ẽ:uk.OYBb.4i9Bo}cZλ{&ufy#FD|'VZI^Qgu/k+,>q,=>rwUʇy22'cI"܍ d\eS9<ѪF%5?V5?WC&-bbןT艇qֱ>񭛎qyNkmuKT: ~}D?ȴ_-i?aoCbUko !&EkuI go?_p͟;}_EWўhQEQEQEQEQEQEWf~ө"--Dg͎++*aVQ^WrUk.mmt-໴3MtHVSv5şؿ̾!Ux k}G F2zם1mi>h{\/e>_oފs>梿2<)I|]!|ڶy6>ܨ76v]'l+|G_į clS{f?,g Q VJG}w qWJtG54_;Q]مQ@Q@Q@TS73EooY\*"I<=hi+ZQ x/S+ִ Ih'{*Oa_!|Z1ɧ>_1 A4= x~2x|3WBp1\睇96`(i~ ՟f#Ʈ!r:?Zkp'Ls/#u7&5ͼt-\Ks">~w: =j[dͣxoy>tq_eែ>xTi> Э4\c}$cׂp3)C/s>!>êqoTZ-)C?k=F|?]#Clt.6ig cTb$GpEF*lW//x;/|+ >0Husc ÐyWQE2_FW׺?;KE+i矖Yf>я@++"M6m5BI;fy7G?F7=EtRi=ȝ8ZJ\>-8k٫χ_t?6YnaA,BF>$>gM_H~ GJ3xsTq$ڷlMj?OM˦_%RSŚ\?B\V;d [ N7p_FNQVm%(5$l?c>__>w\EK3;87+aZG]tx}ᇇ'Å5i{m*sȸۺw%c/5~F'RkkdA^e'傈:1WƉ𖟠xsH4  ZcG+YmUue~dxLҮg:~Ҵyjww٣Wd| Ew;d]gZ_XH9ͥ,AH^@FTq_Q]AEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPE^ s~>V ZԵ`Rs 2X4Q_Sb(<[&$Tk-=s+ds_V>*BzOh[ϝV" .m;p21 ?xw?ž8&}qnv#O yjS{Ljk(&m.4]NH43$ͳ2ÎYtGdA-N[4Nޤ+xF4Kkw?~=UngsJOhEY;;+$믑?3]+UsJO}_k_QočMW\o(My᱐m`_O+}N {Ϳnt.igOYdu3**)^=eqI5v՟jf=/^oMRq 9Ue`A h2X`2 C WAxQujoFߦH25PB?og,OiR<7 dHp;Bz@>> ='U:!V5"D@|W5~B^O9$"|_DgtY?,6~_#B"aVizhD}#d9OT.'?9$ܒWm~ۡs'E:v85{#/Z,vau+EyG+c *ʵG+Dɽ">Ե=7En]cPtX̗70£;G5_(O? uImZi<?ıZgïڣ[a-g9#}oG93}4 Z }PcD«L $I90/2Ѫj/u.LA^ʯ#0+ = uK!N^ 5υ_$u7:gRqUF w}3'ߍotZ 5Y_3PaqaBWzv7:m鷖se)PVRC |k;#bi5oY5Ė=.\w Uo(YL8}8yiȇnp7J晦Xa)<Q#| |op%౏l>"WjUuײ}@g+=x2ڤܹm? '=sH0X>2BjK? ~8w,i^^qmyQ]g΅Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@R2&:('&5ٓ0M!~9O_36zOq߭ݥ[JLwAUgU&EW>qWĿS|E|iiR V|7@Av6U;;|CwF|I*[h.|6$eiGR$1.,qb*m!H֛TAK9 mڨQF?Q(C\RXnI/kYW_| yO;ڷb<9ehO `+yR+TI_zs־O&RM7@na-2:b? ekUtI\N4g9(xd8e 8:|"tkx~-xN[mճ}PBX& P&I;rkjoI`;3KI| kl~O𧈯M˥u&]}w? SM?WJ^+5hB!W91=yQg/}.#`5*3%oAmWnX=nW\iůvF|n}rڴxR'k{}rź?/qb%Z`;Z7m``њK9YRğn~MbOUP&-bbןT艇qֱ>񭛎qyNkmuKT: ~}D?ȴ_-i?aoCbUko !&EkuI go?_p͟;}_EWўhQEQEQEQEQEQEQEQExτм[k\a%MFe Z㯇+o|[}˾zY1_W.'Jĵ'=JXrԏR>];myj4j8ž7F}J2~JմsjeoeUVRA4GŽWTHkDEyze5v+|SD7ܷ3< W`P#zqG9b05Tkt(d(9c_ >1l%d-oa.}|Ǟ7(E| /?ho?ރxsv\\۾ۏ,煅HjǑW'N]q7e<ZiAsM4>L;QƟ-76(-y9Xsš-hVY_nW!ߺz=5?\48!oO;6 iHQp: |N,~U|%{*5 *RG_cƽ+ҥJd~e,JJD}vaEVQEQEQ^OO_ &|_/^woE'BF42 X y+_?}+1R:pԯ|? o1i8VRw.~`/WaԒ\6wvI,ۨ?0'4^aOzl^9×)mc݋́uN*L$(((((((((((((((no?Hu L'j4O iɃ vv( ; WK>=x%iJZþ2i@7ATz#^ah>kMko)q{8#xQ}/al¾XT'*qJ-zWVt º^C:uwS$ƥ*OҿfOi.< g{%<8R;{`H&qȣ|~AڂTd/6^!'tUӴȶW w Gɰ~ f4y}Y?N$!p~bgs_O]]bxWGOܪx_>34BRBEkᎄ7@~;> x3)yό5L֟Ot9.etDurdDu?.ܲ,pT~OR 5rKwemuۧ]u?1 հ}l 8šyVw#'to_]焾h~ z_ʽᢄ!r0G¿ 5GYom9 < }hZ/+e{JM1 J;*Vkqjl*[SKԩI7!@:_?Q WfҥUڄ'W?hⲝtkz߆Jsoy]ƞ1dVy~QHe  ;צ~UxUцXdiP`?M޿|6[C˷¿XIF5ׇ>߲ڇ˲18ʓ$ G_5h-}M[qenE Vdu;mZфRkq/`J !_9h%\$Ο#{Mk3? <ˁ_ZWv"D}3?Xk^2<kOg;UWK_[ qRg' [VTAqvikt0*((((((((( )K? ~tw̟ NJm W/du}sM[MYfU.?m?{kxwBZL`JFup_viY\ Z x;Dž/RM_~?~?[Q֯lؤ#m-k%2Eyr${6VzD!ۯ9kB(u\9!TW>$hm e"]+P}8 RFzm=+ொOF>7m LQoH!H n2Q]ԣைIxź-m?$<8p+_υ/ᾳmSߴ~ŬeKX@ah/9*o?f#~*|+xw\/.|3O-on[[{6$+uCe@ Jz~S[j?/ok#?/k/p覵 G}Z{{9ahT|z DfaD{ 9%rIqaϊ;PX% mk׿W.9sF}ևdžyF3xw,5gKU?4KK =^U߷$PyEqow k 7ڿ;dh6Q-޸ViEgQ*ұ?s*s]òj//Ow?^.ׯq$RHmu'}Pց/ [h~,4M&[HB =rOs[tWVJϩ7FE:VOY?Y=~J(>(((+O}*:ï|>KZ{|.6K"poVrs_U?_st߇/L3Uyѧ't@ax*O?e#w>!5OZn]H3;9J'\_xoksg^dJn.KLI9| O_Y`_Zx~ XULޅTW Ce6Gjtn"iw|a_G-u?ǯ@ fGтesҿ]<~iJ{i_9\xz-؀a0]\&L vfYo>@M_ > ?-@IKkxg#0I$I$$~S?&?R_*V_4QEQEQEQEQEQEQEQEQEQEQEQER 1 dx[_-~kcĺuQyXP)+V  ;VRGiv<)xY|8Y,3 0g8.RvHچzJ.RI]%gQoڗkn= ѵmg?,<ąpy < ˸]mK$ =v7g9GNzW~~=If4&+ybGW#Û5 mfĉ&rh9 Ydr*5SZGU@gx6Zelka%t\0 ڇ|gI} v񯵛˴XR~TE iQV|mL|~k_'_xv3Oso41zcCbUH<1F=]}L;Zӆos>p__< aŔ84SqK˚MEmQOǦhv1YۨL}n*A5k>yg޿9ԛ`ᩨSRI.-Ɵh>0<9}N2G_=̿~-xVRR5 2QYi^J^aG$vB_N.k$׾ 7nzj:JRxhJV]jݫj<(EW'ڜ\371b4_gW$ڮ]?j18դ:'R]bUmbjbkEuWL0YMYOPq]W$5ȻvXS8\5fygŽupa涷d'*|Cƾ&x]3IY±jѩ?/cp= K>9+żG7ydǖtQq:s݃U~SxFuTSyuoF|$dnvMoQE(Twe3.*u $qoC~7}g_^;.-0RF~NkPxk_ Yu/.=%F>j ~9~ȿ ~7u] @JxIVI#g2N|^_'S,iXGW?,Ҏ0jǷV-P<7VPMż)bpFC8 A-~+nal d[YJs셏~| >pM??uiUeϑ' 8 (%^J˯ٟ)ƞ fNW,vZCYA[6tQE}!QEQEQEQEQEQEQEQE])'`ӡқn5ٓ0MA_3t n[v~۵tݫʤt-VN6QCwjNLtϮC0k۵kֽ:Rh暹?;q/lns~Z{N1]e{|FE[F \BWohʧ!oS_cэ]ֹ?>> k?F5sbe|/x L Kq޶:%z*?>dZ/Mw_v*A5"pk߳V и[ϝ>+4(((((((((((((((((+Pjτчn~?[-HU|LN/c|!of,|7w%F4NP|sm.N3^w#i=FHRxW$Zͥ oGo,I濜@·vtP_?fh>I8]V_vv-N4q a?|^qq=/o_$[b?ߴpuW𥮮ڦ+u{$s?@Q@}{k<rx@51/V6rV0yTiN(+&} ˶I5@g*.NN5j(((((((((((+8b?c?AiYog?,6ZK!THodhϺ-I|E r_ܯ::h}.~fxǟk3WnrE?,Q\嘒Iff?Zx;4vh;~xq< j3÷Yc[ec<ğ@qc^մUqPwoV?ӯ8Nfi+JkN2WQfӼ|-k>OV6ʍ򯌲?+_1^zH{76bEEv:}0%K Q`VQUSZ8ӜیvM#eLe\e ZےX"plF@w{!4HI0rj'HSjOcsWZGY5z5\GZ_;⡉yַ< *qSbJVժ"GV*8W?jDV3.#ۧN=~m>taF?ϥam>eR;Rj}O9&=x5fs<#$y?_-W>7η] 4cFisp&XvoOŤv3ZAʹRX@F A k^:)ksb?Ԓ=2}/Ms=vYG9uzY[R2T)ԛm٦ڲkm?o<එ ᧉl+=O h-c_yGQW9T`Jj ngT8du#!Gq^kqun 5x# 3jGOc_$j=ſ ĶՓ}F +64{]g_?63R7[tǂ?LgֲK.xv^^륙ڏ|mi׉:%ӆY)tź W>1;g%"|2{K |@lm8;ISSߌ 3Ě!=OTqٔ??'^ь_y7`ɂ@g'6z+kCF9Nc/R_ޏoչ=:+>% V'`)"o{e=D;OAgl nݦk))##A׽xL7-Vת'c\W% $wח2/m,>)ovoxÒbK i iYVhnQȁYP|oxGozOC-# Ke88 = 7Nc-ΛpL;:،H WeN]pM̰aaҽD!x y'Fkkk?}7{{=Ѽz>Ӕ{#IF~ѫ=Mr'>!F5sb(/0y>a>0y>a>s){>aj}]/k6~A)'ڦN%qֱ>񭛎qqU: b\uKqֹRNno k x̓\J#$f$k̞>ɑh8Z5~~īOOҵ/xBE^5Y7+'QW-(~JM~qY;sF{QE}Q@Q@Q@Q@Q@|+x?o3_ |0.xRyj~Lb 9el3?[W/+[ٺt}]/_ ~S<;wz/m?64qK42.9~ fگχb_KahnEk, ATo|x 폍?฿σ3w_bKĒ>$O|YxB ]GX2zFU5BǾf;_xNڝZiZ ky<1Jd3TOf3|2 c|J#ƾ.׃~;>kF]\ĪTƟ'+D~ IcGh񟅴aXIF @&n+sm/WísQkz 3X>UɄ 0kG1<6ςUi ;[{ʸ-&e 22' xWCao^&M[}qǵn#IG+ mnU=.Ou?`7&`[hbBYݻ@/O$'Y[\^F- 9p|*Lj$;tŞ>_D)_[GE~LxIb:G[/u/^nokI&,8d8rItg${jhOߴ?>|>xŖڔPxb+x6Z+ETyh[82@?DUoxBT񿋼12i뚤6P!+(,pxW<⸥v\Ih9XyDW_OĿ;Lbtַf/ > Ir@ vpÜKS/Y|OQY&vԩ%;Iz+ϳ ƒ*7NJy5{E]>XF0JvV-Ɏ q|k8YЧ:k)~ ƽcya2jdž :ZMwP@VH9aghĚ&ˏ=E !8;W~WGuGk-K$宿y#MUSŧvr:W tIDM|WDˏ>DGk]N$uJNJ:+0c4Nu%NUorSmmō;DYTO*XJݟ5i^[R 65Ċ:{X4}w]IE6[4?W1uunnJC?~5-lmJxK .f9~T|ܜU8p*|b>ykBΖ6ejėiZiR ,', Ox~(KߵhpOn$GpsӜ׉k(JBվo$%b"|p<0'K}ce~:x2_ܭ#Iy,F:z^F֫P[tZ}h|8 V<Ŭ@&89?ۂ$zuKxV.661RqIk!P^~?Cc昹(SXB;M75e\\/ĭRxnYn/,icd*U;XwSK>gq&t_~ ]՚D;fMv[c6 (NkɞGIS?[ڨ:vM(T˼ݒfF\HKT~OlmnWP0x[?LѴԱI0u2*Mխӳ?82G/?k^I%cI{|;o _+^xk»n|I;MIdGw7C_vgکK[XWUB a8`h{r?Ɵq8\Gf5prU4+5y ( d5KWG\Eϋ.ƾyIHIsj'>Qׇ̜x{všj>#{7OⷺfP9t*xVD.Lg0Gc^m\ss|?17Kd^חs6[6r,x⟇?<ȈOI eObkѫ/y xOg}lX/ W0Aqv!g,Kּ9#ߏZ8]^+#[|1C֦S&!r͂W{ E)e=cJ2Z_P[_K|= d{+/~?=sL#2콖c9;W|+|yȯ*==W};;z%inQeWʏj+_Ÿzl0xsXObBcl?cp\⾊idfy&6x<ƄUOWO (((((xٓ0MA_WJ_`?k۠:?rFj-W?mڷ5R:dp+32>-r ٯ26cAM# )hƊTtv[֍ZuA't.oѿTh;7kL|MjkcKģ#B5/֊0Q sƇ(gQQG8X`0z<( `."yQQG8Xc\}^wwOk=$:C^^0>f(s_m? | 5xEIegrXr2P]< ͵-H J&0znIF1Mɾ-O>>~? > ]<дs7+g`*|i Gy a.4prLq'8*8 hOj~d>=5D@ 0 L၏<[/'E f;TT`9#w|g!.<9u6`UZFٷ98#=Z?ট |1>]v4/,&rHAt1NB!4c 1H[ccjۇG^} עvH xCiap>j?}8=Q77;zŏc?o(xvoukwOX0Ff_?Q=c>"'xU4VP%*lm*o?/c̿ /_|Amns'ؾj97ơx\k&Kϋ>3o|K;e=GOP[I 1fCIGlZ#Kj6q]ڻ!RȁАypkJ>Z_9SVNjpjNzLDi5-K$hLh0eW 6W$@\DwM>Xؠv\L3H[-k(((((((((((((((((((((_- )j2ZP]=B?O"?#sU_;[Sy:GtXԱ*7s9 vϝ€<#e$6>7+,XF{E\4DEIRyjX$mZnCQ'<}1+Ol)d9˰I sdM;Gē.\?}"W>ws&8z|hRkGQ-H\nccm&3=tj:{Uө8FQOIh4|f FHT]ލPoݔZ{w߇~xC&8 @-601i> > X,ij$rhʙap=8t_]㸼QmvOkp[l {{Ea@O ӊډY-$O__e{vn>3*?|~o{4Myյ#xc1mɍSs9yx8AoOg-ofX1w]8E/mB !A&m׼kKA{ jDhیGHӥuWRj+|g;t:Tbw+Is%iZjg)[O׼h Q۴~b2tpz#MvWW?n"{/aq8'1!4+kA_$8;NTץS8Fq咺9q>2b n&~]k~:~>(g=sP/Au [9ů"@L+޾~ h;A<xߋÿsl<'2t#7p}~Wc|;^.Ux'79Zt*;OXW:I IVS S cuh[K>b =Los@Rrv3_n&~|[J?LW2z8?vUJm!R\\{|DVz).kEWyQEUK WFuK+MKNqku x*ЊE&VeBr j^?b=4iqe#%{wOy_?lO_wÿcšg=JdQG8Lwq9̍ҿ_ï|N4߆i/Gc|n0ѿHApϳS_?]C* /i1Sw'VЫ⏀+#~~-֯[ g&5<}V7D~V K\ZzqIT%c=0-6eppvz,x'~*m<$6ֶ-XBNS!FIWџ xb  Vy.px8 5f(eTJu$K^:xSV3q1J:u$f ݫx?1VKMFkB(zW:Fh:$ZvaoYGb03{O&_/G3\Kl|S?&[C{%Iz/(\yZyJO=h(r2EFV\" 4Zg<#2wX B2-1gx_HJS0E|/ %Z|CwBlدLTp@xpCI|M}w/yk:9y+x ^[~+i?XjeW ?z+Wſ&U,[Q#2B  >' :oj0u=..-HM5t*dѻEx~yE_i"ﮤEPII׉|]|љ_žC}ʯ+ooď2o߳wلв')o<0s"mi@|)g???੖~ÿ5w?j:q592D8Xb#yj)l]| <@?q7?"<(bY>=ᐮ͞V;nˎHa>#GX~ڟ >Al߅l$ԵM7Gwq!i A8jߋU;|I¿7tznX > i׾ lOWƏw#L{{ e 1I[HJ+BYw4uK$ߎg/kZ˪,v-XnGʂY0 o^)?>24CKmϊ~! r=#ٙfX l?08n1_|~<[?7^WU'2lQG2s< DQu ٛ~~-xsljI]d%[ xci[pP|?^f ʚ[x ؚ_6˫jpvS˶ $),ҝv'p U&m?I>=?Iz^ke"[ITbG˟i"Ǩf}}wB#9t$`Nr:Y\zkuss0qgߪ}OUju^rk|.u#sq_˚Q|̩O)ׇ57qʹ5eVW4WҬ*Ыh9XTUsh:*~2fLeG0?ZDRQ_Y5528IdhTK۸IIn*{Y SH;0GQG^s[[p_>BOCD᳾V=8W?՚#ҜR9hhG\HHe^<^)"^J nD1]#گG +B ʥw._Y[@}+4-]Aim@bzZ(UخaTG5k$/nLE7_qMwSG1K#d'Ҵ{>Cc$ZfejNmm O_S˹yVzGKW~-#1֗:ۍԳ@Z#oi~epmC>(Uk ( ( ( ( ( ( ӧd)4$R0UA5şؿ@«n殛#7ؤq1@^=# Nm5s縋rRRiG5T ~x|siۑ;.ܶO Ax7^-|Jvld0q#g|/͡xDtzsJ# 27)zd|4;y2f,/^ca8V008]+}aGh/'Ҋ+⟀l>3ס' g1a7C|c6)Zu~üKEϚ;5%ë+s ( Og¿z3hkm4аC/$A0y{h)ubўIf9>2̾Uҋi=SsUgR~>%Z|2okBh[c8_g [z$ F}8RI菵p7#_|v>Un4׍˛~rI!o&叟.4?ܟ|w?|qCQ֒]UTw>ߢ_c{ Qn|iK=4 BȆQqs-7E,, ב5}ރb\ǒG,A<ع^Uew>{ .8 z/KtQE}QE])'`ӡ#$imڮ6h`2qdҿ5k=nf%W ؖbxI5Ye"Ko:IrA:?2GҞ? } vk[KR2U#͏Æn5Ź>ExB,g ĽHW|T1ߋZ_h*ҟiyǪ6Q .ᄔCc_!ԭ/e.H0<5NjJIYi?i\c'\=Oh Om < R1\7<#qr\7rno?>|Lm>+|8E߀ww>&(z 2$͟__LE;6|#g/SNvIrw4;'~V`Wkk3/^-:OTBclșNF}-aiowz:u)WYI{^O>;vmHb/<7D\(`9Ldk/C>x?݇~x7bMη=Yg쪽2j6z~MEh>hG^W9^Eh>hGG8G*=:<+Հeid]X<}2wMg]hPغ ymPN^iS?j/C{yoi%vW ? ޿pa}wmiw}Ƴx~P/ip*̇ 5(NYml\ѫ9wxjx8¤=/&RH5R(Q~)=k! fUEIJӯ}zl2ƽtA5~>"xWMm|3wYܵaayfG4G%@9Pz\­f^֥ygҴ|h򏡯ۙY>CG} ,QJ򏡣>Pw}(ϥhGCG({s|k¾Sd u=*XLQ?V:28ih>9Ih7o-RMkf\<Ǥn@NGO#ևKGc998خs,~=|B1?Qxg^lxcFیt'ˎ䆯J {ӟ޳/M?QUf1>7P1 5QXnx~҇J7X?)i}?_ xÖ:Ht,?Y[,x08gkE&"MG:}ZǦKI܀<Ǔ⾘x(((((*)k ,@bO&>9>ֿzx#_Nмe]kPe.Tu;QuU;>+. %_ xcŷ4_{JO,$o!;9rk˾l"/ׁ,hGϜHXͤM#|!?WhoѦ~V߳|15 OO k{GK{k9PhW$\)8\6|a։i>`柩xrMFQ@pcdP!h+Yo|sstu7q[J-+4\ܓ#8Z,+xh_?ᮕ{Hz>Ijk4ID"yFRE|_OG~!{&sjWa7K[(oGGπ^  g⿉ 7zR^[uLG#dn0j~$|KGwk߄zt= sIվMtbH%ddfXn!1ʾ:?lKm.3OկQ7r-QR; d)$pH QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQECUsZjFk%BHnaJIᕔAj~O_'ŭO=7Y)OԴ$>pǫ~~|gg=7+O|@2#c lQ^6GP d_7?g⧂4EQzfYlp,8ٕ>^kpt>hPS VR%kWVfR)"Yڣa\χo"?f~S8=;T#Z:o|UiڄܹwL.ݰ+99C"6u# :;%l#)EvӹMBuR^3,${s$cϛDLц9j:WF}.*Ο)Sia,/TsƁh۟YIaCӥ%FW.gFv4̤D9$$1ʘqCU J]G[+|*dUF}OjT%RvL6 SZv7E+FHvc@$+ka'Oh6S~鉿kuOxmO_LFw8Aw_]ā_]CҝW{?O? ùaiԫ>Q_6۲MB|o4۟6;05mJJϓÃq#?cxjo{65Z5l%ߕ<|YT &5((Dࢊ((((((((Oڏv߄|}+dbA(+ulm9v~.>'%Z}.'׶"9l}yjο/5|i׶m/{HײN89D'֍hqF<52ZJx7RntQEzaEPEPEP^h# +O{wVW43)> m|u׮|)It)5Y9\q_WdLv{5}<#ur1S(=_I%GoW_?5ajej0/@G\DA#'2_~$xľMnIc;$CupzVWğ-%j^imţU:`8gOOnVq|iH Ǘy]?_?ϛeW_~~W?9u/'.)s!Ljƽ:?x$Wi[/lr Y:W轝힣_v7--G*AYno;]W?o8VͰ xh3g/}|;+AgɎ'p}y .H˟_?/G5z~Dt3I)?#3غ鸨W_"[doxNloGWcJs̄ m`x<+Chu% ]]jv-[G,M.a,3*He#AZb8T)$r.u#x 1_-{P36|B{θ鷠[)?gKISS~ {i]Gy,HJW{,9`c nx=zT^g:|SyٻŰ+.d3jk jzW<2ܯNMC+x=/u|1;k+~᫖<Dk[=d[}IHnl巸+yPHԌ Ab#W󹯳á>$a׆-5c>_di: a uSw|B.|x"ڇ=OlokԄ|nzq~]^F֍Ra'.h5ch:{iљ..XVgbM~}b-^ᯃz_,DzOI K0TҺ:rҍ/Ƶjt}_xs3-ח+k2O,{(' ~q|Mux/~|W;~g˦ ~^)~1ȒRj_= 8ov^bԩMII|G_F?ٯ a'KQ&i75𴓦 Z(;3O,YkkŵC{j!i$ 3(u'5w^YQo鱜jY7'tNO9xgt?H5Cci@>U!:bχ&`_+[hHGq~8_^XWݔ$vҵ~vg^#%q58ZPޯ4rtKJqq|Q^iuꆆ9\m?>{iW^<]WډYnDA<&QG\`69;B ,V,Q۬ז7715ͨnb7~2=\\w_$dvWuOC&9\5 ~ͨPy#*^뙸e ̡ }~n2\|]|7 u;/*t yj,V3Bs^7¿ȵğ^%1 mxjKx[;Xdr+_?y.j o< m o`4UC76JČ $Ը{:ƴ0ɧ)lho~dAøyB+:h˚J اII]{$?M;YYa6Ȍ2pA?/ؿe 4((((+2xVoSº uz~neXiji,q!W,dy"">oi~x{gIxJx_aya۵Z[#&6X~mλ~߄o| xe<[K4(]fRۮ.#]%7~Va,|ZTsq"4I0!O̪@&ψ߶_G' Du4YMŊM@n ZxPqqiE|=9>3~Ӻ4l<_B]o 7Vf!ġ/ 8o?gsdsR-KR4>&^$:5%leӑ*@$2xg1x rp#sL=\p N`|̗O?sʙliIRk5ouJFEXQ?x+QV6{~&OᏇ!ٹOxmm`4ҰT@f'__W|fV iڮ"iӬkdJ 3䐠nQڵ\k %OZ|QWt<>dE ݺ09f!>ˆxnXVމv_6x]( ,Ma&[ջh3O- 7)Cis1Ѳw }~R+?w {ċIs5nC( 1'ʟi/>#|έ2jv\iw7nsK9bi==td&7-es-gr-2*{q}aS\m3𷃬e o0FgXAO]MQEQEQEQEQEQEQ_ I-+.?"}im]=6r.$Ieg V$w)P\7_06nN?oAr8LL9#QZ3"oxaAw,88vpAE^'C>$6Uw];Bsc9Nj|/+wt>}:Mg? ʏe ?+^#3sX|j\;0սy_? + <~5_@~/Aɡkk B!4nC1)8 w-tPQE}XC |0a/S|^zͿP}Cƿ %h;g(Xs{}V_/YAp)Kwo^x~7jѯq$60@ZX&7Lgk ǩA*z1?KEO{+QL((((㝤ךt/l>"ҕc F6̽8q8VZ?js\C>8L%1HM*O&XsYx˩ I{QL8XJ8`x s2>&:>|k\'^>qWIӹ;5I}O~? 45#2N6? /_Ɂ|=nAɐ g./0qEbs_3xkdY#㟇u?<.{|[VU*L0?w^|sf\38^=*GoytW 9b#jּuUe65+1_!|7|+ Lh&^VpC  A' oػڤxJS6R쐳'o*bhy Kƿ K^"4 y\&?src^_[F,E5:rRGk㲼\RV2N-z|0x~/SwD(աͭ OvL?]s-|U =X&ejOKOſFRQx:;Cm=WgO#ɟs[:~|I3嚼VGJ|":qZee~:__?챩&D''Qլ<bԭC[}ȑA''Q|SIui5' ~%1Tחs2+㗌;w޸ ~e/+xRZfvׂ~ybxK^liM|y Cۗib0Òm~]:},q4:(%&(r|4q|YPX[?O\ aYMx_k@R_嘤ڍIcl0eqU(`2#kGbe߳ӼEiĨ6|CjAVyh s$JJĻ/qbsfgÿO|Bo \Mks=Fz5"K)U JzW~Ͽ 47oGO3TK{GpG9hNx={ܬu Sp_w4S{_c0UwFoIKM~j?԰y)SQ0xN5* {+k:ma(UV/jF;zMjLl1-?ͤ/hJy9T`q[/_GRZis2WnF57[1RRxYlhg~\nu\=<%wB+х9Qj46֗+e+$5~s&xo'|Atn<%6"6fgnabJI)!:Xizkؿ2TyOUopAEcvtZ]Ԯɫ|-ŴK2I-*+Qwjڎ1AmXdpvhy).M7>P:W&.ukn.@:*ʠWq5UJ.X{?OElaR8ӺT"{Z5KLBP{i1{o su;K 6{,"R4'_|^z?mI-d–rlcA7< -j:q+>k?9^f x­UH6Vm-m׽/4O-xMͣvVEAź|뗐r _?೟(Ͷ%{xŭڥHWkң^XA_a'UT&OٟQEjzEPEPX"?|Cznijۣ06YPXEc k>,xkczi<{4kQ2F\\%2MϟΑN׎[5m=RI6 tKey3o!Pq)`~#f ǯnm״+{`Y?$W@Oq+ܿ>|16^{}WB4X,mgV- %f)Ѧjo6YZIK{ͣS~ĉVVh&𖡠xGA_aӵ+TI#pUE)$ՙtN֩CsMcO))rI+ޢzm<\]xGg/?|D-ƷKll HUf U|wsA_OjRM=J`pnx-@d_IN,ʍe SO$W}Yk_Zeŷ-nMtHPx/_?mtyS{V4 ۓN9i_"­P7gBt2r>GrM"#lsO aMg mte%=vijI'r̓ _??x>T֪V}vmt?Q;}F'_ smhWPL㨒+6 z?C*-__]m+_:iygڿ{\_A_@O:W羃ɽ'4n<9EN;2ĤIY@lvh|bxD %,'HZ~k_Nn.dtku+cRGQ"7.ʊ\UP 3"4Ȣf֣w#3XbZ+xpoՓW`kն{տ-־B_6^5 3M,V7NRcv~󪌂+ks5kFE6,pv&5lg>@<5}q_5;}K̏$VZ;%9l)voB5|*oE8YcE:!ʣ 8P9=I'Eƚi|ycrz|ZגKU}qUBqӵRӮ,o P2H0U;U双sJE_3{ #zV!n 7I4}F sWJI1(r+yC+FAz'UuG: k70IymuMLnv1*\N܂F ~PP;_򵈞\xZ|R7)Te[m _/_.m [8]2}7Io__h:IT !Qg]ӯ+MIS߭3OE_5ώ4'fGr_a%Ua]6B4S\FqmiZ`H6MR85C?DŽkOXxc⇇m 9XPynX۾%l6;0ǚ.aqx0-SNϸ [nf̒#TP2XrM~ZxsVF\Em췟kC6-rbMC[/?g &mE.yǮPg'0- ?eH7g/yGFx'Fn-׭t2#xywr S+e%-춹gk-~1},OFP{מy|.|)gwWKC%XׇY|n'lx>#χ6l9k-\#(Qꌥm ?Gu ᛉں͋F/԰i΋6::u)ſ7/m;?/.KQu_fr Y̺&l2Ha7$ KbV*K#I#^to[w?R(؞ɶѼlxM/)VOdƾVW]]eYNACNy~&[azuQEl{EPEPEPX>%'{ Ok,߅+1_"?*-;~M 76rEIbC+*A8|}G.|ƕK:F R=S,sA"H2AGz"oMT/?3V=^V6U}G>↣/oC(-OOzE:$&gd<-H~Q@-mm{++x-,XG(ª( (((A__OOxLޏkpҷ]H'ڿ/#>0~~֭Sp]drH9׍LI^Ohd_~^U0t(CQR['ݭڶh/qx/[r!ݚ-ڰ2vBy"8ӭ>Ѿ l'kk:v6Lhda6<`~ ?!}m[IB:BMbBQWA"/\ў>Sb7,?y@A5<Bi o=&ӟlW#mFK麷uL1۳e8G#O^$ |# Fl<~w &lʅyN\ӍZ~ο7,bGMr1Z)^#oxq-b 0=9VtGqna L-._,Ƽ~9YCă8Kᇆ幋PZA=v]}A>C+eRqO*v)j}u\G^XJ05)Μc~M'{PI c!'8WN?5/'o֭qcZIi22dG+#x?ڳĺr'5@m`5PfXyi6#E42G1T]')$I[;%h+(ɮYQaJQ^ҕ)TE)J-ŸJ5x^.׌>Ɵ< je@D)sXW q]g?ֿ:\¼bg)~QdJXzj䋴RJ)eս_viZ' xEOk6*r2?2xZ|LĿxAt i3^5ڬ1\3p~E띸suWo>ͫx _vL?xOS_aj4!{ꢿW_y ye hU)ݶnz$ڟ  /~-?| [|3OHv3lq_o:5zjMVM`Iu/݌"rybtU{qPT.EM׊8Ra,ޱn^Et3|Qʴ$|x"EoiLz_G[PT.h;382q+gy4|C?bwNG->¨Ckg]c|obP1 5οڃ ?jNWGߧӁ>yvaˇңSnvzu?j+17~ԯٖ +P]eŵ3Bs_{J:_Gm!~'jh:]>`0p$@N a?ŐE}i.XT5k3𯀼q/oth>A=GWcT{ k7_^蘓W{?:qд02Lq{?_7v<mgÚ#YܨdjՔ6y~|6K/ƍ_2suWd98xqLO߰MhmzԂm 敤sWYXoGm 2Vbog.,c6r"'l&J('C]'}'Ol'<&m1\/>+ UC~oLIVTd,F j^ ~Z<5G4bLkL^,sw#'¾:Q2X\W$Ȥ+{MvP'x  🆮cӣJ u d( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( +_/|)5/+jp^B߱aS6oN1!Ls|b>$*b@$+𿌼!k/^~otMN3f\57l~wojc$]\Ml儑1R<Ek? f(}{Yf<{tseo(NT>c8I _Z;.y|Ie:vw !P{~Uf>t%+M~KS@zFx"4 qUE8zWF|Wks&6X%V4nOUmu$ߞ>lzz'Ŀ@M m5:;PTA?m?WYQjO ]x[ESi-&QbYch 䲝˹ ~t?VDii );0 ƿ'7"OYW袽jIcu׿?$xHaR%վP0";9OJ,Ei߻?8խc%Y^we亍]EU 1r:LX5UHGRR]b^ߝZXerH+hE* p#2IKR)\/h;yxkscr0<."̧H˟j'ZKY-аք ;Q$8eC}gxe->"xOpĩe%(e'ܬ'{&#/?|&%PḲsFO_?f>ލ՚umݦqkUGPrT;*+W oFhv3x~qgpXk4!J7+un+}Rˡ,#īו$-{|-_/{|Gx?_GMFnel1Qyi?|]~;sWլc|7t=+(jQ|o-Ex[[ndSnZٳ00־W72ʵKI=We~lqq|OE`qlU}S%bъ+w٫Vh k$P避Xx.s'͜.1_ 0|:[j al:0zG5e\C7ZxI/_?#[ ?'JI/ҵ7QE{E?;OKߍʍIR;\O35ɍtJQ^ֿ#xc"Z{Eyɥ}e{}e:wkaaoU( fb:_ࠞ5|yy$W'6;@<\q_>Zcu?ޟ|'2IAh`8Pr7J%,(c ׇl#Ue$a^ |giZLpwx#wڵNuI3߲P|D|WviI'>ZC.?v1Ï~Md<5~Ã;ĻasJy݉Az YysM)k'#^=w81ךBVw@+?/wx={813N\;ҹ/ ᯉ5jdngrrPvVC|Dּ9MKǏ_隥g!Դֆ2zZo=s|x-Gw._9!CT+!a/d%NzzOn8,գ/ƕ)-)cpUHtp>eˢ ]A阔;J4 o37`x&I?xK]~;qebs쑀Dh%۠kdxQP薽Ev~\J:PqjK[G.u]ZMu{-?yH#94;߈? O_ [TGO6tcq*k> xi_豙S۾t\\#y;xls_!#xVZԖGΉq=;IVT`J[[V|k=4RQ惴WvWN.3Oi/T).lttYj{Btg( z_um6Wp{/xUxH^[*=F - e[pIP@4/Lu[ᕆyAAWJ{==o|;<7~J{_F(PmyJ򽫇ۙ_ҏ/Z^WW/G/+ڏ+ڎ`w%xw?Ś<E>9=y>5|UKçHe Iq*GI=Yi#z d/_WWz8,־Gxpp9-ci*Y|[:w7aw b]FY!+3ڒbPqN+x%x$@WR2#_̟ŏٛΧ +|clMI 88QK>iߓؘ">2YHyca$1:'ivs[b8F9*OWZ?z+_ً Ri~džnn"C~ Aۘ'tdYS8?W ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( r?Zs^K4|RfռC:t^/K9Onyv^ᦵcWKCJuP*ʆgOD6SG3 {vrJ KX|N& nsz=O_d9}RoK|MoKlE,QXĶ|R!77~-1_:u[iub8- J:**_'[k^I?+BMs;yܑ&|1B1Ú|snGTԤH#AOd|gG3Y!K/Xr!8F*mex ȻԌA;W~cղг@;{v`C4q8$g8 |3sxI\iG}*Nr#k]gƺxW^?ȗWՑ7PFOQ_~א|Qސ}!b=͖"orp`gIao'#WcrpdޮKӬ_Q:fZjZr&Yb}UGүW喧xTŞdHai`*;}Wko|FO$,|(}~cyִE˒嗟G$W97,y{4}QEz!EPEPEPEP+/G|5oi%'n :7G8u!b+C~o@o 7qv ^.EyEǤC[5_3^W8JR]_Rsӗ{VȾ;~_ 6Xm-ث]_xmЪIeBp ēךOA}LIz| :{Ø{K&9xb[ *\%:q~8i?P/)M#վ^q+¶ UJTr=~#|2mwkxT藖4g딀t"ʊ ¸JuUjufދox]ҧǑS[DHXUHNsQEQEQEQEQE|AʿicT E4XUӳn'ny4dC_+gֵooc_xCfnsbXw 08ꢊӌդ6*7jOUg~G 8.<~tuM kwQ a"aHza)A_?gF/NRQa_ ?{˿9!rrv+hF *XUlMGVܤm < ݟKGk F Hp pA{_Y oat$xgTp" լo18 [E'z_|7ᗉRXCRvs|͔Y # ͧ;x)y,<'|GA*I1^gJQ_(eeগ2nkD(NVv[q=sǍ%6>ZWe%z[4<2UYSt;pHYg|ǪCýN [IdBv+'̙n[|<>3)M]Y4>oEkNvk)$4~$읬gy^+Q6ZΘo4{o0s(b: d{֗} vBg(|%IΜfFf^+V} Q5w#ۙWCG} nf^«^i֚qcik}e:1$r)꬧[[ynfpCyP9$½& _ ?N%կ(g,9 oBJעEeTo vmr{$gKTbgt4(IWXՁG89 `85|AixL?@/eG,,)-2RylHr.u~56UCHX:5+&zK15I!Cd}ށ4*v#9\F ;c^_#P䶶~c,ʘUHdVdgSpn36*m? X~$hl|9ijS_d,O%f0|0;8# 2[_i(veLa3IaOqNJI95mVcK58WEp0p7}=25\ωtOOd{ֵ In8T<@{~5i~+}Ο(Q}I{$p Ei  !*F7-9r׾ֺoƵz5\ºCZfo4m> ,$/$oatzF7,w'QtcEea-t*C\=upn\vX֮z6>,/3?Nߐ%}n==*wx>'IKk+vߙ9N=kNvyf1ӕOf7n?۹q\H̼o+A\Nujǜ}bRC;a9A'+w`/u0/۴NKKW1APHg?.X/m-~[s{nz@Y$rU.p q֜ `O Qlu .H6+W|#}*+/xMmb,D0˞#e+H;3kƭIliFG#:txm_ a,Cbp&68_HoC 1Pj?d [_5)u/;!\byfDO|I?M-Awvqx|m%R>{4O4-7+붺ɼW1 晥(;[]c1#p}ϋzR5uXXh׸S8uBÑ:Z֗YjmleUe`AZGa՛_5i5@tzLNo>wDށ?yEyggK]7¯u7ȯK]W?]Ꮛ>sUhC;藠f^?R 9s_|yu'3k#jciV/^sc28П-XTg]EQ]gׅQ@Q@Q@Q@Q@Q@Q@Q@Q@m cCOȻJ7KEyAn=+rOťꚭYws,PxX;@NoOX+o5LaA$31n٠(/?] o^>灣֮ZJ:ȌȠ:'2yP|/v3y'NykwyMUShY ]{4M7(jρ+*}C&&if($3$rH.6 أX~_oJ-M_Wy0K#A=v)a~QEx^Q|5x7ɲLl GbUPÐy>Yj_?do蚤 n#f2mnN,C3_Pɜ#8]3~1xWG~/CW? j^ZZK0$Nj^١xd=W3V8@?n@Cc>x7ƿaj-?J;3nUȒ| p\~=|6[p7<%:,~?9]QFxxQf<JT`[5?arqgMI%5%>Rz%6g~hΪ4zqF-o"p?xC~ kHK(er` G ;Xx:7:PZVR*oJ߈wtJ4~FpI&opŴz?(5g-Uq<ҭՌZUae(Rz^t2~2 ⿁v.-/JĒNy䓞{cq ǿn8CXzZK[[`f9p`5r_y!ڮ!ɭ/5Ko<*3il/u?Q> Ry1NBk|S?[ j5tMt+,'\*H8cM! ^^Pǎy!&r:?lFk a'nKw%zׄkZ& 헁4֭ &3)=ؓ|3|yߋ%/7o|&{iZ}ԋ̯" A,@ SsW"":uFPOv=|>'5_ G Su̷^z<1tZUYƝ)?f$JԢԔi^j#}#ஈ?LsYdDdb5GU|j֣yW k9'{5zxԲz%ly$*45 Pir>]{Of5MXǟl5藲$pG`I$w-djV WLNеmȆXHaku?i'I}iXNDO袊((((((((((((((((((((((((((((((tU1YZ4DrJ.f&C!`0YYM/AZ~Ѿ!{ZG;`cPUP t\?h_,*MGD𽨓1 L&W:AQ_m7ދ)Q}.vI[ݛ88̞QsO eI+_Il޺|&'r]V{u}$B34U~Uڠ(d9JVwW ^}^YWʈkd|3MNS9Zjߦ#B[[3=Gr>&յo7M{UGÚd~lwmܥs3tBNǷՄtMy>euMᏍ"ھVax2otmsX~혃"Idx Q2u(\~-iuu%{ܪyn  98 W%a\~ayg/Ib BLw>,]'.f_r?^ELG*>IgR)5'ec.[nd×>;OxÚMy.•hP9=x?4o]~Ė:׎gLMu^[v*BA+mzWCW|aiWVțm۾]:`=Nw[=ZX9ÖT/qT4(kזo<7EE=]K,WtWU Y{dl֧EK:y6 :4 =CI#ǵ}5C㿅%m5m D$kyE Twm?e~]_{o.-C43HfٻZB0޻?c#A֟SV򓜝ۍص'#3܉^1a%B6qq"fy19vWDP}j[ bRʖlpUz\M¿xZU<-=h}s$.&I! zS:CY[ Ŏ2u F58R䔔eP5QWY^sk7\H'nn׭d_ >o'_=W^^5rCE$n6zkt_z7tk7h.FDy6MAjP<ctӾIMo{Y6Lwwq _:X}UrTdc w,~ x~/ڬ#nir;wKg:VU2zO2s[h11cA1߭fxW^&NºٺZ oǒx=\Rq% ٯ,~)Jb-7oݳWY x~OԵUUmn'EPuG#>^N:u_k_|BF]g@zdkh*!Xr6q]ߌ<Ş4oGGB{ӅIƱT _jAmH|grt[G?9XԱ. Ǧ4ZJ+zٮݿC pcBgMO]Ԝ⓷廋25{&c[pnob8C`:2WQ}J&z>dY\q+ Ƥe V2IlyXB 8IV~ g\ʉLM"[v? gȯ~> x_|YŖ" cGI9zɉR[ mU jA>|+5k9j|#- 7ppDr6z+ԒP qo 9eaW|X>\ZGx܌bU@V%xȐ#yJ,9l2@\Ҫu#|/x2^W<ͷE|wHZw7 I&'s xY=s־FhU4fM`3\2`}W;0+S ( ( ( ( ( ( (?_k.O?bjR8Y(%cLw8N1ZT߁k[[jsβȱy\/#rd}3k(—kvZufݞXr 1[$BR@7~Uol*Q qq(8uff =M|1[t<7O>,d%5YacjN1Ӣ8|F*y82QyK1Zuh>9<%& vBӗ!^y[eoT_5~#Us5kE:E l$)|a|^7=[M 8kNce~A־W<Ix7A,F ̳)$9i݉\?8G|7Vض5oZ4,y&y3g\. ~H~ݟdߴO37F𾥦[^?<7dcnv?T-7N|?}Z{Y^@Cq H vѥgexP\Vs{ݒ?:xs^uCWf''ʃ|Ԯ~/|?6k_ : ?X-՜hn+kڧ #,1g셪AMm%72Y:'$e)2vȀk_^''[hk<7=8=wyTvz񗄘V[5?g^>JN5ιd{Mςz6=&ˉ59^q޾zou/]xJvտr2vʯ쐖kW#QbU9\!h?|CN\M6?x?ۇwx~Oٮ;~ NkҼo:y4>YO[eozoPc_U':k:mnulZzy6_XO#5w?,uգk' D Q#"澯yZIH(<iЌd:M^*v{;wSF4$qwcu$~>Z_cAsb">8)%ksH# K:HAoF>9O_g{< y.5}_ݎ>eOYjrMwl*ka ڿU_o>1#ĞwZ/LFIAm)}?7?az;ٲG}O X|w wͬ'w'/$ ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( u4<2.,fer?JլcOM[z#KI-ي:'d>$%s\]_򜴒Ȯ}ͭWmĩme-ħƹ<ggQoiҥޑtqcG_Zͼr@q$֣}6 }'UO 4v߁Wơr#?$@'@ VFYYY]NX`jE_μ?(cN)Eh NҪu:KfS29VUlA:=VUlB02T:P: L#juOƧXj[9Tƽ5<[8'@fw9f$&sMviFE<?޹ӥoM\MRqcڮG:4ѥ6Zćڭ>4q6rAVVگ$^m jboJf8sZ[~:R%cy$M//reW\|oxOӔM>'[ˑ4;l{iUa/X8SS `>(S_L(Š(((((((ʯ#0+ = :w}YI'|Hc@o|u%X'o_-|+_E?lmPw8|0>JFsA|K᛭U\.٭o!Y#PyU7='/<Ê/=Ww/)gik?>o2:޴RsG_S{_% JلRjfbѦ8Q|Kķ?*GNl WPwm#/ߵO߆iҬf_z8Jdc%׵@k|>(+7|)_ ˡn/?YӢ~*ʺ(3bojs]|{_s>_F䅆)%8/$akvd¾5Ԑ<vT=+Ί{i/$g\|FK_ bfCQjYo.]F ~pN5~ӾԴ_rc9X|¾md߁>)xF ^Lzo4[R<9L|O%s\]VrۖUH3}$;3_?|8wT׾ bL[ VyDRL2}W-^{|9|Jqo9~x=?>"ao7c:qԯ9+3$@t&0H1E?Ï_ <'7o-46[%sB̒31k9ei'=?mWGmVK.U(߲X? 5?hB⯌'-rAGj?IЬ*L-!Xmm-!X5TDPrOҰQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEIs_^jg||SW "ChK6$־A3IGKF$+|PCY(ޘ'rA?^kg_왨x\h4Zb]㖆@6H|ʄ)+wҷ/4Ks$&m+\OD30Icd#7>M[I-w? PR{4O[5ٳ@e# ^^pUΝt*?$~V: {/?^L0"2sau_SPGC2ȱp8Ztݜ[kTiaEzwmߕ {Aq40$6ϸ0(Fp;ri}aN68%\U_δCE mݍ`=}qS.ln,˕ʟ֫w:JNIrj­1FXQ&g!꽪1%H8%V|r Ee 0G\Ԫ-#}ؘ0osj9STWɑHc1n?kKp~cڤm2PrS,nZ"U*%ֳ1Ajv})vU*EGM#E,}ymD8:kKe*\aW)4(%58\tle+{q^HH칮]txTB ny6h"8IBC?((((((((((=|1- Qؤ[^'I^y*q5TT͌ateF-WO>x?SZەGdrv3^BDl,ovn`>Jھ֯~-?,Gq\Y7oYe   ͇z+ ~nTmb{SEqkKH6 dGޤʱ'$jadş 2^}??~}x~_-E#*ah%ïL6Jچa ˒k]{=. 2 [Ӟ}6o4QEwQ@Q@Q@TS 3EooY*I<zJ얹xÞ ƻjBarUYePI+?w3=ƃ/xq6Ns0~3{m7xUtvP.geV睍כW0N\W4s_S9W[8y{|kox|SOr\g:DK{rBi^%ukVq4D7#iX+J/ <^ mt`>s7$wS78 C.|C}# U*XT֔fݮi:>l`c1죏ǽiEzI$Ӎ8Y- (aEPEPE7K7O77i~8 [=>l엉g';;fI\A'}sEPE?h?A?>*x;:&k[F 0q\Rx @()bXd@񺜆R2I@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@x/w{/(XV'N !o3QnB1p?_WҘ4KQ-.?1FߥW;lmnbVvzXoҦ2ۻe}mQEW(*ߥ~\9X_JA#R ж)eg۫6o{<[oiَ0?9U)YV~f? i\7f ha%Pcs,$M{<NcR ˫?x3r= ~^rjեZlkɿ~ ~?K)|?uAFӁo3 R?X_oIxEַs}.Smoi6hrR-s@'h[KK[ 2 +k{+8$0AHQUQU!Z* 4 좒K-QEG@QEQEQEQEQEQEQEQEQEQEQEQECsg-1\[ʅ%E `ھ)x[ .aGrd|m @s2 _mXWSM\8qԔG^iW `o,7 ،qpsza7]@E;.m$G_L]+xJBNa3 ̧A> ~~.??6J;f2&~U#Xf/mGrq\7_~yn)]h7¯]ZWO.Iׇ:w.l7c*{w _y^ O}gúS]YNޣ*x#<ۇҮ} qUrռzN>zיEWIEy/^_O2ȇFxp?>|lUpq;Ϊ}_7_}|Y ?f_ `F0ҩ݄u`౯(*TNfyXK ]^ *K.oCo<2AU_ 7(%Q~vƾյñ7%=$1ɷP3*d1^M: ;>A‡+:j\%:cݏo>^8oZٻ~(-j.3A&r`) C@~_olt|G'uIIJ^v 𣒻`o(?+W/[R_zeXUIO.]pWoooCmk k0ā4Qt.O_~k@^y:Xy:@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@;VاōQk~m#N OQB pAEz/CI 6g/,KP .xF`:3ܓ^_^5]HSqt/@5wvI7;}fGæzfW߳U|761Xf1|sxGxW,,i^` k) :c`AcI(%Ϳxn=,M*88F8E.dN5z-Sxi^/к[O2,dee7xivV̓Owg=J1W꿵7M#K{~!iV&Ϡ {{_mWM߇>Y_xgI3Ƴy"Ub!,Erar|]yYA| 5*4JgR.K7k_(-B]{Z-e=sAi'xݚE%px<~q'v1K_Oc?"kɿcO&?h_|Bk sn؇5iNbmpd8ZL,?h"[=߹kHh 35k9;?!U7 ֭Η(+vpK[w{ۧᶏtg")&8 Ϩ/U'|)2>elZIKyXoß"oOH]Ht{Y&iJ$??>i^}7Neq'pȓrI쏞G B.<  ,K yܾMr&<MZZj,j:OmlH޿JO|6nOz;'rFa4 vn8"@72I_&]r;W28/3B=Jy_j_AxOÞ ,Z=7DӢV #P  2qɮ.[;Ӆ[~ Uur"ޜRdoNc>P|tWӣu<иe1*$g!QT,|RhniQ^K(klsWK!N3_巄C Y4-.q`oslMvtQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@_'8iS>UfA.{Wĺwf> |DT-}>IQ븨?ݯҪ+W՟u>+|?sj|VӃ޷~g.xQ >m/SJS]D?RI+mc˞(@x goVCdгfxہ((((((((((((((((((((((((((((((((((((((4~?hO\"F[;c1^ؖ`B% 6G ۭF_[G.LgD'nax?⢀?7Mn5> Ӌ>k?O*} ca_h?:o6I犼t4Q#S)S P0AEPEPEPEPEPEPEPEPEPEPEPEPEPEPEnj! $u Ũoe_Ij;V(ѐAbv@ JOg gO?~1Gmị=g:H[kR7'L~Ο>$>!i,56 2ķɣFiga[5CF/9Pb㸴~;XEf–T@|/ٍx++]v ./ ih[|j7 0ݵHt?*+'Ck>8[3njCr>{%Yψ4HHX7޾|_Xx#<#1h :e#k;MSźı$$8PIE~~_6>0aҾ {UӬFʹ&daE 29 Z+VIk4o^3tK="N X[QI]%U {ᶭ_%ދk%֩ ]HٝR-[?+h^2[7~ 4HqbAҠ(((((((((((((((((((((((((((((((((((((((((((((((?ෟj?lZO-.<|:W?ī&ni %gv?.=\~:g.i4𼶱+ m1&q:<߲s iW?xxPR-٥hRCYkV xwpkSMqrI'nǦ@YVO_?YVO@=A|T#Nx]G0&۲#|F>4q:2=3D=9cпf/]Kux岴bV ;ƾä~Ku0׬|/\[φbM5ɬ;ºgeĀsk㟸+կ\,,~^<9ծ4k5h nD1}+~1ǟ&ŸNgnd%[f b:x̘< |UOxoNZ\6$u_(:Y?,{Rt"*Q#A΀?X(L򰗂o2?&%k񿎼ᮧG4KGRX@yg "x(3~4 $V|-mQ$qڿX?__Q#}~K\]ݟ_tK]YxMyl{PEmO8_?[/G(?6d)V%7? l~i8mzV:#k6hO/sҏ U֟Z^Ն9ͺp|st$Ÿ7Y:>x~:/uZN,#*32lSK=;W_oCVV=[9&eEbTzPgcOxNZ}~+~v#3 ՟^+#x̌4[p{WOQ=O):iyjW \~"j !iRv9쾊𯊼7㏇z?!$Ϋl:va8 ۣ+AV |+|a?4_V[Ka*EJ"?b cSwExzi4z}:I O@+ sZ?|G4[]oCmH$̟P [s/Fq?:_O8_ 5 #?.ۛxb&x+.F{Wou6]m&]r(mnlmrA]jiIH村 eAְ<+_ x/Z_3ۋ}?Lӭ-TQ$NI&)|_w^a[-Bᶚv wéV\L/^[???OK.~3^ 7|#CNe4й>\?Ҁ>4?r_}ǑjIl:_ ڏc{}_'  i'ۮt߆Zau22j73LnX)N.kiëGG?5wǮgexG5Z5T6iv Aʀ??_sVҖ*# '[K Ƶf:yG I5՗̇ 5BbrX__࡞ ᯴jc5niuMC˓bc>O@}= $ wǖ,uό q"`|'c k'/ZLski(6<F;_Jcg_,K_hyQ 2ǒY$I$}txwg_ G⍷}͔Vkvrk@PvqOk}A_lOîh  /-FH#Vi)M6Yy8͙IT:1H;G$qLZm^>[7#Ry)4Z:*no6̐2k$=R~|0ƽuo6S#̬ '?<3I xf b[;Z;aBp8G_\f :gEpG`89u4P4}?kw@Өf+&>| Tcrڭϙs,Gۏ7zfh?b|KOoڨma(E3+?zu}b[kmHTQ9QϯZ( JpyO࿉_ tĞ#XTݦa#+AW,V9 smEuoE6'9~5Pr|hAei ^`m-$Eˌ]+Ll4o >k cmC QTEPU(۳[b#:=?[4=CWW񲖎dwZdrʙ=eg W|}Ra4.ne,? {Cʅ$d>@/К(/e_ < c@-|YmsK2@b&PbFL@ی@l~W?eO؂ᗎ5 k'E·$n#(W2ƍ?.9ڴPEP?i];>/|eg.s&ziz n*rUr2H?i%~Eޛ);GTU&~ӮDϙux$eu^ ?d'~ xzS66ˉ&$9P?;+'>W;o7m?~ۊ(((OqKx+ ~?Yj$𞣤Yv̰-ͬHT3 8^E~S24nwx>yy%D\rc+ _o|<h6:~>$v$ 9|E~s[~ɟ/ߛ/-=kpI;dfH6Ģ,**C[}_᾵NƉCFCg(oGUѿk_Y~0EwLL`k` 1~,͟{~>wi:Fy V: K<@aU@ ~@?oO/Oφ dӭc }*F&S1| -'$ [X!5b@(U:TP왨?. ^мoj:NV<,#œiӭf?f⿆sY]3lk  { :  h ;  n^VV_p?nD-~*: !_""#$Y%%&'v(C))*+,f-A../0123{4h5W6H7<829+:%;"<"=$>(?.@7ABBOC_DqEFGHIKL3MXNOPRS5TiUVXYOZ[]^\_`b?cdf8ghjGkmnloqsY]3lk  { :  h ;  n^VV_p?nD-~*: !_""#$Y%%&'v(C))*+,f-A../0123{4h5W6H7<829+:%;"<"=$>(?.@7ABBOC_DqEFGHIKL3MXNOPRS5TiUVXYOZ[]^\_`b?cdf8ghjGkmnloqsY]3lk  { :  h ;  n^VV_p?nD-~*: !_""#$Y%%&'v(C))*+,f-A../0123{4h5W6H7<829+:%;"<"=$>(?.@7ABBOC_DqEFGHIKL3MXNOPRS5TiUVXYOZ[]^\_`b?cdf8ghjGkmnloq?@ABCEFGH!I+J4K=LFMONXOaPjQsR|STUVWXYZ[\]^_abcd'e3f@gMh[ihjwklmnopqrt uv.w@xSyezw{|}~Ҁ(8HWftÑϒܓ!0@Qcv̢8VtѬ (C\tĸ˹κ̻ƼyX/ÕWƆ9ȘDʘA̒<Α>ОQҾx4ձr4ؼقHܠi2W r4j!FN?_,P\Ag  N 1FPSOF9* !"#y$g%R&8''()*+d,;--./0j1@22345o6F7789:};W<0= =>?@zAWB6CCDEFGHfILJ3KLLMNOPQ{ReSOT8U"V VWXYZ[w\\]@^$__`abcldLe*ffghizjUk0l lmnojpAqqrstiu8V9m:;<=>?ABC/DCEUFhGzHIJKLMNOPQSTU VWXYZ[ \ ]]^_`abcdefgzhgiTj@k+lmmnopqrvs^tFu-vvwxyz{|i}Q~9! ܂ŃhQ9!֌lP3הuR/ ›wP*۠c;nF˫yO%ͰrAܴn4v2뺠T[I!S~ģ4SnȆɝ(ʳ?Xw Ξ5nѲVӝ <"Luminance" = "0"> <"Gamma" = "2.2"> <"Whitepoint" = "6500 K"> <"ChromaticAdaptation" = "2"> <"BlackLuminance" = "0"> } descDell G2410.iccDell G2410.icctextCopyright by ColorLogictExifMM*>F(iNHHx,C     C  ,x" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((`l/o2x,-u]dbGC7gKi~ݞ6|7xOWk俑}sܘ۽B\&Ae)IE]&?Zi(W3jĈAU%Y.WlC&Dm_9~W,HDv! k2U0<wVZcMJ;4sNt_B4=SLfexe]I r85r!y9ukᾷ7įAo%S9f-YtSҿMfO*OCOn"-mMj.CT&r@RH^.2?OVW]20ʰ9zՒQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEWY[36چvG\p 1k#4_xWuM/o[<s<:Oo?g'qJվo4KQ[ۦdgj3@~-Lh_-9guβ>4D[& >2 f^&ů7%ԯ.VuDsܒ3AWgo~|:Ÿ <?B;r?Ff:HͣE߁?K >-߉Uׇ dIX>lFGq^߃|a h:G (M;MX ER{Mv^H՜;ɝ1_Q~Jߥ|D9~p[wA_^?skV-.d=m29%䜖n%J!h\I`$ԗQMœC%UAK"JM5tbՂ( (((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((/[4_ xN_h&kGQK{{hWG!UG W+|O5+~̚-_/ٓ7JTR"p1H+ǟ1ZMsAkltV6pD'6'/&ڠ___]?~>h$LᏌvK/&dA\n,yg^1|M#M~WaiG!Hwiڂ !lLMo/٧ౣ.fO$A/uyt$p; @~>y'ҹ*JS1HGH/$QJٗs7y#ҴG}(as7y#ҴG}(as7 I'fndԮDoҿ{}Nx jk{3H?~Erbq4/y֝)c|Exb7Kۃy(у>n_5/|Ep*9X_Ve%9gZqZ.=|>wݟ_m_aj+w+ox W_e_T¿#_Ɵ (p(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((+;~x_nY؆Jto$<#IScԩ% ?붟u.O|'|A2Tb-Ž"KY 7(,Os_5*Y_`}O?G4 F6ZMИB[ݿ"Tx#H * {7Tb74c8!2עi5ǯ_ZJGpFē1[aKkou0'Ty>> \^(̶NLWQ "WIʽ8r^.4]_*Wi+ ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (??뎙p,ZLQv#v"#<i_6=GҾ_9XgWO=~w'<#֓E_!ԑHl n7Jɾ7/NAٶƃKkE4e4q'Vc?Z4j.D.i&A{VlMiեgt|- ;zm&rk^]FI7hdym%Ho(eF `l7`FAK5w78:wZi,񭷃u9<62\jKze5 @PsWQK[QѢ"S8z;736D4g_ |,h ݾA&f|!8՘_[/ˤY#e•ʓćP=I\%vVX[O3 ׍uJL޶ʷGkTsNkТ_,ŹwegN+^7u8o./]#U,,=Ԧ{^1%$S~6,|( ͬϗq bHdds^_Vϋ*C'Um2 Hb$ A*kYGW>t>:Uˎ?a\e|1_A\}>zW~?Ɯp7깶ӗGdKFTjVgCgGfYญUD%YHA օz'Q@Q@Q@Q@Q@Q@ǟ\@m?QǨWǟ\@m?QǨWgY࿆LHѾyk 5!ѴKe" fdE0At\uS#>jK'vhg$hE<#Ќ oZm_/~.Ms麎hցZk+״XG- 4w:5ٿB-_Z4n`ͪC%̐#!U@"8QR,V'Cغ7kͫKuV/=:m&c:2;ISIC4zk?G}O9M|'ֹz˼k**/yU^tjo?k΍^> V鲿?/0MUK+>Wi+ ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (h/Ǘ_!o<>mtZD!I+"xd =%g3 (-dycԴHU@OA_ˏ)'7."x?ş Lܼa}h/@o:!cq }ğZ?;:|8X9̐,i N1_R S}Qibp84:vqi枨U?K?FK]_幌x&Un\ɵU'W/u-oÚWUf#=ySeU׍ Zwpfϵ )9+>? ~/~%\3BmQeBq/2xw+ɾ%|q]Gƾ,Ӭo-.8,+`ddogmڴƱ07<\M9\4 |OŰxxOL.VRnuZU8Op\` xjĿ^UbtFq)pÌa?$k_|@4GT6Hib@7Oʃ$Nzt=Gҿ#7ZߖV6vVM x# H*p}m|*$1'xsb=<$Is@`h> KuSOI}Jنw4A.a"XJ8y}p4F^hvr? ik 5v\O_,FzyUj<^g+5ڬ4{Qj=VkyTR#Mgyڏ4{Ru\F_|s&F|eTZDa'꣭s5ZGVxÿ[{?Zj?a?+DŽ?k]{GnenQl$+E<\ÒO_iJ%I~WIIuaEWQQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEq~?O o|cź<3h?}jk {HE."x+ƾ4~?gχ-~9'dW2^_0 {t̒ڤ.rk>7_xWu /ny~!כ|*m|WV~ xTem=OzcHtE p d`eV)ɕ9l^0i? c?xFR["vs噔P[xxU|Qw/ڮt ;^Ic9 ~9Së |7 ,8i oCnֻ+ڼH莺t"z|-x6þдh6Qv~hB9h&=L״K?QKy=?[ǟ%5MfO#᷊0hww2*ι1 >D?j_ k>vTK L: v,Ic{W%o ¾=\v4yˑqԆAIjzb~~ӿil&ƛAitFN7Qf|'ľ K|wgV=V{kw8 1̽CG/P*~SOW: &;bȊϭJ*/uEy? >9|4 4;[ٕYY1d!~sЍÿ ia-l68A2`teP0ye?wr2'bB-JlkuHz6} >XKi$ܥ'z?,qsE$㴒v4L؅')FsэWV:n38i-IA3'''ēiڧW>eݭ,ȱ,۔H<'Ѣ|L3uvz=O*ۇ/eW=';vˑC*M6ֿGW~#99**@k|Aͦkzua(@=G#|ͩ|?~[u>O:-/LާG2 l^_;іSS<ㇸ7VH8K{O}->~:ƛ M<+qL/z~K7Ş  jZv/}A_MwESz,jS }=w;m kbwzt_ >1vkmlҝ6Iͳ$rU9;2Lc'(8K滯pO*t1RNQڍMfm.kGY΋x7.k:E~]͕ ,2+ i^Y+ WýPd7;H`;/jfoS,<'^K3keLtܪ?Ze?(n?gۗs=>+Kca/3]pR9cb_g_~ x?O]Fnu&ҴXgX䘱ö=kZs5i.Ċ2]&pzZ? egQk{!!pJ1\w5_N}rWVD:v0yOo { ~uWOv:?w|d4/:?N6يUʑcŸg-6\Q/؋[Klk9yV66#i펣߆_~~|چtxzkz I-0 N@<*ʒ9͔^5mz8Fo~3__+)W m?B<6\%t ^~'e>]Ce%1^Ǜk \#j)>Xg')B?_ T7bKHOޏM|\p ܀g /M獼a nr\6sSCf~>?k߄7"A$1NJI{vKG}Q]siqo4S&|WSg1sTϣV'~fhmEpPti4Gh|c؞'ԍT'w;)"X~.#*`8YE~X4yϞ=hǭdy֏8C5G=k#>?=2/ĶWF^Ig´RJ0Wdɨuǭ|G>{_kW1xwH+5qǙWs!T7J>_]{C`DlVz[ +h@=e͟?i i>+?g$Is[?7$28澫Ó]~iiM|/\(O \i}iĽ _; *I&#TxjC[d څ쟯 "R?1~C_Fx:&&eOH-#@TvZ5t0ǖ<%7y;8HD$PU>+b((((((((((((((((((((((((((()I6K,Hݰ$z }ez }3Aa3^:[F:9 =I1?i*߂d|jt=?}vd!-۳ 3/|do04=M vg`N%n2Mb~ҿWcQGɠ(~>=';AWKb  ɉNbvou kb=+j HyG`SF7k+ڸj&񤺞So?>/ᇃ4i%0ca ;TW^ա{Q{Wn4+ڏ+ڴ |03??471mb0^ D"p&ЛGď'Golc/!m5xLK' \sI  h>. l~n$/ vF9-9@s_(χ<)]\h>]>сe?G_Tr? GotMT*\Xݭg#e,KmʂiZ4$'=X989dC/HZe}l⺂TG*7uee`{+Rp?w]Ha8B((((((((((((((((9߰Oj}}nLRRK(tdU+3E< ggH| H9֬bn-"u#~']_A'nYyMsseɞ^,|r7?(<W#xKBnVf8 :甐du!5tُ q |?-W)nO'&f_tlK³^,fM|&Vン/זW{ٯ~?*R7Rq皿QN˚WJ|kҊj.QBh:MX\'xe89W .j:ewK!W{>A ?Ӧ-ӑw|H3ybBdzdd H#yE< k`psV*niʟ4ܟ3kt>'c3Yghp `#|׀g+z߂|_KNQy98'O|qFéfڵK2D"v;wpB˞x*{ ;[V}^Zv7s\srj0F.q'y59ˢڡ {>-M]`\$+$8H׶ gך f{md$$fc{!䛛<1'$f7$ g'[T4ϋ? -1ɦ.GmPp<63^+$w+y= X-4}?g > |w񿅭#W-$(~y)>steP_KxD RI Np $)O>PAe;>#ɮ֙Y!d#^foHo2:j&r5QcQ!B$^E\>-M{H?[~JM>Vuǿ| Ϯĺg0|;[9+k_n}w^4g5ox_ri\Op絭{ s9ql/: 7%d>[btY;HDW.]5U*'44<ͨ^} ԤLf+Xy9ܘ?g$֫(!~1&s zNXEwV:q1WwO_ 4_ x3F|g3ݲf&I#1z}C ZQlEJg%x/Û|? ٌ[M[§ 8cc$[EbQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQ_GYO~7z֣r;]:+)T+wE,H9З޳ L!|'I  m2tWf aMg >1IRDh`eQcPц9%f ~>j:ټ+kMvgewX۞G5+V vx/ oh.nJmD yVe(._np lGOaƹ)̑`s$qҿ@{uz?,9;d1{ѳ޶?u<>F>z6{uz?`F>z6{uz?`F>z6{uz?`F>z6{uRB?]{úck?S+*WiP.Zޑ/;V\l4}8~+Kg3?ړe[/nm U^I>fcI<-7<[&.pp,ZC*ʮS9 J0%Hk1،eD wF:16y$ɯ(?pI.r ?ƿ6 u~/ VzM̊6DzA|W?rp9bMƄm,MOwh'[m.W%i?K -Og6$wGq %U$( #_8$ev.X$>%#/nrco=9ne~wo{g/<Flc^,M8a$-y4OkKcq nAԏOc i<^ׄ 3Hy'g]ƒwA,iFXÿO~u&j+1j?|?p?l~3nA%o7N!Uvgp t͌3WNKɩ7ݾ/母^>c8օ=+Ah{__ri/Hciz߀d]=JZvyBGȧ5נ|x>|Boxƾ s6k7Isȶؓ8>_ x'វZpՙ1>y.d_TzsX6+-çJ/W;%|3sxS36#K}Jd2tGlf="i !PAzT' e~%|}C'˃N7?S7;g(CmjM$p;X^8\25'u{<Ύ!Y;>GıP>JiI۽$5S_,~߶Gڏ‹?ß%"IxOWo+$JzD]@$GǾ Ѿ"|Rm3V{y @&#sh]Obywm7Wmgm M<,h1>h ]SHOMP fϽ~W'?BJ V"q q_QE/KqS|K9j79Q`-5ϭ'_?emsR>׾,x)wlu.`>Ll>x+|6:U.5[nXnۑ-vD=PEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP_Q >?򂏎@Zx#Lxxo>/NaV^Tr8 g:ѯ8:ޔڭu8U%$cwFKzݤi??>x¶qJ:E6P\)f C_?oc4I4EwQaZ<eOI;9/g.Ǯ_g9x#V:|[quk. F#0'8Q _??| 3O ;hGέt-9V/ޗ|A~]W-4oxG61^5^[A%Xݣ*89^[myԼ֗J qtA5_.oN߇|>qi7rH̐EUNT8=v/N׾ | 2׃%axůugmo#y*di0I%@# <5uoُςuK;OY2Kom.XT22|Ư ~ᖭ{ 2..ṖC[.mB$Xh1x$]#? x'x+Xxͥ/i`ϵ$2!';H7 |yejWT^FI=2'>-_-c/;歩rcM ,rY ]^sOşվh>;r^.nn#$,J@rKv4>Y>. Pj_(- Zz^>I,o'YECjbxmq1.HmsG+sxF=K iy##R!` q^π>'{jtȵ'm=^h$ګpA ]?ধ?؛diֺWV..[ŤuE9&PGR.5%gsz&/|?}lI fgaŅB_#5{aC4;ߍ|GixG(5k+KV sd]* sɇU~*[nhÙ'4UKXxYel?fHbcAO?4jcU5}SRyְ͒%gv/Io%S}+MJogDuJ~4^ּXy -θa< t&_VgpK}Vť10*׉3E|]뿊?gN{IǾg#y-4%]Vi[|Ez|iLO>+Ahl3+_[fs܋"%)y#xξ?cSY^ u~ӿ4;ڗxo f_:k?cbP0j 7.ck^0ԗOɴkKfI&)<"8}Yeo_Y⏃~4ygėz'u6Ag@E,Ӭ!@<o??6/|Q ߉*MMYi ]A J\iTD?QC75>p?w]Ha((((((((((((((*9e YgX4/$0UE$x//Ok ORj"{y`>̓_yV~ܺh|$i-fY{(A 5SWcms*]_:9OdO{|+7A1e[?OhSvE~56[[yG|%cm}/@SJ]R+!AB[xX~p\+C$fszS^8wK _JU_gM?5v)WO exv[d;F+ը t`N*)tZ#4q*xeYT7w)7&ߛzQZEPYkѵ3Ot{Zu apU hQ@_7 >*go _Jq4ܽ)pkkk^;%Ӣ]'̞[02Π?y@;+a$SGg_W;5]Y/t /~պ%zۑ8^x7vy"*$S)xexw'o k~Cd-{yvfWo*0Uab wfKiez-_pDPp})֟[/s%n׾{wŸ_Y3DGPc /uχEo\N4{ɖGw 4|.BW;ŇOIY^i֗X]<c{8 |.a2_"*xcqMgNE>ov:''⵼Gk?ɓUKEӵLլ-5=:6Omu9R0kMINO8IJ.lτu+ZQLjf6I~Iַ `fĖ ?k jݵXG,ZVmK?y'|\?~x;?<[j(|A/ӡ ׿ ھ H-ץ7_~{ÿ? m|q:<)p܇Hd4N#e|Z~Ԗ>$~ڮ05-326inWkH~Ve%Fo7>|j.|O_ _DTtxU칌ڸ~<l_oE ?#0YMIdnT}$&A!Tǚ?xo 9}eR=m}\*~ ~6Z6}^u`&eapV5x$G _G66u7vƲ<.%FVVA5tBQEQEQEQEQEQEQEW_R~ƶ_^Ec/o[dnvj u wƯe_ToÝ~S_Hn ˹+,X%vҟ K&W>xs~1_bK}Tb') a@HrگE[f9j? w/OIYit2 %(B0[PM&$^:^4 >|"?fg+}f'zC00<*~`Tȧi V%_ ~~ʾ/߇:Ֆ5Y}ݘsVY Kd'7ec_qƻkУw -ԚNUJ7*w@?ChQ|XD.C``ׇC=Oٳ֣w7SX,al˷?Sia|K|}/+ǀ.[sxD`.#IZ,leڮ_8@0[}U>j:Uƃ^Xqu\H%eT"5(((:VwjwvkMsuu2(,@UIos ėa?0`&k'L[P"SPc??|WhՌ{=V- u' t~mG7ǎѿZd}Eߕ5~ph߳'t7]k:>\ݬڐem$K_{ø?eogBo>)o;tx'Ě'<7|5=&.mHGPx85W1~߶g7?5x/il;5y6eDnp70uf+\YGң;mb&q'Cd9oAZQҺ)ՅEx9AٟTU3T5Yj6c7֗W 4*JЂAա!EPEPEPEPEPEPEPEPEPEPEPEPEP_Q >?򂏎@~VZާm j54M-:1R`UG8y/O|!tVHi8yDJYGT a @E'Z?>|9_h0\I[N%LѳC2c7VS2 ucEU89|y[f𾽢xZ~[O4KDw3·EuiCk#Fã#Uf_ǝSUoIxD4FuFlqgCPY _ |oבx2Yo'JTq0 _4D_ĿCSHo-Pz+3!hOjQΟq{W6Z;^=wom1vN V8'qiS[O8[\RzuzJP4~>1T|hO9UrF;\z.NA5:8[_:kG-G-d Ϋ2q֨WEuѫ.]u5\멮zy5:s= ;&"K_Q4]UEw(f&/_Gnk 5}~|QEQEQEQEQEQEQEQEQEQEQEQEQX4/ xN^&hZ-oXa{:s3Oٷ#.6+Hݾi{וgXL-^jߢ uwO,xG/voEeɟ~Nh̺#brsHFy s_>2?~8:[Zޅ&R{f]EmHt aLNX{uYaAˏ$F+xo^<7A-lf=]vbX&gft(gs{1ͳ/Zrwū ~;WV'{?1wfA&rw\prr~[[[YiZYii b8a$j诣r&%[~f3Y%kebF+HEwնQEz'ƅQ@Q@M [K\)17VK4#veX y#q<'|-yYҼ?Z(kCRKkxB$"5h~4xrߴ P*ݮ6> m*[Ƕ1:AmӐ*=*o aKxFl5⾰k=-椹"5hzOgsow$ !:vȫj?'n@׬K-: +?K^jԿ&i2ʨYk?f/ǟݏm{1p<%X$ZXl*d)1&7֊5[Y~I^&QfH_S%z0`C0GP+N?i~߱ާ M+◄|?{x%V[Ha|Dh gO sj%5&2jZ7e,I@Oro\kD\-qeztt䮵-_^ڞyKDpUӼCΖK;xbl2<|r5¯e|qggqyoIᶅ.*J6v>HW3u[Z|m֕vJgd i:d᧋DZxx=<}RK3_HFhoC̪K]F=:>[?>a}`~ŏ٧?xkN ]^0 Mecc?u}x7Eơ"ύ[RH~U'x-jШ&l:4NjvJmY_wM5 h/r|{o:=\iL$2,I)&+O~wf:ׄPլe :\7P~gI|$Үlutώ7hsaChV2H"zC| 6 ivf|3}OʶOk-D;cQU_*U[s-aƸℰ47tsZSnCV+?V ( ( ( ( ( (?0>:0ɿĭ~#^YY@ڄcֺOؿߎ |Cxú> xvPxa $0ED9\7E~ Y/u_⯇5:Υ{ }J |7 z:Om>|.åĽ ᷉4>tY5d` !x+7 Q@^ ?k]K /*K4kdG:a*z$*1R|gG#kao o^-=GxO.|cW <'E~r~w(oxC>Q÷Q&X(!/ύ#G/76QIۏZSRuk%H7y;˨ූrQ@~5~_/i|kƍas,[CUvKR0>-5[Nt[TMV@GCD(;NG%E~$~~5o4v2FBP[`h B*«?i79e.b  I1$8wPEPEw1z~Ͽ ֝>lq^1*P5OO|<+x$ú?~g AH0L1 BuI>|a-2C%Ak6$K#2'MgWo %SFFͼxn3p]UEUP)H."M6GT)&WsGsZHkey?5/ | mx~)U`f6\lpk${zsE 3o~?N]~_[|K3{kky/4Y --4-{WOU i,~!K?#X 7*'& *k/${gW=Yr\z {\eRBI$$^kg4?WRD7Y#u !A)GaEҼEaѷҭoI11"@y W*~̿&i7]9ee;n`IlÂW~GB2RWF 5QEQEQEQEQEQEQEQEQEQEQEQEPQ| ((p_>iwQy?Y-e|s4>&=Ԟ(_\2I$mZ!iwqYO kOoo}j Cwuth c8ڱkss|\1 ?_.CmǚKYq. ^ sf@+ӥNI^ nك\?f?׾/:P[9$!p^m>R1e/PWM Kz5SaHҵ!{w9gqjmon5-y|uzBKVw,NrǢ1~FRq_M,G b>2r1O'Gv$͵?7jzLs.S觯>O?=KsG4#5sެ[Dt4 \otW]۟JP9뮦u5\&T~~pGc_Iu_= ;&"K?ucEdEk;PMt_! ( ( ( ( ( ( ( (~8~? F.S7# *KgeA o`A qc65wK¼q&5`4T}"K+M#馆I%#RI#TQ$Oy}t/k)|7#}UG ?W?Y +iDž3!Py?"z[yO~ξ<_l._Ylw:kqv2KtR wMݯX{>C;JapXi kӽ+'&u?j Ko_]CNC!+?> Ncᯅ&nWSa@yPJOn>njwgZVw~o[<19s7s޶?Oقf!T Ow5`׺<3(i>47|GC_%]k߶O 1;v$g>e&_m| |z֫n?X]NyonIT ŜC.q\7s?wH/&=}#!p:[XJ BWW»Y\C9bxx$WΐAt~| |?S=z&. T<׵Q^Wø\=-_˷w.yxuGHФiYEQ^QEQEQEQEICKn7Aw+$:U]'^V{_~+j_9ß\ ЦقyIfHWߊo/ |ਵ&[wiQQdE.V27<N{Lt]3P&7t[Xt}/Vяb}*8{P? )oG|X| G㟋nCj>1+值c WП|s( xW&Ὲ77!tn- v%JB9FPO;~/:&Kr}K i(@ 3ES~U -2KƓwhdlI+Egk  UٸG["7bHXppI5?n^4k~Ѻng8Bǻ"&+Tw &8_ڣL,D GvjW,x6Yiտ5=;< gtl~y9x/|V?<^bu[M-IWA$#@WǏ&!0kz>ŏ`3ۆg)uc  XeO {-ԿԼ;zo7ݼ-cjʄ#Q.V_Nnkr,n6_NV.q{+w[MlM+&ϯ> m)H!%@^vpKs6խm_[+ bR^-9FrqnR囒I);r#ῂ~XE|dP .G 8O=>x.Ğ&𿇭m<dc4݉T ^Iq\^_uwq5Ԯ^Yry$'mLK~//#ϟ}^vw5O*Y6wt5JO'O;YWgJzr6ʨ>bo oOỾ ]]B'.#eybv}Q_T\Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@|3;Oⷍ,JXLs߁yVs1Wg;>t}sVOâIuk;vL ;C1m?<d'z FH>!;\~R3x8*DTNcQ{>>losQFnU(;5 d$E_8g?%<yk WO1gEtx%'$[]yC6_^ |=<3xKvk};KX!S݈P2ǩcc$SW%JҖF i6g}ZDYj0*^GiyTyU.f#ޏ${֗GG HQQo=Gi?#1*,p=I<^{NHtUyHUe Q݊e'du7 mgw{s}p=k h~08A}g6໫6FA) ֒jlP B#"HDm Yx 5{}&]d$^^Dn >n m͑YIL{^7%μ߭wɘos$5O5btc{^o֏7Yi&4\ܦR+??hR\ooۣ&.~}+z멮zt7]Ms=ʭ_Q4]Wzɣ?',goQC75>p?w]HaC(((((+?3,%4 ѝk;lgdhNR**T8M.񡇦9;(6տ$vui_4f>0V_x{M=%2hy;*+#⟋^zZFv1c]nn;g ?O}CT45GQ=@,$'vV&>oQ_[k&tY ,̸hx,EOUپ7y4~ӿoBρm4;t -/  <gk|Mt⍡@VMSS_txs>=mLhml-;Tu'O$I$oZJTG^>cyO PYn }oSmG)##E4F`Ӭ㷉@WDDY#u*!)W**h~VJu'&md߁4۟o(5ƶWH;FtV~zkiw0C^xA̷۴PO@$8+b E?^#X,fZJo~ u>/yi' xO>68g Οr*,Is_h ~R>Z3RiA9 d|)[kzT  jiȺ~a\rU+-?GG ]ƚl8VyVY{[]c}qO~xIN?+J]=W~G l;|Ti?*3n[2vV-_oW=28/;=>{X%A' Q_T6e'(JX&}aEWAQ@Q@Q@Q@Q@Q@Q@ZO/ k(GVf8S_|W4m.O #/פ%u9"chx$i=:/B +F7>w+{\mU췔V_o x /,4-58\?#uePO~Cŏ~խI*.OؒP_~̟~3?xZKKXCŏ-Snsu|=wß & EѮgaRHrN;`W 8/pď> Y|UVɤrsn''t#85_ 1xZoB%.{b" %X rAY ݇RgYgfRm#e?'Kh6gVCna>[|Wp?uǺw٣obq|@A=7e9TAzڿ}GN} Kլ,M2#ե ,3# t`C)A̟I_s⎵{N_7ϖ+#:i9Tahk㓯̾vx~'|o%(;H!աԮ-ӜI(o]uȯu_"}V' {,v&Mb3ʒnq\u?X:}#Hp-4Ilb1;kI[_vq:: ֩քvxִ?E>x~ SZ-sH$o|⺏'ӿ4}Sbv;iuaWK?Tk>-.?Nkfr MFb W|,_ƏFO^ue!6[LQbSa`.8`M]~%GsxqԲ3ZpS~_%]h_n:/Z񟉿< [mR ۘ{7N<1s@5_q8x3Y Lq$h~~˟H&ߴoK[#VF8rc^m<^9կˈ_-LqHx;E?HeޯxkF4y()` T5~ǟGd~׵?:KF*H%K;e<F>giZVi igg ¢"pvR,] 6 +|VvŠ(P((((((((((((q7>Jv]졨')GSn}(OnZHN>e>n _(ie*Mڅf|"Gm_-Ӽ(-.K.YEDuReܪ xړ9wOCr^'}nӮtGc:*]m.ۉm.+$d9NU<^xDil|Wi c9}ʔ>ưQ|_#J}o**?wr<:Ve47QWuq]/kՇ,IsEٙ^UUj&/m,N٤ /C}?m$ědbNɬ S^ӴdCYD* GU.nhѼr>OU^u5rtJjKV?1מu7^|*NMNRrZZozxug{M8EU(f&/_Q4]Ww(C } Vxߢ>+8(((((((((((+*?PQ|'ZҾx/<aGK%-+?3gOq2c/iq:V=wSk}#Eici8DFfTp9fEi|\ \zDNi$5XgH刐FbTIXim-ᦽף 5H/q@_4H>-Ěg?o߀ht?Q7zu v[DwB@.VՕI`WԣJ7Sٮ"iK xϭ綝O3ޏ3ިSYsAk[u^cנIC]p?w]HaC((((_z-֥iuM-PTI'Kh|*3|y㨉CW 88"b#(H2U)V44Km9{FnʖhPSaX}?ӂ 3<qV8 իNM?> χ$[|ebm~i6@p xW?dϏ!ĺyWMe4[1%gP2F!|) %8Ao+mo>þ=֛M-c[yH0HAp˥Q˧}|"821 ޘ~p9[A&x⧁cIxLl [v#;%XߥwU /CF|[j1[Η5891.>>ǁ5࠺mޯ~>'u2 @r>x$n\R3QPaz>?y0sx72POtrפmgEQ5M7Zj:uudu$0W&?S$%fi (EPEPEPE0FqAvZLķ?FNۘȩI~BU!vKO/~Կ>KxyXqFs_(><~%­/Mm1B #'L206ύ ::Ou"?w nj]gLfZ{:nE'WS _~^7Cb<a3zW_ ?g߇_좟D?Gk\#b%H[{zjUF Z9sޗwv>|61 x/Ð`OkLǙ,/4uFf=z%PEPEPEPEPEPEPEPEPEPEPEPEPEPEPQU m|FVfFJeŜ0C'TqpFCRA7>JvKÞ(?k6>CfXvXN٣ nTr7M;;k4| *i AN| ԯDzURIi %.7#Znjl+M5?xG}R @0MyKHT ZCմ?|e=>!mod]B\{,W巈ਟd4 ?_VlyMܘY_nWU@Oڟ3o/om/U_,-5x̟j>uRap#)bKGlϒI$cIJcJkV{B  hȮ~󩫞Q;5RWUZҹk⮦ҹk&OsVWUy\VLɣ;u?cEdEk =&"K?w]Ha4;GQE}Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@|G|s/4 >9O}|]^x/:K_~ZWOE#do')Xj6i鲂FVN>]_{䏡Vj'H[t;L3EH]ry4#aR!GT|sGhSfOQawM-yGkҬu.{בk=# -Yp?w]HaC((]/ ~%񖿦xoBF!(,ǀ o<_o@fjmuw1\_6p>k88g f|>ѽi{hd~G5˨?YߚOѼ~]lypTU5iSswռ5[}*m yzvHp"S2gC' Xƣxٜ b7FE~?^[_ x/g;~R̀ @v%_=|83t(ki9cy%N_܏iMS>O~-Z|A2F4V`aPA5~[ZZA p HFUGtr&E~/1[ͱ.-1ZEz+oP+>0((((((+??¯zLXcm0,7``l*`9}Esⰴq4:R_#, f_^TiE<ꞏ?/?K+8^$n{"Zdq̱:3k?ߋDe 7Sfw8V$\}@*Ak)u~LKet<I*Qe_O@Ď㘪cQKD>梿t?o/ |YЮi8Kh#q q30;B-x'_CGo}KGFG΅g_E&{uQ^QEG4[< y$($wM+Ğ('sX.n죻1$GfxO“\h_ #`c{29Bڼ_ß>5^*Əj~Л緶@.|-Ku?pCj ˒Ym<'xW[r$|ASO ڕU{3-ԣC{8\f|5-o_>1^ڭi^HsIf3|-7 fx7Aw7l7ܑIO34u>!>úمx8*-U5(zGzhZ73kxKѴe"8}s'ZQ^I+#:tN VKdAES,((()PYkT_޷ۯ k2i,:جnsrc5Zo /bZ fXyFGQH@=;QI4.ε쓴[*'mSpN#<7Q<\ վ'k~ψm^Lded^&aA_Sko ~m^'Q: c# 8A(?~4&:?[-VM6CtH␰snT 6ߎ_5KP?|E:Ö-ݸ@ UVP*NEytoc5:{{8^;+y7*6k=/_ufƕ6OO3}KgeY$$3O EPEPEPEPEPEPEPEPEPEPEPEPEPEPEPQU ?ek`OHbxLA< pZFO)Vn+_H: sg:6Sx/]\KI:ﴺsϖa#>??4_U}ݿ$|iyiX\Ibgݕ$bNLA,v=+˵u-cktvΟi۠bt8/z\LS,jC>1ht_hW?C^I}=_z0\"+8(((((((((((+*?PQ|'Z^.Ӟ-\Zkl(qP8 Uws<9oTAoa9o k}}㈿iw_?GO8xxe}` $y_@x#ω:|kZ!x"3jpUӿBԢUO_$pTBI&}yM8{z}o?4|G=;4yp4|G=;4֝R6w`$iAuBJn-RMӭ2\]]LE Ԛ x&x{|u:z-Yi#3xgޙ į'매bK0TQ|&y~տNjl> ~Ҿ'&CYp8;m>TR J7&s_O>V6|4\G hN,Ql ͵NNMuQ^Q_-s~|M?+) &Uicl>'+2/# chai:՞pkc0V_f*7%նϧk)nf$/,TE%<$/ %Rg#I`HԆ%⼟7rƣ잿 7'\tOVBk5{.lohe_FV_jO kֲ} {q;oEq_WdLZ5}<#u2N^9҃դ nO ӾZԈX[1V.t!_ ׃"xľ]sg.u?280 ;^IFY|Bm{2jS#鿊}?W|H}V6ɔCv-0p _?JcVTg5Zv87?/ 1VB8vQЏy=b7[$͟i/_ H>MM4ݼa:rhUڣ/^O}~ԃ ׃~>8շ mVZxӦְt.T|&XӥldLhT=)PqcWC6j.UV>W.#'4hiWb٨ ju(/#R[ZcVx+npXдQ_CJ)ǖ ,&xuT%B(L((((~핥,v^B:Upz7yiiCF˚ j~|#]n'qdUwy fOBc|iVz:[ 9XgT%wܻFFs^k ZW?ľZGlI T #//[SiEZeO\^'b/F2_ xF}<64ff7>hُ?s~$~|C Si38BXu*fTǷl}K_o_?|ow(]C:\VjwV0DJ&eLLI ( ( ( ( ( ( ( +| Ήr(@Lohw-d]݀A*e*O^σa:~~iN*~UFLh((((((-s7j򏯂?$iKq_ZFO)Vn+_H:sL^+{=>kᵴ6ip(%OJ?~ EO՝4#_yֲ+8(((((((((((+)G>:Zs+e{tMgs;HϲUe# WZiV;WWWm vfT' |wQh>3^sm/4Ncp1uG0#rxc[#V[.RQrj=HX7?ϊ1Ժ&D]K,wnwO#yؿ3)֧O#~4 m;ⶓuDjb5Ьk6c2 Y&6?dW R*xvU 2C9:) 2skO0W~1xƞ ׾D~ ]6IJI9m鹹Z!G?UzN^s>5lpg=>/J[",G: Tտd__4?RQӦH6zHQO6݄rɅ,`:gGڋm|a=a!Pjz&;9It)8=.n0svq0|Cj[]Ccp`Jimjϼ;~>/(^oYOLH?Au5m]Z67G_(%bPC> xs^M.nc\GA9>zܤ2`:ן_pXY*xj>uv>"cV1Y/r.Gޣ^qa%]'5/ õ~u (ԕ37Z S4f13cl . ;PV>Bfڻe"J}}ɯgo('^]P]n KkW;裤2U1 eCIӿ׹e/ FQ~||h\ E5+E>#iYЌWkJ99Qs'}sJ[%[?Y](r @L3 ⸢U:e?k> C)5|_pXZ*y(kkF+S#ǿǏ;Dz;<5sJ; iRx$qܕeے +kx[r]h -"񎲄jsn]>|O~<_x=W@Nmf YZDܬSϹÏimxőῶ58A򛃘"bq:ּ#+y2U8J1nU+t~ߴNs?>3N0&ܠt溓Cic?~xoWi/ Kd hb ȡԌAMeoK>7iKQ3_ ?o zU4x~0!>gzO1^-Q儏%ߛw0M#^#S|5_x7vm?Ba֑R{ǻIk~`P^׿Sxg/мNZ^7GO+Y﵍3^"ґc'yg^{²WY is$oq'$y,9-Lbj)GC4i,N]rz.JG]O> 6ɰy8GF/w-\k>Qb|)/G8|43xvk6o^K e ƽjzuNJQ}VirTRR2M4(Š((((((((((((Wxᾷ6Αhz{&mAf?I Ii+ֻ=Z썡^D3A a]MՕ`dI8-tJRQWoCJTVjMն$~gٓ<_maMM.5]GSn;r19Xȯfx'=2][븏헣naA*|fk>x>;Ɵk"/xwqup'j1_Bi-çv6Q G G;59a\W?/)&/?Qz/y?z |=k?jWOh(~oU׺`]Yn|S2t> ~y_OlKmo+Pcc{n׶hd1jzoմ [MaIH?_hm%X5/$0UEI@VNh޹-[O{Tqy}:cݘs_|jn|a kIΗ%~rJ0PH$}GZe ٤4zS33cN2?Ib_i@0. r~pk_uҏ ?QG=Zk͕ Y>phGQ}jpkͼo ~!񆿥sE~qgyf8W$j& -Ϗ(?pI.S;PMt_!Ow?xosE;k9$ԥIH-QKą6Tum/';ĺt?UqI$eJ*H$q# ԡQϝ*FutQE{GQEQEQEQEQEQEQEQEQEQEQEQEW?aH[^k/Y5#NdȔd9?1Ydӊ(e>:׎ўּEŦ_K%67ts)*6Wo/O*''{Я`'0ݣ.W< u3|nZ. Ѷ8a0)yF j*|ou]O:3\i|q?ZqEC2pꏰ|ʯ4V[[=H4,Te$eIĊK1|S6 ^kyc p.}RSǾ O,5+U$.@=m_?_'S]y1ɗ lV.ѵ}c\MPAZ s#sq>1jzV&Mk;3Y̪Y OǏ~7L_t;<;jj[XgbbF9c8r14T]\L#NVc~x7. z/_PixΠ &}۳+KM2N%0z8,~g.②GKoeDt"$p_WxGX>)x3k%i-Xo,df8/6)U+L lmG~{hm# Ac1<"˖uQ9&Wf?#ʶGfu}h?#OBum;V,exg2cG"QjEGFkΕzrV*QM]4M=>K >>/k^/fmwnu $mc$W1^mU{\7k<,izH8%>\W~Oٵ5%T/a.!u{Wo^<{_&ϟXz_f/M(~["DŽ~_XZ׮Քivۗ 0F\ă?yYa+@CO^2]f>.e!h!6@&Tޒb1_~,~4_|Yi"iq@ ͤx2_>5.?a5"P?$d~.l95٫:u:Yxc _3i+5Q 9_uts}[iU/IV/|FkslaAnFkߩWF 2Al-=5NTb#<ϳzE̗W\<p$&>'~ٺ5D>h]\Cdfbp3 fq8T>(l .-g/HSG|(ۼckq"`ķ]qFXW緊~>n[qτhr EI7\p!1R_^*?2jQKtitŻO7P 𷄼3AODty[{X8{bXk/WoekiKS_g0ֺ˘xPavF+ `o¶s_x◆vOf KӔN8<.#7 ~lNdR=sC"M `FAu^rw ( Q? x~nxD2{0 AQS8Fqqf|EZcVetӳMlZ~RWM|OiХ Fzl3l??x3SLmA6aZg|@q#g5^IcwO^:_|9o2![MN E}g1L@;NPS_%_fe=˧c+atҴkKN[cn)ziv6_< xwJVE$$yC*fN~TlWJ#kſz[[^ڟ}8 ^<تtӢԓi{'RTӌ<# Þ.X$V]&DsNҦ!W{ʹ3M]lt4KFҀm5q|Yo* œH[!k=[`Ԑ}VЍktTG<~Get)JriIvk]DG2$X ʜrU%N$pk1oX> Mr P)ϗujs v9 )澬hk;So#o 2勥^UKWks,?.xKC>?i{Aw+i-]n3J9R[[N5/]fm[ͺ[C9ʕ^9O%㴚#PAMS^ړm2 O> }SJYe!|%$~>Sg>}gpZpu/ w[IOBҖGu> B xrI5?d>𶧴Լ6c*VE_-ϻ>_>~Ԛeo/,7^",X۶v] 9 2ș}_F~0~R_~< "n V#?xJ߱I?/#: ^Na Dq@9kK{ֳxűjnü31 ( _(ie*Mڅy'hmG[gz2RiV q. cP%IE]Ct {ό<{u hzxSkZ6d-.y¨$4X c’<3XÛkq- O5]C|mP xʗ$$vSSCm|Tk,_@'|q@އ0 DC̨3%@]⧆~oWk^dڞJ*7WK|ooj~5})־'y! XGܠO CߋbJq7IkgH 7q=p$c׵yjf[i|F})]Lj!G xԶ|ydpb?+yP'0p3_KjVzo[_΁ืIz2V~gSwrү>I$kaY =ɯ~6~ߟ  E'Iۦ[7LÙqlYMyï|CxyS&mZSlUF&e9?J"?v>{|}:z-Y|dhZ~KO'ծ- b[8qR%oWl$~1־xbcAݪ$DLyV(yX2alcf؋4''U񧕲[R\# !Tq0ym 25lMJ< GKnG7iı-׾EwEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP_:MfRM7?5 2PV9_TP^CyUM :^g d;= |@>~H:i-srNs͵I!B+Ҽ;7DFELjt sk祥:z:.H9s@G,47I~x>TH>@Pdb^Ofωux)%⸺I!yM $8&߳_[>5 _t/g3g;Qsgʘ&>v3.g{ZZq],AޑYLA"M靮 %'s\7dܢjjklݏJ5RZ1ZrqS\|іQtf9~7%%C:Rf6&(Gp@۬H˹Ha5zfaN"S*ÐBȻ<[ulj;kkc;K+FwgP1s^q(\OTׯ4Y\|'Fqw Ҏ]XyBӫ9[U{TQ&hF1~ߢy#|fk8-CoŖ9# W~{JgocrM̪F?c$^ɱm]B?ɻ|/Y ZTVm*BPqnMrWk z~y B I\G 1<DAbxן+} / z~>!,3x,|-L9F06 ?gOxBK ȥP֥حLy2#@|oP6 _lQz18 į@|#S-R/K_$8(+`㌍N7j5ڕIJ)|g?d?*'fcOڽ6s&`yRZNZ0|z Q4_7=ľ6YdbgRI'I5yWn/XJund\m"b7{Z׵ݽ.XQE|QEQEQEQEQExſCXn,o ZɡTldya>[ FZi#sYxeUN e i&DԴ;UP2I'o77:7|q$%ZyͷnH3\?ka۶ElDmK\H>Sn Fk쏄?߆&Vԡ_x2uGl!U#;`FA\ϭWAZ?D~S.,(4:ר=||ß;Ҿ(wjA ;OZZ T9|r ~2-.`:mկqI|r3^EtmݟW5Gw{՟&+Т(w >_x/ff}GUX"R,"4_Mhq?? ']?Ğ4~!-ݥ͵!*ڢ((.~,%ơ5#^,pJ:t`44|,Sa_DQYգ 嚺<&wRU 53nh'UX߆PKϧOEoj=8RݟO?Ũ`K/Ϣj.V=w%E{Aue-1\[ʅ%T `Jc>1w&~nߚ 0yWaǿT˚ފsϷhO ~~nivwp݈˕cq?|7VniƠ};.-"?296:ge=Ϭ=:0nxTf]/(B(L|*ַz? ĀtTyq 7e_ώ+:+:u?C8k~%F[IwM4Z gkMŹL*O9qYs° ['k5%CQ -T{3/ugX >K}ׯ;2ʵ}ݝX\Fc1$r*x 5 _M⟂|>J?S :i16yw W|nekzN -=Tc}dn1V?G(Ǐ~֟gA"?h,c̆>]cݳcm~|4W^luU0)sh&z8$s^ULsp2K~oǾg+kEVIҒ{{o~ZEW~ZQEQEQEQEQEQEQEQEQE|[ο#'M :M>ksFI^;{kJ'lp 7g}*vg[f̣tg9GH//ms E*A*2:pku?Ӫj0==[Y>owcșTea.1$a0] ߄~.NӼ N`c͍{8?N.UĬg]8O{rܖVOysj5ߗM))5N.Q =kNdז0BUB5~:,W:G{]3yKk{$Pɿ5`$w>! >\7ۗN#fx LX#5Hq^iwWoNV}7H~%ʎ[৊Q)ҍ֜c pW~~y>ߥy@~aO!.U "s4գ|^5ٛ ]bKN(%Q nm丫6rmTLȥR0YSN8ߢr#DoOGVǐ=?Z<כϴя~=GeO]^&=> Sp9pF/0k_~:ǃ f?CX] 8$ ҫÿ^x[nr`񮰋>~0(H+gzz1r.?E/S}L´y5ZJW>,k >+S_w#~i? "[os|>^NtC6 1NYNݣc W77~)"~xoUo>]RO]*v62I9'j:ꚵ橩\g3ǖgbKrkC ?(Ksa]_N|#KvUݬG'iREʵ%V|PhA7hme?EWQ@ tI"hUt`C+ PE~M-o3?c QԼX\d^ܛ^ఏUE \+o"{_?|W O) i=[^sEE|Kv4h/c[dBr3r:YOos?%ϊRymi3'I#'pL?m_O舚J&U·Z5k \=;G sx97?ֿ=>N|l>*KXNd4Yܲ`K,Zs7/[BNYN$9RkAZ>vWwR' ˏ? y5A |Et-!{&n_ٟ<;^ hf0_j1t*z7LbI =kK&ޯקsXTi=]>g)I&x1t1<|ʎG>~۟PN+o_f?oY,t3_0~_J?O7+_ȧS٣YH9ա$JA|!|QEpC j8Bھ/0[4.x،uZl~_Mo]7_I&[JK=e|9_BHϥyo#0|J=iW.1 9ZUyܨ́韙vIU4Ok:ނOiߋJL;]N|dʹ2>|p'.i룿+^\itR[}7fGRWM2RtTۿ4*R8JNRTKe{oyPj JK/TtW_l|umYo5jOR0G8:!7&S96jI*_sJ:w_44ipV_8ͿNR5TqX)YB pFu"S}KZmQ4*7;[N@ ٵS8ghžu,5>+͟p`cW10JъB WV]ZGKf ZJO4Yrqҿ@:\f I>=M~ͤ&neãw^*d" -<6~ڿGj^-  Ι4i4GLH<PtJ_J!>eULn"X.yJnZs|O{1+Q(說P=tQ^bJQAAEt&FTE1u$;W4b[׵];DѬ3^_)cB++| 5 |9?af ".e'OC 4gЏE,\X[[IiUX3r SҢu#y1>௞ׂf~,xɤ:kqH<2cel6CUq_xk@l߉V?kžcQ@/& lY! uV~~Ͽo17[HeF#3c5^]|OH/O./Z.Gl[!dU_^`O_x|vḔc5R ot-BYw_WWrՃ泣 #ٓ kⴖm_>#u+:q;|v(c~Z]v76W,H9QU A`^j? >&"X{pd$q_?sYš~1{q09f>v?4Bp ɌWG l9єOƊ߳{w˂?\ 51]'W<_ !|"Owߍx~#h@MAfrc}? fr>hUqqW~.:x,N5iI>eN:)Ew^9MOy_? i }VHop~q^Nkgx࿅"MAƲyq[N n8`JA_t% ƍ[qj \!_8qۨg+cC+^\n&ի%ֶjiZg3y09~*sJ{(|Qc?#z2z8t{~!?e|gڋd#N$*NvF  GUxZ4uNOoy(台uq5:O x wF5E/$yWxY%wr/'5%9 ˹S|]~|}x9Em0~_6vϗC|Y񕎈ͧi?RԈ{u;̣~<FiڷĺZFs&qSwx0-Ѐw唼1W?1xZ2^jd[?a?i_(6x1y]߇|*bK_αy2r2aC7AwRgzI1 O.Oknu,' !i?|S7^9_k>7,qH`{ms?1^\s,r_  ^ڸjo^%٧ oֿ?k oyFP&Hl$~ O0QheIupe< z֩ԍHE=S[3kŞshZwtYZDAz̤؊hY3b~>y{7a.R].b6,wU|K_J//'?>6ZV m|B$*#tYNFp?sa;ƿ E-^$Ml 3"=  ~m:GO_şZf"ewb=w<~3EoZ㡙$88.28׽E;{NhPl>-8EZTPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPE 3]]O (^YpOMIdM\ϋgOx"Ğ2hvw\U]ePX_nn|3, C-n灵9)zWxCZiZxNmer^ZGh6pJ6s_+e*Ym};}Z8(YY~ꔕTK׼>V:_"mZQrX׳Xu%EjZ=o/<5eF>xGwvGK3|v8N5yg~FZJs /Gcxú<%ggGt6[X[1F=@=IO&h1QI%d=֭RIT')7vۻmSwğZ<{#žc4JK 8=aR ~7k.|>s?mǨL#g8$}9?nBm;=شcveRK/#Q0;}+_?~'#o]k~ی(ڼ9Z)"K *,taw, {+GKqP2*'vqmTMhՏrZtmQ&ӥIt vPl szl7y^|𵏘uq4mb3~B}9oj?3τZ|3ev~[.<<|u&7'5[[M==1MgDZ0+[bFvɸaS#R3^./p)ߖ-.m_Ӳx&RQnk.;8%wQlX)U>|O ,oC0T"t?~OajV}>;݌s[ŦA?> ndeUMG KPHB(;W Z%oOAi(kus"r2kl ͌*tpX{RWw? /̱1jʵiYsJջ+~T|+eO\\7j>'KI6Amm8(ƏxSŧ<9s\Gk& CH^[+ ʮ)ӷvxULz۝ozZWWRJj?٣f A?2!NYzĥc&&ѯ5{uKc0`ku?ߊʹ͎0XAs !j[xƺƁK[ؚ;XKPA~ 0^d$V;<k 7-IZm4G=p'̑R"Qj#\CUu> 8JVtwT)/~Kwt ;EwJfɶ[ķruV#Sm@gqg)Ӆ8Yf/J݅QVwQ@a|4|L>eZߡ<=L;XW&W`Os >_躖 ĈAU&IgNncC&Dm_/ S\i1M\y}s9+8n/xH.k'S2xR4[ .1D8F\5q_lOPƱZmd,As#2s+ڏ+ڼML鍒C+ڏ+ڴx*XMk:X= C_H_>"x1Ɠ-: {NC=/##,WhzTz9NQ+b((>/~ʿ~' WO|26&<+gl'l[Cվ'o'3MfW|noDqa_5VSn,5;]B Omsz+5)s|T~qsb^;-v}{Ǐ|)Gj`nD8$Q' ҽiwڄ&? 뱿T0g9Ar6 <PP?Ú'jȁo3ᳲ8y;ۥguJ/yx~=2Zq%DUwN^b}laEq >!E5k:݉_@glpvJJa4qVԣ-SN&(nQE|_#]{ q)2GM}?RI]6NInVAiRxሐEhgd-n8E2|ZiZ^#ZӬu}*3՝ 43!ꬌaE|?iT,*W x`QPau~8yөE-#˹io__ bkj[a,UrD?`;^__v:'c`Ά"$OOTB(9B(((+~*|lkc_ھ>%4{{xGh3s ʽzt`RJ)uz#+ʱ*\)T7e&ߒZ_)t>K!t &e- \K=_"W/E~>4/ 6˻IvyGW%c}/e9#'؝U9}dzԖ^ x:q|q%UNwki]Xu,jۗ]Y/ dƒWeNT7x &|)ooiw$3U爵hF'݀u6 }5QAkE0F#5 `ڤa{zի.56Ym8p EFy-{'W*)kkb KHR\n$xP|"df͡{>{2O]`z?f=:o;>|Aj8 ^شo7i]4W.+ǖWr.(Z]IKI/&?CGyVv yRV'=$n[{iHj1(+p88lܿ-rOjJյˤB>A~ Q53_e ᱬ{ mV}JbFFol.F7#5}&SZu-żBg8ʿ>c_i48G ?e< ˩73, |[N9i+\_dMX.ۯu-=fnFlleq$txj?-]?LO4P\|IƎBO`wO=?DP֍kmFd4ue kЂfaW~+BW}oq\燤w䃗/3[M;i}'+r9kbn]`4< G6cgsoOm_6]6Lv\)~C 6q[ HB( 8yykcϸ_/>:^˅s֏ލ'ϙ>_ ~j:~ Gy-Z%y :ܾ }AEXL -5Nb#>"l>b%ZKKI%Q]GQEW[E|sj)ӿgeXxM2g ((% !xswnRo&{[ʅI&8U dg"g⟆%ة,q~Κ jo㯇5ַoKhb2$=[ʆ9 T5^|?w>Sm.T(=e G_yQ__Ggjo_WMӮ hhX(!wc̔27Pgog⏋^8%`dMẉL+r3H s_?_5?[~gYKt["pe- f^~2>/|l>,~_BڅYeУԅp=-c8Dp DW/_ |6? |x;B᱃pc̚CLqFfyKcHos[//ڿ=Eܿj펣,I+yz͝#*2?8g^τ4 #>˴ӴDe=IO&/ڏ/ڸ77QKb=*w#?{kμGcvy$sB>XU{ukڵ-<=:(gږ_ݿY%|=`=)6ҟ O/z|um?^2rY2J y?Ed ]"մGMӬQF=وw5Sč>ﯵ~G$s@"KdtlIᴯ|#6ഽH.gW<'cd;hF/S#C8޸7(:s.Ep_~'⟃^/5!:Ffb>66`3ds]x4?hV:*ѸF))J*J0ӕ*RѦL'?_G^c/N\pOkkWhYϪ/3iomr'_V O l#+ƾ*|ysNs=(Z늛`֬1xĊ?%͇v{?*?&,W wѝ)zuGhږ}iie)TVRAWhoK[ּI2܈iJ7 `s"cja_t^T_d 金pcI=Nn2%E.gxXΛ =};5Q^@QEW Ꮑ>*OZw%b1){+:RWOt:8N  FR.Qm4Lm?e3]խ%L@QS]|rA<-קږ>Ǣ+Â)/$ƊYݎԓP \u`>oo^ ွ?{xٿt IZn%u>dU#Qu iޑs}ndFھA75?)'? e50~$:uƱIfHB Mv3 |?<ueDY#Z!,N> T껽Ukoek7yrvƥ-̛pO_zQiKN>ߥOPh֟Q㑗|Oz^d*j}QVѦe>ߥOZWUe/*c~ekX\!IaG*=o^5+FJQvh3G솱kτEi0"Jr$ટ osMؗI hcyb^Sş 3KE^#^#mi nW<}޽G!Jѫ/ /5 .iO^/~|*wo|+?Kie>\0 [+ҫ7]c6<^Z0lDg; у__?b/_--u;Mյ+=ŬrHMp $ )IncK"iI^N2^N.?&zQVwQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@ooQo-t>&U(QFY٘$p+k>7Ӡ\\E5Jm_AF[⯋iO~I;fPhuKfXogiHh0q٘7~ >|7|3g @nR85げ?[kΆ \)oo peX|׉}g^]0OxVoM.nn.rDj:yqg1:#4ؠmh+?7|m-փZ.;' q yK7)`ku:u~[cV cWVVߋQqM?# e5+_iiks2 *7(sdsR/??]<+׳J\>[-R |?k6z׋]-s[F{us@tfϥLrOz(P{yxԘrkkJ5Ug$kg&mcʾMRmզ9K8'sEՌ/ut^W-sbGyV~(|!ZQӤX:%4y@ q\οMYBo>jv|}܌;}z+mJ]@v{XO"6 ^q5?Hݯ<\YK3qpOm%-\x?O x$G՞r(3< Moȯ`_yzfWfJ9'0nߛ_^G.h4mg 91ڃ;V'~+LTXxh>}{)--}۵ݏ??pEU e)OTTiYYɫK~)xX}js\]J]z(?l7ğO=}^Zi\ii iY{_?| ŜڤvjH!C6 ``8sK&R&2gUf\UCr?QC75>Ozk O Xohtm.̝ۓ'z-}4;n{[յ9 \ Akn&|Rb Xdqkֹqr-kAڤ[?s<<@#ҵeJRDW^,e ܿG+῅o >$%^"Դfc,8%K6FH6N+vigwZ׋kex~*yV }6Ё;MjgUwKx?~P*?z/]ŜPQ*=taB(VsEo迕Ň:0G+s9TN9A =taw0O@+&xw^>+xxN|2׷V&)Wtӽ±$n220L208-j䮫jp6yM%a?-?,cݏy5|"e$b&ɾ ꒃn&]qmx1V?Jn}9/]^BHl^'Wex_YKk$M\3[k-&=%۷q5qjQP_hW~O?75VZ7n#*8W_, w:>eH\3?ZCG>$yuMn|2ӢxDHeaoQ p=sI{öXkUbKk)hfS]I} h|Ew_:2v$oݐw1e8 ~ڟ (D4|?Qm8z#98ٔQE!_dO|BVᅋ*|Kil[B0i$5}mEc_NyfxeԔOtG妓C_|FҮG'8km4v(WCw V s/Os<9i$Ѵ-IAk+(,= P3[4xV\QOەKƞy<=JeZyEZ~h'_o-ssUH[xyX~>8)*t /_q^o8csLDU}d]+I%(>|((*/}gPt({-@YwbTIb@U'<׼+ZYӧbHA4mʳƀ%5|9^ .Եݥͼ RRD%XdzY j>3|axqADq0Pe @rȯo&woZ3^0;<*BDMnjL7cbt 3dB1lhَψn!~Z_>/\\V֣6%2`nFAȍٟ߳{JПi-CmƋ=2ovqͿ#YեzDVR#qsb|>W/#o< zg|'|OZK|3Ŕ*9\/x#3W i'n@kN`L[ˤLYg(U|-񵧇#m1Gַq n ݷi_-t8~VwO'#nC,-粼[V|I.df7/ ^| kmXmW6䴑uyaּ3SMkPwښ8 2x/tJO x~k NR- u$3^L7RKp~<1lL!^.t;(Z;{?^KSv [jBi+5%P|/h%D {5I)p^zW>(x]WYII]/m8"H[ x݂Wsוx7mî+_x_vxDж02a ;ag+h|׳LbOS S?A7{IIt#{_M7oKx1H#ەΨ}j^0G@ulj|"m~+x#!Kƕdް8zd2*?$-oSq/mRe.e/(A~ϼb?*iDž j)fg D1Ğ(~6_s| оxb8=|#lJp:F2^Qox!:uRgʍ@ƃAɯ1khW-(y]Z0Y_qZӳkƒ ޣZ~ڦMcP5+uw3K,yfbI;PMt_!?,P$yL?w]HaxTvl9ONzϣ袊B((((((((((((((?/{/4kif >\᣸}դ po&dGuMV#(EyyԆ2k>q~W+¥jQhyo{ὦ+UQj)C?k=̭CѼ7m@4m*vig`S=ǿh?O5E SA:nzǛo.*C#`VWQ^I+#:tN*VKdG X~Z&8|/RZivH-ޖዾ8S8 G,qN'ݍU$ \? Co Pʁu>5L=9ck/u%=%(7'ozX~yU_äeB팮GkZ7m`=& WG9Moy|A4Ϟ(g?Y-_j EͥrxEtqF 00E~&?IO|:o~#~$8CJՖsL)63)8j5t/#s?0Qr (|#ْ?'im)?bqjVG%'R.֦\}vk˦$}Q6?Yr&.jg?ܑ_y9P`k:s<Ӵh7BizŭBĊ9$NsCJ]⏎TZ]G:^N%ߒ[+oAj?e 9~2~-xCT.O }Fn$#%1,͍ܪx5$*SG|l?$⿍>V7U&g+I峁Z@[IM۷3^O ~^0֝|B?Sou$zvk=T:DEdi8MxWUl-O [j|kyy]y9lb`YI|#k^BvZbef\ppT` uk]?oڋSI o᷃׶PLjDQ+!¿O_?kh>%agUo0ibkA0*&4R~w}' &׼cQž*/$p%\IrȮ.^֭7"~Zߌ~&5 `u4ETϔŲ#ܞV{.ir~ vuitJ.<WB;Jprm08>|:ֵ7㏇m=cOxKHn/qGnJ\a[q=2+*ׅ|._tؼG{/sIOj3xvz ^E{9v>sW/nQ5L{]Dhd`$2ީex:75?|>~!Bsg_ftA+C,=+kK<)~ßhMx>.࿈6:Lkqk<-]9`&16(r+~5goǛrX{M65F3$&M;|)2g.w[XWJ/mR:p;;+ծŽpړZAo?| g?؏Vos[^6i"{Mx,omf2\8;N8/oCG/i5|!KJE߅M6ܻ}9UVi@M>|rMǿxX^";8t[8]]]XC9%f#h^.HjAW# /mX,Owm-,"  C_yJGI{ǯ[X>*x_m%U+ 2[5i,dl>DdȾx^b-J|AԿeۻߊ4k?|L<3Us.ND/)y y&tR3}CL|WH5#OH>J=MPni9 t/zwoa]C“vCCyq <͂1B1P<"ޢZΛÞռ/.|AGY ~ŵGW.&,amdQpy$6ҟ O/z > C0ok 蚆W2=%7*`F?<~SKޱbiVMӒkm˫JpEEPEPEP_mSzׇc.n d~`dM'J"|Ҿ&~׈m|7 I+GvِvhH8 D~п 5h ucu=NEB22A⽃UtwzFXUf;;XfSّ}k?5 xOEvmp[1+ $)?~~^nM mz+; sjA#'.k>>ooCxN'[Y>h\@}Q@7>x+_= W0=A!Gf|_7~xVmX;%.q88*uz>s2JD֏RioV>Mgw]-#_UUXX@W^͵ݝv xf@"Â+þ,ο~-Muiؾ&+sMPwI^{^x? iR^}Q.b1v#&)x8Q|>(1 ܑDy2g{%~:G@OR]%x$d9U[i*uңm|=߆U_\j5-GMYӥkW 885KE~AxBb&so|]n)GPԴmA3J. ];.pg#xd]j}|5>~? 5H.ny}Q:[foY)*XyK6Y_(+-~ѿOinWzv!|+Vujœy;5YnX]UN v.Zd8yet$R $W?lx=tO.SH>ݺr㙏|}v#/\>xt*8N?/ٓ„VxŨ:Σ&&}y~O͎+|NW,?q3) ;޽E_|,qT_:>yٚ, __tSsZ6ɥ6r(E}`2l*<Ɵ~'xWLwFdO''x\! 2py5C pjvϮ8#a*u'RU]9IJK]-nåRR-ZsfؼOZC.O2)9~6|x+ g|1[\r}OJ_mxSm|8ʚKm9lAz<k?x^/78ïr 6/bř2sr.YR7{y[^uvapPpIQ{'/BT1?qmIN4ak%vǛTǎ>(*r|}k /'Ke[D^ /ubH,?Snd"d|=:?uĒ+OK;FzWG>_|_wCsھG~[|Ws|2fek >% &u57IBP ۸W=ơmic56!yf"(OS^^7тWxr_RSIծ4 :qn3Z]N:I=:/{oZ6eiɟ> QGʂ}Oa /!QW[5X~iؓ0[{?&ǿ+Ķ?j?k).$HT1]Ը#W!UiTW}/xf8ż={^Q>$$kۧwjsEdkR~xTXQP]Alt <3 xwz5G4X-XPd95|}fK'zs7s†KQėd8.p+khQ*jڹI0XUjtՕ}v (=`((((((((((((((! ~(~? n Դ6+s,)2ƀC^^/Y8_Ţi!+XͼԦD69b q#Zi&rҾ[ûT(/jKG?MןSS`[ty~W{iHYTg(¿M y~4_ um0ge3ȉf.vÞ?VKo |%O\_xSͱ2yaIsY^GqX\-6]cɟd9O7K:%Vzuoo>~?l |*5<=4ph'r`JO׺~RQEQEQEQEWAm{U;nHCoLўH',ɦI҂}4[|I][>|&?!tM:@#v󟕈tS_g5lqOou T|IxWn" >Ń s9} 0EoopA8*j|N,~E|C:|;߼<|ju+{k?HVֵu tk[sX_[.fɺfm$9 (3Cս7/~O-3DR&zbL֗ *\ΤJW^F_^CĞn^$,:`8ewl`q_>3a[uυ~_.;;{x'2jkVd}2Si/= ӒOcWZncI)liw{3*{YW恀 0 nn7k<;aw'ƺEӮ+6rsY p\`{xB[xL qXZ-92ԗ\m~ >~|^Q^ Qfϊ F :SUK{ʡ,ofh4:O5QI|Wћ>L6#DwK,N0<q__o#,&K:,iF99NKRTpL}s.| nUrڅFP]q36JS5qI?_)+#ͫ 'aJ}ygSQebsGk>tW)s=~fܕs޹ƹۯkƹۯkˬt~W;uk\ݯ._iO}s޾:6ҟ O/z>|Sv?((((((/R[>:톽cɅ][1Ԍ9W濍dߌm?gOkZŌYi4\ E#;,ywܓ!_PwA/Ɲ7CDIDќgPq_WZmiv dTxNo_h˺]Y@rHe+h^)Ή=&[n%Hpz؎A뛞Qq%x욫:6V8?Wß!5̈́߻@T&&:#~Z|E ]{Pm%xF}6G˜퉯_ă f˫db[dwtCC*o_~LxpGCM+S|?=~7kzL1]Y$C wVzi)UX)S (QEQEQEQEQEQEQEgjƕxvW+#KMws,QF=K1Rm-ɝH.RvKvh ߉~ gS]a`~;.H3Hƿlﵣ5ֻ\Iëfoow>}9?~5"vכ{(YyXPq2@8yɇ\ϿD~Y:|=GoJP[ocg/-_j&,p/3ge>͜ c xzxC*i>ep ȝ+׼;xvM=&GW{-R;IIRAqZPAp8*ja)'˪O9¼+,3Z!oR\Ig#˰5i6{'fgG.N֭B2KQN/ ZUc)[Dw{t[ÿ8<<>F29EF6rzY9%hu~E?ip>\[؃ʨj"4eiI{D7 g߱۔{S\K>#isz[cD,/.ZW~ks?co[ſa}A[Ӽy.d{BByaeW;d`=SD/{[*p'T"NM[Xzi&RMt?+mw}/ׄ id=͟YOVx[߼~>&έROlgY`tuᔃW~tlQEQE|(iE ;מ{7Oڇ.w5"Pϭ@<0rO~O}:,q^m.q-cʀ{LN+#߫~`>'¿y%ٯC?߲kM>xR儒iIxeu 4"52@+ xWÞ 𝾅mOд~嵤Aǫ1Ē{ߢ0:T~ଫ";_/YyQ]GQ@Q@|-,X?I!l⮌UMl_tSAǏӿe@ CjZٷmd۩\`8o> &QүclJA1_߰7)|\nS_XpYjm2GpeɆ~Z?HMs~?hQ<fGܐ^X߭HS"7c[/;>!? ΅ȑkw6N˄g«`V/7s#xCǿ|' U]'xnS{g, ݠ^%00eRr & #-h7:6|5ϬF?.qK AX‰%,-ݹ |1+fOxc-Y&c4pS~"wyO8_<'j >h%4C1dy&/g+((m'Va=SIi[7O$Z?ݪz3l?c~Vơi~'R[Im-'_[+kҺk?ᯎI{Rh*,1ӞGbc$/k871}2W̚NW~>"t(_'sU:D:2K!9I$R6g:Z~j|1X_xnWԔOYS c#_CFƚ_/:'{mWO[ȼX$*'^[/?>,6=gO\B=cv84.r+G"4Ѓ+ "k(ɏ^蔬?2LxOL#4{u֗%θGFGYhGYsh2+.?C3JJ訫w_x;uMtW_x;uMys?|+\vחX\~SK޾Ź_iO}|u_g;CQ_pxAEPEPEPEPEPEPMeW]aA(ύmw x-m_Dz>:k}( x0?g=BPwcxú'yH6Y{@yowuno#5ޓs?߈YOm_v<@i ׶"Yy` ##ExWǃ-CwMp?wue0uun<Gp+7o|Tt8/dD+m뜣3ӕ=Gpդ\n*8)[ɟ_.|]{\|Iw\Amۋ^VP98J?_O|b/7.>ὝHp?O}|wbwY.u x#XӢoYe>lq^cՠO{| Õ ?Iv.9#'Ibu =>+#h'VK{-n%y GpkퟄgïpCi_3&I7ݔu69*+l>>$,?xwLa* [Ӟ%f[Sި?A ( ( ( ( B@I==ZY7Ab[3в8 WkW:?<%ܘh ;zƃÈӧ.EK>BTĽhk?Nf>)L%V g_j[xNs_nZGq FZduB2;_~][T|g[1vf w쿕~pnsRU%- n䵓NS[Q 𦌃Qts][ˏ]`m_P*f^+҅8|Xyedc$jkIՋ~=>J/èSN>ZoI+|-vV.׻>(6>w-ڕSJ0vj; MMr)ڜ#f2~v9 vb??}Zt4MVHۻ\HHck#ͧT;E$~3?>ÿeX:kJ%7{hh*Ņ:TdGE\cj t2~/A4j,˥=s.35`#䍀 h\|j_U#ὅv_]A*.fKj z߱7O9?GuviN"-N5',!H!5: N^"0m;$9G}*ʰNZxjSsJ!U*I=#ugK˵g kC-<N][* JgI T"1% ]I} }FY3sPٯU#x^!JaTzxh5#J(P@(((G_)~,>m`:Ne%]N$qͅVcRO6r|`b؃J߲߈mZ \7&n"CH"#0pUʑ/~!FxW~0:V/y<h3~dEl6#rFI? >/.h-S??xLԴNiaaxDnRO5SY|b[./o&RIV0#\2&xZ|-wj[ ~7s֢-PZvA%k7 Jo>_}N UH:\Kވ 8QEQEWMٿ?'"_6+f`\OFm,}O[JJ3Io\\CM, }|e٨vqֿ7f8 w?3i\]D>0Go m$ڪ2N< %,])h8Կn#ÿ$Y-c|tqp;<"d#~u CKZ5 d\*9 (ʊ5!?L[8?iHw&-ƿ$;~?Gc_ o?G1?Iŷ+|`b kOC01m~g|'j[]ݡ=|;ySA?iHw&-ƿ$;~<__٫W^8 ]_S]ˋ\QS1o]+yNb`Gr *1jui=\-=:|Z_;C࿎>յ-د' ު7>v]'ճ+|JW cπ2~d=zpHS 3^,,5*^Z yXr;2Gc_=9W[jKx\Ңvy&yNfP0K_tiVmiVvo(tUU*݇Ҡ}pWQx*J7[^ztH(>(((+5ƿ'O&2Ow_ ]Zx4J\'z~|"X93e  W?ƺߎ~-^'7m̐A`*c |yc>.M+?f/W?oJGpޯa5ONmvǃnq4h?,R8& l0>}PoLe R2:JPBا/~87?ozJ.RI$z$շ? |5h I{]wt,>U^Ko CŘdp@%J8`OP^Wu#52ؑr=rl>,VJx;_ BI\_ 4nEM?D~*p6<3):/KϲmcX--YU7m.[$w$Ošs eW|'צ>oǗ$jԮ]DDF@!>%⿀> mfGO jE~G;-gVFX/n)ѣGUh$ FryKn&Դ.#xy&>$Ҽv։ûrIvn_< ~[]\AsTn/̊FR/m>}Z=(+v2/:ܝCE^pQ0q:QQ^}ol׈WE ֺqgЯ#\G^pprl{FU૪]x2&e>zS[4֩Mw;x'"4)-yڬTzeZ$ORkGTc ܑ/ʩƹ ^"uJmW?Წ Zt^RQWzRHӥ^>sL;ҳNEHEK~u#̫X# NդڵQ8*W)M6dtRkPEUom28µ5)'S}OdcZghi{AYd gĀw*H^ ,ڇ/?4ї٢"X2k:ĚMHɢBd,RZYO!Ǿ{oȟ"=u?cK+=~dqW@!(&h7ky6Oqp[2֗-"uy:叓14?V\pA83q;i%/?cQMvRwq#㞆x;\X5ԏ}ށS$H^FH뭥t\ͥt֟_Dj1z^$ώO *IQҤZWgZ2ʪіfd@d3 XxgJ7 3B&iBg!$2OrIO0޽ WMf-aN($_?4yzgU)ˍ\=kg]%#Oj3Ghy˲4?ڬ4zZ9=PZG 攥t;?|+\vc=s޾:6ҟ O/z|um?^|!~CQE}Q@Q@/ 3_~ M}?'m_̿o(}'M7U C@g1 w۹J| YYjEoniki~ H.nbY"7iՁ +׈~"s ?|$TfDqos+EůLdm ~G|"li Ӣоi:v+f#9+5o_~xQe+I%P6RI#+B$vil1'aPXhT?g/!GJנ{N. F1b϶8S7ωK0^?GY[[BdYYn<__?4~[7JiiY1|/fxߌfuß>;h,G^ȶ,VZ[\{ioRąPXn4P[Gƿ)W[_7xm'-ΖKW0 41O$>&>'h2^>MDk'1mmT.ٿM|[q ԛ,;3>PFe\yϛdvޟ7Z_ [T~7}HxOHi?XJ<h˾ |Jf?_S>SŸ " O,ZwǾEE&U?>!|?co/ T'ϋ7i2Z4axVX23D* Ǿ#TARZ_z"OYV?.xpxAV }W|c3㿏*-csLd=iI]rF_o⯂|🆜xoxZ5)GEi`r8EHÛO{&\Kww)gљI$vu,f/ r?ѣ?/|=/xVTPn ,M/<~𿎼uZot[[C{2ó)v"6~%Ğ2?MA{jXi/|RO%S˓N(*QujZρhhzŬ l)"oze=F=?w޿G^)𥦻_Nt{fRFGB: (oYb'Nڥ7?hi6?6$^کfK ]!eHxcǸSj4;_ J=wH<{kDž9KgU=7o>ҿ{k,tO3/VVL#F?^¿ثwJfɶmkPķoV3V0Kywz򌪿֭*G?z/TQEvvQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQ^sW7Ԋhnc<_ŪVxQ=8<#-ὦW>%U'׵˩kZ_1K>F_q(_~ ηwJ=TS|mchhhW==F@{BFV6z6zz6zeVvc,z:rV(s ?ZTw:WЇVU:#؀ѭhbD-'X??R!sGJSTE֯ĝ*@VKb*,F*iPƵj#kǀ QՓwe#[Hښ6j*cU)Y`x8{[E+*VAk'V8xqִTP#Fa5cJrV4ӟ?4Gx7t@4({I$ldl8=xލ޷pXץG/x[=leRvz5$f5%B~ǿ_ZBuxd7YMZ߲ڏDо(Q ұ4y%.}S, G26t8?/ MZ e ]cYd>R=+?5~xLM?=v#a~tW5i(5ɯS§p:*ǚv2qv$kE?M?h;[?R ]-F*]܈@!/缇ҿK4WO|/kZMW]\Z\FrX}AX|^ Vԁ:M䋑mr'`J6?@gڧ|mGc{rxdccCn,ݜlZq KJVps_f_=_TTpŤW<x䍃+w+?eM5tO<5ykfqhfS,#+JRI3Ju'NjpvkTGo'+7gr=bA6 \W rc:jP'@%|q"H̄y~g5ÓʻgcpʸxHC|'FOM]>_qK3+L/װHO54r׬пo> h7~~9'w\-.QG9ywܓFq߂_P_xO㆚xķ:/>@< $Vn蚴oyV1$y$g^Bڗ?Ŗ~5xWR=E~3&Ԣ q9;CۓuSקmׯtzR>==iDcj_>1`p/8hp2q^_Z?|ex"VK,G} /3{?4yÜӔ=g3Gѣ9M/3yh?4s)-\ݯ.C*%׉aTxXP?(?r~r?w?ٿׇ<0˾xcolp9 Vno kpjk·Zd\ic5ċd5~kIu,&dtbHF :֢Uᇎ]\}ޝdtM7?uWUy}0\H\nޭܒ{_|H/Oj[{޷<^!46P^&(oZ9!GhW?ӵ{Q,Ŷ߾BۥFX݂Zqo@^QEQEQEiW޿C~EPEPV7~m)i_%3M~ph?7~/A_A۸m 2ՖH`ly s~Q@||E6zD<]&ZlOsdvLƾVWEe`FA 7o{,m5-@<= d{+?~ӿ~{(̕s\ch&-^>Ntc\L|Ti }@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@l4{+hk (;1TI'8_P?)_^6> 6~tּitjK![(BS,̈́L>tm+Hj6ɪxR6~bHYDC+?{,~c &u?x#fmQ_c<> ό3h'+y?$V|7s?][IwMޫ+%zeH_X~:©DQUzV.! \:8A>³qSIZ;[D^M>Ȱ5 4+[ɹ7mlWvVWe(P4G]ku+o Ax+YZ6T' uji渜<+z{AYy)WHuGCVNN/oCu["u1}\XCiwZToGsw˪ f-fX]]^1IlZ=ׂ!%76d23r1\-]+V,-wW(PUԌR"ՖI˴Cjx^ˀՄܥFTJΔ<`&k+:yN& sy-ҹk/W~/K[+fqw1HNxXh0jȢ"8sTgO|f_s^ֆ&JI~RzE^y.djД[e^u#iVkxSZ'WY4SH5 WGn $Vspob;FEwmVvM"a=.trbiپI6 c8"n4N eG~U+KeOE"kS/J2K@Iƻ0T֥ v7-9.b2I`2)6F]Z_Ta>u/ɬX]D7ZQY Ef7<~(Kv׬_M/I2{MOY/|+L$r%"4"5>}e?=i!&Q2;dC:Rt% sX$7˩<ֆ# 'ՋIB Ӎտp+7"|/'Ú/5i5ycxـޥy#T|CᏆM_SkEH s%zFR2NA+V{'~j둿T0g 9\7b0|3.#o{*ְ\_}WdIOh~~?|z[ix|O+^?O &z[8[dofץuᱴh}peyѓhTgGh>+ŸvS]xIfC=)V+e 8$}Esbt14:Rg ,$WQv~}S}Qwگ9z8Nˍ4ݤg}3"on_7Wsg\܏x\(uI˗=eRe ftI"xU62 W_`_ɑ%o+>$_(+srLz?\qTxqoEZ^r">9@~ҿ/-<ڏ|˲1 ʓ%FǏ_|-Ouya4Eg9x޻k wEe|x7.'-c^K_6{ Q^(QEQEQEQEWMٿ?'"_ϗ;Ucmqt'> cfN|)B&Ֆ99\1TJ2)MFi~?+noA",K۱qnr7?( s⚏}? aghb@@:MU;IdQg]|Dx+Eÿm ݫxrIylpg'!>g ,Hx<1O>&.uنyVA.Jס8h;G A),yTcv+x2@5?i5σ~3ߌ4rd$J>6 pug`5CvM?RpN\eUGX:?f!OƏVM[V5hFQ"|NV/o_׫!3_ԿN|k48ɣD ,G;:_N/MoKWVeU u~ h>Z|>&Yrnu }}IVa&QWb$TҢR0~eG8Q5{3HEܳ6H?>GĖfPWz1s_zWiySYa~:~ٟ > x1?Ǘl~?sKFySWc8Wi6wZebY݈ 56 fM]SEx5MK ]9eCa~lj_%ug|ﵰZ>wN;n+h<TwW.2JDW*lc5щe{}T~ϫp7|eŘgQTh[ǟI[ϡ >ZxU-asmt'{:Q]g@9ϟ~hoP}5*/ƦBy>pdv;x;>05/^i/t(;VہzwZ?o_->i >|V%:m >LO!D+2\.mJ~~^~S?p5<4&#!K1ahurɞS_kt?+a+'<mkzJͧ]M0ܠaYv>UxZY^eDE%`f_N7g=c֮ uON|>m|A}ZK9g&#ω^/(9t ,׉h? 7^c,FZU[/V$¡1'KE~l~_f_b >π'7-YdƑe7 $JerIIRw![_>,/ď׼|:ï &`M㑤!2HElEq_tPo|M1 JaW )3:ͥİ_C`\xـ-}xo>T NJMSÞ#Ӽ3fl\HF2#+*((((~'_z(((XzEΟY-bY"Ue`CEZ?:2}/ j_x'Hgr89^ݳ.py?k_|i/º֯g5 T.c&|kvId=+?oď{N+4Mo7iH>[ GixvUn%#qC_f[Q:SwQ06lں?֏/$<r7T9T?H+VZj.ciWQ-,YaO+ hPEPEPEPEPE࿵/BKHtHRT2:+oR|E>AM ̖Iyٮ7/g|`b kOC01m5!??E~pL[?iHw&-~_ƿ$;~c_ o?@W1?Iŷ|`b kOC01m5!??E~pL[?iHw&-~_ƿ$;~fۗYk^x4=[Ft[{x Qf<3Nx#hڊ((((((u v o-ݓ hٷ:w$6Eoi  HAU_#hm_E}#M2j7)#0'(kPi-;Ȑ.Ê_ԫ)ya04߸&T*UJjS~"*uJu*~2HV3Z(B52S{TꟉQ9TJyGe9RW$jhr΢j̪"_SK--H[Coj ,^Y@x_5:vg[@ǓT(Cdɬ??? vi(lӒ-QEQEr17)4?hV* 7F 'G$OjX(K9(?8xXmɉRuOVyi׋X5"gon?B]I|/K2y/Cl'zPWݚ~-_ZjZudU=ՔG&9ψk*mZWqp c(lkMCߴ/짮~ egC.DP{ls"c?j،74{ת>7kx[xe/`y^kն?T(>?%m'X<‹+[p '6־Fzuct~g~oXURO&OɤŠ(O\=x:. 6Y_۬8#yk>7'߳W5XhSj аK2_tEy9I#jl֍z?E:ruRUեm?񏀼b>~ӞlC6F)EG!_9 ;M~#g&{caU`x WO5Sg~'Sy+ʜ kş-ǿxiH{KX]JsӔQn@Xdּme?N|iy]B(Yܟ5Iv_ֶFOS>ZsXH.rK[HJ}W<3CsgżOo*X2#eٮOPW)mt.K̖(@((9m"{yPHԌ Ab? l%x_Þ'x/O3$,f#ną9"28𐟆͌ }A5F)m9? |mP~j1cGg ,7R`AK,2$.+KM|iV7tq:~ahgi1-fYb!Ԑc|B<1Hsjvk:yw z2ƿ*|#6?*/Ͻxxkk51p`{ߐ} A5قb0uUJq~_OÙ?`4ƭ7KTg|jسT3>$|#qhz)eu|ڗñt$;!-2̉'u",#vvEޛkg}k˶Xf@Ѓg]" u ks X#xZ)< 'uԲ^9Zk]?^ߗwW0˹|='^G/E5夺%'_V+9i_>(YOOa:/Ei \3rIkoaT T`OKMV_H! ڕh7:WBqTաVTQvi4F^/໏x_|;\^KqvsAcWS<^f kV6u˜3E+GdV?e"mc[epW쇝@?whUݑ5KO~4h힍n} 7L?Y[,gF'Ÿ aC_55k2 H/]*;=@F]F߆,OZ~Zk+(_EU Ԣ (?^{gxF߉<9QtY5hh%\>V/ u/+N;Fh6 e0+`W_x# 7LO|g.i.:Gx!t@#i10|YaG~?~x]qSHY ,%K36Q@p<xo tVZGouqwIq!+,qRp~*?.0]i u=W+6d*T+#$eH=|xo8:očþ)1z&Vky$erRwಷ0Nk/A_+gV? ;/JP~蒾( $X")qPꆑM),-R++TXQ^F $f?"C@1S/㹶pĨN ~W>1~~ >s+L熴siRjha1Ȟ+u z'|JG_B|YP5h.mkgt|[=E}|qZ+~ ՁZ{bzy'bvUg#!G:G|i#mPF9K(~'_z(((((7Vz*km{OWp (`^E~=j i^"7 k 5A%8~g/CCgxH90P}d['wZ17o>\X>t}M(+GJ%ĭ_UN?)9_?Z G{;C}ٓGвxl(((?mDdSw_QF??] M's|k޼3uouz|IJI|fcJ0Wi|}Ulוּ9/4[G,{yVDbU`H8 AWßc ~-*'/EsD|gw]ter #+ Cq n?tω:ieǀ|`Eemc!H r=v{#II8 zu8+7F~=ENuK F$}P^i [NagPH]/nc ?DŗSXj6@kylh]8d;r0j+W5soĿ[ KKX>;ňeuEĊbĬYrA` > |^IKgRkGō? }Q}2[=A 4rC,8b9 n_!"| LkӮlNevXUw*(r+HV+o@j~/L?$G/mM^XYcX,heG!+m`6h)J|wO~-{co}40k3[HgԲ݂}Y@~x~{7`o+o@QEQEQEQEQEQE_/d>)rZ |w.a72u`߆KMWA c[_o* EjP;ǘ"Cz*{}+Оqghp$~>eT?jkcuzMXcJՎم˃qҮǣafec֪ǵioLjE:ŜqW 8a1 gڗiU3BКt_Vv<uK1mi߉xorjd&Ab8@$vQeYtQ]V|Oq2:wWo{W}1M_,«Y_j˹Xwr~>(PdcJ𧜸:97\Ne#U=žG aGb+ԯVUj;M ((()@ '/_j0xO2Cr}0y$4eZs&?˵i2DTϵ ^W9մ/]֓iZr.-.Yb} ם[/='/-h;SMW4>yN;w<߇a/]Qcsb+=ry /z~~|OY>,!hyiݴas{$dW;??TQOUK4'k@MDqq|Ae5JɽXҗ/T~\ׅ-Ӄ|"oɎlo\ba*y,T~c>Җ3\hrn"t[ɷc6bo׀]ݡ?,-'8ppH:zuNIj,etNddz+S((+oQ &D#tEI$ ;{̲v"7)8\g(/oįÚoiMW9fLE\Ly?I h:'PFP47,[)eCk?)y,">!}ׄ@\kE)#W1<78*3HtBU)Nퟁ7:xB Cú< 41DȊe764xhkqkR|H`4ƓbGYO}pl 𺁷|8o0O,7χ/I3?9dw+?u̝ŽG`x^׫^\WN5Z ^Oc*qV5JriG+^ u"a-Xrjq4cZ%tM5Ѧk?GJAt}hÞ3N-*PHFa'8O5ޑ߳7/XuI"+&i#>]Ź+*y`kO Wоu):X$roa'mv pH*3< >\>?o87;\*u[&mV|=6.WIx7lOG&DkJx%x$@WR2#_7|\~hOgw4zu;:( ,j|PW#9S?τAc O' .PU`ӿmqq bw5Q\)r^.QR+iv[ר>X(p|,mmϊG@Iܥ"۔cEg$0ꦽUZ߅-T~0]iZUyHw)eIuk> | J-cC<%xT֐GgvWhmۗh`׳&A_|:K>Ե+V,2H1* (K/-|Z< :jln'yvHݑ5|kcX3w\Eqi7~=$s$`{1$eO̧JcV;.x;ysTeŝk/c"heFϓ]ho}KT׾ h_+|8"MsN>^]Lܮۉ'i K" `E~=&><]࿌WV|3{gJPE䆷D3(8|6,S0sG=7`OCM?4f=ك}>0sG=7`OCM?4ďڛI4oGKLڧ' O{?鿳|`?Gzo>?0ϧ!h~{?鿳|`?Gzo>?0ϧ!h~}~ ~%Vˬz'Ԭ[)u0FTg=85QEQEQEf> ai7Ql YbOfV_`Yo||1ŢOz69z+2~+{g|GUEH[WȌej@%|q"H̄O -"_mi&Lm7VJ|t?r]ȻgcQJxN`q_1>5=O||cQ`˒ywi$>3@WW(U ?u-'X&PѢ0Ұhﵛ:WO9$_'aͻ/4?m/@/\.qm;ъ,1%O <_]}-6ܑ(1wbu4 o5עHiȁgUGvڃD-|C ^O}d fW'%G7g~?Ÿ[T׼F;~nxFMy55 ex"lP,>|x~0O? |71|7s[\uؑL"F"ɱ7l~Q@i/ৌ?k ,P>|1ᫍZZ2kE( v,8` _~j~>i~$mn s>tq@v,K:+`+_ ~ ".j?Qe(|F(sk㕇_-{wxT5C}_j\G!`lCGbFOywi&ẖ/6d*fK!?OKNQ.u>mo$yXP2Kn'1t?goߴG4ڻ>-ѵ&l(q͙/ x PY  +EW'_zOOoEPEPEPEPEPEP$9TIbu*`x W/ g?Úi&x Q%ڧ3YC@CF FA(>(Cx_f-+S>,rx)I_[ T8fy7d8݀c(K;נ4m56H-0d#</-R2=IkGii#M#2u7ة|/5wii*l4l5oii9ʛ  [iV8^I#Aff8,XѰ—I GvbX#!hr~0\cUk.ao7 (!wW01x8Uc?38CZ+^TM=_uN]\53j:}bB8PX^+8l~>j;ſJa㯈~{h"9 PAKc #_Goړž{|(𝞫A~ֺz/lKZ 2F_ '#9O3< Vիid{^gF]6m7Rj:U07qtim U;%.q߃6}F |Pg+X 8*ى\^}_5|t<'sB`R `~I8>YP/}|(>+񇂼']xkƞ0d 2AԟQ@Q@Q@G41\ZG<!I#C+ v(/ڏ /*cNy%vߦQ\*K,UO5šiǥsLXdv|q82X?C&eh$Emen 9~x ~#G D' 0>߄^+/fA.4Ks@XیԒO$т˫ P-x+6^M8-5^H] qOJgi0QmIER\\ތ]xh~i>$C^4 Z'A_|D?2^ujG"6';cac_TXFk& +ٕJ^?h7v~¼6bQNݖB?݂|o'"OLH e3@ӮmlPq$ĕ(H8ǩ澒/CV_)7';={m&W-/2[f%0#dxlwfݏCG\TEɵx)맮E(??k/ڿ-Xo`E.^k isnFp$kdԺ |vv ~"p1!8R5#t~fXL~8-E8Kf (;((((OOo_ em>?>=6<>1:,6i=,;җ;V'?xZ_cit 8N-g#&u n'9/o,_x|`:寄I2wCL%'i3}˨||럴ޏ?|? jŔRxYEװA* mخKx(Q/ ycῌ0_MeLԆ_/eUQ$L>#~^95!=J7 #ȑ%*s†"4W$5)H9bW`w$6|} i ?-GO(\[A~tgM:}ڻ/lk!ԷY|1U'n0O~$x+7_ZE_o式_fX!5rIOv <#g߳76twǬX{sm=XH'ǟ''3{sm $JIo,ɍ\U#[/SzFZj?`u;3kuhl 7P@+ۥ}@c/į 5~X+M_QEQEQEQEQE^7ID|o\.-BܨeĊ= R?g{m+:eRZ|_49Ԛ6Gg]*OSk7퍐-#Bt? q6 Gvcrk Vo$Y+L -ܓWżv3CʹјT + `x A?3@c |-4Nk{lXX%]Xd8׫b_/N*oM>;kM'm|!x:#!x:#47¿&t<%G<%_O¦WDnT |?vؗS=ؗS=}? _ON?S|+i _7@0b_/Nb_/N*oM>;kM'm|!x:#!x:#47¿&t<%G<%_O¦WDnT |?vؗS=| @@aM?Un-lb0DL # ~¦WDn4u=(s]hC,y$pz(((((((+όOG㎽፦Z}s7/\笎&W'FtP厕{n+~'!J)>Ʌ~~৚Ƌ+9t\M|bw!HX+W;_0O2CqO xwĖ(Ix&‡(VUuRI2U9٭S῎ u߇ߊMAOX!p>eX'= ;^eګ@7t9ZCvp${pǏvg=\+6=k/xuKIBzkEw?/2x{mbD|J툤PY"3#m!@|/Â1ny}&չ#{6-w*ݳ>hk?U֍+dԡ?X/Ef?u@AYC)# ֿ6r*ΝU?4k_e|OGڃY.g+4m5gh[2ρ).}VMP|fIuv5NIF*IQzPUn.hk>)F\JM>4 cV rM?it&oD[zdE#v}y\tԹjJ>Iѫ(EJ*-KQiv-Ԗ¡f*I'\MMw/TmB6@8 *?5|L l{mHK\ Tw/:+K$iN-%jw#t5VcB烜G;:gpgma"5'yn^WW66][3$zxNzr-OXw$ "ޛetR:eԵ qK@z`d_NNjl|gOkZ7-dI##퓲L!#u%Om 5UVZw>#wì.2bSO/ë7eg͞cz[qd;e |A4OɥY'=R OJFY3y"/M%!$q"*p*M|;|U sXKtjueYY7&@%ek*(((((((>[M_5gTS%fO+cUك7neiFؑRGM^m yaK@~ןQσΧski$YXC4ە?pˌ0#Uy0A*FS-֑/>y6/]y ,OB@_`+߄? 5oxSԥuY2\HwIg9rrXWន:kR\ؤ8ikf԰'Ôp/U(ѿv[/f,G x?jNN䐜m_2ZZD%hnl⸷9@KWR2s6<~Ζ/٭i/|s&_[K_&{8W'rz+Z+):u़N#_G%F%^Gŏ?j؃67$¥Gm콖_#qa?OUL JHuLJ5FX1dBp1)8|4 [Du[=ONskw z#B+{gC5 |]'U>$O禋<,@w/n36) /kI}?y?x[si,&u7޵>~nQJm/?O𞹫@B.28Lwq27J@yG?|ObkbX{029g*kx$_~gǾ (AUOMҒ{ZKkR}.;(xmmaBM3H f<s_o|; o-ϗsl>?21^~cp4E~/nϰϸNUeխ#R~Wץ7_x*~0״h2_N#LQYe'0*~>.ٓxl ד{l%Q1)2?|{ڿ<2;-^Qm nqc~yo>4Pywc7<QGJmNr^K͟fxG5#.٩vJ1z|$x&kr СZic?wy$l~~o>=mMhm-(III&({+0|mF:տW#^hVS]{zq\OGkIJ2׌kjt?M?bƒO} 6Ǭ ~B˝h -B!|] w_3!=@"?6b\ t˩UӖ2{PN{W|QE~/O>D>ue^jHό=ίr#1z0|/n|`NogxoQT-nGn=Z'? |~ittG2GrBu 3X0K). xWwS[Zݮ3*#p99Qx Fq}_˳F~^8d8 bp&5~ZwdkΜZN_TW<aYSx˺0=޾Q'|EUτ{kU40eec矺uZ6|OGYs?{)>!}-^R9fq)Fx-|ISjh6ukwN&r!Kep֧ÿCϤWq*r3; z%i6VXr<2r)_i}aXiZ=YZi&mX}@@5NJJg\}#[h#Hվii_^΅&x"G~ ʈx?|Ck0\qw`wH0P  zXluZ~<͸o2uѣ esƚ%"OjgGʹx/?>pYo?^3Ѽgp5̶r3$2c*9+) V1$,7d>"=ofCgo%2Ac 0sM ww(T5kF{ɳ\>>zϻ$mu,^<;u/Eԃ9{G'NZ1~ږhzewp֗s *A ׺~jEP0?i$e4{0&r^Im9BFO c5؇5>!x<:q8pA93h;/h?ϩxS` dv1g;wc Ai W'|imPNa~wKZ#l7q G̨Q˞GϪ /&,k[u?tHS 09|A TH FGMEQ^ /ۏOuXc-ܿhPy{`m6,V$ =NsSQ@GD?k?`߳9ۻ3)d#41Jc}@v63}Z(ľ |= o*?H7x<>y_wn}(eaؕ&=+~%x_I> ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( iznCFt-[H{kh.bu*Ȍ 2 AQ@χwO?~ʆJ>o2۾rEħcF{G3\;$|CC~ >!񗁮-)--W|8N 濷ʡZ^M:m1-u`AEc[JyjEIyYZT2qzh&j_Z|GiVLtl{W"kڷ}Su1riCydE̠g@}ɯKIDkc2}wnl;ksEz cwzT_=狳*]J[)I7k ~ƿ_w-O-_w,|okO 9mׇ|?{}%ܾ75n큁FO آ"m#+x#PTpKEQEQEQEQEQEQE|?fc /^61=2o" Ljyɱ^l a:C<\ k`ɟ]}~"7?aw z,;3#qh?j/7rj2mr*8 4B.8fdFq~%Vl/^8k xJ_+<51̖%FrAU$pG& Mwx.OX+Vx%{RzH3{g閖j!Ǜu.>cL:fpWWlp')*_7mj;CG+㿁n4:Wm}IZ^>X!O%8t[IHoV^:ѭKxowR0o}62LAO~%jj?qswijK>s1?xWᇃ5A&]:z(<3{$O}"rq刖k}TOh?fVkr&qd?Zvg58<+}Zf>|E-1(o)[0k/ϑ d+k!iѤ٥->7?|;$)mD)72|e v;(EqLT:jTsݟY\f.*ܟwe-bk{ky]Hwq_\3m5: k7 $$f*Ѹ$`OЋڙ5 3o?1mlf_K &t϶ĺ)8$U{4WGu$' hxO]WށN;_ݢ-Rs=> _a?Z_\=GVEbW8Mn7L%-3.Clœ}%C_ mk/զӅq7K+a@8nH{'~(Aeu{eҧHl'Ho//$~dgO#33 k%ii7y5g-)bSB?ZI-jEir @4y;=B.,a A yJUih z b~|OzKYnuxn"֬,bz}qeygM_U>2FtŒG1}?} ld+ ? F7aJ\p!75e&#.~Ꮜ~Uu}6:*0GPd o11'௎X,x+LԵFe$p9u}'߂gBvvo3ZG{r#K>!;OxO?4B⮋|8, lG7[OxzWG_VG6ĚW0?Aojې+r*,|,'_RM/S-b׵o ~ z?N5:Q7 `Hzz֟ ি4o:!c>|w0ȗ:B"BHq_E|Y4:w>#|-m|Gm5Ճ&kIXHeC+1 f OxGT񞫬xn&_YLf\" Q@Q@Q@c/į 5~X+M_QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQ_9~Пwًŏǧj7 FScz.x$)<_?4wP9}3HGŵux-c$蚊_-=a<o_fHFym(9t@ϫ+t~ c4^OYЇKKre@FFx ހ;)7Y.>4xy@|?dr;+|Ff(Wt> :ujwWm&MbI.n/f'.T3w9~-ࣺu&QnwA_xlS D3Ԫ_6º~ZeY@[BESܞs|҄>'x^ Xw$vmh[*|6Mɸּ_=ܭ(_(='޾p6ᥔ'"y\D]Ո!AGצ2Bk/`IS@J,N]rWq4yJ?x/*իпZy;^/pM{.d'R/.5 ˿=ܦIgݽ݉,!rI~ø ;|_'qiOXxBC*k*O&0ҹ XBG?d.[.[,=\K8JǍ*ux38oURkx%Ev}.QE} QEQEQEQEQEQEOgY/| }ǃ5KƱ^^Agop[C&@댃7k-x7kρCSdT7YC$Pvc =~DMbx {~hmxK=5*E:GAo1cn?(oE~!~͟_n7uokW_ROEp_I RIk9X7e_0a9-?? moۋe6ߴwejڜefGFDaK=~~߷lG~!|bL^vdЙ|Eo:$QIF$$K,~ z>^~< &o!) e\YPs&'@~?_>C}Z47w]}o(Y]B%IU#?ߴ_k_A3ߥ4($KsKm1tgE%^kʎ8G_`+Z>z.b׊T{[IG-ۡ2 70v1iS=3|.+?/>&lk>{%ty%O4P3ՙ *tx{Uύ>K W[,r*m)Ȍ-1AA?~qG㶛1x+*ԧ|'}elElCh`s?1EV: Oo!~!D}ĻH;v7#m*ǐ[ Ĝ?G0%gg꭪ݯzts(R0"m-8}|R.ӌg}9|ZEƑu-XŪC-7m[šQ! a|܁(Ģ4>+4eQT2prs1y~"Qz{E~z^"J8z),-GwQ9+?$uZ?MsZշ=hxmEg )Z]x~@+i/|-Kjy$02l;sw?|[7V3[^Hc1znq,Hsn$AKᯆ'2Vzhr7m̬Cɝw'n3]pxJ9TmYg:U05(EΤiAIM& Mk([XY'Ch nOkv$|5r'@6]ȤDld6z!x?1 xF_&nI2?.y yiijI$۲ㅃVk2XJ8Hߩvh{XۙKѽC(OB(OOo_ em>1|ESևk6h}rXTBhԖ˸ ddV|Ek6 ~_/Z߀/WmZţ C>#)6K4@ l Zށu'dW6ѧL4偹Š_Q*Z -KN{}nTW6O2Mw'#d|5{񮦟 4O',m">mbIk@$q[-jwFI?xž4KݦcjMwu*o?z׋u]5OjyX:>"L :ol953a)=ɏPab+˖M%f|s߬ 5uZRAX |? XS`yzXM{?+x3w=eeȣ^KORkkqjj.?8Ɯ=Z_ b6m*]ߗ?jsZ/rLBɮrM*ϳ> >~#cK]j:| + 2Oۯ}FYsUu%x|ET1I)JI+$v}Vv6>ЦG ÅRN=%RrrMvE@e ޸$̌0pGiK/Ƶv4Zlִ#JMzUӥdU*GV:tiW3YuJ+L#>ec C*+}2?,Mzv/epC۵E֩zh~CmPHki[ 븕ǵl>·BKOӠ/.5Ls|d~(ft ($ElՎ"$Q<šhOO[<I B(Z[R2!_uÈS׻..$/+}nt1+j}m|}(i:ĉ>Y_L>rcI=N=|{F?XcokLI!}+ooxGkR+ []]2Q$q .z[*Ċ/+tI~Q^KoߋZ0.1L?޽j*u#8EeB5-wAEUEPEPEPEP?Q$o"|:&޻w㮋E5b HTGb2H2jO 3όt'iipJ%V g Gz~z6R.n ٢\#jѬ q#< 7g|;|'O|EEmWQ!0 A,: ů^OV!ٿP~ hA{PK? CoZVڻ'FmR@^zr>=Փd~sG)渉L3i'n*連+߀9χsui[YV"/q8rK3_o|!86$~7Za#PoFޕi>mi6zfn-maX}TүSK旟<8RĬ~iQ??>P.z?>sĭwxe8Ye츁Br=I??=gZoٚo+MsAe D mghEIYbpԱ:R[?+:~Gd!MHj:n_U3~1v)+''+2uV~"{Us7Z4Kx -_$sB~hq#d/+( Gky});ieX8Ө*/p$w|[mg- X|Qf褅" /$kW]Z"t}''~4okԭ+I.#V]MHeeFHyB2 _Q^QEQEiW޿C_ڋf??<c)~Ge<+|`bI?/ޫ ? ×jbxv29?ڧG MN|Q]_"FhmKW&b[.ՂkhڕwxZq RHy+}7Ch x+GY=*+-: qƿ< SW_|-|=ekZډg{yܲ#&!I1#|ƿ!I'v?Ai|8U4DEjV{{*3Ia',V?iHw&-ƿ$;~98fV?D?4?_ F䵸8׮owdnF9Hɗk`&W7 7c N|SxRmoQ6KnKC.ܨ29_ƿ$;~c_ o?@뿲~!߶'rN㏌=w1y7J"v*=rICzoO Qt;q++i#qlT>a%vF\emß5!?L[L&x_6+⽏rI Fh#x\ O~pL[?iHw&-~_ƿ$;~c_ o?@c/į 5~Ɵw쟭>$|Pjt+GXh;8*5]QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQ^C_ f_/ĭMC]ֽծH%mБRI 1P{b$.3Zy=YiT2f[fD` 4τ׏.k֮Mm$1I+?k_+S͗4.մ :ss"F&G?grT@O?Ÿ ~&J]f5xCè/##/P^j$u7/w84`ՍVk[}t#/Uݖ5)F xǏ/dеGIrmx[# ]C^|k>5ѮмYd`㄁%屟a]QWoC<aIZEO->f/F |#\5?'F]M&LHd0%1_ɭ"$oiSj1i UyQNRᄸR0ѯ_.dd칥ZVݏHNa0|=Zϋ|wis'V'M C瑎1]G_|PS\x]y菖hМ(V[ߏ9ߊ௫{W꣦&v*OU~lEO2Y"#IΟ|co~+]s4u)&MlmDP͇'xM-O>4}'w"+rN㷱Jn=^P'h8F|WV}Toe}?_~7|+yhc}hʾ1I\RLf)0rSj:vsJȟE.$C YW_.qG><6"3e+IrOTڒZPƵy Yu$|3xß+K5:3hIdU*㢰= xWH:K:ygc O^33&pKjrќda4KWqQnW议ϭ-fDXdU o+ϑcW?^}KmSÞt^vy< `sּF<_NE=-n3iȇ 1$:4/e,n:J֓rMyeH@=SY:n(af}+~x_wwdfU"1r+,r*|S@xZn,!\xYO>-"k@9ͽwFށ?yGß/?xsTymF^ĽH,`M~W㿇 CA->D6lapq#*e_n0 =[^ҟ~Ϫۢ[~s(u k'ICkU#ҺZ_{jΝ-jde{?sש|&JxFyTPuk{_~ݷ#hl 9rގ޽+ϯF2䦹~> <]M? 9m]l{/CF$;~GWS&6"AӢ ?/o/;τEneeht)$9gov'+dpZ8jQF 1%dAEUQ@Q@aAo xvЭQwnZv-.600bh((((((((((((((((((((((((((((((((((((((((((( ׷nwEick Ms<"Aff=}~>x^jZ#_\xhcIl z#AF2;c\IQW_ ]:C~у`Jz y raŨWWbG]"-,ˀv9%}H$5Ɏ^v>G<=bs&EMzs5#__<'[j^%t4#ΕPrygi1|duFG~1L5?>!q+3+땏ڦ NZs\}[6EE,bݿ1gɟ 𯉼=i97 adG>>(j׾Ԭ59lR],1.řWҡ=Q%iCM;N>ۓm]>֌ݻ>>{־; b~'0u!* `q3_WC3,-u&+9BOq揻*ފέ(T,fN 2AjϳZm#ug~wKkd;\xn|bEO;m1l xY?澏tI!xE6R2JqεG%l(_pb?G<כjmhh+{|_>GS[ШKϧze__?io4O:ϋ~նiv6nabz~?r=^ǍS6O/_ޗOɮ_cύ :Bu"?U5 jUF Z+СF=+Χӯ,X8FTg |5 [6*}QUVUhUjuZѳӜVUQSԶrb*z=iʵ25 е2=V*~u FTJꞵ-@fk]j;+#*Nz0J˼Э<#z4m:US?j~i4sYCz:VW=zgqW,XҴ",'܏6k>i f)R^[NGSKL-EcsOG39%gVM#[Q!'sbxODk&SH{r=Քgԉ[~ٞ1ßlIj^$$Sy12+}>TC]}YFe=/_b4 &[}T=3A':Fc)۬QR(CI_b䂊(@(((()߳uPYi+?j?Ɵ|w/|$W> UO4vi[c(tb'k)jິ{{!9P2 9,^8mKf|5nfrL46BM g8^\^rne+B6|/ﭵvvZ[F0CD^sjz_tρ~,k6?öKq&*J>i$881'탥||4.]Y'ceFhB+ˢ>Ok Coh^ WƉ>{]h#yĒG^ d`zQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@ 76rEIbC+*A8 6h.߇uhr ey0BcW ^YÏ_5O<7i? mPY4RN{TSI2*҅H8M]={43)Jx/➃麍퟇|vUcKbInuٝ㑂c\Z3FD ~ox:Ɓ=K ?쳲0"߶L"9kikmwH5K}j <.Gp2Og:c? d /'5|΃{4oMuN][2o '<8?QOj?id"g/o_ҽo}Uܹ ӑj$s[EqhD=tު&ǻm˃gTU<||j+cդsL;XNr`|r1v+Ǎ _>ѼS3UKiѣpT8<*I18j8RZ*PM]4M=?o~.;5ߢa4;1 wsIiN~?uD1)oB\M~x +xRό| &KOxEr{Y Ho٪f3W.tYdžum{_E FU%հcY Ov?!< gV y?)?=γ%ռ4S 0Wʘ qOכM~._A}g[Lc,e>Q+3pHF>$~ < ݵ}+ĺ5y:V3Ǽ*;#KtG4Λ|eS%맖gXHѓ{rrk8?ŭasifǼh~ſ7dWqY\⿉JZߊ\Jdxk\tb>af9cU?<3ODK,w2>ݐGB+~n< K@MJnLԭȎJynAXq_g?]xv:ZLeCY?+Oj/+2X%3|8҄g9{,DQ+ZsGzJv}h-+*x[,ŭiq<ڮ[y&i?7↡m\֞qiӌw7 2녱\rVOŏ,EӑkA~>I˽B9T8Yq qs_*+Zxixct7|s "(pv8#k =m|!|P nAyy89?Ÿ|#|4;@nla8 w'ds,I}>&˞tc9Ԍ]wQm}@?Cn򐡭t{U>Y nkc~ɶ Eyr{%ߊ%B䴌3 vQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@<?ZGS[0ki5 LH<'g~pͦi[5Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@[E7ΣuC6ֆhX,īD>/> 5;{ZE XNk r+ Oxk߲ïzuuv5igxړgmG[O_J/]O k>$X6sn,cb/}>1 zg.X0̫r@8ῲ?R$Hв"@o ffM{6:N?c:i-ft+pIUbk)yuK@txS%'?d7cԚ%Qր?{{. YY!'# R8 #yO/fs{OiʴEijC3(yp$ 57>5Iw_j_Y%2BnKwms/ f =ubBDw"hOW?]xYҬfb#f]Xk|2S|ky$mǦ̊p8iVtj(_/>$|Lb8{K*mRdU\g$7MKK~~.η`VJ]DpVMczc;Re?=q{uM'ZO- Ak0v}o_{}K(mr`_V'G⿅ڷ>)kw]KM:%Gpg68RZÄ;DdAwq{u#FGڀ??<{zDž5s-%I ~](~+xc9|IZQ: E k74G,*?_ ٣WixW]T15F:$_/-Ÿ't$:ͯ gKNuBTWP O=ÿiW߲ 3ǶICXhF7GE 7bKvH_ >ح4ua%j?o[ZŜͪjo";`*q/ (g|ih~xg~=🉮&ν]D)@#s!>O_-7ntɯu 'w:Nev5W%Y_N1qxSKt{ #Q/<2 tqXǿ|v_>&|%m=7:#_EdPY_^?|u$ 떇JSqMr~h!o_ o{y_^ܩsI"q;"qՉ?<(7+Ck!I]E9 #1x?,vL{{R3}<16DPȄ ~xg1zMs;\Gt< r9?sH +27d'q''8q]W#?B?~Ӯg7vHpmUn!8h}D7[|Of K_Sy DJl]gN9$'_hoZwxK6 {K-kVd"|tXKjZzMRO$>l9'99/oo*-oHy\tc }|? Ե}V+p'?(C|I_xׅ- {ikmBA* 8P*_/ÿm Gu:Z|dzt'!Ixw'/z ww~5d/ 5)$ Rܩ+oBpHM|NzI%ӞDmai!m{xۑw?W6~ "+WI~E-Z.<'q@]o.6'Py:Ww_>B?? n|Q7|Gzq 0Kg ֿ|xJAEzj֖|?<;A h%X]kvP3X%/Q |O[u?-"-`aFK[łdbqҿF__Q$}x7ChNW?j?Xʐ]ZGG:Wg< E%__ V& /]h۪2ZS7zQ:yduFf'$k?Ϗʿ3 7kυ7>$KKI&?$7_cm)ru5c1|x=;NUMGwK@) 6EgCѼA|0,ﴱ$9nLH+3GP=k^ozu9V6M -=v6 xE/+u-\hG N}ިۂu|t8?#g_oZUŞ0>ȼ1zӵBfA.#Iʯ 6d|/"[jm0o0YaaVrz' ?W¿?hG?-..nnsr< |g89)O?oYx =5yq٢CB3MҾ?>%?|D{&%?'Hmggl NI=X+#X|E? Kf -u}N+eYT\ R&iwdFs*__O?TRt(ƮT݀A)WwWxD/;y[>3mxERv[.{u`1V5\wWPG>/M? x7&#`%+[(Ɉl, Oo^^8#$XfW`:0$Qӭ|q0bK MgKV[hIO3Pc17\C e7&^,Ɖ<^iy xBUCyy6ssΏ!@`F$3ec'ǯo|\5[^uiKpgeS +z~/|E7[xGAx9͕0p1hѿ_έ+JoVK[X]-H+FZ j~ҵfWӵ#,Abl#gqlymZ]y|:d-=8=[rۀmC qiˑFj? HD.nK/ 7p>d4TQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEi׺|Mƻw%1Ԑq5P/~x6_6W< Kr2hztv3#,`*p]Pͷ_y\^\ΟVW>I1Ս+D4?iޏ>"u}>; ڤFD` U>~σ>7A~Lq"(#pfA#{5P|CI֏ix?V40TWl6'i#z iKyᏁm~ݱ{ Ţtdx6fު#9U=z?]Gn?~𯀴{usgiZE4U pv_j>xA˽ӵ+T\pU@<آ<?? :r:XMhݽԕ$2+t x#Kυ]/þmO4Tz$q =(5N>&k>V +K>|⻷6r6.: /_?f#FmY JKz2>y O{iﴝZTүmJr#A (oc/EZem3[Դ=V4r#V'P@5}ϊ|\V:1EYfZoe8/GwtO1] <=vPD'ƕ7~6.&x!R J*uM𗂼=xSz2XZU[[[vv fcbz訠((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((nova-17.0.13/doc/source/admin/figures/SCH_5009_V00_NUAC-VNC_OpenStack.svg0000664000175000017500000016504513556316250025133 0ustar zuulzuul00000000000000 Schéma Réseau VBackground-1 Solid None Page-1 Sheet.58 User.50 Add list item permissions Sheet.3 Network.80 Sheet.2 Nova-api Nova-api Sheet.4 Network.80 Sheet.12 Compute node Compute node Sheet.13 Sheet.14 The api sends a «get_vnc_console» message The api sends a «get_vnc_console» message Sheet.19 Sheet.21 Sheet.18 Sheet.20 Generates a token Generates a token Sheet.22 Sheet.23 Sheet.24 Sheet.25 Sheet.26 Sheet.27 Sheet.34 Configure Sheet.33 Libvirt driver Libvirt driver Sheet.35 Configure Sheet.39 Nova-consoleauth Nova-consoleauth Sheet.41 Sheet.46 Sheet.42 Sheet.44 Sends «authorize_console » message Sends «authorize_console » message Sheet.55 Sheet.56 Document Sheet.5 Sheet.6 Sheet.49 Caches the connection informations and token Caches the connection informations and token New Sheet.47 Sheet.53 Browses the url returned Http://novncip:port/?token=xyz Browses the url returnedHttp://novncip:port/?token=xyz Sheet.28 Sheet.29 Sends a «get_vnc_connection» message Sends a «get_vnc_connection» message Sheet.30 Sheet.31 Document Sheet.51 Dialog form Sheet.96 Sheet.97 Sheet.98 Sheet.100 Sheet.50 Browser Browser Sheet.57 noVNC noVNC Sheet.70 Sheet.67 Sends « check_token » message Sends « check_token » message Key Sheet.61 Sheet.62 Sheet.63 Sheet.64 Sheet.65 Sheet.66 Internet Sheet.72 Sheet.83 Sheet.74 Proxy starts Proxy starts Power Sheet.102 Sheet.106 2 2 Sheet.107 3 3 Sheet.108 4 4 Sheet.105 Sheet.104 Returns a url with a token Returns a url with a token Link.84 Sheet.109 Sheet.43 The user requests an access URL The user requests an access URL Internet.103 Sheet.101 1 1 Sheet.110 5 5 Sheet.111 6 6 Sheet.112 7 7 Sheet.113 8 8 nova-17.0.13/doc/source/admin/figures/SCH_5007_V00_NUAC-multi_nic_OpenStack-Flat-manager.jpg0000664000175000017500000027263513556316250030747 0ustar zuulzuul00000000000000JFIFHHXICC_PROFILEHMSFTmntrRGB XYZ  -!acspMSFT-BEP rTRC, gTRC8 bTRCD vcgtP'lumi xrXYZ gXYZ bXYZ bkpt wtpt chad ,Infodescicprt( curv  *5AO^o+Jj%O{ >sY]3lk  { :  h ;  n^VV_p?nD-~*: !_""#$Y%%&'v(C))*+,f-A../0123{4h5W6H7<829+:%;"<"=$>(?.@7ABBOC_DqEFGHIKL3MXNOPRS5TiUVXYOZ[]^\_`b?cdf8ghjGkmnloqsY]3lk  { :  h ;  n^VV_p?nD-~*: !_""#$Y%%&'v(C))*+,f-A../0123{4h5W6H7<829+:%;"<"=$>(?.@7ABBOC_DqEFGHIKL3MXNOPRS5TiUVXYOZ[]^\_`b?cdf8ghjGkmnloqsY]3lk  { :  h ;  n^VV_p?nD-~*: !_""#$Y%%&'v(C))*+,f-A../0123{4h5W6H7<829+:%;"<"=$>(?.@7ABBOC_DqEFGHIKL3MXNOPRS5TiUVXYOZ[]^\_`b?cdf8ghjGkmnloq?@ABCEFGH!I+J4K=LFMONXOaPjQsR|STUVWXYZ[\]^_abcd'e3f@gMh[ihjwklmnopqrt uv.w@xSyezw{|}~Ҁ(8HWftÑϒܓ!0@Qcv̢8VtѬ (C\tĸ˹κ̻ƼyX/ÕWƆ9ȘDʘA̒<Α>ОQҾx4ձr4ؼقHܠi2W r4j!FN?_,P\Ag  N 1FPSOF9* !"#y$g%R&8''()*+d,;--./0j1@22345o6F7789:};W<0= =>?@zAWB6CCDEFGHfILJ3KLLMNOPQ{ReSOT8U"V VWXYZ[w\\]@^$__`abcldLe*ffghizjUk0l lmnojpAqqrstiu8V9m:;<=>?ABC/DCEUFhGzHIJKLMNOPQSTU VWXYZ[ \ ]]^_`abcdefgzhgiTj@k+lmmnopqrvs^tFu-vvwxyz{|i}Q~9! ܂ŃhQ9!֌lP3הuR/ ›wP*۠c;nF˫yO%ͰrAܴn4v2뺠T[I!S~ģ4SnȆɝ(ʳ?Xw Ξ5nѲVӝ <"Luminance" = "0"> <"Gamma" = "2.2"> <"Whitepoint" = "6500 K"> <"ChromaticAdaptation" = "2"> <"BlackLuminance" = "0"> } descDell G2410.iccDell G2410.icctextCopyright by ColorLogictExifMM*>F(iNHHnC     C  n" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?w)|-fײ׋~<_Jv_%kiAER(((((((((((((((((((((((((((((((((((((((((((((((((((((((g0)蕯j?~اeVQE ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (ԊL~)`wg\lKWZ願iQ|a?P//0=Oe2w0[c(+.kpg{Hx=3>VmuHmIYwxY;OBqY(ϭ袊Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@k<#xĺΗ5]c#_Q|>~:|D4k5v2G$ꧬbxm3Cv/ď|)i{-мQVaB$"pp 7@ ~A|D|]CV'Rb؅OXBe^܏'5/?n:׎^IE8+UQ5kYx[|)A}?LX"S݈QI(to xr?2SoiO ?xپ~̞,\mN 02쎤C#?_;߱UCW_?NwܢGhE"׼?3V)OX:lpPguE e\oX>&_g.<7k~ah^U ۬Q 'Ï?~|9ohb0XCd9y_]٘}W[9i Inr< OA|7YGim[ * s7|)/'Ɖ=󍜸шI`$ّTנ1jǪQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEG4[< y$($w }"s)tا3Ƭ,:2!oYĿ+oU x¿I8uMoO w+]j"Fuܢo$%I<~O-,wKs_s@1zim?;_ccV,No3 `69V(pkO~Go %![G$O}?vSn=|SQ''#lzayʝhG )8^g@Vau+o54;IZ9H,.6?򃟄_j1ؑPs;^WWbׅG7~FY(qQ]((((((((((((?~اeVWp ?bZlQE((((((((?io۫4/xknu$|w!-wJHUr1_ y?e_پX o[v"TJ*i6}IK>|n|!YW<>Ha.2nLq$ A־)ݩ럴n|E4F W}lgدO٧u lxGŚ[E06XF7<_*i.>Ͼ _?DH_j?P93B)'jJ/گ~Ə/Mt(y~y~4y~Ɨ s=iI7)e*85eԫcJ ww#P)S ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (? mZgcwk^.׺ 07Wk[ |9Gb`+LNҍv׼=D?? _kV$|{s%ƭ[+[QO(TTzt*'^Μv=Sҏ9$s~="OC2D%,vmörzc{f}.#p" _+kb.1O^Iwڔ.PN@8ݾ\]VW)t;(A#*WqU#o LM_J+??Xӵ|Aɓb#U)_%g}v/_f}(Š(((((((((((?~اeVWp ?bZlQE((((((𯏿/٣4^/umn]-3jr+"]̹5Ϣ~~~#CqNf0pnTn L 6kk gm~_YTxf:Hu++)A 0kߌl*wijЈc17Q 1(J1oNI|XK"oZJ sCd1裿޸n>鯗Sw=JqQI#WtWtR,1vGEW'ʅQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@31;J5>xxV`\k wĨ4)p堜2<^ah?]Ѝ1쥴(ngwG(#U JM]46zh7M۹W'j ijC<_@H->}bj q ;վ/U}q\'tofq\>_J/}CGߴ?/5_"V~ޱk'bFSWҿJA/?y_E_é#(QE}iQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@+8ɄND{Ux&;/T )QEQEQEQEQEQEloԿC&U˩7(ÐXA"A~?7_Wv־_?$= cfHtLd$cA8|!d-6\ALUkF# OisiwG}rDp) w?yTs%Fм\%NzJ*.KCfOCs1(~wG5ݮOA 0$m%s|V9kh^h-Oq,d慎C:W__ k??m\ϨxO\|;y=w]]S#к11Lngwy|Zu0e) ~8BG*+轜{o3?e})U{8k28峊VCjHg d;xğ k7ΗVuσm?}A89lRoxe U}=Vu{mCyw{d` 5 9{8f~6-:JDrTّWWbo o5׈/Y.0{p󮬮yr2Kgk~d蟳|HqI|qr; @vvqG`gpassq 3m8Vh<068ٵ)lԭ弌fHU2 㒠u~3 ?Ƶ~ֺ=bf]Yu J@x̪Ud9?x:65H`_mG>'~$x /WZ%/=6]4`!4C, Z>iះ<:I.$񧈯udM!S#D"m 4{8f~jv7+Cxt R䜳?*ᎌλ0' fqo\g<>#пf WIk~Ѻ'Žkj+5PSn6*2wm }Ww&?d(-GWFu]E#?q1rI< pQQq8Ϸ2 ~|giMN8gbn3 Sd` z{EH{xE~Ә^>xLIԦ?hB}+S̈́Z_Od3)+:*w_[~t/?/ÏjP54OxB5Dw;n3 J[߂:*vQ7[4ѕ X`־Q9i63CѾx][Lde Ѳ IR>$QkӨ3sիGRM JN:M}sիGRM JN:My\?#*_?%y_?*(Q>T(((((((((((((Ӯ//.!6yp(31$ W !'AcP͇\Hk?Xs_Ө#1XB:t} |ynǤSm9eUi G7-t<-uEWp|ۚ۟P rCEYQEQEQEQE~d(kLh?]m3Wg?Y`I%/>&xBEnuҼm}@ 1\We/L_Ox?_tZ6K(C 2#9k|#x]i}}s-#b0Gj`7p=iQ\ԫV2u!kt28!s 5bv!W}^n.Jt7~?A`a}G5My5jO2N+?\8szh'bFSWҿJA/?y_5~_dHjW Y(9E_z+Ku=WyٿC>(>(>4 'R[o_c 𿂿/_> Nuk"CjZ !oPvȤ3 2M*10ϷUS?w44χSxGLDŽ Mhc"MVT!Wہm9ɪSiÁ|^wohAfv]m 9:3_[ǾYi17$H_id0Ezej5g&C ^>:e >8u9'@]|'_6x#[Y\jzI+ģ I7[p A |{%Սƅw#n}[_e^Z#SWM;F՛P|5үQQk? C!GpYcRVO 6&+H<˙{gz5_XK|Eoȃp#V8rzƚ[̳z6j猲R w"<9)|;7u]AvZ\ ۱#Ċ\g1*>=kgm%;nzG=Zxi4D)C a?*/>UQ(lJjŹXնeƜ{8|*ំxɼA+N|Dcׄ}"[扚ZC!Z w\d?Ϥ?xiS?ozR&Uo-p~Q*Z*ck;:#F {5v/=\Kqgee,ŷl kѮ>Zx ? n| jۭ|9/_M3e-yjrrxk ૘bRtGKQxx. x;þ )vm?DᲃsVm]3=+̮>돾k1m&NUK_?oST?qk _?oST?qk^/ݥ!QEEPEPEPEPEPEPEPEPEPEPEPEgC^.opxRm ӡ4LWqYcq1Y0 Oڃ.i:o5Vm|Ȳ#7 r9sG+O MY_$m5:=pp^[yYS u ˃t*˙7 о%B˖$ȹ}y qiŻ<x+ AV/<,zӧ߯_\?gVpgo=$-?ςtC6fOӠSgxN7*Cyh{j#)f]JTGG&3Vs]Ѵdۻup s\8?Yӵ}+W3:B:irI?|->j:o6x~߫=,#7}Ohi/E!=(Eg=Eyd8?g(~ X5w?kѮg/7Yv`:\I3ӵޟ諚}:5_ Zu^eּm_yz~ G>a}>qS~Cs5?J!xgQƺH/--S\&ЫlAkC^𿀾^cUNu t8U%I$I56VTrg{y&tTQE{QEQEQEQEQEQEQEQEQEQEQE⿳OJ׵Wa?S+^M (Q@Q@Q@Q@Q@Q@V;'KJ:K@6Xw;Kr@#=zd}E|[loԿCYkn .Z~1 v]Hw|t}Wv]r|Omsgi^ 3x{zT+.o0[nͷ|"0; g3{cLJu4C]+mv^"A۾ئWY^3 e _|I<PfI-l$?=dT |Q㧇MMꋶ wH2 5 zJ&.[3Mj~̟xKφJuNv]FpJȸ=+Ծ |MΓkZB5{1v #+.YIRHj!7}QvNj\jWWQvLѱ{&^:)-̣̪ggs̙sޗmW@qְn>뎵qMp:"b\}+kva\}^mm| 5q`}^uc&%ViI7)e*85ViI7)e*852Yc/ (O ( ( ( ( ( ( ( ( ( ( (  ((p_>i|`|#K i/Q4OigYn% 4# 4~3nˆWKfm-[pY>XU,BkMZF4"qYRa`Gf Ve|¾!4 Xu)#% ],˔)aH=cd U_ڳ79PVD 1~UM:u)S]Rٮg=Q2L%~$)jC1m/2yUo\r->-.W qKoj5ltk}Fkh|K30猌MZ( <$l1Fk)%Q.Mo~?||UƵUZR\nnWR~ٕ7fJ>}+IQqz Y*+I-NRFtJe,{^Y |XFO/OkB}w|GJ(8'!ԁ^c^࿃^"_Fux'틿k ßy>V#_&cٟ=-Ğ\ M֭-.gY_V5_jVO4;' KG7+ Ẳh-@KGR2rx< ^"x#sSxn,A#=%_ibIiO8_乤qht~&pn\ܕ"C(E9E7fWQEz__w? l$V\i]u 1ŽG5:Ck񿂼9n.jPwgk)tou` r >\|~薟 ? eٻKw0;rL/1A`TO=SR|ҼmbMt;)RZh!F2 Bcؗ\>(ηw,̱.$nT爜RpQž,?uxiDZZ?o>Y+Q røl 1yEH_G:_h1@׮5H+RCkV rT\(}Ư>_7+d8M9,ZWmV~#X8钛)}$h0`60p͞kzh|ۘZz-}"0v JP;WVUhT^zpmק1?5f? y_w ,vs؏{_lo 7I EПE*K0+x֯V0~N &{m湹{xQ $ko?߇l|i>sQ&S y{: qW ׿ݶE' \Kl)ǜe<85]!5'#?4X_wCg]ZLTm,CfwҚ?hi:>!j'{@FB]qR2kC?o~E> (_5,a3f>WS qQxI խ˿H?z3sҾ]C2Ir/FS+ ]ƕiTqAm ڗ i=^"b'&8.aa0^jF1}w 'w>[}ʛHIC`pR;Xz1-_ׅy޹yyKgF>a>s(¸]-c\}XT&%?Z¸n>5V鉋q`}[| 5V:bb\j?~ŸRӎ_x\j?~ŸRӎ]|?#*_?%?~hDP(((((((((((߈<'"OtgdQ.^FPqsYի PsI.c؈aJvQnMIjboZ=; ?mH00D?眡dyO}_d|a_ψ{ vvN(f),A4y< 6Uj^9w᱐yMQ\2#o PN8_J xM^/.~?Y;Z]xԟ.)##r7 frpMzE~?]"qY60Ƨ^-Fݡw'{5O-,me$#V:Z]6,ṃex * ?Q+o #ѭ4#Y݉5Ot[Rm鲺JC~[}18g8d4WJ~)˙vQM赔^Ŭomo R_jGN/cu[sI 6^񗈭~~4>'+,'P%랇{֙斏|Qb? 51B> KHXÏwC'x~~ڋO;|GuzEpcnr3D+UM|=^yXeR=m?&|Ah)N~ OEmeȌ0GW?=ƣϊ_Kyimxϥ 0 ;w&m7A𾣭7iM^]NRK3&Ə_. M&mpG<= [/ğ 07CΌrcVI '#|Oozx?0LEoj#y\zg>M&NI |2_kj.}R5G3Y_k'w g[mgكNGW[Ƕ.7$am-Fؕr1h)7 (((((((((>DxKxk m֩.FTd,z|o/syZY7ٖ7@.Yb9K/V 9MOǟZ 9?e +ȗڭAkA<'A,G?D|:u~^;{}WA Zh80|p[NXQ/^O kG|=S$Jگ+k}؏↩xyF39P'8Cʼ,M}/ >4 i? ~ΟK$zT$ 1mJ*+œ88Oj*妡[_][XIJ[$TauaAb ((_L'v_%kګg0)蕯jQH((((((ď+gc~z}k}k+gc~z}k}k3Cў_譻WAmڹn[v6=ڎgwף) =Okl]^uEx,/c۹ q tgzv9.+}aitf>^uSGZI~.XI )v%%Tolea#c'9ǙGZGbyj9j>*2k7_]J!;pGfVQU0Q 6/yyGyp/yJyFi9] ɸXWt?Z¸klo>kάtĹ#)&?C&#)&?C&FTK1ݥ!QEEPEPEPEPEPEPEPEPEPEPYWλi6ia>Di|>w| m7o[:#`cY%@ۛ?0͑x7vMeڇŗJ'62e 1l N+9]GGkQoo?%v~xQV8f|E]`pLⷎ&!O/dPF5~x+េa߁<9oG4o^Gi>Rȥ^j>~KhV?ZVxü)+JjXJVK*Xz=}b;{khV8@0U@ j+IYrgB ŒwFbsYb`dws]"<iX?C- `~QJP(b*КJN2]S @2mxsVӥ2 帕 $!ֿ*+=sԓMJRniI$z~=k:V$}F|Z/]jEGLʹ A/>2`~*iVBWIԦ!_K ];,6o>Z/otOxnE yļd9&ۂ;8 %%ZZ=:^4(#<| 7F6ow<lj昇i%hE>H6Nэ|MɦvSZo?JK kX6B^**yF@"0Ax?|~5+5<;j@VV7R<D)^Oho_Oi*es0#q u>S5tiEM-}Wk?͟x-#E4j? -զMH/Qj/= y?[0^+ww X[PT"7@;7hhR4dSep59 lד>C%O3ÞaL~4kuM;6ebw\eRڵ ?]п|Kk -[HEՓ[ #s XdkzNӧd)4$SVS_/st|AJf,GU@o3 +0E 5~燿I<5 z*O-\_ ?+/.~(VS5~ +i]ځ I1Ju 4nH)4?%%uQE (+~/\ozOOo;kYZ)x"5/Q%t;PTWoƟۻ Q mWm#^ݥ=Gvc"] $-_|w?o׎uo|c;uodRϹp>?cH׭|mX-'E{(Ѥb̡X:cWo_ iZ_%ukſԮo.5E,P#9TbDaqǍʾ%RMIkCu_v2<1͉U6T8S@W֞c/2Uu3^ͯN.,%i` 3$[5~5$m5i~ҧ8Rh1F$ 2Fە$:zg/?|oU]{?QXi|d׋oLuE7Cq˧k A$,Ȫ_.t [w/ȥ3]|>#3O dn޲Z4r1b`1_k̿R_[mcZvbK+hm،GP"+[}J>#/W MVՆE+) N+ hmbX-`b5芣`OV2l; ī&W^L==Ꟙ}rWʋOWy4Ҙkͼ]˓הSy\x{Y`C>c~R(P==R(P==RIy;kY+M5]q`}^1U'L 2<GuS_ď:ZxSկbM?vޭ_ _x;@Ҽ7[glrp2c$׊fNo~R![唩w`7O(K[!"ÓQM|@ž0AnC}覱}~ukj's'Ko` c'ѿލBL,ƚ桍7i$46xx{ۆOPԏ]I1>^w\uя a#9Jo??~<fj݋ǤI~-NJў90H&LA~Կ xDcK7Mk!@dSCg̩92fXlN1cin趣(;sJZ4WwQ/My폎5Iݷѕ]$Uk.h?ڃ_|8/5̂##  kh ҊWD~C繎q3ZUjyIZ-QEQ@c^!<7amw-sGmnn㴷Q%CVrHDžQ=xWo=>'~@ִé#Ǝ0#2Xq O;Mφ!|GߍvZ_˯:n; VOMr 2PĿ_ kO(Þ5b6)r@;AFq[9m­+6)[7v"Z\C2F!p95Hx]nFO-/K,G3\>fBx/^+~hƏº&;~VW.LXXU ت@Rҋ+-OI4]B1$6ҬJ+) +; 9 Hc A-_:t[Q;2I }4e%*6W,o::m'6=?^ЖRֺDH-nK.9$l@H)4"8ԃџֹW^/Oi)w[UVk+ ͲyHTǚhبr{º~6tZ?cbp5 - a&~ akx㽣F|+yZ$Zt*[I8#wbNV)?>)i ku{f VXa`LL?vV K>cp{?2E *sT;˕JKuJcN_uz<&eӬ.?4K顆iT0 d$n.3.=V+ς״n5 .fNtSa O)\'8dzsg̋ ))9:@, |G{k"tK؝N3ʴ e9W׵ޖ?1"K*|[&U(-z/Uw x^Aơ@T%eٗ+>+|3緹۠ :aє[1[d=0A:/AMxW5:p?* ѧ%o7g0{?+:ӥ5{$Vno䟌wWy.1mf<}MB53?oiz|.}48>(јp ue>SrE&A>?n RaUZJ4 ( ( {x.Z !-NGЀjj(2]-tnIf`~>aG=>_MiS^#b2|Z(f6kͧ˪[F< f\@<⠲д=6YtJ[6yXa%@ˑnh KgonKoo  '1rI5q/N:ЇfOf7mlh -ïc_ۦ/(?dO癍}}kj TInX ##ԓZTPEP_qD>2?i\z`dr/J|%ybN09d?̋$OXdKzk΍xtta|5i xv?.MT@'<9׋(w] p}l=?QOח8Z[мGd&k,glȍ!oȇ j)Gڭ)SJ>}+kҏJHǜ9ҵg=mċvS!=\[vsyk;U5XmQE} ,y?)+"@2ÚlF+ͧxtKRO֍ZטRO֍Z9pBxӌUy^p@ӄWo^Y_ָqz G_(*}Z<9bGT<_֎p̣̬BL3$8 f<Rk?Eӵ~8gW(L= &0}ViNVwzӧ:#N\'dmI-[>Ŀ/ lj}m/,Yk0Ҷ34y_?{oFg|]([GBc=7Ђ"2M;xQ`s-BUs\{56:|Vv.ء0#X\/A{I _k?|5-fy&/fwq] )4m^Mw]gq,d&C0 I,O;9P/GqʞҼܟo/p 8<4H[&o ~'Z\࿷39S xW ~,9n|sxĐk^yr8!H}+(Cˤ]_5卥^Uakviĵlu&}D3wH>𵗄@-O|-狥̏ѰxuKU`Av"f<-P2C(ݬe9 xN+6|W>txsyCvKXRl'A!L=*[˽ݺ%Żan l5EPE>83+/OxOD-goq"dc{a#s UӣRbeYN73C *&~jz|UMmLL+#p 5oڇO-#Cu 'Pytqp[\Ba(9zWkcy3;?ߵ틩[k_u$ik]'Nَ~MΣR/$|eьp(4).Z~R]\޺QE{gEP\< Þ7mSm{m7}pC k8.2WO:0ZѭBni?C?Ŀ1 ." L { d46j &'Yk?67MMnmG2yy%lY=/u8¼~_y]V8wVߥ.Jݤϡ(˂((O. |5Mr//^ Zhtv+m#*% ܪOBsU/whc_~=;Og"%;r@fn~@ aѵ.mZΑc-V[3I PdxXO&ş NЮ/4SMK_C$ye!H%q#^%+qX=&˛ɂ&{{(=|]~ѿ>-xo&OwF(>9L`篊KG>k?̿)i9UN+reO?k_ x+Xޟ?fImkp1;IH4|uE;$73x6_ ;_V\^Gq#?,{S__KTfq4 ZG'ɘIL"⾶DXTETE*v#e9c7%O*-tѳ~~?u&sQQ%':DxQ:?m'eO?c-r;@>\rn,FQQ#d}%`pTьiܩh߭~<_XǛ)4Mak&i>s:WC2v1^|?I{mMlJu D'.4hVN1=hJ=?nc?2&> <%i p1¢*]>7$N/4ԄdEc.q Vm[|J]\m ;|mɣ>ؓ:}`l9=uVG?f%߆Z:#FqxT IKV6o=kL/-vӭ;g7ֳG%j׶7 ݜq$,CʿlDӆ_h -1hm-̤Ij|hBIs+~Oi$''xZ wORz dstW$ w ɎC"#! Q3 gWvriKxs$lcKg d2@ ˼XےN@5AaJڤ(/ޫ,y$4H5j}yy ϙ?Pj>qz1'}#;3)+C"BLJa?)PHr?S,w_?(J>`(_L'v_%kګg0)蕯jQH((((((ď+gc~z}EI{WgćrG>,$JwW7 ʹ~RFqf/iR+Yt+N{1/c#qϗ&W4YDy8ty>Mcsk}+FLOHƉ5cOZſ~'i177kfo7HYkr@VfPu2;[Uxу )#֝^ E,)۵ވޢ [,`c}|;"XyAx_ @O`zow;oMei6u嶡c:U9T*H#UZϙbſY|Wo^Sν.wyGgpGgF:?_Ψyo^GG=:{{8AygҲ=ngy^+V}(ϥ+S$X)bX!ZY>(R-"| vVd-2td! 8+3kl? 5"ΕhZ1#>xoF.&鶺eSꧪpAx:?eϊm=l:P^$𶷤"kKLKkFIa WG<3^xs5= 2X5|6?&_u/ K/x#Y&Ԙ(f|f9p kO߃mOڔX{{(om` "% YKWZ<'.gR PG[_okI87gooÏk<5ȷFs.$]QCja?k%_Vtf/˰xG VKU~O~JvIͦVӴk >%!p**U(I$~#)96ۻaES$((((+ߍ_Ï:)2Kí,4ЩP[8?{&ރs)Ky9~+< S^$ӼE6-p?,ҺKLӵJ,]23ͥ ,3!ꮌ`}~ Z|s/w a\r`Qؤr {.u{K~e611^A7M^T[h^~Q_^5O x/'257#87mRe''5M7Zj:uudu$0l5cb)jOFS|3V1Ҵ'*ESqd]R/QExş;txևyk}؇O`)ڵaNi{ጎ \]'Qc>)' ;:WX$;Fvzwڙ k_ܦJ}O;5xomiHSN_ \O;'ʃbL|?_'t I\Ckg58IIMlQ]40jV}.A™vQ*r/r|ӗ+/ +@(|K_~'k?kKrX[Z噎]wm0gsW?ߎ_z=חb̖No!pHJD62 U_%Y kSi}n?a5tٍCNIvYc(((((((((+Vɦ|A%EU+?> ޼C?Ğ ďxoEODVSp*Â=6?7cxsgQT,A- $,I4G}mψ|Qh5Q5ԛT`31 ,H@^'|S?4sDB׶S bTpA"ytV\ϖ~BljK,={as=CVҵY#[+:Vh/*ֱ alēo#^|BW{+k-.vglrA#hxp1q]-:xʩBϴjOjHiޯ3ڝ\vCuJ$%w| u.<] B/ ӵ.>}*&%L(%yf|5n~xAC%ݻ߅h5F]= )(+$lvJ=~1&]&YYAgˑyY̒)]He< |g{p7]v[O4 蒤8 \ӫ>8弘l|J᷻Fkky!O3kҲ~7.p~*xY9]7WX5U7N<-~A%v֮!"~)u,cb Fۈy"2G5woW%_6qxr3%<|SL"!?9N8xSKYx>3q>mo-V-m A;88kMh?>ş $^RBi -)|ш°xE񎹡x'Etя66QgvJS Υ]l;-ό9l_[m^E{רm/E ~/yC֍ZΎRGT7h9OCE?R+F%в*(Rr:+ߍ xtȎΰ5:A9x$0 ~ ɱ&g8$w\M5J|J)9-,/tߪڛAqn[¾N3ЏA^Ţv 𖝭/`Yn2Gb=+ɾ:U߃ djIyq5Rѧ{eYG,MGSl7'jxo/Y>|_ ϙo_Zy2F|1[t1|Mciy:%?ko^Þ=ޝ=-1bHoAB ~jxįط^)Xj~o|#KC1ޖ#na]z% m7ߎ Hw؆ty;} /ll>&"JJQ}Q9&?) *Ucdkv{>EVQEWѮ@{-g_5X¸񎟮xHd-oFDW"$P,7ƾծ{y -ܓ4%YLA@OS7/A}mowݷo%?iѰy^v88LԴQEQE2I#Ie"@OA@C^?O/~ D,7:tħ qE1kG|/cxE?(0ldy>HNޠʄbs?;L^8O3?*qG+%Wjq}mۜ{8N??>>^X;ƌ> |Yf6-X*'$‡O}iQd%f(HQEQEQEy_~S|u+-ԃx]\]03rHLcKzQE~:>hw>\?=l&+} ̤LmLh'U5MM-Xd{m:p-mlr 8†$X?!wMO:}ܞ\7r3-mb0!9%2t53;3)+C"BGz=G&l]>WӾ#>e ¼֫.fE)c8W*?ɓ~h袊((g0)蕯j?~اeVQE ( ( ( ( ( ( _~ 4i)AeK1H\~hX9$ml8v @l>~oOo G\(},yjd"d&DF|--#[1д'`!U<siM<| 8-$s Yn23"8* ?> j2vyj$}6X3ϙ3HgJ.*P@p+ra){#f5*hG}?jzaYi2\{Xe-C\֬w0Ƨo'%(¿Ġz_w+| 97-;źC }RA%WYcʮsدZm{P\Zd >{|2KIRp<~&jV nxϕp?A6|ֽڴ8.'8,F<<<%e?8nSvCWi煭owzmț7\pA.GNmb whW, 8$SDx]m8k|;MzΝ~dH!'ͬZM`903H0l rw>ƴ8ѻ?OGݥ`'Ir82x ;zo]qvxШJrUHJQII^Zڛ~PZ^_ҏ/\{s7P4-[#4-2Xn[lp4qA'`+''ÿ}. Pn>VX`\)Ȯ89N[Enމ]ߑ|KTy՗N rK)5Ho5Mz[ _%ス,%晰NN"1jݝ_^i6ϥxz#,]J 8fThi}"n7{Gj x_]SW] t,TH%F&Lk'\tOVBk5{.lohe_FV_jFBQMo_5f~x:HeIX,tjKU_.h;%d|oOxK.7 qg.퍌u8hwVq]m~sx6\|E|g}oxZu-L/s\\[ mkOn#{t ;nBe FMTfc𗤺z;>#b*Mri_[sO>^Zj]սbH.-G*ÂV+ӹԢjQA!EPEPEPEP_/)O_k+m=tƨqciq#̹ #$ FRoSD?/$@K I*%px$޹h OhF*Rۙ.J;?`<ǀ%ǂO[mVF8ea!vJ㗅Y*j C}᫋KNu{y,|,,吡rdVޗ/cweFXaف-t:nwzt[O<;9 q e.XZP$c\endQwեWҏJ7fg_]< -&Z :zdlLW|?i^.GǯcXogo*n@1dXTǒj?{RPAA5/rE>h+OKxgTTĿ{vE$~R٧?-|M_X/fj oF@Ʒl*5mn>;ⷴWHCXNCJv/,iYq sci2 )qHG5O*ozo'7wy"?g`?YK1;ky|p}G,U>zҬ.~~Rg ޟ|k)7l=t 8ai_Ƌ[&oY@ꨳ<{<3_sx>'4h~1;]1e q ½E+_#}58.CiPk%g(u_kLz&r%^I@7cퟪ]Ftei:fg֩:+u"O;*n9$~rrG'|u׿+>뚜|V{ {,=ӵ|⯀5׿? N׌t|?:Il X,-jD'$ɯ q C 6LZ#ݷ`fȦ)9$l]H #55o;?jIĚ_xsǖgrXRG*~,~`U?3)j*Y(FMQm^^&Ӽj?`O|T j1WyӏݏW_E[w%Sh|:1skQ($ n$s`cῲ6~8TҼA<v,oXآF&s_4_=;8`h^)|;wF/2;*zG3?8k麭ums\M3TB,ceF$\dd;q]#C?aPWTɝs֏\O'#ᗃ_߉ti"6QkɄ6Uik+|{c[^>=;kM2_]8W#QD*I mX\ߴ_< wdZL[ neV"V2$ ]|k-_=[S7g,v@2~>eK; ,_wJOتz?2'6W=ʸy@G_A}O+ ݊l44!ORy$ŸaT[k=%j:\>>"'&VYC[9yvl~nzVaeiv6vp,0*"( Whu$Š( o|74$ψ h{pdlgdh2?,}**T8M.`F9N1M$oƞ /i /W(:4>LZ;dh#HC)r~Jx7Vѿҵ8-{∳4Z}Xc_//K|3^M?]gʒ TC5dfq$!T=ξ#?hTy ş'6O6)a)(uJw]aq4h5R&\ҧtiUOih ?H!m߈JdS Hq/ Wiڝ^L=Ѿq^Ke W7 >tT](rG9LwZO%K=V&TyjNʼʜ q/ V/ƑX+, i?, k*-%^4_nmP|rLZ#M/yjX%JhC+/%HkpGgcjy,rOL.k֯S-XiT"N0wO4YpY-%U߼[ZUl\lk7w_Z+_ L]ޢyިCSˋj$d_8] rO, ;tI5:?]CY#zeS pgߌ?$W3|9! stFPzLPl%V)oEno<;SR=9Iɾi7I-˳Yxg֛798<6F:_ܤ8wKѴB{ =3Nvmm{U h~(Gt-_Mqwv#WWQP4] ʼ+*S~g +x/_EA.}]e|PcbI@q__ƝZt0]+]e.\.'` N^g~&i[}NCl|{W FS#'.9 ƽV^KL?9Vůkj@!F{+}Ji!c d lᯊ_EQ𶫶U-H@".d=:r>OmSss%Dž^cqjOX+[U|Ld^/bh?-ℱiN.]Tpx~:J*G\9uS&OمQZWKGB5e .m2N +(QV"}˳,^ Nԃ[ROkT~`?e N[V^n![lKXf2}C] w'yrwY+I SY8?&kㅴ|9-&8ν>²μܞ췏<qZT%wъSMZ5Wy.Yiv}/E~^Gڃ?Vq,#uaAC$Bp(ri~k2_Y紐3'gt1RNѯ4|x_dUPqX)|5>hzM|T3K]gQE쟚Q@Q@Q@/S ඗ɥDB I> Ѽe|qb{7a%ˉ!|FHqXbpJT殚d'*iӒ{j}A^?%x_^ˢRkZ s1 !e}ΰZ[[#R[hTJ4{w>`SzWg`MU1̓*E0e]<PUsW WDnwqθyW2}^ FRy5'\Ҕ!Fe֍iZޘVK$cbVER9q5 |#z^Womb1-d11A*2 ǕVс^-?9 k0ҡ'%Uk_~_qSgmK U*U㇨w)ьS|wn1Q=ckmni๷i7^=9}?Qv9&8 _}!sM>3Xk:xcEмI.|Ct,L$֑8@Cls^rU\:z<y^E-Tܖ/+^ 4Z0I$:ױApZxWD֮gym Js]5ŏ-{Oz?Qv٫LlCɹ/Z_k~!u oW}}ى?Aڢs5_5Yy.հѹ$=҄4JVt= ?/Wo|+^Q/干5MX1tL, if*pJ,.h^]kIfN-89 $ :Y?$ij>} DnB#(fؿgX_K? G)K#±M^я,1J`C$ /jZݶ?ȏ1R*uƜovEEjމkVNUm5-2RӮYfYbe]I  [ᗎj[k߂#2x\(1߃[ji8x'5ɢbr}$A"xm+CK&v" ?$ qy]>飊=7Gxg }xCoMC;D[9.q9+<#+s֛hF^_\,Q '{<^)~,|?7]xÖEm:o 6nSc^5~6E<'rog?jo_%M=i|Bg͑[K5'hkH[E }eG S;oW//@ Yʺe;r򼪤E9S_=G <+Vj"Wld ǹ5׷0HڜuᯊY=𦅤xk.- F*((((_L'v_%kګg0)蕯jQH((((((((((((YiEΡX[dc$%ʟlOn,> b *Rpy@"36d_hگV׿h/]1hdZx3K_*yT!=A*>֧e_AF&x(uQ7RKޟwm>㙉j1.`rR!²x`W^"o Zݕϖ}b"dgsk? >|$R>ΟY>,k+enx ++yLLL|_/x(KwVyXӷD9-@GGkecn ʊ^^E20L 2HaAYq?Vu&7vm|o~9~Þ(Ze_:"l,sA|8jH |N.!{v'{Z7zu}#I ]4kFl/x.baI#`U o$GOk7+mWo&I'j[; x^"rB^o}//Gn~;2l=,mAb ­/U{ӥ8YZ< oOx">Y4k>=Z9rv ?镔s?P ѡmy1MJ[_o@/ev$  3#N+{Os oݥeLթV Iʣ}_][JaO'c=EWԵ E|+e'mc2ka{e@ϊJVv?W1XJ/4$޼7UxL:rY5JJ vdSv_,H ^_O3?4 }+ ][VD$o,ܐA,xKi_t41S4۬ǘ{u64Mf`HEO>JՓ+n:x_l}_uF8V1eRUUmCR3,LR+:s5^M1?MeZ^gX,~"Vm TrYLɎF53ۏ=]V橨ƦtoDU|0* ~ij~Jִ=WMMBG e-[RI)e @zN+IIwn@9¬.pxз]\_Oح/ƿ& xX?gDPOa9X8b7˾^0W5x7DŽƋE834jZ[K#e<'2f*|c[o>(#Ź_RMV>>9XkZM9ޣ#M5t~J*AN0)2HHf%ԫUQ_ X7߂:ψgx&krzˌ3ll9+FۺOt}W uX+m%fpwOSc2iBkGJ1h0 Y&A/ x"𖻦xDu2{# 'iC(+; '}]?hȋ|p"r7έXSݒݽCTSroKVwO*KuxǺÚc,(zr231/CxknL77Տ1yɯz%|5S}|#+?6br^X|. 3כqϗw~KV<<_ѼN k͑EYQok^IN$zNC#K+8ly`Zko<-߇z|k#>ԡ0i 8  dJq79OvKN^&bX=|Ν8ɴ49;&t4y^ghjA~尺ybU%zMlC0zLy~դZE__ŗ$~,k n{Wg%ʸ#,ǯ=K&?ou$ 㟂:boq`r;q_9J^R^vdt-R5%b0/朝?I޷)}\§tHG-=;t杫d񎩤_ͤ{&+|ǧQ^q'/ٗZ|j۹6X,^ %e\k85iSiҦWҖ,o@ Uê6V%k[ ssT,ZP'䢺7*|+O5cafdb@Yk´}; 6FGg5 4@ڝAbEs4W=fk'$2; Q Ic{9l.k~_"/h{ 1u _&iS2c٦AeG'Ƀ]'&`V+M]l=},>e'pf;Ҕ4ZRvK);YkjǬ8':raii6ϫ^bK8u@<תڼ'i!^Et_[Y]o ⸷K Do9(T>j1RUݟWͩcMʶm]5t=-ZYlaڼ_O?FcKJkzh 0a.8`㓆'?E,LK~%XpU9]Ӻgd |/:[KVn'fbp~п?h+⯄3|Mhm _iݰ6 RÚpIm! HA|Tz+e`yFwDp־0_Gߡa_H&' Goi-ꮼ/f5/̃Kdzl׶u?¯^ gfeԶ0`.fvUu PE~?w߂Ɵ_'ě:wkk5vJ R3/#x@ox[[|GB5]ŵg$J3.*&kQ%iћ4QEQQEQEQEQEQEQEx&;/U⿳OJ׵S`(EPEPEPEPEPEPEPEPEPEPEs+ ໯x^9[_N#@{(,Dz/cW㏋<&x/Po.ڭH,cd30¼8`v>9θN )u>JP_ޛWd}o/~爡 Y6M}y9xP+Eawiue#ח#?$[c!]KW*>q< &届OPe#xR+TD4XE @+?1/eO")t}\;"uލ5u:ٟ7|D_#Օd6½xA:jjtGy6XƼU]蕒肊( ( ( (^6GP d_?/FaOqd!+K2ۦ ǃ$h&S(˥VtfMh/W~3: ݝ4V>$\iښ$Q1TbEn^gៈV#ž oYB=?HҭFv{Af% aF:fx'>^׆_b=zfh(v8a0S#5_duS?}/Bds&u4ױ睝lR-_3Wr{FM7W~?o"8NhԫJ3**U#s?ܪjOW{oz&^ 4M}E5goU#Ddu~VXu3|A'f{T;xa; ,m|]+]N$B蚚烟.<+57߳{OM"љGnE 0MnͶV 1(YJ{猣_+a$ED$nf=cQJOO_??uae\E^4#;MF:TIZ媕pZ_Z>oh7?me\)P7B2r Lo4x///>ul5C/R_A]fZ։#Lf2 'JԛFl5?fk__Gsgsm%וkr3p$Q$r7rW5' }+nvoFsQB8*4^[Is^3*QwߒjVMIGg+M׌f+^' 3z&s3]ßڿAռH|[J!q O\Is7_Ut8o%E"9G g*{\/ :NϪ~/*TK=i:vǣ(ee9 B: ~4ukɾ-|,FVk82Ɂ,Vh}wf+M3P>hZ2:gZX\\G25,6?{Kf5=ڊ(B(%?Ɵ eÖ[=J^0 ꦾߵ}%BoܼF{$vƹt T+ % D[EkɟMy}hB懬>9vwEokƶ>Iu{''uY 0=dXt٧iw?ş[Xg8ُ^? }z~2u߶7^iqo8^a$~n]۶ n#$v\{b< Nڒrv~x /O ؄N+NqR>k'o!_M~!qNe< < 4x{z z}m*G8 q1UI {~/<^|-ՏҖWY>&6w*wl቏~t_)>#>iwmʹ<9Zƍƒ\]Y@-(U6HSp',exF+}D$bLFy%IR2?~p=+4S6cٙ5=F[ VpR pOy#|S-cuVsHswQ{`G*ɸOaN(VOMQJ}#7s~=(8ž<-H#˹e'uhX^O>"񀸸ӭy5 E&I[2>QRyK/iޖcU xsh~*lu2OeqJcr0H#ּa|L~ 5/t,>~0:X bA134^\ _{_x b]?G}Ǚq$* U?~ʾ:ּQkzc{7mmQvU½즴c{ݥe}>ù ?m8TԩǚJ-N^z _߲'lz5NJ-aaU{tW  \Hze|(f&/_G!EPEPEPEPEPEPa?S+^^+8ɄND{U6(@QEQEQEQEQEQEQEQEQX"Ok&bӴM.K:EjY$p$9)(QRHӧ)IնIwfCmg-ıAoY*ĞŸm|.>1Dc-a˧OOBc oOW֣qkx-mIFPIJci,َ#/W|7i[FOYaA袾]cqٟ;O1T1_Aڝ7U-e%֝=?dO|omp?iA`S,#&Rs_|?xWE|?Z.{+(u''y$ݢl(`'c&uĎF?5J-VŠ(L`((((㥇 x^5̚CQ&U;b9@ v[RNCL0J^zW4y\iCjH!T0~n+ߵ~|W;| ŢI_j;?v1D&@t,~K m,P15I g⿍_4O |3k+^_,g48K^X;UU ~߿?h+ד@NoIklfXd.HTVy$g M~__I^+տfwOjZs& rxc_sV2JOrcuSMOij |Ad'zȬ(O 9@?v鶚DkЯeM i!LErZb7 7H_C6~uVU=."帵`G1?w9u7hTYh}Y5IRf߽(rJcR˚>E%/[}O<K-JΆYd#$Ȥ2 =+2 [o xHđ˪0ڬ̏$:|JAto!ַk֨hiPD;R\cxHdin-lfY@"+NnӴmv/mҝ97-t-]l֜l͏g$1)>{'oX=_^6iMCn&џݝ0}yֽl}DŽ/Ihj852}?iwxwQ.[f]D^?#d8=F2 m{W+}e@EI`9!ȭφ~9t~2k2hoxFc-ˤ2Mh0!XdzVzبJ-}g3U19d5'did(͞g^jV7׳8Hm2I#TI /+.<>ѥI/>')n2\patˍ6'ldSƹr]bxe@^qq%IJ4,ŝܒI$TiR? 򜩭U1~IU֧yo|:ml~] H$cuğ~w 88&oX=YML驙ULDܞ˲]KH$zƿ?zkzO9k'Ѱ_| $_^i (O ( ( ( ( ( ˬ2-oK@FU7(хX]^osL;))}ҭVf(e$w >h?o!_ mmXS{]E!ˀ0f r2p@?Ko?~eѺG'ե}wZFj&ZGk_E1>=Xx6Kω:e֡1wnnY |K-z?'㦱U5ދI,yIR+q𯈼gi:PulǼxoړ7 ≼׌"j#HՆڏo4Oj7K66rW#dq\CxgaCchֺlI+)*H >%d}~.֣umo.܏<{⏊> 'bltmCWL& v9/<=I&㩜M=Τ%rz|Xt&zMy:Oq~76[:Ӻ֣|~~ۿu#ᦽ[d֗BDf23#12|Gg<֚='ᯉYɊ37Q*AOX濭xsAW_ Gӵjvii,\뵣t< -@,'|8o:M/ɗPkyRI^ΠgiveMF+Sߟ_>fX qi^*ME)6q^2׈Ǿ[M{.~H/$R(xjveem|;º1`&5=?ѥwEFq_%:ֻS7ӯSBO8H1U,<+.3g]ޘM G^7"Tk7 Gk'ʼSm u WNnyxDPn1G)KIP HcҾ?DֵZV/U0~NxTA⋋ijd[].U׉AB>H pnkoxMKXzqG\Yڣ7W.*HPM.cȨ)T83Q=Ԣvd{FWK.d&Aɯki_7K[_[>'XbE˳T>c=O|Iqk~4"lAZF8)+"UfO%z1_<չkYhrLΧnR2+ʲJjU۩/Xlm 4ڦԣ s[H>9> mO'L5XaJ\Ckrue##J(?Š((((((?~اeVWp ?bZlQE((((((((_\|?C^40SstD 79?[tok)tW#z) Y?oZLox &tQլ.rZ5w>8|2,xEoqA6B;K8z5S})⼻*/$-ChWcFQixb4!R,k+Q݅eWo 85/+藈aVE];dMI'Vq18H:]Mu]c^!=VmRNO} (c(((((ޯwwwy~xǞ>zɦF F0P9\uqW^$'?5MkNkc\Xo>lmU#],?#ZUޙ)uk6O77t ɯ~^?mύ ?#TpPoՀ#ҊX񯁿e!|MCoå^b+% avBA]4*_tGXU,@I#?CiSOb4i,\g.1XS7c8/(\eUKyIV$}CB𷅮u&n3-4_AԞrOW!*DXHo~x+1_69>?h"$M}7?$x?+a[qQIU1tʜ`V4.DSQ<rROSj|wZ|ii2i7o6h"#ݢ d9 H¿ڝ_៉/<4|?u |{|Cуһy%^_8??X (Ky;Zs"8*CWs_'RB]Y-gPp-|@_;_.E'nG^}wUӟ+xuڳi8.>>l=7㇈"0atÀ3br=Gq^5=x sE{{tWFapEyŔ!i4'??AׅP35b:v5佴W)VckrXce:WRwt>)a4>]7/}6vj~&~/wҵwSs7S|lj?w\/POv𞟤 me.߳Eppu¾氵^wP]x']> KnW\a2Euԋ7v_e+}h_S*rBmuAdks7}hϭcľ/1.mbFӣq&7Uz_9nNaF(IWmInv6<Mg2nKėSz|A=~C~8k_(TƮE=IH9drٓ wέm㏊SYĚ:nrc-f,c5x rhu??]ҥ y>daٔ=k W/>!G[[Dgo|#HJPe~I3_y\}g#沍Z´~|y+|0!koZMQIaH8*8? Sz_Zњ/躢ǶXWza(_jX~п͛?soD=;2 HRkmZW4{yCyM~2t~^7ÿb mqX$.q"! w⽒iԍHEwfxLF;~tQEYQEQEs🅼iׇ-]5FR5 8Ig xxk1ŽVlky8^?gyn.ľ-,zV=:pr)N+ > !\nzn".˧|Fm)b Mq xh0^~GQoO^ g_Z0v-&$< $ڜ_yÿ{M>(?N]onmnH$o\}ўAu5g%LJ ^cQWk{NԣuJ>zZot=~Ѵ .Fҭl6p,Qu=S޵hIYS qP[% (cdDTY#u*!+|qğWρ|3O^iwV)Cb+(M|Av-[N-׉|)+ CwR"%PHƽ\^@ 6YxOǘh~B S|gmlDqkgHG2BOT9I\75o'~|@yuR] e2$bByi2¡9$ujִBPu e #08 9c Gnڗf| jCarr}+SU=k1C6Ԥ*V꒽ߣv?eln#69=,E}QA/k^=Q_P~QEQEQEQEQEQ\G#3ᯄYg|03@RQWnbaJi:ݒl~,~Kij^'N`E$32MkT@\IsY?78ԭ=K3߳ڟZQpnѿs¿9"]xO %; Vpdcjte?>xWI3H;Q +Z88A=eZG<oU{Ԟ Zw (ϯ ( ωߌvҧ>.߶1rJtP瞫5=DJf$XSTbNs/p=>{/kw `xہ-Z.0?d6E%ZgxMAQ˸sd$kt5π|mp ]~YЮ"YK %99ol=NԬu >&%)XA 0E~TaB~ο>6X~iCWHI''z9>P񁀱/9eܹ3 ژWA)8JqI_IF~~YĻ5_>%!-xs˒>)OO۟]&+awzor38$W?<+z_,We./+rp ڹ…WU28u-{;;ìRN>Yw0|3o x+o(((((((((((oO K/jzRYG!HgUrKt(Ӿ7|b wnMvqt$f7 !Nꖣsj6zr.-nYbOfV*5I3eU^^6~s9%v]ӛxoX]]|McUnj$⋯rh1Ec)rBq@oڻ?%H^ҮH(|>% T,kuo=Ojg]S)zI&>좾>,xbsboq_t? [+y=^0=r: MT?ٕe_BӜI~m#?< ڞ3׭tpM;nHCoLh$W|BI˧|/>6v)?g,؇쟧'?4ӭ7Ƴ0Hg@Cs0`l50oiQH8Pp}z8s\t$50[9m{ũEl'vwIjhE~Eynyc_AEvR q傲>)Yfat8.}[waEVQET-"*J6FTGA/4]iLl%ia 1#vԆQп-x⎑M |)nOYY֤-B2o\̙PI?uĿhotO<xu{KĺƆuAekA8` $ S_~_ ?!xV\:Iw;4qx^E| E/ooz>0j;_.>!~_<}ueu_ ֑9t{h1HRz/Jb|sx4?ս b4T{Gmހ=((((((((?~اeVWp ?bZlQE((jzW+ Iu{}p*rq@诀g;|]O_ʞn댭HNRF}3.d'CoƏ.ZvL葛Y_ٍ}GoxX?*Fa ;+O:55.i23E$x!Tb:Ʀ Kxgea*x ~xIm.Rd)nv,3|7м E\Z$n=|% sN[/վsN=UQcu.T?Zo-[<:u1Xdd g,xu?okFn5iEիA-Y/^Hۏ5O%O6㫮xsG&.["U |oĞ ;ahSh/"PAo0VUL@ r3Q5(v]q̰U#7TM NiڄJŘE0'~v#sJd_v"3k}^gY>1W[ :n1~K{^mm/,;(o_CEWOiwqcnwc $Z.|¿o9G? ܴҠYo_dL(UUk15b~L>SGm+P|mp =ƿJ+C˘YN+w{]wcLU 5iv):uME+h`+?- ( ( ( (^[Zl27]̱E1Wjx;Vo x*_:O& /2A"9%kt8'.]Ͳ ` \qR2 R+59rR\^,ǎ!:4Yogjp_WoIxt狵ɯ\[mn F M%*uOAoX̰SV8&PJ`w:lV6vp H`0ƣQ]1J(QEQEQ_6g8WkqxxxnI#{+xB,IڪZg3o~u9tOYKwk E$x`ے f 8Qٛ Ꮑ,vm}N , _i\ϓ[]}{Ex/ DxS~B񅇉"4w[BbmGſ?7]kZ?VӢ kD;HO Ry^E|O5[]i7|.nͤ:X]EEKE-xFZOSk\ߊ,O4DFV6YZ5=QEQEQEQEQEQEQEQE⿳OJ׵Wa?S+^M (Q@_~~#TΏi6.c8!O؅Q$G#toᆟv_M崬~69mЖ#RE}Ag|\;5N&wngr8"$Tўqߏ/🅴AE1I wß^4/xbѤk]+HKkh9T@,}I4EQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQE⿳OJ׵Wa?S+^M (yG |)Ɵ|eCCck=܀WSO|x^Nд}>kFOHUX|]ۻ  NDӋf=N߈Eyvw-9XxzRQ+sr^q&o ~2Uj:%}ݟWNJUo)}M**km :nxo-{#'UuGt2Gw&u#dV<4IX I^N-5-3EN:0ć}՛]1XȣWk*5k󵼯saTRSEknyVψ1G4 S.],j1agj].q>o?3/ cySgo$/5"C5_FRzp}+DW ,Ӟyb#d6@pGwUӅJ^'fk{cY39byjҦMBz''o{+)uzݼ/$24nBc+s+?Q |f:^GIJYdOQ\߈!:/GckzdMv HXRV߳jJ5OR7:>jz.  a nH8",/.-ocow=fUm2S.F2I:\u7,j6Z`̒-yma@;'# G45Lk$W{wKkrCGg!xL;9C{&=}tXXn"#Я]ImNnTy(EY)5k|C=کW?(g,Tds975;0Q." X{Hkȼ_yj"Z.? !+ Q$`tx:F?1[J.l rő jTa?i{}{{3So|qvr^6ud%$d~aFT;gڴnnwnּQ7>x'Yjnl5|ax Z&uFytn=[P?dD3Gmi&ieX ʼnϟ< }^c<m7Hi6rg#M5,Ԋb{/&},3 NZp]W.^c+# ( ( (>N^~OҖ]Cx'zeeOAhy?X#_t++Ʈ2 ZiV{Goџc/vTѯEWyQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQE⿳OJ׵Wa?S+^M (O_6o~V1219vW'VXպ>_^;ۼ+u5j] WC cUJrNI>siBKas_Ք+3[RNt^Քm]J?jTm#TN V/j5ac+kUrMK_6rUI䓂qVY-F yђBAQihcJ%Q)#Y.^W'h*hNu*pF> ]8HS*PVq[kӊ dxW.g5q~%I=%]v55_ލE}XQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQE⿳OJ׵Wa?S+^M (+OKQ}J5;rq0Q <:nq舅,e!+ ާLW^Z ^j:}@؏ڿ+gzß烞1R⬯JRtzwk3\&ڥ^;fDH^_r,{߽{~!р}+]W6}B _ԡK<.r˗ӎqW]b~ '[VʊJF'S@9fp3_K,ƴpO~)H> (Nq{iB vRnݮIj]Ox7;Ssgp6RC#wn~ kN ʻ~($$~<&~(|RvPhmᶗζ弊7{Y%\D%K4U[ƌ6_viŸ%kxmWI/=ެ(>X((((wgii_N&Iz)koMs7_<[dzN(=уFxTW4VIg3gqTi(?ýϐ~ڗgM)2E21$n6#*)ioIMXu)C_ه`fc `,|R-qaR.cbGp+Iө;}>w!̱vd|ƧNT=2tw_F}EWyQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQE⿳OJ׵Wa?S+^M (Q@.7o$>a5`>'ӂ͂I&Jn2]Si8?iث oˍ3Q/}j]J_-Ej,v(ᧉ޿ovƗ3ѠYC{z2 ?Ǐ >"ij֠ 7'='":)`RA|Mlj7ߊOJޡ^iY~o.c!Yx9C ” ӧS XF"'YVrNwivY->ֽkcGsId;pz tX5wk VHb4^+-@SsfRXە'."7ox[b5rG-\oș>bE~wLJQ}dK.J~ZX𾒏IFm%zycCV <7E5ZI#&A[r<<.&J7lK=<M3USݷ-YX4ycw//M𶟯_iφCeM"O9=W~8Gׇ7p<~\?LzXV`gnsIԊ?>ǡ?Eou~=?LMH{*bxrMy5{։Z^IJ&+m+LrG<.;N9K+.~9|4SfkgUP Ѿgm# c<Js\[X`^O ID6֯]n|9Kω?/-WC7ip)FڌQXYn4W^6L5_ܫp d,VU(|X]\'#Z(B(((((((((((((((((((((((((((((((((((((?~اeVWp ?bZlQE(((~&.?Z^ӼWME1qevuv4rr! )G<?`4i=.b_*aH`覊M&˧Rtfkt+kN5;{V&Zƫ{~[qv㻈YYM'RnTUTE@H>ʖ/)z+֫J擕.VLl6Oӭ H-mmX4PUP j+c ( ( ( ( +i75j?>!^I}Hm7ZRR{ f?*($'ǿ_RT kᗃ#4 =mWQ;fR1A"uVQ3H}uk}k,~ <{/?^'}o.x}[2E ,^MrAG_ ?ࢿOM~9K|T$/ʒޔ%gq+HNňzoo5ZַLR崀˟dE{lUk?xcRN#RM+O[ի+\ߵ­gz_u[fMˉ/qk,yI I|oxNvq hzi$W:g?ojl4XC#) iϒ buP@U9T7Z|Ҹ|c3$SRw.02riݷEuo M3*|=i//EmL޷\'9?ZZ~.|&I0XuE FbDO< M L Af>I[EU݅LEiЭGܣ pڼ(%'+8;]pIxJ9Ɲ.d߫\߷AuyCwDtʢKWR@q_Nj8CY9eLApTAX=묚=Rv޹톜$ktρ%O,/]E5]T2H2E{Qww S?.fƋ6q,:_'~bX9ctr#H236[ӿc/y@+(((((((((((((((((((((((((((((((((((((g0)蕯j?~اeVQE ( ( ( ( ( ( ( (l쏢[hsY㟊Oŕ- ɈYB<{w[rixGöf6;#љI8UVMehzno+ ,h*+OZ֡K- ^-# ],YIdLݾھ#1\D}"xx"XN+-'ꕗWhhԴ+\N3e+ƼCP~"xAדMs}'6na72G;qkDž6,V8M&۽}j(+S~'|E u N|>pռե@3?V==Mg!h `N?j[Y3N*p>l~n7X9wkv=\Fu#Q>}ԜwQkV߫HF(ZI"(&-턧!W\xźWh~%tbX{Eզb9$% $\zvĩͭ[Ah}nI{(^xeA"Kg,$oo`Еh$iIߙ=,M{1$"<W^x:׆7f&Ou}{PK?82] qxg6"ľS/xᾅ@З$& co =/rJqsKg%-fgkj{Kȭ« <8_~ ^V?Ʀضg #X_:E\#dcO4"bi" NNUɻgUJte[mAT}饣aQE}QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEx&;/U⿳OJ׵S`(EPEPEPEPEPEPEP|e|~!Sgsvgd2c7fMw|K՞9r_HYnbrED@_-~"uޑdM=.cctb`nkF-aO ]B_^\N@.dG^>y +qݻxXg<4gVJ&&gh~"8#8a"*"@A\FIsy,I>lwqKjȰڌ7SCu\jt?O7'K? řUomV|ۉ\F9 $NQmm{*%YTtB>;Ҷ}M'4_ ^)D~gsz"J̌޺hz߉~5-z]+ u8UlLzzGV:);j+qMyN#N\fmw'm.yO߀!ñI]/Qtdm,N2ppH*s6/iZ3YGj(QwY>f-q8ѫ L1sIt9r/)+ZrWWիkmG :Whqm:_I]7VdV)r 2E*pF xK^Y鶞"4/LK9- EY䕙0^Oo/j] d!uU1IZ_1V*g)(md%++^ǔ[Z|zTaxwT^ zVI!XS$m6ҹ?G\L^ i ]DKC*}QXTi$,'$ɫCZ{y%g?GN2QQRQ[shr:jxNNfOscwr,D>fVSN1L}SEQjZvwl["*yWIzp{U*%r] -X`~Z~.<2׎j(d@3#zlY[Ojuc[xQim4:K| \8||WocO>+a$) f +񍱶>b'?/hW"?_DeG\?>JZ_iw6WDO%F2 A )Kn> V)]Fb2"cs0*|XwŮpLX8_nhGW{SjISŶD1{{{+Ư jEޣ隥jZe + `Zw3JѼ2ng?+')ғEf[̩8TOukF8EHux@XJmbISbfQhoE4JJ E*N &ȝKQ*Gӏ„^md~PA|cRW(+)c/tQd.>VإVSl[j{jor>hSigNAO+|£,Бj:ܾ5t1[f@ZqiDُ{gS)O3#?:#@:d՝ߥgڞxnXot.#-Ä$I&VrS5Kv/>-_ޥ$=G7QX[`a,6ǭ~'Zu/!$\?̶Zhg~hW9ÿ-m!ZMQ]_H:|E8S&O:O|c@Mд}> :!8_eUP>6Mxl2z.Sp SVQ]I(;QEzaEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPa?S+^^+8ɄND{U6(@QEQEQEQEQEQEQEiV\,5 g:0*}hQ@-'/ 7'jB;֮L~v\Dǖ 3_xb+᫭ae,-s#1U_|7º~][apz0 HFkG_W֭lse++N 6 iVqzne(wfbНv``/ÿxI玼-KxcA#8ZOυ53-1eX\[c3.DH8'$1t觅:Y x|ppuVWtd~;|1hooLdžcO OUt:Ee[,qf?@+|9~$|nִ\>n˳\,r/M69^/ E㧷qNrFk3ODg0$vrPq_S>^,8dVrne}~ӧdRwi~k]VSk0bAT%ն ~_|sZP1pyv㝎#8e)hhdRFYH 93|\$!:Lŧ_ gM7Pzs^ncEsxFIT"Ƭ>]o>\N>}l&Y+c¾a6S5ZAk&,XF'h !?C].?C.K_"\mm5wO|ьj`/f#᛿%`"9?4hA W=[?6񕥉qwQQ6ٻwL9 +|?Cያ=Quqwb_u% W88 h_J_⦵|_ K8Y{^S+iF2 /oSnUzcb odXUo#ּ( $"4W I^_>.2|D־+-D 1fa,HG9CѼ3/4= MK]?OaP"@jQEQEQEQEQEQEQEQEQEQEWC&|OZj4Vkڴ6b?1q#=Eyl_5qEFW`v$ߠ0τ L7uUfmfI.X)dY`3&> ++\4o 7U]?C4I.FuԳ#UTI8W=_ֹi ~*xǺB໚m2#qv1q@Ey? ~izm^+Ea.f.],7+d8?Ut>9|jV? >(׺|K-Cw%1!]35յk=/J{۹(mE,HB*K@(7gß2|5t\K1X6YQ^ӿRi/XOx.a,t/1T{W?ߋx^GWˢ^x+nȚ2wkۨb7ms፿X6'-]2rv۸xU5+ԵwQ4]:&Cm )gݸUUz@TW?v7Ïxo>[mGD#f@.2:ᇭgC&|OZj4Vkڴ6b?1q#=Ez%x3 ŞN/ ]_%մQt$#<]MW~&eBVqo&\Ÿ+NGq^_>}wᗏ<'*2=Ƈt f#sĚtUx+gm8<կ~ov^Ɵ0EֺV {h9Xщ;QYڀ=Š~߳ßWƟ~E#iZma t/0eܬ29| d.|87!€|rA'Z(((((((((((((((((g0)蕯j?~اeVQE ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (???'u}U {?| Gᖩq_hwL|Uyd?$:Wʿ\f :H_xS~9o ՍP3"M[8Y4$gTD\*xA_e:ZO=sbWQ@W /&tt\x>;nqrˏVf5Sþ${sh/B453%Fkܜ3]vgz{7>O?+|t?.^h.Z->˿iV?1wK}i͙$ɆEݑ}c&?o̞4 ]MImZuOYrO N ?cQ1Vt8Ϙ`ݎ~7|_< a]M)@ci񆽯 mׇb,n5hUQ4 Ҧߴ[Idko?Q-G;տJS&3OwHnf:?/Q۟-d5dqgֿOѮu]A64=[js{ଞ~>?2Ԉy ɼ3X.tkT|m\[F}VR( y,ojOw,|QHn(r$rrfLdTwSBYmWU#Y`t;g࿏?7l6k}nnn/.K)t%1?ng=ծ^Y\ñEg8e+"[p] >~۞"<]cwmSXKy$BYI1_ؿ)nǚíWEtEvɱqxKdQ_VrߢpjVk;[Yts&l;) C_ xR~ߴr+۟<T2)s-@E~?:GIۗMm//[:ioDd/nחS`KX9\w1> ~"x4Z[j_  E yNI6ymݾ %f?|+xr;WԮu[[T%PIv噱=~ fğ(uI\kRp@Z Xf8!۵˓;0dfo/^)?Yek./Sw^,.ey *K_J<ojڦV$|%k ; @$ '¿_thO׾3V}=ƷEЯΫzw߱]Ӿ!tټuA7Ƣmh 3ऌew^?WG֢Ʃ?Kq&t\@̛]<ӭ~~/Oⶽ/7~9}'2kW|U!L6גO?"|;oŏP|5O;_ /CRPɪxM6S]-Goݱ~_ :]8>܍\dg5tPx/ÝkUM\:hسđ̤d.ˍi ws6[_6:u͔რ!EǞT6|3s5E?W՗B~QkY@yZ(>?Z=oo-3{{]E*2~Q@|/ S:~|C!yZ hnk$玕w9c:gĩOrΛ0]Ͷ2w( OS7Fk_KR1-5 &e?Jb_ #ӵHu'u6SJҘ˾.~XקJ2a_'D-m<? OrhmVӪHmxՇ$|9\*/%%񮧣ivX[`X4bԆ h 7 YG|4:K| %ӝ:['1_T~ğOe1xNV/]/ ."4I+~bWerF?IJ3Q&s,4I㼲NL n%r8+{ײ~Ϳǯߵ" i%׆5}^m y'β 0yP/_Ⅸ?: yߴ~|}8zn_غ?/G_xoUVMb<Ƕh1" ` KU☼kxwEL[a_.61lX ^EQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEnova-17.0.13/doc/source/admin/figures/SCH_5009_V00_NUAC-VNC_OpenStack.png0000664000175000017500000023011413556316250025106 0ustar zuulzuul00000000000000PNG  IHDR9A"iCCPICC ProfileXyTMvX%眓 s%Q"AEPTPAP@1!("dPA=ϙꪚؘI(jBB# qh@(+*\meFK-_xDyY";+ Y#!r-`H X-췃ٷֱA.d)X/?1 ET3O,~}H~Xn@Tx0)8{ ^"GZoKAa&[POs "q~ch?`I&FdeH۶>< v{FYGD>F>B3FF2 Րo`o`"lLvGuDXoqGog\i35m wlaG(G?ܼ}tv8>va$wm3Ã-w3>; _c"IyIƖ;hKnh40:@pa 7#vz D?w%,{B HioXDWs۽A`!hV:Zm5KVcMX=. a\ Lb1( 0Az}1o1 ;2{qo1f`'b=G-Gkw4#向h5#d?sm1ʉD]#oɿ5,&?6pfL4mnA?:RfI " }⣷NXxBd4#pzIᖑV`k>[od>ErY j;`G&ݑnT`#c @h=` ,-pnȬuRA&A8 ΂ nfG)X+` D A,$A2A5y@~P(ҡ\: U@5u74}~`E@ $QJ(- 凊@%2PPP+&Sj5ZL3<83 GV$/Qx^Ecthn8h;:}}}} ݄@Dп1vFcqa0bLӉO,ˈ*"k Mc 2cp8.+]ý}$ "!'s& %K#+&%Kll\\܂ܛ<<y+sOkx^ oħOaw ^ e +S(SQh +!pPMOxCNII)HILMy!O"QhD&&KM/TTTZTnTTT7SSS RPRRߢ^ 9BSKM3Mգ͠=OvӡK@IK/DoDHK~A!(#(h̘xqS6S l̚>9̿XYXXYY޳YEYXXϰvγѳy`{ˎbefOb?þaQcS3. :WW!=Ynn-`S <<<1<<Qhs1XXX={* ĵc/I0JJI4K|t̗-%/,uA4tt7Q/RWɲ-rbr>rg^ɛoPPTTSQWP,SRWT:XܦrC嫪jj^>{/PU#Us{S iTjkizkViNihj]-ݨCGE}]X@7GWVNވ>ey$C|!##/cE&&㦢f(3cf{K!VX+KRIki]6t666+ڶyb]k8:8:J:p|swr^vs)r*:Oh_n7V`;T$ZuiYuk[ӻ{GͧgWͷwOߌ|N@?,6CB `ىBœ¥"b''cN2=R_rdR2/h;q6s^WT4U VǞ=?yBE5UUUագ/u(Բ]F]ث\yKr_k/4^O023‘"d -H򘔃4Ll<$ߩhD4\ʡ:d:IM-A5G|LǚzYXzZYXڈڲQ+SN\J]s%;z$= YF*‌ `PJ$G"xcJbĽHO\Oqp2w 6CjcZ^zd!LY9Ws4m8v=NgL;Pvگ4,Ys*\xyqxVūufלȼyncHtV6Sջ<@=ozQYxסljݑOf2>?KW)C_?vXH^L O韣,E+ן Cߞ|TbC϶_kuݍK@sr -a3YqE Vgh޵xBw-xO^>co@ "kP ^ _xe.lw`d$o{#aʭԚC.zE0YKrss׎}vV޹] TNX-,Q|S%o>*{]>{fewy êVg_:RRKxxu9oܴlHjlh٢|+;v[~`~æs[ɫ}F/^i!ύ./np[ T'R 5; ;:s;XR` PEBN,4p! T8_&Ny ws0ʑ w(ʇ@I%2EEʑ:ob[oz#|`KkHL<OϦS')(ۈjV*%Ԇhii3X0`tgT¬!i)oV|6lN=.j>z`I4XeO>~T&ES{C CGF#bǷ$'U>X˜H=|80k.'Hȱ|kNf,+?zreYU+j]>~UɆ馹։{Ltuzttk<|&\?![~"N\u’ џOV}Z{ްq Zx(j@6(5x ރBRO kP/EE9Q7P`.ϣ&3ľp2=rIZ =%a2HN,⡺ԯhhi>`3bg||%>[;?0G #3ro^)>@R͊DNd&]Qqˏwg\xpȪњwY<@ (` ܐ@V~h 탒R4"GNB`fGg1NgX){(<=&4SF?:KhbhEXYأ9<9m̹xxM ׊<C)(+yZjPU[^~MRJ^'uqumt$mw {LLL%,XIX7 :8ᝯڻxPx{|S  5 {97(d_i\9gRзhdz 2gg}+ʲ Jcjj_I3&yC!%թнNqu{2+/#z#9QM83)=4}n<3 o-xPqOMMk4e^#٬\['[\_>Qdco'?{SzgfV|ee fds 677*777#0wl5m}O[~r6yDiTXtXML:com.adobe.xmp 1081 429 C)[-@IDATx tcy0" !L4QP0U\R8^c I]ozqL׀1鼦u6Ӣm&%&mAI DDA}#Yч-o}o?g% $@$@$@$@$@$@$@$Pά$@$@$@$@$@$@$@$` HHHHHHH&P䨉fd%HHHHHHH(r        9jY        HHHHHHHjEhFVHHHHHHH"       @&       kHHHHHHH&P䨉fd%HHHHHHH(r        9jY        HHHHHHHjEhFVHHHHHHH"       @&       kHHHHHHH&P䨉fd%HHHHHHH"$㩧ƆQ^z /}Wsy睇kHHHHHHjoI RTx' q^+j_|1n\wuQɌL$@uN@{ɐ *3 l8uсJ·GsȑўPqG5n(́p뭷K.)FrLHj?|XʩoX;mG$@F@#< zjjEZ٢UUfw HPˍ;3>^:+=rLc6$@$@u@:hdVH ''OĞ afO+gЎ*,'uE$@$@$@$@$@$PlRlHOEBohll_\-tcz)/g.-+]u~N]IꞀ "[n $+<8>Gx%EbEZ#_̭v~)vKOEymN]g?KOƹ@8 @]PVT& '>GXpk8]e w:]$WPˍV_g⡡!j-SW1      D9*Ur:U덱]YXeZi2V?Q@$@$@$@$@$@$P*~dx'&|!z#k<Zu\wuYP秺d T {R+#[P R׻ۡ_N[ѥlHHHHHHHZZqds3qh)iO} e`$efI$@5@@녬UMUgM7TMEfYIHsD6aE=l3]5[PkBfK꘦}7ΛZshuZ  s裏X1ԟE*l8HsD"GU]U[XNWæ6ڧIuZ"GWti[      أVR]8pݡWkЩ)VA-9J5e*?# Z!rb#c*oK$@N#چvV޾P(۬)g8rN&r*+6 @KޯZQ &zFQbUUɲ:UBi1ʺG- l#@c*娤r,$@$@$@$@$@$@$`G"וKZr;9]%'     $95ԙ[J:n,' @y P(/dnW\qEr;sgIHHHHHHP䨸&tEr{6s= @{٬##H9Wz٣`$PstY8N^I+ @ P(1`9T*tdbN?SYO+W9IrPa'0믿w1 T{b*貭vSSqttttD뮻,e`&$@#`0Iw?U{17 o^~x<˘g @O=ll:[UM6662 T.Ocqq7>VC2}ccc dtt*2 @ȱ-y 7殣NjuG͚GyAsG13T; BHc7|aqM7AŎF<ƾ= @$@$@$@$@E @wZIs9?PKR5_fš&|\LH ?\ wbFau4l{ G1I$@$@$@$@J"\.jnj/6­ޚ0 !@UUgq!XhOn{]-C+:E}w<e"Ș5 @ȱǍ.5G/СNs 7x#5 @PBDO~ɓ'~?qℱOaZ0 @5*zj͡v:ԉn\~8B2q? PS09MEKs2NUQC}QSbPDI$@$@$@$PhQ…ZNd *t&rRhPvG8|0}q IY]NbNm;IHHHH ВBZHWE0GgIGZO_HG_V^jT Y[RGw9qHK@:-%wOT8M 7j:  T#jwm*)vh<:4˩Sm})ԏ4@$PLgfIշF>=fZgԠ+SӱI=$@$@$@$@$P(rTP˨HKAz}17X{O~+?I* X j}zL[IԌy$@$@$@$@$P(rTX멙g?YF1ċ|STh)!!p%9 U8B-R豸6rj˒ @~(rǩԢC`ygP̘8 @Q貱O>dZZzJ>͓2}r$j$B_,j,>L$Pd?OiN)39 J&@[GչRlQ\ f .7p!r ]ҰO\QA#SPR˕@x7 M C{C^+{g$g(r2ӗb7㾛XOW\pI璀-3<Z]x}ito7ĕW^gyƘ*>ii% Kz -=gB!i`߅}ZPks9'k<$oۍg_}Ԗ$0 P0ITЧ()vAG&-~/?}x"hye>7x^^:\boQ"Gk+ax^:bm Qn*OJ[M=^帲KN$P&mwމT#H:g~||:L=n[M3U0E sw vLh.mGM@Ea5BZfy5ef~_җ;;D91pxaqlVΊca <'%mb`XX,4fl:/oPy/XmF]6W Fej: @$PhɱG`sUAE] A-8r@TQ+081xVlX>%BNNO)muoo>gSGwqGՁԺ%?Z' g鰩NWh8P` 6nt21&4:/SVHaI| ER ["Vw:pp&5|ޔ8%8i2̩(fR`(#uE3}ObZU/gSsbҪȱGdPסB( d'!͕t-P.B_ŵqcnφ q|?`,9GկjJC+P|PB1WEσl 2|r8jhՀF\2%A]ilü̉P] 0,@zii"gKXOC#Ač8-t3O2X0>֕(VYcIkc2M"r\EYUW\V7X´L1ە`ccXX;´4,A8[szr!,di=crI ͺ;?ܺ'InX '?3([ .i`-m,=X [;lXqNaE\ÈGFYam}#:!W؊y]1Uou`H?dZRmyS*LJK&3 x T($cW_~ *蔚B\h>`HKic‘N; M$"gGeǢtnθJWe /tC:"X_?orqŗ-b2+ĠLO)ćO%se[8e{f/b"k 6lt),l{wO5y?gߘƸ *(t71'1PKh,'N`~4 LIAs%/rSڈfxM ͡w8N,ϣ-Ϙ,yG#k5U])7ka,4bq/#CI3-d}u#[͈*BĐ7*iXAsT~>kf^Hx%ыO0"xMl;~5;@OЖ{FUϛdb$PRg4u&Ft򗶳/j͡NwP+Ԣ=չa1nةwӅרx4.4ށCGΣݧ1Iјhy]iC}lO8YE_ې'J-鐎(4t0\.פc,i% &g `}Q7JD+$R7_l_:s;릣D>EלVspv1tH'^C`x~eэ zYG1r7D,d};KY(8&{xBn[QȺm;#ÊttȭJ2^^ahN[Dža 1׌:vʲ~tHM'*jv@ib jͦύ|Nr~{jo_NLUw2Cpvn!,4NLS~nmF SO]n:b-i /rZ@$7:lzӸmF66o9U̜eD}/aw#)o/K)T 1뀻ŇO;&&ˮʿUL}f?<\6|g\pHv7urd`@b=2})/"a`UbUj퉬0Pv CXV~4=Nc"nx 2gRhXl":(OkiPg/'E[W&ou57bϼ6)ג׋aO361#^@3vҲ&  o41)W %}>5`enNšEm/\X_lcid$,cS~ru/e1+l?u^x!gT>or"bS9ʄSoڱXqvVug>@!2!.I6vo̴Ci|W_m-G<2(6!JÈ%GRfdDiChZIh^L:fIDKI'$aD%^1eA,/JH:DpK"cNq':9!cYF"}2'n8q0~GzZOuB%L؀8G(sޝ;⣔Qllx1:g$統f HDW0!#w񮨞ԼY[hn"pdİSz+s+ٌ"(z`;e0"eIF%GUƤ-61u6k(/ҹXύM?%]QDwxO] /޶ "}*{供^f.Qo)2- -§G}cg]~+dʶlۑ~Q+2mF844͡~oX݉udsŧUѸLL ]ll+xYUbI fiqDzX;Ot'K >yvrg[;sqB"fVnǬ<^/|-.%#4%STV%i{Y*1ɧ/lS@ H+%#ϭcV*akܓZǷOXB2-6)$ʒa+c+Z,TK/EupffkױUx|M~c%EK Y:|o%/>ԗN$21O('e]"tYG,;I '9.B!!3+B9ruLX;j)BJY>0-~׻ޕyox稝v_}U&w'GӆS{V#)1ԎCMMS¶Ѷe-QCxk{")nŨZT:4ҍKܰ/hU7Q"ct,=>hXjh:?-|/椏, >(1g%@˫A"ge)cTU{Tʯ,LL,_,cRCT#/-0̞2]f߾nX 䄛08t3ӟ<ԂB|^,*u4|u%ٱ#/d'Faz_etUF׼d0;'2.Ħ ó41ƿejG53M-_ViI/#]]At=C-$lor-})Oq:oy'`o~ bY ŅTZ=ҙSiS ?~bt~FDeTTP{{8YL %Ǚg#V[g891Әr'Nt CPLF27~5uayMezaܬ`ˈ/VÒ`j<9`]YUqhf黇O"/sF֪}u D1 \i4Pxl9R㎸ɜtÉ imPr_VFVqD9ћ5h]<<(eO\4Vm $v4JVz8&,ק:Aߺ=uzIKUihulڸ)ykF3|sH Y::R3lAE&ba,L :PC.CGRBY\jzj_Ժ[<խGR)fލ2-D>DhI&3Lto{FC:(M#>1s5g]7Q"q(ɪ43XJLW:hoRF{:<fìY{W#q&V׏t cKwbx+,GGUk$15n%Qløcpꨔ:֓5&9%{ ts'8ST-ϋnj).g4[޿vBGۻ>hG< q%mˠdm9z ]NI#Ađǒ6;-۴9^DNK!\g[egWn}!S]7ғf s3A3<|f8VRgl[sI_e,g/m_6 /rgsϑI)x(@)'>)\вnf:ߩuM*X1*_xui-}YdW '*jKuZ9:vrsza.rݲ:= ~8i*rk.=cޜwlEߐ^^{κٲ\+6#vvϑ{ϨV._*Ϯ|u/YN*d84NK zrȖP\a||0i;u%l$z*fˠq`9hY7ro2aQ6lZU9:eo/#ZW T J8.?l'*VGPN_d|ڣL}XYUq[3znұbfJVq/;l]Y)*&phh 8=X~X D.   Qd*,KBC&8n|`P貶*؅\yU_㋗Y$;ڹZNFsa pT2WWD)*l, ?ɜ EFKX e͡766eq7瑊F PXo (UMk1wU Z+ts'F,7_)>8*T4zurrtY9?a-Wu#(Zي9 P9mgGd\7Bˎ<}KZ .vku בD+ Zg֫:'?,hKI3d'"1Tۿ%! ,tJyzyH Yz(׍Jj͡I(ԊBmڊb_/^zm]}0@%PN3H*N]G~!   29`8.₦dK-@YQ₮ nw^VK믿;#:*ϑ5qYg+*J@[ ʬ ^hvN)vNgr "]-TP삊 :UDfAS+3_QZ@_H*'s*`~g1PT $@$P;yGyX^9РDU!GZ|se bw~Ygs@7qYJ'"!nSVC=c.8= /bXPk/@äߧvNN0;˙ekN؍/|HHp*^l\{v"G^8aA[8]eŎrMU)hvw2"$Ur9]&؝$P  8R˫JRlGyfz*#h(p$    de){PB9ԊXSfRsMH@G02DE4p*z |:BAgFTpEС" *pɪZp$%   t9vB/DɕB092Ŷ0rdS篗ypI 7~rIj>.tȑiѤs`s9Raȑ#IDˤvje *vu]M6IHHHjE]6i6Sr](ۈnֹwyg$Ješgq4" ͮVFf}ˌk~W1C30UΫ>f$    j$@c͒#f≾esiʊC֗1rRu(r$Y jBUWrY|U8svj>aUB'4B$@$@$@$P(rq^vqf9Jia? }꨸?#!8J.&V&*-;v#pht5b-뜊D]IM8RpHHHHPe+g{ٿ.S~z.k]5=ꔕ3~d˨i~mnx%Yg__̈ǯH ..R[ |YQl!GHHHHV P(af"+;k]O@1Qjee=b.z!ry8/ $pg^ _bx,Uidd"JfP5OWʱӸE|U' s9blʤ>Gt:ǧ @#HΚC-G(ߑ_7O]mWi3S8pe;z-qA~9~pjAw2tZRоL \LCKlA4:\f\8swML[w.' [<16R9sDc@50 dȑI gZsˊP]yR5CH~!` $s eb3Xf :2;;%ȡ{/#8ULVMEbX93 (1 QjHrQg>Q 7u` ˊcpK\YGq o a5@9di;N"ckhG!Ah]ӽX> D،Oaia3 g/W kCNG'{K.u*t`sRT=굺-9ߞvI4z?U S*Mn{jNڛvf$@{CMUGOu{L9RJa~{S(rtj[UmKn橝GPi=Zs[&d IK ߍEsqŗׯ*iۡvBH,ZFAxu}}Ch\jA- @ObTͶY49:Ѕ)^ <Bh [f*afՑ QHPZζdZfq/N)JJVe}7VYziX`@$@@@ڗee $PGGm^u *g^DEUNb 'zN"{5/}zhŢGt.-X"XF"H>:vo}]s ΢76X?fZݲ?fĆ@8\ ܘYBh .H\O0ĕxy DA!^ 3jcBI>c /yXv:ܡq|"yVrcsu mK>,@-C .aS&"^.ïIdm nh zz4@^GRvNtQ`rYKtJZ\!Hv6 ~چ2^_ !55 :Bzp\ƶU<}S +PQɓƒřqU 8pޑ)p1kWBP+bre+|V1 Z"}J8t 2{B1SKbM"5ꋋȡ77u(S̺K3?S3~/yW} /;]t``bYٯctx bvG9\ˍqUKYc \4w I,FĢ^L (!݊l ?cXy/ ShL{rG@IDAT!5^sөDX5sg 0oՁљZQENƧSORvDКIZ]FJC$Cn+E|Zo+y__Q(Z:174q>u%rYUP+(*_C.Z}zH*@wk1bjE"k)+ī;uhXAHIW%r?п|=j25ޗn6(|Ek+N4S8yp(!&pc}3`L0&WޔS7  unh!vq)8'È d."F hijNU"RF17)jGaףIю^%b:>DV)>H\ GQ2SxҐmE,r{JL`sM(D 5WTc韝X:E&ڈL"9*'M2(3a$xJn;VUKcŖHHsDc99*ʭP(BT]_u>[)nEBIXP<.|ZSxoՊCŸBx "G\L0"˲^jh_@[`!A8eW`_^3g~)846]Cډ);ôHHHHHP(b4{ zTB-?GG}Z0*lG>|qXd׮L#1 dnp?f *r-!<$@$@$@$@$@$@K"GF_LU|(WA7t[]5Fiő-O圯8tCC!SNƾ}⢋v#=aJzL~#G-ƤSmY^ #Pk]t,s1~X PȟU^1Ւn3VSuJ7u`Z ABߒLi8O,nȱł[$@ /_3*[էit$@$RKV $Pi(rEtYԍ SSRTQNR܋bFwc/<+д2R @Qi+:4 w&RtJ.{k *pS AǪ+R aLto{sev Vi0-*HHG܃v5ӁbX)WsR!%dKABUqԡvG~Im@/enZj9ZldTf$@$PN*[eJ`saIjJx?\RMQWtZ zQKRZ +փH: CΚlMů6S$s X\\s ũ>G9[TJ-QUEW;pL9&oKS{J$POԢC+-bMKɕOƒ D]A&ƙH3DJ}W_H> j:5LwP(#{⧣˙Çq7$@$@{ HQw;ATHH`O E0,{te pfqHt$Ky QKa %I@GGAEk8" [y 7x#rg^%GAY}ђ*MvJ @~OVRzy_ϯ]H,sD3te_Y)rT@|+|z˨Nҹu:s*`HHHHHH "@ \l:(RCri:x1|{\Y 鹪jZ $@$@$@$@$@$@$PΪBr̈UHͥ> Dԧ&zc*$I$@x ;cuYKqtUM@O~؉tBۣƻܣ0۽&@c[ anE ZhQHH P_~9>qL,YkV^,.(V+-u#)} k~3myvXiCzmE"G.BrY-8 (q%0C [CLro9ntڌȹX-^8dJsX\C$}uP/V+A_'w +ssXXjR7"@Ê LUJ80<,vb+N>]_D?[t\]ê$/V :KAdNIbigPőZZJ>،.:yI'>r7 Oű`'‚OvTp9Ңvf4А0wg|l%_\.I1&ԴMaA?]z<0%'.(3%YArn-.^yPy4Pg{p},2'1=?GpHUI`pHec2 (ȝB10!ц1cSj8t4{=5vO o"wbs-Vc݃ݯklcb_n`fy ShrM'g1{F0`~p#q=H,myvIn@z]D1$}+k :Gs=!xĴHH84gŵ^[b!00zœҋaP30VpINe.2\tEVH7M\z饸 KXOy|Z  -yE1g@sBOSEgKĔ̂*q\);Yx{kg%G58K$@$st?Ogw@sssx=cŒIH9c꛲#SjbQwM @mQZ @QwM @mQZ @QwM @mQZ @QwM @mQZ @QwM @mQZ @QwM @mQZ @QwM @mQZ @QwM @mQZ @QwM @mQZ @QwM @mQZ S*YRHHHHHH"677vٹa; @K@)$@$@$@$@$@$@C''> \r%hii~3N&9ꨱYU      -wggBcll ñ[UCUXP      \|Myf|Ԙw]ttt} k)xgOZ%@ @,,,_*.b| 7ܰ-Æ199s=?0gש*W^yeNd[ܱ[{^<HHHHHHrW\|3~*`ßɟॗ^~icȑ#IC_4|szВzڊ%%      V*V\uUG???W_ ]-qIDQ|4ooRi,|#p:i:P䨎vb)IHHHHH,]zd/m)˿ t77 @:ډ$  R83. Wsk i_ho^U382Gj馛/guKKk=P1~>9Xb   *"s vS@$P^y睇wxsSˇj/CL-1,4>'č7޸ߍ-\rɶQ}(rT_$@$@$@UF@=يǃ>hh]٢ @ mo矏 .)3RWW~K_>lo~J,syH^ 3 @NoVAr&%'SO333OO݂a'%d+XB   :#pNtIC` (\\^{5曆]2V-:9V~W~Wre"@ڋ%  q*ja5z$P9(r-u;;yg*X 4x7~69R}WWPG G|;ZWގwrz#܄ިvN@o\s 9眝'3IHH A@m̠+Quzo|FNU$$PZEy^99D`k{›17l?V=H1YS\C_t '󛖗5J8 `E;uo#s"7SNǰ) ;FU%rc].WݛbvwwM5͐"G 6.D$@{@`AEӂC/,,@GHC@_|XAd]F6plleV9btt9|Kx]Cpr\*HDpgK/6ؑpRq|Wn߾}е͎@ū7jY  ̨`QHS[58> ND2և`}tKۀ;tD{#CXwOXmp7\scf ]=&LGtQu4opG0pt~« cПbH90lbѲdzAIbpvMU{Zz0:{M +>ԆYL fb流R~o} x; /~9NͰ_|]aU%rd7VbHHHjǑ+5QiV%G,!/n >G|MD0+hB TRm៘Ǣk:W (G61܁e j!rb gl7YCZNtcx4!f f&:zX^aNޙhmbc3}I,Lیh `40!Q,4sCG|n@ǤyhaW$5xK#K=1(ShP+g}֘rEV8_i(z O0ά% @HY$@T"Q5ā2qRm[Q$-|j"$om!؎aec덣 &t߸ _jš9.rNU_e̪'P#9J|v"&\bëR\ob60҇Kf˅3>8UJמUC$@$@#*cɔH즫ŨΙQCB$SXT|$İZX3>S03B>>|5sN> C,V99䇵BYtd8q<[޷6/-f Q;汭̥-l2uCv\dB   *, d!j́nHW[eؘV@zښ]DAX :ht}m͉. ̆a)wLY|ačF<~q7vwYB$$%DlB,.u4q1ǀt`<:nc$/MLq$!i0QYd5 Ym+_]߫[d9;^]{ݫs<&?f>D c-8}! Ac9}j˴3%‡ 0[PG;~G;z)oEZ)Jrp %?߯,9;<ӟDrn&kXB &I\p)9 ;Ձ1L\lQCfOHcj ;Yn:ܖ`':MGNx| މw@Kґ#GrI Actr:ꫯG<5זuGeS"O>z[ߚ7[.σ1`?,;Ls|uF/ʟҗ\@#^D.EKm*S)L6&QpO<^>+{`swA%BmK3y?H<t tˍtezxzN|ƪݣl2L"y) YpQI0'{2⥜X=eǣ^CS,r(8)&x(F4ty X{KI= ј7;!_"w2Jqb[7k\&gdZzɿ" J$J}mʔ.?]LQ zc\F6+!db6^eرA,pBM9<|!_JQ\wC@n:xy^ 6@-@v'C΂K!`c7W~8iyy>XIK!PA }?.p\p' ͇BK\:* ~(\"G fZ%I-e#x3.0E΄HOHFRD%O9A'`Èuu9IH `8 \&O>NM$ O6x'淚cAvL!d1hiKBHo=DEmy-4 Qx(^{׳ %%qSg^uw=+L1ai*~j0r\iS)xtOKIB'*) !P6gϞӧO_6;MBi˳HW[YMIF'' ! j@$ 1Xk@Gq'+}꺃t(=4]7SkM! (H f|"s2j*eKL" tPzUn /R9B>4MA)N3=4ʳT9gIb4ΫZan@C j'| Qcf^j(AN#ArRz}aL4N模h>D6Tϟ ap ap^NƱ8Lms8ΝhrĖ=`X _tF<jhLgVN`sDHR[-0MLO&&8Fs!XTay!} g .S0VNS?<2<}C4Y2 ](8:^{7uu7.^I4]4>p&O-INh}: ם7}sƚ] FH p_-jvB1cB@!P|#t%G< aJ>:߷v7_m%s{'xb][Qk|h{'N~ڭn]{:{vRYoN>'Nm|/=k:ډ_r'<@jmt[|c}kk63믿㏛ɵ:v~gU[ɻP|}'Kow+ǽuSC__;)ӧ}}>G>{j(F|l{}Ľ|\k=vأk/>SG <{*}Osv]>5H'Z;qvޛ>K\SO#Ck:v>=U'7⚇kr>gO=q]kVZ`ABK49L86CI~ 435E3˫XΥfg^ՎlJ }V5EN*VaӐ0)s l ?LP7%(` L17v e )iE>v&dmܜAvnpr_/'X!.(5zd(R㼐7h:\{L9ૣla U/g'QZ?xzONi 'f:qgĔe رF6ٜE̩")'Ly)AlK M*2G'uuIo\Gw†vP')2Mʩl`A;/]+}ݲؑ)i}0^˅[ilb^b斄s<0M!oZjE}Wz406Ac(£!7OO4['o} 4y qa;L:p=54Sc(+l^ B@! v!?yz衇㻰Eq t{$3 y$ A9@tZ_[&<8~線Ύ#Б%Iqt=/7^+lwho 9ˮ1*Z=óa:= 'e|aÙʹ=Ī tW8Kqb̩hƊ{*IxΖ?8fiX+a#t"kO!Piz2)~=SRS8^9=S )r<[H\Y>=v`N^ʗmaҲ%# p5+ҿs|4ϘЀ,U^$_Yt %ևX&'PIdB@j#Ga{ᅴqv|P8љ3yժT(Q?Mٟ+aP_A{0̹t-edͥ;tl"Mnø)4>MݴItl'r* ]gkj^2ER;Ui-3uL'[9bOqPڲMo3/ɋFh~NÇؙ)vOZݜ(M/uߑ1p71ar=]8NR&΋l}$w޸ӌl1uF&μ58v>8+Ewưz}*hvwE}!aB~Ej髮&v-fZXWepSfF=Yr`37e'gF9yqohbqܫԜu)/ Sc3>J4G?h0O/'WF4I?f%>u3iɇu_<]2QfFJ6<=MtRׅtTz cm6=a@IDATv4gv;sN=y;]n!&?'WmԌ<>^#bv]Ɠ]40=X@C>n?}r$ [ P@9H7XH!qS`ZN|1Sn4ZiqS&rE ߠn9A#\mIWviRsI;>:op0ǣd뤕DdҖϳmSF3tH;-u B4|c,n &![c*/}r7?C[;.uW6Q$Pa-ZJ啽B@! DN8=>6 )Tquc4b - +W'/-23ʼe\16kTknilAApd:x~ ǩsx<yUA^C*άt_ fVG__K_|Gb6-f'){@ x5e_n|g (-dt6@rea\L}c]Ҏer EPjg~\zXr{yNz JHؿoռ}C#K !PgϞ@N+??TO vwR d r`&7H%;ࡣkazTr#/Е:+7]S}uu9cV*pgG:..s03=sXVpIVزGʌc=9eڑ17=f! lHG-+;:ATy2 UQ%T|a3 O-bs<ȆzNS"vj x)Ş#!MD#xfA+͉tru9iufK`P?bjPB;1H3Vgă](.QnZsiF,uO ќwn L_D;ӱ  /%0=41K3y̔&|s|#8.pR7?W6!LO )96.L#_~\֡N.|hӂ-NMX $Me_mRr9Bl̉h+|Cᥡ%ַO5C{8N<(ԁ}e뛩k+nHMrmwu5>ӊؿxWTe;pm? ?靤yaD/DH%pPDwGzY\~ 1"YvhGIv}HHCҙr«R8NJ} x~EˇL$.H<A켔_sOP E"f~WZНs<*Ezyy}K-OΛ Ol{4!*1vӼ}xB4>IC&W?7a燏BqӘ&6Lcҧ-B&zuy2]B5QW-4/MI}@7̗G)ז]:Is=P3}hzi7xE-VŊZ '^9 / xy睷yop;8Ki)5Az!y姣ȗ|&W0]L0csYȖɜd^ux(豱O BMD}RY^SD\tJynZ%}Yu.RBk5U/ⓣ*Ù$}no.t}+?; gO|;쓉`zoA ]BF>9u$‹L\qjQoJ1CȄ61^%WFѻH[z[E'GS.YxL4ddvY}@Hl1_wʗ7A,'e4kc..~I{@j} rm!S\r=t]AP_/>< Jbk*Oe5VV^ҽVb{TtQ‚`?S0KR:쿡BẠ6w-,/deu(Tj6LΒ]B`O CUr;Nr)˕/`k碋.Z"r(%j4^t>=9RgN!Ut$-P\D9BCM[}1J+J(rY)ڎI,~ 4+ vNWQ*I :c;䒬W< U^.^q>oy[t++Q4tq.Xl+OW+T^x::fžW2ӗHnU4^ʹP+@mP|lnU!RTa\]%rluʖiIB@! BF`C8=+GwO%@,9 ?Ξv;muKd[:(bhhz>Aaxnޏqf؉(|Z-wД2 B/XIcPRɵHP fCruliqg-P? 91OM؆r{SajB^X 9?cz- خ|&Wqk0BnNyڇh$SNbuں#~݂ 3fq)H]mQ:A^2Sڇ)KwX% sZ<̲Yhunqx ^rqhH/wFzȵCu\嵏/OTR0>uhj MRߥNЖ|yM!^PWv^|? f%'X_mB\$M! B@Z'zvZ?9u|,p<|eBjpֵi8CB~A+ZXZ⁻z:¼$<,^Vg`ѕME/ iәh29 0MqC%P?tS#dEK !|}4ANi:ʹ "NC4;?ϫ W+t%j9rj9M:ad8C0?M8%pY0U> i(Q{xxfEY 4---P>J}aa#<ͳ Tcvrl0.9i>]N;=no唛|+41U s'fn}䛘ɁF>wN`o29> })HmYX[sq+rX]:pDŅTVî+Z^B@! ;N?ca |mcj Z0[KNggꅸkf#]e1XFٗDld">=|< tSxZqzyT>H6 G`#oOѕe 9ƒEC-$z3tvG,xp1؊^r b^Fr|AX {hx9FR;ItRɂ:qV3R,\D_Zx -N7Š~%FR|!rL+ƫ::C Gŗɢ,싋jfMC|'8&5:R{;r8قڜ~zL:|AM=dZX> .X} 륀M\`Z`YEOgX$u[Qx4ƳY tR@ba'?k]ˋc!q,iQ}:eQLV1wS]#r*L{ķ"e}׿5立)CdFŔz! Y˯>=u^x.J?;SY>}7*c;|e R҆ņvZy0^ WWSTjle<xwqa 3V .44;K>@Ux}3M2yӘv(Z0&Z>cc"/:JGyC 1r0VGqu)3E G7yQV'(PTv0\ʢ~lLj؞FU2a,&{[s|6^N>23H'yaQ8֓В&}T+{7ԁ:{F큱Fݽ ?!}<jqf[SS |ى8']#rqkUCR>~8?OXX ྫy)B@l+[}οK+37Oj9b<:~Wo: YpSbVVȼ lt"5zFydlMĊ17S,b#35݇BT`ڽ4P2y[V&pbDr]>J-Sxe318'B'uo.KPE}UT~$Fif%H^-,FL7Hru9iu=X󡫔lNlqbՉ/ ttVZGkb/ -FK 6rqhg*4<8iU x SJ#MvDXӥչ::!hm ,UltDl<+(5r$G#len%7z# E hG{ygE ! B@Kc7\AL0;fSGs&O12Fn~}b]09BoH/%h5/cwU֕NKz:}ܠa"7~&<iOBY g(ؗCi<~RftYM<b kŒ.&{XPi66g& j >x 2smUUj#sfffhͨ/e!:2;p!m_m{qe] jD0BcPS X>ߘy~I9T ya0 ~r9)z2'ʍHf_Nfq/=(ω/i2渹E6GmjIYe@Yh}zCfl'(|p X#֧UE\"B@! %3t Ps=2|.aUeM;\[sgN&(cǼ5f|7/ʊgN$ݝ4YJZxUfcP۪iq1鏗m)ck?mUVCaʘo *t%f{ /ϴsjŸڕO! B@!+y w+ٯD}*rDKKX94-qai܀Y1;%8ܐ4tx^%%!PY8TvD"x#iIS! *L@ _^!PCrV@-A! B@!  !7B@! B@!PD䨉(B@! B@! D{@! B@!  "reJ! B@E̙3RZ! v9veB ! B@"0<<\[!P\؁B?'O?Qwx++k8PT%! B@J@g|:TɢHB@9wީQ˥ꪫj2fu^}Uzg~&SZ !g vmݶ%333 7@]wݖҒI?Jc@%//Tυdo|CpijILE_W/G*jR6s??/BsLW]F{ěL-u%h_KD/'''U{fɅh&2ZbMƶ}??<555 7|!~o6|Y놱&f@9 5L| V4::JO="Z /\U'^6y-b 4mmm9YQ`!~Ⱦ&PU?f$z|-oy;\YO ȡg?JtLQFghese:L)I2B@b;zCĜexi b2%F'i@3 ecט[/B@fyvfhC{)5~jmfw=c"/Z50{>`Rȡ]G-m'5e-O}m"#I@D4$!G>xTVpcRI!|ɝL)zktaMS$ͩ^2-&$wu@Ya%(㹄Svn81X4ªMozK>+5׫ާR):qD8;ޑ~B{OX2}gl~A[ &x ~f"x"MYa̬³ 3AXL>JM@D YhQ,+ 4؆*%)eCGGCQjjQ-UJ<#̦&}S_N,3Hmǘ-Ul1yat:XG&=裏D]}ՄUf)gi!r }iX@l6l ?x[aW(Of L JY\!`E@lK dkM=z4+phVzWtq K_!4Lh,A+A! j:}hAsfܯgE!QBжޔ*.f UJAR 1+qBmRa{]6mtE\XCt(WT`d&rhjUIG# "@)(h+vL CoVT B@!P[:xY(\3yfNjySf%oƔ",V$! 80@F`8)߰60X.@{ O0\1VH M@DQt0 rwww BBj} ?V(=9.Oyɘg/Ӛê̗H`7V#L1r}O*m[*&ҁrIřcWcrSiUMUZ Vڛ}~0pwҗ/ bxVm3rCB90>*4‹b+bM!DŽ@)'GDXY \yTH40y4f谢660׃ i/"ɇB@"0śJxƪ-x~3 lTue-%on_-_:r9m 0?2 |`?>aoht YI#,ҵg +3a|PVu/l*#CK3݅|q''5g܏3DyVeAg`4XZ%B@!{ ]79 xN:EW^_lxLn-tn)w;MLȞbcp2T^as9e6ҡMr)yS;P/&&ɹżmMLԑD}d[QTJ)6շ"fw(ʟ/-]0Xkm >1aiiI a6C J۴]D^B";|2 r ͨȾ$ "EuJ.k U@w6C~1ttN1\B@Gm:q6B~vVSU0XRs Ub4Xj1b$Lá:Z6+s4 ?:rZ'ȟZ471}; [k Rh# 8V, v՘f"7sVbCY`8ƪD9%ϽA@|ruTGX]Ƭq?.+A! j~<xޙyG``dFKFq,ј8L?/M.45Fi*^1Xa#04I SBs+b,9JcV#bz:œnX蜘OOqQa``rCu * / i~Ӽ@!(c(|6$#3,p8yg`8ǦOQ*/'P$|yEqYh48M}b)Ly^)r')T84S&̧$ܺeOQ",9M!pyWcB4Q? n. 4S_˨Lc!+LD(,sY[4FQ)T8̍hwpS6jUP`z4:V׍8B|9:6އN 4[ Z;x/&"LM*y*LA^(Ñy؂@l'8t=3 {MlOa."MMͨw{=Y R;U QupQ,~i~v%N:zU%V|4A34~^ODH. 3z~c(4 u F._9X%MǵwtRIWuu k8_V#UZ!?u7zf5ĴW2buRkGG*pz(iO __h+3V¾Pirv1ecQgJ|ԊՄY#sl"3OaPq-?-3~ X'iuu5aPū2ṂhjϠJVX'X[ *N"ruL >C9F4gpTJwxB@b?Vf:׿.]Y b ]ѣG7%Sb7tSSVγ ??LWWq}J 蒊x}h`wɗ9n36ƍ:?!`Qߒ-XK]-tdҀ>e59 ߵ{Y4X1Fcyy}HaɃlPuCٟ9_#֤~;Ut' ze tu ٨j9ZzLt*]w )ige9U}9=\\]A3GXIJ2n$Dҗ[|e$X[U7sʤ+kl=xS<j>1Xbץ0Q~ytҋ:0F֦ "_gMh013a,9$AΑ}B@JR_WkF7|3˿KU҄,uy3,bf>q肹Vk48Dgs=䓦"~x2Sت`p"F!:xMlQ,3,i6' B;[]dOXm}l/A1?؜H?yXdptE&&#QZOY!4-s<íVr׳˻D"ؓ82wTX{ 2O:qz8k-3R /҄KDn1|_.} F8WۼcWfe}Y~PgF;),O%x{$):`ː^jd To^j][V)+Q/Fc^ţiPW%ܛu(UKRm/Юb BϞBjFMHGctjuǡRi+Zy1Kv:}@,=l'4Rn 5^S;]nB؂K퀣jOPW~8zӦP$xI3[O~zuN@ ;3KT+?,?Po<'m\/8@@@1qe-:m@gP*J__߆9Տ kN㘾a'9Vb#GUF}{yo3b-H݅f M>]ZZ9?Tzc}Sw.Z0\<|o4+4:zX&t;Bۿ5Vj^ޗbqc8)tb0c>1eA<1q~yӗ'߶EZuL453N˲nc/X (Yywα:`vs1P! J%OOpQe r??Woz?S8ymE*us oՖS7m,AXϳ)1Klzꤜ_(Y=YgEZuV4U-/[)yX0ȧ`ZKO27\r+LSecG `,a%X Ywwc\k +ABXOxBl7Wŗ}{vӵG1L;҃h4S_ё}B@lK/o=ƀ`!~ӟh4C ;>>N]073L0Ee7Xpx(A! G˻ == t[yE?߶fa/ "CЬ7D:͂qsdB`+oJ*ֽKGG +duww+x?:LV(Jy7nVV}{~l ! fjInʏO4D)/ DrM@|rÔ` C=K+:8Ǭë)ȧOG?Zk}襗^9VDٿQ`rzEUK(U 烕x3K4VKbN;34*w! @9``/y cǎ&k@:::=yy}U'TvNkx!(NY9ʃN/VA;`[e/uF\눢u>a c0RB@ \p7զa&$mk hW")g]XIDt3F{6B܆(r<56$3ꥴV>ȑnjn/~jD;,h/aѸ`S_B+|Zxh9ڟgys#ϧnF~ Ev'ru*+֪NYgKUء#? X'XaܬPFoZ&8+ _&ˉ-DhHjXN+ G՝a5NƵyfe~-/3dqz\TO>9^~eJ$5f0 QkVWWk5YkFg:R8sZ VSUyxiV@0Dr 9xno+A:8x3 Ť/}9&؍4Kc Yr㹥~Ǹ>YqSB~/Ҁn&r9Q,2KCM"r;:P'1؁;ICcw% HveγHe>L:ߘR;>M>pBϫϐB`Whp8T LӧꫯVoe t);oG:Hi'Fj'X"p3o oݐ>?o3p8H'",C'׬]8`DArXNܰe:CX2};ax9£1[칚մ}/ t<# U i` ׷.]F{ϡF$oO2jOׂ z/r>ioILMM>OԼ)(k&p/׾82:ϴ>w+욉#vV/ ! IʊC3/KL΀狙X"rl'ݝ&O@ ?*D4 ~(tLvi*h`&  ("pQ%p]p] y2>x 5dѶw2F+Q"׵dONb<~/٭#<]Y&\[IdC.)ۆdwLK˔poE~w~'[_W466ٮZް+b݆!̂B91U@^xVtK4 0ʊ1`e4Es2d|>574(U2H=-Qhdv圊/SORpK"e)Rq%,c8>JS#X<ſ%gtRY춣L:{9Pv D':0_ײyGKVZ>,uv;:V wYMX̔YS‰[gl@} *'?fAMP͌0P0WlHݾU*Ĵ MMM$`XZ}GҤ[5,4$"2|dX'{q(D&Et32las]LKL- 'g$jeGk?"KMGmO{(fdIzSn_tiHjeIrG_-lթP餔8$dy_ʘj'e(3=>UWZQ׺r_lQ3cI'-Ms="a>@ʐdİJWE'98,KA-۹;-Kr2~Y }-Kw?ۺEe.1ˍªD,n3ᑞg$kdxnCV2;.-S'V-K_|72wUo3 D9 bLo핇>3 m 64G2C\3XAx< \Bצ,<% Z#Q`^̳~pZ6_dD[_L1n}XYl&E^R=OKJU4|h3|1ԎHX^q ?nlV?,s2ع(PPkCɺnEע"tOz2(x2[>8NR/L(PI}n:> vbʤ qސ'm><Є:s! p.G-Ҵ, .4Y͖D$${h ޮr6|l66G_ГCbv0'ѸڇXkh6Tؐg%$xM J ]2qh+(k>_^IH_٪I`eYP81"Ziv\腎eȌGRu uߺ.7s#j ,um~uLO;:X,&-pXY e}}]hmխ~B@¬u3u=`>ÝK!p2c:凁hBX5"bXzHj^,sD[ 6:X'M`{JĔoSD\|-,QL o)VP1w}Q׷kXbN얙 Cf*x~ANhx`FA-.\g( V֕f8)^66*_*s~|nNֻb`RLd6JX9AwI[[HfVKفaA< nKdm=aZq1"G>uF  6 "@#!jhZ2n8D^ëBw[2u7:~8J i 4k*/ Ucc@xd3Yz[A5FZvU$cztu.]FƦ>wI<锚rrU:e~vD%tl6}_DuJ/(^FH$j5S%&1_<*th*%=:ՅUwP<N잓XnOOҘZ>x}j**bI\3LR ύȂ.kٖxZ u6ЭMdJtًb(?5P£TTxQ / ]czՖ;%T]i;.aVހU I֫B8}-9^|E׾f0#-tp/abQFB|dUs= ÚipWzmՓV @d>xǺ}V7r p,U0~4 \uB?Y2\xQ׶!jn~!!ߦ^.rX"F{EDYO/NLkw.94D׺._98MFh;-^<4g퀏 @0Qͷ@4Rr NhlVѨ_w CzZ6lVme 8hpa 올uʡdY}ߖ(8݃:{0Bk~餜l;jm OWͤh:9(fRIհ_DT_Eݛj=F'ZCp,H$&^]3>*Xs}m9vÇūIpH kX'P!†SQVc݁Ac1냝>qyݏ:nKp]@$b  p&%ӺS|v:0v/\PȁSe '2ܗ>5+NYc1, >920(48U?C&$ jx|p9vSү=|kR*baJߜgvSl{4܄ P·@,9:l7rطąOspЩ;9ھuˌt/Jo %`}3<,P '{!l8þ1l9brJ'> 8 ,)uB޸fⲕHH&u \蔾[KRRYNGsX $?q\;~UV\p-Ic4s!}8Yo];#5t\0f4J*.p*ZL&u2YbS(# (0&B䰴 ||569t}UA><'wY("_A3x4RɻvS+q1ձDT.F 8+NLy @(VpDRUNs_chXuڪꫯŋO$P'p p<#)8 ɟq'fʜ [1KVE$@$\FXkD)p6a}bu_&xiQIk @mjϔ8[+p)*&*fwy0> @Jp,;a &а"$Wx[8@Qn{\ՒzF%,#fJiug$@$Pny0-#,`T (Nsk@䨇: T@}dy\+_| _ფ& u DZ8Q> No/+Do/xW}K?r\  ~:>?x Ʋ78yǀQx"mPr8 9Ns 4+h ^nO>)UJFn< N}N9'9x>n`ւHN:~7'3K|z'v\0_N{b!o)K# "6b;bz@Āu^4'gݽcnw@qq#r ;f+[J[_ZkB&f-H\Љ\Tu*pˍB.nDG3{y睅%g\\;bBBZ( br X$xz?2\ZZ,CM73-};Bz0E߅mo.tg'!o @klb|`/@BP@ rv#p `ID7O ݘktVδa , &&&r @-(}E{|y衇q <.Ё?N! o$S^31acvv) 58]·4꓀f6;SEǺY}[UA51G1KBEL]UoƀH)Mba2 LX?]_ \;lAXp Gu;s?8}݂oۏIB1 T;_~eRRX,oq t,]n*lD"8˂L8ecP1<@Êt4u_NixWJQ/L5n3{&oFs$@$P/п8 CA>v#t@D%|I WN`!X_REAaEB6nP*APLAtN5 >fcFg<I 08r<{/-8s| `- Hq5c\//c= Rʉ'FLMyM$@J> NNHM^17gX/qs/X AތbCdn,or`)c9蓣nfֈ!s3\4 ~;0P"Ggm0QGل䏙77/thh(EŻ+GҞIH`/ dɑ\ݖݴل݄J,&Jp7WmXǣQ76kG3x8` GMi˄kZnkiXh+>553tӧ)InE|١MB%ݭAV\n 4A忹  B:J<%Xx.G=M̶96ݭ3LZ4_60!BbS,#w#8 Wm2LNN֒| JV,q*{^G]B h.\^<OT9zfzܔosFkm%*`0x2oiD\+̶9Ͳ/88pYl1ëbӃ RK2|e|xM$@H'xbGfPnaSC(Xh!-qzQQn@$` 7 +r'-FW^$VG?Jˍ7ޘ~ D"]O?(pl]M ,~X(gF0 26NnoqJOT6 .8S +H, D32Ths;^-5oB_k>0~D?˼RxYń[?H=+qVOƾ|W$rM7"sW\mU.8t@C馛ҧbm1x5o)pG~o@pbf6,;)K#`{ vkL_{yup| 7s@rn1iHjLXJ: `}}7u~(E@D߰Duj!l`lM.<0Y|nub,JL<~9.a]8 WcߩeW_rB??{&6D;6tN0k080VL&QfDH0$r`m DRI9 {۸O0쇘qR,_Gw9K;IH @6qfUav87'CJ3>h+ \8& Yos*[)98}AaŧJ,(gSߌȾ}8~QCKrjPK~\҇2!Wn?39y=]' {=]0'`EB-ey4ǵ?qk82$)p}p_|f`r Fz![&t`qV|*&Hn…)7ux %&tB'hhǣAQAe 9~6!ϽG:/TxJ>/΀%R=#|Gb'ŷ? O%.Uy|6_z15qyo+!9xJZ-~o5VIvC7ϋg<$Ǻ+Λ$ sƑ('M>t ȉ%%:ij<.k"e!^Y$ҥH?":OYieF;=_Ss6ivgdI{&b29*ֻIBcrkSzp_{dܰL.%3k훒V$"29-^,C*eD R^?~8 =kRN%]528}'1Fh<#ss^k|0=}N) @&U/iT0b97V޷|\ ,gx N5̪}bɔAaEZpxq 0~$oȷ޹$+/AiqPN}\wGZ} NBMKtPw6xfacJQ#V~(K?LGɇ(dpH]C 1,'d45Y$Hp̯Th\e**s.9&^<צ?,i!!㣒:-+z<OO&B2Ꙓ}-ٔ@j )ò^ߐBf&$g"SOlYbr܊7#KVIa)ylAH@8AΫw{2_f|Mu1G67;̲+HH`;Fx} `||B:Dj|`͉80iB:Mv!h;anv +rOA9;WJF[ҩVɋzuaY;mB˟5<4\ #rӳOJT¶4msp*i* /<pbV>9-/Gk-xGygZB |#‡oD~}ZPq|@Kh|STh=+ HPHGWe3!:>{M?*^P:W" *%EW5)QE2ӖMtKnzIsh ?>#$P)EUWVVkkx ĭj.g5 0%tkQm`iny*Aۙ9j3`uKIH @ <%hOs X^k*зu#?)w98@O|IAW\}zOmG*Iz> cc#5o|,siyK\]#wO%#R]+-S9(5=S4sHtt@~3.ɟ|TMSr`CՇVGa J%Y` BtڡRČ,.-ҡV94%'$63(gTP"a%.:ef}S. f]3/c vu٘3878LFp[CxoBGuāXhIH A=_Ô{9{.# 8uQ'>H mQB.J )7,zj`hP ,;TudTGر?ЩitnEW=] (ff0ǨǹX`N+Wُ'䫟gS:GpKR-%,O3Ǔeu8nzRz]H%Rs 32?&ƔI-5zeCjL,p _"ã@JH&:;2vRdsNIS`GïKT"*|2''/ 2S 'MF dYNle(]`%uKSN8!^{mxsPw@37 :2}SnUmX @(d 1V $P(*I<0a,`N*$~(zʁM 2`s}'^EVǣIi#e adZJxGP{t6T`Ґӷ,ʴ@t YᝯW,s\CC Xu LC58-K']mrL xqZf4:ŚC.q bdde+&͟^㒊؊Gt L:=z~*y F{+S$ZHi%Um;$PVn&KѦup{ ʅ'`m׌? T#%b˸p[ eL4槠ʮSJzȳ"ǧ[?%wz0)<3үz@5++%sxoP;/~ 3c; э<5Y ,U)2mf0; 8ux pf.gH"Mqz̅ (r& *"vMXx-~Mt6MMĔ7Ș7N+Cߕ а"fT<]v5vY~\~UvZ._̰v;ʳO>_7 T,*9@ Z` 3]Xe H p A&|bWOv*& '78X f NqЗ_L_L7> ل V.ӗeWg;73.@)\RDj1ZQhЍ ^֣f6L8.#GMzp/fњ\~7Ah/0r;P~Y?/Ap1Š=n zY V[&C@"а{W|[Si_X9.Ws«mik2g%g{4ݶ!T`m Bpm-' (-7>sYG@ )r^ -H/ʃrˑ4f$P,9蓣ۆU>xݡ+X^/Ӳ`"6n.k/Nb} _*r ]7 b-# (D+gbnΰsIu!)IX) 4*V5{Xe9ᕁrC525U!k 3N^!` ,*D䇁 *c9\/) @2-@D5,$vLNO, &/Nǰ"Sp_J )r@`    ɷ=] 41 0s `: "q!ZLLLw[Ni|c6y; X'#;$& (XA6@L ӿ@0ɵ ї9 *m(@Ê|}l1 ! 8r% Cq[.YkxJ`F-`A'*4`JPjO$@#~ІӿO%$r@xA&Ն /2$@CG18 @LvaN: N 1`Gّ,ގ; = PHD8 nxnqmBN֊ٖј߰Pp_sMhHK/LKq؋wpHjn`v 0jka҂ 1;;L9'Nv޸? $@$@C.C(v|!}Z}A4 g* KhHKU~^<HH>#Q#8dv`D36 @u0b:Nu!>,) їe[FVndRZN@3K S# UKY0-Fp\>]#jɑ @ @R5ߥ,X*RLo{Zڰ^[üZo/2r}WD%|" @yٷ\KY0,&ss@hQ UC$@M ߥ,@?TLps@jҢՆ!j"P"^id^WMY 뮳r3I@,o{vfIRZm5f$@$Xbw@J(2 IDAT̳t6WPKqGFF?Ͳ#? =*o|Xoxkq9IH k>^Oh ?qK(~:YRl<HHznL2NLL6$ Ե%{̎a?ya2ww_u+A$@L֋|Yw (/c˔KOE155%/^(ثp3BAp'?čw*`ߟ      &P".s(O?H`70&f)-'f$@$@$@$@$@$@M!D\bN?]Hճ6Q.$@$@$@$@$@$@$0"8򗿴8`P/>yXj     (+92I+ke*'@U~X<     c +r1wfO$@$@$@$@$@$@$Pb8=&G$@$@$@$@$@$@$@{B"Ǟ`g$@$@$@$@$@$@$@&@D lOr-ax OȤ^:ijj$P^z%5u_QV ^{\r b $@e!獲`-[xYUW]Upyw#_}f +F{vmre5W3""z0WW~&r 7T_X" #pE-lbPWe'}KK4^3 T?Fk,aEΣԼ(deHq.K @`?UoPu!rppܠw/M$P0xU T#_X,H@]\]& !v**ҧb%̏IH`y?HH"U^=ϜX4MY_].% .O$'9žDT&K{{?$]7H{QI$@ YEhoYKEi]LoVjQY*ʱJ,=-OHe"hlһɀCrhfCFC [".h,#oJ$Ɇ1ԸN"GAB"qL̞ŷ8)[0 UDsòM0 4z-J4yFBe0Ԑ첌<HCb<,#D?-~r͡Y9= ]eg$I) OsHN4*H"Ga+^6$mܒ[ti\zfVu _NDZ2ÚՙȑKi f""Ger?`  C7^ zerp1i~mp)ӦǪ|mw).q6w1ޝmz1Y7RNnin$\t3AKqj77Yέ%s>&]Mq7n僁TF4s ksr"N[m駒} IR7/IB떐b~Y{"!φy"#$bֳE<##cG`)3g/GdXm˰W8A|Ƞ͟&pItz6+g<|i[zڒj$bYʀm^YE̟?/S]27-qZti5~6!E]X i_lYFbr܊W4T9>^VJpzn3!k ߶rR`$@F`/&']C?!s:"dOEe|ѧ997;!Q9_gDtMEބx}r< Y6t 2.䆦1*>8ORh،Iy@Ν;- ce;K*/y9nVbs=34pv>i9"!& Z3z4Dw Oj -]2u m{[AA$@5J`/,Q0>eK{+6}-jk1'kҭKZfůĦIkgVӶ_KfϞ69#˄,ZhLΞpb:fxdY'edjuʦ'AN`UCtAƜ (0@͋{18.Dž0i~im k#!:d0bpY|x,r in>=9^KWP"g6dSeK] U,k#7&^mZUQ4{=]_ҳ㲼 s &li-8%ifOLM$@%&PyKT@&\ZM]_FuO&ijn!@(o5.'Y4zIu:0.ڇuZ[a%1kCa$@H>|PG@34qhc pOK^f]ekS"Ոk3qfLz].#bLѣ"s)ej):">q6B ecVjy8!VY#WeͭLXQ! "m-M܉tشMl Lj|Z$_ ,^\^-8i4CM LE$@e#h|:KI-w*~&t)rת ͫk♉jqqȰC Yz<ҶІLvfҭv>>#GT EK0ЦYh@߀E z!Y&$\n @It[?L/xԺBdStJGOmM_>Gȸ{eAE)`}>qjޒ`f\ԲBDgΤH+FMffۯj`ϯ:N,K["dcfZ -MZv4IkD4HMZ_*tcUHH*m{]|20mS:'6`Y5`M !0,Up,(K㺬Onz qmGJE.e@X-tm9g ֑n2-Z,rD6(C2 @ȁ5|$ߦ#H|rQQ/~K$=GZsѰT[aչO,c&G [>9rM-2HYX Pht#xTpdu][;ݪxgvLֺGb2jĬ< M%+2Vn`VQ7w"Ӂ6n]2Jcr+m(HHڡOZe:5P}hΪjKׄWk8 t%@ˌtF՜=jt:yN\-!CmpDFM'Chᑦ@c;T+Au87*3=ϯu:KZ"rxEN?:%46 4O@YËIl-#2ͭ_}0>=#R=}Kx$H[VCmMb&L6Zyˑ:G#GFEGvo5}1$3m[`}*@G>)p* }*ԴJ3[I 4V:,Ahv uڬJ"}߰,S.+KD$^ַeUn:hʏ vuG,xW>mKO (=8\w=s\7 '_BnJe_>h׋x'OܱW|(OFEXE,) 畠,[E0 @]@;^J+o\xN\v;ϧ w㘞Sc$@$PЕK@T ~R&m.ٶU,rbIH`;p @@?@$P;(rεbIIH. PJ @]Fúʐ@ ԅFw" QÅHH(w _]\"G]\VHHHHHHH`j'Ǯ 0       @..#+A$@$@$@$@$@$@$@ @]Q       {HHHHHHH.P䨋J P=@$@$@$@$@$@$@$P(red%HHHHHHH(r        92$@$@$@$@$@$@$@9x uqY        HHHHHHHE E$@$@$@$@$@$@$@uA"G]\FVHHHHHHH"       @..#+A$@$@$@$@$@$@$@ @]Q       {HHHHHHH.P䨋J P=@$@$@$@$@$@$@$P(red%HHHHHHH(r        92$@$@$@$@$@$@$@9x uqY        HHHHHHHE E$@$@$@$@$@$@$@uA"G]\FVHHHHHHH"       @..#+A$@$@$@$@$@$@$;#B2yIENDB`nova-17.0.13/doc/source/admin/figures/SCH_5007_V00_NUAC-multi_nic_OpenStack.vsd0000664000175000017500000614100013556316250026452 0ustar zuulzuul00000000000000ࡱ> 23456789:;<=>?@ABCDEFGHIRoot EntryRoot EntryF0Qk@VisioDocumentJ*SummaryInformation( ODocumentSummaryInformation8  !"#$%&'()*+,-./01KLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~VisioInformation" ՜.+,D՜.+,$HP X`hp x  =Page-10VBackground-1ESSwitchoServeroDatabase serverCloudseDynamic connectornsBridge EthernetonnHub Patch panelFiber optic transmitter ATM switch Bridge.14 Dynamic connector.15erModemc Ring networkctoTilesetUrbanet AlphabetorkModuletNone tSolidtRegistrationctoVervera None .26ionCity.26Technic Server.29on MainframeonAustere TranscendonBlocksn FirewallonLaptop computerPCtApplication server5 Web server FTP server Email serverervManagement server5E-Commerce server5Public/private key serverr Box callout Comm-linkt Terminalt File server DocumenterOblique connector sPrint serverctoLegendeDisk storagectoDatastoContent management serverrStreaming media servereDirectory serverervApplication server.57e Real-time communications serverProxy servermunUser seRoutere PagesMasters;0|_PID_LINKBASE_VPID_ALTERNATENAMES _TemplateIDATC010498141033Oh+'0OHPhx Schma RseauRaziqueLC:\Program Files\Microsoft Office\Office14\visio content\1033\DTLNET_M.VSTRaziqueMicrosoft Visio@@,kGN`C9 < EMFNl8}U HVISIODrawingLN`CaD ??d(M(aDM̱ٿ󣣣󿿿ٱ̣̔@@@```棣z¬٣̣000$M@3r+('888f |@l(h󱱱PPPQUY]a^@888w8Xߗl(ڇiiiDDD111xxx2nMTNUGXXw8أx7a #" 4:7y2o7yC(((f ttt]]]$$$)1)Í000燇 RWA1\ f )*rtxx((HH{  Id4$'"ppp P 0888m*c/0/;b ppp@@GBMCKKPHHHP""....!!hhhhq0HHHHhv{q>>LL//0󶶶XXXׂHHpp((U`g 11@88EE`666󿿿 z (xq0鷗((8?DОhsx!!!Р0000H..Hxp00hhJLMȶۯג̿F>9543(((EH?]@@444011ג߇PPVxﱱ󳳳{{..c(p}%&&xl(ڇl([mJppp ܏f ܏QQQmmmGGG "ʾ444ߗl(ڇ۱\^XpTTS p_#   DDD:;<ٻشq0h00333N6).%qqq QQQzzzQQQn L Svwt888KMN=>>>?>d|@00hh@AAAbbbHHHFRZ,02 %cIY<361sl(ɹPP@@CCCWW &/6HHHDHJ000ppp f%/"@@E$&"$&"GU^܏^[yvw((/// hhh!̚|@@@\hq hv{=ET??SSXfffk'[l'rxJ(hp棣$,0YZ[WWW݆@@@ %-36ؒFF @@GG88``܏f ·AAA6:D|Уlvzddd88~~11P[[[amt!&)@@@)/o}įׯי8;<IIxx((www[rI&'%@@@'''000DLQIJJ!!!ۙ8;bbc񅚣@@@IU]17<@@@000=>?000XXX% ppp󿿿̱ٱ??beX9~#(((>= ||JJJ*4< ///&, "銳 ,X!!((II##(;qpX(PPP %479҆@@@S^e HH`))8CCyJ(\XPPPamu &)ݥ )/[mw168Т}444  00̂t:---&+NUY@@@BILѤ_ko<<ssHHHHf ٕ{RRR111 )/ezpuxٳ٧ӊ00hh+eyV'('󞨯jlmpppPPPPY^}sssۭ_ko ` v26: &06iij߿ߧӊ]]A**,%'$aaa`gkA>??ƬGNS**+8=Aߧӊ I!s:XXt///ER[Z_a(((x{~ PPP3M+DQ:888ٔ000PPP!&-48 ##(-9Bٍ?CFtwy9:: /gggMMMBLS .//)/CVcknoqrstttXenoqs122暽XXX''' NQ,,0~~~4;A9<>9;A>??ť000XXX      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                           ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ Visio (TM) Drawing *B#k)uR`7`{@| ߳!fffMMM333-yN77sPɺm88rcc3f{ڌ626?3ff?G}UUUհc5ڬм>{N9KmfwJpYDRb߷qaXPF91I@dddFFF9{$<<$JJ1tl77A@@@p0Ezٕ㰬VęյTBj~daPc*p PT幵.|AJ Pj( YYY `9tk݀Fʺʹ& LGND/cmd_=nop( LGND/cmd=wnop2h /a/Ra/Ua/Wa/Za/\a/a/a/a/a/Hr)C/xr*C  U)J:DT5I[1hXT@. /UbW##_b0U]?ȾL \&B1&Wb%e !oM $d )P?;$,, & #& , 5&?D#//?M?\.? 7A  T~,,,'q/%P6$Y6 ((}k?l)P?"  U UA3#o >S@#B:aU_ReUeUeUUeUeUeUePONOD`T_ReUeUeUUeUeUeUeUUb RSR;25OM% >Qiq;RRRggR qh>Qj /A^F' %p3|CbFp#| |% | vi?=Os<34*x,,,/HRQAmeY q]U@Q-,_vL__q____OO_OOYJAe@L&d2K?ɠQ3Ҳ s]֦xΟ$H"Ŧ)Լ Dץ4@dUA??ϩJ[D!# f:45ŧ5ŷ5ŧ 0H 0D$#U   [#Wb ;Ch( D?@eDrqr:ePB#<D5,ND0DDA7XDbabX#F:FDF(A:#7 D% #7H(DRQRHBA7D B7DJBA:B78DBAB8BAtstt<tB9DB9D%B9(!(D2&1'2&(!BA9d!Dn&m'n&d!BY0C&'&!<!BȁD&'ȁ<ȅ"A6761<1B#AT6S7T6T1<T1B$91D6761B%91D67%61B'AF GFA<AB!(9DABaicTgdhTsG'0f6U[e0 sFf|tvu dd4φFRd,c  F،3*d4V56Fs 9Faaj9eOwOkŕh8FTo!32pbGFdF毭oʳUųUvoft\W?޳P`ކmW"> gAkA oojx5lR}J<DTqC`` {<eh]-w>yqyu4x.~O6ARH-D@>QWACGcwc]oP{Jk? `Aooookt|/R|a`OX󀠟ҟ=<HQ0BTASFwByѯ+=Vasvψ߿'9Z/oϷ#5ASew߉ߛ߭߿ߐ@C DVhPTCW@CaTHY"$? 4-Qc___o o;Moqo/////%/7/I/o/&/////?@!?3?51qU<e?w??V??????O"MUHh2ET_ BE'_"h%]lO~H~E7O5_G_Y_k_}_fo____o1oCoUoUZoooo4~ /ASeȟ ?M$aǔ=93W+harz3P贁N[ܞԏq a/%?xbpb AD@ xA 柲TfxF#_'2 W2{~"D@妠JJuERB0%B I B0BzvCt*346^C 9C$CI1%7I[mߑߣߵ`rF ﰚEݝ[ #l~FbbOAX:iοF4 9S=*?b/???(:L^p'12O8!M!!,G L!%\.TbJnRtVtQbry !qPmlF/{gYn)1z}nPectWPiehP7__#wSbQ =Ulu!q`UoP9@t `enf9blo~o6o@S^TKoޠ!P`"Rnpu!5zoR*"`u`d0nec;bI[o8e Uu!`{uTa`sp9@Ur`n`yfCb {:o' PanRbTW|5̈W?|\!??+a`B9@ckerv0oP?S/e'BBEYYFYY '1 1" EL;#?L ?OO)N)>F8UOASZOlO~O&I[i O٤E);M_q+kЋSЋSU1%vп?߶U///Ǡ/(%ySA!58%3͟±Ԛ''b<0%@/1d/v#%//(/?!5//ߤ3G5" R` C1pO?% )N@OTbt'ϱpS!jdꕰQX!3<=P4#>k5$y }'9mUТE%O( ٯO-?QcQ\8_H/$ ժϙGB:(Op߂ߔxߩO%C?I Wi{O? i~\6/(O?mJvVŀ#5GY#5GYk}i н 'N(C.%ZFZFH/`%bdRq4q Acrt3rbb㤱7m-c8tZq<|oobobNbb¤osR@Q:4!s/֢ ZF8p%`՞UG?/,TKQeҭy)77s!X7es/??.?R?d?ď????OO{/˥ʦ#xaҏ,>PMR?Ο,*'(7OQTf+=Oas̯ޯ&8J\n𒿤A+PпbbPI ,ɺ /ύoow͏ϡϳτ/|nbb/i~@7I[mߑ+=OasOO'OK*<__D_h_z_GYk} .@Rdvȿf?-m7/I/AS// ?//ϷbbObmҏ%?I?[?m????ef???OO+O=OOO7sOOOOOO__'_9_]_c|C/ßՑa%`&q% A*ewj_f____Oazoo'9K]~ooo/#/5/G/ Ӓf/x////////??,? __0_LUR9/d?v????;6O??OO<'K+bGcM?tOOOOOGqpCQ_:ou__z__v_oo)o_oqoϕoooyF1#5Gccߖ ` 1CUW'uϏ);=?%cȒ ^2ȟڟfffJ@ӦIJVEbwcȾ.LaJυͿ'9DIoρϷ#/5GY[}///S/e/*<N`ri1 2DVM2DVh c n_4BoXj|oo/ //oB/!?3?x///e/#i?E?W?i?{?????c??OO*O;fϧϹϦh`b& 1CUgߝ߯L? -??cu??);M_q"O.T -?QcnF-a & YQgT!-6 FO@l@5GYkPAuV!!` jo2{o7s/ !/3/E/UVt//////7O/?>O(?:?^?p???????:O$OUjQOcOuOQb{GE4f!3 GF}tGN=@OS|OOOO OOOO ]#_/_A_S_e_w________H$b #o5oNtRv|@s!z@@Rzq}U{uwx 0Bufxq߮ҏ,PbewΟ(^ʯ ܯU$ô4DVhƃ˿ݿͽqH2Tv!rAtuacus,oE@ct Uc"VoSe"f//o/3?upgXq:??3oofct* w(hz$rosFo) CHZ*___ ߰?_+"-?UgUK0f//'/9/K/]/o-HNNk?/OPu=A"pcD?V?fb׺Ŝq ? /d߇hf"(VmmmHeXϚO|CUO_DX_YoCQUO_a_:SU__寷roꯖo 1 Wcooo`@-by"q{ ď͆CC jSϑ>qUn'(U)*+,U-./0U1234U5678U9:;?@U4<Y,b'@"H$ @ n 0/[C-H,7 AU'()U+,-.U/012U3456U789:U;<=>U?@CDUEFGIJU4< Y,b'@"H$ @ v/lC-,R0 AU'()U*+,-U./01U2345U6789U:;<=U>?@CUDEFGHLU4()*U+,-.UMNOPUQRSTU4<Y,b'@"H$ @ ~hy1}C-p,7 AUVU4<Y,b'@"H$ @ ,2 A-037Un'()U*+,-U./01U2345U6789U:;<=U>?@WU4<Y,b'@"H$ @ a ^2[C-,7 Aj()+,-./0123456789:;<=>?CNOPQRSTYZ[\]^_`abcdefghRiklUmnopUqrstUuvwxUyz{|U}~UUUUU4?@BU4<Y,b'@"H$ @ [C-Hχ* AUn'()U*+,-U./01U2345U6789U:;<=U>?@U4<Y,b'@"H$ @ M5[C-p7 AU&'()U*+,-.U4< Y,b'@"H$ @ Xl6!C-$7 AUn'()U*+,-U./01U2345U6789U:;<=U>?@U4<Y,b'@"H$ @ 6[C-HM7 AUn'()U*+,-U./01U2345U6789U:;<=U>?@U4<Y,b'@"H$ @ 57[C-0nl7 A-VU4<Y,b'@"H$ @ 87A-:K7 ;UN'()U*+,-U./01U2345U67@U4<Y,b'@"H$ @ HRR8AC-:7 :b()+,-./0123456789:;<=>?CNOPQRST\]^_J`acUdefgUhijkUlmnoUpqrsUtuvwUxyz{U|}~UUUUUU4C-ȶwU'7 AU"'()U+,-.U4<Y,b'@"H$ @ X>C-ol7 AU-U4<Y,b'@"H$K @ c >C-h_ ?AYU'()U+,-.U/012U3456U789:U;<=>U?@CDUEFGJU4< Y,b'@"H$ @ l1d?lC-ol7 AUn'()U*+,-U./01U2345U6789U:;<=U>?@U4<Y,b'@"H$ @ +[zC-ol AU&-.ZU[U4< Y,b'@"H$ @ (l!C-0w* AU&-.ZU[U4< Y,b'@"H$ @ lXA!C-:y7 7U&-.ZU[U4< Y,b'@"H$ @ lA!C-H:7 7UN'()U*+,-U./01U2345U67@U4<Y,b'@"H$ @ 7 RBAC-p:7 :U~'()U*+,-U./01U2345U6789U:;<=U>?@AUDEFGU4<Y,b'@"H$ @ (m1BhC-:WC AU'()U*+,-U./01U2345U6789U:;<=U>?@CUDEFGJKU4?@CUDEFGHU4?@CUDEFGHU4?@CUDEFGHU4<"Y,b'@"H$ @ sFrC-\:7 AU'()U*+,-U./01U2345U6789U:;<=U>?@CUDEFGHU4?@CUDEFGHU4<"Y,b'@"H$ @  HrC-͇|7 AUz'()U*+,-U./01U2345U6789U:;<=U>?@CHU4<Y,b'@"H$ @ HQHeC-,U?@DEFGU4<Y,b'@"H$ @ QJeC-,K AU'()U*+,-U./01U2345U6789U:;<=U>?@CUDEFGHU4?@CUDEFG=HU4?@CUDEFG=HU4?@CUDEFG=HU4?@CUDEFG=JU4?@CUDEFG=HU4?@CUDEFG=HU4?@U4<Y,b'@"H$ @ OT[C-p% 7 AL>@8l/QR@xl\0RR@Hl'1RR@l1MR@l2FR@l2QR@ȈlF4SR@؇l4OR@l5QR@8l.6QR@l6QR@Xl7QR@l8OR@Hl8RR@l:SR@8l:QR@l;RR@xl;QR@Xl<QR@l}<NR@v<IR@z6U=QR@{6=OR@8|61>OR@|6>QR@Kl?QR@~6?QR@~6@NR@X6 AOR@6ARR@6BRR@H6BRR@6aCRR@6,DQR@(6DJR@6VERR@h6!FRR@6FQR@6GQR@H6HQR@6FIRR@6IOR@(6PJRR@6KRR@h6KQR@6=LKR@6LKR@H6KMOR@6MQR@60NQR@(6NQR@6wORR@h6CPRR@6QRR@6QQR@X 7RQR@ 7qSRR@lSQR@TQRL<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L>ElYRElYRE،lYREȍlYREhlYRExlYRElYRE(lYRElYRElYREl ZREhlZREȃl)ZRE؂l7ZRElEZRElSZRElaZRE(loZREl}ZRElZREXvZREH{6ZRE{6ZRE|6ZRE(}6ZRE}6ZREh~6ZRE6ZRE6 [REX6[RE6%[RE63[RE86A[RE6O[REx6][RE6k[RE6y[REX6[RE6[RE6[RE86[RE6[REx6[RE6[RE6[REX6[RE6\RE6\RE86!\RE6/\REx6=\RE6K\RE6Y\REX6g\RE 7u\RE 7\REH!7\REl\RE.\RUFD  h(^TYYBBUF\.ߗ?x<F BP(?hP?X$ ]B66ȅHq?j|?G IB@L&ɯd2?sU!&;/xt  0RKB` SwitcP,ne work pʴ r pP!aUl d v c z !^| R( G@&L >V&7?J7 ?ppwpwpwnwwyZwpw wwwpwwpwyplRp)~pw߇p}~zZDrag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aabL&d2ٿ\.??{ڿ ;?k?r3r CUG DF P# h @T(PYY#EψUF\.?@L&_d2?@ w?P} Y.B! ":J :f^7r7ֆAu` ?U"U66JJU^^rrUSu#U ^b"h,h'RqU f??z4b u{[`:#"&a#'QT)b" ^l!L1$l" l"7'>>ÿ@qZ05?46 r23ZS2uY0`-1ZBu@ l"r3A'Bl" hL$9u`u `"[ bzb!u`R$"% أ#Q!'1`Vis_PRXYcPm!#5HP4{6NP2`?CopWyr.PgPt u(>P) 20{PU9 M.PcePo0P'ofmR^QraPQUamPi_Pn WAlP eXsRUe0PeePvPdB!#d$%b!*(=#&#@Bd&& "$B##0Ub#]g,7{TrN @ cTg d(a1+_c@11"hh"2)t3*tB+tBa a"aab(!BpaSb"+QQou\%G!!["@@Bq"53T@R"q3<1 KEq`RPQs.PU TPxmPSP^2l"+ 0^<@5b 䱠"5R"br3&BrM_q(pffs_<៵R-m11'rvu"u"2$u3/8B0EBH%Q%Q"2_b3l !!E|QQQQ67l!8ĢAP!!1;(bL1D:b;aqq^eD!b(pQu [ ]@U0` SPa*aPePl rsRQV)P E u.PpBP!ePQ"5X%7\In` WTcPx]SP`DP!vR3^߮߼Iӏb` Syb9Sw>?QEd-MPnyfPcmPuRmt߆EQ`]1SPRd Nm E ZK!P PPr8J\h}]%R'`-sRU3e_ 5Afe3`؇e ,S SRiPQ ՑրTZIPL_PcX@;۞`rBYlPiPq٫€րY0KSR_PoŲ/ٸ!ר@/R/5NwRk,a_B`+x/OI4PQdPSi/, "?=ns#]?,(dN??(JSL1m "/Q9tVQ IQ /?րf?O\I-` R 4PQQ^OpOƒ?O?MPCI?O._qSCRo"mY6AtN BT]]9 M JU@L&d2?@|>??@Fh4?P6 AJuM` W?SuJt At=WG_z#J]RbJlp= ף#R>2yw?@MJA@eb&#z(b),+,&J[(.;?&L ?A$./O%B!!5 g`?Copy_rigTtZ(c)Z2U009ZM 0c 0os0f21r0>1a0i0n}.Z AlY0U 8s]2e10e 05vo0dQ0! $-# ',&?6iie59 6uX7_'0UpBŁ&Z!$0 'F";JlJAh h7!1!Z@x<3ף , <~y#  IRvVJ:?OS QlU^TURUEU{bX,G\ZYaaȫQ5UL&[RQQ .aYU520_BUv"rA # cHD H# h4>T]]9 MT JU@Fh?@+@ ??@?]P6 ]nAJuM{` ?5uJt  Q߸It=W贁NUIRIl%0w#>2zG7z?3@MJA@eb #zbR( (2+2&J[ (wp"?& ?A$ 4/U%B!!5 g`?CopyrigTt (c])020%090uM0c0os 0If21r 0D1a0i 0n.0 WAl_0 8sc2Ue70e0vu0dW0!E$5 򤲝-?# '&6iieE9 6X73'0UvBŴ&!$0 T-FAJlJ8>UhAA 11!`m`0?@rO\.ש ,#<#{ RVJ:9XYUي#rT Q%UE?,b R8]S# l_@ѱQEakQY,aU5U^fGO+|no/j3asChAZGQaX_j_i2>_PU"rA #js( bUGD  3 h0TdYYB 1 U@ BP(?@'J?@ V?,?@f_(@yw?P} ,w 5 &M& DD bb 4  M  4  &M& 4&4& R&R& p&p&d &M& && &&4 && 66o"u` ?J$0BN`l~$I/( /2(>/P(\/n($z/(/(/(I/(/8?"4u.9!t+1  QyUtmQRkyUWq#6&yU~W6͔QUQQR`?CopyrigPt (c)2`2\092`M*`c(`o%s"`f0b!ar$`]aua0`i"`n.2`_ Alx` (hUs|beP`e(`v` dp`RSST SB-S`6b g?/4)=SfS@tff bT#S0Uorc@V*` @4c u vXgw'ntŔf!d] vze!`^H@!!Yd&Db&VUʄ&ՋeʄDՋ3ʄbՋ uʄՋʄՋ|ʄՋƈՋcȆՋƈ!Ջ&ƈ4!ՋDƈR!Ջbƈp!ՋƈRƈ!Ջƈ!Ջƈ!Ջʄ1VHD: # h0>Th]]9 MTIAU@?@kE8?@ ͂?@SSfhr~?Pps-8R?>$ > n JuM{` ?e ;  Su*Jt'  $mCLmta{\_I 3.Jv  q?#cwn?v(A[}Kѭ>JU2N贁N[?@M#J&A@bI(bUW)U+U+U&*Jy#?!lJ ?%P?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>Uh ETh]]9 MTIAU@?@-Ы?@ ͂?@SSfhr~?Pps-8R?>$ > n JuM{` ?e ;  Su*Jt'  H-mta{n_s9/3.Jv  q?#cwn?v(A[}Kѭ>JU2N贁N[?@M#J&A@bI(bUW)U+U+U&Jy#?!lJ ?%P?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>Uh ETh]]9 MTIAU@B?@c?@ ͂?@SSfhr~?Pps-8R?>$#A n JuM{` ?e ;  Su*Jt'  m@mta{7._ xX3.Jv  q?#cwn?v(A[}Kѭ>JU2N贁N[?@M#J&A@bI(bUW)U+U+U&*Jy#?!lJ ?%P?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>Uh ETh]]9 MTIAU@eZԩ?@z?@ ͂?@SSfhr~?Pps-8R?>$ > n JuM{` ?e ;  Su*Jt'  }$~mta{_P@3.Jv  q?#cwn?v(A[}Kѭ>JU2N贁N[?@M#J&A@bI(bUW)U+U+U&*Jy#?!lJ ?%P?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>Uh ETh]]9 MTIAU@h!I?@Zzv?@ ͂?@SSfhr~?Pps-8R?>$ > n JuM{` ?e ;  Su*Jt'  XƿHmta{_z3.Jv  q?#cwn?v(A[}Kѭ>JU2N贁N[?@M#J&A@bI(bUW)U+U+U&Jy#?!lJ ?%P?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>Uh ETh]]9 MTIAU@sLGv?@Bw6t?@ ͂?@SSfhr~?Pps-8R?>$> n JuM{` ?e ;  Su*Jt'  [Rw͖mta{__j3.Jv  q?#cwn?~v(A[}Kѭ>JU2N贁N[R?@M#J&A@bI(b*W)U+U+U&ՆJy#a?!J ?%P?AO"d+bRW+$u/%B#A1A15 `?Cop rigTt (c)x02`09x0Mp0cn0osh0fv2g1rj01av0ih0n.x0 l0 n8s2e0ejn0v0d0:1Y>4#-X#M3 M7#(p0b59 DFXGdG_'2WUA;FJ!$a dFD$&#l,&}>Uh ETh]]9 MTIAU@?@9 EU?@ ͂?@SSfhr~?Pps-8R?>$> n JuM{` ?e ;  Su*Jt'  $mCLmta{_3.Jv  q?#cwn?v(A[}Kѭ>JU2N贁N[?@M#J&A@bI(bW)U+U+TU&Jy#?!J ?%P?AO"d+KbW+$u/%B#A1A15 `?Cop rigTt (c)x02`09x0Mp0cn0osh0fv2g1rj01av0ih0n.x0 l0 n8s2e0en0v0d0:1Y>4#b-#M3 M7A#(p0bP59 DFXG~dG'2WUA);F!$a dF$&#l,&}>Uh ETh]]9 MTIAU@?@,?@ ͂?@SSfhr~?Pps-8R?>$> n JuM{` ?e ;  Su*Jt'  H-mta{X_ 3.Jv  q?#cwn?v(A[}Kѭ>JU2N贁N[?@M#J&A@bI(bUW)U+U+U&Jy#?!lJ ?%P?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>Uh ETh]]9 MTIAU@B?@-r-.?@ ͂?@SSfhr~?Pps-8R?>$> n JuM{` ?e ;  Su*Jt'  m@mta{_ :3.Jv  q?#cwn?v(A[}Kѭ>JU2N贁N[?@M#J&A@bI(bUW)U+U+U&*Jy#?!lJ ?%P?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>Uh ETh]]9 MTIAU@eZԩ?@ƍu?@ ͂?@SSfhr~?Pps-8R?>$> n JuM{` ?e ;  Su*Jt'  }$~mta{_D3.Jv  q?#cwn?v(A[}Kѭ>JU2N贁N[?@M#J&A@bI(bUW)U+U+U&*Jy#?!lJ ?%P?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>Uh ETh]]9 MTIAU@h!I?@O2?@ ͂?@SSfhr~?Pps-8R?>$> n JuM{` ?e ;  Su*Jt'  XƿHmta{p_'F3.Jv  q?#cwn?v(A[}Kѭ>JU2N贁N[?@M#J&A@bI(bUW)U+U+U&Jy#?!lJ ?%P?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>Uh ET]]9 M JU@]u?@x?@,ww'?@d?Pn6 >JuM` ?u#t  fIt=W紁NIRkgS|lWxI#>2zGz;?@MJA@eb #zb(b%)2+2&J[/.;?&L ?A$4/U%B!!5 g`?CopyrigTt (c)0W20%090M0]c0os 0f2R1r 0D1a0i 0n.0 AUl_0 8sc2e70e0vu0dW0!$ę-# '&?6iie59 6X7}'0UvBiŇ&!$0 -FAJlJ8>UhAA@ 11!T2 $<cV] &WR~VJ3kq?@BP( ]S m၏jy#mS zjaֱQE^y`0__ lOA/X5:Fh4 XYePYv81sX5aZjoohY}aUU߭?@,bl'4/\K)aX2>_;"rA #jsHD: # h0>Th]]9 MTIAU@sLGv?@_?@ ͂?@SSfhr~?Pps-8R?>$> n JuM{` ?e ;  Su*Jt'  [Rw͖mta{_3.Jv  q?#cwn?~v(A[}Kѭ>JU2N贁N[?@M#&A@bI(bUW)U+U+U&Jy#?!lJ ?%P?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>Uh ETh]]9 MTIAU@?@*y>{?@ ͂?@SSfhr~?Pps-8R?>$>  uM` ? ; E)u*Jt'  $mCLmta{)4G3.Jv  q?#cwn_?v(A[}Kѭ>JU2N贁N[R?@M#J&A@bI(b*W)U+U+U&Jy#c?!J ?%P?AO"d+bRW+$u/%B#A1A15 `?Cop rigTt (c)x02`09x0Mp0cn0osh0fv2g1rj01av0ih0n.x0 l0 n8s2e0ejn0v0d0:1Y>4#-X#M3 M7#(p0b59 DFXGdG_'2WUA;FJ!$a dFD$&#l,&}>Uh ET]]9 M JU@L&d2?@\.?tP6 >JuM` ?uJt ASt=WJRb~li>t2U?=@MJA@b + &J[N#?0a& ?AT)B!!5 g`?CopyrigTtZ(c)Z20 9ZM c. os f"!r 1ai n.Z Al90 (s=2e0ej vO0d10@!$b-# 'Ya&?6iiek59 6jX7^'0a&Z!|$0 FJlJ UhqMAA ]A !4Ja-'Z@?@  <0贁N#A OR|VJ:6]G+|M__Zw?/#UEF`?0?@ aQS xQ#`Y{GzYk5^ro!o :mX5U'h?gkT:&#dT[RUU4F?@|?BP(flwaw%l5p!Xnc 3dXAYEh4\`Yb/XAdx̼_ZWnQXAYL&tgkRwpQlQE26_HU"]rA HD: # h0>Th]]9 MTIAU@?@?]0?@ ͂?@SSfhr~?Pps-8R?>$hA n JuM{` ?e ;  Su*Jt'  H-mta{AJ_ap3.Jv  q?#cwn?v(A[}Kѭ>JU2N贁N[?@M#J&A@bI(bUW)U+U+U&Jy#?!lJ ?%P?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>Uh ETh]]9 MTIAU@B?@d;]?@ ͂?@SSfhr~?Pps-8R?>$> n JuM{` ?e ;  Su*Jt'  m@mta{d_v3.Jv  q?#cwn?v(A[}Kѭ>JU2N贁N[?@M#J&A@bI(bUW)U+U+U&*Jy#?!lJ ?%P?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>Uh ETh]]9 MTIAU@eZԩ?@>6#TTĶ?@ ͂?@SSfhr~?Pps-8R?>$> n JuM{` ?e ;  u*t'  }$~mta{%$苵3.Jv  q?#cwn?v(A[}KI>JU2N贁NI[?@M#J&A@bI(bW)U+U+TU&Jy#?!J ?%P?AO"d+KbW+$u/%B#A1A15 `?Cop rigTt (c)x02`09x0Mp0cn0osh0fv2g1rj01av0ih0n.x0 l0 n8s2e0en0v0d0:1Y>4#b-#M3 M7A#(p0bP59 DFXG~dG'2WUA);F!$a dF$&#l,&}>Uh ETh]]9 MTIAU@h!I?@Ž?@ ͂?@SSfhr~?Pps-8R?>$> n JuM{` ?e ;  Su*Jt'  XƿHmta{_v3.Jv  q?#cwn?v(A[}Kѭ>JU2N贁N[?@M#J&A@bI(bUW)U+U+U&Jy#?!lJ ?%P?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>Uh ETh]]9 MTIAU@sLGv?@c?@ ͂?@SSfhr~?Pps-8R?>$> n JuM{` ?e ;  Su*Jt'  [Rw͖mta{_] 3.Jv  q?#cwn?~v(A[}Kѭ>JU2N贁N[R?@M#J&A@bI(b*W)U+U+U&ՆJy#a?!J ?%P?AO"d+bRW+$u/%B#A1A15 `?Cop rigTt (c)x02`09x0Mp0cn0osh0fv2g1rj01av0ih0n.x0 l0 n8s2e0ejn0v0d0:1Y>4#-X#M3 M7#(p0g59 DFXGdG_'2WUA;FJ!$a dFD$&#l,&}>Uh ET9 M3JU@L&d2?@\.?ҷP6 m>JuM` ^?5ulbSD_Jt bstE>2zGz;?@MJA@u+b+&K !JS"j& 1"A.b+-,-/*B!!5 `?CopyrwigTt `wc)5020A0950M-0c+0o%s%0f32$1r'0`1ua30i%0n.50_ Al{0 +8Us2eS0e+0v0ds0ib =L!XY'0U Bj&%0 :lJ Uh*M[A[A 9A Z1:'h? Y T:&Qi@J4F?@|BP( IQ!i pP!!U31^ `0,I_[_ {uXEEh4Ẍ TbYb/uX _dx_aZW贁NuXAIL&tKRPQ\%QAI@@ HlQbY 0hauXAo G+|oaZw/(uXAY RU:q Ib_`yA\ppr׌ :muXEOO_\_dH >Z(+s .ṿrAA'Fhu7aa#b!OB 9 c~dڮ w7d@+ 9BBGe P?m&P qYXct߻( Bxzج{ Xҿ} g:P~ZU (X Zb|]ޚ_HRo8 ~ 8 Z ߮ iV]!_;eIL UMU'UW4YAU BN [U h u R.8UEU_l y!񷪆"A#K$X%&'ª()Ū*+$,$-"$./$/Ъ<$0I$1V$2c$3p$4}$5#6 !7( !8 !9 !:X !$<$=UFD  h(^TYYBBUFjZ?F~??x<F BP(?P } kX` BW66 W TTT%TTȅ5H?? (?B@L&d2?-(\.g1(.sUW!AU&w/~  0QB`#serv",comput$dWis r0b$ud n tw 'rk!eA^| (SG|& b?,>?TTwpp pqqppqwqpqwqwq+p pppwwwznw6;5wqpwwwhghw>Drag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aabjZֿ~??cN׿ mF1??SbM1{V↑T*J?@ ?UG DF P# h @T(PYY# 3U@jZ?@~??F?Pn} u{` ?Su#΍>>HX HlHYHH E.Oč>UDDXXUllBa'9-",'tU"J%q4 Q?"'4b0{[`:#26Q79$"t3&9"OL1" ^!'܈ >7@ÿ@q@@?@8B?@!ABP5F02u@K`-1xBu@rCC53A 3Bo2гC9uv`u `"[ۢ b!-u`23kQQ1Q7B`?CopyrigPtf0(c])f020P9f0uMPcPosPIfRQrPQaPiPn f0AUlP XsRePePvPd/`VPs_SBNcPm!#5JP83`5a Q1#d:4%B @8=3R6#d\6P\6 X2$#3+0Ub\3]Jxge8^ E U#".5m Hvq%t{.5tpw3t{Et{t{^y {|tYwmkdaIB'BT1aa"0ք.2132B3z1z1"|+q+qEQQX116Q;r<A>Ab\1EF`rAJ͔!hh)1baA (dT6vQ1oUkQ]b` MPnuPaPtUQra1Q` E50uPp -`ePt=e.5Q`!3]t1LPRdU\ %`u-`bcu30D-!I PPr֯H^-]L˭DRQqU`r\BAPaPrB`LDž5^,B%I SbiPQXj feTϟB LLPcXςPC5%Bl `iPgCų@o߰DLRPo}߄|AqZ@@K ӱpKDQ`;BNQwRkax`2`녨cϣ[I$`Qd `SsPo8SUbPRPsU}AxBuLDmatVa IaXAfBLT R `QQVhP+IQUm-`u-tP !`4줒ӿU챒VBALC`<1B` W2: /XؑLMPmRAy;/M/˒pq//$OPaSDy1!//%ؒ7VI]BPlRgRTP訰y??SPa2CP򿃪X??B` 7T+01I@"`a^%{/MPCAD vOOHKdQ>C2Z>6?H?qgtԁ/tufvop#U@jZ?F~?vvIC-pˑup` s?bujp`&T0a,Stԁ/p]e-2q?@< o5pmH!q."Tԁ.dԂxAƒ@T@>$pÿ^$gqa OvcrSr`Rno>㳫1e&BIrSrOvcv=ss"u~$bb pmp sty:b{bráe@6Cu&P`?hi@k""oűRT h]]9  5AU@jZ?F͂T??Fx?SF?P6 jt`  o?tk[>(A Vu aSuo.]&A]  *ԮJU2zGzt?@L#&A@bA#z7 5#1bO(b])j+$j&[ "*(w "?& ?AU$l/%B115 `?CopyrigTt (cu)Q02`09Q0uMI0cG0osA0IfO2@1rC0|1aO0iA0n.Q0 WAl0 G8s2Ueo0eG0v0d0"1E]4MŤ-&3 &7&l>]Uhz811U!J!u6?F+\.>djIIa? >"(EǑ I%K9E 5EU . K ;;5QIWEEEF _KnSA?8@@Bu?FDR> ?Nk"\6`bmMM\j=am {:e P> #? D"? 5-g?j4B7!B{oogr57!ibDAbE9 MuX7_'0U~rN!$a)5 5vIzHD # =hj0>T h]]9  qAU@;?FI5K?@xEL?6ѿP6 t`  bm&Qo?t@@L]WI,#u aiuoL> JU2zGzt;?@L?&A@b}#zs q#1b(b)+$&[9#H",ɺ (wH"?& ?A$ /%9#BV1V15 `?CopyrigTt (cu)02`090uM0c0os}0If2|1r01a0i}0n.0 WAl0 8s2Ue0e0v0d0"O1E]S4MŤ-9#b3 b7&l>]Uhzt1.A!JN!m.%-+0djV1ax߃S(FJ-&?F mO"> ?Nk"L[Majnha_:e P> #? BK=o? n-?j4Bs!B{__Wr5s!D8E6V 6?wj_|_ ^XE.U@z T6?F @' d_mOoT \VyWxRkrVo_bVh*g:n"'UaEjz36>CN>?Bn}]zGvN7V iDAbE9 MX+G'0UJPN!4ae5 MaHD # =hj0>T h]]9  U@jpiH?F^?@$?F]F?P6 t`  !a&ao?t,F=۳=u;u auo>J2zGzwt?@ʐLAw@b#z1b](b!).+I.&[-m(?0& ?A$I0/Q%!!5 `?CopyrigTt (c)02`090M 0c 0os0f21r0@1a0i0n.0 Al[0 8s_2e30e 0vq0dS0T"!E]$M-# %'&l>]Uhz!1!JF% djc~YZ(_N9zOMGE%_EH$SwO"K ңHE ^&_8_WE_OqOHOOi&DAbPE9 MX7'0UUfb>!$a % f1jHD # Uh4>T#]]9 M5AU@jZ?FL|+?@?F({~?P6 JuM` ?u JYt )t7zEA2&L_D?. > >tJU2q K?=@MJ&A@-b9(+bG)T+T&J[#"#a?& ?AH?/`)#115 {`?CopyrigTt (c);020G09;0M30c10os+0f92*1r-0f1ai+0n.;0 Al0 18s2eY0e10v0dy0z"!4B-#3K 7&)? b 0K8>U# ]A]A "1!ъ!PzQ <%OYAJEU . K;;\%W%EF($L[.FX5Eai%?F 6?wL;] W-\TB⤲8?F@&SA?F @ ?Nk"L'`bmMW_Ye[ٯ7 VK=F: [jr ? D"? XZvD?ta@Boogr5;!QEx]SiLO MLGXa~WOTZiAle59 XG"'0Uc>!$05 .HD # =hj0>T h]]9  IAU@K?FOgVb?FY%?Fwᳬ?PJW?>t`  ^Z?t#ə.E @x?r?/{4܂ G _Z+u u$ >  J JpU?43f<!.&P?b3bbfz@1bAe&bq$d 2zGzt.#@LT"&r(~&i$q)(+}'i"~*#81815 `?Co yrigTt (c)o02`09o0Mg0ce0os_0fm2^1r 1am0i_0n.o0 Al0 e8s2e0ee0v0d0"11E]54M-#D3 %D7.&lUh#7 V1#Ai!J# F/?B1B  VRiAAbE9 MX G{W'0U*R2N!I$a {VZUHPD  # #>h0JTpERI MU@u6?Fjc{g&?@%r`5B?Fm_F:Is?HNtQ`  II?t#]  _ii$!`kNu  iu%wj>M JQ T       "@&&JNU2"?H@Qs#N&A@b(bU)++&RNp}#>H1#19 ?#bbbz| R&/5R}#11`?Co0yrig\t (c)02h090M0c0os0f21r0Aa0i0n.0 Al!@ 8s%Be0e0v7@d@21a4t#-}#3 %746lJ#$JUp5 3 M19 1!q(!FnElrkRt# 8$kcD?@숒@)?FP?P"EkU |1\iOT/irvs}i>`_,of :m ,M ?? S&d2? *b?r4B!B oo1gr #5!>%(EQOOOO__FAc1_C_ D4ևS]_o_yRX+{_,__ #R__ (YQoSo+o=osd {oEeooooooFyUy{* hDVW(I X"c7I!pg bf'iMjSE t%XyG|'0UŢŞN!O4i |UGD # hz0TdYYBU@(%)?Fxg^?@0߯H?Fs7Uݹ?P} t` 87?t#_)TeΦu ]ukv  ̝L&UUU&I&3 U!!`?CopyrigPt _(c) 2\W09 M c os f"!r 1a i n}. Al00U (s42e0e uvF0d(0'HS$#-## 'I?k=#ǒ 2j$B##0U'BM3@&@F0Yk} #HA%DKb5DK3DK5DKED$!GiAZG5(|IDFX7yW'&Dŭ6!4YA yVZHD  # =hj4>T!]]>#AU@0߯H?Fz)e??F˞9q?P6 t`z  ?5t# rXѮu)Nu;):O]ע0 &> # " "+"+"+"+" $+"T-J[U7 ??& bA@ 2b4-#2zGzt#+@ Li68!6 ?}; 72U!:B#AA5 5`?CopyrigTt(c)20F@9M2@c.0@os*@f8B)Ar,@eAa8@i*@n. Al@ 0HsBeX@ej0@v@dx@)21"DM-,;?C G& l>]UhzAE!A#!ְ1J`#@{&pz?FUy{?NT,dKj&b&R&M/8T9K-q?F@F?FdG0 >Nk"?YE*]\LThKjfGD&Qhj ?iU3UGe&Y`?@/Jb)h5oWKoWo;èKod}l$ro`nE2K?Fˌ%4G{?F -q? eZR^{|\?6?vodmP}l>MBe 9 N 1iS? 1?grl#51:PO"4ga@Sq(UE^@O|ǐ[`ߡa v2rbA @3ijD&}laqOz o?#WHZ'Qu=*[^N?F]%P?@O&@ c?FаM<n ?` eb0)\(Pfodm}nv}l?V5(?q$Ix[cN#W{ #iA@&QeE9 MX''0UjdN!0 /HD  # =hj0T h]]9 #]AU@}%?FR$,?@6#V?Fc_3֡w?P6 u` ?u#t  3zM%t3ws%.<%H._'B> #PJU2N贁Nw[?@ʐL+&A@wbu](i+bk)%+&p%#4">9"<5!?& ?M#bbb͓z$ p&"/%T%#L1L15 w`?Co yrigTt (c)02`090M{0cy0oKss0f2r1r 1a0is0n.0 Al0 y8s2e0ey0v0d0"E1E(]I4M-%#X3 X7&l*>(UhE j1#$Ac!J`%#@5e$_F??!foA3nBM( V?FJ-R?@HQ??FS!R?P| llHL6VLD5E+v;*AůʙH: 8snP%$? k?Q? \?4_!__WrA5_! R,U3OC@IL?F4~Kz?P)Oy޾ T!]]>#IAU@܋?F2Oa>?@#r`5B?F*ݷ?P6 t`  >B?\oEt# ŖoZu 0Nu;Y:|8>$# JpU>##<?2& ?5bbbz@b#ANi&bu$'h 2N贁N[2$@ LX"D&v(&m$ :;T'm"*B#d1d15 5`?Co yrigTt (c)020090M0c0os0f21r 1a0i0n.0 Al0 8s2e0e0v0d0"]1"a4M-/p3 p72&l>0>Uhh= 1#!eJ`#&FNTM\jh1B,RBM(!JoUy{O_ e@ So4(D@^Tw?F]֝ä ?Nk"?w_KT\T+\_(Kjӷjmplhj -`\TPQE\Uui,St_o u~!ՠXEO9= T?FL?;uQ_Pm"rA @3sjQ1lğ=GoYniAleE9 MX|'w'0Ur^N!M$|A vzHD  # =hj4>T!]]>#IAU@܋?Fj?@2r`5B?F^ݷ?P6 t`  >B?\oEt# 6ΠZu 0Nu;Y~:#&}>0m8>  PJU2N贁Nwk?@ eL&A( 5bM(b[)h+h+$h&#[-M$#?& ?b$Z*'*B#O1O15 5`?CopyrigTt (c)02U0090M~0c|0osv0f2u1rx01a0iv0n}.0 Al0U |8s2e0e|05v0d0"H1P"L4M-/[3 [7&l>0>Uhh= m1#!S!J`#*&FPUy{_?NTMjC1gc RVMʣ(D#@ ![?F"$. ?Nk"W?IKTLTcKjRlhj p=' (*!)i,SO2Kes9T;QEGUFw6qX}__TM7fTZT\Dž}_P^52XOES"rA 0S#Es3iAleE9 MX|$Gxw'0UrIN!4gA xvzHD  # =hj4>T!]]>#!AU@܋?Fc_v?@#r`5B?F*ݷ?P6 t`  >B?\oEt# ap'EZu 0Nu;Y:|$># BJpU>#͙;? & ?5bbbz@}bAA& K&@ 2zGzt?"K@ L0"&N(bM)+TK/8Z*B<1<15 5`?CoyrigTt (c)s02009s0Mk0ci0osc0fq2b1r1aq0ic0n.s0 Al0 i8s2e0ei0v0d0b"5194M-t/H3 H7T &l>(>UhE=3Z1#E!J!FENTMjN@1h(NoUy{OO e@ o)4(D@^Tw?F]֝ä ?Nk"?'_KD3\T+\(Kj?ӷjmlhj P\ DiAlePsI=MXsG'0UzbZ6N!%$0 sFEjHD  # =hj8>T! ]]>#!AU@܋?F*?@#r`5BW?Fw?P6 t`  >B? \Et#տ|u l4RQu?]>I$>I# JpU>͙#<?& ?9bbbz@b#AE&bQ$$D 2zG[zt#@ L4"&R(^&I$Q)+]'I"^*Bh{.M#To1o15 9`?CoyrigTtk(c)k2009kM0c0os0f21r1a0i0n.k Al0 8s2e0e0v@d0f"h1l4M-:?{3 %{7&l>(>UhE= `51#I!J49fAn^ R)X f"B!Jui,SG?RSlOS u~!N]8-19= T?FL;uQ ?Nk"?YVTQRXQOnğ/=i n (\ wTiAaePE9 MXLg'0UbZiN!)$0 Lf`jUHLuD" # I>h(J TEI 3qMU@jZ?F({~+?P >uA` ?u#VMJ*  )8*A )LG#P`G.$*G8BV6j>t   t|zpb"#"J>U2zGz?@9 +#>;&A@b]m(b{)+Y&^" !l$jN5#",#C"&p "Ms"b{);x'^",^"V/5#113#`?CopyrigXwt dc)0W20090M0]c0os0f2R1r01a0i0n.0 AUl@ 8sBe0e0v@d0R#"lJ8JUlC -(#s!)(J!O?zQ0 # # %YA NEU . K ;;LGE3EF)$OK.FHE\Vai%?F 6?wt\[ W-L/D5Dꤲ8?F@@SA?F @ ?Nk"?wY2`bmM3_Yw[7 K=ދF  #j1H|AIx]Sit\1IMLHDEnPOoDJ1AAeCBp OOG|u?F9 mO"t\7=L驣/XQ eel.%-+?@llփ?FU~> @oVoɽ7y2VzdOfшlA=$o`"jQ3 ex}@4SSa[?o4ui'e!Oa#Əa$jiMiyI,%!Xtz'0U &`50HF vؚ_`H>;s `Dt![x_H=ߚFXu!#ȱw&OB H9 Ȼ~dۮ F@+ J[zsGUfȓ4 "v" X/ ߻O @֛ ȝ r6?  ( k` 7e޿ IN]UFD  h(^TYYB UFjZ?F~??x<F BPG(?P } X ]B66]  TTUTTTB9T9ȅHBU?? ?B@L&d2?6-G(\.Y(7.sU!}&/)Ѥ&)  0cB`,dat 0b 0se,2rv2,0ompu 0#3di0t0i013d0n0tw*0rk!e ^| (S G& iz ?!3E?? ?  wpp  pqw~ qwqwwpqwqqpppw'wwwqqbwqpwww7{{w^Drag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aabjZֿ~??cN׿ mF1??SbM1{V↑T*J?@ ?UG DF P# h @T(PYY# [U@jZ?@~?tP} u` ?u#2>D>HX DHlHYHH (E9.EUO؍:DUDXXlUlH"' &T",'U)2&5qq/4 ?""'4b0{[`:#26%Q_9 $7&9"L1" 2^!'>~_@ÿ@qh@o?@`B?gD]F0#Bu)@`-1֠Bu@Ur#CC5CAB""Ch9u`u `"[ b!u`2ւ/3Qy1y7B`?CopyrigPt0(c)020P90MPcPosPfRQrPQaPiPn 0Al` XsbePejPv&`d/`VPs__SBNcPm!#5P8[`CQ2y1&3db4&5=Bh8=/3z6&3d66 Ԁ2&4#/30U!r3]ge<^1E U#&5m Hq&5twV5t{3t{FEt{t{y {et !{|tYwmAdaуIOBT.1:a:a&20#V21032=FB3J112I5db6q 7~C|hhE) *^Q_`!CQCQA11B=B;8ARrSqe a> !b1AE4FAނ.1#8dT7`XQ`]rw` MPnuP%aPt%ar6aYQ_` E]0uPpU`e`tee^V5Qn]1PRRd M`uU`b¯Ԧ30Z! PPr#5GCHhz]3 D&bQe^\޿𿏫AP)aB`Ҩ75^gyϏ-% S*biPaϷZeTϏ-LPcX&ߠϫk5N`rBDl 2`i`g̨)@`ߑRPoʂѩ|(ZP\@ pKD`ĖUSPaPEePlP6?ЪX9` TP7`?>` /aZPa_qSbI`zy`DRa0"ZʒT=NwRkqa<.2`s @ҨגcOaI` ad2`%c& d nĝAs Nx+P=鑙mrDatV/a I͢@+aNfP󨑙 R `Qa// '=/KM`C/P⯺/+QUmU`utP I`/ %N4$?6?s 2v? 2Nv??;Hd2QC_3` Wz%?NV%O7OCt aOO#ޅO`M&`mR{OOӧY"Np_1_E;OUe1ySQ]_o_M qt!Tw*foSU@jZ?@?/v/vUpSp2u8p` ?bup` B=ݝ`M,{t!Wp5'm-ׁ<3ohm!Qb8q׏XݥBT!.ct!xAZg>pÿ=$ bUfq vU֒rrrvvvrsY"`ERon_10 бeCZ~bb W}Wbr@":tbWuP`TfnMq1o$6zK}_obK1K2\#b^ºaaaaFҴ_AaY6P`u$`bTs`ݡs`ap䑹x^tݥ5f_b&bׄЂF3s͵N?SYDs\rV@(#e"88G^80G8ɐIFZ,@rb4 2V}uauaxuYV{nx` % P&S.1ua`NEW_ORKd2H IPհs!R۰RЕIհSÑQȑTi|o&ohXAG'0U?8!0oHD # =hj0>T h]]9  5AU@jZ?@͂T??@x?SF?P6 jt`  o?tk[>(A Vu aSuo.]&A]  *ԮJU2zGzt?@L#&A@bA#z7 5#1bO(b])j+$j&[ "*(w "?& ?AU$l/%B115 `?CopyrigTt (cu)Q02`09Q0uMI0cG0osA0IfO2@1rC0|1aO0iA0n.Q0 WAl0 G8s2Ueo0eG0v0d0"1E]4MŤ-&3 &7&l>]Uhz811U!J!u6?@+\.>djIIa? >"(EǑ I%K9E 5EU . K ;;5QIWEEE@ _KnSA?8@VBu?@DR> ?Nk"\6`ObmMM\j=am {:e 뇿P> #? D"? 5-gg?j47!B{oogrK57!ibDAbE9 MX7'0U~rN!R$a)5 5vIzHD # =hj0>T h]]9  qAU@;?@I5K?@xEL?6ѿP6 t`  bm&Qo?t@@L]WI,#u aiuoL> JU2zGzt;?@L?&A@b}#zs q#1b(b)+$&[9#H",ɺ (wH"?& ?A$ /%9#BV1V15 `?CopyrigTt (cu)02`090uM0c0os}0If2|1r01a0i}0n.0 WAl0 8s2Ue0e0v0d0"O1E]S4MŤ-9#b3 b7&l>]Uhzt1.A!JN!m.%-+0djV1ax߃S(@J-&?@ mO"> ?Nk"L[Majnha_:e P> #? BK=o? n-?j4Bs!B{__Wr5s!D8E6V 6?wj_|_ ^XE.U6Vz T6 @ d_mOoT ݬ\VߦyWx?RkrVo_bVh*g:n"'UaEjz}36>CN>?Bn]z/GvN7ViDAAbE9 MX+G'W0UPN!4)ae5 MaHD # =hj0>T h]]9  U@jpiH?@^?@$?@]F?P6 t`  !a&ao?t,F=۳=u;u auo>J2zGzwt?@ʐLAw@b#z1b](b!).+I.&[-m(?0& ?A$I0/Q%!!5 `?CopyrigTt (c)02`090M 0c 0os0f21r0@1a0i0n.0 Al[0 8s_2e30e 0vq0dS0T"!E]$M-# %'&l>]Uhz!1!J@% djc~YZ(_N9zOMGE%_EH$SwO"K ңHE ^&_8_WE_OqOHOOi&DAbPE9 MX7'0UUfb>!$a % f1jHD # Uh4>T#]]9 M5AU@jZ?@L|+?@?@({~?P6 JuM` ?u JYt )t7zEA2&L_D?. > >tJU2q K?=@MJ&A@-b9(+bG)T+T&J[#"#a?& ?AH?/`)#115 {`?CopyrigTt (c);020G09;0M30c10os+0f92*1r-0f1ai+0n.;0 Al0 18s2eY0e10v0dy0z"!4B#e-?3 7)& b 0K8>U# ]A]A "1!ъ!PzQ <%OYAJEU . K;;\%W%E@($L[.FX5Eai%?@ 6?wL;] W-\TB⤲8?W&SA?@ @ ?Nk"L'`bmMW_Ye[7 VK=F: [jr ? D"? X?ZvD?a@Boogr5;!QEؿx]SiLO MLXa~WOTZiAle59 XG"'0Ujc&N!$05 .HD # =hj0>T h]]9  IAU@K?@OgVb?@Y%?@wᳬ?PJW?>t`  ^Z?t#ə.E @x?r?/{4܂ G _Z+u u$ >  J JpU?43f<!.&P?b3bbfz@1bAe&bq$d 2zGzt.#@LT"&r(~&i$q)(+}'i"~*#81815 `?Co yrigTt (c)o02`09o0Mg0ce0os_0fm2^1r 1am0i_0n.o0 Al0 e8s2e0ee0v0d0"11E]54M-#D3 %D7.&lUh#7 V1#Ai!J# F/?B1B  VRiAAbE9 MX G{W'0U*R2N!I$a {VZUHPD  # #>h0JTpERI MU@u6?@jc{g&?@%r`5B?@m_F:Is?HNtQ`  II?t#]  _ii$!`kNu  iu%wj>M JQ T       "@&&JNU2"?H@Qs#N&A@b(bU)++&RNp}#>H1#19 ?#bbbz| R&/5R}#11`?Co0yrig\t (c)02h090M0c0os0f21r0Aa0i0n.0 Al!@ 8s%Be0e0v7@d@21a4t#-}#3 %746lJ#$JUp5 3 M19 1!q(!@nElrkRt# 8$kcD?@숒@)?@P?P"EkU |1\iOT/irvs}i>`_,of :m ,M ?? S&d2? *b?r4B!B oo1gr #5!>%(EQOOOO__@Ac1_C_ D4ևS]_o_yRX+{_,__ #R__ (YQoSo+o=osd {oEeoooooo@yUy{* hDV!VV(I X"c7I!pg bf'iMjSE t%XyG|'0UŢŞN!O4i |UGD # hz0TdYYBU@(%)?@xg^?@0߯H?@s7Uݹ?P} t` 87?t#_)TeΦu ]ukv  ̝L&UUU&I&3 U!!`?CopyrigPt _(c) 2\W09 M c os f"!r 1a i n}. Al00U (s42e0e uvF0d(0'HS$#-## 'I?k=#ǒ 2j$B##0U'BM3@&@F0Yk} #HA%DKb5DK3DK5DKED$!GiAZG5(|IDFX7yW'&Dŭ6!4YA yVZHD  # =hj4>T!]]>#AU@0߯H?@z)e??@˞9q?P6 t`z  ?5t# rXѮu)Nu;):O]ע0 &> # " "+"+"+"+" $+"T-J[U7 ??& bA@ 2b4-#2zGzt#+@ Li68!6 ?}; 72U!:B#AA5 5`?CopyrigTt(c)20F@9M2@c.0@os*@f8B)Ar,@eAa8@i*@n. Al@ 0HsBeX@ej0@v@dx@)21"DM-,;?C G& l>]UhzAE!A#!ְ1J`#@{&pz?@Uy{?NT,dKj&b&R&M/8T9K-q?x6@F?@dG0 >Nk"?YE*]\LT_hKjfGD&Qhj iU3UGe&Y_`?@/b%)h5oWKoWo;KTod}l$roҥ`nE2K?@ˌ%4G{?@ -q eZ̿R^{|\6?vodmP}l>MBe 9 N 1iS? 1?g]rl#51:O("4ga@Sq(UE^@O|ǐ[`Ρa g v2rA @3ijD&}l迲aqOz o?#WHZ'Qu=*[^N?@]%P?@O&@ c?@аM<n ?` eb0)\(Pfodm}nv}l?V5(?q$Ix[cN#W{#iA&QeE9 MX|''0UdN!0 /HD  # =hj0T h]]9 #]AU@}%?@R$,?@6#V?@c_3֡w?P6 u` ?u#t  3zM%t3ws%.<%H._'B> #PJU2N贁Nw[?@ʐL+&A@wbu](i+bk)%+&p%#4">9"<5!?& ?M#bbb͓z$ p&"/%T%#L1L15 w`?Co yrigTt (c)02`090M{0cy0oKss0f2r1r 1a0is0n.0 Al0 y8s2e0ey0v0d0"E1E(]I4M-%#X3 X7&l*>(UhE j1#$Ac!J`%#@5e$_F??!foA3nBM( V?@J-RHQ??@S!R?P| llHL6VLD5E+v;*AʙH: 8snP%$? k?Q? \?f4_!_t_Wr5_! R,U3OC@IL?@4~Kz?P)Oy޾ T!]]>#IAU@܋?@2Oa>?@#r`5B?@*ݷ?P6 t`  >B?\oEt# ŖoZu 0Nu;Y:|8>$# JpU>##<?2& ?5bbbz@b#ANi&bu$'h 2N贁N[2$@ LX"D&v(&m$ :;T'm"*B#d1d15 5`?Co yrigTt (c)020090M0c0os0f21r 1a0i0n.0 Al0 8s2e0e0v0d0"]1"a4M-/p3 p72&l>0>Uhh= 1#!eJ`#&@NTM\jh1B,RBM(!JoUy{O_ e@ So4(DF^Tw?@]֝ä ?Nk"?w_KT\T+\(Kj?ӷjmlhj -`\TPQE\Uu?i,St_o u~!XEO9= T?@L;uQ_Pm"rA @3sjQ1lğ= GoYniAlePE9 MX'w'0UrJ^N!M$|A vzHD  # =hj4>T!]]>#IAU@܋?@j?@2r`5B?@^ݷ?P6 t`  >B?\oEt# 6ΠZu 0Nu;Y~:#&}>0m8>  PJU2N贁Nwk?@ eL&A( 5bM(b[)h+h+$h&#[-M$#?& ?b$Z*'*B#O1O15 5`?CopyrigTt (c)02U0090M~0c|0osv0f2u1rx01a0iv0n}.0 Al0U |8s2e0e|05v0d0"H1P"L4M-/[3 [7&l>0>Uhh= m1#!S!J`#*&@PUy{_?NTMjC1gc RVMʣ(D#F ![?@"$. ?Nk"?+IKTLTcKjRlhj p= (*!)i,SO2Kes9T;QEGUFw6qX}__TM7fTZT\Dž}I_P^52O,ES"rA 0S# Es3iAlePE9 MX$Gxw'0UrJIN!4gA xvzHD  # =hj4>T!]]>#!AU@܋?@c_v?@#r`5B?@*ݷ?P6 t`  >B?\oEt# ap'EZu 0Nu;Y:|$># BJpU>#͙;? & ?5bbbz@}bAA& K&@ 2zGzt?"K@ L0"&N(bM)+TK/8Z*B<1<15 5`?CoyrigTt (c)s02009s0Mk0ci0osc0fq2b1r1aq0ic0n.s0 Al0 i8s2e0ei0v0d0b"5194M-t/H3 H7T &l>(>UhE=3Z1#E!J!@ENTMjN@1h(NoUy{OO e@ o)4(DF^Tw?@]֝ ?Nk_"?'_KD3\T+\(Kjjmlhj P\DiAlesI(=MXsG_'0Uzb6N-!%$0 sFEjHD  # =hj8>T! ]]>#!AU@܋?@*?@#r`5BW?@w?P6 t`  >B? \Et#տ|u l4RQu?]>I$>I# JpU>͙#<?& ?9bbbz@b#AE&bQ$$D 2zG[zt#@ L4"&R(^&I$Q)+]'I"^*Bh{.M#To1o15 9`?CoyrigTtk(c)k2009kM0c0os0f21r1a0i0n.k Al0 8s2e0e0v@d0f"h1l4M-:?{3 %{7&l>(>UhE= `51#I!J49fAn^ R)X f"B!Jui,SG?RSlOS u~!N]8-19= T?@L;uQ ?Nk"?YVTQRXQOnğ/=i n (\ wTiAaePE9 MXLg'0UbZiN!)$0 Lf`jUGD # hz8T YYT#BqU@5?@`0 ?@ t2?@?P} ։u`h?u# Lv3<@PT=d,2<<Pddt m۶YtjfUh!NUdI,@=#B!!u+`?CopyrigP}tg(c)gW20 9gM ]c os f"R!r 1a i n.g AUl0 (s#2e e v50d0+"!$4#bB-m)|# '?h==$&$#66 2j4$#=#0UB%3#3&50$^ #Q9 =#HAQ5D<KE%DdGg*Fj#aOb'*TATA4"1(3&Sa4% `2HAEBOiSHdiSi^PQ5 3FXm'.W'DŜ6-!40 VZUHLuD" # I>h(J TEI 3MU@jZ?@({~+?P >uA` ?u#jJ* )8* 9LGA )`G#dtG.$*G8BVj~>t  e t>"z "p{b+#7"J>U2zGwz?@9 S#>c&A@b(b)+,&" !$5N]#2T#k"6 "M"b)HF;'","/]#11[#`?CopyrigXt dc)020090M0c.0os0f21r0Aa0i0n.0 Al+@ 8s/Be@ej0vA@d#@K"ulJ Ul,aAaAC 5LU(#!Q(r!wW?@s80&9<01# 0IK A# ѥ,Og NEx]SiL5[ML&X39^PzQQ_c_ ?%YAQ)UEEU . K ;;\W)U I@)$_[.F&XA:jai%?@ 6?wL^ W-\/&T5Dꤲ8?Eg@SA?@ @ ?Nk"?I5`bmMohiy[7 K=F  %?j1&XIOD?@u@rLu7j T_ʹhLi,KV@8$Ȯ?@1x}b} yy_@){yEZJ]%8O@G \t;8j|c1}p?i @'WE"NO_T ZYAAekBp OOLJ}u?@9 mO"9=\/hQeel.%-+@mlփ?@U> "8?ɽ7yf\tOfj|A=$䚏Bp$za3ex@4Sa!6Wy'eU!a)#kq&ziM2i?IT%!Xh<'0Ub6502 ?}HD # =hj0>T h]]9 !AU@+3]q?@8i?@.!'?@\S۳r?P6 t`  C=?t#9sxZlRJ)u duo$>  J JU?'N<?& ?AbA@bNbbz87 5#,"b4$,"'b4$2zG7z?@L&5/G/Y 3%,"j&d,,"Rj*/1/15 `?CopyrigTt (c)f02`09f0M^0c\0osV0fd2U1rX01ad0iV0n.f0 Al0 \8s2e0e\0v0d0r"(1E],4Mb-;3 ;7&loUh#7 M1D hp  o%J F( dj!1B2 bdV.RiAbE9 MX|GW'0UR)N!!$a VZHD: # =h4>TB#]]9 TIAU@1q?@!9?@aww'?@տԌU?P6 t`  9F׿=?t ڰ#slgW ª%?)Zu Lhu!s8hAh hJU'N!?2& ?AbA@bNbbzc a#X"b`$X"b`$#2N贁Nk? "@L&a/s/ _%X"&,X"*T#[1[15 `?CopyrigTt (c)020090M0c.0os0f21r01a0i0n.0 Al0 8s2e0ej0v0d0"T1X4M!EQ#-0Og3 g72&l*>0>U#3 A y1vXD #p %J`#@.T'oo>hn56>fcRM(! Zך4_F_ b/OSϏHT >ɪ#f:?@*S)Y=> yy_@YjeeRT;Gq!Qh~n~OkzEMsZJPl -iU@SQEU"pL._qw;m;aU_ BnhX#rA 0X"IsTj߿kHhl!Qdok!(Npd 0Ale E9 MXXGB'W0U*}N!M$)Aj5 vzHD: # =h4>TB#]]9 BIAU@b?@;h?@ ?@F_a4w?P6 t`  /?t {/_  g?xRJu hu!s8&> JtU2]q ?=@ʐL&A@5b]M(b[)h+Ih&[#$"#?& ?AS/t)T#115 `?CopyrigTt (c)O020[09O0MG0c.E0os?0fM2>1rA0z1a i?0n.O0 Al0 E8s2em0ejE0v0d0"@14M#B-,?$3 $7&l>0>U#3 CE761$!; #p _%J*!ԌSU hneNw3󛍩(D#2q>@t|M?@a^!v:1 yy_@I56>[ŀQhnO:@K0hd7l aV@S8E8Vؚ㱫L{_pZ5X50U-0f:?@D?cHe-1>[W9k]geϺQ Y" KaĘ\Bqj]GRׂP_FR}LY5E:/U=uOqsR Y2JZ8 b G0Ale59 MXGB'0Ur:N!R$XA'5 vz_Hp>,ÿ;s ZH(GBF𸮏t# EOB 9 V~|d8ۮ @+W [sGU0O3;O >OߦOO}OrOMFXO 8O)#5O^(,R_,R0?8R36hR6NRH:x8O<T9ROB˾XS`K(S7IUFD  h$^T YYBBUF\.?x<F BP(?43^P? Vs V6gH?R\d ?8EB G 09gB`.Cloud,netwrskcaUins t,pa !i sa ! %e^ M%J 1Gg YR 1H?_^p Qwwx0w x3wxwx0wxwww xQww ww0wp wwwwwwwz pww/ p7^LDrag thuesapWonodwipe.b~߿~?? XAP7d??O\.ߗr3r\.CUG DF P# h @T(PYYUEUF\.?~?F~׻?P} <Y ^.B" N'O'*Q'R'S'T' *^ Y&Y u` ? "s'_":s"Ds"Ns"Xs"bs"ls"vs"s"s"s"s"'&&:&D"uN)*2<7)VU2^L[b1j2 ^`s" H3z3'N‚??lF ?ma[Z<` Ac@entColn@r3z[_b[[bNbbzI1dq9E 8AЇEO 24bYP{[`:BeR&nVB#32Q?]q ؂3Q8A*W1`Vis_MRXY%cPm!P5`12`݉`?Ap]y@igPt?Pu(@)?P20L`U9?PMPc@o`'of>bAr2`AUa@i@n% ?PA@l?P7gsbe*`e@v@d%Bd455uO#4[%B+@q~9p?@IBp7u@usPRD"J-D"t=2u0`B-1D"֝ruL &@BGm3ry=_"n4O N)9u`u `"AA b1O$u`B, ^aepcT<@o?Pm@sĴ@a>5SRTJAn@e@?aT]N@twBk?PD@vVbe)EяFE*UM_q|U۟e"4Fpd(aC l &&2::)BDD BRXX|bb2llbvv TNA5 rT&_Qj~}8pK!bdzӲ=`pM0 : D N X b l v%‡'_"D_"N_"X_"b_"l_"v%™2:2D2N2X2b2Hl2v2BS&2NC󨕃FkZV?F'IOғp~կˍW 2r033(FE9<QߐlzBO$ߪ߼߮(U9|>}>MR,AZl~(|9x uSV!+=  (UǎoC  (ָe.rMi>3LÔ  eD2(dv  Q!Uh!%5QU}4< ?VV$`fBh}Ȳ7O!<?F/*Ȳ/2sU~1p%)E+D>L?/Q<,6FE%mEB?T?f411%U\+:-yO?H1BdhPUifb}WSȊOt6XQ4X @ pp` k*`n`RPn`dxQdЯd79@#AUUiB+T.(T;)dH*d db$"Tt ,@AaiE)khp:j%56_:9c&ЩD3s͵NSY2a)k8la)k(8l|)k 8hm8_ZI۩Qy`Uee8^6JVAAD @^R` WShpCꥁs!`L ctsPzTq`ss wTyr"^RS` pu EqC#5#s SzbCRsqozA`BiEOO\_xX#Nsqe'2q[[!c0_ZˑU#|7t:}#/'_x # fHavU# 1H !eU iEQ % UH duD " # J U> hzi@T(iiJ\ UF~?F~?tP @Yu`?(.8uBbSA{szat? Cteb"0#$YE['?a&?.tb'|z酱2Q?AG}$&}qam{c8`Con0ect0rz 1l2z{{+` Li2?15-tzYaU#F131 ?WPa0t0r0)4;1Z7}`T5M151?UR0u0dB2g6Rz8%"Q-!c_C~#J *$&#FH-B;"2MC &BS{%ZMCQ-!dgG 1`?1py0i@h0 c)20RP9MB0c0os0fDDR1r8P11i2]. AL0lJ=WsRedP1v0dP]@>ֵDCz\MC2qP?_f[!?\.? ~:o -D~% IKMC&&UgyQh @ 1_`S0aP2BiEfoxoyXMGw'0cia&!|$0 vjlAUEu P-QyB:MCz?bkp Tbb-.(},8>8dup*ar%@68K]ou ÏՏ ?|>R9=PbtuYȟڟ x<w(LA7BUgyu]ͯ߯"}>%7GZl~uAҿ '%OHL_qσϧϠue kZV?F'IOғ %NMQdvߚ߬ߠui+.Q7Vi{Q"QucwHD: # h8>T ]]9 M UF~?F~?JP6 7@ZAAM ,'@' T'h'|']"' ' "  " '""'"'0"`''JuM`l? 'y""y"6y"Jy"^y"ry"y"y"y"y"y"y"y",y"&,y":/L/^"uh)!b_A@36Jte! i(Bt1 LJFb4D"FEB>fCJ[oC'N(?F ?"b96BhE#fCtoC2Q͞C@MEMJ3V8E@8;G2JoCQuAuA5 `B`?CopyrigTtk(c])k20 `9kuMPcPosPIfRQrP+aa+PiPn.k WAlF` XsJbUe`ePv\`d>`PoCQ! \l-OS WFfEP b$U9 fuXG_'0UHrũFZ!D0 fzlJ\>Uhqq]!!0!PQAcHQ@1S?Fȓ$,_q?^"d#e4Eq ^"3d]q 0!0"/"Q!0"fBJ4?F;W?FjlJ?FH E(>?NpKv7atuXad#hX\a3g6a0e!2 4#q E6?Fv9?Fb4!?FЩԏ挍maVv]2:{(?-yjI>P!Xj?FT꞊j?F'K?F;(嗟éT.kvd*ĮVq#(]HXEAr ?FK(umB)?F.~rYYH_amAáF+x(~*=į֯uhY*?FY.(v0zkd)D6GdSZpB{(i]"/M͐?Fߧ78ET+Lk ]D am++Tz&{+69[Ϟuf?FP$?F [13nٶ7gۣ挠Y,Idkim0H@eQY"ߤİuӧ?Fl?|f ͲKlKBG]fkϐߵAZV?F:?F* ?P$ 1EK3 3i{߮Gz~}Ԗ0>_NO5q :_" s3t? ט P&d2g? 41z3B2_qr5E~\.儐?FQ( BP >5 w pmD0VY l j٩ 3 UIPY?F3>Dx?Ptk= `K0z߂3S0kg; z0f=kVN?PX#Z3d1H-Z?F)$F\;X})挗J hG~W*fU4~%?FVFKL/GaH)r~(H  N/?t4ZA rGg?F4W eſ?FH?Ýi`)6¿l#kpc'??4FF\>FI(1 O怘Rrq SCH>t v|RuONHD: # h8>T ]]9 M UFx<?FAj?F~?FwQuu?P6 7@FA]A]M ],'@' T'h'|']"' ' "' ' " '""'"'0"JuM`^l? 'e""e"6e"Je"^e"re"e"e"e"e"e"e"e",e"&,e":/KuT)!bA@*36JtQ! 2l] 2t12zG57RQ57)\(1>RJCJ[SC'N'(?F ?^"b'96BtSC2B??088r0MICJF8;;G2J2SC@?JE=26S0#CSCQYAYA5 `2`?CopyrigTtk(c)k20 `9kMPc.PosPfRQrP)aa@iPn.k AlD` XsHbe`ePvZ`d<`P񾔝mT!l-pHS %WF{Vi AbdU9 {YXpG'0UFrōF!D0 fzl*J\>Uhqq!!0!QsAGHQCf֩?F1Qd?J"P#Oe4E] J"3d]] b0!\0"/",&JBJ2(B@?F,/k?F]?F8{# \*?LpKv7_tuX_P#_hX\_3?g6a0Q!2 4#?DEh?F~E ?F_pLVwMҏ䌍m_Vv]$A2:{&-yjI-H+ŕ' YbҖ.K?uAc9z^̰f5U?FF/`_`P \!b@ir_f|Ƣn y(Tf>rpd6ENj/-g?FRr?Fn^\K0z߀3S0k~mr{~.*{ S4K" =b™? C? "@wD#<2tr5EOK4n?F{׀?FBi䌗J hGW*fUÝ)k4Il RuF?FB5r?Fn?$Xp ?G'gH᷷?r~.H  N//4;KGۨI} yFa%?FO"Z/g`)l#&Ƚkpc%//2DF7?d>FM?MRrq LS3H>{v|R؇?>HD: # h8>T ]]9 M UF`0 ?F M  ,'@' T'h'|'] ' ' "' ' " '""'"'0"JuM`^l? 'e""e"6e"Je"^e"re"e"e"e"e"e"e"e",e"&,e":/KuT)!bA@*36JtQ!  \(\] 2t12 _p= 57]@ף57%)2] >JCJ[SC'N'?(?F ?"b'96BtSC2Q?0G88r0MICQJF8;;G2J2SC@?JE=Z26S0#RCSCQYAYA5 `2`?CopyrigTtk(wc)k20 `9kMPcPo%sPfRQrP)aua@iPn.k_ AlD` XUsHbe`ePvZ`d<`PRmT!l-pHS W$F{Vi bdU9 {YXpG'0UFrōF!D0R fzlJ\>Uhqq]!!0!QsAGHQ'n-?F1Qd?J"P#e4E] J"3d]] 0!0"/",&JBJ2G2,?F,/k?F}X?F8{# < ?LpKv7_tuX_P#hX\_3g6a0Q!2 4#?DEU: Z[?F~E ɀ;9C5 ?F?wMҏm_Vv]2:{&-yjIAim.H@eQW °A{?FH 6I_^ d ͲKlK~BG]fkߵy X0?Fjd?F*OzE=M2'-H+ŕ' YbҖ.KuAc!N\?FZf5U?FO/(Sÿ?P? \!b@ir_f|Ƣn? y(Tf>rp^N/-ُg?F6+:n^ºK0z߀3S0kmr{.*{ S4K" =b ? _C? @wD#<2:r5E1f.]n룠?FF[PBi䌗J ~hG~W*fU)k4R9uRuFpZ?Fn$Xp G'gHr~.H  N//4[/I} KKbv"Z/Ýg`)l#&Ƚkp!c%//2DF %>FM?MRrq kLS3H>{v|R?>HD H# h @>T(]]9 MT  UF|>?Fd2L&??FVR?P6 @ZfA]A] >M /]8HC8\C 8pC8C8C8C8C||C 5C 8" 5"C5$""C58"C5L"JuM` ?  "4'C"R"f"z""""""",",".,"B,"V/Kup)8!bSA_36Jtm! q$y BYt1B5A!EM!E*G[~By >zCJ[C'N'(?F ?7"b'96tC2Q??088r_HEyCJV8;Q;G2JB2C@?zE= BFS_#CCF~F$u?FNR?F~Sߪe f"l#ͽU>aſf"J3RRy f"l#>b@Ed3̀ͅap`L!  f$#p)bq65q p)CaAA5 `%B`?CopyrigTt@(c)@20:p9@M&pc$poKspf,rqr pYqaPipn.@ Altp $xsxreLpe$pv"pdlppT$!q$-Hc gFV$VibE9 YXG{'0>bUŽF!D0 UilJ"\>Uh"" !$!8!L!q'ArwHqI}^?Fwo?0je4EZeLdd?]e\DL"K""L"zBJT" Y?F]?Fo?F5? Ѭ:?1ipKv7tuXZlhX\Zexdg6gJ0m!2 4?#oD Um?Fڼt?Fɤ_i?F0>m* 9?F?eD;]D m++Zl?Tz&{si?69Vu9,"f?FXev!Jx W?F8+y٨HZ ͲKlK~ZlBG]Lfk&8}H ?F$j #?F?B?FH+g'Zl Yb*xdKuAc>j ?F-}JӦ?Fզ.ki]7aB< x!Gi@ir_Zlf|Ƣ y($M-wF ?d2huON{v|RONqNwHD: # h0>Th]]9 MP UF~?F~_?P6 dnA >IM .)B) V)]j ~   ) )) ) ) ")")2"e)~)JuM` ?E){"${"8{"L{"`{"t{"{"{"{"{"{"{",{",{"(,{"JU2Q?@M?CJOFA@!@HbʏIKFrB !RDJICB'?Vp BABbI2[GrBLrBOB-ICR SC9 _VICQQW;HB`?CopyrigTt (c)=`2`09=`M5`c3`os-`f;b,ar/`haa;`i-`n.=` Al` 3hsbe[`e3`v`d{`Pi @bU9 VHXWXA'2qpVtUIa fjlJ Q\>UhQQ]~ !!2!DEQ!=H^A@1S?FO$,q(P`"3 e4Es `"C ?]s Jt{Z rGg?F;mx>F9h E(>?NÝ*`)*f#퐲>+3cݛs a0g!2 4#@ES~%?FV?F4W eſ?F}G*H᷷Ļl#*لȽkpcXSH?F-Z?FF?FPL߯@J *⁈hGr~لH  NᵪS UI?FY?F섰a?F@\ K0z~**3S0k~Ä&~ԉ~$ARm}A\.?F:?F3?FDٳx?P+k= 1`竪3*{Gzޟg; z?ԉf=ks :a" F f 94FQ2! 3B2:9rt5EG~[ZVn-C4?F4?Pu>5 Οw ð}H 1唜2fi0ƱVX 23@0Bk{̒[mY*?Fuӧ?F?F* ?P% t1EC6G*ͲKlK~}>NO5 RԋS2Z#@cukǜ{̦Ouf~$l?F|ƯY,*kBG]fk0BO"/M͐ŧ78E [13nٶ7g"]D *m++仌imIلH@eQOY.(vT+Lɇk h!˿S컌Tz&{u69Rd~OEAr K(F0z?Fkd?YH_2mA B{لi]I'p1OjT꞊j?FmB)k.~rkéT.kܶĮ~+x~ل~*=u1O6?Fv9m'K;(-/m*Vv]BÄVq#ޔ]H//rP;W?Fb]/?F?J/pKv7*tuX滌 &ה`Ypl?GuSFjlJ?FH?#5~hX\~ g61!O3K_H8>X"s D')K'g F(uN1#āOXB CK @Q<>dlۮ |o@+H ~oMsG7K o PK ~["a `thi jI ]sOx |۩K :UFDf h-TYYU?~@x]@L'} V6lX-1u. Bj2u2Z2j2#u9r#ULH/MZ1+B#AD5 60`Vis_SE.cTm!#20AD%`;Copy<0wigTt ?DU1f@M)@c<0o+@'ofdBUArX@AUad@iV@n3@ f@WAl@ \HsBUe+@e<0v@d3@J@=## A G?9#"n"Ea&444 70#AHB53_lj#SV6U8l>(UhnE / J$&9"(Fn_g5Fe#pheo'r#T X!! Jc0xo)vR2'"U7A%O3W_7rr5-6 `F2 Vrqu\@|Q:0b)`R@As)@E %T@xd@Di  ei=G]U6Tg'0"q)V!DHAn 6SWaH>w* O`EW )F8u#7B ` Ȓed- @x PUFD  h(^TYYB UF\.?x<F BP(?P?Xv B6u6  T^ThWZTTȅHBU?? ?B@L&d2?J-[(m(K.sU!&/")ҍx;(  0KB` Bridge,n&0two0k(0p&01pP=1al(0d&0v 0c@&0 [1^P| ( G&e WPW"*U---?-. wwwowwwp~wwp!wxxp}wwhd:lww w pvw>ÿ@qZ@E?DFp6@rR$Sn0!u@`i-FAD"BRuL @GCD$]QO(gR_"|i& 4O N)9u`u `"[bO$]u`J425)3Ga171`Vis_PRXYcPm!#5n`46B.R`?CopWyrn`gPt@u(~`)@20`U9@Mn`c`op`'ofbar`aUa`i`n @WAl` hsbUep`e`v pdR13d45*8=363@tFF B4B#30UrC]Vw,7%$T!nLPLsT<`o@m`s`q>g d(aq;_=@TATA2hhbB)3*̈́b+ڄ8bq q200Dr81@a6s2+66u\L %BWQ(A.A[2BB]P@RbESTO$@6r23| e|8e5=_4&F3s͵NSYFețG@DugQ̗,@Ga cupgbE@*28ABTOopD"%J-.RRO(R$[3VÁ`R pasn`e T px``B| 0Ls'_"x#PG $UJ"bk B3U2brZTCfRr ïը8=vv_<H!U"D"=m0!D0!g!@2ÅbBЅ3/xԂb08beaea22Dr3 AAE|66v7 |8Ԑ`b-A-A;hr#zr{qV W!rA8T@GaKk ]]P@` USPa`e`lLsaQi` E0u n`p`e`TbEXew` —T``8` D pvbT3^r` MSb Bbd`5ed;YRmM`nf`c"`u r88eQTAPbd Nm@Te@h=O! P`rxAx8eb`m +sbeXsuĨ9KuAe;S`uJB Sri`a /TTh//A/L`ch{/Ҡ///Blpi`[/@?#?FR`oS?a??uNwbkl"aXb`K?[It`adp s*OT]]9 M JU@x2zGz?@MJA@eb#z(b),+,&J[(.?& I?A$./O%B!!5 g`?CopyrigTtZ(c)Z2009ZM 0c 0os0f21r0>1a0i0n.Z AlY0 8s]2e10e 0vo0dQ0!$$-# '&%?6iie59 6X7'K0UpBŁ&!$K0 'F;JlJAh h7!1!Z@vnǣ f, <AA#  IRvVJ:'BP(?OS spBlU^TURUEUr\.G\ZY?PuPիQ,5U҄Q[pB.aYU520_BU"rA 5#cHD: # h4>T]]9 M JU@1&d2?@Vj?@҄BP(P6 ]AJuM` ?ju#t  k]It=W(\ZIRUIl">2zGzw?@MJAw@eb #zb](b%)2+)2&J[/.w?& ?A$T4/U%B!!5 g`?CopyrigTt (c)020%090M0c0os 0f21r 0D1a0i 0n.0 Al_0 8sc2e70e0vu0dW0!$-# e'& ?6iie59 6X7{'0UŇ&!$0R -FAJlJ8>UhAA 11!T2 $S<cV{ WR~VJd2L&?@ubX,X ]S fR#mS [ÐڱQE^Fh4__ K&oeX5:f'l6 XYePY?ۭsHMQ5aZjoohY}aUVeEVx_;"rA #dsHD: # h4>T]]9 M JU@|BP(?@h4WFP6 v>JuM` ?)uJt  U]It=W{GzUIR]I%l#>m2zw?3S@MJA@eb #z.b( (2+2&J[ (p"?& I?A$ 4/U%B!!5 g`?CopyrigTt (c)020%090M0c0oKs 0f21r 0D1a0i 0n.0 Al_0 8sc2e70e0vu0dW0!$-X# '&?6iie59 6X73'0]UŇ&!$0 -FAJlJ8>Uh 1Z1!Z@o.rɩ  <uCB] WRVJ@ ?@bx ]S ؒQ#hY))QE^jϵZ__ CaX5a9XYePXRmScRU5:]mxc_PU"]rA #dsHD: H ih(>T9 M3JU@xJuM` ^?5ulbSD_Jt bstE>2zGz;?@MJA@u+b+&K !JS"j& 1"A.b+-,-/*B!!5 `?CopyrwigTt `wc)5020A0950M-0c+0o%s%0f32$1r'0`1ua30i%0n.50_ Al{0 +8Us2eS0e+0v0ds0ib =L!XY'0U Bj&%0 :lJ Uh*M[A[A 9A Z1:'BP(?X Y s BQi@JSv?@bX, IYwYQ!i )\(!!U31^Fh4I_[_ p= ףuXEfl6 TbYHuX _Vgj_aZ(oQ !UAI҄AK B\%QAI@h4GFHlQbY{uXAo ].Oroa_(miY"@ _?@-BQȠ\ p_\oR\uXAppD`Zsƌ uXEOO_\HD: H h0>Th]]9 M JU@$?@-#?@%G֖g?@q;Ƙ?P6  n>JuM{` ?5 uJt  -|ߥ_Et9S8-zENسא\Eh)Fx%[v>2N_Nk?<@MJA@cb]b)++&J"< u) ?AHb$z@J+%/F%B!!5 c`?CopyrigTt (c)302`0930M+0c)0oKs#0f12"1r%0^1a10i#0n.30 Aly0 )8s}2eQ0e)0v0dq0!(Y$-3 7x&+0b59 6X7G'K0UhBx&!$Ia F3JlJ]Uhz11Z@S3   8gF/_ M ARnVJ!49BYOPBRWSMRUE:]|`X?\QRYl>Q5U/V@_YQĈU2(_:UrA cHD: H h0>Th]]9 M JU@!\?@JI?@8HL?@VG?P6  n>JuM{` ?5 uJt  4 ^sEt9SPDEN׈]Ehoþ>2N_Nk?<@MJA@cb]b)++&Jޱ< u) Y?AHb$z@+%/F%*B!!5 c`?CopyrigTt _(c)302`W0930M+0c)0os#0f12"1r%0^1a10i#0n}.30 Aly0U )8s}2eQ0e)05v0dq0!PY$-,3 7x&+0b59 6X7G'0UhBx&!$a F3JlJ]Uhz1h1Z@Pg   8gF__  ARnVBJ49BYOPBRWSMRUE:]?{^{?\QRYl>Q5U/V@_YQU2(_:UrA cHD: H h0>Th]]9 M JU@F5x3?@5yF_?@%G֖g?@q;Ƙ?P6 n>JuM{` ?5 uJt  a8~4Et9SuEJENسא\Eh)Fx%[v>2N_Nk?<@MJA@cb]b)++&J:3f< u) ?AHbʣ$z@bb3?bfb)$%/F%BB115 c`?CopyrigTt (cu)>02`09>0uM60c40os.0If<2-1r00i1a<0i.0n.>0 WAl0 48s2Ue\0e40v0d|01Y4Ť-3 7x&60b59 FX|7*G'0UsB)x&!$aI *F>JlJ]Uhz%11Z@S݆ f  8gF_  LR)yVJ49MYZPMRbSXRUE:]|`XJ\Q]Yl>Q5U:VK_YQU23_EUrA cHD: H h0>Th]]9 M JU@ ~?@gŬs7.?@%G֖g?@q;Ƙ?P6 n>JuM{` ?5 uJt  YoDt9~S-/ENس\Eh)Fx%'[v>2N贁Nk?<@MJA@bb)+R+&J"< u) ?AHb$z@J+%/F%B!!5 c`?CopyrigTt (c)302`0930M+0c)0oKs#0f12"1r%0^1a10i#0n.30 Aly0 )8s}2eQ0e)0v0dq0!(Y$-3 7x&+0b59 6X7G'K0UhBx&!$Ia F3JlJ]Uhz11Z@S3   8gF/_ E ARRrRJ!49BYOPBRWSMRUE:]|`X?\QRYl>Q5U/V@_YQĈU2(_:UrA cHD: H h0>Th]]9 M JU@ ôOS?@S !p?@%G֖g?@q;Ƙ?]P6 nAJuM{` ?4 uJt  M:AEt9SENسא\Eh)Fx%[v>2N_Nk?<@MJA@cb]b)++&J~"< u) Y?AHb$z@+%/F%*B!!5 c`?CopyrigTt _(c)302`W0930M+0c)0os#0f12"1r%0^1a10i#0n}.30 Aly0U )8s}2eQ0e)05v0dq0!PY$-,3 7x&+0b59 6X7G'0UhBx&!$a F3JlJ]Uhz1h1Z@Sg݆   8gF_AR M ARnVJ!49BYOPBRWSMRUE:]|`X?\QRYl>Q5U/V@_YQĈU2(_:UrA cHD: H h0>Th]]9 M JU@]C}?@8?@%G֖g?@q;Ƙ?P6 n>JuM{` ?5 uJt  [J}$Et9S=d ENسא\Eh)Fx%[v>2N_Nk?<@MJA@cb]b)++&J"< u) ?AHb$z@J+%/F%B!!5 c`?CopyrigTt (c)302`0930M+0c)0oKs#0f12"1r%0^1a10i#0n.30 Aly0 )8s}2eQ0e)0v0dq0!(Y$-3 7x&+0b59 6X7G'K0UhBx&!$Ia F3JlJ]Uhz11Z@S3   8gF/_ M ARnVJ!49BYOPBRWSMRUE:]|`X?\QRYl>Q5U/V@_YQĈU2(_:UrA cHD: H h0>Th]]9 M JU@Y ?@fJ7%G֖g?@q;u?P6 >JuM` ^?M uJt  (N7Et9Sp%6ENس\Eh)Fx%'[v>2N贁Nk?<@MJAw@cbWb)++&J:3f< u) ?AHb$z@bb3bOfb)$%/F%B115 c`?CopyrigTt (c)>0]2`09>0M60]c40os.0f<2R-1r00i1a<0i.0n.>0 AUl0 48s2e\0e40v0d|0@1Y4-3 7 x&60b5(9 FX7*G_'0UsBx&J!$a *F>JlJ]Uhz%11劵Z@S݆ Y  8gF_i  LRyV J49MYZPMRbSXRUE:]|`XJ\Q]Yl>Q5U:V K_YQU23_EUvrA cHD: H h0>Th]]9 M JU@$䣹?@R?@%G֖g?@q;Ƙ?P6 n>JuM{` ?5 uJt  >b3Et9SWENسא\Eh)Fx%[v>2N_Nk?<@MJA@cb]b)++&J~"< u) Y?AHb$z@+%/F%*B!!5 c`?CopyrigTt _(c)302`W0930M+0c)0os#0f12"1r%0^1a10i#0n}.30 Aly0U )8s}2eQ0e)05v0dq0!PY$-,3 7x&+0b59 6X7G'0UhBx&!$a F3JlJ]Uhz1h1Z@Sg݆   8gF__  ARnVBJ49BYOPBRWSMRUE:]?|`X?\QRYl>Q5U/V@_YQU2(_:UrA cHD: H h0>Th]]9 M JU@֤M?@ yo?@%G֖g?@q;Ƙ?P6 n>JuM{` ?5 uJt  ߸ Et9S)hBDNس\Eh)FxO%[v>2N/Nk?<@MJA@cbb)+R+&J:3f< u) f?AHb$z@bb3bfb)$T%/F%B115 c`?CopyrigTt (c)>02`09>0M60c40os.0f<2-1r00i1a<0i.0n.>0 Al0 48s2e\0e40v0d|01Y4b-3 7Ax&60bP59 FX7*G'0UsBŔx&!$a $*F>JlJ]Uhz@%11Z@?S݆   8gF_  LRyVJ49MYZPMRbSXRUE:]|`XJ\Q]Yl>Q5U:V@K_YQU23_EUrA cHD: # h4>T]]9 M JU@xJuM` ?uJt ASt=WJRb~li>t2U?=@MA@+b + &J[N#a?a& ?A)BB!!5 g`?CopyrigT}tZ(c)ZW20 9ZM ]c os f"R!r 1ai n.Z AUl90 (s=2e0e vO0d10!$ę-# 'a&?6iiek59 Կ6X7'0Ŵa&!|$0 FJlJ UhqMAA ])A !4Ja-'Z@h4FӃ f <{Gz#A OR|VJ:6]].rM__Z)\("UEC@ ?@-bȃ S 1 `#`YR\Xk5^jZso!o ̌aX5U'BOP(?gks#dT[RUUSv?@n aX,flYwq%lSXn?Fh4  p= ףXAYfl6\`YHzmPXAV``ʼ_Z(QYAY҄agklQbE26_HU"rA _H<>gI+s nsMg@q3JFXu#ǁ"7OB  9 Y~dۮs o@+_ oKsGh$'fX K j\ ƫNؗ ~ ~8 $ ~$xKZ$(ʐXUFD  h(^TYYBBUF\.ߗ?x<F BP(?hP?XV 55r55 Jbggah5Zg\ȅH?8?f)B@L&d2U?$-5(G(%.sUm!k&/|(  0O~B`"EtPern t],4wo k0p"i0#al*0d v0c 91^| ( 5G&u  * AAS ~pni'TDrag onut he]pe,nUdu /p64lies9Lt]wrkcQm tOfTly lGo_"imdO.bL&d2~?K?=tp'I??C\.r3?r\.CUG D  # h L^T4YY  BUF\.?@L&d2?@~?PYU^f6.NGOGPGQGRGSGTG\G]G^G_G`GaGbGcGdGeGfGgGQJiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGyGzG{G|G}G~GGGGGGGGGGGGGGGGGGGGG736363u` o?%$7G-7B<7BF_G#BP7BZ7Bd7Bn7Bx7B7B7B7B7B7B7B7B7B7B7B7B7B7B"7B"7B"7B""7B,"7B6"7B@"7BJ"7BT"7B^"7Bh"7Br"7B|"7B"7B"7B"7B"7B"7B"7B"7B"7B"7B"7B"7B"7B"7B27B27B27B&27B027B:27BD27BN27BX27Bb27Bl27Bv27B27B27B27B27B27BH27B26g6U6666MBuIU$FrL|Lw&1~rW]@Es  ^7B( ( ~s!v̨ q?@h!;p`:1P IFPr,s~rD1''@A3{:18E9 'N( d?pxh` Acn CS lS r3!ۦpڈ٦p1bbbz0q@!PZY<^pbbNbb™qb"b7+d||u@+@Q Q?@G}x^?@IH‘BMB6}Vu]`-qZBuFgw#/s;}#B(0t@I9u`u`"TYYbzFqDuK`EWAαq1W`V sPwXYEcPm!#528gX1`U?ԑp r gPt1()12U0B91M cq Eo{ o5ԑr] ua iS nE J1A5 l1-sUe{ eq vdE*E WN~`~u01 l2T'sFt5ӤӨὭ w?gߏBq&W,s^KVVTK~u5TԑnI e5TJ Nt uk1DvLN'9K]utc担c8E&cNI[mc}c濵c0BcewcFլcc晱6HZB_z\\Fq ////_ qR/d/v/_///\`//?c+?=?O?cn???@_???_? OO\VCOUOgO_OOO_qOOO__'_9_\\_n__\픱____ꌑ__o_3oEoWo^;t~ooob!ooo\폰,^#M_q\$\%@\%7I_'i{\(ԏ\!) \*>Pb\+\ϟ_,>@c]o_/ů\0 \ 2DV_2v\3Ͽ\ +=5K]oB\6Ϥ϶\7\8 2D\!9gyߋ\:߄\;<x?#5m`3ACTE5[ɳaj1,.tu[񼱼[[_[[([ [CZ==2ffyѭ";;N"""@#2WWj2d`e U@s` M;aiuf,pueQ` Eq0ipeith 'UPouoN:mb>Pb btq' P,r9! / u'EsorK"t=h;/M/$\l/~/A s}-.1 '7`1^/?!' S6"i,l 0?B?`>Th?z?X[Q'Lc,(?`K???B*"liigOP<XLHOZO' RoO_eZOCA8wa' BEp&$/qf`Y4$_8]Sra e\l,)1@#` fi!bty_l_~_W"` WTPQ@^2` Eh6"*lt\a4 l.c`_O|N(,TQw`#|`p/xo6_IPsAd<Told?o/S:bEd +sc*lAxTf;'qmBi tCv9 I[7!3oW='/) fsPt@$:PftMpCnp㏊gTˑ'fmuQ SF l!M_(|/@"ha  c%>UcAXE_`>Z ** [j$w1tt>,3K̗?nؑ`tQgctRm#ZC̗,@_Cc%SuK`rϔ? h!b M^b!bC%_5Ÿ(56c_t&YF3sNSYF??Eq! $U dkV@~?>? ijTMwu `b|tϔ?b+cU@L&d2FX ~u~ߐk7լj(ߎp.AɯD c0I.NO Pl$u1S>GAGAKaaX]8eԁԁrݡݡiaiaa lc/a/aQQAAIIA0,j=al$BAe"!A#Mwx!g%9!@QRQ@ϒ^^!:q"v}#rq01RQz3{| +}*~t36 /*&03!@2M3Z4x|Ut6񡊁7񡕋8񡌛O:񡎵q=>?R0i[8s]&?-ܑ-!lVőncb[r ]#d%+`[ ob Q'eu"$I7 | "#####!#2";#ԁ#ݡ#ia#o#|###/a#Q#A#I###a##A##%#x##L#Q#f#s###q#Q##########)#6CCCPC]C|CwCCCCCCCC`CC "&eR"eR2eR 2eR2eR 2eR*2eR2eR>2eRH2eRR2eR\2eRf2eRp2eRz2eR2eR2eR2eR2eR2eR2eR2eR2eR2eR2eR2eR2eR2eRBeRBeRBeR$BeR.BeR8BeRBBeRLBeRVBeR`BeRjBeRtBeR~BeRBeRBeRBeRBeRBeRBeRBeRBeRBeRBeRBeRBeRReR ReRReRReR(ReR2ReR2(ݤ>2&̶Pl~3+CkߏH2ݤH2&̶ 1CU4}XRoݤR& ̶ F!R8JݤR*&̶R(ݤR&̶TRݤR&̶Xj4!X/|/R//ݤR ̶/0/B/!?j/E?b\?n?ݤb*̶// ?1?3?O b%O7Oݤ b̶???xAO?ObO_ݤb̶yOOOAQ|_O_g__{b ̶B_T_f_ aEo_ioh|ooDr ̶'qo o 4aWo2iEW ̶oooq j Sւc ̶eďk׏&! !̶fx.il٨h ""ڡ2D 42{Vmi{1## Dn2Dk{$$ӯ寉Ŀ o 4D% 9%Rֿp،* &9&Se wVߟzqߟߨU'9'.@hCrVh(9(1 s1Xh) 9)!t!*1*9*"w ?zuy+9+#@RdCgvz(B"&,9,$ - /U0/wC/U/|8 26- 9-%!///x ??EH2*UF.9.&// /c1?/?y??XBV/L/'d?v??,AgO?OzOOXfRV0L0(-O?OQOA0_yOT_{g_y_h/bf1 \1)O__Q_B_o|0oBoixb*yv2\2*__ _ao oo}o 2rB3\3+oooPqo~ 4\4,QcuTxĘSԖ5 \5-,>fATf 6\6Gv: 謫/ /Vf7\7k/ПӯȮ/8\8k0u=xw9 \9k1>PbAϊeτxϊϱ@*:\:k2 + S.߅ASߨz ;\;3Ϙ߆ CS<\<4߽߫a߂ = \=5bt*ed*>\>6+= O.wRew-?\?7@.@g(w&@\@8  /08"@6A \A9N!////82* FB\B:O/a/ s/1R?/v???HQBFC\C;?*?s__ _;avo_ooo(xurvGGK>oPo@q?ocv>HɌH@)qQ,?QxIIdTtsTssSrU} @ `EtherntnrAnkssAs%t sΑϐΑor#r` %P&o]ptis ߢ``N `TWORKÐS{AEÐPOR2I `Q2 ia1ṃ'0Uyu1!1 0tbų)zw tر)1 ۲eʡ0(&100@w뷤H1wLĭGX+L_W8LWGEDrDC  @   !"#$%&'()*+,-./0123456789:;<=>?>A*BCheATe(eJ\U@L&d2?@0~{??@?PYmUU%.u`o?&UH&T"""u,)ct)! q-tm!ʇ"L5 .&b$&"} U}!Uɤa/ '19 b {V?`%2H6"\>3c6?c82\.?A?9[B>30/D?P?y A@lBw0uC񁠙A>9D@SVCA'1X7i`"`?CopyrigPt(Uc 09uM PcPosPIfRQrP=QaPiPn AUlXP Xs\Re0PePvnPd"Z,AuL-$cA2T%c3C#lBF{L u,G"aOCTOU_2sOU!OOOOO_"_4_F_SO*^x_b._o_p__ ooARodovoooo_j_oC.@+k@asx@j`D.mѐBǏُx!0BTfx"ja.ӟ7 -?Qgx:A̯ޯjbu._qxl jeB.k!xґ.@Rdvjf ".5  ;+=Oe>s8jg/s2)N@7/N?[/0p/K///Ns!//@ ??0?B?O/jht?B^?O?P?B[? OO1nsNO`OrOOOO?"jiO?bn_o'_g`<_R{]_o__~sj_____o_6j@or[ ioopo ooo s,>Pbtok !3!);Mc!s6!ȏڏ@q'"5 LYn"ɾ"s1 .@Mhmrײ#ԯ!#/#sQL^pnؿ=$%e:P$[mϕ$shaψ 4o>ߣY%@g~߶%%sq*@Kf:rp">N!/=(<(//-N(?HJ/\/n////Js/;BN)/O#?c@8?N[)Y?k?}?^)XfѰ????? OD?2jt38b/.J~8/2SN4a/x?/0/K4///N4X?$?6?H?Z?l?y/Z?R^5@?O?+POk5!O3OEO[n5mh.xOO@OOOO?j_ib~6-_DoQ_`f_B|{6___~6x__oo&o8oE_"`jor7oopo7oo'79DVhzoƚ5랁8]2H8Sew8ʑΏ,6Q9_và9˟ݟ91"4FXjDwʄ·:ů ܿ):1CY:k,Qv пݯڅg;+BOϏdz!;ϗϩϿ;a$6C^h<ߨ<%<7qBTfx 3=@=Qcu=^@**4O.>]tB+>.>8ġ 2DVhu :!<">?/'0KF /1/C/YL?iH*t//////J3A\eB^@)?@OM?@b?x[@???^@X???O"O4OA?\jAmlRnAO_OPOkAOO _#~A5x@_R_d_v___DOz_1r~B_ oYp.oDBOoaosoB\ooo oo o(2 Ma^uC!CC 0BTfsD؟%D-?UDg(1rُ̟cE@'>K`vEEȎAد@ 2?ZڐdFϱƿBF !F3Q>PbtφϘϥ"/G W,BGM_qGZq߶ & 0KHYp} HHj .@RdqI#+I+=S.Ie$# TUHL5D" # =h @^T(aaJB [U@L&d2?@~?P e.N Q  m>uA` _?`N  Y c$ A.Y8>uQH>tEt#bH ">U.%>R.#N-7/de!#?A. \|#&/,?\.5?IA@/B[|# 'N(#AxT`?CopyrigXt(wc)20(@9M@c@o%s @fB Ar@GAua@i @n._ Alb@ HUsfBe:@e@vx@dZ@ V4 ?)o32TUA??)77se<-#v26ZbhafYv2r|cVqQN "QQQdl5C/oAe+(dVd>lrd "!s(8r4."%S(QVouodC~w.N}" (-DT!I@[0v2rzCsc "oP%3}`wȄՏyE|?v2>E *P&ai7HD H# h @>T(]]9 MT  )AU@L&d2?@W~?P6 $LA n  JuM` ?8* M^ K*0u:Jt7 StJb)>JU5 JD-//!X#V? .B\F#k&/k,?\.?;IA /[F#Y!3/ g"Ai @@2'bH42F/ -o31/!`'; J`U!`?CopyrigTt(c)2009M0c0os0f21r0Aa0i0n. Al,@ 8s0Be@e0vB@dH$@V o4 x?)eno32TUA?2IaH@2U6TO<@2U6X7ibE9 &Xo72'0BUik&!d$0 V1ZlJQUhhf5`'1@1Kdo30C^*Va&JQ&dfl64iAc7FlUnbi:(}m (-DT!;@-0@2rdUj"Uc60eE3&m9GtZTe%|&ov+=~u @2stktbqvu@<&]ew7UHLD  Jh0TlE>M U@L&d2?@W~?JP jJ %A Q"2  .>uA` ?E_  (< _Z&?uMt>p/b ">tq bo>t6  }配>U2TmUg!?#@9 U#!"/ Aw@"b)+&> !v?(t($#>_#2( m"6 G"\"b)H;'"bu3z=&b3~8/D_V_8E"lJaUl~X'4M1!S(t!?@9j# p}j# K$(°b`0w8-DT! lq0$#qj{jr}4k (Mt6 P pp@U<r(5%8:dfl6/wkrvQ uC EW`#0!y0!yD#|ud)<$ooooQdQAuddT8 %9oeS(<@EYeCw<ȏڄؙhjsu qyoNK$ i 8_\H>+s !SFO^? F؜Zu#2K <qB9h4K ]aۮ 6@+p 8NaG𘡁PxPh x u? RUFD  h(^TYYBCUF\.?x<F BP(?P?\Xt3 D5S?>?5%6qW{qk66b6HCI6CJ6CN6!C&aS6/!C9&R6M!CW&L6k!Cu&16!C&a26!C&36!C&46!C&561C 6a661C)676=1CG6 6[1Ce6 6y1C6a 61C6 61C6 61C661C6!6ACFh9hC7F6KACUF6iACsFa6ACF6ACF6ACF6ACF!6AC Vd9dC'V6;QCEV6YQCcVa6wQCV6QCV6QCV6QCVa6QCV 6 aCf!6+aC5f"6IaCSfa#6gaCqf$60aCfȅU?of?Z0Bc@L&d2?"}3xEx#~sUkqiviҍrx  0bEB`Hub,netwopkpppri hal*pdpvcpp-Qa| xy3U5Gv\ NP?U*U---?-ppwpwwppw׆%p6ppw pwwww }σw ^?w wpwp pd_&wpwwfDrag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aabx<οL&d2??9GΑsп=t??\.r3r\.CUG D # h L^T4YYT UF\.?@x2" $9u`un `"0Yb!u`$"%؂#UQ!'1`Vis_PRXY'cPm!#5P46ޖPg da +_Pb1b1"(Ɣp2)Ӕ2*R+FR"((Rb(!SaDc"76u&`~PG1"1 0&2k@c4p5,CT@Db"5 UaAFUQS_$|lF3s͵NSYF'U;0Re>1,@UQP)epzp51S(("(AT?sR !U/!/keF/X/Ae`'e^//,U SbiPa??g TT]]9 M JU@x2zGz?@MJA@eb#z(b),+,&J[(.?& I?A$./O%B!!5 g`?CopyrigTtZ(c)Z2009ZM 0c 0os0f21r0>1a0i0n.Z AlY0 8s]2e10e 0vo0dQ0!$$-# '&%?6iie59 6X7'K0UpBŁ&!$K0 'F;JlJAh h7!1!Z@vnǣ f, <AA#  IRvVJ:'BP(?OS spBlU^TURUEUr\.G\ZY?PuPիQ,5U҄Q[pB.aYU520_BU"rA 5#cHD: # h4>T]]9 M JU@1&d2?@Vj?@҄BP(P6 ]AJuM` ?ju#t  k]It=W(\ZIRUIl">2zGzw?@MJAw@eb #zb](b%)2+)2&J[/.w?& ?A$T4/U%B!!5 g`?CopyrigTt (c)020%090M0c0os 0f21r 0D1a0i 0n.0 Al_0 8sc2e70e0vu0dW0!$-# e'& ?6iie59 6X7{'0UŇ&!$0R -FAJlJ8>UhAA 11!T2 $S<cV{ WR~VJd2L&?@ubX,X ]S fR#mS [ÐڱQE^Fh4__ K&oeX5:f'l6 XYePY?ۭsHMQ5aZjoohY}aUVeEVx_;"rA #dsHD: # h4>T]]9 M JU@҄BP(?@h4FtP6 >JuM` ?uJt  kU]It=W{GzتIRIl#>2mzw?3@MJAw@eb #zb( (2+T2&J[ (p"?0& ?A$ 4/U%BB!!5 g`?CopyrigTt (c])020%090uM0c0os 0If21r 0D1a0i 0n.0 WAl_0 8sc2Ue70e0vu0dW0!$-# '&?6iieP59 6X7{3'0]UŇ&!$0 -FAJlJ8>Uh@ 11!Z@o?.rɩ  ~<uhB] WRVJ@ ?@bȩ ]S 9Q#hY?))QE^jZ__ CaX5a9XY@ePXRmScRU5:]mx_PU"rA k#dsHD:@ # h4>T]]9 MTJU@aܹ?@&cM?@5?@$D"?P6 v >JuM` ?qu#t  @@|It=Wn5_6uIRFIlI#>2zGzK? HJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A/.7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6#)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ# $<Ef4B 9b`fJ x۰Z @]0?c Q#Oc Q\}ȱ~aE:Õ)0:iG`iw*h<5a#j8oJiqze~EA#o>"]rA #sHD:@ # h4>T]]9 MTJU@ (?@hZ?@>TC?@ݿJWc^?P6 v >JuM` ?)uJt  It=WX IR?8IlRv\#>2zGz? HJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A(.?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!ZA!Z!?v"rA # sHD:@ # h4>T]]9 MTJU@?!Qw?@k?@BZ?@ib+iF?P6 v >JuM` ?qu#t  1It=W_OIRUo}WIlTy6ވI#>2zGzK? HJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A/.7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6#)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ# $<Ef4B 9b`fJ:O@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij? mh~EA#o>"rA k#sHD:@ # h4>T]]9 MTJU@P4K?@l?@u'?@ݿJWc^?P6 v >JuM` ?)uJt  {d5Z\It=W2;wEIRkzIlRv\#>2zGz? HJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A(.?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+Z lJ]UhzЎ!A!Z!?&sA#<# $BK jfJ 'j `00>oPaYc l]]beE:Ͷc0TbCcba`iK8K8h<5eg۰Zk(qQlqe~Ee@||`ai !hA'o>v"rA # sHD:@ # h4>T]]9 MTJU@#zUv?@f s9?@ә!?@8laxy?P6 v >JuM` ?)uJt  V"(It=W7:LIRE! YBIl p#>2zGz? HJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A(.?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!A!19b $<# $B 9b`fJ: muۘ]0:mOc ?i'A~aEesDͅ?c ? V#NeFaze<5e@|lVaiU3Lh`~EA#o>"rA #sHD:@ # h4>T]]9 MTJU@"z>?@^i2VS?@ˋ>WB?@=E?P6 v>JuM` ?)uJt  7It=WܯHIRݮIl$dvĤ#>2zGz?(3 HJsAeb #z (#+#+#&*Jp!p!5 g`?CopyrigTt (c) 2U0 9 M c os f"!rԙ !a i n}. Al U (s"e e 5v0d i!Em$}! (K2?b6 ?ALb4($I3/ 4/U%b-|# |'Yb6?Fiie<59 FjX/G3_'0UBb6Z!}40 aFuJlJ8>UhAA Ў!1!Z}'[- E|zo}#<b$,] VJ:@8Qw0RS S IBf>QE !?@\BU--# i[F @ h<53n:CU9fKo]o ڵ h5a9YUU aUUwiǤ]Q işeq5 h2r_U"rA 5#sHD:@ # h8>T ]]9 MTJU@IKY?@#v\?@(w)٫?@Q`m ^?P6 >JuM`lW? SuJt  o|MtA[_"oRMVYBMpry2VI'>\??\.?lFA8 J2llf?3 HRJB& @i7b#zv t# b( (+&B(ݙ" ?APb)4(z$CD3//&*115 k`?CopyrigTtk(wc)k2009kM0c0o%s0f21r01ua0i0n.k_ Al @ 8UsBe0e0v @ d@1H4-,3 7%bO&&i Ab~59 &&XG3'K0U!R&!4K0 FJlJI  ( sQsQ] 1heA Zl0|z3 0 @?/n' QE bR;bJ:]~^PsojRփUaE !?@q`0 0,c s!R'i e:}ɟh~5aef9oa|b c gT]]9 MTJU@5^?@hP?@5?@$D"?P6 rAJuM` ? qu#t  .9BWyIt=Wn_q8IRFIlI#>2zGzK? HJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A/.7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6#>F O @ie<59 FXG'0U`Rb6!}40 V+ZlJQI0h|G!A !1C# $I<EfB C`fJ x۰Z @]0?c Q#Oc Q\G}ֱ~aE:Õ)0:iG`iw*h<5a#j8oJiqze~EA#o>"rA #sHD:@ # h4>T]]9 MTJU@H?@6͍~>TC?@JWc^?P6 >JuM` ?juJt  HIt=WByIR?8Il?Rv\#>2zGz?) HJsAeb #zbU(#+#+#&Jp!p!5 g`?CopyrigTt (c) W20 9 M ]c os f"R!r !a i n. AUl (s"e e v0d @i!Em$+A(.?b6 ?AgJaT6` F !!l"zbAR +6ig5V181 ?2?;:C?'$4/U%G|# |'b6L3FL ie<59 FXG'K0U`Rb6!}4K0 V+ZlJQI0h|G!A!Z!?"]rA #sHD:@ # h4>T]]9 MTJU@Sw?@K?@BZ?@ib+iF?P6 v>JuM` ?qu#t  fd>It=WN6sgHRUo}WIlTy6ވ#>2zGz? HJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A/.?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼#FO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!A!1lL# $<EfB 9b`fJ:'@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij mh~EA#o>"rA 5#sHD:@ # h4>T]]9 MTJU@t)H׾?@Ȑ?@u'?@ݿJWc^?P6 v>JuM` ?)uJt  ُuߓIt=Wί IRkzIlRv\#>2zGz? HJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigT}tt(c)tW20 9tM ]c os f"R!r !a i n.t AUl (s"e e v0d @i!Em$+A(.?b6 ?AgJaT6` F !!l"zbAR +6ig5V181 ?2?;:C?'$4/U%G|# |'b6L3FO ie<59 FXG'K0U`Rb6!}4K0 V+ZlJ]Uhz!A!Z!刭?&sA#<# $B jfJ 'j `00>oPaYc l]]aE:Ͷ10TbCcba`iK8K8h<5eg۰Zk(qQlqe~Ee@||`ai !hA'o>"rA #sHD:@ # h4>T]]9 MTJU@?^oO?@^?@ә!?@8laxy?P6 v>JuM` ?)uJt  L+It=WݑHIRE! YBIl p#>2zGz? HJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A(.?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!A!19b $<# $B 9b`fJ: muۘ]0:mOc ?i'A~aEesDͅ?c ? V#NeFaze<5e@|lVaiU3Lh`~EA#o>"rA #sHD:@ # h4>T]]9 MTJU@tr,?@Uw?@ˋ>WB?@=E?P6 v>JuM` ?)uJt  6j>It=WNFFIRݮIl$dvĤ#>2zGz?3 HAeb& #z *(#+#+#&UJp!p!5 g`?CopyrigTt (c) 20 9 M c. os f"!r !a i n. Al (s"e ej v0d  i!Em$}! (K2?b6 ?ALb4($3/ 4/U%ę-|# |'b6?Fiie<59 FX/G3'0UBŴb6!}40 TaFuJlJ8>UhAA !1!Z}'- E|zo}v#<b$,] VJ:@8Qw0RS S IBf>QE !?@\BU--# i[F @ h<53n:CU9fKo]o ڵ h5a9YUU aUUwiǤ]Q işeq5 h2r_U"rA 5#sHD:@ # h8>T ]]9 MTJU@^5=~?@,=Vݼ?@(w)٫?@Q`m ^?P6 > uM`lW? SuJt  ?aV_MtA[_=p'MVYBMpry2VI'>\??\.?lFA8 J2llf?3 HRJB& @i7b#zv t#]b( J(+&B(" ?APb)4(z$!D3//&115 k`?CopyrigTtk(c)k2009kM0c0os0f21r01a0i0n.k Al @ 8sBe0e0v @d@1$4-3 7bO&&i b~59 &&XG3'0U!R&!40 FJlJ $  (sQsQ] 1eA!Zl0|z 0 @?n' Q b7fJ:]~^PsojR֯UaE !?@q?`0 0c s!R'i ?e:}ɟh~5aef9oa|b c ؠgT]]9 MTJU@?έ?@=?@5?@$D"?P6 v>JuM` ?qu#t  &lIt=WA_I߃IRFIlI#>2zGzK? HJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A/.7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6#)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ# $<Ef4B 9b`fJ x۰Z @]0?c Q#Oc Q\}ȱ~aE:Õ)0:iG`iw*h<5a#j8oJiqze~EA#o>"]rA #sHD:@ # h4>T]]9 MTJU@Iq?@q֌?@>TC?@ݿJWc^?P6 rhAJuM` ?)uJt  0@hIt=WmiIR?8IlRv\#>2zGz? HJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A(.?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LhFO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!ZA!Z!?v"rA # sHD:@ # h4>T]]9 MTJU@ڮ?@7 ?@BZ?@ib+iF?P6 v>JuM` ?qu#t  JJ&qIt=Wr_hIRUo}WIlTy6ވI#>2zGzK? HJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A/.7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6#)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ# $<Ef4B 9b`fJ:O@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij? mh~EA#o>"rA k#sHD:@ # h4>T]]9 MTJU@=9_?@o(Ѿ?@u'?@ݿJWc^?P6 v>JuM` ?qut  V6>nIt=WgD_~baIRkzIlRv\I#>2zGzK? HJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A(.7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6B>F O @ie<59 FXG'0U`Rb6!}40 V+ZlJ]Uhz!hA!Z![?&sA#<# $B %jfJ 'j `00>oPaYc l]]|eE:Ͷ10TbCcba`iK8K8h<5eg۰Zk(qQlqe~Ee@||`ai !hA'o>"rA #sHD:@ # h4>T]]9 MTJU@BP(?@xQ8?@ә!?@8laxy?P6 v>JuM` ?)uJt  9KIt=WYGJIRE! YBIl p#>2zGz? HJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A(.?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXGB'0U`Rb6!}40 V+ZlJQI0h|G!A !19b$<# $BM 9b`fJ: muۘ]ᇄ0:mOc i'A~aEesD?c  V#NeFaze<5e@|lVaiU?3Lh~EA#o>"rA k#sHD:@ # h4>T]]9 MTJU@W?@M6N?@ˋ>WB?@=E?P6 rlAJuM` ?)uJt  1|It=WƯ:IRݮIl$dvĤ#>2zGz?(3 HJsAeb #z (#+#+#&*Jp!p!5 g`?CopyrigTt (c) 2U0 9 M c os f"!rԙ !a i n}. Al U (s"e e 5v0d i!Em$}! (K2?b6 ?ALb4($I3/ 4/U%b-|# |'Yb6?Fiie<59 FjX/G3_'0UBb6Z!}40 aFuJlJ8>UhAA Ў!1!Z}'[- E|zo}#;<b$k] VJ:@8Qw0RS S IBf>QE !?@\BU--| i[F @ h<53n:CU9fKo]o ڵ h5a9YUU aUUwi]Q ieq'5 h2r_Uv"rA # sHD:@ # h8>T ]]9 MTJU@&J?@_5+:?@(w)٫?@Q`m ^?P6 >JuM`lW? SuJt  y SksMtA[_eMVYBMpry2VI'>\??\.?lFA8 J2llf?3 HRJB& @i7b#zv t#]b( J(+&B(" ?APb)4(z$!D3//&115 k`?CopyrigTtk(c)k2009kM0c0os0f21r01a0i0n.k Al @ 8sBe0e0v @d@1$4-3 7bO&&i b~59 &&XG3'0U!R&!40 FJlJ $  (sQsQ] 1eA!Zl0|z 0 @?n' Q b7fJ:]~^PsojR֯UaE !?@q?`0 0c s!R'i ?e:}ɟh~5aef9oa|b c ؠgT]]9 MTJU@B?@-8?@5?@$D"?P6 v>JuM` ?qu#t  4E$p͡It=W_Lx4IRFIlI#>2zGzK? HJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A/.7?b6 ?AgJaT6` F !!l"zbAJ +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼#FO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!A!1lL# $<EfB 9b`fJ x۰Z @]0?c Q菌#Oc Q\}ֱ~aE:ÕO)0:iG`iw*h<5a#j8oJiqze~EA#o>"rA #sHD:@ # h4>T]]9 MTJU@*ӏ?@c?@>TC?@ݿJWc^?P6 v>JuM` ?)uJt  uIt=Wt]aIR?8IlRv\#>2zGz? HJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A(.?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!ZA!Z!?v"rA # sHD:@ # h4>T]]9 MTJU@"?@ "S/?@BZ?@ib+iF?P6 v >JuM`?qu#t  B?ͳIt=WF_p\cIRUo}WIlTy6ވI#>2zGzK? HJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A/.7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6#( DO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ# $<Ef4B 9b`fJ:O@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij? mh~EA#o>"rA k#sHD:@ # h4>T]]9 MTJU@d?@ 3\D?@u'異JWc^?P6 !>JuM` ?juJt  rs"It=WVIRkzIl?Rv\#>2zGz?) HJsAeb #zbU(#+#+#&Jp!p!5 g`?Copy_rigTtZ(c)Z2U0 9ZM c os f"!rԙ !a i n}.Z Al T[&s"e e 5v0d i!Em$+A(.a?b6 ?AgJaT6` F !!l"z}bA +6ig5V*181 ?2?;#:C?'4/U%G|# |'b6LLFO ie<59 FXG'0U`Rb610 V+ZlJ]Uhz!A!Z!?&osA#<# $B jfJ 'j `00>oPaYc l]]#aE:Ͷ0TbCcba`iK8K8h<5eg۰Zk(qQlqe~Ee@?||`ai !hA'o>"rA #sHD:@ # h4>T]]9 MTJU@69 Ğ?@l_n.?@ә!?@8laxy?P6 v">JuM` ?)uJt  sd It=W> IRE! YBIl p#>2zGz? HJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A(.?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!A!19b $<# $B 9b`fJ: muۘ]0:mOc ?i'A~aEesDͅ?c ? V#NeFaze<5e@|lVaiU3Lh`~EA#o>"rA #sHD:@ # h4>T]]9 MTJU@#&\?@ԋZ|?@ˋ>WB?@=E?P6 v#>JuM` ?)uJt  [It=Wq.IRݮIl$dvĤ#>2zGz?(3 HJsAeb #z (#+#+#&*Jp!p!5 g`?CopyrigTt (c) 2U0 9 M c os f"!rԙ !a i n}. Al U (s"e e 5v0d i!Em$}! (K2?b6 ?ALb4($I3/ 4/U%b-|# |'Yb6?Fiie<59 FjX/G3_'0UBb6Z!}40 aFuJlJ8>UhAA Ў!1!Z}'[- E|zo}#<b$,] VJ:@8Qw0RS S IBf>QE !?@\BU--# i[F @ h<53n:CU9fKo]o ڵ h5a9YUU aUUwiǤ]Q işeq5 h2r_U"rA 5#sHD:@ # h8>T ]]9 MTJU@\W>?@47 ?@(w)٫?@Q`m ^?P6 $>JuM`lW? SuJt  /êQPͰMtA[_Y#MVYBMpry2VI'>\??\.?lFA8 J2llf?3 HRJB& @i7b#zv t#]b( J(+&B(" ?APb)4(z$!D3//&115 k`?CopyrigTtk(c)k2009kM0c0os0f21r01a0i0n.k Al @ 8sBe0e0v @d@1$4-3 7bO&&i b~59 &&XG3'0U!R&!40 FJlJ $  (sQsQ] 1eA!Zl0|z 0 @?n' Q b7fJ:]~^PsojR֯UaE !?@q?`0 0c s!R'i ?e:}ɟh~5aef9oa|b c ؠgTh]]9 M JU@xJuM` ?Uu Jb[LgJt b{tM>2zGz?)77Os@MJA@b7sz}"b)+,& !5Jp"( ?& N"A"b)+ 'b##b#(J,J/B-  Q3M#9 \/??\.?!?f=Q1Q1Y7;m`?CopyrigTt (c)3@2`093@M+@c)@oKs#@f1B"Ar%@^Aa1@i#@n.3@ Aly@ )Hs}BeQ@e)@v@dq@O0i bz59 m6m?7/'0URś65a FTR#l:J Uh(] nQnQ]FQ AB1!:'BP(Ա?a sRYqJSv?@bX,, iYwla)q )\()4eEDnFh4\ono ?p= ףЈhz5Ufl6a \uiHшhnVgj tj(a(4eU҄Q kR!l8aQY@h4GF[|0aui{hFT]1rto(yQiC@ ?@-uUaȳl1rlb\߈hQ:WpZƟ ܈hU_oo)lHD:@ # h4>T]]9 MTJU@D//?@w 8?@5?@$D"?P6 v1>JuM` ?qu#t  z7It=W_iIRFIlI#>2zGzK? HJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A/.7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6#)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ# $<Ef4B 9b`fJ x۰Z @]0?c Q#Oc Q\}ȱ~aE:Õ)0:iG`iw*h<5a#j8oJiqze~EA#o>"]rA #sHD:@ # h4>T]]9 MTJU@qK?@>,Λ?@>TC?@ݿJWc^?P6 v2>JuM` ?)uJt  jDFIt=W-M3}IR?8IlRv\#>2zGz? HJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A(.?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 0??8:C?'4/U%GX|# |'b6LLBBO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!ZA!Z!?v"rA # sHD:@ # h4>T]]9 MTJU@QL ?@L+?@BZ?@ib+iF?P6 v3>JuM` ?qu#t  Ç\UIt=W_ @ٶIRUo}WIlTy6ވI#>2zGzK? HJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A/.7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6#)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ# $<Ef4B 9b`fJ:O@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij? mh~EA#o>"rA k#sHD:@ # h4>T]]9 MTJU@#li[?@e>?@u'?@ݿJWc^?P6 a?JuM` ?uJt  ICIt=WN3אsIRk_zIlRv\#>2zGz?R HJAeb #zb(#+#+T#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A(. ?b6 ?AgJamT6G` F !!l"zbA +6iTg5V181 ?2?;:C?'I4/U%G,|# |'b6&La`B O @ie<59 FXG'0U`Rb6!}40 V+ZlJ]Uhz!hA!Z![?&sA#<# $` %jfJ 'j `00>oPaYc l]]aE:Ͷc0TbCcba`iK8K8h<5eg۰Zk(qQlqe~Ee@||`ai !hA'o>v"rA # sHD:@ # h4>T]]9 MTJU@ 3?@8.G?@ә!?@8laxy?P6 v5>JuM` ?)uJt  ͧILIt=Wf IRE! YBIl p#>2zGz? HJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A(.?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!A!19b $<# $B 9b`fJ: muۘ]0:mOc ?i'A~aEesDͅ?c ? V#NeFaze<5e@|lVaiU3Lh`~EA#o>"rA #sHD:@ # h4>T]]9 MTJU@'HY?@pN?@ˋ>WB?@=E?P6 v6>JuM` ?)uJt  PrIt=WoDIRݮIl$dvĤ#>2zGz?(3 HJsAeb #z (#+#+#&*Jp!p!5 g`?CopyrigTt (c) 2U0 9 M c os f"!rԙ !a i n}. Al U (s"e e 5v0d i!Em$}! (K2?b6 ?ALb4($I3/ 4/U%b-|# |'Yb6?Fiie<59 FjX/G3_'0UBb6Z!}40 aFuJlJ8>UhAA Ў!1!Z}'[- E|zo}#<b$,] VJ:@8Qw0RS S IBf>QE !?@\BU--# i[F @ h<53n:CU9fKo]o ڵ h5a9YUU aUUwiǤ]Q işeq5 h2r_U"rA 5#sHD:@ # h8>T ]]9 MTJU@mڷ?@WZgL?@(w)٫?@Q`m ^?P6 7>JuM`lW? SuJt  NKMtA[X_*`lMVYBMpry2VI'>\??\.?lFA8 J2llf?3 HRJB& @i7b#zv t#]b( J(+&B(" ?APb)4(z$!D3//&115 k`?CopyrigTtk(c)k2009kM0c0os0f21r01a0i0n.k Al @ 8sBe0e0v @d@1$4-3 7bO&&i b~59 &&XG3'0U!R&!40 FJlJ $  (sQsQ] 1eA!Zl0|z 0 @?n' Q b7fJ:]~^PsojR֯UaE !?@q?`0 0c s!R'i ?e:}ɟh~5aef9oa|b c ؠgTh]]9 MTIAU@?@|be?@X͂?@SSfhr~?Pps-8R?>$9> n JuM{` ?e ;  Su*Jt'  $mCLmta{x_&3.Jv  q?D=:%z?v(A[|Jq>JU2N贁N[?@M#J&A@bI(bUW)U+U+U&*Jy#?!lJ ?%P?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>UhETh]]9 MTIAU@?@2R} ?@X͂?@SSfhr~?Pps-8R?>$:> n JuM{` ?e ;  Su*Jt'  H-mta{_mLL}3.Jv  q?D=:%z?v(A[|Jq>JU2N贁N[?@M#J&A@bI(bUW)U+U+U&Jy#?!lJ ?%P?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>UhETh]]9 MTIAU@B?@ K?@X͂?@SSfhr~?Pps-8R?>$;> n JuM{` ?e ;  Su*Jt'  m@mta{ɀ_13.Jv  q?D=:%z?v(A[|Jq>JU2N贁N[?@M#J&A@bI(bUW)U+U+U&*Jy#?!lJ ?%P?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>UhETh]]9 MTIAU@Zԩ?@j4ʼn?@X͂?@SSfhr~?Pps-8R?>$<> n JuM{` ?e ;  Su*Jt'  }$~mta{_M {3.Jv  q?D=:%z?v(A[|Jq>JU2N贁N[?@M#J&A@bI(bUW)U+U+U&*Jy#?!lJ ?%P?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>UhETh]]9 MTIAU@h!I?@u\?@X͂?@SSfhr~?Pps-8R?>$=> n JuM{` ?e ;  Su*Jt'  XƿHmta{"_}{3.Jv  q?D=:%z?v(A[|Jq>JU2N贁N[?@M#J&A@bI(bUW)U+U+U&Jy#?!lJ ?%P?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>UhETh]]9 MTIAU@?@d\0?@X͂?@SSfhr~?Pps-8R?>$>> n JuM{` ?e ;  Su*Jt'  H-mta{pu_3.Jv  q?D=:%z?v(A[|Jq>JU2N贁N[?@M#J&A@bI(bUW)U+U+U&Jy#?!lJ ?%P?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>UhETh]]9 MTIAU@sLGv?@m\?@X͂?@SSfhr~?Pps-8R?>$R>  JuM` ? ;  )u*Jt'  [Rwmta{ēd3.Jv  q?D=:%_z?v(A[|?Jq>JU2N?贁N[?)@M#J&A@wbI(bW)U+U+U&Jy#0?!J ?%P?tAO"d+bW+$u/%B#BA1A15 `?Cop rigTt (c)x0]2`09x0Mp0]cn0osh0fv2Rg1rj01av0ih0Wn.x0 l0U n8s2e0en05v0d0:1PY>4#-#,M3 M7#(p0b59 DFXGdG'/2WUA;F%!$a dF$&#l,&}>UhEuwγ u~w;'bAUSSr`?CopyrigPt (cu) 2\09 uMcoszIfyr|aizn. WAlЀ sԂUeevdȀ;LSPDB-M_ M_?[D =M`DrMM ID1+0UǒM"C $cPc X(.'ƔM$!I] Ue*^Y30DXl ! !dH!\!p!!!!!!!!1$1%&'*()11pD113Ac M?  F4 K &E& 4&4&U R&R&u` W?I$0BN`l~$I/( /2(>/2P(\/n$uz)tw!  IQEtABOJ-EG14%F4GaO ۃ ZUAA/B`?CopyrigPt (c)@2\0 M@c@os@fBAr@Aa@i@n.@ AlP HsRe@e@v&PdPA{BCSDCB-CC "G{$FCTVV RD#C05UbS@qF@ ^PU $fXhW.Dg'dōV%!T] DfXje H^maPaYqT  2qa8wEJtU{BUJtU{3Jt!U{UJtU{JtR!U{|JtU{&qFx&U{tSHvDU{.qFxbU{2qFxU{6uJtUwHD:B # h0>Th]]9 MTIAU@?@&*y>{?@X͂?@SSfhr~?Pps-8R?>$A n JuM{` ?e ;  Su*Jt'  $mCLmta{_n3.Jv  q?D=:%z?v(A[|Jq>JU2N贁N[?@M#J&A@bI(bUW)U+U+U&*Jy#?!lJ ?%P?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>UhET]]9 M JU@xJuM` ?uJt ASt=WJRb~li>t2U?=@MJA@b + &J[N#?0a& ?AT)B!!5 g`?CopyrigTtZ(c)Z20 9ZM c. os f"!r 1ai n.Z Al90 (s=2e0ej vO0d10@!$b-# 'Ya&?6iiek59 6jX7^'0a&Z!|$0 FJlJ UhqMAA ]A !4Ja-'Z@?h4FӃ  <{Gz#A OR|VJ:6]].rM__Z)\("UEC@ ?@-bȃ S 1 `#`YR\Xk5^jZso!o ̌aX5U'BOP(?gks#dT[RUUSv?@n aX,flYwq%lSXn?Fh4  p= ףXAYfl6\`YHzmPXAV``ʼ_Z(QYAY҄agklQbE26_HU"rA HD:B # h0>Th]]9 MTIAU@B?@Dd;]?@X͂?@SSfhr~?Pps-8R?>$F> n JuM{` ?e ;  Su*Jt'  m@mta{_dA3.Jv  q?D=:%z?v(A[|Jq>JU2N贁N[?@M#J&A@bI(bUW)U+U+U&*Jy#?!lJ ?%P?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>UhET]]9 MTJU@F6&?@}%4+ޱ?@5?@$D"?P6 rAJuM` ?qu#t  (LbIt=W_,MyIRFIlI#>2zGzK? HJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A/.7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6#(BO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ# $<Ef4 9b`fJ x۰Z @]0?c Q#Oc Q\}|zeE:ÕO)0:iG`iw*h<5a#j8oJiqze~EA#o>"rA #sHD:@ # h4>T]]9 MTJU@)?@Uj?@>TC?@ݿJWc^?P6 vI>JuM` ?)uJt  6|.It=WL\} IR?8IlRv\#>2zGz? HJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A(.?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!ZA!Z!?v"rA # sHD:@ # h4>T]]9 MTJU@#{5?@ř?@BZ?@ib+iF?P6 vJ>JuM` ?qu#t  DqIt=W_{*IRUo}WIlTy6ވI#>2zGzK? HJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A/.7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6#)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ# $<Ef4B 9b`fJ:O@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij? mh~EA#o>"rA k#sHD:B # h0>Th]]9 MTIAU@Zԩ?@6#TTĶ?@X͂?@SSfhr~?Pps-8R?>$K> n JuM{` ?e ;  Su*Jt'  }$~mta{=g2.Jv  q?D=:%_z?v(A[|Jq>JU2N贁N[R?@M#J&A@bI(b*W)U+U+U&Jy#c?!J ?%P?AO"d+bRW+$u/%B#A1A15 `?Cop rigTt (c)x02`09x0Mp0cn0osh0fv2g1rj01av0ih0n.x0 l0 n8s2e0ejn0v0d0:1Y>4#-X#M3 M7#(p0b59 DFXGdG_'2WUA;FJ!$a dFD$&#l,&}>UhET ]]9 MTJU@fl6?@eb,)?@(w)٫?@Q`m ^?P6 L>JuM`lW? SuJt  LUMtA[_ʓWMVYBMpry2VI'>\??\.?lFA8 J2llf?3 HRJB& @i7b#zv t#]b( J(+&B(" ?APb)4(z$!D3//&115 k`?CopyrigTtk(c)k2009kM0c0os0f21r01a0i0n.k Al @ 8sBe0e0v @d@1$4-3 7bO&&i b~59 &&XG3'0U!R&!40 FJlJ $  (sQsQ] 1eA!Zl0|z 0 @?n' Q b7fJ:]~^PsojR֯UaE !?@q?`0 0c s!R'i ?e:}ɟh~5aef9oa|b c ؠgT]]9 MTJU@S?@ަƢ?@u'?@ݿJWc^?P6 vN>JuM` ?)uJt  cIt=W(?IRkzIlRv\#>2zGz? HJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A(.?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+Z lJ]UhzЎ!A!Z!?&sA#<# $BK jfJ 'j `00>oPaYc l?]]aE:Ͷǝ0TbCcba`iK8K8h<5eg۰Zk(qQlqe~Ee@||`ai !hA'o>"rA #sHD:B # h0>Th]]9 MTIAU@h!I?@Ž?@X͂?@SSfhr~?Pps-8R?>$P> n JuM{` ?e ;  Su*Jt'  XƿHmta{0_Y3.Jv  q?D=:%z?v(A[|Jq>JU2N贁N[?@M#J&A@bI(bUW)U+U+U&Jy#?!,J ?%?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>UhET]]9 MTJU@ةA!z?@B]?@ˋ>WB?@=E?P6 vR>JuM` ?)uJt  wT vIt=W?mIRݮIl$dvĤ#>2zGz?(3 HJsAeb #z (#+#+#&*Jp!p!5 g`?CopyrigTtt(wc)t20 9tM c o%s f"!r !ua i n.t_ Al (Us"e e v0 d i!Em$}! (K2?0b6 ?ALcb4($3/ 4/U%-X|# |'b6?Fiie<59 FX/G3'0UBb6!}40 aFuJl*J8>UhAA !1!Z}'- E|zo}#.<b$]K VJ:@8Qw0RS S IBf>QE !?@\BU--# i[F @ h<53n:CU9fKo]o ڵ h5a9YUU aUUwi]Q ieq'5 h2r_Uv"rA # sHD:@ # h4>T]]9 MTJU@?@zų[?@ә!?@8laxy?P6 vS>JuM` ?)uJt  {It=W ůIRE! YBIl p#>2zGz? HJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A(.?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!A!19b $<# $B 9b`fJ: muۘ]0:mOc ?i'A~aEesDͅ?c ? V#NeFaze<5e@|lVaiU3Lh`~EA#o>"rA #sHD:B # h0>Th]]9 MTIAU@sLGv?@c?@X͂?@SSfhr~?Pps-8R?>$U> n JuM{` ?e ;  Su*Jt'  [Rw͖mta{ۡ_TL3.Jv  q?D=:%z?~v(A[|Jq>JU2N贁N[R?@M#J&A@bI(b*W)U+U+U&ՆJy#a?!J ?%P?AO"d+bRW+$u/%B#A1A15 `?Cop rigTt (c)x02`09x0Mp0cn0osh0fv2g1rj01av0ih0n.x0 l0 n8s2e0ejn0v0d0:1Y>4#-X#M3 M7#(p0b59 DFXGdG_'2WUA;FJ!$a dFD$&#l,&}>UhE9_%O+s u8+DOʅVFxZI#>B U 9? ,~d,ܮ o@+ht oKsG8ofHVz OxX#\Z&Lo>*Ͽ-1H58j<Ͽ?C~Gxҿ&KN$اkR6VH8Yhy] aKdMh lo.sw]0 z82 ^~Hh4 G'6 68 CH: ΌTO//?#?5?G?Y?k?}???X` bNdf߁i@6HkܦHxmg1ObNϮ4!NINJǶ`JNIxmNJ?@QB.OB_ J-O6UQF\)'xNE?_"P(T~X?xߺEW*O9>%_"|PU_D)Z6)oEMaUFD  h(^TYYBXCUF~?x<F BP(?P?  B+66 J] 6qa{6a!6ah9ha6a6!a&`8%!a/&6C!aM&6a!ak&6!a&`d9da&6!a&6!a&6!a6a61a6631a=66Q1a[66o1ay6a 61a6!61a6"61a6#61a6a$6AaF%6#Aa-F&6AAaKF'6_AaiF`]9]aF)6AaF*6AaF+6AaFa,6AaF-6QaV.61Qa;V/6OQaYVa06mQawV16QaV26QaV36QaVa46QaV56aa f66!aa+f86?aaIfa96]aagf:6{aaf;6aaf<6aafa=6aaf>6aaf9av@6/qa9vaA6MqaWvB6kqauvC6qav9av!E6qav9avG6a H6a)aI6=aGJ6[aeK6yaL6aaM6aN6Ӂa݆O6a9aQ06-a7R6K aUS6iasT6aU06aV6Ñ a͖W6aX6a Y06a'Z6; aE[6Yac\6wa]06a^6 a_6ѡaۦ`6aa06 ac6+ a5d6IaSe6gaqf06ag6aQ9Qa˶i6߱aj06ak6 a%l69aCm6Waan06uao6 ap6aq6ar06as6 at6)a3u6GaQv06eaow6 ax6ay6az06a{6 a|6a#}67aA~06Ua_6s a}6a6a06a6 a6 a6'a106EaO6c am6a6a06a6 a6a6a!065a?6S a]6qa{ra0rar arara0r%a/rC MraQkrQ0rQr QrQrQ&0r!Q&r3! Q=&rQ!Q[&ro!Qy&0r!Q&r! Q&r!Q&r!Q&0r1Q6r#1 Q-6rA1QK6r_1Qi60r}1Q6r1 Q6r1Q6r1Q60r1Q6rA QFr1AQ;FrOAQYF0rmAQwFrA QFrAQFrAQFrAQFJȖ SUqJ?_,V S=V Q'  T UrQS S@L&ɯd2?]ɓX?\.ҥX^ sUQV T_\ UJ%Q xS T -b@Y T`&P t>h,aeL,dbtok^`eupjet^`h r\wbgQgQ*QJ_i( RU SJWS> 0V]!? ?wwww{np0wzZp~uwpwwppw^w|{pdp^ZDrag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aab~߿~??)j࿔S5E?0FJ?nɶؿ3@ ?DHD: # h4>T]]9 MTJUF~?F͓??FtQ+/?P6 AmJuM` ?uJt At=Wrb#JRbJli:O#>[a? ?AbAw@"b $J2zGz?)@MJ7& #fbu#z$ ( (&,"*BB!!5 g`?CopyrigT}tZ(c)ZW2009ZM 0]c 0os0f2R1r0>1a0i0n.Z AUlY0 8s]2e10e 0vo0dQ0!$ę-# '?6iie59 6X7}'0UpBi!0 'F;JlJAh7!1!ZFTE <EgQ# IRSvVJ:M&d2?6VOSe\^TUR UEU@SG\BZ_ɫQ5[@_,cYU520_BU"rA #cHD: # h4>T]]9 MTJUFM&d2?FDx??Fl5?P6 AmJuM` ?uJt\  ]It=WIW$IRIl ڜI#>[ ? ?Ab A@"b$J2zGz?R=@MJ`=&#f {#z .(b)&,"*BB!!5 g`?CopyrigTt (c])020%090uM0c0os 0If21r 0D1a0i 0n.0 WAl_0 8sc2Ue70e0vu0dW0!$-# '?6iieP59 6X7F"'0UvB!0 -FAJlJ $L!(AA ]A1h1!ZFhmg  <!q}"##M _RVJL!%t?FTE\QeS , φ+#pYYSUKQUE^,n__ "+^HX5:?LV&k?SN#tTkRU5Ulf܄BP(%lgpY?BeO#X(dec]\m\cX ~.K$oZhLYUiXQaIZ^_i3qU32F_XU"rA 5#HD: # h#4>T#3 AMJUFbX?FϏ ?FM&d2?F _gw?P6 #AJuM` ?uJt  k]It=~W.*IRIl̆Rkפ#>[a? ?AbAw@"b$J2zGz?)@MJ=&#fb{#z\ (b)&T,"*B!!5 g`?CopyrigTt (c)020%090M0c0os 0f21r 0D1a0i 0n.0 Al_0 8sc2e70e0vu0dW0!$$-# '%?6iie59 6X7'K0UvB!K0 -FAJlJAh711T?ҿP mVN  Q  . *>uA` ?Gm$m8JuQ\>XbK>tY  wetVy 5Ie>U2zGz?@9 /#>?&Aw@bq(Wb)+&b" !p$4>9#"?& "w"b)";|'b"i,b"/N9#0%B 9#11;8"`?CopyrigXt (wc)020090M0c0o%s0f21r0Aua0i0n.0_ Al/@ 8Us3Be@e0vE@d'@'"i fE 6(X7H!'_2q@&,d50 tFJul>4Ul8QQCaR 1(Q1w!-(N!R?FJ?@ `0R QyUeR /ge%$(U⤖侇_X?,_XN Uωr?F r?FOtO?P"ZO %o1~Y.$!$iA4Y!eX]?C!ebRҡe:S |we"d  1X461Boo wr$5%>aEJe_~?F.ԵN?FaV-u"ؾ?PWRrR~|`%s mK)m >'ʲl} fdjg tsC uL+t-VwfxQUv`q7&ҹ _XRQb%d2[i֥TWVQFd50_#jS aUTf imp#jpm0"XY֘t?FTEY`Qj;!lЙXbQ?,n$ xXfQYJhbPnZ\>]!h"bXjQV6W_QUnU_o_)oTQaRp v__N-aZ?Fah<b}煔M_Ophz y7vPQP]BP({ύ 贁NPE 0BXЕHD: # h4>T]]9 MTJUF~?FS BP??Fx<?P6 #AmJuM` ?uJt At=W5_v@"J]RbJl>t2U.?=@MJA@+b)+&J[P'?g& ?A)*B!!5 g`?CopyrigTtZ(wc)Z2009ZM c o%s f"!r $1uai n.Z_ Al?0 (UsC2e0e vU0 d70!H$-,# 'g&K?6i@ieq59 6X7'K0g&!$K0 F!JlJ\#Uh( #3 ]At!"3'ZF>h f <YDc#BA NR{VJ:5]dGL_^Zh?.2\QE]t?FgPg܉ S )?w#_YXq5^(l]o o e]ǂX5U%?D"?;Vfk(\#cTZRUUM\_Y7ۨ Xno ^Z~#b%{XAYM&d2fkBqlUE25_tGUSrA   UGD  3 h0TdYYBjUFțau?F73X?FGV^bd?FZ^Zp?P} X  f  f0 D fX l f  f  bd  f  & f & 4& fH& \& fp& &! f&" &# f&$ &% f&& &' f6( $6) f86* L6+ f`6, t6- f6. 6/ b6]_61 f62 63 fF4 F5 (F6 T#3 AMJUF^]P'?Fݱ?F#6?F{_ "w?P6  >JuM` ?uJt  (LbIt=W,MyIR_FIl#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ %ޜ\0?c Q#Oc Q\}|zeE:pOϫ0:iG`iw*h<5a#j8oJiqze~EA#o>"rA #sHD:  # h4>T]]9 MTJUFH[b?F:%lj?FݡD?F,6^?P6 v >JuM` ?)uJt  6|.It=WL\} IR?8IlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!ZV\槈?F9"rA #sHD:  # h#4>T#3 AMJUFiW>E?FTb?F %?FP_EyFw?P6 >JuM` ?uJt  DqIt=W{*IRUo_}WIlTy6ވ#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ:%O\0:iG`Oc qy"zeEajoJiaze<5e'fÏ 0mFaij? mh~EA#o>"rA k#sHD:  # h4>T]]9 MTJUFF ?FƢ?F%9.?F,6^?P6 v>JuM` ?)uJt  cIt=W(?IRkzIlRv\#>2zGz?@M2JAe7b #zb(J#+#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c oKs f"!r !a i n. Al (s"e e v0d i!EHm$+A?b6 ?AgJaTv6` F !!l"z۾bZA +J6ig5V181 ?2?;ߑ:C?'4/U%ęG|# b|'b6LFO ie<59 FXG}'0U`Rib6!}40I V+ZlJ]Uhz!AZֺV\?F9&sA#<# $ B bnbJ'jWĞ 00>oPaYc l]]ȱaE:P^0TbCcba`iK8K8h<5e %k?(qQlqe~EeF$||`ai? !hA'oFrA k#sHD:  # h4>T]]9 MTJUFw??FxOe?FV\?F. xy?P6 rAJuM` ? )uJt  {It=W ůIRE! YBIl p#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6L>FO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!A!19b $<# $BJ C`fJ: m$D]ᇄ0:mOc i'A~aEeTE?c  V#NeFaze<5eF$|lVaiU?3Lh~EA#o>"rA k#sHD:  # h4>T]]9 MTJUF% !(@{?FmN,']?F~ tC?F7܄E?P6 v>JuM` ?)uJt  wT vIt=W?mIRݮIl$dvĤ#>2zGz?@MJAebM #zT (#+#+#&Jp!p!5 g`?Copy_rigTtt(c)t2U0 9tM c os f"!rԙ !a i n}.t Al U (s"e e 5v0d i!Em$}! K2?b6 ?ALb4($I3/ 4/U%b-|# |'b6<Fiie<59 FjX/G'0UBib6!}40 aFuJlJ8>UhAA@ !1!Zo(. E|zo}#<bX$-B] VʼJ:F,?0ȒS S I?Bf>QEҺV\?Ft@K\BU--# i[ÏF @ h<53n?I9fKo]o ڵ h5a9YUU aUU 3yk]Q i?eq5 h2r_U"rA k#sHD:  # h8>T ]]9 MTJUFG"7?F~8)?F AE?Fzl]?P6 >JuM`lW? SuJt  LUMtA[_ʓWMVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @nib#zv t#b( (+&B" ?APb)4(z$CD3//&*115 k`?CopyrigTtk(wc)k2009kM0c0o%s0f21r01ua0i0n.k_ Al @ 8UsBe0e0v @ d@1H4-,3 7%bO&&i Ab~59 &&XGK"'0U!R&!40 FJlJ Q! (sQsQ]31heA!Zsꈐ43 0 @?/n' #M b7fJ:]n#vca71xp]] 8usUQPUQS^%S+ %R&bpGba8DaP`Q]`NE_TWOPKJ0WSH+`Ps RUORuIsSk1J0@^e_ erP}28\usvvP62<%-g ۏ'9_us1125q5q2A+Bhh@R)pR*) 2hqhq|b(8 1xpa[3!1Qq6`:zGQ`1f1[j2B@@7RF5VCT @nb2FE5us_4Σ&F3s͵NSYFB@UͬpU ͬQUHͬ|eA§,@Q_Ɔp׏(ɟ 8A B<F5$lAVB\KkF`RC`asPe uexPP2!"! %(P%PORJ1 '2qa` P֒ȑ8(S˱AȕE{8H5AALA˱LܥAL(ARGMAWЛtA5ЛA͞/%AELHD:  # h#4>T#3 AMJUF͹30?FY˟8?F#6?F{_ "w?P6 >JuM` ?uJt  z7It=WiIR_FIl#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ %ޜ\0?c Q#Oc Q\}ȱ~aE:pϫ0:iG`iw*h<5a#j8oJiqze~EA#o>"]rA #sHD:  # h4>T]]9 MTJUF,2?F/LΛ?FݡD?F,6^?P6 v>JuM` ?)uJt  jDFIt=W-M3}IR?8IlRv\#>2zGz?@MlAneb #zb(J#+#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c oKs f"!r !a i n. Al (s"e e v0d i!EHm$+A?b6 ?AgJaTv6` F !!l"z۾bZA +J6ig5V181 ?2?;ߑ:C?'4/U%ęG|# b|'b6LBO ie<59 FXG}'0U`Rib6!}40 V+ZlJQI0h|GЎ!A!ZV\O?F9"rA 5#sHD:  # h#4>T#3 AMJUF *.?F)s*?F %?FP_EyFw?P6 >uM` ?uJt  Ç\UIt=W @ٶIRUo_}WIlTy6ވ#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ:%O\0:iG`Oc qy"zeEajoJiaze<5e'fÏ 0mFaij? mh~EA#o>"rA k#sHD:  # h4>T]]9 MTJUFJ.?Fh ?F%9.?F,6^?P6 v>JuM` ?)uJt  ICIt=WN3sIRkzIlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 $V+ZlJ]Uhz@!A!ZֺV?\?F9&sA #<# $B jfJ'jWĞ 00>oPaYc l]]aE:P^0TbCcba`iK8K8h<5e %k(qQlqe~EeF$ǧ||`ai !hA'o>"rA 5#sHD:  # h4>T]]9 MTJUFPY?F3pG?FV\?F. xy?P6 rhAJuM` ?)uJt  ͧILIt=Wf IRE! YBIl p#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LhSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!`197b$<# h$B 9b`fJ: m$D]0:mOc i'A~aEeT7E?c  V#NeFaze<5eF$|lVaiU3Lh~EA#o>"]rA #sHD:  # h4>T]]9 MTJUF]cZ?FVIܳ?F~ tC?F7܄E?P6 v>JuM` ?)uJt  PrIt=WoDIRݮIl$dvĤ#>2zGz?@MJAebM #zT (#+#+#&Jp!p!5 g`?CopyrigTt (c) W20 9 M ]c os f"R!r !a i n. AUl (s"e e v0d @i!Em$}! K2?b6 3?ALb4(&$3/ 4/U%-|# e|'b6 ?Fiie<59 FX/G'0UBb6!}40 aFuJlJ 8>UhAA !1!Z(. E|zo}#<b$] RVJ:F,a0RS S IBf>QEҺV\?Ft@K\B?U--# i[F @ h<53nI9fKo]o ڵ h5a9YUU aUU~ 3yk]Q ieq5 h2r_U"]rA #sHD:  # h8>T ]]9 MTJUFyh ?F*nK?F AE?Fzl]?P6 >JuM`lW? u t  NKMtA[X*`lMVYBMpry2V'>\¹??\.?lA8 J2l_lf?=@JMJB& @ib#ztv t#b() (+&ՆB3" 3?APb)4(z$D3//&T115 k`?CopyrigTtk(c)k2009kM0c0oKs0f21r01a0i0n.k Al @ 8sBe0e0v @d@14-X3 7JbO&&i b~59 &&XGK"/'0U!R&-!40 FJ%lJ Q! (sQsQ]3Ы1eA!Zsꈐg4 0֚ @?n'#2#M b7fJ:]T#3 AMJUF~S5e?Fk]?F#6?F{_ "w?P6 >JuM` ?uJt  @@|It=Wn56uIR_FIl#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FXGB/'0U`Rb6-!}40 V+ZlJQI0h|G!A!1l&fL# $<EfB 9b`fJ %ޜ\0?c Q菌#Oc Q\}ֱ~aE:pOϫ0:iG`iw*h<5a#j8oJiqze~EA#o>"rA #sHD:  # h4>T]]9 MTJUF3w?Fr(IY?FݡD?F,6^?P6 rlAJuM` ?)uJt  It=WX IR?8IlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LlQkBO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!ZV\槈?F9"rA #sHD:  # h#4>T#3 AMJUFZ)x?F~m?F %?FP_EyFw?P6 >JuM` ?uJt  1It=WOIRUo_}WIlTy6ވ#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ:%O\0:iG`Oc qy"zeEajoJiaze<5e'fÏ 0mFaij? mh~EA#o>"rA k#sHD:  # h4>T]]9 MTJUF:N[%?F ɇ?F%9.?F,6^?P6 v>JuM` ?)uJt  {d5Z\It=W2;wEIRkzIlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V+ZlJ]Uhz!A!ZֺV\?F9&sA#<# $BK jfJ'jWĞ 00>oPaYc l]]beE:P^c0TbCcba`iK8K8h<5e %k(qQlqe~EeF$||`ai !hA'o>v"rA # sHD:  # h4>T]]9 MTJUFydY?F?FV\?F. xy?P6 v>JuM` ?)uJt  V"(It=W7:LIRE! YBIl p#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!`197b$<# h$B 9b`fJ: m$D]0:mOc i'A~aEeT7E?c  V#NeFaze<5eF$|lVaiU3Lh~EA#o>"]rA #sHD:  # h4>T]]9 MTJUFEtJuM`?)uJt  7It=WܯHIRݮIl$dvĤ#>2zGz?@MJAebM #zT (#+#+#&Jp!p!5 g`?CopyrigTt (c) W20 9 M ]c os f"R!r !a i n. AUl (s"e e v0d @i!Em$}! K2?b6 3?ALb4(&$3/ 4/U%-|# e|'b6 ?Fiie<59 FX/G'0UBb6!}40 aFuJlJ 8>UhAA !1!Z(. E|zo}#<bc$ R] )VJ:F,00RS S IBf>QEҺV\?Ft@K\BU--# i?[F @ h<53nI9fKo]o ڵ h5a9YUU aUU? 3yk]Q ieq5 h2r_U"rA #sHD:  # h8>T ]]9 MTJUF̉?F7|?F AE?Fzl]?P6 !>JuM`lW? SuJt  o|MtA[_"oRMVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @nib#zv t#b( (+&B" ?APb)4(z$CD3//&*115 k`?CopyrigTtk(wc)k2009kM0c0o%s0f21r01ua0i0n.k_ Al @ 8UsBe0e0v @ d@1H4-,3 7%bO&&i Ab~59 &&XGK"'0U!R& 10 FJlJ Q! (sQsQ]31heA!Zsꈐ43 0 @?ҏn'8R# b7fJ:]T#3 AMJUFJuM` ?uJt  .9BWyIt=Wnq׏8IR_FIl#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ %ޜ\0?c Q#Oc Q\}ȱ~aE:pϫ0:iG`iw*h<5a#j8oJiqze~EA#o>"]rA #sHD:  # h4>T]]9 MTJUF%?FG>'~ݡD?F,6^?P6 #>JuM` ?juJt  HIt=WByIR?8Il?Rv\#>2zGz?@MJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!ZA!ZV\?F9"rA #sHD:  # h#4>T#3 AMJUFQK݆x?F-1?F %?FP_EyFw?P6 $>JuM` ?uJt  fd>It=WN6sgHRUo}WIlT?y6ވ#>2zGz?@MJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!A!1l&fL# $<EfB 9b`fJ:%ޜ'\0:iG`Oc qy"zeEajoJiaze<5e'fÞ 0mFaij mh~EA#o>"rA 5#sHD:  # h4>T]]9 MTJUF|k~ؾ?F;?F%9.?F,6^?P6 v%>JuM` ?)uJt  ُuߓIt=Wί IRkzIlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTtt(c])t20 9tuM c os If"!r !a i n.t WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+Z lJ]UhzЎ!A!ZֺV\O?F9&sA#<# $B %jfJ'jWĞ 00>oPaYc l]]aE:P^c0TbCcba`iK8K8h<5e %k(qQlqe~EeF$||`ai !hA'o>v"rA # sHD:  # h4>T]]9 MTJUFFJuM` ?)uJt  L+It=WݑHIRE! YBIl p#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!`197b$<# h$B 9b`fJ: m$D]0:mOc i'A~aEeT7E?c  V#NeFaze<5eF$|lVaiU3Lh~EA#o>"]rA #sHD:  # h4>T]]9 MTJUFQt?FRLxw?F~ tC?F7܄E?P6 v'>JuM` ?)uJt  6j>It=WNFFIRݮIl$dvĤ#>2zGz?@MJAebM #zT (#+#+#&Jp!p!5 g`?CopyrigTt (c) W20 9 M ]c os f"R!r !a i n. AUl (s"e e v0d @i!Em$}! K2?b6 3?ALb4(&$3/ 4/U%-|# e|'b6 ?Fiie<59 FX/G'0UBb6!}40 aFuJlJ 8>UhAA !1!Z(. E|zo}#<b$] RVJ:F,a0RS S IBf>QEҺV\?Ft@K\B?U--# i[F @ h<53nI9fKo]o ڵ h5a9YUU aUU~ 3yk]Q ieq5 h2r_U"]rA #sHD:  # h8>T ]]9 MTJUFXf?Fݼ?F AE?Fzl]?P6 (>JuM`lW? SuJt  ?aV_MtA[_=p'MVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @nib#zv t#b( (+&B" ?APb)4(z$CD3//&*115 k`?CopyrigTtk(wc)k2009kM0c0o%s0f21r01ua0i0n.k_ Al @ 8UsBe0e0v @ d@1H4-,3 7%bO&&i Ab~59 &&XGK"'0U!R&!40 FJlJ Q! sQsQ]31heA!Zsꈐ43 0 @?ҏn'R# b7fJ:]T#3 AMJUF;Э?Fn?F#6?F{_ "w?P6 )>JuM` ?uJt  &lIt=WAI׃IR_FIl#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L( DO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ %ޜ\0?c Q#Oc Q\}ȱ~aE:pϫ0:iG`iw*h<5a#j8oJiqze~EA#o>"]rA #sHD:  # h4>T]]9 MTJUFAYr?F L?FݡD?F,6^?P6 v*>JuM` ?)uJt  0@hIt=WmiIR?8IlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!ZV\槈?F9"rA #sHD:  # h#4>T#3 AMJUFZ?F!ќ?F %?FP_EyFw?P6 +>JuM` ?uJt  JJ&qIt=WrhIRUo_}WIlTy6ވ#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ:%O\0:iG`Oc qy"zeEajoJiaze<5e'fÏ 0mFaij? mh~EA#o>"rA k#sHD:  # h4>T]]9 MTJUF9 `?F2{ о?F%9.?F,6^?P6 v,>JuM` ?)uJt  V6>nIt=WgD~baIRkzIlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 $V+ZlJ]Uhz@!A!ZֺV?\?F9&sA #<# $B jfJ'jWĞ 00>oPaYc ?l]]|eE:P^0TbCcba`iK8K8h<5e %k(qQlqe~EeF$||`ai !hA'o>"rA #sHD:  # h4>T]]9 MTJUFq[')?F9i7?FV\?F. xy?P6 v->JuM` ?)uJt  9KIt=WYGJIRE! YBIl p#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!`197b$<# h$B 9b`fJ: m$D]0:mOc i'A~aEeT7E?c  V#NeFaze<5eF$|lVaiU3Lh~EA#o>"]rA #sHD:  # h4>T]]9 MTJUFӅN?FZDM?F~ tC?F7܄E?P6 v.>JuM` ?)uJt  1|It=WƯ:IRݮIl$dvĤ#>2zGz?@MJAebM #zT (#+#+#&Jp!p!5 g`?CopyrigTt (c) W20 9 M ]c os f"R!r !a i n. AUl (s"e e v0d @i!Em$}! K2?b6 3?ALb4(&$3/ 4/U%-|# e|'b6 ?Fiie<59 FX/G'0UBb6!}40 aFuJlJ 8>UhAA !1!Z(. E|zo}#<bc$2] )VJ:F,00RS S IBf>QEҺV\?Ft@K\BU--| i[F @ h<53nI9fKo]o  h5a9YUU aUU 3yk]Q ieq5 hb2r_U"rA #sHD:  # h8>T ]]9 MTJUFv?Fz?F AE?Fzl]?P6 />JuM`lW? SuJt  y SksMtA[_eMVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @nib#zv t#b( (+&B" ?APb)4(z$CD3//&*115 k`?CopyrigTtk(wc)k2009kM0c0o%s0f21r01ua0i0n.k_ Al @ 8UsBe0e0v @ d@1H4-,3 7%bO&&i Ab~59 &&XGK"'0U!R&!40 FJlJ Q! (sQsQ]31heA!Zsꈐ43 0 @?/n' #M b7fJ:]T#3 AMJUF`;?F:7?F#6?F{_ "w?P6 0>JuM` ?uJt  4E$pIt=WLx4IR_FIl#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L( DO ie<59 FuXG_'0U`Rb6J!}4 V"+ZlJUhh|G!A!1l&fL# $<EfB 9b`fJ %ޜ\0?c Q菌#Oc Q\}ֱ~aE:pOϫ0:iG`iw*h<5a#j8oJiqze~EA#o>"rA #sHD:  # h4>T]]9 MTJUF [kԏ?F4 c?FݡD?F,6^?P6 v1>JuM` ?)uJt  uIt=Wt]aIR?8IlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!ZV\槈?F9"rA #sHD:  # h#4>T#3 AMJUFYļ#?FŬ /?F %?FP_EyFw?P6 2>JuM` ?uJt  B?˳It=WFp\cIRUo_}WIlTy6ވ#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181a ??8:C$?'4/U%G|# |'b6L(BBO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ:%O\0:iG`Oc qy"zeEajoJiaze<5e'fÏ 0mFaij? mh~E#o>"rA k#sHD:  # h4>T]]9 MTJUF-!4?FL$$?F%9.,6^?P6 3>JuM` ?juJt  rs"It=WVIRkzIl?Rv\#>2zGz?@MJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigT}tZ(c)ZW20 9ZM ]c os f"R!r !a i n.Z AQl [&s"e e v0d @i!Em$+A?b6 ?AgJaT6` F !!l"zbAR +6ig5V181 ?2?;:C?'$4/U%G|# |'b6L3FO ie<59 FXG'K0U`Rb6!}4K0 V+ZlJ]Uhz!A!ZֺV\?F9&߮sA#`<# $B jfJ'jW?Ğ 00>oPaYc l]G]aE:P^0TbCcba`i?K8K8h<5e %k(qׁQlqe~EeF$||`ai !hA'o>"]rA #sHD:  # h4>T]]9 MTJUFX?Ş?F).?FV\?F. xy?P6 a?JuM` ?uJt  sd It=W> IRE!_ YBIl p#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6La(`BO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!19b$<# $4` 9b`fJ: m$D]0:mOc i'A~aEeTE?c  V#NeFaze<5eF?$|lVaiU3Lh~EA#o>"rA #sHD:  # h4>T]]9 MTJUFQC]?FD?b.?F~ tC?F7܄E?P6 v5>JuM` ?)uJt  [It=Wq.IRݮIl$dvĤ#>2zGz?@MJAebM #zT (#+#+#&Jp!p!5 g`?CopyrigTt (c) W20 9 M ]c os f"R!r !a i n. AUl (s"e e v0d @i!Em$}! K2?b6 3?ALb4(&$3/ 4/U%-|# e|'b6 ?Fiie<59 FX/G'0UBb6!}40 aFuJlJ 8>UhAA !1!Z(. E|zo}#<b$] RVJ:F,a0RS S IBf>QEҺV\?Ft@K\B?U--# i[F @ h<53nI9fKo]o ڵ h5a9YUU aUU~ 3yk]Q ieq5 h2r_U"]rA #sHD:  # h8>T ]]9 MTJUF:??Fq12?F AE?Fzl]?P6 6>JuM`lW? SuJt  /êQPͰMtA[_Y#MVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @nib#zv t#b( (+&B" ?APb)4(z$CD3//&*115 k`?CopyrigTtk(wc)k2009kM0c0o%s0f21r01ua0i0n.k_ Al @ 8UsBe0e0v @ d@1H4-,3 7%bO&&i Ab~59 &&XGK"'0U!R&!40 FJlJ Q! (sQsQ]31heA!Zsꈐ43 0 @?/n' #M b7fJ:] f? @ fA B &C  fE  &F b & 4&H fH&I \&J fp&K &L f&M &N &&O & f&Q &R f6S $6T f86U L6V f`6W t6X f6Y 6Z f6[ 6\ f6] 6^ fF_ F` f(Fa ~L1B~`1F~t1[D1e1R~1~1Z~1^~1b~Af~Aj~(AnT#3 AMJUF6٫&?Fh%4+ޱ?F*5?F$_D"w?P6 8>JuM` ?uJt  (LbIt=W,MyIR_FIl#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6ig5V1`e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ۰Z@]0?c Q#Oc Q\}|zeE:O)0:iG`iw*h<5a#j8oJiqze~EA#o>"rA #sHD:7 # h4>T]]9 MTJUFI)?FUj?FeTC?FǿJWc^?P6 v9>JuM` ?)uJt  6|.It=WL\} IR?8IlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LQ DO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!Z!姈?F9"rA #sHD:7 # h#4>T#3 AMJUFe{5?F?Fs۰Z?FNb_+iFw?P6 :>JuM` ?uJt  DqIt=W{*IRUo_}WIlTy6ވ#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJrO@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij? mh~EA#o>"rA k#sHD:7 # h4>T]]9 MTJUFS?FަƢ?F'?FǿJWc^?P6 v;>JuM` ?)uJt  cIt=W(?IRkzIlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 $V+ZlJ]Uhz@!A!Z5?!?F9&sA #<# $B jfJ'j`00>oPaYc l]]aE:Ͷ0TbCcba`iK8K8h<5e۰ϿZk(qQlqe~EeFͭ||`ai !hA'o>"rA 5#sHD:7 # h4>T]]9 MTJUF蕯?Fcų[?F!?Flaxy?P6 v<>JuM` ?)uJt  {It=W ůIRE! YBIl p#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!`197b$<# h$B 9b`fJ: m٠uۘ]0:mOc i'A~aEe7D?c  V#NeFaze<5eF|lVaiU3Lh~EA#o>"]rA #sHD:7 # h4>T]]9 MTJUFA!z?FA]?F>WB?Ft=E?P6 v=>JuM` ?)uJt  wT vIt=W?mIRݮIl$dvĤ#>2zGz?@MJAebM #zT (#+#+#&Jp!p!5 g`?Copy_rigTtt(c)t2U0 9tM c os f"!rԙ !a i n}.t Al U (s"e e 5v0d i!Em$}! K2?b6 ?ALb4($I3/ 4/U%b-|# |'Yb6?Fiie<59 FjX/G'0UBib6!}40 aFuJlJ8>UhAA@ !1!Z}o'- E|zo}#<b$] VJ:FQw0RS S IBf>QE2!?Fp\BU--# i[F @ h<53n CU9fKo]o  h5a9YUU aUUwi]Q ieq5 hb2r_U"rA #sHD:7 # h8>T ]]9 MTJUF gl6?FDb,)?FUw)٫?FQ`m ^?P6 >>JuM`lW? SuJt  LUMtA[_ʓWMVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @nib#zv t#b( (+&B" ?APb)4(z$CD3//&*115 k`?CopyrigTtk(wc)k2009kM0c0o%s0f21r01ua0i0n.k_ Al @ 8UsBe0e0v @ d@1H4-,3 7%bO&&i Ab~59 &&XGK"'0U!R&!40 FJlJ Q! (sQsQ]31heA!ZU0|z3 0 @?/n' #M b7fJ:]h^PsojRփUaEQ!?!`0 0c s!R'i e:}ɟh~5aef9oa|b c gT#3 AMJUFE//?F_ 8?F*5?F$_D"w?P6 ?>JuM` ?uJt  z7It=WiIR_FIl#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+Ab6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L(a2BO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4a2 9b`fJ۰Z@]0?c Q#Oc Q\}ȱ~aE:)0:iG`iw*h<5a#j8oJiqze~EA#o>"]rA #sHD:7 # h4>T]]9 MTJUFK?Fc>,Λ?FeTC?FǿJWc^?P6 v@>JuM` ?)uJt  jDFIt=W-M3}IR?8IlRv\#>2zGz?MHJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L(BO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!A!Z!?F9v"rA # sHD:7 # h#4>T#3 AMJUFQL ?F7ԩ+?Fs۰Z?FNb_+iFw?P6 A>JuM` ?uJt  Ç\UIt=W @ٶIRUo_}WIlTy6ވ#>2zGz?N@MJ@eb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L( DO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ:rO@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij? mh~EA#o>"rA k#sHD:7 # h4>T]]9 MTJUFLli[?FQ>?F'?FǿJWc^?P6 vB>JuM` ?)uJt  ICIt=WN3sIRkzIlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 $V+ZlJ]Uhz@!A!Z5?!?F9&sA #<# $B jfJ'j`00>oPaYc l]]aE:Ͷ0TbCcba`iK8K8h<5e۰ϿZk(qQlqe~EeFͭ||`ai !hA'o>"rA 5#sHD:7 # h4>T]]9 MTJUF63?F8.G?F!?Flaxy?P6 vC>JuM` ?)uJt  ͧILIt=Wf IRE! YBIl p#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LQ DO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!`197b$<# h$B 9b`fJ: m٠uۘ]0:mOc i'A~aEe7D?c  V#NeFaze<5eF|lVaiU3Lh~EA#o>"]rA #sHD:7 # h4>T]]9 MTJUFPHY?FpN?F>WB?Ft=E?P6 rAJuM` ?)uJt  PrIt=WoDIRݮIl$dvĤ#>2zGz?@MJAebM #zT (#+#+#&Jp!p!5 g`?CopyrigTt (c) W20 9 M ]c os f"R!r !a i n. AUl (s"e e v0d @i!Em$}! K2?b6 3?ALb4(&$3/ 4/U%-|# e|'b6 ?Fiie<59 FX/G'0UBb6!}40 aFuJlJ 8>UhAA !1!Z}'- E|zo}#<bc$] )VJ:FQw00RS S IBf>QE2!?Fp\BU--# i?[F @ h<53n CU9fKo]o ڵ h5a9YUU aUU?wi]Q ieq5 h2r_U"rA #sHD:7 # h8>T ]]9 MTJUFǦmڷ?FWZgL?FUw)٫?FQ`m ^?P6 E>JuM`lW? SuJt  NKMtA[X_*`lMVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @nib#zv t#b( (+&B" ?APb)4(z$CD3//&*115 k`?CopyrigTtk(wc)k2009kM0c0o%s0f21r01ua0i0n.k_ Al @ 8UsBe0e0v @ d@1H4-,3 7%bO&&i Ab~59 &&XGK"'0U!R&!40 FJlJ Q! (sQsQ]31heA!ZU0|z3 0 @?/n' #M b7fJ:]h^PsojRփUaEQ!?!`0 0c s!R'i e:}ɟh~5aef9oa|b c gT#3 AMJUFܹ?F cM?F*5?F$_D"w?P6 F>JuM` ?uJt  @@|It=Wn56uIR_FIl#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ۰Z@]0?c Q#Oc Q\}ȱ~aE:)0:iG`iw*h<5a#j8oJiqze~EA#o>"]rA #sHD:7 # h4>T]]9 MTJUF (?FthZ?FeTC?FǿJWc^?P6 vG>JuM` ?)uJt  It=WX IR?8IlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%`|# |'1b6LQBBO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!Z!姈?F9"rA #sHD:7 # h#4>T#3 AMJUFr!Qw?Fvk?Fs۰Z?FNb_+iFw?P6 AJuM` ?uJt  1It=WOIRUo_}WIlTy6ވ#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L(BO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4 9b`fJ:rO@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij? mh~EA#o>"rA k#sHD:7 # h4>T]]9 MTJUF!P4K?F l?F'?FǿJWc^?P6 vI>JuM` ?)uJt  {d5Z\It=W2;wEIRkzIlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 $V+ZlJ]Uhz@!A!Z5?!?F9&sA #<# $B jfJ'j`00>oPaYc ?l]]beE:Ͷǝ0TbCcba`iK8K8h<5e۰Zk(qQlqe~EeFͭ||`ai !hA'o>"rA #sHD:7 # h4>T]]9 MTJUFYzUv?FS s9?F!?Flaxy?P6 vJ>JuM` ?)uJt  V"(It=W7:LIRE! YBIl p#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!`197b$<# h$B 9b`fJ: m٠uۘ]0:mOc i'A~aEe7D?c  V#NeFaze<5eF|lVaiU3Lh~EA#o>"]rA #sHD:7 # h4>T]]9 MTJUF)"z>?F^i2VS?F>WB?Ft=E?P6 vK>JuM` ?)uJt  7It=WܯHIRݮIl$dvĤ#>2zGz?@MJAebM #zT (#+#+#&Jp!p!5 g`?CopyrigTt (c) W20 9 M ]c os f"R!r !a i n. AUl (s"e e v0d @i!Em$}! K2?b6 3?ALb4(&$3/ 4/U%-|# e|'b6 ?Fiie<59 FX/G'0UBb6!}40 aFuJlJ 8>UhAA !1!Z}'- E|zo}#<b$] RVJ:FQwa0RS S IBf>QE2!?Fp\B?U--# i[F @ h<53n CU9fKo]o ڵ h5a9YUU aUU~wi]Q ieq5 h2r_U"]rA #sHD:7 # h8>T ]]9 MTJUF{KY?F#v\?FUw)٫?FQ`m ^?P6 L>JuM`lW? SuJt  o|MtA[_"oRMVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @nib#zv t#b( (+&B" ?APb)4(z$CD3//&*115 k`?CopyrigTtk(wc)k2009kM0c0o%s0f21r01ua0i0n.k_ Al @ 8UsBe0e0v @ d@1H4-,3 7%bO&&i Ab~59 &&XGK"'0U!R&!40 FJlJ Q! (sQsQ]31heA!ZU0|z3 0 @?/n' #M b7fJ:]h^PsojRփUaEQ!?!`0 0c s!R'i e:}ɟh~5aef9oa|b c gT#3 AMJUF<5^?FUP?F*5?F$_D"w?P6 M>JuM` ?uJt  .9BWyIt=Wnq׏8IR_FIl#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L( DO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ۰Z@]0?c Q#Oc Q\}ȱ~aE:)0:iG`iw*h<5a#j8oJiqze~EA#o>"]rA #sHD:7 # h4>T]]9 MTJUF?F͍~eTC?FJWc^?P6 N>JuM` ?juJt  HIt=WByIR?8Il?Rv\#>2zGz?@MJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!ZA!Z!?F9"rA #sHD:7 # h#4>T#3 AMJUFSw?FK?Fs۰Z?FNb_+iFw?P6 O>JuM` ?uJt  fd>It=WN6sgHRUo}WIlT?y6ވ#>2zGz?@MJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!A!1l&fL# $<EfB 9b`fJ:r'@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij mh~EA#o>"rA 5#sHD:7 # h4>T]]9 MTJUF%u)H׾?FȐ?F'?FǿJWc^?P6 rAJuM` ?)uJt  ُuߓIt=Wί IRkzIlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTtt(c])t20 9tuM c os If"!r !a i n.t WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6LLs2BO ie<59 FXG/'0U`Rb6-!}40 V+Z lJ]UhzЎ!A!Z5!O?F9&sA#<# $s2 %jfJ'j`00>oPaYc l]]aE:Ͷc0TbCcba`iK8K8h<5e۰Zk(qQlqe~EeFͭ||`ai !hA'o>v"rA # sHD:7 # h4>T]]9 MTJUFf^oO?F]?F!?Flaxy?P6 vQ>JuM` ?)uJt  L+It=WݑHIRE! YBIl p#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!`197b$<# h$B 9b`fJ: m٠uۘ]0:mOc i'A~aEe7D?c  V#NeFaze<5eF|lVaiU3Lh~EA#o>"]rA #sHD:7 # h4>T]]9 MTJUFr,?F4w?F>WB?Ft=E?P6 vR>JuM` ?)uJt  6j>It=WNFFIRݮIl$dvĤ#>2zGz?@MJAebM #zT (#+#+#&Jp!p!5 g`?CopyrigTt (c) W20 9 M ]c os f"R!r !a i n. AUl (s"e e v0d @i!Em$}! K2?b6 3?ALb4(&$3/ 4/U%-|# e|'b6 ?Fiie<59 FX/G'0UBb6!}40 aFuJlJ 8>UhAA !1!Z}'- E|zo}#<b$] RVJ:FQwa0RS S IBf>QE2!?Fp\B?U--# i[F @ h<53n CU9fKo]o ڵ h5a9YUU aUU~wi]Q ieq5 h2r_U"]rA #sHD:7 # h8>T ]]9 MTJUF_5=~?Fe,=Vݼ?FUw)٫?FQ`m ^?P6 S>JuM`lW? SuJt  ?aV_MtA[_=p'MVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @nib#zv t#b( (+&B" ?APb)4(z$CD3//&*115 k`?CopyrigTtk(wc)k2009kM0c0o%s0f21r01ua0i0n.k_ Al @ 8UsBe0e0v @ d@1H4-,3 7%bO&&i Ab~59 &&XGK"'0U!R&!40 FJlJ Q! (sQsQ]31heA!ZU0|z3 0 @?/n' #M b7fJ:]h^PsojRփUaEQ!?!`0 0c s!R'i e:}ɟh~5aef9oa|b c gT#3 AMJUF<@έ?F&¬?F*5?F$_D"w?P6 T>JuM` ?uJt  &lIt=WAI׃IR_FIl#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJa6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6 LeE O @ie<59 FXG'0U`Rb6!}40 V+ZlJQI0h|G!A !6&f# &$<EfBM 9b`fJ۰Z@]0?c Q#Oc ?Q\}ֱ~aE:)'0:iG`iw*h<5a#j8oJiqze`~EA#o>"rA #sHD:7 # h4>T]]9 MTJUFpq?Fq֌?FeTC?FǿJWc^?P6 vU>JuM` ?)uJt  0@hIt=WmiIR?8IlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LQBBO ie<59 FXG'0U`RŴb6!}40 V+ZlJQ@hh|G!A!Z!?F9v"rA # sHD:7 # h#4>T#3 AMJUF߳ڮ?F$ ?Fs۰Z?FNb_+iFw?P6 V>JuM` ?uJt  JJ&qIt=WrhIRUo_}WIlTy6ވ#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6big581e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ:rO@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij? mh~EA#o>"rA k#sHD:7 # h4>T]]9 MTJUF>=9_?FL(Ѿ?F'?FǿJWc^?P6 vW>JuM` ?)uJt  V6>nIt=WgD~baIRkzIlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 $V+ZlJ]Uhz@!A!Z5?!?F9&sA #<# $B jfJ'j`00>oPaYc ?l]]|eE:Ͷǝ0TbCcba`iK8K8h<5e۰Zk(qQlqe~EeFͭ||`ai !hA'o>"rA #sHD:7 # h4>T]]9 MTJUFBP(?FxQ8?F!?Flaxy?P6 vX>JuM` ?)uJt  9KIt=WYGJIRE! YBIl p#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FD'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!`197b$<# h$B 9b`fJ: m٠uۘ]0:mOc i'A~aEe7D?c  V#NeFaze<5eF|lVaiU3Lh~EA#o>"]rA #sHD:7 # h4>T]]9 MTJUFMW?FM6N?F>WB?Ft=E?P6 vY>JuM` ?)uJt  1|It=WƯ:IRݮIl$dvĤ#>2zGz?@MJAebM #zT (#+#+#&Jp!p!5 g`?CopyrigTt (c) W20 9 M ]c os f"R!r !a i n. AUl (s"e e v0d @i!Em$}! K2?b6 3?ALb4(&$3/ 4/U%-|# e|'b6 ?Fiie<59 FX/G'0UBb6!}40 aFuJlJ 8>UhAA !1!Z}'- E|zo}#<b$] RVJ:FQwa0RS S IBf>QE2!?Fp\BU--| i?[F @ h<53n CU9fKo]o ڵ h5a9YUU aUU?wi]Q ieq5 h2r_U"rA #sHD:7 # h8>T ]]9 MTJUF('J?FK5+:?FUw)٫?FQ`m ^?P6 Z>JuM`lW? SuJt  y SksMtA[_eMVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @nib#zv t#b( (+&B" ?APb)4(z$CD3//&*115 k`?CopyrigTtk(wc)k2009kM0c0o%s0f21r01ua0i0n.k_ Al @ 8UsBe0e0v @ d@1H4-,3 7%bO&&i Ab~59 &&XGK"'0U!R&!40 FJlJ Q! (sQsQ]31heA! U0|z3 0 @?ҏn'R# b7fJ:]h^PsojR֯UaEQ!?ߟ!`0 0c s!R'i e:}ɟh~5aef9oa|b c gT#3 AMJUFB?F̒-8?F*5?F$_D"w?P6 [>JuM` ?uJt  4E$pIt=WLx4IR_FIl#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ۰Z@]0?c Q#Oc Q\}ȱ~aE:)0:iG`iw*h<5a#j8oJiqze~EA#o>"]rA #sHD:7 # h4>T]]9 MTJUFJ*ӏ?Fc?FeTC?FǿJWc^?P6 v\>JuM` ?)uJt  uIt=Wt]aIR?8IlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!Z!姈?F9"rA #sHD:7 # h#4>T#3 AMJUF"?F!S/?Fs۰Z?FNb_+iFw?P6 ]>JuM` ?uJt  B?˳It=WFp\cIRUo_}WIlTy6ވ#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ:rO@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij? mh~EA#o>"rA k#sHD:7 # h4>T]]9 MTJUF?F2\D?F'異JWc^?P6 ^>JuM` ?juJt  rs"It=WVIRkzIl?Rv\#>2zGz?@MJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigT}tZ(c)ZW20 9ZM ]c os f"R!r !a i n.Z AQl [&s"e e v0d @i!Em$+A?b6 ?AgJaT6` F !!l"zbAR +6ig5V181 ?2?;:C?'$4/U%G|# |'b6L3FO ie<59 FXG'K0U`Rb6!}4K0 V+ZlJ]Uhz!A!Z5!?F9&߮sA#`<# $B jfJ'j?`00>oPaYc l]G]aE:Ͷ0TbCcba`i?K8K8h<5e۰Zk(qׁQlqe~EeFͭ||`ai !hA'o>"]rA #sHD:7 # h4>T]]9 MTJUF79 Ğ?Fl_n.?F!?Flaxy?P6 v_>JuM` ?)uJt  sd It=W> IRE! YBIl p#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!`197b$<# h$B 9b`fJ: m٠uۘ]0:mOc i'A~aEe7D?c  V#NeFaze<5eF|lVaiU3Lh~EA#o>"]rA #sHD:7 # h4>T]]9 MTJUF-#&\?FZ|?F>WB?Ft=E?P6 v`>JuM` ?)uJt  [It=Wq.IRݮIl$dvĤ#>2zGz?@MJAebM #zT (#+#+#&Jp!p!5 g`?CopyrigTt (c) W20 9 M ]c os f"R!r !a i n. AUl (s"e e v0d @i!Em$}! K2?b6 3?ALb4(&$3/ 4/U%-|# e|'b6 ?Fiie<59 FX/G'0UBb6!}40 aFuJlJ 8>UhAA !1!Z}'- E|zo}#<b$] RVJ:FQwa0RS S IBf>QE2!?Fp\B?U--# i[F @ h<53n CU9fKo]o ڵ h5a9YUU aUU~wi]Q ieq5 h2r_U"]rA #sHD:7 # h8>T ]]9 MTJUFW>?F7 ?FUw)٫?FQ`m ^?P6 a>JuM`lW? SuJt  /êQPͰMtA[_Y#MVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @nib#zv t#b( (+&B" ?APb)4(z$CD3//&*115 k`?CopyrigTtk(wc)k2009kM0c0o%s0f21r01ua0i0n.k_ Al @ 8UsBe0e0v @ d@1H4-,3 7%bO&&i Ab~59 &&XGK"'0U!R&!40 FJlJ Q! (sQsQ]31heA!ZU0|z3 0 @?ҏn'0S b7fJ:]h^PsojR֯UaEQ!?ߟ!`0 0c s!R'i e:}ɟh~5aef9oa|b c g~L1B~`1F~t1[D1e1R~1~1Z~1^~1b~Af~Aj~(AnT#3 AMJUF6٫&?Fh%4+ޱ?F*5?F$_D"w?P6 c>JuM` ?uJt  (LbIt=W,MyIR_FIl#>2zGz?N@MJAeb #z (#+#+T#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A ?b6 ?AgJamT6G` F !!l"zbA +6iTg5V181 ?2?;:C?'I4/U%G,|# |'b6&L D O @ie<59 FXG'0U`Rb6!}40 V+ZlJQI0h|G!A !16&f &$<EfBM 9b`fJ۰Z@]0?c Q#Oc Q\}|zeE:)0:iG`i?w*h<5a#j8oJiqze~EA#o>"rA k#sHD:b # h4>T]]9 MTJUFI)?FUj?FeTC?FǿJWc^?P6 vd>JuM` ?)uJt  6|.It=WL\} IR?8IlRv\#>2zGz?@M2JAe7b #zQ (#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6LL0DO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!ZA!Z!?F9"rA #sHD:b # h#4>T#3 AMJUFe{5?F?Fs۰Z?FNb_+iFw?P6 e>JuM` ?uJt  DqIt=W{*IRUo_}WIlTy6ވ#>2zGz?N@MJAeb #z (#+#+T#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A ?b6 ?AgJamT6G` F !!l"zbA +6iTg5V181 ?2?;:C?'I4/U%G,|# |'b6&L0D O @ie<59 FXG'0U`Rb6!}40 V+ZlJQI0h|G!A !16&f &$<EfBM 9b`fJ:r@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij mh~EA#o>"rA #sHD:b # h4>T]]9 MTJUFS?FަƢ?F'?FǿJWc^?P6 vf>JuM` ?)uJt  cIt=W(?IRkzIlRv\#>2zGz?@M2JAe7b #zQ (#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6LL DO ie<59 FXG/'0U`Rb6-!}40 V+Z lJ]UhzЎ!A!Z5!O?F9&sA#< $B %jfJ'j`00>oPaYc l]]aE:Ͷc0TbCcba`iK8K8h<5e۰Zk(qQlqe~EeFͭ||`ai !hA'o>v"rA # sHD:b # h4>T]]9 MTJUF蕯?Fcų[?F!?Flaxy?P6 vg>JuM` ?)uJt  {It=W ůIRE! YBIl p#>2zGz?@M2JAe7b #zQ (#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A?b6 ?A mT6G` F !!l"zbA +6iTg5V181 ?2?;:C?'I4/U%G,|# |'b6&L2B O @ie<59 FXG'0U`Rb6!}40 V+ZlJQI0h|G!A !19b$< $2M 9b`fJ: m٠uۘ]ᇄ0:mOc i'A~aEeD?c  V#NeFaze<5eF|lVaiU?3Lh~EA#o>"rA k#sHD:b # h4>T]]9 MTJUFA!z?FA]?F>WB?Ft=E?P6 rUAJuM` ?)uJt  wT vIt=W?mIRݮIl$dvĤ#>2zGz?@M JAe #z (#+#+#&*Jp!p!5 g`?CopyrigTtt(wc)t20 9tM c o%s f"!r !ua i n.t_ Al (Us"e e v0 d i!Em$}! K2?0b6 ?ALcb4($3/ 4/U%-X|# |'b6?Fiie<59 FX/G_'0UBb6Z!}40 aFuJlJ8>UhAA Ў!1!Z}'[- E|zo}#;<b$T] VJ:FQw0RS S IBf>QE2!?Fp\BU--# i[F @ h<53n CU9fKo]o ?ڵ h5a9YUU aUUwi㼕]Q ieOq5 h2r_U"rA #sHD:b # h8>T ]]9 MTJUF gl6?FDb,)?FUw)٫?FQ`m ^?P6 i>JuM`lW? SuJt  LUMtA[_ʓWMVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @i #zv t#.b( (+&B"f ?APb)4(z$D3//& 115 k`?CopyrigTtk(c])k2009kuM0c0os0If21r01a0i0n.k WAl @ 8sBUe0e0v @d@14-3K 7!bO&& b~59 &&XGK"'0U!R&!40R FJlJ Q! (sQsQ]31eA-!ZU0|z 0f @?n'B# b7fJ:]h^Psoj?R֯UaEQ!?!`0 0c s!R'i e:}ɟh~5aef9oa|b c gT#3 AMJUFE//?F_ 8?F*5?F$_D"w?P6 j>JuM` ?uJt  z7It=WiIR_FIl#>2zGz?N@MJAeb #z (#+#+T#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A ?b6 ?AgJamT6G` F !!l"zbA +6iTg5V181 ?2?;:C?'I4/U%G,|# |'b6fLF O @ie<59 FXG'0U`Rb6!}40 V+ZlJQI0h|G!A !16&f &$<EfBM 9b`fJ۰Z@]0?c Q#Oc ?Q\}ֱ~aE:)'0:iG`iw*h<5a#j8oJiqze`~EA#o>"rA #sHD:b # h4>T]]9 MTJUFK?Fc>,Λ?FeTC?FǿJWc^?P6 vk>JuM` ?)uJt  jDFIt=W-M3}IR?8IlRv\#>2zGz?@M2JAe7b #zQ (#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!ZA!Z!?F9"rA #sHD:b # h#4>T#3 AMJUFQL ?F7ԩ+?Fs۰Z?FNb_+iFw?P6 l>JuM` ?uJt  Ç\UIt=W @ٶIRUo_}WIlTy6ވ#>2zGz?N@MJAeb #z (#+#+T#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A ?b6 ?AgJamT6G` F !!l"zbA +6iTg5V181 ?2?;:C?'I4/U%G,|# |'b6&L D O @ie<59 FXG'0U`Rb6!}40 V+ZMQI0h|G!A !16&f &$<EfBM 9b`fJ:r@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij mh~EA#o>"rA #sHD:b # h4>T]]9 MTJUFLli[?FQ>?F'?FǿJWc^?P6 vm>JuM` ?)uJt  ICIt=WN3sIRkzIlRv\#>2zGz?@M2JAe7b #zQ (#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+Z lJ]UhzЎ!A!Z5!O?F9&sA#< $B %jfJ'j`00>oPaYc l]]aE:Ͷc0TbCcba`iK8K8h<5e۰Zk(qQlqe~EeFͭ||`ai !hA'o>v"rA # sHD:b # h4>T]]9 MTJUF63?F8.G?F!?Flaxy?P6 vn>JuM` ?)uJt  ͧILIt=Wf IRE! YBIl p#>2zGz?@M2JAe7b #zQ (#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6LL DO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!A!19b $< $B 9b`fJ: m٠uۘ]0:mOc ?i'A~aEeDͅ?c ? V#NeFaze<5eF|lVaiU3Lh`~EA#o>"rA #sHD:b # h4>T]]9 MTJUFPHY?FpN?F>WB?Ft=E?P6 vo>JuM` ?)uJt  PrIt=WoDIRݮIl$dvĤ#>2zGz?@M JAe #z (#+#+#&*Jp!p!5 g`?CopyrigTt (c) 2U0 9 M c os f"!rԙ !a i n}. Al U (s"e e 5v0d i!Em$}! K2?b6 ?ALb4($I3/ 4/U%b-|# |'Yb6?Fiie<59 FjX/G'0UBib6!}40 aFuJlJ8>UhAA@ !1!Z}o'- E|zo}#<bX$ [ VʼJ:F?Qw0ȒS S I?Bf>QE2!?Fp\BU--# i[ÏF @ h<53n ?CU9fKo]o ڵ h5a9YUU aUUwi]Q i?eq5 h2r_U"rA k#sHD:b # h8>T ]]9 MTJUFǦmڷ?FWZgL?FUw)٫?FQ`m ^?P6 p>JuM`lW? SuJt  NKMtA[X_*`lMVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @i #zv t#.b( (+&B"f ?APb)4(z$D3//& 115 k`?CopyrigTtk(c])k2009kuM0c0os0If21r01a0i0n.k WAl @ 8sBUe0e0v @d@14-3K 7IbO&&i bP~59 &&XGK"'0U!R&!40 FJlJ $Q! (sQsQ]31ZeA!ZU0|z 0 @?n'0S b7fJ:]h?^PsojR֯UaEQ!?!`c0 0c s!R'i e:}ɟh~5aef9oa|b c gT#3 AMJUFܹ?F cM?F*5?F$_D"w?P6 q>JuM` ?uJt  @@|It=Wn56uIR_FIl#>2zGz?N@MJAeb #z (#+#+T#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A ?b6 ?AgJamT6G` F !!l"zbA +6iTg5V181 ?2?;:C?'I4/U%G,|# |'b6fLF O @ie<59 FXG'0U`Rb6!}40 V+ZlJQI0h|G!A !16&f &$<EfBM 9b`fJ۰Z@]0?c Q#Oc ?Q\}ֱ~aE:)'0:iG`iw*h<5a#j8oJiqze`~EA#o>"rA #sHD:b # h4>T]]9 MTJUF (?FthZ?FeTC?FǿJWc^?P6 vr>JuM` ?)uJt  It=WX IR?8IlRv\#>2zGz?@M2JAe7b #zQ (#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6LL2BO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!ZA!Z!?F9"rA #sHD:b # h#4>T#3 AMJUFr!Qw?Fvk?Fs۰Z?FNb_+iFw?P6 s>JuM` ?uJt  1It=WOIRUo_}WIlTy6ވ#>2zGz?N@MJAeb #z (#+#+T#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A ?b6 ?AgJamT6G` F !!l"zbA +6iTg5V181 ?2?;:C?'I4/U%G,|# |'b6&L D O @ie<59 FXG'0U`Rb6!}40 V+ZlJQI0h|G!A !16&f &$<EfBM 9b`fJ:r@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij mh~EA#o>"rA #sHD:b # h4>T]]9 MTJUF!P4K?F l?F'?FǿJWc^?P6 vt>JuM` ?)uJt  {d5Z\It=W2;wEIRkzIlRv\#>2zGz?@M2JAe7b #zQ (#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6LL DO ie<59 FXG/'0U`Rb6-!}40 V+Z lJ]UhzЎ!A!Z5!O?F9&sA#< $B %jfJ'j`00>oPaYc l]]beE:Ͷ10TbCcba`iK8K8h<5e۰Zk(qQlqe~EeFͭ||`ai !hA'o>"rA #sHD:b # h4>T]]9 MTJUFYzUv?FS s9?F!?Flaxy?P6 vu>JuM` ?)uJt  V"(It=W7:LIRE! YBIl p#>2zGz?@M2JAe7b #zQ (#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!A!19b $< $B 9b`fJ: m٠uۘ]0:mOc ?i'A~aEeDͅ?c ? V#NeFaze<5eF|lVaiU3Lh`~EA#o>"rA #sHD:b # h4>T]]9 MTJUF)"z>?F^i2VS?F>WB?Ft=E?P6 vv>JuM` ?)uJt  7It=WܯHIRݮIl$dvĤ#>2zGz?@M JAe #z (#+#+#&*Jp!p!5 g`?CopyrigTt (c) 2U0 9 M c os f"!rԙ !a i n}. Al U (s"e e 5v0d i!Em$}! K2?b6 ?ALb4($I3/ 4/U%b-|# |'Yb6?Fiie<59 FjX/G'0UBib6!}40 aFuJlJ8>UhAA@ !1!Z}o'- E|zo}#<bX$ 0[ VʼJ:F?Qw0ȒS S I?Bf>QE2!?Fp\BU--# i[ÏF @ h<53n ?CU9fKo]o ڵ h5a9YUU aUUwi]Q i?eq5 h2r_U"rA k#sHD:b # h8>T ]]9 MTJUF{KY?F#v\?FUw)٫?FQ`m ^?P6 w>JuM`lW? SuJt  o|MtA[_"oRMVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @i #zv t#.b( (+&B"f ?APb)4(z$D3//& 115 k`?CopyrigTtk(c])k2009kuM0c0os0If21r01a0i0n.k WAl @ 8sBUe0e0v @d@14-3K 7IbO&&i bP~59 &&XGK"'0U!R&!40 FJlJ $Q! (sQsQ]31ZeA!ZU0|z 0 @?nK' # bS7fJ:]h^PsojR֯UaEQ!?!`0 0c s!R'i e:}ɟh~5aef9oa|b c gT#3 AMJUF<5^?FUP?F*5?F$_D"w?P6 x>JuM` ?uJt  .9BWyIt=Wnq׏8IR_FIl#>2zGz?N@MJAeb #z (#+#+T#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A ?b6 ?AgJamT6G` F !!l"zbA +6iTg5V181 ?2?;:C?'I4/U%G,|# |'b6fLF O @ie<59 FXG'0U`Rb6!}40 V+ZlJQI0h|G!A !16&f &$<EfBM 9b`fJ۰Z@]0?c Q#Oc ?Q\}ֱ~aE:)'0:iG`iw*h<5a#j8oJiqze`~EA#o>"rA #sHD:b # h4>T]]9 MTJUF?F͍~eTC?FJWc^?P6 y>JuM` ?juJt  HIt=WByIR?8Il?Rv\#>2zGz?@MJAebM #zT (#+#+#&Jp!p!5 g`?CopyrigTt (c) W20 9 M ]c os f"R!r !a i n. AUl (s"e e v0d @i!Em$+A?b6 ?AgJaT6` F !!l"zbAR +6ig5V181 ?2?;:C?'$4/U%G|# |'b6L DO ie<59 FXG'K0U`Rb6!}4K0 V+ZlJQI0h|G!A!Z!?F9"rA #sHD:b # h#4>T#3 AMJUFSw?FK?Fs۰Z?FNb_+iFw?P6 z>JuM` ?uJt  fd>It=WN6sgHRUo}WIlT?y6ވ#>2zGz?@MJAebM #zT (#+#+#&Jp!p!5 g`?CopyrigTt (c) W20 9 M ]c os f"R!r !a i n. AUl (s"e e v0d @i!Em$+A?b6 ?AgJaT6` F !!l"zbAR +6ig5V181 ?2?;:C?'$4/U%G|# |'b6L3FO ie<59 FXG'K0U`Rb6!}4K0 V+ZlJQI0h|G!A!1&f $<EfB 9b`fJ:r@]0:iG`Oc ?qy"zeEajoJiaze<5e'f`0mFaij mh~EA#o>v"rA # sHD:b # h4>T]]9 MTJUF%u)H׾?FȐ?F'?FǿJWc^?P6 v{>JuM` ?)uJt  ُuߓIt=Wί IRkzIlRv\#>2zGz?@M2JAe7b #zQ (#+#+#&JBp!p!5 g`?CopyrigT}tt(c)tW20 9tM ]c os f"R!r !a i n.t AUl (s"e e v0d @i!Em$+A?b6 ?AgJaT6` F !!l"zbAR +6ig5V181 ?2?;:C?'$4/U%G|# |'b6L3FO ie<59 FXG'K0U`Rb6!}4K0 V+ZlJ]Uhz!A!Z5!?F9&߮sA#`< $B jfJ'j?`00>oPaYc l]G]aE:Ͷ0TbCcba`i?K8K8h<5e۰Zk(qׁQlqe~EeFͭ||`ai !hA'o>"]rA #sHD:b # h4>T]]9 MTJUFf^oO?F]?F!?Flaxy?P6 v|>JuM` ?)uJt  L+It=WݑHIRE! YBIl p#>2zGz?@M2JAe7b #zQ (#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!A!19b $< $B 9b`fJ: m٠uۘ]0:mOc ?i'A~aEeDͅ?c ? V#NeFaze<5eF|lVaiU3Lh`~EA#o>"rA #sHD:b # h4>T]]9 MTJUFr,?F4w?F>WB?Ft=E?P6 v}>JuM` ?)uJt  6j>It=WNFFIRݮIl$dvĤ#>2zGz?@M JAe #z (#+#+#&*Jp!p!5 g`?CopyrigTt (c) 2U0 9 M c os f"!rԙ !a i n}. Al U (s"e e 5v0d i!Em$}! K2?b6 ?ALb4($I3/ 4/U%b-|# |'Yb6?Fiie<59 FjX/G'0UBib6!}40 aFuJlJ8>UhAA@ !1!Z}o'- E|zo}#<b$] VJ:FQw0RS S IBf>QE2!?Fp\BU--# i[F @ h<53n CU9fKo]o  h5a9YUU aUUwi]Q ieq5 hb2r_U"rA #sHD:b # h8>T ]]9 MTJUF_5=~?Fe,=Vݼ?FUw)٫?FQ`m ^?P6 ~>JuM`lW? SuJt  ?aV_MtA[_=p'MVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @i #zv t#.b( (+&B"f ?APb)4(z$D3//& 115 k`?CopyrigTtk(c])k2009kuM0c0os0If21r01a0i0n.k WAl @ 8sBUe0e0v @d@14-3K 7IbO&&i bP~59 &&XGK"'0U!R&!40 FJlJ $Q! (sQsQ]31ZeA!ZU0|z 0 @?nK' # bS7fJ:]h^PsojR֯UaEQ!?!`0 0c s!R'i e:}ɟh~5aef9oa|b c gT#3 AMJUF<@έ?F&¬?F*5?F$_D"w?P6 >JuM` ?uJt  &lIt=WAI׃IR_FIl#>2zGz?N@MJAeb #z (#+#+T#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A ?b6 ?AgJamT6G` F !!l"zbA +6iTg5V181 ?2?;:C?'I4/U%G,|# |'b6fLF O @ie<59 FXG'0U`Rb6!}40 V+ZlJQI0h|G!A !16&f &$<EfBM 9b`fJ۰Z@]0?c Q#Oc ?Q\}ֱ~aE:)'0:iG`iw*h<5a#j8oJiqze`~EA#o>"rA #sHD:b # h4>T]]9 MTJUFpq?Fq֌?FeTC?FǿJWc^?P6 v>JuM` ?)uJt  0@hIt=WmiIR?8IlRv\#>2zGz?@M2JAe7b #zQ (#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!ZA!Z!?F9"rA #sHD:b # h#4>T#3 AMJUF߳ڮ?F$ ?Fs۰Z?FNb_+iFw?P6 >JuM` ?uJt  JJ&qIt=WrhIRUo_}WIlTy6ވ#>2zGz?N@MJAeb #z (#+#+T#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A ?b6 ?AgJamT6G` F !!l"zbA +6iTg5V181 ?2?;:C?'I4/U%G,|# |'b6fLF O @ie<59 FXG'0U`Rb6!}40 V+ZlJQI0h|G!A !16&f &$<EfBM 9b`fJ:r@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij mh~EA#o>"rA #sHD:b # h4>T]]9 MTJUF>=9_?FL(Ѿ?F'?FǿJWc^?P6 v>JuM` ?)uJt  V6>nIt=WgD~baIRkzIlRv\#>2zGz?@M2JAe7b #zQ (#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+Z lJ]UhzЎ!A!Z5!O?F9&sA#< $B %jfJ'j`00>oPaYc l]]|eE:Ͷ10TbCcba`iK8K8h<5e۰Zk(qQlqe~EeFͭ||`ai !hA'o>"rA #sHD:b # h4>T]]9 MTJUFBP(?FxQ8?F!?Flaxy?P6 v>JuM` ?)uJt  9KIt=WYGJIRE! YBIl p#>2zGz?@M2JAeWb #z@Q (#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!A!19b $< $B 9b`fJ: m٠uۘ]0:mOc ?i'A~aEeDͅ?c ? V#NeFaze<5eF|lVaiU3Lh`~EA#o>"rA #sHD:b # h4>T]]9 MTJUFMW?FM6N?F>WB?Ft=E?P6 v>JuM` ?)uJt  1|It=WƯ:IRݮIl$dvĤ#>2zGz?@M JAe #z (#+#+#&*Jp!p!5 g`?CopyrigTt (c) 2U0 9 M c os f"!rԙ !a i n}. Al U (s"e e 5v0d i!Em$}! K2?b6 ?ALb4($I3/ 4/U%b-|# |'Ib6?Fiie<59 FjX/G'0UBib6!}40 aFuJlJ8>UhAA@ !1!Z}o'- E|zo}#<bX$!B] VʼJ:F?Qw0ȒS S I?Bf>QE2!?Fp\BU--| i[F @ h<53n CU9fKo]o ڵ h5a9YUU aUUwiǤ]Q işeq5 h2r_U"rA 5#sHD:b # h8>T ]]9 MTJUF('J?FK5+:?FUw)٫?FQ`m ^?P6 >JuM`lW? SuJt  y SksMtA[_eMVYBMpry2VI'>\??\.?lA8 M2ll/f?=@MJB& @i #zv t#.b( (+&B"f ?APb)4(z$D3//& 115 k`?CopyrigTtk(c])k2009kuM0c0os0If21r01a0i0n.k WAl @ 8sBUe0e0v @d@14-3K 7IbO&&i bP~59 &&XGK"'0U!R&!40 FJlJ $Q! (sQsQ]31ZeA!ZU0|z 0 @?n'."# b7fJ:]h?^PsojR֯UaEQ!?!`c0 0c s!R'i e:}ɟh~5aef9oa|b c gT#3 AMJUFB?F̒-8?F*5?F$_D"w?P6 >JuM` ?uJt  4E$pIt=WLx4IR_FIl#>2zGz?N@MJAeb #z (#+#+T#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A ?b6 ?AgJamT6G` F !!l"zbA +6iTg5V181 ?2?;:C?'I4/U%G,|# |'b6&L72B O @ie<59 FXG'0U`Rb6!}40 V+ZlJQI0h|G!A !16&f &$<Ef72M 9b`fJ۰Z@]0?c Q#Oc ?Q\}ֱ~aE:)'0:iG`iw*h<5a#j8oJiqze`~EA#o>"rA #sHD:b # h4>T]]9 MTJUFJ*ӏ?Fc?FeTC?FǿJWc^?P6 v>JuM` ?)uJt  uIt=Wt]aIR?8IlRv\#>2zGz?@M2JAe7b #zQ (#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!ZA!Z!?F9"rA #sHD:b # h#4>T#3 AMJUF"?F!S/?Fs۰Z?FNb_+iFw?P6 >JuM` ?uJt  B?˳It=WFp\cIRUo_}WIlTy6ވ#>2zGz?N@MJAeb #z (#+#+T#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A ?b6 ?AgJamT6G` F !!l"zbA +6iTg5V181 ?2?;:C?'I4/U%G,|# |'b6fLF O @ie<59 FXG'0U`Rb6!}40 V+ZlJQI0h|G!A !16&f &$<EfBM 9b`fJ:r@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij mh~EA#o>"rA #sHD:b # h4>T]]9 MTJUF?F2\D?F'異JWc^?P6 ݉>JuM` ?juJt  rs"It=WVIRkzIl?Rv\#>2zGz?@MJAebM #zT (#+#+#&Jp!p!5 `?CopyrigTtZ(c)Z20 9ZM c. os f"!r !a i n.Z Al [&s"e ej v0d  i!Em$+A?b6 ?zAgJaۢT6` F !!l"zbjA) +6ig5UV181 ?2?F;:C?'4/U%G|# |'b6LA#BO ie<59 FXG'0U`Rb6!}40 V+ZlJ]UhzA!Z5!?F9&s7A#< X$" jfJ'j`00>oPaYc l]]aE:?Ͷ0TbCcba`iK8K8h<5e?۰Zk(qQlqe~EeFͭ||`ai !h`A'o>"rA #sHD:b # h4>T]]9 MTJUF79 Ğ?Fl_n.?F!?Flaxy?P6 v>JuM` ?)uJt  sd It=W> IRE! YBIl p#>2zGz?@M2JAe7b #zQ (#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!A!B19b$< $BM 9b`fJ: m٠uۘ]ᇄ0:mOc i'A~aEeD?c  V#NeFaze<5eF|lVaiU?3Lh~EA#o>"rA k#sHD:b # h4>T]]9 MTJUF-#&\?FZ|?F>WB?Ft=E?P6 v>JuM` ?)uJt  [It=Wq.IRݮIl$dvĤ#>2zGz?@M JAe #z (#+#+#&*Jp!p!5 g`?CopyrigTt (c) 2U0 9 M c os f"!rԙ !a i n}. Al U (s"e e 5v0d i!Em$}! K2?b6 ?ALb4($I3/ 4/U%b-|# |'Yb6?Fiie<59 FjX/G'0UBib6!}40 aFuJlJ8>UhAA@ !1!Z}o'- E|zo}#<b$] VM:FQw0RS S IBf>E2!?Fp\BU--# i[F @ h<53n CU9fKo]o  h5a9YUU aUUwi]Q ieq5 hb2r_U"rA #sHD:b # h8>T ]]9 MTJUFW>?F7 ?FUw)٫?FQ`m ^?P6 >JuM`lW? SuJt  /êQPͰMtA[_Y#MVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @i #zv t#.b( (+&B"f ?APb)4(z$D3//& 115 k`?CopyrigTtk(c])k2009kuM0c0os0If21r01a0i0n.k WAl @ 8sBUe0e0v @d@14-3K 7IbO&&i bP~59 &&XGK"'0U!R&!40 FJlJ $Q! (sQsQ]31ZeA!ZU0|z 0 @?nK' # bS7fJ:]h^PsojR֯UaEQ!?!`0 0c s!R'i e:}ɟh~5aef9oa|b c g~L1B~`1F~t1[D1e1R~1~1Z~1^~1b~Af~Aj~(AnT#3 AMJUF6٫&?Fh%4+ޱ?F*5?F$_D"w?P6 >JuM` ?uJt  (LbIt=W,MyIR_FIl#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L(BO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4 9b`fJ۰Z@]0?c Q#Oc Q\}|zeE:O)0:iG`iw*h<5a#j8oJiqze~EA#o>"rA #sHD: # h4>T]]9 MTJUFI)?FUj?FeTC?FǿJWc^?P6 v>JuM` ?)uJt  6|.It=WL\} IR?8IlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!Z!姈?F9"rA #sHD: # h#4>T#3 AMJUFe{5?F?Fs۰Z?FNb_+iFw?P6 >JuM` ?uJt  DqIt=W{*IRUo_}WIlTy6ވ#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ:rO@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij? mh~EA#o>"rA k#sHD: # h4>T]]9 MTJUFS?FަƢ?F'?FǿJWc^?P6 v>JuM` ?)uJt  cIt=W(?IRkzIlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 $V+ZlJ]Uhz@!A!Z5?!?F9&sA #<# $B jfJ'j`00>oPaYc l]]aE:Ͷ0TbCcba`iK8K8h<5e۰ϿZk(qQlqe~EeFͭ||`ai !hA'o>"rA 5#sHD: # h4>T]]9 MTJUF蕯?Fcų[?F!?Flaxy?P6 v>JuM` ?)uJt  {It=W ůIRE! YBIl p#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!`197b$<# h$B 9b`fJ: m٠uۘ]0:mOc i'A~aEe7D?c  V#NeFaze<5eF|lVaiU3Lh~EA#o>"]rA #sHD: # h4>T]]9 MTJUFA!z?FA]?F>WB?Ft=E?P6 v>JuM` ?)uJt  wT vIt=W?mIRݮIl$dvĤ#>2zGz?@MJAebM #zT (#+#+#&Jp!p!5 g`?Copy_rigTtt(c)t2U0 9tM c os f"!rԙ !a i n}.t Al U (s"e e 5v0d i!Em$}! K2?b6 ?ALb4($I3/ 4/U%b-|# |'Yb6?Fiie<59 FjX/G'0UBib6!}40 aFuJlJ8>UhAA@ !1!Z}o'- E|zo}#<b$] VJ:FQw0RS S IBf>QE2!?Fp\BU--# i[F @ h<53n CU9fKo]o  h5a9YUU aUUwi]Q ieq5 hb2r_U"rA #sHD: # h8>T ]]9 MTJUF gl6?FDb,)?FUw)٫?FQ`m ^?P6 >JuM`lW? SuJt  LUMtA[_ʓWMVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @nib#zv t#b( (+&B" ?APb)4(z$CD3//&*115 k`?CopyrigTtk(wc)k2009kM0c0o%s0f21r01ua0i0n.k_ Al @ 8UsBe0e0v @ d@1H4-,3 7%bO&&i b~59 && XGK"'0U!R&!40 FJlJ Q! (sQsQ]31heA!ZU0|z3 0 @?ҏn'B# b7fJ:]h^PsojR֯UaEQ!?ߟ!`0 0c s!R'i e:}ɟh~5aef9oa|b c gT#3 AMJUFE//?F_ 8?F*5?F$_D"w?P6 >JuM` ?uJt  z7It=WiIR_FIl#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ۰Z@]0?c Q#Oc Q\}ȱ~aE:)0:iG`iw*h<5a#j8oJiqze~EA#o>"]rA #sHD: # h4>T]]9 MTJUFK?Fc>,Λ?FeTC?FǿJWc^?P6 v>JuM` ?)uJt  jDFIt=W-M3}IR?8IlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!Z!姈?F9"rA #sHD: # h#4>T#3 AMJUFQL ?F7ԩ+?Fs۰Z?FNb_+iFw?P6 >JuM` ?uJt  Ç\UIt=W @ٶIRUo_}WIlTy6ވ#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ:rO@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij? mh~EA#o>"rA k#sHD: # h4>T]]9 MTJUFLli[?FQ>?F'?FǿJWc^?P6 v>JuM` ?)uJt  ICIt=WN3sIRkzIlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 $V+ZlJ]Uhz@!A!Z5?!?F9&sA #<# $B jfJ'j`00>oPaYc l]]aE:Ͷ0TbCcba`iK8K8h<5e۰ϿZk(qQlqe~EeFͭ||`ai !hA'o>"rA 5#sHD: # h4>T]]9 MTJUF63?F8.G?F!?Flaxy?P6 v>JuM` ?)uJt  ͧILIt=Wf IRE! YBIl p#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!`197b$<# h$B 9b`fJ: m٠uۘ]0:mOc i'A~aEe7D?c  V#NeFaze<5eF|lVaiU3Lh~EA#o>"]rA #sHD: # h4>T]]9 MTJUFPHY?FpN?F>WB?Ft=E?P6 v>JuM` ?)uJt  PrIt=WoDIRݮIl$dvĤ#>2zGz?@MJAebM #zT (#+#+#&Jp!p!5 g`?CopyrigTt (c) W20 9 M ]c os f"R!r !a i n. AUl (s"e e v0d @i!Em$}! K2?b6 3?ALb4(&$3/ 4/U%-|# e|'b6 ?Fiie<59 FX/G'0UBb6!}40 aFuJlJ 8>UhAA !1!Z}'- E|zo}#<b$] RVJ:FQwa0RS S IBf>QE2!?Fp\B?U--# i[F @ h<53n CU9fKo]o ڵ h5a9YUU aUU~wi]Q ieq5 h2r_U"]rA #sHD: # h8>T ]]9 MTJUFǦmڷ?FWZgL?FUw)٫?FQ`m ^?P6 AJuM`lW? SuJt  NKMtA[X_*`lMVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @nib#zv t#b( (+&B" ?APb)4(z$CD3//&*115 k`?CopyrigTtk(wc)k2009kM0c0o%s0f21r01ua0i0n.k_ Al @ 8UsBe0e0v @ d@1H4-,3 7%bO&&i Ab~59 &&XGK"'0U!R&!40 FJlJ Q! (sQsQ]31heA!ZU0|z3 0 @?ҏn'# b7fJ:]h^PsojR֯UaEQ!?ߟ!`0 0c s!R'i e:}ɟh~5aef9oa|b c gT#3 AMJUFܹ?F cM?F*5?F$_D"w?P6 >JuM` ?uJt  @@|It=Wn56uIR_FIl#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ۰Z@]0?c Q#Oc Q\}ȱ~aE:)0:iG`iw*h<5a#j8oJiqze~EA#o>"]rA #sHD: # h4>T]]9 MTJUF (?FthZ?FeTC?FǿJWc^?P6 v>JuM` ?)uJt  It=WX IR?8IlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!Z!姈?F9"rA #sHD: # h#4>T#3 AMJUFr!Qw?Fvk?Fs۰Z?FNb_+iFw?P6 >JuM` ?uJt  1It=WOIRUo_}WIlTy6ވ#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ:rO@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij? mh~EA#o>"rA k#sHD: # h4>T]]9 MTJUF!P4K?F l?F'?FǿJWc^?P6 v>JuM` ?)uJt  {d5Z\It=W2;wEIRkzIlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 $V+ZlJ]Uhz@!A!Z5?!?F9&sA #<# $B jfJ'j`00>oPaYc ?l]]beE:Ͷǝ0TbCcba`iK8K8h<5e۰Zk(qQlqe~EeFͭ||`ai !hA'o>"rA #sHD: # h4>T]]9 MTJUFYzUv?FS s9?F!?Flaxy?P6 v>JuM` ?)uJt  V"(It=W7:LIRE! YBIl p#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!`197b$<# h$B 9b`fJ: m٠uۘ]0:mOc i'A~aEe7D?c  V#NeFaze<5eF|lVaiU3Lh~EA#o>"]rA #sHD: # h4>T]]9 MTJUF)"z>?F^i2VS?F>WB?Ft=E?P6 v>JuM` ?)uJt  7It=WܯHIRݮIl$dvĤ#>2zGz?@MJAebM #zT (#+#+#&Jp!p!5 g`?CopyrigTt (c) W20 9 M ]c os f"R!r !a i n. AUl (s"e e v0d @i!Em$}! K2?b6 3?ALb4(&$3/ 4/U%-|# e|'b6 ?Fiie<59 FX/G'0UBb6!}40 aFuJlJ 8>UhAA !1!Z}'- E|zo}#<b$] RVJ:FQwa0RS S IBf>QE2!?Fp\B?U--# i[F @ h<53n CU9fKo]o ڵ h5a9YUU aUU~wi]Q ieq5 h2r_U"]rA #sHD: # h8>T ]]9 MTJUF{KY?F#v\?FUw)٫?FQ`m ^?P6 >JuM`lW? SuJt  o|MtA[_"oRMVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @nib#zv t#b( (+&B" ?APb)4(z$CD3//&*115 k`?CopyrigTtk(wc)k2009kM0c0o%s0f21r01ua0i0n.k_ Al @ 8UsBe0e0v @ d@1H4-,3 7%bO&&i Ab~59 &&XGK"'0U!R&!40 FJlJ Q! (sQsQ]31heA!ZU0|z3 0 @?/n' #M b7fJ:]h^PsojRփUaEQ!?!`0 0c s!R'i e:}ɟh~5aef9oa|b c gT#3 AMJUF<5^?FUP?F*5?F$_D"w?P6 >JuM` ?uJt  .9BWyIt=Wnq׏8IR_FIl#>2zGz?N@MJAeb #zb(#+B#+#&Mp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L(\"BO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4\" 9b`fJ۰Z@]0?c Q#Oc Q\}ȱ~aE:)0:iG`iw*h<5a#j8oJiqze~EA#o>"]rA #sHD: # h4>T]]9 MTJUF?F͍~eTC?FJWc^?P6 ݤ>JuM` ?juJt  HIt=WByIR?8Il?Rv\#>2zGz?@MJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6LLyBBO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!ZA!Z!?F9"]rA #sHD: # h#4>T#3 AMJUFSw?FK?Fs۰Z?FNb_+iFw?P6 >JuM` ?uJt  fd>It=WN6sgHRUo}WIlT?y6ވ#>2zGz?@MJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!A!1l&fL# $<EfB 9b`fJ:r'@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij mh~EA#o>"rA 5#sHD: # h4>T]]9 MTJUF%u)H׾?FȐ?F'?FǿJWc^?P6 v>JuM` ?)uJt  ُuߓIt=Wί IRkzIlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTtt(c])t20 9tuM c os If"!r !a i n.t WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+Z lJ]UhzЎ!A!Z5!O?F9&sA#<# $B %jfJ'j`00>oPaYc l]]aE:Ͷc0TbCcba`iK8K8h<5e۰Zk(qQlqe~EeFͭ||`ai !hA'o>v"rA # sHD: # h4>T]]9 MTJUFf^oO?F]?F!?Flaxy?P6 v>JuM` ?)uJt  L+It=WݑHIRE! YBIl p#>2zGz?@M2JAe7b #z]b(#+%#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'b6L5*6O ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!19b$<# $4h" 9b`fJ: m٠uۇ]0:mOc i'A~aEeכD?c  V#NeFaze<5eF?|lVaiU3Lh~EA#o>"rA #sHD: # h4>T]]9 MTJUFr,?F4w?F>WB?Ft=E?P6 v>JuM` ?)uJt  6j>It=WNFFIRݮIl$dvĤ#>2zGz?@MJAebM #zT (#+#+#&Jp!p!5 g`?CopyrigTt (c) W20 9 M ]c os f"R!r !a i n. AUl (s"e e v0d @i!Em$}! K2?b6 3?ALb4(&$3/ 4/U%-|# e|'b6 ?Fiie<59 FX/G'0UBb6!}40 aFuJlJ 8>UhAA !1!Z}'- E|zo}#<b$] RVJ:FQwa0RS S IBf>QE2!?Fp\B?U--# i[F @ h<53n CU9fKo]o ڵ h5a9YUU aUU~wi]Q ieq5 h2r_U"]rA #sHD: # h8>T ]]9 MTJUF_5=~?Fe,=Vݼ?FUw)٫?FQ`m ^?P6 >JuM`lW? SuJt  ?aV_MtA[_=p'MVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @nib#zv t#b( (+&B" ?APb)4(z$CD3//&*115 k`?CopyrigTtk(wc)k2009kM0c0o%s0f21r01ua0i0n.k_ Al @ 8UsBe0e0v @ d@1H4-,3 7%bO&&i Ab~59 &&XGK"'0U!R&!40 FJlJ Q! (sQsQ]31heA!ZU0|z3 0 @?/n' #M b7fJ:]h^PsojRփUaEQ!?!`0 0c s!R'i e:}ɟh~5aef9oa|b c gT#3 AMJUF<@έ?F&¬?F*5?F$_D"w?P6 >JuM` ?uJt  &lIt=WAI׃IR_FIl#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ۰Z@]0?c Q#Oc Q\}ȱ~aE:)0:iG`iw*h<5a#j8oJiqze~EA#o>"]rA #sHD: # h4>T]]9 MTJUFpq?Fq֌?FeTC?FǿJWc^?P6 v>JuM` ?)uJt  0@hIt=WmiIR?8IlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!Z!姈?F9"rA #sHD: # h#4>T#3 AMJUF߳ڮ?F$ ?Fs۰Z?FNb_+iFw?P6 >JuM` ?uJt  JJ&qIt=WrhIRUo_}WIlTy6ވ#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ:rO@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij? mh~EA#o>"rA k#sHD: # h4>T]]9 MTJUF>=9_?FL(Ѿ?F'?FǿJWc^?P6 v>JuM` ?)uJt  V6>nIt=WgD~baIRkzIlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 $V+ZlJ]Uhz@!A!Z5?!?F9&sA #<# $B jfJ'j`00>oPaYc ?l]]|eE:Ͷǝ0TbCcba`iK8K8h<5e۰Zk(qQlqe~EeFͭ||`ai !hA'o>"rA #sHD: # h4>T]]9 MTJUFBP(?FxQ8?F!?Flaxy?P6 v>JuM` ?)uJt  9KIt=WYGJIRE! YBIl p#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!`197b$<# h$B 9b`fJ: m٠uۘ]0:mOc i'A~aEe7D?c  V#NeFaze<5eF|lVaiU3Lh~EA#o>"]rA #sHD: # h4>T]]9 MTJUFMW?FM6N?F>WB?Ft=E?P6 v>JuM` ?)uJt  1|It=WƯ:IRݮIl$dvĤ#>2zGz?@MJAebM #zT (#+#+#&Jp!p!5 g`?CopyrigTt (c) W20 9 M ]c os f"R!r !a i n. AUl (s"e e v0d @i!Em$}! K2?b6 3?ALb4(&$3/ 4/U%-|# e|'b6 ?Fiie<59 FX/G'0UBb6!}40 aFuJlJ 8>UhAA !1!Z}'- E|zo}#<b$] RVJ:FQwa0RS S IBf>QE2!?Fp\BU--| i?[F @ h<53n CU9fKo]o ڵ h5a9YUU aUU?wi]Q ieq5 h2r_U"rA #sHD: # h8>T ]]9 MTJUF('J?FK5+:?FUw)٫?FQ`m ^?P6 >JuM`lW? SuJt  y SksMtA[_eMVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @nib#zv t#b( (+&B" ?APb)4(z$CD3//&*115 k`?CopyrigTtk(wc)k2009kM0c0o%s0f21r01ua0i0n.k_ Al @ 8UsBe0e0v @ d@1H4-,3 7%bO&&i Ab~59 &&XGK"'0U!R&!40 FJlJ Q! (sQsQ]31heA!ZU0|z3 0 @?/n' #M b7fJ:]h^PsojRփUaEQ!?!`0 0c s!R'i e:}ɟh~5aef9oa|b c gT#3 AMJUFB?F̒-8?F*5?F$_D"w?P6 >JuM` ?uJt  4E$pIt=WLx4IR_FIl#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ۰Z@]0?c Q#Oc Q\}ȱ~aE:)0:iG`iw*h<5a#j8oJiqze~EA#o>"]rA #sHD: # h4>T]]9 MTJUFJ*ӏ?Fc?FeTC?FǿJWc^?P6 v>JuM` ?)uJt  uIt=Wt]aIR?8IlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!Z!姈?F9"rA #sHD: # h#4>T#3 AMJUF"?F!S/?Fs۰Z?FNb_+iFw?P6 >JuM` ?uJt  B?˳It=WFp\cIRUo_}WIlTy6ވ#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ:rO@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij? mh~EA#o>"rA k#sHD: # h4>T]]9 MTJUF?F2\D?F'異JWc^?P6 ݴ>JuM` ?juJt  rs"It=WVIRkzIl?Rv\#>2zGz?@MJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigT}tZ(c)ZW20 9ZM ]c os f"R!r !a i n.Z AQl [&s"e e v0d @i!Em$+A?b6 ?AgJaT6` F !!l"zbAR +6ig5V181 ?2?;:C?'$4/U%G|# |'b6L3FO ie<59 FXG'K0U`Rb6!}4K0 V+ZlJ]Uhz!A!Z5!?F9&߮sA#`<# $B jfJ'j?`00>oPaYc l]G]aE:Ͷ0TbCcba`i?K8K8h<5e۰Zk(qׁQlqe~EeFͭ||`ai !hA'o>"]rA #sHD: # h4>T]]9 MTJUF79 Ğ?Fl_n.?F!?Flaxy?P6 v>JuM` ?)uJt  sd It=W> IRE! YBIl p#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!`197b$<# h$B 9b`fJ: m٠uۘ]0:mOc i'A~aEe7D?c  V#NeFaze<5eF|lVaiU3Lh~EA#o>"]rA #sHD: # h4>T]]9 MTJUF-#&\?FZ|?F>WB?Ft=E?P6 v>JuM` ?)uJt  [It=Wq.IRݮIl$dvĤ#>2zGz?@MJAebM #zT (#+#+#&Jp!p!5 g`?CopyrigTt (c) W20 9 M ]c os f"R!r !a i n. AUl (s"e e v0d @i!Em$}! K2?b6 3?ALb4(&$3/ 4/U%-|# e|'b6 ?Fiie<59 FX/G'0UBb6!}40 aFuJlJ 8>UhAA !1!Z}'- E|zo}#<b$] RVJ:FQwa0RS S IBf>QE2!?Fp\B?U--# i[F @ h<53n CU9fKo]o ڵ h5a9YUU aUU~wi]Q ieq5 h2r_U"]rA #sHD: # h8>T ]]9 MTJUFW>?F7 ?FUw)٫?FQ`m ^?P6 >JuM`lW? SuJt  /êQPͰMtA[_Y#MVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @nib#zv t#b( (+&B" ?APb)4(z$CD3//&*115 k`?CopyrigTtk(wc)k2009kM0c0o%s0f21r01ua0i0n.k_ Al @ 8UsBe0e0v @ d@1H4-,3 7%bO&&i Ab~59 &&XGK"'0U!R&!40 FJlJ Q! (sQsQ]31heA!ZU0|z3 0 @?/n' #M b7fJ:]h^PsojRփUaEQ!?!`0 0c s!R'i e:}ɟh~5aef9oa|b c g_+s +EiHG%>F8Z#B9? ~d`ܮ :@+H| <Ss񨚳 P x O   oG  ߫( L!X $ ~( >,諶 / h3(= P7 : A D] WHH膸 K OH >Sϸ V Zq X^t bHHv ex Ii#'z l)| wp `tH x {#' 2߇ z) )8 h #'@ 6B QHE ژ)8G |'hI 6>~K 00"'M 0 N882 74 )6 @8 ߹): oj  W&? \$H1 3 0%%5 17 *:  7<  )h> #' @:" RbG% 8' h) :)+ :- ެ; T82 : : H {(8 }J v((= _/8X? ( ( 2[ "Y( &YX *!( .% 17 R5I( 8nYX < 8@H C"i G QKFiXNXiR~nYAVYYYo]"eHWa(Tg0;j~FinXiȳ&ru'y9}K}4jY=aH(NjjjY#y߰o4i7jPࡾjRijT'yVĬyYQ"iH[94ix]ڷY_o1 i(4~yH6cƎix88:4i<zY?"YHxg܊yy~(xY8YhYoKnYmY85yh-FH#/8x 7o~{(HU!) n$Z(lH+~x_/2)6ߚu:Ʃ8>ZhAl@IE)BIEL 8G5P(hITHKW(Mj[~( ^z8"bxh$Mf &i(mƩ*gqZ(-ulX/xz1W|~35(8lƩX:Z<l>@z(~ X,1UFD  h(^TYYBBUF~?x<F BP(?P? V B666 6 B66h9ȅ2H??\IB@L&d2?-(\.Y'(.sUM!K&Pm/:  0oB`2Fiber], pt c t ansm t #n tw rk equ p e t h rd 0-1e!91A^| (gUGr& wr  .@ wvwpppopp wwpwxwwwwpx=pp pwvLDrag thuesapWonodwipe.bL&d2ɿ~?P?=t˿)"g??)j3@ ?DHD: # h4>T]]9 MTAUF}Da 0?FH7r?F_/++?FXϸ?P6 `A$M (#<#lPJuM{` ?#{{20{F{ZujJtg  ɟ߇{tј` 'ɭ?s>JU2zGz?@M[#|Jk&A@$7b#z #!"b(b)+&J[e#t"t"?'6 I?A$/%Be#115 "`?CopyrigTt (c)020090M0c0oKs0f21r01a0i0n.0 Al0 8sBe0e0v@d0S"{14\#-Xe#3 7'6\% ZLFiie1E9 FXG/'0UR'6-!B40 FJlJ7Q0hLG1ZA!Y(}=K?Fl@I0`fS?Ks`ZsLbL\"JTy+HlPrW?F腺Z>FbyC ua)H0Ynǿl_Vef[U>dxԷErlg uVcQ$@aELe|}?FCʞ*Nc`vna Oc>wok&O8XWleBPmlfVArieoo.HLe+pQ?FYR&`O]vol``}; PaiEz6!iDF`ޣKH_SFn.ki`"rA k#ڃjnw5}6!i{HD: # h4>T]]9 MTUF)Q~ R?F\L#?Fx?F=:?P6 AA M (<Pdx#  $<PdxmJuM` /?9"9"29"F9"Z9"n9"9"9"9"/(Su()Jt%!  _lcd6tY1s2˟ke5n7rs=e57Fq1 >JU2zGzK?=@M3J6A@n4b%Cz@C2b3H%@3HNKNFJ[3 B?F &?A9D POqEUB3AA5 2`?CopyrigTt (c)5P20AP95PM-Pc.+Pos%Pf3R$Qr'P`Qa3Pi%Pn.5P Al{P +XsReSPej+PvPdsP2@AB3b-3 S  WF5 \fiieU9 fjXg2'0UbŴF!D0 TIf]jlJ @maa ]xQQ9A8`3F+G?F| @"$#әF1 "X3]/Lֲ1r2JAn?FkS?FΘtpb N ?_)Ay*t^(|CN7ȗu$#D[DP1X3aT1 :" $z 2? I? uK?$"X2a@s(BS2}:r5qEqEtFdo?F[K ۃ?FJ(OL?P$DT!  bqt%@{rfJHG^"f~Bt2)Џ⏪32Uu5*&?Fl5?F)b&&~?Fcle?P,A&!٘UީȽ|;!GmH﹡^@pw*oAΏ ՟4ޯFUuu #?F{+.W?,b26I>P-nx:aG|ZÉ-DuH rε50!au>uM"D$.@4#ZqTmz?FD?Fb.\i ]aJ`?@~{bcEt/^Vu1 a{&DFT?@l4ϳ$3<@ƒ>Pn}11WBx~|kz}~tesDޠux)LBk(a\6 `G $#Ppztt~Pz+ݿ]s~aϔb-4쇂3~uy0cفMk?Fǒ?F 6_?P(AT~' 6>Ľ?e+P?Toa?CB1wa1 83쇖y&Nfn~bS9xvD<$Q$#QcuNI|" 0)^VUıwm2G:LB3 .쇪;utq~F>`7bt?di д9Brq 8CJ &*짦f4omGL3A/S/#HD: # h4>T]]9 MTMUF؋@?Fce?F5svL*?F7= ?P6 ]A]M (<P]d_]x#_(_<s__JuM` ?_""2"F"Z"n"""uJt  oUxJ5t!21l]5 7,ȃ5$7ǁO>JU2zG/z?=@Ms3J6A@4b3z郷0392bR808;6J[}3 w(B??F ?A4 T? EB}3AA5 2`?CopyrigTt (c)@20@9@M@c@os@fBAr@Aa@i@n.@ AlP HsRe@e@v-PdPk2ADt3-}3C eG?Ft5 r\ViieIU9 VXW2'0U.b?F!ZD0 VZl1 &@(aa 3ArQ1q8Z}3F{و>r/2"0,s\>rt2JA%)?F+?FvWZk>Fy4 wa)`Ayf/!\3s M_lu|a<1u#Ca aܵ0 lkj? &_8)?"a@=s(<" !rÀ5 EbqEnu3.h?Fn`?F=/*lq?FF|oĵWA|GK|Wu|V#H1CRW%7#I3Et2~IUnuj "?FBĥج|+zw~>{Iσ]X41yu,A1BaNycЍ@2Wa4y}K6#I@ZltF~fUds!'Hɇ?FQy~<?F$f㷖꿈xywF,(|pgF|'c7|,X&l x קi4bqJ+ o N9z)e~zy0l44t;Ff4t/p1znuf.ʐ Lˮ?F I`V'0'|֠{yl7#y%m"gs7#It~jyozY_ƀ%çM,fFI|^t-,捇&F9~lFV6#I.@t~3ot~F+}|$+p?F?~a@v2rA 3z9Xt|L;W-yG7IGYt#~HD: # h4>T]]9 MTMUF}W?F?F5svL*?F7= ?P6 >M (<Pd_]x#_(_<s__JuM` ?_""2"F"Z"n"""uJt  wCHݛ5t!2-8Lc5 7,ȃ5$7ǁO>JU2zG/z?=@Ms3J6A@4b3z郷0392bR808;6J[}3 w(B??F ?A4 T? EB}3AA5 2`?CopyrigTt (c)@20@9@M@c@os@fBAr@Aa@i@n.@ AlP HsRe@e@v-PdPk2ADt3-}3C eG?Ft5 r\ViieIU9 VXW2'0U.b?F!ZD0 VZl1 &@(aa ]ArQ1q8Z}3F{و>r_2h"0,sf >r)t2JA%)?F+?FvWZk>Fy4 wa)`Ayf/!\3s ޿Mlu|a<1u#Ca aܵ0 lkj? &_8S?"a@=sB(<" !r5 EbqEnu3.h?Fn`?F=/*lq?FF|oĵWA|GK|WuǢ|V#HCRW%7#I3Et2~IUnuj "?FBĥج|ﲖ+zw~>{I]X41yu,A1BϠaNycߍ@2Wa4y}K6#IZltF~fU~ds!'Hɇ?FQy~<?F$fՖxywF,(|pgF|'c7|,X&l x ק1^uJ+ o N9z)e~zy0l44t;Ff4t/p1znuf.ʐ Lˮ?F I`V'0'|֠ yl7#y%m"gs7#It~jyozY_ƀ%çM,fFI|^t-,捇&F9~lFV6#I.@t~3ot~F+}|$+p?F?~a@v2rA 3z9Xt|L;W-yG7IGYt#~HD H# h4>T]]9 MMUF:TJ3?F ?FW7")?F(GP@?P6 f@#A#M (<Pd]x#$<PdxmJuM` /?""2"F"Z"n"""u )Jt!  ߆,ߑ'7t172DJM)527HB)5L7r Dɸ!>JU2zGz?=)@M3J6߀A@E4bM3z03a2b808RKFJ[3 PB?gF ?$A4 O5E3AA5 G2`?CopyrigTt (c)@20P9@M@c@oKs@fBAr@$Qa@i@n.@ Al?P HsCRePe@vUPd7P2AED3 5 -_C %GgFViieE9 VXW2'K0UVbgF!DK0 f!jl$1N@(aa ]3AQ18`3FPʞ>FQ?͉@"#] >"3n3v1lr2JA_[3nB?F#lNa?F ?Fe a)A@y?2oW Vytu#|_ӄ 5u3?\1a u׿@ ]h? d?#t?"2%a@ks(<29tK1r55EqEu}?FG?F U?F(k=|S@ܱ|ŗ-_`ǿmgV0ÖpITf#was2Eu2* ?Fd|ڀ >{$*Jr| ZȘ*'vY9!=a,z0WJ⅏ze#wFUuUfNڿ?F6 +C?F}ۛ)NQv1Vy>ﴺkcY︉0h ӯe#wZq~zd! nS@3(}|{gu2lqZt@>% rgrܥg/?B~fȿe#wϢnuex9?Fqp1C5bb=|=I"~;Jt^E>~KAOA/0ƛOu=e#w yJG?Fާ;נpIZ=gE܎=|grE2`~%-Bg0L0;e3w0䬌3t-~F`3FgG ߈A2rA 3+j[K~@])nATGf@B7e3w7I#Ha`dgHD H# h4>T]]9 MUFQ|3?Fͪ'?FH(])?F?\s?P6 A > (<@P]dx#D $<PdxJuM` ?9"9"29"F9"Z9"n9"9"9"9"/()u()Jt%!  [4c7tY1s2&뒺e5n7-V;e57n?ͷqJ1 >JU2zGz?R=@M3J6A@4b%Cz@C.2b3H%@3HNKNFJ[3 B?F I?A9D POqE*3AA5 2`?CopyrigTt (c)5P2U0AP95PM-Pc+Pos%Pf3R$Qr'P`Qa3Pi%Pn}.5P Al{PU +XsReSPe+P5vPdsP2AED3 (5 -_ SK  WFVi@ieE9 VXW2'0UbţF!D0 If]jl J @maa ]xQQ9A8Z3F꺷S"$#P8hB1 2X2?@s6vK r2J:jtFEZ qrs%@"s )1HA\HG@HA"lNa?F|/(?Fb) a)AyF7U1 "fWmA}$# c6n>}X3?$1 a }x ?@ %? z?M?$"X2%a@s(}{^<[}̈ιƋ/90!3'x+;m3; 3)1F;+x(Nڿ?FT&B?Fb{f,-JQ1;Ejv㓌 +ߌK$ؿLrZ\b03>P1Z;~+p•%ʲSpFZ>ppd-Tfs1u񶛄D𷱄K 瓌)h:GrKr߿?#4B31;;uSq~F7ސ?FF;Kf@9Brq 8CysZLs뿇* %L3 /1#;H4B`gHD: # h4>T]]9 MTMUFM&d2?F}{?P6  >M (< Pd_#x_tt_ ___(_<JuM` ?2FZnuJt -t!"J&b$=>tJU2Uj2?R=@MY3Ji6A@%2308b9R;6J[c3r27a? F ?A?9Bc3BfAfA5 2`?CopyrigT}t (c) W20@9 M@]c@os@fBRAr@Aaa0i@n. AUl@ HsBe@e@v@d@Q2_AcDZ3ę-c3rC 2rG FZ5 >\iViieU9 iVXW\r2'0j3 FZ!&D0 VZlJ`>UhLaLa ]Rd u 1A A1AW8Pa o|2U?F,%-@Nx[Jk#b?o--hi  6vZ2JAp?F}l^?F +ْ?F G&S- a),Ayx|S<ݻuz}קu#qSBa y= 30 4*?? ?"2a@/s<"t!r55TqE`ud ?F /wpc*uGs>{T#|f{}b*yZ>voigjJ*#;%7f2pU`uTK`j0rr?F);L^fFp/Xx1ѣ?V|%O4Tqde㼕?FHyt߲Xzΐ_3]ؘ#yԄT|qTS|t]<8l j m?@P3ɡեZ:+a{c3~|+2|}ZliL~|d($7! C]{-m;BP4~ΐKjgVhߩ~D8V-l|G2y)PlƳÿտa:dBl#ꃋ-@t32y ?c$p3~,xEr l|0?FS$^ΐWqp>hmN.Ey?'<(+t^+}m܀3}Tq(*wmnp:~qмZBT<i}~۸73q1&3–(Ko|>F}ѣ ?Fs?FUޒ[g$,y~vZ؆t=<}!uɡaѩYK&h0?FL#|ߘ 1D|\ ťa8 ?Fd\Ў!ݯ|? ﮉ2ɡbҨg7+?FBl;|qyS ~L](MB-eS?F@J9F:?FrIÅ hߏ¢h|@b$yoSk9r|hͦ |ɡe2oe1Br{a 53Q2HD: H h0>Th]]9 MIAUFd^V?F߫C?F>?F?_j|w?P6 8 >M $mJuM` /?`OO.u>Jt;  sxЕt=M4&ٕQ䣯+? G>yJU$"#?.& ?JbA@T"Z+bR\)Z&J#2N贁Nk.#@M# J&]/o/T"Z+'T"*B#BA1A15 `?Cop rigTt (c)x0]2`09x0Mp0]cn0osh0fv2Rg1rj01av0ih0n.x0 AUl0 n8s2e0en0v0d0@:1Y>4#-'M3 M7 .&%p0b5(9 DFX'dG_'0UB.&J!I$a dFxJlJ]Uhz_1!T!Պ(Z#FF-D}ؔ?cJ:Z 4qgjGQ RV"JmTtV,Щ=?FG с aW)O YPRSW:fOtG4Pi3GYA; l'z&@B!@C?F[,P4S *?j0[OeT?UƖaU5mTV.b9 Nj?FZp^9o`isoT0e(a~Th]]9 MIAUFHm?Fʋ?FqZzS̩?Fo_ w?P6 8 >M $mJuM` /?`OO.u>Jt;  zt/ Wٕᆝ?a%?uG>yJU$"#?.& ?JbA@T"Z+bR\)Z&J#2N贁Nk.#@M# J&]/o/T"Z+'T"*B#BA1A15 `?Cop rigTt (c)x0]2`09x0Mp0]cn0osh0fv2Rg1rj01av0ih0n.x0 AUl0 n8s2e0en0v0d0@:1Y>4#-'M3 M7 .&%p0b5(9 DFX'dG_'0UB.&J!I$a dFxJlJ]Uhz_1!T!(Z#Fb?d ?F94:,X,TGZ SY RV"JmTig/?F6o?FşY] `)O 1RSx 4S x$G4:74C͐GYA; ^^s¯&@B:~mTn%y2[9)A\(aU5UF O 2Wα?FG?8LolQ,i33((?l+dUl1"Canoo2m_;T#rA $sHD: H h0>Th]]9 MIAUFk"?Fwc?Fymh?F_!sw?P6 8>M $mJuM` /?`OO.u>Jt;  aMtl#/ו1`ng n}_GT>yJU"#?.& ~?JbA@uT"Z+b\)Z&J#2N贁Nk.#S@M#J&]/o/T"Z+'T"U*B#A1A15 `?Cop rigTt (c)x02`09x0Mp0c.n0osh0fv2g1rj01av0ih0n.x0 Al0 n8s2e0ejn0v0d0:1Y>4#-X'M3 M7.&%p0b59 DFX'dG/'0UB.&%!I$a dFxJ lJ]Uhz_1!T!(Z#FFút[?J:Z 4=iLGQ RSV"JmTVoEXNx A`?F&nƜ?FӪr#> `)O 4S }#GYkhkn/e~:KF4}3>YA; ΣW$@B4mT[PRSbU5U2{6E,?F72*ʶ'?FD;6o;^}p/l@i.fMdӟ2Z[lxg҇.atoo2m_UT#rA $sHD: # h4>T]]9 MTAUF\f?FQ)Xd?Fv?FZW?P6 `>$M (#<#lPJuM{` ?#{{20{F{ZujJtg  ntL_פ| 'RGU˲s>JU2zGz?@M[#|Jk&A@$7b#z #b(b)+&J[e#t"t"?'6 I?A$/%Be#115 "`?CopyrigTt (c)020090M0c0oKs0f21r01a0i0n.0 Al0 8sBe0e0v@d0S"{14\#-Xe#3 7'6\% ZLFiie1E9 FXG/'0UR'6-!B40 FJlJ7Q0hLG1ZAY(э6?FξRI0`fS?Ks`ZsLbRP\"JT6mPD2n ?FHOX\>F->wW Wa)H0YnǿlᜯVef[U>dxԷErlg u?VcQ$@aELeANS?FZ ͉?Fޓ{lʤm>wok&O8XWleBPmlfVArieoo.HLec=}pLwS?FXʍ`ˏvol``}; PaiEz|DF`ޣKH_SF:x~ALrA k#ڃjnw5}Oi{HD: # h4>T]]9 MTAUF8XV?Fp#enD?Fv?FZW?P6 `>$M (#<#lPJuM{` ?#{{20{F{ZujJtg  ґߝ t$wOפ| 'RGU˲s>JU2zGz?@M[#|Jk&A@$7b#z #!"b(b)+&J[e#t"t"?'6 I?A$/%Be#115 "`?CopyrigTt (c)020090M0c0oKs0f21r01a0i0n.0 Al0 8sBe0e0v@d0S"{14\#-Xe#3 7'6\% ZLFiie1E9 FXG/'0UR'6-!B40 FJlJ7Q0hLG1ZA!Y(э6?FξRI0`fS?Ks`?Zs$LL!bL\"JT6mPD2n ?FHOX\>F->wW Wa)H0YnǿlVef[U>d~xԷErlg uVcQ$@aELeANS?FZ ?F{lʤm>wok&O8XWleBPmlfVArieoo.HLec=}pLwS?FXʍ`ˏvol``}; PaiEz|DF`ޣKH_SF:x}~AL"rA k#ڃjnw5}Oi{UGDF P# h @T(PYYU UF~?M&Wd2P} (-. +0@ 0T0h0|Y03 - -3 --3--& &#:u` ? T,_'@@TUThh|U|UU&&K"&5&&0"u:)!z2<7q:U? ?; 4b0{[`+:B Fy3U"'ĉQ9" L A$6 K",G'@I@@q@E?DF@[r&BCkBuq@`-A0"Ruu8 @GC0$5Q;(?RK"U& d4; :)9u `u`["[b!;$wu`񉾑4?R5ػ3a171`Vis_PRXYcPm!#5``08``R`?CopyrF`gPt0(V`)02d`090MF`c:}`oH`ofbvary`aa`iw`n 0Al` }hsbeH`e}`v`dRh13d45!B=31ZrA66 24#30Ur?P].w,-^q^$P$sT<`o0mR`s`a>rv "saI8G28\vvk`2 hY,TYYRJ )eUF,,?F6_v?P fQ#"I#M !:#Q>NIU>bIY>vI]>I M ? I ? I ? I"+M?+Q#*"I*S%&S]V#f"+YV#z"V#"IaV#"IeV#"IAV#"IqV#" IV#"I S&2"IS&2IS&.2IS&B2I V#V2 I>2!>2IS&~2 IV#2+S&2"IS&2+S&2+V#2&?PI3 B&?I("C2B?IJCZB%&"9'a'77@I2I2GUG1uM` ?"I&6BDBXBlBBVVVVVV(V$(V8(VL(V`(/Vt(CV(WV(B,B,B,B,B,B};Āi 1a` Q|Ϳs2e8-ߕq`R~,y\1BTC\Zݼc6[?F[hsF߱~Q>qˁ&t ?FgMuN?Dv` ?,?6 EPU-?-+" Ԍ/UFz[aDv>tJ~M^3;0?gt{s4)/~Z!WJ=˧ب 5Z=fO/߱&////??{?q?;d?*V-?F`xM0P01W=͝4F??=ӎC !]=@/V54, OOS9qW@0kM9~0iZ <ȝ0*DT! SU7:w$ ]UZNOW~/mà' ]: e9T ,,? 6v?G@B1B$Gr65߱O__,_>_P_Fs[Q?F/e[p؟?M ?Sl ʟ_tfS$lߕ름Fx1cn)@aCo?20 6-Ԭ,65vٝJ w(-_q9KrUuw;y+OUF!R>7~n字/䉄5 _fL6&lLXqzݍMJ13LIo%]f Fz^(ʲS | u6)|LXX'} Ĥԭ67,M'5LmmFs]mrtoɊ!3EٿEݍv LSB@ d@}U00|Wdby#ANU 0 0 0 qH3ۓ] _WbB'P.>3]_A0hx%>Hލ?1;>s,}O+NڿW >gEn(F_>3 ]Q3}2bu$ˣSfQNFe'-$Sد|;~*YQoU(_HԪb~xBß;6H~ TEbݍ}nO*/<9n-@P,e'}eݴآm'viޞMTQދP?F/VJ$CճѵȌܷݍ1+OOĮY"ؑX:fDx~@Wt)L[~3x _AVW~IA]m_jݍX;AQq__s*~pm.@a)sI_8`}^ߔfЄ_j]~V^1P0oBoTzyE|N8^~{*ϳ}8CތҢ&s%X>F @4ύ?F*棕 L4?n~g&vn˹5so L~<@D~ew,[{ܿc=(SHǑo ,AU@y2ѝrͲs!?F N?F3?FcT(}03@ya?B᳠{j@1y8bvw ??a醼nMk?FCZώek/Ê?F@ٕ:?P(ܴ'B1/?{!K @-X;L_ @1aѶߘ>3C?FqFLc0/?Fd?<+v7D?6.zY Uco غ9JȆ߈ѿrTߣDqV\s"7G\DN,9FslD7Q-r|O╣'YQF{ F@) l$u(U)}}bQr)g|}1p1<G7t}bHA8sah77@y5?F]}H 0NXUVMFQ¡/.}=!8՞%د-+1pQ4ADF*.}K 0BoaKVWg>t}x=$GB=bvaA Q/R"i L1}/9/K/]')uw?F%ly?F*껩/ѵP﹈b@D>3bSSmlGAȔ|#h`*b5%F[ A-@zjaDi~b.x4dM?O+zOOu (?:?L?^?p??d??Fb2*.Q_ DCY?ˉFY] ) ~ zM?F!d]CZXjĞ82Dҥ4Y 0YLD|^,DYA_^F{aE`?`?Nd,/__b6mʝǧNAIY/////?r6FH?> _$s 1+/,5B/Zf#ȸB HK ~??vLl⿤愈?[G=u?aK&d23L4CUG DF P# h @T(PYY#EψUFL&d2?|>?F~?]P} . B!D:J :^:rY: Au` ?"66JJ^^rrju# ^Jb"h,h'U ?L?4b {N[`:!#"&a#'b"^DQ)3 z$2l!L1$l" l"3'@>>ÿ@q05?B46 r&23c2ui0`҈-1Bu:@ l"3-A7Bl"F L$9u`u `m"[ bb!wu`)$"%أ#Q!'1`Vis_PRXYcPm!#5XP1XP02`?Co_pyr>PgPUt (NP) 2`PW09 M>PcuPo@Pof}RnQrTqPQa}PioPn] AlP uXUsRe@PeuPvP dB!#d$%b!(=#&#Rd&& "$B##0Ub#]&g,7^aNX@cTg@ daA+_ s11"hh22)t3*tBaaR+t"qqb(!pacb"!6u\%G!!["-@@Bq253T@b"q3L [ELP@[UL0]E5 s_$\&F3s͵NSYFue7A6P,@QjPUn725^}@$1p]]( sUQŅUQbN9P %BR&RpRQQcPFL]`NETWOFPK SHPP5 DROIR7IR5S!:0@ L*FrLr]@o"( qffs_PU 7ex}PcPn2l"! 0n<@5~b -"ER"^br36 Bm Ak Adzau"u22u3/BaQaQR5Q5Q"2b3 !!E|7l!!8ԲAP! !1; 8b,/$1JbKa'q'qne!b($pǕW ]-@$ SPaCPqA9P _Equ>PpRP!ePk`25Xq\` TsPxcP`DP!vR*`3^5b` Sb8C.SwXOQEdeyMPnfPc}PuRU`1%PRd$  N$m $`E I[!" PPe5R'`y 7sRU dCeEWAe C`eV^` SRiP@Q//` T;/M/"LoPcX/Ҭ///B lPiP+q/ ?/?R% RoPo_?Pm??NwRkx"adB`K?g IDPQdPS6O@HL7/nOnsICOHL8dhOPO#%AmV2irUQ ]Q 1O+_6 fH_Z_\G` fM#AtO_BO_OM@CO(oFNRCbogq%C2mQtBQW6oHL_Roof MHHiAאe2U w'0U W0 /ix4*є"%ݩ܅uuY>2 H4ֹhńЋńЋNńЋTńЋ>ńЇHD: %# h4>T]]9 M JUF/\r?F.U?F~?F_w?P6 AJuM` ?uJt  ;uAIt=WzIRUIl7O],#>2zGz?)@MJ߀A@ebM #zwb(b%)2+2&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$[w?b6 ?A$$4/U%-|# |'b6%?6iie<59 6X7'M0Ub6!}4K0 -FAJlJAI0h7!1!ZF9|$0f2 <ڒ#  OR|VJa9Z9P] PReS[RUE:dHܣM\]\ɱQ<5U oYaU526_HU"]rA #cHD: "# h4>T]]9 M JUF ?F"]?F|>?Fuvw?P6 ]AJuM` ?uJt  ].It=W`ĆW #JRbJlLXz#>2zGz?S@MJA@eb#z(b)R,+,&Jj!j!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v d c!Eg$[;?\6L ?A$./O%-v# v'\6?6iieP659 6X7'0UpB\6!w4%0 'F;JlJAC0h@7!1!ZF?Hܣ~0, <pB#\  IRvVJ:~?6VOS sgZ^TURUEUEBQG\ZYpBaիQ65UQ[fS.aYUb520_BU"rA #cHD: ## h4>T]]9 M JUFyE+?F0]я?F~?F@?d{w?P6 >JuM` ?uJt  vr It=WP|IRsUIlO.a#>2zG_z?=@MJAw@eb #zb( (2+T2&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$[}! K2?b6 &?A$ 4/U%-|# e|'b6 ?6iie<59 6X7y'0Ub6!}40 -FAJlJAI0h7!1!効ZFHܣۄ0Y <? 6ybi  OR|VJa9PY]PPReS[RUE:]|$M\Q`YdC4U<5U=VN_YQU526_HU"rA #cHD: $# h4>T]]9 M JUF ?FDL?F|>?F~w?P6  >JuM` ?uJt  ].It=W,t@ "JRb~l>t2UK?=@MJA@bJ + &Ji[J'?a& ?A)B !!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r 1uai n. _ Al90 (Us=2e0e vO0 d10!H$-,# 'a&K?6i@iek59 6X7'K0a&!|$K0 FJlJ8>UhAA !!ZF@?d3{  </.a#]M 1R^VJ:]ɜHܣ/_AZ2Ey#xUEUVS s#FT=RxUk5U؝Qˠ\BY3QX5*n?֬BoAZ7],XU[Bl|Q2_*U"rA >sHD: ## h4>T]]9 M qAUFA[?FFw:?FE12Oz_:w?P6 L[ >  (m$JuM{` ?Agg2DuVJtS  .!tw|3s,kIɸ _>JU2N贁/Nk?=@M3#JC&A@b#zw u#bR( (+&jJ=#%'?& ?A"b${$:3/*T'B=#115 `?CopyrigTt (c)020090M0c0os0f21r01a0i0n.0 Al@ 8sBe0e0v@d0+"|144#-=#3 7&4%"XOFiie2E9 ԆFXG|L"'0URi&!40 FJlJ" >UhiQiQD ]GQ N1DJc$LBhL!l%,W2[AN11(Z=#FC[RRTFQ ucR/Q Rf4"J:GdFX_!0wbfc L|c :D)$aER!Jj^opdiUjh2E~V! b# 2 ?߮.hOEu<ɛ?F#Pw|hؾ6|ެ^hu?F/Lw|iU6|^^e~?EYo< thQ[T`vg2w 0M6weQT`Dgwӏ u5XPo`Iϣ4oj7::eQT`Bvu*< f|hQT`r :{T_t Pa?F3SXk͖o?F vT?P);N 90 ,)Ri0m6uR. 6u`yyb !` /K!? -hO.?Ra @cB)r5%aQ K)XiyBG\h5b-Ob?Fԇ*sR6|FsaeQ Q~B?F)qqiQhAeQ9dϢqwiaeQe񯁜ai|hQEWXYWuwZl a++hf! l?FQD0)ˑ6|P?U/hL t9?Fz2)v<>KU6|*hQyո ?ghhWyh= A=}!eQW%|6^T?`NAA_owA j;[6te UI:vdv =KylI?ε~T_Ţr+a W  /~nIX(dur|?F 4?F?PَKK :d?Ltؤ?yl!?(!@[l Xj2GtaCpzm&褯 "4gyC?); 1ecDhe2GoYe%3rQ M3#k2HD: H ih ,>T  9 MJUF ?F~?F|>һP6 m >JuM` ^?5uJHbcFFmtulyt b#tI>2zGwz?@MJA@Wb)+& !Jg"~& E"\Ab)+'A,A/UB115 `?CopyrigTt (c)I020U09I0MA0c.?0os90fG281r;0t1aG0i90n.I0 Al0 ?8s2eg0ej?0v0d0ŤM3 b7~&XXt5i b9 `!X78G'0UB~&%0R 8FLJlJ8>UhAA( 1:9m EsBU[JHU؝Hܣˠ Xm] 3Ey%U3^֬_Z7]G,XHU)a[BUQHUF@?d{lQY?.aXQ,o`ɜQۤoZ 2QXUH_Z_l_~\_H8>t"s ûdGC, FȘZߓ#'wfB C ~dܮ @+C SsGX7`t PhIK)M" 6%?8u( G00UFD  h(^TYYBBUFL&d2?x<F BP(?P? 8$ B66ȅH?j|;? 5JB@?\.ϗsU!&;/ҍ  0RB`=Bridge,lo ica ,n tw rk sy t m t p"r pPy"i"s c n"cB i2%z e^| R(* G@& ߃l?"488Q ]frsww ww ~ww w!%} Iceqs^QZQDrag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aab|>~??[q㿦)j?&Iz?&d23L4CUG DF P# h @T(PYY#EUFL&d2?@F|>?@_~w?P} Y.  !:J :^:rYDu` ?~"66JJ^^rru# *^:"@,@'酅#U2N贁Nk?H]b{# ?#^4Wb {['`:!#"h69#':"UY^"Q)+3 62D!L1$D" D"&3ɜ'>>ÿ@kq05?460r&BCku2u{0`i-1$Bu@ D"3?AIBD" $$9u`u `"[ b:!𿻐u`$i"&){#)Q!'1`Vis_PRXYcPm!y 5jP1jPAB`?CopyrPPgPt (`P) 20P9 MPPcPoRPofRQrPQaPiPn AlP XsReRPeJPvPdB !r#(d$r%:!B={#&r#dd&& t"r$,7^aN.@.cT<*Po mPsPQ>g da +_c&1&1r"hh")ht3* ut2aaB+ti"aa bo(!`ac:"!6uM\%$G!![2?@@Bq%CT@ br"q3$ 35$6Ep05E5c_r$4&F3s͵N?SYFu eIAt,@)Q ySUn%6}61`]]o(c-U)Q)U)QNqKP % TR&RpRQQuP$]`NETWuOXPK SHPUP VRO!RI S1L0@T$J$r5GYkr"o(pa&&s_<*-pq o(A֨57IABKFkq`RPQsPPU exPuP2D"! 0<@Eb Z"E*"br&3BmACAfa^ur"ku"xu3/\Ԭ20 iBGQGQi"2 b3 !!E0|qq7D!C8ArRA!!A;Jb61\b]aaae!bo(q`軕1W c]?@ SPaCPaAKP EquPPpBdPePC8%XI[m` {TPuP`DBPvR83^xmz"` SQbBRdP5d=QMPnfPcPuRiEQ`]&1PRd Nm 8E !3o! PP_q eiGR'`Q sRU<&eФ/YAeC`Ue.^Ԓ` SRiP@Q8T/%/mLPcX_/҄///B }lPiPq/p/?o* RPo7?PEd?v?YNwRkP"a =Yko HiԿAhǖ꥔ Uはw'0Ur/lAx ;,u;uM1, صpH ֍@噄ѤѤ&Ѥ,ѤHD: %# h4>T]]9 M JUFX^?@ ׬?F~?@?P.6 AJuM` ?urJt  ]It=W_7],IRUIlw#>2zGzw?@MJAw@eb #zb](b%)2+2&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$Ɇ[?b6 &?A$4/U%-|# e|'b6 ?6iie<59 6X7{'0Ub6!}40 -FAJlJAI0h7!1!効Z@9|$0Y2 <ڒ#4  OR|VJa9Z9P]PReS[RUE:d_HܣM\]\ɱQ<5U oYaUb526_HU"rA #cHD: "# h4>T]]9 M CAUF|>?@:x??@V|+q?P6 8]AI]M ] (JuM` ?#SS2uBJt? tzEUQؕKJbtU]OK>JU2zGz;?@M#J&A@bS#zI G#a(+bo)|+|&UJ#!!5 `?CopyrigTt(c)20 9M c oKs f"!r 1a i n. Al70 (s;2e0e vM0d/0!EH$#[#""?06 ?Ag$I~/%-#,# '6%KO/Fi@ie59 /FXEG'0UBŬ6!40 wFJlJ]Uhz!hAg!(Z#F@H/DžB0J>| 8Ene&KQ4\ RV"JT~?@gf_?F)?@ $C?8S sBKYbFe>J^R,UFeTGK!Q? ӧ|+@B:TPܛ\YܨMJe5$!JP/.`*7 `3iK=Dn鷯hZbU5TQ`R?@[uo0lBqaRSgdd*lxrl{!Joo2_Uvg"rA f# =HD: ## h4>T]]9 M !AUFnx?@?d{?Fg݅?@@?P6 $&> JuM` ^?1?u.Jt+  Rqtes.aqzWWqI7>JU2zGz?=@MJA@b1#zt' %#b?()1 ?(Z+Z&UJ!!5 `?CopyrigTt (c) 20 9 M c. os f"!r !a i n. Al0 (s2e ej v+0d 0 !E$[! s2?6 I?AE$ \/}%b-# 'Y6? Fiied59 FjX#G'0UBX640 UF"iJlJAq0h7!1E!`Fmr?@Hӣ۬0$*fq`7$d 6yb7  R VJa9Q|TK ST1 QE:]|$0]Y_dC4a8^] 7sP@EU < KB?x_QYFf*ɴ%Ud,Z7"_+dK lV}?? g52^_pUE"rA kD#TsHD: $# h4>T]]9 M AUF|>?@~?P6 n# >] JuM` ??Su.Jt+L iteJ]zb>tJU2U?=@MJ?A@(b')4+4&J[vr'?& ?A/@)B!!5 `?Copy_rigTt(c)2U0'09M0c0os 0f2 1r 0F1ai 0n}. Ala0U 8se2e90e05vw0dY0! $-# ',&?6iie59 65X7/'0ʼn&-!$0 /FCJ)lJ<>Uh3 C ]1!ZF@@_?d{ J*4 $d?.a7^QiBQ ]RVJ:D]ɜHܣ[_mZ2Ey7UEfU$S sTrTiRU5U؝QX\nY3QX5Vn֬nomZ7],Xf8:`ϋ iؚ~Gc2anY_Wt T}զDTk 0Q: %C?J i3l}f*i&udWl˔alb+d ?ܲVXU2D_VU"rA k#-UHLuD" # ;3h , T  JEuUF'_?@~?F|>ếP VNM A #$Ae  >uA` ?KG `mm. RSu#\>b]XFOmrߞuZptY b7#t&>U2N贁Nk?@9 3#>C&A@q" u(b)e+&f" !It$>=##"4#K"& "{"b)&;'f",f"/N =#11;#`?CopyrigXt (c)020090M0c0oKs0f21r01a0i0n.0 Al @ 8sBe0e0vZ!@d@+"BM=#3 7&4"Ht1EiIfE 4%!X|FGG'0UB&h50 TFJl>(fUlI 8%#IA{!1(R!gG?@c\;0R dUeR ?!c e(T@|$?Fn-?@Z %_C?YsB\Ӌ$UX?uj3dR-=wnQAY ܲVX3 e^Fx*aqRS3jIBFm_[viH{goRJdo~b KYeTGQ# #s sFR-Dn?% FZߝ4# $6wYB H }7~dܮ o@+W oMsGXJ8^ PxADHا@Lx?OPUFD # hVTYYzU?@ ?IF?h PaR"|ou]ofu2/uU ` C&nect&r` e-?{U H  ^   -}|5 p`I`V?}`xa833ސ]3σ3u 33?, ?Gxpx^& This coUnetrWaumtUcl#yrebtwe h *hp3is.HD # =h @>T(]]9 T 2AYUa? uP6 u]`u buA_ u  >3.TAuV ` lxMui"a)J@-?x;'6"wE- xo'6"y( _rq?o@I ?$m%? @horVA$"38*EL2-_br @P' Z6\11u .$n2y2^2n2u9ȑ#ULH/MM^1 # A D5 :0`Vis_SE.cTm!#20ED)`?Copy@0igTt; kc)j@DCU9j@M-@c@0o/@'ofhBYAr\@AUah@iZ@n7@ j@WAl@ `HsBUe/@e@0v@d7@N@B= #x  A G{?9#r22&0444 MG4'ALB5?_$k&(SZ6Y8# #2"qlSF,C`l>lUhr5 QA+/J *&%(og5k#p f3e'r#TA(11MJEsooR6'2Y7E5S3Wc7r516Ũ_aJ2_quU\DQ>0]b;)`R@As-@E T@xh@DiA eJi=S]UBTJg'0SV!@LA,SrWg 1Cy$A$AMJ6!Hp,@R/TAEb?RQP? _H>Ff"s O`E )FZ߂U#HUV7Bk WeHdo@XP+U \"sUFD  h(^TYYBBUF\.ߗ?x<F BP(?hP?X8 ]B66 TbH?~? ?B@L&dW2?Y (sU/!-&PO/v:  0eIB`Modemw,n tw rk p rui h"al !v c !^| f(U GT&( F?_""U*++'?MwpwtwpwDwwp tGwww G@wwDGwD@w p@wyww[wp|`npXDrag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aabi4FѿL&d2?j?oҿ=t??\.r3r\.CUG DF P# h @T(PYY#EUF\.?@i4F?@M&d2ɻ?P} č,.B ! :J :^:rYD 7 7l7u` ?"66JJ^^rr)u#",'񤔅qU ??4^b,0{][`:#A82A6#'%Q)U" ^/LV1$  d7'>>ÿ@qZ05?46F0r.B4CZ2u0`-V1ZRBu@ 3mAwB h$9u`u `"[bz!u`R$"% #WQ 1 71`Vis_PRXYcPm!#5P4o67>B`?CopWyr~PgPt"0u(P)"020PU9"0M~PcPoP'ofRQrPQUaPiPn "0WAl` Xs bUePePv`dR 1#d$%!*(=#6#@d66 2$B##0Ub3]fg,7^q+^\@V\cTg Pda+_Msd1d1"hhr2)$t3*tR+tHR@ q q"@q@qTb(!PpaFc"+m6u\%RG81>1[B2m@@Rr5.CT@Fb"31 UFHUM5Ms_$&ׄF3s͵NSYF)UW0TewA,@WQ S+epwr5}1PpP"(A2yT?+>BB).B4KCFq`R`Qs\~PU T`xPP2 0<#@4Eb_ &2CE"brd3vRrӟ(Mff.F_<1-mTwNcPpu"ur2u3/R0HRuQ$uQ"2Tb3 &1&1E|FF0RQ(dPpWQ,[[ ]m@0` USPaPePl\rsQAyP E u ~PpPePr5X 1V` ?TPEѣPH` D`vR3𯴊ߜb` SabߣPLB PMBPd`rUdKMPnafPcPubHU\nHUQi{]d1;PRd Nm.0Š)U,03!8 PPr0BQhHpcu]uR`sRUѠeANe>`pe^bt1R; SbiPa¢&T18LPcX!mFTXjB?l'`iPkqo&0Z38RPoO,d/?c dDψ(ȱȱ"(Ms3) &&&WUՁ:p/` %R&RE"ibȱ`NEWOPKPSUH`PV0 ROj2URIV0S$AQxR7 i q'U,ygm5xbb7'dũfɵR3D-҃aa8')uyqarL?aTe5x`H7vAտD?aKDKDaKЅDKDK7eDAKTeDJHD: # h4>T]]9 M JU@i4F?@??@hĻ?P6 ܠAJuM` ?juJt At=W ףp= #JRbJlQO#>2zGz?)@MJ߀A@ebM#z\(b),+),&J[(.w?& ?A$T./O%B!!5 g`?CopyrigTtZ(c)Z2009ZM 0c. 0os0f21r0>1a0i0n.Z AlY0 8s]2e10ej 0vo0dQ0@!$b-# 'Y&?6iie59 6X7'0UpBŴ&!$0 D'F;JlJAh h7!h1!YZ@x f, <#  IRvVJ:ǿxT]]9 M JU@"&d2?@ `?@BP(ĺP6 ]AJuM` ?ju#t  m۶mIt=WwIR$I$+IIl#>2zGz?@M|JA@e7b #zb(b%)2+2&J[/.?& I?A$4/U%B!!5 g`?CopyrigTt (c)020%090M0c0oKs 0f21r 0D1a0i 0n.0 Al_0 8sc2e70e0vu0dW0!$-X# '&?6iie59 6X7/'0UvBŇ&-!$0 -FAJUlJ8>UhAA 1h1!T12 $<cV5{ WR~VJd2L&?@bX,Ʃ ]S fR#mS ?ZZQ4E^0__ %zzX5:U XYePY؉X5aZjoohY}aUVeEVŠRldQY)+R+X2>_;"rA 5#dsHD: # h4>T]]9 M JU@xmJuM` ?uJt  Am۶mIt=WHzGIR]Il#>2nz?3@MJAw@eb #zb( (2+T2&J[ (p"?0& ?A$ 4/U%BB!!5 g`?CopyrigTt (c])020%090uM0c0os 0If21r 0D1a0i 0n.0 WAl_0 8sc2Ue70e0vu0dW0!$-# '&?6iieP59 6X73'0UvBŇ&!$0 -FAJlJ8>Uh@ 11!Z@?t:Né  <qqh#B] WRVJ.@ ?@L&d© ]S )Q#hY8?Kh/QE^ `__ ^BX5a9XYePXRmScRU5:]md2L&U\ahY*PX\eEVV_iaU2>_PU"rA #dsHD: # h4>T]]9 M JU@i4F?@M&ɯd2?tP6  >JuM` ?uJt ASt=WJRb~li>t2U?=@MJA@b + &J[N#?0a& ?AT)B!!5 g`?CopyrigTtZ(c)Z20 9ZM c. os f"!r 1ai n.Z Al90 (s=2e0ej vO0d10@!$b-# 'Ya&?6iiek59 6jX7^'0a&Z!|$0 FJlJ UhqMAA ]A !4Ja-'Z@?fl6˃  <HzGh#BA OR|VJ:6]t:ϝNM__Z(\#UEL@ _?@Lƒ S AA#`YQ(\Xk5^ s`o!o ̌aX5UxT9 M3JU@i4F?@M&d2?ҷP6 m >JuM` ^?5ulbSD_Jt bstE>2zGz;?@MJA@u+b+&K !JS"j& 1"A.b+-,-/*B!!5 `?CopyrwigTt `wc)5020A0950M-0c+0o%s%0f32$1r'0`1ua30i%0n.50_ Al{0 +8Us2eS0e+0v0ds0ib =L!XY'0U Bj&%0 :lJ Uh*M[A[A 9A 1:xTh]]9 M JU@w[2?@2?@?뇤?@bf?P6  n>JuM{` ?5 uJt  hxvEt9SYEN^Ӟ~ӞEh!D#<>>2N_Nk?<@MJA@cb]b)++&J"< u) ?AHb$z@J+%/F%B!!5 c`?CopyrigTt (c)302`0930M+0c)0oKs#0f12"1r%0^1a10i#0n.30 Aly0 )8s}2eQ0e)0v0dq0!(Y$-3 7x&+0b59 6X7G'K0UhBx&!$Ia F3JlJ]Uhz11Z@`Y3   8gF/_ M ARnVJ!49BYOPBRWSMRUE:]R.?\QRYl>Q5U/V@_YQĈU2(_:UrA cHD: H h0>Th]]9 M JU@p8?@d2L&?@αB?@.?P6  n>JuM{` ?5 uJt  YEt9SRQEN߆$1Eh'>2N贁NKk?<@MJA@cbb)++&J[ < u)| ?$%/F%BB!!5 c`?CopyrigTt (cu) 02`09 0uM0c0os If2!r 51a0i n. 0 WAlP0 8sT2Ue(0e0vf0dH0!Y$Ť-['# 'x&0b59 6X|['7'0U?B)x&!$aI 6 JlJ]Uhz!^!Z@mN/?  8gF_  REVJ49Y&PR.S$R_UE:p]"`3  \Q)Yl?>cQ5oUV_YQ_Ub2OUrAg wcHD: H h0>Th]]9 M JU@&6?@0ސ?@?뇤?@bf?P6 n>JuM{` ?5 uJt  lUUEt9S;EN^Ӟ~ӞEh!D#<>>2N_Nk?<@MJA@cb]b)++&J~"< u) Y?AHb$z@+%/F%*B!!5 c`?CopyrigTt _(c)302`W0930M+0c)0os#0f12"1r%0^1a10i#0n}.30 Aly0U )8s}2eQ0e)05v0dq0!PY$-,3 7x&+0b59 6X7G'0UhBx&!$a F3JlJ]Uhz1h1Z@`Yg   8gF__  ARnVBJ49BYOPBRWSMRUE:]?R.?\QRYl>Q5U/V@_YQU2(_:UrA c_H>vQ+s #X8L(r FXZ\f#ͱ 4^!B- U_~|dTݮ o@+( oLsG!`mP%h*8'kUh) oT+ar(#vz-yX0|2{$OUFD  h,^TYYBBUF\.?x<F BP(c?Ps?m. 9c:M:O @z0 BH ?? V@L&dW2?F-W(Yi(G.sU!&P/)7(:  0 `WB`&Ring\network ?p$0rr0pPE1al\d$0v0c$0 c1^ (J YG& r+?!) +)!q q ǿ~~|p~~ṗ ~p~;ކ~pp2AAqDrag onut he]pe,nUdu /p64lies9Lt]wrkcQm tOfTly lGo_"imdO.b\.L&d2??;IOғEMQS?=?mar3r\.CUG D  # h T,YYEUF\.?@?FL&d2?P} ϛ% ^.&N+O+.Q+R+S+T+\+]+^+_+`+a+b+c+d*+e+f+g+Q.i+j+k+l+m+n+o+p+q+r+s+t+u+v+w+x+y+z+{+|+}+~++++++++++++++++++*++++73636 3 l_Fu{` ? &CG/B>CBHCBRCB\CBfCBpCBzCBCBCBCBCBCBCBCBCBCBCBCBCBCB"CB"CB"CB$"CB."CB8"CBB"CBL"CBV"CB`"CBj"CBt"CB~"CB"CB"CB"CB"CB"CB"CB"CB"CB"CB"CB"CB"CB2CB 2CB2CB2CB(2CB22CB<2CBF2CBP2CBZ2CBd2CBn2CBx2CB2CB2CB2CB2CB2CB2T6g666U66FFMBuIUHrN|Nw1r L@Gs5 ^CB0  $sV!v q)?@4v!p`:!@ K*RGs Br(1=s0s)) %Rt؉sq1`V sPeXY)cPm!#52862F1`?UCA p r gPt3()32U0Z93M c_ Eoi oM=rK yas iA n) J3A# l3EsUei e_ vd)21wrޟҀs?@A3{d|R$Bƕ~u +@@âɸ!BMBj8}rup`i-qBu *@rw1s!8=}/B 2t@I9u`un`"p2] HqDou`t1E[B2TU뱥)8s5ä  r}vh^T`%AT<7 o3mss >XxĀu7T=n7 eMTNtT yk3Dvd{uu ƃ@Rdư5ߙ߫ƕ9'9h\nE|1CU t@ʴ#FXjHqʶq-?bt[Ű//A:/L/^/~///A///p?!?3?ʼqV?h?z????z?? O@ɯ+O=OOOoOOO9OOO =t__'_!D_V_h_ͪ___#___$o+o=oB%`oroo&ooo'o!(5GY)|*+ .HTfx{şÏƹ/&8J!0m1Ɵ؟2 3BTf͐B_5Я6);7^p ̿_9:3EW;zόϞ(Oas?ߨߺDqm4# 1T 5h86%8llc౓#"AAш]]Ѥ C){q{qpqq22EyyNNaѕѨHr/d~CU|@c` MaЧufu e nA` EqipeBtm/h~4qP o|uNmb /b XQ Pr6HZ/{+ srt_q/\A6s6!P/^za Sil/T1 LcAHR\fpz$.8BLV`jt~""0":"D"N"X"b"|"v""""""""""""""" "" "*"4">"H"R"\"f"p"z"""""""""""""""""$"."8"B"L"V"`"j"t"~""AaXT@b FTP%జJKTltφT0ƐĮbPQwr SS#TS”GLF2DFbXO%—ȩP_(_:_S…LF?Hd}OƁLQ____KFLpXO( B}KoЁ?_T_o(ooS L FY2ణ3oaoЁ !eo}cGYkS L Fft]eҼ–B" E L FsxLfO͏ߏ*H L F l_go}<*A]LF џrmБ Є!7I[EʟLF `0 毯ʯ_&tEULF OT~N򤢿ƿTؿFLF O!H$6 Hϱa6ϗ*FLF ?ZبP6HZߙBLFR5xqy?o%L%9F//"q8?onT&L&9F?ᏼJ`_-?*e'L'r?UO{O$(L(roy:uoڟ) L)r!_@4 oj|*L*r"oݿF\);a+L+r#xQwχP ,L,r$|[6qȟϨ߹-L-r%Ϗ0 fTx.L.r&BX%7*] /L/r'7Msߙ0 0r(3 W2m1  1r)˿@,bt-2 2r*>T!/3/Y=3 3r+p/Iߔ/o!/P//M4 4r,tS?.1i?/??M5 5r-O1(O/^OpO]6 6r;Q?\AO:OP_/_*Um7 7r//?E_Q_{?__}8 8r0+oOo*aeo/_oo}9  9r1oa@$ _Zl: :v2/q6LO+Q; ;v3hA?gwoP?؏<  >v6~_ɯ߯2H'*M? ?v7'=ocsoԿ @ @v8#oGπ"]ϴ¿ϥA  Av9ϻ@RdߊB Bv:zߠߠ.D#IC Cv;`9_oP D Dvv*@  E-GV,Gv !7-[k=HLB,N5>LB_r:?C&2F3s͵NSYQFEB,N>HdDq7ME5qD68W#"U%&EfW@@cX @ S1` Token?_RiP1nD?[Q?##qh1ab /X##zQ?AzQgVD6e]r##"` %P&rPpPrtPe+sA D2`A!_`NTMPUOPKfPS A``UEfPPPObR`5ISi0QAqD_!_\X\OT.U_C0?ni4oo\XXOSw'K0Ur%V!0^ v2Zei1DAT\1sEPuQ1MEX OS%HVl2UxAUx1'ExAMEx HCDrDC  @   !"#$%&'()*+,-./0123456789:;<=>?*>ABhiATiiJ\ 3U@\.?FL&d2?JP}@YIYqX"u`W?"&&5&,"u6)~}bE@{#&t03! 7("tm!,v&b$&"qK!Y$30^?2-,"l-2""2!l"6 #",$=F#"f$6)![0$%J[LD0D=F?|" (&3AA1A1 ;m`"`?CopyrigPt(c 09M-Pc+Pos%Pf3R$Qr'P`Qa3Pi%Pn Al{P +XsRe*SPe+PvPd"!ZOAy 7$^ ?P?b?[!H${eQnB? ???O %O.O@@OROdOvO6CkaOROOOO_ %!_3_E_W_i_{_Vx<kb_b____ o %&o8oJo\onooy_ocoroooo %_.@@Rdvwd %0BTfxyheҏ %5GYk}~/mfĢן  % =Oas~_?gůɲܯ $ %?Q@cuOwhʿ) %RGYk}ϏϜ_i . %I[mߑߣoj!3 %N`r k &8 %Sew+= %Xj|)m 0BU]o9n"/#/5/G/Ub/t/////Io/2? ?(?:?L?Ug?y?@????ϟYp?B OO-O?OQOeGQoOOOOO?ߧfqOR_ _2_D_V_"u!q______yr_ro%o7oIo[o'"voooooos *<N`,#{@yt /ASe1ˏݏu "4FXj6%͟ߟ/yv'9K]o;&ү?yw, >Pbt@'@ſ׿Oyxπ1CUgyE(Ϧϸ_yy#6HZl~J)߽߫oyz$(;M_qO*y{)-@ RdvT+@y|.2EWi{Y%,y}37"J\n^5-/y~8/<2O/a/s///cE.///// ?y=?ABT? f?x???hU/??@???OyBOFRYOkO}OOOme0OOOO__yG_Kb^_p____ru1____ oo yLoPrcouoooow2oooo QUh z|3@%VZm4Џ*/[_r5՟ /? Ɇ`dw6گ"4#Oهei| Ŀ7߿@'9(_jπnҁϓϥϷϕ8,>-o',sߘߪ߼9 1C2! F1 xR'9K:)6} ;@);M<+)~%< .@RA09"5=/!/3/E/W/F5I/2/////E>??&?8?J?\?K:Y?B? ????U?OO@+O=OOOaOP?iOROOOOOeQ_!_3_E_W_dOXGv_b_____uAo#o5oGoYokoZIoroooooDžB(:L^p_NɁHD: H h <>T$]]9 MT kAU@\.?FL&d2=??F?P6 LA P>  + 4DJuM` ?"?o`0?oNu^Jt[ tgJbg>6#J?#,b/ @TZT"Z""P& T/@n_^B% 'N< ?m6 ?AeJa@ۢR4` Ac0entCol0r3z۝0Aٝ0bbbz90“2???9Nbb?1"bAYFbeDG?#E![C39 , B6"hLJ?#QE!TG; J`A`?Apy$@igTt(@)20mP9MYPc$@os@f_RArSP#Aa@i@n. AR @lXWsRePe$@v0dP@ᾡ`1O_o?#2TUam3 FD5#]BrFlL]BrF 0PuGiAbE9 6%yXGg'0bUm6!40 fjlJ qUhhUGHQA3(Z\*{ ٠0"#")b5DrD6"J Az~%"#"BA}/t?PSQ< E!?yET#-#tgaD[#,E:g@qVE`0w>]BrA \Cď'$$+HD  hj @>TA(]]9 M  eAU@\.?FL&d2+?]P6 LA > M /8HJuM` ^? C s4CLsRubJ1t_ tuJb$">JU5 JI4#=#/ @X^X"^"B"6 X/r cb!Bh@,G-v31k!k!5 J``?CopyrigTt(c)2009M0c.0os0f21r0Aa0i0n. Al3@ 8s7Be @e0vI@d+@0tv3?c- =< ?F ?AeJa[_Rf14W` A0cI@n0j1lB3z_ՁA_AbbbzY_)mEZf1T  9 MSAU@\.?Fr??F~q?P6 B >%M a*JuM` ? %U U4:uDJ@bEF&d2ɿuBltA bJt EIM>JoU2TU!?#S@M #~A@@"WbH)U+U&mJ !?v(GtI#J#"# %"& "A@"bH);E'|"/-<*B#h1h15 "`?CopyrigTt(wc)2009M0c0o%s0f21r01ua0i0n._ Al0 8Us2e0e0v0d0"MX#t3 t7&"tt Ei b@9 %!X GގG'0"UX&-50 FʢJlJAUhh)Q)Q!#A@! (:#`RB: 3R$JTV  h1?[_R: @AABUVeLٮ\2maXUe.o_jLo^m2aroo__7\HD H# h4>T]]9 MT CAU@\.?F??F~߻?P6 8M >M (JuM` ?#0SS2uBJt? tTKJWbK>[JU#?,& ?AA@R"bZ$J#B!!5 `?CopyrigT}t(c)W20 9M ]c os f"R!r !a i n. AUl0 (s2e e v0d !$#bB-## ',&%en#2TU1?"@M#R"g&a,R"g&j'\?6iieE9 6XG"7'02U,&-!G$0 NFbJqlJAUhh7!lR!(Q:#N J>83R JWTfV  !?qY_R8>qRl?38VUVL?&d2n\] aٔXEUoe6._x_j omQ2oDo5V_h_o\056 b_HR>+s 1ǡY-MSMלC FZ# !B (6K )|dݮ o@+H oMsGU5PXF:*ٮ 8'=7,UFD  h ^TYY>UFD"H$'@F @FxT]]9 #4AUFD"H$@F@ @&@F?x0>Uhhn1n1`!#!J`F6 [>A{ (FMBa!? OABE3RNkO}OGBERE6 O?OBE2?;.1rA _0rRxS`3HD: ##=h0>Th]]9 (3q #UFGJg:#@F@ @FWtyz@F.???Pv> u{` ?u3>(.t  ( y?_A@HNpΈ_-t#`aU"p [`JڍU5 ILҹc0U~ "?AG}cTLIb` LineCoklK rzc+"1&Z/#nFFF"?&?#+"1&&` STadK wI/#/N+$;# FC lM 72zS&eacۢR4` uA cG nt)?@#cb3zs94#+$3$I!8<>3 Q3#8.f.30FP=4B/G3B11G;;#?1pyQ i}gTt ( u)@2`09@uMC cQ osK IfB1r@P!a`0iK n.@ UA%2 HsBe@eQ vG d@0 l>]UhzЍA3+!`J!VQAU__T3^_odgU5^No_roU __ooj'EAb59 M{7/v!3rQav44CK7%iOHBTg7D'$~vv I+"688e @ Q:(F|@v5?=+$cz,Z#b~-(T{ HD: ##=h0>Th]]9 3#UF u` ?6u3`b>"6(t  <,?A@U"p [ZBH|гYYt [ՄJU5 CLT0U"?AG}eC]` LineColZI rz۷!#nF;FF{#?&?#),)"/&&` STaKdI wG/#/ZL+$9# FA lK r72Q&a` ?RR) 3#B2((236727kpvB1o31P17;9#?L1wpyO igTt (cu)J@2`09J@uMA cO osM0IfHBL1r<@N!aH@iM0n.J@ UA#2 @HsBeh@eO vE d@0 l>]Uhz1A3)!BJ@o39DYX3UD_d_vY3^__gzUf53^_V_ozU3__H\o_j5bPf59 M{o7l/5v!3HraPv4!$ 5v|mai6oozo7]'$t~kvPv v8%TE xH@L?c8 eaD@eJ@ l@Qo:0@3 9r)']z,Z#(T5-sTAcL@0P@HD: ##=h4>T]]9 P3#UFpo@F@ @F18Q[ @F.q??P> u` ?u3 >,2t  eX?A@LR[ A\c2t#`e"p [NdJU5 MLc0U "?AG}gLMb` LineColO rz$g/"5&0mddd#nFF;F"?&L?#/"5&&` STa%dO wM/#/R+-$?# FG lQ 72W&eagRa` uA cK nt 85W%#gbd3zRw98#/$h(Ph9BB3 (C#8>239FA=B8G3APAG;?#? 1wpyU igT_t ( )@W20@9@MG ]cU osO fBR 1r@T!ad0iO wn.@ A)2U HsBe@eU EvK d@@l> 0>UhhCA3/!J!VCQU__T3^oomgU5^Wo_{oUE_oo%obTG t>Q e jXHle59 M{7/v!3rX/Qz#=!$K 7%inug7D/'2 #vtx J/":UGDF P# h>,/T6D # UFD"H$@]F@&u@P} jih,D@Su`} ?.U@Nu#hQgtSftܸtRtA@3db#t%T/M/"j/+.d#%@?/"t`Make B 0c"0ground#3%~ؒ314+1`VIS_PRXY0CHM!#60z070"w`?C40py20]i00ht&0(,0u)&02009&0UM0c22s40f2R1r0Aa0i40un0 &0Al:@U 8s>Be@e20%v$0d2"e (^q5 J% 3hHA%DK%D,K3DGg $aI_9SFTv4y13TU-T[Te ZTATU J8>wSa%F1Q01$DtybgURwSi@^UR-n,?oUR1j?RRTuKrQi? eb #! >baes?,3QRoX0cD&q1cQ(QR=wS1VZi#3 D40N40UtBn0a0n`Eq#?_^9jYazPtt"(wS117eU5`>Xcy1`I!&` H0d$2&F40qUAw0޸q` SPo]wRR+="v6 ~!R)RRLf] Th 'Q0d_HV> ל ߪJAC BFʿt#( i;B= Uݮ ]U@eko+C/ ]Ka_)]m*<N`r%` "m*>GC/$UFD  h ^TYYUFD"H$'@F @FxT h]]9 # AUFD"H$@Fcѿ?&@F5 L?sFC?P6 u` ?iu#t A@t   q?7Q.7)CWb7]ARMJqmdddpnFFF? ?Agam9T6` Fil> wCo> orz9b2j9A9obdk#zY)א9S|uX9/K&` /2L%!X!#\#w&` STWadD w/" /;)#82#b5"oU y3#B&(23"I&3cg30U2?AGQ}9L"|w` L ne%?(75N582M:Bhj<:AgCy1y17;C?C!pyJ i! htj(0)j2`09jM cJ osD fBC!r@I!a@iD n.j A" HsRe@eJ v#@dPw0l>]UhzAh#j181Ja`gCVQ'  2 bM[8A_^#e33nLo^og#eE3eVo_o#e!_>82rRA w082YsASi6bE9 MzgG]'4Ō;J!$a vvET#@x@&OnAHD # =hj0>T h]]9 # AUFD"H$@F@ ?&@Fq)?sFC?P6 u` ?iu#t A@t  ^)?7.7C_(\T[>JS/qnFFFa? ?Aga9T6` Fil* Con* orz9_b9A9bW#zE)9S|u%/7&k` /28%ߵ!D!o##&` STaUd0 w/"/+oUz G3#B&( 3"&3iE530U2?AG}x "|` L n e?#2Bh8<:*ACG1G1O7;3?/!py6 i htj(c)j2`09jM c6 os0 fB/!ru@5!a@i0 n.j A" yHsBe@e6 v0d@E0l>]UhzjADJ`XC66Q'  2RM)8@ mT}_^U3^_oagUEUtVKo_ooUp!p_>[QrA E0r sC)84Aeio6AbE9 MzG'4Z;!$Da Wvkv5T0x@?AHD # =hj0>T h]]9 # AUFD"H$@Fɻ1V?&@F&7 ?sFC?P6 u` ?iu#t A@t  Biq?7.7C!_lV}T[>JS/qnFFF? ?ga9T6` Fil* Co* orz}9b 9A9bW#zE)k9S|u%/7&` /28%!ߵ!D!o##w&` STWad0 w/"/+oU QG3#B&(3"&3E530U2?AG}u "|` L 'ne?#2BhP8<:A2CBG1G1O7;3]?/!py6 i htj(cu)j2`09juM c6 os0 IfB/!ru@5!a@i0 n.j UA" yHsBe@e6 v0d@E0 l>]UhzXjADJ`C66Q' C 2RM)8A@mT}_^U3^_oagUEUtVKo_ooU!p_>[QrRA E0r sCio6bE9 MzG]'4Z;J!$a T h]]9 #  AUFR_!@F;(kY?F̅$@F_fw?P6 u` ?u#t  \ Ac?oA@'t3(?.Zd;O?M&S?- >JS/qnFFF? ?{gaCۢT6` Fil4 Co4 orz۾Cb CACbۖa#zO)5CSu//A&` /2B%ߐ!N!y##&` STad: w/"H/+oU (Q3#B&(23"&3E?30U2?AG}u "` L 'ne?-2BhB<:A!CQ1Q1Y7;3?9!py@ i ht (c)@2`09@M c@ oKs: fB9!r@?!a@i: n.@ A" HsBe@e@ v0dH@O0l>]UhztA#B1J`!C660Q'  2RM38@wT_^U3^ookgUEU~VUo_yoU!z_>eQrA O0 rsCiy6bE9 Mz!G'R4d;! $a FvZv5T0x@?(AHD # =hj0>T h]]9 #  AUFR_!@F6??F̅$@F_q)w?P6 u` ?u#t  \ Ac?oA@'t3^)?.Zd;O?Mɯ??- >JS/qnFFF? ?AgލaCT6` Fwil4 Co4 orzCbCACbva#zO)CSu//A&`5 /2B%߿!N!y##&` STad*: w/"/+RoU= Q3# B&(!23"&3iE?30U2?AG}x "` L n e?-2BhB<:*A!CQ1Q1Y7;3?9!py@ i ht (c)@2`09@M c@ os: fB9!r@?!a@i: n.@ A" HsBe*@e@ v0d@O0l>]Uhz`tA#B1ŊJ`!C66"Q '  2RM38@wT_^U3^ookgUEU~VUo_yoU!z_>eQrA rs:Ciy6bE9 Mz!G'4Ŕd;! $a (FvZv5T0x@?(AHD # =hj0>T h]]9 #  AUF^!@Fp>?FKg@FmЁ??P6 u` 7?u#t  ?߀A@'t3;On?.Dioׅ?M@_߾?[ >JUonFFF? ?ob"ozCC]b,#&` STad_owCP lP -rz=&G/Y+[ ##e.2"#&3iE0U2?AG}x "` Li'nez/"Bh,:A!!';:3?I1py\ igTt (c)02`090MB0c\ oKsv f2I1r0[!a0iv n J0AX l07s"BUe0e\ vF0d""l>]Uhz1#!2!ŊJ`%6%6"A2  "RM(@DON(U38^Q_c_W(UE8UF_O_(U2O;2"rA 2#^cFCi%bE9 Mzl7]'4+J! $a ff95TF0x0I?s1HD # =hj0>T h]]9 #  AUF+ $@FmЁ?Fh_IŒ??P6 mu` o?u#t  $C?A@'t3;On?.N@?M? >RJUonFFF? ~?{b"zCCb,#&` STadowCjP lP rz=&G/Y+[ (##."#I&3E0U2?AG}""` LiOnez/"BPh,:A !!';u:3?I1py\ igTt _(c)02`W090MB0c\ osv f2I1rT0[!a0iv n 0AX l07s"Be0e\ vF0d$""l>]Uhz@1#!2!J`%6%6EdA  ("RM(@DON(U38^Q_c_W(UE8UF _O_(U2O;2"rA 2#^c%FCi%bE9 Mzl7'4Ŕ+! $a (ff95TF0x0I?s1HD # =hj0>T h]]9 #  AUFP0&@F'ǖ~rl?FMO?Fq_Ww?P6 u` ?u#t  ~jtx?oA@'t3ʡE?.Cl]M/$A >JUffnFF;F? ?b$zCuCb,#&` STadowCP lP rz=&HG/Y+[z ##."#&3E0U2?AG} "` Linez/"Bh,:A!!';:3?I1py\ igTt (c)02`090MB0c.\ osv f2I1r0[!a0iv n* 0AX l07Us"Be0e\ vF0Id""l>]Uhz1#!2!J`%6%6A  P"RM(@DON(U38^Q_c_W(UE8U@F_O_(U2O,;2"rA 2#J^cFCi%bPE9 Mzl7w'4)+! $aQ ff95TF0x0I?s1HD # =hj0>T h]]9 # AUF€#%@FL&d2?FM_O?ݐ?P6 mu` o?u#t  ~jth?A@t b@(.eX'?(MA>RJUffnFFF? ?b$zCCb&#&` STadowCJ lJ rz7&A/S+I[ # #.2"#&3E0U2?AG} "` Linet/"Bh,T:AB!!';43?C1pyV igTt(cu)2`09uM<0cV osp If2C1r0U!a0Uip n AR l7sBe0eJV v@0d""l>]Uhz1#!,!J`X66DA  " RMB(@DON"U32^K_]_W"UE2UF_O_"Ub2O;,"rAQ ,#Xc@Ci%bE9 Mzf7K'4Ž+!$a ff35T@0x0C?m1HD # =hj0>T h]]9 #  AUFb%@F'ǖ~rl?F2wa?Fq_W}w?P6 u` ?u#t  _LU?oA@'t3ʡE?.j+]M/$A>JUffnFF;F? ?b$zCCb,#&` STadowCjP lP rz=&G/Y+[ (##.2">"#&3E0U2?AG} "` Linez/"Bh,:A!!';:3?I1py\ igTt (c)02`090MB0c.\ osv f2I1r0[!a0iv n* 0AX l07Us"Be0e\ vF0Id""l>]Uhz1#!"J`%6%6EdA  ("RM(@DON(U38^Q_c_W(UE8UF _O_(U2O;#rA 2#^cFCi%bE9 Mzl7]'4+J! $a ff95TF0x0I?s1HD # =hj0>T h]]9 #  AUFu %@F'ǖ~rl?FMO?Fq_Ww?P6 u` ?u#t  ~jth?oA@'t3ʡE?.٬\m]M/S$AAJUnFF;F? ?b$zCuCb,#&` STadowCP lP rz=&HG/Y+[z ##. "#>3E0U2?AG} "` LiOnez/"BPh,:A !!';u:3?I1py\ igTt _(c)02`W090MB0c\ osv f2I1rT0[!a0iv n 0AX l07s"Be0e\ vF0d$""l>]Uhz@1#!2!J`%6%6EA#  R#R M(@DON(U38^Q_c_W(UE8UF_O_(U2O;2"ErA 2#^cFC i%bE9 Mzl7.'4+%! $a ff 95TF0x0I?s1HD # =hj0>T h]]9 #  AUF;%@F'ǖ~rl?FOr?Fq_Ww?P6 u` ?u#t  _vO~?oA@'t3ʡE?.]K=]M/$A>JUnFF;F? ?b$zCuCb,#&` STadowCP lP rz=&HG/Y+[z ##."#&3E0U2?AG} "` Linez/"Bh,:A!!';:3?I1py\ igTt (c)02`090MB0c.\ osv f2I1r0[!a0iv n* 0AX l07Us"Be0e\ vF0Id""l>]Uhz1#!2!J`%6%6A  P"RM(@DON(U38^Q_c_W(UE8U@F_O_(U2O,;2"rA 2#J^cFCi%bPE9 Mzl7w'4)+! $aQ ff95TF0x0I?s1HD # =hj0>T h]]9 #  AUF`9d[%@F?F{?Fߢ_-Jkw?P6 u` ?u#t  a2U0*C?oA@'t3 +?.ڊe]M~jtA>JUnFF;F? ?b$zCuCb,#&` STadowCP lP rz=&HG/Y+[z ##."#&3E0U2?AG} "` Linez/"Bh,:A!!';:3?I1py\ igTt (c)02`090MB0c.\ osv f2I1r0[!a0iv n* 0AX l07Us"Be0e\ vF0Id""l>]Uhz1#!2!J`%6%6A  P"RM(@DON(U38^Q_c_W(UE8U@F_O_(U2O,;2"rA 2#J^cFCi%bPE9 Mzl7w'4)+! $aQ ff95TF0x0I?s1HD: ##=h0>Th]]9 3$#UFt>!@Fp@FU^+m@F BP(??Pv> u{` ?u3>.6.t  ?A@RXqhki)t bk"p [SjJmU5 SLiT0U'"?AG}yFSb` LineColi rz!#nFFF#?&?#I,I"O&&` STadi wg/#/l+$Y# Fa lk &72q&` @?r)o 3#B..36=27.JM3117;Y#?l1pyo igTt (c)R@2`09R@Ma co osm0fPBl1rD@n!aP@im0n.R@ AC2 HHsBep@eo ve d@0l>]Uhz9Ah3I!J@35&5&hQ (;UL_q_T3^__gU5;^_^_oU;__do_j5b59 M{؏7/=v!3PrhaXv4!$A;7ai6oo74'&$|~svXv v_am A` Te xP@l>#mbzR#p8!e t@PQ:(F|'@f5ɔ?{I$m."z,Z#!b~-(T{<\B2>2 HD: ##=h0>Th]]9 3$#UFfG#@F BP(?FUiԄUV?P> u` ?iu3>W..t  x&1?A@RXʡE5i)t bk"p [TjJU5 [ SLT0U'"?AG}F^S` LineColi rz!#nFFF#?&?#I,I"O&&` STadi wg/#/l+$Y# %Fa lk &72q&'` @?r) 3#hR@BL..236=27$1311ԩ7;Y#?l1pyo igTt (c)j@]2`09j@Ma ]co osm0fhBRl1r\@n!ah@im0wn.j@ AC2U `HsBe@eo Eve d@0l>]UhzQA3I!J@X35&5&DQ(SUd__T3^__(gU5S^ov_6oUS__H|o_j5bP59 M{7l/Uv!3hrapv4!$ Uv}aiHz7]'&$Ŕ~vpv vX%Te xh@l?8 e'ad@ej@ @Q:1@3 9rI'm"z,Z#.T5-TAcl@0p@HD: ##=h4>T]]9 P3$#UFl6@Fp@Flf^J @F BP(q??P> u` ?u3 ]>2m2t  %䃞?A@V\m)t bo"p: [nՄJU5 WLT0U+"?AG}FWWb` LineCoklm rz醑!#nFFF#?0&?#M,M"S&&` S.Tadm wk/#i/p+$]# Fe lo *72u&` D?v)h9I!Bo? 3#eB223FA BGT2M3B117;]#?p1pys igTt(c])20@9uMe cs osq0IfBp1rw@r!a@iq0n. UAG2 {HsBe@es vi d@0)l>0>UhhClA3ZM!J@3,9&9&C"Q(nU__T3^__CgU5n^-o_QoUEn__o_(bTe ts0e j$Fje59 Mb{7/v!3rQv5!$;7aiPDV74'2B+#~vx _akq A` Ti x@p>#qb[zމV#qUGDF P# h4TPYY# %UFD"H$@F@&@P} j6   L 4 Hn[u` _?BU 4H9 u#p3lbtntQtRA%@> tS%tK/]'4( tTi%i/](/z.R&U@?/".g`Make BJ0cL0ground #d.#4#30U2)1_FB3!5~*؀3A$D;1`VIS_PRXY@0CHM!060<@78݉"`?C^0puy\0iZ0htP0(V0)P02b@0U9P0M@c\2s^0IfBvAry@Aa@i^0n@0 P0AUl@ }HsBe@e\0vN0d@2"e (^E 5 3r ca%A oCjA$A13 f3ba!5 cq@~n^e3jU?~bhKr;aq? |ub #h bauA1*4H f5ohc&Ac.abaEkQ,o^e= cAzf y3` D^0N^0tBn@a@nEi#_9Y@a `A1A1"( c'AAezeE>Xs A pIp1!` H@dN2&F^0YA @ޮ1` SPo]w:bb+"v 6 ~!bbbf,4T4?Had3E_HV>ל ߪJAC BFw #,ߩ6B} ޮ ]@e8ko+U ]BBG/)Ph{ q|(5&1$5.c/x6X789 (-JUFD  h ^TYYRUFD"H$'@F @FxH5@@@0ۀ HD:  # ;h4>T]]9 #U,AUFD"H$@FjZV@&@@P -u `u bu  @")lt A)0t#` bFv_n?p [_eAu` ?jurJ:26W&$##D./@%W(l"r/tvel JYO8?$"'D{(/$B}U2q(0?'?96?\.?fd?F 7`BackgroundC0l0rz\)z 5G!3M1 3?l"M@h<:A酙!30O贁Nk?mdddclak)2w` A0ce0t?A)n1bdCzI7!3117;l`?1py0i0h@ (0)2P20>P92PM*PcJ2s0f0R1r$P1a@i0n..2P A0l2P)WUs|RePPe0v@dpP0l>#$!Uh#3 pA QYŊJ*!3"Be(o1HD:  # ;h4>T]]9 #U,AUFD"H$@FVj?&@@P -u `u bu  @")lt A)0t#` bԚp [euv` ?SurAJ\tt&!$)'$"3/E X/j$=(tvel gsS?$"'*Q/$BU2q(0?'?96?\.?Efd?F 7`BackgroundC05l0rz)  5Gt!3M1 3&?l"(MPh<:A!30U_B??mdddLcla)2` ]A0ce0t?A)1b[dCzI7%!3117;l`?1py0i0h@ (0)2P20>P92PM*Pc2s0f0R1r$P1a@i0n.2P KA0l2P)Ws|RUePPe0v@dpP0l>#$!Uh#3 A Q!3 (BHA 3J*!32B'e@o1VcHD:  # ;h4>T]]9 #U,AUFD"H$@Fr߹\.@&@@P -u `u bu  @")lt A)0t#` bF_xP92PM*Pc2s0f0R1r$P1a@i0n.2P KA0l2P)Ws|RUePPe0v@dpP0l>#$!Uh#3 A Q\YJ*!32Be(o1>cHD:  # ;h4>T]]9 #U,AUFD"H$@F~߿?&@@P -u `u bu  @")lt A)0t#` bԚp [euv` ?ur>JvSȱ&$)'$"3/ E X/j$=(Etvel 37?$"'*/$BUo2q(0?'?96?\.?fd?F 7`BackgroundC0l0rz) K 5G!3:M1 3?l"Mh0<:A!300b/?mdddzcla)2` A0ce0t?A)1bdCzI7!3117;l`?1py0i0h@ u(0)2P20>PU92PM*Pc2s0If0R1r$P1a@i0n.2P A0l2P)Ws|Re*PPe0v@dpP0l>#$!Uh#3 A Q]!3 (BA 3J*X!32B'e@o1VcUGDF P# h>,/T6D # UFD"H$@]F@&u@P}  ih0D *@3-T-hc-|u` ?W΍U,@T'*hh||-"| 'u#QtSt% "{tR$t/'A@#KtT%/(/-3b/(08"A2?X>d.3@??2.`Make B0c0ground 335~J3hAmD;1`VIS_PRXY0CHM!#60@79݉j2`?C@puy@i @ht@U(@)@2@0@ @i@As@fBAr@Aa@i@n0 @AlP HsRe@eJ@v@d22e h4^hh P T3 3hHQ5T[5T[3T@[TT[ETh[TX|WndPao7T1128cpAhAhEhATh]]9 3#UFԚ?F BP(?F @F߅d\?P>u` ?iu3>k(.t  9#J{?Ao@HtSݓ_N׳_ambԚp [aJڍU5 ILc0U~!"?AG}cLIc"` LineColc rz$cC"I&nFFF#?&^?B#I&&` STa%dc wa/#/f/G(iF" d3#$..36hH1$d1d1l7;S#? 1pyi igTt ( )@2`09@M[ ci os!0f B 1r@h!a @i!0n.@ AR#0l@GsYBe-@ei v_ dM@b0 l>]Uhz13C!`J/!F%QA(E _._@T3O^h_z_W?UI5N___?U Oa_!o_j5AbI59 M{R7/f!3 raavb5!$fAm/%Q12ooXR7w ' $9~0vx] vF88e 1@tQR:(F|@{f5Q?=C$cz,Z#bS~-(T{<B2 >, HD:  ##=h0>Th]]9 3#UFGZت$@F BP(?Fu?Fa]?P>u` ?iu3>k(.t  aTR'?Ao@HtSˡE_N4@_ambԚp [aJڍU5 ILb0U!"?@2LhcC"II&ynFFF#($(?#R,C"I&&` STadowC l rz&/+_y" QB3#.3i6h H1q$B1B1J7;v`? 1py igTt _(c)02`W090M0c os0f2 1r0!a0i0nU.0  l 8Us-Be@e v?@d!@@0l>]Uhz13 C!J/!FA(EO_T3#^<_N_WU'5N_O_UO5__Y_jD#b'59 M{07/f!3baf-A4!$fm/%ij5|oorX07Ww' $ ~vf Wv $8e'ua0e0 @PHZQ0:^2@3 9R'cz,Z#.T.'~-qT@Ac000HD:  ##=h4>T]]9 P3#UFD"H$@F@Fq!j@FC1[z??P>u` ?u3 >,2t  0*?A7@LtWzGcQR e0qbFL&d2?p [>eՄJU5 MLT0U%"?AG}FWMbg"` LineColg rzR#nwFFF#?x&?F#uM&&` STadg we/#/j+$W# F_ lDi 72o&G,`h9C!Bt! 3#.2236A2JM3117;W#?1pym igTt(c)20U@9M_ c.m osg fGB1r;@l!aG@ig n0 A22 ?HsBeg@em vc d2l>UhhC0A3G!bJ@33&3&C_QA(2VC_h_zT3^__gyUb52^_U_oyUE2__[o_(bT_ ti e j5ieb59 M{7/[v!3nrvv-4!$;7aiX7w'2%#՚~vvv vw_H<>SGל ߪJAC BFXwI|#(- T]]9 3#UFD"H$@Fh4@Fj~L$@FZV{?@F?P>mu` o?u3 #,2t  K46?A@LR e,֍t#`F BP(?pz [e"ejJU5 MKLT0U$"?AG}Mb` LineColf -rz!#nFFF#?&F?#F,F"L&&` STa%df wd/#/i+-$V# F^ lh #792n&` =?o))eCQ3#8&327A22\ތ32q@?O FM$? "fKO:F!%311Ԧ7;V#?i1p]yl igTty(c)y2U0@9yM^ cl osj0fBi1rԪ@k!a@ij0n].y A@2 HUsRe@el vb d@0l>0>Uhh7A3gBbJ@32&2&QA(U_ _T3^ o%oxeU5^`o_oU5_ oo.oi3 eB!3)m!#1'/28pȱ;!$8Q 52xbszgO#u%w#vj#lei:M{!/!3wxAJ dQ`$U8!e fQ:(F|@$v9K?F$g"z]#b?M-,T{{/ Ck\tq ĂHD  # =hj0>T h]]9 # AUFD"H$@&@FxitI%"p: [kՆJsnFFF? ?Abm$zOOSsu` FilA ConA orzOk` >/2O%(!(&\#&` STad*G wE/"/+ReU= 3#J8'32H23"&3E#0Ut2??AG}ΐ` L? n /Bh,:A311 7;3?F!pyM igTta(c)a2`09aM? cM oKsG f3BF!r'@L!a3@iG n.a AA" +HsBeS@eM v dHs@0l>]UhzA#!J`366KaDX' (32oRM(@T/_O_KQU3^__gUEU&V_A_!oUk!"_> QrA *bcCi%AbE9 Mz7's4;! $Da fv5T x3@?1HD  # =hj8>T! ]]9 #,AUFD"H$@Fx@&@@P6 -u `u `bu  @e" - A-0t#` b ̮?p [iuu`l?SuvAJ`rJ &$-'("7/ I \/n$A(tzip Q?$"'(/$񓾍U2q,0?+?=6?\.?ljh?F 7`BackgroundCj0l0rz-.~5e%3Q1 3?a t##FGB%3!#rٿnFFFf6AۚsA,? ("bCzy-lB-3&` STa0ow?(!` Fi0lrH2F1` OE=%:?Q1&gp!K7h<:AJ%3117;XQ@?1py0i0htk(0)k20P9kM@c2s0fR1rP1aPi0n.k AB Xs=be*`e0v0d1`0l>#(!Uh #3 XQ\iJQ*%3'928e&o i1HSeE9 MzW'0URr;!4o ]vqv1` T0xP_QH D:  ##=h4>T]]9 3#UFD"H$@F~@Ff>$@FZV{?@F?P>mu` o?u3 >,2t  Q|a?A@LR e,֍t#`Fi4F?pz [e"ejJU5 MKLT0U$"?AGq}2Mb` LineColf rz!#nFFF#?&?#F,F"L&&` STadf wd/#/i+$V# F^ lh #72n&` =?o)eC(3#82A"36A27\327q@?O FM$? HfKO:F! 3117;uV#?i1pyl igTty(wc)y20@9yM^ cl o%sj0fBi1r@k!ua@ij0n.yW A@2 HsRUe@el vb d@0l>0>Uhh7A3gBJ@X32&2&DQ(U__T3^ o%oxeU5^`o_oU5 _ oo.oi3 e23)pm!4/'2$#ձ;!$8Q 52xbszgO#u%t#xj#lei:M{!/!3wxAJ VdQ`$U8bT^ tl0e @he}}k\tq ĂHD:  ##=h0>Th]]9 3#UF3钿Y"@FFە @FNPQkӭ??Pn>u` ?6u3`b >"6(t  z6?A@BHK=kUYt ["p: [ZՄJU5 CLT0U"?AG}eC` LineColZI rz۷!#nF;FF{#?&?#),)"/&&` STaKdI wG/#/ZL+$9# FA lK r72Q&` ?RR) 3#B2((236727kB1o31P17;9#?L1wpyO igTt (cu)J@2`09J@uMA cO osM0IfHBL1r<@N!aH@iM0n.J@ UA#2 @HsBeh@eO vE d@0 l>]Uhz1A3)!BJ@o39DYX3UD_d_vY3^__gzUf53^_V_ozU3__H\o_j5bPf59 M{o7l/5v!3HraPv4!$ 5v|mai6oozo7]'$t~kvPv v8%TE xH@L?c8eaD@e J@ fQo:3@e3 9)']z,Z#bK~-\sTAcL@ 0P@UGDF P# h>,/T6D # CUFD"H$@]F@&u@P} ~ k ,D@Tu` ?LR,ru#|QΉtSzttRt 'A@tT$/ (L/+-3xOb ((A"i/.d#@3)5~??".s`Make B0c0ground#b314 ;1`VIS_PRXYx0CHM!#6008!"`?C0py0i0ht0(0)02@090M@cJ2s0f$BAr@QAa$@i0nx0 0All@ HspBeD@e0v0dx2"eYk} !HA%DK)5D,K3DKDTGnDAD_'7BTAy1y1 "(S11}51<>@XBr1I!&` H@d.2&F0o$@Az0#` SPowRo +<"v8d7e7 J@cbbg bg__0R11"Sa%1+bb$y1r,QHEq)5Se@~|u3{,|uVz?rxK2cxfq<`}? rjb #! bIgaj?@TT,3qEGxsD& 'M1sYq(q{r=SeS,fa0 D0NZbAn$@a@Q"AC@M7LqtKo]e_vH>ל @(T6D UFY,b'@F#H$ @FxT ]]9 TaAUFY,b@F#H$@&@WFF"W@P6 u`bt A@u)΍tStS<tTJ(S3d i)Ob  ADREJ#U0U8"?@$ t0 ?$( ?U kaX:`B c groundC l rzAb#z.)s$%B//#b w/bn3H? K1#5 CL.`M kek2?dQ5.1#A D5 v$`?!py;0]i90htk(50])k20S@9kUM?@c;2s=0fEBR!r9@!aE@i=0wn.k A lk>GsBee@e;0v0d@B1#lhA@=^M G5C G&dRMl>0>UhhE p.A!1 $R0SPJf l#b(.hD Ob"YbM_(F!o+g?7o3coe5noogoeV%efo+o oeE2 o;rAsCghe[+TQQM- &EtJsTl@S6V%B,QE=BAA!D)B0#` D=0N=0t*E2nE@a?@nE,15eq3FB(OqiAbV%9 M!4.'7$ň&!$Q2 $H>%1x (z)ub"`\NWFN#ô jPeB ״ ]Pa, Q@+Y #BXV+k!UFDfP h>,/T6D ؉UFY,b'@F#H$ @Fx%B2 6gdaO{'TT'T= S5Ҧ13C#C D)@N)@tC)@nsPaiyPr$^ Ph(:LV?DOowpx`,p|rag ont] hep ad ful--> siz "]bckru"im.bY,b#H$@@5pm;μ@@3F" HD  ?hZ8>T H]]9 UUFY,b@F#H$W@' P6 lA u`l?U  u(tS&A@ctTl$bsTJh=M/ m20U?@LebTqBG H#$\( ?A3`BackgrounWdC l rzuu!$)(=~ H" #{#9"Mj%7 M`M kek/dpQu` EvNO0nt!p'!~u eJع1!';1#Vis_o RXY. hm!#6050 v`?!py ui hx0 ( u)k2009kUM0c"s fBR!r0!ax0i Un0 kA lk*GsdBe0e s1Qd0 &+?"A %l>0>Uhh5@ 7A!!!JnGV lfX 2 3VM@ !Q_&1q_mQU3^__5gU%UHVoc_CoЧU"5G_ #rRA !"cCgThe'+RT!!M-Qt^t JcTl!nqz{,@{3#T811 C!## D N t"w1a0nEH>Or S-"GqS@w`F8)V"#3 KXTB ]^ax߮s ]@+a Y}BزVIPUFD  h ^TYYUFD"H$'@F @FxT]]9 #U/P%g(|"./t  {Pk?e"p _o*'6#4!Uh#3 A AYAJ*=3F"+2BU_ ASHD: # ;h4>T]]9 #U#AUF@F\.?Fl6 @@P Vt`  ?"u u u " '@l0+bA80&t# bp [5Ru7?u_eAYJUFL8~i/6a房D!@ '!"*(E,{Pko"] U?N@*(~k *Q/Bo2q0??6??S??F 7`BackgroundCq0lq0rz~8b%I=(1g 3?"&Ph<:AZ20U0B3 Lb+ 7117;Y`]?z1pyo0im0Wht(i0)W20@9M@co2sq0fBz1rԡ@1a@iq0n]. A}0lGsBe@eo0v" Pd@0l>#$>Uh,#3 A AUE 2teA}o #J*A @"BU_1SHD:  # ;ih(>TA9 35AUFi4F? <Ѕ2P $>  u` ^?3 u4#"t  q?A@g#tYsn$"Jh?hB="5 +#?A&\ ?~!~!5 `?CopyrigTt(c)20 9M c os f"!r !a i n. Al (s"e e v0d l>#UhEI !#J?Xl]b4X6WBHD:  # ;h0>Th]]9 #AUFi4F?k?@P -u `u bu  @",% AGh[ >u`] ?u#J" ѿ$ #p/$.?/ ")Z/l)t )baht Da&(/Ԯ$BU27q 0??16?\._?b\?F 7`Backgrou_ndC0l0rz%b5=t3E1 3&? ?9!J31h17;h`?1py0i0hUt (0) 2`W09 M{@c2%s0fB1ru@1ua@i0n. A0l zGsBe@e0v@d@0l># !Uh#3 A jAYbJ*3B`Uy_1HD:  # ;h0>Th]]9 #AUFi4F;? ?@P'-DT!>-u `u bu  @"E% AG[mu` 7?u#e@)J"9$' "/-%Y'%-(c/- t aht aR"/$&QbaBU2q 0??16?\.?Eb\?F 7`BackgroundC0l0rz%b_5=3E1 3? ?9!3117;h`?1py0i0ht (0) 2`09 M{@cJ2s0fB1ru@1a@i0n.. A0l zGUsBe@e0v@d@0l># !Uh#3 pA jAYŊJ*3&"2B`Uy_1SUGD  # h#$T #3 BUFL8?Fc?@Fi4F? uP} VV    $ u` ?ULV){$$ASu#L"p [A@)HtI  {Pk5?0t bF,/|񁠅dyBM#!!Z* "`?CopyrigPt (c) 20 9 M c os f"!r !a i n. Al (s2e e v0d ;"eYk}$Hp1D%|4;E|4$7UGD  # h#$T #3 BUFibAA%@Fc?@Fi4F? P}  u` ?u# VrVh -(^<c=PLVU((<<PP"p [A@Kt  6TA9 35AUFi4F? <Ѕ2P u` ?Mu# t  q?A7@t+"=&9Enm$ >  , Jh?B="5 +#?A&\ ?~!~!5 ~`?CopyrigTtl(c)l20 9lM c os f"!r !a i n.l Al (s"e e v0d. l>UhE`I !#J?l]2b6BHD:  # ;h,>T]]9 #AUFi4Fu?k?@P -vu `u bu  @"E! ACWmu` 7?~u#m>)J" ѻt b[]dt ]&( '/$$y'!t"/%'-/ BU2q0??-6?\.?^X?F 7`BackgroundCj0l0rz!?b!I=3A1g 3?3117;vd`?1py0]i0ht/ (0])/ 20\@9/ UMH@c2s0fNBR1rB@1aN@i0wn./ A0l/ GGsBen@e0v@d@0l8>#t!Uh #3 A 7AI+J*3[2B-UF_1\SHD:  # ;h,>T]]9 #AUFi4F? ?@P'-DT!ݿ>-u `u b_u  @"! ACWu` ?~u#->J"9Bt ]d!t ]"/ $-&b[]$y't"/%'-/ BU2q0??-6?\.?^X?F 7`BackgroundC0l0rz!b!=t3A1 3&?J31h17;d`?1py0i0ht (0) 2U0\@9 MH@c2%s0fNB1rB@1uaN@i0n. A0l GGsBen@e0v@d@0l>#t!Uh #3 A 7AI#J*X3[2B-UF_1\SHD: # ;h4>TB]]#AAUFD"H$@Fc?@F%@FCHy5?P6 Amu` ?A@ u#`%t  ŏ1w-#LRtA`%"p [S$J=#UG ?| ?釉\2q- ?,/>&?\.+?&i/: -4 # #20U" @ #Mb Bh,:*A!!';`?CopyrigTty(c)y2009yM0c.0os0f21r01a0i0n.y Al0 8s2e0e0v0d0 l*>,>UhE=%y1# 1J! rBA?(wN9OOEE3wEOKOY% wESO#R] JiAle%(9 MX&7WW'$ž.! $0 V #x"j__$f!32bGgHf_1 `5kyoobq %?1HD: ##=h0>Th]]9 3#UF( x"@FFxQ}H( @Fy0խ??Pn>u` ?A@u3`b>,2t  ?sFLR +5t ""p [NJU5 MLc0U"?AG}(LM"` LineColS rz$3"9&nFFF#?&^?2#9&&` STa%dS wQ/#/V/7(iF" T3#$2236hL1$T1T1\7;C#?1pyY igTt ( )02`090MK cY os0f21r0X!a0i0n.0 AR0l07sIBe@eY vO d=@R0 l>]Uhz133!J!9 RXEO?_)[3?^X_j_W/U95N_ __/U OQ_ou_j|5Ab959 M{B7/f!3bѿavS4!$f1m%A12(ooXB7sw'$)~ vv: sv688e !@dvQB:(F|@kf9A?=3$z,Z#bԁC~-,T{< B2 > HD: ##=h4>T]]9 P3!#UFD"H$@F<@F ҵ #@Fx萢5?@FN@?Pv> u{` ?{u3` #>,2t  ]?A@LR e0t bF@ ?p [e"eJU5 - MLT0U("?A?G}FMb` LineColj rzR#nwFFF#?x&?I#uP&&` STadj wh/#/m+$Z# Fb lDl 72r&J,`h9F!Bt! 3#.2236A2JM3117;Z#?1pyp igTty(c)y20X@9yMb c.p osj fJB1r>@o!aJ@ij n0 yA52 BHsBej@ep vf d2l>UhhC3A3J!bJ@36&6&C\WA(5UF_k_}T3^__ g|Ue55^_X_o|UE5__^o_(bTb tl e j5iee59 M{7/^v!3qryv-4!$;7ai X7w'2(#՝~vyv vwUGDF P# h>,/T6D # UFD"H$@]F@&u@P}  D 3,@+  h?u` ?U~@@T^,u#Q3tStB%: D"tRB$tK/]'A@3bI/[(#:"tTB%/](/{/A*""/.dJ3@S3y5~h?S?J2.`Make B0c0ground: @3ز3AD[;1`VIS_PRXY0CHM!#60+@892`?]C0py0i0Wht0(0)0U2Q@0W@ I@i0J1s0ftBeArh@Aat@i0n0 0Al@ lHsBe@e0v0dT2A2e4^AA @Jy5 3H=QJ5ITT[y5IT,T[3IT@T[ITT7WEIT^[@EXhTWnda:oTw7T(11J2G8hcAAEA>Xr1IC1&` Hn@d2&F0ot@A0#` SPowoTD!+"vde* @"s)r#r%_w)rgA0o^So=@ib@1$1J2ty2-t3I[t ZtE "bG8TQk`aJ5AK#r)r1{1Qg ga$y5hce@6D3,φ+?6ם ߪJAC BFg]b#i ^CB ߮ _U@eko}+j oBBVoP?nbXqeO8KgxiGClO[n:prtX?#w@zo}drUFDfP h,TPYYCUFY,b'@F"H$ @Fx siz "]bckru"im.bY,b"H$@@\L[/f&.{@ͺl@;μ3D UGD" # h <^T$(YY#UFY,b@F"H$+@' ]P} j&(<XP"u` ? ((<<PjP nu#:xtSv߀A@#tT /tb"(9'do `%  `"Mo`Make B c ground!}Q ` Ev nt!pb ~  "%JT%-%'W+3S?$B#i#k0Ud2>3F&=i$46`#4r6r6 :2g"\i#2q0??F`#F\.?y( .O@i#dA+137]D"`?C"y ui h ( ]) 20@9 UM@c"s fBRAr Aa i n. AUl@ HsBe@Ie !d@)01w`V@s_0_RXY@cPWm![06@2.P QW"&/H:L e(^!6D _] i#HZZ`%T[%T@[3TYWgda^oC +T# 1 1`"13Rd3](cvydA C08Ua%k,@odL33TdAfx\3` D N tB!a@n8UA^E `%{MW?r6!3r0v*4*P83r69MTHD # =hj0>T h]]#A UFf0!? c@F"H$@FL( jKb' P6 ]Au` ^?M u#t  ]oEt9SENQ,>ChJ#0O迴Nk?{F 2q ?/&F\.?A8@73`Backgrou_ndCp lp rz@b Q Q#t$]A -]&MB±~<# u;c/u/!O2݇ #Iob< @P2V?h?!ܔ6!P!';3?1py0i0hUtp(0)p2`W09pM@c2%s0f!B1r@!ua!@i0n.p A| lpGsmBeA@e0v@dHa@ l> ,>Uh =E A#!1ŊJ`+6R  8x\ UVMY!9#_x9_5QoU3U+>_3__E2 _U2KrA 2NcCiA1eE(9 MX'E'0UbŔ+!ra .fjvoo{'_ !3rgfc`#fI-pHD # =hj0>T h]]#A UFL( jb@F"H$+@' P6 n>u{` ?5 u#t  ]EQt9SENEEhJ#0O贁Nk?F  ޱ2q ?/&F\.?MA8@73`BackgroundCp lp rz@bI Q:'! #t*$ -&MB±}_'!<# u;c/u/!<݇ #Ib-< @P2V?h?!܂6!!';3?1py0i0htp(0)p2`09pM@c2s0f!B1r@!a!@i0n.p AR| lpGsmBeA@e0v@da@ l> ,>Uh =E A#!1J`X+6  8x" UVMY!!_v9_xoU3^9__1UoUbE2 _U2rA 2NcCiA1eE9 MŔX'E'0Ub+!ra fjvoob{'*?!3rgfc`#fI-pHD # ;hj0>T h]]#A!AUF04qy#@FǮX?Fqo#@uP6 $> lu{` ? ;u4#*t' ‡tfmta{mvm[W"m3J#U0O贁Nk?F 2\2q* ?)/;&F\.?+A,8 iG #f?pH&M<# ";`BackgroundCJ0lJ0rz@ba0a072=?O?a4i6qbWd @B !!';us3?1py0i0ht (}0) @2`0U9 @M@c2s0IfB1r0Y1a@i0n. @ A0l @GsTBe*(@e0vf@dH@ l>,>UhE=%1#!1J`Fr  $&M3 `Q 6RFxAgߊ |? YF_W&d>2 ~`_21^'` _}A_(@M9 __Ue%2OU2rA T 2cxCiA1e%9 MX'g'0EUrŻ+$a f#xB"joo!$m_!3r =w>v12y q-> Ako(#HD # =hj0>T h]]#A UFOvE%@FǮX?FU1@?P6  >u` ?j u#t  ΈEt9SsENCп+EhJ"A|7<F ?ka@X:` Ac entCol* rz} b A bQ#z?)ۀ Ib'Ak!" //.*?/b!#Z/l 񽓱2q0??6F\.?Ey =?:@73`B cwkg0 ou d/b'Q Q3$A -6MB80UB2  !?'117;`?x1py0 ik0h ( )@2`0U9@M@cm2s* IfBx1r@/!a i* n.@ A, l@GsBe*@e0 v d@0Rl> ,>Uh =EAh#1o!J`z*`1  86n8[2 VM(X1_[gU3^9o!oUUE2~_Uo"KrA 0o"c%SiAbE9 M!4E.'D;;Da f jooŕ{7v!3r_w`v`Wvv+H=R_\H>` r =T"?KF(#6 وTB9괿 -^aд o@{+C oQaGUoPxxUH͐IéٗUFDfP h>(/T6D UFY,b'@F#H$ @FxT P]]9 %AUFY,b@F#H$@'R P6 u`bA@utS!WtT6 WWb; Z RADEJ#U0U?t":#a?L& ? kaX:`Bw cq groundCj l rzAb#z)sx%8B//#b ܭ/b23/!5 /Lf1w`Mw kekz/d!/R:}y` Ev0'nt1p~O2%145 8`?!py i h0 ( )k20>@9kM*@cJ"s0f0B!r0!a0i0n..k A lk)Gs|BeP@e 1dp@B+lhA@=M Ga53+ 7L&AORMl> 0>UhhE A!d1 s$R S PJ8VlbhXD !:bDbM#( !0og?"ocZeX5jnoogZe%jeVoooZeE12_;rA*sCgPhe[+!TQQM- IEJCTf%qbt!%s3,@=M! E=s11 DB` D0NR0t 21a*@nE!X5Xeq3FB(qiA b%9 M!d4?#ԁ'ŔL&!g$oQ5 H> r (z)ub"`\NWFX Q#Ǵ eB ( `Pa_Tд o@+ oB+o4UFD  h$^T YYBUFL&d2?F~?Fx<F BP(?| ~P?| w VBW< 2h5h? Pm?2?2P'2ȅHBU? ? D G 0eB`-City,n_ tworko ly cak iy no si"eo pR a !iq sk a !%= \%E^  G n?~#0?688?U[fcffgf 3fwf c3gwfw` f{~6a wxxxwwp` px wpu 0226yR2gy?LDrag thuesapWonodwipe.b~??Q뿤i??"&d2}L4oҿ޿UGDF P# h @T(PYY*# U@L&d2?@~?FUP} . !P6 :T 7h7|777 ,7%A'7.u`_?U"6@RThh||"u#) ^2<7:U? ?4b0{[`:S1#26X3#"2^QHW93 2 1/L1$-"@ 2  2"3'>>ÿ@ǵqp@eE?oDeF0|r&BCkBu@`i-1Bu @  26CA (B" 2#& "0)9u `u`"[ b1 $𿻐u`񾄑W3J#N5)W3Qq1q71`Vis_PRXYcPm!#5n `13RB`?CopWyrPgPtu(`)20?`U9MPc)`oP'of1b"ar%`^aUa1`i#`n WAly` )hs}bUePe)`v`dRq1N3 dZ4V1B=Tr6N3@t|6|6 x2N4#W30U[r|3]W,7^q_@VcTg dagRsqu2+ D3hhR)^RHqqE2K8CT $0aN2{5\1pac2!6u%\ GŜ1S1J[2@@R4{35s_N4]&F3s͵NSYFwUUaU,@Qr#`er51pN2K8ڀqiviv_<׀,=pޟ &K8AWBCgE/s"ITh]]9 M IAUF~?@s?F,jג?FRW_7r6?Pps-8Rw?>$Y]A  JuM` ? ;  )u*Jt' eta{+23.JvюV?lv_ ?vx]PqE>JU43f;?4.&P?Apb3bbfz@Ave bh(bv)t&*J#!!5 `?CopyrigTt~(c)~2`09~M c o%s f"!r 1ua i n.~_ Al/0 (Us32e0e vE0 d'0!3]$$#-## '.&%d 2zoGz.#@ M#J6h/z/ BK' B*ib~59 6X7oG'K0UB.&!I$Ia oFJl6.}UhU=!1 A(# ~VIP & `!& T` V_RUGD  3 h0TdYYB qUF9r?@H$$?Fvn?@@u?P} Lk f 0u` ?00DuNrtK  jtK޹ѹMWZU;!;!`?CopyrigPt(c)2\09Mj c.h osb fp"a!rd !ap ib n. Al h(s"e ejh v d #"P4#S8$,#B-5# H" G'I?O=5#H&,#Z45656 12j,$#5#0U2%53+&j  ^K5 6X77'456!.4] 6Je$B^ 6D 0HA,%DK%D0GHD: # h 4>T  9 P#CUF0C3?@&@ P?FμW3P6 n>u{` ?5u#t  (]It=W!IVR1_IlI#>y;?? ?bA@"b])b)&2\"@ #[&/#'*+:'";*t\U$q ?/6 46?> Jh1h15 g`?CoprigTt (c)02U0090M0c0os0f21rԑ01a0i0nU.0 0l0 8Us2e0e0v0 d0a1(e4B-t3 t70ieM9 kF:X=GA_'2r"Z!0 F3j|OO{=GyV!%3RGFNDGN_:w5k&_8_Rq @ElAUhhEG1#@A-!T6j& f$<f bfI(:x<'0i`c q$q3a(z=iKquM$ufE`|aOyX+cqE2o;#rA $2H bWHD: # h 4>T  9 P#CUF?@&@ _P?FP6 v >u` ?)u#t  P]It=W!IRg]Hl#>y? ~?bA@"b)b)b$񅴍2\"@#[&*<%&$*Q+:'";*\U$q ?/6 b46?> UJh1h15 g`?CoprigTt (c)020090M0c0oKs0f21r01a0i0n.0 0l0 8s2e0e0v0d0a1e4B-t3 t70@ieM9 kFX=G'2r"!u0 F3j|OO{X=GyV!3RGFNDGN_:w5!k&_8_q @ElAUhhEGІ1#@A!Z@2r80; <qL#4 bvI(a9i@`bcbu3:+}E`lQqi?X+cqM*ufoUyQquE2oe#rA $2H bWHD H# h0>Th]]9 M#JUFvn?@&@ P??@*~w?P6  >JuM` ? u#Jt =t9S!WJNbFh.>y*<? ?AJA@+b)b$J2N7Nk@MJQ&*2%$*+0'1*T!!5 c`?CoprigTtV(c)V2`09VM0c0os0f 21r0M1a 0i0n.V Alh0 8sl2e@0e0v~0d`0!E]$-# '0AbE9 6X7G'0URWB!a F"JlJ]Uhz 1#1-Z61 K 8 0R]VJ:9 6S gPQETT]]B9 #CUF^?@z?FO&_~uP6  >u`3?ju#t  @WIt=WUr mIR~[WPHl#>? ?Lb "z@A gb(N(+b*$2g"?088r #f&#fb8!r.DF&""+E'""F* \ ?X64?+96N?UJ~1~15 g`?CopyrigTt (c)020090M0c.0os0f21r01a0i0n.0 0l0 8s2e0e0v@d0w1P{4B-,3 70ieM9 FXSGG'2WUA!0 F%jOO{SGV!%3R W VdDWN_:5k<_N_Rq VEl QUhhE+G1#VA-"!T6u&F f$<f bvT(:+/U?k`c 2g.q%:uoc xWJ#eaq*uM:uf-l6R|aeyj xx-E2o;""rA !$N*H bWHD:  %$h4>T]]B9 #CUFD%?@\f#??@k߻?P6  >u` ?ju#t  I_IIt=WPaIRIJl*w#>G?? ?b߀A@eb=!z #"b $"bI$2g"?088r b#f&*8!r%/F&"+E'"%F*\ ` ?64?6N?U J~1~15 g`?CopyrigTt (c)020090M0c0os0f21r01a0i0n.0 0l0 8s2e0ej0v@d0@w1{4B-3 70ieM9 FXSGG_'2WUAZ!0 Fw%j(OO{SGV!3R W V@dDWN_:5kH<_N_q VEql QUhhE+G1#VA!Z@+*S?F <`?"B## bv@T(a9i`bcb0u%:A}?l6lgqiQaF 4qMuЍ=7{cc )A #ougq0u-E2oe#rA 0#VN*H bWHD:  %!$h4>T]]B9 #CUFW-?@=?Fh?@uV?P6 v>u` ?)u#t  Ht=WB/aקIR_noIl3ur#>!;??| ?Lb "zo@A gwb(b*)I(&2g"?@#f&#f #-(+(+E'""F*\ ?64?6N? *J~1~15 g`?CopyrigTt (c)02U0090M0c0os0f21rԧ01a0i0nU.0 0l0 8Us2e0e0v@ d0w1({4B-3 70ieM9 FXSGG'2WUA30 F%jOOŕ{SGV!3R W VdDWN_:5k<_N_)q VEl QUhhE+G1#VA"!Z@%g 1?( <Kg" bSvT(:?31J9c 0_M#db0u%@u~~mlfl?"0uM@ur\8ˊc`[y뵸m}q0u-E2oe""rA 3!$Tu bWUGD  3 h0TdYYB qUF 0KR?@xՈ ?F?@_@w?P} Lf  0u` ?00D)uNtK  Uɹt0zkn̹ k*ѹWU;!;!`?CopyrigPt (c)r 2\09r Mj ch o%sb fp"a!rd !uap ib n.r _ Al h(Us"e eh v d #"4#S8$J,#B-5#6G# G'?O)=5#H&,#@Z45656 12,$u#5#0UU53@+&j ^K5 6X77'R456!.4]R 6Je$^ 6D  5#HA,%DK%D0GHD: # Th4> T]]9 #CUF/KR?@wn?F#vP.6 Au`= ? u#t  o,It=W:CIRGm Mw+Il#i>y9 ?? ? bA@"b)b%)&񭃵2\"@# [&/#'*+:'J";*\U$7q ?/6P 46?> J h1h15 g`?Co}prigTt (c])020090uM0c0os0If21r01a0]i0n.0 0Ul0 8s2e0e0v0d0a1e4bB-t3 t70ieM9 kFX=GA'2r"!0 F3jP|OO{=G,yV!3RGFNDGN_:w5k&_8_q @ElAUhhEG1h#@A Tj&1 $<fib bfʼI(:0 0i`c 498˱q3a(z=iKquM$uft:ۍ|HaOybxE2ot;#rA $V2H bWHD: # Th4> T]]9 #CUF?@wݯn?tP6 >u` ?u#t  ]yY'It=W菗:CIRHl#>Hc? ?Lbbcbz@A } b(b*) #a 2g"@#f&*G%1$*+E'""F*t\`$q0??6 *4A?> Js1s15 g`?CopyrigTt (c)0W20090M0]c0os0f2R1r01a0i0Wn.0 )0l0U 8s2e0e05v@d0l1p4B-X3 70ieM9 vFXHG/'2r 2!0 F 3jOOŕ{HGV!3RGVYDGN_:5k1_C_)q KElQUhhE G1#KA Z@~#0f < 1#4 b vT(a9i@`bcb%u3:6}t:l\qi)qM5ufo`y\q%u"E2oe""rA Y!$=H bWHD H# h0>Th]]9 M#JUFʺ?@؏pǶ??@/Qw?P6 >JuM` ? u#Jt =t9S6WBBJNbFhՁ$>:3f<? ?A A@ab3bfbz #b$b$J 2zGz@MJ\&!(<&'$*+;'<*B!!5 c`?CopyrigT}tV(c)V]2`09VM%0]c#0os0f+2R1r0X1a+0i0n.V AUls0 #8sw2eK0e#0v0dk0@!E]$-3 7 %0bE(9 6X7G_'0UbBJ!a F-JlJ]Uhz1#1 劯Z@`Y<  8KAF4 ;RhVJ:Ç9 AS ]yY'PTGRU3U2_DQL_UEUu^jYH ]U2"_UrA Y$c( bUGD  3 h0TdYYB UFZV?@[V?FRHG?@ _BPhw?P} `f  f0 Du` ?00DDX)ubt_  .HLt %+,!iUc!c!`?CopyrigPt (c) 2\09 M c os f"!r !a i n. Al (s"e e v d AK"\#S`$T#B-]#o# &o'?c=]#p&T#4]6]6 Y2T$#]#05U2]3@qS& ^Ps5 6X87.G'4]6%!V4] F(J)e(^(I ]#HAT%D[5D0[3DDWHD: % $h4>T]]B9 #CUFO/?@/`p?FqRA?@?P6 n>u`3?u#t  noIt=WoIR#U HlAw#>2?088r@2#Aeb8 !rztb(#+#+#&y<u"?& ?"#+b%)+@'\?64?+6C? *Js1s15 g`?Coph rigTt (wc)020090M0c0o%s0f21r01ua0i0n.0U 0l0 8s2Ue0e0v@d0l1p4B-j(3 7&0ieM9 vFXj'G'2WUAŇ&!$0 F%CjOO{j'/V!3RGVYDGN_:B5k1_C_q m&lQUhhE GБ1#m!!bTc# $<f b)v^(::'Ԝ?k`c S#q%/u3;c .9~#eVquM/ufflG|aZy{ґ#q"E2o;#rA $CH bWHD: %$h4>T]]B9 #CUF3;?@/`p??@w?P6 >u` ?u#t  oIt=WoWIRIlAw#>2?088r@<#Aeb{8 !rzb(J#+#+#& yL?q#?& ?w"b%)#+b4/U%\?64?6C? *Js1s15 g`?Coph rigTt (wc)020090M0c0o%s0f21r01ua0i0n.0U 0l0 8s2Ue0e0v@d0l1p4B-3 7&0ieM9 vFXHGG'2WUAŇ&!$0 F%CjOO{HG/V!3RGVYDGN_:B5k1_C_q KElQUhhE G1#KA!効Z@x<?f# <h-nѶ# b v^(a9i`bcb%u%:6}fll\qi{ґ)qM5uf o`y\q%u"E2oe:#rA $=+H bWUGD  3 h0TdYYB qUF%@?@5,k?F ?@Q_rw?P} Lbd  0u` ^?U00_uNtK  :Z[tZJ[jIӹ._jѹԒWU;!;!`?CopyrigPt (c)r 2\09r Mj ch o%sb fp"a!rd !uap ib n.r _ Al h(Us"e eh v d #"4#S8$J,#B-5#6G# G'?O)=5#H&,#@Z45656 12,$#5#0U253@+&j ^K5 6rX77'4)56!.4] 6Je$^ P6D  5#HA,%DdK%D0GHD: # Th4> T]]9 #CUFy?@vn?F#?@u?P6 > u` ^?Mu#t  %7YIt=WaR9IR_L=*Hlw#>y!;?? ?bA@"b)Kb)&Z2\"y@#A[&/#'*+:'";*\nU$q ?/6 X46?> Jh1h15 g`?CoprigTt (c)020090M0c0os0f21r01a0i0n.0 0l0 8s2e0e0v0d0a1e4ŤB-t3 t70iePM9 kFX=GA'K2r"!0 FB3j|OO{=GyV!3RGFNDGN_:Bw5k&_8_q @ElAUhhEG1#@A!ŊTj& $L<f bfI(j! ?.۾0c _*#c ˱q3aklquM:mx<ۓ|aUyM8'hxE2o;:#rA $8+H bWHD: # Th4> T]]9 #CUF_xa*?@vn??@?]P6 hvA u{` ?5u#t  ߔ@gIt=WaR9UIRIl%w#>y%? ?bA@"b);b)b$i2\"@#[&*<%&$*+:'";*t\U$q ?/6 46?> Jh1h15 g`?CoprigTt (c)02U0090M0c0os0f21rԑ01a0i0nU.0 0l0 8Us2e0e0v0 d0a1(e4B-t3 t70ieM9 kFX=G'K2r"!0 FB3j|OO{=GyV!3RGFNDGN_:Bw5k&_8_q @ElAUhhEG1#@A!効Z@ xQ0Y; <3H#4Zb bvI(a9i@`bcbu3:+}x<lQqiM8qMuuUo/] d =xd #YuQquE2oe:#rA $8+H bWHD H# h0>Th]]9 M#JUFs`m?@|nH˲?Fdvn?@MQY?P6 v> uM{` ?5 u#Jt  o\SDt9S2X2ENFYEhI5KOV4>y<? ?AJbA@" +b )b $J2N贁NkS@MJ W& *8%"$ *+6'J"7*!!5 c`?CoprigTt (c)(02`09(0M 0c0os0f&21r0S1a&0i0n.(0 Aln0 8sr2eF0e0v0df0!E]$b-# 'A 0bPE9 6X7G'0U]BŔ!a $F(JlJ]Uhz@1#1!Z@?~ 7  >8ħ]i 6RcVJ:_3?f& .;T 1_QKTBR}U3U-_?QD_VT}UEU7&eD YZM8ʺ]a}U2_U#rA $c( bUGD  3 h0TdYYB qUFx<^?@ȵ?Fʺ?@Ot?Pn} L  0u` W?U050DuNtK Ot@ڹ *"!-U;!;!`?Copy_rigPt_(c)2\W09Mj ch osb fp"a!rd !ap ib n}. Al U h(s"e eh 5v d #"4#(S8$,#B-5#G# G'?O=5#H&,#Z45656 12,$#5#0U2&53@+&j  %cK5 6X77'R456!.4]R 6Je$^ 6D  5#HA,%DK%D0GHD: # Th4> T]]9 #CUF/KR?@}JR4?F#vnP6 >u` ?ju# t  ,It=WXBIRGm_ MwIlb>y;?? ?bA@"b.)b)&i2\"@#[&/#'*Q+:'";*\U$q ?/6 b46?> UJh1h15 g`?CoprigTt (c)020090M0c0oKs0f21r01a0i0n.0 0l0 8s2e0e0v0d0a1e4B-t3 t70@ieM9 kFX=GA/'2r"!0 F 3j|OOŕ{=GyV!3RGFNDGN_:w5k&_8_)q @ElAUhhEG1#@A!Tj& $3<fM bfI(:0i`c l$Zaq3a(z=iKquM$ufh6fҍ|aOy"?0x,bxE2o;#rA Y$2H bWHD: # Th4> T]]9 #CUF?@2L&??@@?]P6 lnAu{` ?5u# t  ]yY'It=Wȅ,d!K IRHl%mw#>y%? ?bA@"b);b)b$i2\"@#[&*<%&$*+:'";*t\U$q ?/6 46?> Jh1h15 g`?CoprigTt (c)02U0090M0c0os0f21rԑ01a0i0nU.0 0l0 8Us2e0e0v0 d0a1(e4B-t3 t70ieM9 kFX=G'K2r"!0 FB3j|OO{=GyV!3RGFNDGN_:Bw5k&_8_q @ElAUhhEG1#@A!効Z@v0Y; <B{ %#4k bvI(a9i@`bcbu3:+}76flQqi*h/qM*ufoUyQquE2oe#rA $2H bWHD H# h0>Th]]9 M#JUFʺ?@BP(T??@W0 w?P6 >JuM` ? u8# t =t9S?JNbFh?s>yr<?X ?AJ~A@+b)b$J2N贁NkS@MJ Q&*2%$*+0'J1*!!5 c`?CoprigTtV(c)V2`09VM0c.0os0f 21r0M1a 0i0n.V Alh0 8sl2e@0ej0v~0d`0!E]$-X# '0bE9 6X7G/'0UWB%!a F"J lJ]Uhz 1#1Z@~1  8[_B! 0R]VJ:9 6S ]yY'ETTh]]9 MJUF3;?@z^??@x<w?P6 >JuM` ? uJt  oEt9S֡WlENEhII>yI$<?X ?AJbA@"b )b$ )&J2zGz@M JW& /'*+6'"7*BB!!5 c`?CoprigTt (c)(0]2`09(0M 0]c0os0f&2R1r0S1a&0i0n.(0 AUln0 8sr2eF0e0v0df0@!Y$-# '  0b5(9 6X7G_'0U]BJ!a FR(JlJ,>Uh11!T0 9 F 8  2RYVJ4]1_CY?QsU3:@|>\OQ HS m`wQ52_;#rA 3$@cHD H# h0>Th]]9 M#JUFfl?@z^?F3;?@x<?P6 n>JuM{` ?5 u#Jt  KEt9S֡lENoחEhᐟI>y$<? ?AJbA@"b] )b$ )&J2z_Gz@ MJW& /'*+6'"7*T!!5 c`?CoprigTt (c)(02`09(0M 0c0oKs0f&21r0S1a&0i0n.(0 Aln0 8sr2eF0e0v0df0!E(]$-# ' 0bE9 6X7G'K0U]B!Ia F(JlJ*,>Uh1#1!Tf& 38>VM 2RYVJ:|> 3Y@P HS mۻPwQ34]1_CYQsUE2_;#rA $@c( bHD # h4>T]]9 P#CqAUFe!@b?@M?FQEV?@^?P6 L6 > #(m$uy`?Agg2Du#VtS  n4BH=t; w9_W*Ut3۶_>UF$<?Z& ?bA@b!z #"b$$"b$ 2"Z$@#&(&$:;'"*\$qy0?x?64#( Z4?V> J=#115 `?CopyrigTt (c)"@20.@9"@M@c@os@f BAr@MAa @i@n."@ 0lh@ HslBe@@e@v~@d`@+"1 44#ŤB-=#3 7Z&4%@iePM9 FXG>'K2r2Z&!u$0 VB3jO_{GZ/V!3bwWxVDnW^^Ko:B5k__q JE4"l(>Uhe Ah#A!1(Z=#F@ g0aR LoWGa"@&b$4"(qC^]?Fs(?@|0 ֿ%L|\|HD_LR4Уӟ^L-ٙ"X_a y4 pW? +?Ra@ts<ЯTh]]9 M!AUF<%?@[?FdHǩ?@W_Mw?P6 $[!>  JuM` ? ;  )u*Jt'  P&'mta{T 6Dmv޿mxb$y3>yJU]<?& ?AJbA@,"b4)b4)Sb4$J2zGzR$@MJ &5*`%J$*+^',"_*BB115 `?Cop_rigTt_(c)2`W09MH0cF0os@0fN2?1rB0{1aN0i@0n}. Al0U F8s2en0eF05v0d01PY4-,%3 %7&H0b59 FX7T]]9 MAUFvIڳ?@J?F8?@P} TP>">JuM` W?uJu u bKu `u Y-JWR]nio@&>٣~ C,ᗢeuܥ]h[o?C$ '"/'%S'-+]/' Jt  $Ӗb#"t="! Ư%'_deѬ&'YY-t#JJU2N贁Nk?<MJ6uAdbG8WbU9S;S;S6B3B115 d`?CopyrigTt (c])020090uM0c0os0If21r0Aa0i0n.0 WAl,@ 8s0BUe@e0vB@d$@14Ry36D3IP!BM2b;R?s?fzU3 7F02%je^E(9 BVXWbW_'0URšFZ!D0 bVrvZl!UhX3 1iAA! P@B#J^ewkdHD:  H h0>Th]]9 M!AUFٟx7$?@!{?FdHǩ?@W_Mw?P6 $[#>  JuM` ? ;  )u*Jt'  Y@mta{kbmv޿mxb$y3>yJU]<?& ?AJbA@,"b4)b4)Sb4$J2zGzR$@MJ &5*`%J$*+^',"_*BB115 `?Cop_rigTt_(c)2`W09MH0cF0os@0fN2?1rB0{1aN0i@0n}. Al0U F8s2en0eF05v0d01PY4-,%3 %7&H0b59 FX7T]]9 MAUF4?@R ?F8?@P} TP>$>JuM` W?uJu u bKu `u Y-JWR]ni_@"J&>kn OS?F4H⋘?"  'B"/'%S'-+]/' Jt  |3#"t="Y(ئ%'~#&' bS#JJU2N贁Nk?<MJ6AdbG8bU9JS;S;S6B3115 d`?CopyrigTt (c)020090M0c0oKs0f21r0Aa0i0n.0 Al,@ 8s0Be@e0vB@d$@14y36D3IP* M2b;R?ds?zU3 7F02%je^E9 BVXWbW'0URšF!D%0 bVvZlUhX3 h1iAA0P@#J^ewkdUHTuD" # A#A hz ,T! YJ MUFv{h?@K]`?FU UP N% # H, @ T  cO,OmJuM` /? O"6J^ Ocu#X"bs!Fۅb^uJt  7͉"tY!"^OJU2zGz?)@M#J&A@i"wb8b#9!;!;!62 %!4J#2#"6 p2.2b#9;/72l<2l?TN#=A=Ai"`?Copyrig`t (c)t@20@9t@Ml@cj@osd@frBcArf@Aar@id@n.t@ Al@ jHsBe@ej@v@d@"M#IC IG6"xh"t"Eiyn %1XGcW'0URũ6EK0 cVwZlJUdnUtLQQS) T =1T[A#A1(!`Iοͺ?@|0}# f ǿձm# Կ׌$8n:Moo` =[Weh$+HeQj?@)v&?FQ-?@iH?PS~>  F߈s|.Zߥ"lE _ e?h=X##Rȵ: Izu:t ɩ X"41(RCBS"r"5w5ae2oG[pF&ߞ֡h|}VhYr~!{/te,gEe DT?nxM殏Ea$6ЇK;@R d9:x,IyyߧUC6 -R&6t/}GyzνTB4gwqLAq@dR!5j;?@iwE?FmnX Űu{jlk8 fl?y>ĕl?_'t?quEt&XQV  :T;haai~?@^vνl쇢&UebhMHz?@^Z|b>jca>lTס/hi-Ya\1~|oW.f? 45=uTIy^. ?@}drPFuN?@zH?Q;|Uuelfay1| @pUmɯR^iqeoo oT##$g}i3 uoouBwoҕF})EL h0m&}~+̖ݿBmȇVQ9adv_UF ]"6l|]ΖmC\+~}i3 CQ!]!dΕ+ (al?@֤ |b$G4).&ܕ\w7f_Utpx'Wẏ,k/~? 5kՕHD: # h4>T]]9 M qAUF~?@%g?Fs7s^?@WҔh?P6 mL'>E  ($JuM` ?Agg2DuVbJtS t~Dzb 013v ';_>-JUC!C!5 `?CopyrigTt(wc)20 9Mr cp o%sj fx"i!rl !uax ij n._ Al p(Us"e ep v d +"<#T@$4#B=#uP!7?56 ?Ab`4z@9Al0b{3j8]b8a0$o3-=#O# O'564%酙t=#2mq @?2@ M3#JF?=EQ6<@B: ?6iie59 6XG2'0UR56!P40R FJlJD4Uh8ZQZQ ]   %a!@A1(A/.F?@":W0LRb O_LP)$J^2_o ꗦ`T8a.eEUZ+mQ?@_Vl}l?9+h5Uu?@w Vlm1lrU|pi5Ui焞?@Gd{y}.xbli\V)+hUrw?@wVleHl~s!2+hUpp%Vl߂'}|U'r,.?@C[>?Fi(w?@[ P?PU>b ԿftVlIֶ6l{)eRX0~eGdQR@_:M I~> zg@&? ɿI#?!$?Ra@B r552aQ:iт0;Kq𾙵QP!µ""]JT豸*e2 Z"s 7tG@-(F7# m#ʴ :+OB I eEJnOgXݻ 5 # ' . Q~ȝ +L葹 pH KH!fz'͞}K?hߔ h K B?(ݵ ` s8 G@HD TJ$, Rе (ӵ )ֵ " ? P/ p%UFDfP h,TPYYCUFY,b'@F"H$ @Fx siz "]bckru"im.bY,b"H$@@5pm;μ@@}_3 D HD  # =hj8>T! ]]9 #UFY,b@F"H$@' P6 eA [u`l?  u#(΍tS&Aw@ctTl$bsTJ20-U?FW]ebqRG # ?sakunB`BZ ckgrou_ndCy ly rzubuAub#z)u=~ " #L#9"#MBh\"C? j0>Uhh5`7A#!Jn00.lPX2 3VM(Q_&1_QU3n o2ogUEe0&oo@_oUb5_KrA -sCgSXhe_'r!TH!!M-t "J'sTl!Mq %F{,@wj1%5bPE9 M{k7l!3k'QPsBp#!J$G=1ƀHD  # =hj0>T h]]?5AUF\,b@FW5?'P6 .L]A]  u` ?Eiu#4t1  tuKˁ=JU^;:Fx& sa@`B`BE ckgroundCd ld rz}J b J AJ b#z)ۀJ bA!"b#"bx##釉2q ?/ 6F\.W?5 8?:@7oW/i/.{!'G!1 03] \NB20UB4&'$$%117;`?s1pyh0if0ht (b0)@2`09@M{@cJh2sj0fBs1ru@s!a@ij0n..@ Ap l@zGUsBe@eh0v@Qd@0l> ^Uh[A"A]@MjA#1!J4/%CrA 0"S C`Q%S1Y9**0=*Qt&2t31:?F@F̬%?PKM! [t?[WY[ZnaU0fJ$U~tr<S! YM# ? 3&M@T@0tr$5!:+oog4! `Q^__1js+TN!p_^Wo[r5V rvM,(b  jbE9 M{7! 3a򪆢P3!5$;ۏ7愕HD:  # ;h0>Th]]#TAqAUFv\.%@F4O"Ƈ@F.r?F"H$ @P6 L6>  #. .u` ?)c,c8u#RtO  ߢ.t|} [J@}@@@FV&  ;`BackgroundC l rz@b ݶ bOA!|"/Ԕ/!K)!?#2!3z29b13{z&b@F3:3BU27qm0?l?~6F+?S ? :@7//!'#Qf31 ("C$ $lSF-2f30UB5DV&$$f3"AP"A*G;#?1py0i0hUt(0)2`W09M@c2%s0fB1r@!ua@i0n. A lGsHRePe0vZPd

 4 >UhzQ9 #AA#ZA!J`f3FI' BHN MozӋ[Hİ] 2b\B qD `2biVl+qېeNI e\0q:I lӱ`gB_@ 81!@N~P@CBfxwr|5Q5Vabe9iEovhwD_CrA) @"dlSaAiW.Fsb?FyOa`?P p ? 'l)݆9t$1d$G|,6J]w : ~gBt*<wxUGD" # h <^T$(YY#IUFY,b@F"H$+@' P} B &( u` ?U U(( Fu#PtSNA@tTLb!d ^% j#"MG`Make Bh cj groundQ` E;vl nt{!pb~- J%9-H%W#??$ZB##0U2#sF =$&#M4"6"6 ""\#2qƢ0??6#F\.?QE?@)#A!'`?C"yz ix h (t )n 20W@9n MC@cz"s| fIB:Ar vAa i| n.n Al@ AHsJBei@ez !d@ 1`VC@s_u0RXY@cPm! 06JW@2@3!&H/<e#ha!#3 H%Y #H Z%|T[?%|TWgda_C +T#!!"H!#8d3 (cQA6@0EHa?%Tk,@doEd 3F3TA`f;nd 3` D| N| tsB!aC@nEG!#^E %b{Gd?"6!3lr'0tv$@b#"6=s_H8> r =T"?KF& #9 RTB H ]^aд  @+x La7TPHa$ c(G,}UFD  h(^TYYBBUF\.ߗ?x<F BP(?hP?X` ]B66]  TTTTTdH?ܸ? Q?B@L&d2?-(,1(.sUW!U&(w/x  0KB` Serv",n two k p"i h"al d v0c@ 1^| (SG|& b?,>?TTwpp pqqppqwqpqwqwq+p pppwwwznw6;5wqpwwwhghw>Drag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aabjZֿ~??+ ؿ)j??E(i\.r3r\.CUG DF P# h @T(PYY#E3UF\.?@jZ?F~߻?P} ΍L .B":J :^:rY:f 7 7ָAu` ?Uč"U66JJU^^rr)u#",'tU"J%q4??4bp0{[`: #|2&6#*'Q79" z^L1$" 7'@>>ÿ@q@@5EӅ??D5F0Zr&rBxC2u0`-1Buu&@ CAB@C$9u`u `m"[ b!wu`)3kQQ1Q71`Vis_PRXY%cPm!#5jP4P2B`?CopWyrPgPtf0u(P)f020PU9f0MPcPoP'ofRQrPQUaPiPn% f0WAl` XsbUePePv/`d%SRQ1#d:4%!*@8=3R6#@d\6\6 X2$B#30Ub\3]zg,7^-q>@VpcT<`of0m`sP4a>mmdasIJ'BT1/t"0t.2QQ3QQB3 tj1j1"5hbI6% 72EC?|8LPZX116Q;sa>arExAsF@>>ý__0Ru'@`*Xr>a cc^`Roo H?䣬!e'2$r d bpf`bffb bpf"}Be%Rbk ``.e;Rkbrđf@B #[_z}R=3đđBޅrr++r,$t -tH;:@0a(IafcX(Pq`uK`AP!eqPrqbBq b%F@rBq8%5=3_tD&&|rf"e#F3s͵NSYr'X$G,@R!B衅W_i_.] Q QBHʀ=34I'F}@` %_&͒#J0 Q`wNElWODpKDH0PِRTߐRlIِSqIQiOO|1<3;K'0U?}10~U3Uee8sTeq rqqq13@H36EBM$BM4BeMLBMB3M̅BM-uBG2HD: # h0>Th]]9 MP /AU@jZ?F͂T??FSFظ?P6 .]A]   JuM` W? EKu4bJt1 ytuo[=Jb(A =>JU2zGzt?@dM#߀A@bM;#z1 /#\I(bW)d+)d&J["*(w"?& ?AO$Tf/%B115 `?CopyrigTt(c)2`09MC0c.A0os;0fI2:1r=0v1aI0i;0n. Al0 A8s2ei0ejA0v0d0 1Y4-X 3  7&C0b59 FX7}'0UB)Ź&!$aI 7FKJlJ]Uhz211O! !u6?Fh,\.>*0II=*t >J:@T&ȑ/ [WpY\QEUzU . X[:;QRuSU5UF,®\oZOnlQ 8MP@u?FR >Nk"\T`GbmMlQi_f0%=mUt.m {=4+ ߥP> D"? 5-g?T0tp@bTh]]9 MP qAU@;?F5K?@xEL?6?F6?Pn6 L>M  P$  #uM` ?=`cc.@uRJtO  bm&QȽtA@Lؽl]WI@[>JU2zGzt?+PS@M/#J?&A@bbbPzs q#b](b)+&J[9#,ɺ ("a?& ?AR$ /%B9#V1V15 `?CopyrigTt (c)02`090M0c0os}0f2|1r01a0i}0n.0 Al0 8s2e0e0v0d0'"O1YS40#-9#b3 b7&0%0AbE9 YFX+G'0UB&!4a yFJlJ]Uhzt1h.A!-(:9#t.%-+0JN H߃W%$Jq-&?F mO" >Nk'"\RSWNh[H@_[4I 뇥P> 'CK=o? nO-?N]`@ b<couor5%BUV 6?woZA^ǿXEU@ T6?F __ jv6dDlVߦyZgPRkro}oiBdalN!\z3>6>CRHS X?BnDeTGvN7VHD: # h0>Th]]9 MP JU@jpiH?F[^?@$?F]Fڻ?P6 >JuM` ?j uJt  (a&aEt9S;-FEN=ۯ=Eh?u;>2zGzt?@M|JA@a7b#z}b(b!).+.&J[-m(?& I?A$0/Q%B!!5 c`?CopyrigTt (c)02`090M 0c 0oKs0f21r0@1a0i0n.0 Al[0 8s_2e30e 0vq0dS0!(Y$-# '& 0b59 6uX7_'0UJBŃ&J!$a FJlJ]Uhz!1!劵:F% Y.  8?zY^J4 ]9$]$R9S/RJUE UH$S!\1\? GX5ZU_YQJU __-_?\HD H# Uh4>T#A]]9 M /AU@jZ?FL|+??F@{~?P6 m. >b  JuM` ?+ILKu8J1t5 }ty_7??J]bA>tJU2]U"?=@MJ&A@3(WbA)N+N&JJ[ "#?& ?A9/Z) !!5 `?CopyrigTt(c])20A09uM-0c+0os%0If32$1r'0`1ai%0n. WAl{0 +8s2UeS0e+0v0ds0!E$5 򤲝-? 3  7&6iieE9 6X7 "'0#Ŵ&!$0 TIF]JlJ8>U#9AA `1!:Nk"\T`ObmM\"f4N[7 zex-K=FAa տ[jr D"? WZvD?4xa@RB#Th]]9 M IAU@FK?F\gVb?FY%?F_wᳬ?PJwW?>$[ >  JuM` ? ;  )u*Jt'  ^Zmta{֙3.JvdE @x?"_r?v{4܂ >pJU43f<!.&P~?b3bbfz@bAe&bq$Jd 2zGzt&.#@M#T"I&r(~&i$q)Q+}'i"~*B#81815 `?Co yrigTt (c)o02`09o0Mg0ce0os_0fm2^1r 1am0i_0n.o0 Al0 e8s2e0ee0v0d011Y54#-#D3 D7.&%g0Ab59 ;FX G[G'0URB.&!I$a [FoJl&}>UhE3MV1Ai!(# jV? & `& T` V_RUHPD  # #>h0TpHeeJ EU@u6?F5c{g&?@{r`5B?FF:Iͷ?mj>  M   *  (Y JuM` ? Y ":N`u#xJtu IoI%t"' % 'ii%$'`OkŁJU2"?@Ms#J&A@"b(bU)++&RJp}#>1#19 ?#bbbz| &/5> }#11"`?Co0yrig\t (c)02h090M0c0o%s0f21r0Aua0i0n.0_ Al!@ 8Us%Be0e0v7@ d@k"1Ue4t#B-}#3 746t%0 jU FXyGG'0UR46!O4i FJlJ$jUp5 3 h19 1!q(q4}#&J,t R j# 8bD?@@)?FvP؞?PEkU O|\QnS .܁nts}ped`,of :o ,M ? &d2? bȩ?tP@RBBoogr"55ZQUf_x____bY@ßAc_\jF?4ևi$on&h{c8oJo\opoo T)Y oaoooo o 6$|U7I[mS Uy{䷰7h7}'g"(I%ZvShX"cwӏiďa$xUGD  3 h0TdYYB U@%)?Fxg^?@ ߯H?Fw_7Uw?P}   f  f0 D fX lu` ?00DDXXll)ut  871%t%!?"Ư)1%:'ֿTeΦ1%T'ʤU!!O"`?CopyrigPt (c) 2\09 M c oKs f"!r 1a i n. Al00 (s42e0e vF0d(0"#S$#B-#l# '?R=#ǒ 2$Z##0U'B3@& ^5 DFX7dG'R&Dŭ6!4] dFxJeYk} #HFQ%RT][b5RT0][3RTD][5RTX][RTl]WHD:  H h4>T]]9 MAU@ ߯H?Fԋz)e??F9q?P6  >IM (#<Pd`<#P#dJuM` ? #2FZnubJt E-tA!["XѮJV&bN$p'N]I֤>J)U5 J[-# ?6 ??" A@.2Sb64B#2zGzt3@M#Jc678C6.? ;B72C: #115 k"`?CopyrigTt^ (c])^ 20@@9^ uM,@c*@os$@If2B#Ar&@_Aa2@i$@n.^ WAlz@ *Hs~BUeR@e*@v@dr@"14ʺ#-/ C  G6&iieP59 &XG W'0UiRŴ6!#40 $ V4ZlJ]Uhz@A!1(`C@U&pz?FDUy{?,d@#b`sb`"J-d K-q?F@F?F F0 ?Nk"?GiE*]CpdadC0[dhZe@#eGDQ> @" i$a3n&Y+`~rrood]io;e s"yr1C82K?Fѻ4G{?F-qx>tFjR^{|ZlYZe tmP|{Mޥa 0 1iS? q1+?wa@rc(<;"̏A!rFÀ5H5aE=*[^N?F%P?@"P&@ c?F{MTh]]9 M]AU@}%?F[$,?@+#V?Fd_3֡w?P6 B>M @ $ JuM` ^?3YY.KuHJtE  L<ܩt.'_3zMҩ,wsQ>JU2N贁N[?@M#J+&Aw@b](]i+bk)+)&Jp%#4"?>"<5!?& ?M#bbbz$ Rp&"/%B%#L1L15 `?Co yrigTt (c)02`090M{0cy0oss0f2r1r 1a0is0n.0 Al0 y8s2e0ey0v0d0"E1YI4#b-%#X3 X7A&%{0bP59 OFX!GoG'0UBŔ&!$a oFJlJ(>UhoI j1h$Ac!(`%#@'$F?>D{Q>L!gfQQ R "Jg V?Fo-R?@bHQ??FT!R?P& ߤlH\f6V\P5_E+UDv;*UmʙHQ:? w8s`*%$? .l?Q? ?\?D4_!R oogr5%Q3p_S@hIL?F~Kz?P)Oy޾ F @c"rA b$^sPj+u`dl(ET+QdAf u8<$HD:  H h4>T]]9 MIAU@ ܋?FOa>?@q`5B?F1*ݷ?P6 m8> (JuM` ?#SS2)uBJt?  \Eto֙>_B|KR>JU5 Jp'>͙#<?Z& ?bbbz@b#;A&b$B 2N/N[Z$@MI #"&(&D$ :;'"*#d1d15 `?Co; yrigTt (c)02U0090M0c0os0f21r; 1a0i0n}.0 Al0U 8s2e0e05v0d0"]1a4 #-,/p3 p7Z&'&iieU59 '&X9GG'K0UBZ&!u$K0 FJlJAUhhG1!- (T9C&J> RbT$R}R( "J:]Uy{䷧_8S s_@ o4%BT@.Tw?F:^֝ä >Nk"?YUU!f>)?\(K8ӷjmKl? a\$QU5Ui,SlQ%iu~!8hE_= T?F;uQuo`"rA 4sjQ޽lğ=onHD:  H h4>T]]9 MIAU@ ܋?F<j?@q`5B?F^ݷ?P6 m8>M (JuM` ?#SS2)uBJt?  \Et[Πؙ>_B?&}>J)>JU5 J#2N迴Nk?S@M #JC&AP bu(b)J++&B1[- #L#?&| ?$H*'#O1O15 `?CopyrigTt (c)020090M~0c|0osv0f2u1rx01a0iv0n.0 Al0 |8s2e0e|0v0d0"H1L4 #-/[3 %[7&'&iie@59 '&X|$GrG'0UBi&!40 rFJlJAUhh7m1!{! (Z$CR&FUy{?X> 81cKR RV "J{T@ ![?F=$. >Nk_"?YPSW>OcK8RKl? ף_p= $B:]'i,S\6aYss9$Q@5UV+6o'lQ:ifOdD`i[Dž}soąo82{_U{"rA z$s"HD:  H h4>T]]9 M!AU@ ܋?F@_v?@q`5B?F1*ݷ?P6 m$> JuM` ??Su.Jt+  \Epteap'Eqz>Bq|7>5 Jp>G͙;?2& ?bbbz@bAi&s&Bh 2zGztM?+"@MrX"&v(bu)+s/8*T<1<15 `?Co yrigTt (c)s02009s0Mk0ci0oKsc0fq2b1r 1aq0ic0n.s0 Al0 i8s2e0ei0v0d051P94-H3 H72&iie-59 XG_G'0UB2&M$0 _FsJlJ( >Uh_I `Z1m!afR* zRQd J:`]Uy{w_$S s@ +o4B`T@.Tw?F:^֝ä >Nk?"?zYQYV*)\§(7$d?ӷjm7lb+d ha\HD:  H h8>T ]]9 M!AU@ ܋?F*?@q`5Bǯ?F1?P6 $6>  JuzM`l? C"u2Jt/  \Etti|u~>Bu뒣;>RJU5 Jp>͙#<?6& ?bbbz@b#Am&by$Bl 2zGzt6#I@M\"&Rz(&q$y)+'q"*h,#:3o1o15 `?Co yrigTtk(c)k2009kM0c0os0f21r 1a0i0n.k Al0 8s2e0e0v@d0h1l4e-:?{3 {7I6&&i bP159 &XDGG'0UBX6&Q$0 FRJlJ(>UhI 1lq!a4DC9Nk"?CYQYf.Q;(hğ=;Af/h (\UHLuD" # ;3h( TEJ kU@jZ?F@{W~?P VN- I A `*%#.>>uA` ?%i i4iHu#XpTb>tU b7>t  a>U2zGz]?@9 %#>5&A@g(bu)+&X" !f$>F/#"&#="& "m"bu);r'X"i,X"/N/#11-#`?CopyrwigXt dwc)020090M0c0o%s0f21r01ua0i0n.0_ Al0 8UsBe0e0v@d0"i f &%!X/#]'0UB&Z5%0 VJl>8fUlY(C '(#vAm!#(:/#_Cgwu?F( mO"\>sl?/h%mq.%-+?@lփ?F^Uw>o|m7yQySf|wA=$*<~a3d@9SӀaۏ펃y'e0a#FX_`H> V+s LyC{:,YFH1r#δ u2&OB C 3~dд 4@+W QsGCflf>ߣBHF(I_M8;P?PzTW?\`Xc$(hg.]jAhn?mtUFD  h(^TYYBBUF\.ߗ?x<F BP(?hP?X` ]!B66U 66 66%66ȅH??f]B@L&d2?-(1(.sUW!U&w/ҍ~  0QB`#Mainfr me, etwo k p rr pP1al d v c %1^| (SUG|& p??(:L ?qpwqqq wq wwpwq  qqwwzEwwtqwqw~wzqwqwp~*?Drag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aabL&d2ٿ\.??{ڿaAv??"jr3r\.CUG DF P# h>@/T(6D # #UF\.?@L&d2W?@w?P} <.4! D:J D:^:r,: A7f77f7 7!7&"l70&u`?( "66JJ^^rrTU/&0&0&D"u#N) ^2<7qU ?4b@{[`:#B'FT3i"'RQ92 z1L>ÿ@q@E?BDF,@rRSBu@`҈-g d(ag;_3@JAJA2hhXB)3*ÄR+Є.bq q2&&:r816a,s2+66u\L %8WQA$A[(BBSP@RXESTO$@,r23rUrD.e53_4&F3s͵N?SYFer=@:u]Qv,@F=a`up]XE628ABTOfD"J-$RRO(R[)VO`Rpasd`.e Tpx``B2+ 0Ls'_"x#0!UJ"b_ 簋 B)U2brJC\Rr˨83vvF_<U"D"=m2Q:2Q]q2XBƅ3/nR0{.b[a[a22:raa  A AE,,f7Ԣ18Q`#A#AQ; ^rprqqMMr1"8J6=a~Ak ]\SP@` SPa`e`lBsa_` E0ud`px`e`JXEas` T``U\cam`uF3dr7` SbM`i`fbUD7SLgn*f`c`ub/.eQXJAPbd. Nm@Je@=O! P`rx7x.[b`m DraeNiu9KoAe1S`u^8 Sri`a /J T//A/^`L`ch@{/Ҡ///Bl pQ/ @?#?<R`#Q?W??*oNwbkl"b`KҸH?[Ij`ad ps*OT]]9 M JU@z^?@]z?@ZVjźP6 ܠAJuM` ?juJt  3\It=W(\I*RIl#>2zGz?@M|JA@e7b #zb(b%)2+2&J[-m(?& I?A$4/U%B!!5 g`?CopyrigTt (c)020%090M0c0oKs 0f21r 0D1a0i 0n.0 Al_0 8sc2e70e0vu0dW0!$-X# '&?6iie59 6X7/'0UvBŇ&-!$0 -FAJlJAn h71Z1!TlL2 $<[V  ORvVJ:%'d2ɩ PY]PeS YY˱QEaZ_`YQU5U=Vr\. l\QY?))bUb526_;"rA #cHD: # h4>T]]9 M JU@d2L&?@P( ??@>?P6 e]A#uM` W?SuJt  RQ͸It=W\_(\IRIlƒ_',#>[,ɺ (? ?Ab A@"Sb$J2zGz?+P@MJ=&#fbbbPz (bE)&,"*UB!!5 g`?CopyrigTt (c)020%090M0c.0os 0f21r 0D1a0i 0n.0 Al_0 8sc2e70ej0vu0dW0@!$b-# 'Y?6iie59 6X7'0UvBŴ!0 D-FAJlJAh71h1!Z@bgX,  <)gV#\ M OR|VJ a9PY]PPReS[RUE:]r\.M\Q`YO Q5U=VN_YQĖU526_HU"rA #cHD: # h4>T]]9 M JU@z^?@<0 ?@bX,?@_~w?P6 >JuM` ?uJt  ףp= It=Wk t@IR)\_(IlK&D#>[-m(? ?AbA@"b$J2zGz?@M»J=&#fb{#z (bE)&,"*UB!!5 g`?CopyrigTt (c)020%090M0c.0os 0f21r 0D1a0i 0n.0 Al_0 8sc2e70ej0vu0dW0@!$b-# 'Y?6iie59 6X7'0UvBŴ!0 D-FAJlJAh71h1!TL&1 $<[V  ORvVJ:?`0 PY]PeS a+QEaZ_`YQU5U~=Vr\.m\QY%NX526_;"]rA #cHD: # h4>T]]9 M JU@RT*J?@r\.?@zP6  >#uM` ?juJt  ףp= It=W\(\IRQIl#>[,ɺ (a? ?Ab Aw@"b$J2zGz?+P@M»J=&#fbbbPz (b)&,"*B !!5 g`?CopyrigTt (wc)020%090M0c0o%s 0f21r 0D1ua0i 0n.0_ Al_0 8Usc2e70e0vu0 dW0!H$-,# 'K?6i@ie59 6X7'0UvB!0 -FAJlJAh711-!Z@3F  <F9Kt#  OR|VJa9PY]PPReS[RUE:]M\Q`YLQ5U=V N_YQU526_HUv"rA # cHD: # h4>T]]9 M JU@L&d2?@|??@t:?P6  >JuM` W?SuJt At=Wi_6#J]RbJlGX%#R>[*(? ?AbA;@"b $J2zGz?@dM#7& #fbu#z$ ( (&,"*BB!!5 g`?CopyrigT}tZ(c)ZW2009ZM 0]c 0os0f2R1r0>1a0i0n.Z AUlY0 8s]2e10e 0vo0dQ0!$ę-# '?6iie59 6X7}'0UpBi!0 'F;JlJF!( ]A!1-!Z@ B <yO#,4#BQ YR VJF!L&?@bX,_S RQ#jYiFQEU,b?@%\\(\\aX5U@?@ՔJR\p=o ף\kQX5Ufl6?@3oF\H8!\4rOiX:=?F&[f3r|UnTeRU ugZY8oJi QyZV'j[3rJa=yUU2@_RU"rA # HD: H ih(>T9 M3AU@L&d2?@\.?JP6 t >%M  &:"S:JuM` ?S0DVhurlnb#4"Jto ob'#t3&>JU#g"X#a?~& ?AJbAW@"+7 #J!%(,Ja#2zGz~"@MW#"6/%b)_;_6" /*Ba#115 2`?CopyrwigTt `wc)020090M0c0o%s0f21r0Aua0i0n.0_ Al/@ 8Us3Be@e0vE@d'@O"ib =X%`!Xa#Y'0UB~&%0 JlJ UhMQQ A75A!U(!1L&?@bX,Ơ h # RQ{h# >_,S{J,b?@xz^?@1o=?@h?PQ ̿ A!Y\(\\tگ@ UnĿvUohú{:i dk6!d P Ln4!lBoogr5%BUfl6ˣ_nH1_Xq~?4F6H/ ݴpX =?!6@,9?@HW8?P`ڒ੿ ) !oqf%$$UjGil!j( gtoomddvg0|RQPbرɠ )8!Oy;DcwVQ]z,Nz(6abxZQ~FZVjp[3’L%q^QFvc~b-Tt$bxbQ蟯 ' OBNz)6bXfUU^@ss9 ?@u?P1r _RUj2ilpfg.ɏmbd,>gxHD: # h0>Th]]9 MP IAU@Dxb?@F+?@`Wڔ?@u5F&?Pps-8R?>$> n JuM{` ?e ;  Su*Jt'  ʼnhmta{|_3.Jv9?\̧q?v-F$>JU2N'N[?@M#J&A@bI(bW)U+RU+U&J[# (<!J m?%P?AR^$(u/%B##1#15 `?CopyrigTt c)Z02`09Z0MR0cP0osJ0fX2I1rL01aX0iJ0n.Z0 l0 P8s2ex0ejP0v0d01Y 4#-X#/3 /7#(R0b59 &FX7FG_'2WUAFJ!$a FFD$&#l,&}>UhEMA11-O!(#H UV & `&d T` V_RHD: # h4>T]]9 M JU@^z?@ `?@<?@>_w?P6 >#uM` ?uJt  QIt=WwIRGzIlƒO_,#>*5 g`?CopyrigTt (c) 2U0 9 Mcosf"r-!a in}. AlH U sL"e e5v^ d@ PB[,ɺ ("a?& ?Ab Aw@"b$- &2?+P@MJ\6#fbbbPz (bE)&,"*%?@6iie 59 @6X7'K0UvBŽ&!$K0 -FAJlJ A>Uh1MDH]A U H!1|4#hLjA*lX!効:@MJR Y <RyJk1LbX,?@`0  S qq#Y`?[G=`a]~mΓAdžeЕQQ0F0ZVCXQ`@iqm2.uQQ=0r"H$YZ~X#Q`kwU{qm)F&uQ'QaZS0W+Q6`V BPXUmt~QR٘6p?@B |"Y(aaX$_کȑYr%e"U1/AoJ\` V"X;Q}rܢZ;o6hׯA\a ?,H%5eQCQ.|JZ'Ja6h1Aupm +p;eQ3@ Z,6hOQ'AE;Y}R8sRYh~Df7gWQAhVǫjfjchiL&E7gjE3ɏd2L14~.yl߶7ggQA?p8;M7 AİeXkQ9QUoQA4F G`XsUWiZñeHD: # h4>T]]9 M JU@JRT*?@+@ ?@ `0?@ ?P6 >n#uM` ?uJt  zGIt=W贁NIRQjIl{^z#R>[,ɺ (? ?Ab A;@"b$UJ=!=!5 g`?CopyrigTt (c)t 20 9t Ml c.j osd fr"c!rf !ar id n.t Al j(s"e ejj v d  6!E:$-I# I'L2]z?+OP@MJ\6#fbbbPz\ (b)&T,"*?@6iie 59 @6X7'0UvBŴ!0 D-FAJlJAhK7[!h1!Z@߆gp8  <JmQ#  OR|VJa9PY]PPReS[RUE:]6BGP(M\Q`YmRbU 5U=VN_YQUM526_HU"]rA #cHD: # h4>T]]9 M JU@jZV?@@?@,b?@&_d2?P(-DTw! @>>JuM` ?uJt  QIst=WR\(\I-lU#>[-m(w?ZP?AbA@"b$J2zG/z?HJ=&#fb{#z (b)&,"*B!!5 g`?CopyrigTt (c)0W20%090M0]c0os 0f2R1r 0D1a0i 0n.0 AUl_0 8sc2e70e0vu0dW0!$ę-# '?6iie59 6X7='0Z!0 -FRAJlJ(>Uh-I 1l!`a9 $< J:@t: HYdQ]S lQE-UV_XYTQHD: # h0>Th]]9 MP 5AU@D 1!?@&?@`Wڔ?@ 6F&?Pps-8R?>$ > n JuMy`?e ;  Su*Jt'  :mta{$_#pYmvK@{3.Jv׊ߖ.?k-I?>JU2N贁N[?@MJ&A@b5(bUC)A+A+A&J[? (<!6 ?%MP?AJ$(a/%B115 `?CopyrigTt] c)F02`W09F0M>0c<0os60fD251r80q1aD0i60nU.F0 l0 <8Us2ed0e<0v0 d01Y 4-3 7 #>0b59 FX72G'2KWU|A F!$a 2F#l(&}>UhE M-11;! AVI & `!&P }T` V_RHD: # h4>T]]9 M JU@&d2?@<0 ?@|>?@_~w?P6 !>#uM` ?uJt  )\(It=Wk t@IRף_p= ׳IlK&D#>[, (? ?Ab A@"b$J2zGz?+P)@MJ=&#fbbbPz (b)&,"*B!!5 g`?CopyrigTt (c)0W20%090M0]c0os 0f2R1r 0D1a0i 0n.0 AUl_0 8sc2e70e0vu0dW0!$ę-# '?6iie59 6X7}'0UvBa!0I -FAJlJ]Uhz11!Z@`0 f <:a+ѐ#B SRԀVJ:BP(?L&YS RJ)#hT_RUEtL!ZrMP  _QdYP^CyQ5Ul6aTYa\8{?h5a=ZR_YyaĚU2:_LU"rA #sHD H# Uh4>T#A]]9 M AU@L&d2?@\.?tP6 j">  ( <$U<mJuM` /?U2FXjutJtq t ,J&b2$H &C">[JU7w$?& ?A5"bA@R"&Jtm#2U"?s"@Mc#J&(IC (/58*m#p1p15 "`?Copy_rigTt (c) 2U009 M0c0os0f21rԙ01a i0n}. Al0U 8s2e0e05v@d0["i1Em4d#(m#5 -EO|3K |7&WFi@ieE9 WFXmGs"'K0#Ŋ&!$K0 FJlJ U#%]VQVQ ]9 1HA!a(Zm#]/z JpC"j(\g}QQ R"fd"J:TZV՛jjS 3sbd dW&@aa5Le@%c~\ja}_,‘up2u?pf}Lb .lukut PF Lpa @cBr5%3q?u,b?@xz^?@oo=?@?PqQ ̿ us&r\ϑ|t@ ħ|v˽|oohwà0B  "K2[@a!fl6NwekH?zGёtm !+s KwYZHCEl#Fsy9 uwOB Ȇ -v~d,Ѵ o@+XW oLsG_qofH $@ ؇dxzRP+=Oa7?;//%/7/ȍ9WՁo8?,k"|ShAl%UFD  h ^TYY>UFD"H$'@F @Fx,/T6D # 9UFD"H$@]F@&u@P} jihf,l>u` ?V,@y^u#hQtSfttRt'A@y3dbr(+#tTB/(u/!/ <"/S.pd#@i#5J~?/"._`Make Bx0cz0groundT#X3Ҵ14;1`VIS_PRXYn0CHM!_#60080"`?C0py0i0ht~0(0)~02009~0M@cJ2s0fB Ar@GAa@i0nn0 ~0Alb@ HsfBe:@e0v|0d$n2"e (^C5@ #5 X3hHA%DK5D,K3D@Gg$aq_DaS T@H11"T2-T3[T ZTET@(APa%1 C1o1Do1y.bg B2Q5SiC@nU3bk,qoUcj?bhKrQi? ^ebo #!} baRe#d,UEohbcD&'C1(cQ(QR=S1fZi#3 D0N0UtDBn@a@nEEg_09YBaPPo1o1"(S11iee52>bXc1`I!]&` H@d|2&F0q}A0q` SPowُbb+e"vM- ~-!bb bL~f]Dfah 7Qbdҏ䅕HD: # ;h4>T]]9 # ,AUFD"H$@FZVj@&@@P -u `u bu  _@"f)l A)0t#` bFNt?p [eܠAuv` ?5urJϞ>Xq& $##./@%W(l"r/ tvel 46<R?$&(Q/$BU2q$0?#?56?\.?Ef`?F 7`BackgroundC05l0rz)z5=t3I1 3&?h<:JA#3+0UQB3_ 3117;l`?1py0i0ht (0)@20@9@M@c2s0fB1r@1a@i0n.@ KA0l@Gs RUe@e0vPd@0l>#$!Uh#3 A A\TYJ*3BU_1HD: ##=h0>Th]]9 3 UF>T/?FD"H$@Fn- @FN?t?P>u` o? u3`>$t  `"?A@>D$_~Ut W"p [VJ5 .Lc0U?AGG}YL?b` LineColA r&zY!"'&ɆX#mddd#nFFF"?&?#!"'&&` ]STadA w?/#/D+$1# F9 lC '2I&aWY*1` Ac= nt/#Ybdy3zg9*#!$)$|I!8<e Q3#8$f$3$FP3(B#GB117;1#?!pyG i}gTt (u)@2`09@uM9 cG osA IfB!r@F!aV0iA n.@ UA2 HsBe@eG v= d@0 l>]UhzЁA3!!`J !V)XU__Y3^_oXgU5^Bo_foU@__oojEb59 Mb{7/v!3rav44K7 %iPCH6Hg7w4'~vv !"608e @Q:(F|@v+?=!$Yz,Z#b~~-T{ HD: ##=h0>Th]]9 3 #UFH$$@FFJx-C-?F BP(ԭ??Pn>u` ?6u3`b>"6(t  2U0*?A@BHV-kYt ["p: [ZՄJU5 CLc0U"?AG}]LC` Line_ColI rz])"/&Cmddd#nFFF"?0&?#)$1$)"/&&` STadI wG/#/L+$9# %FA lK 72Q&a]A1` AcE nt?#]bd3zՃ~92#!c'  3#e8((3F7BGk+B$JA3117;9#?1pyO igTtW ()@2`W09@MA cO osI fB1rԗ@N!am0iI n].@ A22 HUsBe@eO vE d@0l>]U@hzA4K ?BEOJ !9"XU__Y3^o(o{gU5^eo_oU_oo$3ojEb5(9 M{7/6v!3ra4v54ve}%i6FWig74 '$~vx 1)"&8ea:@e@ @("4Q:/=@3 9)']zE,Z#(T(-ӁTjQc@0@HD ##=h4>TB]]9 3UF.L@FD"H$@F+@FNt?P>u` o? u3`>"(t L F%u?A@BHڬ\mY(t["p[ZJ5 .LT0U"?A?G}FCb` LineColE rzR˵#nwFFFw#?x&?$#u+&&` STadE wC/#/H+$5# F= lDG '2M&%,`h9!!Btn! 3#.> (3672M%11Ԓ7;5#?!pyK igTt (c)'@W203@9'@M= ]cK osE f%BR!r@J!a%@iE Un0 '@A2 HUsqBeE@eK vA Id2l>0>UhhCA3%!bJ@&)C6XU!_A_SY3g^__WWU@5^_3__WU@E_y_9o_bT= tG e j5ie@5(9 M{x7/69v!3LrA,Tv5!$;7laiooXx7w'2#x~ov]x vw_H<> Eל ߪJAC BFȓw#C 74B >lѴ k]U@ekmo+_ o]BaGy]#PH/*<N`rXfUFD  h ^TYYHUFD"H$'@F @FxT]]9 #Q ,AUFD"H$@F BߡP(?&@@P-DT! -u `u bu  @")lt A)0t#` bԚp [WenAu` ?urJ &@Fi#$!Uh#3 A Q3 "$BA 3ŊJ*3&"B%e>o1UGDF P# h>,/T6D # 9UFD"H$@]F@&u@P} jih,D >u`} ?VU,@y^u#hQtSft{tRt'A@3<db(+#tTDB/(u/!/<"/S.d#@4#5~%?/"._`Make Bx0cz0gro_und*#X314;1`VIS_PRXYn0CHM!#60082݉"`?C0puy0i0ht~0(0)~0200U9~0M@c2s0IfB Ar@GAa@i0nn0 ~0AUlb@ HsfBe:@e0v|0dn2"e (^C5 (#5 X3hHA%DK5D,K3DGg$aq_aS T11"IT2-T3[T ZTETɴ(Ta%1 C18o1Hy.bgBE 2Q5Si!@nU3lk,{oUZmj?bhuKrQi? ^eb #! >baeo1,UEohlc&'C1(cQPQR=S1fi#3 D0N0tDBn@a@nEEg_09YBaPo1o1"(S11see52>Xc1`I!&` H@d|2&F0}A0q` SPo]wbb+e"vU`6ȅ- ~-!b)bbVf]Dfah 7Qld܏HD: ##=h 0>T@h  9 T3UF}ð?FD"H$@FYjB @F l?uP>u` ? u3`>$t  u?A@>D9ȯvUQt W"up [VJJ5 Lc0U?AG}YL?b` Line_ColA rzY!"'&##nFFF"?&S?#!"'&&w` STadA Iw?/#/D+$1#K F9 lC '2I+'&!$)$|!$L8X< (3#.$3$3632M1P17;1#?!wpyG igT_t ()<@]2`09<@M9 ]cG osA f:BR!r.@F!a:@iA Un0 <@A2 2HUsBeZ@eG v= Id2l>]Uhz#A3!!J !,VKKX%U6_V_hY3|^__WlU5%^_H_olU%__No_j5b59 M{7/'v!3:raBv5X4;s7B %i5oog74'f~]vKx Nv!"I68e ^@Q:(F|O@f+~?!$\Yz,ZB#b ~-~T{ HD: ##=h 0>T@h  9 T3#UFG1"@FF$I @F BP(?V?P>u`} ?u3`b[>"(t  c]K?A@BHuV5Yt T["p [ZjJU5 CKLc0U"?AGQ}]LC` LineColI rzI])"/&Emddd#nFwFF"?&?#)$1$)"/&&` ]STadI wG/#/L+$9# FRA lK 72Q&eoa]R4` AcE nt83Q%#]b[d3z92#M!c'  Q3#8(f(3F7BGkBBLA3B117;9#?1pyO i}gTt (u)@2`09@uMA cO osI IfB1r@N!am0iI n.@ UA22 HsBe@eO vE d@0 l>]UhzA4 ABGOJ!9"XU__Y3^o*o}gU5^go_oU@_oo5ojEb59 Mb{7/v!3rav44vg}%iP8FYkg7w4'$~vv 3)"&P8ea@e@ @$6Q:>@e3 9)']z,Z#(T(-\ՁTQc@ 0@HD: ##=h4>T]]9 @3 UF=U~@FD"H$@F[M l_?uP>u` ? u3`>"(t  {?A@BH-ϝY(Qt ["up [ZJJ5 Li0U"?AG}FLCb` Lne_ColE rz|&.#E#mddd#nFFF"a?&?#%"+&&` S.TadE wC/#i/H+$5# FlG 72M&ea]Ra` AcX0e? t83M%#]bd3zs9.#%$,-$!]/(h9B>3z C#8> (3JF7NBIGJAA!G;5#?1pyK igTt (X0)@20@9@Mc.K osE fB1r@J!a`0iE n.@ A%2 Hs Re@eK v"A d@@l> 0>Uhh @CA3%!J@&CXU__Y3no+o~gU5^ho_oUE_oo6obTt>G e jiHle59 M{G/v!3r@QvE4,K7qgG^"D'2#x [%"6)_H<>? Dל ߪJAC BFXy# ߒ5B} Ѵ ]@eko+> ]BBhɯ@PGQ&P+=Oasw;?IUFD  h ^TYYRUFD"H$'@F @FxT]]9 #AUFD"H$@&@FTЃ$?P ]Au` ? un#`t A@`@I:t5ZE$:"p: [g5J=U5 ? ?B#0{GzI@hQ"*!!5 o`?CopyrigTt](wc)]20 9]M c o%s f"!r !ua i n.]_ Al0 (Us2e e v00-d0l>0>Uhh!#k!UJ`F6[48{  FMBC!??1$E34NMO_OG$E4E6O?O$E28?;1rA TRZSB3HD:  # ;h0>Th]]9 #UFzEI@FD"H$@FE I#@F)[3#Gӹ?P ]Au` ^? u#`t  I.!?_A@=Dgj+U-tA`WU"p [VJ#0{GzK?<@/BhJA/mdddG G) ?AgaYT6` Fil Co orzYbWYAY{bd#;z),!=D" #g#]#M%!!7;}`?!py io ht (c)y02`09y0M c os fw2!rk0!aw0i n.y0 A" o8s2e0e v0d0 l>]Uhz`1X#!J`iF  8H\ 3FM@BsOOAE3NO_WWE%EjFA_Oe_E2cO;QArA RS3HD:  # ;h0>Th]]9 #AUF_k'$@FC@F9C?Fl6_f?P n>u{` ?m u#7`t  Fx $?A@=DsU,tA`Fp5׹?p [WW"WJ#U0{Gz?<@MBh G ^) ?A_aYL!.` Fil Co orVzYAY{b#z)=/["  3~##M% 1 17;}`?!py igTt (c)02`090M c os f2!rz0!a0i n.0 A" ~8s2e0e v0d00l>]Uhzo1X#!Je`FxF ) 8HR )3FMBOOAE3N__fWE%EyFP_Ot_E2rO;`ArA bc3HD:  # ;h0>Th]]9 #AUF_k'$@FF9C?F)[3#ӹ?u?P u` ?u#`b>"(t  Fx $?A@BH_sYCt ["p [ZJ#U0{Gz%?<@?aBhA(G XO) ?A_oa]L.` Fil Co orz]A]bv#z)=/L" !#o#"(#JM!h!7;`?!wpy igTt (cu)y02`09y0uM c os Ifw2!rk0!aw0i n.y0 UA" o8s2e0e v0d0 l>]Uhz`1$ "H/1BJ!`9H""" 3FMBOOE3N __oWE%EY_O}_E2{O;rA bc3HD:  # ;h0>Th]]9 #AUFzEI@FFE I#@F)[?3#ӹ?P u` ?mu#`bn >"m(t  I.!?A@BHgj+YtP ["up [ZJ#U0U?<@/BhA^mdddG `O) ?Aga]T6` Fwil Co orz]b]A]bdv#z)4!=/L" 3o#"(#M%11 7;`?!py iw ht (c)02`090M c os f2!rs0!a0i n.0 A" w8s2e0e v0d00l>]Uhzh1Z$ "71BJ`9H"( "3FMBOOE3N_$_wWEEa_O_E2O;rA bc3UGDF P# h>,/T6D # UFD"H$@]F@&u@P}  k0g,@DTh |u`} ?LU,@TUh|u#QtSt.%& 0"tR.$t|7/I'A@%#tT.%U/I(/g-3b)5/G((""/.d\63@?3e5~???62.`Make B0c0grou/nd& ,3؞314G;1`VIS_PRXY0CHM!#w60@82"`?C0py0i0ht0(0)02=@090MZ@c2s0f`BQArT@Aa`@i0n0 0Al@ XHsBe*@e0v0d2-2 eh8^hhH-Q659TD[e59ThD[39T@D[9TD[E9ThD[5X|D[%U9TDWndaKoc7TP116238ycA1I51x>Xr1I/1&` HZ@d2&F0o`@A0#` SPowo '"0!+x"vde&s ~s!4r:r4r%pw:rgAo%UhmI {a1$162te2-t3I[ ZE*R38\yca651+4r:rB1b?xav@|5Rq'e5ycBE@G'3,'㫊?GMKc`? 3b #/1 bq3Hep@,T*h|62+EM6H'1\+U=yceq@ D0NrQAn`@aZ@5a-2] ,Th O7qouHD:  ##=h0>Th]]9 3!#UFaD@Fi4F?@F3mq?P݀>u` ?u3>(.t  (~k ?A@HrN_atR bp [_a"aJڍU5 ILc0U~$"?AG}cLI` LineCoklf rzcF"L&nFFF#?&S?#F"L&&w` STadf wd/#/i/J(i" Qg3#$.f.36h@H1$g1g1o7;V#?#1pyl igTt ( )@2`09@M^ c.l os$0fB#1r@k!a@i$0n.@ A&0lT@ Gs\Be0@el Evb dP@e0l>]Uhz143F!J2!XVD(Q(E _1_CT3R^k_}_WBUL5N___BUOd_H$o_j5bPL59 M{U7l/f!3raXve5!$fDm2%T12ooXU7w'B#$<~3v!x vI8!e fwQU:(F|@~f5T?F$c"z,Z#bV~-(T{{<B2>/ HD:  ##=h0>Th]]9 3!#UF_k'$@Fi4F?F9C?F3m]?P>u` ?iu3>k(.t  Fx $?A@HN?s_a't bp [a"aJU5 - ILT0U$"?A?G}F/I` LineColf rz!#nFFF#a?&?#F,F"L&&` ]STadf wd/#/i+$V# F^ lh #72n&` =?o)z 3#B..23`6=27kH A3117;V#?i1pyl igTt (c)g@2`09g@M^ cl oKsj0feBi1rY@k!ae@ij0n.g@ A@2 ]HsBe@el vb dH@0l>]UhzNA3F!J@32&2&}Q(PUa__T3^__%gU5P^os_3oUP__yo_ j5b59 M{7/Rv!3eramv4!$Rv}ai6z7 '#$ő~vmv vU%T"b xe@i?8Te'aa@eg@ fQ:?@,3 9F'c"z,Z#.T5-TAci@0m@HD:  ##=h4>T]]9 P3#UFD3@F:N@ @F~?Pn>u` ? vu3`[>"(t  #?A@BHY,t#`F B_P(?p [_["[JU5 Lc0U~"?AG}]TLCb` LineCokl\ rz]<"B&#nFFF#?&?#<"B&&` ]STad\ wZ/#/_+$L# FT l^ 72d+A'Ah9ѤB! Q3#.(f(36(72M3117;L#?1pyb igTt ( )M@20Y@9M@MT cb os\ fKB1r?@a!aK@i\ n0 M@A62 CHsBek@eb vX d2l>0>UhhC4A3 ל ߪJAC BFؗ|#Hֵ w7B} Ҵ ]@e8ko+ ]K|a][HXͩ%ԩX ˩! GyP+=Oasاߥx# mUFD  h(^TYYBUF\.?x<F BP(?P?< 5 6IHC 6gfa6a9SBU@L&d2U?(sU*!(&J/BH8$q?/&?(H])|  0OB`"Firewal0,n0t0o0k"0p0r0pP711,d 0v0c0 U1^| a(){U5GO& h?0B?E\\\o   w w wy ߹{w yw yϹw {y{wwy w  ߛ{ 뛐*8p  } ߰ i|jDrag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aab\.ҿ~?? ;Կ)j??r]3rCUG DF P# h @T(PYY#EψUF\.?@~߻?P} ,.B ! :J :^:rY:k Au` ?"66JJ^^rru# *^b"h,h')qU ?3?4b {[`:#"&a#'JQ)b" ^^l!L1$l" l"7'>>ÿ@q0-5?46 rz23S2-uY0`-1Bu@ l"r3A`'Bl" L$9u`u `"[ bzb!u`R$"% أ#Q!'1`Vis_PRXYcPm!#5HP47"2`?CopyUr.PgPt (>P]) 20{P9 M.PcePo0PoIfmR^QraPQamPi_Pn AUlP eXsRe0PeePvPdB@!#d$%b!(g#>@f!^#&& "2bbbz12bGbf!cB##0Ub#]g,7^aN @V cT8fda[+_'s1 1"hh"2)t3 *tB+tBaa"qqb(!*paaSb"+6u\%G(!!["@Чcq"53T@ R"q3f uEf;uE5's_t$v&F3s͵NSYFuEf0we'Aj,@QZPUpQ"5x}L1*p"(AT?ݟZ2wB2;6q`RPQs.PU TPxmPSP^2l"+ 0^<@5b ۠۠"x5R"۫br3-PBrw('ٛ`ff_< $R-mA.AQS*pl!u "u"2u3/bBA0oB%Q%Q"2b3 !!E؁؁| NPl!#(>*pQ~ [ ]\@U0` SPaaPePl6rsRQA)P E u.PpBPeP{"5X .0` TcPѼSP"`DPvR3 `r ޹b` S;b4SP&SF.PQ!wPQJEd%TMPn;fPEcmPuR"/6HEQI[]1PRd Nm Eh! PPr"h"CU]%R`sRU3eA(ew3`tJرe^`BT , SRi+~K׻T `L_PcXG&8*JBlPiP;anIY0 -R_PoUS>b©'s)&U1:`` %2R&RviR`f`NEtWO6PKK`SHPP60 4ROJ2R*tI60S1QR`f`s7fitac'Eympx]b7'dYfjBr 3aQrf$i-QIaaL&E`v?`HvADK^DKDQKDqKED3aGHD H# h4>T]]9 MT JU@5wn?@'d2?@vP6 AJuM` W?SuJt  w]It=WuVIRY]JIl#>>@fY(? ?ALbbbz@A ebbfb)]b 6(. T#Jq!q!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d j!n$EB5 -F?}# }'X62zGz?3S@MJD6*-!./@ D)QQ&K,<"Q*i@ieE9 X6Xn73'K0UB!K0 aFuJlJAUhhc7![hz]0T ]]JU@\.?@WjZ?@* `?@JRT?P NamuM` ?,2<u#FtC mtimuV~ڻunO2zGz?>?@MA@bb?bz+ )#bC(+bQ)^+^&Ɇ"@fx?0&?x|5/-&bf^ >/`/%N B1B1`?Copyrigt(c)209Mq0co0o%si0fw2h1rk01uaw0ii0n._ Al0 o8Us2e0eo0v0 d0;1U?4-N3 N7&q045 EFXGeG'0UBų&!$$ eFyJlU`1#El,B^ PhO (!p&d2?@`0  <S ?؉O<S 5<Q3::*\QY'aQ5____Tehf'W{oaYQE##$Wuu']C_U_ kuVn_j@ղ_bl|>xoo uJSAU(:L^xSp8wag?%ehYjdcp i!rx  -?QcxS ?@ je,㨏O4Fӏ 5:vox] 2DVhxSPbtߔ尒 ? ypv y FXj|t:NѧwmN6@4~펰pdNAQcu.0ܰ+ 5P/Q&a/4EHD H# h4>T]]9 MT JU@\.?@W~?P6 >JuM` ?juJt At=WJRb~lT>5 g`?CopyrigTtZ(c)Z20 9ZMcoKsfr!!ain.Z Al< s@"e evR d4 HT5 B[}#?& ?AAw@"b4-/ &&t2Uy2?")@MJx6D8<6<2:iieE9 &5X.7"/'0y3&-!$0 FJ)lJ8>Uh ޓ$Ja7Z@?@ 0<Mbh#B] ?RlVJ:vn?6\ES YwQ#TTKRU%Ur=\PYZd;O#UEd^_OZaQU%5UPBgP([Ma\QU-V'?d2=_OZuV%hb2&_8U2rA 3LsQ% bHD H# h4>T]]9 MT JU@* `?@~?@PBWP(P6  n>JuM{` ?5u#t  5]It=WZd;IRMIl#>>@f.? ?ALbbbz@A ebbfb)]b6(. T#Jq!q!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d j!n$EB5 -F?}# }'X62zGz?S@MJP6-21/D)Q&K,<"Q*iiePE9 X6Xn7'0UB!%0 aFuJlJAUhhc7!-oiLaUe52j_|Uv<"rA ;#c8 bHD H# h4>T]]9 MT JU@\.?@@ ??@{?^?P6 v >JuM` ?)uJt At=W;On#JRbJl?ʡE#>>@f?.a? ?ALbbbz@A ebbfb)bE0(( #Jk!k!5 g`?CopyrigTtZ(c)Z20 9ZM c os f"!r !a i n.Z Al (s"e e v d d!h$B5 ɤ-@?w# Rw'R62zGzM?@MAJ6-2+/>)QK&E,6"K*i@ieE9 R6Xh7'0UB!0 [FoJl8JAUhh]7!6!Z@( <xLK#  }RSVJ:vn?6S YwQUTRU5UXz{\YR/IѫQEUPBP3([MabaiU_52d_vU6"rA 5#c8THD: H ih(>T9 M3JU@\.?@~?ҷP6 m >JuM` ^?5ulbSD_Jt bstE>2zGz;?@MJA@u+b+&K !JS"j& 1"Ab+Kb )-,-/B!!5 `?CopyrigTt `c)502U0A0950M-0c+0os%0f32$1r'0`1a30i%0n}.50 Al{0U +8s2eS0e+0v0ds0ib =L!XY/'0U Bj&%0 :l*J8>Uh@[A[A 1:vݏn? Y YwAQi@qJEr Ti Z?d;O!U3!^9_KZXQAUEPBϡP(KMQLQ I@'d2\ QLYuV_XAo@ ,oKZ?Mb_XEOOO\_H8> G*+s d:TzR4D$o Fh# wLB H ~dlҴ i @+ kB}G% _P(3  (X5 : 2: l 3.  0 , / UFD  h(^TYYB>UF~?x<F BP(c?P?  s 6 6DSM 6gM 6D{M6M 6TM66x6K6v6HBU?8/&?R)B@L&d2?h-y(\.gҋ(i.sU!A&/@)Y(  0B`KLaptuo>0,>0or@0ableF0nB0tV0bB0oukF0mB0biT4UcB0m>0u^2rj4nr0A11nV0twJ2i1eq0i>0mV0n@0,PaL0d01e11^| ()IU5G& p??U"6? QQQ ``pwwpw w wނ ppK_wpwpwwppwwpppp ~ w w~~@w?~MpopJpppp~ppwpkwwZDrag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aab~߿?_)jk?3@ ?DUG D # h @^T(YYEUF~K? P} 7K.B!C D :T:h1Y:| 73 7 73v7x7377&u` ? "66JTThh||j&&"uJ&)R2%X<X7eU ?0?' 4b0{[`:1262Q3R2A"'QT9R2 ^L1$K" 7"Gd' @Bc]D?MQ0rBCSBuY@`-1"Ru$ @mGrC$Q'('R7"A& <4' &)9uv`u `"[bR1'$u.`425ؓ3a171`Vis_P_RXYcPm!#5H`o06QB`?CopWyr.`gPt0U(>`)02L`0P`W M.`ce`o0`'ofmb^ara`aUam`i_`n 0WAl` ehsbUe0`ee`v`dR13d45R1*83 Br3 66 2'QbtzV[1SBuL@`` F.`a^al^bz1 -2uߐqݐvR2CB#30U3F:w,7^F`^ P sT<`o0m`sm`a>g da;_zAA2Hhh"B)B* R+R::2mDmr81}ahcwP#6u\$ %W11%[2P@RA4"ECT'$@b2AEȜUiBȜU5z_4ɓ&F3sNSYF=U0ʚu s,@a#Z`ep"EˍLA}28ABTO0V""-sRxQ'(BKF>`R`as.`e T`xm`S`^B 0^LK'7"P#P E""b ..2EB2.˯brCRqʯܯ8z,BF3<^-""B=mQQ<*dh2"B B/R0R%a%a2qqr3 11E++0|ss7C8*PbQ11A;Q(r,`LA=k^u1MAE!ffuVҶ8}aY k q]PU@` SPUaa`e`lsRaQ)` Equ .`pB`e`β"Ep` QTc`S`&c^aEma`u9E^Mx_ ` S*bS`u`EL t_b9UdxM`n*f`cm`ub%7Uh5GAPbds Nm0{U0! P`rxqp2D@%b` Dbaew3uĮAe:fC`c'97/I/ Sbi`ao//¹T//` L_`ch/6?'?9?B"l`i`]?8(Y@?0?R_`?65?ON*h"wbk"a"R`K9B-/H`OI4`ad`cOLO/OOnh$gsC_L(t˰=_O_TQm2/atfa I4aoO_g¹f__㪲`Uk f`Pbao%ov8_No\_MPCOoNo(m Qt Q6LM5GMLvEHbdr!SC qpsY` W@DQQ:V6xHS`C@MOя^u`MpmB :V¡3EYx!O U1vqyRdnu}Ϗo߳(©`X^~"` %_@&דq|`NTWORKurH`PaRTRǰISQk:i*,Ŕ{Xo'0U¹ňaY`y}֏(!(H*ڽ(5|ѳy(!{5{ᤰdvHv˷v d,v5˧v(!&v˟"vĈ~(%vċ~Λ%vİQ5vѼd{5v5UGD  3 h0TdYYB IUF%D"?Fب̓m?Fre?F_jYfw?P} 8Yf u` ?0)u:t7  (\toLӑpG?WS̆{c٤CU!!`?CopyrigPt (c)J 2\09J MB c@ oKs: fH"9!r< u!aH i: n.J Al @(s"eh e@ v d  #S$#B- #l# '?R;= # &#24 6 6 2$Z# #0U2 3@&B ^#5 6X'7'R4 6!4] 6:e6^P#[EBM #HA%DGHD: H ih ,>T  9 M/AUF~?FtC&j+?P6 8V> a JuM` ?0K Ku:yJ6bqlt7~ bJt  $OC>JU2zGz?#@MJ?A@+(b9)F+,F&" !*$5J" "& w"\A1"b9)+6'"s,"s/B-  P3v#9 P1P1X7;`?CopyrigTt (c)020090M0c0os0f21r01a0i0n.0 Al@ 8s Be0e0v@d0N0i @b9 l6(X>7JG'0UBX&50 JF^JlJ UhMAA $ A11!:Lh4 0 tt3J!@|?Fhdzt 0 ?kCYk XEjUqA '[\<1ߑUjU!o6Pa@oVUhq`V r])m܆YaYi*X(QYaD"H?F=0 \S㥛\blXfYFt:N\[ZR ÅبX0Q^pp\.zZ ,\ 6?iwUS5?FrSGo?PE ?=TvE?!Y?.`txv6mT]]9 M 5AUF@ ?Ft:N?FM~u_7w?P6 .>M JuM` ? IKSu8Jt5  rtyV_->5^IWA>JUT5 J#/!/!5 `?CopyrigTt (c)f 20r 9f M^ c\ osV fd"U!rX !ad iV n.f Al \(s"e e\ v d (!E,$#E)edq%rVA٫llx51o>2rA 53eHD H# ih#4>TA#3 AM JUF8?FzwJHM?F,+?F%VA?P6  n>JuM{` ?5uJt  f߰nZIt=Wv%MIRG|׈,IljE7#D>5 J5 g`?CopyrigTt (c)* 206 9* M" c oKs f("!r U!a( i n.* Alp (st"eH e v dh PB~A!"#?& ?AlJa@Y;6` F" q!z!lT"z0_b0A0#bmT3z0B9Ub25181 $?25?G5\ P1u`"?46?8C_1A1b?t0bAFbI&DɤG b&LBFAL2zGz?")@MJFp'CfT<(Gb&I3F-LB3FiieE9 1X]G/'0UR&-!40 jV~Z 3Q hRG!-AT6yf3@$<f@C  bfJ: @BS+c X$}#e`e%akqcEAyHh?F~l0I#c ,aTE1vo>B]rA Cs+( bHD: # h#4>T#3 AMT JUF ?FH$D?F8}, WcSP6  n>JuM{` ?5uJt  s߿ 0eIt=W(\IR}WIl#>5 UJ5 g`?CopyrigTt (c)* 206 9* M" c. os f("!r U!a( i n.* Alp (st"eH ej v dh  E~A!"w#?X& ?AlJa@Y6` F" q!!lT"z}0b0A0#bT3z0UB9b25U181 $?25?*G5\P1u`"?46 ?8_1A1b?t0}bAF'b&D%G &LBFAL2zGz?"@MJF'CfT<(GbE&I3F-LB3Fiie%9 1X]G'0URŴ&!40 jV~Z 3Q hRG!A`Lޖ3?F\.0hO *1J#<=#,AB  f!JabdP$dreEAJT]]9 M qAUFp8?Ft:N?P6 mL >M ($JuM` ?AggL2DuVJtS  {G7zt.%_>JU5 J =#k!k!5 `?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v d +"d!Eh$4#=#|x!F2 J3?]6 ?Ab4z@0Szu< `` F !!l"z֔0` ?251ݔ6b A6b4(4"Y==/w# w']6T4"BK/C2?=@M3#JF3@C37b"9F<2Fiie759 O&5X/GB_A/'0U{R]6-!x40 2VFZlJQD0h$G!Z@!11(Z/CFF\.30AR@Lu)_G  RaCf4"J? 6Bf*}~2?FVor?PE &TvE?~1LZc Jxdid`gR*YB_Lc׏_:M m&!&Ra DBBBTfwr5UBoPb2]rA 3q+"HD: # h4>T]]9 M 5AUFVj?Fޣ ~-?Fe2L&?FZT?P6 m. >b JuM` ?+ILKu8Jt5  O7nty>+B`"$'-A>JU5 J #/!/!5 `?CopyrigTt (wc)f 20r 9f M^ c\ o%sV fd"U!rX !uad iV n.f _ Al \(Us"e e\ v d (!E,$~|y7, SzQ|nF?F.`d %TvE?B1ZBrA YCc4!*uxnG@#r & 4xavDB#Bsrb5UHD: # h4>T]]9 M 5AUF{y3I?F~??Fd2Lq?P6 . >  mJuM` ?0IKu8Jt5  n`ݴڅtyx&1UԅbX9AR>JU5 J#/!/!5 `?CopyrigTt (c)f W20r 9f M^ ]c\ osV fd"RU!rX !ad iV n.f AUl \(s"e e\ v d @(!E,$~ 0T  JUFe?F:[??FO&Q,"7?P }uM` ?j`fpu#zAtw  [{t2Oۨy`<%t2N贁Nk?@MM+&A8 b*](i+i+i&p!!`?Copyrigt (cu) 209 uM c os If"!r 1a# i n. WAl30 (s72Ue 0e vI0d+0"!3 $#)Ry&#‘4?6Q?\c"bk)i+Q;'-,# '6% h5 IFXGiG'K0UBŨ6!4I iF}JlU!#A(ZFj^I30vi p-ڏ|Y &V"(:!]H?F{wX@0pS l01 o(fy { xU,>Pbtv3m?F/@M\lSFp ^ \ 0+??Fް}ulHyƊqWwi?Fܾrޝ۷cl)-i]oa?F5o רo`lۗ]Cfϟy { xY^p𔟦pO4?F0eO,plkleW,^ \ -r[v?Fp =\LhlmhG N1?F[Q{ l/5:1 fz7[;KՃT0P1ey { x¿Կ{dޯ?Fv9|eޝN.l?DɨT[\[fk'?F#Y}3Zflٙ(oWU"NhLޝ].Yt?BدW>lrt~]|%߸'0(f%y{xa v ?FϘǫḿl$h|a[s!?Fۂe2'[\YRSWW ?FIǧmp~Xl-TBi9w_Ku~Սe~< 8qOfSx#5y=Qgk?FG[Pm j%a ;(|a[sjT?FjwZ̮̈́S"o& +~?F 'APm*?w?3f|o7gyP( '7Ƀp5{/$ x //-/?/Q/c/ya-x?FlS+0ƄɰOYOe[s/?F@A ǻDÄZNF7?>.N?F nMoi?~q,P>Ʉ (:^?OD*x 7OIO[OmOOOyNaZBPK+qǀ̩BF6Ks _S~MGt='7e]Վe?Fɍ#cAcaKҌVB_,ϠZp"IؿoodK eowooooo k4@\{-=(eKs;o@,P%T̆m ?;e_#ֶZpp\J)~Wf ,Padҧɻ;y ÏՏ5A ?Frg,mr2 +nrsc9az?FWn ~}\+ :|wص@ymwQkܳ 8I2=d]? ń̙ "Ͻ)i8j7i3 ͯ߯i+?Fu߫˶<yOKs@,0YvjO}ȶѭ $Y MMeܚ-O ߟ4~ <-f5]Xкj 3ʶPbtf2+ PpߚDڋp,ψyӅ猜,4p:9?Fo}!s>ybH E3Ɲp ?Fn~p6Ü~y˓lj~ݨ" : (0!϶<'y'K+HHZl~f~ӋE?F&Ý A;yƿ* ,/=r?Fegm yQEڳs/e\?Ff"h=y/k.h@̵I y|!??4JkYhs??????iHu)?F͎ l䲥aβ ,IO;o\?F!yhX ejyROm,F @^f]ywO~6bԢ`V 6y O_o%d r______??FlO?=Ȣtc&O ,wo<ڐbrqM~@ O`> s>?Fcme~Vve~sO~%HlĀW<]|F<>~zK_]]M),ͭ`7E̺ژB>mfT# ,Bg)?F[='JFmjG;B|'|`yq])tK } /:Pp0&%;Taqԃa/E-? _ [X!////??D Tw2?Fw]12%W嬨$:W{,߰ M >:6yEpV(0AzGxaNtb#P?P-yp\J~%wMIn17O~:3݃* 3%\K?|\^OT[__ { xOO__+_=_"^j^I<=ADǂr-+ű!M!?夿e{*% m9N?:ߤzf"h<=b\㭖h1boyt65o %#M#'VW?FGn5> 9ؗϽrqCug<#ֶ?Fv^݇qLJ|U[>j?F^@;# qYq(ٿ2#>#Md TH7D6D # 4#T  U U !"#$%&'()*+,-./012*3>5h T  M YUFBg?FJ:?FAؔPM.uM`?u#t  jm7}%t!" .Π%'&!%4-Ut}2N贁NKk?@M#&A b(J++&Yz}/R/$38?#b`4zt (+b/R5N}11/"`?Copyrig t(c 09M0c.0os0f21r0Aa i0n Al6@ 8s:Be@e0vL@d{"1U%4e3 756%01hEPFX|GG'0U%R!56S1I FJlY)U4FX1#Aց(`}oO40OeOW0fnj# Qˣ-Y R5b 8!EЏv?F[ =\}g5ly$Oa3[e_q[~haWWrm)T`fnӟ_C1hhE:]_cd0g`h _R"rg t4{s{"oQ#w______Vcޯ?FW9|e!|vr.l`(n :l Jo}`[Q ?F#Y!|helƳoZfuj'7czX!|ߝ fUo(oZf?M :rm3~Tɶi(R}ty { xUV ?Fǫ!|?UvʁD!iip_(n :l r}9!?Fʂߤe2!|ωY\*!ijlߐjǏȯگ` K <ZfB0񁚍axCmƉR}Bty { xYџ+BQgk?FG[!| =jlU)+R(n :l }jT?FwZ!|B9nl(Z!X󁟜 ")p Tϑ` 4/]$R}p ty { x#5GY,h+?F߼߫!| ?iOf+k:l}‚,Y?FqvjO!|6zKi%SI#Zf@,0ƪ!|~9RĞX}ߘNd̮ Q>'ەߘux x&8J\nYJa-x?FglS+0!| @m}i˜?Wz(n}?F@ D!|¶RiBQ:4i!@Se L]yEڨZf?g5 J[#PR}ty xTfxoPoof+k*\onooocN1?FEߋ]2φ gm_h{ 'aV ?FIQ|X"Z~2z}5o]Sh]CYR`-`CLVI h oo&8@6>Pbtg[`#|϶U /(+~?F0'Au=0cLas` =E ߴI h 0BTfYl~g[ 2DFd-?FGt\e(-upғh6SFOp \pH%y|C/h6+S{0 ӼvAf@g+hPљV M H<l5-W/ :FdAg?F#ccMTbzm1Gcqe~1-B?`ZAvkNngoPoboto OkH?Fɝ?) V1? zk "M ,o"r?FLgmƦ J TܪMcSS6-F؏{wKJ\M,z% #߭ҋEŁN"}3cQLYNVV䯀@.HZl~ n P?F͚Dڋ~Ͱd@~y6{:M ,"Ęp:9?Fn8ͣϕ茻yb H v_=x?vQܠK='+ #X;F.+*3 rz@M\vЯ *ͭ?F;Y ~Eؚ)~ykM ,L5?F)-ffA煤 0{l[΁F~Uk߸?I36&&d>!ё*a0tM@ޞs0COρn{϶ f5A ?Frg, {35ٰy^5PנN,z5kzX_z?F-Wn \?/qy?%b/'8a'߀x\tRʓVxK?q%im!Fg?Jq /2_D_V_hV {+,qO_6}i?FrsM<+bSykY=T=/a]e/r_`x ;8$6HZ>asu=?6|./6l,`F@^f\/j~9̿ia/nLHThmO;~?}[h<11?C?U?g?y??@妎Ė  O0B_f^O8e\?FU"hύ?@B^bybOl?Q ,Mo~SA(5 `_ - <\_n_____⩼Pο!!2o^po8p ?Fna9hfoʌn%Zm?7 ZT![!j( ""`DpHxs/ȏ]-߼LbqS?FҾ+cCXA9x1ˠWC s\3EP|`0""ʟܟy*<N##A?FyYǟìiQ9!.Q^=&J+#ͷFSPA &&Dxj!.?Fo,,M V~< XO~U?F>6S p??HUK,HY&/ ?` _/& A[&PXp//////y*ӋE?FTmcͦQl~V)a ''F? |kټ]c¡J:?YnD((!ooo&$ ?FEc:d9~.]Gl))W_?F޶P dS&9~ԫߟFRB1 > 'Nzrmw }}?=In됿Tr)˻)ڸ" 0BT Yoo?F\/8BҡdifO g **ПA Y{?FְgmƦ͌!MdihMcSS%@'9 )|z֠?H,g]r~ei8YY$m**#(:L^p Y'4?FÄ!GQJ?Zqqqdi +"++,#a?F-ߕfadi [΁S<]?~qUg  ʕ7mI[[ߣވ/ZG +' +6$Vhzߌߞ߰@ Y???6 ,,,X?j??"6?FB6"MRp4KTp#1 ?mJ,` O4PHOZG\,U+,d(% Y__of';--Z__G/_t^> s>?Fyme%]U`vdicdUʔQQ ,?w/ ?~efvoZG*/\-K-H& / YP$6HU[../uO/t|?FaqS} 4dIalBt:K7? \T-E_?!#hTXO\.k.h'??OO(O:O)@R(dvK//Oo_t͇W?FЧji QI?e_N|%ЏIMs.qe$ү䧆o*\/ߋ/(o o2oDoVoho)nπϒƗK00o"яF>t44I8?F?f_<'kԸ!Iv' Pr۱|@? }.q?5d䧴*\0 0)Ptlt)K?FZIl_<緬TF!Ǿ iϿ­.L.7\1 ;1J*j|į)"FM?FO4_<`s31In1)0` 202@q1.?FzT~_<ʱI (빸~u7#ߩ MǍKKRw 2 lPiCϨ6\2i2x+Ϫϼ)PK303nߒ[Pr| ?Fo3on1Ox0 ~L":rCF]KSDJlع0 MPq6>B33, aZdFy^#I1Af4b4J?A^31K404dlI?FjwX@_<\X*߰~LϡD/g\Hb1),-FuPx~K :ehDo^1GEG?7l*B4;48-*<NLIw?F`sT5]|N~LZQCݞaQK505dm%?FGn5;TW~ A,p"wQYy>)N1`B@PKB^qq_'T?B5[5h.?(?:?L?^?p???F1 4c}C0\wPN)qk6<6?d]@?`pF*;Z"}^װIAOfQ;8aVȯ#{Wn\=͘OLP$Zɺ}_.qV'@IO^6 !60/D_V_h_z___2\֟?F4vS[p-̬)K7<7o\?y1<<<:y6yrЃ&~?!1b W@=yBP(lf7?۵FSF&Oi{// bxRC//Jy<<8X5X/j/|//// ???6[=2 l=.?f&M?dsl?~?+eXO-y?Fp\JlR ?ɦp{?\s__ ~C +OOJy==ftSr BTGHD: $ Uh4> T]]9 PM /AUF~?FtC&j?P6 .v> mJuM` ?0IKu8Jt5 }ty$AJbA>JU5 *J)";/#?@& ?Abk$zo@w Su`` Fil Co orzw ` Z/2%w!w&}bA&E&UBh115 `?!wpy igT}t(c)W20[09M ]c os fM2R!rA0!aM0i wn. A"U E8s2em0e 5v0d01 4Y=$3 $7@&T"+t32UHB?=@MJGF(I(/HFiie59 &X7G'K0HC@&![$K0 FJlJ$+VA' (++ ]61h!Z3F\ O6?F9.4?.`tx@! y@c#CJVAbX,?F?&d2b iQA.$c Ȑ #Sa3:TLh4b bcitt3h5eqA 'k?\<1lOe5e4P܇a5f_eD"H?F0 wlS㥛ԍlZblheFt:ǝNl+aiR أhQ\.j ,X^F5~I?F\O;\?PcG &TvE?a!"rA #c4xLexmdAa S ύ4xa$B#T]]9 M qAUFbX?Ffl6?FI$D"?Fz^?P6 L6x> ](m$JuM{` ?Agg2DuVJtS  y&1tQ rhGzI>JU5 J0! #<l!A?% ?A^Jb @bbbz #"b9#$"b$B 2% # ?<@M3#J6(&$%"QD;'"**=#115 `?CopyrigTt (c)02U0090M0c0os0f21r0Aa0i0nU.0 l@ 8Us!Be0e0v3@ d@+"1 (44#-=/3K 73L)i@ie59 O&XuGG'0U RŚF!$0R FJlJ8>UhW^Q^Q 1@!V!1(ZuCFWF3Ф JR L?[<œ_Q3$R$4"J1n6f?Fr\. LSW_Y?)$8aE:TCVb]k&aPdd *#8d2L?Fw;?FH?PBzt &TvE?!YaYcR&ekre~RMv'(J9_b 2}&(!&Ra@cBwrÀ5%8aOEev?n?V]kAyqiQ4eDe'BP(\orlh )$a^F)?F.\?PpU#u#rA =4Pz d|oO_Y~sEzw uFtQcwHD: H h4>T]]9 MT JUF|?Ffl6?F'd2?Fz^?P6 n>JuM{` ?5uJt  bX9It=WQIRuVIlGOz|>5 Jr2?@MJA@]gb%(1+Wb3)O+O&B!!5 g`?CopyrigTt (c) W20 9 M ]c os f"R!r !a i n. AUl 0 (s2e e v 0d0!$صh2?6 ?ALb4z@'!Sgu`` F 1!l"z' ` ?25߶1ݐ6:/[)ʼ=# '66Kiie<59 XQGG'0UB6!4%0 FJlJ(>UhI !+!:6V߫j֋#0=1 JUF'ÇpС0RSO S ;[5)۱Q3a9iQY'aHD: H h4>T]]9 MT JUFt:?FFh4?Fz^?FkZV{?P9>JuM` ?uJt  lIt=W9v׾IR}?_5^IIljt#>5 UJ5 g`?CopyrigTt (c)* 206 9* M" c. os f("!r U!a( i n.* Alp (st"eH ej v dh  3Eص!"#a?&?ALb4z@0Sgu`` F" q!!lT"z0` 2?2C516bANt6b4J= &;02zGz#)@MJF86x?OK7XB 6iie%(9 X7G_'0UB&Z!40 FRJlJ(>UhI !lXAa20$)0=~0M:XbX,\QS }A_б5Y9mYQ_H8>z 9s -b@J)F #B ! OB L# ~dҴs o@+Zo8sG(= $ f֛ؼ ϯ. CX 1 r 5 h  9  Z= ( A +  8E a I B M  b !Pas//'/9/K/]/o/////////?#?5?G?Y?k?}???????? OO1OCOUOgOyOOOOOOOO __-_?_Q_c_u________oo)o;oMo_oqoooooooo%7I[m!3EWi{ i>?  Џ*>ÿ@qZPU?TVpPr&bcwRu}P`-*Q"&bu &@WS$Aa(Kb""ch@D )9u`u `"[bz$u`؂CaAG1`Vis_PRXY%cPm!#52madPa%VR%TKa/ZB0gBqq32REqEqAAB5r6$ 7”ECϔ|A8ܔspꓮQQ;< !LAE7ĂFD a,!J^hdh")xA*HKa./Hd$Gpha1]` Mpnupa2ptqrFqa` E@u"pp 6peptuEQ`ѯ]8QP}rd NmP3P9KZ! PprtX˿]r`iDr|q uϯ\/AA$pqc`#E^-% Sripq߫uT+=,LSpcxwߠ E߱Bl pipgE}Ph RSpoO"|ґyz(ޥA` qp鴜D`NwrkhaGpB`e#AI(pqdpss@|'߸ֿSbpsQx/%mF#qtvq Iq{uQf{ r (pqq@(3/+URqm6put%  SGt5QVeqσąV///(C(pA` WlګO`/iMpmr1//\Qp?!?OUpqsIyP?b?XiBplrgrTSp#"2NO)OS4paB2Cpo! 7iO{O` GT01@ `p#_OOGO _u% `_#kapTq#(?=MpCv/Qv__SH"d\"ZqCB??Pq|&Љ و3UF~?vZS\u`?d?7ruAy}5-.B"TqqՈASw>>{ÿc6Hr92u?`s`Bxrq 07K`R oF@IAeB$H|8Ex~8"7=rb ӀӀƞFSrӋb{ra@RKᙑsz}_MSaabn.{&$,"-Ѵh!PPa@iy60`ZUuu`a p*LQ. p`RÑ.1=f@ߒbÑ;J&;i1J5MS_dK&#„BCF3sNSYFw";(LլDQT]]9 M !AUF8?F:?Fm](?FF]?P6 e$A  JuM` ??Su.Jt+  Rqte_|tH1qzrMZqaMKI7>JU5 J["a?2& ?AbAw@X"b`$B2zGz?")@MJ&a#b#z\c a(b`)m&g,X"m* 21215 `?CopyrigTt (wc)i020u09i0Ma0c_0o%sY0fg2X1r[01uag0iY0n.i0_ Al0 _8Us2e0e_0v0 d0+1 (/4->3K >72&i@ie#59 XG'0UB2&M$K0 UFiJlJA h7P1X!ZCFt,ܿ?F9$*m ;6dm S)RJ:^T<@T R}S $S @gQEU23\T xY _5ˀ aYQU#5UFY&yw\QY!ħ[68^_zd {?FC:\4 `]3?X"rA kf#sS*<7$dFl~r7lb+d [!}UHLuD  #;3h0TlaaJ )UF~?һ P m.N >uA` W?I?u#8b>t5 }ty>b"[>U?& ?bAK@8">&>*m!m!`?CopyrigXt(c)2d09M c oKs f"!r !a i n. Al (s"e e v0d f!3(aj$B-y# y'&t2U2?@9 H>6A(A(>/J8M*ifPE p6XB7^G'03&J!-$e F/Jl>!$Ul8AAa  @!#E18!1Zb?F _4 .40nCA.xMѧnA[(:DTPFmq4 _WtY\ FهX3^&o`_sZRXECU֚|I?F'@[\b Eq\ ypQUdKq\;rdXXQϓCگ K/ڇTXK^F!}} p$?P8-DT! .3!^_p_U.~4}]~q.x~TA#3 AM JUF#H^?FՃv?Fꖞ@?FĶ?P6 n>JuM{` ?5uJt  ߀It=WKꑔIR ׼IlV #D>5 J[? & ?AbA@0"b8$2zGz?@M»Je&9#fb#z; 9(bE8)E&?,0"E*UB 1 15 g`?CopyrigTt (c)A020M09A0M90c.70os10f?201r30l1a?0i10n.A0 Al0 78s2e_0ej70v0d0@1 4Y-3 7 &iieE9 X7'0UvBŴ &!%$0 D-FAJlJAh7(1h0!T#VcS( bHD: # h#4>T#3 AMT JUFȹޘ?FOd?FoT#?FqJĻ?P6  >JuM` ?juJt  uD It=W36EIRj׌IlB?@-#>5 J[? & ?AbA@0"b8$B2zGz?@M»Je&9#fb#z; 9(bE8)E&?,0"E* 1 15 g`?CopyrigTt (c)A0W20M09A0M90]c70os10f?2R01r30l1a?0i10n.A0 AUl0 78s2e_0e70v0d01 4-3 7 &iie%9 X7}'0UvBi &!%$0 -FAJlJAh7(10!`3'e?FfAs!h, ?nN#<bydb   VJaRTT $jTRUE:]gy_eZ-ֱQ%UOfkZoaU526_HU0"rA 5>#cHD: # h4>T]]9 M JUFS6h+?Fڨ?FC7LԠ?F_oo߯w?P6  >JuM` ?uJt  k6It=WHףrIR'c_hIlX_#>5 ՆJ[;? & ?AbA@N0"b8$B2zG7z?@MJe&9#fb#z; 9(b8)E&?,0"RE* 1 15 g`?CopyrigTt (c)A020M09A0M90c70os10f?201r30l1a?0i10n.A0 Al0 78s2e_0e70v0d01 4e-3 7 &iie%9 X7'0UvB &!%$0 -FAJlJ]Uhz(10!Z'F#?F9=7Z#<E $ ĀVJt!#cGP!2, TYŏ.ZfQoS 5!;KƱQE:F1aQ, jRYSuRYFU>X%e1lER[6C/I .g\wPU5egㅪlaYpO0X2:_;0"rA >#sHD: # h#4>T#3 AMT JUFJV?FO7x?F g8t8?FxMƻ?P6  >JuM` ?juJt  .![It=WBaIIR#!xIl?7O##>5 J[? & ?AbA@0"b8$B2zGz?@M»Je&9#fb#z; 9(bE8)E&?,0"E* 1 15 g`?CopyrigTt (c)A0W20M09A0M90]c70os10f?2R01r30l1a?0i10n.A0 AUl0 78s2e_0e70v0d01 4-3 7 &iie%9 X7}'0UvBi &!%$0 -FAJlJAh7(10!ZF/, E <{O!#4  OR|VAJaN[]PPReSRUE:]?Cm{ɾ__Z"u)Q%U=V9P]Y\QĖU526_HU0"rA >#cUHLuD" # ;3h( TEJ UF~K? P .N  >uA` ^?A u#0p,bKp>t- bFtq>U2zGz?@9 >?A@(b),+,,&" !$i>"&p ]""b)+'"Y,"VY/N*1*1`?CopyrigXwt dc)a0W20m09a0MY0]cW0osQ0f_2RP1rS01a_0iQ0n.a0 AUl0 W8s2e0eW0v0d0:i f x!X]'0U5BX&50 Jl>$Ul8AAC U  B # A!֚|I?F'@ & b E9& y'9m(^L0T,_>_ *XX3U{?Fr\HzdKB\;rdXXXAk}pCڇ K//XTTZbP _?F92}&~`m`[ ]3PY0nC]MnBU,Nvlza&p (91n-pQYWAliPFmqٸ EY\ FXX܏&o`DZ?RXXE_&__J_|D#AD1guOKOOjkFs"DI@[sDz.q[]J,bu?kZ̯_ofd $?QRp؞lq o|T]]9 M !AUFM4_?FX({'?F8as?F'|~?P6 m$ > JuM` ??Su.Jt+  ,ئqte_GqzLxg q}KRI7>JU5 J["a?2& ?AbAw@X"b`$B2zGz?")@MJ&a#b#z\c a(b`)m&g,X"m* 21215 `?CopyrigTt (wc)i020u09i0Ma0c_0o%sY0fg2X1r[01uag0iY0n.i0_ Al0 _8Us2e0e_0v0 d0+1 (/4->3K >72&i@ie#59 XG'0UB2&M$K0 UFiJlJ]UhzP1X!ZCFFMaT J*m $d2rv 7|QL{RJ:bTVͶ$S ?!͟TT QE!K:?Fc\?7YMQ#5UC6ǎȥy\aY = GZgh5Uc?hV[\]PfaiQb_tSF菐-?FҮYT˳ ]3?X"]rA f#asS*ԍ֯JQed~V(L qAb+d ׻HD: # h4>T]]9 M JUFd $?Fs"D?tP6 >JuM` ?uJt  RpIt=WcsW.IRI%l#>Q5 J2zGzK?=@MJA@neb1#z' %#b?(1 ?(Z+Z&B[ "?& &?AE$ \/}% 1 15 g`?CopyrigTt (c)A0W20M09A0M90]c70os10f?2R01r30l1a?0i10n.A0 AUl0 78s2e_0e70v0d01 4-3 7&iie%9 X7|'0UvBiů&!$0 -FAJlJA h7(1E!bTc1 $<K $  OR)vVJ: KvŦM\lQeS -^PűQEaZ9]`Y\QU%U=V,M_Zڕ]X526_HUE"rA D#cHD: # h#4>T#3 AMT JUFEM?FZI{?F'ϸBl?Fĺ?P6 >mJuM` ?uJt  ^J˛"It=W0"شIR}*IlFw#>5 J2zGz?)@MJ߀A@eb1#z' %#b?(bJM)Z+Z&B[?& ?$AE$\/}% 1 15 g`?CopyrigTt (c)A020M09A0M90c70oKs10f?201r30l1a?0i10n.A0 Al0 78s2e_0e70v0d01 P4-3 7&iie%9 X7/'0UvBů&-!$0 -FAJlJA h7(1ZTlT]]9 M JUF5 J2zGz?S@MJA@eb1#z' %#b?(bJM)Z+Z&B[?& ?$AE$\/}% 1 15 g`?CopyrigTt (c)A020M09A0M90c70oKs10f?201r30l1a?0i10n.A0 Al0 78s2e_0e70v0d01 P4-3 7&iie%9 X7/'0UvBů&-!$0 -FAJlJA h7(1ZE!ZF" Z <] Gʼ#OR  ORS|VJ:-US DZ/`#dTK QEUHǻM\Q`YO$iQ%UY $?)/Ep?Fa_V0w?P} 8f u` ?0)u:t7  Id̝txhˑgFݑZo`ҤCU!!`?CopyrigPt (c)J 2\09J MB c@ oKs: fH"9!r< u!aH i: n.J Al @(s"eh e@ v d  #S$#B- #l# '?R;= # &#24 6 6 2$Z# #0U2 3@&B ^#5 6X'7'R4 6!4] 6:e6^P#[EBM #HA%DGH7D6D # 4# *  !"#$%&'()*+,-./012*3>5h]T]]M YUFhop?F>+?FoPp?Fsqє?PM]uM`^?u#t  EF't!"UY%'~P*%4'?"U}2N贁Nk?@dM#&A b(+++&Y}/R/`$B8?V#bo4z @/'/5N }11/"`?Copyrig t(Uc 09uM0c0os0If21r0*Aa0i0n AUlE@ 8sIBe@e0v[@d{"1U%4e,3 7D6%01wEPFXGG' 0U4RD6b1I FJlY)U4FX14#A(!L15?Fd4Mf0:O$}#?)߰=^!8U}?Fz d@ lxrNj$!la.PX7h3URWa?3am:"~vn*&^x%>awE:}JC4` k|| a(d08gh_oo)o{T#______Hv?F d1a|3`[]w|c?7oHv.?FMFa|S3w|\£|oHvJKmc~ea|{ oHv(sna|;6n5coMA}#5G~QUHv>Η4?F@va|+|w|JCMHv,f V3Sa|p )zyBr7椏Hv]DWrGsɾa|k eą﫚l2 +7a|QWgQ-<̾э_q}Ra&8JHvˁ?F~廽a|/ͼhzyoχڡHvkT?FS;a|3zy? HvJbS6̨6a|ω9?OHvS1Ɇb._ja|^~_\@{}R -?Qc&Wa#UwvnnE>wm|<jBmm*'Waɱ`nk}.V̲o~'݌ssK/8}߯mEKx6iBJP1 UB}K^~o>P/6i@A}///* ! %/7/I/[/m//&A2mo~Kf΍4D2=y|Bm;m`(=w}zNmWUȣ(K\S}|t|d\L|L+YlQn0T%%$ċ^QUHQOOOO& AOSOeOwOOO&놮 G3!(E> H}OĹ[DnXXt' U!2h`Xn b_ Pg3~qP3fbAu~R)umooo& ]oooooo|o&g-N+_!eW?1 il}1HiDYH'rg|xMMXjQ%f|ɒ= %;vro]ݓinÞ]S( & yӏ&f@e!`¥ G8M Z³绾hv0W5gS1a8|QXSbW~7mȧՠ~=߬lB|y:߾nuTѺ'9& ˯ݯﯾ+A 7>M%- q?j j dEuk uQ9)?FAަIif[WvpQ鐲9 =~OIѮ]xz~êJ 1CU& E`=U4 Xw׵\ o5|݄ erKv7(\2Έf!9"pϼRѡ{ R}\ $”ގ#q[\ƧGJ Q\BĪ&iZf}#Xr_N|1i"@w\y =~X@/n????Te/?#?5?G?Y?3㒾?Fu}A{ZϹ?$=l?Fߣ؝@鴡s! U/q2 y#iwjQ rt}\\ǟ~nxBt@fP@Q*(g˼ߙ`]N1YY͓___Z_-_?_Q_c_u_՜t?F#|IΝ} C)u18h6o]?F\ v!ۊ5,'pm~ "߹3*_CRڟ8Yq_S˼_}5#7o7I[m ռwc?F䱹!? Uܟ*d4IM}l+m/r?F!zxy4GXM g1rH-odip'ʽh:PF}LHM\БqWČMQyS:UŸԟSewZ=x?FrJS=W+}| 8*_ޛU z0~+WzBJ/pVD W| 2'ؚ5F] 0+!31rߠ߲߯450i;h4MLTJMUs`I}$z8.=u2fC}1 O2V{uf`5MEp4}o7o9lM* g`S}+M?=;??1O'9K&)E_i) QiğuPmk6nɣ{j}Q}L]_h?>nj^$oVLɓ߱ mkVo@0Vp > vCu!9QAdmLG~ >Qo1/C/U/g/V/ /T7} 7վkEA*w}+% B`;$gK*"V2w@96קM-nvSiF!nLLgqNy4~ QUcqÍZS)^MO_OqOO-v??OO'O|9O F1'ߢM UPiPK>´}]"}9'uH0 A5]mI;;#ǧ66hx~r JQa~&qrMi~߭Uȴ߯E~߻ io{oooI_ oo1oCo|Uo$C$g;#,b2?.x}CwMLW1b[̵yx8ج`}eM}oJjRݣS62`M\|"XB}B+<5asݴf);M_|q7;ӱ,_|#Vx~ C.t 1_!; }i틺%~?3]9r?Fn?59?趒;>L]ߛ^_u^VQ$2Ս޻}ǸПƯد3EWi{7TS@f𿟜L)l\m߇WMw~쾟K,:֑Zь?FSƊl\?i@9 <>̩#Տߘ]l\ s?BZBDȕ݇k2PU}l\q3h^ ϞOasυϗϩS#ѣn>x8Bި9ڞMh #sUx=BT.< @?F %婢?2#.5>_9K 罰5L]!g6L}MJA?**=k}1TӦy?F'sO=/ge [A\{9M?F>Y=k X*e S(N $9-g[?ow-$.Tzv )\$?3߇Nx'fl\|z $M}~' /IpLֵ?F˦6k]zFq&>}w^YM|Ԅ?F<']?0#Jh#h /xIkHw1]ǥK]P|G>q2:|@_3Y 1I l\"_@=H?` @/?$?6?H?U //////1bJx?FL!E#ԇ}Se γybE?FcN} Ɗx3c }CRD80}>~^ϝ{ª\3s./M?F^Y⣝iϟʁi{s_4I[H?FJ8oxJJϑ+ϊUϰʉhFq$ >LT ]~~[4xYpŬ0Ex}LYTfxy."ooo#5yP?Fឍ~QTJZvW9 ?FڡGSۈrQ5|橁5ǤˑIGYh($Qw~5tjl@fxF# -?Qy?FOT ʼn@-1ş9Ыva*S?FR?fB V1?ݰف]沛tk{Τ/Yv{ʙޅ݉}1MZѰb$%7I[my -}\SU=cx|[)T*Oў}|d.KnޟR{nIxߒΫ}@B j-2YpM:H`FZT=e-B~yh,?/߯}%/ASew߉ߞyf}x0 Q>zsg=ڟUbw;IS ڀ>3LI~ goSy?~wib`W?YM7+mɼ7V9H3pvsSs/M/}~iV9@gM!&K]oZBdPeF]ʼY mV6| ig5 ח9]#.Sp_xuT&~?Ftm*ԍ`_rYHp O~![ިKmU|ױ.jriwo /F'gy|yrqFYH?߁h}FUϯz5ꞵ,WCˑB`Ԟ`H}sU2w~xoӄڭfDjt! J Hna)(J6w~nv؜p oo1oCo)______ֹ2JI`H~Ͱ f tɾ4EwߗMMpW[̵yط]?F3,棣SLLh ?mu`Xr}Q͘~?Dp);M_ *ֹci+!c) x+Ҳ{&3oٶ[i?FqTƊF,]H'^ <Əٶ H;z0=}F,XQʮ}7$zLٶzTǬGWF,4$ZgsRF{^ j4Z>~[T-G^8?Fz^.H ~L?%aasS Xޟno#ά:HTFF}6CF J'bO[;| ~^-!3EWiKYYx4?F -t[|L?r69BMj-1(?FN^4>Nsz9ET~.Q^=#94o4>ݠ_J? H~&U7`dU \(5Vm H FۄܱykyU} қh?nBN 2DV3ïկ IQY1Q( &&] 6P^JY8}Soj11Qً;]n;P^u񟷱g_ G!.H?Fh\<;Qq7B1b;Y|#Kk{[oY??cgCo;M_q4' IsЪN =͐\h \[Vmq:Dyxj?FYi&?Gbx)U͖֒z/^bA/ F5f;d#\EH{=Xj|8%5 1C Id匽 轫 (Z-q͜DD D58|UBn FxV5?F+A玕R\ȚE Fk$!2 +\HC.P?%ҧnP A @6D .THD: # h0>Th]]9 MP IAUFOѬ?FA^?FMOh?F9d*C?P68R?>$y> n JuM{` ?e ;  Su*Jt'  q3 Pmta{Z_ebN3.JvH?zhǿUv?vh e:Z}.b%{>JU2N?贁N[?)@M#J&A@wbI(bW)U+U+U&J π(<!lJ ?%P?AO"d+b Y)(u/%B #A1A15 `?Co}p rigTwt c)x0]2`09x0Mp0]cn0osh0fv2Rg1rj01av0ih0Wn.x0 l0U n8s2e0en05v0d0:1PY>4#-#,M3 M7#(p0b59 DFXGdG'/2WUA;F%!$a dF$&#l,&}>UhET ]]9 M qAUFr ?F l?F?Fg!ِ3u?P6 L}>   h,(JuM`l? Ek"k6HuZJtW  7OttG97i;y4v'ʚc>JU #<H!-A?^% ?AJb^ @bbbz #"b#$"b$J 2zGz?<@M7#J&(&$%" ;'"*@!EA#5 hy<=A#B115 `?CopyrigT}tk(c)kW20@9kM@]c@os0fBR1r05Aa@i0Wn.k ] lP@U HsTBe(@e@5vf@dH@/"148#-,?3 7#9 i b59 6XGG'0U?RF!y$0 F ZlJ]Uhz 1hy1!5(`A#FB1?F#)Q PV?d"cP΄ ťc(Mb(8"J! jo0o Cƣ8-$DqaE4d\b@d Kc;d .#8磵g.p~?FTHR?PV7 /!i q7ikWPV]DT#3 AMT 5AUFr ?F l?F?Fg!ِ3?P6 .6> JuM` ?IKu8Jt5  Otyt_G97iͅ;y4vʚIA>JU5 J#2zGz?@MJ/&A@bm#ztc a#b{(Wb)+&B#!!5 `?CopyrigTt (c) 0W2009 0M0]c0os f 2R!r 61a 0i n. 0 AUlQ0 8sU2e)0e0vg0dI0!$[#8"8"?6 ?A$/%-/# '6&iie59 &XG}'0UBi6!40I iF}JlJ(>UhiI !!AaR4 Rx J:j]ݿb~)_.S buBqVy3'?F(ËE?P,a,[ /A1YQYV4hA.xeAR +3l4xa@ R#Bsoogrb5%UGD  3 h0TdYYB UFW)eK?FI{Ä?F9n;*Y?FI_tnw?P} tf  f0 D Xu` ?00DDXXl)uvts  < %t"F0" %'ӿp %,'qdX¤U!!'"`?CopyrigPt (c) 2\09 M c oKs f"!r !a i n. Al0 (s 2e e v0d0s"#S$|#B-#l# '?Rw=#&|#466 2|$Z##0U23@{& ^5 FX`7Th]]9 M]AUF?FMHR  h$ JuM` ? 3YY.KuHJtE  0oI~$tq/袋[Dmk.IQ>JU2N贁NK[?<@M#J+&A@b](bk)i+i+i&Jy%#7 ?3#) ?Ac"i+h//%*B%#U1U15 `?Cop rigTt (c)02`090M0c0o%s|0f2{1r~01ua0i|0n.0_ Al0 8Us2e0e0v0 d0"N1YR4#--0" a7&%0bE9 XFX'xG'0UB&!$$a xFJlJ]Uhzs1Z!1(`%#FXxcӔ?F>D [TQ>Q) R "J:!l?FQXP\C\6m/m$BQYsZ_?FFt%7?F{hUuW{ ]3\+B MTT0TDiQ>8aQ4? /Ȟv/x i[? `RT*?D`@ S <oor5%QEUVV__ <#<>e__f{,Vxh`d3rAg 4 ccgd$ymAv AGuPHD: H h4>T]]9 MJUFoc?F24ͷ?F7?FXPq?P6 >JuM` ^?MuJt  ~27It=W]tEIURF]IlGEw|>2N/Nk?<@MJA@gbb ) +R + &J[_ffy) ?/3)"B5 !!5 g`?CopyrigTt (c)6020B0960M.0c,0oKs&0f42%1r(0a1a40i&0n.60 Al|0 ,8s2eT0e,0v0dt0!P$-/ 3  7|&&iie%9 &X7"G'0UkB|&!$%0 "F6JlJAUhh71!!T $#< $M DRkVJ:+;5jB\aQZS kBձQ3aZ9]UYQQU%U2VZ?9=_30B_ZK&DiaX52+_=U"rA $cHD: H h4>T]]9 MJUFoc?F24ͷ?F7?FXPq?P6 >JuM` ^?MuJt  ~27It=W]tEIURF]IlGEw|>5 J2zGzKt?<@MJA@gb%(b3)1+1+T1&B!!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al 0 (s2e e v 0d0!$)[&`h4|9 ?A(:/[)-#K '6i@ie<59 X7"G'0UkB6!40 "F6JlJ(>Uh"I !e1+!AaBc1 $<@ J:?+;5j:\YQ,RS kBձaQ3"U9]MYIQHD: H h4>T]]9 MJUFoc?FXP?F7?F+;5jq?P6 >JuM` ^?MuJt  ~27It=WE]tIURF]Il\tE#>5 J2z_Gzt?<@MJA@gb]%(b3)1+1+1&B !!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al 0 (Us2e e v 0 d0!H$[&h4|9 C?A:/[)Y-# '6iie<59 X7"G'0UkB6!40 "F6Jl*$>Uh @3 !Ie1+!a1 $<@ JU99YUQIYEQHD: H h4>T]]9 MJUFc?F24ͷ?F7?FXP㟸?Pn6 >JuM` ?uJt  ~o2It=W]tEZIRF^IlEw|>5 J2zGzt?)@MJA@gb%(1+b3)O+O&*B!!5 g`?CopyrigTt (c) 2U0 9 M c os f"!rԶ !a i n}. Al 0U (s2e e 5v 0d0! $![h4?6 ?A:/[)e-# ' 6iie<5(9 X7"G_'0UkB6Z!40 "FR6JlJ(>Uh"I !4e1+!ahBO $<1 J:#]Z9=_30:_RS &DQaQ3"U9=YYQMYIQUHLuD" # ;3h0TlaaBJ >UFE3kh?F3?F_T?FU Whu?P vN>uA` ?)u#>t  5@{It=W#H9IRj;Il廤#2zGzt?@9 >A@gbb )bJ )'+'&>yga?|& ? " +'+,5'UN!!g`?Cop] rigXt (c),02d09,0M$0c."0os0f*21r0W1a*0i0n.,0 Alr0 "8sv2eJ0ej"0v0dj0!Ea$-X3 7|&$0fE 6X7G/'0UaB|&%!$e F,J l>aUl~1#1!jQ?FN @ ?[ql#<3ٽECUS(: 9[#UT eW3wU( R@SRQY?I?dXE ^ߑC8_J_ dX _2_=oV_D#OOOOO _vVFmR^\j:=pd_ofI Њ?F0떜lZ$&Оl ?:Ynx3~ ,az kXao41}gK}YWq`m0BTf|UH luD( " #  #A h]0T]]JMUF:%?F6emP?Fiz9vJ?P N&&M %4&U8HCM 9 / 9 / 9 /9/9CWW W WuM` ?% &W ">"R'&j'&~'&'&'&;&SuQ)t  bD%t!2 F_%7J">67šʿ~ U2zGzK?@Mk3{6A@n4b3z0312b808;6Tu3 A A2`?Copyrigxt c)W@209W@MO@c.M@osG@fUBFArI@AaU@iG@n.W@ AlTW@NGsBeu@eM@5v@d@c2AQ}Dl3R[u3-A B?V?4 ?E-Xu3,C ,GVl5O@(E ԕVXgW|2'0UR)V!-TA VZMU@QjQ1i81g\a?F;|~4P~G #W.?a4Hd3.䛵?Fp _`9},jX?F>@ ]3?iFS_lUӧ:ޜ !hރe#ģ[ Q " i!$a4BH:}k_wg0wEuf.29]~4pO˯ô>P|o!S#_`1y;6}wfl{o@opoQQ$Ug@EiE{iooeD?FD ~a]#Q`7\X!?Fw^?FrY?Fo2?P'DT! /3Q9 մ7'||U|6ys r #, Jދ]? $oe?Ň41:/ B"tŇrf5EU>PbtItnɟ ^HY*Gą 2DhaspA]鯱ï ֯z %7I[mOb罞О )E@ͿXP-?;a+ >L &WEW thqϧ"mϏ] 0BTfߪߘW4. Vwp,> i\_XT&8JZ;?FT}:/?$qxE~yE?FA5g`u/V/ 123\?FrMT/?d3~~?FEa,蕱/?CZ@6 De //*/]0T]]JUFp>)/Ep?F2왵??F ɏD,"7?P uM` ?j`fpu#zAtw tnٳ \b "OMG2N贿Nk?@dM#%&A2 bW(be)Jr+r+r&*!ܿ!`?Copy_rigt_(c)2W09M c os f"!r !1a i n}. Al<0U (s@2e0e 5vR0d40 "!3]$#Ry"&#4?6 Q?]"W*s*;'-X# '6% h5 RFX$GrG'0UBű6!4 rFJlU!h#'A(:FYSocg0vr p_y $(4!Z[7?FL30pS a۫YQ?\I`X3U5 Tީ?FʨQYC\f"qoY5U%?Fq$B\F\bJFXz___\Q# __1_C_U_g_VNx?FM=\>ۆ\34=(_V5T?F}\#R)\b@QoVr]?Fc߰#Z}L \$6ԡyqm0:?F u\.Iſ\)?oUU/ASewV?FN,]\\wzV]~?F@(r\F-~Ȩ\(p|ymIxg?F[j| 7+*y\= qmh?Y?FYgR\Aa\ulӏɟ۟UY=Oas!KC4?F}7PM\8HJ|\ HNVh?Fwi@­\A>xAV%+j7ٽ}#E~\I&)5eF=s '7["mSpуdĿֿRtYk}Ȏ~+]~nn)`]͟Cc֦ъ]#.?FPZk+N:2\y_@W߁2ʞ54}d\e҉qm}&?FUfK­thV\9\ލQak}ߏߡ߳~VZwۿ4&b-} ߜ.c|~kd$~Y""A6\lJ(i0(sVTloV?F} \ǀ_?$qmR'%"2?D= bY\r6yލ 2 QYI0`鎍1/ 48Ve[bV$?Fi뭩1?0pS!K;?F"~[:{Q~b?S)qm#|W-?FG~b .f-?R[Ϡ ލ /*/fɾw2Op>)/Ep?Fd(_a9~ {F!_ ~`2DMz2m^Gm}>IލPobotoj ___o o2o̺m@UP1-JO}^^fon l?FSƊ1̓ ;]\OogMNE0A`^?~uݟ$E~ɰ~%^~ =7}ÀMuҳ1?4tx鑡?3:\ `r $6Hj(i?F ڷ1^̄ZϭSԢ%^XP$֧zw]<<E?F6 "Rf2 =s 7Pq=[~1̇1%]?F | .@Rdc)Jl pe},X|4]-Huvzxډj?FwJ%H]ǕDG7t{GtY~Ǔ.PH#T~]?9+T =~B3~-L /=m$+)Hϰʛ&8J\n|JoWx#0z ),?5Uz!xz?Vsf&; `ߌ 猖gߺ8˺A}2!¹diqBZ$@S =u V N,.zu~6J1&ߴEWi{f&~c?Fۿ>4U, }J\1?Fξ9rзX=YR Qm#07q X; I6 =4T37 xU,=A S)d= Yqas{%?Fyx{wmQ7Z6n4Nl]?F7c2Gsj3j뙚;(N8 i<=ۇ4W-ɫ-9)]-?F`x}SoA뙳x@///?"?Rz//////xmYԒ?F0ufx)r蜅وWjFQ1?GUF MDe9gsaEo2I^~T@s@܂]Y/|sMv۶ IY?}lD?B9kP/ߊ.x/ONϋaz`3O__)_;_uOOOOOOxHOB?Fi$0%oAlOo-M_k"W?F[y\x_ ]g蜢, )+b77bћ9}DxZ]Qey=zFVjx/I bvdRo$6HZooooo  p? {,Բ5~}j8>6zB?FӺ ~|g=)s-?F8H~ݖ}T M?lfa=Kh݁5};p/"_f/tl 8at""4FXj| ߬XNT'(/E9?&I/ i {.PvwHkOQ qӟĶO@ߒ#'ߛ[w̜zfdm ___ooŅp______DAL4?FGww̆Ia{VU$oEFem(5tc(yÂ;UKG whsi}2Ca6o? ?F20?æmEyo6\iq,"4ߤsZ4?F"EwH | QUY% (?FZ <#a;:wPID8 n7 ~f* /e'Mǃac5'?Fԫ|>ka?I}|b:QH,>P גT_HZ> )6s ;gLjOhLAݨF #ȱ ^OB   ~|dҴ o@+Xa o8sG/ o P : x ߨ |P d >R 1T Ӵ hV ; "8 ] LY ѻ[ z  z  ʔ] B:  d&/#/5/G/Y/k/}//////// ??1?C?U?g?y???????? OO-O?OQOcOuOOOOOOOO__)_;_M___q________oo%o7oIo[omooooooooo!3EWi{ /ASew h ԁ < bҏ+=Oas͟ߟ'9KH  Xs_ eт ~  n g    , J o"/  Yk_ S HUFDfP h TPYYhUFL&d2?F`0 ?Fx<F BP(c?P? w<lh -^&88Kh;_ 8srY3 8 83 8 838838 &8&381&8E&38Y&8m&38&d*8&38&8&8&]; 63!8!6#8563$8I6&8]63'8q6(86d2)86*8f6+86,8f6-86.8fF/8F08f/F18CF28fWF38kF48fF58F6U789;8fF<8F=8&F>8 V;fV@83VB8fGVC8[VE8boV;VG8ȗVRH8VI8VJ8VK8VL8fM8fN8-fO`8Af;UfQ8fifR8}fS8ffT8fUUVWXZ8ff[8f\8f v]8v^8f1v_8Eva8fYvb8mvd8fve8vf8Hvrg8vQ;vi8vj8k8l8+m8?n8So8gp8{q8r8s8tuvwy8z8{8|8/}8C~8W8k8Ѕ q  0A`Ap4icbptpo\ evq !aE  -QuYda|z !T3Q_`|]1n@` X?W&&.11 T_?xpxx p  pxp%{wxw?w _w xwOw  p JwwxwpxbL&d2鿃`0 +?? {ҿ ȿUGDF # hz8T YY# B{UFL&d2?F`0 ?P} [u`ho?u#   @B<66D^nY^-] [ [ [ [[[&7^"&[6&[J&[^&]r&[&^&[&d^&[&[&[&[6[&6[:6[N6h^b6![v6"[6#[6$[6%[6&[6'[6([F)[F*[*F+[>F,[RF-[fF.[zF/[F0[F1[F2[F3[F4[F5[V6[V7[.V]_BV9[VV:[jV;[~V<[V=[V>[V?[V@[VA[VB[ fC[f^2fEL[FfF[Zf^nfH[fI[fJ[fK[fL[fM[fN[fO[v^"vQ[6vR[JvS[^vT[rvU[vV[vW[vX[vY[vZ[v[[v\[][&^[:_[N`[ba[vb[c[d[e[Ɔf[چg[Q^i[j[*k[>l[Rm[fn[zo[p[q[r[ʖs[ޖt[u[v[w[.x[By[Vz[j{[~|[}[~[[Φ[[[ ު-2<ZZnn&&"&"&6&6&J&J&^&^&r& r&&&<&U&&&&U&&&&U&&66U&6&6:6:6UN6N6b6b6Uv6v666U6666U6666U66FFUFF*F*FU>F>FRFRFUfFfFzFzFUFFFFUFFFFUFFFFUVVVVU.V.VBVBVUVVVVjVjVU~V~VVVUVVVVUVVVVUVV f fUff2f2fUFfFfZfZfUnfnfffUffffUffffUffffUvv"v"vU6v6vJvJvU^v^vrvrvUvvvvUvvvvUvvvvUvvU&&::UNNbbUvvUUƆƆچچUU**U>>RRUffzzUUʖʖUޖޖUU..BBUVVjjU~~UUΦΦU  $BWW.(%6QDUQ?S>S3Q?RdV"qwX[?( 8RLS`S~SSSSıSرS챔SBRS(Sv|Hv|Rv|\v|fv @ 4񸣢vvy|v|v|v|v|v|v|v-|A|U|U$$}|.|8|V|`|j |t|~1|E|Y|mx؆؆|| "|!"|5"| ]"|q"|("|<"|F" |P"ZZ"|d"|n92|M2|a2|u2|2|2|2|Ȗ2|Җ21@1 AQB|eB|"yB|,B|6B|@B`|TB|^ދQUVVVVUVVVVV SRVfff&f0f :fDfNfSRbfUlfvfffUffffUffffUfffvU vv v*vU4v>vHvRvU\vfvpvzvUvvvvUvvvvUvvvvUvU$.8BULV`jUt~UUĆΆ؆U U(2U<FPZUdnxUUȖҖUܖU"U,6@JUT^h "UȦUܦb&l&U&,@UTh|U&&&&U&̶U046UDXR6lUU66U*>URfz6UFFF$FUUjF.UBFVjU~UFFU(1H1R1\1f1p1z1Ä1Î1Ø1â1ì1ö11111111AAA$A.A8ABALAð÷jAtA~AÈAÒAÜAæAðAúAAAAAAAQ QQQ(Q2QBU=Us/?Se?SU?SѲ?SđPÿ@qP?@R?TV?ܲu`W@jqRu`a@r URfchqb?SuLiup`u`@բѠ+u`ѓb&Y faH1crgg`Ÿ /"(úfiic` dFpaMvaf&afl,s  a?5 %` pq q wu`Vis_PR Y. hm!#5N 93N"+b`?Copyr gt  c)M20Y9MM cCo"o Lÿ҆u` ?u~pQ(-DT! @ p@U au@`ba@? ìҀ@^0FH%@Q.FӀOռB\i@?yQ/FQd@ߐRrf i`R$pnst*oM Pe]ف p ջ bmCuE``-u5@`^0aՁ^0d qn pN<udRE %EЎ%$-+h 0JTlaaM>UFN&d2?F`0 ?F|G?Fm]ri?P U>tA`  M?t q۠ FZ>u hu!s7YaMJMRKm? ?M>bA@bKbmbz #e8 ۢ =# b#2O[(ta k-3thk-![(}/tГ/w t/ t/w t/ t?w t&?t;: Ne F;,";&a#68;R;W *P>B m42A2A`?CopyrigXt _(c)i@2dW09i@Ma@c_@osY@fgBXAr[@Aag@iY@nU.i@ 0l@ _HUsBe@e_@v@-d@\2lH#"p# @K4JUlQQQQPA!@@2Ruݯ?F#& hnGHge) ]NUq Z?FG ߄\.r\oMGhEUKar?F3ojp0m]-Eά\?T\iEUe^?F`1<<0mN[ʰ~\on\i^*S__` 5C3\i__B_TFTA'VW@qqx_[QQ JR! J!4J78 h !a!hE!lU]T T!"#$%T__o{?FlӖ|н1|Ϥo} rhQя Me]otv۲ǀFRH0ύ|dr٣|WӍ[Smp"pʍ|q5JK tvp?FZEoZɍ| 9EPڣ||lbtvX9|"@G!/ ւ?F9|H&3|?<=$_4F+\>30m_d 5\i`U0m~ !Qx$(gN/ ?P0wf>nZ?l? r?;{|{*K1?Fݿ K 1wz_ 9*S?FAcM@=orOyg?_P|* /$?F#K i >捵JLJ=|*zJ@w/d;ЍuI@ͺhˏ4pHD: )&# T=h0>Th]]9 Q BUFܷqP?Fԁ43a?F7??FtYOȻ?P Bt`  XM6 ?t׻4n%O__Bu aquo7>KJASTfw?X ?Az@bbb! ( 6f )  '+ ߈?I-Z#g!z A Qu +%/,8)E!'+ k(?r+o?(a4 8) E"#{ #BstG8tU: Ba L>2?!88;D;68?5;D; tj>8LALA1 `?CopyrigTt (c)@2`09@M{@c.y@oss@fBrAru@Aa@is@n.@ 0l@ yHsBe@ey@vZ@d@v2h<M#l#@ M@?4>UhjA6Q>1| L`Fkdj]J}vMjR]M 6)fMB@Wa\ k_稇avCe=ESeR9Y? l`gESeFeabkod iSQޗh~??5@+ c;Ꞗi"2_U3rA/04sCHD: )&# T=h0>Th]]9 Q BUFdHKJAUVJp?X ?Awz@bbb! ( "f Փ'+ ' qq?z A  +/.&68))E! '+ go?W-sU!n*a4 8) "u#{ u#D!st?8tM: Bav L62?!08;<;60?5;<; tb>{8DADA1 `?CopyrigTt (c){@2`09{@Ms@c.q@osk@fyBjArm@Aay@ik@n.{@ 0l@ qHsBe@eq@vZ@d@n2h<M#l#@ M@?]UhzbA.QR61b L` KdjMaQ  6fM{"@Ftnq\[3K_,7e5EGe<\ֽE?Nf[ NA_qd7eEGec6i\m j'f܋h2_UB3rA'04msCHD: )&# T=h0>Th]]9 Q BUF)8/?FFT?F!/$?Fᱝ̻?P Bt`  vNC?t|¢ϛT H0Bu auo7 >JTA0f88v?WYALv@z bbb!'n 6 % )! ! ,+ <?' o?z #a47% =) J""#K#{% (+ ( tQ#BXYщ?A> ?A "+(/+/=/O/a!y:5rl/@ sU10( /???? "?0<2?M{!b 1/Ĝ/*%,"t:"t>TQQ'@`?CopyrigTt (c)FP2`09FPM>PcTh]]9 PB IAUFJ1>?F}?FF(e?F=PFo?P t`  0!?tj$h5q+ tЖZu Mauo8 >    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 ,p )l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ s"?(a490 9_b!#{t0#tN8tϻ: Ua BL2$18KE;F?VEK]; t>B 4AA0`?CopyrigTt _(c)@2`W09@M@c@os@fBAr@Qa@i@nU.@ @l/P HUs3RePe@vEP-d'P2h<M#bl# M/P?]Uhz@AQ1 L@3FO#۲?F?o2zP dj|aW{'8cUF:&x0?F?F?F_'qoO 0Yigull4aj?N~f0c~o+ fEee?F<'?F@]?FwF%ޕol}dQ3ll BXl귺m|?bBhaU~e`ba`?FV ?F?Th ofl?PI3qoikeðl8` |GT?heFnF$OĒ?F o* leowk~y{f~tGg˂a ,8b1;MHD: )&# ;h0>Th]]9 PB IAUFGF?FEs?F+\(?F~@ t?P t`  9`Ik?t{ͻIu -ZrqKZu Mauo8 >    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 ,p )l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ s"?(a40 9 .*2!#{0:#t8'tϻ:Ua L2$18K;F?VEK.; t>B4AA0`?CopyrigTt (c)@2`09@M@c@oKs@fBAr@Qa@i@n.@ @l/P Hs3RePe@vEPd'P2hb<M#l1# M/P?]UhzAQ1 L@3FMbX9?F4ҫP dj}ah8cUF[~K?F|D?F+Xc?F&PRcGoO 0YiM+FllZaj}0%|f0c̭ fEe.V?Fȿ̅)`oSt?F?(X:olGGTll .Xl{e{|rww@haUe:&x0?F%Clw?FAz?F 1vņflux1qoiFA(]`t߼ |~Th]]9 PB IAUFGF?F\Dֳ?F+\(?F~@ t?P t`  9`Ik?t%h2tMu -ZrqKZu Mauo8 >    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 ,p )l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ s"?(a40 9 .*2!#{0:#t8'tϻ:Ua L2$18K;F?VEK.; t>B4AA0`?CopyrigTt (c)@2`09@M@c@oKs@fBAr@Qa@i@n.@ @l/P Hs3RePe@vEPd'P2hb<M#l1# M/P?]UhzAQ1 L@3FMbX9?F4ҫP dj}ah8cUF[~K?F|D?F+Xc?F&PRcGoO 0YiM+FllZaj}0%|f0c̭ fEe.V?Fȿ̅)`oSt?F?(X:olGGTll .Xl{e{|rww@haUe:&x0?F%Clw?FAz?F 1vņflux1qoiFA(]`t߼ |~Th]]9 PB IAUFXIn?FLw¾?F+\(?F-ku?P t`  -k?tZ߅BTu -CmoLZu Mauo8 >    PEJڍU[\/(?&. ?AbbY!z@Ae bbCt c(a4b  b(h#{ h#΍t(tI*#0f88vb.#i L5<1v(&$7/(D%"6/5;0( t.*B#11`?CopyrigTt] c).@2`W09.@M&@c$@os@f,BAr @YAa,@i@n}..@ Alt@U $HsxBeL@e$@v@dl@"h<M#l# Mt@?]UhzAA!J@#FMbX9?F$x0OԛP dj}תa4(SUF[~K?FE?FSc?F?#oO 0YM+Fӱ\*aj,.}a$?# XEU"n?F +?FbEd?F v<olTBJ\LMYBltavXlp@XEUv/?Fpvw;pg?F $hއvol/AD0qYJg ַBl)$ԞXlD?B:XU^F.fّPKk^Rl_[Ei1GAf`dSOq+a,(bvHD: )&# ;h0>Th]]9 PB IAUFXIn?F(?F+\(?F-ku?P t`  -k?t7/;3bu -+CmoLZu Mauo8>    PEJڍU[\/(?&. ?AbbY!z@Ae bbCt c(a4b  # b(h#{ h#΍t(tI*#0f88vb.#i L1<1v(&$7/(D%"6/5;0( t.*B#11`?CopyrigTt] c).@2`W09.@M&@c$@os@f,BAr @YAa,@i@n}..@ Alt@U $HsxBeL@e$@v@dl@"h<M#l# Mt@?]UhzAA!J@#FMbX9?F%x0OԛP dj}תa4(SUF[~K?FE?Fdc?F,?#oO 0YM+Fӱ\*aj ,.}a?# XEU"n?F{ +?F(%/Nd?F<olTBJ\MYBlU{XlpDc@XEUv/vw;pg?F^$hއ?Fvol/AD0qYf ַBls$ԞXl+?B:XU^F.fّPyKk^Rl_[Ei1GAf`dSOq+a,(bvHD: )&# T=h0>Th]]9 Q BUF贷F$?Ft\@?F\HRq?FƯK7?P Bt`  x#?tK#ll$nZVBu auo7>JA]^'? ?Az@b ( 6f  )ϓb= + _? ' 88o?z A s +=  /)/;/M$[+["-j!Q U1[!x(ar4 ) "'}# }#BtΜQ8t_:Ba~ LH2!B8;N;6B?5;.N; tt>8VAVA `?CopyrigTt (c)@2`09@M@c@oKs}@fB|Ar@Aa@i}@n.@ 0l@ HsBe@e@v@d@2hb<M#l1# M@?4>UhuQuQPtA@Qj LZFχϰ 7j bL\2] 6R1bMB:MbPdc Ɵmdb`GeGEWe$oZ\aibvIGeU@Vϰ+@?F23<~pk_xu jlTh]]9 Q BUF#/?FKGY?F\HRq?FƯK7?P Bt`  ~B?tIH#ll$nZVBu acuo77AJA]^'? ?Az@b ( 6f  )ϓb= + _? ' 88o?z A s +=  /)/;/M$[+["-j!Q U1[!x(ar4 )] "'}#{t }#BtNQ8t_:Ba~ PLH2!B8;N;Q6B?5;N; tt>8VAVA `?CopyrigTt (c)@2`09@M@c@o%s}@fB|Ar@Aua@i}@n.@U 0l@ HsBUe@e@v@d@ 2h<M#l# MT@?4>UhuQuQtA(@QH1j LZFهgϰ 7j bL\G6] 6S-fMB:MbPdc mdb`GeGEWe$oˏZ\ai?bvIGeUWeVϰ+@?Vpk_xu j aGeWe _ooh2K]u:3rA 4s2HD: )&# T=h0>Th]]9 Q BUF/ ֛9?FD6Hr?F\HRq?FƯK7?P Bt`   a1?t -_9#ll$nZVBu auo7>JA]^'? ?Az@b ( 6f  )ϓb= + _? ' 88o?z A s +=  /)/;/M$[+["-j!Q U1[!x(ar4 )] "'}#{t }#BtNQ8t_:Ba~ PLH2!B8;N;Q6B?5;N; tt>8VAVA `?CopyrigTt (c)@2`09@M@c@o%s}@fB|Ar@Aua@i}@n.@U 0l@ HsBUe@e@v@d@ 2h<M#l# MT@?4>UhuQuQtA(@QH1j LZFهgϰ 7j bL\] 6-fMB:MbPdc Ɵmdb`GeGEWenZ\aiavIGeUWeVϰ+@?Vpk_xu j aGe@We_ooh2Kt]u3rA 4s2HD: )&# T=h0>Th]]9 Q BUF[@#?F\O?Fo?FƯK7?P Bt`  ?tJ8Xj$nZVBu auo7>JA]^'? ?Az@b ( 6f  )ϓb= + _? ' 88o?z A s +=  /)/;/M$[+["-j!Q U1[!x(ar4 )] "'}#{t }#BtNQ8t_:Ba~ PLH2!B8;N;Q6B?5;N; tt>8VAVA `?CopyrigTt>(cu)>2`09>uM@c@os}@IfB|Ar@Aa@]i}@n.> 0Ul@ HsBe@e@v@d@B2h,<M#l# M@?U4>UhuQuQtAJ@QH1j LZFهϰ 7j bL\] 6-fMB:ʿMbPdc 2Ngodb`GeGEWe$oZ\aibvIGeUWe4?Vpku j aGeWe_ooh2K]u3rA 4s2HD: )&# ;h0>Th]]9 PB IAUF?FË.5?FQ?F?P t`  ?{R   ] EJ]_DRb(?&. ?Az@bY(e 6f h )ϓb k+ _?Z'e 88o?ze Ae s[+ h g/y//$# L:5 /sUK1*a4 9 2(E#{ #t8tϤ:U a L2T18K;6Ԉ?@EK; tͺ>B40AA0`?CopyrigTwt c)@]2`09@M@]c@os@fBRAr@Aa@i@Wn.@ 0lPU HsRe@e@v/PdP2h<M#l#A MP? <>Uh$QQ(]A(Q1 LZ3;'xP 7jbbFbL7a 6{fM8cUFnDdTh]]9 PB IAUF4{"?F=N?FQ?F?P t`  ^}W;o?tQxČ( 뾅@l* 9u auo8>   ] EJ]_DRb(?&. ?Az@bY(e 6f h )ϓb k+ _?Z'e 88o?ze Ae s[+ h g/y//$# L:5 /sU"K1*a4 9 2(E#{ #t8tϤ:U a L2T18K;6Ԉ?@EK; tͺ>B40AA0`?CopyrigTwt c)@]2`09@M@]c@os@fBRAr@Aa@i@Wn.@ 0lPU HsRe@e@v/PdP2h<M#l#A MP? <>Uh$QQ(]A(Q1 LZ3;'xP 7jbbFbL7a 6{fM8(a?nDFF!@~qWoO 0dTc I\rdcd bjUkgaPbeEef"v?Fr6d?F?kĀqo`OivddlXr`tF0sK|٢jr3t!KU:G}?{]rLl} ]|q3xnTrg?F<ے7pooZgtfio,V|=] 5ve&1?Fpn?FTh]]9 PB IAUFGC<-?F f?FQ?F?P t`  L?RD)o?tC%)Č( 뾅@l* 9u auo8>   ] EJ]_DRb(?&. ?Az@bY(e 6f h )ϓb k+ _?Z'e 88o?ze Ae s[+ h g/y//$# L:5 /sU"K1*a4 9 2(#{ #st8tϥ:RUa L21*8K;6?@EK; tR>B4AA0`?CopyrigTt c)@2`09@M@c.@os@fBAr@Aa@i@n.@ 0lP HsRe@e@vZ/PdP2h<M#l# MP? < >Uh$QQ]AQ1 LZ3;'xP 7jbUbFb7a 6{fM8cUFnDFK!@?FDqWoO 0dTc I\addǼbjUkgabeE(aFjv?Fr6d?FkĀq o`Oi^j^r`t0sKÊ#|pr9t!KU:M}{]r,Ll}]|9xLufTrg?F<ے7vodObdcZgtfi,V #|=c ;vLu&1?Fpn?FTh]]9 PB IAUFĊ?F$n6b?FQ?F?P t`  ro?t,Č( 뾅@l* 9u auo8dA d  ] EJ]_DRb(?&. ?Az@bY(e 6f h )ϓb k+ _?Z'e 88o?ze Ae s[+ h g/y//$# L:5 /sU"K1*a4 9 2(E#{ #t8tϤ:U a L2T18K;6Ԉ?@EK; tͺ>B40AA0`?CopyrigTwt c)@]2`09@M@]c@os@fBRAr@Aa@i@Wn.@ 0lPU HsRe@e@v/PdP2h<M#l#A MP? <>Uh$QQ(]A(Q1 LZ3;'xP 7jbbFbL7da 6{fM8(a?D +F2|>?FW@WoO 0j?rdcd bj{^WeabeEef"v?Fddd?F܃qo`OivddlXr`tuqE|E:jr3t!KU:G}{]rLl}]|q3xngqrg?F~pooZgt_ML|\ 5ve&1?FWf?F?#0b|[m낪 z'oǵ(|F$$!ayTh]]9 Q BUF贷F$?FlIJ?F\HRq?F#o˯Z?P Bt`  x#?tnZ/J#ll#VBu auo7>JTA0f88v?WYϳAjLv@z bbb!' 6Y % )! ! ,+ <?' o?z #a47% @& J"#K#({% (+ (G t#Beı?A>L ?A"&"&$/*8%,"t:"t>  A A6 `?CopyrigTt _(c)D@2`W09D@M<@c:@os4@fBB3Ar6@oAaB@i4@n}.D@ Al@U :HsBeb@e:@v@d@2h/1<M#l#@7? M@?(>Uh7E P+AA!{ L:F A7<6j% bRzg9<2 "\MbPdS mT W5U6ik0YaYvq 2HD: )&# T=h0>Th]]9 Q BUF#/?F ?F\HRq?Fn˯Z?P Bt`  ~B?t6#ll#VBu acuo7hAJTA0f88v?WYϳAjLv@z bbb!' 6Y % )! ! ,+ <?' o?z #a47% =) J"#K#({% (+ (G t#Beı?A>L ?A"&"&$/*8%,"t:"t>  A A6 `?CopyrigTt$(c)$2`09$M<@c:@o%s4@fBB3Ar6@oAuaB@i4@n.$_ Al@ :HUsBeb@e:@v@-d@2`h/1<M#l1#7? PM@?(>Uh7E +AA!{ L:F<F6j% bRzg9<2 "\7MbPdS mT W5UO?6ik0YaYvq 2HD: )&# T=h0>Th]]9 Q BUF/ ֛9?FT?F\HRq?Fn˯Z?P Bt`   a1?t#ll#VBu auo7>JTA0f88v?WYϳAjLv@z bbb!' 6Y % )! ! ,+ <?' o?z #a47% =) J"#K#({% (+ (G t#Beı?A>L ?A"&"&$/*8%,"t:"t>  A A6 `?CopyrigTt _(c)D@2`W09D@M<@c:@os4@fBB3Ar6@oAaB@i4@n}.D@ Al@U :HsBeb@e:@v@d@2h/1<M#l#@7? M@?(>Uh7E P+AA!{ L:F6j% bT ü2 "\MbPdS mT W5UO6ik0YaYvq 2HD: )&# T=h0>Th]]9 Q BUF[@#?Flo]?Fo?Fn˯Z?P Bt`  ?tz6,JJ\8Xj#VBu acuo7AJTA0f88v?WYϳAjLv@z bbb!' 6Y % )! ! ,+ <?' o?z #a47% =) J"#K#({% (+ (G t#Beı?A>L ?A"&"&$/*8%,"t:"t>  A A6 `?CopyrigTt>(c)>2`09>M<@c:@o%s4@fBB3Ar6@oAuaB@i4@n.>_ Al@ :HUsBeb@e:@v@-d@2`h/1<M#l1#7? PM@?(>Uh7E +AA!{ L:F<F6j% bRzg9<2 "\ʩ7MbPdS 2NoT W5UO?6ik0YaYvq 2UHT5D B &# T>h0JTtiiM ENUFlQ?Fڋ?FPaW?F ru?P WNtQ` c͕.:7?tU)oni8;(\I2-nNuj mu){E0f88wv?AVQ Ӎ!@#b#m@b  0#  #W(3 (o+&T" #t#NĽ/?. ?M"&$a%$$,/>*L%i,T"tΞ*T"tR.R11#`?Copyrig`t (c)02l090M0c0os0f21r01a0i0n.0 Al@ 8sBe0e0v0@d@"Vt!X#xB #/ @T,UtE1UA-!@nZ pvm?S׮(%UQG@Y9"S\FkV5%UЗn@‹Pهϰ=\WQS\OXbiTQY%_7_I_[_DQOOOO__^̔ԍ?f Q́)f@vVP|?5^BlӿIY:6Xl?Ib ʏ܏EABTfxF\HRqCk?-q_WaW?ϰ+@"Bl!H,BXQnB)fFޖBoT[inJ\ۙgyAHD: )&# T=h0>Th]]9 Q BUFhY?FlIJ?F&1?F3(e?P Bt`  6n?tҝw~m4tMuVBu auo7>JAS`? ?Az@bbb! ( 6 )  '+ ߈?/I-Z#mg!z A " ././@/R+,g/y'sU1,ar4 )] "#{t #BtNg8tu:Ba PL^2!X8;d;Q6X?E;d; t͊>8lAlA `?CopyrigTt (c)@2`09@M@c@o%s@fBAr@Aua@i@n.@U 0l@ HsBUe@e@v@d@ 2h<M#l# MT@?4>UhQQA(VQ^1| LZFX} g 7j b2ɶGOR] 6SCfMB:ZMbXdc $I$I܍+d `2aa]Eme'la'iL.G]eU@9/$E?;FslAka,dHּgmeoo(oh2gyu3rA 4s2HD: )&# T=h0>Th]]9 Q BUFy?F.޺s?F&1?F3(e?P Bt`  7 ?tN]m4t_MuBu aquo7>KJAS`?X ?Az@bbb! ( 6f )  '+ ߈?I-Z#g!z A " ././@/R+g/y'sU1,a4 ) ."#{ :#Btg8tu:B@a L^2!X8;d;6X?E;d; Kt͊>8alAlA `?CopyrigTt (c)@2`09@M@c@os@fBAr@Aa@i@n.@ 0l@ HsBe@e@v@d@2hX<M#l # M@?4>UhQQAVQ^1| LZFX} 3 7j b2ɶOK] 6SCfMB:ZMbXdc $I$I܍+d 2aa]Emekla'i.]eU@;0$E?FTh]]9 Q BUF߹e?F4jߤ?F!?FTUUUɺ?P Bt`  ?tiqn= ףc?ckBu1 ,duon7>)JAUVJp? ?Awz@b_bb! (݉ " '+ ' qq?z A  +S/.&68))E! '+ g?uW-sUUn*a4 8) "u#{ u#D!tΜ?8tM:Bav L62?!08;<;60?5;.<; tb>{8DADA1 `?CopyrigTt (c){@2`09{@Ms@cq@oKsk@fyBjArm@Aay@ik@n.{@ 0l@ qHsBe@eq@v@d@n2hb<M#l1# M@? Uh,cQcQ] '1PbA.Q61b L`w"?FMDA dj? |m cuۡ'1 6!1fM{":F$3<6d kS=ѣ<n2{!5E[nLa vogaKeE[eV_@cbc g@]amr\GDž}iNu?FS%f|]tElFTh]]9 Q BUFtx?F/!?FTUUU?P Bt`  K_?t)C= ףc?cZBu auo7[>ʜJAUVJp? ?Awz@bbWb! ( 7 " '+ ' qq?z A  +/.&68))E! '+ g?W-sUUn*a4 8) ."u#{ {8aDADA1 `?CopyrigTt (c){@2`09{@Ms@cq@osk@fyBjArm@Aay@ik@n.{@ 0l@ qHsBe@eq@v@d@n2hX<M#l # M@? Uh,@cQcQ] '1bA.Q61b L`zw"?FDA dj O|m cuۡi'1 61fM{":F$3<6d kS=ѣ<n2{!5E[nLah vogaKeE[eV_cbPc g@]amr\Dž}iNu?FS%f|]tElF<2PhQp[" |"*`KeQitVl:qid?5hQ@J_nohU2t3rA 4n2HD: )&# T=h0>Th]]9 Q BUFiv?F{<?FU?F3z[j˺?P Bt`  y]?thS&XRBu ,duo7oAJAa^!? ?Az@bbb! (n 6  )  '+ g~X?I-Z#!g!z A " ,/,/>/P-[ן+g/y'"ي,a4 ) "!E#{ #Btg8tu:Ba L^2!X8;d;6X?Eu;d; t͊>)8lAlA `?CopyrigTt (c)@]2`09@M@]c@os@fBRAr@Aa@i@Wn.@ 0l@U HsBe@e@v@d@2h<M#l#A M@?8>UhoQQ]AJVQ^1| L@}?F! dj ٯla6?ztB: 7d /kyԷ&Dh]EWemkp+ɉ 5d}bGeUWeFBϰ+@ol0juMDhnMbX0j`(DhnC<o+o"<EgUoo6o9HD: )&# T=h0>Th]]9 Q BUFT1#E2H?F]&UaU?F3z[j?P Bt`  ?t1:&XRZBu auo7[!>ʜJAa^Ė? ?Az@bbWb! ( 7 6 )  '+ g~X?I-Z#!g!zV A " ,/,/>/P-[O+g/y',*a4 ) "!#{ #Bstg8tu: Ba L^2!X8;d;6X?E;d; t͊>8lAlA `?CopyrigTt (c)@2`09@M@c.@os@fBAr@Aa@i@n.@ 0l@ HsBe@e@vZ@d@2h<M#l# M@?8>UhoQQ]AVQ^1| L@Ͼ?F! dj ٨la6ztB: 7d /kyԷ&Dh]EWemkp+ɉ 5d}bGeUWeFBϰ+@ol0juMDhnH?MbX0j`DhWef9o-ai qGeUoo$o6o3UHLD )&# R>h 0JTlaaM>UFObFd0?Fgj?F0U?F_gw?P >tA`  N+ru?t sM׵01,_Œ X">u eu!s7-"JɅJUU?HA9 j@7tt7 b:*H&tH  th*Nĵ) ?MB"b;)H&e8H m 3 H -US4o?FPjj?6ֈ@!QpoĬگ eoĩ́ F o 01G}}϶@b@mp?#nʼPV]O߸uy\l2_+ʦE}@p5"iРo~e*al|ٍşןHD: )&# ;h0>Th]]9 PB IAUF\6:?F}?FF(e?F=PFo?P t`  @?tP[5q+ tЖZu Mauo8#>    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 ,p )l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ s"?(a40 9 .*2!#{0:#t8'tϻ:Ua L2$18K;F?VEK.; t>B4AA0`?CopyrigTt (c)@2`09@M@c@oKs@fBAr@Qa@i@n.@ @l/P Hs3RePe@vEPd'P2hb<M#l1# M/P?]UhzAQ1 L@3FO#۲?Fo2zP dj|aW{ޓ8cUF:&x0?F?F?FX'qoO 0Yifull4ajS?ON~f0c?h+ fEeޖe?F<'?F@]?F\F%ޕol}dQ3ll BXy귺m|ԇbBhaUe```?FV ?F?Th ofl?PI3qoijeðl.` |=T?heFnF$OĒ?F o* leowk~y{f~tGg˂a ,8b1;MHD: )&# ;h0>Th]]9 PB IAUF\6:?Fx?FF(e?F=PFo?P t`  @?t%5q+ tЖZu Mauo8$>    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 ,p )l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ s"?(a40 9 .*2!#{0:#t8'tϻ:Ua L2$18K;F?VEK.; t>B4AA0`?CopyrigTt (c)@2`09@M@c@oKs@fBAr@Qa@i@n.@ @l/P Hs3RePe@vEPd'P2hb<M#l1# M/P?]UhzAQ1 L@3FO#۲?Fo2zP dj|a{ޓ8cUF:&x0?F?F?F'qoO 0Yifull4ajK?ON~f0c?+ fEeޖe?F<'?F@]?FsF%ޕol}dQ3ll BXyR귺m|bBhaUe```?FV ?F?Th ofl?PI3qoiGkeðl?2` ,yFT?heFnF*OĒ?F o* leowk~yf~tGg˂a ,8b1;MHD: )&# T=h0>Th]]9 Q BUFL&d?F`0?F(\µ^S?P Bt`  {Go?tNV yAP FBub ,duo7%>RJ[0U?<ALv@tt7 }b6*D&tD  td*JBı) ?A>"b7)D&a4D  V3 D 8/td/tRy.x1x1`?CopyrigTt (c)02`090M0c0os0f21r01a0i0n.0 Al0 8s2e0e0v @d0"h0!<M#l#/MlP> @?UhLAA]R 1 P1"7Ж1bA>!J`oO2z[ dja_q:z׍ Q 6VMB@챝/P\`_m;E,Ui5Uޖ?FQ[5lf\VU'EUY2Ruݯ?FU]˖7sf\pdѣSYUWfe _zx]݅om{ZcXUFRP\g[)JXAp| rhQ#5 IXAYaLPւ?FتcP\T f\3$sXAp"۲ ElU1YA-k?FFoZP\fyf\!XAYX%?F8K7P\{ 䘷f\&SAY&1l?Fr>|]P\-]qiYip~ X1#g~jt-? XAY?F ףp=P\' f\?P=Rw㹥X'RXT}7vP\__/vnTpljlX7U/?$?vQ[E7Ժf\wUQY|>qh|P\4GN"MDX U29_KU#rA0$@CHD: )&# T=h0>Th]]9 Q BUF8?Fā43?F7??FtYOȻ?P Bt`  1=o2?!88;D;68?5u;D; tj>)8LALA1 `?CopyrigTt (c)@]2`09@M{@]cy@oss@fBRrAru@Aa@is@Wn.@ 0l@U yHsBe@ey@v@d@v2h<M#l#A M@?4>UhkQkQjA6Q>1| L`Fdj]JK}vM41R] 6)fMB@Wa\ k_程avCe=E~SeR9Y? lgESeFeabkod i?SQޗh~?5@+ c;ꉞi2_U3rA/04sCHD: )&# T=h0>Th]]9 Q BUF2B9?FZ&?F'l?F{Cƻ?P Bt`  ,i?t('̺㯝4\YDrVBu auo7'>JAUVJp? ?Awz@bbb! ( " '+ ' qq?z A 9 +/.&68))E! '+ g?W-sU"!n*a4 8) "u#{ u#D!t?8tM:Bav L62?!08;<;60?5u;<; tb>){8DADA1 `?CopyrigTt (c){@]2`09{@Ms@]cq@osk@fyBRjArm@Aay@ik@Wn.{@ 0l@U qHsBe@eq@v@d@n2h<M#l# M@?]UhzbA.Q61b L` djM"aQ  6fM{"@Ftnq\[3K_,7e5EGe<\ֽE?Nf[ N_qd7eEGec6i\m jOf܋h2_U3rA'04msCHD: )&# T=h0>Th]]9 Q BUF] ?F t5?F!/$?Fᱝ̻?P Bt`  "?t4@+ϛ׊T, H_0Bu aquo7(>KJTA0f88v?WYgAL5v]@z bbob!'݉ 6 ,% )! ! ,+ <?' o?z #a47% =) J"E#K#{% (+ ( t#BXY?A> ?A "+(/+/=/O/a!y:5r=l/@ sU10( /???? "0<2(?M{!b 1//*%,"st:"t>0QQ'@`?CopyrigTt (cu)FP2`09FPuM>PcTh]]9 PB IAUFR?F}Y?FF(e?F=PFo?P t`  (\#?tƯ.5q+ tЖZu Mauo8)>    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 p l l w+ g?-#U!׷!zme Ae [+j/|//-g#+ s"?(a4\0 9 *2!#{0#t8tϻ:񧂍Ua PL2$18K;QF?VEK; t>B4AA0`?CopyrigTt (c)@2`09@M@c@o%s@fBAr@Qua@i@n.@U @l/P Hs3RUePe@vEPd'P 2h<M#l# M/P?]UhzPAQ1 L@3FO#۲?FoO2zP dj|aW{8cUF:&x0?F?F?F_?'qoO 0Yigull4aj?N~f0co+ fEeޖe?F<'?F@]?FwF%ޕol}dQ3ll BXlﷺm|bBhaUeߔ`ba`?FV ?FTh oflPIϮ3qoikeðl8` |GT?heFnF$OĒ?F o* leowky{ftGg˂a,8b1;MHD: )&# ;h0>Th]]9 PB IAUFpX?F&U?F+\(?F~@ t?P t`  (TJ?t[uᯜ(=u -ZrqKZu Mauo8*>    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 ,p )l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ s"?(a40 9 .*2!#{0:#t8'tϻ:Ua L2$18K;F?VEK.; t>B4AA0`?CopyrigTt (c)@2`09@M@c@oKs@fBAr@Qa@i@n.@ @l/P Hs3RePe@vEPd'P2hb<M#l1# M/P?]UhzAQ1 L@3FMbX9?F4ҫP dj}ah8cUF[~K?F|D?F+Xc?F&PRcGoO 0YiM+FllZaj}0%|f0c̭ fEe.V?Fȿ̅)`oSt?F?(X:olGGTll .Xl{e{|rww@haUe:&x0?F%Clw?FAz?F 1vņflux1qoiFA(]`t߼ |~Th]]9 PB IAUFpX?F*g?F+\(?F~@ t?P t`  (TJ?t4%u -ZrqKZu Mauo8+>    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 ,p )l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ s"?(a40 9 .*2!#{0:#t8'tϻ:Ua L2$18K;F?VEK.; t>B4AA0`?CopyrigTt (c)@2`09@M@c@oKs@fBAr@Qa@i@n.@ @l/P Hs3RePe@vEPd'P2hb<M#l1# M/P?]UhzAQ1 L@3FMbX9?F4ҫP dj}ah8cUF[~K?F|D?F+Xc?F&PRcGoO 0YiM+FllZaj}0%|f0c̭ fEe.V?Fȿ̅)`oSt?F?(X:olGGTll .Xl{e{|rww@haUe:&x0?F%Clw?FAz?F 1vņflux1qoiFA(]`t߼ |~Th]]9 PB IAUF$?Fy}?F+\(?F-ku?P t`  p&k?tl    PEJڍU[\/(?&. ?AbbY!z@Ae bbCt c(a4b  # b(h#{ h#΍t(tI*#0f88vb.#i L5<1v(&$7/(D%"6/5;0( t.*B#11`?CopyrigTt] c).@2`W09.@M&@c$@os@f,BAr @YAa,@i@n}..@ Alt@U $HsxBeL@e$@v@dl@"h<M#l# Mt@?]UhzAA!J@#FMbX9?F$x0OԛP dj}תa4(SUF[~K?FE?FSc?F?#oO 0YM+Fӱ\*aj,.}a$?# XEU"n?F +?FbEd?F v<olTBJ\LMYBltavXlp@XEUv/?Fpvw;pg?F $hއ?FLvo~l/AD0qYJg ַBl)$ԞXlDB:XU^F.fّPKk^Rl_[Ei?1GAf`d?Sq+abvHD: )&# ;h0>Th]]9 PB IAUF$?FQ?F+\(?F-ku?P t`  p&k?t u -+CmoLZu Mauo8->    PEJڍU[\/(?&. ?AbbY!z@Ae bbCt c(a4b  # b(h#{ h#΍t(tI*#0f88vb.#i L5<1v(&$7/(D%"6/5;0( t.*B#11`?CopyrigTt] c).@2`W09.@M&@c$@os@f,BAr @YAa,@i@n}..@ Alt@U $HsxBeL@e$@v@dl@"h<M#l# Mt@?]UhzAA!J@#FMbX9?F%x0OԛP dj}תa4(SUF[~K?FE?Fdc?F,?#oO 0YM+Fӱ\*aj ,.}a?# XEU"n?F{ +?F(%/Nd?F<olTBJ\MYBlU{XlpDc@XEUv/vw;pg?F^$hއ?Fvol/AD0qYf ַBls$ԞXl+?B:XU^F.fّPyKk^Rl_[Ei1GAf`dSOq+a,(bvHD: )&# T=h0>Th]]9 Q BUFt[@#?FX J?F\HRq?FƯK7?P Bt`  =0[?t@'#ll$nZBu duo7.>JA]^'? ?Az@b ( 6f  )ϓb= + _? ' 88o?z A s +=  /)/;/M$[+["-j!Q U1[!x(ar4 )] "'}#{t }#BtNQ8t_:Ba~ PLH2!B8;N;Q6B?5;N; tt>8VAVA `?CopyrigTt (c)@2`09@M@c@o%s}@fB|Ar@Aua@i}@n.@U 0l@ HsBUe@e@v@d@ 2h<M#l# MT@?4>UhuQuQtA(@QH1j LZFهgϰ 7j bL\GB] 6S-fMB:MbPdc mdb`GeGEWe$oˏZ\ai?bvIGeU@Vϰ+@_?F23Th]]9 Q BUF偃?F?F\HRq?FƯK7?P Bt`  Xkw?t[I2#ll$nZVBu auo7/>JA]^'? ?Az@b ( 6f  )ϓb= + _? ' 88o?z A s +=  /)/;/M$[+["-j!Q U1[!x(ar4 )] "'}#{t }#BtNQ8t_:Ba~ PLH2!B8;N;Q6B?5;N; tt>8VAVA `?CopyrigTt (c)@2`09@M@c@o%s}@fB|Ar@Aua@i}@n.@U 0l@ HsBUe@e@v@d@ 2h<M#l# MT@?4>UhuQuQtA(@QH1j LZFهgϰ 7j bL\] 6-fMB:MbPdc Ɵmdb`GeGEWe$oZ\aibvIGeUWeVϰ+@?Vpk_xu j aGe@We_ooh2Kt]u3rA 4s2HD: )&# T=h0>Th]]9 Q BUF͜?Fil8?F\HRq?FƯK7?P Bt`  W׎?tt^ #ll$nZVBu acuo7aJ?JA]^'?X ?Az@bu ( 6  )b= + ? ' 88?z A  +=  /)/;/M$[+["-j!Q U1[!x(a4 ) ."'}#{ :}#BtQ8t_:B@a~ LH2!B8;N;6B?5;N; Ktt>8aVAVA `?CopyrigTt (c)@2`09@M@c@os}@fB|Ar@Aa@i}@n.@ 0l@ HsBe@e@v@d@2hX<M#l # M@?4>UhuQuQtA@QH1j LZFه3 7j bL\`] 6-fMB:MbPdc gmdb`GeGEWenZ\aiavIGeUWeVϰ+@?Vpk_xu j aGeWe_ooh2K]u3rA 4s2HD: )&# T=h0>Th]]9 Q BUF[@#"?F`>?Fo?FƯK7?P Bt`  ?tS'8Xj$nZVBu auo71>JA]^'? ?Az@b ( 6f  )ϓb= + _? ' 88o?z A s +=  /)/;/M$[+["-j!Q U1[!x(ar4 )] "'}#{t }#BtNQ8t_:Ba~ PLH2!B8;N;Q6B?5;N; tt>8VAVA `?CopyrigTt>(cu)>2`09>uM@c@os}@IfB|Ar@Aa@]i}@n.> 0Ul@ HsBe@e@v@d@B2h,<M#l# M@?U4>UhuQuQtAJ@QH1j LZFهϰ 7j bL\] 6-fMB:ʿMbPdc 2Ngodb`GeGEWe$oZ\aibvIGeUWe4?Vpku j aGeWe_ooh2K]u3rA 4s2HD: )&# ;h0>Th]]9 PB IAUFv?Fo]j?FQ?F?P t`  Smo?tT.qČ( 뾅@l* 9u duo82>   ] EJ]_DRb(?&. ?Az@bY(e 6f h )ϓb k+ _?Z'e 88o?ze Ae s[+ h g/y//$# L:5 /sU"K1*a4 9 2(E#{ #t8tϤ:U a L2T18K;6Ԉ?@EK; tͺ>B40AA0`?CopyrigTwt c)@]2`09@M@]c@os@fBRAr@Aa@i@Wn.@ 0lPU HsRe@e@v/PdP2h<M#l#A MP? <>Uh$QQ(]A(Q1 LZ3;'xP 7jbbFb7@c 6{fM8cUFnDdTh]]9 PB IAUFSQ=?F{3?FQ?F?P t`  4o?tPǭ\"Č( 뾅@l* 9u auo83>   ] EJ]_DRb(?&. ?Az@bY(e 6f h )ϓb k+ _?Z'e 88o?ze Ae s[+ h g/y//$# L:5 /sU K1(a4 9 2(E#{ #t8tϤ:U a L2T18K;6Ԉ?@EK; tͺ>B40AA0`?CopyrigTwt c)@]2`09@M@]c@os@fBRAr@Aa@i@Wn.@ 0lPU HsRe@e@v/PdP2h<M#l#A MP? <>Uh$QQ(]A(Q1 LZ3;'xP 7jbbFbL7a 6{fM8(a?nDFF!@~qWoO 0dTc I\rdcd bjUkgaPbeEef"v?Fr6d?F?kĀqo`OivddlXr`tF0sK|٢jr3t!KU:G}?{]rLl} ]|q3xnTrg?F<ے7pooZgtfio,V|=] 5ve&1?Fpn?FTh]]9 PB IAUF!?F?FQ?F?P t`  + {o?tn&Č( 뾅@l* 9u auo84>   ] EJ]_DRb(?&. ?Az@bY(e 6f h )ϓb k+ _?Z'e 88o?ze Ae s[+ h g/y//$# L:5 /sU"K1*a4 9 2(E#{ #t8tϤ:U a L2T18K;6Ԉ?@EK; tͺ>B40AA0`?CopyrigTwt c)@]2`09@M@]c@os@fBRAr@Aa@i@Wn.@ 0lPU HsRe@e@v/PdP2h<M#l#A MP? <>Uh$QQ(]A(Q1 LZ3;'xP 7jbbFbL7a 6{fM8cUFnDFK!@?FDqWoO 0dTc I\addbjUWkgabeE(aFjv?Fr6d?FkĀAqo`Oi^j^r`t0sK#|pr9t!KU:M}{]rYLl}]|9xLufTrg?F<7vodObdcZgtfi,V#|=c ;vLu&1?Fpn?FTh]]9 PB IAUFĊ?F)lIJ?FQ?F?P t`  o?t\Č( 뾅@l* 9u auo85>   ] EJ]_DRb(?&. ?Az@bY(e 6f h )ϓb k+ _?Z'e 88o?ze Ae s[+ h g/y//$# L:5 /sU"K1*a4 9 2(E#{ #t8tϤ:U a L2T18K;6Ԉ?@EK; tͺ>B40AA0`?CopyrigTwt c)@]2`09@M@]c@os@fBRAr@Aa@i@Wn.@ 0lPU HsRe@e@v/PdP2h<M#l#A MP? <>Uh$QQ(]A(Q1 LZ3;'xP 7jbbFbL7a 6{fM8(a?D +F2|>?FW@WoO 0dTc rdcd bj{^ea͂beEef"v?Fddd?F܃q o`OivddlXr`tuqEÊ|:jr3t!KU:G}{]r,Ll}]|q3xngqrg?F~pooZgtML|\ 5ve&1?FWf?F#0bĂ|[m낪 z'ǵ(|F$$!ayTh]]9 Q BUFt[@#?Fyوe??F\HRq?F#o˯Z?P Bt`  =0[?t&0N#ll#Bu duo76>JTA0f88v?WYϳAjL@z bbb!'  ,% )! ! ,+ <?' o?z #a47% =) J"E#K#{% (+ ( t#B2?A> &?A"&"I&$/*%,"t:"Kt> A A6 `?CopyrigTt (c)D@2`09D@M<@c:@oKs4@fBB3Ar6@oAaB@i4@n.D@ Al@ :HsBeb@e:@vZ@d@2h/1<M#bl#7? M@?(>Uh7E +A(A!{ L:F A<6j% bRzg9ǩ<2 "\MbPdS mT W5U6ik0YaYvq 2HD: )&# T=h0>Th]]9 Q BUF偃?F?P?F\HRq?Fn˯Z?P Bt`  Xkw?tGj#ll#VBu auo77>JTA0f88v?WYϳAjLv@z bbb!' 6Y % )! ! ,+ <?' o?z #a47% =) J"#K#({% (+ (G t#Beı?A>L ?A"&"&$/*8%,"t:"t>  A A6 `?CopyrigTt _(c)D@2`W09D@M<@c:@os4@fBB3Ar6@oAaB@i4@n}.D@ Al@U :HsBeb@e:@v@d@2h/1<M#l#@7? M@?(>Uh7E P+AA!{ L:F<6j% bRzg9ǩ<2 "\MbPdS mT W5UO6ik0YaYvq 2HD: )&# T=h0>Th]]9 Q BUF͜?F:'?F\HRq?Fn˯Z?P Bt`  W׎?ts aU#ll#VBu auo78>JTA0f88v?WYϳAjLv@z bbb!' 6Y % )! ! ,+ <?' o?z #a47% =) J"#K#({% (+ (G t#Beı?A>L ?A"&"&$/*8%,"t:"t>  A A6 `?CopyrigTt _(c)D@2`W09D@M<@c:@os4@fBB3Ar6@oAaB@i4@n}.D@ Al@U :HsBeb@e:@v@d@2h/1<M#l#@7? M@?(>Uh7E P+AA!{ L:F6j% bT ü2 "\MbPdS mT W5UO6ik0YaYvq 2HD: )&# T=h0>Th]]9 Q BUF[@#"?F.޺?Fo?Fn˯Z?P Bt`  ?tchE 8Xj#VBu auo79>JTA0f88v?WYϳAjLv@z bbb!' 6Y % )! ! ,+ <?' o?z #a47% =) J"#K#({% (+ (G t#Beı?A>L ?A"&"&$/*8%,"t:"t>  A A6 `?CopyrigTt>(c)>2`09>M<@c:@o%s4@fBB3Ar6@oAuaB@i4@n.>_ Al@ :HUsBeb@e:@v@-d@2`h/1<M#l1#7? PM@?(>Uh7E +AA!{ L:F<F6j% bRzg9<2 "\ʩ7MbPdS 2NoT W5UO?6ik0YaYvq 2UHT5D B &# T>h0JTtiiM ENUF|u(?F-?FPaW?F ru?P WNtQ` 786R7?tU溁i8;(\I2-nNuj mu){:E0f88wv?AVQ Ӎ!@#b#m@b  0#  #W(3 (o+&T" #t#NĽ/?. ?M"&$a%$$,/>*L%i,T"tΞ*T"tR.R11#`?Copyrig`t (c)02l090M0c0os0f21r01a0i0n.0 Al@ 8sBe0e0v0@d@"Vt!X#xB #/ @T,UtE1UA-!@nZ pvm?S׮(%UQG@Y9"S\FkV5%UЗn@‹Pهϰ=\WQS\OXbiTQY%_7_I_[_DQOOOO__^̔ԍ?f Q́)f@vVP|?5^BlӿIY:6Xl?Ib ʏ܏EABTfxF\HRqCk?-q_WaW?ϰ+@"Bl!H,BXQnB)fFޖBoT[inJ\ۙgyAHD: )&# T=h0>Th]]9 Q BUF4@ ,?FYوe?^?F&1?F3(e?P Bt`  N!?tx/m4tMuVBu auo7;>JAS`? ?Az@bbb! ( 6 )  '+ ߈?/I-Z#mg!z A " ././@/R+,g/y'sU1,ar4 )] "#{t #BtNg8tu:Ba PL^2!X8;d;Q6X?E;d; t͊>8lAlA `?CopyrigTt (c)@2`09@M@c@o%s@fBAr@Aua@i@n.@U 0l@ HsBUe@e@v@d@ 2h<M#l# MT@?4>UhQQA(VQ^1| LZFX} g 7j b2ɶO] 6CfMB:ZMbXdc $I$I܍+d 2aa]Eme'la'iL.]eU@9/$Ew?FslAka,dHޓּgmeoo(oh2gyu3rA 4s2HD: )&# T=h0>Th]]9 Q BUFnټk-?F]u)?F&1?F3(e?P Bt`  3?tg[ m4tMuVBu auo7<>JAS`? ?Az@bbb! ( 6 )  '+ ߈?/I-Z#z A* " ././@/R+Yg/y'sU1,a4 ) "#{ #BtΜg8tu:Ba L^2!X8;d;6X?E;.d; t͊>8lAlA `?CopyrigTt (c)@2`09@M@c@oKs@fBAr@Aa@i@n.@ 0l@ HsBe@e@v@d@2hb<M#l1# M@?4>UhQQPAVQ^1| LZFX}  7j b2/O]M 6CfMB:ZMbX͉dc ?$I$I܍+d 2aa]Emekla'i.]eU@;0$E?FTh]]9 Q BUFܲ?FH7H?F!?FTUUUɺ?P Bt`  &?tQ3ņ= ףc?ckBu5 auon7=>)JAUVJp? ?Awz@b_bb! (݉ " '+ ' qq?z A  +S/.&68))E! '+ g?uW-sUUn*a4 8) "u#{ u#D!tΜ?8tM:Bav L62?!08;<;60?5;.<; tb>{8DADA1 `?CopyrigTt (c){@2`09{@Ms@cq@oKsk@fyBjArm@Aay@ik@n.{@ 0l@ qHsBe@eq@v@d@n2hb<M#l1# M@? Uh,cQcQ] '1PbA.Q61b L`w"?FMDA dj? |m cuۡ'1 6!1fM{":F$3<6d kS=ѣ<n2{!5E[nLa vogaKeE[eV_@cbc g@]amr\GDž}iNu?FS%f|]tElFTh]]9 Q BUF:C<?FY!)^?F!?FTUUUɺ?P Bt`  Ȼ?ޫd?ttyI5= ףc?ckBu5 auon7>>)JAUVJp? ?Awz@b_bb! (݉ " '+ ' qq?z A  +S/.&68))E! '+ g?uW-sUUn*a4 8) "u#{ u#D!tΜ?8tM:Bav L62?!08;<;60?5;.<; tb>{8DADA1 `?CopyrigTt (c){@2`09{@Ms@cq@oKsk@fyBjArm@Aay@ik@n.{@ 0l@ qHsBe@eq@v@d@n2hb<M#l1# M@? Uh,cQcQ] '1PbA.Q61b L`w"?FMDA dj? |m cuۡ'1 6!1fM{":F$3<6d kS=ѣ<n2{!5E[nLa vogaKeE[eV_@cbc g@]amr\GDž}iNu?FS%f|]tElFTh]]9 Q BUFx]?FTy4߮?FU?F3z[j˺?P Bt`  Q`7lg?t-xW&XRkBu5 auon7?>)JAa^! ?Az@b_bb! (݉ 6 , )  '+ g~X?ZI-Z#!g![z A " ,/,/>/P-[?+g/y'Eي,a4 ) "!#{ #Btg8t)u:Ba L^2!*X8;d;6X?E;d; tR>8lAlA `?CopyrigTt (c)@2`09@M@c@os@fBAr@Aa@i@n.@ 0l@ HsBe@ej@v@d@2!h<M#l# M@? 8>UhoQQ]AVQ^1| L@?F҄! dj O٨l,d6ztJB: 7d /k?yԷ&Dh]EWemkp+ɉ 5d}bGeUWeFBϏ+@ol0ju?MDhnMbX0j`QDhnC<o+o"Th]]9 Q BUFT1#E2?FLΉ?FU?F3z[j˺?P Bt`  S|.?tп}Qm&XRkBu5 auon7@>)JAa^!? ?Az@b_bb! (݉ 6 , )  '+ g~X?ZI-Z#!g![z A " ,/,/>/P-[?+g/y'Eي,a4 ) "!#{ #Btg8t)u:Ba L^2!*X8;d;6X?E;d; tR>8lAlA `?CopyrigTt (c)@2`09@M@c@os@fBAr@Aa@i@n.@ 0l@ HsBe@ej@v@d@2!h<M#l# M@? 8>UhoQQ]AVQ^1| L?F҄! dj _٨la6ztJB: 7d /k?yԷ&Dh]EWemkp+ɉ 5d}bGeUWeFBϏ+@ol0ju?MDhnHMbX0j`DhWef9o-ai qGeUoo$o6o3UHLD )&# R>h 0JTlaaM>UF+1#E2?F* 9?F0U?F_gw?P >tA`  9|4?t +5f1,_Œ X">u eu!s7-AJɅJUU?H<j@7tt7 b:*H&tH  th*Nĵ) ?MB"b;)H&e8H m 3 H -US4o?FPjj?6ֈ@!QpoĬگ eoĩ́ F o 01G}}϶@b@mp?#nʼPV]O߸uy\l2_+ʦE}@p5"iРo~e*al|ٍşןHD: )&# ;h0>Th]]9 PB IAUF~Q?F?FF(e?F=PFo?P t`  IGr?tn 5q+ tЖZu Mauo8B>    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 ,p )l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ As"(a40 9 *2!#{0#΍t8tIϻ:AUa L2$18K;F?VEK; Kt>B4aAA0`?CopyrigTt (c)@2`09@M@c@os@fBAr@Qa@i@n.@ @l/P Hs3RePe@vEPd'P2hX<M#l # M/P?]UhzA(Q1 L@3FO#?Fo2zP dj|aW{8cUF:&x0?F?Fώ?FX'qoO 0Yifull4ajS?N~dh+ fEeޖe?F<'?F@]?F\F%ޕol}dQ3ll BXlm|ԇbBhaUe```?FV ?FTh oflPIϮ3qoijeðl.` |=T?heFnF$OĒ?F o* leowky{ftGg˂a,8b1;MHD: )&# ;h0>Th]]9 PB IAUF~Q?Fe?FF(e?F=PFo?P t`  IGr?t8n5q+ tЖZu Mauo8C>    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 ,p )l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ As"(a40 9 *2!#{0#΍t8tIϻ:AUa L2$18K;F?VEK; Kt>B4aAA0`?CopyrigTt (c)@2`09@M@c@os@fBAr@Qa@i@n.@ @l/P Hs3RePe@vEPd'P2hX<M#l # M/P?]UhzA(Q1 L@3FO#?Fo2zP dj|a{8cUF:&x0?F?FȎ?F'qoO 0Yifull4ajK?N~d+ fEeޖe?F<'?F@]?FsF%ޕol}dQ3ll BXlRm|bBhaUe`Ԗ``?FV ?FTh oflPIϮ3qoiGkeðl2` |FT?heFnF*OĒ?F o* leowkyftGg˂a,8b1;MHD: )&# T=h0>Th]]9 Q BUF&d29?F `0?F(\µ?F^Sӻ?P Bt`  o?tՐs] yAP FBuj auo7ARJ[0U?<ALv@tt7 }b6*D&tD  td*JBı) ?A>"b7)D&a4D  V3 D 8/td/tRy.x1x1`?CopyrigTt (c)02`090M0c0os0f21r01a0i0n.0 Al0 8s2e0e0v @d0"h0!<M#l#/MlP> @?UhLAA]R 1 P1"7Ж1bA>!J`oO2z[ djaq:z׍ QM 6VMB@챝P\`_m;?E,Ui5Uޖ?FQ[_5lf\VU'EUY2Ruݯ?FU]˖7sf\pdѿSYUWfe /zx]݅om{ZcXXUFRP\g[)JXAp| rhQ#5 ?IXAYaLPւ?FتcP\T f\3$sXAp" ElX1YA-k?FFoZP\fyf\?!,UAYX%?F8K7P\{ f\&SAY&1l?Fr>|]P\-]qiYip~ X1#g~jt-? ѰXAY?F ףp=P\' f\?P=RwX'RXT}7vP\__/vnTpډlX7U/$9SYE7Ժf\wUQY|>îqh|P\4GN?"MX U29_KU#rA0$@CHD: )&# T=h0>Th]]9 Q BUFܷqP?F@?F7??FtYOȻ?P Bt`  XM6 ?ti|9O__Bu aquo7E>KJASTfw?X ?Az@bbb! ( 6f )  '+ ߈?I-Z#g!z A Qu +%/,8)E!'+ k(?r+o,(a4 8) E"#{ #BtΜG8tU:Ba L>2?!88;D;68?5;.D; tj>8LALA1 `?CopyrigTt (c)@2`09@M{@cy@oKss@fBrAru@Aa@is@n.@ 0l@ yHsBe@ey@v@d@v2hb<M#l1# M@?4>UhkQkQPjA6Q>1| L`Fd~j]J}v)M]M 6)fMB@Wa\ k_稇avCe=ESeR9Y? l`gESeFeabkod iSQޗh~??5@+ c;Ꞗi"2_U3rA/04sCHD: )&# T=h0>Th]]9 Q BUFdHJAUVJp? ?Awz@bbb! ( " '+ ' qq?z A 9 +/.&68))E! '+ g?W-sU"!n*a4 8) "u#{ u#D!t?8tM:Bav L62?!08;<;60?5u;<; tb>){8DADA1 `?CopyrigTt (c){@]2`09{@Ms@]cq@osk@fyBRjArm@Aay@ik@Wn.{@ 0l@U qHsBe@eq@v@d@n2h<M#l# M@?]UhzbA.Q61b L` djM"aQ  6fM{"@Ftnq\[3K_,7e5EGe<\ֽE?Nf[ N_qd7eEGec6i\m jOf܋h2_U3rA'04msCHD: )&# T=h0>Th]]9 Q BUF)8/?FFT?F!/$?Fᱝ̻?P Bt`  vNC?tG(ϛT H0Bu auo7G>JTA0f88v?WYALv@z bbb!'n 6 % )! ! ,+ <?' o?z #a47% =) J""#K#{% (+ ( tQ#BXYщ?A> ?A "+(/+/=/O/a!y:5rl/@ sU10( /???? "?0<2?M{!b 1/Ĝ/*%,"t:"t>TQQ'@`?CopyrigTt (c)FP2`09FPM>PcTh]]9 PB IAUFJ1>?Fl?FF(e?F=PFo?P t`  0!?trj5q+ tЖZu Mauo8A    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 ,p )l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ s"?(a40 9 .*2!#{0:#t8'tϻ:Ua L2$18K;F?VEK.; t>B4AA0`?CopyrigTt (c)@2`09@M@c@oKs@fBAr@Qa@i@n.@ @l/P Hs3RePe@vEPd'P2hb<M#l1# M/P?]UhzAQ1 L@3FO#۲?Fo2zP dj|aW{ޓ8cUF:&x0?F?F?F_'qoO 0Yigull4aj?ON~f0c?o+ fEeޖe?F<'?F@]?FwF%ޕol}dQ3ll BXl귺m|bBhaUe`ba`?FV ?FTh oflPI3qoiؿkeðl8` |G?T?heFnF$O?F o* leowky?{ft?Gg˂a,8b1;MHD: )&# ;h0>Th]]9 PB IAUFGF?FEs?F+\(?F~@ t?P t`  9`Ik?t)6^u -ZrqKZu Mauo8I>    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 ,p )l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ s"?(a40 9 .*2!#{0:#t8'tϻ:Ua L2$18K;F?VEK.; t>B4AA0`?CopyrigTt (c)@2`09@M@c@oKs@fBAr@Qa@i@n.@ @l/P Hs3RePe@vEPd'P2hb<M#l1# M/P?]UhzAQ1 L@3FMbX9?F4ҫP dj}ah8cUF[~K?F|D?F+Xc?F&PRcGoO 0YiM+FllZaj}0%|f0c̭ fEe.V?Fȿ̅)`oSt?F?(X:olGGTll .Xl{e{|?rww@,eaUe:&x0?F%Clw?FAz?F 1vņflux1,oiFA(]`t߼ |~Th]]9 PB IAUFGF?FKDֳ?F+\(?F~@ t?P t`  9`Ik?t┯4;u -ZrqKZu Mauo8J>    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 ,p )l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ s"?(a40 9 .*2!#{0:#t8'tϻ:Ua L2$18K;F?VEK.; t>B4AA0`?CopyrigTt (c)@2`09@M@c@oKs@fBAr@Qa@i@n.@ @l/P Hs3RePe@vEPd'P2hb<M#l1# M/P?]UhzAQ1 L@3FMbX9?F4ҫP dj}ah8cUF[~K?F|D?F+Xc?F&PRcGoO 0YiM+FllZaj}0%|f0c̭ fEe.V?Fȿ̅)`oSt?F?(X:olGGTll .Xl{e{|rww@haUe:&x0?F%Clw?FAz?F 1vņflux1qoiFA(]`t߼ |~Th]]9 PB IAUFXIn?F    PEJڍU[\/(?&. ?AbbY!z@Ae bbCt c(a4b  # b(h#{ h#΍t(tI*#0f88vb.#i L5<1v(&$7/(D%"6/5;0( t.*B#11`?CopyrigTt] c).@2`W09.@M&@c$@os@f,BAr @YAa,@i@n}..@ Alt@U $HsxBeL@e$@v@dl@"h<M#l# Mt@?]UhzAA!J@#FMbX9?F$x0OԛP dj}תa4(SUF[~K?FE?FSc?F?#oO 0YM+Fӱ\*aj,.}a$?# XEU"n?F +?FbEd?F v<olTBJ\LMYBltavXlp@,UEUv/?Fpvw;pg?F $hއ?FLvo~l/AD0,YJg ַBl)$ԞXlDB:XU^F.fّPKk^Rl_[Ei?1GAf`d?Sq+a,(bvHD: )&# ;h0>Th]]9 PB IAUFXIn?F(?F+\(?F-ku?P t`  -k?tEeoEu -+CmoLZu Mauo8L>    PEJڍU[\/(?&. ?AbbY!z@Ae bbCt c(a4b  # b(h#{ h#΍t(tI*#0f88vb.#i L5<1v(&$7/(D%"6/5;0( t.*B#11`?CopyrigTt] c).@2`W09.@M&@c$@os@f,BAr @YAa,@i@n}..@ Alt@U $HsxBeL@e$@v@dl@"h<M#l# Mt@?]UhzAA!J@#FMbX9?F%x0OԛP dj}תa4(SUF[~K?FE?Fdc?F,?#oO 0YM+Fӱ\*aj ,.}a?# XEU"n?F{ +?F(%/Nd?F<olTBJ\MYBlU{XlpDc@XEUv/vw;pg?F^$hއ?Fvol/AD0qYf ַBls$ԞXl+?B:XU^F.fّPyKk^Rl_[Ei1GAf`dSOq+a,(bvHD: )&# T=h0>Th]]9 Q BUF贷F$?Ft\@?F\HRq?FƯK7?P Bt`  x#?t#ll$nZVBu auo7M>JA]^'? ?Az@b ( 6f  )ϓb= + _? ' 88o?z A s +=  /)/;/M$[+["-j!Q U1[!x(ar4 )] "'}#{t }#BtNQ8t_:Ba~ PLH2!B8;N;Q6B?5;N; tt>8VAVA `?CopyrigTt (c)@2`09@M@c@o%s}@fB|Ar@Aua@i}@n.@U 0l@ HsBUe@e@v@d@ 2h<M#l# MT@?4>UhuQuQtA(@QH1j LZFهgϰ 7j bL\G@[ 6S-fMB:MbPdc mdb`GeGEWe$oˏZ\ai?bvIGeU@Vϰ+@_?F23Th]]9 Q BUF#/?FKGY?F\HRq?FƯK7?P Bt`  ~B?tl#ll$nZVBu auo7N>JA]^'? ?Az@b ( 6f  )ϓb= + _? ' 88o?z A s +=  /)/;/M$[+["-j!Q U1[!x(ar4 )] "'}#{t }#BtNQ8t_:Ba~ PLH2!B8;N;Q6B?5;N; tt>8VAVA `?CopyrigTt (c)@2`09@M@c@o%s}@fB|Ar@Aua@i}@n.@U 0l@ HsBUe@e@v@d@ 2h<M#l# MT@?4>UhuQuQtA(@QH1j LZFهgϰ 7j bL\] 6-fMB:MbPdc Ɵmdb`GeGEWe$oZ\aibvIGeUWeVϰ+@?Vpk_xu j aGe@We_ooh2Kt]u3rA 4s2HD: )&# T=h0>Th]]9 Q BUF/ ֛9?F46Hr?F\HRq?FƯK7?P Bt`   a1?t 3JA]^'? ?Az@b ( 6f  )ϓb= + _? ' 88o?z A s +=  /)/;/M$[+["-j!Q U1[!x(ar4 )] "'}#{t }#BtNQ8t_:Ba~ PLH2!B8;N;Q6B?5;N; tt>8VAVA `?CopyrigTt (c)@2`09@M@c@o%s}@fB|Ar@Aua@i}@n.@U 0l@ HsBUe@e@v@d@ 2h<M#l# MT@?4>UhuQuQtA(@QH1j LZFهgϰ 7j bL\] 6-fMB:MbPdc Ɵmdb`GeGEWenZ\aiavIGeUWeVϰ+@?Vpk_xu j aGe@We_ooh2Kt]u3rA 4s2HD: )&# T=h0>Th]]9 Q BUF[@#?FLO?Fo?FƯK7?P Bt`  ?tSӈEw8Xj$nZVBu acuo7AJA]^'? ?Az@b ( 6f  )ϓb= + _? ' 88o?z A s +=  /)/;/M$[+["-j!Q U1[!x(ar4 )] "'}#{t }#BtNQ8t_:Ba~ PLH2!B8;N;Q6B?5;N; tt>8VAVA `?CopyrigTt>(cu)>2`09>uM@c@os}@IfB|Ar@Aa@]i}@n.> 0Ul@ HsBe@e@v@d@B2h,<M#l# M@?U4>UhuQuQtAJ@QH1j LZFهϰ 7j bL\ѻ] 6-fMB:ʩMbPdc 2N3odb`GeGEWe$oZ\aibvIGeUWe4?Vpku j aGeWe_ooh2K]u3rA 4s2HD: )&# ;h0>Th]]9 PB IAUF?FtË.5?FQ?F?P t`  ?{R   ] EJ]_DRb(?&. ?Az@bY(e 6f h )ϓb k+ _?Z'e 88o?ze Ae s[+ h g/y//$# L:5 /sU"K1*a4 9 2(E#{ #t8tϤ:U a L2T18K;6Ԉ?@EK; tͺ>B40AA0`?CopyrigTwt c)@]2`09@M@]c@os@fBRAr@Aa@i@Wn.@ 0lPU HsRe@e@v/PdP2h<M#l#A MP? <>Uh$QQ(]A(Q1 LZ3;'xP 7jbbFbL7a 6{fM8cUFnDdTh]]9 PB IAUF4{"?F=N?FQ?F?P t`  ^}W;o?t9pČ( 뾅@l* 9u auo8R>   ] EJ]_DRb(?&. ?Az@bY(e 6f h )ϓb k+ _?Z'e 88o?ze Ae s[+ h g/y//$# L:5 /sU"K1*a4 9 2(E#{ #t8tϤ:U a L2T18K;6Ԉ?@EK; tͺ>B40AA0`?CopyrigTwt c)@]2`09@M@]c@os@fBRAr@Aa@i@Wn.@ 0lPU HsRe@e@v/PdP2h<M#l#A MP? <>Uh$QQ(]A(Q1 LZ3;'xP 7jbbFbL7a 6{fM8(a?nDFF!@~qWoO 0dTc I\rdcd bjUkgaPbeEef"v?Fr6d?F?kĀqo`OivddlXr`tF0sK|٢jr3t!KU:G}?{]rLl} ]|q3xnTrg?F<ے7pooZgtfio,V|=] 5ve&1?Fpn?FTh]]9 PB IAUFGC<-?Ff?FQ?F?P t`  L?RD)o?t? )Č( 뾅@l* 9u auo8S>   ] EJ]_DRb(?&. ?Az@bY(e 6f h )ϓb k+ _?Z'e 88o?ze Ae s[+ h g/y//$# L:5 /sU"K1*a4 9 2(E#{ #t8tϤ:U a L2T18K;6Ԉ?@EK; tͺ>B40AA0`?CopyrigTwt c)@]2`09@M@]c@os@fBRAr@Aa@i@Wn.@ 0lPU HsRe@e@v/PdP2h<M#l#A MP? <>Uh$QQ(]A(Q1 LZ3;'xP 7jbbFbL7a 6{fM8cUFnDFK!@?FDqWoO 0dTc I\addbjUWkgabeE(aFjv?Fr6d?FkĀAqo`Oi^j^r`t0sK#|pr9t!KU:M}{]rYLl}]|9xLufTrg?F<7vodObdcZgtfi,V#|=c ;vLu&1?Fpn?FTh]]9 PB IAUFĊ?Fn6b?FQ?F?P t`  ro?tpwZČ( 뾅@l* 9u auo8T>   ] EJ]_DRb(?&. ?Az@bY(e 6f h )ϓb k+ _?Z'e 88o?ze Ae s[+ h g/y//$# L:5 /sU"K1*a4 9 2(E#{ #t8tϤ:U a L2T18K;6Ԉ?@EK; tͺ>B40AA0`?CopyrigTwt c)@]2`09@M@]c@os@fBRAr@Aa@i@Wn.@ 0lPU HsRe@e@v/PdP2h<M#l#A MP? <>Uh$QQ(]A(Q1 LZ3;'xP 7jbbFbL7a 6{fM8(a?D +F2|>?FW@WoO 0dTc rdcd bj{^ea͂beEef"v?Fddd?F܃q o`OivddlXr`tuqEÊ|:jr3t!KU:G}{]r,Ll}]|q3xngqrg?F~pooZgtML|\ 5ve&1?FWf?F#0bĂ|[m낪 z'ǵ(|F$$!ayTh]]9 Q BUF贷F$?FlIJ?F\HRq?F#o˯Z?P Bt`  x#?tx#ll#VBu auo7U>JTA0f88v?WYϳAjLv@z bbb!' 6Y % )! ! ,+ <?' o?z #a47% =) J"#K#({% (+ (G t#Beı?A>L ?A"&"&$/*8%,"t:"t>  A A6 `?CopyrigTt _(c)D@2`W09D@M<@c:@os4@fBB3Ar6@oAaB@i4@n}.D@ Al@U :HsBeb@e:@v@d@2h/1<M#l#@7? M@?(>Uh7E P+AA!{ L:F A7<6j% bRzg9<2 "\MbPdS mT W5U6ik0YaYvq 2HD: )&# T=h0>Th]]9 Q BUF#/?F ?F\HRq?Fn˯Z?P Bt`  ~B?t AF#ll#VBu auo7V>JTA0f88v?WYϳAjLv@z bbb!' 6Y % )! ! ,+ <?' o?z #a47% =) J"#K#({% (+ (G t#Beı?A>L ?A"&"&$/*8%,"t:"t>  A A6 `?CopyrigTt _(c)D@2`W09D@M<@c:@os4@fBB3Ar6@oAaB@i4@n}.D@ Al@U :HsBeb@e:@v@d@2h/1<M#l#@7? M@?(>Uh7E P+AA!{ L:F<6j% bRzg9ǩ<2 "\MbPdS mT W5UO6ik0YaYvq 2HD: )&# T=h0>Th]]9 Q BUF/ ֛9?FD?F\HRq?Fn˯Z?P Bt`   a1?t(9Sj#ll#VBu auo7W>JTA0f88v?WYϳAjLv@z bbb!' 6Y % )! ! ,+ <?' o?z #a47% =) J"#K#({% (+ (G t#Beı?A>L ?A"&"&$/*8%,"t:"t>  A A6 `?CopyrigTt _(c)D@2`W09D@M<@c:@os4@fBB3Ar6@oAaB@i4@n}.D@ Al@U :HsBeb@e:@v@d@2h/1<M#l#@7? M@?(>Uh7E P+AA!{ L:F6j% bT ü2 "\MbPdS mT W5UO6ik0YaYvq 2HD: )&# T=h0>Th]]9 Q BUF[@#?F\o]?Fo?Fn˯Z?P Bt`  ?tF]8Xj#VBu auo7X>JTA0f88v?WYϳAjLv@z bbb!' 6Y % )! ! ,+ <?' o?z #a47% =) J"#K#({% (+ (G t#Beı?A>L ?A"&"&$/*8%,"t:"t>  A A6 `?CopyrigTt>(c)>2`09>M<@c:@o%s4@fBB3Ar6@oAuaB@i4@n.>_ Al@ :HUsBeb@e:@v@-d@2`h/1<M#l1#7? PM@?(>Uh7E +AA!{ L:F<F6j% bRzg9<2 "\ʩ7MbPdS 2NoT W5UO?6ik0YaYvq 2UHT5D B &# T>h0JTtiiM ENUFlQ?Fڋ?FPaW?F ru?P WNtQ` c͕.:7?tUr=Ki8;(\I2-nNuj mu){YE0f88wv?AVQ Ӎ!@#b#m@b  0#  #W(3 (o+&T" #t#NĽ/?. ?M"&$a%$$,/>*L%i,T"tΞ*T"tR.R11#`?Copyrig`t (c)02l090M0c0os0f21r01a0i0n.0 Al@ 8sBe0e0v0@d@"Vt!X#xB #/ @T,UtE1UA-!@nZ pvm?S׮(%UQG@Y9"S\FkV5%UЗn@‹Pهϰ=\WQS\OXbiTQY%_7_I_[_DQOOOO__^̔ԍ?f Q́)f@vVP|?5^BlӿIY:6Xl?Ib ʏ܏EABTfxF\HRqCk?-q_WaW?ϰ+@"Bl!H,BXQnB)fFޖBoT[inJ\ۙgyAHD: )&# T=h0>Th]]9 Q BUFhY?FlIJ?F&1?F3(e?P Bt`  6n?t:m4tMuVBu auo7Z>JAS`? ?Az@bbb! ( 6 )  '+ ߈?/I-Z#,z A* " ././@/R+Yg/y'sU1,a4 ) "#{ #BtΜg8tu:Ba L^2!X8;d;6X?E;.d; t͊>8lAlA `?CopyrigTt (c)@2`09@M@c@oKs@fBAr@Aa@i@n.@ 0l@ HsBe@e@v@d@2hb<M#l1# M@?4>UhQQPAVQ^1| LFX}  7j b2ɏOR] 6CfMB:ZMbXdc $I$I܍+d 2aa]Eme'la'iL.]eU@9/$Ew?FslAka,dHޓּgmeoo(oh2gyu3rA 4s2HD: )&# T=h0>Th]]9 Q BUFy?Flo]9?F&1?F3(e?P Bt`  7 ?t)!m4tMuBu ,duo7[>JAS`? ?Az@bbb! ( 6 )  '+ ߈?/I-Z#mg!z A " ././@/R+,g/y'sU1,ar4 )] "#{t #BtNg8tu:Ba PL^2!X8;d;Q6X?E;d; t͊>8lAlA `?CopyrigTt (c)@2`09@M@c@o%s@fBAr@Aua@i@n.@U 0l@ HsBUe@e@v@d@ 2h<M#l# MT@?4>UhQQA(VQ^1| LZFX} g 7j b2ɶO] 6CfMB:ZMbXdc $I$I܍+d A2aa]Emekla'i.G]eU@;0$E?[FTh]]9 Q BUF߹e?F$jߤ?F!?FTUUUɺ?P Bt`  ?t&S= ףc?ckBu5 auon7\>)JAUVJp? ?Awz@b_bb! (݉ " '+ ' qq?z A  +S/.&68))E! '+ g?5W-sUU,p(a4 8) "u#{ u#D!tΜ?8tM:Bav L62?!08;<;60?5;.<; tb>{8DADA1 `?CopyrigTt (c){@2`09{@Ms@cq@oKsk@fyBjArm@Aay@ik@n.{@ 0l@ qHsBe@eq@v@d@n2hb<M#l1# M@? Uh,cQcQ] '1PbA.Q61b L`w"?FMDA dj? |m cuۡ'1 6!1fM{":F$3<6d kS=ѣ<n2{!5E[nLa vogaKeE[eV_@cbc g@]amr\GDž}iNu?FS%f|]tElFTh]]9 Q BUFtx?F/?F!?FTUUUɺ?P Bt`  K_?t= ףc?ckBu5 auon7]>)JAUVJp? ?Awz@b_bb! (݉ " '+ ' qq?z A  +S/.&68))E! '+ g?uW-sUUn*a4 8) "u#{ u#D!tΜ?8tM:Bav L62?!08;<;60?5;.<; tb>{8DADA1 `?CopyrigTt (c){@2`09{@Ms@cq@oKsk@fyBjArm@Aay@ik@n.{@ 0l@ qHsBe@eq@v@d@n2hb<M#l1# M@? Uh,cQcQ] '1PbA.Q61b L`w"?FMDA dj? |m cuۡ'1 6!1fM{":F$3<6d kS=ѣ<n2{!5E[nLa vogaKeE[eV_@cbc g@]amr\GDž}iNu?FS%f|]tElFTh]]9 Q BUFiv?F{<?FU?F3z[j˺?P Bt`  y]?tHIΧ&XRBu auo7^>JAa^!? ?Az@bbb! (n 6  )  '+ g~X?I-͊Z#!,[z A " ,/,/>/P-[?+g/y'Eي,a4 ) "!#{ #Btg8t)u:Ba L^2!*X8;d;6X?E;d; tR>8lAlA `?CopyrigTt (c)@2`09@M@c@os@fBAr@Aa@i@n.@ 0l@ HsBe@ej@v@d@2!h<M#l# M@? 8>UhoQQ]AVQ^1| L@?F҄! dj _٨la6ztJB: 7d /k?yԷ&Dh]EWemkp+,rb6c}bGeUWeFBϏ+@ol0ju?MDhnMbX0j`QDhnC<o+o"Th]]9 Q BUFT1#E2H?FK&Ua?FU?F3z[j˺?P Bt`  ?t &XRkBu5 auon7_>)JAa^!? ?Az@b_bb! (݉ 6 , )  '+ g~X?ZI-Z#!g![z A " ,/,/>/P-[?+g/y'Eي,a4 ) "!#{ #Btg8t)u:Ba L^2!*X8;d;6X?E;d; tR>8lAlA `?CopyrigTt (c)@2`09@M@c@os@fBAr@Aa@i@n.@ 0l@ HsBe@ej@v@d@2!h<M#l# M@? 8>UhoQQ]AVQ^1| L@?F҄! dj _٨la6ztJB: 7d /k?yԷ&Dh]EWemkp+ɉ 5d}bGeUWeFBϏ+@ol0ju?MDhnHMbX0j`DhWef9o-ai qGeUoo$o6o3UHLD )&# R>h 0JTlaaM>UFObFd0?F gj?F0U?F_gw?P >tA`  N+ru?t Tլ1,_Œ X">u eu!s7-`JɅJUU?HA9 j@7tt7 b:*H&tH  th*Nĵ) ?MB"b;)H&e8H m 3 H -US4o?FPjj?6ֈ@!QpoĬگ eoĩ́ F o 01G}}϶@b@mp?#nʼPV]O߸uy\l2_+ʦE}@p5"iРo~e*al|ٍşןHD: )&# ;h0>Th]]9 PB IAUF\6:?F}?FF(e?F=PFo?P t`  @?t^$h5q+ tЖZu Mauo8a>    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 ,p )l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ s"?(a40 9 .*2!#{0:#t8'tϻ:Ua L2$18K;F?VEK.; t>B4AA0`?CopyrigTt (c)@2`09@M@c@oKs@fBAr@Qa@i@n.@ @l/P Hs3RePe@vEPd'P2hb<M#l1# M/P?]UhzAQ1 L@3FO#۲?Fo2zP dj|aW{ޓ8cUF:&x0?F?F?FX'qoO 0Yifull4ajS?ON~f0c?h+ fEeޖe?F<'?F@]?F\F%ޕol}dQ3ll BXy귺m|ԇbBhaUe```?FV ?F?Th ofl?PI3qoijeðl.` |=T?heFnF$OĒ?F o* leowk~y{f~tGg˂a ,8b1;MHD: )&# ;h0>Th]]9 PB IAUF\6:?F}?FF(e?F=PFo?P t`  @?t8ȍ5q+ tЖZu Mauo8b>    PEJƱZVJp!?&. ?Az@b/b@Z'݉e 6 ,)l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ s"?(a4 9 .*2!#{:#t8'tϻ:Ua !L2$18K8F?VEK.; t>B4AA0`?CopyrigTt (c)@2`09@M@c@oKs@fBAr@Qa@i@n.@ @l/P Hs3RePe@vEPd'P2hb<M#l1# M/P?]UhzAQ1 L@3FO#۲?Fo2zP dj|a{ޓ8cUF:&x0?F?F?F'qoO 0Yifull4ajK?ON~f0c?+ fEeޖe?F<'?F@]?FsF%ޕol}dQ3ll BXyR귺m|bBhaUe```?FV ?F?Th ofl?PI3qoiGkeðl2` |FT?heFnF*OĒ?F o* leowk~yf~tGg˂a ,8b1;MHD: )&# T=h0>Th]]9 Q BUFL&d?F`0?F(\µ?F^Sӻ?P Bt`  {G?t7F0 yA_P FBu aquo7c>KJm0U?<AL@tMt7( }b6*D&stD  td**Bıa) ?A.>"b7)D&ar4D [ 3 D 8/td/Kty.x1x1`?CopyrigTt (c)02`090M0c0oKs0f21r01a0i0n.0 Al0 8s2e0e0vZ @d0"h!<M#l#/MBl> @?UhLAA]J 1 A 1"7A1bA>!J`?o2z[ dUjaq:z׍40S 6VMՋB@_P\`_m;E,Ui5Uޖ??FQ[5lf\VU'EUY2Ruݯ?FU]˖7sf\pdGѿSYUWfe zx]om{Zc`,UUFRP\g[)JXAp|? rhQ#5 IXAYaLPւ?FتcP\T f\3$sXAp"۲ ElU1YA-k?FFoZP\fyf\!XAYX%?F8K7P\{ 䘷f\&SAY&1l?Fr>|]P\-]qiY?ip~ X1#g~jt-? GXAY?F ףp=P\' f\?P=RwX'RXT}7vP\__/vnTpډlX7U/$?vQ[E7Ժf\wUQY|>îqh|P\4GN"MX U29_KU#rA0$@CHD: )&# T=h0>Th]]9 Q BUF8?F43?F7??FtYOȻ?P Bt`  1=oJASTfw? ?Az@bbb! ( 6 )  '+ ߈?/I-Z#mg!z A u +%/,8)E!'+ k(?r+o#?(a4 8) E"E#{ #BtG8tU:Ba L>2?!88;D;68?5u;D; tj>)8LALA1 `?CopyrigTt (c)@]2`09@M{@]cy@oss@fBRrAru@Aa@is@Wn.@ 0l@U yHsBe@ey@v@d@v2h<M#l#A M@?4>UhkQkQjA6Q>1| L`Fdj]JK}vM4@[ 6)fMB@Wa\ k_程avCe=E~SeR9Y? lgESeFeabkod i?SQޗh~?5@+ c;ꉞi2_U3rA/04sCHD: )&# T=h0>Th]]9 Q BUF2B9?FW]i\?F'l?F{Cƻ?P Bt`  ,i?t^̺㯝4\YDrVBu auo7e>JAUVJp? ?Awz@bbb! ( " '+ ' qq?z A 9 +/.&68))E! '+ g?W-sU"!n*a4 8) "u#{ u#D!t?8tM:Bav L62?!08;<;60?5u;<; tb>){8DADA1 `?CopyrigTt (c){@]2`09{@Ms@]cq@osk@fyBRjArm@Aay@ik@Wn.{@ 0l@U qHsBe@eq@v@d@n2h<M#l# M@?]UhzbA.Q61b L` djMaQ@ 6fM{"@Ftnq\[3K_,7e5EGe<\ֽE?Nf[ NA_qd7eEGec6i\m j#f,7e2_UB3rA'04msCHD: )&# T=h0>Th]]9 Q BUF] ?FtF?F!/$?Fᱝ̻?P Bt`  "?tEQTϛT H0VBu auo7f>JTA0f88v?WYϳAjLv@z bbb!' 6Y % )! ! ,+ <?' o?z #a47% =) J"#K#({% (+ (G t#BXY'?A> ?A "+(/+/=/O/a!y:5r{l/@ sU10( /???? "0aQQ'@`?CopyrigTt (c)FP2`09FPM>PcTh]]9 PB IAUFR?F|}Y?FF(e?F=PFo?P t`  (\#?tN뻫5q+ tЖZu Mauo8g>    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 ,p )l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ s"?(a40 9 .*2!#{0:#t8'tϻ:Ua L2$18K;F?VEK.; t>B4AA0`?CopyrigTt (c)@2`09@M@c@oKs@fBAr@Qa@i@n.@ @l/P Hs3RePe@vEPd'P2hb<M#l1# M/P?]UhzAQ1 L@3FO#۲?Fo2zP dj|aW{ޓ8cUF:&x0?F?F?F_'qoO 0Yigull4aj?ON~f0c?o+ fEeޖe?F<'?F@]?FwF%ޕol}dQ3ll BXl귺m|bBhaUe`ba`?FV ?FTh oflPI3qoiؿkeðl8` |G?T?heFnF$O?F o* leowky?{ft?Gg˂a,8b1;MHD: )&# ;h0>Th]]9 PB IAUFpX?FEsR?F+\(?F~@ t?P t`  (TJ?th/3u -ZrqKZu L,duo8UAU    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 ,p )l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ s"?(a40 9 .*2!#{0:#t8'tϻ:Ua L2$18K;F?VEK.; t>B4AA0`?CopyrigTt (c)@2`09@M@c@oKs@fBAr@Qa@i@n.@ @l/P Hs3RePe@vEPd'P2hb<M#l1# M/P?]UhzAQ1 L@3FMbX9?F4ҫP dj}ah8cUF[~K?F|D?F+Xc?F&PRcGoO 0YiM+FllZaj}0%|f0c̭ fEe.V?Fȿ̅)`oSt?F?(X:olGGTll .Xl{e{|rww@haUe:&x0?F%Clw?FAz?F 1vņflux1qoiFA(]`t߼ |~Th]]9 PB IAUFpX?F<Dֳ`?F+\(?F~@ t?P t`  (TJ?tA u -ZrqKZu Mauo8i>    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 ,p )l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ s"?(a40 9 .*2!#{0:#t8'tϻ:Ua L2$18K;F?VEK.; t>B4AA0`?CopyrigTt (c)@2`09@M@c@oKs@fBAr@Qa@i@n.@ @l/P Hs3RePe@vEPd'P2hb<M#l1# M/P?]UhzAQ1 L@3FMbX9?F4ҫP dj}ah8cUF[~K?F|D?F+Xc?F&PRcGoO 0YiM+FllZaj}0%|f0c̭ fEe.V?Fȿ̅)`oSt?F?(X:olGGTll .Xl{e{|rww@haUe:&x0?F%Clw?FAz?F 1vņflux1qoiFA(]`t߼ |~Th]]9 PB IAUF$?F,w¾`?F+\(?F-ku?P t`  p&k?t?̈n=u -CmoLZu L,duo8j>    PEJڍU[\/(?&. ?AbbY!z@Ae bbCt c(a4b  # b(h#{ h#΍t(tI*#0f88vb.#i L5<1,(&$7/(D%"6/5;0( t.*B#11`?CopyrigTt] c).@2`W09.@M&@c$@os@f,BAr @YAa,@i@n}..@ Alt@U $HsxBeL@e$@v@dl@"h<M#l# Mt@?]UhzAA!J@#FMbX9?F$x0OԛP dj}תa4(SUF[~K?FE?FSc?F?#oO 0YM+Fӱ\*aj,.}a$?# XEU"n?F +?FbEd?F v<olTBJ\LMYBltavXlp@XEUv/?Fpvw;pg?F $hއ?FLvo~l/AD0qYJg ַBl)$ԞXlDB:XU^F.fّPKk^Rl_[Ei?1GAf`d?Sq+a,(bvHD: )&# ;h0>Th]]9 PB IAUF$?F(n?F+\(?F-ku?P t`  p&k?t A4u -+CmoLZu Mauo8k>    PEJڍU[\/(?&. ?AbbY!z@Ae bbCt c(a4b  # b(h#{ h#΍t(tI*#0f88vb.#i L5<1v(&$7/(D%"6/5;0( t.*B#11`?Copy_rigTt$_(c)$2`W09$M&@c$@os@f,BAr @YAa,@i@n}.$ Alt@U $HsxBeL@e$@v@dl@"h<M#l# Mt@?]UhzAA!J@#FMbX9?F%x0OԛP dj}תa4(SUF[~K?FE?Fdc?F,?#oO 0YM+Fӱ\*aj ,.}a?# XEU"n?F{ +?F(%/Nd?F<olTBJ\MYBlU{XlpDc@XEUv/vw;pg?F^$hއ?Fvol/AD0qYf ַBls$ԞXl+?B:XU^F.fّPyKk^Rl_[Ei1GAf`dSOq+a,(bvHD: )&# T=h0>Th]]9 Q BUFt[@#?Ft\?F\HRq?FƯK7?P Bt`  =0[?tRwq#ll$nZBu duo7l>JA]^'? ?Az@b ( 6f  )ϓb= + _? ' 88o?z A s +=  /)/;/M$[+["-j!Q U1[!x(ar4 )] "'}#{t }#BtNQ8t_:Ba~ PLH2!B8;N;Q6B?5;N; tt>8VAVA `?CopyrigTt (c)@2`09@M@c@o%s}@fB|Ar@Aua@i}@n.@U 0l@ HsBUe@e@v@d@ 2h<M#l# MT@?4>UhuQuQtA(@QH1j LZFهgϰ 7j bL\GlR] 6S-fMB:MbPdc mdb`GeGEWe$oˏZ\ai?bvIGeU@Vϰ+@_?F23Th]]9 Q BUF偃?FKG?F\HRq?FƯK7?P Bt`  Xkw?tO [#ll$nZVBu auo7m>JA]^'? ?Az@b ( 6f  )ϓb= + _? ' 88o?z A s +=  /)/;/M$[+["-j!Q U1[!x(ar4 )] "'}#{t }#BtNQ8t_:Ba~ PLH2!B8;N;Q6B?5;N; tt>8VAVA `?CopyrigTt (c)@2`09@M@c@o%s}@fB|Ar@Aua@i}@n.@U 0l@ HsBUe@e@v@d@ 2h<M#l# MT@?4>UhuQuQtA(@QH1j LZFهgϰ 7j bL\] 6-fMB:MbPdc Ɵmdb`GeGEWe$oZ\aibvIGeUWeVϰ+@?Vpk_xu j aGe@We_ooh2Kt]u3rA 4s2HD: )&# T=h0>Th]]9 Q BUF͜?F$6H?F\HRq?FƯK7?P Bt`  W׎?t #ll$nZVBu auo7n>JA]^'? ?Az@b ( 6f  )ϓb= + _? ' 88o?z A s +=  /)/;/M$[+["-j!Q U1[!x(ar4 )] "'}#{t }#BtNQ8t_:Ba~ PLH2!B8;N;Q6B?5;N; tt>8VAVA `?CopyrigTt (c)@2`09@M@c@o%s}@fB|Ar@Aua@i}@n.@U 0l@ HsBUe@e@v@d@ 2h<M#l# MT@?4>UhuQuQtA(@QH1j LZFهgϰ 7j bL\G@[ 6S-fMB:MbPdc mdb`GeGEWenˏZ\ai?avIGeUWeVϰ+@?Vpk_xu j aGeWe _ooh2K]u:3rA 4s2HD: )&# T=h0>Th]]9 Q BUF[@#"?FJA]^'? ?Az@b ( 6f  )ϓb= + _? ' 88o?z A s +=  /)/;/M$[+["-j!Q U1[!x(ar4 )] "'}#{t }#BtNQ8t_:Ba~ PLH2!B8;N;Q6B?5;N; tt>8VAVA `?CopyrigTt>(cu)>2`09>uM@c@os}@IfB|Ar@Aa@]i}@n.> 0Ul@ HsBe@e@v@d@B2h,<M#l# M@?U4>UhuQuQtAJ@QH1j LZFهϰ 7j bL\ѻ}@[ 6-fMB:ʩMbPdc 2N3odb`GeGEWe$oZ\aibvIGeUWe4?Vpku j aGeWe_ooh2K]u3rA 4s2HD: )&# ;h0>Th]]9 PB IAUFv?FdË.?FQ?F?P t`  Smo?tϰոČ( 뾅@l* 9u duo8p>   ] EJ]_DRb(?&. ?Az@bY(e 6f h )ϓb k+ _?Z'e 88o?ze Ae s[+ h g/y//$# L:5 /sU"K1*a4 9 2(E#{ #t8tϤ:U a L2T18K;6Ԉ?@EK; tͺ>B40AA0`?CopyrigTwt c)@]2`09@M@]c@os@fBRAr@Aa@i@Wn.@ 0lPU HsRe@e@v/PdP2h<M#l#A MP? <>Uh$QQ(]A(Q1 LZ3;'xP 7jbbFb7@c 6{fM8cUFnDdTh]]9 PB IAUFSQ=?F|=?FQ?F?P t`  4o?taVpRKČ( 뾅@l* 9u auo8q>   ] EJ]_DRb(?&. ?Az@bY(e 6f h )ϓb k+ _?Z'e 88o?ze Ae s[+ h g/y//$# L:5 /sU K1(a4 9 2(E#{ #t8tϤ:U a L2T18K;6Ԉ?@EK; tͺ>B40AA0`?CopyrigTwt c)@]2`09@M@]c@os@fBRAr@Aa@i@Wn.@ 0lPU HsRe@e@v/PdP2h<M#l#A MP? <>Uh$QQ(]A(Q1 LZ3;'xP 7jbbFbL7a 6{fM8(a?nDFF!@~qWoO 0dTc I\rdcd bjUkgaPbeEef"v?Fr6d?F?kĀqo`OivddlXr`tF0sK|٢jr3t!KU:G}?{]rLl} ]|q3xnTrg?F<ے7pooZgtfio,V|=] 5ve&1?Fpn?FTh]]9 PB IAUF!?F?FQ?F?P t`  + {o?tHUČ( 뾅@l* 9u auo8r>   ] EJ]_DRb(?&. ?Az@bY(e 6f h )ϓb k+ _?Z'e 88o?ze Ae s[+ h g/y//$# L:5 /sU"K1*a4 9 2(E#{ #t8tϤ:U a L2T18K;6Ԉ?@EK; tͺ>B40AA0`?CopyrigTwt c)@]2`09@M@]c@os@fBRAr@Aa@i@Wn.@ 0lPU HsRe@e@v/PdP2h<M#l#A MP? <>Uh$QQ(]A(Q1 LZ3;'xP 7jbbFb7@c 6{fM8cUFnDFK!@?FDqWoO 0dTc I\addǼbjUkgabeE(aFjv?Fr6d?FkĀq o`Oi^j^r`t0sKÊ#|pr9t!KU:M}{]r,Ll}]|9xLufTrg?F<ے7vodObdcZgtfi,V #|=c ;vLu&1?Fpn?FTh]]9 PB IAUFĊ?Fn6b?FQ?F?P t`  o?t]eČ( 뾅@l* 9u auo8s>   ] EJ]_DRb(?&. ?Az@bY(e 6f h )ϓb k+ _?Z'e 88o?ze Ae s[+ h g/y//$# L:5 /sU"K1*a4 9 2(E#{ #t8tϤ:U a L2T18K;6Ԉ?@EK; tͺ>B40AA0`?CopyrigTwt c)@]2`09@M@]c@os@fBRAr@Aa@i@Wn.@ 0lPU HsRe@e@v/PdP2h<M#l#A MP? <>Uh$QQ(]A(Q1 LZ3;'xP 7jbbFb7@c 6{fM8(aD +F2|>?FW@WoO 0dTc ?rdcd bj{^WeabeEef"v?Fddd?F܃qo`OivddlXr`tuqE|E:jr3t!KU:G}{]rLl}]|q3xngqrg?F~pooZgt_ML|\ 5ve&1?FWf?F?#0b|[m낪 z'oǵ(|F$$!ayTh]]9 Q BUFt[@#?FlIJ?F\HRq?F#o˯Z?P Bt`  =0[?t7c`C#ll#Bu duo7t>JTA0f88v?WYϳAjL@z bbb!' 6Y % )! ! ,+ <?' o?z #a47% =) J"#K#({% (+ (G t#Beı?A>L ?A"&"&$/*8%,"t:"t>  A A6 `?CopyrigTt _(c)D@2`W09D@M<@c:@os4@fBB3Ar6@oAaB@i4@n}.D@ Al@U :HsBeb@e:@v@d@2h/1<M#l#@7? M@?(>Uh7E P+AA!{ L:F A7<6j% bRzg9<2 "\MbPdS mT W5U6ik0YaYvq 2HD: )&# T=h0>Th]]9 Q BUF偃?F (?F\HRq?Fn˯Z?P Bt`  Xkw?tɣ#ll#VBu auo7u>JTA0f88v?WYϳAjLv@z bbb!' 6Y % )! ! ,+ <?' o?z #a47% =) J"#K#({% (+ (G t#Beı?A>L ?A"&"&$/*8%,"t:"t>  A A6 `?CopyrigTt _(c)D@2`W09D@M<@c:@os4@fBB3Ar6@oAaB@i4@n}.D@ Al@U :HsBeb@e:@v@d@2h/1<M#l#@7? M@?(>Uh7E P+AA!{ L:F<6j% bRzg9ǩ<2 "\MbPdS mT W5UO6ik0YaYvq 2HD: )&# T=h0>Th]]9 Q BUF͜?F4@?F\HRq?Fn˯Z?P Bt`  W׎?tϘsW~#ll#VBu auo7v>JTA0f88v?WYϳAjLv@z bbb!' 6Y % )! ! ,+ <?' o?z #a47% =) J"#K#({% (+ (G t#Beı?A>L ?A"&"&$/*8%,"t:"t>  A A6 `?CopyrigTt _(c)D@2`W09D@M<@c:@os4@fBB3Ar6@oAaB@i4@n}.D@ Al@U :HsBeb@e:@v@d@2h/1<M#l#@7? M@?(>Uh7E P+AA!{ L:F6j% bT ü2 "\MbPdS mT W5UO6ik0YaYvq 2HD: )&# T=h0>Th]]9 Q BUF[@#"?FLo]Y?Fo?Fn˯Z?P Bt`  ?tC2.8Xj#VBu auo7w>JTA0f88v?WYϳAjLv@z bbb!' 6Y % )! ! ,+ <?' o?z #a47% =) J"#K#({% (+ (G t#Beı?A>L ?A"&"&$/*8%,"t:"t>  A A6 `?CopyrigTt>(c)>2`09>M<@c:@o%s4@fBB3Ar6@oAuaB@i4@n.>_ Al@ :HUsBeb@e:@v@-d@2`h/1<M#l1#7? PM@?(>Uh7E +AA!{ L:F<F6j% bRzg9<2 "\ʩ7MbPdS 2NoT W5UO?6ik0YaYvq 2UHT5D B &# T>h0JTtiiM ENUF|u(?Fڋ?FPaW?F ru?P WNtQ` 786R7?tUau}wAi8;(\I2-nNuj mu){xE0f88wv?AVQ Ӎ!@#b#m@b  0#  #W(3 (o+&T" #t#NĽ/?. ?M"&$a%$$,/>*L%i,T"tΞ*T"tR.R11#`?Copyrig`t (c)02l090M0c0os0f21r01a0i0n.0 Al@ 8sBe0e0v0@d@"Vt!X#xB #/ @T,UtE1UA-!@nZ pvm?S׮(%UQG@Y9"S\FkV5%UЗn@‹Pهϰ=\WQS\OXbiTQY%_7_I_[_DQOOOO__^̔ԍ?f Q́)f@vVP|?5^BlӿIY:6Xl?Ib ʏ܏EABTfxF\HRqCk?-q_WaW?ϰ+@"Bl!H,BXQnB)fFޖBoT[inJ\ۙgyAHD: )&# T=h0>Th]]9 Q BUF4@ ,?FlIJ/?F&1?F3(e?P Bt`  N!?tw;%m4tMuVBu auo7y>JAS`? ?Az@bbb! ( 6 )  '+ ߈?/I-Z#mg!z A " ././@/R+,g/y'sU1,ar4 )] "#{t #BtNg8tu:Ba PL^2!X8;d;Q6X?E;d; t͊>8lAlA `?CopyrigTt (c)@2`09@M@c@o%s@fBAr@Aua@i@n.@U 0l@ HsBUe@e@v@d@ 2h<M#l# MT@?4>UhQQA(VQ^1| LZFX} g 7j b2ɶGO@[ 6SCfMB:ZMbXdc $I$I܍+d `2aa]Eme'la'iL.G]eU@9/$E?;FslAka,dHּgmeoo(oh2gyu3rA 4s2HD: )&# T=h0>Th]]9 Q BUFnټk-?F.޺s?F&1?F3(e?P Bt`  3?tʼnm4tMuVBu auo7z>JAS`? ?Az@bbb! ( 6 )  '+ ߈?/I-Z#z A* " ././@/R+Yg/y'sU1,a4 ) "#{ #BtΜg8tu:Ba L^2!X8;d;6X?E;.d; t͊>8lAlA `?CopyrigTt (c)@2`09@M@c@oKs@fBAr@Aa@i@n.@ 0l@ HsBe@e@v@d@2hb<M#l1# M@?4>UhQQPAVQ^1| LZFX}  7j b2/O]M 6CfMB:ZMbX͉dc ?$I$I܍+d 2aa]Emekla'i.]eU@;0$E?FTh]]9 Q BUFܲ?Fj$?F!?FTUUUɺ?P Bt`  &?t§= ףc?ckBu5 auon7{>)JAUVJp? ?Awz@b_bb! (݉ " '+ ' qq?z A  +S/.&68))E! '+ g?uW-sUUn*a4 8) "u#{ u#D!tΜ?8tM:Bav L62?!08;<;60?5;.<; tb>{8DADA1 `?CopyrigTt (c){@2`09{@Ms@cq@oKsk@fyBjArm@Aay@ik@n.{@ 0l@ qHsBe@eq@v@d@n2hb<M#l1# M@? Uh,cQcQ] '1PbA.Q61b L`w"?FMDA dj? |m cuۡ'1 6!1fM{":F$3<6d kS=ѣ<n2{!5E[nLa vogaKeE[eV_@cbc g@]amr\GDž}iNu?FS%f|]tElFTh]]9 Q BUF:C<?F8!)^?F!?FTUUUɺ?P Bt`  Ȼ?ޫd?tI= ףc?ckBu5 auon7|>)JAUVJp? ?Awz@b_bb! (݉ " '+ ' qq?z A  +S/.&68))E! '+ g?uW-sUUn*a4 8) "u#{ u#D!tΜ?8tM:Bav L62?!08;<;60?5;.<; tb>{8DADA1 `?CopyrigTt (c){@2`09{@Ms@cq@oKsk@fyBjArm@Aay@ik@n.{@ 0l@ qHsBe@eq@v@d@n2hb<M#l1# M@? Uh,cQcQ] '1PbA.Q61b L`w"?FMDA dj? |m cuۡ'1 6!1fM{":F$3<6d kS=ѣ<n2{!5E[nLa vogaKeE[eV_@cbc g@]amr\GDž}iNu?FS%f|]tElFTh]]9 Q BUFx]?F{<W?FU?F3z[j˺?P Bt`  Q`7lg?t M&XRkBu5 auon7}>)JAa^!? ?Az@b_bb! (݉ 6 , )  '+ g~X?ZI-Z#!g![z A " ,/,/>/P-[?+g/y'Eي,a4 ) "!#{ #Btg8t)u:Ba L^2!*X8;d;6X?E;d; tR>8lAlA `?CopyrigTt (c)@2`09@M@c@os@fBAr@Aa@i@n.@ 0l@ HsBe@ej@v@d@2!h<M#l# M@? 8>UhoQQ]AVQ^1| L@?F҄! dj _٨la6ztJB: 7d /k?yԷ&Dh]EWemkp+ɉ 5d}bGeUWeFBϏ+@ol0ju?MDhnMbX0j`QDhnC<o+o"Th]]9 Q BUFT1#E2?FxLΉ?FU?F3z[j˺?P Bt`  S|.?tk, &XRkBu5 auon7~>)JAa^!? ?Az@b_bb! (݉ 6 , )  '+ g~X?ZI-Z#!g![z A " ,/,/>/P-[?+g/y'Eي,a4 ) "!#{ #Btg8t)u:Ba L^2!*X8;d;6X?E;d; tR>8lAlA `?CopyrigTt (c)@2`09@M@c@os@fBAr@Aa@i@n.@ 0l@ HsBe@ej@v@d@2!h<M#l# M@? 8>UhoQQ]AVQ^1| L@?F҄! dj _٨la6ztJB: 7d /k?yԷ&Dh]EWemkp+ɉ 5d}bGeUWeFBϏ+@ol0ju?MDhnHMbX0j`DhWef9o-ai qGeUoo$o6o3UHLD )&# R>h 0JTlaaM>UF+1#E2?Fgj?F0U?F_gw?P >tA`  9|4?t <'Ŵ\1,_Œ X">u eu!s7-JɅJUU?HA9 j@7tt7 b:*H&tH  th*Nĵ) ?MB"b;)H&e8H m 3 H -US4o?FPjj?6ֈ@!QpoĬگ eoĩ́ F o 01G}}϶@b@mp?#nʼPV]O߸uy\l2_+ʦE}@p5"iРo~e*al|ٍşןHD: )&# ;h0>Th]]9 PB IAUF~Q?F|}Y?FF(e?F=PFo?P t`  IGr?ttƯ.5q+ ~Жu auo8M> `  EJƱZVJp!?&. ?Az@bbbe!Y(ne 6 p )l l w+ g?-#U!׷!zme Ae [+j/|//-g#+ s "(a40 9 *2!E#{0#t8tϤ:U a L2T$18K;FԞ?VEK; t>B40AA0`?CopyrigTt (cu)@2`09@uM@c@os@IfBAr@Qa@]i@n.@ @Ul/P Hs3RePe@vEPd'PB2h,<M#l#_9M/P?]UhzAQ1 L@3FO#۲?Fo2zP dj|_aW{8cUF:&x0?F?Fώ?FX'qoO 0Yifull4ajS?N~dh+ fEeޖe?F<'?F@]?F\F%ol}dQ3ll BXl귺m|ԇbBhaUew```?FV ?FTh oflPI3qoijeðl.` |=T?heFnF$OĒ?F o* leowky{ftGOg˂a,8b1;MHD: )&# ;h0>Th]]9 PB IAUF~Q?F8?FF(e?F=PFo?P t`  IGr?t+>`5q+ tЖZu Mauo8>    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 ,p )l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ As"(a40 9 *2!#{0#΍t8tIϻ:AUa L2$18K;F?VEK; Kt>B4aAA0`?CopyrigTt (c)@2`09@M@c@os@fBAr@Qa@i@n.@ @l/P Hs3RePe@vEPd'P2hX<M#l # M/P?]UhzA(Q1 L@3FO#?Fo2zP dj|a{8cUF:&x0?F?FȎ?F'qoO 0Yifu,oi4ajK?N~d+ fEeޖe?F<'?F@]?FsF%ޕol}dQ3ll BXlRm|bBhaUe`Ԗ``?FV ?FTh oflPIϮ3qoiGkeðl2` |FT?heFnF*OĒ?F o* leowkyftGg˂,,8b1;MHD: )&# T=h0>Th]]9 Q BUF&d29?Ft`0L?F(\µ?F^Sӻ?P Bt`  o?tbS yAP FBuj auo7>RJ[0U?<ALv@tt7 }b6*D&tD  td*JBı) ?A>"b7)D&a4D  V3 D 8/td/tRy.x1x1`?CopyrigTt (c)02`090M0c0os0f21r01a0i0n.0 Al0 8s2e0e0v @d0"h0!<M#l#/MlP> @?UhLAA]R 1 P1"7Ж1bA>!J`oO2z[ dja_q:z׍ Q 6VMB@챝/P\`_m;E,Ui5Uޖ?FQ[5lf\VU'EUY2Ruݯ?FU]˖7sf\pdѣSYUWfe _zx]݅om{ZcXUFRP\g[)JXAp| rhQ#5 IXAYaLPւ?FتcP\T f\3$sXAp"۲ ElX1YA-k?FFoZP\fyf\!XAYX%?F8K7P\{ 䘷f\&SAY&1l?Fr>|]P\-]qiYip~ X1#g~jt-? XAY?F ףp=P\' f\?P=Rw㹥X'RXT}7vP\__/vnTpljlX7U/?$?vQ[E7Ժf\wUQY|>qh|P\4GN"MDX U29_KU#rA0$@C_ HN>Lo3s rFYd߫" EMF(6 #H : B Ӵ N< @e,kPo+8i Ro9BGo oP~' Yp ' b x' e m' i ' l }O' >q^ج' u( Bz D(( ~6H( ʂ (( z (  ( ( c K) ) 9) N ) B]) ) @) iX* A* h* H* . ]* * K* Đ* ߑ hR & * o ~x#* &* l 1&((* )* 7 oG'+* ',* U {' + (#+ RH&+ E5')+  C,+ \ 8h.+  mX+  8+ P 9+  +  + 4 h+ 9Q, w! !(xS, $ U, '*IV, 8+ ?]X@.0Z, 3~9\, 69h^, ]: }'. n>I. B9(. "F . I C&. OW | @SI . W 0&h. +] . ` 8. 2d (. g H. ]l 5'XPp . bu e8. y|@2/ }JY4/ 96/ ;9x8/ ވ9X:/ 9=/ )&PK/ 9/ k~9(/ I/ E*IH߻/ *Iؼo/ ŨNIhB``I00 ~920 I940 i(H60 I70  ~'90 (?:0 L*@&<0 ( 1 }C81 (?$1 0G'&1 T n~''1 [h)1 rI,1 cG/pY21 Y51 9Y91 |9:1 +~j<1  i>1 p h1  ~w1  1 R 1  h1  2  =I߁2 #(2 U& OH2 )82 6.2 12 y5 H2 92 =2 ? ?T wp  ̠ p ʔ  pqwpqwqnwqpqqbqpppw wwwqqEwqpw߄wwrvrrwDrag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aabjZֿ~??cN׿ mF1??SbM1{V↑T*J?@ ?UG DF P# h @T(PYY# QU@jZ?@~??F?Pn} u{` ?Su#؍>>HX HlHYHH EO.LO4:UDDXXUllk'"&R",I'U25ĉq%4 ?"u'4b0{[`:#(26 U9$"3&x9"L1" ^!'>U@ÿ@ǽq^@?@VBӅ?]DSF0ZBu@`-1ZBuW@rCC!8GAB"2C9u`u `"[ b![u`2 %3Qo1o7B`?CopyrigPt0(c)020P90MPcPosPfRQrPQaPiPn 0Al` Xs bePePv`d/`VPs_SBNcPm!#5Qb41,a@o13dX453B^8=%3p63dz6z6 v24#V%30Urz3]ge<^1E U#5m Hq5twL5t{3t{ez1A+E*F7ԂX$18dT-`XQj2y`]r` MPWnuPaPtar,aOQ` UES0uPpK`ePt[eTL5Qdv],1PRd C`uK`bʦ30ޯ𯇡! PPr+=9H^p]ZaDbQUT\Կ濅APaB`Ȩ-5^]oυ% S biP aϭPeTυLPcXūa5DVߪhB:l(`iPg߸̨@߇RPoǩ|Z\@E pAD`~YxČUSPaPePlP,5ƪXp/` ATP-`54`%aPK]狥%Sb?`.A4`W`ZʦT3NwRk qa2$2`_ @Ȩ͒Y;MI`ad(`cz d ϴ兵nēAs DxP)ߑmr:atV%a Iâ@!auoDfP㞑 R `Qa/)/7M`Cl/Pد/M+QUmK`utP ?`/ D*?"?_ (b? (Dv??;Hd2QC K3` Wf}%5DVO#O `C` akO}O#ԅO` M`mRgOOɧDODp __1;OUQ1y?QI_[_CqtJw fo SU@jZ?Fű?%v%vKpIp(u.p` s?vbup` ? B=݉`C,qtMp5mQ-́<)oTm}QX.q͏Pߊӥ T.OtxFf@>|pÿruob쁙JRq KN̒rr$QUvvvrsE"`RoZK1& be9P bb OObr@muP`TaC]1eߊ_e71721bKa aXaaehAaYip P`u`T_`_`Qhڑx4ӥ5f_dP&b鄞pCwF3s͵NSY:3R rV@0e18TR <շqW,@rB* B}aaaahʾYVԐ;n` %̀P&²S$1aa`NEW_ORKP2H IP_!RRЕISQTҷiroohA'0UQ?8!Ԑ0oHD # =hj0>T h]]9  5AU@jZ?F͂T??Fx?SF?P6 jt`  o?tk[>(A Vu aSuo.]&A]  *ԮJU2zGzt?@L#&A@bA#z7 5#1bO(b])j+$j&[ "*(w "?& ?AU$l/%B115 `?CopyrigTt (cu)Q02`09Q0uMI0cG0osA0IfO2@1rC0|1aO0iA0n.Q0 WAl0 G8s2Ueo0eG0v0d0"1E]4MŤ-&3 &7&l>]Uhz811U!J!u6?F+\.>djIIa? >"(EǑ I%K9E 5EU . K ;;5QIWEEEF _KnSA?8@@Bu?FDR> ?Nk"\6`bmMM\j=am {:e P> #? D"? 5-g?j4B7!B{oogr57!ibDAbE9 MuX7_'0U~rN!$a)5 5vIzHD # =hj0>T h]]9  qAU@;?FI5K?@xEL?6ѿP6 t`  bm&Qo?t@@L]WI,#u aiuoL> JU2zGzt;?@L?&A@b}#zs q#1b(b)+$&[9#H",ɺ (wH"?& ?A$ /%9#BV1V15 `?CopyrigTt (cu)02`090uM0c0os}0If2|1r01a0i}0n.0 WAl0 8s2Ue0e0v0d0"O1E]S4MŤ-9#b3 b7&l>]Uhzt1.A!JN!m.%-+0djV1ax߃S(FJ-&?F mO"> ?Nk"L[Majnha_:e P> #? BK=o? n-?j4Bs!B{__Wr5s!D8E6V 6?wj_|_ ^XE.U@z T6?F @' d_mOoT \VyWxRkrVo_bVh*g:n"'UaEjz36>CN>?Bn}]zGvN7V iDAbE9 MX+G'0UJPN!4ae5 MaHD # =hj0>T h]]9  U@jpiH?F^?@$?F]F?P6 t`  !a&ao?t,F=۳=u;u auo>J2zGzwt?@ʐLAw@b#z1b](b!).+I.&[-m(?0& ?A$I0/Q%!!5 `?CopyrigTt (c)02`090M 0c 0os0f21r0@1a0i0n.0 Al[0 8s_2e30e 0vq0dS0T"!E]$M-# %'&l>]Uhz!1!JF% djc~YZ(_N9zOMGE%_EH$SwO"K ңHE ^&_8_WE_OqOHOOi&DAbPE9 MX7'0UUfb>!$a % f1jHD # Uh4>T#]]9 M5AU@jZ?FL|+?@?F({~?P6 JuM` ?u JYt )t7zEA2&L_D?. > >tJU2q K?=@MJ&A@-b9(+bG)T+T&J[#"#a?& ?AH?/`)#115 {`?CopyrigTt (c);020G09;0M30c10os+0f92*1r-0f1ai+0n.;0 Al0 18s2eY0e10v0dy0z"!4B#e-?3 7)& b 0K8>U# ]A]A "1!ъ!PzQ <%OYAJEU . K;;\%W%EF($L[.FX5Eai%?F 6?wL;] W-\TB⤲8?F@&SA?F @ ?Nk"L'`bmMW_Ye[ٯ7 VK=F: [jr ? D"? XZvD?ta@Boogr5;!QEx]SiLO MLGXa~WOTZiAle59 XG"'0Uc&N!$05 .HD # =hj0>T h]]9  IAU@K?FOgVb?FY%?Fwᳬ?PJW?>t`  ^Z?t#ə.E @x?r?/{4܂ G _Z+u u$ >  J JpU?43f<!.&P?b3bbfz@1bAe&bq$d 2zGzt.#@LT"&r(~&i$q)(+}'i"~*#81815 `?Co yrigTt (c)o02`09o0Mg0ce0os_0fm2^1r 1am0i_0n.o0 Al0 e8s2e0ee0v0d0"11E]54M-#D3 %D7.&lUh#7 V1#Ai!J# F/?B1B  VRiAAbE9 MX G{W'0U*R2N!I$a {VZUHPD  # #>h0JTpERI MU@u6?Fjc{g&?@%r`5B?Fm_F:Is?HNtQ`  II?t#]  _ii$!`kNu  iu%wj>M JQ T       "@&&JNU2"?H@Qs#N&A@b(bU)++&RNp}#>H1#19 ?#bbbz| R&/5R}#11`?Co0yrig\t (c)02h090M0c0os0f21r0Aa0i0n.0 Al!@ 8s%Be0e0v7@d@21a4t#-}#3 %746lJ#$JUp5 3 M19 1!q(!FnElrkRt# 8$kcD?@숒@)?FP?P"EkU |1\iOT/irvs}i>`_,of :m ,M ?? S&d2? *b?r4B!B oo1gr #5!>%(EQOOOO__FAc1_C_ D4ևS]_o_yRX+{_,__ #R__ (YQoSo+o=osd {oEeooooooFyUy{* hDVW(I X"c7I!pg bf'iMjSE t%XyG|'0UŢŞN!O4i |UGD # hz0TdYYBU@(%)?Fxg^?@0߯H?Fs7Uݹ?P} t` 87?t#_)TeΦu ]ukv  ̝L&UUU&I&3 U!!`?CopyrigPt _(c) 2\W09 M c os f"!r 1a i n}. Al00U (s42e0e uvF0d(0'HS$#-## 'I?k=#ǒ 2j$B##0U'BM3@&@F0Yk} #HA%DKb5DK3DK5DKED$!GiAZG5(|IDFX7yW'&Dŭ6!4YA yVZHD  # =hj4>T!]]>#AU@0߯H?Fz)e??F˞9q?P6 t`z  ?5t# rXѮu)Nu;):O]ע0 &> # " "+"+"+"+" $+"T-J[U7 ??& bA@ 2b4-#2zGzt#+@ Li68!6 ?}; 72U!:B#AA5 5`?CopyrigTt(c)20F@9M2@c.0@os*@f8B)Ar,@eAa8@i*@n. Al@ 0HsBeX@ej0@v@dx@)21"DM-,;?C G& l>]UhzAE!A#!ְ1J`#@{&pz?FUy{?NT,dKj&b&R&M/8T9K-q?F@F?FdG0 >Nk"?YE*]\LThKjfGD&Qhj ?iU3UGe&Y`?@/Jb)h5oWKoWo;èKod}l$ro`nE2K?Fˌ%4G{?F -q? eZR^{|\?6?vodmP}l>MBe 9 N 1iS? 1?grl#51:PO"4ga@Sq(UE^@O|ǐ[`ߡa v2rbA @3ijD&}laqOz o?#WHZ'Qu=*[^N?F]%P?@O&@ c?FаM<n ?` eb0)\(Pfodm}nv}l?V5(?q$Ix[cN#W{ #iA@&QeE9 MX''0UjdN!0 /HD  # =hj0T h]]9 #]AU@}%?FR$,?@6#V?Fc_3֡w?P6 u` ?u#t  3zM%t3ws%.<%H._'B> #PJU2N贁Nw[?@ʐL+&A@wbu](i+bk)%+&p%#4">9"<5!?& ?M#bbb͓z$ p&"/%T%#L1L15 w`?Co yrigTt (c)02`090M{0cy0oKss0f2r1r 1a0is0n.0 Al0 y8s2e0ey0v0d0"E1E(]I4M-%#X3 X7&l*>(UhE j1#$Ac!J`%#@5e$_F??!foA3nBM( V?FJ-R?@HQ??FS!R?P| llHL6VLD5E+v;*AůʙH: 8snP%$? k?Q? \?4_!__WrA5_! R,U3OC@IL?F4~Kz?P)Oy޾ T!]]>#IAU@܋?F2Oa>?@#r`5B?F*ݷ?P6 t`  >B?\oEt# ŖoZu 0Nu;Y:|8>$# JpU>##<?2& ?5bbbz@b#ANi&bu$'h 2N贁N[2$@ LX"D&v(&m$ :;T'm"*B#d1d15 5`?Co yrigTt (c)020090M0c0os0f21r 1a0i0n.0 Al0 8s2e0e0v0d0"]1"a4M-/p3 p72&l>0>Uhh= 1#!eJ`#&FNTM\jh1B,RBM(!JoUy{O_ e@ So4(D@^Tw?F]֝ä ?Nk"?w_KT\T+\_(Kjӷjmplhj -`\TPQE\Uui,St_o u~!ՠXEO9= T?FL?;uQ_Pm"rA @3sjQ1lğ=GoYniAleE9 MX|'w'0Ur^N!M$|A vzHD  # =hj4>T!]]>#IAU@܋?Fj?@2r`5B?F^ݷ?P6 t`  >B?\oEt# 6ΠZu 0Nu;Y~:#&}>0m8>  PJU2N贁Nwk?@ eL&A( 5bM(b[)h+h+$h&#[-M$#?& ?b$Z*'*B#O1O15 5`?CopyrigTt (c)02U0090M~0c|0osv0f2u1rx01a0iv0n}.0 Al0U |8s2e0e|05v0d0"H1P"L4M-/[3 [7&l>0>Uhh= m1#!S!J`#*&FPUy{_?NTMjC1gc RVMʣ(D#@ ![?F"$. ?Nk"W?IKTLTcKjRlhj p=' (*!)i,SO2Kes9T;QEGUFw6qX}__TM7fTZT\Dž}_P^52XOES"rA 0S#Es3iAleE9 MX|$Gxw'0UrIN!4gA xvzHD  # =hj4>T!]]>#!AU@܋?Fc_v?@#r`5B?F*ݷ?P6 t`  >B?\oEt# ap'EZu 0Nu;Y:|$># BJpU>#͙;? & ?5bbbz@}bAA& K&@ 2zGzt?"K@ L0"&N(bM)+TK/8Z*B<1<15 5`?CoyrigTt (c)s02009s0Mk0ci0osc0fq2b1r1aq0ic0n.s0 Al0 i8s2e0ei0v0d0b"5194M-t/H3 H7T &l>(>UhE=3Z1#E!J!FENTMjN@1h(NoUy{OO e@ o)4(D@^Tw?F]֝ä ?Nk"?'_KD3\T+\(Kj?ӷjmlhj P\ DiAlePsI=MXsG'0UzbZ6N!%$0 sFEjHD  # =hj8>T! ]]>#!AU@܋?F*?@#r`5BW?Fw?P6 t`  >B? \Et#տ|u l4RQu?]>I$>I# JpU>͙#<?& ?9bbbz@b#AE&bQ$$D 2zG[zt#@ L4"&R(^&I$Q)+]'I"^*Bh{.M#To1o15 9`?CoyrigTtk(c)k2009kM0c0os0f21r1a0i0n.k Al0 8s2e0e0v@d0f"h1l4M-:?{3 %{7&l>(>UhE= `51#I!J49fAn^ R)X f"B!Jui,SG?RSlOS u~!N]8-19= T?FL;uQ ?Nk"?YVTQRXQOnğ/=i n (\ wTiAaePE9 MXLg'0UbZiN!)$0 Lf`jUGD # hz4TYYT#BIU@Sj'ో?FL]&?@j>(?FeTot7Ѻ?P} u` ?u#8k/8CU(.88Lt `lm3tϭ^}ѯnAf'wyU~##0UH"?@&#!!*`?CopyrigPt (c) 20 9 M c os f"!r !a i n. Al (s2e e v0d z!~$#B-#,# 'O#^ =$&#4 {6{6 w2$e#ab3W) #LG,%,Dj8Hg\&dPaxO6'TXAXA"(2Ca%?28(B,"iha05( e&XV7 W'G${6!t40 VZHD: # =h4>TB#]]9 T!AU@%?FYp5?@_RP6 u` ?Mu t  !o)t~7RnB25"!)Lv$>   EJtU2q?=@dLA@-wb%(b3)%@+@&[w#?& ?A+/L)R!!5 {`?CopyrigTt (c)'020309'0M0c0os0f%21r0R1ai0n.'0 Alm0 8sq2eE0e0v0de0f"!$MEBY-?# '&rl U# #7 1* #p| '&)1&JH FFѷ |-B1 @V&Rl( b 0Ale59 MX7'0URN!$0% VZUGD D# h0T@dYY]BIU@j>(?F8??F/I6?Pn} 8WdT t`  7?ht#rL&~n[f1uowuwU!!`?CopyrigPtv(cu)v2\09vuMB c@ os: IfH"9!r< u!aH i: n.v WAl @(s"Ueh e@ v d  #S$#$- ## '?w= # &#24 6 6 $B# #0U2 3@& wa#3~  #dH1%4Gi^#5 6X'EGK'4 6! ] EFYJHD # =h4>TB]]9 \#!AU@#.?F/I6?@P t`  gjo?t#T U $YhAn m7 u)hnx Fu!)J hI 97eyh?#!?9& aAbA@_"bg)b$g)bIg$2zGz9#@L@&h*%}$f*+T'_"*BL1L1`?Co}p rigT}t((c)(W2009(M{0]cy0oss0f2Rr1ru01a0is0n.( AUl0 y8s2e0ey0v0d0E1I4Mb-X3 X79&l)Uh# j1#_!J FF$[ 7#e T$V3RiAlPeE9 XW'0URZFN!^0 VHD # =h0>T@h]]9 #U@딃r?F/(?@2?FkF_w?P t`  ;0K?t# y_h:.A>Dj# ixsj||yyh|j|Ay"s"y,"s,"yJ"y^" yr""y"/y"a|"1y"8y":y";y"|`AUhMq@q] y a7T^1 hjP!,!J!^!o$!$U#$%&U'()*+,t|q!a!U234567$9$!1&1>74Ua#[aJ`S@ɞd?F9^2d3Qqs^2tY7N26J6M#hN1y-loG?gn`bDPu6(āThq 6p?F!_T?@R h^*B?PQi e>amabƫWSuMD,Xud3, utSқJ! \&\xZ? $Zas? V =? @S?d2tR@B8BoRį֧r3Cc EH ]&H[Bѻ?@lML6~ ;m`~b&¨r?+J^t/qO@? [,!rPצ 2XQqH zg?F,53lܿu  ?FM9(֜2Ar}JND7UØB]ٿ?@h߾#?Fd~5ȿMuPu`~dg}-S/9u}DѺ f <-@uušJAV+ǥ8xP?\ q|?FKyhQ~2vTPf=?PoyGV(na~u3vu;*G1+u~ݏֻA_ ^Gϯᬅ?oQo!|b0QJX^?Fsm?@@޻Pg?POWLKz Fw^=g%fԧ!6&]JVbGᬤ? o[oQr!rmz@zg?@f(?FVɱC OPKMgBlVܖVVwVsS3O_ܘ=w?FKL?@jP0A`QʱH=lTG5OxOeuF|Fv=/Fꞏ ,-<60 ]Cs~?Mv1E GZ}v -# &<"ݝK-'>TAFd|6δ̙2{# ,',v #cX#JREB'~5-O$ ,RI~  `ܝ-C-X-_]bd% ,Wl' 4%ŀ>-խ@ײc& , Ǡ4 \lb\c>-R땳J ' ,+E :{(b\s"=]& a:U( ,/?Fb\.bLOOMևQ:U) ,!`3?F k?%6fSԿr`* ,Oڿ?F&Kba,e~Lʴ2ͷ+ ,b d?FjFŋݸML, ,Z׺ı?F bҢu W%r;z- ,TUI8?Fs%:v ~LSa@ . ,3Pވ?Fb^vO$)yϊ&Lؾ1/*mCe%f(~5JOAjuLīt~eq>aT~.j&],_10y՚?Fr`QSٵ?F艿O:McfdilFU1i;}m&R F$w|!l~1`-?F~J~ 03y<$-t9BIL{HiG,LDd|jph:OE 4b\{~-K 6,Ku20e%+~L-r; 7,kh}6`E׻L?S)` {A8 $Fٞ@`o?F%&0MuPu9KdfǸ;}-UL󥶚!s@+C9,*}3?F:ט26-*NY'| ݑU8am?FYe~Kp?@ŮM?F@_O`P jBނ> l'xk超VSOB;6{.f9;?@ v%e??Fh1*o/m_~!Wx ~)j |ALyUƅ?PbO__<J+t?F"e?@'IȂl:xl@׭9,&͓S2&n&Yۙo> =~vU^4Q?@,z"TEo-<[?|8q&?FCv?@s&Ŕck>\ :A:z5,7ح-idsjѦD;gcZT#n$!$ɞd?Fх@Z f<x.Ϗ:"r 23ED'佴9Ki PyT A$))X#!('0Uqŝ)) (h(J TEI 3aAU@jZ?F({~+?P >uA` ?u#ΕMJ*A )83*#<VQ 9jQ 9~Q 9Q 93(QA = Q(Q.$* BT`t &h)&4t   4t"z"pbE#"J>U2zGz?@9 3>+6A@"b]8bk9x;x6N2 !\4N%323326 2Mc2b"k9Kh7N2ׯa : R;l   4"ABoogr#5"Ap(U3TH P/?@ yjPvf MuPu@YF]ul9;VmMgHr f 9LTBUx]Si\QE[?MLx/r?FPzQ- %YAxlQY?U . [ ;;\upQYF)$r[.Fxai%?F 6?w\^ W-\Xj ~ɽ7yކ}dOflA=$'p$`4U@x@4S>aai6$xi'e!aS#8&`iMiI51Xԥ'0U6PE0 H?>_;s 枹\$qG"F] #ȸ h_ 5OB ` ~d`Ӵ a @+xn [sGW9zfX :*l  :o :?s :v (:z X:_} F֛Ȩ:ҁ :h 6:? ,: :a : 7:? N: ;% 8:ߠ^: '; (: &UFD  h(^TYYBUFjZ?F~??x<F BPG(?P } X ]B66]  TTUTTT"9Td9TȼHBU?F? ?B@L&d2?@-Q(\.,c(A.sU!&(/)1(  0%YB`'FT,serv2,comput"4di0t0ib04d0n0t;w*0rk!ea| (SG& i?!3E?? ?| wp  p | qw qwqw{pqpqwqqpqvppww'wwwnbwqpwoww6zwxvDrag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aabjZֿ~??cN׿ mF1??*t {V↑T*J?@ ?UG DF P# h @T(PYY# QU@jZ?F~?tP} u` ?u#2>D>HX DHlHYHH EOe.O4:DDXXll*k'"&J",':U2%5%4 ?"'{4b0u{[`:Q1#26"*!^ U9$"3&x9"L61 2!'@>e@ÿ@qn@?@fB?BmDcF0)B-u/@`-1Bu@rCC5GAB"2C9uv`u `"[ۢ b!]u` %3Qo1o7B`?CopyrigPt0(c)020P90MPcPosPfRQrPQaPiPn 0Al` XsbePePv,`d/`VPs_SBNcPm!#E5ab3P=` o13dX45CB ^8=%3p63dz6Pz6 v24#%3+0U'rz3]Jge<^AE U#D5m Hq5twL5t{3t{LEt{t{y {et!{|tYwmAdaT׃IUBT$1H@a@a20)L21632CLB3P1$125jb6w  7C|hh2E)*dQ 8ŔIQIQA11CB;1XrbYqea>!bz1AE:FG$18dT=`XQj2`]r` M`n+uPaPt+arp` ?bup` ? B=ݙ`S,t']p5#mQ-݁<9odm'Qh>qݏPT'._t'xVf@>pÿЅobZbq [Nܒrr$ aUvvvrsU"`Roj[16 beI`bb __br@muP`TaSm1u _u'G1G2Ab[a ahaauhAaYypP` u*`To`o` axx%D5f_d`&b鄮pSF3s͵NSYJCb rV@̓@e8d=`LqW,@r B:р.ǏR}qaqahYV䐷Kn ` %݀P&S41qa`NEWORK`2H Po!RRIJSQ*io"ohAo'0Ua?!0oHD # =hj0>T h]]9  5AU@jZ?F͂T??Fx?SF?P6 jt`  o?tk[>(A Vu aSuo.]&A]  *ԮJU2zGzt?@L#&A@bA#z7 5#1bO(b])j+$j&[ "*(w "?& ?AU$l/%B115 `?CopyrigTt (cu)Q02`09Q0uMI0cG0osA0IfO2@1rC0|1aO0iA0n.Q0 WAl0 G8s2Ueo0eG0v0d0"1E]4MŤ-&3 &7&l>]Uhz811U!J!u6?F+\.>djIIa? >"(EǑ I%K9E 5EU . K ;;5QIWEEEF _KnSA?8@@Bu?FDR> ?Nk"\6`bmMM\j=am {:e P> #? D"? 5-g?j4B7!B{oogr57!ibDAbE9 MuX7_'0U~rN!$a)5 5vIzHD # =hj0>T h]]9  qAU@;?FI5K?@xEL?6ѿP6 t`  bm&Qo?t@@L]WI,#u aiuoL> JU2zGzt;?@L?&A@b}#zs q#1b(b)+$&[9#H",ɺ (wH"?& ?A$ /%9#BV1V15 `?CopyrigTt (cu)02`090uM0c0os}0If2|1r01a0i}0n.0 WAl0 8s2Ue0e0v0d0"O1E]S4MŤ-9#b3 b7&l>]Uhzt1.A!JN!m.%-+0djV1ax߃S(FJ-&?F mO"> ?Nk"L[Majnha_:e P> #? BK=o? n-?j4Bs!B{__Wr5s!D8E6V 6?wj_|_ ^XE.U@z T6?F @' d_mOoT \VyWxRkrVo_bVh*g:n"'UaEjz36>CN>?Bn}]zGvN7V iDAbE9 MX+G'0UJPN!4ae5 MaHD # =hj0>T h]]9  U@jpiH?F^?@$?F]F?P6 t`  !a&ao?t,F=۳=u;u auo>J2zGzwt?@ʐLAw@b#z1b](b!).+I.&[-m(?0& ?A$I0/Q%!!5 `?CopyrigTt (c)02`090M 0c 0os0f21r0@1a0i0n.0 Al[0 8s_2e30e 0vq0dS0T"!E]$M-# %'&l>]Uhz!1!JF% djc~YZ(_N9zOMGE%_EH$SwO"K ңHE ^&_8_WE_OqOHOOi&DAbPE9 MX7'0UUfb>!$a % f1jHD # Uh4>T#]]9 M5AU@jZ?FL|+?@?F({~?P6 JuM` ?u JYt )t7zEA2&L_D?. > >tJU2q K?=@MJ&A@-b9(+bG)T+T&J[#"#a?& ?AH?/`)#115 {`?CopyrigTt (c);020G09;0M30c10os+0f92*1r-0f1ai+0n.;0 Al0 18s2eY0e10v0dy0z"!4B#e-?3 7)& b 0K8>U# ]A]A "1!ъ!PzQ <%OYAJEU . K;;\%W%EF($L[.FX5Eai%?F 6?wL;] W-\TB⤲8?F@&SA?F @ ?Nk"L'`bmMW_Ye[ٯ7 VK=F: [jr ? D"? XZvD?ta@Boogr5;!QEx]SiLO MLGXa~WOTZiAle59 XG"'0Uc&N!$05 .HD # =hj0>T h]]9  IAU@K?FOgVb?FY%?Fwᳬ?PJW?>t`  ^Z?t#ə.E @x?r?/{4܂ G _Z+u u$ >  J JpU?43f<!.&P?b3bbfz@1bAe&bq$d 2zGzt.#@LT"&r(~&i$q)(+}'i"~*#81815 `?Co yrigTt (c)o02`09o0Mg0ce0os_0fm2^1r 1am0i_0n.o0 Al0 e8s2e0ee0v0d0"11E]54M-#D3 %D7.&lUh#7 V1#Ai!J# F/?B1B  VRiAAbE9 MX G{W'0U*R2N!I$a {VZUHPD  # #>h0JTpERI MU@u6?Fjc{g&?@%r`5B?Fm_F:Is?HNtQ`  II?t#]  _ii$!`kNu  iu%wj>M JQ T       "@&&JNU2"?H@Qs#N&A@b(bU)++&RNp}#>H1#19 ?#bbbz| R&/5R}#11`?Co0yrig\t (c)02h090M0c0os0f21r0Aa0i0n.0 Al!@ 8s%Be0e0v7@d@21a4t#-}#3 %746lJ#$JUp5 3 M19 1!q(!FnElrkRt# 8$kcD?@숒@)?FP?P"EkU |1\iOT/irvs}i>`_,of :m ,M ?? S&d2? *b?r4B!B oo1gr #5!>%(EQOOOO__FAc1_C_ D4ևS]_o_yRX+{_,__ #R__ (YQoSo+o=osd {oEeooooooFyUy{* hDVW(I X"c7I!pg bf'iMjSE t%XyG|'0UŢŞN!O4i |UGD # hz0TdYYBU@(%)?Fxg^?@0߯H?Fs7Uݹ?P} t` 87?t#_)TeΦu ]ukv  ̝L&UUU&I&3 U!!`?CopyrigPt _(c) 2\W09 M c os f"!r 1a i n}. Al00U (s42e0e uvF0d(0'HS$#-## 'I?k=#ǒ 2j$B##0U'BM3@&@F0Yk} #HA%DKb5DK3DK5DKED$!GiAZG5(|IDFX7yW'&Dŭ6!4YA yVZHD  # =hj4>T!]]>#AU@0߯H?Fz)e??F˞9q?P6 t`z  ?5t# rXѮu)Nu;):O]ע0 &> # " "+"+"+"+" $+"T-J[U7 ??& bA@ 2b4-#2zGzt#+@ Li68!6 ?}; 72U!:B#AA5 5`?CopyrigTt(c)20F@9M2@c.0@os*@f8B)Ar,@eAa8@i*@n. Al@ 0HsBeX@ej0@v@dx@)21"DM-,;?C G& l>]UhzAE!A#!ְ1J`#@{&pz?FUy{?NT,dKj&b&R&M/8T9K-q?F@F?FdG0 >Nk"?YE*]\LThKjfGD&Qhj ?iU3UGe&Y`?@/Jb)h5oWKoWo;èKod}l$ro`nE2K?Fˌ%4G{?F -q? eZR^{|\?6?vodmP}l>MBe 9 N 1iS? 1?grl#51:PO"4ga@Sq(UE^@O|ǐ[`ߡa v2rbA @3ijD&}laqOz o?#WHZ'Qu=*[^N?F]%P?@O&@ c?FаM<n ?` eb0)\(Pfodm}nv}l?V5(?q$Ix[cN#W{ #iA@&QeE9 MX''0UjdN!0 /HD  # =hj0T h]]9 #]AU@}%?FR$,?@6#V?Fc_3֡w?P6 u` ?u#t  3zM%t3ws%.<%H._'B> #PJU2N贁Nw[?@ʐL+&A@wbu](i+bk)%+&p%#4">9"<5!?& ?M#bbb͓z$ p&"/%T%#L1L15 w`?Co yrigTt (c)02`090M{0cy0oKss0f2r1r 1a0is0n.0 Al0 y8s2e0ey0v0d0"E1E(]I4M-%#X3 X7&l*>(UhE j1#$Ac!J`%#@5e$_F??!foA3nBM( V?FJ-R?@HQ??FS!R?P| llHL6VLD5E+v;*AůʙH: 8snP%$? k?Q? \?4_!__WrA5_! R,U3OC@IL?F4~Kz?P)Oy޾ T!]]>#IAU@܋?F2Oa>?@#r`5B?F*ݷ?P6 t`  >B?\oEt# ŖoZu 0Nu;Y:|8>$# JpU>##<?2& ?5bbbz@b#ANi&bu$'h 2N贁N[2$@ LX"D&v(&m$ :;T'm"*B#d1d15 5`?Co yrigTt (c)020090M0c0os0f21r 1a0i0n.0 Al0 8s2e0e0v0d0"]1"a4M-/p3 p72&l>0>Uhh= 1#!eJ`#&FNTM\jh1B,RBM(!JoUy{O_ e@ So4(D@^Tw?F]֝ä ?Nk"?w_KT\T+\_(Kjӷjmplhj -`\TPQE\Uui,St_o u~!ՠXEO9= T?FL?;uQ_Pm"rA @3sjQ1lğ=GoYniAleE9 MX|'w'0Ur^N!M$|A vzHD  # =hj4>T!]]>#IAU@܋?Fj?@2r`5B?F^ݷ?P6 t`  >B?\oEt# 6ΠZu 0Nu;Y~:#&}>0m8>  PJU2N贁Nwk?@ eL&A( 5bM(b[)h+h+$h&#[-M$#?& ?b$Z*'*B#O1O15 5`?CopyrigTt (c)02U0090M~0c|0osv0f2u1rx01a0iv0n}.0 Al0U |8s2e0e|05v0d0"H1P"L4M-/[3 [7&l>0>Uhh= m1#!S!J`#*&FPUy{_?NTMjC1gc RVMʣ(D#@ ![?F"$. ?Nk"W?IKTLTcKjRlhj p=' (*!)i,SO2Kes9T;QEGUFw6qX}__TM7fTZT\Dž}_P^52XOES"rA 0S#Es3iAleE9 MX|$Gxw'0UrIN!4gA xvzHD  # =hj4>T!]]>#!AU@܋?Fc_v?@#r`5B?F*ݷ?P6 t`  >B?\oEt# ap'EZu 0Nu;Y:|$># BJpU>#͙;? & ?5bbbz@}bAA& K&@ 2zGzt?"K@ L0"&N(bM)+TK/8Z*B<1<15 5`?CoyrigTt (c)s02009s0Mk0ci0osc0fq2b1r1aq0ic0n.s0 Al0 i8s2e0ei0v0d0b"5194M-t/H3 H7T &l>(>UhE=3Z1#E!J!FENTMjN@1h(NoUy{OO e@ o)4(D@^Tw?F]֝ä ?Nk"?'_KD3\T+\(Kj?ӷjmlhj P\ DiAlePsI=MXsG'0UzbZ6N!%$0 sFEjHD  # =hj8>T! ]]>#!AU@܋?F*?@#r`5BW?Fw?P6 t`  >B? \Et#տ|u l4RQu?]>I$>I# JpU>͙#<?& ?9bbbz@b#AE&bQ$$D 2zG[zt#@ L4"&R(^&I$Q)+]'I"^*Bh{.M#To1o15 9`?CoyrigTtk(c)k2009kM0c0os0f21r1a0i0n.k Al0 8s2e0e0v@d0f"h1l4M-:?{3 %{7&l>(>UhE= `51#I!J49fAn^ R)X f"B!Jui,SG?RSlOS u~!N]8-19= T?FL;uQ ?Nk"?YVTQRXQOnğ/=i n (\ wTiAaePE9 MXLg'0UbZiN!)$0 Lf`jUGD # hz4TYYT#BU@5?F;?@ t2?F`0 ֺ?P} u` ?u#+/8<&L9`d<ft99(.8P8L``Uttyt mH 8"tC"hfc!N&>'nJ!O%X'm= 'p ~i##0U"K?@&S#a!1!1*"`?CopyrigPt (c])X020d09X0uMP0cN0osH0IfV2G1rJ01aV0iH0n.X0 WAl0 N8s2Uev0eN0v0d0"14J#B-#-3 -7#^=$.6#@DFPF B$e 0^dA\C #HA%DK%D8K5D`KEDdKEDg&Ca_'TAA""(Pa%288BKc`DcE ciha5 6rX7fg'$)F!DA ffzjUHPD  # #>h,JTEI MU@jZ?F@s??FX7`/?HmNuQ` o?u# j>tMtQ 1@t PATOQ E O#l|O6,2c J^vNt, "t "QwNbo ?!FVxNo]2УɆX3BUYU>VZ\)_ W거QUTAQ LG4CaCa_* Q_*____ o2f 8CT]?FoYDȡ?@ ~1pc} 9dS0]Yb<=p\/_ RT)4HtvzI!| ?^_AV,uݹ:4Z\o &Ja ʆXBU 9A1p@߄ߝZ\X9 (p\P΀dˆXEBUp2t Z\5q[,=6B҆XaU̓쬏 qXa>YU . [[ ;;p\Ua>YF`rZYoQUaai%?FzP4Z\^ W-p\] xTy8?F.?@@SA?FWk@ ?Nk"_|5`bmMp\PB|y[7 ơ|`?])?p*FWAX|a筃,H7~Z\?bxT?:!G4QڡUeB_T_f_x_DOOkoooZ}u?FU2Ty9=ŏsҟGO"vP_?@mlփ?Ff>> }= R3|Ofѡ|&['aޯ)d3#ux"@4SK 6ASʎy'e>'"Y`r,iMm׹ ߵl%1X~G׷_'0UJ26L50Ov ׶HD: # =h4>TB#]]9 TqAU@1D)?FL"ߛ$??Fٵ #ָ?P6 u` ?u4 t  ]<)t7񿗯)2)LEkL>  JtU2qD ?=@LC&A@-bu(b)+&񆤍[=#L"#a?& ?AH{/)=#@1@15 {`?CopyrigTt (c)w02009w0Mo0cm0osg0fu2f1ri01a; ig0n.w0 Al0 m8s2e0em0v0d0"91=4MB=#e-OL3 L7&l>  U#,|A|A9 $] t^1*=# #p Kw&&J`=#R&F 2'_b0CwvA kRqVM(~"!;ɡ?@<3?F ?P-DT! ;d1?Y=:ZTO㿂f{OaB J4 13? v,? (N_?r5w!:8oJo\g"a@jS(.8R!ZFI nx4__ D_U5U,VS?@g$ ?F~4,ێ~@ 8_H_ZTml`KDfl`'E4q2d8R鿃oo`rmkod&'aE2%_7USr(A@z#y3ae&b{, fZT5sae~t?FG=Va|7>-\氹pAiʈ$%?F(XoZ1a|}%\Iii ^WB^:fvEZT˒AiU?FAx߾Ya|k#ӝY~/Yt(Ae o0AleP59 MX=GL"'0UŢbN!40 O5 |HD: # =h4>TB#]]9 T]AU@R7)?Fy߈C??F"ָ?P6 u` ?u4 t  *5y")t7n)2)LI"+BA B JU2q0 ?=@L/&A@ybm#zc a#-bK{(m {(+I&)#Kڬ !?& ?A"&g$bbu/b /%)#Bo1o15 {`?CopyrigTt (c])020090uM0c0os0If21r01a0i0n.0 WAl0 8s2Ue0e0v@d0"h1l4M!E)#𤲝-DO{3 {7&l> U#,AA9 ] 18! #p %J`)#@~t?F # 0hU-~-/HA RVM(ET"rYD?@J-?F-' 9d 0_Y b%r\_oӫ([MFoFl 77]8>!Zݹ:4\\o?gƭkdQEF5W4?@A=?F[Q`??P-DT! :U^Zs[ #l@*p9lJjV\\l_ I&vpkhAzi!J?F߸TF\\Ͼ\zT khzinA9f@.mY <\\ԕ$ ,S{khAzi׍8r?Fį^?m ? ~_5 ә(Ae 0AleE9 MXlGR'0UuőN!40 ~5 ,@HD: # =h4>TB#]]9 TU@~t?FYaJE??F? ~?P6 u` 7?u t  }A_)t7Ǫ+)2)L^A]>REJt2q?R=@LA@-bbJ )+&L ;W!?m&L ?A" &zbbbOz /R;%!!5 {`?CopyrigTt (c)(020409(0M 0c0os0f&21r0S1ai0n.(0 Aln0 8sr2eF0e0v0df0>"!$MDO!EY-?# 'm&l> 0>U#3 -A9 B1 #p ;%J`F(jdO C]Se֑  FM(HC-O"K[%qU5)UuBТ:DY=~W\GUE2OE#rA 0"S3QhA%YB[)xIB_STD(Pd 0Ale59 MX7|B'0UbN!$1A5 fjHD # =hj0>T h]]9 U@/?Fxpz?@]JQ?Fk],>Uh@ !f$; hp _Q%Jd(jcZ(sEp!$a VZHD # =hj0>T h]]9 U@~t?Fxpz?@?Fx?vÂE?P6 t`  }A_?t#%_ ,u auo>J2zGzwt?@ʐLA@bu+b)%#+#&!yHa$?x&L ?A+!#+,1'!!5 `?CopY rigTt (c)(02`09(0M 0c0os0f&21r0S1a&0i0n.(0 Aln0 8sr2eF0e0v0df0I"!E]$M-# %'x&l>],>Uhh 1[$ hp  F%Jdjc%O(Eq!$a VjHD: )# Uh4> T]]9 M#AU@#ܡ,?Fb?JP WJtM`  ?t# AJb $>h g JQubhr6 u!>h=U7Jyb?!A?3& [AJ~CA@Y"wba)b$a)'ba$2zGz3#@MJ&b*%w$`*Q+'Y"**F1F1`?Cop rigTt(c)2009Mu0cs0osm0f{2l1ro01a{0im0n. Al0 s8s2e0es0v0d0?1EC4*-R3 %R73&l& UhVE9 `d1#Y!  FFU 7C@VCi@Ale759 XW'0UjR@N!N$0 VHD: )# Uh0>Th]]9 PM#U@X?Fg.?@DE`v?FepA1D?P JtM`  ;0K?t#˯ yh:.A>j# ixsj||"yy h|yy"s"j|,"s," |J""y^" yr"""y"/y" a|"1y""8y":y"";y"JU2z?Gz:1?N1HSJVAL0bXbY[R[VJSON9;?Ax74Ual#aX`S@fN:O6?F9^2d3QqsR^2tY7+"LN26J6RJN1v{+0?F2rn`XDPk6(āThqZMiڲ?FȒ?@%~?džm@`?PR߷i e>amaXƫWSkMD,Xkd3, ktS?J! \&\xZ? $Zas? V =? ?@?d2tR%߀@8BoR4̧r3cu>XRVSwSy?@r$Wè ;m`X&¨r+J^j{/qO@ [jrPͦ 2XQqE>L?F,D?@ cK'ةhzq 6ѱn|3wsW\ۉ>53lҿ侨gnxP?Fa"&~̜2Ah~sJN:@8PKNWM?@0R?Fw+PuP~y`~dg~~s̜ʪ}Bk3a ,?|IF%̜O,nA3O"?̜g'R S;x+#]Ǯ.uǥ8nP\ {r|%ʿs?Fcj˰?@3?FJ?Poy=V(nxW~u3vk;*G!v+u~ݏֻA_ ^=ů׬{5oGorb&Q"P C.?@M:P̈́} ?PNWLKz Fw^=g%fuԧ!6&{]JVbGᢤ oQo׬Qhzrmٿdlƣn@"N@0?@NPXcC OwPKMgBlVܖF{VmVsOS3E_dNF+P?F_iVJ͸?@9;+0}0'Z,H3wlTG5EnOe{uF Fv=/<~R2d0Pm%s~? MvO1; ܿ;t l h-`w?F?6z?Ϋ9W7FOQ1}M4ڔC͏&ِ1Wi!~RѪV? el 3~]_>-#O &2"ܿ#˕G GWAS?@nA8 ?1ІCѵzT]4-'>T7Fd6Ĵ̏2q#~R|Rl uްJREB'+-E$RߎD~ CXн-C-X-]bd%R| j#$ 4-խ@c&Rf^+ !̠Bd% c~4-Rꕳ@ 'R[\e'? }ķp)~ s"ޗ=?]& as(R lM?FAo .bLOMQs)R ^D^*%6VIrV*R2T?F8]X^*a,eLʴ2ͭ+R ug?FdpA1DݸoL,R;0 W%r;p-RH)?F76˸ LSa@ .RPe6˜R|)yϊ&Lؾ1/|EԈ1f?FFX ر}+ ķ&OjuLīt[q>aJ.j&S"_10|*?F `Jԭ%1+.nNMcfdilFU1i1}m&H F$w|!bt1|q59>?F>FK׀*F/BIL{Hi<[cԍ(=Pї!32$f ˂}sD|2k!f{30%_ʣz?T `c`Tw4G,~LDd|`pta?FVynZ{~~-K6~Ka0?F>&Dw@}|%+)~K-r;7F?FTa|E׻LS)`qA8|}FSP`M{ r?FhPuS@/}Kdf1}-U{Ls@+C9\}K;:*N}O'| ݇Uaqyli!&,$e?@hu?FA3]{ӿP jBނ>\'xk|OVO;|Pq2.?@`Ȩ?Fn |%c_Wx ~)j |A LyU{PbE__<|*&G&?F4J?@2s+M{0xl@ף9,͟S2n?&Yۏo4=|4P `RZC?@b* o0Z d֣r~Pz;'Uo};}לSU>T|m?F3|TsDܷ[ڣ̭?|X?F _PМؓ?@1}v򅗫0z5,7-i~ dsjќD;gcZT#dfN:6RDž@2]Kc$Lŏ0r ڝ 23E솤Dʟ佴/AiऑTAX'0Ugœ 2UGD # hz0TdYYBIU@zUϰ?Fz^?@#ܡ,?Fbݱ?P} t`  ?t#H$IpZίP!::8vgpqu B`Ufpp5uU!!`?CopyrigPt (c)J 2\09J MB c@ o%s: fH"9!r< u!uaH i: n.J _ Al @(Us"eh e@ v d  #S$#- #l# '?R= # &#24 6 6 2$ZB# #0U2 3@& a#3~  #pH1%4GicP#5 6X'.EG'4 6%!4] EFYJ_dH >;s w2mUqCU_ܾFv #F  VOB U j ~dӴ uo@+Uw o[sG:3 G fF3? H3 HK3 (M3 XO3  14 Z F֛54 64 6 6:4 l <4 n ?4 / 5 75 NH5 [ B3 b _5 *9x5  <9H 5 ' Vx 5 } X /5 ( %x5  5 3 G&UFD  h(^TYYBBUFjZ?F~??x<F BP(?P } kXt BW66 W TTTTT9ȅH?Q?G ?B@L&ɯd2?"-3(?\.E(#. sUk!i&/J( G 0gB`.email,SNM,serv 2,co puT.3d s.r b 4d n 0tw0rk!e^| (QSG& q ?%7I??? wpwp pqwqqqwqwq}pqqqpppw,wwwqqgawqp~wwww;yDrag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aabjZֿ~??cN׿ mF1?? m{V↑T*J?@ ?UG DF P# h @T(PYY# [U@jZ?@~?tP} u` ?u#2>D>HX DHlHYHH EAEdR9.&؍>DDXXllRu'9b"",'US2&5/4&3 ?"'4Wb0{['`:[1#2!6"d^Q_9$7&9"/L6 2&!'ݯ>o@ÿ@qx@?@-pB?wDmF03Bu9@`҈-1Bu @r#CC5 ",CAB2Cm9u`u `"[ b!u`/3Qy1y7B`?CopyrigPt0(c)020P90MPc.PosPfRQrPaaPiPn 0Al ` Xs$bePePv6`d"/`VPs_SBN cPm_!#5P8k` 7Fay1&3db4&5܀MB=/3z6&3d66 2&4#/30U1r3]%ge<^AE U#"&5m Hq&5twV5t{3t{VEt{t{y {etd{|tY wmda*V_BTAJa$Ja&203V21@3 2MVB3Z1125tb6 ta$taC|èEhhPÓnQ* ϔ8ܔAPꓰMB111;@cqcqba>*Ab1%EQF^.1XA#8dTG`XQ"y`])r` M`WnuPaPt5arFaiQ` WEqiPm6`nPvd{V5QX]1PRd*ơ ]`ue`bͯ߯@30! P`r@RdSH@ȱ]C5D6bQ۱eʿܿ{"\ ϬAP9a:B`諸75^ϖϬ% S:bi`#aweT ߬ぶLPchCekT}ߏBalB`i`g̨9@߮,RPoڂ|EZ\@ =phDBU T)?ar0TPpVrKB` B`sR;IY`A Y`Q@;bmr:PeExab!gD"qQr2w`ijJSCC ` TsR\͒kXV` ?ON`1ڒPN`SbY`(|~PEe`a 蘒Z Nwbk4a+.2`\d: IpadB`5cwϯJ)nĺskAx/&/ImTat f?a ];a£rl/kf//ő R pa/a//((/&?4/M`Ci?5?'+ pu"tPf!?BkQ OO"Ȁ\=O_OOkv(OOKHdBQ#CġHC` Wc!wV_ _ C]0ah_z_yi_'`M@m@_2d__vkpoo.KOB%fy "(p5j-T^u uqE珽 ST1.i1xACw>門ÿތc$bel erłłՆ߂^B2`RoUK=e2jrb ]]br-@O"Wyrl]u``dvx~jc*<Q_c--4A4Bj(6yB1B1*P{£qqqDqcҴzQaig6``!-uA`}ż @avh{zI5_}v&ﲄПF3s͵NSYFvy߂f!@v>8M{>6M>Ocլra~g,@wBQ&8P\UqUq}zʷ@ifz}!` %P&4odAA첱UqNNTWORKJeH0P\1RRISQBito̔3GQM'0UƗ?Ϳ10WƕHD # =hj0>T h]]9  5AU@jZ?@͂T??@x?SF?P6 jt`  o?tk[>(A Vu aSuo.]&A]  *ԮJU2zGzt?@L#&A@bA#z7 5#1bO(b])j+$j&[ "*(w "?& ?AU$l/%B115 `?CopyrigTt (cu)Q02`09Q0uMI0cG0osA0IfO2@1rC0|1aO0iA0n.Q0 WAl0 G8s2Ueo0eG0v0d0"1E]4MŤ-&3 &7&l>]Uhz811U!J!u6?@+\.>djIIa? >"(EǑ I%K9E 5EU . K ;;5QIWEEE@ _KnSA?8@VBu?@DR> ?Nk"\6`ObmMM\j=am {:e 뇿P> #? D"? 5-gg?j47!B{oogrK57!ibDAbE9 MX7'0U~rN!R$a)5 5vIzHD # =hj0>T h]]9  qAU@;?@J5K?@xEL?6ѿP6 t`  bm&Qo?t~@@L]WI,#u auoL> @JU2zGzt?@L?&A@b}#zts q#1b(Wb)+&[9#H",ɺ (;H"?&L ?A$ /R%9#V1V15 `?CopyrigTt (c)02`090M0c0os}0f2|1r01a0i}0n.0 Al0 8s2e0e0v0d0"O1E]S4Mb-9#b3 b7I&l>]Uhzt1.AF!JN!n.%-+0rdjV1ax߃)(@K-&?@ mO"> ?Nk"PL[Majnha_:e 뇿P> #? BK=o? n-g?j4s!B{__Wr5s!D8E6V 6?wj_|_ ^XE.U6Vz T6?@ @ d_mOoT ݬ\VyWxRkrVo_bVh*g:n"'UaEjz36>C~N>?Bn]_zGvN7ViDAbE9 MX+G'0UPN!R4ae5 MaHD # =hj0>T h]]9  U@jpiH?@^?@$?@]F?P6 t`  !a&ao?t,F=۳=u;u auo>J2zGzwt?@ʐLAw@b#z1b](b!).+I.&[-m(?0& ?A$I0/Q%!!5 `?CopyrigTt (c)02`090M 0c 0os0f21r0@1a0i0n.0 Al[0 8s_2e30e 0vq0dS0T"!E]$M-# %'&l>]Uhz!1!J@% djc~YZ(_N9zOMGE%_EH$SwO"K ңHE ^&_8_WE_OqOHOOi&DAbPE9 MX7'0UUfb>!$a % f1jHD # Uh4>T#]]9 M5AU@jZ?@L|+?@?@({~?P6 JuM` ?u JYt )t7zEA2&L_D?. > >tJU2q K?=@MJ&A@-b9(+bG)T+T&J[#"#a?& ?AH?/`)#115 {`?CopyrigTt (c);020G09;0M30c10os+0f92*1r-0f1ai+0n.;0 Al0 18s2eY0e10v0dy0z"!4B#e-?3 7)& b 0K8>U# ]A]A "1!ъ!PzQ <%OYAJEU . K;;\%W%E@($L[.FX5Eai%?@ 6?wL;] W-\TB⤲8?W&SA?@ @ ?Nk"L'`bmMW_Ye[7 VK=F: [jr ? D"? X?ZvD?a@Boogr5;!QEؿx]SiLO MLXa~WOTZiAle59 XG"'0Ujc&N!$05 .HD # =hj0>T h]]9  IAU@K?@OgVb?@O?@X5?PJW?>t`  ^Z?t#ə.b?T@[ u?/CG<_Z+u u$ >  J JpU?43f<!.&P?b3bbfz@1bAe&bq$d 2zGzt.#@LT"&r(~&i$q)(+}'i"~*#81815 `?Co yrigTt (c)o02`09o0Mg0ce0os_0fm2^1r 1am0i_0n.o0 Al0 e8s2e0ee0v0d0"11E]54M-#D3 %D7.&lUh#7 V1#Ai!J# F/?B1B  VRiAAbE9 MX G{W'0U*R2N!I$a {VZUHPD  # #>h0JTpERI MU@u6?@ic{g&?@%r`5B?@n_F:Is?HNtQ`  II?t#\  _ii$"`kNu  iu%wj>M JQ T       "@&&JNU2"?H@Qs#N&A@b(bU)++&RNp}#>H1#19 ?#bbbz| R&/5R}#11`?Co0yrig\t (c)02h090M0c0os0f21r0Aa0i0n.0 Al!@ 8s%Be0e0v7@d@21a4t#-}#3 %746lJ#$JUp5 3 M19 1!q(!@oElrkRt# 8$lcD?@숒@)?@P?P"EkU |1\iOT/irvs}i>`_,of :m ,M ?? S&d2? *b?r4B!B oo1gr #5!>%(EQOOOO__@Ac1_C_ D4ևS]_o_zRX,{_,__ #R__ (YQoSo+o=osd {oEeoooooo@zUy{* hDV!VV(I X"c7I!pg bf'iMjSE t%XyG|'0UŢŞN!O4i |UGD # hz0TdYYBU@(%)?@xg^?@0߯H?@s7Uݹ?P} t` 87?t#_)TeΦu ]ukv  ̝L&UUU&I&3 U!!`?CopyrigPt _(c) 2\W09 M c os f"!r 1a i n}. Al00U (s42e0e uvF0d(0'HS$#-## 'I?k=#ǒ 2j$B##0U'BM3@&@F0Yk} #HA%DKb5DK3DK5DKED$!GiAZG5(|IDFX7yW'&Dŭ6!4YA yVZHD  # =hj4>T!]]>#AU@0߯H?@z)e??@˞9q?P6 t`z  ?5t# rXѮu)Nu;):O]ע0 &> # " "+"+"+"+" $+"T-J[U7 ??& bA@ 2b4-#2zGzt#+@ Li68!6 ?}; 72U!:B#AA5 5`?CopyrigTt(c)20F@9M2@c.0@os*@f8B)Ar,@eAa8@i*@n. Al@ 0HsBeX@ej0@v@dx@)21"DM-,;?C G& l>]UhzAE!A#!ְ1J`#@{&pz?@Uy{?NT,dKj&b&R&M/8T9K-q?x6@F?@dG0 >Nk"?YE*]\LT_hKjfGD&Qhj iU3UGe&Y_`?@/b%)h5oWKoWo;KTod}l$roҥ`nE2K?@ˌ%4G{?@ -q eZ̿R^{|\6?vodmP}l>MBe 9 N 1iS? 1?g]rl#51:O("4ga@Sq(UE^@O|ǐ[`Ρa g v2rA @3ijD&}l迲aqOz o?#WHZ'Qu=*[^N?@]%P?@O&@ c?@аM<n ?` eb0)\(Pfodm}nv}l?V5(?q$Ix[cN#W{#iA&QeE9 MX|''0UdN!0 /HD  # =hj0T h]]9 #]AU@}%?@R$,?@6#V?@c_3֡w?P6 u` ?u#t  3zM%t3ws%.<%H._'B> #PJU2N贁Nw[?@ʐL+&A@wbu](i+bk)%+&p%#4">9"<5!?& ?M#bbb͓z$ p&"/%T%#L1L15 w`?Co yrigTt (c)02`090M{0cy0oKss0f2r1r 1a0is0n.0 Al0 y8s2e0ey0v0d0"E1E(]I4M-%#X3 X7&l*>(UhE j1#$Ac!J`%#@5e$_F??!foA3nBM( V?@J-RHQ??@S!R?P| llHL6VLD5E+v;*AʙH: 8snP%$? k?Q? \?f4_!_t_Wr5_! R,U3OC@IL?@4~Kz?P)Oy޾ T!]]>#IAU@܋?@2Oa>?@#r`5B?@*ݷ?P6 t`  >B?\oEt# ŖoZu 0Nu;Y:|8>$# JpU>##<?2& ?5bbbz@b#ANi&bu$'h 2N贁N[2$@ LX"D&v(&m$ :;T'm"*B#d1d15 5`?Co yrigTt (c)020090M0c0os0f21r 1a0i0n.0 Al0 8s2e0e0v0d0"]1"a4M-/p3 p72&l>0>Uhh= 1#!eJ`#&@NTM\jh1B,RBM(!JoUy{O_ e@ So4(DF^Tw?@]֝ä ?Nk"?w_KT\T+\(Kj?ӷjmlhj -`\TPQE\Uu?i,St_o u~!XEO9= T?@L;uQ_Pm"rA @3sjQ1lğ= GoYniAlePE9 MX'w'0UrJ^N!M$|A vzHD  # =hj4>T!]]>#IAU@܋?@j?@2r`5B?@^ݷ?P6 t`  >B?\oEt# 6ΠZu 0Nu;Y~:#&}>0m8>  PJU2N贁Nwk?@ eL&A( 5bM(b[)h+h+$h&#[-M$#?& ?b$Z*'*B#O1O15 5`?CopyrigTt (c)02U0090M~0c|0osv0f2u1rx01a0iv0n}.0 Al0U |8s2e0e|05v0d0"H1P"L4M-/[3 [7&l>0>Uhh= m1#!S!J`#*&@PUy{_?NTMjC1gc RVMʣ(D#F ![?@"$. ?Nk"?+IKTLTcKjRlhj p= (*!)i,SO2Kes9T;QEGUFw6qX}__TM7fTZT\Dž}I_P^52O,ES"rA 0S# Es3iAlePE9 MX$Gxw'0UrJIN!4gA xvzHD  # =hj4>T!]]>#!AU@܋?@c_v?@#r`5B?@*ݷ?P6 t`  >B?\oEt# ap'EZu 0Nu;Y:|$># BJpU>#͙;? & ?5bbbz@}bAA& K&@ 2zGzt?"K@ L0"&N(bM)+TK/8Z*B<1<15 5`?CoyrigTt (c)s02009s0Mk0ci0osc0fq2b1r1aq0ic0n.s0 Al0 i8s2e0ei0v0d0b"5194M-t/H3 H7T &l>(>UhE=3Z1#E!J!@ENTMjN@1h(NoUy{OO e@ o)4(DF^Tw?@]֝ ?Nk_"?'_KD3\T+\(Kjjmlhj P\DiAlesI(=MXsG_'0Uzb6N-!%$0 sFEjHD  # =hj8>T! ]]>#!AU@܋?@*?@#r`5BW?@w?P6 t`  >B? \Et#տ|u l4RQu?]>I$>I# JpU>͙#<?& ?9bbbz@b#AE&bQ$$D 2zG[zt#@ L4"&R(^&I$Q)+]'I"^*Bh{.M#To1o15 9`?CoyrigTtk(c)k2009kM0c0os0f21r1a0i0n.k Al0 8s2e0e0v@d0f"h1l4M-:?{3 %{7&l>(>UhE= `51#I!J49fAn^ R)X f"B!Jui,SG?RSlOS u~!N]8-19= T?@L;uQ ?Nk"?YVTQRXQOnğ/=i n (\ wTiAaePE9 MXLg'0UbZiN!)$0 Lf`jUGD # hz4TYYT#BqU@ t2?@D&d2?@$p?@|>׺?P} u` ?u#Lk/89L<`(.88LL`t m۶m3tبפUC~#9#0Up"?҃@/&9#!!!G*`?CopyrigPt (c) 20 9 M c. os f"!r 1a i n. Al&0 (s*2e ej v<0d0'"@!$0#B-9## 'w#^=9$&0#466 2R0$e#$^ P#30%T% 9#LHLA0%XDcKT%XD8cGg&daO^'BTcAcA0"-()Ca0%g2 ATB_6Si@haX5 &X~7aW'o$Ŵ6!40 aVuZHD: # =h4>TB#]]9 TU@$p?@|>W?P6 u` ?Mu t  )At72(L>REJt2q?=@LA@-bb )+&񆤍[Z#?m& ?A/$)R!!5 {`?CopyrigTt:(c):20 09:M c. os f"!r *1ai n.: AlE0 (sI2e0ej v[0d=0>"@!$MBQ-?# 'm&l>0>U#3 C!*; #p _ &J`@4?g8oyƏ C?,'ߑK FMD(9IMBIGE%UZ8!<A% fjHD: # =h4>TB#]]9 TU@$p?@|>?׸?P6 u` ?u4 t  )t7J)2(LAEJ޵2q?=@L|A@y7b #z]-b( J(2+2&*;q!?& ?A"#&$bb/bI4/U% 1 15 {`?CopyrigTt:(c):20N09:M:0c80os20f@211r40m1a@0i20n.: Al0 88s2e`0e80v0d0X"14MDi!EY-?3 7&Rl>0>U#3 C)1 #p| U%J`@g8oyƩ C2,'ߑB %VM^(9IMBIG3U%CUY8#M)U@$p?@|>?tP >tA`  ?t# >b24 C>u\u!.M# *H>U2llf?@9 >A@b-(C-(b;)W+W&>yg–#?& ?3"B-*X*G,e'񩣕p%1%1`?Cop _rigXt_(c)2dW09MT0cR0osL0fZ2K1rN01aZ0iL0n}. Al0U R8s2ez0eR05v0d0}"1P^"4-,13 17&!Qi 0,fUl4#A5C1CU3! !R \box(<v9s?@^!?@sckz%?PD-DT! /[S@K0Lobp׻nxw_gBs 3CUy_@ xh ,J T  M#EMU@jZ?FH2)'*??@n>?P m>uA` o?u#VlMJl -<lA -PK#TdK2(.K<FZnf>t  t3|>b!F**JRuKJ>U2zGz?@9 ?#>O&Aw@b(Wb)+&r" !$NI#"@#W"6 "\M"b)2;'r",r"/I#11G#`?CopyrigXt (c)020090M0c0os0f21r01a0i0n.0 Al@ 8sBe0e0v-@d@7"BMI#3 76@"!"t1"=ElJ Ul4@AAC 9" =Q A(4#UA!=(^!#?@RXM(0 # g# '?DnMN:U~TR\u5i[HmvQ~X3^w='__ '-~XE:UU . S[ ;;h\gU:U@>wR9o\jZ|K5~XAjai%?@@dQ]^ W-h\_~T9;Tꤲ8?@@)#SpSA?@jK@ ?Nk"V`UY5`bmMh\ly[7 / *?<~X6YxS?LR\cpTqUQ g8oy1 cJQ6YD}uϯ?^&S[vm۶modUQ6Y ~ÀC8[H`K?)K?M~X U@:_L_^_p_DA(G!EM_"_]u?@S.~{>O]UM~1xQDuMuRw?@lփ?@2'>w9Z^|)Sf|u?U35~8q3Du$-@8S,/: CYy$'eisa"+ziM̱iٙI@%!XRGٗ'0UL6t5 0f ٖ_H>x;s \<6x,c @LaF07 #CJ b9 XOB P : ~dӴ 8; @+{ <[sGa6 8 Pl6 F o6 J q6 ~N xs6 \Q u6 QU w6 ,X F֛H{6 r\ (}6 _ 5 N =d ,#N >h %N k ((N o6X*N r N,N 'v N x .N { 3N  i6  9!UFD  h(^TYYBވUFjZ?F~??x<F BPG(?P } XZ B66  TTTTTTd &!&Y"/&%'D/+6,k&/TȅHBU??/&:& ?B#@L&d2?=8\.Y+8 >sUQ1O6Pq?)(:  0%$gB`.man0ge]m0ntt s0rv2,co0pu03di0t0ibDdt n0twN@rk1ea| 8(SGv6 ߃m `???(:Lpppp wpppp pqp~pqwwqwqwpwqpqqwwqqp pp w. wwwicwqwwwww}Drag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aabjZֿ~??cN׿ mF1??M7{V↑T*J?@ ?UG DF P# h @T(PYY# QU@jZ?@~??F?Pn} u{` ?Su#؍>>HX HlHYHH EO.LO4:UDDXXUllk'"&R",I'U25ĉ%4 ?"u'4b0{N[`:Q1#2T6"!^U9$"3&9"/L6 2&!'ݯ>e@ÿ@qn@?@-fB?mDcFԸ0)Bu/@`҈-1Bu@rCC 5GAB"2Cm9u`u `"[ b!u`%3Qo1o7B`?CopyrigPt0(c)020P90MPc.PosPfRQrPQaPiPn 0Al` XsbePePv,`d/`VPs_SBNcPm_!#5ab4P=`o13dX45CB^8=%3p63dz6z6 v24#%30U'rz3]ge<^AE@ U#5m Hq5twL5t{3t{LEt{t{y {et@!{|tYwm@Ada׃IUBT$1@a@a20)L2163jajaLBA3P1125jb6w 7C |hhE)*dQ8ŔIQIQA11CB!;1XrYqea>!bz1AXE:FG$1 8dT=`XQj2`]r` M`nuPaPt+arp` ?bup` B=ݧ`S,t']p"51m-݁<9orm'Qh>qݏBKT'.mt'xydf@>p{ÿ#ГobZpq [ܒrr$avvvrs{c"`RQoxi16 e5`(bb_ mmbr@ uP`TaS@u._u'U1U2A-b[aahaDauhAaYg6s(P` -u*`}`ᕁ }`ax3R5Y_dn&bpSF3s͵NSYJQbrVC@ړN-e8%dE%'XLqW,@rb:*<Տ`}aahʀYVYn ` %P&S41Ģʢa`NEWOR+Kn2H P}!RȱRISQĢʢĢ ʦio0oŌh^A%'0Uo?č!0ÎoHD # =hj0>T h]]9  5AU@jZ?F͂T??Fx?SF?P6 jt`  o?tk[>(A Vu aSuo.]&A]  *ԮJU2zGzt?@L#&A@bA#z7 5#1bO(b])j+$j&[ "*(w "?& ?AU$l/%B115 `?CopyrigTt (cu)Q02`09Q0uMI0cG0osA0IfO2@1rC0|1aO0iA0n.Q0 WAl0 G8s2Ueo0eG0v0d0"1E]4MŤ-&3 &7&l>]Uhz811U!J!u6?F+\.>djIIa? >"(EǑ I%K9E 5EU . K ;;5QIWEEEF _KnSA?8@@Bu?FDR> ?Nk"\6`bmMM\j=am {:e P> #? D"? 5-g?j4B7!B{oogr57!ibDAbE9 MuX7_'0U~rN!$a)5 5vIzHD # =hj0>T h]]9  qAU@;?FI5K?@xEL?6ѿP6 t`  bm&Qo?t@@L]WI,#u aiuoL> JU2zGzt;?@L?&A@b}#zs q#1b(b)+$&[9#H",ɺ (wH"?& ?A$ /%9#BV1V15 `?CopyrigTt (cu)02`090uM0c0os}0If2|1r01a0i}0n.0 WAl0 8s2Ue0e0v0d0"O1E]S4MŤ-9#b3 b7&l>]Uhzt1.A!JN!m.%-+0djV1ax߃S(FJ-&?F mO"> ?Nk"L[Majnha_:e P> #? BK=o? n-?j4Bs!B{__Wr5s!D8E6V 6?wj_|_ ^XE.U@z T6?F @' d_mOoT \VyWxRkrVo_bVh*g:n"'UaEjz36>CN>?Bn}]zGvN7V iDAbE9 MX+G'0UJPN!4ae5 MaHD # =hj0>T h]]9  U@jpiH?F^?@$?F]F?P6 t`  !a&ao?t,F=۳=u;u auo>J2zGzwt?@ʐLAw@b#z1b](b!).+I.&[-m(?0& ?A$I0/Q%!!5 `?CopyrigTt (c)02`090M 0c 0os0f21r0@1a0i0n.0 Al[0 8s_2e30e 0vq0dS0T"!E]$M-# %'&l>]Uhz!1!JF% djc~YZ(_N9zOMGE%_EH$SwO"K ңHE ^&_8_WE_OqOHOOi&DAbPE9 MX7'0UUfb>!$a % f1jHD # Uh4>T#]]9 M5AU@jZ?FL|+?@?F({~?P6 JuM` ?u JYt )t7zEA2&L_D?. > >tJU2q K?=@MJ&A@-b9(+bG)T+T&J[#"#a?& ?AH?/`)#115 {`?CopyrigTt (c);020G09;0M30c10os+0f92*1r-0f1ai+0n.;0 Al0 18s2eY0e10v0dy0z"!4B#e-?3 7)& b 0K8>U# ]A]A "1!ъ!PzQ <%OYAJEU . K;;\%W%EF($L[.FX5Eai%?F 6?wL;] W-\TB⤲8?F@&SA?F @ ?Nk"L'`bmMW_Ye[ٯ7 VK=F: [jr ? D"? XZvD?ta@Boogr5;!QEx]SiLO MLGXa~WOTZiAle59 XG"'0Uc&N!$05 .HD # =hj0>T h]]9  IAU@K?FOgVb?FY%?Fwᳬ?PJW?>t`  ^Z?t#ə.E @x?r?/{4܂ G _Z+u u$ >  J JpU?43f<!.&P?b3bbfz@1bAe&bq$d 2zGzt.#@LT"&r(~&i$q)(+}'i"~*#81815 `?Co yrigTt (c)o02`09o0Mg0ce0os_0fm2^1r 1am0i_0n.o0 Al0 e8s2e0ee0v0d0"11E]54M-#D3 %D7.&lUh#7 V1#Ai!J# F/?B1B  VRiAAbE9 MX G{W'0U*R2N!I$a {VZUHPD  # #>h0JTpERI MU@u6?Fjc{g&?@%r`5B?Fm_F:Is?HNtQ`  II?t#]  _ii$!`kNu  iu%wj>M JQ T       "@&&JNU2"?H@Qs#N&A@b(bU)++&RNp}#>H1#19 ?#bbbz| R&/5R}#11`?Co0yrig\t (c)02h090M0c0os0f21r0Aa0i0n.0 Al!@ 8s%Be0e0v7@d@21a4t#-}#3 %746lJ#$JUp5 3 M19 1!q(!FnElrkRt# 8$kcD?@숒@)?FP?P"EkU |1\iOT/irvs}i>`_,of :m ,M ?? S&d2? *b?r4B!B oo1gr #5!>%(EQOOOO__FAc1_C_ D4ևS]_o_yRX+{_,__ #R__ (YQoSo+o=osd {oEeooooooFyUy{* hDVW(I X"c7I!pg bf'iMjSE t%XyG|'0UŢŞN!O4i |UGD # hz0TdYYBU@(%)?Fxg^?@0߯H?Fs7Uݹ?P} t` 87?t#_)TeΦu ]ukv  ̝L&UUU&I&3 U!!`?CopyrigPt _(c) 2\W09 M c os f"!r 1a i n}. Al00U (s42e0e uvF0d(0'HS$#-## 'I?k=#ǒ 2j$B##0U'BM3@&@F0Yk} #HA%DKb5DK3DK5DKED$!GiAZG5(|IDFX7yW'&Dŭ6!4YA yVZHD  # =hj4>T!]]>#AU@0߯H?Fz)e??F˞9q?P6 t`z  ?5t# rXѮu)Nu;):O]ע0 &> # " "+"+"+"+" $+"T-J[U7 ??& bA@ 2b4-#2zGzt#+@ Li68!6 ?}; 72U!:B#AA5 5`?CopyrigTt(c)20F@9M2@c.0@os*@f8B)Ar,@eAa8@i*@n. Al@ 0HsBeX@ej0@v@dx@)21"DM-,;?C G& l>]UhzAE!A#!ְ1J`#@{&pz?FUy{?NT,dKj&b&R&M/8T9K-q?F@F?FdG0 >Nk"?YE*]\LThKjfGD&Qhj ?iU3UGe&Y`?@/Jb)h5oWKoWo;èKod}l$ro`nE2K?Fˌ%4G{?F -q? eZR^{|\?6?vodmP}l>MBe 9 N 1iS? 1?grl#51:PO"4ga@Sq(UE^@O|ǐ[`ߡa v2rbA @3ijD&}laqOz o?#WHZ'Qu=*[^N?F]%P?@O&@ c?FаM<n ?` eb0)\(Pfodm}nv}l?V5(?q$Ix[cN#W{ #iA@&QeE9 MX''0UjdN!0 /HD  # =hj0T h]]9 #]AU@}%?FR$,?@6#V?Fc_3֡w?P6 u` ?u#t  3zM%t3ws%.<%H._'B> #PJU2N贁Nw[?@ʐL+&A@wbu](i+bk)%+&p%#4">9"<5!?& ?M#bbb͓z$ p&"/%T%#L1L15 w`?Co yrigTt (c)02`090M{0cy0oKss0f2r1r 1a0is0n.0 Al0 y8s2e0ey0v0d0"E1E(]I4M-%#X3 X7&l*>(UhE j1#$Ac!J`%#@5e$_F??!foA3nBM( V?FJ-R?@HQ??FS!R?P| llHL6VLD5E+v;*AůʙH: 8snP%$? k?Q? \?4_!__WrA5_! R,U3OC@IL?F4~Kz?P)Oy޾ T!]]>#IAU@܋?F2Oa>?@#r`5B?F*ݷ?P6 t`  >B?\oEt# ŖoZu 0Nu;Y:|8>$# JpU>##<?2& ?5bbbz@b#ANi&bu$'h 2N贁N[2$@ LX"D&v(&m$ :;T'm"*B#d1d15 5`?Co yrigTt (c)020090M0c0os0f21r 1a0i0n.0 Al0 8s2e0e0v0d0"]1"a4M-/p3 p72&l>0>Uhh= 1#!eJ`#&FNTM\jh1B,RBM(!JoUy{O_ e@ So4(D@^Tw?F]֝ä ?Nk"?w_KT\T+\_(Kjӷjmplhj -`\TPQE\Uui,St_o u~!ՠXEO9= T?FL?;uQ_Pm"rA @3sjQ1lğ=GoYniAleE9 MX|'w'0Ur^N!M$|A vzHD  # =hj4>T!]]>#IAU@܋?Fj?@2r`5B?F^ݷ?P6 t`  >B?\oEt# 6ΠZu 0Nu;Y~:#&}>0m8>  PJU2N贁Nwk?@ eL&A( 5bM(b[)h+h+$h&#[-M$#?& ?b$Z*'*B#O1O15 5`?CopyrigTt (c)02U0090M~0c|0osv0f2u1rx01a0iv0n}.0 Al0U |8s2e0e|05v0d0"H1P"L4M-/[3 [7&l>0>Uhh= m1#!S!J`#*&FPUy{_?NTMjC1gc RVMʣ(D#@ ![?F"$. ?Nk"W?IKTLTcKjRlhj p=' (*!)i,SO2Kes9T;QEGUFw6qX}__TM7fTZT\Dž}_P^52XOES"rA 0S#Es3iAleE9 MX|$Gxw'0UrIN!4gA xvzHD  # =hj4>T!]]>#!AU@܋?Fc_v?@#r`5B?F*ݷ?P6 t`  >B?\oEt# ap'EZu 0Nu;Y:|$># BJpU>#͙;? & ?5bbbz@}bAA& K&@ 2zGzt?"K@ L0"&N(bM)+TK/8Z*B<1<15 5`?CoyrigTt (c)s02009s0Mk0ci0osc0fq2b1r1aq0ic0n.s0 Al0 i8s2e0ei0v0d0b"5194M-t/H3 H7T &l>(>UhE=3Z1#E!J!FENTMjN@1h(NoUy{OO e@ o)4(D@^Tw?F]֝ä ?Nk"?'_KD3\T+\(Kj?ӷjmlhj P\ DiAlePsI=MXsG'0UzbZ6N!%$0 sFEjHD  # =hj8>T! ]]>#!AU@܋?F*?@#r`5BW?Fw?P6 t`  >B? \Et#տ|u l4RQu?]>I$>I# JpU>͙#<?& ?9bbbz@b#AE&bQ$$D 2zG[zt#@ L4"&R(^&I$Q)+]'I"^*Bh{.M#To1o15 9`?CoyrigTtk(c)k2009kM0c0os0f21r1a0i0n.k Al0 8s2e0e0v@d0f"h1l4M-:?{3 %{7&l>(>UhE= `51#I!J49fAn^ R)X f"B!Jui,SG?RSlOS u~!N]8-19= T?FL;uQ ?Nk"?YVTQRXQOnğ/=i n (\ wTiAaePE9 MXLg'0UbZiN!)$0 Lf`jUGD # hz4TYYT#B#U@f?FjK?@瘛?F1.?ٺ?P} u` ?ut#nW/8d`<Lg<`9ft99b<!9f"9#9f&9&'9f&(9(&)9<&.9P&P&/9n&*9&(.88LL``tt&&&&(&(&J<&<&P/b(n&n&&&t : zBtBIE GeroBE$G?3龅U~0UB?@4sF}CAAJSB`?CopyrigPt(}c; 200P9MPcPo%sPf"RQrPOQUa"PiPnO WAljP XsnRUeBPePvPdO"kBADtCB-}CC EGC=}DFtC dVV $RtDe\^RdYQ qd*a!gtEd8HjUdd{|dh{Sft{ah{ah{ah{ah{ah{ahkah!{ah!{tah(!{edh ,J T  M#EMU@jZ?F??Fĩ!3ܾ?P m>uA` o?u#jpMp -<p=PKA -dK#hxK2(.K<FZn>t,  t"lgyPb;!Fi&d2u!J>U2zGz?@9 g#>w&A@b(b)+&" !$NFq#2h#".6 "M"b)Z;'"i,"/*q#11o#`?CopyrigXt (c)020@90M0c.0os0f21r0$Aa0i0n.0 Al?@ 8sCBe@ej0vU@d7@_"ŤBMq#3 b7.6h"P&0"tY"eElJpYUl@{OX(QYuq'`0\q ٬\:SضX,Qp? X̏ ,MgX0QYŞ6ex`WYBaZuU4QY[S FP\ߴ_\16 4X8Qo џ 4WTX&tqYˣhMGX]}/s]GwXHQYt@tԚ?Fu\ɢ|~\oDlQLQ¿԰:G޿ ˘~XPU~U%BUT__ZAA(GE]T_f_[}u?Fʢ \9=Ŭ\G_ԑuQuucߟ?@ml?F=^`> P+CzOOߎf] B]$嗿<Љq3ux5@4Sa/JYԹ6TfJ'e0k?iMiIh%1X|zG'0U]1.650/ (HD # =h#4>T#3 >U@Ac?FO|_D?@ !?Foצ ?P6 u` ?u >,2t  f?5dLtW1qcRH_Axcl^?kJ2N贁Nk?W@ LA@b ++b )'+'&񉄉ԑ"?& ?A' !zR @$)$)/J%B 31315 `?CopyrigTt (wc)j020v09j0Mb0c`0o%sZ0fh2Y1r\01uah0iZ0n.j0_ Al0 `8Us2e0e`0v0 d0,1(04M-_/?3K ?7&l> 0>Uhh= Q1Zb!!J`F9A,2 %,VMS(Jt= OMmѱQ~%+UD_!OSUE^8__ {GzoXb52O;"rAQ 0#Qc3iAleE9 MXG'0Ub-N!R$KAB5 fjHD # =hj4>T]]>U@CC?Fd?@?FԬVq?P6 u` ?)u hAk,2t  Rg(LtW\jwS}ժcRV]clMJ2N贁Nk?@ LA@]b +Wb )'+'&𩆑;"?& ?A' !zR @$I)$)/J%B31315 `?CopyrigTt (c)j020v09j0Mb0c`0oKsZ0fh2Y1r\01ah0iZ0n.j0 Al0 `8s2e0e`0v0d0,1P04M-_/?3 ?7&l>0>Uhh= Q1b!!J`Fuz T ʼ)UB ,VMS(UjExK?DZ/`D%Q~%+U\bHNOkTI?$i|UE+Ugr?F9Y7TRY_DU52OE"rA 0#Qc3iAleE9 MXG}'0Ub-N!$KAB5 fjHD # =hj4>T]]>!AU@0M,?F (Q!?@2"\?F21기?P6 mu` o?u $lAl 1@,2<UJt  gttqzh&vJU? & ?Ab5"z@AA 6$>)ub ^(6 D#@ D2N߁Nk?@ L&^(+bl)+y&s,d"y*BB[1[15 `?CopyrigTt (c])020090uM0c0os0If21r01a0i0n.0 WAl0 8s2Ue0e0v0d0T1X4M-/g3 g7 &l>0>Uhh= y1!d!J`@"G3?F9;<#R<M(!A|jL, I%% [F?gGQ%SUl"F?F7K^5˖Q YEQCUESUF]k_T Y0ħ[HOMTb^?FWȬs рY+ d"rA 0#c<Fl~rl r!}iA2gE9 MX0G'0U*arUN!%$sAj5 v,zHDJ # =h#4>T#3 >BU@m?Fyg!B?@u>71?F!A0d6u?P6 u` ?iu >k,2t  eypLtWVcRB )clOODJ? ?Ab "z@A $)Mb 6( # D2N߁Nk?@ L&6(+bD)+Q&K,J<"Q*31315 `?CopyrigTt (c)j020v09j0Mb0c`0osZ0fh2Y1r\01ah0iZ0n.j0 Al0 `8s2e0e`0v0d0,104MB-k/?3 ?7l>0>UhhE= Q1n!T#3 >U@rڌ?FlUM?@MX?FI?P6 u` ?u >,2t  ?ou mLtWWcR$_˟clɽJw? ?Ab "zG@A $)]Mb6( # 2N贁Nk?V@ L\&6(bD)+QQ&K,<"Q*B31315 `?CopyrigTt (c)j020v09j0Mb0c`0oKsZ0fh2Y1r\01ah0iZ0n.j0 Al0 `8s2e0e`0v0d0,1P04M-k/?3 ?7l>0>Uhh= Q1n!T]]>TU@n2L?FIҮ?@y“:K?F[dg?P6 u` ?Mu [>,2t  K4LtWc4cR^rCcl{STJ?0 ?Ab "z@A $Һ)Mb6(@ # 2N贁Nk?@ L&6(bD)+Q&K,<"Q*T31315 `?CopyrigTt (c)j020v09j0Mb0c.`0osZ0fh2Y1r\01ah0iZ0n.j0 Al0 `8s2e0ej`0v0d0,1E04M-,k/?3 ?7l>#aUh[3 A Q1n!sXE/U8όKBI .O"tW/U{ؔG\b# aio?p0sX2O;<"rA (0#c3q_(RAeoiAVAeP$59 MXG'0U_r-N!0 B5 v*zHDJ # =h#4>T(#3 >U@ҙK?F<;H?@jB?FEk9?Pn6 u{` ?Su  A,2t  ןG}LtWҤcRMNcl?\zՆJ;? ?Ab "z@A $).Mb6( # 酑2N贁Nk?+@ L&6(bD)+(Q&K,<"Q*31315 `?CopyrigTt (c)j020v09j0Mb0c`0oKsZ0fh2Y1r\01ah0iZ0n.j0 Al0 `8s2e0e`0v0d0,1E(04M-k/?3K ?7l> 0>Uhh= Q1Zn!T]]>!AU@ꪓH|?Fto?@P"?F%dݳ?P6 mu` o?u $!>2 1@,2<UJt  ghttb뽘)ub^(6 D#@ 2N迴Nk?@ L&^(Wbl)+y&Ts,d"y*B[1[15 `?CopyrigTt (c)020090M0c0os0f21r01a0i0n.0 Al0 8s2e0e0v0d0T1X4M-/g3 %g7 &l>#aUh[3 A]@ y1!d!J`&F?ޓ, W_rv J<'R<M(!kuϢ?FK!TBKQ%WUZ&L#\ = GZɛXEWU8(?/&?F9I'\]\WHOC@}?F,^ рYZ+ d"rA 0#c֪J~V(L ~A ׻XWU8TL)?Fj;KL~\M2aiA~AeE9 MX0G}'0UrUN2(!0j5 svzHD # =hj4>T]]>U@gr?F^i`?@?Fyrq?P6 u` ?iu ">k,2t  !LtW( UcR]cl ;_@J2N贁Nk?*<@ LA@wbb ) + + &D  ") ?A !EzR @$)R$ )/J%B31315 `?CopyrigTt (c)j020v09j0Mb0c`0osZ0fh2Y1r\01ah0iZ0n.j0 Al0 `8s2e0e`0v0d0,104M-_/?3 %?7&l>0>Uhh= Q1b!-!J`[F%),2 ,VMыS(K=_LD^^PCűQ~%+U9IS_JUE+UF XOO ڕ]oX52OE"rA 0#Qc3iAleE9 MXG}'0Ub-N!$KAB5 fjUGD # hz0TdYYBIU@a ?Ftnm?@Me?FpWe`ݷ?P} mu` o?u#8#5$+4%5HU$*44HHt  g t3 at?Ы O` *0U"?҃@&T #M!M!`?CopyrigPt (c) 2\09 M| cz ost f"s!rv !a it n. Al z(s"e ez v d F!3YJ$#$- #Y# Y'#^ B= #Z&#l4G6PG6 C2$e^.317;( #HH1|H44Gi^P5 1&X"7.EG'$G6%!@4] EFYJUHuDh#" # J#UU U UUA>a0JTaaMU@Me̷?Fk ?@N?F0Cꮷ,"7?P AtQ`  7?`t#jn \v\fw"MGwugoquo$Kt2zG/z?@Q#+&A8 b*](i+i+i&)j#3$(Qc"bk)+'Rp7171{`?Copyrig}tn(c)n]209nMf0]cd0os^0fl2R]1r`01a# i^0n.n AUl0 d8s2e0ed0v0d0@"01Y44-C3 C7$&lU@U1#A(:!F?SD [6yw(E ?F{ŦL.D;\I`H3E^?FpJ"MC=\C"qoI5Eo9?F(bȵLvF=\#bJFHOOOO@DQKO]OoOOOOf??Fޝ,lCۆ=\)?4=(Of`ẏ?FC+mR)=\/b@QS_fFȄ?F7qm ~=\76ԡy]4։U?F*t,lI=\oooo ?E#goyooooo/?F:}W=\wzfu=pӣ?F߼<,l-~Ȩ]p|y^]x?F}+*y=\+ 3]X0l?F-Zߣh,l Bߒa=\ vl%?EYˏݏfO/?FI42,llHJ|=\HN4f:f?F`\},l>x싟f~?F3x!##E=\J&)O]챘?F/8-k%mSp=\< 2DBB]ǯٯ~S*|ǾȰq~Fn)`]]c֦]L½r]7rG2=\`_g@P 4?F8^d=\he]|J%%D2Vthz1hV~=\K m0BTfCAſ+i /НJ+mV.c|~kdny].!̛ ?FW,lJ(Jd0(fä j[+mޣ =\_?ny]~"2!GD= bY~=\6y@ mL^pCA .i}-|{zv,l3  4f #[tU?Fߞp=,l0ϓpBKg嵿?FdNw:{QBb?ɣ]gۼ?F5̅h.fQ[Ϡ mhzCA&8J 7?FG1^}a aB Kf?F@;,l^s};]K_dШ&?FfOBl?w2OKNe9@?+o)F?{qOCw_PvI4~=z2m?Gm}>ID ___Z1 (_:_L_^_p__H>ho 2 DVhzHMgz?FC_߯():?1ZSGbZ2@ҽw]6<730b837SI|~"RM?L2]-m?Fq,cɥ~)̲1%]? FZ ҟ2 `rѩ]/U Bkn|)<|4];-@uvzwWPFMǕDGt{GI"MqcB߀~@6?HPͿ]M+T/]-$A#8FNL /Y-m$+|*1 |Ŀֿ~ѩ'Z?s =-B^l?2UzVs0~ԦLnQ ~덧쭕g8A}2!"M 2:2?ְqBYZ$@SK]-?FkL}-.zus1v8 .@2ߪ߼ѩ|[s(^lU }J\!Omy͹?F$зX-R P"M^b=-s ,G4,c^lX I6g ]-BS3>-U,-A -,>Pb 1Ԧ(?F~^lAw,?Q7ZьkP?F=S~-sj3jK~)4~"M`dqhY W-߇4ĭɫ)^v 0$3^l0}S1Ix@YpB/T/f/x/"R//*/ѩ??FTmȵ^l5rЯLjوWjFQ/Zyk?F|X"\=De9gs jEo9 ^80>~sMY/|=?t۶ I4TSx?F/doM~^l ONQZW`@?[OmOOO;u??O"O4OFO??FhWy?0WvOo-uѣOd[?FSҮ- ]gWy, l Sz?Fl}WmxZWQ灝in]\h?F.j.\=/I Wdvdp_zooooboo,o>oPoboѩm4p=u_0S}Ÿj8>4W[դ?F:mq_Wş|g #Z?F'[=ݛ}T r=lfa4J0-p/"_flȏr$6HZl~ѩ;h4=(V.@ ʯܯa@Rdv`j^l8g Uw*$B_.nV?F" }"SqN̎?F-;u6D!FA\Y] œ1g ^~SI6? r1 b\nϒϤ϶`kx7|>@|SA-:N^{a*0An?F~ _1ZA}2!g-О?F\b F! qZtq*s 1Mm#)*:ݧ#VْG%E\־ |)߽BJx;mmMQs~߯X9Y Z}l@/P N?M/?1?C?U?U!///// ?7 ;{?Ft\,;) q~-a.d?~A3U'3҈>}>/Eܑp%ߠߤ@^^l{;HkOQ ҠO\ۼ?Fߙ4zf]ziO;_M___q_OOO__&_juW/?Fia~Ia{pU߀_~ Z lS;܃(Siri`RriZ;ӱhsm2Ca6.o&s ?F~f(;EyoIs6\aoZl~:oo 0BzP1c/?FAd)? |hAقUYܙK?FxtQمwPIr2] ~€+Xy'MፍǃaM*2S%ʰ?F+#f~;-a~p}|b:ѧ`vXT 3T %iX3ha TaPaMYU@?F{dܫ?@B?Fx?PM]tQ`  -F7?t#UY~PUu0"u;(,\"b&hUt}2zGz?@dQ#&A b(++&Y}/SV0$38?b`4z */!"!f2$R}11`?Copyriug t(cU 09M0]c0os0f2R1r0!Aa i0un Al<@U 8s@Be@e0vR@d21Y%4e3K 756lU)U4FX1#A2%!Gj0?F73W00"6#8$}-%L#1O)߰=! 8@U$h?FTۜX\rNj$n\B.PXX3@U xQwv&5}X\:"^?5&^,!UnE@UO/NPY[||m]P5Wh@_R_d_v_DQOOO __-_f/,?FRal_`[]lS_fV>ս?F)b rlS3le£ϲ_fq l+{ ~W2ofG Dv~iqhCs}6n~#coo[mE#o%7If[v6/?F2l+|lTCf% ?F92mXlp )B&ur7f}ܑ]{}k ~Xą=mg?]̧lHWg#tdf߻mAY /ASefWc{?Fu]S䱴ls :Llgu伟flo gU?F;^U=lChlx-jfF^eۙq~j0xi|m~c&Mz?lG6OɿE]+=Oas8,ǿ?l:<]izT}ۿ~*P?F=|{FlqHlο:.2~DB'ǘ}l5(3V߆ϾfD ыh殴li7>-I<̾ϲBbGYk}ߏGM~}?FF*.^/ͼi?oߛfu?Ff l3Mi[ KP~0굂c}lOF?آロfIӂr=Eldݠ_\B\n"w\㾥P8bnnE]<0j]SEj`B^ݷk. ρV̲_#u悔&ƀ ܠ\mmElxY=mu1~!Ii)\mz^.P/كYm//&*Ax"x$qQ} F4D2}{=yM].u #q2}~s}z0N?lWU$?μǵF!i}߶bܑ!n@垇D}LnXXt~#ViԂ,iߝXQ b4Oq>ad䅔tnR)u@o0oBoTon _____ o"u2$j1}Xι_!eΟ`?7-:ܐ9Ri>DYH-#Gߍ=ԑ4MXjQ9Ef׹ tt}k͟in?S(:L^pn &*~]JB&u¥ G48Ġ7-a#|GgS>a8|I>3; nP#bWU6mȧ .ֹc`}l:2?xuTѺVhzn 0B=M#p0}!:rd Q%- qOj 7-Vsb: u>O9e>(xx&?FgH??[WvpLQ?M9 Ԣ1/!ﰳm 7xzNªJrτϖϨn (:L^sjJ^/0ЧIs*!\ٖ o5|OF ȷӸ@`?F/ ߃7\!\ψf+!"p@)-_!\?$”Mގ#q|f@LS`8}!\߬BĪ&Zf<1ߒ2 2DVhz=U[[0m{TfP7-^u,b%:k#ԍ?FȘ!\(V!I/iUBg78;L5?Qcuӵ3@?F:Ě ],‰L?L/LY!ԣ?FRs;=w] PʉL?^+UϰGIm߲E,1u5w]LK>P#XrO?? vnj!\Zz -~X@////UX/j/|////=R?FQJ<}A{ХloZ ?@lsچk?Fp"mI鴡si}/q2 ym9HQ em\\g^rBt@|? [úA'5r?#7-oo#5ߕoooooo=zg?Fzl) Ud4I堹> /k͹?FV{<˽h4GX'1rn=["jyN%.:PɟLIUw ~#Q)9=Syeӄ0_6=6LTL=Us|9ks}ߵX5>2f$~1b?Uw0'/N`%;M p4~mmo7o 9Q5:+G(j=?=;J?1OnN&4'9K]Vv*RQxR]6g^ɣ|Zk%O!QڑQ^^h?g^j^}_Txk|j~WmVo@?xp >eBcN#c G!Tx5Pm|LGf.Q,ojF.@RdvSzL``qn ~GA>~wz^gqҕim~x$gK>~ V2wTx"dQᆠA(Os:!nLĥlqNCyQӫKcAahG}6ZSN?H????fF1;?M?_?q???Vv|&5}7@R"oPiyK> k#>ġ"}?A |M-¿t6j`~r_QW44zaqYX8Tȴ߯~n߻d ____T_f_x____ Y<,2?(rݾW1[̵yѿ㸗_go4͵S62M\{Qo^~(Z&T!+<5&s pBr~y>08x޻ ϛCE/RuCQݞ%~޽3]Fb?F?|~퀶5 ~ 趒;پQtoqΣ6 ޻֮Ǹ) 1Ÿԟ)e]+akDH~6 WMw׭K,@&"c?F'%|6 ξi@a > <ŗ&8`kb|-~ 6  s??BD&m/V%߇6 b3hD5^E);M̿޿Ͼ)`]|i!x899|/*a|>5i=ϭ,?F#6 K.5> ս5|[ݍvϒe*y34ݶJA)=`2DVh j@?F-/g ?hA\)/N/U?FM2e-j X*?v(N })2-OrYQ-~.Tk )\}/'?^qq|*=3laz ~} 4}ס@Rdv22(:)*?FN !kyMdFq&w^I/(Y[?Fߧ!Ma#Jh|ϻ/x9P8!il{mM{G~.2:O˕BĈy!" _뼙-Y` k/}///KU/ /2/D/V/4^F?}e_mu? y/X /?Fjnǚq7}? D?Ɗx^o߾AytÉmA~ ^{yoQfAYvӗ-ׂoNZc?OOOOgu O*O~gL<7@p?ʼn@-1ş9p6=n?FQ>~:B !~ ޾UC?i^Jak{_f/˲p6J%V{垇͉}1JMZ ۯ#l~Ư4ʩ݆!~ cx|[) T@ Ѳg.Kn>$?{nIn880ߊfr2Yp=ȓ }UptCE_}lB~?h,,$ϚϬm9eG\'1rth|~1=9zsg-?Ubw;]9 _Y*'1`-LI@0goSy?o7x>PEu{ X~=8+m?ɼ7)}^E"S0 }٫i)}.@R%m9Y; dA Z8M]Y ]V6yY+t8skA rM#\$Sp!_n8$Ye#=]*}_I}4I H~`]ت]~| .ʗjri_.@RdF&|m9;q;gi}I߂h(}(Uϯz5y+[Bq}X~v"x>?0~1>4W *wFI.i}A0p}} &N{*y/ K?]?o??+e'//??$?6?MIbLR$UFײ;nC -+}IDQ$Օi}-HsC V2wYNHCw?F3kDjt!eJ }=Zܵ|#aOQcܝw~BnW؜p f_x___F(O __._@_R_MIst@xAOK~` f ͹+ixrݧJQp~[̵yvOGo?Flg6uMh ٘]oSC`qb?':^Bo}^~^?>Dp$ςb)&8J\nMImc@xgAx+_f{&34'Hee÷@%|~g܂HV <|PFXdTX׊ćgߩXQ#֟7$zLvPFBrX}g$Zg̞Rש<͏ß՟*0BTfxMIߵ.W_=%eiJz#Ms2,MD_c|T%#5JLYXD?F5hFg y@8|ѕSCw]&.mᕼA?鯻Ϳ߿+L^pP>FS`D0 e4Z>+-G_SCa\0І?FKȝ ǶH ~%aWNwZ=!/OG#b q1{~! tIWxa@$,"-MIkO/?F|R |~A&'A;߯bc @``5('Mh-nf=!SCrRat!2vIgn/=gyzu  jf&q#=-uS),/*/NR<btB1*<|N t!ߡ..Nsz9_-ֽ'}.<94o._/?{iPא5] HV:;$HĠ﬉ қZ?nBӭ_2"4FXj ErT@y}Mo 6N?PJY_-_`o颾Mn;NOqȝR?FOZ|<;QaA1b;oIaWW6/H]ToY?vbgCt_Ϭz3,>PbtφϞ m9`Xizh \~wKVaϤ~gPϐsY6i&vb8l5' f EXe]/; ^bAߡqEiK )~E?H{=߷4HZl~-Yf"b }h 0JTlaHaMCMU@Kk?FVٖ?@uW< ?FY鷺?P >uA` ?u &J2A:2,t  #)taN_"舺m\pmv*IJ>U2zGz?@UL?A>A@Wb#q)!?(b'=&Nm ?0& ?M "b?)'7,I! O'11`?CopyrigXt (c)902d0990M10c/0oKs)0f72(1r+0d1a70i)0n.90 Al0 /8s2eW0e/0v0dw0!(]$B-3 7&lJaUl~ 1l !`@9  颥 nw&. ʙF,2 FFՋN@DW9_k7BLL␕U?A%E?AL9C=QIDZB3>X5EER_`y5qLWO ]7@D>XE2OE#rM) 0 " c3AAO(O:OLO^OpOFF&(LKSoW N L Od]uvx?FZl6>LI3nZձL)LA_x1ur/ fLP $e'Hٰ_FfIXDoo p_Uoi &kpiMf5kiX7!'0Uʂ>$e5 UH luD( " # #Aha0JTaaMQU@Ad{?FdT#3 >5AU@c^?F`Ld?@9x(g?F_Uw?P6 u` ?u .6(>2Q 1@;,2<_Jt  N3 trBNٟ,PޟbX"; JU2N贁Nk?@ʄ L&A@bu9(E+bG)%c+c&# #!!5 `?CopyrigTt (wc)020 090M c o%s f"!r +1ua i n.0_ AlF0 (UsJ2e0e v\0 d>0!E$M[#!2?06 ?AN$)e/%-/#K '6l> 2UhE=%!?!J!(NѠuOO u(:@¤̥?FbP;?PEB GݐAY1&YMAJFHe׵B `,a,[ /? :7i? >y4vʚ?rJ5;!:_o#ga@^AOiAlerI=MuXG_'0Ub5N!40% rFjUHLuD" # R>h0JT#3 _aRMC5MU@u{v?F ??F];\zظ?P >uA` ?u .)J2 1@;,2<_J>t  w?t&9W`ݟu㵩OJ[>U $?& ?MbA@D"J&N#y!y!`?CopyrigXt (c) 2d09 M c o%s f"!r !ua i n. _ Al (Us"e e v 0 d r!]$v$-## '&zBt#2q0[?"@9 q>6M(bL)J/8Y*lJ.-$U#8APAa A =!4Q1D!1A9 {?F%@ 0nCϿMnNEuýL9%K FH(5N?:G_&_ RHE5E#f/?FR=JvK ϽLQ ELxAEE^]R__ *HE8,;@ƫn~LnzdKL5rdXHsA8#5 뇯/tH@ED@/GpOc#?P-DT! рY?!IO F_}]~3v!9$e% UGD # hz0TdYYBqU@UJm?FBO ?@IxJC?F+9lbݠ?P} mu` o?u#L*5-+4,5HS+5\$*U44HH\\t  j@g> t~pm J)4 {ו' -U;!;! "`?CopyrigPt (c)r ]2\09r Mj ]ch osb fp"Ra!rd !ap ib n.r AUl h(s"e eh v d #"4#S8$,#4G# &G'?=5#H&,#Z45656 12,$B#5#05U253@+& $^ #E K5 5#\HA%$DH /KK5$D4/GiA^K5 6X7G'4Ŕ56!.4] FJHD* # =hj0>Th]]>]AU@ ąMu?F*]!?@v$?Fu?P6 u` ?iut  Dm%t3._袋%.0I~$%UHSB+> PJlU?B& ?AuA@o +bs(b$%#2zGz?+"@ L&s#v ##zu s/ 5&,J2*%#c1c15 w`?CopyrigTt (c)02`090M0c0os0f21r01a0i0n.0 KA# l07s2Ue0e0v0d0"\1E]`4MŤ-%#o3 o7B&$!A]UhzA 11J`%#@frq?F ["(M(!T?FyIRaZL\m۶mQ8ϐ?F@$mZK\٩?F}e?P,DT! VрYc!ITB M~E'QY5a XȞv/ ,^$ Ui[? RRT*?r.5 1:Oo aosg4 1"KUE[UF5sRŐO_ <tf ?@Gui&PbE9 M5X8G+"!'0UE]N!R]$ar5 vUHLuD*" # R>h-4JTaTa9 JB>U@@(/&?F94;??FIRaZ?P>uA` ?u>t   e~27-t!;E]t-6-P\E`,J%EJff? ?Mdb"z@A }$)1b:( #>!f!?X(d, P酑2N贁Nk@9 ^"&:(+!D:/ 5;T'2U&Ra1a1`?CopyrigXt (c)020090M0c0os0f21r01a0i0n.0 Al0 8s2e0e0v0d0"Z1E^4-/m3 m7lJ0JUllI 1!1` C  /VN!b͉(O"TYURIUD%YU+u7tYF_QER5:MT?7 T [Nё\#CTAE2OEv2rM $Fyc"mA$zG %I OUOYU`fsRsŠq_ _ wT#3 >U@+(/&?F94;??FIRaZw?P6 u` ?u t  <~2)t7E]tU)2)LXE\->J2N迴Nk?+@ LA@{b +b )'+'&D*!!5 {`?CopyrigTt (c) 2U0 9 M c os f"!rԶ !a i n}. Al 0U (s2e e 5v 0d0M"!E$M[h2?6 ?$A$)/J%,b,# '6l>(>UhE=~%!6!JXS(xNWOO D QH~%xE9OAOAiAle6I=MX7'0UjR>!40% 6FZHD:  # ;h0>T@h]]9 BIAU@Y"2?F h?F\9?F_X*qw?P68Rw?>u` ?u$.>. V- (.8:Q [t  !g?t{Yu?pvMl{~ݕvs5Q!fJU2N贁N[R?@L&A@bI(b*W)U+U+U&񩆍y#? (<!J ?%MP?AO"d+b Y)(u/%*B#A1A15 `?Cop rigTt cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4M-#M3 M7#lUh/#7 _1AO!J # F qBd V(R iAb59 MXGW'2WUQ;N!R$aP5 VM&#HD # =hj8>T! ]]9 UqAU@c^?F`Ld?@D6 5D?6Hb?b06]DN`lt   ?N t!rBN,_PaX"; jJU #<nH!A?^%Y ?Ab^ @$bbbz #"b#$"b$ 2N_Nk?<@L&(&$%" ;'"!*@!A#BBhy?H *A#115 "`?CopyrigTtk(wc)k20@9kM@c@o%s0fB1r05Aua@i0n.kU ] lP@ HsTBUe(@e@vf@dH@/"14M-?3 7#l>]Uhz11!J`A#@SfVo?FnOo0  d" ΄ ť^R^M(!`ZQaSt__ Cƣ8-$Րj8:ۦ?@u-{?FrgY?PC d f"Y!Y1a ]D_;s ˿}nE>0FH0& #N  ZOB CR jύ ~d o@}+hĶ o[sGN _G fHO xO O? ؗO O 8O _` F֛O AP < 6EP r϶ GP t JP 5 LP 7NP  NP?P a N a P(SP w $UP B//'/VP YP P~H[P 6~(]P pX_P 1Q Q .Q QQ , ^(Q J&#S /KH&S 3-S <p/S @98T EdT 1H%KT VL'T OT R(T cU1UFD  h(^TYYB UFjZ?F~??x<F BPG(?P } X ]B66]  TTUTTT9T9ȴHBU?Q?G ?B@L&ɯd2?6-G(?\.Y(7. sU!}&/) *%  0eB`-ecom0er 0eW,s2v2, 4put$4dui0t0ib24ud0n0tw 0rk!% ^| (S G& q?%7I???"" wp ""ppqwqqwqw^qpi ppwpw)wwwqqd^wqp~wwwwwyDrag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aabjZֿ~??cN׿ mF1??%!{V↑T*J?@ ?UG DF P# h @T(PYY# [U@jZ?@~?tP} u` ?u#2>D>HX DHlHYHH EEdR.؍>DDXXllRu'9h",'US2&5/4&3 ?"'4Wb0{['`:[1#26"d^Q_9$7&9"/L6 2&!'ݯ>o@ÿ@qx@?@-pB?wDmF03Bu9@`҈-1Bu@r#CC5",CAB2Cm9u`u `"[ b!u`/3Qy1y7B`?CopyrigPt0(c)020P90MPc.PosPfRQrPaaPiPn 0Al ` Xs$bePePv6`d/`VPs_SBNcPm_!#5P8k` 8Fay1&3db4&5܀MB=/3z6&3d66 2&4#/30U1r3]%ge<^AE U#"&5m Hq&5twV5t{3t{VEt{t{y {etd{|tY wmda*V_BTAJa$Ja&203V21@3 2MVB3Z1125tb6 7$C|èEhhPÓnQ*ϔtataAPꓰMB111;@cqcqba>*Ab1%EQF^.1XA#8dTG`XQy`])r` M`WnuPaPt5arFaiQ` WEqiPm6`nPvd{V5QX]1PRd*ơ ]`ue`bͯ߯@30! P`r@RdSH@ȱ]C5D6bQ۱eʿܿ{"\ ϬAP9a:B`諸75^ϖϬ% S:bi`#aweT ߬ぶLPchCekT}ߏBalB`i`g̨9@߮,RPoڂ|EZ\@ =phDBU T)?ar0TPpVrKB` B`sR;IY`A Y`Q@;bmr:PeExab!gD"qQr2w`ijJSCC ` TsR\͒kXV` ?ON`1ڒBkfHZSbY`|` E@cqTZ Nwbk4qa+.2`f dDIpadB`5cϐT)nĺs kx/0/(mTa t f?a ];a£|v///ő R pa/a@/?(/0?>/M`Cs?5?'U+pu"tPf!?BkQO)O"f=OiODOkvOOKHdBQ#CġRC<` Wm!wV_*_ Cg0ar__yi_'`M@mi2n__v"kpo$o8KOB%fy"FaPoboj qt1dw:1NvcU@jZ?@ű? _v pBup` ?}rup`  B=ݐpj,U>(p5$j-T^u*uq, ST1.s1'xAMw>ÿ$revK ˆeGrςłˆTς߆L2`R"oUK=e2j"rb ggbr-}@"Wbrgu``dv~jc 4F[_c@-->A>Bj(@yL1L1*Z{­q qqqcҴQ:ai6“`k`!uA`aż@q@ʇ{„S5_&ﲄПF3s͵N?SYFy 邉f@ H8W{H5WH`Yc|ag,@ BQр0Bf_q_qʷifz!` %.P&4odAA_qNNTWOWRKeH0PRf1RRI%SQ"it!̔=GQW'70U? 10a?ƕHD # =hj0>T h]]9  5AU@jZ?@͂T??@x?SF?P6 jt`  o?tk[>(A Vu aSuo.]&A]  *ԮJU2zGzt?@L#&A@bA#z7 5#1bO(b])j+$j&[ "*(w "?& ?AU$l/%B115 `?CopyrigTt (cu)Q02`09Q0uMI0cG0osA0IfO2@1rC0|1aO0iA0n.Q0 WAl0 G8s2Ueo0eG0v0d0"1E]4MŤ-&3 &7&l>]Uhz811U!J!u6?@+\.>djIIa? >"(EǑ I%K9E 5EU . K ;;5QIWEEE@ _KnSA?8@VBu?@DR> ?Nk"\6`ObmMM\j=am {:e 뇿P> #? D"? 5-gg?j47!B{oogrK57!ibDAbE9 MX7'0U~rN!R$a)5 5vIzHD # =hj0>T h]]9  qAU@;?@J5K?@xEL?6ѿP6 t`  bm&Qo?t~@@L]WI,#u auoL> @JU2zGzt?@L?&A@b}#zts q#1b(Wb)+&[9#H",ɺ (;H"?&L ?A$ /R%9#V1V15 `?CopyrigTt (c)02`090M0c0os}0f2|1r01a0i}0n.0 Al0 8s2e0e0v0d0"O1E]S4Mb-9#b3 b7I&l>]Uhzt1.AF!JN!n.%-+0rdjV1ax߃)(@K-&?@ mO"> ?Nk"PL[Majnha_:e 뇿P> #? BK=o? n-g?j4s!B{__Wr5s!D8E6V 6?wj_|_ ^XE.U6Vz T6?@ @ d_mOoT ݬ\VyWxRkrVo_bVh*g:n"'UaEjz36>C~N>?Bn]_zGvN7ViDAbE9 MX+G'0UPN!R4ae5 MaHD # =hj0>T h]]9  U@jpiH?@^?@$?@]F?P6 t`  !a&ao?t,F=۳=u;u auo>J2zGzwt?@ʐLAw@b#z1b](b!).+I.&[-m(?0& ?A$I0/Q%!!5 `?CopyrigTt (c)02`090M 0c 0os0f21r0@1a0i0n.0 Al[0 8s_2e30e 0vq0dS0T"!E]$M-# %'&l>]Uhz!1!J@% djc~YZ(_N9zOMGE%_EH$SwO"K ңHE ^&_8_WE_OqOHOOi&DAbPE9 MX7'0UUfb>!$a % f1jHD # Uh4>T#]]9 M5AU@jZ?@L|+?@?@({~?P6 JuM` ?u JYt )t7zEA2&L_D?. > >tJU2q K?=@MJ&A@-b9(+bG)T+T&J[#"#a?& ?AH?/`)#115 {`?CopyrigTt (c);020G09;0M30c10os+0f92*1r-0f1ai+0n.;0 Al0 18s2eY0e10v0dy0z"!4B#e-?3 7)& b 0K8>U# ]A]A "1!ъ!PzQ <%OYAJEU . K;;\%W%E@($L[.FX5Eai%?@ 6?wL;] W-\TB⤲8?W&SA?@ @ ?Nk"L'`bmMW_Ye[7 VK=F: [jr ? D"? X?ZvD?a@Boogr5;!QEؿx]SiLO MLXa~WOTZiAle59 XG"'0Ujc&N!$05 .HD # =hj0>T h]]9  IAU@K?@OgVb?@O?@X5?PJW?>t`  ^Z?t#ə.b?T@[ u?/CG<_Z+u u$ >  J JpU?43f<!.&P?b3bbfz@1bAe&bq$d 2zGzt.#@LT"&r(~&i$q)(+}'i"~*#81815 `?Co yrigTt (c)o02`09o0Mg0ce0os_0fm2^1r 1am0i_0n.o0 Al0 e8s2e0ee0v0d0"11E]54M-#D3 %D7.&lUh#7 V1#Ai!J# F/?B1B  VRiAAbE9 MX G{W'0U*R2N!I$a {VZUHPD  # #>h0JTpERI MU@u6?@ic{g&?@%r`5B?@n_F:Is?HNtQ`  II?t#\  _ii$"`kNu  iu%wj>M JQ T       "@&&JNU2"?H@Qs#N&A@b(bU)++&RNp}#>H1#19 ?#bbbz| R&/5R}#11`?Co0yrig\t (c)02h090M0c0os0f21r0Aa0i0n.0 Al!@ 8s%Be0e0v7@d@21a4t#-}#3 %746lJ#$JUp5 3 M19 1!q(!@oElrkRt# 8$lcD?@숒@)?@P?P"EkU |1\iOT/irvs}i>`_,of :m ,M ?? S&d2? *b?r4B!B oo1gr #5!>%(EQOOOO__@Ac1_C_ D4ևS]_o_zRX,{_,__ #R__ (YQoSo+o=osd {oEeoooooo@zUy{* hDV!VV(I X"c7I!pg bf'iMjSE t%XyG|'0UŢŞN!O4i |UGD # hz0TdYYBU@(%)?@xg^?@0߯H?@s7Uݹ?P} t` 87?t#_)TeΦu ]ukv  ̝L&UUU&I&3 U!!`?CopyrigPt _(c) 2\W09 M c os f"!r 1a i n}. Al00U (s42e0e uvF0d(0'HS$#-## 'I?k=#ǒ 2j$B##0U'BM3@&@F0Yk} #HA%DKb5DK3DK5DKED$!GiAZG5(|IDFX7yW'&Dŭ6!4YA yVZHD  # =hj4>T!]]>#AU@0߯H?@z)e??@˞9q?P6 t`z  ?5t# rXѮu)Nu;):O]ע0 &> # " "+"+"+"+" $+"T-J[U7 ??& bA@ 2b4-#2zGzt#+@ Li68!6 ?}; 72U!:B#AA5 5`?CopyrigTt(c)20F@9M2@c.0@os*@f8B)Ar,@eAa8@i*@n. Al@ 0HsBeX@ej0@v@dx@)21"DM-,;?C G& l>]UhzAE!A#!ְ1J`#@{&pz?@Uy{?NT,dKj&b&R&M/8T9K-q?x6@F?@dG0 >Nk"?YE*]\LT_hKjfGD&Qhj iU3UGe&Y_`?@/b%)h5oWKoWo;KTod}l$roҥ`nE2K?@ˌ%4G{?@ -q eZ̿R^{|\6?vodmP}l>MBe 9 N 1iS? 1?g]rl#51:O("4ga@Sq(UE^@O|ǐ[`Ρa g v2rA @3ijD&}l迲aqOz o?#WHZ'Qu=*[^N?@]%P?@O&@ c?@аM<n ?` eb0)\(Pfodm}nv}l?V5(?q$Ix[cN#W{#iA&QeE9 MX|''0UdN!0 /HD  # =hj0T h]]9 #]AU@}%?@R$,?@6#V?@c_3֡w?P6 u` ?u#t  3zM%t3ws%.<%H._'B> #PJU2N贁Nw[?@ʐL+&A@wbu](i+bk)%+&p%#4">9"<5!?& ?M#bbb͓z$ p&"/%T%#L1L15 w`?Co yrigTt (c)02`090M{0cy0oKss0f2r1r 1a0is0n.0 Al0 y8s2e0ey0v0d0"E1E(]I4M-%#X3 X7&l*>(UhE j1#$Ac!J`%#@5e$_F??!foA3nBM( V?@J-RHQ??@S!R?P| llHL6VLD5E+v;*AʙH: 8snP%$? k?Q? \?f4_!_t_Wr5_! R,U3OC@IL?@4~Kz?P)Oy޾ T!]]>#IAU@܋?@2Oa>?@#r`5B?@*ݷ?P6 t`  >B?\oEt# ŖoZu 0Nu;Y:|8>$# JpU>##<?2& ?5bbbz@b#ANi&bu$'h 2N贁N[2$@ LX"D&v(&m$ :;T'm"*B#d1d15 5`?Co yrigTt (c)020090M0c0os0f21r 1a0i0n.0 Al0 8s2e0e0v0d0"]1"a4M-/p3 p72&l>0>Uhh= 1#!eJ`#&@NTM\jh1B,RBM(!JoUy{O_ e@ So4(DF^Tw?@]֝ä ?Nk"?w_KT\T+\(Kj?ӷjmlhj -`\TPQE\Uu?i,St_o u~!XEO9= T?@L;uQ_Pm"rA @3sjQ1lğ= GoYniAlePE9 MX'w'0UrJ^N!M$|A vzHD  # =hj4>T!]]>#IAU@܋?@j?@2r`5B?@^ݷ?P6 t`  >B?\oEt# 6ΠZu 0Nu;Y~:#&}>0m8>  PJU2N贁Nwk?@ eL&A( 5bM(b[)h+h+$h&#[-M$#?& ?b$Z*'*B#O1O15 5`?CopyrigTt (c)02U0090M~0c|0osv0f2u1rx01a0iv0n}.0 Al0U |8s2e0e|05v0d0"H1P"L4M-/[3 [7&l>0>Uhh= m1#!S!J`#*&@PUy{_?NTMjC1gc RVMʣ(D#F ![?@"$. ?Nk"?+IKTLTcKjRlhj p= (*!)i,SO2Kes9T;QEGUFw6qX}__TM7fTZT\Dž}I_P^52O,ES"rA 0S# Es3iAlePE9 MX$Gxw'0UrJIN!4gA xvzHD  # =hj4>T!]]>#!AU@܋?@c_v?@#r`5B?@*ݷ?P6 t`  >B?\oEt# ap'EZu 0Nu;Y:|$># BJpU>#͙;? & ?5bbbz@}bAA& K&@ 2zGzt?"K@ L0"&N(bM)+TK/8Z*B<1<15 5`?CoyrigTt (c)s02009s0Mk0ci0osc0fq2b1r1aq0ic0n.s0 Al0 i8s2e0ei0v0d0b"5194M-t/H3 H7T &l>(>UhE=3Z1#E!J!@ENTMjN@1h(NoUy{OO e@ o)4(DF^Tw?@]֝ ?Nk_"?'_KD3\T+\(Kjjmlhj P\DiAlesI(=MXsG_'0Uzb6N-!%$0 sFEjHD  # =hj8>T! ]]>#!AU@܋?@*?@#r`5BW?@w?P6 t`  >B? \Et#տ|u l4RQu?]>I$>I# JpU>͙#<?& ?9bbbz@b#AE&bQ$$D 2zG[zt#@ L4"&R(^&I$Q)+]'I"^*Bh{.M#To1o15 9`?CoyrigTtk(c)k2009kM0c0os0f21r1a0i0n.k Al0 8s2e0e0v@d0f"h1l4M-:?{3 %{7&l>(>UhE= `51#I!J49fAn^ R)X f"B!Jui,SG?RSlOS u~!N]8-19= T?@L;uQ ?Nk"?YVTQRXQOnğ/=i n (\ wTiAaePE9 MXLg'0UbZiN!)$0 Lf`jUGD # hz4TYYT#BqU@",?@~?@$p?@|>׺?P} u` ?u#L+/8<L9`( .88L``t uPu3Pt۶m!tUH~#9#[0Up"?@/& 9#!!G*`?CopyrigPt(c)20 9M c os f"!r 1a i n. Al&0 (s*2e e v<0d0'"!$0#B-9#,# 'w#^ =9$&0#4 66 20$e#$^ #3 % 9#HLA0%XD`cKT%XD8cG g&daO^'*TcATcA0"-()Ca0% g2ATBK6SihaX5 &X~7aWK'o$ţ6!4 0 aVuZHD: # =h4>TB#]]9 TU@$p?@|>W?P6 u` ?Mu t  )At72(L>REJt2q?=@LA@-bb )+&񆤍[Z#?m& ?A/$)R!!5 {`?CopyrigTt:(c):20 09:M c. os f"!r *1ai n.: AlE0 (sI2e0ej v[0d=0>"@!$MBQ-?# 'm&l>0>U#3 C!*; #p _ &J`@7?g8oyƏ C?,'ߑK FMD(9IMBIGE%U\8!<A% fjHD: # =h4>TB#]]9 TU@$p?@|>??@?Pn6 u{` ?u th  )t*7)2(QLAEzJ2q?=@LA@yb #zt-b() (2+2&醍N>{??& ?A"b%$$>b7b{/b4/U% 1 15 {`?Copy_rigTt:(c):2U0N09:M:0c80os20f@211r40m1a@0i20n}.: Al0U 88s2e`0e805v0d0X"14Mi!E(-?3K 7&l> 0>U#3 C)1 #p U%J`@!g8oyƩ C2,'ߑB DVM^(9IMBIG3U%~CU[8 h:0T5 AB#MU@1 g?@4?@84C?@Kk^Ӻ?P t`  WwB?t#_L&,qۗ'0 .(='u uu1t6#I    ҩ""PE&&E&U2llf?43f@#&A@)b3bbfzt #Eb(Wb) ; 6#"w?_6C?/$ ;H,7#11+`?Copyright (c)@2t09@M@c@oKs @fB Ar @EAa@i @n.@ Al`@ HsdBe8@e@vv@dX@021M(=4#-#3 7_6( v `@K( vU `A#1(Og0x~u- h'#Q  "8!}Z_]02QEUCT/\?@Wh{vž\<ˉ\78u2/k٠' QQQ,WeI_[Xg_`zT'!68?@J[8j/OW\U M "RSDrV95Uۮ4R?@ rё\!l§\Wԫ{d8m k?NR܆?@ֿK #? }+OqZx~b_Xu5sZ OZ{d+i2o,u2r @3C QAoooooouYYG?@Pb|[p o _7~I|׿zT6Q3M7f?@Cs|h')`ρ?|ώ&a@-_4o0:02i@wE%tHXG'W0UN!z4 0N  UHLuD" # I>h ,J T  M#EMU@jZ?FJX??@HX?P m>uA` o?u#VlMJl -<lA -PK#TdK2(.K<FZnf>t  tt|>b!FQ~uKJ>U2zGz?@9 ?#>O&Aw@b(Wb)+&r" !$NI#"@#W"6 "\M"b)2;'r",r"/I#11G#`?CopyrigXt (c)020090M0c0os0f21r01a0i0n.0 Al@ 8sBe0e0v-@d@7"BMI#3 76@"!"t1"=ElJ Ul0@AAC 9 =QA(#UA!=(^!j9?@+P(0 # 4.!# քOCN6ULw-iN\u5e[EYzX3^GxQ1__ pPzXE6UU . O[ ;;d\@#Q}U6U@ _\fZ__"zXAjai%?@NT_N\^ W-d\ƿFvwzT97Tꤲ8?@)#?@@SAWp>@ ?Nk"R`QY5`ߛbmMd\?E_Wqy[7 9(  UDGzX2YGf?@2CL[N\AlTzXQ2YY a?^&O[?++d\g}UQ2Y?i`hCN\,@Иg*%:׉zXU6U?_z^_p^AA(G!EM __0[u?@ N\>4t>GCc-xQ@uIuc ?@lփ?@nc>s9ZQh |)Sf|Dҍu~4q3@uɕҔ@8S7^A?$My$'eCO9c]ziMqi~I@%!XRG~'0U6t5 Ff ~_H>Y;s ~HA10Hù:zF0\# ^JOB S i_~d,Դ o@+̶ o[sGUT F`: PHT kxT 5o0U /s1U v4U zH6U |F֛9U #;U 5?U ,V V V U6V N V ؚlV ~( V 7X_V T 9!UFD  h(^TYYBBUFL&d2?x<F BP(?P? t B66  TTTTTTdH?? Q?BZ@?"-3(\.E(#.sUk!i&/(  0B`PPublic,pr vUa.e0k0y0s0r01, og"a ,n.0tw*0r01y0 1m0t*0p *2r 0pP1!91Us0c*0n82c.!iz275 eA^| (SG& q ?%7I??? wpwp pqwqqqwqwq}pqqqpppw,wwwqqgawqp~wwww;yDrag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aabjZֿ~??cN׿ mF1??f&d23L4CUG DF P# h @T(PYY#E[UFL&d2?jZ?F~?]P} .B":J :^:rY:3 7 77 Au`?؍"66JJ^^*rrUu#J",':U2%&5/4f??z4b0u{[`:[1#2&6#"'V"^%Q_93 2 L1$" "3'@>>ÿ@qZx@mE?wDmF0r&BCZBu%@`-1ZBu&@ >CAB""C$9u`u `"[ bz!u`!Qy1y71`Vis_PRXY%cPm!#5P168B`?CopyUrPgPt0(P])020`90MPc`oPoIf bQrP6aa `iPn% 0AUlQ` hsUbePe`vg`d%R@y1&3db4&5! h8=/3z6&3d6P6 2&4B#/3+0U3r3]*g,^eqV5@cT<*G`o0m?`s `la>t&5 pISO`PdaTs"_BT /&20*V2QQ32DVB3Q1$125kb6x I7EC|ßgh`nQ*ƄQQA``b111;<balrqqAb1#8dsPXQ1`]+r` ]M?`nu-`aPtfarQiQ_` EqiPmg`n `xd>V5Q`N`]1yP%bd Nm0:30ȟڟZq!v P?`r'SHHZ]R`Dgb$a Be>\ЯoAPja}C`y75^GYo-%v Skbi?`Ta:eT̿o-vLPc?hϠk5.@RB$l s`iG`gpϢE%@`ϮqyRPorϱ|ߩZPm\@x px(+s&5ՈUm lparJ0TPpg`PKBg` Br"a;s;0S0LQmrPeExRg""tXqQrb2:`bv+mSJ)CQ`qsĂXC` qP@тuSbp?1PKg`yނn۠UN~w5bka.2` dHEIPNads`fc6H n $׮n~}sIH xJymQt=fpa ஑la1+fHZ㼁y +b P6a`a@lu MO`C(/F,Ÿb/ U+v3utP)Ɵ/H 9// ?Hq?(1tVEImx_dGF~?AvAvp BuJpGYB#uBGYpLJqsp(7Q7Q(xAF@>>ÿOoQ=ONRRCRIHށrA 7S>S"`AR(a1DceF"$?\[?RVRVR?R]?R">UDBb_ PPaMUZB[br@2\ zOz_sv(YqYq!!BO\ɅiqTqvxUzaO9ꂃSS{P_`u`(0y⢀@Bb 2a8RL7@(0aB{8Q|B{BQ|&Cz,@R2ivOOMoM()A)Awb8z[9 N6dՁ:w`` %c`P&!!i2<B)ANDTWORK(%H PD!R1@URIDS{QR<B<hB!i#??=ly|a'0U?Th]]9 MP /AUFjZ?F͂T??FSFظ?P6 .]A]   JuM` W? EKu4bJt1 ytuo[=Jb(A =>JU2zGzt?@dM#߀A@bM;#z1 /#\I(bW)d+)d&J["*(w"?& ?AO$Tf/%B115 `?CopyrigTt(c)2`09MC0c.A0os;0fI2:1r=0v1aI0i;0n. Al0 A8s2ei0ejA0v0d0 1Y4-X 3  7&C0b59 FX7}'0UB)Ź&!$aI 7FKJlJ]Uhz211O! !u6?Fh,\.>*0II=*t >J:@T&ȑ/ [WpY\QEUzU . X[:;QRuSU5UF,®\oZOnlQ 8MP@fu?FR >Nk"\T`bmMlQi_f0%=mUt.m {=4+ 뇥P> D"? 5-g?0tp@bTh]]9 MP qAUF;?F5K?FxEL?6?F6?Pn6 L>M  P$  #uM` ?=`cc.@uRJtO  bm&QȽtA@Lؽl]WI@[>JU2zGzt?@M/#J?&A@b}#zs q#b(b)R+&J[9#H",ɺ (H"?0& ?A$ /%B9#BV1V15 `?CopyrigTt (cu)02`090uM0c0os}0If2|1r01a0i}0n.0 WAl0 8s2Ue0e0v0d0'"O1YS40#Ť-9#b3 b7&0%0bE9 YFX+G'K0UB&!4Ia yFJlJ]Uhzt1.A!-(:9#t.%-+0JN H߃+%$Jq-&?F mO" >Nk"\RSWNh[H@[4I 뇥P> 'CK=o? n-?N]`@ b<couo]r5%BUV 6?woZÃ^ǿXEUV T6?F __ jv6dDlVyZgPRkro}oiBdalN!\z3ˏ6>CRHS X?BnDe>TGvN7VHD: # h0>Th]]9 MP JUFjpiH?F[^?F$?F]Fڻ?P6 >JuM` ?j uJt  (a&aEt9S;-FEN=ۯ=Eh?u;>2zGzt?@M|JA@a7b#z}b(b!).+.&J[-m(?& I?A$0/Q%B!!5 c`?CopyrigTt (c)02`090M 0c 0oKs0f21r0@1a0i0n.0 Al[0 8s_2e30e 0vq0dS0!(Y$-# '& 0b59 6uX7_'0UJBŃ&J!$a FJlJ]Uhz!1!劵:F% Y.  8?zY^J4 ]9$]$R9S/RJUE UH$S!\1\? GX5ZU_YQJU __-_?\HD H# Uh4>T#A]]9 M /AUFjZ?FL|+??F@{~?P6 m. >b  JuM` ?+ILKu8J1t5 }ty_7??J]bA>tJU2wq ?=)@MJ&A@\3(bA)N+)N&J[ "#?& C?A9/Z)*!!5 `?CopyrigTt(wc)20A09M-0c+0o%s%0f32$1r'0`1uai%0n._ Al{0 +8Us2eS0e+0v0 ds0!E$$5 -? 3  7&6iiePE9 6X7 "'0UBţ&!$0 IF]JlJ 8>U#9AA 1[!:Nk"\T`bmM\"f4N[7 zex-K=FAa [jr D"? WZvDS?4xa@R#Th]]9 M IAUFFK?F\gVb?FO?F$_5?PJwW?>$[ >  JuM` ? ;  )u*Jt'  ^Zmta{֙3.Jvt?@[_ u?vC >pJU43f<!.&P~?b3bbfz@bAe&bq$Jd 2zGzt&.#@M#T"I&r(~&i$q)Q+}'i"~*B#81815 `?Co yrigTt (c)o02`09o0Mg0ce0os_0fm2^1r 1am0i_0n.o0 Al0 e8s2e0ee0v0d011Y54#-#D3 D7.&%g0Ab59 ;FX G[G'0URB.&!I$a [FoJl&}>UhE3MV1Ai!(# jV? & `& T` V_RUHPD  # #>h0TpHeeJ EUFu6?F5c{g&?F{r`5B?FF:Iͷ?mj>  M   *  (Y JuM` ? Y ":N`u#xJtu IoI%t"' % 'ii%$'`OkŁJU2"?@Ms#J&A@"b(bU)++&RJp}#>1#19 ?#bbbz| &/5> }#11"`?Co0yrig\t (c)02h090M0c0o%s0f21r0Aua0i0n.0_ Al!@ 8Us%Be0e0v7@ d@k"1Ue4t#B-}#3 746t%0 jU FXyGG'0UR46!O4i FJlJ$jUp5 3 h19 1!q(4}#FXJt R j# 8bD?F@)?FvP؞?PEkU O|Ä\QnS ?.܁nts}ped`,of :o ,M ? &d2? bS?tP@RBoogr"55ZQUf_x____bY@?Ac_\jF4ևi$on&h{ǡ8oJo\opoo T)YAoaoooo o 6$|U7I[mS Uy{䷰7ho}V(f"(I%ZvShX?"cwӏ叭iďa$xUGD  3 h0TdYYB UF%)?Fxg^?F ߯H?Fw_7Uw?P}   f  f0 D fX lu` ?00DDXXll)ut  871%t%!?"Ư)1%:'ֿTeΦ1%T'ʤU!!O"`?CopyrigPt (c) 2\09 M c oKs f"!r 1a i n. Al00 (s42e0e vF0d(0"#S$#B-#l# '?R=#ǒ 2$Z##0U'B3@& ^5 DFX7dG'R&Dŭ6!4] dFxJeYk} #HFQ%RT][b5RT0][3RTD][5RTX][RTl]WHD:  H h4>T]]9 MAUF ߯H?Fԋz)e??F9q?P6  >IM (#<Pd`<#P#dJuM` ? #2FZnubJt E-tA!["XѮJV&bN$p'N]I֤>J)U5 J[-# ?6 ??" A@.2Sb64B#2zGzt3@M#Jc678C6.? ;B72C: #115 k"`?CopyrigTt^ (c])^ 20@@9^ uM,@c*@os$@If2B#Ar&@_Aa2@i$@n.^ WAlz@ *Hs~BUeR@e*@v@dr@"14ʺ#-/ C  G6&iieP59 &XG W'0UiRŴ6!#40 $ V4ZlJ]Uhz@A!1(`CFU&pz?FDUy{?,d@#b`sb`"J-d K-q?FFF?F F0 ?Nk"?GiE*]CpdadC0[dhZe@#eGDQ> @" i$a3n&Y+`~rrood]io;e s"yr1C82K?Fѻ4G{?F-qx>tFjR^{|ZlYZe tmP|{Mޥa 0 1iS? q1+?wa@rc(<;"̏A!rFÀ5H5aE=*[^N?F%P?F"P&@ c?F{MTh]]9 M]AUF}%?F[$,?F+#V?Fd_3֡w?P6 B>M @ $ JuM` ^?3YY.KuHJtE  L<ܩt.'_3zMҩ,wsQ>JU2N贁N[?@M#J+&Aw@b](]i+bk)+)&Jp%#4"?>"<5!?& ?M#bbbz$ Rp&"/%B%#L1L15 `?Co yrigTt (c)02`090M{0cy0oss0f2r1r 1a0is0n.0 Al0 y8s2e0ey0v0d0"E1YI4#b-%#X3 X7A&%{0bP59 OFX!GoG'0UBŔ&!$a oFJlJ(>UhoI j1h$Ac!(`%#F'$F?>D{Q>L!gfQQ R "Jg V?Fo-RbHQ??FT!R?P& lH\f6V\P5E+UDv_;*UmʙHQ:? w8s`*%$? .l?Q? \ς?D4h_!R otogr5%Q3p_SFhIL?F~Kz?P)Oy޾ F @c"rA b$^sPj+u`dl(?ET+QdAf u8<$HD:  H h4>T]]9 MIAUF ܋?FOa>?Fq`5B?F1*ݷ?P6 m8> (JuM` ?#SS2)uBJt?  \Eto֙>_B|KR>JU5 Jp'>͙#<?Z& ?bbbz@b#;A&b$B 2N/N[Z$@MI #"&(&D$ :;'"*#d1d15 `?Co; yrigTt (c)02U0090M0c0os0f21r; 1a0i0n}.0 Al0U 8s2e0e05v0d0"]1a4 #-,/p3 p7Z&'&iieU59 '&X9GG'K0UBZ&!u$K0 FJlJAUhhG1! (T9CFJ> kRbT$R}R( "J:]Uy{䷧_8S s@ o4%BTV.Tw?F:^֝ä >Nk"?YUU!f>)?\(K8ӷjmKl? a\$QU5Ui,SlQ%iu~!8hE_= T?F;uQuo`"rA 4sjQ޽lğ=onHD:  H h4>T]]9 MIAUF ܋?F<j?Fq`5B?F^ݷ?P6 m8>M (JuM` ?#SS2)uBJt?  \Et[Πؙ>_B?&}>J)>JU5 J#2N迴Nk?S@M #JC&AP bu(b)J++&B1[- #L#?&| ?$H*'#O1O15 `?CopyrigTt (c)020090M~0c|0osv0f2u1rx01a0iv0n.0 Al0 |8s2e0e|0v0d0"H1L4 #-/[3 %[7&'&iie@59 '&X|$GrG'0UBi&!40 rFJlJAUhh7m1!{!Պ (Z$CFFUy{?> 81cKR R)V "J{TV ![?F=$. >Nk_"?YPSW>OcK8RKl? ף_p= $B:]'i,S\6aYss9$Q@5UV+6o'lQ:ifOdD`i[Dž}soąo82{_U{"rA z$s"HD:  H h4>T]]9 M!AUF ܋?F@_v?Fq`5B?F1*ݷ?P6 m$> JuM` ??Su.Jt+  \Epteap'Eqz>Bq|7>5 Jp>G͙;?2& ?bbbz@bAi&s&Bh 2zGztM?+"@MrX"&v(bu)+s/8*T<1<15 `?Co yrigTt (c)s02009s0Mk0ci0oKsc0fq2b1r 1aq0ic0n.s0 Al0 i8s2e0ei0v0d051P94-H3 H72&iie-59 XG_G'0UB2&M$0 _FsJlJ( >Uh_I `Z1m!afR* zRQd J:`]Uy{w_$S s@ +o4B`TgV.Tw?F:^֝ >Nk"?zYQYV*)\(7$djm7lb+d ha\HD:  H h8>T ]]9 M!AUF ܋?F*?Fq`5Bǯ?F1?P6 $6>  JuzM`l? C"u2Jt/  \Etti|u~>Bu뒣;>RJU5 Jp>͙#<?6& ?bbbz@b#Am&by$Bl 2zGzt6#I@M\"&Rz(&q$y)+'q"*h,#:3o1o15 `?Co yrigTtk(c)k2009kM0c0os0f21r 1a0i0n.k Al0 8s2e0e0v@d0h1l4e-:?{3 {7I6&&i bP159 &XDGG'0UBX6&Q$0 FRJlJ(>UhI 1lq!a4DC9Nk"?CYQYf.Q;(hğ=;Af/h (\UGD # hz4TYYP# 9UFs2?FM&d2?F$p?F|>׺?P} 5   & >hRQ p  u` W?   *<J>R\npUu# t  mom%ty!V"!%' %'ؤUC~#30U82?҃@&T3q1q1:"`?Copy_rigPt (c) 2U009 M0c0os0f21rԚ01a0i0n}. Al0U 8s2e0e05v@d0"j1En4#-d3}3 }7Q?3^=4~6#DkFkF gB$gdaO&7*THT"(Pa%/BQ  2iRcE U6rXFGE'74ikF!dD0 EZeYk} 3 QYg%kd>vk5kd#avk3kdpvkEkdvk=Ekdvkkd vgHD H# Uh4>T#A]]9 MUAUF‰IJ?F#-c?F?FFt=?P6 &> A](# D<# P# dd# xJuM` ? #2FZnuJt  }7Fi8&t-!G"R7NA9%UB'DM"9%\'+d>tJU2wq ?=@M#&A@q"b(bJ);6J鏵#"wJ3?]6 ?A<#0Ɖ3z #V#bA38/9*#115 W"`?CopyrigTt (c)#@2U0/@9#@M@c@os@f!BAr@NAa i@n}.#@ Ali@U HsmBeA@e@5v@da@"1E4#(#5 -O3K 7]6Fi@ieE9 FXG"'0UR]6!x40 7VKZl:JdTU#& uUT ]9a x 1 A*# 2&#p +5(Z#FF<g60Q0,#0Q4"1 Rf"J! {-?F'<0c 0TYǮixxLpH$a5e r&7?FQh|a-|,CxEe}$X%lE?FV}w{|C|80}-|?"l!eEeaM?FO|7#Nqi}=ԡ$dduC_?F:s?FQ+7?FO9 uPu~0y jBqi/3-u_2O<-u,#$6v›l* ," z3H[o'?F hnd?FCsM>-|6`؄Ì~[U0!܉f;-aaiq x?F#^|P-|hP`]H<dp&B?FŜgN,5ҫi~l/WG~Ɖ|] ܉NQ*TMW.DPF)?Fa$IKbүnexC؆˄ILMƯدaWe=j$,$,hx?F3%?F+S 雖dNɛ˄@&fUٌ[?承uW[w?FqoW?Fsg:o?F)3⿗1܊5#AKƉsω5`R!Oǟ1a:dj{+ hʲdde5a:f?Foj&GCx9e2oeWcrA 3"5a5PeHD: H h0>Th]]9 MIAUFe?FM᜕?FXWF-0?FO?PDJW?A$> n JuM{` ?e ;  u*t'  Oț2mta{ԿHM3.Jv??v*Ij/I>JU2N贁NKk?<@M#J&A@bI(bW)U+U+TU&J#!!5 `?CopyrigTt (c) 2`09 M c os f"!r 1a i n. Al.0 (s22e0e vD0d&0!3]$#y#&#4#9PO"Pd+T/u/%-#,# '6% b}59 DFXGdG'0UBţ6!4a dFxJl(,&}>UhETh]]9 M9MUFJsx?F6?FI?FnjrL?P9V> $ 8 L ` t JuM` ?.BVj~SuJt  5hޅ%ty!"_:~څ%''"%'Bs>JU2N贁Nk?<@M#J6A@"b98bG9JE;E;E6J3115 "`?CopyrigTt (c)02`090M0c0oKs0f21r0Aa0i0n.0 Al@ 8s"Be0e0v4@d@"13H]4#y36#|D3I?A?2T;D?e?5-33 7F%0AbmE9 4VXWTW'0URRœF!DaR TVhZlJTUh6UT]$8]tA1 QJVb(T3RT0bLx"fA RSf"J:mGӎ!=Мoc ]rte$a31sE?Fd0!@c +HjẏvR%amE@uRU?F.$wX|'1Tn|pA-x@uӆN?FFoX|1Rqyh -x@u`CB2OX|Ә {n|O$ dCe?F_';?F4Hy ?F ! uPu@[y!Xn|kb_6nu(nux#vi8˿IQv x" YꥬM$5zG?F}Bh?u?FoyD?FYό Ə،m\ҋ:n|XAB0B5R+?F;(h?F?F;S4، nB6{n|Jqe!{q o.2ZQI{]>F˻w&t 1t?FOiL،?ö}>{} SS~DxĶȯ]z#0bb?Fwϯ،BZc4s  x̶.jlT1|t[mi 0?F_?Ft ҿ t߇R?ɨV=7Th]]9 MIAUF9PR1?Fq`?F]Pġ?F_Ӱ?PDJW?A$> n JuM{` ?e ;  Su*Jt'  Oځmta{_ t-3.JvĬN %e?7Ùf?vGOw{jyƤ>JU2N贁Nk?<@M#J&A@bI(bUW)U+U+U&J#!!5 `?CopyrigTt (c) ]2`09 M ]c os f"R!r 1a i n. AUl.0 (s22e0e vD0d&0@!3]$# y#&#4#J9PO"d+(T/u/%-## '6% g}59 DFXGdG'K0UBţ6!4Ia dFxJl,&}>UhETh]]9 MJUFâ[w?FVFc-??Fx?P9v>JuM` ? )uJt  81QEt9Siޯ2ENEh^ڻ IH^>2N贁Nk?<@MJA@cbbU)++&Jy;?u)?AbP)/%/F%B!!5 c`?CopY rigTt (c)(02`09(0M 0c0os0f&21r0S1a&0i0n.(0 Aln0 8sr2eF0e0v0df0!Y$b-# 'Ax& 0bP59 6X7G'0U]BŔx&!$a $F(JlJ]Uhz@11!ZF(?~O攚   8P[&~ 6RcVJ:)Hpv ?#V Th]]9 MMUF"q?F땘n?Fq0>?F_A!w?P9@7>M  $ 8 L ` t      8L`tJuM` ?""."B"V"j"~""pu)Jt!  1X{%5t132m_%5.7RjX6H7!>JU2N贁Nk?<@M3J6A@C2b8b9J;;6J=y3;?3UI?A2b9?O&EB3AA5 C2`?Cop9@rigTt _(c)P2`W09PMPc@os@fRAr@3QaPi@n}.P AlNPU HsRRe&Pe@5vdPdFP2APYD3-3,C GXF5PbU9 VXWW'0U=bXF!sDa Vjl:J Uh^maa]`t AQ֍A8Z3FWY?F9#}"# C22@fCsa Ur)[v2JAURo?FN?F=!?F G< 6uPuyA/ybMv Js 9o#"u#|u32$N 4 ?A~0 f? h#|S)?"2@Ts(<2"41rÀ5&Eyq3u0,Ǥ?Fs^?Fq?FS|xX1y6>|>E<ti!Z$@nqcN#`qBsq- dM?F"7z@Er4s0{욹nZ|q9a!i[+|ҼN#`V}188| m vqt(?&4yq`y:#Z?Fvd@^=PiY$|n׽\|6 ^yEb$ ^S ݿN#`"jtyVp`iK?F3H?FڛY ʜ|B6yI^a};I| Yb[soq|U?n \*O#`7I~Fmp1BB{?F>v?F 6Qqy hq|o]^})f~^K!OM3`Xjy%gzp jh?F t?Fŷ 9X|9} |)x?pM` #e2e:~Cra D)2HD: H h0>Th]]9 M9MUF$sж?Fp b?F4tV ?F_<?P96>M  $83L 3]`3t3 JuM` ?3.BVj~)uJt  DYU%ty!"8Ӆ%'fY*%';ƐnƤ>JU2N贁Nk?<@M#J6A@"b98bUG9E;E;E6Jy3;?39?A?2bPG9D?e?5B31A1A5 "`?Cop0rigTt (c)h@2`09h@M`@c^@osX@ffBWArZ@Aaf@iX@n.h@ Al@ ^HsBe@e^@v@d@"*AY.D#b-3=C =GA6%`@bPE9 4VXWTW'0URŔ6!4a TTVhZlJ <>Uh$]T]tOA Q1(`3F ?FiXe& 0On?Tڿx#EA_0_;Jb"JaFK`E?F /?F߱)\ uPu1ad0kvX'qeDz`Ֆex#P_v^ܿ4 Sm?T0 -? YzO?x"pp1@c](Qv:y!r55a3id{ Y,?F\?F O&&`VW:E3 xui?k0M5eigJA|@ W|wv0rIQv v uB@#aE^0:O o?F^k#?FTL?FY.}*\/~kU?F#]ҝZ?G3´<]lѤqA|? yFז_t&o˿Wi}id3.aДgSh?FDR<<ddT0~B{*!ZyqH_C,qÿ́w?F?F}SR?FD?ƙ!FsU.RM .fMA.zM +M++M.++M."M+"M+."M+B" M / 9Z#j"M M / 9#"Q& / 9#"U@#"a#"y&/9# 2Q&/M#"322y&M='y&x(-63"-6(-6uM`? A7242H2\2p22222222,2$,28,2L,6d(6x(6(6(6(6(F(%F(68686,86,3B?T?f?x???>u#9|J2b&baFU*JRu0;t1 b.!ta  zKdS'& 0JU2zGz?@dMc vA@b\`;xbIyV{YVv,r !:tJsrcrv rArb"Iy{Fw,r|,rMNsTTs`?Copyright%(c])%209%uMcos{Ifzr}ai{n.% WAlр sՂUeevdɀ+bMs` `vba3Wbtbiv eqX z/'0UÒv.0 zlJvUt@S +HW!!1<!.!@B!oe#Aqhq}?FTOp2c r\2"02c JWidxȯ(U?F:IВ?F -e젌"v?PN,DT! uPuqMk 6̍B!23ץE c#)!:2 Fbk  1d2b4?Q& Bbҿr45u)3ߤi]~젙K.LL̖bTJIr^F_ l ^c ׳fif|F~1r!o` GR["hJY@]+ݾ?F6vb"BFϤ %7ɝh|ֻL~|OߔhcAXT4B;CS;YBUߤ_qt|ȝ\ {~TqUAdɼx1ֶ?F|DB젓 Sb\.B| JLǝrZ~HĢg^ޥFg?F$@Į﫶 ,3JaE̲Sι?x<#̿- B 俋}p4<'xld~1<ܬCs?FicuU FЪ֌?< 1TZ pq~Y,ͲJOuOOadO"o4orVbP}q1EʄOCZ d:d?FQC;sl_<>Д]xeW. buDSwV*ɟjoko}o(ZoUgrrPʃL?Fse9mpi1@ps?C>O"Y+Aq[*2l>M_Xp#:,?F[`XK ^$ǽhXvFLzN?F-\Z?FM+ ")?P@Μ<^'k<\ 4.iyq1Kqkjцpqx"pȯ(UP:IВMk=6̍Bᦺi(֋P:mk?FJNHP?PN,.y1",+~]s\߂~]5zn5]?]ȻEtAF5G u$6GaMș<ѶgQ>E% Jצ#{~[:ĂKǯsԪhZ*ߝVU4db62GA,ϹJLk81-s߭f>T (ז0g1!e\%zynA,=͒}s c 5P=D mOAؿvP $kL`C@Y?F,ɴZ`2a]o*"+H) $WV= ً5Od.t@//GB"I0}!!v!M ~+ ت!fLZf-?FOgE>k^:Ўmz@ܐE! cykA$i/ Ok/5BOkFBKHgJ&?كd v:Ì?JO\O1/6O1_C_y%tNw&q00[^cAD[F=k"l4 x QP*% T|0IWj&?F?0ۃ4_#BDM[ٺF1يC nf1Wob!x///oHokJ?~CvY_0 ?Fy]Gp0V~YPM'aܿuiTױ ?pNo=W/_$OpG/_قuO> >F6q0>XY'O?/?A6ُ}Deٱ 5?u_aX݆ϟs+?QcuAuu?FH_*|>Pe hV8?FeHN55/Ԡlփ~+'vc>`h?Nk"\T`bmMPyG&_Sf \l>{f`lER ͮF9S*#s B}PBA9!F0# `XOB UV ~d`Դ w6@+_XѶ 8Ms}GV |fjW lW XoW HqW ߆xsW guW C@PyW ߃zW h~W &,X &X $X p-]X AX (3Z X X NX %8X  X OZ&X =9V &UFDfP h>$KT 6D UF~@x! <`>!kbs{kbsi^% X\/7'TFJ!DbA[ qʕHDB # =hj8>T ]]9 #2AUFM&d2?]?Q6 ~A@9 hpAW(4?u`l?Xuhib  #AEJU `0.UH :l$'!f$5 #!`?CopyrigTtk(c])k20 9kuM c os If"!r !a i n.k WAl (s"Ue e v d $\#2q+0?*?<6M?\.?lp*E&B=#Hn&M4?6PMM4-,(,m# m'6##0OoNk3@*6'l6 ?Uhh#3 t!,$ BWaBE@BJ!>BdCRQ, 9VM (DAAO?_SSUR%c^|__WSU5cU ___C2O;rAc#p (e jO(heoiAb59 7,X\,'w'<4N%!4!m; v$zHD # =hj8>T! ]]9 T #iAUFL&d2ٿ} ??FP!3|>2u `u bu  @[A-0' - luu`l?ubC Ae"& J0G6G'0<p'"R('%.&' '!$ +/ "&"7/"',? U`0 h:HM %B7145 11`?CopyrigTtk(c)k20-@9kM@c@oKs@fBAr@LAa@i@n.k Alg@ HskBe?@e@v}@d_@4="36MD?F-P?M-83 7ԿF#30O贁NkC @Lg@?!Uh35 A"@ aRKaSPJOQsb2t8UoAo,giAreE9 6X7g'2Uq`^!D1 5 fj_(Hgyr Ds{ 9O5LF70(#H! *B 7K +a״ o@}+8ٶ o4aG75Z oiP(=Z? I1H;Z ?4PUFD  h,^TYYBBUF\.?x<F BP(c?P?tO @L^^{;B_@L&d2?sU!&"/ȍH$б?W/i&? ~t  0 ;QB`#Com ,link\netw r*"p0r pP1]a ,d0v c0 /1^ ; YP!3u &?  ;;" ;;;gr330;G;#7Drag onut heqp ad likb tw e cmGuiCaisd vOe]sBKcnTe)*`i]^o 9il^)n5k].b\.BP(?? M7Pfo??H D #  B>T>':)DNYh>) e0T9 EM dAU@\.?@?@?BP(?P6 .2A7 7P u` ?8=Q Keuoasu`u`bu`u -##@"L( (0!>zLU<?&(?bAR%g#2q l?AG}F]#qa0 c{`Con0eoct 0r 1l2z0 A0 +` Li2?05U"g# ~#"9 `.4 u{0 `:q1276' x:^%g#@KF$=mG<hB<wOEAGMOQ8u?^"f 4 #G<H7g#AwQ17;1w`VA0s_ RXYJchm!#e5P4PQ`? 1py0igPt (0)P209PMA0c0oPofR 1rP1a0i 2.P ARK0lPWs)bePe0v0dJU" Ip`@#neϥ?xdnf'#rK"c'#f `/2 k@ebum 7@w!;FPSeapb po18 `Qps-8R_t-0`R%J1^#B TU7^%\f*?v~!)?LEp &L,5bK`&! CT<0oPm`s0@a> m D/^""QQl2 2B33B11B56hR6C 7$PMC]E(j )w*:B^%]wQ1{U_ B@#"w` M`nu`a2u9bP1vpuqMc;Ca𡟳œTr`PrRdؐ1 Nؐ!m0k6['Zœ!̓ P`rRdEkœR`GD;bQiPeկ3EĜAP>aůYU_hœ%̓ S?bi`(aѿhUz1h B@̓L 0chAWej|ώUBؐiK0dA2gDMMœ̓ R 0oEAYCUœ`Α Apm0n0}Rfz\SP)aPF1lsQ˒W` ;iC`i0y,B@ ̓ ITPOP` 3c/@śSؐbP` 1mP e B1U"%Ѝ# A77^"[(qpPU]=`% &ROái;bBA`NEWOPKPSA ETPQOkRIWS1PT#ѿq;A11^"!! mBz3BB@9191A??´[(3F&p`g1q1 !0 2`T#;4l5cTIt,@r^";E3EU$hU9_D&zFBECF3s͵NSY";ų`pv*HA`bTfo?wQ&bu0HybDr)Ixbkfz`RQz:c exhGFRbBb<\ARbBg"ұeT2b @@-,eu LbrZSt?A////3s8BP(?N#F@<M?Orb:B$Ix\iĺAqG(.f\gXtFZ'0ye] IV]Zq 8BU~\2C }'qbšg q9#3^sGE[Tb%@tbSAc2} 2FA ]bF" JZd~Eq`axe@:F.qTba'g UD?@ ?`0o:C)aY3pra0]! \2rBa(a 3G2T3rA 0ex9dvn]GWrC jae%ah4F?@ p8Gp  Sfeb]oobs5{HZ,+s 5)d5ukDnmF08q#>K 9B <:aԴ o@+X/ o=aX?Z ; PUFD  h(^TYYBBUF~?x<F BP(?P? ` B 66 6 66^I6ȅH??A>IB@L&ɯd2?-(?\.1(. sUW!U&w/J G 0B`ETerminal,s"v",c i nt wo k t t o , !1i 01, et 05, qu p 5h rd0]1e!i1A^| (]G|& n?_ Q4FPR? pww {pv w wxwږ#wpwp~pw~? ~' ~~  wwpwl+w~wWv-{wywDrag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aab~߿?)j࿚i?3@ ?DUG DF P# h @T(PYY#EUF~K? P} 7K.B! : DTDh1YD| A3 AA3AA3AA&u` ? "6@@TThh||j&&"u#L&)R2%X<X7eqU ??' 4Wb0{[W`:#2P6Q3A"'򉄉Q9 ^ L1$K" H7"G' @>>ÿ@q@E?DF0܇rzBCCB-uI@`-1"Bu$ @]GbC$ Q`'(R7"A& <4' &)9u`u `"[ bz'$u`R425 ؓ3Q171`Vis_PRXYcPm!#58`0o68B`?CopWyr`gPt0(.`)02<`0U90M`cU`o `'of]bNarQ`aUa]`iO`n 0WAl` UhsbUe `eU`v`dR13d45*8=363@2t66 24B#30Ur3]w,A$T!^@cT<`o0m`s]`a>gdPa!gRsAA2hhB)p3+}RqqRqq281pacR2+6uM\$ %G11[2 P@ЯRECT'$@ b23;.UM5s_4/&ׄF3s͵NSYFU00UQ#,!@Q#J`epE>Ҡj_7Nam uBtS` SB~&_o<м_oB=Eoo/.c` WI4q*ՄVoC`C0N`҃?w`M`mI2JmhO@E!4ay>",>jeрϿ55 ©ltgИa ` %_0&ȳa5`NTW_ORK3bHPIPBQRБR5ISЀQ<) i$ eu؊6ŔX·q-/'0UwŻѡ ˈ74hH臘h5: '4ANѤ%Nb͡"44?4A?4'?e4[?4N?]4?4?Y4"4?9%4?%4ɥܣUHLuD" # ;3h( TEJ eUF~K? P VN% @*&>uA` ^?Ci i4Fu#Xp^Tb>tU b7t>U2zGz?@9 #>/&A@qa(bo)e|+|&R" !I`$>)##" #7"& "g"bo);l'R",R"/N )#z1z1'#`?CopyrigXt dc)020090M0c0os0f21r01a0i0n.0 Al0 8s2e0e0v @d0"i f  %!X)#]'0UB&T50 PJl>8fUlYC !(#pAg!(:)#FM&d2?qFGN tQ!P"(>!p8?ST0gYfRaNrTaU3^\.,__ 31bXEU[Vj?F@  l(\\ rX HYF `0QYp= ףXo`?̺oZqapXUL_^_p_\A*# ?Fg?l6 l\1"X%Du~ |!YRQi3a\ayo7;mDucP]{1cr|%iU{^?F^ lʡE\1_Zd럄ht X01?FXE#?FFb?PƚK G2G2 lû c_tFaXNTN]\R-\^Dr7 јٜ ZLT4&1pBHZlr À5%8yU`0 ST*J! o`rcݘEF3?FAM)ỷ?PMޟ+=){ )LFj?cl~Hӿ忷ǨHD: # h4>T]]9 M qAUFU*JR?FKRT*M&d2?Fp_8w?P6 L]A]M ($JuM` ?Agg2DSuVJtS  tq= ףUp$_>JU2zG_z?=@M3#JC&Aw@b#zw u#b( (+T&J[=# "?0& ?A$ /%B=#BZ1Z15 `?CopyrigTt (c])020090uM0c0os0If21r01a0i0n.0 WAl0 8s2Ue0e0v0d0+"S1W44#-=#f3 f7&4%/O]FiieP E9 ]FXsGL"'0UB&!4%0 FJlJQ h@$Gx12A!1(Z=#FF!0JR Lx{פ_Q\  R)V4"JVT?F]Q!?P-M G2G2\PRSWRc^_Lr___:M -LdTd&!&Ra@SBЯoogr5%Bb#iOD"ZoZD?B!)$a EeVHc^?F7zT?PxT8QoWmilvd)TJEvސl5 gvtmFd(:w.|&E2_U"rA k#ރ+"HD: # h4>T]]9 M 5AUFOt:?Fr\.?F#H$?F|>?P6 e.#A#b  JuM` ?+ILKu8Jt5  r7htyw/ؤA>[JU"?& ?AbA@D"bL$J#2zGz?"S@MJy&M#b#zO M(bL)Y&S,D"Y*B #115 `?CopyrigTt(c])20a09uMM0cK0osE0IfS2D1rG01aS0iE0n. WAl0 K8s2Ues0eK0v0d014-#*3 *7&?!FiieP59 !FX7G'0UB&!9$%0 iF}JlJA h@7<11D!Z#F&*JR?F9.4mL AxY S+RJ:rTDa@ RS .S X%QEU~[r\wY aU5UFGh4\Q iʧEQ8y^Ffj?F~@W?PbʒK G2G2@ D"]rA R#s c4v(O A.x$&AR q|4xa@S#Bsdvwrb5^%HD: # h#4>T#3 AMT JUFx<?Ft:N?F~?F7ͯfл?P6  >JuM` ?juJt It=WGWzHRIlQI#>[? ?AbA@"b$J2z6v?@MJ=&#fb{#z (b)&,"*B!!5 g`?Copy_rigTtZ(c)Z2U0%09ZM0c0os 0f21r 0D1a0i 0n}.Z Al_0U 8sc2e70e05vu0dW0! $-# ',?6iie59 6uX7_'0UvBZ!0 -F"AJlJAh711!TصTh]]9 MP qAUFbX,?F3L&?Ffl6?FWjZ?P6 L6 >M   $ m JuM{` ?=cc.@uRJtO  \(\tu_VQӽmI[>JU s#<@!A?V% ?zAJbV @bbbz #|"b#$|"bĄ$J 2zGz?<)@M/#J&B(&$%|";T'|"*B9#t1t15 `?CopyrigTt (c)02`090M0c0os0f21r01a0i0n.0 U l0 8s2e0e0v@d0'"m1Yq40#b-9#3 7A#-(0bP#E9 wFXIGG'0UBŔnF!q$a TFJlJ8>UhS2Q2Q]1LA|!-(`9#FBP(?FMx HNټOqɠ[Hl[yQ RV0"JU}e\?FAϡ`2If9?PaEQosqvyifdY0_rޖlͅhn4g_oeBdy$w4|!Z$ܿ__  %$?qyU2_U|#rA 4'"HD H# ih#4>TA#3 AM 5AUFbX,?F3L&?Ffl6?FW_jZw?P6 . > JuM` ? IKSu8Jt5  \(\tyuVQӅmݤA>JU2zGz;?@MJ&A@bE#z; 9#bS(ba)n+n&J[#";"?&L ?AY$p/R%#115 `?CopyrigTt (c)U020a09U0MM0cK0osE0fS2D1rG01aS0iE0n.U0 Al0 K8s2es0eK0v0d01E4D#5 Y-?*3 *7&FiieE9 FXG'0UBŴ&!$0 iF}JlJ(>UhiI <1Y!aRY4n Rx_ J:j]_`0 Ɓ_.S F) 8qViH$D?F@\.?Pַ  G2GC2\QYV4GK`mA.x ΤAR Ԡ3l4xa@ R#Bsoog]rb5% 8 bHD: # h4>T]]9 M 5AUFQ( B?F].r?Fx?F`0?P6 m. >b JuM` ?+ILKu8Jt5  ty(\{GzAt>tJU2U"?=@MJ&Aw@b9(WbG)T+T&JJ[#";'?& ?A?/`)UB#115 `?CopyrigTt (c);020G09;0M30c.10os+0f92*1r-0f1ai+0n.;0 Al0 18s2eY0ej10v0dy0@!4b-#3 7Y&?Fiie59 FjXG"^'0#ũ&Z!$0 OFcJlJ8>Uh9AA x"1DJau'Z#FFp8 J4T .xDD3AQ]M RVJ:n] ̅_Zr==B&d2?tW~ɲ`?FH!{?PZss G2G2 .S =;;RSW4O+EA.xSfϽ؍AR X]ded4Jxa@S#Bsoogrb5w%Q5U}H$D\\~?BBQ5\~CftZ a axUv~lk&lqU2n_U"rA 5>#pHD: # h4>T]]9 M JUFp8?F}>??FbX,?P6 >JuM` W?SuJt  f\It=W|?5^UIRIlI +#>5 ՆJ[;? & ?AbA@N0"b8$Be!e!5 g`?CopyrigTt (c) 20 9 M c oKs f"!r !a i n. Al (s"e e v d ^!b$-,q# q' &2zGz?@MJ69#nfb3z; .9(b8)E&?, 0"E*iie59 X:7'0UvB &!%$0 -FAJlJAh/7!0!eZF43, E <ᢋ/.# M OR|VJ:VjUS |bPReS0QEUxx#cHD H# ih#4>TA#3 AM JUFVj?F\.?F`0 Pn6 >JuM` ?uJt  3\ߦIt=WIRfIl$#>5 J[w? & ?AbA;@0"b8$񩣑e!e!5 g`?CopyrigTt (c) W20 9 M ]c os f"R!r !a i n. AUl (s"e e v d @^!Eb$-q# q' &2zGz?S@MJ69#fb3z; 9(b8)(E&?,0"E*iieE9 X:7'K0UvB &!%$K0 -FAJlJAh/7!T#cS( bUGD  3 h0TdYYB IUF}>?F&G/?Fgl6?FB\_z17=w?P} 8f u` ?0)u:t7 ? = ףptDʑ_Gzޑ?"L쇪iU!!`?CopyrigPt (c)J 2\09J MB c@ os: fH"9!r< u!aH i: n.J Al @(s"eh e@ v d  #S$#%B- ## '?;= # &#24 6 6 2$# #0U2 3@&B A^#5 6X'7'4Ŕ 6!4] 6:e6^#[EBM #HA%DGUHuDh" # R#U U  >]0T]]JUFgl6?F &p&??F{jG,"7?P  uM` ?j`fpu#zAtw tnٳ \b "OMGt2N贿Nk?@MM%&A2 bW(c+c+c& !!`?Copyrigt(c)209M c o%s f"!r 1ua i n._ Al-0 (Us12e0e vC0 d%0 "!3]$#Ry&#4?6QC?]"W(c+Q;'-,# '6% h|5 CFXGcG'K0UBŢ6!4I cFwJlU!#A(:F<3)0 vc p/y $(4!Xv݃`?FZyE}0pS a۫YQ\I`X3Uk?FQYC~\f"qoY|5UD/5?Fԧ߾ \F\bJFXk_}__\A#O_"_4_F_X_Vh#?F=]W\>ۆ\34=(_V[e¯?F'e*m#R)\b@QoWZʵ?F,ށmL \$6ԡybm&>e?FDȆY\.Iſ\)ozEU 2DVhVၱ?F}!\\wzVxtD?FYY4F-~Ȩ\(p|y m! ?FߝBF7+*y\= ڙbm&R{?FbZd\Aa\?ulď̟EY.@Rdv m5[?FRⳭ8HJ|\ HN۟VHD2?FߦM\\A>x2V8`?Fitͳ}#E\I&)|5e?:Xa"7["mSpd㯵ǿٿBeJ\n~.?oJ4=|nn)`]Cc֦Š]]7PPE5߁m:2\y_1W3E?F#Bd\eÉbm^9^?FV;.O!thV\9MύAa\n߀ߒߤ߶߻VV ZKX=\ .c|~k綖d]!:`="K\lJ(i0(dV;amЏ9ta*m \ǀ_?bmcO"QGm= bY~\r6y@ύ# AuYKtxoa{6\/ 4)V w!>?F ߄*"̕0ϓpD!K>?FWP! -ߟ:{Qb?D)bmh4(?F|hS ߵ.f-R[Ϡ ύ //-/?* Y7Q%i?F_s"'a E/`'r?Fs7"̍^sÁm;]֜/O?F/RE"ןh~pMM/㿈E8:͉@;$Pe"̪ (M۽^mJ?O.O@ORO ?????O%?kZ@ I~}P"P7|Msk aO=˩ ?Fa7 >fɾw2θOgl6'"*’ ܏{7_(4?F8W!"̿z2m^Gm}>IύAoSoeowj ____o#o\+w(@ `&"-JO}=O^f~oyV 6?F9~"̓ ;M\Oo~ahFp@o!"?ݟ$Eߡ?~%^]"Q>IۢwFX"̰4txڑ3:\Qcu '9لndu%?F<2}G"^̄ZϭSԓD-?F=ߓC.k0w]<<7 Qv@b" "R؝f2]bwƈWРJk "̇1%~]F@m 1CUb^fĽ w \,X|4]-HuvziP=?F ##BOP9]ǕDG(t{GeY zKgPfO2~]9+T~]~;?o-L /=m$+)9ϡʌ);M_q 0;F,5Uz!izVsJ}0W }f6i,g8~ٜ˺A}2!~ tLհ#QqBZ$@S]5tC6 e`,.zu'J1ߥ6HZl~"~ѠZ cX, }ٜ?J\1~C( k0ޜcAKrзX=YϯR p0%N. X, I6]+ Ӂ?FI:5;iU,=A  D)U= 1qRdvE[%ڻ2i{w׾mQ7Z'ütUl?F3&Gsj3jܙ-Ow) S-ۇ4H-ɫ9].E|"?F&ti}S`Aܙx@ ///??Rk/}/////b"m X i)r~ٜوWjFQ"?|PP?Fo%s=De9gsܙaEo#IOl֪E@e~iY/|dM?v۶ :YhSQv}T\Pˇi/ON|aܙz?`$OO__,_uOOOнOOOI@B?FKTG.i`AٜlOo->_|?F!i_ ]gٜ?, )ʼn!|?F3Ck*}DxZٜ?]QVyhk߻?FX[g]/I ٜ?bvd Co '9Koooooopj T&}j8>ͯ߮\nE@L@Gٜ|gxgx0Y3N,*ݖ}T  MlfahhÔ}Dq:6};p/"_f/-?Qc я$]+w(0p:dy~͇JO} M?p 0!s?FYY4ڼ~iS!(p|ʟEDk}'pҧO?zA'xў?R_F!] EQ>sNϽ=(V-Sewaۯ#5ٿ9/{?i߼$&B4O% C3i?y}o3qo?Fq ZiD!'FA\]0$=ڵ}SI6?Ͳ Ai{ߍߟI 0BT~#a\.LSA-BN^{q"?p?Fe6i㪡<_#AA}2![?F1:!6F! [jtE\qRD%yjǍ6Pݿ#V<>tl )ae"%7I[mzj3?C_%?Zzh̿Z} ?-P N?/????eK?]?o????yxz`h qDa.??>#L3ўh>/Ew9&:/ ЎP.JhHkOQ qӠħOʜ- &h̜zfUm@O___oa_s_____}2Z?F$'_{uh̆Ia{V?Uoǿ7e~h̰(ecy) - mz-$.hhsZ}2Ca6o`(~ "?F0.MX×mEyoށ顷6\Zq%բ}t7Z?F~ Oh?H |A?UYwkE?F?>C ?<a,:wPI5) ߈2/WfsM% e'MvǃaËgO?F%F92\aI}|b:B9 /VA ȒTH7D6D # 4# J  !"#$%&'()*+,-./012*3>5haATaaMYUF%>h`?Fr<."L?FcG?Fqј?PM ]u\`^?u#t  EF't !#"UY%'~P*%8'C"Ut2N贁Nk?@d\#&A b(++&Y/R/$78?#bMd4z (+b/513%R 11;3"`?Copyriug t(cU 09M@]c@os @fBR Ar@GAa i @un Alb@U HsfBe:@e@vx@d"1Y]4i<3K 7966i@15P6XGW'0UBQR96W1 VZlY]U]l@TGA#1(!l[?FuO[0:$}#)ߓ=b!8e,չ?FAOw(lxrNj$>la.PXTh|3ecztaLN E'm:"n*&G^|%[a5:q m5a)k?||=a Ed0UgEo"o4oFoT#______evHG?F3'y~|3`[]Ք|cToev_kfP?F;~|S3ٔ|\£oevV!ex<ڤ~|{ |ev-+3t#~|;6nRcoj^}.@RdQUev~؇Z?Fi~|+|ܔ|JCjev<)OO~|p )yBr7ev1 aNְk ~Ůeąܩ#A 5OfYQWgn?FO*~|Ch|`-jݯev%~?&nq΃0xi7y :kOop ~|4ZO勿]oρϓϗU+=Oσ+ӑ!]~|:<]їyT}ςT ?FO'>]P~|qH~|ο:.H!|ςto w'"~| 5(CşVPevR`t)/~|?7>-<Ѫ|Ra 1CUgevo I?Fb7~~|/ͼ셡yoevkY?F>_ ~|3y evMXy"}~|ω9?lev ?< "~|^_\˱R&8J\n|by\M[`bD'nnEm|<z_m6itaW}nk.V̲ocxL45MR9?}.mE?KxSi#;m1LL'7,}K^>P/Si^}///*=! B/T/f/x///byYEvk덚4D2=y_mS M߾}zNmWUdw4֢DB&™t|d˽\Li#hމQ?7B%$Ĩ^QUHnOOO_8& ^OpOOOOObyV~%װ!(E>ܩu;ofUN1[D}~XXtۯ~'haCjmt{ܿ`Xn b_փ%hkqwu~R)uoo 8& zoooooo~KL}"_!eΟW?N eFjӈHi>DYH'h(%i?}ou MMXjQ %f[݉gm`¥ G8j ,E/R&5gS>Na8|'hhv_ ߖ3bW7mȧս[PebݱJ}:?nuTѺ 2DV8& į֯ &i~FR?[M%- q?j  DJP}uQ9/'hdfO?FV+p\[Wvpa9| wdѿOtZ(UxzêJUfeC(6,b#l+eR(߫\(V1:9Oi:4ߋcG1!Gq}9 ?C)uNUBv(Bo?FO& v!~5I-lym(,.$23G_CRHCM4q6vl~_}5#7o Tfxy?F{UX>͘ Uܼ*d4Ij@ ?Fi; Ly4GXj9 g1re-#d\D-h:Pc}Lw4mv/*ĩMQy S:U ߟpʟy7j?FZ?W+}(U*<SW?F .턟bGF赁9 <8߁-`Z͸~~5 CTc/ws}e v#P3ׂo(r.i,"4Nr¿Կy=Lu?F7G3z 9 ˇ 5F?FJ.3$w 1tK -o9a|ዙCѾ;-z0ƛ+WzBg/w-%&G,ߪ 2Dؚ5F] MH,>PNr#߽v<߯0ʨ)QMLTgMUs}I$FATG}=u2f`?}1&OwuXp+MEp41}o7o9ݭ&fgPy}}M?=;??1O2DVh6 yJ]}z aFgRlnk6+nɣj4 anf-n_h?+nj^AoxvTN.g!uh-Vo@MVp >ߜ)sPU 1D'[}LG*>QoN/`/r//.V//+/=/v(#xEAGw} }%(Lʧ1;$gKG"V2w]xR)vJD)3 7F!nLigqN|ݭƃN'QM7ZSF^ jO|OOOJv?O O2ODOVOOh_D PicPK>ѩ݅cDchQ>M cAѩ JBɆf!\.S6x~r|#ݭ#.CqQzUȴ߯b~(oooofo*o<* 8}\q3h^ ߻l~ϢϴQ9 AS@XC^}|/9K ս5١TB㰉\JA**=@$,Q9G\鐒?FU ^d /g [A\9mpï?FnrB=k X* S(N A9]'Nx =$.T~v )\A?S7|#!8+|z AM}D(:LfQ9j,,j?F4*a.ȉ\zFq&ǻ}w^Ym[6?FG!Ɖ\0#Jh@ /x|I]11\\o=P|G>q2:]_1BM4=1vq"_]=H` @]//?A?S?e?e ////??/ԸƑ?F qT}S҂ ϵymޯZ?FQo8G} ϊx"1IQ }M}>~~^{ªy1}eYQrŁ& [ׂox^.cyOK_]_o__+!OO__$_6_/ٗW(?F 5w*zi۟灜i{ސ_26w?Fߒ(xJJ쑻+Uϰ|]FuqyUq~iT ]~[4vp=!;L }?LYh- pzK"o .@R/R7?Fhߤ? QTJZ׬23l%?FO& ?GSۈQ?5])B.zhɅ($Q1(5} X㺾 ?lرc#&8J\n/_?FdW2ʼn@-1ş9ȟ2֮tp?F<*fB s1]V%sAS})Tk{#/v2OB!XLi.݉}1̾MZͯÿտ$0BTfx~P _! QR6#I -hCFUz5|Y}N?#TG}"F$=c*c,j4Z>[T-G#ϊt9a?FQڧc,H ~{%a -2FA`~hLr Xޟno#:L$FFǕgtg'bl[;| ߛ{-,>PbtG)AQHZ?F;ƃOc,t[|{r6<9{mgE?F Cg=:*\R鬱YG/7)- I;-Z?N5şZ=/I'nD5-!bp1{ IWx^q2.BTfx\PX{Zxߛwtu,]R |{A&BQbhì?FB#5һ5(B]-nf!Pb,$21Nw gnV~B]gyz9^p 7QoGI|q~-9@d]/// :/^/p/////\ˍ|x?FȯI|hLYosլ{m|^>`tzϞI|ύKYʰ;!l?bsdzNQN鮢I|\Jm^*Hq^o_`n~APpⶍߥzȣs^ˀ≜O__(ZA}OOOOOO_~ޯ1}^i8Z`֋ ŸLS$W+wvqO j2~Lx/b6^Ni~ KC} mN;-럴 =T=qip8/~ h ;-#霝 2Dz1oooooo\~DG߷&wz P}/p쯹BxN]dK]y.8@h&V&%-2|ЏLWM;| =yidݑ%%-tڨNR 2DV2ď֏ : O21f& =Q>Nsz99]yX21 ;>#94oQ>ݠ_g?]^%mT`>rG.l(5sm H_`?#~6\9Ҵ} қhnBk=Oas#3ί(\Ofe#y~NQmr갯]ߕ 6m^ϕJY9]7}}NQ X]n;m^uԱ_^?$R?F[5l<;Qq<7B1b;-Y='!"/;mZoY?4cgC2oXj|ߎ84 2D\M'g\elh \~5[Vq:a,8ω?F0 iWi&4\GbF|aS)H9z#/<^bAL_߶,fdlEH{=uU%5*eBn v;!#4?FADo)XLȚ|bv!7A!*EKGalH`.P%ҧqp6t KT4HD #h34>T33 AMT JUFM&d2?F W`?P6 >JuM` ?juJt  5]It=Wp= ףIURIl#>5 ՆJ[ ;? & ?Ab A@N0"b8$*e!e!5 g`?CopyrigTt (c) 2U0 9 M c os f"!rԎ !a i n}. Al U (s"e e 5v d ^!Eb$-,q# q' &2zGz?=@MJ69#fE 3z; 9(b8)E&?,0"E*iieE9 jX:72'0UvBŴ &!%$0 D-FAJlJAh/7!h0!ZFg, E <ēNmP#  &OR|VJa9PY]PPReS[RUV%:]x#c S( bHD H# h4>T]]9 MT JUFp8?F@ W?P6 >JuM` ?juJt  f\It=W rI*RIl#>5 J[? & ?AbA@0"'b8$e!e!5 g`?CopyrigTt (c) 20 9 M c oKs f"!r !a i n. Al (s"e e v d ^!EHb$-q# q' &ڝt2U2?@MJ69(5,E&?,2E*iieE9 X:7'03Ŵ &!%$0 TF'JlJ8>UhAA `!1ZF? `, E <A#] =RjVJ:VjCS |b>RSS6 QV%U\.;\QNYu=!ٱQE^?&d2_MZW#h415U)Hb?*V[E! YB\JQUU+Vp;_MZw@0$[D#h2$_6U2rA >#JsS(#e_zH"%u@s $I/bO`MF(0E# 1GZOB HX H~dմ I@+^C 8s}GZ CZfZ SHZ XZ \Z H`HZ [cRZ g^] k+Z n6X[ *r[ -uAh[ nwp:[ z&] f x] qH'UFD  h(^TYYBUFjZ?F~??x<F BPG(?P } X ]B66]  TTUTTT9T9d9iȅHBU?? ?B@L&_d2?@-Q(\.c(A.sU!&/)1(  0%[B`(file,s0rv2,compuUt$4d0s40r0b24d0n0tw,0rk!e^| (QSG& i?!3E?? ?qq wp  p w{{ qw qwqw{pqpqwqt}pqppw'wwwbwqpwww|zwxvDrag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aabjZֿ~??cN׿ mF1??*t {V↑T*J?@ ?UG DF P# h @T(PYY# QU@jZ?@~??F?Pn} u{` ?Su#؍>>HX HlHYHH EO.LO4:UDDXXUllk'"&R",I'U25ĉ%4 ?"u'4b0{N[`:Q1#2T6"!^U9$"3&9"/L6 2&!'ݯ>e@ÿ@qn@?@-fB?mDcFԸ0)Bu/@`҈-1Bu@rCC 5GAB"2Cm9u`u `"[ b!u`%3Qo1o7B`?CopyrigPt0(c)020P90MPc.PosPfRQrPQaPiPn 0Al` XsbePePv,`d/`VPs_SBNcPm_!#5P8a` 6!bz1AXE:FG$1 8dT=`XQj2`]r` M`nuPaPt+arp{` ?bup` BO=ݛ`S,t@']p5%m-T݁<9ofm'Qh>qݏ,BT'.at'xXf@>pÿЇobLZdq [ܒrr$ avvvrsW"`ERol]16 бeI`~bb a}abr@6uP`TaSo1u"_u'I1I2A!b[aahaauhAaYypP`Z u*`q`*q`azAx'F5_db&bpSF3s͵NSYJEbrV@ΓB!e 8d : LqW,@rB:@0ɏT}sasahYV搹Mny ` %߀P&S41sa`NEWOWRKb2H PRq!RRI%SQio$o¹h^A'70Uc?!0oHD # =hj0>T h]]9  5AU@jZ?F͂T??Fx?SF?P6 jt`  o?tk[>(A Vu aSuo.]&A]  *ԮJU2zGzt?@L#&A@bA#z7 5#1bO(b])j+$j&[ "*(w "?& ?AU$l/%B115 `?CopyrigTt (cu)Q02`09Q0uMI0cG0osA0IfO2@1rC0|1aO0iA0n.Q0 WAl0 G8s2Ueo0eG0v0d0"1E]4MŤ-&3 &7&l>]Uhz811U!J!u6?F+\.>djIIa? >"(EǑ I%K9E 5EU . K ;;5QIWEEEF _KnSA?8@@Bu?FDR> ?Nk"\6`bmMM\j=am {:e P> #? D"? 5-g?j4B7!B{oogr57!ibDAbE9 MuX7_'0U~rN!$a)5 5vIzHD # =hj0>T h]]9  qAU@;?FI5K?@xEL?6ѿP6 t`  bm&Qo?t@@L]WI,#u aiuoL> JU2zGzt;?@L?&A@b}#zs q#1b(b)+$&[9#H",ɺ (wH"?& ?A$ /%9#BV1V15 `?CopyrigTt (cu)02`090uM0c0os}0If2|1r01a0i}0n.0 WAl0 8s2Ue0e0v0d0"O1E]S4MŤ-9#b3 b7&l>]Uhzt1.A!JN!m.%-+0djV1ax߃S(FJ-&?F mO"> ?Nk"L[Majnha_:e P> #? BK=o? n-?j4Bs!B{__Wr5s!D8E6V 6?wj_|_ ^XE.U@z T6?F @' d_mOoT \VyWxRkrVo_bVh*g:n"'UaEjz36>CN>?Bn}]zGvN7V iDAbE9 MX+G'0UJPN!4ae5 MaHD # =hj0>T h]]9  U@jpiH?F^?@$?F]F?P6 t`  !a&ao?t,F=۳=u;u auo>J2zGzwt?@ʐLAw@b#z1b](b!).+I.&[-m(?0& ?A$I0/Q%!!5 `?CopyrigTt (c)02`090M 0c 0os0f21r0@1a0i0n.0 Al[0 8s_2e30e 0vq0dS0T"!E]$M-# %'&l>]Uhz!1!JF% djc~YZ(_N9zOMGE%_EH$SwO"K ңHE ^&_8_WE_OqOHOOi&DAbPE9 MX7'0UUfb>!$a % f1jHD # Uh4>T#]]9 M5AU@jZ?FL|+?@?F({~?P6 JuM` ?u JYt )t7zEA2&L_D?. > >tJU2q K?=@MJ&A@-b9(+bG)T+T&J[#"#a?& ?AH?/`)#115 {`?CopyrigTt (c);020G09;0M30c10os+0f92*1r-0f1ai+0n.;0 Al0 18s2eY0e10v0dy0z"!4B#e-?3 7)& b 0K8>U# ]A]A "1!ъ!PzQ <%OYAJEU . K;;\%W%EF($L[.FX5Eai%?F 6?wL;] W-\TB⤲8?F@&SA?F @ ?Nk"L'`bmMW_Ye[ٯ7 VK=F: [jr ? D"? XZvD?ta@Boogr5;!QEx]SiLO MLGXa~WOTZiAle59 XG"'0Uc&N!$05 .HD # =hj0>T h]]9  IAU@K?FOgVb?FY%?Fwᳬ?PJW?>t`  ^Z?t#ə.E @x?r?/{4܂ G _Z+u u$ >  J JpU?43f<!.&P?b3bbfz@1bAe&bq$d 2zGzt.#@LT"&r(~&i$q)(+}'i"~*#81815 `?Co yrigTt (c)o02`09o0Mg0ce0os_0fm2^1r 1am0i_0n.o0 Al0 e8s2e0ee0v0d0"11E]54M-#D3 %D7.&lUh#7 V1#Ai!J# F/?B1B  VRiAAbE9 MX G{W'0U*R2N!I$a {VZUHPD  # #>h0JTpERI MU@u6?Fjc{g&?@%r`5B?Fm_F:Is?HNtQ`  II?t#]  _ii$!`kNu  iu%wj>M JQ T       "@&&JNU2"?H@Qs#N&A@b(bU)++&RNp}#>H1#19 ?#bbbz| R&/5R}#11`?Co0yrig\t (c)02h090M0c0os0f21r0Aa0i0n.0 Al!@ 8s%Be0e0v7@d@21a4t#-}#3 %746lJ#$JUp5 3 M19 1!q(!FnElrkRt# 8$kcD?@숒@)?FP?P"EkU |1\iOT/irvs}i>`_,of :m ,M ?? S&d2? *b?r4B!B oo1gr #5!>%(EQOOOO__FAc1_C_ D4ևS]_o_yRX+{_,__ #R__ (YQoSo+o=osd {oEeooooooFyUy{* hDVW(I X"c7I!pg bf'iMjSE t%XyG|'0UŢŞN!O4i |UGD # hz0TdYYBU@(%)?Fxg^?@0߯H?Fs7Uݹ?P} t` 87?t#_)TeΦu ]ukv  ̝L&UUU&I&3 U!!`?CopyrigPt _(c) 2\W09 M c os f"!r 1a i n}. Al00U (s42e0e uvF0d(0'HS$#-## 'I?k=#ǒ 2j$B##0U'BM3@&@F0Yk} #HA%DKb5DK3DK5DKED$!GiAZG5(|IDFX7yW'&Dŭ6!4YA yVZHD  # =hj4>T!]]>#AU@0߯H?Fz)e??F˞9q?P6 t`z  ?5t# rXѮu)Nu;):O]ע0 &> # " "+"+"+"+" $+"T-J[U7 ??& bA@ 2b4-#2zGzt#+@ Li68!6 ?}; 72U!:B#AA5 5`?CopyrigTt(c)20F@9M2@c.0@os*@f8B)Ar,@eAa8@i*@n. Al@ 0HsBeX@ej0@v@dx@)21"DM-,;?C G& l>]UhzAE!A#!ְ1J`#@{&pz?FUy{?NT,dKj&b&R&M/8T9K-q?F@F?FdG0 >Nk"?YE*]\LThKjfGD&Qhj ?iU3UGe&Y`?@/Jb)h5oWKoWo;èKod}l$ro`nE2K?Fˌ%4G{?F -q? eZR^{|\?6?vodmP}l>MBe 9 N 1iS? 1?grl#51:PO"4ga@Sq(UE^@O|ǐ[`ߡa v2rbA @3ijD&}laqOz o?#WHZ'Qu=*[^N?F]%P?@O&@ c?FаM<n ?` eb0)\(Pfodm}nv}l?V5(?q$Ix[cN#W{ #iA@&QeE9 MX''0UjdN!0 /HD  # =hj0T h]]9 #]AU@}%?FR$,?@6#V?Fc_3֡w?P6 u` ?u#t  3zM%t3ws%.<%H._'B> #PJU2N贁Nw[?@ʐL+&A@wbu](i+bk)%+&p%#4">9"<5!?& ?M#bbb͓z$ p&"/%T%#L1L15 w`?Co yrigTt (c)02`090M{0cy0oKss0f2r1r 1a0is0n.0 Al0 y8s2e0ey0v0d0"E1E(]I4M-%#X3 X7&l*>(UhE j1#$Ac!J`%#@5e$_F??!foA3nBM( V?FJ-R?@HQ??FS!R?P| llHL6VLD5E+v;*AůʙH: 8snP%$? k?Q? \?4_!__WrA5_! R,U3OC@IL?F4~Kz?P)Oy޾ T!]]>#IAU@܋?F2Oa>?@#r`5B?F*ݷ?P6 t`  >B?\oEt# ŖoZu 0Nu;Y:|8>$# JpU>##<?2& ?5bbbz@b#ANi&bu$'h 2N贁N[2$@ LX"D&v(&m$ :;T'm"*B#d1d15 5`?Co yrigTt (c)020090M0c0os0f21r 1a0i0n.0 Al0 8s2e0e0v0d0"]1"a4M-/p3 p72&l>0>Uhh= 1#!eJ`#&FNTM\jh1B,RBM(!JoUy{O_ e@ So4(D@^Tw?F]֝ä ?Nk"?w_KT\T+\_(Kjӷjmplhj -`\TPQE\Uui,St_o u~!ՠXEO9= T?FL?;uQ_Pm"rA @3sjQ1lğ=GoYniAleE9 MX|'w'0Ur^N!M$|A vzHD  # =hj4>T!]]>#IAU@܋?Fj?@2r`5B?F^ݷ?P6 t`  >B?\oEt# 6ΠZu 0Nu;Y~:#&}>0m8>  PJU2N贁Nwk?@ eL&A( 5bM(b[)h+h+$h&#[-M$#?& ?b$Z*'*B#O1O15 5`?CopyrigTt (c)02U0090M~0c|0osv0f2u1rx01a0iv0n}.0 Al0U |8s2e0e|05v0d0"H1P"L4M-/[3 [7&l>0>Uhh= m1#!S!J`#*&FPUy{_?NTMjC1gc RVMʣ(D#@ ![?F"$. ?Nk"W?IKTLTcKjRlhj p=' (*!)i,SO2Kes9T;QEGUFw6qX}__TM7fTZT\Dž}_P^52XOES"rA 0S#Es3iAleE9 MX|$Gxw'0UrIN!4gA xvzHD  # =hj4>T!]]>#!AU@܋?Fc_v?@#r`5B?F*ݷ?P6 t`  >B?\oEt# ap'EZu 0Nu;Y:|$># BJpU>#͙;? & ?5bbbz@}bAA& K&@ 2zGzt?"K@ L0"&N(bM)+TK/8Z*B<1<15 5`?CoyrigTt (c)s02009s0Mk0ci0osc0fq2b1r1aq0ic0n.s0 Al0 i8s2e0ei0v0d0b"5194M-t/H3 H7T &l>(>UhE=3Z1#E!J!FENTMjN@1h(NoUy{OO e@ o)4(D@^Tw?F]֝ä ?Nk"?'_KD3\T+\(Kj?ӷjmlhj P\ DiAlePsI=MXsG'0UzbZ6N!%$0 sFEjHD  # =hj8>T! ]]>#!AU@܋?F*?@#r`5BW?Fw?P6 t`  >B? \Et#տ|u l4RQu?]>I$>I# JpU>͙#<?& ?9bbbz@b#AE&bQ$$D 2zG[zt#@ L4"&R(^&I$Q)+]'I"^*Bh{.M#To1o15 9`?CoyrigTtk(c)k2009kM0c0os0f21r1a0i0n.k Al0 8s2e0e0v@d0f"h1l4M-:?{3 %{7&l>(>UhE= `51#I!J49fAn^ R)X f"B!Jui,SG?RSlOS u~!N]8-19= T?FL;uQ ?Nk"?YVTQRXQOnğ/=i n (\ wTiAaePE9 MXLg'0UbZiN!)$0 Lf`jUGD # hz4TYYT#BU@5?F;?@ t2?F`0 ֺ?P} u` ?u#t+/8<&L9`d<t9( .88LU``ttyt m "t"hf;!&&'n"!'%0'm= 'p ~i##0U"K?@&S#a!!*_"`?CopyrigPt (c])0020<0900uM(0c&0os 0If.21r"0[1a.0i 0n.00 WAlv0 &8sz2UeN0e&0v0dn0w"!$J#B-#3 7#^=$6#D66 2$e,^6C% #HA%DK%D8K5D`KEDdGg&}c__'TAA""}(Pa%288BKS`DS\U Siha5 &rX7g'$i6!40 f-jUHPD  # #>h,JTEI MU@jZ?F@s??FX7`/?HmNuQ` o?u# j>tMtQ 1@t PATOQ E O#l|O6,2c J^vNt, "t "QwNbo ?!FVxNo]2УɆX3BUYU>VZ\)_ W거QUTAQ LG4CaCa_* Q_*____ o2f 8CT]?FoYDȡ?@ ~1pc} 9dS0]Yb<=p\/_ RT)4HtvzI!| ?^_AV,uݹ:4Z\o &Ja ʆXBU 9A1p@߄ߝZ\X9 (p\P΀dˆXEBUp2t Z\5q[,=6B҆XaU̓쬏 qXa>YU . [[ ;;p\Ua>YF`rZYoQUaai%?FzP4Z\^ W-p\] xTy8?F.?@@SA?FWk@ ?Nk"_|5`bmMp\PB|y[7 ơ|`?])?p*FWAX|a筃,H7~Z\?bxT?:!G4QڡUeB_T_f_x_DOOkoooZ}u?FU2Ty9=ŏsҟGO"vP_?@mlփ?Ff>> }= R3|Ofѡ|&['aޯ)d3#ux"@4SK 6ASʎy'e>'"Y`r,iMm׹ ߵl%1X~G׷_'0UJ26L50Ov ׶HD: # =h4>TB#]]9 TqAU@1D)?FL"ߛ$??Fٵ #ָ?P6 u` ?u4 t  ]<)t7񿗯)2)LEkL>  JtU2qD ?=@LC&A@-bu(b)+&񆤍[=#L"#a?& ?AH{/)=#@1@15 {`?CopyrigTt (c)w02009w0Mo0cm0osg0fu2f1ri01a; ig0n.w0 Al0 m8s2e0em0v0d0"91=4MB=#e-OL3 L7&l>  U#,|A|A9 $] t^1*=# #p Kw&&J`=#R&F 2'_b0CwvA kRqVM(~"!;ɡ?@<3?F ?P-DT! ;d1?Y=:ZTO㿂f{OaB J4 13? v,? (N_?r5w!:8oJo\g"a@jS(.8R!ZFI nx4__ D_U5U,VS?@g$ ?F~4,ێ~@ 8_H_ZTml`KDfl`'E4q2d8R鿃oo`rmkod&'aE2%_7USr(A@z#y3ae&b{, fZT5sae~t?FG=Va|7>-\氹pAiʈ$%?F(XoZ1a|}%\Iii ^WB^:fvEZT˒AiU?FAx߾Ya|k#ӝY~/Yt(Ae o0AleP59 MX=GL"'0UŢbN!40 O5 |HD: # =h4>TB#]]9 T]AU@R7)?Fy߈C??F"ָ?P6 u` ?u4 t  *5y")t7n)2)LI"+BA B JU2q0 ?=@L/&A@ybm#zc a#-bK{(m {(+I&)#Kڬ !?& ?A"&g$bbu/b /%)#Bo1o15 {`?CopyrigTt (c])020090uM0c0os0If21r01a0i0n.0 WAl0 8s2Ue0e0v@d0"h1l4M!E)#𤲝-DO{3 {7&l> U#,AA9 ] 18! #p %J`)#@~t?F # 0hU-~-/HA RVM(ET"rYD?@J-?F-' 9d 0_Y b%r\_oӫ([MFoFl 77]8>!Zݹ:4\\o?gƭkdQEF5W4?@A=?F[Q`??P-DT! :U^Zs[ #l@*p9lJjV\\l_ I&vpkhAzi!J?F߸TF\\Ͼ\zT khzinA9f@.mY <\\ԕ$ ,S{khAzi׍8r?Fį^?m ? ~_5 ә(Ae 0AleE9 MXlGR'0UuőN!40 ~5 ,@HD: # =h4>TB#]]9 TU@~t?FYaJE??F? ~?P6 u` 7?u t  }A_)t7Ǫ+)2)L^A]>REJ2q?R=@LA@yb #z.-b( (%2+2&L q!?& &?A"#&$bb/b 4/U%  1 15 {`?CopyrigTt (wc)B020N09B0M:0c80o%s20f@211r40m1ua@0i20n.B0_ Al0 88Us2e`0e80v0 d0X"1 4Mi!E-?3 R7&l> 0>U#3 GA9 B)1 #p| U%J`F(jdO C]/S֑K VM(HC-O"K[%q3U5CU?uBТ:^Y=~q\G3UE2OE#rA 0"c37QA?Y\[)xIB_mT^(`d :0A@le59 MXGB'0Ur-N!$KA5 fjHD # =hj0>T h]]9 U@/?Fxpz?@]JQ?Fk],>Uh@ !f$; hp _Q%Jd(jcZ(sEp!$a VZHD # =hj0>T h]]9 U@~t?Fxpz?@?Fx?vÂE?P6 t`  }A_?t#%_ ,u auo>J2zGzwt?@ʐLA@bu+b)%#+#&![Ha$?x& ?A//)񩣑!!5 `?CopyrigTt (c) 0]2`09 0M0]c0os f2R!r 51a0i n. 0 AUlP0 8sT2e(0e0vf0dH0@I"!E]$M-# 'x&l>],>Uh ![$ hp| F%JdjcO(hEq<cBɀODI$xD\AEOOOOD~hEuBТ91Y=~D\GiAbE9 MX|7W'0Ub>!$a VZ_H$;s nXk_$:@@_Fx# ߯VOB Y ~d8մs o@+C o[sG*7of7Ș7TH7P(7.X7%Q8F֛U8FV86Z8\8_8a8|7d8NHf8ؒ7_8I*9xh8s<9Hk8 ]xm8 Xo8!UFD  h> T6D 4U?\.??F BP(?3P<; (^.h1 B ._ .s....UBU G 0`%Document,aUp, r2 SPe, 1!LF"t:$Fil, 3#g, k!^ x%% -G( S?'5 7NWwp\xpcu wf`oo\Drag onut hep adn"y aex.bL&d2ٿ~[?? ].r\5r\.EUGD" # h <^T$(YY#ӌU@\.?@L&d2?@~߻?P} u` ?Mu#3:D:DTDhYD| A A A AAAA&A&5V0&0& 16@@TThh||&&&h&S"4"!X2^7H^7D',6{҂_a?6 ?bbvbz@ t#RCCYCCCCCCX2&UHF%2?BX2]"BW3Fg3RFh3FX2 FU X2 F X2 FU X2 F X2 F5 X2F F"BC\"CS3F"CS=F2CSGF2CSQF/2CS[FC2CSeF2tsU2URM3@S[CT"bS$bZCfC f|d78JSB<D>`ÿ@{q`?@bK?df2uL -1bu .1ocr4#b vs"xh4C"M7 qx24S"_|um2u`u7`"0`au`rK=pg2 3 @D:'0A2Er:+Jw"+`@rApdBS(pԁ .r`?CopyrigPt (wc) 20U9 McoP'of r6ua in. U DlQ sUUePevgdI1`Vs_0RXYIcPm!#5378eH^0ӕYcU5#.U#Y.3#.E#.u#.=##.#.|#!.#!.#.pfmcaȹW!T4!4!28Toԁ arQ(-DT! @b0Q `aqqbvab? { q¬rrh@@($ &  qàq#@tq3t)'`Rg:sB Tgx Er@9'/'Tw\M8^6uk u  bu\ %qfŪ0`0#`abukv33u &rg𔫿Ͽ`28x1,@9"HD: &# ;ih ,>T!  9 U@D&d2?@KJ}0@@sbA*%BAG W$?n& ?A$#"t9,(tϺ*r(, [ # ͐(tl-t?t - t>?t- th? t}? tݒ? t?t :hT!<M#h $A$A5 s`?CopyrigTt (c)[@20g@9[@MS@cQ@oKsK@fYBJArM@AaY@iK@n.[@ Al@ QHsBey@eQ@vZ@d@?"l>U <>Uh$@AA BAJZ?-ku  ?V|=R"Q jRVMB:]GZpS ,TvRU5UC QkY[zZ%=| hUnd<+o{Yh<gttgYCNboio&1\oBٽB>PhQYwk_>g"U2Q_cU#rA $s?"HD: &# ;ih ,>T!  9 U@ʛ߹0?@nIw?@DI ?@MԿ?P u` ?u4t  !t/ ms!*bB!~DF=nm>J}02@@}%bAUB A?f. ?s,zb/b@'݉ 6 ,) ޷+ 3"?-#ϿS㥛!z /(, ) .":'`hT!<M#hT 115 u`?CopyrigTt (c)020@90M0c.0os0f21r0Aa0i0n.0 Al:@ 8s>Be@ej0vP@d2@?"Ul>8>UhpApA 1 0LZW|?U@7>0XB ,V MB4GRS_FU5:W]dT!  9 U@xj89?@F?@oU?@T?P u` 7?ut  K~D!t/0!*ҹ_!!DS_ Vn[>J}0@L@%_bAU)B AO9tG ?f. ?Y,zbb@' aY + :pΈ?'!x?z!(, ) !b#/h<M#h 115 u`?CopyrigTt (c)0W20090M0]c0os0f2R1r0 Aa0i0n.0 AUl&@ 8s*Be0e0v<@d@?"l>4>Uh\A\A 1 LZX9v?;0 0af҉A BVMB:66C JO DB.Uk5`AOWI[n_/T^9_WQ.U>U?jtOJoBdA D.UE2OErAg D4c?"HD: &# ;ih ,>T!  9 U@fB?@`mH?@i~jJ}02@@}%bAUB"G ?f. ? ,Cb /(,n  # :'hT!<MQ#h 71715 s`?CopyrigTt (c)n020z09n0Mf0cd0os^0fl2]1r`01al0i^0n.n0 Al0 d8s2e0ed0v0d0%?"l>]UhzŒT2JTyF mBFMB:jt?lK{@C vTC E%4TMlO~IADE2TO;rAg ${S?"HD: &# ;ih ,>T!  9 U@D&d2?@b1X΁?@K~?@;d;O ?P u` ?u4t  'V3X!t/XQ_x!*!D?7n  >J2U?R<@Ls,A@Tb+&tt0/t 2- tBy) ?b++'񠀑h!<M]#hR1R15 s`?Cop rigTt (c)020090M0c0osy0f2x1r{01a0iy0n.0 Al0 8s2e0e0v0d0U{"l> <>Uh$AA* p1JZ-ku? _V|=PA BFMB:]GZC ,DBE5E@C QI[J%=| E@^d~XLAIJgOlo.WPE2OE#rA $s{"HD: &# ;ih ,>T!  9 U@^?@K?@ZRJ}e0@@%bAJBAk?f. ?Y,zbb@' 6f ) + w/?-#S!zs+/&a&!+ Pkw?; d;O?8(, ) N" /=$h<MQ#h /A/A5 u`?CopyrigTt (c)f@20r@9f@M^@c\@osV@fdBUArX@Aad@iV@n.f@ Al@ \HsBe@e\@v@d@?"l>UhCAAMA 0LTuV  iRVMB4`_rQw_?"Q5^_zYQU@Uor_:k2P_t;rA $c?"HD: &# ;ih ,>T!  9 U@PaX?@f)?@MbX?@TaWk~n?P u` ?u4t  N=!t/ӯw~!*Dʮ!D#M8  >RJ}e0@@%bAJBAk?f. ?Y,zbb@' 6f ) + w/?-#S!zs+/&a&!+ Pkw?; d;O8,(\, ) ":'hb<M#hT /A/A5 u`?CopyrigTt (c)f@20r@9f@M^@c.\@osV@fdBUArX@Aad@iV@n.f@ Al@ \HsBe@ej\@v@d@?"l>UhCAAMAd 0LTcuV  iR)VMB4`_rQw_?"Q5^_zYQUUor_:k2P_;rA $c?"HD: &# ;ih ,>T!  9 U@PaX?@ w4?@MbX?@DkuL`~n?P u` ?u4t  N=!t/^~!*Dʮ!Duϧ{z  >RJ}e0@@%bAJBAk?f. ?Y,zbb@' 6) + w/?-#oS!zrs+/Ⱦ&a&!+ Pkw?; d;O?8(\, ) "' /=$h<M#h /A/A5 u`?CopyrigTt (c)f@W20r@9f@M^@]c\@osV@fdBRUArX@Aad@iV@n.f@ AUl@ \HsBe@e\@v@d@?"l>UhCAA`MA 0LTƌLuV  iRSVMB4`_rQw_?"Q5^_zYQUU or_:k2P_;:rA $c?"HD: &# ;ih ,>T!  9 U@PaX?@b`;?@MbX?@TaWk~n?P u` ?u4t  N=!t/ӯw~!*Dʮ!D%h >RJ}e0@@%bAJBAk?f. ?Y,zbb@' 6f ) + w/?-#S!zs+/&a&!+ Pkw?; d;O?8,r(, )] ":'h<MQ#h /A/A5 u`?CopyrigTt (c)f@20r@9f@M^@c\@osV@fdBUArX@Aad@iV@n.f@ Al@ \HsBe@e\@v@d@?"l>UhCAAMA 0LTuV  iRVMB4`_rQw_?"Q5^_zYQU@Uor_:k2P_t;rA $c?"HD: &# ;ih ,>T!  9 U@PaX?@iMbX?@TaWk~n?P u` 7?ut  N=!t/Ӕw~!*Dʮ!DNEr >TJ}0@@bAUBA_k?f. ?Y,zbb@t' 6 ) + w/?-#oS!zrs+/Ⱦ&a&!+ Pkw?; d;O?8(\, ) "' /=$h<M#h /A/A5 u`?CopyrigTt (c)f@W20r@9f@M^@]c\@osV@fdBRUArX@Aad@iV@n.f@ AUl@ \HsBe@e\@v@d@?"l>UhCAA`MA 0LTƌuV  iR(=RRMB4`_rQw_?"Q5^_zYQUUor_:k2P_;rA $c?"HD: &# ;ih ,>T!  9 U@PaX?@Cz?@MbX?@aWk~n?P u` ?u4t  N=!t/ӯw~!*Dʮ!D`q1 ARJ}e0@@%bAJBAk?f. ?Y,zbb@' 6f ) + w/?-#S!zs+/&a&!+ Pkw?; d;O?8,r(, )] ":'h<MQ#h /A/A5 u`?CopyrigTt (c)f@20r@9f@M^@c\@osV@fdBUArX@Aad@iV@n.f@ Al@ \HsBe@e\@v@d@?"l>UhCAAMA 0LTIuViR  iRSVMB4`_rQw_?"Q5^_zYQUU or_:k2P_;:rA $c?"HD: &# ;ih ,>T!  9 U@PaX?@h"o?@MbX?@DkuL`~n?P u` ?u4t  N=!t/^~!*Dʮ!D >RJ}e0@@bAJBAk?f. ?Y.zbb@' 6f ) + w/?-#S!zs+/&a&!+ Pkw?; d;O?8(, ) N" /=$h<MQ#h /A/A5 u`?CopyrigTt (c)f@20r@9f@M^@c\@osV@fdBUArX@Aad@iV@n.f@ Al@ \HsBe@e\@v@d@?"l>UhCAAMA 0LTuV  iRVMB4`_rQw_?"Q5^_zYQU@Uor_:k2P_t;rA $c?",H?_bs A/}뿟@JZqՆFMQ3## ߄rB} S ]Dalմ :@+Ck<:aGg8vkPH8v(8W#A8&08?)8],59/*92)ȓ95$9998<~h9b?H9B+UFD  h(^TYYBBUA@ ?I?P?  j FXj$| ȅH?? B@L&ɯd2?-)(?\.;(. sUa!_&/J ( G 0B`@iMac,$intosP,Ap 0le c0m 0u e+r m0n !#1n0tw02k eq0i 0mT0!,Pa"0d<0]1e!i1^| ( 3P B'?/ ~σ(/('v2 ?;%4I^b /pcv  .ԳDrag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aab?ɿt@ ?03%?贁NkHD # =h4>TB]]9 uAU@?%?@jOT\wQ?MΊFA9rr$r&A -34#u `7u ub A V >E& "* MJz:@q&" " ""@)"",Y#LM=b1+$'")"$"$27Y#EM 39 45#^Y#2q0l3SF'Y$?@J3N G>uLA-l5!HBuJAXRBr.#=wCbBܟ0?Cuԟ0I su `VB(#X3&'"2ql>!Uh@r5Y#1 a]WRa_SfPJA\'!2(1\ 4;?P,2Fu`bu@W(&PV$5K:ci3?+3__R8bVf5UVUmgWQheocrATM"AaAa$2f2aa2$(t 5tBtEJb.|wb_z9ի tBi8gvF$t| '"9P(Aqt% wuEwprp{Ϗ'9" nP=3EFre$w'2$9͟\oyЏRsRtruP!s1e!`Hih/P",>w=rr*˶ m4EWlqqPӏMū >sSoeei`%/;@%;LTY`2_3_4_U5O2c3c4cĉ5ZFf=G,[\F-[fpF.[F/[fF0[F1[fF2[F3[VF-2<UZZnnUUUU&&U"&"&6&6&UJ&J&^&^&Ur&r&&&S&&&&&&&&&&&66&6&6:6:6N6N6b6b6v6v6666666666666FFFF**F*F>FHOZHU\FpFpFFUFFFFUFFFFFFFR)!#FQ_? ?҈#lPYPPPPPPP!P1&PJ!P^!Pr!P!PP!PdP!P؂&P1P&1P:1PN1PhPv1P1P1P1P1P1P1PAPAP*AP>AP\APpAPAPAPAPAPAPAPGDPGR"`[R"j[RnS"tR"~R"R"R"R"b"Ė#b"Ζ7b"ؖKb"_b"sb^d^!^!^(2,2/2,A\ApA\AAAAHA{ZU@JT^_&&2c3&2c3&Bc3&GBc3 6yBc36Bc316Bc3E6Bc3Y2ibYCYCJ YC^YC&YC&YC&YC& YC 6ѢYC6YC16YCE6 YCxOrb&bxbsS;6{<F\.?@>Pÿ@qP?@VR?TV?2uL`,@-"Ru p`\@ZJrRf%c!h-" bqn?SuplNiE2u`u[`Fp@auL`bxΆΆ(؂g苤^q_US! >!a{4_b:pu{`:A~PHp\Ov΁Qe7`ESΆl.sPb ΁L'`q q w ;3`Vis_1RXY@chm#589{4*-b`?CopWyrg tU()2&@0,W McEo'ofM>rAzUaMi?n@ WAl EsUeeEvdBBgrRTUs`Hl"et6BTl\桇ub~aaLt~aLđΑؑ (2F@HD # h0>Th]]9 MP# JUF\.?F?Fb-2;?P JtM`  7?t#_B-K~LQGJu duo7]A$>aRAMJob@K+ tQJA$"a?& ?Aa4 ۢ # b)ta*"t =td=!%(U?tB? tс? tݖ? tޫ? t? t?ta.#A#A`?CopyrigTt (c)Z@2`09Z@MR@c.P@osJ@fXBIArL@AaX@iJ@n.Z@ l@ PHsBex@eP@vZ@d@m"Bh<#jl& @K @?UhLBQBQ] 1 !7AA#!V!@}ac RdjaE,JU'5l[Cdk%(gEU˖7s?FXE]ʚdkddѿS&iEn?Dǫoo` j!'hUFBG\k?*J`*e?~7CWi <I'hQYP ?F_}tk)vƫs'hQpsf l'hQYfyP\l'h1Y΋Q?FR&1\kQY-]?F2(Gf/\Rk> u'hQEW?7uL"las \.'h!YJ' ?F^3~\Nk?:P'hQY|y%.?FSo\Wkŏm'hRXD7Ժ?Fv[Fios*e7U l_9;\"kyޙ"M'hQYǬ! om?q:z'hUU3_Ő{ m!j,H0d ǕHD: )&# T=h0>Th]]9 Q BUFpɷL?FE@XV?F&1?Fbi0 ѻ?P Bt`  S0?tFp֯hݿQVBu auo7>JASTfw? ?Az@bbb! ( 6 )  '+ ߈?/I-Z#,z AF u +%/,8)E!'+ k(??r+oF(a4 8) E"#{ #BstG8tU: Ba L>2?!88;D;68?5;D; tj>8LALA1 `?CopyrigTt (c)@2`09@M{@c.y@oss@fBrAru@Aa@is@n.@ 0l@ yHsBe@ey@vZ@d@v2h<M#l#@ M@?4>UhjA6Q>1| L`k$k;cdj]J}vMjR]M 6)fMB@prwp\ k_稇avCe=ESe??F9Y? lgESeF:h%ykod iSQޗh~Kjo*` Oc;Ꞗi2_U3rA/04sCHD: )&# T=h0>Th]]9 Q BUFfFY?F,"+?FYU/?Fʯ8ϻ?P Bt`  I$lG(?t=`j>_PS ,Bu aquo7>KJAUVJp?X ?Awz@bbb! ( "f Փ'+ ' qq?z A  +/.&68))E! '+ go?W-sU!n*a4 8) "u#{ u#D!st?8tM: Bav L62?!08;<;60?5;<; tb>{8DADA1 `?CopyrigTt (c){@2`09{@Ms@c.q@osk@fyBjArm@Aay@ik@n.{@ 0l@ qHsBe@eq@vZ@d@n2h<M#l#@ M@?]UhzbA.QR61b L` KdjMaQ  6fM{"@FT4\[3K_,7e5EGe9?Nf[ N_qd7eEGeXәj'SW\m jOf܋h2_U3rA'04msCHD: )&# T=h0>Th]]9 Q BUF` l?Fċ?FC7Ժ?FBGԻ?P Bt`  I4z?t? D ǯ^\+Bu Fduo7 >JTA0f88v?WYϳAjLF@z bbb!' 6Y % )! ! ,+ <?' o?z #a47% =) J"#K#({% (+ (G t#BXY'?A> ?A "+(/+/=/O/a!y:5r{l/@ sU10( /???? "0aQQ'@`?CopyrigTt (c)FP2`09FPM>PcTh]]9 PB IAUF++g?F2?F {J?F%?P t`  r^?t鯕 { Li@Zu Mauo8 >    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 ,p )l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ s"?(a490 9_b!#{t0#tN8tϻ: Ua BL2$18KE;F?VEK]; t>B 4AA0`?CopyrigTt$(c)$2`09$M@c@o%s@fBAr@Qua@i@n.$U @l/P Hs3RUePe@vEPd'P 2h<M#l# M/P?]UhzPAQ1 L@3F l?F OqP dj|aW{,8cUFwW?F0ev"?F%Ti ?FUѣoO 0Yig߻ull4_aj??N~f0co+ fEeC.kn?FtdFِ?Fd?F?#l/Оol}dQ3ll BXl귺m|bBhaUeAvؼg`r4g?FÇ?F6|vflPI3qoikeðl1` |QT?heFnFc^?Fq`h leowkyyftGg˂a,8b1;MHD: )&# ;h0>Th]]9 PB IAUFd    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 ,p )l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ s"?(a40 9 .*2!#{0:#t8'tϻ:Ua L2$18K;F?VEK.; t>B4AA0`?CopyrigTt (c)@2`09@M@c@oKs@fBAr@Qa@i@n.@ @l/P Hs3RePe@vEPd'P2hb<M#l1# M/P?]UhzAQ1 L@3Fy*,[ܶ?F5]P dj}ah8cUFąiBQ?Fۨ.?Fao#ѻoO 0YiM+Fll_Zaj?}0%|f0c˭ fEem<_څ?Fb?F+}?F?oolGGTll .Xlhe{|kww@haUec(x,`H^ǀ?Fw?F234 flux1qoiFA(]l |~Th]]9 PB IAUFd    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 ,p )l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ s"?(a40 9 .*2!#{0:#t8'tϻ:Ua L2$18K;F?VEK.; t>B4AA0`?CopyrigTt (c)@2`09@M@c@oKs@fBAr@Qa@i@n.@ @l/P Hs3RePe@vEPd'P2hb<M#l1# M/P?]UhzAQ1 L@3Fy*,[ܶ?F5]P dj}ah8cUFąiBQ?Fۨ.?Fao#ѻoO 0YiM+Fll_Zaj?}0%|f0c˭ fEem<_څ?Fb?F+}?F?oolGGTll .Xlhe{|kww@haUec(x,`H^ǀ?Fw?F>34 flux1qoiFA(]l |~Th]]9 PB IAUF;L?]?F]hk?FXN׶?F`V?P t`  ??tQ0I9xE "˪Zu Mauo8 >    PEJڍU[\/(?&. ?AbbY!z@Ae bbCt c(a4b  b(h#{ h#΍t(tI*#0f88vb.#i L5<1v(&$7/(D%"6/5;0( t.*B#11`?CopyrigTt] c).@2`W09.@M&@c$@os@f,BAr @YAa,@i@n}..@ Alt@U $HsxBeL@e$@v@dl@"h<M#l# Mt@?]UhzAA!J@#Fy*,[ܦ?FVTP dj}תa4(SUFąi?F6^G?F/?F?oO 0YM+Fӱ\*aj,.}a$?# XEUYu?F #?Ft Ǜjm?FRtolTBJ\LMYBltavXlp@XEUg6PK|$yp?F`1А?FAD3 o~l/AD0qYJg ַBl*$ԞXlFB:XU^Fi?FfaEHRl_[Ei1GAf`dSq+a,(bvHD: )&# ;h0>Th]]9 PB IAUF;L?]?Fԁ_IRE?FXN׶?FgaV?P t`  ??tnG9xE"˪Zu Mauo8>    PEJڍU[\/(?&. ?AbbY!z@Ae bbCt c(a4b  # b(h#{ h#΍t(tI*#0f88vb.#i L1<1v(&$7/(D%"6/5;0( t.*B#11`?CopyrigTt] c).@2`W09.@M&@c$@os@f,BAr @YAa,@i@n}..@ Alt@U $HsxBeL@e$@v@dl@"h<M#l# Mt@?]UhzAA!J@#Fy*,[ܦ?FVTP dj}תa4(SUFąi?F^G?F/?F?oO 0YM+Fӱ\*aj ,.}a?# XEUYu?F#?Fm?F*m{olTBJ\MYBlU{XljDc@XEUg6PK|$yp?F1А?FD3 o~l/AD0qYf ַBlq$ԞXl.B:XU^Fk?FaEHRl_[Ei1GAf`dSq+a,(bvHD: )&# T=h0>Th]]9 Q BUFa)DbJA]^'? ?Az@b ( 6f  )ϓb= + _? ' 88o?z A s +=  /)/;/M$[+["-j!Q U1[!x(ar4 ) "'}# }#BtΜQ8t_:Ba~ LH2!B8;N;6B?5;.N; tt>8VAVA `?CopyrigTt (c)@2`09@M@c@oKs}@fB|Ar@Aa@i}@n.@ 0l@ HsBe@e@v@d@2hb<M#l1# M@?4>UhuQuQPtA@Qj LZF>7ܾ 7j bL\2] 6R1bMB: ZWdc Ɵmdb`GeGEWe2T|`I\aibvIGeU@OCJQTh]]9 Q BUFq \?FWY۷?F \?F0;?P Bt`  4fտݛ?t? 2N (+Xۙʿ-srVBu acuo77AJA]^'? ?Az@b ( 6f  )ϓb= + _? ' 88o?z A s +=  /)/;/M$[+["-j!Q U1[!x(ar4 )] "'}#{t }#BtNQ8t_:Ba~ PLH2!B8;N;Q6B?5;N; tt>8VAVA `?CopyrigTt (c)@2`09@M@c@o%s}@fB|Ar@Aua@i}@n.@U 0l@ HsBUe@e@v@d@ 2h<M#l# MT@?4>UhuQuQtA(@QH1j LZF>7gܾ 7j bL\G6] 6S-fMB: ZWdc mdb`GeGEWe2T|`I\ai?bvIGeUWeOC9ri_xu j aGeWe_ooh2K]u3rA 4s2HD: )&# T=h0>Th]]9 Q BUF&?FUa|AY?F \?F0;?P Bt`  \vJA]^'? ?Az@b ( 6f  )ϓb= + _? ' 88o?z A s +=  /)/;/M$[+["-j!fQ U1x(a4 ) "'}#{ }#BtΜQ8t_:Ba~ LH2!B8;N;6B?5;.N; tt>8VAVA `?CopyrigTt (c)@2`09@M@c@oKs}@fB|Ar@Aa@i}@n.@ 0l@ HsBe@e@v@d@2hb<M#l1# M@?4>UhuQuQPtA@QH1j LZFr7ܾ 7j bL/\]M 6-fMB: ZWdc ?mdb`GeGEWeA?2T|`I\aiavIGeUWeOC9ri_xu j aGe@We_ooh2Kt]u3rA 4s2HD: )&# T=h0>Th]]9 Q BUFR ?F(Zп?F&?F0;?P Bt`  U'?t)S Pʿ-srVBu auo7>JA]^'? ?Az@b ( 6f  )ϓb= + _? ' 88o?z A s +=  /)/;/M$[+["-j!Q U1[!x(ar4 )] "'}#{t }#BtNQ8t_:Ba~ PLH2!B8;N;Q6B?5;N; tt>8VAVA `?CopyrigTt (c)@2`09@M@c@o%s}@fB|Ar@Aua@i}@n.@U 0l@ HsBUe@e@v@d@ 2h<M#l# MT@?4>UhuQuQtA(@QH1j LZF>7gܾ 7j bL\] 6-fMB:D ZWdc 2Nodb`GeGEWe2T|`I\aibvIGeUWe-B9riu j aGeWe _ooh2K]u:3rA 4s2HD: )&# ;h0>Th]]9 PB IAUF(*?F?+8?F-?FP덋?P t`  g ?tr㯰4\ls,Zu Mauo8>  ]  PEJ]_DRb(?&. ?Az@bY(ne 6 h )b k+ ?Z'e 88?z6e Ae [+ h g/y//$# L:5, /sUK1*ap4 9] 2(#{t #tN8tϥ: Ua BL218KE;6?@EK]; tͺ>B 4AA0`?CopyrwigTt c)@2`09@M@c@o%s@fBAr@Aua@i@n.@U 0lP HsRUe@e@v/PdP 2h<M#l# MTP? <>Uh$QQ]AQ1 LZ3?ZkP 7jbb;'ߨL7a 6{fM8cUF*eE(aFr+}G`_=m?F7T҄xo`Oi^jva~t0sK`+t!kĀ9t!KU:M} -'sLl}]|]r9xLuf.Lp?F4gHvodObdcZgt_=,V~#|..7 ;vLuN?Fbݲt{?FNch|[m?&1 zoUh+#|?n1%*!ayTh]]9 PB IAUF/vt?FxN7?F-?FP덋?P t`  q?t} ܯ` \ls,Zu Mauo8>  ]  PEJ]_DRb(?&. ?Az@bY(ne 6 h )b k+ ?Z'e 88?z6e Ae [+ h g/y//$# L:5, /sUK1*ar4 9] 2(#{t #tN8tϥ: Ua BL218KE;6?@EK]; tͺ>B 4AA0`?CopyrwigTt c)@2`09@M@c@o%s@fBAr@Aua@i@n.@U 0lP HsRUe@e@v/PdP 2h<M#l# MTP? <>Uh$QQ]AQ1 LZ3?ZkP 7jbb;'ߨL7a 6{fM8(a?*F?F}ޑ`oO 0dTc I\rdcd bjӯokga>?>eEef?+}G?F_=m?FSxo`OivddlvatG0sK`%tkĀѡ3t!KU:G} -'sLl}]?|]r3xn.Lp?F4gHpooZgt_=,V|..7 5veN?Fbݲt{?FNcb|[m&1 zoUh+|n1%$!ay Th]]9 PB IAUF & W?Fq<9?F-?FP덋?P t`  q -?tv3m\ls,Zu Mauo8>  ]  PEJ]_DRb(?&. ?Az@bY(ne 6 h )b k+ ?Z'e 88?z6e Ae [+ h g/y//$# L:5, /sUK1*ar4 9] 2(#{8 #t8'tϥ:Ua L218K;6?@EK.; tͺ>B4AA0`?CopyrigTt c)@2`09@M@c@os@fBAr@Aa@i@n.@ 0lP HsRe@e@v/PdP2hX<M#l # MP? <>Uh$@QQ]AAQ1 LZ3˟ZkP 7]jbb;'ߨ7a 6{fM8cUF*r|p蠼F?F}`oO 0dTc ?I\addǼbjokgaz>eE(aFr+}G?FC_=m?FS҄xo`Oi^jvϾat0sK`+tkĀ9t!KU:M} -'sLl}]|]r9xLuf.Lp?F4gHvodObdcZgt_=,V#|..7 ;vLuN?Fbݲt{?FNch|[m&1 zoUh+#|n1%*!ayTh]]9 PB IAUFt5?FYz?F-?FP덋?P t`  @"?tgQ,n\ls,Zu Mauo8dAd  ]  PEJ]_DRb(?&. ?Az@bY(ne 6 h )b k+ ?Z'e 88?z6e Ae [+ h g/y//$# L:5, /sUK1*ar4 9] 2(#{t #tN8tϥ: Ua BL218KE;6?@EK]; tͺ>B 4AA0`?CopyrwigTt c)@2`09@M@c@o%s@fBAr@Aua@i@n.@U 0lP HsRUe@e@v/PdP 2h<M#l# MTP? <>Uh$QQ]AQ1 LZ3?ZkP 7jbb;'ߨL7da 6{fM8(a?#FT ?F1uRؑ`oO 0j?rdcd bj]ea }eEef?+}G?F~xW m?Fxo`Oivddlva~ttqE`%t:܃3t!KU:G} -'sLl}]|]r3xn2M#p?FcGpooZgt9L|8 5veN?Fl"Ry?F-#Fkb|[m&1 z'ǵ(|F$0$!ayTh]]9 Q BUFa)DbXX +Xۙ ^MVBu auo7>JTA0f88v?WYϳAjLv@z bbb!' 6Y % )! ! ,+ <?' o?z #a47% @& J"#K#({% (+ (G t#Beı?A>L ?A"&"&$/*8%,"t:"t>  A A6 `?CopyrigTt _(c)D@2`W09D@M<@c:@os4@fBB3Ar6@oAaB@i4@n}.D@ Al@U :HsBeb@e:@v@d@2h/1<M#l#@7? M@?(>Uh7E P+AA!{ L:FQ덋<6j% bRzg9<2 "\ ZWdS ?mT W5U5k0YaY?vq 2HD: )&# T=h0>Th]]9 Q BUFq \?F8˻?F \?FB2T|`I?P Bt`  4fտݛ?t.QW+Xۙ]MVBu acuo7hAJTA0f88v?WYϳAjLv@z bbb!' 6Y % )! ! ,+ <?' o?z #a47% =) J"#K#({% (+ (G t#Beı?A>L ?A"&"&$/*8%,"t:"t>  A A6 `?CopyrigTt _(c)D@2`W09D@M<@c:@os4@fBB3Ar6@oAaB@i4@n}.D@ Al@U :HsBeb@e:@v@d@2h/1<M#l#@7? M@?(>Uh7E P+AA!{ L:FP덋<6j% bRzg9<2 "\ ZWdS ?mT W5U4k0YaY?vq 2HD: )&# T=h0>Th]]9 Q BUF&?F 77 \?FB2T|`I?P Bt`  \vJTA0f88v?WYALv@z bbb!'n 6 % )! ! ,+ <?' o?z #a47% =) J""#K#{% (+ ( tQ#Bı?A> ?A"&"$&$/*%,"t:"t> A A6 `?CopyrigTt (c)D@2`09D@M<@c:@o%s4@fBB3Ar6@oAuaB@i4@n.D@_ Al@ :HUsBeb@e:@v@-d@2`h/1<M#l1#7? PM@?(>Uh7E +AA!{ L:F|po蠼6j% bT  ü2 "\ ZWdS mT W5U4k0YaYvq 2HD: )&# T=h0>Th]]9 Q BUFR ?FB?F&?FB2T|`I?P Bt`  U'?tǡ P]MVBu acuo7AJTA0f88v?WYϳAjLv@z bbb!' 6Y % )! ! ,+ <?' o?z #a47% =) J"#K#({% (+ (G t#Beı?A>L ?A"&"&$/*8%,"t:"t>  A A6 `?CopyrigTt _(c)D@2`W09D@M<@c:@os4@fBB3Ar6@oAaB@i4@n}.D@ Al@U :HsBeb@e:@v@d@2h/1<M#l#@7? M@?(>Uh7E P+AA!{ L:FP덋<6j% bRzg9<2 "\D ZWdS ?2NoT W5U4k0YaY?vq 2UHT5D B &# T>h0JTtiiM ENUF =?F>?FumK?F_u?P WNtQ` Kl7?tUo>TX*F(бoNuj mu){E0f88wv?AVQ Ӎ!@#b#m@b  0#  #W(3 (o+&T" #t#NĽ/?. ?M"&$a%$$,/>*L%i,T"tΞ*T"tR.R11#`?Copyrig`t (c)02l090M0c0os0f21r01a0i0n.0 Al@ 8sBe0e0v0@d@"Vt!X#xB #/ @T,UtE1UA-!@:2T|`I pvm?S׮(%U;jX[5G@Y9"S\FkV5%U#ɯ7ܾ=\WQS\O?XbiTQY%_7_I_[_DQOOOO__Ԫ?FH փBl[{Xl?G漫i_)fV u``9`-YBlO N}0,*x]@$?F>BlǏXlwg%ooo EU}ooooooM5#?F߳Y`;Blr*XlYmC*)fWBǽ?F#nZBl>^̔ԍ?f Q́)f?aD%?F qwJBlIY:6XlIb ʏ܏EABTfxF) \Ck?-q_Wa1Cv(Ԅ~Bl!H,BXQnB)fF01DBoT[inJ\ۙgyAHD: )&# T=h0>Th]]9 Q BUFKpJAS`? ?Az@bbb! ( 6 )  '+ ߈?/I-Z#mg!z A " ././@/R+,g/y'sU1,ar4 )] "#{t #BtNg8tu:Ba PL^2!X8;d;Q6X?E;d; t͊>8lAlA `?CopyrigTt (c)@2`09@M@c@o%s@fBAr@Aua@i@n.@U 0l@ HsBUe@e@v@d@ 2h<M#l# MT@?4>UhQQA(VQ^1| LZFg 7j b2ɶGOR] 6SCfMB:1ۑdc $I$I܍+d 2aa]EmeL.la'iL?.]eU@5/LN?FOOka,dHޓgmeoo(oh2gyu3rA 34s2HD: )&# T=h0>Th]]9 Q BUFܛ?FYQt?F#P3?F f7?P Bt`  _?t+%`' VBu auo7>JAS`? ?Az@bbb! ( 6 )  '+ ߈?/I-Z#mg!z A " ././@/R+,g/y'sU1,ar4 )] "#{t #BtNg8tu:Ba PL^2!X8;d;Q6X?E;d; t͊>8lAlA `?CopyrigTt (c)@2`09@M@c@o%s@fBAr@Aua@i@n.@U 0l@ HsBUe@e@v@d@ 2h<M#l# MT@?4>UhQQA(VQ^1| LZFg 7j b2ɶO] 6CfMB:1ۑdc $I$I܍+d 2aa]Eme^L.la'i.]eU@-7/LN?F$_fq.Th]]9 Q BUFn?F_S?Fi$?Fo2ͯS3»?P Bt`  -1{?t8b ?VBu auo7>JAUVJp? ?Awz@bbb! ( " '+ ' qq?z A 9 +/.&68))E! '+ g?W-sU"!n*a4 8) "u#{ u#D!t?8tM:Bav L62?!08;<;60?5u;<; tb>){8DADA1 `?CopyrigTt (c){@]2`09{@Ms@]cq@osk@fyBRjArm@Aay@ik@Wn.{@ 0l@U qHsBe@eq@v@d@n2h<M#l#A M@? Uh,cQcQ] '1bA.Q61b L`?g{Op dj? |m cuۡ'1 6!1fM{":F7Q덋<6d kS=ѣ<n2{!5E[nc^ vogaKeE[eV_@cbc g@]N4o r\Dž}iNuPna?FTPf|]tElF<2hQp_m痪 |"*hQiyl:qid5hQJ_noDhU23rAg 4n2HD: )&# T=h0>Th]]9 Q BUFD7n?FWw?Fi$?Fo2ͯS3»?P Bt`  ;#p!5?tR?9E ?VBu auo7>JAUVJp? ?Awz@bbb! ( " '+ ' qq?z A 9 +/.&68))E! '+ g?W-sU"!n*a4 8) "u#{ u#D!t?8tM:Bav L62?!08;<;60?5u;<; tb>){8DADA1 `?CopyrigTt (c){@]2`09{@Ms@]cq@osk@fyBRjArm@Aay@ik@Wn.{@ 0l@U qHsBe@eq@v@d@n2h<M#l#A M@? Uh,cQcQ] '1bA.Q61b L`?g{Op dj? |m cuۡ'1 6!1fM{":F7Q덋<6d kS=ѣ<n2{!5E[nc^ vogaKeE[eV_@cbc g@]N4o r\Dž}iNuPna?FTPf|]tElF<2hQp_m痪 |"*hQiyl:qid5hQJ_noDhU23rAg 4n2HD: )&# T=h0>Th]]9 Q BUF}h!?F0,?FTZLP?F Qû?P Bt`   Mǿ?t `,1fǰvz;ZBu ,dcuo7oAJAa^!? ?Az@bbb! ( 6 )  '+ g~X?I-Z#!g!z UA " ,/,/>/P-[+g/y'U1Ȋ,a4 u) "!#{ #Bt9g8tu:Ba BL^2!X8;Ed;6X?E;]d; t͊> 8lAlA `?CopyrigTt _(c)@2`W09@M@c@os@fBArԕ@Aa@i@nU.@ 0l@ HUsBe@e@v@-d@2h<M#bl#P M@?8>UhoQQ]AVQ^1| L@%fq.?F?c^ dj ٨la6ztB:'3S3 7d /kyԷ&Dh]EWe?g~kp+ɉ 5d}bGeUWeFTol0juMDhn1ۑ0j`Dhn.R덋<o+o"Th]]9 Q BUF}?Fb-P?FTZLP?F Qû?P Bt`  R딿i?tT`,1fǰvz;ZVBu auo7!>JAa?^? ?Az@bbb! ( 6 )  '+ g~X?I-Z#!g!z UA " ,/,/>/P-[+g/y'U1Ȋ,a4 u) "!#{ #Bt9g8tu:Ba BL^2!X8;Ed;6X?E;]d; t͊> 8lAlA `?CopyrigTt _(c)@2`W09@M@c@os@fBArԕ@Aa@i@nU.@ 0l@ HUsBe@e@v@-d@2h<M#bl#P M@?8>UhoQQ]AVQ^1| L@%fq.?F?c^ dj ٨la6ztB:'3S3 7d /kyԷ&Dh]EWe?g~kp+ɉ 5d}bGeUWeFTol0juMDhn1ۑ0j`Dhf e9o-ai qGeUoo$o6o3UHLD )&# R>h 0JTlaaM>UF .?F@=~9?F î>?FesY?P >tA`  A,:?t _VČ= W:`>u eu!s7"JJ0U?HA9 @tt7 b2:*H&tH  th*N) ?MB"b";)H&e8H  3 H -US4oTZLP?FK+0j6֏@!QpoĬ?> گ ݷeo?gց́ F?i?;0~1G}}϶iM@mp?#nC%fq.?F)Ouy\l2_+ʦmx~E}@p5"iQ덋Рoe*al|ٍşןHD: )&# ;h0>Th]]9 PB IAUF>'?FЖ''?F {J?F%?P t`  V k?t˟R{ Li@Zu Mauo8#>    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 ,p )l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ s"?(a40 9 .*2!#{0:#t8'tϻ:Ua L2$18K;F?VEK.; t>B4AA0`?CopyrigTt (c)@2`09@M@c@oKs@fBAr@Qa@i@n.@ @l/P Hs3RePe@vEPd'P2hb<M#l1# M/P?]UhzAQ1 L@3F l?FƟ qP dj|aW{ޓ8cUFwW?F0ev"?F%Ti ?FGUoO 0Yifull4ajT?N~f0ci+ fEeC.kn?FtdFِ?Fd?F#l/Оol}dQ3ll BXl귺m|؇bBhaUeAvؼgԵ`r4g?FÇ?Fϓ|vflPIϮ3qoijeðl4` |7T?heFnFc^?F]`h leowkyyftGg˂a,8b1;MHD: )&# ;h0>Th]]9 PB IAUF>'?FtQ>c?F {J?F%?P t`  V k?t^i{ Li@Zu Mauo8$>    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 ,p )l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ s"?(a40 9 .*2!#{0:#t8'tϻ:Ua L2$18K;F?VEK.; t>B4AA0`?CopyrigTt (c)@2`09@M@c@oKs@fBAr@Qa@i@n.@ @l/P Hs3RePe@vEPd'P2hb<M#l1# M/P?]UhzAQ1 L@3F l?FƟ qP dj|a{ޓ8cUFwW?F0ev"?F{%Ti ?FGUoO 0Yifull4ajM?N~f0c+ fEeC.kn?FtdFِ?FBd?F#l/Оol}dQ3ll BXlF귺m|bBhaUeAvؼgԵ`弄r4g]pÇ?F*|vflPI3qoiGkeðl2` |HT?heFnFc^?F`h leowkyftGg˂a,8b1;MHD: )&# T=h0>Th]]9 Q BUF\.?FW?Fb_-2;w?P Bt`  t0zեK~LQGVBu auo7%>J0U?R<AL@tt7P }b6*D&tD  tTd*Bı) ?\A>"b7)D&a4D  3 rD 8/td/ty. x1x1`?CopyrigTt _(c)02`W090M0c0os0f21rԡ01a0i0n}.0 Al0U 8s2e0e0v @d0"h!<M#l#/Ml> @?UhLAA] 1 1"71bAV>!J`Ƭ! Jdjbq:z׍i Q 6VMB@˿acP\`_m;E,Ui5U 5l?FQ[dg[VU'EU˖7s?F'YE]fdg[pdѣSYUfe3_GN]݅om{ZcXUFBGP\g[)J`UAp3C#5 IXAYT ?F_jy}tg[3$sXApsf ElX1Yfy?FPP\pg[!XAYw 䘷?F~_uO]{DŽ~g[&SAY-]?Fr]0P\g[ip~ X1#"5j-? XAY ' ?F@G_|P\̔g[?P=RwX'RX__/?Fv㗂P\#g[?pډlX7UB7Ժ ?vQ[Ezg[wU|QY1GN~V7;P\4Ѥl"MX U29_KU#rA0$@CHDJ  # =h4>T#]A B#BUFF?F|ل?F?F_U[?PBt`  t} :?tӕ##L xZZBu eu!s7[&>V Jߵ?0 ?Ab "z@A $)55 l H#b"#]! #BtΜz(tψ*Bh<M#h B`"ݵ0qql?E LUL1;?k(by$<$@7F/X(a4j$"'6k/5;w+ tE͝.%p! A A`?CopyrigTt (c])C@20O@9C@uM;@c9@os3@IfAB2Ar5@nAaA@i3@n.C@ WAl@ 9HsBUea@e9@v@d@b$JM@?0>Uh#5= ! 5*A3QA]!J!FEÍ hng[GʑB  6SVMB@j]9_^fU3QY>h_"[} [U%7nPobogU 52j_|Uq"ErA Z3s#HDJ # =h4>T ZA B|qAUFi$z?Ff,?F.@?FCCZYݥ?PBt`  zԜ?tƿSᆟ J kBu5 eu!sL'>D jJBU C"?0Z& ?Ab"z@A $ʎ)55 l #b "#! #BtΜ(t:Bh<M#h=# B`!2=#0qqlZ#Q LU1?@(!*7/(*"6/(E1K.+ t>Q5h1AA`?CopyrigTt (c)@20@9@M@c@oKs@fBAr@Aa@i@n.@ AlP HsRe@e@vRPd@v4&=#JMP?0>UhO3uE= !5AQ?Q!Jt1EÍT| hne887  6.fMB^;>?F>,Se?F1Ez ?P~-< kߎ:\zzl knJz۰fL:i 54a}:?  `? D"H$?n:a@Bowr @H'c(T@TFnXJ\kǓ1HeY5XevTݤ?Fc. ?Pfz`_vNST#]DA B#BUFik?F?Fa'D~?F?PBt`  ;#?t_Q$_[G ¾ Bu eu!s7(> Jߵa? ?Ab "z@A $)55 ml H#/b"#]! #Bt9z(tψ*Bh<M;#hu BI`"ݵ0qql? jLUL1w?k(by$<$7F/X(a4j$"'6k/5;w+ t͝.%! A A`?CopyrigTt (c)C@20O@9C@M;@c9@os3@fAB2Ar5@nAaA@i3@n.C@ Al@ 9HsBea@e9@v@dԁ@$&@JM@?0>Uh#5= !@*A3QA]!J!F? hngZ/S/E@M 6VMB@j]9_]gU3QY!w_"[87U%7n PobogU 52j_|Uq"rA Z3s#HD # =h#4>T ZA B|5AUF;|jd?FQn?F&TXdJ?F2gݸ?PBt`  ؽ?tѿ벏9   kWBu5 eu!s.)>D  JBU;"?& ?AbI"z@AU J$R)55J l #beX"X#!J :X#Bt('t*Bhb<M#h#. B`"酑#0qql?!QY LU1?(b$x$7/(4$"c6/5u;+ t.5,1HAHA`?CopyrigTt (c)@W20@9@Mw@]cu@oso@f}BRnArq@Aa}@io@n.@ AUl@ uHsBe@eu@v@d@:4&#YJM(@?0>Uh39E= !fAhoQQ!J81l?F9hnyye7@6SMB@TH0pp0@ Y9%[Zaz eoQioe[:4ևzZIa e5eF/14oTi&qQB8^FqcG?FBP?P :Y@ "rA :03fsgn^KDelr:i n0SpȨ? P( ? UVj?na@Bw-rx @SHD # =h4>TZDA B|qAUFG_?FMOff?Fl?F5Gú?PWBt`  #HEw?t[J |B gzRBuj eu!sL*> @JBU C"a?Z& ?Ab"z@A $)55 ml #/b "#! #Bt9(t:Bh<M;#hu=# BI`!2=#0qqlZ# LU1?(!*7/(D*"6/(E1K]+ t>Q5h1AA`?CopyrigTt (c)@2U0@9@M@c@os@fBArԭ@Aa@i@n}.@ AlPU HsRe@e@vPd@v4&=#JMP? 0>UhO3uE= !AQ?Q!Jt1| hne]Lg137 M 6.fMBFwݡ?F1?P1/`( KP\kEen8Kΰem:i 9`/]R? i4F? +?r?na@BoZwr @'c(T@T>.)qB?F48t\B"SOxlM_HeY5XeV`f΂7?Fwڽ胔?Pw>&T{¿ ?'srmooeN lnD\YgLE~]Z?)tTwd~&'q52_U"r"A v036w3HD # =h 4>TZ Ay IAUF3d?FM?FXxA?F4J^z?PQd93@>WBt`  M|Vt7?t# | .B9jHߜ? Vu*Z?3bLKj"k^Bue u!$+>   JBUB43f"<?2&P?Ab]$z@Ai b3bbff)55b ml #/b"l"l#! l#Bt9(t*񩧉#K B`"#0qq\2#m LU.m1?(&$H7/(*"H6Ի/5;+ t.yh<M#h %1\A\A`?CopyrigTt (c)@2U0@9@M@c@os@fBArԅ@Aa@i@n}.@ Al@U HsBe@e@v@d@4&#mJM@?UhMEI;nIzA#Q!J#6F>x@=&}?F&`?F5zT MST2N`R uܡgrf'QHDJ  # =h4>T#ZA B| AUFn?FZF?FXt?F5Gݮ?PBt`  g?t80ɹ gzkRBu5 eu!sn,>U !JBU;('? ?Ab!"z@A- " 0#e55" # Q#6!b>#0(<&Bst(tϑ*"Bh<vM#h B`"0qqEl1 LUU1?0/B'7O/a/s$"06t/`5;.+ tͦ.%!AA`?CopyrigTt (c)L@20X@9L@MD@cB@oKs<@fJB;Ar>@wAaJ@i<@n.L@ Al@ BHsBej@eB@vR@d@4&&JM@?!Uh!@!9 | 3AAc1J18$FF?F˨O hn؂-؂e/tӉ7R6MB@T21uG*\\VU5"QXޒI9YSD|a\Bg%UF?htR\gYl(Ah5UNl?F[ ݴ\*aUEU-?Fۻ\P-\Kp}AhU+;>?F! ɬ\q\g:,AhU>זtY?FUCZY\/\iCy 5AhTQY{'?FAuJ\l\jGוAdUX_SFКi?CF%ds 0c2rAb4:gn0 L;jHD # =h 8>T ZUy AUFEM&,?FX?FEtT?Fy_-{?PBt`  ڹ2Ԇd?t#P.Øz u_>$ |MBu liu%wM-> # ""%"%"%"$%"-JBBU(`Jyɹ#G 4?&6 ?ABbA@L2WbT459 .a0 ]a0UL1R5U8a6Bt 8t϶:#0qql&3V0L U#A?U?g77t??42Q6?.EK; t>h0 1<M#h^@%!QQ`?CopyrigTtk(c)k20UP9kMAPc?PoKs9PfGR8Qr;PtQaGPi9Pn.k AlP ?XsRegPe?PvRPdP$&$A/#ZMP?0>UhCaa9 #0Q#!L1J!9t?F9lrif7&6&MBCʯ?F{@a?F"[?PM Q ƲOH0i!lѹ3BDirT:i1%u51:m gOp? 0dq? ##Y?r4-ABhwr>#j0@cC(e#iJ"tS?FowO8?F*&خ?P ݿ Z _l!}keaɨ4i2{VtS7Sd|#- cq}tkwK>tɏw\#~eiF'2L?F靕I?FfʶݲDb tS!}gi(@Pzpzd|;٧VzwYiY"}a؏twz#~eAewnF][ߚ~`l<5C)` [-TH0L3rA0DģRaTvd|Hzwpg-JPU4 s!w#~'HD: ) # T=h4>+TZA B|AUFɡo?FD7%?F;+g3P?FPa=!u?PBt`  ~ۿ?tҽJI6 ~&8Bu eu!s.> ! ""!"!"!"P$!" -JBU "?& ?Ab"z@A 0T$955 l 83b 2L 3M1 3Btj8tDx:Bh<M#h#% B`2ݵ#0qNjql# 0jLU51AA`?CopyrigTt (c)3P2U0?P93PM+Pc)Pos#Pf1R"Qr%P^Qa1Pi#Pn}.3P AlyPU )Xs}ReQPe)PvPdqP4&# ZMyP? 0>Uh3E= 5QQM1J1?1!9hn}Ke71R"6MBaf$/ſ Dn/{?PT nN tom2qenלf_E.I:i FDOL?PWC  ?Q 038|!®Ú>O{b 0dw8pYDh[mÏsԟ@wv#~e5mF!u?F+#?Pҿ QC~ra2rbA 0JC:zLYON|n$dw0 kt?>|s w #~'UHPuD R # >hj 4JTb M#5MUFUk ?F[&?F")?F{(%˝ͭ?HNtQ`  y!?tA_?ѭ Σ(|rɛNu mu){.6>/J Q !JNU "?&& f?MbQ"z@QA] !R$Z)5=R t #b 2`"`#!R `#Nt(t* # N`" #0qql&#Qa Q Ua1?@(k!z*7/(*"<6/5;.+ t.pH%# p %1PAPA#`?Copyrig\t (c)@20@9@M@c}@osw@fBvAry@Aa@iw@n.@ Al@ }HsBe*@e}@v@d@45& #aJ(%@0JUp7C5I %nA9  Q!1AuJɤH pv1m˳=7 &6V"N@T3D?F'2L\5eMYSk\QeU$ndG?oQmjf E$eoxolb%2_U"rMen4Js38QQ@_R_d_v___VFBkN\wY{a^ l o}?>h 9rO#,hozf-b?F [4b\#aoܚ;yӏ aꖄ(~Fatk?F@]% a;G!Dx 0Ry@ov{ZmE_K:q ;w c? lZV? Qt:?v:i@B柴 r @S8QA ,sw %]o oofW h2A%mWvbP,?F˴mԠr\ߦ)k\{Xi(vCyRyF"HDJ  # =h 4>TZ y qAUF}!v~?F>!?F7}}?F3 _?u?PBt`  fno?t# W@O림 UBu eut!sL0># |HBU\`J=#G k$?& ?ABbA@"Wb$55 l #!%(&Bt8tI:y=#0qql# LU1?/'7//$ 2QZ6/5;; t'>h0h!<M#h0,%C!nAnA`?CopyrigTt (c)@20@9@M@c.@os@fBAr@Aa@i@n.@ Al@ HsBe@eJ@vPd@Q$ &=#JM@?8>Uhs0E= # Ah#)Q!JO!FU'vC hngQX\A7@6SMB@Trt3ϯ?V[GzaiWR}nwݷ?F6/?FgȝG?F*> ߂?Pqe> d.\SQxlV_gD|enX}el`:i :`Kts` L&d2? )jO?na@B>Pbwr @c(:eFif[θoo $::e4%JeǤ@_"k(\%JeVfY2DAoYnia<5^F}=4?Fm?P 63 J; #rA4 ze<120"yZL8t+T Z >|AUFN~?F8?FOa=!Pt`  Ie%8?t#ŠA |&8/$HMu liu%w1&>   P""%"%"@%"$%"-Jh<M#Nh#u`%Ĺ$?%> ?AbA@S2b[409 h0 ! }3 h0\8h6st 8tϸ:"%!11`?CopyrigTtk(c)k204@9kM @c.@os@f&BAr@SAa&@i@n.k Aln@ HsrBeF@eJ@v@df@$B#0UB-3]0 M2t =tS0=tD7=F?_5;sth0= t> \#-?_MVD?lF_LB#__Bl>x0@?UhL*a*a9 Az1 1!S17!A$!a7J!\;>1?O0lrvoieq7a 6&vMD@dd.H?Fdz3l\xEn;|7xO;R(PtvN?F^Mm?F3?Pfw ? ON1iM|BBy/MirFiiB:~m tu]{qnY? /b.? N&d2?r4^1BЃDVhr>#5^1 rC(@u5Pui?T!k? ph yH5w5u{jN?F_u=p@_?FdAT?PT '&Y}N\J}q y߅Q<ϵhsq(=Sg$>c(ôewϟ៣\#@uEPuM[T?F7glοuҰ|13@uvUPuPt?F߹Zj#mIhq@uPuKĥE2YǾluƔݨPu%bb?Fi$ l޿\+|?p= ףب1ewFB} EzG4uyF-{(%˝?Fr?Fߞ a;}{(\U販%զ;ѼIzϣz#೎@uaLyrt3ϯ?F;lB8|Ԧè1Ly7}}?FqXJlM|szĔx!y߶6u?*BQ?FZ[θ?Ppϐ Bеlj=*he~~|k%zµ;N7#*?6ԉܲy#'DqS1Sp>hlDr}ʨ7+U[CU @u!Lyf ??@VŲoK Ѩe2oeS3rYa0a4QR#iDYaVbT!P5Qih "8XW.'DŗV %!H4q1;  !j^du<"81hT_r!3! Re[>c&kbd1<"8vQU#`a51 HD # =h4>TZDA B|IAUFA>?F+u-?Fe烇?FL"4?PWBt`  wcZw?t4!A׳Yۮ 讚Buj eu!s82>I (@JBU"?2& f?Ab]"z@QAi ^$f)55^ l #b2l"l#!^ l#Bt(t*Bh<M#hS# B`"#0q/ql2#m LU1?(w!*H7/(*"w6Ի/E K+ tE.)5p@1\A\A`?CopyrigTt (c])@20@9@uM@c@os@IfBAr@Aa@i@n.@ WAl@ HsBUe@e@v@d@jN4&#mJM@?0>Uh'3ME= !zAQQ!JL1n@ez?F)hn Q*e7i@ 6f MB]@gS sS _]RfnfYl [aT@~TНJ9 9oi@?qQoa` e150efUFSo!fo^iMeon]nY5_,T "rA N03.O3HD # =h4>TZDA B|qAUFA>?F+u-?FAuJ?F\@̣?PWBt`  wcZw?t4!A׳%f. 5àBuj eu!sL3> @JBU;C"AxQ5h1AA`?CopyrigTt (c)@20@9@M@c.@os@fBAr@Aa@i@n.@ AlP HsRe@eJ@vPd@v4 &=#JMP?0>UhO3uE= !A4Q?Q!Jt1M$;4?F[hnRe7i  6.f MBVhgZK]2 @v&_mfnfh1:i PʬaBv$ /˸? `0?na@aowr" @'c(Ta02"Pggk| ǃodHeY5XeҔu4 /u?Zb&s 3mIܳqfoedm\f9r C:$yTwd~&'q52_U"rA v036w3_HH3s ".6HUK;#4FxMT.# VYB մ NX@ekPo+c Ro(BG(] zo] #f(] ;k] noX Fr u zz( ~H |Gh 6 x  `8 l  Ϳ q *x  D]  7B yE( ٺϰ'q ]s &u h)v #'x y q{Ͽ ~ q s Hu Pr8w Kx 5'zп ~| X~ n5'` aWxc \Hfѿ h j n !p? F%;1UFD  h>$T 6D UuI@@?k??)3P  B B*J*AȅHy\?br  0E`Bainstom,leg nd ic n LH(i^( K%X_'0U"-!0cBeO/a/ AG M  ڭUO)UU)UʪUUW}w | _x ?1?󅈂 ??8??Xb?8?=?LDrag thuesapWonodwipe.bu*B?^+?4l)!y]贁Nk??l_uzkUGD" # h8^T (YY#UPU@?@@u*B?@^+?4l?P} ] Y X   u`h?UVY g# $V. _ _u#`bA@$Ct?.n.tY$.?U"`lgnd` _/cm@ =H$M1y#i%~R#!$"+W!`Vis_SM D2 cPm!#50\06`?Copyr gPtg(H )g2 09gM c:0o of2!r0;1a0i0n2 gAlV0 8sZ2e e0vl0d2" "-X)|# '!  3Bd!%$} i$=r$&# D66 $Z##0U_B3)7gdaOC ]KTD"Di",D3112(jCh?!KrAh? 8/Ubo #1/U!-i"Qi%9_&PtSAftQ@tRT "Q3eQ^"Q,5[,@WnsFOz)IC "(C%!h h%-06`!&> f2uj2 Ll0gl0?#.Q9/K)2X*iXQa5 =|'Lw'2rq6J!a LvZ%RbY "vseaa7m5C #HR%^ii%^i3^.i5^$iE^YiHDB # 3hj8>T! ]]9 JAU@@\+?4d?@u*B?@^P6 $JA u`bCAJ "u#`b5(.tA` t^ft/]7uL0..7>U2N?贁Nk?<.A3T7 "+&<oa){bA-3Q&!,5 JuJ\q +?'"'?\.?l8/: hP50@=Bd1d15 `?CopyrigTtk(c)k2009kM0c0os0f21r01a0i0n.k Al0 8s2e0e0v0d0-,/p3 p7> &2/4q6fDAFAF =BA/b$m# "!n"3=%l K!Z$b/ghe_y'Rɭ TA,RTCTl@ d1"0Ab&59 =9Q$W_'2r"AFX!=A0 V#LlJ aUh]E@C1#! ! T9!Jpb]e (bx(4do_nu3!~:iHqu&5!uosE2o;CrA D##8!eN0 0ymb0l2ex0sT21 0h0 0a0t[dspj0a0.`UHLD # J#h8/T >M U@@^+?4l?@u*B?@؟[?P. VJ# 0  A>uA`mbAjJ+x&x: N   ^u#`b k>te it<> 3.?"?AT@m>u`&d.W&2N贁GNk?ABa"im"+I&>#Dհg0# 9 ?^bbboz/3%"apoJT##J!#"2JN\$q0?727#?\.? pn)OBl_@%#B #AA; "`?CopyrigXto(c])o20@9ouM@c@os@IfBAr@Aa@i@n.o WAl P HsRUe@e@v!PdP#z"!-?C G6Qg@li_'>T,T"l("Tp@A"@?fQ gIXFWg/'0U^b6,1.10 f%"lJaUl~ A#1!(T#g1d2LuD 8jr"(xܯ)T?@ >20Aw »k F?rUs SSJ޾p8&t8B" ?@(mZ3X?@d*\5 +"?ywiմ|.\us8=us~Up ae i?=n.5tqQ:u=Pu{@_pPyvPEufvS.A @{3?@=m?@yj5#R>NtHOPgChNm{j{a{B4&t6P}u2&eS]ra #*z"aeSb@ PEoo t?ꟃz@Яx&3-?QɯQMLiL!Pg!Pn-P PHD: # T h8> T ]]9 # Bz1AU@@@?@u*B?@$nWs?#P6  >m u[`bKAaK    N Nu#`b+th% )'tr w]v-]-uL&$.->2N?贁Nk?<T)-J*"0+0&z#E;?#) ?A(Ӏ9,3a+lavvA.\$q"0?!7#227?\.?l.^?:WɄ!#5 Jh0@=T#115 `?CopyrigTtk(c)k20>@9kM*@c(@oKs"@f0B!Ar$@]Aa0@i"@n.k Alx@ (Hs|BeP@e(@vZ@dp@BY-?C G&$A2i b5(9 9XGW_'2r"2&X1!0 V'jO_{G/V!%3bjWkVDaWQ^>o9k__5%",@@heo]' TA,tl*"Tl@1rclkQUhm5KA#Z1*!T#X91$rqu   (8r\(4ts~ 34yB 5D M2;!srA 8#J8*bL@g@n@ SuiAtx@epHDB ##3hj8>T! ]]9 Js#U@@ ?@Uq?@$ns?#P6 mBJ >b]  k 3u`bCA$*J Fu3`bSJuthMQ5t] tU*uLNdp-U2L.W>7U5 2@ '\C#2q ?ʗ'"':#?\.?lV/:2J$N贏Nk?<h"QU-23;36<a)!b#rQt6.%)C#O(A439 ! T! ]]9 J0#U@Uq?@ ?@iFc?@$ns?@@#P6 a >]  u`mbCAJ <u3`bItC 4l5thPl]l \K<uLD#-MBI.M>7uU5 @J '重\#2ǭqU ?T'V"e'?\.W?lLP/: JN$N贁Nk?H<^GK"+&<ސa)bٖG16K#  (j4#~9 w!/lM3"!N235l2l:4B?&1Bhg1@@=/T#MAMA5 `?CopyrigTtk(c)k20@9kM|@cz@oKst@fBsArv@Aa@it@n.k Al@ zHsBe@ez@vZ@d@X-YC YG6:&Fi3b[5(9 &IgWSW_'2rU"6Z!40 SV<WKhe oKT,@dMdE"43Tl@MA @ ZdE%ikSlJQUhm>ECkAi!!4S9QBPgEqB(u/iHZt3i~yqYu[5~A{E{#TvX8esAu@t `HDB ##3hj8>T! ]]9 J"#U@UQ?@Ŀ ?7?@$ns?@@#P6 $J > mu`bC[AJ (u3`b*5t/ hi J75tTX]X 7(uL0*#-9..9>7U5 v.@J \2[qG ?F'H"W'?\.?l8/:vJ@$N贁Nk?<JP37"+&<au)b-3#6\4#p9 i!/X?3"!@235l X,44?1B@hY1@@=/?A?A5 `?Copy_rigTtk(c)k2U0@9kMn@cl@osf@ftBeArh@Aat@if@n}.k Al@U lHsBe@el@v@d@KC KG$s6Fi bM5(9 IgGEW_'2rG"s6Z!40 EVa,ִ o@+k oGa(sћ oPu 28 6: ;| ?©z xCxx? GUFDfP h>$KT 6D UA@ ?-I?3MP?% ȅH?BT ?2~t  03]`)disk,torageSLIT,flwcPat,(e^ 3%B ;o(7/I/f2u` F. `" ?&&b TJ /?|wxpf6lbx{s'pwwpl } wwLDrag thuesapWonodwipe.UH PD  (H# Uh -MPA&A AnQrQ  sQM B>B}diiMJN:!@XH`#pr~" %Nrdb#$u=P`N#"WL>$#3184+1N`Vis_S`0DL.c\m!#50346"`?Copy ig\t (j0)02v0090MZ0c: o\0of21r01a0i0nh0 0Al0 8s2e\0e v"0dh00-7 R30ER-)#?3 M?7?&/ & !ԩ=#@13 $BkFkFS)$##2N贁Nk?QIJ&QGlJ0AUppES19 !JB (w*- :"P!$bS",'Ai hiM  "ԟ (W]Z]a_*t@cP cn"!8*\e/S&@Ysg$" f$  )%c}}Uv U?a`3m_|"c2aU_s ?ovbFs}}2,ucrxsHQtXTE9 $5I _C_Spjc +gMEa%{}B\cxv (w%t%<g*hd>M!Pm`wYM#XJ&[f$@[dEfH'S#},b"41B(gǖhUw bf Д_DUUXj|J3P QX% f"%m  `b/"x,ȶ=q#mEPew_fm8J&J&@2MbS-f#%AOrlt%V/{܁/%TR$5 qmPpm+N%TA""11$2 (X;135Ѭ  J B`1s00(B`/R2%kA.Q7*QCDu:\$5sb8S"W` R2oc2DQw %AQAA" (k7?0ASW` %`&2p21vbb 5 !:#DCNg6d=O EAEA$2!8,@B"iNXG'2qkFu!Ŀ0AB57Omb?ؿ贁N8i6??54 _(H_Nf;s s)EFM߮KB#7 LB V ML?w|w{vwpwOwp ߃w pwwwww~wppwp|wp %,:}vLDrag thuesapWonodwipe.b~߿?)j?xk:3?@ ?DUGDF P# h @T(PYY*# UF~K? P} t. ! :ATAhu` ?j"6@@TThh|u# ^",':U? ?4b {[`:O!#"&#'"hQHS)# h!/L!$@" "#' @>>ÿ@qZl0a5?k4a6p Tr&232u0`-!|2u@ "23|12" 9uv `u`"[ۢ b!]u`JS$A"J%)S#Am!m'1`Vis_PRXYcPm!#5nP08B2`?CopWyr@gPt (@) 2 P0U9 M@c%Po@'of-RQr!PZQUa-PiPn WAluP %XsyRUe@e%PvPdBm!J# dV$J%T!B=S(n! J#bx&x& t"3#S#0UWbx#]:W,A^a`N0STgdaoC _c }a}e"!"+@t3hhB )ZtB*gtA"aa G(3T Q J"q%X!`aSl"!6u\%7Ř!O!%["0@Bq35c_J$s&F3s͵NSYFuE{|E{|E{.|U1w;,@A SUro%}h `J"G(paefefs_<%||-p 1CUG(Arb6AKR8A2;6>]q`RP^Qs@fU TPx-PP2"! 0<X@5b ??"5"?br# BmߟE}Cq`#PuJ"]u"Tju3G(fcAuK ]00` SPa*!PeWPlbsQOc+` QnkPe@fQv̢yU%q P]]A6 :T#P@P2` Yc.ĢtucPlp3Zϗ,Ob` MSbPC#DcRqBi!a]X\S''Vdx&!pE0*o سcTD m HQJ%] h%]Th3]hhUHLuD" # ;3h , T  JEUF~?FfQuܽ?P NA  #. A  FV= *oBoVm>uA` /?y $8P`fxu#>b<"W!F&Sྻupt bF{#t=!&>U2zGz?@9 #>&?A@}" (b);,6" !$i>#[2#"r6p 92"b);'"5<"V5?N#AA#`?CopyrigXt (c])=@20I@9=@uM5@c3@os-@If;B,Ar/@hAa;@i-@n.=@ WAl@ 3HsBUe[@e3@v@d{@+"BM#C Gr6"L!3'L"tu"Ei fE %T1XG,W/'0UuRr650 ,V@Zl >(fUlL!@,Y %#A!(! Pprǹ\0Q# ?aGZa# QI8p;94?V?F?_YC!X?P*G0i jOpDl~Yma:Ze~MzYf<#(Wu: wd d 2v<"#41BeB7" t2Dwr$5@5wa3eL 9aImAaFNaaGNbZXoHh{VXn&[|mciynoRZbz8mG)cuTfw8xQ#8W@_C _o#n~smSɿ>F |r}W'`TEkpf>[ktT I% s"MqP SLxNrFH$DҔ0L)_\j(\ҞE\8bF3Ɍ|6ՕEkDZ8TWoiH&7toQcuǿٿw`Ǭޥ:ҡX:jw_o,,o>oPoEЕHD: # h4>T]]9 M !AUFnzjp?FU8<\?F?FoowǙD?]P6 $]A  mJuM` ?l? $u.Jt+  E:n]qte\gIqzq-0m7>JU2zGz?@MJA@b1#z' %#b?(bM)RZ+Z&J!!5 `?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al0 (s2e e v+0d 0!E$[;?6L ?AE$\/}%-# '6? FiiePd59 FX#G'0UBŊ640 UFiJl&>Uh3 GM!Z1E!FϗjN>F-nTdܬV)iJZQVc qQHD: # h4>T]]9 M kAUF~?F˿r\?P6 mL>" ($JuM` ?AggL2DuVJ1tS tQ_uJb%_>-JU=!=!5 `?CopyrigTt(wc)20 9Ml cj o%sd fr"c!rf !uar id n._ Al j(Us"e ej v d %"6#T:$.#B[7#J! w2?/6 ?Ab A;@U2b]4-7#I# eI'/6.%7#2zG_z?=@ M-#J6^3Lj0 Cz`0^8 ^8j6dUh$ ]7T ]([!1 +(aJRj0ER"J:]SnQ7Ir5o5Q5U`oUzo;iU_S<U Pb#iaGc=cUeJ>H:a'Tt?PXX~|k/?lej> yrL&s ; _1t8~^~FutFXqxHD: # h4>T]]9 M kAUF~?F[8?F?K?P6 L6>M (m$JuM{` ?Agg2DuVJtS tH_Jb5_>JU=!=!5 `?CopyrigTt(c)20 9Ml cj osd fr"c!rf !ar id n. Al j(s"e ej v d %"6#:$.#B[7#J!7?/6 ?A A@U2b$]4-7#I# I'/6.%it7#2U2?2@MB-#J6^8Z<j6d<Bj::6iie{59 6jXSG2^'03/6Z!J40 FJlJ8>UhW Q Q [!A+(1.#ptn\Q0LR_7 W_L)E#$J kp>F|QFg[h'`T?PXX*G0i jOp\^">[O13SLR/Ɯ ""a A8l &Ra@lb<oor5o5B:TFH$DQ0mbSj0[K0HRX{5U\QuFə96oXDZ8TZ^DwWi^mi4q}doonFdal5 uueJuqrSWWqU PjrᇰYaG,H?_s  @FrշFȨM4Uc# ߗVB HX WaGU7 o-PH *^ 8/c*< )fLh >j]UFD  h(^TYYB UFjZ?F~??x<F BPG(?P } X ]B66]  TTUTTT)9T9ȅHBU??:& ?B@L&d2?J-[(\.Ym(K.sU!&/")!>%:  0 %wB`6conte 2,ma 0ag$0m$6s$0rvD2,1mpsu"2M1diB0]tF0ibX4d*0Un$0t0oF0k!e^| D(SG& iz ?!3E?? ? DDD wpGGDDtD pqwtDD@pqwqwqqqqpppw%wwwqq`Zwqpwww{w;\Drag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aabjZֿ~??cN׿ mF1?? V↑T*J??@ ?UG DF P# h @T(PYY# [U@jZ?@~??F?Pn} u{` ?Su#>>HX HlHYHH E.iOOQ؍>DDUXXllU*u'T9- &",'tU2J&5q/4 Q?"'4b0{[`:#26Q_9$"3&9"OL1" ^!'t>_@ÿ@qh@?@`B?gDP]F0#Bu)@K`-1Bu@rCC'5GAB2C9u`u `"[ bz!uK`2/3AQy1y7B`?CopyrigP}t0(c)0W20P90MP]cPosPfRRQrPQaPiPun 0Al`U XsbePePv&`d/`VPs_SBNcPm!#5P8#6P7`y1&3dpb4&5=Bh8=/3z6&3d66 2&4#/30U!r3]%ge<^1E  U#"em HqV5tw3t{FEt{t{y {et{k5t !{|tYwmAdaу*IOBT.1:a$:a&20#V2103dadaFB3J1125db6q 7~C|hhE)*^Q_`BCQCQA11=B;8ARrSqea !> b`1AE4FAނ.1+#8dT7`8XQ`]r` MPnuJPaPt%ar6aYQ` E]0u*PpU`e`tee^V5Qn]1PRd M`uU`b¯Ԧ30说! PPr#5GCHhz]3D&bQ e^\޿𿢏AP)aB#`Ҩ75^gyZ% S*biP aϷZeTZLPcX@&ϫk5N`rBDl2`i`g̨)@ߑ !RPoʂѩ|(Z\@ p(KD`ĖSPaPePlP6?ЪX.9` TP7`?>` /aZgSb4I`.3`QΡ@̮ʒ=N•wRka<`q ҨגcM_I` ad2`%c& d nĝs Nx);鑙mDatV/a I rNf󨑙 R `Qa// %;/IM`C~/⯸/+QmU`utP I`/ %N4"?4?q 2t? 2Nv??;EHd2QC]3` W@xڙ%?NV#O05OCr a}OO#ޅO/`M&`mRyOOӧYNp_/_C;!OUc1yQQH[_m_Mqt!Tw foSU@jZ?F~?/v/vUpSp2u8p` s?bup`TaM,{t!Wp5%m-ׁ< 3ofm!Qb8q׏ݥBT!.at!2hAXf@>pý$ bUdq ҹvU֒QrrrvvvrsW"`Ro(l]10 e)Zbb UUbr}@":btbUuP`hoeo1o"4zI}_obI1I2\!b^¸aaaaFѴ_AaYY6P`u$K`bq`ݡ%q`an䑷xh^rݥ5_bv&bЂF3s͵NSYDq\rV!@&!e68E^6*E6ǐGFխZ,@rb40PT}sasavs@YVynv` % P&S.1sa`NEWORKb2H PӰq!RTٰRIӰSIQƑDži|o$ohXAE'0U?!c0 oHD # =hj0>T h]]9  5AU@jZ?F͂T??Fx?SF?P6 jt`  o?tk[>(A Vu aSuo.]&A]  *ԮJU2zGzt?@L#&A@bA#z7 5#1bO(b])j+$j&[ "*(w "?& ?AU$l/%B115 `?CopyrigTt (cu)Q02`09Q0uMI0cG0osA0IfO2@1rC0|1aO0iA0n.Q0 WAl0 G8s2Ueo0eG0v0d0"1E]4MŤ-&3 &7&l>]Uhz811U!J!u6?F+\.>djIIa? >"(EǑ I%K9E 5EU . K ;;5QIWEEEF _KnSA?8@@Bu?FDR> ?Nk"\6`bmMM\j=am {:e P> #? D"? 5-g?j4B7!B{oogr57!ibDAbE9 MuX7_'0U~rN!$a)5 5vIzHD # =hj0>T h]]9  qAU@;?FI5K?@xEL?6ѿP6 t`  bm&Qo?t@@L]WI,#u aiuoL> JU2zGzt;?@L?&A@b}#zs q#1b(b)+$&[9#H",ɺ (wH"?& ?A$ /%9#BV1V15 `?CopyrigTt (cu)02`090uM0c0os}0If2|1r01a0i}0n.0 WAl0 8s2Ue0e0v0d0"O1E]S4MŤ-9#b3 b7&l>]Uhzt1.A!JN!m.%-+0djV1ax߃S(FJ-&?F mO"> ?Nk"L[Majnha_:e P> #? BK=o? n-?j4Bs!B{__Wr5s!D8E6V 6?wj_|_ ^XE.U@z T6?F @' d_mOoT \VyWxRkrVo_bVh*g:n"'UaEjz36>CN>?Bn}]zGvN7V iDAbE9 MX+G'0UJPN!4ae5 MaHD # =hj0>T h]]9  U@jpiH?F^?@$?F]F?P6 t`  !a&ao?t,F=۳=u;u auo>J2zGzwt?@ʐLAw@b#z1b](b!).+I.&[-m(?0& ?A$I0/Q%!!5 `?CopyrigTt (c)02`090M 0c 0os0f21r0@1a0i0n.0 Al[0 8s_2e30e 0vq0dS0T"!E]$M-# %'&l>]Uhz!1!JF% djc~YZ(_N9zOMGE%_EH$SwO"K ңHE ^&_8_WE_OqOHOOi&DAbPE9 MX7'0UUfb>!$a % f1jHD # Uh4>T#]]9 M5AU@jZ?FL|+?@?F({~?P6 JuM` ?u JYt )t7zEA2&L_D?. > >tJU2q K?=@MJ&A@-b9(+bG)T+T&J[#"#a?& ?AH?/`)#115 {`?CopyrigTt (c);020G09;0M30c10os+0f92*1r-0f1ai+0n.;0 Al0 18s2eY0e10v0dy0z"!4B#e-?3 7)& b 0K8>U# ]A]A "1!ъ!PzQ <%OYAJEU . K;;\%W%EF($L[.FX5Eai%?F 6?wL;] W-\TB⤲8?F@&SA?F @ ?Nk"L'`bmMW_Ye[ٯ7 VK=F: [jr ? D"? XZvD?ta@Boogr5;!QEx]SiLO MLGXa~WOTZiAle59 XG"'0Uc&N!$05 .HD # =hj0>T h]]9  IAU@K?FOgVb?FY%?Fwᳬ?PJW?>t`  ^Z?t#ə.E @x?r?/{4܂ G _Z+u u$ >  J JpU?43f<!.&P?b3bbfz@1bAe&bq$d 2zGzt.#@LT"&r(~&i$q)(+}'i"~*#81815 `?Co yrigTt (c)o02`09o0Mg0ce0os_0fm2^1r 1am0i_0n.o0 Al0 e8s2e0ee0v0d0"11E]54M-#D3 %D7.&lUh#7 V1#Ai!J# F/?B1B  VRiAAbE9 MX G{W'0U*R2N!I$a {VZUHPD  # #>h0JTpERI MU@u6?Fjc{g&?@%r`5B?Fm_F:Is?HNtQ`  II?t#]  _ii$!`kNu  iu%wj>M JQ T       "@&&JNU2"?H@Qs#N&A@b(bU)++&RNp}#>H1#19 ?#bbbz| R&/5R}#11`?Co0yrig\t (c)02h090M0c0os0f21r0Aa0i0n.0 Al!@ 8s%Be0e0v7@d@21a4t#-}#3 %746lJ#$JUp5 3 M19 1!q(!FnElrkRt# 8$kcD?@숒@)?FP?P"EkU |1\iOT/irvs}i>`_,of :m ,M ?? S&d2? *b?r4B!B oo1gr #5!>%(EQOOOO__FAc1_C_ D4ևS]_o_yRX+{_,__ #R__ (YQoSo+o=osd {oEeooooooFyUy{* hDVW(I X"c7I!pg bf'iMjSE t%XyG|'0UŢŞN!O4i |UGD # hz0TdYYBU@(%)?Fxg^?@0߯H?Fs7Uݹ?P} t` 87?t#_)TeΦu ]ukv  ̝L&UUU&I&3 U!!`?CopyrigPt _(c) 2\W09 M c os f"!r 1a i n}. Al00U (s42e0e uvF0d(0'HS$#-## 'I?k=#ǒ 2j$B##0U'BM3@&@F0Yk} #HA%DKb5DK3DK5DKED$!GiAZG5(|IDFX7yW'&Dŭ6!4YA yVZHD  # =hj4>T!]]>#AU@0߯H?Fz)e??F˞9q?P6 t`z  ?5t# rXѮu)Nu;):O]ע0 &> # " "+"+"+"+" $+"T-J[U7 ??& bA@ 2b4-#2zGzt#+@ Li68!6 ?}; 72U!:B#AA5 5`?CopyrigTt(c)20F@9M2@c.0@os*@f8B)Ar,@eAa8@i*@n. Al@ 0HsBeX@ej0@v@dx@)21"DM-,;?C G& l>]UhzAE!A#!ְ1J`#@{&pz?FUy{?NT,dKj&b&R&M/8T9K-q?F@F?FdG0 >Nk"?YE*]\LThKjfGD&Qhj ?iU3UGe&Y`?@/Jb)h5oWKoWo;èKod}l$ro`nE2K?Fˌ%4G{?F -q? eZR^{|\?6?vodmP}l>MBe 9 N 1iS? 1?grl#51:PO"4ga@Sq(UE^@O|ǐ[`ߡa v2rbA @3ijD&}laqOz o?#WHZ'Qu=*[^N?F]%P?@O&@ c?FаM<n ?` eb0)\(Pfodm}nv}l?V5(?q$Ix[cN#W{ #iA@&QeE9 MX''0UjdN!0 /HD  # =hj0T h]]9 #]AU@}%?FR$,?@6#V?Fc_3֡w?P6 u` ?u#t  3zM%t3ws%.<%H._'B> #PJU2N贁Nw[?@ʐL+&A@wbu](i+bk)%+&p%#4">9"<5!?& ?M#bbb͓z$ p&"/%T%#L1L15 w`?Co yrigTt (c)02`090M{0cy0oKss0f2r1r 1a0is0n.0 Al0 y8s2e0ey0v0d0"E1E(]I4M-%#X3 X7&l*>(UhE j1#$Ac!J`%#@5e$_F??!foA3nBM( V?FJ-R?@HQ??FS!R?P| llHL6VLD5E+v;*AůʙH: 8snP%$? k?Q? \?4_!__WrA5_! R,U3OC@IL?F4~Kz?P)Oy޾ T!]]>#IAU@܋?F2Oa>?@#r`5B?F*ݷ?P6 t`  >B?\oEt# ŖoZu 0Nu;Y:|8>$# JpU>##<?2& ?5bbbz@b#ANi&bu$'h 2N贁N[2$@ LX"D&v(&m$ :;T'm"*B#d1d15 5`?Co yrigTt (c)020090M0c0os0f21r 1a0i0n.0 Al0 8s2e0e0v0d0"]1"a4M-/p3 p72&l>0>Uhh= 1#!eJ`#&FNTM\jh1B,RBM(!JoUy{O_ e@ So4(D@^Tw?F]֝ä ?Nk"?w_KT\T+\_(Kjӷjmplhj -`\TPQE\Uui,St_o u~!ՠXEO9= T?FL?;uQ_Pm"rA @3sjQ1lğ=GoYniAleE9 MX|'w'0Ur^N!M$|A vzHD  # =hj4>T!]]>#IAU@܋?Fj?@2r`5B?F^ݷ?P6 t`  >B?\oEt# 6ΠZu 0Nu;Y~:#&}>0m8>  PJU2N贁Nwk?@ eL&A( 5bM(b[)h+h+$h&#[-M$#?& ?b$Z*'*B#O1O15 5`?CopyrigTt (c)02U0090M~0c|0osv0f2u1rx01a0iv0n}.0 Al0U |8s2e0e|05v0d0"H1P"L4M-/[3 [7&l>0>Uhh= m1#!S!J`#*&FPUy{_?NTMjC1gc RVMʣ(D#@ ![?F"$. ?Nk"W?IKTLTcKjRlhj p=' (*!)i,SO2Kes9T;QEGUFw6qX}__TM7fTZT\Dž}_P^52XOES"rA 0S#Es3iAleE9 MX|$Gxw'0UrIN!4gA xvzHD  # =hj4>T!]]>#!AU@܋?Fc_v?@#r`5B?F*ݷ?P6 t`  >B?\oEt# ap'EZu 0Nu;Y:|$># BJpU>#͙;? & ?5bbbz@}bAA& K&@ 2zGzt?"K@ L0"&N(bM)+TK/8Z*B<1<15 5`?CoyrigTt (c)s02009s0Mk0ci0osc0fq2b1r1aq0ic0n.s0 Al0 i8s2e0ei0v0d0b"5194M-t/H3 H7T &l>(>UhE=3Z1#E!J!FENTMjN@1h(NoUy{OO e@ o)4(D@^Tw?F]֝ä ?Nk"?'_KD3\T+\(Kj?ӷjmlhj P\ DiAlePsI=MXsG'0UzbZ6N!%$0 sFEjHD  # =hj8>T! ]]>#!AU@܋?F*?@#r`5BW?Fw?P6 t`  >B? \Et#տ|u l4RQu?]>I$>I# JpU>͙#<?& ?9bbbz@b#AE&bQ$$D 2zG[zt#@ L4"&R(^&I$Q)+]'I"^*Bh{.M#To1o15 9`?CoyrigTtk(c)k2009kM0c0os0f21r1a0i0n.k Al0 8s2e0e0v@d0f"h1l4M-:?{3 %{7&l>(>UhE= `51#I!J49fAn^ R)X f"B!Jui,SG?RSlOS u~!N]8-19= T?FL;uQ ?Nk"?YVTQRXQOnğ/=i n (\ wTiAaePE9 MXLg'0UbZiN!)$0 Lf`jUHLuD" # I>h(J TEI 3MU@jZ?F({~+?P >uA` ?u#jJ* )8* 9LGA )`G#dtG.$*G8BVj~>t  e t>"z "p{b+#7"J>U2zGwz?@9 S#>c&A@b(b)+,&" !$5N]#2T#k"6 "M"b)HF;'","/]#11[#`?CopyrigXt dc)020090M0c.0os0f21r0Aa0i0n.0 Al+@ 8s/Be@ej0vA@d#@K"lJ r!UleaAaAC 5LX%#!Q(r!Io?F8.<01# p炊 A# _W NEx]SiL5 [ML"X35^P?zQM___ %YA"XEEU . K ;; \W%U IF)$_ [.ǪF"XA6jai%?F ߭6?wL^ W- \_"T5Dꤲ8?F@@SA?F @ ?Nk"?I5?`bmModiy[7 K=F  %j1"XI1¦e?FrՓ`L dU TZ<٭hEeN@ (?FG+ MuPu;0&z_[Syкf|C`u|p?9L"TYAAekBp OOG}u?F9 mO"L9=T/hQeel.%-+?@mlփ?FU?> J4ɽ7yfXtOff|A=$ 䖏p$za3ex/@4S}a6N`Sy'e!a#q&ziMסiIT%!X '0UW65 0. "UGD # hz4TYYT#BqU@ t2?F`0 ?@jZֿƿP} mu` o?u#Ld28<LS9`(.88L``t, Stfm۶mەtUH~#9#[0Up"?@/& 9#!!G*"`?CopyrigPt (c) 20 9 M c oKs f"!r 1a i n. Al&0 (s*2e e v<0d0'"!P$0#B-9## '(w#^=9$&0#466 20$e$^ #E X5 9#HLA0%XD`cKX5XDdcGg&AcOT^'TcAcA0"-(Ca0%g20"ihaPX5 &X~7.GW'o$ţ6-!40 GV[ZHD: # =h4>T]]9 !AU@jZ?F`0 ?P6 mu` o?u t  M)t7@2(L$A F  EJU'N((? & ?AbA@ybbu?bz; 9#0"b(8$GbKn!M#X#n 9#2zGzt?088r@Lh"&9*?bRbPM/6&0"m!S('0"*TH1H15 {`?CopyrigTt (c)020090Mw0c.u0oso0f}2n1rq01a}0io0n.0 Al0 u8s2e0eju0v0d0"A1E4MO DQ-OT3 T7 &l\ Uh#7 f1 A0!J $FF, |B-&R6 HVWR( b w0AleP59 MXEG'0UbjN!%$0 W5 VZUHXD # U>h4JTmmMWQU@jZ?F`0 ?@P uQ` ?u4Ut9t-GQ"PB6\"mR"Q UA@"Q    #:"    Z]&& """",&*/5D,& I& & I&J&]U2zGzt?088r)@Qo36߀A@bbRbPz鄳03=b8b9;6xRn7Ry3SASA,K`?CopyrigdtJ(c)J20@9JM@c.@osz@fByAr|@Aa@iz@n.J Al@ HsBe@ej@v@d@ B@LAYPDZ- 'N((/`C?EVOea0RAq` A@c@n@yAlZB3z۳0ٳ0bbbzY3mqUZA<__bܠ_bNbbº_8(? EGO_C _GEV<$flmUxqAU1m81`п1?F?nWwgPt,r#51:*2~d|%X|RLr ?9@tIdE;.O ŏm87tZV?Fz?@. ?Fo6tpb&#?9?FnpH5#d|239}A$>k<^Ꟃsv+D?EYzi6ߛfk@bߊ௘,?@.ݮBk_RN|"N(קy9$T^8(8DY#0Y.qeq~ `0u?@e"&c?F+F?@CS ?FEJ N|{8] vtqSH sA$)k4y~ rU/ݡgaidaaTaep5FUhXlgdd'K0UV"őkh`!`T+0FUbE !*HD "#=h0>T@++]]9 !AU@jZ?F`0 ?ֿtP6 u` ?u#Ft %t3.$H$+A  R J}tU2q?=@LAw@)b!(Wb/)<+<&R[G z$?& ;AH'/H)!!5 w`?CopyrigTt6(c)62`096M0c0os0f!21r0N1ai0n.6 Ali0 8sm2eA0e0v0da0b"!E]$Mb-# '&lU+#7 1h#w!!JA tFkFֳ "x)B- FBiAbE9 MX7/W'0UxR>!8a /VCZ_H;s tY,-6nIgnFM&o#CB pFOB ] r~dִ uo@+ oVsG^ of؇ }ӿ b ^h <0 32O ^֛H6 T(8 6;? > "@ (C 7XE׿ Nh ,9G ;I ʹK i _UFD  h(^TYYBBUFjZ?F~??x<F BP(?P } kXj BW66 W TTTTTTȮH?Q?G ?B@L&ɯd2?-)(?\.;(. sUa!_&/J ( G 0qB`3streaming, ed a s rv 2,co pu 31#Wib 4d n wtw0rk!e^| D(SG& m?!3E?? ?   wp x  p  ʵqwp qwqwqpqq/qpppw.wwwqqiwqpwwwweDrag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aabjZֿ~??cN׿ mF1? ؠ?VT*J?@ ?UG DF P# h @T(PYY# QU@jZ?@~??F?Pn} u{` ?Su#؍>>HX HlHYHH EO.DR4:UDDXXUllk'"&R",I'U25ĉ%4 ?"u'4b0{N[`:Q1#2T6"^U9$"3&9"/L6 2&!'ݯ>e@ÿ@qn@?@-fB?mDcFԸ0)Bu/@`҈-1Bu@rCC 5GAB"2Cm9u`u `"[ b!u`%3Qo1o7B`?CopyrigPt (c) 20P9 MPc.PosPfRQrPQaPiPn  Al` XsbePePv,`d/`VPs_SBNcPm_!#5ab4P=`o13dX45CB^8=%3p63dz6z6 v24#%30U'rz3]ge<^AE@ U#5m Hq5twL5t{3t{LEt{t{y {et@{|tYwm@Ada׃IUBT$1@a@a2ja$jaL21632CLBA3P1125jb6w 7C |hhE)*dQ8ŔIQIQA11CB!;1XrYqea>ez1AXE:FG$1 8dT=`XQj2`]r` M`nuPaPt+arp` ?bup` ? B=ݝ`S,t']p5'mQ-݁<9ohm'Qh>qݏBT'.ct'xZf@>pÿ7Љob2Zfq [ܒrr$ avvvrsY"`Ron_16 eI`bb ccbr@uP`TaSq1u$_u'K1K2A#b[@aahaauhA+}pPk` u*`s`s`a|x)H5_dd&һbpSF3s͵N?SYJGbrV@ГD#eb 8d E LqW,5@rB: 2ˏV}uaua hYVȻOn `; %P&S41ua`NEWORKd2H Ps!RR*ISQio&oh^A'0Ueq?!0 oHD # =hj0>T h]]9  5AU@jZ?F͂T??Fx?SF?P6 jt`  o?tk[>(A Vu aSuo.]&A]  *ԮJU2zGzt?@L#&A@bA#z7 5#1bO(b])j+$j&[ "*(w "?& ?AU$l/%B115 `?CopyrigTt (cu)Q02`09Q0uMI0cG0osA0IfO2@1rC0|1aO0iA0n.Q0 WAl0 G8s2Ueo0eG0v0d0"1E]4MŤ-&3 &7&l>]Uhz811U!J!u6?F+\.>djIIa? >"(EǑ I%K9E 5EU . K ;;5QIWEEEF _KnSA?8@@Bu?FDR> ?Nk"\6`bmMM\j=am {:e P> #? D"? 5-g?j4B7!B{oogr57!ibDAbE9 MuX7_'0U~rN!$a)5 5vIzHD # =hj0>T h]]9  qAU@;?FI5K?@xEL?6ѿP6 t`  bm&Qo?t@@L]WI,#u aiuoL> JU2zGzt;?@L?&A@b}#zs q#1b(b)+$&[9#H",ɺ (wH"?& ?A$ /%9#BV1V15 `?CopyrigTt (cu)02`090uM0c0os}0If2|1r01a0i}0n.0 WAl0 8s2Ue0e0v0d0"O1E]S4MŤ-9#b3 b7&l>]Uhzt1.A!JN!m.%-+0djV1ax߃S(FJ-&?F mO"> ?Nk"L[Majnha_:e P> #? BK=o? n-?j4Bs!B{__Wr5s!D8E6V 6?wj_|_ ^XE.U@z T6?F @' d_mOoT \VyWxRkrVo_bVh*g:n"'UaEjz36>CN>?Bn}]zGvN7V iDAbE9 MX+G'0UJPN!4ae5 MaHD # =hj0>T h]]9  U@jpiH?F^?@$?F]F?P6 t`  !a&ao?t,F=۳=u;u auo>J2zGzwt?@ʐLAw@b#z1b](b!).+I.&[-m(?0& ?A$I0/Q%!!5 `?CopyrigTt (c)02`090M 0c 0os0f21r0@1a0i0n.0 Al[0 8s_2e30e 0vq0dS0T"!E]$M-# %'&l>]Uhz!1!JF% djc~YZ(_N9zOMGE%_EH$SwO"K ңHE ^&_8_WE_OqOHOOi&DAbPE9 MX7'0UUfb>!$a % f1jHD # Uh4>T#]]9 M5AU@jZ?FL|+?@?F({~?P6 JuM` ?u JYt )t7zEA2&L_D?. > >tJU2q K?=@MJ&A@-b9(+bG)T+T&J[#"#a?& ?AH?/`)#115 {`?CopyrigTt (c);020G09;0M30c10os+0f92*1r-0f1ai+0n.;0 Al0 18s2eY0e10v0dy0z"!4B#e-?3 7)& b 0K8>U# ]A]A "1!ъ!PzQ <%OYAJEU . K;;\%W%EF($L[.FX5Eai%?F 6?wL;] W-\TB⤲8?F@&SA?F @ ?Nk"L'`bmMW_Ye[ٯ7 VK=F: [jr ? D"? XZvD?ta@Boogr5;!QEx]SiLO MLGXa~WOTZiAle59 XG"'0Uc&N!$05 .HD # =hj0>T h]]9  IAU@K?FOgVb?FY%?Fwᳬ?PJW?>t`  ^Z?t#ə.E @x?r?/{4܂ G _Z+u u$ >  J JpU?43f<!.&P?b3bbfz@1bAe&bq$d 2zGzt.#@LT"&r(~&i$q)(+}'i"~*#81815 `?Co yrigTt (c)o02`09o0Mg0ce0os_0fm2^1r 1am0i_0n.o0 Al0 e8s2e0ee0v0d0"11E]54M-#D3 %D7.&lUh#7 V1#Ai!J# F/?B1B  VRiAAbE9 MX G{W'0U*R2N!I$a {VZUHPD  # #>h0JTpERI MU@u6?Fjc{g&?@%r`5B?Fm_F:Is?HNtQ`  II?t#]  _ii$!`kNu  iu%wj>M JQ T       "@&&JNU2"?H@Qs#N&A@b(bU)++&RNp}#>H1#19 ?#bbbz| R&/5R}#11`?Co0yrig\t (c)02h090M0c0os0f21r0Aa0i0n.0 Al!@ 8s%Be0e0v7@d@21a4t#-}#3 %746lJ#$JUp5 3 M19 1!q(!FnElrkRt# 8$kcD?@숒@)?FP?P"EkU |1\iOT/irvs}i>`_,of :m ,M ?? S&d2? *b?r4B!B oo1gr #5!>%(EQOOOO__FAc1_C_ D4ևS]_o_yRX+{_,__ #R__ (YQoSo+o=osd {oEeooooooFyUy{* hDVW(I X"c7I!pg bf'iMjSE t%XyG|'0UŢŞN!O4i |UGD # hz0TdYYBU@(%)?Fxg^?@0߯H?Fs7Uݹ?P} t` 87?t#_)TeΦu ]ukv  ̝L&UUU&I&3 U!!`?CopyrigPt _(c) 2\W09 M c os f"!r 1a i n}. Al00U (s42e0e uvF0d(0'HS$#-## 'I?k=#ǒ 2j$B##0U'BM3@&@F0Yk} #HA%DKb5DK3DK5DKED$!GiAZG5(|IDFX7yW'&Dŭ6!4YA yVZHD  # =hj4>T!]]>#AU@0߯H?Fz)e??F˞9q?P6 t`z  ?5t# rXѮu)Nu;):O]ע0 &> # " "+"+"+"+" $+"T-J[U7 ??& bA@ 2b4-#2zGzt#+@ Li68!6 ?}; 72U!:B#AA5 5`?CopyrigTt(c)20F@9M2@c.0@os*@f8B)Ar,@eAa8@i*@n. Al@ 0HsBeX@ej0@v@dx@)21"DM-,;?C G& l>]UhzAE!A#!ְ1J`#@{&pz?FUy{?NT,dKj&b&R&M/8T9K-q?F@F?FdG0 >Nk"?YE*]\LThKjfGD&Qhj ?iU3UGe&Y`?@/Jb)h5oWKoWo;èKod}l$ro`nE2K?Fˌ%4G{?F -q? eZR^{|\?6?vodmP}l>MBe 9 N 1iS? 1?grl#51:PO"4ga@Sq(UE^@O|ǐ[`ߡa v2rbA @3ijD&}laqOz o?#WHZ'Qu=*[^N?F]%P?@O&@ c?FаM<n ?` eb0)\(Pfodm}nv}l?V5(?q$Ix[cN#W{ #iA@&QeE9 MX''0UjdN!0 /HD  # =hj0T h]]9 #]AU@}%?FR$,?@6#V?Fc_3֡w?P6 u` ?u#t  3zM%t3ws%.<%H._'B> #PJU2N贁Nw[?@ʐL+&A@wbu](i+bk)%+&p%#4">9"<5!?& ?M#bbb͓z$ p&"/%T%#L1L15 w`?Co yrigTt (c)02`090M{0cy0oKss0f2r1r 1a0is0n.0 Al0 y8s2e0ey0v0d0"E1E(]I4M-%#X3 X7&l*>(UhE j1#$Ac!J`%#@5e$_F??!foA3nBM( V?FJ-R?@HQ??FS!R?P| llHL6VLD5E+v;*AůʙH: 8snP%$? k?Q? \?4_!__WrA5_! R,U3OC@IL?F4~Kz?P)Oy޾ T!]]>#IAU@܋?F2Oa>?@#r`5B?F*ݷ?P6 t`  >B?\oEt# ŖoZu 0Nu;Y:|8>$# JpU>##<?2& ?5bbbz@b#ANi&bu$'h 2N贁N[2$@ LX"D&v(&m$ :;T'm"*B#d1d15 5`?Co yrigTt (c)020090M0c0os0f21r 1a0i0n.0 Al0 8s2e0e0v0d0"]1"a4M-/p3 p72&l>0>Uhh= 1#!eJ`#&FNTM\jh1B,RBM(!JoUy{O_ e@ So4(D@^Tw?F]֝ä ?Nk"?w_KT\T+\_(Kjӷjmplhj -`\TPQE\Uui,St_o u~!ՠXEO9= T?FL?;uQ_Pm"rA @3sjQ1lğ=GoYniAleE9 MX|'w'0Ur^N!M$|A vzHD  # =hj4>T!]]>#IAU@܋?Fj?@2r`5B?F^ݷ?P6 t`  >B?\oEt# 6ΠZu 0Nu;Y~:#&}>0m8>  PJU2N贁Nwk?@ eL&A( 5bM(b[)h+h+$h&#[-M$#?& ?b$Z*'*B#O1O15 5`?CopyrigTt (c)02U0090M~0c|0osv0f2u1rx01a0iv0n}.0 Al0U |8s2e0e|05v0d0"H1P"L4M-/[3 [7&l>0>Uhh= m1#!S!J`#*&FPUy{_?NTMjC1gc RVMʣ(D#@ ![?F"$. ?Nk"W?IKTLTcKjRlhj p=' (*!)i,SO2Kes9T;QEGUFw6qX}__TM7fTZT\Dž}_P^52XOES"rA 0S#Es3iAleE9 MX|$Gxw'0UrIN!4gA xvzHD  # =hj4>T!]]>#!AU@܋?Fc_v?@#r`5B?F*ݷ?P6 t`  >B?\oEt# ap'EZu 0Nu;Y:|$># BJpU>#͙;? & ?5bbbz@}bAA& K&@ 2zGzt?"K@ L0"&N(bM)+TK/8Z*B<1<15 5`?CoyrigTt (c)s02009s0Mk0ci0osc0fq2b1r1aq0ic0n.s0 Al0 i8s2e0ei0v0d0b"5194M-t/H3 H7T &l>(>UhE=3Z1#E!J!FENTMjN@1h(NoUy{OO e@ o)4(D@^Tw?F]֝ä ?Nk"?'_KD3\T+\(Kj?ӷjmlhj P\ DiAlePsI=MXsG'0UzbZ6N!%$0 sFEjHD  # =hj8>T! ]]>#!AU@܋?F*?@#r`5BW?Fw?P6 t`  >B? \Et#տ|u l4RQu?]>I$>I# JpU>͙#<?& ?9bbbz@b#AE&bQ$$D 2zG[zt#@ L4"&R(^&I$Q)+]'I"^*Bh{.M#To1o15 9`?CoyrigTtk(c)k2009kM0c0os0f21r1a0i0n.k Al0 8s2e0e0v@d0f"h1l4M-:?{3 %{7&l>(>UhE= `51#I!J49fAn^ R)X f"B!Jui,SG?RSlOS u~!N]8-19= T?FL;uQ ?Nk"?YVTQRXQOnğ/=i n (\ wTiAaePE9 MXLg'0UbZiN!)$0 Lf`jUGD # hz4TYYT#BqU@1XAɖ?F&fQԽ?@#[5?F/8tֺ?P} u` ?u#Lk/8CW(.J88L`6t stP_m13i-; NIU~񅴉#9#0Up"?@/&9#!!G*"`?CopyrigPt (c) 20 9 M c os f"!r 1a i n. Al&0 (s*2e e v<0d0'"!$0#%B-9## 'w#^=9$&0#466H 20$e#$^A #3  9#LFG0%XD`AHdJT%XD8Gg&daO^' TAA0"-(`@a0%g2!8TBT"i@haX5 &X~7WW'o$Ŵ6!40 WVkZHD: # =h4>TB#]]9 TuU@#[5?F3_(n?P6 ڍ` ?u Ft  )t7 \)2(jL>  ] " " "" >" R"g"g"g"g" $g",g"*/<$g"H,g"\#JtU2wqH0?=@L#G6A@-by8b9;6[A3P2;3?6@ ?A?9*A3DADA5 {`?CopyrigTt:(wc):20@9:Ms@cq@o%sk@fyBjArm@Aua?0ik@n.:_ Al@ qHUsBe@eq@v@ d@2=A(ADMBA3-_PC RPG6l> L>U#aQQ 9 ]R! ;$bA*A3; #p _{66J`A3@>?F(?mؙ @` lt V/&N&wbN&M8A%?@׬?Fk>P6%U ?)o.m  AKiMBaiVϥ]瓧sa5f*>B r7k, Pxz? S? \?r#5{1:PDVhwa@vcą(2HV1Qj\"ocHl\aiu].eEe*bGk?F}2?@6w#`ȸ)|?P ,m!^l_zP$vtR`&V~$}EP{sa>t}<~45 a#y{Ϗ@ᏫteE1oCc@OrbV?FZbyZ Pu @crAP~3zw h%|̏v saliv &Pxeen'n`ὓM?@3?`2UǎKiDc$vfeW^|Ywt$}k~G+BIW?FzUH(?@q||f?F%CRO .1^lztep{ha;y%|U4N*)qyr"[kSHle $rWȂe>!Q7?*GF?@D`uʄ3=CUFS>+悍Wzt0 ;ӝjLpTߙj[>`;]`?@?F?P` ֔zYmkai{﾿|{t(yc|[%tOH~ݽ*<4#>t,iw#ytuR!y7`߯ZiꠗKk~HlJa#(-)0"!8Qe s@AleE9 MXAWP2'0Uwf^!V<0SE .BUGD D# h0T@dYY]BIU@-H?Fc[B<(?@j>(?F/I6Ѹ?P} 8d Ut`  ?ht#rS8n'L֌rX_uo uU!!`?CopyrigPt (c)J 2\09J MB c.@ os: fH"9!r< u!aH i: n.J Al @(s"eh ej@ v d  #S$#-d ## '?= # &#24 6 6 2$B# #0U2 3@& a#3~ #dH@1%4Gi^#5 6rX'EG'4) 6!4] EFYJHD # =h4>TB]]9 \#!AU@#.?F/I6?@P t`  gjo?t#T U $YhAn m7 u)hnx Fu!)J hI 97eyh?#!?9& aAbA@_"bg)b$g)bIg$2zGz9#@L@&h*%}$f*+T'_"*BL1L1`?Co}p rigT}t((c)(W2009(M{0]cy0oss0f2Rr1ru01a0is0n.( AUl0 y8s2e0ey0v0d0E1I4Mb-X3 X79&l)Uh# j1#_!J FF$[ 7#e T$V3RiAlPeE9 XW'0URZFN!^0 VHD # =h0>T@h]]9 #U@딃r?F/(?@2?FkF_w?P t`  ;0K?t# y_h:.A>Dj# ixsj||yyh|j|Ay"s"y,"s,"yJ"y^" yr""y"/y"a|"1y"8y":y";y"|`AUhMq@q] y a7T^1 hjP!,!J!^!o$!$U#$%&U'()*+,t|q!a!U234567$9$!1&1>74Ua#[aJ`S@ɞd?F9^2d3Qqs^2tY7N26J6M#hN1y-loG?gn`bDPu6(āThq 6p?F!_T?@R h^*B?PQi e>amabƫWSuMD,Xud3, utSқJ! \&\xZ? $Zas? V =? @S?d2tR@B8BoRį֧r3Cc EH ]&H[Bѻ?@lML6~ ;m`~b&¨r?+J^t/qO@? [,!rPצ 2XQqH zg?F,53lܿu  ?FM9(֜2Ar}JND7UØB]ٿ?@h߾#?Fd~5ȿMuPu`~dg}-S/9u}DѺ f <-@uušJAV+ǥ8xP?\ q|?FKyhQ~2vTPf=?PoyGV(na~u3vu;*G1+u~ݏֻA_ ^Gϯᬅ?oQo!|b0QJX^?Fsm?@@޻Pg?POWLKz Fw^=g%fԧ!6&]JVbGᬤ? o[oQr!rmz@zg?@f(?FVɱC OPKMgBlVܖVVwVsS3O_ܘ=w?FKL?@jP0A`QʱH=lTG5OxOeuF|Fv=/Fꞏ ,-<60 ]Cs~?Mv1E GZ}v -# &<"ݝK-'>TAFd|6δ̙2{# ,',v #cX#JREB'~5-O$ ,RI~  `ܝ-C-X-_]bd% ,Wl' 4%ŀ>-խ@ײc& , Ǡ4 \lb\c>-R땳J ' ,+E :{(b\s"=]& a:U( ,/?Fb\.bLOOMևQ:U) ,!`3?F k?%6fSԿr`* ,Oڿ?F&Kba,e~Lʴ2ͷ+ ,b d?FjFŋݸML, ,Z׺ı?F bҢu W%r;z- ,TUI8?Fs%:v ~LSa@ . ,3Pވ?Fb^vO$)yϊ&Lؾ1/*mCe%f(~5JOAjuLīt~eq>aT~.j&],_10y՚?Fr`QSٵ?F艿O:McfdilFU1i;}m&R F$w|!l~1`-?F~J~ 03y<$-t9BIL{HiG,LDd|jph:OE 4b\{~-K 6,Ku20e%+~L-r; 7,kh}6`E׻L?S)` {A8 $Fٞ@`o?F%&0MuPu9KdfǸ;}-UL󥶚!s@+C9,*}3?F:ט26-*NY'| ݑU8am?FYe~Kp?@ŮM?F@_O`P jBނ> l'xk超VSOB;6{.f9;?@ v%e??Fh1*o/m_~!Wx ~)j |ALyUƅ?PbO__<J+t?F"e?@'IȂl:xl@׭9,&͓S2&n&Yۙo> =~vU^4Q?@,z"TEo-<[?|8q&?FCv?@s&Ŕck>\ :A:z5,7ح-idsjѦD;gcZT#n$!$ɞd?Fх@Z f<x.Ϗ:"r 23ED'佴9Ki PyT A$))X#!('0Uqŝ)) (h0JTxmmMU@L?FfZN?@]ޫ6?F^ ?P t`  HVRHRbLRvLRODRONVOFuH-HU2N贁NKk?@A@'bՈb񄝃P𫃘Q ? b]z@ՏH񧝃ؑؑ'`?Copyrigdt (c)2p09McoKsf r:a in. AlU sYe-evkdMёY(iՔZ- Tl8UxDE?mP!h#`@yr?FiªD#vBCh?OH#B|/e#L% +.M\?Fx5J+,ՏpeƘb|{0?@ T?F울'5 QuPuu|2P A_O:폵C]>ڏ|,#w| |fɀ~E?F` aFTSL!r?P,DT! c{d}u͏3aT^xƵif"Y:B Y7 E? O? ?ǀ4#XBwߡrS5"#]rpw ?F!~8ӱ-&?P|)\ݏ?̛C/oͰQ 0K8f ߱QI֭f"^!3|DڼCQb32btrX@}䡻XA(XAXA% 4FOaҔK?FgGyp{lQ Bť Dz#.3?Fo>?@vָsy`s&ag?P-Sg  书۟pB.GҢ?k .G TxSb/t/nSɕwe?F%/ȡ?@p̙L?Fyp5O?PN@w+߁aL\񖋷̍A߄ޘp vS&}?x/RޖSԕ??׌SaG9)ܣ?F"/2?@ď6.=H6ĻK(prN=׀zk ɓ??ۣ&OO*̱ص2F-e1fOxO "0vHgO?FN ?@rѴ?F~xy1wWD{{6o֟gvMEX}߆8@,_d9Rodo N3Ř6t?FaV?@Z_g?F,߉$8Yà]OJ r/3ŵm"ʏ%^6o;X0uoщ0邀?o}o±&r Bޚ=$?F?@ ddw?Fy[HEtD0?@ȕ 9pwJK{NӏrE]U 1*<صǥL?F_;+]yC,E{)qb=H1I ?F݄u{?@7J`Hύr_y\zYf̏-pܒj8܏B( + /~) A+3Bَ?@5/?FS}k̥=xEu&}K ѱPpAɯ̹[V]?Fx?@8^f`ó LvbK<IYLYA˲)ƫ̿T1 T]%E Q_U@IYWj~4u\/N+ܡ_[eL4{jERY\~PeC˧EU+?9DGaI-oG7抄Bm턇f޹d&U ]%ߏaE x1꤭?F퇑Ph~8-U_Խqսlr/M1#[~$g H9Ga0B ?FnB@rJo?FtVB$?b8><=QܻE2l@"%;Ghc#?ܒEz&v!3ETȟڟN2]9@:Sǚ~u\4@X~DG㘊1VO4GŚ?Fq?@Z61U-, K1析|LfJ8vĥ.Sh* S7 F//r & 0E=̨qu?@6}[?Fdۗ}CEOd5#|Li1Y.1,2lY?RvCƯ'?FcO +?@H=?F6EКɘCxj/ y<(辂m:}F;ܕЧdqj|BJUS-?/-6OOhP:2H(hhOzO R(RyO5Fnw0gs[`JɤL@p [Bc%0dO swE~n#kN}?˽6yU;%?-_Oa6TofoP>y%PD 0;fL#10t+XˉBH?, -#-/.{Mq12s=cOyU6;ƅ[P`qB!!ME=*By61M -7C !6dFsgyf%R_oo6J\&F^ /P*hTgiE!?FYRRG=V?FU tn2 OAKL2^ق̜ҁk:z焳'!hLK;i B7Hm$M]iH?FګZD?@vit=qN~ p<C MA՝n{jvDr^n4l4Z\{!V!;΂`? Heq$AT s>P/X+]1WU?Fbdi"ܽgD?P3F#?M2T8sY4݃MYec=ݗD}SQU]6⛸Ȍ' k('޲XQqN?FZ D; hwi5mND{I?FXPY?@2 }͘?FBҏÎxv'za݇/i\?M;L0nMuhg}IN;&?F9'w(=xF\_3ѦUi5dm?FC Ax"2009)~4lHN%+)GYo,VB΍z ^?@¼2?F>Yہ3|궕TtjDG:J4l)Gfd{ 2d?:p+/=/ߊdY"֍YyI6YPuHvD~wdVͶ?F *Rō U0)QY?=Խf 4l﫿#b3Mddo/ލ^?p?yǛ2mY̕[Y ?@Ho+ѐσfȝt3ɗøLCW~PHi_̻ԱMd^r\??eOOyLjG]2ğ֕USraARGSriaaT=YXwZ'0mUR?B!0] zVZUHXuD # %#>5h:,JT5 ]IA U@y?FJYﻛ??FbQa?P mNuQ` o?u#6QMIQ 9H#L\WYLpW LWLCWICWA ICW ICW I"CD"W I."WIB"WLV"WLDj"WI~"WI("WQ M W#"k#"#"&U M & M W32C2&MW@3P2W>4:& o2Ro2fo2zo2o2o2o2o2$o2/,$o28,o2L,o2`,o2t,o2,o2,6(6(6(6(68686,?>06J866^8Nt  ::Rt%RR_܋NbD$QFMpR @(uQNU2zGz?N@Q cNfA@RbMh+b[ihkhf>bK !LdNcb c#bf b\MSbb[ikXg>bl>boRcfqfqc`?Copyrigdt (c)p20p9pMpcpospfrqrpqapipn.p Alp xsrepepvpdpbMcrs rwf bQWRtR lQUxeQQWB $.! =1SaQ?$>a~!x!e#!Sa h*anvO)g?Fz ^`S 3?-IS ܇Gh;q?Fψ?@Lm)şƿOzHp MuPu`UR-ga8}|g$_sh}$ GB~3 dGcnjpǟ(Az3F#? Oǟ@fhؔ~ `$6#;zZ?FfuHvD?@ߠM=H *R U\hAᅪN5Ozq7*;]?F[Y ?@|%σf SMY^Qh993+!ڌ )~(;6mlR&&/OO~E~v_bD%%>X-"T G#+EK63 11WA/ T3ٳEC4}$F|rO 2DV0ps-*  ԀCV@59)5AFSƾ\ՌpބTvrD92C#!~V>rA%!?@4%-&?PR^BhTyYWX+  '!vN-^/p/PCZCdAHC$t~HgE;%'e~\aI/pԗ~{φhh~- Z1q܁ɥjZ谔T0Rc M`xhXϔ=0Ҋ??+E?? Y܅+)ȪU . ?F%pAHhAuQeFķeeǜRe !1g쁷Jai%?F,#9 R6$*h~*Aꤲ8iY 4?@?SA?F0pF@ ?Nk"͜!\Th% 4 [Xg?c乇?x)|";}p?FtVXb?F<X?@~LI%?F7ja8Ɵqֳ6h ǰMVX[=l?F@ ?Λh` !X)gxW<>2?߯An`di~RnKgwBXVXM_mpX`}뀁e'}NJc6fgl"0Uř 4ҵIp^\BeHeɉ0$e {eBpD=VX5vIߪ%e?@$ "ĩL¼A$ h|~&Ep=qp\J0~ \m"(@8v"~+1ap=3Ѐᔿ%t f\߱[P-?QcEp=GOM RϡvbxzV ?@%f'1rN&&"ҮcrA '|-(o>?e1pp$>%d|&k`{T~zQoD=gs {~@~IMho=|Ϸͯ߫噮|+2Z(,1t,>{eFud:L^pz$ozq820X3Y[?@7Mu]0mFﶜ݇$I~D={N/ݿGǙZ9:G-LPb~?2$m00 ["]Мߢ""10eVWLKz Fw{M 3D=h(jA+cF, (W$R-//"'p /""H1{,eO<-!t(>Et{ŧ&k}u?FԿ9*\.VԔ?1_)hVrUe ?@llփ?Fx!S> _ؐ%_ؐ.✼=~ߋ{p" xwϨ1wjf-@4Sa0%Ti:w?ؐ?$:~ ;IŊ=?,ģ:?yji6hAATD)IX$*'0UR?I!&c= &J_HZ|`;s dV(]bCV!FHM#F ߌVOB U_ ~d״ `@+^C d_s}G Áfv yҦxؿ /H{ +(} X ! F֛% !& 6* , /  W7 NH xc Gx JX  #/5/G/Y/ $%( 9%UFD  h(^TYYBBUFjZ?F~??x<F BP(?P } kXt BW66 W TTTUTT6"TRȅH?? ?B@L&_d2?"-3(\.E(#.sUk!i&/D % G 0eB`-dir c.o y,s rv 2, ompu.3!s.r b4d0n twB2k!%^| (SG& i?? /,>H ?{ wp | pqpqwq߂qwqwqpqmwlqppwpw'wwwqqb\wqpwwww;^Drag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aabjZֿ~??cN׿ mF1?ouzq7? %!VT*J?@ ?UG DF P# h @T(PYY# QU@jZ?@~??F?Pn} u{` ?Su#؍>>HX HlHYHH EO.LO4:UDDXXUllk'"&R",I'U25ĉ%4 ?"u'4b0{N[`:Q1#2T6"!^U9$"3&9"/L6 2&!'ݯ>e@ÿ@qn@?@-fB?mDcFԸ0)Bu/@`҈-1Bu@rCC 5GAB"2Cm9u`u `"[ b!u`%3Qo1o7B`?CopyrigPt0(c)020P90MPc.PosPfRQrPQaPiPn 0Al` XsbePePv,`d/`VPs_SBNcPm!#5ab4 3!bz1AE:FG$18dT=`XQj2`]rw` M`nuP%aPt+ar? { @&8~? 8Tv??;Hd2QCg3` Wڣ%ETV-O?O C| aOO#䅿O`M,`m@.O_"_Tp'_9_M;Oem1y [Qe_w_Sqt'aZw0fo&SU@jZ?Fű?5v5v[pYp8u>p` ?bup` B=ݥ`S,t']p 5/m-݁<9opm'Qh>qݏBKT'.kt'xybf@>p{ÿ#БobZnq [ܒrr$avvvrs{a"`RQovg16 eI`&bb_ kkbr@ uP`TaSy1@u,_u'S1S2A+b[aahaDauhAaYg6s&P` -u*`{`ᕁ {`ax1P5Y_dl&bpSF3s͵NSYJObrVC@ؓL+e8#d3#%XLqW,@rb:(:ӏ^}}a}ahʀYVWn ` %P&S41¢Ȣ}a`NEWOR+Kl2H P{!RƱRISQ¢Ȣ¢ Ȧio.oÌh^A#'0Um?!0oHD # =hj0>T h]]9  5AU@jZ?F͂T??Fx?SF?P6 jt`  o?tk[>(A Vu aSuo.]&A]  *ԮJU2zGzt?@L#&A@bA#z7 5#1bO(b])j+$j&[ "*(w "?& ?AU$l/%B115 `?CopyrigTt (cu)Q02`09Q0uMI0cG0osA0IfO2@1rC0|1aO0iA0n.Q0 WAl0 G8s2Ueo0eG0v0d0"1E]4MŤ-&3 &7&l>]Uhz811U!J!u6?F+\.>djIIa? >"(EǑ I%K9E 5EU . K ;;5QIWEEEF _KnSA?8@@Bu?FDR> ?Nk"\6`bmMM\j=am {:e P> #? D"? 5-g?j4B7!B{oogr57!ibDAbE9 MuX7_'0U~rN!$a)5 5vIzHD # =hj0>T h]]9  qAU@;?FI5K?@xEL?6ѿP6 t`  bm&Qo?t@@L]WI,#u aiuoL> JU2zGzt;?@L?&A@b}#zs q#1b(b)+$&[9#H",ɺ (wH"?& ?A$ /%9#BV1V15 `?CopyrigTt (cu)02`090uM0c0os}0If2|1r01a0i}0n.0 WAl0 8s2Ue0e0v0d0"O1E]S4MŤ-9#b3 b7&l>]Uhzt1.A!JN!m.%-+0djV1ax߃S(FJ-&?F mO"> ?Nk"L[Majnha_:e P> #? BK=o? n-?j4Bs!B{__Wr5s!D8E6V 6?wj_|_ ^XE.U@z T6?F @' d_mOoT \VyWxRkrVo_bVh*g:n"'UaEjz36>CN>?Bn}]zGvN7V iDAbE9 MX+G'0UJPN!4ae5 MaHD # =hj0>T h]]9  U@jpiH?F^?@$?F]F?P6 t`  !a&ao?t,F=۳=u;u auo>J2zGzwt?@ʐLAw@b#z1b](b!).+I.&[-m(?0& ?A$I0/Q%!!5 `?CopyrigTt (c)02`090M 0c 0os0f21r0@1a0i0n.0 Al[0 8s_2e30e 0vq0dS0T"!E]$M-# %'&l>]Uhz!1!JF% djc~YZ(_N9zOMGE%_EH$SwO"K ңHE ^&_8_WE_OqOHOOi&DAbPE9 MX7'0UUfb>!$a % f1jHD # Uh4>T#]]9 M5AU@jZ?FL|+?@?F({~?P6 JuM` ?u JYt )t7zEA2&L_D?. > >tJU2q K?=@MJ&A@-b9(+bG)T+T&J[#"#a?& ?AH?/`)#115 {`?CopyrigTt (c);020G09;0M30c10os+0f92*1r-0f1ai+0n.;0 Al0 18s2eY0e10v0dy0z"!4B#e-?3 7)& b 0K8>U# ]A]A "1!ъ!PzQ <%OYAJEU . K;;\%W%EF($L[.FX5Eai%?F 6?wL;] W-\TB⤲8?F@&SA?F @ ?Nk"L'`bmMW_Ye[ٯ7 VK=F: [jr ? D"? XZvD?ta@Boogr5;!QEx]SiLO MLGXa~WOTZiAle59 XG"'0Uc&N!$05 .HD # =hj0>T h]]9  IAU@K?FOgVb?FY%?Fwᳬ?PJW?>t`  ^Z?t#ə.E @x?r?/{4܂ G _Z+u u$ >  J JpU?43f<!.&P?b3bbfz@1bAe&bq$d 2zGzt.#@LT"&r(~&i$q)(+}'i"~*#81815 `?Co yrigTt (c)o02`09o0Mg0ce0os_0fm2^1r 1am0i_0n.o0 Al0 e8s2e0ee0v0d0"11E]54M-#D3 %D7.&lUh#7 V1#Ai!J# F/?B1B  VRiAAbE9 MX G{W'0U*R2N!I$a {VZUHPD  # #>h0JTpERI MU@u6?Fjc{g&?@%r`5B?Fm_F:Is?HNtQ`  II?t#]  _ii$!`kNu  iu%wj>M JQ T       "@&&JNU2"?H@Qs#N&A@b(bU)++&RNp}#>H1#19 ?#bbbz| R&/5R}#11`?Co0yrig\t (c)02h090M0c0os0f21r0Aa0i0n.0 Al!@ 8s%Be0e0v7@d@21a4t#-}#3 %746lJ#$JUp5 3 M19 1!q(!FnElrkRt# 8$kcD?@숒@)?FP?P"EkU |1\iOT/irvs}i>`_,of :m ,M ?? S&d2? *b?r4B!B oo1gr #5!>%(EQOOOO__FAc1_C_ D4ևS]_o_yRX+{_,__ #R__ (YQoSo+o=osd {oEeooooooFyUy{* hDVW(I X"c7I!pg bf'iMjSE t%XyG|'0UŢŞN!O4i |UGD # hz0TdYYBU@(%)?Fxg^?@0߯H?Fs7Uݹ?P} t` 87?t#_)TeΦu ]ukv  ̝L&UUU&I&3 U!!`?CopyrigPt _(c) 2\W09 M c os f"!r 1a i n}. Al00U (s42e0e uvF0d(0'HS$#-## 'I?k=#ǒ 2j$B##0U'BM3@&@F0Yk} #HA%DKb5DK3DK5DKED$!GiAZG5(|IDFX7yW'&Dŭ6!4YA yVZHD  # =hj4>T!]]>#AU@0߯H?Fz)e??F˞9q?P6 t`z  ?5t# rXѮu)Nu;):O]ע0 &> # " "+"+"+"+" $+"T-J[U7 ??& bA@ 2b4-#2zGzt#+@ Li68!6 ?}; 72U!:B#AA5 5`?CopyrigTt(c)20F@9M2@c.0@os*@f8B)Ar,@eAa8@i*@n. Al@ 0HsBeX@ej0@v@dx@)21"DM-,;?C G& l>]UhzAE!A#!ְ1J`#@{&pz?FUy{?NT,dKj&b&R&M/8T9K-q?F@F?FdG0 >Nk"?YE*]\LThKjfGD&Qhj ?iU3UGe&Y`?@/Jb)h5oWKoWo;èKod}l$ro`nE2K?Fˌ%4G{?F -q? eZR^{|\?6?vodmP}l>MBe 9 N 1iS? 1?grl#51:PO"4ga@Sq(UE^@O|ǐ[`ߡa v2rbA @3ijD&}laqOz o?#WHZ'Qu=*[^N?F]%P?@O&@ c?FаM<n ?` eb0)\(Pfodm}nv}l?V5(?q$Ix[cN#W{ #iA@&QeE9 MX''0UjdN!0 /HD  # =hj0T h]]9 #]AU@}%?FR$,?@6#V?Fc_3֡w?P6 u` ?u#t  3zM%t3ws%.<%H._'B> #PJU2N贁Nw[?@ʐL+&A@wbu](i+bk)%+&p%#4">9"<5!?& ?M#bbb͓z$ p&"/%T%#L1L15 w`?Co yrigTt (c)02`090M{0cy0oKss0f2r1r 1a0is0n.0 Al0 y8s2e0ey0v0d0"E1E(]I4M-%#X3 X7&l*>(UhE j1#$Ac!J`%#@5e$_F??!foA3nBM( V?FJ-R?@HQ??FS!R?P| llHL6VLD5E+v;*AůʙH: 8snP%$? k?Q? \?4_!__WrA5_! R,U3OC@IL?F4~Kz?P)Oy޾ T!]]>#IAU@܋?F2Oa>?@#r`5B?F*ݷ?P6 t`  >B?\oEt# ŖoZu 0Nu;Y:|8>$# JpU>##<?2& ?5bbbz@b#ANi&bu$'h 2N贁N[2$@ LX"D&v(&m$ :;T'm"*B#d1d15 5`?Co yrigTt (c)020090M0c0os0f21r 1a0i0n.0 Al0 8s2e0e0v0d0"]1"a4M-/p3 p72&l>0>Uhh= 1#!eJ`#&FNTM\jh1B,RBM(!JoUy{O_ e@ So4(D@^Tw?F]֝ä ?Nk"?w_KT\T+\_(Kjӷjmplhj -`\TPQE\Uui,St_o u~!ՠXEO9= T?FL?;uQ_Pm"rA @3sjQ1lğ=GoYniAleE9 MX|'w'0Ur^N!M$|A vzHD  # =hj4>T!]]>#IAU@܋?Fj?@2r`5B?F^ݷ?P6 t`  >B?\oEt# 6ΠZu 0Nu;Y~:#&}>0m8>  PJU2N贁Nwk?@ eL&A( 5bM(b[)h+h+$h&#[-M$#?& ?b$Z*'*B#O1O15 5`?CopyrigTt (c)02U0090M~0c|0osv0f2u1rx01a0iv0n}.0 Al0U |8s2e0e|05v0d0"H1P"L4M-/[3 [7&l>0>Uhh= m1#!S!J`#*&FPUy{_?NTMjC1gc RVMʣ(D#@ ![?F"$. ?Nk"W?IKTLTcKjRlhj p=' (*!)i,SO2Kes9T;QEGUFw6qX}__TM7fTZT\Dž}_P^52XOES"rA 0S#Es3iAleE9 MX|$Gxw'0UrIN!4gA xvzHD  # =hj4>T!]]>#!AU@܋?Fc_v?@#r`5B?F*ݷ?P6 t`  >B?\oEt# ap'EZu 0Nu;Y:|$># BJpU>#͙;? & ?5bbbz@}bAA& K&@ 2zGzt?"K@ L0"&N(bM)+TK/8Z*B<1<15 5`?CoyrigTt (c)s02009s0Mk0ci0osc0fq2b1r1aq0ic0n.s0 Al0 i8s2e0ei0v0d0b"5194M-t/H3 H7T &l>(>UhE=3Z1#E!J!FENTMjN@1h(NoUy{OO e@ o)4(D@^Tw?F]֝ä ?Nk"?'_KD3\T+\(Kj?ӷjmlhj P\ DiAlePsI=MXsG'0UzbZ6N!%$0 sFEjHD  # =hj8>T! ]]>#!AU@܋?F*?@#r`5BW?Fw?P6 t`  >B? \Et#տ|u l4RQu?]>I$>I# JpU>͙#<?& ?9bbbz@b#AE&bQ$$D 2zG[zt#@ L4"&R(^&I$Q)+]'I"^*Bh{.M#To1o15 9`?CoyrigTtk(c)k2009kM0c0os0f21r1a0i0n.k Al0 8s2e0e0v@d0f"h1l4M-:?{3 %{7&l>(>UhE= `51#I!J49fAn^ R)X f"B!Jui,SG?RSlOS u~!N]8-19= T?FL;uQ ?Nk"?YVTQRXQOnğ/=i n (\ wTiAaePE9 MXLg'0UbZiN!)$0 Lf`jUGD # hz4TYYT#BU@ѝ%bm?F? -wʬ?@aL?FHzaֺ?P} u` ?u#k/89bLd<`9ft"929<(.88LL``ttt g`"tk"[&Pw%f'aw%'LOd@:U~##0-U2?@M&#I1I1*"`?CopyrigPt (wc)020090Mx0cv0o%sp0f~2o1rr01ua~0ip0n.0_ Al0 v8Us2e0ev0v0 d0"B1(F4#B-#YU3 U73^=$V6#@hDCFCF ?B$e!Zl AC) 6 #HA%T8[5TL[ETA[Tt[AX[E(TWg$6iBH_'ɥ TQQ"(['ca %BL8RKjcU jcjctjcjciAD5 -6X\Gg'4CFZ!h ,J T  M#EMU@sހɞ?FRX??FHXܾ?P m>uA` o?u#pMJp -<p =PK =dK!=xKA -@K#K2(.K<FZn>t  8dIL"tW"tb!>bo!FQ~ouT!J>U2zGz?W@9 #>~&A@xb(b9;6" !$NF#g2#"~6 E2M"b9;7"iA<"A?*#AA#`?CopyrigXt (c)I@20U@9I@MA@c.?@os9@fGB8Ar;@tAaG@i9@n.I@ Al@ ?HsBeg@ej?@v@d@"ŤBM#C bG~6"!B'&"t"ElJ!XJUl&!!C 9P a u%#AR(!9J?F64EӠ0# C><# KONUjZ?FZw-i\֊\EYh3nNxQ1-o?o pPhEUU . [|iձ9\5gUF'?\x~Z__"QelQzai%?F\T_\{a+\FvwKd9Tꤲ8?F#?@?SA?F>@ ?Nk"`YUd}\kEWq_ʉh9(  GL%hYH.?FVRM\ߣ;b'\;uxPyJ}u?F`&d2?@s OuPu0%23[yO0]0N/\nn*\h|QY]#?FPWYmrWoDteQYx߫ *JR\uk'\eFJxdyX,?@ȼl<~ `0 ~ W$p-0K CF%X[myQYgPln\ g!A\?khQYHza2tY& CXeqUuUZT@3N}4#`Q :$  _?V3?C~Sa7BfN$!QA(.WLYET]__[{u?F7\H\U9ETt>CcxQuuj ?@llփ?Fc> Y6h 0)>AYIDҍuґ[Frq3ux@4S_헓^Agu"3J>ޟ9c]lIriMiI%`1-QD_'0U~6L50 HD: # =h4>TB#]]9 TqAU@aL?FHza_?P6 u` 7?u t  )t7U)2)LL>  @]JtU2qD ?=@LC&A@-bu(b)+&񆤍[=#L"#?& YA{/)R=#<@1@15 {`?Copy_rigTtT(c)T2U009TMo0cm0osg0fu2f1ri01a; ig0n}.T Al0U m8s2e0em05v0d0"91=4MB(=#-OL3K L7&l> R!U#( yD9 ]AB^1*=#; #p _w&&J`=#@0(v?F]?&d20ec+Η֑gRM(R!5?F`*JR8\9dFN\{IA\(T.8!T̠UX,?@azMھPZV OuPu0;Y?_  Ц;%u_6??&VUvl {aOǽXE!_3S@#) ۶?Fvn#o*`SrA@z#cXj3?llf"QooUF`z^?@|;h(;?F Bo*lN\_sVl]C#ll θ%67I~QUz$Ϙ&?F9;Y=FP-N\AY(V?`0 8_J_ t7YVZ\UAY%:$?Fx\.јAra#N\2T(AeGiAle59 MX=G|L"'0UbN!V0O5 HD: # =h4>TB#]]9 TU@[?F$Fh?@rp&?FQ^?P6 u` ?Mu t  c(o#)t7 5~/)2ڦ{)L5EEH AEJ2N迴Nk?=@LA@yb #z-bK( (2+I2&y<$v!Aƿx 0>U#3 TB#]]9 TIAU@$&?F`_0 ?P6 u` 7?u t  OFP-)t7t7)2)jL8> PJU2N_Nk?<@ʐL&A@{b]M(b[)Y+%Y+Y&y#$!Ax1B4MB(#-OQ3K Q7##l> 0>U#3 8A9 Bc1BD #p %J`#@0(v?F^?&d2 C<$I$IRMRM38T\.?@Y{_?F OuPu !YM4\ѶmPGq?l £iXD8*!}9!Y,a7Y.cqQE_S@ ۶?F?vn_P#rA 0S#cZ,1+\Ro#oDT#3 H[]9 U@֧?FS0?@2?F#+/º?P6 t`  )s}&?tM_%b̺P,\u duo#AԖJ2zGz?<)@LA@wbb)++&T[e#au) ?AH//)!!5 `?CopyrigTt (c) 02`09 0M0c0os f2!r 51a0i n. 0 AlP0 8sT2e(0e0vf0dH0I"!E]$M-# 'x&l> .U#,11 ] !a! #p| F%JYiC?F9dj6 {"aI"O(EF~! IGI4FpE%ExQ:^?FLgo$ҮLOHXEEq7R?FVs4մL`VR®LqlhndFEEH?F)HמLsVIfVEE6>6W?F{RLLlV±I]VVpE.A|IyW?Fjt6L'/#7M'$xvX2A|I*{q?FG>BL(fIfpE6AB|Iv7RPKeVR@ m%G:EERH]uwiyd`viAbE9 MX7MB'W0U:>!$)a% vHD # =h*0>T#3 H[]9 U@5 W?F)j?@#˳=.?F~0 ?P6 t`  5YY?tcxWUbYaۃku5 auom>J2zGz?R<@LA@bb*)++&񩆍[~e#u) ?A//) !!5 `?CopyrigTt (c) 02`09 0M0c0o%s f2!r 51ua0i n. 0_ AlP0 8UsT2e(0e0vf0 dH0I"!E]$M-#K 'x&l>U4>U#11 !a! #p F%JyO[f?FVj d~jɧd`X <݉O(pEF9IKG`E%pE9Hd?FBP(~LIHдDdAEpE|'R?F0RLFR׊L\RٴHpEJW*?FvݮL).uL[HpEO!ONciA1eE9 M*X7=B_'0Ub>!$a% fjHD: # =h4>TB#]]9 TIAU@s52W?Fp?@??F3bb!?P6 u` 7?u t  a pʙ)t7E d(2А3(L1qͯ8M"> BJU2N贁Nk?<)@L&A@{wbM(b[)Y+Y+Y&ԍ#;!Ax 0>AU#3 A hEn1MD #p %J`#@z?F"4_ G_ JXRM(*!*[%@[WB_$S@ʹ?FT! OuWPu #rDR$$cm9ha}Jl |>QxUUF9_C_bUATjHZ}?F\*JR?@x\?Ffl6 o`,Y\v ?\/{?TB#]]9 T]AU@_H?FX,ź?@M&?F?Pn6 u{` ?u t  9B)t7 _Ц;B2Zg)UL WB2> JU2N贁Nk?<@L/&A@{ba(bUo)m+m+m&j)##Ax 0>U#3 pA9 Bh1GD #p %J`)#@Ӯ?F9f&*ѦC)RRMU88ˢ?FZV WuPu1&Y9\M%_x;GKa YH_ ? >xx? eQj?r 5c!:o1oCgEa@QSE8>!_*JR\_ EarUE _d2?Fz`0  QU3rbA 0g#QsZ"?Rl BZqlDf +rGaeAiV\.岾\2_qd(Vpd y0Ale59 MXGG|B'0UlN!$AY5 @T_H.;s QEe OOH 3FMJ#J /L[OB M~d8״ N@+𘽷 _sGg kf$ #YH& \( `* c, g/ jF֛ nh aq6 vX z Z~X 7a 8υNc # Ht Kxh MYj ߦлxm v׻`//'/9/8rLj/|//G&Xo /////?#?5?G?Y?k?}????e '&UFD  h(^TYYBUF\.?F `??x<F BPG(?P } Xn B66  TTTTT66d9TTTT!T"*T$6%6&6]W)T,T-T/T0T2636466T7T:T;JT=T>TȅHBU??/&& ?B#@L&d2?=-8,?8>sUe1c6(?) 8  0%$iB`/ap0l0cat0on,servB,.0om0u0CUd0s0r0bDud@n@tw@'rk1eA^| 8SG6 u);M  ?ppqpw~xpqpppwywxpwppJp@t qq~>pwp;ww~w;NqOwqw<ZsfsqpDrag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aabi4Fѿ `??Ԇҿ4ӿw??n\.r0h47?=UG DF P# h @T(PYY# UF\.?@ `?@i4FѺP} u` ?Mu#b.CR;cbwe#1~U:DNblbb''U ^:"@,I@'Ui"r%ĉq{$ ?:"'4Wb {[W`:#2R 6Q )$#@&9D"D!L1:" ^:!ɜ'>0ÿ@q޴0?@2? @!260nuu0`i-12u]R@r\CC@5D"Ch3A 3/BD"'C9u`un `"[{ b:!u`!2{#A!'!B`?CopyrigPt (c) 20"P9 MPc. PosPfRQrPAQaPiPnQ Al\P Xs`Re4Pe PvrPdQ/`VPs_SBNQcPm!#5R46Q!r#d$r%2(={#&r#d&& "r$0Umb#]We,^l Um g%dk3dkUdbk%d lHmAdasVT/AQQr"0t"$32t23D!!i"5RQQ 76CC|8 PEAAD!11VA;w<A>1.b!EbF,J҄hdhr)z!*H/Abao(dTPHAS]ebw` MJPnu8P%aPtgqQrQA_` E uPpPeRPtU#%Q3E]!^PR0Rdgn PuPbu3 ZV![ PJPr 8p-?] ^ݝDrR/QMUr#D\TA4PuQb2`^%^,>T-%[ SvRiJP_Qj|UTT,^LPcJX뿠%%7B l ~PiRPgUχu0`ϓVb^RPorϖ|FJ(R@] p]D`MTNcw@Rkܲa҃Pz"`ۗh(mII@`YQd~PqSsߠt,JSgbRPdbsg삂xTz^VmQtHV{Q IwQjfT^ f 6R @`AQkQhz+[QmPu?t P PF쩂ŀ'ʨg삪eVT1^C@`!T` WDLÂ$X&݁^MrPm@RAyM_Ђŀp6 OPwQKSVyC݂IV[oBrPlPRglRTPuԋ//SPa)"C\PŀX//T` 7T= *![0`ѳ{QpT?f?Z?H%` APp\P-Q_/(/MZPCSŀv`ÿo!$q a f hrb`RoP!e82b bffs"`uRbk |p|ptR|{b{rՑwз@3u@`]^ā'vIo[jvpm_3 ՑՑ'<<މ!#QQaa ´$L0aI6s`ɱu`'ŘP!2P!r7{#453_&w"v#F3sNSYF!bF@!]8l#]no Ŵ1Gk,@b!,RvEoWo{mQQʽ3IFy !^ɲw` %2P&Ao)$0 Q`NE}WORKJUHu@PRR}ISQ  7BiA9_K_6hM3Ll'0Uƶ?5fAy 104(_HD # =hj0>T h]]9 5AU@(b?@L??@C?ִm?P6 jt`  o?ti[=(A Vu aSuo.]&A] *ԮJU2zGzt?@L#&A@bA#z7 5#1bO(b])j+$j&[ "*(w "?& ?AU$l/%B115 `?CopyrigTt (cu)Q02`09Q0uMI0cG0osA0IfO2@1rC0|1aO0iA0n.Q0 WAl0 G8s2Ueo0eG0v0d0"1E]4MŤ-&3 &7&l>]Uhz811U!J!Ž?@昫>djIIa? >"(E_~_ I%K9E 5E!*dK ;;5QIWEEE@sT&p _KnSA?<#R@V$T2ݰ?@ʡ /6q!I6`ObmMM\j=am {:e 뇿P> #? D"? 5-gg?j47!B{oogrK57!ibDAbE9 MX7'0U~rN!R$a)5 5vIzHD # =hj0>T h]]9 qAU@'P?@@="?@EP¿P6 t`  bm&Qo?t@@L]WI,#u aiuoL> JU2zGzt;?@L?&A@b}#zs q#1b(b)+$&[9#H",ɺ (wH"?& ?A$ /%9#BV1V15 `?CopyrigTt (cu)02`090uM0c0os}0If2|1r01a0i}0n.0 WAl0 8s2Ue0e0v0d0"O1E]S4MŤ-9#b3 b7&l>]Uhzt1.A!JN!DØ$j0djV1ax߃S(@où}sװ?@l[ 06q1I[Majnha_:e P> #? BK=o? n-?j4Bs!B{__Wr5s!D8E6V7гj_|_ ^XE.UB6VtMhNPڮs} /d_mOoT ݬ\VyWxRkrVo_bVh*g:n"'UaEɈ庾hBN>?Bn]zGvN7ViDAbE9 MX+G'0UPN!4ae5 MaHD # =hj0>T h]]9 U@Nr"?@v->u?@_w`|ach޺?P6 t`  !a&a?t,F=۳=uk;u5 auom>J2zGzt?@LA@b#zt1b(Wb!).+.&[-m(;?&L ?A$0/RQ%!!5 `?CopyrigTt (c)02`090M 0c 0os0f21r0@1a0i0n.0 Al[0 8s_2e30e 0vq0dS0T"!E]$Mb-# 'I&l>]Uhz!1!J@ 9ե djcYZ(_N9zOMGE%_Eohp3wO"K ңHE ^&_8_WE_OqOOOi&DAbE9 MX7}'0Ufb>!$a% f1jHD: # Uh4>T#]]9 M5AU@1b?@ 0?@(?@n?P6 JuM` ?u JYt  )t7xEA2&L_C?. > >tJU2q K?=@MJ&A@-b9(+bG)T+T&J[#"#a?& ?AH?/`)#115 {`?CopyrigTt (c);020G09;0M30c10os+0f92*1r-0f1ai+0n.;0 Al0 18s2eY0e10v0dy0z"!4B#e-?3 7)& b 0K8>U# ]A]A "1!ъ!$cIo <%OYAJE*dK;;\%W%E@-.L[.FX5ET^gY?@7гL;] W-\TB<#R?WLq#'?@Eڮs /6q!I'?`bmMW_Ye[7 VK=F: [jr ? D"? XZvD?a@Boog]r5;!QE _2%g@LO MLΈXa~#OTZiAle59 XG|"'0Uc&N!$05 .HD # =hj0>T h]]9 IAU@Du??@ e?@=?@n? 3?PJW?>t`  ^Z?t#Ǚ.YX?H"͋s?/HImG_BqhZ+u u$ >  J JpU?43f<!.&P?b3bbfz@1bAe&bq$d 2zGzt.#@LT"&r(~&i$q)(+}'i"~*#81815 `?Co yrigTt (c)o02`09o0Mg0ce0os_0fm2^1r 1am0i_0n.o0 Al0 e8s2e0ee0v0d0"11E]54M-#D3 %D7.&lUh#7 V1#Ai!J# F/?B1B  VRiAAbE9 MX G{W'0U*R2N!I$a {VZUHPuD  # #%>h 0JTpEI MU@Ž?@`?@4xS?@JBf&?HNtQ`  II?t#[  ii$ `kZNu  Miu%wj> JQ       % "&&tJNU2"K?H@Qs#N&A@b(b)++&Np}#> H1#19 ?#bbbz| &/5R }#11`?Co0yrig\t (c)02h090M0c0o%s0f21r0Aua0i0n.0_ Al!@ 8Us%Be0e0v7@ d@21a4t#-}#3K 746lJ #$JUp5 3 M19 1!aq(!@Llrkt# 837^1?@!?@km?P i ?e=1\iOT/irvs}i>`,of :m ,M ?? S&d2? *b?r4!B oo1gr. #5!>%(EQOOOO__@i1_C_ D4և]_o_#RX Ph'X___ #R__ (YQoSo+o=osd {oEeoooooopَm* hDV!VVi&n X"c7I!Hpg bf'iMjSE t%XyG|'0UUŢŞN!O4i |UGD # hz0TdYYBU@R-?@c1*?@=?@(kݫ?P} t`  87?t#_)TeΦu ]ukv  ̝L&UUU&I&3 U!!`?CopyrigPt _(c) 2\W09 M c os f"!r 1a i n}. Al00U (s42e0e uvF0d(0'HS$#-## 'I?k=#ǒ 2j$B##0U'BM3@&@F0Yk} #HA%DKb5DK3DK5DKED$!GiAZG5(|IDFX7yW'&Dŭ6!4YA yVZHD  # =hj4>T!]]>#AU@=?@!-??@$rq?P6 t`z  ?5t# rXѮu)Nu;):O]ע0 &> # " "+"+"+"+" $+"T-J[U7 ??& bA@ 2b4-#2zGzt#+@ Li68!6 ?}; 72U!:B#AA5 5`?CopyrigTt(c)20F@9M2@c.0@os*@f8B)Ar,@eAa8@i*@n. Al@ 0HsBeX@ej0@v@dx@)21"DM-,;?C G& l>]UhzAE!A#!ְ1J`#@l?@َm?NT,dKj&b&R&M/8T>f:?x6@8?@ߛ} _6q0YE*]\LThנKjfGD&Qhj iU3ULeVP۶W?@bs)h5oWKoWo;Kod}l$ro`nEBYFv?@D?%먪?@@3gZR^{|\6?vodmP}l>MBe 9 N 1iS? 1?grl#51:O"4gBa@Sq(UE^@A N?@CJ?m Y&v2rA @3ijD&}laqOz o?#WHZ'Qu{r>@\J"ۭ?@ yT?@ (U" +Web0)\ϼ(Pfodm}nv}l?V5(?q$Ix[cN#W{#iA&QeE9 MX''W0UdN! 0 /HD  # =hj0T h]]9 #]AU@~M)M?@۵+?@)?@4_=w?P6 u` ?u#t  3zM%t3ws%.<%H._'B> #PJU2N贁Nw[?@ʐL+&A@wbu](i+bk)%+&p%#4">9"<5!?& ?M#bbb͓z$ p&"/%T%#L1L15 w`?Co yrigTt (c)02`090M{0cy0oKss0f2r1r 1a0is0n.0 Al0 y8s2e0ey0v0d0"E1E(]I4M-%#X3 X7&l*>(UhE j1#$Ac!J`%#@J԰ί9?䟥!foAnBM(TfH?@3A,?@A') ?@:?PT% ibL6VLD5E+v;*AיH: 8snP%$? k?Q? \?4_!__Wr5 _! R,U3OC@bD}?@,en?P)Oy޾ ?pV?c"rA b$cZ-,u`κ\DT+V ?8<iAaeI=MX!GG'W0UxrFN!$ a FCzHD  # =hj4>T!]]>#IAU@+&Z?@A3?@0xS?@F#tݩ?P6 t`  >B?\oEt# ŖoZu 0Nu;Y:|8>$# JpU>##<?2& ?5bbbz@b#ANi&bu$'h 2N贁N[2$@ LX"D&v(&m$ :;T'm"*B#d1d15 5`?Co yrigTt (c)020090M0c0os0f21r 1a0i0n.0 Al0 8s2e0e0v0d0"]1"a4M-/p3 p72&l>0>Uhh= 1#!eJ`#&@NTM\jh1B,RBM(!JَmO_ e@ So4(DFtI?@:7f .6+qS w_KT\T+\(Kjӷjmlhj -`\TPQE\Upt_o ?u~!ՠXEOd<"PP'_Pm"rA @3sj߅Q1lğ=GoYniAleE9 MX'w'0Ur^N!M$|A vzHD  # =hj4>T!]]>#IAU@+&Z?@ ~*?@AxS?@mݩ?P6 t`  >B?\oEt# 6ΠZu 0Nu;Y~:#&}>0m8>  PJU2N贁Nwk?@ eL&A( 5bM(b[)h+h+$h&#[-M$#?& ?b$Z*'*B#O1O15 5`?CopyrigTt (c)02U0090M~0c|0osv0f2u1rx01a0iv0n}.0 Al0U |8s2e0e|05v0d0"H1P"L4M-/[3 [7&l>0>Uhh= m1#!S!J`#*&@[َm_?NTMjC1gc RVMʣ(D1FʞB.• .6q0IKTLTcKjRlhj ?p= (*!]ݏp{O2Ke?s9T;QEGUF/4qX-}__TM7fTZT\Dž}_P^52OES"rA 0S#Es3iAleE9 MX$Gxw'0UrIN!4gA xvzHD  # =hj4>T!]]>#!AU@+&Z?@r<I?@0xS?@F#tݩ?P6 t`  >B?\oEt# ap'EZu 0Nu;Y:|$># BJpU>#͙;? & ?5bbbz@}bAA& K&@ 2zGzt?"K@ L0"&N(bM)+TK/8Z*B<1<15 5`?CoyrigTt (c)s02009s0Mk0ci0osc0fq2b1r1aq0ic0n.s0 Al0 i8s2e0ei0v0d0b"5194M-t/H3 H7T &l>(>UhE=3Z1#E!J!@ENTMjN@1h(NَmOO e@ o)4(DFtI?@:7f .6q+ '_KD3\T+\(Kjӷjmlhjw P\DiAlesI=MXsG'W0Uzb6N!%$ 0 sFEjHD  # =hj8>T! ]]>#!AU@+&Z?@F#t?@0xSW?@w?P6 t`  >B? \Et#տ|u l4RQu?]>I$>I# JpU>͙#<?& ?9bbbz@b#AE&bQ$$D 2zG[zt#@ L4"&R(^&I$Q)+]'I"^*Bh{.M#To1o15 9`?CoyrigTtk(c)k2009kM0c0os0f21r1a0i0n.k Al0 8s2e0e0v@d0f"h1l4M-:?{3 %{7&l>(>UhE= `51#I!J49fAn^ R)X f"B!JpG?RSlOS u~!N]8-1d<"P?@:' .6q/ YVTQRXQOnğ=i n (\wTiAaeE9 MXLg'0UbiN!)$0 Lf`jUGD # hz0TdYYB%U@,b?@#@Ս??@c`q?P} Wt`{ f?t#F]tEY6<=P=d =x =f = =u )2<<PPd*dxxUu uE#U!!`?CopyrigPt (c)&02\09&0M0c.0os0f$21r0Q1a$0i0n.&0 All0 8sp2eD0ej0v0dd0"#S$#-`#d0" '?=#&#D66 2$B##0UcB3@P&0P4^ PP|H!YHA%DPK5DdK3DxK5DH!KED@K|DiAAa5IFrX7W'bD)6!4] VZUHPD  # #R>h-(JTeeM QU@f4F?@0`?pNuQ` ?u#>.R -<. =PK=dKQ -xK#|s } K2(.K<FZn#&خ7&Nt, t"t""tb#"NU2zGz?S@Q#N&A@u"b8b9,;,62 !4NF#2#"6 ]2M2b9;72iY<2Y?R#*A*A#`?Copyrwig\t hwc)a@20m@9a@MY@cW@o%sQ@f_BPArS@Aua_@iQ@n.a@_ Al@ WHUsBe@eW@v@-d@"l.]Upd驕XPQۿ~9`9(XTU_ϸTZAQeBtQ \_n_WT2ݰ?@-Ʒ꾌 ˠіTrivUqp5u ]M?@`?@#v;"ұ.+K oY\a'N%Z\nq3u@Q}6Ї'0)N77x[p EOGF؇AU;M_q߃{\Ԡ+ۜݾ4:` Һ!#S ?@.؏`r/A ?ǸBy vSul` g qMݞ@Y+9qZ U N)/` ?u[qirT@%֥x1֥X'0U "Ř6֥E0֥% UGD # hz0TdYYB%U@,b?@"@Ս??@c`q?P} Wt`{ f?t#E]tEuj )u74,bhi|1dlialiiX^hh||#R -u"iU!!`?CopyrigPt (c)&02\09&0M0c0os0f$21r0Q1a$0i0n.&0 All0 8sp2eD0e0v0dd0"#S$#I-#6# '?7)=#&#@D66 2$B##0UcB3@&04^AA| #,HA%D|K5DdK3DK5DKEDK|DiAcP5IFX7.W'bD6%!4] VZHD D# =h50>Th]]9 5AU@(b?@L??@Cmw?P6 t`  7?ti[=(_A u a)uo.dAd JU2zGzt?N@L &A@bA#zt7 5#1bO(Wb])j+j&[ "*(; "?&L ?AU$l/R%115 `?CopyrigTt (c)Q02`09Q0MI0cG0osA0fO2@1rC0|1aO0iA0n.Q0 Al0 G8s2eo0eG0v0d0"1E]4Mb-&3 &7I&l>]Uhz811U!J!Ž?@>djIׄIa? >"(E_~_ I%K9?E 5E!*dK ;;5QIWEEE@sT&p _KnA<#R@V$T2ݰ?@ʡ /6q!I6`bmMM\j=am {:e 뇥P> #? D"? 5-g?j47!B{oogr%57!ibDAAbE9 MX7'W0U~rN!$)a)5 5vIzHD # =hj0>T h]]9 qAU@'P?@@="?@EP¿P6 t`  bm&Qo?t@@L]WI,#u aiuoL> JU2zGzt;?@L ?&Aw@b}#zs q#1b](b)+I&[9#H",ɺ (H"?0& ?A$I /%9#V1V15 `?CopyrigTt (c)02`090M0c0os}0f2|1r01a0i}0n.0 Al0 8s2e0e0v0d0"O1E]S4M-9#b3 %b7&l>]Uhzt1.A!JN!DØ$j0djV1ax߃ݧ(@où}sװ?@lߵ[ 06Aq1I[Majnha_׾:e 뇥P> #? BK=o? n-?j4s!B{__Wr.5s!D8E6V7гj_|_ ?^XE.UB6VtMhNPڮs /d_mOoT ݬ\VߦyWx?RkrVo_bVh*g:n"'UaEɈ}hBN>?Bn]z/GvN7ViDAAbE9 MX+G'W0UPN!4)ae5 MaHD # =hj0>T h]]9 U@Nr"?@v->u?@_w`|ach޺?P6 t`  !a&a?t,F=۳=uk;u5 auoehAJ2zGzt?@L A@b#z1b(b!).+$.&[-m(w?& ?A$0/Q%B!!5 `?CopyrigTt (cu)02`090uM 0c 0os0If21r0@1a0i0n.0 WAl[0 8s_2Ue30e 0vq0dS0T"!E]$MŤ-# '&l>]Uhz!1 !J@ 9D djc?YZ(_N9zOMGE%_Eohp3wO"K ңHE ^&_8_WE_OqOO$Oi&DAbE9 MX7'0U*fb>!$a% f1jHD: # Uh4>T#]]9 M5AU@1b?@ 0?@(?@n?P6 JuM` ?u JYt  )t7xEA2&L_C?.> >tJU2q K?=@M &Aw@-b9(WbG)T+T&JJ[#"#?& ?A?/`) #115 {`?CopyrigTt (wc);020G09;0M30c10o%s+0f92*1r-0f1uai+0n.;0_ Al0 18Us2eY0e10v0 dy0z"!(4B#-?3 R7& bR 0K8>U# ]A]A `"1!!$?cIo <%YAJE*dK;;\%W%E@-.L[.FX5ET^gY?@߄7гL;] W-\_TB<#R?WLq#'?@Eڮs ?/6q!I'`bmMW_Ye[7 VK=F: [jr ? D"? X?ZvD?a@Boogr5;!QE 2%g@LO MLXa~#OTZiAle59 XG"'0Ujc&N!$05 .HD # =hj0>T h]]9 IAU@Du??@ e?@=?@n? 3?PJW?>t`  ^Z?t#Ǚ.YX?H"͋s?/HImG_BqhZ+u Su$A  H JpU?43f<!.&P? b3bbfz@1bAe&bq$d 2zGzt.#@LT"&r(~&i$q)(+}'i"~*#81815 `?Co yrigTt (c)o02`09o0Mg0ce0os_0fm2^1r 1am0i_0n.o0 Al0 e8s2e0ee0v0d0"11E]54M-#D3 %D7.&lUh#7 V1#Ai!J# F/?B1B  VRiAAbE9 MX G{W'0U*R2N!I$a {VZUHPuD  # #%>h 0JTpEI MU@Ž?@`?@4xS?@JBf&?HNtQ`  II?t#[  ii$ `kZNu  Miu%wj>JQ       % "&&tJNU2"K?H@Qs# &Aw@b(Wb)++I&Np}#>H1#19 ?#bbbIz| &/5R}#11`?Co0yrig\t (c)02h090M0c0oKs0f21r0Aa0i0n.0 Al!@ 8s%Be0e0v7@d@21(a4t#-}#3 746lJ#$JUp5 @3 M19 1!q(!@LlrkIt# 837^1?@!?@km?P i e=1\iOT/irv_s}i>`,of :m ,M ?? S&d2? *?b?r 4!B oo1g]r #5!>%(EQOOOO__@iڲ1_C_ D4O]_o_#RX Ph'___ #R__ (YQoSo+o=osd {oEeoooooopَm* hDV!VVi&n X"c7I!pg bf'iMjSE t%XyG|'0UŢŞN!O4i |UGD # hz0TdYYBU@R-?@c1*?@=?@(kݫ?P} t`  87?t#_)TeΦu ]ukvĝk!L"&UUU&I&3 U!!`?CopyrigPt(c)2\09M c o%s f"!r 1ua i n._ Al00 (Us42e0e vF0d(0'S$#-#l# '?Rk=#ǒ 2$ZB##0U'B3@&F0PYk} #HA%DKb5DK3DkK5DKED!GiA_B5|IDFX7yW'&Dŭ61YA yVZHD # =hj4>T ]]>#AU@=?@!-??@$rq?P6 t`z  ?5t# rXѮu)Nu;):O]ע0&> # " "+"+"+"+" $+"T-J[U7 ??& bA@ 2b4-#2zGzt#+@ Li68!6 ?}; 72U!:B#AA5 5`?CopyrigTt(c)20F@9M2@c.0@os*@f8B)Ar,@eAa8@i*@n. Al@ 0HsBeX@ej0@v@dx@)21"DM-,;?C G& l>]UhzAE!A#!ְ1J`#@l?@َm?NT,dKj&b&R&M/8T>f:?x6@8?@ߛ} _6q0YE*]\LThנKjfGD hj iU3ULeVP۶W?@bs)h5oWKoWo;Kod}l$ro`nEBYFv?@D?%먪?@@3gZR^{|\6?vodmP}l>MBe 9 N 1iS? 1?grl#51:O"4gBa@Sq(UE^@A N?@CJ?m Y&v2rA @3ijD&}laqOz o?#WHZ'Qu{r>@\J"ۭ?@ yT?@ (U" +Web0)\ϼ(Pfodm}nv}l?V5(?q$Ix[cN#W{#iA eE9 MX''W0UdN! 0 /HD # =hj0T h]]9 #]AU@~M)M?@۵+?@)?@4_=w?P6 u` ?u#t  3zM%t3ws%.<%H._'B> #PJU2N贁Nw[?@ʐL+&A@wbu](i+bk)%+&p%#4">9"<5!?& ?M#bbb͓z$ p&"/%T%#L1L15 w`?Co yrigTt (c)02`090M{0cy0oKss0f2r1r 1a0is0n.0 Al0 y8s2e0ey0v0d0"E1E(]I4M-%#X3 X7&l*>(UhE j1#$Ac!J`%#@J԰ί9?䟥!foAnBM(TfH?@3A,?@A') ?@:?PT% ibL6VLD5E+v;*AיH: 8snP%$? k?Q? \?4_!__Wr5 _! R,U3OC@bD}?@,en?P)Oy޾ ?pV?c"rA b$cZ-,u`κ\DT+ V ?8<iA eI=MX!GG'W0UxrFN!$ a FCzHD # =hj4>T ]]>#IAU@+&Z?@A3?@0xS?@F#tݩ?P6 t`  >B?\oEt# ŖoZu 0Nu;Y:|8>$# JpU>##<?2& ?5bbbz@}b#Ai&'bu$ 'h 2N贁N[J2$@ LX"&"v(&m$ :;'m"*B#Bd1d15 5`?Co yrigTt (c)0W20090M0]c0os0f2R1r 1a0i0n.0 AUl0 8s2e0e0v0d0@"]1"a4MY-/p3 p72&Rl>0>Uhh= Ђ1#!m!J`#&@ENTMj.h1%,RM(!JَmO_ e@ o)4(DFtI?@:7f .6qS w_KT\T+\(Kjӷjm hjw -`\TPQE\Up癙t_o u~!ՠXEOd<"PP'X_Pm"rA @3sjQ1lğO=GoYniA eE9 MX'w'0UUr^N!M$|A vzHD # =hj4>T ]]>#IAU@+&Z?@ ~*?@AxS?@mݩ?P6 t`  >B?\oEt# 6ΠZu 0Nu;Y~:#&}>0e8YAY Y PJU2N贁Nwk?@ eL&A( 5bM(b[)h+h+$h&#[-M$#?& ?b$Z*'*B#O1O15 5`?CopyrigTt (c)02U0090M~0c|0osv0f2u1rx01a0iv0n}.0 Al0U |8s2e0e|05v0d0"H1P"L4M-/[3 [7&l>0>Uhh= m1#!S!J`#*&@[َm_?NTMjC1cYK RVM(D1FʞB.• .W6q0IKTLT_cKjR hj p= (*!]pǙ{O2Kes9T;QEGUFڈ4qX-}__TM7fTZT\ODž}_P^b52OES"rAQ 0S#Es3iA eE9 MX$Gxw'0UUrIN!4gA xvzHD # =hj4>T ]]>#!AU@+&Z?@r<I?@0xS?@F#tݩ?P6 t`  >B?\oEt# ap'EZu 0Nu;Y:|$!># BJpU>#͙;? & ?5bbbz@}bAA&IK&@ 2zGzt?"K@ L0"&N(bM)+TK/8Z*B<1<15 5`?CoyrigTt (c)s02009s0Mk0ci0osc0fq2b1r1aq0ic0n.s0 Al0 i8s2e0ei0v0d0b"5194M-t/H3 H7T &l>(>UhE=3Z1#E!J!@ENTMjN@1h(NَmOO e@ o)4(DFtI?@:7f .6q+ '_KD3\T+\(Kjӷjm hjw P\DiA esI=MXsG'0Uzb6N(! 0 sFEjHD # =hj8>T! ]]>#!AU@+&Z?@F#t?@0xSW?@w?P6 t`  >B? \Et#տ|u l4RQu?]>I$">I# JpU>͙#<?& ?9bbbz@b#AE&bQ$$D 2zG[zt#@ L4"&R(^&I$Q)+]'I"^*Bh{.M#To1o15 9`?CoyrigTtk(c)k2009kM0c0os0f21r1a0i0n.k Al0 8s2e0e0v@d0f"h1l4M-:?{3 %{7&l>(>UhE= `51#I!J49fAn^ R)X f"B!JpG?RSlOS u~!N]8-1d<"P?@:' .6q/ YVTQRXQOnğ= l n (\wTiA eE9 MXLg'0UbiN!)$0 Lf`jUGD # hz0TdYYB%U@n?@c`?@,bػȻP} jt` o?t#uE]tZu M)u7#$_fh%i|&if'i(i̸)i*TiX^hUh||UTf"%-U!!`?CopyrigPtu c 2\W09&0M0c0os0f$21r0Q1a$0i0n}.&0 All0U 8sp2eD0e05v0dd0"#HS$#-## 'I?7=#&#D66 2b$B^0UcBM3@&T04^AA| #hHA%D|K5DK3DK5DKED@K|DiAAa5IFrX7W'bD)6!4] VZHD# # =hj0>T h]]9 5AU@(b?@L??@C?ִm?P6 jt`  o?ti[=(A Vu auo.$&> *ԮJU2zGzt?@L#&A@bA#z7 5#1bO(b])j+$j&[ "*(w "?& ?AU$l/%B115 `?CopyrigTt (cu)Q02`09Q0uMI0cG0osA0IfO2@1rC0|1aO0iA0n.Q0 WAl0 G8s2Ueo0eG0v0d0"1E]4MŤ-&3 &7&l>]Uhz811U!J!Ž?@昫>djIIa? >"(E_~_ I%K9E 5E!*dK ;;5QIWEEE@sT&p _KnSA?<#R@V$T2ݰ?@ʡ /6q!I6`ObmMM\j=am {:e 뇿P> #? D"? 5-gg?j47!B{oogrK57!ibDAbE9 MX7'0U~rN!R$a)5 5vIzHD# # =hj0>T h]]9 qAU@'P?@@="?@EP¿P6 t`  bm&Qo?t@@L]WI,#u aiuoL%> JU2zGzt;?@L?&A@b}#zs q#1b(b)+$&[9#H",ɺ (wH"?& ?A$ /%9#BV1V15 `?CopyrigTt (cu)02`090uM0c0os}0If2|1r01a0i}0n.0 WAl0 8s2Ue0e0v0d0"O1E]S4MŤ-9#b3 b7&l>]Uhzt1.A!JN!DØ$j0djV1ax߃S(@où}sװ?@l[ 06q1I[Majnha_:e P> #? BK=o? n-?j4Bs!B{__Wr5s!D8E6V7гj_|_ ^XE.UB6VtMhNPڮs} /d_mOoT ݬ\VyWxRkrVo_bVh*g:n"'UaEɈ庾hBN>?Bn]zGvN7ViDAbE9 MX+G'0UPN!4ae5 MaHD# # =hj0>T h]]9 U@Nr"?@v->u?@_w`|ach޺?P6 t`  !a&a?t,F=۳=uk;u5 auom&>J2zGzt?@LA@b#zt1b(Wb!).+.&[-m(;?&L ?A$0/RQ%!!5 `?CopyrigTt (c)02`090M 0c 0os0f21r0@1a0i0n.0 Al[0 8s_2e30e 0vq0dS0T"!E]$Mb-# 'I&l>]Uhz!1!J@ 9ե djcYZ(_N9zOMGE%_Eohp3wO"K ңHE ^&_8_WE_OqOOOi&DAbE9 MX7}'0Ufb>!$a% f1jHD:# # Uh4>T#]]9 M5AU@1b?@ 0?@(?@n?P6 JuM` ?u JYt  )t7xEA2&L_C?.'> >tJU2q K?=@MJ&A@-b9(+bG)T+T&J[#"#a?& ?AH?/`)#115 {`?CopyrigTt (c);020G09;0M30c10os+0f92*1r-0f1ai+0n.;0 Al0 18s2eY0e10v0dy0z"!4B#e-?3 7)& b 0K8>U# ]A]A "1!ъ!$cIo <%OYAJE*dK;;\%W%E@-.L[.FX5ET^gY?@7гL;] W-\TB<#R?WLq#'?@Eڮs /6q!I'?`bmMW_Ye[7 VK=F: [jr ? D"? XZvD?a@Boog]r5;!QE _2%g@LO MLΈXa~#OTZiAle59 XG|"'0Uc&N!$05 .HD# # =hj0>T h]]9 IAU@Du??@ e?@=?@n? 3?PJW?>t`  ^Z?t#Ǚ.YX?H"͋s?/HImG_BqhZ+u u$(>  J JpU?43f<!.&P?b3bbfz@1bAe&bq$d 2zGzt.#@LT"&r(~&i$q)(+}'i"~*#81815 `?Co yrigTt (c)o02`09o0Mg0ce0os_0fm2^1r 1am0i_0n.o0 Al0 e8s2e0ee0v0d0"11E]54M-#D3 %D7.&lUh#7 V1#Ai!J# F/?B1B  VRiAAbE9 MX G{W'0U*R2N!I$a {VZUHPuD # # #%>h 0JTpEI MU@Ž?@`?@4xS?@JBf&?HNtQ`  II?t#[  ii$ `kZNu  Miu%wj>)JQ       % "&&tJNU2"K?H@Qs#N&A@b(b)++&Np}#> H1#19 ?#bbbz| &/5R }#11`?Co0yrig\t (c)02h090M0c0o%s0f21r0Aua0i0n.0_ Al!@ 8Us%Be0e0v7@ d@21a4t#-}#3K 746lJ #$JUp5 3 M19 1!aq(!@Llrkt# 837^1?@!?@km?P i ?e=1\iOT/irvs}i>`,of :m ,M ?? S&d2? *b?r4!B oo1gr. #5!>%(EQOOOO__@i1_C_ D4և]_o_#RX Ph'X___ #R__ (YQoSo+o=osd {oEeoooooopَm* hDV!VVi&n X"c7I!Hpg bf'iMjSE t%XyG|'0UUŢŞN!O4i |UGD# # hz0TdYYBU@R-?@c1*?@=?@(kݫ?P} t`  87?t#_)TeΦu ]ukv*+,-̝./D]_&UUU&I&3 U!!`?CopyrigPt _(c) 2\W09 M c os f"!rT 1a i n] Al00 (Us42e0e vF0d'S$# # '?k=# 66 2$B ְ0U'B3@&F0Yk} #HA%DKb5DK3DK5D@KEDYAGiAZG5|IDFrX7yW'&D)ŭ6!4YA yVZHD* # =hj4>T!]]>#AU@=?@!-??@$rq?P6 t`z  ?5t# rXѮu)Nu;):O]ע0+&> # " "+"+"+"+" $+"T-J[U7 ??& bA@ 2b4-#2zGzt#+@ Li68!6 ?}; 72U!:B#AA5 5`?CopyrigTt(c)20F@9M2@c.0@os*@f8B)Ar,@eAa8@i*@n. Al@ 0HsBeX@ej0@v@dx@)21"DM-,;?C G& l>]UhzAE!A#!ְ1J`#@l?@َm?NT,dKj&b&R&M/8T>f:?x6@8?@ߛ} _6q0YE*]\LThנKjfGD&Qhj iU3ULeVP۶W?@bs)h5oWKoWo;Kod}l$ro`nEBYFv?@D?%먪?@@3gZR^{|\6?vodmP}l>MBe 9 N 1iS? 1?grl#51:O"4gBa@Sq(UE^@A N?@CJ?m Y&v2rA @3ijD&}laqOz o?#WHZ'Qu{r>@\J"ۭ?@ yT?@ (U" +Web0)\ϼ(Pfodm}nv}l?V5(?q$Ix[cN#W{#iA&QeE9 MX''W0UdN! 0 /HD* # =hj0T h]]9 #]AU@~M)M?@۵+?@)?@4_=w?P6 u` ?u#t  3zM%t3ws%.<%H._'B,> #PJU2N贁Nw[?@ʐL+&A@wbu](i+bk)%+&p%#4">9"<5!?& ?M#bbb͓z$ p&"/%T%#L1L15 w`?Co yrigTt (c)02`090M{0cy0oKss0f2r1r 1a0is0n.0 Al0 y8s2e0ey0v0d0"E1E(]I4M-%#X3 X7&l*>(UhE j1#$Ac!J`%#@J԰ί9?䟥!foAnBM(TfH?@3A,?@A') ?@:?PT% ibL6VLD5E+v;*AיH: 8snP%$? k?Q? \?4_!__Wr5 _! R,U3OC@bD}?@,en?P)Oy޾ ?pV?c"rA b$cZ-,u`κ\DT+V ?8<iAaeI=MX!GG'W0UxrFN!$ a FCzHD* # =hj4>T!]]>#IAU@+&Z?@A3?@0xS?@F#tݩ?P6 t`  >B?\oEt# ŖoZu 0Nu;Y:|8->$# JpU>##<?2& ?5bbbz@}b#Ai&'bu$ 'h 2N贁N[J2$@ LX"&"v(&m$ :;'m"*B#Bd1d15 5`?Co yrigTt (c)0W20090M0]c0os0f2R1r 1a0i0n.0 AUl0 8s2e0e0v0d0@"]1"a4MX,p3 p72&Rl>0>Uhh= Ђ1#!m!J`#&@ENTMj.h1%,RM(!JَmO_ e@ o)4(DFtI?@:7f .6qS w_KT\T+\(Kjӷjmlhjw -`\TPQE\Up癙t_o u~!ՠXEOd<"PP'X_Pm"rA @3sjQ1lğO=GoYniAleE9 MX'w'0UUr^N!M$|A vzHD* # =hj4>T!]]>#IAU@+&Z?@ ~*?@AxS?@mݩ?P6 t`  >B?\oEt# 6ΠZu 0Nu;Y~:#&}>0m8.>  PJU2N贁Nwk?@ eL&A( 5bM(b[)h+h+$h&#[-M$#?& ?b$Z*'*B#O1O15 5`?CopyrigTt (c)02U0090M~0c|0osv0f2u1rx01a0iv0n}.0 Al0U |8s2e0e|05v0d0"H1P"L4M-/[3 [7&l>0>Uhh= m1#!S!J`#*&@[َm_?NTMjC1cK RVM(D1FʞB.• .W6q0IKTLT_cKjRlhj p= (*!]pǙ{O2Kes9T;QEGUFڈ4qX-}__TM7fTZT\ODž}_P^b52OES"rAQ 0S#Es3iAleE9 MX$Gxw'0UUrIN!4gA xvzHD* # =hj4>T!]]>#!AU@+&Z?@r<I?@0xS?@F#tݩ?P6 t`  >B?\oEt# ap'EZu 0Nu;Y:|$/># BJpU>#͙;? & ?5bbbz@}bAA&IK&@ 2zGzt?"K@ L0"&N(bM)+TK/8Z*B<1<15 5`?CoyrigTt (c)s02009s0Mk0ci0osc0fq2b1r1aq0ic0n.s0 Al0 i8s2e0ei0v0d0b"5194M-t/H3 H7T &l>(>UhE=3Z1#E!J!@ENTMjN@1h(NَmOO e@ o)4(DFtI?@:7f .6q+ '_KD3\T+\(Kjӷjmlhjw P\DiAlesI=MXsG'W0Uzb6N!%$ 0 sFEjHD* # =hj8>T! ]]>#!AU@+&Z?@F#t?@0xSW?@w?P6 t`  >B? \Et#տ|u l4RQu?]>I$0>I# JpU>͙#<?& ?9bbbz@b#AE&bQ$$D 2zG[zt#@ L4"&R(^&I$Q)+]'I"^*Bh{.M#To1o15 9`?CoyrigTtk(c)k2009kM0c0os0f21r1a0i0n.k Al0 8s2e0e0v@d0f"h1l4M-:?{3 %{7&l>(>UhE= `51#I!J49fAn^ R)X f"B!JpG?RSlOS u~!N]8-1d<"P?@:' .6q/ YVTQRXQOnğ=i n (\wTiAaeE9 MXLg'0UbiN!)$ Lf`jUGD # hz0TdYYB%U@n?@T h]]9 5AU@(b?@L??@C?ִm?P6 jt`  o?ti[=(A Vu auo.2&> *ԮJU2zGzt?@L#&A@bA#z7 5#1bO(b])j+$j&[ "*(w "?& ?AU$l/%B115 `?CopyrigTt (cu)Q02`09Q0uMI0cG0osA0IfO2@1rC0|1aO0iA0n.Q0 WAl0 G8s2Ueo0eG0v0d0"1E]4MŤ-&3 &7&l>]Uhz811U!J!Ž?@昫>djIIa? >"(E_~_ I%K9E 5E!*dK ;;5QIWEEE@sT&p _KnSA?<#R@V$T2ݰ?@ʡ /6q!I6`ObmMM\j=am {:e 뇿P> #? D"? 5-gg?j47!B{oogrK57!ibDAbE9 MX7'0U~rN!R$a)5 5vIzHD1 # =hj0>T h]]9 qAU@'P?@@="?@EP¿P6 t`  bm&Qo?t@@L]WI,#u aiuoL3> JU2zGzt;?@L?&A@b}#zs q#1b(b)+$&[9#H",ɺ (wH"?& ?A$ /%9#BV1V15 `?CopyrigTt (cu)02`090uM0c0os}0If2|1r01a0i}0n.0 WAl0 8s2Ue0e0v0d0"O1E]S4MŤ-9#b3 b7&l>]Uhzt1.A!JN!DØ$j0djV1ax߃S(@où}sװ?@l[ 06q1I[Majnha_:e P> #? BK=o? n-?j4Bs!B{__Wr5s!D8E6V7гj_|_ ^XE.UB6VtMhNPڮs} /d_mOoT ݬ\VyWxRkrVo_bVh*g:n"'UaEɈ庾hBN>?Bn]zGvN7ViDAbE9 MX+G'0UPN!4ae5 MaHD1 # =hj0>T h]]9 U@Nr"?@v->u?@_w`|ach޺?P6 t`  !a&a?t,F=۳=uk;u5 auom4>J2zGzt?@LA@b#zt1b(Wb!).+.&[-m(;?&L ?A$0/RQ%!!5 `?CopyrigTt (c)02`090M 0c 0os0f21r0@1a0i0n.0 Al[0 8s_2e30e 0vq0dS0T"!E]$Mb-# 'I&l>]Uhz!1!J@ 9ե djcYZ(_N9zOMGE%_Eohp3wO"K ңHE ^&_8_WE_OqOOOi&DAbE9 MX7}'0Ufb>!$a% f1jHD:1 # Uh4>T#]]9 M5AU@1b?@ 0?@(?@n?P6 JuM` ?u JYt  )t7xEA2&L_C?.5> >tJU2q K?=@MJ&A@-b9(+bG)T+T&J[#"#a?& ?AH?/`)#115 {`?CopyrigTt (c);020G09;0M30c10os+0f92*1r-0f1ai+0n.;0 Al0 18s2eY0e10v0dy0z"!4B#e-?3 7)& b 0K8>U# ]A]A "1!ъ!$cIo <%OYAJE*dK;;\%W%E@-.L[.FX5ET^gY?@7гL;] W-\TB<#R?WLq#'?@Eڮs /6q!I'?`bmMW_Ye[7 VK=F: [jr ? D"? XZvD?a@Boogr@QE 2%g@LO MLXa~#OTZiAle59 XG"'0Ujc&N!$05 .HD1 # =hj0>T h]]9 IAU@Du??@ e?@=?@n? 3?PJW?>t`  ^Z?t#Ǚ.YX?H"͋s?/HImG_BqhZ+u u$6>  J JpU?43f<!.&P?b3bbfz@1bAe&bq$d 2zGzt.#@LT"&r(~&i$q)(+}'i"~*#81815 `?Co yrigTt (c)o02`09o0Mg0ce0os_0fm2^1r 1am0i_0n.o0 Al0 e8s2e0ee0v0d0"11E]54M-#D3 %D7.&lUh#7 V1#Ai!J# F/?B1B  VRiAAbE9 MX G{W'0U*R2N!I$a {VZUHPuD 1 # #%>h 0JTpEI MU@Ž?@`?@4xS?@JBf&?HNtQ`  II?t#[  ii$ `kZNu  Miu%wj>7JQ       % "&&tJNU2"K?H@Qs#N&A@b(b)++&Np}#> H1#19 ?#bbbz| &/5R }#11`?Co0yrig\t (c)02h090M0c0o%s0f21r0Aua0i0n.0_ Al!@ 8Us%Be0e0v7@ d@21a4t#-}#3K 746lJ #$JUp5 3 M19 1!aq(!@Llrkt# 837^1?@!?@km?P i ?e=1\iOT/irvs}i>`,of :m ,M ?? S&d2? *b?r4!B oo1gr. #5!>%(EQOOOO__@i1_C_ D4և]_o_#RX Ph'X___ #R__ (YQoSo+o=osd {oEeoooooopَm* hDV!VVi&n X"c7I!Hpg bf'iMjSE t%XyG|'0UUŢŞN!O4i |UGD1 # hz0TdYYBU@R-?@c1*?@=?@(kݫ?P} t`  87?t#_)TeΦu ]ukv89:;̝<=L>&UUU&I&3 U!!`?CopyrigPt _(c) 2\]0 M c os f"!r 1a i n}. Al00U (s42e0e uvF0d(0'HS$#-## ' ?kǒ 2j$B##0U'BM3@&@F0Yk} #HA%DKb5DK3DK5DKED$!GiAZG5(|IDFX7yW'&Dŭ6!4YA yVZHD8 # =hj4>T!]]>#AU@=?@!-??@$rq?P6 t`z  ?5t# rXѮu)Nu;):O]ע09&> # " "+"+"+"+" $+"T-J[U7 ??& bA@ 2b4-#2zGzt#+@ Li68!6 ?}; 72U!:B#AA5 5`?CopyrigTt(c)20F@9M2@c.0@os*@f8B)Ar,@eAa8@i*@n. Al@ 0HsBeX@ej0@v@dx@)21"DM-,;?C G& l>]UhzAE!A#!ְ1J`#@l?@َm?NT,dKj&b&R&M/8T>f:?x6@8?@ߛ} _6q0YE*]\LThנKjfGD&Qhj iU3ULeVP۶W?@bs)h5oWKoWo;Kod}l$ro`nEBYFv?@D?%먪?@@3gZR^{|\6?vodmP}l>MBe 9 N 1iS? 1?grl#51:O"4gBa@Sq(UE^@A N?@CJ?m Y&v2rA @3ijD&}laqOz o?#WHZ'Qu{r>@\J"ۭ?@ yT?@ (U" +Web0)\ϼ(Pfodm}nv}l?V5(?q$Ix[cN#W{#iA&QeE9 MX''W0UdN! 0 /HD8 # =hj0T h]]9 #]AU@~M)M?@۵+?@)?@4_=w?P6 u` ?u#t  3zM%t3ws%.<%H._'B:> #PJU2N贁Nw[?@ʐL+&A@wbu](i+bk)%+&p%#4">9"<5!?& ?M#bbb͓z$ p&"/%T%#L1L15 w`?Co yrigTt (c)02`090M{0cy0oKss0f2r1r 1a0is0n.0 Al0 y8s2e0ey0v0d0"E1E(]I4M-%#X3 X7&l*>(UhE j1#$Ac!J`%#@J԰ί9?䟥!foAnBM(TfH?@3A,?@A') ?@:?PT% ibL6VLD5E+v;*AH 8snP%$? k?Q? \?4_!__Wr5 _! R,U3OC@bD}?@,en?P)Oy޾ ?pV?c"rA b$cZ-,u`κ\DT+V ?8<iAaeI=MX!GG'W0UxrFN!$ a FCzHD8 # =hj4>T!]]>#IAU@+&Z?@A3?@0xS?@F#tݩ?P6 t`  >B?\oEt# ŖoZu 0Nu;Y:| ;>$# JpU>##<?2& ?5bbbz@}b#Ai&'bu$ 'h 2N贁N[J2$@ LX"&"v(&m$ :;'m"*B#Bd1d15 5`?Co yrigTt (c)0W20090M0]c0os0f2R1r 1a0i0n.0 AUl0 8s2e0e0v0d0@"]1"a4MY-/p3 p72&Rl>0>Uhh= Ђ1#!m!J`#&@ENTMj.h1%,RM(!JَmO_ e@ o)4(DFtI?@:7f .6qS w_KT\T+\(Kjӷjmlhjw -`\TPQE\Up癙t_o u~!ՠXEOd<"PP'X_Pm"rA @3sjQ1lğO=GoYniAleE9 MX'w'0UUr^N!M$|A vzHD8 # =hj4>T!]]>#IAU@+&Z?@ ~*?@AxS?@mݩ?P6 t`  >B?\oEt# 6ΠZu 0Nu;Y~:#&}>0n <>  PJU2N贁Nwk?@ eL&A( 5bM(b[)h+h+$h&#[-M$#?& ?b$Z*'*B#O1O15 5`?CopyrigTt (c)02U0090M~0c|0osv0f2u1rx01a0iv0n}.0 Al0U |8s2e0e|05v0d0"H1P"L4M-/[3 [7&l>0>Uhh= m1#!S!J`#*&@[َm_?NTMjC1cK RVM(D1FʞB.• .W6q0IKTLT_cKjRlhj p= (*!]pǙ{O2Kes9T;QEGUFڈ4qX-}__TM7fTZT\ODž}_P^b52OES"rAQ 0S#Es3iAleE9 MX$Gxw'0UUrIN!4gA xvzHD8 # =hj4>T!]]>#!AU@+&Z?@r<I?@0xS?@F#tݩ?P6 t`  >B?\oEt# ap'EZu 0Nu;Y:|$=># BJpU>#͙;? & ?5bbbz@}bAA&IK&@ 2zGzt?"K@ L0"&N(bM)+TK/8Z*B<1<15 5`?CoyrigTt (c)s02009s0Mk0ci0osc0fq2b1r1aq0ic0n.s0 Al0 i8s2e0ei0v0d0b"5194M-t/H3 H7T &l>(>UhE=3Z1#E!J!@ENTMjN@1h(NَmOO e@ o)4(DFtI?@:7f .6q+ '_KD3\T+\(Kjӷjmlhjw P\DiAlesI=MXsG'W0Uzb6N!%$ 0 sFEjHD8 # =h TB ]]>T#!AU@+&Z?@F#t?@0xS?@?P6 ։t`  >B? \E7t#| u l4Ru?]>jI$>>#  ՆJpU>͙#<?& ?9bbbz@b#;AE&bQ$ID 2zGzt#@ $L4"&R(^&I$EQ)+]'I"^*aBh{.M#o1o15 9`?CoyrigTtk(wc)k2009kM0c0o%s0f21r1ua0i0n.k_ Al0 8Us2e0e0v@ d0f"h1(l4M-:?{3K {7&l>*(>UhE= `51#-I!J49An^ RRX f"B!Jp?RSlOS u~! N]8-1d<"P?@:' .6q/ YVTQRXQOnğ=i n (\wTiAaeE(9 MXLg_'0UbiN-!)$0 Lf`j_Hf:L;s O}N#N۱?FX# ߥ"OB H Dz~d?ZE@{+g,IVsG8;՟afH;=x=====}H=WE֛==11=b,>c> >4>Lh9=C4=}>s>$>o>x>>> FH>(>\29PKK(SK'UKL(XK"5XZK%&M\Kr)h^K,'L/~(L3 )L68L:hLp=LA%LJD78L{IIL|Mz)8L8QLT3L X)LZ[| '0N^)82Na)4Ne )6Nh)8Nl9:Neo.9h>NsX@N@vR9CNq{d9HFNrHN-9HKN9xMN%AUFD  h(^TYYBHUFjZ?F~??x<F BPG(?P } Xč ]B66]  TTUTTTT99d9bȅBU?? /&-& ?B#@L&_d2?r-Ƀ(\.ҕ(s.sU!&/DJ) f% G 04%eB`-r<0al,tim<0,s<0rvZ2,coR0pSuN0a3dP0sN0UrP0bn4dL0n<0wtwh0rk195^| (SG& iz ?!3E?? ? DuDGGD wp{Dtp pqwtDD@pqwqDwqWt pqpq ppw)wwwqd^wqpuwwwww`Drag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aabjZֿ~??cN׿ mF1??V↑T*J??@ ?UG DF P# h @T(PYY# [U@jZ?@~?tP} u` ?u#2>D>HX DHlHYHH HE .E9O؍>DDXXllRu'9j &",' !)2&5qq/4 F?"'4b0{[`+:#2J6Q_9$"3&9<"L1"e ^!'>_@ÿ@qh@?@`B?BgD]F0#B-u)@`-1Bu@r#CC5GAB2C9uv`u `"[ۢ b!-u`2/3Qy1y7B`?CopyrigPt0(c])020P90uMPcPosPIfRQrPQaPiPn 0AUl` XsbePePv&`d/`VPs_SBNcPm!#5>P8616a񁧙y1&3db4&5=B+h8=/3z6&3@d66 2&4#/30U!r3(]ge<^1E U#&5m Hq&5twV5t{3t{FEt{t{y {et !{|tYwmAdPaуIOB!T !:a:a&20#V2Hdada32=FB3J1125db6$q 7~C|hhE)*^Q_`CQCQ"A11=B;8ARrSqea> e1A+E4FAނX !#8dT7`XQy`]r` MPWnuPaPt%ar6aYQ` UE]0uPpU`e`tee^V5Qn],1PRd M`uU`b¯Ԧ30! PPr#5GCHhz]daD&bQe^\޿𿏫AP)aB`Ҩ75^gyϏ% S*biPaϷZeTϏLPcX&ϫk5N`ߪrBDl2`i`g̨)@ߑRPoʂѩ|(Z\@E pKD`YĖUSPaPePlP6?ЪXp9` ATP7`?>` /aZ4\nJSbI`W`QmU`u`QW&Zʒ=NwRka8<.2` Ҩ גc[mI` ad2`%c& dϐnĝs   Nx7I(鑙mDa9tV/a I͢+a Nf󨑙 R `Qa/ / 3I/ WM`C//+ tP I`? %3?E? 2Ă? 2Nv??;H"d2QCxk3` W ڧ%?NV1OCOC aOO#ޅO`M&`mRO_ӧYNp+_=_Q;OUq1y_Qi_${_Mqt!Tw*̩fo*SU@jZ?@ű܁?/v/vUpSp2u8p` ?bup`  B=ݩ`M,{t!Wp$53m-ׁ<3otm!#Qbq`׏ݥBT!).ot!xAfg>pÿ$XbUrq vU:֒rrrvvvrse"`Rozk10 eCZbb ccbr@O":tblcuP`TfnM}1o0BzW}_obW1W2\/b^@aaaaFҴ_tAaY6*P`u$`Rb`ݡ` a|.x^€ݥ5_b]&bЂF3s͵NSY`H\rV@4/eD8S^D&@SDՐUFZk,@rb4,>b}aaYV nw` %P& S.1a`NEWORKp2%H P!RURISϑQԑR!i| o2ohX|AS'0U?! 0oHD # =hj0>T h]]9  5AU@jZ?@͂T??@x?SF?P6 jt`  o?tk[>(A Vu aSuo.]&A]  *ԮJU2zGzt?@L#&A@bA#z7 5#1bO(b])j+$j&[ "*(w "?& ?AU$l/%B115 `?CopyrigTt (cu)Q02`09Q0uMI0cG0osA0IfO2@1rC0|1aO0iA0n.Q0 WAl0 G8s2Ueo0eG0v0d0"1E]4MŤ-&3 &7&l>]Uhz811U!J!u6?@+\.>djIIa? >"(EǑ I%K9E 5EU . K ;;5QIWEEE@ _KnSA?8@VBu?@DR> ?Nk"\6`ObmMM\j=am {:e 뇿P> #? D"? 5-gg?j47!B{oogrK57!ibDAbE9 MX7'0U~rN!R$a)5 5vIzHD # =hj0>T h]]9  qAU@;?@I5K?@xEL?6ѿP6 t`  bm&Qo?t@@L]WI,#u aiuoL> JU2zGzt;?@L?&A@b}#zs q#1b(b)+$&[9#H",ɺ (wH"?& ?A$ /%9#BV1V15 `?CopyrigTt (cu)02`090uM0c0os}0If2|1r01a0i}0n.0 WAl0 8s2Ue0e0v0d0"O1E]S4MŤ-9#b3 b7&l>]Uhzt1.A!JN!m.%-+0djV1ax߃S(@J-&?@ mO"> ?Nk"L[Majnha_:e P> #? BK=o? n-?j4Bs!B{__Wr5s!D8E6V 6?wj_|_ ^XE.U6Vz T6 @ d_mOoT ݬ\VߦyWx?RkrVo_bVh*g:n"'UaEjz}36>CN>?Bn]z/GvN7ViDAAbE9 MX+G'W0UPN!4)ae5 MaHD # =hj0>T h]]9  U@jpiH?@^?@$?@]F?P6 t`  !a&ao?t,F=۳=u;u auo>J2zGzwt?@ʐLAw@b#z1b](b!).+I.&[-m(?0& ?A$I0/Q%!!5 `?CopyrigTt (c)02`090M 0c 0os0f21r0@1a0i0n.0 Al[0 8s_2e30e 0vq0dS0T"!E]$M-# %'&l>]Uhz!1!J@% djc~YZ(_N9zOMGE%_EH$SwO"K ңHE ^&_8_WE_OqOHOOi&DAbPE9 MX7'0UUfb>!$a % f1jHD # Uh4>T#]]9 M5AU@jZ?@L|+?@?@({~?P6 JuM` ?u JYt )t7zEA2&L_D?. > >tJU2q K?=@MJ&A@-b9(+bG)T+T&J[#"#a?& ?AH?/`)#115 {`?CopyrigTt (c);020G09;0M30c10os+0f92*1r-0f1ai+0n.;0 Al0 18s2eY0e10v0dy0z"!4B#e-?3 7)& b 0K8>U# ]A]A "1!ъ!PzQ <%OYAJEU . K;;\%W%E@($L[.FX5Eai%?@ 6?wL;] W-\TB⤲8?W&SA?@ @ ?Nk"L'`bmMW_Ye[7 VK=F: [jr ? D"? X?ZvD?a@Boogr5;!QEؿx]SiLO MLXa~WOTZiAle59 XG"'0Ujc&N!$05 .HD # =hj0>T h]]9  IAU@K?@OgVb?@Y%?@wᳬ?PJW?>t`  ^Z?t#ə.E @x?r?/{4܂ G _Z+u u$ >  J JpU?43f<!.&P?b3bbfz@1bAe&bq$d 2zGzt.#@LT"&r(~&i$q)(+}'i"~*#81815 `?Co yrigTt (c)o02`09o0Mg0ce0os_0fm2^1r 1am0i_0n.o0 Al0 e8s2e0ee0v0d0"11E]54M-#D3 %D7.&lUh#7 V1#Ai!J# F/?B1B  VRiAAbE9 MX G{W'0U*R2N!I$a {VZUHPD  # #>h0JTpERI MU@u6?@jc{g&?@%r`5B?@m_F:Is?HNtQ`  II?t#]  _ii$!`kNu  iu%wj>M JQ T       "@&&JNU2"?H@Qs#N&A@b(bU)++&RNp}#>H1#19 ?#bbbz| R&/5R}#11`?Co0yrig\t (c)02h090M0c0os0f21r0Aa0i0n.0 Al!@ 8s%Be0e0v7@d@21a4t#-}#3 %746lJ#$JUp5 3 M19 1!q(!@nElrkRt# 8$kcD?@숒@)?@P?P"EkU |1\iOT/irvs}i>`_,of :m ,M ?? S&d2? *b?r4B!B oo1gr #5!>%(EQOOOO__@Ac1_C_ D4ևS]_o_yRX+{_,__ #R__ (YQoSo+o=osd {oEeoooooo@yUy{* hDV!VV(I X"c7I!pg bf'iMjSE t%XyG|'0UŢŞN!O4i |UGD # hz0TdYYBU@(%)?@xg^?@0߯H?@s7Uݹ?P} t` 87?t#_)TeΦu ]ukv  ̝L&UUU&I&3 U!!`?CopyrigPt _(c) 2\W09 M c os f"!r 1a i n}. Al00U (s42e0e uvF0d(0'HS$#-## 'I?k=#ǒ 2j$B##0U'BM3@&@F0Yk} #HA%DKb5DK3DK5DKED$!GiAZG5(|IDFX7yW'&Dŭ6!4YA yVZHD  # =hj4>T!]]>#AU@0߯H?@z)e??@˞9q?P6 t`z  ?5t# rXѮu)Nu;):O]ע0 &> # " "+"+"+"+" $+"T-J[U7 ??& bA@ 2b4-#2zGzt#+@ Li68!6 ?}; 72U!:B#AA5 5`?CopyrigTt(c)20F@9M2@c.0@os*@f8B)Ar,@eAa8@i*@n. Al@ 0HsBeX@ej0@v@dx@)21"DM-,;?C G& l>]UhzAE!A#!ְ1J`#@{&pz?@Uy{?NT,dKj&b&R&M/8T9K-q?x6@F?@dG0 >Nk"?YE*]\LT_hKjfGD&Qhj iU3UGe&Y_`?@/b%)h5oWKoWo;KTod}l$roҥ`nE2K?@ˌ%4G{?@ -q eZ̿R^{|\6?vodmP}l>MBe 9 N 1iS? 1?g]rl#51:O("4ga@Sq(UE^@O|ǐ[`Ρa g v2rA @3ijD&}l迲aqOz o?#WHZ'Qu=*[^N?@]%P?@O&@ c?@аM<n ?` eb0)\(Pfodm}nv}l?V5(?q$Ix[cN#W{#iA&QeE9 MX|''0UdN!0 /HD  # =hj0T h]]9 #]AU@}%?@R$,?@6#V?@c_3֡w?P6 u` ?u#t  3zM%t3ws%.<%H._'B> #PJU2N贁Nw[?@ʐL+&A@wbu](i+bk)%+&p%#4">9"<5!?& ?M#bbb͓z$ p&"/%T%#L1L15 w`?Co yrigTt (c)02`090M{0cy0oKss0f2r1r 1a0is0n.0 Al0 y8s2e0ey0v0d0"E1E(]I4M-%#X3 X7&l*>(UhE j1#$Ac!J`%#@5e$_F??!foA3nBM( V?@J-RHQ??@S!R?P| llHL6VLD5E+v;*AʙH: 8snP%$? k?Q? \?f4_!_t_Wr5_! R,U3OC@IL?@4~Kz?P)Oy޾ T!]]>#IAU@܋?@2Oa>?@#r`5B?@*ݷ?P6 t`  >B?\oEt# ŖoZu 0Nu;Y:|8>$# JpU>##<?2& ?5bbbz@b#ANi&bu$'h 2N贁N[2$@ LX"D&v(&m$ :;T'm"*B#d1d15 5`?Co yrigTt (c)020090M0c0os0f21r 1a0i0n.0 Al0 8s2e0e0v0d0"]1"a4M-/p3 p72&l>0>Uhh= 1#!eJ`#&@NTM\jh1B,RBM(!JoUy{O_ e@ So4(DF^Tw?@]֝ä ?Nk"?w_KT\T+\(Kj?ӷjmlhj -`\TPQE\Uu?i,St_o u~!XEO9= T?@L;uQ_Pm"rA @3sjQ1lğ= GoYniAlePE9 MX'w'0UrJ^N!M$|A vzHD  # =hj4>T!]]>#IAU@܋?@j?@2r`5B?@^ݷ?P6 t`  >B?\oEt# 6ΠZu 0Nu;Y~:#&}>0m8>  PJU2N贁Nwk?@ eL&A( 5bM(b[)h+h+$h&#[-M$#?& ?b$Z*'*B#O1O15 5`?CopyrigTt (c)02U0090M~0c|0osv0f2u1rx01a0iv0n}.0 Al0U |8s2e0e|05v0d0"H1P"L4M-/[3 [7&l>0>Uhh= m1#!S!J`#*&@PUy{_?NTMjC1gc RVMʣ(D#F ![?@"$. ?Nk"?+IKTLTcKjRlhj p= (*!)i,SO2Kes9T;QEGUFw6qX}__TM7fTZT\Dž}I_P^52O,ES"rA 0S# Es3iAlePE9 MX$Gxw'0UrJIN!4gA xvzHD  # =hj4>T!]]>#!AU@܋?@c_v?@#r`5B?@*ݷ?P6 t`  >B?\oEt# ap'EZu 0Nu;Y:|$># BJpU>#͙;? & ?5bbbz@}bAA& K&@ 2zGzt?"K@ L0"&N(bM)+TK/8Z*B<1<15 5`?CoyrigTt (c)s02009s0Mk0ci0osc0fq2b1r1aq0ic0n.s0 Al0 i8s2e0ei0v0d0b"5194M-t/H3 H7T &l>(>UhE=3Z1#E!J!@ENTMjN@1h(NoUy{OO e@ o)4(DF^Tw?@]֝ ?Nk_"?'_KD3\T+\(Kjjmlhj P\DiAlesI(=MXsG_'0Uzb6N-!%$0 sFEjHD  # =hj8>T! ]]>#!AU@܋?@*?@#r`5BW?@w?P6 t`  >B? \Et#տ|u l4RQu?]>I$>I# JpU>͙#<?& ?9bbbz@b#AE&bQ$$D 2zG[zt#@ L4"&R(^&I$Q)+]'I"^*Bh{.M#To1o15 9`?CoyrigTtk(c)k2009kM0c0os0f21r1a0i0n.k Al0 8s2e0e0v@d0f"h1l4M-:?{3 %{7&l>(>UhE= `51#I!J49fAn^ R)X f"B!Jui,SG?RSlOS u~!N]8-19= T?@L;uQ ?Nk"?YVTQRXQOnğ/=i n (\ wTiAaePE9 MXLg'0UbZiN!)$0 Lf`jUGD # hz4TYYT#BU@5?@`0 ?@ t2пP} mu` o?u#`/8d<L1<`9tU(.88LL`Zttt n۶m۶tgf!m-2!tUH~#a#[0U"?@W& a#!!o*"`?CopyrigPt (c)020090M0c oKs f2!r 31a0i n.0 AlN0 (sR2e&0e vd0dF0O"!P$X#B-a## '(#^=a$&X#466 2X$e(^%(5 a#dHoJX%DK|%D@tK5D8Gg&AUc_'TAAX"U(@SaX%2X"ihalI&X7lG'җ$6!40 lFZHD # =hj0>T h]]9 U@oC(?@mWں?@?@Vw?P6 u` ?ut  zU%t3b~}U%.9%UHS> " "" :"" N" b"w"w"w"w"w",w"&/8$w"D,w"PX,w"l#JU 'N((?6 ?A\bbRbz@A0ubbub9)b(8bI4e32zGz?088r@LF:Z2P?b96<2: e3AA5 w`?CopyrigTt (c)@2`09@M@c@o%s@fBAr@Qua@i@n.@_ Al3P HUs7Re Pe@vIP d+P2AE]DM-e3CK G6l>]4Uh8QQ9 !$]b!N!:"AZQ1J`e3@%?@~霤0df'#'/^&b^&M8Xd,O?@PR?@?cߡj ZW0?ri5kHiN׶_\(Úw ckfH AjG|olAGeEA@:?@wUѳ?@wN?P-DT! ]ujye6|ñlL|*%k UUB H 7 C? J? _7ͫ?kwr351:kw41b 8eXojc@{h`荞ۚӴh2rhA%`3`8z?ZJJ=aOy?5qexzaeyw?@J?@yZI?@G& hbt=lkKv>tZa7L|W顟tpҷ!iY#?@#?@sڎ`{R2zo |r}q#z_Ţ6|;|L|8dt~aay W(Ci?@%91?@;8.n?Pris%r{i"6|v}YaL|q|zKΏ#e!yEy?@ ,&G>@"_yy޼X/JCl;~e*6|<8L|wK|༬g >P`r#'9Ze%aiHJo?@U ?@qU}?@;E | /BYlx6|3@*aqOy5#*:!iZO?@C?@cQ`p`~ |IJ1Mlw^6|G#U_L|-hPbqN!yU_s8?@#`Ӳol?U6Xl?RiAeu9 MuXXWt'0UjDŰ^!40uE  HD: # =h4>T]]9 !AU@Fr+?@;?@Ě9?@UGݳ?P6 mu` o?u t  ܍`)t7Sׅ!)25Ia(L޿f$A F  EJU 'N(( ? & ?A`bbRbz@AA ybbub>)-b(D#GbKy!>#c#y D#2zGzt?088r@Ls"&D*8"PX/bl$d"x!(^('d"*S1S15 {`?CopyrigTt (c)020090M0c0oKsz0f2y1r|01a0iz0n.0 Al0 8s2e0e0v0d0"L1@P4M@ D-(O_3 _7 &l  Uh#7 q1+Ad!J VD, |-1R0SVbR( b 0AleE9 MXPG'0U$bZuN!%$0b5 VZHD "#=h0>T@++]]9 ِU@XΞ(?@?@/?@?P6 u` 7?u#t  ʿ%t3{%.9*%HS@7> ]A"" D:" N" b"b"""""""/$"&/8$"D,"X,@"l/~$"$J}tU2q0?=@L6Aw@)b8Wb9;6R[3G 2D?IF !?A?I3AA5 w`?CopyrigTt (c)@2`09@M@c@oKs@fBAr@Qa0i@n.@ Al!P Hs%Re@e@v7PdPBAE(]DM-3C GIFlT>oAT>U+<oAoA]!:" _$ }$AT#/ARJ`3@w{?@Vk@E$|&b|&M HA@nY?@C<ϖ?@:[?P-DT! ]W0alxk>8 <_ 敶`TWbXB p = ? >)PK? ?r#51:]ow41b(H1|_s8?@#`ӲalaDw5Xwl5dEJdZO?@C?@m-p?@w  [edir[wlWV(|uY:l>|j/v w$117JGJo?@U ?@tf+?@?ktzDzXwl(|}x|'=}A[tJ%?@~ל?@~?@.RV~7bߌ:|wla_=v}V痒_Fts4$imƉEy?@Q`/&G>@7;[8|{oodEJCwlv(|5t0\>|9?jՉt0GutWt1Cw3tw#e!i W(?@i?@ :=-?@|`̍f?PodiT rwlAD:(|F|v>| 8O/'ݦ[dvπw&30#e:!FY#?@>#?@r1?@4rzXw\.wl[2jq(|kj祐m>|VOdvs|N!F~oCO !L?@iOS#~Lf%>~zi4ptc+y$>|A ߟqayy-詺alB{TJ7b!iWyw?@f?@$1F?@ݏOD bϑANoBrQN 3*z׳]SqAy -;b>Sgi8TQTQB(YAeeXXyW _'0UiŞ^-!dD0^ 4UHLuD" # R>h 0JTlaHaMCqMU@?NB?@S[s~?@$O?@WZ}8Ÿ?P >uA` ?u4 >t  aU֠y)t7Fϯ1)2_G\Lȟ9flMlA  Z   J>U2zGzt?088r@9 3#>C&A@ybbRbPzw u#-b(bJ)+&N=#!!{`?CopyrigXt (c)02d090M0c.0os0f21r0J1a0i0n.0 Ale0 8si2e=0ej0v{0d]0" !]$4#- 'N((#?6 ?Me>aۀw R4` A#0c{0n01lI23zjw Mw bbbz5Iu#m{EZA<O&Ob5ObNbbOO((/%BG=## '6,lo>R4"lTJ$JUl 5I 1qYƕ!1(R!dӘ`?@S?il0"NX N i*ƙ?@`1Ww?@ټ?P^ÿ D* @[Q ʸZZ\!PX@: \Ŀ gsY @ [,˿? @?t@@Boogr5w!(NU^_p____Xj?R&[T2\o~e!ϏW_"?@\L-ed5?PO6h  U6bMmpN_W\4VI~zl{yfdDԻ~g,+?Ȏ !ood{ &'iMf5 4%uXW_'0U&[J!4e% 7KUHLuD" # I>h(J TEI 3AU@jZ?@({~+?P >uA` ?u#J* )8* 9LG 9`G 9tG 9G 9G9G9G!9GA )@G#"G.$*G8"B"V"j"~""""""l" ,>t   2t2z%2pbEC3O2J>U2zGz?@9 k3>{6A@wb8b9e;62 !4Nu3Bl322F 2M2bE9^K72S!υ`T9`U ?@ `kd\|SiDlؓ<N oldџtGlI?@~?@(t RV~'\Wc-N3pMq$$z$ơ𑯣@&'/6&G>@9 ;?@{gPDlCɚ>#(䞌!gP5|Tf- $` iR9$a/|`;fF`kDlӀ 7A?,s-mqBNf)ϭB*$`#?@ yC$`4rzY|˱AM^)Cm#ŗƦ}?zƀ9b"fjO?@m0?kOS3\?bUAfqGi?SbRS۾Cf?il߯aapeX/G|.lRxX U n@42PrŮ 8b:oLn?Ce(jY榄el`ƀEqQAeRp _og}u?@9 mO".l9=8/ ee )l.%-+mlփ?@U->V.lɽ7yHvOfўA=$}$ʊ x @4S>a U}62D 'e !aS#Ł&ʊi$!Tl51A1X/'0U;"2F1&E01 *_H;s eoY޴OXFȭMo#0 #KOB U n~d״ uo@+_ oVsGv FfD F hI ϦHK xM O dF֛(  @5 u v 6?` 68b Nhd _f k xm  K q#!UFD  h(^TYYB UFjZ?F~??x<F BPG(?P } X ]B66]  TTUTTTT96ȴHBU?Q?G ?B@L&ɯd2?6-G(?\.Y(7. sU!}&/)J'( G 0]B`)proxy,se 0v2,c 0mput4di0t 0ib*4d0n0t;w 0rk! e^| (SG& i?!3E?? ?    wp   p qw qw]qwqpqwwqqpvppww&www]qawqpwoww6zwxvDrag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aabjZֿ~??cN׿ mF1??S{V↑T*J?@ ?UG DF P# h @T(PYY# [U@jZ?@~?tP} u` ?u#2>D>HX DHlHYHH HE .E9O؍>DDXXllRu'9j &",'US2&5/4 ?"'4Wb0{['`:[1#26" !^Q_9$"3&9"/L6 2&!'ݯ>o@ÿ@qx@?@-pB?wDmF03Bu9@`҈-1Bu@r#CC 5(GAB2Cm9u`u `"[ b!u`/3Qy1y7B`?CopyrigPt0(c)020P90MPc.PosPfRQrPaaPiPn 0Al ` Xs$bePePv6`d/`VPs_SBNcPm!#5P86PG`y1&3db4&5MBh8=/3z6&3d66 Ԁ2&4#/30U1r3]ge<^AE U#&5m Hq&5twV5t{3t{VEt{t{y {et !{|tYwmAdaI_BT.1JaJa&2tataV21@32MVB3Z112I5tb6 7C|hhE) *”nQo`Г!SQSQA11BMB;1brcqe a> !b1AEDFQ.1#8dTG`XQ`])rw` M`nuP%aPt5arFaiQ` EqiPm6`nPvdnV5Q~]1PRd ]`ue`bү30 ! P`r3EWSHx]C(D6bQα eϿn\ϢAP9aB#`75^wωZ% S:bi` #ajeTZLPch@6߫k5^p߂BTlB`i`g̨9@ߡRPoڂ|8Z\@ 0p([D`ĦSPaPe`l`FOX.I` $TP*G`ON`?aj͒soSb Y`qP(xP⨠ڒMNwbk'aL.2`} sYkIpadB`5c6 d  nĭs  ^x5GmTat f?a Iݢ;a ^f󸑩 R pa/a //1G/UM`C/(/+Qme`utP Y`? 5^D.?@?} 0B? B^v??;EHd2QC'i3` W@ڥ%O^V/O0AOC~ aOO#O/`M6`mbO_i^p)_;_O;!O) eo1y]QHg_y_]qt1dw:fo(SU@jZ?@~??v?vepcpBuHp` ?bup`Ta],t1(gp"51m-< Corm1 QrHqBT1.mt1xAdg>pÿސc$bepq verrrvvvrs^c"`Roxi1@ e2Sjbb aabr >@"JtbauP`hoe{1.@zU}_ rU1U2l-bŕnaaaaVҴoAaY6(P`u4`r}`}`azxn4~5_r&bВF3sNSYT}lrV@z-eB8QnBLQBӐSV֜Z,@rBD*<`}(aaY Vn` %P&@!S>1a`NEWORKJn2H P߰}!R尪RI߰S͑QґBio0ohhAQ'0Uƛ?!10oHD # =hj0>T h]]9  5AU@jZ?@͂T??@x?SF?P6 jt`  o?tk[>(A Vu aSuo.]&A]  *ԮJU2zGzt?@L#&A@bA#z7 5#1bO(b])j+$j&[ "*(w "?& ?AU$l/%B115 `?CopyrigTt (cu)Q02`09Q0uMI0cG0osA0IfO2@1rC0|1aO0iA0n.Q0 WAl0 G8s2Ueo0eG0v0d0"1E]4MŤ-&3 &7&l>]Uhz811U!J!u6?@+\.>djIIa? >"(EǑ I%K9E 5EU . K ;;5QIWEEE@ _KnSA?8@VBu?@DR> ?Nk"\6`ObmMM\j=am {:e 뇿P> #? D"? 5-gg?j47!B{oogrK57!ibDAbE9 MX7'0U~rN!R$a)5 5vIzHD # =hj0>T h]]9  qAU@;?@I5K?@xEL?6ѿP6 t`  bm&Qo?t@@L]WI,#u aiuoL> JU2zGzt;?@L?&A@b}#zs q#1b(b)+$&[9#H",ɺ (wH"?& ?A$ /%9#BV1V15 `?CopyrigTt (cu)02`090uM0c0os}0If2|1r01a0i}0n.0 WAl0 8s2Ue0e0v0d0"O1E]S4MŤ-9#b3 b7&l>]Uhzt1.A!JN!m.%-+0djV1ax߃S(@J-&?@ mO"> ?Nk"L[Majnha_:e P> #? BK=o? n-?j4Bs!B{__Wr5s!D8E6V 6?wj_|_ ^XE.U6Vz T6 @ d_mOoT ݬ\VߦyWx?RkrVo_bVh*g:n"'UaEjz}36>CN>?Bn]z/GvN7ViDAAbE9 MX+G'W0UPN!4)ae5 MaHD # =hj0>T h]]9  U@jpiH?@^?@$?@]F?P6 t`  !a&ao?t,F=۳=u;u auo>J2zGzwt?@ʐLAw@b#z1b](b!).+I.&[-m(?0& ?A$I0/Q%!!5 `?CopyrigTt (c)02`090M 0c 0os0f21r0@1a0i0n.0 Al[0 8s_2e30e 0vq0dS0T"!E]$M-# %'&l>]Uhz!1!J@% djc~YZ(_N9zOMGE%_EH$SwO"K ңHE ^&_8_WE_OqOHOOi&DAbPE9 MX7'0UUfb>!$a % f1jHD # Uh4>T#]]9 M5AU@jZ?@L|+?@?@({~?P6 JuM` ?u JYt )t7zEA2&L_D?. > >tJU2q K?=@MJ&A@-b9(+bG)T+T&J[#"#a?& ?AH?/`)#115 {`?CopyrigTt (c);020G09;0M30c10os+0f92*1r-0f1ai+0n.;0 Al0 18s2eY0e10v0dy0z"!4B#e-?3 7)& b 0K8>U# ]A]A "1!ъ!PzQ <%OYAJEU . K;;\%W%E@($L[.FX5Eai%?@ 6?wL;] W-\TB⤲8?W&SA?@ @ ?Nk"L'`bmMW_Ye[7 VK=F: [jr ? D"? X?ZvD?a@Boogr5;!QEؿx]SiLO MLXa~WOTZiAle59 XG"'0Ujc&N!$05 .HD # =hj0>T h]]9  IAU@K?@OgVb?@Y%?@wᳬ?PJW?>t`  ^Z?t#ə.E @x?r?/{4܂ G _Z+u u$ >  J JpU?43f<!.&P?b3bbfz@1bAe&bq$d 2zGzt.#@LT"&r(~&i$q)(+}'i"~*#81815 `?Co yrigTt (c)o02`09o0Mg0ce0os_0fm2^1r 1am0i_0n.o0 Al0 e8s2e0ee0v0d0"11E]54M-#D3 %D7.&lUh#7 V1#Ai!J# F/?B1B  VRiAAbE9 MX G{W'0U*R2N!I$a {VZUHPD  # #>h0JTpERI MU@u6?@jc{g&?@%r`5B?@m_F:Is?HNtQ`  II?t#]  _ii$!`kNu  iu%wj>M JQ T       "@&&JNU2"?H@Qs#N&A@b(bU)++&RNp}#>H1#19 ?#bbbz| R&/5R}#11`?Co0yrig\t (c)02h090M0c0os0f21r0Aa0i0n.0 Al!@ 8s%Be0e0v7@d@21a4t#-}#3 %746lJ#$JUp5 3 M19 1!q(!@nElrkRt# 8$kcD?@숒@)?@P?P"EkU |1\iOT/irvs}i>`_,of :m ,M ?? S&d2? *b?r4B!B oo1gr #5!>%(EQOOOO__@Ac1_C_ D4ևS]_o_yRX+{_,__ #R__ (YQoSo+o=osd {oEeoooooo@yUy{* hDV!VV(I X"c7I!pg bf'iMjSE t%XyG|'0UŢŞN!O4i |UGD # hz0TdYYBU@(%)?@xg^?@0߯H?@s7Uݹ?P} t` 87?t#_)TeΦu ]ukv  ̝L&UUU&I&3 U!!`?CopyrigPt _(c) 2\W09 M c os f"!r 1a i n}. Al00U (s42e0e uvF0d(0'HS$#-## 'I?k=#ǒ 2j$B##0U'BM3@&@F0Yk} #HA%DKb5DK3DK5DKED$!GiAZG5(|IDFX7yW'&Dŭ6!4YA yVZHD  # =hj4>T!]]>#AU@0߯H?@z)e??@˞9q?P6 t`z  ?5t# rXѮu)Nu;):O]ע0 &> # " "+"+"+"+" $+"T-J[U7 ??& bA@ 2b4-#2zGzt#+@ Li68!6 ?}; 72U!:B#AA5 5`?CopyrigTt(c)20F@9M2@c.0@os*@f8B)Ar,@eAa8@i*@n. Al@ 0HsBeX@ej0@v@dx@)21"DM-,;?C G& l>]UhzAE!A#!ְ1J`#@{&pz?@Uy{?NT,dKj&b&R&M/8T9K-q?x6@F?@dG0 >Nk"?YE*]\LT_hKjfGD&Qhj iU3UGe&Y_`?@/b%)h5oWKoWo;KTod}l$roҥ`nE2K?@ˌ%4G{?@ -q eZ̿R^{|\6?vodmP}l>MBe 9 N 1iS? 1?g]rl#51:O("4ga@Sq(UE^@O|ǐ[`Ρa g v2rA @3ijD&}l迲aqOz o?#WHZ'Qu=*[^N?@]%P?@O&@ c?@аM<n ?` eb0)\(Pfodm}nv}l?V5(?q$Ix[cN#W{#iA&QeE9 MX|''0UdN!0 /HD  # =hj0T h]]9 #]AU@}%?@R$,?@6#V?@c_3֡w?P6 u` ?u#t  3zM%t3ws%.<%H._'B> #PJU2N贁Nw[?@ʐL+&A@wbu](i+bk)%+&p%#4">9"<5!?& ?M#bbb͓z$ p&"/%T%#L1L15 w`?Co yrigTt (c)02`090M{0cy0oKss0f2r1r 1a0is0n.0 Al0 y8s2e0ey0v0d0"E1E(]I4M-%#X3 X7&l*>(UhE j1#$Ac!J`%#@5e$_F??!foA3nBM( V?@J-RHQ??@S!R?P| llHL6VLD5E+v;*AʙH: 8snP%$? k?Q? \?f4_!_t_Wr5_! R,U3OC@IL?@4~Kz?P)Oy޾ T!]]>#IAU@܋?@2Oa>?@#r`5B?@*ݷ?P6 t`  >B?\oEt# ŖoZu 0Nu;Y:|8>$# JpU>##<?2& ?5bbbz@b#ANi&bu$'h 2N贁N[2$@ LX"D&v(&m$ :;T'm"*B#d1d15 5`?Co yrigTt (c)020090M0c0os0f21r 1a0i0n.0 Al0 8s2e0e0v0d0"]1"a4M-/p3 p72&l>0>Uhh= 1#!eJ`#&@NTM\jh1B,RBM(!JoUy{O_ e@ So4(DF^Tw?@]֝ä ?Nk"?w_KT\T+\(Kj?ӷjmlhj -`\TPQE\Uu?i,St_o u~!XEO9= T?@L;uQ_Pm"rA @3sjQ1lğ= GoYniAlePE9 MX'w'0UrJ^N!M$|A vzHD  # =hj4>T!]]>#IAU@܋?@j?@2r`5B?@^ݷ?P6 t`  >B?\oEt# 6ΠZu 0Nu;Y~:#&}>0m8>  PJU2N贁Nwk?@ eL&A( 5bM(b[)h+h+$h&#[-M$#?& ?b$Z*'*B#O1O15 5`?CopyrigTt (c)02U0090M~0c|0osv0f2u1rx01a0iv0n}.0 Al0U |8s2e0e|05v0d0"H1P"L4M-/[3 [7&l>0>Uhh= m1#!S!J`#*&@PUy{_?NTMjC1gc RVMʣ(D#F ![?@"$. ?Nk"?+IKTLTcKjRlhj p= (*!)i,SO2Kes9T;QEGUFw6qX}__TM7fTZT\Dž}I_P^52O,ES"rA 0S# Es3iAlePE9 MX$Gxw'0UrJIN!4gA xvzHD  # =hj4>T!]]>#!AU@܋?@c_v?@#r`5B?@*ݷ?P6 t`  >B?\oEt# ap'EZu 0Nu;Y:|$># BJpU>#͙;? & ?5bbbz@}bAA& K&@ 2zGzt?"K@ L0"&N(bM)+TK/8Z*B<1<15 5`?CoyrigTt (c)s02009s0Mk0ci0osc0fq2b1r1aq0ic0n.s0 Al0 i8s2e0ei0v0d0b"5194M-t/H3 H7T &l>(>UhE=3Z1#E!J!@ENTMjN@1h(NoUy{OO e@ o)4(DF^Tw?@]֝ ?Nk_"?'_KD3\T+\(Kjjmlhj P\DiAlesI(=MXsG_'0Uzb6N-!%$0 sFEjHD  # =hj8>T! ]]>#!AU@܋?@*?@#r`5BW?@w?P6 t`  >B? \Et#տ|u l4RQu?]>I$>I# JpU>͙#<?& ?9bbbz@b#AE&bQ$$D 2zG[zt#@ L4"&R(^&I$Q)+]'I"^*Bh{.M#To1o15 9`?CoyrigTtk(c)k2009kM0c0os0f21r1a0i0n.k Al0 8s2e0e0v@d0f"h1l4M-:?{3 %{7&l>(>UhE= `51#I!J49fAn^ R)X f"B!Jui,SG?RSlOS u~!N]8-19= T?@L;uQ ?Nk"?YVTQRXQOnğ/=i n (\ wTiAaePE9 MXLg'0UbZiN!)$0 Lf`jUGD # hz4TYYT#BqU@I7@(?@M&d2?@ t2?@`0 ֺ?P} u` ?u#L+/8<L9`( .88L``t $Itmj gf! !UC~#9#0Up"?҃@/&T9#ة!!G*`?CopyrigPt (c) W20 9 M ]c os f"R!r 1a i n. AUl&0 (s*2e e v<0d0'"!$0#B-9## E'w#^=9$&0#466 20$e#$^ #30%T% 9#HLA0%XD`cKT%XD8cGg&AdaO^'TcAcA0"J-(3Ca0%g2AATBK6S`6SihaX5 &X~7kW'o$ţ6!40 kVZUHLuD" # I>h ,J T  M#EMU@jZ?F"??@`^?P m>uA` o?u#VpMJp -<pA -PK#TdK2(.K<FZnf>t  t3|>b!F\.岿uKJ>U2zGz?@9 ?#>O&Aw@b(Wb)+&r" !$NI#"@#W"6 "\M"b)2;'r",r"/I#11G#`?CopyrigXt (c)020090M0c0os0f21r01a0i0n.0 Al@ 8sBe0e0v-@d@7"BMI#3 76@"!"t1"=ElJ4Ul8@AAC 9 =Q A(#UA!=(^!rCa?@ئ3 (0 # ?˕8# ; MkKUN>UV\u5m[} 0҂X3^E] 0__  yXE>UU . W[ ?;;l\gU>U@}bAo\nZM?NXAjai%?@;D%V\^ W-l\jp҂T9?T8?@)#?@@SA?@9ؾ@ ?Nk"?YY5`bmMl\K,q_ܱy[_7 GH5'  ΀X:YC}u?@H[V\u۶m۶l\&Dn۹XQ`C"4` NQ:Y%u?^&W[DqodUQ:YxLPp"2V\$I$Ik]T@!X Q LPݟd(: ?j=YU>UsG_YY f_x^AA(G!EM_&_8[}u?@R6V\9=8uG5xQHuQu?@mlփ?@t;/> ~t~Y|Of|͸ 4zTB#]]9 TU@ t2?@`0 ??@?Pn6 u{` ?u th  )t72(LMm>EJ2wq?=@LA@yb #z.-b( (%2+2&>@f'?& ?A`bbb)$bf/ !4/U%T115 {`?CopyrigTt:(c):20Y09:ME0cC0oKs=0fK2<1r?0x1aK0i=0n.: Al0 C8s2ek0eC0v0d0X"1P4MB-?"3 "7&l> 8>U# RARA9 ]41 #p U%J`@`C C?s9ӑ] ,VM^(s"2ǟO?Y!c1ƸFU5V^dln__ iQsX5VUF__ _ ROJ)XE2O,E"rA 0"|c3JQVU-?@k}A_Є\a#BFUVU~t?kb\+g!^(`d E0Ale59 MXGB'W0Ur8N!<+0%5 zvzUHxuD4" # J#UU >ha0JTaaMU@ t2?@* 7?@H"G?P tQ`  7?,t#6Z hӀ6C2wqGCLvnCu3;uM;2zGzt?>@QA@Ebbbz+ )#abC(+bQ)^+^&)y#?&)?I"O+^+N,l'R,1,1G`?Co}p rig}t:(c):]209:M[0]cY0osS0fa2RR1rU01aa0iS0n.: AUl0 Y8s2e0eY0v0d0@"%1Y)4-83 87$&lUмJ1$ KAp +!~ F F FFFFFFFFF"`!Q[C(CUH?@ &[\uP^CyyTQX3CUjdO[_TtY/`T7Q5____TCUQegG idpogZ4EQ$EGy#3 oEMF#r 7f;_\tTQZsR om_ hlРpv_QeT_2z|ro.FQpt8Auo,>PC^Awz^ @f xY 0BTfx+ 6yI8_mBԐYˏRdٮy %D+x]&8J\n+ }C2q}[eu៿x **xa@Rdv+ zܿȯگ ?{kk 1/ g_xeZl~ƺfZ?@&KWYܿvl")Q )yxitϘϪϼƹCG?@sw8⼕5Pvl'<(fT( ,ӓxmߠ߲ƹ"?@7.&ὡ }'i,D @?.v0B/ Ixq7L+&rZS^e ap\1r;K[J\ vfx N 8cBym <ÊvK%d!dv +@x$6k& LJ (4 e/ P}/@M x //)/;/M/ +'λ fe/?ioH?d/jiAlDlBATKA@egI^%L8X<ӈ9G'0mUB? <!d0M 9FMJHD: # =h4>TB#]]9 TU@ t2?@`0 ??@?Pn6 u{` ?u th  )t72(L>REJt2q?R=@LA@-bbJ )+&[Z#?m& ?A/$)񩣑!!5 {`?Copy_rigTt:(c):2U0 09:M c os f"!r *1ai n}.: AlE0U (sI2e0e 5v[0d=0>"!$MB(-?#K 'm&l>8>U# AA9 ]p! #p +;%J`@`CD Cs9ӑY] FMD(s"2O?I!c1ƸE%^d _2_ iAsLXw5UF_w_O ?RJ)LXE2OE"rA l0".cm3AU-?@[}A_6\G#BEU~tS?[~b6\WD(3`d Alew59 M*X7^B_'0Uur>!<0% ,v@z_Hp;s 7E HHlrF(3#4 POB !~d״ o@+ o[sGSofS(SoShSF S;SF֛XS\HS5S'8S("S%8S)6hS,NU0 S29آU8U<UB[UFD  h$^T YYBBUF\.??x<F BP(?i3^P? .vV B2% 2 2ȅH?p G?`1 Bt  0XGB`User,n tWwo k p"ui h"al d v# c >!^ K%OU# r?/%?IHPNL@DD@@D@tDDtDDGpDtpG ttttG_GOOGGW D@DDGD@%DD@@zD@DGGDDM_iDpicZR?Drag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aab\.ҿL&d2??s׿4?@?p2эr3rCUG DF P# h @T(PYY#EU@\.?@L&d2?]P} .B"H:J "bbrY:f 7 Amu` _?U"66UJJ^^UrrUSu#*",'񩤅MU 02#?T"'#^Ax)"L[$ $3' >>ÿ@q05ӥ?46Zr&23G2uM0`-N12uu&@ f3AB@3t$9u`u `m"[ b!wu`)#A!'1`Vis_PRXY%cPm!#52840!2`?Copyr@gPt (P) 2P09 M@c:)Po@of1R"Qr%P^Qa1Pi#Pn% AlyP )Xs}Re@e)PvPd%BH!#$U~%d$%! =#d&P& "$B##+0Ub#]  gmAdaoc_Td"5 tR6$t 7#tEC0t|hh9PKs(&q`#L ]G2`NgPmPTZqU!hj|]sL#PcgXx'e|Bu@lPioPgyEf|R#Pobv|3qdv]@Vq DPpgPr1PBqn1PxHrfcQA!эSPUa%Pe[PlgPs@ c` "QnoPePjQv@t'PxUrT sAp ;T'PA r`UTTq1PaE m\#ff%<z-q#o&5m1`P]](cEAE5:Z%C %B&MRAiR p!]`NEWO@K SH-0Pr BORIrS1QN1^d^dpЭ&&"(AT܍?<$aylA2;6Mq`CRPQllS exR2" 0R<@5b :::4u"5z":br3@@BK ڿUmRc11"@u&2Mu3+ԼB,@"Q(!`a#b!qo+`9R7[d[#uҳB&53@R"3阼E q`_$&F3s͵NSYFO0UAC,@d_"PUi(X''d&E! EQ7 jXq!Ia2ܬوW.Hƒ%Q &5f ~5! E8! U. UHD: # h0>Th]]9 MP MU@˙?@[ bg?@ƒ?@?]P6 ]&A]M  $ 8A] LGD`G t  DG G GG$oJuM` ?.BVj~uJt  &7&t!"Mg7%'tU% 762>[JU 'N((?6 ?A!2b(A@2b4Jte32zGz?)77s@M[3J68b96<2:Be3hAhA5 2`?CopyrigTt (c)@]2`09@M@]c@os@fBRAr@Aa0i@n.@ AUl@ HsBe@e@v@d@@S2aAYeD\3-e3tC tG 6\5@bU9 kVX=W'0URRł6!4aR VZlJ4Uh8&a&a\qA@Q1Y8`e3@omi?@o˟+00f'##Rܗ'/Rb\2JAL)?@}Ɯ?@FGy?@?Ҿi ǒ$Y1iM/JCl;~e*e<8e#K4 @ J? 7ͫ?"p@c <"!r55qE*uzf7?@|ݨ?@ړ]?@,_oTl%rl |}}Ya|tqw(Kx#0.:Ud:Q5>[}W*??@#Y8'&WSyirlE_Ţ|g;||8Q  cGkfɑudpJ?@P"|*u]ad@k!iNŒ|\(|ݙÚw }:xɒ|)3@*ȡyQ5l~eoc@q(Y?@6qﴐ2rA 3zƟZJJ=ay*/AHD H# h4>T]]9 MT !AU@ `h?@ E?@( y?@b|?P6 $]A n JuM{` ?e? $Su.Jt+  SnpteGVBqzE0E>qچۤ7>[JU 'N(( ? & ?Ab(A@0"Sb8$J2zGz?CUUU@MJe&9#ވ"bU#z.;&b8)E&?,J0"E*115 ^"`?CopyrigTt (c)<020H09<0M40c20os,0f:2+1r.0g1a:0i,0n.<0 Al0 28s2eZ0e20v0dz0!E45 e-?3 7 &6iieE9 6XG{'0o bo &%$0 PFdJlz&>UhE=^!Z10! _V, $*$d* Td$VcR( bHD: # h4>T]]9 M 6AU@ù?@C?@V_#?@ zrC?@+>_$6>M JuM` ??u` noD<Ju ,u ,bsu *| -Jz@"JL>Cјղ?@~T]]9 M 0AU@H}^Wm?@,71?@[>(?@Cn9`P B0wR?>$ >M lJuM{` ?E?Ju`bJu ,u ~,bmWu v {-J)yt@e"J>>?@zc?@c$Û?@s?-'7/I%u'A-(?/I Jt+  >Nkt7"te"^_'n3%':4%'~7JJU2zGz?CUUU@MJ76yAZ2bUu3 zii32Wb9;6B13115 02`?CopyrigTt (c)@W20@9@M@]c@os0f BR1r@9Aa @i0n.@ AUlT@ HsXBe,@e@vj@dL@14[13 'N((3FP% 4(d?U3 7F@T%jeE9 LVXW''0A0A0F-!D0 lVZ9lUhzE ,5i 1a^*0^dJid:SYwh>F R e?ijm$*D@@y46$d tNe%7lb+d hc٢4HD: # h0>Th]]9 MP !AU@܄?@?@oEݒ?@fc?P6 $6 >M JuM` ? ;)u*Jt'  sZlta{Jxlmv _=m)>d3>JU2zGz?CUUU@MJA@"bU-#z#!bs!#<"bD)Q+Q&J[ 'N((?& &?A<$(S/t%UB115 `?CopyrigTt (c)802`0980M00c..0os(0f62'1r*0c1a60i(0n.80 Al~0 .8s2eV0ej.0v0dv0!Y$-X 3  7&00b59 FX7='0Ŧ&$a $F8JlUh E ITh]]9 MP MU@\gr?@KeF{2?@0_'LھP6 @M >M   $ 83]L3` t  3 3  3[3tJuM` ?""."B"V"j"~""""u)Jt!  N7F$6t132_y:G#7.7w%5%H=!>}tJU2q0?=@M3J6Aw@]2b8Wb9;6JJ[326C?IF ?PA?IB3AA5 C2`?CopyrigTt (c)@2`09@M@c@os@fBAr@Qa0i@n.@ Al!P Hs%Re@e@v7PdP2AYD3-3C GIF5@AbSU9 VXyW2'0UbIF!dDa VZlTJoAT>Uh<oAoA]`t AVb8`3@X?@ bgk@#O 3G$ ):r2JXq@|KC8 uV_Itu4$9K]bkt)Y?@>W?@t |jdEJC!|v|#t0\|`jՉw?0GuN.#?ɿۿjjt^qt'f7?@?@cVB?@-~̍{U |S r!|ÿAD:|S|v|8O/w#L,3?j~;̈މ Q5?@]}W*??@ׅK0M='T!x\.!|[2jq|jm|Äމ}ƒpJ?@Ggo: xυAf%r1$yA5pt| D(ǓI |!TJψ' 55)n?@dѓ`iDF_ὐ#ǮD"ϑ<)tyϏ6qy-8n|r!t@Ikݟ -?jta~TUdQ ;f |I ([%6qZueos@xk.?@U.foB]ra 3z׳]yqʰ-;bq2"HD H# ih ,>T  9 M#EMUFuj?@&d2?@ƒUһP6  > M    4/ H/ \/ p/ / // / mJuM` /?*>Rfzu#J"bo1FI AcﰿuJt  ?t,2t!72B1>JU2zGz?@Mg3Jw6A@-2b8b9;62 !4JFq3Bh32.F 2A2b9ZK72i<2?*q3AA5 p2`?CopyrigTt (c)@2U0P9@M@c@os@fBAr@$Qa@i@n}.@ Al?PU HsCRePe@vUPd7P_2bBMq3C G1.Fh2!"t%2eUibE9 h5AXzWW'0Ub1b.FE0I VZlJ1T>Uh<11@ H\p A l5#}Qbe81@;X?@ bgP@3 ggq3 6MgW7]4JAq@dgLjv2xT?@&e ?>Ȓ$YOA"4[Dzx=Buگ+Bu#տ(: (-DT!o Ut  %"4nARB"&r55Hu™0PL?@dl2,|?U6XB|$e6XxEt\s綡?@kZO?@-9b?@B(® Ǣt/y1MB|sf| +6l|?MQ ' K +Xx}uƻ?@3W?@tM/JCB|w|RDDk|& mzf7?@ݨ?@cVB?@w̍{?PFk%rB|:|F,r8|?P)̿޿:Q5?@P[}W*??@ׅK0mM='a3urB|(q|̔mn|{iϡϕtZpJ?@pgo: x+y|xuty>ÿ@q@E?DF0܇rzBCWB-u]@`- A&"Ru. @qGvC&$!Q`1(+RA"p2K& P4 0)9u`]u `"[{ b1$u`K4)25ا3 a171`Vis_PRXYcPm!#5L`463B`?Copyr2`gPt (B`) 20`9 M2`ci`o4`ofqbbare`aaq`ic`n  Al` ihsbe*4`ei`v`dR13d458=363Ft66 24B#V30Ur3]w,7^q^PsT<`o m`sq`a>g d(a5;_@AA2hh&B)3*R+Rq q2qqr81acf2+66u\. %WQ11[2B!P@Rȁ&ECT1$@b2ȁ3@ HOU@NOU5_4P&F3s͵NSYFąU@` @Qu+QD,@ a' [cep+&ERT28ABTO޷4J&",-B{R1(BKF'`R`as2`e T`xq`W`bBp2+ 0bLU'A"Z#P) E,"b 䵰2EV2brC*Rr@Qcu8vv_<7"&"V=mQQ+qz2&B3/r?qDbu1r8 ak ]!PY@` SPae`e`lbsVa-` E0u2`pF`e`U&EX);Mr` [Tg`aW``D`vb3^Mr` S}bR"c`uUdT1M`n}f`Ecq`ubnrxUQ]AWPbd Nm0U0O!W P`r<N`x8|)b`1 sbe7uPc9AjeC`u`W Sbi`aڐT/MTLc`ch?/d/v/*/B]l`i`/ڐ]@//O Wdo?頼%D?V?9Nwbk0"acR`;|?SI8`ad`cm?L&OAnsCaOL,tROONWPAm23atfa Ia?Oڐfp__M1`  b 8`aab_t_P҇O_OM`CMO_> oWKCs2m]:QtR F@Q6WoLuMoo=9KoHMa:|| R©ʳyvڐߡuR"w` %aP&2DaQiCr:@|`NENWORKJbHE`PXQR^mRNIXS'Q,:@:@ikRw$}ŔȟUّˇ_'0UʨڐLԈ{Ѽ=1tıɼј5ׅ-MTрan{шѕ:55ȕHɑ ՔauՔnՔ{HՔՔRuՔՔwՔՔ_%Ք%Ք55ՔHD: # h4>T]]9 M /AU@xJU2zGz?)@MJ&߀A@bM?#z5 3#\M(b[)h+)h&J[ "(.w "?& ?AS$Tj/%B115 `?CopyrigTt(c)20[09MG0c.E0os?0fM2>1rA0z1aM0i?0n. Al0 E8s2em0ejE0v0d0@14b-$3 $7Y&?Fiie59 FX1G'0UBŴ&!$0 TcFwJlJ8>Uh9AA 611S!Z&@_vn J4h .x?+zfAQ5@V RVJ!D"H$?@bRX .S 3 bA~Y2f@B |>?@?RT*?@fyת?@6T]]9 M JU@1&d2?@Vj?@҄BP(P6 ]AJuM` ?ju#t  k]It=W(\ZIRUIl">2zGzw?@MJAw@eb #zb](b%)2+)2&J[/.w?& ?A$T4/U%B!!5 g`?CopyrigTt (c)020%090M0c0os 0f21r 0D1a0i 0n.0 Al_0 8sc2e70e0vu0dW0!$-# e'& ?6iie59 6X7{'0UŇ&!$0R -FAJlJ8>UhAA 11!T2 $S<cV{ WR~VJd2L&?@ubX,X ]S fR#mS [ÐڱQE^Fh4__ K&oeX5:f'l6 XYePY?ۭsHMQ5aZjoohY}aUVeEVx_;"rA #dsHD: # h4>T]]9 M qAU@|BP(?@h_4FP6 L>D   ($JuM` ?Agg2DuVrJtS  Ut{_GzU_>JU2mz?3@M3#JC&Aw@b#zw u#b( (+T&J[=# ("?0& ?A$ /%B=#BZ1Z15 `?CopyrigTt (c])020090uM0c0os0If21r01a0i0n.0 WAl0 8s2Ue0e0v0d0+"S1W44#-=#f3 f7&4%/O]FiieP E9 ]FXsG{3'0U&!40R FJlJ  ]@Q@Q ]$ x1Z2A!1(Z=#R&@o.r!0JR LuI!QRQ R f4"JR!@ ?@bx!0LS ؒ_a_Y)))$*aE6njϵZNo`o azh E6eWD"H$?@b¥l rdlIU"q)$#Hy|>?@RT*?@mfyת?@6 C_7 1o(!YpdeR;κdeώ"1_:M "96 rs{ ? }Ra@cBЯwr5%*aa9YPRSR&ersx<1\Y<q&eiCvFhw H^+u(7yf@ Sx S?PWe?nWÑ R0X1yat:2);EGWQjV_&eU2_U"rA 5#+"HD: # h4>T]]9 M )AU@xb JuM` ?+ILKu8J1t5 }tyuJb>tJU2U?R=@MJA@-(b;)RH+H&J["#?& ?A3/T)*B!!5 `?CopyrigTt(wc)20;09M'0c%0o%s0f-21r!0Z1uai0n._ Alu0 %8Usy2eM0e%0v0 dm0!H$-,3 7&K?6i@ie59 6XG"'K0ŝ&!$K0 CFWJlJ]$Uh8 AA ]A* 1DA+ai'Z &@h4Fb J4H .x{GzIAQ,R=Q RSVJ:z]].rɑ_~Z)\(@UE !C@ ?@-bȿ . c 1d`AY"b\(h5;njϵZSoeo a(h5;eD"H$?dl3ril ףp= (d |>?@KRT*?@fyת?@D6Th]]9 MP JU@BP(?@,?@HD0J?@VG?P6  >JuM` ?j uJt  =5UYEt9S̿6EN{4P[Ehoþ'>2N贁N[?<@MJAw@cbWb)++&Jy (<b!?2x% ?AM+bf )(%/F%B!!5 c`?CopY rwigTt j c)(02`09(0M 0c0o%s0f&21r0S1ua&0i0n.(0U w ln0 8sr2UeF0e0v0df0!Y$Ť-# ' 0b59 6X|7G'2WY)6!$a FlJ]Uhz11-Z@Pٶ̚   8gF_K  6RScVJ497YDP7RLSBR}UE:]{^{4\QGYl>x}U5U$V5_YQ}U2_/U#rA cHD: H h0>Th]]9 M JU@,`0?@Z~g_?@0]q?@ ?P6 n>JuM{` ?5 uJt  W;6-Et9Sݘ/$ENaf`~yEhte>2zGz??R?@MJA@abb zt}b() (.+.&J43f;??& f?AHb3"Af .!/4/B115 c`?CopyrigTt (c)>02`09>0M60c40oKs.0f<2-1r00i1a<0i.0n.>0 Al0 48s2e\0e40v0d|01(Y4-3 7&60b59 FX7*G'K0UsBŃ&!$Ia *F>JlJ (>Uh*I %1-!4B Q8PRJ:@$ɣB\ ZS Y?^iQ3uUΛrH? JS #קYUQHD: H h0>Th]]9 M JU@~"7?@:@?@0]q?@M7qO?P6 n>JuM{` ?5 uJt  j߫GUHEt9S.5i#ENaf`~yEh<|>2zGz??R?@MJA@abb zbR( (.+.&J43!f;??& ?AHb3"f .!/4/*B115 c`?CopyrigTt _(c)>02`W09>0M60c40os.0f<2-1r00i1a<0i.0n}.>0 Al0U 48s2e\0e405v0d|01PY4-,3 7&60b59 FX7*G'0UsBŃ&!$a *F>JlJ(>Uh*I %1[4B 8PRJ:@?f2B\ ZS Y^iQ3uUΛr7H? JS #קYUQHD: H h0>Th]]9 M JU@jZ?@_7?@0]q?@M-?]P6 nAJuM{` ?4 uEJt Et9SHENaf_`~yEh`6H>2zGz??K?@MJA@~abb z}b( (.+.&J43Cf;??& ?AHb3"f .!/4/UB115 c`?CopyrigTtV(c)V2`09VM60c40oKs.0f<2-1r00i1a<0i.0n.V Al0 48s2e\0e40v0d|01(Y4-3 7&60b59 FX7*G'K0UsBŃ&!$Ia *F>JlJ (>Uh*I %1-!4B Q8PRJ:@ YxɥB\ ZS Y?^iQ3uUΛrH? JS #קYUQHD: H h0>Th]]9 M JU@fl6?@ ?@0]q?@^J5?P6 n>JuM{` ?5 uJt  YEt9SS_ENaf`~yEhI>2zGz/???@MJA@abbM z}b( (R.+.&J43f;?a?& ?AHb3"f .!/T4/B115 c`?CopyrigTt (c)>02`09>0M60c40os.0f<2-1r00i1a<0i.0n.>0 Al0 48s2e\0e40v0d|01Y4b-3 7A&60bP59 FX7*G'0UsBŔ&!$a *F>JlJ(>Uh*I %1!ҵ4B 8PRJ:@;{áB\ ZS Y^iQ3uUΛrH? JS #קYUQHD: H h0>Th]]9 M JU@^|>?@(=?@0]q?@pJuM{` ?5 uJt  LYEt9S޿ToH$ENaf`~yEhP׭wU>2zGz_???@MJA@abb z.}b( (.+.&J43f;??& ?,AHb3"f .!/4/BB115 c`?CopyrigTt (cu)>02`09>0uM60c40os.0If<2-1r00i1a<0i.0n.>0 WAl0 48s2Ue\0e40v0d|01Y4Ť-3 7&60b59 FX|7*G'0UsB)Ń&!$aI *F>JlJ(>Uh*I %1!4B1 8PRJ:@?ͮB\ ZS Y^iQ3uUrH? JS #קYUQHD: H h8>T ]]9 MT AU@BP(?@xJuM`lW? uJu u bOu X J]-J[Vaqrm"J>JU@'  $ ' ! " /+% W'P#-/a/+ Jt.  sU!'"StA"3"'J\2q ?/&?\.?lA8lBt$N贁Nk?Mi JX6 0@b8+b9;6115 h`?Copy_rigTtk(c)k2U0&@9kM@c@os @fB Ar @EAaP0i @n}.k Al`@U HsdBe8@e@5vv@dX@1 4E[6D?FP?A?92~U3 7F@6%b59 XVX*WxW'M0"UF!DK0 xVZl !Uh\@3 A*iAA !9 T0#JtekdHD: # h4>T]]9 M qAU@|BP(?@I$D"?@?@fl6?P6 LM > D($[JuM`^?Agg2D)uVJtS  Ut(\ªHzG_>JU2$"z?3@M3#JC&A@b#zw u#bK( (+&J[=# ("a?& ?AR$ /%B=#Z1Z15 `?CopyrigTt (c)020090M0c0os0f21r01a0i0n.0 Al0 8s2e0e0v0d0+"S1$W44#-=#f3 f7&4%%/O]Fiie E9 ]FXsG3'0U&!40 FJlJ  ,@Q@Q ]( x1h2A!1(Z=#R&@6.r!0JR L^BO{ _Q0S Rf4"J:]k͐_Z 6%)$&aER!WD"H$?@b!0LRc #̫b_Ys &Hy|>?@ĤRT*?@mfyת?@6&W>>uA` ?"W 4HZlu#vprb #">ts b7>t  xڪ>U2zGz]?@9 a#>q&A@-"; (bJ)+&" $>Fk#2b#y"(6 ""b)T;'"i,"/Nk#11i#`?CopyrwigXt dwc)020090M0c0o%s0f21r0Aua0i0n.0_ Al9@ 8Us=Be@e0vO@d1@Y"i f b% 1Xk#]'0UB(650 Jl> \fUlQQC  + !pj!#A!_(:k#&@IJ0 )VPl!# _K|W$(^H鞜_ZU׮]~U3^.roZ'\l<@iE!S@ ?@@bJ0l# Q`Y1)X o`jϵZƽoo C?g`|X\QiD"H$W?@\r|3zrliMX%W$ |>?@%RT*?@#UX?@73zj?Pz :C3_7I1yq~Y@Perx|eN, R k̃t t c r4h1 pBGYkr 5%QPi'BP()?&{sB %!$QUhQjv߻?@`X,|YwVV!Yu?zOJXlQ*?S1UxPDT1\,(S# ՜SBExKVSFON2Mw>Kzh|AwӛJxXQzM Fw3XT1\| wH YYhw8F3 wM~VU;V\؏օRw(Λx0Z660| KrT Yg/>U +U _wU  H X&} 3 & CX 9 6 Ǘ w Y&(wx0&ȉ0W7DhQ0Xw*78E&w!7,TQ0)&.0J0T+0?n=0b!8HHw@ǭ7;O @wSE#7Y vu6S / S U UU5*FU !"U#$%&'G)*+,-./01234567T9:<=y ?D"H$ @~?@(g( "`*^p?(4wq #5GYk}D C:\Progam FilesMcsfUtOfe 14vsocne:\$03J\ANROT_.VSbw}q"4FXj| D C:\Progam FilesMcsftOfe\ 14vUsocnue:\$03J\OPS]_.VXSyq"4FXj|D C:\Progam FilesMcsftOfe\ 14vUsocnue:\$03J\DTLNER_.7VSdyq"4FXj|D C:\Progam FilesMcsftOfe\ 14vUsocnue:\$03JERIH_.VSdyq"4FXj|D C:\Progam FilesMcsftOfe\ 14vUsocnue:\$03J\NETL C_.7VSdyq"4FXj|D C:\Progam FilesMcsftOfe\ 14vUsocnue:\$03J\NETSY_.VVSyq"4FXj|D C:\Progam FilesMcsftOfe\ 14vUsocnue:\$03J\SERUVR_.VSPy}q"4FXj|؎D C:\Progam FilesMcsfUtOfe 14vsocne:\$03J\RKSVP_.XSV_F(Oq *eدUC!d -/ =AA0B{A sd / [> s >*#Q`8?D"H$ @~@PFDyB ? uhzn,T 4UFY,b'@F% @Fx1#{QR%UVq:#W1"#X1#Y1#Z1#\]^abc fgJ#D#iLA#jD`A#ktA#oUpqtuJ"#vA#wA"#xA#yQ#N&|_&l(&A}e&AA1m&z&As&AA(AM&[&p1T&f1\1{?&L&mE@&!!'~U&&U&&&FQ@JaTahaj"#a#q"#&q#:qgaaamz##q#q#q#&&&&Ϫйѹҹ⪹&&&ҹ# !#$*+-./1289;<=#@F¹ùĹƪֹͪ׹تٹڹ۹ ݹat~#숹##&#:# đΑ # # # #  $S#p"#Ƅ#Ƙ#Ƭ@PHZ$%#&D#'#($#)8ᆧ 3k#4ƈ#5Ɯ#6ư#7̧ܡ桼A#B&d("#D<#EPT4Z[\U^_efhWijlmsJKLNORSUVnx$"T`s #aƐ#bƤTTƸ#dPDn D#p0TD#rX#luvxy~{ƀƂƋƥƦƧƨƩDZɻʻ˪ͱλձ֪ػٻڻܪݻ㱖䱖檻绖軖걖못hec EFUF FF F@ F!F"F#F% F&F, F- F/F0F1F3* F4F: F;BUƘƙƛU!BӶ!B!ƱiZcƆQcƚQƮQcQcƻƼƾ» Żƻ!B1B1B$12OjJшlaJҩƀaJƔaJԩƨa<7V1jJ߈aJ qJ qJ4q7дƜ1䴩gz ĩq ĩƘq4ĩƬqJq7Rĩ1B$1BzJ"J$J8JLGBA aDh8q=ŝҰ xF6A'Et4V>>ÿ@ǵq"`e?!df,VtZW.KߞoYBi&eoo%z5 €måDD9i7{5IWTb1b1k2AC1$t2tl3t_A4tb5t6Tt%27t bCt0)9tU: b;b<$1>16AeabFBXb44 Jr%b(B)⠴QQJ=B&bp '/(>RuT&aak2h8b1jpo$oWgt qŒNy]Zy_Aaak2òr+$ɔl,֔r-bҴh8cTa{5Qr0\ְU%1Lְ&ųЪI'qóВ@ 1jpٴ@k2h80wlտqjp_k4x>al2X3s͵NSY[reUyen,@r&6EAտ@<켫B?~?o6AVc!}AJѱTDIqqB^{%9@eqH_AIUIk5VBcc!lխ}AeEn!4ّqƱVV.V{5";PSrvrOUQkiqtƱFDXF$ܙ.X m%Uz?l3bbOŒb/6Iq3"q 5BSI`OrOƑvp1\e=K.@-1`?=i{՗/xM}`?qBDAW1=+iy'qV DY݅.X1Е߰grU@ Qh@@hl6 @@"H$ @3G-Z&?1E puCQ^STj1F;FEBu]QPH$NBOOmo7l~??/ rqqH?KBbYeEB{MqqUK RKB@ BP(?S{MukH2oM 6#ǒ >.OUq_=[s?؊},y1,cɧUgrBslҏG:_//KqKGӱ4 T9ң e:H5e*<$>c w >t*'o9oVobotooooohM^?@6ə})KEqwm 1CUgyq"y$\/j~E7]+y#$ jy/$F]aviUW}K1UDbEBȏ?&8JhI6T?@6hW)2䛟џ+= >ajrȠc;Q*ǧf8 +.@ߨdv+1 zAִ <!ڵZ]oρńG=!3WJQϑ FAg\nSq ÿտyj9̣hE|[ipbe?@vS?PJW5~_a&_tǁH&BAG$^RDVhzxsmCV?@ߘw ߟ߾ VF0KluNN&BVFV?@'~ &\$NEB>y֭Fl* )/Mp?Uu?-:zvXj!3Q"?QcS/e/w///Oas߅(T?nN`r2N? 98O\OnOOH&O*&EO.TO_!_3_E_Eh_z_______No o'('so2Gp!pq8ad0q CBom0qqi#½/{E%0x<@@KE& @@`4F?@2_R7?ŕ|{t`` j?t@ \eU2?kTS0q夑x=9 bf4qU'p2& ί!Eq'Orj.q\!'](;'!Ж>>ÿ@qXyWpp?xnB|v 0qq$!"× %SV4 `ٕG !!'9k![mKm!q I T/Ԕr!#1$'2' 34BI4AB5Nt6[Ԫu7h 0qCu HCeGa=9r:U 0q;0q<&>Իa?r(AFT0qJ0qqq`)gh(a0qpa aeͻT!!!rxf7JgDuTu_Q@rb!囂+[ ,hB-uBdtxCTaC]u`%uL!T)0!a)0A2@@rea A@ra8 Q_t| 23F3s͵NSYёE XE ,@²ra&t nTAA?tt~jZ?~? #d񼡦q!*[kx!"eruGa u/n(ѨaA'uS$^+eS$a^+S$^+ S$^+ES$^+ES$q^+tS$!8p'!AP*&xυPSrv2B}t_0OMPF%htזaAeu&iE߿a4e94C͙E}vr//+/w'AQ]? owT?{#CՙG^Wnwg]X xMhndj ?@FE+GeU2,DVh$4WO?@/?PX ?ډdQE^hN@]XtxeS^qO_,_q xl`?x7sQWbΐ.P8UNC>$mUo@-Bp?=i{Kޅ$1s$1c=?)%Il%1E'ADuoehOa,Hy1,Ж5eͷEUb`OooWKqP?Gӱa_~H[T9Wi]xV_^7H5e__ft<c >}3 -?QcM^κ?@6ə҇@)a ҢƏ؏ 2DR4tfE7M`*ys*5X^ef$F`e8mkefUWa-UDA$1J\Ayͯ߯cF6T@?@~P6h0BTfxҿ[:ajrrX6OQףf8Wi]ke=\S1+7I1EFCB 6QIa|~HڵZO OO(pj?OOOQ _mUl$K_﨟_Sϥ_%rg_op8oJo\onkAC$1!fx1[mߑj9̣`E|[i@pbe?@vS@5I5?PJW^q]o#b/R) @T>A=FZ6x aaQ$~1/-o///? [CV?@:H ?@7WLJV#UPv??bgw-?$VV(<?@"qۇ_PSv^_pWeQ&85GYQ!B @*?n+DT,E-DE.E/@!~/@) -?/X&7ن\hň%\׈鏊RQ 4=Xg{q?];t?@֣Q@m#y@w?@&`c]?@\u{7`#$%@ ךpU?@.ӄT}K0WBThzOqOO |7p#9(G?@9ABBQ0Z}@㋀,P_xt[QLA=#߯EU'N7䤙)A!ymQ?@?-@S8 F?@7fd?P& lHpR@8@P t?P)Oy F !ɑ¯ԯ[o"9߀z^a?@Tw%# 4P>Pb-:r<`"4S)E'^&{VS֯?@%~&ԦQU>@O]p?N"=X\,!>J\nj߲H  83'9K]o@U!/|[ߜ?@>֝^.w.j"ϡ/?M_EO J //A?(?:?L?^?p????Q"?? OO0OH"dO(//OB//5, ___oo耻6oJUemodoooooUeo!3EWi{w/.//pGAE+M^LWozC qSIEErMō`萏9@@9EMQS@@ -%?@H] ֯h?RZGA?AHAuA`&Z?juz@HAt  εt±ܲ7bK"Sε׷_u3ε'^稰!5LԾ@6Bs2Z0U"…DvA!c4Wb|iņ-[ɔeeDFZ??@̧"&JJqAu;O MO_OqOF#՚q<וC S!5\N`g-ޝ@]GkZBs1PaiALW A_,Ø-Instace i"mѴ󘂠fԔXGU'2Aq7u1ѿuъ %B+1ϯ)f}-U@y~M >-G@?)UesQc u䫳Ѹ Su:AOaѳ,w9җ6HZl~ϐϢϴ߰)i{ߍߟ߱CUgA?w?OcO?O+?OO3OP/ܢDer,T'9K]oG|$ Z2/Ł !D bŁNaM5:3E?m1Y1e5%فL&d@@gl@@`4F?@2R7?jt%uy{&iٹ N/ Ѿa/ [;8$=L).Z8 ek!'Zv2,w% 8-\%0Oڢ.UF0hՅ0v>>ÿ@UτmS ΆuFXjqX__Z8Z89u_0&ˑ͟md21aG+`Z8I20T11ڢ:1:3qR!!b3$ 4Y25b6r7Ȥ QCdդb8(9Vc!: Q; fmQ<!>#@"!QFJBeFaJBdQb)~_rqѱQbRJQqUO LzLpdi1!jw%HT211\Ə9gq׼]yL_atHw"qR+b,Ă-Y2;;b,TaP\p%uj `21Ŷ@.i1@m1k%w%!\@1фqU}8e\_v2v3F3s͵NSYM}`l Y5,@"(.e; Knh׿3 QAQAetD!jZ?~ ?}o!ˡ q&Ӕetq@G%Vye?klÀw%qUeˡe Y5e eFaCФ21HGHM5mSTSPrvcm1j Ueq ketooh6i?Qli9v-yAzv3.5{@2g}?_9HÇ$p]??$9%T{#C'qU%Fwg(e%Mhndj ?@FE+tr8ÁU2,Dʖ$4WO?@/?P ?Nk"(.hN@ǽ(e/*(!e:"qia_){//; xlq0x7>8Q>b.p.508U;@s>=E1qUQ5_N@-@=i{իO5eyeVdCC]mթe$2LI5 Eň,y1,0vS#2zGzt?aye-(%c:"o[/G71OCO7Kq_0Gӱc/;?T9ҷ9-&U?.7H5Ǯe>?Ob6aD<cg >]_._K_W_i_{____\M^?@6)Ɗ_0⮅xoo*i+P:oLo^opoooooooxDpOub6~E7q0*yCwz;88>՝ub6/$Fq0u56uWEfUW}_0-UDӖe7BS!#5GYk}\F6T?@ 6hW䞵ŧҏ*o,>Pbt6:ajrԕ8P+Uf89=Ͽeaد%7CUc{zڵZ// 0ńx%/7/I/km/Uڴ?F//?Jrg1?g?p ???I ]&B ߸4Xj$j9̣q0E|[ipbe?@vS^g?PJWڴ׸=243fk~ط%ŏ@׸Er_&x X!94k! O+cCV?@:H ?@7WLJ65j>53@?G Q/76֟6(<?@"qR&JRJRQa o 8?",v\hx?%\xݓڵA(4"1o(q?];t?@mom#i@w?@&`c]?@\u{Pȿڶ>ۮ@ ךpU?@.ӄT}qr 2DV&?zJ?\?|7P#9(G?@9ABBoZKՎ VӋ?:"?? OOD(ϙoN7OԤ)AymQ?@?- S8 F?@7fםd?P& lH:t@8@脇0 t?P)Oy޾ F DϗϽh 6cDo"9pz^a?@4w% 0o}u4۱1#߳2Vwl*DVWo xN&EFS֯?@%~&wpkl?>ؿT@O]~PN"ܳ8 ف1C`l~kϏ?j߲? 83Ÿ);$ 1CE寛l[?@>֝wj"/8?MOd6*O;W (݆n]3SD26HZl˟"au#P.}̥ D7pLx)U@r?@,?@HD0J?@VGՒ՛ .@l}Ϗϡau4".@ﭯdѯ㯚I$D"fOl6x\BrxSBTf2DVh/'uG);M_߆G,`0PZ~g_?@0]q?@ _ 55u??,?>?P?b?t???7~"7~p:@6M7qO8C?? Oנ,O>O[OgOyOOНOOOpZ?@_78M-Ic __1_JO_a_QTa_______n@ 8^J58As4oFoXoKuooa@ oooooo ^|>?@(=`6pD6nԬ???-,?f]$r?QR[1YVWXYZi_zTX>8e_A/ZAYAB ʑ$ٽߑBvV8іqug dk0ՇdQkdQkʕd1k$dQkd>kdQkbdQy{JdQy{ɵdQy{|BgQy{sedQyw+'ʑ6/6RзIRGut`N 6PZ|0ՈBƸ!tYMI_F iyDKa/ѵ) Ŕ@dʑO'0UxH!2A&AK`6 OzA8O _6j|H jDB6OG@!3Hꢒ)H@ė!kDQc@@QtK`` g;6s?tОË((뙻#2Z1g p߶ a2!`r26`!|3ր2$6H+Vvmy<< m1CUgy҉40(:L^p$6HZl~//V/h/z////// ??.?@7ߨ6r3?0?դ?/???O"O4OFOXOjO|OOOOOOOOO?/B_T]h_z_^]}~eQ^Y\х䇴_TX{ oo1oCoUogoyo^QotQoxQo|QoQQ7QXy\њQQh14OXjP2 EY߿5G,SX[ ҹ')Mqh1ѫ끾_ɿK{,< w=0 bؓqؕsMq%:UT`r+a/i7=Qߘ}r\bw2UjP?.ӭ4ba5._f@#5n5"` 0ʐ>׵IZb P4#?ώRA^!ǷQ.gQ%NZl`~Ư@1UT@Vj?@҄BP(% 2D hzPW˿ݿe\nπ7*U 5U>TF3JAeVOu3$F3K/]/"44uB"uP////6??(?@AQgOzOO1OOO,_PI$D"efl6%s6OHO_//+/=/ ooa/goyoo///ooofOV Fq4FX(vw 1uUӣ,`0pZ~g_?@0]q?@ W$6d5p?ᙃ@{43AfoӏSWȟڟ'9K]o~"7-:@dM7qO XÙǯٯ!3EWiOXKa¿Կ Ͻ|!Z?@_7‘M-^pςϔϦ$ߊY@R{Mr~ߐߴ߽|u@ ȑ?^J5-?Qcu H5Z7'9K]o}^|>?@(=ГpRV&ɯd2?0485A5787|&xQe_O/'oYKcs!Uo .odU{a9Gu\ntq$=D1$Q/-8!uu4vw,aA8! !M7U@+JR @@(?ʏ@@d=5@wT1?&VQts-8R!RAӭq8"Xʵ]U40@@JE& @) !p!Sg0@z3MMbSoeo "p"1.dfooneq (uS@2?@qp~+wU715L0"ac}1{vzw Br8"d}58 tUr?YYYF s #8"] "a@J0Q`sAnpect]BWpigt~EU0v8!ك@EKlDBuaAO`b# H*+Qc3awbuNq5qRY@updl@n` v*uFqq``Pptez@nFw*EQ338#OL$BA !srUr8&^q1%!8!8!! ---%"2T]0`57T3R]0|@69P8b6Xނ !MQ!$+%:L11$18"ɤ"֤Ur}2 a a2 A2(L@:N?'%3 %3BlUu3PRC@}5VC5 K#A˻5ӿpX}"(3!T8! a a8"(sAT8!8 DCUp` w/?2Bz8-P,d*FU!Y}X5>QH="H`5T0 Q Q8"c"pUr}}2؊/ҥ2AڤAe@2ܾ0MR@U@-ԅ1Y(9I"Ҷ"$$%->PTvk-}5 /A5[mA5 1 HZld~m4Uq"$UuI !*8".@9"(1 q3103\5G%TUpv%(}X<#Ad}%?jOT\w?%_ A:MQQ#U/# h%‘Uq}5 0r4(4!q^#YȎ$AV_q<(Uu%V?݇(}5-&NSAqOTq_d?7_I_[_m____t|> 8`9rP(ko9?@fu#XE_`q oi6qE:oLcpMhFoOONooroOomB?@?mEl+=OܟsuqsVVVR%7ImoǏُ!3EWi{cUvǟ_*/3EWi ïկ 4/>tB.M(hz¿Կ .RdvψJ^P{HUd@ ߃/ASew߉߭߿acυϩmxKM_qߓߧ߹57I[Uy1CUgyaG a///A/S/e/w//%I/. @)/'EiW/#?^3?E7rS?w???????BT@ ?@ Z%@@1W@a^<HW%1OC@rJO\I<& F%+JR @@(?ʏG_H&O//CqE&6?%? _2_2N#@ BWtY_k_}__UrS666Y\oo,o>oPobos\{jIlAb il#rOooo 0BTfxsrsfBUo8J\noڏ쏀"4FXj@?&d2np娟̟ޟ&8J\noȯڣ?q+4!3gX A?X+S Koɿۿ#5GϓۯC5G}ſ׿J-1CugyϋF:3'9]o! r%7r]oe)?PMN&bp<_G0! @0~͑!=je0Yĉ3!()5- F%$wn?@q_c?w?PixRt2``͑ Ϝ)*QtEФL)kv3Q1̅QcIo;"!'0WFF7L3UXBKQcŁMu y_ch""!1u15fÿ@iF[r؉%?$ȉ&Jg xUCB/y<<ff b;0O@Ȍd#S?``K F@lQlBVD` Q?2EX@>-48eHo?ljo֠i;̂)=D#*JD +WDRyaya3aa~D~ae76/bu\FM%{ uLFRg1{ 2ao`#UA$"A \ hN\U_;S1ׄmmF3s͵NSYF+`=\c?,@&{[@_ԏ.{d/t/nJ`2 8oJo\onoh8ShUpm@u;o=o;e3E;@E@ޒME#aa:R0vò1R~1~13]]BAA|7ф p8 ބE[[F:S;`mz>,{Q#}UU.FcŬVݐxOOq5OAOSOeOwOOOOtڍqc?@QqG?@iy؀wO __/_oS_e_z_____9oKo]ooo&oooooRooo"{^:L^pޏpS7?@)@cF bVBΏfi$6HZl~9cꑫ#5GY" *Ђnဨɯۯȣ #oW (*<]6S"ڿ17oϐϢϴ,q + Y=Oc@OS=|Av?@)jNJ%s(zL&=ub~5V#H-5? @G xaC8MP>&Vjõx&|8vJL,f?? G!:2['%B/T*d7Ir!iuѩٚAe!PヮF2$?@m)İ?@9yT UU,>PbAjAI /./6O@Z/ FVN?V l/ OUojWOiO{OOI e@2AWOOOOe__AQ/_A_S_1ݧ_U@b_9r x(j?@tGFgPB,8CEwxI5 4$>D{C?h5?ez2%H`=&4'U>N`0O6ona4$>!~?(`rO̿޿"Ig!J8J\e_w___[2,?@O'^t?@ZOD?@ t%}%(%k(8g/ v./!~rh "YR?$WVP&8\n0Gq/ /2/D/[GXoN$v&]O3(5S//////??(?:?/[Z?!~l(Or3n???????OO&O8OJOlahOzOOOOOOOOЈ[L&OP²Bv&VV;YsM___q________|o~p|OЮ9oKo]oooooooooooj-Vq$MYk}xm@ 5|t(m,'#\q&(:L^pƏA0H&8J\nkџ  20DVhy>Ft(Mg7qs(WӤ̯ޯ&8J\Q|A? < ʿܿ$6H@Zl~ŬъϜ Ů,A1Ѯ 4(U@$#?@qc?q߃ߕB҄NC㌀y<<A~3 ?}9bb[z㜰;S9u^`` FlwCoor[zۜ` 2.K4;q~ ~ 38M) UK珵ZV1C@OS\^Av?@)j֓(".]ti'A5I B?@J2Г$oq?>?@m6fI/Bˑ128V ҢC_7!ܤ'Iz~!-A>5EMQSē(>2V`ȓ(!oi'?Q{(!2 Pi'"%P/b*AG7 !m$KHBT;uo{"%ɝ4ǣAIE /t)2@@$=IO?@~E)01e &c2 [ts `^Q m5;j7?t@YcߦfeUgƖfeog4dGf`js%ctEQ'7 mB7!Gf|f vevFr YdM@igEQ/ffÿ@iFruC?tt2G&o;A5PjD bPw"4FXgp$Aĉ EH:KI;X!nRd@vbAACbQ] @xN#SHgNYǠ%H5E\!f?@?Ǹ1nH6^>HEKr_?@xR̍ѐ4au@"p ?@ F?@ъ޸?P{ 8C_7uAuEG?ߣGNE&0w7ƍH&%1n3KþHI%E6X,%An?gOғ$IEwě7GI_P( HV@!`XVHEOJne5&BE%19KIOOX{SA ?@?q6BMUQA^3BP(КO?@i|@&q]QgU~@|4/=@f?]h!΂??/////J.8FSA8"4WC/=I?U=g}5kA[AN_I?< 8L\\82NOUnH"zkwUjP.ÐL#?cUdaۀp_zu}`` Fg l|pCElEzp` -AUqqpp A&8JT\nm BI&]"bObPzl#}̾MXuᗬc U'(IQ4$D QUGOYKXRџh4O_^\V9U @sU)KC΢].]oP_m%h Zy_o2' ڀh!gӏ1 2DJYkʟܟ2(?ʏ0`b?@Q`L^pJϦPcͯ߯ ¿yӿ ϥ-?Qcu˱ϟ@1N\GQG?@dCn]&Qnn.]onY]^~?2!?SewIq=Q4@RdTa\A41 ITe8'gU@μ`Ar XSXU .F(2zG/z?/Bev Xh%n (}ESq-?Qc//wg9) M$\MNqNql/~//UQQ//?2-Z%&v!f?@Ƹ1n/>(?CvKdmծw? @aV/=aV7>h% 准BP(Q؏d\JߥRTڗߔ6BӃQf?? U4jUwuz???O#O5OGOYOkOaOOQOOOd!T!h)eU7_?@׿`8H0w0%:\e___S=%CO"_ćy\7ǟ@!^ߏ=^)"DnA0gT?1C 0D2WI[msҡү䯀ah!ph--8U@ph fp8?@$=X~kPD,8C$ם$؜iGPR܀ @ 6?@x<ŠW[ ƅ-dsn)EoWobqbbuAoooof%o"+!9)q$J'qy)%?/~,>PGmߑOtt߽T!߀OO_"_QF_ _XzM2qX#ŀ____oo%o7oASmgoooo3r7By!̴ !uᅨu}ϡOi`gFSuf*ҵ(֏L ‡]mOjZї_߅ę a}_I%΀%O۟,5Pbt"u (ia5%EM/F46 t nh?@:~#?@!U_j:KT///#! =??.:UD43fyPbt@>M`HK݃L㺿̿޿&8J\nπϒ϶ ў?91/4FXj|ߎߠ߲ߖx(Q'HTfx@y$@8tXK} #}P_:#+=Oas'96)Wўx#5Guuybt` /Qa?@2{jp*KW7ٯ]SS/e/w////////??+?=?O?a?s??Y?ўT>pƔ???OO'O9O@KO]OoOOOzOOA OOO X",W,qzyQ"/YOQ;QP_~~?@)?ʏ. …@˅___RLXf}f;U-sPj9oKo]bvpRbbbPzVwwavSQup`` FJplh`C]oh`orqwk` ڟ2땀ߴݴ{!dzy; C\js$×eiyd8| oE[" pQ p oon%P( o ?Z%+v!f?@Ƹ1nPbuc&U,uKr?+@M²̲tLX0qumQ?@B @ @ ?@U)8V C_7`e,;U,uG;},,u&Ӏv7P^FKҾPӡ4͆z $&QӀ`Oғ$Pۡ(z=ԇ&ߥ  K]oy{|3SNp,8F X\n߽ܧU@xw휏5_5>[obA!xͺ}ASSqIx a%U7=Q蓩} %Ux!zGz?En涧hncUUv{[|s,`w~y<<p?.Re b#2%PA_,`u`` %F l@1l "$` .2%p@ph-D!'9K]/B/T%Z" /0w$a,/a%S^1 eM<}?<: @ (~-?hѩq_k}ߏߡ߳ 1&d2?@Vj?@҄pxo#5GYk@}&n/?/$ @?4 DVhz;( a -?Q ||h4WFxExER//,/UHs (\/n/'S@/? ?2?S2b?8 A????Dwk(р!O3O\A JO\OnO7x餉eMYBZOU@{?@,?@HD0J?@VG+uu_b_t_(сooq+Ta#.@Q{QEw B@Ҿ?@?<ӃڇP,W@TBk1 U'…˅ …˄SqBW:!TS__%Wbn?U0buxo o2oDo9{bRaU@oooa1(т?Hq6BTOOOOKI$D"Hf'l6xt(_:_L_R_____o HoZo5{oGYk}ˢΐӯ=x(0߱g}"еEU@,ߍ`0hZ~g_?@0]q?@ ŀ'嗍?:!е43fy`)ۿ0Xj~ߐߴ~"7:@@ M7OqO0BTfxE:LCOasJjZ?@_7?M-!3EWi{vnh! /ASeJ@ ^J50]3//&/8/J/\/n/e//!/////? ?I^|>?@(= ?p$&ňvbn/@$ hQhQCZlc`-[dUJ**U****Q"?8**e(nehqQ-Eq*WVf L1@A7Mu4!;uU4M;-4!K u4!KE4<1K2u4H1KZ41K+41Ke41K 4 1K71K54!Gkaga qvao`@vmeVeʉ4R'utO0~va4ІBQ_Z-_VBPZF%)iGo Mu 1ed; qW_'0Ubň*!f,DGMq V8!(s 1MudMq oood- om ja!ǏY1U17!ψ!3rgf/Hy b W Xb$R A!BTAq}ߏ5߻ UU@|h4F ԁ5ma&HETjEk (S@R)1AV ^l~@(;ARASQ qdA`orjdE܋YfU@?@,?@HD0J?@VG+7E@Eg^Qv??1???$1hQ'{]19A1RO{?@Љ<4&jTrWP,W'@4!Dh'ZUcU ZUcTCoA5{OX$pkCpqs//0""uP////ÚBVB`)?;?M?(kƁOOA1OOO-?QB_uI$D"fOl6 [OmO_//,/>/P/b/.o@o/~ooo///q?oou:ё0Blq Yk}(w]1y Au5Ut,ߍ`0Z~g_?@0]q?@ %7IcH5T?e43f)oD:ђ)(:L^p~"7:@ˉM7qOȨ}Ùگ"4FXj|]1ۿ /A|jZ?@_7¶M-9ϧϹ@%7I߯ewߡrߣߵ|@ ȶ^JO5ȨRdvm5!3]L^p}^|>?@(=$p~Pwew1 QEL#Ba)cR1RrvvHzr5 Ur?AF 1#"]2"a@JY@8Q`mAnecutBW"ig:MtEav!٘@RC\YBI&Y@bCB@NFO!vXaXba5UR@ud@n2H9vOYbF``ԏPt&e@n8O %Q3:3#OL$ՒQ5!sÒrÒzr8r} (%1!!10=j--8"2T0pW57i3g0@W697P8w6m5!rQ 14 ;8l^:111"Iޤ5"zr2 "EaEa2$f,:28ѱa@-L`0@Р<5%HW2XXzuHPb}@5HfX5 K8f}:5pX75(3!T!/a/a"8AT-! YC P` }/'?"B8APَ @K>SQ]R7]u5TY@0Q0Q"x5"օzrԢ2؟ "T2Aڹf@:20rR@jԺ@R1Y89^7綕79#D$5%0BSeyvB5 % 2DV5pf:5"4F]o "o~m4 Q,7zu ^5!"S@5"8΁01c 313qa55%T P%(X<3Q}%?jOT\7w?J_QɡrQQ3U ?3}%q Q5d@E 8!Qn#Cn$Af,0BY!D1zu%Vz?685I=%6#CQ_*W18_?\_n______T)qP$=IO?@G6%@5?IˊGh|E@o(`1/oAiaFkE@@4KҾd!eFoO _scDeKV7_J_RsC@+ >Pbtu1s fg2s{P"4FXjbPoϏ);M_q1Ó?)bןz 1CUgyӯ -?z^WC(o?~ƿؿ 2DhzόϞK_5;&՞@ @C?d دDVhzߌߞ߰ "vϚ+߾$6Zl`ߨoDVhJ .R4Fj|//0/1J/\/ 1///////I ?>?M6?rsF5:(a?O&$~?@ ;?$?@~?@%#?Prt` 6v!2tj,2 a885'=85A7dg##)vQŅ+nł!15f6ł14 U@:PfpqU=91gB!amhOxCy<<A++@9'ŀbfgb`"tOm7B"ACySd `` F`lqlbd` jQ_2e}@cCxU-U?@UG?@b4ɓK*UU6ơ o.@CcłIqIqO\d11rRdXDQDDQ"Td!/3X>!ekZV?@'IOғoo7k <)~e|> }>]owexVp@ohX~#'E~.r/AkP( "! o%%&o_!-(11HX)\"*iBv"b,ג.f8_`WA " #F3s͵NSOYFPD~ "e2226`opM 6TR`_l³ `aѠ!3?%FJ/!!QV0UV0V0V0e"0Χԭ""/P[@H&챨!Q5˰Հ"a`CP+% PC\RudV0B7A+ ɓL%m=(1ZÔ%NPTW^`RK3@A- i`3PӢ̹XXG '2Kqм)F%!De m0'qV0 Ӣ+=Iw !0W]@ohWPD5Wsѫ_QF4? 2@'#$"4)1oV-Եv%!Ѥ%+鰕)_{/?14 7d`1CU&%%11/+!"a1j!7AYga[GQ@@1S?@O$,qٻDh8{Z rGg?@;mx>@ۿ9h7 E(>5~%?@V?@4W e`/HC-Z?@F?@P?L߯Q/֕ UI?@Y?@섰a?@@\ K/"U@\n?@:?@3pDٳx?P+k= 2`!U5rP%3> C4?@4?Pu>5 w 5mY*?@uӧ?@?@* ?P% u1E"euf $0l?@|/"/M͐!@ŧ78E [13nٶ7g+O+6Y.(v0Tߕ+L!@k zO~EAr 0K(0F0zkdOjpT꞊j\pmB).~r_'6?@v9"0'K ;(f_)~C;Wpb]/?@J_5@jlJ?@Ho co_?QE o ŀ2ţt*(Xy/<<'"sֽքy?;q3Su`` FUХl CrzŐ` T2e߇݇őbbz(Y=K 7=3$EYQ`thud/ȭMd e*uӧ?@l0| Oh&i?@:J@?@* ?P$ ?1Eh&i\9o C?@Q( BPEP >5 w h*e UI Y?@3 Dٳx?Ptk= `h9H -Z?@)${P\?;X}\Oh9~%?@V@F0L߯_h94Z rGg?@4W eh_X"U@\>@I(16o蝩 /AS?@AjЁwQu0o{sŚ'a0BTfx,&9K]oCf֩?@1Qd6(B@˵0,/kP]?@8{#΅h\* YP-hP~E ?@_pLViwM-/6%Kx?@ oi?@PuȏT/i-kbܓk"uTy f =yǃ?˯2?6l_0'1㸠Z=ص ɇllp?5Jx@&y_ ~@j{ Y=6w+4 1?@NȸO>A{?@l!%\@_^ nO69+2 jd?@oGy=o =M2VϽO69z^r`Zf5U?@F/`_`f Pǎ _Vd6ENju/-gPRrg n^˞h\9f]OK4n룠?@{׀ BiϪ_6Il) uRuF?@B5r#`n$Xp _6;KG6P} yFa%?@O?"HoV@7?d>@M'0hooaooo);M@`0 \0<~ @9{vlȋ *~d2L&G0\sVR\s ws` a$6HZl~ "q(R~@$uNH?@~HYbאztHt0BTfxI}^`wo" Y?@]l o 5?yh Ѭ:9/m?@ڼtɤ_i?@0>mĭ/ZhE" ߣXE]K2yx#.b+?@Q Oi0#d 0K&?/eG0gk̛L "Cg|pv?5Y,0xd> 9{eD=90,"f~PXetpv!Jx8Ob> W?@8+0ybOѦH c $j #?@?BY0ϱOѦ>j @-}JӦ?@զ.k]7a%_T-w< `?@*O7N$ٌZ]l : gk?@۫?Ն|^tߞ_~Ѧ_g\+P˚yP0ŵ?@!tr_ѦOt(?@.EF?@A ԝ֦i"abOtOf.5x[@?O8NpO_JN.r4_F_SǾ;~-__ge@9h E(>~%?@V?@4W e0EH߸H-Z?@F?@PL߯Ve UI?@Y?@a?@@\ KU\sQ?@:?@3@Dٳx?P+k= 2`ZU B *CC4?@4?Pu>5 w UmY*?@uӧ?@?@* ?P% u1Euuf$l?@| "/M͐&ŧ78E [13nٶ7g00Y.(vT+L&ɇk  EAr K(F0z@kd  j@Tja@mB).~r/, 6?@v9''K;(k/a H;W@b]/?@J/@jlJ?@H ?¤Ğa զ?dDVJ#?ߨߺwa4Dr/v!jP''C¦¦Iס?Sru_`` FZliCrrz`k` I_2ZU|Q|QaqbbbP1zT=O «R[$"OTREmE¤4zk~H 5o/oAoSoleoo?@#rooheooodoVhx<hA2DVhzgB᫏Ϗ -j{C^`мΟ?kp?@'IOғ#51K]oЯ{@Lϯo4ϳ1`?*<N(G}(Mqt?@Q( B P >5 w 8  UIY?@3Dٳx?Ptk= `8 H-Z?@)${0\䵇;X}a8 ~%?@VFL߯/8~ 4Z rGg?@4W em/('@\>@I(1;?Qÿ1"4FXϚ?@?Aj?wQutƂCşϱ' /A2_ew߽߭ߗ_ 0[BTfxtCf֩?@?1Qd(B@˺,/k ]?@8{#Ί8\*)Uh ~E ?@_pLVnpwM2%Kx?@ oi?@P~zT/9kb~ܓk"puTy k?=y?7~l_'1pZ=غɇll@ ߞJx&yp_ j㡀) 6w+4 1?@jNȽ$CA{?@l!%\_^ s9+2%jd?@oGy=t=M2[9z^w0Zf5U?@F/`_`k?P/~d6ENjz/-ُg Rrln_^8\>~~k-OK4pn룠?@{׀Bi/Il.uRuF?@B5r(0n$Xp /;KG; } yFa%?@O"M?n@7?d>@?M58??1a??? OO.O@ORO@`0 a<#@>FqȐOOOOOOO_ _M_D_V_h_z_____S__oo&e)FBH 6I Txy X0*Ozp`ǝ?!N\ ?O/(S ^/6+: A9e1f.]~F[Pq?R9"ͦpZݯ/[/KKbĶv./R@ %{8=ޱԿő0 d2L&LaCpV㗇RމaC|CϥϷ#5._Yk}߱ߡ_ܛ1 [Wő~@$uܠNMb?@~H^cgcוJ DYE5GYk}I}^0wo" Y?@]qo5?~8 Ѭ:>m?@ڼtɤ_i?@0>mIJZhE"ߣXpE]Kܠ2yx# b+?@Q Oiܠ0#dP+/eLgk̛Lܠ "Cg@{Y,xd>p 9ÀeDy 9,"f~ Xey@v!Jx=Ïb> W?@8+y񨌟gH h$j #?@?B^۟>j -}JӦ?@զ.k]7a*/-w<`?@*O7N)}_-l :p gk?@۫p?Ն|^y/~_g\+ ˚~ 0ŵ?@!tr/Ot(?@.EF?@A Ԣ֦i"fA?e~@|^f Z t0 d2h粵8A\q<ԦD14??#54 Glea1iIMQ޲rd ;?@8.G?@?@eQts-8GR`A)qBRx@ ?@ Z%o@)bp1@@z3pQ|ߔapE_`.ߠ4e5Deþ0#sxs?@ qJHp\ kUx\3R1BR`P2U?1F BP(?1%C]bzUJQB`6Qn(ectVRW,ig0t\UQ]t_SR]P_TR]aoNQ5 U%RVPu(dJP!nP4j|y_,S)Ry?@ж-l ?@F:\]?@?Rz! ن 2С9Kk)@@$='IO0|ԠNUƂAT!}?@H4GYk}桡***P,>PbtbP!3EWi{IG);M_q&//%/7/I.j4Fa/M*0L&`-//////??&?8?J?n?@??6?.??OP D @Ei2*ONO`OrOOOOOOOO__&_,_?_5O_ O?.O@O"odOvOOjoOOOoO__y_ N_`_r_T___o_o8o_\o>Poto(:Tf}Ÿԟ(㳏w@|}0?Sצ$"+b# +0BTfx,>5Wfo,oPbt x< ptV+=Oas//'/8b/t//P,qhC?ۦ/r///??(?:?L?^?p????ooonoOR/$O/HO/\///O/?g?O!6m>! 0BTfx|d$f |~%7Bfxҟ~fl@@;μ3@@P4[¿@H?ΥM F@ 29K+5@i{Əԏϯ )=@ UQQHZl~ (ѿ+=Oasϯϗϩѯ'9K]o߁ߥ߷ݻT'9K]o#5GYvnq]P}"J3՗'9K]ρyPb|oBB?>::^p//$/6/OOOO///2?4Fz?|?I/O/0/B/dOf/x///~E/,9?O?/2?__(_L_^_p______ O_mo&oMLo^opoooooTonQC 4LV=X_1+^Ni|O8 b"eR5׵uG2O_]d0'wt @@ P@@ڋe?d?P DyoQ|=u`gPof=Cwwtq `̏@utDNrjۛY(@uIwЙ_ы@ucwEnrPH wL˵2s0TTVAɷ[4T͙I[m DqA >CJEۅlBwdi&5_G_YRf_M^&иCT8TUVS֯?@%~& Կ>Nk"TGXaT)/do5Te^Addq=9LɟiQZV@@̺+@@h@@_3 w q-qMvssfss 21 sKAv_`s`+`9`Gl`HW`Xjfj wj;1xvSOyPc3zjw1cPUU#R7'KK_C ssT'%  ')9O 7ccTwH7zz?ΊM-9iFA3ru$es#񰠂agӼ&A[XzbA1A t &*2ahdݡ$DZ&QuA0Gz"DNuDNDNeDGDd[Dd[DiAHN3FNDqAHNuAHN@AHd['DN@}AH!d[HNH1!d[D_d[&Hsd[Dd[AHd[Hd[AH[ݡHd[Ah[Dd[@Ah d[IEDu~[hv~h;[AAhO[=Ahc[ҥDw[ǴE[PEDWMpv[!vBvOAv\AcviQvv?QvM񰐑cvQvQđa1 vё&aޑha!av1!c_vsv, v9sscvSv`vm 6vWcvO vġcTԍ%G?mG QAuAA4@?<gUiA4mHliAUT]I͛1RT*J@@x^?@;~ׄ?@}SBy躵Q?ts-8R2J1AnA2ʘL&d@@gl@)ppq.fC6@@z3"06HpJ<ǢuϚ/8E䱳yெ~5?@qάԵ4,?bS^R^^҅E`Uҕ?YYYF BP(?]a@JA`Co}nectwrW @igtz"࣭Ajց1ف '@lZYAdb2z @b#c +H4FaNAU5Rudnڬ +FAT`UPteyn֕Ab 5rUQA33?7 2$A/fӑ{ґ8҉1U?:,_s@au*1)IT0c577350I6U98E6;/qAqDjW'*H/mA2/8QR++rRRaaR&a&a2a/@`4F?n /ܠRb?%8Pֲ&QUԶ&U̅eU(qUpp`R/ A/12Tς/1f]Zu8` w?BQU=LyZ@ !rQA /@R@u /a942F4/S48`4QRm4rR|2RAڇ4RЖ22ܡ4Rݮ4b޻4b$4b4b4r9,fEcE?1/?Gm!O3O7NOOrOOQUOOOOrUO__$_>_P_b_t_c______oou.o@oRoPm48/R8Շ //摪/oi$ W!`3?qB*q/T@nf8Yq(`PbtĜfl@@;μ3@@9!·@?Կߟ/+awvϧЯ񓧿@i)  2߿Vb ߗߩ'cK]ρ#5GYk}ֻ#5GY} ~%@YOO2!kO}L/OpoOOOoooZ$6HZl~_}zm$6HZlve{?#]ߏV~R+Q6Zl~Ɵt|>?@Ķ-l ?@_Qx?@bAjK&Q-?o./SM?@Em%ޯDãYEXr?@ ? 7Z1dvncuSvփb?@l2˟ݟ~%a2EUgFa{ïկ0 b9K]oɿۿ#5GaQew寛ϭϿ߇=O߀as߅ߗߩ߻@? (ʵԵ/z /ASew+fxB߮,>Pbth?z??N?*(G k} /1CUl//X?-2?QV?u7????? OO.O@OROdOvOOOsbaOO4=aOO_#_5_G_Y_iw_^6a!\1_6f?G0J略_G\Gad b_A'o9oWpaosoo|?oWa|>?@Ķ-l ?7t?@~5U`@S׻?Prt@`a ggiRttR&UoẀUWވBsa0m`ㅃ!VvǰHfDztU!p!%de=@Yr_Ae#̡دoePj{cZYǰJXCbP{LS^t`` Fl l` 2@XsHb^BgXUH_@Ua(?@b4ɓKU$YV'BP]/BOX?T51uSQDz@OۄWbZQZQpphRqqBT/47SI^@8kZV?@?'IOғ@RdWe8OP<䖟8%SFP}>pܟf8xՐG+k U @ShzGĞ.r 8, "qQ 8%d_AA-WbV1V1+0!!)۴B*贙s,# 0$_!óa"#F3s͵NSYF 1 [ P ̡iQ;>bDbJf %тmWaѵ&b޵@Wb)@_A[7U@UOS_A$===e0GS UO.wp~`H&kw@wWewt!/w0wV1&aa1@a=sԪ% CruAdmDaC%NwTW݀RK`Bu@im&aS/KwHXgX'2qRf%!)t(K x%vqs O:Ba?s?=H(!WFP6'x%7Vs  We6Pk8 RgojR //#e vkDH!^B|IDaߞMSsEQDův /Yb=_O_rQ/7dL&a7a4sUSnE7a7aKA'dDap`AaQHWagXs!Q@1S?@O$,qts8T{Z?@ rGg?@;mx>@9hYW E(>IHWe\E~%?@V?@4W eFOIH/\EHğ-Z?@F?@PL߯OIHU\E UI?@Y?@섰a?@@\ K$_IHu\E\?@:?@3!Dٳx?P+k= 2`X\E⇒#S@C4?@4?Pu>5 w X\EmY*?@u?@?@* ?P% u?1EX\Euf~P$N`l?@|s_X\E"/M`ŧ78E~J0 [13n80ٶ7gۯoX6nY.(v`T+L`k oXpYEAr `K(`F0z>A0kd@0NJG`Yj!T꞊jېmB)~t@.~rXY6?@v9P'KWP;(IY;Wb]/?@J:XE\E9N@jlJ?@HဉTv$.%% 5??-hzI??'?9?K?]<t?v'+V7ֆHjP'.?a Su_`` Fl0iCzyrzۖk` ȯ2٥DbbbP1zAei8=(  (.5A$7juKO%O*Ǜ7Tҿ6!?@Qr*!";>!>!ZDaK!jqqW5ȓ_qȏڏ"b4!Щu*_ruAuX_dY,~_hoi=_loeoDoH^uӧ?@l8`|ǑoAci4?@:`?@* ?P$ 1EK!ci\@s?@Q( BpeuP >5 w ge UIKPY?@39PDٳx?Ptk= `(AciHě@-Z?@)${\䵇;X}o,Aci~%?@VpFv`L߯0A~ci4Zp@ rGg?@4W ek}gejN@\>@I(1Һ!-?ky_k}?@?Aj9&?wQu~`/0/B/T/f.'x///////?@?M'9eYewџ@`0 P<9P#@!3EWi{̯ïկ /AS ]oS;Ϳ߿'9K,T'n-k}G2,}X < ffU:Ϗ Z[;9C5 `϶Ou4sDeSF_jod2L&PEV㗇R ?P/$/6/H/Z/l/~///////0? ?D<W?i?{??5UX~@$u[N̲?@~oHݳh4TŴ?????O O2ODOVEI}^wonO f" Y?@]@o@5? Ѭ:O fm?@ڼtxɤ_i?@0>m1 _ fZhE"-PߣXdE]K[2yx#(e^b+?@Q Oi[0#d̏Pߪ_ f/ePgk̛L[ " Cg_ eY,,`xd>v 9eDBSm9,`,"f~UXev!JxoBb> W?@8+,`y o fH @$j #?@?BPZ5 f>j Vp-}JӦ?@զ.k]7a f-w}l : gk?@۫vК?Ն|^"~ f_g\+C˚p0ŵ?@!trq fOt(?@.EF?@A !֦i" f@|^f Z d2h4GBj)&;fQMY7-ya4aenπȝ] ;g"f&#jtm` g?"tz#&%-%'8Ka ,n#.#1*@6u]N<#m4Fcue2B Y]sO+@PfU\^y<<rG ܠ6&O ?ux0ίN7Uõ.@UG>b4ɓK^ST,`gSΗBP;2PgE(dOppjȍ_;bH;!TSa:1:1]NdmAOd2Q6dRCd;⠡*"T]d/Se$SX.7lbmyekZV?@'IOғoo7yk<ooye}>/yexpolh;K~# *%~.ryk@gĖ\2~N__S*!-脒2,+($;)*"*) 6(8P0@3FR4c5S_,bІF3sNSY#FB;Ra*%"RaR a(T!|226m]_ MˏPz],2*%`ax%% * 4 e;0;;2/׸@&0YHVUEûŸIû5MûոQûո1÷@W끊UPCRud!UNCPTW`RK0A\iPՌbHX7U'2KqSмXFU!4ibK ֘UbqaF!F!ՐbHi!|YpU 欓WјUx&? h[PU]ؘ5D\sё@xE_WTK:2I7I?[::2M_UñYañ/F!Y[UaCuR)D_{~//1Cux4Tx1uCUUx1x1@+*!av]R$QbH>!X~@1S?@O$,qXDh8~{Z rGg?@;mx>@9hҚ' E(>5~%?@V?@4W eŇ`Cu~H-Z?@F?@PL/ UI?@Y?@섰a?@@\ Ke/؊u\.?@:?@3bpDٳx?P+k= 2`C(bdP# C4?@4?Pu>5 w ([mY*?@uӧ?@?@* ?P% u1E(Tuf\ $Տ0l?@|Ǵ/(ȅ"/M͐0ߧ78E [13nyٶ7g?(w>Y.(vH0Tߕ+L0k ?O(~)EAr H0K(H0F0zYpkdO)jbpT꞊jpmB).~rO()6?@v9 'K ;(+_R~);W`b]/?@J{_(Dz@jlJ?@H_Zñ EvYfo#$ ߻oDVhz ѵhtlxYlpy/<<@'c>PZZIyo?S2u`` FJlCr[zۅ` 2+<<ㅑ\bbW1zQHDEʧ=i= =Zio$EPoHjrTfu-uZԋ:>xeݏl%b?@!rYYk}Ɵ؟oQ(?Qcukx<ڭѯ}a(:k}!ɿۿ*;s^ϸB 1Xj|ώϠk02?@'IOғϭa /ASߐ;p dߡ/dva 1io(gD= moL 2D~w`|t}(*<amKI?`&?`U@ K#?`Ugcms хhq>|ihqhqoe AAAIQQU0nuXȓcW_U ooVQ_~cUb4!P?Щ_ )e_Uk_I/VeOEu_/Ua$9mNO/UaO#I~O6?Ve?5/O?Ve >u?@ly0|?X]9u?@:@?@* ?P$ 1EX9\4 WC?@Q( B@EP >5 w Xը5 UI Y?@3z Dٳx?Ptk= `Xi9H-Z?@)${P\;X}!OXm9~%?@V]@Fͷ0?L߯]_Xq94Z rGg?@4W e-_X5@\>@?I(1_bnaZ?@Ajz~FwQu04@s_q'%7I}mW ga&8J\n$Cf֩?@1Qdƻ6(B@˾z0,/kP]?@8{#Jh?\*I-hSP~E ?@_pLV.?wMY/6%Kx?@ oi?@P:T/IiL-kbUܓk"~}uTy + =y?Ӑ/6l_~ '1}Z=z ɇllEpG?5JxT@߼&y֐_ T@j@I=6w+4L 1?@*0N}?A{?@l!%\T@_^ ̿3O69+2jd?@oGy=4 ?=M2ςO~69z^7`Zf5U?@F/`_`+ PjO6d6ENj:/-ُg~KPRr, n^Jh\+]OK4֐n룠?@{׀Bio_6IluRuF?@B5rPn$Xp W߾_6;KG@} yFa%?@O"Æ o6@7?d>@M\hhozoaSoooooo@`0 !0F[P1 P߾O~tR9րpZZ_[/KKbĶv߫_@? %;]ibtQQ08)M1ʓ|>°d2ǙL& 0!sVRI!s h Ϭ:L6m?@߼tﹰɤ_i?@0?>mrM/~L6ZhE"n X߽E]K2yx#R˯.b+?@Q Oi0#d /L6/e 0gk̛L "MCgAp`;?M5Y,m0xd> 9@eD=9m0,"fPXe9pv!Jx?b> W?@8+m0y٨L'OL6H ( $j #?@?B0vOL6>j @-}JӦ?@զ.kU]7aOL6-w< `?@*OIoNɌ~]l :V gk?@ܷ۫Ն|^9c_L6_g\+~P˚>P0ŵ?@!tr߲_L6Ot(?@.EF?@A b֦i"&oL6%@|^f Z 4` ?d2hu8Gd`ܔjagdcd!omqEiE1ojE5!AvG#O@@쯠UsܼnU{t`` -߆?t_`3{{{Ru LU_ujP5qɏۋ'd`e` ~@q( hUvJ!a [a X%G@iq@%uw1wmWP/qd`EITd`/R$LLd`1 l$ޢ3$"I4$"5$E26$27$2C$bM1$M1B9$B:$RI;$nR<4R>488pF<4_JJV4q(c4W)p4@Q!jaqiMޥ2)qeEX7' XqL&6 Dbpۤa/E(e:-T.DU!N O „g*PL= >)_Ckf5bs5+WTޢ,dT--qT|kYTa"p4`%d`uLp^d`ad0UeN j@RQ[8lޥ!N _cG3F3s͵NSY?15b-[1j|W,@‚rvQkkonxPO%/_I;VktMfdEjZ? ¶SSǪ;$̪eĸPf @ewבqHCOqZoEOqZOqZޥOqZ-OqZ|OqZkOqdДP:2&tQ瑺N SprvB2^'DoN?E۸:eõO*?@GAؒ8ebE!9qM?@?~?PTr ?Nk"ⱬeþ2?.۸kÿպFDSXeEHAƩ}˹y@!Μ8oEoΚw M?@>ev?@<ڲ|>cSo}@y0Lu~б{ZqoAZ/aa{ h@3$M4se5h:5J s 2e#2zGzt?"oAoH:eFaf#X}aeygOaǿiGdB}?41߿~իM 26`ǏW\ϟ#T&\$ >&q:LQiuf<I?@'Ş4Q.ǎ$6H+PXj|7Ԏ߻#&<ψ YV:e#__F2?)eR"?}-S"i &Zqq5ASew,ߒQ ݦ?@saY_ ͍EE/H&/8/J/\/n//////T?nQb%.^I?UGτH{<;N?_ZZq?OO%O1OCOaOsJYYO>P1_3 0*_<_NU鈨tf@CUg__Uh__dM?#=oZNϬϧ;Ap<>l{"Dƛoom oooRO vOOB ·z- ۞J}F ?@f |?PJW)tx=P?43fܨypQZ't_wCUx}B+߄q,ʞ!+;%7IC~!,[?@M@V+JƼź~ĥ>үy?Sr^ϵoU/ӛr?@Y܎_?@~ Gp!tj˝'j=G?hp8uhpo.ϙ 'oV@8Jw/w~b%ȭ^'k>#suw:|x;4w;;@1O_Fkt%.]?b?@.r $hF?@ȟl ??L ?N8jpv녜~AFO>!ԓ?@J!0q0{E=_9T?K oI6 ?@p@?@6g?@@ROF\>@? <a?@I3_h*/?@oJnAGD$o@&?8?g#oooP?t92$׏HbtuH$ғNcMb H?@OH?Ze5Bc Or@BTgExOaŁ~/o// E}8QRI P-VHGYB?џ+=OaOxb?@hH(u*!O9V_߂HZҿҏ()Gqw*<ϒrԝCU%^<@uʯܯhd! cuX10j=@K.@Rdv#5GYk@!}BTV] 41=FR3 o4~q4ѹq./SM?@@@-WG\@#GΔv@׬EQts-8R? !1ӄA"8QOART*J@@x^?w) p9 й.{(W @+z3"R(_:_F pSX{Vg_z_Č^c3ţC@ FqPe\gE|$!u'),"HVQC2TbPf)Pfrh йp2Ub?PF BP(?!3] aТJ1`Con`ect`rW`igtzۊУf يАKGQ\ReIa&b$pbPGz rf^!&8wtaLReNa5aoR`u `d`n`jfmY#ReFaFP`UP`t`e`5nfDrmU/Q4 (U H#1Xcsmbs@"q6o9m Ї5,@ U1U1'-"T0UP573026908'6r"AL G!<"IfǨmmAAѤϔܔ<8@ ;&_@Pf@?sྭϿPB-F %-<蘯p@bHBfi#T HAA"83T_Pd H Ru` '+c ?B(APt!/i8J޷!ղ  (%"I(f5BĂOp^ iġ`x<܃"Bݐޝߪ"ġ!,<89HŗE鿚$f O0TfՀߒߤ- 2DVpԥ Nߏ]9nmܿ*i!?" pNf8~qࡨ! !3! 3!0%\fiTkq@Hx0"5!<A9m%?jOT\w??A!"A-΁$---@??S7NC?U4A6^4zm4x5U5F+~ƃ7?7G!?y/ OO0OBOTOfOxODV:?@>ZP@-x 06,5O@G!OI?fl@@;μ3@ TpSX6_??#S+SX6??__#3PN)_oo$oHe(G!TcFFFwoloooooo y%rpRBt_[m!3EWiG!sfB*Ϗ);_q˟ݟY"a<0[9-?Qcuϯ);M^O垈}'ۦп*Pb$`G! yG!2DVhz:9?#6M򣖆/U4/QK/]$Rh////////v?4j9ѿ@A'?F?X0R_?q?9n@@#9r??? //p3%X&D/W/5OGO@p1nOOOO!ERC -6-6-6O __-_?_Q_c_u_____ O__oo)o;oMo_oqoooooooRcLVJ2_=Oas)o'9K]o8?2]lΏ(:L^poCoʟܖ/BwJ|&B-Qcuϯ) /߃ş8˿ ϟ1C%gyگmӯ |QcuWߙϱ;_ASw+=aWiݯa+iC},wnbaV 1CU./SM?@@@PN~G̿@2 a@  @@`/0 0(m/R#3%//@ Y///?~_%5a13T?f<Py???????:)@bP-OF/8OJO\OnOOOOOOOOO_"_4_FSaPS6d_v_O______ooO͙!壸66G9Xf}A/AQQ߽Wr̀ϘϪ$q>Ԑ8-O]?@N"ܰF >_Nk"GxtQc`zg{9  +ՙQ + 5ѽ@@Y@@@@/W6 F(u5,E&:bNb!vM _!Dc{/@|`&&cu0`dp&d&::NNbbvv&&&&bc6'55??J{h^A6e#c udes x vuqqeA 7@~ t9aa,5qV7@ad^AU\єG5DK~e DaKUDNUDKuDd!GUD:V[ eDaV[DeDNrGND^AH^NH|N~D\NjAHV[rG]NGvV[DV[GV[DV[XuDV[VŦDEV[AHK*! iWV[EDT1G8aPAƠ7@q7@q Wqc7@q9a7@ {a7@Q1W$ W1aW>EWKQWXQ1:WrFd!WrWQW1WA"W!BȮapJNtN!\՜[D\d1"u'WU4 QdFI 15Ѷ\.@@hXwB?@>~@vDPbt @@H\r?@]7@?>8Ә*6x< @@~?- z^IK H ůצ!@?QS&J6VewѿC+=σasυϩϻ߀'9K]6q˶˶ߓ ,OP _t?6ˢ?|ԅ2c:L^p6HZ>w{rwA?sKCzd(:L^pOOOO$/DH/l/N/Y?.@RV?v??/*/?_*_<_N_`_____#?__q_ oxM0oBoTofoxooo8on?D9oF!^m T^2I[tf_7x@@d4 ?@[s]@p,31eDV]onehwe~D шv YǛ#5c@v+ӀN`rŸԟ .@RdЯ*P? wnbNgK3pˉ߭߿+=OsPݜ?HFxB oV>,Pbt( ??.?/ $DVlY/.@RV/v///<@?R?v?????O??O*O?@-l ?@ xO@^( hEo` o{JE `H\rgZSaXb_t_Qrp-/xV__^sCӿ@YH{[0sSfffr&3PFXj|\I4WbP#d*K /ASewωϛϭߴnBTEk7Z`ԊB,>PbthzNr(G k}߂߳ 1CUlX-2QVu7 //z/@/R/d///sAi//3i//?"?4?F?X?Iv?>'s픅?e@eh\?.?uODv"O/FOXOjO|OOOOd~?@ ;?@8,=@: r3[THC5_Pv_+Y(625x@@h4_ YW`U6_??SXF?O_ob:3@u<(o:oLo^oۏPevcFFFol!ooo 1CUy_rp|t_%7I[mvvRӏA -?Qcuϟ) H$P@֙čvЯ*NruO¿ԲVxϼ(:L^pϔϦϸ6UZy~ߝ_q"  ?QczϫϽ;Mfd߈߹߾PQ*uN`rӡ#ӡI[mQ9;ZC:6;^-(/lK/ߢb/t$///////?QT*J@@x^?@;~ׄ?@}SBJ8]?o0v?9OL&d@@?gl@6?E&'O/./ C=R4o&[/n/LO^OJ0~5օOOOO8EࡔCD6D6D6^ \YYY3_E_W_i_{__TWcaV!SUb#_+bO__o o2oDoVohozoooooook ssVa20_TfxPo,>Pbt`4F??Rb? |ӏ -?QcuFojoϟ/i1w=a)ͯ߯'9K-?ퟓŸۿ ̟ޟ5dv}ϬЯ1*N`ryߨӿYkϏ5 YCU.MnM0B~xLCZ3AVIYZ $6HZlfl@@;μ3@@9!·@Z /%0J%:/9Ki////,@i?) //??_<5ZH3aaak?}???????? OIO1OCOH/gOyOOOOOOOO __-_?_Q_c]ZwS6~__?____ oo-o?omOcouooooooon~ j0Y<1CUgyfO-?Qcn(oԏ .@Rdv>Pb$*N-QcϏ8);qڿ˟ݟ>r L3b${ύϟo /Atewwqߝwq /M~_veK{#]ߢrqw/ASew|>?@-l ?@{?@SQGb*Єq ]?@?Qȗ[E`3qd%!?@p#5?YqeP/$\!*I!1d!b Pi#M,#]%////////?!?3?E?W?i?{?0q3??(/??OO&O8OJO\O/OOOOOOOO^?5(_:ZN_`_r________oo/8oJo\onoAS\NoooOo'9K]oϯ#BoGmokoLoooŏooW ,>PUt(:Qpuz܏>_);M_q˿ݿQ wQ0BTfxϊϜ8Q-k!KsS2RI[QfԿߜ߮#~?@ ; Pa?@4 #1DVQ]olv|NDŋ{G '@+#VBU3E~?@ҬWl~/Q+E++ -?Qcu $!3EWi{QJH//;/M/_/q/////'//??%?7?I?[?m>??q:a%?????OO)O;OMO_OqO OOOOx3@>__*_/N_`_r________oo&o,oOoOoOO __"A_S__j______Vo +o=oOoTsoooooҏoo9>P?tΟ(:KAUgԍKAïկ)kAZ~\k5-lGUDSA XAPǿٿu@%I|>?@Ķ-l ?@m?@_~m?P t@` wqwqǁ0 tu1& Z5]5 )?Bsā4 C% A/㟶>A/㳶⧦3U(NX%=<)r XA!l-xdϜ Pj662'bP+6So3z@`` FzldSl` =52e@@K@ӑ3WB=ǜ83U@Ua(?@b4ɓKϻտ!9KTTBOX" BR䩢00щT9B,9/飿鮫x,1EkZV?@'IOғ'YkxRF0A.r+='$|w ߐE|u"_#-$"B+>RI)X*e9BrFB/%,T"9/q&U _DS_wF3s͵NSYF[/)/,D  ޲궬uIl>=NI[BhnXA-?2XArAAII$IeAe6D0k-W WeAH|v1E4rA;E4A;41;-41;U417}In '|uu CHud tV"k|uNT]WZRK/BiDI T!-9 u|xXT'2qP)%|u!Ŀ1G[Q FVqp p%|x1_ c}{|w$a0eY5@HoZo0kno h0ecoo*߶õ1 11 pk?>5 ^nj%i-ݯ u-״O3IױU!ױױo}AQR3O=WNJvܕ@1S?@O$,qٷĐ8{Z rGg?@;mx>@9h E(>Ƙٕ~%?@V?@4W eƘٕHp-Z?@F?@PL߯RƘٕ UI?@Y?@섰a?@@\ aKƘٕ\j?@:?@3Dٳx?P+k= 2`ƘD%ٕ&?C4?@4?Pu>5 ?w Qj%ٕmY*?@uӧ?@?@* ?P% u1EQٕuf$˰l?@?|Qٕ"/M͐~"ŧ78Eǀ [13n?ٶ7g,QUY.(v~T+L"k {QAEAr K(~F0zkdǗQj~T꞊jXmB)?.~rQQ6?@v9#'K~Ԡ;(gp;Wb]/?@JQٕ@jlJ?@HT1A}At~_i`@RF__ȏڌoe+H"VR&wSjP'#zsVVQ?pS+Bu_`` F.Pl iC@Ar0zp` E2V0@ˀx!bbbPcz@A/oc=ys %yw[ /$ŌxRod}ei+Hvz+=Oa?@rU//8lR/d/3{/////x<=/ ?.?@?R?d?v?/;cs??? ??OO)OfOw0ZOO~O\OOOOOkl?@'IOғ __1_G_Y_k_}___eH?__k\&8J4(瀕y4$8o\ne( 0BTfxaۀJI&@J%# a ܋ zca;Iq6х`#5oOo1ȓ>eEWߟb4!~ЩE4>Pէ߅uYկ`ƩΟ $M_ɺrkFuӧ?@l|虑๱R?@:K?@* ?P$ 1Eq\:!pî?@?Q( BP >5 w  e UIȠY?@3Dٳx?Ptk= `襑H߸-Z?@)${\;X}]詑๳~%?@VF~L߯譑4Z rGg?@4W ei`#u@\>@I(17rh▔l1doox+ u CQ4w$|CQqaO}]n@@#9rstիǿ@WGp?@TuQts-8RӔԘfxw@@-{vI @)apNp@z34bp.3W"CVhh_u@ټdrdpqRTwHx@J0,,Kr٦2Ul?YYYF_P(?a]bJ`~Yb#윏+/RӀa(N5UR\udPnzƍrF"`p/UPte^nƍQܳ Qa4_2I_2Kr@;䀐,@[ap[a?Tw-Tx"HrT057@3@0`69*8@6 @"a@qt8O)njTxH>0QmD䂻zDbDKrǔDYA YA2QѻDDܲԘ0@v?<7AeEztVLKuDP࿀KDKQD E|[?\ܵD_p>.OeUMBsT䁻䂪Ԙ_sTPo41{uKp` ?w?r!1!_!onC0dd b$dKr tt2'rQ2tBfArBLt+p[r ftkurti܁܁.Ԙ9341uV14uo0q ew;2/I[m5ϏQ 9K]oܵr֟m-toUM3 a bj!Q1=40xd %a_`3 @11ѥ eU2TW!C41((XGNQ?)?;?M?_8g،w=#>3BTOfOmjѼ??GqjP±j2,AHv1v1NR0-T1:T1ee$3TTђ++WrG!G!JҏS7T8T %$)dr:Tqr;T~r@hhrr>Tb²a1OO@O= $ c`ȡmաȡggNgggggodh ggeGtQe+QRۿBZ'!'єqHqjՑta{5ta{Ata{%ta{ᅑtq{1tq{$ta{ѕta{ta{Jta{Rwa{tawf±`½ SQ% R\utpHBGP"b9KIiTj6d%Iy X/'0U Rg!K0Qj2qqjǦ!oқձß_P_2$E.xY!ay_ 20¾?@Љ?@?(=Ep3@//+/=/O/Ej/|/!F///ojFX ?xb&d2? DEEHX?? O#.Gpr?į֯E%AZ%7I(>k_ 1D./Qd1ODoqXOdMbaT4(3TT U%WUI^az@  @@`0 @@l@1?@F1~?6vQts-8R1bPaӔ b_gytwn@@-{vI @W)2p^.|SDP@z3LrpwWDWi3Qvs5730`69*`86 1 AAD9ϭKɠH PaQQo2{Ě2 TǕ/RZZ"qqWRѼ2rPbl8^@t:?=5ŨVdcPr/U1ԣvWUB1 ck2u}@Pe1p?x/ϝJ8Y7STo1qqo2 l83TQo1=o0ST` w?NR!ߝJUKTl0o2䒚2T /R "(WR32r$`BPbMB.`\&g1)`v2"7Q! l89=2T5<0/UJ\n%WU 2u:L^pPemTTTJV1$o2>E2l8k>QE-y Xn37QHP3KU!5VTXD.=(T1o5(|X>ÿ̇Gs݈GtV74r&U!1 5q{'Oڹ "87}U$G?+ !"o'2Dvn!`x//I fTΑ/ׄ,Q,ST2O4ukk>I627?NCLBR8Yq)"*! ":s ";ei1i1r>HH JJ2ǡǡEAJ۔Y5]1)ց>b?aQBA"B?P/BM(O߸!aa9ځ>"1N}LiZ_>}a}am+UOһu|>Jz5:4u\[%uL+@q+@+@ϩfT3%ߩ8O$_Óa_bF3s͵NSYđ`}uQ,@rrvٲϗ[UN%aa9a5tӁc;jZ??~?zA0000|00P4"30e\=) Li=1"GY \!@H6A3MXmMXBMXuMXMX2MXa5MѽAĭ431=r5SrvVчHEBIOO6Y6~9 V`Y`Zi132%_7?eOkE.@-0=i{"?%XѐXD# 3 U$q,ń%3C=ѓ??????OO(O:LM^κ?@6ə}^)Er%up0s}O-UDJX_oqoooooooo:LF6Tf?@U6hWI[O!:ajrK_xz+Uf8.)$6XOaM~ ѺکUڵZewdUpH/<_X|"goop /!/3/& /A૟eϟ៛πj9̣E|[iO@pbe?@vS?PJW֔[30=M43fwM[557A!\q$ptON%B8?a>z>JՔ/l~~pSpCV?@:H ?@7LJ&% >+=OasA٘V&Mn &(<?@"qۇ@w?@&`c]?@\u{x0?QnR@ pU?@.T}a'|7F@#9(G?@9ABBZµͳm=/O*"]/o///Aْ(]=$6GN7ƴ)AbmymQ?@?-S8 F?@7fםd?P& lHm@8@ t?P)Oy޾ F +4 q"4F|m a_o"9 `z^a?@ $w% r! }hBeJW!#*<ϩ`͉ng}o0oO20}Rs$>&]t,6S֯?@%~&Rt>O@O]F@N"@*(M Pq!ߺmS~ej߲9~t y<*<N`r-5\\[ߜ?@>/֝Ohjz?M/e/*Pq! ++=aQ"q]$ //x/O~-7d/_#5eP????OX'O`FAZOlO@DOOOOOO__)_CHF_X_j_|_____,o_hzmQoIG-!p!8{axdJ qaZomJ!u[) d UuaFAa -$ey9@  @@`0 @@x2I+ ,FB-'b4´xnCTaU6un`%JuLp%Ja a@eЖ@`pDDe >5N5_pg_nF3s͵NSYF@FEe.V,@#&DŐJpaae۳TPp11px/T_@>1$6xN 7Y17I1+=amSDp͵>T1pտbb@MM>28!8!1$FB<$311nCD 11eccӤ S*pp!ppk9 p p p p /'0UYr)Je!t!n鍲p A1j!8\0um@tOasс }jg$p70i(ݕbh!3 ywzvy)ʃr brBwkt$2D |@@AcQ1XDǒTs,c}1}1!1q?'h!H,xxw=0Y5!XQ1oXԈ!!-!U«.2aࢻ+_su 0B{5َm`rȄϖϨʐOӶOIX4b,аbPzP{.a1aXa x!  {syQ1i{@Aȯگ"1b4@Vj?@҄BP(Ĩʱ崨\nȿڿ);M_Ϲ<]%YIymٱA}ߏߡ߀ QADA0UJ\UxqgU@|h4Fñ"%ӱ$%"4@F6GUV m up# (GݕS2 5GYkhqA  1 ;QA]oQ!QzU,i/U@?@,?@HD0J?@VGEEO/a/s/DsQO)OIA@OROdO!4 amA@IAO!"3 (?@?<& dgP,W@!^h#U'Ue UdQE_'s%$ …?&?2=2u`G?Y?k?}?r;Rw@???j{g=_O_oQAo_{___+I$D"+(f'l6˱譃O_o///////?oo9?1C??nq?uD'  n(?@?(=Yp? Tu@!l?x?S'XA4<GnXA)jZ9V:?@>Z@@nn=#?@]_W?d֗em+Kt `Q m6)o ?tcxeg|OegXO֡`drQnA<uaTq|P'u0v:rCuaExcEYcm_jBBQr$vkХuvѹvRv!Q'|P:FkLRO2.My9_@EpuQS!{e/%ffÿ@iFor؛?+FZ9pAy<a 2nOd4FXD!!c%3Q EE_Q@@J@@@ @%@A@9 gr9@@e4Q5#a] iA!Q)VmXA|P<ba3 yE(%,I0\CE8\%\kE\%H\5L\5P\beT\BeX\4\15A10==+:TR\utc+BeTb}0a`iA.a4CE0I((XCD/'0U2Œ[|P!T@; >6CD\CATRY1r]CEi/?A?"jiYK!AАfCiEjJK@UOAUR 1wE|PHQŠwb!za܉_b.t^^XIt^#)ҌXotUcy?@qM6ьX^ЌXtUh?@DTbЕ` "p?@ӻ?@[ ]iݶ`{ 9C_7MQtUfv/X݅׍W5tU\(\4S=OMIo͖?saPР_u_`W` F&0l;C l 1zP` X.€MMUPPAA%7I[ʐZUBI &10z Y.Ϲ10hW񔼚  8,EaD ~ae_[Rh\0u i]Sf^m~f͉d48޿PXϺТm]ooG}?7yCmv$ '14A n͟@ߟX*GSew~Ѧ]W@r/`p!3EWi{óʿܿϑϣZl /_/1/ Ϝ/ 4FXj|;ߠ߲]^X}?@~D](FX-~]X~PmۢOiPbt1a1=OasѦprce jR-?Qcu6 (ݸS#RX/j/|//""/$U?0?B?T?|x5 4]??1Ra ,p%q??ORe)# cy?@FM6"CMAcO HDC?MEavjt3}_? fOMfN5E—!FuNRea嗖g5Ҙ^"?Pe?ڃ e' _(_:_L_^_p______Q܁_oo'eA139eEZero?@w '?@,%?@"wŤo .sx53c2>oG@Npu&k֙CMALJs|kߢŏOl~#5G0Yk2Wҿ $h1,DAPA==sU@:ߌ @ 0?@(|FPF,8Ckgkh!fbmD@ BP(?@?x<E*wEhtbr/ ru|3b-59K ]f1x5$7N$B6b`O O1CUgy 1$6'o9oKo]oo㉋[+ȚhBӬh3ûooo8*<N`r|%'1CUo5[;A!TE);A*Ə؅T; o)u{ݒB%͝rޕ5F,–𒥨KŊyjҘw7Y´`foh55ǯ o1/C/U/g/p////$// 1??(?1(#:p5?U@?@Npj#?@DWH2??9?OrA<%OT43f wOpZ"O4OY' 2Y_{9o/Eͬco 9-Q/ 0Bv/fxˏ*Pbtq9~D/e//(/@:/L/^/p////!////? ?2?D?acOr?@!x;5=c??????? OO0OBOTOfOxOOOOOiOvО2__,_>_P_b_t________aA o$o6oHh],ᡟva]jipponn=#?@]Wi0@o{rϔF#v֑xy<<L^prbbz@@Su߀`` uFlpCoporpz@` 2T僚q3ט44tv ~oz$KQuǤt8pgҙ]) pq p )GX)Tjcy?@bM6ыve-Wh?ʋĐgʱ b"p{048 hPXϺ?P8V ӢC_7sug-f?v/Xvgڕ-"%nϔm~~6=xׂM_qAʂPFIHA vD/7$HSDӓEdVl⛸nʁ530?܁\s w6kXBh ݡ??bq????O O2ODOVF sྭ1B>?@?/ RYPOOOOOO__$_6_HSO_a_s___oo(o__俶oKo]ooo!ϥiooooq%7I[mF9h?@wG־r[Ǡ[y@`BPՏ  /ASe9!BŸԟ敘k5U@>/^[CY~ʯܯ摡L՝ⲯ("DW (=OaSݿ4:rϩeIǀq | !!,>pPbv]VϨvݛ?@PpmpE?@[^e%eCUgyŃ79/m//O@p*/vf?f?si?o'eozOOOOI[eP2W __-_D?_~#W_i_Q___(,wyD(D_аD?@t ?@'@Y>*xPJ,8CELEG04@ BP(&@x_-?Q$$k}ѝ% 1@@oRoy-Qcuu_Ŭȯگ|endفʹe%oK/]%=oas/rbo_/?&>ȵ?>Q>c5m4Рu>}?}?v J2vH=6~D-7UN1zW8[MT9@a=Du> g@LOOȿڿO"4Fd%`rϒAϛϭʈ(c c7~?@gh?@{gߨ?eN/!/`&>/P/p!g/y///////I$FVZH+В8;O 8ӆү8bc/?A?S?e?w????????OO+O=OOOaO^iOg=.UOOOOO__'_9_K_]_o_W'__Q_____o"o4o@7cł?@E 8E\8{oooooooo /ASewg$*`&d2pΡɯ;cBt`ہ t(?cBtP֓ yҗ a_T/*xKXs5fÿ@iFspU`^pU671OO?.v4пҦ*B'6<?DM_5 _PZCB쫿\8&>G5D=!y<<AOSOeBhB@sOOOOOFh[U?$vf0Pg!'$J88)T_1@?j 2*+Ԃ++8ԟ(1(1-R__29Ta?Q6!um\5%uL5?P$Q)k @?oD 5 +N5_?ӒwѢF3s͵NSYFk*cAV,@ o_5pd|TP??X/KTJJ@++=OaXyMǧǯ٪VhKm@?.]0"T?!. 2x x+qb1<bggB3V_2--G2IIlrёїr7 rOQOQR9cR:;A<BA>"{32nY;;E!|-?.?/?8R?0?)3?4?5?6?7,/'U1(2?,?e\4Q#-)QUk_}_]K#"&QP1H"&1?4!;4!;e4!;+4!;qe41;e41;a%4!;E4!;Au4!;lu4!;u4!;u4!7Hhtq$@/PVUфRCut0J.@RYp 11Qʌނ߉a/[!__ltDw=0pceS1!:o߉iouoo ad-ag9lo@7=Qh}OѪ #ZDzGz?;ewa%wiU۲ֲ.V΢baۀ$`_Ѡ7I[mϦ$+=Odas'ÁAI#vFў棬!¾R"IGYD1!4F]coзr1$@Vj?@҄BP(s|s'9K]oɏۃ*r(ޟ$D8!HZl~۞1!ݯ 1CUr|h4F| |塿Ÿbֿ@ 0a%S>ׇ (`rSb$69]ҕ܂ׂS[r;uV0$6H="R5K*Q2//:!L:/F/X//I$D"?fl6|xS,>PV?????OL^9AKO ]OoOEk3OOBAOOOA(W>yQkQUI_U@,`0lPZ~g_?@0]q?@ "+__Y?_H>U t43fy?do-z__4Ykq~"7:@$M?7qO4FXj| ď֏5'G/AGSewN\jZ?@_7"M-%7I[m6ѯl!3EWiN\U@ "^J54aӕп*<N`r7ϟϿ`$M]^|>?@(=$pSTNAANNq/5sOI$UaQcuN%lH% FGOJBAVmNJ r"TzLuNYu@yfu120g1t6aa^R34 2Xqq#7´ V!! V9ܴ":$iB;<>QX6"7!q>*e.azn(llGv^Up!X_5h5/!;N)<"NFN>NUANBNCNDNAE#.צ.@N:NeڱprWڱڲu11=!#Ͳ[`Z!; PDNy15Ԧ6L^U  5okzs@z %q)8pR{`'utSЂaNz8pV15B 8aP`@ :vL8~ڠ #iK!tsYedS_'0UŌ[ʢ!@djUDKa a.ͱ8F"ea 11  jʴag }ŕW%o.f!33LZ [K \@k״^QEcPaDbT!QQ. O.3/sh}//88Nw=0hń4P|>7id/d)Ł? ??ujtMŁySeh?H7=QЌ8}ў8C?b#S2zGz?as 2QS>_PWˆTOTwbUbb.CB5oGaHoa`C`_q`ooooojrPp____ jcaUIQb`bPzK mA1oinAӤD\~ ~>bk???OO+O=OOOaOsO1@Vj?@҄BP(  OOOO__+_=_O_a_sSz_____/oAoSo ooMqovooooܟioo(uVFXuխz wU@|h4F ԅ9qLXnЇoW ( S@򘟪Ο-eZbp@,qVүW Ghdv h܏jU@?@,?@HD0J?@VG+;D囲Ŀֿk#b"}ߏߵ߰$l+́VCB?@Љ<8nvP,W'@8̈́A'^g ^g̓sց\tRoR̓twω!0 ucZ͂dڅ-?Q,q !@1CUFyI$D"fOl6#_q 0BTf2Dςh3;>qA4Ff ]oځ(a5IA!څ9x,ߍ`0 Z~g_?@0]q?@ EE)/;/M/LX?/*i%443flj-/D:>qB?O#AO,O>OPObOtOOO~"7:@ˍFM7qOHcOO__&_8_J_\_n___C__Q___o!o3oEojZ?@_7ºHM-i=oooooo@);MDi{qv"%@ ȺH^JO5HVhzԏ qE%7W0Pbt^|>?@(=(Fp*A'œ6ȒV` p@XCs?'tv ѽA k&k,ܵA>Hm6 ,6I T(!(!1{$3n4I5j6>7Ʉ*&Cք 8ㄻS9CR: ; A<>$q\򒱒FKEAQJefR)`}¤BBA KO]OoOOA"OOOSt9p/9"š9Ls%T.ª(!8]gw>_ԝiM_jaau9‚+f- zRsKTa0\dk%u`Ё9Ü9ű] 4@a8̦ղ]_|âq D3s͵NSYNnY}V ,@r֘zUnX_4$11JzUtAjZ?~?#_AJԐKԐLԐMԐNԐOԐPԐQJԐRԐSԐUԐ VԐYe恎 6it[9Y#Lԕ^i~^i^iE^in^i^zU^A GԁԑII5v؃~UCTSrv37:L-?TLq넱ßovqzU?vYGB Y_,_.KYoY~Cz.VYZ~S$6xW/pu-)IwP&g9e)?ة<&%F6O<>EO*?@_GAؒd8B1bE09qM?@?~?@ ?Nk"u2.zUUUSg1 A +y@! Μk(~~.w M?@>ev?@<ڲ|Js>-r!bu~%>@y0Lu0{?%~D>3p q/] ԕOU$CYUv%:5ԕx:5JX OsXSA#s2zGzt?a:~~q=wUqug,qut'^?p?'iGdB 4'+իM) -&UA/(.6`Wk/?&T4&\3W C>5MIO[OxOOOOOOOLf<I?@'Ş4`Q.ǎ+a"qups3_E_WY+Pg_y________ oFhv4?5&v )3b# m/ ~d&$&ӛr?@Y܎_?@~ _G.13y#6Q/ y%u%V%3Kh"VH[ /U@h`2p,l?@6Lbмee /G3 U?g7eTmph"|hpQfkqwtR~ wtS~wtT~M5wttQ{wtVz~q Q $o6o e/-OuGYf/w~b%ȼh^k>h oI1J4JJO@^_¿Ut%.]b?@._r XhF?@ȟl N?[+8jpvhUM5$!ԓ?@J!0q{E=`/9TNZI6 ?@p@?@6Οg?@@Rً.@7$@? <a?@I`Bȟq9K_qS/w//ݏx Z%@#u GxŻÖ#/:"?%?7?I?qH(ڟ쟡|Ģ?R"L#}[?@#jHMż?@U)?P& lHg#@.Cܙ?@Z?P)Oy޾ F `4qĿؿ8#CcqohS>?@oJ@%nA#D( 35Ge 1#_߃$w3Wq߃߄_@$30ËرNr*Vb H?@O N*Bc @BTg%@Ex(q^p#ϼΏ E}8*QRI/\dr !Z/`/Yk&?8:/)OOK P^T1宦Bbte1T@;M1ZBw8PUThN_w%"Nva-cmpu?te 3@uq$)=\d !'ۅ!уEut 88k1y quq G[ ,@D!ddeMy\dPЕF1kjD1=&\>7?H!3"$ھM-W>RÂkt*/C gW8'ёuu;u1jc1'@,'u1^WurdհuM2Y Ac1èOWM&uMFfÿ@iFrƠ cӅ?(dfЪIUzSfqy<<1CUXRx_ ÞπȎWa H&2_N01? ^CM(2gʹ A@Cs6p\!Tڑ@SQSQ1؁؃@)t*+zz-)R).cTa1s6`%@-uð`1a@Ձ[DxĵF[p@ b1F ҮN5s_@T!uu[ A1qqR3G11R Bhdh279Ă8F229S:`a1Q1Qп({U%h?+@D2ʒdXI~aЕ] "pϮ?@ӻ?@[ ]iK`{ 9C_7U!e%fv/X'U%&OQ"za&CGu[8nj Be<A_%I$ l59/K+__J_\R?h\0u?9-Ɔ6=Nm6448SPXϺA5d= =OB?zM7:Iv=F(W>PZsQooooo$6~_K]U!z_]WBEb0@BTfx ҏ!3Eğ֟@dC ?/S1gyI ӯ -Q]-^X}?@5N-[X`N = 挋NK= 'P^QϕϧϹ;y\2Dddp߂ߔߦ߸)@ R35,>P"`r| (Sg2 W%Qc uR[ *Ի-QQ1 0XA$/6"e)Vcy?@?FM6Uvtf${wCrv̧3_? ʾ169"-6.g?!Fú5fg5x^"?Pe?  c=o65ZgeAoSjI/[/m/// ////%]/ ?*1a*?6?H?Z5j4 ,E5?청?@w '?@,%?@"_wʕӕ?=OOOaC1f3q?2w_o-o5@NpuYo̖Mv̖ALJsoՕVhz 2Wɏۏ",^7.@RW8,g7 U@: @p 0?@(|G&ó٧PF,8CEGHf2Jpmyt@ BP(?@x<]GDCOO2RBuOO __BB`Ql_~__JVQ$YWuirD0/@dvۿT_+KKWiZ?l?~???㉋[J88OO'Ok]OoOOOOO##_5_GX Z_dvQh+*n:wne]_ eC;SoL?BG)uͮivBnn}rut#~CD+h}yr$_}fug~~yjxwY p`fs O7S?Idv@` @7I[d(}DUYmU@?@N@j#?@DH2ee+?:fJ$43f@i*Ug)QZcL@@?@%?@3sྭFO]{m1uP` DCo?zuP~p~tщ )u1ۻt揯-&|֘e3׆!jɈЕuPE;~p'pv2lRqq|uM?i峅А҃p~\ xZfÿ@iFGr+`6+*]vwh&?ɱCE[At?PjwOxbP1CUgyqBAPzLxG|?ԌgMDa ձ4zhDEɭxAT q``1$3p)R*VA+2aar-6r.. r3Ta62um\%puL6pQ1 QOPE@oSDU VŻN55_x_rDCF3s͵NSYFOuufV,@BFS u+/ppƔQ DPH TR.@4/#c?r0@V/?!?3?E8d]=cvW'l%f:O~md ?ܾ? phbTDQ2R\1\1VCC1DrMMr3T rb-! -!uuE7FTpHM9`T:mT0=>~T)bnttOOO=AAuϳpDxet????1V???OO(O:O^_׽9?h?@wB"hm-vǘX(~4_]@^_ [_______o oH j?oQoqaqo}ooeSѭojS8o&oU@BAns@x9qLq@X}mx㕺> ( ScΏ-d5^ep 1_븕 7dȔ׽Œ+ 1VcOuFݛ]F/9vEKɎHeE~`n)c ?Pf? N g N`Vhz@¿Կ2ik77CUϡeϑs㙉UŲHSB?@P@mpE?@[^%%"4Ӹ>Qsʒ~?ק(:B@p*fuF&Z&si?%ϯ?:cu52W9bl/$/D!;/M/_/h,GI/fD?@t ?@'S8PJ,8CGHqGW@ BP(x<" 4PE?0qrrC? u,O$VBmy撚W{xQ$ŗ7d??"D?=M^qOOOOOHOO _m&_8_XQϑX_d_v_gyϋϝ_ϊ%Ȣ/ ?|o4FXj|ߎߠ߲߼oo 00BTgqu75A)G4QA j? ?.`Y-bo_D -(0PM(Q81J1l §~%1z_[MTa0ĕ"`VqˏݏDn-MDVhXiq(WQqbaiuȟ#7~?@gh?@{Uy(N!Hϛ'G+ONBH*X(V!۸1O'Z%/*-?Q^u@N!|zT1Zѧ%G4GAI!4~W ;?@!Ƚi@X#p@7beQt?s-8R@J}Q_QBH@oRdޜB @@^k)BpgG@z34booApEX@. t1v0B~<.Yc@=(R_?@qp~иu|e6Q R^qcABRVEuU2/S?F BP(?B]Ba/JPQ`MnecutmWigtVPE*A/2\9n5Iw&Pb#W.bѓ܏aTrnNw5|Rmud@nTY+rnF\w``:PmUteTn#ZQ1C$}QC%B(h؁7]@E@ jP-"T0]pW57Ϡ3͠0qW69P8ݠ6ӠY!AD ɠǠBID"Q^B##Zҫaa+bѤҒHģ@VR@%]?8̿P~bE|f+e ŢFNp@h"TAHaaBH.TA@9` Vx?BHPFJ;PAa@ur,1ÑϜÑJTBԒ"B ,2+b bZ.9H"S䮱|bmz qH9ģMdT% E6HZl,5+e  e&8J\v% E@7m(d n!ߜuģ!AB""H4mBbPB`3נ0%%T!PA!E(h?@Ķ-l ?@O,r{@=oQhiE|o`1oiOCl>L@@"g x_VF^_p_"+sf[xV__k}\2C@(FV`@Y1(fff`b2DPRdv<ЊbP]#5GYk}şן 1)b=Osͯ߯'9K]oNr0v|З! ~?,>PbtφϘϪ|߱o>PEk7Z\nC:~MF甙{d>߼(:L^pdvJ$f(ߊߜ~3,Pbthw L.pRV//v/.JH?FD\?..?w-ALBRIJ"%%E-`E: #`eI]1@ @@%#`ͪ@'bK5T5k?PzԀ} Ri}!ɲuWE`ܰ S6ɲ)ϳ7t1A X"$57Z^ 5tб2?Nܴ\a-ԏ- LWaW2l0-s0hT~pUo[ DDp5z𽱇LBJ%0u= <U/Hzɲ9ɹ@WUM6_7ܰ_Y`e^V5_oVgJ-^@o_doJ%__ooW|hZ3D?G w ըCzDps)aipq 6av"p p#-7 9t- X*G'2Y0k2!!Q{ 6-WjB {X*GOv!3v~ԏ{!x- /"1$/.9[%476I%0OU'9/A @@.V ?@`K @c(݀Wߖ}3z -Дz^ @@x=g? 60? yGz*KܴTU֔~@)Su=e0u筬6Ro/JFQA給-@2eC?YYYF B_P(?|H]7oaJ`}`CogpnectwrWig ut`z@`eY-@CV QY.`@zb#cBɶ+ҴN`Ru gpdpnhɽVF3U^Pmpteup5nɽAQC>-  EBMI֮ҿ&+QtQ:)A-HWq0.730\@6186}l6V] Q>[-$huOrǂHaaʜoѩҶ>A@p%FV^? UǙ-"GOuP ovj(-rpU] *T--ΣTկ>-ywD(q4twEeҟvoF\Kq$-%Or )ΰ8oCRd]VjKqwA2231"*)"9"vBU )Nv /./@/Z/l/~//e////o/ ??0?J?\?n??????u?<(/iO7O?[Om䙑Ou %Tf(R%X=If e*`3аA2UUCTEN"љeQ(?t?A/.O/RO:/vO^/ //OO/O__*_<__`_r__/__1!q__M!q oo0oBoTofoxoooooooo&tz)|9rOcRxU%jwup14(ZS_OEy%Tl6f@@ ,]l}?@?@e ck?PhtuဓHUg/GQҲ/{fX"$Ǐ j.8M%Ȁ铏 5yEDi L!Tl2%S0[FFH[D,t[[:e"Tk|krqzU0?G=eO}OU/MƱJWOiX^c䌇 MefvQg\eL eՏ:]e$HUeΏ䴅8HxN*_E 0UDs aMq av K7Y=u(XwG'2#`5bQ!Dq| VjW(l~&({w˦!3|@ܦˮUEOQ{!O\f_v__%]47)Ѯ#X_U@z?@N&d2 @@v:N?[@ ¹?Ł9muc߱cIoqf_o[ah ?hi2¬kDA((kDO)ѦDkDҌdo 0BTfx+1@q59tslwcbzpub޲@S^0`` FclpCopoYEPyG@` ‭@!\%S5?\.?4\[4&ߓhAE=# ~"uubt4FXƟ؟6 bD:^}  P:LͽK?`zA../^uNv[-cmputea42ۺd%SuD0S˯ݮ鍴89yG$į/80 u43$=>A&IAIMEU=CP #SF5K O4K0O Q(:FaVOz19Mw> q`*7kjtOOh\^̵Gl| G QSh[Q5B"kˀ&pEɺanx<@@B&@@`4F?@2R7+?dшeA9ݕjP \ej WW_e ԲEP)Q'lp&QO ew.5evvv&Ekf>>ÿ@Y52?;15Ȳm14S;RqtX\_n_HH#elr!.r0m #a$Ë4.5ITlj j l1ݔ&3MNN15m627J+ C8b8Ef5Q9R:_e ;lE! ?Nk" (.hN@ (7e/*Oe.ÝI (; xl x7(wu.bݑ`.Ø 8U;^>-!u%>@-@=i{O%DwqDTt3  {U eUpp5+$,~Sy1,KfLS]r~c#o׾n??,7Kq Gӱቡ$/1;T99V-;&LUw/^.7H5e/?4<ceW >kMOOOOOI$]\ ]_U@M^κ?@6əJ) rupse_y#S2zGzt?+PYy________ oF`v4?ef&~vE7 *yGCgj`od(.$evf&/$F %96pպ5fUW} -UDD <HZOO__xF6TR?@A 6h俥ȥCUgyӏa+:ajrA5od( PU?f89-ğD9,8J\xqJbAZQcuqPRnU^Ԉ4?koD/Th/Dbg /oo/p/ ??DkDgy Ϣϴl|j9 E|[iIpbe?@vSEN?P?JW^ =43fRxew߱h@s8  5YF u_pH ^ aNՀ?~cpCV?@:H ?@7WLJv&%Q{>#'/78&5y&(<?@"q@w?@&`c]?@\u{0%ž@ ךpU?@.ӄT}XYq+= /a1/C/|7@#9(G?@9ABBV?Z2u"=Ëݏ/*"///?+٫(܎󭿀唟VN76Ĥ)AҟymQ?@?-uS8 F?@7fd?P& lH![@8@n t?P)Oy F 4zql~O%b{qJo+o"9`z^a߬?@{$w% VdDzed !#ϚϬ'9gSo+ =>_0h>&͝,6S֯?@%~&^WRS>뢿;@O]@N"ܚ( qq*GSeRݿvjϲ© #" *5̟x\[ߜ?@>E^ujp/Mf?Ku?#:qqN`!}wQ"I/[/;M$fxz//ϟO -d? K>oo`1-Dq,O>OROdOvOHlOlA OO@TO __-_?_Q_Ou___H_____o"o4ooXom o_oޙ Aq*HQU@x<?@Aj?@~p_Qu^gA|q#jP'(.@RSxu~p`` Fi lCo omr z0` 2,110\xam0I & bvbPzUX0'ɓx[s>"Ғ "û%a#a)@"'AGq Q w  = ͏/QCf֩?@1Qd)?f(B@?@,/k]p8{#s\*6fh?@~E ?@_pLVWwM?f%Kx?@ oi?@PxT/jfkb?@ܓk"uTy j=y?ӹضEel_?@'1Z=?@ɇlln jueJx?@&y_ ~࣒ji,ٹi6w+4f 1~,fNȦ|);A{`l!%\_^ ؀i9+2 jdioGy=?@=M2Dwi9z^Ef5U F/`_`вPÎied6ENjx/-g?@Rr?@n^s\'ތiOK4n?@{׀?@BiؐiIlRuF?@B5r?@n$Xp ؔi;KGۨ} yFa%?@O" e@7?d>@MHÑ|ßϟ);@`0 ?@fd2L&5`Jx?VRr JPe|//////// ??B?T?f???|mv_ 9i eD߬ٽm9`,"fXebv!Jx&b> W?@8+`y٨uP`<>j p-}JӦ?@զ.k~?]7a~<-wѼ !QÝA4@mne2(e[ ;?@"MR%#ht`#! wqwq?2t3&+57%2+5478?Ka+0yŸ>K.-$3S46>ҒוͿ2 uB; !ò>ҿpݼpO=@И$UƤȑy<< ܯcsF`O u0&8J "HG!e-.@UGb4ɓKlS`S~p$oK9ɐȥT1$1>NVdגOcdBHQ}dVRd "TdC;/BcTX.<%GbוekZV?@'IOғook_<0eJ}>dvTex]poh~#t%L~.r6HAkl/BgS l-oI_Bc-/B,<+IV(V)$c"*pC}AE`;@;@챀3噛ZV5Bc_>ԩpׄB#F3s͵NSYFD噛%C .1Ø*226m> owMIE`Y>fisBY%a !m#?%=/U !>Б>В>U>Д>Џ>e0ۭ/T"P0РH> i E  V ?>FMF2ӵE`CSRud0!MӵNPTWe`R+K:@Ai|ۡӹX_GӴ'/2qмFӵ%!)Dk Qbq!?Ͱ!V׿Ȱ<&pT/;d@Seh;P (E;sx_T*27?:25 a $ "')0vI-۵i%!􄢅au)_{//1u4>d1CUۡ%11+!@]!Ĩ!@1S?@O$,qh8{Z rGg?@;mx>@9h7 E(>E~%?@V?@4W e`/uH'-Z?@F?@PL߯]/ݕ UI?@Y?@섰a?@@\ aK/\u?@:?@3pDٳx?P+k= 2`\rP13J C4?@4?Pu>5 ?w \8mY*?@uӧ?@?@* ?P% u1E\8uf $0l?@?|/\8"/M͐~-@ŧ78E [13n?ٶ7g7O\8վ>Y.(v~0T+L-@k O\89EAr 0K(~0F0zpkdO9j~pT꞊jcpmB)?.~r$_\8 96?@v9.0'K~ ;(r_)9';Wpb]/?@J_\8@jlJ?@Ho o ojkK]Q o 6ȯtVsy<<'@.s֡֐y?SJu``+ F9lCmr$z̐` P2a߃@̑bbzQä= ۰$%E)rĭYutuԋ6ȁxe$`6HZl?@*1rՠĘן C옟]o沆ίx<!Ę#q9K]oF!ᲿĿֿ1"4qςseωπg1ϱFkw2?@'IO*uӧ?@l0|O#h9?@:V@?@* ?P$ 1E#h9\E{ C?@Q( BPEP >5 w #h5 UI Y?@3 Dx?Ptk= ?`#h~9H# -Z?@)${`\;X}hO#h9~%?@V@F0Lᯤ_#h94Z rGg?@4W et_h.5@\>@I(1 Bo蒵a);M_?@AjЍwQu#@{sŦ'$6H9l~ a!3I[m4Cf?@1Qd/6(B@0,/kP]?@8{#Αh\*Y\-hP~E ?@_pLVuwM9/6%Kx?@ oi?@PTǵ/i-kbܓk"ĠuTy r =y?ׯ>?6l_"0'1ĠZ=} ɇllp'?5Jx@&y~_ @?j㡇Y~=6w+4 1?@q0?NĿ+OJA{?@l!%\@_^ zO69+2, jd?@oGy={ =M2bO69z^~`Zf5U?@F/`_`r P㏠_6d6ENj/-ُgPRrs n^姑h\Er]OK4n룠?@{׀# Bi߶_6Il5 uRuF?@B5r/`n$ϏXp o6;KGBP} yFa%?@O"To6@7?d>@M/uʼsDeSί/ ?d2L&S0hs~͠VRސhs s*<5`r a '݋3^~@$uNT?@~ e nzl'Htܕ<N`r~I}^`wo6" Y?@]x o~! 5?h Ѭ:E/6m?@ڼtɤ_i?@0>mĹ/6ZhE" XE]K~2yx#.b+?@Q Oi0#d0W2?6/eS0gk̛L~ "Cgp?~5Y,0xd> 9ÇeDʩ=90,"fPXepv!JxDOʿb> W?@8+0y٨nO6H o $j #?@?Be0?ϽO~6>j @-}JӦ?@զ.k]7a1 _6-w< `?@*O~N0ƭf]l : gk?@۫Ն|^ߪ_6_g\+P˚P0ŵ?@!trǿ_6Ot(?@.EF?@A ԩ?֦i"mHo6l@|^f Z {` d2h)G&Had s(d!omFUy1#z5F=1L̵+$?@M7RJ@@.# g?@x̋@k/0n{u{` ?.#uJ8 (k`t5A a AztK r&Бi fʑMA煴u5F"(':eK` W@q`Uo `Wv !r׃,A"@q=5w.u1md/jIނTA/$r1$bb%3$"4$$=25$26$2 74*BC40r11B9(4R:54fR;$B4R\4/IKdFb4 $.J4%F(4)4!zْaFi%y)FeX7'a" m6bpdZ/Pe-#T.DrY! MO gL M )_C00 r5b5+T% ,Tt-TòYKTa",{`%uIL0K5ëJwU0e2 9@RrQ=k8Ll%! _tMcBCF3s͵NSY1Rt=k`xNjõzAg,@"rvQk nOl/\_ I!!VtjZg?g[UUUe^3v8( v/Hv7%qEq֥%t õ$tjd2@mvQb. S2wrvْB6PgH&LaV q??JLxJ%&Tw/1`3 DERdmf#JLF-bfCN HN blg;UFHXj|J&%˞䋳H œH^#ǚ j(L"ȁe :G=$?@nCvTeÿFhU^%?@xL?Pr ?Nk")e = -" ʍS值A Ĺ*9%?@ʲ>ͰEx1O.?@gxLK?K >@x }wઍ[ơqȱ4vӨa¯g7%z${e/E7%1Lz"UhNܮhv Ry#2zGzt?iȱH !e/)'a#d}aegߨ.׿?u_1&~3ۉzcX=Ry`Λez£j 1k >mqQ($U]?@xO?@(hWb!T "% #k}+P@ /A~&j& j+K-8fȔ΁e&jBCy?peՖad)AD86M_|(pg g\ɔ?@J\BCV줘U U7/I/m/////////??$ "o?UWs>ك^Oo $j=OOOlOxOOEOJYY|OCPS ewq__U0t_ҿ_Uo6*oFϔ?joҴ:n>!߳ 'Éooq /OSOO~;o;Hă6pf]?@X)zḁ̊?POJWI!'=;43fe;I#yB%/nJC^b_(U'\׮(ĭݦrjqsh,8rZl~^ oH?@k?@ | Ʒŵ ?>+=Oa/ED;?\=?@놓S10a%Ż?PEkU S|3n@۟lG|*IGBjnV8bņLU@! ?@#I?@RLߟekW´___Oh"`D*LDůկu2 \nGAekReO3hB3 *)?0 4@Kx_+"?Rz?@UGDLN.0艆?PcN|ŞW==BOI\?@iz TH0~@Kإ<媆ڒPU@:T&?@{Г?@@Vb?@S'}gf-_?V\@N@?`#Z[?@ /ݸz_0hq//////?:)W]V?ifx eԠab&B#ec[?+="K]o߁ߩ?/ a(@K +oO$O/XdFPO[G3|V?@_wJ ?@b3Y2?P& lHO[~@Nn/?@Jz?P)Oy޾ F l0__o"o4o,ps[b{/ 1~8T,~~Snbkom??gh1Eљ#*?N9\2kkk JNMb^"O?@soܞHZС@uub!! ŏя/[o/?AS[gWB'bjێgPt*X?*!:!̿޿+oOxQ_qϹ˟K flݥ߇ɯ#[!Fh1`wj=4HZ@4u͟14FXj|VhCP?VQ _'UA1fЍCM 482CU]4){Q]?@Q[E?@kB֚@N#@#EQts-8RXQ1AfAY"f8MEOT*J@@x^?)RpT.ܙCoW @z3*iRo__RCpQНUV__^MќeC@!L?2f!ăf89U ަ `34'9 Txߊ,߶t*4DVhz1Cr߳Cnm $ U?1cY"Qprf8q'!Ӵ c#! 3h%Tq d%1<%Am%?jOT\w?AO"Q1iAt4(tt7=K?]?7N?4AF.(DÃ6455F(?6g٦ (-GO!Gk!/O/SOeOwOOOOO4|NDŋ?@G ']Pjj@nZ>IP5 _Pk!&_8Y5?fl@@;μ3@gTpX6_??jSXF OO_o?RG3@nB5oGoYoko菏ek!cFFFoloo,>Pbylrpt_ 2DVhzk!vRΏN(:L^pʟܟ$6s+N`;fy?uϯ);_qBO Ͽ}'ɟ5GYk}ϏϡCbg߆ߪl~/(-L^pχϸ$)HZsqߕ߬]^7[mk!0k!Vhz^9 /#G6f$5/ yX/l/~'////// ???@5%V0@ eFW8j?|0??;9n@@#9r???-/?/pT(|&h/{/YOkO}C@4OOOOEECQ6Q6Q6_-_?_Q_c_u_______.Ooo)o;oMo_oqoooooooospVn2+=_asMo'9K]ol+*ьX?r3_,я+=OasFo͟ߟ.f,>z'geIB`x6P&dwI|A!ܒ Q uϯ);M/AS刺˿\1UgIϋӯ-?3u{߽ϿB;_!σewϛA+Oa{ =O"Xg TǕHz 1CUgy]?@Qȗ[E?@L;ƿ@?xL;-@H@  @@`0 " 'T(/"v#T(//$@e/??@%?_I5HU3x?<P?????? OJM@bPQOAF/\OnOOOOOOOOO_"_4_F_X_jSHtS6__+O____oo*oOPObOtOOOOO ?OO__(_:_L_^_p^w]]ztVҮ_____oo,o>oPoboto?ooooS&^ rw'tQOu);M߯ůoˏooooI(:pٟ=3$6{Zl~ߏկƏ؏x_A_ewѿ+=jcuχπϫϽkλ?T[1HBFeGoa } фӑU=߬`|ՀEave.Lxvb11B )2*#Bb!!bH2>TaveMS6Ru\%uL}#񎰁H!1?}E!:B(?}E #Lb~DN _vd|eбF3s͵NSYDOVG oEVUG,@ IOQO OFы ^/5 S.`H#AP/"/4(樌L- ߣA)?;?_Bq@/~/:DR__nQa???-VCK]XmvȿK᫘UiY\_WX e:uAuE`uAuBq/`۠QH`ZafdQqk%fdQqkfdQqkfdQqkufdQqk`fdQqkVfdQqkfdQqkfdQqkfdQqk[BcgQqkfdQqg;ŗ@(egR1utPiXD PDi`Xfr'0U'뎰! Aڼr@qaQӁ_Կcu,Gw=0Im|cqaQ VA (3EWS  0hՇQcN;qaQ @Ja*6Hv1q Gfu$)uU@R?@,?@HD0J?@V_GvEE9/K/]#qaQ????OdfqTq*IV16iNOҿƢ?@Љ<#&TʱWPܟ,W@#!$|hB'UU UTV3AuOY'@g%$V3//Y.2E"u)`// ??BR2V2\1%h?z??g{qOO QA __+_Zl~_I$D"?fl6OKO/#/O)oY/k/}///moo/ooo?1? nqR? 0BTuśyѱoBqH(wq>M͑U@,`0?Z~g_?@0]q?@ dv?qߔ43fIho7ďuղ,>^Ugyӯ~"7W:@M?7qO+=Oas Ϳq&8J\n!jZ?@_7M-x ߀.@Rdv߈F߶?*?@(=cp>ÿ~wSӏxTiF$UQ`qn-(Ō#-]bE' x__(roo( *xoTNIT/t"13TT2 tѡѡ̒4t'H6t7tCt28 Qa :% ; 2!!$>L>Ku"yyk5o12J %!Qr)qBAyAz2{1ϯj͚QQΌq_@>Ԣ!݌#-I _/Q@/Q"9r+䔀mm򠡠' ҋru\:С%uL:Ё! Waj 9q Gұ5#׿[18Ŕ_$EQ:9F3sNSYvn”/̒'yAVY,@KbQbWf IAQI Eݏ\!!Ȗ%ts1fݫjZ?~E/+s1 ¼ ê ļ ż Ƽ  eԄ I-!9 K5We@-=i{ձA4I훱coµ5q$#8µX,谂y1,`YF##g#S2zG_zt? Qg8aDoVg.3?7a7I~KqeGӱO T9 %7H5eDhg<c; 7 >-E"/4/Q/]/o/////,M^κ?@6ə+)eRUPS ??09+P@?R?d?v???? ???uHVvEhVE7Mw*ypGJAO>EVh$Fw{gF]fUWe-UDAfIO__)_;_M___q__,F6T?@6h䤅__0?o o2oDoVohozoooo<?:ajreO1Uf8 $  ŚM +=Ii|ڵZ $6vؐ+=OqsU'˟LO5 %g7OOmzp~OۉcʭѾ Я:^p*j9̣wE|[i pbe?@vSdm?PJW'݈=843f@qJpйއ+ϟ݈xe~(84A # 1^3PCV?@:H ?@7LJp>й';*FW=ϥϠoŘ(<?@"qۇWjPTX^ePTÈX^'PTX^,PTX^PTXZWQe1 ?O>(U JF\hH%\HcOjʷ"OѸ#4%##(_7?.q?];t?@s?~m#9@w?@&`c]?@\u{ ΏD~@ ךpU?@.ӄT}wxQo$o8oJo\o,oPb~o|7 #9(G?@9ABBuZQD\o "@"Jй!(%켭̟'_7N7U)AymQ?@?-S8 F?@7fםd?P& ?lH@z@8@ t?P)Oy޾ Fȃ љQß՟nloޏZ@O] ?N"ܹQQ7Ifrπqoooj߲ր >ˈ/A*@%7I<[ߜ?@>֝}j 򂏏!>MjS u~j`` FilCoomr1 z>` -2݈rУuVU$QnPUv.f1gU nT T5VRa$c1 )ĬB*I+,"-ĒRğx#TaVU6bun5`%1 uLVQŴ1 A>ANUd%@VRDE; J;NJ5a_VTK__F3s͵NSYF%;ێLډUV?,@qb/1 pA)̎NUPjTPVQVRx/a¨T@}x+'Ɵ؟m$VQ"D2͢T$!xVRNRŬB@1"˱˱R34+ѭ9aK7 EA I9:;"bIV$!n$.@T+!+!sUkSqqVPVPJVPVPVPVPUVPVPVP!,TO/Z'!(VPVPe2mUio~ҥIaupVAp|!Q'VU$!;NU$!;E$!;$ !;$l!;b$x!;U$0!;$4!;+$8!;9$QäuX?,M Gk߲AmA!Տq"4FXj|1@Vj?@҄BP(մȟڟ"4FXj|˯8J\%Vzɿſٹ! 1_mA!Oa!~ϊE9EU@|!h4FԎؐBߎߠ߲zU5aYwxUx (%S6ݵa1cky5+mA1!n1m_Z5IsU@ Ҥ?@,?@HD0J?@VGD5M5cmA//!///DA4M 1)Y 1H_??@Љ@@qq{?Ô?@ǐWq˕ԕ2v-߲Yѷau`\!?޳ ucjuY-Y aL۶wkUфZ0EU|Ytpy[Ss6Tw'ɬɢϪmJu[Y҇D" lrqcUopsru 7(c /aظqF7w 0;4a͗"8J^הwωNJu+O 5 p0ߔ BxQP:|=AzK ݨ>eOpent4ck Mu0tINIc fauJWe`idqgPJu7yia(X\rRp'2XƑ,!a+ 9Jtr=oOo{ooaJA(gQ)JqJEeBEo,`0 pZ~g_?@0]q?@ W2DV Sq 5}?ᙵzru43AfΊɡ!3EWil~"7p:@ÚM7qO a*<N`rz%ҍQ%ljZ?@_7šM-g3y //-/I/[/{!V1{///////l+u@ ^J5C6?H?Z?l?~???????4eOO67OCOUOgOyOOOl^|>?@(=06p<'dOcO__(_:_L_^_p______Q__oaahzRe佱Ja_o&x<_&ɯd2?9AJ@oooJ!tJePj?HZ$r2bbOPz5S>^`` F lCooz` I] 33{rrN0tymVGp  pU@Zama4w.yJaa sd|ND?@G '@@!y3?@?1x?ҤڥnTI7"t O55"t\@!hW#5)hq kĪu1cr%p&'}JeMʹȟw)˜refÿ@iFrC?@n{ބy<<@$'x2DVhz!&ʿq uu6aPf# #6+Bشgtqt}txlT--r+a+cO)L䙑*䆂+bqq^b-JbdxrcTaun‘6ru\ [%OuL qŬOЁqËu@"rk }nN}e5Ɣ_t~ׄ!sF3s͵NSYF^enJe"r,@Jbf&R bOpq\xCTq.rx/!цx v vݶ #/Q#!mtqUyTqrr 0$bA1$^bJb34ff(T(7I4 !8V4*N9c4!:p4;}46b<4C/r,QQ>4NRrn[dw/// q qJes=LU.p*ppppUIUppppQ|LOG|Hppe9ufBNqqViaT2O{ƥv`AQ@WuRTkA][uRToA][RTsA[RT{A[eRTA[^eRTA[JeRTA[RTA[RTA[RTA[RTA[>URTwAWqqqp}}{n1RuAt@n19T{b0iQ4qqPtsk픃xX|C'0Ur)՛O!Ŀ!{ v"QAAqO:!UVrΞ]Ӧ׃ׅqC/ U 92 __/_n12OͷqxRԋq1ǶϘ2ϘVN}j|?@J$U8<f9Ϙ;ŷ{-?@RԐHY1c)O?@1;=?@ڿ?@x>H?Pz ;C_7֑ŷP"Зxŷ`+&%6YƳϘ35aυ^Ϙe|ѹDϘ>UY/Uk8Зn2 @Ξ0Ϙ{2@t?YnAjϘɚg(rMZLZ4?@sIut]Kc3?@L*!0_&q :節@߉O4W(6S`?@f?Jjq҈o~ҟQkA!Q$Y1$KWqum!=$+aü=@ވ|5?8#c2zGz?!tɧXCUF2B!0Hw"Uy<<.@3R%?pζa0_0u0`W` Fipl~C:pl:pCqz` ] 1qߐ9 @q"Vhz "EIN&_qap&z` q1$SqWsa1  RLxoY1& I[Z _zڝà^˥?;_(lQEԃТ0Re?t{޿8g' EN/`*jqw!" 4FoA[m !'1xR>Ʋ?@! SUWRdv 1CUPootoS O?ocAEwY{//+/=/a?ڝP/f:E"kXp0VL[(^7?`έBa?;???????O#OKBOTOtAtOOOOOOOOe"S0֣0V֥<_N_`Xp______ z# (_ ogSfoooobb0ga@sb˻u :Dtڝq yh 4R?2f/x&M}j|?@h;f9e)-%.5%m>%e0$$$> .A=ߦI2ߦ!uy%\Kc3‘(%q8х,I'e?0M`j#QcYk}şן5I::FXjqv@y<5ǣR?@)u?ݠO?@%+M_quvrBڇ+=E@u]oi]y.߮ҏfx2AW'G>Pbgq,'!)}U@ɗ9?@tc?JB3PߟA!$H qɡ΢Z@ BP(?@x<%aS%mQDRR#ÿտ!e0B `u /Rs'6"p |ώϠϩqZ[u$wɑg$@P&>t/////(//?)?;?[1q[?g?y?j|?į_"%ݨY˂ s%7 {OmOO_!_3_3EWujt___x:~,qJ1i~#m@ _og"c\f#XeBWuޓ*!+3S-(T;44o׎4+aҌi߇*'`f3u%nu cYtooooooo"t0PqGYkt (ZTQf}uYU@^EJ?@k8˰jZsr?@w߶{}Օ);?JvA43fPٺOꏳew֙jLub9 o|%n#n餡&|(E_oOasπϹoϻ7.%7I[mߑߣ !k.ptě#p֘A' #5GYk} =%nljpgy -uHZzTQz@ f9Ę@#yjؐ#&lC8J\n/"/4/F/X/j/gJ/%nPZvxM&///// ??1? C?U?g?y?u??13Q????OO,O>O@Z@ #؞M6ָsOOOOOOO__'_9_K_]_o_____y_Onb_o#o5oGoYoko}ooooo"ooq -?Qcub'?@vW@֚]R'+=Oas͏ߏ!O}FuK]oɟ۟?,>^ Ugy,ɹѭίv!y3?@??1xp9@I?пⲄfy<<Џbb)z m Su"Я`` FlCoorz۩ ` H2Y22v¤w !Î  8H ر '9K;Ϥ0lϊB2ƗϩqM}j|?@?9 ]RD{-?>0Ԑ 5?@ 1;=p?Z4?@(lm১8V ԢC_7𶵪P"ѹͪ`+&Q%6YƳLaυ^QPKYtر./QR/XYPR] ς0BT߂:G ]у1u߶1]ر4'!)U%XA2]勉Qȗ[E?@': QࢂFEfZXC?aCl!u` #?BuH{ДI1"5F!tA1 ̝@!tAB _@ EGݮA+EGPkTݧ@HAc"BB5¥lV ţVVV 1'|MOYӕ@(1[kEf@iFr-ce?mdcfm'&O_o:k*%Pj<#+bP/ASew*gbU%PB g!$ج(TQQ"I):*Gf2+Tѭ-n>Ad>ATa%n6"u\Sp[%uLSp!nq𰁮AF{рGqD@" f5N5_$aׄ2#F3s͵NSYFHp!,@Rز޶&כpn|T=` ST!.x"/[o2hqf15GYk} sEǷbVl_~__fRrֳ1m!گ.xTT0"=J@f2S1S1/1qq311ee*"U"A7Ā"  ]92!:;ԎC<Q1E>)u91n +#1T=x\f1l4La29g:=f59 ,2ITn?/?rkKLXF\#gI\%{JQU!5Ґ@2 1(!RWXaO㝍iV<> }HT8<>ΈBǝT8%<5M5ޫ|?@u U[1t>{B ,(T8<5 _ ?@BVXa+?@Т?@Bhn~`e,?P{ 8C_7e[1Le<53jMU7FHpnk 5(T8N@*wKT8<5e&.?h1T8[~^8S~9<5v6l'U7?@w?k "T8_@-ST85N $?@j{[>?@J‡ &qqM2A>Eyn@) Eama@f? 7tJr //.@Rdzdr!#JYqYu%!q>tY݀J|u)Yu?/Q(9Āc(?F&u(]/#L#2zGz?cNdBxU$0Cw8UjP.7drv׉q?Yp;ra䶝PC_Cu^'`` Fl`eClz۝Pc` ⟐UPYqٝP!۟#U""ʕIӑ&bbP#zW!& uYsHь\b beA%A$ F|AE/+GoYo_R?U`9_=bF%NmFFQD\ |cJ^_րd͢uM=O?]yO~Oc_ӿ6HZl~-?QcuFEft 1KR?@rP屓׏ @1CUgyȟڟGYk"4'دԯįd 2D Vhz¿=_=5 rPpN=cN=!]=^WRϓ/1*.o@oRodoooaooooo(,?QʕүPv2mgOZ`xr&8J\n𤏡Yofע"4FXj|͟ߟ /ASew@]B ,(?@#cNx/lo^˫ӽϯ);M_q˿ݿϪ_38J\nπϤ϶Ϛ+K*KWi`{ߍߟ߱@ @*Rn~Nx5㠮ۀ@bv= .@Rdv*<9Z^=Bgr&8Jxeew QvR?@UfPv?9Pգ`xCVhz //./@/R/d/v//I/l"+fћ///??*?ASO': ?@FEf1 suuxOOOBOHimV>EmPj<_N_`Ry`[bbbboPzzzS[au``` FM`lkPConkPor@zzk` ͏2ޅ߷ݷQfybhx$Tgi>r FH_ZclU|T8fl_HKuR%q @A @ __^(Ɲk "_B睟o.fj3ޫ|?@u e/eef_)El  ?@ŢdOHppA?@C\ ?@ J^_p8V ѢC_7cU/>El3j>m/u6Hpnp?5(SuaW*wKS֑7v #)Ap1SSޑ7@w)"No`orooiooooG@ޑ qtcs PuA/;}I֑4dcp>AUƝŪymfl@@;μ3@@xEMuN`/x&QUQub@qyC<<4_߀ȏڏ1gBuvVf 0Րg T%qjgI`xBuplQTq33AC@I)aOr*nn+{BkqkqRB->B4r|TaF6du\x%@uLxT@ Qgl U@ 2@²Ou+ H),n+N),E5@_*#ЍF3s͵N?SYFRE+m+*>E',@ PBFu+?@p[ Q X2ITኂª/@?En\?n?(??8=ՀB< OO%mOq$OpbT;Wd BqOr11n1TߢZ3Trppъr!!ڲ7T’$9T:T!3;d<dIX23>(d5vrnO __3M~A~ARZdѿX8eSah|.9wx etfpbi╮ҝ fv֑?[qHvqta{ Eta{^ta{nta{tKq{ߥtWq{etq{+tq{tq{tq{ڵtq{taw;g@baovuCRut^pWQ_qσϕ0 Iq[q "C9Ddӟ~w=000 qa}"A񬯸ʯ#LXmA'y@7=Q7}P[#2zG_z?G~F A H=I[A(ewU?..@Ra6g@_zgn߀ߒߤ߶Yj]If\؉<)aeǎqawĿֿ 01d@Vj?@҄_BP(Ķʿj|ώϠϲ %7I[mߵJk!3gW{a +qa'1 ,>Pbt0|h4+Fÿ05ӿ25ܢ+=Oase (ݣS@CUgya//)/;/ Kqak/}/q///s օ9s?U@?@,?@HD0J?@VGWUU]???3qKq(_:_N_`_r_tցw褀sYy_/*2A06¾?@Љ<6t!wP,W'@1x1' uu utas*o75DO1O0B~KBupUOgOyOOIbBA5OOOxmKo]o}aQ}ooo///?o$;I$D"98fOl6˿ oo???o????OGO-?QOO|ށOą5ߏ,X(J&]U@,ߍ`0Z~g_?@0]q?@ eŀnŗԟ ?fO43fp"4"αſ׿ 1C~"7:@80gM7OqOw,㙉ϭϿ+=_%XjߊrߖߨߺߑjZ?@_7~eȟM-2DVhz Af&FFRdv͕@ e^J'5wȤ%7I[mUɠ 1CUg^|>?@?(=gpP69VAy\`_kdvMEBo{c/ H&<51ETPj?__RPbP_ oo1oCoUhu5!@=UvѠf1,pg4AADME=U HlTA2H!#9p)tr*QR+2AAyR-$ʹڴBX=3sTa5đ62uL`%9puLJ1ˡ9p15蠒tqVa05{`mqBnD3EWk11X=Tuuo@0䑸0J0 000U 0 0 0 8Tfq800eDE ?X1tq5`}-qfQ9p=V-q~`!5$'+5$++tu$/[+QU$7[+5$[+yU$[+$G[+E$K[+E$O[+Pu$S[+ 'W[+$3['AAQQA@ME=Uбy{RutšёXA{̘QAXO!Jtu6O!FiPbtROdOOOOSQ7@__'_9U{^T_f_Q}___Z('UaaUY5_,`0$`Z~g_?@0]q?@ +څㅗIo[omo$Cl#%x?ojet43f MOz^ #C:L^p~"7~<:@˭܆M7qO숡"4FXj| ͟ߟA /ASeljZ?@_7ڈM-]ù˯ݯ%7I[m ǿٿ!lBe@ ڈ^J5vψϚϬϾ@*ߑ EWw>pp߂ߔߦ߸m^|>?@(=H܆p<'dO2DVhz 3Q3?QQQ*?<:U_Ԡ e2Ο&_d2?yށيof*AE6O pOOI[mNKI5=Q+OQ`Y1OQ`V3l5)Ee_'9@Eeafd6 @@qq%`1@@A E?D Vu``|QP7?ABuKIB;1aBsFrtHAT1 <=T@rt^ABj.8EG̿@by EGBT@e4/b BLqeXe! 0UARE$L bh v#eQ[S'6/H//uc\cRiZ&_o!Ll 0VU11?b7!/ L%L"ABGIVC]IaVeFoIGTEodzUnE owenYo}e@5o'0BVvPNTzRlE ɖ_FwX"3%VLAN MAGR 7XW'Q2 @Bm!41aJ VG`QY YZ?'xxzQ$7QcRob!@^@@~@@μ3 ϛT1wCVRR޽ns̄̄DŽӦ̄䄦Ws#:2ssF3$K$_3-$s;$3<$>$3?$ö=$׶3N$O$FNAGQJ[eoVUUӦUӦU##sFGKK__ssöö׶׶*WOSAU_2j!Y-"^?7e 7<ToZF 0QA 81`Tv)4)09d0A(큥Q00LAp6r & QC1Wi[tY ietzUiq"iq5iq i s%iq^i sFioCWe e itedeQe!ee |5ie 5iӡ e %e 1 ĀA_AƀAQĀQcQ!Ā)QĀ6Q1 ĀCQQcĀ]QKĀjQ_ĀwQs!ĀQ1A@uMi#t Mxi>UCKO FK1flafSy%ʅxi't\.@@jXwB?@.# g?@x̏@?@/*b֓e1( MTb<ם!tjqG a & rtr r&!uw!!!u*wӿetRą=_swʆbK'򡒜rSEtf` p@u?tv1ʇ7h;"Ăb2s!QBĂ!@EA'P`nᡑ/imṑ5IBT-/C#a#cI1]R2j3w4'5H6$i7CI8Ŕ9Ҕ:ߔ22/qqAF-"117"JGX"(Ty")a"q q"QQ"ie@!#ᔮX'l{7#a\BpAE+T. F?6PwgiAy/_yHqqWB$dR+H,U@^^'raraHsTaqu\%uLHԁAHNaE@EP?@ U8?_Ä|sF3s͵N?SY0~€'Z,@Ȃ΂ԆH&nOhAw,Ht!kjZ?~?_!ppppppppJppQpYQpeiȑ ∀yVeNa>i]Ut\(\(\(\(\(\(:\(7XY+ |se݁?SrvƃQTk7dyG*h>Sq͔(d}e``Z7rKNaUdRY]ifi~-bc`,#i,%j|slVU8>x1O.?@gx* K?Kc>=1U5N@x w@[O6KKTTC]Ye$$g iJe٥Y/xz"3(hNܮhv؜h0cW/V#2zGzt?q`Ӈk%W}"/tOO70݀u ?Kzc96=60eW?>>ez?O D1Ig >K]__q________l$U]?@xO?@(hb!0T"Io[omi+P}oooooooo \xDOU_ j+@D" ~D8{>UB@C5WNv5a0d)DK+=ZfxҌpg \ɔ?@J\B!0V줘'moK]oɟ۟y$ C?σ+nU?s>9a=K-@JVhzɾɽ!(P1/C/U/OasWh/z///UO߉$?rH?br t??ͪna??? 'i w1g;o0;Hă6f]?@X)z?PJW'=u43fC'(% (!<@hŏ@U&PXAXAQF! P`O8J\nЎ //-/?/ 1x3#?b7"/z6:6=?@놓Sa%Ż?PEkU S|uLOOOOOO@?l|__,S3XE_WXUj_|_____@QO__#5V[ cxo'G13 La4?55l51a#~2l/^k#?U@!?@#I?@R uu?]C#kO}Ged~2Ϥ϶G)>{#d5cE50q :L%{?Ce]wvkRex?3hx _A(`4)``eVto "Rz?@o3 GDiLN~ d?q .d5A|_=x=k'cE:?@iz T&~@KpإPbtef(l߉1`_< .,!4.ͭG!̿^/{?a<1˧ORmOJ//1/// M?-xQ=Oa??t??D_hzJMaOe///T9 _____$؀ȡ_Uȭa&o8o@4pdSoeowoooooooh$6HZl~4/@F.!g/y/qGÐ< ÐGDq YD+AAnd,?>?P?d-ƅ: M`Q@Wud Qkd$Qkud(Qkd0Qkd|QkdQkƅd@QkdDQkUdHQkdLQkvdPQkUd,Qgҁz=qBO#AtR|utP#AvTb0iDҁb= HXs 'K0U/!)1 Q"@aQQ j_+.!G'91Tˤ Ķӹj IJB___#AK=B"ЉB(NJ(q )͙Vᤋ@lEa0Ȅil.!DŽlP}?@cuUqhĄlSt}?@L/=A.[WHf?@ ?=в;?@6PD?Pz ;C_7ml@Rҥ'Ul9~%-'辈?sѷjulW}.񸄨U>BFUlwN%œ#B@}h,Kф0B@xn˄>l~pݒ>uKBTH򅿼?@.bQ%nAk"wT?@| hp2·&q :bin@:7+@f?=OL^pLva QaلzA i e4"1DMzA൬ eo|͓U?[yϥ](#|2zGz?!.!Q(dCUp)K`@cwh2Uy<<~!.6gC ?ރBaֶ@_@uW@`` Fl3Cpllpqz` 1&EE @ב /ASRגI&DzpQ&L ēOA # '$+˕A۔ vw߉~!ALċIUv:R╬UsVſ?CT!0f?:8fxa$Q"?K]o_!礐{?@42SUW+=O@as wRdW)//)E,/>/P/b/t!///////ݹ?XP^?g?@" %VqP(^?Hr»Oß`KHOZOlO~OOOOOO#O _)QQ)_5_G_Y_k_}___ VUQS0X_ohb%o7oIo[omoo斺|÷ (ݰoogS5Pbtrr%( :Lt!p DсџbJ YÏՏ .!?6P}?@/uUq00hќ[6|75@>Y5[Zc4l4t5}5> >=睔A֞.6?Ak"F8JY5܈DU;Fe? > 2D@VhzI$ϯ /񵑕Rj|R ?@rg0mV蟠?@فG&p1+6ߏ@ő6;trǟtc/d/v*-?Qc w2W|%b,,WG9kU@Gh=?@0it/\'D'P"A֖1f5Hqȑ >@ BP(?@x${C c觙~`f`n*$6HZ@c~ ' )(B a2)hiU@S䧀-Em)]s?@%$sy~~̏ޏ?pLQG43fo_h,"*Ʃo8ˀ1nE}[=>]F(:n^p߂ߔ7("4FXa]OVGR~%O 2DVhznĠ]D.@Rdvu)/ a/;M_q@hќ?@Vb.ѦN!S/#/5/G/Y/k/}//////// ??Z>?nJ*`og?y??????@?? OO-Ov*IO[O{AQ{OOOOOOOO@Ƅ@1~~ĈGm:_L_^_p________oo$o6oHoZoloioϊBO%ooooo 2DVhz"+q*N-Ìpy<<DVhbbzSu`` uF}lCoorz^0` 2T+;4,Ėn vg$CI 8ܳhU)   ޤfh,K!?.!L^֠P}?@QuʏUqƃTn_ժSt}?@bԐ_Q.[?@E?=sRsV"8V ԢC_7k__Ձ@Rn__Ց9~$-'.?sѷ[~S/BFȃ[4o"@R~ߐߢߴ 7JG@- ;85Aun_k?4P19 5  @@L\r?@(?@#_SZ UU"u` ?F?RuIYC5A2CqVtFQNA Wg}JRPt\QR6?&1UWp~2UWqďxRPZOTd;.|Rw!fSw5fC5A'@1bITMi|3JP5AMCOk薵Vfÿ@iFrؖu?tv" 7&oc %Pj<ϴbP ,>gqBPK=AMHgU1Sy5hxTSaSa;OO@I)ۄ*B+nb-AdAⴄ薳Ta;nv6u\p[%@uLp@NFq(JT@H;,Ŕ ENn5ƺ_;QqׄаrF3s͵NSYF(bp,@pb,&x@p MȬicTaa;/o<ur A֯P 6(Uo7l f!o3oO"b%Om{>_х0ޅ녎55BAA1b&&3AA "NN 27G52H9a:nf;{C<ԨiabMq>u1nuχϙ zqzq̆35A MxS?8~>0[1%54{?@癆|*"I6N鱏7)p8J50?O BſWa[ G ?@냼j$?@t?@L?P{ 8C_7e1e53AG7q5L| ?c81^;v8I5&G;dS8^叁96 {'7lO@l8yo@?QsvY85?:e%Ճ&25!)K9??Xk253?@ ?5!ĤH~N~~P?@+S~0&qMAEn@j64qB?! =q@f? 9JhI//riᲑ"$W3/-I/U-q0}%k1(tqu_90/('(t(6?*#zGz?f !ɧxUHBŦG h0wUjP.rP#?p "am0h0_h0u`` Fgl|`C8l8Az0` [ oߪݎ0q 0 1Tfx 2CIL&]bbGPzo"LUgH՜ EJm5AW$4 |AEG?Y;ooXo~jbHuu?H۟M\}FEgcCJOCtM.M_PO]]k HYMV6LgL^h ! 2DmYkʏ܏ _SZ R?@P PbtΟ /ASүNrQM=a?uWϿ); M=mj?@ C^DMi&0n^.M^PYM5^nV@_ ?ۑߣߵ!I1@RrAr~TQpTU'WU@|‚Pbo CE:r6M%Y2n|s ( S r.eE_@q`k 8=aaEA,Q //2?20[н5U/U@4{?@?癆|*fy-v7)p$/Nvى…_Žlբ}? ?FG/0=FN>%~~vV^5!?Pe?.G >Ec!uOazW?i?{??? ????32OO8AA8ODOVO!tU՛EO¡HЀ&?@(qZ?@TWإᥗO_#_5S?tCO@o');C@?gۥ[-ڦPOH/dv2Wşן:3%E?N/"rτϖϨϺß d4'9YYewhOzOOOO0g=_JH&"H}5_G_Y_k_}_____ 11oCoUhhorav;8B!*Hх B!!ukuaZOG|ɼy}v^~Ԅ~ ()1QR9ve"2mtwˎ|I-2D  af_.aOWr@ 5.NEWij(XgRcibajE£ᴬg}MQPcZM#?8@u|u/'/9/K#y!-?/*U%443fNy/:8bahs2s`kI7O &k~zO.ZC?XOL&`E]Mo_oqoooooo6o ,q#5GYk}0ag V<r{x*Oex!3EWi{ÏՏ ;#U+ewџ+7FXxRxਯ̯ޯ@7)p?@&W#!'$j6HZl~ƿؿ 2DVhe#,.g @.@Rdv8ѣ*<@$$@絟]GxI.@v%7I[m,nXd2-$s!3EWi{De9+=Oas0aǐR?@K>4UvrOxS//)/;/M/_/q////////?I?MdZ?l?~????????O<:*OG=_._@_RRHmVENPjе__R`rbbbbPzm[[Sra{u p`` F`lPCoPomr@z?0` F-2W00QtvbTi r Z9sIUT8l@oKq @ HQ @ %o7oIn96ljo~0[-uoU@!4{?@癆#|*˩e߮Pͧ[Ue0O?@2>.tH 51[A?@냼j$g53?@BJ?P8V ҢC_7UEe3AGѷmeL|O?c̨ھ%;v̨OI&ͧHQ,ǪW빱Pͧ[ooooy.@R;}~ӯRA!O4ɷAI+O^Q24\.@@"?@`Vj?@!R41XXcuku` B?up錒~t *῟t2Ş!! ?wM5ޟࣅWL5SUs50/ԅ7y\%3Uu23_%%.~і9K]o ^Q\dT>մ?I?&AR@XX&Q2yU\şל@Y,QT7,,YWcU/yyQ5:"&G! %Z+/P/Ьq.c//'./=//%//C?/@BQPUTPxHdsj {u">N`va-netwdkNz_ d 3W,2q}@7I鍬 4dםh8lyp"vOOOcؒAK%ER.Mq-qa}kU7cT2 SFUJk_T_@j)ϊ#l#hwF!e3ybPQ YJB>Q)hGk@o%o|a}q< ߘߪ߼ @-z-. p#1.b1 @@>?@p`0 ?@~W'| Lq$℆kڭݺ & ~~# R}=Oas#pu[pyGco  u D/???Y/ /寸/ ) 2\??)4oӯf?ۿ?fXqdm!9ԺUD@sm@s+q@R@vc@AUp @aFPl @sHo XIX OO_ȰH9H bq7oC{Sowogno n1U4-|"K{rJyTq=M_qi2 4p @@4JR?@@T*J'G9K]osԈ~ٛя ` ` ՗);M]e)s3pD[Ÿԟ H.@Rdv,>G/N6,ƿW/꿥///K/ ?GYK}ϡϳϓߥ 1CUgyO O G_Y_?Q2E'bӋb{>P{B(w~M >-@@A)Ues@@ -%?@H] h?sd{ei{xQfa0 Oa ԰E x9҇*<NM2_F9}Q !3fWi{C?U?g?/Ytf/4{/X}eo?/X")?j*:DpEI21nc@?OO1OCOUC\O nOOK줧BG @ 2}Q RjqQ.a_Ceᖃ碡PFo\L&d@@gl@@`4FM?2R7?V_`ؖfmAA  N# [= ?[;QѤHqG P6Tג'RM5Yf}^qR%OVR.֥M۱;ۜE\iƔ>>ÿ@5`5jCQzX.^R `3QQqrb4V!2QmD?CjIT R 1 "qq3.bH115 6*7 QCֲ8a9(q:5 Q;B1\T q%Prѿiaiuy~ۋ xlx7T%gbg.~K8U4>[gu@-?=i{{QQAz{Q'Ym1@so½i/%⵬$g3H_#/%o,xy1,!i388#2zGzt?z HeTf>u1PrJq]GY߇KquG_T9͉ v*7H5eTw<c !>UA2Damǯ٬M^κ?@6ə`_)uպ.@+PPbtο/xoE7*y"ǴQNex$Fϋ*ІmfUWu-UD{QYAiq-9K]oߓߥF6Tp?@p6hŽ@0BTfxL:ajrA&kAU?f8͉4{Q]AQ);M1YyhZ("4F4o;M_U\E5/`g GϷ}pHҏ_[sJ!E//! ///J?n:?j9E|[i`pbe?@vSte}e?P?JWAh=HDQ43f3SDh9Se??91@4I;Onumvf#F p1T$aFq_]#E3 oo/oAoúCV?@:H ?@7WLJ?oe>ooo9K2VG]gMOO U(<?@"q7eDVQew1QH !N`Ih"`JhޯE`Khp"`Lhޕ`Mhڎ! gѮ_PY _/N?50?B7\h%\Ϻ3?72P<83A47<3A3E8)GG>+q?];t?@փ\m#H<% Us ?@ekD  ʐ7XCZ_U@C%Y>@w?@&`c]?@\u{TU U@ pU?@.T}+("4HZl<`r|7#9(G?@9ABB`Za%pl# ܏" 2Z9A(7@8@脝 t?P)Oy޾ F ʔћ~!3 ",?!yZgo"9z^a?@w% US/0'hŸd#///H/l ׂO@Z?l?mѐU8Þ&[ V˖S֯?@%~&Ԇa%5V>jn@O]N"@ɈlKAGOYOAvOOO /O~Sj߲`~V %VN?_Q_:____o#o5oGoYo̕o[ߜ?@>/֝nՊ~jr1N?MzhL@Rq}OOOO WQ"_"_4_xj_|____?ί;?M?48zomϞoooo`\ [mƯ`(* @C&8J\n~_ȿ -?Qcχ~:LώN^v^>ߢp4,w@1$!%)4Kmpq@@Ye?@?@xG+̑Ӛրn!u^{` |3?cu& t ן%-{t?(Gƹ(1!?W1 x!sLNƂ:0U?";^_bz![(N ]oͲlAU")[&}1b&/ ;ˏݏ%/;8' (p V1=)5:?_?>??7m)>?L? O$)??RO?f`!tO+ms%C oudpi+Pe -PcT!Ԛ$(X''2q(P'!~!+ f^j't>_P_,({'//8&!%3NbWXMӮV^o%;B(qPPM JңZ+O^@a4wQ$vљ-mU@b?@ZV@@`0 ?@!R41 rַu a ii( 2ŞB ˺\ ?Bv2LU, -ɚM*(/:/L$T#i'Eb{SC`` F-Pl C%P$Qr6zB` ځb*b\ځՆ?\.?p`Ao(d!t$ݵ/b*(Ebk jd ͹g雴///m/? ?OOOh?jsp??ɼukO&O8D/ϓSuOrۿb^d2P_D$h#յY"[N%Pv_a-c%Pm+Put1ZrqqT'u&qYd㾁__Wx4XdF8fbmUUy _rq W@.I@9P9 '^MTEDF x5 @Q&__ o(oLo^gnoټa] '> )`gak_ti{S|aPo>to+W$6qrp [?@܊ x?@BrHWx؁- \,E" &O+_"3 -'|"]u_ޓɏۏ#5GYk}şן#5OYBůׯ顳; );CUgϯKz_A2_V\m__mļ_ __Oh_(o_P!uɾ&N~=:Lnjtw2kl~ߐߢߴDUg"4Fj||H 0TJ\n,> t3e'()*+,-./0123456789:;<=>?@CDEFGJMNOPQRSTǪҪ֪ڪު  !"U4<`Y,b'@"H$ @ z#=C-,` A;XU-UU4<Y,b'@"H$ @ C-T007"A@xsjTR@rKRL<(L<(E(lRElRU`8?~%@*JR)@ LFDNTyB@ uh(TBԆ U?Y,b'@?"H$ @FxP ocAzF)@#V1W]VB?hT1%vPDT1vPجU5U1( O-D&UA%U f -h"/T))U,   '-P/!(8(B(-$#@/F DU! (,(E(-(U((((U(+-6U?AJE(UH(R(T(e(Ug(y({(0(U3(B(UM(ENPUT]_cUlnr}UUh(t((U((Q(W(U\(`(a(c(Uf(s(v(~(U((((U((((U((((Uk(o(p(r(Uu(w(z((U((((U((((U((((U((((U((((U((((U((N((]((l( "* *+"59:<=>@CILMP5VSUE$%.)U.34YUZ\^`UadefUmopqUstvwUz{*S!+#&/+Kܪ((T(( ((-(((#($(&(>(@(D(Y(Z(_(i(n(q(x(|(}ªͪ278RX[|,,,,,,,,앪짪쯪Ū˪Ъ֪ڪJȝ U U "'*U+,-/U1567U89:;U<=?CUFGIJULOPSUVX[^Udjm8ʪҪ֪ڪު ѴؼUؼؼؼؼUؼؼ ؼ ؼU ؼ ؼ ؼؼUؼؼؼؼUؼؼؼؼUؼؼؼؼUؼؼؼ ؼU!ؼ"ؼ#ؼ$ؼU%ؼ&ؼ'ؼ(ؼU*ؼ+ؼ,ؼ-ؼU.ؼ/ؼ0ؼ1ؼU2ؼ3ؼ4ؼ5ؼU6ؼ7ؼ8ؼ9ؼU:ؼ;ؼ<ؼ=ؼU>ؼ?ؼ@ؼAؼUBؼCؼDؼEؼUFؼGؼIؼJؼUKؼLؼMؼNؼ%OؼPؼagմղT$IFsT Q@>HմJDUYl4Q 7`%hT$ @aEQ/-/?/=UCf"}&PA+e-`#A)U##A.#v`#0U"?@ feArial UncodeMiS6?/?`4 R$fSymbol$67fWingds*7 fECalibr@  ?$fSwimunt(S$fPMingLU(w$fMS PGothicj@ $fDotum"|i0@ S$fESylaen  $fEstrangeloU dsaC 9$fEVrind1a8 Q$fEShrutqi| Q$fEM_angl$fETunga<"@ Q$fGSendya*/ (   R$fERavi"o Q$fGDhenu"*/ (  R$fELath#/ R$fEGautmqi | Q$fECordia NewE R$fEArial"*Cx /@~4 R$fMalgun Gothic |w L$fETimes NwRoan*Ax /@4$fGMS Farsi{{ ( _ R$ fGj ( / R$EB_.B%B=B3B"5BWGB:B7BABP0B1B0B0B+;BL.Bz9B-B2B;BM8BIBJB>BV,BGuideTheDocPage-1"Gestur Fom aSwitch&msvNoAWutCn 7ecCa}loutPC SidePC TopPC FrontPC OutlineButonScren"Handhel Frot Handhe}l SieHandhel Top&Handhel Ou_tLieCo}nectrNet ormal"Periph Out5ln NetworukFonTower pTower }FontTower Sid TowerOutli nPeriph ToPeriph SdPeriph Font PeriphSadowPeopl"Peopl Outi n3D NetFacu 3DNetShadow&3D NetHighltSymbol TpSymbol Frnt"Symbol OutineSymbol} ide(Default Sv]gtye#HasText&ShapeC5ls&ShapeT ySubhapeTy&SolSH"'visLegndSh7ap;visVerion1Row_1!Manufctre !ProductNmb e!PartNumbe*!ProductDes_ripinu!AsetNumbr!SerialNumb"Locatin"Buildng"RoomNetworkamIPAdre sSubnetMask"AdminIterf7ac NumberofPrtsMACdre s$Comuni_tySrng*NetworwkDscWipinPropetis$Lapto cmuerHubDepart5mn HardDi_veSzCPUMemory$OperatingSwysem IsViableSe7rvBelong7sTPC$Datbse rv CloudRow_2Row_3Row_4Row_5Row_6Row_7Row_8(Dynamic onetrTextPoWsiinBridgeu*Aplicaton servEthernt Scale AntiScaleRow_9Row_10Row_1Row_12Row_13Row_14Row_15Row_16Row_17Row_18Row_19Row_20Row_21Row_2Row_23Row_24Row_25Row_26Row_27Row_28Row_29Row_30Row_31Row_32Row_3Row_34Row_35Row_36Row_37Row_38Row_39Row_40Row_41Row_42Row_43Row_4Row_45Row_46Row_47Row_48Row_49Row_50Row_51Row_52Row_53Row_54Row_5Row_56Row_57Row_58Row_59Row_60Row_61Row_62Row_63Row_64Patch }pnel4Fiber _optctansemtAusterTranscedvisSpecIDBlocksATM switchBridge.14.Dynamic onetr15ModemRing etwork VBackground-1RegistraionTilesF msvSDContaierExclud daegr eShowFoterBackground*msvSha_peCtgorisCityServ.29SkinColrMainfrme$msvViioCreat dUrbanAlphabetModuleVerveNone Solid$Background FeNone .26viwsSTXTechniCom-linkFirewa lBox ca}lout(Oblique coUn etrdXdY8Public/prvate Ukysr TerminalangOblique0Oblique con etr.213Web sr vFTP se7rvEmail servType(Ma}ngemnt s7rv (E-Comewrc s vangShpeslopeindexFile s7rvDocumentsignslopebendPosfl_ipDrs00s01s02s03s04s05s06s07z0z4z1z3restBndsflipRouterRouter7.7.Oblique coUn etr92.Oblique coUn etr93.Oblique coUn etr94Print sevLegndvisAntScalevisScale visLegndGUIDUserName"visICo}nectdFlow NrmaDisk torageCostDurationResour cData8Conte wmaagumsrv2Streaming Wedas7rv&Direct}oy s7rv u0Aplicaton serv.57DReal-tim c}omuncossnrv)Router.109Proxy sev0Oblique con etr.124Router.78Router.1370Oblique con etr.150Oblique con etr.152Cloud.1600Oblique con etr.1670Oblique con etr.1680Oblique con etr.1690Oblique con etr.17Sewrv.3Router.95Serv.328Router.34Router.3580Oblique con etr.370Oblique con etr.3740Oblique con etr.3760Oblique con etr.37Serv.50Serv.380#223 ZE3f#jG3f#G35%G3\f#G35(G3@f#G3$f# G3f#$G3 89G3ئ1SG3e#qG3e#G35%G31#G301"G3h5)G3 8,G3X1FG385c&G31#G3h 8G31G3ا1G31$G301&G3X1DG31c"G31#G3e#G3y%G3ب1G31#G35$%G301IG3X1f"G35&G31G385)G3e#G31G38+G3ة1EG3 dE3h5t&G31G3 E301 G3X1$G31 G3 )-G31VG3ت1t!G38G3h8G3 E31G3H8G301G35-&G3X1S$G31wG35&G3H +G31G35%G30i.% E3ث11G31N#G3Hi.q E3k#}G3(5(G3(8G3\l#G38G3\i. E3X5!G3 /E3h ?E3 VOE3P1_E3h1oE31E31E31E35)G301 G3j#G3 ,G3 89G31RE3 8bG31~E3l#G3$j#G3\e#G3@e#G3$e#G3e#G3d# G3d#!G3d#6G3d#KG3\d#`G3@d#uG3$d#G3d#G3c#G3c#G3c#G3c#G3\c#G3@c#G3$c#2G3c#GG3b#\G3b#qG3b#G3b#G3\b#G3@b#G3$b#G3b#G3a#G3a#G3a#.G3a#CG3\a#XG3@a#mG3$a#G3a#G3`#G3`#G3@`#G3\`#G3`#G3$m#G3@j#*G3$%?G3%TG3%iG3%~G3%G3%G3\%G3@%G3$%G3%G3X1G3R:04G3%dG3 8|G31G3%G31G3 8G3 /G3 12E3ج1B"G31d%G301"G381E3U1HG3X1G31 G3 >-G3P1kE3h 8yG3H 8G3( 8G35'G3h1E3 8G3%G31.E31>E31NE35^&G38G38G3%G3r2E38G38G31G35'*G3pi.Q E3i.[ E3Q:e9G3h8G3ح1G3 3G31 G301$G3X1@!G31aE3H5o(G3x5&G3Ts2E3H8G3`s2E3\%G31E31G3, E380$E380(E3 90,E3(80G31JE3 1XE3@%hG3$%G3i. E3j. E3j. E30j. E3Hj. E3j. E3j. E3j. E3j. E3k. E3k.  E3Hk. E38G38E381@E3mNG3cG30G3,90E3890E390E3@40G3՚0G31G3%:G3خ1N"G38pG31$G3`90E3l90E3x90E390E390E390E3U E3 U E35$G301G3X1%"G3P1GE3( 8UG3 8oG3h1E390E3Q:/G3HQ:2G35'G3@ #1G390TE3HV1X@G3iG31G390E390E3> 3G3G3:0,E3:00E3F 4G3h6R3G3h{ 3G3hG3H 3G3  3G3ү : 3G3ٯ m 1G3Hb G3hb G3 G3 :0 E3X G3  G3. 3G3 a 3G3H 3G3X 3G3hc G3  G3T20. A3`202 A3l206 A3x20: A320> A320B A320F A320J A320N A320R A320V A320Z A320^ A320b A330f A  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./01UU U UUUU U!"#$U%&U4<$Y,b'@"H$ @ U%uC-SO& AU4< &}A-H007 "A@Y&RR@&8RL<(L<(E!(REJ4/(R?a#R  g"4FX883(}'M@(F|@(auHֹ2P eBX k P (#vU1`.دl6(P82)vR$CL!xMa!7ݚR'h0z1?b 5P25j lTT? _&*ODU=(H%a!nova-17.0.13/doc/source/admin/figures/serial-console-flow.svg0000664000175000017500000007716613556316250024105 0ustar zuulzuul00000000000000 image/svg+xml nova-serialproxy nova-api nova-compute # nova.conf[DEFAULT]my_ip=192.168.50.104[serial_console]enabled=trueport_range=10000:20000base_url=ws://192.168.50.100:6083proxyclient_address=192.168.50.104 # nova.conf[DEFAULT]my_ip=192.168.50.100[serial_console]enabled=trueserialproxy_host=192.168.50.100serialproxy_port=6083 10000 ... 20000 nova-compute # nova.conf[DEFAULT]my_ip=192.168.50.105[serial_console]enabled=trueport_range=10000:20000base_url=ws://192.168.50.100:6083proxyclient_address=192.168.50.105 10000 ... 20000 Browser/CLI/Client 1. 2. 3. 4. nova-17.0.13/doc/source/admin/security.rst0000664000175000017500000000173313556316250020420 0ustar zuulzuul00000000000000================== Security hardening ================== OpenStack Compute can be integrated with various third-party technologies to increase security. For more information, see the `OpenStack Security Guide `_. Encrypt Compute metadata traffic ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ **Enabling SSL encryption** OpenStack supports encrypting Compute metadata traffic with HTTPS. Enable SSL encryption in the ``metadata_agent.ini`` file. #. Enable the HTTPS protocol. .. code-block:: ini nova_metadata_protocol = https #. Determine whether insecure SSL connections are accepted for Compute metadata server requests. The default value is ``False``. .. code-block:: ini nova_metadata_insecure = False #. Specify the path to the client certificate. .. code-block:: ini nova_client_cert = PATH_TO_CERT #. Specify the path to the private key. .. code-block:: ini nova_client_priv_key = PATH_TO_KEY nova-17.0.13/doc/source/cli/0000775000175000017500000000000013556316574015503 5ustar zuulzuul00000000000000nova-17.0.13/doc/source/cli/nova-serialproxy.rst0000664000175000017500000000170413556316250021550 0ustar zuulzuul00000000000000================ nova-serialproxy ================ ------------------------------------------------------ Websocket serial Proxy for OpenStack Nova serial ports ------------------------------------------------------ :Author: openstack@lists.launchpad.net :Date: 2014-03-15 :Copyright: OpenStack Foundation :Version: 2014.2 :Manual section: 1 :Manual group: cloud computing Synopsis ======== nova-serialproxy [options] Description =========== `nova-serialproxy` is a server daemon that serves the Nova Serial Websocket Proxy service, which provides a websocket proxy that is compatible with OpenStack Nova serial ports. Options ======= **General options** Files ===== * ``/etc/nova/nova.conf`` * ``/etc/nova/policy.json`` * ``/etc/nova/rootwrap.conf`` * ``/etc/nova/rootwrap.d/`` See Also ======== * `OpenStack Nova `__ Bugs ==== * Nova bugs are managed at `Launchpad `__ nova-17.0.13/doc/source/cli/nova-rootwrap.rst0000664000175000017500000000250013556316250021037 0ustar zuulzuul00000000000000============= nova-rootwrap ============= --------------------- Root wrapper for Nova --------------------- :Author: openstack@lists.openstack.org :Date: 2012-09-27 :Copyright: OpenStack Foundation :Version: 2012.1 :Manual section: 1 :Manual group: cloud computing Synopsis ======== nova-rootwrap [options] Description =========== `nova-rootwrap` is an application that filters which commands nova is allowed to run as another user. To use this, you should set the following in nova.conf:: rootwrap_config=/etc/nova/rootwrap.conf You also need to let the nova user run nova-rootwrap as root in sudoers:: nova ALL = (root) NOPASSWD: /usr/bin/nova-rootwrap /etc/nova/rootwrap.conf * To make allowed commands node-specific, your packaging should only install {compute,network}.filters respectively on compute and network nodes, i.e. `nova-api` nodes should not have any of those files installed. .. note:: `nova-rootwrap` is being slowly deprecated and replaced by `oslo.privsep`, and will eventually be removed. Options ======= **General options** Files ===== * ``/etc/nova/nova.conf`` * ``/etc/nova/rootwrap.conf`` * ``/etc/nova/rootwrap.d/`` See Also ======== * `OpenStack Nova `__ Bugs ==== * Nova bugs are managed at `Launchpad `__ nova-17.0.13/doc/source/cli/nova-console.rst0000664000175000017500000000146613556316250020636 0ustar zuulzuul00000000000000============ nova-console ============ ------------------- Nova Console Server ------------------- :Author: openstack@lists.openstack.org :Date: 2012-09-27 :Copyright: OpenStack Foundation :Version: 2012.1 :Manual section: 1 :Manual group: cloud computing Synopsis ======== nova-console [options] Description =========== `nova-console` is a server daemon that serves the Nova Console service, which is a console proxy to set up multi-tenant VM console access, e.g. with `XVP`. Options ======= **General options** Files ===== * ``/etc/nova/nova.conf`` * ``/etc/nova/policy.json`` * ``/etc/nova/rootwrap.conf`` * ``/etc/nova/rootwrap.d/`` See Also ======== * `OpenStack Nova `__ Bugs ==== * Nova bugs are managed at `Launchpad `__ nova-17.0.13/doc/source/cli/nova-novncproxy.rst0000664000175000017500000000170313556316250021413 0ustar zuulzuul00000000000000=============== nova-novncproxy =============== ------------------------------------------------------- Websocket novnc Proxy for OpenStack Nova noVNC consoles ------------------------------------------------------- :Author: openstack@lists.openstack.org :Date: 2012-09-27 :Copyright: OpenStack Foundation :Version: 2012.1 :Manual section: 1 :Manual group: cloud computing Synopsis ======== nova-novncproxy [options] Description =========== `nova-novncproxy` is a server daemon that serves the Nova noVNC Websocket Proxy service, which provides a websocket proxy that is compatible with OpenStack Nova noVNC consoles. Options ======= **General options** Files ===== * ``/etc/nova/nova.conf`` * ``/etc/nova/policy.json`` * ``/etc/nova/rootwrap.conf`` * ``/etc/nova/rootwrap.d/`` See Also ======== * `OpenStack Nova `__ Bugs ==== * Nova bugs are managed at `Launchpad `__ nova-17.0.13/doc/source/cli/nova-cells.rst0000664000175000017500000000211713556316250020270 0ustar zuulzuul00000000000000========== nova-cells ========== ------------------------- Server for the Nova Cells ------------------------- :Author: openstack@lists.openstack.org :Date: 2012-09-27 :Copyright: OpenStack Foundation :Version: 2012.1 :Manual section: 1 :Manual group: cloud computing Synopsis ======== nova-cells [options] Description =========== Starts the `nova-cells` service. The `nova-cells` service handles communication between cells and selects cells for new instances. .. warning:: Everything in this document is referring to Cells v1, which is not recommended for new deployments and is deprecated in favor of Cells v2 as of the 16.0.0 Pike release. For information about commands to use with Cells v2, see the man page for :ref:`man-page-cells-v2`. Options ======= **General options** Files ===== * ``/etc/nova/nova.conf`` * ``/etc/nova/policy.json`` * ``/etc/nova/rootwrap.conf`` * ``/etc/nova/rootwrap.d/`` See Also ======== * `OpenStack Nova `__ Bugs ==== * Nova bugs are managed at `Launchpad `__ nova-17.0.13/doc/source/cli/nova-status.rst0000664000175000017500000000705513556316250020517 0ustar zuulzuul00000000000000=========== nova-status =========== -------------------------------------- CLI interface for nova status commands -------------------------------------- :Author: openstack@lists.openstack.org :Date: 2016-12-16 :Copyright: OpenStack Foundation :Version: 15.0.0 :Manual section: 1 :Manual group: cloud computing Synopsis ======== nova-status [] Description =========== `nova-status` is a tool that provides routines for checking the status of a Nova deployment. Options ======= The standard pattern for executing a `nova-status` command is:: nova-status [] Run without arguments to see a list of available command categories:: nova-status Categories are: * ``upgrade`` Detailed descriptions are below. You can also run with a category argument such as ``upgrade`` to see a list of all commands in that category:: nova-status upgrade These sections describe the available categories and arguments for `nova-status`. Upgrade ~~~~~~~ ``nova-status upgrade check`` Performs a release-specific readiness check before restarting services with new code. This command expects to have complete configuration and access to databases and services within a cell. For example, this check may query the Nova API database and one or more cell databases. It may also make requests to other services such as the Placement REST API via the Keystone service catalog. **Return Codes** .. list-table:: :widths: 20 80 :header-rows: 1 * - Return code - Description * - 0 - All upgrade readiness checks passed successfully and there is nothing to do. * - 1 - At least one check encountered an issue and requires further investigation. This is considered a warning but the upgrade may be OK. * - 2 - There was an upgrade status check failure that needs to be investigated. This should be considered something that stops an upgrade. * - 255 - An unexpected error occurred. **History of Checks** **15.0.0 (Ocata)** * Checks are added for cells v2 so ``nova-status upgrade check`` should be run *after* running the ``nova-manage cell_v2 simple_cell_setup`` command. * Checks are added for the Placement API such that there is an endpoint in the Keystone service catalog, the service is running and the check can make a successful request to the endpoint. The command also checks to see that there are compute node resource providers checking in with the Placement service. More information on the Placement service can be found at: ``_ **16.0.0 (Pike)** * Checks for the Placement API are modified to require version 1.4, that is needed in Pike and further for nova-scheduler to work correctly. **17.0.0 (Queens)** * Checks for the Placement API are modified to require version 1.17. * Checks that ironic instances have had their embedded flavors migrated to use custom resource classes. This check was backported from Rocky. * Checks for ``nova-osapi_compute`` service versions that are less than 15 across all cell mappings which might cause issues when querying instances depending on how the **nova-api** service is configured. See https://bugs.launchpad.net/nova/+bug/1759316 for details. This check was backported from Rocky. See Also ======== * OpenStack Nova Docs: ``_ Bugs ==== * Nova bugs are managed at `Launchpad `_ nova-17.0.13/doc/source/cli/index.rst0000664000175000017500000000457413556316250017345 0ustar zuulzuul00000000000000.. Copyright 2010-2011 United States Government as represented by the Administrator of the National Aeronautics and Space Administration. All Rights Reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. Command-line Utilities ====================== In this section you will find information on Nova's command line utilities. Nova Management Commands ------------------------ These commands are used to manage existing installations. They are designed to be run by operators in an environment where they have direct access to the nova database. .. toctree:: :maxdepth: 1 nova-manage nova-status Service Daemons --------------- The service daemons make up a functioning nova environment. All of these are expected to be started by an init system, expect to read a nova.conf file, and daemonize correctly after starting up. .. toctree:: :maxdepth: 1 nova-api nova-compute nova-conductor nova-console nova-consoleauth nova-novncproxy nova-scheduler nova-serialproxy nova-spicehtml5proxy nova-xvpvncproxy WSGI Services ------------- Starting in the Pike release, the preferred way to deploy the nova api is in a wsgi container (uwsgi or apache/mod_wsgi). These are the wsgi entry points to do that. .. toctree:: :maxdepth: 1 nova-api-metadata nova-api-os-compute Additional Tools ---------------- There are a few additional cli tools which nova services call when appropriate. This should not need to be called directly by operators, but they are documented for completeness and debugging if something goes wrong. .. toctree:: :maxdepth: 1 nova-rootwrap Deprecated Services ------------------- The following services are deprecated in nova. They should not be used in new deployments, but are documented for existing ones. .. toctree:: :maxdepth: 1 nova-cells nova-dhcpbridge nova-network nova-17.0.13/doc/source/cli/nova-conductor.rst0000664000175000017500000000136713556316250021174 0ustar zuulzuul00000000000000============== nova-conductor ============== ----------------------------- Server for the Nova Conductor ----------------------------- :Author: openstack@lists.openstack.org :Date: 2012-11-16 :Copyright: OpenStack Foundation :Version: 2012.1 :Manual section: 1 :Manual group: cloud computing Synopsis ======== nova-conductor [options] Description =========== `nova-conductor` is a server daemon that serves the Nova Conductor service, which provides coordination and database query support for Nova. Options ======= **General options** Files ===== * ``/etc/nova/nova.conf`` See Also ======== * `OpenStack Nova `__ Bugs ==== * Nova bugs are managed at `Launchpad `__ nova-17.0.13/doc/source/cli/nova-manage.rst0000664000175000017500000003107513556316250020423 0ustar zuulzuul00000000000000=========== nova-manage =========== ------------------------------------------- Control and manage cloud computer instances ------------------------------------------- :Author: openstack@lists.openstack.org :Date: 2017-01-15 :Copyright: OpenStack Foundation :Version: 15.0.0 :Manual section: 1 :Manual group: cloud computing Synopsis ======== nova-manage [] Description =========== `nova-manage` controls cloud computing instances by managing various admin-only aspects of Nova. Options ======= The standard pattern for executing a nova-manage command is:: nova-manage [] Run without arguments to see a list of available command categories:: nova-manage You can also run with a category argument such as user to see a list of all commands in that category:: nova-manage db These sections describe the available categories and arguments for nova-manage. Nova Database ~~~~~~~~~~~~~ ``nova-manage db version`` Print the current main database version. ``nova-manage db sync [--version ] [--local_cell]`` Upgrade the main database schema up to the most recent version or ``--version`` if specified. By default, this command will also attempt to upgrade the schema for the cell0 database if it is mapped (see the ``map_cell0`` or ``simple_cell_setup`` commands for more details on mapping the cell0 database). If ``--local_cell`` is specified, then only the main database in the current cell is upgraded. The local database connection is determined by ``[database]/connection`` in the configuration file passed to nova-manage. ``nova-manage db archive_deleted_rows [--max_rows ] [--verbose] [--until-complete]`` Move deleted rows from production tables to shadow tables. Note that the corresponding rows in the instance_mappings and request_specs tables of the API database are purged when instance records are archived and thus, CONF.api_database.connection is required in the config file. Specifying --verbose will print the results of the archive operation for any tables that were changed. Specifying --until-complete will make the command run continuously until all deleted rows are archived. Use the --max_rows option, which defaults to 1000, as a batch size for each iteration. ``nova-manage db null_instance_uuid_scan [--delete]`` Lists and optionally deletes database records where instance_uuid is NULL. ``nova-manage db online_data_migrations [--max-count]`` Perform data migration to update all live data. Return exit code 0 if migrations were successful or exit code 1 for partial updates. This command should be called after upgrading database schema and nova services on all controller nodes. If the command exits with partial updates (exit code 1) the command will need to be called again. ``--max-count`` controls the maximum number of objects to migrate in a given call. If not specified, migration will occur in batches of 50 until fully complete. ``nova-manage db ironic_flavor_migration [--all] [--host] [--node] [--resource_class]`` Perform the ironic flavor migration process against the database while services are offline. This is `not recommended` for most people. The ironic compute driver will do this online and as necessary if run normally. This routine is provided only for advanced users that may be skipping the 16.0.0 Pike release, never able to run services normally at the Pike level. Since this utility is for use when all services (including ironic) are down, you must pass the resource class set on your node(s) with the ``--resource_class`` parameter. To migrate a specific host and node, provide the hostname and node uuid with ``--host $hostname --node $uuid``. To migrate all instances on nodes managed by a single host, provide only ``--host``. To iterate over all nodes in the system in a single pass, use ``--all``. Note that this process is not lightweight, so it should not be run frequently without cause, although it is not harmful to do so. If you have multiple cellsv2 cells, you should run this once per cell with the corresponding cell config for each (i.e. this does not iterate cells automatically). Note that this is not recommended unless you need to run this specific data migration offline, and it should be used with care as the work done is non-trivial. Running smaller and more targeted batches (such as specific nodes) is recommended. Nova API Database ~~~~~~~~~~~~~~~~~ ``nova-manage api_db version`` Print the current cells api database version. ``nova-manage api_db sync`` Sync the api cells database up to the most recent version. This is the standard way to create the db as well. .. _man-page-cells-v2: Nova Cells v2 ~~~~~~~~~~~~~ ``nova-manage cell_v2 simple_cell_setup [--transport-url ]`` Setup a fresh cells v2 environment; this should not be used if you currently have a cells v1 environment. Returns 0 if setup is completed (or has already been done), 1 if no hosts are reporting (and cannot be mapped), 1 if no transport url is provided for the cell message queue, and 2 if run in a cells v1 environment. ``nova-manage cell_v2 map_cell0 [--database_connection ]`` Create a cell mapping to the database connection for the cell0 database. If a database_connection is not specified, it will use the one defined by ``[database]/connection`` in the configuration file passed to nova-manage. The cell0 database is used for instances that have not been scheduled to any cell. This generally applies to instances that have encountered an error before they have been scheduled. Returns 0 if cell0 is created successfully or already setup. ``nova-manage cell_v2 map_instances --cell_uuid [--max-count ]`` Map instances to the provided cell. Instances in the nova database will be queried from oldest to newest and mapped to the provided cell. A max_count can be set on the number of instance to map in a single run. Repeated runs of the command will start from where the last run finished so it is not necessary to increase max-count to finish. Returns 0 if all instances have been mapped, and 1 if there are still instances to be mapped. If ``--max-count`` is not specified, all instances in the cell will be mapped in batches of 50. If you have a large number of instances, consider specifying a custom value and run the command until it exits with 0. ``nova-manage cell_v2 map_cell_and_hosts [--name ] [--transport-url ] [--verbose]`` Create a cell mapping to the database connection and message queue transport url, and map hosts to that cell. The database connection comes from the ``[database]/connection`` defined in the configuration file passed to nova-manage. If a transport_url is not specified, it will use the one defined by ``[DEFAULT]/transport_url`` in the configuration file. This command is idempotent (can be run multiple times), and the verbose option will print out the resulting cell mapping uuid. Returns 0 on successful completion, and 1 if the transport url is missing. ``nova-manage cell_v2 verify_instance --uuid [--quiet]`` Verify instance mapping to a cell. This command is useful to determine if the cells v2 environment is properly setup, specifically in terms of the cell, host, and instance mapping records required. Returns 0 when the instance is successfully mapped to a cell, 1 if the instance is not mapped to a cell (see the ``map_instances`` command), 2 if the cell mapping is missing (see the ``map_cell_and_hosts`` command if you are upgrading from a cells v1 environment, and the ``simple_cell_setup`` if you are upgrading from a non-cells v1 environment), 3 if it is a deleted instance which has instance mapping, and 4 if it is an archived instance which still has an instance mapping. ``nova-manage cell_v2 create_cell [--name ] [--transport-url ] [--database_connection ] [--verbose]`` Create a cell mapping to the database connection and message queue transport url. If a database_connection is not specified, it will use the one defined by ``[database]/connection`` in the configuration file passed to nova-manage. If a transport_url is not specified, it will use the one defined by ``[DEFAULT]/transport_url`` in the configuration file. The verbose option will print out the resulting cell mapping uuid. Returns 0 if the cell mapping was successfully created, 1 if the transport url or database connection was missing, and 2 if a cell is already using that transport url and database connection combination. ``nova-manage cell_v2 discover_hosts [--cell_uuid ] [--verbose] [--strict] [--by-service]`` Searches cells, or a single cell, and maps found hosts. This command will check the database for each cell (or a single one if passed in) and map any hosts which are not currently mapped. If a host is already mapped nothing will be done. You need to re-run this command each time you add more compute hosts to a cell (otherwise the scheduler will never place instances there and the API will not list the new hosts). If the strict option is provided the command will only be considered successful if an unmapped host is discovered (exit code 0). Any other case is considered a failure (exit code 1). If --by-service is specified, this command will look in the appropriate cell(s) for any nova-compute services and ensure there are host mappings for them. This is less efficient and is only necessary when using compute drivers that may manage zero or more actual compute nodes at any given time (currently only ironic). ``nova-manage cell_v2 list_cells [--verbose]`` Lists the v2 cells in the deployment. By default only the cell name and uuid are shown. Use the --verbose option to see transport url and database connection details. ``nova-manage cell_v2 delete_cell [--force] --cell_uuid `` Delete a cell by the given uuid. Returns 0 if the empty cell is found and deleted successfully or the cell that has hosts is found and the cell and the hosts are deleted successfully with ``--force`` option, 1 if a cell with that uuid could not be found, 2 if host mappings were found for the cell (cell not empty) without ``--force`` option, and 3 if there are instances mapped to the cell (cell not empty), 4 if there are instance mappings to the cell but all instances have been deleted in the cell. ``nova-manage cell_v2 list_hosts [--cell_uuid ]`` Lists the hosts in one or all v2 cells. By default hosts in all v2 cells are listed. Use the --cell_uuid option to list hosts in a specific cell. If the cell is not found by uuid, this command will return an exit code of 1. Otherwise, the exit code will be 0. ``nova-manage cell_v2 update_cell --cell_uuid [--name ] [--transport-url ] [--database_connection ]`` Updates the properties of a cell by the given uuid. If a database_connection is not specified, it will attempt to use the one defined by ``[database]/connection`` in the configuration file. If a transport_url is not specified, it will attempt to use the one defined by ``[DEFAULT]/transport_url`` in the configuration file. If the cell is not found by uuid, this command will return an exit code of 1. If the provided transport_url or/and database_connection is/are same as another cell, this command will return an exit code of 3. If the properties cannot be set, this will return 2. Otherwise, the exit code will be 0. .. note:: Updating the ``transport_url`` or ``database_connection`` fields on a running system will NOT result in all nodes immediately using the new values. Use caution when changing these values. ``nova-manage cell_v2 delete_host --cell_uuid --host `` Delete a host by the given host name and the given cell uuid. Returns 0 if the empty host is found and deleted successfully, 1 if a cell with that uuid could not be found, 2 if a host with that name could not be found, 3 if a host with that name is not in a cell with that uuid, 4 if a host with that name has instances (host not empty). See Also ======== * `OpenStack Nova `__ Bugs ==== * Nova bugs are managed at `Launchpad `__ nova-17.0.13/doc/source/cli/nova-consoleauth.rst0000664000175000017500000000153113556316250021511 0ustar zuulzuul00000000000000================ nova-consoleauth ================ ---------------------------------- Nova Console Authentication Server ---------------------------------- :Author: openstack@lists.openstack.org :Date: 2012-09-27 :Copyright: OpenStack Foundation :Version: 2012.1 :Manual section: 1 :Manual group: cloud computing Synopsis ======== nova-consoleauth [options] Description =========== `nova-consoleauth` is a server daemon that serves the Nova Console Auth service, which provides authentication for Nova consoles. Options ======= **General options** Files ===== * ``/etc/nova/nova.conf`` * ``/etc/nova/policy.json`` * ``/etc/nova/rootwrap.conf`` * ``/etc/nova/rootwrap.d/`` See Also ======== * `OpenStack Nova `__ Bugs ==== * Nova bugs are managed at `Launchpad `__ nova-17.0.13/doc/source/cli/nova-xvpvncproxy.rst0000664000175000017500000000155713556316250021623 0ustar zuulzuul00000000000000================ nova-xvpvncproxy ================ ---------------------------- XVP VNC Console Proxy Server ---------------------------- :Author: openstack@lists.openstack.org :Date: 2012-09-27 :Copyright: OpenStack Foundation :Version: 2012.1 :Manual section: 1 :Manual group: cloud computing Synopsis ======== nova-xvpvncproxy [options] Description =========== `nova-xvpvncproxy` is a server daemon that serves the Nova XVP VNC Console Proxy service, which provides an XVP-based VNC Console Proxy for use with the Xen hypervisor. Options ======= **General options** Files ===== * ``/etc/nova/nova.conf`` * ``/etc/nova/policy.json`` * ``/etc/nova/rootwrap.conf`` * ``/etc/nova/rootwrap.d/`` See Also ======== * `OpenStack Nova `__ Bugs ==== * Nova bugs are managed at `Launchpad `__ nova-17.0.13/doc/source/cli/nova-spicehtml5proxy.rst0000664000175000017500000000175013556316250022347 0ustar zuulzuul00000000000000==================== nova-spicehtml5proxy ==================== ------------------------------------------------------- Websocket Proxy for OpenStack Nova SPICE HTML5 consoles ------------------------------------------------------- :Author: openstack@lists.openstack.org :Date: 2012-09-27 :Copyright: OpenStack Foundation :Version: 2012.1 :Manual section: 1 :Manual group: cloud computing Synopsis ======== nova-spicehtml5proxy [options] Description =========== `nova-spicehtml5proxy` is a server daemon that serves the Nova SPICE HTML5 Websocket Proxy service, which provides a websocket proxy that is compatible with OpenStack Nova SPICE HTML5 consoles. Options ======= **General options** Files ===== * ``/etc/nova/nova.conf`` * ``/etc/nova/policy.json`` * ``/etc/nova/rootwrap.conf`` * ``/etc/nova/rootwrap.d/`` See Also ======== * `OpenStack Nova `__ Bugs ==== * Nova bugs are managed at `Launchpad `__ nova-17.0.13/doc/source/cli/nova-dhcpbridge.rst0000664000175000017500000000215113556316250021257 0ustar zuulzuul00000000000000=============== nova-dhcpbridge =============== ------------------------------------------------ Handles Lease Database updates from DHCP servers ------------------------------------------------ :Author: openstack@lists.openstack.org :Date: 2012-09-27 :Copyright: OpenStack Foundation :Version: 2012.1 :Manual section: 1 :Manual group: cloud computing Synopsis ======== nova-dhcpbridge [options] Description =========== `nova-dhcpbridge` is an application that handles lease database updates from DHCP servers. `nova-dhcpbridge` is used whenever nova is managing DHCP (vlan and flatDHCP). `nova-dhcpbridge` should not be run as a daemon. .. warning:: This application is only for use with nova-network, which is not recommended for new deployments. Options ======= **General options** Files ===== * ``/etc/nova/nova.conf`` * ``/etc/nova/api-paste.ini`` * ``/etc/nova/policy.json`` * ``/etc/nova/rootwrap.conf`` * ``/etc/nova/rootwrap.d/`` See Also ======== * `OpenStack Nova `__ Bugs ==== * Nova bugs are managed at `Launchpad `__ nova-17.0.13/doc/source/cli/nova-api-metadata.rst0000664000175000017500000000161313556316250021515 0ustar zuulzuul00000000000000================= nova-api-metadata ================= -------------------------------- Server for the Nova Metadata API -------------------------------- :Author: openstack@lists.openstack.org :Date: 2012-09-27 :Copyright: OpenStack Foundation :Version: 2012.1 :Manual section: 1 :Manual group: cloud computing Synopsis ======== nova-api-metadata [options] Description =========== `nova-api-metadata` is a server daemon that serves the Nova Metadata API Options ======= **General options** Files ===== * ``/etc/nova/nova.conf`` * ``/etc/nova/api-paste.ini`` * ``/etc/nova/policy.json`` * ``/etc/nova/rootwrap.conf`` * ``/etc/nova/rootwrap.d/`` See Also ======== * `OpenStack Nova `__ * `Using WSGI with Nova `__ Bugs ==== * Nova bugs are managed at `Launchpad `__ nova-17.0.13/doc/source/cli/nova-api.rst0000664000175000017500000000162313556316250017740 0ustar zuulzuul00000000000000======== nova-api ======== ------------------------------------- Server for the OpenStack Compute APIs ------------------------------------- :Author: openstack@lists.openstack.org :Date: 2012-09-27 :Copyright: OpenStack Foundation :Version: 2012.1 :Manual section: 1 :Manual group: cloud computing Synopsis ======== nova-api [options] Description =========== `nova-api` is a server daemon that serves the metadata and compute APIs in separate greenthreads Options ======= **General options** Files ===== * ``/etc/nova/nova.conf`` * ``/etc/nova/api-paste.ini`` * ``/etc/nova/policy.json`` * ``/etc/nova/rootwrap.conf`` * ``/etc/nova/rootwrap.d/`` See Also ======== * `OpenStack Nova `__ * `Using WSGI with Nova `__ Bugs ==== * Nova bugs are managed at `Launchpad `__ nova-17.0.13/doc/source/cli/nova-api-os-compute.rst0000664000175000017500000000170113556316250022026 0ustar zuulzuul00000000000000=================== nova-api-os-compute =================== ------------------------------------------ Server for the Nova OpenStack Compute APIs ------------------------------------------ :Author: openstack@lists.openstack.org :Date: 2012-09-27 :Copyright: OpenStack Foundation :Version: 2012.1 :Manual section: 1 :Manual group: cloud computing Synopsis ======== nova-api-os-compute [options] Description =========== `nova-api-os-compute` is a server daemon that serves the Nova OpenStack Compute API Options ======= **General options** Files ===== * ``/etc/nova/nova.conf`` * ``/etc/nova/api-paste.ini`` * ``/etc/nova/policy.json`` * ``/etc/nova/rootwrap.conf`` * ``/etc/nova/rootwrap.d/`` See Also ======== * `OpenStack Nova `__ * `Using WSGI with Nova `__ Bugs ==== * Nova bugs are managed at `Launchpad `__ nova-17.0.13/doc/source/cli/nova-network.rst0000664000175000017500000000167213556316250020664 0ustar zuulzuul00000000000000============ nova-network ============ ------------------- Nova Network Server ------------------- :Author: openstack@lists.openstack.org :Date: 2012-09-27 :Copyright: OpenStack Foundation :Version: 2012.1 :Manual section: 1 :Manual group: cloud computing Synopsis ======== nova-network [options] Description =========== `nova-network` is a server daemon that serves the Nova Network service, which is responsible for allocating IPs and setting up the network .. warning:: `nova-network` is deprecated and will be removed in an upcoming release. Use `neutron` or another networking solution instead. Options ======= **General options** Files ===== * ``/etc/nova/nova.conf`` * ``/etc/nova/policy.json`` * ``/etc/nova/rootwrap.conf`` * ``/etc/nova/rootwrap.d/`` See Also ======== * `OpenStack Nova `__ Bugs ==== * Nova bugs are managed at `Launchpad `__ nova-17.0.13/doc/source/cli/nova-scheduler.rst0000664000175000017500000000145313556316250021146 0ustar zuulzuul00000000000000============== nova-scheduler ============== -------------- Nova Scheduler -------------- :Author: openstack@lists.openstack.org :Date: 2012-09-27 :Copyright: OpenStack Foundation :Version: 2012.1 :Manual section: 1 :Manual group: cloud computing Synopsis ======== nova-scheduler [options] Description =========== `nova-scheduler` is a server daemon that serves the Nova Scheduler service, which is responsible for picking a compute node to run a given instance on. Options ======= **General options** Files ===== * ``/etc/nova/nova.conf`` * ``/etc/nova/policy.json`` * ``/etc/nova/rootwrap.conf`` * ``/etc/nova/rootwrap.d/`` See Also ======== * `OpenStack Nova `__ Bugs ==== * Nova bugs are managed at `Launchpad `__ nova-17.0.13/doc/source/cli/nova-compute.rst0000664000175000017500000000170113556316250020640 0ustar zuulzuul00000000000000============ nova-compute ============ ------------------- Nova Compute Server ------------------- :Author: openstack@lists.openstack.org :Date: 2012-09-27 :Copyright: OpenStack Foundation :Version: 2012.1 :Manual section: 1 :Manual group: cloud computing Synopsis ======== nova-compute [options] Description =========== `nova-compute` is a server daemon that serves the Nova Compute service, which is responsible for building a disk image, launching an instance via the underlying virtualization driver, responding to calls to check the instance's state, attaching persistent storage, and terminating the instance. Options ======= **General options** Files ===== * ``/etc/nova/nova.conf`` * ``/etc/nova/policy.json`` * ``/etc/nova/rootwrap.conf`` * ``/etc/nova/rootwrap.d/`` See Also ======== * `OpenStack Nova `__ Bugs ==== * Nova bugs are managed at `Launchpad `__ nova-17.0.13/doc/source/figures/0000775000175000017500000000000013556316574016400 5ustar zuulzuul00000000000000nova-17.0.13/doc/source/figures/nova-conf-xen-flat.vsd0000664000175000017500000533100013556316250022511 0ustar zuulzuul00000000000000ࡱ> 123456789:;<=>?@ABCDERoot EntryRoot EntryFZ+VisioDocumentFo"SummaryInformation( NDocumentSummaryInformation8  !"#$%&'()*+,-./0GHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~VisioInformation" ՜.+,D՜.+, HP X`hp x  ;Page-10VBackground-1ESSwitchoServeroDatabase serverCloudseDynamic connectornsBridge EthernetonnHub Patch panelFiber optic transmitter ATM switch Bridge.14 Dynamic connector.15erModemc Ring networkctoTilesetUrbanet AlphabetorkModuletNone tSolidtRegistrationctoVervera None .26ionCity.26Technic Server.29on MainframeonAustere TranscendonBlocksn FirewallonLaptop computerPCtApplication server5 Web server FTP server Email serverervManagement server5E-Commerce server5Public/private key serverr Box callout Comm-linkt Terminalt File server DocumenterOblique connector sPrint serverctoLegendeDisk storagectoDatastoContent management serverrStreaming media servereDirectory serverervApplication server.57e Real-time communications serverProxy servermun PagesMasters90|_PID_LINKBASE_VPID_ALTERNATENAMES _TemplateIDATC010498141033Oh+'0NHPhx Schma RseauRaziqueLC:\Program Files\Microsoft Office\Office14\visio content\1033\DTLNET_M.VSTRaziqueMicrosoft Visio@p6R+GM_C = EMFMl_U VISIODrawingL M_C`D ??d(L(`DL٩̱‹汱̮٣rrr®ٱ¹殮zzzxxxvvvzzz٣ٿqqqϗ󿿿晙۬ۅ˅汱ٿٱ濿Ϛ̿濿٣ooo'(('++KKK666 477T]^YZZppp 18;mpp 19?à(((Ͷͳxxx WWWPPPڨ000PPP񼼼hhh 㳳ʶ汱ٱqqq԰Գ٩̱jjj̿ϡ[[[۪όϓ{{{󬬬ạ̱̇~~~󺺺̛ϱą̱̔̿󟟟譭wwwĽvg󤤤%%% ĥD=4$H;*QE5sss񿿿 ypd1$vL)PPP\\\mmmͳ竫;BC  VE/XXX%%% ???ڳѦAAATTT۔blqiii趶QQQDDDoooblq~~~PPPZZZLLLļ󰰰gpslllAAAz{{װҰ⧧xxx'((UVWͳ'''nop\\\%&&ʶ㳳ɥXXX.// ppp񼼼̱豱㨨ۀ̿ٻ̱쬬趶ėٱ̝̣էļ󿿿{{{ DDD9:9 ::: O .46.&.%pppদ[_aۂq```뫫[[[+++EEEq```ʹ䣣,,,rssqXXXԳ䧧hhh&"=7.=7.=7.50((((.//vww[[[嶶ʦBBBnСССջ  г񿿿GGGv޾޾޾Һ ppp```񿿿г```}޾Һ 峳```޾Һ ```׶>>=hhh('&><8>:4;5,972￿      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                           ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~  Visio (TM) Drawing o"v tR\|@#l  ߳!fffMMM333-yN77sPɺm88rcc3f{ڌ626?3ff?G}UUUհc5ڬм>{N9KmfwJpYDRb߷qaXPF91I@dddFFF9{$<<$JJ1tl77A@@@p0Ezٕ㰬VęյTBj~daPc*p PT幵.|AJ Pj( YYY `9tk݀& LGND/cmd_=nop( LGND/cmd=wnop2h / a/ a/ a/ a/ a/ a/ a/ a/ a/ a/0 )C/h3 *C U)J:DT5I[1hXT@. /UbW##_b0U]?ȾL \&B1&Wb%e !oM $d )P?;$,, & #& , 5&?D#//?M?\.? 7A  T~,,,'q/%P6$Y6 ((}k?l)P?"  U UA3#o >S@#B:aU_ReUeUeUUeUeUeUePONOD`T_ReUeUeUUeUeUeUeUUb RSR;25OM% >Qiq;RRRggR qh>Qj /A^F' %p3|CbFp#| |% | vi?=Os<34*x,,,/HRQAmeY q]U@Q-,_vL__q____OO_OOYJAe@L&d2K?ɠQ3Ҳ s]֦xΟ$H"Ŧ)Լ Dץ4@dUA??ϩJ[D!# f:45ŧ5ŷ5ŧ 0H 0D$#U   [#Wb ;Ch( D?@eDrqr:ePB#<D5,ND0DDA7XDbabX#F:FDF(A:#7 D% #7H(DRQRHBA7D B7DJBA:B78DBAB8BAtstt<tB9DB9D%B9(!(D2&1'2&(!BA9d!Dn&m'n&d!BY0C&'&!<!BȁD&'ȁ<ȅ"A6761<1B#AT6S7T6T1<T1B$91D6761B%91D67%61B'AF GFA<AB!(9DABaicTgdhTsG'0f6U[e0 sFf|tvu dd4φFRd,c  F،3*d4V56Fs 9Faaj9eOwOkŕh8FTo!32pbGFdF毭oʳUųUvoft\W?޳P`ކmW"> gAkA oojx5lR}J<DTqC`` {<eh]-w>yqyu4x.~O6ARH-D@>QWACGcwc]oP{Jk? `Aooookt|/R|a`OX󀠟ҟ=<HQ0BTASFwByѯ+=Vasvψ߿'9Z/oϷ#5ASew߉ߛ߭߿ߐ@C DVhPTCW@CaTHY"$? 4-Qc___o o;Moqo/////%/7/I/o/&/////?@!?3?51qU<e?w??V??????O"MUHh2ET_ BE'_"h%]lO~H~E7O5_G_Y_k_}_fo____o1oCoUoUZoooo4~ /ASeȟ ?M$aǔ=93W+harz3P贁N[ܞԏq a/%?xbpb AD@ xA 柲TfxF#_'2 W2{~"D@妠JJuERB0%B I B0BzvCt*346^C 9C$CI1%7I[mߑߣߵ`rF ﰚEݝ[ #l~FbbOAX:iοF4 9S=*?b/???(:L^p'12O8!M!!,G L!%\.TbJnRtVtQbry !qPmlF/{gYn)1z}nPectWPiehP7__#wSbQ =Ulu!q`UoP9@t `enf9blo~o6o@S^TKoޠ!P`"Rnpu!5zoR*"`u`d0nec;bI[o8e Uu!`{uTa`sp9@Ur`n`yfCb {:o' PanRbTW|5̈W?|\!??+a`B9@ckerv0oP?S/e'BBEYYFYY '1 1" EL;#?L ?OO)N)>F8UOASZOlO~O&I[i O٤E);M_q+kЋSЋSU1%vп?߶U///Ǡ/(%ySA!58%3͟±Ԛ''b<0%@/1d/v#%//(/?!5//ߤ3G5" R` C1pO?% )N@OTbt'ϱpS!jdꕰQX!3<=P4#>k5$y }'9mUТE%O( ٯO-?QcQ\8_H/$ ժϙGB:(Op߂ߔxߩO%C?I Wi{O? i~\6/(O?mJvVŀ#5GY#5GYk}i н 'N(C.%ZFZFH/`%bdRq4q Acrt3rbb㤱7m-c8tZq<|oobobNbb¤osR@Q:4!s/֢ ZF8p%`՞UG?/,TKQeҭy)77s!X7es/??.?R?d?ď????OO{/˥ʦ#xaҏ,>PMR?Ο,*'(7OQTf+=Oas̯ޯ&8J\n𒿤A+PпbbPI ,ɺ /ύoow͏ϡϳτ/|nbb/i~@7I[mߑ+=OasOO'OK*<__D_h_z_GYk} .@Rdvȿf?-m7/I/AS// ?//ϷbbObmҏ%?I?[?m????ef???OO+O=OOO7sOOOOOO__'_9_]_c|C/ßՑa%`&q% A*ewj_f____Oazoo'9K]~ooo/#/5/G/ Ӓf/x////////??,? __0_LUR9/d?v????;6O??OO<'K+bGcM?tOOOOOGqpCQ_:ou__z__v_oo)o_oqoϕoooyF1#5Gccߖ ` 1CUW'uϏ);=?%cȒ ^2ȟڟfffJ@ӦIJVEbwcȾ.LaJυͿ'9DIoρϷ#/5GY[}///S/e/*<N`ri1 2DVM2DVh c n_4BoXj|oo/ //oB/!?3?x///e/#i?E?W?i?{?????c??OO*O;fϧϹϦh`b& 1CUgߝ߯L? -??cu??);M_q"O.T -?QcnF-a & YQgT!-6 FO@l@5GYkPAuV!!` jo2{o7s/ !/3/E/UVt//////7O/?>O(?:?^?p???????:O$OUjQOcOuOQb{GE4f!3 GF}tGN=@OS|OOOO OOOO ]#_/_A_S_e_w________H$b #o5oNtRv|@s!z@@Rzq}U{uwx 0Bufxq߮ҏ,PbewΟ(^ʯ ܯU$ô4DVhƃ˿ݿͽqH2Tv!rAtuacus,oE@ct Uc"VoSe"f//o/3?upgXq:??3oofct* w(hz$rosFo) CHZ*___ ߰?_+"-?UgUK0f//'/9/K/]/o-HNNk?/OPu=A"pcD?V?fb׺Ŝq ? /d߇hf"(VmmmHeXϚO|CUO_DX_YoCQUO_a_:SU__寷roꯖo 1 Wcooo`@-by"q{ ď͆CC jSϑ>qUn'(U)*+,U-./0U1234U5678U9:;?@U4<Y,b'@"H$ @ xG/[C-p7 AU'()U+,-.U/012U3456U789:U;<=>U?@CDUEFGIJU4< Y,b'@"H$ @ /lC-p70 AU'()U*+,-U./01U2345U6789U:;<=U>?@CUDEFGHLU4()*U+,-.UMNOPUQRSTU4<Y,b'@"H$ @ ~ȭ^1}C-ܞ7 AUVU4<Y,b'@"H$ @ 1 =A-`7Un'()U*+,-U./01U2345U6789U:;<=U>?@WU4<Y,b'@"H$ @ xGC2[C-U7 Aj()+,-./0123456789:;<=>?CNOPQRSTYZ[\]^_`abcdefghRiklUmnopUqrstUuvwxUyz{|U}~UUUUU4?@BU4<Y,b'@"H$ @ yG|[zC- AUn'()U*+,-U./01U2345U6789U:;<=U>?@U4<Y,b'@"H$ @ yG/5[C-7 AU&'()U*+,-.U4< Y,b'@"H$ @ x.5!C-6 AUn'()U*+,-U./01U2345U6789U:;<=U>?@U4<Y,b'@"H$ @ zGb6[C-7 AUn'()U*+,-U./01U2345U6789U:;<=U>?@U4<Y,b'@"H$ @ zG7[C-s7 A-VU4<Y,b'@"H$ @ 7A-K7 ;UN'()U*+,-U./01U2345U67@U4<Y,b'@"H$ @ 058AC-Hv7 :b()+,-./0123456789:;<=>?CNOPQRST\]^_J`acUdefgUhijkUlmnoUpqrsUtuvwUxyz{U|}~UUUUUU4 AU"'()U+,-.U4<Y,b'@"H$ @ be>C-7 AU-U4<Y,b'@"H$K @ (>C-غ7AYU'()U+,-.U/012U3456U789:U;<=>U?@CDUEFGJU4< Y,b'@"H$ @ hG?lC-\7 AUn'()U*+,-U./01U2345U6789U:;<=U>?@U4<Y,b'@"H$ @ {G[C-`i* AU&-.ZU[U4< Y,b'@"H$ @ h!C-`* AU&-.ZU[U4< Y,b'@"H$ @ c?@AUDEFGU4<Y,b'@"H$ @ BhC-c;C AU'()U*+,-U./01U2345U6789U:;<=U>?@CUDEFGJKU4?@CUDEFGHU4?@CUDEFGHU4?@CUDEFGHU4<"Y,b'@"H$ @ WFrC-7 AU'()U*+,-U./01U2345U6789U:;<=U>?@CUDEFGHU4?@CUDEFGHU4<"Y,b'@"H$ @ GrC-g`H AUz'()U*+,-U./01U2345U6789U:;<=U>?@CHU4<Y,b'@"H$ @ HeC-h!I AU-.N[U4<Y,b'@"H$C @ }IC-\hU7 AUN'()U*+,-U./01U2345U67CU4<Y,b'@"H$ @ (0IAC-h?+J :Uz'()U+,-.U/012U3456U789:U;<=>U?@DEFGU4<Y,b'@"H$ @ JeC-h7 AU'()U*+,-U./01U2345U6789U:;<=U>?@CUDEFGHU4?@CUDEFG=HU4?@CUDEFG=HU4?@CUDEFG=HU4?@CUDEFG=JU4?@CUDEFG=HU4?@CUDEFG=HU4QR@h)>QR@X*>OR@*?QR@+s@OR@8,@OR@,gARR@x-ARR@BRR@8›ECRR@›DRR@xÛxDJR@ě;ERR@,FQR@X,FQR@P,GQR@P,jHRR@HQ,+IRR@Q,IOR@R,5JSR@(S,JQR@S,KQR@hT,"LKR@(ȒLKR@0MOR@HMQR@h,NRR@ ,NQR@( ,]ORR@ ,)PRR@ ,PQR@H ,QQR@ ,RQR@8`VSRRL<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(<E3XREXREXREx*XREh8XREFXRETXREbXREpXRE²~XRExòXREhIJXREXŲXREŲXREƲXREDzXRExȲXREɲXREɲXREXʲ YREʲYRE˲&YRE8̲4YRE)BYRE*PYRE*^YREH+lYRE+zYRE,YRE(-YREHYREYRE›YRE(ÛYREÛYREhěYRE,YRE,ZREXP,ZREP,"ZREQ,0ZRE8R,>ZRER,LZRExS,ZZRET,hZRET,vZRExȒZREZREZRE,ZREx ,ZRE ,ZRE8 ,ZRE ,ZRE ,ZREX ,[RE(([RUFD  h(^TYYBBUF\.ߗ?x<F BP(?hP?X$ ]B66ȅHq?j|?G IB@L&ɯd2?sU!&;/xt  0RKB` SwitcP,ne work pʴ r pP!aUl d v c z !^| R( G@&L >V&7?J7 ?ppwpwpwnwwyZwpw wwwpwwpwyplRp)~pw߇p}~zZDrag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aabL&d2ٿ\.??{ڿ ;?k?r3r CUG DF P# h @T(PYY#EψUF\.?@L&_d2?@ w?P} Y.B! ":J :f^7r7ֆAu` ?U"U66JJU^^rrUSu#U ^b"h,h'RqU f??z4b u{[`:#"&a#'QT)b" ^l!L1$l" l"7'>>ÿ@qZ05?46 r23ZS2uY0`-1ZBu@ l"r3A'Bl" hL$9u`u `"[ bzb!u`R$"% أ#Q!'1`Vis_PRXYcPm!#5HP4{6NP2`?CopWyr.PgPt u(>P) 20{PU9 M.PcePo0P'ofmR^QraPQUamPi_Pn WAlP eXsRUe0PeePvPdB!#d$%b!*(=#&#@Bd&& "$B##0Ub#]g,7{TrN @ cTg d(a1+_c@11"hh"2)t3*tB+tBa a"aab(!BpaSb"+QQou\%G!!["@@Bq"53T@R"q3<1 KEq`RPQs.PU TPxmPSP^2l"+ 0^<@5b 䱠"5R"br3&BrM_q(pffs_<៵R-m11'rvu"u"2$u3/8B0EBH%Q%Q"2_b3l !!E|QQQQ67l!8ĢAP!!1;(bL1D:b;aqq^eD!b(pQu [ ]@U0` SPa*aPePl rsRQV)P E u.PpBP!ePQ"5X%7\In` WTcPx]SP`DP!vR3^߮߼Iӏb` Syb9Sw>?QEd-MPnyfPcmPuRmt߆EQ`]1SPRd Nm E ZK!P PPr8J\h}]%R'`-sRU3e_ 5Afe3`؇e ,S SRiPQ ՑրTZIPL_PcX@;۞`rBYlPiPq٫€րY0KSR_PoŲ/ٸ!ר@/R/5NwRk,a_B`+x/OI4PQdPSi/, "?=ns#]?,(dN??(JSL1m "/Q9tVQ IQ /?րf?O\I-` R 4PQQ^OpOƒ?O?MPCI?O._qSCRo"mY6AtN BT]]9 M JU@L&d2?@|>??@Fh4?P6 AJuM` W?SuJt At=WG_z#J]RbJlp= ף#R>2yw?@MJA@eb&#z(b),+,&J[(.;?&L ?A$./O%B!!5 g`?Copy_rigTtZ(c)Z2U009ZM 0c 0os0f21r0>1a0i0n}.Z AlY0U 8s]2e10e 05vo0dQ0! $-# ',&?6iie59 6uX7_'0UpBŁ&Z!$0 'F";JlJAh h7!1!Z@x<3ף , <~y#  IRvVJ:?OS QlU^TURUEU{bX,G\ZYaaȫQ5UL&[RQQ .aYU520_BUv"rA # cHD H# h4>T]]9 MT JU@Fh?@+@ ??@?]P6 ]nAJuM{` ?5uJt  Q߸It=W贁NUIRIl%0w#>2zG7z?3@MJA@eb #zbR( (2+2&J[ (wp"?& ?A$ 4/U%B!!5 g`?CopyrigTt (c])020%090uM0c0os 0If21r 0D1a0i 0n.0 WAl_0 8sc2Ue70e0vu0dW0!E$5 򤲝-?# '&6iieE9 6X73'0UvBŴ&!$0 T-FAJlJ8>UhAA 11!`m`0?@rO\.ש ,#<#{ RVJ:9XYUي#rT Q%UE?,b R8]S# l_@ѱQEakQY,aU5U^fGO+|no/j3asChAZGQaX_j_i2>_PU"rA #js( bUGD  3 h0TdYYB 1 U@ BP(?@'J?@ V?,?@f_(@yw?P} ,w 5 &M& DD bb 4  M  4  &M& 4&4& R&R& p&p&d &M& && &&4 && 66o"u` ?J$0BN`l~$I/( /2(>/P(\/n($z/(/(/(I/(/8?"4u.9!t+1  QyUtmQRkyUWq#6&yU~W6͔QUQQR`?CopyrigPt (c)2`2\092`M*`c(`o%s"`f0b!ar$`]aua0`i"`n.2`_ Alx` (hUs|beP`e(`v` dp`RSST SB-S`6b g?/4)=SfS@tff bT#S0Uorc@V*` @4c u vXgw'ntŔf!d] vze!`^H@!!Yd&Db&VUʄ&ՋeʄDՋ3ʄbՋ uʄՋʄՋ|ʄՋƈՋcȆՋƈ!Ջ&ƈ4!ՋDƈR!Ջbƈp!ՋƈRƈ!Ջƈ!Ջƈ!Ջʄ1VHD: # h0>Th]]9 MTIAU@?@kE8?@ ͂?@SSfhr~?Pps-8R?>$ > n JuM{` ?e ;  Su*Jt'  $mCLmta{\_I 3.Jv  q?#cwn?v(A[}Kѭ>JU2N贁N[?@M#J&A@bI(bUW)U+U+U&*Jy#?!lJ ?%P?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>Uh ETh]]9 MTIAU@?@-Ы?@ ͂?@SSfhr~?Pps-8R?>$ > n JuM{` ?e ;  Su*Jt'  H-mta{n_s9/3.Jv  q?#cwn?v(A[}Kѭ>JU2N贁N[?@M#J&A@bI(bUW)U+U+U&Jy#?!lJ ?%P?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>Uh ETh]]9 MTIAU@B?@c?@ ͂?@SSfhr~?Pps-8R?>$#A n JuM{` ?e ;  Su*Jt'  m@mta{7._ xX3.Jv  q?#cwn?v(A[}Kѭ>JU2N贁N[?@M#J&A@bI(bUW)U+U+U&*Jy#?!lJ ?%P?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>Uh ETh]]9 MTIAU@eZԩ?@z?@ ͂?@SSfhr~?Pps-8R?>$ > n JuM{` ?e ;  Su*Jt'  }$~mta{_P@3.Jv  q?#cwn?v(A[}Kѭ>JU2N贁N[?@M#J&A@bI(bUW)U+U+U&*Jy#?!lJ ?%P?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>Uh ETh]]9 MTIAU@h!I?@Zzv?@ ͂?@SSfhr~?Pps-8R?>$ > n JuM{` ?e ;  Su*Jt'  XƿHmta{_z3.Jv  q?#cwn?v(A[}Kѭ>JU2N贁N[?@M#J&A@bI(bUW)U+U+U&Jy#?!lJ ?%P?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>Uh ETh]]9 MTIAU@sLGv?@Bw6t?@ ͂?@SSfhr~?Pps-8R?>$> n JuM{` ?e ;  Su*Jt'  [Rw͖mta{__j3.Jv  q?#cwn?~v(A[}Kѭ>JU2N贁N[R?@M#J&A@bI(b*W)U+U+U&ՆJy#a?!J ?%P?AO"d+bRW+$u/%B#A1A15 `?Cop rigTt (c)x02`09x0Mp0cn0osh0fv2g1rj01av0ih0n.x0 l0 n8s2e0ejn0v0d0:1Y>4#-X#M3 M7#(p0b59 DFXGdG_'2WUA;FJ!$a dFD$&#l,&}>Uh ETh]]9 MTIAU@?@9 EU?@ ͂?@SSfhr~?Pps-8R?>$> n JuM{` ?e ;  Su*Jt'  $mCLmta{_3.Jv  q?#cwn?v(A[}Kѭ>JU2N贁N[?@M#J&A@bI(bW)U+U+TU&Jy#?!J ?%P?AO"d+KbW+$u/%B#A1A15 `?Cop rigTt (c)x02`09x0Mp0cn0osh0fv2g1rj01av0ih0n.x0 l0 n8s2e0en0v0d0:1Y>4#b-#M3 M7A#(p0bP59 DFXG~dG'2WUA);F!$a dF$&#l,&}>Uh ETh]]9 MTIAU@?@,?@ ͂?@SSfhr~?Pps-8R?>$> n JuM{` ?e ;  Su*Jt'  H-mta{X_ 3.Jv  q?#cwn?v(A[}Kѭ>JU2N贁N[?@M#J&A@bI(bUW)U+U+U&Jy#?!lJ ?%P?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>Uh ETh]]9 MTIAU@B?@-r-.?@ ͂?@SSfhr~?Pps-8R?>$> n JuM{` ?e ;  Su*Jt'  m@mta{_ :3.Jv  q?#cwn?v(A[}Kѭ>JU2N贁N[?@M#J&A@bI(bUW)U+U+U&*Jy#?!lJ ?%P?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>Uh ETh]]9 MTIAU@eZԩ?@ƍu?@ ͂?@SSfhr~?Pps-8R?>$> n JuM{` ?e ;  Su*Jt'  }$~mta{_D3.Jv  q?#cwn?v(A[}Kѭ>JU2N贁N[?@M#J&A@bI(bUW)U+U+U&*Jy#?!lJ ?%P?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>Uh ETh]]9 MTIAU@h!I?@O2?@ ͂?@SSfhr~?Pps-8R?>$> n JuM{` ?e ;  Su*Jt'  XƿHmta{p_'F3.Jv  q?#cwn?v(A[}Kѭ>JU2N贁N[?@M#J&A@bI(bUW)U+U+U&Jy#?!lJ ?%P?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>Uh ET]]9 M JU@]u?@x?@,ww'?@d?Pn6 >JuM` ?u#t  fIt=W紁NIRkgS|lWxI#>2zGz;?@MJA@eb #zb(b%)2+2&J[/.;?&L ?A$4/U%B!!5 g`?CopyrigTt (c)0W20%090M0]c0os 0f2R1r 0D1a0i 0n.0 AUl_0 8sc2e70e0vu0dW0!$ę-# '&?6iie59 6X7}'0UvBiŇ&!$0 -FAJlJ8>UhAA@ 11!T2 $<cV] &WR~VJ3kq?@BP( ]S m၏jy#mS zjaֱQE^y`0__ lOA/X5:Fh4 XYePYv81sX5aZjoohY}aUU߭?@,bl'4/\K)aX2>_;"rA #jsHD: # h0>Th]]9 MTIAU@sLGv?@_?@ ͂?@SSfhr~?Pps-8R?>$> n JuM{` ?e ;  Su*Jt'  [Rw͖mta{_3.Jv  q?#cwn?~v(A[}Kѭ>JU2N贁N[?@M#&A@bI(bUW)U+U+U&Jy#?!lJ ?%P?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>Uh ETh]]9 MTIAU@?@*y>{?@ ͂?@SSfhr~?Pps-8R?>$>  uM` ? ; E)u*Jt'  $mCLmta{)4G3.Jv  q?#cwn_?v(A[}Kѭ>JU2N贁N[R?@M#J&A@bI(b*W)U+U+U&Jy#c?!J ?%P?AO"d+bRW+$u/%B#A1A15 `?Cop rigTt (c)x02`09x0Mp0cn0osh0fv2g1rj01av0ih0n.x0 l0 n8s2e0ejn0v0d0:1Y>4#-X#M3 M7#(p0b59 DFXGdG_'2WUA;FJ!$a dFD$&#l,&}>Uh ET]]9 M JU@L&d2?@\.?tP6 >JuM` ?uJt ASt=WJRb~li>t2U?=@MJA@b + &J[N#?0a& ?AT)B!!5 g`?CopyrigTtZ(c)Z20 9ZM c. os f"!r 1ai n.Z Al90 (s=2e0ej vO0d10@!$b-# 'Ya&?6iiek59 6jX7^'0a&Z!|$0 FJlJ UhqMAA ]A !4Ja-'Z@?@  <0贁N#A OR|VJ:6]G+|M__Zw?/#UEF`?0?@ aQS xQ#`Y{GzYk5^ro!o :mX5U'h?gkT:&#dT[RUU4F?@|?BP(flwaw%l5p!Xnc 3dXAYEh4\`Yb/XAdx̼_ZWnQXAYL&tgkRwpQlQE26_HU"]rA HD: # h0>Th]]9 MTIAU@?@?]0?@ ͂?@SSfhr~?Pps-8R?>$hA n JuM{` ?e ;  Su*Jt'  H-mta{AJ_ap3.Jv  q?#cwn?v(A[}Kѭ>JU2N贁N[?@M#J&A@bI(bUW)U+U+U&Jy#?!lJ ?%P?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>Uh ETh]]9 MTIAU@B?@d;]?@ ͂?@SSfhr~?Pps-8R?>$> n JuM{` ?e ;  Su*Jt'  m@mta{d_v3.Jv  q?#cwn?v(A[}Kѭ>JU2N贁N[?@M#J&A@bI(bUW)U+U+U&*Jy#?!lJ ?%P?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>Uh ETh]]9 MTIAU@eZԩ?@>6#TTĶ?@ ͂?@SSfhr~?Pps-8R?>$> n JuM{` ?e ;  u*t'  }$~mta{%$苵3.Jv  q?#cwn?v(A[}KI>JU2N贁NI[?@M#J&A@bI(bW)U+U+TU&Jy#?!J ?%P?AO"d+KbW+$u/%B#A1A15 `?Cop rigTt (c)x02`09x0Mp0cn0osh0fv2g1rj01av0ih0n.x0 l0 n8s2e0en0v0d0:1Y>4#b-#M3 M7A#(p0bP59 DFXG~dG'2WUA);F!$a dF$&#l,&}>Uh ETh]]9 MTIAU@h!I?@Ž?@ ͂?@SSfhr~?Pps-8R?>$> n JuM{` ?e ;  Su*Jt'  XƿHmta{_v3.Jv  q?#cwn?v(A[}Kѭ>JU2N贁N[?@M#J&A@bI(bUW)U+U+U&Jy#?!lJ ?%P?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>Uh ETh]]9 MTIAU@sLGv?@c?@ ͂?@SSfhr~?Pps-8R?>$> n JuM{` ?e ;  Su*Jt'  [Rw͖mta{_] 3.Jv  q?#cwn?~v(A[}Kѭ>JU2N贁N[R?@M#J&A@bI(b*W)U+U+U&ՆJy#a?!J ?%P?AO"d+bRW+$u/%B#A1A15 `?Cop rigTt (c)x02`09x0Mp0cn0osh0fv2g1rj01av0ih0n.x0 l0 n8s2e0ejn0v0d0:1Y>4#-X#M3 M7#(p0g59 DFXGdG_'2WUA;FJ!$a dFD$&#l,&}>Uh ET9 M3JU@L&d2?@\.?ҷP6 m>JuM` ^?5ulbSD_Jt bstE>2zGz;?@MJA@u+b+&K !JS"j& 1"A.b+-,-/*B!!5 `?CopyrwigTt `wc)5020A0950M-0c+0o%s%0f32$1r'0`1ua30i%0n.50_ Al{0 +8Us2eS0e+0v0ds0ib =L!XY'0U Bj&%0 :lJ Uh*M[A[A 9A Z1:'h? Y T:&Qi@J4F?@|BP( IQ!i pP!!U31^ `0,I_[_ {uXEEh4Ẍ TbYb/uX _dx_aZW贁NuXAIL&tKRPQ\%QAI@@ HlQbY 0hauXAo G+|oaZw/(uXAY RU:q Ib_`yA\ppr׌ :muXEOO_\_dH >Z(+s .ṿrAA'FH&-v_a#:`!OB Cۋ1a~d/ vb@+G-xBBGU'-e P0-#l&82-IoY4-r߻5-vx8-Uy :-)|=-r-ҁ -ߦ'-yP9-OZ-%}6-$߿-͒ A@|C@ HF@HH@ĞJ@M@V$@*}Z@$@ԭ6@V]!_9IL MU'W4YA BN [ h u )UUUUU.8ETU_Ul y!U"A#UK$X%U&'U()U*+U$,$-U"$./$/U<$0I$1UV$2c$3Up$4}$5+#6 !7 !8 ! !: !;UFD  h(^TYYBBUFjZ?F~??x<F BP(?P } kX` BW66 W TTT%TTȅ5H?? (?B@L&d2?-(\.g1(.sUW!AU&w/~  0QB`#serv",comput$dWis r0b$ud n tw 'rk!eA^| (SG|& b?,>?TTwpp pqqppqwqpqwqwq+p pppwwwznw6;5wqpwwwhghw>Drag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aabjZֿ~??cN׿ mF1??SbM1{V↑T*J?@ ?UG DF P# h @T(PYY# 3U@jZ?@~??F?Pn} u{` ?Su#΍>>HX HlHYHH E.Oč>UDDXXUllBa'9-",'tU"J%q4 Q?"'4b0{[`:#26Q79$"t3&9"OL1" ^!'܈ >7@ÿ@q@@?@8B?@!ABP5F02u@K`-1xBu@rCC53A 3Bo2гC9uv`u `"[ۢ b!-u`23kQQ1Q7B`?CopyrigPtf0(c])f020P9f0uMPcPosPIfRQrPQaPiPn f0AUlP XsRePePvPd/`VPs_SBNcPm!#5JP83`5a Q1#d:4%B @8=3R6#d\6P\6 X2$#3+0Ub\3]Jxge8^ E U#".5m Hvq%t{.5tpw3t{Et{t{^y {|tYwmkdaIB'BT1aa"0ք.2132B3z1z1"|+q+qEQQX116Q;r<A>Ab\1EF`rAJ͔!hh)1baA (dT6vQ1oUkQ]b` MPnuPaPtUQra1Q` E50uPp -`ePt=e.5Q`!3]t1LPRdU\ %`u-`bcu30D-!I PPr֯H^-]L˭DRQqU`r\BAPaPrB`LDž5^,B%I SbiPQXj feTϟB LLPcXςPC5%Bl `iPgCų@o߰DLRPo}߄|AqZ@@K ӱpKDQ`;BNQwRkax`2`녨cϣ[I$`Qd `SsPo8SUbPRPsU}AxBuLDmatVa IaXAfBLT R `QQVhP+IQUm-`u-tP !`4줒ӿU챒VBALC`<1B` W2: /XؑLMPmRAy;/M/˒pq//$OPaSDy1!//%ؒ7VI]BPlRgRTP訰y??SPa2CP򿃪X??B` 7T+01I@"`a^%{/MPCAD vOOHKdQ>C2Z>6?H?qgtԁ/tufvop#U@jZ?F~?vvIC-pˑup` s?bujp`&T0a,Stԁ/p]e-2q?@< o5pmH!q."Tԁ.dԂxAƒ@T@>$pÿ^$gqa OvcrSr`Rno>㳫1e&BIrSrOvcv=ss"u~$bb pmp sty:b{bráe@6Cu&P`?hi@k""oűRT h]]9  5AU@jZ?F͂T??Fx?SF?P6 jt`  o?tk[>(A Vu aSuo.]&A]  *ԮJU2zGzt?@L#&A@bA#z7 5#1bO(b])j+$j&[ "*(w "?& ?AU$l/%B115 `?CopyrigTt (cu)Q02`09Q0uMI0cG0osA0IfO2@1rC0|1aO0iA0n.Q0 WAl0 G8s2Ueo0eG0v0d0"1E]4MŤ-&3 &7&l>]Uhz811U!J!u6?F+\.>djIIa? >"(EǑ I%K9E 5EU . K ;;5QIWEEEF _KnSA?8@@Bu?FDR> ?Nk"\6`bmMM\j=am {:e P> #? D"? 5-g?j4B7!B{oogr57!ibDAbE9 MuX7_'0U~rN!$a)5 5vIzHD # =hj0>T h]]9  qAU@;?FI5K?@xEL?6ѿP6 t`  bm&Qo?t@@L]WI,#u aiuoL> JU2zGzt;?@L?&A@b}#zs q#1b(b)+$&[9#H",ɺ (wH"?& ?A$ /%9#BV1V15 `?CopyrigTt (cu)02`090uM0c0os}0If2|1r01a0i}0n.0 WAl0 8s2Ue0e0v0d0"O1E]S4MŤ-9#b3 b7&l>]Uhzt1.A!JN!m.%-+0djV1ax߃S(FJ-&?F mO"> ?Nk"L[Majnha_:e P> #? BK=o? n-?j4Bs!B{__Wr5s!D8E6V 6?wj_|_ ^XE.U@z T6?F @' d_mOoT \VyWxRkrVo_bVh*g:n"'UaEjz36>CN>?Bn}]zGvN7V iDAbE9 MX+G'0UJPN!4ae5 MaHD # =hj0>T h]]9  U@jpiH?F^?@$?F]F?P6 t`  !a&ao?t,F=۳=u;u auo>J2zGzwt?@ʐLAw@b#z1b](b!).+I.&[-m(?0& ?A$I0/Q%!!5 `?CopyrigTt (c)02`090M 0c 0os0f21r0@1a0i0n.0 Al[0 8s_2e30e 0vq0dS0T"!E]$M-# %'&l>]Uhz!1!JF% djc~YZ(_N9zOMGE%_EH$SwO"K ңHE ^&_8_WE_OqOHOOi&DAbPE9 MX7'0UUfb>!$a % f1jHD # Uh4>T#]]9 M5AU@jZ?FL|+?@?F({~?P6 JuM` ?u JYt )t7zEA2&L_D?. > >tJU2q K?=@MJ&A@-b9(+bG)T+T&J[#"#a?& ?AH?/`)#115 {`?CopyrigTt (c);020G09;0M30c10os+0f92*1r-0f1ai+0n.;0 Al0 18s2eY0e10v0dy0z"!4B-#3K 7&)? b 0K8>U# ]A]A "1!ъ!PzQ <%OYAJEU . K;;\%W%EF($L[.FX5Eai%?F 6?wL;] W-\TB⤲8?F@&SA?F @ ?Nk"L'`bmMW_Ye[ٯ7 VK=F: [jr ? D"? XZvD?ta@Boogr5;!QEx]SiLO MLGXa~WOTZiAle59 XG"'0Uc>!$05 .HD # =hj0>T h]]9  IAU@K?FOgVb?FY%?Fwᳬ?PJW?>t`  ^Z?t#ə.E @x?r?/{4܂ G _Z+u u$ >  J JpU?43f<!.&P?b3bbfz@1bAe&bq$d 2zGzt.#@LT"&r(~&i$q)(+}'i"~*#81815 `?Co yrigTt (c)o02`09o0Mg0ce0os_0fm2^1r 1am0i_0n.o0 Al0 e8s2e0ee0v0d0"11E]54M-#D3 %D7.&lUh#7 V1#Ai!J# F/?B1B  VRiAAbE9 MX G{W'0U*R2N!I$a {VZUHPD  # #>h0JTpERI MU@u6?Fjc{g&?@%r`5B?Fm_F:Is?HNtQ`  II?t#]  _ii$!`kNu  iu%wj>M JQ T       "@&&JNU2"?H@Qs#N&A@b(bU)++&RNp}#>H1#19 ?#bbbz| R&/5R}#11`?Co0yrig\t (c)02h090M0c0os0f21r0Aa0i0n.0 Al!@ 8s%Be0e0v7@d@21a4t#-}#3 %746lJ#$JUp5 3 M19 1!q(!FnElrkRt# 8$kcD?@숒@)?FP?P"EkU |1\iOT/irvs}i>`_,of :m ,M ?? S&d2? *b?r4B!B oo1gr #5!>%(EQOOOO__FAc1_C_ D4ևS]_o_yRX+{_,__ #R__ (YQoSo+o=osd {oEeooooooFyUy{* hDVW(I X"c7I!pg bf'iMjSE t%XyG|'0UŢŞN!O4i |UGD # hz0TdYYBU@(%)?Fxg^?@0߯H?Fs7Uݹ?P} t` 87?t#_)TeΦu ]ukv  ̝L&UUU&I&3 U!!`?CopyrigPt _(c) 2\W09 M c os f"!r 1a i n}. Al00U (s42e0e uvF0d(0'HS$#-## 'I?k=#ǒ 2j$B##0U'BM3@&@F0Yk} #HA%DKb5DK3DK5DKED$!GiAZG5(|IDFX7yW'&Dŭ6!4YA yVZHD  # =hj4>T!]]>#AU@0߯H?Fz)e??F˞9q?P6 t`z  ?5t# rXѮu)Nu;):O]ע0 &> # " "+"+"+"+" $+"T-J[U7 ??& bA@ 2b4-#2zGzt#+@ Li68!6 ?}; 72U!:B#AA5 5`?CopyrigTt(c)20F@9M2@c.0@os*@f8B)Ar,@eAa8@i*@n. Al@ 0HsBeX@ej0@v@dx@)21"DM-,;?C G& l>]UhzAE!A#!ְ1J`#@{&pz?FUy{?NT,dKj&b&R&M/8T9K-q?F@F?FdG0 >Nk"?YE*]\LThKjfGD&Qhj ?iU3UGe&Y`?@/Jb)h5oWKoWo;èKod}l$ro`nE2K?Fˌ%4G{?F -q? eZR^{|\?6?vodmP}l>MBe 9 N 1iS? 1?grl#51:PO"4ga@Sq(UE^@O|ǐ[`ߡa v2rbA @3ijD&}laqOz o?#WHZ'Qu=*[^N?F]%P?@O&@ c?FаM<n ?` eb0)\(Pfodm}nv}l?V5(?q$Ix[cN#W{ #iA@&QeE9 MX''0UjdN!0 /HD  # =hj0T h]]9 #]AU@}%?FR$,?@6#V?Fc_3֡w?P6 u` ?u#t  3zM%t3ws%.<%H._'B> #PJU2N贁Nw[?@ʐL+&A@wbu](i+bk)%+&p%#4">9"<5!?& ?M#bbb͓z$ p&"/%T%#L1L15 w`?Co yrigTt (c)02`090M{0cy0oKss0f2r1r 1a0is0n.0 Al0 y8s2e0ey0v0d0"E1E(]I4M-%#X3 X7&l*>(UhE j1#$Ac!J`%#@5e$_F??!foA3nBM( V?FJ-R?@HQ??FS!R?P| llHL6VLD5E+v;*AůʙH: 8snP%$? k?Q? \?4_!__WrA5_! R,U3OC@IL?F4~Kz?P)Oy޾ T!]]>#IAU@܋?F2Oa>?@#r`5B?F*ݷ?P6 t`  >B?\oEt# ŖoZu 0Nu;Y:|8>$# JpU>##<?2& ?5bbbz@b#ANi&bu$'h 2N贁N[2$@ LX"D&v(&m$ :;T'm"*B#d1d15 5`?Co yrigTt (c)020090M0c0os0f21r 1a0i0n.0 Al0 8s2e0e0v0d0"]1"a4M-/p3 p72&l>0>Uhh= 1#!eJ`#&FNTM\jh1B,RBM(!JoUy{O_ e@ So4(D@^Tw?F]֝ä ?Nk"?w_KT\T+\_(Kjӷjmplhj -`\TPQE\Uui,St_o u~!ՠXEO9= T?FL?;uQ_Pm"rA @3sjQ1lğ=GoYniAleE9 MX|'w'0Ur^N!M$|A vzHD  # =hj4>T!]]>#IAU@܋?Fj?@2r`5B?F^ݷ?P6 t`  >B?\oEt# 6ΠZu 0Nu;Y~:#&}>0m8>  PJU2N贁Nwk?@ eL&A( 5bM(b[)h+h+$h&#[-M$#?& ?b$Z*'*B#O1O15 5`?CopyrigTt (c)02U0090M~0c|0osv0f2u1rx01a0iv0n}.0 Al0U |8s2e0e|05v0d0"H1P"L4M-/[3 [7&l>0>Uhh= m1#!S!J`#*&FPUy{_?NTMjC1gc RVMʣ(D#@ ![?F"$. ?Nk"W?IKTLTcKjRlhj p=' (*!)i,SO2Kes9T;QEGUFw6qX}__TM7fTZT\Dž}_P^52XOES"rA 0S#Es3iAleE9 MX|$Gxw'0UrIN!4gA xvzHD  # =hj4>T!]]>#!AU@܋?Fc_v?@#r`5B?F*ݷ?P6 t`  >B?\oEt# ap'EZu 0Nu;Y:|$># BJpU>#͙;? & ?5bbbz@}bAA& K&@ 2zGzt?"K@ L0"&N(bM)+TK/8Z*B<1<15 5`?CoyrigTt (c)s02009s0Mk0ci0osc0fq2b1r1aq0ic0n.s0 Al0 i8s2e0ei0v0d0b"5194M-t/H3 H7T &l>(>UhE=3Z1#E!J!FENTMjN@1h(NoUy{OO e@ o)4(D@^Tw?F]֝ä ?Nk"?'_KD3\T+\(Kj?ӷjmlhj P\ DiAlePsI=MXsG'0UzbZ6N!%$0 sFEjHD  # =hj8>T! ]]>#!AU@܋?F*?@#r`5BW?Fw?P6 t`  >B? \Et#տ|u l4RQu?]>I$>I# JpU>͙#<?& ?9bbbz@b#AE&bQ$$D 2zG[zt#@ L4"&R(^&I$Q)+]'I"^*Bh{.M#To1o15 9`?CoyrigTtk(c)k2009kM0c0os0f21r1a0i0n.k Al0 8s2e0e0v@d0f"h1l4M-:?{3 %{7&l>(>UhE= `51#I!J49fAn^ R)X f"B!Jui,SG?RSlOS u~!N]8-19= T?FL;uQ ?Nk"?YVTQRXQOnğ/=i n (\ wTiAaePE9 MXLg'0UbZiN!)$0 Lf`jUHLuD" # I>h(J TEI 3qMU@jZ?F({~+?P >uA` ?u#VMJ*  )8*A )LG#P`G.$*G8BV6j>t   t|zpb"#"J>U2zGz?@9 +#>;&A@b]m(b{)+Y&^" !l$jN5#",#C"&p "Ms"b{);x'^",^"V/5#113#`?CopyrigXwt dc)0W20090M0]c0os0f2R1r01a0i0n.0 AUl@ 8sBe0e0v@d0R#"lJ8JUlC -(#s!)(J!O?zQ0 # # %YA NEU . K ;;LGE3EF)$OK.FHE\Vai%?F 6?wt\[ W-L/D5Dꤲ8?F@@SA?F @ ?Nk"?wY2`bmM3_Yw[7 K=ދF  #j1H|AIx]Sit\1IMLHDEnPOoDJ1AAeCBp OOG|u?F9 mO"t\7=L驣/XQ eel.%-+?@llփ?FU~> @oVoɽ7y2VzdOfшlA=$o`"jQ3 ex}@4SSa[?o4ui'e!Oa#Əa$jiMiyI,%!Xtz'0U &`50HF vؚ_`H>;s `Dt![x_H=ߚFh@S#HԸw&OB -~d]xw@+_8RR|[s}GU,ׁf,f(,,,,-,@֛X,H,6,8,,8,D7h,{N],UFD  h(^TYYB UFjZ?F~??x<F BPG(?P } X ]B66]  TTUTTTB9T9ȅHBU?? ?B@L&d2?6-G(\.Y(7.sU!}&/)Ѥ&)  0cB`,dat 0b 0se,2rv2,0ompu 0#3di0t0i013d0n0tw*0rk!e ^| (S G& iz ?!3E?? ?  wpp  pqw~ qwqwwpqwqqpppw'wwwqqbwqpwww7{{w^Drag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aabjZֿ~??cN׿ mF1??SbM1{V↑T*J?@ ?UG DF P# h @T(PYY# [U@jZ?@~?tP} u` ?u#2>D>HX DHlHYHH (E9.EUO؍:DUDXXlUlH"' &T",'U)2&5qq/4 ?""'4b0{[`:#26%Q_9 $7&9"L1" 2^!'>~_@ÿ@qh@o?@`B?gD]F0#Bu)@`-1֠Bu@Ur#CC5CAB""Ch9u`u `"[ b!u`2ւ/3Qy1y7B`?CopyrigPt0(c)020P90MPcPosPfRQrPQaPiPn 0Al` XsbePejPv&`d/`VPs__SBNcPm!#5P8[`CQ2y1&3db4&5=Bh8=/3z6&3d66 Ԁ2&4#/30U!r3]ge<^1E U#&5m Hq&5twV5t{3t{FEt{t{y {et !{|tYwmAdaуIOBT.1:a:a&20#V21032=FB3J112I5db6q 7~C|hhE) *^Q_`!CQCQA11B=B;8ARrSqe a> !b1AE4FAނ.1#8dT7`XQ`]rw` MPnuP%aPt%ar6aYQ_` E]0uPpU`e`tee^V5Qn]1PRRd M`uU`b¯Ԧ30Z! PPr#5GCHhz]3 D&bQe^\޿𿏫AP)aB`Ҩ75^gyϏ-% S*biPaϷZeTϏ-LPcX&ߠϫk5N`rBDl 2`i`g̨)@`ߑRPoʂѩ|(ZP\@ pKD`ĖUSPaPEePlP6?ЪX9` TP7`?>` /aZPa_qSbI`zy`DRa0"ZʒT=NwRkqa<.2`s @ҨגcOaI` ad2`%c& d nĝAs Nx+P=鑙mrDatV/a I͢@+aNfP󨑙 R `Qa// '=/KM`C/P⯺/+QUmU`utP I`/ %N4$?6?s 2v? 2Nv??;Hd2QC_3` Wz%?NV%O7OCt aOO#ޅO`M&`mR{OOӧY"Np_1_E;OUe1ySQ]_o_M qt!Tw*foSU@jZ?@?/v/vUpSp2u8p` ?bup` B=ݝ`M,{t!Wp5'm-ׁ<3ohm!Qb8q׏XݥBT!.ct!xAZg>pÿ=$ bUfq vU֒rrrvvvrsY"`ERon_10 бeCZ~bb W}Wbr@":tbWuP`TfnMq1o$6zK}_obK1K2\#b^ºaaaaFҴ_AaY6P`u$`bTs`ݡs`ap䑹x^tݥ5f_b&bׄЂF3s͵N?SYDs\rV@(#e"88G^80G8ɐIFZ,@rb4 2V}uauaxuYV{nx` % P&S.1ua`NEW_ORKd2H IPհs!R۰RЕIհSÑQȑTi|o&ohXAG'0U?8!0oHD # =hj0>T h]]9  5AU@jZ?@͂T??@x?SF?P6 jt`  o?tk[>(A Vu aSuo.]&A]  *ԮJU2zGzt?@L#&A@bA#z7 5#1bO(b])j+$j&[ "*(w "?& ?AU$l/%B115 `?CopyrigTt (cu)Q02`09Q0uMI0cG0osA0IfO2@1rC0|1aO0iA0n.Q0 WAl0 G8s2Ueo0eG0v0d0"1E]4MŤ-&3 &7&l>]Uhz811U!J!u6?@+\.>djIIa? >"(EǑ I%K9E 5EU . K ;;5QIWEEE@ _KnSA?8@VBu?@DR> ?Nk"\6`ObmMM\j=am {:e 뇿P> #? D"? 5-gg?j47!B{oogrK57!ibDAbE9 MX7'0U~rN!R$a)5 5vIzHD # =hj0>T h]]9  qAU@;?@I5K?@xEL?6ѿP6 t`  bm&Qo?t@@L]WI,#u aiuoL> JU2zGzt;?@L?&A@b}#zs q#1b(b)+$&[9#H",ɺ (wH"?& ?A$ /%9#BV1V15 `?CopyrigTt (cu)02`090uM0c0os}0If2|1r01a0i}0n.0 WAl0 8s2Ue0e0v0d0"O1E]S4MŤ-9#b3 b7&l>]Uhzt1.A!JN!m.%-+0djV1ax߃S(@J-&?@ mO"> ?Nk"L[Majnha_:e P> #? BK=o? n-?j4Bs!B{__Wr5s!D8E6V 6?wj_|_ ^XE.U6Vz T6 @ d_mOoT ݬ\VߦyWx?RkrVo_bVh*g:n"'UaEjz}36>CN>?Bn]z/GvN7ViDAAbE9 MX+G'W0UPN!4)ae5 MaHD # =hj0>T h]]9  U@jpiH?@^?@$?@]F?P6 t`  !a&ao?t,F=۳=u;u auo>J2zGzwt?@ʐLAw@b#z1b](b!).+I.&[-m(?0& ?A$I0/Q%!!5 `?CopyrigTt (c)02`090M 0c 0os0f21r0@1a0i0n.0 Al[0 8s_2e30e 0vq0dS0T"!E]$M-# %'&l>]Uhz!1!J@% djc~YZ(_N9zOMGE%_EH$SwO"K ңHE ^&_8_WE_OqOHOOi&DAbPE9 MX7'0UUfb>!$a % f1jHD # Uh4>T#]]9 M5AU@jZ?@L|+?@?@({~?P6 JuM` ?u JYt )t7zEA2&L_D?. > >tJU2q K?=@MJ&A@-b9(+bG)T+T&J[#"#a?& ?AH?/`)#115 {`?CopyrigTt (c);020G09;0M30c10os+0f92*1r-0f1ai+0n.;0 Al0 18s2eY0e10v0dy0z"!4B#e-?3 7)& b 0K8>U# ]A]A "1!ъ!PzQ <%OYAJEU . K;;\%W%E@($L[.FX5Eai%?@ 6?wL;] W-\TB⤲8?W&SA?@ @ ?Nk"L'`bmMW_Ye[7 VK=F: [jr ? D"? X?ZvD?a@Boogr5;!QEؿx]SiLO MLXa~WOTZiAle59 XG"'0Ujc&N!$05 .HD # =hj0>T h]]9  IAU@K?@OgVb?@Y%?@wᳬ?PJW?>t`  ^Z?t#ə.E @x?r?/{4܂ G _Z+u u$ >  J JpU?43f<!.&P?b3bbfz@1bAe&bq$d 2zGzt.#@LT"&r(~&i$q)(+}'i"~*#81815 `?Co yrigTt (c)o02`09o0Mg0ce0os_0fm2^1r 1am0i_0n.o0 Al0 e8s2e0ee0v0d0"11E]54M-#D3 %D7.&lUh#7 V1#Ai!J# F/?B1B  VRiAAbE9 MX G{W'0U*R2N!I$a {VZUHPD  # #>h0JTpERI MU@u6?@jc{g&?@%r`5B?@m_F:Is?HNtQ`  II?t#]  _ii$!`kNu  iu%wj>M JQ T       "@&&JNU2"?H@Qs#N&A@b(bU)++&RNp}#>H1#19 ?#bbbz| R&/5R}#11`?Co0yrig\t (c)02h090M0c0os0f21r0Aa0i0n.0 Al!@ 8s%Be0e0v7@d@21a4t#-}#3 %746lJ#$JUp5 3 M19 1!q(!@nElrkRt# 8$kcD?@숒@)?@P?P"EkU |1\iOT/irvs}i>`_,of :m ,M ?? S&d2? *b?r4B!B oo1gr #5!>%(EQOOOO__@Ac1_C_ D4ևS]_o_yRX+{_,__ #R__ (YQoSo+o=osd {oEeoooooo@yUy{* hDV!VV(I X"c7I!pg bf'iMjSE t%XyG|'0UŢŞN!O4i |UGD # hz0TdYYBU@(%)?@xg^?@0߯H?@s7Uݹ?P} t` 87?t#_)TeΦu ]ukv  ̝L&UUU&I&3 U!!`?CopyrigPt _(c) 2\W09 M c os f"!r 1a i n}. Al00U (s42e0e uvF0d(0'HS$#-## 'I?k=#ǒ 2j$B##0U'BM3@&@F0Yk} #HA%DKb5DK3DK5DKED$!GiAZG5(|IDFX7yW'&Dŭ6!4YA yVZHD  # =hj4>T!]]>#AU@0߯H?@z)e??@˞9q?P6 t`z  ?5t# rXѮu)Nu;):O]ע0 &> # " "+"+"+"+" $+"T-J[U7 ??& bA@ 2b4-#2zGzt#+@ Li68!6 ?}; 72U!:B#AA5 5`?CopyrigTt(c)20F@9M2@c.0@os*@f8B)Ar,@eAa8@i*@n. Al@ 0HsBeX@ej0@v@dx@)21"DM-,;?C G& l>]UhzAE!A#!ְ1J`#@{&pz?@Uy{?NT,dKj&b&R&M/8T9K-q?x6@F?@dG0 >Nk"?YE*]\LT_hKjfGD&Qhj iU3UGe&Y_`?@/b%)h5oWKoWo;KTod}l$roҥ`nE2K?@ˌ%4G{?@ -q eZ̿R^{|\6?vodmP}l>MBe 9 N 1iS? 1?g]rl#51:O("4ga@Sq(UE^@O|ǐ[`Ρa g v2rA @3ijD&}l迲aqOz o?#WHZ'Qu=*[^N?@]%P?@O&@ c?@аM<n ?` eb0)\(Pfodm}nv}l?V5(?q$Ix[cN#W{#iA&QeE9 MX|''0UdN!0 /HD  # =hj0T h]]9 #]AU@}%?@R$,?@6#V?@c_3֡w?P6 u` ?u#t  3zM%t3ws%.<%H._'B> #PJU2N贁Nw[?@ʐL+&A@wbu](i+bk)%+&p%#4">9"<5!?& ?M#bbb͓z$ p&"/%T%#L1L15 w`?Co yrigTt (c)02`090M{0cy0oKss0f2r1r 1a0is0n.0 Al0 y8s2e0ey0v0d0"E1E(]I4M-%#X3 X7&l*>(UhE j1#$Ac!J`%#@5e$_F??!foA3nBM( V?@J-RHQ??@S!R?P| llHL6VLD5E+v;*AʙH: 8snP%$? k?Q? \?f4_!_t_Wr5_! R,U3OC@IL?@4~Kz?P)Oy޾ T!]]>#IAU@܋?@2Oa>?@#r`5B?@*ݷ?P6 t`  >B?\oEt# ŖoZu 0Nu;Y:|8>$# JpU>##<?2& ?5bbbz@b#ANi&bu$'h 2N贁N[2$@ LX"D&v(&m$ :;T'm"*B#d1d15 5`?Co yrigTt (c)020090M0c0os0f21r 1a0i0n.0 Al0 8s2e0e0v0d0"]1"a4M-/p3 p72&l>0>Uhh= 1#!eJ`#&@NTM\jh1B,RBM(!JoUy{O_ e@ So4(DF^Tw?@]֝ä ?Nk"?w_KT\T+\(Kj?ӷjmlhj -`\TPQE\Uu?i,St_o u~!XEO9= T?@L;uQ_Pm"rA @3sjQ1lğ= GoYniAlePE9 MX'w'0UrJ^N!M$|A vzHD  # =hj4>T!]]>#IAU@܋?@j?@2r`5B?@^ݷ?P6 t`  >B?\oEt# 6ΠZu 0Nu;Y~:#&}>0m8>  PJU2N贁Nwk?@ eL&A( 5bM(b[)h+h+$h&#[-M$#?& ?b$Z*'*B#O1O15 5`?CopyrigTt (c)02U0090M~0c|0osv0f2u1rx01a0iv0n}.0 Al0U |8s2e0e|05v0d0"H1P"L4M-/[3 [7&l>0>Uhh= m1#!S!J`#*&@PUy{_?NTMjC1gc RVMʣ(D#F ![?@"$. ?Nk"?+IKTLTcKjRlhj p= (*!)i,SO2Kes9T;QEGUFw6qX}__TM7fTZT\Dž}I_P^52O,ES"rA 0S# Es3iAlePE9 MX$Gxw'0UrJIN!4gA xvzHD  # =hj4>T!]]>#!AU@܋?@c_v?@#r`5B?@*ݷ?P6 t`  >B?\oEt# ap'EZu 0Nu;Y:|$># BJpU>#͙;? & ?5bbbz@}bAA& K&@ 2zGzt?"K@ L0"&N(bM)+TK/8Z*B<1<15 5`?CoyrigTt (c)s02009s0Mk0ci0osc0fq2b1r1aq0ic0n.s0 Al0 i8s2e0ei0v0d0b"5194M-t/H3 H7T &l>(>UhE=3Z1#E!J!@ENTMjN@1h(NoUy{OO e@ o)4(DF^Tw?@]֝ ?Nk_"?'_KD3\T+\(Kjjmlhj P\DiAlesI(=MXsG_'0Uzb6N-!%$0 sFEjHD  # =hj8>T! ]]>#!AU@܋?@*?@#r`5BW?@w?P6 t`  >B? \Et#տ|u l4RQu?]>I$>I# JpU>͙#<?& ?9bbbz@b#AE&bQ$$D 2zG[zt#@ L4"&R(^&I$Q)+]'I"^*Bh{.M#To1o15 9`?CoyrigTtk(c)k2009kM0c0os0f21r1a0i0n.k Al0 8s2e0e0v@d0f"h1l4M-:?{3 %{7&l>(>UhE= `51#I!J49fAn^ R)X f"B!Jui,SG?RSlOS u~!N]8-19= T?@L;uQ ?Nk"?YVTQRXQOnğ/=i n (\ wTiAaePE9 MXLg'0UbZiN!)$0 Lf`jUGD # hz8T YYT#BqU@5?@`0 ?@ t2?@?P} ։u`h?u# Lv3<@PT=d,2<<Pddt m۶YtjfUh!NUdI,@=#B!!u+`?CopyrigP}tg(c)gW20 9gM ]c os f"R!r 1a i n.g AUl0 (s#2e e v50d0+"!$4#bB-m)|# '?h==$&$#66 2j4$#=#0UB%3#3&50$^ #Q9 =#HAQ5D<KE%DdGg*Fj#aOb'*TATA4"1(3&Sa4% `2HAEBOiSHdiSi^PQ5 3FXm'.W'DŜ6-!40 VZUHLuD" # I>h(J TEI 3MU@jZ?@({~+?P >uA` ?u#jJ* )8* 9LGA )`G#dtG.$*G8BVj~>t  e t>"z "p{b+#7"J>U2zGwz?@9 S#>c&A@b(b)+,&" !$5N]#2T#k"6 "M"b)HF;'","/]#11[#`?CopyrigXt dc)020090M0c.0os0f21r0Aa0i0n.0 Al+@ 8s/Be@ej0vA@d#@K"ulJ Ul,aAaAC 5LU(#!Q(r!wW?@s80&9<01# 0IK A# ѥ,Og NEx]SiL5[ML&X39^PzQQ_c_ ?%YAQ)UEEU . K ;;\W)U I@)$_[.F&XA:jai%?@ 6?wL^ W-\/&T5Dꤲ8?Eg@SA?@ @ ?Nk"?I5`bmMohiy[7 K=F  %?j1&XIOD?@u@rLu7j T_ʹhLi,KV@8$Ȯ?@1x}b} yy_@){yEZJ]%8O@G \t;8j|c1}p?i @'WE"NO_T ZYAAekBp OOLJ}u?@9 mO"9=\/hQeel.%-+@mlփ?@U> "8?ɽ7yf\tOfj|A=$䚏Bp$za3ex@4Sa!6Wy'eU!a)#kq&ziM2i?IT%!Xh<'0Ub6502 ?}HD # =hj0>T h]]9 !AU@+3]q?@8i?@.!'?@\S۳r?P6 t`  C=?t#9sxZlRJ)u duo$>  J JU?'N<?& ?AbA@bNbbz87 5#,"b4$,"'b4$2zG7z?@L&5/G/Y 3%,"j&d,,"Rj*/1/15 `?CopyrigTt (c)f02`09f0M^0c\0osV0fd2U1rX01ad0iV0n.f0 Al0 \8s2e0e\0v0d0r"(1E],4Mb-;3 ;7&loUh#7 M1D hp  o%J F( dj!1B2 bdV.RiAbE9 MX|GW'0UR)N!!$a VZHD: # =h4>TB#]]9 TIAU@1q?@!9?@aww'?@տԌU?P6 t`  9F׿=?t ڰ#slgW ª%?)Zu Lhu!s8hAh hJU'N!?2& ?AbA@bNbbzc a#X"b`$X"b`$#2N贁Nk? "@L&a/s/ _%X"&,X"*T#[1[15 `?CopyrigTt (c)020090M0c.0os0f21r01a0i0n.0 Al0 8s2e0ej0v0d0"T1X4M!EQ#-0Og3 g72&l*>0>U#3 A y1vXD #p %J`#@.T'oo>hn56>fcRM(! Zך4_F_ b/OSϏHT >ɪ#f:?@*S)Y=> yy_@YjeeRT;Gq!Qh~n~OkzEMsZJPl -iU@SQEU"pL._qw;m;aU_ BnhX#rA 0X"IsTj߿kHhl!Qdok!(Npd 0Ale E9 MXXGB'W0U*}N!M$)Aj5 vzHD: # =h4>TB#]]9 BIAU@b?@;h?@ ?@F_a4w?P6 t`  /?t {/_  g?xRJu hu!s8&> JtU2]q ?=@ʐL&A@5b]M(b[)h+Ih&[#$"#?& ?AS/t)T#115 `?CopyrigTt (c)O020[09O0MG0c.E0os?0fM2>1rA0z1a i?0n.O0 Al0 E8s2em0ejE0v0d0"@14M#B-,?$3 $7&l>0>U#3 CE761$!; #p _%J*!ԌSU hneNw3󛍩(D#2q>@t|M?@a^!v:1 yy_@I56>[ŀQhnO:@K0hd7l aV@S8E8Vؚ㱫L{_pZ5X50U-0f:?@D?cHe-1>[W9k]geϺQ Y" KaĘ\Bqj]GRׂP_FR}LY5E:/U=uOqsR Y2JZ8 b G0Ale59 MXGB'0Ur:N!R$XA'5 vz_Hp>,ÿ;s ZH(GBF@# AEOB-~d]@}+VR[sG@chR! R RR(RXR}F֛ؒRRY!5R&R*RO.R16A*5NDx8HF+;T9I@8LJCKOgGUFD  h$^T YYBBUF\.?x<F BP(?43^P? Vs V6gH?R\d ?8EB G 09gB`.Cloud,netwrskcaUins t,pa !i sa ! %e^ M%J 1Gg YR 1H?_^p Qwwx0w x3wxwx0wxwww xQww ww0wp wwwwwwwz pww/ p7^LDrag thuesapWonodwipe.b~߿~?? XAP7d??O\.ߗr3r\.CUG DF P# h @T(PYYUEUF\.?~?F~׻?P} <Y ^.B" N'O'*Q'R'S'T' *^ Y&Y u` ? "s'_":s"Ds"Ns"Xs"bs"ls"vs"s"s"s"s"'&&:&D"uN)*2<7)VU2^L[b1j2 ^`s" H3z3'N‚??lF ?ma[Z<` Ac@entColn@r3z[_b[[bNbbzI1dq9E 8AЇEO 24bYP{[`:BeR&nVB#32Q?]q ؂3Q8A*W1`Vis_MRXY%cPm!P5`12`݉`?Ap]y@igPt?Pu(@)?P20L`U9?PMPc@o`'of>bAr2`AUa@i@n% ?PA@l?P7gsbe*`e@v@d%Bd455uO#4[%B+@q~9p?@IBp7u@usPRD"J-D"t=2u0`B-1D"֝ruL &@BGm3ry=_"n4O N)9u`u `"AA b1O$u`B, ^aepcT<@o?Pm@sĴ@a>5SRTJAn@e@?aT]N@twBk?PD@vVbe)EяFE*UM_q|U۟e"4Fpd(aC l &&2::)BDD BRXX|bb2llbvv TNA5 rT&_Qj~}8pK!bdzӲ=`pM0 : D N X b l v%‡'_"D_"N_"X_"b_"l_"v%™2:2D2N2X2b2Hl2v2BS&2NC󨕃FkZV?F'IOғp~կˍW 2r033(FE9<QߐlzBO$ߪ߼߮(U9|>}>MR,AZl~(|9x uSV!+=  (UǎoC  (ָe.rMi>3LÔ  eD2(dv  Q!Uh!%5QU}4< ?VV$`fBh}Ȳ7O!<?F/*Ȳ/2sU~1p%)E+D>L?/Q<,6FE%mEB?T?f411%U\+:-yO?H1BdhPUifb}WSȊOt6XQ4X @ pp` k*`n`RPn`dxQdЯd79@#AUUiB+T.(T;)dH*d db$"Tt ,@AaiE)khp:j%56_:9c&ЩD3s͵NSY2a)k8la)k(8l|)k 8hm8_ZI۩Qy`Uee8^6JVAAD @^R` WShpCꥁs!`L ctsPzTq`ss wTyr"^RS` pu EqC#5#s SzbCRsqozA`BiEOO\_xX#Nsqe'2q[[!c0_ZˑU#|7t:}#/'_x # fHavU# 1H !eU iEQ % UH duD " # J U> hzi@T(iiJ\ UF~?F~?tP @Yu`?(.8uBbSA{szat? Cteb"0#$YE['?a&?.tb'|z酱2Q?AG}$&}qam{c8`Con0ect0rz 1l2z{{+` Li2?15-tzYaU#F131 ?WPa0t0r0)4;1Z7}`T5M151?UR0u0dB2g6Rz8%"Q-!c_C~#J *$&#FH-B;"2MC &BS{%ZMCQ-!dgG 1`?1py0i@h0 c)20RP9MB0c0os0fDDR1r8P11i2]. AL0lJ=WsRedP1v0dP]@>ֵDCz\MC2qP?_f[!?\.? ~:o -D~% IKMC&&UgyQh @ 1_`S0aP2BiEfoxoyXMGw'0cia&!|$0 vjlAUEu P-QyB:MCz?bkp Tbb-.(},8>8dup*ar%@68K]ou ÏՏ ?|>R9=PbtuYȟڟ x<w(LA7BUgyu]ͯ߯"}>%7GZl~uAҿ '%OHL_qσϧϠue kZV?F'IOғ %NMQdvߚ߬ߠui+.Q7Vi{Q"QucwHD: # h8>T ]]9 M UF~?F~?JP6 7@ZAAM ,'@' T'h'|']"' ' "  " '""'"'0"`''JuM`l? 'y""y"6y"Jy"^y"ry"y"y"y"y"y"y"y",y"&,y":/L/^"uh)!b_A@36Jte! i(Bt1 LJFb4D"FEB>fCJ[oC'N(?F ?"b96BhE#fCtoC2Q͞C@MEMJ3V8E@8;G2JoCQuAuA5 `B`?CopyrigTtk(c])k20 `9kuMPcPosPIfRQrP+aa+PiPn.k WAlF` XsJbUe`ePv\`d>`PoCQ! \l-OS WFfEP b$U9 fuXG_'0UHrũFZ!D0 fzlJ\>Uhqq]!!0!PQAcHQ@1S?Fȓ$,_q?^"d#e4Eq ^"3d]q 0!0"/"Q!0"fBJ4?F;W?FjlJ?FH E(>?NpKv7atuXad#hX\a3g6a0e!2 4#q E6?Fv9?Fb4!?FЩԏ挍maVv]2:{(?-yjI>P!Xj?FT꞊j?F'K?F;(嗟éT.kvd*ĮVq#(]HXEAr ?FK(umB)?F.~rYYH_amAáF+x(~*=į֯uhY*?FY.(v0zkd)D6GdSZpB{(i]"/M͐?Fߧ78ET+Lk ]D am++Tz&{+69[Ϟuf?FP$?F [13nٶ7gۣ挠Y,Idkim0H@eQY"ߤİuӧ?Fl?|f ͲKlKBG]fkϐߵAZV?F:?F* ?P$ 1EK3 3i{߮Gz~}Ԗ0>_NO5q :_" s3t? ט P&d2g? 41z3B2_qr5E~\.儐?FQ( BP >5 w pmD0VY l j٩ 3 UIPY?F3>Dx?Ptk= `K0z߂3S0kg; z0f=kVN?PX#Z3d1H-Z?F)$F\;X})挗J hG~W*fU4~%?FVFKL/GaH)r~(H  N/?t4ZA rGg?F4W eſ?FH?Ýi`)6¿l#kpc'??4FF\>FI(1 O怘Rrq SCH>t v|RuONHD: # h8>T ]]9 M UFx<?FAj?F~?FwQuu?P6 7@FA]A]M ],'@' T'h'|']"' ' "' ' " '""'"'0"JuM`^l? 'e""e"6e"Je"^e"re"e"e"e"e"e"e"e",e"&,e":/KuT)!bA@*36JtQ! 2l] 2t12zG57RQ57)\(1>RJCJ[SC'N'(?F ?^"b'96BtSC2B??088r0MICJF8;;G2J2SC@?JE=26S0#CSCQYAYA5 `2`?CopyrigTtk(c)k20 `9kMPc.PosPfRQrP)aa@iPn.k AlD` XsHbe`ePvZ`d<`P񾔝mT!l-pHS %WF{Vi AbdU9 {YXpG'0UFrōF!D0 fzl*J\>Uhqq!!0!QsAGHQCf֩?F1Qd?J"P#Oe4E] J"3d]] b0!\0"/",&JBJ2(B@?F,/k?F]?F8{# \*?LpKv7_tuX_P#_hX\_3?g6a0Q!2 4#?DEh?F~E ?F_pLVwMҏ䌍m_Vv]$A2:{&-yjI-H+ŕ' YbҖ.K?uAc9z^̰f5U?FF/`_`P \!b@ir_f|Ƣn y(Tf>rpd6ENj/-g?FRr?Fn^\K0z߀3S0k~mr{~.*{ S4K" =b™? C? "@wD#<2tr5EOK4n?F{׀?FBi䌗J hGW*fUÝ)k4Il RuF?FB5r?Fn?$Xp ?G'gH᷷?r~.H  N//4;KGۨI} yFa%?FO"Z/g`)l#&Ƚkpc%//2DF7?d>FM?MRrq LS3H>{v|R؇?>HD: # h8>T ]]9 M UF`0 ?F M  ,'@' T'h'|'] ' ' "' ' " '""'"'0"JuM`^l? 'e""e"6e"Je"^e"re"e"e"e"e"e"e"e",e"&,e":/KuT)!bA@*36JtQ!  \(\] 2t12 _p= 57]@ף57%)2] >JCJ[SC'N'?(?F ?"b'96BtSC2Q?0G88r0MICQJF8;;G2J2SC@?JE=Z26S0#RCSCQYAYA5 `2`?CopyrigTtk(wc)k20 `9kMPcPo%sPfRQrP)aua@iPn.k_ AlD` XUsHbe`ePvZ`d<`PRmT!l-pHS W$F{Vi bdU9 {YXpG'0UFrōF!D0R fzlJ\>Uhqq]!!0!QsAGHQ'n-?F1Qd?J"P#e4E] J"3d]] 0!0"/",&JBJ2G2,?F,/k?F}X?F8{# < ?LpKv7_tuX_P#hX\_3g6a0Q!2 4#?DEU: Z[?F~E ɀ;9C5 ?F?wMҏm_Vv]2:{&-yjIAim.H@eQW °A{?FH 6I_^ d ͲKlK~BG]fkߵy X0?Fjd?F*OzE=M2'-H+ŕ' YbҖ.KuAc!N\?FZf5U?FO/(Sÿ?P? \!b@ir_f|Ƣn? y(Tf>rp^N/-ُg?F6+:n^ºK0z߀3S0kmr{.*{ S4K" =b ? _C? @wD#<2:r5E1f.]n룠?FF[PBi䌗J ~hG~W*fU)k4R9uRuFpZ?Fn$Xp G'gHr~.H  N//4[/I} KKbv"Z/Ýg`)l#&Ƚkp!c%//2DF %>FM?MRrq kLS3H>{v|R?>HD H# h @>T(]]9 MT  UF|>?Fd2L&??FVR?P6 @ZfA]A] >M /]8HC8\C 8pC8C8C8C8C||C 5C 8" 5"C5$""C58"C5L"JuM` ?  "4'C"R"f"z""""""",",".,"B,"V/Kup)8!bSA_36Jtm! q$y BYt1B5A!EM!E*G[~By >zCJ[C'N'(?F ?7"b'96tC2Q??088r_HEyCJV8;Q;G2JB2C@?zE= BFS_#CCF~F$u?FNR?F~Sߪe f"l#ͽU>aſf"J3RRy f"l#>b@Ed3̀ͅap`L!  f$#p)bq65q p)CaAA5 `%B`?CopyrigTt@(c)@20:p9@M&pc$poKspf,rqr pYqaPipn.@ Altp $xsxreLpe$pv"pdlppT$!q$-Hc gFV$VibE9 YXG{'0>bUŽF!D0 UilJ"\>Uh"" !$!8!L!q'ArwHqI}^?Fwo?0je4EZeLdd?]e\DL"K""L"zBJT" Y?F]?Fo?F5? Ѭ:?1ipKv7tuXZlhX\Zexdg6gJ0m!2 4?#oD Um?Fڼt?Fɤ_i?F0>m* 9?F?eD;]D m++Zl?Tz&{si?69Vu9,"f?FXev!Jx W?F8+y٨HZ ͲKlK~ZlBG]Lfk&8}H ?F$j #?F?B?FH+g'Zl Yb*xdKuAc>j ?F-}JӦ?Fզ.ki]7aB< x!Gi@ir_Zlf|Ƣ y($M-wF ?d2huON{v|RONqNwHD: # h0>Th]]9 MP UF~?F~_?P6 dnA >IM .)B) V)]j ~   ) )) ) ) ")")2"e)~)JuM` ?E){"${"8{"L{"`{"t{"{"{"{"{"{"{",{",{"(,{"JU2Q?@M?CJOFA@!@HbʏIKFrB !RDJICB'?Vp BABbI2[GrBLrBOB-ICR SC9 _VICQQW;HB`?CopyrigTt (c)=`2`09=`M5`c3`os-`f;b,ar/`haa;`i-`n.=` Al` 3hsbe[`e3`v`d{`Pi @bU9 VHXWXA'2qpVtUIa fjlJ Q\>UhQQ]~ !!2!DEQ!=H^A@1S?FO$,q(P`"3 e4Es `"C ?]s Jt{Z rGg?F;mx>F9h E(>?NÝ*`)*f#퐲>+3cݛs a0g!2 4#@ES~%?FV?F4W eſ?F}G*H᷷Ļl#*لȽkpcXSH?F-Z?FF?FPL߯@J *⁈hGr~لH  NᵪS UI?FY?F섰a?F@\ K0z~**3S0k~Ä&~ԉ~$ARm}A\.?F:?F3?FDٳx?P+k= 1`竪3*{Gzޟg; z?ԉf=ks :a" F f 94FQ2! 3B2:9rt5EG~[ZVn-C4?F4?Pu>5 Οw ð}H 1唜2fi0ƱVX 23@0Bk{̒[mY*?Fuӧ?F?F* ?P% t1EC6G*ͲKlK~}>NO5 RԋS2Z#@cukǜ{̦Ouf~$l?F|ƯY,*kBG]fk0BO"/M͐ŧ78E [13nٶ7g"]D *m++仌imIلH@eQOY.(vT+Lɇk h!˿S컌Tz&{u69Rd~OEAr K(F0z?Fkd?YH_2mA B{لi]I'p1OjT꞊j?FmB)k.~rkéT.kܶĮ~+x~ل~*=u1O6?Fv9m'K;(-/m*Vv]BÄVq#ޔ]H//rP;W?Fb]/?F?J/pKv7*tuX滌 &ה`Ypl?GuSFjlJ?FH?#5~hX\~ g61!O3K_H8>X"s D')K'g F𘱼L1#"NXB ~vO<|d o@+@«oMsGP P(Y"ؼ^tJhIXqOz":UFDf h-TYYU?~@x]@L'} V6lX-1u. Bj2u2Z2j2#u9r#ULH/MZ1+B#AD5 60`Vis_SE.cTm!#20AD%`;Copy<0wigTt ?DU1f@M)@c<0o+@'ofdBUArX@AUad@iV@n3@ f@WAl@ \HsBUe+@e<0v@d3@J@=## A G?9#"n"Ea&444 70#AHB53_lj#SV6U8l>(UhnE / J$&9"(Fn_g5Fe#pheo'r#T X!! Jc0xo)vR2'"U7A%O3W_7rr5-6 `F2 Vrqu\@|Q:0b)`R@As)@E %T@xd@Di  ei=G]U6Tg'0"q)V!DHAn 6SWaH>w* O`EW )F)#-Ϗ7B (edko@/PUFD  h(^TYYB UF\.?x<F BP(?P?Xv B6u6  T^ThWZTTȅHBU?? ?B@L&d2?J-[(m(K.sU!&/")ҍx;(  0KB` Bridge,n&0two0k(0p&01pP=1al(0d&0v 0c@&0 [1^P| ( G&e WPW"*U---?-. wwwowwwp~wwp!wxxp}wwhd:lww w pvw>ÿ@qZ@E?DFp6@rR$Sn0!u@`i-FAD"BRuL @GCD$]QO(gR_"|i& 4O N)9u`u `"[bO$]u`J425)3Ga171`Vis_PRXYcPm!#5n`46B.R`?CopWyrn`gPt@u(~`)@20`U9@Mn`c`op`'ofbar`aUa`i`n @WAl` hsbUep`e`v pdR13d45*8=363@tFF B4B#30UrC]Vw,7%$T!nLPLsT<`o@m`s`q>g d(aq;_=@TATA2hhbB)3*̈́b+ڄ8bq q200Dr81@a6s2+66u\L %BWQ(A.A[2BB]P@RbESTO$@6r23| e|8e5=_4&F3s͵NSYFețG@DugQ̗,@Ga cupgbE@*28ABTOopD"%J-.RRO(R$[3VÁ`R pasn`e T px``B| 0Ls'_"x#PG $UJ"bk B3U2brZTCfRr ïը8=vv_<H!U"D"=m0!D0!g!@2ÅbBЅ3/xԂb08beaea22Dr3 AAE|66v7 |8Ԑ`b-A-A;hr#zr{qV W!rA8T@GaKk ]]P@` USPa`e`lLsaQi` E0u n`p`e`TbEXew` —T``8` D pvbT3^r` MSb Bbd`5ed;YRmM`nf`c"`u r88eQTAPbd Nm@Te@h=O! P`rxAx8eb`m +sbeXsuĨ9KuAe;S`uJB Sri`a /TTh//A/L`ch{/Ҡ///Blpi`[/@?#?FR`oS?a??uNwbkl"aXb`K?[It`adp s*OT]]9 M JU@x2zGz?@MJA@eb#z(b),+,&J[(.?& I?A$./O%B!!5 g`?CopyrigTtZ(c)Z2009ZM 0c 0os0f21r0>1a0i0n.Z AlY0 8s]2e10e 0vo0dQ0!$$-# '&%?6iie59 6X7'K0UpBŁ&!$K0 'F;JlJAh h7!1!Z@vnǣ f, <AA#  IRvVJ:'BP(?OS spBlU^TURUEUr\.G\ZY?PuPիQ,5U҄Q[pB.aYU520_BU"rA 5#cHD: # h4>T]]9 M JU@1&d2?@Vj?@҄BP(P6 ]AJuM` ?ju#t  k]It=W(\ZIRUIl">2zGzw?@MJAw@eb #zb](b%)2+)2&J[/.w?& ?A$T4/U%B!!5 g`?CopyrigTt (c)020%090M0c0os 0f21r 0D1a0i 0n.0 Al_0 8sc2e70e0vu0dW0!$-# e'& ?6iie59 6X7{'0UŇ&!$0R -FAJlJ8>UhAA 11!T2 $S<cV{ WR~VJd2L&?@ubX,X ]S fR#mS [ÐڱQE^Fh4__ K&oeX5:f'l6 XYePY?ۭsHMQ5aZjoohY}aUVeEVx_;"rA #dsHD: # h4>T]]9 M JU@|BP(?@h4WFP6 v>JuM` ?)uJt  U]It=W{GzUIR]I%l#>m2zw?3S@MJA@eb #z.b( (2+2&J[ (p"?& I?A$ 4/U%B!!5 g`?CopyrigTt (c)020%090M0c0oKs 0f21r 0D1a0i 0n.0 Al_0 8sc2e70e0vu0dW0!$-X# '&?6iie59 6X73'0]UŇ&!$0 -FAJlJ8>Uh 1Z1!Z@o.rɩ  <uCB] WRVJ@ ?@bx ]S ؒQ#hY))QE^jϵZ__ CaX5a9XYePXRmScRU5:]mxc_PU"]rA #dsHD: H ih(>T9 M3JU@xJuM` ^?5ulbSD_Jt bstE>2zGz;?@MJA@u+b+&K !JS"j& 1"A.b+-,-/*B!!5 `?CopyrwigTt `wc)5020A0950M-0c+0o%s%0f32$1r'0`1ua30i%0n.50_ Al{0 +8Us2eS0e+0v0ds0ib =L!XY'0U Bj&%0 :lJ Uh*M[A[A 9A Z1:'BP(?X Y s BQi@JSv?@bX, IYwYQ!i )\(!!U31^Fh4I_[_ p= ףuXEfl6 TbYHuX _Vgj_aZ(oQ !UAI҄AK B\%QAI@h4GFHlQbY{uXAo ].Oroa_(miY"@ _?@-BQȠ\ p_\oR\uXAppD`Zsƌ uXEOO_\HD: H h0>Th]]9 M JU@$?@-#?@%G֖g?@q;Ƙ?P6  n>JuM{` ?5 uJt  -|ߥ_Et9S8-zENسא\Eh)Fx%[v>2N_Nk?<@MJA@cb]b)++&J"< u) ?AHb$z@J+%/F%B!!5 c`?CopyrigTt (c)302`0930M+0c)0oKs#0f12"1r%0^1a10i#0n.30 Aly0 )8s}2eQ0e)0v0dq0!(Y$-3 7x&+0b59 6X7G'K0UhBx&!$Ia F3JlJ]Uhz11Z@S3   8gF/_ M ARnVJ!49BYOPBRWSMRUE:]|`X?\QRYl>Q5U/V@_YQĈU2(_:UrA cHD: H h0>Th]]9 M JU@!\?@JI?@8HL?@VG?P6  n>JuM{` ?5 uJt  4 ^sEt9SPDEN׈]Ehoþ>2N_Nk?<@MJA@cb]b)++&Jޱ< u) Y?AHb$z@+%/F%*B!!5 c`?CopyrigTt _(c)302`W0930M+0c)0os#0f12"1r%0^1a10i#0n}.30 Aly0U )8s}2eQ0e)05v0dq0!PY$-,3 7x&+0b59 6X7G'0UhBx&!$a F3JlJ]Uhz1h1Z@Pg   8gF__  ARnVBJ49BYOPBRWSMRUE:]?{^{?\QRYl>Q5U/V@_YQU2(_:UrA cHD: H h0>Th]]9 M JU@F5x3?@5yF_?@%G֖g?@q;Ƙ?P6 n>JuM{` ?5 uJt  a8~4Et9SuEJENسא\Eh)Fx%[v>2N_Nk?<@MJA@cb]b)++&J:3f< u) ?AHbʣ$z@bb3?bfb)$%/F%BB115 c`?CopyrigTt (cu)>02`09>0uM60c40os.0If<2-1r00i1a<0i.0n.>0 WAl0 48s2Ue\0e40v0d|01Y4Ť-3 7x&60b59 FX|7*G'0UsB)x&!$aI *F>JlJ]Uhz%11Z@S݆ f  8gF_  LR)yVJ49MYZPMRbSXRUE:]|`XJ\Q]Yl>Q5U:VK_YQU23_EUrA cHD: H h0>Th]]9 M JU@ ~?@gŬs7.?@%G֖g?@q;Ƙ?P6 n>JuM{` ?5 uJt  YoDt9~S-/ENس\Eh)Fx%'[v>2N贁Nk?<@MJA@bb)+R+&J"< u) ?AHb$z@J+%/F%B!!5 c`?CopyrigTt (c)302`0930M+0c)0oKs#0f12"1r%0^1a10i#0n.30 Aly0 )8s}2eQ0e)0v0dq0!(Y$-3 7x&+0b59 6X7G'K0UhBx&!$Ia F3JlJ]Uhz11Z@S3   8gF/_ E ARRrRJ!49BYOPBRWSMRUE:]|`X?\QRYl>Q5U/V@_YQĈU2(_:UrA cHD: H h0>Th]]9 M JU@ ôOS?@S !p?@%G֖g?@q;Ƙ?]P6 nAJuM{` ?4 uJt  M:AEt9SENسא\Eh)Fx%[v>2N_Nk?<@MJA@cb]b)++&J~"< u) Y?AHb$z@+%/F%*B!!5 c`?CopyrigTt _(c)302`W0930M+0c)0os#0f12"1r%0^1a10i#0n}.30 Aly0U )8s}2eQ0e)05v0dq0!PY$-,3 7x&+0b59 6X7G'0UhBx&!$a F3JlJ]Uhz1h1Z@Sg݆   8gF_AR M ARnVJ!49BYOPBRWSMRUE:]|`X?\QRYl>Q5U/V@_YQĈU2(_:UrA cHD: H h0>Th]]9 M JU@]C}?@8?@%G֖g?@q;Ƙ?P6 n>JuM{` ?5 uJt  [J}$Et9S=d ENسא\Eh)Fx%[v>2N_Nk?<@MJA@cb]b)++&J"< u) ?AHb$z@J+%/F%B!!5 c`?CopyrigTt (c)302`0930M+0c)0oKs#0f12"1r%0^1a10i#0n.30 Aly0 )8s}2eQ0e)0v0dq0!(Y$-3 7x&+0b59 6X7G'K0UhBx&!$Ia F3JlJ]Uhz11Z@S3   8gF/_ M ARnVJ!49BYOPBRWSMRUE:]|`X?\QRYl>Q5U/V@_YQĈU2(_:UrA cHD: H h0>Th]]9 M JU@Y ?@fJ7%G֖g?@q;u?P6 >JuM` ^?M uJt  (N7Et9Sp%6ENس\Eh)Fx%'[v>2N贁Nk?<@MJAw@cbWb)++&J:3f< u) ?AHb$z@bb3bOfb)$%/F%B115 c`?CopyrigTt (c)>0]2`09>0M60]c40os.0f<2R-1r00i1a<0i.0n.>0 AUl0 48s2e\0e40v0d|0@1Y4-3 7 x&60b5(9 FX7*G_'0UsBx&J!$a *F>JlJ]Uhz%11劵Z@S݆ Y  8gF_i  LRyV J49MYZPMRbSXRUE:]|`XJ\Q]Yl>Q5U:V K_YQU23_EUvrA cHD: H h0>Th]]9 M JU@$䣹?@R?@%G֖g?@q;Ƙ?P6 n>JuM{` ?5 uJt  >b3Et9SWENسא\Eh)Fx%[v>2N_Nk?<@MJA@cb]b)++&J~"< u) Y?AHb$z@+%/F%*B!!5 c`?CopyrigTt _(c)302`W0930M+0c)0os#0f12"1r%0^1a10i#0n}.30 Aly0U )8s}2eQ0e)05v0dq0!PY$-,3 7x&+0b59 6X7G'0UhBx&!$a F3JlJ]Uhz1h1Z@Sg݆   8gF__  ARnVBJ49BYOPBRWSMRUE:]?|`X?\QRYl>Q5U/V@_YQU2(_:UrA cHD: H h0>Th]]9 M JU@֤M?@ yo?@%G֖g?@q;Ƙ?P6 n>JuM{` ?5 uJt  ߸ Et9S)hBDNس\Eh)FxO%[v>2N/Nk?<@MJA@cbb)+R+&J:3f< u) f?AHb$z@bb3bfb)$T%/F%B115 c`?CopyrigTt (c)>02`09>0M60c40os.0f<2-1r00i1a<0i.0n.>0 Al0 48s2e\0e40v0d|01Y4b-3 7Ax&60bP59 FX7*G'0UsBŔx&!$a $*F>JlJ]Uhz@%11Z@?S݆   8gF_  LRyVJ49MYZPMRbSXRUE:]|`XJ\Q]Yl>Q5U:V@K_YQU23_EUrA cHD: # h4>T]]9 M JU@xJuM` ?uJt ASt=WJRb~li>t2U?=@MA@+b + &J[N#a?a& ?A)BB!!5 g`?CopyrigT}tZ(c)ZW20 9ZM ]c os f"R!r 1ai n.Z AUl90 (s=2e0e vO0d10!$ę-# 'a&?6iiek59 Կ6X7'0Ŵa&!|$0 FJlJ UhqMAA ])A !4Ja-'Z@h4FӃ f <{Gz#A OR|VJ:6]].rM__Z)\("UEC@ ?@-bȃ S 1 `#`YR\Xk5^jZso!o ̌aX5U'BOP(?gks#dT[RUUSv?@n aX,flYwq%lSXn?Fh4  p= ףXAYfl6\`YHzmPXAV``ʼ_Z(QYAY҄agklQbE26_HU"rA _H<>gI+s nsMg@q3JFAܕ#"c7OB H-~d"w@+_htKs}GBe'fHKxM\ONUȳH$ȸض$x $"$$8'Ȑh)UFD  h(^TYYBBUF\.ߗ?x<F BP(?hP?XV 55r55 Jbggah5Zg\ȅH?8?f)B@L&d2U?$-5(G(%.sUm!k&/|(  0O~B`"EtPern t],4wo k0p"i0#al*0d v0c 91^| ( 5G&u  * AAS ~pni'TDrag onut he]pe,nUdu /p64lies9Lt]wrkcQm tOfTly lGo_"imdO.bL&d2~?K?=tp'I??C\.r3?r\.CUG D  # h L^T4YY  BUF\.?@L&d2?@~?PYU^f6.NGOGPGQGRGSGTG\G]G^G_G`GaGbGcGdGeGfGgGQJiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGyGzG{G|G}G~GGGGGGGGGGGGGGGGGGGGG736363u` o?%$7G-7B<7BF_G#BP7BZ7Bd7Bn7Bx7B7B7B7B7B7B7B7B7B7B7B7B7B7B"7B"7B"7B""7B,"7B6"7B@"7BJ"7BT"7B^"7Bh"7Br"7B|"7B"7B"7B"7B"7B"7B"7B"7B"7B"7B"7B"7B"7B"7B27B27B27B&27B027B:27BD27BN27BX27Bb27Bl27Bv27B27B27B27B27B27BH27B26g6U6666MBuIU$FrL|Lw&1~rW]@Es  ^7B( ( ~s!v̨ q?@h!;p`:1P IFPr,s~rD1''@A3{:18E9 'N( d?pxh` Acn CS lS r3!ۦpڈ٦p1bbbz0q@!PZY<^pbbNbb™qb"b7+d||u@+@Q Q?@G}x^?@IH‘BMB6}Vu]`-qZBuFgw#/s;}#B(0t@I9u`u`"TYYbzFqDuK`EWAαq1W`V sPwXYEcPm!#528gX1`U?ԑp r gPt1()12U0B91M cq Eo{ o5ԑr] ua iS nE J1A5 l1-sUe{ eq vdE*E WN~`~u01 l2T'sFt5ӤӨὭ w?gߏBq&W,s^KVVTK~u5TԑnI e5TJ Nt uk1DvLN'9K]utc担c8E&cNI[mc}c濵c0BcewcFլcc晱6HZB_z\\Fq ////_ qR/d/v/_///\`//?c+?=?O?cn???@_???_? OO\VCOUOgO_OOO_qOOO__'_9_\\_n__\픱____ꌑ__o_3oEoWo^;t~ooob!ooo\폰,^#M_q\$\%@\%7I_'i{\(ԏ\!) \*>Pb\+\ϟ_,>@c]o_/ů\0 \ 2DV_2v\3Ͽ\ +=5K]oB\6Ϥ϶\7\8 2D\!9gyߋ\:߄\;<x?#5m`3ACTE5[ɳaj1,.tu[񼱼[[_[[([ [CZ==2ffyѭ";;N"""@#2WWj2d`e U@s` M;aiuf,pueQ` Eq0ipeith 'UPouoN:mb>Pb btq' P,r9! / u'EsorK"t=h;/M/$\l/~/A s}-.1 '7`1^/?!' S6"i,l 0?B?`>Th?z?X[Q'Lc,(?`K???B*"liigOP<XLHOZO' RoO_eZOCA8wa' BEp&$/qf`Y4$_8]Sra e\l,)1@#` fi!bty_l_~_W"` WTPQ@^2` Eh6"*lt\a4 l.c`_O|N(,TQw`#|`p/xo6_IPsAd<Told?o/S:bEd +sc*lAxTf;'qmBi tCv9 I[7!3oW='/) fsPt@$:PftMpCnp㏊gTˑ'fmuQ SF l!M_(|/@"ha  c%>UcAXE_`>Z ** [j$w1tt>,3K̗?nؑ`tQgctRm#ZC̗,@_Cc%SuK`rϔ? h!b M^b!bC%_5Ÿ(56c_t&YF3sNSYF??Eq! $U dkV@~?>? ijTMwu `b|tϔ?b+cU@L&d2FX ~u~ߐk7լj(ߎp.AɯD c0I.NO Pl$u1S>GAGAKaaX]8eԁԁrݡݡiaiaa lc/a/aQQAAIIA0,j=al$BAe"!A#Mwx!g%9!@QRQ@ϒ^^!:q"v}#rq01RQz3{| +}*~t36 /*&03!@2M3Z4x|Ut6񡊁7񡕋8񡌛O:񡎵q=>?R0i[8s]&?-ܑ-!lVőncb[r ]#d%+`[ ob Q'eu"$I7 | "#####!#2";#ԁ#ݡ#ia#o#|###/a#Q#A#I###a##A##%#x##L#Q#f#s###q#Q##########)#6CCCPC]C|CwCCCCCCCC`CC "&eR"eR2eR 2eR2eR 2eR*2eR2eR>2eRH2eRR2eR\2eRf2eRp2eRz2eR2eR2eR2eR2eR2eR2eR2eR2eR2eR2eR2eR2eR2eRBeRBeRBeR$BeR.BeR8BeRBBeRLBeRVBeR`BeRjBeRtBeR~BeRBeRBeRBeRBeRBeRBeRBeRBeRBeRBeRBeRBeRReR ReRReRReR(ReR2ReR2(ݤ>2&̶Pl~3+CkߏH2ݤH2&̶ 1CU4}XRoݤR& ̶ F!R8JݤR*&̶R(ݤR&̶TRݤR&̶Xj4!X/|/R//ݤR ̶/0/B/!?j/E?b\?n?ݤb*̶// ?1?3?O b%O7Oݤ b̶???xAO?ObO_ݤb̶yOOOAQ|_O_g__{b ̶B_T_f_ aEo_ioh|ooDr ̶'qo o 4aWo2iEW ̶oooq j Sւc ̶eďk׏&! !̶fx.il٨h ""ڡ2D 42{Vmi{1## Dn2Dk{$$ӯ寉Ŀ o 4D% 9%Rֿp،* &9&Se wVߟzqߟߨU'9'.@hCrVh(9(1 s1Xh) 9)!t!*1*9*"w ?zuy+9+#@RdCgvz(B"&,9,$ - /U0/wC/U/|8 26- 9-%!///x ??EH2*UF.9.&// /c1?/?y??XBV/L/'d?v??,AgO?OzOOXfRV0L0(-O?OQOA0_yOT_{g_y_h/bf1 \1)O__Q_B_o|0oBoixb*yv2\2*__ _ao oo}o 2rB3\3+oooPqo~ 4\4,QcuTxĘSԖ5 \5-,>fATf 6\6Gv: 謫/ /Vf7\7k/ПӯȮ/8\8k0u=xw9 \9k1>PbAϊeτxϊϱ@*:\:k2 + S.߅ASߨz ;\;3Ϙ߆ CS<\<4߽߫a߂ = \=5bt*ed*>\>6+= O.wRew-?\?7@.@g(w&@\@8  /08"@6A \A9N!////82* FB\B:O/a/ s/1R?/v???HQBFC\C;?*?s__ _;avo_ooo(xurvGGK>oPo@q?ocv>HɌH@)qQ,?QxIIdTtsTssSrU} @ `EtherntnrAnkssAs%t sΑϐΑor#r` %P&o]ptis ߢ``N `TWORKÐS{AEÐPOR2I `Q2 ia1ṃ'0Uyu1!1 0tbų)zw tر)1 ۲eʡ0(&100@w뷤H1wLĭGX+L_W8LWGEDrDC  @   !"#$%&'()*+,-./0123456789:;<=>?>A*BCheATe(eJ\U@L&d2?@0~{??@?PYmUU%.u`o?&UH&T"""u,)ct)! q-tm!ʇ"L5 .&b$&"} U}!Uɤa/ '19 b {V?`%2H6"\>3c6?c82\.?A?9[B>30/D?P?y A@lBw0uC񁠙A>9D@SVCA'1X7i`"`?CopyrigPt(Uc 09uM PcPosPIfRQrP=QaPiPn AUlXP Xs\Re0PePvnPd"Z,AuL-$cA2T%c3C#lBF{L u,G"aOCTOU_2sOU!OOOOO_"_4_F_SO*^x_b._o_p__ ooARodovoooo_j_oC.@+k@asx@j`D.mѐBǏُx!0BTfx"ja.ӟ7 -?Qgx:A̯ޯjbu._qxl jeB.k!xґ.@Rdvjf ".5  ;+=Oe>s8jg/s2)N@7/N?[/0p/K///Ns!//@ ??0?B?O/jht?B^?O?P?B[? OO1nsNO`OrOOOO?"jiO?bn_o'_g`<_R{]_o__~sj_____o_6j@or[ ioopo ooo s,>Pbtok !3!);Mc!s6!ȏڏ@q'"5 LYn"ɾ"s1 .@Mhmrײ#ԯ!#/#sQL^pnؿ=$%e:P$[mϕ$shaψ 4o>ߣY%@g~߶%%sq*@Kf:rp">N!/=(<(//-N(?HJ/\/n////Js/;BN)/O#?c@8?N[)Y?k?}?^)XfѰ????? OD?2jt38b/.J~8/2SN4a/x?/0/K4///N4X?$?6?H?Z?l?y/Z?R^5@?O?+POk5!O3OEO[n5mh.xOO@OOOO?j_ib~6-_DoQ_`f_B|{6___~6x__oo&o8oE_"`jor7oopo7oo'79DVhzoƚ5랁8]2H8Sew8ʑΏ,6Q9_và9˟ݟ91"4FXjDwʄ·:ů ܿ):1CY:k,Qv пݯڅg;+BOϏdz!;ϗϩϿ;a$6C^h<ߨ<%<7qBTfx 3=@=Qcu=^@**4O.>]tB+>.>8ġ 2DVhu :!<">?/'0KF /1/C/YL?iH*t//////J3A\eB^@)?@OM?@b?x[@???^@X???O"O4OA?\jAmlRnAO_OPOkAOO _#~A5x@_R_d_v___DOz_1r~B_ oYp.oDBOoaosoB\ooo oo o(2 Ma^uC!CC 0BTfsD؟%D-?UDg(1rُ̟cE@'>K`vEEȎAد@ 2?ZڐdFϱƿBF !F3Q>PbtφϘϥ"/G W,BGM_qGZq߶ & 0KHYp} HHj .@RdqI#+I+=S.Ie$# TUHL5D" # =h @^T(aaJB [U@L&d2?@~?P e.N Q  m>uA` _?`N  Y c$ A.Y8>uQH>tEt#bH ">U.%>R.#N-7/de!#?A. \|#&/,?\.5?IA@/B[|# 'N(#AxT`?CopyrigXt(wc)20(@9M@c@o%s @fB Ar@GAua@i @n._ Alb@ HUsfBe:@e@vx@dZ@ V4 ?)o32TUA??)77se<-#v26ZbhafYv2r|cVqQN "QQQdl5C/oAe+(dVd>lrd "!s(8r4."%S(QVouodC~w.N}" (-DT!I@[0v2rzCsc "oP%3}`wȄՏyE|?v2>E *P&ai7HD H# h @>T(]]9 MT  )AU@L&d2?@W~?P6 $LA n  JuM` ?8* M^ K*0u:Jt7 StJb)>JU5 JD-//!X#V? .B\F#k&/k,?\.?;IA /[F#Y!3/ g"Ai @@2'bH42F/ -o31/!`'; J`U!`?CopyrigTt(c)2009M0c0os0f21r0Aa0i0n. Al,@ 8s0Be@e0vB@dH$@V o4 x?)eno32TUA?2IaH@2U6TO<@2U6X7ibE9 &Xo72'0BUik&!d$0 V1ZlJQUhhf5`'1@1Kdo30C^*Va&JQ&dfl64iAc7FlUnbi:(}m (-DT!;@-0@2rdUj"Uc60eE3&m9GtZTe%|&ov+=~u @2stktbqvu@<&]ew7UHLD  Jh0TlE>M U@L&d2?@W~?JP jJ %A Q"2  .>uA` ?E_  (< _Z&?uMt>p/b ">tq bo>t6  }配>U2TmUg!?#@9 U#!"/ Aw@"b)+&> !v?(t($#>_#2( m"6 G"\"b)H;'"bu3z=&b3~8/D_V_8E"lJaUl~X'4M1!S(t!?@9j# p}j# K$(°b`0w8-DT! lq0$#qj{jr}4k (Mt6 P pp@U<r(5%8:dfl6/wkrvQ uC EW`#0!y0!yD#|ud)<$ooooQdQAuddT8 %9oeS(<@EYeCw<ȏڄؙhjsu qyoNK$ i 8_\H>+s !SFO^? F+}#UqB9Ya%@+xNaGo,ρPXgP["R`"Tuc" RUFD  h(^TYYBCUF\.?x<F BP(?P?\Xt3 D5S?>?5%6qW{qk66b6HCI6CJ6CN6!C&aS6/!C9&R6M!CW&L6k!Cu&16!C&a26!C&36!C&46!C&561C 6a661C)676=1CG6 6[1Ce6 6y1C6a 61C6 61C6 61C661C6!6ACFh9hC7F6KACUF6iACsFa6ACF6ACF6ACF6ACF!6AC Vd9dC'V6;QCEV6YQCcVa6wQCV6QCV6QCV6QCVa6QCV 6 aCf!6+aC5f"6IaCSfa#6gaCqf$60aCfȅU?of?Z0Bc@L&d2?"}3xEx#~sUkqiviҍrx  0bEB`Hub,netwopkpppri hal*pdpvcpp-Qa| xy3U5Gv\ NP?U*U---?-ppwpwwppw׆%p6ppw pwwww }σw ^?w wpwp pd_&wpwwfDrag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aabx<οL&d2??9GΑsп=t??\.r3r\.CUG D # h L^T4YYT UF\.?@x2" $9u`un `"0Yb!u`$"%؂#UQ!'1`Vis_PRXY'cPm!#5P46ޖPg da +_Pb1b1"(Ɣp2)Ӕ2*R+FR"((Rb(!SaDc"76u&`~PG1"1 0&2k@c4p5,CT@Db"5 UaAFUQS_$|lF3s͵NSYF'U;0Re>1,@UQP)epzp51S(("(AT?sR !U/!/keF/X/Ae`'e^//,U SbiPa??g TT]]9 M JU@x2zGz?@MJA@eb#z(b),+,&J[(.?& I?A$./O%B!!5 g`?CopyrigTtZ(c)Z2009ZM 0c 0os0f21r0>1a0i0n.Z AlY0 8s]2e10e 0vo0dQ0!$$-# '&%?6iie59 6X7'K0UpBŁ&!$K0 'F;JlJAh h7!1!Z@vnǣ f, <AA#  IRvVJ:'BP(?OS spBlU^TURUEUr\.G\ZY?PuPիQ,5U҄Q[pB.aYU520_BU"rA 5#cHD: # h4>T]]9 M JU@1&d2?@Vj?@҄BP(P6 ]AJuM` ?ju#t  k]It=W(\ZIRUIl">2zGzw?@MJAw@eb #zb](b%)2+)2&J[/.w?& ?A$T4/U%B!!5 g`?CopyrigTt (c)020%090M0c0os 0f21r 0D1a0i 0n.0 Al_0 8sc2e70e0vu0dW0!$-# e'& ?6iie59 6X7{'0UŇ&!$0R -FAJlJ8>UhAA 11!T2 $S<cV{ WR~VJd2L&?@ubX,X ]S fR#mS [ÐڱQE^Fh4__ K&oeX5:f'l6 XYePY?ۭsHMQ5aZjoohY}aUVeEVx_;"rA #dsHD: # h4>T]]9 M JU@҄BP(?@h4FtP6 >JuM` ?uJt  kU]It=W{GzتIRIl#>2mzw?3@MJAw@eb #zb( (2+T2&J[ (p"?0& ?A$ 4/U%BB!!5 g`?CopyrigTt (c])020%090uM0c0os 0If21r 0D1a0i 0n.0 WAl_0 8sc2Ue70e0vu0dW0!$-# '&?6iieP59 6X7{3'0]UŇ&!$0 -FAJlJ8>Uh@ 11!Z@o?.rɩ  ~<uhB] WRVJ@ ?@bȩ ]S 9Q#hY?))QE^jZ__ CaX5a9XY@ePXRmScRU5:]mx_PU"rA k#dsHD:@ # h4>T]]9 MTJU@aܹ?@&cM?@5?@$D"?P6 v >JuM` ?qu#t  @@|It=Wn5_6uIRFIlI#>2zGzK? HJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A/.7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6#)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ# $<Ef4B 9b`fJ x۰Z @]0?c Q#Oc Q\}ȱ~aE:Õ)0:iG`iw*h<5a#j8oJiqze~EA#o>"]rA #sHD:@ # h4>T]]9 MTJU@ (?@hZ?@>TC?@ݿJWc^?P6 v >JuM` ?)uJt  It=WX IR?8IlRv\#>2zGz? HJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A(.?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!ZA!Z!?v"rA # sHD:@ # h4>T]]9 MTJU@?!Qw?@k?@BZ?@ib+iF?P6 v >JuM` ?qu#t  1It=W_OIRUo}WIlTy6ވI#>2zGzK? HJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A/.7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6#)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ# $<Ef4B 9b`fJ:O@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij? mh~EA#o>"rA k#sHD:@ # h4>T]]9 MTJU@P4K?@l?@u'?@ݿJWc^?P6 v >JuM` ?)uJt  {d5Z\It=W2;wEIRkzIlRv\#>2zGz? HJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A(.?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+Z lJ]UhzЎ!A!Z!?&sA#<# $BK jfJ 'j `00>oPaYc l]]beE:Ͷc0TbCcba`iK8K8h<5eg۰Zk(qQlqe~Ee@||`ai !hA'o>v"rA # sHD:@ # h4>T]]9 MTJU@#zUv?@f s9?@ә!?@8laxy?P6 v >JuM` ?)uJt  V"(It=W7:LIRE! YBIl p#>2zGz? HJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A(.?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!A!19b $<# $B 9b`fJ: muۘ]0:mOc ?i'A~aEesDͅ?c ? V#NeFaze<5e@|lVaiU3Lh`~EA#o>"rA #sHD:@ # h4>T]]9 MTJU@"z>?@^i2VS?@ˋ>WB?@=E?P6 v>JuM` ?)uJt  7It=WܯHIRݮIl$dvĤ#>2zGz?(3 HJsAeb #z (#+#+#&*Jp!p!5 g`?CopyrigTt (c) 2U0 9 M c os f"!rԙ !a i n}. Al U (s"e e 5v0d i!Em$}! (K2?b6 ?ALb4($I3/ 4/U%b-|# |'Yb6?Fiie<59 FjX/G3_'0UBb6Z!}40 aFuJlJ8>UhAA Ў!1!Z}'[- E|zo}#<b$,] VJ:@8Qw0RS S IBf>QE !?@\BU--# i[F @ h<53n:CU9fKo]o ڵ h5a9YUU aUUwiǤ]Q işeq5 h2r_U"rA 5#sHD:@ # h8>T ]]9 MTJU@IKY?@#v\?@(w)٫?@Q`m ^?P6 >JuM`lW? SuJt  o|MtA[_"oRMVYBMpry2VI'>\??\.?lFA8 J2llf?3 HRJB& @i7b#zv t# b( (+&B(ݙ" ?APb)4(z$CD3//&*115 k`?CopyrigTtk(wc)k2009kM0c0o%s0f21r01ua0i0n.k_ Al @ 8UsBe0e0v @ d@1H4-,3 7%bO&&i Ab~59 &&XG3'K0U!R&!4K0 FJlJI  ( sQsQ] 1heA Zl0|z3 0 @?/n' QE bR;bJ:]~^PsojRփUaE !?@q`0 0,c s!R'i e:}ɟh~5aef9oa|b c gT]]9 MTJU@5^?@hP?@5?@$D"?P6 rAJuM` ? qu#t  .9BWyIt=Wn_q8IRFIlI#>2zGzK? HJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A/.7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6#>F O @ie<59 FXG'0U`Rb6!}40 V+ZlJQI0h|G!A !1C# $I<EfB C`fJ x۰Z @]0?c Q#Oc Q\G}ֱ~aE:Õ)0:iG`iw*h<5a#j8oJiqze~EA#o>"rA #sHD:@ # h4>T]]9 MTJU@H?@6͍~>TC?@JWc^?P6 >JuM` ?juJt  HIt=WByIR?8Il?Rv\#>2zGz?) HJsAeb #zbU(#+#+#&Jp!p!5 g`?CopyrigTt (c) W20 9 M ]c os f"R!r !a i n. AUl (s"e e v0d @i!Em$+A(.?b6 ?AgJaT6` F !!l"zbAR +6ig5V181 ?2?;:C?'$4/U%G|# |'b6L3FL ie<59 FXG'K0U`Rb6!}4K0 V+ZlJQI0h|G!A!Z!?"]rA #sHD:@ # h4>T]]9 MTJU@Sw?@K?@BZ?@ib+iF?P6 v>JuM` ?qu#t  fd>It=WN6sgHRUo}WIlTy6ވ#>2zGz? HJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A/.?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼#FO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!A!1lL# $<EfB 9b`fJ:'@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij mh~EA#o>"rA 5#sHD:@ # h4>T]]9 MTJU@t)H׾?@Ȑ?@u'?@ݿJWc^?P6 v>JuM` ?)uJt  ُuߓIt=Wί IRkzIlRv\#>2zGz? HJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigT}tt(c)tW20 9tM ]c os f"R!r !a i n.t AUl (s"e e v0d @i!Em$+A(.?b6 ?AgJaT6` F !!l"zbAR +6ig5V181 ?2?;:C?'$4/U%G|# |'b6L3FO ie<59 FXG'K0U`Rb6!}4K0 V+ZlJ]Uhz!A!Z!刭?&sA#<# $B jfJ 'j `00>oPaYc l]]aE:Ͷ10TbCcba`iK8K8h<5eg۰Zk(qQlqe~Ee@||`ai !hA'o>"rA #sHD:@ # h4>T]]9 MTJU@?^oO?@^?@ә!?@8laxy?P6 v>JuM` ?)uJt  L+It=WݑHIRE! YBIl p#>2zGz? HJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A(.?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!A!19b $<# $B 9b`fJ: muۘ]0:mOc ?i'A~aEesDͅ?c ? V#NeFaze<5e@|lVaiU3Lh`~EA#o>"rA #sHD:@ # h4>T]]9 MTJU@tr,?@Uw?@ˋ>WB?@=E?P6 v>JuM` ?)uJt  6j>It=WNFFIRݮIl$dvĤ#>2zGz?3 HAeb& #z *(#+#+#&UJp!p!5 g`?CopyrigTt (c) 20 9 M c. os f"!r !a i n. Al (s"e ej v0d  i!Em$}! (K2?b6 ?ALb4($3/ 4/U%ę-|# |'b6?Fiie<59 FX/G3'0UBŴb6!}40 TaFuJlJ8>UhAA !1!Z}'- E|zo}v#<b$,] VJ:@8Qw0RS S IBf>QE !?@\BU--# i[F @ h<53n:CU9fKo]o ڵ h5a9YUU aUUwiǤ]Q işeq5 h2r_U"rA 5#sHD:@ # h8>T ]]9 MTJU@^5=~?@,=Vݼ?@(w)٫?@Q`m ^?P6 > uM`lW? SuJt  ?aV_MtA[_=p'MVYBMpry2VI'>\??\.?lFA8 J2llf?3 HRJB& @i7b#zv t#]b( J(+&B(" ?APb)4(z$!D3//&115 k`?CopyrigTtk(c)k2009kM0c0os0f21r01a0i0n.k Al @ 8sBe0e0v @d@1$4-3 7bO&&i b~59 &&XG3'0U!R&!40 FJlJ $  (sQsQ] 1eA!Zl0|z 0 @?n' Q b7fJ:]~^PsojR֯UaE !?@q?`0 0c s!R'i ?e:}ɟh~5aef9oa|b c ؠgT]]9 MTJU@?έ?@=?@5?@$D"?P6 v>JuM` ?qu#t  &lIt=WA_I߃IRFIlI#>2zGzK? HJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A/.7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6#)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ# $<Ef4B 9b`fJ x۰Z @]0?c Q#Oc Q\}ȱ~aE:Õ)0:iG`iw*h<5a#j8oJiqze~EA#o>"]rA #sHD:@ # h4>T]]9 MTJU@Iq?@q֌?@>TC?@ݿJWc^?P6 rhAJuM` ?)uJt  0@hIt=WmiIR?8IlRv\#>2zGz? HJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A(.?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LhFO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!ZA!Z!?v"rA # sHD:@ # h4>T]]9 MTJU@ڮ?@7 ?@BZ?@ib+iF?P6 v>JuM` ?qu#t  JJ&qIt=Wr_hIRUo}WIlTy6ވI#>2zGzK? HJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A/.7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6#)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ# $<Ef4B 9b`fJ:O@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij? mh~EA#o>"rA k#sHD:@ # h4>T]]9 MTJU@=9_?@o(Ѿ?@u'?@ݿJWc^?P6 v>JuM` ?qut  V6>nIt=WgD_~baIRkzIlRv\I#>2zGzK? HJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A(.7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6B>F O @ie<59 FXG'0U`Rb6!}40 V+ZlJ]Uhz!hA!Z![?&sA#<# $B %jfJ 'j `00>oPaYc l]]|eE:Ͷ10TbCcba`iK8K8h<5eg۰Zk(qQlqe~Ee@||`ai !hA'o>"rA #sHD:@ # h4>T]]9 MTJU@BP(?@xQ8?@ә!?@8laxy?P6 v>JuM` ?)uJt  9KIt=WYGJIRE! YBIl p#>2zGz? HJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A(.?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXGB'0U`Rb6!}40 V+ZlJQI0h|G!A !19b$<# $BM 9b`fJ: muۘ]ᇄ0:mOc i'A~aEesD?c  V#NeFaze<5e@|lVaiU?3Lh~EA#o>"rA k#sHD:@ # h4>T]]9 MTJU@W?@M6N?@ˋ>WB?@=E?P6 rlAJuM` ?)uJt  1|It=WƯ:IRݮIl$dvĤ#>2zGz?(3 HJsAeb #z (#+#+#&*Jp!p!5 g`?CopyrigTt (c) 2U0 9 M c os f"!rԙ !a i n}. Al U (s"e e 5v0d i!Em$}! (K2?b6 ?ALb4($I3/ 4/U%b-|# |'Yb6?Fiie<59 FjX/G3_'0UBb6Z!}40 aFuJlJ8>UhAA Ў!1!Z}'[- E|zo}#;<b$k] VJ:@8Qw0RS S IBf>QE !?@\BU--| i[F @ h<53n:CU9fKo]o ڵ h5a9YUU aUUwi]Q ieq'5 h2r_Uv"rA # sHD:@ # h8>T ]]9 MTJU@&J?@_5+:?@(w)٫?@Q`m ^?P6 >JuM`lW? SuJt  y SksMtA[_eMVYBMpry2VI'>\??\.?lFA8 J2llf?3 HRJB& @i7b#zv t#]b( J(+&B(" ?APb)4(z$!D3//&115 k`?CopyrigTtk(c)k2009kM0c0os0f21r01a0i0n.k Al @ 8sBe0e0v @d@1$4-3 7bO&&i b~59 &&XG3'0U!R&!40 FJlJ $  (sQsQ] 1eA!Zl0|z 0 @?n' Q b7fJ:]~^PsojR֯UaE !?@q?`0 0c s!R'i ?e:}ɟh~5aef9oa|b c ؠgT]]9 MTJU@B?@-8?@5?@$D"?P6 v>JuM` ?qu#t  4E$p͡It=W_Lx4IRFIlI#>2zGzK? HJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A/.7?b6 ?AgJaT6` F !!l"zbAJ +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼#FO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!A!1lL# $<EfB 9b`fJ x۰Z @]0?c Q菌#Oc Q\}ֱ~aE:ÕO)0:iG`iw*h<5a#j8oJiqze~EA#o>"rA #sHD:@ # h4>T]]9 MTJU@*ӏ?@c?@>TC?@ݿJWc^?P6 v>JuM` ?)uJt  uIt=Wt]aIR?8IlRv\#>2zGz? HJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A(.?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!ZA!Z!?v"rA # sHD:@ # h4>T]]9 MTJU@"?@ "S/?@BZ?@ib+iF?P6 v >JuM`?qu#t  B?ͳIt=WF_p\cIRUo}WIlTy6ވI#>2zGzK? HJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A/.7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6#( DO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ# $<Ef4B 9b`fJ:O@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij? mh~EA#o>"rA k#sHD:@ # h4>T]]9 MTJU@d?@ 3\D?@u'異JWc^?P6 !>JuM` ?juJt  rs"It=WVIRkzIl?Rv\#>2zGz?) HJsAeb #zbU(#+#+#&Jp!p!5 g`?Copy_rigTtZ(c)Z2U0 9ZM c os f"!rԙ !a i n}.Z Al T[&s"e e 5v0d i!Em$+A(.a?b6 ?AgJaT6` F !!l"z}bA +6ig5V*181 ?2?;#:C?'4/U%G|# |'b6LLFO ie<59 FXG'0U`Rb610 V+ZlJ]Uhz!A!Z!?&osA#<# $B jfJ 'j `00>oPaYc l]]#aE:Ͷ0TbCcba`iK8K8h<5eg۰Zk(qQlqe~Ee@?||`ai !hA'o>"rA #sHD:@ # h4>T]]9 MTJU@69 Ğ?@l_n.?@ә!?@8laxy?P6 v">JuM` ?)uJt  sd It=W> IRE! YBIl p#>2zGz? HJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A(.?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!A!19b $<# $B 9b`fJ: muۘ]0:mOc ?i'A~aEesDͅ?c ? V#NeFaze<5e@|lVaiU3Lh`~EA#o>"rA #sHD:@ # h4>T]]9 MTJU@#&\?@ԋZ|?@ˋ>WB?@=E?P6 v#>JuM` ?)uJt  [It=Wq.IRݮIl$dvĤ#>2zGz?(3 HJsAeb #z (#+#+#&*Jp!p!5 g`?CopyrigTt (c) 2U0 9 M c os f"!rԙ !a i n}. Al U (s"e e 5v0d i!Em$}! (K2?b6 ?ALb4($I3/ 4/U%b-|# |'Yb6?Fiie<59 FjX/G3_'0UBb6Z!}40 aFuJlJ8>UhAA Ў!1!Z}'[- E|zo}#<b$,] VJ:@8Qw0RS S IBf>QE !?@\BU--# i[F @ h<53n:CU9fKo]o ڵ h5a9YUU aUUwiǤ]Q işeq5 h2r_U"rA 5#sHD:@ # h8>T ]]9 MTJU@\W>?@47 ?@(w)٫?@Q`m ^?P6 $>JuM`lW? SuJt  /êQPͰMtA[_Y#MVYBMpry2VI'>\??\.?lFA8 J2llf?3 HRJB& @i7b#zv t#]b( J(+&B(" ?APb)4(z$!D3//&115 k`?CopyrigTtk(c)k2009kM0c0os0f21r01a0i0n.k Al @ 8sBe0e0v @d@1$4-3 7bO&&i b~59 &&XG3'0U!R&!40 FJlJ $  (sQsQ] 1eA!Zl0|z 0 @?n' Q b7fJ:]~^PsojR֯UaE !?@q?`0 0c s!R'i ?e:}ɟh~5aef9oa|b c ؠgTh]]9 M JU@xJuM` ?Uu Jb[LgJt b{tM>2zGz?)77Os@MJA@b7sz}"b)+,& !5Jp"( ?& N"A"b)+ 'b##b#(J,J/B-  Q3M#9 \/??\.?!?f=Q1Q1Y7;m`?CopyrigTt (c)3@2`093@M+@c)@oKs#@f1B"Ar%@^Aa1@i#@n.3@ Aly@ )Hs}BeQ@e)@v@dq@O0i bz59 m6m?7/'0URś65a FTR#l:J Uh(] nQnQ]FQ AB1!:'BP(Ա?a sRYqJSv?@bX,, iYwla)q )\()4eEDnFh4\ono ?p= ףЈhz5Ufl6a \uiHшhnVgj tj(a(4eU҄Q kR!l8aQY@h4GF[|0aui{hFT]1rto(yQiC@ ?@-uUaȳl1rlb\߈hQ:WpZƟ ܈hU_oo)lHD:@ # h4>T]]9 MTJU@D//?@w 8?@5?@$D"?P6 v1>JuM` ?qu#t  z7It=W_iIRFIlI#>2zGzK? HJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A/.7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6#)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ# $<Ef4B 9b`fJ x۰Z @]0?c Q#Oc Q\}ȱ~aE:Õ)0:iG`iw*h<5a#j8oJiqze~EA#o>"]rA #sHD:@ # h4>T]]9 MTJU@qK?@>,Λ?@>TC?@ݿJWc^?P6 v2>JuM` ?)uJt  jDFIt=W-M3}IR?8IlRv\#>2zGz? HJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A(.?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 0??8:C?'4/U%GX|# |'b6LLBBO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!ZA!Z!?v"rA # sHD:@ # h4>T]]9 MTJU@QL ?@L+?@BZ?@ib+iF?P6 v3>JuM` ?qu#t  Ç\UIt=W_ @ٶIRUo}WIlTy6ވI#>2zGzK? HJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A/.7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6#)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ# $<Ef4B 9b`fJ:O@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij? mh~EA#o>"rA k#sHD:@ # h4>T]]9 MTJU@#li[?@e>?@u'?@ݿJWc^?P6 a?JuM` ?uJt  ICIt=WN3אsIRk_zIlRv\#>2zGz?R HJAeb #zb(#+#+T#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A(. ?b6 ?AgJamT6G` F !!l"zbA +6iTg5V181 ?2?;:C?'I4/U%G,|# |'b6&La`B O @ie<59 FXG'0U`Rb6!}40 V+ZlJ]Uhz!hA!Z![?&sA#<# $` %jfJ 'j `00>oPaYc l]]aE:Ͷc0TbCcba`iK8K8h<5eg۰Zk(qQlqe~Ee@||`ai !hA'o>v"rA # sHD:@ # h4>T]]9 MTJU@ 3?@8.G?@ә!?@8laxy?P6 v5>JuM` ?)uJt  ͧILIt=Wf IRE! YBIl p#>2zGz? HJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A(.?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!A!19b $<# $B 9b`fJ: muۘ]0:mOc ?i'A~aEesDͅ?c ? V#NeFaze<5e@|lVaiU3Lh`~EA#o>"rA #sHD:@ # h4>T]]9 MTJU@'HY?@pN?@ˋ>WB?@=E?P6 v6>JuM` ?)uJt  PrIt=WoDIRݮIl$dvĤ#>2zGz?(3 HJsAeb #z (#+#+#&*Jp!p!5 g`?CopyrigTt (c) 2U0 9 M c os f"!rԙ !a i n}. Al U (s"e e 5v0d i!Em$}! (K2?b6 ?ALb4($I3/ 4/U%b-|# |'Yb6?Fiie<59 FjX/G3_'0UBb6Z!}40 aFuJlJ8>UhAA Ў!1!Z}'[- E|zo}#<b$,] VJ:@8Qw0RS S IBf>QE !?@\BU--# i[F @ h<53n:CU9fKo]o ڵ h5a9YUU aUUwiǤ]Q işeq5 h2r_U"rA 5#sHD:@ # h8>T ]]9 MTJU@mڷ?@WZgL?@(w)٫?@Q`m ^?P6 7>JuM`lW? SuJt  NKMtA[X_*`lMVYBMpry2VI'>\??\.?lFA8 J2llf?3 HRJB& @i7b#zv t#]b( J(+&B(" ?APb)4(z$!D3//&115 k`?CopyrigTtk(c)k2009kM0c0os0f21r01a0i0n.k Al @ 8sBe0e0v @d@1$4-3 7bO&&i b~59 &&XG3'0U!R&!40 FJlJ $  (sQsQ] 1eA!Zl0|z 0 @?n' Q b7fJ:]~^PsojR֯UaE !?@q?`0 0c s!R'i ?e:}ɟh~5aef9oa|b c ؠgTh]]9 MTIAU@?@|be?@X͂?@SSfhr~?Pps-8R?>$9> n JuM{` ?e ;  Su*Jt'  $mCLmta{x_&3.Jv  q?D=:%z?v(A[|Jq>JU2N贁N[?@M#J&A@bI(bUW)U+U+U&*Jy#?!lJ ?%P?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>UhETh]]9 MTIAU@?@2R} ?@X͂?@SSfhr~?Pps-8R?>$:> n JuM{` ?e ;  Su*Jt'  H-mta{_mLL}3.Jv  q?D=:%z?v(A[|Jq>JU2N贁N[?@M#J&A@bI(bUW)U+U+U&Jy#?!lJ ?%P?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>UhETh]]9 MTIAU@B?@ K?@X͂?@SSfhr~?Pps-8R?>$;> n JuM{` ?e ;  Su*Jt'  m@mta{ɀ_13.Jv  q?D=:%z?v(A[|Jq>JU2N贁N[?@M#J&A@bI(bUW)U+U+U&*Jy#?!lJ ?%P?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>UhETh]]9 MTIAU@Zԩ?@j4ʼn?@X͂?@SSfhr~?Pps-8R?>$<> n JuM{` ?e ;  Su*Jt'  }$~mta{_M {3.Jv  q?D=:%z?v(A[|Jq>JU2N贁N[?@M#J&A@bI(bUW)U+U+U&*Jy#?!lJ ?%P?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>UhETh]]9 MTIAU@h!I?@u\?@X͂?@SSfhr~?Pps-8R?>$=> n JuM{` ?e ;  Su*Jt'  XƿHmta{"_}{3.Jv  q?D=:%z?v(A[|Jq>JU2N贁N[?@M#J&A@bI(bUW)U+U+U&Jy#?!lJ ?%P?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>UhETh]]9 MTIAU@?@d\0?@X͂?@SSfhr~?Pps-8R?>$>> n JuM{` ?e ;  Su*Jt'  H-mta{pu_3.Jv  q?D=:%z?v(A[|Jq>JU2N贁N[?@M#J&A@bI(bUW)U+U+U&Jy#?!lJ ?%P?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>UhETh]]9 MTIAU@sLGv?@m\?@X͂?@SSfhr~?Pps-8R?>$R>  JuM` ? ;  )u*Jt'  [Rwmta{ēd3.Jv  q?D=:%_z?v(A[|?Jq>JU2N?贁N[?)@M#J&A@wbI(bW)U+U+U&Jy#0?!J ?%P?tAO"d+bW+$u/%B#BA1A15 `?Cop rigTt (c)x0]2`09x0Mp0]cn0osh0fv2Rg1rj01av0ih0Wn.x0 l0U n8s2e0en05v0d0:1PY>4#-#,M3 M7#(p0b59 DFXGdG'/2WUA;F%!$a dF$&#l,&}>UhEuwγ u~w;'bAUSSr`?CopyrigPt (cu) 2\09 uMcoszIfyr|aizn. WAlЀ sԂUeevdȀ;LSPDB-M_ M_?[D =M`DrMM ID1+0UǒM"C $cPc X(.'ƔM$!I] Ue*^Y30DXl ! !dH!\!p!!!!!!!!1$1%&'*()11pD113Ac M?  F4 K &E& 4&4&U R&R&u` W?I$0BN`l~$I/( /2(>/2P(\/n$uz)tw!  IQEtABOJ-EG14%F4GaO ۃ ZUAA/B`?CopyrigPt (c)@2\0 M@c@os@fBAr@Aa@i@n.@ AlP HsRe@e@v&PdPA{BCSDCB-CC "G{$FCTVV RD#C05UbS@qF@ ^PU $fXhW.Dg'dōV%!T] DfXje H^maPaYqT  2qa8wEJtU{BUJtU{3Jt!U{UJtU{JtR!U{|JtU{&qFx&U{tSHvDU{.qFxbU{2qFxU{6uJtUwHD:B # h0>Th]]9 MTIAU@?@&*y>{?@X͂?@SSfhr~?Pps-8R?>$A n JuM{` ?e ;  Su*Jt'  $mCLmta{_n3.Jv  q?D=:%z?v(A[|Jq>JU2N贁N[?@M#J&A@bI(bUW)U+U+U&*Jy#?!lJ ?%P?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>UhET]]9 M JU@xJuM` ?uJt ASt=WJRb~li>t2U?=@MJA@b + &J[N#?0a& ?AT)B!!5 g`?CopyrigTtZ(c)Z20 9ZM c. os f"!r 1ai n.Z Al90 (s=2e0ej vO0d10@!$b-# 'Ya&?6iiek59 6jX7^'0a&Z!|$0 FJlJ UhqMAA ]A !4Ja-'Z@?h4FӃ  <{Gz#A OR|VJ:6]].rM__Z)\("UEC@ ?@-bȃ S 1 `#`YR\Xk5^jZso!o ̌aX5U'BOP(?gks#dT[RUUSv?@n aX,flYwq%lSXn?Fh4  p= ףXAYfl6\`YHzmPXAV``ʼ_Z(QYAY҄agklQbE26_HU"rA HD:B # h0>Th]]9 MTIAU@B?@Dd;]?@X͂?@SSfhr~?Pps-8R?>$F> n JuM{` ?e ;  Su*Jt'  m@mta{_dA3.Jv  q?D=:%z?v(A[|Jq>JU2N贁N[?@M#J&A@bI(bUW)U+U+U&*Jy#?!lJ ?%P?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>UhET]]9 MTJU@F6&?@}%4+ޱ?@5?@$D"?P6 rAJuM` ?qu#t  (LbIt=W_,MyIRFIlI#>2zGzK? HJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A/.7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6#(BO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ# $<Ef4 9b`fJ x۰Z @]0?c Q#Oc Q\}|zeE:ÕO)0:iG`iw*h<5a#j8oJiqze~EA#o>"rA #sHD:@ # h4>T]]9 MTJU@)?@Uj?@>TC?@ݿJWc^?P6 vI>JuM` ?)uJt  6|.It=WL\} IR?8IlRv\#>2zGz? HJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A(.?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!ZA!Z!?v"rA # sHD:@ # h4>T]]9 MTJU@#{5?@ř?@BZ?@ib+iF?P6 vJ>JuM` ?qu#t  DqIt=W_{*IRUo}WIlTy6ވI#>2zGzK? HJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A/.7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6#)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ# $<Ef4B 9b`fJ:O@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij? mh~EA#o>"rA k#sHD:B # h0>Th]]9 MTIAU@Zԩ?@6#TTĶ?@X͂?@SSfhr~?Pps-8R?>$K> n JuM{` ?e ;  Su*Jt'  }$~mta{=g2.Jv  q?D=:%_z?v(A[|Jq>JU2N贁N[R?@M#J&A@bI(b*W)U+U+U&Jy#c?!J ?%P?AO"d+bRW+$u/%B#A1A15 `?Cop rigTt (c)x02`09x0Mp0cn0osh0fv2g1rj01av0ih0n.x0 l0 n8s2e0ejn0v0d0:1Y>4#-X#M3 M7#(p0b59 DFXGdG_'2WUA;FJ!$a dFD$&#l,&}>UhET ]]9 MTJU@fl6?@eb,)?@(w)٫?@Q`m ^?P6 L>JuM`lW? SuJt  LUMtA[_ʓWMVYBMpry2VI'>\??\.?lFA8 J2llf?3 HRJB& @i7b#zv t#]b( J(+&B(" ?APb)4(z$!D3//&115 k`?CopyrigTtk(c)k2009kM0c0os0f21r01a0i0n.k Al @ 8sBe0e0v @d@1$4-3 7bO&&i b~59 &&XG3'0U!R&!40 FJlJ $  (sQsQ] 1eA!Zl0|z 0 @?n' Q b7fJ:]~^PsojR֯UaE !?@q?`0 0c s!R'i ?e:}ɟh~5aef9oa|b c ؠgT]]9 MTJU@S?@ަƢ?@u'?@ݿJWc^?P6 vN>JuM` ?)uJt  cIt=W(?IRkzIlRv\#>2zGz? HJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A(.?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+Z lJ]UhzЎ!A!Z!?&sA#<# $BK jfJ 'j `00>oPaYc l?]]aE:Ͷǝ0TbCcba`iK8K8h<5eg۰Zk(qQlqe~Ee@||`ai !hA'o>"rA #sHD:B # h0>Th]]9 MTIAU@h!I?@Ž?@X͂?@SSfhr~?Pps-8R?>$P> n JuM{` ?e ;  Su*Jt'  XƿHmta{0_Y3.Jv  q?D=:%z?v(A[|Jq>JU2N贁N[?@M#J&A@bI(bUW)U+U+U&Jy#?!,J ?%?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>UhET]]9 MTJU@ةA!z?@B]?@ˋ>WB?@=E?P6 vR>JuM` ?)uJt  wT vIt=W?mIRݮIl$dvĤ#>2zGz?(3 HJsAeb #z (#+#+#&*Jp!p!5 g`?CopyrigTtt(wc)t20 9tM c o%s f"!r !ua i n.t_ Al (Us"e e v0 d i!Em$}! (K2?0b6 ?ALcb4($3/ 4/U%-X|# |'b6?Fiie<59 FX/G3'0UBb6!}40 aFuJl*J8>UhAA !1!Z}'- E|zo}#.<b$]K VJ:@8Qw0RS S IBf>QE !?@\BU--# i[F @ h<53n:CU9fKo]o ڵ h5a9YUU aUUwi]Q ieq'5 h2r_Uv"rA # sHD:@ # h4>T]]9 MTJU@?@zų[?@ә!?@8laxy?P6 vS>JuM` ?)uJt  {It=W ůIRE! YBIl p#>2zGz? HJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A(.?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!A!19b $<# $B 9b`fJ: muۘ]0:mOc ?i'A~aEesDͅ?c ? V#NeFaze<5e@|lVaiU3Lh`~EA#o>"rA #sHD:B # h0>Th]]9 MTIAU@sLGv?@c?@X͂?@SSfhr~?Pps-8R?>$U> n JuM{` ?e ;  Su*Jt'  [Rw͖mta{ۡ_TL3.Jv  q?D=:%z?~v(A[|Jq>JU2N贁N[R?@M#J&A@bI(b*W)U+U+U&ՆJy#a?!J ?%P?AO"d+bRW+$u/%B#A1A15 `?Cop rigTt (c)x02`09x0Mp0cn0osh0fv2g1rj01av0ih0n.x0 l0 n8s2e0ejn0v0d0:1Y>4#-X#M3 M7#(p0b59 DFXGdG_'2WUA;FJ!$a dFD$&#l,&}>UhE9_%O+s u8+DOʅVF8g"I#"5>B U?s~d *o@+%oKsGh">fp%Or%!\u%<%L8w%(hy%',{%/}%X3@?7B?:D?<>F?'BH?EJ?mI(M?L$XO?P~6AENTHCEW}EE[ (HEb_}JE cLEfNEPjUmUuqXU\u'UxU|HU0U6X UH"U#'$v //?#?5?G?Y?k?}???&U (U*U?(-Uȝ/UU#U1O0xUhNIU;NJUNI߰#NI#J#QB#Y.Oh#RJ-O6H#QFȽ#p0$%xNE?_"2$@}#'4$6$C9$ݺE;ϡ$*O9=$%_|PU_"$D)$6)o"$=C*bUFD  h(^TYYBXCUF~?x<F BP(?P?  B+66 J] 6qa{6a!6ah9ha6a6!a&`8%!a/&6C!aM&6a!ak&6!a&`d9da&6!a&6!a&6!a6a61a6631a=66Q1a[66o1ay6a 61a6!61a6"61a6#61a6a$6AaF%6#Aa-F&6AAaKF'6_AaiF`]9]aF)6AaF*6AaF+6AaFa,6AaF-6QaV.61Qa;V/6OQaYVa06mQawV16QaV26QaV36QaVa46QaV56aa f66!aa+f86?aaIfa96]aagf:6{aaf;6aaf<6aafa=6aaf>6aaf9av@6/qa9vaA6MqaWvB6kqauvC6qav9av!E6qav9avG6a H6a)aI6=aGJ6[aeK6yaL6aaM6aN6Ӂa݆O6a9aQ06-a7R6K aUS6iasT6aU06aV6Ñ a͖W6aX6a Y06a'Z6; aE[6Yac\6wa]06a^6 a_6ѡaۦ`6aa06 ac6+ a5d6IaSe6gaqf06ag6aQ9Qa˶i6߱aj06ak6 a%l69aCm6Waan06uao6 ap6aq6ar06as6 at6)a3u6GaQv06eaow6 ax6ay6az06a{6 a|6a#}67aA~06Ua_6s a}6a6a06a6 a6 a6'a106EaO6c am6a6a06a6 a6a6a!065a?6S a]6qa{ra0rar arara0r%a/rC MraQkrQ0rQr QrQrQ&0r!Q&r3! Q=&rQ!Q[&ro!Qy&0r!Q&r! Q&r!Q&r!Q&0r1Q6r#1 Q-6rA1QK6r_1Qi60r}1Q6r1 Q6r1Q6r1Q60r1Q6rA QFr1AQ;FrOAQYF0rmAQwFrA QFrAQFrAQFrAQFJȖ SUqJ?_,V S=V Q'  T UrQS S@L&ɯd2?]ɓX?\.ҥX^ sUQV T_\ UJ%Q xS T -b@Y T`&P t>h,aeL,dbtok^`eupjet^`h r\wbgQgQ*QJ_i( RU SJWS> 0V]!? ?wwww{np0wzZp~uwpwwppw^w|{pdp^ZDrag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aab~߿~??)j࿔S5E?0FJ?nɶؿ3@ ?DHD: # h4>T]]9 MTJUF~?F͓??FtQ+/?P6 AmJuM` ?uJt At=Wrb#JRbJli:O#>[a? ?AbAw@"b $J2zGz?)@MJ7& #fbu#z$ ( (&,"*BB!!5 g`?CopyrigT}tZ(c)ZW2009ZM 0]c 0os0f2R1r0>1a0i0n.Z AUlY0 8s]2e10e 0vo0dQ0!$ę-# '?6iie59 6X7}'0UpBi!0 'F;JlJAh7!1!ZFTE <EgQ# IRSvVJ:M&d2?6VOSe\^TUR UEU@SG\BZ_ɫQ5[@_,cYU520_BU"rA #cHD: # h4>T]]9 MTJUFM&d2?FDx??Fl5?P6 AmJuM` ?uJt\  ]It=WIW$IRIl ڜI#>[ ? ?Ab A@"b$J2zGz?R=@MJ`=&#f {#z .(b)&,"*BB!!5 g`?CopyrigTt (c])020%090uM0c0os 0If21r 0D1a0i 0n.0 WAl_0 8sc2Ue70e0vu0dW0!$-# '?6iieP59 6X7F"'0UvB!0 -FAJlJ $L!(AA ]A1h1!ZFhmg  <!q}"##M _RVJL!%t?FTE\QeS , φ+#pYYSUKQUE^,n__ "+^HX5:?LV&k?SN#tTkRU5Ulf܄BP(%lgpY?BeO#X(dec]\m\cX ~.K$oZhLYUiXQaIZ^_i3qU32F_XU"rA 5#HD: # h#4>T#3 AMJUFbX?FϏ ?FM&d2?F _gw?P6 #AJuM` ?uJt  k]It=~W.*IRIl̆Rkפ#>[a? ?AbAw@"b$J2zGz?)@MJ=&#fb{#z\ (b)&T,"*B!!5 g`?CopyrigTt (c)020%090M0c0os 0f21r 0D1a0i 0n.0 Al_0 8sc2e70e0vu0dW0!$$-# '%?6iie59 6X7'K0UvB!K0 -FAJlJAh711T?ҿP mVN  Q  . *>uA` ?Gm$m8JuQ\>XbK>tY  wetVy 5Ie>U2zGz?@9 /#>?&Aw@bq(Wb)+&b" !p$4>9#"?& "w"b)";|'b"i,b"/N9#0%B 9#11;8"`?CopyrigXt (wc)020090M0c0o%s0f21r0Aua0i0n.0_ Al/@ 8Us3Be@e0vE@d'@'"i fE 6(X7H!'_2q@&,d50 tFJul>4Ul8QQCaR 1(Q1w!-(N!R?FJ?@ `0R QyUeR /ge%$(U⤖侇_X?,_XN Uωr?F r?FOtO?P"ZO %o1~Y.$!$iA4Y!eX]?C!ebRҡe:S |we"d  1X461Boo wr$5%>aEJe_~?F.ԵN?FaV-u"ؾ?PWRrR~|`%s mK)m >'ʲl} fdjg tsC uL+t-VwfxQUv`q7&ҹ _XRQb%d2[i֥TWVQFd50_#jS aUTf imp#jpm0"XY֘t?FTEY`Qj;!lЙXbQ?,n$ xXfQYJhbPnZ\>]!h"bXjQV6W_QUnU_o_)oTQaRp v__N-aZ?Fah<b}煔M_Ophz y7vPQP]BP({ύ 贁NPE 0BXЕHD: # h4>T]]9 MTJUF~?FS BP??Fx<?P6 #AmJuM` ?uJt At=W5_v@"J]RbJl>t2U.?=@MJA@+b)+&J[P'?g& ?A)*B!!5 g`?CopyrigTtZ(wc)Z2009ZM c o%s f"!r $1uai n.Z_ Al?0 (UsC2e0e vU0 d70!H$-,# 'g&K?6i@ieq59 6X7'K0g&!$K0 F!JlJ\#Uh( #3 ]At!"3'ZF>h f <YDc#BA NR{VJ:5]dGL_^Zh?.2\QE]t?FgPg܉ S )?w#_YXq5^(l]o o e]ǂX5U%?D"?;Vfk(\#cTZRUUM\_Y7ۨ Xno ^Z~#b%{XAYM&d2fkBqlUE25_tGUSrA   UGD  3 h0TdYYBjUFțau?F73X?FGV^bd?FZ^Zp?P} X  f  f0 D fX l f  f  bd  f  & f & 4& fH& \& fp& &! f&" &# f&$ &% f&& &' f6( $6) f86* L6+ f`6, t6- f6. 6/ b6]_61 f62 63 fF4 F5 (F6 T#3 AMJUF^]P'?Fݱ?F#6?F{_ "w?P6  >JuM` ?uJt  (LbIt=W,MyIR_FIl#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ %ޜ\0?c Q#Oc Q\}|zeE:pOϫ0:iG`iw*h<5a#j8oJiqze~EA#o>"rA #sHD:  # h4>T]]9 MTJUFH[b?F:%lj?FݡD?F,6^?P6 v >JuM` ?)uJt  6|.It=WL\} IR?8IlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!ZV\槈?F9"rA #sHD:  # h#4>T#3 AMJUFiW>E?FTb?F %?FP_EyFw?P6 >JuM` ?uJt  DqIt=W{*IRUo_}WIlTy6ވ#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ:%O\0:iG`Oc qy"zeEajoJiaze<5e'fÏ 0mFaij? mh~EA#o>"rA k#sHD:  # h4>T]]9 MTJUFF ?FƢ?F%9.?F,6^?P6 v>JuM` ?)uJt  cIt=W(?IRkzIlRv\#>2zGz?@M2JAe7b #zb(J#+#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c oKs f"!r !a i n. Al (s"e e v0d i!EHm$+A?b6 ?AgJaTv6` F !!l"z۾bZA +J6ig5V181 ?2?;ߑ:C?'4/U%ęG|# b|'b6LFO ie<59 FXG}'0U`Rib6!}40I V+ZlJ]Uhz!AZֺV\?F9&sA#<# $ B bnbJ'jWĞ 00>oPaYc l]]ȱaE:P^0TbCcba`iK8K8h<5e %k?(qQlqe~EeF$||`ai? !hA'oFrA k#sHD:  # h4>T]]9 MTJUFw??FxOe?FV\?F. xy?P6 rAJuM` ? )uJt  {It=W ůIRE! YBIl p#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6L>FO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!A!19b $<# $BJ C`fJ: m$D]ᇄ0:mOc i'A~aEeTE?c  V#NeFaze<5eF$|lVaiU?3Lh~EA#o>"rA k#sHD:  # h4>T]]9 MTJUF% !(@{?FmN,']?F~ tC?F7܄E?P6 v>JuM` ?)uJt  wT vIt=W?mIRݮIl$dvĤ#>2zGz?@MJAebM #zT (#+#+#&Jp!p!5 g`?Copy_rigTtt(c)t2U0 9tM c os f"!rԙ !a i n}.t Al U (s"e e 5v0d i!Em$}! K2?b6 ?ALb4($I3/ 4/U%b-|# |'b6<Fiie<59 FjX/G'0UBib6!}40 aFuJlJ8>UhAA@ !1!Zo(. E|zo}#<bX$-B] VʼJ:F,?0ȒS S I?Bf>QEҺV\?Ft@K\BU--# i[ÏF @ h<53n?I9fKo]o ڵ h5a9YUU aUU 3yk]Q i?eq5 h2r_U"rA k#sHD:  # h8>T ]]9 MTJUFG"7?F~8)?F AE?Fzl]?P6 >JuM`lW? SuJt  LUMtA[_ʓWMVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @nib#zv t#b( (+&B" ?APb)4(z$CD3//&*115 k`?CopyrigTtk(wc)k2009kM0c0o%s0f21r01ua0i0n.k_ Al @ 8UsBe0e0v @ d@1H4-,3 7%bO&&i Ab~59 &&XGK"'0U!R&!40 FJlJ Q! (sQsQ]31heA!Zsꈐ43 0 @?/n' #M b7fJ:]n#vca71xp]] 8usUQPUQS^%S+ %R&bpGba8DaP`Q]`NE_TWOPKJ0WSH+`Ps RUORuIsSk1J0@^e_ erP}28\usvvP62<%-g ۏ'9_us1125q5q2A+Bhh@R)pR*) 2hqhq|b(8 1xpa[3!1Qq6`:zGQ`1f1[j2B@@7RF5VCT @nb2FE5us_4Σ&F3s͵NSYFB@UͬpU ͬQUHͬ|eA§,@Q_Ɔp׏(ɟ 8A B<F5$lAVB\KkF`RC`asPe uexPP2!"! %(P%PORJ1 '2qa` P֒ȑ8(S˱AȕE{8H5AALA˱LܥAL(ARGMAWЛtA5ЛA͞/%AELHD:  # h#4>T#3 AMJUF͹30?FY˟8?F#6?F{_ "w?P6 >JuM` ?uJt  z7It=WiIR_FIl#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ %ޜ\0?c Q#Oc Q\}ȱ~aE:pϫ0:iG`iw*h<5a#j8oJiqze~EA#o>"]rA #sHD:  # h4>T]]9 MTJUF,2?F/LΛ?FݡD?F,6^?P6 v>JuM` ?)uJt  jDFIt=W-M3}IR?8IlRv\#>2zGz?@MlAneb #zb(J#+#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c oKs f"!r !a i n. Al (s"e e v0d i!EHm$+A?b6 ?AgJaTv6` F !!l"z۾bZA +J6ig5V181 ?2?;ߑ:C?'4/U%ęG|# b|'b6LBO ie<59 FXG}'0U`Rib6!}40 V+ZlJQI0h|GЎ!A!ZV\O?F9"rA 5#sHD:  # h#4>T#3 AMJUF *.?F)s*?F %?FP_EyFw?P6 >uM` ?uJt  Ç\UIt=W @ٶIRUo_}WIlTy6ވ#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ:%O\0:iG`Oc qy"zeEajoJiaze<5e'fÏ 0mFaij? mh~EA#o>"rA k#sHD:  # h4>T]]9 MTJUFJ.?Fh ?F%9.?F,6^?P6 v>JuM` ?)uJt  ICIt=WN3sIRkzIlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 $V+ZlJ]Uhz@!A!ZֺV?\?F9&sA #<# $B jfJ'jWĞ 00>oPaYc l]]aE:P^0TbCcba`iK8K8h<5e %k(qQlqe~EeF$ǧ||`ai !hA'o>"rA 5#sHD:  # h4>T]]9 MTJUFPY?F3pG?FV\?F. xy?P6 rhAJuM` ?)uJt  ͧILIt=Wf IRE! YBIl p#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LhSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!`197b$<# h$B 9b`fJ: m$D]0:mOc i'A~aEeT7E?c  V#NeFaze<5eF$|lVaiU3Lh~EA#o>"]rA #sHD:  # h4>T]]9 MTJUF]cZ?FVIܳ?F~ tC?F7܄E?P6 v>JuM` ?)uJt  PrIt=WoDIRݮIl$dvĤ#>2zGz?@MJAebM #zT (#+#+#&Jp!p!5 g`?CopyrigTt (c) W20 9 M ]c os f"R!r !a i n. AUl (s"e e v0d @i!Em$}! K2?b6 3?ALb4(&$3/ 4/U%-|# e|'b6 ?Fiie<59 FX/G'0UBb6!}40 aFuJlJ 8>UhAA !1!Z(. E|zo}#<b$] RVJ:F,a0RS S IBf>QEҺV\?Ft@K\B?U--# i[F @ h<53nI9fKo]o ڵ h5a9YUU aUU~ 3yk]Q ieq5 h2r_U"]rA #sHD:  # h8>T ]]9 MTJUFyh ?F*nK?F AE?Fzl]?P6 >JuM`lW? u t  NKMtA[X*`lMVYBMpry2V'>\¹??\.?lA8 J2l_lf?=@JMJB& @ib#ztv t#b() (+&ՆB3" 3?APb)4(z$D3//&T115 k`?CopyrigTtk(c)k2009kM0c0oKs0f21r01a0i0n.k Al @ 8sBe0e0v @d@14-X3 7JbO&&i b~59 &&XGK"/'0U!R&-!40 FJ%lJ Q! (sQsQ]3Ы1eA!Zsꈐg4 0֚ @?n'#2#M b7fJ:]T#3 AMJUF~S5e?Fk]?F#6?F{_ "w?P6 >JuM` ?uJt  @@|It=Wn56uIR_FIl#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FXGB/'0U`Rb6-!}40 V+ZlJQI0h|G!A!1l&fL# $<EfB 9b`fJ %ޜ\0?c Q菌#Oc Q\}ֱ~aE:pOϫ0:iG`iw*h<5a#j8oJiqze~EA#o>"rA #sHD:  # h4>T]]9 MTJUF3w?Fr(IY?FݡD?F,6^?P6 rlAJuM` ?)uJt  It=WX IR?8IlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LlQkBO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!ZV\槈?F9"rA #sHD:  # h#4>T#3 AMJUFZ)x?F~m?F %?FP_EyFw?P6 >JuM` ?uJt  1It=WOIRUo_}WIlTy6ވ#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ:%O\0:iG`Oc qy"zeEajoJiaze<5e'fÏ 0mFaij? mh~EA#o>"rA k#sHD:  # h4>T]]9 MTJUF:N[%?F ɇ?F%9.?F,6^?P6 v>JuM` ?)uJt  {d5Z\It=W2;wEIRkzIlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V+ZlJ]Uhz!A!ZֺV\?F9&sA#<# $BK jfJ'jWĞ 00>oPaYc l]]beE:P^c0TbCcba`iK8K8h<5e %k(qQlqe~EeF$||`ai !hA'o>v"rA # sHD:  # h4>T]]9 MTJUFydY?F?FV\?F. xy?P6 v>JuM` ?)uJt  V"(It=W7:LIRE! YBIl p#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!`197b$<# h$B 9b`fJ: m$D]0:mOc i'A~aEeT7E?c  V#NeFaze<5eF$|lVaiU3Lh~EA#o>"]rA #sHD:  # h4>T]]9 MTJUFEtJuM`?)uJt  7It=WܯHIRݮIl$dvĤ#>2zGz?@MJAebM #zT (#+#+#&Jp!p!5 g`?CopyrigTt (c) W20 9 M ]c os f"R!r !a i n. AUl (s"e e v0d @i!Em$}! K2?b6 3?ALb4(&$3/ 4/U%-|# e|'b6 ?Fiie<59 FX/G'0UBb6!}40 aFuJlJ 8>UhAA !1!Z(. E|zo}#<bc$ R] )VJ:F,00RS S IBf>QEҺV\?Ft@K\BU--# i?[F @ h<53nI9fKo]o ڵ h5a9YUU aUU? 3yk]Q ieq5 h2r_U"rA #sHD:  # h8>T ]]9 MTJUF̉?F7|?F AE?Fzl]?P6 !>JuM`lW? SuJt  o|MtA[_"oRMVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @nib#zv t#b( (+&B" ?APb)4(z$CD3//&*115 k`?CopyrigTtk(wc)k2009kM0c0o%s0f21r01ua0i0n.k_ Al @ 8UsBe0e0v @ d@1H4-,3 7%bO&&i Ab~59 &&XGK"'0U!R& 10 FJlJ Q! (sQsQ]31heA!Zsꈐ43 0 @?ҏn'8R# b7fJ:]T#3 AMJUFJuM` ?uJt  .9BWyIt=Wnq׏8IR_FIl#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ %ޜ\0?c Q#Oc Q\}ȱ~aE:pϫ0:iG`iw*h<5a#j8oJiqze~EA#o>"]rA #sHD:  # h4>T]]9 MTJUF%?FG>'~ݡD?F,6^?P6 #>JuM` ?juJt  HIt=WByIR?8Il?Rv\#>2zGz?@MJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!ZA!ZV\?F9"rA #sHD:  # h#4>T#3 AMJUFQK݆x?F-1?F %?FP_EyFw?P6 $>JuM` ?uJt  fd>It=WN6sgHRUo}WIlT?y6ވ#>2zGz?@MJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!A!1l&fL# $<EfB 9b`fJ:%ޜ'\0:iG`Oc qy"zeEajoJiaze<5e'fÞ 0mFaij mh~EA#o>"rA 5#sHD:  # h4>T]]9 MTJUF|k~ؾ?F;?F%9.?F,6^?P6 v%>JuM` ?)uJt  ُuߓIt=Wί IRkzIlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTtt(c])t20 9tuM c os If"!r !a i n.t WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+Z lJ]UhzЎ!A!ZֺV\O?F9&sA#<# $B %jfJ'jWĞ 00>oPaYc l]]aE:P^c0TbCcba`iK8K8h<5e %k(qQlqe~EeF$||`ai !hA'o>v"rA # sHD:  # h4>T]]9 MTJUFFJuM` ?)uJt  L+It=WݑHIRE! YBIl p#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!`197b$<# h$B 9b`fJ: m$D]0:mOc i'A~aEeT7E?c  V#NeFaze<5eF$|lVaiU3Lh~EA#o>"]rA #sHD:  # h4>T]]9 MTJUFQt?FRLxw?F~ tC?F7܄E?P6 v'>JuM` ?)uJt  6j>It=WNFFIRݮIl$dvĤ#>2zGz?@MJAebM #zT (#+#+#&Jp!p!5 g`?CopyrigTt (c) W20 9 M ]c os f"R!r !a i n. AUl (s"e e v0d @i!Em$}! K2?b6 3?ALb4(&$3/ 4/U%-|# e|'b6 ?Fiie<59 FX/G'0UBb6!}40 aFuJlJ 8>UhAA !1!Z(. E|zo}#<b$] RVJ:F,a0RS S IBf>QEҺV\?Ft@K\B?U--# i[F @ h<53nI9fKo]o ڵ h5a9YUU aUU~ 3yk]Q ieq5 h2r_U"]rA #sHD:  # h8>T ]]9 MTJUFXf?Fݼ?F AE?Fzl]?P6 (>JuM`lW? SuJt  ?aV_MtA[_=p'MVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @nib#zv t#b( (+&B" ?APb)4(z$CD3//&*115 k`?CopyrigTtk(wc)k2009kM0c0o%s0f21r01ua0i0n.k_ Al @ 8UsBe0e0v @ d@1H4-,3 7%bO&&i Ab~59 &&XGK"'0U!R&!40 FJlJ Q! sQsQ]31heA!Zsꈐ43 0 @?ҏn'R# b7fJ:]T#3 AMJUF;Э?Fn?F#6?F{_ "w?P6 )>JuM` ?uJt  &lIt=WAI׃IR_FIl#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L( DO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ %ޜ\0?c Q#Oc Q\}ȱ~aE:pϫ0:iG`iw*h<5a#j8oJiqze~EA#o>"]rA #sHD:  # h4>T]]9 MTJUFAYr?F L?FݡD?F,6^?P6 v*>JuM` ?)uJt  0@hIt=WmiIR?8IlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!ZV\槈?F9"rA #sHD:  # h#4>T#3 AMJUFZ?F!ќ?F %?FP_EyFw?P6 +>JuM` ?uJt  JJ&qIt=WrhIRUo_}WIlTy6ވ#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ:%O\0:iG`Oc qy"zeEajoJiaze<5e'fÏ 0mFaij? mh~EA#o>"rA k#sHD:  # h4>T]]9 MTJUF9 `?F2{ о?F%9.?F,6^?P6 v,>JuM` ?)uJt  V6>nIt=WgD~baIRkzIlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 $V+ZlJ]Uhz@!A!ZֺV?\?F9&sA #<# $B jfJ'jWĞ 00>oPaYc ?l]]|eE:P^0TbCcba`iK8K8h<5e %k(qQlqe~EeF$||`ai !hA'o>"rA #sHD:  # h4>T]]9 MTJUFq[')?F9i7?FV\?F. xy?P6 v->JuM` ?)uJt  9KIt=WYGJIRE! YBIl p#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!`197b$<# h$B 9b`fJ: m$D]0:mOc i'A~aEeT7E?c  V#NeFaze<5eF$|lVaiU3Lh~EA#o>"]rA #sHD:  # h4>T]]9 MTJUFӅN?FZDM?F~ tC?F7܄E?P6 v.>JuM` ?)uJt  1|It=WƯ:IRݮIl$dvĤ#>2zGz?@MJAebM #zT (#+#+#&Jp!p!5 g`?CopyrigTt (c) W20 9 M ]c os f"R!r !a i n. AUl (s"e e v0d @i!Em$}! K2?b6 3?ALb4(&$3/ 4/U%-|# e|'b6 ?Fiie<59 FX/G'0UBb6!}40 aFuJlJ 8>UhAA !1!Z(. E|zo}#<bc$2] )VJ:F,00RS S IBf>QEҺV\?Ft@K\BU--| i[F @ h<53nI9fKo]o  h5a9YUU aUU 3yk]Q ieq5 hb2r_U"rA #sHD:  # h8>T ]]9 MTJUFv?Fz?F AE?Fzl]?P6 />JuM`lW? SuJt  y SksMtA[_eMVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @nib#zv t#b( (+&B" ?APb)4(z$CD3//&*115 k`?CopyrigTtk(wc)k2009kM0c0o%s0f21r01ua0i0n.k_ Al @ 8UsBe0e0v @ d@1H4-,3 7%bO&&i Ab~59 &&XGK"'0U!R&!40 FJlJ Q! (sQsQ]31heA!Zsꈐ43 0 @?/n' #M b7fJ:]T#3 AMJUF`;?F:7?F#6?F{_ "w?P6 0>JuM` ?uJt  4E$pIt=WLx4IR_FIl#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L( DO ie<59 FuXG_'0U`Rb6J!}4 V"+ZlJUhh|G!A!1l&fL# $<EfB 9b`fJ %ޜ\0?c Q菌#Oc Q\}ֱ~aE:pOϫ0:iG`iw*h<5a#j8oJiqze~EA#o>"rA #sHD:  # h4>T]]9 MTJUF [kԏ?F4 c?FݡD?F,6^?P6 v1>JuM` ?)uJt  uIt=Wt]aIR?8IlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!ZV\槈?F9"rA #sHD:  # h#4>T#3 AMJUFYļ#?FŬ /?F %?FP_EyFw?P6 2>JuM` ?uJt  B?˳It=WFp\cIRUo_}WIlTy6ވ#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181a ??8:C$?'4/U%G|# |'b6L(BBO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ:%O\0:iG`Oc qy"zeEajoJiaze<5e'fÏ 0mFaij? mh~E#o>"rA k#sHD:  # h4>T]]9 MTJUF-!4?FL$$?F%9.,6^?P6 3>JuM` ?juJt  rs"It=WVIRkzIl?Rv\#>2zGz?@MJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigT}tZ(c)ZW20 9ZM ]c os f"R!r !a i n.Z AQl [&s"e e v0d @i!Em$+A?b6 ?AgJaT6` F !!l"zbAR +6ig5V181 ?2?;:C?'$4/U%G|# |'b6L3FO ie<59 FXG'K0U`Rb6!}4K0 V+ZlJ]Uhz!A!ZֺV\?F9&߮sA#`<# $B jfJ'jW?Ğ 00>oPaYc l]G]aE:P^0TbCcba`i?K8K8h<5e %k(qׁQlqe~EeF$||`ai !hA'o>"]rA #sHD:  # h4>T]]9 MTJUFX?Ş?F).?FV\?F. xy?P6 a?JuM` ?uJt  sd It=W> IRE!_ YBIl p#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6La(`BO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!19b$<# $4` 9b`fJ: m$D]0:mOc i'A~aEeTE?c  V#NeFaze<5eF?$|lVaiU3Lh~EA#o>"rA #sHD:  # h4>T]]9 MTJUFQC]?FD?b.?F~ tC?F7܄E?P6 v5>JuM` ?)uJt  [It=Wq.IRݮIl$dvĤ#>2zGz?@MJAebM #zT (#+#+#&Jp!p!5 g`?CopyrigTt (c) W20 9 M ]c os f"R!r !a i n. AUl (s"e e v0d @i!Em$}! K2?b6 3?ALb4(&$3/ 4/U%-|# e|'b6 ?Fiie<59 FX/G'0UBb6!}40 aFuJlJ 8>UhAA !1!Z(. E|zo}#<b$] RVJ:F,a0RS S IBf>QEҺV\?Ft@K\B?U--# i[F @ h<53nI9fKo]o ڵ h5a9YUU aUU~ 3yk]Q ieq5 h2r_U"]rA #sHD:  # h8>T ]]9 MTJUF:??Fq12?F AE?Fzl]?P6 6>JuM`lW? SuJt  /êQPͰMtA[_Y#MVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @nib#zv t#b( (+&B" ?APb)4(z$CD3//&*115 k`?CopyrigTtk(wc)k2009kM0c0o%s0f21r01ua0i0n.k_ Al @ 8UsBe0e0v @ d@1H4-,3 7%bO&&i Ab~59 &&XGK"'0U!R&!40 FJlJ Q! (sQsQ]31heA!Zsꈐ43 0 @?/n' #M b7fJ:] f? @ fA B &C  fE  &F b & 4&H fH&I \&J fp&K &L f&M &N &&O & f&Q &R f6S $6T f86U L6V f`6W t6X f6Y 6Z f6[ 6\ f6] 6^ fF_ F` f(Fa ~L1B~`1F~t1[D1e1R~1~1Z~1^~1b~Af~Aj~(AnT#3 AMJUF6٫&?Fh%4+ޱ?F*5?F$_D"w?P6 8>JuM` ?uJt  (LbIt=W,MyIR_FIl#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6ig5V1`e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ۰Z@]0?c Q#Oc Q\}|zeE:O)0:iG`iw*h<5a#j8oJiqze~EA#o>"rA #sHD:7 # h4>T]]9 MTJUFI)?FUj?FeTC?FǿJWc^?P6 v9>JuM` ?)uJt  6|.It=WL\} IR?8IlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LQ DO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!Z!姈?F9"rA #sHD:7 # h#4>T#3 AMJUFe{5?F?Fs۰Z?FNb_+iFw?P6 :>JuM` ?uJt  DqIt=W{*IRUo_}WIlTy6ވ#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJrO@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij? mh~EA#o>"rA k#sHD:7 # h4>T]]9 MTJUFS?FަƢ?F'?FǿJWc^?P6 v;>JuM` ?)uJt  cIt=W(?IRkzIlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 $V+ZlJ]Uhz@!A!Z5?!?F9&sA #<# $B jfJ'j`00>oPaYc l]]aE:Ͷ0TbCcba`iK8K8h<5e۰ϿZk(qQlqe~EeFͭ||`ai !hA'o>"rA 5#sHD:7 # h4>T]]9 MTJUF蕯?Fcų[?F!?Flaxy?P6 v<>JuM` ?)uJt  {It=W ůIRE! YBIl p#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!`197b$<# h$B 9b`fJ: m٠uۘ]0:mOc i'A~aEe7D?c  V#NeFaze<5eF|lVaiU3Lh~EA#o>"]rA #sHD:7 # h4>T]]9 MTJUFA!z?FA]?F>WB?Ft=E?P6 v=>JuM` ?)uJt  wT vIt=W?mIRݮIl$dvĤ#>2zGz?@MJAebM #zT (#+#+#&Jp!p!5 g`?Copy_rigTtt(c)t2U0 9tM c os f"!rԙ !a i n}.t Al U (s"e e 5v0d i!Em$}! K2?b6 ?ALb4($I3/ 4/U%b-|# |'Yb6?Fiie<59 FjX/G'0UBib6!}40 aFuJlJ8>UhAA@ !1!Z}o'- E|zo}#<b$] VJ:FQw0RS S IBf>QE2!?Fp\BU--# i[F @ h<53n CU9fKo]o  h5a9YUU aUUwi]Q ieq5 hb2r_U"rA #sHD:7 # h8>T ]]9 MTJUF gl6?FDb,)?FUw)٫?FQ`m ^?P6 >>JuM`lW? SuJt  LUMtA[_ʓWMVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @nib#zv t#b( (+&B" ?APb)4(z$CD3//&*115 k`?CopyrigTtk(wc)k2009kM0c0o%s0f21r01ua0i0n.k_ Al @ 8UsBe0e0v @ d@1H4-,3 7%bO&&i Ab~59 &&XGK"'0U!R&!40 FJlJ Q! (sQsQ]31heA!ZU0|z3 0 @?/n' #M b7fJ:]h^PsojRփUaEQ!?!`0 0c s!R'i e:}ɟh~5aef9oa|b c gT#3 AMJUFE//?F_ 8?F*5?F$_D"w?P6 ?>JuM` ?uJt  z7It=WiIR_FIl#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+Ab6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L(a2BO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4a2 9b`fJ۰Z@]0?c Q#Oc Q\}ȱ~aE:)0:iG`iw*h<5a#j8oJiqze~EA#o>"]rA #sHD:7 # h4>T]]9 MTJUFK?Fc>,Λ?FeTC?FǿJWc^?P6 v@>JuM` ?)uJt  jDFIt=W-M3}IR?8IlRv\#>2zGz?MHJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L(BO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!A!Z!?F9v"rA # sHD:7 # h#4>T#3 AMJUFQL ?F7ԩ+?Fs۰Z?FNb_+iFw?P6 A>JuM` ?uJt  Ç\UIt=W @ٶIRUo_}WIlTy6ވ#>2zGz?N@MJ@eb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L( DO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ:rO@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij? mh~EA#o>"rA k#sHD:7 # h4>T]]9 MTJUFLli[?FQ>?F'?FǿJWc^?P6 vB>JuM` ?)uJt  ICIt=WN3sIRkzIlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 $V+ZlJ]Uhz@!A!Z5?!?F9&sA #<# $B jfJ'j`00>oPaYc l]]aE:Ͷ0TbCcba`iK8K8h<5e۰ϿZk(qQlqe~EeFͭ||`ai !hA'o>"rA 5#sHD:7 # h4>T]]9 MTJUF63?F8.G?F!?Flaxy?P6 vC>JuM` ?)uJt  ͧILIt=Wf IRE! YBIl p#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LQ DO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!`197b$<# h$B 9b`fJ: m٠uۘ]0:mOc i'A~aEe7D?c  V#NeFaze<5eF|lVaiU3Lh~EA#o>"]rA #sHD:7 # h4>T]]9 MTJUFPHY?FpN?F>WB?Ft=E?P6 rAJuM` ?)uJt  PrIt=WoDIRݮIl$dvĤ#>2zGz?@MJAebM #zT (#+#+#&Jp!p!5 g`?CopyrigTt (c) W20 9 M ]c os f"R!r !a i n. AUl (s"e e v0d @i!Em$}! K2?b6 3?ALb4(&$3/ 4/U%-|# e|'b6 ?Fiie<59 FX/G'0UBb6!}40 aFuJlJ 8>UhAA !1!Z}'- E|zo}#<bc$] )VJ:FQw00RS S IBf>QE2!?Fp\BU--# i?[F @ h<53n CU9fKo]o ڵ h5a9YUU aUU?wi]Q ieq5 h2r_U"rA #sHD:7 # h8>T ]]9 MTJUFǦmڷ?FWZgL?FUw)٫?FQ`m ^?P6 E>JuM`lW? SuJt  NKMtA[X_*`lMVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @nib#zv t#b( (+&B" ?APb)4(z$CD3//&*115 k`?CopyrigTtk(wc)k2009kM0c0o%s0f21r01ua0i0n.k_ Al @ 8UsBe0e0v @ d@1H4-,3 7%bO&&i Ab~59 &&XGK"'0U!R&!40 FJlJ Q! (sQsQ]31heA!ZU0|z3 0 @?/n' #M b7fJ:]h^PsojRփUaEQ!?!`0 0c s!R'i e:}ɟh~5aef9oa|b c gT#3 AMJUFܹ?F cM?F*5?F$_D"w?P6 F>JuM` ?uJt  @@|It=Wn56uIR_FIl#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ۰Z@]0?c Q#Oc Q\}ȱ~aE:)0:iG`iw*h<5a#j8oJiqze~EA#o>"]rA #sHD:7 # h4>T]]9 MTJUF (?FthZ?FeTC?FǿJWc^?P6 vG>JuM` ?)uJt  It=WX IR?8IlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%`|# |'1b6LQBBO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!Z!姈?F9"rA #sHD:7 # h#4>T#3 AMJUFr!Qw?Fvk?Fs۰Z?FNb_+iFw?P6 AJuM` ?uJt  1It=WOIRUo_}WIlTy6ވ#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L(BO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4 9b`fJ:rO@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij? mh~EA#o>"rA k#sHD:7 # h4>T]]9 MTJUF!P4K?F l?F'?FǿJWc^?P6 vI>JuM` ?)uJt  {d5Z\It=W2;wEIRkzIlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 $V+ZlJ]Uhz@!A!Z5?!?F9&sA #<# $B jfJ'j`00>oPaYc ?l]]beE:Ͷǝ0TbCcba`iK8K8h<5e۰Zk(qQlqe~EeFͭ||`ai !hA'o>"rA #sHD:7 # h4>T]]9 MTJUFYzUv?FS s9?F!?Flaxy?P6 vJ>JuM` ?)uJt  V"(It=W7:LIRE! YBIl p#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!`197b$<# h$B 9b`fJ: m٠uۘ]0:mOc i'A~aEe7D?c  V#NeFaze<5eF|lVaiU3Lh~EA#o>"]rA #sHD:7 # h4>T]]9 MTJUF)"z>?F^i2VS?F>WB?Ft=E?P6 vK>JuM` ?)uJt  7It=WܯHIRݮIl$dvĤ#>2zGz?@MJAebM #zT (#+#+#&Jp!p!5 g`?CopyrigTt (c) W20 9 M ]c os f"R!r !a i n. AUl (s"e e v0d @i!Em$}! K2?b6 3?ALb4(&$3/ 4/U%-|# e|'b6 ?Fiie<59 FX/G'0UBb6!}40 aFuJlJ 8>UhAA !1!Z}'- E|zo}#<b$] RVJ:FQwa0RS S IBf>QE2!?Fp\B?U--# i[F @ h<53n CU9fKo]o ڵ h5a9YUU aUU~wi]Q ieq5 h2r_U"]rA #sHD:7 # h8>T ]]9 MTJUF{KY?F#v\?FUw)٫?FQ`m ^?P6 L>JuM`lW? SuJt  o|MtA[_"oRMVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @nib#zv t#b( (+&B" ?APb)4(z$CD3//&*115 k`?CopyrigTtk(wc)k2009kM0c0o%s0f21r01ua0i0n.k_ Al @ 8UsBe0e0v @ d@1H4-,3 7%bO&&i Ab~59 &&XGK"'0U!R&!40 FJlJ Q! (sQsQ]31heA!ZU0|z3 0 @?/n' #M b7fJ:]h^PsojRփUaEQ!?!`0 0c s!R'i e:}ɟh~5aef9oa|b c gT#3 AMJUF<5^?FUP?F*5?F$_D"w?P6 M>JuM` ?uJt  .9BWyIt=Wnq׏8IR_FIl#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L( DO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ۰Z@]0?c Q#Oc Q\}ȱ~aE:)0:iG`iw*h<5a#j8oJiqze~EA#o>"]rA #sHD:7 # h4>T]]9 MTJUF?F͍~eTC?FJWc^?P6 N>JuM` ?juJt  HIt=WByIR?8Il?Rv\#>2zGz?@MJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!ZA!Z!?F9"rA #sHD:7 # h#4>T#3 AMJUFSw?FK?Fs۰Z?FNb_+iFw?P6 O>JuM` ?uJt  fd>It=WN6sgHRUo}WIlT?y6ވ#>2zGz?@MJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!A!1l&fL# $<EfB 9b`fJ:r'@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij mh~EA#o>"rA 5#sHD:7 # h4>T]]9 MTJUF%u)H׾?FȐ?F'?FǿJWc^?P6 rAJuM` ?)uJt  ُuߓIt=Wί IRkzIlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTtt(c])t20 9tuM c os If"!r !a i n.t WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6LLs2BO ie<59 FXG/'0U`Rb6-!}40 V+Z lJ]UhzЎ!A!Z5!O?F9&sA#<# $s2 %jfJ'j`00>oPaYc l]]aE:Ͷc0TbCcba`iK8K8h<5e۰Zk(qQlqe~EeFͭ||`ai !hA'o>v"rA # sHD:7 # h4>T]]9 MTJUFf^oO?F]?F!?Flaxy?P6 vQ>JuM` ?)uJt  L+It=WݑHIRE! YBIl p#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!`197b$<# h$B 9b`fJ: m٠uۘ]0:mOc i'A~aEe7D?c  V#NeFaze<5eF|lVaiU3Lh~EA#o>"]rA #sHD:7 # h4>T]]9 MTJUFr,?F4w?F>WB?Ft=E?P6 vR>JuM` ?)uJt  6j>It=WNFFIRݮIl$dvĤ#>2zGz?@MJAebM #zT (#+#+#&Jp!p!5 g`?CopyrigTt (c) W20 9 M ]c os f"R!r !a i n. AUl (s"e e v0d @i!Em$}! K2?b6 3?ALb4(&$3/ 4/U%-|# e|'b6 ?Fiie<59 FX/G'0UBb6!}40 aFuJlJ 8>UhAA !1!Z}'- E|zo}#<b$] RVJ:FQwa0RS S IBf>QE2!?Fp\B?U--# i[F @ h<53n CU9fKo]o ڵ h5a9YUU aUU~wi]Q ieq5 h2r_U"]rA #sHD:7 # h8>T ]]9 MTJUF_5=~?Fe,=Vݼ?FUw)٫?FQ`m ^?P6 S>JuM`lW? SuJt  ?aV_MtA[_=p'MVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @nib#zv t#b( (+&B" ?APb)4(z$CD3//&*115 k`?CopyrigTtk(wc)k2009kM0c0o%s0f21r01ua0i0n.k_ Al @ 8UsBe0e0v @ d@1H4-,3 7%bO&&i Ab~59 &&XGK"'0U!R&!40 FJlJ Q! (sQsQ]31heA!ZU0|z3 0 @?/n' #M b7fJ:]h^PsojRփUaEQ!?!`0 0c s!R'i e:}ɟh~5aef9oa|b c gT#3 AMJUF<@έ?F&¬?F*5?F$_D"w?P6 T>JuM` ?uJt  &lIt=WAI׃IR_FIl#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJa6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6 LeE O @ie<59 FXG'0U`Rb6!}40 V+ZlJQI0h|G!A !6&f# &$<EfBM 9b`fJ۰Z@]0?c Q#Oc ?Q\}ֱ~aE:)'0:iG`iw*h<5a#j8oJiqze`~EA#o>"rA #sHD:7 # h4>T]]9 MTJUFpq?Fq֌?FeTC?FǿJWc^?P6 vU>JuM` ?)uJt  0@hIt=WmiIR?8IlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LQBBO ie<59 FXG'0U`RŴb6!}40 V+ZlJQ@hh|G!A!Z!?F9v"rA # sHD:7 # h#4>T#3 AMJUF߳ڮ?F$ ?Fs۰Z?FNb_+iFw?P6 V>JuM` ?uJt  JJ&qIt=WrhIRUo_}WIlTy6ވ#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6big581e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ:rO@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij? mh~EA#o>"rA k#sHD:7 # h4>T]]9 MTJUF>=9_?FL(Ѿ?F'?FǿJWc^?P6 vW>JuM` ?)uJt  V6>nIt=WgD~baIRkzIlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 $V+ZlJ]Uhz@!A!Z5?!?F9&sA #<# $B jfJ'j`00>oPaYc ?l]]|eE:Ͷǝ0TbCcba`iK8K8h<5e۰Zk(qQlqe~EeFͭ||`ai !hA'o>"rA #sHD:7 # h4>T]]9 MTJUFBP(?FxQ8?F!?Flaxy?P6 vX>JuM` ?)uJt  9KIt=WYGJIRE! YBIl p#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FD'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!`197b$<# h$B 9b`fJ: m٠uۘ]0:mOc i'A~aEe7D?c  V#NeFaze<5eF|lVaiU3Lh~EA#o>"]rA #sHD:7 # h4>T]]9 MTJUFMW?FM6N?F>WB?Ft=E?P6 vY>JuM` ?)uJt  1|It=WƯ:IRݮIl$dvĤ#>2zGz?@MJAebM #zT (#+#+#&Jp!p!5 g`?CopyrigTt (c) W20 9 M ]c os f"R!r !a i n. AUl (s"e e v0d @i!Em$}! K2?b6 3?ALb4(&$3/ 4/U%-|# e|'b6 ?Fiie<59 FX/G'0UBb6!}40 aFuJlJ 8>UhAA !1!Z}'- E|zo}#<b$] RVJ:FQwa0RS S IBf>QE2!?Fp\BU--| i?[F @ h<53n CU9fKo]o ڵ h5a9YUU aUU?wi]Q ieq5 h2r_U"rA #sHD:7 # h8>T ]]9 MTJUF('J?FK5+:?FUw)٫?FQ`m ^?P6 Z>JuM`lW? SuJt  y SksMtA[_eMVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @nib#zv t#b( (+&B" ?APb)4(z$CD3//&*115 k`?CopyrigTtk(wc)k2009kM0c0o%s0f21r01ua0i0n.k_ Al @ 8UsBe0e0v @ d@1H4-,3 7%bO&&i Ab~59 &&XGK"'0U!R&!40 FJlJ Q! (sQsQ]31heA! U0|z3 0 @?ҏn'R# b7fJ:]h^PsojR֯UaEQ!?ߟ!`0 0c s!R'i e:}ɟh~5aef9oa|b c gT#3 AMJUFB?F̒-8?F*5?F$_D"w?P6 [>JuM` ?uJt  4E$pIt=WLx4IR_FIl#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ۰Z@]0?c Q#Oc Q\}ȱ~aE:)0:iG`iw*h<5a#j8oJiqze~EA#o>"]rA #sHD:7 # h4>T]]9 MTJUFJ*ӏ?Fc?FeTC?FǿJWc^?P6 v\>JuM` ?)uJt  uIt=Wt]aIR?8IlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!Z!姈?F9"rA #sHD:7 # h#4>T#3 AMJUF"?F!S/?Fs۰Z?FNb_+iFw?P6 ]>JuM` ?uJt  B?˳It=WFp\cIRUo_}WIlTy6ވ#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ:rO@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij? mh~EA#o>"rA k#sHD:7 # h4>T]]9 MTJUF?F2\D?F'異JWc^?P6 ^>JuM` ?juJt  rs"It=WVIRkzIl?Rv\#>2zGz?@MJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigT}tZ(c)ZW20 9ZM ]c os f"R!r !a i n.Z AQl [&s"e e v0d @i!Em$+A?b6 ?AgJaT6` F !!l"zbAR +6ig5V181 ?2?;:C?'$4/U%G|# |'b6L3FO ie<59 FXG'K0U`Rb6!}4K0 V+ZlJ]Uhz!A!Z5!?F9&߮sA#`<# $B jfJ'j?`00>oPaYc l]G]aE:Ͷ0TbCcba`i?K8K8h<5e۰Zk(qׁQlqe~EeFͭ||`ai !hA'o>"]rA #sHD:7 # h4>T]]9 MTJUF79 Ğ?Fl_n.?F!?Flaxy?P6 v_>JuM` ?)uJt  sd It=W> IRE! YBIl p#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!`197b$<# h$B 9b`fJ: m٠uۘ]0:mOc i'A~aEe7D?c  V#NeFaze<5eF|lVaiU3Lh~EA#o>"]rA #sHD:7 # h4>T]]9 MTJUF-#&\?FZ|?F>WB?Ft=E?P6 v`>JuM` ?)uJt  [It=Wq.IRݮIl$dvĤ#>2zGz?@MJAebM #zT (#+#+#&Jp!p!5 g`?CopyrigTt (c) W20 9 M ]c os f"R!r !a i n. AUl (s"e e v0d @i!Em$}! K2?b6 3?ALb4(&$3/ 4/U%-|# e|'b6 ?Fiie<59 FX/G'0UBb6!}40 aFuJlJ 8>UhAA !1!Z}'- E|zo}#<b$] RVJ:FQwa0RS S IBf>QE2!?Fp\B?U--# i[F @ h<53n CU9fKo]o ڵ h5a9YUU aUU~wi]Q ieq5 h2r_U"]rA #sHD:7 # h8>T ]]9 MTJUFW>?F7 ?FUw)٫?FQ`m ^?P6 a>JuM`lW? SuJt  /êQPͰMtA[_Y#MVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @nib#zv t#b( (+&B" ?APb)4(z$CD3//&*115 k`?CopyrigTtk(wc)k2009kM0c0o%s0f21r01ua0i0n.k_ Al @ 8UsBe0e0v @ d@1H4-,3 7%bO&&i Ab~59 &&XGK"'0U!R&!40 FJlJ Q! (sQsQ]31heA!ZU0|z3 0 @?ҏn'0S b7fJ:]h^PsojR֯UaEQ!?ߟ!`0 0c s!R'i e:}ɟh~5aef9oa|b c g~L1B~`1F~t1[D1e1R~1~1Z~1^~1b~Af~Aj~(AnT#3 AMJUF6٫&?Fh%4+ޱ?F*5?F$_D"w?P6 c>JuM` ?uJt  (LbIt=W,MyIR_FIl#>2zGz?N@MJAeb #z (#+#+T#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A ?b6 ?AgJamT6G` F !!l"zbA +6iTg5V181 ?2?;:C?'I4/U%G,|# |'b6&L D O @ie<59 FXG'0U`Rb6!}40 V+ZlJQI0h|G!A !16&f &$<EfBM 9b`fJ۰Z@]0?c Q#Oc Q\}|zeE:)0:iG`i?w*h<5a#j8oJiqze~EA#o>"rA k#sHD:b # h4>T]]9 MTJUFI)?FUj?FeTC?FǿJWc^?P6 vd>JuM` ?)uJt  6|.It=WL\} IR?8IlRv\#>2zGz?@M2JAe7b #zQ (#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6LL0DO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!ZA!Z!?F9"rA #sHD:b # h#4>T#3 AMJUFe{5?F?Fs۰Z?FNb_+iFw?P6 e>JuM` ?uJt  DqIt=W{*IRUo_}WIlTy6ވ#>2zGz?N@MJAeb #z (#+#+T#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A ?b6 ?AgJamT6G` F !!l"zbA +6iTg5V181 ?2?;:C?'I4/U%G,|# |'b6&L0D O @ie<59 FXG'0U`Rb6!}40 V+ZlJQI0h|G!A !16&f &$<EfBM 9b`fJ:r@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij mh~EA#o>"rA #sHD:b # h4>T]]9 MTJUFS?FަƢ?F'?FǿJWc^?P6 vf>JuM` ?)uJt  cIt=W(?IRkzIlRv\#>2zGz?@M2JAe7b #zQ (#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6LL DO ie<59 FXG/'0U`Rb6-!}40 V+Z lJ]UhzЎ!A!Z5!O?F9&sA#< $B %jfJ'j`00>oPaYc l]]aE:Ͷc0TbCcba`iK8K8h<5e۰Zk(qQlqe~EeFͭ||`ai !hA'o>v"rA # sHD:b # h4>T]]9 MTJUF蕯?Fcų[?F!?Flaxy?P6 vg>JuM` ?)uJt  {It=W ůIRE! YBIl p#>2zGz?@M2JAe7b #zQ (#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A?b6 ?A mT6G` F !!l"zbA +6iTg5V181 ?2?;:C?'I4/U%G,|# |'b6&L2B O @ie<59 FXG'0U`Rb6!}40 V+ZlJQI0h|G!A !19b$< $2M 9b`fJ: m٠uۘ]ᇄ0:mOc i'A~aEeD?c  V#NeFaze<5eF|lVaiU?3Lh~EA#o>"rA k#sHD:b # h4>T]]9 MTJUFA!z?FA]?F>WB?Ft=E?P6 rUAJuM` ?)uJt  wT vIt=W?mIRݮIl$dvĤ#>2zGz?@M JAe #z (#+#+#&*Jp!p!5 g`?CopyrigTtt(wc)t20 9tM c o%s f"!r !ua i n.t_ Al (Us"e e v0 d i!Em$}! K2?0b6 ?ALcb4($3/ 4/U%-X|# |'b6?Fiie<59 FX/G_'0UBb6Z!}40 aFuJlJ8>UhAA Ў!1!Z}'[- E|zo}#;<b$T] VJ:FQw0RS S IBf>QE2!?Fp\BU--# i[F @ h<53n CU9fKo]o ?ڵ h5a9YUU aUUwi㼕]Q ieOq5 h2r_U"rA #sHD:b # h8>T ]]9 MTJUF gl6?FDb,)?FUw)٫?FQ`m ^?P6 i>JuM`lW? SuJt  LUMtA[_ʓWMVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @i #zv t#.b( (+&B"f ?APb)4(z$D3//& 115 k`?CopyrigTtk(c])k2009kuM0c0os0If21r01a0i0n.k WAl @ 8sBUe0e0v @d@14-3K 7!bO&& b~59 &&XGK"'0U!R&!40R FJlJ Q! (sQsQ]31eA-!ZU0|z 0f @?n'B# b7fJ:]h^Psoj?R֯UaEQ!?!`0 0c s!R'i e:}ɟh~5aef9oa|b c gT#3 AMJUFE//?F_ 8?F*5?F$_D"w?P6 j>JuM` ?uJt  z7It=WiIR_FIl#>2zGz?N@MJAeb #z (#+#+T#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A ?b6 ?AgJamT6G` F !!l"zbA +6iTg5V181 ?2?;:C?'I4/U%G,|# |'b6fLF O @ie<59 FXG'0U`Rb6!}40 V+ZlJQI0h|G!A !16&f &$<EfBM 9b`fJ۰Z@]0?c Q#Oc ?Q\}ֱ~aE:)'0:iG`iw*h<5a#j8oJiqze`~EA#o>"rA #sHD:b # h4>T]]9 MTJUFK?Fc>,Λ?FeTC?FǿJWc^?P6 vk>JuM` ?)uJt  jDFIt=W-M3}IR?8IlRv\#>2zGz?@M2JAe7b #zQ (#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!ZA!Z!?F9"rA #sHD:b # h#4>T#3 AMJUFQL ?F7ԩ+?Fs۰Z?FNb_+iFw?P6 l>JuM` ?uJt  Ç\UIt=W @ٶIRUo_}WIlTy6ވ#>2zGz?N@MJAeb #z (#+#+T#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A ?b6 ?AgJamT6G` F !!l"zbA +6iTg5V181 ?2?;:C?'I4/U%G,|# |'b6&L D O @ie<59 FXG'0U`Rb6!}40 V+ZMQI0h|G!A !16&f &$<EfBM 9b`fJ:r@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij mh~EA#o>"rA #sHD:b # h4>T]]9 MTJUFLli[?FQ>?F'?FǿJWc^?P6 vm>JuM` ?)uJt  ICIt=WN3sIRkzIlRv\#>2zGz?@M2JAe7b #zQ (#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+Z lJ]UhzЎ!A!Z5!O?F9&sA#< $B %jfJ'j`00>oPaYc l]]aE:Ͷc0TbCcba`iK8K8h<5e۰Zk(qQlqe~EeFͭ||`ai !hA'o>v"rA # sHD:b # h4>T]]9 MTJUF63?F8.G?F!?Flaxy?P6 vn>JuM` ?)uJt  ͧILIt=Wf IRE! YBIl p#>2zGz?@M2JAe7b #zQ (#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6LL DO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!A!19b $< $B 9b`fJ: m٠uۘ]0:mOc ?i'A~aEeDͅ?c ? V#NeFaze<5eF|lVaiU3Lh`~EA#o>"rA #sHD:b # h4>T]]9 MTJUFPHY?FpN?F>WB?Ft=E?P6 vo>JuM` ?)uJt  PrIt=WoDIRݮIl$dvĤ#>2zGz?@M JAe #z (#+#+#&*Jp!p!5 g`?CopyrigTt (c) 2U0 9 M c os f"!rԙ !a i n}. Al U (s"e e 5v0d i!Em$}! K2?b6 ?ALb4($I3/ 4/U%b-|# |'Yb6?Fiie<59 FjX/G'0UBib6!}40 aFuJlJ8>UhAA@ !1!Z}o'- E|zo}#<bX$ [ VʼJ:F?Qw0ȒS S I?Bf>QE2!?Fp\BU--# i[ÏF @ h<53n ?CU9fKo]o ڵ h5a9YUU aUUwi]Q i?eq5 h2r_U"rA k#sHD:b # h8>T ]]9 MTJUFǦmڷ?FWZgL?FUw)٫?FQ`m ^?P6 p>JuM`lW? SuJt  NKMtA[X_*`lMVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @i #zv t#.b( (+&B"f ?APb)4(z$D3//& 115 k`?CopyrigTtk(c])k2009kuM0c0os0If21r01a0i0n.k WAl @ 8sBUe0e0v @d@14-3K 7IbO&&i bP~59 &&XGK"'0U!R&!40 FJlJ $Q! (sQsQ]31ZeA!ZU0|z 0 @?n'0S b7fJ:]h?^PsojR֯UaEQ!?!`c0 0c s!R'i e:}ɟh~5aef9oa|b c gT#3 AMJUFܹ?F cM?F*5?F$_D"w?P6 q>JuM` ?uJt  @@|It=Wn56uIR_FIl#>2zGz?N@MJAeb #z (#+#+T#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A ?b6 ?AgJamT6G` F !!l"zbA +6iTg5V181 ?2?;:C?'I4/U%G,|# |'b6fLF O @ie<59 FXG'0U`Rb6!}40 V+ZlJQI0h|G!A !16&f &$<EfBM 9b`fJ۰Z@]0?c Q#Oc ?Q\}ֱ~aE:)'0:iG`iw*h<5a#j8oJiqze`~EA#o>"rA #sHD:b # h4>T]]9 MTJUF (?FthZ?FeTC?FǿJWc^?P6 vr>JuM` ?)uJt  It=WX IR?8IlRv\#>2zGz?@M2JAe7b #zQ (#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6LL2BO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!ZA!Z!?F9"rA #sHD:b # h#4>T#3 AMJUFr!Qw?Fvk?Fs۰Z?FNb_+iFw?P6 s>JuM` ?uJt  1It=WOIRUo_}WIlTy6ވ#>2zGz?N@MJAeb #z (#+#+T#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A ?b6 ?AgJamT6G` F !!l"zbA +6iTg5V181 ?2?;:C?'I4/U%G,|# |'b6&L D O @ie<59 FXG'0U`Rb6!}40 V+ZlJQI0h|G!A !16&f &$<EfBM 9b`fJ:r@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij mh~EA#o>"rA #sHD:b # h4>T]]9 MTJUF!P4K?F l?F'?FǿJWc^?P6 vt>JuM` ?)uJt  {d5Z\It=W2;wEIRkzIlRv\#>2zGz?@M2JAe7b #zQ (#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6LL DO ie<59 FXG/'0U`Rb6-!}40 V+Z lJ]UhzЎ!A!Z5!O?F9&sA#< $B %jfJ'j`00>oPaYc l]]beE:Ͷ10TbCcba`iK8K8h<5e۰Zk(qQlqe~EeFͭ||`ai !hA'o>"rA #sHD:b # h4>T]]9 MTJUFYzUv?FS s9?F!?Flaxy?P6 vu>JuM` ?)uJt  V"(It=W7:LIRE! YBIl p#>2zGz?@M2JAe7b #zQ (#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!A!19b $< $B 9b`fJ: m٠uۘ]0:mOc ?i'A~aEeDͅ?c ? V#NeFaze<5eF|lVaiU3Lh`~EA#o>"rA #sHD:b # h4>T]]9 MTJUF)"z>?F^i2VS?F>WB?Ft=E?P6 vv>JuM` ?)uJt  7It=WܯHIRݮIl$dvĤ#>2zGz?@M JAe #z (#+#+#&*Jp!p!5 g`?CopyrigTt (c) 2U0 9 M c os f"!rԙ !a i n}. Al U (s"e e 5v0d i!Em$}! K2?b6 ?ALb4($I3/ 4/U%b-|# |'Yb6?Fiie<59 FjX/G'0UBib6!}40 aFuJlJ8>UhAA@ !1!Z}o'- E|zo}#<bX$ 0[ VʼJ:F?Qw0ȒS S I?Bf>QE2!?Fp\BU--# i[ÏF @ h<53n ?CU9fKo]o ڵ h5a9YUU aUUwi]Q i?eq5 h2r_U"rA k#sHD:b # h8>T ]]9 MTJUF{KY?F#v\?FUw)٫?FQ`m ^?P6 w>JuM`lW? SuJt  o|MtA[_"oRMVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @i #zv t#.b( (+&B"f ?APb)4(z$D3//& 115 k`?CopyrigTtk(c])k2009kuM0c0os0If21r01a0i0n.k WAl @ 8sBUe0e0v @d@14-3K 7IbO&&i bP~59 &&XGK"'0U!R&!40 FJlJ $Q! (sQsQ]31ZeA!ZU0|z 0 @?nK' # bS7fJ:]h^PsojR֯UaEQ!?!`0 0c s!R'i e:}ɟh~5aef9oa|b c gT#3 AMJUF<5^?FUP?F*5?F$_D"w?P6 x>JuM` ?uJt  .9BWyIt=Wnq׏8IR_FIl#>2zGz?N@MJAeb #z (#+#+T#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A ?b6 ?AgJamT6G` F !!l"zbA +6iTg5V181 ?2?;:C?'I4/U%G,|# |'b6fLF O @ie<59 FXG'0U`Rb6!}40 V+ZlJQI0h|G!A !16&f &$<EfBM 9b`fJ۰Z@]0?c Q#Oc ?Q\}ֱ~aE:)'0:iG`iw*h<5a#j8oJiqze`~EA#o>"rA #sHD:b # h4>T]]9 MTJUF?F͍~eTC?FJWc^?P6 y>JuM` ?juJt  HIt=WByIR?8Il?Rv\#>2zGz?@MJAebM #zT (#+#+#&Jp!p!5 g`?CopyrigTt (c) W20 9 M ]c os f"R!r !a i n. AUl (s"e e v0d @i!Em$+A?b6 ?AgJaT6` F !!l"zbAR +6ig5V181 ?2?;:C?'$4/U%G|# |'b6L DO ie<59 FXG'K0U`Rb6!}4K0 V+ZlJQI0h|G!A!Z!?F9"rA #sHD:b # h#4>T#3 AMJUFSw?FK?Fs۰Z?FNb_+iFw?P6 z>JuM` ?uJt  fd>It=WN6sgHRUo}WIlT?y6ވ#>2zGz?@MJAebM #zT (#+#+#&Jp!p!5 g`?CopyrigTt (c) W20 9 M ]c os f"R!r !a i n. AUl (s"e e v0d @i!Em$+A?b6 ?AgJaT6` F !!l"zbAR +6ig5V181 ?2?;:C?'$4/U%G|# |'b6L3FO ie<59 FXG'K0U`Rb6!}4K0 V+ZlJQI0h|G!A!1&f $<EfB 9b`fJ:r@]0:iG`Oc ?qy"zeEajoJiaze<5e'f`0mFaij mh~EA#o>v"rA # sHD:b # h4>T]]9 MTJUF%u)H׾?FȐ?F'?FǿJWc^?P6 v{>JuM` ?)uJt  ُuߓIt=Wί IRkzIlRv\#>2zGz?@M2JAe7b #zQ (#+#+#&JBp!p!5 g`?CopyrigT}tt(c)tW20 9tM ]c os f"R!r !a i n.t AUl (s"e e v0d @i!Em$+A?b6 ?AgJaT6` F !!l"zbAR +6ig5V181 ?2?;:C?'$4/U%G|# |'b6L3FO ie<59 FXG'K0U`Rb6!}4K0 V+ZlJ]Uhz!A!Z5!?F9&߮sA#`< $B jfJ'j?`00>oPaYc l]G]aE:Ͷ0TbCcba`i?K8K8h<5e۰Zk(qׁQlqe~EeFͭ||`ai !hA'o>"]rA #sHD:b # h4>T]]9 MTJUFf^oO?F]?F!?Flaxy?P6 v|>JuM` ?)uJt  L+It=WݑHIRE! YBIl p#>2zGz?@M2JAe7b #zQ (#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!A!19b $< $B 9b`fJ: m٠uۘ]0:mOc ?i'A~aEeDͅ?c ? V#NeFaze<5eF|lVaiU3Lh`~EA#o>"rA #sHD:b # h4>T]]9 MTJUFr,?F4w?F>WB?Ft=E?P6 v}>JuM` ?)uJt  6j>It=WNFFIRݮIl$dvĤ#>2zGz?@M JAe #z (#+#+#&*Jp!p!5 g`?CopyrigTt (c) 2U0 9 M c os f"!rԙ !a i n}. Al U (s"e e 5v0d i!Em$}! K2?b6 ?ALb4($I3/ 4/U%b-|# |'Yb6?Fiie<59 FjX/G'0UBib6!}40 aFuJlJ8>UhAA@ !1!Z}o'- E|zo}#<b$] VJ:FQw0RS S IBf>QE2!?Fp\BU--# i[F @ h<53n CU9fKo]o  h5a9YUU aUUwi]Q ieq5 hb2r_U"rA #sHD:b # h8>T ]]9 MTJUF_5=~?Fe,=Vݼ?FUw)٫?FQ`m ^?P6 ~>JuM`lW? SuJt  ?aV_MtA[_=p'MVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @i #zv t#.b( (+&B"f ?APb)4(z$D3//& 115 k`?CopyrigTtk(c])k2009kuM0c0os0If21r01a0i0n.k WAl @ 8sBUe0e0v @d@14-3K 7IbO&&i bP~59 &&XGK"'0U!R&!40 FJlJ $Q! (sQsQ]31ZeA!ZU0|z 0 @?nK' # bS7fJ:]h^PsojR֯UaEQ!?!`0 0c s!R'i e:}ɟh~5aef9oa|b c gT#3 AMJUF<@έ?F&¬?F*5?F$_D"w?P6 >JuM` ?uJt  &lIt=WAI׃IR_FIl#>2zGz?N@MJAeb #z (#+#+T#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A ?b6 ?AgJamT6G` F !!l"zbA +6iTg5V181 ?2?;:C?'I4/U%G,|# |'b6fLF O @ie<59 FXG'0U`Rb6!}40 V+ZlJQI0h|G!A !16&f &$<EfBM 9b`fJ۰Z@]0?c Q#Oc ?Q\}ֱ~aE:)'0:iG`iw*h<5a#j8oJiqze`~EA#o>"rA #sHD:b # h4>T]]9 MTJUFpq?Fq֌?FeTC?FǿJWc^?P6 v>JuM` ?)uJt  0@hIt=WmiIR?8IlRv\#>2zGz?@M2JAe7b #zQ (#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!ZA!Z!?F9"rA #sHD:b # h#4>T#3 AMJUF߳ڮ?F$ ?Fs۰Z?FNb_+iFw?P6 >JuM` ?uJt  JJ&qIt=WrhIRUo_}WIlTy6ވ#>2zGz?N@MJAeb #z (#+#+T#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A ?b6 ?AgJamT6G` F !!l"zbA +6iTg5V181 ?2?;:C?'I4/U%G,|# |'b6fLF O @ie<59 FXG'0U`Rb6!}40 V+ZlJQI0h|G!A !16&f &$<EfBM 9b`fJ:r@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij mh~EA#o>"rA #sHD:b # h4>T]]9 MTJUF>=9_?FL(Ѿ?F'?FǿJWc^?P6 v>JuM` ?)uJt  V6>nIt=WgD~baIRkzIlRv\#>2zGz?@M2JAe7b #zQ (#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+Z lJ]UhzЎ!A!Z5!O?F9&sA#< $B %jfJ'j`00>oPaYc l]]|eE:Ͷ10TbCcba`iK8K8h<5e۰Zk(qQlqe~EeFͭ||`ai !hA'o>"rA #sHD:b # h4>T]]9 MTJUFBP(?FxQ8?F!?Flaxy?P6 v>JuM` ?)uJt  9KIt=WYGJIRE! YBIl p#>2zGz?@M2JAeWb #z@Q (#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!A!19b $< $B 9b`fJ: m٠uۘ]0:mOc ?i'A~aEeDͅ?c ? V#NeFaze<5eF|lVaiU3Lh`~EA#o>"rA #sHD:b # h4>T]]9 MTJUFMW?FM6N?F>WB?Ft=E?P6 v>JuM` ?)uJt  1|It=WƯ:IRݮIl$dvĤ#>2zGz?@M JAe #z (#+#+#&*Jp!p!5 g`?CopyrigTt (c) 2U0 9 M c os f"!rԙ !a i n}. Al U (s"e e 5v0d i!Em$}! K2?b6 ?ALb4($I3/ 4/U%b-|# |'Ib6?Fiie<59 FjX/G'0UBib6!}40 aFuJlJ8>UhAA@ !1!Z}o'- E|zo}#<bX$!B] VʼJ:F?Qw0ȒS S I?Bf>QE2!?Fp\BU--| i[F @ h<53n CU9fKo]o ڵ h5a9YUU aUUwiǤ]Q işeq5 h2r_U"rA 5#sHD:b # h8>T ]]9 MTJUF('J?FK5+:?FUw)٫?FQ`m ^?P6 >JuM`lW? SuJt  y SksMtA[_eMVYBMpry2VI'>\??\.?lA8 M2ll/f?=@MJB& @i #zv t#.b( (+&B"f ?APb)4(z$D3//& 115 k`?CopyrigTtk(c])k2009kuM0c0os0If21r01a0i0n.k WAl @ 8sBUe0e0v @d@14-3K 7IbO&&i bP~59 &&XGK"'0U!R&!40 FJlJ $Q! (sQsQ]31ZeA!ZU0|z 0 @?n'."# b7fJ:]h?^PsojR֯UaEQ!?!`c0 0c s!R'i e:}ɟh~5aef9oa|b c gT#3 AMJUFB?F̒-8?F*5?F$_D"w?P6 >JuM` ?uJt  4E$pIt=WLx4IR_FIl#>2zGz?N@MJAeb #z (#+#+T#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A ?b6 ?AgJamT6G` F !!l"zbA +6iTg5V181 ?2?;:C?'I4/U%G,|# |'b6&L72B O @ie<59 FXG'0U`Rb6!}40 V+ZlJQI0h|G!A !16&f &$<Ef72M 9b`fJ۰Z@]0?c Q#Oc ?Q\}ֱ~aE:)'0:iG`iw*h<5a#j8oJiqze`~EA#o>"rA #sHD:b # h4>T]]9 MTJUFJ*ӏ?Fc?FeTC?FǿJWc^?P6 v>JuM` ?)uJt  uIt=Wt]aIR?8IlRv\#>2zGz?@M2JAe7b #zQ (#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!ZA!Z!?F9"rA #sHD:b # h#4>T#3 AMJUF"?F!S/?Fs۰Z?FNb_+iFw?P6 >JuM` ?uJt  B?˳It=WFp\cIRUo_}WIlTy6ވ#>2zGz?N@MJAeb #z (#+#+T#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A ?b6 ?AgJamT6G` F !!l"zbA +6iTg5V181 ?2?;:C?'I4/U%G,|# |'b6fLF O @ie<59 FXG'0U`Rb6!}40 V+ZlJQI0h|G!A !16&f &$<EfBM 9b`fJ:r@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij mh~EA#o>"rA #sHD:b # h4>T]]9 MTJUF?F2\D?F'異JWc^?P6 ݉>JuM` ?juJt  rs"It=WVIRkzIl?Rv\#>2zGz?@MJAebM #zT (#+#+#&Jp!p!5 `?CopyrigTtZ(c)Z20 9ZM c. os f"!r !a i n.Z Al [&s"e ej v0d  i!Em$+A?b6 ?zAgJaۢT6` F !!l"zbjA) +6ig5UV181 ?2?F;:C?'4/U%G|# |'b6LA#BO ie<59 FXG'0U`Rb6!}40 V+ZlJ]UhzA!Z5!?F9&s7A#< X$" jfJ'j`00>oPaYc l]]aE:?Ͷ0TbCcba`iK8K8h<5e?۰Zk(qQlqe~EeFͭ||`ai !h`A'o>"rA #sHD:b # h4>T]]9 MTJUF79 Ğ?Fl_n.?F!?Flaxy?P6 v>JuM` ?)uJt  sd It=W> IRE! YBIl p#>2zGz?@M2JAe7b #zQ (#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!A!B19b$< $BM 9b`fJ: m٠uۘ]ᇄ0:mOc i'A~aEeD?c  V#NeFaze<5eF|lVaiU?3Lh~EA#o>"rA k#sHD:b # h4>T]]9 MTJUF-#&\?FZ|?F>WB?Ft=E?P6 v>JuM` ?)uJt  [It=Wq.IRݮIl$dvĤ#>2zGz?@M JAe #z (#+#+#&*Jp!p!5 g`?CopyrigTt (c) 2U0 9 M c os f"!rԙ !a i n}. Al U (s"e e 5v0d i!Em$}! K2?b6 ?ALb4($I3/ 4/U%b-|# |'Yb6?Fiie<59 FjX/G'0UBib6!}40 aFuJlJ8>UhAA@ !1!Z}o'- E|zo}#<b$] VM:FQw0RS S IBf>E2!?Fp\BU--# i[F @ h<53n CU9fKo]o  h5a9YUU aUUwi]Q ieq5 hb2r_U"rA #sHD:b # h8>T ]]9 MTJUFW>?F7 ?FUw)٫?FQ`m ^?P6 >JuM`lW? SuJt  /êQPͰMtA[_Y#MVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @i #zv t#.b( (+&B"f ?APb)4(z$D3//& 115 k`?CopyrigTtk(c])k2009kuM0c0os0If21r01a0i0n.k WAl @ 8sBUe0e0v @d@14-3K 7IbO&&i bP~59 &&XGK"'0U!R&!40 FJlJ $Q! (sQsQ]31ZeA!ZU0|z 0 @?nK' # bS7fJ:]h^PsojR֯UaEQ!?!`0 0c s!R'i e:}ɟh~5aef9oa|b c g~L1B~`1F~t1[D1e1R~1~1Z~1^~1b~Af~Aj~(AnT#3 AMJUF6٫&?Fh%4+ޱ?F*5?F$_D"w?P6 >JuM` ?uJt  (LbIt=W,MyIR_FIl#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L(BO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4 9b`fJ۰Z@]0?c Q#Oc Q\}|zeE:O)0:iG`iw*h<5a#j8oJiqze~EA#o>"rA #sHD: # h4>T]]9 MTJUFI)?FUj?FeTC?FǿJWc^?P6 v>JuM` ?)uJt  6|.It=WL\} IR?8IlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!Z!姈?F9"rA #sHD: # h#4>T#3 AMJUFe{5?F?Fs۰Z?FNb_+iFw?P6 >JuM` ?uJt  DqIt=W{*IRUo_}WIlTy6ވ#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ:rO@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij? mh~EA#o>"rA k#sHD: # h4>T]]9 MTJUFS?FަƢ?F'?FǿJWc^?P6 v>JuM` ?)uJt  cIt=W(?IRkzIlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 $V+ZlJ]Uhz@!A!Z5?!?F9&sA #<# $B jfJ'j`00>oPaYc l]]aE:Ͷ0TbCcba`iK8K8h<5e۰ϿZk(qQlqe~EeFͭ||`ai !hA'o>"rA 5#sHD: # h4>T]]9 MTJUF蕯?Fcų[?F!?Flaxy?P6 v>JuM` ?)uJt  {It=W ůIRE! YBIl p#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!`197b$<# h$B 9b`fJ: m٠uۘ]0:mOc i'A~aEe7D?c  V#NeFaze<5eF|lVaiU3Lh~EA#o>"]rA #sHD: # h4>T]]9 MTJUFA!z?FA]?F>WB?Ft=E?P6 v>JuM` ?)uJt  wT vIt=W?mIRݮIl$dvĤ#>2zGz?@MJAebM #zT (#+#+#&Jp!p!5 g`?Copy_rigTtt(c)t2U0 9tM c os f"!rԙ !a i n}.t Al U (s"e e 5v0d i!Em$}! K2?b6 ?ALb4($I3/ 4/U%b-|# |'Yb6?Fiie<59 FjX/G'0UBib6!}40 aFuJlJ8>UhAA@ !1!Z}o'- E|zo}#<b$] VJ:FQw0RS S IBf>QE2!?Fp\BU--# i[F @ h<53n CU9fKo]o  h5a9YUU aUUwi]Q ieq5 hb2r_U"rA #sHD: # h8>T ]]9 MTJUF gl6?FDb,)?FUw)٫?FQ`m ^?P6 >JuM`lW? SuJt  LUMtA[_ʓWMVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @nib#zv t#b( (+&B" ?APb)4(z$CD3//&*115 k`?CopyrigTtk(wc)k2009kM0c0o%s0f21r01ua0i0n.k_ Al @ 8UsBe0e0v @ d@1H4-,3 7%bO&&i b~59 && XGK"'0U!R&!40 FJlJ Q! (sQsQ]31heA!ZU0|z3 0 @?ҏn'B# b7fJ:]h^PsojR֯UaEQ!?ߟ!`0 0c s!R'i e:}ɟh~5aef9oa|b c gT#3 AMJUFE//?F_ 8?F*5?F$_D"w?P6 >JuM` ?uJt  z7It=WiIR_FIl#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ۰Z@]0?c Q#Oc Q\}ȱ~aE:)0:iG`iw*h<5a#j8oJiqze~EA#o>"]rA #sHD: # h4>T]]9 MTJUFK?Fc>,Λ?FeTC?FǿJWc^?P6 v>JuM` ?)uJt  jDFIt=W-M3}IR?8IlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!Z!姈?F9"rA #sHD: # h#4>T#3 AMJUFQL ?F7ԩ+?Fs۰Z?FNb_+iFw?P6 >JuM` ?uJt  Ç\UIt=W @ٶIRUo_}WIlTy6ވ#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ:rO@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij? mh~EA#o>"rA k#sHD: # h4>T]]9 MTJUFLli[?FQ>?F'?FǿJWc^?P6 v>JuM` ?)uJt  ICIt=WN3sIRkzIlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 $V+ZlJ]Uhz@!A!Z5?!?F9&sA #<# $B jfJ'j`00>oPaYc l]]aE:Ͷ0TbCcba`iK8K8h<5e۰ϿZk(qQlqe~EeFͭ||`ai !hA'o>"rA 5#sHD: # h4>T]]9 MTJUF63?F8.G?F!?Flaxy?P6 v>JuM` ?)uJt  ͧILIt=Wf IRE! YBIl p#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!`197b$<# h$B 9b`fJ: m٠uۘ]0:mOc i'A~aEe7D?c  V#NeFaze<5eF|lVaiU3Lh~EA#o>"]rA #sHD: # h4>T]]9 MTJUFPHY?FpN?F>WB?Ft=E?P6 v>JuM` ?)uJt  PrIt=WoDIRݮIl$dvĤ#>2zGz?@MJAebM #zT (#+#+#&Jp!p!5 g`?CopyrigTt (c) W20 9 M ]c os f"R!r !a i n. AUl (s"e e v0d @i!Em$}! K2?b6 3?ALb4(&$3/ 4/U%-|# e|'b6 ?Fiie<59 FX/G'0UBb6!}40 aFuJlJ 8>UhAA !1!Z}'- E|zo}#<b$] RVJ:FQwa0RS S IBf>QE2!?Fp\B?U--# i[F @ h<53n CU9fKo]o ڵ h5a9YUU aUU~wi]Q ieq5 h2r_U"]rA #sHD: # h8>T ]]9 MTJUFǦmڷ?FWZgL?FUw)٫?FQ`m ^?P6 AJuM`lW? SuJt  NKMtA[X_*`lMVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @nib#zv t#b( (+&B" ?APb)4(z$CD3//&*115 k`?CopyrigTtk(wc)k2009kM0c0o%s0f21r01ua0i0n.k_ Al @ 8UsBe0e0v @ d@1H4-,3 7%bO&&i Ab~59 &&XGK"'0U!R&!40 FJlJ Q! (sQsQ]31heA!ZU0|z3 0 @?ҏn'# b7fJ:]h^PsojR֯UaEQ!?ߟ!`0 0c s!R'i e:}ɟh~5aef9oa|b c gT#3 AMJUFܹ?F cM?F*5?F$_D"w?P6 >JuM` ?uJt  @@|It=Wn56uIR_FIl#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ۰Z@]0?c Q#Oc Q\}ȱ~aE:)0:iG`iw*h<5a#j8oJiqze~EA#o>"]rA #sHD: # h4>T]]9 MTJUF (?FthZ?FeTC?FǿJWc^?P6 v>JuM` ?)uJt  It=WX IR?8IlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!Z!姈?F9"rA #sHD: # h#4>T#3 AMJUFr!Qw?Fvk?Fs۰Z?FNb_+iFw?P6 >JuM` ?uJt  1It=WOIRUo_}WIlTy6ވ#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ:rO@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij? mh~EA#o>"rA k#sHD: # h4>T]]9 MTJUF!P4K?F l?F'?FǿJWc^?P6 v>JuM` ?)uJt  {d5Z\It=W2;wEIRkzIlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 $V+ZlJ]Uhz@!A!Z5?!?F9&sA #<# $B jfJ'j`00>oPaYc ?l]]beE:Ͷǝ0TbCcba`iK8K8h<5e۰Zk(qQlqe~EeFͭ||`ai !hA'o>"rA #sHD: # h4>T]]9 MTJUFYzUv?FS s9?F!?Flaxy?P6 v>JuM` ?)uJt  V"(It=W7:LIRE! YBIl p#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!`197b$<# h$B 9b`fJ: m٠uۘ]0:mOc i'A~aEe7D?c  V#NeFaze<5eF|lVaiU3Lh~EA#o>"]rA #sHD: # h4>T]]9 MTJUF)"z>?F^i2VS?F>WB?Ft=E?P6 v>JuM` ?)uJt  7It=WܯHIRݮIl$dvĤ#>2zGz?@MJAebM #zT (#+#+#&Jp!p!5 g`?CopyrigTt (c) W20 9 M ]c os f"R!r !a i n. AUl (s"e e v0d @i!Em$}! K2?b6 3?ALb4(&$3/ 4/U%-|# e|'b6 ?Fiie<59 FX/G'0UBb6!}40 aFuJlJ 8>UhAA !1!Z}'- E|zo}#<b$] RVJ:FQwa0RS S IBf>QE2!?Fp\B?U--# i[F @ h<53n CU9fKo]o ڵ h5a9YUU aUU~wi]Q ieq5 h2r_U"]rA #sHD: # h8>T ]]9 MTJUF{KY?F#v\?FUw)٫?FQ`m ^?P6 >JuM`lW? SuJt  o|MtA[_"oRMVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @nib#zv t#b( (+&B" ?APb)4(z$CD3//&*115 k`?CopyrigTtk(wc)k2009kM0c0o%s0f21r01ua0i0n.k_ Al @ 8UsBe0e0v @ d@1H4-,3 7%bO&&i Ab~59 &&XGK"'0U!R&!40 FJlJ Q! (sQsQ]31heA!ZU0|z3 0 @?/n' #M b7fJ:]h^PsojRփUaEQ!?!`0 0c s!R'i e:}ɟh~5aef9oa|b c gT#3 AMJUF<5^?FUP?F*5?F$_D"w?P6 >JuM` ?uJt  .9BWyIt=Wnq׏8IR_FIl#>2zGz?N@MJAeb #zb(#+B#+#&Mp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L(\"BO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4\" 9b`fJ۰Z@]0?c Q#Oc Q\}ȱ~aE:)0:iG`iw*h<5a#j8oJiqze~EA#o>"]rA #sHD: # h4>T]]9 MTJUF?F͍~eTC?FJWc^?P6 ݤ>JuM` ?juJt  HIt=WByIR?8Il?Rv\#>2zGz?@MJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6LLyBBO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!ZA!Z!?F9"]rA #sHD: # h#4>T#3 AMJUFSw?FK?Fs۰Z?FNb_+iFw?P6 >JuM` ?uJt  fd>It=WN6sgHRUo}WIlT?y6ވ#>2zGz?@MJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!A!1l&fL# $<EfB 9b`fJ:r'@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij mh~EA#o>"rA 5#sHD: # h4>T]]9 MTJUF%u)H׾?FȐ?F'?FǿJWc^?P6 v>JuM` ?)uJt  ُuߓIt=Wί IRkzIlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTtt(c])t20 9tuM c os If"!r !a i n.t WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+Z lJ]UhzЎ!A!Z5!O?F9&sA#<# $B %jfJ'j`00>oPaYc l]]aE:Ͷc0TbCcba`iK8K8h<5e۰Zk(qQlqe~EeFͭ||`ai !hA'o>v"rA # sHD: # h4>T]]9 MTJUFf^oO?F]?F!?Flaxy?P6 v>JuM` ?)uJt  L+It=WݑHIRE! YBIl p#>2zGz?@M2JAe7b #z]b(#+%#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'b6L5*6O ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!19b$<# $4h" 9b`fJ: m٠uۇ]0:mOc i'A~aEeכD?c  V#NeFaze<5eF?|lVaiU3Lh~EA#o>"rA #sHD: # h4>T]]9 MTJUFr,?F4w?F>WB?Ft=E?P6 v>JuM` ?)uJt  6j>It=WNFFIRݮIl$dvĤ#>2zGz?@MJAebM #zT (#+#+#&Jp!p!5 g`?CopyrigTt (c) W20 9 M ]c os f"R!r !a i n. AUl (s"e e v0d @i!Em$}! K2?b6 3?ALb4(&$3/ 4/U%-|# e|'b6 ?Fiie<59 FX/G'0UBb6!}40 aFuJlJ 8>UhAA !1!Z}'- E|zo}#<b$] RVJ:FQwa0RS S IBf>QE2!?Fp\B?U--# i[F @ h<53n CU9fKo]o ڵ h5a9YUU aUU~wi]Q ieq5 h2r_U"]rA #sHD: # h8>T ]]9 MTJUF_5=~?Fe,=Vݼ?FUw)٫?FQ`m ^?P6 >JuM`lW? SuJt  ?aV_MtA[_=p'MVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @nib#zv t#b( (+&B" ?APb)4(z$CD3//&*115 k`?CopyrigTtk(wc)k2009kM0c0o%s0f21r01ua0i0n.k_ Al @ 8UsBe0e0v @ d@1H4-,3 7%bO&&i Ab~59 &&XGK"'0U!R&!40 FJlJ Q! (sQsQ]31heA!ZU0|z3 0 @?/n' #M b7fJ:]h^PsojRփUaEQ!?!`0 0c s!R'i e:}ɟh~5aef9oa|b c gT#3 AMJUF<@έ?F&¬?F*5?F$_D"w?P6 >JuM` ?uJt  &lIt=WAI׃IR_FIl#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ۰Z@]0?c Q#Oc Q\}ȱ~aE:)0:iG`iw*h<5a#j8oJiqze~EA#o>"]rA #sHD: # h4>T]]9 MTJUFpq?Fq֌?FeTC?FǿJWc^?P6 v>JuM` ?)uJt  0@hIt=WmiIR?8IlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!Z!姈?F9"rA #sHD: # h#4>T#3 AMJUF߳ڮ?F$ ?Fs۰Z?FNb_+iFw?P6 >JuM` ?uJt  JJ&qIt=WrhIRUo_}WIlTy6ވ#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ:rO@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij? mh~EA#o>"rA k#sHD: # h4>T]]9 MTJUF>=9_?FL(Ѿ?F'?FǿJWc^?P6 v>JuM` ?)uJt  V6>nIt=WgD~baIRkzIlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 $V+ZlJ]Uhz@!A!Z5?!?F9&sA #<# $B jfJ'j`00>oPaYc ?l]]|eE:Ͷǝ0TbCcba`iK8K8h<5e۰Zk(qQlqe~EeFͭ||`ai !hA'o>"rA #sHD: # h4>T]]9 MTJUFBP(?FxQ8?F!?Flaxy?P6 v>JuM` ?)uJt  9KIt=WYGJIRE! YBIl p#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!`197b$<# h$B 9b`fJ: m٠uۘ]0:mOc i'A~aEe7D?c  V#NeFaze<5eF|lVaiU3Lh~EA#o>"]rA #sHD: # h4>T]]9 MTJUFMW?FM6N?F>WB?Ft=E?P6 v>JuM` ?)uJt  1|It=WƯ:IRݮIl$dvĤ#>2zGz?@MJAebM #zT (#+#+#&Jp!p!5 g`?CopyrigTt (c) W20 9 M ]c os f"R!r !a i n. AUl (s"e e v0d @i!Em$}! K2?b6 3?ALb4(&$3/ 4/U%-|# e|'b6 ?Fiie<59 FX/G'0UBb6!}40 aFuJlJ 8>UhAA !1!Z}'- E|zo}#<b$] RVJ:FQwa0RS S IBf>QE2!?Fp\BU--| i?[F @ h<53n CU9fKo]o ڵ h5a9YUU aUU?wi]Q ieq5 h2r_U"rA #sHD: # h8>T ]]9 MTJUF('J?FK5+:?FUw)٫?FQ`m ^?P6 >JuM`lW? SuJt  y SksMtA[_eMVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @nib#zv t#b( (+&B" ?APb)4(z$CD3//&*115 k`?CopyrigTtk(wc)k2009kM0c0o%s0f21r01ua0i0n.k_ Al @ 8UsBe0e0v @ d@1H4-,3 7%bO&&i Ab~59 &&XGK"'0U!R&!40 FJlJ Q! (sQsQ]31heA!ZU0|z3 0 @?/n' #M b7fJ:]h^PsojRփUaEQ!?!`0 0c s!R'i e:}ɟh~5aef9oa|b c gT#3 AMJUFB?F̒-8?F*5?F$_D"w?P6 >JuM` ?uJt  4E$pIt=WLx4IR_FIl#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ۰Z@]0?c Q#Oc Q\}ȱ~aE:)0:iG`iw*h<5a#j8oJiqze~EA#o>"]rA #sHD: # h4>T]]9 MTJUFJ*ӏ?Fc?FeTC?FǿJWc^?P6 v>JuM` ?)uJt  uIt=Wt]aIR?8IlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!Z!姈?F9"rA #sHD: # h#4>T#3 AMJUF"?F!S/?Fs۰Z?FNb_+iFw?P6 >JuM` ?uJt  B?˳It=WFp\cIRUo_}WIlTy6ވ#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ:rO@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij? mh~EA#o>"rA k#sHD: # h4>T]]9 MTJUF?F2\D?F'異JWc^?P6 ݴ>JuM` ?juJt  rs"It=WVIRkzIl?Rv\#>2zGz?@MJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigT}tZ(c)ZW20 9ZM ]c os f"R!r !a i n.Z AQl [&s"e e v0d @i!Em$+A?b6 ?AgJaT6` F !!l"zbAR +6ig5V181 ?2?;:C?'$4/U%G|# |'b6L3FO ie<59 FXG'K0U`Rb6!}4K0 V+ZlJ]Uhz!A!Z5!?F9&߮sA#`<# $B jfJ'j?`00>oPaYc l]G]aE:Ͷ0TbCcba`i?K8K8h<5e۰Zk(qׁQlqe~EeFͭ||`ai !hA'o>"]rA #sHD: # h4>T]]9 MTJUF79 Ğ?Fl_n.?F!?Flaxy?P6 v>JuM` ?)uJt  sd It=W> IRE! YBIl p#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!`197b$<# h$B 9b`fJ: m٠uۘ]0:mOc i'A~aEe7D?c  V#NeFaze<5eF|lVaiU3Lh~EA#o>"]rA #sHD: # h4>T]]9 MTJUF-#&\?FZ|?F>WB?Ft=E?P6 v>JuM` ?)uJt  [It=Wq.IRݮIl$dvĤ#>2zGz?@MJAebM #zT (#+#+#&Jp!p!5 g`?CopyrigTt (c) W20 9 M ]c os f"R!r !a i n. AUl (s"e e v0d @i!Em$}! K2?b6 3?ALb4(&$3/ 4/U%-|# e|'b6 ?Fiie<59 FX/G'0UBb6!}40 aFuJlJ 8>UhAA !1!Z}'- E|zo}#<b$] RVJ:FQwa0RS S IBf>QE2!?Fp\B?U--# i[F @ h<53n CU9fKo]o ڵ h5a9YUU aUU~wi]Q ieq5 h2r_U"]rA #sHD: # h8>T ]]9 MTJUFW>?F7 ?FUw)٫?FQ`m ^?P6 >JuM`lW? SuJt  /êQPͰMtA[_Y#MVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @nib#zv t#b( (+&B" ?APb)4(z$CD3//&*115 k`?CopyrigTtk(wc)k2009kM0c0o%s0f21r01ua0i0n.k_ Al @ 8UsBe0e0v @ d@1H4-,3 7%bO&&i Ab~59 &&XGK"'0U!R&!40 FJlJ Q! (sQsQ]31heA!ZU0|z3 0 @?/n' #M b7fJ:]h^PsojRփUaEQ!?!`0 0c s!R'i e:}ɟh~5aef9oa|b c g_+s +EiHG%>Fh$Y#"BU~dσEo@}+X(-oSs$־o$$  H- -dG-(ӿ-X - -<#-&-*-!.'ӿ-1-5 P.Q?8.Bh.FH.'J.M].Q>o.U,.X@.\ȃ@.J`H@.co@.g'@..k)@.nK@.r C.Ivo#C.y'%C.y}9'C.7z))C.Մ)+C.e .C.L'0C.62C.H4C.!)6C.ߚ>z)9C.}| H;C. "'x=C.?C.88H.>7H.ɰ)HH.xH.&~) H. H.LH.$H.DoH.'H.xH.7*H.?05H.d )H.L'P.6P.`IP.#P.~P.)HP.:P.:P.聜.F9.9.{(x.- ~I.(،./8.I(H.(x.y[.9!Yߗ.$Yߜ.g(!(8ߜ.O,%hߜ./7`ߣ.3Ib."7nYe.:8g.>Hhi.B"ik.Em.IFi`.AMXi8b.P~nYhd.TYf.&XYȟh.["ej._l.eo.;i~FiH.lXix.mp.,t.w.V{.;}4j.܂Y.aH.jj.̍Y8.jyh .@ .ݘ4i .~j.'j.j.ny. y."i.4i(.!YX.ɹ.Pi(ȳ. ~y.Ďi(.98X. 4i߼.Y.iY1(1ڊyX1Kޜy1~(1Y諁1bY߮1 YXP1nYR1PmT1YV1|yY1d-FZ1j/8(]1 7X_1 A1?C1{(E1H1+!)J1~L1"ZN1^&lP1)~(S1-XU1D1)W14Y18Ʃ[T]]9 MTAUF}Da 0?FH7r?F_/++?FXϸ?P6 `A$M (#<#lPJuM{` ?#{{20{F{ZujJtg  ɟ߇{tј` 'ɭ?s>JU2zGz?@M[#|Jk&A@$7b#z #!"b(b)+&J[e#t"t"?'6 I?A$/%Be#115 "`?CopyrigTt (c)020090M0c0oKs0f21r01a0i0n.0 Al0 8sBe0e0v@d0S"{14\#-Xe#3 7'6\% ZLFiie1E9 FXG/'0UR'6-!B40 FJlJ7Q0hLG1ZA!Y(}=K?Fl@I0`fS?Ks`ZsLbL\"JTy+HlPrW?F腺Z>FbyC ua)H0Ynǿl_Vef[U>dxԷErlg uVcQ$@aELe|}?FCʞ*Nc`vna Oc>wok&O8XWleBPmlfVArieoo.HLe+pQ?FYR&`O]vol``}; PaiEz6!iDF`ޣKH_SFn.ki`"rA k#ڃjnw5}6!i{HD: # h4>T]]9 MTUF)Q~ R?F\L#?Fx?F=:?P6 AA M (<Pdx#  $<PdxmJuM` /?9"9"29"F9"Z9"n9"9"9"9"/(Su()Jt%!  _lcd6tY1s2˟ke5n7rs=e57Fq1 >JU2zGzK?=@M3J6A@n4b%Cz@C2b3H%@3HNKNFJ[3 B?F &?A9D POqEUB3AA5 2`?CopyrigTt (c)5P20AP95PM-Pc.+Pos%Pf3R$Qr'P`Qa3Pi%Pn.5P Al{P +XsReSPej+PvPdsP2@AB3b-3 S  WF5 \fiieU9 fjXg2'0UbŴF!D0 TIf]jlJ @maa ]xQQ9A8`3F+G?F| @"$#әF1 "X3]/Lֲ1r2JAn?FkS?FΘtpb N ?_)Ay*t^(|CN7ȗu$#D[DP1X3aT1 :" $z 2? I? uK?$"X2a@s(BS2}:r5qEqEtFdo?F[K ۃ?FJ(OL?P$DT!  bqt%@{rfJHG^"f~Bt2)Џ⏪32Uu5*&?Fl5?F)b&&~?Fcle?P,A&!٘UީȽ|;!GmH﹡^@pw*oAΏ ՟4ޯFUuu #?F{+.W?,b26I>P-nx:aG|ZÉ-DuH rε50!au>uM"D$.@4#ZqTmz?FD?Fb.\i ]aJ`?@~{bcEt/^Vu1 a{&DFT?@l4ϳ$3<@ƒ>Pn}11WBx~|kz}~tesDޠux)LBk(a\6 `G $#Ppztt~Pz+ݿ]s~aϔb-4쇂3~uy0cفMk?Fǒ?F 6_?P(AT~' 6>Ľ?e+P?Toa?CB1wa1 83쇖y&Nfn~bS9xvD<$Q$#QcuNI|" 0)^VUıwm2G:LB3 .쇪;utq~F>`7bt?di д9Brq 8CJ &*짦f4omGL3A/S/#HD: # h4>T]]9 MTMUF؋@?Fce?F5svL*?F7= ?P6 ]A]M (<P]d_]x#_(_<s__JuM` ?_""2"F"Z"n"""uJt  oUxJ5t!21l]5 7,ȃ5$7ǁO>JU2zG/z?=@Ms3J6A@4b3z郷0392bR808;6J[}3 w(B??F ?A4 T? EB}3AA5 2`?CopyrigTt (c)@20@9@M@c@os@fBAr@Aa@i@n.@ AlP HsRe@e@v-PdPk2ADt3-}3C eG?Ft5 r\ViieIU9 VXW2'0U.b?F!ZD0 VZl1 &@(aa 3ArQ1q8Z}3F{و>r/2"0,s\>rt2JA%)?F+?FvWZk>Fy4 wa)`Ayf/!\3s M_lu|a<1u#Ca aܵ0 lkj? &_8)?"a@=s(<" !rÀ5 EbqEnu3.h?Fn`?F=/*lq?FF|oĵWA|GK|Wu|V#H1CRW%7#I3Et2~IUnuj "?FBĥج|+zw~>{Iσ]X41yu,A1BaNycЍ@2Wa4y}K6#I@ZltF~fUds!'Hɇ?FQy~<?F$f㷖꿈xywF,(|pgF|'c7|,X&l x קi4bqJ+ o N9z)e~zy0l44t;Ff4t/p1znuf.ʐ Lˮ?F I`V'0'|֠{yl7#y%m"gs7#It~jyozY_ƀ%çM,fFI|^t-,捇&F9~lFV6#I.@t~3ot~F+}|$+p?F?~a@v2rA 3z9Xt|L;W-yG7IGYt#~HD: # h4>T]]9 MTMUF}W?F?F5svL*?F7= ?P6 >M (<Pd_]x#_(_<s__JuM` ?_""2"F"Z"n"""uJt  wCHݛ5t!2-8Lc5 7,ȃ5$7ǁO>JU2zG/z?=@Ms3J6A@4b3z郷0392bR808;6J[}3 w(B??F ?A4 T? EB}3AA5 2`?CopyrigTt (c)@20@9@M@c@os@fBAr@Aa@i@n.@ AlP HsRe@e@v-PdPk2ADt3-}3C eG?Ft5 r\ViieIU9 VXW2'0U.b?F!ZD0 VZl1 &@(aa ]ArQ1q8Z}3F{و>r_2h"0,sf >r)t2JA%)?F+?FvWZk>Fy4 wa)`Ayf/!\3s ޿Mlu|a<1u#Ca aܵ0 lkj? &_8S?"a@=sB(<" !r5 EbqEnu3.h?Fn`?F=/*lq?FF|oĵWA|GK|WuǢ|V#HCRW%7#I3Et2~IUnuj "?FBĥج|ﲖ+zw~>{I]X41yu,A1BϠaNycߍ@2Wa4y}K6#IZltF~fU~ds!'Hɇ?FQy~<?F$fՖxywF,(|pgF|'c7|,X&l x ק1^uJ+ o N9z)e~zy0l44t;Ff4t/p1znuf.ʐ Lˮ?F I`V'0'|֠ yl7#y%m"gs7#It~jyozY_ƀ%çM,fFI|^t-,捇&F9~lFV6#I.@t~3ot~F+}|$+p?F?~a@v2rA 3z9Xt|L;W-yG7IGYt#~HD H# h4>T]]9 MMUF:TJ3?F ?FW7")?F(GP@?P6 f@#A#M (<Pd]x#$<PdxmJuM` /?""2"F"Z"n"""u )Jt!  ߆,ߑ'7t172DJM)527HB)5L7r Dɸ!>JU2zGz?=)@M3J6߀A@E4bM3z03a2b808RKFJ[3 PB?gF ?$A4 O5E3AA5 G2`?CopyrigTt (c)@20P9@M@c@oKs@fBAr@$Qa@i@n.@ Al?P HsCRePe@vUPd7P2AED3 5 -_C %GgFViieE9 VXW2'K0UVbgF!DK0 f!jl$1N@(aa ]3AQ18`3FPʞ>FQ?͉@"#] >"3n3v1lr2JA_[3nB?F#lNa?F ?Fe a)A@y?2oW Vytu#|_ӄ 5u3?\1a u׿@ ]h? d?#t?"2%a@ks(<29tK1r55EqEu}?FG?F U?F(k=|S@ܱ|ŗ-_`ǿmgV0ÖpITf#was2Eu2* ?Fd|ڀ >{$*Jr| ZȘ*'vY9!=a,z0WJ⅏ze#wFUuUfNڿ?F6 +C?F}ۛ)NQv1Vy>ﴺkcY︉0h ӯe#wZq~zd! nS@3(}|{gu2lqZt@>% rgrܥg/?B~fȿe#wϢnuex9?Fqp1C5bb=|=I"~;Jt^E>~KAOA/0ƛOu=e#w yJG?Fާ;נpIZ=gE܎=|grE2`~%-Bg0L0;e3w0䬌3t-~F`3FgG ߈A2rA 3+j[K~@])nATGf@B7e3w7I#Ha`dgHD H# h4>T]]9 MUFQ|3?Fͪ'?FH(])?F?\s?P6 A > (<@P]dx#D $<PdxJuM` ?9"9"29"F9"Z9"n9"9"9"9"/()u()Jt%!  [4c7tY1s2&뒺e5n7-V;e57n?ͷqJ1 >JU2zGz?R=@M3J6A@4b%Cz@C.2b3H%@3HNKNFJ[3 B?F I?A9D POqE*3AA5 2`?CopyrigTt (c)5P2U0AP95PM-Pc+Pos%Pf3R$Qr'P`Qa3Pi%Pn}.5P Al{PU +XsReSPe+P5vPdsP2AED3 (5 -_ SK  WFVi@ieE9 VXW2'0UbţF!D0 If]jl J @maa ]xQQ9A8Z3F꺷S"$#P8hB1 2X2?@s6vK r2J:jtFEZ qrs%@"s )1HA\HG@HA"lNa?F|/(?Fb) a)AyF7U1 "fWmA}$# c6n>}X3?$1 a }x ?@ %? z?M?$"X2%a@s(}{^<[}̈ιƋ/90!3'x+;m3; 3)1F;+x(Nڿ?FT&B?Fb{f,-JQ1;Ejv㓌 +ߌK$ؿLrZ\b03>P1Z;~+p•%ʲSpFZ>ppd-Tfs1u񶛄D𷱄K 瓌)h:GrKr߿?#4B31;;uSq~F7ސ?FF;Kf@9Brq 8CysZLs뿇* %L3 /1#;H4B`gHD: # h4>T]]9 MTMUFM&d2?F}{?P6  >M (< Pd_#x_tt_ ___(_<JuM` ?2FZnuJt -t!"J&b$=>tJU2Uj2?R=@MY3Ji6A@%2308b9R;6J[c3r27a? F ?A?9Bc3BfAfA5 2`?CopyrigT}t (c) W20@9 M@]c@os@fBRAr@Aaa0i@n. AUl@ HsBe@e@v@d@Q2_AcDZ3ę-c3rC 2rG FZ5 >\iViieU9 iVXW\r2'0j3 FZ!&D0 VZlJ`>UhLaLa ]Rd u 1A A1AW8Pa o|2U?F,%-@Nx[Jk#b?o--hi  6vZ2JAp?F}l^?F +ْ?F G&S- a),Ayx|S<ݻuz}קu#qSBa y= 30 4*?? ?"2a@/s<"t!r55TqE`ud ?F /wpc*uGs>{T#|f{}b*yZ>voigjJ*#;%7f2pU`uTK`j0rr?F);L^fFp/Xx1ѣ?V|%O4Tqde㼕?FHyt߲Xzΐ_3]ؘ#yԄT|qTS|t]<8l j m?@P3ɡեZ:+a{c3~|+2|}ZliL~|d($7! C]{-m;BP4~ΐKjgVhߩ~D8V-l|G2y)PlƳÿտa:dBl#ꃋ-@t32y ?c$p3~,xEr l|0?FS$^ΐWqp>hmN.Ey?'<(+t^+}m܀3}Tq(*wmnp:~qмZBT<i}~۸73q1&3–(Ko|>F}ѣ ?Fs?FUޒ[g$,y~vZ؆t=<}!uɡaѩYK&h0?FL#|ߘ 1D|\ ťa8 ?Fd\Ў!ݯ|? ﮉ2ɡbҨg7+?FBl;|qyS ~L](MB-eS?F@J9F:?FrIÅ hߏ¢h|@b$yoSk9r|hͦ |ɡe2oe1Br{a 53Q2HD: H h0>Th]]9 MIAUFd^V?F߫C?F>?F?_j|w?P6 8 >M $mJuM` /?`OO.u>Jt;  sxЕt=M4&ٕQ䣯+? G>yJU$"#?.& ?JbA@T"Z+bR\)Z&J#2N贁Nk.#@M# J&]/o/T"Z+'T"*B#BA1A15 `?Cop rigTt (c)x0]2`09x0Mp0]cn0osh0fv2Rg1rj01av0ih0n.x0 AUl0 n8s2e0en0v0d0@:1Y>4#-'M3 M7 .&%p0b5(9 DFX'dG_'0UB.&J!I$a dFxJlJ]Uhz_1!T!Պ(Z#FF-D}ؔ?cJ:Z 4qgjGQ RV"JmTtV,Щ=?FG с aW)O YPRSW:fOtG4Pi3GYA; l'z&@B!@C?F[,P4S *?j0[OeT?UƖaU5mTV.b9 Nj?FZp^9o`isoT0e(a~Th]]9 MIAUFHm?Fʋ?FqZzS̩?Fo_ w?P6 8 >M $mJuM` /?`OO.u>Jt;  zt/ Wٕᆝ?a%?uG>yJU$"#?.& ?JbA@T"Z+bR\)Z&J#2N贁Nk.#@M# J&]/o/T"Z+'T"*B#BA1A15 `?Cop rigTt (c)x0]2`09x0Mp0]cn0osh0fv2Rg1rj01av0ih0n.x0 AUl0 n8s2e0en0v0d0@:1Y>4#-'M3 M7 .&%p0b5(9 DFX'dG_'0UB.&J!I$a dFxJlJ]Uhz_1!T!(Z#Fb?d ?F94:,X,TGZ SY RV"JmTig/?F6o?FşY] `)O 1RSx 4S x$G4:74C͐GYA; ^^s¯&@B:~mTn%y2[9)A\(aU5UF O 2Wα?FG?8LolQ,i33((?l+dUl1"Canoo2m_;T#rA $sHD: H h0>Th]]9 MIAUFk"?Fwc?Fymh?F_!sw?P6 8>M $mJuM` /?`OO.u>Jt;  aMtl#/ו1`ng n}_GT>yJU"#?.& ~?JbA@uT"Z+b\)Z&J#2N贁Nk.#S@M#J&]/o/T"Z+'T"U*B#A1A15 `?Cop rigTt (c)x02`09x0Mp0c.n0osh0fv2g1rj01av0ih0n.x0 Al0 n8s2e0ejn0v0d0:1Y>4#-X'M3 M7.&%p0b59 DFX'dG/'0UB.&%!I$a dFxJ lJ]Uhz_1!T!(Z#FFút[?J:Z 4=iLGQ RSV"JmTVoEXNx A`?F&nƜ?FӪr#> `)O 4S }#GYkhkn/e~:KF4}3>YA; ΣW$@B4mT[PRSbU5U2{6E,?F72*ʶ'?FD;6o;^}p/l@i.fMdӟ2Z[lxg҇.atoo2m_UT#rA $sHD: # h4>T]]9 MTAUF\f?FQ)Xd?Fv?FZW?P6 `>$M (#<#lPJuM{` ?#{{20{F{ZujJtg  ntL_פ| 'RGU˲s>JU2zGz?@M[#|Jk&A@$7b#z #b(b)+&J[e#t"t"?'6 I?A$/%Be#115 "`?CopyrigTt (c)020090M0c0oKs0f21r01a0i0n.0 Al0 8sBe0e0v@d0S"{14\#-Xe#3 7'6\% ZLFiie1E9 FXG/'0UR'6-!B40 FJlJ7Q0hLG1ZAY(э6?FξRI0`fS?Ks`ZsLbRP\"JT6mPD2n ?FHOX\>F->wW Wa)H0YnǿlᜯVef[U>dxԷErlg u?VcQ$@aELeANS?FZ ͉?Fޓ{lʤm>wok&O8XWleBPmlfVArieoo.HLec=}pLwS?FXʍ`ˏvol``}; PaiEz|DF`ޣKH_SF:x~ALrA k#ڃjnw5}Oi{HD: # h4>T]]9 MTAUF8XV?Fp#enD?Fv?FZW?P6 `>$M (#<#lPJuM{` ?#{{20{F{ZujJtg  ґߝ t$wOפ| 'RGU˲s>JU2zGz?@M[#|Jk&A@$7b#z #!"b(b)+&J[e#t"t"?'6 I?A$/%Be#115 "`?CopyrigTt (c)020090M0c0oKs0f21r01a0i0n.0 Al0 8sBe0e0v@d0S"{14\#-Xe#3 7'6\% ZLFiie1E9 FXG/'0UR'6-!B40 FJlJ7Q0hLG1ZA!Y(э6?FξRI0`fS?Ks`?Zs$LL!bL\"JT6mPD2n ?FHOX\>F->wW Wa)H0YnǿlVef[U>d~xԷErlg uVcQ$@aELeANS?FZ ?F{lʤm>wok&O8XWleBPmlfVArieoo.HLec=}pLwS?FXʍ`ˏvol``}; PaiEz|DF`ޣKH_SF:x}~AL"rA k#ڃjnw5}Oi{UGDF P# h @T(PYYU UF~?M&Wd2P} (-. +0@ 0T0h0|Y03 - -3 --3--& &#:u` ? T,_'@@TUThh|U|UU&&K"&5&&0"u:)!z2<7q:U? ?; 4b0{[`+:B Fy3U"'ĉQ9" L A$6 K",G'@I@@q@E?DF@[r&BCkBuq@`-A0"Ruu8 @GC0$5Q;(?RK"U& d4; :)9u `u`["[b!;$wu`񉾑4?R5ػ3a171`Vis_PRXYcPm!#5``08``R`?CopyrF`gPt0(V`)02d`090MF`c:}`oH`ofbvary`aa`iw`n 0Al` }hsbeH`e}`v`dRh13d45!B=31ZrA66 24#30Ur?P].w,-^q^$P$sT<`o0mR`s`a>rv "saI8G28\vvk`2 hY,TYYRJ )eUF,,?F6_v?P fQ#"I#M !:#Q>NIU>bIY>vI]>I M ? I ? I ? I"+M?+Q#*"I*S%&S]V#f"+YV#z"V#"IaV#"IeV#"IAV#"IqV#" IV#"I S&2"IS&2IS&.2IS&B2I V#V2 I>2!>2IS&~2 IV#2+S&2"IS&2+S&2+V#2&?PI3 B&?I("C2B?IJCZB%&"9'a'77@I2I2GUG1uM` ?"I&6BDBXBlBBVVVVVV(V$(V8(VL(V`(/Vt(CV(WV(B,B,B,B,B,B};Āi 1a` Q|Ϳs2e8-ߕq`R~,y\1BTC\Zݼc6[?F[hsF߱~Q>qˁ&t ?FgMuN?Dv` ?,?6 EPU-?-+" Ԍ/UFz[aDv>tJ~M^3;0?gt{s4)/~Z!WJ=˧ب 5Z=fO/߱&////??{?q?;d?*V-?F`xM0P01W=͝4F??=ӎC !]=@/V54, OOS9qW@0kM9~0iZ <ȝ0*DT! SU7:w$ ]UZNOW~/mà' ]: e9T ,,? 6v?G@B1B$Gr65߱O__,_>_P_Fs[Q?F/e[p؟?M ?Sl ʟ_tfS$lߕ름Fx1cn)@aCo?20 6-Ԭ,65vٝJ w(-_q9KrUuw;y+OUF!R>7~n字/䉄5 _fL6&lLXqzݍMJ13LIo%]f Fz^(ʲS | u6)|LXX'} Ĥԭ67,M'5LmmFs]mrtoɊ!3EٿEݍv LSB@ d@}U00|Wdby#ANU 0 0 0 qH3ۓ] _WbB'P.>3]_A0hx%>Hލ?1;>s,}O+NڿW >gEn(F_>3 ]Q3}2bu$ˣSfQNFe'-$Sد|;~*YQoU(_HԪb~xBß;6H~ TEbݍ}nO*/<9n-@P,e'}eݴآm'viޞMTQދP?F/VJ$CճѵȌܷݍ1+OOĮY"ؑX:fDx~@Wt)L[~3x _AVW~IA]m_jݍX;AQq__s*~pm.@a)sI_8`}^ߔfЄ_j]~V^1P0oBoTzyE|N8^~{*ϳ}8CތҢ&s%X>F @4ύ?F*棕 L4?n~g&vn˹5so L~<@D~ew,[{ܿc=(SHǑo ,AU@y2ѝrͲs!?F N?F3?FcT(}03@ya?B᳠{j@1y8bvw ??a醼nMk?FCZώek/Ê?F@ٕ:?P(ܴ'B1/?{!K @-X;L_ @1aѶߘ>3C?FqFLc0/?Fd?<+v7D?6.zY Uco غ9JȆ߈ѿrTߣDqV\s"7G\DN,9FslD7Q-r|O╣'YQF{ F@) l$u(U)}}bQr)g|}1p1<G7t}bHA8sah77@y5?F]}H 0NXUVMFQ¡/.}=!8՞%د-+1pQ4ADF*.}K 0BoaKVWg>t}x=$GB=bvaA Q/R"i L1}/9/K/]')uw?F%ly?F*껩/ѵP﹈b@D>3bSSmlGAȔ|#h`*b5%F[ A-@zjaDi~b.x4dM?O+zOOu (?:?L?^?p??d??Fb2*.Q_ DCY?ˉFY] ) ~ zM?F!d]CZXjĞ82Dҥ4Y 0YLD|^,DYA_^F{aE`?`?Nd,/__b6mʝǧNAIY/////?r6FH?> _$s 1+/,5B/81#-CB >~??vLl⿤愈?[G=u?aK&d23L4CUG DF P# h @T(PYY#EψUFL&d2?|>?F~?]P} . B!D:J :^:rY: Au` ?"66JJ^^rrju# ^Jb"h,h'U ?L?4b {N[`:!#"&a#'b"^DQ)3 z$2l!L1$l" l"3'@>>ÿ@q05?B46 r&23c2ui0`҈-1Bu:@ l"3-A7Bl"F L$9u`u `m"[ bb!wu`)$"%أ#Q!'1`Vis_PRXYcPm!#5XP1XP02`?Co_pyr>PgPUt (NP) 2`PW09 M>PcuPo@Pof}RnQrTqPQa}PioPn] AlP uXUsRe@PeuPvP dB!#d$%b!(=#&#Rd&& "$B##0Ub#]&g,7^aNX@cTg@ daA+_ s11"hh22)t3*tBaaR+t"qqb(!pacb"!6u\%G!!["-@@Bq253T@b"q3L [ELP@[UL0]E5 s_$\&F3s͵NSYFue7A6P,@QjPUn725^}@$1p]]( sUQŅUQbN9P %BR&RpRQQcPFL]`NETWOFPK SHPP5 DROIR7IR5S!:0@ L*FrLr]@o"( qffs_PU 7ex}PcPn2l"! 0n<@5~b -"ER"^br36 Bm Ak Adzau"u22u3/BaQaQR5Q5Q"2b3 !!E|7l!!8ԲAP! !1; 8b,/$1JbKa'q'qne!b($pǕW ]-@$ SPaCPqA9P _Equ>PpRP!ePk`25Xq\` TsPxcP`DP!vR*`3^5b` Sb8C.SwXOQEdeyMPnfPc}PuRU`1%PRd$  N$m $`E I[!" PPe5R'`y 7sRU dCeEWAe C`eV^` SRiP@Q//` T;/M/"LoPcX/Ҭ///B lPiP+q/ ?/?R% RoPo_?Pm??NwRkx"adB`K?g IDPQdPS6O@HL7/nOnsICOHL8dhOPO#%AmV2irUQ ]Q 1O+_6 fH_Z_\G` fM#AtO_BO_OM@CO(oFNRCbogq%C2mQtBQW6oHL_Roof MHHiAאe2U w'0U W0 /ix4*є"%ݩ܅uuY>2 H4ֹhńЋńЋNńЋTńЋ>ńЇHD: %# h4>T]]9 M JUF/\r?F.U?F~?F_w?P6 AJuM` ?uJt  ;uAIt=WzIRUIl7O],#>2zGz?)@MJ߀A@ebM #zwb(b%)2+2&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$[w?b6 ?A$$4/U%-|# |'b6%?6iie<59 6X7'M0Ub6!}4K0 -FAJlJAI0h7!1!ZF9|$0f2 <ڒ#  OR|VJa9Z9P] PReS[RUE:dHܣM\]\ɱQ<5U oYaU526_HU"]rA #cHD: "# h4>T]]9 M JUF ?F"]?F|>?Fuvw?P6 ]AJuM` ?uJt  ].It=W`ĆW #JRbJlLXz#>2zGz?S@MJA@eb#z(b)R,+,&Jj!j!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v d c!Eg$[;?\6L ?A$./O%-v# v'\6?6iieP659 6X7'0UpB\6!w4%0 'F;JlJAC0h@7!1!ZF?Hܣ~0, <pB#\  IRvVJ:~?6VOS sgZ^TURUEUEBQG\ZYpBaիQ65UQ[fS.aYUb520_BU"rA #cHD: ## h4>T]]9 M JUFyE+?F0]я?F~?F@?d{w?P6 >JuM` ?uJt  vr It=WP|IRsUIlO.a#>2zG_z?=@MJAw@eb #zb( (2+T2&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$[}! K2?b6 &?A$ 4/U%-|# e|'b6 ?6iie<59 6X7y'0Ub6!}40 -FAJlJAI0h7!1!効ZFHܣۄ0Y <? 6ybi  OR|VJa9PY]PPReS[RUE:]|$M\Q`YdC4U<5U=VN_YQU526_HU"rA #cHD: $# h4>T]]9 M JUF ?FDL?F|>?F~w?P6  >JuM` ?uJt  ].It=W,t@ "JRb~l>t2UK?=@MJA@bJ + &Ji[J'?a& ?A)B !!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r 1uai n. _ Al90 (Us=2e0e vO0 d10!H$-,# 'a&K?6i@iek59 6X7'K0a&!|$K0 FJlJ8>UhAA !!ZF@?d3{  </.a#]M 1R^VJ:]ɜHܣ/_AZ2Ey#xUEUVS s#FT=RxUk5U؝Qˠ\BY3QX5*n?֬BoAZ7],XU[Bl|Q2_*U"rA >sHD: ## h4>T]]9 M qAUFA[?FFw:?FE12Oz_:w?P6 L[ >  (m$JuM{` ?Agg2DuVJtS  .!tw|3s,kIɸ _>JU2N贁/Nk?=@M3#JC&A@b#zw u#bR( (+&jJ=#%'?& ?A"b${$:3/*T'B=#115 `?CopyrigTt (c)020090M0c0os0f21r01a0i0n.0 Al@ 8sBe0e0v@d0+"|144#-=#3 7&4%"XOFiie2E9 ԆFXG|L"'0URi&!40 FJlJ" >UhiQiQD ]GQ N1DJc$LBhL!l%,W2[AN11(Z=#FC[RRTFQ ucR/Q Rf4"J:GdFX_!0wbfc L|c :D)$aER!Jj^opdiUjh2E~V! b# 2 ?߮.hOEu<ɛ?F#Pw|hؾ6|ެ^hu?F/Lw|iU6|^^e~?EYo< thQ[T`vg2w 0M6weQT`Dgwӏ u5XPo`Iϣ4oj7::eQT`Bvu*< f|hQT`r :{T_t Pa?F3SXk͖o?F vT?P);N 90 ,)Ri0m6uR. 6u`yyb !` /K!? -hO.?Ra @cB)r5%aQ K)XiyBG\h5b-Ob?Fԇ*sR6|FsaeQ Q~B?F)qqiQhAeQ9dϢqwiaeQe񯁜ai|hQEWXYWuwZl a++hf! l?FQD0)ˑ6|P?U/hL t9?Fz2)v<>KU6|*hQyո ?ghhWyh= A=}!eQW%|6^T?`NAA_owA j;[6te UI:vdv =KylI?ε~T_Ţr+a W  /~nIX(dur|?F 4?F?PَKK :d?Ltؤ?yl!?(!@[l Xj2GtaCpzm&褯 "4gyC?); 1ecDhe2GoYe%3rQ M3#k2HD: H ih ,>T  9 MJUF ?F~?F|>һP6 m >JuM` ^?5uJHbcFFmtulyt b#tI>2zGwz?@MJA@Wb)+& !Jg"~& E"\Ab)+'A,A/UB115 `?CopyrigTt (c)I020U09I0MA0c.?0os90fG281r;0t1aG0i90n.I0 Al0 ?8s2eg0ej?0v0d0ŤM3 b7~&XXt5i b9 `!X78G'0UB~&%0R 8FLJlJ8>UhAA( 1:9m EsBU[JHU؝Hܣˠ Xm] 3Ey%U3^֬_Z7]G,XHU)a[BUQHUF@?d{lQY?.aXQ,o`ɜQۤoZ 2QXUH_Z_l_~\_H8>t"s ûdGC, F1 #vwfB )1~dࡘ1Z@+UW1\SsGX1t P'1#)1<)+1e  .1#?X01& x31.0UFD  h(^TYYBBUFL&d2?x<F BP(?P? 8$ B66ȅH?j|;? 5JB@?\.ϗsU!&;/ҍ  0RB`=Bridge,lo ica ,n tw rk sy t m t p"r pPy"i"s c n"cB i2%z e^| R(* G@& ߃l?"488Q ]frsww ww ~ww w!%} Iceqs^QZQDrag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aab|>~??[q㿦)j?&Iz?&d23L4CUG DF P# h @T(PYY#EUFL&d2?@F|>?@_~w?P} Y.  !:J :^:rYDu` ?~"66JJ^^rru# *^:"@,@'酅#U2N贁Nk?H]b{# ?#^4Wb {['`:!#"h69#':"UY^"Q)+3 62D!L1$D" D"&3ɜ'>>ÿ@kq05?460r&BCku2u{0`i-1$Bu@ D"3?AIBD" $$9u`u `"[ b:!𿻐u`$i"&){#)Q!'1`Vis_PRXYcPm!y 5jP1jPAB`?CopyrPPgPt (`P) 20P9 MPPcPoRPofRQrPQaPiPn AlP XsReRPeJPvPdB !r#(d$r%:!B={#&r#dd&& t"r$,7^aN.@.cT<*Po mPsPQ>g da +_c&1&1r"hh")ht3* ut2aaB+ti"aa bo(!`ac:"!6uM\%$G!![2?@@Bq%CT@ br"q3$ 35$6Ep05E5c_r$4&F3s͵N?SYFu eIAt,@)Q ySUn%6}61`]]o(c-U)Q)U)QNqKP % TR&RpRQQuP$]`NETWuOXPK SHPUP VRO!RI S1L0@T$J$r5GYkr"o(pa&&s_<*-pq o(A֨57IABKFkq`RPQsPPU exPuP2D"! 0<@Eb Z"E*"br&3BmACAfa^ur"ku"xu3/\Ԭ20 iBGQGQi"2 b3 !!E0|qq7D!C8ArRA!!A;Jb61\b]aaae!bo(q`軕1W c]?@ SPaCPaAKP EquPPpBdPePC8%XI[m` {TPuP`DBPvR83^xmz"` SQbBRdP5d=QMPnfPcPuRiEQ`]&1PRd Nm 8E !3o! PP_q eiGR'`Q sRU<&eФ/YAeC`Ue.^Ԓ` SRiP@Q8T/%/mLPcX_/҄///B }lPiPq/p/?o* RPo7?PEd?v?YNwRkP"a =Yko HiԿAhǖ꥔ Uはw'0Ur/lAx ;,u;uM1, صpH ֍@噄ѤѤ&Ѥ,ѤHD: %# h4>T]]9 M JUFX^?@ ׬?F~?@?P.6 AJuM` ?urJt  ]It=W_7],IRUIlw#>2zGzw?@MJAw@eb #zb](b%)2+2&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$Ɇ[?b6 &?A$4/U%-|# e|'b6 ?6iie<59 6X7{'0Ub6!}40 -FAJlJAI0h7!1!効Z@9|$0Y2 <ڒ#4  OR|VJa9Z9P]PReS[RUE:d_HܣM\]\ɱQ<5U oYaUb526_HU"rA #cHD: "# h4>T]]9 M CAUF|>?@:x??@V|+q?P6 8]AI]M ] (JuM` ?#SS2uBJt? tzEUQؕKJbtU]OK>JU2zGz;?@M#J&A@bS#zI G#a(+bo)|+|&UJ#!!5 `?CopyrigTt(c)20 9M c oKs f"!r 1a i n. Al70 (s;2e0e vM0d/0!EH$#[#""?06 ?Ag$I~/%-#,# '6%KO/Fi@ie59 /FXEG'0UBŬ6!40 wFJlJ]Uhz!hAg!(Z#F@H/DžB0J>| 8Ene&KQ4\ RV"JT~?@gf_?F)?@ $C?8S sBKYbFe>J^R,UFeTGK!Q? ӧ|+@B:TPܛ\YܨMJe5$!JP/.`*7 `3iK=Dn鷯hZbU5TQ`R?@[uo0lBqaRSgdd*lxrl{!Joo2_Uvg"rA f# =HD: ## h4>T]]9 M !AUFnx?@?d{?Fg݅?@@?P6 $&> JuM` ^?1?u.Jt+  Rqtes.aqzWWqI7>JU2zGz?=@MJA@b1#zt' %#b?()1 ?(Z+Z&UJ!!5 `?CopyrigTt (c) 20 9 M c. os f"!r !a i n. Al0 (s2e ej v+0d 0 !E$[! s2?6 I?AE$ \/}%b-# 'Y6? Fiied59 FjX#G'0UBX640 UF"iJlJAq0h7!1E!`Fmr?@Hӣ۬0$*fq`7$d 6yb7  R VJa9Q|TK ST1 QE:]|$0]Y_dC4a8^] 7sP@EU < KB?x_QYFf*ɴ%Ud,Z7"_+dK lV}?? g52^_pUE"rA kD#TsHD: $# h4>T]]9 M AUF|>?@~?P6 n# >] JuM` ??Su.Jt+L iteJ]zb>tJU2U?=@MJ?A@(b')4+4&J[vr'?& ?A/@)B!!5 `?Copy_rigTt(c)2U0'09M0c0os 0f2 1r 0F1ai 0n}. Ala0U 8se2e90e05vw0dY0! $-# ',&?6iie59 65X7/'0ʼn&-!$0 /FCJ)lJ<>Uh3 C ]1!ZF@@_?d{ J*4 $d?.a7^QiBQ ]RVJ:D]ɜHܣ[_mZ2Ey7UEfU$S sTrTiRU5U؝QX\nY3QX5Vn֬nomZ7],Xf8:`ϋ iؚ~Gc2anY_Wt T}զDTk 0Q: %C?J i3l}f*i&udWl˔alb+d ?ܲVXU2D_VU"rA k#-UHLuD" # ;3h , T  JEuUF'_?@~?F|>ếP VNM A #$Ae  >uA` ?KG `mm. RSu#\>b]XFOmrߞuZptY b7#t&>U2N贁Nk?@9 3#>C&A@q" u(b)e+&f" !It$>=##"4#K"& "{"b)&;'f",f"/N =#11;#`?CopyrigXt (c)020090M0c0oKs0f21r01a0i0n.0 Al @ 8sBe0e0vZ!@d@+"BM=#3 7&4"Ht1EiIfE 4%!X|FGG'0UB&h50 TFJl>(fUlI 8%#IA{!1(R!gG?@c\;0R dUeR ?!c e(T@|$?Fn-?@Z %_C?YsB\Ӌ$UX?uj3dR-=wnQAY ܲVX3 e^Fx*aqRS3jIBFm_[viH{goRJdo~b KYeTGQ# #s sFR-Dn?% FX512# y4wYB H.15~dT1P6@+h1RMsG61^ P>1?1C1G1ߕJx1BNPUFD # hVTYYzU?@ ?IF?h PaR"|ou]ofu2/uU ` C&nect&r` e-?{U H  ^   -}|5 p`I`V?}`xa833ސ]3σ3u 33?, ?Gxpx^& This coUnetrWaumtUcl#yrebtwe h *hp3is.HD # =h @>T(]]9 T 2AYUa? uP6 u]`u buA_ u  >3.TAuV ` lxMui"a)J@-?x;'6"wE- xo'6"y( _rq?o@I ?$m%? @horVA$"38*EL2-_br @P' Z6\11u .$n2y2^2n2u9ȑ#ULH/MM^1 # A D5 :0`Vis_SE.cTm!#20ED)`?Copy@0igTt; kc)j@DCU9j@M-@c@0o/@'ofhBYAr\@AUah@iZ@n7@ j@WAl@ `HsBUe/@e@0v@d7@N@B= #x  A G{?9#r22&0444 MG4'ALB5?_$k&(SZ6Y8# #2"qlSF,C`l>lUhr5 QA+/J *&%(og5k#p f3e'r#TA(11MJEsooR6'2Y7E5S3Wc7r516Ũ_aJ2_quU\DQ>0]b;)`R@As-@E T@xh@DiA eJi=S]UBTJg'0SV!@LA,SrWg 1Cy$A$AMJ6!Hp,@R/TAEb?RQP? _H>Ff"s O`E )F1S#-T7B1UedIV@x1P+81gZ"sUFD  h(^TYYBBUF\.ߗ?x<F BP(?hP?X8 ]B66 TbH?~? ?B@L&dW2?Y (sU/!-&PO/v:  0eIB`Modemw,n tw rk p rui h"al !v c !^| f(U GT&( F?_""U*++'?MwpwtwpwDwwp tGwww G@wwDGwD@w p@wyww[wp|`npXDrag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aabi4FѿL&d2?j?oҿ=t??\.r3r\.CUG DF P# h @T(PYY#EUF\.?@i4F?@M&d2ɻ?P} č,.B ! :J :^:rYD 7 7l7u` ?"66JJ^^rr)u#",'񤔅qU ??4^b,0{][`:#A82A6#'%Q)U" ^/LV1$  d7'>>ÿ@qZ05?46F0r.B4CZ2u0`-V1ZRBu@ 3mAwB h$9u`u `"[bz!u`R$"% #WQ 1 71`Vis_PRXYcPm!#5P4o67>B`?CopWyr~PgPt"0u(P)"020PU9"0M~PcPoP'ofRQrPQUaPiPn "0WAl` Xs bUePePv`dR 1#d$%!*(=#6#@d66 2$B##0Ub3]fg,7^q+^\@V\cTg Pda+_Msd1d1"hhr2)$t3*tR+tHR@ q q"@q@qTb(!PpaFc"+m6u\%RG81>1[B2m@@Rr5.CT@Fb"31 UFHUM5Ms_$&ׄF3s͵NSYF)UW0TewA,@WQ S+epwr5}1PpP"(A2yT?+>BB).B4KCFq`R`Qs\~PU T`xPP2 0<#@4Eb_ &2CE"brd3vRrӟ(Mff.F_<1-mTwNcPpu"ur2u3/R0HRuQ$uQ"2Tb3 &1&1E|FF0RQ(dPpWQ,[[ ]m@0` USPaPePl\rsQAyP E u ~PpPePr5X 1V` ?TPEѣPH` D`vR3𯴊ߜb` SabߣPLB PMBPd`rUdKMPnafPcPubHU\nHUQi{]d1;PRd Nm.0Š)U,03!8 PPr0BQhHpcu]uR`sRUѠeANe>`pe^bt1R; SbiPa¢&T18LPcX!mFTXjB?l'`iPkqo&0Z38RPoO,d/?c dDψ(ȱȱ"(Ms3) &&&WUՁ:p/` %R&RE"ibȱ`NEWOPKPSUH`PV0 ROj2URIV0S$AQxR7 i q'U,ygm5xbb7'dũfɵR3D-҃aa8')uyqarL?aTe5x`H7vAտD?aKDKDaKЅDKDK7eDAKTeDJHD: # h4>T]]9 M JU@i4F?@??@hĻ?P6 ܠAJuM` ?juJt At=W ףp= #JRbJlQO#>2zGz?)@MJ߀A@ebM#z\(b),+),&J[(.w?& ?A$T./O%B!!5 g`?CopyrigTtZ(c)Z2009ZM 0c. 0os0f21r0>1a0i0n.Z AlY0 8s]2e10ej 0vo0dQ0@!$b-# 'Y&?6iie59 6X7'0UpBŴ&!$0 D'F;JlJAh h7!h1!YZ@x f, <#  IRvVJ:ǿxT]]9 M JU@"&d2?@ `?@BP(ĺP6 ]AJuM` ?ju#t  m۶mIt=WwIR$I$+IIl#>2zGz?@M|JA@e7b #zb(b%)2+2&J[/.?& I?A$4/U%B!!5 g`?CopyrigTt (c)020%090M0c0oKs 0f21r 0D1a0i 0n.0 Al_0 8sc2e70e0vu0dW0!$-X# '&?6iie59 6X7/'0UvBŇ&-!$0 -FAJUlJ8>UhAA 1h1!T12 $<cV5{ WR~VJd2L&?@bX,Ʃ ]S fR#mS ?ZZQ4E^0__ %zzX5:U XYePY؉X5aZjoohY}aUVeEVŠRldQY)+R+X2>_;"rA 5#dsHD: # h4>T]]9 M JU@xmJuM` ?uJt  Am۶mIt=WHzGIR]Il#>2nz?3@MJAw@eb #zb( (2+T2&J[ (p"?0& ?A$ 4/U%BB!!5 g`?CopyrigTt (c])020%090uM0c0os 0If21r 0D1a0i 0n.0 WAl_0 8sc2Ue70e0vu0dW0!$-# '&?6iieP59 6X73'0UvBŇ&!$0 -FAJlJ8>Uh@ 11!Z@?t:Né  <qqh#B] WRVJ.@ ?@L&d© ]S )Q#hY8?Kh/QE^ `__ ^BX5a9XYePXRmScRU5:]md2L&U\ahY*PX\eEVV_iaU2>_PU"rA #dsHD: # h4>T]]9 M JU@i4F?@M&ɯd2?tP6  >JuM` ?uJt ASt=WJRb~li>t2U?=@MJA@b + &J[N#?0a& ?AT)B!!5 g`?CopyrigTtZ(c)Z20 9ZM c. os f"!r 1ai n.Z Al90 (s=2e0ej vO0d10@!$b-# 'Ya&?6iiek59 6jX7^'0a&Z!|$0 FJlJ UhqMAA ]A !4Ja-'Z@?fl6˃  <HzGh#BA OR|VJ:6]t:ϝNM__Z(\#UEL@ _?@Lƒ S AA#`YQ(\Xk5^ s`o!o ̌aX5UxT9 M3JU@i4F?@M&d2?ҷP6 m >JuM` ^?5ulbSD_Jt bstE>2zGz;?@MJA@u+b+&K !JS"j& 1"A.b+-,-/*B!!5 `?CopyrwigTt `wc)5020A0950M-0c+0o%s%0f32$1r'0`1ua30i%0n.50_ Al{0 +8Us2eS0e+0v0ds0ib =L!XY'0U Bj&%0 :lJ Uh*M[A[A 9A 1:xTh]]9 M JU@w[2?@2?@?뇤?@bf?P6  n>JuM{` ?5 uJt  hxvEt9SYEN^Ӟ~ӞEh!D#<>>2N_Nk?<@MJA@cb]b)++&J"< u) ?AHb$z@J+%/F%B!!5 c`?CopyrigTt (c)302`0930M+0c)0oKs#0f12"1r%0^1a10i#0n.30 Aly0 )8s}2eQ0e)0v0dq0!(Y$-3 7x&+0b59 6X7G'K0UhBx&!$Ia F3JlJ]Uhz11Z@`Y3   8gF/_ M ARnVJ!49BYOPBRWSMRUE:]R.?\QRYl>Q5U/V@_YQĈU2(_:UrA cHD: H h0>Th]]9 M JU@p8?@d2L&?@αB?@.?P6  n>JuM{` ?5 uJt  YEt9SRQEN߆$1Eh'>2N贁NKk?<@MJA@cbb)++&J[ < u)| ?$%/F%BB!!5 c`?CopyrigTt (cu) 02`09 0uM0c0os If2!r 51a0i n. 0 WAlP0 8sT2Ue(0e0vf0dH0!Y$Ť-['# 'x&0b59 6X|['7'0U?B)x&!$aI 6 JlJ]Uhz!^!Z@mN/?  8gF_  REVJ49Y&PR.S$R_UE:p]"`3  \Q)Yl?>cQ5oUV_YQ_Ub2OUrAg wcHD: H h0>Th]]9 M JU@&6?@0ސ?@?뇤?@bf?P6 n>JuM{` ?5 uJt  lUUEt9S;EN^Ӟ~ӞEh!D#<>>2N_Nk?<@MJA@cb]b)++&J~"< u) Y?AHb$z@+%/F%*B!!5 c`?CopyrigTt _(c)302`W0930M+0c)0os#0f12"1r%0^1a10i#0n}.30 Aly0U )8s}2eQ0e)05v0dq0!PY$-,3 7x&+0b59 6X7G'0UhBx&!$a F3JlJ]Uhz1h1Z@`Yg   8gF__  ARnVBJ49BYOPBRWSMRUE:]?R.?\QRYl>Q5U/V@_YQU2(_:UrA c_H>vQ+s #X8L(r F1'[f#1\!B-1]~d1,^@+(W1.LsG1zmP1f*1jU1fmT1ߺpXp1gtz8r1wt1zv1}$UFD  h,^TYYBBUF\.?x<F BP(c?Ps?m. 9c:M:O @z0 BH ?? V@L&dW2?F-W(Yi(G.sU!&P/)7(:  0 `WB`&Ring\network ?p$0rr0pPE1al\d$0v0c$0 c1^ (J YG& r+?!) +)!q q ǿ~~|p~~ṗ ~p~;ކ~pp2AAqDrag onut he]pe,nUdu /p64lies9Lt]wrkcQm tOfTly lGo_"imdO.b\.L&d2??;IOғEMQS?=?mar3r\.CUG D  # h T,YYEUF\.?@?FL&d2?P} ϛ% ^.&N+O+.Q+R+S+T+\+]+^+_+`+a+b+c+d*+e+f+g+Q.i+j+k+l+m+n+o+p+q+r+s+t+u+v+w+x+y+z+{+|+}+~++++++++++++++++++*++++73636 3 l_Fu{` ? &CG/B>CBHCBRCB\CBfCBpCBzCBCBCBCBCBCBCBCBCBCBCBCBCBCB"CB"CB"CB$"CB."CB8"CBB"CBL"CBV"CB`"CBj"CBt"CB~"CB"CB"CB"CB"CB"CB"CB"CB"CB"CB"CB"CB"CB2CB 2CB2CB2CB(2CB22CB<2CBF2CBP2CBZ2CBd2CBn2CBx2CB2CB2CB2CB2CB2CB2T6g666U66FFMBuIUHrN|Nw1r L@Gs5 ^CB0  $sV!v q)?@4v!p`:!@ K*RGs Br(1=s0s)) %Rt؉sq1`V sPeXY)cPm!#52862F1`?UCA p r gPt3()32U0Z93M c_ Eoi oM=rK yas iA n) J3A# l3EsUei e_ vd)21wrޟҀs?@A3{d|R$Bƕ~u +@@âɸ!BMBj8}rup`i-qBu *@rw1s!8=}/B 2t@I9u`un`"p2] HqDou`t1E[B2TU뱥)8s5ä  r}vh^T`%AT<7 o3mss >XxĀu7T=n7 eMTNtT yk3Dvd{uu ƃ@Rdư5ߙ߫ƕ9'9h\nE|1CU t@ʴ#FXjHqʶq-?bt[Ű//A:/L/^/~///A///p?!?3?ʼqV?h?z????z?? O@ɯ+O=OOOoOOO9OOO =t__'_!D_V_h_ͪ___#___$o+o=oB%`oroo&ooo'o!(5GY)|*+ .HTfx{şÏƹ/&8J!0m1Ɵ؟2 3BTf͐B_5Я6);7^p ̿_9:3EW;zόϞ(Oas?ߨߺDqm4# 1T 5h86%8llc౓#"AAш]]Ѥ C){q{qpqq22EyyNNaѕѨHr/d~CU|@c` MaЧufu e nA` EqipeBtm/h~4qP o|uNmb /b XQ Pr6HZ/{+ srt_q/\A6s6!P/^za Sil/T1 LcAHR\fpz$.8BLV`jt~""0":"D"N"X"b"|"v""""""""""""""" "" "*"4">"H"R"\"f"p"z"""""""""""""""""$"."8"B"L"V"`"j"t"~""AaXT@b FTP%జJKTltφT0ƐĮbPQwr SS#TS”GLF2DFbXO%—ȩP_(_:_S…LF?Hd}OƁLQ____KFLpXO( B}KoЁ?_T_o(ooS L FY2ణ3oaoЁ !eo}cGYkS L Fft]eҼ–B" E L FsxLfO͏ߏ*H L F l_go}<*A]LF џrmБ Є!7I[EʟLF `0 毯ʯ_&tEULF OT~N򤢿ƿTؿFLF O!H$6 Hϱa6ϗ*FLF ?ZبP6HZߙBLFR5xqy?o%L%9F//"q8?onT&L&9F?ᏼJ`_-?*e'L'r?UO{O$(L(roy:uoڟ) L)r!_@4 oj|*L*r"oݿF\);a+L+r#xQwχP ,L,r$|[6qȟϨ߹-L-r%Ϗ0 fTx.L.r&BX%7*] /L/r'7Msߙ0 0r(3 W2m1  1r)˿@,bt-2 2r*>T!/3/Y=3 3r+p/Iߔ/o!/P//M4 4r,tS?.1i?/??M5 5r-O1(O/^OpO]6 6r;Q?\AO:OP_/_*Um7 7r//?E_Q_{?__}8 8r0+oOo*aeo/_oo}9  9r1oa@$ _Zl: :v2/q6LO+Q; ;v3hA?gwoP?؏<  >v6~_ɯ߯2H'*M? ?v7'=ocsoԿ @ @v8#oGπ"]ϴ¿ϥA  Av9ϻ@RdߊB Bv:zߠߠ.D#IC Cv;`9_oP D Dvv*@  E-GV,Gv !7-[k=HLB,N5>LB_r:?C&2F3s͵NSYQFEB,N>HdDq7ME5qD68W#"U%&EfW@@cX @ S1` Token?_RiP1nD?[Q?##qh1ab /X##zQ?AzQgVD6e]r##"` %P&rPpPrtPe+sA D2`A!_`NTMPUOPKfPS A``UEfPPPObR`5ISi0QAqD_!_\X\OT.U_C0?ni4oo\XXOSw'K0Ur%V!0^ v2Zei1DAT\1sEPuQ1MEX OS%HVl2UxAUx1'ExAMEx HCDrDC  @   !"#$%&'()*+,-./0123456789:;<=>?*>ABhiATiiJ\ 3U@\.?FL&d2?JP}@YIYqX"u`W?"&&5&,"u6)~}bE@{#&t03! 7("tm!,v&b$&"qK!Y$30^?2-,"l-2""2!l"6 #",$=F#"f$6)![0$%J[LD0D=F?|" (&3AA1A1 ;m`"`?CopyrigPt(c 09M-Pc+Pos%Pf3R$Qr'P`Qa3Pi%Pn Al{P +XsRe*SPe+PvPd"!ZOAy 7$^ ?P?b?[!H${eQnB? ???O %O.O@@OROdOvO6CkaOROOOO_ %!_3_E_W_i_{_Vx<kb_b____ o %&o8oJo\onooy_ocoroooo %_.@@Rdvwd %0BTfxyheҏ %5GYk}~/mfĢן  % =Oas~_?gůɲܯ $ %?Q@cuOwhʿ) %RGYk}ϏϜ_i . %I[mߑߣoj!3 %N`r k &8 %Sew+= %Xj|)m 0BU]o9n"/#/5/G/Ub/t/////Io/2? ?(?:?L?Ug?y?@????ϟYp?B OO-O?OQOeGQoOOOOO?ߧfqOR_ _2_D_V_"u!q______yr_ro%o7oIo[o'"voooooos *<N`,#{@yt /ASe1ˏݏu "4FXj6%͟ߟ/yv'9K]o;&ү?yw, >Pbt@'@ſ׿Oyxπ1CUgyE(Ϧϸ_yy#6HZl~J)߽߫oyz$(;M_qO*y{)-@ RdvT+@y|.2EWi{Y%,y}37"J\n^5-/y~8/<2O/a/s///cE.///// ?y=?ABT? f?x???hU/??@???OyBOFRYOkO}OOOme0OOOO__yG_Kb^_p____ru1____ oo yLoPrcouoooow2oooo QUh z|3@%VZm4Џ*/[_r5՟ /? Ɇ`dw6گ"4#Oهei| Ŀ7߿@'9(_jπnҁϓϥϷϕ8,>-o',sߘߪ߼9 1C2! F1 xR'9K:)6} ;@);M<+)~%< .@RA09"5=/!/3/E/W/F5I/2/////E>??&?8?J?\?K:Y?B? ????U?OO@+O=OOOaOP?iOROOOOOeQ_!_3_E_W_dOXGv_b_____uAo#o5oGoYokoZIoroooooDžB(:L^p_NɁHD: H h <>T$]]9 MT kAU@\.?FL&d2=??F?P6 LA P>  + 4DJuM` ?"?o`0?oNu^Jt[ tgJbg>6#J?#,b/ @TZT"Z""P& T/@n_^B% 'N< ?m6 ?AeJa@ۢR4` Ac0entCol0r3z۝0Aٝ0bbbz90“2???9Nbb?1"bAYFbeDG?#E![C39 , B6"hLJ?#QE!TG; J`A`?Apy$@igTt(@)20mP9MYPc$@os@f_RArSP#Aa@i@n. AR @lXWsRePe$@v0dP@ᾡ`1O_o?#2TUam3 FD5#]BrFlL]BrF 0PuGiAbE9 6%yXGg'0bUm6!40 fjlJ qUhhUGHQA3(Z\*{ ٠0"#")b5DrD6"J Az~%"#"BA}/t?PSQ< E!?yET#-#tgaD[#,E:g@qVE`0w>]BrA \Cď'$$+HD  hj @>TA(]]9 M  eAU@\.?FL&d2+?]P6 LA > M /8HJuM` ^? C s4CLsRubJ1t_ tuJb$">JU5 JI4#=#/ @X^X"^"B"6 X/r cb!Bh@,G-v31k!k!5 J``?CopyrigTt(c)2009M0c.0os0f21r0Aa0i0n. Al3@ 8s7Be @e0vI@d+@0tv3?c- =< ?F ?AeJa[_Rf14W` A0cI@n0j1lB3z_ՁA_AbbbzY_)mEZf1T  9 MSAU@\.?Fr??F~q?P6 B >%M a*JuM` ? %U U4:uDJ@bEF&d2ɿuBltA bJt EIM>JoU2TU!?#S@M #~A@@"WbH)U+U&mJ !?v(GtI#J#"# %"& "A@"bH);E'|"/-<*B#h1h15 "`?CopyrigTt(wc)2009M0c0o%s0f21r01ua0i0n._ Al0 8Us2e0e0v0d0"MX#t3 t7&"tt Ei b@9 %!X GގG'0"UX&-50 FʢJlJAUhh)Q)Q!#A@! (:#`RB: 3R$JTV  h1?[_R: @AABUVeLٮ\2maXUe.o_jLo^m2aroo__7\HD H# h4>T]]9 MT CAU@\.?F??F~߻?P6 8M >M (JuM` ?#0SS2uBJt? tTKJWbK>[JU#?,& ?AA@R"bZ$J#B!!5 `?CopyrigT}t(c)W20 9M ]c os f"R!r !a i n. AUl0 (s2e e v0d !$#bB-## ',&%en#2TU1?"@M#R"g&a,R"g&j'\?6iieE9 6XG"7'02U,&-!G$0 NFbJqlJAUhh7!lR!(Q:#N J>83R JWTfV  !?qY_R8>qRl?38VUVL?&d2n\] aٔXEUoe6._x_j omQ2oDo5V_h_o\056 b_HR>+s 1ǡY-MSMלC Fhy1# 2b!B Ҵ1dԦ1 @+8W1MsGgoz1[PxS 2F:j 23 l 2?o 278r 2OUFD  h ^TYY>UFD"H$'@F @FxT]]9 #4AUFD"H$@F@ @&@F?x0>Uhhn1n1`!#!J`F6 [>A{ (FMBa!? OABE3RNkO}OGBERE6 O?OBE2?;.1rA _0rRxS`3HD: ##=h0>Th]]9 (3q #UFGJg:#@F@ @FWtyz@F.???Pv> u{` ?u3>(.t  ( y?_A@HNpΈ_-t#`aU"p [`JڍU5 ILҹc0U~ "?AG}cTLIb` LineCoklK rzc+"1&Z/#nFFF"?&?#+"1&&` STadK wI/#/N+$;# FC lM 72zS&eacۢR4` uA cG nt)?@#cb3zs94#+$3$I!8<>3 Q3#8.f.30FP=4B/G3B11G;;#?1pyQ i}gTt ( u)@2`09@uMC cQ osK IfB1r@P!a`0iK n.@ UA%2 HsBe@eQ vG d@0 l>]UhzЍA3+!`J!VQAU__T3^_odgU5^No_roU __ooj'EAb59 M{7/v!3rQav44CK7%iOHBTg7D'$~vv I+"688e @ Q:(CN@v5?=+$cz,Z#b~-(T{ HD: ##=h0>Th]]9 3#UF u` ?6u3`b>"6(t  <,?A@U"p [ZBH|гYYt [ՄJU5 CLT0U"?AG}eC]` LineColZI rz۷!#nF;FF{#?&?#),)"/&&` STaKdI wG/#/ZL+$9# FA lK r72Q&a` ?RR) 3#B2((236727kpvB1o31P17;9#?L1wpyO igTt (cu)J@2`09J@uMA cO osM0IfHBL1r<@N!aH@iM0n.J@ UA#2 @HsBeh@eO vE d@0 l>]Uhz1A3)!BJ@o39DYX3UD_d_vY3^__gzUf53^_V_ozU3__H\o_j5bPf59 M{o7l/5v!3HraPv4!$ 5v|mai6oozo7]'$t~kvPv v8%TE xH@L?c8 eaD@eJ@ l@Qo:0@3 9r)']z,Z#(T5-sTAcL@0P@HD: ##=h4>T]]9 P3#UFpo@F@ @F18Q[ @F.q??P> u` ?u3 >,2t  eX?A@LR[ A\c2t#`e"p [NdJU5 MLc0U "?AG}gLMb` LineColO rz$g/"5&0mddd#nFF;F"?&L?#/"5&&` STa%dO wM/#/R+-$?# FG lQ 72W&eagRa` uA cK nt 85W%#gbd3zRw98#/$h(Ph9BB3 (C#8>239FA=B8G3APAG;?#? 1wpyU igT_t ( )@W20@9@MG ]cU osO fBR 1r@T!ad0iO wn.@ A)2U HsBe@eU EvK d@@l> 0>UhhCA3/!J!VCQU__T3^oomgU5^Wo_{oUE_oo%obTG t>Q e jXHle59 M{7/v!3rX/Qz#=!$K 7%inug7D/'2 #vtx J/":UGDF P# h>,/T6D # UFD"H$@]F@&u@P} jih,D@Su`} ?.U@Nu#hQgtSftܸtRtA@3db#t%T/M/"j/+.d#%@?/"t`Make B 0c"0ground#3%~ؒ314+1`VIS_PRXY0CHM!#60z070"w`?C40py20]i00ht&0(,0u)&02009&0UM0c22s40f2R1r0Aa0i40un0 &0Al:@U 8s>Be@e20%v$0d2"e (^q5 J% 3hHA%DK%D,K3DGg $aI_9SFTv4y13TU-T[Te ZTATU J8>wSa%F1Q01$DtybgURwSi@^UR-n,?oUR1j?RRTuKrQi? eb #! >baes?,3QRoX0cD&q1cQ(QR=wS1VZi#3 D40N40UtBn0a0n`Eq#?_^9jYazPtt"(wS117eU5`>Xcy1`I!&` H0d$2&F40qUAw0޸q` SPo]wRR+="v6 ~!R)RRLf] Th 'Q0d_HV> ל ߪJAC BFu 2Rt#v 2ƽ;B l1U@exko}+ 2oKaYPom*<N`rxx 2 ֛{ 2 2GUQ 2T$UFD  h ^TYYUFD"H$'@F @FxT h]]9 # AUFD"H$@Fcѿ?&@F5 L?sFC?P6 u` ?iu#t A@t   q?7Q.7)CWb7]ARMJqmdddpnFFF? ?Agam9T6` Fil> wCo> orz9b2j9A9obdk#zY)א9S|uX9/K&` /2L%!X!#\#w&` STWadD w/" /;)#82#b5"oU y3#B&(23"I&3cg30U2?AGQ}9L"|w` L ne%?(75N582M:Bhj<:AgCy1y17;C?C!pyJ i! htj(0)j2`09jM cJ osD fBC!r@I!a@iD n.j A" HsRe@eJ v#@dPw0l>]UhzAh#j181Ja`gCVQ'  2 bM[8A_^#e33nLo^og#eE3eVo_o#e!_>82rRA w082YsASi6bE9 MzgG]'4Ō;J!$a vvET#@x@&OnAHD # =hj0>T h]]9 # AUFD"H$@F@ ?&@Fq)?sFC?P6 u` ?iu#t A@t  ^)?7.7C_(\T[>JS/qnFFFa? ?Aga9T6` Fil* Con* orz9_b9A9bW#zE)9S|u%/7&k` /28%ߵ!D!o##&` STaUd0 w/"/+oUz G3#B&( 3"&3iE530U2?AG}x "|` L n e?#2Bh8<:*ACG1G1O7;3?/!py6 i htj(c)j2`09jM c6 os0 fB/!ru@5!a@i0 n.j A" yHsBe@e6 v0d@E0l>]UhzjADJ`XC66Q'  2RM)8@ mT}_^U3^_oagUEUtVKo_ooUp!p_>[QrA E0r sC)84Aeio6AbE9 MzG'4Z;!$Da Wvkv5T0x@?AHD # =hj0>T h]]9 # AUFD"H$@Fɻ1V?&@F&7 ?sFC?P6 u` ?iu#t A@t  Biq?7.7C!_lV}T[>JS/qnFFF? ?ga9T6` Fil* Co* orz}9b 9A9bW#zE)k9S|u%/7&` /28%!ߵ!D!o##w&` STWad0 w/"/+oU QG3#B&(3"&3E530U2?AG}u "|` L 'ne?#2BhP8<:A2CBG1G1O7;3]?/!py6 i htj(cu)j2`09juM c6 os0 IfB/!ru@5!a@i0 n.j UA" yHsBe@e6 v0d@E0 l>]UhzXjADJ`C66Q' C 2RM)8A@mT}_^U3^_oagUEUtVKo_ooU!p_>[QrRA E0r sCio6bE9 MzG]'4Z;J!$a T h]]9 #  AUFR_!@F;(kY?F̅$@F_fw?P6 u` ?u#t  \ Ac?oA@'t3(?.Zd;O?M&S?- >JS/qnFFF? ?{gaCۢT6` Fil4 Co4 orz۾Cb CACbۖa#zO)5CSu//A&` /2B%ߐ!N!y##&` STad: w/"H/+oU (Q3#B&(23"&3E?30U2?AG}u "` L 'ne?-2BhB<:A!CQ1Q1Y7;3?9!py@ i ht (c)@2`09@M c@ oKs: fB9!r@?!a@i: n.@ A" HsBe@e@ v0dH@O0l>]UhztA#B1J`!C660Q'  2RM38@wT_^U3^ookgUEU~VUo_yoU!z_>eQrA O0 rsCiy6bE9 Mz!G'R4d;! $a FvZv5T0x@?(AHD # =hj0>T h]]9 #  AUFR_!@F6??F̅$@F_q)w?P6 u` ?u#t  \ Ac?oA@'t3^)?.Zd;O?Mɯ??- >JS/qnFFF? ?AgލaCT6` Fwil4 Co4 orzCbCACbva#zO)CSu//A&`5 /2B%߿!N!y##&` STad*: w/"/+RoU= Q3# B&(!23"&3iE?30U2?AG}x "` L n e?-2BhB<:*A!CQ1Q1Y7;3?9!py@ i ht (c)@2`09@M c@ os: fB9!r@?!a@i: n.@ A" HsBe*@e@ v0d@O0l>]Uhz`tA#B1ŊJ`!C66"Q '  2RM38@wT_^U3^ookgUEU~VUo_yoU!z_>eQrA rs:Ciy6bE9 Mz!G'4Ŕd;! $a (FvZv5T0x@?(AHD # =hj0>T h]]9 #  AUF^!@Fp>?FKg@FmЁ??P6 u` 7?u#t  ?߀A@'t3;On?.Dioׅ?M@_߾?[ >JUonFFF? ?ob"ozCC]b,#&` STad_owCP lP -rz=&G/Y+[ ##e.2"#&3iE0U2?AG}x "` Li'nez/"Bh,:A!!';:3?I1py\ igTt (c)02`090MB0c\ oKsv f2I1r0[!a0iv n J0AX l07s"BUe0e\ vF0d""l>]Uhz1#!2!ŊJ`%6%6"A2  "RM(@DON(U38^Q_c_W(UE8UF_O_(U2O;2"rA 2#^cFCi%bE9 Mzl7]'4+J! $a ff95TF0x0I?s1HD # =hj0>T h]]9 #  AUF+ $@FmЁ?Fh_IŒ??P6 mu` o?u#t  $C?A@'t3;On?.N@?M? >RJUonFFF? ~?{b"zCCb,#&` STadowCjP lP rz=&G/Y+[ (##."#I&3E0U2?AG}""` LiOnez/"BPh,:A !!';u:3?I1py\ igTt _(c)02`W090MB0c\ osv f2I1rT0[!a0iv n 0AX l07s"Be0e\ vF0d$""l>]Uhz@1#!2!J`%6%6EdA  ("RM(@DON(U38^Q_c_W(UE8UF _O_(U2O;2"rA 2#^c%FCi%bE9 Mzl7'4Ŕ+! $a (ff95TF0x0I?s1HD # =hj0>T h]]9 #  AUFP0&@F'ǖ~rl?FMO?Fq_Ww?P6 u` ?u#t  ~jtx?oA@'t3ʡE?.Cl]M/$A >JUffnFF;F? ?b$zCuCb,#&` STadowCP lP rz=&HG/Y+[z ##."#&3E0U2?AG} "` Linez/"Bh,:A!!';:3?I1py\ igTt (c)02`090MB0c.\ osv f2I1r0[!a0iv n* 0AX l07Us"Be0e\ vF0Id""l>]Uhz1#!2!J`%6%6A  P"RM(@DON(U38^Q_c_W(UE8U@F_O_(U2O,;2"rA 2#J^cFCi%bPE9 Mzl7w'4)+! $aQ ff95TF0x0I?s1HD # =hj0>T h]]9 # AUF€#%@FL&d2?FM_O?ݐ?P6 mu` o?u#t  ~jth?A@t b@(.eX'?(MA>RJUffnFFF? ?b$zCCb&#&` STadowCJ lJ rz7&A/S+I[ # #.2"#&3E0U2?AG} "` Linet/"Bh,T:AB!!';43?C1pyV igTt(cu)2`09uM<0cV osp If2C1r0U!a0Uip n AR l7sBe0eJV v@0d""l>]Uhz1#!,!J`X66DA  " RMB(@DON"U32^K_]_W"UE2UF_O_"Ub2O;,"rAQ ,#Xc@Ci%bE9 Mzf7K'4Ž+!$a ff35T@0x0C?m1HD # =hj0>T h]]9 #  AUFb%@F'ǖ~rl?F2wa?Fq_W}w?P6 u` ?u#t  _LU?oA@'t3ʡE?.j+]M/$A>JUffnFF;F? ?b$zCCb,#&` STadowCjP lP rz=&G/Y+[ (##.2">"#&3E0U2?AG} "` Linez/"Bh,:A!!';:3?I1py\ igTt (c)02`090MB0c.\ osv f2I1r0[!a0iv n* 0AX l07Us"Be0e\ vF0Id""l>]Uhz1#!"J`%6%6EdA  ("RM(@DON(U38^Q_c_W(UE8UF _O_(U2O;#rA 2#^cFCi%bE9 Mzl7]'4+J! $a ff95TF0x0I?s1HD # =hj0>T h]]9 #  AUFu %@F'ǖ~rl?FMO?Fq_Ww?P6 u` ?u#t  ~jth?oA@'t3ʡE?.٬\m]M/S$AAJUnFF;F? ?b$zCuCb,#&` STadowCP lP rz=&HG/Y+[z ##. "#>3E0U2?AG} "` LiOnez/"BPh,:A !!';u:3?I1py\ igTt _(c)02`W090MB0c\ osv f2I1rT0[!a0iv n 0AX l07s"Be0e\ vF0d$""l>]Uhz@1#!2!J`%6%6EA#  R#R M(@DON(U38^Q_c_W(UE8UF_O_(U2O;2"ErA 2#^cFC i%bE9 Mzl7.'4+%! $a ff 95TF0x0I?s1HD # =hj0>T h]]9 #  AUF;%@F'ǖ~rl?FOr?Fq_Ww?P6 u` ?u#t  _vO~?oA@'t3ʡE?.]K=]M/$A>JUnFF;F? ?b$zCuCb,#&` STadowCP lP rz=&HG/Y+[z ##."#&3E0U2?AG} "` Linez/"Bh,:A!!';:3?I1py\ igTt (c)02`090MB0c.\ osv f2I1r0[!a0iv n* 0AX l07Us"Be0e\ vF0Id""l>]Uhz1#!2!J`%6%6A  P"RM(@DON(U38^Q_c_W(UE8U@F_O_(U2O,;2"rA 2#J^cFCi%bPE9 Mzl7w'4)+! $aQ ff95TF0x0I?s1HD # =hj0>T h]]9 #  AUF`9d[%@F?F{?Fߢ_-Jkw?P6 u` ?u#t  a2U0*C?oA@'t3 +?.ڊe]M~jtA>JUnFF;F? ?b$zCuCb,#&` STadowCP lP rz=&HG/Y+[z ##."#&3E0U2?AG} "` Linez/"Bh,:A!!';:3?I1py\ igTt (c)02`090MB0c.\ osv f2I1r0[!a0iv n* 0AX l07Us"Be0e\ vF0Id""l>]Uhz1#!2!J`%6%6A  P"RM(@DON(U38^Q_c_W(UE8U@F_O_(U2O,;2"rA 2#J^cFCi%bPE9 Mzl7w'4)+! $aQ ff95TF0x0I?s1HD: ##=h0>Th]]9 3$#UFt>!@Fp@FU^+m@F BP(??Pv> u{` ?u3>.6.t  ?A@RXqhki)t bk"p [SjJmU5 SLiT0U'"?AG}yFSb` LineColi rz!#nFFF#?&?#I,I"O&&` STadi wg/#/l+$Y# Fa lk &72q&` @?r)o 3#B..36=27.JM3117;Y#?l1pyo igTt (c)R@2`09R@Ma co osm0fPBl1rD@n!aP@im0n.R@ AC2 HHsBep@eo ve d@0l>]Uhz9Ah3I!J@35&5&hQ (;UL_q_T3^__gU5;^_^_oU;__do_j5b59 M{؏7/=v!3PrhaXv4!$A;7ai6oo74'&$|~svXv v_am A` Te xP@l>#mbzR#p8!e t@PQ:(CN'@f5ɔ?{I$m."z,Z#!b~-(T{<\B2>2 HD: ##=h0>Th]]9 3$#UFfG#@F BP(?FUiԄUV?P> u` ?iu3>W..t  x&1?A@RXʡE5i)t bk"p [TjJU5 [ SLT0U'"?AG}F^S` LineColi rz!#nFFF#?&?#I,I"O&&` STadi wg/#/l+$Y# %Fa lk &72q&'` @?r) 3#hR@BL..236=27$1311ԩ7;Y#?l1pyo igTt (c)j@]2`09j@Ma ]co osm0fhBRl1r\@n!ah@im0wn.j@ AC2U `HsBe@eo Eve d@0l>]UhzQA3I!J@X35&5&DQ(SUd__T3^__(gU5S^ov_6oUS__H|o_j5bP59 M{7l/Uv!3hrapv4!$ Uv}aiHz7]'&$Ŕ~vpv vX%Te xh@l?8 e'ad@ej@ @Q:1@3 9rI'm"z,Z#.T5-TAcl@0p@HD: ##=h4>T]]9 P3$#UFl6@Fp@Flf^J @F BP(q??P> u` ?u3 ]>2m2t  %䃞?A@V\m)t bo"p: [nՄJU5 WLT0U+"?AG}FWWb` LineCoklm rz醑!#nFFF#?0&?#M,M"S&&` S.Tadm wk/#i/p+$]# Fe lo *72u&` D?v)h9I!Bo? 3#eB223FA BGT2M3B117;]#?p1pys igTt(c])20@9uMe cs osq0IfBp1rw@r!a@iq0n. UAG2 {HsBe@es vi d@0)l>0>UhhClA3ZM!J@3,9&9&C"Q(nU__T3^__CgU5n^-o_QoUEn__o_(bTe ts0e j$Fje59 Mb{7/v!3rQv5!$;7aiPDV74'2B+#~vx _akq A` Ti x@p>#qb[zމV#qUGDF P# h4TPYY# %UFD"H$@F@&@P} j6   L 4 Hn[u` _?BU 4H9 u#p3lbtntQtRA%@> tS%tK/]'4( tTi%i/](/z.R&U@?/".g`Make BJ0cL0ground #d.#4#30U2)1_FB3!5~*؀3A$D;1`VIS_PRXY@0CHM!060<@78݉"`?C^0puy\0iZ0htP0(V0)P02b@0U9P0M@c\2s^0IfBvAry@Aa@i^0n@0 P0AUl@ }HsBe@e\0vN0d@2"e (^E 5 3r ca%A oCjA$A13 f3ba!5 cq@~n^e3jU?~bhKr;aq? |ub #h bauA1*4H f5ohc&Ac.abaEkQ,o^e= cAzf y3` D^0N^0tBn@a@nEi#_9Y@a `A1A1"( c'AAezeE>Xs A pIp1!` H@dN2&F^0YA @ޮ1` SPo]w:bb+"v 6 ~!bbbf,4T4?Had3E_HV>ל ߪJAC BFT 2g# 26B} 𬬘1<]@ek>o+C 2@]BBGU 2]PW 2bXZ 2{\ 2hq^ 202](32552&62;182l$:2ߒ.<2/h>26X@2 68B2QLE2X9H23 HK2 JUFD  h ^TYYRUFD"H$'@F @FxH5@@@0ۀ HD:  # ;h4>T]]9 #U,AUFD"H$@FjZV@&@@P -u `u bu  @")lt A)0t#` bFv_n?p [_eAu` ?jurJ:26W&$##D./@%W(l"r/tvel JYO8?$"'D{(/$B}U2q(0?'?96?\.?fd?F 7`BackgroundC0l0rz\)z 5G!3M1 3?l"M@h<:A酙!30O贁Nk?mdddclak)2w` A0ce0t?A)n1bdCzI7!3117;l`?1py0i0h@ (0)2P20>P92PM*PcJ2s0f0R1r$P1a@i0n..2P A0l2P)WUs|RePPe0v@dpP0l>#$!Uh#3 pA QYŊJ*!3"Be(o1HD:  # ;h4>T]]9 #U,AUFD"H$@FVj?&@@P -u `u bu  @")lt A)0t#` bԚp [euv` ?SurAJ\tt&!$)'$"3/E X/j$=(tvel gsS?$"'*Q/$BU2q(0?'?96?\.?Efd?F 7`BackgroundC05l0rz)  5Gt!3M1 3&?l"(MPh<:A!30U_B??mdddLcla)2` ]A0ce0t?A)1b[dCzI7%!3117;l`?1py0i0h@ (0)2P20>P92PM*Pc2s0f0R1r$P1a@i0n.2P KA0l2P)Ws|RUePPe0v@dpP0l>#$!Uh#3 A Q!3 (BHA 3J*!32B'e@o1VcHD:  # ;h4>T]]9 #U,AUFD"H$@Fr߹\.@&@@P -u `u bu  @")lt A)0t#` bF_xP92PM*Pc2s0f0R1r$P1a@i0n.2P KA0l2P)Ws|RUePPe0v@dpP0l>#$!Uh#3 A Q\YJ*!32Be(o1>cHD:  # ;h4>T]]9 #U,AUFD"H$@F~߿?&@@P -u `u bu  @")lt A)0t#` bԚp [euv` ?ur>JvSȱ&$)'$"3/ E X/j$=(Etvel 37?$"'*/$BUo2q(0?'?96?\.?fd?F 7`BackgroundC0l0rz) K 5G!3:M1 3?l"Mh0<:A!300b/?mdddzcla)2` A0ce0t?A)1bdCzI7!3117;l`?1py0i0h@ u(0)2P20>PU92PM*Pc2s0If0R1r$P1a@i0n.2P A0l2P)Ws|Re*PPe0v@dpP0l>#$!Uh#3 A Q]!3 (BA 3J*X!32B'e@o1VcUGDF P# h>,/T6D # UFD"H$@]F@&u@P}  ih0D *@3-T-hc-|u` ?W΍U,@T'*hh||-"| 'u#QtSt% "{tR$t/'A@#KtT%/(/-3b/(08"A2?X>d.3@??2.`Make B0c0ground 335~J3hAmD;1`VIS_PRXY0CHM!#60@79݉j2`?C@puy@i @ht@U(@)@2@0@ @i@As@fBAr@Aa@i@n0 @AlP HsRe@eJ@v@d22e h4^hh P T3 3hHQ5T[5T[3T@[TT[ETh[TX|WndPao7T1128cpAhAhEhATh]]9 3#UFԚ?F BP(?F @F߅d\?P>u` ?iu3>k(.t  9#J{?Ao@HtSݓ_N׳_ambԚp [aJڍU5 ILc0U~!"?AG}cLIc"` LineColc rz$cC"I&nFFF#?&^?B#I&&` STa%dc wa/#/f/G(iF" d3#$..36hH1$d1d1l7;S#? 1pyi igTt ( )@2`09@M[ ci os!0f B 1r@h!a @i!0n.@ AR#0l@GsYBe-@ei v_ dM@b0 l>]Uhz13C!`J/!F%QA(E _._@T3O^h_z_W?UI5N___?U Oa_!o_j5AbI59 M{R7/f!3 raavb5!$fAm/%Q12ooXR7w ' $9~0vx] vF88e 1@tQR:(CN@{f5Q?=C$cz,Z#bS~-(T{<B2 >, HD:  ##=h0>Th]]9 3#UFGZت$@F BP(?Fu?Fa]?P>u` ?iu3>k(.t  aTR'?Ao@HtSˡE_N4@_ambԚp [aJڍU5 ILb0U!"?@2LhcC"II&ynFFF#($(?#R,C"I&&` STadowC l rz&/+_y" QB3#.3i6h H1q$B1B1J7;v`? 1py igTt _(c)02`W090M0c os0f2 1r0!a0i0nU.0  l 8Us-Be@e v?@d!@@0l>]Uhz13 C!J/!FA(EO_T3#^<_N_WU'5N_O_UO5__Y_jD#b'59 M{07/f!3baf-A4!$fm/%ij5|oorX07Ww' $ ~vf Wv $8e'ua0e0 @PHZQ0:^2@3 9R'cz,Z#.T.'~-qT@Ac000HD:  ##=h4>T]]9 P3#UFD"H$@F@Fq!j@FC1[z??P>u` ?u3 >,2t  0*?A7@LtWzGcQR e0qbFL&d2?p [>eՄJU5 MLT0U%"?AG}FWMbg"` LineColg rzR#nwFFF#?x&?F#uM&&` STadg we/#/j+$W# F_ lDi 72o&G,`h9C!Bt! 3#.2236A2JM3117;W#?1pym igTt(c)20U@9M_ c.m osg fGB1r;@l!aG@ig n0 A22 ?HsBeg@em vc d2l>UhhC0A3G!bJ@33&3&C_QA(2VC_h_zT3^__gyUb52^_U_oyUE2__[o_(bT_ ti e j5ieb59 M{7/[v!3nrvv-4!$;7aiX7w'2%#՚~vvv vw_H<>SGל ߪJAC BFM2|#XO2T]]9 3#UFD"H$@Fh4@Fj~L$@FZV{?@F?P>mu` o?u3 #,2t  K46?A@LR e,֍t#`F BP(?pz [e"ejJU5 MKLT0U$"?AG}Mb` LineColf -rz!#nFFF#?&F?#F,F"L&&` STa%df wd/#/i+-$V# F^ lh #792n&` =?o))eCQ3#8&327A22\ތ32q@?O FM$? "fKO:F!%311Ԧ7;V#?i1p]yl igTty(c)y2U0@9yM^ cl osj0fBi1rԪ@k!a@ij0n].y A@2 HUsRe@el vb d@0l>0>Uhh7A3gBbJ@32&2&QA(U_ _T3^ o%oxeU5^`o_oU5_ oo.oi3 eB!3)m!#1'/28pȱ;!$8Q 52xbszgO#u%w#vj#lei:M{!/!3wxAJ dQ`$U8!e fQ:(CN@$v9K?F$g"z]#b?M-,T{{/ Ck\tq ĂHD  # =hj0>T h]]9 # AUFD"H$@&@FxitI%"p: [kՆJsnFFF? ?Abm$zOOSsu` FilA ConA orzOk` >/2O%(!(&\#&` STad*G wE/"/+ReU= 3#J8'32H23"&3E#0Ut2??AG}ΐ` L? n /Bh,:A311 7;3?F!pyM igTta(c)a2`09aM? cM oKsG f3BF!r'@L!a3@iG n.a AA" +HsBeS@eM v dHs@0l>]UhzA#!J`366KaDX' (32oRM(@T/_O_KQU3^__gUEU&V_A_!oUk!"_> QrA *bcCi%AbE9 Mz7's4;! $Da fv5T x3@?1HD  # =hj8>T! ]]9 #,AUFD"H$@Fx@&@@P6 -u `u `bu  @e" - A-0t#` b ̮?p [iuu`l?SuvAJ`rJ &$-'("7/ I \/n$A(tzip Q?$"'(/$񓾍U2q,0?+?=6?\.?ljh?F 7`BackgroundCj0l0rz-.~5e%3Q1 3?a t##FGB%3!#rٿnFFFf6AۚsA,? ("bCzy-lB-3&` STa0ow?(!` Fi0lrH2F1` OE=%:?Q1&gp!K7h<:AJ%3117;XQ@?1py0i0htk(0)k20P9kM@c2s0fR1rP1aPi0n.k AB Xs=be*`e0v0d1`0l>#(!Uh #3 XQ\iJQ*%3'928e&o i1HSeE9 MzW'0URr;!4o ]vqv1` T0xP_QH D:  ##=h4>T]]9 3#UFD"H$@F~@Ff>$@FZV{?@F?P>mu` o?u3 >,2t  Q|a?A@LR e,֍t#`Fi4F?pz [e"ejJU5 MKLT0U$"?AGq}2Mb` LineColf rz!#nFFF#?&?#F,F"L&&` STadf wd/#/i+$V# F^ lh #72n&` =?o)eC(3#82A"36A27\327q@?O FM$? HfKO:F! 3117;uV#?i1pyl igTty(wc)y20@9yM^ cl o%sj0fBi1r@k!ua@ij0n.yW A@2 HsRUe@el vb d@0l>0>Uhh7A3gBJ@X32&2&DQ(U__T3^ o%oxeU5^`o_oU5 _ oo.oi3 e23)pm!4/'2$#ձ;!$8Q 52xbszgO#u%t#xj#lei:M{!/!3wxAJ VdQ`$U8bT^ tl0e @he}}k\tq ĂHD:  ##=h0>Th]]9 3#UF3钿Y"@FFە @FNPQkӭ??Pn>u` ?6u3`b >"6(t  z6?A@BHK=kUYt ["p: [ZՄJU5 CLT0U"?AG}eC` LineColZI rz۷!#nF;FF{#?&?#),)"/&&` STaKdI wG/#/ZL+$9# FA lK r72Q&` ?RR) 3#B2((236727kB1o31P17;9#?L1wpyO igTt (cu)J@2`09J@uMA cO osM0IfHBL1r<@N!aH@iM0n.J@ UA#2 @HsBeh@eO vE d@0 l>]Uhz1A3)!BJ@o39DYX3UD_d_vY3^__gzUf53^_V_ozU3__H\o_j5bPf59 M{o7l/5v!3HraPv4!$ 5v|mai6oozo7]'$t~kvPv v8%TE xH@L?c8eaD@e J@ fQo:3@e3 9)']z,Z#bK~-\sTAcL@ 0P@UGDF P# h>,/T6D # CUFD"H$@]F@&u@P} ~ k ,D@Tu` ?LR,ru#|QΉtSzttRt 'A@tT$/ (L/+-3xOb ((A"i/.d#@3)5~??".s`Make B0c0ground#b314 ;1`VIS_PRXYx0CHM!#6008!"`?C0py0i0ht0(0)02@090M@cJ2s0f$BAr@QAa$@i0nx0 0All@ HspBeD@e0v0dx2"eYk} !HA%DK)5D,K3DKDTGnDAD_'7BTAy1y1 "(S11}51<>@XBr1I!&` H@d.2&F0o$@Az0#` SPowRo +<"v8d7e7 J@cbbg bg__0R11"Sa%1+bb$y1r,QHEq)5Se@~|u3{,|uVz?rxK2cxfq<`}? rjb #! bIgaj?@TT,3qEGxsD& 'M1sYq(q{r=SeS,fa0 D0NZbAn$@a@Q"AC@M7LqtKo]e_vH>ל @(T6D UFY,b'@F#H$ @FxT ]]9 TaAUFY,b@F#H$@&@WFF"W@P6 u`bt A@u)΍tStS<tTJ(S3d i)Ob  ADREJ#U0U8"?@$ t0 ?$( ?U kaX:`B c groundC l rzAb#z.)s$%B//#b w/bn3H? K1#5 CL.`M kek2?dQ5.1#A D5 v$`?!py;0]i90htk(50])k20S@9kUM?@c;2s=0fEBR!r9@!aE@i=0wn.k A lk>GsBee@e;0v0d@B1#lhA@=^M G5C G&dRMl>0>UhhE p.A!1 $R0SPJf l#b(.hD Ob"YbM_(F!o+g?7o3coe5noogoeV%efo+o oeE2 o;rAsCghe[+TQQM- &EtJsTl@S6V%B,QE=BAA!D)B0#` D=0N=0t*E2nE@a?@nE,15eq3FB(OqiAbV%9 M!4.'7$ň&!$Q2 $H>%1x (z)ub"`\NWFL# 2NeB C6&OPavo@{+zoB; o!UFDfP h>,/T6D ؉UFY,b'@F#H$ @Fx%B2 6gdaO{'TT'T= S5Ҧ13C#C D)@N)@tC)@nsPaiyPr$^ Ph(:LV?DOowpx`,p|rag ont] hep ad ful--> siz "]bckru"im.bY,b#H$@@5pm;μ@@3F" HD  ?hZ8>T H]]9 UUFY,b@F#H$W@' P6 lA u`l?U  u(tS&A@ctTl$bsTJh=M/ m20U?@LebTqBG H#$\( ?A3`BackgrounWdC l rzuu!$)(=~ H" #{#9"Mj%7 M`M kek/dpQu` EvNO0nt!p'!~u eJع1!';1#Vis_o RXY. hm!#6050 v`?!py ui hx0 ( u)k2009kUM0c"s fBR!r0!ax0i Un0 kA lk*GsdBe0e s1Qd0 &+?"A %l>0>Uhh5@ 7A!!!JnGV lfX 2 3VM@ !Q_&1q_mQU3^__5gU%UHVoc_CoЧU"5G_ #rRA !"cCgThe'+RT!!M-Qt^t JcTl!nqz{,@{3#T811 C!## D N t"w1a0nEH>Or S-"GqS@w`Fx~T"#֮1VTB h9]^aTRW@=+CV}Bh9 PUFD  h ^TYYUFD"H$'@F @FxT]]9 #U/P%g(|"./t  {Pk?e"p _o*'6#4!Uh#3 A AYAJ*=3F"+2BU_ ASHD: # ;h4>T]]9 #U#AUF@F\.?Fl6 @@P Vt`  ?"u u u " '@l0+bA80&t# bp [5Ru7?u_eAYJUFL8~i/6a房D!@ '!"*(E,{Pko"] U?N@*(~k *Q/Bo2q0??6??S??F 7`BackgroundCq0lq0rz~8b%I=(1g 3?"&Ph<:AZ20U0B3 Lb+ 7117;Y`]?z1pyo0im0Wht(i0)W20@9M@co2sq0fBz1rԡ@1a@iq0n]. A}0lGsBe@eo0v" Pd@0l>#$>Uh,#3 A AUE 2teA}o #J*A @"BU_1SHD:  # ;ih(>TA9 35AUFi4F? <Ѕ2P $>  u` ^?3 u4#"t  q?A@g#tYsn$"Jh?hB="5 +#?A&\ ?~!~!5 `?CopyrigTt(c)20 9M c os f"!r !a i n. Al (s"e e v0d l>#UhEI !#J?Xl]b4X6WBHD:  # ;h0>Th]]9 #AUFi4F?k?@P -u `u bu  @",% AGh[ >u`] ?u#J" ѿ$ #p/$.?/ ")Z/l)t )baht Da&(/Ԯ$BU27q 0??16?\._?b\?F 7`Backgrou_ndC0l0rz%b5=t3E1 3&? ?9!J31h17;h`?1py0i0hUt (0) 2`W09 M{@c2%s0fB1ru@1ua@i0n. A0l zGsBe@e0v@d@0l># !Uh#3 A jAYbJ*3B`Uy_1HD:  # ;h0>Th]]9 #AUFi4F;? ?@P'-DT!>-u `u bu  @"E% AG[mu` 7?u#e@)J"9$' "/-%Y'%-(c/- t aht aR"/$&QbaBU2q 0??16?\.?Eb\?F 7`BackgroundC0l0rz%b_5=3E1 3? ?9!3117;h`?1py0i0ht (0) 2`09 M{@cJ2s0fB1ru@1a@i0n.. A0l zGUsBe@e0v@d@0l># !Uh#3 pA jAYŊJ*3&"2B`Uy_1SUGD  # h#$T #3 BUFL8?Fc?@Fi4F? uP} VV    $ u` ?ULV){$$ASu#L"p [A@)HtI  {Pk5?0t bF,/|񁠅dyBM#!!Z* "`?CopyrigPt (c) 20 9 M c os f"!r !a i n. Al (s2e e v0d ;"eYk}$Hp1D%|4;E|4$7UGD  # h#$T #3 BUFibAA%@Fc?@Fi4F? P}  u` ?u# VrVh -(^<c=PLVU((<<PP"p [A@Kt  6TA9 35AUFi4F? <Ѕ2P u` ?Mu# t  q?A7@t+"=&9Enm$ >  , Jh?B="5 +#?A&\ ?~!~!5 ~`?CopyrigTtl(c)l20 9lM c os f"!r !a i n.l Al (s"e e v0d. l>UhE`I !#J?l]2b6BHD:  # ;h,>T]]9 #AUFi4Fu?k?@P -vu `u bu  @"E! ACWmu` 7?~u#m>)J" ѻt b[]dt ]&( '/$$y'!t"/%'-/ BU2q0??-6?\.?^X?F 7`BackgroundCj0l0rz!?b!I=3A1g 3?3117;vd`?1py0]i0ht/ (0])/ 20\@9/ UMH@c2s0fNBR1rB@1aN@i0wn./ A0l/ GGsBen@e0v@d@0l8>#t!Uh #3 A 7AI+J*3[2B-UF_1\SHD:  # ;h,>T]]9 #AUFi4F? ?@P'-DT!ݿ>-u `u b_u  @"! ACWu` ?~u#->J"9Bt ]d!t ]"/ $-&b[]$y't"/%'-/ BU2q0??-6?\.?^X?F 7`BackgroundC0l0rz!b!=t3A1 3&?J31h17;d`?1py0i0ht (0) 2U0\@9 MH@c2%s0fNB1rB@1uaN@i0n. A0l GGsBen@e0v@d@0l>#t!Uh #3 A 7AI#J*X3[2B-UF_1\SHD: # ;h4>TB]]#AAUFD"H$@Fc?@F%@FCHy5?P6 Amu` ?A@ u#`%t  ŏ1w-#LRtA`%"p [S$J=#UG ?| ?釉\2q- ?,/>&?\.+?&i/: -4 # #20U" @ #Mb Bh,:*A!!';`?CopyrigTty(c)y2009yM0c.0os0f21r01a0i0n.y Al0 8s2e0e0v0d0 l*>,>UhE=%y1# 1J! rBA?(wN9OOEE3wEOKOY% wESO#R] JiAle%(9 MX&7WW'$ž.! $0 V #x"j__$f!32bGgHf_1 `5kyoobq %?1HD: ##=h0>Th]]9 3#UF( x"@FFxQ}H( @Fy0խ??Pn>u` ?A@u3`b>,2t  ?sFLR +5t ""p [NJU5 MLc0U"?AG}(LM"` LineColS rz$3"9&nFFF#?&^?2#9&&` STa%dS wQ/#/V/7(iF" T3#$2236hL1$T1T1\7;C#?1pyY igTt ( )02`090MK cY os0f21r0X!a0i0n.0 AR0l07sIBe@eY vO d=@R0 l>]Uhz133!J!9 RXEO?_)[3?^X_j_W/U95N_ __/U OQ_ou_j|5Ab959 M{B7/f!3bѿavS4!$f1m%A12(ooXB7sw'$)~ vv: sv688e !@dvQB:(CN@kf9A?=3$z,Z#bԁC~-,T{< B2 > HD: ##=h4>T]]9 P3!#UFD"H$@F<@F ҵ #@Fx萢5?@FN@?Pv> u{` ?{u3` #>,2t  ]?A@LR e0t bF@ ?p [e"eJU5 - MLT0U("?A?G}FMb` LineColj rzR#nwFFF#?x&?I#uP&&` STadj wh/#/m+$Z# Fb lDl 72r&J,`h9F!Bt! 3#.2236A2JM3117;Z#?1pyp igTty(c)y20X@9yMb c.p osj fJB1r>@o!aJ@ij n0 yA52 BHsBej@ep vf d2l>UhhC3A3J!bJ@36&6&C\WA(5UF_k_}T3^__ g|Ue55^_X_o|UE5__^o_(bTb tl e j5iee59 M{7/^v!3qryv-4!$;7ai X7w'2(#՝~vyv vwUGDF P# h>,/T6D # UFD"H$@]F@&u@P}  D 3,@+  h?u` ?U~@@T^,u#Q3tStB%: D"tRB$tK/]'A@3bI/[(#:"tTB%/](/{/A*""/.dJ3@S3y5~h?S?J2.`Make B0c0ground: @3ز3AD[;1`VIS_PRXY0CHM!#60+@892`?]C0py0i0Wht0(0)0U2Q@0W@ I@i0J1s0ftBeArh@Aat@i0n0 0Al@ lHsBe@e0v0dT2A2e4^AA @Jy5 3H=QJ5ITT[y5IT,T[3IT@T[ITT7WEIT^[@EXhTWnda:oTw7T(11J2G8hcAAEA>Xr1IC1&` Hn@d2&F0ot@A0#` SPowoTD!+"vde* @"s)r#r%_w)rgA0o^So=@ib@1$1J2ty2-t3I[t ZtE "bG8TQk`aJ5AK#r)r1{1Qg ga$y5hce@6D3,φ+?6ם ߪJAC BF[b#h]CB} a]@ekco+JYe]BB8]Px`cOe،_8hGjOXl0n2gp3r5xu7xoH;4|x=rUFDfP h,TPYYCUFY,b'@F"H$ @Fx siz "]bckru"im.bY,b"H$@@\L[/f&.{@ͺl@;μ3D UGD" # h <^T$(YY#UFY,b@F"H$+@' ]P} j&(<XP"u` ? ((<<PjP nu#:xtSv߀A@#tT /tb"(9'do `%  `"Mo`Make B c ground!}Q ` Ev nt!pb ~  "%JT%-%'W+3S?$B#i#k0Ud2>3F&=i$46`#4r6r6 :2g"\i#2q0??F`#F\.?y( .O@i#dA+137]D"`?C"y ui h ( ]) 20@9 UM@c"s fBRAr Aa i n. AUl@ HsBe@Ie !d@)01w`V@s_0_RXY@cPWm![06@2.P QW"&/H:L e(^!6D _] i#HZZ`%T[%T@[3TYWgda^oC +T# 1 1`"13Rd3](cvydA C08Ua%k,@odL33TdAfx\3` D N tB!a@n8UA^E `%{MW?r6!3r0v*4*P83r69MTHD # =hj0>T h]]#A UFf0!? c@F"H$@FL( jKb' P6 ]Au` ^?M u#t  ]oEt9SENQ,>ChJ#0O迴Nk?{F 2q ?/&F\.?A8@73`Backgrou_ndCp lp rz@b Q Q#t$]A -]&MB±~<# u;c/u/!O2݇ #Iob< @P2V?h?!ܔ6!P!';3?1py0i0hUtp(0)p2`W09pM@c2%s0f!B1r@!ua!@i0n.p A| lpGsmBeA@e0v@dHa@ l> ,>Uh =E A#!1ŊJ`+6R  8x\ UVMY!9#_x9_5QoU3U+>_3__E2 _U2KrA 2NcCiA1eE(9 MX'E'0UbŔ+!ra .fjvoo{'_ !3rgfc`#fI-pHD # =hj0>T h]]#A UFL( jb@F"H$+@' P6 n>u{` ?5 u#t  ]EQt9SENEEhJ#0O贁Nk?F  ޱ2q ?/&F\.?MA8@73`BackgroundCp lp rz@bI Q:'! #t*$ -&MB±}_'!<# u;c/u/!<݇ #Ib-< @P2V?h?!܂6!!';3?1py0i0htp(0)p2`09pM@c2s0f!B1r@!a!@i0n.p AR| lpGsmBeA@e0v@da@ l> ,>Uh =E A#!1J`X+6  8x" UVMY!!_v9_xoU3^9__1UoUbE2 _U2rA 2NcCiA1eE9 MŔX'E'0Ub+!ra fjvoob{'*?!3rgfc`#fI-pHD # ;hj0>T h]]#A!AUF04qy#@FǮX?Fqo#@uP6 $> lu{` ? ;u4#*t' ‡tfmta{mvm[W"m3J#U0O贁Nk?F 2\2q* ?)/;&F\.?+A,8 iG #f?pH&M<# ";`BackgroundCJ0lJ0rz@ba0a072=?O?a4i6qbWd @B !!';us3?1py0i0ht (}0) @2`0U9 @M@c2s0IfB1r0Y1a@i0n. @ A0l @GsTBe*(@e0vf@dH@ l>,>UhE=%1#!1J`Fr  $&M3 `Q 6RFxAgߊ |? YF_W&d>2 ~`_21^'` _}A_(@M9 __Ue%2OU2rA T 2cxCiA1e%9 MX'g'0EUrŻ+$a f#xB"joo!$m_!3r =w>v12y q-> Ako(#HD # =hj0>T h]]#A UFOvE%@FǮX?FU1@?P6  >u` ?j u#t  ΈEt9SsENCп+EhJ"A|7<F ?ka@X:` Ac entCol* rz} b A bQ#z?)ۀ Ib'Ak!" //.*?/b!#Z/l 񽓱2q0??6F\.?Ey =?:@73`B cwkg0 ou d/b'Q Q3$A -6MB80UB2  !?'117;`?x1py0 ik0h ( )@2`0U9@M@cm2s* IfBx1r@/!a i* n.@ A, l@GsBe*@e0 v d@0Rl> ,>Uh =EAh#1o!J`z*`1  86n8[2 VM(X1_[gU3^9o!oUUE2~_Uo"KrA 0o"c%SiAbE9 M!4E.'D;;Da f jooŕ{7v!3r_w`v`Wvv+H=R_\H>` r =T"?KFX@|#ڮ1-TB9]^a]@+]QaG8B4PhD̋UF!IHjûK-UFDfP h>(/T6D UFY,b'@F#H$ @FxT P]]9 %AUFY,b@F#H$@'R P6 u`bA@utS!WtT6 WWb; Z RADEJ#U0U?t":#a?L& ? kaX:`Bw cq groundCj l rzAb#z)sx%8B//#b ܭ/b23/!5 /Lf1w`Mw kekz/d!/R:}y` Ev0'nt1p~O2%145 8`?!py i h0 ( )k20>@9kM*@cJ"s0f0B!r0!a0i0n..k A lk)Gs|BeP@e 1dp@B+lhA@=M Ga53+ 7L&AORMl> 0>UhhE A!d1 s$R S PJ8VlbhXD !:bDbM#( !0og?"ocZeX5jnoogZe%jeVoooZeE12_;rA*sCgPhe[+!TQQM- IEJCTf%qbt!%s3,@=M! E=s11 DB` D0NR0t 21a*@nE!X5Xeq3FB(qiA b%9 M!d4?#ԁ'ŔL&!g$oQ5 H> r (z)ub"`\NWFM# 2UeB 1 ]Pa @+% BXOV4UFD  h$^T YYBUFL&d2?F~?Fx<F BP(?| ~P?| w VBW< 2h5h? Pm?2?2P'2ȅHBU? ? D G 0eB`-City,n_ tworko ly cak iy no si"eo pR a !iq sk a !%= \%E^  G n?~#0?688?U[fcffgf 3fwf c3gwfw` f{~6a wxxxwwp` px wpu 0226yR2gy?LDrag thuesapWonodwipe.b~??Q뿤i??"&d2}L4oҿ޿UGDF P# h @T(PYY*# U@L&d2?@~?FUP} . !P6 :T 7h7|777 ,7%A'7.u`_?U"6@RThh||"u#) ^2<7:U? ?4b0{[`:S1#26X3#"2^QHW93 2 1/L1$-"@ 2  2"3'>>ÿ@ǵqp@eE?oDeF0|r&BCkBu@`i-1Bu @  26CA (B" 2#& "0)9u `u`"[ b1 $𿻐u`񾄑W3J#N5)W3Qq1q71`Vis_PRXYcPm!#5n `13RB`?CopWyrPgPtu(`)20?`U9MPc)`oP'of1b"ar%`^aUa1`i#`n WAly` )hs}bUePe)`v`dRq1N3 dZ4V1B=Tr6N3@t|6|6 x2N4#W30U[r|3]W,7^q_@VcTg dagRsqu2+ D3hhR)^RHqqE2K8CT $0aN2{5\1pac2!6u%\ GŜ1S1J[2@@R4{35s_N4]&F3s͵NSYFwUUaU,@Qr#`er51pN2K8ڀqiviv_<׀,=pޟ &K8AWBCgE/s"ITh]]9 M IAUF~?@s?F,jג?FRW_7r6?Pps-8Rw?>$Y]A  JuM` ? ;  )u*Jt' eta{+23.JvюV?lv_ ?vx]PqE>JU43f;?4.&P?Apb3bbfz@Ave bh(bv)t&*J#!!5 `?CopyrigTt~(c)~2`09~M c o%s f"!r 1ua i n.~_ Al/0 (Us32e0e vE0 d'0!3]$$#-## '.&%d 2zoGz.#@ M#J6h/z/ BK' B*ib~59 6X7oG'K0UB.&!I$Ia oFJl6.}UhU=!1 A(# ~VIP & `!& T` V_RUGD  3 h0TdYYB qUF9r?@H$$?Fvn?@@u?P} Lk f 0u` ?00DuNrtK  jtK޹ѹMWZU;!;!`?CopyrigPt(c)2\09Mj c.h osb fp"a!rd !ap ib n. Al h(s"e ejh v d #"P4#S8$,#B-5# H" G'I?O=5#H&,#Z45656 12j,$#5#0U2%53+&j  ^K5 6X77'456!.4] 6Je$B^ 6D 0HA,%DK%D0GHD: # h 4>T  9 P#CUF0C3?@&@ P?FμW3P6 n>u{` ?5u#t  (]It=W!IVR1_IlI#>y;?? ?bA@"b])b)&2\"@ #[&/#'*+:'";*t\U$q ?/6 46?> Jh1h15 g`?CoprigTt (c)02U0090M0c0os0f21rԑ01a0i0nU.0 0l0 8Us2e0e0v0 d0a1(e4B-t3 t70ieM9 kF:X=GA_'2r"Z!0 F3j|OO{=GyV!%3RGFNDGN_:w5k&_8_Rq @ElAUhhEG1#@A-!T6j& f$<f bfI(:x<'0i`c q$q3a(z=iKquM$ufE`|aOyX+cqE2o;#rA $2H bWHD: # h 4>T  9 P#CUF?@&@ _P?FP6 v >u` ?)u#t  P]It=W!IRg]Hl#>y? ~?bA@"b)b)b$񅴍2\"@#[&*<%&$*Q+:'";*\U$q ?/6 b46?> UJh1h15 g`?CoprigTt (c)020090M0c0oKs0f21r01a0i0n.0 0l0 8s2e0e0v0d0a1e4B-t3 t70@ieM9 kFX=G'2r"!u0 F3j|OO{X=GyV!3RGFNDGN_:w5!k&_8_q @ElAUhhEGІ1#@A!Z@2r80; <qL#4 bvI(a9i@`bcbu3:+}E`lQqi?X+cqM*ufoUyQquE2oe#rA $2H bWHD H# h0>Th]]9 M#JUFvn?@&@ P??@*~w?P6  >JuM` ? u#Jt =t9S!WJNbFh.>y*<? ?AJA@+b)b$J2N7Nk@MJQ&*2%$*+0'1*T!!5 c`?CoprigTtV(c)V2`09VM0c0os0f 21r0M1a 0i0n.V Alh0 8sl2e@0e0v~0d`0!E]$-# '0AbE9 6X7G'0URWB!a F"JlJ]Uhz 1#1-Z61 K 8 0R]VJ:9 6S gPQETT]]B9 #CUF^?@z?FO&_~uP6  >u`3?ju#t  @WIt=WUr mIR~[WPHl#>? ?Lb "z@A gb(N(+b*$2g"?088r #f&#fb8!r.DF&""+E'""F* \ ?X64?+96N?UJ~1~15 g`?CopyrigTt (c)020090M0c.0os0f21r01a0i0n.0 0l0 8s2e0e0v@d0w1P{4B-,3 70ieM9 FXSGG'2WUA!0 F%jOO{SGV!%3R W VdDWN_:5k<_N_Rq VEl QUhhE+G1#VA-"!T6u&F f$<f bvT(:+/U?k`c 2g.q%:uoc xWJ#eaq*uM:uf-l6R|aeyj xx-E2o;""rA !$N*H bWHD:  %$h4>T]]B9 #CUFD%?@\f#??@k߻?P6  >u` ?ju#t  I_IIt=WPaIRIJl*w#>G?? ?b߀A@eb=!z #"b $"bI$2g"?088r b#f&*8!r%/F&"+E'"%F*\ ` ?64?6N?U J~1~15 g`?CopyrigTt (c)020090M0c0os0f21r01a0i0n.0 0l0 8s2e0ej0v@d0@w1{4B-3 70ieM9 FXSGG_'2WUAZ!0 Fw%j(OO{SGV!3R W V@dDWN_:5kH<_N_q VEql QUhhE+G1#VA!Z@+*S?F <`?"B## bv@T(a9i`bcb0u%:A}?l6lgqiQaF 4qMuЍ=7{cc )A #ougq0u-E2oe#rA 0#VN*H bWHD:  %!$h4>T]]B9 #CUFW-?@=?Fh?@uV?P6 v>u` ?)u#t  Ht=WB/aקIR_noIl3ur#>!;??| ?Lb "zo@A gwb(b*)I(&2g"?@#f&#f #-(+(+E'""F*\ ?64?6N? *J~1~15 g`?CopyrigTt (c)02U0090M0c0os0f21rԧ01a0i0nU.0 0l0 8Us2e0e0v@ d0w1({4B-3 70ieM9 FXSGG'2WUA30 F%jOOŕ{SGV!3R W VdDWN_:5k<_N_)q VEl QUhhE+G1#VA"!Z@%g 1?( <Kg" bSvT(:?31J9c 0_M#db0u%@u~~mlfl?"0uM@ur\8ˊc`[y뵸m}q0u-E2oe""rA 3!$Tu bWUGD  3 h0TdYYB qUF 0KR?@xՈ ?F?@_@w?P} Lf  0u` ?00D)uNtK  Uɹt0zkn̹ k*ѹWU;!;!`?CopyrigPt (c)r 2\09r Mj ch o%sb fp"a!rd !uap ib n.r _ Al h(Us"e eh v d #"4#S8$J,#B-5#6G# G'?O)=5#H&,#@Z45656 12,$u#5#0UU53@+&j ^K5 6X77'R456!.4]R 6Je$^ 6D  5#HA,%DK%D0GHD: # Th4> T]]9 #CUF/KR?@wn?F#vP.6 Au`= ? u#t  o,It=W:CIRGm Mw+Il#i>y9 ?? ? bA@"b)b%)&񭃵2\"@# [&/#'*+:'J";*\U$7q ?/6P 46?> J h1h15 g`?Co}prigTt (c])020090uM0c0os0If21r01a0]i0n.0 0Ul0 8s2e0e0v0d0a1e4bB-t3 t70ieM9 kFX=GA'2r"!0 F3jP|OO{=G,yV!3RGFNDGN_:w5k&_8_q @ElAUhhEG1h#@A Tj&1 $<fib bfʼI(:0 0i`c 498˱q3a(z=iKquM$uft:ۍ|HaOybxE2ot;#rA $V2H bWHD: # Th4> T]]9 #CUF?@wݯn?tP6 >u` ?u#t  ]yY'It=W菗:CIRHl#>Hc? ?Lbbcbz@A } b(b*) #a 2g"@#f&*G%1$*+E'""F*t\`$q0??6 *4A?> Js1s15 g`?CopyrigTt (c)0W20090M0]c0os0f2R1r01a0i0Wn.0 )0l0U 8s2e0e05v@d0l1p4B-X3 70ieM9 vFXHG/'2r 2!0 F 3jOOŕ{HGV!3RGVYDGN_:5k1_C_)q KElQUhhE G1#KA Z@~#0f < 1#4 b vT(a9i@`bcb%u3:6}t:l\qi)qM5ufo`y\q%u"E2oe""rA Y!$=H bWHD H# h0>Th]]9 M#JUFʺ?@؏pǶ??@/Qw?P6 >JuM` ? u#Jt =t9S6WBBJNbFhՁ$>:3f<? ?A A@ab3bfbz #b$b$J 2zGz@MJ\&!(<&'$*+;'<*B!!5 c`?CopyrigT}tV(c)V]2`09VM%0]c#0os0f+2R1r0X1a+0i0n.V AUls0 #8sw2eK0e#0v0dk0@!E]$-3 7 %0bE(9 6X7G_'0UbBJ!a F-JlJ]Uhz1#1 劯Z@`Y<  8KAF4 ;RhVJ:Ç9 AS ]yY'PTGRU3U2_DQL_UEUu^jYH ]U2"_UrA Y$c( bUGD  3 h0TdYYB UFZV?@[V?FRHG?@ _BPhw?P} `f  f0 Du` ?00DDX)ubt_  .HLt %+,!iUc!c!`?CopyrigPt (c) 2\09 M c os f"!r !a i n. Al (s"e e v d AK"\#S`$T#B-]#o# &o'?c=]#p&T#4]6]6 Y2T$#]#05U2]3@qS& ^Ps5 6X87.G'4]6%!V4] F(J)e(^(I ]#HAT%D[5D0[3DDWHD: % $h4>T]]B9 #CUFO/?@/`p?FqRA?@?P6 n>u`3?u#t  noIt=WoIR#U HlAw#>2?088r@2#Aeb8 !rztb(#+#+#&y<u"?& ?"#+b%)+@'\?64?+6C? *Js1s15 g`?Coph rigTt (wc)020090M0c0o%s0f21r01ua0i0n.0U 0l0 8s2Ue0e0v@d0l1p4B-j(3 7&0ieM9 vFXj'G'2WUAŇ&!$0 F%CjOO{j'/V!3RGVYDGN_:B5k1_C_q m&lQUhhE GБ1#m!!bTc# $<f b)v^(::'Ԝ?k`c S#q%/u3;c .9~#eVquM/ufflG|aZy{ґ#q"E2o;#rA $CH bWHD: %$h4>T]]B9 #CUF3;?@/`p??@w?P6 >u` ?u#t  oIt=WoWIRIlAw#>2?088r@<#Aeb{8 !rzb(J#+#+#& yL?q#?& ?w"b%)#+b4/U%\?64?6C? *Js1s15 g`?Coph rigTt (wc)020090M0c0o%s0f21r01ua0i0n.0U 0l0 8s2Ue0e0v@d0l1p4B-3 7&0ieM9 vFXHGG'2WUAŇ&!$0 F%CjOO{HG/V!3RGVYDGN_:B5k1_C_q KElQUhhE G1#KA!効Z@x<?f# <h-nѶ# b v^(a9i`bcb%u%:6}fll\qi{ґ)qM5uf o`y\q%u"E2oe:#rA $=+H bWUGD  3 h0TdYYB qUF%@?@5,k?F ?@Q_rw?P} Lbd  0u` ^?U00_uNtK  :Z[tZJ[jIӹ._jѹԒWU;!;!`?CopyrigPt (c)r 2\09r Mj ch o%sb fp"a!rd !uap ib n.r _ Al h(Us"e eh v d #"4#S8$J,#B-5#6G# G'?O)=5#H&,#@Z45656 12,$#5#0U253@+&j ^K5 6rX77'4)56!.4] 6Je$^ P6D  5#HA,%DdK%D0GHD: # Th4> T]]9 #CUFy?@vn?F#?@u?P6 > u` ^?Mu#t  %7YIt=WaR9IR_L=*Hlw#>y!;?? ?bA@"b)Kb)&Z2\"y@#A[&/#'*+:'";*\nU$q ?/6 X46?> Jh1h15 g`?CoprigTt (c)020090M0c0os0f21r01a0i0n.0 0l0 8s2e0e0v0d0a1e4ŤB-t3 t70iePM9 kFX=GA'K2r"!0 FB3j|OO{=GyV!3RGFNDGN_:Bw5k&_8_q @ElAUhhEG1#@A!ŊTj& $L<f bfI(j! ?.۾0c _*#c ˱q3aklquM:mx<ۓ|aUyM8'hxE2o;:#rA $8+H bWHD: # Th4> T]]9 #CUF_xa*?@vn??@?]P6 hvA u{` ?5u#t  ߔ@gIt=WaR9UIRIl%w#>y%? ?bA@"b);b)b$i2\"@#[&*<%&$*+:'";*t\U$q ?/6 46?> Jh1h15 g`?CoprigTt (c)02U0090M0c0os0f21rԑ01a0i0nU.0 0l0 8Us2e0e0v0 d0a1(e4B-t3 t70ieM9 kFX=G'K2r"!0 FB3j|OO{=GyV!3RGFNDGN_:Bw5k&_8_q @ElAUhhEG1#@A!効Z@ xQ0Y; <3H#4Zb bvI(a9i@`bcbu3:+}x<lQqiM8qMuuUo/] d =xd #YuQquE2oe:#rA $8+H bWHD H# h0>Th]]9 M#JUFs`m?@|nH˲?Fdvn?@MQY?P6 v> uM{` ?5 u#Jt  o\SDt9S2X2ENFYEhI5KOV4>y<? ?AJbA@" +b )b $J2N贁NkS@MJ W& *8%"$ *+6'J"7*!!5 c`?CoprigTt (c)(02`09(0M 0c0os0f&21r0S1a&0i0n.(0 Aln0 8sr2eF0e0v0df0!E]$b-# 'A 0bPE9 6X7G'0U]BŔ!a $F(JlJ]Uhz@1#1!Z@?~ 7  >8ħ]i 6RcVJ:_3?f& .;T 1_QKTBR}U3U-_?QD_VT}UEU7&eD YZM8ʺ]a}U2_U#rA $c( bUGD  3 h0TdYYB qUFx<^?@ȵ?Fʺ?@Ot?Pn} L  0u` W?U050DuNtK Ot@ڹ *"!-U;!;!`?Copy_rigPt_(c)2\W09Mj ch osb fp"a!rd !ap ib n}. Al U h(s"e eh 5v d #"4#(S8$,#B-5#G# G'?O=5#H&,#Z45656 12,$#5#0U2&53@+&j  %cK5 6X77'R456!.4]R 6Je$^ 6D  5#HA,%DK%D0GHD: # Th4> T]]9 #CUF/KR?@}JR4?F#vnP6 >u` ?ju# t  ,It=WXBIRGm_ MwIlb>y;?? ?bA@"b.)b)&i2\"@#[&/#'*Q+:'";*\U$q ?/6 b46?> UJh1h15 g`?CoprigTt (c)020090M0c0oKs0f21r01a0i0n.0 0l0 8s2e0e0v0d0a1e4B-t3 t70@ieM9 kFX=GA/'2r"!0 F 3j|OOŕ{=GyV!3RGFNDGN_:w5k&_8_)q @ElAUhhEG1#@A!Tj& $3<fM bfI(:0i`c l$Zaq3a(z=iKquM$ufh6fҍ|aOy"?0x,bxE2o;#rA Y$2H bWHD: # Th4> T]]9 #CUF?@2L&??@@?]P6 lnAu{` ?5u# t  ]yY'It=Wȅ,d!K IRHl%mw#>y%? ?bA@"b);b)b$i2\"@#[&*<%&$*+:'";*t\U$q ?/6 46?> Jh1h15 g`?CoprigTt (c)02U0090M0c0os0f21rԑ01a0i0nU.0 0l0 8Us2e0e0v0 d0a1(e4B-t3 t70ieM9 kFX=G'K2r"!0 FB3j|OO{=GyV!3RGFNDGN_:Bw5k&_8_q @ElAUhhEG1#@A!効Z@v0Y; <B{ %#4k bvI(a9i@`bcbu3:+}76flQqi*h/qM*ufoUyQquE2oe#rA $2H bWHD H# h0>Th]]9 M#JUFʺ?@BP(T??@W0 w?P6 >JuM` ? u8# t =t9S?JNbFh?s>yr<?X ?AJ~A@+b)b$J2N贁NkS@MJ Q&*2%$*+0'J1*!!5 c`?CoprigTtV(c)V2`09VM0c.0os0f 21r0M1a 0i0n.V Alh0 8sl2e@0ej0v~0d`0!E]$-X# '0bE9 6X7G/'0UWB%!a F"J lJ]Uhz 1#1Z@~1  8[_B! 0R]VJ:9 6S ]yY'ETTh]]9 MJUF3;?@z^??@x<w?P6 >JuM` ? uJt  oEt9S֡WlENEhII>yI$<?X ?AJbA@"b )b$ )&J2zGz@M JW& /'*+6'"7*BB!!5 c`?CoprigTt (c)(0]2`09(0M 0]c0os0f&2R1r0S1a&0i0n.(0 AUln0 8sr2eF0e0v0df0@!Y$-# '  0b5(9 6X7G_'0U]BJ!a FR(JlJ,>Uh11!T0 9 F 8  2RYVJ4]1_CY?QsU3:@|>\OQ HS m`wQ52_;#rA 3$@cHD H# h0>Th]]9 M#JUFfl?@z^?F3;?@x<?P6 n>JuM{` ?5 u#Jt  KEt9S֡lENoחEhᐟI>y$<? ?AJbA@"b] )b$ )&J2z_Gz@ MJW& /'*+6'"7*T!!5 c`?CoprigTt (c)(02`09(0M 0c0oKs0f&21r0S1a&0i0n.(0 Aln0 8sr2eF0e0v0df0!E(]$-# ' 0bE9 6X7G'K0U]B!Ia F(JlJ*,>Uh1#1!Tf& 38>VM 2RYVJ:|> 3Y@P HS mۻPwQ34]1_CYQsUE2_;#rA $@c( bHD # h4>T]]9 P#CqAUFe!@b?@M?FQEV?@^?P6 L6 > #(m$uy`?Agg2Du#VtS  n4BH=t; w9_W*Ut3۶_>UF$<?Z& ?bA@b!z #"b$$"b$ 2"Z$@#&(&$:;'"*\$qy0?x?64#( Z4?V> J=#115 `?CopyrigTt (c)"@20.@9"@M@c@os@f BAr@MAa @i@n."@ 0lh@ HslBe@@e@v~@d`@+"1 44#ŤB-=#3 7Z&4%@iePM9 FXG>'K2r2Z&!u$0 VB3jO_{GZ/V!3bwWxVDnW^^Ko:B5k__q JE4"l(>Uhe Ah#A!1(Z=#F@ g0aR LoWGa"@&b$4"(qC^]?Fs(?@|0 ֿ%L|\|HD_LR4Уӟ^L-ٙ"X_a y4 pW? +?Ra@ts<ЯTh]]9 M!AUF<%?@[?FdHǩ?@W_Mw?P6 $[!>  JuM` ? ;  )u*Jt'  P&'mta{T 6Dmv޿mxb$y3>yJU]<?& ?AJbA@,"b4)b4)Sb4$J2zGzR$@MJ &5*`%J$*+^',"_*BB115 `?Cop_rigTt_(c)2`W09MH0cF0os@0fN2?1rB0{1aN0i@0n}. Al0U F8s2en0eF05v0d01PY4-,%3 %7&H0b59 FX7T]]9 MAUFvIڳ?@J?F8?@P} TP>">JuM` W?uJu u bKu `u Y-JWR]nio@&>٣~ C,ᗢeuܥ]h[o?C$ '"/'%S'-+]/' Jt  $Ӗb#"t="! Ư%'_deѬ&'YY-t#JJU2N贁Nk?<MJ6uAdbG8WbU9S;S;S6B3B115 d`?CopyrigTt (c])020090uM0c0os0If21r0Aa0i0n.0 WAl,@ 8s0BUe@e0vB@d$@14Ry36D3IP!BM2b;R?s?fzU3 7F02%je^E(9 BVXWbW_'0URšFZ!D0 bVrvZl!UhX3 1iAA! P@B#J^ewkdHD:  H h0>Th]]9 M!AUFٟx7$?@!{?FdHǩ?@W_Mw?P6 $[#>  JuM` ? ;  )u*Jt'  Y@mta{kbmv޿mxb$y3>yJU]<?& ?AJbA@,"b4)b4)Sb4$J2zGzR$@MJ &5*`%J$*+^',"_*BB115 `?Cop_rigTt_(c)2`W09MH0cF0os@0fN2?1rB0{1aN0i@0n}. Al0U F8s2en0eF05v0d01PY4-,%3 %7&H0b59 FX7T]]9 MAUF4?@R ?F8?@P} TP>$>JuM` W?uJu u bKu `u Y-JWR]ni_@"J&>kn OS?F4H⋘?"  'B"/'%S'-+]/' Jt  |3#"t="Y(ئ%'~#&' bS#JJU2N贁Nk?<MJ6AdbG8bU9JS;S;S6B3115 d`?CopyrigTt (c)020090M0c0oKs0f21r0Aa0i0n.0 Al,@ 8s0Be@e0vB@d$@14y36D3IP* M2b;R?ds?zU3 7F02%je^E9 BVXWbW'0URšF!D%0 bVvZlUhX3 h1iAA0P@#J^ewkdUHTuD" # A#A hz ,T! YJ MUFv{h?@K]`?FU UP N% # H, @ T  cO,OmJuM` /? O"6J^ Ocu#X"bs!Fۅb^uJt  7͉"tY!"^OJU2zGz?)@M#J&A@i"wb8b#9!;!;!62 %!4J#2#"6 p2.2b#9;/72l<2l?TN#=A=Ai"`?Copyrig`t (c)t@20@9t@Ml@cj@osd@frBcArf@Aar@id@n.t@ Al@ jHsBe@ej@v@d@"M#IC IG6"xh"t"Eiyn %1XGcW'0URũ6EK0 cVwZlJUdnUtLQQS) T =1T[A#A1(!`Iοͺ?@|0}# f ǿձm# Կ׌$8n:Moo` =[Weh$+HeQj?@)v&?FQ-?@iH?PS~>  F߈s|.Zߥ"lE _ e?h=X##Rȵ: Izu:t ɩ X"41(RCBS"r"5w5ae2oG[pF&ߞ֡h|}VhYr~!{/te,gEe DT?nxM殏Ea$6ЇK;@R d9:x,IyyߧUC6 -R&6t/}GyzνTB4gwqLAq@dR!5j;?@iwE?FmnX Űu{jlk8 fl?y>ĕl?_'t?quEt&XQV  :T;haai~?@^vνl쇢&UebhMHz?@^Z|b>jca>lTס/hi-Ya\1~|oW.f? 45=uTIy^. ?@}drPFuN?@zH?Q;|Uuelfay1| @pUmɯR^iqeoo oT##$g}i3 uoouBwoҕF})EL h0m&}~+̖ݿBmȇVQ9adv_UF ]"6l|]ΖmC\+~}i3 CQ!]!dΕ+ (al?@֤ |b$G4).&ܕ\w7f_Utpx'Wẏ,k/~? 5kՕHD: # h4>T]]9 M qAUF~?@%g?Fs7s^?@WҔh?P6 mL'>E  ($JuM` ?Agg2DuVbJtS t~Dzb 013v ';_>-JUC!C!5 `?CopyrigTt(wc)20 9Mr cp o%sj fx"i!rl !uax ij n._ Al p(Us"e ep v d +"<#T@$4#B=#uP!7?56 ?Ab`4z@9Al0b{3j8]b8a0$o3-=#O# O'564%酙t=#2mq @?2@ M3#JF?=EQ6<@B: ?6iie59 6XG2'0UR56!P40R FJlJD4Uh8ZQZQ ]   %a!@A1(A/.F?@":W0LRb O_LP)$J^2_o ꗦ`T8a.eEUZ+mQ?@_Vl}l?9+h5Uu?@w Vlm1lrU|pi5Ui焞?@Gd{y}.xbli\V)+hUrw?@wVleHl~s!2+hUpp%Vl߂'}|U'r,.?@C[>?Fi(w?@[ P?PU>b ԿftVlIֶ6l{)eRX0~eGdQR@_:M I~> zg@&? ɿI#?!$?Ra@B r552aQ:iт0;Kq𾙵QP!µ""]JT豸*e2 Z"s 7tG@-(F&m#H 2ߓ+OB - siz "]bckru"im.bY,b"H$@@5pm;μ@@}_3 D HD  # =hj8>T! ]]9 #UFY,b@F"H$@' P6 eA [u`l?  u#(΍tS&Aw@ctTl$bsTJ20-U?FW]ebqRG # ?sakunB`BZ ckgrou_ndCy ly rzubuAub#z)u=~ " #L#9"#MBh\"C? j0>Uhh5`7A#!Jn00.lPX2 3VM(Q_&1_QU3n o2ogUEe0&oo@_oUb5_KrA -sCgSXhe_'r!TH!!M-t "J'sTl!Mq %F{,@wj1%5bPE9 M{k7l!3k'QPsBp#!J$G=1ƀHD  # =hj0>T h]]?5AUF\,b@FW5?'P6 .L]A]  u` ?Eiu#4t1  tuKˁ=JU^;:Fx& sa@`B`BE ckgroundCd ld rz}J b J AJ b#z)ۀJ bA!"b#"bx##釉2q ?/ 6F\.W?5 8?:@7oW/i/.{!'G!1 03] \NB20UB4&'$$%117;`?s1pyh0if0ht (b0)@2`09@M{@cJh2sj0fBs1ru@s!a@ij0n..@ Ap l@zGUsBe@eh0v@Qd@0l> ^Uh[A"A]@MjA#1!J4/%CrA 0"S C`Q%S1Y9**0=*Qt&2t31:?F@F̬%?PKM! [t?[WY[ZnaU0fJ$U~tr<S! YM# ? 3&M@T@0tr$5!:+oog4! `Q^__1js+TN!p_^Wo[r5V rvM,(b  jbE9 M{7! 3a򪆢P3!5$;ۏ7愕HD:  # ;h0>Th]]#TAqAUFv\.%@F4O"Ƈ@F.r?F"H$ @P6 L6>  #. .u` ?)c,c8u#RtO  ߢ.t|} [J@}@@@FV&  ;`BackgroundC l rz@b ݶ bOA!|"/Ԕ/!K)!?#2!3z29b13{z&b@F3:3BU27qm0?l?~6F+?S ? :@7//!'#Qf31 ("C$ $lSF-2f30UB5DV&$$f3"AP"A*G;#?1py0i0hUt(0)2`W09M@c2%s0fB1r@!ua@i0n. A lGsHRePe0vZPd

 4 >UhzQ9 #AA#ZA!J`f3FI' BHN MozӋ[Hİ] 2b\B qD `2biVl+qېeNI e\0q:I lӱ`gB_@ 81!@N~P@CBfxwr|5Q5Vabe9iEovhwD_CrA) @"dlSaAiW.Fsb?FyOa`?P p ? 'l)݆9t$1d$G|,6J]w : ~gBt*<wxUGD" # h <^T$(YY#IUFY,b@F"H$+@' P} B &( u` ?U U(( Fu#PtSNA@tTLb!d ^% j#"MG`Make Bh cj groundQ` E;vl nt{!pb~- J%9-H%W#??$ZB##0U2#sF =$&#M4"6"6 ""\#2qƢ0??6#F\.?QE?@)#A!'`?C"yz ix h (t )n 20W@9n MC@cz"s| fIB:Ar vAa i| n.n Al@ AHsJBei@ez !d@ 1`VC@s_u0RXY@cPm! 06JW@2@3!&H/<e#ha!#3 H%Y #H Z%|T[?%|TWgda_C +T#!!"H!#8d3 (cQA6@0EHa?%Tk,@doEd 3F3TA`f;nd 3` D| N| tsB!aC@nEG!#^E %b{Gd?"6!3lr'0tv$@b#"6=s_H8> r =T"?KF #S1TB ^aT`o@+N doLa o c" 8 ?n&Gh _+}UFD  h(^TYYBBUF\.ߗ?x<F BP(?hP?X` ]B66]  TTTTTdH?ܸ? Q?B@L&d2?-(,1(.sUW!U&(w/x  0KB` Serv",n two k p"i h"al d v0c@ 1^| (SG|& b?,>?TTwpp pqqppqwqpqwqwq+p pppwwwznw6;5wqpwwwhghw>Drag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aabjZֿ~??+ ؿ)j??E(i\.r3r\.CUG DF P# h @T(PYY#E3UF\.?@jZ?F~߻?P} ΍L .B":J :^:rY:f 7 7ָAu` ?Uč"U66JJU^^rr)u#",'tU"J%q4??4bp0{[`: #|2&6#*'Q79" z^L1$" 7'@>>ÿ@q@@5EӅ??D5F0Zr&rBxC2u0`-1Buu&@ CAB@C$9u`u `m"[ b!wu`)3kQQ1Q71`Vis_PRXY%cPm!#5jP4P2B`?CopWyrPgPtf0u(P)f020PU9f0MPcPoP'ofRQrPQUaPiPn% f0WAl` XsbUePePv/`d%SRQ1#d:4%!*@8=3R6#@d\6\6 X2$B#30Ub\3]zg,7^-q>@VpcT<`of0m`sP4a>mmdasIJ'BT1/t"0t.2QQ3QQB3 tj1j1"5hbI6% 72EC?|8LPZX116Q;sa>arExAsF@>>ý__0Ru'@`*Xr>a cc^`Roo H?䣬!e'2$r d bpf`bffb bpf"}Be%Rbk ``.e;Rkbrđf@B #[_z}R=3đđBޅrr++r,$t -tH;:@0a(IafcX(Pq`uK`AP!eqPrqbBq b%F@rBq8%5=3_tD&&|rf"e#F3s͵NSYr'X$G,@R!B衅W_i_.] Q QBHʀ=34I'F}@` %_&͒#J0 Q`wNElWODpKDH0PِRTߐRlIِSqIQiOO|1<3;K'0U?}10~U3Uee8sTeq rqqq13@H36EBM$BM4BeMLBMB3M̅BM-uBG2HD: # h0>Th]]9 MP /AU@jZ?F͂T??FSFظ?P6 .]A]   JuM` W? EKu4bJt1 ytuo[=Jb(A =>JU2zGzt?@dM#߀A@bM;#z1 /#\I(bW)d+)d&J["*(w"?& ?AO$Tf/%B115 `?CopyrigTt(c)2`09MC0c.A0os;0fI2:1r=0v1aI0i;0n. Al0 A8s2ei0ejA0v0d0 1Y4-X 3  7&C0b59 FX7}'0UB)Ź&!$aI 7FKJlJ]Uhz211O! !u6?Fh,\.>*0II=*t >J:@T&ȑ/ [WpY\QEUzU . X[:;QRuSU5UF,®\oZOnlQ 8MP@u?FR >Nk"\T`GbmMlQi_f0%=mUt.m {=4+ ߥP> D"? 5-g?T0tp@bTh]]9 MP qAU@;?F5K?@xEL?6?F6?Pn6 L>M  P$  #uM` ?=`cc.@uRJtO  bm&QȽtA@Lؽl]WI@[>JU2zGzt?+PS@M/#J?&A@bbbPzs q#b](b)+&J[9#,ɺ ("a?& ?AR$ /%B9#V1V15 `?CopyrigTt (c)02`090M0c0os}0f2|1r01a0i}0n.0 Al0 8s2e0e0v0d0'"O1YS40#-9#b3 b7&0%0AbE9 YFX+G'0UB&!4a yFJlJ]Uhzt1h.A!-(:9#t.%-+0JN H߃W%$Jq-&?F mO" >Nk'"\RSWNh[H@_[4I 뇥P> 'CK=o? nO-?N]`@ b<couor5%BUV 6?woZA^ǿXEU@ T6?F __ jv6dDlVߦyZgPRkro}oiBdalN!\z3>6>CRHS X?BnDeTGvN7VHD: # h0>Th]]9 MP JU@jpiH?F[^?@$?F]Fڻ?P6 >JuM` ?j uJt  (a&aEt9S;-FEN=ۯ=Eh?u;>2zGzt?@M|JA@a7b#z}b(b!).+.&J[-m(?& I?A$0/Q%B!!5 c`?CopyrigTt (c)02`090M 0c 0oKs0f21r0@1a0i0n.0 Al[0 8s_2e30e 0vq0dS0!(Y$-# '& 0b59 6uX7_'0UJBŃ&J!$a FJlJ]Uhz!1!劵:F% Y.  8?zY^J4 ]9$]$R9S/RJUE UH$S!\1\? GX5ZU_YQJU __-_?\HD H# Uh4>T#A]]9 M /AU@jZ?FL|+??F@{~?P6 m. >b  JuM` ?+ILKu8J1t5 }ty_7??J]bA>tJU2]U"?=@MJ&A@3(WbA)N+N&JJ[ "#?& ?A9/Z) !!5 `?CopyrigTt(c])20A09uM-0c+0os%0If32$1r'0`1ai%0n. WAl{0 +8s2UeS0e+0v0ds0!E$5 򤲝-? 3  7&6iieE9 6X7 "'0#Ŵ&!$0 TIF]JlJ8>U#9AA `1!:Nk"\T`ObmM\"f4N[7 zex-K=FAa տ[jr D"? WZvD?4xa@RB#Th]]9 M IAU@FK?F\gVb?FY%?F_wᳬ?PJwW?>$[ >  JuM` ? ;  )u*Jt'  ^Zmta{֙3.JvdE @x?"_r?v{4܂ >pJU43f<!.&P~?b3bbfz@bAe&bq$Jd 2zGzt&.#@M#T"I&r(~&i$q)Q+}'i"~*B#81815 `?Co yrigTt (c)o02`09o0Mg0ce0os_0fm2^1r 1am0i_0n.o0 Al0 e8s2e0ee0v0d011Y54#-#D3 D7.&%g0Ab59 ;FX G[G'0URB.&!I$a [FoJl&}>UhE3MV1Ai!(# jV? & `& T` V_RUHPD  # #>h0TpHeeJ EU@u6?F5c{g&?@{r`5B?FF:Iͷ?mj>  M   *  (Y JuM` ? Y ":N`u#xJtu IoI%t"' % 'ii%$'`OkŁJU2"?@Ms#J&A@"b(bU)++&RJp}#>1#19 ?#bbbz| &/5> }#11"`?Co0yrig\t (c)02h090M0c0o%s0f21r0Aua0i0n.0_ Al!@ 8Us%Be0e0v7@ d@k"1Ue4t#B-}#3 746t%0 jU FXyGG'0UR46!O4i FJlJ$jUp5 3 h19 1!q(q4}#&J,t R j# 8bD?@@)?FvP؞?PEkU O|\QnS .܁nts}ped`,of :o ,M ? &d2? bȩ?tP@RBBoogr"55ZQUf_x____bY@ßAc_\jF?4ևi$on&h{c8oJo\opoo T)Y oaoooo o 6$|U7I[mS Uy{䷰7h7}'g"(I%ZvShX"cwӏiďa$xUGD  3 h0TdYYB U@%)?Fxg^?@ ߯H?Fw_7Uw?P}   f  f0 D fX lu` ?00DDXXll)ut  871%t%!?"Ư)1%:'ֿTeΦ1%T'ʤU!!O"`?CopyrigPt (c) 2\09 M c oKs f"!r 1a i n. Al00 (s42e0e vF0d(0"#S$#B-#l# '?R=#ǒ 2$Z##0U'B3@& ^5 DFX7dG'R&Dŭ6!4] dFxJeYk} #HFQ%RT][b5RT0][3RTD][5RTX][RTl]WHD:  H h4>T]]9 MAU@ ߯H?Fԋz)e??F9q?P6  >IM (#<Pd`<#P#dJuM` ? #2FZnubJt E-tA!["XѮJV&bN$p'N]I֤>J)U5 J[-# ?6 ??" A@.2Sb64B#2zGzt3@M#Jc678C6.? ;B72C: #115 k"`?CopyrigTt^ (c])^ 20@@9^ uM,@c*@os$@If2B#Ar&@_Aa2@i$@n.^ WAlz@ *Hs~BUeR@e*@v@dr@"14ʺ#-/ C  G6&iieP59 &XG W'0UiRŴ6!#40 $ V4ZlJ]Uhz@A!1(`C@U&pz?FDUy{?,d@#b`sb`"J-d K-q?F@F?F F0 ?Nk"?GiE*]CpdadC0[dhZe@#eGDQ> @" i$a3n&Y+`~rrood]io;e s"yr1C82K?Fѻ4G{?F-qx>tFjR^{|ZlYZe tmP|{Mޥa 0 1iS? q1+?wa@rc(<;"̏A!rFÀ5H5aE=*[^N?F%P?@"P&@ c?F{MTh]]9 M]AU@}%?F[$,?@+#V?Fd_3֡w?P6 B>M @ $ JuM` ^?3YY.KuHJtE  L<ܩt.'_3zMҩ,wsQ>JU2N贁N[?@M#J+&Aw@b](]i+bk)+)&Jp%#4"?>"<5!?& ?M#bbbz$ Rp&"/%B%#L1L15 `?Co yrigTt (c)02`090M{0cy0oss0f2r1r 1a0is0n.0 Al0 y8s2e0ey0v0d0"E1YI4#b-%#X3 X7A&%{0bP59 OFX!GoG'0UBŔ&!$a oFJlJ(>UhoI j1h$Ac!(`%#@'$F?>D{Q>L!gfQQ R "Jg V?Fo-R?@bHQ??FT!R?P& ߤlH\f6V\P5_E+UDv;*UmʙHQ:? w8s`*%$? .l?Q? ?\?D4_!R oogr5%Q3p_S@hIL?F~Kz?P)Oy޾ F @c"rA b$^sPj+u`dl(ET+QdAf u8<$HD:  H h4>T]]9 MIAU@ ܋?FOa>?@q`5B?F1*ݷ?P6 m8> (JuM` ?#SS2)uBJt?  \Eto֙>_B|KR>JU5 Jp'>͙#<?Z& ?bbbz@b#;A&b$B 2N/N[Z$@MI #"&(&D$ :;'"*#d1d15 `?Co; yrigTt (c)02U0090M0c0os0f21r; 1a0i0n}.0 Al0U 8s2e0e05v0d0"]1a4 #-,/p3 p7Z&'&iieU59 '&X9GG'K0UBZ&!u$K0 FJlJAUhhG1!- (T9C&J> RbT$R}R( "J:]Uy{䷧_8S s_@ o4%BT@.Tw?F:^֝ä >Nk"?YUU!f>)?\(K8ӷjmKl? a\$QU5Ui,SlQ%iu~!8hE_= T?F;uQuo`"rA 4sjQ޽lğ=onHD:  H h4>T]]9 MIAU@ ܋?F<j?@q`5B?F^ݷ?P6 m8>M (JuM` ?#SS2)uBJt?  \Et[Πؙ>_B?&}>J)>JU5 J#2N迴Nk?S@M #JC&AP bu(b)J++&B1[- #L#?&| ?$H*'#O1O15 `?CopyrigTt (c)020090M~0c|0osv0f2u1rx01a0iv0n.0 Al0 |8s2e0e|0v0d0"H1L4 #-/[3 %[7&'&iie@59 '&X|$GrG'0UBi&!40 rFJlJAUhh7m1!{! (Z$CR&FUy{?X> 81cKR RV "J{T@ ![?F=$. >Nk_"?YPSW>OcK8RKl? ף_p= $B:]'i,S\6aYss9$Q@5UV+6o'lQ:ifOdD`i[Dž}soąo82{_U{"rA z$s"HD:  H h4>T]]9 M!AU@ ܋?F@_v?@q`5B?F1*ݷ?P6 m$> JuM` ??Su.Jt+  \Epteap'Eqz>Bq|7>5 Jp>G͙;?2& ?bbbz@bAi&s&Bh 2zGztM?+"@MrX"&v(bu)+s/8*T<1<15 `?Co yrigTt (c)s02009s0Mk0ci0oKsc0fq2b1r 1aq0ic0n.s0 Al0 i8s2e0ei0v0d051P94-H3 H72&iie-59 XG_G'0UB2&M$0 _FsJlJ( >Uh_I `Z1m!afR* zRQd J:`]Uy{w_$S s@ +o4B`T@.Tw?F:^֝ä >Nk?"?zYQYV*)\§(7$d?ӷjm7lb+d ha\HD:  H h8>T ]]9 M!AU@ ܋?F*?@q`5Bǯ?F1?P6 $6>  JuzM`l? C"u2Jt/  \Etti|u~>Bu뒣;>RJU5 Jp>͙#<?6& ?bbbz@b#Am&by$Bl 2zGzt6#I@M\"&Rz(&q$y)+'q"*h,#:3o1o15 `?Co yrigTtk(c)k2009kM0c0os0f21r 1a0i0n.k Al0 8s2e0e0v@d0h1l4e-:?{3 {7I6&&i bP159 &XDGG'0UBX6&Q$0 FRJlJ(>UhI 1lq!a4DC9Nk"?CYQYf.Q;(hğ=;Af/h (\UHLuD" # ;3h( TEJ kU@jZ?F@{W~?P VN- I A `*%#.>>uA` ?%i i4iHu#XpTb>tU b7>t  a>U2zGz]?@9 %#>5&A@g(bu)+&X" !f$>F/#"&#="& "m"bu);r'X"i,X"/N/#11-#`?CopyrwigXt dwc)020090M0c0o%s0f21r01ua0i0n.0_ Al0 8UsBe0e0v@d0"i f &%!X/#]'0UB&Z5%0 VJl>8fUlY(C '(#vAm!#(:/#_Cgwu?F( mO"\>sl?/h%mq.%-+?@lփ?F^Uw>o|m7yQySf|wA=$*<~a3d@9SӀaۏ펃y'e0a#FX_`H> V+s LyC{:,YF a/r#10&OB 1~d w2@+( yQsG ʁf M=8 A D G K`N?xcRXelUh{ZHk|^n2b$pe.(shAXu5ltUFD  h(^TYYBBUF\.ߗ?x<F BP(?hP?X` ]!B66U 66 66%66ȅH??f]B@L&d2?-(1(.sUW!U&w/ҍ~  0QB`#Mainfr me, etwo k p rr pP1al d v c %1^| (SUG|& p??(:L ?qpwqqq wq wwpwq  qqwwzEwwtqwqw~wzqwqwp~*?Drag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aabL&d2ٿ\.??{ڿaAv??"jr3r\.CUG DF P# h>@/T(6D # #UF\.?@L&d2W?@w?P} <.4! D:J D:^:r,: A7f77f7 7!7&"l70&u`?( "66JJ^^rrTU/&0&0&D"u#N) ^2<7qU ?4b@{[`:#B'FT3i"'RQ92 z1L>ÿ@q@E?BDF,@rRSBu@`҈-g d(ag;_3@JAJA2hhXB)3*ÄR+Є.bq q2&&:r816a,s2+66u\L %8WQA$A[(BBSP@RXESTO$@,r23rUrD.e53_4&F3s͵N?SYFer=@:u]Qv,@F=a`up]XE628ABTOfD"J-$RRO(R[)VO`Rpasd`.e Tpx``B2+ 0Ls'_"x#0!UJ"b_ 簋 B)U2brJC\Rr˨83vvF_<U"D"=m2Q:2Q]q2XBƅ3/nR0{.b[a[a22:raa  A AE,,f7Ԣ18Q`#A#AQ; ^rprqqMMr1"8J6=a~Ak ]\SP@` SPa`e`lBsa_` E0ud`px`e`JXEas` T``U\cam`uF3dr7` SbM`i`fbUD7SLgn*f`c`ub/.eQXJAPbd. Nm@Je@=O! P`rx7x.[b`m DraeNiu9KoAe1S`u^8 Sri`a /J T//A/^`L`ch@{/Ҡ///Bl pQ/ @?#?<R`#Q?W??*oNwbkl"b`KҸH?[Ij`ad ps*OT]]9 M JU@z^?@]z?@ZVjźP6 ܠAJuM` ?juJt  3\It=W(\I*RIl#>2zGz?@M|JA@e7b #zb(b%)2+2&J[-m(?& I?A$4/U%B!!5 g`?CopyrigTt (c)020%090M0c0oKs 0f21r 0D1a0i 0n.0 Al_0 8sc2e70e0vu0dW0!$-X# '&?6iie59 6X7/'0UvBŇ&-!$0 -FAJlJAn h71Z1!TlL2 $<[V  ORvVJ:%'d2ɩ PY]PeS YY˱QEaZ_`YQU5U=Vr\. l\QY?))bUb526_;"rA #cHD: # h4>T]]9 M JU@d2L&?@P( ??@>?P6 e]A#uM` W?SuJt  RQ͸It=W\_(\IRIlƒ_',#>[,ɺ (? ?Ab A@"Sb$J2zGz?+P@MJ=&#fbbbPz (bE)&,"*UB!!5 g`?CopyrigTt (c)020%090M0c.0os 0f21r 0D1a0i 0n.0 Al_0 8sc2e70ej0vu0dW0@!$b-# 'Y?6iie59 6X7'0UvBŴ!0 D-FAJlJAh71h1!Z@bgX,  <)gV#\ M OR|VJ a9PY]PPReS[RUE:]r\.M\Q`YO Q5U=VN_YQĖU526_HU"rA #cHD: # h4>T]]9 M JU@z^?@<0 ?@bX,?@_~w?P6 >JuM` ?uJt  ףp= It=Wk t@IR)\_(IlK&D#>[-m(? ?AbA@"b$J2zGz?@M»J=&#fb{#z (bE)&,"*UB!!5 g`?CopyrigTt (c)020%090M0c.0os 0f21r 0D1a0i 0n.0 Al_0 8sc2e70ej0vu0dW0@!$b-# 'Y?6iie59 6X7'0UvBŴ!0 D-FAJlJAh71h1!TL&1 $<[V  ORvVJ:?`0 PY]PeS a+QEaZ_`YQU5U~=Vr\.m\QY%NX526_;"]rA #cHD: # h4>T]]9 M JU@RT*J?@r\.?@zP6  >#uM` ?juJt  ףp= It=W\(\IRQIl#>[,ɺ (a? ?Ab Aw@"b$J2zGz?+P@M»J=&#fbbbPz (b)&,"*B !!5 g`?CopyrigTt (wc)020%090M0c0o%s 0f21r 0D1ua0i 0n.0_ Al_0 8Usc2e70e0vu0 dW0!H$-,# 'K?6i@ie59 6X7'0UvB!0 -FAJlJAh711-!Z@3F  <F9Kt#  OR|VJa9PY]PPReS[RUE:]M\Q`YLQ5U=V N_YQU526_HUv"rA # cHD: # h4>T]]9 M JU@L&d2?@|??@t:?P6  >JuM` W?SuJt At=Wi_6#J]RbJlGX%#R>[*(? ?AbA;@"b $J2zGz?@dM#7& #fbu#z$ ( (&,"*BB!!5 g`?CopyrigT}tZ(c)ZW2009ZM 0]c 0os0f2R1r0>1a0i0n.Z AUlY0 8s]2e10e 0vo0dQ0!$ę-# '?6iie59 6X7}'0UpBi!0 'F;JlJF!( ]A!1-!Z@ B <yO#,4#BQ YR VJF!L&?@bX,_S RQ#jYiFQEU,b?@%\\(\\aX5U@?@ՔJR\p=o ף\kQX5Ufl6?@3oF\H8!\4rOiX:=?F&[f3r|UnTeRU ugZY8oJi QyZV'j[3rJa=yUU2@_RU"rA # HD: H ih(>T9 M3AU@L&d2?@\.?JP6 t >%M  &:"S:JuM` ?S0DVhurlnb#4"Jto ob'#t3&>JU#g"X#a?~& ?AJbAW@"+7 #J!%(,Ja#2zGz~"@MW#"6/%b)_;_6" /*Ba#115 2`?CopyrwigTt `wc)020090M0c0o%s0f21r0Aua0i0n.0_ Al/@ 8Us3Be@e0vE@d'@O"ib =X%`!Xa#Y'0UB~&%0 JlJ UhMQQ A75A!U(!1L&?@bX,Ơ h # RQ{h# >_,S{J,b?@xz^?@1o=?@h?PQ ̿ A!Y\(\\tگ@ UnĿvUohú{:i dk6!d P Ln4!lBoogr5%BUfl6ˣ_nH1_Xq~?4F6H/ ݴpX =?!6@,9?@HW8?P`ڒ੿ ) !oqf%$$UjGil!j( gtoomddvg0|RQPbرɠ )8!Oy;DcwVQ]z,Nz(6abxZQ~FZVjp[3’L%q^QFvc~b-Tt$bxbQ蟯 ' OBNz)6bXfUU^@ss9 ?@u?P1r _RUj2ilpfg.ɏmbd,>gxHD: # h0>Th]]9 MP IAU@Dxb?@F+?@`Wڔ?@u5F&?Pps-8R?>$> n JuM{` ?e ;  Su*Jt'  ʼnhmta{|_3.Jv9?\̧q?v-F$>JU2N'N[?@M#J&A@bI(bW)U+RU+U&J[# (<!J m?%P?AR^$(u/%B##1#15 `?CopyrigTt c)Z02`09Z0MR0cP0osJ0fX2I1rL01aX0iJ0n.Z0 l0 P8s2ex0ejP0v0d01Y 4#-X#/3 /7#(R0b59 &FX7FG_'2WUAFJ!$a FFD$&#l,&}>UhEMA11-O!(#H UV & `&d T` V_RHD: # h4>T]]9 M JU@^z?@ `?@<?@>_w?P6 >#uM` ?uJt  QIt=WwIRGzIlƒO_,#>*5 g`?CopyrigTt (c) 2U0 9 Mcosf"r-!a in}. AlH U sL"e e5v^ d@ PB[,ɺ ("a?& ?Ab Aw@"b$- &2?+P@MJ\6#fbbbPz (bE)&,"*%?@6iie 59 @6X7'K0UvBŽ&!$K0 -FAJlJ A>Uh1MDH]A U H!1|4#hLjA*lX!効:@MJR Y <RyJk1LbX,?@`0  S qq#Y`?[G=`a]~mΓAdžeЕQQ0F0ZVCXQ`@iqm2.uQQ=0r"H$YZ~X#Q`kwU{qm)F&uQ'QaZS0W+Q6`V BPXUmt~QR٘6p?@B |"Y(aaX$_کȑYr%e"U1/AoJ\` V"X;Q}rܢZ;o6hׯA\a ?,H%5eQCQ.|JZ'Ja6h1Aupm +p;eQ3@ Z,6hOQ'AE;Y}R8sRYh~Df7gWQAhVǫjfjchiL&E7gjE3ɏd2L14~.yl߶7ggQA?p8;M7 AİeXkQ9QUoQA4F G`XsUWiZñeHD: # h4>T]]9 M JU@JRT*?@+@ ?@ `0?@ ?P6 >n#uM` ?uJt  zGIt=W贁NIRQjIl{^z#R>[,ɺ (? ?Ab A;@"b$UJ=!=!5 g`?CopyrigTt (c)t 20 9t Ml c.j osd fr"c!rf !ar id n.t Al j(s"e ejj v d  6!E:$-I# I'L2]z?+OP@MJ\6#fbbbPz\ (b)&T,"*?@6iie 59 @6X7'0UvBŴ!0 D-FAJlJAhK7[!h1!Z@߆gp8  <JmQ#  OR|VJa9PY]PPReS[RUE:]6BGP(M\Q`YmRbU 5U=VN_YQUM526_HU"]rA #cHD: # h4>T]]9 M JU@jZV?@@?@,b?@&_d2?P(-DTw! @>>JuM` ?uJt  QIst=WR\(\I-lU#>[-m(w?ZP?AbA@"b$J2zG/z?HJ=&#fb{#z (b)&,"*B!!5 g`?CopyrigTt (c)0W20%090M0]c0os 0f2R1r 0D1a0i 0n.0 AUl_0 8sc2e70e0vu0dW0!$ę-# '?6iie59 6X7='0Z!0 -FRAJlJ(>Uh-I 1l!`a9 $< J:@t: HYdQ]S lQE-UV_XYTQHD: # h0>Th]]9 MP 5AU@D 1!?@&?@`Wڔ?@ 6F&?Pps-8R?>$ > n JuMy`?e ;  Su*Jt'  :mta{$_#pYmvK@{3.Jv׊ߖ.?k-I?>JU2N贁N[?@MJ&A@b5(bUC)A+A+A&J[? (<!6 ?%MP?AJ$(a/%B115 `?CopyrigTt] c)F02`W09F0M>0c<0os60fD251r80q1aD0i60nU.F0 l0 <8Us2ed0e<0v0 d01Y 4-3 7 #>0b59 FX72G'2KWU|A F!$a 2F#l(&}>UhE M-11;! AVI & `!&P }T` V_RHD: # h4>T]]9 M JU@&d2?@<0 ?@|>?@_~w?P6 !>#uM` ?uJt  )\(It=Wk t@IRף_p= ׳IlK&D#>[, (? ?Ab A@"b$J2zGz?+P)@MJ=&#fbbbPz (b)&,"*B!!5 g`?CopyrigTt (c)0W20%090M0]c0os 0f2R1r 0D1a0i 0n.0 AUl_0 8sc2e70e0vu0dW0!$ę-# '?6iie59 6X7}'0UvBa!0I -FAJlJ]Uhz11!Z@`0 f <:a+ѐ#B SRԀVJ:BP(?L&YS RJ)#hT_RUEtL!ZrMP  _QdYP^CyQ5Ul6aTYa\8{?h5a=ZR_YyaĚU2:_LU"rA #sHD H# Uh4>T#A]]9 M AU@L&d2?@\.?tP6 j">  ( <$U<mJuM` /?U2FXjutJtq t ,J&b2$H &C">[JU7w$?& ?A5"bA@R"&Jtm#2U"?s"@Mc#J&(IC (/58*m#p1p15 "`?Copy_rigTt (c) 2U009 M0c0os0f21rԙ01a i0n}. Al0U 8s2e0e05v@d0["i1Em4d#(m#5 -EO|3K |7&WFi@ieE9 WFXmGs"'K0#Ŋ&!$K0 FJlJ U#%]VQVQ ]9 1HA!a(Zm#]/z JpC"j(\g}QQ R"fd"J:TZV՛jjS 3sbd dW&@aa5Le@%c~\ja}_,‘up2u?pf}Lb .lukut PF Lpa @cBr5%3q?u,b?@xz^?@oo=?@?PqQ ̿ us&r\ϑ|t@ ħ|v˽|oohwà0B  "K2[@a!fl6NwekH?zGёtm !+s KwYZHCEl#Fxxry92 }swOB t~d u@+X?LsGy^f8x h$~ Ɉѻ(?+=Oa?8c;//%/7/Ho(k"XSSP!UFD  h ^TYY>UFD"H$'@F @Fx,/T6D # 9UFD"H$@]F@&u@P} jihf,l>u` ?V,@y^u#hQtSfttRt'A@y3dbr(+#tTB/(u/!/ <"/S.pd#@i#5J~?/"._`Make Bx0cz0groundT#X3Ҵ14;1`VIS_PRXYn0CHM!_#60080"`?C0py0i0ht~0(0)~02009~0M@cJ2s0fB Ar@GAa@i0nn0 ~0Alb@ HsfBe:@e0v|0d$n2"e (^C5@ #5 X3hHA%DK5D,K3D@Gg$aq_DaS T@H11"T2-T3[T ZTET@(APa%1 C1o1Do1y.bg B2Q5SiC@nU3bk,qoUcj?bhKrQi? ^ebo #!} baRe#d,UEohbcD&'C1(cQ(QR=S1fZi#3 D0N0UtDBn@a@nEEg_09YBaPPo1o1"(S11iee52>bXc1`I!]&` H@d|2&F0q}A0q` SPowُbb+e"vM- ~-!bb bL~f]Dfah 7Qbdҏ䅕HD: # ;h4>T]]9 # ,AUFD"H$@FZVj@&@@P -u `u bu  _@"f)l A)0t#` bFNt?p [eܠAuv` ?5urJϞ>Xq& $##./@%W(l"r/ tvel 46<R?$&(Q/$BU2q$0?#?56?\.?Ef`?F 7`BackgroundC05l0rz)z5=t3I1 3&?h<:JA#3+0UQB3_ 3117;l`?1py0i0ht (0)@20@9@M@c2s0fB1r@1a@i0n.@ KA0l@Gs RUe@e0vPd@0l>#$!Uh#3 A A\TYJ*3BU_1HD: ##=h0>Th]]9 3 UF>T/?FD"H$@Fn- @FN?t?P>u` o? u3`>$t  `"?A@>D$_~Ut W"p [VJ5 .Lc0U?AGG}YL?b` LineColA r&zY!"'&ɆX#mddd#nFFF"?&?#!"'&&` ]STadA w?/#/D+$1# F9 lC '2I&aWY*1` Ac= nt/#Ybdy3zg9*#!$)$|I!8<e Q3#8$f$3$FP3(B#GB117;1#?!pyG i}gTt (u)@2`09@uM9 cG osA IfB!r@F!aV0iA n.@ UA2 HsBe@eG v= d@0 l>]UhzЁA3!!`J !V)XU__Y3^_oXgU5^Bo_foU@__oojEb59 Mb{7/v!3rav44K7 %iPCH6Hg7w4'~vv !"608e @Q:(CN@v+?=!$Yz,Z#b~~-T{ HD: ##=h0>Th]]9 3 #UFH$$@FFJx-C-?F BP(ԭ??Pn>u` ?6u3`b>"6(t  2U0*?A@BHV-kYt ["p: [ZՄJU5 CLc0U"?AG}]LC` Line_ColI rz])"/&Cmddd#nFFF"?0&?#)$1$)"/&&` STadI wG/#/L+$9# %FA lK 72Q&a]A1` AcE nt?#]bd3zՃ~92#!c'  3#e8((3F7BGk+B$JA3117;9#?1pyO igTtW ()@2`W09@MA cO osI fB1rԗ@N!am0iI n].@ A22 HUsBe@eO vE d@0l>]U@hzA4K ?BEOJ !9"XU__Y3^o(o{gU5^eo_oU_oo$3ojEb5(9 M{7/6v!3ra4v54ve}%i6FWig74 '$~vx 1)"&8ea:@e@ @("4Q:/=@3 9)']zE,Z#(T(-ӁTjQc@0@HD ##=h4>TB]]9 3UF.L@FD"H$@F+@FNt?P>u` o? u3`>"(t L F%u?A@BHڬ\mY(t["p[ZJ5 .LT0U"?A?G}FCb` LineColE rzR˵#nwFFFw#?x&?$#u+&&` STadE wC/#/H+$5# F= lDG '2M&%,`h9!!Btn! 3#.> (3672M%11Ԓ7;5#?!pyK igTt (c)'@W203@9'@M= ]cK osE f%BR!r@J!a%@iE Un0 '@A2 HUsqBeE@eK vA Id2l>0>UhhCA3%!bJ@&)C6XU!_A_SY3g^__WWU@5^_3__WU@E_y_9o_bT= tG e j5ie@5(9 M{x7/69v!3LrA,Tv5!$;7laiooXx7w'2#x~ov]x vw_H<> Eל ߪJAC BF-w#ߤ4B} x ]@eko+^C]BaGH#PA*<N`rX).86fUFD  h ^TYYHUFD"H$'@F @FxT]]9 #Q ,AUFD"H$@F BߡP(?&@@P-DT! -u `u bu  @")lt A)0t#` bԚp [WenAu` ?urJ &@Fi#$!Uh#3 A Q3 "$BA 3ŊJ*3&"B%e>o1UGDF P# h>,/T6D # 9UFD"H$@]F@&u@P} jih,D >u`} ?VU,@y^u#hQtSft{tRt'A@3<db(+#tTDB/(u/!/<"/S.d#@4#5~%?/"._`Make Bx0cz0gro_und*#X314;1`VIS_PRXYn0CHM!#60082݉"`?C0puy0i0ht~0(0)~0200U9~0M@c2s0IfB Ar@GAa@i0nn0 ~0AUlb@ HsfBe:@e0v|0dn2"e (^C5 (#5 X3hHA%DK5D,K3DGg$aq_aS T11"IT2-T3[T ZTETɴ(Ta%1 C18o1Hy.bgBE 2Q5Si!@nU3lk,{oUZmj?bhuKrQi? ^eb #! >baeo1,UEohlc&'C1(cQPQR=S1fi#3 D0N0tDBn@a@nEEg_09YBaPo1o1"(S11see52>Xc1`I!&` H@d|2&F0}A0q` SPo]wbb+e"vU`6ȅ- ~-!b)bbVf]Dfah 7Qld܏HD: ##=h 0>T@h  9 T3UF}ð?FD"H$@FYjB @F l?uP>u` ? u3`>$t  u?A@>D9ȯvUQt W"up [VJJ5 Lc0U?AG}YL?b` Line_ColA rzY!"'&##nFFF"?&S?#!"'&&w` STadA Iw?/#/D+$1#K F9 lC '2I+'&!$)$|!$L8X< (3#.$3$3632M1P17;1#?!wpyG igT_t ()<@]2`09<@M9 ]cG osA f:BR!r.@F!a:@iA Un0 <@A2 2HUsBeZ@eG v= Id2l>]Uhz#A3!!J !,VKKX%U6_V_hY3|^__WlU5%^_H_olU%__No_j5b59 M{7/'v!3:raBv5X4;s7B %i5oog74'f~]vKx Nv!"I68e ^@Q:(CNO@f+~?!$\Yz,ZB#b ~-~T{ HD: ##=h 0>T@h  9 T3#UFG1"@FF$I @F BP(?V?P>u`} ?u3`b[>"(t  c]K?A@BHuV5Yt T["p [ZjJU5 CKLc0U"?AGQ}]LC` LineColI rzI])"/&Emddd#nFwFF"?&?#)$1$)"/&&` ]STadI wG/#/L+$9# FRA lK 72Q&eoa]R4` AcE nt83Q%#]b[d3z92#M!c'  Q3#8(f(3F7BGkBBLA3B117;9#?1pyO i}gTt (u)@2`09@uMA cO osI IfB1r@N!am0iI n.@ UA22 HsBe@eO vE d@0 l>]UhzA4 ABGOJ!9"XU__Y3^o*o}gU5^go_oU@_oo5ojEb59 Mb{7/v!3rav44vg}%iP8FYkg7w4'$~vv 3)"&P8ea@e@ @$6Q:>@e3 9)']z,Z#(T(-\ՁTQc@ 0@HD: ##=h4>T]]9 @3 UF=U~@FD"H$@F[M l_?uP>u` ? u3`>"(t  {?A@BH-ϝY(Qt ["up [ZJJ5 Li0U"?AG}FLCb` Lne_ColE rz|&.#E#mddd#nFFF"a?&?#%"+&&` S.TadE wC/#i/H+$5# FlG 72M&ea]Ra` AcX0e? t83M%#]bd3zs9.#%$,-$!]/(h9B>3z C#8> (3JF7NBIGJAA!G;5#?1pyK igTt (X0)@20@9@Mc.K osE fB1r@J!a`0iE n.@ A%2 Hs Re@eK v"A d@@l> 0>Uhh @CA3%!J@&CXU__Y3no+o~gU5^ho_oUE_oo6obTt>G e jiHle59 M{G/v!3r@QvE4,K7qgG^"D'2#x [%"6)_H<>? Dל ߪJAC BFhy#5B} 6]@ek8o+>*:]B}B@]@PGHA&P+=OasD?ĩGJUFD  h ^TYYRUFD"H$'@F @FxT]]9 #AUFD"H$@&@FTЃ$?P ]Au` ? un#`t A@`@I:t5ZE$:"p: [g5J=U5 ? ?B#0{GzI@hQ"*!!5 o`?CopyrigTt](wc)]20 9]M c o%s f"!r !ua i n.]_ Al0 (Us2e e v00-d0l>0>Uhh!#k!UJ`F6[48{  FMBC!??1$E34NMO_OG$E4E6O?O$E28?;1rA TRZSB3HD:  # ;h0>Th]]9 #UFzEI@FD"H$@FE I#@F)[3#Gӹ?P ]Au` ^? u#`t  I.!?_A@=Dgj+U-tA`WU"p [VJ#0{GzK?<@/BhJA/mdddG G) ?AgaYT6` Fil Co orzYbWYAY{bd#;z),!=D" #g#]#M%!!7;}`?!py io ht (c)y02`09y0M c os fw2!rk0!aw0i n.y0 A" o8s2e0e v0d0 l>]Uhz`1X#!J`iF  8H\ 3FM@BsOOAE3NO_WWE%EjFA_Oe_E2cO;QArA RS3HD:  # ;h0>Th]]9 #AUF_k'$@FC@F9C?Fl6_f?P n>u{` ?m u#7`t  Fx $?A@=DsU,tA`Fp5׹?p [WW"WJ#U0{Gz?<@MBh G ^) ?A_aYL!.` Fil Co orVzYAY{b#z)=/["  3~##M% 1 17;}`?!py igTt (c)02`090M c os f2!rz0!a0i n.0 A" ~8s2e0e v0d00l>]Uhzo1X#!Je`FxF ) 8HR )3FMBOOAE3N__fWE%EyFP_Ot_E2rO;`ArA bc3HD:  # ;h0>Th]]9 #AUF_k'$@FF9C?F)[3#ӹ?u?P u` ?u#`b>"(t  Fx $?A@BH_sYCt ["p [ZJ#U0{Gz%?<@?aBhA(G XO) ?A_oa]L.` Fil Co orz]A]bv#z)=/L" !#o#"(#JM!h!7;`?!wpy igTt (cu)y02`09y0uM c os Ifw2!rk0!aw0i n.y0 UA" o8s2e0e v0d0 l>]Uhz`1$ "H/1BJ!`9H""" 3FMBOOE3N __oWE%EY_O}_E2{O;rA bc3HD:  # ;h0>Th]]9 #AUFzEI@FFE I#@F)[?3#ӹ?P u` ?mu#`bn >"m(t  I.!?A@BHgj+YtP ["up [ZJ#U0U?<@/BhA^mdddG `O) ?Aga]T6` Fwil Co orz]b]A]bdv#z)4!=/L" 3o#"(#M%11 7;`?!py iw ht (c)02`090M c os f2!rs0!a0i n.0 A" w8s2e0e v0d00l>]Uhzh1Z$ "71BJ`9H"( "3FMBOOE3N_$_wWEEa_O_E2O;rA bc3UGDF P# h>,/T6D # UFD"H$@]F@&u@P}  k0g,@DTh |u`} ?LU,@TUh|u#QtSt.%& 0"tR.$t|7/I'A@%#tT.%U/I(/g-3b)5/G((""/.d\63@?3e5~???62.`Make B0c0grou/nd& ,3؞314G;1`VIS_PRXY0CHM!#w60@82"`?C0py0i0ht0(0)02=@090MZ@c2s0f`BQArT@Aa`@i0n0 0Al@ XHsBe*@e0v0d2-2 eh8^hhH-Q659TD[e59ThD[39T@D[9TD[E9ThD[5X|D[%U9TDWndaKoc7TP116238ycA1I51x>Xr1I/1&` HZ@d2&F0o`@A0#` SPowo '"0!+x"vde&s ~s!4r:r4r%pw:rgAo%UhmI {a1$162te2-t3I[ ZE*R38\yca651+4r:rB1b?xav@|5Rq'e5ycBE@G'3,'㫊?GMKc`? 3b #/1 bq3Hep@,T*h|62+EM6H'1\+U=yceq@ D0NrQAn`@aZ@5a-2] ,Th O7qouHD:  ##=h0>Th]]9 3!#UFaD@Fi4F?@F3mq?P݀>u` ?u3>(.t  (~k ?A@HrN_atR bp [_a"aJڍU5 ILc0U~$"?AG}cLI` LineCoklf rzcF"L&nFFF#?&S?#F"L&&w` STadf wd/#/i/J(i" Qg3#$.f.36h@H1$g1g1o7;V#?#1pyl igTt ( )@2`09@M^ c.l os$0fB#1r@k!a@i$0n.@ A&0lT@ Gs\Be0@el Evb dP@e0l>]Uhz143F!J2!XVD(Q(E _1_CT3R^k_}_WBUL5N___BUOd_H$o_j5bPL59 M{U7l/f!3raXve5!$fDm2%T12ooXU7w'B#$<~3v!x vI8!e fwQU:(CN@~f5T?F$c"z,Z#bV~-(T{{<B2>/ HD:  ##=h0>Th]]9 3!#UF_k'$@Fi4F?F9C?F3m]?P>u` ?iu3>k(.t  Fx $?A@HN?s_a't bp [a"aJU5 - ILT0U$"?A?G}F/I` LineColf rz!#nFFF#a?&?#F,F"L&&` ]STadf wd/#/i+$V# F^ lh #72n&` =?o)z 3#B..23`6=27kH A3117;V#?i1pyl igTt (c)g@2`09g@M^ cl oKsj0feBi1rY@k!ae@ij0n.g@ A@2 ]HsBe@el vb dH@0l>]UhzNA3F!J@32&2&}Q(PUa__T3^__%gU5P^os_3oUP__yo_ j5b59 M{7/Rv!3eramv4!$Rv}ai6z7 '#$ő~vmv vU%T"b xe@i?8Te'aa@eg@ fQ:?@,3 9F'c"z,Z#.T5-TAci@0m@HD:  ##=h4>T]]9 P3#UFD3@F:N@ @F~?Pn>u` ? vu3`[>"(t  #?A@BHY,t#`F B_P(?p [_["[JU5 Lc0U~"?AG}]TLCb` LineCokl\ rz]<"B&#nFFF#?&?#<"B&&` ]STad\ wZ/#/_+$L# FT l^ 72d+A'Ah9ѤB! Q3#.(f(36(72M3117;L#?1pyb igTt ( )M@20Y@9M@MT cb os\ fKB1r?@a!aK@i\ n0 M@A62 CHsBek@eb vX d2l>0>UhhC4A3 ל ߪJAC BFxMi|#O7B @e o+C RoKaXYko[PͩRԩTg˩U2G8WP+=OasYx]'ߥmUFD  h(^TYYBUF\.?x<F BP(?P?< 5 6IHC 6gfa6a9SBU@L&d2U?(sU*!(&J/BH8$q?/&?(H])|  0OB`"Firewal0,n0t0o0k"0p0r0pP711,d 0v0c0 U1^| a(){U5GO& h?0B?E\\\o   w w wy ߹{w yw yϹw {y{wwy w  ߛ{ 뛐*8p  } ߰ i|jDrag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aab\.ҿ~?? ;Կ)j??r]3rCUG DF P# h @T(PYY#EψUF\.?@~߻?P} ,.B ! :J :^:rY:k Au` ?"66JJ^^rru# *^b"h,h')qU ?3?4b {[`:#"&a#'JQ)b" ^^l!L1$l" l"7'>>ÿ@q0-5?46 rz23S2-uY0`-1Bu@ l"r3A`'Bl" L$9u`u `"[ bzb!u`R$"% أ#Q!'1`Vis_PRXYcPm!#5HP47"2`?CopyUr.PgPt (>P]) 20{P9 M.PcePo0PoIfmR^QraPQamPi_Pn AUlP eXsRe0PeePvPdB@!#d$%b!(g#>@f!^#&& "2bbbz12bGbf!cB##0Ub#]g,7^aN @V cT8fda[+_'s1 1"hh"2)t3 *tB+tBaa"qqb(!*paaSb"+6u\%G(!!["@Чcq"53T@ R"q3f uEf;uE5's_t$v&F3s͵NSYFuEf0we'Aj,@QZPUpQ"5x}L1*p"(AT?ݟZ2wB2;6q`RPQs.PU TPxmPSP^2l"+ 0^<@5b ۠۠"x5R"۫br3-PBrw('ٛ`ff_< $R-mA.AQS*pl!u "u"2u3/bBA0oB%Q%Q"2b3 !!E؁؁| NPl!#(>*pQ~ [ ]\@U0` SPaaPePl6rsRQA)P E u.PpBPeP{"5X .0` TcPѼSP"`DPvR3 `r ޹b` S;b4SP&SF.PQ!wPQJEd%TMPn;fPEcmPuR"/6HEQI[]1PRd Nm Eh! PPr"h"CU]%R`sRU3eA(ew3`tJرe^`BT , SRi+~K׻T `L_PcXG&8*JBlPiP;anIY0 -R_PoUS>b©'s)&U1:`` %2R&RviR`f`NEtWO6PKK`SHPP60 4ROJ2R*tI60S1QR`f`s7fitac'Eympx]b7'dYfjBr 3aQrf$i-QIaaL&E`v?`HvADK^DKDQKDqKED3aGHD H# h4>T]]9 MT JU@5wn?@'d2?@vP6 AJuM` W?SuJt  w]It=WuVIRY]JIl#>>@fY(? ?ALbbbz@A ebbfb)]b 6(. T#Jq!q!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d j!n$EB5 -F?}# }'X62zGz?3S@MJD6*-!./@ D)QQ&K,<"Q*i@ieE9 X6Xn73'K0UB!K0 aFuJlJAUhhc7![hz]0T ]]JU@\.?@WjZ?@* `?@JRT?P NamuM` ?,2<u#FtC mtimuV~ڻunO2zGz?>?@MA@bb?bz+ )#bC(+bQ)^+^&Ɇ"@fx?0&?x|5/-&bf^ >/`/%N B1B1`?Copyrigt(c)209Mq0co0o%si0fw2h1rk01uaw0ii0n._ Al0 o8Us2e0eo0v0 d0;1U?4-N3 N7&q045 EFXGeG'0UBų&!$$ eFyJlU`1#El,B^ PhO (!p&d2?@`0  <S ?؉O<S 5<Q3::*\QY'aQ5____Tehf'W{oaYQE##$Wuu']C_U_ kuVn_j@ղ_bl|>xoo uJSAU(:L^xSp8wag?%ehYjdcp i!rx  -?QcxS ?@ je,㨏O4Fӏ 5:vox] 2DVhxSPbtߔ尒 ? ypv y FXj|t:NѧwmN6@4~펰pdNAQcu.0ܰ+ 5P/Q&a/4EHD H# h4>T]]9 MT JU@\.?@W~?P6 >JuM` ?juJt At=WJRb~lT>5 g`?CopyrigTtZ(c)Z20 9ZMcoKsfr!!ain.Z Al< s@"e evR d4 HT5 B[}#?& ?AAw@"b4-/ &&t2Uy2?")@MJx6D8<6<2:iieE9 &5X.7"/'0y3&-!$0 FJ)lJ8>Uh ޓ$Ja7Z@?@ 0<Mbh#B] ?RlVJ:vn?6\ES YwQ#TTKRU%Ur=\PYZd;O#UEd^_OZaQU%5UPBgP([Ma\QU-V'?d2=_OZuV%hb2&_8U2rA 3LsQ% bHD H# h4>T]]9 MT JU@* `?@~?@PBWP(P6  n>JuM{` ?5u#t  5]It=WZd;IRMIl#>>@f.? ?ALbbbz@A ebbfb)]b6(. T#Jq!q!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d j!n$EB5 -F?}# }'X62zGz?S@MJP6-21/D)Q&K,<"Q*iiePE9 X6Xn7'0UB!%0 aFuJlJAUhhc7!-oiLaUe52j_|Uv<"rA ;#c8 bHD H# h4>T]]9 MT JU@\.?@@ ??@{?^?P6 v >JuM` ?)uJt At=W;On#JRbJl?ʡE#>>@f?.a? ?ALbbbz@A ebbfb)bE0(( #Jk!k!5 g`?CopyrigTtZ(c)Z20 9ZM c os f"!r !a i n.Z Al (s"e e v d d!h$B5 ɤ-@?w# Rw'R62zGzM?@MAJ6-2+/>)QK&E,6"K*i@ieE9 R6Xh7'0UB!0 [FoJl8JAUhh]7!6!Z@( <xLK#  }RSVJ:vn?6S YwQUTRU5UXz{\YR/IѫQEUPBP3([MabaiU_52d_vU6"rA 5#c8THD: H ih(>T9 M3JU@\.?@~?ҷP6 m >JuM` ^?5ulbSD_Jt bstE>2zGz;?@MJA@u+b+&K !JS"j& 1"Ab+Kb )-,-/B!!5 `?CopyrigTt `c)502U0A0950M-0c+0os%0f32$1r'0`1a30i%0n}.50 Al{0U +8s2eS0e+0v0ds0ib =L!XY/'0U Bj&%0 :l*J8>Uh@[A[A 1:vݏn? Y YwAQi@qJEr Ti Z?d;O!U3!^9_KZXQAUEPBϡP(KMQLQ I@'d2\ QLYuV_XAo@ ,oKZ?Mb_XEOOO\_H8> G*+s d:TzR4D$o F(߇#8  wLB UY~|d o@+CoBGh!_PH  Ex  2( 3X  5 H} UFD  h(^TYYB>UF~?x<F BP(c?P?  s 6 6DSM 6gM 6D{M6M 6TM66x6K6v6HBU?8/&?R)B@L&d2?h-y(\.gҋ(i.sU!A&/@)Y(  0B`KLaptuo>0,>0or@0ableF0nB0tV0bB0oukF0mB0biT4UcB0m>0u^2rj4nr0A11nV0twJ2i1eq0i>0mV0n@0,PaL0d01e11^| ()IU5G& p??U"6? QQQ ``pwwpw w wނ ppK_wpwpwwppwwpppp ~ w w~~@w?~MpopJpppp~ppwpkwwZDrag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aab~߿?_)jk?3@ ?DUG D # h @^T(YYEUF~K? P} 7K.B!C D :T:h1Y:| 73 7 73v7x7377&u` ? "66JTThh||j&&"uJ&)R2%X<X7eU ?0?' 4b0{[`:1262Q3R2A"'QT9R2 ^L1$K" 7"Gd' @Bc]D?MQ0rBCSBuY@`-1"Ru$ @mGrC$Q'('R7"A& <4' &)9uv`u `"[bR1'$u.`425ؓ3a171`Vis_P_RXYcPm!#5H`o06QB`?CopWyr.`gPt0U(>`)02L`0P`W M.`ce`o0`'ofmb^ara`aUam`i_`n 0WAl` ehsbUe0`ee`v`dR13d45R1*83 Br3 66 2'QbtzV[1SBuL@`` F.`a^al^bz1 -2uߐqݐvR2CB#30U3F:w,7^F`^ P sT<`o0m`sm`a>g da;_zAA2Hhh"B)B* R+R::2mDmr81}ahcwP#6u\$ %W11%[2P@RA4"ECT'$@b2AEȜUiBȜU5z_4ɓ&F3sNSYF=U0ʚu s,@a#Z`ep"EˍLA}28ABTO0V""-sRxQ'(BKF>`R`as.`e T`xm`S`^B 0^LK'7"P#P E""b ..2EB2.˯brCRqʯܯ8z,BF3<^-""B=mQQ<*dh2"B B/R0R%a%a2qqr3 11E++0|ss7C8*PbQ11A;Q(r,`LA=k^u1MAE!ffuVҶ8}aY k q]PU@` SPUaa`e`lsRaQ)` Equ .`pB`e`β"Ep` QTc`S`&c^aEma`u9E^Mx_ ` S*bS`u`EL t_b9UdxM`n*f`cm`ub%7Uh5GAPbds Nm0{U0! P`rxqp2D@%b` Dbaew3uĮAe:fC`c'97/I/ Sbi`ao//¹T//` L_`ch/6?'?9?B"l`i`]?8(Y@?0?R_`?65?ON*h"wbk"a"R`K9B-/H`OI4`ad`cOLO/OOnh$gsC_L(t˰=_O_TQm2/atfa I4aoO_g¹f__㪲`Uk f`Pbao%ov8_No\_MPCOoNo(m Qt Q6LM5GMLvEHbdr!SC qpsY` W@DQQ:V6xHS`C@MOя^u`MpmB :V¡3EYx!O U1vqyRdnu}Ϗo߳(©`X^~"` %_@&דq|`NTWORKurH`PaRTRǰISQk:i*,Ŕ{Xo'0U¹ňaY`y}֏(!(H*ڽ(5|ѳy(!{5{ᤰdvHv˷v d,v5˧v(!&v˟"vĈ~(%vċ~Λ%vİQ5vѼd{5v5UGD  3 h0TdYYB IUF%D"?Fب̓m?Fre?F_jYfw?P} 8Yf u` ?0)u:t7  (\toLӑpG?WS̆{c٤CU!!`?CopyrigPt (c)J 2\09J MB c@ oKs: fH"9!r< u!aH i: n.J Al @(s"eh e@ v d  #S$#B- #l# '?R;= # &#24 6 6 2$Z# #0U2 3@&B ^#5 6X'7'R4 6!4] 6:e6^P#[EBM #HA%DGHD: H ih ,>T  9 M/AUF~?FtC&j+?P6 8V> a JuM` ?0K Ku:yJ6bqlt7~ bJt  $OC>JU2zGz?#@MJ?A@+(b9)F+,F&" !*$5J" "& w"\A1"b9)+6'"s,"s/B-  P3v#9 P1P1X7;`?CopyrigTt (c)020090M0c0os0f21r01a0i0n.0 Al@ 8s Be0e0v@d0N0i @b9 l6(X>7JG'0UBX&50 JF^JlJ UhMAA $ A11!:Lh4 0 tt3J!@|?Fhdzt 0 ?kCYk XEjUqA '[\<1ߑUjU!o6Pa@oVUhq`V r])m܆YaYi*X(QYaD"H?F=0 \S㥛\blXfYFt:N\[ZR ÅبX0Q^pp\.zZ ,\ 6?iwUS5?FrSGo?PE ?=TvE?!Y?.`txv6mT]]9 M 5AUF@ ?Ft:N?FM~u_7w?P6 .>M JuM` ? IKSu8Jt5  rtyV_->5^IWA>JUT5 J#/!/!5 `?CopyrigTt (c)f 20r 9f M^ c\ osV fd"U!rX !ad iV n.f Al \(s"e e\ v d (!E,$#E)edq%rVA٫llx51o>2rA 53eHD H# ih#4>TA#3 AM JUF8?FzwJHM?F,+?F%VA?P6  n>JuM{` ?5uJt  f߰nZIt=Wv%MIRG|׈,IljE7#D>5 J5 g`?CopyrigTt (c)* 206 9* M" c oKs f("!r U!a( i n.* Alp (st"eH e v dh PB~A!"#?& ?AlJa@Y;6` F" q!z!lT"z0_b0A0#bmT3z0B9Ub25181 $?25?G5\ P1u`"?46?8C_1A1b?t0bAFbI&DɤG b&LBFAL2zGz?")@MJFp'CfT<(Gb&I3F-LB3FiieE9 1X]G/'0UR&-!40 jV~Z 3Q hRG!-AT6yf3@$<f@C  bfJ: @BS+c X$}#e`e%akqcEAyHh?F~l0I#c ,aTE1vo>B]rA Cs+( bHD: # h#4>T#3 AMT JUF ?FH$D?F8}, WcSP6  n>JuM{` ?5uJt  s߿ 0eIt=W(\IR}WIl#>5 UJ5 g`?CopyrigTt (c)* 206 9* M" c. os f("!r U!a( i n.* Alp (st"eH ej v dh  E~A!"w#?X& ?AlJa@Y6` F" q!!lT"z}0b0A0#bT3z0UB9b25U181 $?25?*G5\P1u`"?46 ?8_1A1b?t0}bAF'b&D%G &LBFAL2zGz?"@MJF'CfT<(GbE&I3F-LB3Fiie%9 1X]G'0URŴ&!40 jV~Z 3Q hRG!A`Lޖ3?F\.0hO *1J#<=#,AB  f!JabdP$dreEAJT]]9 M qAUFp8?Ft:N?P6 mL >M ($JuM` ?AggL2DuVJtS  {G7zt.%_>JU5 J =#k!k!5 `?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v d +"d!Eh$4#=#|x!F2 J3?]6 ?Ab4z@0Szu< `` F !!l"z֔0` ?251ݔ6b A6b4(4"Y==/w# w']6T4"BK/C2?=@M3#JF3@C37b"9F<2Fiie759 O&5X/GB_A/'0U{R]6-!x40 2VFZlJQD0h$G!Z@!11(Z/CFF\.30AR@Lu)_G  RaCf4"J? 6Bf*}~2?FVor?PE &TvE?~1LZc Jxdid`gR*YB_Lc׏_:M m&!&Ra DBBBTfwr5UBoPb2]rA 3q+"HD: # h4>T]]9 M 5AUFVj?Fޣ ~-?Fe2L&?FZT?P6 m. >b JuM` ?+ILKu8Jt5  O7nty>+B`"$'-A>JU5 J #/!/!5 `?CopyrigTt (wc)f 20r 9f M^ c\ o%sV fd"U!rX !uad iV n.f _ Al \(Us"e e\ v d (!E,$~|y7, SzQ|nF?F.`d %TvE?B1ZBrA YCc4!*uxnG@#r & 4xavDB#Bsrb5UHD: # h4>T]]9 M 5AUF{y3I?F~??Fd2Lq?P6 . >  mJuM` ?0IKu8Jt5  n`ݴڅtyx&1UԅbX9AR>JU5 J#/!/!5 `?CopyrigTt (c)f W20r 9f M^ ]c\ osV fd"RU!rX !ad iV n.f AUl \(s"e e\ v d @(!E,$~ 0T  JUFe?F:[??FO&Q,"7?P }uM` ?j`fpu#zAtw  [{t2Oۨy`<%t2N贁Nk?@MM+&A8 b*](i+i+i&p!!`?Copyrigt (cu) 209 uM c os If"!r 1a# i n. WAl30 (s72Ue 0e vI0d+0"!3 $#)Ry&#‘4?6Q?\c"bk)i+Q;'-,# '6% h5 IFXGiG'K0UBŨ6!4I iF}JlU!#A(ZFj^I30vi p-ڏ|Y &V"(:!]H?F{wX@0pS l01 o(fy { xU,>Pbtv3m?F/@M\lSFp ^ \ 0+??Fް}ulHyƊqWwi?Fܾrޝ۷cl)-i]oa?F5o רo`lۗ]Cfϟy { xY^p𔟦pO4?F0eO,plkleW,^ \ -r[v?Fp =\LhlmhG N1?F[Q{ l/5:1 fz7[;KՃT0P1ey { x¿Կ{dޯ?Fv9|eޝN.l?DɨT[\[fk'?F#Y}3Zflٙ(oWU"NhLޝ].Yt?BدW>lrt~]|%߸'0(f%y{xa v ?FϘǫḿl$h|a[s!?Fۂe2'[\YRSWW ?FIǧmp~Xl-TBi9w_Ku~Սe~< 8qOfSx#5y=Qgk?FG[Pm j%a ;(|a[sjT?FjwZ̮̈́S"o& +~?F 'APm*?w?3f|o7gyP( '7Ƀp5{/$ x //-/?/Q/c/ya-x?FlS+0ƄɰOYOe[s/?F@A ǻDÄZNF7?>.N?F nMoi?~q,P>Ʉ (:^?OD*x 7OIO[OmOOOyNaZBPK+qǀ̩BF6Ks _S~MGt='7e]Վe?Fɍ#cAcaKҌVB_,ϠZp"IؿoodK eowooooo k4@\{-=(eKs;o@,P%T̆m ?;e_#ֶZpp\J)~Wf ,Padҧɻ;y ÏՏ5A ?Frg,mr2 +nrsc9az?FWn ~}\+ :|wص@ymwQkܳ 8I2=d]? ń̙ "Ͻ)i8j7i3 ͯ߯i+?Fu߫˶<yOKs@,0YvjO}ȶѭ $Y MMeܚ-O ߟ4~ <-f5]Xкj 3ʶPbtf2+ PpߚDڋp,ψyӅ猜,4p:9?Fo}!s>ybH E3Ɲp ?Fn~p6Ü~y˓lj~ݨ" : (0!϶<'y'K+HHZl~f~ӋE?F&Ý A;yƿ* ,/=r?Fegm yQEڳs/e\?Ff"h=y/k.h@̵I y|!??4JkYhs??????iHu)?F͎ l䲥aβ ,IO;o\?F!yhX ejyROm,F @^f]ywO~6bԢ`V 6y O_o%d r______??FlO?=Ȣtc&O ,wo<ڐbrqM~@ O`> s>?Fcme~Vve~sO~%HlĀW<]|F<>~zK_]]M),ͭ`7E̺ژB>mfT# ,Bg)?F[='JFmjG;B|'|`yq])tK } /:Pp0&%;Taqԃa/E-? _ [X!////??D Tw2?Fw]12%W嬨$:W{,߰ M >:6yEpV(0AzGxaNtb#P?P-yp\J~%wMIn17O~:3݃* 3%\K?|\^OT[__ { xOO__+_=_"^j^I<=ADǂr-+ű!M!?夿e{*% m9N?:ߤzf"h<=b\㭖h1boyt65o %#M#'VW?FGn5> 9ؗϽrqCug<#ֶ?Fv^݇qLJ|U[>j?F^@;# qYq(ٿ2#>#Md TH7D6D # 4#T  U U !"#$%&'()*+,-./012*3>5h T  M YUFBg?FJ:?FAؔPM.uM`?u#t  jm7}%t!" .Π%'&!%4-Ut}2N贁NKk?@M#&A b(J++&Yz}/R/$38?#b`4zt (+b/R5N}11/"`?Copyrig t(c 09M0c.0os0f21r0Aa i0n Al6@ 8s:Be@e0vL@d{"1U%4e3 756%01hEPFX|GG'0U%R!56S1I FJlY)U4FX1#Aց(`}oO40OeOW0fnj# Qˣ-Y R5b 8!EЏv?F[ =\}g5ly$Oa3[e_q[~haWWrm)T`fnӟ_C1hhE:]_cd0g`h _R"rg t4{s{"oQ#w______Vcޯ?FW9|e!|vr.l`(n :l Jo}`[Q ?F#Y!|helƳoZfuj'7czX!|ߝ fUo(oZf?M :rm3~Tɶi(R}ty { xUV ?Fǫ!|?UvʁD!iip_(n :l r}9!?Fʂߤe2!|ωY\*!ijlߐjǏȯگ` K <ZfB0񁚍axCmƉR}Bty { xYџ+BQgk?FG[!| =jlU)+R(n :l }jT?FwZ!|B9nl(Z!X󁟜 ")p Tϑ` 4/]$R}p ty { x#5GY,h+?F߼߫!| ?iOf+k:l}‚,Y?FqvjO!|6zKi%SI#Zf@,0ƪ!|~9RĞX}ߘNd̮ Q>'ەߘux x&8J\nYJa-x?FglS+0!| @m}i˜?Wz(n}?F@ D!|¶RiBQ:4i!@Se L]yEڨZf?g5 J[#PR}ty xTfxoPoof+k*\onooocN1?FEߋ]2φ gm_h{ 'aV ?FIQ|X"Z~2z}5o]Sh]CYR`-`CLVI h oo&8@6>Pbtg[`#|϶U /(+~?F0'Au=0cLas` =E ߴI h 0BTfYl~g[ 2DFd-?FGt\e(-upғh6SFOp \pH%y|C/h6+S{0 ӼvAf@g+hPљV M H<l5-W/ :FdAg?F#ccMTbzm1Gcqe~1-B?`ZAvkNngoPoboto OkH?Fɝ?) V1? zk "M ,o"r?FLgmƦ J TܪMcSS6-F؏{wKJ\M,z% #߭ҋEŁN"}3cQLYNVV䯀@.HZl~ n P?F͚Dڋ~Ͱd@~y6{:M ,"Ęp:9?Fn8ͣϕ茻yb H v_=x?vQܠK='+ #X;F.+*3 rz@M\vЯ *ͭ?F;Y ~Eؚ)~ykM ,L5?F)-ffA煤 0{l[΁F~Uk߸?I36&&d>!ё*a0tM@ޞs0COρn{϶ f5A ?Frg, {35ٰy^5PנN,z5kzX_z?F-Wn \?/qy?%b/'8a'߀x\tRʓVxK?q%im!Fg?Jq /2_D_V_hV {+,qO_6}i?FrsM<+bSykY=T=/a]e/r_`x ;8$6HZ>asu=?6|./6l,`F@^f\/j~9̿ia/nLHThmO;~?}[h<11?C?U?g?y??@妎Ė  O0B_f^O8e\?FU"hύ?@B^bybOl?Q ,Mo~SA(5 `_ - <\_n_____⩼Pο!!2o^po8p ?Fna9hfoʌn%Zm?7 ZT![!j( ""`DpHxs/ȏ]-߼LbqS?FҾ+cCXA9x1ˠWC s\3EP|`0""ʟܟy*<N##A?FyYǟìiQ9!.Q^=&J+#ͷFSPA &&Dxj!.?Fo,,M V~< XO~U?F>6S p??HUK,HY&/ ?` _/& A[&PXp//////y*ӋE?FTmcͦQl~V)a ''F? |kټ]c¡J:?YnD((!ooo&$ ?FEc:d9~.]Gl))W_?F޶P dS&9~ԫߟFRB1 > 'Nzrmw }}?=In됿Tr)˻)ڸ" 0BT Yoo?F\/8BҡdifO g **ПA Y{?FְgmƦ͌!MdihMcSS%@'9 )|z֠?H,g]r~ei8YY$m**#(:L^p Y'4?FÄ!GQJ?Zqqqdi +"++,#a?F-ߕfadi [΁S<]?~qUg  ʕ7mI[[ߣވ/ZG +' +6$Vhzߌߞ߰@ Y???6 ,,,X?j??"6?FB6"MRp4KTp#1 ?mJ,` O4PHOZG\,U+,d(% Y__of';--Z__G/_t^> s>?Fyme%]U`vdicdUʔQQ ,?w/ ?~efvoZG*/\-K-H& / YP$6HU[../uO/t|?FaqS} 4dIalBt:K7? \T-E_?!#hTXO\.k.h'??OO(O:O)@R(dvK//Oo_t͇W?FЧji QI?e_N|%ЏIMs.qe$ү䧆o*\/ߋ/(o o2oDoVoho)nπϒƗK00o"яF>t44I8?F?f_<'kԸ!Iv' Pr۱|@? }.q?5d䧴*\0 0)Ptlt)K?FZIl_<緬TF!Ǿ iϿ­.L.7\1 ;1J*j|į)"FM?FO4_<`s31In1)0` 202@q1.?FzT~_<ʱI (빸~u7#ߩ MǍKKRw 2 lPiCϨ6\2i2x+Ϫϼ)PK303nߒ[Pr| ?Fo3on1Ox0 ~L":rCF]KSDJlع0 MPq6>B33, aZdFy^#I1Af4b4J?A^31K404dlI?FjwX@_<\X*߰~LϡD/g\Hb1),-FuPx~K :ehDo^1GEG?7l*B4;48-*<NLIw?F`sT5]|N~LZQCݞaQK505dm%?FGn5;TW~ A,p"wQYy>)N1`B@PKB^qq_'T?B5[5h.?(?:?L?^?p???F1 4c}C0\wPN)qk6<6?d]@?`pF*;Z"}^װIAOfQ;8aVȯ#{Wn\=͘OLP$Zɺ}_.qV'@IO^6 !60/D_V_h_z___2\֟?F4vS[p-̬)K7<7o\?y1<<<:y6yrЃ&~?!1b W@=yBP(lf7?۵FSF&Oi{// bxRC//Jy<<8X5X/j/|//// ???6[=2 l=.?f&M?dsl?~?+eXO-y?Fp\JlR ?ɦp{?\s__ ~C +OOJy==ftSr BTGHD: $ Uh4> T]]9 PM /AUF~?FtC&j?P6 .v> mJuM` ?0IKu8Jt5 }ty$AJbA>JU5 *J)";/#?@& ?Abk$zo@w Su`` Fil Co orzw ` Z/2%w!w&}bA&E&UBh115 `?!wpy igT}t(c)W20[09M ]c os fM2R!rA0!aM0i wn. A"U E8s2em0e 5v0d01 4Y=$3 $7@&T"+t32UHB?=@MJGF(I(/HFiie59 &X7G'K0HC@&![$K0 FJlJ$+VA' (++ ]61h!Z3F\ O6?F9.4?.`tx@! y@c#CJVAbX,?F?&d2b iQA.$c Ȑ #Sa3:TLh4b bcitt3h5eqA 'k?\<1lOe5e4P܇a5f_eD"H?F0 wlS㥛ԍlZblheFt:ǝNl+aiR أhQ\.j ,X^F5~I?F\O;\?PcG &TvE?a!"rA #c4xLexmdAa S ύ4xa$B#T]]9 M qAUFbX?Ffl6?FI$D"?Fz^?P6 L6x> ](m$JuM{` ?Agg2DuVJtS  y&1tQ rhGzI>JU5 J0! #<l!A?% ?A^Jb @bbbz #"b9#$"b$B 2% # ?<@M3#J6(&$%"QD;'"**=#115 `?CopyrigTt (c)02U0090M0c0os0f21r0Aa0i0nU.0 l@ 8Us!Be0e0v3@ d@+"1 (44#-=/3K 73L)i@ie59 O&XuGG'0U RŚF!$0R FJlJ8>UhW^Q^Q 1@!V!1(ZuCFWF3Ф JR L?[<œ_Q3$R$4"J1n6f?Fr\. LSW_Y?)$8aE:TCVb]k&aPdd *#8d2L?Fw;?FH?PBzt &TvE?!YaYcR&ekre~RMv'(J9_b 2}&(!&Ra@cBwrÀ5%8aOEev?n?V]kAyqiQ4eDe'BP(\orlh )$a^F)?F.\?PpU#u#rA =4Pz d|oO_Y~sEzw uFtQcwHD: H h4>T]]9 MT JUF|?Ffl6?F'd2?Fz^?P6 n>JuM{` ?5uJt  bX9It=WQIRuVIlGOz|>5 Jr2?@MJA@]gb%(1+Wb3)O+O&B!!5 g`?CopyrigTt (c) W20 9 M ]c os f"R!r !a i n. AUl 0 (s2e e v 0d0!$صh2?6 ?ALb4z@'!Sgu`` F 1!l"z' ` ?25߶1ݐ6:/[)ʼ=# '66Kiie<59 XQGG'0UB6!4%0 FJlJ(>UhI !+!:6V߫j֋#0=1 JUF'ÇpС0RSO S ;[5)۱Q3a9iQY'aHD: H h4>T]]9 MT JUFt:?FFh4?Fz^?FkZV{?P9>JuM` ?uJt  lIt=W9v׾IR}?_5^IIljt#>5 UJ5 g`?CopyrigTt (c)* 206 9* M" c. os f("!r U!a( i n.* Alp (st"eH ej v dh  3Eص!"#a?&?ALb4z@0Sgu`` F" q!!lT"z0` 2?2C516bANt6b4J= &;02zGz#)@MJF86x?OK7XB 6iie%(9 X7G_'0UB&Z!40 FRJlJ(>UhI !lXAa20$)0=~0M:XbX,\QS }A_б5Y9mYQ_H8>z 9s -b@J)Fe #: = OB ȼ! ~d ;" @+^g=8s}Guf֛e_@- Cf/ ri3 k 8 m; o~? +BߩC aE H BGLL Qaa !as//'/9/K/]/o/////////?#?5?G?Y?k?}???????? OO1OCOUOgOyOOOOOOOO __-_?_Q_c_u________oo)o;oMo_oqoooooooo%7I[m!3EWi{hTI iVIx Џ*>ÿ@qZPU?TVpPr&bcwRu}P`-*Q"&bu &@WS$Aa(Kb""ch@D )9u`u `"[bz$u`؂CaAG1`Vis_PRXY%cPm!#52madPa%VR%TKa/ZB0gBqq32REqEqAAB5r6$ 7”ECϔ|A8ܔspꓮQQ;< !LAE7ĂFD a,!J^hdh")xA*HKa./Hd$Gpha1]` Mpnupa2ptqrFqa` E@u"pp 6peptuEQ`ѯ]8QP}rd NmP3P9KZ! PprtX˿]r`iDr|q uϯ\/AA$pqc`#E^-% Sripq߫uT+=,LSpcxwߠ E߱Bl pipgE}Ph RSpoO"|ґyz(ޥA` qp鴜D`NwrkhaGpB`e#AI(pqdpss@|'߸ֿSbpsQx/%mF#qtvq Iq{uQf{ r (pqq@(3/+URqm6put%  SGt5QVeqσąV///(C(pA` WlګO`/iMpmr1//\Qp?!?OUpqsIyP?b?XiBplrgrTSp#"2NO)OS4paB2Cpo! 7iO{O` GT01@ `p#_OOGO _u% `_#kapTq#(?=MpCv/Qv__SH"d\"ZqCB??Pq|&Љ و3UF~?vZS\u`?d?7ruAy}5-.B"TqqՈASw>>{ÿc6Hr92u?`s`Bxrq 07K`R oF@IAeB$H|8Ex~8"7=rb ӀӀƞFSrӋb{ra@RKᙑsz}_MSaabn.{&$,"-Ѵh!PPa@iy60`ZUuu`a p*LQ. p`RÑ.1=f@ߒbÑ;J&;i1J5MS_dK&#„BCF3sNSYFw";(LլDQT]]9 M !AUF8?F:?Fm](?FF]?P6 e$A  JuM` ??Su.Jt+  Rqte_|tH1qzrMZqaMKI7>JU5 J["a?2& ?AbAw@X"b`$B2zGz?")@MJ&a#b#z\c a(b`)m&g,X"m* 21215 `?CopyrigTt (wc)i020u09i0Ma0c_0o%sY0fg2X1r[01uag0iY0n.i0_ Al0 _8Us2e0e_0v0 d0+1 (/4->3K >72&i@ie#59 XG'0UB2&M$K0 UFiJlJA h7P1X!ZCFt,ܿ?F9$*m ;6dm S)RJ:^T<@T R}S $S @gQEU23\T xY _5ˀ aYQU#5UFY&yw\QY!ħ[68^_zd {?FC:\4 `]3?X"rA kf#sS*<7$dFl~r7lb+d [!}UHLuD  #;3h0TlaaJ )UF~?һ P m.N >uA` W?I?u#8b>t5 }ty>b"[>U?& ?bAK@8">&>*m!m!`?CopyrigXt(c)2d09M c oKs f"!r !a i n. Al (s"e e v0d f!3(aj$B-y# y'&t2U2?@9 H>6A(A(>/J8M*ifPE p6XB7^G'03&J!-$e F/Jl>!$Ul8AAa  @!#E18!1Zb?F _4 .40nCA.xMѧnA[(:DTPFmq4 _WtY\ FهX3^&o`_sZRXECU֚|I?F'@[\b Eq\ ypQUdKq\;rdXXQϓCگ K/ڇTXK^F!}} p$?P8-DT! .3!^_p_U.~4}]~q.x~TA#3 AM JUF#H^?FՃv?Fꖞ@?FĶ?P6 n>JuM{` ?5uJt  ߀It=WKꑔIR ׼IlV #D>5 J[? & ?AbA@0"b8$2zGz?@M»Je&9#fb#z; 9(bE8)E&?,0"E*UB 1 15 g`?CopyrigTt (c)A020M09A0M90c.70os10f?201r30l1a?0i10n.A0 Al0 78s2e_0ej70v0d0@1 4Y-3 7 &iieE9 X7'0UvBŴ &!%$0 D-FAJlJAh7(1h0!T#VcS( bHD: # h#4>T#3 AMT JUFȹޘ?FOd?FoT#?FqJĻ?P6  >JuM` ?juJt  uD It=W36EIRj׌IlB?@-#>5 J[? & ?AbA@0"b8$B2zGz?@M»Je&9#fb#z; 9(bE8)E&?,0"E* 1 15 g`?CopyrigTt (c)A0W20M09A0M90]c70os10f?2R01r30l1a?0i10n.A0 AUl0 78s2e_0e70v0d01 4-3 7 &iie%9 X7}'0UvBi &!%$0 -FAJlJAh7(10!`3'e?FfAs!h, ?nN#<bydb   VJaRTT $jTRUE:]gy_eZ-ֱQ%UOfkZoaU526_HU0"rA 5>#cHD: # h4>T]]9 M JUFS6h+?Fڨ?FC7LԠ?F_oo߯w?P6  >JuM` ?uJt  k6It=WHףrIR'c_hIlX_#>5 ՆJ[;? & ?AbA@N0"b8$B2zG7z?@MJe&9#fb#z; 9(b8)E&?,0"RE* 1 15 g`?CopyrigTt (c)A020M09A0M90c70os10f?201r30l1a?0i10n.A0 Al0 78s2e_0e70v0d01 4e-3 7 &iie%9 X7'0UvB &!%$0 -FAJlJ]Uhz(10!Z'F#?F9=7Z#<E $ ĀVJt!#cGP!2, TYŏ.ZfQoS 5!;KƱQE:F1aQ, jRYSuRYFU>X%e1lER[6C/I .g\wPU5egㅪlaYpO0X2:_;0"rA >#sHD: # h#4>T#3 AMT JUFJV?FO7x?F g8t8?FxMƻ?P6  >JuM` ?juJt  .![It=WBaIIR#!xIl?7O##>5 J[? & ?AbA@0"b8$B2zGz?@M»Je&9#fb#z; 9(bE8)E&?,0"E* 1 15 g`?CopyrigTt (c)A0W20M09A0M90]c70os10f?2R01r30l1a?0i10n.A0 AUl0 78s2e_0e70v0d01 4-3 7 &iie%9 X7}'0UvBi &!%$0 -FAJlJAh7(10!ZF/, E <{O!#4  OR|VAJaN[]PPReSRUE:]?Cm{ɾ__Z"u)Q%U=V9P]Y\QĖU526_HU0"rA >#cUHLuD" # ;3h( TEJ UF~K? P .N  >uA` ^?A u#0p,bKp>t- bFtq>U2zGz?@9 >?A@(b),+,,&" !$i>"&p ]""b)+'"Y,"VY/N*1*1`?CopyrigXwt dc)a0W20m09a0MY0]cW0osQ0f_2RP1rS01a_0iQ0n.a0 AUl0 W8s2e0eW0v0d0:i f x!X]'0U5BX&50 Jl>$Ul8AAC U  B # A!֚|I?F'@ & b E9& y'9m(^L0T,_>_ *XX3U{?Fr\HzdKB\;rdXXXAk}pCڇ K//XTTZbP _?F92}&~`m`[ ]3PY0nC]MnBU,Nvlza&p (91n-pQYWAliPFmqٸ EY\ FXX܏&o`DZ?RXXE_&__J_|D#AD1guOKOOjkFs"DI@[sDz.q[]J,bu?kZ̯_ofd $?QRp؞lq o|T]]9 M !AUFM4_?FX({'?F8as?F'|~?P6 m$ > JuM` ??Su.Jt+  ,ئqte_GqzLxg q}KRI7>JU5 J["a?2& ?AbAw@X"b`$B2zGz?")@MJ&a#b#z\c a(b`)m&g,X"m* 21215 `?CopyrigTt (wc)i020u09i0Ma0c_0o%sY0fg2X1r[01uag0iY0n.i0_ Al0 _8Us2e0e_0v0 d0+1 (/4->3K >72&i@ie#59 XG'0UB2&M$K0 UFiJlJ]UhzP1X!ZCFFMaT J*m $d2rv 7|QL{RJ:bTVͶ$S ?!͟TT QE!K:?Fc\?7YMQ#5UC6ǎȥy\aY = GZgh5Uc?hV[\]PfaiQb_tSF菐-?FҮYT˳ ]3?X"]rA f#asS*ԍ֯JQed~V(L qAb+d ׻HD: # h4>T]]9 M JUFd $?Fs"D?tP6 >JuM` ?uJt  RpIt=WcsW.IRI%l#>Q5 J2zGzK?=@MJA@neb1#z' %#b?(1 ?(Z+Z&B[ "?& &?AE$ \/}% 1 15 g`?CopyrigTt (c)A0W20M09A0M90]c70os10f?2R01r30l1a?0i10n.A0 AUl0 78s2e_0e70v0d01 4-3 7&iie%9 X7|'0UvBiů&!$0 -FAJlJA h7(1E!bTc1 $<K $  OR)vVJ: KvŦM\lQeS -^PűQEaZ9]`Y\QU%U=V,M_Zڕ]X526_HUE"rA D#cHD: # h#4>T#3 AMT JUFEM?FZI{?F'ϸBl?Fĺ?P6 >mJuM` ?uJt  ^J˛"It=W0"شIR}*IlFw#>5 J2zGz?)@MJ߀A@eb1#z' %#b?(bJM)Z+Z&B[?& ?$AE$\/}% 1 15 g`?CopyrigTt (c)A020M09A0M90c70oKs10f?201r30l1a?0i10n.A0 Al0 78s2e_0e70v0d01 P4-3 7&iie%9 X7/'0UvBů&-!$0 -FAJlJA h7(1ZTlT]]9 M JUF5 J2zGz?S@MJA@eb1#z' %#b?(bJM)Z+Z&B[?& ?$AE$\/}% 1 15 g`?CopyrigTt (c)A020M09A0M90c70oKs10f?201r30l1a?0i10n.A0 Al0 78s2e_0e70v0d01 P4-3 7&iie%9 X7/'0UvBů&-!$0 -FAJlJA h7(1ZE!ZF" Z <] Gʼ#OR  ORS|VJ:-US DZ/`#dTK QEUHǻM\Q`YO$iQ%UY $?)/Ep?Fa_V0w?P} 8f u` ?0)u:t7  Id̝txhˑgFݑZo`ҤCU!!`?CopyrigPt (c)J 2\09J MB c@ oKs: fH"9!r< u!aH i: n.J Al @(s"eh e@ v d  #S$#B- #l# '?R;= # &#24 6 6 2$Z# #0U2 3@&B ^#5 6X'7'R4 6!4] 6:e6^P#[EBM #HA%DGH7D6D # 4# *  !"#$%&'()*+,-./012*3>5h]T]]M YUFhop?F>+?FoPp?Fsqє?PM]uM`^?u#t  EF't!"UY%'~P*%4'?"U}2N贁Nk?@dM#&A b(+++&Y}/R/`$B8?V#bo4z @/'/5N }11/"`?Copyrig t(Uc 09uM0c0os0If21r0*Aa0i0n AUlE@ 8sIBe@e0v[@d{"1U%4e,3 7D6%01wEPFXGG' 0U4RD6b1I FJlY)U4FX14#A(!L15?Fd4Mf0:O$}#?)߰=^!8U}?Fz d@ lxrNj$!la.PX7h3URWa?3am:"~vn*&^x%>awE:}JC4` k|| a(d08gh_oo)o{T#______Hv?F d1a|3`[]w|c?7oHv.?FMFa|S3w|\£|oHvJKmc~ea|{ oHv(sna|;6n5coMA}#5G~QUHv>Η4?F@va|+|w|JCMHv,f V3Sa|p )zyBr7椏Hv]DWrGsɾa|k eą﫚l2 +7a|QWgQ-<̾э_q}Ra&8JHvˁ?F~廽a|/ͼhzyoχڡHvkT?FS;a|3zy? HvJbS6̨6a|ω9?OHvS1Ɇb._ja|^~_\@{}R -?Qc&Wa#UwvnnE>wm|<jBmm*'Waɱ`nk}.V̲o~'݌ssK/8}߯mEKx6iBJP1 UB}K^~o>P/6i@A}///* ! %/7/I/[/m//&A2mo~Kf΍4D2=y|Bm;m`(=w}zNmWUȣ(K\S}|t|d\L|L+YlQn0T%%$ċ^QUHQOOOO& AOSOeOwOOO&놮 G3!(E> H}OĹ[DnXXt' U!2h`Xn b_ Pg3~qP3fbAu~R)umooo& ]oooooo|o&g-N+_!eW?1 il}1HiDYH'rg|xMMXjQ%f|ɒ= %;vro]ݓinÞ]S( & yӏ&f@e!`¥ G8M Z³绾hv0W5gS1a8|QXSbW~7mȧՠ~=߬lB|y:߾nuTѺ'9& ˯ݯﯾ+A 7>M%- q?j j dEuk uQ9)?FAަIif[WvpQ鐲9 =~OIѮ]xz~êJ 1CU& E`=U4 Xw׵\ o5|݄ erKv7(\2Έf!9"pϼRѡ{ R}\ $”ގ#q[\ƧGJ Q\BĪ&iZf}#Xr_N|1i"@w\y =~X@/n????Te/?#?5?G?Y?3㒾?Fu}A{ZϹ?$=l?Fߣ؝@鴡s! U/q2 y#iwjQ rt}\\ǟ~nxBt@fP@Q*(g˼ߙ`]N1YY͓___Z_-_?_Q_c_u_՜t?F#|IΝ} C)u18h6o]?F\ v!ۊ5,'pm~ "߹3*_CRڟ8Yq_S˼_}5#7o7I[m ռwc?F䱹!? Uܟ*d4IM}l+m/r?F!zxy4GXM g1rH-odip'ʽh:PF}LHM\БqWČMQyS:UŸԟSewZ=x?FrJS=W+}| 8*_ޛU z0~+WzBJ/pVD W| 2'ؚ5F] 0+!31rߠ߲߯450i;h4MLTJMUs`I}$z8.=u2fC}1 O2V{uf`5MEp4}o7o9lM* g`S}+M?=;??1O'9K&)E_i) QiğuPmk6nɣ{j}Q}L]_h?>nj^$oVLɓ߱ mkVo@0Vp > vCu!9QAdmLG~ >Qo1/C/U/g/V/ /T7} 7վkEA*w}+% B`;$gK*"V2w@96קM-nvSiF!nLLgqNy4~ QUcqÍZS)^MO_OqOO-v??OO'O|9O F1'ߢM UPiPK>´}]"}9'uH0 A5]mI;;#ǧ66hx~r JQa~&qrMi~߭Uȴ߯E~߻ io{oooI_ oo1oCo|Uo$C$g;#,b2?.x}CwMLW1b[̵yx8ج`}eM}oJjRݣS62`M\|"XB}B+<5asݴf);M_|q7;ӱ,_|#Vx~ C.t 1_!; }i틺%~?3]9r?Fn?59?趒;>L]ߛ^_u^VQ$2Ս޻}ǸПƯد3EWi{7TS@f𿟜L)l\m߇WMw~쾟K,:֑Zь?FSƊl\?i@9 <>̩#Տߘ]l\ s?BZBDȕ݇k2PU}l\q3h^ ϞOasυϗϩS#ѣn>x8Bި9ڞMh #sUx=BT.< @?F %婢?2#.5>_9K 罰5L]!g6L}MJA?**=k}1TӦy?F'sO=/ge [A\{9M?F>Y=k X*e S(N $9-g[?ow-$.Tzv )\$?3߇Nx'fl\|z $M}~' /IpLֵ?F˦6k]zFq&>}w^YM|Ԅ?F<']?0#Jh#h /xIkHw1]ǥK]P|G>q2:|@_3Y 1I l\"_@=H?` @/?$?6?H?U //////1bJx?FL!E#ԇ}Se γybE?FcN} Ɗx3c }CRD80}>~^ϝ{ª\3s./M?F^Y⣝iϟʁi{s_4I[H?FJ8oxJJϑ+ϊUϰʉhFq$ >LT ]~~[4xYpŬ0Ex}LYTfxy."ooo#5yP?Fឍ~QTJZvW9 ?FڡGSۈrQ5|橁5ǤˑIGYh($Qw~5tjl@fxF# -?Qy?FOT ʼn@-1ş9Ыva*S?FR?fB V1?ݰف]沛tk{Τ/Yv{ʙޅ݉}1MZѰb$%7I[my -}\SU=cx|[)T*Oў}|d.KnޟR{nIxߒΫ}@B j-2YpM:H`FZT=e-B~yh,?/߯}%/ASew߉ߞyf}x0 Q>zsg=ڟUbw;IS ڀ>3LI~ goSy?~wib`W?YM7+mɼ7V9H3pvsSs/M/}~iV9@gM!&K]oZBdPeF]ʼY mV6| ig5 ח9]#.Sp_xuT&~?Ftm*ԍ`_rYHp O~![ިKmU|ױ.jriwo /F'gy|yrqFYH?߁h}FUϯz5ꞵ,WCˑB`Ԟ`H}sU2w~xoӄڭfDjt! J Hna)(J6w~nv؜p oo1oCo)______ֹ2JI`H~Ͱ f tɾ4EwߗMMpW[̵yط]?F3,棣SLLh ?mu`Xr}Q͘~?Dp);M_ *ֹci+!c) x+Ҳ{&3oٶ[i?FqTƊF,]H'^ <Əٶ H;z0=}F,XQʮ}7$zLٶzTǬGWF,4$ZgsRF{^ j4Z>~[T-G^8?Fz^.H ~L?%aasS Xޟno#ά:HTFF}6CF J'bO[;| ~^-!3EWiKYYx4?F -t[|L?r69BMj-1(?FN^4>Nsz9ET~.Q^=#94o4>ݠ_J? H~&U7`dU \(5Vm H FۄܱykyU} қh?nBN 2DV3ïկ IQY1Q( &&] 6P^JY8}Soj11Qً;]n;P^u񟷱g_ G!.H?Fh\<;Qq7B1b;Y|#Kk{[oY??cgCo;M_q4' IsЪN =͐\h \[Vmq:Dyxj?FYi&?Gbx)U͖֒z/^bA/ F5f;d#\EH{=Xj|8%5 1C Id匽 轫 (Z-q͜DD D58|UBn FxV5?F+A玕R\ȚE Fk$!2 +\HC.P?%ҧnP A @6D .THD: # h0>Th]]9 MP IAUFOѬ?FA^?FMOh?F9d*C?P68R?>$y> n JuM{` ?e ;  Su*Jt'  q3 Pmta{Z_ebN3.JvH?zhǿUv?vh e:Z}.b%{>JU2N?贁N[?)@M#J&A@wbI(bW)U+U+U&J π(<!lJ ?%P?AO"d+b Y)(u/%B #A1A15 `?Co}p rigTwt c)x0]2`09x0Mp0]cn0osh0fv2Rg1rj01av0ih0Wn.x0 l0U n8s2e0en05v0d0:1PY>4#-#,M3 M7#(p0b59 DFXGdG'/2WUA;F%!$a dF$&#l,&}>UhET ]]9 M qAUFr ?F l?F?Fg!ِ3u?P6 L}>   h,(JuM`l? Ek"k6HuZJtW  7OttG97i;y4v'ʚc>JU #<H!-A?^% ?AJb^ @bbbz #"b#$"b$J 2zGz?<@M7#J&(&$%" ;'"*@!EA#5 hy<=A#B115 `?CopyrigT}tk(c)kW20@9kM@]c@os0fBR1r05Aa@i0Wn.k ] lP@U HsTBe(@e@5vf@dH@/"148#-,?3 7#9 i b59 6XGG'0U?RF!y$0 F ZlJ]Uhz 1hy1!5(`A#FB1?F#)Q PV?d"cP΄ ťc(Mb(8"J! jo0o Cƣ8-$DqaE4d\b@d Kc;d .#8磵g.p~?FTHR?PV7 /!i q7ikWPV]DT#3 AMT 5AUFr ?F l?F?Fg!ِ3?P6 .6> JuM` ?IKu8Jt5  Otyt_G97iͅ;y4vʚIA>JU5 J#2zGz?@MJ/&A@bm#ztc a#b{(Wb)+&B#!!5 `?CopyrigTt (c) 0W2009 0M0]c0os f 2R!r 61a 0i n. 0 AUlQ0 8sU2e)0e0vg0dI0!$[#8"8"?6 ?A$/%-/# '6&iie59 &XG}'0UBi6!40I iF}JlJ(>UhiI !!AaR4 Rx J:j]ݿb~)_.S buBqVy3'?F(ËE?P,a,[ /A1YQYV4hA.xeAR +3l4xa@ R#Bsoogrb5%UGD  3 h0TdYYB UFW)eK?FI{Ä?F9n;*Y?FI_tnw?P} tf  f0 D Xu` ?00DDXXl)uvts  < %t"F0" %'ӿp %,'qdX¤U!!'"`?CopyrigPt (c) 2\09 M c oKs f"!r !a i n. Al0 (s 2e e v0d0s"#S$|#B-#l# '?Rw=#&|#466 2|$Z##0U23@{& ^5 FX`7Th]]9 M]AUF?FMHR  h$ JuM` ? 3YY.KuHJtE  0oI~$tq/袋[Dmk.IQ>JU2N贁NK[?<@M#J+&A@b](bk)i+i+i&Jy%#7 ?3#) ?Ac"i+h//%*B%#U1U15 `?Cop rigTt (c)02`090M0c0o%s|0f2{1r~01ua0i|0n.0_ Al0 8Us2e0e0v0 d0"N1YR4#--0" a7&%0bE9 XFX'xG'0UB&!$$a xFJlJ]Uhzs1Z!1(`%#FXxcӔ?F>D [TQ>Q) R "J:!l?FQXP\C\6m/m$BQYsZ_?FFt%7?F{hUuW{ ]3\+B MTT0TDiQ>8aQ4? /Ȟv/x i[? `RT*?D`@ S <oor5%QEUVV__ <#<>e__f{,Vxh`d3rAg 4 ccgd$ymAv AGuPHD: H h4>T]]9 MJUFoc?F24ͷ?F7?FXPq?P6 >JuM` ^?MuJt  ~27It=W]tEIURF]IlGEw|>2N/Nk?<@MJA@gbb ) +R + &J[_ffy) ?/3)"B5 !!5 g`?CopyrigTt (c)6020B0960M.0c,0oKs&0f42%1r(0a1a40i&0n.60 Al|0 ,8s2eT0e,0v0dt0!P$-/ 3  7|&&iie%9 &X7"G'0UkB|&!$%0 "F6JlJAUhh71!!T $#< $M DRkVJ:+;5jB\aQZS kBձQ3aZ9]UYQQU%U2VZ?9=_30B_ZK&DiaX52+_=U"rA $cHD: H h4>T]]9 MJUFoc?F24ͷ?F7?FXPq?P6 >JuM` ^?MuJt  ~27It=W]tEIURF]IlGEw|>5 J2zGzKt?<@MJA@gb%(b3)1+1+T1&B!!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al 0 (s2e e v 0d0!$)[&`h4|9 ?A(:/[)-#K '6i@ie<59 X7"G'0UkB6!40 "F6JlJ(>Uh"I !e1+!AaBc1 $<@ J:?+;5j:\YQ,RS kBձaQ3"U9]MYIQHD: H h4>T]]9 MJUFoc?FXP?F7?F+;5jq?P6 >JuM` ^?MuJt  ~27It=WE]tIURF]Il\tE#>5 J2z_Gzt?<@MJA@gb]%(b3)1+1+1&B !!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al 0 (Us2e e v 0 d0!H$[&h4|9 C?A:/[)Y-# '6iie<59 X7"G'0UkB6!40 "F6Jl*$>Uh @3 !Ie1+!a1 $<@ JU99YUQIYEQHD: H h4>T]]9 MJUFc?F24ͷ?F7?FXP㟸?Pn6 >JuM` ?uJt  ~o2It=W]tEZIRF^IlEw|>5 J2zGzt?)@MJA@gb%(1+b3)O+O&*B!!5 g`?CopyrigTt (c) 2U0 9 M c os f"!rԶ !a i n}. Al 0U (s2e e 5v 0d0! $![h4?6 ?A:/[)e-# ' 6iie<5(9 X7"G_'0UkB6Z!40 "FR6JlJ(>Uh"I !4e1+!ahBO $<1 J:#]Z9=_30:_RS &DQaQ3"U9=YYQMYIQUHLuD" # ;3h0TlaaBJ >UFE3kh?F3?F_T?FU Whu?P vN>uA` ?)u#>t  5@{It=W#H9IRj;Il廤#2zGzt?@9 >A@gbb )bJ )'+'&>yga?|& ? " +'+,5'UN!!g`?Cop] rigXt (c),02d09,0M$0c."0os0f*21r0W1a*0i0n.,0 Alr0 "8sv2eJ0ej"0v0dj0!Ea$-X3 7|&$0fE 6X7G/'0UaB|&%!$e F,J l>aUl~1#1!jQ?FN @ ?[ql#<3ٽECUS(: 9[#UT eW3wU( R@SRQY?I?dXE ^ߑC8_J_ dX _2_=oV_D#OOOOO _vVFmR^\j:=pd_ofI Њ?F0떜lZ$&Оl ?:Ynx3~ ,az kXao41}gK}YWq`m0BTf|UH luD( " #  #A h]0T]]JMUF:%?F6emP?Fiz9vJ?P N&&M %4&U8HCM 9 / 9 / 9 /9/9CWW W WuM` ?% &W ">"R'&j'&~'&'&'&;&SuQ)t  bD%t!2 F_%7J">67šʿ~ U2zGzK?@Mk3{6A@n4b3z0312b808;6Tu3 A A2`?Copyrigxt c)W@209W@MO@c.M@osG@fUBFArI@AaU@iG@n.W@ AlTW@NGsBeu@eM@5v@d@c2AQ}Dl3R[u3-A B?V?4 ?E-Xu3,C ,GVl5O@(E ԕVXgW|2'0UR)V!-TA VZMU@QjQ1i81g\a?F;|~4P~G #W.?a4Hd3.䛵?Fp _`9},jX?F>@ ]3?iFS_lUӧ:ޜ !hރe#ģ[ Q " i!$a4BH:}k_wg0wEuf.29]~4pO˯ô>P|o!S#_`1y;6}wfl{o@opoQQ$Ug@EiE{iooeD?FD ~a]#Q`7\X!?Fw^?FrY?Fo2?P'DT! /3Q9 մ7'||U|6ys r #, Jދ]? $oe?Ň41:/ B"tŇrf5EU>PbtItnɟ ^HY*Gą 2DhaspA]鯱ï ֯z %7I[mOb罞О )E@ͿXP-?;a+ >L &WEW thqϧ"mϏ] 0BTfߪߘW4. Vwp,> i\_XT&8JZ;?FT}:/?$qxE~yE?FA5g`u/V/ 123\?FrMT/?d3~~?FEa,蕱/?CZ@6 De //*/]0T]]JUFp>)/Ep?F2왵??F ɏD,"7?P uM` ?j`fpu#zAtw tnٳ \b "OMG2N贿Nk?@dM#%&A2 bW(be)Jr+r+r&*!ܿ!`?Copy_rigt_(c)2W09M c os f"!r !1a i n}. Al<0U (s@2e0e 5vR0d40 "!3]$#Ry"&#4?6 Q?]"W*s*;'-X# '6% h5 RFX$GrG'0UBű6!4 rFJlU!h#'A(:FYSocg0vr p_y $(4!Z[7?FL30pS a۫YQ?\I`X3U5 Tީ?FʨQYC\f"qoY5U%?Fq$B\F\bJFXz___\Q# __1_C_U_g_VNx?FM=\>ۆ\34=(_V5T?F}\#R)\b@QoVr]?Fc߰#Z}L \$6ԡyqm0:?F u\.Iſ\)?oUU/ASewV?FN,]\\wzV]~?F@(r\F-~Ȩ\(p|ymIxg?F[j| 7+*y\= qmh?Y?FYgR\Aa\ulӏɟ۟UY=Oas!KC4?F}7PM\8HJ|\ HNVh?Fwi@­\A>xAV%+j7ٽ}#E~\I&)5eF=s '7["mSpуdĿֿRtYk}Ȏ~+]~nn)`]͟Cc֦ъ]#.?FPZk+N:2\y_@W߁2ʞ54}d\e҉qm}&?FUfK­thV\9\ލQak}ߏߡ߳~VZwۿ4&b-} ߜ.c|~kd$~Y""A6\lJ(i0(sVTloV?F} \ǀ_?$qmR'%"2?D= bY\r6yލ 2 QYI0`鎍1/ 48Ve[bV$?Fi뭩1?0pS!K;?F"~[:{Q~b?S)qm#|W-?FG~b .f-?R[Ϡ ލ /*/fɾw2Op>)/Ep?Fd(_a9~ {F!_ ~`2DMz2m^Gm}>IލPobotoj ___o o2o̺m@UP1-JO}^^fon l?FSƊ1̓ ;]\OogMNE0A`^?~uݟ$E~ɰ~%^~ =7}ÀMuҳ1?4tx鑡?3:\ `r $6Hj(i?F ڷ1^̄ZϭSԢ%^XP$֧zw]<<E?F6 "Rf2 =s 7Pq=[~1̇1%]?F | .@Rdc)Jl pe},X|4]-Huvzxډj?FwJ%H]ǕDG7t{GtY~Ǔ.PH#T~]?9+T =~B3~-L /=m$+)Hϰʛ&8J\n|JoWx#0z ),?5Uz!xz?Vsf&; `ߌ 猖gߺ8˺A}2!¹diqBZ$@S =u V N,.zu~6J1&ߴEWi{f&~c?Fۿ>4U, }J\1?Fξ9rзX=YR Qm#07q X; I6 =4T37 xU,=A S)d= Yqas{%?Fyx{wmQ7Z6n4Nl]?F7c2Gsj3j뙚;(N8 i<=ۇ4W-ɫ-9)]-?F`x}SoA뙳x@///?"?Rz//////xmYԒ?F0ufx)r蜅وWjFQ1?GUF MDe9gsaEo2I^~T@s@܂]Y/|sMv۶ IY?}lD?B9kP/ߊ.x/ONϋaz`3O__)_;_uOOOOOOxHOB?Fi$0%oAlOo-M_k"W?F[y\x_ ]g蜢, )+b77bћ9}DxZ]Qey=zFVjx/I bvdRo$6HZooooo  p? {,Բ5~}j8>6zB?FӺ ~|g=)s-?F8H~ݖ}T M?lfa=Kh݁5};p/"_f/tl 8at""4FXj| ߬XNT'(/E9?&I/ i {.PvwHkOQ qӟĶO@ߒ#'ߛ[w̜zfdm ___ooŅp______DAL4?FGww̆Ia{VU$oEFem(5tc(yÂ;UKG whsi}2Ca6o? ?F20?æmEyo6\iq,"4ߤsZ4?F"EwH | QUY% (?FZ <#a;:wPID8 n7 ~f* /e'Mǃac5'?Fԫ|>ka?I}|b:QH,>P גT_HZ> )6s ;gLjOhLAݨF]In #1 ^OB UFw ~>dbo@+xco8sGU_I/p Pb b[ |b׬ >b 1cF hؒc "cй Lc ѻc 8D hcȔ0_5 B2w d&/#/5/G/Y/k/}//////// ??1?C?U?g?y???????? OO-O?OQOcOuOOOOOOOO__)_;_M___q________oo%o7oIo[omooooooooo!3EWi{ /ASewD ԁ8G bҏ+=Oas͟ߟ'9KJ Xs8Li тN  (     o"HB ÄYk PUFDfP h TPYYhUFL&d2?F`0 ?Fx<F BP(c?P? w<lh -^&88Kh;_ 8srY3 8 83 8 838838 &8&381&8E&38Y&8m&38&d*8&38&8&8&]; 63!8!6#8563$8I6&8]63'8q6(86d2)86*8f6+86,8f6-86.8fF/8F08f/F18CF28fWF38kF48fF58F6U789;8fF<8F=8&F>8 V;fV@83VB8fGVC8[VE8boV;VG8ȗVRH8VI8VJ8VK8VL8fM8fN8-fO`8Af;UfQ8fifR8}fS8ffT8fUUVWXZ8ff[8f\8f v]8v^8f1v_8Eva8fYvb8mvd8fve8vf8Hvrg8vQ;vi8vj8k8l8+m8?n8So8gp8{q8r8s8tuvwy8z8{8|8/}8C~8W8k8Ѕ q  0A`Ap4icbptpo\ evq !aE  -QuYda|z !T3Q_`|]1n@` X?W&&.11 T_?xpxx p  pxp%{wxw?w _w xwOw  p JwwxwpxbL&d2鿃`0 +?? {ҿ ȿUGDF # hz8T YY# B{UFL&d2?F`0 ?P} [u`ho?u#   @B<66D^nY^-] [ [ [ [[[&7^"&[6&[J&[^&]r&[&^&[&d^&[&[&[&[6[&6[:6[N6h^b6![v6"[6#[6$[6%[6&[6'[6([F)[F*[*F+[>F,[RF-[fF.[zF/[F0[F1[F2[F3[F4[F5[V6[V7[.V]_BV9[VV:[jV;[~V<[V=[V>[V?[V@[VA[VB[ fC[f^2fEL[FfF[Zf^nfH[fI[fJ[fK[fL[fM[fN[fO[v^"vQ[6vR[JvS[^vT[rvU[vV[vW[vX[vY[vZ[v[[v\[][&^[:_[N`[ba[vb[c[d[e[Ɔf[چg[Q^i[j[*k[>l[Rm[fn[zo[p[q[r[ʖs[ޖt[u[v[w[.x[By[Vz[j{[~|[}[~[[Φ[[[ ު-2<ZZnn&&"&"&6&6&J&J&^&^&r& r&&&<&U&&&&U&&&&U&&66U&6&6:6:6UN6N6b6b6Uv6v666U6666U6666U66FFUFF*F*FU>F>FRFRFUfFfFzFzFUFFFFUFFFFUFFFFUVVVVU.V.VBVBVUVVVVjVjVU~V~VVVUVVVVUVVVVUVV f fUff2f2fUFfFfZfZfUnfnfffUffffUffffUffffUvv"v"vU6v6vJvJvU^v^vrvrvUvvvvUvvvvUvvvvUvvU&&::UNNbbUvvUUƆƆچچUU**U>>RRUffzzUUʖʖUޖޖUU..BBUVVjjU~~UUΦΦU  $BWW.(%6QDUQ?S>S3Q?RdV"qwX[?( 8RLS`S~SSSSıSرS챔SBRS(Sv|Hv|Rv|\v|fv @ 4񸣢vvy|v|v|v|v|v|v|v-|A|U|U$$}|.|8|V|`|j |t|~1|E|Y|mx؆؆|| "|!"|5"| ]"|q"|("|<"|F" |P"ZZ"|d"|n92|M2|a2|u2|2|2|2|Ȗ2|Җ21@1 AQB|eB|"yB|,B|6B|@B`|TB|^ދQUVVVVUVVVVV SRVfff&f0f :fDfNfSRbfUlfvfffUffffUffffUfffvU vv v*vU4v>vHvRvU\vfvpvzvUvvvvUvvvvUvvvvUvU$.8BULV`jUt~UUĆΆ؆U U(2U<FPZUdnxUUȖҖUܖU"U,6@JUT^h "UȦUܦb&l&U&,@UTh|U&&&&U&̶U046UDXR6lUU66U*>URfz6UFFF$FUUjF.UBFVjU~UFFU(1H1R1\1f1p1z1Ä1Î1Ø1â1ì1ö11111111AAA$A.A8ABALAð÷jAtA~AÈAÒAÜAæAðAúAAAAAAAQ QQQ(Q2QBU=Us/?Se?SU?SѲ?SđPÿ@qP?@R?TV?ܲu`W@jqRu`a@r URfchqb?SuLiup`u`@բѠ+u`ѓb&Y faH1crgg`Ÿ /"(úfiic` dFpaMvaf&afl,s  a?5 %` pq q wu`Vis_PR Y. hm!#5N 93N"+b`?Copyr gt  c)M20Y9MM cCo"o Lÿ҆u` ?u~pQ(-DT! @ p@U au@`ba@? ìҀ@^0FH%@Q.FӀOռB\i@?yQ/FQd@ߐRrf i`R$pnst*oM Pe]ف p ջ bmCuE``-u5@`^0aՁ^0d qn pN<udRE %EЎ%$-+h 0JTlaaM>UFN&d2?F`0 ?F|G?Fm]ri?P U>tA`  M?t q۠ FZ>u hu!s7YaMJMRKm? ?M>bA@bKbmbz #e8 ۢ =# b#2O[(ta k-3thk-![(}/tГ/w t/ t/w t/ t?w t&?t;: Ne F;,";&a#68;R;W *P>B m42A2A`?CopyrigXt _(c)i@2dW09i@Ma@c_@osY@fgBXAr[@Aag@iY@nU.i@ 0l@ _HUsBe@e_@v@-d@\2lH#"p# @K4JUlQQQQPA!@@2Ruݯ?F#& hnGHge) ]NUq Z?FG ߄\.r\oMGhEUKar?F3ojp0m]-Eά\?T\iEUe^?F`1<<0mN[ʰ~\on\i^*S__` 5C3\i__B_TFTA'VW@qqx_[QQ JR! J!4J78 h !a!hE!lU]T T!"#$%T__o{?FlӖ|н1|Ϥo} rhQя Me]otv۲ǀFRH0ύ|dr٣|WӍ[Smp"pʍ|q5JK tvp?FZEoZɍ| 9EPڣ||lbtvX9|"@G!/ ւ?F9|H&3|?<=$_4F+\>30m_d 5\i`U0m~ !Qx$(gN/ ?P0wf>nZ?l? r?;{|{*K1?Fݿ K 1wz_ 9*S?FAcM@=orOyg?_P|* /$?F#K i >捵JLJ=|*zJ@w/d;ЍuI@ͺhˏ4pHD: )&# T=h0>Th]]9 Q BUFܷqP?Fԁ43a?F7??FtYOȻ?P Bt`  XM6 ?t׻4n%O__Bu aquo7>KJASTfw?X ?Az@bbb! ( 6f )  '+ ߈?I-Z#g!z A Qu +%/,8)E!'+ k(?r+o?(a4 8) E"#{ #BstG8tU: Ba L>2?!88;D;68?5;D; tj>8LALA1 `?CopyrigTt (c)@2`09@M{@c.y@oss@fBrAru@Aa@is@n.@ 0l@ yHsBe@ey@vZ@d@v2h<M#l#@ M@?4>UhjA6Q>1| L`Fkdj]J}vMjR]M 6)fMB@Wa\ k_稇avCe=ESeR9Y? l`gESeFeabkod iSQޗh~??5@+ c;Ꞗi"2_U3rA/04sCHD: )&# T=h0>Th]]9 Q BUFdHKJAUVJp?X ?Awz@bbb! ( "f Փ'+ ' qq?z A  +/.&68))E! '+ go?W-sU!n*a4 8) "u#{ u#D!st?8tM: Bav L62?!08;<;60?5;<; tb>{8DADA1 `?CopyrigTt (c){@2`09{@Ms@c.q@osk@fyBjArm@Aay@ik@n.{@ 0l@ qHsBe@eq@vZ@d@n2h<M#l#@ M@?]UhzbA.QR61b L` KdjMaQ  6fM{"@Ftnq\[3K_,7e5EGe<\ֽE?Nf[ NA_qd7eEGec6i\m j'f܋h2_UB3rA'04msCHD: )&# T=h0>Th]]9 Q BUF)8/?FFT?F!/$?Fᱝ̻?P Bt`  vNC?t|¢ϛT H0Bu auo7 >JTA0f88v?WYALv@z bbb!'n 6 % )! ! ,+ <?' o?z #a47% =) J""#K#{% (+ ( tQ#BXYщ?A> ?A "+(/+/=/O/a!y:5rl/@ sU10( /???? "?0<2?M{!b 1/Ĝ/*%,"t:"t>TQQ'@`?CopyrigTt (c)FP2`09FPM>PcTh]]9 PB IAUFJ1>?F}?FF(e?F=PFo?P t`  0!?tj$h5q+ tЖZu Mauo8 >    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 ,p )l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ s"?(a490 9_b!#{t0#tN8tϻ: Ua BL2$18KE;F?VEK]; t>B 4AA0`?CopyrigTt _(c)@2`W09@M@c@os@fBAr@Qa@i@nU.@ @l/P HUs3RePe@vEP-d'P2h<M#bl# M/P?]Uhz@AQ1 L@3FO#۲?F?o2zP dj|aW{'8cUF:&x0?F?F?F_'qoO 0Yigull4aj?N~f0c~o+ fEee?F<'?F@]?FwF%ޕol}dQ3ll BXl귺m|?bBhaU~e`ba`?FV ?F?Th ofl?PI3qoikeðl8` |GT?heFnF$OĒ?F o* leowk~y{f~tGg˂a ,8b1;MHD: )&# ;h0>Th]]9 PB IAUFGF?FEs?F+\(?F~@ t?P t`  9`Ik?t{ͻIu -ZrqKZu Mauo8 >    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 ,p )l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ s"?(a40 9 .*2!#{0:#t8'tϻ:Ua L2$18K;F?VEK.; t>B4AA0`?CopyrigTt (c)@2`09@M@c@oKs@fBAr@Qa@i@n.@ @l/P Hs3RePe@vEPd'P2hb<M#l1# M/P?]UhzAQ1 L@3FMbX9?F4ҫP dj}ah8cUF[~K?F|D?F+Xc?F&PRcGoO 0YiM+FllZaj}0%|f0c̭ fEe.V?Fȿ̅)`oSt?F?(X:olGGTll .Xl{e{|rww@haUe:&x0?F%Clw?FAz?F 1vņflux1qoiFA(]`t߼ |~Th]]9 PB IAUFGF?F\Dֳ?F+\(?F~@ t?P t`  9`Ik?t%h2tMu -ZrqKZu Mauo8 >    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 ,p )l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ s"?(a40 9 .*2!#{0:#t8'tϻ:Ua L2$18K;F?VEK.; t>B4AA0`?CopyrigTt (c)@2`09@M@c@oKs@fBAr@Qa@i@n.@ @l/P Hs3RePe@vEPd'P2hb<M#l1# M/P?]UhzAQ1 L@3FMbX9?F4ҫP dj}ah8cUF[~K?F|D?F+Xc?F&PRcGoO 0YiM+FllZaj}0%|f0c̭ fEe.V?Fȿ̅)`oSt?F?(X:olGGTll .Xl{e{|rww@haUe:&x0?F%Clw?FAz?F 1vņflux1qoiFA(]`t߼ |~Th]]9 PB IAUFXIn?FLw¾?F+\(?F-ku?P t`  -k?tZ߅BTu -CmoLZu Mauo8 >    PEJڍU[\/(?&. ?AbbY!z@Ae bbCt c(a4b  b(h#{ h#΍t(tI*#0f88vb.#i L5<1v(&$7/(D%"6/5;0( t.*B#11`?CopyrigTt] c).@2`W09.@M&@c$@os@f,BAr @YAa,@i@n}..@ Alt@U $HsxBeL@e$@v@dl@"h<M#l# Mt@?]UhzAA!J@#FMbX9?F$x0OԛP dj}תa4(SUF[~K?FE?FSc?F?#oO 0YM+Fӱ\*aj,.}a$?# XEU"n?F +?FbEd?F v<olTBJ\LMYBltavXlp@XEUv/?Fpvw;pg?F $hއvol/AD0qYJg ַBl)$ԞXlD?B:XU^F.fّPKk^Rl_[Ei1GAf`dSOq+a,(bvHD: )&# ;h0>Th]]9 PB IAUFXIn?F(?F+\(?F-ku?P t`  -k?t7/;3bu -+CmoLZu Mauo8>    PEJڍU[\/(?&. ?AbbY!z@Ae bbCt c(a4b  # b(h#{ h#΍t(tI*#0f88vb.#i L1<1v(&$7/(D%"6/5;0( t.*B#11`?CopyrigTt] c).@2`W09.@M&@c$@os@f,BAr @YAa,@i@n}..@ Alt@U $HsxBeL@e$@v@dl@"h<M#l# Mt@?]UhzAA!J@#FMbX9?F%x0OԛP dj}תa4(SUF[~K?FE?Fdc?F,?#oO 0YM+Fӱ\*aj ,.}a?# XEU"n?F{ +?F(%/Nd?F<olTBJ\MYBlU{XlpDc@XEUv/vw;pg?F^$hއ?Fvol/AD0qYf ַBls$ԞXl+?B:XU^F.fّPyKk^Rl_[Ei1GAf`dSOq+a,(bvHD: )&# T=h0>Th]]9 Q BUF贷F$?Ft\@?F\HRq?FƯK7?P Bt`  x#?tK#ll$nZVBu auo7>JA]^'? ?Az@b ( 6f  )ϓb= + _? ' 88o?z A s +=  /)/;/M$[+["-j!Q U1[!x(ar4 ) "'}# }#BtΜQ8t_:Ba~ LH2!B8;N;6B?5;.N; tt>8VAVA `?CopyrigTt (c)@2`09@M@c@oKs}@fB|Ar@Aa@i}@n.@ 0l@ HsBe@e@v@d@2hb<M#l1# M@?4>UhuQuQPtA@Qj LZFχϰ 7j bL\2] 6R1bMB:MbPdc Ɵmdb`GeGEWe$oZ\aibvIGeU@Vϰ+@?F23<~pk_xu jlTh]]9 Q BUF#/?FKGY?F\HRq?FƯK7?P Bt`  ~B?tIH#ll$nZVBu acuo77AJA]^'? ?Az@b ( 6f  )ϓb= + _? ' 88o?z A s +=  /)/;/M$[+["-j!Q U1[!x(ar4 )] "'}#{t }#BtNQ8t_:Ba~ PLH2!B8;N;Q6B?5;N; tt>8VAVA `?CopyrigTt (c)@2`09@M@c@o%s}@fB|Ar@Aua@i}@n.@U 0l@ HsBUe@e@v@d@ 2h<M#l# MT@?4>UhuQuQtA(@QH1j LZFهgϰ 7j bL\G6] 6S-fMB:MbPdc mdb`GeGEWe$oˏZ\ai?bvIGeUWeVϰ+@?Vpk_xu j aGeWe _ooh2K]u:3rA 4s2HD: )&# T=h0>Th]]9 Q BUF/ ֛9?FD6Hr?F\HRq?FƯK7?P Bt`   a1?t -_9#ll$nZVBu auo7>JA]^'? ?Az@b ( 6f  )ϓb= + _? ' 88o?z A s +=  /)/;/M$[+["-j!Q U1[!x(ar4 )] "'}#{t }#BtNQ8t_:Ba~ PLH2!B8;N;Q6B?5;N; tt>8VAVA `?CopyrigTt (c)@2`09@M@c@o%s}@fB|Ar@Aua@i}@n.@U 0l@ HsBUe@e@v@d@ 2h<M#l# MT@?4>UhuQuQtA(@QH1j LZFهgϰ 7j bL\] 6-fMB:MbPdc Ɵmdb`GeGEWenZ\aiavIGeUWeVϰ+@?Vpk_xu j aGe@We_ooh2Kt]u3rA 4s2HD: )&# T=h0>Th]]9 Q BUF[@#?F\O?Fo?FƯK7?P Bt`  ?tJ8Xj$nZVBu auo7>JA]^'? ?Az@b ( 6f  )ϓb= + _? ' 88o?z A s +=  /)/;/M$[+["-j!Q U1[!x(ar4 )] "'}#{t }#BtNQ8t_:Ba~ PLH2!B8;N;Q6B?5;N; tt>8VAVA `?CopyrigTt>(cu)>2`09>uM@c@os}@IfB|Ar@Aa@]i}@n.> 0Ul@ HsBe@e@v@d@B2h,<M#l# M@?U4>UhuQuQtAJ@QH1j LZFهϰ 7j bL\] 6-fMB:ʿMbPdc 2Ngodb`GeGEWe$oZ\aibvIGeUWe4?Vpku j aGeWe_ooh2K]u3rA 4s2HD: )&# ;h0>Th]]9 PB IAUF?FË.5?FQ?F?P t`  ?{R   ] EJ]_DRb(?&. ?Az@bY(e 6f h )ϓb k+ _?Z'e 88o?ze Ae s[+ h g/y//$# L:5 /sUK1*a4 9 2(E#{ #t8tϤ:U a L2T18K;6Ԉ?@EK; tͺ>B40AA0`?CopyrigTwt c)@]2`09@M@]c@os@fBRAr@Aa@i@Wn.@ 0lPU HsRe@e@v/PdP2h<M#l#A MP? <>Uh$QQ(]A(Q1 LZ3;'xP 7jbbFbL7a 6{fM8cUFnDdTh]]9 PB IAUF4{"?F=N?FQ?F?P t`  ^}W;o?tQxČ( 뾅@l* 9u auo8>   ] EJ]_DRb(?&. ?Az@bY(e 6f h )ϓb k+ _?Z'e 88o?ze Ae s[+ h g/y//$# L:5 /sU"K1*a4 9 2(E#{ #t8tϤ:U a L2T18K;6Ԉ?@EK; tͺ>B40AA0`?CopyrigTwt c)@]2`09@M@]c@os@fBRAr@Aa@i@Wn.@ 0lPU HsRe@e@v/PdP2h<M#l#A MP? <>Uh$QQ(]A(Q1 LZ3;'xP 7jbbFbL7a 6{fM8(a?nDFF!@~qWoO 0dTc I\rdcd bjUkgaPbeEef"v?Fr6d?F?kĀqo`OivddlXr`tF0sK|٢jr3t!KU:G}?{]rLl} ]|q3xnTrg?F<ے7pooZgtfio,V|=] 5ve&1?Fpn?FTh]]9 PB IAUFGC<-?F f?FQ?F?P t`  L?RD)o?tC%)Č( 뾅@l* 9u auo8>   ] EJ]_DRb(?&. ?Az@bY(e 6f h )ϓb k+ _?Z'e 88o?ze Ae s[+ h g/y//$# L:5 /sU"K1*a4 9 2(#{ #st8tϥ:RUa L21*8K;6?@EK; tR>B4AA0`?CopyrigTt c)@2`09@M@c.@os@fBAr@Aa@i@n.@ 0lP HsRe@e@vZ/PdP2h<M#l# MP? < >Uh$QQ]AQ1 LZ3;'xP 7jbUbFb7a 6{fM8cUFnDFK!@?FDqWoO 0dTc I\addǼbjUkgabeE(aFjv?Fr6d?FkĀq o`Oi^j^r`t0sKÊ#|pr9t!KU:M}{]r,Ll}]|9xLufTrg?F<ے7vodObdcZgtfi,V #|=c ;vLu&1?Fpn?FTh]]9 PB IAUFĊ?F$n6b?FQ?F?P t`  ro?t,Č( 뾅@l* 9u auo8dA d  ] EJ]_DRb(?&. ?Az@bY(e 6f h )ϓb k+ _?Z'e 88o?ze Ae s[+ h g/y//$# L:5 /sU"K1*a4 9 2(E#{ #t8tϤ:U a L2T18K;6Ԉ?@EK; tͺ>B40AA0`?CopyrigTwt c)@]2`09@M@]c@os@fBRAr@Aa@i@Wn.@ 0lPU HsRe@e@v/PdP2h<M#l#A MP? <>Uh$QQ(]A(Q1 LZ3;'xP 7jbbFbL7da 6{fM8(a?D +F2|>?FW@WoO 0j?rdcd bj{^WeabeEef"v?Fddd?F܃qo`OivddlXr`tuqE|E:jr3t!KU:G}{]rLl}]|q3xngqrg?F~pooZgt_ML|\ 5ve&1?FWf?F?#0b|[m낪 z'oǵ(|F$$!ayTh]]9 Q BUF贷F$?FlIJ?F\HRq?F#o˯Z?P Bt`  x#?tnZ/J#ll#VBu auo7>JTA0f88v?WYϳAjLv@z bbb!' 6Y % )! ! ,+ <?' o?z #a47% @& J"#K#({% (+ (G t#Beı?A>L ?A"&"&$/*8%,"t:"t>  A A6 `?CopyrigTt _(c)D@2`W09D@M<@c:@os4@fBB3Ar6@oAaB@i4@n}.D@ Al@U :HsBeb@e:@v@d@2h/1<M#l#@7? M@?(>Uh7E P+AA!{ L:F A7<6j% bRzg9<2 "\MbPdS mT W5U6ik0YaYvq 2HD: )&# T=h0>Th]]9 Q BUF#/?F ?F\HRq?Fn˯Z?P Bt`  ~B?t6#ll#VBu acuo7hAJTA0f88v?WYϳAjLv@z bbb!' 6Y % )! ! ,+ <?' o?z #a47% =) J"#K#({% (+ (G t#Beı?A>L ?A"&"&$/*8%,"t:"t>  A A6 `?CopyrigTt$(c)$2`09$M<@c:@o%s4@fBB3Ar6@oAuaB@i4@n.$_ Al@ :HUsBeb@e:@v@-d@2`h/1<M#l1#7? PM@?(>Uh7E +AA!{ L:F<F6j% bRzg9<2 "\7MbPdS mT W5UO?6ik0YaYvq 2HD: )&# T=h0>Th]]9 Q BUF/ ֛9?FT?F\HRq?Fn˯Z?P Bt`   a1?t#ll#VBu auo7>JTA0f88v?WYϳAjLv@z bbb!' 6Y % )! ! ,+ <?' o?z #a47% =) J"#K#({% (+ (G t#Beı?A>L ?A"&"&$/*8%,"t:"t>  A A6 `?CopyrigTt _(c)D@2`W09D@M<@c:@os4@fBB3Ar6@oAaB@i4@n}.D@ Al@U :HsBeb@e:@v@d@2h/1<M#l#@7? M@?(>Uh7E P+AA!{ L:F6j% bT ü2 "\MbPdS mT W5UO6ik0YaYvq 2HD: )&# T=h0>Th]]9 Q BUF[@#?Flo]?Fo?Fn˯Z?P Bt`  ?tz6,JJ\8Xj#VBu acuo7AJTA0f88v?WYϳAjLv@z bbb!' 6Y % )! ! ,+ <?' o?z #a47% =) J"#K#({% (+ (G t#Beı?A>L ?A"&"&$/*8%,"t:"t>  A A6 `?CopyrigTt>(c)>2`09>M<@c:@o%s4@fBB3Ar6@oAuaB@i4@n.>_ Al@ :HUsBeb@e:@v@-d@2`h/1<M#l1#7? PM@?(>Uh7E +AA!{ L:F<F6j% bRzg9<2 "\ʩ7MbPdS 2NoT W5UO?6ik0YaYvq 2UHT5D B &# T>h0JTtiiM ENUFlQ?Fڋ?FPaW?F ru?P WNtQ` c͕.:7?tU)oni8;(\I2-nNuj mu){E0f88wv?AVQ Ӎ!@#b#m@b  0#  #W(3 (o+&T" #t#NĽ/?. ?M"&$a%$$,/>*L%i,T"tΞ*T"tR.R11#`?Copyrig`t (c)02l090M0c0os0f21r01a0i0n.0 Al@ 8sBe0e0v0@d@"Vt!X#xB #/ @T,UtE1UA-!@nZ pvm?S׮(%UQG@Y9"S\FkV5%UЗn@‹Pهϰ=\WQS\OXbiTQY%_7_I_[_DQOOOO__^̔ԍ?f Q́)f@vVP|?5^BlӿIY:6Xl?Ib ʏ܏EABTfxF\HRqCk?-q_WaW?ϰ+@"Bl!H,BXQnB)fFޖBoT[inJ\ۙgyAHD: )&# T=h0>Th]]9 Q BUFhY?FlIJ?F&1?F3(e?P Bt`  6n?tҝw~m4tMuVBu auo7>JAS`? ?Az@bbb! ( 6 )  '+ ߈?/I-Z#mg!z A " ././@/R+,g/y'sU1,ar4 )] "#{t #BtNg8tu:Ba PL^2!X8;d;Q6X?E;d; t͊>8lAlA `?CopyrigTt (c)@2`09@M@c@o%s@fBAr@Aua@i@n.@U 0l@ HsBUe@e@v@d@ 2h<M#l# MT@?4>UhQQA(VQ^1| LZFX} g 7j b2ɶGOR] 6SCfMB:ZMbXdc $I$I܍+d `2aa]Eme'la'iL.G]eU@9/$E?;FslAka,dHּgmeoo(oh2gyu3rA 4s2HD: )&# T=h0>Th]]9 Q BUFy?F.޺s?F&1?F3(e?P Bt`  7 ?tN]m4t_MuBu aquo7>KJAS`?X ?Az@bbb! ( 6f )  '+ ߈?I-Z#g!z A " ././@/R+g/y'sU1,a4 ) ."#{ :#Btg8tu:B@a L^2!X8;d;6X?E;d; Kt͊>8alAlA `?CopyrigTt (c)@2`09@M@c@os@fBAr@Aa@i@n.@ 0l@ HsBe@e@v@d@2hX<M#l # M@?4>UhQQAVQ^1| LZFX} 3 7j b2ɶOK] 6SCfMB:ZMbXdc $I$I܍+d 2aa]Emekla'i.]eU@;0$E?FTh]]9 Q BUF߹e?F4jߤ?F!?FTUUUɺ?P Bt`  ?tiqn= ףc?ckBu1 ,duon7>)JAUVJp? ?Awz@b_bb! (݉ " '+ ' qq?z A  +S/.&68))E! '+ g?uW-sUUn*a4 8) "u#{ u#D!tΜ?8tM:Bav L62?!08;<;60?5;.<; tb>{8DADA1 `?CopyrigTt (c){@2`09{@Ms@cq@oKsk@fyBjArm@Aay@ik@n.{@ 0l@ qHsBe@eq@v@d@n2hb<M#l1# M@? Uh,cQcQ] '1PbA.Q61b L`w"?FMDA dj? |m cuۡ'1 6!1fM{":F$3<6d kS=ѣ<n2{!5E[nLa vogaKeE[eV_@cbc g@]amr\GDž}iNu?FS%f|]tElFTh]]9 Q BUFtx?F/!?FTUUU?P Bt`  K_?t)C= ףc?cZBu auo7[>ʜJAUVJp? ?Awz@bbWb! ( 7 " '+ ' qq?z A  +/.&68))E! '+ g?W-sUUn*a4 8) ."u#{ {8aDADA1 `?CopyrigTt (c){@2`09{@Ms@cq@osk@fyBjArm@Aay@ik@n.{@ 0l@ qHsBe@eq@v@d@n2hX<M#l # M@? Uh,@cQcQ] '1bA.Q61b L`zw"?FDA dj O|m cuۡi'1 61fM{":F$3<6d kS=ѣ<n2{!5E[nLah vogaKeE[eV_cbPc g@]amr\Dž}iNu?FS%f|]tElF<2PhQp[" |"*`KeQitVl:qid?5hQ@J_nohU2t3rA 4n2HD: )&# T=h0>Th]]9 Q BUFiv?F{<?FU?F3z[j˺?P Bt`  y]?thS&XRBu ,duo7oAJAa^!? ?Az@bbb! (n 6  )  '+ g~X?I-Z#!g!z A " ,/,/>/P-[ן+g/y'"ي,a4 ) "!E#{ #Btg8tu:Ba L^2!X8;d;6X?Eu;d; t͊>)8lAlA `?CopyrigTt (c)@]2`09@M@]c@os@fBRAr@Aa@i@Wn.@ 0l@U HsBe@e@v@d@2h<M#l#A M@?8>UhoQQ]AJVQ^1| L@}?F! dj ٯla6?ztB: 7d /kyԷ&Dh]EWemkp+ɉ 5d}bGeUWeFBϰ+@ol0juMDhnMbX0j`(DhnC<o+o"<EgUoo6o9HD: )&# T=h0>Th]]9 Q BUFT1#E2H?F]&UaU?F3z[j?P Bt`  ?t1:&XRZBu auo7[!>ʜJAa^Ė? ?Az@bbWb! ( 7 6 )  '+ g~X?I-Z#!g!zV A " ,/,/>/P-[O+g/y',*a4 ) "!#{ #Bstg8tu: Ba L^2!X8;d;6X?E;d; t͊>8lAlA `?CopyrigTt (c)@2`09@M@c.@os@fBAr@Aa@i@n.@ 0l@ HsBe@e@vZ@d@2h<M#l# M@?8>UhoQQ]AVQ^1| L@Ͼ?F! dj ٨la6ztB: 7d /kyԷ&Dh]EWemkp+ɉ 5d}bGeUWeFBϰ+@ol0juMDhnH?MbX0j`DhWef9o-ai qGeUoo$o6o3UHLD )&# R>h 0JTlaaM>UFObFd0?Fgj?F0U?F_gw?P >tA`  N+ru?t sM׵01,_Œ X">u eu!s7-"JɅJUU?HA9 j@7tt7 b:*H&tH  th*Nĵ) ?MB"b;)H&e8H m 3 H -US4o?FPjj?6ֈ@!QpoĬگ eoĩ́ F o 01G}}϶@b@mp?#nʼPV]O߸uy\l2_+ʦE}@p5"iРo~e*al|ٍşןHD: )&# ;h0>Th]]9 PB IAUF\6:?F}?FF(e?F=PFo?P t`  @?tP[5q+ tЖZu Mauo8#>    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 ,p )l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ s"?(a40 9 .*2!#{0:#t8'tϻ:Ua L2$18K;F?VEK.; t>B4AA0`?CopyrigTt (c)@2`09@M@c@oKs@fBAr@Qa@i@n.@ @l/P Hs3RePe@vEPd'P2hb<M#l1# M/P?]UhzAQ1 L@3FO#۲?Fo2zP dj|aW{ޓ8cUF:&x0?F?F?FX'qoO 0Yifull4ajS?ON~f0c?h+ fEeޖe?F<'?F@]?F\F%ޕol}dQ3ll BXy귺m|ԇbBhaUe```?FV ?F?Th ofl?PI3qoijeðl.` |=T?heFnF$OĒ?F o* leowk~y{f~tGg˂a ,8b1;MHD: )&# ;h0>Th]]9 PB IAUF\6:?Fx?FF(e?F=PFo?P t`  @?t%5q+ tЖZu Mauo8$>    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 ,p )l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ s"?(a40 9 .*2!#{0:#t8'tϻ:Ua L2$18K;F?VEK.; t>B4AA0`?CopyrigTt (c)@2`09@M@c@oKs@fBAr@Qa@i@n.@ @l/P Hs3RePe@vEPd'P2hb<M#l1# M/P?]UhzAQ1 L@3FO#۲?Fo2zP dj|a{ޓ8cUF:&x0?F?F?F'qoO 0Yifull4ajK?ON~f0c?+ fEeޖe?F<'?F@]?FsF%ޕol}dQ3ll BXyR귺m|bBhaUe```?FV ?F?Th ofl?PI3qoiGkeðl?2` ,yFT?heFnF*OĒ?F o* leowk~yf~tGg˂a ,8b1;MHD: )&# T=h0>Th]]9 Q BUFL&d?F`0?F(\µ^S?P Bt`  {Go?tNV yAP FBub ,duo7%>RJ[0U?<ALv@tt7 }b6*D&tD  td*JBı) ?A>"b7)D&a4D  V3 D 8/td/tRy.x1x1`?CopyrigTt (c)02`090M0c0os0f21r01a0i0n.0 Al0 8s2e0e0v @d0"h0!<M#l#/MlP> @?UhLAA]R 1 P1"7Ж1bA>!J`oO2z[ dja_q:z׍ Q 6VMB@챝/P\`_m;E,Ui5Uޖ?FQ[5lf\VU'EUY2Ruݯ?FU]˖7sf\pdѣSYUWfe _zx]݅om{ZcXUFRP\g[)JXAp| rhQ#5 IXAYaLPւ?FتcP\T f\3$sXAp"۲ ElU1YA-k?FFoZP\fyf\!XAYX%?F8K7P\{ 䘷f\&SAY&1l?Fr>|]P\-]qiYip~ X1#g~jt-? XAY?F ףp=P\' f\?P=Rw㹥X'RXT}7vP\__/vnTpljlX7U/?$?vQ[E7Ժf\wUQY|>qh|P\4GN"MDX U29_KU#rA0$@CHD: )&# T=h0>Th]]9 Q BUF8?Fā43?F7??FtYOȻ?P Bt`  1=o2?!88;D;68?5u;D; tj>)8LALA1 `?CopyrigTt (c)@]2`09@M{@]cy@oss@fBRrAru@Aa@is@Wn.@ 0l@U yHsBe@ey@v@d@v2h<M#l#A M@?4>UhkQkQjA6Q>1| L`Fdj]JK}vM41R] 6)fMB@Wa\ k_程avCe=E~SeR9Y? lgESeFeabkod i?SQޗh~?5@+ c;ꉞi2_U3rA/04sCHD: )&# T=h0>Th]]9 Q BUF2B9?FZ&?F'l?F{Cƻ?P Bt`  ,i?t('̺㯝4\YDrVBu auo7'>JAUVJp? ?Awz@bbb! ( " '+ ' qq?z A 9 +/.&68))E! '+ g?W-sU"!n*a4 8) "u#{ u#D!t?8tM:Bav L62?!08;<;60?5u;<; tb>){8DADA1 `?CopyrigTt (c){@]2`09{@Ms@]cq@osk@fyBRjArm@Aay@ik@Wn.{@ 0l@U qHsBe@eq@v@d@n2h<M#l# M@?]UhzbA.Q61b L` djM"aQ  6fM{"@Ftnq\[3K_,7e5EGe<\ֽE?Nf[ N_qd7eEGec6i\m jOf܋h2_U3rA'04msCHD: )&# T=h0>Th]]9 Q BUF] ?F t5?F!/$?Fᱝ̻?P Bt`  "?t4@+ϛ׊T, H_0Bu aquo7(>KJTA0f88v?WYgAL5v]@z bbob!'݉ 6 ,% )! ! ,+ <?' o?z #a47% =) J"E#K#{% (+ ( t#BXY?A> ?A "+(/+/=/O/a!y:5r=l/@ sU10( /???? "0<2(?M{!b 1//*%,"st:"t>0QQ'@`?CopyrigTt (cu)FP2`09FPuM>PcTh]]9 PB IAUFR?F}Y?FF(e?F=PFo?P t`  (\#?tƯ.5q+ tЖZu Mauo8)>    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 p l l w+ g?-#U!׷!zme Ae [+j/|//-g#+ s"?(a4\0 9 *2!#{0#t8tϻ:񧂍Ua PL2$18K;QF?VEK; t>B4AA0`?CopyrigTt (c)@2`09@M@c@o%s@fBAr@Qua@i@n.@U @l/P Hs3RUePe@vEPd'P 2h<M#l# M/P?]UhzPAQ1 L@3FO#۲?FoO2zP dj|aW{8cUF:&x0?F?F?F_?'qoO 0Yigull4aj?N~f0co+ fEeޖe?F<'?F@]?FwF%ޕol}dQ3ll BXlﷺm|bBhaUeߔ`ba`?FV ?FTh oflPIϮ3qoikeðl8` |GT?heFnF$OĒ?F o* leowky{ftGg˂a,8b1;MHD: )&# ;h0>Th]]9 PB IAUFpX?F&U?F+\(?F~@ t?P t`  (TJ?t[uᯜ(=u -ZrqKZu Mauo8*>    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 ,p )l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ s"?(a40 9 .*2!#{0:#t8'tϻ:Ua L2$18K;F?VEK.; t>B4AA0`?CopyrigTt (c)@2`09@M@c@oKs@fBAr@Qa@i@n.@ @l/P Hs3RePe@vEPd'P2hb<M#l1# M/P?]UhzAQ1 L@3FMbX9?F4ҫP dj}ah8cUF[~K?F|D?F+Xc?F&PRcGoO 0YiM+FllZaj}0%|f0c̭ fEe.V?Fȿ̅)`oSt?F?(X:olGGTll .Xl{e{|rww@haUe:&x0?F%Clw?FAz?F 1vņflux1qoiFA(]`t߼ |~Th]]9 PB IAUFpX?F*g?F+\(?F~@ t?P t`  (TJ?t4%u -ZrqKZu Mauo8+>    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 ,p )l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ s"?(a40 9 .*2!#{0:#t8'tϻ:Ua L2$18K;F?VEK.; t>B4AA0`?CopyrigTt (c)@2`09@M@c@oKs@fBAr@Qa@i@n.@ @l/P Hs3RePe@vEPd'P2hb<M#l1# M/P?]UhzAQ1 L@3FMbX9?F4ҫP dj}ah8cUF[~K?F|D?F+Xc?F&PRcGoO 0YiM+FllZaj}0%|f0c̭ fEe.V?Fȿ̅)`oSt?F?(X:olGGTll .Xl{e{|rww@haUe:&x0?F%Clw?FAz?F 1vņflux1qoiFA(]`t߼ |~Th]]9 PB IAUF$?Fy}?F+\(?F-ku?P t`  p&k?tl    PEJڍU[\/(?&. ?AbbY!z@Ae bbCt c(a4b  # b(h#{ h#΍t(tI*#0f88vb.#i L5<1v(&$7/(D%"6/5;0( t.*B#11`?CopyrigTt] c).@2`W09.@M&@c$@os@f,BAr @YAa,@i@n}..@ Alt@U $HsxBeL@e$@v@dl@"h<M#l# Mt@?]UhzAA!J@#FMbX9?F$x0OԛP dj}תa4(SUF[~K?FE?FSc?F?#oO 0YM+Fӱ\*aj,.}a$?# XEU"n?F +?FbEd?F v<olTBJ\LMYBltavXlp@XEUv/?Fpvw;pg?F $hއ?FLvo~l/AD0qYJg ַBl)$ԞXlDB:XU^F.fّPKk^Rl_[Ei?1GAf`d?Sq+abvHD: )&# ;h0>Th]]9 PB IAUF$?FQ?F+\(?F-ku?P t`  p&k?t u -+CmoLZu Mauo8->    PEJڍU[\/(?&. ?AbbY!z@Ae bbCt c(a4b  # b(h#{ h#΍t(tI*#0f88vb.#i L5<1v(&$7/(D%"6/5;0( t.*B#11`?CopyrigTt] c).@2`W09.@M&@c$@os@f,BAr @YAa,@i@n}..@ Alt@U $HsxBeL@e$@v@dl@"h<M#l# Mt@?]UhzAA!J@#FMbX9?F%x0OԛP dj}תa4(SUF[~K?FE?Fdc?F,?#oO 0YM+Fӱ\*aj ,.}a?# XEU"n?F{ +?F(%/Nd?F<olTBJ\MYBlU{XlpDc@XEUv/vw;pg?F^$hއ?Fvol/AD0qYf ַBls$ԞXl+?B:XU^F.fّPyKk^Rl_[Ei1GAf`dSOq+a,(bvHD: )&# T=h0>Th]]9 Q BUFt[@#?FX J?F\HRq?FƯK7?P Bt`  =0[?t@'#ll$nZBu duo7.>JA]^'? ?Az@b ( 6f  )ϓb= + _? ' 88o?z A s +=  /)/;/M$[+["-j!Q U1[!x(ar4 )] "'}#{t }#BtNQ8t_:Ba~ PLH2!B8;N;Q6B?5;N; tt>8VAVA `?CopyrigTt (c)@2`09@M@c@o%s}@fB|Ar@Aua@i}@n.@U 0l@ HsBUe@e@v@d@ 2h<M#l# MT@?4>UhuQuQtA(@QH1j LZFهgϰ 7j bL\GB] 6S-fMB:MbPdc mdb`GeGEWe$oˏZ\ai?bvIGeU@Vϰ+@_?F23Th]]9 Q BUF偃?F?F\HRq?FƯK7?P Bt`  Xkw?t[I2#ll$nZVBu auo7/>JA]^'? ?Az@b ( 6f  )ϓb= + _? ' 88o?z A s +=  /)/;/M$[+["-j!Q U1[!x(ar4 )] "'}#{t }#BtNQ8t_:Ba~ PLH2!B8;N;Q6B?5;N; tt>8VAVA `?CopyrigTt (c)@2`09@M@c@o%s}@fB|Ar@Aua@i}@n.@U 0l@ HsBUe@e@v@d@ 2h<M#l# MT@?4>UhuQuQtA(@QH1j LZFهgϰ 7j bL\] 6-fMB:MbPdc Ɵmdb`GeGEWe$oZ\aibvIGeUWeVϰ+@?Vpk_xu j aGe@We_ooh2Kt]u3rA 4s2HD: )&# T=h0>Th]]9 Q BUF͜?Fil8?F\HRq?FƯK7?P Bt`  W׎?tt^ #ll$nZVBu acuo7aJ?JA]^'?X ?Az@bu ( 6  )b= + ? ' 88?z A  +=  /)/;/M$[+["-j!Q U1[!x(a4 ) ."'}#{ :}#BtQ8t_:B@a~ LH2!B8;N;6B?5;N; Ktt>8aVAVA `?CopyrigTt (c)@2`09@M@c@os}@fB|Ar@Aa@i}@n.@ 0l@ HsBe@e@v@d@2hX<M#l # M@?4>UhuQuQtA@QH1j LZFه3 7j bL\`] 6-fMB:MbPdc gmdb`GeGEWenZ\aiavIGeUWeVϰ+@?Vpk_xu j aGeWe_ooh2K]u3rA 4s2HD: )&# T=h0>Th]]9 Q BUF[@#"?F`>?Fo?FƯK7?P Bt`  ?tS'8Xj$nZVBu auo71>JA]^'? ?Az@b ( 6f  )ϓb= + _? ' 88o?z A s +=  /)/;/M$[+["-j!Q U1[!x(ar4 )] "'}#{t }#BtNQ8t_:Ba~ PLH2!B8;N;Q6B?5;N; tt>8VAVA `?CopyrigTt>(cu)>2`09>uM@c@os}@IfB|Ar@Aa@]i}@n.> 0Ul@ HsBe@e@v@d@B2h,<M#l# M@?U4>UhuQuQtAJ@QH1j LZFهϰ 7j bL\] 6-fMB:ʿMbPdc 2Ngodb`GeGEWe$oZ\aibvIGeUWe4?Vpku j aGeWe_ooh2K]u3rA 4s2HD: )&# ;h0>Th]]9 PB IAUFv?Fo]j?FQ?F?P t`  Smo?tT.qČ( 뾅@l* 9u duo82>   ] EJ]_DRb(?&. ?Az@bY(e 6f h )ϓb k+ _?Z'e 88o?ze Ae s[+ h g/y//$# L:5 /sU"K1*a4 9 2(E#{ #t8tϤ:U a L2T18K;6Ԉ?@EK; tͺ>B40AA0`?CopyrigTwt c)@]2`09@M@]c@os@fBRAr@Aa@i@Wn.@ 0lPU HsRe@e@v/PdP2h<M#l#A MP? <>Uh$QQ(]A(Q1 LZ3;'xP 7jbbFb7@c 6{fM8cUFnDdTh]]9 PB IAUFSQ=?F{3?FQ?F?P t`  4o?tPǭ\"Č( 뾅@l* 9u auo83>   ] EJ]_DRb(?&. ?Az@bY(e 6f h )ϓb k+ _?Z'e 88o?ze Ae s[+ h g/y//$# L:5 /sU K1(a4 9 2(E#{ #t8tϤ:U a L2T18K;6Ԉ?@EK; tͺ>B40AA0`?CopyrigTwt c)@]2`09@M@]c@os@fBRAr@Aa@i@Wn.@ 0lPU HsRe@e@v/PdP2h<M#l#A MP? <>Uh$QQ(]A(Q1 LZ3;'xP 7jbbFbL7a 6{fM8(a?nDFF!@~qWoO 0dTc I\rdcd bjUkgaPbeEef"v?Fr6d?F?kĀqo`OivddlXr`tF0sK|٢jr3t!KU:G}?{]rLl} ]|q3xnTrg?F<ے7pooZgtfio,V|=] 5ve&1?Fpn?FTh]]9 PB IAUF!?F?FQ?F?P t`  + {o?tn&Č( 뾅@l* 9u auo84>   ] EJ]_DRb(?&. ?Az@bY(e 6f h )ϓb k+ _?Z'e 88o?ze Ae s[+ h g/y//$# L:5 /sU"K1*a4 9 2(E#{ #t8tϤ:U a L2T18K;6Ԉ?@EK; tͺ>B40AA0`?CopyrigTwt c)@]2`09@M@]c@os@fBRAr@Aa@i@Wn.@ 0lPU HsRe@e@v/PdP2h<M#l#A MP? <>Uh$QQ(]A(Q1 LZ3;'xP 7jbbFbL7a 6{fM8cUFnDFK!@?FDqWoO 0dTc I\addbjUWkgabeE(aFjv?Fr6d?FkĀAqo`Oi^j^r`t0sK#|pr9t!KU:M}{]rYLl}]|9xLufTrg?F<7vodObdcZgtfi,V#|=c ;vLu&1?Fpn?FTh]]9 PB IAUFĊ?F)lIJ?FQ?F?P t`  o?t\Č( 뾅@l* 9u auo85>   ] EJ]_DRb(?&. ?Az@bY(e 6f h )ϓb k+ _?Z'e 88o?ze Ae s[+ h g/y//$# L:5 /sU"K1*a4 9 2(E#{ #t8tϤ:U a L2T18K;6Ԉ?@EK; tͺ>B40AA0`?CopyrigTwt c)@]2`09@M@]c@os@fBRAr@Aa@i@Wn.@ 0lPU HsRe@e@v/PdP2h<M#l#A MP? <>Uh$QQ(]A(Q1 LZ3;'xP 7jbbFbL7a 6{fM8(a?D +F2|>?FW@WoO 0dTc rdcd bj{^ea͂beEef"v?Fddd?F܃q o`OivddlXr`tuqEÊ|:jr3t!KU:G}{]r,Ll}]|q3xngqrg?F~pooZgtML|\ 5ve&1?FWf?F#0bĂ|[m낪 z'ǵ(|F$$!ayTh]]9 Q BUFt[@#?Fyوe??F\HRq?F#o˯Z?P Bt`  =0[?t&0N#ll#Bu duo76>JTA0f88v?WYϳAjL@z bbb!'  ,% )! ! ,+ <?' o?z #a47% =) J"E#K#{% (+ ( t#B2?A> &?A"&"I&$/*%,"t:"Kt> A A6 `?CopyrigTt (c)D@2`09D@M<@c:@oKs4@fBB3Ar6@oAaB@i4@n.D@ Al@ :HsBeb@e:@vZ@d@2h/1<M#bl#7? M@?(>Uh7E +A(A!{ L:F A<6j% bRzg9ǩ<2 "\MbPdS mT W5U6ik0YaYvq 2HD: )&# T=h0>Th]]9 Q BUF偃?F?P?F\HRq?Fn˯Z?P Bt`  Xkw?tGj#ll#VBu auo77>JTA0f88v?WYϳAjLv@z bbb!' 6Y % )! ! ,+ <?' o?z #a47% =) J"#K#({% (+ (G t#Beı?A>L ?A"&"&$/*8%,"t:"t>  A A6 `?CopyrigTt _(c)D@2`W09D@M<@c:@os4@fBB3Ar6@oAaB@i4@n}.D@ Al@U :HsBeb@e:@v@d@2h/1<M#l#@7? M@?(>Uh7E P+AA!{ L:F<6j% bRzg9ǩ<2 "\MbPdS mT W5UO6ik0YaYvq 2HD: )&# T=h0>Th]]9 Q BUF͜?F:'?F\HRq?Fn˯Z?P Bt`  W׎?ts aU#ll#VBu auo78>JTA0f88v?WYϳAjLv@z bbb!' 6Y % )! ! ,+ <?' o?z #a47% =) J"#K#({% (+ (G t#Beı?A>L ?A"&"&$/*8%,"t:"t>  A A6 `?CopyrigTt _(c)D@2`W09D@M<@c:@os4@fBB3Ar6@oAaB@i4@n}.D@ Al@U :HsBeb@e:@v@d@2h/1<M#l#@7? M@?(>Uh7E P+AA!{ L:F6j% bT ü2 "\MbPdS mT W5UO6ik0YaYvq 2HD: )&# T=h0>Th]]9 Q BUF[@#"?F.޺?Fo?Fn˯Z?P Bt`  ?tchE 8Xj#VBu auo79>JTA0f88v?WYϳAjLv@z bbb!' 6Y % )! ! ,+ <?' o?z #a47% =) J"#K#({% (+ (G t#Beı?A>L ?A"&"&$/*8%,"t:"t>  A A6 `?CopyrigTt>(c)>2`09>M<@c:@o%s4@fBB3Ar6@oAuaB@i4@n.>_ Al@ :HUsBeb@e:@v@-d@2`h/1<M#l1#7? PM@?(>Uh7E +AA!{ L:F<F6j% bRzg9<2 "\ʩ7MbPdS 2NoT W5UO?6ik0YaYvq 2UHT5D B &# T>h0JTtiiM ENUF|u(?F-?FPaW?F ru?P WNtQ` 786R7?tU溁i8;(\I2-nNuj mu){:E0f88wv?AVQ Ӎ!@#b#m@b  0#  #W(3 (o+&T" #t#NĽ/?. ?M"&$a%$$,/>*L%i,T"tΞ*T"tR.R11#`?Copyrig`t (c)02l090M0c0os0f21r01a0i0n.0 Al@ 8sBe0e0v0@d@"Vt!X#xB #/ @T,UtE1UA-!@nZ pvm?S׮(%UQG@Y9"S\FkV5%UЗn@‹Pهϰ=\WQS\OXbiTQY%_7_I_[_DQOOOO__^̔ԍ?f Q́)f@vVP|?5^BlӿIY:6Xl?Ib ʏ܏EABTfxF\HRqCk?-q_WaW?ϰ+@"Bl!H,BXQnB)fFޖBoT[inJ\ۙgyAHD: )&# T=h0>Th]]9 Q BUF4@ ,?FYوe?^?F&1?F3(e?P Bt`  N!?tx/m4tMuVBu auo7;>JAS`? ?Az@bbb! ( 6 )  '+ ߈?/I-Z#mg!z A " ././@/R+,g/y'sU1,ar4 )] "#{t #BtNg8tu:Ba PL^2!X8;d;Q6X?E;d; t͊>8lAlA `?CopyrigTt (c)@2`09@M@c@o%s@fBAr@Aua@i@n.@U 0l@ HsBUe@e@v@d@ 2h<M#l# MT@?4>UhQQA(VQ^1| LZFX} g 7j b2ɶO] 6CfMB:ZMbXdc $I$I܍+d 2aa]Eme'la'iL.]eU@9/$Ew?FslAka,dHޓּgmeoo(oh2gyu3rA 4s2HD: )&# T=h0>Th]]9 Q BUFnټk-?F]u)?F&1?F3(e?P Bt`  3?tg[ m4tMuVBu auo7<>JAS`? ?Az@bbb! ( 6 )  '+ ߈?/I-Z#z A* " ././@/R+Yg/y'sU1,a4 ) "#{ #BtΜg8tu:Ba L^2!X8;d;6X?E;.d; t͊>8lAlA `?CopyrigTt (c)@2`09@M@c@oKs@fBAr@Aa@i@n.@ 0l@ HsBe@e@v@d@2hb<M#l1# M@?4>UhQQPAVQ^1| LZFX}  7j b2/O]M 6CfMB:ZMbX͉dc ?$I$I܍+d 2aa]Emekla'i.]eU@;0$E?FTh]]9 Q BUFܲ?FH7H?F!?FTUUUɺ?P Bt`  &?tQ3ņ= ףc?ckBu5 auon7=>)JAUVJp? ?Awz@b_bb! (݉ " '+ ' qq?z A  +S/.&68))E! '+ g?uW-sUUn*a4 8) "u#{ u#D!tΜ?8tM:Bav L62?!08;<;60?5;.<; tb>{8DADA1 `?CopyrigTt (c){@2`09{@Ms@cq@oKsk@fyBjArm@Aay@ik@n.{@ 0l@ qHsBe@eq@v@d@n2hb<M#l1# M@? Uh,cQcQ] '1PbA.Q61b L`w"?FMDA dj? |m cuۡ'1 6!1fM{":F$3<6d kS=ѣ<n2{!5E[nLa vogaKeE[eV_@cbc g@]amr\GDž}iNu?FS%f|]tElFTh]]9 Q BUF:C<?FY!)^?F!?FTUUUɺ?P Bt`  Ȼ?ޫd?ttyI5= ףc?ckBu5 auon7>>)JAUVJp? ?Awz@b_bb! (݉ " '+ ' qq?z A  +S/.&68))E! '+ g?uW-sUUn*a4 8) "u#{ u#D!tΜ?8tM:Bav L62?!08;<;60?5;.<; tb>{8DADA1 `?CopyrigTt (c){@2`09{@Ms@cq@oKsk@fyBjArm@Aay@ik@n.{@ 0l@ qHsBe@eq@v@d@n2hb<M#l1# M@? Uh,cQcQ] '1PbA.Q61b L`w"?FMDA dj? |m cuۡ'1 6!1fM{":F$3<6d kS=ѣ<n2{!5E[nLa vogaKeE[eV_@cbc g@]amr\GDž}iNu?FS%f|]tElFTh]]9 Q BUFx]?FTy4߮?FU?F3z[j˺?P Bt`  Q`7lg?t-xW&XRkBu5 auon7?>)JAa^! ?Az@b_bb! (݉ 6 , )  '+ g~X?ZI-Z#!g![z A " ,/,/>/P-[?+g/y'Eي,a4 ) "!#{ #Btg8t)u:Ba L^2!*X8;d;6X?E;d; tR>8lAlA `?CopyrigTt (c)@2`09@M@c@os@fBAr@Aa@i@n.@ 0l@ HsBe@ej@v@d@2!h<M#l# M@? 8>UhoQQ]AVQ^1| L@?F҄! dj O٨l,d6ztJB: 7d /k?yԷ&Dh]EWemkp+ɉ 5d}bGeUWeFBϏ+@ol0ju?MDhnMbX0j`QDhnC<o+o"Th]]9 Q BUFT1#E2?FLΉ?FU?F3z[j˺?P Bt`  S|.?tп}Qm&XRkBu5 auon7@>)JAa^!? ?Az@b_bb! (݉ 6 , )  '+ g~X?ZI-Z#!g![z A " ,/,/>/P-[?+g/y'Eي,a4 ) "!#{ #Btg8t)u:Ba L^2!*X8;d;6X?E;d; tR>8lAlA `?CopyrigTt (c)@2`09@M@c@os@fBAr@Aa@i@n.@ 0l@ HsBe@ej@v@d@2!h<M#l# M@? 8>UhoQQ]AVQ^1| L?F҄! dj _٨la6ztJB: 7d /k?yԷ&Dh]EWemkp+ɉ 5d}bGeUWeFBϏ+@ol0ju?MDhnHMbX0j`DhWef9o-ai qGeUoo$o6o3UHLD )&# R>h 0JTlaaM>UF+1#E2?F* 9?F0U?F_gw?P >tA`  9|4?t +5f1,_Œ X">u eu!s7-AJɅJUU?H<j@7tt7 b:*H&tH  th*Nĵ) ?MB"b;)H&e8H m 3 H -US4o?FPjj?6ֈ@!QpoĬگ eoĩ́ F o 01G}}϶@b@mp?#nʼPV]O߸uy\l2_+ʦE}@p5"iРo~e*al|ٍşןHD: )&# ;h0>Th]]9 PB IAUF~Q?F?FF(e?F=PFo?P t`  IGr?tn 5q+ tЖZu Mauo8B>    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 ,p )l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ As"(a40 9 *2!#{0#΍t8tIϻ:AUa L2$18K;F?VEK; Kt>B4aAA0`?CopyrigTt (c)@2`09@M@c@os@fBAr@Qa@i@n.@ @l/P Hs3RePe@vEPd'P2hX<M#l # M/P?]UhzA(Q1 L@3FO#?Fo2zP dj|aW{8cUF:&x0?F?Fώ?FX'qoO 0Yifull4ajS?N~dh+ fEeޖe?F<'?F@]?F\F%ޕol}dQ3ll BXlm|ԇbBhaUe```?FV ?FTh oflPIϮ3qoijeðl.` |=T?heFnF$OĒ?F o* leowky{ftGg˂a,8b1;MHD: )&# ;h0>Th]]9 PB IAUF~Q?Fe?FF(e?F=PFo?P t`  IGr?t8n5q+ tЖZu Mauo8C>    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 ,p )l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ As"(a40 9 *2!#{0#΍t8tIϻ:AUa L2$18K;F?VEK; Kt>B4aAA0`?CopyrigTt (c)@2`09@M@c@os@fBAr@Qa@i@n.@ @l/P Hs3RePe@vEPd'P2hX<M#l # M/P?]UhzA(Q1 L@3FO#?Fo2zP dj|a{8cUF:&x0?F?FȎ?F'qoO 0Yifull4ajK?N~d+ fEeޖe?F<'?F@]?FsF%ޕol}dQ3ll BXlRm|bBhaUe`Ԗ``?FV ?FTh oflPIϮ3qoiGkeðl2` |FT?heFnF*OĒ?F o* leowkyftGg˂a,8b1;MHD: )&# T=h0>Th]]9 Q BUF&d29?F `0?F(\µ?F^Sӻ?P Bt`  o?tՐs] yAP FBuj auo7ARJ[0U?<ALv@tt7 }b6*D&tD  td*JBı) ?A>"b7)D&a4D  V3 D 8/td/tRy.x1x1`?CopyrigTt (c)02`090M0c0os0f21r01a0i0n.0 Al0 8s2e0e0v @d0"h0!<M#l#/MlP> @?UhLAA]R 1 P1"7Ж1bA>!J`oO2z[ djaq:z׍ QM 6VMB@챝P\`_m;?E,Ui5Uޖ?FQ[_5lf\VU'EUY2Ruݯ?FU]˖7sf\pdѿSYUWfe /zx]݅om{ZcXXUFRP\g[)JXAp| rhQ#5 ?IXAYaLPւ?FتcP\T f\3$sXAp" ElX1YA-k?FFoZP\fyf\?!,UAYX%?F8K7P\{ f\&SAY&1l?Fr>|]P\-]qiYip~ X1#g~jt-? ѰXAY?F ףp=P\' f\?P=RwX'RXT}7vP\__/vnTpډlX7U/$9SYE7Ժf\wUQY|>îqh|P\4GN?"MX U29_KU#rA0$@CHD: )&# T=h0>Th]]9 Q BUFܷqP?F@?F7??FtYOȻ?P Bt`  XM6 ?ti|9O__Bu aquo7E>KJASTfw?X ?Az@bbb! ( 6f )  '+ ߈?I-Z#g!z A Qu +%/,8)E!'+ k(?r+o,(a4 8) E"#{ #BtΜG8tU:Ba L>2?!88;D;68?5;.D; tj>8LALA1 `?CopyrigTt (c)@2`09@M{@cy@oKss@fBrAru@Aa@is@n.@ 0l@ yHsBe@ey@v@d@v2hb<M#l1# M@?4>UhkQkQPjA6Q>1| L`Fd~j]J}v)M]M 6)fMB@Wa\ k_稇avCe=ESeR9Y? l`gESeFeabkod iSQޗh~??5@+ c;Ꞗi"2_U3rA/04sCHD: )&# T=h0>Th]]9 Q BUFdHJAUVJp? ?Awz@bbb! ( " '+ ' qq?z A 9 +/.&68))E! '+ g?W-sU"!n*a4 8) "u#{ u#D!t?8tM:Bav L62?!08;<;60?5u;<; tb>){8DADA1 `?CopyrigTt (c){@]2`09{@Ms@]cq@osk@fyBRjArm@Aay@ik@Wn.{@ 0l@U qHsBe@eq@v@d@n2h<M#l# M@?]UhzbA.Q61b L` djM"aQ  6fM{"@Ftnq\[3K_,7e5EGe<\ֽE?Nf[ N_qd7eEGec6i\m jOf܋h2_U3rA'04msCHD: )&# T=h0>Th]]9 Q BUF)8/?FFT?F!/$?Fᱝ̻?P Bt`  vNC?tG(ϛT H0Bu auo7G>JTA0f88v?WYALv@z bbb!'n 6 % )! ! ,+ <?' o?z #a47% =) J""#K#{% (+ ( tQ#BXYщ?A> ?A "+(/+/=/O/a!y:5rl/@ sU10( /???? "?0<2?M{!b 1/Ĝ/*%,"t:"t>TQQ'@`?CopyrigTt (c)FP2`09FPM>PcTh]]9 PB IAUFJ1>?Fl?FF(e?F=PFo?P t`  0!?trj5q+ tЖZu Mauo8A    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 ,p )l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ s"?(a40 9 .*2!#{0:#t8'tϻ:Ua L2$18K;F?VEK.; t>B4AA0`?CopyrigTt (c)@2`09@M@c@oKs@fBAr@Qa@i@n.@ @l/P Hs3RePe@vEPd'P2hb<M#l1# M/P?]UhzAQ1 L@3FO#۲?Fo2zP dj|aW{ޓ8cUF:&x0?F?F?F_'qoO 0Yigull4aj?ON~f0c?o+ fEeޖe?F<'?F@]?FwF%ޕol}dQ3ll BXl귺m|bBhaUe`ba`?FV ?FTh oflPI3qoiؿkeðl8` |G?T?heFnF$O?F o* leowky?{ft?Gg˂a,8b1;MHD: )&# ;h0>Th]]9 PB IAUFGF?FEs?F+\(?F~@ t?P t`  9`Ik?t)6^u -ZrqKZu Mauo8I>    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 ,p )l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ s"?(a40 9 .*2!#{0:#t8'tϻ:Ua L2$18K;F?VEK.; t>B4AA0`?CopyrigTt (c)@2`09@M@c@oKs@fBAr@Qa@i@n.@ @l/P Hs3RePe@vEPd'P2hb<M#l1# M/P?]UhzAQ1 L@3FMbX9?F4ҫP dj}ah8cUF[~K?F|D?F+Xc?F&PRcGoO 0YiM+FllZaj}0%|f0c̭ fEe.V?Fȿ̅)`oSt?F?(X:olGGTll .Xl{e{|?rww@,eaUe:&x0?F%Clw?FAz?F 1vņflux1,oiFA(]`t߼ |~Th]]9 PB IAUFGF?FKDֳ?F+\(?F~@ t?P t`  9`Ik?t┯4;u -ZrqKZu Mauo8J>    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 ,p )l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ s"?(a40 9 .*2!#{0:#t8'tϻ:Ua L2$18K;F?VEK.; t>B4AA0`?CopyrigTt (c)@2`09@M@c@oKs@fBAr@Qa@i@n.@ @l/P Hs3RePe@vEPd'P2hb<M#l1# M/P?]UhzAQ1 L@3FMbX9?F4ҫP dj}ah8cUF[~K?F|D?F+Xc?F&PRcGoO 0YiM+FllZaj}0%|f0c̭ fEe.V?Fȿ̅)`oSt?F?(X:olGGTll .Xl{e{|rww@haUe:&x0?F%Clw?FAz?F 1vņflux1qoiFA(]`t߼ |~Th]]9 PB IAUFXIn?F    PEJڍU[\/(?&. ?AbbY!z@Ae bbCt c(a4b  # b(h#{ h#΍t(tI*#0f88vb.#i L5<1v(&$7/(D%"6/5;0( t.*B#11`?CopyrigTt] c).@2`W09.@M&@c$@os@f,BAr @YAa,@i@n}..@ Alt@U $HsxBeL@e$@v@dl@"h<M#l# Mt@?]UhzAA!J@#FMbX9?F$x0OԛP dj}תa4(SUF[~K?FE?FSc?F?#oO 0YM+Fӱ\*aj,.}a$?# XEU"n?F +?FbEd?F v<olTBJ\LMYBltavXlp@,UEUv/?Fpvw;pg?F $hއ?FLvo~l/AD0,YJg ַBl)$ԞXlDB:XU^F.fّPKk^Rl_[Ei?1GAf`d?Sq+a,(bvHD: )&# ;h0>Th]]9 PB IAUFXIn?F(?F+\(?F-ku?P t`  -k?tEeoEu -+CmoLZu Mauo8L>    PEJڍU[\/(?&. ?AbbY!z@Ae bbCt c(a4b  # b(h#{ h#΍t(tI*#0f88vb.#i L5<1v(&$7/(D%"6/5;0( t.*B#11`?CopyrigTt] c).@2`W09.@M&@c$@os@f,BAr @YAa,@i@n}..@ Alt@U $HsxBeL@e$@v@dl@"h<M#l# Mt@?]UhzAA!J@#FMbX9?F%x0OԛP dj}תa4(SUF[~K?FE?Fdc?F,?#oO 0YM+Fӱ\*aj ,.}a?# XEU"n?F{ +?F(%/Nd?F<olTBJ\MYBlU{XlpDc@XEUv/vw;pg?F^$hއ?Fvol/AD0qYf ַBls$ԞXl+?B:XU^F.fّPyKk^Rl_[Ei1GAf`dSOq+a,(bvHD: )&# T=h0>Th]]9 Q BUF贷F$?Ft\@?F\HRq?FƯK7?P Bt`  x#?t#ll$nZVBu auo7M>JA]^'? ?Az@b ( 6f  )ϓb= + _? ' 88o?z A s +=  /)/;/M$[+["-j!Q U1[!x(ar4 )] "'}#{t }#BtNQ8t_:Ba~ PLH2!B8;N;Q6B?5;N; tt>8VAVA `?CopyrigTt (c)@2`09@M@c@o%s}@fB|Ar@Aua@i}@n.@U 0l@ HsBUe@e@v@d@ 2h<M#l# MT@?4>UhuQuQtA(@QH1j LZFهgϰ 7j bL\G@[ 6S-fMB:MbPdc mdb`GeGEWe$oˏZ\ai?bvIGeU@Vϰ+@_?F23Th]]9 Q BUF#/?FKGY?F\HRq?FƯK7?P Bt`  ~B?tl#ll$nZVBu auo7N>JA]^'? ?Az@b ( 6f  )ϓb= + _? ' 88o?z A s +=  /)/;/M$[+["-j!Q U1[!x(ar4 )] "'}#{t }#BtNQ8t_:Ba~ PLH2!B8;N;Q6B?5;N; tt>8VAVA `?CopyrigTt (c)@2`09@M@c@o%s}@fB|Ar@Aua@i}@n.@U 0l@ HsBUe@e@v@d@ 2h<M#l# MT@?4>UhuQuQtA(@QH1j LZFهgϰ 7j bL\] 6-fMB:MbPdc Ɵmdb`GeGEWe$oZ\aibvIGeUWeVϰ+@?Vpk_xu j aGe@We_ooh2Kt]u3rA 4s2HD: )&# T=h0>Th]]9 Q BUF/ ֛9?F46Hr?F\HRq?FƯK7?P Bt`   a1?t 3JA]^'? ?Az@b ( 6f  )ϓb= + _? ' 88o?z A s +=  /)/;/M$[+["-j!Q U1[!x(ar4 )] "'}#{t }#BtNQ8t_:Ba~ PLH2!B8;N;Q6B?5;N; tt>8VAVA `?CopyrigTt (c)@2`09@M@c@o%s}@fB|Ar@Aua@i}@n.@U 0l@ HsBUe@e@v@d@ 2h<M#l# MT@?4>UhuQuQtA(@QH1j LZFهgϰ 7j bL\] 6-fMB:MbPdc Ɵmdb`GeGEWenZ\aiavIGeUWeVϰ+@?Vpk_xu j aGe@We_ooh2Kt]u3rA 4s2HD: )&# T=h0>Th]]9 Q BUF[@#?FLO?Fo?FƯK7?P Bt`  ?tSӈEw8Xj$nZVBu acuo7AJA]^'? ?Az@b ( 6f  )ϓb= + _? ' 88o?z A s +=  /)/;/M$[+["-j!Q U1[!x(ar4 )] "'}#{t }#BtNQ8t_:Ba~ PLH2!B8;N;Q6B?5;N; tt>8VAVA `?CopyrigTt>(cu)>2`09>uM@c@os}@IfB|Ar@Aa@]i}@n.> 0Ul@ HsBe@e@v@d@B2h,<M#l# M@?U4>UhuQuQtAJ@QH1j LZFهϰ 7j bL\ѻ] 6-fMB:ʩMbPdc 2N3odb`GeGEWe$oZ\aibvIGeUWe4?Vpku j aGeWe_ooh2K]u3rA 4s2HD: )&# ;h0>Th]]9 PB IAUF?FtË.5?FQ?F?P t`  ?{R   ] EJ]_DRb(?&. ?Az@bY(e 6f h )ϓb k+ _?Z'e 88o?ze Ae s[+ h g/y//$# L:5 /sU"K1*a4 9 2(E#{ #t8tϤ:U a L2T18K;6Ԉ?@EK; tͺ>B40AA0`?CopyrigTwt c)@]2`09@M@]c@os@fBRAr@Aa@i@Wn.@ 0lPU HsRe@e@v/PdP2h<M#l#A MP? <>Uh$QQ(]A(Q1 LZ3;'xP 7jbbFbL7a 6{fM8cUFnDdTh]]9 PB IAUF4{"?F=N?FQ?F?P t`  ^}W;o?t9pČ( 뾅@l* 9u auo8R>   ] EJ]_DRb(?&. ?Az@bY(e 6f h )ϓb k+ _?Z'e 88o?ze Ae s[+ h g/y//$# L:5 /sU"K1*a4 9 2(E#{ #t8tϤ:U a L2T18K;6Ԉ?@EK; tͺ>B40AA0`?CopyrigTwt c)@]2`09@M@]c@os@fBRAr@Aa@i@Wn.@ 0lPU HsRe@e@v/PdP2h<M#l#A MP? <>Uh$QQ(]A(Q1 LZ3;'xP 7jbbFbL7a 6{fM8(a?nDFF!@~qWoO 0dTc I\rdcd bjUkgaPbeEef"v?Fr6d?F?kĀqo`OivddlXr`tF0sK|٢jr3t!KU:G}?{]rLl} ]|q3xnTrg?F<ے7pooZgtfio,V|=] 5ve&1?Fpn?FTh]]9 PB IAUFGC<-?Ff?FQ?F?P t`  L?RD)o?t? )Č( 뾅@l* 9u auo8S>   ] EJ]_DRb(?&. ?Az@bY(e 6f h )ϓb k+ _?Z'e 88o?ze Ae s[+ h g/y//$# L:5 /sU"K1*a4 9 2(E#{ #t8tϤ:U a L2T18K;6Ԉ?@EK; tͺ>B40AA0`?CopyrigTwt c)@]2`09@M@]c@os@fBRAr@Aa@i@Wn.@ 0lPU HsRe@e@v/PdP2h<M#l#A MP? <>Uh$QQ(]A(Q1 LZ3;'xP 7jbbFbL7a 6{fM8cUFnDFK!@?FDqWoO 0dTc I\addbjUWkgabeE(aFjv?Fr6d?FkĀAqo`Oi^j^r`t0sK#|pr9t!KU:M}{]rYLl}]|9xLufTrg?F<7vodObdcZgtfi,V#|=c ;vLu&1?Fpn?FTh]]9 PB IAUFĊ?Fn6b?FQ?F?P t`  ro?tpwZČ( 뾅@l* 9u auo8T>   ] EJ]_DRb(?&. ?Az@bY(e 6f h )ϓb k+ _?Z'e 88o?ze Ae s[+ h g/y//$# L:5 /sU"K1*a4 9 2(E#{ #t8tϤ:U a L2T18K;6Ԉ?@EK; tͺ>B40AA0`?CopyrigTwt c)@]2`09@M@]c@os@fBRAr@Aa@i@Wn.@ 0lPU HsRe@e@v/PdP2h<M#l#A MP? <>Uh$QQ(]A(Q1 LZ3;'xP 7jbbFbL7a 6{fM8(a?D +F2|>?FW@WoO 0dTc rdcd bj{^ea͂beEef"v?Fddd?F܃q o`OivddlXr`tuqEÊ|:jr3t!KU:G}{]r,Ll}]|q3xngqrg?F~pooZgtML|\ 5ve&1?FWf?F#0bĂ|[m낪 z'ǵ(|F$$!ayTh]]9 Q BUF贷F$?FlIJ?F\HRq?F#o˯Z?P Bt`  x#?tx#ll#VBu auo7U>JTA0f88v?WYϳAjLv@z bbb!' 6Y % )! ! ,+ <?' o?z #a47% =) J"#K#({% (+ (G t#Beı?A>L ?A"&"&$/*8%,"t:"t>  A A6 `?CopyrigTt _(c)D@2`W09D@M<@c:@os4@fBB3Ar6@oAaB@i4@n}.D@ Al@U :HsBeb@e:@v@d@2h/1<M#l#@7? M@?(>Uh7E P+AA!{ L:F A7<6j% bRzg9<2 "\MbPdS mT W5U6ik0YaYvq 2HD: )&# T=h0>Th]]9 Q BUF#/?F ?F\HRq?Fn˯Z?P Bt`  ~B?t AF#ll#VBu auo7V>JTA0f88v?WYϳAjLv@z bbb!' 6Y % )! ! ,+ <?' o?z #a47% =) J"#K#({% (+ (G t#Beı?A>L ?A"&"&$/*8%,"t:"t>  A A6 `?CopyrigTt _(c)D@2`W09D@M<@c:@os4@fBB3Ar6@oAaB@i4@n}.D@ Al@U :HsBeb@e:@v@d@2h/1<M#l#@7? M@?(>Uh7E P+AA!{ L:F<6j% bRzg9ǩ<2 "\MbPdS mT W5UO6ik0YaYvq 2HD: )&# T=h0>Th]]9 Q BUF/ ֛9?FD?F\HRq?Fn˯Z?P Bt`   a1?t(9Sj#ll#VBu auo7W>JTA0f88v?WYϳAjLv@z bbb!' 6Y % )! ! ,+ <?' o?z #a47% =) J"#K#({% (+ (G t#Beı?A>L ?A"&"&$/*8%,"t:"t>  A A6 `?CopyrigTt _(c)D@2`W09D@M<@c:@os4@fBB3Ar6@oAaB@i4@n}.D@ Al@U :HsBeb@e:@v@d@2h/1<M#l#@7? M@?(>Uh7E P+AA!{ L:F6j% bT ü2 "\MbPdS mT W5UO6ik0YaYvq 2HD: )&# T=h0>Th]]9 Q BUF[@#?F\o]?Fo?Fn˯Z?P Bt`  ?tF]8Xj#VBu auo7X>JTA0f88v?WYϳAjLv@z bbb!' 6Y % )! ! ,+ <?' o?z #a47% =) J"#K#({% (+ (G t#Beı?A>L ?A"&"&$/*8%,"t:"t>  A A6 `?CopyrigTt>(c)>2`09>M<@c:@o%s4@fBB3Ar6@oAuaB@i4@n.>_ Al@ :HUsBeb@e:@v@-d@2`h/1<M#l1#7? PM@?(>Uh7E +AA!{ L:F<F6j% bRzg9<2 "\ʩ7MbPdS 2NoT W5UO?6ik0YaYvq 2UHT5D B &# T>h0JTtiiM ENUFlQ?Fڋ?FPaW?F ru?P WNtQ` c͕.:7?tUr=Ki8;(\I2-nNuj mu){YE0f88wv?AVQ Ӎ!@#b#m@b  0#  #W(3 (o+&T" #t#NĽ/?. ?M"&$a%$$,/>*L%i,T"tΞ*T"tR.R11#`?Copyrig`t (c)02l090M0c0os0f21r01a0i0n.0 Al@ 8sBe0e0v0@d@"Vt!X#xB #/ @T,UtE1UA-!@nZ pvm?S׮(%UQG@Y9"S\FkV5%UЗn@‹Pهϰ=\WQS\OXbiTQY%_7_I_[_DQOOOO__^̔ԍ?f Q́)f@vVP|?5^BlӿIY:6Xl?Ib ʏ܏EABTfxF\HRqCk?-q_WaW?ϰ+@"Bl!H,BXQnB)fFޖBoT[inJ\ۙgyAHD: )&# T=h0>Th]]9 Q BUFhY?FlIJ?F&1?F3(e?P Bt`  6n?t:m4tMuVBu auo7Z>JAS`? ?Az@bbb! ( 6 )  '+ ߈?/I-Z#,z A* " ././@/R+Yg/y'sU1,a4 ) "#{ #BtΜg8tu:Ba L^2!X8;d;6X?E;.d; t͊>8lAlA `?CopyrigTt (c)@2`09@M@c@oKs@fBAr@Aa@i@n.@ 0l@ HsBe@e@v@d@2hb<M#l1# M@?4>UhQQPAVQ^1| LFX}  7j b2ɏOR] 6CfMB:ZMbXdc $I$I܍+d 2aa]Eme'la'iL.]eU@9/$Ew?FslAka,dHޓּgmeoo(oh2gyu3rA 4s2HD: )&# T=h0>Th]]9 Q BUFy?Flo]9?F&1?F3(e?P Bt`  7 ?t)!m4tMuBu ,duo7[>JAS`? ?Az@bbb! ( 6 )  '+ ߈?/I-Z#mg!z A " ././@/R+,g/y'sU1,ar4 )] "#{t #BtNg8tu:Ba PL^2!X8;d;Q6X?E;d; t͊>8lAlA `?CopyrigTt (c)@2`09@M@c@o%s@fBAr@Aua@i@n.@U 0l@ HsBUe@e@v@d@ 2h<M#l# MT@?4>UhQQA(VQ^1| LZFX} g 7j b2ɶO] 6CfMB:ZMbXdc $I$I܍+d A2aa]Emekla'i.G]eU@;0$E?[FTh]]9 Q BUF߹e?F$jߤ?F!?FTUUUɺ?P Bt`  ?t&S= ףc?ckBu5 auon7\>)JAUVJp? ?Awz@b_bb! (݉ " '+ ' qq?z A  +S/.&68))E! '+ g?5W-sUU,p(a4 8) "u#{ u#D!tΜ?8tM:Bav L62?!08;<;60?5;.<; tb>{8DADA1 `?CopyrigTt (c){@2`09{@Ms@cq@oKsk@fyBjArm@Aay@ik@n.{@ 0l@ qHsBe@eq@v@d@n2hb<M#l1# M@? Uh,cQcQ] '1PbA.Q61b L`w"?FMDA dj? |m cuۡ'1 6!1fM{":F$3<6d kS=ѣ<n2{!5E[nLa vogaKeE[eV_@cbc g@]amr\GDž}iNu?FS%f|]tElFTh]]9 Q BUFtx?F/?F!?FTUUUɺ?P Bt`  K_?t= ףc?ckBu5 auon7]>)JAUVJp? ?Awz@b_bb! (݉ " '+ ' qq?z A  +S/.&68))E! '+ g?uW-sUUn*a4 8) "u#{ u#D!tΜ?8tM:Bav L62?!08;<;60?5;.<; tb>{8DADA1 `?CopyrigTt (c){@2`09{@Ms@cq@oKsk@fyBjArm@Aay@ik@n.{@ 0l@ qHsBe@eq@v@d@n2hb<M#l1# M@? Uh,cQcQ] '1PbA.Q61b L`w"?FMDA dj? |m cuۡ'1 6!1fM{":F$3<6d kS=ѣ<n2{!5E[nLa vogaKeE[eV_@cbc g@]amr\GDž}iNu?FS%f|]tElFTh]]9 Q BUFiv?F{<?FU?F3z[j˺?P Bt`  y]?tHIΧ&XRBu auo7^>JAa^!? ?Az@bbb! (n 6  )  '+ g~X?I-͊Z#!,[z A " ,/,/>/P-[?+g/y'Eي,a4 ) "!#{ #Btg8t)u:Ba L^2!*X8;d;6X?E;d; tR>8lAlA `?CopyrigTt (c)@2`09@M@c@os@fBAr@Aa@i@n.@ 0l@ HsBe@ej@v@d@2!h<M#l# M@? 8>UhoQQ]AVQ^1| L@?F҄! dj _٨la6ztJB: 7d /k?yԷ&Dh]EWemkp+,rb6c}bGeUWeFBϏ+@ol0ju?MDhnMbX0j`QDhnC<o+o"Th]]9 Q BUFT1#E2H?FK&Ua?FU?F3z[j˺?P Bt`  ?t &XRkBu5 auon7_>)JAa^!? ?Az@b_bb! (݉ 6 , )  '+ g~X?ZI-Z#!g![z A " ,/,/>/P-[?+g/y'Eي,a4 ) "!#{ #Btg8t)u:Ba L^2!*X8;d;6X?E;d; tR>8lAlA `?CopyrigTt (c)@2`09@M@c@os@fBAr@Aa@i@n.@ 0l@ HsBe@ej@v@d@2!h<M#l# M@? 8>UhoQQ]AVQ^1| L@?F҄! dj _٨la6ztJB: 7d /k?yԷ&Dh]EWemkp+ɉ 5d}bGeUWeFBϏ+@ol0ju?MDhnHMbX0j`DhWef9o-ai qGeUoo$o6o3UHLD )&# R>h 0JTlaaM>UFObFd0?F gj?F0U?F_gw?P >tA`  N+ru?t Tլ1,_Œ X">u eu!s7-`JɅJUU?HA9 j@7tt7 b:*H&tH  th*Nĵ) ?MB"b;)H&e8H m 3 H -US4o?FPjj?6ֈ@!QpoĬگ eoĩ́ F o 01G}}϶@b@mp?#nʼPV]O߸uy\l2_+ʦE}@p5"iРo~e*al|ٍşןHD: )&# ;h0>Th]]9 PB IAUF\6:?F}?FF(e?F=PFo?P t`  @?t^$h5q+ tЖZu Mauo8a>    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 ,p )l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ s"?(a40 9 .*2!#{0:#t8'tϻ:Ua L2$18K;F?VEK.; t>B4AA0`?CopyrigTt (c)@2`09@M@c@oKs@fBAr@Qa@i@n.@ @l/P Hs3RePe@vEPd'P2hb<M#l1# M/P?]UhzAQ1 L@3FO#۲?Fo2zP dj|aW{ޓ8cUF:&x0?F?F?FX'qoO 0Yifull4ajS?ON~f0c?h+ fEeޖe?F<'?F@]?F\F%ޕol}dQ3ll BXy귺m|ԇbBhaUe```?FV ?F?Th ofl?PI3qoijeðl.` |=T?heFnF$OĒ?F o* leowk~y{f~tGg˂a ,8b1;MHD: )&# ;h0>Th]]9 PB IAUF\6:?F}?FF(e?F=PFo?P t`  @?t8ȍ5q+ tЖZu Mauo8b>    PEJƱZVJp!?&. ?Az@b/b@Z'݉e 6 ,)l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ s"?(a4 9 .*2!#{:#t8'tϻ:Ua !L2$18K8F?VEK.; t>B4AA0`?CopyrigTt (c)@2`09@M@c@oKs@fBAr@Qa@i@n.@ @l/P Hs3RePe@vEPd'P2hb<M#l1# M/P?]UhzAQ1 L@3FO#۲?Fo2zP dj|a{ޓ8cUF:&x0?F?F?F'qoO 0Yifull4ajK?ON~f0c?+ fEeޖe?F<'?F@]?FsF%ޕol}dQ3ll BXyR귺m|bBhaUe```?FV ?F?Th ofl?PI3qoiGkeðl2` |FT?heFnF*OĒ?F o* leowk~yf~tGg˂a ,8b1;MHD: )&# T=h0>Th]]9 Q BUFL&d?F`0?F(\µ?F^Sӻ?P Bt`  {G?t7F0 yA_P FBu aquo7c>KJm0U?<AL@tMt7( }b6*D&stD  td**Bıa) ?A.>"b7)D&ar4D [ 3 D 8/td/Kty.x1x1`?CopyrigTt (c)02`090M0c0oKs0f21r01a0i0n.0 Al0 8s2e0e0vZ @d0"h!<M#l#/MBl> @?UhLAA]J 1 A 1"7A1bA>!J`?o2z[ dUjaq:z׍40S 6VMՋB@_P\`_m;E,Ui5Uޖ??FQ[5lf\VU'EUY2Ruݯ?FU]˖7sf\pdGѿSYUWfe zx]om{Zc`,UUFRP\g[)JXAp|? rhQ#5 IXAYaLPւ?FتcP\T f\3$sXAp"۲ ElU1YA-k?FFoZP\fyf\!XAYX%?F8K7P\{ 䘷f\&SAY&1l?Fr>|]P\-]qiY?ip~ X1#g~jt-? GXAY?F ףp=P\' f\?P=RwX'RXT}7vP\__/vnTpډlX7U/$?vQ[E7Ժf\wUQY|>îqh|P\4GN"MX U29_KU#rA0$@CHD: )&# T=h0>Th]]9 Q BUF8?F43?F7??FtYOȻ?P Bt`  1=oJASTfw? ?Az@bbb! ( 6 )  '+ ߈?/I-Z#mg!z A u +%/,8)E!'+ k(?r+o#?(a4 8) E"E#{ #BtG8tU:Ba L>2?!88;D;68?5u;D; tj>)8LALA1 `?CopyrigTt (c)@]2`09@M{@]cy@oss@fBRrAru@Aa@is@Wn.@ 0l@U yHsBe@ey@v@d@v2h<M#l#A M@?4>UhkQkQjA6Q>1| L`Fdj]JK}vM4@[ 6)fMB@Wa\ k_程avCe=E~SeR9Y? lgESeFeabkod i?SQޗh~?5@+ c;ꉞi2_U3rA/04sCHD: )&# T=h0>Th]]9 Q BUF2B9?FW]i\?F'l?F{Cƻ?P Bt`  ,i?t^̺㯝4\YDrVBu auo7e>JAUVJp? ?Awz@bbb! ( " '+ ' qq?z A 9 +/.&68))E! '+ g?W-sU"!n*a4 8) "u#{ u#D!t?8tM:Bav L62?!08;<;60?5u;<; tb>){8DADA1 `?CopyrigTt (c){@]2`09{@Ms@]cq@osk@fyBRjArm@Aay@ik@Wn.{@ 0l@U qHsBe@eq@v@d@n2h<M#l# M@?]UhzbA.Q61b L` djMaQ@ 6fM{"@Ftnq\[3K_,7e5EGe<\ֽE?Nf[ NA_qd7eEGec6i\m j#f,7e2_UB3rA'04msCHD: )&# T=h0>Th]]9 Q BUF] ?FtF?F!/$?Fᱝ̻?P Bt`  "?tEQTϛT H0VBu auo7f>JTA0f88v?WYϳAjLv@z bbb!' 6Y % )! ! ,+ <?' o?z #a47% =) J"#K#({% (+ (G t#BXY'?A> ?A "+(/+/=/O/a!y:5r{l/@ sU10( /???? "0aQQ'@`?CopyrigTt (c)FP2`09FPM>PcTh]]9 PB IAUFR?F|}Y?FF(e?F=PFo?P t`  (\#?tN뻫5q+ tЖZu Mauo8g>    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 ,p )l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ s"?(a40 9 .*2!#{0:#t8'tϻ:Ua L2$18K;F?VEK.; t>B4AA0`?CopyrigTt (c)@2`09@M@c@oKs@fBAr@Qa@i@n.@ @l/P Hs3RePe@vEPd'P2hb<M#l1# M/P?]UhzAQ1 L@3FO#۲?Fo2zP dj|aW{ޓ8cUF:&x0?F?F?F_'qoO 0Yigull4aj?ON~f0c?o+ fEeޖe?F<'?F@]?FwF%ޕol}dQ3ll BXl귺m|bBhaUe`ba`?FV ?FTh oflPI3qoiؿkeðl8` |G?T?heFnF$O?F o* leowky?{ft?Gg˂a,8b1;MHD: )&# ;h0>Th]]9 PB IAUFpX?FEsR?F+\(?F~@ t?P t`  (TJ?th/3u -ZrqKZu L,duo8UAU    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 ,p )l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ s"?(a40 9 .*2!#{0:#t8'tϻ:Ua L2$18K;F?VEK.; t>B4AA0`?CopyrigTt (c)@2`09@M@c@oKs@fBAr@Qa@i@n.@ @l/P Hs3RePe@vEPd'P2hb<M#l1# M/P?]UhzAQ1 L@3FMbX9?F4ҫP dj}ah8cUF[~K?F|D?F+Xc?F&PRcGoO 0YiM+FllZaj}0%|f0c̭ fEe.V?Fȿ̅)`oSt?F?(X:olGGTll .Xl{e{|rww@haUe:&x0?F%Clw?FAz?F 1vņflux1qoiFA(]`t߼ |~Th]]9 PB IAUFpX?F<Dֳ`?F+\(?F~@ t?P t`  (TJ?tA u -ZrqKZu Mauo8i>    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 ,p )l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ s"?(a40 9 .*2!#{0:#t8'tϻ:Ua L2$18K;F?VEK.; t>B4AA0`?CopyrigTt (c)@2`09@M@c@oKs@fBAr@Qa@i@n.@ @l/P Hs3RePe@vEPd'P2hb<M#l1# M/P?]UhzAQ1 L@3FMbX9?F4ҫP dj}ah8cUF[~K?F|D?F+Xc?F&PRcGoO 0YiM+FllZaj}0%|f0c̭ fEe.V?Fȿ̅)`oSt?F?(X:olGGTll .Xl{e{|rww@haUe:&x0?F%Clw?FAz?F 1vņflux1qoiFA(]`t߼ |~Th]]9 PB IAUF$?F,w¾`?F+\(?F-ku?P t`  p&k?t?̈n=u -CmoLZu L,duo8j>    PEJڍU[\/(?&. ?AbbY!z@Ae bbCt c(a4b  # b(h#{ h#΍t(tI*#0f88vb.#i L5<1,(&$7/(D%"6/5;0( t.*B#11`?CopyrigTt] c).@2`W09.@M&@c$@os@f,BAr @YAa,@i@n}..@ Alt@U $HsxBeL@e$@v@dl@"h<M#l# Mt@?]UhzAA!J@#FMbX9?F$x0OԛP dj}תa4(SUF[~K?FE?FSc?F?#oO 0YM+Fӱ\*aj,.}a$?# XEU"n?F +?FbEd?F v<olTBJ\LMYBltavXlp@XEUv/?Fpvw;pg?F $hއ?FLvo~l/AD0qYJg ַBl)$ԞXlDB:XU^F.fّPKk^Rl_[Ei?1GAf`d?Sq+a,(bvHD: )&# ;h0>Th]]9 PB IAUF$?F(n?F+\(?F-ku?P t`  p&k?t A4u -+CmoLZu Mauo8k>    PEJڍU[\/(?&. ?AbbY!z@Ae bbCt c(a4b  # b(h#{ h#΍t(tI*#0f88vb.#i L5<1v(&$7/(D%"6/5;0( t.*B#11`?Copy_rigTt$_(c)$2`W09$M&@c$@os@f,BAr @YAa,@i@n}.$ Alt@U $HsxBeL@e$@v@dl@"h<M#l# Mt@?]UhzAA!J@#FMbX9?F%x0OԛP dj}תa4(SUF[~K?FE?Fdc?F,?#oO 0YM+Fӱ\*aj ,.}a?# XEU"n?F{ +?F(%/Nd?F<olTBJ\MYBlU{XlpDc@XEUv/vw;pg?F^$hއ?Fvol/AD0qYf ַBls$ԞXl+?B:XU^F.fّPyKk^Rl_[Ei1GAf`dSOq+a,(bvHD: )&# T=h0>Th]]9 Q BUFt[@#?Ft\?F\HRq?FƯK7?P Bt`  =0[?tRwq#ll$nZBu duo7l>JA]^'? ?Az@b ( 6f  )ϓb= + _? ' 88o?z A s +=  /)/;/M$[+["-j!Q U1[!x(ar4 )] "'}#{t }#BtNQ8t_:Ba~ PLH2!B8;N;Q6B?5;N; tt>8VAVA `?CopyrigTt (c)@2`09@M@c@o%s}@fB|Ar@Aua@i}@n.@U 0l@ HsBUe@e@v@d@ 2h<M#l# MT@?4>UhuQuQtA(@QH1j LZFهgϰ 7j bL\GlR] 6S-fMB:MbPdc mdb`GeGEWe$oˏZ\ai?bvIGeU@Vϰ+@_?F23Th]]9 Q BUF偃?FKG?F\HRq?FƯK7?P Bt`  Xkw?tO [#ll$nZVBu auo7m>JA]^'? ?Az@b ( 6f  )ϓb= + _? ' 88o?z A s +=  /)/;/M$[+["-j!Q U1[!x(ar4 )] "'}#{t }#BtNQ8t_:Ba~ PLH2!B8;N;Q6B?5;N; tt>8VAVA `?CopyrigTt (c)@2`09@M@c@o%s}@fB|Ar@Aua@i}@n.@U 0l@ HsBUe@e@v@d@ 2h<M#l# MT@?4>UhuQuQtA(@QH1j LZFهgϰ 7j bL\] 6-fMB:MbPdc Ɵmdb`GeGEWe$oZ\aibvIGeUWeVϰ+@?Vpk_xu j aGe@We_ooh2Kt]u3rA 4s2HD: )&# T=h0>Th]]9 Q BUF͜?F$6H?F\HRq?FƯK7?P Bt`  W׎?t #ll$nZVBu auo7n>JA]^'? ?Az@b ( 6f  )ϓb= + _? ' 88o?z A s +=  /)/;/M$[+["-j!Q U1[!x(ar4 )] "'}#{t }#BtNQ8t_:Ba~ PLH2!B8;N;Q6B?5;N; tt>8VAVA `?CopyrigTt (c)@2`09@M@c@o%s}@fB|Ar@Aua@i}@n.@U 0l@ HsBUe@e@v@d@ 2h<M#l# MT@?4>UhuQuQtA(@QH1j LZFهgϰ 7j bL\G@[ 6S-fMB:MbPdc mdb`GeGEWenˏZ\ai?avIGeUWeVϰ+@?Vpk_xu j aGeWe _ooh2K]u:3rA 4s2HD: )&# T=h0>Th]]9 Q BUF[@#"?FJA]^'? ?Az@b ( 6f  )ϓb= + _? ' 88o?z A s +=  /)/;/M$[+["-j!Q U1[!x(ar4 )] "'}#{t }#BtNQ8t_:Ba~ PLH2!B8;N;Q6B?5;N; tt>8VAVA `?CopyrigTt>(cu)>2`09>uM@c@os}@IfB|Ar@Aa@]i}@n.> 0Ul@ HsBe@e@v@d@B2h,<M#l# M@?U4>UhuQuQtAJ@QH1j LZFهϰ 7j bL\ѻ}@[ 6-fMB:ʩMbPdc 2N3odb`GeGEWe$oZ\aibvIGeUWe4?Vpku j aGeWe_ooh2K]u3rA 4s2HD: )&# ;h0>Th]]9 PB IAUFv?FdË.?FQ?F?P t`  Smo?tϰոČ( 뾅@l* 9u duo8p>   ] EJ]_DRb(?&. ?Az@bY(e 6f h )ϓb k+ _?Z'e 88o?ze Ae s[+ h g/y//$# L:5 /sU"K1*a4 9 2(E#{ #t8tϤ:U a L2T18K;6Ԉ?@EK; tͺ>B40AA0`?CopyrigTwt c)@]2`09@M@]c@os@fBRAr@Aa@i@Wn.@ 0lPU HsRe@e@v/PdP2h<M#l#A MP? <>Uh$QQ(]A(Q1 LZ3;'xP 7jbbFb7@c 6{fM8cUFnDdTh]]9 PB IAUFSQ=?F|=?FQ?F?P t`  4o?taVpRKČ( 뾅@l* 9u auo8q>   ] EJ]_DRb(?&. ?Az@bY(e 6f h )ϓb k+ _?Z'e 88o?ze Ae s[+ h g/y//$# L:5 /sU K1(a4 9 2(E#{ #t8tϤ:U a L2T18K;6Ԉ?@EK; tͺ>B40AA0`?CopyrigTwt c)@]2`09@M@]c@os@fBRAr@Aa@i@Wn.@ 0lPU HsRe@e@v/PdP2h<M#l#A MP? <>Uh$QQ(]A(Q1 LZ3;'xP 7jbbFbL7a 6{fM8(a?nDFF!@~qWoO 0dTc I\rdcd bjUkgaPbeEef"v?Fr6d?F?kĀqo`OivddlXr`tF0sK|٢jr3t!KU:G}?{]rLl} ]|q3xnTrg?F<ے7pooZgtfio,V|=] 5ve&1?Fpn?FTh]]9 PB IAUF!?F?FQ?F?P t`  + {o?tHUČ( 뾅@l* 9u auo8r>   ] EJ]_DRb(?&. ?Az@bY(e 6f h )ϓb k+ _?Z'e 88o?ze Ae s[+ h g/y//$# L:5 /sU"K1*a4 9 2(E#{ #t8tϤ:U a L2T18K;6Ԉ?@EK; tͺ>B40AA0`?CopyrigTwt c)@]2`09@M@]c@os@fBRAr@Aa@i@Wn.@ 0lPU HsRe@e@v/PdP2h<M#l#A MP? <>Uh$QQ(]A(Q1 LZ3;'xP 7jbbFb7@c 6{fM8cUFnDFK!@?FDqWoO 0dTc I\addǼbjUkgabeE(aFjv?Fr6d?FkĀq o`Oi^j^r`t0sKÊ#|pr9t!KU:M}{]r,Ll}]|9xLufTrg?F<ے7vodObdcZgtfi,V #|=c ;vLu&1?Fpn?FTh]]9 PB IAUFĊ?Fn6b?FQ?F?P t`  o?t]eČ( 뾅@l* 9u auo8s>   ] EJ]_DRb(?&. ?Az@bY(e 6f h )ϓb k+ _?Z'e 88o?ze Ae s[+ h g/y//$# L:5 /sU"K1*a4 9 2(E#{ #t8tϤ:U a L2T18K;6Ԉ?@EK; tͺ>B40AA0`?CopyrigTwt c)@]2`09@M@]c@os@fBRAr@Aa@i@Wn.@ 0lPU HsRe@e@v/PdP2h<M#l#A MP? <>Uh$QQ(]A(Q1 LZ3;'xP 7jbbFb7@c 6{fM8(aD +F2|>?FW@WoO 0dTc ?rdcd bj{^WeabeEef"v?Fddd?F܃qo`OivddlXr`tuqE|E:jr3t!KU:G}{]rLl}]|q3xngqrg?F~pooZgt_ML|\ 5ve&1?FWf?F?#0b|[m낪 z'oǵ(|F$$!ayTh]]9 Q BUFt[@#?FlIJ?F\HRq?F#o˯Z?P Bt`  =0[?t7c`C#ll#Bu duo7t>JTA0f88v?WYϳAjL@z bbb!' 6Y % )! ! ,+ <?' o?z #a47% =) J"#K#({% (+ (G t#Beı?A>L ?A"&"&$/*8%,"t:"t>  A A6 `?CopyrigTt _(c)D@2`W09D@M<@c:@os4@fBB3Ar6@oAaB@i4@n}.D@ Al@U :HsBeb@e:@v@d@2h/1<M#l#@7? M@?(>Uh7E P+AA!{ L:F A7<6j% bRzg9<2 "\MbPdS mT W5U6ik0YaYvq 2HD: )&# T=h0>Th]]9 Q BUF偃?F (?F\HRq?Fn˯Z?P Bt`  Xkw?tɣ#ll#VBu auo7u>JTA0f88v?WYϳAjLv@z bbb!' 6Y % )! ! ,+ <?' o?z #a47% =) J"#K#({% (+ (G t#Beı?A>L ?A"&"&$/*8%,"t:"t>  A A6 `?CopyrigTt _(c)D@2`W09D@M<@c:@os4@fBB3Ar6@oAaB@i4@n}.D@ Al@U :HsBeb@e:@v@d@2h/1<M#l#@7? M@?(>Uh7E P+AA!{ L:F<6j% bRzg9ǩ<2 "\MbPdS mT W5UO6ik0YaYvq 2HD: )&# T=h0>Th]]9 Q BUF͜?F4@?F\HRq?Fn˯Z?P Bt`  W׎?tϘsW~#ll#VBu auo7v>JTA0f88v?WYϳAjLv@z bbb!' 6Y % )! ! ,+ <?' o?z #a47% =) J"#K#({% (+ (G t#Beı?A>L ?A"&"&$/*8%,"t:"t>  A A6 `?CopyrigTt _(c)D@2`W09D@M<@c:@os4@fBB3Ar6@oAaB@i4@n}.D@ Al@U :HsBeb@e:@v@d@2h/1<M#l#@7? M@?(>Uh7E P+AA!{ L:F6j% bT ü2 "\MbPdS mT W5UO6ik0YaYvq 2HD: )&# T=h0>Th]]9 Q BUF[@#"?FLo]Y?Fo?Fn˯Z?P Bt`  ?tC2.8Xj#VBu auo7w>JTA0f88v?WYϳAjLv@z bbb!' 6Y % )! ! ,+ <?' o?z #a47% =) J"#K#({% (+ (G t#Beı?A>L ?A"&"&$/*8%,"t:"t>  A A6 `?CopyrigTt>(c)>2`09>M<@c:@o%s4@fBB3Ar6@oAuaB@i4@n.>_ Al@ :HUsBeb@e:@v@-d@2`h/1<M#l1#7? PM@?(>Uh7E +AA!{ L:F<F6j% bRzg9<2 "\ʩ7MbPdS 2NoT W5UO?6ik0YaYvq 2UHT5D B &# T>h0JTtiiM ENUF|u(?Fڋ?FPaW?F ru?P WNtQ` 786R7?tUau}wAi8;(\I2-nNuj mu){xE0f88wv?AVQ Ӎ!@#b#m@b  0#  #W(3 (o+&T" #t#NĽ/?. ?M"&$a%$$,/>*L%i,T"tΞ*T"tR.R11#`?Copyrig`t (c)02l090M0c0os0f21r01a0i0n.0 Al@ 8sBe0e0v0@d@"Vt!X#xB #/ @T,UtE1UA-!@nZ pvm?S׮(%UQG@Y9"S\FkV5%UЗn@‹Pهϰ=\WQS\OXbiTQY%_7_I_[_DQOOOO__^̔ԍ?f Q́)f@vVP|?5^BlӿIY:6Xl?Ib ʏ܏EABTfxF\HRqCk?-q_WaW?ϰ+@"Bl!H,BXQnB)fFޖBoT[inJ\ۙgyAHD: )&# T=h0>Th]]9 Q BUF4@ ,?FlIJ/?F&1?F3(e?P Bt`  N!?tw;%m4tMuVBu auo7y>JAS`? ?Az@bbb! ( 6 )  '+ ߈?/I-Z#mg!z A " ././@/R+,g/y'sU1,ar4 )] "#{t #BtNg8tu:Ba PL^2!X8;d;Q6X?E;d; t͊>8lAlA `?CopyrigTt (c)@2`09@M@c@o%s@fBAr@Aua@i@n.@U 0l@ HsBUe@e@v@d@ 2h<M#l# MT@?4>UhQQA(VQ^1| LZFX} g 7j b2ɶGO@[ 6SCfMB:ZMbXdc $I$I܍+d `2aa]Eme'la'iL.G]eU@9/$E?;FslAka,dHּgmeoo(oh2gyu3rA 4s2HD: )&# T=h0>Th]]9 Q BUFnټk-?F.޺s?F&1?F3(e?P Bt`  3?tʼnm4tMuVBu auo7z>JAS`? ?Az@bbb! ( 6 )  '+ ߈?/I-Z#z A* " ././@/R+Yg/y'sU1,a4 ) "#{ #BtΜg8tu:Ba L^2!X8;d;6X?E;.d; t͊>8lAlA `?CopyrigTt (c)@2`09@M@c@oKs@fBAr@Aa@i@n.@ 0l@ HsBe@e@v@d@2hb<M#l1# M@?4>UhQQPAVQ^1| LZFX}  7j b2/O]M 6CfMB:ZMbX͉dc ?$I$I܍+d 2aa]Emekla'i.]eU@;0$E?FTh]]9 Q BUFܲ?Fj$?F!?FTUUUɺ?P Bt`  &?t§= ףc?ckBu5 auon7{>)JAUVJp? ?Awz@b_bb! (݉ " '+ ' qq?z A  +S/.&68))E! '+ g?uW-sUUn*a4 8) "u#{ u#D!tΜ?8tM:Bav L62?!08;<;60?5;.<; tb>{8DADA1 `?CopyrigTt (c){@2`09{@Ms@cq@oKsk@fyBjArm@Aay@ik@n.{@ 0l@ qHsBe@eq@v@d@n2hb<M#l1# M@? Uh,cQcQ] '1PbA.Q61b L`w"?FMDA dj? |m cuۡ'1 6!1fM{":F$3<6d kS=ѣ<n2{!5E[nLa vogaKeE[eV_@cbc g@]amr\GDž}iNu?FS%f|]tElFTh]]9 Q BUF:C<?F8!)^?F!?FTUUUɺ?P Bt`  Ȼ?ޫd?tI= ףc?ckBu5 auon7|>)JAUVJp? ?Awz@b_bb! (݉ " '+ ' qq?z A  +S/.&68))E! '+ g?uW-sUUn*a4 8) "u#{ u#D!tΜ?8tM:Bav L62?!08;<;60?5;.<; tb>{8DADA1 `?CopyrigTt (c){@2`09{@Ms@cq@oKsk@fyBjArm@Aay@ik@n.{@ 0l@ qHsBe@eq@v@d@n2hb<M#l1# M@? Uh,cQcQ] '1PbA.Q61b L`w"?FMDA dj? |m cuۡ'1 6!1fM{":F$3<6d kS=ѣ<n2{!5E[nLa vogaKeE[eV_@cbc g@]amr\GDž}iNu?FS%f|]tElFTh]]9 Q BUFx]?F{<W?FU?F3z[j˺?P Bt`  Q`7lg?t M&XRkBu5 auon7}>)JAa^!? ?Az@b_bb! (݉ 6 , )  '+ g~X?ZI-Z#!g![z A " ,/,/>/P-[?+g/y'Eي,a4 ) "!#{ #Btg8t)u:Ba L^2!*X8;d;6X?E;d; tR>8lAlA `?CopyrigTt (c)@2`09@M@c@os@fBAr@Aa@i@n.@ 0l@ HsBe@ej@v@d@2!h<M#l# M@? 8>UhoQQ]AVQ^1| L@?F҄! dj _٨la6ztJB: 7d /k?yԷ&Dh]EWemkp+ɉ 5d}bGeUWeFBϏ+@ol0ju?MDhnMbX0j`QDhnC<o+o"Th]]9 Q BUFT1#E2?FxLΉ?FU?F3z[j˺?P Bt`  S|.?tk, &XRkBu5 auon7~>)JAa^!? ?Az@b_bb! (݉ 6 , )  '+ g~X?ZI-Z#!g![z A " ,/,/>/P-[?+g/y'Eي,a4 ) "!#{ #Btg8t)u:Ba L^2!*X8;d;6X?E;d; tR>8lAlA `?CopyrigTt (c)@2`09@M@c@os@fBAr@Aa@i@n.@ 0l@ HsBe@ej@v@d@2!h<M#l# M@? 8>UhoQQ]AVQ^1| L@?F҄! dj _٨la6ztJB: 7d /k?yԷ&Dh]EWemkp+ɉ 5d}bGeUWeFBϏ+@ol0ju?MDhnHMbX0j`DhWef9o-ai qGeUoo$o6o3UHLD )&# R>h 0JTlaaM>UF+1#E2?Fgj?F0U?F_gw?P >tA`  9|4?t <'Ŵ\1,_Œ X">u eu!s7-JɅJUU?HA9 j@7tt7 b:*H&tH  th*Nĵ) ?MB"b;)H&e8H m 3 H -US4o?FPjj?6ֈ@!QpoĬگ eoĩ́ F o 01G}}϶@b@mp?#nʼPV]O߸uy\l2_+ʦE}@p5"iРo~e*al|ٍşןHD: )&# ;h0>Th]]9 PB IAUF~Q?F|}Y?FF(e?F=PFo?P t`  IGr?ttƯ.5q+ ~Жu auo8M> `  EJƱZVJp!?&. ?Az@bbbe!Y(ne 6 p )l l w+ g?-#U!׷!zme Ae [+j/|//-g#+ s "(a40 9 *2!E#{0#t8tϤ:U a L2T$18K;FԞ?VEK; t>B40AA0`?CopyrigTt (cu)@2`09@uM@c@os@IfBAr@Qa@]i@n.@ @Ul/P Hs3RePe@vEPd'PB2h,<M#l#_9M/P?]UhzAQ1 L@3FO#۲?Fo2zP dj|_aW{8cUF:&x0?F?Fώ?FX'qoO 0Yifull4ajS?N~dh+ fEeޖe?F<'?F@]?F\F%ol}dQ3ll BXl귺m|ԇbBhaUew```?FV ?FTh oflPI3qoijeðl.` |=T?heFnF$OĒ?F o* leowky{ftGOg˂a,8b1;MHD: )&# ;h0>Th]]9 PB IAUF~Q?F8?FF(e?F=PFo?P t`  IGr?t+>`5q+ tЖZu Mauo8>    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 ,p )l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ As"(a40 9 *2!#{0#΍t8tIϻ:AUa L2$18K;F?VEK; Kt>B4aAA0`?CopyrigTt (c)@2`09@M@c@os@fBAr@Qa@i@n.@ @l/P Hs3RePe@vEPd'P2hX<M#l # M/P?]UhzA(Q1 L@3FO#?Fo2zP dj|a{8cUF:&x0?F?FȎ?F'qoO 0Yifu,oi4ajK?N~d+ fEeޖe?F<'?F@]?FsF%ޕol}dQ3ll BXlRm|bBhaUe`Ԗ``?FV ?FTh oflPIϮ3qoiGkeðl2` |FT?heFnF*OĒ?F o* leowkyftGg˂,,8b1;MHD: )&# T=h0>Th]]9 Q BUF&d29?Ft`0L?F(\µ?F^Sӻ?P Bt`  o?tbS yAP FBuj auo7>RJ[0U?<ALv@tt7 }b6*D&tD  td*JBı) ?A>"b7)D&a4D  V3 D 8/td/tRy.x1x1`?CopyrigTt (c)02`090M0c0os0f21r01a0i0n.0 Al0 8s2e0e0v @d0"h0!<M#l#/MlP> @?UhLAA]R 1 P1"7Ж1bA>!J`oO2z[ dja_q:z׍ Q 6VMB@챝/P\`_m;E,Ui5Uޖ?FQ[5lf\VU'EUY2Ruݯ?FU]˖7sf\pdѣSYUWfe _zx]݅om{ZcXUFRP\g[)JXAp| rhQ#5 IXAYaLPւ?FتcP\T f\3$sXAp"۲ ElX1YA-k?FFoZP\fyf\!XAYX%?F8K7P\{ 䘷f\&SAY&1l?Fr>|]P\-]qiYip~ X1#g~jt-? XAY?F ףp=P\' f\?P=Rw㹥X'RXT}7vP\__/vnTpljlX7U/?$?vQ[E7Ժf\wUQY|>qh|P\4GN"MDX U29_KU#rA0$@C_ HN>Lo3s rFYd߫" EMF85 #C1D9 B ԙb:U @eko}+o9BG/;^PHWp (` d mHg ط9k }Oo^8tHx Dh|6B h  (9 ۏ K  9Ɲ _ B] @! Ab ]E W KgÐ ՏR &Q ~Te W 1&hY Z߯ oG'\ '^ {'aHhdgL E5'j Cm9o m& xߣ 9Xj Ȩ 8 V9( !(0# Hp&*Iط_) ?]@Y,0r019Ƚ3598 '.? ?T wp  ̠ p ʔ  pqwpqwqnwqpqqbqpppw wwwqqEwqpw߄wwrvrrwDrag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aabjZֿ~??cN׿ mF1??SbM1{V↑T*J?@ ?UG DF P# h @T(PYY# QU@jZ?@~??F?Pn} u{` ?Su#؍>>HX HlHYHH EO.LO4:UDDXXUllk'"&R",I'U25ĉq%4 ?"u'4b0{[`:#(26 U9$"3&x9"L1" ^!'>U@ÿ@ǽq^@?@VBӅ?]DSF0ZBu@`-1ZBuW@rCC!8GAB"2C9u`u `"[ b![u`2 %3Qo1o7B`?CopyrigPt0(c)020P90MPcPosPfRQrPQaPiPn 0Al` Xs bePePv`d/`VPs_SBNcPm!#5Qb41,a@o13dX453B^8=%3p63dz6z6 v24#V%30Urz3]ge<^1E U#5m Hq5twL5t{3t{ez1A+E*F7ԂX$18dT-`XQj2y`]r` MPWnuPaPtar,aOQ` UES0uPpK`ePt[eTL5Qdv],1PRd C`uK`bʦ30ޯ𯇡! PPr+=9H^p]ZaDbQUT\Կ濅APaB`Ȩ-5^]oυ% S biP aϭPeTυLPcXūa5DVߪhB:l(`iPg߸̨@߇RPoǩ|Z\@E pAD`~YxČUSPaPePlP,5ƪXp/` ATP-`54`%aPK]狥%Sb?`.A4`W`ZʦT3NwRk qa2$2`_ @Ȩ͒Y;MI`ad(`cz d ϴ兵nēAs DxP)ߑmr:atV%a Iâ@!auoDfP㞑 R `Qa/)/7M`Cl/Pد/M+QUmK`utP ?`/ D*?"?_ (b? (Dv??;Hd2QC K3` Wf}%5DVO#O `C` akO}O#ԅO` M`mRgOOɧDODp __1;OUQ1y?QI_[_CqtJw fo SU@jZ?Fű?%v%vKpIp(u.p` s?vbup` ? B=݉`C,qtMp5mQ-́<)oTm}QX.q͏Pߊӥ T.OtxFf@>|pÿruob쁙JRq KN̒rr$QUvvvrsE"`RoZK1& be9P bb OObr@muP`TaC]1eߊ_e71721bKa aXaaehAaYip P`u`T_`_`Qhڑx4ӥ5f_dP&b鄞pCwF3s͵NSY:3R rV@0e18TR <շqW,@rB* B}aaaahʾYVԐ;n` %̀P&²S$1aa`NEW_ORKP2H IP_!RRЕISQTҷiroohA'0UQ?8!Ԑ0oHD # =hj0>T h]]9  5AU@jZ?F͂T??Fx?SF?P6 jt`  o?tk[>(A Vu aSuo.]&A]  *ԮJU2zGzt?@L#&A@bA#z7 5#1bO(b])j+$j&[ "*(w "?& ?AU$l/%B115 `?CopyrigTt (cu)Q02`09Q0uMI0cG0osA0IfO2@1rC0|1aO0iA0n.Q0 WAl0 G8s2Ueo0eG0v0d0"1E]4MŤ-&3 &7&l>]Uhz811U!J!u6?F+\.>djIIa? >"(EǑ I%K9E 5EU . K ;;5QIWEEEF _KnSA?8@@Bu?FDR> ?Nk"\6`bmMM\j=am {:e P> #? D"? 5-g?j4B7!B{oogr57!ibDAbE9 MuX7_'0U~rN!$a)5 5vIzHD # =hj0>T h]]9  qAU@;?FI5K?@xEL?6ѿP6 t`  bm&Qo?t@@L]WI,#u aiuoL> JU2zGzt;?@L?&A@b}#zs q#1b(b)+$&[9#H",ɺ (wH"?& ?A$ /%9#BV1V15 `?CopyrigTt (cu)02`090uM0c0os}0If2|1r01a0i}0n.0 WAl0 8s2Ue0e0v0d0"O1E]S4MŤ-9#b3 b7&l>]Uhzt1.A!JN!m.%-+0djV1ax߃S(FJ-&?F mO"> ?Nk"L[Majnha_:e P> #? BK=o? n-?j4Bs!B{__Wr5s!D8E6V 6?wj_|_ ^XE.U@z T6?F @' d_mOoT \VyWxRkrVo_bVh*g:n"'UaEjz36>CN>?Bn}]zGvN7V iDAbE9 MX+G'0UJPN!4ae5 MaHD # =hj0>T h]]9  U@jpiH?F^?@$?F]F?P6 t`  !a&ao?t,F=۳=u;u auo>J2zGzwt?@ʐLAw@b#z1b](b!).+I.&[-m(?0& ?A$I0/Q%!!5 `?CopyrigTt (c)02`090M 0c 0os0f21r0@1a0i0n.0 Al[0 8s_2e30e 0vq0dS0T"!E]$M-# %'&l>]Uhz!1!JF% djc~YZ(_N9zOMGE%_EH$SwO"K ңHE ^&_8_WE_OqOHOOi&DAbPE9 MX7'0UUfb>!$a % f1jHD # Uh4>T#]]9 M5AU@jZ?FL|+?@?F({~?P6 JuM` ?u JYt )t7zEA2&L_D?. > >tJU2q K?=@MJ&A@-b9(+bG)T+T&J[#"#a?& ?AH?/`)#115 {`?CopyrigTt (c);020G09;0M30c10os+0f92*1r-0f1ai+0n.;0 Al0 18s2eY0e10v0dy0z"!4B#e-?3 7)& b 0K8>U# ]A]A "1!ъ!PzQ <%OYAJEU . K;;\%W%EF($L[.FX5Eai%?F 6?wL;] W-\TB⤲8?F@&SA?F @ ?Nk"L'`bmMW_Ye[ٯ7 VK=F: [jr ? D"? XZvD?ta@Boogr5;!QEx]SiLO MLGXa~WOTZiAle59 XG"'0Uc&N!$05 .HD # =hj0>T h]]9  IAU@K?FOgVb?FY%?Fwᳬ?PJW?>t`  ^Z?t#ə.E @x?r?/{4܂ G _Z+u u$ >  J JpU?43f<!.&P?b3bbfz@1bAe&bq$d 2zGzt.#@LT"&r(~&i$q)(+}'i"~*#81815 `?Co yrigTt (c)o02`09o0Mg0ce0os_0fm2^1r 1am0i_0n.o0 Al0 e8s2e0ee0v0d0"11E]54M-#D3 %D7.&lUh#7 V1#Ai!J# F/?B1B  VRiAAbE9 MX G{W'0U*R2N!I$a {VZUHPD  # #>h0JTpERI MU@u6?Fjc{g&?@%r`5B?Fm_F:Is?HNtQ`  II?t#]  _ii$!`kNu  iu%wj>M JQ T       "@&&JNU2"?H@Qs#N&A@b(bU)++&RNp}#>H1#19 ?#bbbz| R&/5R}#11`?Co0yrig\t (c)02h090M0c0os0f21r0Aa0i0n.0 Al!@ 8s%Be0e0v7@d@21a4t#-}#3 %746lJ#$JUp5 3 M19 1!q(!FnElrkRt# 8$kcD?@숒@)?FP?P"EkU |1\iOT/irvs}i>`_,of :m ,M ?? S&d2? *b?r4B!B oo1gr #5!>%(EQOOOO__FAc1_C_ D4ևS]_o_yRX+{_,__ #R__ (YQoSo+o=osd {oEeooooooFyUy{* hDVW(I X"c7I!pg bf'iMjSE t%XyG|'0UŢŞN!O4i |UGD # hz0TdYYBU@(%)?Fxg^?@0߯H?Fs7Uݹ?P} t` 87?t#_)TeΦu ]ukv  ̝L&UUU&I&3 U!!`?CopyrigPt _(c) 2\W09 M c os f"!r 1a i n}. Al00U (s42e0e uvF0d(0'HS$#-## 'I?k=#ǒ 2j$B##0U'BM3@&@F0Yk} #HA%DKb5DK3DK5DKED$!GiAZG5(|IDFX7yW'&Dŭ6!4YA yVZHD  # =hj4>T!]]>#AU@0߯H?Fz)e??F˞9q?P6 t`z  ?5t# rXѮu)Nu;):O]ע0 &> # " "+"+"+"+" $+"T-J[U7 ??& bA@ 2b4-#2zGzt#+@ Li68!6 ?}; 72U!:B#AA5 5`?CopyrigTt(c)20F@9M2@c.0@os*@f8B)Ar,@eAa8@i*@n. Al@ 0HsBeX@ej0@v@dx@)21"DM-,;?C G& l>]UhzAE!A#!ְ1J`#@{&pz?FUy{?NT,dKj&b&R&M/8T9K-q?F@F?FdG0 >Nk"?YE*]\LThKjfGD&Qhj ?iU3UGe&Y`?@/Jb)h5oWKoWo;èKod}l$ro`nE2K?Fˌ%4G{?F -q? eZR^{|\?6?vodmP}l>MBe 9 N 1iS? 1?grl#51:PO"4ga@Sq(UE^@O|ǐ[`ߡa v2rbA @3ijD&}laqOz o?#WHZ'Qu=*[^N?F]%P?@O&@ c?FаM<n ?` eb0)\(Pfodm}nv}l?V5(?q$Ix[cN#W{ #iA@&QeE9 MX''0UjdN!0 /HD  # =hj0T h]]9 #]AU@}%?FR$,?@6#V?Fc_3֡w?P6 u` ?u#t  3zM%t3ws%.<%H._'B> #PJU2N贁Nw[?@ʐL+&A@wbu](i+bk)%+&p%#4">9"<5!?& ?M#bbb͓z$ p&"/%T%#L1L15 w`?Co yrigTt (c)02`090M{0cy0oKss0f2r1r 1a0is0n.0 Al0 y8s2e0ey0v0d0"E1E(]I4M-%#X3 X7&l*>(UhE j1#$Ac!J`%#@5e$_F??!foA3nBM( V?FJ-R?@HQ??FS!R?P| llHL6VLD5E+v;*AůʙH: 8snP%$? k?Q? \?4_!__WrA5_! R,U3OC@IL?F4~Kz?P)Oy޾ T!]]>#IAU@܋?F2Oa>?@#r`5B?F*ݷ?P6 t`  >B?\oEt# ŖoZu 0Nu;Y:|8>$# JpU>##<?2& ?5bbbz@b#ANi&bu$'h 2N贁N[2$@ LX"D&v(&m$ :;T'm"*B#d1d15 5`?Co yrigTt (c)020090M0c0os0f21r 1a0i0n.0 Al0 8s2e0e0v0d0"]1"a4M-/p3 p72&l>0>Uhh= 1#!eJ`#&FNTM\jh1B,RBM(!JoUy{O_ e@ So4(D@^Tw?F]֝ä ?Nk"?w_KT\T+\_(Kjӷjmplhj -`\TPQE\Uui,St_o u~!ՠXEO9= T?FL?;uQ_Pm"rA @3sjQ1lğ=GoYniAleE9 MX|'w'0Ur^N!M$|A vzHD  # =hj4>T!]]>#IAU@܋?Fj?@2r`5B?F^ݷ?P6 t`  >B?\oEt# 6ΠZu 0Nu;Y~:#&}>0m8>  PJU2N贁Nwk?@ eL&A( 5bM(b[)h+h+$h&#[-M$#?& ?b$Z*'*B#O1O15 5`?CopyrigTt (c)02U0090M~0c|0osv0f2u1rx01a0iv0n}.0 Al0U |8s2e0e|05v0d0"H1P"L4M-/[3 [7&l>0>Uhh= m1#!S!J`#*&FPUy{_?NTMjC1gc RVMʣ(D#@ ![?F"$. ?Nk"W?IKTLTcKjRlhj p=' (*!)i,SO2Kes9T;QEGUFw6qX}__TM7fTZT\Dž}_P^52XOES"rA 0S#Es3iAleE9 MX|$Gxw'0UrIN!4gA xvzHD  # =hj4>T!]]>#!AU@܋?Fc_v?@#r`5B?F*ݷ?P6 t`  >B?\oEt# ap'EZu 0Nu;Y:|$># BJpU>#͙;? & ?5bbbz@}bAA& K&@ 2zGzt?"K@ L0"&N(bM)+TK/8Z*B<1<15 5`?CoyrigTt (c)s02009s0Mk0ci0osc0fq2b1r1aq0ic0n.s0 Al0 i8s2e0ei0v0d0b"5194M-t/H3 H7T &l>(>UhE=3Z1#E!J!FENTMjN@1h(NoUy{OO e@ o)4(D@^Tw?F]֝ä ?Nk"?'_KD3\T+\(Kj?ӷjmlhj P\ DiAlePsI=MXsG'0UzbZ6N!%$0 sFEjHD  # =hj8>T! ]]>#!AU@܋?F*?@#r`5BW?Fw?P6 t`  >B? \Et#տ|u l4RQu?]>I$>I# JpU>͙#<?& ?9bbbz@b#AE&bQ$$D 2zG[zt#@ L4"&R(^&I$Q)+]'I"^*Bh{.M#To1o15 9`?CoyrigTtk(c)k2009kM0c0os0f21r1a0i0n.k Al0 8s2e0e0v@d0f"h1l4M-:?{3 %{7&l>(>UhE= `51#I!J49fAn^ R)X f"B!Jui,SG?RSlOS u~!N]8-19= T?FL;uQ ?Nk"?YVTQRXQOnğ/=i n (\ wTiAaePE9 MXLg'0UbZiN!)$0 Lf`jUGD # hz4TYYT#BIU@Sj'ో?FL]&?@j>(?FeTot7Ѻ?P} u` ?u#8k/8CU(.88Lt `lm3tϭ^}ѯnAf'wyU~##0UH"?@&#!!*`?CopyrigPt (c) 20 9 M c os f"!r !a i n. Al (s2e e v0d z!~$#B-#,# 'O#^ =$&#4 {6{6 w2$e#ab3W) #LG,%,Dj8Hg\&dPaxO6'TXAXA"(2Ca%?28(B,"iha05( e&XV7 W'G${6!t40 VZHD: # =h4>TB#]]9 T!AU@%?FYp5?@_RP6 u` ?Mu t  !o)t~7RnB25"!)Lv$>   EJtU2q?=@dLA@-wb%(b3)%@+@&[w#?& ?A+/L)R!!5 {`?CopyrigTt (c)'020309'0M0c0os0f%21r0R1ai0n.'0 Alm0 8sq2eE0e0v0de0f"!$MEBY-?# '&rl U# #7 1* #p| '&)1&JH FFѷ |-B1 @V&Rl( b 0Ale59 MX7'0URN!$0% VZUGD D# h0T@dYY]BIU@j>(?F8??F/I6?Pn} 8WdT t`  7?ht#rL&~n[f1uowuwU!!`?CopyrigPtv(cu)v2\09vuMB c@ os: IfH"9!r< u!aH i: n.v WAl @(s"Ueh e@ v d  #S$#$- ## '?w= # &#24 6 6 $B# #0U2 3@& wa#3~  #dH1%4Gi^#5 6X'EGK'4 6! ] EFYJHD # =h4>TB]]9 \#!AU@#.?F/I6?@P t`  gjo?t#T U $YhAn m7 u)hnx Fu!)J hI 97eyh?#!?9& aAbA@_"bg)b$g)bIg$2zGz9#@L@&h*%}$f*+T'_"*BL1L1`?Co}p rigT}t((c)(W2009(M{0]cy0oss0f2Rr1ru01a0is0n.( AUl0 y8s2e0ey0v0d0E1I4Mb-X3 X79&l)Uh# j1#_!J FF$[ 7#e T$V3RiAlPeE9 XW'0URZFN!^0 VHD # =h0>T@h]]9 #U@딃r?F/(?@2?FkF_w?P t`  ;0K?t# y_h:.A>Dj# ixsj||yyh|j|Ay"s"y,"s,"yJ"y^" yr""y"/y"a|"1y"8y":y";y"|`AUhMq@q] y a7T^1 hjP!,!J!^!o$!$U#$%&U'()*+,t|q!a!U234567$9$!1&1>74Ua#[aJ`S@ɞd?F9^2d3Qqs^2tY7N26J6M#hN1y-loG?gn`bDPu6(āThq 6p?F!_T?@R h^*B?PQi e>amabƫWSuMD,Xud3, utSқJ! \&\xZ? $Zas? V =? @S?d2tR@B8BoRį֧r3Cc EH ]&H[Bѻ?@lML6~ ;m`~b&¨r?+J^t/qO@? [,!rPצ 2XQqH zg?F,53lܿu  ?FM9(֜2Ar}JND7UØB]ٿ?@h߾#?Fd~5ȿMuPu`~dg}-S/9u}DѺ f <-@uušJAV+ǥ8xP?\ q|?FKyhQ~2vTPf=?PoyGV(na~u3vu;*G1+u~ݏֻA_ ^Gϯᬅ?oQo!|b0QJX^?Fsm?@@޻Pg?POWLKz Fw^=g%fԧ!6&]JVbGᬤ? o[oQr!rmz@zg?@f(?FVɱC OPKMgBlVܖVVwVsS3O_ܘ=w?FKL?@jP0A`QʱH=lTG5OxOeuF|Fv=/Fꞏ ,-<60 ]Cs~?Mv1E GZ}v -# &<"ݝK-'>TAFd|6δ̙2{# ,',v #cX#JREB'~5-O$ ,RI~  `ܝ-C-X-_]bd% ,Wl' 4%ŀ>-խ@ײc& , Ǡ4 \lb\c>-R땳J ' ,+E :{(b\s"=]& a:U( ,/?Fb\.bLOOMևQ:U) ,!`3?F k?%6fSԿr`* ,Oڿ?F&Kba,e~Lʴ2ͷ+ ,b d?FjFŋݸML, ,Z׺ı?F bҢu W%r;z- ,TUI8?Fs%:v ~LSa@ . ,3Pވ?Fb^vO$)yϊ&Lؾ1/*mCe%f(~5JOAjuLīt~eq>aT~.j&],_10y՚?Fr`QSٵ?F艿O:McfdilFU1i;}m&R F$w|!l~1`-?F~J~ 03y<$-t9BIL{HiG,LDd|jph:OE 4b\{~-K 6,Ku20e%+~L-r; 7,kh}6`E׻L?S)` {A8 $Fٞ@`o?F%&0MuPu9KdfǸ;}-UL󥶚!s@+C9,*}3?F:ט26-*NY'| ݑU8am?FYe~Kp?@ŮM?F@_O`P jBނ> l'xk超VSOB;6{.f9;?@ v%e??Fh1*o/m_~!Wx ~)j |ALyUƅ?PbO__<J+t?F"e?@'IȂl:xl@׭9,&͓S2&n&Yۙo> =~vU^4Q?@,z"TEo-<[?|8q&?FCv?@s&Ŕck>\ :A:z5,7ح-idsjѦD;gcZT#n$!$ɞd?Fх@Z f<x.Ϗ:"r 23ED'佴9Ki PyT A$))X#!('0Uqŝ)) (h(J TEI 3aAU@jZ?F({~+?P >uA` ?u#ΕMJ*A )83*#<VQ 9jQ 9~Q 9Q 93(QA = Q(Q.$* BT`t &h)&4t   4t"z"pbE#"J>U2zGz?@9 3>+6A@"b]8bk9x;x6N2 !\4N%323326 2Mc2b"k9Kh7N2ׯa : R;l   4"ABoogr#5"Ap(U3TH P/?@ yjPvf MuPu@YF]ul9;VmMgHr f 9LTBUx]Si\QE[?MLx/r?FPzQ- %YAxlQY?U . [ ;;\upQYF)$r[.Fxai%?F 6?w\^ W-\Xj ~ɽ7yކ}dOflA=$'p$`4U@x@4S>aai6$xi'e!aS#8&`iMiI51Xԥ'0U6PE0 H?>_;s 枹\$qG"F8 T\ #] 5OB d_ ~do@+o[sGx ofj [n XWr 85u h,y | F֛M  6ψ  ܏ 0< 7(3<ϖ NX5< 7< 9<Z^;< ><+ <) &UFD  h(^TYYBUFjZ?F~??x<F BPG(?P } X ]B66]  TTUTTT"9Td9TȼHBU?F? ?B@L&d2?@-Q(\.,c(A.sU!&(/)1(  0%YB`'FT,serv2,comput"4di0t0ib04d0n0t;w*0rk!ea| (SG& i?!3E?? ?| wp  p | qw qwqw{pqpqwqqpqvppww'wwwnbwqpwoww6zwxvDrag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aabjZֿ~??cN׿ mF1??*t {V↑T*J?@ ?UG DF P# h @T(PYY# QU@jZ?F~?tP} u` ?u#2>D>HX DHlHYHH EOe.O4:DDXXll*k'"&J",':U2%5%4 ?"'{4b0u{[`:Q1#26"*!^ U9$"3&x9"L61 2!'@>e@ÿ@qn@?@fB?BmDcF0)B-u/@`-1Bu@rCC5GAB"2C9uv`u `"[ۢ b!]u` %3Qo1o7B`?CopyrigPt0(c)020P90MPcPosPfRQrPQaPiPn 0Al` XsbePePv,`d/`VPs_SBNcPm!#E5ab3P=` o13dX45CB ^8=%3p63dz6Pz6 v24#%3+0U'rz3]Jge<^AE U#D5m Hq5twL5t{3t{LEt{t{y {et!{|tYwmAdaT׃IUBT$1H@a@a20)L21632CLB3P1$125jb6w  7C|hh2E)*dQ 8ŔIQIQA11CB;1XrbYqea>!bz1AE:FG$18dT=`XQj2`]r` M`n+uPaPt+arp` ?bup` ? B=ݙ`S,t']p5#mQ-݁<9odm'Qh>qݏPT'._t'xVf@>pÿЅobZbq [Nܒrr$ aUvvvrsU"`Roj[16 beI`bb __br@muP`TaSm1u _u'G1G2Ab[a ahaauhAaYypP` u*`To`o` axx%D5f_d`&b鄮pSF3s͵NSYJCb rV@̓@e8d=`LqW,@r B:р.ǏR}qaqahYV䐷Kn ` %݀P&S41qa`NEWORK`2H Po!RRIJSQ*io"ohAo'0Ua?!0oHD # =hj0>T h]]9  5AU@jZ?F͂T??Fx?SF?P6 jt`  o?tk[>(A Vu aSuo.]&A]  *ԮJU2zGzt?@L#&A@bA#z7 5#1bO(b])j+$j&[ "*(w "?& ?AU$l/%B115 `?CopyrigTt (cu)Q02`09Q0uMI0cG0osA0IfO2@1rC0|1aO0iA0n.Q0 WAl0 G8s2Ueo0eG0v0d0"1E]4MŤ-&3 &7&l>]Uhz811U!J!u6?F+\.>djIIa? >"(EǑ I%K9E 5EU . K ;;5QIWEEEF _KnSA?8@@Bu?FDR> ?Nk"\6`bmMM\j=am {:e P> #? D"? 5-g?j4B7!B{oogr57!ibDAbE9 MuX7_'0U~rN!$a)5 5vIzHD # =hj0>T h]]9  qAU@;?FI5K?@xEL?6ѿP6 t`  bm&Qo?t@@L]WI,#u aiuoL> JU2zGzt;?@L?&A@b}#zs q#1b(b)+$&[9#H",ɺ (wH"?& ?A$ /%9#BV1V15 `?CopyrigTt (cu)02`090uM0c0os}0If2|1r01a0i}0n.0 WAl0 8s2Ue0e0v0d0"O1E]S4MŤ-9#b3 b7&l>]Uhzt1.A!JN!m.%-+0djV1ax߃S(FJ-&?F mO"> ?Nk"L[Majnha_:e P> #? BK=o? n-?j4Bs!B{__Wr5s!D8E6V 6?wj_|_ ^XE.U@z T6?F @' d_mOoT \VyWxRkrVo_bVh*g:n"'UaEjz36>CN>?Bn}]zGvN7V iDAbE9 MX+G'0UJPN!4ae5 MaHD # =hj0>T h]]9  U@jpiH?F^?@$?F]F?P6 t`  !a&ao?t,F=۳=u;u auo>J2zGzwt?@ʐLAw@b#z1b](b!).+I.&[-m(?0& ?A$I0/Q%!!5 `?CopyrigTt (c)02`090M 0c 0os0f21r0@1a0i0n.0 Al[0 8s_2e30e 0vq0dS0T"!E]$M-# %'&l>]Uhz!1!JF% djc~YZ(_N9zOMGE%_EH$SwO"K ңHE ^&_8_WE_OqOHOOi&DAbPE9 MX7'0UUfb>!$a % f1jHD # Uh4>T#]]9 M5AU@jZ?FL|+?@?F({~?P6 JuM` ?u JYt )t7zEA2&L_D?. > >tJU2q K?=@MJ&A@-b9(+bG)T+T&J[#"#a?& ?AH?/`)#115 {`?CopyrigTt (c);020G09;0M30c10os+0f92*1r-0f1ai+0n.;0 Al0 18s2eY0e10v0dy0z"!4B#e-?3 7)& b 0K8>U# ]A]A "1!ъ!PzQ <%OYAJEU . K;;\%W%EF($L[.FX5Eai%?F 6?wL;] W-\TB⤲8?F@&SA?F @ ?Nk"L'`bmMW_Ye[ٯ7 VK=F: [jr ? D"? XZvD?ta@Boogr5;!QEx]SiLO MLGXa~WOTZiAle59 XG"'0Uc&N!$05 .HD # =hj0>T h]]9  IAU@K?FOgVb?FY%?Fwᳬ?PJW?>t`  ^Z?t#ə.E @x?r?/{4܂ G _Z+u u$ >  J JpU?43f<!.&P?b3bbfz@1bAe&bq$d 2zGzt.#@LT"&r(~&i$q)(+}'i"~*#81815 `?Co yrigTt (c)o02`09o0Mg0ce0os_0fm2^1r 1am0i_0n.o0 Al0 e8s2e0ee0v0d0"11E]54M-#D3 %D7.&lUh#7 V1#Ai!J# F/?B1B  VRiAAbE9 MX G{W'0U*R2N!I$a {VZUHPD  # #>h0JTpERI MU@u6?Fjc{g&?@%r`5B?Fm_F:Is?HNtQ`  II?t#]  _ii$!`kNu  iu%wj>M JQ T       "@&&JNU2"?H@Qs#N&A@b(bU)++&RNp}#>H1#19 ?#bbbz| R&/5R}#11`?Co0yrig\t (c)02h090M0c0os0f21r0Aa0i0n.0 Al!@ 8s%Be0e0v7@d@21a4t#-}#3 %746lJ#$JUp5 3 M19 1!q(!FnElrkRt# 8$kcD?@숒@)?FP?P"EkU |1\iOT/irvs}i>`_,of :m ,M ?? S&d2? *b?r4B!B oo1gr #5!>%(EQOOOO__FAc1_C_ D4ևS]_o_yRX+{_,__ #R__ (YQoSo+o=osd {oEeooooooFyUy{* hDVW(I X"c7I!pg bf'iMjSE t%XyG|'0UŢŞN!O4i |UGD # hz0TdYYBU@(%)?Fxg^?@0߯H?Fs7Uݹ?P} t` 87?t#_)TeΦu ]ukv  ̝L&UUU&I&3 U!!`?CopyrigPt _(c) 2\W09 M c os f"!r 1a i n}. Al00U (s42e0e uvF0d(0'HS$#-## 'I?k=#ǒ 2j$B##0U'BM3@&@F0Yk} #HA%DKb5DK3DK5DKED$!GiAZG5(|IDFX7yW'&Dŭ6!4YA yVZHD  # =hj4>T!]]>#AU@0߯H?Fz)e??F˞9q?P6 t`z  ?5t# rXѮu)Nu;):O]ע0 &> # " "+"+"+"+" $+"T-J[U7 ??& bA@ 2b4-#2zGzt#+@ Li68!6 ?}; 72U!:B#AA5 5`?CopyrigTt(c)20F@9M2@c.0@os*@f8B)Ar,@eAa8@i*@n. Al@ 0HsBeX@ej0@v@dx@)21"DM-,;?C G& l>]UhzAE!A#!ְ1J`#@{&pz?FUy{?NT,dKj&b&R&M/8T9K-q?F@F?FdG0 >Nk"?YE*]\LThKjfGD&Qhj ?iU3UGe&Y`?@/Jb)h5oWKoWo;èKod}l$ro`nE2K?Fˌ%4G{?F -q? eZR^{|\?6?vodmP}l>MBe 9 N 1iS? 1?grl#51:PO"4ga@Sq(UE^@O|ǐ[`ߡa v2rbA @3ijD&}laqOz o?#WHZ'Qu=*[^N?F]%P?@O&@ c?FаM<n ?` eb0)\(Pfodm}nv}l?V5(?q$Ix[cN#W{ #iA@&QeE9 MX''0UjdN!0 /HD  # =hj0T h]]9 #]AU@}%?FR$,?@6#V?Fc_3֡w?P6 u` ?u#t  3zM%t3ws%.<%H._'B> #PJU2N贁Nw[?@ʐL+&A@wbu](i+bk)%+&p%#4">9"<5!?& ?M#bbb͓z$ p&"/%T%#L1L15 w`?Co yrigTt (c)02`090M{0cy0oKss0f2r1r 1a0is0n.0 Al0 y8s2e0ey0v0d0"E1E(]I4M-%#X3 X7&l*>(UhE j1#$Ac!J`%#@5e$_F??!foA3nBM( V?FJ-R?@HQ??FS!R?P| llHL6VLD5E+v;*AůʙH: 8snP%$? k?Q? \?4_!__WrA5_! R,U3OC@IL?F4~Kz?P)Oy޾ T!]]>#IAU@܋?F2Oa>?@#r`5B?F*ݷ?P6 t`  >B?\oEt# ŖoZu 0Nu;Y:|8>$# JpU>##<?2& ?5bbbz@b#ANi&bu$'h 2N贁N[2$@ LX"D&v(&m$ :;T'm"*B#d1d15 5`?Co yrigTt (c)020090M0c0os0f21r 1a0i0n.0 Al0 8s2e0e0v0d0"]1"a4M-/p3 p72&l>0>Uhh= 1#!eJ`#&FNTM\jh1B,RBM(!JoUy{O_ e@ So4(D@^Tw?F]֝ä ?Nk"?w_KT\T+\_(Kjӷjmplhj -`\TPQE\Uui,St_o u~!ՠXEO9= T?FL?;uQ_Pm"rA @3sjQ1lğ=GoYniAleE9 MX|'w'0Ur^N!M$|A vzHD  # =hj4>T!]]>#IAU@܋?Fj?@2r`5B?F^ݷ?P6 t`  >B?\oEt# 6ΠZu 0Nu;Y~:#&}>0m8>  PJU2N贁Nwk?@ eL&A( 5bM(b[)h+h+$h&#[-M$#?& ?b$Z*'*B#O1O15 5`?CopyrigTt (c)02U0090M~0c|0osv0f2u1rx01a0iv0n}.0 Al0U |8s2e0e|05v0d0"H1P"L4M-/[3 [7&l>0>Uhh= m1#!S!J`#*&FPUy{_?NTMjC1gc RVMʣ(D#@ ![?F"$. ?Nk"W?IKTLTcKjRlhj p=' (*!)i,SO2Kes9T;QEGUFw6qX}__TM7fTZT\Dž}_P^52XOES"rA 0S#Es3iAleE9 MX|$Gxw'0UrIN!4gA xvzHD  # =hj4>T!]]>#!AU@܋?Fc_v?@#r`5B?F*ݷ?P6 t`  >B?\oEt# ap'EZu 0Nu;Y:|$># BJpU>#͙;? & ?5bbbz@}bAA& K&@ 2zGzt?"K@ L0"&N(bM)+TK/8Z*B<1<15 5`?CoyrigTt (c)s02009s0Mk0ci0osc0fq2b1r1aq0ic0n.s0 Al0 i8s2e0ei0v0d0b"5194M-t/H3 H7T &l>(>UhE=3Z1#E!J!FENTMjN@1h(NoUy{OO e@ o)4(D@^Tw?F]֝ä ?Nk"?'_KD3\T+\(Kj?ӷjmlhj P\ DiAlePsI=MXsG'0UzbZ6N!%$0 sFEjHD  # =hj8>T! ]]>#!AU@܋?F*?@#r`5BW?Fw?P6 t`  >B? \Et#տ|u l4RQu?]>I$>I# JpU>͙#<?& ?9bbbz@b#AE&bQ$$D 2zG[zt#@ L4"&R(^&I$Q)+]'I"^*Bh{.M#To1o15 9`?CoyrigTtk(c)k2009kM0c0os0f21r1a0i0n.k Al0 8s2e0e0v@d0f"h1l4M-:?{3 %{7&l>(>UhE= `51#I!J49fAn^ R)X f"B!Jui,SG?RSlOS u~!N]8-19= T?FL;uQ ?Nk"?YVTQRXQOnğ/=i n (\ wTiAaePE9 MXLg'0UbZiN!)$0 Lf`jUGD # hz4TYYT#BU@5?F;?@ t2?F`0 ֺ?P} u` ?u#+/8<&L9`d<ft99(.8P8L``Uttyt mH 8"tC"hfc!N&>'nJ!O%X'm= 'p ~i##0U"K?@&S#a!1!1*"`?CopyrigPt (c])X020d09X0uMP0cN0osH0IfV2G1rJ01aV0iH0n.X0 WAl0 N8s2Uev0eN0v0d0"14J#B-#-3 -7#^=$.6#@DFPF B$e 0^dA\C #HA%DK%D8K5D`KEDdKEDg&Ca_'TAA""(Pa%288BKc`DcE ciha5 6rX7fg'$)F!DA ffzjUHPD  # #>h,JTEI MU@jZ?F@s??FX7`/?HmNuQ` o?u# j>tMtQ 1@t PATOQ E O#l|O6,2c J^vNt, "t "QwNbo ?!FVxNo]2УɆX3BUYU>VZ\)_ W거QUTAQ LG4CaCa_* Q_*____ o2f 8CT]?FoYDȡ?@ ~1pc} 9dS0]Yb<=p\/_ RT)4HtvzI!| ?^_AV,uݹ:4Z\o &Ja ʆXBU 9A1p@߄ߝZ\X9 (p\P΀dˆXEBUp2t Z\5q[,=6B҆XaU̓쬏 qXa>YU . [[ ;;p\Ua>YF`rZYoQUaai%?FzP4Z\^ W-p\] xTy8?F.?@@SA?FWk@ ?Nk"_|5`bmMp\PB|y[7 ơ|`?])?p*FWAX|a筃,H7~Z\?bxT?:!G4QڡUeB_T_f_x_DOOkoooZ}u?FU2Ty9=ŏsҟGO"vP_?@mlփ?Ff>> }= R3|Ofѡ|&['aޯ)d3#ux"@4SK 6ASʎy'e>'"Y`r,iMm׹ ߵl%1X~G׷_'0UJ26L50Ov ׶HD: # =h4>TB#]]9 TqAU@1D)?FL"ߛ$??Fٵ #ָ?P6 u` ?u4 t  ]<)t7񿗯)2)LEkL>  JtU2qD ?=@LC&A@-bu(b)+&񆤍[=#L"#a?& ?AH{/)=#@1@15 {`?CopyrigTt (c)w02009w0Mo0cm0osg0fu2f1ri01a; ig0n.w0 Al0 m8s2e0em0v0d0"91=4MB=#e-OL3 L7&l>  U#,|A|A9 $] t^1*=# #p Kw&&J`=#R&F 2'_b0CwvA kRqVM(~"!;ɡ?@<3?F ?P-DT! ;d1?Y=:ZTO㿂f{OaB J4 13? v,? (N_?r5w!:8oJo\g"a@jS(.8R!ZFI nx4__ D_U5U,VS?@g$ ?F~4,ێ~@ 8_H_ZTml`KDfl`'E4q2d8R鿃oo`rmkod&'aE2%_7USr(A@z#y3ae&b{, fZT5sae~t?FG=Va|7>-\氹pAiʈ$%?F(XoZ1a|}%\Iii ^WB^:fvEZT˒AiU?FAx߾Ya|k#ӝY~/Yt(Ae o0AleP59 MX=GL"'0UŢbN!40 O5 |HD: # =h4>TB#]]9 T]AU@R7)?Fy߈C??F"ָ?P6 u` ?u4 t  *5y")t7n)2)LI"+BA B JU2q0 ?=@L/&A@ybm#zc a#-bK{(m {(+I&)#Kڬ !?& ?A"&g$bbu/b /%)#Bo1o15 {`?CopyrigTt (c])020090uM0c0os0If21r01a0i0n.0 WAl0 8s2Ue0e0v@d0"h1l4M!E)#𤲝-DO{3 {7&l> U#,AA9 ] 18! #p %J`)#@~t?F # 0hU-~-/HA RVM(ET"rYD?@J-?F-' 9d 0_Y b%r\_oӫ([MFoFl 77]8>!Zݹ:4\\o?gƭkdQEF5W4?@A=?F[Q`??P-DT! :U^Zs[ #l@*p9lJjV\\l_ I&vpkhAzi!J?F߸TF\\Ͼ\zT khzinA9f@.mY <\\ԕ$ ,S{khAzi׍8r?Fį^?m ? ~_5 ә(Ae 0AleE9 MXlGR'0UuőN!40 ~5 ,@HD: # =h4>TB#]]9 TU@~t?FYaJE??F? ~?P6 u` 7?u t  }A_)t7Ǫ+)2)L^A]>REJt2q?R=@LA@-bbJ )+&L ;W!?m&L ?A" &zbbbOz /R;%!!5 {`?CopyrigTt (c)(020409(0M 0c0os0f&21r0S1ai0n.(0 Aln0 8sr2eF0e0v0df0>"!$MDO!EY-?# 'm&l> 0>U#3 -A9 B1 #p ;%J`F(jdO C]Se֑  FM(HC-O"K[%qU5)UuBТ:DY=~W\GUE2OE#rA 0"S3QhA%YB[)xIB_STD(Pd 0Ale59 MX7|B'0UbN!$1A5 fjHD # =hj0>T h]]9 U@/?Fxpz?@]JQ?Fk],>Uh@ !f$; hp _Q%Jd(jcZ(sEp!$a VZHD # =hj0>T h]]9 U@~t?Fxpz?@?Fx?vÂE?P6 t`  }A_?t#%_ ,u auo>J2zGzwt?@ʐLA@bu+b)%#+#&!yHa$?x&L ?A+!#+,1'!!5 `?CopY rigTt (c)(02`09(0M 0c0os0f&21r0S1a&0i0n.(0 Aln0 8sr2eF0e0v0df0I"!E]$M-# %'x&l>],>Uhh 1[$ hp  F%Jdjc%O(Eq!$a VjHD: )# Uh4> T]]9 M#AU@#ܡ,?Fb?JP WJtM`  ?t# AJb $>h g JQubhr6 u!>h=U7Jyb?!A?3& [AJ~CA@Y"wba)b$a)'ba$2zGz3#@MJ&b*%w$`*Q+'Y"**F1F1`?Cop rigTt(c)2009Mu0cs0osm0f{2l1ro01a{0im0n. Al0 s8s2e0es0v0d0?1EC4*-R3 %R73&l& UhVE9 `d1#Y!  FFU 7C@VCi@Ale759 XW'0UjR@N!N$0 VHD: )# Uh0>Th]]9 PM#U@X?Fg.?@DE`v?FepA1D?P JtM`  ;0K?t#˯ yh:.A>j# ixsj||"yy h|yy"s"j|,"s," |J""y^" yr"""y"/y" a|"1y""8y":y"";y"JU2z?Gz:1?N1HSJVAL0bXbY[R[VJSON9;?Ax74Ual#aX`S@fN:O6?F9^2d3QqsR^2tY7+"LN26J6RJN1v{+0?F2rn`XDPk6(āThqZMiڲ?FȒ?@%~?džm@`?PR߷i e>amaXƫWSkMD,Xkd3, ktS?J! \&\xZ? $Zas? V =? ?@?d2tR%߀@8BoR4̧r3cu>XRVSwSy?@r$Wè ;m`X&¨r+J^j{/qO@ [jrPͦ 2XQqE>L?F,D?@ cK'ةhzq 6ѱn|3wsW\ۉ>53lҿ侨gnxP?Fa"&~̜2Ah~sJN:@8PKNWM?@0R?Fw+PuP~y`~dg~~s̜ʪ}Bk3a ,?|IF%̜O,nA3O"?̜g'R S;x+#]Ǯ.uǥ8nP\ {r|%ʿs?Fcj˰?@3?FJ?Poy=V(nxW~u3vk;*G!v+u~ݏֻA_ ^=ů׬{5oGorb&Q"P C.?@M:P̈́} ?PNWLKz Fw^=g%fuԧ!6&{]JVbGᢤ oQo׬Qhzrmٿdlƣn@"N@0?@NPXcC OwPKMgBlVܖF{VmVsOS3E_dNF+P?F_iVJ͸?@9;+0}0'Z,H3wlTG5EnOe{uF Fv=/<~R2d0Pm%s~? MvO1; ܿ;t l h-`w?F?6z?Ϋ9W7FOQ1}M4ڔC͏&ِ1Wi!~RѪV? el 3~]_>-#O &2"ܿ#˕G GWAS?@nA8 ?1ІCѵzT]4-'>T7Fd6Ĵ̏2q#~R|Rl uްJREB'+-E$RߎD~ CXн-C-X-]bd%R| j#$ 4-խ@c&Rf^+ !̠Bd% c~4-Rꕳ@ 'R[\e'? }ķp)~ s"ޗ=?]& as(R lM?FAo .bLOMQs)R ^D^*%6VIrV*R2T?F8]X^*a,eLʴ2ͭ+R ug?FdpA1DݸoL,R;0 W%r;p-RH)?F76˸ LSa@ .RPe6˜R|)yϊ&Lؾ1/|EԈ1f?FFX ر}+ ķ&OjuLīt[q>aJ.j&S"_10|*?F `Jԭ%1+.nNMcfdilFU1i1}m&H F$w|!bt1|q59>?F>FK׀*F/BIL{Hi<[cԍ(=Pї!32$f ˂}sD|2k!f{30%_ʣz?T `c`Tw4G,~LDd|`pta?FVynZ{~~-K6~Ka0?F>&Dw@}|%+)~K-r;7F?FTa|E׻LS)`qA8|}FSP`M{ r?FhPuS@/}Kdf1}-U{Ls@+C9\}K;:*N}O'| ݇Uaqyli!&,$e?@hu?FA3]{ӿP jBނ>\'xk|OVO;|Pq2.?@`Ȩ?Fn |%c_Wx ~)j |A LyU{PbE__<|*&G&?F4J?@2s+M{0xl@ף9,͟S2n?&Yۏo4=|4P `RZC?@b* o0Z d֣r~Pz;'Uo};}לSU>T|m?F3|TsDܷ[ڣ̭?|X?F _PМؓ?@1}v򅗫0z5,7-i~ dsjќD;gcZT#dfN:6RDž@2]Kc$Lŏ0r ڝ 23E솤Dʟ佴/AiऑTAX'0Ugœ 2UGD # hz0TdYYBIU@zUϰ?Fz^?@#ܡ,?Fbݱ?P} t`  ?t#H$IpZίP!::8vgpqu B`Ufpp5uU!!`?CopyrigPt (c)J 2\09J MB c@ o%s: fH"9!r< u!uaH i: n.J _ Al @(Us"eh e@ v d  #S$#- #l# '?R= # &#24 6 6 2$ZB# #0U2 3@& a#3~  #pH1%4GicP#5 6X'.EG'4 6%!4] EFYJ_dH >;s w2mUqCU_ܾF< #< ߐ VOB f ~d,d @{+U'=h[sG(<Áf<t 8<* <& < < =֯ Fқx= X= 6= H= = Xp>R 7r> Nt> v> _z>= *9(}>g <9> V~> { /P> %>: 8?_52 G"UFD  h(^TYYBBUFjZ?F~??x<F BP(?P } kXt BW66 W TTTTT9ȅH?Q?G ?B@L&ɯd2?"-3(?\.E(#. sUk!i&/J( G 0gB`.email,SNM,serv 2,co puT.3d s.r b 4d n 0tw0rk!e^| (QSG& q ?%7I??? wpwp pqwqqqwqwq}pqqqpppw,wwwqqgawqp~wwww;yDrag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aabjZֿ~??cN׿ mF1?? m{V↑T*J?@ ?UG DF P# h @T(PYY# [U@jZ?@~?tP} u` ?u#2>D>HX DHlHYHH EAEdR9.&؍>DDXXllRu'9b"",'US2&5/4&3 ?"'4Wb0{['`:[1#2!6"d^Q_9$7&9"/L6 2&!'ݯ>o@ÿ@qx@?@-pB?wDmF03Bu9@`҈-1Bu @r#CC5 ",CAB2Cm9u`u `"[ b!u`/3Qy1y7B`?CopyrigPt0(c)020P90MPc.PosPfRQrPaaPiPn 0Al ` Xs$bePePv6`d"/`VPs_SBN cPm_!#5P8k` 7Fay1&3db4&5܀MB=/3z6&3d66 2&4#/30U1r3]%ge<^AE U#"&5m Hq&5twV5t{3t{VEt{t{y {etd{|tY wmda*V_BTAJa$Ja&203V21@3 2MVB3Z1125tb6 ta$taC|èEhhPÓnQ* ϔ8ܔAPꓰMB111;@cqcqba>*Ab1%EQF^.1XA#8dTG`XQ"y`])r` M`WnuPaPt5arFaiQ` WEqiPm6`nPvd{V5QX]1PRd*ơ ]`ue`bͯ߯@30! P`r@RdSH@ȱ]C5D6bQ۱eʿܿ{"\ ϬAP9a:B`諸75^ϖϬ% S:bi`#aweT ߬ぶLPchCekT}ߏBalB`i`g̨9@߮,RPoڂ|EZ\@ =phDBU T)?ar0TPpVrKB` B`sR;IY`A Y`Q@;bmr:PeExab!gD"qQr2w`ijJSCC ` TsR\͒kXV` ?ON`1ڒPN`SbY`(|~PEe`a 蘒Z Nwbk4a+.2`\d: IpadB`5cwϯJ)nĺskAx/&/ImTat f?a ];a£rl/kf//ő R pa/a//((/&?4/M`Ci?5?'+ pu"tPf!?BkQ OO"Ȁ\=O_OOkv(OOKHdBQ#CġHC` Wc!wV_ _ C]0ah_z_yi_'`M@m@_2d__vkpoo.KOB%fy "(p5j-T^u uqE珽 ST1.i1xACw>門ÿތc$bel erłłՆ߂^B2`RoUK=e2jrb ]]br-@O"Wyrl]u``dvx~jc*<Q_c--4A4Bj(6yB1B1*P{£qqqDqcҴzQaig6``!-uA`}ż @avh{zI5_}v&ﲄПF3s͵NSYFvy߂f!@v>8M{>6M>Ocլra~g,@wBQ&8P\UqUq}zʷ@ifz}!` %P&4odAA첱UqNNTWORKJeH0P\1RRISQBito̔3GQM'0UƗ?Ϳ10WƕHD # =hj0>T h]]9  5AU@jZ?@͂T??@x?SF?P6 jt`  o?tk[>(A Vu aSuo.]&A]  *ԮJU2zGzt?@L#&A@bA#z7 5#1bO(b])j+$j&[ "*(w "?& ?AU$l/%B115 `?CopyrigTt (cu)Q02`09Q0uMI0cG0osA0IfO2@1rC0|1aO0iA0n.Q0 WAl0 G8s2Ueo0eG0v0d0"1E]4MŤ-&3 &7&l>]Uhz811U!J!u6?@+\.>djIIa? >"(EǑ I%K9E 5EU . K ;;5QIWEEE@ _KnSA?8@VBu?@DR> ?Nk"\6`ObmMM\j=am {:e 뇿P> #? D"? 5-gg?j47!B{oogrK57!ibDAbE9 MX7'0U~rN!R$a)5 5vIzHD # =hj0>T h]]9  qAU@;?@J5K?@xEL?6ѿP6 t`  bm&Qo?t~@@L]WI,#u auoL> @JU2zGzt?@L?&A@b}#zts q#1b(Wb)+&[9#H",ɺ (;H"?&L ?A$ /R%9#V1V15 `?CopyrigTt (c)02`090M0c0os}0f2|1r01a0i}0n.0 Al0 8s2e0e0v0d0"O1E]S4Mb-9#b3 b7I&l>]Uhzt1.AF!JN!n.%-+0rdjV1ax߃)(@K-&?@ mO"> ?Nk"PL[Majnha_:e 뇿P> #? BK=o? n-g?j4s!B{__Wr5s!D8E6V 6?wj_|_ ^XE.U6Vz T6?@ @ d_mOoT ݬ\VyWxRkrVo_bVh*g:n"'UaEjz36>C~N>?Bn]_zGvN7ViDAbE9 MX+G'0UPN!R4ae5 MaHD # =hj0>T h]]9  U@jpiH?@^?@$?@]F?P6 t`  !a&ao?t,F=۳=u;u auo>J2zGzwt?@ʐLAw@b#z1b](b!).+I.&[-m(?0& ?A$I0/Q%!!5 `?CopyrigTt (c)02`090M 0c 0os0f21r0@1a0i0n.0 Al[0 8s_2e30e 0vq0dS0T"!E]$M-# %'&l>]Uhz!1!J@% djc~YZ(_N9zOMGE%_EH$SwO"K ңHE ^&_8_WE_OqOHOOi&DAbPE9 MX7'0UUfb>!$a % f1jHD # Uh4>T#]]9 M5AU@jZ?@L|+?@?@({~?P6 JuM` ?u JYt )t7zEA2&L_D?. > >tJU2q K?=@MJ&A@-b9(+bG)T+T&J[#"#a?& ?AH?/`)#115 {`?CopyrigTt (c);020G09;0M30c10os+0f92*1r-0f1ai+0n.;0 Al0 18s2eY0e10v0dy0z"!4B#e-?3 7)& b 0K8>U# ]A]A "1!ъ!PzQ <%OYAJEU . K;;\%W%E@($L[.FX5Eai%?@ 6?wL;] W-\TB⤲8?W&SA?@ @ ?Nk"L'`bmMW_Ye[7 VK=F: [jr ? D"? X?ZvD?a@Boogr5;!QEؿx]SiLO MLXa~WOTZiAle59 XG"'0Ujc&N!$05 .HD # =hj0>T h]]9  IAU@K?@OgVb?@O?@X5?PJW?>t`  ^Z?t#ə.b?T@[ u?/CG<_Z+u u$ >  J JpU?43f<!.&P?b3bbfz@1bAe&bq$d 2zGzt.#@LT"&r(~&i$q)(+}'i"~*#81815 `?Co yrigTt (c)o02`09o0Mg0ce0os_0fm2^1r 1am0i_0n.o0 Al0 e8s2e0ee0v0d0"11E]54M-#D3 %D7.&lUh#7 V1#Ai!J# F/?B1B  VRiAAbE9 MX G{W'0U*R2N!I$a {VZUHPD  # #>h0JTpERI MU@u6?@ic{g&?@%r`5B?@n_F:Is?HNtQ`  II?t#\  _ii$"`kNu  iu%wj>M JQ T       "@&&JNU2"?H@Qs#N&A@b(bU)++&RNp}#>H1#19 ?#bbbz| R&/5R}#11`?Co0yrig\t (c)02h090M0c0os0f21r0Aa0i0n.0 Al!@ 8s%Be0e0v7@d@21a4t#-}#3 %746lJ#$JUp5 3 M19 1!q(!@oElrkRt# 8$lcD?@숒@)?@P?P"EkU |1\iOT/irvs}i>`_,of :m ,M ?? S&d2? *b?r4B!B oo1gr #5!>%(EQOOOO__@Ac1_C_ D4ևS]_o_zRX,{_,__ #R__ (YQoSo+o=osd {oEeoooooo@zUy{* hDV!VV(I X"c7I!pg bf'iMjSE t%XyG|'0UŢŞN!O4i |UGD # hz0TdYYBU@(%)?@xg^?@0߯H?@s7Uݹ?P} t` 87?t#_)TeΦu ]ukv  ̝L&UUU&I&3 U!!`?CopyrigPt _(c) 2\W09 M c os f"!r 1a i n}. Al00U (s42e0e uvF0d(0'HS$#-## 'I?k=#ǒ 2j$B##0U'BM3@&@F0Yk} #HA%DKb5DK3DK5DKED$!GiAZG5(|IDFX7yW'&Dŭ6!4YA yVZHD  # =hj4>T!]]>#AU@0߯H?@z)e??@˞9q?P6 t`z  ?5t# rXѮu)Nu;):O]ע0 &> # " "+"+"+"+" $+"T-J[U7 ??& bA@ 2b4-#2zGzt#+@ Li68!6 ?}; 72U!:B#AA5 5`?CopyrigTt(c)20F@9M2@c.0@os*@f8B)Ar,@eAa8@i*@n. Al@ 0HsBeX@ej0@v@dx@)21"DM-,;?C G& l>]UhzAE!A#!ְ1J`#@{&pz?@Uy{?NT,dKj&b&R&M/8T9K-q?x6@F?@dG0 >Nk"?YE*]\LT_hKjfGD&Qhj iU3UGe&Y_`?@/b%)h5oWKoWo;KTod}l$roҥ`nE2K?@ˌ%4G{?@ -q eZ̿R^{|\6?vodmP}l>MBe 9 N 1iS? 1?g]rl#51:O("4ga@Sq(UE^@O|ǐ[`Ρa g v2rA @3ijD&}l迲aqOz o?#WHZ'Qu=*[^N?@]%P?@O&@ c?@аM<n ?` eb0)\(Pfodm}nv}l?V5(?q$Ix[cN#W{#iA&QeE9 MX|''0UdN!0 /HD  # =hj0T h]]9 #]AU@}%?@R$,?@6#V?@c_3֡w?P6 u` ?u#t  3zM%t3ws%.<%H._'B> #PJU2N贁Nw[?@ʐL+&A@wbu](i+bk)%+&p%#4">9"<5!?& ?M#bbb͓z$ p&"/%T%#L1L15 w`?Co yrigTt (c)02`090M{0cy0oKss0f2r1r 1a0is0n.0 Al0 y8s2e0ey0v0d0"E1E(]I4M-%#X3 X7&l*>(UhE j1#$Ac!J`%#@5e$_F??!foA3nBM( V?@J-RHQ??@S!R?P| llHL6VLD5E+v;*AʙH: 8snP%$? k?Q? \?f4_!_t_Wr5_! R,U3OC@IL?@4~Kz?P)Oy޾ T!]]>#IAU@܋?@2Oa>?@#r`5B?@*ݷ?P6 t`  >B?\oEt# ŖoZu 0Nu;Y:|8>$# JpU>##<?2& ?5bbbz@b#ANi&bu$'h 2N贁N[2$@ LX"D&v(&m$ :;T'm"*B#d1d15 5`?Co yrigTt (c)020090M0c0os0f21r 1a0i0n.0 Al0 8s2e0e0v0d0"]1"a4M-/p3 p72&l>0>Uhh= 1#!eJ`#&@NTM\jh1B,RBM(!JoUy{O_ e@ So4(DF^Tw?@]֝ä ?Nk"?w_KT\T+\(Kj?ӷjmlhj -`\TPQE\Uu?i,St_o u~!XEO9= T?@L;uQ_Pm"rA @3sjQ1lğ= GoYniAlePE9 MX'w'0UrJ^N!M$|A vzHD  # =hj4>T!]]>#IAU@܋?@j?@2r`5B?@^ݷ?P6 t`  >B?\oEt# 6ΠZu 0Nu;Y~:#&}>0m8>  PJU2N贁Nwk?@ eL&A( 5bM(b[)h+h+$h&#[-M$#?& ?b$Z*'*B#O1O15 5`?CopyrigTt (c)02U0090M~0c|0osv0f2u1rx01a0iv0n}.0 Al0U |8s2e0e|05v0d0"H1P"L4M-/[3 [7&l>0>Uhh= m1#!S!J`#*&@PUy{_?NTMjC1gc RVMʣ(D#F ![?@"$. ?Nk"?+IKTLTcKjRlhj p= (*!)i,SO2Kes9T;QEGUFw6qX}__TM7fTZT\Dž}I_P^52O,ES"rA 0S# Es3iAlePE9 MX$Gxw'0UrJIN!4gA xvzHD  # =hj4>T!]]>#!AU@܋?@c_v?@#r`5B?@*ݷ?P6 t`  >B?\oEt# ap'EZu 0Nu;Y:|$># BJpU>#͙;? & ?5bbbz@}bAA& K&@ 2zGzt?"K@ L0"&N(bM)+TK/8Z*B<1<15 5`?CoyrigTt (c)s02009s0Mk0ci0osc0fq2b1r1aq0ic0n.s0 Al0 i8s2e0ei0v0d0b"5194M-t/H3 H7T &l>(>UhE=3Z1#E!J!@ENTMjN@1h(NoUy{OO e@ o)4(DF^Tw?@]֝ ?Nk_"?'_KD3\T+\(Kjjmlhj P\DiAlesI(=MXsG_'0Uzb6N-!%$0 sFEjHD  # =hj8>T! ]]>#!AU@܋?@*?@#r`5BW?@w?P6 t`  >B? \Et#տ|u l4RQu?]>I$>I# JpU>͙#<?& ?9bbbz@b#AE&bQ$$D 2zG[zt#@ L4"&R(^&I$Q)+]'I"^*Bh{.M#To1o15 9`?CoyrigTtk(c)k2009kM0c0os0f21r1a0i0n.k Al0 8s2e0e0v@d0f"h1l4M-:?{3 %{7&l>(>UhE= `51#I!J49fAn^ R)X f"B!Jui,SG?RSlOS u~!N]8-19= T?@L;uQ ?Nk"?YVTQRXQOnğ/=i n (\ wTiAaePE9 MXLg'0UbZiN!)$0 Lf`jUGD # hz4TYYT#BqU@ t2?@D&d2?@$p?@|>׺?P} u` ?u#Lk/89L<`(.88LL`t m۶m3tبפUC~#9#0Up"?҃@/&9#!!!G*`?CopyrigPt (c) 20 9 M c. os f"!r 1a i n. Al&0 (s*2e ej v<0d0'"@!$0#B-9## 'w#^=9$&0#466 2R0$e#$^ P#30%T% 9#LHLA0%XDcKT%XD8cGg&daO^'BTcAcA0"-()Ca0%g2 ATB_6Si@haX5 &X~7aW'o$Ŵ6!40 aVuZHD: # =h4>TB#]]9 TU@$p?@|>W?P6 u` ?Mu t  )At72(L>REJt2q?=@LA@-bb )+&񆤍[Z#?m& ?A/$)R!!5 {`?CopyrigTt:(c):20 09:M c. os f"!r *1ai n.: AlE0 (sI2e0ej v[0d=0>"@!$MBQ-?# 'm&l>0>U#3 C!*; #p _ &J`@4?g8oyƏ C?,'ߑK FMD(9IMBIGE%UZ8!<A% fjHD: # =h4>TB#]]9 TU@$p?@|>?׸?P6 u` ?u4 t  )t7J)2(LAEJ޵2q?=@L|A@y7b #z]-b( J(2+2&*;q!?& ?A"#&$bb/bI4/U% 1 15 {`?CopyrigTt:(c):20N09:M:0c80os20f@211r40m1a@0i20n.: Al0 88s2e`0e80v0d0X"14MDi!EY-?3 7&Rl>0>U#3 C)1 #p| U%J`@g8oyƩ C2,'ߑB %VM^(9IMBIG3U%CUY8#M)U@$p?@|>?tP >tA`  ?t# >b24 C>u\u!.M# *H>U2llf?@9 >A@b-(C-(b;)W+W&>yg–#?& ?3"B-*X*G,e'񩣕p%1%1`?Cop _rigXt_(c)2dW09MT0cR0osL0fZ2K1rN01aZ0iL0n}. Al0U R8s2ez0eR05v0d0}"1P^"4-,13 17&!Qi 0,fUl4#A5C1CU3! !R \box(<v9s?@^!?@sckz%?PD-DT! /[S@K0Lobp׻nxw_gBs 3CUy_@ xh ,J T  M#EMU@jZ?FH2)'*??@n>?P m>uA` o?u#VlMJl -<lA -PK#TdK2(.K<FZnf>t  t3|>b!F**JRuKJ>U2zGz?@9 ?#>O&Aw@b(Wb)+&r" !$NI#"@#W"6 "\M"b)2;'r",r"/I#11G#`?CopyrigXt (c)020090M0c0os0f21r01a0i0n.0 Al@ 8sBe0e0v-@d@7"BMI#3 76@"!"t1"=ElJ Ul4@AAC 9" =Q A(4#UA!=(^!#?@RXM(0 # g# '?DnMN:U~TR\u5i[HmvQ~X3^w='__ '-~XE:UU . S[ ;;h\gU:U@>wR9o\jZ|K5~XAjai%?@@dQ]^ W-h\_~T9;Tꤲ8?@@)#SpSA?@jK@ ?Nk"V`UY5`bmMh\ly[7 / *?<~X6YxS?LR\cpTqUQ g8oy1 cJQ6YD}uϯ?^&S[vm۶modUQ6Y ~ÀC8[H`K?)K?M~X U@:_L_^_p_DA(G!EM_"_]u?@S.~{>O]UM~1xQDuMuRw?@lփ?@2'>w9Z^|)Sf|u?U35~8q3Du$-@8S,/: CYy$'eisa"+ziM̱iٙI@%!XRGٗ'0UL6t5 0f ٖ_H>x;s \<6x,c @LaF?G6 #> 7 XOB Hk:9 ~dlo@+Xh?o[sG?: 8 P(?OE X?I ?L ȓ?O ?S (?V F֛?Z x?] 5Pb ,P߾f P~j xP$n6PYq N؜Pt PSw QVz 3(Q} Q 9!UFD  h(^TYYBވUFjZ?F~??x<F BPG(?P } XZ B66  TTTTTTd &!&Y"/&%'D/+6,k&/TȅHBU??/&:& ?B#@L&d2?=8\.Y+8 >sUQ1O6Pq?)(:  0%$gB`.man0ge]m0ntt s0rv2,co0pu03di0t0ibDdt n0twN@rk1ea| 8(SGv6 ߃m `???(:Lpppp wpppp pqp~pqwwqwqwpwqpqqwwqqp pp w. wwwicwqwwwww}Drag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aabjZֿ~??cN׿ mF1??M7{V↑T*J?@ ?UG DF P# h @T(PYY# QU@jZ?@~??F?Pn} u{` ?Su#؍>>HX HlHYHH EO.LO4:UDDXXUllk'"&R",I'U25ĉ%4 ?"u'4b0{N[`:Q1#2T6"!^U9$"3&9"/L6 2&!'ݯ>e@ÿ@qn@?@-fB?mDcFԸ0)Bu/@`҈-1Bu@rCC 5GAB"2Cm9u`u `"[ b!u`%3Qo1o7B`?CopyrigPt0(c)020P90MPc.PosPfRQrPQaPiPn 0Al` XsbePePv,`d/`VPs_SBNcPm_!#5ab4P=`o13dX45CB^8=%3p63dz6z6 v24#%30U'rz3]ge<^AE@ U#5m Hq5twL5t{3t{LEt{t{y {et@!{|tYwm@Ada׃IUBT$1@a@a20)L2163jajaLBA3P1125jb6w 7C |hhE)*dQ8ŔIQIQA11CB!;1XrYqea>!bz1AXE:FG$1 8dT=`XQj2`]r` M`nuPaPt+arp` ?bup` B=ݧ`S,t']p"51m-݁<9orm'Qh>qݏBKT'.mt'xydf@>p{ÿ#ГobZpq [ܒrr$avvvrs{c"`RQoxi16 e5`(bb_ mmbr@ uP`TaS@u._u'U1U2A-b[aahaDauhAaYg6s(P` -u*`}`ᕁ }`ax3R5Y_dn&bpSF3s͵NSYJQbrVC@ړN-e8%dE%'XLqW,@rb:*<Տ`}aahʀYVYn ` %P&S41Ģʢa`NEWOR+Kn2H P}!RȱRISQĢʢĢ ʦio0oŌh^A%'0Uo?č!0ÎoHD # =hj0>T h]]9  5AU@jZ?F͂T??Fx?SF?P6 jt`  o?tk[>(A Vu aSuo.]&A]  *ԮJU2zGzt?@L#&A@bA#z7 5#1bO(b])j+$j&[ "*(w "?& ?AU$l/%B115 `?CopyrigTt (cu)Q02`09Q0uMI0cG0osA0IfO2@1rC0|1aO0iA0n.Q0 WAl0 G8s2Ueo0eG0v0d0"1E]4MŤ-&3 &7&l>]Uhz811U!J!u6?F+\.>djIIa? >"(EǑ I%K9E 5EU . K ;;5QIWEEEF _KnSA?8@@Bu?FDR> ?Nk"\6`bmMM\j=am {:e P> #? D"? 5-g?j4B7!B{oogr57!ibDAbE9 MuX7_'0U~rN!$a)5 5vIzHD # =hj0>T h]]9  qAU@;?FI5K?@xEL?6ѿP6 t`  bm&Qo?t@@L]WI,#u aiuoL> JU2zGzt;?@L?&A@b}#zs q#1b(b)+$&[9#H",ɺ (wH"?& ?A$ /%9#BV1V15 `?CopyrigTt (cu)02`090uM0c0os}0If2|1r01a0i}0n.0 WAl0 8s2Ue0e0v0d0"O1E]S4MŤ-9#b3 b7&l>]Uhzt1.A!JN!m.%-+0djV1ax߃S(FJ-&?F mO"> ?Nk"L[Majnha_:e P> #? BK=o? n-?j4Bs!B{__Wr5s!D8E6V 6?wj_|_ ^XE.U@z T6?F @' d_mOoT \VyWxRkrVo_bVh*g:n"'UaEjz36>CN>?Bn}]zGvN7V iDAbE9 MX+G'0UJPN!4ae5 MaHD # =hj0>T h]]9  U@jpiH?F^?@$?F]F?P6 t`  !a&ao?t,F=۳=u;u auo>J2zGzwt?@ʐLAw@b#z1b](b!).+I.&[-m(?0& ?A$I0/Q%!!5 `?CopyrigTt (c)02`090M 0c 0os0f21r0@1a0i0n.0 Al[0 8s_2e30e 0vq0dS0T"!E]$M-# %'&l>]Uhz!1!JF% djc~YZ(_N9zOMGE%_EH$SwO"K ңHE ^&_8_WE_OqOHOOi&DAbPE9 MX7'0UUfb>!$a % f1jHD # Uh4>T#]]9 M5AU@jZ?FL|+?@?F({~?P6 JuM` ?u JYt )t7zEA2&L_D?. > >tJU2q K?=@MJ&A@-b9(+bG)T+T&J[#"#a?& ?AH?/`)#115 {`?CopyrigTt (c);020G09;0M30c10os+0f92*1r-0f1ai+0n.;0 Al0 18s2eY0e10v0dy0z"!4B#e-?3 7)& b 0K8>U# ]A]A "1!ъ!PzQ <%OYAJEU . K;;\%W%EF($L[.FX5Eai%?F 6?wL;] W-\TB⤲8?F@&SA?F @ ?Nk"L'`bmMW_Ye[ٯ7 VK=F: [jr ? D"? XZvD?ta@Boogr5;!QEx]SiLO MLGXa~WOTZiAle59 XG"'0Uc&N!$05 .HD # =hj0>T h]]9  IAU@K?FOgVb?FY%?Fwᳬ?PJW?>t`  ^Z?t#ə.E @x?r?/{4܂ G _Z+u u$ >  J JpU?43f<!.&P?b3bbfz@1bAe&bq$d 2zGzt.#@LT"&r(~&i$q)(+}'i"~*#81815 `?Co yrigTt (c)o02`09o0Mg0ce0os_0fm2^1r 1am0i_0n.o0 Al0 e8s2e0ee0v0d0"11E]54M-#D3 %D7.&lUh#7 V1#Ai!J# F/?B1B  VRiAAbE9 MX G{W'0U*R2N!I$a {VZUHPD  # #>h0JTpERI MU@u6?Fjc{g&?@%r`5B?Fm_F:Is?HNtQ`  II?t#]  _ii$!`kNu  iu%wj>M JQ T       "@&&JNU2"?H@Qs#N&A@b(bU)++&RNp}#>H1#19 ?#bbbz| R&/5R}#11`?Co0yrig\t (c)02h090M0c0os0f21r0Aa0i0n.0 Al!@ 8s%Be0e0v7@d@21a4t#-}#3 %746lJ#$JUp5 3 M19 1!q(!FnElrkRt# 8$kcD?@숒@)?FP?P"EkU |1\iOT/irvs}i>`_,of :m ,M ?? S&d2? *b?r4B!B oo1gr #5!>%(EQOOOO__FAc1_C_ D4ևS]_o_yRX+{_,__ #R__ (YQoSo+o=osd {oEeooooooFyUy{* hDVW(I X"c7I!pg bf'iMjSE t%XyG|'0UŢŞN!O4i |UGD # hz0TdYYBU@(%)?Fxg^?@0߯H?Fs7Uݹ?P} t` 87?t#_)TeΦu ]ukv  ̝L&UUU&I&3 U!!`?CopyrigPt _(c) 2\W09 M c os f"!r 1a i n}. Al00U (s42e0e uvF0d(0'HS$#-## 'I?k=#ǒ 2j$B##0U'BM3@&@F0Yk} #HA%DKb5DK3DK5DKED$!GiAZG5(|IDFX7yW'&Dŭ6!4YA yVZHD  # =hj4>T!]]>#AU@0߯H?Fz)e??F˞9q?P6 t`z  ?5t# rXѮu)Nu;):O]ע0 &> # " "+"+"+"+" $+"T-J[U7 ??& bA@ 2b4-#2zGzt#+@ Li68!6 ?}; 72U!:B#AA5 5`?CopyrigTt(c)20F@9M2@c.0@os*@f8B)Ar,@eAa8@i*@n. Al@ 0HsBeX@ej0@v@dx@)21"DM-,;?C G& l>]UhzAE!A#!ְ1J`#@{&pz?FUy{?NT,dKj&b&R&M/8T9K-q?F@F?FdG0 >Nk"?YE*]\LThKjfGD&Qhj ?iU3UGe&Y`?@/Jb)h5oWKoWo;èKod}l$ro`nE2K?Fˌ%4G{?F -q? eZR^{|\?6?vodmP}l>MBe 9 N 1iS? 1?grl#51:PO"4ga@Sq(UE^@O|ǐ[`ߡa v2rbA @3ijD&}laqOz o?#WHZ'Qu=*[^N?F]%P?@O&@ c?FаM<n ?` eb0)\(Pfodm}nv}l?V5(?q$Ix[cN#W{ #iA@&QeE9 MX''0UjdN!0 /HD  # =hj0T h]]9 #]AU@}%?FR$,?@6#V?Fc_3֡w?P6 u` ?u#t  3zM%t3ws%.<%H._'B> #PJU2N贁Nw[?@ʐL+&A@wbu](i+bk)%+&p%#4">9"<5!?& ?M#bbb͓z$ p&"/%T%#L1L15 w`?Co yrigTt (c)02`090M{0cy0oKss0f2r1r 1a0is0n.0 Al0 y8s2e0ey0v0d0"E1E(]I4M-%#X3 X7&l*>(UhE j1#$Ac!J`%#@5e$_F??!foA3nBM( V?FJ-R?@HQ??FS!R?P| llHL6VLD5E+v;*AůʙH: 8snP%$? k?Q? \?4_!__WrA5_! R,U3OC@IL?F4~Kz?P)Oy޾ T!]]>#IAU@܋?F2Oa>?@#r`5B?F*ݷ?P6 t`  >B?\oEt# ŖoZu 0Nu;Y:|8>$# JpU>##<?2& ?5bbbz@b#ANi&bu$'h 2N贁N[2$@ LX"D&v(&m$ :;T'm"*B#d1d15 5`?Co yrigTt (c)020090M0c0os0f21r 1a0i0n.0 Al0 8s2e0e0v0d0"]1"a4M-/p3 p72&l>0>Uhh= 1#!eJ`#&FNTM\jh1B,RBM(!JoUy{O_ e@ So4(D@^Tw?F]֝ä ?Nk"?w_KT\T+\_(Kjӷjmplhj -`\TPQE\Uui,St_o u~!ՠXEO9= T?FL?;uQ_Pm"rA @3sjQ1lğ=GoYniAleE9 MX|'w'0Ur^N!M$|A vzHD  # =hj4>T!]]>#IAU@܋?Fj?@2r`5B?F^ݷ?P6 t`  >B?\oEt# 6ΠZu 0Nu;Y~:#&}>0m8>  PJU2N贁Nwk?@ eL&A( 5bM(b[)h+h+$h&#[-M$#?& ?b$Z*'*B#O1O15 5`?CopyrigTt (c)02U0090M~0c|0osv0f2u1rx01a0iv0n}.0 Al0U |8s2e0e|05v0d0"H1P"L4M-/[3 [7&l>0>Uhh= m1#!S!J`#*&FPUy{_?NTMjC1gc RVMʣ(D#@ ![?F"$. ?Nk"W?IKTLTcKjRlhj p=' (*!)i,SO2Kes9T;QEGUFw6qX}__TM7fTZT\Dž}_P^52XOES"rA 0S#Es3iAleE9 MX|$Gxw'0UrIN!4gA xvzHD  # =hj4>T!]]>#!AU@܋?Fc_v?@#r`5B?F*ݷ?P6 t`  >B?\oEt# ap'EZu 0Nu;Y:|$># BJpU>#͙;? & ?5bbbz@}bAA& K&@ 2zGzt?"K@ L0"&N(bM)+TK/8Z*B<1<15 5`?CoyrigTt (c)s02009s0Mk0ci0osc0fq2b1r1aq0ic0n.s0 Al0 i8s2e0ei0v0d0b"5194M-t/H3 H7T &l>(>UhE=3Z1#E!J!FENTMjN@1h(NoUy{OO e@ o)4(D@^Tw?F]֝ä ?Nk"?'_KD3\T+\(Kj?ӷjmlhj P\ DiAlePsI=MXsG'0UzbZ6N!%$0 sFEjHD  # =hj8>T! ]]>#!AU@܋?F*?@#r`5BW?Fw?P6 t`  >B? \Et#տ|u l4RQu?]>I$>I# JpU>͙#<?& ?9bbbz@b#AE&bQ$$D 2zG[zt#@ L4"&R(^&I$Q)+]'I"^*Bh{.M#To1o15 9`?CoyrigTtk(c)k2009kM0c0os0f21r1a0i0n.k Al0 8s2e0e0v@d0f"h1l4M-:?{3 %{7&l>(>UhE= `51#I!J49fAn^ R)X f"B!Jui,SG?RSlOS u~!N]8-19= T?FL;uQ ?Nk"?YVTQRXQOnğ/=i n (\ wTiAaePE9 MXLg'0UbZiN!)$0 Lf`jUGD # hz4TYYT#B#U@f?FjK?@瘛?F1.?ٺ?P} u` ?ut#nW/8d`<Lg<`9ft99b<!9f"9#9f&9&'9f&(9(&)9<&.9P&P&/9n&*9&(.88LL``tt&&&&(&(&J<&<&P/b(n&n&&&t : zBtBIE GeroBE$G?3龅U~0UB?@4sF}CAAJSB`?CopyrigPt(}c; 200P9MPcPo%sPf"RQrPOQUa"PiPnO WAljP XsnRUeBPePvPdO"kBADtCB-}CC EGC=}DFtC dVV $RtDe\^RdYQ qd*a!gtEd8HjUdd{|dh{Sft{ah{ah{ah{ah{ah{ahkah!{ah!{tah(!{edh ,J T  M#EMU@jZ?F??Fĩ!3ܾ?P m>uA` o?u#jpMp -<p=PKA -dK#hxK2(.K<FZn>t,  t"lgyPb;!Fi&d2u!J>U2zGz?@9 g#>w&A@b(b)+&" !$NFq#2h#".6 "M"b)Z;'"i,"/*q#11o#`?CopyrigXt (c)020@90M0c.0os0f21r0$Aa0i0n.0 Al?@ 8sCBe@ej0vU@d7@_"ŤBMq#3 b7.6h"P&0"tY"eElJpYUl@{OX(QYuq'`0\q ٬\:SضX,Qp? X̏ ,MgX0QYŞ6ex`WYBaZuU4QY[S FP\ߴ_\16 4X8Qo џ 4WTX&tqYˣhMGX]}/s]GwXHQYt@tԚ?Fu\ɢ|~\oDlQLQ¿԰:G޿ ˘~XPU~U%BUT__ZAA(GE]T_f_[}u?Fʢ \9=Ŭ\G_ԑuQuucߟ?@ml?F=^`> P+CzOOߎf] B]$嗿<Љq3ux5@4Sa/JYԹ6TfJ'e0k?iMiIh%1X|zG'0U]1.650/ (HD # =h#4>T#3 >U@Ac?FO|_D?@ !?Foצ ?P6 u` ?u >,2t  f?5dLtW1qcRH_Axcl^?kJ2N贁Nk?W@ LA@b ++b )'+'&񉄉ԑ"?& ?A' !zR @$)$)/J%B 31315 `?CopyrigTt (wc)j020v09j0Mb0c`0o%sZ0fh2Y1r\01uah0iZ0n.j0_ Al0 `8Us2e0e`0v0 d0,1(04M-_/?3K ?7&l> 0>Uhh= Q1Zb!!J`F9A,2 %,VMS(Jt= OMmѱQ~%+UD_!OSUE^8__ {GzoXb52O;"rAQ 0#Qc3iAleE9 MXG'0Ub-N!R$KAB5 fjHD # =hj4>T]]>U@CC?Fd?@?FԬVq?P6 u` ?)u hAk,2t  Rg(LtW\jwS}ժcRV]clMJ2N贁Nk?@ LA@]b +Wb )'+'&𩆑;"?& ?A' !zR @$I)$)/J%B31315 `?CopyrigTt (c)j020v09j0Mb0c`0oKsZ0fh2Y1r\01ah0iZ0n.j0 Al0 `8s2e0e`0v0d0,1P04M-_/?3 ?7&l>0>Uhh= Q1b!!J`Fuz T ʼ)UB ,VMS(UjExK?DZ/`D%Q~%+U\bHNOkTI?$i|UE+Ugr?F9Y7TRY_DU52OE"rA 0#Qc3iAleE9 MXG}'0Ub-N!$KAB5 fjHD # =hj4>T]]>!AU@0M,?F (Q!?@2"\?F21기?P6 mu` o?u $lAl 1@,2<UJt  gttqzh&vJU? & ?Ab5"z@AA 6$>)ub ^(6 D#@ D2N߁Nk?@ L&^(+bl)+y&s,d"y*BB[1[15 `?CopyrigTt (c])020090uM0c0os0If21r01a0i0n.0 WAl0 8s2Ue0e0v0d0T1X4M-/g3 g7 &l>0>Uhh= y1!d!J`@"G3?F9;<#R<M(!A|jL, I%% [F?gGQ%SUl"F?F7K^5˖Q YEQCUESUF]k_T Y0ħ[HOMTb^?FWȬs рY+ d"rA 0#c<Fl~rl r!}iA2gE9 MX0G'0U*arUN!%$sAj5 v,zHDJ # =h#4>T#3 >BU@m?Fyg!B?@u>71?F!A0d6u?P6 u` ?iu >k,2t  eypLtWVcRB )clOODJ? ?Ab "z@A $)Mb 6( # D2N߁Nk?@ L&6(+bD)+Q&K,J<"Q*31315 `?CopyrigTt (c)j020v09j0Mb0c`0osZ0fh2Y1r\01ah0iZ0n.j0 Al0 `8s2e0e`0v0d0,104MB-k/?3 ?7l>0>UhhE= Q1n!T#3 >U@rڌ?FlUM?@MX?FI?P6 u` ?u >,2t  ?ou mLtWWcR$_˟clɽJw? ?Ab "zG@A $)]Mb6( # 2N贁Nk?V@ L\&6(bD)+QQ&K,<"Q*B31315 `?CopyrigTt (c)j020v09j0Mb0c`0oKsZ0fh2Y1r\01ah0iZ0n.j0 Al0 `8s2e0e`0v0d0,1P04M-k/?3 ?7l>0>Uhh= Q1n!T]]>TU@n2L?FIҮ?@y“:K?F[dg?P6 u` ?Mu [>,2t  K4LtWc4cR^rCcl{STJ?0 ?Ab "z@A $Һ)Mb6(@ # 2N贁Nk?@ L&6(bD)+Q&K,<"Q*T31315 `?CopyrigTt (c)j020v09j0Mb0c.`0osZ0fh2Y1r\01ah0iZ0n.j0 Al0 `8s2e0ej`0v0d0,1E04M-,k/?3 ?7l>#aUh[3 A Q1n!sXE/U8όKBI .O"tW/U{ؔG\b# aio?p0sX2O;<"rA (0#c3q_(RAeoiAVAeP$59 MXG'0U_r-N!0 B5 v*zHDJ # =h#4>T(#3 >U@ҙK?F<;H?@jB?FEk9?Pn6 u{` ?Su  A,2t  ןG}LtWҤcRMNcl?\zՆJ;? ?Ab "z@A $).Mb6( # 酑2N贁Nk?+@ L&6(bD)+(Q&K,<"Q*31315 `?CopyrigTt (c)j020v09j0Mb0c`0oKsZ0fh2Y1r\01ah0iZ0n.j0 Al0 `8s2e0e`0v0d0,1E(04M-k/?3K ?7l> 0>Uhh= Q1Zn!T]]>!AU@ꪓH|?Fto?@P"?F%dݳ?P6 mu` o?u $!>2 1@,2<UJt  ghttb뽘)ub^(6 D#@ 2N迴Nk?@ L&^(Wbl)+y&Ts,d"y*B[1[15 `?CopyrigTt (c)020090M0c0os0f21r01a0i0n.0 Al0 8s2e0e0v0d0T1X4M-/g3 %g7 &l>#aUh[3 A]@ y1!d!J`&F?ޓ, W_rv J<'R<M(!kuϢ?FK!TBKQ%WUZ&L#\ = GZɛXEWU8(?/&?F9I'\]\WHOC@}?F,^ рYZ+ d"rA 0#c֪J~V(L ~A ׻XWU8TL)?Fj;KL~\M2aiA~AeE9 MX0G}'0UrUN2(!0j5 svzHD # =hj4>T]]>U@gr?F^i`?@?Fyrq?P6 u` ?iu ">k,2t  !LtW( UcR]cl ;_@J2N贁Nk?*<@ LA@wbb ) + + &D  ") ?A !EzR @$)R$ )/J%B31315 `?CopyrigTt (c)j020v09j0Mb0c`0osZ0fh2Y1r\01ah0iZ0n.j0 Al0 `8s2e0e`0v0d0,104M-_/?3 %?7&l>0>Uhh= Q1b!-!J`[F%),2 ,VMыS(K=_LD^^PCűQ~%+U9IS_JUE+UF XOO ڕ]oX52OE"rA 0#Qc3iAleE9 MXG}'0Ub-N!$KAB5 fjUGD # hz0TdYYBIU@a ?Ftnm?@Me?FpWe`ݷ?P} mu` o?u#8#5$+4%5HU$*44HHt  g t3 at?Ы O` *0U"?҃@&T #M!M!`?CopyrigPt (c) 2\09 M| cz ost f"s!rv !a it n. Al z(s"e ez v d F!3YJ$#$- #Y# Y'#^ B= #Z&#l4G6PG6 C2$e^.317;( #HH1|H44Gi^P5 1&X"7.EG'$G6%!@4] EFYJUHuDh#" # J#UU U UUA>a0JTaaMU@Me̷?Fk ?@N?F0Cꮷ,"7?P AtQ`  7?`t#jn \v\fw"MGwugoquo$Kt2zG/z?@Q#+&A8 b*](i+i+i&)j#3$(Qc"bk)+'Rp7171{`?Copyrig}tn(c)n]209nMf0]cd0os^0fl2R]1r`01a# i^0n.n AUl0 d8s2e0ed0v0d0@"01Y44-C3 C7$&lU@U1#A(:!F?SD [6yw(E ?F{ŦL.D;\I`H3E^?FpJ"MC=\C"qoI5Eo9?F(bȵLvF=\#bJFHOOOO@DQKO]OoOOOOf??Fޝ,lCۆ=\)?4=(Of`ẏ?FC+mR)=\/b@QS_fFȄ?F7qm ~=\76ԡy]4։U?F*t,lI=\oooo ?E#goyooooo/?F:}W=\wzfu=pӣ?F߼<,l-~Ȩ]p|y^]x?F}+*y=\+ 3]X0l?F-Zߣh,l Bߒa=\ vl%?EYˏݏfO/?FI42,llHJ|=\HN4f:f?F`\},l>x싟f~?F3x!##E=\J&)O]챘?F/8-k%mSp=\< 2DBB]ǯٯ~S*|ǾȰq~Fn)`]]c֦]L½r]7rG2=\`_g@P 4?F8^d=\he]|J%%D2Vthz1hV~=\K m0BTfCAſ+i /НJ+mV.c|~kdny].!̛ ?FW,lJ(Jd0(fä j[+mޣ =\_?ny]~"2!GD= bY~=\6y@ mL^pCA .i}-|{zv,l3  4f #[tU?Fߞp=,l0ϓpBKg嵿?FdNw:{QBb?ɣ]gۼ?F5̅h.fQ[Ϡ mhzCA&8J 7?FG1^}a aB Kf?F@;,l^s};]K_dШ&?FfOBl?w2OKNe9@?+o)F?{qOCw_PvI4~=z2m?Gm}>ID ___Z1 (_:_L_^_p__H>ho 2 DVhzHMgz?FC_߯():?1ZSGbZ2@ҽw]6<730b837SI|~"RM?L2]-m?Fq,cɥ~)̲1%]? FZ ҟ2 `rѩ]/U Bkn|)<|4];-@uvzwWPFMǕDGt{GI"MqcB߀~@6?HPͿ]M+T/]-$A#8FNL /Y-m$+|*1 |Ŀֿ~ѩ'Z?s =-B^l?2UzVs0~ԦLnQ ~덧쭕g8A}2!"M 2:2?ְqBYZ$@SK]-?FkL}-.zus1v8 .@2ߪ߼ѩ|[s(^lU }J\!Omy͹?F$зX-R P"M^b=-s ,G4,c^lX I6g ]-BS3>-U,-A -,>Pb 1Ԧ(?F~^lAw,?Q7ZьkP?F=S~-sj3jK~)4~"M`dqhY W-߇4ĭɫ)^v 0$3^l0}S1Ix@YpB/T/f/x/"R//*/ѩ??FTmȵ^l5rЯLjوWjFQ/Zyk?F|X"\=De9gs jEo9 ^80>~sMY/|=?t۶ I4TSx?F/doM~^l ONQZW`@?[OmOOO;u??O"O4OFO??FhWy?0WvOo-uѣOd[?FSҮ- ]gWy, l Sz?Fl}WmxZWQ灝in]\h?F.j.\=/I Wdvdp_zooooboo,o>oPoboѩm4p=u_0S}Ÿj8>4W[դ?F:mq_Wş|g #Z?F'[=ݛ}T r=lfa4J0-p/"_flȏr$6HZl~ѩ;h4=(V.@ ʯܯa@Rdv`j^l8g Uw*$B_.nV?F" }"SqN̎?F-;u6D!FA\Y] œ1g ^~SI6? r1 b\nϒϤ϶`kx7|>@|SA-:N^{a*0An?F~ _1ZA}2!g-О?F\b F! qZtq*s 1Mm#)*:ݧ#VْG%E\־ |)߽BJx;mmMQs~߯X9Y Z}l@/P N?M/?1?C?U?U!///// ?7 ;{?Ft\,;) q~-a.d?~A3U'3҈>}>/Eܑp%ߠߤ@^^l{;HkOQ ҠO\ۼ?Fߙ4zf]ziO;_M___q_OOO__&_juW/?Fia~Ia{pU߀_~ Z lS;܃(Siri`RriZ;ӱhsm2Ca6.o&s ?F~f(;EyoIs6\aoZl~:oo 0BzP1c/?FAd)? |hAقUYܙK?FxtQمwPIr2] ~€+Xy'MፍǃaM*2S%ʰ?F+#f~;-a~p}|b:ѧ`vXT 3T %iX3ha TaPaMYU@?F{dܫ?@B?Fx?PM]tQ`  -F7?t#UY~PUu0"u;(,\"b&hUt}2zGz?@dQ#&A b(++&Y}/SV0$38?b`4z */!"!f2$R}11`?Copyriug t(cU 09M0]c0os0f2R1r0!Aa i0un Al<@U 8s@Be@e0vR@d21Y%4e3K 756lU)U4FX1#A2%!Gj0?F73W00"6#8$}-%L#1O)߰=! 8@U$h?FTۜX\rNj$n\B.PXX3@U xQwv&5}X\:"^?5&^,!UnE@UO/NPY[||m]P5Wh@_R_d_v_DQOOO __-_f/,?FRal_`[]lS_fV>ս?F)b rlS3le£ϲ_fq l+{ ~W2ofG Dv~iqhCs}6n~#coo[mE#o%7If[v6/?F2l+|lTCf% ?F92mXlp )B&ur7f}ܑ]{}k ~Xą=mg?]̧lHWg#tdf߻mAY /ASefWc{?Fu]S䱴ls :Llgu伟flo gU?F;^U=lChlx-jfF^eۙq~j0xi|m~c&Mz?lG6OɿE]+=Oas8,ǿ?l:<]izT}ۿ~*P?F=|{FlqHlο:.2~DB'ǘ}l5(3V߆ϾfD ыh殴li7>-I<̾ϲBbGYk}ߏGM~}?FF*.^/ͼi?oߛfu?Ff l3Mi[ KP~0굂c}lOF?آロfIӂr=Eldݠ_\B\n"w\㾥P8bnnE]<0j]SEj`B^ݷk. ρV̲_#u悔&ƀ ܠ\mmElxY=mu1~!Ii)\mz^.P/كYm//&*Ax"x$qQ} F4D2}{=yM].u #q2}~s}z0N?lWU$?μǵF!i}߶bܑ!n@垇D}LnXXt~#ViԂ,iߝXQ b4Oq>ad䅔tnR)u@o0oBoTon _____ o"u2$j1}Xι_!eΟ`?7-:ܐ9Ri>DYH-#Gߍ=ԑ4MXjQ9Ef׹ tt}k͟in?S(:L^pn &*~]JB&u¥ G48Ġ7-a#|GgS>a8|I>3; nP#bWU6mȧ .ֹc`}l:2?xuTѺVhzn 0B=M#p0}!:rd Q%- qOj 7-Vsb: u>O9e>(xx&?FgH??[WvpLQ?M9 Ԣ1/!ﰳm 7xzNªJrτϖϨn (:L^sjJ^/0ЧIs*!\ٖ o5|OF ȷӸ@`?F/ ߃7\!\ψf+!"p@)-_!\?$”Mގ#q|f@LS`8}!\߬BĪ&Zf<1ߒ2 2DVhz=U[[0m{TfP7-^u,b%:k#ԍ?FȘ!\(V!I/iUBg78;L5?Qcuӵ3@?F:Ě ],‰L?L/LY!ԣ?FRs;=w] PʉL?^+UϰGIm߲E,1u5w]LK>P#XrO?? vnj!\Zz -~X@////UX/j/|////=R?FQJ<}A{ХloZ ?@lsچk?Fp"mI鴡si}/q2 ym9HQ em\\g^rBt@|? [úA'5r?#7-oo#5ߕoooooo=zg?Fzl) Ud4I堹> /k͹?FV{<˽h4GX'1rn=["jyN%.:PɟLIUw ~#Q)9=Syeӄ0_6=6LTL=Us|9ks}ߵX5>2f$~1b?Uw0'/N`%;M p4~mmo7o 9Q5:+G(j=?=;J?1OnN&4'9K]Vv*RQxR]6g^ɣ|Zk%O!QڑQ^^h?g^j^}_Txk|j~WmVo@?xp >eBcN#c G!Tx5Pm|LGf.Q,ojF.@RdvSzL``qn ~GA>~wz^gqҕim~x$gK>~ V2wTx"dQᆠA(Os:!nLĥlqNCyQӫKcAahG}6ZSN?H????fF1;?M?_?q???Vv|&5}7@R"oPiyK> k#>ġ"}?A |M-¿t6j`~r_QW44zaqYX8Tȴ߯~n߻d ____T_f_x____ Y<,2?(rݾW1[̵yѿ㸗_go4͵S62M\{Qo^~(Z&T!+<5&s pBr~y>08x޻ ϛCE/RuCQݞ%~޽3]Fb?F?|~퀶5 ~ 趒;پQtoqΣ6 ޻֮Ǹ) 1Ÿԟ)e]+akDH~6 WMw׭K,@&"c?F'%|6 ξi@a > <ŗ&8`kb|-~ 6  s??BD&m/V%߇6 b3hD5^E);M̿޿Ͼ)`]|i!x899|/*a|>5i=ϭ,?F#6 K.5> ս5|[ݍvϒe*y34ݶJA)=`2DVh j@?F-/g ?hA\)/N/U?FM2e-j X*?v(N })2-OrYQ-~.Tk )\}/'?^qq|*=3laz ~} 4}ס@Rdv22(:)*?FN !kyMdFq&w^I/(Y[?Fߧ!Ma#Jh|ϻ/x9P8!il{mM{G~.2:O˕BĈy!" _뼙-Y` k/}///KU/ /2/D/V/4^F?}e_mu? y/X /?Fjnǚq7}? D?Ɗx^o߾AytÉmA~ ^{yoQfAYvӗ-ׂoNZc?OOOOgu O*O~gL<7@p?ʼn@-1ş9p6=n?FQ>~:B !~ ޾UC?i^Jak{_f/˲p6J%V{垇͉}1JMZ ۯ#l~Ư4ʩ݆!~ cx|[) T@ Ѳg.Kn>$?{nIn880ߊfr2Yp=ȓ }UptCE_}lB~?h,,$ϚϬm9eG\'1rth|~1=9zsg-?Ubw;]9 _Y*'1`-LI@0goSy?o7x>PEu{ X~=8+m?ɼ7)}^E"S0 }٫i)}.@R%m9Y; dA Z8M]Y ]V6yY+t8skA rM#\$Sp!_n8$Ye#=]*}_I}4I H~`]ت]~| .ʗjri_.@RdF&|m9;q;gi}I߂h(}(Uϯz5y+[Bq}X~v"x>?0~1>4W *wFI.i}A0p}} &N{*y/ K?]?o??+e'//??$?6?MIbLR$UFײ;nC -+}IDQ$Օi}-HsC V2wYNHCw?F3kDjt!eJ }=Zܵ|#aOQcܝw~BnW؜p f_x___F(O __._@_R_MIst@xAOK~` f ͹+ixrݧJQp~[̵yvOGo?Flg6uMh ٘]oSC`qb?':^Bo}^~^?>Dp$ςb)&8J\nMImc@xgAx+_f{&34'Hee÷@%|~g܂HV <|PFXdTX׊ćgߩXQ#֟7$zLvPFBrX}g$Zg̞Rש<͏ß՟*0BTfxMIߵ.W_=%eiJz#Ms2,MD_c|T%#5JLYXD?F5hFg y@8|ѕSCw]&.mᕼA?鯻Ϳ߿+L^pP>FS`D0 e4Z>+-G_SCa\0І?FKȝ ǶH ~%aWNwZ=!/OG#b q1{~! tIWxa@$,"-MIkO/?F|R |~A&'A;߯bc @``5('Mh-nf=!SCrRat!2vIgn/=gyzu  jf&q#=-uS),/*/NR<btB1*<|N t!ߡ..Nsz9_-ֽ'}.<94o._/?{iPא5] HV:;$HĠ﬉ қZ?nBӭ_2"4FXj ErT@y}Mo 6N?PJY_-_`o颾Mn;NOqȝR?FOZ|<;QaA1b;oIaWW6/H]ToY?vbgCt_Ϭz3,>PbtφϞ m9`Xizh \~wKVaϤ~gPϐsY6i&vb8l5' f EXe]/; ^bAߡqEiK )~E?H{=߷4HZl~-Yf"b }h 0JTlaHaMCMU@Kk?FVٖ?@uW< ?FY鷺?P >uA` ?u &J2A:2,t  #)taN_"舺m\pmv*IJ>U2zGz?@UL?A>A@Wb#q)!?(b'=&Nm ?0& ?M "b?)'7,I! O'11`?CopyrigXt (c)902d0990M10c/0oKs)0f72(1r+0d1a70i)0n.90 Al0 /8s2eW0e/0v0dw0!(]$B-3 7&lJaUl~ 1l !`@9  颥 nw&. ʙF,2 FFՋN@DW9_k7BLL␕U?A%E?AL9C=QIDZB3>X5EER_`y5qLWO ]7@D>XE2OE#rM) 0 " c3AAO(O:OLO^OpOFF&(LKSoW N L Od]uvx?FZl6>LI3nZձL)LA_x1ur/ fLP $e'Hٰ_FfIXDoo p_Uoi &kpiMf5kiX7!'0Uʂ>$e5 UH luD( " # #Aha0JTaaMQU@Ad{?FdT#3 >5AU@c^?F`Ld?@9x(g?F_Uw?P6 u` ?u .6(>2Q 1@;,2<_Jt  N3 trBNٟ,PޟbX"; JU2N贁Nk?@ʄ L&A@bu9(E+bG)%c+c&# #!!5 `?CopyrigTt (wc)020 090M c o%s f"!r +1ua i n.0_ AlF0 (UsJ2e0e v\0 d>0!E$M[#!2?06 ?AN$)e/%-/#K '6l> 2UhE=%!?!J!(NѠuOO u(:@¤̥?FbP;?PEB GݐAY1&YMAJFHe׵B `,a,[ /? :7i? >y4vʚ?rJ5;!:_o#ga@^AOiAlerI=MuXG_'0Ub5N!40% rFjUHLuD" # R>h0JT#3 _aRMC5MU@u{v?F ??F];\zظ?P >uA` ?u .)J2 1@;,2<_J>t  w?t&9W`ݟu㵩OJ[>U $?& ?MbA@D"J&N#y!y!`?CopyrigXt (c) 2d09 M c o%s f"!r !ua i n. _ Al (Us"e e v 0 d r!]$v$-## '&zBt#2q0[?"@9 q>6M(bL)J/8Y*lJ.-$U#8APAa A =!4Q1D!1A9 {?F%@ 0nCϿMnNEuýL9%K FH(5N?:G_&_ RHE5E#f/?FR=JvK ϽLQ ELxAEE^]R__ *HE8,;@ƫn~LnzdKL5rdXHsA8#5 뇯/tH@ED@/GpOc#?P-DT! рY?!IO F_}]~3v!9$e% UGD # hz0TdYYBqU@UJm?FBO ?@IxJC?F+9lbݠ?P} mu` o?u#L*5-+4,5HS+5\$*U44HH\\t  j@g> t~pm J)4 {ו' -U;!;! "`?CopyrigPt (c)r ]2\09r Mj ]ch osb fp"Ra!rd !ap ib n.r AUl h(s"e eh v d #"4#S8$,#4G# &G'?=5#H&,#Z45656 12,$B#5#05U253@+& $^ #E K5 5#\HA%$DH /KK5$D4/GiA^K5 6X7G'4Ŕ56!.4] FJHD* # =hj0>Th]]>]AU@ ąMu?F*]!?@v$?Fu?P6 u` ?iut  Dm%t3._袋%.0I~$%UHSB+> PJlU?B& ?AuA@o +bs(b$%#2zGz?+"@ L&s#v ##zu s/ 5&,J2*%#c1c15 w`?CopyrigTt (c)02`090M0c0os0f21r01a0i0n.0 KA# l07s2Ue0e0v0d0"\1E]`4MŤ-%#o3 o7B&$!A]UhzA 11J`%#@frq?F ["(M(!T?FyIRaZL\m۶mQ8ϐ?F@$mZK\٩?F}e?P,DT! VрYc!ITB M~E'QY5a XȞv/ ,^$ Ui[? RRT*?r.5 1:Oo aosg4 1"KUE[UF5sRŐO_ <tf ?@Gui&PbE9 M5X8G+"!'0UE]N!R]$ar5 vUHLuD*" # R>h-4JTaTa9 JB>U@@(/&?F94;??FIRaZ?P>uA` ?u>t   e~27-t!;E]t-6-P\E`,J%EJff? ?Mdb"z@A }$)1b:( #>!f!?X(d, P酑2N贁Nk@9 ^"&:(+!D:/ 5;T'2U&Ra1a1`?CopyrigXt (c)020090M0c0os0f21r01a0i0n.0 Al0 8s2e0e0v0d0"Z1E^4-/m3 m7lJ0JUllI 1!1` C  /VN!b͉(O"TYURIUD%YU+u7tYF_QER5:MT?7 T [Nё\#CTAE2OEv2rM $Fyc"mA$zG %I OUOYU`fsRsŠq_ _ wT#3 >U@+(/&?F94;??FIRaZw?P6 u` ?u t  <~2)t7E]tU)2)LXE\->J2N迴Nk?+@ LA@{b +b )'+'&D*!!5 {`?CopyrigTt (c) 2U0 9 M c os f"!rԶ !a i n}. Al 0U (s2e e 5v 0d0M"!E$M[h2?6 ?$A$)/J%,b,# '6l>(>UhE=~%!6!JXS(xNWOO D QH~%xE9OAOAiAle6I=MX7'0UjR>!40% 6FZHD:  # ;h0>T@h]]9 BIAU@Y"2?F h?F\9?F_X*qw?P68Rw?>u` ?u$.>. V- (.8:Q [t  !g?t{Yu?pvMl{~ݕvs5Q!fJU2N贁N[R?@L&A@bI(b*W)U+U+U&񩆍y#? (<!J ?%MP?AO"d+b Y)(u/%*B#A1A15 `?Cop rigTt cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4M-#M3 M7#lUh/#7 _1AO!J # F qBd V(R iAb59 MXGW'2WUQ;N!R$aP5 VM&#HD # =hj8>T! ]]9 UqAU@c^?F`Ld?@D6 5D?6Hb?b06]DN`lt   ?N t!rBN,_PaX"; jJU #<nH!A?^%Y ?Ab^ @$bbbz #"b#$"b$ 2N_Nk?<@L&(&$%" ;'"!*@!A#BBhy?H *A#115 "`?CopyrigTtk(wc)k20@9kM@c@o%s0fB1r05Aua@i0n.kU ] lP@ HsTBUe(@e@vf@dH@/"14M-?3 7#l>]Uhz11!J`A#@SfVo?FnOo0  d" ΄ ť^R^M(!`ZQaSt__ Cƣ8-$Րj8:ۦ?@u-{?FrgY?PC d f"Y!Y1a ]D_;s ˿}nE>0FQ #? ZOB Uoϋ ~d"Pg @+(vQk[sGXWQƁfQ} Q3 8Q?/ Q HQ xQ_ߨ F֛Q% Q 6Q Q Q Q[ 7. N8. h P,. $.? B//'/.\ o. P@/a6A/pD/ 1F/F xH/, .XJ/Z Q8L/ ^0 J&(W1S.KXZ1Y2a1;poc1>9Hf1LDd(h1߰F%Kj1Jl1ZNn1 QH2S1UFD  h(^TYYB UFjZ?F~??x<F BPG(?P } X ]B66]  TTUTTT9T9ȴHBU?Q?G ?B@L&ɯd2?6-G(?\.Y(7. sU!}&/) *%  0eB`-ecom0er 0eW,s2v2, 4put$4dui0t0ib24ud0n0tw 0rk!% ^| (S G& q?%7I???"" wp ""ppqwqqwqw^qpi ppwpw)wwwqqd^wqp~wwwwwyDrag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aabjZֿ~??cN׿ mF1??%!{V↑T*J?@ ?UG DF P# h @T(PYY# [U@jZ?@~?tP} u` ?u#2>D>HX DHlHYHH EEdR.؍>DDXXllRu'9h",'US2&5/4&3 ?"'4Wb0{['`:[1#26"d^Q_9$7&9"/L6 2&!'ݯ>o@ÿ@qx@?@-pB?wDmF03Bu9@`҈-1Bu@r#CC5",CAB2Cm9u`u `"[ b!u`/3Qy1y7B`?CopyrigPt0(c)020P90MPc.PosPfRQrPaaPiPn 0Al ` Xs$bePePv6`d/`VPs_SBNcPm_!#5P8k` 8Fay1&3db4&5܀MB=/3z6&3d66 2&4#/30U1r3]%ge<^AE U#"&5m Hq&5twV5t{3t{VEt{t{y {etd{|tY wmda*V_BTAJa$Ja&203V21@3 2MVB3Z1125tb6 7$C|èEhhPÓnQ*ϔtataAPꓰMB111;@cqcqba>*Ab1%EQF^.1XA#8dTG`XQy`])r` M`WnuPaPt5arFaiQ` WEqiPm6`nPvd{V5QX]1PRd*ơ ]`ue`bͯ߯@30! P`r@RdSH@ȱ]C5D6bQ۱eʿܿ{"\ ϬAP9a:B`諸75^ϖϬ% S:bi`#aweT ߬ぶLPchCekT}ߏBalB`i`g̨9@߮,RPoڂ|EZ\@ =phDBU T)?ar0TPpVrKB` B`sR;IY`A Y`Q@;bmr:PeExab!gD"qQr2w`ijJSCC ` TsR\͒kXV` ?ON`1ڒBkfHZSbY`|` E@cqTZ Nwbk4qa+.2`f dDIpadB`5cϐT)nĺs kx/0/(mTa t f?a ];a£|v///ő R pa/a@/?(/0?>/M`Cs?5?'U+pu"tPf!?BkQO)O"f=OiODOkvOOKHdBQ#CġRC<` Wm!wV_*_ Cg0ar__yi_'`M@mi2n__v"kpo$o8KOB%fy"FaPoboj qt1dw:1NvcU@jZ?@ű? _v pBup` ?}rup`  B=ݐpj,U>(p5$j-T^u*uq, ST1.s1'xAMw>ÿ$revK ˆeGrςłˆTς߆L2`R"oUK=e2j"rb ggbr-}@"Wbrgu``dv~jc 4F[_c@-->A>Bj(@yL1L1*Z{­q qqqcҴQ:ai6“`k`!uA`aż@q@ʇ{„S5_&ﲄПF3s͵N?SYFy 邉f@ H8W{H5WH`Yc|ag,@ BQр0Bf_q_qʷifz!` %.P&4odAA_qNNTWOWRKeH0PRf1RRI%SQ"it!̔=GQW'70U? 10a?ƕHD # =hj0>T h]]9  5AU@jZ?@͂T??@x?SF?P6 jt`  o?tk[>(A Vu aSuo.]&A]  *ԮJU2zGzt?@L#&A@bA#z7 5#1bO(b])j+$j&[ "*(w "?& ?AU$l/%B115 `?CopyrigTt (cu)Q02`09Q0uMI0cG0osA0IfO2@1rC0|1aO0iA0n.Q0 WAl0 G8s2Ueo0eG0v0d0"1E]4MŤ-&3 &7&l>]Uhz811U!J!u6?@+\.>djIIa? >"(EǑ I%K9E 5EU . K ;;5QIWEEE@ _KnSA?8@VBu?@DR> ?Nk"\6`ObmMM\j=am {:e 뇿P> #? D"? 5-gg?j47!B{oogrK57!ibDAbE9 MX7'0U~rN!R$a)5 5vIzHD # =hj0>T h]]9  qAU@;?@J5K?@xEL?6ѿP6 t`  bm&Qo?t~@@L]WI,#u auoL> @JU2zGzt?@L?&A@b}#zts q#1b(Wb)+&[9#H",ɺ (;H"?&L ?A$ /R%9#V1V15 `?CopyrigTt (c)02`090M0c0os}0f2|1r01a0i}0n.0 Al0 8s2e0e0v0d0"O1E]S4Mb-9#b3 b7I&l>]Uhzt1.AF!JN!n.%-+0rdjV1ax߃)(@K-&?@ mO"> ?Nk"PL[Majnha_:e 뇿P> #? BK=o? n-g?j4s!B{__Wr5s!D8E6V 6?wj_|_ ^XE.U6Vz T6?@ @ d_mOoT ݬ\VyWxRkrVo_bVh*g:n"'UaEjz36>C~N>?Bn]_zGvN7ViDAbE9 MX+G'0UPN!R4ae5 MaHD # =hj0>T h]]9  U@jpiH?@^?@$?@]F?P6 t`  !a&ao?t,F=۳=u;u auo>J2zGzwt?@ʐLAw@b#z1b](b!).+I.&[-m(?0& ?A$I0/Q%!!5 `?CopyrigTt (c)02`090M 0c 0os0f21r0@1a0i0n.0 Al[0 8s_2e30e 0vq0dS0T"!E]$M-# %'&l>]Uhz!1!J@% djc~YZ(_N9zOMGE%_EH$SwO"K ңHE ^&_8_WE_OqOHOOi&DAbPE9 MX7'0UUfb>!$a % f1jHD # Uh4>T#]]9 M5AU@jZ?@L|+?@?@({~?P6 JuM` ?u JYt )t7zEA2&L_D?. > >tJU2q K?=@MJ&A@-b9(+bG)T+T&J[#"#a?& ?AH?/`)#115 {`?CopyrigTt (c);020G09;0M30c10os+0f92*1r-0f1ai+0n.;0 Al0 18s2eY0e10v0dy0z"!4B#e-?3 7)& b 0K8>U# ]A]A "1!ъ!PzQ <%OYAJEU . K;;\%W%E@($L[.FX5Eai%?@ 6?wL;] W-\TB⤲8?W&SA?@ @ ?Nk"L'`bmMW_Ye[7 VK=F: [jr ? D"? X?ZvD?a@Boogr5;!QEؿx]SiLO MLXa~WOTZiAle59 XG"'0Ujc&N!$05 .HD # =hj0>T h]]9  IAU@K?@OgVb?@O?@X5?PJW?>t`  ^Z?t#ə.b?T@[ u?/CG<_Z+u u$ >  J JpU?43f<!.&P?b3bbfz@1bAe&bq$d 2zGzt.#@LT"&r(~&i$q)(+}'i"~*#81815 `?Co yrigTt (c)o02`09o0Mg0ce0os_0fm2^1r 1am0i_0n.o0 Al0 e8s2e0ee0v0d0"11E]54M-#D3 %D7.&lUh#7 V1#Ai!J# F/?B1B  VRiAAbE9 MX G{W'0U*R2N!I$a {VZUHPD  # #>h0JTpERI MU@u6?@ic{g&?@%r`5B?@n_F:Is?HNtQ`  II?t#\  _ii$"`kNu  iu%wj>M JQ T       "@&&JNU2"?H@Qs#N&A@b(bU)++&RNp}#>H1#19 ?#bbbz| R&/5R}#11`?Co0yrig\t (c)02h090M0c0os0f21r0Aa0i0n.0 Al!@ 8s%Be0e0v7@d@21a4t#-}#3 %746lJ#$JUp5 3 M19 1!q(!@oElrkRt# 8$lcD?@숒@)?@P?P"EkU |1\iOT/irvs}i>`_,of :m ,M ?? S&d2? *b?r4B!B oo1gr #5!>%(EQOOOO__@Ac1_C_ D4ևS]_o_zRX,{_,__ #R__ (YQoSo+o=osd {oEeoooooo@zUy{* hDV!VV(I X"c7I!pg bf'iMjSE t%XyG|'0UŢŞN!O4i |UGD # hz0TdYYBU@(%)?@xg^?@0߯H?@s7Uݹ?P} t` 87?t#_)TeΦu ]ukv  ̝L&UUU&I&3 U!!`?CopyrigPt _(c) 2\W09 M c os f"!r 1a i n}. Al00U (s42e0e uvF0d(0'HS$#-## 'I?k=#ǒ 2j$B##0U'BM3@&@F0Yk} #HA%DKb5DK3DK5DKED$!GiAZG5(|IDFX7yW'&Dŭ6!4YA yVZHD  # =hj4>T!]]>#AU@0߯H?@z)e??@˞9q?P6 t`z  ?5t# rXѮu)Nu;):O]ע0 &> # " "+"+"+"+" $+"T-J[U7 ??& bA@ 2b4-#2zGzt#+@ Li68!6 ?}; 72U!:B#AA5 5`?CopyrigTt(c)20F@9M2@c.0@os*@f8B)Ar,@eAa8@i*@n. Al@ 0HsBeX@ej0@v@dx@)21"DM-,;?C G& l>]UhzAE!A#!ְ1J`#@{&pz?@Uy{?NT,dKj&b&R&M/8T9K-q?x6@F?@dG0 >Nk"?YE*]\LT_hKjfGD&Qhj iU3UGe&Y_`?@/b%)h5oWKoWo;KTod}l$roҥ`nE2K?@ˌ%4G{?@ -q eZ̿R^{|\6?vodmP}l>MBe 9 N 1iS? 1?g]rl#51:O("4ga@Sq(UE^@O|ǐ[`Ρa g v2rA @3ijD&}l迲aqOz o?#WHZ'Qu=*[^N?@]%P?@O&@ c?@аM<n ?` eb0)\(Pfodm}nv}l?V5(?q$Ix[cN#W{#iA&QeE9 MX|''0UdN!0 /HD  # =hj0T h]]9 #]AU@}%?@R$,?@6#V?@c_3֡w?P6 u` ?u#t  3zM%t3ws%.<%H._'B> #PJU2N贁Nw[?@ʐL+&A@wbu](i+bk)%+&p%#4">9"<5!?& ?M#bbb͓z$ p&"/%T%#L1L15 w`?Co yrigTt (c)02`090M{0cy0oKss0f2r1r 1a0is0n.0 Al0 y8s2e0ey0v0d0"E1E(]I4M-%#X3 X7&l*>(UhE j1#$Ac!J`%#@5e$_F??!foA3nBM( V?@J-RHQ??@S!R?P| llHL6VLD5E+v;*AʙH: 8snP%$? k?Q? \?f4_!_t_Wr5_! R,U3OC@IL?@4~Kz?P)Oy޾ T!]]>#IAU@܋?@2Oa>?@#r`5B?@*ݷ?P6 t`  >B?\oEt# ŖoZu 0Nu;Y:|8>$# JpU>##<?2& ?5bbbz@b#ANi&bu$'h 2N贁N[2$@ LX"D&v(&m$ :;T'm"*B#d1d15 5`?Co yrigTt (c)020090M0c0os0f21r 1a0i0n.0 Al0 8s2e0e0v0d0"]1"a4M-/p3 p72&l>0>Uhh= 1#!eJ`#&@NTM\jh1B,RBM(!JoUy{O_ e@ So4(DF^Tw?@]֝ä ?Nk"?w_KT\T+\(Kj?ӷjmlhj -`\TPQE\Uu?i,St_o u~!XEO9= T?@L;uQ_Pm"rA @3sjQ1lğ= GoYniAlePE9 MX'w'0UrJ^N!M$|A vzHD  # =hj4>T!]]>#IAU@܋?@j?@2r`5B?@^ݷ?P6 t`  >B?\oEt# 6ΠZu 0Nu;Y~:#&}>0m8>  PJU2N贁Nwk?@ eL&A( 5bM(b[)h+h+$h&#[-M$#?& ?b$Z*'*B#O1O15 5`?CopyrigTt (c)02U0090M~0c|0osv0f2u1rx01a0iv0n}.0 Al0U |8s2e0e|05v0d0"H1P"L4M-/[3 [7&l>0>Uhh= m1#!S!J`#*&@PUy{_?NTMjC1gc RVMʣ(D#F ![?@"$. ?Nk"?+IKTLTcKjRlhj p= (*!)i,SO2Kes9T;QEGUFw6qX}__TM7fTZT\Dž}I_P^52O,ES"rA 0S# Es3iAlePE9 MX$Gxw'0UrJIN!4gA xvzHD  # =hj4>T!]]>#!AU@܋?@c_v?@#r`5B?@*ݷ?P6 t`  >B?\oEt# ap'EZu 0Nu;Y:|$># BJpU>#͙;? & ?5bbbz@}bAA& K&@ 2zGzt?"K@ L0"&N(bM)+TK/8Z*B<1<15 5`?CoyrigTt (c)s02009s0Mk0ci0osc0fq2b1r1aq0ic0n.s0 Al0 i8s2e0ei0v0d0b"5194M-t/H3 H7T &l>(>UhE=3Z1#E!J!@ENTMjN@1h(NoUy{OO e@ o)4(DF^Tw?@]֝ ?Nk_"?'_KD3\T+\(Kjjmlhj P\DiAlesI(=MXsG_'0Uzb6N-!%$0 sFEjHD  # =hj8>T! ]]>#!AU@܋?@*?@#r`5BW?@w?P6 t`  >B? \Et#տ|u l4RQu?]>I$>I# JpU>͙#<?& ?9bbbz@b#AE&bQ$$D 2zG[zt#@ L4"&R(^&I$Q)+]'I"^*Bh{.M#To1o15 9`?CoyrigTtk(c)k2009kM0c0os0f21r1a0i0n.k Al0 8s2e0e0v@d0f"h1l4M-:?{3 %{7&l>(>UhE= `51#I!J49fAn^ R)X f"B!Jui,SG?RSlOS u~!N]8-19= T?@L;uQ ?Nk"?YVTQRXQOnğ/=i n (\ wTiAaePE9 MXLg'0UbZiN!)$0 Lf`jUGD # hz4TYYT#BqU@",?@~?@$p?@|>׺?P} u` ?u#L+/8<L9`( .88L``t uPu3Pt۶m!tUH~#9#[0Up"?@/& 9#!!G*`?CopyrigPt(c)20 9M c os f"!r 1a i n. Al&0 (s*2e e v<0d0'"!$0#B-9#,# 'w#^ =9$&0#4 66 20$e#$^ #3 % 9#HLA0%XD`cKT%XD8cG g&daO^'*TcATcA0"-()Ca0% g2ATBK6SihaX5 &X~7aWK'o$ţ6!4 0 aVuZHD: # =h4>TB#]]9 TU@$p?@|>W?P6 u` ?Mu t  )At72(L>REJt2q?=@LA@-bb )+&񆤍[Z#?m& ?A/$)R!!5 {`?CopyrigTt:(c):20 09:M c. os f"!r *1ai n.: AlE0 (sI2e0ej v[0d=0>"@!$MBQ-?# 'm&l>0>U#3 C!*; #p _ &J`@7?g8oyƏ C?,'ߑK FMD(9IMBIGE%U\8!<A% fjHD: # =h4>TB#]]9 TU@$p?@|>??@?Pn6 u{` ?u th  )t*7)2(QLAEzJ2q?=@LA@yb #zt-b() (2+2&醍N>{??& ?A"b%$$>b7b{/b4/U% 1 15 {`?Copy_rigTt:(c):2U0N09:M:0c80os20f@211r40m1a@0i20n}.: Al0U 88s2e`0e805v0d0X"14Mi!E(-?3K 7&l> 0>U#3 C)1 #p U%J`@!g8oyƩ C2,'ߑB DVM^(9IMBIG3U%~CU[8 h:0T5 AB#MU@1 g?@4?@84C?@Kk^Ӻ?P t`  WwB?t#_L&,qۗ'0 .(='u uu1t6#I    ҩ""PE&&E&U2llf?43f@#&A@)b3bbfzt #Eb(Wb) ; 6#"w?_6C?/$ ;H,7#11+`?Copyright (c)@2t09@M@c@oKs @fB Ar @EAa@i @n.@ Al`@ HsdBe8@e@vv@dX@021M(=4#-#3 7_6( v `@K( vU `A#1(Og0x~u- h'#Q  "8!}Z_]02QEUCT/\?@Wh{vž\<ˉ\78u2/k٠' QQQ,WeI_[Xg_`zT'!68?@J[8j/OW\U M "RSDrV95Uۮ4R?@ rё\!l§\Wԫ{d8m k?NR܆?@ֿK #? }+OqZx~b_Xu5sZ OZ{d+i2o,u2r @3C QAoooooouYYG?@Pb|[p o _7~I|׿zT6Q3M7f?@Cs|h')`ρ?|ώ&a@-_4o0:02i@wE%tHXG'W0UN!z4 0N  UHLuD" # I>h ,J T  M#EMU@jZ?FJX??@HX?P m>uA` o?u#VlMJl -<lA -PK#TdK2(.K<FZnf>t  tt|>b!FQ~uKJ>U2zGz?@9 ?#>O&Aw@b(Wb)+&r" !$NI#"@#W"6 "\M"b)2;'r",r"/I#11G#`?CopyrigXt (c)020090M0c0os0f21r01a0i0n.0 Al@ 8sBe0e0v-@d@7"BMI#3 76@"!"t1"=ElJ Ul0@AAC 9 =QA(#UA!=(^!j9?@+P(0 # 4.!# քOCN6ULw-iN\u5e[EYzX3^GxQ1__ pPzXE6UU . O[ ;;d\@#Q}U6U@ _\fZ__"zXAjai%?@NT_N\^ W-d\ƿFvwzT97Tꤲ8?@)#?@@SAWp>@ ?Nk"R`QY5`ߛbmMd\?E_Wqy[7 9(  UDGzX2YGf?@2CL[N\AlTzXQ2YY a?^&O[?++d\g}UQ2Y?i`hCN\,@Иg*%:׉zXU6U?_z^_p^AA(G!EM __0[u?@ N\>4t>GCc-xQ@uIuc ?@lփ?@nc>s9ZQh |)Sf|Dҍu~4q3@uɕҔ@8S7^A?$My$'eCO9c]ziMqi~I@%!XRG~'0U6t5 Ff ~_H>Y;s ~HA10Hù:zF2[#?ߛ\JOB YQ]~d-Pc^@}+(]3g[sGX2: Px2i2߱m83q3tH3~xx3Y{F3ȝ35߂51D?j,3Dk6D+8Dђ6:DN(=DTlX?DD7xD4D9֪UFD  h(^TYYBBUFL&d2?x<F BP(?P? t B66  TTTTTTdH?? Q?BZ@?"-3(\.E(#.sUk!i&/(  0B`PPublic,pr vUa.e0k0y0s0r01, og"a ,n.0tw*0r01y0 1m0t*0p *2r 0pP1!91Us0c*0n82c.!iz275 eA^| (SG& q ?%7I??? wpwp pqwqqqwqwq}pqqqpppw,wwwqqgawqp~wwww;yDrag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aabjZֿ~??cN׿ mF1??f&d23L4CUG DF P# h @T(PYY#E[UFL&d2?jZ?F~?]P} .B":J :^:rY:3 7 77 Au`?؍"66JJ^^*rrUu#J",':U2%&5/4f??z4b0u{[`:[1#2&6#"'V"^%Q_93 2 L1$" "3'@>>ÿ@qZx@mE?wDmF0r&BCZBu%@`-1ZBu&@ >CAB""C$9u`u `"[ bz!u`!Qy1y71`Vis_PRXY%cPm!#5P168B`?CopyUrPgPt0(P])020`90MPc`oPoIf bQrP6aa `iPn% 0AUlQ` hsUbePe`vg`d%R@y1&3db4&5! h8=/3z6&3d6P6 2&4B#/3+0U3r3]*g,^eqV5@cT<*G`o0m?`s `la>t&5 pISO`PdaTs"_BT /&20*V2QQ32DVB3Q1$125kb6x I7EC|ßgh`nQ*ƄQQA``b111;<balrqqAb1#8dsPXQ1`]+r` ]M?`nu-`aPtfarQiQ_` EqiPmg`n `xd>V5Q`N`]1yP%bd Nm0:30ȟڟZq!v P?`r'SHHZ]R`Dgb$a Be>\ЯoAPja}C`y75^GYo-%v Skbi?`Ta:eT̿o-vLPc?hϠk5.@RB$l s`iG`gpϢE%@`ϮqyRPorϱ|ߩZPm\@x px(+s&5ՈUm lparJ0TPpg`PKBg` Br"a;s;0S0LQmrPeExRg""tXqQrb2:`bv+mSJ)CQ`qsĂXC` qP@тuSbp?1PKg`yނn۠UN~w5bka.2` dHEIPNads`fc6H n $׮n~}sIH xJymQt=fpa ஑la1+fHZ㼁y +b P6a`a@lu MO`C(/F,Ÿb/ U+v3utP)Ɵ/H 9// ?Hq?(1tVEImx_dGF~?AvAvp BuJpGYB#uBGYpLJqsp(7Q7Q(xAF@>>ÿOoQ=ONRRCRIHށrA 7S>S"`AR(a1DceF"$?\[?RVRVR?R]?R">UDBb_ PPaMUZB[br@2\ zOz_sv(YqYq!!BO\ɅiqTqvxUzaO9ꂃSS{P_`u`(0y⢀@Bb 2a8RL7@(0aB{8Q|B{BQ|&Cz,@R2ivOOMoM()A)Awb8z[9 N6dՁ:w`` %c`P&!!i2<B)ANDTWORK(%H PD!R1@URIDS{QR<B<hB!i#??=ly|a'0U?Th]]9 MP /AUFjZ?F͂T??FSFظ?P6 .]A]   JuM` W? EKu4bJt1 ytuo[=Jb(A =>JU2zGzt?@dM#߀A@bM;#z1 /#\I(bW)d+)d&J["*(w"?& ?AO$Tf/%B115 `?CopyrigTt(c)2`09MC0c.A0os;0fI2:1r=0v1aI0i;0n. Al0 A8s2ei0ejA0v0d0 1Y4-X 3  7&C0b59 FX7}'0UB)Ź&!$aI 7FKJlJ]Uhz211O! !u6?Fh,\.>*0II=*t >J:@T&ȑ/ [WpY\QEUzU . X[:;QRuSU5UF,®\oZOnlQ 8MP@fu?FR >Nk"\T`bmMlQi_f0%=mUt.m {=4+ 뇥P> D"? 5-g?0tp@bTh]]9 MP qAUF;?F5K?FxEL?6?F6?Pn6 L>M  P$  #uM` ?=`cc.@uRJtO  bm&QȽtA@Lؽl]WI@[>JU2zGzt?@M/#J?&A@b}#zs q#b(b)R+&J[9#H",ɺ (H"?0& ?A$ /%B9#BV1V15 `?CopyrigTt (cu)02`090uM0c0os}0If2|1r01a0i}0n.0 WAl0 8s2Ue0e0v0d0'"O1YS40#Ť-9#b3 b7&0%0bE9 YFX+G'K0UB&!4Ia yFJlJ]Uhzt1.A!-(:9#t.%-+0JN H߃+%$Jq-&?F mO" >Nk"\RSWNh[H@[4I 뇥P> 'CK=o? n-?N]`@ b<couo]r5%BUV 6?woZÃ^ǿXEUV T6?F __ jv6dDlVyZgPRkro}oiBdalN!\z3ˏ6>CRHS X?BnDe>TGvN7VHD: # h0>Th]]9 MP JUFjpiH?F[^?F$?F]Fڻ?P6 >JuM` ?j uJt  (a&aEt9S;-FEN=ۯ=Eh?u;>2zGzt?@M|JA@a7b#z}b(b!).+.&J[-m(?& I?A$0/Q%B!!5 c`?CopyrigTt (c)02`090M 0c 0oKs0f21r0@1a0i0n.0 Al[0 8s_2e30e 0vq0dS0!(Y$-# '& 0b59 6uX7_'0UJBŃ&J!$a FJlJ]Uhz!1!劵:F% Y.  8?zY^J4 ]9$]$R9S/RJUE UH$S!\1\? GX5ZU_YQJU __-_?\HD H# Uh4>T#A]]9 M /AUFjZ?FL|+??F@{~?P6 m. >b  JuM` ?+ILKu8J1t5 }ty_7??J]bA>tJU2wq ?=)@MJ&A@\3(bA)N+)N&J[ "#?& C?A9/Z)*!!5 `?CopyrigTt(wc)20A09M-0c+0o%s%0f32$1r'0`1uai%0n._ Al{0 +8Us2eS0e+0v0 ds0!E$$5 -? 3  7&6iiePE9 6X7 "'0UBţ&!$0 IF]JlJ 8>U#9AA 1[!:Nk"\T`bmM\"f4N[7 zex-K=FAa [jr D"? WZvDS?4xa@R#Th]]9 M IAUFFK?F\gVb?FO?F$_5?PJwW?>$[ >  JuM` ? ;  )u*Jt'  ^Zmta{֙3.Jvt?@[_ u?vC >pJU43f<!.&P~?b3bbfz@bAe&bq$Jd 2zGzt&.#@M#T"I&r(~&i$q)Q+}'i"~*B#81815 `?Co yrigTt (c)o02`09o0Mg0ce0os_0fm2^1r 1am0i_0n.o0 Al0 e8s2e0ee0v0d011Y54#-#D3 D7.&%g0Ab59 ;FX G[G'0URB.&!I$a [FoJl&}>UhE3MV1Ai!(# jV? & `& T` V_RUHPD  # #>h0TpHeeJ EUFu6?F5c{g&?F{r`5B?FF:Iͷ?mj>  M   *  (Y JuM` ? Y ":N`u#xJtu IoI%t"' % 'ii%$'`OkŁJU2"?@Ms#J&A@"b(bU)++&RJp}#>1#19 ?#bbbz| &/5> }#11"`?Co0yrig\t (c)02h090M0c0o%s0f21r0Aua0i0n.0_ Al!@ 8Us%Be0e0v7@ d@k"1Ue4t#B-}#3 746t%0 jU FXyGG'0UR46!O4i FJlJ$jUp5 3 h19 1!q(4}#FXJt R j# 8bD?F@)?FvP؞?PEkU O|Ä\QnS ?.܁nts}ped`,of :o ,M ? &d2? bS?tP@RBoogr"55ZQUf_x____bY@?Ac_\jF4ևi$on&h{ǡ8oJo\opoo T)YAoaoooo o 6$|U7I[mS Uy{䷰7ho}V(f"(I%ZvShX?"cwӏ叭iďa$xUGD  3 h0TdYYB UF%)?Fxg^?F ߯H?Fw_7Uw?P}   f  f0 D fX lu` ?00DDXXll)ut  871%t%!?"Ư)1%:'ֿTeΦ1%T'ʤU!!O"`?CopyrigPt (c) 2\09 M c oKs f"!r 1a i n. Al00 (s42e0e vF0d(0"#S$#B-#l# '?R=#ǒ 2$Z##0U'B3@& ^5 DFX7dG'R&Dŭ6!4] dFxJeYk} #HFQ%RT][b5RT0][3RTD][5RTX][RTl]WHD:  H h4>T]]9 MAUF ߯H?Fԋz)e??F9q?P6  >IM (#<Pd`<#P#dJuM` ? #2FZnubJt E-tA!["XѮJV&bN$p'N]I֤>J)U5 J[-# ?6 ??" A@.2Sb64B#2zGzt3@M#Jc678C6.? ;B72C: #115 k"`?CopyrigTt^ (c])^ 20@@9^ uM,@c*@os$@If2B#Ar&@_Aa2@i$@n.^ WAlz@ *Hs~BUeR@e*@v@dr@"14ʺ#-/ C  G6&iieP59 &XG W'0UiRŴ6!#40 $ V4ZlJ]Uhz@A!1(`CFU&pz?FDUy{?,d@#b`sb`"J-d K-q?FFF?F F0 ?Nk"?GiE*]CpdadC0[dhZe@#eGDQ> @" i$a3n&Y+`~rrood]io;e s"yr1C82K?Fѻ4G{?F-qx>tFjR^{|ZlYZe tmP|{Mޥa 0 1iS? q1+?wa@rc(<;"̏A!rFÀ5H5aE=*[^N?F%P?F"P&@ c?F{MTh]]9 M]AUF}%?F[$,?F+#V?Fd_3֡w?P6 B>M @ $ JuM` ^?3YY.KuHJtE  L<ܩt.'_3zMҩ,wsQ>JU2N贁N[?@M#J+&Aw@b](]i+bk)+)&Jp%#4"?>"<5!?& ?M#bbbz$ Rp&"/%B%#L1L15 `?Co yrigTt (c)02`090M{0cy0oss0f2r1r 1a0is0n.0 Al0 y8s2e0ey0v0d0"E1YI4#b-%#X3 X7A&%{0bP59 OFX!GoG'0UBŔ&!$a oFJlJ(>UhoI j1h$Ac!(`%#F'$F?>D{Q>L!gfQQ R "Jg V?Fo-RbHQ??FT!R?P& lH\f6V\P5E+UDv_;*UmʙHQ:? w8s`*%$? .l?Q? \ς?D4h_!R otogr5%Q3p_SFhIL?F~Kz?P)Oy޾ F @c"rA b$^sPj+u`dl(?ET+QdAf u8<$HD:  H h4>T]]9 MIAUF ܋?FOa>?Fq`5B?F1*ݷ?P6 m8> (JuM` ?#SS2)uBJt?  \Eto֙>_B|KR>JU5 Jp'>͙#<?Z& ?bbbz@b#;A&b$B 2N/N[Z$@MI #"&(&D$ :;'"*#d1d15 `?Co; yrigTt (c)02U0090M0c0os0f21r; 1a0i0n}.0 Al0U 8s2e0e05v0d0"]1a4 #-,/p3 p7Z&'&iieU59 '&X9GG'K0UBZ&!u$K0 FJlJAUhhG1! (T9CFJ> kRbT$R}R( "J:]Uy{䷧_8S s@ o4%BTV.Tw?F:^֝ä >Nk"?YUU!f>)?\(K8ӷjmKl? a\$QU5Ui,SlQ%iu~!8hE_= T?F;uQuo`"rA 4sjQ޽lğ=onHD:  H h4>T]]9 MIAUF ܋?F<j?Fq`5B?F^ݷ?P6 m8>M (JuM` ?#SS2)uBJt?  \Et[Πؙ>_B?&}>J)>JU5 J#2N迴Nk?S@M #JC&AP bu(b)J++&B1[- #L#?&| ?$H*'#O1O15 `?CopyrigTt (c)020090M~0c|0osv0f2u1rx01a0iv0n.0 Al0 |8s2e0e|0v0d0"H1L4 #-/[3 %[7&'&iie@59 '&X|$GrG'0UBi&!40 rFJlJAUhh7m1!{!Պ (Z$CFFUy{?> 81cKR R)V "J{TV ![?F=$. >Nk_"?YPSW>OcK8RKl? ף_p= $B:]'i,S\6aYss9$Q@5UV+6o'lQ:ifOdD`i[Dž}soąo82{_U{"rA z$s"HD:  H h4>T]]9 M!AUF ܋?F@_v?Fq`5B?F1*ݷ?P6 m$> JuM` ??Su.Jt+  \Epteap'Eqz>Bq|7>5 Jp>G͙;?2& ?bbbz@bAi&s&Bh 2zGztM?+"@MrX"&v(bu)+s/8*T<1<15 `?Co yrigTt (c)s02009s0Mk0ci0oKsc0fq2b1r 1aq0ic0n.s0 Al0 i8s2e0ei0v0d051P94-H3 H72&iie-59 XG_G'0UB2&M$0 _FsJlJ( >Uh_I `Z1m!afR* zRQd J:`]Uy{w_$S s@ +o4B`TgV.Tw?F:^֝ >Nk"?zYQYV*)\(7$djm7lb+d ha\HD:  H h8>T ]]9 M!AUF ܋?F*?Fq`5Bǯ?F1?P6 $6>  JuzM`l? C"u2Jt/  \Etti|u~>Bu뒣;>RJU5 Jp>͙#<?6& ?bbbz@b#Am&by$Bl 2zGzt6#I@M\"&Rz(&q$y)+'q"*h,#:3o1o15 `?Co yrigTtk(c)k2009kM0c0os0f21r 1a0i0n.k Al0 8s2e0e0v@d0h1l4e-:?{3 {7I6&&i bP159 &XDGG'0UBX6&Q$0 FRJlJ(>UhI 1lq!a4DC9Nk"?CYQYf.Q;(hğ=;Af/h (\UGD # hz4TYYP# 9UFs2?FM&d2?F$p?F|>׺?P} 5   & >hRQ p  u` W?   *<J>R\npUu# t  mom%ty!V"!%' %'ؤUC~#30U82?҃@&T3q1q1:"`?Copy_rigPt (c) 2U009 M0c0os0f21rԚ01a0i0n}. Al0U 8s2e0e05v@d0"j1En4#-d3}3 }7Q?3^=4~6#DkFkF gB$gdaO&7*THT"(Pa%/BQ  2iRcE U6rXFGE'74ikF!dD0 EZeYk} 3 QYg%kd>vk5kd#avk3kdpvkEkdvk=Ekdvkkd vgHD H# Uh4>T#A]]9 MUAUF‰IJ?F#-c?F?FFt=?P6 &> A](# D<# P# dd# xJuM` ? #2FZnuJt  }7Fi8&t-!G"R7NA9%UB'DM"9%\'+d>tJU2wq ?=@M#&A@q"b(bJ);6J鏵#"wJ3?]6 ?A<#0Ɖ3z #V#bA38/9*#115 W"`?CopyrigTt (c)#@2U0/@9#@M@c@os@f!BAr@NAa i@n}.#@ Ali@U HsmBeA@e@5v@da@"1E4#(#5 -O3K 7]6Fi@ieE9 FXG"'0UR]6!x40 7VKZl:JdTU#& uUT ]9a x 1 A*# 2&#p +5(Z#FF<g60Q0,#0Q4"1 Rf"J! {-?F'<0c 0TYǮixxLpH$a5e r&7?FQh|a-|,CxEe}$X%lE?FV}w{|C|80}-|?"l!eEeaM?FO|7#Nqi}=ԡ$dduC_?F:s?FQ+7?FO9 uPu~0y jBqi/3-u_2O<-u,#$6v›l* ," z3H[o'?F hnd?FCsM>-|6`؄Ì~[U0!܉f;-aaiq x?F#^|P-|hP`]H<dp&B?FŜgN,5ҫi~l/WG~Ɖ|] ܉NQ*TMW.DPF)?Fa$IKbүnexC؆˄ILMƯدaWe=j$,$,hx?F3%?F+S 雖dNɛ˄@&fUٌ[?承uW[w?FqoW?Fsg:o?F)3⿗1܊5#AKƉsω5`R!Oǟ1a:dj{+ hʲdde5a:f?Foj&GCx9e2oeWcrA 3"5a5PeHD: H h0>Th]]9 MIAUFe?FM᜕?FXWF-0?FO?PDJW?A$> n JuM{` ?e ;  u*t'  Oț2mta{ԿHM3.Jv??v*Ij/I>JU2N贁NKk?<@M#J&A@bI(bW)U+U+TU&J#!!5 `?CopyrigTt (c) 2`09 M c os f"!r 1a i n. Al.0 (s22e0e vD0d&0!3]$#y#&#4#9PO"Pd+T/u/%-#,# '6% b}59 DFXGdG'0UBţ6!4a dFxJl(,&}>UhETh]]9 M9MUFJsx?F6?FI?FnjrL?P9V> $ 8 L ` t JuM` ?.BVj~SuJt  5hޅ%ty!"_:~څ%''"%'Bs>JU2N贁Nk?<@M#J6A@"b98bG9JE;E;E6J3115 "`?CopyrigTt (c)02`090M0c0oKs0f21r0Aa0i0n.0 Al@ 8s"Be0e0v4@d@"13H]4#y36#|D3I?A?2T;D?e?5-33 7F%0AbmE9 4VXWTW'0URRœF!DaR TVhZlJTUh6UT]$8]tA1 QJVb(T3RT0bLx"fA RSf"J:mGӎ!=Мoc ]rte$a31sE?Fd0!@c +HjẏvR%amE@uRU?F.$wX|'1Tn|pA-x@uӆN?FFoX|1Rqyh -x@u`CB2OX|Ә {n|O$ dCe?F_';?F4Hy ?F ! uPu@[y!Xn|kb_6nu(nux#vi8˿IQv x" YꥬM$5zG?F}Bh?u?FoyD?FYό Ə،m\ҋ:n|XAB0B5R+?F;(h?F?F;S4، nB6{n|Jqe!{q o.2ZQI{]>F˻w&t 1t?FOiL،?ö}>{} SS~DxĶȯ]z#0bb?Fwϯ،BZc4s  x̶.jlT1|t[mi 0?F_?Ft ҿ t߇R?ɨV=7Th]]9 MIAUF9PR1?Fq`?F]Pġ?F_Ӱ?PDJW?A$> n JuM{` ?e ;  Su*Jt'  Oځmta{_ t-3.JvĬN %e?7Ùf?vGOw{jyƤ>JU2N贁Nk?<@M#J&A@bI(bUW)U+U+U&J#!!5 `?CopyrigTt (c) ]2`09 M ]c os f"R!r 1a i n. AUl.0 (s22e0e vD0d&0@!3]$# y#&#4#J9PO"d+(T/u/%-## '6% g}59 DFXGdG'K0UBţ6!4Ia dFxJl,&}>UhETh]]9 MJUFâ[w?FVFc-??Fx?P9v>JuM` ? )uJt  81QEt9Siޯ2ENEh^ڻ IH^>2N贁Nk?<@MJA@cbbU)++&Jy;?u)?AbP)/%/F%B!!5 c`?CopY rigTt (c)(02`09(0M 0c0os0f&21r0S1a&0i0n.(0 Aln0 8sr2eF0e0v0df0!Y$b-# 'Ax& 0bP59 6X7G'0U]BŔx&!$a $F(JlJ]Uhz@11!ZF(?~O攚   8P[&~ 6RcVJ:)Hpv ?#V Th]]9 MMUF"q?F땘n?Fq0>?F_A!w?P9@7>M  $ 8 L ` t      8L`tJuM` ?""."B"V"j"~""pu)Jt!  1X{%5t132m_%5.7RjX6H7!>JU2N贁Nk?<@M3J6A@C2b8b9J;;6J=y3;?3UI?A2b9?O&EB3AA5 C2`?Cop9@rigTt _(c)P2`W09PMPc@os@fRAr@3QaPi@n}.P AlNPU HsRRe&Pe@5vdPdFP2APYD3-3,C GXF5PbU9 VXWW'0U=bXF!sDa Vjl:J Uh^maa]`t AQ֍A8Z3FWY?F9#}"# C22@fCsa Ur)[v2JAURo?FN?F=!?F G< 6uPuyA/ybMv Js 9o#"u#|u32$N 4 ?A~0 f? h#|S)?"2@Ts(<2"41rÀ5&Eyq3u0,Ǥ?Fs^?Fq?FS|xX1y6>|>E<ti!Z$@nqcN#`qBsq- dM?F"7z@Er4s0{욹nZ|q9a!i[+|ҼN#`V}188| m vqt(?&4yq`y:#Z?Fvd@^=PiY$|n׽\|6 ^yEb$ ^S ݿN#`"jtyVp`iK?F3H?FڛY ʜ|B6yI^a};I| Yb[soq|U?n \*O#`7I~Fmp1BB{?F>v?F 6Qqy hq|o]^})f~^K!OM3`Xjy%gzp jh?F t?Fŷ 9X|9} |)x?pM` #e2e:~Cra D)2HD: H h0>Th]]9 M9MUF$sж?Fp b?F4tV ?F_<?P96>M  $83L 3]`3t3 JuM` ?3.BVj~)uJt  DYU%ty!"8Ӆ%'fY*%';ƐnƤ>JU2N贁Nk?<@M#J6A@"b98bUG9E;E;E6Jy3;?39?A?2bPG9D?e?5B31A1A5 "`?Cop0rigTt (c)h@2`09h@M`@c^@osX@ffBWArZ@Aaf@iX@n.h@ Al@ ^HsBe@e^@v@d@"*AY.D#b-3=C =GA6%`@bPE9 4VXWTW'0URŔ6!4a TTVhZlJ <>Uh$]T]tOA Q1(`3F ?FiXe& 0On?Tڿx#EA_0_;Jb"JaFK`E?F /?F߱)\ uPu1ad0kvX'qeDz`Ֆex#P_v^ܿ4 Sm?T0 -? YzO?x"pp1@c](Qv:y!r55a3id{ Y,?F\?F O&&`VW:E3 xui?k0M5eigJA|@ W|wv0rIQv v uB@#aE^0:O o?F^k#?FTL?FY.}*\/~kU?F#]ҝZ?G3´<]lѤqA|? yFז_t&o˿Wi}id3.aДgSh?FDR<<ddT0~B{*!ZyqH_C,qÿ́w?F?F}SR?FD?ƙ!FsU.RM .fMA.zM +M++M.++M."M+"M+."M+B" M / 9Z#j"M M / 9#"Q& / 9#"U@#"a#"y&/9# 2Q&/M#"322y&M='y&x(-63"-6(-6uM`? A7242H2\2p22222222,2$,28,2L,6d(6x(6(6(6(6(F(%F(68686,86,3B?T?f?x???>u#9|J2b&baFU*JRu0;t1 b.!ta  zKdS'& 0JU2zGz?@dMc vA@b\`;xbIyV{YVv,r !:tJsrcrv rArb"Iy{Fw,r|,rMNsTTs`?Copyright%(c])%209%uMcos{Ifzr}ai{n.% WAlр sՂUeevdɀ+bMs` `vba3Wbtbiv eqX z/'0UÒv.0 zlJvUt@S +HW!!1<!.!@B!oe#Aqhq}?FTOp2c r\2"02c JWidxȯ(U?F:IВ?F -e젌"v?PN,DT! uPuqMk 6̍B!23ץE c#)!:2 Fbk  1d2b4?Q& Bbҿr45u)3ߤi]~젙K.LL̖bTJIr^F_ l ^c ׳fif|F~1r!o` GR["hJY@]+ݾ?F6vb"BFϤ %7ɝh|ֻL~|OߔhcAXT4B;CS;YBUߤ_qt|ȝ\ {~TqUAdɼx1ֶ?F|DB젓 Sb\.B| JLǝrZ~HĢg^ޥFg?F$@Į﫶 ,3JaE̲Sι?x<#̿- B 俋}p4<'xld~1<ܬCs?FicuU FЪ֌?< 1TZ pq~Y,ͲJOuOOadO"o4orVbP}q1EʄOCZ d:d?FQC;sl_<>Д]xeW. buDSwV*ɟjoko}o(ZoUgrrPʃL?Fse9mpi1@ps?C>O"Y+Aq[*2l>M_Xp#:,?F[`XK ^$ǽhXvFLzN?F-\Z?FM+ ")?P@Μ<^'k<\ 4.iyq1Kqkjцpqx"pȯ(UP:IВMk=6̍Bᦺi(֋P:mk?FJNHP?PN,.y1",+~]s\߂~]5zn5]?]ȻEtAF5G u$6GaMș<ѶgQ>E% Jצ#{~[:ĂKǯsԪhZ*ߝVU4db62GA,ϹJLk81-s߭f>T (ז0g1!e\%zynA,=͒}s c 5P=D mOAؿvP $kL`C@Y?F,ɴZ`2a]o*"+H) $WV= ً5Od.t@//GB"I0}!!v!M ~+ ت!fLZf-?FOgE>k^:Ўmz@ܐE! cykA$i/ Ok/5BOkFBKHgJ&?كd v:Ì?JO\O1/6O1_C_y%tNw&q00[^cAD[F=k"l4 x QP*% T|0IWj&?F?0ۃ4_#BDM[ٺF1يC nf1Wob!x///oHokJ?~CvY_0 ?Fy]Gp0V~YPM'aܿuiTױ ?pNo=W/_$OpG/_قuO> >F6q0>XY'O?/?A6ُ}Deٱ 5?u_aX݆ϟs+?QcuAuu?FH_*|>Pe hV8?FeHN55/Ԡlփ~+'vc>`h?Nk"\T`bmMPyG&_Sf \l>{f`lER ͮF9S*#s B}PBA9!F8D"#?XOB H^Q8~dx13so@+_dEoMsGyD|fXDD4D#DDXE@EEEgDhE\$HF-xFAF^؇FSF hF, G%Ge (GnO-G 9GP!UFDfP h>$KT 6D UF~@x! <`>!kbs{kbsi^% X\/7'TFJ!DbA[ qʕHDB # =hj8>T ]]9 #2AUFM&d2?]?Q6 ~A@9 hpAW(4?u`l?Xuhib  #AEJU `0.UH :l$'!f$5 #!`?CopyrigTtk(c])k20 9kuM c os If"!r !a i n.k WAl (s"Ue e v d $\#2q+0?*?<6M?\.?lp*E&B=#Hn&M4?6PMM4-,(,m# m'6##0OoNk3@*6'l6 ?Uhh#3 t!,$ BWaBE@BJ!>BdCRQ, 9VM (DAAO?_SSUR%c^|__WSU5cU ___C2O;rAc#p (e jO(heoiAb59 7,X\,'w'<4N%!4!m; v$zHD # =hj8>T! ]]9 T #iAUFL&d2ٿ} ??FP!3|>2u `u bu  @[A-0' - luu`l?ubC Ae"& J0G6G'0<p'"R('%.&' '!$ +/ "&"7/"',? U`0 h:HM %B7145 11`?CopyrigTtk(c)k20-@9kM@c@oKs@fBAr@LAa@i@n.k Alg@ HskBe?@e@v}@d_@4="36MD?F-P?M-83 7ԿF#30O贁NkC @Lg@?!Uh35 A"@ aRKaSPJOQsb2t8UoAo,giAreE9 6X7g'2Uq`^!D1 5 fj_(Hgyr Ds{ 9O5LFȍG 'w#7E)B 7G]a53,*@+G04aGXGdiPxG/G2PUFD  h,^TYYBBUF\.?x<F BP(c?P?tO @L^^{;B_@L&d2?sU!&"/ȍH$б?W/i&? ~t  0 ;QB`#Com ,link\netw r*"p0r pP1]a ,d0v c0 /1^ ; YP!3u &?  ;;" ;;;gr330;G;#7Drag onut heqp ad likb tw e cmGuiCaisd vOe]sBKcnTe)*`i]^o 9il^)n5k].b\.BP(?? M7Pfo??H D #  B>T>':)DNYh>) e0T9 EM dAU@\.?@?@?BP(?P6 .2A7 7P u` ?8=Q Keuoasu`u`bu`u -##@"L( (0!>zLU<?&(?bAR%g#2q l?AG}F]#qa0 c{`Con0eoct 0r 1l2z0 A0 +` Li2?05U"g# ~#"9 `.4 u{0 `:q1276' x:^%g#@KF$=mG<hB<wOEAGMOQ8u?^"f 4 #G<H7g#AwQ17;1w`VA0s_ RXYJchm!#e5P4PQ`? 1py0igPt (0)P209PMA0c0oPofR 1rP1a0i 2.P ARK0lPWs)bePe0v0dJU" Ip`@#neϥ?xdnf'#rK"c'#f `/2 k@ebum 7@w!;FPSeapb po18 `Qps-8R_t-0`R%J1^#B TU7^%\f*?v~!)?LEp &L,5bK`&! CT<0oPm`s0@a> m D/^""QQl2 2B33B11B56hR6C 7$PMC]E(j )w*:B^%]wQ1{U_ B@#"w` M`nu`a2u9bP1vpuqMc;Ca𡟳œTr`PrRdؐ1 Nؐ!m0k6['Zœ!̓ P`rRdEkœR`GD;bQiPeկ3EĜAP>aůYU_hœ%̓ S?bi`(aѿhUz1h B@̓L 0chAWej|ώUBؐiK0dA2gDMMœ̓ R 0oEAYCUœ`Α Apm0n0}Rfz\SP)aPF1lsQ˒W` ;iC`i0y,B@ ̓ ITPOP` 3c/@śSؐbP` 1mP e B1U"%Ѝ# A77^"[(qpPU]=`% &ROái;bBA`NEWOPKPSA ETPQOkRIWS1PT#ѿq;A11^"!! mBz3BB@9191A??´[(3F&p`g1q1 !0 2`T#;4l5cTIt,@r^";E3EU$hU9_D&zFBECF3s͵NSY";ų`pv*HA`bTfo?wQ&bu0HybDr)Ixbkfz`RQz:c exhGFRbBb<\ARbBg"ұeT2b @@-,eu LbrZSt?A////3s8BP(?N#F@<M?Orb:B$Ix\iĺAqG(.f\gXtFZ'0ye] IV]Zq 8BU~\2C }'qbšg q9#3^sGE[Tb%@tbSAc2} 2FA ]bF" JZd~Eq`axe@:F.qTba'g UD?@ ?`0o:C)aY3pra0]! \2rBa(a 3G2T3rA 0ex9dvn]GWrC jae%ah4F?@ p8Gp  Sfeb]oobs5{HZ,+s 5)d5ukDnmFG6q#F8B}G]a63c9@+x/`He=aȘG PUFD  h(^TYYBBUF~?x<F BP(?P? ` B 66 6 66^I6ȅH??A>IB@L&ɯd2?-(?\.1(. sUW!U&w/J G 0B`ETerminal,s"v",c i nt wo k t t o , !1i 01, et 05, qu p 5h rd0]1e!i1A^| (]G|& n?_ Q4FPR? pww {pv w wxwږ#wpwp~pw~? ~' ~~  wwpwl+w~wWv-{wywDrag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aab~߿?)j࿚i?3@ ?DUG DF P# h @T(PYY#EUF~K? P} 7K.B! : DTDh1YD| A3 AA3AA3AA&u` ? "6@@TThh||j&&"u#L&)R2%X<X7eqU ??' 4Wb0{[W`:#2P6Q3A"'򉄉Q9 ^ L1$K" H7"G' @>>ÿ@q@E?DF0܇rzBCCB-uI@`-1"Bu$ @]GbC$ Q`'(R7"A& <4' &)9u`u `"[ bz'$u`R425 ؓ3Q171`Vis_PRXYcPm!#58`0o68B`?CopWyr`gPt0(.`)02<`0U90M`cU`o `'of]bNarQ`aUa]`iO`n 0WAl` UhsbUe `eU`v`dR13d45*8=363@2t66 24B#30Ur3]w,A$T!^@cT<`o0m`s]`a>gdPa!gRsAA2hhB)p3+}RqqRqq281pacR2+6uM\$ %G11[2 P@ЯRECT'$@ b23;.UM5s_4/&ׄF3s͵NSYFU00UQ#,!@Q#J`epE>Ҡj_7Nam uBtS` SB~&_o<м_oB=Eoo/.c` WI4q*ՄVoC`C0N`҃?w`M`mI2JmhO@E!4ay>",>jeрϿ55 ©ltgИa ` %_0&ȳa5`NTW_ORK3bHPIPBQRБR5ISЀQ<) i$ eu؊6ŔX·q-/'0UwŻѡ ˈ74hH臘h5: '4ANѤ%Nb͡"44?4A?4'?e4[?4N?]4?4?Y4"4?9%4?%4ɥܣUHLuD" # ;3h( TEJ eUF~K? P VN% @*&>uA` ^?Ci i4Fu#Xp^Tb>tU b7t>U2zGz?@9 #>/&A@qa(bo)e|+|&R" !I`$>)##" #7"& "g"bo);l'R",R"/N )#z1z1'#`?CopyrigXt dc)020090M0c0os0f21r01a0i0n.0 Al0 8s2e0e0v @d0"i f  %!X)#]'0UB&T50 PJl>8fUlYC !(#pAg!(:)#FM&d2?qFGN tQ!P"(>!p8?ST0gYfRaNrTaU3^\.,__ 31bXEU[Vj?F@  l(\\ rX HYF `0QYp= ףXo`?̺oZqapXUL_^_p_\A*# ?Fg?l6 l\1"X%Du~ |!YRQi3a\ayo7;mDucP]{1cr|%iU{^?F^ lʡE\1_Zd럄ht X01?FXE#?FFb?PƚK G2G2 lû c_tFaXNTN]\R-\^Dr7 јٜ ZLT4&1pBHZlr À5%8yU`0 ST*J! o`rcݘEF3?FAM)ỷ?PMޟ+=){ )LFj?cl~Hӿ忷ǨHD: # h4>T]]9 M qAUFU*JR?FKRT*M&d2?Fp_8w?P6 L]A]M ($JuM` ?Agg2DSuVJtS  tq= ףUp$_>JU2zG_z?=@M3#JC&Aw@b#zw u#b( (+T&J[=# "?0& ?A$ /%B=#BZ1Z15 `?CopyrigTt (c])020090uM0c0os0If21r01a0i0n.0 WAl0 8s2Ue0e0v0d0+"S1W44#-=#f3 f7&4%/O]FiieP E9 ]FXsGL"'0UB&!4%0 FJlJQ h@$Gx12A!1(Z=#FF!0JR Lx{פ_Q\  R)V4"JVT?F]Q!?P-M G2G2\PRSWRc^_Lr___:M -LdTd&!&Ra@SBЯoogr5%Bb#iOD"ZoZD?B!)$a EeVHc^?F7zT?PxT8QoWmilvd)TJEvސl5 gvtmFd(:w.|&E2_U"rA k#ރ+"HD: # h4>T]]9 M 5AUFOt:?Fr\.?F#H$?F|>?P6 e.#A#b  JuM` ?+ILKu8Jt5  r7htyw/ؤA>[JU"?& ?AbA@D"bL$J#2zGz?"S@MJy&M#b#zO M(bL)Y&S,D"Y*B #115 `?CopyrigTt(c])20a09uMM0cK0osE0IfS2D1rG01aS0iE0n. WAl0 K8s2Ues0eK0v0d014-#*3 *7&?!FiieP59 !FX7G'0UB&!9$%0 iF}JlJA h@7<11D!Z#F&*JR?F9.4mL AxY S+RJ:rTDa@ RS .S X%QEU~[r\wY aU5UFGh4\Q iʧEQ8y^Ffj?F~@W?PbʒK G2G2@ D"]rA R#s c4v(O A.x$&AR q|4xa@S#Bsdvwrb5^%HD: # h#4>T#3 AMT JUFx<?Ft:N?F~?F7ͯfл?P6  >JuM` ?juJt It=WGWzHRIlQI#>[? ?AbA@"b$J2z6v?@MJ=&#fb{#z (b)&,"*B!!5 g`?Copy_rigTtZ(c)Z2U0%09ZM0c0os 0f21r 0D1a0i 0n}.Z Al_0U 8sc2e70e05vu0dW0! $-# ',?6iie59 6uX7_'0UvBZ!0 -F"AJlJAh711!TصTh]]9 MP qAUFbX,?F3L&?Ffl6?FWjZ?P6 L6 >M   $ m JuM{` ?=cc.@uRJtO  \(\tu_VQӽmI[>JU s#<@!A?V% ?zAJbV @bbbz #|"b#$|"bĄ$J 2zGz?<)@M/#J&B(&$%|";T'|"*B9#t1t15 `?CopyrigTt (c)02`090M0c0os0f21r01a0i0n.0 U l0 8s2e0e0v@d0'"m1Yq40#b-9#3 7A#-(0bP#E9 wFXIGG'0UBŔnF!q$a TFJlJ8>UhS2Q2Q]1LA|!-(`9#FBP(?FMx HNټOqɠ[Hl[yQ RV0"JU}e\?FAϡ`2If9?PaEQosqvyifdY0_rޖlͅhn4g_oeBdy$w4|!Z$ܿ__  %$?qyU2_U|#rA 4'"HD H# ih#4>TA#3 AM 5AUFbX,?F3L&?Ffl6?FW_jZw?P6 . > JuM` ? IKSu8Jt5  \(\tyuVQӅmݤA>JU2zGz;?@MJ&A@bE#z; 9#bS(ba)n+n&J[#";"?&L ?AY$p/R%#115 `?CopyrigTt (c)U020a09U0MM0cK0osE0fS2D1rG01aS0iE0n.U0 Al0 K8s2es0eK0v0d01E4D#5 Y-?*3 *7&FiieE9 FXG'0UBŴ&!$0 iF}JlJ(>UhiI <1Y!aRY4n Rx_ J:j]_`0 Ɓ_.S F) 8qViH$D?F@\.?Pַ  G2GC2\QYV4GK`mA.x ΤAR Ԡ3l4xa@ R#Bsoog]rb5% 8 bHD: # h4>T]]9 M 5AUFQ( B?F].r?Fx?F`0?P6 m. >b JuM` ?+ILKu8Jt5  ty(\{GzAt>tJU2U"?=@MJ&Aw@b9(WbG)T+T&JJ[#";'?& ?A?/`)UB#115 `?CopyrigTt (c);020G09;0M30c.10os+0f92*1r-0f1ai+0n.;0 Al0 18s2eY0ej10v0dy0@!4b-#3 7Y&?Fiie59 FjXG"^'0#ũ&Z!$0 OFcJlJ8>Uh9AA x"1DJau'Z#FFp8 J4T .xDD3AQ]M RVJ:n] ̅_Zr==B&d2?tW~ɲ`?FH!{?PZss G2G2 .S =;;RSW4O+EA.xSfϽ؍AR X]ded4Jxa@S#Bsoogrb5w%Q5U}H$D\\~?BBQ5\~CftZ a axUv~lk&lqU2n_U"rA 5>#pHD: # h4>T]]9 M JUFp8?F}>??FbX,?P6 >JuM` W?SuJt  f\It=W|?5^UIRIlI +#>5 ՆJ[;? & ?AbA@N0"b8$Be!e!5 g`?CopyrigTt (c) 20 9 M c oKs f"!r !a i n. Al (s"e e v d ^!b$-,q# q' &2zGz?@MJ69#nfb3z; .9(b8)E&?, 0"E*iie59 X:7'0UvB &!%$0 -FAJlJAh/7!0!eZF43, E <ᢋ/.# M OR|VJ:VjUS |bPReS0QEUxx#cHD H# ih#4>TA#3 AM JUFVj?F\.?F`0 Pn6 >JuM` ?uJt  3\ߦIt=WIRfIl$#>5 J[w? & ?AbA;@0"b8$񩣑e!e!5 g`?CopyrigTt (c) W20 9 M ]c os f"R!r !a i n. AUl (s"e e v d @^!Eb$-q# q' &2zGz?S@MJ69#fb3z; 9(b8)(E&?,0"E*iieE9 X:7'K0UvB &!%$K0 -FAJlJAh/7!T#cS( bUGD  3 h0TdYYB IUF}>?F&G/?Fgl6?FB\_z17=w?P} 8f u` ?0)u:t7 ? = ףptDʑ_Gzޑ?"L쇪iU!!`?CopyrigPt (c)J 2\09J MB c@ os: fH"9!r< u!aH i: n.J Al @(s"eh e@ v d  #S$#%B- ## '?;= # &#24 6 6 2$# #0U2 3@&B A^#5 6X'7'4Ŕ 6!4] 6:e6^#[EBM #HA%DGUHuDh" # R#U U  >]0T]]JUFgl6?F &p&??F{jG,"7?P  uM` ?j`fpu#zAtw tnٳ \b "OMGt2N贿Nk?@MM%&A2 bW(c+c+c& !!`?Copyrigt(c)209M c o%s f"!r 1ua i n._ Al-0 (Us12e0e vC0 d%0 "!3]$#Ry&#4?6QC?]"W(c+Q;'-,# '6% h|5 CFXGcG'K0UBŢ6!4I cFwJlU!#A(:F<3)0 vc p/y $(4!Xv݃`?FZyE}0pS a۫YQ\I`X3Uk?FQYC~\f"qoY|5UD/5?Fԧ߾ \F\bJFXk_}__\A#O_"_4_F_X_Vh#?F=]W\>ۆ\34=(_V[e¯?F'e*m#R)\b@QoWZʵ?F,ށmL \$6ԡybm&>e?FDȆY\.Iſ\)ozEU 2DVhVၱ?F}!\\wzVxtD?FYY4F-~Ȩ\(p|y m! ?FߝBF7+*y\= ڙbm&R{?FbZd\Aa\?ulď̟EY.@Rdv m5[?FRⳭ8HJ|\ HN۟VHD2?FߦM\\A>x2V8`?Fitͳ}#E\I&)|5e?:Xa"7["mSpd㯵ǿٿBeJ\n~.?oJ4=|nn)`]Cc֦Š]]7PPE5߁m:2\y_1W3E?F#Bd\eÉbm^9^?FV;.O!thV\9MύAa\n߀ߒߤ߶߻VV ZKX=\ .c|~k綖d]!:`="K\lJ(i0(dV;amЏ9ta*m \ǀ_?bmcO"QGm= bY~\r6y@ύ# AuYKtxoa{6\/ 4)V w!>?F ߄*"̕0ϓpD!K>?FWP! -ߟ:{Qb?D)bmh4(?F|hS ߵ.f-R[Ϡ ύ //-/?* Y7Q%i?F_s"'a E/`'r?Fs7"̍^sÁm;]֜/O?F/RE"ןh~pMM/㿈E8:͉@;$Pe"̪ (M۽^mJ?O.O@ORO ?????O%?kZ@ I~}P"P7|Msk aO=˩ ?Fa7 >fɾw2θOgl6'"*’ ܏{7_(4?F8W!"̿z2m^Gm}>IύAoSoeowj ____o#o\+w(@ `&"-JO}=O^f~oyV 6?F9~"̓ ;M\Oo~ahFp@o!"?ݟ$Eߡ?~%^]"Q>IۢwFX"̰4txڑ3:\Qcu '9لndu%?F<2}G"^̄ZϭSԓD-?F=ߓC.k0w]<<7 Qv@b" "R؝f2]bwƈWРJk "̇1%~]F@m 1CUb^fĽ w \,X|4]-HuvziP=?F ##BOP9]ǕDG(t{GeY zKgPfO2~]9+T~]~;?o-L /=m$+)9ϡʌ);M_q 0;F,5Uz!izVsJ}0W }f6i,g8~ٜ˺A}2!~ tLհ#QqBZ$@S]5tC6 e`,.zu'J1ߥ6HZl~"~ѠZ cX, }ٜ?J\1~C( k0ޜcAKrзX=YϯR p0%N. X, I6]+ Ӂ?FI:5;iU,=A  D)U= 1qRdvE[%ڻ2i{w׾mQ7Z'ütUl?F3&Gsj3jܙ-Ow) S-ۇ4H-ɫ9].E|"?F&ti}S`Aܙx@ ///??Rk/}/////b"m X i)r~ٜوWjFQ"?|PP?Fo%s=De9gsܙaEo#IOl֪E@e~iY/|dM?v۶ :YhSQv}T\Pˇi/ON|aܙz?`$OO__,_uOOOнOOOI@B?FKTG.i`AٜlOo->_|?F!i_ ]gٜ?, )ʼn!|?F3Ck*}DxZٜ?]QVyhk߻?FX[g]/I ٜ?bvd Co '9Koooooopj T&}j8>ͯ߮\nE@L@Gٜ|gxgx0Y3N,*ݖ}T  MlfahhÔ}Dq:6};p/"_f/-?Qc я$]+w(0p:dy~͇JO} M?p 0!s?FYY4ڼ~iS!(p|ʟEDk}'pҧO?zA'xў?R_F!] EQ>sNϽ=(V-Sewaۯ#5ٿ9/{?i߼$&B4O% C3i?y}o3qo?Fq ZiD!'FA\]0$=ڵ}SI6?Ͳ Ai{ߍߟI 0BT~#a\.LSA-BN^{q"?p?Fe6i㪡<_#AA}2![?F1:!6F! [jtE\qRD%yjǍ6Pݿ#V<>tl )ae"%7I[mzj3?C_%?Zzh̿Z} ?-P N?/????eK?]?o????yxz`h qDa.??>#L3ўh>/Ew9&:/ ЎP.JhHkOQ qӠħOʜ- &h̜zfUm@O___oa_s_____}2Z?F$'_{uh̆Ia{V?Uoǿ7e~h̰(ecy) - mz-$.hhsZ}2Ca6o`(~ "?F0.MX×mEyoށ顷6\Zq%բ}t7Z?F~ Oh?H |A?UYwkE?F?>C ?<a,:wPI5) ߈2/WfsM% e'MvǃaËgO?F%F92\aI}|b:B9 /VA ȒTH7D6D # 4# J  !"#$%&'()*+,-./012*3>5haATaaMYUF%>h`?Fr<."L?FcG?Fqј?PM ]u\`^?u#t  EF't !#"UY%'~P*%8'C"Ut2N贁Nk?@d\#&A b(++&Y/R/$78?#bMd4z (+b/513%R 11;3"`?Copyriug t(cU 09M@]c@os @fBR Ar@GAa i @un Alb@U HsfBe:@e@vx@d"1Y]4i<3K 7966i@15P6XGW'0UBQR96W1 VZlY]U]l@TGA#1(!l[?FuO[0:$}#)ߓ=b!8e,չ?FAOw(lxrNj$>la.PXTh|3ecztaLN E'm:"n*&G^|%[a5:q m5a)k?||=a Ed0UgEo"o4oFoT#______evHG?F3'y~|3`[]Ք|cToev_kfP?F;~|S3ٔ|\£oevV!ex<ڤ~|{ |ev-+3t#~|;6nRcoj^}.@RdQUev~؇Z?Fi~|+|ܔ|JCjev<)OO~|p )yBr7ev1 aNְk ~Ůeąܩ#A 5OfYQWgn?FO*~|Ch|`-jݯev%~?&nq΃0xi7y :kOop ~|4ZO勿]oρϓϗU+=Oσ+ӑ!]~|:<]їyT}ςT ?FO'>]P~|qH~|ο:.H!|ςto w'"~| 5(CşVPevR`t)/~|?7>-<Ѫ|Ra 1CUgevo I?Fb7~~|/ͼ셡yoevkY?F>_ ~|3y evMXy"}~|ω9?lev ?< "~|^_\˱R&8J\n|by\M[`bD'nnEm|<z_m6itaW}nk.V̲ocxL45MR9?}.mE?KxSi#;m1LL'7,}K^>P/Si^}///*=! B/T/f/x///byYEvk덚4D2=y_mS M߾}zNmWUdw4֢DB&™t|d˽\Li#hމQ?7B%$Ĩ^QUHnOOO_8& ^OpOOOOObyV~%װ!(E>ܩu;ofUN1[D}~XXtۯ~'haCjmt{ܿ`Xn b_փ%hkqwu~R)uoo 8& zoooooo~KL}"_!eΟW?N eFjӈHi>DYH'h(%i?}ou MMXjQ %f[݉gm`¥ G8j ,E/R&5gS>Na8|'hhv_ ߖ3bW7mȧս[PebݱJ}:?nuTѺ 2DV8& į֯ &i~FR?[M%- q?j  DJP}uQ9/'hdfO?FV+p\[Wvpa9| wdѿOtZ(UxzêJUfeC(6,b#l+eR(߫\(V1:9Oi:4ߋcG1!Gq}9 ?C)uNUBv(Bo?FO& v!~5I-lym(,.$23G_CRHCM4q6vl~_}5#7o Tfxy?F{UX>͘ Uܼ*d4Ij@ ?Fi; Ly4GXj9 g1re-#d\D-h:Pc}Lw4mv/*ĩMQy S:U ߟpʟy7j?FZ?W+}(U*<SW?F .턟bGF赁9 <8߁-`Z͸~~5 CTc/ws}e v#P3ׂo(r.i,"4Nr¿Կy=Lu?F7G3z 9 ˇ 5F?FJ.3$w 1tK -o9a|ዙCѾ;-z0ƛ+WzBg/w-%&G,ߪ 2Dؚ5F] MH,>PNr#߽v<߯0ʨ)QMLTgMUs}I$FATG}=u2f`?}1&OwuXp+MEp41}o7o9ݭ&fgPy}}M?=;??1O2DVh6 yJ]}z aFgRlnk6+nɣj4 anf-n_h?+nj^AoxvTN.g!uh-Vo@MVp >ߜ)sPU 1D'[}LG*>QoN/`/r//.V//+/=/v(#xEAGw} }%(Lʧ1;$gKG"V2w]xR)vJD)3 7F!nLigqN|ݭƃN'QM7ZSF^ jO|OOOJv?O O2ODOVOOh_D PicPK>ѩ݅cDchQ>M cAѩ JBɆf!\.S6x~r|#ݭ#.CqQzUȴ߯b~(oooofo*o<* 8}\q3h^ ߻l~ϢϴQ9 AS@XC^}|/9K ս5١TB㰉\JA**=@$,Q9G\鐒?FU ^d /g [A\9mpï?FnrB=k X* S(N A9]'Nx =$.T~v )\A?S7|#!8+|z AM}D(:LfQ9j,,j?F4*a.ȉ\zFq&ǻ}w^Ym[6?FG!Ɖ\0#Jh@ /x|I]11\\o=P|G>q2:]_1BM4=1vq"_]=H` @]//?A?S?e?e ////??/ԸƑ?F qT}S҂ ϵymޯZ?FQo8G} ϊx"1IQ }M}>~~^{ªy1}eYQrŁ& [ׂox^.cyOK_]_o__+!OO__$_6_/ٗW(?F 5w*zi۟灜i{ސ_26w?Fߒ(xJJ쑻+Uϰ|]FuqyUq~iT ]~[4vp=!;L }?LYh- pzK"o .@R/R7?Fhߤ? QTJZ׬23l%?FO& ?GSۈQ?5])B.zhɅ($Q1(5} X㺾 ?lرc#&8J\n/_?FdW2ʼn@-1ş9ȟ2֮tp?F<*fB s1]V%sAS})Tk{#/v2OB!XLi.݉}1̾MZͯÿտ$0BTfx~P _! QR6#I -hCFUz5|Y}N?#TG}"F$=c*c,j4Z>[T-G#ϊt9a?FQڧc,H ~{%a -2FA`~hLr Xޟno#:L$FFǕgtg'bl[;| ߛ{-,>PbtG)AQHZ?F;ƃOc,t[|{r6<9{mgE?F Cg=:*\R鬱YG/7)- I;-Z?N5şZ=/I'nD5-!bp1{ IWx^q2.BTfx\PX{Zxߛwtu,]R |{A&BQbhì?FB#5һ5(B]-nf!Pb,$21Nw gnV~B]gyz9^p 7QoGI|q~-9@d]/// :/^/p/////\ˍ|x?FȯI|hLYosլ{m|^>`tzϞI|ύKYʰ;!l?bsdzNQN鮢I|\Jm^*Hq^o_`n~APpⶍߥzȣs^ˀ≜O__(ZA}OOOOOO_~ޯ1}^i8Z`֋ ŸLS$W+wvqO j2~Lx/b6^Ni~ KC} mN;-럴 =T=qip8/~ h ;-#霝 2Dz1oooooo\~DG߷&wz P}/p쯹BxN]dK]y.8@h&V&%-2|ЏLWM;| =yidݑ%%-tڨNR 2DV2ď֏ : O21f& =Q>Nsz99]yX21 ;>#94oQ>ݠ_g?]^%mT`>rG.l(5sm H_`?#~6\9Ҵ} қhnBk=Oas#3ί(\Ofe#y~NQmr갯]ߕ 6m^ϕJY9]7}}NQ X]n;m^uԱ_^?$R?F[5l<;Qq<7B1b;-Y='!"/;mZoY?4cgC2oXj|ߎ84 2D\M'g\elh \~5[Vq:a,8ω?F0 iWi&4\GbF|aS)H9z#/<^bAL_߶,fdlEH{=uU%5*eBn v;!#4?FADo)XLȚ|bv!7A!*EKGalH`.P%ҧqp6t KT4HD #h34>T33 AMT JUFM&d2?F W`?P6 >JuM` ?juJt  5]It=Wp= ףIURIl#>5 ՆJ[ ;? & ?Ab A@N0"b8$*e!e!5 g`?CopyrigTt (c) 2U0 9 M c os f"!rԎ !a i n}. Al U (s"e e 5v d ^!Eb$-,q# q' &2zGz?=@MJ69#fE 3z; 9(b8)E&?,0"E*iieE9 jX:72'0UvBŴ &!%$0 D-FAJlJAh/7!h0!ZFg, E <ēNmP#  &OR|VJa9PY]PPReS[RUV%:]x#c S( bHD H# h4>T]]9 MT JUFp8?F@ W?P6 >JuM` ?juJt  f\It=W rI*RIl#>5 J[? & ?AbA@0"'b8$e!e!5 g`?CopyrigTt (c) 20 9 M c oKs f"!r !a i n. Al (s"e e v d ^!EHb$-q# q' &ڝt2U2?@MJ69(5,E&?,2E*iieE9 X:7'03Ŵ &!%$0 TF'JlJ8>UhAA `!1ZF? `, E <A#] =RjVJ:VjCS |b>RSS6 QV%U\.;\QNYu=!ٱQE^?&d2_MZW#h415U)Hb?*V[E! YB\JQUU+Vp;_MZw@0$[D#h2$_6U2rA >#JsS(#e_zH"%u@s $I/bO`MF@HD#C?EZOB ȳ3G~d 73o@+~Ho8sGHAHoZfhIH!R8LHWOH [H^HaRH1f^ؐi+HHxm6xHpHsAqIup:{Ipz&Z ZH,UFD  h(^TYYBUFjZ?F~??x<F BPG(?P } X ]B66]  TTUTTT9T9d9iȅHBU?? ?B@L&_d2?@-Q(\.c(A.sU!&/)1(  0%[B`(file,s0rv2,compuUt$4d0s40r0b24d0n0tw,0rk!e^| (QSG& i?!3E?? ?qq wp  p w{{ qw qwqw{pqpqwqt}pqppw'wwwbwqpwww|zwxvDrag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aabjZֿ~??cN׿ mF1??*t {V↑T*J?@ ?UG DF P# h @T(PYY# QU@jZ?@~??F?Pn} u{` ?Su#؍>>HX HlHYHH EO.LO4:UDDXXUllk'"&R",I'U25ĉ%4 ?"u'4b0{N[`:Q1#2T6"!^U9$"3&9"/L6 2&!'ݯ>e@ÿ@qn@?@-fB?mDcFԸ0)Bu/@`҈-1Bu@rCC 5GAB"2Cm9u`u `"[ b!u`%3Qo1o7B`?CopyrigPt0(c)020P90MPc.PosPfRQrPQaPiPn 0Al` XsbePePv,`d/`VPs_SBNcPm_!#5P8a` 6!bz1AXE:FG$1 8dT=`XQj2`]r` M`nuPaPt+arp{` ?bup` BO=ݛ`S,t@']p5%m-T݁<9ofm'Qh>qݏ,BT'.at'xXf@>pÿЇobLZdq [ܒrr$ avvvrsW"`ERol]16 бeI`~bb a}abr@6uP`TaSo1u"_u'I1I2A!b[aahaauhAaYypP`Z u*`q`*q`azAx'F5_db&bpSF3s͵NSYJEbrV@ΓB!e 8d : LqW,@rB:@0ɏT}sasahYV搹Mny ` %߀P&S41sa`NEWOWRKb2H PRq!RRI%SQio$o¹h^A'70Uc?!0oHD # =hj0>T h]]9  5AU@jZ?F͂T??Fx?SF?P6 jt`  o?tk[>(A Vu aSuo.]&A]  *ԮJU2zGzt?@L#&A@bA#z7 5#1bO(b])j+$j&[ "*(w "?& ?AU$l/%B115 `?CopyrigTt (cu)Q02`09Q0uMI0cG0osA0IfO2@1rC0|1aO0iA0n.Q0 WAl0 G8s2Ueo0eG0v0d0"1E]4MŤ-&3 &7&l>]Uhz811U!J!u6?F+\.>djIIa? >"(EǑ I%K9E 5EU . K ;;5QIWEEEF _KnSA?8@@Bu?FDR> ?Nk"\6`bmMM\j=am {:e P> #? D"? 5-g?j4B7!B{oogr57!ibDAbE9 MuX7_'0U~rN!$a)5 5vIzHD # =hj0>T h]]9  qAU@;?FI5K?@xEL?6ѿP6 t`  bm&Qo?t@@L]WI,#u aiuoL> JU2zGzt;?@L?&A@b}#zs q#1b(b)+$&[9#H",ɺ (wH"?& ?A$ /%9#BV1V15 `?CopyrigTt (cu)02`090uM0c0os}0If2|1r01a0i}0n.0 WAl0 8s2Ue0e0v0d0"O1E]S4MŤ-9#b3 b7&l>]Uhzt1.A!JN!m.%-+0djV1ax߃S(FJ-&?F mO"> ?Nk"L[Majnha_:e P> #? BK=o? n-?j4Bs!B{__Wr5s!D8E6V 6?wj_|_ ^XE.U@z T6?F @' d_mOoT \VyWxRkrVo_bVh*g:n"'UaEjz36>CN>?Bn}]zGvN7V iDAbE9 MX+G'0UJPN!4ae5 MaHD # =hj0>T h]]9  U@jpiH?F^?@$?F]F?P6 t`  !a&ao?t,F=۳=u;u auo>J2zGzwt?@ʐLAw@b#z1b](b!).+I.&[-m(?0& ?A$I0/Q%!!5 `?CopyrigTt (c)02`090M 0c 0os0f21r0@1a0i0n.0 Al[0 8s_2e30e 0vq0dS0T"!E]$M-# %'&l>]Uhz!1!JF% djc~YZ(_N9zOMGE%_EH$SwO"K ңHE ^&_8_WE_OqOHOOi&DAbPE9 MX7'0UUfb>!$a % f1jHD # Uh4>T#]]9 M5AU@jZ?FL|+?@?F({~?P6 JuM` ?u JYt )t7zEA2&L_D?. > >tJU2q K?=@MJ&A@-b9(+bG)T+T&J[#"#a?& ?AH?/`)#115 {`?CopyrigTt (c);020G09;0M30c10os+0f92*1r-0f1ai+0n.;0 Al0 18s2eY0e10v0dy0z"!4B#e-?3 7)& b 0K8>U# ]A]A "1!ъ!PzQ <%OYAJEU . K;;\%W%EF($L[.FX5Eai%?F 6?wL;] W-\TB⤲8?F@&SA?F @ ?Nk"L'`bmMW_Ye[ٯ7 VK=F: [jr ? D"? XZvD?ta@Boogr5;!QEx]SiLO MLGXa~WOTZiAle59 XG"'0Uc&N!$05 .HD # =hj0>T h]]9  IAU@K?FOgVb?FY%?Fwᳬ?PJW?>t`  ^Z?t#ə.E @x?r?/{4܂ G _Z+u u$ >  J JpU?43f<!.&P?b3bbfz@1bAe&bq$d 2zGzt.#@LT"&r(~&i$q)(+}'i"~*#81815 `?Co yrigTt (c)o02`09o0Mg0ce0os_0fm2^1r 1am0i_0n.o0 Al0 e8s2e0ee0v0d0"11E]54M-#D3 %D7.&lUh#7 V1#Ai!J# F/?B1B  VRiAAbE9 MX G{W'0U*R2N!I$a {VZUHPD  # #>h0JTpERI MU@u6?Fjc{g&?@%r`5B?Fm_F:Is?HNtQ`  II?t#]  _ii$!`kNu  iu%wj>M JQ T       "@&&JNU2"?H@Qs#N&A@b(bU)++&RNp}#>H1#19 ?#bbbz| R&/5R}#11`?Co0yrig\t (c)02h090M0c0os0f21r0Aa0i0n.0 Al!@ 8s%Be0e0v7@d@21a4t#-}#3 %746lJ#$JUp5 3 M19 1!q(!FnElrkRt# 8$kcD?@숒@)?FP?P"EkU |1\iOT/irvs}i>`_,of :m ,M ?? S&d2? *b?r4B!B oo1gr #5!>%(EQOOOO__FAc1_C_ D4ևS]_o_yRX+{_,__ #R__ (YQoSo+o=osd {oEeooooooFyUy{* hDVW(I X"c7I!pg bf'iMjSE t%XyG|'0UŢŞN!O4i |UGD # hz0TdYYBU@(%)?Fxg^?@0߯H?Fs7Uݹ?P} t` 87?t#_)TeΦu ]ukv  ̝L&UUU&I&3 U!!`?CopyrigPt _(c) 2\W09 M c os f"!r 1a i n}. Al00U (s42e0e uvF0d(0'HS$#-## 'I?k=#ǒ 2j$B##0U'BM3@&@F0Yk} #HA%DKb5DK3DK5DKED$!GiAZG5(|IDFX7yW'&Dŭ6!4YA yVZHD  # =hj4>T!]]>#AU@0߯H?Fz)e??F˞9q?P6 t`z  ?5t# rXѮu)Nu;):O]ע0 &> # " "+"+"+"+" $+"T-J[U7 ??& bA@ 2b4-#2zGzt#+@ Li68!6 ?}; 72U!:B#AA5 5`?CopyrigTt(c)20F@9M2@c.0@os*@f8B)Ar,@eAa8@i*@n. Al@ 0HsBeX@ej0@v@dx@)21"DM-,;?C G& l>]UhzAE!A#!ְ1J`#@{&pz?FUy{?NT,dKj&b&R&M/8T9K-q?F@F?FdG0 >Nk"?YE*]\LThKjfGD&Qhj ?iU3UGe&Y`?@/Jb)h5oWKoWo;èKod}l$ro`nE2K?Fˌ%4G{?F -q? eZR^{|\?6?vodmP}l>MBe 9 N 1iS? 1?grl#51:PO"4ga@Sq(UE^@O|ǐ[`ߡa v2rbA @3ijD&}laqOz o?#WHZ'Qu=*[^N?F]%P?@O&@ c?FаM<n ?` eb0)\(Pfodm}nv}l?V5(?q$Ix[cN#W{ #iA@&QeE9 MX''0UjdN!0 /HD  # =hj0T h]]9 #]AU@}%?FR$,?@6#V?Fc_3֡w?P6 u` ?u#t  3zM%t3ws%.<%H._'B> #PJU2N贁Nw[?@ʐL+&A@wbu](i+bk)%+&p%#4">9"<5!?& ?M#bbb͓z$ p&"/%T%#L1L15 w`?Co yrigTt (c)02`090M{0cy0oKss0f2r1r 1a0is0n.0 Al0 y8s2e0ey0v0d0"E1E(]I4M-%#X3 X7&l*>(UhE j1#$Ac!J`%#@5e$_F??!foA3nBM( V?FJ-R?@HQ??FS!R?P| llHL6VLD5E+v;*AůʙH: 8snP%$? k?Q? \?4_!__WrA5_! R,U3OC@IL?F4~Kz?P)Oy޾ T!]]>#IAU@܋?F2Oa>?@#r`5B?F*ݷ?P6 t`  >B?\oEt# ŖoZu 0Nu;Y:|8>$# JpU>##<?2& ?5bbbz@b#ANi&bu$'h 2N贁N[2$@ LX"D&v(&m$ :;T'm"*B#d1d15 5`?Co yrigTt (c)020090M0c0os0f21r 1a0i0n.0 Al0 8s2e0e0v0d0"]1"a4M-/p3 p72&l>0>Uhh= 1#!eJ`#&FNTM\jh1B,RBM(!JoUy{O_ e@ So4(D@^Tw?F]֝ä ?Nk"?w_KT\T+\_(Kjӷjmplhj -`\TPQE\Uui,St_o u~!ՠXEO9= T?FL?;uQ_Pm"rA @3sjQ1lğ=GoYniAleE9 MX|'w'0Ur^N!M$|A vzHD  # =hj4>T!]]>#IAU@܋?Fj?@2r`5B?F^ݷ?P6 t`  >B?\oEt# 6ΠZu 0Nu;Y~:#&}>0m8>  PJU2N贁Nwk?@ eL&A( 5bM(b[)h+h+$h&#[-M$#?& ?b$Z*'*B#O1O15 5`?CopyrigTt (c)02U0090M~0c|0osv0f2u1rx01a0iv0n}.0 Al0U |8s2e0e|05v0d0"H1P"L4M-/[3 [7&l>0>Uhh= m1#!S!J`#*&FPUy{_?NTMjC1gc RVMʣ(D#@ ![?F"$. ?Nk"W?IKTLTcKjRlhj p=' (*!)i,SO2Kes9T;QEGUFw6qX}__TM7fTZT\Dž}_P^52XOES"rA 0S#Es3iAleE9 MX|$Gxw'0UrIN!4gA xvzHD  # =hj4>T!]]>#!AU@܋?Fc_v?@#r`5B?F*ݷ?P6 t`  >B?\oEt# ap'EZu 0Nu;Y:|$># BJpU>#͙;? & ?5bbbz@}bAA& K&@ 2zGzt?"K@ L0"&N(bM)+TK/8Z*B<1<15 5`?CoyrigTt (c)s02009s0Mk0ci0osc0fq2b1r1aq0ic0n.s0 Al0 i8s2e0ei0v0d0b"5194M-t/H3 H7T &l>(>UhE=3Z1#E!J!FENTMjN@1h(NoUy{OO e@ o)4(D@^Tw?F]֝ä ?Nk"?'_KD3\T+\(Kj?ӷjmlhj P\ DiAlePsI=MXsG'0UzbZ6N!%$0 sFEjHD  # =hj8>T! ]]>#!AU@܋?F*?@#r`5BW?Fw?P6 t`  >B? \Et#տ|u l4RQu?]>I$>I# JpU>͙#<?& ?9bbbz@b#AE&bQ$$D 2zG[zt#@ L4"&R(^&I$Q)+]'I"^*Bh{.M#To1o15 9`?CoyrigTtk(c)k2009kM0c0os0f21r1a0i0n.k Al0 8s2e0e0v@d0f"h1l4M-:?{3 %{7&l>(>UhE= `51#I!J49fAn^ R)X f"B!Jui,SG?RSlOS u~!N]8-19= T?FL;uQ ?Nk"?YVTQRXQOnğ/=i n (\ wTiAaePE9 MXLg'0UbZiN!)$0 Lf`jUGD # hz4TYYT#BU@5?F;?@ t2?F`0 ֺ?P} u` ?u#t+/8<&L9`d<t9( .88LU``ttyt m "t"hf;!&&'n"!'%0'm= 'p ~i##0U"K?@&S#a!!*_"`?CopyrigPt (c])0020<0900uM(0c&0os 0If.21r"0[1a.0i 0n.00 WAlv0 &8sz2UeN0e&0v0dn0w"!$J#B-#3 7#^=$6#D66 2$e,^6C% #HA%DK%D8K5D`KEDdGg&}c__'TAA""}(Pa%288BKS`DS\U Siha5 &rX7g'$i6!40 f-jUHPD  # #>h,JTEI MU@jZ?F@s??FX7`/?HmNuQ` o?u# j>tMtQ 1@t PATOQ E O#l|O6,2c J^vNt, "t "QwNbo ?!FVxNo]2УɆX3BUYU>VZ\)_ W거QUTAQ LG4CaCa_* Q_*____ o2f 8CT]?FoYDȡ?@ ~1pc} 9dS0]Yb<=p\/_ RT)4HtvzI!| ?^_AV,uݹ:4Z\o &Ja ʆXBU 9A1p@߄ߝZ\X9 (p\P΀dˆXEBUp2t Z\5q[,=6B҆XaU̓쬏 qXa>YU . [[ ;;p\Ua>YF`rZYoQUaai%?FzP4Z\^ W-p\] xTy8?F.?@@SA?FWk@ ?Nk"_|5`bmMp\PB|y[7 ơ|`?])?p*FWAX|a筃,H7~Z\?bxT?:!G4QڡUeB_T_f_x_DOOkoooZ}u?FU2Ty9=ŏsҟGO"vP_?@mlփ?Ff>> }= R3|Ofѡ|&['aޯ)d3#ux"@4SK 6ASʎy'e>'"Y`r,iMm׹ ߵl%1X~G׷_'0UJ26L50Ov ׶HD: # =h4>TB#]]9 TqAU@1D)?FL"ߛ$??Fٵ #ָ?P6 u` ?u4 t  ]<)t7񿗯)2)LEkL>  JtU2qD ?=@LC&A@-bu(b)+&񆤍[=#L"#a?& ?AH{/)=#@1@15 {`?CopyrigTt (c)w02009w0Mo0cm0osg0fu2f1ri01a; ig0n.w0 Al0 m8s2e0em0v0d0"91=4MB=#e-OL3 L7&l>  U#,|A|A9 $] t^1*=# #p Kw&&J`=#R&F 2'_b0CwvA kRqVM(~"!;ɡ?@<3?F ?P-DT! ;d1?Y=:ZTO㿂f{OaB J4 13? v,? (N_?r5w!:8oJo\g"a@jS(.8R!ZFI nx4__ D_U5U,VS?@g$ ?F~4,ێ~@ 8_H_ZTml`KDfl`'E4q2d8R鿃oo`rmkod&'aE2%_7USr(A@z#y3ae&b{, fZT5sae~t?FG=Va|7>-\氹pAiʈ$%?F(XoZ1a|}%\Iii ^WB^:fvEZT˒AiU?FAx߾Ya|k#ӝY~/Yt(Ae o0AleP59 MX=GL"'0UŢbN!40 O5 |HD: # =h4>TB#]]9 T]AU@R7)?Fy߈C??F"ָ?P6 u` ?u4 t  *5y")t7n)2)LI"+BA B JU2q0 ?=@L/&A@ybm#zc a#-bK{(m {(+I&)#Kڬ !?& ?A"&g$bbu/b /%)#Bo1o15 {`?CopyrigTt (c])020090uM0c0os0If21r01a0i0n.0 WAl0 8s2Ue0e0v@d0"h1l4M!E)#𤲝-DO{3 {7&l> U#,AA9 ] 18! #p %J`)#@~t?F # 0hU-~-/HA RVM(ET"rYD?@J-?F-' 9d 0_Y b%r\_oӫ([MFoFl 77]8>!Zݹ:4\\o?gƭkdQEF5W4?@A=?F[Q`??P-DT! :U^Zs[ #l@*p9lJjV\\l_ I&vpkhAzi!J?F߸TF\\Ͼ\zT khzinA9f@.mY <\\ԕ$ ,S{khAzi׍8r?Fį^?m ? ~_5 ә(Ae 0AleE9 MXlGR'0UuőN!40 ~5 ,@HD: # =h4>TB#]]9 TU@~t?FYaJE??F? ~?P6 u` 7?u t  }A_)t7Ǫ+)2)L^A]>REJ2q?R=@LA@yb #z.-b( (%2+2&L q!?& &?A"#&$bb/b 4/U%  1 15 {`?CopyrigTt (wc)B020N09B0M:0c80o%s20f@211r40m1ua@0i20n.B0_ Al0 88Us2e`0e80v0 d0X"1 4Mi!E-?3 R7&l> 0>U#3 GA9 B)1 #p| U%J`F(jdO C]/S֑K VM(HC-O"K[%q3U5CU?uBТ:^Y=~q\G3UE2OE#rA 0"c37QA?Y\[)xIB_mT^(`d :0A@le59 MXGB'0Ur-N!$KA5 fjHD # =hj0>T h]]9 U@/?Fxpz?@]JQ?Fk],>Uh@ !f$; hp _Q%Jd(jcZ(sEp!$a VZHD # =hj0>T h]]9 U@~t?Fxpz?@?Fx?vÂE?P6 t`  }A_?t#%_ ,u auo>J2zGzwt?@ʐLA@bu+b)%#+#&![Ha$?x& ?A//)񩣑!!5 `?CopyrigTt (c) 0]2`09 0M0]c0os f2R!r 51a0i n. 0 AUlP0 8sT2e(0e0vf0dH0@I"!E]$M-# 'x&l>],>Uh ![$ hp| F%JdjcO(hEq<cBɀODI$xD\AEOOOOD~hEuBТ91Y=~D\GiAbE9 MX|7W'0Ub>!$a VZ_H$;s nXk_$:@@_F8Z#?6VOB ȹ3~d=3 @}+xG\[sG-if-%-H1(1X11F֛ 1 1c61,11\171:N81Ȉ-q_8R*9h1<9HR6 ]xRXRq!UFD  h> T6D 4U?\.??F BP(?3P<; (^.h1 B ._ .s....UBU G 0`%Document,aUp, r2 SPe, 1!LF"t:$Fil, 3#g, k!^ x%% -G( S?'5 7NWwp\xpcu wf`oo\Drag onut hep adn"y aex.bL&d2ٿ~[?? ].r\5r\.EUGD" # h <^T$(YY#ӌU@\.?@L&d2?@~߻?P} u` ?Mu#3:D:DTDhYD| A A A AAAA&A&5V0&0& 16@@TThh||&&&h&S"4"!X2^7H^7D',6{҂_a?6 ?bbvbz@ t#RCCYCCCCCCX2&UHF%2?BX2]"BW3Fg3RFh3FX2 FU X2 F X2 FU X2 F X2 F5 X2F F"BC\"CS3F"CS=F2CSGF2CSQF/2CS[FC2CSeF2tsU2URM3@S[CT"bS$bZCfC f|d78JSB<D>`ÿ@{q`?@bK?df2uL -1bu .1ocr4#b vs"xh4C"M7 qx24S"_|um2u`u7`"0`au`rK=pg2 3 @D:'0A2Er:+Jw"+`@rApdBS(pԁ .r`?CopyrigPt (wc) 20U9 McoP'of r6ua in. U DlQ sUUePevgdI1`Vs_0RXYIcPm!#5378eH^0ӕYcU5#.U#Y.3#.E#.u#.=##.#.|#!.#!.#.pfmcaȹW!T4!4!28Toԁ arQ(-DT! @b0Q `aqqbvab? { q¬rrh@@($ &  qàq#@tq3t)'`Rg:sB Tgx Er@9'/'Tw\M8^6uk u  bu\ %qfŪ0`0#`abukv33u &rg𔫿Ͽ`28x1,@9"HD: &# ;ih ,>T!  9 U@D&d2?@KJ}0@@sbA*%BAG W$?n& ?A$#"t9,(tϺ*r(, [ # ͐(tl-t?t - t>?t- th? t}? tݒ? t?t :hT!<M#h $A$A5 s`?CopyrigTt (c)[@20g@9[@MS@cQ@oKsK@fYBJArM@AaY@iK@n.[@ Al@ QHsBey@eQ@vZ@d@?"l>U <>Uh$@AA BAJZ?-ku  ?V|=R"Q jRVMB:]GZpS ,TvRU5UC QkY[zZ%=| hUnd<+o{Yh<gttgYCNboio&1\oBٽB>PhQYwk_>g"U2Q_cU#rA $s?"HD: &# ;ih ,>T!  9 U@ʛ߹0?@nIw?@DI ?@MԿ?P u` ?u4t  !t/ ms!*bB!~DF=nm>J}02@@}%bAUB A?f. ?s,zb/b@'݉ 6 ,) ޷+ 3"?-#ϿS㥛!z /(, ) .":'`hT!<M#hT 115 u`?CopyrigTt (c)020@90M0c.0os0f21r0Aa0i0n.0 Al:@ 8s>Be@ej0vP@d2@?"Ul>8>UhpApA 1 0LZW|?U@7>0XB ,V MB4GRS_FU5:W]dT!  9 U@xj89?@F?@oU?@T?P u` 7?ut  K~D!t/0!*ҹ_!!DS_ Vn[>J}0@L@%_bAU)B AO9tG ?f. ?Y,zbb@' aY + :pΈ?'!x?z!(, ) !b#/h<M#h 115 u`?CopyrigTt (c)0W20090M0]c0os0f2R1r0 Aa0i0n.0 AUl&@ 8s*Be0e0v<@d@?"l>4>Uh\A\A 1 LZX9v?;0 0af҉A BVMB:66C JO DB.Uk5`AOWI[n_/T^9_WQ.U>U?jtOJoBdA D.UE2OErAg D4c?"HD: &# ;ih ,>T!  9 U@fB?@`mH?@i~jJ}02@@}%bAUB"G ?f. ? ,Cb /(,n  # :'hT!<MQ#h 71715 s`?CopyrigTt (c)n020z09n0Mf0cd0os^0fl2]1r`01al0i^0n.n0 Al0 d8s2e0ed0v0d0%?"l>]UhzŒT2JTyF mBFMB:jt?lK{@C vTC E%4TMlO~IADE2TO;rAg ${S?"HD: &# ;ih ,>T!  9 U@D&d2?@b1X΁?@K~?@;d;O ?P u` ?u4t  'V3X!t/XQ_x!*!D?7n  >J2U?R<@Ls,A@Tb+&tt0/t 2- tBy) ?b++'񠀑h!<M]#hR1R15 s`?Cop rigTt (c)020090M0c0osy0f2x1r{01a0iy0n.0 Al0 8s2e0e0v0d0U{"l> <>Uh$AA* p1JZ-ku? _V|=PA BFMB:]GZC ,DBE5E@C QI[J%=| E@^d~XLAIJgOlo.WPE2OE#rA $s{"HD: &# ;ih ,>T!  9 U@^?@K?@ZRJ}e0@@%bAJBAk?f. ?Y,zbb@' 6f ) + w/?-#S!zs+/&a&!+ Pkw?; d;O?8(, ) N" /=$h<MQ#h /A/A5 u`?CopyrigTt (c)f@20r@9f@M^@c\@osV@fdBUArX@Aad@iV@n.f@ Al@ \HsBe@e\@v@d@?"l>UhCAAMA 0LTuV  iRVMB4`_rQw_?"Q5^_zYQU@Uor_:k2P_t;rA $c?"HD: &# ;ih ,>T!  9 U@PaX?@f)?@MbX?@TaWk~n?P u` ?u4t  N=!t/ӯw~!*Dʮ!D#M8  >RJ}e0@@%bAJBAk?f. ?Y,zbb@' 6f ) + w/?-#S!zs+/&a&!+ Pkw?; d;O8,(\, ) ":'hb<M#hT /A/A5 u`?CopyrigTt (c)f@20r@9f@M^@c.\@osV@fdBUArX@Aad@iV@n.f@ Al@ \HsBe@ej\@v@d@?"l>UhCAAMAd 0LTcuV  iR)VMB4`_rQw_?"Q5^_zYQUUor_:k2P_;rA $c?"HD: &# ;ih ,>T!  9 U@PaX?@ w4?@MbX?@DkuL`~n?P u` ?u4t  N=!t/^~!*Dʮ!Duϧ{z  >RJ}e0@@%bAJBAk?f. ?Y,zbb@' 6) + w/?-#oS!zrs+/Ⱦ&a&!+ Pkw?; d;O?8(\, ) "' /=$h<M#h /A/A5 u`?CopyrigTt (c)f@W20r@9f@M^@]c\@osV@fdBRUArX@Aad@iV@n.f@ AUl@ \HsBe@e\@v@d@?"l>UhCAA`MA 0LTƌLuV  iRSVMB4`_rQw_?"Q5^_zYQUU or_:k2P_;:rA $c?"HD: &# ;ih ,>T!  9 U@PaX?@b`;?@MbX?@TaWk~n?P u` ?u4t  N=!t/ӯw~!*Dʮ!D%h >RJ}e0@@%bAJBAk?f. ?Y,zbb@' 6f ) + w/?-#S!zs+/&a&!+ Pkw?; d;O?8,r(, )] ":'h<MQ#h /A/A5 u`?CopyrigTt (c)f@20r@9f@M^@c\@osV@fdBUArX@Aad@iV@n.f@ Al@ \HsBe@e\@v@d@?"l>UhCAAMA 0LTuV  iRVMB4`_rQw_?"Q5^_zYQU@Uor_:k2P_t;rA $c?"HD: &# ;ih ,>T!  9 U@PaX?@iMbX?@TaWk~n?P u` 7?ut  N=!t/Ӕw~!*Dʮ!DNEr >TJ}0@@bAUBA_k?f. ?Y,zbb@t' 6 ) + w/?-#oS!zrs+/Ⱦ&a&!+ Pkw?; d;O?8(\, ) "' /=$h<M#h /A/A5 u`?CopyrigTt (c)f@W20r@9f@M^@]c\@osV@fdBRUArX@Aad@iV@n.f@ AUl@ \HsBe@e\@v@d@?"l>UhCAA`MA 0LTƌuV  iR(=RRMB4`_rQw_?"Q5^_zYQUUor_:k2P_;rA $c?"HD: &# ;ih ,>T!  9 U@PaX?@Cz?@MbX?@aWk~n?P u` ?u4t  N=!t/ӯw~!*Dʮ!D`q1 ARJ}e0@@%bAJBAk?f. ?Y,zbb@' 6f ) + w/?-#S!zs+/&a&!+ Pkw?; d;O?8,r(, )] ":'h<MQ#h /A/A5 u`?CopyrigTt (c)f@20r@9f@M^@c\@osV@fdBUArX@Aad@iV@n.f@ Al@ \HsBe@e\@v@d@?"l>UhCAAMA 0LTIuViR  iRSVMB4`_rQw_?"Q5^_zYQUU or_:k2P_;:rA $c?"HD: &# ;ih ,>T!  9 U@PaX?@h"o?@MbX?@DkuL`~n?P u` ?u4t  N=!t/^~!*Dʮ!D >RJ}e0@@bAJBAk?f. ?Y.zbb@' 6f ) + w/?-#S!zs+/&a&!+ Pkw?; d;O?8(, ) N" /=$h<MQ#h /A/A5 u`?CopyrigTt (c)f@20r@9f@M^@c\@osV@fdBUArX@Aad@iV@n.f@ Al@ \HsBe@e\@v@d@?"l>UhCAAMA 0LTuV  iRVMB4`_rQw_?"Q5^_zYQU@Uor_:k2P_t;rA $c?",H?_bs A/}뿟@JZqՆFxZ3#JG rB} G\]}Da=3]@+XH\]:aGU7R]kP8RjvR!AR!%0RQ(ȓR*5R.*ؗRE1)Rn4$ߛR7xR:XR=H1 A+UFD  h(^TYYBBUA@ ?I?P?  j FXj$| ȅH?? B@L&ɯd2?-)(?\.;(. sUa!_&/J ( G 0B`@iMac,$intosP,Ap 0le c0m 0u e+r m0n !#1n0tw02k eq0i 0mT0!,Pa"0d<0]1e!i1^| ( 3P B'?/ ~σ(/('v2 ?;%4I^b /pcv  .ԳDrag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aab?ɿt@ ?03%?贁NkHD # =h4>TB]]9 uAU@?%?@jOT\wQ?MΊFA9rr$r&A -34#u `7u ub A V >E& "* MJz:@q&" " ""@)"",Y#LM=b1+$'")"$"$27Y#EM 39 45#^Y#2q0l3SF'Y$?@J3N G>uLA-l5!HBuJAXRBr.#=wCbBܟ0?Cuԟ0I su `VB(#X3&'"2ql>!Uh@r5Y#1 a]WRa_SfPJA\'!2(1\ 4;?P,2Fu`bu@W(&PV$5K:ci3?+3__R8bVf5UVUmgWQheocrATM"AaAa$2f2aa2$(t 5tBtEJb.|wb_z9ի tBi8gvF$t| '"9P(Aqt% wuEwprp{Ϗ'9" nP=3EFre$w'2$9͟\oyЏRsRtruP!s1e!`Hih/P",>w=rr*˶ m4EWlqqPӏMū >sSoeei`%/;@%;LTY`2_3_4_U5O2c3c4cĉ5ZFf=G,[\F-[fpF.[F/[fF0[F1[fF2[F3[VF-2<UZZnnUUUU&&U"&"&6&6&UJ&J&^&^&Ur&r&&&S&&&&&&&&&&&66&6&6:6:6N6N6b6b6v6v6666666666666FFFF**F*F>FHOZHU\FpFpFFUFFFFUFFFFFFFR)!#FQ_? ?҈#lPYPPPPPPP!P1&PJ!P^!Pr!P!PP!PdP!P؂&P1P&1P:1PN1PhPv1P1P1P1P1P1P1PAPAP*AP>AP\APpAPAPAPAPAPAPAPGDPGR"`[R"j[RnS"tR"~R"R"R"R"b"Ė#b"Ζ7b"ؖKb"_b"sb^d^!^!^(2,2/2,A\ApA\AAAAHA{ZU@JT^_&&2c3&2c3&Bc3&GBc3 6yBc36Bc316Bc3E6Bc3Y2ibYCYCJ YC^YC&YC&YC&YC& YC 6ѢYC6YC16YCE6 YCxOrb&bxbsS;6{<F\.?@>Pÿ@qP?@VR?TV?2uL`,@-"Ru p`\@ZJrRf%c!h-" bqn?SuplNiE2u`u[`Fp@auL`bxΆΆ(؂g苤^q_US! >!a{4_b:pu{`:A~PHp\Ov΁Qe7`ESΆl.sPb ΁L'`q q w ;3`Vis_1RXY@chm#589{4*-b`?CopWyrg tU()2&@0,W McEo'ofM>rAzUaMi?n@ WAl EsUeeEvdBBgrRTUs`Hl"et6BTl\桇ub~aaLt~aLđΑؑ (2F@HD # h0>Th]]9 MP# JUF\.?F?Fb-2;?P JtM`  7?t#_B-K~LQGJu duo7]A$>aRAMJob@K+ tQJA$"a?& ?Aa4 ۢ # b)ta*"t =td=!%(U?tB? tс? tݖ? tޫ? t? t?ta.#A#A`?CopyrigTt (c)Z@2`09Z@MR@c.P@osJ@fXBIArL@AaX@iJ@n.Z@ l@ PHsBex@eP@vZ@d@m"Bh<#jl& @K @?UhLBQBQ] 1 !7AA#!V!@}ac RdjaE,JU'5l[Cdk%(gEU˖7s?FXE]ʚdkddѿS&iEn?Dǫoo` j!'hUFBG\k?*J`*e?~7CWi <I'hQYP ?F_}tk)vƫs'hQpsf l'hQYfyP\l'h1Y΋Q?FR&1\kQY-]?F2(Gf/\Rk> u'hQEW?7uL"las \.'h!YJ' ?F^3~\Nk?:P'hQY|y%.?FSo\Wkŏm'hRXD7Ժ?Fv[Fios*e7U l_9;\"kyޙ"M'hQYǬ! om?q:z'hUU3_Ő{ m!j,H0d ǕHD: )&# T=h0>Th]]9 Q BUFpɷL?FE@XV?F&1?Fbi0 ѻ?P Bt`  S0?tFp֯hݿQVBu auo7>JASTfw? ?Az@bbb! ( 6 )  '+ ߈?/I-Z#,z AF u +%/,8)E!'+ k(??r+oF(a4 8) E"#{ #BstG8tU: Ba L>2?!88;D;68?5;D; tj>8LALA1 `?CopyrigTt (c)@2`09@M{@c.y@oss@fBrAru@Aa@is@n.@ 0l@ yHsBe@ey@vZ@d@v2h<M#l#@ M@?4>UhjA6Q>1| L`k$k;cdj]J}vMjR]M 6)fMB@prwp\ k_稇avCe=ESe??F9Y? lgESeF:h%ykod iSQޗh~Kjo*` Oc;Ꞗi2_U3rA/04sCHD: )&# T=h0>Th]]9 Q BUFfFY?F,"+?FYU/?Fʯ8ϻ?P Bt`  I$lG(?t=`j>_PS ,Bu aquo7>KJAUVJp?X ?Awz@bbb! ( "f Փ'+ ' qq?z A  +/.&68))E! '+ go?W-sU!n*a4 8) "u#{ u#D!st?8tM: Bav L62?!08;<;60?5;<; tb>{8DADA1 `?CopyrigTt (c){@2`09{@Ms@c.q@osk@fyBjArm@Aay@ik@n.{@ 0l@ qHsBe@eq@vZ@d@n2h<M#l#@ M@?]UhzbA.QR61b L` KdjMaQ  6fM{"@FT4\[3K_,7e5EGe9?Nf[ N_qd7eEGeXәj'SW\m jOf܋h2_U3rA'04msCHD: )&# T=h0>Th]]9 Q BUF` l?Fċ?FC7Ժ?FBGԻ?P Bt`  I4z?t? D ǯ^\+Bu Fduo7 >JTA0f88v?WYϳAjLF@z bbb!' 6Y % )! ! ,+ <?' o?z #a47% =) J"#K#({% (+ (G t#BXY'?A> ?A "+(/+/=/O/a!y:5r{l/@ sU10( /???? "0aQQ'@`?CopyrigTt (c)FP2`09FPM>PcTh]]9 PB IAUF++g?F2?F {J?F%?P t`  r^?t鯕 { Li@Zu Mauo8 >    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 ,p )l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ s"?(a490 9_b!#{t0#tN8tϻ: Ua BL2$18KE;F?VEK]; t>B 4AA0`?CopyrigTt$(c)$2`09$M@c@o%s@fBAr@Qua@i@n.$U @l/P Hs3RUePe@vEPd'P 2h<M#l# M/P?]UhzPAQ1 L@3F l?F OqP dj|aW{,8cUFwW?F0ev"?F%Ti ?FUѣoO 0Yig߻ull4_aj??N~f0co+ fEeC.kn?FtdFِ?Fd?F?#l/Оol}dQ3ll BXl귺m|bBhaUeAvؼg`r4g?FÇ?F6|vflPI3qoikeðl1` |QT?heFnFc^?Fq`h leowkyyftGg˂a,8b1;MHD: )&# ;h0>Th]]9 PB IAUFd    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 ,p )l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ s"?(a40 9 .*2!#{0:#t8'tϻ:Ua L2$18K;F?VEK.; t>B4AA0`?CopyrigTt (c)@2`09@M@c@oKs@fBAr@Qa@i@n.@ @l/P Hs3RePe@vEPd'P2hb<M#l1# M/P?]UhzAQ1 L@3Fy*,[ܶ?F5]P dj}ah8cUFąiBQ?Fۨ.?Fao#ѻoO 0YiM+Fll_Zaj?}0%|f0c˭ fEem<_څ?Fb?F+}?F?oolGGTll .Xlhe{|kww@haUec(x,`H^ǀ?Fw?F234 flux1qoiFA(]l |~Th]]9 PB IAUFd    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 ,p )l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ s"?(a40 9 .*2!#{0:#t8'tϻ:Ua L2$18K;F?VEK.; t>B4AA0`?CopyrigTt (c)@2`09@M@c@oKs@fBAr@Qa@i@n.@ @l/P Hs3RePe@vEPd'P2hb<M#l1# M/P?]UhzAQ1 L@3Fy*,[ܶ?F5]P dj}ah8cUFąiBQ?Fۨ.?Fao#ѻoO 0YiM+Fll_Zaj?}0%|f0c˭ fEem<_څ?Fb?F+}?F?oolGGTll .Xlhe{|kww@haUec(x,`H^ǀ?Fw?F>34 flux1qoiFA(]l |~Th]]9 PB IAUF;L?]?F]hk?FXN׶?F`V?P t`  ??tQ0I9xE "˪Zu Mauo8 >    PEJڍU[\/(?&. ?AbbY!z@Ae bbCt c(a4b  b(h#{ h#΍t(tI*#0f88vb.#i L5<1v(&$7/(D%"6/5;0( t.*B#11`?CopyrigTt] c).@2`W09.@M&@c$@os@f,BAr @YAa,@i@n}..@ Alt@U $HsxBeL@e$@v@dl@"h<M#l# Mt@?]UhzAA!J@#Fy*,[ܦ?FVTP dj}תa4(SUFąi?F6^G?F/?F?oO 0YM+Fӱ\*aj,.}a$?# XEUYu?F #?Ft Ǜjm?FRtolTBJ\LMYBltavXlp@XEUg6PK|$yp?F`1А?FAD3 o~l/AD0qYJg ַBl*$ԞXlFB:XU^Fi?FfaEHRl_[Ei1GAf`dSq+a,(bvHD: )&# ;h0>Th]]9 PB IAUF;L?]?Fԁ_IRE?FXN׶?FgaV?P t`  ??tnG9xE"˪Zu Mauo8>    PEJڍU[\/(?&. ?AbbY!z@Ae bbCt c(a4b  # b(h#{ h#΍t(tI*#0f88vb.#i L1<1v(&$7/(D%"6/5;0( t.*B#11`?CopyrigTt] c).@2`W09.@M&@c$@os@f,BAr @YAa,@i@n}..@ Alt@U $HsxBeL@e$@v@dl@"h<M#l# Mt@?]UhzAA!J@#Fy*,[ܦ?FVTP dj}תa4(SUFąi?F^G?F/?F?oO 0YM+Fӱ\*aj ,.}a?# XEUYu?F#?Fm?F*m{olTBJ\MYBlU{XljDc@XEUg6PK|$yp?F1А?FD3 o~l/AD0qYf ַBlq$ԞXl.B:XU^Fk?FaEHRl_[Ei1GAf`dSq+a,(bvHD: )&# T=h0>Th]]9 Q BUFa)DbJA]^'? ?Az@b ( 6f  )ϓb= + _? ' 88o?z A s +=  /)/;/M$[+["-j!Q U1[!x(ar4 ) "'}# }#BtΜQ8t_:Ba~ LH2!B8;N;6B?5;.N; tt>8VAVA `?CopyrigTt (c)@2`09@M@c@oKs}@fB|Ar@Aa@i}@n.@ 0l@ HsBe@e@v@d@2hb<M#l1# M@?4>UhuQuQPtA@Qj LZF>7ܾ 7j bL\2] 6R1bMB: ZWdc Ɵmdb`GeGEWe2T|`I\aibvIGeU@OCJQTh]]9 Q BUFq \?FWY۷?F \?F0;?P Bt`  4fտݛ?t? 2N (+Xۙʿ-srVBu acuo77AJA]^'? ?Az@b ( 6f  )ϓb= + _? ' 88o?z A s +=  /)/;/M$[+["-j!Q U1[!x(ar4 )] "'}#{t }#BtNQ8t_:Ba~ PLH2!B8;N;Q6B?5;N; tt>8VAVA `?CopyrigTt (c)@2`09@M@c@o%s}@fB|Ar@Aua@i}@n.@U 0l@ HsBUe@e@v@d@ 2h<M#l# MT@?4>UhuQuQtA(@QH1j LZF>7gܾ 7j bL\G6] 6S-fMB: ZWdc mdb`GeGEWe2T|`I\ai?bvIGeUWeOC9ri_xu j aGeWe_ooh2K]u3rA 4s2HD: )&# T=h0>Th]]9 Q BUF&?FUa|AY?F \?F0;?P Bt`  \vJA]^'? ?Az@b ( 6f  )ϓb= + _? ' 88o?z A s +=  /)/;/M$[+["-j!fQ U1x(a4 ) "'}#{ }#BtΜQ8t_:Ba~ LH2!B8;N;6B?5;.N; tt>8VAVA `?CopyrigTt (c)@2`09@M@c@oKs}@fB|Ar@Aa@i}@n.@ 0l@ HsBe@e@v@d@2hb<M#l1# M@?4>UhuQuQPtA@QH1j LZFr7ܾ 7j bL/\]M 6-fMB: ZWdc ?mdb`GeGEWeA?2T|`I\aiavIGeUWeOC9ri_xu j aGe@We_ooh2Kt]u3rA 4s2HD: )&# T=h0>Th]]9 Q BUFR ?F(Zп?F&?F0;?P Bt`  U'?t)S Pʿ-srVBu auo7>JA]^'? ?Az@b ( 6f  )ϓb= + _? ' 88o?z A s +=  /)/;/M$[+["-j!Q U1[!x(ar4 )] "'}#{t }#BtNQ8t_:Ba~ PLH2!B8;N;Q6B?5;N; tt>8VAVA `?CopyrigTt (c)@2`09@M@c@o%s}@fB|Ar@Aua@i}@n.@U 0l@ HsBUe@e@v@d@ 2h<M#l# MT@?4>UhuQuQtA(@QH1j LZF>7gܾ 7j bL\] 6-fMB:D ZWdc 2Nodb`GeGEWe2T|`I\aibvIGeUWe-B9riu j aGeWe _ooh2K]u:3rA 4s2HD: )&# ;h0>Th]]9 PB IAUF(*?F?+8?F-?FP덋?P t`  g ?tr㯰4\ls,Zu Mauo8>  ]  PEJ]_DRb(?&. ?Az@bY(ne 6 h )b k+ ?Z'e 88?z6e Ae [+ h g/y//$# L:5, /sUK1*ap4 9] 2(#{t #tN8tϥ: Ua BL218KE;6?@EK]; tͺ>B 4AA0`?CopyrwigTt c)@2`09@M@c@o%s@fBAr@Aua@i@n.@U 0lP HsRUe@e@v/PdP 2h<M#l# MTP? <>Uh$QQ]AQ1 LZ3?ZkP 7jbb;'ߨL7a 6{fM8cUF*eE(aFr+}G`_=m?F7T҄xo`Oi^jva~t0sK`+t!kĀ9t!KU:M} -'sLl}]|]r9xLuf.Lp?F4gHvodObdcZgt_=,V~#|..7 ;vLuN?Fbݲt{?FNch|[m?&1 zoUh+#|?n1%*!ayTh]]9 PB IAUF/vt?FxN7?F-?FP덋?P t`  q?t} ܯ` \ls,Zu Mauo8>  ]  PEJ]_DRb(?&. ?Az@bY(ne 6 h )b k+ ?Z'e 88?z6e Ae [+ h g/y//$# L:5, /sUK1*ar4 9] 2(#{t #tN8tϥ: Ua BL218KE;6?@EK]; tͺ>B 4AA0`?CopyrwigTt c)@2`09@M@c@o%s@fBAr@Aua@i@n.@U 0lP HsRUe@e@v/PdP 2h<M#l# MTP? <>Uh$QQ]AQ1 LZ3?ZkP 7jbb;'ߨL7a 6{fM8(a?*F?F}ޑ`oO 0dTc I\rdcd bjӯokga>?>eEef?+}G?F_=m?FSxo`OivddlvatG0sK`%tkĀѡ3t!KU:G} -'sLl}]?|]r3xn.Lp?F4gHpooZgt_=,V|..7 5veN?Fbݲt{?FNcb|[m&1 zoUh+|n1%$!ay Th]]9 PB IAUF & W?Fq<9?F-?FP덋?P t`  q -?tv3m\ls,Zu Mauo8>  ]  PEJ]_DRb(?&. ?Az@bY(ne 6 h )b k+ ?Z'e 88?z6e Ae [+ h g/y//$# L:5, /sUK1*ar4 9] 2(#{8 #t8'tϥ:Ua L218K;6?@EK.; tͺ>B4AA0`?CopyrigTt c)@2`09@M@c@os@fBAr@Aa@i@n.@ 0lP HsRe@e@v/PdP2hX<M#l # MP? <>Uh$@QQ]AAQ1 LZ3˟ZkP 7]jbb;'ߨ7a 6{fM8cUF*r|p蠼F?F}`oO 0dTc ?I\addǼbjokgaz>eE(aFr+}G?FC_=m?FS҄xo`Oi^jvϾat0sK`+tkĀ9t!KU:M} -'sLl}]|]r9xLuf.Lp?F4gHvodObdcZgt_=,V#|..7 ;vLuN?Fbݲt{?FNch|[m&1 zoUh+#|n1%*!ayTh]]9 PB IAUFt5?FYz?F-?FP덋?P t`  @"?tgQ,n\ls,Zu Mauo8dAd  ]  PEJ]_DRb(?&. ?Az@bY(ne 6 h )b k+ ?Z'e 88?z6e Ae [+ h g/y//$# L:5, /sUK1*ar4 9] 2(#{t #tN8tϥ: Ua BL218KE;6?@EK]; tͺ>B 4AA0`?CopyrwigTt c)@2`09@M@c@o%s@fBAr@Aua@i@n.@U 0lP HsRUe@e@v/PdP 2h<M#l# MTP? <>Uh$QQ]AQ1 LZ3?ZkP 7jbb;'ߨL7da 6{fM8(a?#FT ?F1uRؑ`oO 0j?rdcd bj]ea }eEef?+}G?F~xW m?Fxo`Oivddlva~ttqE`%t:܃3t!KU:G} -'sLl}]|]r3xn2M#p?FcGpooZgt9L|8 5veN?Fl"Ry?F-#Fkb|[m&1 z'ǵ(|F$0$!ayTh]]9 Q BUFa)DbXX +Xۙ ^MVBu auo7>JTA0f88v?WYϳAjLv@z bbb!' 6Y % )! ! ,+ <?' o?z #a47% @& J"#K#({% (+ (G t#Beı?A>L ?A"&"&$/*8%,"t:"t>  A A6 `?CopyrigTt _(c)D@2`W09D@M<@c:@os4@fBB3Ar6@oAaB@i4@n}.D@ Al@U :HsBeb@e:@v@d@2h/1<M#l#@7? M@?(>Uh7E P+AA!{ L:FQ덋<6j% bRzg9<2 "\ ZWdS ?mT W5U5k0YaY?vq 2HD: )&# T=h0>Th]]9 Q BUFq \?F8˻?F \?FB2T|`I?P Bt`  4fտݛ?t.QW+Xۙ]MVBu acuo7hAJTA0f88v?WYϳAjLv@z bbb!' 6Y % )! ! ,+ <?' o?z #a47% =) J"#K#({% (+ (G t#Beı?A>L ?A"&"&$/*8%,"t:"t>  A A6 `?CopyrigTt _(c)D@2`W09D@M<@c:@os4@fBB3Ar6@oAaB@i4@n}.D@ Al@U :HsBeb@e:@v@d@2h/1<M#l#@7? M@?(>Uh7E P+AA!{ L:FP덋<6j% bRzg9<2 "\ ZWdS ?mT W5U4k0YaY?vq 2HD: )&# T=h0>Th]]9 Q BUF&?F 77 \?FB2T|`I?P Bt`  \vJTA0f88v?WYALv@z bbb!'n 6 % )! ! ,+ <?' o?z #a47% =) J""#K#{% (+ ( tQ#Bı?A> ?A"&"$&$/*%,"t:"t> A A6 `?CopyrigTt (c)D@2`09D@M<@c:@o%s4@fBB3Ar6@oAuaB@i4@n.D@_ Al@ :HUsBeb@e:@v@-d@2`h/1<M#l1#7? PM@?(>Uh7E +AA!{ L:F|po蠼6j% bT  ü2 "\ ZWdS mT W5U4k0YaYvq 2HD: )&# T=h0>Th]]9 Q BUFR ?FB?F&?FB2T|`I?P Bt`  U'?tǡ P]MVBu acuo7AJTA0f88v?WYϳAjLv@z bbb!' 6Y % )! ! ,+ <?' o?z #a47% =) J"#K#({% (+ (G t#Beı?A>L ?A"&"&$/*8%,"t:"t>  A A6 `?CopyrigTt _(c)D@2`W09D@M<@c:@os4@fBB3Ar6@oAaB@i4@n}.D@ Al@U :HsBeb@e:@v@d@2h/1<M#l#@7? M@?(>Uh7E P+AA!{ L:FP덋<6j% bRzg9<2 "\D ZWdS ?2NoT W5U4k0YaY?vq 2UHT5D B &# T>h0JTtiiM ENUF =?F>?FumK?F_u?P WNtQ` Kl7?tUo>TX*F(бoNuj mu){E0f88wv?AVQ Ӎ!@#b#m@b  0#  #W(3 (o+&T" #t#NĽ/?. ?M"&$a%$$,/>*L%i,T"tΞ*T"tR.R11#`?Copyrig`t (c)02l090M0c0os0f21r01a0i0n.0 Al@ 8sBe0e0v0@d@"Vt!X#xB #/ @T,UtE1UA-!@:2T|`I pvm?S׮(%U;jX[5G@Y9"S\FkV5%U#ɯ7ܾ=\WQS\O?XbiTQY%_7_I_[_DQOOOO__Ԫ?FH փBl[{Xl?G漫i_)fV u``9`-YBlO N}0,*x]@$?F>BlǏXlwg%ooo EU}ooooooM5#?F߳Y`;Blr*XlYmC*)fWBǽ?F#nZBl>^̔ԍ?f Q́)f?aD%?F qwJBlIY:6XlIb ʏ܏EABTfxF) \Ck?-q_Wa1Cv(Ԅ~Bl!H,BXQnB)fF01DBoT[inJ\ۙgyAHD: )&# T=h0>Th]]9 Q BUFKpJAS`? ?Az@bbb! ( 6 )  '+ ߈?/I-Z#mg!z A " ././@/R+,g/y'sU1,ar4 )] "#{t #BtNg8tu:Ba PL^2!X8;d;Q6X?E;d; t͊>8lAlA `?CopyrigTt (c)@2`09@M@c@o%s@fBAr@Aua@i@n.@U 0l@ HsBUe@e@v@d@ 2h<M#l# MT@?4>UhQQA(VQ^1| LZFg 7j b2ɶGOR] 6SCfMB:1ۑdc $I$I܍+d 2aa]EmeL.la'iL?.]eU@5/LN?FOOka,dHޓgmeoo(oh2gyu3rA 34s2HD: )&# T=h0>Th]]9 Q BUFܛ?FYQt?F#P3?F f7?P Bt`  _?t+%`' VBu auo7>JAS`? ?Az@bbb! ( 6 )  '+ ߈?/I-Z#mg!z A " ././@/R+,g/y'sU1,ar4 )] "#{t #BtNg8tu:Ba PL^2!X8;d;Q6X?E;d; t͊>8lAlA `?CopyrigTt (c)@2`09@M@c@o%s@fBAr@Aua@i@n.@U 0l@ HsBUe@e@v@d@ 2h<M#l# MT@?4>UhQQA(VQ^1| LZFg 7j b2ɶO] 6CfMB:1ۑdc $I$I܍+d 2aa]Eme^L.la'i.]eU@-7/LN?F$_fq.Th]]9 Q BUFn?F_S?Fi$?Fo2ͯS3»?P Bt`  -1{?t8b ?VBu auo7>JAUVJp? ?Awz@bbb! ( " '+ ' qq?z A 9 +/.&68))E! '+ g?W-sU"!n*a4 8) "u#{ u#D!t?8tM:Bav L62?!08;<;60?5u;<; tb>){8DADA1 `?CopyrigTt (c){@]2`09{@Ms@]cq@osk@fyBRjArm@Aay@ik@Wn.{@ 0l@U qHsBe@eq@v@d@n2h<M#l#A M@? Uh,cQcQ] '1bA.Q61b L`?g{Op dj? |m cuۡ'1 6!1fM{":F7Q덋<6d kS=ѣ<n2{!5E[nc^ vogaKeE[eV_@cbc g@]N4o r\Dž}iNuPna?FTPf|]tElF<2hQp_m痪 |"*hQiyl:qid5hQJ_noDhU23rAg 4n2HD: )&# T=h0>Th]]9 Q BUFD7n?FWw?Fi$?Fo2ͯS3»?P Bt`  ;#p!5?tR?9E ?VBu auo7>JAUVJp? ?Awz@bbb! ( " '+ ' qq?z A 9 +/.&68))E! '+ g?W-sU"!n*a4 8) "u#{ u#D!t?8tM:Bav L62?!08;<;60?5u;<; tb>){8DADA1 `?CopyrigTt (c){@]2`09{@Ms@]cq@osk@fyBRjArm@Aay@ik@Wn.{@ 0l@U qHsBe@eq@v@d@n2h<M#l#A M@? Uh,cQcQ] '1bA.Q61b L`?g{Op dj? |m cuۡ'1 6!1fM{":F7Q덋<6d kS=ѣ<n2{!5E[nc^ vogaKeE[eV_@cbc g@]N4o r\Dž}iNuPna?FTPf|]tElF<2hQp_m痪 |"*hQiyl:qid5hQJ_noDhU23rAg 4n2HD: )&# T=h0>Th]]9 Q BUF}h!?F0,?FTZLP?F Qû?P Bt`   Mǿ?t `,1fǰvz;ZBu ,dcuo7oAJAa^!? ?Az@bbb! ( 6 )  '+ g~X?I-Z#!g!z UA " ,/,/>/P-[+g/y'U1Ȋ,a4 u) "!#{ #Bt9g8tu:Ba BL^2!X8;Ed;6X?E;]d; t͊> 8lAlA `?CopyrigTt _(c)@2`W09@M@c@os@fBArԕ@Aa@i@nU.@ 0l@ HUsBe@e@v@-d@2h<M#bl#P M@?8>UhoQQ]AVQ^1| L@%fq.?F?c^ dj ٨la6ztB:'3S3 7d /kyԷ&Dh]EWe?g~kp+ɉ 5d}bGeUWeFTol0juMDhn1ۑ0j`Dhn.R덋<o+o"Th]]9 Q BUF}?Fb-P?FTZLP?F Qû?P Bt`  R딿i?tT`,1fǰvz;ZVBu auo7!>JAa?^? ?Az@bbb! ( 6 )  '+ g~X?I-Z#!g!z UA " ,/,/>/P-[+g/y'U1Ȋ,a4 u) "!#{ #Bt9g8tu:Ba BL^2!X8;Ed;6X?E;]d; t͊> 8lAlA `?CopyrigTt _(c)@2`W09@M@c@os@fBArԕ@Aa@i@nU.@ 0l@ HUsBe@e@v@-d@2h<M#bl#P M@?8>UhoQQ]AVQ^1| L@%fq.?F?c^ dj ٨la6ztB:'3S3 7d /kyԷ&Dh]EWe?g~kp+ɉ 5d}bGeUWeFTol0juMDhn1ۑ0j`Dhf e9o-ai qGeUoo$o6o3UHLD )&# R>h 0JTlaaM>UF .?F@=~9?F î>?FesY?P >tA`  A,:?t _VČ= W:`>u eu!s7"JJ0U?HA9 @tt7 b2:*H&tH  th*N) ?MB"b";)H&e8H  3 H -US4oTZLP?FK+0j6֏@!QpoĬ?> گ ݷeo?gց́ F?i?;0~1G}}϶iM@mp?#nC%fq.?F)Ouy\l2_+ʦmx~E}@p5"iQ덋Рoe*al|ٍşןHD: )&# ;h0>Th]]9 PB IAUF>'?FЖ''?F {J?F%?P t`  V k?t˟R{ Li@Zu Mauo8#>    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 ,p )l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ s"?(a40 9 .*2!#{0:#t8'tϻ:Ua L2$18K;F?VEK.; t>B4AA0`?CopyrigTt (c)@2`09@M@c@oKs@fBAr@Qa@i@n.@ @l/P Hs3RePe@vEPd'P2hb<M#l1# M/P?]UhzAQ1 L@3F l?FƟ qP dj|aW{ޓ8cUFwW?F0ev"?F%Ti ?FGUoO 0Yifull4ajT?N~f0ci+ fEeC.kn?FtdFِ?Fd?F#l/Оol}dQ3ll BXl귺m|؇bBhaUeAvؼgԵ`r4g?FÇ?Fϓ|vflPIϮ3qoijeðl4` |7T?heFnFc^?F]`h leowkyyftGg˂a,8b1;MHD: )&# ;h0>Th]]9 PB IAUF>'?FtQ>c?F {J?F%?P t`  V k?t^i{ Li@Zu Mauo8$>    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 ,p )l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ s"?(a40 9 .*2!#{0:#t8'tϻ:Ua L2$18K;F?VEK.; t>B4AA0`?CopyrigTt (c)@2`09@M@c@oKs@fBAr@Qa@i@n.@ @l/P Hs3RePe@vEPd'P2hb<M#l1# M/P?]UhzAQ1 L@3F l?FƟ qP dj|a{ޓ8cUFwW?F0ev"?F{%Ti ?FGUoO 0Yifull4ajM?N~f0c+ fEeC.kn?FtdFِ?FBd?F#l/Оol}dQ3ll BXlF귺m|bBhaUeAvؼgԵ`弄r4g]pÇ?F*|vflPI3qoiGkeðl2` |HT?heFnFc^?F`h leowkyftGg˂a,8b1;MHD: )&# T=h0>Th]]9 Q BUF\.?FW?Fb_-2;w?P Bt`  t0zեK~LQGVBu auo7%>J0U?R<AL@tt7P }b6*D&tD  tTd*Bı) ?\A>"b7)D&a4D  3 rD 8/td/ty. x1x1`?CopyrigTt _(c)02`W090M0c0os0f21rԡ01a0i0n}.0 Al0U 8s2e0e0v @d0"h!<M#l#/Ml> @?UhLAA] 1 1"71bAV>!J`Ƭ! Jdjbq:z׍i Q 6VMB@˿acP\`_m;E,Ui5U 5l?FQ[dg[VU'EU˖7s?F'YE]fdg[pdѣSYUfe3_GN]݅om{ZcXUFBGP\g[)J`UAp3C#5 IXAYT ?F_jy}tg[3$sXApsf ElX1Yfy?FPP\pg[!XAYw 䘷?F~_uO]{DŽ~g[&SAY-]?Fr]0P\g[ip~ X1#"5j-? XAY ' ?F@G_|P\̔g[?P=RwX'RX__/?Fv㗂P\#g[?pډlX7UB7Ժ ?vQ[Ezg[wU|QY1GN~V7;P\4Ѥl"MX U29_KU#rA0$@CHDJ  # =h4>T#]A B#BUFF?F|ل?F?F_U[?PBt`  t} :?tӕ##L xZZBu eu!s7[&>V Jߵ?0 ?Ab "z@A $)55 l H#b"#]! #BtΜz(tψ*Bh<M#h B`"ݵ0qql?E LUL1;?k(by$<$@7F/X(a4j$"'6k/5;w+ tE͝.%p! A A`?CopyrigTt (c])C@20O@9C@uM;@c9@os3@IfAB2Ar5@nAaA@i3@n.C@ WAl@ 9HsBUea@e9@v@d@b$JM@?0>Uh#5= ! 5*A3QA]!J!FEÍ hng[GʑB  6SVMB@j]9_^fU3QY>h_"[} [U%7nPobogU 52j_|Uq"ErA Z3s#HDJ # =h4>T ZA B|qAUFi$z?Ff,?F.@?FCCZYݥ?PBt`  zԜ?tƿSᆟ J kBu5 eu!sL'>D jJBU C"?0Z& ?Ab"z@A $ʎ)55 l #b "#! #BtΜ(t:Bh<M#h=# B`!2=#0qqlZ#Q LU1?@(!*7/(*"6/(E1K.+ t>Q5h1AA`?CopyrigTt (c)@20@9@M@c@oKs@fBAr@Aa@i@n.@ AlP HsRe@e@vRPd@v4&=#JMP?0>UhO3uE= !5AQ?Q!Jt1EÍT| hne887  6.fMB^;>?F>,Se?F1Ez ?P~-< kߎ:\zzl knJz۰fL:i 54a}:?  `? D"H$?n:a@Bowr @H'c(T@TFnXJ\kǓ1HeY5XevTݤ?Fc. ?Pfz`_vNST#]DA B#BUFik?F?Fa'D~?F?PBt`  ;#?t_Q$_[G ¾ Bu eu!s7(> Jߵa? ?Ab "z@A $)55 ml H#/b"#]! #Bt9z(tψ*Bh<M;#hu BI`"ݵ0qql? jLUL1w?k(by$<$7F/X(a4j$"'6k/5;w+ t͝.%! A A`?CopyrigTt (c)C@20O@9C@M;@c9@os3@fAB2Ar5@nAaA@i3@n.C@ Al@ 9HsBea@e9@v@dԁ@$&@JM@?0>Uh#5= !@*A3QA]!J!F? hngZ/S/E@M 6VMB@j]9_]gU3QY!w_"[87U%7n PobogU 52j_|Uq"rA Z3s#HD # =h#4>T ZA B|5AUF;|jd?FQn?F&TXdJ?F2gݸ?PBt`  ؽ?tѿ벏9   kWBu5 eu!s.)>D  JBU;"?& ?AbI"z@AU J$R)55J l #beX"X#!J :X#Bt('t*Bhb<M#h#. B`"酑#0qql?!QY LU1?(b$x$7/(4$"c6/5u;+ t.5,1HAHA`?CopyrigTt (c)@W20@9@Mw@]cu@oso@f}BRnArq@Aa}@io@n.@ AUl@ uHsBe@eu@v@d@:4&#YJM(@?0>Uh39E= !fAhoQQ!J81l?F9hnyye7@6SMB@TH0pp0@ Y9%[Zaz eoQioe[:4ևzZIa e5eF/14oTi&qQB8^FqcG?FBP?P :Y@ "rA :03fsgn^KDelr:i n0SpȨ? P( ? UVj?na@Bw-rx @SHD # =h4>TZDA B|qAUFG_?FMOff?Fl?F5Gú?PWBt`  #HEw?t[J |B gzRBuj eu!sL*> @JBU C"a?Z& ?Ab"z@A $)55 ml #/b "#! #Bt9(t:Bh<M;#hu=# BI`!2=#0qqlZ# LU1?(!*7/(D*"6/(E1K]+ t>Q5h1AA`?CopyrigTt (c)@2U0@9@M@c@os@fBArԭ@Aa@i@n}.@ AlPU HsRe@e@vPd@v4&=#JMP? 0>UhO3uE= !AQ?Q!Jt1| hne]Lg137 M 6.fMBFwݡ?F1?P1/`( KP\kEen8Kΰem:i 9`/]R? i4F? +?r?na@BoZwr @'c(T@T>.)qB?F48t\B"SOxlM_HeY5XeV`f΂7?Fwڽ胔?Pw>&T{¿ ?'srmooeN lnD\YgLE~]Z?)tTwd~&'q52_U"r"A v036w3HD # =h 4>TZ Ay IAUF3d?FM?FXxA?F4J^z?PQd93@>WBt`  M|Vt7?t# | .B9jHߜ? Vu*Z?3bLKj"k^Bue u!$+>   JBUB43f"<?2&P?Ab]$z@Ai b3bbff)55b ml #/b"l"l#! l#Bt9(t*񩧉#K B`"#0qq\2#m LU.m1?(&$H7/(*"H6Ի/5;+ t.yh<M#h %1\A\A`?CopyrigTt (c)@2U0@9@M@c@os@fBArԅ@Aa@i@n}.@ Al@U HsBe@e@v@d@4&#mJM@?UhMEI;nIzA#Q!J#6F>x@=&}?F&`?F5zT MST2N`R uܡgrf'QHDJ  # =h4>T#ZA B| AUFn?FZF?FXt?F5Gݮ?PBt`  g?t80ɹ gzkRBu5 eu!sn,>U !JBU;('? ?Ab!"z@A- " 0#e55" # Q#6!b>#0(<&Bst(tϑ*"Bh<vM#h B`"0qqEl1 LUU1?0/B'7O/a/s$"06t/`5;.+ tͦ.%!AA`?CopyrigTt (c)L@20X@9L@MD@cB@oKs<@fJB;Ar>@wAaJ@i<@n.L@ Al@ BHsBej@eB@vR@d@4&&JM@?!Uh!@!9 | 3AAc1J18$FF?F˨O hn؂-؂e/tӉ7R6MB@T21uG*\\VU5"QXޒI9YSD|a\Bg%UF?htR\gYl(Ah5UNl?F[ ݴ\*aUEU-?Fۻ\P-\Kp}AhU+;>?F! ɬ\q\g:,AhU>זtY?FUCZY\/\iCy 5AhTQY{'?FAuJ\l\jGוAdUX_SFКi?CF%ds 0c2rAb4:gn0 L;jHD # =h 8>T ZUy AUFEM&,?FX?FEtT?Fy_-{?PBt`  ڹ2Ԇd?t#P.Øz u_>$ |MBu liu%wM-> # ""%"%"%"$%"-JBBU(`Jyɹ#G 4?&6 ?ABbA@L2WbT459 .a0 ]a0UL1R5U8a6Bt 8t϶:#0qql&3V0L U#A?U?g77t??42Q6?.EK; t>h0 1<M#h^@%!QQ`?CopyrigTtk(c)k20UP9kMAPc?PoKs9PfGR8Qr;PtQaGPi9Pn.k AlP ?XsRegPe?PvRPdP$&$A/#ZMP?0>UhCaa9 #0Q#!L1J!9t?F9lrif7&6&MBCʯ?F{@a?F"[?PM Q ƲOH0i!lѹ3BDirT:i1%u51:m gOp? 0dq? ##Y?r4-ABhwr>#j0@cC(e#iJ"tS?FowO8?F*&خ?P ݿ Z _l!}keaɨ4i2{VtS7Sd|#- cq}tkwK>tɏw\#~eiF'2L?F靕I?FfʶݲDb tS!}gi(@Pzpzd|;٧VzwYiY"}a؏twz#~eAewnF][ߚ~`l<5C)` [-TH0L3rA0DģRaTvd|Hzwpg-JPU4 s!w#~'HD: ) # T=h4>+TZA B|AUFɡo?FD7%?F;+g3P?FPa=!u?PBt`  ~ۿ?tҽJI6 ~&8Bu eu!s.> ! ""!"!"!"P$!" -JBU "?& ?Ab"z@A 0T$955 l 83b 2L 3M1 3Btj8tDx:Bh<M#h#% B`2ݵ#0qNjql# 0jLU51AA`?CopyrigTt (c)3P2U0?P93PM+Pc)Pos#Pf1R"Qr%P^Qa1Pi#Pn}.3P AlyPU )Xs}ReQPe)PvPdqP4&# ZMyP? 0>Uh3E= 5QQM1J1?1!9hn}Ke71R"6MBaf$/ſ Dn/{?PT nN tom2qenלf_E.I:i FDOL?PWC  ?Q 038|!®Ú>O{b 0dw8pYDh[mÏsԟ@wv#~e5mF!u?F+#?Pҿ QC~ra2rbA 0JC:zLYON|n$dw0 kt?>|s w #~'UHPuD R # >hj 4JTb M#5MUFUk ?F[&?F")?F{(%˝ͭ?HNtQ`  y!?tA_?ѭ Σ(|rɛNu mu){.6>/J Q !JNU "?&& f?MbQ"z@QA] !R$Z)5=R t #b 2`"`#!R `#Nt(t* # N`" #0qql&#Qa Q Ua1?@(k!z*7/(*"<6/5;.+ t.pH%# p %1PAPA#`?Copyrig\t (c)@20@9@M@c}@osw@fBvAry@Aa@iw@n.@ Al@ }HsBe*@e}@v@d@45& #aJ(%@0JUp7C5I %nA9  Q!1AuJɤH pv1m˳=7 &6V"N@T3D?F'2L\5eMYSk\QeU$ndG?oQmjf E$eoxolb%2_U"rMen4Js38QQ@_R_d_v___VFBkN\wY{a^ l o}?>h 9rO#,hozf-b?F [4b\#aoܚ;yӏ aꖄ(~Fatk?F@]% a;G!Dx 0Ry@ov{ZmE_K:q ;w c? lZV? Qt:?v:i@B柴 r @S8QA ,sw %]o oofW h2A%mWvbP,?F˴mԠr\ߦ)k\{Xi(vCyRyF"HDJ  # =h 4>TZ y qAUF}!v~?F>!?F7}}?F3 _?u?PBt`  fno?t# W@O림 UBu eut!sL0># |HBU\`J=#G k$?& ?ABbA@"Wb$55 l #!%(&Bt8tI:y=#0qql# LU1?/'7//$ 2QZ6/5;; t'>h0h!<M#h0,%C!nAnA`?CopyrigTt (c)@20@9@M@c.@os@fBAr@Aa@i@n.@ Al@ HsBe@eJ@vPd@Q$ &=#JM@?8>Uhs0E= # Ah#)Q!JO!FU'vC hngQX\A7@6SMB@Trt3ϯ?V[GzaiWR}nwݷ?F6/?FgȝG?F*> ߂?Pqe> d.\SQxlV_gD|enX}el`:i :`Kts` L&d2? )jO?na@B>Pbwr @c(:eFif[θoo $::e4%JeǤ@_"k(\%JeVfY2DAoYnia<5^F}=4?Fm?P 63 J; #rA4 ze<120"yZL8t+T Z >|AUFN~?F8?FOa=!Pt`  Ie%8?t#ŠA |&8/$HMu liu%w1&>   P""%"%"@%"$%"-Jh<M#Nh#u`%Ĺ$?%> ?AbA@S2b[409 h0 ! }3 h0\8h6st 8tϸ:"%!11`?CopyrigTtk(c)k204@9kM @c.@os@f&BAr@SAa&@i@n.k Aln@ HsrBeF@eJ@v@df@$B#0UB-3]0 M2t =tS0=tD7=F?_5;sth0= t> \#-?_MVD?lF_LB#__Bl>x0@?UhL*a*a9 Az1 1!S17!A$!a7J!\;>1?O0lrvoieq7a 6&vMD@dd.H?Fdz3l\xEn;|7xO;R(PtvN?F^Mm?F3?Pfw ? ON1iM|BBy/MirFiiB:~m tu]{qnY? /b.? N&d2?r4^1BЃDVhr>#5^1 rC(@u5Pui?T!k? ph yH5w5u{jN?F_u=p@_?FdAT?PT '&Y}N\J}q y߅Q<ϵhsq(=Sg$>c(ôewϟ៣\#@uEPuM[T?F7glοuҰ|13@uvUPuPt?F߹Zj#mIhq@uPuKĥE2YǾluƔݨPu%bb?Fi$ l޿\+|?p= ףب1ewFB} EzG4uyF-{(%˝?Fr?Fߞ a;}{(\U販%զ;ѼIzϣz#೎@uaLyrt3ϯ?F;lB8|Ԧè1Ly7}}?FqXJlM|szĔx!y߶6u?*BQ?FZ[θ?Ppϐ Bеlj=*he~~|k%zµ;N7#*?6ԉܲy#'DqS1Sp>hlDr}ʨ7+U[CU @u!Lyf ??@VŲoK Ѩe2oeS3rYa0a4QR#iDYaVbT!P5Qih "8XW.'DŗV %!H4q1;  !j^du<"81hT_r!3! Re[>c&kbd1<"8vQU#`a51 HD # =h4>TZDA B|IAUFA>?F+u-?Fe烇?FL"4?PWBt`  wcZw?t4!A׳Yۮ 讚Buj eu!s82>I (@JBU"?2& f?Ab]"z@QAi ^$f)55^ l #b2l"l#!^ l#Bt(t*Bh<M#hS# B`"#0q/ql2#m LU1?(w!*H7/(*"w6Ի/E K+ tE.)5p@1\A\A`?CopyrigTt (c])@20@9@uM@c@os@IfBAr@Aa@i@n.@ WAl@ HsBUe@e@v@d@jN4&#mJM@?0>Uh'3ME= !zAQQ!JL1n@ez?F)hn Q*e7i@ 6f MB]@gS sS _]RfnfYl [aT@~TНJ9 9oi@?qQoa` e150efUFSo!fo^iMeon]nY5_,T "rA N03.O3HD # =h4>TZDA B|qAUFA>?F+u-?FAuJ?F\@̣?PWBt`  wcZw?t4!A׳%f. 5àBuj eu!sL3> @JBU;C"AxQ5h1AA`?CopyrigTt (c)@20@9@M@c.@os@fBAr@Aa@i@n.@ AlP HsRe@eJ@vPd@v4 &=#JMP?0>UhO3uE= !A4Q?Q!Jt1M$;4?F[hnRe7i  6.f MBVhgZK]2 @v&_mfnfh1:i PʬaBv$ /˸? `0?na@aowr" @'c(Ta02"Pggk| ǃodHeY5XeҔu4 /u?Zb&s 3mIܳqfoedm\f9r C:$yTwd~&'q52_U"rA v036w3_HH3s ".6HUK;#4F֝TS.#UY@ `VDexko+دo(?G(؝W۝d(ݝiޝdmoXpt~y(}H G~hP6 xJ8l5߷x薚<D]IJBE~(K']L&rh)#'PߝHr8OK5'~(Xn5'WxE \H袿f #;1UFD  h>$T 6D UuI@@?k??)3P  B B*J*AȅHy\?br  0E`Bainstom,leg nd ic n LH(i^( K%X_'0U"-!0cBeO/a/ AG M  ڭUO)UU)UʪUUW}w | _x ?1?󅈂 ??8??Xb?8?=?LDrag thuesapWonodwipe.bu*B?^+?4l)!y]贁Nk??l_uzkUGD" # h8^T (YY#UPU@?@@u*B?@^+?4l?P} ] Y X   u`h?UVY g# $V. _ _u#`bA@$Ct?.n.tY$.?U"`lgnd` _/cm@ =H$M1y#i%~R#!$"+W!`Vis_SM D2 cPm!#50\06`?Copyr gPtg(H )g2 09gM c:0o of2!r0;1a0i0n2 gAlV0 8sZ2e e0vl0d2" "-X)|# '!  3Bd!%$} i$=r$&# D66 $Z##0U_B3)7gdaOC ]KTD"Di",D3112(jCh?!KrAh? 8/Ubo #1/U!-i"Qi%9_&PtSAftQ@tRT "Q3eQ^"Q,5[,@WnsFOz)IC "(C%!h h%-06`!&> f2uj2 Ll0gl0?#.Q9/K)2X*iXQa5 =|'Lw'2rq6J!a LvZ%RbY "vseaa7m5C #HR%^ii%^i3^.i5^$iE^YiHDB # 3hj8>T! ]]9 JAU@@\+?4d?@u*B?@^P6 $JA u`bCAJ "u#`b5(.tA` t^ft/]7uL0..7>U2N?贁Nk?<.A3T7 "+&<oa){bA-3Q&!,5 JuJ\q +?'"'?\.?l8/: hP50@=Bd1d15 `?CopyrigTtk(c)k2009kM0c0os0f21r01a0i0n.k Al0 8s2e0e0v0d0-,/p3 p7> &2/4q6fDAFAF =BA/b$m# "!n"3=%l K!Z$b/ghe_y'Rɭ TA,RTCTl@ d1"0Ab&59 =9Q$W_'2r"AFX!=A0 V#LlJ aUh]E@C1#! ! T9!Jpb]e (bx(4do_nu3!~:iHqu&5!uosE2o;CrA D##8!eN0 0ymb0l2ex0sT21 0h0 0a0t[dspj0a0.`UHLD # J#h8/T >M U@@^+?4l?@u*B?@؟[?P. VJ# 0  A>uA`mbAjJ+x&x: N   ^u#`b k>te it<> 3.?"?AT@m>u`&d.W&2N贁GNk?ABa"im"+I&>#Dհg0# 9 ?^bbboz/3%"apoJT##J!#"2JN\$q0?727#?\.? pn)OBl_@%#B #AA; "`?CopyrigXto(c])o20@9ouM@c@os@IfBAr@Aa@i@n.o WAl P HsRUe@e@v!PdP#z"!-?C G6Qg@li_'>T,T"l("Tp@A"@?fQ gIXFWg/'0U^b6,1.10 f%"lJaUl~ A#1!(T#g1d2LuD 8jr"(xܯ)T?@ >20Aw »k F?rUs SSJ޾p8&t8B" ?@(mZ3X?@d*\5 +"?ywiմ|.\us8=us~Up ae i?=n.5tqQ:u=Pu{@_pPyvPEufvS.A @{3?@=m?@yj5#R>NtHOPgChNm{j{a{B4&t6P}u2&eS]ra #*z"aeSb@ PEoo t?ꟃz@Яx&3-?QɯQMLiL!Pg!Pn-P PHD: # T h8> T ]]9 # Bz1AU@@@?@u*B?@$nWs?#P6  >m u[`bKAaK    N Nu#`b+th% )'tr w]v-]-uL&$.->2N?贁Nk?<T)-J*"0+0&z#E;?#) ?A(Ӏ9,3a+lavvA.\$q"0?!7#227?\.?l.^?:WɄ!#5 Jh0@=T#115 `?CopyrigTtk(c)k20>@9kM*@c(@oKs"@f0B!Ar$@]Aa0@i"@n.k Alx@ (Hs|BeP@e(@vZ@dp@BY-?C G&$A2i b5(9 9XGW_'2r"2&X1!0 V'jO_{G/V!%3bjWkVDaWQ^>o9k__5%",@@heo]' TA,tl*"Tl@1rclkQUhm5KA#Z1*!T#X91$rqu   (8r\(4ts~ 34yB 5D M2;!srA 8#J8*bL@g@n@ SuiAtx@epHDB ##3hj8>T! ]]9 Js#U@@ ?@Uq?@$ns?#P6 mBJ >b]  k 3u`bCA$*J Fu3`bSJuthMQ5t] tU*uLNdp-U2L.W>7U5 2@ '\C#2q ?ʗ'"':#?\.?lV/:2J$N贏Nk?<h"QU-23;36<a)!b#rQt6.%)C#O(A439 ! T! ]]9 J0#U@Uq?@ ?@iFc?@$ns?@@#P6 a >]  u`mbCAJ <u3`bItC 4l5thPl]l \K<uLD#-MBI.M>7uU5 @J '重\#2ǭqU ?T'V"e'?\.W?lLP/: JN$N贁Nk?H<^GK"+&<ސa)bٖG16K#  (j4#~9 w!/lM3"!N235l2l:4B?&1Bhg1@@=/T#MAMA5 `?CopyrigTtk(c)k20@9kM|@cz@oKst@fBsArv@Aa@it@n.k Al@ zHsBe@ez@vZ@d@X-YC YG6:&Fi3b[5(9 &IgWSW_'2rU"6Z!40 SV<WKhe oKT,@dMdE"43Tl@MA @ ZdE%ikSlJQUhm>ECkAi!!4S9QBPgEqB(u/iHZt3i~yqYu[5~A{E{#TvX8esAu@t `HDB ##3hj8>T! ]]9 J"#U@UQ?@Ŀ ?7?@$ns?@@#P6 $J > mu`bC[AJ (u3`b*5t/ hi J75tTX]X 7(uL0*#-9..9>7U5 v.@J \2[qG ?F'H"W'?\.?l8/:vJ@$N贁Nk?<JP37"+&<au)b-3#6\4#p9 i!/X?3"!@235l X,44?1B@hY1@@=/?A?A5 `?Copy_rigTtk(c)k2U0@9kMn@cl@osf@ftBeArh@Aat@if@n}.k Al@U lHsBe@el@v@d@KC KG$s6Fi bM5(9 IgGEW_'2rG"s6Z!40 EV© B EUFDfP h>$KT 6D UA@ ?-I?3MP?% ȅH?BT ?2~t  03]`)disk,torageSLIT,flwcPat,(e^ 3%B ;o(7/I/f2u` F. `" ?&&b TJ /?|wxpf6lbx{s'pwwpl } wwLDrag thuesapWonodwipe.UH PD  (H# Uh -MPA&A AnQrQ  sQM B>B}diiMJN:!@XH`#pr~" %Nrdb#$u=P`N#"WL>$#3184+1N`Vis_S`0DL.c\m!#50346"`?Copy ig\t (j0)02v0090MZ0c: o\0of21r01a0i0nh0 0Al0 8s2e\0e v"0dh00-7 R30ER-)#?3 M?7?&/ & !ԩ=#@13 $BkFkFS)$##2N贁Nk?QIJ&QGlJ0AUppES19 !JB (w*- :"P!$bS",'Ai hiM  "ԟ (W]Z]a_*t@cP cn"!8*\e/S&@Ysg$" f$  )%c}}Uv U?a`3m_|"c2aU_s ?ovbFs}}2,ucrxsHQtXTE9 $5I _C_Spjc +gMEa%{}B\cxv (w%t%<g*hd>M!Pm`wYM#XJ&[f$@[dEfH'S#},b"41B(gǖhUw bf Д_DUUXj|J3P QX% f"%m  `b/"x,ȶ=q#mEPew_fm8J&J&@2MbS-f#%AOrlt%V/{܁/%TR$5 qmPpm+N%TA""11$2 (X;135Ѭ  J B`1s00(B`/R2%kA.Q7*QCDu:\$5sb8S"W` R2oc2DQw %AQAA" (k7?0ASW` %`&2p21vbb 5 !:#DCNg6d=O EAEA$2!8,@B"iNXG'2qkFu!Ŀ0AB57Omb?ؿ贁N8i6??54 _(H_Nf;s s)EF8l7JB#7@=yK? XL?w|w{vwpwOwp ߃w pwwwww~wppwp|wp %,:}vLDrag thuesapWonodwipe.b~߿?)j?xk:3?@ ?DUGDF P# h @T(PYY*# UF~K? P} t. ! :ATAhu` ?j"6@@TThh|u# ^",':U? ?4b {[`:O!#"&#'"hQHS)# h!/L!$@" "#' @>>ÿ@qZl0a5?k4a6p Tr&232u0`-!|2u@ "23|12" 9uv `u`"[ۢ b!]u`JS$A"J%)S#Am!m'1`Vis_PRXYcPm!#5nP08B2`?CopWyr@gPt (@) 2 P0U9 M@c%Po@'of-RQr!PZQUa-PiPn WAluP %XsyRUe@e%PvPdBm!J# dV$J%T!B=S(n! J#bx&x& t"3#S#0UWbx#]:W,A^a`N0STgdaoC _c }a}e"!"+@t3hhB )ZtB*gtA"aa G(3T Q J"q%X!`aSl"!6u\%7Ř!O!%["0@Bq35c_J$s&F3s͵NSYFuE{|E{|E{.|U1w;,@A SUro%}h `J"G(paefefs_<%||-p 1CUG(Arb6AKR8A2;6>]q`RP^Qs@fU TPx-PP2"! 0<X@5b ??"5"?br# BmߟE}Cq`#PuJ"]u"Tju3G(fcAuK ]00` SPa*!PeWPlbsQOc+` QnkPe@fQv̢yU%q P]]A6 :T#P@P2` Yc.ĢtucPlp3Zϗ,Ob` MSbPC#DcRqBi!a]X\S''Vdx&!pE0*o سcTD m HQJ%] h%]Th3]hhUHLuD" # ;3h , T  JEUF~?FfQuܽ?P NA  #. A  FV= *oBoVm>uA` /?y $8P`fxu#>b<"W!F&Sྻupt bF{#t=!&>U2zGz?@9 #>&?A@}" (b);,6" !$i>#[2#"r6p 92"b);'"5<"V5?N#AA#`?CopyrigXt (c])=@20I@9=@uM5@c3@os-@If;B,Ar/@hAa;@i-@n.=@ WAl@ 3HsBUe[@e3@v@d{@+"BM#C Gr6"L!3'L"tu"Ei fE %T1XG,W/'0UuRr650 ,V@Zl >(fUlL!@,Y %#A!(! Pprǹ\0Q# ?aGZa# QI8p;94?V?F?_YC!X?P*G0i jOpDl~Yma:Ze~MzYf<#(Wu: wd d 2v<"#41BeB7" t2Dwr$5@5wa3eL 9aImAaFNaaGNbZXoHh{VXn&[|mciynoRZbz8mG)cuTfw8xQ#8W@_C _o#n~smSɿ>F |r}W'`TEkpf>[ktT I% s"MqP SLxNrFH$DҔ0L)_\j(\ҞE\8bF3Ɍ|6ՕEkDZ8TWoiH&7toQcuǿٿw`Ǭޥ:ҡX:jw_o,,o>oPoEЕHD: # h4>T]]9 M !AUFnzjp?FU8<\?F?FoowǙD?]P6 $]A  mJuM` ?l? $u.Jt+  E:n]qte\gIqzq-0m7>JU2zGz?@MJA@b1#z' %#b?(bM)RZ+Z&J!!5 `?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al0 (s2e e v+0d 0!E$[;?6L ?AE$\/}%-# '6? FiiePd59 FX#G'0UBŊ640 UFiJl&>Uh3 GM!Z1E!FϗjN>F-nTdܬV)iJZQVc qQHD: # h4>T]]9 M kAUF~?F˿r\?P6 mL>" ($JuM` ?AggL2DuVJ1tS tQ_uJb%_>-JU=!=!5 `?CopyrigTt(wc)20 9Ml cj o%sd fr"c!rf !uar id n._ Al j(Us"e ej v d %"6#T:$.#B[7#J! w2?/6 ?Ab A;@U2b]4-7#I# eI'/6.%7#2zG_z?=@ M-#J6^3Lj0 Cz`0^8 ^8j6dUh$ ]7T ]([!1 +(aJRj0ER"J:]SnQ7Ir5o5Q5U`oUzo;iU_S<U Pb#iaGc=cUeJ>H:a'Tt?PXX~|k/?lej> yrL&s ; _1t8~^~FutFXqxHD: # h4>T]]9 M kAUF~?F[8?F?K?P6 L6>M (m$JuM{` ?Agg2DuVJtS tH_Jb5_>JU=!=!5 `?CopyrigTt(c)20 9Ml cj osd fr"c!rf !ar id n. Al j(s"e ej v d %"6#:$.#B[7#J!7?/6 ?A A@U2b$]4-7#I# I'/6.%it7#2U2?2@MB-#J6^8Z<j6d<Bj::6iie{59 6jXSG2^'03/6Z!J40 FJlJ8>UhW Q Q [!A+(1.#ptn\Q0LR_7 W_L)E#$J kp>F|QFg[h'`T?PXX*G0i jOp\^">[O13SLR/Ɯ ""a A8l &Ra@lb<oor5o5B:TFH$DQ0mbSj0[K0HRX{5U\QuFə96oXDZ8TZ^DwWi^mi4q}doonFdal5 uueJuqrSWWqU PjrᇰYaG,H?_s  @FrշFȳSc#P' _U? C) V<>a81( EoD+XGo>?G7o-PH\/a*< dLeh]UFD  h(^TYYB UFjZ?F~??x<F BPG(?P } X ]B66]  TTUTTT)9T9ȅHBU??:& ?B@L&d2?J-[(\.Ym(K.sU!&/")!>%:  0 %wB`6conte 2,ma 0ag$0m$6s$0rvD2,1mpsu"2M1diB0]tF0ibX4d*0Un$0t0oF0k!e^| D(SG& iz ?!3E?? ? DDD wpGGDDtD pqwtDD@pqwqwqqqqpppw%wwwqq`Zwqpwww{w;\Drag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aabjZֿ~??cN׿ mF1?? V↑T*J??@ ?UG DF P# h @T(PYY# [U@jZ?@~??F?Pn} u{` ?Su#>>HX HlHYHH E.iOOQ؍>DDUXXllU*u'T9- &",'tU2J&5q/4 Q?"'4b0{[`:#26Q_9$"3&9"OL1" ^!'t>_@ÿ@qh@?@`B?gDP]F0#Bu)@K`-1Bu@rCC'5GAB2C9u`u `"[ bz!uK`2/3AQy1y7B`?CopyrigP}t0(c)0W20P90MP]cPosPfRRQrPQaPiPun 0Al`U XsbePePv&`d/`VPs_SBNcPm!#5P8#6P7`y1&3dpb4&5=Bh8=/3z6&3d66 2&4#/30U!r3]%ge<^1E  U#"em HqV5tw3t{FEt{t{y {et{k5t !{|tYwmAdaу*IOBT.1:a$:a&20#V2103dadaFB3J1125db6q 7~C|hhE)*^Q_`BCQCQA11=B;8ARrSqea !> b`1AE4FAނ.1+#8dT7`8XQ`]r` MPnuJPaPt%ar6aYQ` E]0u*PpU`e`tee^V5Qn]1PRd M`uU`b¯Ԧ30说! PPr#5GCHhz]3D&bQ e^\޿𿢏AP)aB#`Ҩ75^gyZ% S*biP aϷZeTZLPcX@&ϫk5N`rBDl2`i`g̨)@ߑ !RPoʂѩ|(Z\@ p(KD`ĖSPaPePlP6?ЪX.9` TP7`?>` /aZgSb4I`.3`QΡ@̮ʒ=N•wRka<`q ҨגcM_I` ad2`%c& d nĝs Nx);鑙mDatV/a I rNf󨑙 R `Qa// %;/IM`C~/⯸/+QmU`utP I`/ %N4"?4?q 2t? 2Nv??;EHd2QC]3` W@xڙ%?NV#O05OCr a}OO#ޅO/`M&`mRyOOӧYNp_/_C;!OUc1yQQH[_m_Mqt!Tw foSU@jZ?F~?/v/vUpSp2u8p` s?bup`TaM,{t!Wp5%m-ׁ< 3ofm!Qb8q׏ݥBT!.at!2hAXf@>pý$ bUdq ҹvU֒QrrrvvvrsW"`Ro(l]10 e)Zbb UUbr}@":btbUuP`hoeo1o"4zI}_obI1I2\!b^¸aaaaFѴ_AaYY6P`u$K`bq`ݡ%q`an䑷xh^rݥ5_bv&bЂF3s͵NSYDq\rV!@&!e68E^6*E6ǐGFխZ,@rb40PT}sasavs@YVynv` % P&S.1sa`NEWORKb2H PӰq!RTٰRIӰSIQƑDži|o$ohXAE'0U?!c0 oHD # =hj0>T h]]9  5AU@jZ?F͂T??Fx?SF?P6 jt`  o?tk[>(A Vu aSuo.]&A]  *ԮJU2zGzt?@L#&A@bA#z7 5#1bO(b])j+$j&[ "*(w "?& ?AU$l/%B115 `?CopyrigTt (cu)Q02`09Q0uMI0cG0osA0IfO2@1rC0|1aO0iA0n.Q0 WAl0 G8s2Ueo0eG0v0d0"1E]4MŤ-&3 &7&l>]Uhz811U!J!u6?F+\.>djIIa? >"(EǑ I%K9E 5EU . K ;;5QIWEEEF _KnSA?8@@Bu?FDR> ?Nk"\6`bmMM\j=am {:e P> #? D"? 5-g?j4B7!B{oogr57!ibDAbE9 MuX7_'0U~rN!$a)5 5vIzHD # =hj0>T h]]9  qAU@;?FI5K?@xEL?6ѿP6 t`  bm&Qo?t@@L]WI,#u aiuoL> JU2zGzt;?@L?&A@b}#zs q#1b(b)+$&[9#H",ɺ (wH"?& ?A$ /%9#BV1V15 `?CopyrigTt (cu)02`090uM0c0os}0If2|1r01a0i}0n.0 WAl0 8s2Ue0e0v0d0"O1E]S4MŤ-9#b3 b7&l>]Uhzt1.A!JN!m.%-+0djV1ax߃S(FJ-&?F mO"> ?Nk"L[Majnha_:e P> #? BK=o? n-?j4Bs!B{__Wr5s!D8E6V 6?wj_|_ ^XE.U@z T6?F @' d_mOoT \VyWxRkrVo_bVh*g:n"'UaEjz36>CN>?Bn}]zGvN7V iDAbE9 MX+G'0UJPN!4ae5 MaHD # =hj0>T h]]9  U@jpiH?F^?@$?F]F?P6 t`  !a&ao?t,F=۳=u;u auo>J2zGzwt?@ʐLAw@b#z1b](b!).+I.&[-m(?0& ?A$I0/Q%!!5 `?CopyrigTt (c)02`090M 0c 0os0f21r0@1a0i0n.0 Al[0 8s_2e30e 0vq0dS0T"!E]$M-# %'&l>]Uhz!1!JF% djc~YZ(_N9zOMGE%_EH$SwO"K ңHE ^&_8_WE_OqOHOOi&DAbPE9 MX7'0UUfb>!$a % f1jHD # Uh4>T#]]9 M5AU@jZ?FL|+?@?F({~?P6 JuM` ?u JYt )t7zEA2&L_D?. > >tJU2q K?=@MJ&A@-b9(+bG)T+T&J[#"#a?& ?AH?/`)#115 {`?CopyrigTt (c);020G09;0M30c10os+0f92*1r-0f1ai+0n.;0 Al0 18s2eY0e10v0dy0z"!4B#e-?3 7)& b 0K8>U# ]A]A "1!ъ!PzQ <%OYAJEU . K;;\%W%EF($L[.FX5Eai%?F 6?wL;] W-\TB⤲8?F@&SA?F @ ?Nk"L'`bmMW_Ye[ٯ7 VK=F: [jr ? D"? XZvD?ta@Boogr5;!QEx]SiLO MLGXa~WOTZiAle59 XG"'0Uc&N!$05 .HD # =hj0>T h]]9  IAU@K?FOgVb?FY%?Fwᳬ?PJW?>t`  ^Z?t#ə.E @x?r?/{4܂ G _Z+u u$ >  J JpU?43f<!.&P?b3bbfz@1bAe&bq$d 2zGzt.#@LT"&r(~&i$q)(+}'i"~*#81815 `?Co yrigTt (c)o02`09o0Mg0ce0os_0fm2^1r 1am0i_0n.o0 Al0 e8s2e0ee0v0d0"11E]54M-#D3 %D7.&lUh#7 V1#Ai!J# F/?B1B  VRiAAbE9 MX G{W'0U*R2N!I$a {VZUHPD  # #>h0JTpERI MU@u6?Fjc{g&?@%r`5B?Fm_F:Is?HNtQ`  II?t#]  _ii$!`kNu  iu%wj>M JQ T       "@&&JNU2"?H@Qs#N&A@b(bU)++&RNp}#>H1#19 ?#bbbz| R&/5R}#11`?Co0yrig\t (c)02h090M0c0os0f21r0Aa0i0n.0 Al!@ 8s%Be0e0v7@d@21a4t#-}#3 %746lJ#$JUp5 3 M19 1!q(!FnElrkRt# 8$kcD?@숒@)?FP?P"EkU |1\iOT/irvs}i>`_,of :m ,M ?? S&d2? *b?r4B!B oo1gr #5!>%(EQOOOO__FAc1_C_ D4ևS]_o_yRX+{_,__ #R__ (YQoSo+o=osd {oEeooooooFyUy{* hDVW(I X"c7I!pg bf'iMjSE t%XyG|'0UŢŞN!O4i |UGD # hz0TdYYBU@(%)?Fxg^?@0߯H?Fs7Uݹ?P} t` 87?t#_)TeΦu ]ukv  ̝L&UUU&I&3 U!!`?CopyrigPt _(c) 2\W09 M c os f"!r 1a i n}. Al00U (s42e0e uvF0d(0'HS$#-## 'I?k=#ǒ 2j$B##0U'BM3@&@F0Yk} #HA%DKb5DK3DK5DKED$!GiAZG5(|IDFX7yW'&Dŭ6!4YA yVZHD  # =hj4>T!]]>#AU@0߯H?Fz)e??F˞9q?P6 t`z  ?5t# rXѮu)Nu;):O]ע0 &> # " "+"+"+"+" $+"T-J[U7 ??& bA@ 2b4-#2zGzt#+@ Li68!6 ?}; 72U!:B#AA5 5`?CopyrigTt(c)20F@9M2@c.0@os*@f8B)Ar,@eAa8@i*@n. Al@ 0HsBeX@ej0@v@dx@)21"DM-,;?C G& l>]UhzAE!A#!ְ1J`#@{&pz?FUy{?NT,dKj&b&R&M/8T9K-q?F@F?FdG0 >Nk"?YE*]\LThKjfGD&Qhj ?iU3UGe&Y`?@/Jb)h5oWKoWo;èKod}l$ro`nE2K?Fˌ%4G{?F -q? eZR^{|\?6?vodmP}l>MBe 9 N 1iS? 1?grl#51:PO"4ga@Sq(UE^@O|ǐ[`ߡa v2rbA @3ijD&}laqOz o?#WHZ'Qu=*[^N?F]%P?@O&@ c?FаM<n ?` eb0)\(Pfodm}nv}l?V5(?q$Ix[cN#W{ #iA@&QeE9 MX''0UjdN!0 /HD  # =hj0T h]]9 #]AU@}%?FR$,?@6#V?Fc_3֡w?P6 u` ?u#t  3zM%t3ws%.<%H._'B> #PJU2N贁Nw[?@ʐL+&A@wbu](i+bk)%+&p%#4">9"<5!?& ?M#bbb͓z$ p&"/%T%#L1L15 w`?Co yrigTt (c)02`090M{0cy0oKss0f2r1r 1a0is0n.0 Al0 y8s2e0ey0v0d0"E1E(]I4M-%#X3 X7&l*>(UhE j1#$Ac!J`%#@5e$_F??!foA3nBM( V?FJ-R?@HQ??FS!R?P| llHL6VLD5E+v;*AůʙH: 8snP%$? k?Q? \?4_!__WrA5_! R,U3OC@IL?F4~Kz?P)Oy޾ T!]]>#IAU@܋?F2Oa>?@#r`5B?F*ݷ?P6 t`  >B?\oEt# ŖoZu 0Nu;Y:|8>$# JpU>##<?2& ?5bbbz@b#ANi&bu$'h 2N贁N[2$@ LX"D&v(&m$ :;T'm"*B#d1d15 5`?Co yrigTt (c)020090M0c0os0f21r 1a0i0n.0 Al0 8s2e0e0v0d0"]1"a4M-/p3 p72&l>0>Uhh= 1#!eJ`#&FNTM\jh1B,RBM(!JoUy{O_ e@ So4(D@^Tw?F]֝ä ?Nk"?w_KT\T+\_(Kjӷjmplhj -`\TPQE\Uui,St_o u~!ՠXEO9= T?FL?;uQ_Pm"rA @3sjQ1lğ=GoYniAleE9 MX|'w'0Ur^N!M$|A vzHD  # =hj4>T!]]>#IAU@܋?Fj?@2r`5B?F^ݷ?P6 t`  >B?\oEt# 6ΠZu 0Nu;Y~:#&}>0m8>  PJU2N贁Nwk?@ eL&A( 5bM(b[)h+h+$h&#[-M$#?& ?b$Z*'*B#O1O15 5`?CopyrigTt (c)02U0090M~0c|0osv0f2u1rx01a0iv0n}.0 Al0U |8s2e0e|05v0d0"H1P"L4M-/[3 [7&l>0>Uhh= m1#!S!J`#*&FPUy{_?NTMjC1gc RVMʣ(D#@ ![?F"$. ?Nk"W?IKTLTcKjRlhj p=' (*!)i,SO2Kes9T;QEGUFw6qX}__TM7fTZT\Dž}_P^52XOES"rA 0S#Es3iAleE9 MX|$Gxw'0UrIN!4gA xvzHD  # =hj4>T!]]>#!AU@܋?Fc_v?@#r`5B?F*ݷ?P6 t`  >B?\oEt# ap'EZu 0Nu;Y:|$># BJpU>#͙;? & ?5bbbz@}bAA& K&@ 2zGzt?"K@ L0"&N(bM)+TK/8Z*B<1<15 5`?CoyrigTt (c)s02009s0Mk0ci0osc0fq2b1r1aq0ic0n.s0 Al0 i8s2e0ei0v0d0b"5194M-t/H3 H7T &l>(>UhE=3Z1#E!J!FENTMjN@1h(NoUy{OO e@ o)4(D@^Tw?F]֝ä ?Nk"?'_KD3\T+\(Kj?ӷjmlhj P\ DiAlePsI=MXsG'0UzbZ6N!%$0 sFEjHD  # =hj8>T! ]]>#!AU@܋?F*?@#r`5BW?Fw?P6 t`  >B? \Et#տ|u l4RQu?]>I$>I# JpU>͙#<?& ?9bbbz@b#AE&bQ$$D 2zG[zt#@ L4"&R(^&I$Q)+]'I"^*Bh{.M#To1o15 9`?CoyrigTtk(c)k2009kM0c0os0f21r1a0i0n.k Al0 8s2e0e0v@d0f"h1l4M-:?{3 %{7&l>(>UhE= `51#I!J49fAn^ R)X f"B!Jui,SG?RSlOS u~!N]8-19= T?FL;uQ ?Nk"?YVTQRXQOnğ/=i n (\ wTiAaePE9 MXLg'0UbZiN!)$0 Lf`jUHLuD" # I>h(J TEI 3MU@jZ?F({~+?P >uA` ?u#jJ* )8* 9LGA )`G#dtG.$*G8BVj~>t  e t>"z "p{b+#7"J>U2zGwz?@9 S#>c&A@b(b)+,&" !$5N]#2T#k"6 "M"b)HF;'","/]#11[#`?CopyrigXt dc)020090M0c.0os0f21r0Aa0i0n.0 Al+@ 8s/Be@ej0vA@d#@K"lJ r!UleaAaAC 5LX%#!Q(r!Io?F8.<01# p炊 A# _W NEx]SiL5 [ML"X35^P?zQM___ %YA"XEEU . K ;; \W%U IF)$_ [.ǪF"XA6jai%?F ߭6?wL^ W- \_"T5Dꤲ8?F@@SA?F @ ?Nk"?I5?`bmModiy[7 K=F  %j1"XI1¦e?FrՓ`L dU TZ<٭hEeN@ (?FG+ MuPu;0&z_[Syкf|C`u|p?9L"TYAAekBp OOG}u?F9 mO"L9=T/hQeel.%-+?@mlփ?FU?> J4ɽ7yfXtOff|A=$ 䖏p$za3ex/@4S}a6N`Sy'e!a#q&ziMסiIT%!X '0UW65 0. "UGD # hz4TYYT#BqU@ t2?F`0 ?@jZֿƿP} mu` o?u#Ld28<LS9`(.88L``t, Stfm۶mەtUH~#9#[0Up"?@/& 9#!!G*"`?CopyrigPt (c) 20 9 M c oKs f"!r 1a i n. Al&0 (s*2e e v<0d0'"!P$0#B-9## '(w#^=9$&0#466 20$e$^ #E X5 9#HLA0%XD`cKX5XDdcGg&AcOT^'TcAcA0"-(Ca0%g20"ihaPX5 &X~7.GW'o$ţ6-!40 GV[ZHD: # =h4>T]]9 !AU@jZ?F`0 ?P6 mu` o?u t  M)t7@2(L$A F  EJU'N((? & ?AbA@ybbu?bz; 9#0"b(8$GbKn!M#X#n 9#2zGzt?088r@Lh"&9*?bRbPM/6&0"m!S('0"*TH1H15 {`?CopyrigTt (c)020090Mw0c.u0oso0f}2n1rq01a}0io0n.0 Al0 u8s2e0eju0v0d0"A1E4MO DQ-OT3 T7 &l\ Uh#7 f1 A0!J $FF, |B-&R6 HVWR( b w0AleP59 MXEG'0UbjN!%$0 W5 VZUHXD # U>h4JTmmMWQU@jZ?F`0 ?@P uQ` ?u4Ut9t-GQ"PB6\"mR"Q UA@"Q    #:"    Z]&& """",&*/5D,& I& & I&J&]U2zGzt?088r)@Qo36߀A@bbRbPz鄳03=b8b9;6xRn7Ry3SASA,K`?CopyrigdtJ(c)J20@9JM@c.@osz@fByAr|@Aa@iz@n.J Al@ HsBe@ej@v@d@ B@LAYPDZ- 'N((/`C?EVOea0RAq` A@c@n@yAlZB3z۳0ٳ0bbbzY3mqUZA<__bܠ_bNbbº_8(? EGO_C _GEV<$flmUxqAU1m81`п1?F?nWwgPt,r#51:*2~d|%X|RLr ?9@tIdE;.O ŏm87tZV?Fz?@. ?Fo6tpb&#?9?FnpH5#d|239}A$>k<^Ꟃsv+D?EYzi6ߛfk@bߊ௘,?@.ݮBk_RN|"N(קy9$T^8(8DY#0Y.qeq~ `0u?@e"&c?F+F?@CS ?FEJ N|{8] vtqSH sA$)k4y~ rU/ݡgaidaaTaep5FUhXlgdd'K0UV"őkh`!`T+0FUbE !*HD "#=h0>T@++]]9 !AU@jZ?F`0 ?ֿtP6 u` ?u#Ft %t3.$H$+A  R J}tU2q?=@LAw@)b!(Wb/)<+<&R[G z$?& ;AH'/H)!!5 w`?CopyrigTt6(c)62`096M0c0os0f!21r0N1ai0n.6 Ali0 8sm2eA0e0v0da0b"!E]$Mb-# '&lU+#7 1h#w!!JA tFkFֳ "x)B- FBiAbE9 MX7/W'0UxR>!8a /VCZ_H;s tY,-6nIgnF8gm#N_oFOF ȓ$ p~?fs`#qD}+ 'V?Ge}f4|XσĆ( ~x ^֛8   r6   k 7] IN ,9? ð U "߶i8 _UFD  h(^TYYBBUFjZ?F~??x<F BP(?P } kXj BW66 W TTTTTTȮH?Q?G ?B@L&ɯd2?-)(?\.;(. sUa!_&/J ( G 0qB`3streaming, ed a s rv 2,co pu 31#Wib 4d n wtw0rk!e^| D(SG& m?!3E?? ?   wp x  p  ʵqwp qwqwqpqq/qpppw.wwwqqiwqpwwwweDrag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aabjZֿ~??cN׿ mF1? ؠ?VT*J?@ ?UG DF P# h @T(PYY# QU@jZ?@~??F?Pn} u{` ?Su#؍>>HX HlHYHH EO.DR4:UDDXXUllk'"&R",I'U25ĉ%4 ?"u'4b0{N[`:Q1#2T6"^U9$"3&9"/L6 2&!'ݯ>e@ÿ@qn@?@-fB?mDcFԸ0)Bu/@`҈-1Bu@rCC 5GAB"2Cm9u`u `"[ b!u`%3Qo1o7B`?CopyrigPt (c) 20P9 MPc.PosPfRQrPQaPiPn  Al` XsbePePv,`d/`VPs_SBNcPm_!#5ab4P=`o13dX45CB^8=%3p63dz6z6 v24#%30U'rz3]ge<^AE@ U#5m Hq5twL5t{3t{LEt{t{y {et@{|tYwm@Ada׃IUBT$1@a@a2ja$jaL21632CLBA3P1125jb6w 7C |hhE)*dQ8ŔIQIQA11CB!;1XrYqea>ez1AXE:FG$1 8dT=`XQj2`]r` M`nuPaPt+arp` ?bup` ? B=ݝ`S,t']p5'mQ-݁<9ohm'Qh>qݏBT'.ct'xZf@>pÿ7Љob2Zfq [ܒrr$ avvvrsY"`Ron_16 eI`bb ccbr@uP`TaSq1u$_u'K1K2A#b[@aahaauhA+}pPk` u*`s`s`a|x)H5_dd&һbpSF3s͵N?SYJGbrV@ГD#eb 8d E LqW,5@rB: 2ˏV}uaua hYVȻOn `; %P&S41ua`NEWORKd2H Ps!RR*ISQio&oh^A'0Ueq?!0 oHD # =hj0>T h]]9  5AU@jZ?F͂T??Fx?SF?P6 jt`  o?tk[>(A Vu aSuo.]&A]  *ԮJU2zGzt?@L#&A@bA#z7 5#1bO(b])j+$j&[ "*(w "?& ?AU$l/%B115 `?CopyrigTt (cu)Q02`09Q0uMI0cG0osA0IfO2@1rC0|1aO0iA0n.Q0 WAl0 G8s2Ueo0eG0v0d0"1E]4MŤ-&3 &7&l>]Uhz811U!J!u6?F+\.>djIIa? >"(EǑ I%K9E 5EU . K ;;5QIWEEEF _KnSA?8@@Bu?FDR> ?Nk"\6`bmMM\j=am {:e P> #? D"? 5-g?j4B7!B{oogr57!ibDAbE9 MuX7_'0U~rN!$a)5 5vIzHD # =hj0>T h]]9  qAU@;?FI5K?@xEL?6ѿP6 t`  bm&Qo?t@@L]WI,#u aiuoL> JU2zGzt;?@L?&A@b}#zs q#1b(b)+$&[9#H",ɺ (wH"?& ?A$ /%9#BV1V15 `?CopyrigTt (cu)02`090uM0c0os}0If2|1r01a0i}0n.0 WAl0 8s2Ue0e0v0d0"O1E]S4MŤ-9#b3 b7&l>]Uhzt1.A!JN!m.%-+0djV1ax߃S(FJ-&?F mO"> ?Nk"L[Majnha_:e P> #? BK=o? n-?j4Bs!B{__Wr5s!D8E6V 6?wj_|_ ^XE.U@z T6?F @' d_mOoT \VyWxRkrVo_bVh*g:n"'UaEjz36>CN>?Bn}]zGvN7V iDAbE9 MX+G'0UJPN!4ae5 MaHD # =hj0>T h]]9  U@jpiH?F^?@$?F]F?P6 t`  !a&ao?t,F=۳=u;u auo>J2zGzwt?@ʐLAw@b#z1b](b!).+I.&[-m(?0& ?A$I0/Q%!!5 `?CopyrigTt (c)02`090M 0c 0os0f21r0@1a0i0n.0 Al[0 8s_2e30e 0vq0dS0T"!E]$M-# %'&l>]Uhz!1!JF% djc~YZ(_N9zOMGE%_EH$SwO"K ңHE ^&_8_WE_OqOHOOi&DAbPE9 MX7'0UUfb>!$a % f1jHD # Uh4>T#]]9 M5AU@jZ?FL|+?@?F({~?P6 JuM` ?u JYt )t7zEA2&L_D?. > >tJU2q K?=@MJ&A@-b9(+bG)T+T&J[#"#a?& ?AH?/`)#115 {`?CopyrigTt (c);020G09;0M30c10os+0f92*1r-0f1ai+0n.;0 Al0 18s2eY0e10v0dy0z"!4B#e-?3 7)& b 0K8>U# ]A]A "1!ъ!PzQ <%OYAJEU . K;;\%W%EF($L[.FX5Eai%?F 6?wL;] W-\TB⤲8?F@&SA?F @ ?Nk"L'`bmMW_Ye[ٯ7 VK=F: [jr ? D"? XZvD?ta@Boogr5;!QEx]SiLO MLGXa~WOTZiAle59 XG"'0Uc&N!$05 .HD # =hj0>T h]]9  IAU@K?FOgVb?FY%?Fwᳬ?PJW?>t`  ^Z?t#ə.E @x?r?/{4܂ G _Z+u u$ >  J JpU?43f<!.&P?b3bbfz@1bAe&bq$d 2zGzt.#@LT"&r(~&i$q)(+}'i"~*#81815 `?Co yrigTt (c)o02`09o0Mg0ce0os_0fm2^1r 1am0i_0n.o0 Al0 e8s2e0ee0v0d0"11E]54M-#D3 %D7.&lUh#7 V1#Ai!J# F/?B1B  VRiAAbE9 MX G{W'0U*R2N!I$a {VZUHPD  # #>h0JTpERI MU@u6?Fjc{g&?@%r`5B?Fm_F:Is?HNtQ`  II?t#]  _ii$!`kNu  iu%wj>M JQ T       "@&&JNU2"?H@Qs#N&A@b(bU)++&RNp}#>H1#19 ?#bbbz| R&/5R}#11`?Co0yrig\t (c)02h090M0c0os0f21r0Aa0i0n.0 Al!@ 8s%Be0e0v7@d@21a4t#-}#3 %746lJ#$JUp5 3 M19 1!q(!FnElrkRt# 8$kcD?@숒@)?FP?P"EkU |1\iOT/irvs}i>`_,of :m ,M ?? S&d2? *b?r4B!B oo1gr #5!>%(EQOOOO__FAc1_C_ D4ևS]_o_yRX+{_,__ #R__ (YQoSo+o=osd {oEeooooooFyUy{* hDVW(I X"c7I!pg bf'iMjSE t%XyG|'0UŢŞN!O4i |UGD # hz0TdYYBU@(%)?Fxg^?@0߯H?Fs7Uݹ?P} t` 87?t#_)TeΦu ]ukv  ̝L&UUU&I&3 U!!`?CopyrigPt _(c) 2\W09 M c os f"!r 1a i n}. Al00U (s42e0e uvF0d(0'HS$#-## 'I?k=#ǒ 2j$B##0U'BM3@&@F0Yk} #HA%DKb5DK3DK5DKED$!GiAZG5(|IDFX7yW'&Dŭ6!4YA yVZHD  # =hj4>T!]]>#AU@0߯H?Fz)e??F˞9q?P6 t`z  ?5t# rXѮu)Nu;):O]ע0 &> # " "+"+"+"+" $+"T-J[U7 ??& bA@ 2b4-#2zGzt#+@ Li68!6 ?}; 72U!:B#AA5 5`?CopyrigTt(c)20F@9M2@c.0@os*@f8B)Ar,@eAa8@i*@n. Al@ 0HsBeX@ej0@v@dx@)21"DM-,;?C G& l>]UhzAE!A#!ְ1J`#@{&pz?FUy{?NT,dKj&b&R&M/8T9K-q?F@F?FdG0 >Nk"?YE*]\LThKjfGD&Qhj ?iU3UGe&Y`?@/Jb)h5oWKoWo;èKod}l$ro`nE2K?Fˌ%4G{?F -q? eZR^{|\?6?vodmP}l>MBe 9 N 1iS? 1?grl#51:PO"4ga@Sq(UE^@O|ǐ[`ߡa v2rbA @3ijD&}laqOz o?#WHZ'Qu=*[^N?F]%P?@O&@ c?FаM<n ?` eb0)\(Pfodm}nv}l?V5(?q$Ix[cN#W{ #iA@&QeE9 MX''0UjdN!0 /HD  # =hj0T h]]9 #]AU@}%?FR$,?@6#V?Fc_3֡w?P6 u` ?u#t  3zM%t3ws%.<%H._'B> #PJU2N贁Nw[?@ʐL+&A@wbu](i+bk)%+&p%#4">9"<5!?& ?M#bbb͓z$ p&"/%T%#L1L15 w`?Co yrigTt (c)02`090M{0cy0oKss0f2r1r 1a0is0n.0 Al0 y8s2e0ey0v0d0"E1E(]I4M-%#X3 X7&l*>(UhE j1#$Ac!J`%#@5e$_F??!foA3nBM( V?FJ-R?@HQ??FS!R?P| llHL6VLD5E+v;*AůʙH: 8snP%$? k?Q? \?4_!__WrA5_! R,U3OC@IL?F4~Kz?P)Oy޾ T!]]>#IAU@܋?F2Oa>?@#r`5B?F*ݷ?P6 t`  >B?\oEt# ŖoZu 0Nu;Y:|8>$# JpU>##<?2& ?5bbbz@b#ANi&bu$'h 2N贁N[2$@ LX"D&v(&m$ :;T'm"*B#d1d15 5`?Co yrigTt (c)020090M0c0os0f21r 1a0i0n.0 Al0 8s2e0e0v0d0"]1"a4M-/p3 p72&l>0>Uhh= 1#!eJ`#&FNTM\jh1B,RBM(!JoUy{O_ e@ So4(D@^Tw?F]֝ä ?Nk"?w_KT\T+\_(Kjӷjmplhj -`\TPQE\Uui,St_o u~!ՠXEO9= T?FL?;uQ_Pm"rA @3sjQ1lğ=GoYniAleE9 MX|'w'0Ur^N!M$|A vzHD  # =hj4>T!]]>#IAU@܋?Fj?@2r`5B?F^ݷ?P6 t`  >B?\oEt# 6ΠZu 0Nu;Y~:#&}>0m8>  PJU2N贁Nwk?@ eL&A( 5bM(b[)h+h+$h&#[-M$#?& ?b$Z*'*B#O1O15 5`?CopyrigTt (c)02U0090M~0c|0osv0f2u1rx01a0iv0n}.0 Al0U |8s2e0e|05v0d0"H1P"L4M-/[3 [7&l>0>Uhh= m1#!S!J`#*&FPUy{_?NTMjC1gc RVMʣ(D#@ ![?F"$. ?Nk"W?IKTLTcKjRlhj p=' (*!)i,SO2Kes9T;QEGUFw6qX}__TM7fTZT\Dž}_P^52XOES"rA 0S#Es3iAleE9 MX|$Gxw'0UrIN!4gA xvzHD  # =hj4>T!]]>#!AU@܋?Fc_v?@#r`5B?F*ݷ?P6 t`  >B?\oEt# ap'EZu 0Nu;Y:|$># BJpU>#͙;? & ?5bbbz@}bAA& K&@ 2zGzt?"K@ L0"&N(bM)+TK/8Z*B<1<15 5`?CoyrigTt (c)s02009s0Mk0ci0osc0fq2b1r1aq0ic0n.s0 Al0 i8s2e0ei0v0d0b"5194M-t/H3 H7T &l>(>UhE=3Z1#E!J!FENTMjN@1h(NoUy{OO e@ o)4(D@^Tw?F]֝ä ?Nk"?'_KD3\T+\(Kj?ӷjmlhj P\ DiAlePsI=MXsG'0UzbZ6N!%$0 sFEjHD  # =hj8>T! ]]>#!AU@܋?F*?@#r`5BW?Fw?P6 t`  >B? \Et#տ|u l4RQu?]>I$>I# JpU>͙#<?& ?9bbbz@b#AE&bQ$$D 2zG[zt#@ L4"&R(^&I$Q)+]'I"^*Bh{.M#To1o15 9`?CoyrigTtk(c)k2009kM0c0os0f21r1a0i0n.k Al0 8s2e0e0v@d0f"h1l4M-:?{3 %{7&l>(>UhE= `51#I!J49fAn^ R)X f"B!Jui,SG?RSlOS u~!N]8-19= T?FL;uQ ?Nk"?YVTQRXQOnğ/=i n (\ wTiAaePE9 MXLg'0UbZiN!)$0 Lf`jUGD # hz4TYYT#BqU@1XAɖ?F&fQԽ?@#[5?F/8tֺ?P} u` ?u#Lk/8CW(.J88L`6t stP_m13i-; NIU~񅴉#9#0Up"?@/&9#!!G*"`?CopyrigPt (c) 20 9 M c os f"!r 1a i n. Al&0 (s*2e e v<0d0'"!$0#%B-9## 'w#^=9$&0#466H 20$e#$^A #3  9#LFG0%XD`AHdJT%XD8Gg&daO^' TAA0"-(`@a0%g2!8TBT"i@haX5 &X~7WW'o$Ŵ6!40 WVkZHD: # =h4>TB#]]9 TuU@#[5?F3_(n?P6 ڍ` ?u Ft  )t7 \)2(jL>  ] " " "" >" R"g"g"g"g" $g",g"*/<$g"H,g"\#JtU2wqH0?=@L#G6A@-by8b9;6[A3P2;3?6@ ?A?9*A3DADA5 {`?CopyrigTt:(wc):20@9:Ms@cq@o%sk@fyBjArm@Aua?0ik@n.:_ Al@ qHUsBe@eq@v@ d@2=A(ADMBA3-_PC RPG6l> L>U#aQQ 9 ]R! ;$bA*A3; #p _{66J`A3@>?F(?mؙ @` lt V/&N&wbN&M8A%?@׬?Fk>P6%U ?)o.m  AKiMBaiVϥ]瓧sa5f*>B r7k, Pxz? S? \?r#5{1:PDVhwa@vcą(2HV1Qj\"ocHl\aiu].eEe*bGk?F}2?@6w#`ȸ)|?P ,m!^l_zP$vtR`&V~$}EP{sa>t}<~45 a#y{Ϗ@ᏫteE1oCc@OrbV?FZbyZ Pu @crAP~3zw h%|̏v saliv &Pxeen'n`ὓM?@3?`2UǎKiDc$vfeW^|Ywt$}k~G+BIW?FzUH(?@q||f?F%CRO .1^lztep{ha;y%|U4N*)qyr"[kSHle $rWȂe>!Q7?*GF?@D`uʄ3=CUFS>+悍Wzt0 ;ӝjLpTߙj[>`;]`?@?F?P` ֔zYmkai{﾿|{t(yc|[%tOH~ݽ*<4#>t,iw#ytuR!y7`߯ZiꠗKk~HlJa#(-)0"!8Qe s@AleE9 MXAWP2'0Uwf^!V<0SE .BUGD D# h0T@dYY]BIU@-H?Fc[B<(?@j>(?F/I6Ѹ?P} 8d Ut`  ?ht#rS8n'L֌rX_uo uU!!`?CopyrigPt (c)J 2\09J MB c.@ os: fH"9!r< u!aH i: n.J Al @(s"eh ej@ v d  #S$#-d ## '?= # &#24 6 6 2$B# #0U2 3@& a#3~ #dH@1%4Gi^#5 6rX'EG'4) 6!4] EFYJHD # =h4>TB]]9 \#!AU@#.?F/I6?@P t`  gjo?t#T U $YhAn m7 u)hnx Fu!)J hI 97eyh?#!?9& aAbA@_"bg)b$g)bIg$2zGz9#@L@&h*%}$f*+T'_"*BL1L1`?Co}p rigT}t((c)(W2009(M{0]cy0oss0f2Rr1ru01a0is0n.( AUl0 y8s2e0ey0v0d0E1I4Mb-X3 X79&l)Uh# j1#_!J FF$[ 7#e T$V3RiAlPeE9 XW'0URZFN!^0 VHD # =h0>T@h]]9 #U@딃r?F/(?@2?FkF_w?P t`  ;0K?t# y_h:.A>Dj# ixsj||yyh|j|Ay"s"y,"s,"yJ"y^" yr""y"/y"a|"1y"8y":y";y"|`AUhMq@q] y a7T^1 hjP!,!J!^!o$!$U#$%&U'()*+,t|q!a!U234567$9$!1&1>74Ua#[aJ`S@ɞd?F9^2d3Qqs^2tY7N26J6M#hN1y-loG?gn`bDPu6(āThq 6p?F!_T?@R h^*B?PQi e>amabƫWSuMD,Xud3, utSқJ! \&\xZ? $Zas? V =? @S?d2tR@B8BoRį֧r3Cc EH ]&H[Bѻ?@lML6~ ;m`~b&¨r?+J^t/qO@? [,!rPצ 2XQqH zg?F,53lܿu  ?FM9(֜2Ar}JND7UØB]ٿ?@h߾#?Fd~5ȿMuPu`~dg}-S/9u}DѺ f <-@uušJAV+ǥ8xP?\ q|?FKyhQ~2vTPf=?PoyGV(na~u3vu;*G1+u~ݏֻA_ ^Gϯᬅ?oQo!|b0QJX^?Fsm?@@޻Pg?POWLKz Fw^=g%fԧ!6&]JVbGᬤ? o[oQr!rmz@zg?@f(?FVɱC OPKMgBlVܖVVwVsS3O_ܘ=w?FKL?@jP0A`QʱH=lTG5OxOeuF|Fv=/Fꞏ ,-<60 ]Cs~?Mv1E GZ}v -# &<"ݝK-'>TAFd|6δ̙2{# ,',v #cX#JREB'~5-O$ ,RI~  `ܝ-C-X-_]bd% ,Wl' 4%ŀ>-խ@ײc& , Ǡ4 \lb\c>-R땳J ' ,+E :{(b\s"=]& a:U( ,/?Fb\.bLOOMևQ:U) ,!`3?F k?%6fSԿr`* ,Oڿ?F&Kba,e~Lʴ2ͷ+ ,b d?FjFŋݸML, ,Z׺ı?F bҢu W%r;z- ,TUI8?Fs%:v ~LSa@ . ,3Pވ?Fb^vO$)yϊ&Lؾ1/*mCe%f(~5JOAjuLīt~eq>aT~.j&],_10y՚?Fr`QSٵ?F艿O:McfdilFU1i;}m&R F$w|!l~1`-?F~J~ 03y<$-t9BIL{HiG,LDd|jph:OE 4b\{~-K 6,Ku20e%+~L-r; 7,kh}6`E׻L?S)` {A8 $Fٞ@`o?F%&0MuPu9KdfǸ;}-UL󥶚!s@+C9,*}3?F:ט26-*NY'| ݑU8am?FYe~Kp?@ŮM?F@_O`P jBނ> l'xk超VSOB;6{.f9;?@ v%e??Fh1*o/m_~!Wx ~)j |ALyUƅ?PbO__<J+t?F"e?@'IȂl:xl@׭9,&͓S2&n&Yۙo> =~vU^4Q?@,z"TEo-<[?|8q&?FCv?@s&Ŕck>\ :A:z5,7ح-idsjѦD;gcZT#n$!$ɞd?Fх@Z f<x.Ϗ:"r 23ED'佴9Ki PyT A$))X#!('0Uqŝ)) (h0JTxmmMU@L?FfZN?@]ޫ6?F^ ?P t`  HVRHRbLRvLRODRONVOFuH-HU2N贁NKk?@A@'bՈb񄝃P𫃘Q ? b]z@ՏH񧝃ؑؑ'`?Copyrigdt (c)2p09McoKsf r:a in. AlU sYe-evkdMёY(iՔZ- Tl8UxDE?mP!h#`@yr?FiªD#vBCh?OH#B|/e#L% +.M\?Fx5J+,ՏpeƘb|{0?@ T?F울'5 QuPuu|2P A_O:폵C]>ڏ|,#w| |fɀ~E?F` aFTSL!r?P,DT! c{d}u͏3aT^xƵif"Y:B Y7 E? O? ?ǀ4#XBwߡrS5"#]rpw ?F!~8ӱ-&?P|)\ݏ?̛C/oͰQ 0K8f ߱QI֭f"^!3|DڼCQb32btrX@}䡻XA(XAXA% 4FOaҔK?FgGyp{lQ Bť Dz#.3?Fo>?@vָsy`s&ag?P-Sg  书۟pB.GҢ?k .G TxSb/t/nSɕwe?F%/ȡ?@p̙L?Fyp5O?PN@w+߁aL\񖋷̍A߄ޘp vS&}?x/RޖSԕ??׌SaG9)ܣ?F"/2?@ď6.=H6ĻK(prN=׀zk ɓ??ۣ&OO*̱ص2F-e1fOxO "0vHgO?FN ?@rѴ?F~xy1wWD{{6o֟gvMEX}߆8@,_d9Rodo N3Ř6t?FaV?@Z_g?F,߉$8Yà]OJ r/3ŵm"ʏ%^6o;X0uoщ0邀?o}o±&r Bޚ=$?F?@ ddw?Fy[HEtD0?@ȕ 9pwJK{NӏrE]U 1*<صǥL?F_;+]yC,E{)qb=H1I ?F݄u{?@7J`Hύr_y\zYf̏-pܒj8܏B( + /~) A+3Bَ?@5/?FS}k̥=xEu&}K ѱPpAɯ̹[V]?Fx?@8^f`ó LvbK<IYLYA˲)ƫ̿T1 T]%E Q_U@IYWj~4u\/N+ܡ_[eL4{jERY\~PeC˧EU+?9DGaI-oG7抄Bm턇f޹d&U ]%ߏaE x1꤭?F퇑Ph~8-U_Խqսlr/M1#[~$g H9Ga0B ?FnB@rJo?FtVB$?b8><=QܻE2l@"%;Ghc#?ܒEz&v!3ETȟڟN2]9@:Sǚ~u\4@X~DG㘊1VO4GŚ?Fq?@Z61U-, K1析|LfJ8vĥ.Sh* S7 F//r & 0E=̨qu?@6}[?Fdۗ}CEOd5#|Li1Y.1,2lY?RvCƯ'?FcO +?@H=?F6EКɘCxj/ y<(辂m:}F;ܕЧdqj|BJUS-?/-6OOhP:2H(hhOzO R(RyO5Fnw0gs[`JɤL@p [Bc%0dO swE~n#kN}?˽6yU;%?-_Oa6TofoP>y%PD 0;fL#10t+XˉBH?, -#-/.{Mq12s=cOyU6;ƅ[P`qB!!ME=*By61M -7C !6dFsgyf%R_oo6J\&F^ /P*hTgiE!?FYRRG=V?FU tn2 OAKL2^ق̜ҁk:z焳'!hLK;i B7Hm$M]iH?FګZD?@vit=qN~ p<C MA՝n{jvDr^n4l4Z\{!V!;΂`? Heq$AT s>P/X+]1WU?Fbdi"ܽgD?P3F#?M2T8sY4݃MYec=ݗD}SQU]6⛸Ȍ' k('޲XQqN?FZ D; hwi5mND{I?FXPY?@2 }͘?FBҏÎxv'za݇/i\?M;L0nMuhg}IN;&?F9'w(=xF\_3ѦUi5dm?FC Ax"2009)~4lHN%+)GYo,VB΍z ^?@¼2?F>Yہ3|궕TtjDG:J4l)Gfd{ 2d?:p+/=/ߊdY"֍YyI6YPuHvD~wdVͶ?F *Rō U0)QY?=Խf 4l﫿#b3Mddo/ލ^?p?yǛ2mY̕[Y ?@Ho+ѐσfȝt3ɗøLCW~PHi_̻ԱMd^r\??eOOyLjG]2ğ֕USraARGSriaaT=YXwZ'0mUR?B!0] zVZUHXuD # %#>5h:,JT5 ]IA U@y?FJYﻛ??FbQa?P mNuQ` o?u#6QMIQ 9H#L\WYLpW LWLCWICWA ICW ICW I"CD"W I."WIB"WLV"WLDj"WI~"WI("WQ M W#"k#"#"&U M & M W32C2&MW@3P2W>4:& o2Ro2fo2zo2o2o2o2o2$o2/,$o28,o2L,o2`,o2t,o2,o2,6(6(6(6(68686,?>06J866^8Nt  ::Rt%RR_܋NbD$QFMpR @(uQNU2zGz?N@Q cNfA@RbMh+b[ihkhf>bK !LdNcb c#bf b\MSbb[ikXg>bl>boRcfqfqc`?Copyrigdt (c)p20p9pMpcpospfrqrpqapipn.p Alp xsrepepvpdpbMcrs rwf bQWRtR lQUxeQQWB $.! =1SaQ?$>a~!x!e#!Sa h*anvO)g?Fz ^`S 3?-IS ܇Gh;q?Fψ?@Lm)şƿOzHp MuPu`UR-ga8}|g$_sh}$ GB~3 dGcnjpǟ(Az3F#? Oǟ@fhؔ~ `$6#;zZ?FfuHvD?@ߠM=H *R U\hAᅪN5Ozq7*;]?F[Y ?@|%σf SMY^Qh993+!ڌ )~(;6mlR&&/OO~E~v_bD%%>X-"T G#+EK63 11WA/ T3ٳEC4}$F|rO 2DV0ps-*  ԀCV@59)5AFSƾ\ՌpބTvrD92C#!~V>rA%!?@4%-&?PR^BhTyYWX+  '!vN-^/p/PCZCdAHC$t~HgE;%'e~\aI/pԗ~{φhh~- Z1q܁ɥjZ谔T0Rc M`xhXϔ=0Ҋ??+E?? Y܅+)ȪU . ?F%pAHhAuQeFķeeǜRe !1g쁷Jai%?F,#9 R6$*h~*Aꤲ8iY 4?@?SA?F0pF@ ?Nk"͜!\Th% 4 [Xg?c乇?x)|";}p?FtVXb?F<X?@~LI%?F7ja8Ɵqֳ6h ǰMVX[=l?F@ ?Λh` !X)gxW<>2?߯An`di~RnKgwBXVXM_mpX`}뀁e'}NJc6fgl"0Uř 4ҵIp^\BeHeɉ0$e {eBpD=VX5vIߪ%e?@$ "ĩL¼A$ h|~&Ep=qp\J0~ \m"(@8v"~+1ap=3Ѐᔿ%t f\߱[P-?QcEp=GOM RϡvbxzV ?@%f'1rN&&"ҮcrA '|-(o>?e1pp$>%d|&k`{T~zQoD=gs {~@~IMho=|Ϸͯ߫噮|+2Z(,1t,>{eFud:L^pz$ozq820X3Y[?@7Mu]0mFﶜ݇$I~D={N/ݿGǙZ9:G-LPb~?2$m00 ["]Мߢ""10eVWLKz Fw{M 3D=h(jA+cF, (W$R-//"'p /""H1{,eO<-!t(>Et{ŧ&k}u?FԿ9*\.VԔ?1_)hVrUe ?@llփ?Fx!S> _ؐ%_ؐ.✼=~ߋ{p" xwϨ1wjf-@4Sa0%Ti:w?ؐ?$:~ ;IŊ=?,ģ:?yji6hAATD)IX$*'0UR?I!&c= &J_HZ|`;s dV(]bCV!Fy#?VOF HUzm~?fpoD+^U o_?G Nf Ѧ  苑 ߔ8fF֛߬ B6 x z ;쑿 7] N` g(c ?Gg Z Ji 8l @#/5/G/Y/ >#% c8%UFD  h(^TYYBBUFjZ?F~??x<F BP(?P } kXt BW66 W TTTUTT6"TRȅH?? ?B@L&_d2?"-3(\.E(#.sUk!i&/D % G 0eB`-dir c.o y,s rv 2, ompu.3!s.r b4d0n twB2k!%^| (SG& i?? /,>H ?{ wp | pqpqwq߂qwqwqpqmwlqppwpw'wwwqqb\wqpwwww;^Drag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aabjZֿ~??cN׿ mF1?ouzq7? %!VT*J?@ ?UG DF P# h @T(PYY# QU@jZ?@~??F?Pn} u{` ?Su#؍>>HX HlHYHH EO.LO4:UDDXXUllk'"&R",I'U25ĉ%4 ?"u'4b0{N[`:Q1#2T6"!^U9$"3&9"/L6 2&!'ݯ>e@ÿ@qn@?@-fB?mDcFԸ0)Bu/@`҈-1Bu@rCC 5GAB"2Cm9u`u `"[ b!u`%3Qo1o7B`?CopyrigPt0(c)020P90MPc.PosPfRQrPQaPiPn 0Al` XsbePePv,`d/`VPs_SBNcPm!#5ab4 3!bz1AE:FG$18dT=`XQj2`]rw` M`nuP%aPt+ar? { @&8~? 8Tv??;Hd2QCg3` Wڣ%ETV-O?O C| aOO#䅿O`M,`m@.O_"_Tp'_9_M;Oem1y [Qe_w_Sqt'aZw0fo&SU@jZ?Fű?5v5v[pYp8u>p` ?bup` B=ݥ`S,t']p 5/m-݁<9opm'Qh>qݏBKT'.kt'xybf@>p{ÿ#БobZnq [ܒrr$avvvrs{a"`RQovg16 eI`&bb_ kkbr@ uP`TaSy1@u,_u'S1S2A+b[aahaDauhAaYg6s&P` -u*`{`ᕁ {`ax1P5Y_dl&bpSF3s͵NSYJObrVC@ؓL+e8#d3#%XLqW,@rb:(:ӏ^}}a}ahʀYVWn ` %P&S41¢Ȣ}a`NEWOR+Kl2H P{!RƱRISQ¢Ȣ¢ Ȧio.oÌh^A#'0Um?!0oHD # =hj0>T h]]9  5AU@jZ?F͂T??Fx?SF?P6 jt`  o?tk[>(A Vu aSuo.]&A]  *ԮJU2zGzt?@L#&A@bA#z7 5#1bO(b])j+$j&[ "*(w "?& ?AU$l/%B115 `?CopyrigTt (cu)Q02`09Q0uMI0cG0osA0IfO2@1rC0|1aO0iA0n.Q0 WAl0 G8s2Ueo0eG0v0d0"1E]4MŤ-&3 &7&l>]Uhz811U!J!u6?F+\.>djIIa? >"(EǑ I%K9E 5EU . K ;;5QIWEEEF _KnSA?8@@Bu?FDR> ?Nk"\6`bmMM\j=am {:e P> #? D"? 5-g?j4B7!B{oogr57!ibDAbE9 MuX7_'0U~rN!$a)5 5vIzHD # =hj0>T h]]9  qAU@;?FI5K?@xEL?6ѿP6 t`  bm&Qo?t@@L]WI,#u aiuoL> JU2zGzt;?@L?&A@b}#zs q#1b(b)+$&[9#H",ɺ (wH"?& ?A$ /%9#BV1V15 `?CopyrigTt (cu)02`090uM0c0os}0If2|1r01a0i}0n.0 WAl0 8s2Ue0e0v0d0"O1E]S4MŤ-9#b3 b7&l>]Uhzt1.A!JN!m.%-+0djV1ax߃S(FJ-&?F mO"> ?Nk"L[Majnha_:e P> #? BK=o? n-?j4Bs!B{__Wr5s!D8E6V 6?wj_|_ ^XE.U@z T6?F @' d_mOoT \VyWxRkrVo_bVh*g:n"'UaEjz36>CN>?Bn}]zGvN7V iDAbE9 MX+G'0UJPN!4ae5 MaHD # =hj0>T h]]9  U@jpiH?F^?@$?F]F?P6 t`  !a&ao?t,F=۳=u;u auo>J2zGzwt?@ʐLAw@b#z1b](b!).+I.&[-m(?0& ?A$I0/Q%!!5 `?CopyrigTt (c)02`090M 0c 0os0f21r0@1a0i0n.0 Al[0 8s_2e30e 0vq0dS0T"!E]$M-# %'&l>]Uhz!1!JF% djc~YZ(_N9zOMGE%_EH$SwO"K ңHE ^&_8_WE_OqOHOOi&DAbPE9 MX7'0UUfb>!$a % f1jHD # Uh4>T#]]9 M5AU@jZ?FL|+?@?F({~?P6 JuM` ?u JYt )t7zEA2&L_D?. > >tJU2q K?=@MJ&A@-b9(+bG)T+T&J[#"#a?& ?AH?/`)#115 {`?CopyrigTt (c);020G09;0M30c10os+0f92*1r-0f1ai+0n.;0 Al0 18s2eY0e10v0dy0z"!4B#e-?3 7)& b 0K8>U# ]A]A "1!ъ!PzQ <%OYAJEU . K;;\%W%EF($L[.FX5Eai%?F 6?wL;] W-\TB⤲8?F@&SA?F @ ?Nk"L'`bmMW_Ye[ٯ7 VK=F: [jr ? D"? XZvD?ta@Boogr5;!QEx]SiLO MLGXa~WOTZiAle59 XG"'0Uc&N!$05 .HD # =hj0>T h]]9  IAU@K?FOgVb?FY%?Fwᳬ?PJW?>t`  ^Z?t#ə.E @x?r?/{4܂ G _Z+u u$ >  J JpU?43f<!.&P?b3bbfz@1bAe&bq$d 2zGzt.#@LT"&r(~&i$q)(+}'i"~*#81815 `?Co yrigTt (c)o02`09o0Mg0ce0os_0fm2^1r 1am0i_0n.o0 Al0 e8s2e0ee0v0d0"11E]54M-#D3 %D7.&lUh#7 V1#Ai!J# F/?B1B  VRiAAbE9 MX G{W'0U*R2N!I$a {VZUHPD  # #>h0JTpERI MU@u6?Fjc{g&?@%r`5B?Fm_F:Is?HNtQ`  II?t#]  _ii$!`kNu  iu%wj>M JQ T       "@&&JNU2"?H@Qs#N&A@b(bU)++&RNp}#>H1#19 ?#bbbz| R&/5R}#11`?Co0yrig\t (c)02h090M0c0os0f21r0Aa0i0n.0 Al!@ 8s%Be0e0v7@d@21a4t#-}#3 %746lJ#$JUp5 3 M19 1!q(!FnElrkRt# 8$kcD?@숒@)?FP?P"EkU |1\iOT/irvs}i>`_,of :m ,M ?? S&d2? *b?r4B!B oo1gr #5!>%(EQOOOO__FAc1_C_ D4ևS]_o_yRX+{_,__ #R__ (YQoSo+o=osd {oEeooooooFyUy{* hDVW(I X"c7I!pg bf'iMjSE t%XyG|'0UŢŞN!O4i |UGD # hz0TdYYBU@(%)?Fxg^?@0߯H?Fs7Uݹ?P} t` 87?t#_)TeΦu ]ukv  ̝L&UUU&I&3 U!!`?CopyrigPt _(c) 2\W09 M c os f"!r 1a i n}. Al00U (s42e0e uvF0d(0'HS$#-## 'I?k=#ǒ 2j$B##0U'BM3@&@F0Yk} #HA%DKb5DK3DK5DKED$!GiAZG5(|IDFX7yW'&Dŭ6!4YA yVZHD  # =hj4>T!]]>#AU@0߯H?Fz)e??F˞9q?P6 t`z  ?5t# rXѮu)Nu;):O]ע0 &> # " "+"+"+"+" $+"T-J[U7 ??& bA@ 2b4-#2zGzt#+@ Li68!6 ?}; 72U!:B#AA5 5`?CopyrigTt(c)20F@9M2@c.0@os*@f8B)Ar,@eAa8@i*@n. Al@ 0HsBeX@ej0@v@dx@)21"DM-,;?C G& l>]UhzAE!A#!ְ1J`#@{&pz?FUy{?NT,dKj&b&R&M/8T9K-q?F@F?FdG0 >Nk"?YE*]\LThKjfGD&Qhj ?iU3UGe&Y`?@/Jb)h5oWKoWo;èKod}l$ro`nE2K?Fˌ%4G{?F -q? eZR^{|\?6?vodmP}l>MBe 9 N 1iS? 1?grl#51:PO"4ga@Sq(UE^@O|ǐ[`ߡa v2rbA @3ijD&}laqOz o?#WHZ'Qu=*[^N?F]%P?@O&@ c?FаM<n ?` eb0)\(Pfodm}nv}l?V5(?q$Ix[cN#W{ #iA@&QeE9 MX''0UjdN!0 /HD  # =hj0T h]]9 #]AU@}%?FR$,?@6#V?Fc_3֡w?P6 u` ?u#t  3zM%t3ws%.<%H._'B> #PJU2N贁Nw[?@ʐL+&A@wbu](i+bk)%+&p%#4">9"<5!?& ?M#bbb͓z$ p&"/%T%#L1L15 w`?Co yrigTt (c)02`090M{0cy0oKss0f2r1r 1a0is0n.0 Al0 y8s2e0ey0v0d0"E1E(]I4M-%#X3 X7&l*>(UhE j1#$Ac!J`%#@5e$_F??!foA3nBM( V?FJ-R?@HQ??FS!R?P| llHL6VLD5E+v;*AůʙH: 8snP%$? k?Q? \?4_!__WrA5_! R,U3OC@IL?F4~Kz?P)Oy޾ T!]]>#IAU@܋?F2Oa>?@#r`5B?F*ݷ?P6 t`  >B?\oEt# ŖoZu 0Nu;Y:|8>$# JpU>##<?2& ?5bbbz@b#ANi&bu$'h 2N贁N[2$@ LX"D&v(&m$ :;T'm"*B#d1d15 5`?Co yrigTt (c)020090M0c0os0f21r 1a0i0n.0 Al0 8s2e0e0v0d0"]1"a4M-/p3 p72&l>0>Uhh= 1#!eJ`#&FNTM\jh1B,RBM(!JoUy{O_ e@ So4(D@^Tw?F]֝ä ?Nk"?w_KT\T+\_(Kjӷjmplhj -`\TPQE\Uui,St_o u~!ՠXEO9= T?FL?;uQ_Pm"rA @3sjQ1lğ=GoYniAleE9 MX|'w'0Ur^N!M$|A vzHD  # =hj4>T!]]>#IAU@܋?Fj?@2r`5B?F^ݷ?P6 t`  >B?\oEt# 6ΠZu 0Nu;Y~:#&}>0m8>  PJU2N贁Nwk?@ eL&A( 5bM(b[)h+h+$h&#[-M$#?& ?b$Z*'*B#O1O15 5`?CopyrigTt (c)02U0090M~0c|0osv0f2u1rx01a0iv0n}.0 Al0U |8s2e0e|05v0d0"H1P"L4M-/[3 [7&l>0>Uhh= m1#!S!J`#*&FPUy{_?NTMjC1gc RVMʣ(D#@ ![?F"$. ?Nk"W?IKTLTcKjRlhj p=' (*!)i,SO2Kes9T;QEGUFw6qX}__TM7fTZT\Dž}_P^52XOES"rA 0S#Es3iAleE9 MX|$Gxw'0UrIN!4gA xvzHD  # =hj4>T!]]>#!AU@܋?Fc_v?@#r`5B?F*ݷ?P6 t`  >B?\oEt# ap'EZu 0Nu;Y:|$># BJpU>#͙;? & ?5bbbz@}bAA& K&@ 2zGzt?"K@ L0"&N(bM)+TK/8Z*B<1<15 5`?CoyrigTt (c)s02009s0Mk0ci0osc0fq2b1r1aq0ic0n.s0 Al0 i8s2e0ei0v0d0b"5194M-t/H3 H7T &l>(>UhE=3Z1#E!J!FENTMjN@1h(NoUy{OO e@ o)4(D@^Tw?F]֝ä ?Nk"?'_KD3\T+\(Kj?ӷjmlhj P\ DiAlePsI=MXsG'0UzbZ6N!%$0 sFEjHD  # =hj8>T! ]]>#!AU@܋?F*?@#r`5BW?Fw?P6 t`  >B? \Et#տ|u l4RQu?]>I$>I# JpU>͙#<?& ?9bbbz@b#AE&bQ$$D 2zG[zt#@ L4"&R(^&I$Q)+]'I"^*Bh{.M#To1o15 9`?CoyrigTtk(c)k2009kM0c0os0f21r1a0i0n.k Al0 8s2e0e0v@d0f"h1l4M-:?{3 %{7&l>(>UhE= `51#I!J49fAn^ R)X f"B!Jui,SG?RSlOS u~!N]8-19= T?FL;uQ ?Nk"?YVTQRXQOnğ/=i n (\ wTiAaePE9 MXLg'0UbZiN!)$0 Lf`jUGD # hz4TYYT#BU@ѝ%bm?F? -wʬ?@aL?FHzaֺ?P} u` ?u#k/89bLd<`9ft"929<(.88LL``ttt g`"tk"[&Pw%f'aw%'LOd@:U~##0-U2?@M&#I1I1*"`?CopyrigPt (wc)020090Mx0cv0o%sp0f~2o1rr01ua~0ip0n.0_ Al0 v8Us2e0ev0v0 d0"B1(F4#B-#YU3 U73^=$V6#@hDCFCF ?B$e!Zl AC) 6 #HA%T8[5TL[ETA[Tt[AX[E(TWg$6iBH_'ɥ TQQ"(['ca %BL8RKjcU jcjctjcjciAD5 -6X\Gg'4CFZ!h ,J T  M#EMU@sހɞ?FRX??FHXܾ?P m>uA` o?u#pMJp -<p =PK =dK!=xKA -@K#K2(.K<FZn>t  8dIL"tW"tb!>bo!FQ~ouT!J>U2zGz?W@9 #>~&A@xb(b9;6" !$NF#g2#"~6 E2M"b9;7"iA<"A?*#AA#`?CopyrigXt (c)I@20U@9I@MA@c.?@os9@fGB8Ar;@tAaG@i9@n.I@ Al@ ?HsBeg@ej?@v@d@"ŤBM#C bG~6"!B'&"t"ElJ!XJUl&!!C 9P a u%#AR(!9J?F64EӠ0# C><# KONUjZ?FZw-i\֊\EYh3nNxQ1-o?o pPhEUU . [|iձ9\5gUF'?\x~Z__"QelQzai%?F\T_\{a+\FvwKd9Tꤲ8?F#?@?SA?F>@ ?Nk"`YUd}\kEWq_ʉh9(  GL%hYH.?FVRM\ߣ;b'\;uxPyJ}u?F`&d2?@s OuPu0%23[yO0]0N/\nn*\h|QY]#?FPWYmrWoDteQYx߫ *JR\uk'\eFJxdyX,?@ȼl<~ `0 ~ W$p-0K CF%X[myQYgPln\ g!A\?khQYHza2tY& CXeqUuUZT@3N}4#`Q :$  _?V3?C~Sa7BfN$!QA(.WLYET]__[{u?F7\H\U9ETt>CcxQuuj ?@llփ?Fc> Y6h 0)>AYIDҍuґ[Frq3ux@4S_헓^Agu"3J>ޟ9c]lIriMiI%`1-QD_'0U~6L50 HD: # =h4>TB#]]9 TqAU@aL?FHza_?P6 u` 7?u t  )t7U)2)LL>  @]JtU2qD ?=@LC&A@-bu(b)+&񆤍[=#L"#?& YA{/)R=#<@1@15 {`?Copy_rigTtT(c)T2U009TMo0cm0osg0fu2f1ri01a; ig0n}.T Al0U m8s2e0em05v0d0"91=4MB(=#-OL3K L7&l> R!U#( yD9 ]AB^1*=#; #p _w&&J`=#@0(v?F]?&d20ec+Η֑gRM(R!5?F`*JR8\9dFN\{IA\(T.8!T̠UX,?@azMھPZV OuPu0;Y?_  Ц;%u_6??&VUvl {aOǽXE!_3S@#) ۶?Fvn#o*`SrA@z#cXj3?llf"QooUF`z^?@|;h(;?F Bo*lN\_sVl]C#ll θ%67I~QUz$Ϙ&?F9;Y=FP-N\AY(V?`0 8_J_ t7YVZ\UAY%:$?Fx\.јAra#N\2T(AeGiAle59 MX=G|L"'0UbN!V0O5 HD: # =h4>TB#]]9 TU@[?F$Fh?@rp&?FQ^?P6 u` ?Mu t  c(o#)t7 5~/)2ڦ{)L5EEH AEJ2N迴Nk?=@LA@yb #z-bK( (2+I2&y<$v!Aƿx 0>U#3 TB#]]9 TIAU@$&?F`_0 ?P6 u` 7?u t  OFP-)t7t7)2)jL8> PJU2N_Nk?<@ʐL&A@{b]M(b[)Y+%Y+Y&y#$!Ax1B4MB(#-OQ3K Q7##l> 0>U#3 8A9 Bc1BD #p %J`#@0(v?F^?&d2 C<$I$IRMRM38T\.?@Y{_?F OuPu !YM4\ѶmPGq?l £iXD8*!}9!Y,a7Y.cqQE_S@ ۶?F?vn_P#rA 0S#cZ,1+\Ro#oDT#3 H[]9 U@֧?FS0?@2?F#+/º?P6 t`  )s}&?tM_%b̺P,\u duo#AԖJ2zGz?<)@LA@wbb)++&T[e#au) ?AH//)!!5 `?CopyrigTt (c) 02`09 0M0c0os f2!r 51a0i n. 0 AlP0 8sT2e(0e0vf0dH0I"!E]$M-# 'x&l> .U#,11 ] !a! #p| F%JYiC?F9dj6 {"aI"O(EF~! IGI4FpE%ExQ:^?FLgo$ҮLOHXEEq7R?FVs4մL`VR®LqlhndFEEH?F)HמLsVIfVEE6>6W?F{RLLlV±I]VVpE.A|IyW?Fjt6L'/#7M'$xvX2A|I*{q?FG>BL(fIfpE6AB|Iv7RPKeVR@ m%G:EERH]uwiyd`viAbE9 MX7MB'W0U:>!$)a% vHD # =h*0>T#3 H[]9 U@5 W?F)j?@#˳=.?F~0 ?P6 t`  5YY?tcxWUbYaۃku5 auom>J2zGz?R<@LA@bb*)++&񩆍[~e#u) ?A//) !!5 `?CopyrigTt (c) 02`09 0M0c0o%s f2!r 51ua0i n. 0_ AlP0 8UsT2e(0e0vf0 dH0I"!E]$M-#K 'x&l>U4>U#11 !a! #p F%JyO[f?FVj d~jɧd`X <݉O(pEF9IKG`E%pE9Hd?FBP(~LIHдDdAEpE|'R?F0RLFR׊L\RٴHpEJW*?FvݮL).uL[HpEO!ONciA1eE9 M*X7=B_'0Ub>!$a% fjHD: # =h4>TB#]]9 TIAU@s52W?Fp?@??F3bb!?P6 u` 7?u t  a pʙ)t7E d(2А3(L1qͯ8M"> BJU2N贁Nk?<)@L&A@{wbM(b[)Y+Y+Y&ԍ#;!Ax 0>AU#3 A hEn1MD #p %J`#@z?F"4_ G_ JXRM(*!*[%@[WB_$S@ʹ?FT! OuWPu #rDR$$cm9ha}Jl |>QxUUF9_C_bUATjHZ}?F\*JR?@x\?Ffl6 o`,Y\v ?\/{?TB#]]9 T]AU@_H?FX,ź?@M&?F?Pn6 u{` ?u t  9B)t7 _Ц;B2Zg)UL WB2> JU2N贁Nk?<@L/&A@{ba(bUo)m+m+m&j)##Ax 0>U#3 pA9 Bh1GD #p %J`)#@Ӯ?F9f&*ѦC)RRMU88ˢ?FZV WuPu1&Y9\M%_x;GKa YH_ ? >xx? eQj?r 5c!:o1oCgEa@QSE8>!_*JR\_ EarUE _d2?Fz`0  QU3rbA 0g#QsZ"?Rl BZqlDf +rGaeAiV\.岾\2_qd(Vpd y0Ale59 MXGG|B'0UlN!$AY5 @T_H.;s QEe OOH 3F8(I#?߹J[OF L~?fs" oD+^Cbo_?}G(ofWc[__h=b4fiF֛HUm(o68!u#y8|7ƒN#3H5KוYg0Хj׻//'/9/,mנLj/|//G&#/////?#?5?G?Y?k?}????*'&UFD  h(^TYYBUF\.?F `??x<F BPG(?P } Xn B66  TTTTT66d9TTTT!T"*T$6%6&6]W)T,T-T/T0T2636466T7T:T;JT=T>TȅHBU??/&& ?B#@L&d2?=-8,?8>sUe1c6(?) 8  0%$iB`/ap0l0cat0on,servB,.0om0u0CUd0s0r0bDud@n@tw@'rk1eA^| 8SG6 u);M  ?ppqpw~xpqpppwywxpwppJp@t qq~>pwp;ww~w;NqOwqw<ZsfsqpDrag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aabi4Fѿ `??Ԇҿ4ӿw??n\.r0h47?=UG DF P# h @T(PYY# UF\.?@ `?@i4FѺP} u` ?Mu#b.CR;cbwe#1~U:DNblbb''U ^:"@,I@'Ui"r%ĉq{$ ?:"'4Wb {[W`:#2R 6Q )$#@&9D"D!L1:" ^:!ɜ'>0ÿ@q޴0?@2? @!260nuu0`i-12u]R@r\CC@5D"Ch3A 3/BD"'C9u`un `"[{ b:!u`!2{#A!'!B`?CopyrigPt (c) 20"P9 MPc. PosPfRQrPAQaPiPnQ Al\P Xs`Re4Pe PvrPdQ/`VPs_SBNQcPm!#5R46Q!r#d$r%2(={#&r#d&& "r$0Umb#]We,^l Um g%dk3dkUdbk%d lHmAdasVT/AQQr"0t"$32t23D!!i"5RQQ 76CC|8 PEAAD!11VA;w<A>1.b!EbF,J҄hdhr)z!*H/Abao(dTPHAS]ebw` MJPnu8P%aPtgqQrQA_` E uPpPeRPtU#%Q3E]!^PR0Rdgn PuPbu3 ZV![ PJPr 8p-?] ^ݝDrR/QMUr#D\TA4PuQb2`^%^,>T-%[ SvRiJP_Qj|UTT,^LPcJX뿠%%7B l ~PiRPgUχu0`ϓVb^RPorϖ|FJ(R@] p]D`MTNcw@Rkܲa҃Pz"`ۗh(mII@`YQd~PqSsߠt,JSgbRPdbsg삂xTz^VmQtHV{Q IwQjfT^ f 6R @`AQkQhz+[QmPu?t P PF쩂ŀ'ʨg삪eVT1^C@`!T` WDLÂ$X&݁^MrPm@RAyM_Ђŀp6 OPwQKSVyC݂IV[oBrPlPRglRTPuԋ//SPa)"C\PŀX//T` 7T= *![0`ѳ{QpT?f?Z?H%` APp\P-Q_/(/MZPCSŀv`ÿo!$q a f hrb`RoP!e82b bffs"`uRbk |p|ptR|{b{rՑwз@3u@`]^ā'vIo[jvpm_3 ՑՑ'<<މ!#QQaa ´$L0aI6s`ɱu`'ŘP!2P!r7{#453_&w"v#F3sNSYF!bF@!]8l#]no Ŵ1Gk,@b!,RvEoWo{mQQʽ3IFy !^ɲw` %2P&Ao)$0 Q`NE}WORKJUHu@PRR}ISQ  7BiA9_K_6hM3Ll'0Uƶ?5fAy 104(_HD # =hj0>T h]]9 5AU@(b?@L??@C?ִm?P6 jt`  o?ti[=(A Vu aSuo.]&A] *ԮJU2zGzt?@L#&A@bA#z7 5#1bO(b])j+$j&[ "*(w "?& ?AU$l/%B115 `?CopyrigTt (cu)Q02`09Q0uMI0cG0osA0IfO2@1rC0|1aO0iA0n.Q0 WAl0 G8s2Ueo0eG0v0d0"1E]4MŤ-&3 &7&l>]Uhz811U!J!Ž?@昫>djIIa? >"(E_~_ I%K9E 5E!*dK ;;5QIWEEE@sT&p _KnSA?<#R@V$T2ݰ?@ʡ /6q!I6`ObmMM\j=am {:e 뇿P> #? D"? 5-gg?j47!B{oogrK57!ibDAbE9 MX7'0U~rN!R$a)5 5vIzHD # =hj0>T h]]9 qAU@'P?@@="?@EP¿P6 t`  bm&Qo?t@@L]WI,#u aiuoL> JU2zGzt;?@L?&A@b}#zs q#1b(b)+$&[9#H",ɺ (wH"?& ?A$ /%9#BV1V15 `?CopyrigTt (cu)02`090uM0c0os}0If2|1r01a0i}0n.0 WAl0 8s2Ue0e0v0d0"O1E]S4MŤ-9#b3 b7&l>]Uhzt1.A!JN!DØ$j0djV1ax߃S(@où}sװ?@l[ 06q1I[Majnha_:e P> #? BK=o? n-?j4Bs!B{__Wr5s!D8E6V7гj_|_ ^XE.UB6VtMhNPڮs} /d_mOoT ݬ\VyWxRkrVo_bVh*g:n"'UaEɈ庾hBN>?Bn]zGvN7ViDAbE9 MX+G'0UPN!4ae5 MaHD # =hj0>T h]]9 U@Nr"?@v->u?@_w`|ach޺?P6 t`  !a&a?t,F=۳=uk;u5 auom>J2zGzt?@LA@b#zt1b(Wb!).+.&[-m(;?&L ?A$0/RQ%!!5 `?CopyrigTt (c)02`090M 0c 0os0f21r0@1a0i0n.0 Al[0 8s_2e30e 0vq0dS0T"!E]$Mb-# 'I&l>]Uhz!1!J@ 9ե djcYZ(_N9zOMGE%_Eohp3wO"K ңHE ^&_8_WE_OqOOOi&DAbE9 MX7}'0Ufb>!$a% f1jHD: # Uh4>T#]]9 M5AU@1b?@ 0?@(?@n?P6 JuM` ?u JYt  )t7xEA2&L_C?. > >tJU2q K?=@MJ&A@-b9(+bG)T+T&J[#"#a?& ?AH?/`)#115 {`?CopyrigTt (c);020G09;0M30c10os+0f92*1r-0f1ai+0n.;0 Al0 18s2eY0e10v0dy0z"!4B#e-?3 7)& b 0K8>U# ]A]A "1!ъ!$cIo <%OYAJE*dK;;\%W%E@-.L[.FX5ET^gY?@7гL;] W-\TB<#R?WLq#'?@Eڮs /6q!I'?`bmMW_Ye[7 VK=F: [jr ? D"? XZvD?a@Boog]r5;!QE _2%g@LO MLΈXa~#OTZiAle59 XG|"'0Uc&N!$05 .HD # =hj0>T h]]9 IAU@Du??@ e?@=?@n? 3?PJW?>t`  ^Z?t#Ǚ.YX?H"͋s?/HImG_BqhZ+u u$ >  J JpU?43f<!.&P?b3bbfz@1bAe&bq$d 2zGzt.#@LT"&r(~&i$q)(+}'i"~*#81815 `?Co yrigTt (c)o02`09o0Mg0ce0os_0fm2^1r 1am0i_0n.o0 Al0 e8s2e0ee0v0d0"11E]54M-#D3 %D7.&lUh#7 V1#Ai!J# F/?B1B  VRiAAbE9 MX G{W'0U*R2N!I$a {VZUHPuD  # #%>h 0JTpEI MU@Ž?@`?@4xS?@JBf&?HNtQ`  II?t#[  ii$ `kZNu  Miu%wj> JQ       % "&&tJNU2"K?H@Qs#N&A@b(b)++&Np}#> H1#19 ?#bbbz| &/5R }#11`?Co0yrig\t (c)02h090M0c0o%s0f21r0Aua0i0n.0_ Al!@ 8Us%Be0e0v7@ d@21a4t#-}#3K 746lJ #$JUp5 3 M19 1!aq(!@Llrkt# 837^1?@!?@km?P i ?e=1\iOT/irvs}i>`,of :m ,M ?? S&d2? *b?r4!B oo1gr. #5!>%(EQOOOO__@i1_C_ D4և]_o_#RX Ph'X___ #R__ (YQoSo+o=osd {oEeoooooopَm* hDV!VVi&n X"c7I!Hpg bf'iMjSE t%XyG|'0UUŢŞN!O4i |UGD # hz0TdYYBU@R-?@c1*?@=?@(kݫ?P} t`  87?t#_)TeΦu ]ukv  ̝L&UUU&I&3 U!!`?CopyrigPt _(c) 2\W09 M c os f"!r 1a i n}. Al00U (s42e0e uvF0d(0'HS$#-## 'I?k=#ǒ 2j$B##0U'BM3@&@F0Yk} #HA%DKb5DK3DK5DKED$!GiAZG5(|IDFX7yW'&Dŭ6!4YA yVZHD  # =hj4>T!]]>#AU@=?@!-??@$rq?P6 t`z  ?5t# rXѮu)Nu;):O]ע0 &> # " "+"+"+"+" $+"T-J[U7 ??& bA@ 2b4-#2zGzt#+@ Li68!6 ?}; 72U!:B#AA5 5`?CopyrigTt(c)20F@9M2@c.0@os*@f8B)Ar,@eAa8@i*@n. Al@ 0HsBeX@ej0@v@dx@)21"DM-,;?C G& l>]UhzAE!A#!ְ1J`#@l?@َm?NT,dKj&b&R&M/8T>f:?x6@8?@ߛ} _6q0YE*]\LThנKjfGD&Qhj iU3ULeVP۶W?@bs)h5oWKoWo;Kod}l$ro`nEBYFv?@D?%먪?@@3gZR^{|\6?vodmP}l>MBe 9 N 1iS? 1?grl#51:O"4gBa@Sq(UE^@A N?@CJ?m Y&v2rA @3ijD&}laqOz o?#WHZ'Qu{r>@\J"ۭ?@ yT?@ (U" +Web0)\ϼ(Pfodm}nv}l?V5(?q$Ix[cN#W{#iA&QeE9 MX''W0UdN! 0 /HD  # =hj0T h]]9 #]AU@~M)M?@۵+?@)?@4_=w?P6 u` ?u#t  3zM%t3ws%.<%H._'B> #PJU2N贁Nw[?@ʐL+&A@wbu](i+bk)%+&p%#4">9"<5!?& ?M#bbb͓z$ p&"/%T%#L1L15 w`?Co yrigTt (c)02`090M{0cy0oKss0f2r1r 1a0is0n.0 Al0 y8s2e0ey0v0d0"E1E(]I4M-%#X3 X7&l*>(UhE j1#$Ac!J`%#@J԰ί9?䟥!foAnBM(TfH?@3A,?@A') ?@:?PT% ibL6VLD5E+v;*AיH: 8snP%$? k?Q? \?4_!__Wr5 _! R,U3OC@bD}?@,en?P)Oy޾ ?pV?c"rA b$cZ-,u`κ\DT+V ?8<iAaeI=MX!GG'W0UxrFN!$ a FCzHD  # =hj4>T!]]>#IAU@+&Z?@A3?@0xS?@F#tݩ?P6 t`  >B?\oEt# ŖoZu 0Nu;Y:|8>$# JpU>##<?2& ?5bbbz@b#ANi&bu$'h 2N贁N[2$@ LX"D&v(&m$ :;T'm"*B#d1d15 5`?Co yrigTt (c)020090M0c0os0f21r 1a0i0n.0 Al0 8s2e0e0v0d0"]1"a4M-/p3 p72&l>0>Uhh= 1#!eJ`#&@NTM\jh1B,RBM(!JَmO_ e@ So4(DFtI?@:7f .6+qS w_KT\T+\(Kjӷjmlhj -`\TPQE\Upt_o ?u~!ՠXEOd<"PP'_Pm"rA @3sj߅Q1lğ=GoYniAleE9 MX'w'0Ur^N!M$|A vzHD  # =hj4>T!]]>#IAU@+&Z?@ ~*?@AxS?@mݩ?P6 t`  >B?\oEt# 6ΠZu 0Nu;Y~:#&}>0m8>  PJU2N贁Nwk?@ eL&A( 5bM(b[)h+h+$h&#[-M$#?& ?b$Z*'*B#O1O15 5`?CopyrigTt (c)02U0090M~0c|0osv0f2u1rx01a0iv0n}.0 Al0U |8s2e0e|05v0d0"H1P"L4M-/[3 [7&l>0>Uhh= m1#!S!J`#*&@[َm_?NTMjC1gc RVMʣ(D1FʞB.• .6q0IKTLTcKjRlhj ?p= (*!]ݏp{O2Ke?s9T;QEGUF/4qX-}__TM7fTZT\Dž}_P^52OES"rA 0S#Es3iAleE9 MX$Gxw'0UrIN!4gA xvzHD  # =hj4>T!]]>#!AU@+&Z?@r<I?@0xS?@F#tݩ?P6 t`  >B?\oEt# ap'EZu 0Nu;Y:|$># BJpU>#͙;? & ?5bbbz@}bAA& K&@ 2zGzt?"K@ L0"&N(bM)+TK/8Z*B<1<15 5`?CoyrigTt (c)s02009s0Mk0ci0osc0fq2b1r1aq0ic0n.s0 Al0 i8s2e0ei0v0d0b"5194M-t/H3 H7T &l>(>UhE=3Z1#E!J!@ENTMjN@1h(NَmOO e@ o)4(DFtI?@:7f .6q+ '_KD3\T+\(Kjӷjmlhjw P\DiAlesI=MXsG'W0Uzb6N!%$ 0 sFEjHD  # =hj8>T! ]]>#!AU@+&Z?@F#t?@0xSW?@w?P6 t`  >B? \Et#տ|u l4RQu?]>I$>I# JpU>͙#<?& ?9bbbz@b#AE&bQ$$D 2zG[zt#@ L4"&R(^&I$Q)+]'I"^*Bh{.M#To1o15 9`?CoyrigTtk(c)k2009kM0c0os0f21r1a0i0n.k Al0 8s2e0e0v@d0f"h1l4M-:?{3 %{7&l>(>UhE= `51#I!J49fAn^ R)X f"B!JpG?RSlOS u~!N]8-1d<"P?@:' .6q/ YVTQRXQOnğ=i n (\wTiAaeE9 MXLg'0UbiN!)$0 Lf`jUGD # hz0TdYYB%U@,b?@#@Ս??@c`q?P} Wt`{ f?t#F]tEY6<=P=d =x =f = =u )2<<PPd*dxxUu uE#U!!`?CopyrigPt (c)&02\09&0M0c.0os0f$21r0Q1a$0i0n.&0 All0 8sp2eD0ej0v0dd0"#S$#-`#d0" '?=#&#D66 2$B##0UcB3@P&0P4^ PP|H!YHA%DPK5DdK3DxK5DH!KED@K|DiAAa5IFrX7W'bD)6!4] VZUHPD  # #R>h-(JTeeM QU@f4F?@0`?pNuQ` ?u#>.R -<. =PK=dKQ -xK#|s } K2(.K<FZn#&خ7&Nt, t"t""tb#"NU2zGz?S@Q#N&A@u"b8b9,;,62 !4NF#2#"6 ]2M2b9;72iY<2Y?R#*A*A#`?Copyrwig\t hwc)a@20m@9a@MY@cW@o%sQ@f_BPArS@Aua_@iQ@n.a@_ Al@ WHUsBe@eW@v@-d@"l.]Upd驕XPQۿ~9`9(XTU_ϸTZAQeBtQ \_n_WT2ݰ?@-Ʒ꾌 ˠіTrivUqp5u ]M?@`?@#v;"ұ.+K oY\a'N%Z\nq3u@Q}6Ї'0)N77x[p EOGF؇AU;M_q߃{\Ԡ+ۜݾ4:` Һ!#S ?@.؏`r/A ?ǸBy vSul` g qMݞ@Y+9qZ U N)/` ?u[qirT@%֥x1֥X'0U "Ř6֥E0֥% UGD # hz0TdYYB%U@,b?@"@Ս??@c`q?P} Wt`{ f?t#E]tEuj )u74,bhi|1dlialiiX^hh||#R -u"iU!!`?CopyrigPt (c)&02\09&0M0c0os0f$21r0Q1a$0i0n.&0 All0 8sp2eD0e0v0dd0"#S$#I-#6# '?7)=#&#@D66 2$B##0UcB3@&04^AA| #,HA%D|K5DdK3DK5DKEDK|DiAcP5IFX7.W'bD6%!4] VZHD D# =h50>Th]]9 5AU@(b?@L??@Cmw?P6 t`  7?ti[=(_A u a)uo.dAd JU2zGzt?N@L &A@bA#zt7 5#1bO(Wb])j+j&[ "*(; "?&L ?AU$l/R%115 `?CopyrigTt (c)Q02`09Q0MI0cG0osA0fO2@1rC0|1aO0iA0n.Q0 Al0 G8s2eo0eG0v0d0"1E]4Mb-&3 &7I&l>]Uhz811U!J!Ž?@>djIׄIa? >"(E_~_ I%K9?E 5E!*dK ;;5QIWEEE@sT&p _KnA<#R@V$T2ݰ?@ʡ /6q!I6`bmMM\j=am {:e 뇥P> #? D"? 5-g?j47!B{oogr%57!ibDAAbE9 MX7'W0U~rN!$)a)5 5vIzHD # =hj0>T h]]9 qAU@'P?@@="?@EP¿P6 t`  bm&Qo?t@@L]WI,#u aiuoL> JU2zGzt;?@L ?&Aw@b}#zs q#1b](b)+I&[9#H",ɺ (H"?0& ?A$I /%9#V1V15 `?CopyrigTt (c)02`090M0c0os}0f2|1r01a0i}0n.0 Al0 8s2e0e0v0d0"O1E]S4M-9#b3 %b7&l>]Uhzt1.A!JN!DØ$j0djV1ax߃ݧ(@où}sװ?@lߵ[ 06Aq1I[Majnha_׾:e 뇥P> #? BK=o? n-?j4s!B{__Wr.5s!D8E6V7гj_|_ ?^XE.UB6VtMhNPڮs /d_mOoT ݬ\VߦyWx?RkrVo_bVh*g:n"'UaEɈ}hBN>?Bn]z/GvN7ViDAAbE9 MX+G'W0UPN!4)ae5 MaHD # =hj0>T h]]9 U@Nr"?@v->u?@_w`|ach޺?P6 t`  !a&a?t,F=۳=uk;u5 auoehAJ2zGzt?@L A@b#z1b(b!).+$.&[-m(w?& ?A$0/Q%B!!5 `?CopyrigTt (cu)02`090uM 0c 0os0If21r0@1a0i0n.0 WAl[0 8s_2Ue30e 0vq0dS0T"!E]$MŤ-# '&l>]Uhz!1 !J@ 9D djc?YZ(_N9zOMGE%_Eohp3wO"K ңHE ^&_8_WE_OqOO$Oi&DAbE9 MX7'0U*fb>!$a% f1jHD: # Uh4>T#]]9 M5AU@1b?@ 0?@(?@n?P6 JuM` ?u JYt  )t7xEA2&L_C?.> >tJU2q K?=@M &Aw@-b9(WbG)T+T&JJ[#"#?& ?A?/`) #115 {`?CopyrigTt (wc);020G09;0M30c10o%s+0f92*1r-0f1uai+0n.;0_ Al0 18Us2eY0e10v0 dy0z"!(4B#-?3 R7& bR 0K8>U# ]A]A `"1!!$?cIo <%YAJE*dK;;\%W%E@-.L[.FX5ET^gY?@߄7гL;] W-\_TB<#R?WLq#'?@Eڮs ?/6q!I'`bmMW_Ye[7 VK=F: [jr ? D"? X?ZvD?a@Boogr5;!QE 2%g@LO MLXa~#OTZiAle59 XG"'0Ujc&N!$05 .HD # =hj0>T h]]9 IAU@Du??@ e?@=?@n? 3?PJW?>t`  ^Z?t#Ǚ.YX?H"͋s?/HImG_BqhZ+u Su$A  H JpU?43f<!.&P? b3bbfz@1bAe&bq$d 2zGzt.#@LT"&r(~&i$q)(+}'i"~*#81815 `?Co yrigTt (c)o02`09o0Mg0ce0os_0fm2^1r 1am0i_0n.o0 Al0 e8s2e0ee0v0d0"11E]54M-#D3 %D7.&lUh#7 V1#Ai!J# F/?B1B  VRiAAbE9 MX G{W'0U*R2N!I$a {VZUHPuD  # #%>h 0JTpEI MU@Ž?@`?@4xS?@JBf&?HNtQ`  II?t#[  ii$ `kZNu  Miu%wj>JQ       % "&&tJNU2"K?H@Qs# &Aw@b(Wb)++I&Np}#>H1#19 ?#bbbIz| &/5R}#11`?Co0yrig\t (c)02h090M0c0oKs0f21r0Aa0i0n.0 Al!@ 8s%Be0e0v7@d@21(a4t#-}#3 746lJ#$JUp5 @3 M19 1!q(!@LlrkIt# 837^1?@!?@km?P i e=1\iOT/irv_s}i>`,of :m ,M ?? S&d2? *?b?r 4!B oo1g]r #5!>%(EQOOOO__@iڲ1_C_ D4O]_o_#RX Ph'___ #R__ (YQoSo+o=osd {oEeoooooopَm* hDV!VVi&n X"c7I!pg bf'iMjSE t%XyG|'0UŢŞN!O4i |UGD # hz0TdYYBU@R-?@c1*?@=?@(kݫ?P} t`  87?t#_)TeΦu ]ukvĝk!L"&UUU&I&3 U!!`?CopyrigPt(c)2\09M c o%s f"!r 1ua i n._ Al00 (Us42e0e vF0d(0'S$#-#l# '?Rk=#ǒ 2$ZB##0U'B3@&F0PYk} #HA%DKb5DK3DkK5DKED!GiA_B5|IDFX7yW'&Dŭ61YA yVZHD # =hj4>T ]]>#AU@=?@!-??@$rq?P6 t`z  ?5t# rXѮu)Nu;):O]ע0&> # " "+"+"+"+" $+"T-J[U7 ??& bA@ 2b4-#2zGzt#+@ Li68!6 ?}; 72U!:B#AA5 5`?CopyrigTt(c)20F@9M2@c.0@os*@f8B)Ar,@eAa8@i*@n. Al@ 0HsBeX@ej0@v@dx@)21"DM-,;?C G& l>]UhzAE!A#!ְ1J`#@l?@َm?NT,dKj&b&R&M/8T>f:?x6@8?@ߛ} _6q0YE*]\LThנKjfGD hj iU3ULeVP۶W?@bs)h5oWKoWo;Kod}l$ro`nEBYFv?@D?%먪?@@3gZR^{|\6?vodmP}l>MBe 9 N 1iS? 1?grl#51:O"4gBa@Sq(UE^@A N?@CJ?m Y&v2rA @3ijD&}laqOz o?#WHZ'Qu{r>@\J"ۭ?@ yT?@ (U" +Web0)\ϼ(Pfodm}nv}l?V5(?q$Ix[cN#W{#iA eE9 MX''W0UdN! 0 /HD # =hj0T h]]9 #]AU@~M)M?@۵+?@)?@4_=w?P6 u` ?u#t  3zM%t3ws%.<%H._'B> #PJU2N贁Nw[?@ʐL+&A@wbu](i+bk)%+&p%#4">9"<5!?& ?M#bbb͓z$ p&"/%T%#L1L15 w`?Co yrigTt (c)02`090M{0cy0oKss0f2r1r 1a0is0n.0 Al0 y8s2e0ey0v0d0"E1E(]I4M-%#X3 X7&l*>(UhE j1#$Ac!J`%#@J԰ί9?䟥!foAnBM(TfH?@3A,?@A') ?@:?PT% ibL6VLD5E+v;*AיH: 8snP%$? k?Q? \?4_!__Wr5 _! R,U3OC@bD}?@,en?P)Oy޾ ?pV?c"rA b$cZ-,u`κ\DT+ V ?8<iA eI=MX!GG'W0UxrFN!$ a FCzHD # =hj4>T ]]>#IAU@+&Z?@A3?@0xS?@F#tݩ?P6 t`  >B?\oEt# ŖoZu 0Nu;Y:|8>$# JpU>##<?2& ?5bbbz@}b#Ai&'bu$ 'h 2N贁N[J2$@ LX"&"v(&m$ :;'m"*B#Bd1d15 5`?Co yrigTt (c)0W20090M0]c0os0f2R1r 1a0i0n.0 AUl0 8s2e0e0v0d0@"]1"a4MY-/p3 p72&Rl>0>Uhh= Ђ1#!m!J`#&@ENTMj.h1%,RM(!JَmO_ e@ o)4(DFtI?@:7f .6qS w_KT\T+\(Kjӷjm hjw -`\TPQE\Up癙t_o u~!ՠXEOd<"PP'X_Pm"rA @3sjQ1lğO=GoYniA eE9 MX'w'0UUr^N!M$|A vzHD # =hj4>T ]]>#IAU@+&Z?@ ~*?@AxS?@mݩ?P6 t`  >B?\oEt# 6ΠZu 0Nu;Y~:#&}>0e8YAY Y PJU2N贁Nwk?@ eL&A( 5bM(b[)h+h+$h&#[-M$#?& ?b$Z*'*B#O1O15 5`?CopyrigTt (c)02U0090M~0c|0osv0f2u1rx01a0iv0n}.0 Al0U |8s2e0e|05v0d0"H1P"L4M-/[3 [7&l>0>Uhh= m1#!S!J`#*&@[َm_?NTMjC1cYK RVM(D1FʞB.• .W6q0IKTLT_cKjR hj p= (*!]pǙ{O2Kes9T;QEGUFڈ4qX-}__TM7fTZT\ODž}_P^b52OES"rAQ 0S#Es3iA eE9 MX$Gxw'0UUrIN!4gA xvzHD # =hj4>T ]]>#!AU@+&Z?@r<I?@0xS?@F#tݩ?P6 t`  >B?\oEt# ap'EZu 0Nu;Y:|$!># BJpU>#͙;? & ?5bbbz@}bAA&IK&@ 2zGzt?"K@ L0"&N(bM)+TK/8Z*B<1<15 5`?CoyrigTt (c)s02009s0Mk0ci0osc0fq2b1r1aq0ic0n.s0 Al0 i8s2e0ei0v0d0b"5194M-t/H3 H7T &l>(>UhE=3Z1#E!J!@ENTMjN@1h(NَmOO e@ o)4(DFtI?@:7f .6q+ '_KD3\T+\(Kjӷjm hjw P\DiA esI=MXsG'0Uzb6N(! 0 sFEjHD # =hj8>T! ]]>#!AU@+&Z?@F#t?@0xSW?@w?P6 t`  >B? \Et#տ|u l4RQu?]>I$">I# JpU>͙#<?& ?9bbbz@b#AE&bQ$$D 2zG[zt#@ L4"&R(^&I$Q)+]'I"^*Bh{.M#To1o15 9`?CoyrigTtk(c)k2009kM0c0os0f21r1a0i0n.k Al0 8s2e0e0v@d0f"h1l4M-:?{3 %{7&l>(>UhE= `51#I!J49fAn^ R)X f"B!JpG?RSlOS u~!N]8-1d<"P?@:' .6q/ YVTQRXQOnğ= l n (\wTiA eE9 MXLg'0UbiN!)$0 Lf`jUGD # hz0TdYYB%U@n?@c`?@,bػȻP} jt` o?t#uE]tZu M)u7#$_fh%i|&if'i(i̸)i*TiX^hUh||UTf"%-U!!`?CopyrigPtu c 2\W09&0M0c0os0f$21r0Q1a$0i0n}.&0 All0U 8sp2eD0e05v0dd0"#HS$#-## 'I?7=#&#D66 2b$B^0UcBM3@&T04^AA| #hHA%D|K5DK3DK5DKED@K|DiAAa5IFrX7W'bD)6!4] VZHD# # =hj0>T h]]9 5AU@(b?@L??@C?ִm?P6 jt`  o?ti[=(A Vu auo.$&> *ԮJU2zGzt?@L#&A@bA#z7 5#1bO(b])j+$j&[ "*(w "?& ?AU$l/%B115 `?CopyrigTt (cu)Q02`09Q0uMI0cG0osA0IfO2@1rC0|1aO0iA0n.Q0 WAl0 G8s2Ueo0eG0v0d0"1E]4MŤ-&3 &7&l>]Uhz811U!J!Ž?@昫>djIIa? >"(E_~_ I%K9E 5E!*dK ;;5QIWEEE@sT&p _KnSA?<#R@V$T2ݰ?@ʡ /6q!I6`ObmMM\j=am {:e 뇿P> #? D"? 5-gg?j47!B{oogrK57!ibDAbE9 MX7'0U~rN!R$a)5 5vIzHD# # =hj0>T h]]9 qAU@'P?@@="?@EP¿P6 t`  bm&Qo?t@@L]WI,#u aiuoL%> JU2zGzt;?@L?&A@b}#zs q#1b(b)+$&[9#H",ɺ (wH"?& ?A$ /%9#BV1V15 `?CopyrigTt (cu)02`090uM0c0os}0If2|1r01a0i}0n.0 WAl0 8s2Ue0e0v0d0"O1E]S4MŤ-9#b3 b7&l>]Uhzt1.A!JN!DØ$j0djV1ax߃S(@où}sװ?@l[ 06q1I[Majnha_:e P> #? BK=o? n-?j4Bs!B{__Wr5s!D8E6V7гj_|_ ^XE.UB6VtMhNPڮs} /d_mOoT ݬ\VyWxRkrVo_bVh*g:n"'UaEɈ庾hBN>?Bn]zGvN7ViDAbE9 MX+G'0UPN!4ae5 MaHD# # =hj0>T h]]9 U@Nr"?@v->u?@_w`|ach޺?P6 t`  !a&a?t,F=۳=uk;u5 auom&>J2zGzt?@LA@b#zt1b(Wb!).+.&[-m(;?&L ?A$0/RQ%!!5 `?CopyrigTt (c)02`090M 0c 0os0f21r0@1a0i0n.0 Al[0 8s_2e30e 0vq0dS0T"!E]$Mb-# 'I&l>]Uhz!1!J@ 9ե djcYZ(_N9zOMGE%_Eohp3wO"K ңHE ^&_8_WE_OqOOOi&DAbE9 MX7}'0Ufb>!$a% f1jHD:# # Uh4>T#]]9 M5AU@1b?@ 0?@(?@n?P6 JuM` ?u JYt  )t7xEA2&L_C?.'> >tJU2q K?=@MJ&A@-b9(+bG)T+T&J[#"#a?& ?AH?/`)#115 {`?CopyrigTt (c);020G09;0M30c10os+0f92*1r-0f1ai+0n.;0 Al0 18s2eY0e10v0dy0z"!4B#e-?3 7)& b 0K8>U# ]A]A "1!ъ!$cIo <%OYAJE*dK;;\%W%E@-.L[.FX5ET^gY?@7гL;] W-\TB<#R?WLq#'?@Eڮs /6q!I'?`bmMW_Ye[7 VK=F: [jr ? D"? XZvD?a@Boog]r5;!QE _2%g@LO MLΈXa~#OTZiAle59 XG|"'0Uc&N!$05 .HD# # =hj0>T h]]9 IAU@Du??@ e?@=?@n? 3?PJW?>t`  ^Z?t#Ǚ.YX?H"͋s?/HImG_BqhZ+u u$(>  J JpU?43f<!.&P?b3bbfz@1bAe&bq$d 2zGzt.#@LT"&r(~&i$q)(+}'i"~*#81815 `?Co yrigTt (c)o02`09o0Mg0ce0os_0fm2^1r 1am0i_0n.o0 Al0 e8s2e0ee0v0d0"11E]54M-#D3 %D7.&lUh#7 V1#Ai!J# F/?B1B  VRiAAbE9 MX G{W'0U*R2N!I$a {VZUHPuD # # #%>h 0JTpEI MU@Ž?@`?@4xS?@JBf&?HNtQ`  II?t#[  ii$ `kZNu  Miu%wj>)JQ       % "&&tJNU2"K?H@Qs#N&A@b(b)++&Np}#> H1#19 ?#bbbz| &/5R }#11`?Co0yrig\t (c)02h090M0c0o%s0f21r0Aua0i0n.0_ Al!@ 8Us%Be0e0v7@ d@21a4t#-}#3K 746lJ #$JUp5 3 M19 1!aq(!@Llrkt# 837^1?@!?@km?P i ?e=1\iOT/irvs}i>`,of :m ,M ?? S&d2? *b?r4!B oo1gr. #5!>%(EQOOOO__@i1_C_ D4և]_o_#RX Ph'X___ #R__ (YQoSo+o=osd {oEeoooooopَm* hDV!VVi&n X"c7I!Hpg bf'iMjSE t%XyG|'0UUŢŞN!O4i |UGD# # hz0TdYYBU@R-?@c1*?@=?@(kݫ?P} t`  87?t#_)TeΦu ]ukv*+,-̝./D]_&UUU&I&3 U!!`?CopyrigPt _(c) 2\W09 M c os f"!rT 1a i n] Al00 (Us42e0e vF0d'S$# # '?k=# 66 2$B ְ0U'B3@&F0Yk} #HA%DKb5DK3DK5D@KEDYAGiAZG5|IDFrX7yW'&D)ŭ6!4YA yVZHD* # =hj4>T!]]>#AU@=?@!-??@$rq?P6 t`z  ?5t# rXѮu)Nu;):O]ע0+&> # " "+"+"+"+" $+"T-J[U7 ??& bA@ 2b4-#2zGzt#+@ Li68!6 ?}; 72U!:B#AA5 5`?CopyrigTt(c)20F@9M2@c.0@os*@f8B)Ar,@eAa8@i*@n. Al@ 0HsBeX@ej0@v@dx@)21"DM-,;?C G& l>]UhzAE!A#!ְ1J`#@l?@َm?NT,dKj&b&R&M/8T>f:?x6@8?@ߛ} _6q0YE*]\LThנKjfGD&Qhj iU3ULeVP۶W?@bs)h5oWKoWo;Kod}l$ro`nEBYFv?@D?%먪?@@3gZR^{|\6?vodmP}l>MBe 9 N 1iS? 1?grl#51:O"4gBa@Sq(UE^@A N?@CJ?m Y&v2rA @3ijD&}laqOz o?#WHZ'Qu{r>@\J"ۭ?@ yT?@ (U" +Web0)\ϼ(Pfodm}nv}l?V5(?q$Ix[cN#W{#iA&QeE9 MX''W0UdN! 0 /HD* # =hj0T h]]9 #]AU@~M)M?@۵+?@)?@4_=w?P6 u` ?u#t  3zM%t3ws%.<%H._'B,> #PJU2N贁Nw[?@ʐL+&A@wbu](i+bk)%+&p%#4">9"<5!?& ?M#bbb͓z$ p&"/%T%#L1L15 w`?Co yrigTt (c)02`090M{0cy0oKss0f2r1r 1a0is0n.0 Al0 y8s2e0ey0v0d0"E1E(]I4M-%#X3 X7&l*>(UhE j1#$Ac!J`%#@J԰ί9?䟥!foAnBM(TfH?@3A,?@A') ?@:?PT% ibL6VLD5E+v;*AיH: 8snP%$? k?Q? \?4_!__Wr5 _! R,U3OC@bD}?@,en?P)Oy޾ ?pV?c"rA b$cZ-,u`κ\DT+V ?8<iAaeI=MX!GG'W0UxrFN!$ a FCzHD* # =hj4>T!]]>#IAU@+&Z?@A3?@0xS?@F#tݩ?P6 t`  >B?\oEt# ŖoZu 0Nu;Y:|8->$# JpU>##<?2& ?5bbbz@}b#Ai&'bu$ 'h 2N贁N[J2$@ LX"&"v(&m$ :;'m"*B#Bd1d15 5`?Co yrigTt (c)0W20090M0]c0os0f2R1r 1a0i0n.0 AUl0 8s2e0e0v0d0@"]1"a4MX,p3 p72&Rl>0>Uhh= Ђ1#!m!J`#&@ENTMj.h1%,RM(!JَmO_ e@ o)4(DFtI?@:7f .6qS w_KT\T+\(Kjӷjmlhjw -`\TPQE\Up癙t_o u~!ՠXEOd<"PP'X_Pm"rA @3sjQ1lğO=GoYniAleE9 MX'w'0UUr^N!M$|A vzHD* # =hj4>T!]]>#IAU@+&Z?@ ~*?@AxS?@mݩ?P6 t`  >B?\oEt# 6ΠZu 0Nu;Y~:#&}>0m8.>  PJU2N贁Nwk?@ eL&A( 5bM(b[)h+h+$h&#[-M$#?& ?b$Z*'*B#O1O15 5`?CopyrigTt (c)02U0090M~0c|0osv0f2u1rx01a0iv0n}.0 Al0U |8s2e0e|05v0d0"H1P"L4M-/[3 [7&l>0>Uhh= m1#!S!J`#*&@[َm_?NTMjC1cK RVM(D1FʞB.• .W6q0IKTLT_cKjRlhj p= (*!]pǙ{O2Kes9T;QEGUFڈ4qX-}__TM7fTZT\ODž}_P^b52OES"rAQ 0S#Es3iAleE9 MX$Gxw'0UUrIN!4gA xvzHD* # =hj4>T!]]>#!AU@+&Z?@r<I?@0xS?@F#tݩ?P6 t`  >B?\oEt# ap'EZu 0Nu;Y:|$/># BJpU>#͙;? & ?5bbbz@}bAA&IK&@ 2zGzt?"K@ L0"&N(bM)+TK/8Z*B<1<15 5`?CoyrigTt (c)s02009s0Mk0ci0osc0fq2b1r1aq0ic0n.s0 Al0 i8s2e0ei0v0d0b"5194M-t/H3 H7T &l>(>UhE=3Z1#E!J!@ENTMjN@1h(NَmOO e@ o)4(DFtI?@:7f .6q+ '_KD3\T+\(Kjӷjmlhjw P\DiAlesI=MXsG'W0Uzb6N!%$ 0 sFEjHD* # =hj8>T! ]]>#!AU@+&Z?@F#t?@0xSW?@w?P6 t`  >B? \Et#տ|u l4RQu?]>I$0>I# JpU>͙#<?& ?9bbbz@b#AE&bQ$$D 2zG[zt#@ L4"&R(^&I$Q)+]'I"^*Bh{.M#To1o15 9`?CoyrigTtk(c)k2009kM0c0os0f21r1a0i0n.k Al0 8s2e0e0v@d0f"h1l4M-:?{3 %{7&l>(>UhE= `51#I!J49fAn^ R)X f"B!JpG?RSlOS u~!N]8-1d<"P?@:' .6q/ YVTQRXQOnğ=i n (\wTiAaeE9 MXLg'0UbiN!)$ Lf`jUGD # hz0TdYYB%U@n?@T h]]9 5AU@(b?@L??@C?ִm?P6 jt`  o?ti[=(A Vu auo.2&> *ԮJU2zGzt?@L#&A@bA#z7 5#1bO(b])j+$j&[ "*(w "?& ?AU$l/%B115 `?CopyrigTt (cu)Q02`09Q0uMI0cG0osA0IfO2@1rC0|1aO0iA0n.Q0 WAl0 G8s2Ueo0eG0v0d0"1E]4MŤ-&3 &7&l>]Uhz811U!J!Ž?@昫>djIIa? >"(E_~_ I%K9E 5E!*dK ;;5QIWEEE@sT&p _KnSA?<#R@V$T2ݰ?@ʡ /6q!I6`ObmMM\j=am {:e 뇿P> #? D"? 5-gg?j47!B{oogrK57!ibDAbE9 MX7'0U~rN!R$a)5 5vIzHD1 # =hj0>T h]]9 qAU@'P?@@="?@EP¿P6 t`  bm&Qo?t@@L]WI,#u aiuoL3> JU2zGzt;?@L?&A@b}#zs q#1b(b)+$&[9#H",ɺ (wH"?& ?A$ /%9#BV1V15 `?CopyrigTt (cu)02`090uM0c0os}0If2|1r01a0i}0n.0 WAl0 8s2Ue0e0v0d0"O1E]S4MŤ-9#b3 b7&l>]Uhzt1.A!JN!DØ$j0djV1ax߃S(@où}sװ?@l[ 06q1I[Majnha_:e P> #? BK=o? n-?j4Bs!B{__Wr5s!D8E6V7гj_|_ ^XE.UB6VtMhNPڮs} /d_mOoT ݬ\VyWxRkrVo_bVh*g:n"'UaEɈ庾hBN>?Bn]zGvN7ViDAbE9 MX+G'0UPN!4ae5 MaHD1 # =hj0>T h]]9 U@Nr"?@v->u?@_w`|ach޺?P6 t`  !a&a?t,F=۳=uk;u5 auom4>J2zGzt?@LA@b#zt1b(Wb!).+.&[-m(;?&L ?A$0/RQ%!!5 `?CopyrigTt (c)02`090M 0c 0os0f21r0@1a0i0n.0 Al[0 8s_2e30e 0vq0dS0T"!E]$Mb-# 'I&l>]Uhz!1!J@ 9ե djcYZ(_N9zOMGE%_Eohp3wO"K ңHE ^&_8_WE_OqOOOi&DAbE9 MX7}'0Ufb>!$a% f1jHD:1 # Uh4>T#]]9 M5AU@1b?@ 0?@(?@n?P6 JuM` ?u JYt  )t7xEA2&L_C?.5> >tJU2q K?=@MJ&A@-b9(+bG)T+T&J[#"#a?& ?AH?/`)#115 {`?CopyrigTt (c);020G09;0M30c10os+0f92*1r-0f1ai+0n.;0 Al0 18s2eY0e10v0dy0z"!4B#e-?3 7)& b 0K8>U# ]A]A "1!ъ!$cIo <%OYAJE*dK;;\%W%E@-.L[.FX5ET^gY?@7гL;] W-\TB<#R?WLq#'?@Eڮs /6q!I'?`bmMW_Ye[7 VK=F: [jr ? D"? XZvD?a@Boogr@QE 2%g@LO MLXa~#OTZiAle59 XG"'0Ujc&N!$05 .HD1 # =hj0>T h]]9 IAU@Du??@ e?@=?@n? 3?PJW?>t`  ^Z?t#Ǚ.YX?H"͋s?/HImG_BqhZ+u u$6>  J JpU?43f<!.&P?b3bbfz@1bAe&bq$d 2zGzt.#@LT"&r(~&i$q)(+}'i"~*#81815 `?Co yrigTt (c)o02`09o0Mg0ce0os_0fm2^1r 1am0i_0n.o0 Al0 e8s2e0ee0v0d0"11E]54M-#D3 %D7.&lUh#7 V1#Ai!J# F/?B1B  VRiAAbE9 MX G{W'0U*R2N!I$a {VZUHPuD 1 # #%>h 0JTpEI MU@Ž?@`?@4xS?@JBf&?HNtQ`  II?t#[  ii$ `kZNu  Miu%wj>7JQ       % "&&tJNU2"K?H@Qs#N&A@b(b)++&Np}#> H1#19 ?#bbbz| &/5R }#11`?Co0yrig\t (c)02h090M0c0o%s0f21r0Aua0i0n.0_ Al!@ 8Us%Be0e0v7@ d@21a4t#-}#3K 746lJ #$JUp5 3 M19 1!aq(!@Llrkt# 837^1?@!?@km?P i ?e=1\iOT/irvs}i>`,of :m ,M ?? S&d2? *b?r4!B oo1gr. #5!>%(EQOOOO__@i1_C_ D4և]_o_#RX Ph'X___ #R__ (YQoSo+o=osd {oEeoooooopَm* hDV!VVi&n X"c7I!Hpg bf'iMjSE t%XyG|'0UUŢŞN!O4i |UGD1 # hz0TdYYBU@R-?@c1*?@=?@(kݫ?P} t`  87?t#_)TeΦu ]ukv89:;̝<=L>&UUU&I&3 U!!`?CopyrigPt _(c) 2\]0 M c os f"!r 1a i n}. Al00U (s42e0e uvF0d(0'HS$#-## ' ?kǒ 2j$B##0U'BM3@&@F0Yk} #HA%DKb5DK3DK5DKED$!GiAZG5(|IDFX7yW'&Dŭ6!4YA yVZHD8 # =hj4>T!]]>#AU@=?@!-??@$rq?P6 t`z  ?5t# rXѮu)Nu;):O]ע09&> # " "+"+"+"+" $+"T-J[U7 ??& bA@ 2b4-#2zGzt#+@ Li68!6 ?}; 72U!:B#AA5 5`?CopyrigTt(c)20F@9M2@c.0@os*@f8B)Ar,@eAa8@i*@n. Al@ 0HsBeX@ej0@v@dx@)21"DM-,;?C G& l>]UhzAE!A#!ְ1J`#@l?@َm?NT,dKj&b&R&M/8T>f:?x6@8?@ߛ} _6q0YE*]\LThנKjfGD&Qhj iU3ULeVP۶W?@bs)h5oWKoWo;Kod}l$ro`nEBYFv?@D?%먪?@@3gZR^{|\6?vodmP}l>MBe 9 N 1iS? 1?grl#51:O"4gBa@Sq(UE^@A N?@CJ?m Y&v2rA @3ijD&}laqOz o?#WHZ'Qu{r>@\J"ۭ?@ yT?@ (U" +Web0)\ϼ(Pfodm}nv}l?V5(?q$Ix[cN#W{#iA&QeE9 MX''W0UdN! 0 /HD8 # =hj0T h]]9 #]AU@~M)M?@۵+?@)?@4_=w?P6 u` ?u#t  3zM%t3ws%.<%H._'B:> #PJU2N贁Nw[?@ʐL+&A@wbu](i+bk)%+&p%#4">9"<5!?& ?M#bbb͓z$ p&"/%T%#L1L15 w`?Co yrigTt (c)02`090M{0cy0oKss0f2r1r 1a0is0n.0 Al0 y8s2e0ey0v0d0"E1E(]I4M-%#X3 X7&l*>(UhE j1#$Ac!J`%#@J԰ί9?䟥!foAnBM(TfH?@3A,?@A') ?@:?PT% ibL6VLD5E+v;*AH 8snP%$? k?Q? \?4_!__Wr5 _! R,U3OC@bD}?@,en?P)Oy޾ ?pV?c"rA b$cZ-,u`κ\DT+V ?8<iAaeI=MX!GG'W0UxrFN!$ a FCzHD8 # =hj4>T!]]>#IAU@+&Z?@A3?@0xS?@F#tݩ?P6 t`  >B?\oEt# ŖoZu 0Nu;Y:| ;>$# JpU>##<?2& ?5bbbz@}b#Ai&'bu$ 'h 2N贁N[J2$@ LX"&"v(&m$ :;'m"*B#Bd1d15 5`?Co yrigTt (c)0W20090M0]c0os0f2R1r 1a0i0n.0 AUl0 8s2e0e0v0d0@"]1"a4MY-/p3 p72&Rl>0>Uhh= Ђ1#!m!J`#&@ENTMj.h1%,RM(!JَmO_ e@ o)4(DFtI?@:7f .6qS w_KT\T+\(Kjӷjmlhjw -`\TPQE\Up癙t_o u~!ՠXEOd<"PP'X_Pm"rA @3sjQ1lğO=GoYniAleE9 MX'w'0UUr^N!M$|A vzHD8 # =hj4>T!]]>#IAU@+&Z?@ ~*?@AxS?@mݩ?P6 t`  >B?\oEt# 6ΠZu 0Nu;Y~:#&}>0n <>  PJU2N贁Nwk?@ eL&A( 5bM(b[)h+h+$h&#[-M$#?& ?b$Z*'*B#O1O15 5`?CopyrigTt (c)02U0090M~0c|0osv0f2u1rx01a0iv0n}.0 Al0U |8s2e0e|05v0d0"H1P"L4M-/[3 [7&l>0>Uhh= m1#!S!J`#*&@[َm_?NTMjC1cK RVM(D1FʞB.• .W6q0IKTLT_cKjRlhj p= (*!]pǙ{O2Kes9T;QEGUFڈ4qX-}__TM7fTZT\ODž}_P^b52OES"rAQ 0S#Es3iAleE9 MX$Gxw'0UUrIN!4gA xvzHD8 # =hj4>T!]]>#!AU@+&Z?@r<I?@0xS?@F#tݩ?P6 t`  >B?\oEt# ap'EZu 0Nu;Y:|$=># BJpU>#͙;? & ?5bbbz@}bAA&IK&@ 2zGzt?"K@ L0"&N(bM)+TK/8Z*B<1<15 5`?CoyrigTt (c)s02009s0Mk0ci0osc0fq2b1r1aq0ic0n.s0 Al0 i8s2e0ei0v0d0b"5194M-t/H3 H7T &l>(>UhE=3Z1#E!J!@ENTMjN@1h(NَmOO e@ o)4(DFtI?@:7f .6q+ '_KD3\T+\(Kjӷjmlhjw P\DiAlesI=MXsG'W0Uzb6N!%$ 0 sFEjHD8 # =h TB ]]>T#!AU@+&Z?@F#t?@0xS?@?P6 ։t`  >B? \E7t#| u l4Ru?]>jI$>>#  ՆJpU>͙#<?& ?9bbbz@b#;AE&bQ$ID 2zGzt#@ $L4"&R(^&I$EQ)+]'I"^*aBh{.M#o1o15 9`?CoyrigTtk(wc)k2009kM0c0o%s0f21r1ua0i0n.k_ Al0 8Us2e0e0v@ d0f"h1(l4M-:?{3K {7&l>*(>UhE= `51#-I!J49An^ RRX f"B!Jp?RSlOS u~! N]8-1d<"P?@:' .6q/ YVTQRXQOnğ=i n (\wTiAaeE(9 MXLg_'0UbiN-!)$0 Lf`j_Hf:L;s O}N#N۱?F>#>,"OF H4N~?f?oD+X_" oV?GU&afhn<h4HH8"E֛%#,1x㫿J4[~L^P}}8\^X^زW5~* FuL(x29HKXw!5$M'*ȽU.XM2 )8)5h9;<@%B7XHILz)hOaS3~V)?HY G'\)XI`)qAd )sg)uk9(xm.9{1rx}tR9yd9x}{]9xV9%AUFD  h(^TYYBHUFjZ?F~??x<F BPG(?P } Xč ]B66]  TTUTTTT99d9bȅBU?? /&-& ?B#@L&_d2?r-Ƀ(\.ҕ(s.sU!&/DJ) f% G 04%eB`-r<0al,tim<0,s<0rvZ2,coR0pSuN0a3dP0sN0UrP0bn4dL0n<0wtwh0rk195^| (SG& iz ?!3E?? ? DuDGGD wp{Dtp pqwtDD@pqwqDwqWt pqpq ppw)wwwqd^wqpuwwwww`Drag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aabjZֿ~??cN׿ mF1??V↑T*J??@ ?UG DF P# h @T(PYY# [U@jZ?@~?tP} u` ?u#2>D>HX DHlHYHH HE .E9O؍>DDXXllRu'9j &",' !)2&5qq/4 F?"'4b0{[`+:#2J6Q_9$"3&9<"L1"e ^!'>_@ÿ@qh@?@`B?BgD]F0#B-u)@`-1Bu@r#CC5GAB2C9uv`u `"[ۢ b!-u`2/3Qy1y7B`?CopyrigPt0(c])020P90uMPcPosPIfRQrPQaPiPn 0AUl` XsbePePv&`d/`VPs_SBNcPm!#5>P8616a񁧙y1&3db4&5=B+h8=/3z6&3@d66 2&4#/30U!r3(]ge<^1E U#&5m Hq&5twV5t{3t{FEt{t{y {et !{|tYwmAdPaуIOB!T !:a:a&20#V2Hdada32=FB3J1125db6$q 7~C|hhE)*^Q_`CQCQ"A11=B;8ARrSqea> e1A+E4FAނX !#8dT7`XQy`]r` MPWnuPaPt%ar6aYQ` UE]0uPpU`e`tee^V5Qn],1PRd M`uU`b¯Ԧ30! PPr#5GCHhz]daD&bQe^\޿𿏫AP)aB`Ҩ75^gyϏ% S*biPaϷZeTϏLPcX&ϫk5N`ߪrBDl2`i`g̨)@ߑRPoʂѩ|(Z\@E pKD`YĖUSPaPePlP6?ЪXp9` ATP7`?>` /aZ4\nJSbI`W`QmU`u`QW&Zʒ=NwRka8<.2` Ҩ גc[mI` ad2`%c& dϐnĝs   Nx7I(鑙mDa9tV/a I͢+a Nf󨑙 R `Qa/ / 3I/ WM`C//+ tP I`? %3?E? 2Ă? 2Nv??;H"d2QCxk3` W ڧ%?NV1OCOC aOO#ޅO`M&`mRO_ӧYNp+_=_Q;OUq1y_Qi_${_Mqt!Tw*̩fo*SU@jZ?@ű܁?/v/vUpSp2u8p` ?bup`  B=ݩ`M,{t!Wp$53m-ׁ<3otm!#Qbq`׏ݥBT!).ot!xAfg>pÿ$XbUrq vU:֒rrrvvvrse"`Rozk10 eCZbb ccbr@O":tblcuP`TfnM}1o0BzW}_obW1W2\/b^@aaaaFҴ_tAaY6*P`u$`Rb`ݡ` a|.x^€ݥ5_b]&bЂF3s͵NSY`H\rV@4/eD8S^D&@SDՐUFZk,@rb4,>b}aaYV nw` %P& S.1a`NEWORKp2%H P!RURISϑQԑR!i| o2ohX|AS'0U?! 0oHD # =hj0>T h]]9  5AU@jZ?@͂T??@x?SF?P6 jt`  o?tk[>(A Vu aSuo.]&A]  *ԮJU2zGzt?@L#&A@bA#z7 5#1bO(b])j+$j&[ "*(w "?& ?AU$l/%B115 `?CopyrigTt (cu)Q02`09Q0uMI0cG0osA0IfO2@1rC0|1aO0iA0n.Q0 WAl0 G8s2Ueo0eG0v0d0"1E]4MŤ-&3 &7&l>]Uhz811U!J!u6?@+\.>djIIa? >"(EǑ I%K9E 5EU . K ;;5QIWEEE@ _KnSA?8@VBu?@DR> ?Nk"\6`ObmMM\j=am {:e 뇿P> #? D"? 5-gg?j47!B{oogrK57!ibDAbE9 MX7'0U~rN!R$a)5 5vIzHD # =hj0>T h]]9  qAU@;?@I5K?@xEL?6ѿP6 t`  bm&Qo?t@@L]WI,#u aiuoL> JU2zGzt;?@L?&A@b}#zs q#1b(b)+$&[9#H",ɺ (wH"?& ?A$ /%9#BV1V15 `?CopyrigTt (cu)02`090uM0c0os}0If2|1r01a0i}0n.0 WAl0 8s2Ue0e0v0d0"O1E]S4MŤ-9#b3 b7&l>]Uhzt1.A!JN!m.%-+0djV1ax߃S(@J-&?@ mO"> ?Nk"L[Majnha_:e P> #? BK=o? n-?j4Bs!B{__Wr5s!D8E6V 6?wj_|_ ^XE.U6Vz T6 @ d_mOoT ݬ\VߦyWx?RkrVo_bVh*g:n"'UaEjz}36>CN>?Bn]z/GvN7ViDAAbE9 MX+G'W0UPN!4)ae5 MaHD # =hj0>T h]]9  U@jpiH?@^?@$?@]F?P6 t`  !a&ao?t,F=۳=u;u auo>J2zGzwt?@ʐLAw@b#z1b](b!).+I.&[-m(?0& ?A$I0/Q%!!5 `?CopyrigTt (c)02`090M 0c 0os0f21r0@1a0i0n.0 Al[0 8s_2e30e 0vq0dS0T"!E]$M-# %'&l>]Uhz!1!J@% djc~YZ(_N9zOMGE%_EH$SwO"K ңHE ^&_8_WE_OqOHOOi&DAbPE9 MX7'0UUfb>!$a % f1jHD # Uh4>T#]]9 M5AU@jZ?@L|+?@?@({~?P6 JuM` ?u JYt )t7zEA2&L_D?. > >tJU2q K?=@MJ&A@-b9(+bG)T+T&J[#"#a?& ?AH?/`)#115 {`?CopyrigTt (c);020G09;0M30c10os+0f92*1r-0f1ai+0n.;0 Al0 18s2eY0e10v0dy0z"!4B#e-?3 7)& b 0K8>U# ]A]A "1!ъ!PzQ <%OYAJEU . K;;\%W%E@($L[.FX5Eai%?@ 6?wL;] W-\TB⤲8?W&SA?@ @ ?Nk"L'`bmMW_Ye[7 VK=F: [jr ? D"? X?ZvD?a@Boogr5;!QEؿx]SiLO MLXa~WOTZiAle59 XG"'0Ujc&N!$05 .HD # =hj0>T h]]9  IAU@K?@OgVb?@Y%?@wᳬ?PJW?>t`  ^Z?t#ə.E @x?r?/{4܂ G _Z+u u$ >  J JpU?43f<!.&P?b3bbfz@1bAe&bq$d 2zGzt.#@LT"&r(~&i$q)(+}'i"~*#81815 `?Co yrigTt (c)o02`09o0Mg0ce0os_0fm2^1r 1am0i_0n.o0 Al0 e8s2e0ee0v0d0"11E]54M-#D3 %D7.&lUh#7 V1#Ai!J# F/?B1B  VRiAAbE9 MX G{W'0U*R2N!I$a {VZUHPD  # #>h0JTpERI MU@u6?@jc{g&?@%r`5B?@m_F:Is?HNtQ`  II?t#]  _ii$!`kNu  iu%wj>M JQ T       "@&&JNU2"?H@Qs#N&A@b(bU)++&RNp}#>H1#19 ?#bbbz| R&/5R}#11`?Co0yrig\t (c)02h090M0c0os0f21r0Aa0i0n.0 Al!@ 8s%Be0e0v7@d@21a4t#-}#3 %746lJ#$JUp5 3 M19 1!q(!@nElrkRt# 8$kcD?@숒@)?@P?P"EkU |1\iOT/irvs}i>`_,of :m ,M ?? S&d2? *b?r4B!B oo1gr #5!>%(EQOOOO__@Ac1_C_ D4ևS]_o_yRX+{_,__ #R__ (YQoSo+o=osd {oEeoooooo@yUy{* hDV!VV(I X"c7I!pg bf'iMjSE t%XyG|'0UŢŞN!O4i |UGD # hz0TdYYBU@(%)?@xg^?@0߯H?@s7Uݹ?P} t` 87?t#_)TeΦu ]ukv  ̝L&UUU&I&3 U!!`?CopyrigPt _(c) 2\W09 M c os f"!r 1a i n}. Al00U (s42e0e uvF0d(0'HS$#-## 'I?k=#ǒ 2j$B##0U'BM3@&@F0Yk} #HA%DKb5DK3DK5DKED$!GiAZG5(|IDFX7yW'&Dŭ6!4YA yVZHD  # =hj4>T!]]>#AU@0߯H?@z)e??@˞9q?P6 t`z  ?5t# rXѮu)Nu;):O]ע0 &> # " "+"+"+"+" $+"T-J[U7 ??& bA@ 2b4-#2zGzt#+@ Li68!6 ?}; 72U!:B#AA5 5`?CopyrigTt(c)20F@9M2@c.0@os*@f8B)Ar,@eAa8@i*@n. Al@ 0HsBeX@ej0@v@dx@)21"DM-,;?C G& l>]UhzAE!A#!ְ1J`#@{&pz?@Uy{?NT,dKj&b&R&M/8T9K-q?x6@F?@dG0 >Nk"?YE*]\LT_hKjfGD&Qhj iU3UGe&Y_`?@/b%)h5oWKoWo;KTod}l$roҥ`nE2K?@ˌ%4G{?@ -q eZ̿R^{|\6?vodmP}l>MBe 9 N 1iS? 1?g]rl#51:O("4ga@Sq(UE^@O|ǐ[`Ρa g v2rA @3ijD&}l迲aqOz o?#WHZ'Qu=*[^N?@]%P?@O&@ c?@аM<n ?` eb0)\(Pfodm}nv}l?V5(?q$Ix[cN#W{#iA&QeE9 MX|''0UdN!0 /HD  # =hj0T h]]9 #]AU@}%?@R$,?@6#V?@c_3֡w?P6 u` ?u#t  3zM%t3ws%.<%H._'B> #PJU2N贁Nw[?@ʐL+&A@wbu](i+bk)%+&p%#4">9"<5!?& ?M#bbb͓z$ p&"/%T%#L1L15 w`?Co yrigTt (c)02`090M{0cy0oKss0f2r1r 1a0is0n.0 Al0 y8s2e0ey0v0d0"E1E(]I4M-%#X3 X7&l*>(UhE j1#$Ac!J`%#@5e$_F??!foA3nBM( V?@J-RHQ??@S!R?P| llHL6VLD5E+v;*AʙH: 8snP%$? k?Q? \?f4_!_t_Wr5_! R,U3OC@IL?@4~Kz?P)Oy޾ T!]]>#IAU@܋?@2Oa>?@#r`5B?@*ݷ?P6 t`  >B?\oEt# ŖoZu 0Nu;Y:|8>$# JpU>##<?2& ?5bbbz@b#ANi&bu$'h 2N贁N[2$@ LX"D&v(&m$ :;T'm"*B#d1d15 5`?Co yrigTt (c)020090M0c0os0f21r 1a0i0n.0 Al0 8s2e0e0v0d0"]1"a4M-/p3 p72&l>0>Uhh= 1#!eJ`#&@NTM\jh1B,RBM(!JoUy{O_ e@ So4(DF^Tw?@]֝ä ?Nk"?w_KT\T+\(Kj?ӷjmlhj -`\TPQE\Uu?i,St_o u~!XEO9= T?@L;uQ_Pm"rA @3sjQ1lğ= GoYniAlePE9 MX'w'0UrJ^N!M$|A vzHD  # =hj4>T!]]>#IAU@܋?@j?@2r`5B?@^ݷ?P6 t`  >B?\oEt# 6ΠZu 0Nu;Y~:#&}>0m8>  PJU2N贁Nwk?@ eL&A( 5bM(b[)h+h+$h&#[-M$#?& ?b$Z*'*B#O1O15 5`?CopyrigTt (c)02U0090M~0c|0osv0f2u1rx01a0iv0n}.0 Al0U |8s2e0e|05v0d0"H1P"L4M-/[3 [7&l>0>Uhh= m1#!S!J`#*&@PUy{_?NTMjC1gc RVMʣ(D#F ![?@"$. ?Nk"?+IKTLTcKjRlhj p= (*!)i,SO2Kes9T;QEGUFw6qX}__TM7fTZT\Dž}I_P^52O,ES"rA 0S# Es3iAlePE9 MX$Gxw'0UrJIN!4gA xvzHD  # =hj4>T!]]>#!AU@܋?@c_v?@#r`5B?@*ݷ?P6 t`  >B?\oEt# ap'EZu 0Nu;Y:|$># BJpU>#͙;? & ?5bbbz@}bAA& K&@ 2zGzt?"K@ L0"&N(bM)+TK/8Z*B<1<15 5`?CoyrigTt (c)s02009s0Mk0ci0osc0fq2b1r1aq0ic0n.s0 Al0 i8s2e0ei0v0d0b"5194M-t/H3 H7T &l>(>UhE=3Z1#E!J!@ENTMjN@1h(NoUy{OO e@ o)4(DF^Tw?@]֝ ?Nk_"?'_KD3\T+\(Kjjmlhj P\DiAlesI(=MXsG_'0Uzb6N-!%$0 sFEjHD  # =hj8>T! ]]>#!AU@܋?@*?@#r`5BW?@w?P6 t`  >B? \Et#տ|u l4RQu?]>I$>I# JpU>͙#<?& ?9bbbz@b#AE&bQ$$D 2zG[zt#@ L4"&R(^&I$Q)+]'I"^*Bh{.M#To1o15 9`?CoyrigTtk(c)k2009kM0c0os0f21r1a0i0n.k Al0 8s2e0e0v@d0f"h1l4M-:?{3 %{7&l>(>UhE= `51#I!J49fAn^ R)X f"B!Jui,SG?RSlOS u~!N]8-19= T?@L;uQ ?Nk"?YVTQRXQOnğ/=i n (\ wTiAaePE9 MXLg'0UbZiN!)$0 Lf`jUGD # hz4TYYT#BU@5?@`0 ?@ t2пP} mu` o?u#`/8d<L1<`9tU(.88LL`Zttt n۶m۶tgf!m-2!tUH~#a#[0U"?@W& a#!!o*"`?CopyrigPt (c)020090M0c oKs f2!r 31a0i n.0 AlN0 (sR2e&0e vd0dF0O"!P$X#B-a## '(#^=a$&X#466 2X$e(^%(5 a#dHoJX%DK|%D@tK5D8Gg&AUc_'TAAX"U(@SaX%2X"ihalI&X7lG'җ$6!40 lFZHD # =hj0>T h]]9 U@oC(?@mWں?@?@Vw?P6 u` ?ut  zU%t3b~}U%.9%UHS> " "" :"" N" b"w"w"w"w"w",w"&/8$w"D,w"PX,w"l#JU 'N((?6 ?A\bbRbz@A0ubbub9)b(8bI4e32zGz?088r@LF:Z2P?b96<2: e3AA5 w`?CopyrigTt (c)@2`09@M@c@o%s@fBAr@Qua@i@n.@_ Al3P HUs7Re Pe@vIP d+P2AE]DM-e3CK G6l>]4Uh8QQ9 !$]b!N!:"AZQ1J`e3@%?@~霤0df'#'/^&b^&M8Xd,O?@PR?@?cߡj ZW0?ri5kHiN׶_\(Úw ckfH AjG|olAGeEA@:?@wUѳ?@wN?P-DT! ]ujye6|ñlL|*%k UUB H 7 C? J? _7ͫ?kwr351:kw41b 8eXojc@{h`荞ۚӴh2rhA%`3`8z?ZJJ=aOy?5qexzaeyw?@J?@yZI?@G& hbt=lkKv>tZa7L|W顟tpҷ!iY#?@#?@sڎ`{R2zo |r}q#z_Ţ6|;|L|8dt~aay W(Ci?@%91?@;8.n?Pris%r{i"6|v}YaL|q|zKΏ#e!yEy?@ ,&G>@"_yy޼X/JCl;~e*6|<8L|wK|༬g >P`r#'9Ze%aiHJo?@U ?@qU}?@;E | /BYlx6|3@*aqOy5#*:!iZO?@C?@cQ`p`~ |IJ1Mlw^6|G#U_L|-hPbqN!yU_s8?@#`Ӳol?U6Xl?RiAeu9 MuXXWt'0UjDŰ^!40uE  HD: # =h4>T]]9 !AU@Fr+?@;?@Ě9?@UGݳ?P6 mu` o?u t  ܍`)t7Sׅ!)25Ia(L޿f$A F  EJU 'N(( ? & ?A`bbRbz@AA ybbub>)-b(D#GbKy!>#c#y D#2zGzt?088r@Ls"&D*8"PX/bl$d"x!(^('d"*S1S15 {`?CopyrigTt (c)020090M0c0oKsz0f2y1r|01a0iz0n.0 Al0 8s2e0e0v0d0"L1@P4M@ D-(O_3 _7 &l  Uh#7 q1+Ad!J VD, |-1R0SVbR( b 0AleE9 MXPG'0U$bZuN!%$0b5 VZHD "#=h0>T@++]]9 ِU@XΞ(?@?@/?@?P6 u` 7?u#t  ʿ%t3{%.9*%HS@7> ]A"" D:" N" b"b"""""""/$"&/8$"D,"X,@"l/~$"$J}tU2q0?=@L6Aw@)b8Wb9;6R[3G 2D?IF !?A?I3AA5 w`?CopyrigTt (c)@2`09@M@c@oKs@fBAr@Qa0i@n.@ Al!P Hs%Re@e@v7PdPBAE(]DM-3C GIFlT>oAT>U+<oAoA]!:" _$ }$AT#/ARJ`3@w{?@Vk@E$|&b|&M HA@nY?@C<ϖ?@:[?P-DT! ]W0alxk>8 <_ 敶`TWbXB p = ? >)PK? ?r#51:]ow41b(H1|_s8?@#`ӲalaDw5Xwl5dEJdZO?@C?@m-p?@w  [edir[wlWV(|uY:l>|j/v w$117JGJo?@U ?@tf+?@?ktzDzXwl(|}x|'=}A[tJ%?@~ל?@~?@.RV~7bߌ:|wla_=v}V痒_Fts4$imƉEy?@Q`/&G>@7;[8|{oodEJCwlv(|5t0\>|9?jՉt0GutWt1Cw3tw#e!i W(?@i?@ :=-?@|`̍f?PodiT rwlAD:(|F|v>| 8O/'ݦ[dvπw&30#e:!FY#?@>#?@r1?@4rzXw\.wl[2jq(|kj祐m>|VOdvs|N!F~oCO !L?@iOS#~Lf%>~zi4ptc+y$>|A ߟqayy-詺alB{TJ7b!iWyw?@f?@$1F?@ݏOD bϑANoBrQN 3*z׳]SqAy -;b>Sgi8TQTQB(YAeeXXyW _'0UiŞ^-!dD0^ 4UHLuD" # R>h 0JTlaHaMCqMU@?NB?@S[s~?@$O?@WZ}8Ÿ?P >uA` ?u4 >t  aU֠y)t7Fϯ1)2_G\Lȟ9flMlA  Z   J>U2zGzt?088r@9 3#>C&A@ybbRbPzw u#-b(bJ)+&N=#!!{`?CopyrigXt (c)02d090M0c.0os0f21r0J1a0i0n.0 Ale0 8si2e=0ej0v{0d]0" !]$4#- 'N((#?6 ?Me>aۀw R4` A#0c{0n01lI23zjw Mw bbbz5Iu#m{EZA<O&Ob5ObNbbOO((/%BG=## '6,lo>R4"lTJ$JUl 5I 1qYƕ!1(R!dӘ`?@S?il0"NX N i*ƙ?@`1Ww?@ټ?P^ÿ D* @[Q ʸZZ\!PX@: \Ŀ gsY @ [,˿? @?t@@Boogr5w!(NU^_p____Xj?R&[T2\o~e!ϏW_"?@\L-ed5?PO6h  U6bMmpN_W\4VI~zl{yfdDԻ~g,+?Ȏ !ood{ &'iMf5 4%uXW_'0U&[J!4e% 7KUHLuD" # I>h(J TEI 3AU@jZ?@({~+?P >uA` ?u#J* )8* 9LG 9`G 9tG 9G 9G9G9G!9GA )@G#"G.$*G8"B"V"j"~""""""l" ,>t   2t2z%2pbEC3O2J>U2zGz?@9 k3>{6A@wb8b9e;62 !4Nu3Bl322F 2M2bE9^K72S!υ`T9`U ?@ `kd\|SiDlؓ<N oldџtGlI?@~?@(t RV~'\Wc-N3pMq$$z$ơ𑯣@&'/6&G>@9 ;?@{gPDlCɚ>#(䞌!gP5|Tf- $` iR9$a/|`;fF`kDlӀ 7A?,s-mqBNf)ϭB*$`#?@ yC$`4rzY|˱AM^)Cm#ŗƦ}?zƀ9b"fjO?@m0?kOS3\?bUAfqGi?SbRS۾Cf?il߯aapeX/G|.lRxX U n@42PrŮ 8b:oLn?Ce(jY榄el`ƀEqQAeRp _og}u?@9 mO".l9=8/ ee )l.%-+mlփ?@U->V.lɽ7yHvOfўA=$}$ʊ x @4S>a U}62D 'e !aS#Ł&ʊi$!Tl51A1X/'0U;"2F1&E01 *_H;s eoY޴OXF #C4KOF H ~?fToD+g5sV?GGɁfH ߝx @ 9  8 F֛ - õ5$   X _6x? N{ } ( ( % -K #!UFD  h(^TYYB UFjZ?F~??x<F BPG(?P } X ]B66]  TTUTTTT96ȴHBU?Q?G ?B@L&ɯd2?6-G(?\.Y(7. sU!}&/)J'( G 0]B`)proxy,se 0v2,c 0mput4di0t 0ib*4d0n0t;w 0rk! e^| (SG& i?!3E?? ?    wp   p qw qw]qwqpqwwqqpvppww&www]qawqpwoww6zwxvDrag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aabjZֿ~??cN׿ mF1??S{V↑T*J?@ ?UG DF P# h @T(PYY# [U@jZ?@~?tP} u` ?u#2>D>HX DHlHYHH HE .E9O؍>DDXXllRu'9j &",'US2&5/4 ?"'4Wb0{['`:[1#26" !^Q_9$"3&9"/L6 2&!'ݯ>o@ÿ@qx@?@-pB?wDmF03Bu9@`҈-1Bu@r#CC 5(GAB2Cm9u`u `"[ b!u`/3Qy1y7B`?CopyrigPt0(c)020P90MPc.PosPfRQrPaaPiPn 0Al ` Xs$bePePv6`d/`VPs_SBNcPm!#5P86PG`y1&3db4&5MBh8=/3z6&3d66 Ԁ2&4#/30U1r3]ge<^AE U#&5m Hq&5twV5t{3t{VEt{t{y {et !{|tYwmAdaI_BT.1JaJa&2tataV21@32MVB3Z112I5tb6 7C|hhE) *”nQo`Г!SQSQA11BMB;1brcqe a> !b1AEDFQ.1#8dTG`XQ`])rw` M`nuP%aPt5arFaiQ` EqiPm6`nPvdnV5Q~]1PRd ]`ue`bү30 ! P`r3EWSHx]C(D6bQα eϿn\ϢAP9aB#`75^wωZ% S:bi` #ajeTZLPch@6߫k5^p߂BTlB`i`g̨9@ߡRPoڂ|8Z\@ 0p([D`ĦSPaPe`l`FOX.I` $TP*G`ON`?aj͒soSb Y`qP(xP⨠ڒMNwbk'aL.2`} sYkIpadB`5c6 d  nĭs  ^x5GmTat f?a Iݢ;a ^f󸑩 R pa/a //1G/UM`C/(/+Qme`utP Y`? 5^D.?@?} 0B? B^v??;EHd2QC'i3` W@ڥ%O^V/O0AOC~ aOO#O/`M6`mbO_i^p)_;_O;!O) eo1y]QHg_y_]qt1dw:fo(SU@jZ?@~??v?vepcpBuHp` ?bup`Ta],t1(gp"51m-< Corm1 QrHqBT1.mt1xAdg>pÿސc$bepq verrrvvvrs^c"`Roxi1@ e2Sjbb aabr >@"JtbauP`hoe{1.@zU}_ rU1U2l-bŕnaaaaVҴoAaY6(P`u4`r}`}`azxn4~5_r&bВF3sNSYT}lrV@z-eB8QnBLQBӐSV֜Z,@rBD*<`}(aaY Vn` %P&@!S>1a`NEWORKJn2H P߰}!R尪RI߰S͑QґBio0ohhAQ'0Uƛ?!10oHD # =hj0>T h]]9  5AU@jZ?@͂T??@x?SF?P6 jt`  o?tk[>(A Vu aSuo.]&A]  *ԮJU2zGzt?@L#&A@bA#z7 5#1bO(b])j+$j&[ "*(w "?& ?AU$l/%B115 `?CopyrigTt (cu)Q02`09Q0uMI0cG0osA0IfO2@1rC0|1aO0iA0n.Q0 WAl0 G8s2Ueo0eG0v0d0"1E]4MŤ-&3 &7&l>]Uhz811U!J!u6?@+\.>djIIa? >"(EǑ I%K9E 5EU . K ;;5QIWEEE@ _KnSA?8@VBu?@DR> ?Nk"\6`ObmMM\j=am {:e 뇿P> #? D"? 5-gg?j47!B{oogrK57!ibDAbE9 MX7'0U~rN!R$a)5 5vIzHD # =hj0>T h]]9  qAU@;?@I5K?@xEL?6ѿP6 t`  bm&Qo?t@@L]WI,#u aiuoL> JU2zGzt;?@L?&A@b}#zs q#1b(b)+$&[9#H",ɺ (wH"?& ?A$ /%9#BV1V15 `?CopyrigTt (cu)02`090uM0c0os}0If2|1r01a0i}0n.0 WAl0 8s2Ue0e0v0d0"O1E]S4MŤ-9#b3 b7&l>]Uhzt1.A!JN!m.%-+0djV1ax߃S(@J-&?@ mO"> ?Nk"L[Majnha_:e P> #? BK=o? n-?j4Bs!B{__Wr5s!D8E6V 6?wj_|_ ^XE.U6Vz T6 @ d_mOoT ݬ\VߦyWx?RkrVo_bVh*g:n"'UaEjz}36>CN>?Bn]z/GvN7ViDAAbE9 MX+G'W0UPN!4)ae5 MaHD # =hj0>T h]]9  U@jpiH?@^?@$?@]F?P6 t`  !a&ao?t,F=۳=u;u auo>J2zGzwt?@ʐLAw@b#z1b](b!).+I.&[-m(?0& ?A$I0/Q%!!5 `?CopyrigTt (c)02`090M 0c 0os0f21r0@1a0i0n.0 Al[0 8s_2e30e 0vq0dS0T"!E]$M-# %'&l>]Uhz!1!J@% djc~YZ(_N9zOMGE%_EH$SwO"K ңHE ^&_8_WE_OqOHOOi&DAbPE9 MX7'0UUfb>!$a % f1jHD # Uh4>T#]]9 M5AU@jZ?@L|+?@?@({~?P6 JuM` ?u JYt )t7zEA2&L_D?. > >tJU2q K?=@MJ&A@-b9(+bG)T+T&J[#"#a?& ?AH?/`)#115 {`?CopyrigTt (c);020G09;0M30c10os+0f92*1r-0f1ai+0n.;0 Al0 18s2eY0e10v0dy0z"!4B#e-?3 7)& b 0K8>U# ]A]A "1!ъ!PzQ <%OYAJEU . K;;\%W%E@($L[.FX5Eai%?@ 6?wL;] W-\TB⤲8?W&SA?@ @ ?Nk"L'`bmMW_Ye[7 VK=F: [jr ? D"? X?ZvD?a@Boogr5;!QEؿx]SiLO MLXa~WOTZiAle59 XG"'0Ujc&N!$05 .HD # =hj0>T h]]9  IAU@K?@OgVb?@Y%?@wᳬ?PJW?>t`  ^Z?t#ə.E @x?r?/{4܂ G _Z+u u$ >  J JpU?43f<!.&P?b3bbfz@1bAe&bq$d 2zGzt.#@LT"&r(~&i$q)(+}'i"~*#81815 `?Co yrigTt (c)o02`09o0Mg0ce0os_0fm2^1r 1am0i_0n.o0 Al0 e8s2e0ee0v0d0"11E]54M-#D3 %D7.&lUh#7 V1#Ai!J# F/?B1B  VRiAAbE9 MX G{W'0U*R2N!I$a {VZUHPD  # #>h0JTpERI MU@u6?@jc{g&?@%r`5B?@m_F:Is?HNtQ`  II?t#]  _ii$!`kNu  iu%wj>M JQ T       "@&&JNU2"?H@Qs#N&A@b(bU)++&RNp}#>H1#19 ?#bbbz| R&/5R}#11`?Co0yrig\t (c)02h090M0c0os0f21r0Aa0i0n.0 Al!@ 8s%Be0e0v7@d@21a4t#-}#3 %746lJ#$JUp5 3 M19 1!q(!@nElrkRt# 8$kcD?@숒@)?@P?P"EkU |1\iOT/irvs}i>`_,of :m ,M ?? S&d2? *b?r4B!B oo1gr #5!>%(EQOOOO__@Ac1_C_ D4ևS]_o_yRX+{_,__ #R__ (YQoSo+o=osd {oEeoooooo@yUy{* hDV!VV(I X"c7I!pg bf'iMjSE t%XyG|'0UŢŞN!O4i |UGD # hz0TdYYBU@(%)?@xg^?@0߯H?@s7Uݹ?P} t` 87?t#_)TeΦu ]ukv  ̝L&UUU&I&3 U!!`?CopyrigPt _(c) 2\W09 M c os f"!r 1a i n}. Al00U (s42e0e uvF0d(0'HS$#-## 'I?k=#ǒ 2j$B##0U'BM3@&@F0Yk} #HA%DKb5DK3DK5DKED$!GiAZG5(|IDFX7yW'&Dŭ6!4YA yVZHD  # =hj4>T!]]>#AU@0߯H?@z)e??@˞9q?P6 t`z  ?5t# rXѮu)Nu;):O]ע0 &> # " "+"+"+"+" $+"T-J[U7 ??& bA@ 2b4-#2zGzt#+@ Li68!6 ?}; 72U!:B#AA5 5`?CopyrigTt(c)20F@9M2@c.0@os*@f8B)Ar,@eAa8@i*@n. Al@ 0HsBeX@ej0@v@dx@)21"DM-,;?C G& l>]UhzAE!A#!ְ1J`#@{&pz?@Uy{?NT,dKj&b&R&M/8T9K-q?x6@F?@dG0 >Nk"?YE*]\LT_hKjfGD&Qhj iU3UGe&Y_`?@/b%)h5oWKoWo;KTod}l$roҥ`nE2K?@ˌ%4G{?@ -q eZ̿R^{|\6?vodmP}l>MBe 9 N 1iS? 1?g]rl#51:O("4ga@Sq(UE^@O|ǐ[`Ρa g v2rA @3ijD&}l迲aqOz o?#WHZ'Qu=*[^N?@]%P?@O&@ c?@аM<n ?` eb0)\(Pfodm}nv}l?V5(?q$Ix[cN#W{#iA&QeE9 MX|''0UdN!0 /HD  # =hj0T h]]9 #]AU@}%?@R$,?@6#V?@c_3֡w?P6 u` ?u#t  3zM%t3ws%.<%H._'B> #PJU2N贁Nw[?@ʐL+&A@wbu](i+bk)%+&p%#4">9"<5!?& ?M#bbb͓z$ p&"/%T%#L1L15 w`?Co yrigTt (c)02`090M{0cy0oKss0f2r1r 1a0is0n.0 Al0 y8s2e0ey0v0d0"E1E(]I4M-%#X3 X7&l*>(UhE j1#$Ac!J`%#@5e$_F??!foA3nBM( V?@J-RHQ??@S!R?P| llHL6VLD5E+v;*AʙH: 8snP%$? k?Q? \?f4_!_t_Wr5_! R,U3OC@IL?@4~Kz?P)Oy޾ T!]]>#IAU@܋?@2Oa>?@#r`5B?@*ݷ?P6 t`  >B?\oEt# ŖoZu 0Nu;Y:|8>$# JpU>##<?2& ?5bbbz@b#ANi&bu$'h 2N贁N[2$@ LX"D&v(&m$ :;T'm"*B#d1d15 5`?Co yrigTt (c)020090M0c0os0f21r 1a0i0n.0 Al0 8s2e0e0v0d0"]1"a4M-/p3 p72&l>0>Uhh= 1#!eJ`#&@NTM\jh1B,RBM(!JoUy{O_ e@ So4(DF^Tw?@]֝ä ?Nk"?w_KT\T+\(Kj?ӷjmlhj -`\TPQE\Uu?i,St_o u~!XEO9= T?@L;uQ_Pm"rA @3sjQ1lğ= GoYniAlePE9 MX'w'0UrJ^N!M$|A vzHD  # =hj4>T!]]>#IAU@܋?@j?@2r`5B?@^ݷ?P6 t`  >B?\oEt# 6ΠZu 0Nu;Y~:#&}>0m8>  PJU2N贁Nwk?@ eL&A( 5bM(b[)h+h+$h&#[-M$#?& ?b$Z*'*B#O1O15 5`?CopyrigTt (c)02U0090M~0c|0osv0f2u1rx01a0iv0n}.0 Al0U |8s2e0e|05v0d0"H1P"L4M-/[3 [7&l>0>Uhh= m1#!S!J`#*&@PUy{_?NTMjC1gc RVMʣ(D#F ![?@"$. ?Nk"?+IKTLTcKjRlhj p= (*!)i,SO2Kes9T;QEGUFw6qX}__TM7fTZT\Dž}I_P^52O,ES"rA 0S# Es3iAlePE9 MX$Gxw'0UrJIN!4gA xvzHD  # =hj4>T!]]>#!AU@܋?@c_v?@#r`5B?@*ݷ?P6 t`  >B?\oEt# ap'EZu 0Nu;Y:|$># BJpU>#͙;? & ?5bbbz@}bAA& K&@ 2zGzt?"K@ L0"&N(bM)+TK/8Z*B<1<15 5`?CoyrigTt (c)s02009s0Mk0ci0osc0fq2b1r1aq0ic0n.s0 Al0 i8s2e0ei0v0d0b"5194M-t/H3 H7T &l>(>UhE=3Z1#E!J!@ENTMjN@1h(NoUy{OO e@ o)4(DF^Tw?@]֝ ?Nk_"?'_KD3\T+\(Kjjmlhj P\DiAlesI(=MXsG_'0Uzb6N-!%$0 sFEjHD  # =hj8>T! ]]>#!AU@܋?@*?@#r`5BW?@w?P6 t`  >B? \Et#տ|u l4RQu?]>I$>I# JpU>͙#<?& ?9bbbz@b#AE&bQ$$D 2zG[zt#@ L4"&R(^&I$Q)+]'I"^*Bh{.M#To1o15 9`?CoyrigTtk(c)k2009kM0c0os0f21r1a0i0n.k Al0 8s2e0e0v@d0f"h1l4M-:?{3 %{7&l>(>UhE= `51#I!J49fAn^ R)X f"B!Jui,SG?RSlOS u~!N]8-19= T?@L;uQ ?Nk"?YVTQRXQOnğ/=i n (\ wTiAaePE9 MXLg'0UbZiN!)$0 Lf`jUGD # hz4TYYT#BqU@I7@(?@M&d2?@ t2?@`0 ֺ?P} u` ?u#L+/8<L9`( .88L``t $Itmj gf! !UC~#9#0Up"?҃@/&T9#ة!!G*`?CopyrigPt (c) W20 9 M ]c os f"R!r 1a i n. AUl&0 (s*2e e v<0d0'"!$0#B-9## E'w#^=9$&0#466 20$e#$^ #30%T% 9#HLA0%XD`cKT%XD8cGg&AdaO^'TcAcA0"J-(3Ca0%g2AATBK6S`6SihaX5 &X~7kW'o$ţ6!40 kVZUHLuD" # I>h ,J T  M#EMU@jZ?F"??@`^?P m>uA` o?u#VpMJp -<pA -PK#TdK2(.K<FZnf>t  t3|>b!F\.岿uKJ>U2zGz?@9 ?#>O&Aw@b(Wb)+&r" !$NI#"@#W"6 "\M"b)2;'r",r"/I#11G#`?CopyrigXt (c)020090M0c0os0f21r01a0i0n.0 Al@ 8sBe0e0v-@d@7"BMI#3 76@"!"t1"=ElJ4Ul8@AAC 9 =Q A(#UA!=(^!rCa?@ئ3 (0 # ?˕8# ; MkKUN>UV\u5m[} 0҂X3^E] 0__  yXE>UU . W[ ?;;l\gU>U@}bAo\nZM?NXAjai%?@;D%V\^ W-l\jp҂T9?T8?@)#?@@SA?@9ؾ@ ?Nk"?YY5`bmMl\K,q_ܱy[_7 GH5'  ΀X:YC}u?@H[V\u۶m۶l\&Dn۹XQ`C"4` NQ:Y%u?^&W[DqodUQ:YxLPp"2V\$I$Ik]T@!X Q LPݟd(: ?j=YU>UsG_YY f_x^AA(G!EM_&_8[}u?@R6V\9=8uG5xQHuQu?@mlփ?@t;/> ~t~Y|Of|͸ 4zTB#]]9 TU@ t2?@`0 ??@?Pn6 u{` ?u th  )t72(LMm>EJ2wq?=@LA@yb #z.-b( (%2+2&>@f'?& ?A`bbb)$bf/ !4/U%T115 {`?CopyrigTt:(c):20Y09:ME0cC0oKs=0fK2<1r?0x1aK0i=0n.: Al0 C8s2ek0eC0v0d0X"1P4MB-?"3 "7&l> 8>U# RARA9 ]41 #p U%J`@`C C?s9ӑ] ,VM^(s"2ǟO?Y!c1ƸFU5V^dln__ iQsX5VUF__ _ ROJ)XE2O,E"rA 0"|c3JQVU-?@k}A_Є\a#BFUVU~t?kb\+g!^(`d E0Ale59 MXGB'W0Ur8N!<+0%5 zvzUHxuD4" # J#UU >ha0JTaaMU@ t2?@* 7?@H"G?P tQ`  7?,t#6Z hӀ6C2wqGCLvnCu3;uM;2zGzt?>@QA@Ebbbz+ )#abC(+bQ)^+^&)y#?&)?I"O+^+N,l'R,1,1G`?Co}p rig}t:(c):]209:M[0]cY0osS0fa2RR1rU01aa0iS0n.: AUl0 Y8s2e0eY0v0d0@"%1Y)4-83 87$&lUмJ1$ KAp +!~ F F FFFFFFFFF"`!Q[C(CUH?@ &[\uP^CyyTQX3CUjdO[_TtY/`T7Q5____TCUQegG idpogZ4EQ$EGy#3 oEMF#r 7f;_\tTQZsR om_ hlРpv_QeT_2z|ro.FQpt8Auo,>PC^Awz^ @f xY 0BTfx+ 6yI8_mBԐYˏRdٮy %D+x]&8J\n+ }C2q}[eu៿x **xa@Rdv+ zܿȯگ ?{kk 1/ g_xeZl~ƺfZ?@&KWYܿvl")Q )yxitϘϪϼƹCG?@sw8⼕5Pvl'<(fT( ,ӓxmߠ߲ƹ"?@7.&ὡ }'i,D @?.v0B/ Ixq7L+&rZS^e ap\1r;K[J\ vfx N 8cBym <ÊvK%d!dv +@x$6k& LJ (4 e/ P}/@M x //)/;/M/ +'λ fe/?ioH?d/jiAlDlBATKA@egI^%L8X<ӈ9G'0mUB? <!d0M 9FMJHD: # =h4>TB#]]9 TU@ t2?@`0 ??@?Pn6 u{` ?u th  )t72(L>REJt2q?R=@LA@-bbJ )+&[Z#?m& ?A/$)񩣑!!5 {`?Copy_rigTt:(c):2U0 09:M c os f"!r *1ai n}.: AlE0U (sI2e0e 5v[0d=0>"!$MB(-?#K 'm&l>8>U# AA9 ]p! #p +;%J`@`CD Cs9ӑY] FMD(s"2O?I!c1ƸE%^d _2_ iAsLXw5UF_w_O ?RJ)LXE2OE"rA l0".cm3AU-?@[}A_6\G#BEU~tS?[~b6\WD(3`d Alew59 M*X7^B_'0Uur>!<0% ,v@z_Hp;s 7E HHlrFv#FOPOF ~?f8/ D+![?Gy|f,8,X   F֛p5x hYf$] (6xHA+NA.D@19،6p:Lu?A[4(T9ewy1 w%Lڛ; S9 ![+Qwzϙԭ9.H{p[w1 o1 _8|l|+g sw}g u (} Z&x E2 &ȝ V ~ w |4 <  ~X&X 0| 0@% 5|?0nC'?0=7(-7(R@D*wHRH֝(& KI_hiS''lfw8 rGwQw֋ wx?qDS / U U UUGRF U!"#$%&'5)*+,-./01J23567:; ?vn@`?0 @(g( "`*^p?(4w #5GYk}D C:\Progam FilesMcsfUtOfe 14vsocne:\$03J\ANROT_.VSbw}"4FXj| D C:\Progam FilesMcsftOfe\ 14vUsocnue:\$03J\OPS]_.VXSy"4FXj|D C:\Progam FilesMcsftOfe\ 14vUsocnue:\$03J\DTLNER_.7VSdy"4FXj|D C:\Progam FilesMcsftOfe\ 14vUsocnue:\$03JERIH_.VSdy"4FXj|D C:\Progam FilesMcsftOfe\ 14vUsocnue:\$03J\NETL C_.7VSdy"4FXj|D C:\Progam FilesMcsftOfe\ 14vUsocnue:\$03J\NETSY_.VVSy"4FX j| C:\Progam FileUsMcsWftOfe 14vsocne:\$03J\SERVR_.VSPy}"4FXj|D C:\Progam FilesMcsft*Ofe W14vsUocne:\$03J\}RKSVP_.XSV]  2DVhz،D disk_d(,O *IUC!@J/@=/GtK/G(L=/d sd M}e!AN _#/OA/*# `8?vn@`0 @PFDyB ? uhzn,T UFY,b'@F"H$ @Fx?\?@"H$ @E"ov?0"X ^?ڣ,a0o/7/證lU Ufca?oI^dbpvha 5 Ӡd@ BP(?3O_: 95B: ీq9Q[/{^ayŴ嵱! B}E$gl6 @@KRT*@@i4F?@ `4"mCtE??IaI6c,q'B"qrŲq%'+򁱤4D9=I) 6XGa%\#2qP?h_V#?ߓ?} MྀA7>1N?ESEFxYMl@lo@d?K@o bVF{^?A|cvQ?E !ſ"λ ݾ0̝ݾմH່%մXmu@ DF'r}VVT!!"ACI1ty2t3tQuur5t6$t"7t?BCtA8tѹ21Y:(BA<1R!>>2OESA WbFe3J(B )*)Q)Q‰p4q<(._ET."(!wp_>DWg4D?A܌[y>Rq!wp!AA"+ɔr@QLaLar- "(SCTa%DQr0}P`%?1`TC+4qC90@'qwp_$C&ѩe3s͵NSYh&e>1wp8@˥W۫8Q۫|r'X!U,@R'˥%sZ!8J"j?E TmEvE?1ijkwxyz{|} ~2d"qaaAnT$$a$I1FQaR:1TD(LaaHaWaWmx ePAπp;i e:v(WaІ1eWDEk!Uڈ%S\:X"FNtBv/31FNOVA C:MUTR@ -n?`c_yπe*(Px?`npQRw_Vhul(PUhtπs/}p{m rrogpswrd(PsqrcRe"qsukiot(P8*p4@0` r"1Lo^jE4qeed#"[P'0UO[!2HTA2@i *%8!@% &qT 2DqL[p0z `}a<L^hb :/AgbX/j/////7AW/.w/q$~"'Ie{eseOV?2?:9OZC[A"esP4b?73B??OF,O>OPM4+|O?OOOOOPI{bˁ 7e`bq__o PS?WgfsUP$gsoaMt&qaTÁ]m~%s5v]1sv}CQ|_vs1RaAh@@gl6 @@"H$ @ggbsw0αsia.bu }u`?svvFu |1o ZHW5xg~0sU7Is;U7sRahne8 P z@ BP/(?Y8kH2oM 6GXadUޓ;1t[v$u zрͱ_3v{@;$@@qͪpL&d2?@~?V?zrSbrbXCeDtEXEEf@fk̿EOdDåfÿ@UI[? ҦwԿ{ؖ,bGu;3*s{c+ {g%V/re)OIXy" N1z* d&s8ԅaC8ԈC 8aCN58@8@ފ8ԀC۱80qC87QCH"8"@38#@"8RCp܈ROX "T99Qs & 1{gg!n 9((OZҿR?хa&7Qht1cvNva.>nonfo!oW XW ??5_N7a,ҏyAj\~?@_fo+{csأuݲBaut?\.fooDHء>DVz/->3/E//i/{///V?Կ8ŕg|;rO1a?4-0j{j|W\AU{%_O@_yf[_BO=ueng???1nUge.GC .iBndwQd7et;P~o՘n?&1he5Vo8_Z?uOOOOOOOO _ʛ߹0ȠnIw2PDI ~;PMԿ@MP V_88Ňm8#___~{W|?U%` oBnď:o0kemmPFimo Ɖ`@R8o{xj89?@F춠o?@Tƚ"iW4xW'iW{?X9vˏf 6QBneoOcj`wJ\ܟ );M_qTfB`mHi~j%/s /I 2` I[mwPaX?@f)?@MbX!C/ /2/D/V/h/z/8?/m!FO !N/?!?OO"^?p?1 ???????O@ w4HDkuL`0IhcBOTOfOxOOOOO~_O!__al;_%qp_MM______ oo1oCo@b`;O1Ooooooooo#5Gl-_}Q_c_E!'9K]o@i@ӏ -?cuϟៅ""*XASew@Cz٨" 2DVhz8ϞۿԿ@%+*Z#Vhϖϑϣϵ@h"o]ooo;M_q߃ߕߧ߹w&k7 G$1&6 1U@X,@@0 @@jZ?F~+?֬y#դ= ~'"\ޯ2qC ?B/T&?\.?pA?M;"!' & E@Uiп@l?oĭ@4;R36yt `ei1< }44 M3U.7417%41NP4;D 4+>4,>F;U->[4*>18/:m8 _ITAA(A(AP2nT 3${T4T5T[6T7T1C$TB(T2)TAA 8T 9T": d~"!H$11I>>dEĢ9qF`rdGFQp@_%/]\3T11ACP?o'g51l!RoCP%!%!jAjA%UPU UAAHAA[tTa!Ru; `%uLo1j`s2q%QCP_F3s͵NSYuarP@CPu @^u 8R`;[",@c2i2o6q2 Bn__\@mLLQ[u`=jAAA1A(AqQQQa a!1LAaAA1EPIbHAcaPWw0b sw0rvnբPk% ߤP ߤ BB8~m+ )*B QN_OVApAuI0-pecpP_uנlhUtp `/IP$Uo٠aװa`iװUhs:P7P3IPԥiӰeӠ/Plud˴aT,wd@i=rٰe0iT  Pd1 /'0U +e!$ #8ryQ'T$c1VabϠz0<PpaFXjTE &q *ºi+A`i2o2kd5GB)8#q$+vF?<=X'2/" #1AQ  !k0r U@({q-]b{uk!321u, <Wcu7Ѡ([6)[5͂T?$xSFح%#N31\?n7,>Pb^??A/X/*/?P?b?t???_ _:??zqOO/OAOSOeOwOjpiH?F^?@$?F]Fe̜eOOOO __0_B_T_f_x__>__oo"opςʭ q[ooL|+&&oojX΄o&8`\n ŸB4oFoXoaK?FOgVbY%?Fwᳬ?PJWm͏o+=Ojs͟ M= ہ"4FXj|uAjc{g&?@%r`5B?FmF:Iŵۯ#5GYk}źGK1G> : H{ JA )tU@(%)@xg^?@0߯H?Fs_7Uʋ幔A)eNֳ NNDOZT C2ܔ4F5N)F7NF9NF:NF;N)$6QZl~ߐKMڿ $$6H\gUz)eË˞9뻝!3Em/i{//Ȼn[  6;Zlyg}%?FR$,?@6#Vc_3֡55//+/=/O/a/s////OOž/?,?>?1CUguk܋2Oaѿ>?@#?*©US??OO,O>OPOkOtOOOOoOKOO __1_C_U_g_y_;Uj?@2Ş^us___oo'o9oKo]oooooooo@op45ASew_?Fcٺ_v___!3EWi{ÏՏ %7!K]o ßX 06Sewȯѯ7ߴߨ<j|:K?]??(?FeTot7!,*?vƱߊ :U=XvFgeTƱϨϺ&JߨƱH_ ߛߢ݉߄5箟80#/I62DVBl~蓱U>i{l/~/.D 9am\Ϳѓ#. @U2 f3 MK>//O=/O/a/eO/HA/////?J7r?F/(2?FkF_WU`U?W?????OO*Ou?@_w`|B achC%L%t(:>?`P?NY oo 9[1~! 0>_n@MECSx///////??(?:?@j_^?zx?????/ODu??@ e?@=C@? 3Ue^e?PJWQkO}O/OOOO_#_5_G_Y_]}__0ݦa____oo|,oi`?@4xS?@JBf& GQ^Oooooooo -?@CU]r_1ѯR-Fc1*?@=?@(k] =Dlf1É19ǿ ݿ|I}9~Z{軀Ϻ̏ޏ&8Q\ư ??? UNͿ!-;$?rMR_Cwb}Lѿ+=m Ͻ )'~M)M?@۵+?@)?@4W=bkk~#5GY]op?%++&ZUA3?@0KF#tYbd}ߏߡߦ$6HZ/`~`)7k~J ~*XAKmx5b3} //:/C/U/g/y/O///1//??'?9?K?>?@r<IXj|?????OO+O=OXOaOsOOOoOOOO __Ё$6-(•L??ِCִmǐ ӻ8wѿ ƥD)fxϜϮϜw'Pò?@@="EP_#5GYk}ߏ߳ u7)dbntNr"?@v->u?@_w`|ach'9K]o. &8L^p1_bU_ts1•ǟ 0n#+=q\ASew?O`OK/+/?/Q/c/wDu??@ e?@=~ ? 3EE?PJW־1 ??9j?|????????_O<8O{ U^OpOOOOOOw `?@4uJBf&fpc/,_>_P_b_t_______@]JOUqZofo`rooR-c1*?@=?@(k ރ兮 1+|!qYt\qdy|!)h$~Iگ#k[m1Ȟ+og]YDVuou///iUͿ!-܈$?r C?j!q?<'F`rϺ̯ޯ !뿑&`;L^pooo~M)M?@۵+?@)?@4W= Xj|ώϠϲE8k}ߏ߂ +&ZA3?@0eF#tp'0BGYk}+ 8JgsH~ ~*Aem%p$#0BTfxJ?>"Wi21?@r<I N/`/r////////??&?8?h_\?&Cv??"???T?=QY5OVD9OKO]OoOO65OOOOOO_"_4_F_X_!a7#__hzߞηn?@c`?@,biri|oo7Q4WaiQisL7U៱қ@#q5tKoo!3EWi8_"q?Q_%IѴ(Lυ?zCm˟9ﺏo*<N`rϬ0Y%+=Oas=g'Pò?@@="EP/‰ےՈĿֿ 0BTfxϊώ$z & 0BTf=gNr"qv->u?@_w`|ac+hޅζ"4FXj|B'?o?]Ac1 0qnЂaL*R/N`r//d;(#5GY=gDu??@ e?@=?_ 355?PJW_! ////A/\/e/w///O@/2A/)/?#?5?G?Y?k?=gﴵū`?@4Ze?JBf&Vq`S???OO'O9OKO]OoOOoo0~/*O_:_4FXR-c1*?@=?@(ksu__̋`aTQi@ 1I9*Z*{**Yq-Ċ _o o2oCVohozooҨ?O+oo_(:NYYUw!ﺶ-}x$Orx|T_%7_[m@`ǟMPܝ,ퟀ(_-L_^_k~M)M?@۵+?@)?@4=ŏń_ /ASew߲߱ٟ- 0#5GY~g+&ZpA3?@0UF##tPϿѯ 0B]fxߊߜF.#5GYky;ڌ_ ~*AUmP+=Oa| /0BTfx}r<I%7I[m Oǁ/)/ 1F/R/d/A{/- A}I%/$///?"?Ɲ%E?W?i?{????????)ooFotdQi1\OnO T?Qon?@u?@_w`|%ach &/Wi{ύϱ !34.:19>V*{x> //./@/[/d/v///OG_ 砫/I3A 1U"_=A*?ol]9:e6f @@bX,@@jZ?@~? TU߽;4s}LE6 DAKVAA'!2#8\iC2qd`?coufLC?\.?3PAO?G@74u1 7&1LE8sU!]wLEDwD&5)eD8E F{U]5qxmx4A1D3JK8I)@ T/hLBA]S1R28B3$ 4>5]26Ô7ДqC$ݔ(r)I2U* "18"1bERH}qre"1$!!xE|A"1!R!}5-"1F0hRAAgq7)O;OȬ8d"}ű?%Fpbwxb4sp&1)?M |tT.LB!LEpkd(Կ#gVTqrLMےlaFaFaLB+_&2RǢNI,>-]22bȬSTaLEAŒu\``%puLTA&1QB&5d_LD&Ģ!2F3s͵NSYe0ad`"1@5ӹDǥq8Nq0܀>qЂ]5.w,@rBFe& pnd%73Ϥ!!LB2ł3TaUU%_ájTIpppEpp(ppq:1jPj{]9xPDatbsp r;vjB"1&5eǥN8>_BxAa(CMTI I55aMySQLp-sl_co^npci=y:j/=0nv_bu:es9hs_*^aep  ǡEY#ūUe쯌Qǧ'0UŻNFFT&0 Ǧ0TI1G8BLEyiCN1ud//&!Q.(q=-w'b!zp&5u//)ǡ./@/h/?#?W :?L=!AQx@iLE\IiCWyOJ>HqO)kbrrL2G'A""D6O?G3BPObOtO}OOBIk&ʯ\m es |T|1W@j?ehXHt__ h h!u*u({~? rdzeeyhLg@1Ke0oBo hI{WOOO"_]m _`]_ooS?|W[oֵ͂T?=`xSGFNYȧo'hUJLS%oooo'9KOox Y%;?@I5K?@xE/L?68A7s͏ߏ'9=O|}П7jpiH`^?@$?@]F4=ewѯ+/A{~v᥿ÿ1~$0YWU@?L|+`Pf>ocuχWoFϣϵ!Qc~{fx1 ߡ߳ҿigK?@OgVbhY%?@wFO?P?JW\nϺ @&8JNnQ]MQ 7uZjc{g&?@%r`5B?@mF:I8&B%O| P04?F?fG\Ѫ9/U@(%)7xg^?@0߯H?@s7U,E5E]/o#}/e$1$!)١!5ك8 !pGOeDN"DN5DN%"DNDJ!////// ??1?JobA{Pj19 ??OU?Gz)e,H˞O9>HCsPOhLSon$wO/____ oo.o^@piQvo`mooo? /}%?@R$,76#VWc_3֡S\\o/&8JN`f0Qo͏ߏooo+܋F@2Oaѿ>?@#<%?*JS Uwn͟ߟ '9K{oQQү+;jA<%^GiS tӪnȿڿ+4FXjϚrQϹ* "Q"45?@`0 ?@ t2?@255/KHZa `1a/F0c!!pjY\L Y..$|PQ/ݵE*A-Al Sja]]+$Y )-k:~b,$4]B-4MB*4jb(cTaޱu `%-uLd0\@ qY:@w0r:1YP_V2&h3s͵NSY923iP_a@365k;8<~e;L<;0:c6,@r v:1jeKO-ngdXj/!- ,d%0L]X%@:B|-UT---[!--118PL 1%CPProxy^`srv!b(`PLtQF *<N`r;?@I5K?@xEL?6х%%(,>Pbt??QA ////A/S/e/jpiH^?@$?@]FWE̊Eڲ///// ??0?B?@T?f?x?|__??Xq??OfQҁ$fuU҉]OؚL|+Н({~ cߥOOOFHd_OO__&_NJ_\_n_ij__X __oO1OCOUOgGK?@OgVbY%?@_wᳬ?PJWooO+=Xasc+"4FXjԛu!jc{g&?@%r`5B?@m_F:Ioɏۏ#5GYk}GKW,(aXmZ/ bU@(%) xg^?@0߯H?@s7WUyŹźʯܧea\!d$aa?@#*#—53//,/>/Y/b/t///O/e/// ??1?C?U?g?5?j0^US????OO'O9OKO]OxOOOOOoOeO_"a#_/_A_S_e_w__|??@cٺ_v???__o!o3oEoWoio{ooooooo%9K]zw}yu8t uASew@я%e͐ ϾXjo9KoI7@(?@M&d2 t2?@`0 d˴z՘(U<-]-g؂ +ߥ}yST@|կޯ԰ 2Mw|oϓѩ#-"4FXw,9"yߑߣߵ-? EYk}୿ѿ@*߱ 7?@H_"G"++=Ov///.dW@%Rd[m//(DO8/D0X/#rA/}$//tC 4'19-䕑 8/U@ZӼ@@@@jZ?@~#?IT*0SS=;s8\2qP?_T;D?\.k?,@ASO7&Žt4޾!gW 1fUGrA'QO^?y=iQ% +D6A;FT;bAk&oHoI1G%hu]UW63rԿ@loz~-@$t?-t#v=6'os<'!9QzS%ȕ׮"0ϺW IϾ~žV!D5~~F{U~~Ee`m(:LI0\AAJ2AA"1M2Z23gAAȒI567bCB(zR)T”"*ϔ &A8ܔB9R:;amn[aorpqeav >*5;AjZ"`o|!F^II2o߲???a?̯1GOba /O$W )[-rsy!'BB&AkwLeJ2B;aP,FVCAUp$W!/W .&J2A\I*EAQ缦ilYEaEaJ2+Ħ"RŕHvҕ,Sb-Ԓ{b"Ta+AunP`%uL\Х1`yW!`Q`}2ј%"_J4NaS!F3s͵NSYa1UQ"B2@.v8:Seۇښ{e,@bbyRy2~n.G!G!J2e#rADJUSUOrAVwq(ځV!W aW W W W qU W W W W  W q!5 5)!"Fiescprvє5P&A,%8T?*v_J 8BJqitgy d}űǃ?G%f(G{o~LvA%0 GLANEp-ia{e_iccp=o#aT(.{ln).mIS_p s`$_,hs tsiS'9/K/ ؓ/JU&A1'0U";N"R1 0eO8U!'u/??g2?D?XySwo7T??#8ba=BbMCzpqmQ'TG! BB6A5hCKVh9$e'_.W]TF@s?!TPPX?7`/2UbP=Sl[À_____%U! M,g-U@SV֤ڑeUwڑڒ ozᦑq%$o6osolߑQ]?@oYDȡQ ~pc}VW 9dOoIfuݹ:4bh~ U@ 9Ap@ߝbh U:Pp2t bhP ?U̓bhvJeU . ;WcgJe)bhšai%?@?zP4hxxxꤲ8?@.SA?@WkVS@ ??Nk"bh筃,H?7~bh%Jo\j__oo1CP}u?@U2Th_?@mlփ?@f>VS?> -x@4SH+Q-j`7{6 OF:'>dڥ`A\E~A`ApDs}MOMFE/ЪO_W?T?D:PxSFU`V_h_zP6__\ΨU UAoџu6+\.>coqWƋǑηu`()BDRyZa¯ԯ.@R@5v0񏿡qʿܿ$\;?@I5K?@xEL? 'zόϞϰ? .@ߠRdv߈x*m?.%-+HJ3-& mO"s,m 6?w*z T6  vjz}36>C/ #?@^pA\jpiH?@^?@$?@]FWE&EK]oO#5GY~,%мߧkUGH$S}NQ/e_wZ/////o@/??o6?T?f?x1ā???5Q2[3U?;ǯ~FŚL|+@W({~gsAOSOeOwOO O^OOJ8_H|1M Z|1|1_1WQ;_ybtY_U@Pz'QY]u_($_Vai%?@A~R&SA4 A8.]aUo?x]SiBWY0oBoTofoxoݯooo-o +=Oϓϥ#5G23R?߈/n%$kcD?@숒@)?@P؞?P"EkU |O%ʁ+U .@ßAcI[ynt+{/@yUy{ /2/9v(I]/5*Nk"me\G&Y`W?@/Ek4@e\2K?@ˌ|%4G{?@ -oq񼍯`\=*[^N?@]%P?@O&@ c?@аM<_r ?A+\@O|ǐ[zΡa @oooڿ8J\*π:aӰ}3WiE}%?@Rߩ$,6#V?@?c3֡("3ӑ" -ǏُI[*È"Ϟ&˟ݗ5-e?$F V?@J-RBHQ??@S!R?P| mlHF@IL?@4~Kz?P)Oy޾ s#e?**@]'\ N`x#~ߐߢ(me#/B=fWx___Hۙ6(7.oQ^Tw]/ä4-!ߕui,S䯧.@9= T?@L?;uQ`?@(/O8|aN`f}$6@ jV02^S]SѦ //0/>/P/b/t//////.P/?A< !["/$.4l>UߕV)2?^w64l>z?OO)O;Of_OqOOOOOOQqaO__k_?cٺ_v-?QcӄxCo__oo&o`oroFXjoffTo?/s?.?@?R??$6HZ[~ Ͻ< B'"4$XRdIxt֔˟ݟe%7I[mǯ٧t!3EWiѿ?>½v?,>PbtφϘϡIG lAI!'U bQ$  a"f_ײ5?@;?@ t2?@`0 ֜_t+/֪ehMgTbU@僾 M E#p$ .@$ .$ .$ *gu?. ɾS#T,a 1C^gycO!I,$\c2o/)ߖ׀R7)?@yˈC?PT?@"QVlSUAKڬ  08"x?Ң=v @aA_TF//xo8/J/\/;o{!.#WtIA$BB@`U@~t?@O #ʌ |uN>V~ɶ"iPrYDȡ?@J-?@-'9d3q5tvݹ:4ˋxt!J?@TFыxttnA9f@WP.mY __-_?_Q_gu____q\u1dq oow=i(϶αɄicXgl6 @@KRT*@@= x@ٳ@pGȵQts-8R=TaӔq5b2hʦ~$@@U󓜥@w)#p2dpDlp@z3w@>DV#Ap_qvƃĨΩL 5@*M橋[@@s? ݬׂЧ{qz.8lk梐85b-*=m1Uҕ?6F5baۀw@q`Mq``BackgroundCjlrq`zw@|&pq`Aw@w@=w@Jq` F]#)`Dn?e3t*IWi7hNE!h|xaG^u5c ^5bA=A&M1i-Ϩ"^T0e5730269867q)&Dɘ|zq5b z-rhbI8JEu2hw@*b@U a‚?q lzaPq -aq heaU㝧(RuapͪE_sT=5e 3Tϧ==uz`  Iiy?vrB*TaP`oTJ_S`nDB,-!hz%q`^$5bk$BIx$zׅ$-ؒ$r$"hbڬ$JQ$"u$$]!3$a$Tb$4L9w*5*5,/Ӥ1u#?57F?X?gfs????J????uO%O7OIO2`OrOONm nAS?/wABT5bsQRO2ha5 fqM 4c,_qpp3suIaJ<#]%?jOT\w?0BTo x3hb󋯝oӥqqq7tJqu$ӼEWAT$ ÆPxzWw/ Pxɍjvݧq,>PbtX,j@FN$>%@F_qOF> Qj Ϸq ɢ*p$ȌxDaF@[+-?Qcqpa`rߠ1CUܯfxq#2DVhz_ .@RdZ.r p\ F uS|&8_nc?ױya9iG?Pa/@7/I/[/m/////////?O3?OOi? O?hz O5SO .ORdvOP+_=_O_a_s____ `q__-q_ oo0oBo@?foxoo?ooooo,>wΆQc}Fy+; Nނ꘺l*Πú4GwA_!3EWi{p6f @@nw@@HK_?@W;ćV׏A_ 2mV4ozfmooƟ؟;rS?@T9cNF#5GYAeVvUwB˯&8J[mǿٿA '9K]oρϓ#5GYr\.t@Pbt(^ߦ]oߓ*H#GYk E /2/D/V/h/z/// A//A/??%?7?5[?m????????O!O3GVFOXM@?} H{LWǐHOwOOGO_(_:_L_^_p__`ZӼ@@x[@@ 6 ?@2Z;X%_P_Y/o'cp!M`a$6o#?5?)odoMo}?ol#?@j>@o+=Ot(nsKFKFKF%7IOOOZl~Ə؏ V.@RdvײַП*Pbt:ϼ^ oVO:$6HZ~ܿ$ 2~_ _ 2߸KH]ߕjrdPM99!'{l&!3("!F!$+Rߕߧ߹߇ Eǃ 7pfNb>e"'()*+,-./0123456789:;<=>?@CDEFGHJLʪҪ֪ڪުU4P ocAzF)@#XP|@ B?xOvPDȭvPx3 _U1( O-D&UA%U f -h"/T))U,   '-P/!(8(B(-$#P/D DU! (,(E(-(U((((U(+-6U?AJE(UH(R(T(e(Ug(y({(0(U3(B(UM(ENPUT]_cUlnr}UUh(t((U((Q(W(U\(`(a(c(Uf(s(v(~(U((((U((((U((((Uk(o(p(r(Uu(w(z((U((((U((((U((((U((((U((((U((((U((N((]((l( "* *+"59:<=>@CILMP5VSUE$%.)U.34YUZ\^`UadefUmopqUstvwUz{2&1ߊ !PP))TS!R &Q- 3*)A#ݱ g $)gA諸U} g0W5E?)g1`BcUkrFu@d5o@oBzۥo쥠㥠gju `` Fi@l>` 2H[[*GK Jjisb4#0U=?feArial UncodeMiS6?/?`4 R$fSymbol$67fWingds*7 fECalibr@  ?$fSwimunt(S$fPMingLU(w$fMS PGothicj@ $fDotum"|i0@ S$fESylaen  $fEstrangeloU dsaC 9$fEVrind1a8 Q$fEShrutqi| Q$fEM_angl$fETunga<"@ Q$fGSendya*/ (   R$fERavi"o Q$fGDhenu"*/ (  R$fELath#/ R$fEGautmqi | Q$fECordia NewE R$fEArial"*Cx /@~4 R$fMalgun Gothic |w L$fETimes NwRoan*Ax /@4$fGMS Farsi{{ ( _ R$ fGj ( / R$pGEBqG.BqG%BrG8=BrGu3BsG5BsGGBtG$:BtG^7BuGABuG0BvG1B~G70B~Gg0B}G;B}G.BpG9BvG9-BwGf2BwG;B|G8B|G IBTJB>B,BGuideTheDocPage-1"Gestur Fom aSwitch&msvNoAWutCn 7ecCa}loutPC SidePC TopPC FrontPC OutlineButonScren"Handhel Frot Handhe}l SieHandhel Top&Handhel Ou_tLieCo}nectrNet ormal"Periph Out5ln NetworukFonTower pTower }FontTower Sid TowerOutli nPeriph ToPeriph SdPeriph Font PeriphSadowPeopl"Peopl Outi n3D NetFacu 3DNetShadow&3D NetHighltSymbol TpSymbol Frnt"Symbol OutineSymbol} ide(Default Sv]gtye!HasText$ShapeC5ls$ShapeT y}Subhape7Ty$SolSH"%visLegndSh7ap9visVerion/Row_1 Manufctre Product}Nmbe PartNumbe* ProductDes_ripinu AsetNumbr SerialNumb Locatin Buildng RoomNetworkamIPAdre sSubnetMask"AdminIterf7ac NumberofPrtsMACdre s$Comuni_tySrng*NetworwkDscWipinPropetis$Lapto cmuerHubDepart5mn HardDi_veSzCPUMemory$OperatingSwysemIsViableSe7rvBelong7sTPC$Datbse rv CloudRow_2Row_3Row_4Row_5Row_6Row_7Row_8(Dynamic onetrTextPoWsiinBridgeu*Aplicaton servEthernt Scale AntiScaleRow_9Row_10Row_1Row_12Row_13Row_14Row_15Row_16Row_17Row_18Row_19Row_20Row_21Row_2Row_23Row_24Row_25Row_26Row_27Row_28Row_29Row_30Row_31Row_32Row_3Row_34Row_35Row_36Row_37Row_38Row_39Row_40Row_41Row_42Row_43Row_4Row_45Row_46Row_47Row_48Row_49Row_50Row_51Row_52Row_53Row_54Row_5Row_56Row_57Row_58Row_59Row_60Row_61Row_62Row_63Row_64Patch }pnel4Fiber _optctansemtAusterTranscedvisSpecIDBlocksATM switchBridge.14.Dynamic onetr15ModemRing etwork VBackground-1RegistraionTilesF msvSDContaierExclud daegr eShowFoterBackground*msvSha_peCtgorisCityServ.29SkinColrMainfrme$msvViioCreat dUrbanAlphabetModuleVerveNone Solid$Background FeNone .26viwsSTXTechniCom-linkFirewa lBox ca}lout(Oblique coUn etrdXdY8Public/prvate Ukysr TerminalangObliqueWeb sr vFTP se7rvEmail servType(Ma}ngemnt s7rv (E-Comewrc s vangShpeslopeindexFile s7rv$File srv.5 0 DocumentsignslopebendPosfl_ipDrs00s01s02s03s04s05s06s07z0z4z1z3restBndsflip0Oblique con etr.460Oblique con etr.5270Oblique con etr.5280Oblique con etr.5320Oblique con etr.53Print sevLegndvisAntScalevisScale visLegndGUID"visICo}nectdFlow NrmaDisk torageCostDurationResour cData8Conte wmaagumsrv2Streaming Wedas7rv&Direct}oy s7rv u0Aplicaton serv.57DReal-tim c}omuncossnrv)Proxy sev#2230E3n G3ܘn G3n %G3n ?G3m0T(G3$n |G3@n G3\n G3G3G3n G3n G3n0%G3،D#G3g"G3آ)G3G3G3&G3X#G32G30KG3jG3D$G3DG3EG30E"G3XE #G3n .G3C%G3EhG3E#G3X%G3EG3F"G3&G30F4G3S)G3ܙn |G3XFG3hG3FG30E3Ƞ&G3FG30:E3FJ G3Gj!G30GG3P-G3XGG3G!G3HG3(.G3h0GE3GUG3tG3GG3&G3H$G30HG3h&G39+G3XHdG38%G31  E3HG3H#G31  E3n G3(G3:G3$n UG3hG31  E3/!G3P0E380E3 0E30E30E3И0E30E30E3//)G3HX G3@n xG3,G3G30E3G3h0E3\n G3n #G3n 8G3n MG3ܚn bG3n wG3$n G3@n G3\n G3n G3n G3n G3ܛn G3n G3$n 4G3@n IG3\n ^G3n sG3n G3n G3ܜn G3n G3$n G3@n G3\n G3n G3n 0G3n EG3ܝn ZG3n oG3$n G3@n G3\n G3n G3n G3n G3ܞn G3n G3$n ,G3@n AG3\n VG3n kG3n G3n G3n G3G3G3G3\G3@G3$(G3=G3RG3gG3|G3IG3>K4G3G3hG30IG3\4G3XIIG3HgG3/G3P0E3I"G3I%G3O "G380+E3;HG3G30G30-G3 0E3(G3G3-G3h/H'G3oE3G3@G3М0E30E30E38/&G3G3G3$7G38)OA3hSG3HnG3G3h0e*G3k E3k E3=K9G3(G38G3&VA3؀ZG3uG30!G30E3/(G3.&G3l-A3hG3m^+E3$dd/G3P1DE3TG3.q%G3 n^E3T A3-A3G3h1E31E3@ddG3\ddG30k E3Hk E3\k  E3pk, E3k8 E3kD E3kP E3ȗk\ E3ܗkh E3kr E3k| E3k E3G3hӋE31E3\3G3 y3G3&3G3,o^YE38`^]E3,`^aE3ثee3G3b3G3G3\G3Ɉ "G3H{ G3ʈ :$G3` ^E3H bE38 fE3, jE3졐 nE3ࡐ rE3ԡ vE3ȡ zE3p~$G30^bG3;"G3pE3.G3h. G3F%E3 3E3Hk7/G3\8f2G3n'G3x1G3 E3x @G3 4E3XS8G3 WE38u`[A3Hu`_A3Tu`cA3`u`gA3lu`kA3xu`oA3u`sA3u`wA3u`{A3u`A3u`A3u`A3u`A3u`A3u`A3u`A3v`A3v`A3 v`A3,v`A38v`A3Hv`A3Tv`A3`v`A3lv`A3xv`A3v`A3v`A3v`A3v`A3v`A3v`A3v`A3v`A3v`A3v`A3w`A3w`A3 w`A3,w`A  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./01UU U UUUU U!"#$U%&U4<$Y,b'@"H$ @ (kuC-7 AU4< ;}A-`^I7 "A@QR@(K8RL<(L<(ERER?ʩ?fR  g"4FX88u(}'M@(CN:>Hֹ2P e0RBbP Pxbt~`.8 (Pt)gvHvE{R$kzI!laU,OR'Ȩz1?j6dh5wP2}5lTT?*ODH%a!nova-17.0.13/doc/source/figures/nova-conf-kvm-flat.svg0000664000175000017500000035051413556316250022525 0ustar zuulzuul00000000000000 Schéma Réseau VBackground-1 Solid None Page-1 Oblique connector.466 Oblique connector.527 Oblique connector.528 Oblique connector.530 Oblique connector.531 Oblique connector.532 Oblique connector.533 Server.1 CINDER-VOLUME Sheet.2 Sheet.3 Sheet.4 Sheet.5 Sheet.6 Sheet.7 Sheet.8 Sheet.9 Sheet.10 Sheet.11 Sheet.12 Sheet.13 Sheet.14 Sheet.15 NOVA-VOLUME--iscsi_ip_prefix=nnn.nnn.nnn File server.505 GLANCE --image_service=nova.image.glance.GlanceImageService -... Sheet.506 Sheet.507 Sheet.508 Sheet.509 Sheet.510 Sheet.511 Sheet.512 Sheet.513 Sheet.514 Sheet.515 Sheet.516 Sheet.517 Sheet.518 Sheet.519 Sheet.520 Sheet.521 Sheet.522 Sheet.523 Sheet.524 Sheet.525 GLANCE--image_service=nova.image.glance.GlanceImageService--glance_api_servers=$nova_glance_host--s3_host=$nova_glance_host Server.51 NOVA-SCHEDULER --rabbit_host=$nova_rabbit_host Sheet.52 Sheet.54 Sheet.56 Sheet.89 Sheet.90 Sheet.91 Sheet.92 Sheet.93 Sheet.94 Sheet.95 Sheet.96 Sheet.97 Sheet.98 Sheet.99 NOVA-SCHEDULER--rabbit_host=$nova_rabbit_host Document Nova.conf Sheet.24 Sheet.25 Sheet.26 Sheet.27 Sheet.28 Sheet.29 Sheet.30 Sheet.31 Sheet.32 Sheet.33 Sheet.34 Sheet.35 Nova.conf Data Sheet.38 Sheet.39 Sheet.40 Sheet.41 Web server NOVA-API --ec2_url=http://$nova_api_host:8773/services/Cloud Sheet.42 Sheet.43 Sheet.44 Sheet.45 Sheet.46 Sheet.47 Sheet.48 Sheet.49 Sheet.50 Sheet.53 Sheet.55 Sheet.57 Sheet.58 Sheet.59 Sheet.60 Sheet.61 Sheet.62 Sheet.63 Sheet.64 NOVA-API--ec2_url=http://$nova_api_host:8773/services/Cloud Application server.57 NOVA-COMPUTE --libvirt_type=kvm --ajax_console_proxy_url=$nov... Sheet.88 Sheet.104 Sheet.105 Sheet.106 Sheet.107 Sheet.119 Sheet.120 Sheet.121 Sheet.122 Sheet.123 Sheet.124 Sheet.125 Sheet.126 Sheet.127 Sheet.128 Sheet.129 Sheet.130 Sheet.131 Sheet.132 Sheet.133 Sheet.134 Sheet.135 Sheet.136 Sheet.137 Sheet.138 Sheet.139 Sheet.140 Sheet.141 Sheet.142 Sheet.143 Sheet.144 Sheet.145 Sheet.146 Sheet.147 Sheet.148 Sheet.149 Sheet.150 Sheet.151 Sheet.152 Sheet.153 Sheet.154 Sheet.155 Sheet.156 Sheet.157 Sheet.158 Sheet.159 Sheet.160 Sheet.161 Sheet.162 Sheet.163 Sheet.164 Sheet.165 Sheet.166 Sheet.167 Sheet.168 Sheet.169 Sheet.170 NOVA-COMPUTE--libvirt_type=kvm--ajax_console_proxy_url=$nova_ajax_proxy_url Database server MySQL --sql_connection=mysql+pymysql://$nova_db_user:$nova_db_pass@$n... Sheet.172 Sheet.173 Sheet.174 Sheet.175 Sheet.176 Sheet.177 Sheet.178 Sheet.179 Sheet.180 Sheet.181 Sheet.182 Sheet.183 Sheet.184 Sheet.185 Sheet.186 Sheet.187 Sheet.188 Sheet.189 MySQL--sql_connection=mysql://$nova_db_user:$nova_db_pass@$nova_db_host/$nova_db_name Proxy server NOVA-NETWORK --dhcpbridge_flagfile=/etc/nova/nova.conf --dhcp... Sheet.191 Sheet.192 Sheet.193 Sheet.194 Sheet.195 Sheet.196 Sheet.197 Sheet.198 Sheet.199 Sheet.200 Sheet.201 Sheet.202 Sheet.203 Sheet.204 Sheet.205 Sheet.206 Sheet.207 Sheet.208 NOVA-NETWORK--dhcpbridge_flagfile=/etc/nova/nova.conf--dhcpbridge=/usr/bin/nova-dhcpbridge--flat_network_bridge=br100--network_manager=nova.network.manager.FlatManager nova-17.0.13/doc/source/figures/nova-conf-kvm-flat.png0000664000175000017500000047025313556316250022515 0ustar zuulzuul00000000000000PNG  IHDR:I0?r@@@@@(A@@@@L$t@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@@0ND8k    $@@@f̘i7 xG}NZWW7L@_D!w  R@<?^EcbGج޿^5HYeR֚f4 KHc    u*a}Ǩ-dloK.R',YbE9@G H:J   FhҾnU+dhWjAg\rFk  ?I   ڭ;9?]ٱJOO咣FuZ $ @@t?mݯNޛ;n {rI!';;-?@ H:@@@%Vx1;%|oV+nG=i!Gvˑ=sx" tdrf@@@_x ]T[}nKʞ9sN@Z w   %Jo +̉1vM*ӧSWWZ:@H$r   Aڭou>rc U~U.ٿsz0 |I?Z  v+gˍsbuƠAU.9tPi @H:   n}z~_xxT.9j(ijw" pXD  8M[i~2vOp&}ޛ{V42. $ @@pCV*1&x.pilírqegg!uV"YZZH퇯oAAlQ~CU%ݩj+{32HʒQ`ppS@WFDcƌo==Νa%$.hh  8Gf"4gVfPWQ_SXW)C;JܔѹLѺs*etǝ{\ 2|Né>\H{=>ywۇkԔO<\oIM6כk»Hq^\W6+zIzph ozy7{p={`׸7<)cדRMκS\$+X-Hz3@@@S-%۽sRBjʛjk]$ll-ݗDu$ui5S7{$Owࡦ54o:Tt`MꆃU +V7ՙ@MSqM}MEUMUM{+ *T+11!!!!!!>@}J_.i_]⾺]Eu Euq{kcF+&rOMd~͎5y5yrrTTdWoɮ 2̪MUAU3*7WNYc䤹v\ruםI$=rG   )Vɤ+d5FdkDM%{wDR"uKF"2cS ,3.]mmHHHuuu\S"Ys"8#=;mCl]] %NY52$.(h  @d)QkI6`ɆJש]]0;6?="/usI8[{l-]9nDaaaPR2ʸ8#wqe: 8SHJ")J^z:r@@({Ԙu˦1ꫜ^MMƥ( +jOFs뮻_Z*'']:JqqKigwV %ymIy  8FD2-6 #aぢ jsSCC}SVHY2l_faNWH$/BK'c e6̉v1,J%%f&p)ZP G#HBIO~ ɽ   O$3v奅VcƺƆ㪱СjdŁ\0.dD&k˔m~S>GJ$%ԖlM$U(9b팔tigH$0@@.M$6g'tF:}^F,vuɅk*M-ޓ삉 ',**N#7%tg<BqA%JN<$h9  t@ɜ[Ӷ>657銒(`sS]uiپtL$.y6N=n8Ss"i %ǍxYh!\@@GÉd^jx~a猣JfhikgUI1t޾Zo 9M'O5ƃ5V5?XQ\Vg5M5MU7U5V5l,lSaƼܲ첆҆̒w+e}}uv%[]`=55;kDՄUo˭˭ޚSS]%*8\36eVeTm̨ܐ^9eɎ#)I(&VLI7}p4@@J:z8÷O޹:%j-;ۨu$լm#=;%,ʍ,h2`Й:xIPWU^SR-#t;Y\2::Z;[>t3ۉvJ$%|Y!>(du=1drv@@p;DQ/~}OY$LQ^¾y2Q"EI&e#v2[f:H.]QQ%qWq&" c䱥1J>8  ]%`H.PR>NǴ9FҒH/H97lvmud-;dGS%Gʼ=[+٦;$jsIyz'E*رYۖ@($h3  tu$,GK(yq=YۺD(tVyqnUya}m2ۜM?KHfyW+.HiH$;}j)C#e627s ʽ:-CH$ b   -l=`SNp-#R"YQ/KVTM2[NTTM/Q//A.7; +jOFd~zD^[sRB7e&l̈LO6eȕI;# _(~낸y[~ -z쨠#7#>|ݷ[5CWO Y閕{yd.4;gYDR-.)Mʢi; G&tL"F"  q/zJJ: ݰzg6}F֋.9wq]+ɦ۲nqIٞFmOy^Pҍ:9=,  FH^V4xЙ={8K:qsof")$Kno_c$v]#??ժU\߿Ȯ7s DRF;Y@MSqM}MEUMUM{+ *T+11!!!!!!>@}J_.i_]⾺]Eu Euq{kcF+&rOMd~͎5y5yrrTTdWoɮ 2̪MUAU3*7WNYc䤹mQSs$Β   m&vwyTdcӻׯ3O߾'sgAVtdYa2'CwGYۮӥdqɄKjsɐji$-qkI${f;$L %ݢcHc   `=k[֑_{حVdAe:HvH$uZD%%eL\\@%2汽HjگsH(9|pBI$.Ph  8Sf") ?oȪEi}Yu5%2@Rɪʽ5Iz8NkW-*ݟU^+c$+JTr;YYQ{2"#Rޚ)3acF|`zj);W'GLlWE[ą΋{LoћfG?n_CDu/zZȪO8?ش콠%7,~'pᤉ/)7.Gז2e[LݮdH>S/v@bsO_.q_ݮڸؽ1{k UP&2fG~ma[sCsCdWgksfզ̪+,1r6vaJvg t8)'D@@h)ܺqkKxuW~8啁4cJ$CrvoK O߾GĬhٝ(/!-)b;m#%sy_ 1d*'/Iw)))\2((]O;(0p1O`+$|==cFJ:Z_DҥA@@ Hm_sHSN_{eR~+gHZږu$"c$>hK:dҷdpH{}-%|uߣT")bgH0IGչƍ뾝ƕDҕmA@@h=ܶyOO=7w;_{==MRFbvֶ.PR;mNӾ"ɴG{mJ\R>v#y|쾪N&**S+֥VV6ڔ5)>嫓W%L*_XX|Wٲ]eK̵8lQ|颸҅q bKǖ΋-#dȐ!$.MB""f   L$—J5eIqHn׷^FI%v >=wR":J$eUBJݖ{kNJHvRpV̄q1~צ\2iwbIJ]Ko]:/v1EosƟv}߇vakܺfzi!>ݲ`7/`ӲLް&pO ,s""t^Wr̕srr$EEE9;gq[I$~|Ĉ,IpI{f@@TDRog$TVn_Yo?~ꉇd5IK^tLz)o^7OC?)F|?>xỏdd{+S ӆQI^Jͤ- DRe-fmeH$@@@J]dƮ$6 v,_3.iŸ/o>es&:\韽G]r%m+=s܈g ˲/֑pX'H$;[@@@:Hf'ʒk+"|Y1wͪ?֮vysK7\%㜳m gV殩M 3ScvGMٹ:9reĈe—$-ߺ .t^c4;*ȍ?q"_6~uBV}en^e-a; 'M|N/1ĮB$RJj"Mbs"XقmvӓHv#  Ncdy{ʋjksvoƀ媂7 ޸O=UѤlۭÉ.*I 2e[Lv܎MHʦ]TMJɮ   I$ӷYWYZp07zgphm!k&lޝO_N$%Z6vU1F {cMmd$nooDl8H5`.첆҆̒w+e}}uv%[]`=55;kDՄUo˭˭ޚSS]%*8\36eVeTm̨ܐ^^>2 ?b]j_jnsMXR\:|URʤމew-U4\ŗ.+]W t~l?bJ 2n8w~Ix  8LdAVEy {*Kwl>!z][SK") Pj˜H&lbֶzWKX3i#$|豱viH:q.$@@ɢ]RjKl(۟kkDR`)i]Z#=%%EHjsɠR|k*İ1ݹuݽHv-gF@@ph" #%-UVɪ 3':p"KD-;ݍ%|.vC@%Pv>V$tEc@@@HPe%4,rsq]\}W-.)#(.H6>ݤXGґ˨sH%u@@@MHķD(-v]WWj);W'GLlWE[ą΋{LoћfG?n_CDu/zZȪO8?ش콠%7,~'pᤉ/)c?M'7@V撲֤ܝM+)vNˈ{%4Bk    8.mUI.I7ꍝl-n2gNP{m;{RH$=ir/   ${c;P_1(sH`ɥKű䒧Memm.jժ4l,j[H"y>"lp}$9q  t$Y(s"Ƙ"6=O7#A6/**n}*b[wi<< Z  .!D23C%cPKt7'4BLHH\2,,L&w;5\'S/fmw 7   @"F^sI/g&oۓceN$w6k;w}%-.)Iݙō]Bm@qq-.)3>:M@%)Ìm=$@@p@{g>o-L]w7rG(s"cE"㾧mtKJXwZ~$oY^ݡu=Hv,E@@who"9,eERHs~{Hkooo Dc$ݵ: qqq%###Y\ҡ̎>>xn|O*4z}]n7)Hc?&tǧF@@@ ڛHnXwΖ,RHʬazwm-]KQlӅ=MO"$dpppEEގ5́.1 Ŭma]|G$] @@@ڛHf%m~."|pFԶaÉ{m[?5dtt6y݈sV̉#O.R#Imd8@@<_dvrȻoSNp嫓W%L*ggw!tǧF@@@ :HDrD ;622R;Xrҥqqq,.i&$49r$l   H$8N2A׎~O<7U͘lΧ˱`Cn400PKZ*--͐sJ$e@ c$m HI   н:Hg%9:6G'u fZ8/>|)tOKMۜ "Ĕŝ:)oO@%f1k۾}"Ϟ;G@@N$7g9̉䖹} ">{<|5w1lظu?{ӏ#{ma,. dXXL$I$~R.[#ف'MB"M4   7L䨒&L-.v72nX]dy]ua^'ל!Iuo~-'zI'F̌ 9rO;ܾ}밵_n]3=tUnYqi{AK&oXNI_SN"rsGH()nqII*%sś dIWvDn*D@@!DrWPp"[7dw9Uo;</HM3'xuNJ$z :c׵p)]v2__v8Fp" BtbmMI:   'v&3v9ћ@E!Uxè>Z~OK<\aD s"yns"$wI$ϊ:3kHгc%>r=G#ɷG{dAAAN{ 1p=?sOMK5iC~7މew-U4\ŗ.+]W t~l?bJ 2n8+HS    B6m$nNڱ2yꔨ1b36:̉-kv9!~y.q]֢EH{eژO²;4v%o#ɋNnnt5e}ܯ1¬mnҔ8⒑,.IDׯ5k"jVVoͩͩɮޒ]e͙U226fTnH L\VVZ./w֦TI)I.gֶ"4ޜ+"  K L$?}F K$%t`KԦ_U?^yxbKnPqU{^ _<߫eg~it>4h5e[I5e[+Y|]n3tiHӕWB /u$]˺j㪫CBBY\!O쌳'$s"tsHẓF@@@1->Ԍ\ȒsATj_Kyeɓ~^P-$e[mgN5镏Y/"yGnt㍦k5]qM %g|";8{ujsIR^~cI$Q1FOG"O#  @aϏ{HN[2'g_o/ _w$<@R+x=3MH^fDK&O6I,"?ک-^fm.4V=vn{mO|aO.x2ҍRRRd6 p[rvI$>ةHv7#  [>lh?̡CK0e{k;kO=ёGʆ6nXϦo{˞6oLۦǿH}ׇ"d^}#|>Zl_ui?N |M^m:*3Dr@5R:wIY\2::ZJ3wϷDRFWdwM"IO@@@$f") Ι񛩱,s"G;̣O #H#y}(Mo0?Zؾ kdĉ&30zӃ.﯒H5p5ef ]zQG#z#akܺfzi!>ݲ`gϘ1@+2.R-.I݁>I ܮ٦B"yϔ;B@@N L$b#k{gw,)LvHIwמ*8fKrd7i%%Hyq˜Wȗoazeϛƍ3=_2kewyre'CeDrc/kzIWL$Kgya}:uj]]]ysEEE7*]zB=w,v@pSH   h sdz vr#;Oղy\6l蘇qbN$`Oa?TqfssO[Ҽ;:y)^'&LPXX<\@vܖ}uKܲC߹nDu$ԕsIsU@@pYVfm\yIvGj)/3)ӽ/dYW|!91mUMӖRqF֎0Kk8d%yɆ6so7e򡬫n>wzS,$%;H`C79ա9![̵9jSfUPFƌ 镁**S+֥VV6ڔ5)>$mvW>DҕmC@@'߿z9?~󞌔Vd𒱏+䷟#$ Q~p]XH])qyQcdO#e=t& y}KVT{c{p"tQ5o>D)66 Kz@qqq``6\jUNN'ޫYoH:7H$d@@J6w ^|ۨ?ƅ{Dֺ3gֳrOҜHhO<1kl/&4mEёj+H_dO}}2鍊o6 WVzkN 6Ǒj)^먵^G ;U;hР| H)A6RnmDRB=.H=I$=rc   1֑L}dg>);}$sP>UcpF?|n}@KH}f{y'dn럪-Ym35 Y>GM=tdC;0rL#F4`꯶HN$X{l]# K&$$mm.&n|#dvuh 5esA7މew-U4\ŗ.+]W t~l?bJ 2NvH$]!@@p%ھ7J޹Rr˥Ծ>߱y䷞\;nד~ŜH}zZDRҞ1 >"etE#e0symk_wM]f0iq$%Z /@+$R$WveɮrbI7yj. 9   x@K6mgښ2@CشPGo>x8&ذ6p׭o^X䓇|/MӧM3]}Ny+#=w$|#q,)k[k_s+L\b:6$IkS5EEE\'??ߥm`$y@U.E"*Ov   ->;c–%EֻoC~8E/-_MI}ỈWXG}IM}d?3AEZEʶ*ڃ02:RfH_[k_{ya >qG b *\2Zmk"Oft4AAA[GH,3U/nY@@h[md)}AK-A>זVvj7_~B>z{ntH~zMz/ẋo{4e_sOxВEHG1vGlT)3t饦z6 T9 444KDrsVTfզ̪++קUUVKKm)kR}W'J*_T:V34$rs1@@p}V+T.;a'[$|r=>Wg/Z^d3zdӻyۦMoizvjud*uf;.ete7#eȋ/6hv #Wܭɺ:SRR<6s"2ГDGH   `VIoq[Ut'}sO%pF~,@i}W'[=/) Rj믛^{+^2i2MFuU?ki#GGG8 Ln߭W?V$M.ݧOs:(((h <@I$|q<#9};!&D@@{F65cB ](!|鮈ֵv錫֛m>yK;O>r_<41k췥y=zyUs G^0=gLƙ|Ҽ#7%<3ddgmdÏđi` Tq~$ӮK:^JCkdh 2|kgUdLsbֶ87D@@]`jn-7^}H/BI9CQ[<&pԥ'~YMy9\= Zj޳=9|#Al_c"eHLw)=wQag͟o缿ҫdt*I73æ:EMlt-=kɤS¼N;īfO9# 1ǑN9tҠGjHKfӻ"~)[oksI٘[n* xduv7Dd@@@DD,(܀3xm=~wm^;l #;p"IfܣSH4-"U)ceO[o5]RDߠ1E =Guf~oFG~9tc5/:\/mmN8F۝=1??GKŋ͞>`|\zj׶=}!tgG@@@k$z2ddpN:qO-{c}]7,war?[V~f5i1:-) "$Xțo6xof8RF,M^ +ZFGmGP? %YDkg@sssbbnqɐ١Su7kWHJl>2 ?b]j_jnsMXR\:|URʤމew-U4\ŗ.+]W t~l?bJG8[· HC    eeeÇ?̱3)ӷ|ދ2k/O{!xGԠI.x HD~I"t*e+5Y[C3:RőROq$\qɮhH`ɥK&$$H^:Rc$oٵTSv"tM"O6#  quuuLמۺ5wM'x^ħl D{=ʸ;oLRHHJL7`"tզ+0eh%O5YG'#"̉{WdmMlRGuKt|N~_vvlG&nDRz|1F]k.O"5@@ا_I';kGjHdɳNkM0*wA.7 ObJ +랗-[V|ȗ6lPLjbֶ{ZZK"iG!  @1c %rYƆpםM{Cws"v'o?,eŎi)A JK/5g]dyξf" :'h׿o.|%rn p'-Se6 ݮ~~~"eLKˏ$2u$]Ƕ$x@@̩\4á7e_\wC.P^h"=t9!CL 4x9< SK{.|VHc?z\c~dɆ6]ۥ8!EEEڤO7^D2G,R^DvWtbm{{;G"O6"  hKzU~˾ %wt%QWţ'0sT)" 2u9>rfiHKK-.TZZ9m2r:-]߀A= UMXR\:|URʤrvhO4d$As@@0,);4P>d]-~3L%o?yyРw ' sS,Ad߾,SL{z{u_Lm9ȢÇ=q;Y!..Ndtt,٩z6I $tVuuI$I@@@ B :מhwqw[|+/WW2dܹs]ҌC+K^ OS^&پF%uYG͑ˎ:j:1c#iۮ-.)G߷l"IEfggHʀnXl{$h!  D2Px=z}.2:xN{KswZ?~xQ7Gƅ2fsO>zqpnQkƑuG5]Ԗ9>:'PPP%Kysg2$撑vdRnXڶa$lh   W䒒zU|v/s"mZ5睇G={dիz/ #e)ImJ( Mr_\2$$z&HHMzDE@@@QWƍ$]}SfTDr[;g,VٮE$5kKMFOe=J:"= r3Memm.)e{;222dHH"_%2N}_7)XrH$@@@dGʭ2)A9C>5jm3monXS_L923L2jRz|HEݮ3@~~6:/**L%yM[KvDd`K5faj7)t$gDY\@@LOE(š57_׬oފg[jlPw@sssbbnqɰTnsʕ=Hrc+)w'@"i9WD@@+ &erLs-/Is}s\@@GIdBBNvͶvII=ooHJGH[\I|(4 @@@vv+'Se.eHD^[p@qqq``nqɜV.Smn_%Fމew-U4\ŗ.+]W t~l?bJ_}d_>NaF@@@Pz##Oʹ@A.7\RbJ ˗/#e%JGO;`Ш$R$c]zB.    2Y[l/]TKl~~~[iK@E7A{Lb8".l]qZɮP    ?Q6ٴi2RRf|wJ$%.3H:֓!   J2[ .#dMMI$o1Q:֑t@IF@@@\N@FGZgk֬1$$t\D3z@@@-[tȗK,1B%K(kI#bǮE"17ޅ   N ;;z+m"e3n-$ǗR6ŗ.+]W t~l?bJ 2n8)@"I@@@@HyeNS9wZ tJ״$9q   tWիW[/)/:ÜH Z`h&tGC@@@@QQQ6i;Y&J$%qZ`ֶHsU  T`7&xgRSSH/u'&Mj W*~0mA.wN6 diHY R74RI㗌)ڙnN"պH.K>  ]$n;DOe$˳K%zv6^3Xfj rS[ĪUi /tRݴemGDRl`g=?d{8@@.PMDRň݈HyQg9S@Ě.uVXF5R?Hva pXzHWQmR}DҥA@*Q*Ӆ։LֶHhATvD䉺թlVIeg6`UUU*Bvv ݽoq Ж]H)YRR[GŔPv H:|IIz4@@ X2G5Pu"E]'s[NetIjIC,[zx*l -E-d 9  d2:R+ԮhHzeIKM]Fi9R]VTR&zA6i3H:q&h+w lY ?Zµ=={$4ھ <  Y@9Z^I{ Qh9mvKNڮ:[:CKi-mY ((z+m (d8 u$G " 6shو!L)jEKn6 ֓[R 6FjTIwʹ"%.jHzγN@@<@@9F8:$%T)Hq0ǦgPQՇvԱD:9sd,RFJ:a\n%@"٭77  +EjCG%TQhJˋ}e$ 4- 3E-$r26SjD"=!>>>ֻivi(@"[B@p_DRŅjݟZ7&>k]1P j\2nQ}3JtXJ;`I$mnC"#:aaaҥK]n%@"٭77  ։%Tng6ζܧngڡ-MVեPRcKvꏙ!Ӵ啜[@O$t@@dMS6,++sl&e.ER5;C-Mٖ#[z\BE%u;F;3qqpifYdxxK! H$C@@"""F&ê>}̘1N)`3 CӋ-/J4[rQőպ;ϨlNAG7\wvΨH8ڵk\z{ FH$=r?  vcƌQQ=zٙ3>9!C=4DҒ<I rlK-ojՅZ -)AԮn vFv֙G{@bbbH,)C&h?#@"1A@y2;[hX'cޟзF%(iq$% O; rըFzQgj+2ݻ&(S>̺äjd+oWTyW{ r6yXyx, )H"=| u?7+xx6qS .+`=MeL@D> '}lw{絜ߪ?d(z dWBpU]vYg2qUL@,@"I?@@-%DƶNU\rСlzc 'P\\ldXZzI  Z2rUˋL}:޽z\R6{ UtKFJ2 ! І$]@B?-9?~~_~C*-i<۳GK7MoArj@شi5ޮ:Z H+q  @RRRF%#{}ѻ$:#}eӛSvQw;ӦMӾ"<sF#v[^sýʭ"ev~~+7!MI:  `'LRBx); |\up˦72IY@B{:$zZ?=8a5ꚴ`;O{ (u`y`doT҇Qv]"jHSrrG7pGy˭H͢%mq.+@"鲏! [ }Qmu݁cj hFvKA8$Qm:yj] PF#IX9FUUU{o{j%r@y/?I&Yw0i-H'~-1Yfeg{tPRV6[=@bM#i\Աvo/c/{YuW `\@@@@l~=gJR >}O-ܹɖ$D7%]±d'IKRәы!ը:!9@!WPt=iv-wT&#LU)VI|Շ:LrsK^:FUqm>,ǑrE]r_BPDfsv@H$]B@pu?-ٻ״O/ݗ./2ZS>df]]#Ҿ -.GYm^DwZ*W'J$-SIY,ȗ|bS>Q W%oՍӶYnMdm6lu7ҽkӴlĚT{3]NGڒ<QJT^u U?PLw_~k}f^g]9vnK>6Iȿ+>Gmdu)t9?#@"i3WA@-ҋOǖ4*K67V47_}[O "<tR#-s?-za6ٓHX"J$S#%mާj:F;!W%Pjby4u]˗*]QV!!-WRLmy]Smg:Uu6VXHݗʍ몷XZʽۓ7c,D>ܸP['Wܬ8LZhyzs!bG9\WD7FR`릪hK;U_o瑷X.F\o=uvЮr-).gvpiJdOqK.MӖ,2<<[N @~I8@?u%#o92<8(oj)Kٹz֗/^~*韼-կi#FDDDW@ +lݫWTnzKbI뉤sr9Vc,6h6gmk+WQsm"EUdFJؤ UܭR6mIԼou62Saj:]ߓYVݞIL|VԒjEvZ?#ZB}kw@UMDL#ȩTjTHLu_ZIzc1Ƃb▾MIvЮ<6۷rimS!PhTڠیz瞬idUܥ ߊ#@@#2PFo%YV~ )X_][U{?޻gͪI=ze%dlJ(_CϦ7nڕYJIT!NڊҢ0C={T;bdFJ^|!/u|_UW^>wܽYQF׍J/L>Mo Fm]̲Hő6nKI.{'67Bh=ڒ6,kW"1$ڹ*{TO͞`HŗZ5aDRݻ=X")'W%;k=6Q,Ϣ,[wAڦZr\˲64ԞDO 7Kb.kڹDR}y@"b l6mK^D!7 HTwݣw2WMevZ\|I:1v?~2\`%:/RҶ#Uj K5KMn}x%9E#iJ|!GVn) SKCZ"';X=ѡZ|f9mKu?#m.ڨ֝l3Tv*ﳹhJݷ-}X[tiUli6STi]'=Ji.kzv1"W\% ?,ֵ?qIy4@\Z`ԩK .[U]^d|JP_mү&'u゙(7-+e\tƩQx $ӮFɇ|"yeKb5asިR?Y\DGJ"ielu WjOjKv.i=N]9a붔H*@55Xj:WMfz'޲|[$*5SmFTKu \bhiwQw)mi3(\]>XQܭzHlWQ6DT j9UKzGNkH6c7zjj幷TS*a+)O]vY/)6VRR-w%;f/\K.u]vP?KG^w@Dh@J$'NxQbWSc}C]veȧ׮M;\y鑓ߓMoܧG˯* Re7Tn%GJMKޡB 9WY)Yb}B1/-eJT6_V_B^Tu Ϗ5']ޮ]RV[H\z$jJoYίrOv+»;/U#-)R]uH;&T]I~8&Kȫ]Qj "TN=FάY,96ڳ4淞EM҂0Q7ҭt9ܩ:bBIxs%d<a3Vjj݁[ԿYSl~~Iw@P+M8T[ujji*+IWOOqȫ7ޟ!]ZՇ<O]r 0ߓ[Lg!9RsEumN6I嬇CUgivTacS`Ԟ{i eG]H" u8ݮ۝Sv /.]v7R VUzJ2$KuW!tgD @@D2!|=L2Wc]塃eh5snudZ,Gd$w]-[8{%Moeuۜ mi 7I͹J{i;~ނ@'i˒999<3od`IgĤZ\B7Y^2Ww~ ToXTX=jhoDZ: HCI  rD2iʼp k+VU677՗'X3[fRoӏMo\ @hnnddLL ڝf%S$L$ʰ`'ڨQhUZ՞D>XL]V-dT]QY\͠ԂcQ}J`&tB@@ɔ>j*:([`xN#;T-Ȍߓzg[oPRjpMxwkjvI@!lKFpݯiQCݭIYޕAβJ uCVj) հD5d[f65` v^JF9LESwDrh9.c$ݥ7H˓  Ldj̺@--knj0*yTmu, 9w?^2t_SP&_?Ig<C6iMGcDxjأe.Tkj*%T_GesK.jf$- o= +QulӎdI$h! 8_D23qsAfLܖV6܍ CjgmZFׯ~P?)UY/6efT/^8D6""B/9@-={f5C#膆NO@9q2PE*yJ,zugPwr4@'ȯ"2zKѕ_e;L@ 68z.x N)@"υV! k ɨ0?!{vgz,^!0-Dz+)KdZ-_ <<\}|)ӻά7:KKKr\ADm@@W&M۷z;'E;dY/869vX6B6=3q|.%7K$vwLkk+VUtʪ%i9!YA'2QƅlWȓZIWYW} {Ydnh(wi{eYCw] ޕ=(@"@LN +k;ww <:o޽Nq姜՗Em]#[rII$SfՔK(td+m"e=ya'2uZ&Pv-_,n}Cn,l2ݴcbb #Lёʒ5 !a$Qs!@pc]")1bZ̺ gNy=dWv)c~`K麒:V"럑AcaWwjK'dEV'NhبL74%`sHy)Z%}}}eI4"@ Hv,E@N$SvƬ+̍o [6Ϟz⡁g9hz638c$U"\''4:,Sj/ "] 52%,̉3>tUtJ  `2Hݒ`IwYC撝͹w@@'@"I@@h)LV[]% ~kNus1ۃ R2I#D_Zeʶswvm@J@-!?eɬ,Ǯa/8tCd'y; t V9)!67do\vſKW]y$$)afe53=޽N|󕱺D 3J9h#l}UeVep"isKXXX-i_YW۲soȑ 2z7mb|g'l*MBH$H@m&yiYeL~m˚ȍ>W/3aõK$.|c'p+cYjJ$-{S;@H9WI)ȦbBj˰1K}ˤi(2я}\p tȗZ2~E]oo#@D> -`O"'sآ]dl,y`I$UrkT/ЧIG})'˗։5%ljLR+Sߓd]$ۡZʕGȖ1nW OtB@~J[g2g52*_э|wQ)p%>>ֻiOo7.?ev뛢t+nY@蠀݉dK+/ه=@\ Fdž" %;bvl>HTjJNUzdEoK Iud¸䡻$GLXmQ\9QfGn}mj!> i{%?_\mz;췹ݬsgq}pK*I4)[ތFO "d``17ȍ $p5@plnJIk$K,c${u/]V %jKeH_ߵr '?xMMms,%oܛz901cG c3:{!S$[dnH~rnNݎgD H:Β3! H֋ngܦu_z9;vcIQz]MY}meVfڠz%s ' ܌]ŹRr6Qc$?˯1ZIHLL-.> |@KKF&%%yFEEn@`Cރ[CH$x@0HD|rm7{'?cGK%mMޱ+.֎F_zwǐg^s^v6>+={u>HɩdloHɯ|{J#)$$@~~~ֻio_%hLQ.X@w =G@{ZI$_1 pq(k/_܄SE+9'HU@@ZI$?~3qW䥅TB [\}Eڽe' K9/x7\w)8a|ZR]Ri]r*li&~~ilժ'AN89" ٳzHyE^7.v%Y]D UG\ nv@#9o| F_{nkmW]"cevڊA|+Nw 9>{S[JN;|")su.뎱OBz,+l2]&#%eޑ[.$;9PS!,Igs]@p'ɄH/J '- c$%LZho޲ſaSO*HI}[*3aCD}: @2O|m۶N800PK?8?;u7 H:@p]AgLoW 1HdFIXQZXP_(o*9$-֑|Wq2:}:/@~ݏ$Yڵk?Grrrt#%(0LD0j. n,M$m?'eOj̺t6YrћD07^29x (+r#)IjsIYk}y@" cl.Y^^R'dqɄ,0$,oGNI;8 @6\> Ç*D0j/W^vc$edK%x^@LN:tŎ*?7%%ұl  K  m fmo+^}񱴸\fYv&{cZ)9Ujd=Gȯ3E֬Y[2R~A2]d~~~Nƛ@.I8@6ܹe$2k[Æ_KZ=%f^yy,ȊnT-v#W&F,Kض(.t~LMU6߯`者q^8PZ˯Ҡ ݯHY7@S5+VxK{dnqI.?{G{H$Q@Drᯟ^v͐Y}{H4}|z ^qidJL7^{ր3}JɩRvXHvQo4>>>\}"-YDjL.,,u͛jhh͗,.ϋV[?>  fm-a|4Ѿ+_}Q%mng>;/ˋ/?c–bחH:]x{e ~MRɩv/LH5333'j ٳzHyE^w>M%uCYy p8\Dᤜ@;;)u[nN Hv# @P佣oۺ0!|ivoU^~|CR>k Wd9L}"R[LP{JNuA'DȾ[]]UV&Э~ ҄mWo,!KphˢEEE: #H @@d2$ã%Rkΐ=*oz1p'3=o; Y^˄v%g2F2+)؞SŅ|ω4;r]w~%iȪOnZ^z@iնG! ` Qk5Q=nFvܖ}uKʿ9ɿ}i?Z[GayE$r"ΒSnE"~> Na8EPG])l_<^622RdAI^p*@Ze/]Av*&7c$K>$MŁիwӖtn|K4źYNNN ЦdD bccUyDfd{ϐe%k7mI'/W,̆&9)QkSc36d$lTћuHH:WTTȌxUSN|"\G 辵\5k8nw:^D"Ha.1nh0F H͵@@]Ԕ^3oU޽=}ŇBجA1ѷX63u~`YM׭I@KNGH:_OsWG 6,//wUTf߿7d^2Y;!!A7C?,,L&wyC Hv'" @GT"9էl횫R&/> fɅe.DrW2e? =Sf"˗]v uQ=v OT Hhdy[:t1|}h䏒BmpX\cH$=rc  @H8CkH,)O?vwO1[h=AKl 'X.-hQZ=%сk{{ǑgϞ'Ov$jE> 2_e6ȍ7~˻OYFRE{Oصy{{zQTVD颫;EEE * H=  DRb.uI'>t߭Kfɍm\6dy19CΒmjGX* ^cn;u]ٮ<q 2_|r##gȱؖ. Hz@@6IY1=>0'NɃ-_s]v-q'ZIpſjÚ%Z[R=dԛ<^[ug*p'wccQ {fwK*/lj-B_zx9RNU\\> ]8P **JdL˖-s%TWuAfdjY_t:sܹEagkeh6a+**|;!I$4@*VͲwUyQsslX'qX_WH >7_~B>Rm7_ǬO+R~~xͧc.U_}s^'xdo%toLU2,;)8xTهDT> bM8@@^2R^KFJ6b wNޛ_3N?EwXGyq*y{#g{Oݴ}I6I_nUMfvxx`nDFVڽ{M|YQ/>үiꯪQFEDDnql-8DD!@<\@H;c=FV'l_M$dܛ[\򀌕͸%63[ۯ=!䮈ե#wV/>s}w:n>yrp֮ݫ_r駟>}*K 67JDRΐUHx}BBBʲO?2KYGMo͖]dSl|ź<Ɵ=[oˏ^/uHڰ%#:յGbvF,ߗ+zo@"v?p#'% rc%y#ZV׏zE9FVΠGj'Oԍ{K[\2!!AJSn$@h[6w'߳gkjق6IRr}y }4YZիIꓫ.(hLYVҺf|Ft_rJ&V^rߩ'5W_y_UY*)ʥa;VDma&d۝`~84d nڲ݆=gEqΪe26S٧Oӧ9F]4źC2>ځCH$@@CZk{o6ns&<#F nHixW dlkUt~'cr;M#Fp6fʶ д HvV# @w%=|x+n[V0&L.=PSt҉*^4ңⅿxI)s"9#, /?Qf|UJ#bN]VΈfɩ6.~Wպy_zN8NVvSsJז˒ u;bvG!=V}Ƀ6;,g=4rÆ >Q]oܿgW~fS&X6=ztll=___mo/E@H$  MtdLrɽoyĀ3N)ڽbþa\tqɾ7 ,۟#%v{2 5FR]IыהKOO?]e1#ͨst%ڰm޼> .8 uU20-+1(#>Dv_}VZc| muȗO[i_wME$W'Gs2;Am8nܸlx2RC,tRD@6lnj,ڶ>p=iDDڽٱmJe޵ۯ> ϥD*/-\H&XZ֣P5or%xQ>xa/vnUJNӴ'/xKB0vDȦ:V{OnM[I %\Yy{YdnhҥKn򧭴ۼ9?$o%ņ{עT0aCw*KF61::Z^w60+@"XOΆ )k;sWPmui|ty3yߝk.?>}_uuuufJ% *--q^\RD% B@%#Ŭbw-_8O߹p蹧W^׏Y3 rv(LӖSX R6766T[jK^.TM?Lir sdIGo!!!PFf&&&J^L撑b]uOJ(ao]sdAfrG";k&@"ݞ8 N$SvƬU kB6~.ouu]}'yV7U\X+fIHf%)/Ce Z]/];Ǝ}2l9杻K-#I$;{R$.8h  @Kdz|`0h@q>_y-'pK/yྻ䷠u)RroYIG\}$ܱim7_=eֶ%ٽ5/},FY[U" yljolS)ۗ)ȅH$]X DΊ k&A4n dɌmߦJ3(㫺\{ys}I&3wzIog$@$@$@F$`W\ ;ZkRkog}MINztQn( ^_峿t ¬T$.^mF\c>~T%D9ĮIe5x!#:`gꫮ \eG<е8mi+ErqqqՈl6(]^ۼLF&!  ɭEp. N3[n<>P$2>Λ/(}$"s=[.O9r; Gʝ#u`F[ZZx4g*Z-;;;M5N>!Y͝m/;g{MQt⪏'Jv\j:,..VV_T$w9r    8Hn*^xm3讶8ZH"mwqfp~Tb׶JDJYTR˚JpvW4rswuu 4GmH,cKճٞhB\ձu4Vl2)S_)yf#@E|s dS1@fƫ-ڞ;#G d[o6|o][( jTlPt"\Ңw H"""ٴ$h1V=z"TWұ{wlm(Ȋ:y}$_)X_t1lLH 'C"  p;GɆ­ .)g~=~FmݱyV˾^zy3Z7Wb[M6.- ͵ٛӛ*SQơn_S<+4cE񆥅 ;rQ_yrH@R' +'\sxg{/!5k׮DU4?83X&ϯ `H=q^z 9G.-Ld!a#B~¿H Wha7uIg> ?pPnk |UGgt3_՗%ܿt"*?BZSNٳܵZ:w4 !8-T$quZ$j@vHiz~ظ ?A2@*} -򎡷޹e6kFU"" USSXKHz 4!  04ۊc#':m S)?~]n}hm[*vo;=x'IoK&O99-9s&d}BEЫN'[ :fk!#+**L}W^4Ӧ/{w=r?aAo3Pޅ.%m)r$*qU$@$@$@E"uʊ ]\cYeN_/^|/<3so6f69?xﭳENz:5-uv IZ-GԱLIl[M`ڵlڱF77o=_:[@׮M7dʊCE[oqߖ"K!@E;x- H ܏Qΰ?hVEvM E]A3o>=A>ȃEq\ۻr|i*FASk2*#/~mVlj:. @%6`vU'Oh[k][L_ rPJMMUY/4IH|h .P$gMYҧ[b$H)sW(smoژwϮȟӧا)O>p~V;"Y`af]! CȁL8&"#[ldk$༎)M7^TȦ}KUIڲyH+E!T3?{0'*WHHHƑtΌmΰV`RYʛ"Y4qޝeE+פ.dzgqtH$*h ,T$ݻO\ ^ ")YXX腮uTڏ=:$goVӗ;JsǦpOч$)]})h P4$r$@$@$@'`[.NS6(4}M]"YYS۱qmQ~;_u (>p-7_OS pMAgt4'֕EoHYWW#+}aP$+s!JB۷{ˎcG#} gB*LQZZZ >MKi#  p#ۊd}zG )JYdWDMGع2?'}]I~"GۛEASN*n\l"}(((Py Γ %liiiv/ B_*MמŽf3xE>; "+C|Hjw {aq$MT$I} -E,ޱ&/qlH EN"m:oB_نpF48F]~TPA $%%i׬Y$H, v{w9ЁۛJb؇]lΥH$ T$=Am R]=go" B,MpJnpXlT"JRH^x#4U[l"iu񴴴 NF8ci@2K"Yaie^8$yޝ-/ &fSUjuaPv\jĖbxkA O᧐   "yUL#I Ok/sGn Bam/v! AR DD!#Tfqm9]!erh<>8hIީ;oS$iT$=M jvaڪQ?Diʱy ;Hnm(QmPHa9j <2tyXֆnY/uondIܰێ>pp_Q{Q76%"oI77qҀk&P4ޜb   P* Sb.~Lَ tG$m4mѵ(]YA+7,-L^4VeΊuښa'$}r5k-}L,FgC3cq@FFJPG:ɲ̠=;v/"ڿ2boIF/ǮT$u24HHH@d.pٓ6_͹dUa]?,_<{K}r\+T$uLm\sssDDrw\\3ؚz78l TEV?!НaZS$˳Cf[s2bY E=rp-96VDhȂR$*.@%$@$@$@~G@k;;q^מX2u؋䦬g,Pˎ\jG_sx9Yu9 uGVnmܭi ݻbȲ27dl+ߴ1Z䱣FWCأ孍5Y3|HVUU"\ͻv82/*ZF$@$@$JE2/eI<ڨkӺ&|=h 6!7 d732o~z{o6ZAS!.*YZi GP*W'zڵl֭3=14$~)ٽs %ڧQB$9sۖ dق|HΚ5+::Z mO$pIG( P*V̬̋\ՠ.zQEx~_>~weJ;xbok>c^yמ,u#nɴVTƑ5c6vmS TxĄ|m`tfFQ$!Ƃ*G?D֦"E_wI"61;*z!G$@$@$]kfC4u*Lz'KN}e #w-k~'1YW$Gr] r}Mf)T$hׇ)uIn4زe6d$ч+W$庫.# G *N]R0?i~nwٱu'#kha'$}r5k1|p@[[*DTTTKKK"/Ц+l{w"&.gg[|$_;rA7vբV\xٗ G#@E`FsIHH|E3̈[X,Kt^#}˱X`d}z *JYBEWˉ&H8H*E.w&7hmmUmǬavMML5=ZE1O^{ D⪼mGR>BlXر}pb{nhЁۛvBE+Ɠ7 P&mE$@$@$`l111z“$E~_RUO9y.&dS >eW#Y_`AS R#iEi^\@y38oAldWfӦK'fQH'{r<"TҶ :xe;__ H_cks6}$=2& t$@$@$@~G ++o߾x<~K2'? ÷IZ,vC+ɐBbh8ԕ&8XTRH"6Ԁ KK"17|>I~k֬af5@Hy}kSzR>BD(^ݵ{ۑOCcyt1޳kˎ*f] Idk$@$@$@'PTT4`q?G<><- ,_Bħ@>PHBh?8dmIM'b#%cIiݏq$#""$bM" 7-4hu3$q$m}z,>:Ӗ4m"ջ;5ٵ)ɣ|j][ڦn3 !_ PR     tѣsqE?-&)k"t7ىKo $/h*/{w䴏Fbw&͍ͥ Y&Q2dee%yEE|<K?j#EEs;hݷg{9I1hx}lGnHM%ME[ Z4dmش12b}CY"ſ}E 6毩 ]]R,cei򒴥EK S_c^<7';fVVufDMO/99tII&8!pBpIORO",1'   _ tDȵ)LՂ'^{G29G(ص E Β427e߾)yqI@'ߟуFVZZ R'Ռkj]#:^˚"Y6xK.u"~/7bfۊdvYqpnmċߵ "5W8UHm*zC$@$@$`$8qxVqןo{ɋ, ,a"9oG^uٺ7]:{sSvASpqcd~ r`hFvڕ .(322Tk644vw6I.~ڧ%OruiA\۶ɽ C[tGҿ-GOvP!   @ÇK]G=;/`ٵ/}$nmA]sgΜ;9Μ1c;Hv"T.ƑtvYIkHHH2tW+e2H~ٻص92/bJ;x!v[:~#kIY0D~;́+߿?}[ @ tCapI0[ n:ZUn!"hMӎgٻmOg3ʾG[ǿfuiz2޲QmqZ9H\He0%*VHHH{ԩ͍0Rċ38Ck{o]v ,;iO=$ߊ3S&һO>r_azN`xH0ڝ?J h JdDDDssu,t6f䋣 ĮmHBDVÇvnٰc3[9x7ⱇ ,)-{vY. U;uh I   01"8NB6aÆ)ɊH}_nx o9ikӍ3'(`9͵CeH4omm51|ͯԨK"2Аڐ8Bk,*MR/K<|pHHvm׵]gH4rz-Kc[Q0Ġ^)N.&ksuƦiM)JkckUFmD!Y2V//I[Z0eQ2'8/7;duˎ=)LrCa%N^2))U'N@\syŋ>/lH;Hv%    E-N[6eYs]x>o¾{b=}&)x^LuC|<%o7C ༾ uͦ3رEE>#a䦬>ks>p`GמV(8x=tӻ7;4wsCqE$5 I    *ygG}\T$7!N_8_ʁ&x1YoT2N]4(&&ƫfg$]]]]H . 2Zސ\JoGRv}I&}[H֗%5Vvlo:t_AxwS#)uIac3.- -E]T$"b   p3ls{^Ҍ@eA/}ȵx!dž×eei߾9DH_n#hiiRnxz{vUTThH8vvvz0kw_Dgoy"o-ɆƪM/jjٶ mfϘr[K{+/ܾIY+/ܵl" *2'  x}%+Uo'~˵]x·<2K)ƒzp;AoĉH+4@ؘu^Z] jK :&  }E^|ѧxߙSHnjiG ֦k;%qK9YP!Iuo+_) z8\$@JT$HHHH7o*!/p&#/'? ÷`qrHK'3GqWD(I( U&-$kiC[l(9A?!sMmC+V̓5E."MnFҸiOYgk-yY+n)T$IHr .deeWxI' k\| cEIH KqoX[<װ6=mV"!@IiHHH@Z[[Z[5&aS$@'@E  tCϜ60`V K ,}/-rԩYLJѣ7ӈbH10a,ɲ̠]m"HFݻop;^<=c12$ɝmdu IX# 8B#XHHHtw;VkqE2텙mI#5@$@$@$@z'PTT4s#F eT'A9qDDԻ E#R(=$A=2rݺuOcmp\D溜];[4F|?Yyo_7~ {˩}U"ʤƊd''@EWO$@$@$`, Ȁ1ZchkkVQR26(~z[{U$!V7W>,v"BYsȪܣGxJU|GJY"ؚuՅQTW殮)ZU4}yIҢ%) I9ǼyɎ=3sݷQ#E|!԰ϒC'i⪏' r< mź_FI;GM$@$@$@$@$`@MM*drrݻ!U̡E"dd]]̣ %"ٛk:o:z-)b֮](JBL0gwظ-ضRUN(I)T$ݻJ I%    C Frm6mIڣHbwK}~ǶFKv^^.KVڢN;HV U_BI.6N:'@ERDHHHHH|L~TDJ_޷=z@ɭM%߳ކu(E)襽\U+ *T$ I!    #( 8[Z$7;;;c{!w)m7hݿw籣GٵeSUEɆ)QAY0꺒8Ƒb$[T$}˟ \#iZ)vuuyn !#a\zS+nT$!JI!MloG/Od I]4C$@Eқ $BI*EI(7ͦ-䆇8Cm䦒6KeW{;.BlVU1-̵Z`]0*KHHHHHkvڕ%ۍ~ȕdhhȎC]$BI:[N(-T$h xIof_$@$@$@$@$@" 7F.} /ni& t.ژ*/2wuEvHy֪KҖ.)LYT~A~ҏyrˉ3++zfo3GNKrCa%N^2))U'N_a<\xq-'S"iiHHHHHDѣwk!#+**mD-" 0B.B"i˱#H:BuHHH@wΝ;eʔe˖i-ۻw/>BF㒗_~yܺu&N1f;:RYfkmT7n8kpQب)L=a&G$>a$ ֆ4@#Ծ#kuti **dii)J]VM;&&YܤHnmtjuA I/`,"ɅA$@$@#/Np@2S @| N+8P\*5M|dQDP0ZpMk` aּ#G*VUj*%(fʮe`T'e%.iAk ZM䍷i1 kc׶*dSSji4+-  ;^Lg +ЦU-*. 7)AݓJRkԴ&jkL:N=oqR,PыUI.$( jAEejV)΢)T P՚" )qTV0 9n0Hr%poٲ%00P38oqDop"J#TG[+P,  phڒlQGmOBaTJl6 R&OšX4 BԊhS. #lwŧI(Bّ㊤j6.8-&lƖmQT Riۆž}OE2qݲxiodDlsW$½VPiC$@$@# 5GƫU$j)Jl6-Z d TV][suJR*IB$zwP #*[lLE+55U);"X es0#"r.}QC~ύZ.׵ATy0׶ ["}"u$@$@$`RsOH:6R7IĦ=# ΌBUkSgARYߚI;W)4Vm^T$#hmyUl@R$+cY?/,\e1_qqAu9.dN7KEvHy֪KҖ.)LYT~A~ҏyrˉ3++zfo3GNKrCa%N^2))U'N_a<\xf?"1 Rs{ೖt.zBU1E mWrr\ByTZ")+%TH;X YWWؤ8Hƭ9 KfdOH񮏞4fP"'ī/CV P   Pi*̚"i#6Mֶlk lxe*ۖdMG*P$^nqFUJwNGIRzND0OyX۴nuLIDDDhioذppJ\|VB.7" y'ܫ asm"BI $"i$@$@$_*QfIkoZ3jKMG&k68#XS$1dVXcNEґfO5IvSd}YI=z;=r$|$qݘ9ظ,g . zmV "#"i٢$@$@$ h5GElIv"TNKQyVqIN )QPǡM9EZ~p~HOI6 ӛ*/=؃o? Hlن S;39&psu(2W,; eִx_xgħ+~xw#UH{HH(#  jB= oGҚKr-‹P*_BypȐtT8}8ZNk$lCS8혦"UHH9ByԺF644iU7U$sRW#͋K-rtĴ߼y7UgPN(.y_|2/n4#/{G>8wF7ː Pt3P6G$@$@^ `Q(B"j?2Zmfږmq/y@̵-hAU$(q)K vF51:l\HLlYHbbb2ݣdCErZbTȋᒿ 7mLwl)/pwߝԣ zC(W y|N{=|\^"釓! EERHlByTfkb5qY4\'@EuvHH|E" P\r<h;T-lIDAT#kj&Rr &U85Z Gq6fwIHJJm%6I- ٬ Z@BB/oq?ipԞ#"X醂Aoّ2{`g?~eʒVzXbp׶[&"HHLZ5Y и p+JsqDjcVs5;=QZ[iz<I~iHH}i? =qbw)SdE\($@$ Ȏ5^j$v"W[r\Ln{駜g07tkEnw-zdV+ rI16H'@E# xغu:?V^%& $ZB$`؎m1ddgg!집f%`c{o={JZ(|$^4/a"ɷ]^YpfsZC]\;?<>;9(|sIS }̺<8.0(*8M$@$@V (8E"? $.ZIjvgvrIA $rmHuuuD>'`;E_]gLPS&|o( '}\2fqs2FUĔnVݺmkuPzxdYV9HN.9O4hЁ|>4H@I$ E=YIP3B[ Hkԡ"%!bcc)))DD:!`7MnʪS=!(ڍ"rõŮmH Eq5jFU~X Q$6tw_),+ogs&jgTqErΔ<  *\$@$@$`fJ=Nk;)NXl(x1rq %QƣkZk%+_hVWWj˪fQ<ѲQ6ۇzUbpT5U/uIJF6)Q!m MWsWќ9vXV$ԯl o-ݚZYWE S>)jjS5`KBYkREڢKHs\ ~C@H~'8,3fc   %")<ZtB$r Rsb7C A%6jr%Rf@%^riD)SeI@ SDIJqShՠ Jbh l޼yժU 6AAA,GdtpU #2l,\lccSřnˉm8H,kkұWס嗮G9y>l.ԑUE2boz5v؎;'s"iHH ERzPJ{oΫ*J9Oy]JeS\(ѯhV(S)VUC#d>ʡ LxFlHYH=j1ddYY!집~HڮХ@2㊤u WcwzRGξYv\jq׶Gdl`ٳ4jԨF?\$2 IM & wB5[&@mI GE)IP#m̊-ㅵ;<(,^%ޠRִH*GJE߿o$$$"'M7PTlđNZ6Fܔ{NTzϪ{\+EW>ϰaÊL5 ISO/G$@$`Fp$d&OER(p!R!E틍JEC-!p2|t{{?WTޠbG7 .5p$鐀 P$E/޽?wU~gS%G=zbէv;od ٤y$@I  0gwmKuO佑8*پ gHxJE `Q+|$+E)~.p7S>'/Lx՗*[:yBnKGSN9s&SibHH$ 6&L5Rڜš(G]ER}YhV^"IbRk<>U&ة*Эj- }C8! 78PHf/۟|侢pY6,~ޡx||+Tdʤs[&Nbo뼮HN0<̑_"A 77Jlv$%iUM25xw== ;:!#eo(6vmO.Z<Βʲr4^7_?⡻ M[Nj"mdvɀC!%P"5A$@$@$mޢomfoHLAj۴L1>O ؊#zml&VZUp#P|<'@hىKU@<=+庫/m*~eMD&C!  [U/6J E4>%06ui]#333=*ZOH{_0eqцiK2VegR!G&u I"+ cGCħ+|4$) H:KIHHHHE/222R_VpuE2<ec/ܱo><)_SD ,ik-]EIWgב"3q `;Ő;v08P$C|, V̄/??伙k?ř?M9gܓ..bIX!K$+ H:KIHHHH|Oij,qJ`ذaP$>e'(wmc8cws-VpWqz'F3k8kMW$ç-]uHu I1GH$@$@$@$@&#ڦ)))&&C@GGǐ!C cZ"di*>sxQ?X>ehO9d^2UM2$+ H: IHHHH|GPM;,,wg5Jl~'+vK^7^z{_֬FqE237 s"ihHHHHHnݺj*kdPPP{{IGaرc( F?d %orNp*Q 2ܵJ$*Nbe      f.++)|J`޼yBDKJW8^v\ i_Oɑ +*>] I!F ƍ[f 9$$$hCF"9FQ {Qre%E~爰bsSpu:%- KH P $''O2xvwb wC;X|K?׳+**!#_{j$`VEEE}(y9g/n\( fxo?2SdP4JHsHz-[&  }9reK@3@=l21?^;Յ+ #ܩlw"288X MMMve  y K].~]}9 UW$i BƑaPtIC$@$@z'msջ #$[׹nȭXmѱ#UX@GGEXk,|W..ФOkHhI H"   &TpQ$QB7}ugk6lؠM_}lLL`bqg/Jٍ"r4H#Hz+%  Bb1>&Yu/MvaD'Nl%mݺU&O#YZ;*Gy#z@Eil0Of>B'Z wtaB-Z|):Hʪ$!)-Q;rjUpd#/q(cS[a ^vU-0e0M-O4kq ;ESʑݻw.+0^΅\fT$!#ms᝖]JgAx S`>[Ւ1$T$?GHH#LMΠHU‡wՑ"Ia ^h\y#=9 *^K۔z4^6nahGf A$)ފ3hg˕&C/_Hs(gD!*1:94J O*)&uI q Z٢}A"A51 9ARUT|눵$&TT.01L9_ZS@Ĥ[T^ZZ4FHhI|FɐY8K_l:*LY햫>g'`ªae_EUΎYR"),9tkjU{nβκ-wu:p_~:xdwnS#v{REڢKHS嚊OCK?XY }sq5N&#@Ed o(kpfr bBI4(\EGI+4 UHAHNv^u֤"ԭTSBC)2St%V({W:haR6K3NiT^+<(. a-IUf^S/UHДo3JO@ IX`ZNW-*ZaJFv'CղTv*h9vH**YYYZȈlYH.1b%q K y }ůo,n<3wUw=9E 6u{|]@$sT$u>A4HH qG98#l+r(B"T6a&b7*Q'|K]K\S$P:jrZ-θHJGBeLIafQVG*vCIe'1{7cHlnooHpǖ%5W泷/pW$W|-{?_%Hd1otenߵcxr>\M I`g$@$@$)B XJF_6JW'U#ў Iوܬ`;sqIӢrrswѢy* ʍZAVbTjJmZۅl[=FXܲ]Iu帄nm;j_v ڵUL4NܬtDeQA.32Ү|5ITy_3 ]y~O|GDhyuD3g'O=NqW/C+wbig+**, IL"@$@$@# T3e2)IuF,|D^oqR6)*OvшR^±Q-lN+(49*A_F0FQ/.9Y6Ik hMx,7BųH Lj ìDZt!6k*n:ʜoU aJXoH#XTr#z"I@WEmRR#~Ϳ(7nD-~w̳N9 pԊs>;LLr9ͻSG{[4xmCM HH| h TVT*M:*37E+%␮vMhߢæгmRQw9^ѣ]O:apHvJLVٸܫ+jJS D-[Fe(6h\lu[mWք$ 3lCS"ӑRN`k򄯥Ĩb%fhoWLD\{Z &nS [YYh\[G52ɒmիWH F$^\zz##zn^⏪&ck9dۿ!Y/{%22$6Z [nN\<0<<܁ aP4TP  pvkүPٸ-և`5t$=LJoq֦8/eM/JGgcrUjUJiA ѩ5a*#9޸#BC\#q!#8L{޼yÆ S~x}՗A 47Gq#.9`Ǖy=Uȷ.xӭCor{ dgC",3XH*\ $@$@  VadgC-Qu\(ӂã-#-SO;:s-1M#f.,,490H3f Fnx W-[#C"ii$@$`H7\20!'F M7nԆ 9ɏH("$|7QvP4|Z 0 Ǝ=B֛\2^z!# fH4HH:rnЦ&b#   *\$@$@n&x2K/^Le]]Æ ]<$6G$@$`@DD50jHHH"ɵA$@$6$woͲVBw n x@zz6}Mttg?$@$@$@$@EҐFIH@o )k㩧yW+6l˶[jKąކF{HH,vl   pI׸*  _ 9Ȕ5tQvtK}Seg;S4/KZ/ n M6d$ɺ:LHHHtEƐ  ) Ri#AP{gvꚖ\JCeg6|82< m%  uLIIs$@$@$@!@E= U*Ջ6ul,^?n^z ]rԨQƖ% }Նd }N"  " y$@$;Tڋ~fkC{KqN<'w;{u @UVva Iwd[$@$`nT_}QkcJnZ*tI q77aHF`CFVTTTC$@$@$` T$ 4Y4H|F@J{7Ug5z$FK83H@BB/oqң -[61n8fgM2e@a/3rHe͗_~b5aܹsIHH? PyIHQTگli~bۦ"/ KŎHH'PVVM_|KN_]OFyѩnDx QΈ.T5qF`6)YHHDfc! wP훊}X~i/ t oE$@' 4dPP5A$CHH{ZP Bt@1+[I(ZREїgHIE;˃ IL%B$@n#mѪTI1KtROtY!Clxи"  ͦ i+uVm8)>"tB8v)>UHȾHHH@H|h x@``wՕ.\.ӏ;S#F(**6)G$@&"_w!#?D)!b5z%>nR$E0j t($maȑf= n P0 6< |N=ϧm/ض(C;v,t' ? c(*Hx755pJiOVE[R$R%PZ#oq7HkJ"y IvM$@$`DT$8kHF\ z|k+m0\)Ȋ{@RYhTmD5[GR+b SKBT:R$@$@@?2H$@@8q<f'lo4t zB߿? KHH@I6}ڵkuBIlo# sVԊb˶6 J.)hSJ$@$@&@Eё "6 rwm$'oZeb5W_%F,=/:  lǶ2۷GHۈ2ViUoU#ESr~-! 01*&\H,PҾ˃Vu)O?̸ .=UUU\$@$+Y2$草Jo2J^*22褵ȒDiⅵK0L8z[HHH@H|h *OZm2O}ύ,6lH E 66VAh=Èń-*ֶlƮ=JOL-(m*\NHH@Hvjh *??`릲m5/]~9vl{oPtbbC$@" *-o<'dGhEEEM mVqe*m%1R1Rm$@$@:$@ERBHHm~JW7^XSeϮ-ǎܾ)/a޳#PtےbC$@!yUV2|ZiOlQ8Ty)Q4т* ފEnGUn|$Hb5MSi IO  P~zԣ˲vי޹葃v-_9>n8*YalH@=j1ddYY^M] kNjkH-<U e\V ʌ7/QPɚ . 14HH@  *Ҟ:uL׻a}TǶzӗGطg{mQt⪏'Rcg$@: [ԁi vg<ƨ(!$m]HڝhJt!%KԱ2qF8`/!h UIG'HHI?pH/^,+"Vvlor:*S"\)ItH@M.5pܿn6ADa#&jg*JQ H:KIH@bbb, .8oٝ׹ Y3RB''L"5JHO6IHHHuf9.  8j(Eonn(۽s˾m;ckyȯL"}8k$=mHpo(HZ =T$$@$KH=v^z 9*@iӗ[9tpufDM"kYYYڧ}IOO۸l6(;uuuCFݻXX0|$RHHLg TwKO۳kKVh:6mܐ;++zɣG#RRE6FMQ &;vN5AޜE$@$@$T$݂ (Si_s"CjrC4$/̉9E9""BE`_Qg7$@ڵk&05'XL<W$2x}; $er$Ѽo4A\ݙDDUy#:0qtޮ"=$@$`2xἽ[>-U%iMCݻ#,*M"$. x@ff6}VmϮ&ػ&HѮL5_pR P4J,NT`q`ŚzB~*#Fv&1X/,r|T kC$vyuɅT$d9L c8qSi:϶5h5}9;wl]] =H:t@k-Xh= O bveΡVAkJ5 .i+ 8B6d$9&psdnf`#*+A>A*Zg(>ASˡJ!x 4T0R`U*;:W$aPĔ?HR.KXZӝ.B=AT$A֤"4^B$@& ɨUncG>صicZiS$R$GҩE#.4TL$Uxc;F$IwR)pbbKJo 6B8Tv?Z2Rt-< UW5])+NNvI3VSظƌvkcDb:e}*U"jJbvU,/贋YM PcQ8|k fufYz^OEɤRfc:rP@}Xgk_y>n84 R1q3nh7Ky'IؠU$-i{aX\n+Xa) H] G߷{ˎcG#}MkSqyVPYfɮTwζ‰S @aavի;b'F&ģ)$<rw#r# ;[E2x愧4K{ʏT] ٚxƋEqgTD&\|*7%$Gr8 a8(1X@JR#ŝfD6+]5MT+BWJ]*bQ[\Tu 1 \.toP8jJwRXJ6̯\QIA@EkծmUvȕޭ& JIQ[PBSqH^OvھQ+)+. (o־zr 1ЎDt7F~׭EY}ov%Xbj2_.U\Z0[ш+(tٽYI7dS$@$)BqƇ)w=rpf*G<|hTDVdxNDUV)Hd2E =iBxJx#I$6oެ;ĐrU(F Z_H`N)!G5IðxTn%-5aBREkBA#D>JM)lRt0D(cxcVh Gچ3\CLrPbNUJg(QJh-PhmFTx.Z1qDБ#y9lܔTkO,Q_i4H@]Tu(>$xxR%`M*cZ`9GJUIL UHH*Gbb%yfz+\XnVM~+^+vڽQ`b]iQcwmVJm]%Vy;RMdGXRS)E)ʋoX֚0[t,My;+\-6{{y5 "Y*߻vuno+ ]9E&,,L)=M6Pjv#TG%0 Zjiep9 RJmEؕTn8JqR٦GIզ|+'!K]U#YS$]3zUGiV>Ċ(ilnt)eтۮ-΂݉~RfD^I@ٸRVRQNl=!V$Ġ\TbIW_=b=KZs*$XuZ/6]h^ˏmHۣiqy*\~Ur WRR݈b]n6\8%S~dmݢ {, χnG9MP~kl|;T,y?[{v*.aE$@$]*E8mYcǎi܂` bbnJ.Xƣ>|ڇ4 F>CݱY CHHHІDIC5s8$|BЪN)II(koMHf*gf*!NJo;#RZ*8* bתlVWQ:I);5D֞E/0ո)fv]YFX[PRW*YSvl:,&Bao1#jlh. WšYZ,KČ+hKH(eJ1M׌rV$UBsZYDv(9YmEO)Bֶ5ۆ"))־IVe5ERR.l\ܵHƍW W hɒ[@.ÕC˱woϫ+-"#g~lmOoSiij&W"W;#1 mH׶,Opix*p**w HlsJ"] ZjCĔfKm]JE/E^$05ER4v^uN"J(dE͎4ƩgMR͆"jQ۰SsVN}B$l+EcU$f-΋X` BKER/R E+YER*G0Lo+ֵXPk=fU$Oxb!)ӊ;jtڥ"˩0[Iv?h;(  0dYfЖށu>㹴o.k(O/"eM%RB z#'. VF7 nwb]/OReHa9Xu5fUX%(;]0 y ї#xn#6&w^Ƕמ\h UKkQ[[TZM k m*,6ImJ'\94Z #"3T&TR ➠\Z"seL! Wn)+b(7kMӢ4߉/EZh!֭SRW.cS܅p@댫BaK 6lKP5ER~" lټ)Iof_$@$"dE]a> H߽yKmΦi>Q$\˼WM Oذa6} ~TkWBFQnJTH,!'^t*{U}ڔox{KVZ.t YM*{pC A8kU*MCSÖGHr䓹Yٗ!PjT %UB\ڌ(BTynW=%h\*\%dcFHf EZx $֡j9о0C( I୍]<](/ڽ eGfQn01G ֑V7 R1jXzZbhrZ*}AFިm[?%*:\Qx-/煲[[6u;*o忞*vS@Eңx8 mE2/bcAVrPס{S==]66fm[EK+e[\ۺ= @]]CFzgrT~"zXG:% 60%H8 m jю|ҸKԽfYښt|kB".KtH'& #du5Y}C9r|ۖʖ-u9T$ż" T%pIGj FdQۥ 6 2SU$PԷsBG*q΍9b:]PBZFkV$a(n58Dr:Z,HF v{tsh:N&f -*51uC|R-Rlm*XHER;---QQQ& vdk]#wLcXT;sT/\SC6d/#:ۑjS롾{X\.lPJxJi6ZS&w:e *sźwu#UkT$}E W$kK%^9|"jmKHڞ檪*Tbb]XJ$KTDN]KHHHHHz8# 8H6T$7V":}XtAGG޷gێo"D#dAAJepI @SSS``Kޮ7Si I_g$@$ɦ[rw܂<א N"Ɍ' Hvu7l"ݻ0;Y^^.%$+8e1ddEELb$@$@$@$OT$9/H~CeErsMfsm"9h=z;=z!&UCٱag[BEq$#""$bM"d7$@^"ۄ/unHHHHPHjh, *#}ĥy "kmDIk>BR}s6lC)ǎA3RY#ٝuk Dٝfy- jׄzGL$@$@$@F'@E3HIV<3H;~a+f:H"L;6<$qfjKq$,DR&tMz @*TFZ}%   0!*&TH|iN$v}$" Io:5!#ľoĦ޲Vafw۷ũKԸmA$]k׮fnHHHI?dH,Ƒ\#$!J}ݐjc׶JV߱s&l>7IBĞnmGA~"UaaaJ#::}=% dffjCF3IJ&  WT$u9n C&+aɍ]q8;ȲYHZS$ck}{vܿ۱ Rٷg۶T:Xڛ6SiR\:cƴƊ¨k+sWWdge(I[Z(eQay?&|7';vVVufDMO*m SR>K 2i}𧉫>Nr|qώ> ARSS;(ZNF$yf7իWYFD*$2i3 xIpf/$@$-sms#vp}ʰ;nI]lcW()˾=8| HVܩBE[Snb T=Ct{_lH@E!#3\#DR*119HHHH"*\$@$`IZ2~t ]SN%땹m+ػmN{3R#鉵صE;=$bccUٴ񶨨H?TK*"   -*\$@$`vIK 醫#)Dɞ=z=OOkRЎ"ѺR9Hn.uPB~UpIA&ȖI? kȤ$4M HUN*Q ET$0HHQ$EO!bT%%%|T\L;ZkdmvmVbw 3xt "J]rr*dyy9Kz;77L5!lj넣#  *ݡkIHK,*'N|{ V)ɆcǎV Erwf(BD)'+Wiɖ=,dQw I/8^~]@JJv6Cձ=[۱_~9ֿė?H?4f5oܾ >6 zR.6ksuƦiM Iu%ՅQ TW殮) * ,M_Q8uIQʢIM>'nNv쬬虙͈Uښ§}:99dOW}81~90ZA`vigs$Z-8¼"ث*'ºq6B$@$@$@#@EpSFI5E.?^87Ď훎9xr䎃:9l2ȑ" ާҳg;+:w4[,Ɇn*^[S½X^vdDR!" }mN*(Ie5CIHHId7r k}ɟOz띷槅"$Ɇ-uy;6ܿ[w_x>K]/N>={t3 .BIo,Tޤ; MbŐIJIm6K$@$@$[T$u;54HG"v ] U'8Ϝ,Ԧk2ks\5ٓ?wS%>ne9HvPFVLY`z&J^+55U\9] I=m  ;)EYa_zQwS|㵷t?YS$eĨF?{uwP'O=OhۛdeRG no {$ {q022˂`[[*'755-!   "!lHI"_ti8'}o\x/=xinGR*;;5f${g? e/i-E0kTƝ񶴩~!`(K:ΐ5MC1 V^rDv_9|E Ig$@$(䡃];ڊ#H.]tW ~}O>8ڵT$wmkP=Hd0׶SzLl`֭["b*ې ?'6@$@$@$@ @ET& EE,3icھd(qQֆQ'H\.`wy駟6ƪ֦eQ$w+ -V36mLkLmHn(O/+-.X*/2wuEvHyVPYf`iũKR&/OCn9qscgeE\mFȯL>%5쳔!+-!Y1fsmJ~uԘ$({ڐ^p Λ^+;!  wT$}p$@ `M,.\}SCYºH^ݢ ".uoruiOxbժ+S_NE~tk;X؋`;66e2`vgg9>HHH@E$ Sd}YbCEr{sC+[컠eraC{8IH^pّC0̴>LDߨ(/f}XG+H@M --MM7''ǔ+(\ҔA P4rh$@!"ٴ1}sMֆ=Z=T6!:8!גۯ'gqqErKP$zЎҒ׈U_V\SEBU@,S>^LkU阠K^y` rR)YHIHHH}i? _" O֦e;6!dמy1qeEk*O(r\,\m`HvHގ-Օ'I񩲀x]I' HcUkS"$"NzZi*-o!e|.mF\ip~y xIf$@$S$K6jUܿ"k!z0;V`_3fV R E"cN*~HHH D& /)JڬH^p*Ud I#m5lV PEK QUU ~^@ gP WJ$@n%.Eقqt.X*/2wuEvHyVPYf`iũKR&/OCn9qscgeE\mFȯL>%5쳔!+-!p p{cH]Ќg߹p&ڦeeeTo@-77%M5 IO 'S$ƩrB\BEҠ Y7::bACuE ʕ+UZJJԳ1wfN*=Om#  ?'@EO$` nQ$6Pr }$5V2կA'Nf777[ I?f 0#"".sR I#e$@$~Q$ :_0^)ܵkT4ޝyGNrUpdNHHHCdwZ +- dƑzX7T.ٰ@#Sm|S w)6«v#$nN3 5*~=< QAoqQU~(_(U?{(7y f1ʊi'Sb:"U#3y(IHHH`h" H.5nRZ ];te!]Ǚgv WNy?1򇪼0 smc3կ9 hmm R9a]лve/+#'U[[IHHOG p+ϟO{'}hK]e鸤ߙ;(Aڮ5s{/ ёRRTX$miq꒢E %}NܜYY33}5==5S7OI ,%trrȤ&8!pbq=;r,4w^=R}JQ06l"^fJ 6. B  " '0g뮽bv 32'$x;)\cdD5R' Y__{GVVɓzU% wm~ѹu?SC"W^cCôԨK!í Ig$@$gɿ Yer$|$qһnv'k2%"K/P3fijHP9Ue%,G0cKx~\~s -v !#9 F]*..V?'x{A$@$@$OHls$@%"zw_y" 9&jEw\;gƿ6Ugkϩș3g"Gl.!?O+\)lcL$TІDI ό@r2rL$@$@$/T$5H,pVlH~Ȳ\O~w.šEyJ9GccVo6l}zdjYJUams544 M"6 1u***J&#'B xI$@$@$T$?GH"X:1g/'4mLe?^jॗ^ݔ^?"o+E%_fMI_Q8uIQʢIM>'nNv쬬虙͈Uښ§}:99dOW}81~9!W @JMMUžQա4AvzrD+iltB;WA9_G3HHHKq玖 ɦܘU?Ϯ.NkQ| uYV}u̚5Ks}3b痦/W*~ʙLrJ%%%f_?e~ 8X  p;*nGIH\S$RUecq™g.D"*P>1$mo }$ݿt"Svj4,??_E-":x9"%JEHHH@Hh! kU!Ȟ={e>O?WzHSao wm7btF*@xAmHl޻w-yND#$"N:+ P2  pG"EUמyƯv[lׯ%y ?P4 uwVUZZd8nub$Qm|1J| U%EnZLHHHtI.F o H&#㶲,+ YYYCOO?$l}E UmTvPmػia7 @bNnb$@$@$Hs$@!"YAS>P:;n*S܄/(eo smfPu;R4L5Z-2::-}\\R C@XO;IHH|Hk pd}y<:>;9 v ӎ0QPS'K!79ٱgf6#jzzWiknYJI?M\qB㖏{v4(nU D#<<N}N BrI@nkka4HHH@Hyvh JiE,^St.\ءꣅ  ZzF|K%U݈9|;)HHtN' qN)ue y%$kvx駅y?i I~@~} T~x+{د @NMMUdN*M"  ="Y $@$`EE2n쐊Օy " ԖוZ.R\nrxU$GUk~300P%GFEE1'hMƮmUpI68   7"FlH^zU$ȍFɉ;++zfo3G~f)aNN>exާA9|`inK"wWT !$Y{>---=%#""p}=%   "i $@I"]A?{'hE*Ǐ?S |{kyxŮ"9Ϳ~Zڐ!CG ~]wBr jmmuA^EZ% e3sRq "Q EErOX0Ek;/5$IlVHΞ={Μ9=z_ya$2ۤ JYN{ys >P$Z_3z{{;\Wsl޼C<3<;f"H,[B` `/9s\PPbTD/ccS 6nwvvc9 hnnV Jqֿ崐HHHHv![  Gr_@|?{rU~&:1_[U$!J"o}]h=yս pٳ'kPR|Y1_gF-<ۄ6ǎ˘w_쀩~UAjTZ$@2dc@N*VdN*cO*'  Ptk O lۮuř!Uk%1rd'|$"2'z!_neG}$%%AD"A5j0g%C\k}:E\,C .%%EM735Wȋlqsp$@$@$Hs$@F!`Q Q"2T( gI⭲.H"@^^^dd$9_R3fҝ#,,l6O=q! 6i'|WE{3}kk?DÇ3Qzc!B6OۀZ-rݺu퓀5..NK_z/g5   c"i$@~JZmdI^X.KBCoem\y>luI#)I一w$_O6 J7l0Ǿ}Y9 C jŋEr7g㟕{ϑ(<99O TީvB'Rl7 /&,N. 9|0HHsWG|ʒ`CwB!tٳgCm>*EUdnӦMG򩿦G~`w(N"86wtt~.9C卅PCtfKde' > ptt*l   p'*ɶHHCl(١XL<#_ąܨ~yH(C*/%y!7L[6K `T؍zjk$<9$`\1L?9;kHHl"B$@ `S AmQ<Ƚ%?Y/>>ptc /zĈh3DMAb_H!FgHD\Q짝$`<|{M‘%lHHHHth6 4x O_(e%+2ʲ%d}='tػGNx?_ FuTY!#SRRl3m#޽A.wBSHHHH?{' ̛7Ou=|oIVן OY.Q!Iq +g(~U28晥VuA駐JK)'.  <*gHHN*DɇCHf]RA93^t9/;m#<"Cwc$]:O gk$I]z+I|/ b>$  '@EWO$` /qE2#Б>r޳O].+Hc# EIDL]]ʷrIxx8_0|ϖ;N@M _ co {$7$~60PN*`$@$@$eT$ ݑ @w W^=_/KW8XfN}O("YO6.#^O T؎rN M477?'\  p+*nHH+$%oc䷊Ӗ;RCft wAr^999nh9=JJJJKKʐ w- 曽=z-:p"YJď>ygpHHHHz8# w@Zj0^<༥&mXj$F$q!J𑄛A;-$TpTF[Γb$`۷oG|UUpIdv9   S"ii H=ą"<ж(#EeC ٰav66n{瀶"=i ٨CPv ae>ɥcԹ$@Db. b%ِ IO  ѣG ګ.[ԟmC_=b+Hzg--A$# UXs?'22R2څx Sز .m9pHHH|Hk p'޺v”m7_-@l>}l?_Ò3g"_zcEEE9nKFFJ۴4[`M )n/l .C$@$@"@EW/ %nj#F~R~WX[z%{gtIOx []O:," $r!omm*|S_n\FiZ$rR577v IOM# `O?zfA"m<'R|衇-[Ȓ8_ewkKE$_RbhVŹ\V Ԩ&&&2H ICN& ,?Ď\ U'bJ.9~kf2vXVٔydzcP__;iCF"ǽqGMI@AAۇ60Ĉh$ IM & '#oo>{+U [BF|7Νpx?iӞ{ /P%Da``U0,xcYL cʕJAoSRR ;PN#{nz .ZN*  P  <x:1B*gǧ'tI?)7y٥kDqh:R #f$#S̎!#u4g4şW7Woqҟp$@$@$T$}] O466"MxyD˂>Xp&V=Ȧ |2pvJz TU6>0A *$~?cIHHsHz-[& QFK5<=/GQ"O%iWsV y1XN.|6mH*)#Y?3$ xIOPe$@$`/h&!,q;n|}~Lרs:}݀A8Hq@q@,**2i" x@mmmpp*d$%?!pn",: 8@XHN && d$F/ mYF2266v޽n͑ @ss*'Uttt[[[;ac$@$@$Hs$@$"PP'I)P"[7pS3))IE^SY|Hѣظ"2 '] I3&B$@'PUUF" ϩBFVTTz tUpI(+9`HHEH   NOU^Ht16s|'}8Upɦ&#$  "1lHHHo޽aT۴qJ&'P__ . bɇ gP WJ$@$@$7ZNM;44~%!ˠ .8N  ">lHHH bD*]#!MB3 . .#\Cyy9K:hIHGdj   $ȝ"B<8h; b5DDD9L$@$**u$@$@$@~I`޽vK4 5*U>+$bY^< cH:ƉHHHH?IOOW nhh  %肂կ8Ci]8 #H:BuHHHJ8Z.@0"gNnMȦmí~LF$qH|s4HHC{8 3EPH Ikq+5 -n yakim[))BeLg9ER6 zyET$XICicB,((~LN"{'0"n xIOf$@# eA:DCY8 ͢?S?xm0UeۅxNZT{a?I}tlv;#q\Ji$@$` ֗¾IH|D[ Pڍ*ER$cFkJ Q4 G?%k[Wtlb.mQERkmm(HyX ٩HӼJ@YUQ3::ͫ`g$@!`1R-$-%  7"lHd%ݢHZTmނ]ᶷWkC[끨7ERʼnq PgӚ")R )n&[ U]ymq?fjj.KHGmFy BFbrD$@$@$`I.  PP)B[Iti12ό0ˆ0tܻw1P9*})[lSo$W-\CW;fH|HqqU\4\sD$@$@ZT$*HH" O2-ۈ)|!Uj#jSmq6ua vI0j%Lr*p-hS*-nH{S?XF@PE!  $W XT$"&Z!eZT܆[۲-+h'IΟ-l+]ERbp")Sm**N=]Q똉q܏ɕI$`n0 I=m# Ua"AEO)yqBGçZIN\hM#NAOEiGoZgbWD˂Qȑ8SiX2D2n&"Ȥy!+?"H$QLvIHHHz6"0k*-EpY]6{ք5Lm"0ɚ=N DhJQUCKY*hTNuZS$-cm1V$tŴ>LDo  @-RFE,bP  N$W @&A2fSB"8ڮhPB( #![^-*GkXT᳉C器@B<|0%2'wjZqVZJjhmvCCyh3<"Fjq?fnn.Kavh iȻM" 0 *F)I$@$@$`vdߟh׮]ڬߜ` H?Z MG#  "iЉ$@$@$@#}8:I\njBI+ X$37: @ P>C@$@$@$3Z!p1 g@1 h!SW}[MHHH@M$ ! F1jȥCI,MOOgDZO,' "@Eҿ曣%  s0ߖg#n<7Z(H?f $@4h6 _"W `G6-LUUvbFIc ~̈VFэo6&@$@$`nT$= BC"@d-LMM2\r$$@n%D^H祼=dqk'lHHI;i- @ƉsvH[b_~y#??_'&ٵLI^!!! *r؏Y\\\ t~-7 }|t[   *:A$` B뾭H[bHQM&yzl_ZZZsOb[[j?&ܠ[DH@?f_m &  w".lHLHO5nQ`MC ~'ݏq^vB$`<rNo$HHHwn92 Ϡre˦L-OnݺUHQcRe^f e;6h4ДogPmȑP$Iێ X_^+I{PY z0S5j޽{шv٣jsf{`yIM29Cӟ85Io h]D$[ 8 Pt >%} :gBV8pY'IDce;Ƭ#vR76,/`<ځĉh'k%I  RPr-F-Mх@TxvX/QM Jt*/.a}Sh ?~rsd$`$@I70h+  P4rL$@#䄼(ɓҫQE*t[K&((y|*?*TO*}BUB Q2Q)\1!#JB^έjBoŨmأlߣf{laDfDSρ5a -H~ȊHH|Hk =%)cZN8)eAǩF%HwB RJUByP e})ʱK҆"E;Jqڌ iO|k /Ք/ڰGHzl=~ڄ؃M-MGko}<9 @sssDD6_> cHH H'& x^CLoR>ç""/Jk%rq҆U0UZKTv /EopHBޥ)_2T$=f0v#YͪUɩHkcyr qsssg(z:&q}["M' "i8HB@+Aq5ERO;֕r UT+PJI)*_Pzze&lNwfk׮]Aٝ6y- hoBeiM< IN M"/J<)=[!%KIƑTjdb_ݶHF͜}$ar]ito6*eKZ3** ' [#0 퍋SįD B$@$sT$u>A4H@_ BH*̸"R+ uE2ndegq7AZ[Hmkh}9hS)Jk.Ƣʻmq,nW$gΫ}BI]n7[_wXk\PPݜߑ I-2/'0+:dJf/E$@$T$3Hl/sBw!<")%; QJLolڰu2)vl\{pMEBi'zE}iHe x"EoU(oUv*Cqب jʷ6Qf`{D!(6G|)3[#cFVVn&#B$@$CT$u8)4,ԩS[[[I? 8ۢ"韸8j}bUWm+.** hll'Xeq?fMMwzg/$`J3 L6FH)čH&hHC~悖ex>|8۷/;::4ľoz౦Hڸ4T9a,i/F}yK\һC[sY /)=̌ c" J$ O^`W[ \ #tK=^R/LRT*J|hp<ٖCF P__J ;$5j 2ornք1tc2X#vovjST^ .8Oܠꋭ1i; M$8  /",P>Zw_kLoudyޫsnY9 n_|&/ؽ}=cE1-qUUQo?@4k\GfA@cPƺmȍQ]¯~틍eH۾iB$@$`I գ526nm~IX3]?_lV>zYF !ݿ[x_xq9`D7p܃O_b*ųroid;z )}qP͈IHT$ź$mxF6FJ!߽%t号zg4o޼nHH=ZZZ Q, W;Y|_znn[5܄nCY檖kC$J=[6'+z/|oAyy*S's*  n"M ePҾ֛׆-im,\YW]yx0`ubXH&_'&ץ湻%ZN\n?5a.&k 5"}PxM_l z>"  *:arP\<ģoۚ Sf}3YE:oE3!AY&_ 8O@; 1n;WS>yWxh:IWhq'ƹ*k/=]]KzR؃cn_l1:lHHTHj:9ʒOYP~xx^:[E,zsbCDr3?H}_+ !*~8ߝP|sMNb_cܲwJo=K+ݐ^ hÄ!*nKثW/qDD_-E|(z)$  8N@JaCb|{oYkRAvLJc YsG#IHHz8 ={5KP ^9a3 [lAAz?k#n3cp ks?|Me\oQw#ImS^K@Qqp/ +-ɽf /8__lDuyFLv*  "CڄT#~~Vl{s ~L{2JnYu OI%=22ۣ ch=22f*m,TdʄHLDZ#Lu:/5 틭|-禐IHI?d[Tdžlk.s2l߾}[ ?[tbGo-vcfDFHUTx"a}` +'?čMy' fS$FXy|=^j+2*n/c,_lYn\-lHHH?{7 H?%$$LJmeQn/E)o;zhCb+kp{a.x  "i pM 5m"RiϞ1eۖ #̾d<#=䖵qG-mGel?z"#H{s&W>~^s}o!K s y_~Q~C9@B@XQ^j{KAVӣ'Nԭ/rZ⅕.HHEhh{Kig;S3+Z=G-kipܻW/ @WW!YKKK2RgϞXWc%yᜫ s}Ckp/8)O:gğ.wyGr|-C'FaVΠ6Zݍ,]lHHHzhoz̘1-7nZeӏWEH&ovk?9K9RBAtj@aN9bsf~)S aN"=agf~M}?ނ| btN|zF^; $@E 3HK-<ܤWsǼ-  LVF@svKQTT3?:W odž|YR/@p-1)},A\/84 pO' rb`S$FM}O5Z?]6PY7nHH JA'fۂR#vVTd<5ܲ9\-==ݍZx]W&8ynhltH'2n4U+hs-1?Y)/$ l\&Jg42wWBlcvܾ IHL@ &C85RG-Vkw/ǎ9#sdsssDDZ%ǢcW; _'2\ܸUΚwKk=㨮$w B $t!t5!`zMhM( .wEr/r{n\jṿGZݹgΜ-0poad4uu d Zpl?_0{B!-P|]K)։,)׊!@ HtQe+6^rn!-V/?&ER'V8({F;PD<_˒Pi7k (H## V,VhԓI")r@7 *+FVYSGoizuggJ}DpX!U 4@LT 2-JW_Xxظv]۷U\/t( c j:<3LHtpDvU{/J=P1gb{Ki7sEstk#OԆc++#oi2H<6¹ sP$s˨p ȣL1[iˣ¹֯dž5vn۲iI};<73iR$e U,_vNQO`ݺurE8رnic[J-ٷq+1l@~3B@v6[c7guoWPe;oyv`Il&b.@9HE2;*4auE!۷lزye4!^J")C+E;P+3r&Ϗ$s2@#eXxTu~_ݣ}!xKi8̭5stٹ~:IޑDesF}h0vaK[3HfD3`* @I@L @;8 eZP6YXiKi%ใiĞ#)WT:o^90;ÔٔiR$ӽQ$f@&co]w6g-ŷ5R$sb"KG q(*uȖpl޸b۷n]sTwG&ERʾն@F&NnvdgyyyTN M!99½}=CL+0kTF&ESMphf5s4h`̹?3}Ko-Q$=oq+YRa@dl)([8{%36[džEnZhV~"hiR$B,@-ss?3iI-tӤHw ټE]A(S\HeY`ƷdHщ,Xʅ HF O 8SdMdI9 dvH'#O:$Ѻ+ ؾula͢c i>aiR$׭['؏Ji;'=Q#Eˌ^^{[i}V-8q]e,yL"P'4m-{syKi71ӧHw ˣڀ(;ZAQ$ˆ\tFg2V|KI&pB@N@̉n"`+>[(mkصse9lb&ER2[M UɲHCG?39ŶVQ$a(abbRm}ƸiR$?3QE,u-2| Q|I%W.WǷl%-S$K]D |$LE:SՆ2ah[=d_Y~̒fMVE?cɨ\l[Y5zڊ8)#ۯ_PX殷0WZ3#<ºY, "9yxe nYN'w߲q`2 2H2%W @JEKnErv%dOMcǎd[6,?~~s&A|;Zk2USulAxj,lg^ER攑֭ؽkGyKfaQn6,DAYNH(%sJHjCι=e'(,l P$%HNqV/oXoC;[9bưӆĬH3Za   be~VDB,H*HFy )tYmUY-za.1bgyFOS IupRQ$kNC3HVVVvDn9k(iK 6dӇT(%ŷԌ{[6Z|3P̒m@@ H֞!9d;Ʌ3KbQup[\dҚsP$ݤ߲eˊl]R/.2@`…5se9 T%t)(3KlV,Ky s"kIHM\8kĒ9c֯^f}m01+d"y-d) %(iWv")˫/7N3պ]v['~e{ǒmڴi>խH`N(2RrT`iݲ۷8j Io)5D̉JBnE_L|zPoQ$ejFy<[7Jd%;gm3F d>&m&9k*Ow4IU${YkVݴnn/I[v%<$nJ{RY`gK,ѣ=^o߾Y`w,23u+9h0IH,/jƆW̯?Q9Lh~p+Z5<Էx@=IH[-k=зd6(9cTB@ $9Noa}GJg:ҿgm;u+y^v˦5;Wy$LQt/6:^9ntT?h9ߞ҃9ؚy#ٰ~ud\U0ʻ:LECGsNyQ+gj.yVUlXh۶nU&ƾe0"Yp6J!@ ^(L :p3^##HʜDeŴUvl2ѰWܲi!+LŒV,|AٲdΨųG,YZ1c؂iCO-EN7gRfM9s|cLi#MvrJZMYِ:~Pq?;1>ݷѨ,z{D7K{4,ڰ N/ Bq{fO hԑ焊LeO%1b=XC'OQ+zT>KbkRm:~p쏎k a#Hr"Mʖ: 6_jVLaH殹Q"ෳA/Ú=~:~MoްR­[7ڱUױGeՒi2I\ qeU`lųG.5|ጒCL<|м)N;{bYeu18uT_NfrIIZNڢlpşM`>Έ^o FiK:C;فжmם]/;CS!?cZmO;?3u'&"RͱuYHbY/rkZYHڤIL&zʗ,.pB(e{{t#Y4Uh?Erژ.Gt՗_g߯K{߮<ȽMBEv ȜnYnsڞW8Q UL`++`lW> a-ˆ~Sl©Q D5xsx_+V s^, W8|iժU$}A&'{mdŠ-gҁ;$T$m"omY/YR-(dd@"{m?|߭׍|Doc`ER<=-v0F2zkE!%E2Ǜ{՗=U P$uo=cFːɃ:uHaHD @"){m?>jڣK__>v"E2 c$ Bi' ME2n?0lF^߯XPھ>CwX:oӑ: +d*V$eSȔ%Ki2e[&nrLiُ԰1<&'T$ahgc{tjdek{m6fIwD0Q$srF "){m~şϗLx't ķk[w1H` E B@lP$cCMA#Ru]7׭{WwJue9uKu V$e"Ca1u$3f7].6mڴ|Ų G H^}\;K| V$0Q$ʡ>@ERC^ٳgrFo7HH-cI =虒cS$W,%ˢm#-wڶ~] 6ڴb^xgW.&Ҭ^.C~暽egMBC6fPYT;ܷo_{^=,YEU̗̟?1_^|yOEbq:kaV+K挖]h6[(SܹO÷*Ov1u(rю#HV̝4{ȕK{Lc0"H @ P$3 <C8yq")R֪kWϩʱyr%%Sg#??^_Z1ťH(}(jsv-$wR\\dIx)4gΜ,^:H^ve=w")ڹu07_\37r˾sA6x޼|DLM' H6h+.SS׭#׾em6m*t5;gmDbڎ `@?^wEGu6c$Ocfydʭ[Hh۪Qmz}ޱ}ۭ~tЭ7лg kՊlSc2iɬƍms22++Օ8eAVzGT9OER xqq?|Ygm"Y1j]W;̭kgÔqo4lh;L%E+Ey8ыg\4k*YNNNY^Lٮ|D)NZ iQ ~xTF#phXn5p:jΩ'# oժUDA6~䩿:=fWUڹMt߲V^ڹq/Ix9g7z[LRR1}i7}gO=5eSG/m&4ġ-7_ɸAdLF-ŷ5_/./\HwvOh[ΖV׭[7 @@@,x(v M?픓W]U$O`0Yh;#@̝=_&-'.!CXEL5&.[LVuɢ"2 YӱddS$yq^HʸӇ._8IEsc ֯Km@r/kKtї_4OD,˕&?E#"t駜4#)C-B_i[wUGgq/v<ω',?-dNY l&"ͽCݢ!H~ پ׿ RɅ3K!yNJ+MmF}&*:d5(XCa"Cdm ir! b+eMYA~dERt{zʯ~ޥHV,Y4a.7vpl3mR!#Etˑot:L/N@)߉O}+/KIP|QKY:k{@O"!^dɣ:r P$dd @GEZHһ'~x=q?:W؏`´ڵ=O$Vs'<4@[qD?r<:}ˣq!=}sTϯt4井1uoM|Ё0x+JDLR =K X1ˏ?]͟_~џ.x^1F\[9o]o7/ɫc>jJt C@@,.ئz*vݽk粅SUܧի}QSN~.<ײַlNmErݪ1v 7g")OlSV\ۆ/\б6b߾}+++ko/k0RYS֑fն8Օ "~~y#)eSweya?~+@aH8T$wlڲyEHEM<[ؿ=ΛVj"`lrY%3'`m r %"Y}_8-#9mlf_|̰HoO\G?_ԵYG[2'΋elcTfV`ڐ{gmm.tcG2R:ġ i^u {Fz;m:GÒ Zulw|s:CgYVTTeK=.)))}/ JyI5S:eEHYMn$z~/?]=F2Q;LNI T$Gum4DE-{wkĿER|ˏtԣ)ƫVbR$Ebi-쵝^!w@{(y4~"S6 gD{H1Gp<#>yoq?>'>#Y|" F~M!tmN.[y͋,[E'5rc C*s&(ضyI|,U\|?wOGqw #6:@B*s&;e#lZb]>o黭W[Z|P'[d믽&3ӅjH͚6ѷ ]0mA;쉽g9fڱFmǩڗr6KZOre/dܠh2֬Q[֨}kx7J^a]^ڹN/(k>;ֻuM;!@YKE2kEF YER|Qa&|ԱmN_~ҹ]yTLnܰnraSf/TۣH'pSO<Զ/<)KL0Q$ʂySLb۫Κڵ}`MNվӏ?x+.g:vhW]˷Hb HΎ3s@ ,]:k7_3~О][Z&'hSԣ{m7iRfs𥳐tBItl:ی]$[ǖl7eDɥulC?+ҼzAֱF~wd۲uli%_ֵfN/ Bq۳uԑUTTJS9scu&ϘϕjdALǾ=hfRP$+f,3fe[6O8lGӪ'd5Hj7RP$eYɅFjӼP[>/^ugsdY\2nɼ1P@@9N eEr猖I[nZ5k IKޥ >z3G"98dT(eee'7Nr2[t\&ngͳ ljYsUWm߾m4S~)}Pn]^ߏaHfQ$"xeoX;-Y0zDA}c[wUZ_醫(1c.Lc  H0IV"t8UVtɪMwؾdќ#S1#N7hƔ҉%?uPYmdHfnd\t,.)#(Ed,|آG7fgVQ$lES6oܽkGG2stioq'̝1*C5f1[#ەh;e *o=qX˲!-ۃkz+ޣaiJ *\p;Zo{zrꙭZ.n(KY:,\+,aiSF2heCLoaɌB@@̃N DH.bєUKg5f?_5Ap쵍F K΃ c Ls7^t?:L֑L:8L-OD`lm} d PP$ ݑ) hBZt'͚ eNQCvSF\*58!ͫ7jdohTwG-5hXa]k6j/wxnP=5~HQ(*** jhk vطo],s)HPt":L1jZR$ط0F2+,J@@@̕N,'{<`N"}pfJdqr%%%UUU)$5[e[eKII ɤxx&d2fAZԚ@td%.߂"Yk+!@($(ۅ֨I=6C\B5L[GQ!*(ѪdɓKF1%#()xK9%^"& "[xDv:? @ 4ШHQ$L\!f`vΚhW\kˬm[192;v͙31C|e$'ɔx&$Wb%"{ϷHjS@ME2ڇ!"lAYjGuyVZgM EO?g׏3F^2[P$sZ= AE2ʔY)(W]~u& }bۖ,7.C>c\]$#Mvr<`8!ͫ؍F~wd]ڣaI׆uy/wxnP=؇RG+**2ۏ[-[VTTdѣǒ%KZ!KO:)evn5<j"jxŏ5}o=NiVԼD{ C YEwfǟ|M^?/Oϟ>"5߂";IM!@ SP$3Er#"9q?;h&i0ս]CFd xl8l9s uu9Γjd;% S&ʞ@RQ=a~1HfmgЦ)xK9%1i"2@~m5A+-(\ DP$O YEw^KE XW_%sǤp?ܷ) SG/m&4ġ-7_ɸAdLW-+B5_/./\Hw!mv֭6@!@6I! $H~+\y!?:u]vc-q2:1 RJJZek[U7)Err0(jCu$ΊiP6HVO~vϖ^tޛ/oAF;N =P$/I$Hy-RHJ,xΨjErt֑L9om:cD)Nғɜs""9`Jf0[OֲlHjYl;ƣ7Hvxsx_+V0;yVZaJ@ dŌgx@|''з{-(\  o(XFHM\8t۽QHhE2B RP$+f?g- :L4YB[RS$3̞<)/ei^\  (EHMH;exL@jd8LHFmJɼ-(\  Il H(B?Ȃ<]VO!:T(,pNr8R#YH,|֓8Ef?7/KԬ[Vxkx7J^a]^ڹN/(+B<;ֻ9׭[3  HMW_)d$Gߍ2~cd8;! mi*! ":a2{vZ?-@V$#uav6C iE2CsetaDQØ i @HPglSSP$O!EL3{>Yˆ40񃚎'K5ݑEofi%_]^_(ܠv m<:WTT pdɨ䓂ÌOʆvŶìYHz{sx_+V0;yVZX!")һ[F_.<DmXG2 dt!3iErj莚^}#7n@JBh;""I{tg"! $Hf(Mu};sYuRfagB2@((˅dySEx}QsBYeE';fG/߸jkO_9-ߘod@wfY1!x*V;ߣa393vn072gv[! !H1:ccfOo crwiL9\͋T-6j@De'G _75w4q>;ɘN͊eE|%^塝"ij==mۮ;[J[n2I @j(Y=T._׿x決Er5~Оz=q9^S:tOW㶿m/S$׌izb?xGGa4|3/ki;N=GZ+=d d?ERfmwmI'䍗Yۑ~3_)Lv_*~eYRd@:c7ķ1evF|f}άr9mV-mErk+'VL+￟$nIn-?;g}6I @@$d1; wg3_䇀gZqKdyz;_9%"jZsR>W>gvBۦy'K5ݑEofi%_]^_hC}{7m4{AQP$e#;]wW ]bsz0=q_~cx@HsOs)',#KwU-=swزvinv 3FRɭ&o[]dNu$bnYz8_@P$'PԝmD8G&2X2£Fl>Twa놼ʅgOTw5B3{g)_+]=9#B"H:|Ff^[JV~3Vfgo,۹iɮU*&Oz.mEȵOI$T$_y#?H}駟k.+@?(קIogA>?߮_Iv{(SonY:FREcV2mX7ICUsuw}۳,c$vM7 Ph<IqE?f}u?)ǐ-#񖒉 Ҕaz|+>z¦]{M @R<G_ږL"1YQM7-W^{uQ$mԝUvlY:kTZ6ƌ5q:8oדB~{m'f{qǵj*)$  \):1Uk-#9kbo=wGojKvHf]3]7u~ܽ#P$WMzb߸4lq:y^yhV$rzѩL@ x*_6My't͛[qʘnqzLҚHߏa ꤓN޽{.w8u@L<!EsqmHn7\rY#Ƿ\'oEfvfںv ' (z[VNYL'r+5z3O8ƍo۶-@@P$cGN=#W?`[Ǹan/2^cwJOi<ͺ"7u|dմ5;onOm@P$׌iIh{u^zo_u$xL *)KS: *s)ڞP|w}a5|*YH0:t'0c$?|_3EtG0v){혚eYۏ?tiXܫ'4y-w$j+mko[;sdžmܺqݧY5w(ثiY}[b)-+gYAׯϾ>F ( HFI@u$Wf}toi ǿ)LF{}ER֑j}>V&hR\_Ά>n?>t2ߧ{˾N:iAi "H^2katnP\嗞+ɻχ~3ȕy9mg;3v7`RLrs@:2gE|pɣ<|߭2s啕0EAm#k;nX@6=ӺEcds?l^ק싏J6鵛=,.[c~wZ8Ն d H&KG ")?NI4Gw]Rs77Ap^Gr:T^GrO*+eOTErcgV}譿~: nR]|ɴ3ej X+2kO%:vK-i:'~Ӌe/_?($}1v)K|#pgqCɋ[z{j.ry-Pk뚯vm_hamOyE W..{/:ā9:|K䣏<'7Kwoߨ>:okG|Z]f}-dQ+sImMY]s}KOƸwFז/hھ|%5>,ֹoQT${vGvu@tInWܫ7ځGMazzK"3vnݺ]ȫx*~XVn65HO`O<%e_6}0fŒTErE;7-ݽ}î[7sӢG_}eKe^1[=5ah. T@򟀧"9rgꄇIIYL{󤑝A>֫$lɫou$++F5h7uxج#)c$W/[lSlﵭ;x*[Zܲr?~g/ dZP>-@J<Ik+.8d,v_\ڿjĵz:UY~Ӌa|k췏Ҹ&MNNT$_}{4Ywgۗ<ӽuK˪Zݱnds*+_hl1+IHnk|Љ5ӂ i'R"H6H6rx<$S'|?/>H P~Ӌ#9묳&HNEo-W *;`?! 䅇c /x$H(U+v(m,.m9㋦Y1gMKhҸ_/.yGDz5 @EHnĻy];3y/gI^IVsܙH좷ǑQ$mDf^5ߺ&^ەV.bɄKB*;_=mK' o>B HʬsگN}8o'-aNW)SܦN0=h:|+;{J| H#)>DY3<27vdyI2e$oZ)޽mW;6޹j#:~2{Ւ{?X@@N@+v)B{N~wI''_5ߌ)\=s*0䎷6;۬;XIWOz'vfcW,Wp)fmɪ>N(T8|^wd_z8aʿ"HVd~ӋFe=إƍjn@6ȎC<3#c!nc'ȢHn|KI%ؽc].%mò);6.3uW^Nׯ_@/ @ GHHGQZV$eԏ=w|/s?9hXVޝ o##vY۫&w\4z̾mV*^xك֍lFב5۬z{H‚8E @4W)ċʊS=H͟9A]*,qP$"]ǰ>-:-7]G[r񙵙k˪oڱYt i]1 ԻiB q@@@ҎZT$;OQq^/W\ =tύv'F|}8I]GrC;Ȭm#rEcW+-nu$WM%qe}?{mWc]Gf:kE2B"+7E[S\9g.~EZK;ֹ~azzٳ7_{Ycc+mZY7.BBryt1w`Lh˵ l7RkEr&<ڽcӎe'Uvl'Ǡ_Hf)dtH#ѣGK׮yZM*b#OqN㥧8G&'J>Lfh><ɭ]黳2LrⱲdfǢHʾ7kF}c~r(u6dm!{o 8)#6ia}r'Pɣ<٫C͗}׭ky-E>2m.g\nW]Dz-'|>yx)#,-w~o=%Sˏ޷_>FR6?ɕv+Ǡ(e2DE2C)6^YuۧO|H1j`|oS9Ο7H9ĻʟI9LO/C[LEI&I d7[O;%H êyZ <ƀM׿W\qo֛0;_0fZ(wVHn,߾n{AnSv ɘ@SLf _^EI;t>zodzN0W—>j(IN& /8>?( {fј#'qOFIHHf(Knݺ*UL0}"/i ͫ/<Xӏ.gƑazzM6Ogg5QjZje=vpK#|xQs˿\toEtma|_.:#1 lSY1FmdvU3l"kVI}!}YnqC>uඛ"]]=Os^4-}6#hܸ1[igQ н{w]VNEH&a $0ַ\vaJc$7-ٙPErLc@(a@D <{f ]y9/3{}tMU>|1̉wh݇"Y'c+ Y7VEr͘v)hϫwda4@ 0k8=fD>p~Ӌ&Ǐ]zo"4h@VH30B586=6;)"_ypo8Y~ .<=Y;6. s|Hm[3M="H P$oi?#/O:'};7UҒ:k?o8/5nxApCqYGRvA#)zb;}E"' T88夼&~.< azzр/Z?s盭e+VDN !9sI'$E.3?/H&dDta|e$H.ܱ1"9ar9 E6ù 7P$+iHrF-$" ?zۤplb=i噏TkH(ͺasSWl#vI_I @EE)o)."G^vY"M@)s^ힿ?թki@B@+2zxOSs/-e ΝOr%7FrCŎpErٸm&1{ , pIDAT@ H~҂T Ȑ݀[>dRr WO;>"ggf]3]7u~(4`gT ( jZњɝ7xVH";۬X2rؕJ*\4f!mm&Z 7@ l3￟6ARӋ_w2Sfӏ@:[>7^{uE-_0f?_pj1KZue7C!㤪 >(cK9Cy3󨎚 yHnJϫԸ~@C,1rfV._xQ$׌imr֨(r=g֧{QyKazzQQˮ;*dZ9ꋻeGWok|i^:aGWMiA " ^ve*$w0.c^?h"ׯ/ 4yM@_;\}yoSBڞ}m׊-+ѿ(ym4@ KtC@ ;4>^~>-2Zl0d6"/ʬm#jV"W)6d}W/\0|e$d(-@:tn-YɇoV$5o)g9LBx.kĺu,AM ȥ}-.co梢oϷձm7]^lc3Vʲ٫n[3}ۚ{E[KΣwE2*;!@i(9}T>]8T?fr?밢ˆ~!UiP$uglSY1ܬ#zJWrx6xR" 70edݿ]>kdsB{w\kvҤI)U ! \W|.:7?z!Z"1GRN =|KQ2c"d˲QrE2gLB@: H.y8(y̮~E]Z6aHGG֏Ot{m"鷳dv弡d:Ktmvq+"GtI3\9U{KI0>ȵz j4A@.yF8Q xߨMû?+w9oV6?97c$WOۖꡊC_Q$Ct;I @ Hl3-QHn '<m w;p0c$Mp*{fm/+JV.zJwv} !YtQ?r|3nS7a)GXUr]+ 52[r|˧o{jnX6^k[cI)F{sGn]U"9jI:}") >CZ/yy.fKnhOş:]6-x2Rkm~؊> vjj/ٌ{.7dxm t*=R膫.xaྋ/ԠAl2[DC3Z<Ⳟ}6-Z޺כ7% ƒU,~uKF7_+ _(3 @@HbH@EE<'۳S~׫ĸA$#Y[نwg-c$הG)H:dh4vw>I1A@ b2v2)o%xSݚmأHyQ};"Y6J!@P$DI@aQ'% ӂL u$Z}fw|IH"͆>fv}I^@ ȌHYB˼H*.ߧdDS2Q|0I'T˭dt1ݟ.lƽrBc"9|?@ HFEB$O@bb${޷-Խ|Y駲 ;$K@}EPQUs6Jz˂f1nr[V8T\7礪"2 @0HF?$`[tEr;`Re@r>{V?yكyQ$T_>fd HHFL .noʅ+Y9w*l. @ ȤYGu;?eGSiA_9{E IN@f2fݢ?~_|K,m @H_~fG쭪ekEצ}hɋ(h &"42N@F86ʋ|gd"҇8`'0˴e( <&дiS~~]T-*kg8H7^Gk6i4@@(a(Bތ{߮?u~yj9RZ- @ _ȤLjs'j鈯Z9(!Lɗv@@P$Si omƽMe7 Rs~FYRU@ ѣfr-2dpR@@̘ٳ'| KUY|y[-slƭ!{-1'@lf1Ӳ.V""AZ dnrk*<$y-!*K^ %"bu]_Oǿ6o|w˿$ŝRgܯr%3g r^/ћrӤI_~osN6m9xV^R GJ)³%)ZRtٛq?-9A uߐ[##Hjl&)^Qj-RpeZ1G܀ef徑inS8|w~o gi)PogzCuG^i;˄LzszVU"MY>j4G 4(wMJGq5͈ |'`:j[m__d{MG|&э!|w;݊VXwtl=Wh>CRp N/\C+HW il޾0dK$Bݳ4nE6QQe&ҋ!@@HLz*t>/™nQ'i N9 RkUݲ,ᨰgHKF4óYMxp?0?BhL/pTs T$=Rh{*"UGڇz!(}vtHOVE3OM VfERJthO٣Ha}y})8 LC*aɐ9{"fıT5+ʔ@""""H[3`&v(aIl)ca&%T$6ǎi p,liy0uv?Y1Si<9S4,Nk9}Z}-dx~wuhfVi`FJv&ql+ϛe]M")<e~]jMpQv+.%cknSt(jRE|!@@Hա9:HI{>:[{{,d '~37(9*38vkc( Xѳ;=IG "{gWW A 84GQ)nUQ-yd6(u.*YE}1Hvԓ?LlP$} y.+)T=6;8@E2%S+jHBa" @()Cst,P"GJ1/=r vO9FBüO8 t(MK?ERשp^<ܺIn8 (0cT[UKՄ`KqtvQbJ׺ ɐա9:|"2J'@ @LC3>WDH:-3=5[k{aD7 ʓjHP;Jh y|a~\3q<Ƈi>i B&⥣R$ݪ[j/ؚƱxSI[7a|ov<#I4k; ps?$7cBE2%MphrS"!( @@E2^pKxP4ݥj~V:lG5{,_ȢoJ {I9 ~ ;*{y.u,-EEA!`EMv e -mE[m0H0U$_2Ry"i/#8k~Bë=7r @!""vO OIH ,S>:lpI*><|=JX118ߛf=911ˆ Px<I}!d~=V*l~Q7.%dV1to&l/ 'HJYlc0rg*I]2n\CMhx#+@ 'i{Jx,h7kX#ߘǼfG{O3mNRqf({f>c0}[S)AKS4:cʳC忒[ާ͞RxF-OcV$=՟ }GHx/KY ?4)S߄dɤ.OE,i^?֋].Z^@d]'8FD'OiPBU3O7T͞mW:xO#/mNRqFu?E?{ʎf>cWC|`9!E4@ )f6cެkГEPQQݯv=nb/ 8@{ yM$}_SlxIi`T~umou-L^")5sq;߄Um&Zó^KT$E:V?QO¾\m&Nhx@#@ ?Ix~ԡHJLF`:wϯ*]L:!G^$J{0HArs?+5󠮕QzdWa*8"mIfƿy<;y ہ)N\4 uLo7G nCQj7Vg*=vɣ "xFnc5)GH 3~aXJqǗ @@ H!@ @ @ HFEB@ @ @P$k @ @ P$C"! @ @ Pk(FH @ @@h(Q ;mŒ1 @ (NC@͛7GX%pСf&={JaR@v8sڴiuV @@P$ '&L ڗ*SHJD7->vgϖfGkhBT& ?2tU>&["bw}wd6ivw$HfB# p⎚4il5\988rQ pIkjs3r77ܭȚ~!sxԮت9K$HPIGW)њ4\qB ¨[2wIu!@6P$kC/칶"|'<'L T,T>vMy20F!Q\z1JtF4BҐf^dY1[$@I?7Ona s -|EB`Kp O55!mV8*~)5saKShI#L905QY6LtQ 1 CHG@@3H0M툿6~Zj$!Lf5KgА0KHF@ H̨%jVfIH5I݌,L5 m?iȑʞ#q\WwI;l ])LG"!" FL(aicZ/9u2*Iz9d"<564AtI&?{;&{t=Q5R+Sd SK*DU]Т%I1%;j]y)ȎWiLjs MsﵧL4ㅶ6_2SL*y;i5'Noic+>x= ly 8̬a6F!;lr,-wwDC~xYn18܅@:0ح` 0i"i; 犩y\k8s3ح9.ڊgQPBd*0&-N?Sw%#!N# ,SO[*i<j(;{L{܁Sʺc_1$y14J2Oѿdv,g6*z~rz S XE9mn?+ԳvӔڴ]^)u/—mUm1ؼ'|O/'w\];F5tR,388wq{)?t8 @@L >?р_0: q!;:[e*i-|jS :udF dbZaCnn/g)nC7"RI5qDSo1Lo P$.Iճޯ%;jrnt=?z}6$ /b45]HLGg9Hz^#UcPhz$GG;'sHSl2:1)~weIH&uA8Z nigcQ4ލ\ );=/N8Bڏt+Rމ#epSc" {^3djhk&yT)5v zFE:ȼ}qe:|i`1%V'X%=92Ţzc]-mZ[ta'۟HwFsa:yQ?qn7F2&/)~oP]3K#gbw_{ K':0=gMNAH=[Sn&vҵ~]l)(^PdnF7Z#i+vb,fIZ \/{3h.$,?EҎeeTt/١j 5tHҮA8 !TQSTR qq̔ 4fYC_Q #iln-Ҙս!B!d~ !Hdx$b9kF?=H?6^H72??%xYG2<({k˭edl U$.I6]V&lĭHj^zʧ ;pDGt] -4E"o H5h!K)>pڎET$8J1kLALr87c}LWנסzۮ @@LKkhʽ/}m('Yu413iJ1 HoDkFK,FkhTQ HȹI&hDbiRL4 .7BeS]C@,mUQ# Ln~<| 4%7}ljn?٨9rR>0ث=Vr0Ʃ皐Hip\gTFWח@gBF}}}飗,'X >D C3 YC:1xK1w(MW踃5*tM\FI@sXޤ^%iE.߼ԫ@Cm[痉"1<]T36W/;u~g@w "gprK6fg[ϴׄ>r-H&>2T5z B YCǃ)WZT!/jd_p/昰,M sJ>9QRC0fl[ m& Ӷώlue/ Ubn2]CMrS~$sH!!Kn cFElq'~8¾(&|.H[?R<;A89:t{5d5[8wzGtiy4G,j, JվUrǮ8pC>tD@@"紧wɍV #/P}36|MZ ;d칪d!= l `CeCe aH #<!PgJ P$SRli&w8Z^!J2=. _3ID":09O# D OfL)%!O! ![eILio> zے,šux L`j`$a}Bb@@ DuMw= $XU6l~(۠ gP$PP$A(}!>rbXv.5u0×{Ov"\B4S>H d ;J>!Dw!sd:uWeYb3o՘Y@HE2NEs@eZ#*)QHrNAFH|>EҳP$ @$X(}RE2(+} ̀Q_J%gͳfR$|La4 H-S2HT77!Gqj]FXs,YZ>d@GHRRB@0ȡVg[Uud6Yb3Q)'dP@u(AQp//x%jq(}_)|/{z)nқ=HE3L%O)B1/&7=\hn1KGP#K)ю2헱v暭|#酛0eك.54$t^]imJ ,;c~,9)0P'4PPYsSvEn* uP{ngmaL4 طr7uN7i >nm4!ʞ!.-#eDA:wDO0Q>:wfCVM\nHHR[4M?%ճf< ;8x[/ դ }@0$%J>1J@@L%]B/i |#aJxlg&:4!1*hfoӄhhz͟r|o8F"9~2~ FmӞV$ @j&zyi;6Rk/8\=;]o#ڛ#T&J9B$9ҞܔuDּ4oCV~]*]maz9{FY )ŭ] CPʼ۶`[3= S2u)I; `^HҖ<gG4ٌژg 0K!mCAcRH=QزrH% @ (`89ڷGc"#zˤ5DdK24Q 4ї :֮Jj\cAS"ij!P&;j'yڒTQU_8 !R&1͑TX[;Ss@@w ǰ{Dj3ZS RzhYiW-M%9  3Xo^Uݯ{wM3~ѳ-8z33򫛧Bgb6#9\g%1r㮭%?ݦsvDar̗X{-u?SiOwi/ddm"Y`ǎ6Mo/:\d@(i1 T|BEҞ(!Li&;kjERsQS&05JU6 OvhM@h+eښؑ[tZrX(@tp3д^4uLq-;LJQ1 HFk*a%f%k*i C&B.yovؠe٣2ݵssQ* 旡TZs#SMwPϤ ^M6{AZ|;вlUss~QUZh/j_ Rp÷{ČxPuҶ:\ @ (⬃T%ݸ=P`HhEFne*޳Mب$H5["C_J 9• Kb #wFѳv 2}gr)QRu?XQUIPZ @! Hdтi尀a}u UˤZ92܉݃.kaOTejϕF3΄ @ Q%]vjX:jCHPP"[ ̇d x@jÈMf kaRJxj >L3|5LHt؜F%!@pSe *:c˯كCkUH3=~3|)LfR+ @@y%$C $LT l*:+tT[y ЛWF_:ԄU5wdG!rNel&SY@(h(4 @ @1@Lp$i>ОnzCk',eS @ @ $"TrDw#"> J.KTeI8 I[n.-VcS u9mSËI.O&7@ @ dZ]U*uα_JkJI)!3HʊB4C`U=ZGiXnDI]]zԶ6  @ LE2-EiJAL|0hm@$Rd@2HJ/`n|oK:(R"3]]DI+3Pzms!@ @@- H:hN>f-ؙIKѤzb&V느*/"nCt H#S@@H)YPߘed,a1\2GW3 @KE2e"͘;ǟX“ uO/=O¬#S̍t(_4mJM 5ɴt"w.`in&rM8YIZO1 ;J3RGF{_-򯄱T;>R @ ()@K|LL6ܪiheI )<:ш_?553og3knQ-p");Fai M4~miHtISI[:4 W&(]79]4%+ѧ۴Qvv}BJlm @ !wj˭=0a%h !b79z8/#(BCHMS׀JHwFjĥQ=E4HV@دj SC,}nD<n%[iY܄yr9N(J @ 9($utHV+=I-s#EvG&)dc)LqJᔐ}  1})n*_م K4GAbq.6`I9˼wрǼ q,I4qmb4 UͿ엲֚\m}Wž0LSA @!"%{6_ey@@0; dtc$SELgUKo =|HivDf[4CyT6I<4:(Vw\wIU[3:Tq6U( j@j(={7XcWlvq{lj`H%!@O@P?U4P{ ab.)ZGw(nw%E4$%PNJ xuykS[g/t_r7fHT݊h-M}I @@(a( @ gbZP<[v9hsuhNv(H:a*,XPӎNl;pn#?9/ֆK Cb|~@&( @ f]ʅJ]?ERU?sbӱf_%[QRX 9vqlc4c'gm'it֜gj+06b4X+YB dAt3 @L@E4ժt&VŏeDF7M)/YLy-zjC3D{Z4mTS'+r#Qr͹~y(Doti4Q!_V P(ǹ @A@?@|)PK2;Oj3nXor5%5 @ P$t %}l#9T8hfY+Yd*"V-;TyttСCu!H̞L @ @0 Hx+G<Ǿhb6:lL?ed#7VT9F؂7<&HpV^C0mK8An;M̝Q&⤃իK9NNyZT3HJb0lgZg$~߻j>vi~`tؒ$\siSP$=9 x4MӚh&0_F @ 4@LOVӉ.cUAG֏TR1R'Zof&7/^K7WpMZsG+54=ӺOG{Ea4M h8'ae$a%U LT_T2(%V$=bz_W4]0񳚹6hXvIn"),S Ֆ4m8nb썽@3Bd7W3i VՍضm+m>^)Koڊ=U@Goj}PO14X%t~ @ ,'"RGu(T\ol1\/$K8'bMQ)GOQO"q@ˉdd [ dfIQ4JVLSAШx6 _E6ZVTN騌MLlZ աK!Kힵ dh Gr3Rd7 "<ښZEv״#1F$-ktk\tUyIZ{V$sֶRݳڊ=gv~msrUp^N/#S@ @@H귧H6z[4EtC=Ic,ժJ[[G9r:haHMFQ} Ζu솛sM2G"F>et4[.xh?8[3/EK˦bvsӪ)GJG5Wݭ OԎ0/vj MӜe1vi!@ @FE2US}0jcP:/:YXJ[ r(&abxt >9("[Ic͐@3<& QIP {)_jڛfAH*F!=і|E*`d)Sg hHL%V$=lu 2vrI3EҼ/=[gu vz i_JnQ k@ @d*R Fh : RhDWOEO*$isHERr) {K?ERGbc"SyGaN V$ +G)=FH%3=ћ3%s)Z&VuolHER339T;@f:(K(~%Jo$iHqe @ ,$"N^_j1"O*~"UkC =M)]%0((̬m?˞jwnGGu>Ƕ3w)IY+:Vt#])m.(!I04޽ml-s P$M}f)OH@s~{$+O?"M @ ~(ia'F*3P.A!C!*[%HM3#5)rV&eH1(l|,6::L)[1ugHؤGwp*f%bfmku\["M6 OG35gmGJ?͞Φ85 8VU C*Z+ M2n$T5l3V KLlc0 0Wc rd5=k(lhwe.i8H/#S@ @@HjcCJe b1b=:̞-„ShUӬlC @H: .MNEL਀'1;*`iW/BISVU2⠩Nu4F bt1[լtZ=t$֙E;B7ɑFٝSk[>VFn"dߦ )TQO\SLF*|(WI%^fyaj_kh':?t99OjlJCtp_F @ 4@LTL/UfWL>KjfxV಺驜*&oDK @ @,)RHK.ڿ_C5ә %@1YgQcCVͦIΪޡ2 @ -hyRn2TEsSfs@qUAB#H:q[NJdʂ @ CE2Δ@ @ T@ @ @ Hǚ @ @ Il @ @d|)  @ @@ @ @ Hǚ @ @ Il @ @d|)  @ @@ @ @ Hǚ @ @ Il @ @d|)  @ @@ @ @ Hǚ @ @ Il @ @d|)  @ @@ @ @ Hǚ @ @ Il @ @d|)  @ @@ @ @ Hǚ @ @ Il @ @d|)  @ @@ @ @ Hǚ @ @ Il @ @d|)  @ @@ @ @ Hǚ @ @ Il @ @d|)  @ @@ @ @ Hǚ @ @ Il @ @d|)  @ @@ @ @ Hǚ @ @ Il @ @d|)  @ @@ @ @ Hǚ @ @ Il @ @d|)  @ @@ @ @ Hǚ @ @ Il @ @d|)  @ @@ @ @ Hǚ @ @ Il @ @d|)  @ @@ @ @ Hǚ @ @ Il @ @d|)  @ @@ @ @ Hǚ @ @ Il @ @d|)  @ @@ @ @ Hǚ @ @ Il @ @d|)  @ @@ @ @ Hǚ @ @ Il @ @d|)  @ @@ @ @ Hǚ @ @ Il @ @d|)  @ @@ @ @ Hǚ @ @ Il @ @d|)  @ @@ @ @ Hǚ @ @ Il @ @d|)  @ @@ @ @ Hǚ @ @ Il @ @d|)  @ @@ @ @ Hǚ @ @ Il @ @d|)  @ @@ @ @ Hǚ @ @ Il @ @d|)  @ @@ @ @ Hǚ @ @ Il @ @d|)  @ @@ @ @ Hǚ @ @ Il @ @d|)  @ @@ @ @ Hǚ @ @ Il @ @d|)  @ @@ @ @ Hǚ @ @ Il @ @d|)  @ @@ @ @ Hǚ @ @ Il @ @d|)  @ @@ @ @ Hǚ @ @ Il @ @d|)  @ @@ @ @ Hǚ @ @ Il @ @d|)  @ @@ @ @ Hǚ @ @ Il @ @d|)  @ @@ @ @ Hǚ @ @ Il @ @d|)  @ @@ @ @ Hǚ @ @ Il @ @d|)  @ @@ @ @ Hǚ @ @ Il @ @d|)  @ @@ @ @ Hǚ @ @ Il @ @d|)  @ @@ @ @ Hǚ @ @ Il @ @d|)  @ @@ @ @ Hǚ @ @ Il @ @d|)  @ @@ @ @ Hǚ @ @ Il @ @d|)  @ @@ @ @ Hǚ @ @ Il @ @d|)  @ @@ @ @ Hǚ @ @ Il @ @d|)  @ @@ @ @ Hǚ @ @ Il @ @d|)  @ @@ @ @ Hǚ @ @ Il @ @d|)  @ @@ @ @ Hǚ @ @ Il @ @d|)  @ @@ @ @ Hǚ @ @ Il @ @d|)  @ @@ @ @ Hǚ @ @ Il @ @d|)  @ @@ @ @ Hǚ @ @ Il @ @d|)  @ @@ @ @ Hǚ @ @ Il @ @d|)  @ @@ @ @ F rIENDB`nova-17.0.13/doc/source/figures/ceph-architecture.png0000664000175000017500000006346013556316250022505 0ustar zuulzuul00000000000000PNG  IHDR._tEXtSoftwareAdobe ImageReadyqe<"iTXtXML:com.adobe.xmp rPLTEe±z,ˣၔO:6zzz1kkj6@;"]X&&$#""+/-*)HD#KKKic&84tttu5gW={q(433cbasfCDCCSSSɀ[ZZ;;;[Yο3jR:,+ѷbԔp4`DArigtvDztTD̀\IʇǸ2xyآrYZYce0Z>W^`WW\6bnpgrhꠝKTU`__72 0ur+QZ[jy{vl'QXQ;jiz)z9:8*&!B30psoHGGWQ4^cicnd䜙6PK%JKEDJKxQtrv)^[XYVQQOߺvYVVCEGձrrs~q}rԾ=@;iifMNN667ɊcN˩m[cZEHC899fee@AA~OOM>>>ኇ0b111~~1. 883yxxnk.--~*onnN\匉&%%)((xuUxww7JǶ''&Ư! ʼ2Ζ}TXQ%-ihh0/.|mi)8+]`IDATx\T׵? NQY) 0hHAB%HH5rMҊR%'P4oKHA?D\ ɳE1-*V 3sf03 9Yg[A{#ZSqxăGO:}F0 8|(n/ tgM/ά *5gif3@X`gI+Ra$3!5.@t@x@E8.rgj6>} x:0%z300@[.qB1%mPIu%@}$Ƞ%]tIqt?pM2.VzHC<)4𬲁JyiCɽg .1v?{d/qbi%WڼY> /q[@l+!jr) VgC<}-{٧b^=0Qu*ܓBąEdGW,onA}\. F={͈{5im:x'sb! VgUQNH.ݠ%~` BBk^( ;B_=O1#>1@/Aq:pK焇q180 nuV9nU" $빸/A\ tq (D\xH (o#>U~- 4Vj:FhA2stC,Dz8śEꬲ'h5G8ve2HhA\Z!.PA~BZFDrıP%@\?E qe.&=hŸ8AꬲAe"! Uą'}5>X5)= 8]),³Co(WfWhp뱝YI=d[ %{HtkI,.PA{Lm~P:Er;|Et  xJT&R,ga>CMh!u_Tt$aI0Ǜ!PApswBXVB|n ňk]F!ň{#D,xG_)Ň{zo >ݕR<#9)d1!Ա7LgVx? xcz¡;𫖸cxT;FܲUI.>B:Ӊ{6 oǑ/Nʬ^8a{$P9OdlԤQSȸ1xz1y)oˋȦ^Q{j.n%UG+c珠1h$2\^%zmK8%7K%fhAgDM^2I}L`G&jcפjٕ1S ak$ҩIAqV@zuʠ{FJ7Wi"XvJãj4GwAK@K:iâIRJ6H`{*Do+WhIj\ϩG+#zچ^.x&{zF\I0.*P!ohSQII:Lؚ OgQPKLNf"s$NdO'kR"dj[0L/b wJM>ǹMT'"ްLjn:%B-(>;Y]IO΁t!: RgQ;BwDŽO17"Ǭ2ʮnXlnM*F+;%(ej v&#Û돣Mڙ\nWo!<jx7bT%yBJffZ;./yNZH5Xkk(f<=YqCfeF<.H uox-Ѽ>|VK"ӍڋmMBVf%kUvZU8`2BmSi׺Re߮3+b&o NU8&J"( 37e" NNT 9;<'T:饃9r=TRةx,2#^aOo1hk)u䮬o~C#*҄:V~0d:dS-ѪR[PIUvV eI_q˴7dWe0'AM# #J:i6BR~ОR>1>+9jT eF<=P߳{1{jԠ=Te .C!b~l(3jnLQVXJ2.R&0Ժ;!ar ) !ܜ$w0ǤMfpe>E, GDZ4Ѭ_l=b>apsoU ["҉VĚfFncltbnG31Tƙ<ۚc>XJ9rD}fe74+>3Cצ#xny:DD w2Jw+>-I)(GM]K[L[QյD\qAKByi R/ g:xkg9,ofƖ}^E$oU[աoLoE1wWٛ,7;nF&rw٤ITΛEёVJ/+wZrTP v2J=^J &CYL?D' u}dZ}]aPzҺe\Lڊ8?bYK\;G 5E6sP\3/'9WZQPsq{`65 ٤9#M*S*T ds8n㴹sxV1I]jNTm?KNwwCIsQaKQ $ydp'g9'8GdL&IgdX9:wY.qƋlًϠ[VѬk3O^*i{%( .5~ :J!՛#TIʏ5PZf4E_8Ivѕxduhhts]l) 0yt+fT"M;hЋ {gހ/D' *D@>JJ!mEKFm*t:xlixpB&(|Y ^ ٤TӒX촗H$Ϯ[^QYLn1Yqd~lݸ&G 3l6hg4R LݲPRUN (!MX$?ӈUizl/}r ޏcN9ȱlORқ|I`([\v #dPee!{o8F02z0:r 3Y>ber'17E׻ӆ!tWҫPɱA??'yB7Vxq NS]^Q6HxkDغX4UwǂR#ommEwǖVl˨ώjٶmˢ:rl4 bT+k*%&mMDz&9ɪhy{UPOL9e*Š8omnDCnPJ _Ϭx>)OpƟLNUU#Н$ + ӡѪrWG7 ׅZ9ժ؛ēFۧ쪢IRiN{h4+&o&Vۚ.24ڕp''CV bë&g@jwSO((O?}}E԰8}QsfxRѤ"k)[)RZlŶD@w\6z37 ER :1P}7{OMR>S3*Cu!6:XWZX<S!pixN:z@|(&#)pLR6&MvTcT#<Ŀ /?!SK"Z/2jZ?dVO 9- IdG,%B,#a2>ʤҥȩp<]rSz4)^l?^l?ًD4O4![ipj5J, e(G2qD[ysrFXVUܼ>ug y., Yʍb]蒑RӳEH`ɽUɛXlr g23 țdm/ F\Q+d9or/cxo),wjۼf-#G1i?CgjJK,FLCFĴyf:"NwS/pէK ذ5N} @+`屭\KJP8\oPi2 "ećTNl273`6inid065 -dO>j6>7v"XŖ ɵj띔ú<7]UPmd`h?~ NFVg0)Yb_Yifh=uˢ 9 #ަ%-·=#wHaxɬIgNh&kr&fW&Yql(̈́LV_)L37Uf*gO3KbTv%a'}V?i)g3XBk"3PD|F9ۏ]AnmD#7fK,[&KU-32n5ylr%øIp.-z7b;urnLߜ:!a&}a^/$8ޱx*ߦ\#xL+;kMg|-bl ; 5$g24\Ǜ\ldsA{K&G}Xf6M~܎J 4ACz%J*=  dJr|k_\3YkZrdrUN HIp~P}/NWӮ Y+` 7dak/rm3i@sFvJ)nQtG\jvȋwR{^xxyq"M)+ ޥD<^?l }F,7b#bqY#r&PdF,xbB>r=E8 AEұ9G8KKz#HƤ%1P$0Yٶ/sd,R鋯RvyZ1tHRGWDZfV6Y5p9/grOT/?OcM?-\{Ϝ5&YNj=tEZKáDWz;T|=K[l_;fbDݙL0})%9b@f:O)ef/+Bd 9Bb4TWH~;JD4h|[UH^6RJFX7dɥX7dJtۊ Fpiğpϴ08}^&>xĪ;fixќpsgǺYuǔ<1EsVI [B ;&C%RB,ːĐ9±nKHb9"jcrk&f&\ʋ#҈ˇO*tt'[Zy,j]^Tl>p_R-][< ݎʿC2\0E4dx)okLZBlo1orɲL.-43˚<{33Yq:l7YlcY)k¥2ժ@'nQ1"D!Uuf,b0v)WEp2"9N5822R:aR0p QŲuNn8Q$:bOM&bb399əAKMؙۙ-Bř{ylV!*C 4ۢƲ ?3mOBmib@`[aXt ^6J/PIy4;3f塋OdL^⨌^zM,>mc֖qݮ9븡eZ3kȪ&#[CC λsQLȢقNm>b~ZkX!M͆TR~*)KY?wqtkr/ dۨ*٠⧵Li/LVaܨL˔&K9E)Ɉpk2(;|bjU&M{>Ȕ!n^!{WtN.Qw aFU?zsj-&3L0QU-iӼ09s7ys(eelFFv%N/yGLrpE!lF+ZdO3G=+k ˮWl7m6#غJݼ]z-JKj-6/e-3bLu .G;m%Ed&Li 1)g\]!{GoNem0{vE9)*M櫻0yBv8Y:gHq,WI:ۚcV x7ei!D-mҷpX;iۼ$GLVtR¯x'rfJo#^d ^L6kP1Nf_IwkHذj%LKW 7y1Yf6kuP&-_eLn3b=T,Pި 2)E#UdYpѷIM*Һ[o{_qf׺4`dM[dHYՠd*iDb&ZK:,ѶY<YZJR;EfgƺPldvY2Q}NA8#\fVXޖ*f33 '>IREdّw(f~3B6&Od4KB&k7/4%KmM<ř$3/eig6dv~o08N`;%|dW^bA3;qhCiKeH8j*\OZ-u;b&Z %;9;9VZ&XL8YіZ쟥Nh=ch([8s _nggfWC$L)F.\G;6kN6qY1 3Yac2ɸd +{ϱ_/Xnkla+lNYXc̓j#E1pT%bnAdɹ248K _:Ǣ ı~*qK $BH#v@Oj/PdIՋ6&EE8`C&WU6&Gf)a|B^]q(*{Ɵ j['Nn5tV@r: \ZM$4ڥm=-0)^~t=qυK6(Mr`gWyOZt>1z"Nj[AJS7_Wÿ7)Xnt #ceML ӵVx#PpfO^A-K&~>%޵STWtz'|dF]:c혟ɱ7Gau/o!ތ7@28Pz\twHWAdxX[LB: =ͳqXg@| 5@\ᰎ`I_*̿P2j=slr"Mfx>_ s.U}VX?'2[=Ǡه)v2dtEgU)Ȼ@ z:q;CuJiV"k'lӺI@Jv/هx? xܣPkj>VZ f%ҽ5َ˙BU$4Tw+Kgbb8%A< 黲ta +hw]ס 쭌҄L:qMӻۍēYr N2FjC\GfLF ̬9bvf[0L/2N? N6+/NILLIJA;n94s-!XMFL㳛*׮P!tHSdJēQ. BE@:Y8]WI F+>rqV%C^)HC~V"`+>t"Qv"( rhmNw@GWYǒVj]Ht̛e+2Sē&ŏP(= #Nq)EDŀCU Ri@^h|`:O4W}b ّAZR]4k(ZQ3s! 948]479/.4Lo3G`'!ޗXH:?$ Iv\׎F7M7LPfs\A7+E1Je/c|t%Hn+=NdTX%^L͌"! -C{ma\zsZ|FD vGO4+aúPb b\+Tы{IwT.7hg쪳@dIqzHMzsHm[YKf2~ F/L2ϡ咷I=_(GմXivYA6%C}W;;8ھ5vAvz? _^0]:ɢtR=SAF,6yY}ixDLpd~u[JUp@c;IZ sn&T]vh.tq3ܻPd?@k{:zIC5Co8cW[[Yc\)TX+޶j27z))77<₉ZN$/ -yZo/I0VyniRI)YӅ*jsȡ;HN:J3*1?uNAQu|.5*%+OۻL1XB<ߧGw9u"Rç-TϑvC ~Rɋ/_G0a -sqɑNΨ R\I M{{k5[b! 9"ޏsy|(CKdSG  U:I壶¸&}Lu8>/vDeĥ3*tPeP&xou_=[_yC0̔L=鋤S0Ŏz.YG}B\Vlu qƋOrU_N.oPT%i!=ѣz[>B ӓIrk n X|iˌ>^#[`%>2?^{eҼx3N$ ULguRC:SVrsKtAKC߯#qUVf)՚z2#l};+Vӻ$.7wzC+F?A//RQnW' UVez1_EqX]HA@C&$Kbq0/EeZ8jՌ9!.x]ssR߼L܋/ + j)/[D0!%yA| -}3uowȐ/)Mkfx%J$HkMmbZ#>JBx.}L+9>8#5x^h؝3cD\Z͜DJT [9+crSb [b 鈓;2*\.<ǍV3RLkCǽdn{W_~)ż8FZ+詉TxtUѪhx6 ^|=]Qe.%ˡ$. =g uŲkJo[w(K 摸ۑg )ss BNt~ oF|A\zxxu(9ΛDQ)TJ,K\Oq3>nE 'Eދaغl>PioǶZw؋2qq3jĜr3uLG0ӻlusj{3^ϐ\i?m8&ů%#K˃QK^żx 2 -c\/6M'YFm>e\.Kh47US4 ̋DкΜ4/Bl(t̋'KT?90KH'EUπe0f ƥ;#7VOdID :qͥ^ͪ%VݛّKB|TsKܦĻ),5}џ̧L<*.yɯ?6ypy韵jv6D܏yt9b^ >!/>YK4kEQI&h#ßarBD3 S8@Xpn^miE g!vOkkeN3ᩂOFkiD;U"5QiNiǫːfdiO_bMyF2[Œʟ[GOX2beJz +]pˢ .]T_ k'@}E% i\9}/rpxx?O:..CO>JdOq)|(֥g5:@9},i9JEăJj )'њ1'FE2Skbvsn TJt :s|J:d'/<'Man-R9Q) KzvÉ^M9I<2% @\"ip.0ҤVRL|`xY#\,TaH"e79˯9W 7lx qىj #Z$?z{IM4on@iCF;-*rxD U}=/ᲇ>ؐ.0y< *B"V=և7yz9_+\Ć Of|Ǿʄ0}qO#KDABqPF?XAr"+tF16@-㞏^EOЫƘԘfԶ^⽘XnYgW  yhXdrF7l؂>V @W7o6$WE\jxk2^ȠFDvyψˊ_zX ކ2BA}Æ:3*??B&$!=a8Ar" #nP"5?^ӈ+&m{N]P6?Piq^}YțMO$DwSpD"O8Rn(Ta^=DoN67_y)rڋ1OX#ϫ^%:o6FԨZM3k1=CͨxS9盛n#&PvUX\ ScgTedW &2 *Xj쎣9cz};65&^|fШ 87 8>yUԨxrGP:_x3]) 1sث nDn)[ &TBoseXӦ0(A~bbSE^츨}GGJ(F<)Yبzkil~&3*Y< /Z+S3#.^IK@]}ktф?4Ad],T 3e4i }cjeeL}Nڙ| Qѹ^t ;&*M:;:|sr) N38sU+Y9? hVv3Bǎ, Ppu:qpҍK47(ȪI>i 9><[5/_v V^ aQpv ,n x w:4Q+h!e,e ?AudP熟_ALRq"^Aܱ N"*&SXx bD9 CC ^ \/X'\=l`FaT9ʷ/7L6[;dz!T6 @ 1-NMd%S׮J'b}ЛܙLf=JGKm=zQh#IK Q,@( *͉a;z !m8D`(tlQxB\V4AoLICG' >qSR8~h $$yq #iR' I4bdfzVq`H>j#ZrJvh Zā ֢A83wN9; 86t%08Kq~PFu ub3@RrB'g ~th&#"su UPp@AsE<!,31I"*ph \=-9. \i&h[q%X[Ifac&KFL  &FY:tD\>i8C3*(~BUN H6Rt)<-U( 8#͊4 '>P60AtH>6C H6QBTbg z4A ]2B8:ҩcHzn?A|W8:u*ag"lҰj0 nLE+qyȦZǴT,#nkkSbnesxA&Z1s#=h >B7Z5$m٢ 3qg3SXҝ֧%@ue\Fyx_ aQC o > +|a>CMu*J.;B_m[帼CX.wt*E2}WTA(*Bi1N'SQ =Sʨ.J8\KBd"@hI΋Op eqXhdLPZUCo$XA|_^RSW"yK jV>gZ^ׂb&#R)2jYɔxdxF}vߏ/޻M1SV⑩B\){+OoOä!W,;ڭ[0`T ZIWC=|BT/2LP55)ć'(ؾV7 *M2C1ɄEJH)+$$,TQFӦy}NvGq"snCۖO`Z$'t k?2?mqBZlR/?A|{܇-81QPZ ,I)`\cOy;-T|CmT & |Q'=Jj~"_>?!R]S/.\8(Wj{ni~<*H[~;LZ_m_Sj;-d6,SYyCKJSvMDy^Wk#@iv}jD-h0Q3j zz 76΃$#Du+ \LgMVE8xYx`S#j[SXiVٺ#qgݟl#CEk@Boyv>6ZT0l.'yA_zh?1KDW7' 2MREԑ14QmC="壉[}{Ľ_~oK-5c} 7`v٣J7՚7aR/]ш5f}S&??}Mː M.?2-*]Ew%q/+Eg34K 4?gK ?hA|2*;/i*hn /.)r9ăd!n vQ[WN.r^܃@:m?_Wg=^|#N :OXhWfS{jtrv][qڹnA-$`0by7(U9-NO xG9d`L6Z-~}o/eN ;V{ G|ةy^f%d_ƋxyFcR9{'+/S857fƝ(ݴdT܁ًHx4B-wfƝstmRxz4j~t\49^ܓQM7( <7!q%_8Nw'ikcjXبM1):Zd~_aCCZL.} Yğ?WhhL%ۏ+"{]1WW·~ kƯOF~U|޲;xˇ*bG/hV#6nR_Wc^Д(o#0N fMFh;|8 p[3`}U;j)h۳^@A}@84"0Y`6 Ȉ&_0){_6IƷ57⒈#| EJzqՙ݈g[5쪰^N~'v zD_;qS⻷=v1 >nƆ選Ef&▮0Iijo/f_yvlli|, <Y5 8ɩ͓xX{KE3CVɑC6;Hy8 ?u"5ۃ;?%R燫! V4ZZ5"TgjʋCص`Hzd?Onl\~UѥddK">)M!~Gzjn߼y#a{nR|f/n`Xk7c}?*y;ğ:&o޺VT`;eǯkR==_>?oM->b>7`H*~& ??o/t ßտ{}Aw₮$UֈGq[f2q&2? ~͚-[(Kϒ}j]q6XPc я/4"4#>{xyٝzab'f=lF+Tۏ2Ajģk]SHFe&!~mBSzXpN'_(6NfMbcJoknKj_3B&QѨWELR^+hn`DrIJFlQF{G3 [i~ױ#~wS%RNC^aqsGآ6 ޻ɤYgnMMbo2mmzI+/Mjn%6W jXN`ڰn!~3ыgl  >`tM; wl\WOAG;L>K\_ȰgY?Fo6kil1 ߜy?j=/ߪn={5X PƦyWW O?CO=}_+xS{O\Ҕaq?n-^pp!h}|/>淃կۊQcI?qn(F߂e;Tյmg ~}Q`-L?cgqWn\q`y ?'-^|ofoⅇO>yX{kğߜ|P> ?zNǏӏ{2|6V3_"J]9)#iH] }tÅpB=oYIχ{Jݳ)/dek>zmOB`t@OCu"z77?z;!3 O4_e+ss~_ssӼzýƏN2M~:P~rtB`PE"FɾQ*kXE]YS3p{QJƢ?O2pً tO8o _[$ !?R Z-nO<~}ܣrsO䥗r_VM|+/r}8_oseC hY}ysW.2._KΚn$^Y^*O5 ~*}7*ް3[v;śĆDGbZ qc<{/_ţGs?' k_;Cَ""˱نZ8ſE>_G^x;,=P"#]?{gq *jw }J3: Z{‚+|!e{X^*>,Ad80}I`ɃK+6 H3p}$&ޓ8mMy'$saS#ęeN^~]CLű_*vӟAOu=]\i'o3wi_u+?l宋YĿr9}vifaR^;z(dqyDNm/ I{`T]*^'/91)v U,L]=ȯ3URuqq{N.(溸_ʼn#yQ%gŕ.X+zWrCm˴vk].yۡ) do7n}l$rGC2/@!#۾LF.^ሯg'+FEuݓ5@ްDܱF]\T'̕4₻'!CzeN=#JEj3/88!~4TĩB.MqWMb/=''j[h/R>5^*\uD5XqS?Mm_v\bl #0x;OC`k47imImvacQjRlnfi}"hV/ r;Ug;ºf[;T[(,nC~f8]RʏxD6Iq~ 7oSSkG+tZyG=^:X7ޅC vmv)5X{f gSja\se kS CoB/76%q@G|cYʟ#gT"I8DH8DH8DH8'q'q'J 01%IENDB`nova-17.0.13/doc/source/figures/bb-cinder-fig1.png0000664000175000017500000034056713556316250021565 0ustar zuulzuul00000000000000PNG  IHDR`tEXtSoftwareAdobe ImageReadyqe<IDATx}Uf7 HUiB@⟦R,"`h T UzRH$[^s3wͼ}[/o߻s̹N`0 `0 `0 `0 1!bc?4x|JlJzfW`0 `0.P}hko6[Kֻ8ߝ'.Y -Ͱre+ X.2dE /!`0 `0٦jx^d< \Zu4d(l1~s9ۤ@: -̅VƬ' \B 9_=`0 `0%@BAPp MmO OH43,z%~)b> ;SM&0y-C/J:fSK W[`0 `0 k N}-@wlkR\6Ʒf<(66]v1H%va;ѶtdT l&~C_J 1_ e!h`0 `0 bV'C[WW`b*gy|-Kml6ksIbc(_HJœ:*u!~p6`.u^QA`0 `0Ӑ:|Mkzӗe|Tdsd/a@E6sE#\VS 7f %U|> 52 I{ ]*(`0 `0ූ:9Х[sZz>5J\0)f`0 `0}[etSκ/JH.@CC/ !!mϽa-Xb$H(`M?!,67ˏ/P?[ `0 `g2@d24MxSǜ9gLJX( +aFۏᙧ#rYQh`DAN W&nq:a\N X/`0 `0J::ڱnwv~c=!@(yl\*V 2Ӑʾ\|Eܟ|%/W6Sc{cLPe&6 `0 d24ly,cǾr 0E % c|?b>L(ÿzTO| c3 `0 ذ$B#@Rg>=JG/_@!ߐO'r,!' Z@Lk?`0 `06L!~OhI2m)}V*5I&TCcCq$-niVg0 `0 cC#O5<] nAqGƖh,BX4X:t!? `0 `06&Qrn B s/D._ xrY,D@88H= `0 `0Oh= /E(P<5c&~FVaZT5LФ%f0)p0 ѤE׉ۃ~[}v0$c~!mNe҇h6aFY ]BPt@3e`%Xq7&"_%b0Q%ONj: ĥl3} _iNz2WZv!Ì9i~ ^{M)!]ː-}pC &| F":::`ڵP(x16GCCC0P.V^ErDגf }mF FBy?=&LW|\|אWϮFȆ I ^>45 f F- 4+V@{{;/ڛonnM6r`t \~P/^[&aذL3H.]tnJ/+v{X%0 z H Q<0|p06⇛Ј#g0=F&!9db%Kmc1CF!d:ᄰgx* W;\(78zח`~JH+ |. D@`0`?}@[W|( 5Fd^hgO^x"  +8]-xhM[ Ja0"`0  x_Ss*gS`=["jkj;njJ>Geҫ7f MP0@A"4 )nPCH#b0 F)b=&zb^w(:@`!0y(U*pEUA]uk{m~N;Eu7 YNwg|$YBB}M:K%c,bsI7@5X]PE "|GCiyCc0"#}P|/@d0oC= Ş! z:-{T%ga-5(m#rf*ҹ9nҹ=9s8pe+d?GK7@b-CkcPmtb0"YCP6[:JAȰ#jfߤXwv¨Ryfy.O  m2*- #7\^ ,20xdեel"1aƳ_dr=)&Px 1sD3ͰW!{!W ["@N~j&6๸Hmũ{λm:f+3ڑW~ZmJ#5X! ^m^hAf,ߙsT)q5mp[@I $(؏.#$~ 95A۲Av"|rEFze/֓ßXa45^`yy(jC(JK/(  3Q 5qSDL D@Hh @HR@+g{~ Ѝ-!$ri 9F}GsӬKܛ >Ms 0ΚJ {]^ Ksqnj(¹9gC3QnVϹ{5k]k]ls ^W71Xqe(b[|WAlhO]#7DXF:^@^g۶{U+0bڀ=hA_uvÿ%yTGXB!{eb&T{'@3|ъ6x*uTJj HWQ$(틌v/-L9BPxvnՅ.4deYGHhn\r,22dPdFȥZ%U)m%cg ֿ: uܭ)ڗCs)ѐkkOWjl ݟ\LN^pD.d] x'!بS Q{GYy΃;o#,|5}MQ^W3IoJ%i_R&Ѱλ~}Fs98pݵzѡ|u䁾Ǐx3fggc?-MWzT3[noϠ(w,,RP!{ ʹޫVgy0@ H]$YekGlX'Ct8>M9uL*jsN=HyDD[#ZSĚYPH2/c{;^2X7KU1 QA&6R&:{>q-8"t9v/(փP*ݟNFP\WaDIL<^,VBm{$s8(P;=:2nZ'[ ]#zFR^<)F00jEyLJʪ/?2|iqXϩ.Xd dsnCF^w- 2➻Tֆ,g/28<Ŕg}V}ҧz1z}z-ŗ wu_$oA@"> +ryGφ= ۷sWrI_)1(&H&;yPɹּZPH5B#ED@ijT#S*Ub ¹dJaQB͓D:H(I0.(ea_ ,zejxWB^uޕ˄Oi0)hdˊVP1ːg* m' 74YT0ؠT=q+W$Eӌ16л5<"X" M}p^6 DF)hdPQM kyv/08ǴM 2j?EM|MGUe !4 FL- #?mꞸmpϐfuMDl.GLXTGԣ$g$=z$4|.2޶W #i/AG#"ٶlR=j :4"/qw?/<?<%P]76lX?PDm;S9#Y^{#@6fUF?%"&.V~gۍyf@lA Qwr.s ( )1 o 5Cߏ(Nr6Y  JmBsYw?DHt"L.=B=Mntηl5Caʚ;NtߵV O<9:ᇝadDX2竿  Dưg;( 'mCIKe:x(^(0,ߡs1@򑾥%g| \cX]7T:[%- o5>1XiqkP xuJM-'KXGxᖖa}pӿM;-Y8 y]b&nEQC,[ VXC6r=*禕1A.EW/tv[LIQc!0;oUJ9N)F-l/Ӿ)|@G{'TJsRJTŬwQӭݒCśrG RcX۾MbxP棇oҖ`Ԩ:|Чg}ow SОVQÁEPګP-nx.Mp=O ~9q v'Gt$W|3( +/c8z'Ʌ:[롕#sz9{oAf8c|ş/}Kpq2; }Z6 &L/0y{=jY;3l9;[n t퀨$]Ǚ˦DXZ]% Yh*窪xbh3Fs6B"6$弲H:<*DК%125{!/X^z?>8 74? 3fP7E/I[)Tw^3M@ ?s'7C!y?oxX㎣s˖,˖#J~ܼLg| ^chyA(|&CN?۴fWO;FD3A݌r@QxA0v Q@,Y:4(bM 5o$i յlo#yS5; ujn@w>o8|(5/' Sjν[z񒞝f<^SJn)RR˱V`s._{_x|$ʕa[/~:{I_ӺdBm{/d/S O=T,ޙgN"aO`DחHſ/Z>wIɓM "1YPe]u>UrLK@=ۏ\C>*)JF}n:anB3˟`xe(*T0""zW6_FTf ]=V?݄zR6H^rEZN'ˆ R6dazxCo]vݕ!J{`qIh{w`;g.)2;Km$;@Qa1G / ZƴPxq VsaJzlKR:}]sO9r,*ƍ 6*ȖZ?P214oBcq#z+?'᷿-1n 5028*kwΞx^>~!kd%WsX{>^c}T/1o㝚Qrc{cDWV/a}{Raz6:聥+YTʐ,~*]/C>}ܱp?Ol.fr#<`䢋)"@f% yYXinpW3O=M2ԼҌJT P9MM ;(J3t"AA^3"VB}o~:(C`IRT@0=v@?Ug}{A5~7N%6 K.FI_pڗZ"1Kxwφ}L=qۮ+cOd8 k?Kȩ\UɯDIu*!}N=-~*аwS52CzzB]Sᙧ&홈`rbI8$=]9)ZŨ:7]nJ['xʰG׶IFqq7F/nPhXNF:!8c?9bt-\)Ɖ { E [zT$6ouk\G״äb9)aDd|f }>cݔt6Xp6(sT$@Ȍa^y? `ʃS?HN`~u3GI JðhXyd~|zIG\ Pv»-Vrns׿N4P9{ǃg{J =`B;;k_? /L3Բm"w.0Z_S*A[:8߀B j(PV[M"w8$؛oR95"0ϟoK~?H/i8 G曓_OӉ'=@Z .%+v |0|QO~V^7jPE=Վa_x/S=l>MQ[MJןT~ɝ@/_AQ2!B_p>T[ ;`dnJ_=33Aڎпwc@?'LD%89vH)SZ4]ۗasE\kY]*Vuӊ:$G9AZgë>4wpsMagsGyC>Ky?\uɳU2M?gy9# R gy&|K_Vc!ioN~:dDLgHmWS߀!н+pG g~)T իVJT{){7 s`|d1YgO p ȗRx5~Џߑ,A D!*!־q& QU) (yO~WDV1U4>Q ݬӫ(Wh׍LxsVo~nlj+\s ,\d(L6#z1*^CQB$,N:$H^#,1GATX 3< d2JcPv!eW^Iwe% .wԹjmjfuh \=n&+Ul$"0Ƥ#t,y'۴>-{O ?ߐԱO=̙.E& nZ$u9s px΃LKW]qz"=՗^|QlTS0sm+GHJ^R:E1-ZG.ta3y>yuS52JRolyqG!9e"ť\?<EP{"k֬HQ@ ?0띙DZ7@>xcwx#lh , N,%zqA\Z[Wc{XFvB"R4gmV yxonBbJo)÷PA~J:+IW"F@P+X7,@y,3C\ F (!{rb]&ƫ+Ks :Vy >к0xFOx5 IH+hV_J%'!@YxLT/%XKgM/|>G7x#x>٪q:?W+=N)Yl ,_4hcA_HId |쳕A ԧMkDU\upEuQ?!Q} d̫G:Hޢ=Ƥh_1oT1lǒ{aE]NW_TLY:BtnW{wA(*G1Cmtcw#educc0VKVuR]׿{ ?lKXPp4"E ĻdRSN &Dt'|| Wkגc SOD{MEȁwYf;s6VLdv_|r,;s'??2{[3>Y?h`7P mͶdD4[ӧWÈ1Ku/l]YF*W,L" @_w |H(V2D|Db.R!nfn17xLTf1t尝yNQ(Ǜuyj*x=Ҋ1pCK4b(u$Z{T\cth[0Kc+`Ze{W(/jZ:$~m:L]w?/Xe`Xh'Oq8ëaolR:kT/~*9s#o>uu%`Ҥd \{ttv5kUv^(c7Qv43L5{8A2ö;d? ]VZMrWTG&]$Oй" ګu9'sO~TE1Qfr#l2tk3Uu1PٗU0g\ ߷<:M(FUmRSP[=Fr htπT8Y?-=|?#kuGl{C ~_Q\&BXl%QТWz`I! &2\ݐ)/( Ni!R'u`DGs%SyB A$F^Yƛ SEX6$iepv~*UG? -͌GA$"=/L6^J"cVL c`eeC aƿSбgdqۊ8<#T:ҺYwuNo!K@@3B\e\%S>@whGZuQ${D+C } U(--?;l<[ b)bȮN]wf"D)r_~xpPM_7w*6@)ySNH?NدhU)@a'燑i^z _z %o:KM*i3J?jz(;ӕ;H,m\6'y"W-pK 8eÈL:%m6BO?4;݈lalLJ^# iQ\|E[omN@-tm,Hk,i؏Wz5#aQ^z(ȵֽPa?au oxV=^>]ץ m1nZ:(χSO:RR@l ɉAc=1;櫵G2䱐ĴL.Ku1PVn+|o%X1{Y#{Oa| /c!o{beHD2e RT{9| /#|$`=ʽw ~8s.ȉ 7+ch6Fbo5d_ԌxA/ÙL2AH5R8 ޽_֤в5 y@c=K-~<*4%"h&gr!Io uP_th_4# ._ 7aBqɗUC ѻﺋdIZ4Xm۾4C<&SFԱx6 )liZ񅉰C;L=PIQ68[؊/!z1|>=}]ҢLx: qFjPc T1eƼKu\L o(HWkE!"lz8DS5zIG Z8$cŢ']ǏE *_~z,(m(=ʳo]pa"y>=nt)W&#qxA[T]Eİ}~/򊪱n*ĕ"y]H-cՕ1%b^X`~oL=cOgeuT-xm5#ֈb> B"^|6]0t&)J'6Lخ2[`1x[ y(w;VFxK[Co}uZ1m#Kit*P'j{F,Xj򁔐p斦#P'c]::2VE3Gk{ZER51#ؘ y%?X4}^/>VG-RgEt jyӱ EwԨ5vvX]kg!p̥@`]qKXkOַ` b:Nc͛ PM"ܥ9q`]"ZF81#1սorZO:~~}2Q_GQO,25 p-{I]'zCU?1o+ucJ4^'w^kc;|Ԅ7~E[M0Iݶ@_9)FXe%mkSh, EE"vD. ~[2?  jKEkU_8o"6^WGa}u(;z9\A9/Vð"OdFײַS !_ =x2kZc\AMUœFp}$#FP^sNQ g+,6u‰'nZ |:@p}߄]|1:Tj)/A\2Թ(O+c"ѭ~4V~㍩4.DyHz$"&HS|nH:`n͈jሂiPo vAs~mCEa%:k4WkUPͯyVGZ8"C ?jF1$jʘCJJJ0UiŨutGz2N}lP1Ֆ,to} ڪBvQ28:L * o55Mk[#p[0N BF\Z5z}GZUɫիizՔTa Gz;ga <$?IEַa޻suXAGua2[Y'?ӧM{(-RlHH2u"ctDO,ڳzc8aHF ;̝3A)QLY@n(+QD[ 7>+u 6FKJ|!O>NTxxQ?aF`4烇8 a'& JQG/57s ]DMm0A[i䅀q@qy a$C>Dũw>WڈB`L&K TzDw 2ژǎ$*=2k hҥp߮sږ;W,~偞W&xp leS{KP]153k;CR6c'i`|Rb"koN*t}HAqhڴ t 1{Gn0,${IK y--g}|B>[͛wϑO n88 =9zUˀ0P08?m[0v'b,i{a[5ɄPꫮ6PHd@~x.yZH 2U}_>wƾ"kss<-ZL&bzܪ `1@W7VQj2DVm+HE?)T@ɋZij5?0Ms$ Fq2h/v-Z&I #øq) k6 Ε"TF>L6GM8~_J*&xyn 1T(7 Z2QvM gLƑj9?;g.IٕW“?LB-jQtIvjϻ1i6JFxB)z ͠>Iu;`f݀<תsEA7"X\F|ɼ<ܵRr[pw4}e\~vU{ͺHllt(H-mz(G01ÚtSv8ES*xV~tvՃй1Q,4)bkۖt^?9`sv|K@]]oYT/% o)6~?;UX \Ixnp39OljBdsQލUbOX2dsZu1y:jS` P> A ‹avO|p2V]Þ"cHnϛ??4wP>W,S"@瞃znbdMq5UmYS}vD}7a<[ZS_7>*Fc'Z`T^_X 3 ;\Rp?T)ڞ#`='#|ey!ӋJ#=5_brI^z*bhePQI׈p͆ޔ")BY![KD7z4ab'NJ=_L}̞9~a{vډE=k,_,YiSk6$eXP,y^oW}|SMIS9"鍑|YS7Fq"콮=FSmfhCЯ35HG({]؇l:z.ÑO ڒ/Tkd&r"m<g;-# 2mhkj7*ڍfݢYK1$T֋*TT{s"6w^( S]lͤ$"EWà\ҡgz>k{7$!]C+0",fRTA Xu˯AqHt:#mIn;#.$}QYݺYc)7W fOE\J]%Tf]a>ZkeǞ}.Un6{ wFs: z"BA!PDa cOF˔~0||L fx z3pz۪m_~٥fOFIF?< Ճӯ(&YL\׿VAz vyIɟ^l$-%pϳS8(*U1glx}TpRݭ|l÷R.ΞcM#olMzB,XQH >KR]^KT+W\guV7okA9 f0 DI&ֳ.Z {prlU/O_n9jά<ˢItSVQM,E"81[.$蘮֨)ב!w&kv&;~4a#Y@X0`Ϊh@>5^o2nތ k'e`D\u^>^1ܩwc#ck #BCmQÏ̼0Z ` Zݺ&Tر'Pa2;EmA"!B4Q\,ΚR %m$S !n|5k֪ϯ.Nz2}u>^D 8""6J%|bCx cړ_M{*ySi\3'HT $5~{5^mu@HP~=@c;,]d5.hܮ\Vsڣ+?N#EG2/\? hJUIκλT=rWd,+C; x^H2=)TU01QF_qeT+g= Ӧ +l55{!뜟SLV}`~fɪLɣ͞= b %4zls#=iX g~:KŜx,Sq1 C1 {źl}ɞ{W+W2z٧a%T*Cm$qXHzu^K/lW{8< Dut2B Gl"2}=h^%`e<?Bik׭ tcr+ zT3գXt/_k Lij >cpuOb**r#qX'UU!Guk3f X¹8ibP Cjەnila4B釸nox[E]1L#HyХ;}hFǪu !  zu1\ɹ(/-[EƇd$(u߾ 9PxŐ(e/^\VZȩ{4Mѣʹ|[ +V?TԣBbλ03(:^  LXYT>=#%8eQMGk( Ul26*2Ȟ z R ʄ^4 l+3e`KY_ .?.+p=^k.s[, d5;Dbرv6gSVad Ѳv&+3veq2#o2j.ªT3Gpq(g92~Ss~f^,Y$cAe+ÆUqjt +;K❅-lIQ ]}a'!H&ի̞⋮<c|MHTN%n!YśY={K7Xְ &zQ/_tEErX=xHg/vAKǮ1oZѻmuGֳKFӮ:{TdKг}v#Oyl I_BBQ`<|ϙJ5gG=Oe3pc Ϲ#z֣A&b&>Q\2B8]f٬DndыѫNI@>;surBisӅg(LH?xZvƎn)mۋQ,0E|&rH9G,`|#vDB"=͛xm&::%/F { #o %% VPN <ڜNJ?,tJ^=:@."pNCQn)FV=$P[/ DKQ!ls*CnQSG\HB BFU^GB OQ!b.s,wEEeCC[VJ@gjU"g%j8Xx'*HJV}N8[WBv X5yC ]]Hf^&þST qw}p_w/t58Ͷ2N؇/e^wSU{C`0Xo㏏ZE#Ô][Lf'Go@SVX= 0l;OE=/DX@7R㠋)RA֪PW٢w2%dKtIJc ̍=W}z>9#1erM"E&~;=ҩM[Ǫw=굷B?>Nǚ W*λ`?>%[Yx穐?HG5BL,30\.j<t%lޞZi1p24ȗh`Ɔ:Dmi>;ul00)̟)RRd+GmGR]ͷ;ӕE<͉%7w^;eD?GzNIyuxj;fXiȘS3!>"}+BP .7.?> BGdK77Wj{MIo]W.veC`="~EX"M|ho;vZc hciiC-TXySdFr#uY筌`0[Ɣ4-HlqÎvBS&"(FG}{vtuD9Zd~F V45e[N)+V.k۪SQmb{WFPHSքukcnK/C^y_o=sl3 jАAA/@Ep~Fo!g,CQ|]Puzyn0l3 =]5ˆZ<܇ܾr=N´꧘B1S [xv&(=/ސ  ]@P@W%DXw>但y{[JS]S&쌴2+`_ xh2/d<- KY 6 `l0"iIP/ws-{ $V;ꅟzJs &g4߁ `06Y#ַ:`T#T;s8&mCuB`0 xF2 tـn"x `0 bHHw FQ( ~,R`0 `oƑ {[vZY^f`0 Fo!ʁe |r<)cW*Xt J%] `0 F4u&m&pmw&; ˖-D] FmۈX? `0^d^>w_񩻒0ei ̠2'2#6L, F_?c"Y? `02F>H7_E>%g<3ָef=I(F5`q[r57C45\vqp]qSa1KDRv.v7gnczۑppʹ69WWyÊ`0`0 {Tjfʸt-tV9@s1^pdkw1/_Bs c:^K4lBsi} 8fu]:gyhnPƿPEL   `0[~s1e`)=28tD)T$f;k~˸.ct8R~V\Ь8qv7'{/5oF 9]LQW\K` ,ی477ç>u L4s6#7ހGyۉ `0 4c?`@ȏq&#YmzAg2+lBd0XhD䢊>̥ q~U gl!2 PnBCE^N0μ@>w"DBk]ZЗU]' ^/B si pPT76ShKyLZ8rN&xtN47xИdi c`g;ʶپ{{MnzBBOh ҋX@_QDPQgGQaC@HNi@HH}?;eg-i7e̙3#f/3 |ĜsuZ?@[23:h7PךJu#R[( o*o^=H$,cENx$iZ 3׫z8BjkeНIV5zpGND2Ԫ$>vhz7ևx҆'sW\`III .Bc bd2"mv\_o+.~7Y`o9n' ?6\ͿR$EH( !"CS{#%{u.) W}_TGB@V(_L Ah4kɘ$Z*o:PGNc(6Iȁae-KhFu \H3w[Ιˊa̰ytGH6[j312Q]+VsAHMסW\aXtäucx7Խ^zW\qŕ~,7,yVleOn4)0 P ~`&ppyrБ{c9W65+2x Yf/n˗/pW\qWzd]rn|fGֆK;[AW!N ~/Ob8|'Ht>8fϨoŰ`^<(]W(D |t fz;`Uwp<26/`Ȓ4FV&54ż&+2H `0&cq/+M˾n" 5$=>K-*CW+`˾&^w29yH#c=iDz/%qh(vHAqDI B&hNد=&k YS*{`RQK|Ogt ^ĽKݏ.%+ j@w,7+Jj;2fK:gټfo1:+Y:HCʟl˾fEMz` ]Xid}^^G<}Zm gזu%۱z4][ki)]6RD DXڷmJb-:+|@sxy0 ̵}b՝^=cgݪ` TWÇ%zjl!Sϓ^[+C^\6#^T+ZXܔHf/|R&1_FssϸFc$w+ y[JyƌW֐rUAp)R5wS:Q<;WDߨ~B2$UpſZO{L;& 0 74W DUڎ$}?BrkV@{]kɀǻk&42 @f)ІbVfk=LRgկ'hzIU 8pִqdч߼Z%4{\+ 3%,c-^P I$bA*?ȶ zQSS-% y@ rX,o@mU@kkD"Chg>xcBuo:u غu+m׿b͚}3OG[[.K2my3Y~LW:DNah,Jؙ?FႉBXB|<#pF$9Qf!1@}w͑@/5ޤ2Ny+p8H;,Go4&|)}q)PuI>~K{/|sѠW\ '[]`ѣp5נ(k.Ga/| 7no_d?ʤIX=qe/1 3)\LYC9Zu?_U(֊`G\Ho4=ۉ$_^xE.ʾҜfp lܽ߈##VVxPskr.#T&(!0hX(]M r90à!mw .ͣZK<{keXGG ߍwW-p *'N;Gy$;[oX_|!=BپS{dK/X`fWWp`ǎ 4%* '>YzկnTBτ>69|ڠ98cKpOـ:;P,JvEEE5|I_U| ?V~Z1? /{ %_gS}"h,x#咽ÄZ>;DU 67 #FԠ_ Vq|qnfXZ<* l/>Km֝Eo=lN2@Dq%HKmEe֠seD"o4T9z8ƆFv׬v\._c4]5Wcc~WKPR]fjlӯ*lz o( <ƏX|ɤ͛բ'$' I:S*GQ~b}Ֆ,źu GV8waZ@R":J6?s;{{#ax>h>&ϛ,ғ8s 1qC׺~ϙe-dW1aI&ᦛ~($ ϋg}x04 PXד/7nAΨ _Ac+$ cFrꨈ/+'<y1OMq^#*@T͓T1vh }zGS؃aSg 7і$ČED*Acu+jWsto:­wΰMk6_Q*\y.#V̉`[B`vJw .wW\dUPhabE-\_ThᅬG}L\9(C?e1N>(\pXŝrxI< qvN%+h}O _|[ҋw~Ϩ?F!Qs}IxAKG͛GQmN N{ȑ#%L'ܹ%D!v~:(; 9ļ<楗^"$w܅O>O?/ϟ.sᩧ^&_1mTgHȾ Lko;!`̀%V"g2Qo;/B=Bj 5=H-h-҈{TȯX5ݥMOg 3)a["1=_$*--c*AgA 0ؽ43AF@)Zֽ7hfD[]_! ߾|(N͚h5m`/j#jLRŬΛ7O@G4{q=[!oO}_0zh|[P؆`>c,Ljjjw^'CQH/x+W['1Y7\9l۶]\n1cZL/~qs=g W\|_7qep'`VMFz,ґ 04n\DidšS>۰`[MdOW,e$6CUsGkY[/I.+UyA?%H--[1j{(6KQ/ѓ.BoKī9Jgfr7Z|Lg{ؔuI 9os&uOwo+춂e׵l5`@ee$Xr]e~oVt+szUU%(jR]]['t"-zKܬ)=o|Gg<9W_q(>̟'^A~cÔ)SP7($-T>׮]'DA']bܸqb s40&OǶ\_u8/o7V77H5^.RY@o6~44K.Bjʕ8Ä`g}Na) xG{<>;=k9ǰ3"\Eqկ~-Ӹ>{cϖKƪ)訙th?47E_ʪ?R`;y/փ˼h^s[HLǰn˭PL a\3k0!;Iʡ yҳKj #Z\=3)@7`M< {?j^3<˞< }r?/++>b5jJ9W\qe ˱Z{{07)Nɾ8z=CO}ꓶDŽE|7`ʔv_W?_C0`IǝyxLۦMd ۀ'HXB~6<$ }KC?8?}0z_L(]?p'?!4oy[7n{ &_զp-v81Bf~!lg btQMe5F߳K "RP^oN+`oCV!).н/ds3 Y#@* A=HdHVBSLPݺ @(d~PNG*fW =inn9a/+t+j) ]qeb{g/ ZV}qBLig˪%%r]qe55FCU3x}~XO7,՞ZP浭cu[] _?]ځq̨uQ4YfמT[Au1aoItm<=JgܾY҄ lL Q+:k&bc m k0aRZPkpկ~)>J! {pMg[v;+4Μs9"hQaWoT}>bHu7Wp`xp"L@ 09Kp+`0E@^x|EB~#-z[Dc]vEhf?0;Y%qwgxɉ.Y$'a2O~S"HbkoC| #X>Hf{}=^җ0$cySI:o M~KWK_7SHDkpe(6*& 6TXdx"% d{};J{1&@eЃ1E>fK=m !nZ ^QaE~1ziK$>"^L- +g:m-u9rFX^\L" %oN%I vcs+.~oB"|C ɜJ@P9ozdy h ,DPC>IY]IbW(*<=fj-?TP(%zVRM }e]qŕ]8_kDy؋Μy8zTh,xqZ?aLEL_dZ'Hz/^- C s@o'p̰K.=k'<,sr?nkư)/#fNVo6YηqMߗzdO4Q40᝵P;ObylN!^{]kT|MMu6^p~m!IcK^O@ MH{q #Ry"@bd`}VΉ瘥; ]e7cSd$t8xa8K2̬ SڷBӔ@kR;Sa]YAS?Cz̩%][ O)cFeV$ȧ0} .b5o@qqX3[Z%ٛo-?c?b%e-b-X@-(OHŜ~I7.dd\0'NW̠k=$pdpq+t?e$b F{ӟYfJ{ ;7*,o뮻DѤLm܌oK.rć>t0/_7&Oh?ٺu[HvJ1yx?mvPM͐0?JiDzP*$s,;y衇Zs߈2d]՗ܖ,t{wope8,ՌtnejKiBwBhKXמʶ$RƹW=8cL$ {I|X=6 :A#zk!4uD?z : "5Ȇ& \A9u,n5`IrLe ][[=HSbMXG{2^4$2PcLЛ/PSr-sDqߺ=)P&䓪M}w!l+7@)uHp@p~D!aPß稯!o|-/|^k"̫DOJF8tEoB9A)},G/d; .g.d]ޭ>[oU: Ab"0xfUOYfJ*Z>a.+È LҟܦQ\ x|g4.rTN,+(gqI Xu se,{cwuZy pyrA]{_d-ܗ`?Y.ck9"IWu{-wzM|.})gֽuQaȟ,⠐[ΈψnIDqߞ1G3TWj ֥S\\USUOyKeUnjno#j ).2}vS%3N,{сh+ZҒ\^|#iKc(4tb{ -Imkj2:wxkmZtW_?"nCZ%z~c1BMBctXǹQa4'2bĘ"x3 E8&$y*^ 'e7gVq  $,l µp2eуIy GX{W^^! koRppXeΥٳgc̘;vݧ\pdw}4г_N}==JKKxH@RJL}>K6'>qyhL>0GbcL@ͽ K=odԬvLW\ _~G~lY|#}twk+ s:B`y]P=_қ{!eP; ڤGsڙ6h=oiiݩSޙa^T*)+rex,9n ڽl(4cXG1Ϡ1'L!I{i}jW(DP[ `̪,~MGIM *궸$8|}K6Q _SJ(W ^ޖm;SJ. (J܌ʊ *C^L=(XU 'V0ѡ_=y?YE(B{gۈ5W3- !Jq[axg?;=p;ƍuI 0/X|FiӦG??ipItȑ;w9Ǽb]b~3s=/^wUhk?3fH>zлp(8|+dfw%r-F 01 *xvanr ɕ#nNҝXY +vR]39 X^.we_)2~iȔT".zŃ1:/ '>_ g'c|8H5?<=Y3)iV6̖.,L`[{cԺhGD3b42(Iă=tLc()$4,zI$ć:W*9$18nbJīIXDfbA#$ߏ_N@7~^~s~ AUdx!O<1J'3cd3T.tG8xn*Cgq5bEzoK' VF*`Vdy:v4I_W۹siٝTemj\X)|de m4 J hgA/PESKz${̐}߬rD4!!΅2&ޮQ}1p2ՓP߶5m[$&s/ˢK/ oH& X4L|ͿM7$@YF_8|J[lԩS$.V[?;/ Z% ) #F-N`IZk8L$sI '\bi 8,K$0D,pCM׻% ?i==z{tf)غ}L^-)EEmڴY53&*:1tm?̳bN LMob&el˥b%V`V۷bA=ے%Io$]lYЃv \?IoƩM-.Dm"5`Q$&1]WKzgH\T nv~0{G{G{ w

TfxgeWu (ڒqgVݽf}-. Ţ+J:S?W\_w|]&\)0.! KxsSZnL/1{cvpzaW]u yyK 42o5,ߦ@@QZ"O:X2h".diq{2KyW`\hdrKZs=id;SW+\!0&kԵH~;C?VpHJ-mcSg˛R׸=n$)?yPK~/D\g%3*0ձEX8r қ<lFl? 9n\e{Q[~Iھ? d]O=5w0K7[w7YB0[=nb<"N{zzY` h Qн/tPPHֹ$K㱘,{h %ft̴~!eA]:u\H4ؙB PݥTga[q%Ԭz5Yid 3;V&cu2%TPaEJ :"U,O/M<n+9A%aW yA^s!y-˿Xl=_Gξzj=Ek9Ӄ1Xҍ9a!s8c;Q'!KHW93g뿂hhߥ1dرcq啟/$8ƛ\̥1\ sW. \:U~tR uw"K,猭9(X/cߌ9|T@#Gc TZ JDbKTiabf N^ B>-'.!>s۰ _c4S; iObK44Uۓc?&qXEGUxQٹp8$_橌[@YnjwX"{}ݼSfK{qxP)2=zmTx/Ӭz9Vp3H{U8by?W^‡5&Mճystw>zwA㲵^H %Ʊ|R=%[\BK c!WX^X \k\<]P(׬ݼKӲVc1ICGЗ1nhDSܴjTN-Rm-֘@0B `X-o5M#vCX쾵x)mQúMLktoLk׽hH{N,sGdv89WYj#)WƬ e~6䆞j;Q1;"@~F^82|<MDI^c'ce]> tJQhݯ粪J̘1Cr`Xr*,ZH2[3񗗗I~Wd YmSK%V֧`D gv`z,doՌֻS#(gj>m~3FiD В,xY'C$4Y仃jwFZGzX-'&3{{}cҍ+qK ey=N!u(&.jxweoS˽rvnH& XT5d ݆ȎX} aŹF»Q%,l쫬"YJM QEIIdԧ m69>+vi(Ƴ;ZњHg[qIO Ԗ)EؠjO- ͨF`*OtM^EҸlab<(]A!j^X9(lGo k{ sv'hXdy,Ka}{]֕ `o%p1ckt;z+O~v7W_~ '` jN5X^Fg$1v< TY$H_\ϛ4~l'6&7;JiR%bW(++Vǝ5FOKc,nlawdEyiaDAq&:9?***Ka&{ u4pJ~nߑ-/kUT\dN2jo@8V6&ٹnڴ `]"/G@YyDEp)jKX@W嬜"`2Swԏѻ |ص͚wK~X1o7օL("w`h'r|E8TڡJIfRdR⹢PԷd kLtu@yߚQI,Œ8@oӺsd~Fj>؏*yg,ݎ ;/<紦y\֮cyWsQZVٱLRSUeڼ7S\ ;lJux`@΅%I#`)0@()𐟫ksb~Zoߍ=ԧX/ɜc_Ϯ fG%z8G+F~(kBVxst~ S౬x,VLpw5=8AKӺ6cIIbo eUWlQriNi~oye =o ֫pnujn%_L8Acu?_B \t!s">15{]9h~YtӼ /`ܹۄHZNi>G@iHx4{[s%1ʾY[%l'^yx?O)Й)׭]o]$,KgduWxc1 $!߽v)7 ue,]mWŶC)Pt>2Rdr"/@Ck`XH%Ea*Ș>k(RVБ2QϷGl1ԏqE>YoI3m lV%ߞdtD uNU;|_^cT{A/PIev\iJUNLCz8Gc4@T)$LF(} `%hM*/++?VI5# !AoT /! xo%Rtc9ǵ?ƶ s[o-[l۶ +̙3[H2]V~'93~x غu ^{u PK$p'W²e q}H4wqUkiF{<$3fR qyo<< zyyf|vo!VSx-[62Jj(h>!43'_ؒ8tX RA OVcAq$tT$~^Hm=5ԳJz91b92n~)9ZSOi AVz$4[)}΍7B7බBzhLRÜpW2 s:Φbsc$gZ CBc`w~Rb-c/6TA.VQ!qh^9TO*CC@u[`kT2_2HI`k=+`;),3Ȃq>L|8LDZ5At)WI%^nDh/^{F[ ߿JI>-V`?tqIJ%)ScW/Ce$h)̘ey (׬]/ՍT^ueܞuYnEQYל.">ARڞ5sll<=ɴwa8 |G_Yg}X3<0 ?|R ĝwމj|Ue ZZQYYn qZ^s5hnn1|?яnz|+^;7u\u0kL\uX .xw ᆯ c=sH\)s9`9PY5@/VLU")ώ}%oUREMo/@fuoeNuXx,ca{Y@ݙlXNG&Ε%vs^ |ZuQj1 Ŀ_ņuk8k̙|&Ǎgc`Æ '>@HO<ru{^qsRΚuԩzmر'tjKxx?g7rU8ߗg$դTf2gl5d5:=3{8zv_R-I^l'q\B9c3g͒i{= ~a|uYc|!8'ㅹDs>؈@1Yىؑ%$N8){+Wwl~͑Owx;q'm^ L8<3ݳ<᳟_g>wG/^;\%\qŕ6բD q/dˡ D3]2RF hJ9lZ5z}׏1#V=D٪Pc4 ͊ !'TB#xZhp -zgp*MZ[**DOnsHŎ<|@%5 s|T^9²1@}%k;g~<`o`Lp瑊 ri 06Pk8Л#8Nk0j(c|n܈Eo)SNo!l6+ikBPf?O=#Xn1?5-xO=PrNH;n ]W\qɀ]dQ$c\,2iU9vE)k2 Bt9hr4Vϣd;HBτ>$  )-3{Ja۴ MDeE#]+X/` ƶ6-p/duBdt  ogrTBvYH|Qv:J>^'xjs ު4|f*\`[{_#ew+ O,ɡzeP42AzāPVc5#-^Qda7YJxGn~X~=>jۣ$  sn 0IjeVic/=(..BGG}w펽h[ #!o(0u1o0G!|6Aj gs) .򅫯˩f#ʺ/|e6|I=g~GGe͚5%PQi̜9 o-Z$1䙧׎OZb/K/χFt=ge{'1OTc֛O}uzS#FbާSpWn `˩7uב:~'ơ(޺KCev!@@Xii /oW$4B#'u GJIEwCyvUB=v:}~fL.B*U3PvjjY`kڏ[K0.a?v5cqccilJ)z[ZQ$"W߃ ~U;&%BP]ϊGr5N)LoH"ތ1,k_r`b5 ( G6tG+KhSA[ٳqy/wvʔ_?~*\uՕepecG$uW_?~r?S3B ͚C=Vud{y@--,E;gqs3II=*@:+/Yr/c1GeU6s/&s;Gag\IP- Z dfϙ?yLۣ+(?sܷn*|ӦMZkK;/N2N(Gۢ%j8sLY! q8ptk/e0+{SkB.3(ShV&#: D) !  q^!Q{OB;QD4Se4*p2CZ`QAܕ [I,Bv${!ݮ.E [_Ҕƿ7KuTh+:Bq(?c+|zOCTwzp'm 4xz}iN#bY[RsؠFo!8Zi4zkj<$nk<Ix7CyUl >( {P=\0;d#.7+=K,55ӟnO?#??d! *~O`۶10|[7ʳCO_◸+q 'kGws'}q_w ;{2ҎE>]iV?>.@>_vFi_{qR`l@]]jGbG؛`]>q!CM N8$ lÄЗx5OscΓrx`N[$8m1in UO>#^K +2eo`Ql% xV ~o.VD`FdТYśWyJWbX bEiCXosgʾ'̀ϲqBW0FU"_a䋿nFMKs$BJMPQ\Sr֊P0$TTp|*[xfc=3[g|tϠCĪ(v$ذu5鏒2|#Ӳ=IؖA@пdzw}1O=4g]s%xw%$XV xŘ9pnzjcm7Mf)7=ϖ-[ĥD\V^s6 ,>I0J%Y к3y{G@'ƆTUW#~ cϹ76Vr0X!y&S 5ƭ穧<~[3nXeߪ+hћx7T~V_O_k[{aKwf36\|i"wA͛|[5me+BE% C?xbO:dKQ])s [ ҁ%:nL ͨE(Ѳ[T LDNM& lٺ&MDYi'oCRש59uv`&B8S>0 ::-Qmyy))e 9rCqd!ԐUk>?2 z"XUc@v"2,4ZΝ;m1r<, +$#-aVN{ϊ|&}ѢE<X/hevx009 Usge KYg%x!^ܳx>^_tbwZcg\@m/[9'w}kK̡$|oZ7ꐊ)3~~#jk=׬^cFqFՎ>L&;{Um!]5Ǒd;o/q1oFt:/IdV+z=6\q W\qeKQ~R==xm8-3$?d썺ƺsi7l@ .&dIG/yQ]wQG\jVe zx%fօ{(JL-4ƅ^v z*+0nXG}[82PƄ ɂQJjFs9n\FTyYcٱi$Z3zH$6d:ۡl w"O=-VȌ "`os |Z I:|cǎ'vjZZ7&Hz?O#|TI@A=nep?+V`i̳6jNNW\-y,07n0̚5K^|IsVK8Ώr$.|lk'ǒcҥh0\֍B+.+b{pQ`VEn27& 09t;ԡz _o\t& ]ҀffPxiݦ2' 7g':,sPEz$KՈW [:X-XCsG%>^#0Fuu>F,5T^i$#:vKd'%PZt3jXuv;.q^t$ʠ3\ӝ-ty<4m%/^3)Q?v W߉ʵ܈:lդB@h6R>(tG$>/&a"*: &sRLt?Ss\.~{1]Q#d3?kb8ȇ{ qmg|o9_$nf5C; lyy7m(QG_*!^ DXp8kpwZ|2eWfr W\qe؋m3 Uh25GxM疃NRތGd9D ʥ/ b53:gI&S`+c~^߀cň:.2A+[x5czOakg]ɴq9ćCM}#Lo]52AE3k34YuX"*Etƅ|x>Nb{@Rҫ@'T^LE&G:;Ǻj;ajЅ1:1f=z;4(:C!&Wy ?oN;eZ? h '|:S9]wiʛqsf)ȣYcv;Tܒ;$D@{ј1s&/_m3llVmm-9Kk7&J4d4[% Bzo]]89F!S Eɕ!78^M3Sk\hxkX_o:dC! dԾJ7.AEiR&9JǃsGQnݝx,RPJ= pǯv:i SP.ۏPTLBζ9E֝u^F\5$9I ,/Hgy}<-/UiKJ`Vs1cNz&IdN4.DNܗ ߤeUͬYu#- /m瓌p6]-ն3ϡSW,F(rIF%fL^Dmy,@ebd㯖G Jjp6#iym,ь~0zx oxA)o)O1M:d^Kei㦍ήWX !Щ>9-i1WW)**0h4"[Rc>0tZhm~ȋo*-{_{qg沗 o_"9ܝVГ}A#^œ_=ηj\fsΣŋۂW'gո6PxLrr (i?ZCx=/:K,mB[]@U{L^fF,YLpE꽂A$q4_H>:K/M:r>^EiD y|2.RkS!lLhZXZgaucI '̼Jaf]OʀZ5Ow?y:u?yK@8&uZ~9%a5b5xޑ(*̓oVDfIھ4+bs c%sHn_O0iR:pO?-yqgSn ԷꫯiQ|/>S( -FP1axTo2O۱F]%TcӲfbuڷߜW)XO;Oids=lG_oyhR XcC[+pl;,(ozB 9_ QJVs?[ # ulgKeD 9j0iftAPJw)1^O 8L;the Gsi-w@5Z3`|j] %-hZىI+.k\.[ u-9 {Ks-*i\Mz ^5I>iaRXC0\ytu6) rVϦ)&Hin [OCO]?h*-CpCrqteW9D67k?;*vȮk{i4c޷an ~AԮ]E\!]uLĀ󀙖Պ_v"O#A6?R#.&c&ٟW~QPhbmzw-SWg)UJW/oᓖ'!Zд&tK&fv,Mi2\PPPb@ӖYh5wbqbaQ tD7sD ? i h^/{kv0&(Q5۩*O$H䇛/@^Aâ/$ DdTW+KL͉p91} l&xڐuhy㽯i 5&yжz-ut״6S;`؞,6(;x^o,Mw$G(jRAAH=0m)wlPVxa2%48i J-z,1 euv m_A(D`T(H?@ C$Ddjd'L7sMmPɮnBpCB &4mUϩ fu;s3oCV@{&oPȇ$Vz/Ha Iu,y>M!]ޞhSſ%%%✋KD{'(jgo%qN}g[nTSS*kS\6gB ohҥKU2 (YZ k„H4ğo^Xù'IZ5?{:܌ SyQV?&{=^q>qB b(+J]v޽{-[J M4OÇ/B˗+:@=ZqwPO|,AcHUԯ__A4 ~Z5B j}E:O?4ܹ3O?VZE~Y1`@馛k3xIZrmK/mFomvۭtG}B& ?ӗ_~w)a\|񨭵CY|ZHRpt'2lI>T)%Բ \]E¶aμdN˂nv}nQq|I`x| y>@šBAԉ-?[F(m Һ6kEq5?- 0Dy1Q/"<:Fuu0i}ƍ"c;wX|yȟp4iD @F@BG~x X2 H?,2G"A ={̙W^M(za(5d:iҹs'Zv-ڛn6v=SiM:t(I-;G{ߦDwq'?[19/s΢}9T[fa.1ٓM6{`<w 6O 1%%Ū,j= .'1pX*)d&'GuA<Bh*%)XIZ (\iBt7YAqk /~A;P>v}H0w&s~m/y|BfOa.6Gm&Sߠ?u#L;o?O餓N!Cԩ;/y!w#rXDڵ=Ss[=7sg?;VXI_vx7|SCߪ^Ndet54b-kW.A&\: `ЭBW璙M) 2ǀUoa 4!:% K+䝛D~*?ue7$HBHOkL{WtͶ ~]_RE + z,֋~pN#?%[oFB= pt;d U `֘ph+Yָ۹1:sb+mBg9=`:x /2`~p\/Zp?YT;h…L0,_ܶv?ꨣ9% Pcvժε8&^y4a> ի/FD&1"-KAvX$L>q{-Ӏu! b.pﱯ:}oDq86<R@ݻAɌg|n\w P|h/^a*{Gc˿[˸%KаaX;v_G@[vaz}s9}Y +/ŋx:uah ۟t#%9R%G#3HjdI {'ީps; CFOy4{S\$7(>ӭm`>޾{A>b^թDB~础O+#ns@u,N[k#-* e?cs _3:GʡZBk&u~Lzu3o6Ҝ$|+PP@ȧ.VItW_}Id&aAoq4nX/i̘1I_{u8p}~Mߴ3ֈޞsǭlt=-ưaCye˖?&Q \pTα e)}g|!\: p8B_5+zϨQ#:p\e˖5^¢{_<}+^YY9ZknCpJg4zgBaڔbұF >u 2-|pE /,?avtϳ%â={6M4vƯ9~6V~dO9A\O,p`b*z0}wc9?㎿2g8 i,1w\=䒋ok! :I9r;|i$<@&/*bbw/`i[=6p)S~ WҠA(JM>@\|EL?U7~9+# /<;Xp, +a^2wyW)O,B_AɖpsGએF*D*. o:K c$cӧG% 2a<-''[:Si2Q8 EkǕhu&ᔔ@"6aYJX95-,pt\.mbq +l[ا5oc~G\@l@./}kJgRm<db1VTяPU¤ z1Dè#>$t7AEqUw|&Xhu( OdbIJ{r0((tL/_#Yb~ .f# pIWѣ{pe!pioWm[͜936}PXv&Z(of9xOt7w HH4x"{^/]Z-IhB?C.^{)OT\@ԟ~idtḷr3r!#wcƌFYN:={yq8'NM>@lڴ׬YcW%28hA<~UU5 *97xse )q㨴ѣGѾK74cu˞2f͚n3?H> }]z'lT؏E[n' hW$~9zhg?O=ztSq)vIfщ'lO4ۄ`}rPH!c$i}q?NbO,Z\T5K7XN|qع9!NNhZ^cN!^{: 5ۂcmquzBxo >d.Qx%₴:"H<G}carQ|4 -%,,W; DC fXC>+ù; ->6jSuIb JX(D" iӦq5V|9 %I+9R7l \+ a7@_Zvm4'] $ZghX55>w2e:- C9`F_rا@jaM{q6:18+hԨQjxhseG sD 9x8[I& ₸|y=(<)!k/rС a `R=bgE\pY^h|7>Ӗ|v;G<ȿ'rtR"ƙg;8,m'oK""Bn a݇Xhw8@"Q0Aի)N9,@7袵Bc/rHbۋqٝ_shi-J5ضmLw$Cv=/aZs75H=O${<2ݾ)}g+Oēdn znM&jU1 214i‰Z2|YvJ%9q"M`9k=:*Kr^ X@s~\uW+XaE*tu s=-s/Tgg kgxĽH{8= #,Ӱ&o;q?~B ' ".{XfI3bb1=-%F, zpq;7& iYh1{"L6Mfm!D>Ǎ}-/ciР| {2C!yn?|% Q]w{t xv3qeAPiDb+9+y@~5XXU2j$$$:V>8~&PBnRH`ꞜN87.}qtĉoakxeusHr,*BiӃ5{-вkښeS I԰h裏d |X/װIj6p8&H" 7W^ym$ire7TnG!&}1*-B={۰-̈?cx<`ֶH-,=_E2$ ڤK7rE a S~3j#B@! )C \\zdG̙33ڣ }py$ĵqđεHgu&-Ys |?y3m=Óe9F@KX,Ѯސ@Kr;P<{'ۛHC.Z%9ugƄ;RJd6zpTM 2VjR6I~!)+M(G"H}6/kSL;<ÉWVelwᬓZf?x+)% j=z$]~bq_a 6 'cR?8IN~_ rݙ{97NZ]a=իgڹ@Y3Bn.s'l!Ml2)s>`eLEN953Ya,,!~ꫯ?&.K=T>[9vSODž3rg|5'-'ĺ7Upݿg{8 ફ⾊6!ؗ w'^?snZAp :ǘ#{96Ho9*{o0a<]{o.be,F]Pq֕ _1y̤vbw8(BJWPϲe9VA~ e,h" ;5lBijfH)ގS@F3u R#G= NsupOy~g!ȏ@@@)k!`9M4nDY>s`?faln׮]|=dwA,eDsbawz?U?COݏ?.EA n A[TR҉]xA*WgM#\m܉" )Xm.EEξ#.- 0ydw {H~ufQŤ" aDK(# YͽO^nvBﱏ\}^Aq\ y.Rn_o+csym θ6Xq = D[mC=I|}}\D#)8{O>aǾi2p̾/2#;Gqೝwy~ t-ǐ-5 C4eȾo6D:|scCާ̾Yu"ٞBJ' ]Nro1fEmXkKtSy(4_K/"?-޶VmNDiZA$W. m*NNh;qSI g2E|,/v0o/ };0 HMۋ|FL|S`{-Mi'KAlƯKʼ7=%ZBT+޼B!L4\Mr*޶T2*LF(%rEB(;%2X 6E!=3WQB{X/~=ޛK!{*},l v#LPM5N6E)VSMRm UnX%Ä.O'ȿt]eU DTL!@g! NkjkBTBn TBؙ$Q"DMUokv+%j)d# ~Ec(NF$^CUTBzUJ_BՁN!"vcÿ5 p Tl5[sz %T%rH@8MY )(((((aP(ZA] GRj_X q7UtMJh߄!LP0j*LjJ_D*Q~`]ϕkպ JYԂiGª' Y",1f %^A6 {_L,Dlf fH*Q~o$lO"ג/\AU2 &G)`&$ qeWPPPPP@@ ]vJK,UtV/YBNAAACMLWI[@xXbmBQO_؟;ЩLЪd"vd''REڭ9B+ُS ~/~CkP~%?SOLDT GQ0L3Zp!E"QuZo?f:昣hiٲeJ|QPPPH pl3gH&ţ^%ŽA^xCT+/$ (3hau& 3% [% wʢcaL  Dx7ZKS5&Gh/3cL&@礵({o\xɾ.H}(VEd]A,$8 @ȠkpϾP5%4Ġ ]x)򯠠b@ $ucżG)91(‏o! v^/D},}52r^n]@'ۢ.W_aZZu۹<# Aϱ9b6I|"^0 o?I^vFPI%>[VJ;d*])CPV|I!wUYAAAA -$]RPPPP DK0E2m2(y>ċ͢X-d& q$3  ]!2QAhGdN;$,}(ZGaA`.$]u\]Y7߇b/|0#Ǘp(uHqx2~`nүc?~~cXeͰ?wF+iXi,RiAȫ\ @PPPPPP9ŀOm&Քy|͟V`8@| )冘0hO^zf*`* F@R󒓀%ciZI25V==ɨs`ͧw%DBa'a;ZzVD]';DhC I)5" JPPPPPPh€Ovr4a@so-OJ8+(wr _եmor傟+S&lOu'i]>-B_#au 7ayX%0t.Sã ZUQGWw)ط}1-/Qp-7ڱ(P0@)lfk3%((l`Mu5*@AAAAAAʼnvTpQ^kvi@wȎ]@C`NjaҺ 䦑ah>q7Js6h }. 6WFqq1P+(L&)Rmm y>%(((((((Xo؟h"DiDNq5{}vdy7a$$K! N{IҲ(]4@j}MlMEnݺQ("ϧB B[4Ϙ*+i9O%(((((((K5n'7fsy7͎yT"Bˀ;:=gPHaTQ+CB_xn%#4{l? -@O>_7F[(G;`j*(((tl8Ȉs7]M;79GG{i^lԳ_:7ҽyBm[k=K6U|T6o𚰨8-_AAx/y\ X?82d0mUѭ[WZpM9~ =[ 7,[#x+0~-&^; d>`'~BL," o$]6.\A#`Z?}2@s7hAi]^2NוԦ$@8s( ڵh͚5N" @F^z/^ LK!yE!۵54ؙ!ȿ휫:_X+VMb`v14잤=b}<~f J?}!H K,#[ot!rZʾ"])(O`]iCe˖)曹,\tх_r BDŽAV"0JĶoLXL3UMwpu->b(iXɃB:~x5vC '+lgڮ5ʹLVj %pX⑉|#GjdQiFpBu[tR>}:FQPPP訋'_s,d)y9?i1]:~&߃a&AJ Z 3箬'Y)Xc`*`uٛ)2ba#F[mđJzŽ@HJ<իW>CAAACrfUh7]%S'_VPlS- e!Z_BX6 nva o$MJ_-nfVɠEIEABq?.UEw4%HA# ;`T FMBf\N;O駊zwe)(WUUձR5FMt wvфYI_ UAqq0bU԰IFD-J}TH9X_җ];ւ&频4[PІ"EʲLA.zmۺЂmssիV1aI; C`/e>ٷ >O7IJrKda-5W鱁}:$rSH9w-l!c"IWq dE3gM爌mhҥKkkÍjpC}ʶf} RqqJʤБ`Ոs7%7͔ X@sk%7jkkyy=X6:6X =V~N3vJH ~ߵv ( f>e}f.w-8ߛ4= %;%(I}ݩsԫW/~_^֭[O .vnrbbvP~hm[mZN?#-^&o UU4bĮ4fݻ8^'Zr5mٲ~A( 9>| u'NMG׸G?PXXDg ԩ3=#u֭Mgڤ=\qK˗/>8N8+B{jTPNA!ޒ"uNcEdb+w(`LYbeoNj\t4ێ@ake*r#EUr kKL73S9sjMۅF˃7&/WhA_B)\u=(8!KzV@A yᢋ.duaÆ0Y`!T]]͟ò rsi2^z СCYfoEX?}AHk֬a /~׭[W1p?zm7[grk=OʛDW^qk)ӁH6{:&}{Ewnڤ=\c2ٓڵkiըБ؜̅Ŵ- ̟SO}_ mb石%>}+k kTQ6Y7aImnyۻ~h_/;\*"u5k6\ISuVͬGh֥f$q 3*6H&i0[=MPP@4h [4_~~ߧOm1{qn_|1 8NJ?=@u䟳駟qG{}gEoKG_" /''oqƸOcaXKI$z7o.7}O 6d-p@g嘼 MfxH`[BC_8f^#!OwGk_##]q׭[Gw?|hȑJPPp Ӳ}{c1|^***w?3v$0wYu,⧝6f̘1<{x<ޫWO2dHqhJXk]v;iizW}eabG|{Fio1ĵv&i9ako^&%ɼuJ16<ĸꁙ$nkA^O&Sx\2` ݶ7xu1{*זfZ;'eb4B#y1.|qg w׬ٲe#{8k{"=*tf8/..e?utKt7?P_  @G1tSN9 ]wK&J:wk֬)?8y32OEIDiHXpx94 ,8yQ_ns9nݺE /rHAɶb·3X4̋1cF%KrPǂ0˅wuW^A_h1PA11}³8)+q"$;9{"=3TZZ: ;e>ʸqc9oŋJc9M6m?@F̭+qUWBݘ2e ۇ_˱QWkAL2B{N]v]sͯw?G"QG(Ƽ\ F+_u ǼK>5m-a[wnO~F^8. y?4$d;$B=қc?;W%q)ylɹhsCN>d?F,N֭[9q믽F:(g ;1'"SNbݧ-`m-Uwz͝7ׄ-\yU{OSLgiǍ>,i4SKU!0Sa _ ̮]=zx1gy?? ¤`~ y.abl&_ akw@[aĹ 4i| 3,;1a/K_|[^er_r{キO>w}D|B o`%;@&b,ۼLq. X b/To޼vp B֦y^{ŋiӦqʂc"_Z* UP(?UQCWqrqXzˊ`F%id ZX4mCXc'+iwǿ6†;~GB Z^xKB "5ǦMCDXKo,\DU+  4C^!x|p0c\n(aZy<>g|zo"*m_{/Zj{~C{1^!#ic9ƍi~a?oEgD_wo8D77:۱^U\Da@7LE߫PUc%ᆛΖc=ocnZbhOve+NX(=٭\Kms?ǐ",^v05A5pX{zs1"x 5s& 'eZaX tItE% jK/DG? {& %^B'xb;ך< }-e,fc%K/oB;WyVXICxPؾi_A ML9ú@^x>#L`BϚ)=vqY|[m^+1UЌ3rn#A;g>}:6,<Pq!*~c2?{G`B5k/ C@"6[g'39Dw͕ vJgϦ>#d^#86?Vê#Bd `[_Iz_ʡ-9vvE2q.I1 J&g-~Qi14p)7O =,uZ#1XHWZIG}=T +\|“g'f}(y$Wo쉅9hvs;AAṆ3 z6lhUZ?4k_ؓ<+<`<( A%Ƽ|=lY1#m>!r7|ɿK B裏 Cw*WkD;4 A ݷCŸZy {s-~wx9(I&ႧߑGɢ)R/:ꨣ8F;xA@@Vf{Q3j(H J9@,\&1_ZdbXgSxqbg˛#D`9JC֭e?&L)1 q d|A1X0pUk5tx6sw"| q/DLmƄP 8Y0&nz!zr`)G 02n\H=^wof#8w*􇯾y __iM?@OHdwvxmfϚMK,|d,zIzi`m~ ?|=M}8vW;xأS Etιҽ;l7:}vX~%lIux<i6n[H1g;ȑDꩧfM ˲Muſ XQ"\!3{5p[t-7 "g/: (Ɉx>He(R$B j <5=rಒy`< rp%܍:Eb1{>cd~->q=Hs5KBR;@&DR,VA?Y^lomo/ȍ˟r%5=>uxzjo{<$Řnx0AxNѴ ̙5=m[99 y2%Hc²e˲,p ‰9}/HrC`/*[dF=ϫeS2Y`B4w<_J>(d/?1!sSX!#ر8=Cٻ{eŨQ>,-W'XP?/3fda;D$x\`ZSOĽY>,`][8#8-/mdr[W_zYi"SZ-bD^D:f}#\҅^0wH>&[(u9C6xĆ2lx 2< ~*qf|!ɌÑJ8nddT6@~|j6/ =ɑL s4qi㾻?plpp_K*- k><q~ y!Kζ,BPQAA;nfx:YV:4)/i3sJ.{faa9D-s|8Ù a7\xso~K 5@]xP~dzE3ߤ'! !̽H$W'&NK.nnh[<; ?DMJh>d#ԙ@542 a3g6gCabK?de\p>]y_ A}=9yxI&[JޤI9۫X8p"p-|x9<P.a40!,/e({!b@U7.'znĤ}QGjn-J3|.bdoŖkH'X`!+guϦI'D7t#/!g?;3gC5XChBvbXw5bp5E_ùqHV+!ȿB$ywB7ɉ:aUZ%o |An61fA8JJyv_ Kc:sg+X~9^ |x,㐗h׉qV~iH@>x(y|.IQl1{ꫯ+F=H?Jg}FTw}#Xk1S,;,8WW! 'BGx66AB}M;"+yt^6Uw9jT;ZZ3y8Xύ чMч'ػ;I׋[o[- /)'WMJ*@*8DqZ?c!C03Yqo~ugz=0~f;`4a!zWf%(eU:s=YX"&aLQb -TZ(~3IC'XnO6 @?]NP^A2E%^Kte[Ӈa &ylT0ᄮf!p$jlڸ9 hy~`}\hVR(H3rXzcđϠ*cІk\ 2fV7ńȲ`G"\|mxd,[lݶYf:l L~1_ 4-էNs*9`ngi%w/1CEBg^6*E2trg X4ܲf^fz'H )jj[*e'm9I;;8ώ8rK%Q"%%AD=3`A $!JmSygv h SHA>Q$u*]&ڵ3m:|޽˜Hͷ vw667B̉֘u9fBs;v&pt(70[ͬp}&o8օr9ڐd&aN߀п{9ήo>}>"Q}y\8ۊb{} zݻ@{"+{ɓC)ͰE;E;om}͡! o8www. V@E%-[s<?I.ncU9ѱbpn "g75ۭ\|B*V$ ?'p{Hz{ r*A4!Պ?.zK4& D<,u cV޷n#i,>s9_ +{㹐‰Ӽ+4#5q6\Cb歷>D7Q_S}AZEnQ yvEEa4Fm&uemc.<pXH;ߊ >BFmki}_ Mh#I1Eno*)oqc#8o =GV^!=LojGgz ;)P)\Ϻ ^MӞO'3̑~|``էRX%MYjѣrJ~Nϧ'Ng}5w!4651R{^~ExD<崀z陙G/ :ĺV՟KmSʊ!?q^NP7agƷ0S1L?C$|iπ!p)U>~\N_v,-hB1qF>Gp4C0= g 0(&$AvcR? OKѷwZ[3O=W5\nmټ|ZsZUehxv^DnD!?Sm:Fi:} r[K rӌR)oM_x_~ jh8]s:&w̓/'X`TgO7-0f$N7ɮq"j]9Qb>*KjqWA+Eخt~5#27 .]aÛ+bA|9yqxVaQ0qɍVd+s%Lǫ]8u{WOCyy_ wꍨ˴kiny!5q{]Qg ±ʱ'AA>@ S>]~PO'33֭[㯜 BJ`NBa 1 T[j__E5|PEO}~pw!r7^BWřz#= E7LfSd W7PCDK[nq:>^/yzv=.s~ia̚uY WG|7~=wkJزh-q}1K[a[lqIa˜{UG[˄>]&}؆Նa=J'OJ/(u~z(xm6:{,%$-ɞ}d 60`P#˚m .\^bb9M  \i Е~Gk5Ǫ_#okJMM{ }1~=O[/kvAwݺuAOW[?| &{SXxk{|rwN%zϙS6׍zqwGdz_~j2mN`(HPJC.]{F;6MDڜP LUʀ7v70 aull^ տ[|޳8`ƎauL``AUVϮaAŋZˏA,[sd7o_{?筭mL@l{*aV=9 \OWB,2@?r}[~ Ga9x=IgV,ph1nݍ?k:>`07TB/i8ÊtցiXw#vߖ:Wڪ`ոA6`nb~|h*s(ވ-Z0vȂ?qvu9UaxZ7a]cƂ0t@CDZ8" •뮣o^K/ݮ5֬ W"hT ?}3q˽AW@C{7 ϐ"8qwօ^a?FxHp:Οڷo?X[&[Bwͥ;vP{{=ClT|+Rii)/wiz؛u#s.^N?ֽoWfBb믿?qO9?mnn˗+᣷NJ4xsC.\Cű?{x! Lxۣ]D~{|?u]K<">sf/$W6Z`6?>ټ;8/%l0spB'G5_Zf }s?F\':co|l?G&##D!HYo~(Mtuu_ş~?a/ř\#Ǫ.BuCjX]q`ߒD>nД\Pu0`^;@sm h-kDMq wlaNX8xaػx|]v6 sºĮX5tG'aZ'μXcƕqsdD.D57WE(:{`i򑟟{=( A{}d?~E>9«Q={k] N_[rF=|81l}CB` <iyG_b'"X7ӟG*|g1(%X/rBq\0H L ְcǎG2)lJ){{4CKlя~2Ds3׿A!>xuW^y=刌x晧[ϳ`Ϟcʏ~cWWQ/_>_b> /<-.nb< `lw&aF-ߣt0H3rL KǚzmWqO?()Q {V bp=ܫy,c2P9as D .V؜pi@S y饗;AAdeew0ЅH7l@#|C߾};=ooƻ=??loo{eo;Bodn* =ë lxꩧ٫ CAii -Z5+yEE%;IF9ї8_~Fel(a@1u'fNJb5?\չa#4z:GB"0Dg{3vrxؑFP᳟}U5ǭzXsu*e¾%iӦYx}=5p-"S2~\1g/"6Th:M'ɮ?y=>%FSeLN.ݛ6]09<3;l:<.m)ڇgܱEOs\숽1CA11e0&fƚqo#]-m5!b&>_Ev`UrAJ'.ܹsugx2b"P90w# -.1~{kx!q,F'9zka}7_PF: rqH)@;R Ν^fD89kW%Zgq! Ycw! !`A#ζmx :8oЃ'?{] IHH}k8G@ȣX : I{(-m|s1aLDN9AOo}r\[=wwDs\T})3{zࡾ^cJ ϴ" ƤL0aqlSυM1 oԧ+14x   4/]X\%KUTI.A+ Bwq}+_QBAUa9 ;ܢE Y TB]W76nFzCjQlq0쵨r(Ҷ{n^r1@]B۷_ƄruJop oܠ:ϵ9?qB3XB~HiPp_/u6RwM>_ߺ@ R X:WߟI\w1>^Np1v~z>_7aF}Fnˌ&MbTw974+@oΛ.NFuA8֜Ԗ_NkۜB_"w|ʥJ ;{! nZ˂ !(zgbvTm1@j*ΏG<<_d {>5]z5/9kܠ \y CTA1~q{4xW\tKm+++ck6m]3k #7,Ǒ0_j030_z. # /hsq^+`@Dj;`(l 9{}!\vx"uq̵}9pޑ\~Do95D DŽ9~D M:쟸EǪd7t}ꦮ^ ^ߏ>5ڝF^MdԽcY41M\ƾW]Qn}'֍c?pFRfcXu izP]WI{2Rp=`P}z u@-o&'ʟp|1KN  ~xbpYGvnnL2{ov;cf5<^cP6t˯"&Z:xZHڻnczxxaL@;@w;<ڣك^(F3cȣF^k>!0!_P6ȵ VC nl b0V@ jy׳PþPs2cA?˜Php^!5$#;\:86#Ǐ1Njk)u166  6JC5t]wW}|:J>wk&>f"ߴ&`ۃ5_Rײb2̣j>@6x3l;y b XD w!k=!o* o7n.Wt^v~!pmq1X'R`ÃtM-J60Vsѱ\clOWwL2Gp4XE }\?m{XVp["{t\=,`nϡ{[z=s{]>u"Ǐ#Njm9u/8ձ~]5. uRǸ3-$`xZ ` >bAAf"I-l# F h"׽~}AGTi<̑{ Zi!m3!sq r.݂7)n>X~=WGT.4(y-uzDxȼ"n(gDM>s9P-QXWǭ}O8-Ґ6wΞE?96c*ҽu]_/{,G.+k}p !ݓRȸF.Ke+ƪ+xGzgg |Xn-ٳ~ T{+ϟ?>i{hחA=ET[dΜ98&ЛTWQ܆ 􁯭qqG7p_ɪ ‡ K$ \f.ue5?cvA~hǼ|WGSN@'X7ĢEne|A:p ٳOe"Ж-[Y<Yҳ>GMMM~I! /,].JLL!:s,egg?/(OC ѦMo+R Np9>wwt&,TAfp?_2/rrfO=tzO4?ol0sZ(''KJ/EOww=أ ѬYxy87|aaG,U"G1qg㑿ς0 mddX鶻\EHc  d=?r\ "~dffG! [ZZ8_F)))xܹ#_~ۜgDh`lGs=φ Ag +&zA^XcE٥~ɔ 0S{8jJJJ 8^v-D5Q͡kSO=lu׭r>~lۄoҮ])>>nFg=#O?ˡjkC*W0|~Ii9iA.AA@X^YVrƍ_`q^QQUw9Qee%}KP~~--ʹdb^o+m _>?hJ|aػw/ܹEBBOqmQo>ڵku'TUu!;P_A1  \ պ_4">^nwO' IIIrA1  |X}4o\D/EA1  \%XQT]}V"A1  \FL pU!jAAAA    @AAA1    AA>Ӱ  bAa~ӜDMSL  AA>_ӑfc 0  bAa pͰ-a[Q#Ͱ< lGUA  #hغbka} gt|C}4F1 •'S  B$oE&h;CI-^ g&yAw2'3)fVa2  AAf@{%͢šݔuPJG%t5'8R!HԟK9󩹠 kIJ,L  @Ac0 _@B/C>F m)0e5|g٠?H}YTrʉd -?J'뷶+&AA  37@{Nˣ4K%Tn t:NEVZ9|GAˏAaR0EKAA  3Hv[|㝰E'6S|wWJ޵A[@k=ua+ AAoXYq[(D9'RVzcqHAA  \^=n!%C ~Gx*M!.8&JWyAA ~i߹gcQ߇~^{cD{)n5" q4zsa@'<rAA  \'߾wDZÓzc/! բ! ^{ SRW#}(뵌 `Ͽ!2j+q 1@A   BcdB+! MGszq-  /l@ Z~e(AA  \ׂd :D!;&GGl`Kږ`P 67@ v QC`0 ǥ *AA  w qEll~~f4o=ۅv4;R(.>:ڨz{ u@8cygj ` AA  \B?wUoӞ~k;?ʞh_o?)=#fΡyP~a!WolhzjΎ^Mx'= :iVnm 01AA puu#;+[~+ky!!C 6"&~ko{!srͣ9s)>>FFFhtdF)k,Y:jok&:q:t†گm 0m @8qj#e 13cAA  fzf3pyK̛3\~w= Dp& `8?==RR8G%di%ooX Q#rrrhΜ9hB:{ gfRRr2 RWgА-cii R "` @DpbװRc AA  |ow xxY,*7#8XR\BR"gdR8td(Uޡ;>:SRR^ (>1n*-C99Jwj:BZZ:k![|`3C:KJ#]Ȑtu!y@>CtxO$о8E2$A3HYa 8  NsSŲTPTvgvw 48(u A00B T0Tȫܹea>00d Z\Q |**.@ uuXOէ1lh:z5S@08nQ>.$@ l {+%o m1@A  %%,?D? Q W"{{)Iq񔔔y,`*OW9JPp<"eYx1Dn0nQBzB졁6v>Ij'~,^v%aZƠ}Hhm,mhdl>*cGBiY)-^-^L??qV@@X9T72J^~< (zϝ څ >8scH AAWGF:Vƃ@pJ”@U(B Wb\Q_ 3+.`~WW xP>?K甀&C|Ʃ U K{lף>0(N)ᢁ刺X8}H@ʁm cqV^ GЈe$ r,TMa&^k!Qj==0l AA QSV!?D?z^ʢL.dXRRqOsNvj`nS\ \78  @Arop>o8;!SӕർͺhDoiii\xyPڭnobJ6q kDtPE>~NN.o퐵oR%I>Z8/jZC/Vup#S@Á#stg&QVK Qʖ ##}k[OHwCDEɓ'h+''PZzFc۩ T|jinVS'吮J5gkTSSH+^Dem 0 YIIIJ'PGg'SXF>OU/(BN HI(~PwD45۪-O!%KA5HL-T0ՙ0꡵Jmus!A9~oyCOOxlkkc^t~ܥe1D'NBdC~J佼l59n!Jme6]?;}4@U^ d9dw8EGxQ(ȆuǏp|YHKx\? BK,L}m> ,g<՜=ooDjetӗ(DX IVF [kux 1A  3]ź?%_/2 ~r=/!Hh5nۏ^)ڥ6g پ}}##AT ˘c~c{[9SMǏF?ƅHd*..q HTǖA^cƼR}}`P/ 33[!R%p 0,^0`lhooE?:‹: 8/+E5lc8  Aa 7MoO~.n(ƇpϪhbݳw֬YJfٳ)CÇٳg<ǏBt0 {c7i쥮\njjj:zD= ]ܭ(@ ʞ|RsvZ238M^zEڿozO99l7%aLKOd븃!2 &&z<HP^Ur!@cGAA  Lw?sXg)s'@x:>2m&[^>innf4^ 9sn Q6"!ȅG?ƃؓ[\5D 8@wT-sMb) QhЫ џNij.<KcР\:Zhkc:"l398srmڸ A]yn@4. zpC@JZ{<h#Ã=/nQAE%N{?86; VQb@d@ww;H,];E {{1.p:p .У/ (ʚ׋.hIc {M>1v(  bAD=pUԓF>08!,VY̅^s?Wa=R dk?0@=!?O=w?UUEǔ͛߶pxuTDp aY{zaPWCsa/wvqƀx>*[<_ >)ut>GEE=u _.#_ӂNGLf qJKMe?ۑ+y< <@s0dW6uzEf.1>48XA׬\I4+{edfvsA` w>kg\"JMM}?ȅΡ6r@ȻE^Fdf QDA\{|qA PD8 ~x@vd6Hd  A###E8'K􏎎p<?Ө΋C#jwE~ >;N7y,3oS1}T[l=[cnϻXs>DGƆz^3fq1ڱ}9,_-Ybڣc, pGLf c9DCD .-1692:G$%[מUR4G@>ND.Na1,c Jx1@  Aw=-F8c1De_?  B<yZ{@Z#7Eq/2nX-NG3hu:EAJ=ƄbF-d!!F!@qL7lĤDGu>η߾};ʙ=E;"Cɩ}`_x_G\&K*.E? 7̣6DuXm.2S< -;&uݵĄncנu"\i1{ A  |E9VsZm=! xs`f͚e+_uhՅ?XhAl"%\ ۜqU!)X!!W=HϾPP;0‹/Mշ$F\ *c_]#q Ǯc)qFjn \{H@J\뜸m Э  AA_~rYZY^Y\%!6z-OONMk4> R.iUt-Mkɪ*q0 hc 91@{uTtLJ[u YTǧ7Ӣ+3+2ӹ=%`NyN14H@񜱁I0N|Go YN.c`aEP~x,"S iny9s] u=SVݒrhوk5µiwЅ٬13A  3@ľ9ֺQDD?ѯ!)%5pG .PXXc[[Sji pOyKNJhuTW_Og-c@WhmNG̈Pf <iݩ naaznOc7DR@x{E؃ ۨCƗ۩Q !Ь=\anx"eԱ0hXx~ߊhkw4B&CܩnV@Ν;sդdffrA ;Q)uJ?ɥb*+-믿66nϽ?N6s"VCp\ZB1 跼nЯY /[ qθ~ƂTuQNLMKSOey=E![ZKVК57?f#0njoinU⹂?G# _PO}=>TYPΚE, :;;95"۷KJYΝSK=Hc3Ƣ=\ "g.RmFkϾs %؟N[=jz!xFv|s9^PPHVnΞ=CgTI:}Qn6`aЎQzܺD1@Ptm ‚~xLNJۇph…T>w.y l \b%]{,ɏ? ̙ӴlY% 10[BBݒrY6jhc@ A  \R#+_hv> *ϲvz/k ZM)j*}aA55gyh9b :t WG4fYtp>u'0C[<.pE8n3h6r9Ѻ a;ZEn$8>xu>?kPj<}==eXSBtjROoqkV^C7SD+G'Wcw7m \@cwua每}~=|"P*-z}HUQq<&pWȂ<ŔiGÇO0z 0"p¡agiim pځiڟ/UqEAA GU[a\J$ r v+ϑb[TXTU;p-W=>!=Jxm٥J[ƍcڹc;)A6gZ`{p?=-χ;)ь ^QНHoQSUWڵkYcHب!7>~ht2F`|Q9_ݐ ٳN8;bs088@hEX!Jp7ƀښq) "-Ԉc1]gfu95pB#d7SqI *;_|6,Uaӟx}z'Gcc`Ps!UcBs>q@%.`oG A  b(򗻻U\i,P{￟εBٳa`CJusB;¡7sgжwe!1]H?#}H AazNa h8rj4Eè333ƛnt] b22iX/V%A}}Ea}n;w[?Z|T\\S G 5E ݵ.Dz{.1?v F N0 ̦"64jZ}-Rg{;ٽ6S7(>:&]@mOk]#k@Bzzu At?* eUto21", K Ӕl:z̮X~ԩS,Bt + B+GztѾH1iw!@OulZ$"Pk4n=\/$3ۤ\JKK~eehusgu?V~bup Ѻ*qN C4P ť%\|U3tI5_yTT\DEEB]**)v0 p8j/ AAfX@#-FdIX ggl{gbuF w\aZȞΡNPMX{r8]bVSt+:w]{|Ώ㌊x'-#yЂ9bwa꘻NeW6 ȱע_/CԂ&]KZw+`0YD\t+.-Q-0:6Pt6(яԀ$m!e:Ed]ujni(&A1 ,Bs݂L C#m XZYIspu{@xnF{/Gj6D+ t;9\Xb\ 1(ZOEkc{l6ЁN<ɯ/2{>yֆ xjܢ?rnѯGXjhm<֒Qhs㽚.dIi)w\w*ڹs'{cǎ:S)(yl2c.d<A  \ N݂ "iL{ƀݻw:E,˧vN uS !@ mȵ1p!kkfpXs1~ ZC£nor%~Tw{cek/vDmM Tsz̗BﺋhA1 •5L1`bqL|Y-DݢUZOV!_$D$/zܣ6 tA@6`z5 GZ%#ſOܻ{ 8ѯWGZ5wt;>Qo;xƚ_Lr AR3OMa[U/-'cӯAo? UW*UNQ[k+YD;`8붂<T̟Ȁ̛yCīz4ԸO ~-\Hꖏ؀h Q@+2 ֵA !kš ACc̍s ОjwuJD{>XeeeQII [cPׅS 9f 4: /NC=  A1`TD~]8Di斗Szz:wuvP解GpuyTЊkVNgkj pqRthm8=ΘC-U4ѯ+G[Gϵ{tX>!EQXKw[o Ђ y=:^KTU9sF` tt~HblA1 b !i̺7iȞ%b~w^:Bb~OǩBv{v<^%9s(=-cg@VV&ҳ>K%%TZRn={_&$p<}!GzVOޏ}8QO5xJaVoˣL%/(O)70@OWSzzٽ;CW릤ѢET 7HG'xϹp,IC81@ϻ^}ݍ]NA  S4Dd8&O*.RXTD#j_Cׂy4|^8~_ʚEfeQNNW[uLǏ#GSzF͡"  DS i\XXHk׭2%ӹ=<HTs мy8ߧ{VJЖQfe hll ޤT';\Μ hP}[ص!-#/1@Π Ex^oaUAެٔJ%E|kN^[[xɌB. ØZAA 0 HA-Zzu~BZ#RZZ:Zq /?DŽ}!̿֬YC+VpJر Kl-\JfϦӖcόcxx++#Kw߅maaʲhb–WHcwy݇݃AЈ%][RQrǨJB!!r:::84+Ks'{?浒k)DKd "UXvGi!u狐} i>6PH [DIs ߓ'Og(DGMjm#Ƌq\u1#զ&y!|ebB!4!gT̥5Oтwg~jO>c2촥V !,'Fp|~.VuBb5Qɥ o<F3*tKEj47̓blQu1*z题bf@R_aqgoaMWڦr:pyQ>+Gaaa= ż5\U/5B!4!IyỲOp5#T;qpi cĈԶv?##^>o"+R7ބzғY4a.TJo[}(HE:.X#!NG6۝4_+5Rzvܟ5Ts1ejB-IIpk%|LEn[!J/i;0`h'Yh22*c}ۉ!BsnH\Di *Șk>?(^;WxAOOocR.!΢?n}f8/!u͑j{I :.a,qV+nO(B  #$6(]?Z\Na/}ڊZ>?Yo 0 3Ejn E?!BKbq'3 B2s05"xuś7q5: dt^C˜y?ޗtDvst?v*nY[]׈g)_GI?܋ 1:z{{fw:Z!aLƳ >?_,Pf@3RF>eM Hk$_Kf@YK6Fjj4F;RB@! ftӗ&zF|.owOG~IO#l?,xa{#4̀06\U RR*}(Q'BB!Va#(bgڌX huR"p_R}1Ư ak }>_0K֊iiOmݫ$Bœ /g9޷QVmrd#KKKv{[̀Fڌ IY@w2he3¦B!!֬;nT0;J,hԑVTFIDeC[!\ĵۉ)[EF%Mj_n3}6d]yヒaTe>LNNnH^aw3E:qȾ_ij>xj<3,r|lqYEv BByDEMOfC=#gkET&YEeogѯl=~~ssS^ W_yT*dٯ_{=ŋ|岽M<~$3@j%?3`73@^+N6H̀$3jbn/˔\\9va]B!4!UOf,wҩ (X74s:c?mF[3#E#诼]߹3P(1?7;k~4M<í[puk Aɐ6# 47^l8ǂ䵁L>0cѿ۱ٓP B@!<_REfQD`##˨4۩fo $k~D??>scc8qbnS+e?9|6fF޷'qv:vrwhK*|;Hٮ,}nŶs̀^*M\plBɰGB@!_FD%E[5ͣ]!_,5E{ }o} }_W_}ըhg>Cww03=> <+=DK&~{O~b׿!|xoZ}X,g< pl H W&Y TǬߕ 21H BB9vwDm~uD]ۏQnF7RSqm%#1FGGqe[?o/S+Y߹u gfke[r )0۔_/!LqoLp~ۛ6àdJG;ʺmL(4! BD7;HUqM1Dy4/a/M>/1*5p"z{crٮӈ|ҨP"OE&i_R% aW|L `=J9@f379Lp!B~Djzh_jSʝFdǏ>0&f% ?!!&&&ZJ d;ܐ_ʲçzFmckE Gء3@ V7ǤN3B B!$QiۊX?-џ "%>jvB2Yp!>ĉapT&_a^m-xcfo%f\scv! B2}#RzF(lf_Ţߊ_'Xh]DezP*"EOg> /(dqf-"|vD|\! ,~uΠX Pt|dY8nQGFhVя*̀5R櫠r%-2A& S_AlŸBhB!Ǡ"7Vɻs_g>h#PctP Xr$NGi4#B9Nʩ7Pq'! B\H=XS ;wbPCulf@菒}iN3*yA/ =2v0lm)`먜~BG<`eV5BBy Hxu,kfx}00)z+(z> | pH$~Ҙ2YAx.xp\2 uÈP1¿6~Ո!5qF!!rl&qa(va7s6?COe EdU z'nw:k+h }䕏%3)Cs?[3KA[ߔ/H}~#c@QB B!xĿ6+ ACv1bl/e ɷ0w;pK蛸ٻ読j+O Щ?4rhd _Rl޿ĢkPmDçhri'Z|iMB@! ltSFwX0>WD`yxO3@"kB#g11x#[&^(8RImue;׭p992Ve2f(?1t9;/DUT.?x pi5xA*N>H!Bȑy1] #8Sg׿tA=W* }5+dtv\_@S:_3\y=F@,2/\ pۻQ6rX;d 9el~GFn;{2yD^~'Y"C!4!p+M*yO#ML0661\#C <**k3sbz Ys(X%Rl^"Ɩ|.e9:sJ.ֺ^Mjo~6=A"kmDm 3w,~Lѓ! BN-M4"eiF}F0RÉ4)cm5 A X5/A9[@|wl}NboS*l72NR*@Ⱦ sH@dο!0j0&_o h5罗t-szV12} Cs ׬[b}^oD'Bq& :fg!Q4s1 xyEcD* Ay*gF;@Ueh$6R#t!BbزHnj 3$ά=D'eXϴŢLe҄j,޵֮D]tEߣ^Gѭ9Oώwc= #$XxODFᨃ -?N^4k$?5iF?YE?!B3 LvFO3fCHtimǣQL  hF@u͚=<Tks?> n03E<QmT/{o^M=j7D#bf7iQOO!! h N`DR{T廸x +v< G@75ͻX;aLDlY+=h'7_0FoDtHEr>2O!! Ha3h)af@&:NX3`-ہq*fy~i,˱{'^ } 3wQ^E 2.̀g^Xߎ̡>t ~m#a4q}D8Ulgncl:Y&<! L`CTŗ*in \mj̀Y0>?R3`U\uxeN\GtTDșMd]+= uZw |=T/(>(藑}iz'BB9^lJ葹=X_Puozo.5/@zRfE&uF沨ת8s%EI\"\ds9dYx4D(ϢS\ $3 "x/i#\"6dnT#l7_=_A}mǍ?菗$?w^0޿8) ! BӌFӷH̶p:d#3A,mV#;o6-b} -eTPGd3/gg;ges`v9#l?1RAsܩ $( ;]1 8zI~V{a=8s̵&6a]BhB!Ϩ tSffc}fẀ&:ư)Xfdbl|ߡs.z0쀂ASp  sEUξYfcE[~YW'1,##;SB@!@e'Ukc|!^ޚQʴ5 Hl̯wmKExts{! d4-xtUʠ$MJ#wbyO:XGFؾI4_RdlgDf{Sz?E?!B ifJ+l$ẀgJpf+1>fKkun.7utM~.򀂧Ìg63 _>ɚBG Bu-cX9q{GI'BhB!/"2jhW=m9V ZYCdRY,awM~G7e3 BghGDKC?3<w8~G$"ƿ6+VW!q.B@!f̀z)"Bl\^<̀l5DHH.إaǹ̀j b'imz\~?xKzΈ!sHD͈[89y]kIz0_7Dz<'BB!O2G2{g 2e ڣ*$fBjF P ̀+&2U=%f /f'%LEP7?4BB;DKۗD:"Ms6ʯȾ͑?E?!B9i:0dOtO L b8|fe0}ꛘ=dJ x}3wQZYy76$3`sE o5UC[DA"IلŢݼ'+_CH/vh5B B![3 0ׇjK'fCnAY# RpޯY{YL|Szl L|BC>w"oU`~sT/U*(Dnܶu:GgB B!<3fH\SiLf"*sPIf1L$FAKfw0uh[L]WPE?!Bỳ 3 J%fp zcf,ϙvL05b*Wm]ltoÊX|n#c7ZDOO! B[3e`jȽ:+0ZD0bmc+424h5`a|\yӯf#*NG,u1#&&]sw?pzV ʍW9ad &[ByL,//<Bȓ"1mF)?! @&2B jI:)k<kD{tY ]!4Jɔ1/? !-g7 B1"B]i63մ{%U(6m%:#+lLPG!/2B!|?l@$>\Q^a yP0qEqm!B!BF-7Qq>Wf"@[ j:-HibB!B!!22=J̀XH5ԕLsj12ft6ن-W \J<ƄB!Bׇq_Yid{G{mm ^_5u]FP DW0@!B!lmW.[Jp5 R`.k[ךv5loAZB!BkU**gVCĿBEs(5vy{۪ΫrUIY$ʯD]4`H2,;~@W44?YB!B!dGF8^zMI5Bq"-l~]_x%_셳 yɘ:*׬ގrn/ʖ $**B!BٍD;Yr{DK}$Eg2٨^Bx&F^"vÇ*BP2 <R&h ;vtd^J?vۈ` B!B!d0=2Z/I6Я%Al.gR/ft_ꝶ#qu*u r\Xb^΀2Nгm BN!B!Va.u^Z46@wje=GԿd=[;A#ɋ}mр'* Gu~+m}O쨒GB!ByacmY6@$xhwFg=銫ӫF^v_cTjp7(Pi#]s\s9lO!B!뾯+r ,*~ Qˣ<=[b/;b||S2""JF,VʐlrЙ)#B!BHC,U+׋rvQ:Ja>T4p= 똝W륲MIft峈'B!BFRYݍRΎv w_B!B!B!B!/"__ӢCIENDB`nova-17.0.13/doc/source/figures/nova-conf-xen-flat.svg0000664000175000017500000027204713556316250022526 0ustar zuulzuul00000000000000 Schéma Réseau VBackground-1 Solid None Page-1 Oblique connector.466 Oblique connector.527 Oblique connector.528 Oblique connector.532 Oblique connector.533 File server.505 GLANCE --image_service=nova.image.glance.GlanceImageService -... Sheet.506 Sheet.507 Sheet.508 Sheet.509 Sheet.510 Sheet.511 Sheet.512 Sheet.513 Sheet.514 Sheet.515 Sheet.516 Sheet.517 Sheet.518 Sheet.519 Sheet.520 Sheet.521 Sheet.522 Sheet.523 Sheet.524 Sheet.525 GLANCE--image_service=nova.image.glance.GlanceImageService--glance_api_servers=$nova_glance_host--s3_host=$nova_glance_host Document Nova.conf Sheet.24 Sheet.25 Sheet.26 Sheet.27 Sheet.28 Sheet.29 Sheet.30 Sheet.31 Sheet.32 Sheet.33 Sheet.34 Sheet.35 Nova.conf Web server NOVA-API --ec2_url=http://$nova_api_host:8773/services/Cloud ... Sheet.42 Sheet.43 Sheet.44 Sheet.45 Sheet.46 Sheet.47 Sheet.48 Sheet.49 Sheet.50 Sheet.53 Sheet.55 Sheet.57 Sheet.58 Sheet.59 Sheet.60 Sheet.61 Sheet.62 Sheet.63 Sheet.64 NOVA-API--ec2_url=http://$nova_api_host:8773/services/Cloud--allow_admin_api=true Application server.57 NOVA-COMPUTE --compute_driver=xenapi.XenAPIDriver --xenapi_connection_url... Sheet.88 Sheet.104 Sheet.105 Sheet.106 Sheet.107 Sheet.119 Sheet.120 Sheet.121 Sheet.122 Sheet.123 Sheet.124 Sheet.125 Sheet.126 Sheet.127 Sheet.128 Sheet.129 Sheet.130 Sheet.131 Sheet.132 Sheet.133 Sheet.134 Sheet.135 Sheet.136 Sheet.137 Sheet.138 Sheet.139 Sheet.140 Sheet.141 Sheet.142 Sheet.143 Sheet.144 Sheet.145 Sheet.146 Sheet.147 Sheet.148 Sheet.149 Sheet.150 Sheet.151 Sheet.152 Sheet.153 Sheet.154 Sheet.155 Sheet.156 Sheet.157 Sheet.158 Sheet.159 Sheet.160 Sheet.161 Sheet.162 Sheet.163 Sheet.164 Sheet.165 Sheet.166 Sheet.167 Sheet.168 Sheet.169 Sheet.170 NOVA-COMPUTE--connection_type=xenapi--xenapi_connection_url=https://<XenServer IP>--xenapi_connection_username=root--xenapi_connection_password=supersecret--rescue_timeout=86400 Database server MySQL --sql_connection=mysql+pymysql://$nova_db_user:$nova_db_pass@$n... Sheet.172 Sheet.173 Sheet.174 Sheet.175 Sheet.176 Sheet.177 Sheet.178 Sheet.179 Sheet.180 Sheet.181 Sheet.182 Sheet.183 Sheet.184 Sheet.185 Sheet.186 Sheet.187 Sheet.188 Sheet.189 MySQL--sql_connection=mysql://$nova_db_user:$nova_db_pass@$nova_db_host/$nova_db_name Proxy server NOVA-NETWORK --network_manager=nova.network.manager.FlatManag... Sheet.191 Sheet.192 Sheet.193 Sheet.194 Sheet.195 Sheet.196 Sheet.197 Sheet.198 Sheet.199 Sheet.200 Sheet.201 Sheet.202 Sheet.203 Sheet.204 Sheet.205 Sheet.206 Sheet.207 Sheet.208 NOVA-NETWORK--network_manager=nova.network.manager.FlatManager--flat_network_bridge=xenbr0--flat_injected=true--ipv6_backend=account_identifier nova-17.0.13/doc/source/figures/filteringWorkflow2.png0000664000175000017500000022303013556316250022675 0ustar zuulzuul00000000000000PNG  IHDRwSsRGBbKGD pHYs  tIME   tEXtCommentCreated with GIMPW IDATxw\םX9PD QD,rXso0O3ffwpQ9}($JdYOU O̯^%HdeB2뽑N2UҪ)/a}+tS 3Wa|5SLN3JXF$@j3ZӉḑ||5M8rYbǺ =W:C|:6rRRg/^cD<'Ȳ#ի,sgnԛ2WqWM!e>182nje9(+LyEhT ߒ$ϋQHqEluyE~z/wvVfgqY˺q(;O p|hX%TV>ri6K\=L$Djk;!ydnH\f| `*iv\Vd`| =p P.15_5T,2=9Y2[X ?iR(qHB@ ݰ4LRD_k%*!c'T/pذ{'GTӾ"! !aw:qy#rL²#f|bW`w) [ d373KX|r9g)&0 S¥`bbPhx$V a:jki#0KDd_\>i^,L 6_hpejS<NWS+9IGVȲLպ]Ӷ]'{ח˜kp@3ǚ/ c1|UPɅ$6Uyu4Klؐ@UWWFenNef&nUAnv#|̆ mؤwvjk9u mUYgn}93͉C'ԷS_6F(eDU$Lv,L q*S Dkh,݇æaqoy*jWrBMuJcE@]eIMxa-xoB9{~sIWWiR']@S6v ]?|vhtk sG(f7t)>ݧ bUr?g}[![Bő뢔Gob6f#W]峩3y6GXXXBxLrd"A:Y{ʊ-Rv B $DT$ *{y$csДM(6:-d)&p:QdXkndy<'rE o:>0 29rӧEH:ot\F&[ вi3tChi*=PSz&rn݊X KJ1=éO?gRDRT{ؾcroR$ Bw( $Esқp@`dxuFXyK @$.^Nбe#z~sOQ> l!D/]]kp`s D* 6~YS2Jnd 9v<%te >3پMZ=?jXS#37C"DH pǁ$QaxP) íSP%ISLM{H~~+!9GOuk)fsQzִRBǣgD=FyS!JN?5LR6; (]i~:R{dE IBOQb bzдAS/t#Ǚc[oîB0;pw~iﹱ ;IR vC+wAN=tGi#0|Ffm}n(5.>B＀^sΟ"sptGȦS PDiZd 2sTD"N[@R =TI,9:#xjS8zFbCe2, Y2vz&2s\< |Au:*Z%a(0ä.eyE+Rꢘҡ|?vUba_6o 0u^&p8RfZ#l]$XJs'͟U_B>1ų}4As 9ui?%!0y~ΩǙYLs3 [D&_>5nmMgOxblW1 zO vR"I>fmR.(/wrn A:1,2p%>8L"ZSc$* ꢁŀ"Q&&W07~zs?FϋkK,ӓD5-E%U!.M5\x#u56Ѵ"Nu. }Nը h0 :Cl U5( .#)GSIcsg/rĎgh:O&ʉ1~rO};uU>TMC@Ul5-D+/0,)] w;œ?\DOcvx|1M|tt~;>@?璉Y`rK2.4B:m^ir$Wh̓Oj LTtF47d͙lz-68o97eIĖfC2STh 3RW$z38\ϋa068\dmgiۖӒwgx`q(^$myo\^!ݓGHkhC꒤]ӈy7Q "m)M3;4nx5?٬2kΎ 9Ĺ[8KxE`2pz额}ol|I&ۚqh[30q f'uYN}) _};ֳ=pϽ.HU( MCP, KibIMe/ȩ vYL b~D!cw<3`tHS]YpJM=>}0\;ѓ-ff4t?΂ś,?ryc<#5THC 5+ F}qGx7bkȩ9]ᢳ,p<=7_#$0D5R?Nv4|xpL, <%IJub-0֚ˊ,-.=av-,>i"-;KeuqԱUZvH I]T Ӡ\.i[ Ɍ NZa05y3O} LΕX']*}2g\>~,Q*̏?ͮ7gfhqVԲo.?YV"mN*>BhR ?U$joL3iik xػՉzlb'R]l9siJV=ف$OcLO܆eCTjb\8IYwʱ35вai,_U檝/JGN_9H]HHb ~?FD Yͮ9.q96r>C]z9پ%UC Ȳ+w.Iߥ)hK_.[B8* .xy7E5(ʒnjP0I:(ӓ=TS, 囩y6/U!4FCkK ?VlzH.J1_@ɋuGUeYι|p?>D/<1^<$ ݋sfSY>bMƆK[]2 ktV$*sRߓylaPddn($#Yq!Me !'ZC3`Rpxd*mK_$Fe8_>ծaWFX?9BI#dIc;oDG(h ہ=K*MWxP;>3\juZ2n2_tNv|[߃XùdK+x(B0VCǖU !cc+%)nrc҇ N~)#Su"m~a>OBȁG[yis3^s6}1k}aRGh1)v3 غ?H]g9.M)t W/rT9~9M!Y;ߛD#x ʔT| ,d1ۖ D>_ _("L\.G^l7O[~6l&V(6/.B%1ȸB5ktոVVe\16B3-u4"Ɏ=>j2ϒ,MdI"5M4ͧ"%$r[wmi͎r%tM,\O$&U]Փ'8 kF&8|8)f |kd;< Ӵ6xa6w`'YCI_b䗧F29fyͳ۞k֠*X=jkȀ&q1>bRP$4lz9_`ϼ$9p84|55_Mo VNbsHfwk7p2._ЇP_{oqd, FNsSN2=?Ğv)KYX?bdd.1DOj1Ջh0ϼ2 UK<剐l{)I`J*/̖4&#&]Wku~O4zك.!)21T́X0 Iz0GzK-/ƦܸcCN4WPIbfO(x(6'HnۧQ=KP$IgoSK<.݆{^o{)>PR_Srv$Iƚȅ|s a bo3K{x?eޠ.6?{C:3@$g( E/;qmCmYv=(+oah_Vyo~L -eiha█!9=t>L/oAv7!wW G_#A!2Ay:7Cl\ivkĪd wC( 4L4KMkFx<$YCx:be<3KQ >vocs1_F~kv;? IOa^3|uk x8[C0Vw_:6C5ި1nK^'STClZ :T$B6\r|:<*k<]bBMÝuYs42:̳546I,@}P ش'V@,ӹv-2Ϙ\htj3mTH IDAT)Ef㮝t]ev*AE:lY*Vo߼` `u~j.) '_Jҫâ?X߁"?^IhX˳7F{$\w]@m6Y2_?+KOl^!2x4.=zWg{)7o& Z22_B&WYRfcSg'M-,,I07m"zg#sIZL@WYB6L&: y9y$Ѩbxry@,*(a.-jW=Lɟ (6$ݱ,wMS0<:FX>kD]MgAQhNk7dfff1a19yhtuʼkIJ=c/#y@ݪ96+o]0 LX'#+ʊGlH1d7E4K&U5 ˏ^ 9؈$=@&-<̻ȣU4ڜ̿33;82e˻x!VlNV̇nJnBPLc*4lه)'?a 01JtY3&s16a[۷8fLPFuڰZQN|B"ܕkmZ腏܏VYG] `#D(I)=0|E bYYy 9sH,cV2+<3Y/LI7ʗ9GxWӜ8ߍacSRUӨ3ar¾beY"9v5N$IB"?K@Z/~ݿ%<z9R;p5*٬`Pӳl k.CLP.`*njCڎ{d!^" X7FLLqg C w[ ȥg&sDbK>'vmo>o26DW3y-$ʲ|b N^$Lʹ,݋򥴝$)H&5~ bWL2M!JӣD[i޵KbޏeD.* j-G[VfrHE]srrrh+_3<Fn!1tXj^24_݊L3OS6!X#q(g?#xm}ӆ}B *o";p\~l2HTUVa)sBGWЅJUXM3+ᱤ{}')[& RRD)Gb ŒIU+:\9櫧mwn0z`y@|b̥d6 ` PM{H.[® cӸQJ)/fk?Ė"Ρ*& }3lv(N\ 3F 몄|QUt J@H*BZ[? ˱rkn%jjVKaxX&gqM$IѰ;Fn%i1-h:k5kס ~X5R,86R,$@V%S>)fP+_X+QU9 JJQOH-x2Wto&;|lNU0Bj<D"# r3̌\%J|Z Uף WRfGy!M??LkDcBipV%=>BcwY iRvSv`won%*sWQaɧBBsxt^~$-~&IHHw#!K#f/ Wls#hj}%Bc$/1UfΜ`jl/܅GrLӴmEH*~4!eQNo(6h;m_+ \:N2^s>J !Dt9p|>. gt|nf=^'ZU&uW?$2 l4?t)k{ _m)z][$0@ו_+[H{*$0v.Wbfxmf@!ZN=@&\RR#hC =F`Kn oz:۩EASfca<ϙ2v$ņ'$f_ _.1}A$Eż< f1"ֽ'?Aߡ_#;Bؗ2NJL͏$k*.&;:ַc8~d46R.EY4SDZ0 I ulW_K dbCblWV8Tkۅ.'vߘ4Md-@ 2B{=+FPzTN #t%OFvҶ%f3[i~{uY{Puw3#f,~Cҙ A5P۹ۍr1{"ؔ"l BLMq+ ݳx ʗX};n 6i=Km4hnűTxV? 11l"*{]xNRgp%Vӊz&z/9-Ԉ!^:Q* 6ʅI)lؗ\"P%N2oHRiٛQa %p*G l6r+k6mg1u;B諽I`d'HfRD;~j0IG,iTG$Pb>%B * GN}JocɥC&/3u?࡟34:xAFSjpc}GhM15n88Y|9Ix{×&2JK۾H=sJ~ GZ$1#޽Und'Rv|r/O=5S`&+ɩO8GM~i>$EcÙij<=qAEV;w8qiҍל u2צ]잎$hvt3BӘ,x&"K!5u\,=;cd8WIQQBU[3v[ EQ@w~)s:Nϱkvf]7yb5Eu=ڗ31q `'_yg=Cyc=9f3`3)QEJZn~ؿakzwז%]Y-ʦ(sAAf0{BzD!J%4'<< [3ߦ}h5>S%?~"W]VHj?<7q$ϡ @3.hv$ Z8|k9k1/?=w=i%O25sj Q$;;'܇?Ck',}G!wu#|߿U:+R n݋G~ muRW m_zI m'|4␟u:n@%zi~_9*P4U4~U23+ANsF)k5I%u:o>'񛢞vK?Wx_$M߀ ފM7PtnҸ4_Z>'agcřI\ӓ#lA08MRCLs~w0R1+Fo7C/S4NOT0 ]T!pleeBPDpTJ TL̫C& &{It<}Q\A|;;f|v@ #Lώ D=l| J5s<)U1kY`Fr7G*5O9:bzW*o"Qzm@d躬s%ݒPSp!E{G"{ Tb cS5,WInMS?Q%[p1|>=EU"GW$5.A>m&Ex[@QVT͕4n| h+hcmE7jj@j6BW]D{\pv}0B<{ֵy'ݖ~+q*tw !07n\{/1_@LrF3*VahL='ރ7Ǜ~ѐ&>}Ftpre E'ԾP8U֤tvnZaZ]B{C:;=SR+3juǕA0ar^w&>|{ض\OzCXsvoZWw߲gk"qƮw\ I݅~ɗ"9رC^CѮC=C$>FlՃ7ECմEk|aa[@ao`u7t֔W~ٶkJQ(<ϠE^k_4ʔ(ִM|E`~zkPm s<6aޠ^]כ%ekiK5a\0x24wm(ȃغ 4)+p|w(X ] 7Ჰ@T{ [7iZ(Mi psK4KƬau;іE0LNVO b5k. XwvtvpS#餷 41X\3 7Җ2˼xh --Z[w,>:xkɦkI*m6Sw&ZG,Rc>::4K{}c5a.oz_[8,Ո[6wA͹Chh] UiaT״c+O5oUaM?m#Kv8vvB- d-)c}Je˪6k07o(;=5ɋ'DcĻ0IW/{ r]Mi\y?2jpfZ2UXCk~Bcl}5&/37'ش[ 5~xzp!t ΞX[s7[*z9p%R3!6`~$?;Wc$ 5KLh4.~WϨ|b ZZfik t)aq́yl[uoRC̏e8hQi̞"7qӎ^qH"y2(k)ulcvãTV!4~Bf[O*#&̯Τ9%K+\,adeS./J|;+yt27( s)g9(;(ӴLA9̌")qV\@m׃Z\D`"8R>@\KOS7*̏M3U+vYg|Ƃy˼X\$,P.@w̏97"O.OAʻn?'O.hp@%b~Cl^#̬ێpǨ@J; G SԂIXɊ\]@h)~6ڄ \K` UgRb R[%{eciꭍs%0{9z6f,NR~BڲM|O/q{)yBcGFbZJ$q i#_ZX֟iJf{/-Xsnc4a~0;l&12fl\'w,0[)h Acܽs^T g79?D x(to=Rb#|[(s&Bxə`'UddgYX&ЗEjGN #,V!8v694rw;R~QN8*gfSyi'9Xg*6p$GU*TH uvR.q)Q*skPKD*:q)w? <~7H;څ7 F2c^M,Ny7Z`Pt 1 lIYV' T*;莄$^ 08'd 1l3/ffǧ9o[!I bfHLmڋ&H}*Z"VeOs 1̞@'~La1R^yrn4ˏAR*Y_{s0QP ss9l,~|faBWδЁbX3.%KT;;McVesmIX-LoO}TIN!86B8BNQC1{cZ~J,܊++J\Kא4ٹ< -@)5Dv~ O 0}Cr<5&\=T/Y-kb_epBww9YrhIjʝ#Av7)mƗCll_R?v*v-8A~@'(: z)&;n;]Rl.ӯKA !O(>U nݏw)uzPʑ9Hpe @S>Wd_8Om`ٴ)Mi)_E-fdgQ S @] }t-\qW{wSWwTgIz'bc(-yJ2w{M]u?2װsU\b8ΊtӴ;wpȳsE4;~nJMin<"`\UA803۟V_W͍+xo梞^mLb=R%*uI5!m>RRn!0 ,bX i,!O?UYӡ;|mx]BG-3MQ{6EQ.xO@o)ylG_`y ~<)v!(Z)%:q5p*uU}XZ/p@jJ1Mx4ULfh;kNJp8MfgylK5އ-q([x>w7xy,r3[B90yr"jԌ Di!R8zra[H͸\;5БX(E wot~i11zJXm{;P#kS*A+.Pyma{!z >B]j!QōuS\]Q̃]|TЪgA1<~<2=ϒ<>o5d }5XRg/Vd 9ҥu@@rH濝{RC% |~NqqKHaא9Uk!\Μ*:ykQc28 yyʅ4OX"TOB @m۸K)ql+&.ZMb D`YW 4@#sփ0Y %I|+Zs*pUÃ9 ɣ-rX{wBݵB۩e֮lÖߩ7Lg|&J8k?~F1*Yza;6<ֆHMaߊ 8Ɗ )R\hꄺ(DNE5E$F{cZ~yls)k8!nG-;J>%%+?y>=׋T\Ppm/6$'Kd"Od0[Բ<1qRSt^-`_J0q ;G_z61vQsIge|[/7"DT3Dhz U3QjɈ`y)4GPI?ϣ}5Oml!EQ ω[/,0| ~޳!}į_)k۵B)%tۮ_܆RbWy5˾#U UI_Sos&KWTb1@:PH kb_V؎D(9|{a傺y?+-^_Xך^S=6[]xϽM>j WuPːp/NJ{h')FͯY\u*my=<%⣿A7B8~OD)XrU\0]gCjF?{A'uYP$ ۇCfap'5? @0Bbس bOj,fvIq5"`&r :=^TJzjbUR"U$d׳ _U`:^)GoJZ0) !N'Xȏc*.먙E`MOQ*RH x`DLBz^A=w1ff6_%qnwCRIg!`e񏾅Q-z~S?~ݺ_k&ɷ_f;vf0)+S^C]uvȧgPk5 !(BVT}rȭ_X`䬍-!4yk VlQ 8F aڣn?~|lZk. s\0.>٥N _v5i j g}bgO*FDU` 1*l a{,bP%v?ho2 (}~oPlK y-ad>Ne^"ܺ3Z*,m\֪m:&0} O-BeWJ5e?_G9مTÛPiu c, 1v) ][niM(bY\+2ëշ]\U7K[|mK9 +Y>%N0vx1 }lů]<$ɉO ptV!(z5oq/PFb̟Wybngϵͮl[z}&p)S*fYckOOR°}&G^6z SGk]3G1dQ P8MtҚ1)1?Y&~bB8TTé+cv xNDh+j4;U~l P@Jc~(u6:,ȷ.qFB!&''I8"$07kq`^r֢P#e⫂0wȿ𢡄x< tc:C~քU~NX#V?"XCGOlv?f!QNxV!4Co͇hEg7%ô|(ߧFVmc,sfݯ+u;Jw/0ss(1CTC ^fw)L7J5EPxjj=zB `y} wr6zJsuJH=ڈh"scQYS,+Fc5SD+&(V 糥`| ?"68oO2Qޙ#T?H"kLakZnn ɖb'϶eF4=N\MRAA vS WJh"H!"L7նs=3?kֻ T*DAO0{ϟ1!C{?!yu cS"8Za\gs%'{ erTpjCo/{}_"عl*uSSb&x)(JB(A#9Ͽ_%>e)Wl,Mg&i g;OՊ<y9^"Sw+j)JE#Ep2F>O1A)QA-?JS2ӣ-Fy뙣zg%bB-HhVZ({cWߒjU\V+ُTTsKJ̩8Dfx+QZbG'}OIx~xY`،`):uVSEuCP*I[// YTܦ8ǮCb=< [~t+PE̪YY9St4`Kz۳^j8*7`:tL& E-Et *5Bv?'%#szg)g3\ek h|0~F"oQoU%VmI_ҽxf֒OzG(ue4נY ~M{<_QW9S y ݟ~wVq5J D kD2(2P>[b74ұyPW~@ IDATS=C%5RF[c,ae1JEjXYT%?G.S'۶s-@fqVйi~=F瀄|5*~|J[c9`r2y˭]`ݫɫc(Rо)6C_`!Mսv$sEuQK@8Ohz@sqUrN28Vd[Fxr bjq! Ywީ^ RIޔƴk(s)uȮ{|9* 6[//+B@T0K#;#"1*E*HlVͭH[BT<Ǐs֭[nw!$h U n#aZC ]]a8|J&8۷У!>_&=caFL{6aJFJőkwGơcU5Gl[SE&B`{zȭyfncwݟW{Ȍ0ՏH$Yܒ[b74oam3 vI%MC8 0D^u ® PB`%7pA c/f*!q)7RN| ܳ@'#BDvf!9)mv#@ 2Az}Rr|l~G,VG]bHL;yl}o)'ra#L_'{T6_KR 8r$|CO\\(Z5_`HmH?U]u tj_5U,yӲW/tytxb>C^/:u.MC<K0~`xK-˼ ^/_^V5ZA뀏%{Bb[ۄPHc >SK7;_Pbs?ss0SCW)>콛"#yDGw~T:!euwMB玑K ݏbJG_$Bj:Z+(/`G˰6Uj!2񡫯!#LvW(t;(vbY0 SuCsq޵n\^s_oW$?"5?OR\ezftz-_bcЅJaddn^ﲭ9/S&`ĭ.y07>{s)2{<G6 av!@_f( i*_Ğ:*mo='曤Wo|oW1TQ47z T%9!ZWy+?Hҕh:=gnɮZDu\#7XLvb1̙32<b]f >(~*ֹKAu:|^;MiJSҔ@%9t) b1줵P(</4}MiJS*q\ɹyJ9(U7hAONNP,ܹcFs0@v`WԋDhM|SrC0gd9MKc;w$‵jʾ} k.6lpѥtd&)j 9ΊHtTZ͖HFƁp" #$*?Γm75MSr0فEKins"xEɖRJFGG9~8>UV144tK`~>rwh D.)abؘ˶m?bxxm5ONgk5O̸kabAaUPr)M~-mʗ¼F0}INq T*:trLgg'|7WuΞG>6E9I)(Q,fzUB„/rrֻ!a>7=H- {hJSK%̛eH cTiΞ=(tttqSouB.6}} Ç(JX3vxa~r35PyڄySr0 yk ds'OR,I$ ޔuFG?!{ƃy/n 0HAl830ѬxՔ KM/a-Hq/|ER߱@./?F*7 ̏`\w,f9v; cÁfI֦\SscLWY|| sd9fǩ^q)l&HJXX)0)4a@OPPRцTFeLᎃÖ %¸ֺ" 4ΑB[JTq-Wb\7j!7\ .ر7sLM 8w.adDQJH|dw2B5\/N3V5̛RE\FVL-AFK)%`cNj"l)%Pb) 7鴋m[Re#]Z6U4)ŭ?4mc{[)P&nt*lOeFgybp]e~~|>%L(7*b1Tj1,eiA5e)8sS'|Xo0HS[R/~Jj(ߡfKP y㻦}f H.s2?7W?`KuYMY ;DR,, O4,UIMY]IM~MR&y귘YtaZ Bu;"f蔣kɇF_!9vh#ݽpW Ӑw hVBfJH:Q>x^SK.Ckn)t ¿L&ܥ5?BH Q9CjmI|S`t0^~MHg+"eqPg"TpJbU)VKY\`1bF(c%_}`T_8RJ0i6 4еt_r# H/+<y4WH!@.b{[p=X:q4ȦUSS2W掳V]P 8|Xty25/vK8X4SVl})ԭafWd(QitKzhi2<Y F)QjsCş,]j͒T%1(94G<7RJza,M/YVFQL2THEІAT0U6B=R!].%z% F B`pe öo{$f2=koz9fא 5(D'8b!P&)\#k>k爟>e5Uz}#rnh7t}E.9Ep-8S_NԱF.#"'(2̫MӾ!l8o){nw[#0&3`V[*Q c%uST"eYH)Qeŀ.$7gQVZ5X.SvC )%z:. s6RIDH5O}H7ޙ0DljUv&VT9pWЩDgZe!޶4v7l]Eq@C(h8k0B|BFXG-<(k# \XH_?ԝ2(M6[k%Aա$&bbꘋ1KP;Tg(PvFu$'NSEqvOa! j?{\ו{~I7 0(Ԓ(R'wkeTMux5So]kV؊T$E9D7sΞ. R$VD\޻k{BA*Q4NRsO~@!;|YFxh/0[zKŦhOG-D+#9!gI7&8W)F:)%e!ehv7~f@uF?uigmuE,[p QxkMTg_|i\{y=d['>Oxi?oɀT 9]~ߒ͙Xvc_YL4~4EmJf6K!դVLeDZtV'<)([عV b=t!-m-,d%¶.ZNRHf|4Jx_HL`*ªQ$E7*7Rllx G(wv-̯:mXDwG~G\eo+A0&M'OШƷiހUR&2>UohgK-Y &7 |?* #7ulO'IU+tU–ڟZ?M(}A!+rhzǬa.RYM$Ѯ L7Gȵ>g7Ӕ-ɶwx\Dɣ?#$*תDΑ^EOlc2h%]"XO)-zhG1/Q UeD^PT5/Gj̅l=E WuJݎviK, LuYhs@PGk΁W3*.6^?(;YbZ8uKK̋GkHΖ( ֶ$'07NWejeYY%<?h>7ćߧ}ȓtߏV[2[)FQi]\Iϒfh3騋] t&7t2S X{*=vHaA-`/UG`k^{=/(L̥Yq S wp>JPpqb{_aAD4]~LtjAkD Oɇ[" J|gvs /JI(|e&P 9%<AFaOniT5B! mM%1s`a{(HӦj%h\W]V 6˾Z\nrX8#{IRޏD,CS@Mg:G(gkL%Ҳ9NEa8oYđ|l6.k$~vųsdn}B֤X;6]t)TjM ٞƼQc+P2ދB#! 2H l}lS-I Z~_fLt?B^bnkY S=pS!qT]C1shZօhRgF/S\`6Ã5=a:*5ʊBj>:k{ݬ%]U+!]y(c^rlw9@_n37-%ihP.hLZ!=ʉg BtÛ䬌݇#qPcxΓ8{=OPzK| 1e_vB pȚ|sXeWvjabOϜ%q`iOP(KF?F6[y!vmЌ/Uý^SirTU!-T-,VvKdLwifqj^k/p*uވ.Aەb{VÆ(+X%,5/*loSч֧K al8*j A*M!ecAzöqcA\3l(z6Fۺ 'O90qWOh撼_>ur$_QuɅ|lOPqPb)rR*Z&"z|>bgDfP B"})Lm~i>UAl V_z-hʗ 7 Lw %Lb6SqC +:@h[$8-GKUPke ϐ6аjx5a_jȅ-=m[H` ,kS0@<҂d[w_t Z`Fi@GRh% {v?wq.~tM=a\ӔWh :g.T6D]šeb<祿;&B@fS$LWͫ=qON p!wEoK?5m|ǣNC1ۻSwc`nzr/O{/tǽ"'|󎋓0l")r~,}qZ6&4=C:$i+ T2 /I H-\3bkQ:"9:],c6IEZ%:6r䒏RsŨx\-j$w{.َރo:حmٞݬmFבMC hLL% ͎Z˄JVd۞Zbct\PojKBPnadSϏlgj+ zĶ;Nz(Q"#"63=^Ltr|3/tɻ75 mO+zawRj|ejnNץ>``\bM-"$ڶJDHPFz|ޑm&mzae?[zBb19IEG꼸}-m;7E]U@Aʱ 6ZN-S}!,{1`7مY-xz6Wڶh$n\fG bz|/b2{nذtEASO{46n@Ԡ?j\5 ƚW#ټ6jnX\lڶJ:F"+[`GxxCsF́z6KCHRLyiB]awW,K%i#*70nYs~\hw83 ĠN/֭YK}wjB U}0wu0O$JN\.M?d>nהj_=ˎ*tmt*YSmw|)aw.^vw:3|oW/2ͥzGqVK38>vJCOSRХ/]"lkdЭ<=29BNVyt;蓓S_3.m?J|svT1Ў>o/65(qKY8Yfݮ%,νdj:U5-09 Хc/]̶f%+=Ie|C|8дfI/aUyfc}}!68@ҁ12FyDu?.\tw t}[Rԩ"릱w̥ٖIS ,&!gؑyzb3(r͕0Yy0?ztx<|FDzХ/ sIOU.i2ҳ( R] OtaHUu8$ _gU{mX,Il~%]̶ZQ0wN` ff3 6\ߓ\*RQ@BeS@)N#rft+,-'8L90A;ȑ33KR‘\_ 垝:)/ӎG+<]Խ.4k"'Q,AX(lMDO˂QQ*#qx;|: ;'ƚe(^*Y&G`s``,.%-V3gi[mw\/>Sqi ?JqP{;#VT M'3ELQ}>ֽKB% us %T>3^!) 0(Ym$lj/cKʡc>,O(_‘Is49N~8AO@2L;irH|YFF998D= ;ēe^A15N=cvBcJ L18NǛ3}M`@p؆WYK"UdSnTH[v۴ڽʉ.cY*^)9csY]s)8rdei֙(~k`<=t oÁUI!\9{}VBkzKQjiB>d\:~u|ܚbʕwurU\w}d$`i/^)um[_xlLط W;+nRBYC):6Ε)E| K}7gy78xx)Q*'YU*_qr@yъ%n02hr=j10MlOɵ^6%Zad hZZB[ELD`!/qkL>ѻ{{aZ9vӚ}. crnK/N/ T)%G2jqȿev>"w]]k%7AQ\2'BafʱuGHA5CСIcG<Cg ^dze!d:L x0EyqBJjYN(ڲ 1|ɋG\>ƗK Lsª!@* Vz"T?/ c":X֫ bWtۏoxjfDv #W ZK]{헄F&PL˗dɧOOhRNBLyloW*L< 4?3;^8ǰڻP.9j$RrZq+WnۘցDH [U^ 3N* rkyyvf-8U*u[lwyŹ:ѽ*k7z VkcDZ4wc,l*6v/~O\:;h⮈ i`xEZ_s%MoQچghg"喝VA5FŌa5bYA#;}wխ`-&W릟cے @(l'#(>E)˜8Eajm5>$xO~(NotZshJc=""u ƚ>]W@=C+cc#IS37uu|S3T0(^$N07(FTo3}s(i< q?" {_)2`Ь8_%mM%0Ҫ5/nE9r xqZZ]{(/f -?k>ŗJŲ.oѳ2ZRb=4z>M^YTS!I݃\CV1)-l6m.@^rP9=D o?34y4ajɡ"Ll(nK@BbQ7mN,`Yd5.;]tmvW}/i mO`"t~?I48bh\[ қBR?8W4u.p `̎8?{DB<[۸ݮw1?$HoQl!kv3ajncĎT"573?O1C1ݓm˄p蘁s۾BzӦHkt`3a^h ֢^3"}qqb4UpU\dVǞ: EQGZ"x9X˜@̀Z:^_8۰J-knJvw#~j!=_JX}$jf(_6C_$] =Žz鉒~\j&fu_ۚ'40* *kIwU%Se9&ʗ},F6%XJykdyxAf+ぇD<0hjՙzBlk6L tfoho<r.SM 3O+,桒hNMXQ*鹗0Oj#?5.u]7loZЇ>v߈~PBu_EPl_4_?Z7]~~A*OY&I&ׯU䛿IlBT <`m -AՑz0XE-ost7|.vێGw}v9Kgʁ?E%D:~`ĊuQ Wk $Z1e#]EV`{OvD E~u!nMTZСw̆:ۼRR\(uS"=PM$`桯Qha[ FD3:Z}i6n`V|:.H+İ.G%ª#a[WVInjg+byT:z39F>@B*MM:~a팆*MfvّTBm15Q{9^ X3c P5a}XzwR}SۼQ8X g|/5TV*V堯%%9~3k#pռdMy<X?2V[%2SU4ߓ.G#|t?v}96ع% +"Q,n- gj|j4X/=~Ɋq+F90lGRi*LB*: *1B K1"1=i ΃rE$-wY"o/=A%[hT2Gwݏ4gszw0sg f~"Y&>V{_KǨb2"t9tn OVY}oæ^5=.(R7%*ȤLM:*Bl[r|Lz:LLwDKI[:)7\66DagH9Bۯa^fy|KUkB8L7 Q|ڙ۱|W׍ E# ĺ"ȯF GK0=5ՄBLՋJ}T%?NQkIVC5\n{3M>嚺(FiͶk,lB6&wg)UΞ5xqjB4?shsI/X<>^(A~ 6й9b(=H(UE0|>aC4tc"W/ľƂ@|.U!3 Z P ζRZž{6Rs튢 0o~hÏ[/In]?M_#D)lE$rszw\V4sl$lwwp-™vlea0\Lտ%~[h {wXk^!;>G5@OQiSDIxDS~g.0_|Gwt!,]X.׊;Œxzؼ EqV$! ( 75;!mY}0K{`9cxfgA1&;(72~e+r kSz  vOU UNTl6)R;fmeԽR^C{V_v2mQliE9&voY{ݨ\.E/Nމ<ʳ[;rhi`^+̻ gat}k>E2ٺ e\Y&e6lYhjg#!Ys-ڸaU?-I6RsC5k<~vBM07MͲ٬Ph=I"Ѻh.cTJS+ÔS[/@Ydzi UfS2 ?Pv.-ڳ\ afײ,ZZX[0rU[2WX"%]p]E&oK6n4 nhN )%1\WzM2?O{eϞ=N\wXVWh+{Ѵ[WGdY.ErWG'Ӝ !P,MABNCM@wȑaX'_qׯܚ$,*GпTzlHv&#G7hFf 8vbߗi3BfxʘL6UU{n*A[iuplFN/Mui-:8>sTyvrɑ'0kc'+1/ٹtCd9:0?>ٿ4mfO156LM 53 04<P.< 186ǎD,M^J-Ϟm^t̡R>U̿O^ ۠lv<[\/[K)O_s+tv.2R>\b̡P躏{,Zb,V57ϸ4JgKw(uj14Z(̎5n#̥r 6`I8$*/KK Y>E5뢚ϬIU29>LI垹eY| ,+-]tv3p9'3S թQAJ?hoϼTر7qFYfӧ\:05=|-<=rVJaJ\7l)(ҜrX{1&7!|f)A\Z73넺cruv9w߈:ι(oEw (62b3;+9UR.#W GA,mkfEjS|gX?]|~/S{ M*5)uI R 9@Jvk̜yO I8>2v=FgŁ#GI>%PT4WOտ:W]g%ڶ89FضkcA [>+c{a]T'q|o1mdncfƆ"lǩ"p}#`2Q◥)-kYd;rcV6M`8yPS'Djvb.h !)'LTO@4E=s{Q[xBEmRAw .օP%{II[ :IUmO_%ս{ق#>@ULXe7k~ z: H a'|[W*39rhIg6lFxaz}# obժ{'03zHj`%rU&(ΎSc:V{\D:yBL,rSX{uau*AB[#(5EOijh(=:KQ( 2&Β=WT-wQb&Yf)-_!}iRAUω H>B)DVc*Mݸus-lF]hOP%2A|jIe(3oba߂ɹTe(U4[lFX[װ籧Qk[p?oC^B&"M]cPĚQ,1XZnBm Bo Mk[ dn(GKϣ1(FukH΁,vm^M2\q=WqH{:,{{\xH"%JTRuwm5eoوnb7bwg{H*e { E$5'ss;svd,2e2 gx",$Q _`ϰ>OmKe#oPR깇TgS^zϴ?`Cj;ZQ5ljv2o41@:h9,f{\J`3tmlQ'1yj~ i ܶ\Y%J=R#=*Y>Yc5]wZdzhʓvZ9[%ڰ9wGBB|^R$Fj,;UoE* |x(T+,Aܥ%̇pWT:;r x+[շ35=JQAVF1H :ܵGG.Hɗ-3L~[.j^t~b*$'Qt.lf!Ҳʞ)ob˘G.0:tF@~%.ΐ= z1`Pl}L,╶3xoQXai6NDzsЋ*~0Ȼz)܈(>uQPdQ-sw@jmorYUr#~; J*KٜeOHSU !|Ԟx 9ėFT5ƾ)0>UYD8oâ۱[ >"4tmӡHЯ˶+Eqd Pc嗝GvO?2vuwzS}C0# HQrUUv|Ir$9:;L2o|]+ٚge:H5v7fcFL)f,Ϡۍ@oUF08?)Y$tq=~OMzν+]$ID*:ʵ?E-_:8~6pZoҁQ:]d,5UR@їZ 1?K&A29.3c=f*Dn"Sc3t?M*Z#v:%[ܻ.bKskDU@ͬ:=0Uح0ҿ@.ߍB> cpQ 3@"\Vy.:J;^Y}ŢQ`4 t/1Jqʑ$ҶW06@cTbx=oYPS8\@M㋢AX"ldfifg5^'ea7a}FdsRG)ѭu<-g]#aHd37_,NK}3~YGɆ&R3q,/(w> E;N&$x{koVHfޑ3.ژCV,^Ϥ1:_۬~]*j5ݕj_觶+AUHE6Q .N `tU/H$O(?@J>[O )(r#/%:ӯ zD1;"~cY0PRVl=z.xyJv9KrE0gUқӬ]޽&ZGVTPe6cvlb^IJǑv${NjZZu_U#UJ<ŢҕB&ARseBw/O/EAR*f,ŗ ͂CރN[ez=\X86??i*R~ #츫:Mwu޻eV&HDB,k"uФ* G噚HgP$.}6?'Y%9I#CqS 7QUVJxOdd=6Q/`u8XZ%{ޜ']re.2#;-pSu)7dbI<$ tw4թL>#a<2)>$7TbQ,U/Q~!&w" PHH'`b21V;#,mZf#&/yM g3Jo I$@g)p" st6A2b-l1#?^XPЙ]8| /{J61ʉ'n˗q՟IȇYM^;v3G.$ Q;P9UEz&seuLSQG[[Ӝi9AgHkY`{>b*^R(gjym`Kb~)+8;ևYa>nrznYuQޙ&H:qg9dnh:Iajnl6x-!kv;U_UJkl̐O'-McR%9,G,7`kYBV!,N( F;/bU~?!vNHNJl:6vn=5tAUt8{ 7Wl& uxU_p퓏Qt}QNP4-7~ϼ,{c?F"ɂ[Eu z 18k҃ Qoh߳1{#+TYAOj]I!Ml}T"`U( I?|5G-dQ>n=9/kv{/J-,# * >#hK C<3MPDgr| }|o0SYװ "N.`=/^xs?3@$fěDsMFFYռlpc6JDxW:%+Z$M]R/P2:QA.$]J1%4G8PځeǶ(,فQɱ2:%K\H 6Lhns<N:уmVFOGdwUZBw']"+Rx/җ )<Դ_~4[FVuWn|ˁ~fj肨CvZ 1;D[Ȋ@L,B"O;u/=$#1z"iۻDW+0$ d|&k祫}Aɓ+L%uQo"]TzV3 |r UXɇ|dXH#tyFj 꿰stWy&.}¼=@mޯ052B[TUWn8AiEAf;iCKXdP5ӕ䝪k쾷fnUݔei-L$Lj*^GxzXZOqG0/b`5|H'ꏾYyـl4ci_qXV(iy;GSoSS "QIBr E='/6,p_I b9|m$ ;]v#U NT.`JD"ʯ&+ _ޏsN/=kU\,~!n0wTz7 : n3}݄$mg я7PF*`s31X_'PY$ (25=gm9>s%bIRFx@N6!+S$]8 IDATzK#Ʉ Wlx|=eob1PU\6/>.2: (t|aaWV}cgRķWfAImLs)i~݋NDcv1 {*gI9TFmz߶SwePrfި?CWuCwn*z^A\++)gXJ8 m߇ 8ЮX$HEszr{ fo3_fu~DT]G kS4wHIID[R ,[wsa^(<5L<*zcwwVS18+h9h@4Yiz/XJb{[ig0;J ?rQDhz+}xC]GX2~!Zo Ya6,"}Si8jmxVRc/H2X\z̘uZ=ǰSyɈl@G_Q҃^'Y%81^?RycC!%.$c | ~?yLfC?o$]xAw"@a'"ekeW%>ߎ׬w<$&46_5d, ^?P1q!-bHN]'{ %I:P,x뢈^'ax;nvF@o#K225q*KP yr;7(҈J_Ǯ (i@C[پ>[cܿ΢3!#6^6uZs4j:%&ʺ&p i 5v~π4;$HJ_ (mRަ( xY_[K0}&nEM{#;}#{ \.xͦSYJ3;ԲS:P 9~8&g 2,,[ʞ]*+SSJ܈ Ȫ,v"&k$>E"  {s~+0p.O_׆_s ν #I6gHE#XˏRtJ_B!}{s+-B f4 ΄;<˲,;s&&PȅŲCNgN#M9lrjŠ?؏KQzH5;=zI5fCI Kh %yZ`45Cp\UUTUE$Fy=.2Usm8Ez{{tl$i ho!K֗C4XrU<2 Ջ "ԴbPBu&/_ z#UݯasVV2GyTq$)ZDA3, zh(zL&&ć Wq8\L5B?JB한ix'9r9nܸ˗IR8 ԜkʻbyID{<¡&r hsLR4ߐM%P`dYOe*E~2uw^ @t@NGQVMx>%Ҝ;NGso2$͢o"W케~$H(OJ ̅mNu5p`_OR\vk׮pNs^E ̓Igr39qDicс͸XGj)[o$PLMESIqȃUNj+hETl6dnUUmyy9GL&^KsB1 1VAIiണaAf`0xtbX~RYYO4 LKHR;~z333CYYX dz qfDO})L|߾VQ5<<<׮]chd|B`ZvS(Ķ' 3u5i =11^ t:|Ȅ$ 65kJU~ ?EGnܸ+Wp?;-}DØL&1hm.]DKs MMMY{'J,#NkVd佰:n)))ٗ Lݯ42e~._S鞚]N"d2{o@<ҥK,,.7&>M311ǟ~\z֑dsk+4ؤ!.]D2uB>"M\tA&&ӳ7OJ67ob2q\5OOOH&9qz^ ӏoh4clu:, :Q B,--!I)qn޼,ugrʠIW-nܸ ,SS[X@?kƢ SWWGYY& C2("" ",1yPb.`0o!)q׮]X,3r=jzzk׮1;;l6gA#51>>JG AhkkpQdTK4errUU|= JUU&''z*\OM&'tUU?&jkd$:;gbb@ @C}myFUUBjjjhll|lIp:b6f=$tAA&AQ|>fY${e9y6U!"/vw?5h4ʵkr |mmm78KZIC6erj`0Hmm-2Z-:נ 2x<S᠄B!._CQWW@>gjj χݜEOEaxx-Ξ=Kuu5L&dPÜ{EP>}UUIӌ099$@GGc*;v9$Iz9@$ehkkA{d20+*4I 8l'^W666ꫯd2X,9rn@zffM xGt~^/OLLdhmmdAÏ  HOOS#fKkk+---.UUfeuǎ=sXxBeb(ϟjf"? jrrf|>k#$333NA׿d2aT,&Ȅa}}p:@4h3A,QG ݸyX,K6pOV+'yp:  4l *h~r]UU!JJJOr_\\dmmv_A?/KKK34weB*A>IfMQ L***AÏ 1>1AEy8(SZZx=ׇ(h;"LPԠaemmh$X?+d;EMO ߺDWWׁ 311ACCv@^/嚾!dYfjrJyy&'777c CQFGGm [[[lnnԤeHeZ'г,}}->iZZZpݚ#Aß'&&ZPk;4;;$TUUiyVAOw6}0f-:נ"ƕ{d2,8y:~:0TUUim<ڮs  BE&>p|ں:M Og2q\Ԗ#r##~ D" }O+*(z5t ֎h4J,ta}mvm׹ 3yѣ{.뵵5(Z),,,0:6F{{;ھD:fllmk 3Ǽj:weIZ@說H&Ѯ]wJnh:D<^+ 1C!666hllԮtBWҙ {zl"444PZZ E?|> >OF*Z&[۩i>eEޮeF4hx֖8KK464h}UУ(}}}+*+03==Mss3C bI|>Z^ۨٹ9v-zPEQ:ari5hx@lmoJCCVcxt:5TBWUɩ)8|0^W{,yiooRY4<nu[;N5'xm2x:x }{{~j먯cfL3L4< ( kͻ{B4~L\zNOOF҆4<Earj ^mlnnI}]vÇq:b38###TWW4kHRRWW9cj(cbbEQв#4<` 25=MPQ1ba45DBOܼyơC42y Fik{{gLc#Gs4hxdYn} :&''tڌJ芢022v(-eelllgysehX&-هoqqQ+mTBu`ll6*}(-,3?7G[[v] B,Uh)РSx^::::CW F6wh"3;;KMu5n[OeAϟ}wSUUM?CȷMΞ=lAگi]k;5-ikk?M.=#[Ȧ&' A(S,'`0H QQQA0AbcceN9s׼B BA1&`0xeN*d Ed=F*++osO]UU8WTz^ j߇"7Zۨ*SSSi%UU Br9M4v~W#2333\{v.--G75PK(byi鶝|{2fM)) qD'.2r9kJ>G$КP}H$ W&I>3"8:m!gTC &#mCAo4[ZZ[od Lʖ|UP5<Ә$UUL&ޅQamx<x6I3 UUu:rH$MK3AEmQ##uw<}}}@ww6T1X,244bAS `PUU d2RUU8H*,..ݍ҈1ť%VWW9t萶\$)*++q'ڪMMMtP]UU677IK|Xk"y뼶 -:נ!B8E#=ƭ^1 ??kMUUVVVJTUX,"2*fY{` r9Z[[5AC֘WC vRbEQX, {B,..rQFm޸5Ad2ioBfQ, IF$INSNx4iﱂLMM҂P( 2`45נG /,Ex<N:ua?"* z<B!677Fp1f'J,cssbɴ3_6vp8G###D2 W^q $cGR]] J36G"#JvNss3>gVUkI#-u%U)0?8@觥%(( SCMTD /1^mN6^*T lEzLck43lnmS(X].Z[[)//32WU: K$TQ sPUt*jA c~l]GeH@dBRzM z=f^ &LjnxI%Rvb\>df}cłd@s]Ȧ hdY1!a1o,BTVf3$eSUl*h{<ܧI&2X6Dn&b $2vL2lǠ6_bXX,X{l&U5||DlT5NDjko%l2F4$_PK2+cWfE]s;b1_8rRjJD}]`ߏnc4Eq셪X~DVO2g.ss~*[o`4 |Ʀ_,wRs̭dVR.qNU%8'\U-Ι ӧNQڏ+}10EBpPYYsq__c/^z*T-_oNz UCɄ<ǩ ?3+4sS6*1>ޢyl.BIrÌ߸8ٚCvG|gi=Al }_e 磬;MזH%&4ry҂Rr-&%Ե41,X*zI$brdd?D&PUb~bFƶ6npU9\Rى,J=6L&?AʬMy?njZ2q2QA!_TH01FAg_@UsyJl 6{~P2;1E$`PҌaFƙ#bwd { 喎lMwuT[++eP 9R4  i#WUl2A._DXvbK߲yp[ E`j|/bO{$<*,~g]8c LU#LTE)dI&Ө-6LFݎL2A # X6lo&jYaI'e`j3G*\T*jhYcrbo9*+}*N rQN:Sa67M;ٝTQonJgI(nǠGF*5,x`90u-H |T9b6-Lpӯ48imFL*Λߑ1݆$J."Ɂ(a;BxJbt:3bsXU$ 2΀aCv҆Y"zl;AmK38k!DflR zSwQLCpTE&LP\eD"W j,a}qSu%V֩U߿G`Wbg~t xE+\z .bʚ2\敿ﰢ5;̬_@R,\D(6պbQQ I})3enXHkc7-5|5>,uWeQg9nxH)H¢dܸ_ aGY* qFOYgPUJ쵋\ Dy ]Y{IYÔ]HEf7eIo+T|EYT̮2=fzY]"l03t9,Օx &~>M oKGLxK^d#BQ̫/S0Eꪪ8te8ֲF^y5~ +;x8v5*yֶ(I"#} BY%vU'VwΛ@8Swd|ѧn%@? O]Ͼ%- rO^Ӌcx}>L d蛤 ڞ3<Ѿ$qyqh5#.# 4얛-\̈́O]`cDnL0!z'7fmgEn ReQGiΜ@Dꘀ즪:@;aj~tO_cz!_ Agl9PLh_;?\׌,|R_PfS7>W5BcW%fytcD2fY.(k=87/2us,./fڏƣK0;F᷸p 5,.0t_x:ia8]m\Kx޿t-3#S]d֦X{fsjWRb"(E~bWy~կx7o {:yQk3,ljjב9U(bBQ^9x4ZLN@)LnHίqIIvmEWyW 8JjV>r~őfäA^J!WYyWob\p>ESC. ]~*.8r(mm9y̕g&h3G5-.!7yn;j!b29tݗF5#E^}]-׾ddbzӿk c1lz'(e;/8dmzX1C 7U.0̄\k9]ae)V‰֧/nkbqqi-ct $YjNX/r2mXB:3_ec+j!DpzGb{[A*J7) ɍY.y9T| P߾?F5, HNQA9WE8` V`@!W(Q-O> /k`5[c [ۀA#[m]ˣV_ ^FG]@ yv/;z 1>kʏOaPl6694eKc7MBޚ!;9O2:4.lf^}6~~@o#} ܼF4/|Vi4Eپ˲Vȣ")m(IŨVSPfDA\%HONQbnBGl zq[˪q&ygv?`Nh5j;c!μs}xՓq :s;<\hElc=ʭ"o)F$PJٷax:ͣ H*l D݂E4 2:9A,^Bgz{rMV^}ED) ۸M7pYd%BipoᶩRRsX{lJfsy9F{۫{d "Yqg>*JW&UA,J#{\]؋gHD}h5&xx#%~&a&@_bf@M[)U uW GӔkH 1>^O(fɑ^ x[*Y29 0;&䙙'\=Rt jhBgaS7jT7Vq:"-A p.N/etfl+qxKP43Kq&]޾j iٍes4|Yznl b+YrTcŅy&LCC7z .+6x9Y,+od17;C&a ,cNu &qԃI6;<.n=`Al^ y&[hA.s_""3/`s< K s`sC:҆+gRR;K:_,R zn%rE+/()n^^#Ԅo&[X'ٱeJNp8w.{YN&6ky0 EDu ,TՔ#޲}<[ӁZ)o;&:D}XUb ᶸq`q)0u4@OM$EIfQP$E]x[ 8Q4P?.7Li [X}8A8\ Xy3 ݈ƃA=_'~oI.b8u[X"w<W$jB4v)(4yāg?0[m8ʏKu\N?ơʉFvR "!M'_ZSq8TWNjs564QV;ߩOw7ƁtѪ$Xlv,j1W+('!H26Yq6W. xʚx(E3E\B$}5Di#P-8&K$IWWW%R^j|m ZlKJ ۑВIH85E Kt4D%X* (͆Ţn]PV3r:]74?@P`vSuKhIfCjnיzdYa_C6=N4 j-j".`ٶ ۮ%u qX-۹w\%Պ,5){l)ۦ`M ><-OB ɥ%w?&H|)+++^9-T;E~=;xe_xY~>AۙSX?(b5F)+*=Kvje7O~|d0dhfǶ-?{I]?6==|?Ay)-Ze 8?G={_Y ?ʏ* l6AIRxy֯!4Mt@?Ǒ\1&:g|Mf'1,>)LOLዕ}f$-+ⷋMBM&Z7xյa~K I2 M3"nk躱:Zȷ_ >¿X_IMov.WIrww)|Ȭr?u{A>ܾE?51]9)w /;j^k 4Mpmf>k75INa8؍e.}rʃg*s703t~z {AZKePdf9s=% LANWHy8qj?F!Გ.k:KJٜǍ; Yw&5; qZQ5 iz_!mЁ2_u]m4 ''GX,w^mJ +膀+%o,19*$B69@YI/+K HY)VV7yCbg}gyvZQqw8XSj:9Hg1p"^`enl!/㴂27jr$@ FأaJ&w75ޯrtRJpeL +ǥݼh]%M 榊iVhIme{Ab%OX8L L5%z`Y\ZD90H-α7REW(?HsK=W]$="0s{av3I3'J)2`#"vU$Q$q֥#b;AD% ]0LDYFz"BϦcôY@qByǴb۸QzY444]@&Aox4bD[7IE0SC9} hhjȊk I!454[a2,b:Emo.P@Vԭ$&ZACV"4E>$y;vMqÏQrHc~7"HE/ ؚ,o=9Q&aKd+D 9Hve{4$^VFƦ|pj#ŚeDڣK1M1%lħ/lxl "Rlc&Yl&Iאb|o&ّLA˯^++]iOlUGk2?1(/ N0/o&9m 4F]wFMp9}&I..Ǧp{sӛH4瘹 IDAT Xn\7_0;4=,̌2 0?WȂN&/p7h|aM[\L+zxOau80t['ZYe~Ac~vRkQ@6?2a^Ki>FkeR$Wk M^Ƥ]cmq)R|X~V7Q ){-1>*Չ v:8Q;U,2d9jNcjKzn X@Lgh4BGCܿ~tC)S#\vNnc&S]_ K+8 ~GEիLLJ(k9-ȂLm}f+@3T%;Й%6͵$Txí^76UGhi6KW_Bu9s?ǽ4 ܾ@:*9h  @Y-GNyJ C g0S'ɍwс2Qm1hec2Eg~pU]t-r~`#r q߶@,q((ϜDX=R9ʶ#4,6xu]lzTG ZKHͧ_6exyiOCgOp4_1 i]=\ƣ4[|ULQ%^¡-H>e|zǏE)+qs=NDEL?W vEB,/_ejvHu#GOc v;L:[Q(7;:/q4@JX7;ﲶAR픷!L,XkP_cƇɩ!~pYFGTU3 :Eܦ@ǒ72/7?7hj[jj+QJiz*4+kxl w/o`xVy?ѵjO~sB1ܑֆ:"Sv?ɩe?Z`ej~nE[C`Yrյ6"ًKP][x:nOPzHts-un$#i9rcyO/tPg*s;eI&)o"Ya=Qvʨ]J>=ȅ.'3qj\xcVӅݮHr;+ƁSǰ䦹~*\|Crj#uO/r?AñӴ61u?W BC'hkfez #KT74Q<5K \=%=Y䏴Fnm{~(br{XC=yE`zb%/+"wΓ*X 'h Ex.Ajé d*"xoz}dJJQg8ߥLnx 㖫B6R`e /VTxM9UXMmj@Mί'W.Fqp9,HXH2*J?$~dwQRV7`MO勷~NuK߱nkY_tȲB)"#nI SxY%vCu)UV఩.?XD-!K8Ur VnY*y_y0T =Q[.A@uz8mX~BA(h9vh@e fh8##V}M$)Eqx5QQ[`m3cb(xvYuR޸ƖF4"7,0i Yaiu DBZV&Fa6 'OSYWKۉXL224MIah8rʨqr A#8B}1l.dwu&G ns4`5VV1 O0SD(o_`rjlj*jYb~5)9curcAV"!6秙^i>uNVXfv~i ~B0*8}A:Bmcu 6ג䳛'CŔ*SClhJ!Jޏ\g "hX>:C#L bVzTƶj?{c7W?a Ta|p"`zNibUU<n$$+4C8{ J}5T4`azt~5 ӆ!Zpl bb`OM3mZ`"p9-S{١AL_w,?kTWDW2k2h )l^?F[݆4G"?By]#Zؘgu#'q *}, Y 0x8iWGWï81\Rko[7G 0,2Pti4MT4WND-pwvXwOq8@ԧ{=>:9ik](edIoT:Ams8(ibbQQՊ$niVBR-8fݚA&e#d]e0WSL$[ݯTCϰŐdvbG ӛdswl lVi|ՍE0k!jEt#E%յ]2UVe0 Sg#Z]DEi aEV`31?A0 H/Q|@;ULm1F2ź4Mdqkq]n}.RuGۂ>,Nc.v^epu~Bbe;U!ϰZ;]L2kd6sXvDb/̡HRV0Qƃ |kDM >ggi!]JQZNв:@V][.5Y0uoy#g~.[K۹Whi(yz\ҨoG͹uDm&AgfjB9E˻,-R0@pJL<&bgsjMP8WBnfy@g8-GL=C~aŵenv9Դ$gZr R(dHӤǘ\Шom ^QFz~٥~Z;}d-!jZPR`k+IܢV$P^$r p@t Ahɡ!-e(fVU54K2k8 aDL20@M[3J+ܟ]$nX. )vƗ QX[]Eh<դ/A _EiЎ$* {BϬsH'W-n^'cm-CG%JNd*U A˲Sş DIc[yS("l$Aux@gvh%›o5R],$':Y1p;.R3~+Zv `fnC6%Ә> U8mg.fQ{vU$Z!kKE ?+!:k+Ng2FA7+KJIDĠoX^lG Y ko=FIm [s3T_zF>&S %X_[`(Z C^[mUҚ#ؙ{ <ē3ɸr+:V`\`/?KEON0zҮ4'#H5Y "\T8T kjlClqލ{İLs7७HHǵw&5p܎Ds7؝$WCkS q笲J8x(7owljF%lNcw<]5Ni>u6`*ۈ >IG]~L]SFkK w/sF78vwXb^`zhk5ځUE$CGe\{蹦":D- %̵Uνt׊ k[imHhgL[XYWpl"dӧH~rL[ɑ#{qbBg |,6>*0x.$k: 8_DaAR\`%f_fAjK8Z6;Da U5OX46H֖˧:_]b@#QQr K8ԇ7na!n3.z[&Y4bg.x#3T:CB18}7o2K9ҹIaJ߿ho04`"?_a$ : a(8*8 <:+ms{ݽoLPUGh,G VPQxD(ېIs*[K JES3vs%^auG8vU~MܹsNR(ƦR{hM tsOqiƦf(v/!훨aGY(uMtvq]a7R-K{JXE2Z8l}wHL-y +Xn, : cCܸp9dZ*T'߹O/ؘ]yǛhg=.|``/12Ɖ7~V]Q&^߀2-I_!΀qz:;Xc=oІE*N7[ۖT"Vۈ#:?D~f?C[_VgzV&r jx5XB2s!?ۿey%dq#n{o FD!~ikqr71\Q|NW ӹ95ͬ-v EY* 9է? VWU;h"h?I&b aUe'_$ZfQRB8L ~@lDc!J+1ޯLm~N#Cøm{µͬod%w0a%AAsAm^ Kdr6$@Q%ڱ_TJ 7LA$\$Viߢ,&\G0B,v?1TYMuH.,3)k>āM(h肕r6B6"^A0u4C TVeid!XU O˺PRQ?& M"~.&5Yg*iOrqG#g'"6,/':s` T`e~R-M &x9'`,Vȡ:CG%_M`uaFHU-(hr"0b!Cre ?Fvd=%@q{<!T,`Uތ":}c2k,/#4l'ۉHPȐCR˫((Ϝ4yfņF? *  %47)OhGX܏$ɄʱIP__/ũ.-a.\NI%qVPt5 ӍM+kX|1:I,Ǫl6DBFDbTH.i:~C=wQ}T#Y_^deewvode~Mvt$ua+ r" v|+HuZ[ }hIRjbrxD66628av Hba+$8zVm$PP[Qɱ<>/vNjr;Q-vn;(xP{OR,icxĦţ}W:1S`M)OxmG|, 3ny3;BO~ԊE'_<^5v6[(}=k> zsˬ5GtDq+{<ءccxj @1(K,aל嫅o}sg HMa%Jծ _h2T;n OD|;S?OxA.|'뮿ŧÒϢ{\|ϵlEbLDRxrrgy9QylB^]w(>9'_uOL|Wa9W [}{,%@KUlʟ!X<[k{{/ &<~mwV!3gb3[gA-w 4I/MrwK6)G&}SklT@»c ͮ_OϮqS>;]>ss'lczk~b2|or7M! )`umkC]ֳ.BM7o)M q}Mx] MMwɩE dU4֣eё$*y·GO&?78ٜ@;ug{{{7o3:r9َ xQF2r)ƧD u;>.L }IDATqw`/ v3:BXb@j}rVw8Gϝtc```9sF[xRq/)NITה> ^duM|0#GV}g_9bVy0@Z"3Tvǚ\55Fz#t_5-;w?߃=.3=ekCp Dأ/n X YRo!(v|Ve- Z>Cj-%,!3NE/{}.S1WqQݻ;:p48=؃Df}]H^B!G/"AE9]== yB$6 f.K.a:$ MtAƪHd]ɢ(ͦ](4u24GVm4 c%Ï,m9Ae1V#:_%x[Fjɴ=؃5O~%q)D8?ʭ{֐ft:#] UхYe-,r~c":⠼{/a/32m?Kx8-XNe^#bbd ͡q>%M=bM6b=؃1l wS̑\!>  N=ξNO &8{!r8N\>]TTWVm7$ vϼL+<켌L#O35y!Vje,QSqN&2t2 DZN|{OvKKc)#{ $# w)F%{MoSs/ i膉()(JQM,jEr,oZ0 ?1f% ?kAjB4b5u`70gC;MsqLҦ/%#4f$MRnRٯdX$ݵ&mק6{ gf&__?(p{kڔŐcrb8{=5ί,إݯ<{xqvK)v>c: : i㔛 6i|~WUwTky`ZlLzm\.s>K: : :: : : G rIENDB`nova-17.0.13/doc/source/figures/nova-conf-kvm-flat.vsd0000664000175000017500000536300013556316250022521 0ustar zuulzuul00000000000000ࡱ> 123456789:;<=>?@ABCDERoot EntryRoot EntryFKDVisioDocumentFnVSummaryInformation( NDocumentSummaryInformation8  !"#$%&'()*+,-./0GHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~VisioInformation" ՜.+,D՜.+, HP X`hp x  ;Page-10VBackground-1ESSwitchoServeroDatabase serverCloudseDynamic connectornsBridge EthernetonnHub Patch panelFiber optic transmitter ATM switch Bridge.14 Dynamic connector.15erModemc Ring networkctoTilesetUrbanet AlphabetorkModuletNone tSolidtRegistrationctoVervera None .26ionCity.26Technic Server.29on MainframeonAustere TranscendonBlocksn FirewallonLaptop computerPCtApplication server5 Web server FTP server Email serverervManagement server5E-Commerce server5Public/private key serverr Box callout Comm-linkt Terminalt File server DocumenterOblique connector sPrint serverctoLegendeDisk storagectoDatastoContent management serverrStreaming media servereDirectory serverervApplication server.57e Real-time communications serverProxy servermun PagesMasters90|_PID_LINKBASE_VPID_ALTERNATENAMES _TemplateIDATC010498141033Oh+'0NHPhx Schma RseauRaziqueLC:\Program Files\Microsoft Office\Office14\visio content\1033\DTLNET_M.VSTRaziqueMicrosoft Visio@CGM_C = EMFMl_U VISIODrawingL M_C`D ??d(L(`DL̿󣣣¶棣󣣣󣣣Ŀ۸詩zzz汱ƿƎ{{{̱踸Đϛ______qqqvvv󿿿̱xxxٱ󱱱|||qqq\\\󣣣濿vvv̛ۍ󃅅{}~濿ٌُ̿$$$$((GOPooo 000iii9<=8;<{{{  $$$ +,,888PPPBCCjlm;>@TTT!$%]eg!ev}057u0009@BITY_imPPP```Z`a٭֛㳳 _ce֌ mqs|@@@pppPPPǿߛ峳GGG,,,===ی LLLOOO|@@@WWWTTUʶ׳,,,nnn댩&&&~~~|<<<000 ԳʶOOOPPP000fgg>>>@@@EFF=>?XXXЫ hkl'((񼼼 uyz'((XXXర```嶶ppp빹̶Ұٿǹ汱777???ԳDZ㳳 >??Գ񿿿344%%%???%&'x@@@峳ͳ CCD|@@@ިװEEEVVV||}|@@@гĥ;;;԰迿'((jlmxxxOOO১٩Ͽ”ϱ̩̣̱̔̔  xxxǥppp|npcSٛ̿xxxٶHHHPH?%A4$UI9󸸸̶󿿿s1$yY19+ϻۦ-./*./$eYE濿̱̿GGG???OPQccdgggۭ_ko333w{}000ͶWWW\]]_ko|||LMMPPPw```װ১'''mtvlllAAATTTIIIIII```趶æ wz{000װKKKBBBnqs###www000װ XXXVVVw]]]Ұ𨨨趶AAAXXXeeeɉVVVరإAAA000]^^@@@888FFGOOO̅棣ϣـ̱䣣̱±দhhh&"=7.=7.=7.50((((### HHH趶BBBnСССջ ,,,778g$ EEEv޾޾޾Һ 666+/0q :EH ҳ```}޾Һ @@@MNNی ర```޾Һ lll666ی 빹```׶>>=000lmn󗱻ǹhhh('&><8>:4;5,972 ͮ￿XXX677Z\]000ǟ      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                           ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~  Visio (TM) Drawing nVvTsR|@l  ߳!fffMMM333-yN77sPɺm88rcc3f{ڌ626?3ff?G}UUUհc5ڬм>{N9KmfwJpYDRb߷qaXPF91I@dddFFF9{$<<$JJ1tl77A@@@p0Ezٕ㰬VęյTBj~daPc*p PT幵.|AJ Pj( YYY `9tk݀& LGND/cmd_=nop( LGND/cmd=wnop2h / a/ a/ a/ a/ a/ a/ a/ a/ a/ a/0 )C/h3 *C U)J:DT5I[1hXT@. /UbW##_b0U]?ȾL \&B1&Wb%e !oM $d )P?;$,, & #& , 5&?D#//?M?\.? 7A  T~,,,'q/%P6$Y6 ((}k?l)P?"  U UA3#o >S@#B:aU_ReUeUeUUeUeUeUePONOD`T_ReUeUeUUeUeUeUeUUb RSR;25OM% >Qiq;RRRggR qh>Qj /A^F' %p3|CbFp#| |% | vi?=Os<34*x,,,/HRQAmeY q]U@Q-,_vL__q____OO_OOYJAe@L&d2K?ɠQ3Ҳ s]֦xΟ$H"Ŧ)Լ Dץ4@dUA??ϩJ[D!# f:45ŧ5ŷ5ŧ 0H 0D$#U   [#Wb ;Ch( D?@eDrqr:ePB#<D5,ND0DDA7XDbabX#F:FDF(A:#7 D% #7H(DRQRHBA7D B7DJBA:B78DBAB8BAtstt<tB9DB9D%B9(!(D2&1'2&(!BA9d!Dn&m'n&d!BY0C&'&!<!BȁD&'ȁ<ȅ"A6761<1B#AT6S7T6T1<T1B$91D6761B%91D67%61B'AF GFA<AB!(9DABaicTgdhTsG'0f6U[e0 sFf|tvu dd4φFRd,c  F،3*d4V56Fs 9Faaj9eOwOkŕh8FTo!32pbGFdF毭oʳUųUvoft\W?޳P`ކmW"> gAkA oojx5lR}J<DTqC`` {<eh]-w>yqyu4x.~O6ARH-D@>QWACGcwc]oP{Jk? `Aooookt|/R|a`OX󀠟ҟ=<HQ0BTASFwByѯ+=Vasvψ߿'9Z/oϷ#5ASew߉ߛ߭߿ߐ@C DVhPTCW@CaTHY"$? 4-Qc___o o;Moqo/////%/7/I/o/&/////?@!?3?51qU<e?w??V??????O"MUHh2ET_ BE'_"h%]lO~H~E7O5_G_Y_k_}_fo____o1oCoUoUZoooo4~ /ASeȟ ?M$aǔ=93W+harz3P贁N[ܞԏq a/%?xbpb AD@ xA 柲TfxF#_'2 W2{~"D@妠JJuERB0%B I B0BzvCt*346^C 9C$CI1%7I[mߑߣߵ`rF ﰚEݝ[ #l~FbbOAX:iοF4 9S=*?b/???(:L^p'12O8!M!!,G L!%\.TbJnRtVtQbry !qPmlF/{gYn)1z}nPectWPiehP7__#wSbQ =Ulu!q`UoP9@t `enf9blo~o6o@S^TKoޠ!P`"Rnpu!5zoR*"`u`d0nec;bI[o8e Uu!`{uTa`sp9@Ur`n`yfCb {:o' PanRbTW|5̈W?|\!??+a`B9@ckerv0oP?S/e'BBEYYFYY '1 1" EL;#?L ?OO)N)>F8UOASZOlO~O&I[i O٤E);M_q+kЋSЋSU1%vп?߶U///Ǡ/(%ySA!58%3͟±Ԛ''b<0%@/1d/v#%//(/?!5//ߤ3G5" R` C1pO?% )N@OTbt'ϱpS!jdꕰQX!3<=P4#>k5$y }'9mUТE%O( ٯO-?QcQ\8_H/$ ժϙGB:(Op߂ߔxߩO%C?I Wi{O? i~\6/(O?mJvVŀ#5GY#5GYk}i н 'N(C.%ZFZFH/`%bdRq4q Acrt3rbb㤱7m-c8tZq<|oobobNbb¤osR@Q:4!s/֢ ZF8p%`՞UG?/,TKQeҭy)77s!X7es/??.?R?d?ď????OO{/˥ʦ#xaҏ,>PMR?Ο,*'(7OQTf+=Oas̯ޯ&8J\n𒿤A+PпbbPI ,ɺ /ύoow͏ϡϳτ/|nbb/i~@7I[mߑ+=OasOO'OK*<__D_h_z_GYk} .@Rdvȿf?-m7/I/AS// ?//ϷbbObmҏ%?I?[?m????ef???OO+O=OOO7sOOOOOO__'_9_]_c|C/ßՑa%`&q% A*ewj_f____Oazoo'9K]~ooo/#/5/G/ Ӓf/x////////??,? __0_LUR9/d?v????;6O??OO<'K+bGcM?tOOOOOGqpCQ_:ou__z__v_oo)o_oqoϕoooyF1#5Gccߖ ` 1CUW'uϏ);=?%cȒ ^2ȟڟfffJ@ӦIJVEbwcȾ.LaJυͿ'9DIoρϷ#/5GY[}///S/e/*<N`ri1 2DVM2DVh c n_4BoXj|oo/ //oB/!?3?x///e/#i?E?W?i?{?????c??OO*O;fϧϹϦh`b& 1CUgߝ߯L? -??cu??);M_q"O.T -?QcnF-a & YQgT!-6 FO@l@5GYkPAuV!!` jo2{o7s/ !/3/E/UVt//////7O/?>O(?:?^?p???????:O$OUjQOcOuOQb{GE4f!3 GF}tGN=@OS|OOOO OOOO ]#_/_A_S_e_w________H$b #o5oNtRv|@s!z@@Rzq}U{uwx 0Bufxq߮ҏ,PbewΟ(^ʯ ܯU$ô4DVhƃ˿ݿͽqH2Tv!rAtuacus,oE@ct Uc"VoSe"f//o/3?upgXq:??3oofct* w(hz$rosFo) CHZ*___ ߰?_+"-?UgUK0f//'/9/K/]/o-HNNk?/OPu=A"pcD?V?fb׺Ŝq ? /d߇hf"(VmmmHeXϚO|CUO_DX_YoCQUO_a_:SU__寷roꯖo 1 Wcooo`@-by"q{ ď͆CC jSϑ>qUn'(U)*+,U-./0U1234U5678U9:;?@U4<Y,b'@"H$ @ \/[C-Hcp7 AU'()U+,-.U/012U3456U789:U;<=>U?@CDUEFGIJU4< Y,b'@"H$ @ /lC-p70 AU'()U*+,-U./01U2345U6789U:;<=U>?@CUDEFGHLU4()*U+,-.UMNOPUQRSTU4<Y,b'@"H$ @ ~uW^1}C-c7 AUVU4<Y,b'@"H$ @ 1 }A-$7Un'()U*+,-U./01U2345U6789U:;<=U>?@WU4<Y,b'@"H$ @ \D2[C-p*7 Aj()+,-./0123456789:;<=>?CNOPQRSTYZ[\]^_`abcdefghRiklUmnopUqrstUuvwxUyz{|U}~UUUUU4?@BU4<Y,b'@"H$ @ \[zC- AUn'()U*+,-U./01U2345U6789U:;<=U>?@U4<Y,b'@"H$ @ \25[C-7 AU&'()U*+,-.U4< Y,b'@"H$ @ h5!C- 6 AUn'()U*+,-U./01U2345U6789U:;<=U>?@U4<Y,b'@"H$ @ \e6[C-7 AUn'()U*+,-U./01U2345U6789U:;<=U>?@U4<Y,b'@"H$ @ \7[C-v7 A-VU4<Y,b'@"H$ @ 7A-K7 ;UN'()U*+,-U./01U2345U67@U4<Y,b'@"H$ @ (088AC-Hy7 :b()+,-./0123456789:;<=>?CNOPQRST\]^_J`acUdefgUhijkUlmnoUpqrsUtuvwUxyz{U|}~UUUUUU4 AU"'()U+,-.U4<Y,b'@"H$ @ 8hg>C-`7 AU-U4<Y,b'@"H$K @ >C-غ7AYU'()U+,-.U/012U3456U789:U;<=>U?@CDUEFGJU4< Y,b'@"H$ @ HI?lC-\`7 AUn'()U*+,-U./01U2345U6789U:;<=U>?@U4<Y,b'@"H$ @ \[C-0`k* AU&-.ZU[U4< Y,b'@"H$ @ hh!C-`* AU&-.ZU[U4< Y,b'@"H$ @ h>A!C-`_7 7U&-.ZU[U4< Y,b'@"H$ @ ȰhA!C-`7 7UN'()U*+,-U./01U2345U67@U4<Y,b'@"H$ @ 08BAC-`y7 :U~'()U*+,-U./01U2345U6789U:;<=U>?@AUDEFGU4<Y,b'@"H$ @ BhC-`=C AU'()U*+,-U./01U2345U6789U:;<=U>?@CUDEFGJKU4?@CUDEFGHU4?@CUDEFGHU4?@CUDEFGHU4<"Y,b'@"H$ @ YFrC-H7 AU'()U*+,-U./01U2345U6789U:;<=U>?@CUDEFGHU4?@CUDEFGHU4<"Y,b'@"H$ @ hGrC-ȃbH AUz'()U*+,-U./01U2345U6789U:;<=U>?@CHU4<Y,b'@"H$ @ HeC-`_#I AU-.N[U4<Y,b'@"H$C @ ~IC-cU7 AUN'()U*+,-U./01U2345U67CU4<Y,b'@"H$ @ H0IAC-Ȝc?,J :Uz'()U+,-.U/012U3456U789:U;<=>U?@DEFGU4<Y,b'@"H$ @ (JeC-Hc7 AU'()U*+,-U./01U2345U6789U:;<=U>?@CUDEFGHU4?@CUDEFG=HU4?@CUDEFG=HU4?@CUDEFG=HU4?@CUDEFG=JU4?@CUDEFG=HU4?@CUDEFG=HU4QR@k>QR@l>OR@h~?QR@u@OR@@OR@XiARR@ARR@BRR@8›GCRR@›DRR@xÛzDJR@ě=ERR@,FQR@X,FQR@P,GQR@P,lHRR@HQ,-IQR@Q,IOR@R,6JSR@(S,JQR@S,KQR@hT,#LJR@(ȒLKR@0MNR@HMQR@h,NRR@ ,NQR@( ,\ORR@ ,(PRR@ ,PQR@H ,QQR@ ,RQR@8`USRRL<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(L<(<EpWWREsW XREpWXREvW)XREHvW7XREzWEXRE>SXRE?aXRE`oXREa}XRE8bXRE(cXREdXREdXREeXREfXRE8gXREgXRExhXREi YREiYREXj%YREj3YREkAYRE8lOYREl]YRE~kYREXyYREYREYREHYREYRE›YRE(ÛYREÛYREhěYRE,YRE,ZREXP,ZREP,!ZREQ,/ZRE8R,=ZRER,KZRExS,YZRET,gZRET,uZRExȒZREZREZRE,ZREx ,ZRE ,ZRE8 ,ZRE ,ZRE ,ZREX ,[RE(([RUFD  h(^TYYBBUF\.ߗ?x<F BP(?hP?X$ ]B66ȅHq?j|?G IB@L&ɯd2?sU!&;/xt  0RKB` SwitcP,ne work pʴ r pP!aUl d v c z !^| R( G@&L >V&7?J7 ?ppwpwpwnwwyZwpw wwwpwwpwyplRp)~pw߇p}~zZDrag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aabL&d2ٿ\.??{ڿ ;?k?r3r CUG DF P# h @T(PYY#EψUF\.?@L&_d2?@ w?P} Y.B! ":J :f^7r7ֆAu` ?U"U66JJU^^rrUSu#U ^b"h,h'RqU f??z4b u{[`:#"&a#'QT)b" ^l!L1$l" l"7'>>ÿ@qZ05?46 r23ZS2uY0`-1ZBu@ l"r3A'Bl" hL$9u`u `"[ bzb!u`R$"% أ#Q!'1`Vis_PRXYcPm!#5HP4{6NP2`?CopWyr.PgPt u(>P) 20{PU9 M.PcePo0P'ofmR^QraPQUamPi_Pn WAlP eXsRUe0PeePvPdB!#d$%b!*(=#&#@Bd&& "$B##0Ub#]g,7{TrN @ cTg d(a1+_c@11"hh"2)t3*tB+tBa a"aab(!BpaSb"+QQou\%G!!["@@Bq"53T@R"q3<1 KEq`RPQs.PU TPxmPSP^2l"+ 0^<@5b 䱠"5R"br3&BrM_q(pffs_<៵R-m11'rvu"u"2$u3/8B0EBH%Q%Q"2_b3l !!E|QQQQ67l!8ĢAP!!1;(bL1D:b;aqq^eD!b(pQu [ ]@U0` SPa*aPePl rsRQV)P E u.PpBP!ePQ"5X%7\In` WTcPx]SP`DP!vR3^߮߼Iӏb` Syb9Sw>?QEd-MPnyfPcmPuRmt߆EQ`]1SPRd Nm E ZK!P PPr8J\h}]%R'`-sRU3e_ 5Afe3`؇e ,S SRiPQ ՑրTZIPL_PcX@;۞`rBYlPiPq٫€րY0KSR_PoŲ/ٸ!ר@/R/5NwRk,a_B`+x/OI4PQdPSi/, "?=ns#]?,(dN??(JSL1m "/Q9tVQ IQ /?րf?O\I-` R 4PQQ^OpOƒ?O?MPCI?O._qSCRo"mY6AtN BT]]9 M JU@L&d2?@|>??@Fh4?P6 AJuM` W?SuJt At=WG_z#J]RbJlp= ף#R>2yw?@MJA@eb&#z(b),+,&J[(.;?&L ?A$./O%B!!5 g`?Copy_rigTtZ(c)Z2U009ZM 0c 0os0f21r0>1a0i0n}.Z AlY0U 8s]2e10e 05vo0dQ0! $-# ',&?6iie59 6uX7_'0UpBŁ&Z!$0 'F";JlJAh h7!1!Z@x<3ף , <~y#  IRvVJ:?OS QlU^TURUEU{bX,G\ZYaaȫQ5UL&[RQQ .aYU520_BUv"rA # cHD H# h4>T]]9 MT JU@Fh?@+@ ??@?]P6 ]nAJuM{` ?5uJt  Q߸It=W贁NUIRIl%0w#>2zG7z?3@MJA@eb #zbR( (2+2&J[ (wp"?& ?A$ 4/U%B!!5 g`?CopyrigTt (c])020%090uM0c0os 0If21r 0D1a0i 0n.0 WAl_0 8sc2Ue70e0vu0dW0!E$5 򤲝-?# '&6iieE9 6X73'0UvBŴ&!$0 T-FAJlJ8>UhAA 11!`m`0?@rO\.ש ,#<#{ RVJ:9XYUي#rT Q%UE?,b R8]S# l_@ѱQEakQY,aU5U^fGO+|no/j3asChAZGQaX_j_i2>_PU"rA #js( bUGD  3 h0TdYYB 1 U@ BP(?@'J?@ V?,?@f_(@yw?P} ,w 5 &M& DD bb 4  M  4  &M& 4&4& R&R& p&p&d &M& && &&4 && 66o"u` ?J$0BN`l~$I/( /2(>/P(\/n($z/(/(/(I/(/8?"4u.9!t+1  QyUtmQRkyUWq#6&yU~W6͔QUQQR`?CopyrigPt (c)2`2\092`M*`c(`o%s"`f0b!ar$`]aua0`i"`n.2`_ Alx` (hUs|beP`e(`v` dp`RSST SB-S`6b g?/4)=SfS@tff bT#S0Uorc@V*` @4c u vXgw'ntŔf!d] vze!`^H@!!Yd&Db&VUʄ&ՋeʄDՋ3ʄbՋ uʄՋʄՋ|ʄՋƈՋcȆՋƈ!Ջ&ƈ4!ՋDƈR!Ջbƈp!ՋƈRƈ!Ջƈ!Ջƈ!Ջʄ1VHD: # h0>Th]]9 MTIAU@?@kE8?@ ͂?@SSfhr~?Pps-8R?>$ > n JuM{` ?e ;  Su*Jt'  $mCLmta{\_I 3.Jv  q?#cwn?v(A[}Kѭ>JU2N贁N[?@M#J&A@bI(bUW)U+U+U&*Jy#?!lJ ?%P?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>Uh ETh]]9 MTIAU@?@-Ы?@ ͂?@SSfhr~?Pps-8R?>$ > n JuM{` ?e ;  Su*Jt'  H-mta{n_s9/3.Jv  q?#cwn?v(A[}Kѭ>JU2N贁N[?@M#J&A@bI(bUW)U+U+U&Jy#?!lJ ?%P?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>Uh ETh]]9 MTIAU@B?@c?@ ͂?@SSfhr~?Pps-8R?>$#A n JuM{` ?e ;  Su*Jt'  m@mta{7._ xX3.Jv  q?#cwn?v(A[}Kѭ>JU2N贁N[?@M#J&A@bI(bUW)U+U+U&*Jy#?!lJ ?%P?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>Uh ETh]]9 MTIAU@eZԩ?@z?@ ͂?@SSfhr~?Pps-8R?>$ > n JuM{` ?e ;  Su*Jt'  }$~mta{_P@3.Jv  q?#cwn?v(A[}Kѭ>JU2N贁N[?@M#J&A@bI(bUW)U+U+U&*Jy#?!lJ ?%P?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>Uh ETh]]9 MTIAU@h!I?@Zzv?@ ͂?@SSfhr~?Pps-8R?>$ > n JuM{` ?e ;  Su*Jt'  XƿHmta{_z3.Jv  q?#cwn?v(A[}Kѭ>JU2N贁N[?@M#J&A@bI(bUW)U+U+U&Jy#?!lJ ?%P?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>Uh ETh]]9 MTIAU@sLGv?@Bw6t?@ ͂?@SSfhr~?Pps-8R?>$> n JuM{` ?e ;  Su*Jt'  [Rw͖mta{__j3.Jv  q?#cwn?~v(A[}Kѭ>JU2N贁N[R?@M#J&A@bI(b*W)U+U+U&ՆJy#a?!J ?%P?AO"d+bRW+$u/%B#A1A15 `?Cop rigTt (c)x02`09x0Mp0cn0osh0fv2g1rj01av0ih0n.x0 l0 n8s2e0ejn0v0d0:1Y>4#-X#M3 M7#(p0b59 DFXGdG_'2WUA;FJ!$a dFD$&#l,&}>Uh ETh]]9 MTIAU@?@9 EU?@ ͂?@SSfhr~?Pps-8R?>$> n JuM{` ?e ;  Su*Jt'  $mCLmta{_3.Jv  q?#cwn?v(A[}Kѭ>JU2N贁N[?@M#J&A@bI(bW)U+U+TU&Jy#?!J ?%P?AO"d+KbW+$u/%B#A1A15 `?Cop rigTt (c)x02`09x0Mp0cn0osh0fv2g1rj01av0ih0n.x0 l0 n8s2e0en0v0d0:1Y>4#b-#M3 M7A#(p0bP59 DFXG~dG'2WUA);F!$a dF$&#l,&}>Uh ETh]]9 MTIAU@?@,?@ ͂?@SSfhr~?Pps-8R?>$> n JuM{` ?e ;  Su*Jt'  H-mta{X_ 3.Jv  q?#cwn?v(A[}Kѭ>JU2N贁N[?@M#J&A@bI(bUW)U+U+U&Jy#?!lJ ?%P?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>Uh ETh]]9 MTIAU@B?@-r-.?@ ͂?@SSfhr~?Pps-8R?>$> n JuM{` ?e ;  Su*Jt'  m@mta{_ :3.Jv  q?#cwn?v(A[}Kѭ>JU2N贁N[?@M#J&A@bI(bUW)U+U+U&*Jy#?!lJ ?%P?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>Uh ETh]]9 MTIAU@eZԩ?@ƍu?@ ͂?@SSfhr~?Pps-8R?>$> n JuM{` ?e ;  Su*Jt'  }$~mta{_D3.Jv  q?#cwn?v(A[}Kѭ>JU2N贁N[?@M#J&A@bI(bUW)U+U+U&*Jy#?!lJ ?%P?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>Uh ETh]]9 MTIAU@h!I?@O2?@ ͂?@SSfhr~?Pps-8R?>$> n JuM{` ?e ;  Su*Jt'  XƿHmta{p_'F3.Jv  q?#cwn?v(A[}Kѭ>JU2N贁N[?@M#J&A@bI(bUW)U+U+U&Jy#?!lJ ?%P?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>Uh ET]]9 M JU@]u?@x?@,ww'?@d?Pn6 >JuM` ?u#t  fIt=W紁NIRkgS|lWxI#>2zGz;?@MJA@eb #zb(b%)2+2&J[/.;?&L ?A$4/U%B!!5 g`?CopyrigTt (c)0W20%090M0]c0os 0f2R1r 0D1a0i 0n.0 AUl_0 8sc2e70e0vu0dW0!$ę-# '&?6iie59 6X7}'0UvBiŇ&!$0 -FAJlJ8>UhAA@ 11!T2 $<cV] &WR~VJ3kq?@BP( ]S m၏jy#mS zjaֱQE^y`0__ lOA/X5:Fh4 XYePYv81sX5aZjoohY}aUU߭?@,bl'4/\K)aX2>_;"rA #jsHD: # h0>Th]]9 MTIAU@sLGv?@_?@ ͂?@SSfhr~?Pps-8R?>$> n JuM{` ?e ;  Su*Jt'  [Rw͖mta{_3.Jv  q?#cwn?~v(A[}Kѭ>JU2N贁N[?@M#&A@bI(bUW)U+U+U&Jy#?!lJ ?%P?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>Uh ETh]]9 MTIAU@?@*y>{?@ ͂?@SSfhr~?Pps-8R?>$>  uM` ? ; E)u*Jt'  $mCLmta{)4G3.Jv  q?#cwn_?v(A[}Kѭ>JU2N贁N[R?@M#J&A@bI(b*W)U+U+U&Jy#c?!J ?%P?AO"d+bRW+$u/%B#A1A15 `?Cop rigTt (c)x02`09x0Mp0cn0osh0fv2g1rj01av0ih0n.x0 l0 n8s2e0ejn0v0d0:1Y>4#-X#M3 M7#(p0b59 DFXGdG_'2WUA;FJ!$a dFD$&#l,&}>Uh ET]]9 M JU@L&d2?@\.?tP6 >JuM` ?uJt ASt=WJRb~li>t2U?=@MJA@b + &J[N#?0a& ?AT)B!!5 g`?CopyrigTtZ(c)Z20 9ZM c. os f"!r 1ai n.Z Al90 (s=2e0ej vO0d10@!$b-# 'Ya&?6iiek59 6jX7^'0a&Z!|$0 FJlJ UhqMAA ]A !4Ja-'Z@?@  <0贁N#A OR|VJ:6]G+|M__Zw?/#UEF`?0?@ aQS xQ#`Y{GzYk5^ro!o :mX5U'h?gkT:&#dT[RUU4F?@|?BP(flwaw%l5p!Xnc 3dXAYEh4\`Yb/XAdx̼_ZWnQXAYL&tgkRwpQlQE26_HU"]rA HD: # h0>Th]]9 MTIAU@?@?]0?@ ͂?@SSfhr~?Pps-8R?>$hA n JuM{` ?e ;  Su*Jt'  H-mta{AJ_ap3.Jv  q?#cwn?v(A[}Kѭ>JU2N贁N[?@M#J&A@bI(bUW)U+U+U&Jy#?!lJ ?%P?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>Uh ETh]]9 MTIAU@B?@d;]?@ ͂?@SSfhr~?Pps-8R?>$> n JuM{` ?e ;  Su*Jt'  m@mta{d_v3.Jv  q?#cwn?v(A[}Kѭ>JU2N贁N[?@M#J&A@bI(bUW)U+U+U&*Jy#?!lJ ?%P?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>Uh ETh]]9 MTIAU@eZԩ?@>6#TTĶ?@ ͂?@SSfhr~?Pps-8R?>$> n JuM{` ?e ;  u*t'  }$~mta{%$苵3.Jv  q?#cwn?v(A[}KI>JU2N贁NI[?@M#J&A@bI(bW)U+U+TU&Jy#?!J ?%P?AO"d+KbW+$u/%B#A1A15 `?Cop rigTt (c)x02`09x0Mp0cn0osh0fv2g1rj01av0ih0n.x0 l0 n8s2e0en0v0d0:1Y>4#b-#M3 M7A#(p0bP59 DFXG~dG'2WUA);F!$a dF$&#l,&}>Uh ETh]]9 MTIAU@h!I?@Ž?@ ͂?@SSfhr~?Pps-8R?>$> n JuM{` ?e ;  Su*Jt'  XƿHmta{_v3.Jv  q?#cwn?v(A[}Kѭ>JU2N贁N[?@M#J&A@bI(bUW)U+U+U&Jy#?!lJ ?%P?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>Uh ETh]]9 MTIAU@sLGv?@c?@ ͂?@SSfhr~?Pps-8R?>$> n JuM{` ?e ;  Su*Jt'  [Rw͖mta{_] 3.Jv  q?#cwn?~v(A[}Kѭ>JU2N贁N[R?@M#J&A@bI(b*W)U+U+U&ՆJy#a?!J ?%P?AO"d+bRW+$u/%B#A1A15 `?Cop rigTt (c)x02`09x0Mp0cn0osh0fv2g1rj01av0ih0n.x0 l0 n8s2e0ejn0v0d0:1Y>4#-X#M3 M7#(p0g59 DFXGdG_'2WUA;FJ!$a dFD$&#l,&}>Uh ET9 M3JU@L&d2?@\.?ҷP6 m>JuM` ^?5ulbSD_Jt bstE>2zGz;?@MJA@u+b+&K !JS"j& 1"A.b+-,-/*B!!5 `?CopyrwigTt `wc)5020A0950M-0c+0o%s%0f32$1r'0`1ua30i%0n.50_ Al{0 +8Us2eS0e+0v0ds0ib =L!XY'0U Bj&%0 :lJ Uh*M[A[A 9A Z1:'h? Y T:&Qi@J4F?@|BP( IQ!i pP!!U31^ `0,I_[_ {uXEEh4Ẍ TbYb/uX _dx_aZW贁NuXAIL&tKRPQ\%QAI@@ HlQbY 0hauXAo G+|oaZw/(uXAY RU:q Ib_`yA\ppr׌ :muXEOO_\_dH >Z(+s .ṿrAA'FH&-u_a#:`!OB Cۋ1a~d/ ub@+G-wBBGU'-e P0-"l&82-HoY4-r߻5-vx8-Ty :-(|=-r-с -ߥ'-xP9-NZ-$}6-$߿-̒ A@|C@ HF@HH@ÞJ@M@U$@)}Z@$@ӭ6@V]!_9IL MU'W4YA BN [ h u )UUUUU.8ETU_Ul y!U"A#UK$X%U&'U()U*+U$,$-U"$./$/U<$0I$1UV$2c$3Up$4}$5+#6 !7 !8 ! !: !;UFD  h(^TYYBBUFjZ?F~??x<F BP(?P } kX` BW66 W TTT%TTȅ5H?? (?B@L&d2?-(\.g1(.sUW!AU&w/~  0QB`#serv",comput$dWis r0b$ud n tw 'rk!eA^| (SG|& b?,>?TTwpp pqqppqwqpqwqwq+p pppwwwznw6;5wqpwwwhghw>Drag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aabjZֿ~??cN׿ mF1??SbM1{V↑T*J?@ ?UG DF P# h @T(PYY# 3U@jZ?@~??F?Pn} u{` ?Su#΍>>HX HlHYHH E.Oč>UDDXXUllBa'9-",'tU"J%q4 Q?"'4b0{[`:#26Q79$"t3&9"OL1" ^!'܈ >7@ÿ@q@@?@8B?@!ABP5F02u@K`-1xBu@rCC53A 3Bo2гC9uv`u `"[ۢ b!-u`23kQQ1Q7B`?CopyrigPtf0(c])f020P9f0uMPcPosPIfRQrPQaPiPn f0AUlP XsRePePvPd/`VPs_SBNcPm!#5JP83`5a Q1#d:4%B @8=3R6#d\6P\6 X2$#3+0Ub\3]Jxge8^ E U#".5m Hvq%t{.5tpw3t{Et{t{^y {|tYwmkdaIB'BT1aa"0ք.2132B3z1z1"|+q+qEQQX116Q;r<A>Ab\1EF`rAJ͔!hh)1baA (dT6vQ1oUkQ]b` MPnuPaPtUQra1Q` E50uPp -`ePt=e.5Q`!3]t1LPRdU\ %`u-`bcu30D-!I PPr֯H^-]L˭DRQqU`r\BAPaPrB`LDž5^,B%I SbiPQXj feTϟB LLPcXςPC5%Bl `iPgCų@o߰DLRPo}߄|AqZ@@K ӱpKDQ`;BNQwRkax`2`녨cϣ[I$`Qd `SsPo8SUbPRPsU}AxBuLDmatVa IaXAfBLT R `QQVhP+IQUm-`u-tP !`4줒ӿU챒VBALC`<1B` W2: /XؑLMPmRAy;/M/˒pq//$OPaSDy1!//%ؒ7VI]BPlRgRTP訰y??SPa2CP򿃪X??B` 7T+01I@"`a^%{/MPCAD vOOHKdQ>C2Z>6?H?qgtԁ/tufvop#U@jZ?F~?vvIC-pˑup` s?bujp`&T0a,Stԁ/p]e-2q?@< o5pmH!q."Tԁ.dԂxAƒ@T@>$pÿ^$gqa OvcrSr`Rno>㳫1e&BIrSrOvcv=ss"u~$bb pmp sty:b{bráe@6Cu&P`?hi@k""oűRT h]]9  5AU@jZ?F͂T??Fx?SF?P6 jt`  o?tk[>(A Vu aSuo.]&A]  *ԮJU2zGzt?@L#&A@bA#z7 5#1bO(b])j+$j&[ "*(w "?& ?AU$l/%B115 `?CopyrigTt (cu)Q02`09Q0uMI0cG0osA0IfO2@1rC0|1aO0iA0n.Q0 WAl0 G8s2Ueo0eG0v0d0"1E]4MŤ-&3 &7&l>]Uhz811U!J!u6?F+\.>djIIa? >"(EǑ I%K9E 5EU . K ;;5QIWEEEF _KnSA?8@@Bu?FDR> ?Nk"\6`bmMM\j=am {:e P> #? D"? 5-g?j4B7!B{oogr57!ibDAbE9 MuX7_'0U~rN!$a)5 5vIzHD # =hj0>T h]]9  qAU@;?FI5K?@xEL?6ѿP6 t`  bm&Qo?t@@L]WI,#u aiuoL> JU2zGzt;?@L?&A@b}#zs q#1b(b)+$&[9#H",ɺ (wH"?& ?A$ /%9#BV1V15 `?CopyrigTt (cu)02`090uM0c0os}0If2|1r01a0i}0n.0 WAl0 8s2Ue0e0v0d0"O1E]S4MŤ-9#b3 b7&l>]Uhzt1.A!JN!m.%-+0djV1ax߃S(FJ-&?F mO"> ?Nk"L[Majnha_:e P> #? BK=o? n-?j4Bs!B{__Wr5s!D8E6V 6?wj_|_ ^XE.U@z T6?F @' d_mOoT \VyWxRkrVo_bVh*g:n"'UaEjz36>CN>?Bn}]zGvN7V iDAbE9 MX+G'0UJPN!4ae5 MaHD # =hj0>T h]]9  U@jpiH?F^?@$?F]F?P6 t`  !a&ao?t,F=۳=u;u auo>J2zGzwt?@ʐLAw@b#z1b](b!).+I.&[-m(?0& ?A$I0/Q%!!5 `?CopyrigTt (c)02`090M 0c 0os0f21r0@1a0i0n.0 Al[0 8s_2e30e 0vq0dS0T"!E]$M-# %'&l>]Uhz!1!JF% djc~YZ(_N9zOMGE%_EH$SwO"K ңHE ^&_8_WE_OqOHOOi&DAbPE9 MX7'0UUfb>!$a % f1jHD # Uh4>T#]]9 M5AU@jZ?FL|+?@?F({~?P6 JuM` ?u JYt )t7zEA2&L_D?. > >tJU2q K?=@MJ&A@-b9(+bG)T+T&J[#"#a?& ?AH?/`)#115 {`?CopyrigTt (c);020G09;0M30c10os+0f92*1r-0f1ai+0n.;0 Al0 18s2eY0e10v0dy0z"!4B-#3K 7&)? b 0K8>U# ]A]A "1!ъ!PzQ <%OYAJEU . K;;\%W%EF($L[.FX5Eai%?F 6?wL;] W-\TB⤲8?F@&SA?F @ ?Nk"L'`bmMW_Ye[ٯ7 VK=F: [jr ? D"? XZvD?ta@Boogr5;!QEx]SiLO MLGXa~WOTZiAle59 XG"'0Uc>!$05 .HD # =hj0>T h]]9  IAU@K?FOgVb?FY%?Fwᳬ?PJW?>t`  ^Z?t#ə.E @x?r?/{4܂ G _Z+u u$ >  J JpU?43f<!.&P?b3bbfz@1bAe&bq$d 2zGzt.#@LT"&r(~&i$q)(+}'i"~*#81815 `?Co yrigTt (c)o02`09o0Mg0ce0os_0fm2^1r 1am0i_0n.o0 Al0 e8s2e0ee0v0d0"11E]54M-#D3 %D7.&lUh#7 V1#Ai!J# F/?B1B  VRiAAbE9 MX G{W'0U*R2N!I$a {VZUHPD  # #>h0JTpERI MU@u6?Fjc{g&?@%r`5B?Fm_F:Is?HNtQ`  II?t#]  _ii$!`kNu  iu%wj>M JQ T       "@&&JNU2"?H@Qs#N&A@b(bU)++&RNp}#>H1#19 ?#bbbz| R&/5R}#11`?Co0yrig\t (c)02h090M0c0os0f21r0Aa0i0n.0 Al!@ 8s%Be0e0v7@d@21a4t#-}#3 %746lJ#$JUp5 3 M19 1!q(!FnElrkRt# 8$kcD?@숒@)?FP?P"EkU |1\iOT/irvs}i>`_,of :m ,M ?? S&d2? *b?r4B!B oo1gr #5!>%(EQOOOO__FAc1_C_ D4ևS]_o_yRX+{_,__ #R__ (YQoSo+o=osd {oEeooooooFyUy{* hDVW(I X"c7I!pg bf'iMjSE t%XyG|'0UŢŞN!O4i |UGD # hz0TdYYBU@(%)?Fxg^?@0߯H?Fs7Uݹ?P} t` 87?t#_)TeΦu ]ukv  ̝L&UUU&I&3 U!!`?CopyrigPt _(c) 2\W09 M c os f"!r 1a i n}. Al00U (s42e0e uvF0d(0'HS$#-## 'I?k=#ǒ 2j$B##0U'BM3@&@F0Yk} #HA%DKb5DK3DK5DKED$!GiAZG5(|IDFX7yW'&Dŭ6!4YA yVZHD  # =hj4>T!]]>#AU@0߯H?Fz)e??F˞9q?P6 t`z  ?5t# rXѮu)Nu;):O]ע0 &> # " "+"+"+"+" $+"T-J[U7 ??& bA@ 2b4-#2zGzt#+@ Li68!6 ?}; 72U!:B#AA5 5`?CopyrigTt(c)20F@9M2@c.0@os*@f8B)Ar,@eAa8@i*@n. Al@ 0HsBeX@ej0@v@dx@)21"DM-,;?C G& l>]UhzAE!A#!ְ1J`#@{&pz?FUy{?NT,dKj&b&R&M/8T9K-q?F@F?FdG0 >Nk"?YE*]\LThKjfGD&Qhj ?iU3UGe&Y`?@/Jb)h5oWKoWo;èKod}l$ro`nE2K?Fˌ%4G{?F -q? eZR^{|\?6?vodmP}l>MBe 9 N 1iS? 1?grl#51:PO"4ga@Sq(UE^@O|ǐ[`ߡa v2rbA @3ijD&}laqOz o?#WHZ'Qu=*[^N?F]%P?@O&@ c?FаM<n ?` eb0)\(Pfodm}nv}l?V5(?q$Ix[cN#W{ #iA@&QeE9 MX''0UjdN!0 /HD  # =hj0T h]]9 #]AU@}%?FR$,?@6#V?Fc_3֡w?P6 u` ?u#t  3zM%t3ws%.<%H._'B> #PJU2N贁Nw[?@ʐL+&A@wbu](i+bk)%+&p%#4">9"<5!?& ?M#bbb͓z$ p&"/%T%#L1L15 w`?Co yrigTt (c)02`090M{0cy0oKss0f2r1r 1a0is0n.0 Al0 y8s2e0ey0v0d0"E1E(]I4M-%#X3 X7&l*>(UhE j1#$Ac!J`%#@5e$_F??!foA3nBM( V?FJ-R?@HQ??FS!R?P| llHL6VLD5E+v;*AůʙH: 8snP%$? k?Q? \?4_!__WrA5_! R,U3OC@IL?F4~Kz?P)Oy޾ T!]]>#IAU@܋?F2Oa>?@#r`5B?F*ݷ?P6 t`  >B?\oEt# ŖoZu 0Nu;Y:|8>$# JpU>##<?2& ?5bbbz@b#ANi&bu$'h 2N贁N[2$@ LX"D&v(&m$ :;T'm"*B#d1d15 5`?Co yrigTt (c)020090M0c0os0f21r 1a0i0n.0 Al0 8s2e0e0v0d0"]1"a4M-/p3 p72&l>0>Uhh= 1#!eJ`#&FNTM\jh1B,RBM(!JoUy{O_ e@ So4(D@^Tw?F]֝ä ?Nk"?w_KT\T+\_(Kjӷjmplhj -`\TPQE\Uui,St_o u~!ՠXEO9= T?FL?;uQ_Pm"rA @3sjQ1lğ=GoYniAleE9 MX|'w'0Ur^N!M$|A vzHD  # =hj4>T!]]>#IAU@܋?Fj?@2r`5B?F^ݷ?P6 t`  >B?\oEt# 6ΠZu 0Nu;Y~:#&}>0m8>  PJU2N贁Nwk?@ eL&A( 5bM(b[)h+h+$h&#[-M$#?& ?b$Z*'*B#O1O15 5`?CopyrigTt (c)02U0090M~0c|0osv0f2u1rx01a0iv0n}.0 Al0U |8s2e0e|05v0d0"H1P"L4M-/[3 [7&l>0>Uhh= m1#!S!J`#*&FPUy{_?NTMjC1gc RVMʣ(D#@ ![?F"$. ?Nk"W?IKTLTcKjRlhj p=' (*!)i,SO2Kes9T;QEGUFw6qX}__TM7fTZT\Dž}_P^52XOES"rA 0S#Es3iAleE9 MX|$Gxw'0UrIN!4gA xvzHD  # =hj4>T!]]>#!AU@܋?Fc_v?@#r`5B?F*ݷ?P6 t`  >B?\oEt# ap'EZu 0Nu;Y:|$># BJpU>#͙;? & ?5bbbz@}bAA& K&@ 2zGzt?"K@ L0"&N(bM)+TK/8Z*B<1<15 5`?CoyrigTt (c)s02009s0Mk0ci0osc0fq2b1r1aq0ic0n.s0 Al0 i8s2e0ei0v0d0b"5194M-t/H3 H7T &l>(>UhE=3Z1#E!J!FENTMjN@1h(NoUy{OO e@ o)4(D@^Tw?F]֝ä ?Nk"?'_KD3\T+\(Kj?ӷjmlhj P\ DiAlePsI=MXsG'0UzbZ6N!%$0 sFEjHD  # =hj8>T! ]]>#!AU@܋?F*?@#r`5BW?Fw?P6 t`  >B? \Et#տ|u l4RQu?]>I$>I# JpU>͙#<?& ?9bbbz@b#AE&bQ$$D 2zG[zt#@ L4"&R(^&I$Q)+]'I"^*Bh{.M#To1o15 9`?CoyrigTtk(c)k2009kM0c0os0f21r1a0i0n.k Al0 8s2e0e0v@d0f"h1l4M-:?{3 %{7&l>(>UhE= `51#I!J49fAn^ R)X f"B!Jui,SG?RSlOS u~!N]8-19= T?FL;uQ ?Nk"?YVTQRXQOnğ/=i n (\ wTiAaePE9 MXLg'0UbZiN!)$0 Lf`jUHLuD" # I>h(J TEI 3qMU@jZ?F({~+?P >uA` ?u#VMJ*  )8*A )LG#P`G.$*G8BV6j>t   t|zpb"#"J>U2zGz?@9 +#>;&A@b]m(b{)+Y&^" !l$jN5#",#C"&p "Ms"b{);x'^",^"V/5#113#`?CopyrigXwt dc)0W20090M0]c0os0f2R1r01a0i0n.0 AUl@ 8sBe0e0v@d0R#"lJ8JUlC -(#s!)(J!O?zQ0 # # %YA NEU . K ;;LGE3EF)$OK.FHE\Vai%?F 6?wt\[ W-L/D5Dꤲ8?F@@SA?F @ ?Nk"?wY2`bmM3_Yw[7 K=ދF  #j1H|AIx]Sit\1IMLHDEnPOoDJ1AAeCBp OOG|u?F9 mO"t\7=L驣/XQ eel.%-+?@llփ?FU~> @oVoɽ7y2VzdOfшlA=$o`"jQ3 ex}@4SSa[?o4ui'e!Oa#Əa$jiMiyI,%!Xtz'0U &`50HF vؚ_`H>;s `Dt![x_H=ߚFh@R#HӸw&OB -~d]ww@+_8RR{[s}GU,ցf,e(,,,,-,@֛X, H,6,8,,8,C7h,zN],UFD  h(^TYYB UFjZ?F~??x<F BPG(?P } X ]B66]  TTUTTTB9T9ȅHBU?? ?B@L&d2?6-G(\.Y(7.sU!}&/)Ѥ&)  0cB`,dat 0b 0se,2rv2,0ompu 0#3di0t0i013d0n0tw*0rk!e ^| (S G& iz ?!3E?? ?  wpp  pqw~ qwqwwpqwqqpppw'wwwqqbwqpwww7{{w^Drag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aabjZֿ~??cN׿ mF1??SbM1{V↑T*J?@ ?UG DF P# h @T(PYY# [U@jZ?@~?tP} u` ?u#2>D>HX DHlHYHH (E9.EUO؍:DUDXXlUlH"' &T",'U)2&5qq/4 ?""'4b0{[`:#26%Q_9 $7&9"L1" 2^!'>~_@ÿ@qh@o?@`B?gD]F0#Bu)@`-1֠Bu@Ur#CC5CAB""Ch9u`u `"[ b!u`2ւ/3Qy1y7B`?CopyrigPt0(c)020P90MPcPosPfRQrPQaPiPn 0Al` XsbePejPv&`d/`VPs__SBNcPm!#5P8[`CQ2y1&3db4&5=Bh8=/3z6&3d66 Ԁ2&4#/30U!r3]ge<^1E U#&5m Hq&5twV5t{3t{FEt{t{y {et !{|tYwmAdaуIOBT.1:a:a&20#V21032=FB3J112I5db6q 7~C|hhE) *^Q_`!CQCQA11B=B;8ARrSqe a> !b1AE4FAނ.1#8dT7`XQ`]rw` MPnuP%aPt%ar6aYQ_` E]0uPpU`e`tee^V5Qn]1PRRd M`uU`b¯Ԧ30Z! PPr#5GCHhz]3 D&bQe^\޿𿏫AP)aB`Ҩ75^gyϏ-% S*biPaϷZeTϏ-LPcX&ߠϫk5N`rBDl 2`i`g̨)@`ߑRPoʂѩ|(ZP\@ pKD`ĖUSPaPEePlP6?ЪX9` TP7`?>` /aZPa_qSbI`zy`DRa0"ZʒT=NwRkqa<.2`s @ҨגcOaI` ad2`%c& d nĝAs Nx+P=鑙mrDatV/a I͢@+aNfP󨑙 R `Qa// '=/KM`C/P⯺/+QUmU`utP I`/ %N4$?6?s 2v? 2Nv??;Hd2QC_3` Wz%?NV%O7OCt aOO#ޅO`M&`mR{OOӧY"Np_1_E;OUe1ySQ]_o_M qt!Tw*foSU@jZ?@?/v/vUpSp2u8p` ?bup` B=ݝ`M,{t!Wp5'm-ׁ<3ohm!Qb8q׏XݥBT!.ct!xAZg>pÿ=$ bUfq vU֒rrrvvvrsY"`ERon_10 бeCZ~bb W}Wbr@":tbWuP`TfnMq1o$6zK}_obK1K2\#b^ºaaaaFҴ_AaY6P`u$`bTs`ݡs`ap䑹x^tݥ5f_b&bׄЂF3s͵N?SYDs\rV@(#e"88G^80G8ɐIFZ,@rb4 2V}uauaxuYV{nx` % P&S.1ua`NEW_ORKd2H IPհs!R۰RЕIհSÑQȑTi|o&ohXAG'0U?8!0oHD # =hj0>T h]]9  5AU@jZ?@͂T??@x?SF?P6 jt`  o?tk[>(A Vu aSuo.]&A]  *ԮJU2zGzt?@L#&A@bA#z7 5#1bO(b])j+$j&[ "*(w "?& ?AU$l/%B115 `?CopyrigTt (cu)Q02`09Q0uMI0cG0osA0IfO2@1rC0|1aO0iA0n.Q0 WAl0 G8s2Ueo0eG0v0d0"1E]4MŤ-&3 &7&l>]Uhz811U!J!u6?@+\.>djIIa? >"(EǑ I%K9E 5EU . K ;;5QIWEEE@ _KnSA?8@VBu?@DR> ?Nk"\6`ObmMM\j=am {:e 뇿P> #? D"? 5-gg?j47!B{oogrK57!ibDAbE9 MX7'0U~rN!R$a)5 5vIzHD # =hj0>T h]]9  qAU@;?@I5K?@xEL?6ѿP6 t`  bm&Qo?t@@L]WI,#u aiuoL> JU2zGzt;?@L?&A@b}#zs q#1b(b)+$&[9#H",ɺ (wH"?& ?A$ /%9#BV1V15 `?CopyrigTt (cu)02`090uM0c0os}0If2|1r01a0i}0n.0 WAl0 8s2Ue0e0v0d0"O1E]S4MŤ-9#b3 b7&l>]Uhzt1.A!JN!m.%-+0djV1ax߃S(@J-&?@ mO"> ?Nk"L[Majnha_:e P> #? BK=o? n-?j4Bs!B{__Wr5s!D8E6V 6?wj_|_ ^XE.U6Vz T6 @ d_mOoT ݬ\VߦyWx?RkrVo_bVh*g:n"'UaEjz}36>CN>?Bn]z/GvN7ViDAAbE9 MX+G'W0UPN!4)ae5 MaHD # =hj0>T h]]9  U@jpiH?@^?@$?@]F?P6 t`  !a&ao?t,F=۳=u;u auo>J2zGzwt?@ʐLAw@b#z1b](b!).+I.&[-m(?0& ?A$I0/Q%!!5 `?CopyrigTt (c)02`090M 0c 0os0f21r0@1a0i0n.0 Al[0 8s_2e30e 0vq0dS0T"!E]$M-# %'&l>]Uhz!1!J@% djc~YZ(_N9zOMGE%_EH$SwO"K ңHE ^&_8_WE_OqOHOOi&DAbPE9 MX7'0UUfb>!$a % f1jHD # Uh4>T#]]9 M5AU@jZ?@L|+?@?@({~?P6 JuM` ?u JYt )t7zEA2&L_D?. > >tJU2q K?=@MJ&A@-b9(+bG)T+T&J[#"#a?& ?AH?/`)#115 {`?CopyrigTt (c);020G09;0M30c10os+0f92*1r-0f1ai+0n.;0 Al0 18s2eY0e10v0dy0z"!4B#e-?3 7)& b 0K8>U# ]A]A "1!ъ!PzQ <%OYAJEU . K;;\%W%E@($L[.FX5Eai%?@ 6?wL;] W-\TB⤲8?W&SA?@ @ ?Nk"L'`bmMW_Ye[7 VK=F: [jr ? D"? X?ZvD?a@Boogr5;!QEؿx]SiLO MLXa~WOTZiAle59 XG"'0Ujc&N!$05 .HD # =hj0>T h]]9  IAU@K?@OgVb?@Y%?@wᳬ?PJW?>t`  ^Z?t#ə.E @x?r?/{4܂ G _Z+u u$ >  J JpU?43f<!.&P?b3bbfz@1bAe&bq$d 2zGzt.#@LT"&r(~&i$q)(+}'i"~*#81815 `?Co yrigTt (c)o02`09o0Mg0ce0os_0fm2^1r 1am0i_0n.o0 Al0 e8s2e0ee0v0d0"11E]54M-#D3 %D7.&lUh#7 V1#Ai!J# F/?B1B  VRiAAbE9 MX G{W'0U*R2N!I$a {VZUHPD  # #>h0JTpERI MU@u6?@jc{g&?@%r`5B?@m_F:Is?HNtQ`  II?t#]  _ii$!`kNu  iu%wj>M JQ T       "@&&JNU2"?H@Qs#N&A@b(bU)++&RNp}#>H1#19 ?#bbbz| R&/5R}#11`?Co0yrig\t (c)02h090M0c0os0f21r0Aa0i0n.0 Al!@ 8s%Be0e0v7@d@21a4t#-}#3 %746lJ#$JUp5 3 M19 1!q(!@nElrkRt# 8$kcD?@숒@)?@P?P"EkU |1\iOT/irvs}i>`_,of :m ,M ?? S&d2? *b?r4B!B oo1gr #5!>%(EQOOOO__@Ac1_C_ D4ևS]_o_yRX+{_,__ #R__ (YQoSo+o=osd {oEeoooooo@yUy{* hDV!VV(I X"c7I!pg bf'iMjSE t%XyG|'0UŢŞN!O4i |UGD # hz0TdYYBU@(%)?@xg^?@0߯H?@s7Uݹ?P} t` 87?t#_)TeΦu ]ukv  ̝L&UUU&I&3 U!!`?CopyrigPt _(c) 2\W09 M c os f"!r 1a i n}. Al00U (s42e0e uvF0d(0'HS$#-## 'I?k=#ǒ 2j$B##0U'BM3@&@F0Yk} #HA%DKb5DK3DK5DKED$!GiAZG5(|IDFX7yW'&Dŭ6!4YA yVZHD  # =hj4>T!]]>#AU@0߯H?@z)e??@˞9q?P6 t`z  ?5t# rXѮu)Nu;):O]ע0 &> # " "+"+"+"+" $+"T-J[U7 ??& bA@ 2b4-#2zGzt#+@ Li68!6 ?}; 72U!:B#AA5 5`?CopyrigTt(c)20F@9M2@c.0@os*@f8B)Ar,@eAa8@i*@n. Al@ 0HsBeX@ej0@v@dx@)21"DM-,;?C G& l>]UhzAE!A#!ְ1J`#@{&pz?@Uy{?NT,dKj&b&R&M/8T9K-q?x6@F?@dG0 >Nk"?YE*]\LT_hKjfGD&Qhj iU3UGe&Y_`?@/b%)h5oWKoWo;KTod}l$roҥ`nE2K?@ˌ%4G{?@ -q eZ̿R^{|\6?vodmP}l>MBe 9 N 1iS? 1?g]rl#51:O("4ga@Sq(UE^@O|ǐ[`Ρa g v2rA @3ijD&}l迲aqOz o?#WHZ'Qu=*[^N?@]%P?@O&@ c?@аM<n ?` eb0)\(Pfodm}nv}l?V5(?q$Ix[cN#W{#iA&QeE9 MX|''0UdN!0 /HD  # =hj0T h]]9 #]AU@}%?@R$,?@6#V?@c_3֡w?P6 u` ?u#t  3zM%t3ws%.<%H._'B> #PJU2N贁Nw[?@ʐL+&A@wbu](i+bk)%+&p%#4">9"<5!?& ?M#bbb͓z$ p&"/%T%#L1L15 w`?Co yrigTt (c)02`090M{0cy0oKss0f2r1r 1a0is0n.0 Al0 y8s2e0ey0v0d0"E1E(]I4M-%#X3 X7&l*>(UhE j1#$Ac!J`%#@5e$_F??!foA3nBM( V?@J-RHQ??@S!R?P| llHL6VLD5E+v;*AʙH: 8snP%$? k?Q? \?f4_!_t_Wr5_! R,U3OC@IL?@4~Kz?P)Oy޾ T!]]>#IAU@܋?@2Oa>?@#r`5B?@*ݷ?P6 t`  >B?\oEt# ŖoZu 0Nu;Y:|8>$# JpU>##<?2& ?5bbbz@b#ANi&bu$'h 2N贁N[2$@ LX"D&v(&m$ :;T'm"*B#d1d15 5`?Co yrigTt (c)020090M0c0os0f21r 1a0i0n.0 Al0 8s2e0e0v0d0"]1"a4M-/p3 p72&l>0>Uhh= 1#!eJ`#&@NTM\jh1B,RBM(!JoUy{O_ e@ So4(DF^Tw?@]֝ä ?Nk"?w_KT\T+\(Kj?ӷjmlhj -`\TPQE\Uu?i,St_o u~!XEO9= T?@L;uQ_Pm"rA @3sjQ1lğ= GoYniAlePE9 MX'w'0UrJ^N!M$|A vzHD  # =hj4>T!]]>#IAU@܋?@j?@2r`5B?@^ݷ?P6 t`  >B?\oEt# 6ΠZu 0Nu;Y~:#&}>0m8>  PJU2N贁Nwk?@ eL&A( 5bM(b[)h+h+$h&#[-M$#?& ?b$Z*'*B#O1O15 5`?CopyrigTt (c)02U0090M~0c|0osv0f2u1rx01a0iv0n}.0 Al0U |8s2e0e|05v0d0"H1P"L4M-/[3 [7&l>0>Uhh= m1#!S!J`#*&@PUy{_?NTMjC1gc RVMʣ(D#F ![?@"$. ?Nk"?+IKTLTcKjRlhj p= (*!)i,SO2Kes9T;QEGUFw6qX}__TM7fTZT\Dž}I_P^52O,ES"rA 0S# Es3iAlePE9 MX$Gxw'0UrJIN!4gA xvzHD  # =hj4>T!]]>#!AU@܋?@c_v?@#r`5B?@*ݷ?P6 t`  >B?\oEt# ap'EZu 0Nu;Y:|$># BJpU>#͙;? & ?5bbbz@}bAA& K&@ 2zGzt?"K@ L0"&N(bM)+TK/8Z*B<1<15 5`?CoyrigTt (c)s02009s0Mk0ci0osc0fq2b1r1aq0ic0n.s0 Al0 i8s2e0ei0v0d0b"5194M-t/H3 H7T &l>(>UhE=3Z1#E!J!@ENTMjN@1h(NoUy{OO e@ o)4(DF^Tw?@]֝ ?Nk_"?'_KD3\T+\(Kjjmlhj P\DiAlesI(=MXsG_'0Uzb6N-!%$0 sFEjHD  # =hj8>T! ]]>#!AU@܋?@*?@#r`5BW?@w?P6 t`  >B? \Et#տ|u l4RQu?]>I$>I# JpU>͙#<?& ?9bbbz@b#AE&bQ$$D 2zG[zt#@ L4"&R(^&I$Q)+]'I"^*Bh{.M#To1o15 9`?CoyrigTtk(c)k2009kM0c0os0f21r1a0i0n.k Al0 8s2e0e0v@d0f"h1l4M-:?{3 %{7&l>(>UhE= `51#I!J49fAn^ R)X f"B!Jui,SG?RSlOS u~!N]8-19= T?@L;uQ ?Nk"?YVTQRXQOnğ/=i n (\ wTiAaePE9 MXLg'0UbZiN!)$0 Lf`jUGD # hz8T YYT#BqU@5?@`0 ?@ t2?@?P} ։u`h?u# Lv3<@PT=d,2<<Pddt m۶YtjfUh!NUdI,@=#B!!u+`?CopyrigP}tg(c)gW20 9gM ]c os f"R!r 1a i n.g AUl0 (s#2e e v50d0+"!$4#bB-m)|# '?h==$&$#66 2j4$#=#0UB%3#3&50$^ #Q9 =#HAQ5D<KE%DdGg*Fj#aOb'*TATA4"1(3&Sa4% `2HAEBOiSHdiSi^PQ5 3FXm'.W'DŜ6-!40 VZUHLuD" # I>h(J TEI 3MU@jZ?@({~+?P >uA` ?u#jJ* )8* 9LGA )`G#dtG.$*G8BVj~>t  e t>"z "p{b+#7"J>U2zGwz?@9 S#>c&A@b(b)+,&" !$5N]#2T#k"6 "M"b)HF;'","/]#11[#`?CopyrigXt dc)020090M0c.0os0f21r0Aa0i0n.0 Al+@ 8s/Be@ej0vA@d#@K"ulJ Ul,aAaAC 5LU(#!Q(r!wW?@s80&9<01# 0IK A# ѥ,Og NEx]SiL5[ML&X39^PzQQ_c_ ?%YAQ)UEEU . K ;;\W)U I@)$_[.F&XA:jai%?@ 6?wL^ W-\/&T5Dꤲ8?Eg@SA?@ @ ?Nk"?I5`bmMohiy[7 K=F  %?j1&XIOD?@u@rLu7j T_ʹhLi,KV@8$Ȯ?@1x}b} yy_@){yEZJ]%8O@G \t;8j|c1}p?i @'WE"NO_T ZYAAekBp OOLJ}u?@9 mO"9=\/hQeel.%-+@mlփ?@U> "8?ɽ7yf\tOfj|A=$䚏Bp$za3ex@4Sa!6Wy'eU!a)#kq&ziM2i?IT%!Xh<'0Ub6502 ?}HD # =hj0>T h]]9 !AU@+3]q?@8i?@.!'?@\S۳r?P6 t`  C=?t#9sxZlRJ)u duo$>  J JU?'N<?& ?AbA@bNbbz87 5#,"b4$,"'b4$2zG7z?@L&5/G/Y 3%,"j&d,,"Rj*/1/15 `?CopyrigTt (c)f02`09f0M^0c\0osV0fd2U1rX01ad0iV0n.f0 Al0 \8s2e0e\0v0d0r"(1E],4Mb-;3 ;7&loUh#7 M1D hp  o%J F( dj!1B2 bdV.RiAbE9 MX|GW'0UR)N!!$a VZHD: # =h4>TB#]]9 TIAU@1q?@!9?@aww'?@տԌU?P6 t`  9F׿=?t ڰ#slgW ª%?)Zu Lhu!s8hAh hJU'N!?2& ?AbA@bNbbzc a#X"b`$X"b`$#2N贁Nk? "@L&a/s/ _%X"&,X"*T#[1[15 `?CopyrigTt (c)020090M0c.0os0f21r01a0i0n.0 Al0 8s2e0ej0v0d0"T1X4M!EQ#-0Og3 g72&l*>0>U#3 A y1vXD #p %J`#@.T'oo>hn56>fcRM(! Zך4_F_ b/OSϏHT >ɪ#f:?@*S)Y=> yy_@YjeeRT;Gq!Qh~n~OkzEMsZJPl -iU@SQEU"pL._qw;m;aU_ BnhX#rA 0X"IsTj߿kHhl!Qdok!(Npd 0Ale E9 MXXGB'W0U*}N!M$)Aj5 vzHD: # =h4>TB#]]9 BIAU@b?@;h?@ ?@F_a4w?P6 t`  /?t {/_  g?xRJu hu!s8&> JtU2]q ?=@ʐL&A@5b]M(b[)h+Ih&[#$"#?& ?AS/t)T#115 `?CopyrigTt (c)O020[09O0MG0c.E0os?0fM2>1rA0z1a i?0n.O0 Al0 E8s2em0ejE0v0d0"@14M#B-,?$3 $7&l>0>U#3 CE761$!; #p _%J*!ԌSU hneNw3󛍩(D#2q>@t|M?@a^!v:1 yy_@I56>[ŀQhnO:@K0hd7l aV@S8E8Vؚ㱫L{_pZ5X50U-0f:?@D?cHe-1>[W9k]geϺQ Y" KaĘ\Bqj]GRׂP_FR}LY5E:/U=uOqsR Y2JZ8 b G0Ale59 MXGB'0Ur:N!R$XA'5 vz_Hp>,ÿ;s ZH(GBF@# @EOB-~d]@}+VR[sG@bhR R RR(RXR|F֛ؒRRX!5R&R*RN.R16A)5NDw8HF*;T9I~@8LICKOfGUFD  h$^T YYBBUF\.?x<F BP(?43^P? Vs V6gH?R\d ?8EB G 09gB`.Cloud,netwrskcaUins t,pa !i sa ! %e^ M%J 1Gg YR 1H?_^p Qwwx0w x3wxwx0wxwww xQww ww0wp wwwwwwwz pww/ p7^LDrag thuesapWonodwipe.b~߿~?? XAP7d??O\.ߗr3r\.CUG DF P# h @T(PYYUEUF\.?~?F~׻?P} <Y ^.B" N'O'*Q'R'S'T' *^ Y&Y u` ? "s'_":s"Ds"Ns"Xs"bs"ls"vs"s"s"s"s"'&&:&D"uN)*2<7)VU2^L[b1j2 ^`s" H3z3'N‚??lF ?ma[Z<` Ac@entColn@r3z[_b[[bNbbzI1dq9E 8AЇEO 24bYP{[`:BeR&nVB#32Q?]q ؂3Q8A*W1`Vis_MRXY%cPm!P5`12`݉`?Ap]y@igPt?Pu(@)?P20L`U9?PMPc@o`'of>bAr2`AUa@i@n% ?PA@l?P7gsbe*`e@v@d%Bd455uO#4[%B+@q~9p?@IBp7u@usPRD"J-D"t=2u0`B-1D"֝ruL &@BGm3ry=_"n4O N)9u`u `"AA b1O$u`B, ^aepcT<@o?Pm@sĴ@a>5SRTJAn@e@?aT]N@twBk?PD@vVbe)EяFE*UM_q|U۟e"4Fpd(aC l &&2::)BDD BRXX|bb2llbvv TNA5 rT&_Qj~}8pK!bdzӲ=`pM0 : D N X b l v%‡'_"D_"N_"X_"b_"l_"v%™2:2D2N2X2b2Hl2v2BS&2NC󨕃FkZV?F'IOғp~կˍW 2r033(FE9<QߐlzBO$ߪ߼߮(U9|>}>MR,AZl~(|9x uSV!+=  (UǎoC  (ָe.rMi>3LÔ  eD2(dv  Q!Uh!%5QU}4< ?VV$`fBh}Ȳ7O!<?F/*Ȳ/2sU~1p%)E+D>L?/Q<,6FE%mEB?T?f411%U\+:-yO?H1BdhPUifb}WSȊOt6XQ4X @ pp` k*`n`RPn`dxQdЯd79@#AUUiB+T.(T;)dH*d db$"Tt ,@AaiE)khp:j%56_:9c&ЩD3s͵NSY2a)k8la)k(8l|)k 8hm8_ZI۩Qy`Uee8^6JVAAD @^R` WShpCꥁs!`L ctsPzTq`ss wTyr"^RS` pu EqC#5#s SzbCRsqozA`BiEOO\_xX#Nsqe'2q[[!c0_ZˑU#|7t:}#/'_x # fHavU# 1H !eU iEQ % UH duD " # J U> hzi@T(iiJ\ UF~?F~?tP @Yu`?(.8uBbSA{szat? Cteb"0#$YE['?a&?.tb'|z酱2Q?AG}$&}qam{c8`Con0ect0rz 1l2z{{+` Li2?15-tzYaU#F131 ?WPa0t0r0)4;1Z7}`T5M151?UR0u0dB2g6Rz8%"Q-!c_C~#J *$&#FH-B;"2MC &BS{%ZMCQ-!dgG 1`?1py0i@h0 c)20RP9MB0c0os0fDDR1r8P11i2]. AL0lJ=WsRedP1v0dP]@>ֵDCz\MC2qP?_f[!?\.? ~:o -D~% IKMC&&UgyQh @ 1_`S0aP2BiEfoxoyXMGw'0cia&!|$0 vjlAUEu P-QyB:MCz?bkp Tbb-.(},8>8dup*ar%@68K]ou ÏՏ ?|>R9=PbtuYȟڟ x<w(LA7BUgyu]ͯ߯"}>%7GZl~uAҿ '%OHL_qσϧϠue kZV?F'IOғ %NMQdvߚ߬ߠui+.Q7Vi{Q"QucwHD: # h8>T ]]9 M UF~?F~?JP6 7@ZAAM ,'@' T'h'|']"' ' "  " '""'"'0"`''JuM`l? 'y""y"6y"Jy"^y"ry"y"y"y"y"y"y"y",y"&,y":/L/^"uh)!b_A@36Jte! i(Bt1 LJFb4D"FEB>fCJ[oC'N(?F ?"b96BhE#fCtoC2Q͞C@MEMJ3V8E@8;G2JoCQuAuA5 `B`?CopyrigTtk(c])k20 `9kuMPcPosPIfRQrP+aa+PiPn.k WAlF` XsJbUe`ePv\`d>`PoCQ! \l-OS WFfEP b$U9 fuXG_'0UHrũFZ!D0 fzlJ\>Uhqq]!!0!PQAcHQ@1S?Fȓ$,_q?^"d#e4Eq ^"3d]q 0!0"/"Q!0"fBJ4?F;W?FjlJ?FH E(>?NpKv7atuXad#hX\a3g6a0e!2 4#q E6?Fv9?Fb4!?FЩԏ挍maVv]2:{(?-yjI>P!Xj?FT꞊j?F'K?F;(嗟éT.kvd*ĮVq#(]HXEAr ?FK(umB)?F.~rYYH_amAáF+x(~*=į֯uhY*?FY.(v0zkd)D6GdSZpB{(i]"/M͐?Fߧ78ET+Lk ]D am++Tz&{+69[Ϟuf?FP$?F [13nٶ7gۣ挠Y,Idkim0H@eQY"ߤİuӧ?Fl?|f ͲKlKBG]fkϐߵAZV?F:?F* ?P$ 1EK3 3i{߮Gz~}Ԗ0>_NO5q :_" s3t? ט P&d2g? 41z3B2_qr5E~\.儐?FQ( BP >5 w pmD0VY l j٩ 3 UIPY?F3>Dx?Ptk= `K0z߂3S0kg; z0f=kVN?PX#Z3d1H-Z?F)$F\;X})挗J hG~W*fU4~%?FVFKL/GaH)r~(H  N/?t4ZA rGg?F4W eſ?FH?Ýi`)6¿l#kpc'??4FF\>FI(1 O怘Rrq SCH>t v|RuONHD: # h8>T ]]9 M UFx<?FAj?F~?FwQuu?P6 7@FA]A]M ],'@' T'h'|']"' ' "' ' " '""'"'0"JuM`^l? 'e""e"6e"Je"^e"re"e"e"e"e"e"e"e",e"&,e":/KuT)!bA@*36JtQ! 2l] 2t12zG57RQ57)\(1>RJCJ[SC'N'(?F ?^"b'96BtSC2B??088r0MICJF8;;G2J2SC@?JE=26S0#CSCQYAYA5 `2`?CopyrigTtk(c)k20 `9kMPc.PosPfRQrP)aa@iPn.k AlD` XsHbe`ePvZ`d<`P񾔝mT!l-pHS %WF{Vi AbdU9 {YXpG'0UFrōF!D0 fzl*J\>Uhqq!!0!QsAGHQCf֩?F1Qd?J"P#Oe4E] J"3d]] b0!\0"/",&JBJ2(B@?F,/k?F]?F8{# \*?LpKv7_tuX_P#_hX\_3?g6a0Q!2 4#?DEh?F~E ?F_pLVwMҏ䌍m_Vv]$A2:{&-yjI-H+ŕ' YbҖ.K?uAc9z^̰f5U?FF/`_`P \!b@ir_f|Ƣn y(Tf>rpd6ENj/-g?FRr?Fn^\K0z߀3S0k~mr{~.*{ S4K" =b™? C? "@wD#<2tr5EOK4n?F{׀?FBi䌗J hGW*fUÝ)k4Il RuF?FB5r?Fn?$Xp ?G'gH᷷?r~.H  N//4;KGۨI} yFa%?FO"Z/g`)l#&Ƚkpc%//2DF7?d>FM?MRrq LS3H>{v|R؇?>HD: # h8>T ]]9 M UF`0 ?F M  ,'@' T'h'|'] ' ' "' ' " '""'"'0"JuM`^l? 'e""e"6e"Je"^e"re"e"e"e"e"e"e"e",e"&,e":/KuT)!bA@*36JtQ!  \(\] 2t12 _p= 57]@ף57%)2] >JCJ[SC'N'?(?F ?"b'96BtSC2Q?0G88r0MICQJF8;;G2J2SC@?JE=Z26S0#RCSCQYAYA5 `2`?CopyrigTtk(wc)k20 `9kMPcPo%sPfRQrP)aua@iPn.k_ AlD` XUsHbe`ePvZ`d<`PRmT!l-pHS W$F{Vi bdU9 {YXpG'0UFrōF!D0R fzlJ\>Uhqq]!!0!QsAGHQ'n-?F1Qd?J"P#e4E] J"3d]] 0!0"/",&JBJ2G2,?F,/k?F}X?F8{# < ?LpKv7_tuX_P#hX\_3g6a0Q!2 4#?DEU: Z[?F~E ɀ;9C5 ?F?wMҏm_Vv]2:{&-yjIAim.H@eQW °A{?FH 6I_^ d ͲKlK~BG]fkߵy X0?Fjd?F*OzE=M2'-H+ŕ' YbҖ.KuAc!N\?FZf5U?FO/(Sÿ?P? \!b@ir_f|Ƣn? y(Tf>rp^N/-ُg?F6+:n^ºK0z߀3S0kmr{.*{ S4K" =b ? _C? @wD#<2:r5E1f.]n룠?FF[PBi䌗J ~hG~W*fU)k4R9uRuFpZ?Fn$Xp G'gHr~.H  N//4[/I} KKbv"Z/Ýg`)l#&Ƚkp!c%//2DF %>FM?MRrq kLS3H>{v|R?>HD H# h @>T(]]9 MT  UF|>?Fd2L&??FVR?P6 @ZfA]A] >M /]8HC8\C 8pC8C8C8C8C||C 5C 8" 5"C5$""C58"C5L"JuM` ?  "4'C"R"f"z""""""",",".,"B,"V/Kup)8!bSA_36Jtm! q$y BYt1B5A!EM!E*G[~By >zCJ[C'N'(?F ?7"b'96tC2Q??088r_HEyCJV8;Q;G2JB2C@?zE= BFS_#CCF~F$u?FNR?F~Sߪe f"l#ͽU>aſf"J3RRy f"l#>b@Ed3̀ͅap`L!  f$#p)bq65q p)CaAA5 `%B`?CopyrigTt@(c)@20:p9@M&pc$poKspf,rqr pYqaPipn.@ Altp $xsxreLpe$pv"pdlppT$!q$-Hc gFV$VibE9 YXG{'0>bUŽF!D0 UilJ"\>Uh"" !$!8!L!q'ArwHqI}^?Fwo?0je4EZeLdd?]e\DL"K""L"zBJT" Y?F]?Fo?F5? Ѭ:?1ipKv7tuXZlhX\Zexdg6gJ0m!2 4?#oD Um?Fڼt?Fɤ_i?F0>m* 9?F?eD;]D m++Zl?Tz&{si?69Vu9,"f?FXev!Jx W?F8+y٨HZ ͲKlK~ZlBG]Lfk&8}H ?F$j #?F?B?FH+g'Zl Yb*xdKuAc>j ?F-}JӦ?Fզ.ki]7aB< x!Gi@ir_Zlf|Ƣ y($M-wF ?d2huON{v|RONqNwHD: # h0>Th]]9 MP UF~?F~_?P6 dnA >IM .)B) V)]j ~   ) )) ) ) ")")2"e)~)JuM` ?E){"${"8{"L{"`{"t{"{"{"{"{"{"{",{",{"(,{"JU2Q?@M?CJOFA@!@HbʏIKFrB !RDJICB'?Vp BABbI2[GrBLrBOB-ICR SC9 _VICQQW;HB`?CopyrigTt (c)=`2`09=`M5`c3`os-`f;b,ar/`haa;`i-`n.=` Al` 3hsbe[`e3`v`d{`Pi @bU9 VHXWXA'2qpVtUIa fjlJ Q\>UhQQ]~ !!2!DEQ!=H^A@1S?FO$,q(P`"3 e4Es `"C ?]s Jt{Z rGg?F;mx>F9h E(>?NÝ*`)*f#퐲>+3cݛs a0g!2 4#@ES~%?FV?F4W eſ?F}G*H᷷Ļl#*لȽkpcXSH?F-Z?FF?FPL߯@J *⁈hGr~لH  NᵪS UI?FY?F섰a?F@\ K0z~**3S0k~Ä&~ԉ~$ARm}A\.?F:?F3?FDٳx?P+k= 1`竪3*{Gzޟg; z?ԉf=ks :a" F f 94FQ2! 3B2:9rt5EG~[ZVn-C4?F4?Pu>5 Οw ð}H 1唜2fi0ƱVX 23@0Bk{̒[mY*?Fuӧ?F?F* ?P% t1EC6G*ͲKlK~}>NO5 RԋS2Z#@cukǜ{̦Ouf~$l?F|ƯY,*kBG]fk0BO"/M͐ŧ78E [13nٶ7g"]D *m++仌imIلH@eQOY.(vT+Lɇk h!˿S컌Tz&{u69Rd~OEAr K(F0z?Fkd?YH_2mA B{لi]I'p1OjT꞊j?FmB)k.~rkéT.kܶĮ~+x~ل~*=u1O6?Fv9m'K;(-/m*Vv]BÄVq#ޔ]H//rP;W?Fb]/?F?J/pKv7*tuX滌 &ה`Ypl?GuSFjlJ?FH?#5~hX\~ g61!O3K_H8>X"s D')K'g F𘱼L1#"NXB ~uO<|d o@+@«oMsGP P(Y"ؼ^tIhIXqOz":UFDf h-TYYU?~@x]@L'} V6lX-1u. Bj2u2Z2j2#u9r#ULH/MZ1+B#AD5 60`Vis_SE.cTm!#20AD%`;Copy<0wigTt ?DU1f@M)@c<0o+@'ofdBUArX@AUad@iV@n3@ f@WAl@ \HsBUe+@e<0v@d3@J@=## A G?9#"n"Ea&444 70#AHB53_lj#SV6U8l>(UhnE / J$&9"(Fn_g5Fe#pheo'r#T X!! Jc0xo)vR2'"U7A%O3W_7rr5-6 `F2 Vrqu\@|Q:0b)`R@As)@E %T@xd@Di  ei=G]U6Tg'0"q)V!DHAn 6SWaH>w* O`EW )F)#-Ώ7B (edjo@/PUFD  h(^TYYB UF\.?x<F BP(?P?Xv B6u6  T^ThWZTTȅHBU?? ?B@L&d2?J-[(m(K.sU!&/")ҍx;(  0KB` Bridge,n&0two0k(0p&01pP=1al(0d&0v 0c@&0 [1^P| ( G&e WPW"*U---?-. wwwowwwp~wwp!wxxp}wwhd:lww w pvw>ÿ@qZ@E?DFp6@rR$Sn0!u@`i-FAD"BRuL @GCD$]QO(gR_"|i& 4O N)9u`u `"[bO$]u`J425)3Ga171`Vis_PRXYcPm!#5n`46B.R`?CopWyrn`gPt@u(~`)@20`U9@Mn`c`op`'ofbar`aUa`i`n @WAl` hsbUep`e`v pdR13d45*8=363@tFF B4B#30UrC]Vw,7%$T!nLPLsT<`o@m`s`q>g d(aq;_=@TATA2hhbB)3*̈́b+ڄ8bq q200Dr81@a6s2+66u\L %BWQ(A.A[2BB]P@RbESTO$@6r23| e|8e5=_4&F3s͵NSYFețG@DugQ̗,@Ga cupgbE@*28ABTOopD"%J-.RRO(R$[3VÁ`R pasn`e T px``B| 0Ls'_"x#PG $UJ"bk B3U2brZTCfRr ïը8=vv_<H!U"D"=m0!D0!g!@2ÅbBЅ3/xԂb08beaea22Dr3 AAE|66v7 |8Ԑ`b-A-A;hr#zr{qV W!rA8T@GaKk ]]P@` USPa`e`lLsaQi` E0u n`p`e`TbEXew` —T``8` D pvbT3^r` MSb Bbd`5ed;YRmM`nf`c"`u r88eQTAPbd Nm@Te@h=O! P`rxAx8eb`m +sbeXsuĨ9KuAe;S`uJB Sri`a /TTh//A/L`ch{/Ҡ///Blpi`[/@?#?FR`oS?a??uNwbkl"aXb`K?[It`adp s*OT]]9 M JU@x2zGz?@MJA@eb#z(b),+,&J[(.?& I?A$./O%B!!5 g`?CopyrigTtZ(c)Z2009ZM 0c 0os0f21r0>1a0i0n.Z AlY0 8s]2e10e 0vo0dQ0!$$-# '&%?6iie59 6X7'K0UpBŁ&!$K0 'F;JlJAh h7!1!Z@vnǣ f, <AA#  IRvVJ:'BP(?OS spBlU^TURUEUr\.G\ZY?PuPիQ,5U҄Q[pB.aYU520_BU"rA 5#cHD: # h4>T]]9 M JU@1&d2?@Vj?@҄BP(P6 ]AJuM` ?ju#t  k]It=W(\ZIRUIl">2zGzw?@MJAw@eb #zb](b%)2+)2&J[/.w?& ?A$T4/U%B!!5 g`?CopyrigTt (c)020%090M0c0os 0f21r 0D1a0i 0n.0 Al_0 8sc2e70e0vu0dW0!$-# e'& ?6iie59 6X7{'0UŇ&!$0R -FAJlJ8>UhAA 11!T2 $S<cV{ WR~VJd2L&?@ubX,X ]S fR#mS [ÐڱQE^Fh4__ K&oeX5:f'l6 XYePY?ۭsHMQ5aZjoohY}aUVeEVx_;"rA #dsHD: # h4>T]]9 M JU@|BP(?@h4WFP6 v>JuM` ?)uJt  U]It=W{GzUIR]I%l#>m2zw?3S@MJA@eb #z.b( (2+2&J[ (p"?& I?A$ 4/U%B!!5 g`?CopyrigTt (c)020%090M0c0oKs 0f21r 0D1a0i 0n.0 Al_0 8sc2e70e0vu0dW0!$-X# '&?6iie59 6X73'0]UŇ&!$0 -FAJlJ8>Uh 1Z1!Z@o.rɩ  <uCB] WRVJ@ ?@bx ]S ؒQ#hY))QE^jϵZ__ CaX5a9XYePXRmScRU5:]mxc_PU"]rA #dsHD: H ih(>T9 M3JU@xJuM` ^?5ulbSD_Jt bstE>2zGz;?@MJA@u+b+&K !JS"j& 1"A.b+-,-/*B!!5 `?CopyrwigTt `wc)5020A0950M-0c+0o%s%0f32$1r'0`1ua30i%0n.50_ Al{0 +8Us2eS0e+0v0ds0ib =L!XY'0U Bj&%0 :lJ Uh*M[A[A 9A Z1:'BP(?X Y s BQi@JSv?@bX, IYwYQ!i )\(!!U31^Fh4I_[_ p= ףuXEfl6 TbYHuX _Vgj_aZ(oQ !UAI҄AK B\%QAI@h4GFHlQbY{uXAo ].Oroa_(miY"@ _?@-BQȠ\ p_\oR\uXAppD`Zsƌ uXEOO_\HD: H h0>Th]]9 M JU@$?@-#?@%G֖g?@q;Ƙ?P6  n>JuM{` ?5 uJt  -|ߥ_Et9S8-zENسא\Eh)Fx%[v>2N_Nk?<@MJA@cb]b)++&J"< u) ?AHb$z@J+%/F%B!!5 c`?CopyrigTt (c)302`0930M+0c)0oKs#0f12"1r%0^1a10i#0n.30 Aly0 )8s}2eQ0e)0v0dq0!(Y$-3 7x&+0b59 6X7G'K0UhBx&!$Ia F3JlJ]Uhz11Z@S3   8gF/_ M ARnVJ!49BYOPBRWSMRUE:]|`X?\QRYl>Q5U/V@_YQĈU2(_:UrA cHD: H h0>Th]]9 M JU@!\?@JI?@8HL?@VG?P6  n>JuM{` ?5 uJt  4 ^sEt9SPDEN׈]Ehoþ>2N_Nk?<@MJA@cb]b)++&Jޱ< u) Y?AHb$z@+%/F%*B!!5 c`?CopyrigTt _(c)302`W0930M+0c)0os#0f12"1r%0^1a10i#0n}.30 Aly0U )8s}2eQ0e)05v0dq0!PY$-,3 7x&+0b59 6X7G'0UhBx&!$a F3JlJ]Uhz1h1Z@Pg   8gF__  ARnVBJ49BYOPBRWSMRUE:]?{^{?\QRYl>Q5U/V@_YQU2(_:UrA cHD: H h0>Th]]9 M JU@F5x3?@5yF_?@%G֖g?@q;Ƙ?P6 n>JuM{` ?5 uJt  a8~4Et9SuEJENسא\Eh)Fx%[v>2N_Nk?<@MJA@cb]b)++&J:3f< u) ?AHbʣ$z@bb3?bfb)$%/F%BB115 c`?CopyrigTt (cu)>02`09>0uM60c40os.0If<2-1r00i1a<0i.0n.>0 WAl0 48s2Ue\0e40v0d|01Y4Ť-3 7x&60b59 FX|7*G'0UsB)x&!$aI *F>JlJ]Uhz%11Z@S݆ f  8gF_  LR)yVJ49MYZPMRbSXRUE:]|`XJ\Q]Yl>Q5U:VK_YQU23_EUrA cHD: H h0>Th]]9 M JU@ ~?@gŬs7.?@%G֖g?@q;Ƙ?P6 n>JuM{` ?5 uJt  YoDt9~S-/ENس\Eh)Fx%'[v>2N贁Nk?<@MJA@bb)+R+&J"< u) ?AHb$z@J+%/F%B!!5 c`?CopyrigTt (c)302`0930M+0c)0oKs#0f12"1r%0^1a10i#0n.30 Aly0 )8s}2eQ0e)0v0dq0!(Y$-3 7x&+0b59 6X7G'K0UhBx&!$Ia F3JlJ]Uhz11Z@S3   8gF/_ E ARRrRJ!49BYOPBRWSMRUE:]|`X?\QRYl>Q5U/V@_YQĈU2(_:UrA cHD: H h0>Th]]9 M JU@ ôOS?@S !p?@%G֖g?@q;Ƙ?]P6 nAJuM{` ?4 uJt  M:AEt9SENسא\Eh)Fx%[v>2N_Nk?<@MJA@cb]b)++&J~"< u) Y?AHb$z@+%/F%*B!!5 c`?CopyrigTt _(c)302`W0930M+0c)0os#0f12"1r%0^1a10i#0n}.30 Aly0U )8s}2eQ0e)05v0dq0!PY$-,3 7x&+0b59 6X7G'0UhBx&!$a F3JlJ]Uhz1h1Z@Sg݆   8gF_AR M ARnVJ!49BYOPBRWSMRUE:]|`X?\QRYl>Q5U/V@_YQĈU2(_:UrA cHD: H h0>Th]]9 M JU@]C}?@8?@%G֖g?@q;Ƙ?P6 n>JuM{` ?5 uJt  [J}$Et9S=d ENسא\Eh)Fx%[v>2N_Nk?<@MJA@cb]b)++&J"< u) ?AHb$z@J+%/F%B!!5 c`?CopyrigTt (c)302`0930M+0c)0oKs#0f12"1r%0^1a10i#0n.30 Aly0 )8s}2eQ0e)0v0dq0!(Y$-3 7x&+0b59 6X7G'K0UhBx&!$Ia F3JlJ]Uhz11Z@S3   8gF/_ M ARnVJ!49BYOPBRWSMRUE:]|`X?\QRYl>Q5U/V@_YQĈU2(_:UrA cHD: H h0>Th]]9 M JU@Y ?@fJ7%G֖g?@q;u?P6 >JuM` ^?M uJt  (N7Et9Sp%6ENس\Eh)Fx%'[v>2N贁Nk?<@MJAw@cbWb)++&J:3f< u) ?AHb$z@bb3bOfb)$%/F%B115 c`?CopyrigTt (c)>0]2`09>0M60]c40os.0f<2R-1r00i1a<0i.0n.>0 AUl0 48s2e\0e40v0d|0@1Y4-3 7 x&60b5(9 FX7*G_'0UsBx&J!$a *F>JlJ]Uhz%11劵Z@S݆ Y  8gF_i  LRyV J49MYZPMRbSXRUE:]|`XJ\Q]Yl>Q5U:V K_YQU23_EUvrA cHD: H h0>Th]]9 M JU@$䣹?@R?@%G֖g?@q;Ƙ?P6 n>JuM{` ?5 uJt  >b3Et9SWENسא\Eh)Fx%[v>2N_Nk?<@MJA@cb]b)++&J~"< u) Y?AHb$z@+%/F%*B!!5 c`?CopyrigTt _(c)302`W0930M+0c)0os#0f12"1r%0^1a10i#0n}.30 Aly0U )8s}2eQ0e)05v0dq0!PY$-,3 7x&+0b59 6X7G'0UhBx&!$a F3JlJ]Uhz1h1Z@Sg݆   8gF__  ARnVBJ49BYOPBRWSMRUE:]?|`X?\QRYl>Q5U/V@_YQU2(_:UrA cHD: H h0>Th]]9 M JU@֤M?@ yo?@%G֖g?@q;Ƙ?P6 n>JuM{` ?5 uJt  ߸ Et9S)hBDNس\Eh)FxO%[v>2N/Nk?<@MJA@cbb)+R+&J:3f< u) f?AHb$z@bb3bfb)$T%/F%B115 c`?CopyrigTt (c)>02`09>0M60c40os.0f<2-1r00i1a<0i.0n.>0 Al0 48s2e\0e40v0d|01Y4b-3 7Ax&60bP59 FX7*G'0UsBŔx&!$a $*F>JlJ]Uhz@%11Z@?S݆   8gF_  LRyVJ49MYZPMRbSXRUE:]|`XJ\Q]Yl>Q5U:V@K_YQU23_EUrA cHD: # h4>T]]9 M JU@xJuM` ?uJt ASt=WJRb~li>t2U?=@MA@+b + &J[N#a?a& ?A)BB!!5 g`?CopyrigT}tZ(c)ZW20 9ZM ]c os f"R!r 1ai n.Z AUl90 (s=2e0e vO0d10!$ę-# 'a&?6iiek59 Կ6X7'0Ŵa&!|$0 FJlJ UhqMAA ])A !4Ja-'Z@h4FӃ f <{Gz#A OR|VJ:6]].rM__Z)\("UEC@ ?@-bȃ S 1 `#`YR\Xk5^jZso!o ̌aX5U'BOP(?gks#dT[RUUSv?@n aX,flYwq%lSXn?Fh4  p= ףXAYfl6\`YHzmPXAV``ʼ_Z(QYAY҄agklQbE26_HU"rA _H<>gI+s nsMg@q3JFAە#"b7OB H-~d"w@+_htKs}GBd'fHKxM\ONTȳH$ȸ׶$x $"$$8'Ȑh)UFD  h(^TYYBBUF\.ߗ?x<F BP(?hP?XV 55r55 Jbggah5Zg\ȅH?8?f)B@L&d2U?$-5(G(%.sUm!k&/|(  0O~B`"EtPern t],4wo k0p"i0#al*0d v0c 91^| ( 5G&u  * AAS ~pni'TDrag onut he]pe,nUdu /p64lies9Lt]wrkcQm tOfTly lGo_"imdO.bL&d2~?K?=tp'I??C\.r3?r\.CUG D  # h L^T4YY  BUF\.?@L&d2?@~?PYU^f6.NGOGPGQGRGSGTG\G]G^G_G`GaGbGcGdGeGfGgGQJiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGyGzG{G|G}G~GGGGGGGGGGGGGGGGGGGGG736363u` o?%$7G-7B<7BF_G#BP7BZ7Bd7Bn7Bx7B7B7B7B7B7B7B7B7B7B7B7B7B7B"7B"7B"7B""7B,"7B6"7B@"7BJ"7BT"7B^"7Bh"7Br"7B|"7B"7B"7B"7B"7B"7B"7B"7B"7B"7B"7B"7B"7B"7B27B27B27B&27B027B:27BD27BN27BX27Bb27Bl27Bv27B27B27B27B27B27BH27B26g6U6666MBuIU$FrL|Lw&1~rW]@Es  ^7B( ( ~s!v̨ q?@h!;p`:1P IFPr,s~rD1''@A3{:18E9 'N( d?pxh` Acn CS lS r3!ۦpڈ٦p1bbbz0q@!PZY<^pbbNbb™qb"b7+d||u@+@Q Q?@G}x^?@IH‘BMB6}Vu]`-qZBuFgw#/s;}#B(0t@I9u`u`"TYYbzFqDuK`EWAαq1W`V sPwXYEcPm!#528gX1`U?ԑp r gPt1()12U0B91M cq Eo{ o5ԑr] ua iS nE J1A5 l1-sUe{ eq vdE*E WN~`~u01 l2T'sFt5ӤӨὭ w?gߏBq&W,s^KVVTK~u5TԑnI e5TJ Nt uk1DvLN'9K]utc担c8E&cNI[mc}c濵c0BcewcFլcc晱6HZB_z\\Fq ////_ qR/d/v/_///\`//?c+?=?O?cn???@_???_? OO\VCOUOgO_OOO_qOOO__'_9_\\_n__\픱____ꌑ__o_3oEoWo^;t~ooob!ooo\폰,^#M_q\$\%@\%7I_'i{\(ԏ\!) \*>Pb\+\ϟ_,>@c]o_/ů\0 \ 2DV_2v\3Ͽ\ +=5K]oB\6Ϥ϶\7\8 2D\!9gyߋ\:߄\;<x?#5m`3ACTE5[ɳaj1,.tu[񼱼[[_[[([ [CZ==2ffyѭ";;N"""@#2WWj2d`e U@s` M;aiuf,pueQ` Eq0ipeith 'UPouoN:mb>Pb btq' P,r9! / u'EsorK"t=h;/M/$\l/~/A s}-.1 '7`1^/?!' S6"i,l 0?B?`>Th?z?X[Q'Lc,(?`K???B*"liigOP<XLHOZO' RoO_eZOCA8wa' BEp&$/qf`Y4$_8]Sra e\l,)1@#` fi!bty_l_~_W"` WTPQ@^2` Eh6"*lt\a4 l.c`_O|N(,TQw`#|`p/xo6_IPsAd<Told?o/S:bEd +sc*lAxTf;'qmBi tCv9 I[7!3oW='/) fsPt@$:PftMpCnp㏊gTˑ'fmuQ SF l!M_(|/@"ha  c%>UcAXE_`>Z ** [j$w1tt>,3K̗?nؑ`tQgctRm#ZC̗,@_Cc%SuK`rϔ? h!b M^b!bC%_5Ÿ(56c_t&YF3sNSYF??Eq! $U dkV@~?>? ijTMwu `b|tϔ?b+cU@L&d2FX ~u~ߐk7լj(ߎp.AɯD c0I.NO Pl$u1S>GAGAKaaX]8eԁԁrݡݡiaiaa lc/a/aQQAAIIA0,j=al$BAe"!A#Mwx!g%9!@QRQ@ϒ^^!:q"v}#rq01RQz3{| +}*~t36 /*&03!@2M3Z4x|Ut6񡊁7񡕋8񡌛O:񡎵q=>?R0i[8s]&?-ܑ-!lVőncb[r ]#d%+`[ ob Q'eu"$I7 | "#####!#2";#ԁ#ݡ#ia#o#|###/a#Q#A#I###a##A##%#x##L#Q#f#s###q#Q##########)#6CCCPC]C|CwCCCCCCCC`CC "&eR"eR2eR 2eR2eR 2eR*2eR2eR>2eRH2eRR2eR\2eRf2eRp2eRz2eR2eR2eR2eR2eR2eR2eR2eR2eR2eR2eR2eR2eR2eRBeRBeRBeR$BeR.BeR8BeRBBeRLBeRVBeR`BeRjBeRtBeR~BeRBeRBeRBeRBeRBeRBeRBeRBeRBeRBeRBeRBeRReR ReRReRReR(ReR2ReR2(ݤ>2&̶Pl~3+CkߏH2ݤH2&̶ 1CU4}XRoݤR& ̶ F!R8JݤR*&̶R(ݤR&̶TRݤR&̶Xj4!X/|/R//ݤR ̶/0/B/!?j/E?b\?n?ݤb*̶// ?1?3?O b%O7Oݤ b̶???xAO?ObO_ݤb̶yOOOAQ|_O_g__{b ̶B_T_f_ aEo_ioh|ooDr ̶'qo o 4aWo2iEW ̶oooq j Sւc ̶eďk׏&! !̶fx.il٨h ""ڡ2D 42{Vmi{1## Dn2Dk{$$ӯ寉Ŀ o 4D% 9%Rֿp،* &9&Se wVߟzqߟߨU'9'.@hCrVh(9(1 s1Xh) 9)!t!*1*9*"w ?zuy+9+#@RdCgvz(B"&,9,$ - /U0/wC/U/|8 26- 9-%!///x ??EH2*UF.9.&// /c1?/?y??XBV/L/'d?v??,AgO?OzOOXfRV0L0(-O?OQOA0_yOT_{g_y_h/bf1 \1)O__Q_B_o|0oBoixb*yv2\2*__ _ao oo}o 2rB3\3+oooPqo~ 4\4,QcuTxĘSԖ5 \5-,>fATf 6\6Gv: 謫/ /Vf7\7k/ПӯȮ/8\8k0u=xw9 \9k1>PbAϊeτxϊϱ@*:\:k2 + S.߅ASߨz ;\;3Ϙ߆ CS<\<4߽߫a߂ = \=5bt*ed*>\>6+= O.wRew-?\?7@.@g(w&@\@8  /08"@6A \A9N!////82* FB\B:O/a/ s/1R?/v???HQBFC\C;?*?s__ _;avo_ooo(xurvGGK>oPo@q?ocv>HɌH@)qQ,?QxIIdTtsTssSrU} @ `EtherntnrAnkssAs%t sΑϐΑor#r` %P&o]ptis ߢ``N `TWORKÐS{AEÐPOR2I `Q2 ia1ṃ'0Uyu1!1 0tbų)zw tر)1 ۲eʡ0(&100@w뷤H1wLĭGX+L_W8LWGEDrDC  @   !"#$%&'()*+,-./0123456789:;<=>?>A*BCheATe(eJ\U@L&d2?@0~{??@?PYmUU%.u`o?&UH&T"""u,)ct)! q-tm!ʇ"L5 .&b$&"} U}!Uɤa/ '19 b {V?`%2H6"\>3c6?c82\.?A?9[B>30/D?P?y A@lBw0uC񁠙A>9D@SVCA'1X7i`"`?CopyrigPt(Uc 09uM PcPosPIfRQrP=QaPiPn AUlXP Xs\Re0PePvnPd"Z,AuL-$cA2T%c3C#lBF{L u,G"aOCTOU_2sOU!OOOOO_"_4_F_SO*^x_b._o_p__ ooARodovoooo_j_oC.@+k@asx@j`D.mѐBǏُx!0BTfx"ja.ӟ7 -?Qgx:A̯ޯjbu._qxl jeB.k!xґ.@Rdvjf ".5  ;+=Oe>s8jg/s2)N@7/N?[/0p/K///Ns!//@ ??0?B?O/jht?B^?O?P?B[? OO1nsNO`OrOOOO?"jiO?bn_o'_g`<_R{]_o__~sj_____o_6j@or[ ioopo ooo s,>Pbtok !3!);Mc!s6!ȏڏ@q'"5 LYn"ɾ"s1 .@Mhmrײ#ԯ!#/#sQL^pnؿ=$%e:P$[mϕ$shaψ 4o>ߣY%@g~߶%%sq*@Kf:rp">N!/=(<(//-N(?HJ/\/n////Js/;BN)/O#?c@8?N[)Y?k?}?^)XfѰ????? OD?2jt38b/.J~8/2SN4a/x?/0/K4///N4X?$?6?H?Z?l?y/Z?R^5@?O?+POk5!O3OEO[n5mh.xOO@OOOO?j_ib~6-_DoQ_`f_B|{6___~6x__oo&o8oE_"`jor7oopo7oo'79DVhzoƚ5랁8]2H8Sew8ʑΏ,6Q9_và9˟ݟ91"4FXjDwʄ·:ů ܿ):1CY:k,Qv пݯڅg;+BOϏdz!;ϗϩϿ;a$6C^h<ߨ<%<7qBTfx 3=@=Qcu=^@**4O.>]tB+>.>8ġ 2DVhu :!<">?/'0KF /1/C/YL?iH*t//////J3A\eB^@)?@OM?@b?x[@???^@X???O"O4OA?\jAmlRnAO_OPOkAOO _#~A5x@_R_d_v___DOz_1r~B_ oYp.oDBOoaosoB\ooo oo o(2 Ma^uC!CC 0BTfsD؟%D-?UDg(1rُ̟cE@'>K`vEEȎAد@ 2?ZڐdFϱƿBF !F3Q>PbtφϘϥ"/G W,BGM_qGZq߶ & 0KHYp} HHj .@RdqI#+I+=S.Ie$# TUHL5D" # =h @^T(aaJB [U@L&d2?@~?P e.N Q  m>uA` _?`N  Y c$ A.Y8>uQH>tEt#bH ">U.%>R.#N-7/de!#?A. \|#&/,?\.5?IA@/B[|# 'N(#AxT`?CopyrigXt(wc)20(@9M@c@o%s @fB Ar@GAua@i @n._ Alb@ HUsfBe:@e@vx@dZ@ V4 ?)o32TUA??)77se<-#v26ZbhafYv2r|cVqQN "QQQdl5C/oAe+(dVd>lrd "!s(8r4."%S(QVouodC~w.N}" (-DT!I@[0v2rzCsc "oP%3}`wȄՏyE|?v2>E *P&ai7HD H# h @>T(]]9 MT  )AU@L&d2?@W~?P6 $LA n  JuM` ?8* M^ K*0u:Jt7 StJb)>JU5 JD-//!X#V? .B\F#k&/k,?\.?;IA /[F#Y!3/ g"Ai @@2'bH42F/ -o31/!`'; J`U!`?CopyrigTt(c)2009M0c0os0f21r0Aa0i0n. Al,@ 8s0Be@e0vB@dH$@V o4 x?)eno32TUA?2IaH@2U6TO<@2U6X7ibE9 &Xo72'0BUik&!d$0 V1ZlJQUhhf5`'1@1Kdo30C^*Va&JQ&dfl64iAc7FlUnbi:(}m (-DT!;@-0@2rdUj"Uc60eE3&m9GtZTe%|&ov+=~u @2stktbqvu@<&]ew7UHLD  Jh0TlE>M U@L&d2?@W~?JP jJ %A Q"2  .>uA` ?E_  (< _Z&?uMt>p/b ">tq bo>t6  }配>U2TmUg!?#@9 U#!"/ Aw@"b)+&> !v?(t($#>_#2( m"6 G"\"b)H;'"bu3z=&b3~8/D_V_8E"lJaUl~X'4M1!S(t!?@9j# p}j# K$(°b`0w8-DT! lq0$#qj{jr}4k (Mt6 P pp@U<r(5%8:dfl6/wkrvQ uC EW`#0!y0!yD#|ud)<$ooooQdQAuddT8 %9oeS(<@EYeCw<ȏڄؙhjsu qyoNK$ i 8_\H>+s !SFO^? F+}#UqB9Ya%~@+xNaGo,΁PXfP["Q`"Suc" RUFD  h(^TYYBCUF\.?x<F BP(?P?\Xt3 D5S?>?5%6qW{qk66b6HCI6CJ6CN6!C&aS6/!C9&R6M!CW&L6k!Cu&16!C&a26!C&36!C&46!C&561C 6a661C)676=1CG6 6[1Ce6 6y1C6a 61C6 61C6 61C661C6!6ACFh9hC7F6KACUF6iACsFa6ACF6ACF6ACF6ACF!6AC Vd9dC'V6;QCEV6YQCcVa6wQCV6QCV6QCV6QCVa6QCV 6 aCf!6+aC5f"6IaCSfa#6gaCqf$60aCfȅU?of?Z0Bc@L&d2?"}3xEx#~sUkqiviҍrx  0bEB`Hub,netwopkpppri hal*pdpvcpp-Qa| xy3U5Gv\ NP?U*U---?-ppwpwwppw׆%p6ppw pwwww }σw ^?w wpwp pd_&wpwwfDrag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aabx<οL&d2??9GΑsп=t??\.r3r\.CUG D # h L^T4YYT UF\.?@x2" $9u`un `"0Yb!u`$"%؂#UQ!'1`Vis_PRXY'cPm!#5P46ޖPg da +_Pb1b1"(Ɣp2)Ӕ2*R+FR"((Rb(!SaDc"76u&`~PG1"1 0&2k@c4p5,CT@Db"5 UaAFUQS_$|lF3s͵NSYF'U;0Re>1,@UQP)epzp51S(("(AT?sR !U/!/keF/X/Ae`'e^//,U SbiPa??g TT]]9 M JU@x2zGz?@MJA@eb#z(b),+,&J[(.?& I?A$./O%B!!5 g`?CopyrigTtZ(c)Z2009ZM 0c 0os0f21r0>1a0i0n.Z AlY0 8s]2e10e 0vo0dQ0!$$-# '&%?6iie59 6X7'K0UpBŁ&!$K0 'F;JlJAh h7!1!Z@vnǣ f, <AA#  IRvVJ:'BP(?OS spBlU^TURUEUr\.G\ZY?PuPիQ,5U҄Q[pB.aYU520_BU"rA 5#cHD: # h4>T]]9 M JU@1&d2?@Vj?@҄BP(P6 ]AJuM` ?ju#t  k]It=W(\ZIRUIl">2zGzw?@MJAw@eb #zb](b%)2+)2&J[/.w?& ?A$T4/U%B!!5 g`?CopyrigTt (c)020%090M0c0os 0f21r 0D1a0i 0n.0 Al_0 8sc2e70e0vu0dW0!$-# e'& ?6iie59 6X7{'0UŇ&!$0R -FAJlJ8>UhAA 11!T2 $S<cV{ WR~VJd2L&?@ubX,X ]S fR#mS [ÐڱQE^Fh4__ K&oeX5:f'l6 XYePY?ۭsHMQ5aZjoohY}aUVeEVx_;"rA #dsHD: # h4>T]]9 M JU@҄BP(?@h4FtP6 >JuM` ?uJt  kU]It=W{GzتIRIl#>2mzw?3@MJAw@eb #zb( (2+T2&J[ (p"?0& ?A$ 4/U%BB!!5 g`?CopyrigTt (c])020%090uM0c0os 0If21r 0D1a0i 0n.0 WAl_0 8sc2Ue70e0vu0dW0!$-# '&?6iieP59 6X7{3'0]UŇ&!$0 -FAJlJ8>Uh@ 11!Z@o?.rɩ  ~<uhB] WRVJ@ ?@bȩ ]S 9Q#hY?))QE^jZ__ CaX5a9XY@ePXRmScRU5:]mx_PU"rA k#dsHD:@ # h4>T]]9 MTJU@aܹ?@&cM?@5?@$D"?P6 v >JuM` ?qu#t  @@|It=Wn5_6uIRFIlI#>2zGzK? HJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A/.7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6#)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ# $<Ef4B 9b`fJ x۰Z @]0?c Q#Oc Q\}ȱ~aE:Õ)0:iG`iw*h<5a#j8oJiqze~EA#o>"]rA #sHD:@ # h4>T]]9 MTJU@ (?@hZ?@>TC?@ݿJWc^?P6 v >JuM` ?)uJt  It=WX IR?8IlRv\#>2zGz? HJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A(.?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!ZA!Z!?v"rA # sHD:@ # h4>T]]9 MTJU@?!Qw?@k?@BZ?@ib+iF?P6 v >JuM` ?qu#t  1It=W_OIRUo}WIlTy6ވI#>2zGzK? HJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A/.7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6#)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ# $<Ef4B 9b`fJ:O@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij? mh~EA#o>"rA k#sHD:@ # h4>T]]9 MTJU@P4K?@l?@u'?@ݿJWc^?P6 v >JuM` ?)uJt  {d5Z\It=W2;wEIRkzIlRv\#>2zGz? HJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A(.?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+Z lJ]UhzЎ!A!Z!?&sA#<# $BK jfJ 'j `00>oPaYc l]]beE:Ͷc0TbCcba`iK8K8h<5eg۰Zk(qQlqe~Ee@||`ai !hA'o>v"rA # sHD:@ # h4>T]]9 MTJU@#zUv?@f s9?@ә!?@8laxy?P6 v >JuM` ?)uJt  V"(It=W7:LIRE! YBIl p#>2zGz? HJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A(.?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!A!19b $<# $B 9b`fJ: muۘ]0:mOc ?i'A~aEesDͅ?c ? V#NeFaze<5e@|lVaiU3Lh`~EA#o>"rA #sHD:@ # h4>T]]9 MTJU@"z>?@^i2VS?@ˋ>WB?@=E?P6 v>JuM` ?)uJt  7It=WܯHIRݮIl$dvĤ#>2zGz?(3 HJsAeb #z (#+#+#&*Jp!p!5 g`?CopyrigTt (c) 2U0 9 M c os f"!rԙ !a i n}. Al U (s"e e 5v0d i!Em$}! (K2?b6 ?ALb4($I3/ 4/U%b-|# |'Yb6?Fiie<59 FjX/G3_'0UBb6Z!}40 aFuJlJ8>UhAA Ў!1!Z}'[- E|zo}#<b$,] VJ:@8Qw0RS S IBf>QE !?@\BU--# i[F @ h<53n:CU9fKo]o ڵ h5a9YUU aUUwiǤ]Q işeq5 h2r_U"rA 5#sHD:@ # h8>T ]]9 MTJU@IKY?@#v\?@(w)٫?@Q`m ^?P6 >JuM`lW? SuJt  o|MtA[_"oRMVYBMpry2VI'>\??\.?lFA8 J2llf?3 HRJB& @i7b#zv t# b( (+&B(ݙ" ?APb)4(z$CD3//&*115 k`?CopyrigTtk(wc)k2009kM0c0o%s0f21r01ua0i0n.k_ Al @ 8UsBe0e0v @ d@1H4-,3 7%bO&&i Ab~59 &&XG3'K0U!R&!4K0 FJlJI  ( sQsQ] 1heA Zl0|z3 0 @?/n' QE bR;bJ:]~^PsojRփUaE !?@q`0 0,c s!R'i e:}ɟh~5aef9oa|b c gT]]9 MTJU@5^?@hP?@5?@$D"?P6 rAJuM` ? qu#t  .9BWyIt=Wn_q8IRFIlI#>2zGzK? HJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A/.7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6#>F O @ie<59 FXG'0U`Rb6!}40 V+ZlJQI0h|G!A !1C# $I<EfB C`fJ x۰Z @]0?c Q#Oc Q\G}ֱ~aE:Õ)0:iG`iw*h<5a#j8oJiqze~EA#o>"rA #sHD:@ # h4>T]]9 MTJU@H?@6͍~>TC?@JWc^?P6 >JuM` ?juJt  HIt=WByIR?8Il?Rv\#>2zGz?) HJsAeb #zbU(#+#+#&Jp!p!5 g`?CopyrigTt (c) W20 9 M ]c os f"R!r !a i n. AUl (s"e e v0d @i!Em$+A(.?b6 ?AgJaT6` F !!l"zbAR +6ig5V181 ?2?;:C?'$4/U%G|# |'b6L3FL ie<59 FXG'K0U`Rb6!}4K0 V+ZlJQI0h|G!A!Z!?"]rA #sHD:@ # h4>T]]9 MTJU@Sw?@K?@BZ?@ib+iF?P6 v>JuM` ?qu#t  fd>It=WN6sgHRUo}WIlTy6ވ#>2zGz? HJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A/.?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼#FO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!A!1lL# $<EfB 9b`fJ:'@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij mh~EA#o>"rA 5#sHD:@ # h4>T]]9 MTJU@t)H׾?@Ȑ?@u'?@ݿJWc^?P6 v>JuM` ?)uJt  ُuߓIt=Wί IRkzIlRv\#>2zGz? HJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigT}tt(c)tW20 9tM ]c os f"R!r !a i n.t AUl (s"e e v0d @i!Em$+A(.?b6 ?AgJaT6` F !!l"zbAR +6ig5V181 ?2?;:C?'$4/U%G|# |'b6L3FO ie<59 FXG'K0U`Rb6!}4K0 V+ZlJ]Uhz!A!Z!刭?&sA#<# $B jfJ 'j `00>oPaYc l]]aE:Ͷ10TbCcba`iK8K8h<5eg۰Zk(qQlqe~Ee@||`ai !hA'o>"rA #sHD:@ # h4>T]]9 MTJU@?^oO?@^?@ә!?@8laxy?P6 v>JuM` ?)uJt  L+It=WݑHIRE! YBIl p#>2zGz? HJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A(.?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!A!19b $<# $B 9b`fJ: muۘ]0:mOc ?i'A~aEesDͅ?c ? V#NeFaze<5e@|lVaiU3Lh`~EA#o>"rA #sHD:@ # h4>T]]9 MTJU@tr,?@Uw?@ˋ>WB?@=E?P6 v>JuM` ?)uJt  6j>It=WNFFIRݮIl$dvĤ#>2zGz?3 HAeb& #z *(#+#+#&UJp!p!5 g`?CopyrigTt (c) 20 9 M c. os f"!r !a i n. Al (s"e ej v0d  i!Em$}! (K2?b6 ?ALb4($3/ 4/U%ę-|# |'b6?Fiie<59 FX/G3'0UBŴb6!}40 TaFuJlJ8>UhAA !1!Z}'- E|zo}v#<b$,] VJ:@8Qw0RS S IBf>QE !?@\BU--# i[F @ h<53n:CU9fKo]o ڵ h5a9YUU aUUwiǤ]Q işeq5 h2r_U"rA 5#sHD:@ # h8>T ]]9 MTJU@^5=~?@,=Vݼ?@(w)٫?@Q`m ^?P6 > uM`lW? SuJt  ?aV_MtA[_=p'MVYBMpry2VI'>\??\.?lFA8 J2llf?3 HRJB& @i7b#zv t#]b( J(+&B(" ?APb)4(z$!D3//&115 k`?CopyrigTtk(c)k2009kM0c0os0f21r01a0i0n.k Al @ 8sBe0e0v @d@1$4-3 7bO&&i b~59 &&XG3'0U!R&!40 FJlJ $  (sQsQ] 1eA!Zl0|z 0 @?n' Q b7fJ:]~^PsojR֯UaE !?@q?`0 0c s!R'i ?e:}ɟh~5aef9oa|b c ؠgT]]9 MTJU@?έ?@=?@5?@$D"?P6 v>JuM` ?qu#t  &lIt=WA_I߃IRFIlI#>2zGzK? HJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A/.7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6#)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ# $<Ef4B 9b`fJ x۰Z @]0?c Q#Oc Q\}ȱ~aE:Õ)0:iG`iw*h<5a#j8oJiqze~EA#o>"]rA #sHD:@ # h4>T]]9 MTJU@Iq?@q֌?@>TC?@ݿJWc^?P6 rhAJuM` ?)uJt  0@hIt=WmiIR?8IlRv\#>2zGz? HJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A(.?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LhFO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!ZA!Z!?v"rA # sHD:@ # h4>T]]9 MTJU@ڮ?@7 ?@BZ?@ib+iF?P6 v>JuM` ?qu#t  JJ&qIt=Wr_hIRUo}WIlTy6ވI#>2zGzK? HJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A/.7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6#)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ# $<Ef4B 9b`fJ:O@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij? mh~EA#o>"rA k#sHD:@ # h4>T]]9 MTJU@=9_?@o(Ѿ?@u'?@ݿJWc^?P6 v>JuM` ?qut  V6>nIt=WgD_~baIRkzIlRv\I#>2zGzK? HJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A(.7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6B>F O @ie<59 FXG'0U`Rb6!}40 V+ZlJ]Uhz!hA!Z![?&sA#<# $B %jfJ 'j `00>oPaYc l]]|eE:Ͷ10TbCcba`iK8K8h<5eg۰Zk(qQlqe~Ee@||`ai !hA'o>"rA #sHD:@ # h4>T]]9 MTJU@BP(?@xQ8?@ә!?@8laxy?P6 v>JuM` ?)uJt  9KIt=WYGJIRE! YBIl p#>2zGz? HJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A(.?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXGB'0U`Rb6!}40 V+ZlJQI0h|G!A !19b$<# $BM 9b`fJ: muۘ]ᇄ0:mOc i'A~aEesD?c  V#NeFaze<5e@|lVaiU?3Lh~EA#o>"rA k#sHD:@ # h4>T]]9 MTJU@W?@M6N?@ˋ>WB?@=E?P6 rlAJuM` ?)uJt  1|It=WƯ:IRݮIl$dvĤ#>2zGz?(3 HJsAeb #z (#+#+#&*Jp!p!5 g`?CopyrigTt (c) 2U0 9 M c os f"!rԙ !a i n}. Al U (s"e e 5v0d i!Em$}! (K2?b6 ?ALb4($I3/ 4/U%b-|# |'Yb6?Fiie<59 FjX/G3_'0UBb6Z!}40 aFuJlJ8>UhAA Ў!1!Z}'[- E|zo}#;<b$k] VJ:@8Qw0RS S IBf>QE !?@\BU--| i[F @ h<53n:CU9fKo]o ڵ h5a9YUU aUUwi]Q ieq'5 h2r_Uv"rA # sHD:@ # h8>T ]]9 MTJU@&J?@_5+:?@(w)٫?@Q`m ^?P6 >JuM`lW? SuJt  y SksMtA[_eMVYBMpry2VI'>\??\.?lFA8 J2llf?3 HRJB& @i7b#zv t#]b( J(+&B(" ?APb)4(z$!D3//&115 k`?CopyrigTtk(c)k2009kM0c0os0f21r01a0i0n.k Al @ 8sBe0e0v @d@1$4-3 7bO&&i b~59 &&XG3'0U!R&!40 FJlJ $  (sQsQ] 1eA!Zl0|z 0 @?n' Q b7fJ:]~^PsojR֯UaE !?@q?`0 0c s!R'i ?e:}ɟh~5aef9oa|b c ؠgT]]9 MTJU@B?@-8?@5?@$D"?P6 v>JuM` ?qu#t  4E$p͡It=W_Lx4IRFIlI#>2zGzK? HJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A/.7?b6 ?AgJaT6` F !!l"zbAJ +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼#FO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!A!1lL# $<EfB 9b`fJ x۰Z @]0?c Q菌#Oc Q\}ֱ~aE:ÕO)0:iG`iw*h<5a#j8oJiqze~EA#o>"rA #sHD:@ # h4>T]]9 MTJU@*ӏ?@c?@>TC?@ݿJWc^?P6 v>JuM` ?)uJt  uIt=Wt]aIR?8IlRv\#>2zGz? HJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A(.?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!ZA!Z!?v"rA # sHD:@ # h4>T]]9 MTJU@"?@ "S/?@BZ?@ib+iF?P6 v >JuM`?qu#t  B?ͳIt=WF_p\cIRUo}WIlTy6ވI#>2zGzK? HJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A/.7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6#( DO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ# $<Ef4B 9b`fJ:O@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij? mh~EA#o>"rA k#sHD:@ # h4>T]]9 MTJU@d?@ 3\D?@u'異JWc^?P6 !>JuM` ?juJt  rs"It=WVIRkzIl?Rv\#>2zGz?) HJsAeb #zbU(#+#+#&Jp!p!5 g`?Copy_rigTtZ(c)Z2U0 9ZM c os f"!rԙ !a i n}.Z Al T[&s"e e 5v0d i!Em$+A(.a?b6 ?AgJaT6` F !!l"z}bA +6ig5V*181 ?2?;#:C?'4/U%G|# |'b6LLFO ie<59 FXG'0U`Rb610 V+ZlJ]Uhz!A!Z!?&osA#<# $B jfJ 'j `00>oPaYc l]]#aE:Ͷ0TbCcba`iK8K8h<5eg۰Zk(qQlqe~Ee@?||`ai !hA'o>"rA #sHD:@ # h4>T]]9 MTJU@69 Ğ?@l_n.?@ә!?@8laxy?P6 v">JuM` ?)uJt  sd It=W> IRE! YBIl p#>2zGz? HJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A(.?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!A!19b $<# $B 9b`fJ: muۘ]0:mOc ?i'A~aEesDͅ?c ? V#NeFaze<5e@|lVaiU3Lh`~EA#o>"rA #sHD:@ # h4>T]]9 MTJU@#&\?@ԋZ|?@ˋ>WB?@=E?P6 v#>JuM` ?)uJt  [It=Wq.IRݮIl$dvĤ#>2zGz?(3 HJsAeb #z (#+#+#&*Jp!p!5 g`?CopyrigTt (c) 2U0 9 M c os f"!rԙ !a i n}. Al U (s"e e 5v0d i!Em$}! (K2?b6 ?ALb4($I3/ 4/U%b-|# |'Yb6?Fiie<59 FjX/G3_'0UBb6Z!}40 aFuJlJ8>UhAA Ў!1!Z}'[- E|zo}#<b$,] VJ:@8Qw0RS S IBf>QE !?@\BU--# i[F @ h<53n:CU9fKo]o ڵ h5a9YUU aUUwiǤ]Q işeq5 h2r_U"rA 5#sHD:@ # h8>T ]]9 MTJU@\W>?@47 ?@(w)٫?@Q`m ^?P6 $>JuM`lW? SuJt  /êQPͰMtA[_Y#MVYBMpry2VI'>\??\.?lFA8 J2llf?3 HRJB& @i7b#zv t#]b( J(+&B(" ?APb)4(z$!D3//&115 k`?CopyrigTtk(c)k2009kM0c0os0f21r01a0i0n.k Al @ 8sBe0e0v @d@1$4-3 7bO&&i b~59 &&XG3'0U!R&!40 FJlJ $  (sQsQ] 1eA!Zl0|z 0 @?n' Q b7fJ:]~^PsojR֯UaE !?@q?`0 0c s!R'i ?e:}ɟh~5aef9oa|b c ؠgTh]]9 M JU@xJuM` ?Uu Jb[LgJt b{tM>2zGz?)77Os@MJA@b7sz}"b)+,& !5Jp"( ?& N"A"b)+ 'b##b#(J,J/B-  Q3M#9 \/??\.?!?f=Q1Q1Y7;m`?CopyrigTt (c)3@2`093@M+@c)@oKs#@f1B"Ar%@^Aa1@i#@n.3@ Aly@ )Hs}BeQ@e)@v@dq@O0i bz59 m6m?7/'0URś65a FTR#l:J Uh(] nQnQ]FQ AB1!:'BP(Ա?a sRYqJSv?@bX,, iYwla)q )\()4eEDnFh4\ono ?p= ףЈhz5Ufl6a \uiHшhnVgj tj(a(4eU҄Q kR!l8aQY@h4GF[|0aui{hFT]1rto(yQiC@ ?@-uUaȳl1rlb\߈hQ:WpZƟ ܈hU_oo)lHD:@ # h4>T]]9 MTJU@D//?@w 8?@5?@$D"?P6 v1>JuM` ?qu#t  z7It=W_iIRFIlI#>2zGzK? HJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A/.7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6#)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ# $<Ef4B 9b`fJ x۰Z @]0?c Q#Oc Q\}ȱ~aE:Õ)0:iG`iw*h<5a#j8oJiqze~EA#o>"]rA #sHD:@ # h4>T]]9 MTJU@qK?@>,Λ?@>TC?@ݿJWc^?P6 v2>JuM` ?)uJt  jDFIt=W-M3}IR?8IlRv\#>2zGz? HJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A(.?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 0??8:C?'4/U%GX|# |'b6LLBBO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!ZA!Z!?v"rA # sHD:@ # h4>T]]9 MTJU@QL ?@L+?@BZ?@ib+iF?P6 v3>JuM` ?qu#t  Ç\UIt=W_ @ٶIRUo}WIlTy6ވI#>2zGzK? HJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A/.7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6#)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ# $<Ef4B 9b`fJ:O@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij? mh~EA#o>"rA k#sHD:@ # h4>T]]9 MTJU@#li[?@e>?@u'?@ݿJWc^?P6 a?JuM` ?uJt  ICIt=WN3אsIRk_zIlRv\#>2zGz?R HJAeb #zb(#+#+T#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A(. ?b6 ?AgJamT6G` F !!l"zbA +6iTg5V181 ?2?;:C?'I4/U%G,|# |'b6&La`B O @ie<59 FXG'0U`Rb6!}40 V+ZlJ]Uhz!hA!Z![?&sA#<# $` %jfJ 'j `00>oPaYc l]]aE:Ͷc0TbCcba`iK8K8h<5eg۰Zk(qQlqe~Ee@||`ai !hA'o>v"rA # sHD:@ # h4>T]]9 MTJU@ 3?@8.G?@ә!?@8laxy?P6 v5>JuM` ?)uJt  ͧILIt=Wf IRE! YBIl p#>2zGz? HJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A(.?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!A!19b $<# $B 9b`fJ: muۘ]0:mOc ?i'A~aEesDͅ?c ? V#NeFaze<5e@|lVaiU3Lh`~EA#o>"rA #sHD:@ # h4>T]]9 MTJU@'HY?@pN?@ˋ>WB?@=E?P6 v6>JuM` ?)uJt  PrIt=WoDIRݮIl$dvĤ#>2zGz?(3 HJsAeb #z (#+#+#&*Jp!p!5 g`?CopyrigTt (c) 2U0 9 M c os f"!rԙ !a i n}. Al U (s"e e 5v0d i!Em$}! (K2?b6 ?ALb4($I3/ 4/U%b-|# |'Yb6?Fiie<59 FjX/G3_'0UBb6Z!}40 aFuJlJ8>UhAA Ў!1!Z}'[- E|zo}#<b$,] VJ:@8Qw0RS S IBf>QE !?@\BU--# i[F @ h<53n:CU9fKo]o ڵ h5a9YUU aUUwiǤ]Q işeq5 h2r_U"rA 5#sHD:@ # h8>T ]]9 MTJU@mڷ?@WZgL?@(w)٫?@Q`m ^?P6 7>JuM`lW? SuJt  NKMtA[X_*`lMVYBMpry2VI'>\??\.?lFA8 J2llf?3 HRJB& @i7b#zv t#]b( J(+&B(" ?APb)4(z$!D3//&115 k`?CopyrigTtk(c)k2009kM0c0os0f21r01a0i0n.k Al @ 8sBe0e0v @d@1$4-3 7bO&&i b~59 &&XG3'0U!R&!40 FJlJ $  (sQsQ] 1eA!Zl0|z 0 @?n' Q b7fJ:]~^PsojR֯UaE !?@q?`0 0c s!R'i ?e:}ɟh~5aef9oa|b c ؠgTh]]9 MTIAU@?@|be?@X͂?@SSfhr~?Pps-8R?>$9> n JuM{` ?e ;  Su*Jt'  $mCLmta{x_&3.Jv  q?D=:%z?v(A[|Jq>JU2N贁N[?@M#J&A@bI(bUW)U+U+U&*Jy#?!lJ ?%P?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>UhETh]]9 MTIAU@?@2R} ?@X͂?@SSfhr~?Pps-8R?>$:> n JuM{` ?e ;  Su*Jt'  H-mta{_mLL}3.Jv  q?D=:%z?v(A[|Jq>JU2N贁N[?@M#J&A@bI(bUW)U+U+U&Jy#?!lJ ?%P?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>UhETh]]9 MTIAU@B?@ K?@X͂?@SSfhr~?Pps-8R?>$;> n JuM{` ?e ;  Su*Jt'  m@mta{ɀ_13.Jv  q?D=:%z?v(A[|Jq>JU2N贁N[?@M#J&A@bI(bUW)U+U+U&*Jy#?!lJ ?%P?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>UhETh]]9 MTIAU@Zԩ?@j4ʼn?@X͂?@SSfhr~?Pps-8R?>$<> n JuM{` ?e ;  Su*Jt'  }$~mta{_M {3.Jv  q?D=:%z?v(A[|Jq>JU2N贁N[?@M#J&A@bI(bUW)U+U+U&*Jy#?!lJ ?%P?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>UhETh]]9 MTIAU@h!I?@u\?@X͂?@SSfhr~?Pps-8R?>$=> n JuM{` ?e ;  Su*Jt'  XƿHmta{"_}{3.Jv  q?D=:%z?v(A[|Jq>JU2N贁N[?@M#J&A@bI(bUW)U+U+U&Jy#?!lJ ?%P?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>UhETh]]9 MTIAU@?@d\0?@X͂?@SSfhr~?Pps-8R?>$>> n JuM{` ?e ;  Su*Jt'  H-mta{pu_3.Jv  q?D=:%z?v(A[|Jq>JU2N贁N[?@M#J&A@bI(bUW)U+U+U&Jy#?!lJ ?%P?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>UhETh]]9 MTIAU@sLGv?@m\?@X͂?@SSfhr~?Pps-8R?>$R>  JuM` ? ;  )u*Jt'  [Rwmta{ēd3.Jv  q?D=:%_z?v(A[|?Jq>JU2N?贁N[?)@M#J&A@wbI(bW)U+U+U&Jy#0?!J ?%P?tAO"d+bW+$u/%B#BA1A15 `?Cop rigTt (c)x0]2`09x0Mp0]cn0osh0fv2Rg1rj01av0ih0Wn.x0 l0U n8s2e0en05v0d0:1PY>4#-#,M3 M7#(p0b59 DFXGdG'/2WUA;F%!$a dF$&#l,&}>UhEuwγ u~w;'bAUSSr`?CopyrigPt (cu) 2\09 uMcoszIfyr|aizn. WAlЀ sԂUeevdȀ;LSPDB-M_ M_?[D =M`DrMM ID1+0UǒM"C $cPc X(.'ƔM$!I] Ue*^Y30DXl ! !dH!\!p!!!!!!!!1$1%&'*()11pD113Ac M?  F4 K &E& 4&4&U R&R&u` W?I$0BN`l~$I/( /2(>/2P(\/n$uz)tw!  IQEtABOJ-EG14%F4GaO ۃ ZUAA/B`?CopyrigPt (c)@2\0 M@c@os@fBAr@Aa@i@n.@ AlP HsRe@e@v&PdPA{BCSDCB-CC "G{$FCTVV RD#C05UbS@qF@ ^PU $fXhW.Dg'dōV%!T] DfXje H^maPaYqT  2qa8wEJtU{BUJtU{3Jt!U{UJtU{JtR!U{|JtU{&qFx&U{tSHvDU{.qFxbU{2qFxU{6uJtUwHD:B # h0>Th]]9 MTIAU@?@&*y>{?@X͂?@SSfhr~?Pps-8R?>$A n JuM{` ?e ;  Su*Jt'  $mCLmta{_n3.Jv  q?D=:%z?v(A[|Jq>JU2N贁N[?@M#J&A@bI(bUW)U+U+U&*Jy#?!lJ ?%P?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>UhET]]9 M JU@xJuM` ?uJt ASt=WJRb~li>t2U?=@MJA@b + &J[N#?0a& ?AT)B!!5 g`?CopyrigTtZ(c)Z20 9ZM c. os f"!r 1ai n.Z Al90 (s=2e0ej vO0d10@!$b-# 'Ya&?6iiek59 6jX7^'0a&Z!|$0 FJlJ UhqMAA ]A !4Ja-'Z@?h4FӃ  <{Gz#A OR|VJ:6]].rM__Z)\("UEC@ ?@-bȃ S 1 `#`YR\Xk5^jZso!o ̌aX5U'BOP(?gks#dT[RUUSv?@n aX,flYwq%lSXn?Fh4  p= ףXAYfl6\`YHzmPXAV``ʼ_Z(QYAY҄agklQbE26_HU"rA HD:B # h0>Th]]9 MTIAU@B?@Dd;]?@X͂?@SSfhr~?Pps-8R?>$F> n JuM{` ?e ;  Su*Jt'  m@mta{_dA3.Jv  q?D=:%z?v(A[|Jq>JU2N贁N[?@M#J&A@bI(bUW)U+U+U&*Jy#?!lJ ?%P?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>UhET]]9 MTJU@F6&?@}%4+ޱ?@5?@$D"?P6 rAJuM` ?qu#t  (LbIt=W_,MyIRFIlI#>2zGzK? HJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A/.7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6#(BO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ# $<Ef4 9b`fJ x۰Z @]0?c Q#Oc Q\}|zeE:ÕO)0:iG`iw*h<5a#j8oJiqze~EA#o>"rA #sHD:@ # h4>T]]9 MTJU@)?@Uj?@>TC?@ݿJWc^?P6 vI>JuM` ?)uJt  6|.It=WL\} IR?8IlRv\#>2zGz? HJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A(.?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!ZA!Z!?v"rA # sHD:@ # h4>T]]9 MTJU@#{5?@ř?@BZ?@ib+iF?P6 vJ>JuM` ?qu#t  DqIt=W_{*IRUo}WIlTy6ވI#>2zGzK? HJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A/.7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6#)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ# $<Ef4B 9b`fJ:O@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij? mh~EA#o>"rA k#sHD:B # h0>Th]]9 MTIAU@Zԩ?@6#TTĶ?@X͂?@SSfhr~?Pps-8R?>$K> n JuM{` ?e ;  Su*Jt'  }$~mta{=g2.Jv  q?D=:%_z?v(A[|Jq>JU2N贁N[R?@M#J&A@bI(b*W)U+U+U&Jy#c?!J ?%P?AO"d+bRW+$u/%B#A1A15 `?Cop rigTt (c)x02`09x0Mp0cn0osh0fv2g1rj01av0ih0n.x0 l0 n8s2e0ejn0v0d0:1Y>4#-X#M3 M7#(p0b59 DFXGdG_'2WUA;FJ!$a dFD$&#l,&}>UhET ]]9 MTJU@fl6?@eb,)?@(w)٫?@Q`m ^?P6 L>JuM`lW? SuJt  LUMtA[_ʓWMVYBMpry2VI'>\??\.?lFA8 J2llf?3 HRJB& @i7b#zv t#]b( J(+&B(" ?APb)4(z$!D3//&115 k`?CopyrigTtk(c)k2009kM0c0os0f21r01a0i0n.k Al @ 8sBe0e0v @d@1$4-3 7bO&&i b~59 &&XG3'0U!R&!40 FJlJ $  (sQsQ] 1eA!Zl0|z 0 @?n' Q b7fJ:]~^PsojR֯UaE !?@q?`0 0c s!R'i ?e:}ɟh~5aef9oa|b c ؠgT]]9 MTJU@S?@ަƢ?@u'?@ݿJWc^?P6 vN>JuM` ?)uJt  cIt=W(?IRkzIlRv\#>2zGz? HJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A(.?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+Z lJ]UhzЎ!A!Z!?&sA#<# $BK jfJ 'j `00>oPaYc l?]]aE:Ͷǝ0TbCcba`iK8K8h<5eg۰Zk(qQlqe~Ee@||`ai !hA'o>"rA #sHD:B # h0>Th]]9 MTIAU@h!I?@Ž?@X͂?@SSfhr~?Pps-8R?>$P> n JuM{` ?e ;  Su*Jt'  XƿHmta{0_Y3.Jv  q?D=:%z?v(A[|Jq>JU2N贁N[?@M#J&A@bI(bUW)U+U+U&Jy#?!,J ?%?AO"d+bW+$u/%B #A1A15 `?Co}p rigTt (cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4#-#M3 M7 #(p0b5(9 DFXGdG'2WUAŔ;F!$a dF$&#l,&}>UhET]]9 MTJU@ةA!z?@B]?@ˋ>WB?@=E?P6 vR>JuM` ?)uJt  wT vIt=W?mIRݮIl$dvĤ#>2zGz?(3 HJsAeb #z (#+#+#&*Jp!p!5 g`?CopyrigTtt(wc)t20 9tM c o%s f"!r !ua i n.t_ Al (Us"e e v0 d i!Em$}! (K2?0b6 ?ALcb4($3/ 4/U%-X|# |'b6?Fiie<59 FX/G3'0UBb6!}40 aFuJl*J8>UhAA !1!Z}'- E|zo}#.<b$]K VJ:@8Qw0RS S IBf>QE !?@\BU--# i[F @ h<53n:CU9fKo]o ڵ h5a9YUU aUUwi]Q ieq'5 h2r_Uv"rA # sHD:@ # h4>T]]9 MTJU@?@zų[?@ә!?@8laxy?P6 vS>JuM` ?)uJt  {It=W ůIRE! YBIl p#>2zGz? HJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A(.?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!A!19b $<# $B 9b`fJ: muۘ]0:mOc ?i'A~aEesDͅ?c ? V#NeFaze<5e@|lVaiU3Lh`~EA#o>"rA #sHD:B # h0>Th]]9 MTIAU@sLGv?@c?@X͂?@SSfhr~?Pps-8R?>$U> n JuM{` ?e ;  Su*Jt'  [Rw͖mta{ۡ_TL3.Jv  q?D=:%z?~v(A[|Jq>JU2N贁N[R?@M#J&A@bI(b*W)U+U+U&ՆJy#a?!J ?%P?AO"d+bRW+$u/%B#A1A15 `?Cop rigTt (c)x02`09x0Mp0cn0osh0fv2g1rj01av0ih0n.x0 l0 n8s2e0ejn0v0d0:1Y>4#-X#M3 M7#(p0b59 DFXGdG_'2WUA;FJ!$a dFD$&#l,&}>UhE9_%O+s u8+DOʅVF8g"I#"4>B U?r~d *o@+%oKsGh"=fp%Or%!\u%;%L8w%(hy%&,{%/}%W3@?7B?:D?;>F?&BH?EJ?lI(M?L$XO?P~6AEMTHCEW}EE[ (HEa_}JE cLEfNEOjUmUtqXU[u'UxU|HU/U6X UH"U#'$v //?#?5?G?Y?k?}???&U (U*U>(-Uǝ/UU"U1O0xUgNIU:NJU NI߰#NI#J#QB#X.Oh#QJ-O6H#QFȽ#o0$$xNE?_"2$@}#'4$6$B9$ݺE;ϡ$*O9=$%_|PU_"$D)$6)o"$<C*bUFD  h(^TYYBXCUF~?x<F BP(?P?  B+66 J] 6qa{6a!6ah9ha6a6!a&`8%!a/&6C!aM&6a!ak&6!a&`d9da&6!a&6!a&6!a6a61a6631a=66Q1a[66o1ay6a 61a6!61a6"61a6#61a6a$6AaF%6#Aa-F&6AAaKF'6_AaiF`]9]aF)6AaF*6AaF+6AaFa,6AaF-6QaV.61Qa;V/6OQaYVa06mQawV16QaV26QaV36QaVa46QaV56aa f66!aa+f86?aaIfa96]aagf:6{aaf;6aaf<6aafa=6aaf>6aaf9av@6/qa9vaA6MqaWvB6kqauvC6qav9av!E6qav9avG6a H6a)aI6=aGJ6[aeK6yaL6aaM6aN6Ӂa݆O6a9aQ06-a7R6K aUS6iasT6aU06aV6Ñ a͖W6aX6a Y06a'Z6; aE[6Yac\6wa]06a^6 a_6ѡaۦ`6aa06 ac6+ a5d6IaSe6gaqf06ag6aQ9Qa˶i6߱aj06ak6 a%l69aCm6Waan06uao6 ap6aq6ar06as6 at6)a3u6GaQv06eaow6 ax6ay6az06a{6 a|6a#}67aA~06Ua_6s a}6a6a06a6 a6 a6'a106EaO6c am6a6a06a6 a6a6a!065a?6S a]6qa{ra0rar arara0r%a/rC MraQkrQ0rQr QrQrQ&0r!Q&r3! Q=&rQ!Q[&ro!Qy&0r!Q&r! Q&r!Q&r!Q&0r1Q6r#1 Q-6rA1QK6r_1Qi60r}1Q6r1 Q6r1Q6r1Q60r1Q6rA QFr1AQ;FrOAQYF0rmAQwFrA QFrAQFrAQFrAQFJȖ SUqJ?_,V S=V Q'  T UrQS S@L&ɯd2?]ɓX?\.ҥX^ sUQV T_\ UJ%Q xS T -b@Y T`&P t>h,aeL,dbtok^`eupjet^`h r\wbgQgQ*QJ_i( RU SJWS> 0V]!? ?wwww{np0wzZp~uwpwwppw^w|{pdp^ZDrag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aab~߿~??)j࿔S5E?0FJ?nɶؿ3@ ?DHD: # h4>T]]9 MTJUF~?F͓??FtQ+/?P6 AmJuM` ?uJt At=Wrb#JRbJli:O#>[a? ?AbAw@"b $J2zGz?)@MJ7& #fbu#z$ ( (&,"*BB!!5 g`?CopyrigT}tZ(c)ZW2009ZM 0]c 0os0f2R1r0>1a0i0n.Z AUlY0 8s]2e10e 0vo0dQ0!$ę-# '?6iie59 6X7}'0UpBi!0 'F;JlJAh7!1!ZFTE <EgQ# IRSvVJ:M&d2?6VOSe\^TUR UEU@SG\BZ_ɫQ5[@_,cYU520_BU"rA #cHD: # h4>T]]9 MTJUFM&d2?FDx??Fl5?P6 AmJuM` ?uJt\  ]It=WIW$IRIl ڜI#>[ ? ?Ab A@"b$J2zGz?R=@MJ`=&#f {#z .(b)&,"*BB!!5 g`?CopyrigTt (c])020%090uM0c0os 0If21r 0D1a0i 0n.0 WAl_0 8sc2Ue70e0vu0dW0!$-# '?6iieP59 6X7F"'0UvB!0 -FAJlJ $L!(AA ]A1h1!ZFhmg  <!q}"##M _RVJL!%t?FTE\QeS , φ+#pYYSUKQUE^,n__ "+^HX5:?LV&k?SN#tTkRU5Ulf܄BP(%lgpY?BeO#X(dec]\m\cX ~.K$oZhLYUiXQaIZ^_i3qU32F_XU"rA 5#HD: # h#4>T#3 AMJUFbX?FϏ ?FM&d2?F _gw?P6 #AJuM` ?uJt  k]It=~W.*IRIl̆Rkפ#>[a? ?AbAw@"b$J2zGz?)@MJ=&#fb{#z\ (b)&T,"*B!!5 g`?CopyrigTt (c)020%090M0c0os 0f21r 0D1a0i 0n.0 Al_0 8sc2e70e0vu0dW0!$$-# '%?6iie59 6X7'K0UvB!K0 -FAJlJAh711T?ҿP mVN  Q  . *>uA` ?Gm$m8JuQ\>XbK>tY  wetVy 5Ie>U2zGz?@9 /#>?&Aw@bq(Wb)+&b" !p$4>9#"?& "w"b)";|'b"i,b"/N9#0%B 9#11;8"`?CopyrigXt (wc)020090M0c0o%s0f21r0Aua0i0n.0_ Al/@ 8Us3Be@e0vE@d'@'"i fE 6(X7H!'_2q@&,d50 tFJul>4Ul8QQCaR 1(Q1w!-(N!R?FJ?@ `0R QyUeR /ge%$(U⤖侇_X?,_XN Uωr?F r?FOtO?P"ZO %o1~Y.$!$iA4Y!eX]?C!ebRҡe:S |we"d  1X461Boo wr$5%>aEJe_~?F.ԵN?FaV-u"ؾ?PWRrR~|`%s mK)m >'ʲl} fdjg tsC uL+t-VwfxQUv`q7&ҹ _XRQb%d2[i֥TWVQFd50_#jS aUTf imp#jpm0"XY֘t?FTEY`Qj;!lЙXbQ?,n$ xXfQYJhbPnZ\>]!h"bXjQV6W_QUnU_o_)oTQaRp v__N-aZ?Fah<b}煔M_Ophz y7vPQP]BP({ύ 贁NPE 0BXЕHD: # h4>T]]9 MTJUF~?FS BP??Fx<?P6 #AmJuM` ?uJt At=W5_v@"J]RbJl>t2U.?=@MJA@+b)+&J[P'?g& ?A)*B!!5 g`?CopyrigTtZ(wc)Z2009ZM c o%s f"!r $1uai n.Z_ Al?0 (UsC2e0e vU0 d70!H$-,# 'g&K?6i@ieq59 6X7'K0g&!$K0 F!JlJ\#Uh( #3 ]At!"3'ZF>h f <YDc#BA NR{VJ:5]dGL_^Zh?.2\QE]t?FgPg܉ S )?w#_YXq5^(l]o o e]ǂX5U%?D"?;Vfk(\#cTZRUUM\_Y7ۨ Xno ^Z~#b%{XAYM&d2fkBqlUE25_tGUSrA   UGD  3 h0TdYYBjUFțau?F73X?FGV^bd?FZ^Zp?P} X  f  f0 D fX l f  f  bd  f  & f & 4& fH& \& fp& &! f&" &# f&$ &% f&& &' f6( $6) f86* L6+ f`6, t6- f6. 6/ b6]_61 f62 63 fF4 F5 (F6 T#3 AMJUF^]P'?Fݱ?F#6?F{_ "w?P6  >JuM` ?uJt  (LbIt=W,MyIR_FIl#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ %ޜ\0?c Q#Oc Q\}|zeE:pOϫ0:iG`iw*h<5a#j8oJiqze~EA#o>"rA #sHD:  # h4>T]]9 MTJUFH[b?F:%lj?FݡD?F,6^?P6 v >JuM` ?)uJt  6|.It=WL\} IR?8IlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!ZV\槈?F9"rA #sHD:  # h#4>T#3 AMJUFiW>E?FTb?F %?FP_EyFw?P6 >JuM` ?uJt  DqIt=W{*IRUo_}WIlTy6ވ#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ:%O\0:iG`Oc qy"zeEajoJiaze<5e'fÏ 0mFaij? mh~EA#o>"rA k#sHD:  # h4>T]]9 MTJUFF ?FƢ?F%9.?F,6^?P6 v>JuM` ?)uJt  cIt=W(?IRkzIlRv\#>2zGz?@M2JAe7b #zb(J#+#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c oKs f"!r !a i n. Al (s"e e v0d i!EHm$+A?b6 ?AgJaTv6` F !!l"z۾bZA +J6ig5V181 ?2?;ߑ:C?'4/U%ęG|# b|'b6LFO ie<59 FXG}'0U`Rib6!}40I V+ZlJ]Uhz!AZֺV\?F9&sA#<# $ B bnbJ'jWĞ 00>oPaYc l]]ȱaE:P^0TbCcba`iK8K8h<5e %k?(qQlqe~EeF$||`ai? !hA'oFrA k#sHD:  # h4>T]]9 MTJUFw??FxOe?FV\?F. xy?P6 rAJuM` ? )uJt  {It=W ůIRE! YBIl p#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6L>FO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!A!19b $<# $BJ C`fJ: m$D]ᇄ0:mOc i'A~aEeTE?c  V#NeFaze<5eF$|lVaiU?3Lh~EA#o>"rA k#sHD:  # h4>T]]9 MTJUF% !(@{?FmN,']?F~ tC?F7܄E?P6 v>JuM` ?)uJt  wT vIt=W?mIRݮIl$dvĤ#>2zGz?@MJAebM #zT (#+#+#&Jp!p!5 g`?Copy_rigTtt(c)t2U0 9tM c os f"!rԙ !a i n}.t Al U (s"e e 5v0d i!Em$}! K2?b6 ?ALb4($I3/ 4/U%b-|# |'b6<Fiie<59 FjX/G'0UBib6!}40 aFuJlJ8>UhAA@ !1!Zo(. E|zo}#<bX$-B] VʼJ:F,?0ȒS S I?Bf>QEҺV\?Ft@K\BU--# i[ÏF @ h<53n?I9fKo]o ڵ h5a9YUU aUU 3yk]Q i?eq5 h2r_U"rA k#sHD:  # h8>T ]]9 MTJUFG"7?F~8)?F AE?Fzl]?P6 >JuM`lW? SuJt  LUMtA[_ʓWMVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @nib#zv t#b( (+&B" ?APb)4(z$CD3//&*115 k`?CopyrigTtk(wc)k2009kM0c0o%s0f21r01ua0i0n.k_ Al @ 8UsBe0e0v @ d@1H4-,3 7%bO&&i Ab~59 &&XGK"'0U!R&!40 FJlJ Q! (sQsQ]31heA!Zsꈐ43 0 @?/n' #M b7fJ:]n#vca71xp]] 8usUQPUQS^%S+ %R&bpGba8DaP`Q]`NE_TWOPKJ0WSH+`Ps RUORuIsSk1J0@^e_ erP}28\usvvP62<%-g ۏ'9_us1125q5q2A+Bhh@R)pR*) 2hqhq|b(8 1xpa[3!1Qq6`:zGQ`1f1[j2B@@7RF5VCT @nb2FE5us_4Σ&F3s͵NSYFB@UͬpU ͬQUHͬ|eA§,@Q_Ɔp׏(ɟ 8A B<F5$lAVB\KkF`RC`asPe uexPP2!"! %(P%PORJ1 '2qa` P֒ȑ8(S˱AȕE{8H5AALA˱LܥAL(ARGMAWЛtA5ЛA͞/%AELHD:  # h#4>T#3 AMJUF͹30?FY˟8?F#6?F{_ "w?P6 >JuM` ?uJt  z7It=WiIR_FIl#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ %ޜ\0?c Q#Oc Q\}ȱ~aE:pϫ0:iG`iw*h<5a#j8oJiqze~EA#o>"]rA #sHD:  # h4>T]]9 MTJUF,2?F/LΛ?FݡD?F,6^?P6 v>JuM` ?)uJt  jDFIt=W-M3}IR?8IlRv\#>2zGz?@MlAneb #zb(J#+#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c oKs f"!r !a i n. Al (s"e e v0d i!EHm$+A?b6 ?AgJaTv6` F !!l"z۾bZA +J6ig5V181 ?2?;ߑ:C?'4/U%ęG|# b|'b6LBO ie<59 FXG}'0U`Rib6!}40 V+ZlJQI0h|GЎ!A!ZV\O?F9"rA 5#sHD:  # h#4>T#3 AMJUF *.?F)s*?F %?FP_EyFw?P6 >uM` ?uJt  Ç\UIt=W @ٶIRUo_}WIlTy6ވ#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ:%O\0:iG`Oc qy"zeEajoJiaze<5e'fÏ 0mFaij? mh~EA#o>"rA k#sHD:  # h4>T]]9 MTJUFJ.?Fh ?F%9.?F,6^?P6 v>JuM` ?)uJt  ICIt=WN3sIRkzIlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 $V+ZlJ]Uhz@!A!ZֺV?\?F9&sA #<# $B jfJ'jWĞ 00>oPaYc l]]aE:P^0TbCcba`iK8K8h<5e %k(qQlqe~EeF$ǧ||`ai !hA'o>"rA 5#sHD:  # h4>T]]9 MTJUFPY?F3pG?FV\?F. xy?P6 rhAJuM` ?)uJt  ͧILIt=Wf IRE! YBIl p#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LhSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!`197b$<# h$B 9b`fJ: m$D]0:mOc i'A~aEeT7E?c  V#NeFaze<5eF$|lVaiU3Lh~EA#o>"]rA #sHD:  # h4>T]]9 MTJUF]cZ?FVIܳ?F~ tC?F7܄E?P6 v>JuM` ?)uJt  PrIt=WoDIRݮIl$dvĤ#>2zGz?@MJAebM #zT (#+#+#&Jp!p!5 g`?CopyrigTt (c) W20 9 M ]c os f"R!r !a i n. AUl (s"e e v0d @i!Em$}! K2?b6 3?ALb4(&$3/ 4/U%-|# e|'b6 ?Fiie<59 FX/G'0UBb6!}40 aFuJlJ 8>UhAA !1!Z(. E|zo}#<b$] RVJ:F,a0RS S IBf>QEҺV\?Ft@K\B?U--# i[F @ h<53nI9fKo]o ڵ h5a9YUU aUU~ 3yk]Q ieq5 h2r_U"]rA #sHD:  # h8>T ]]9 MTJUFyh ?F*nK?F AE?Fzl]?P6 >JuM`lW? u t  NKMtA[X*`lMVYBMpry2V'>\¹??\.?lA8 J2l_lf?=@JMJB& @ib#ztv t#b() (+&ՆB3" 3?APb)4(z$D3//&T115 k`?CopyrigTtk(c)k2009kM0c0oKs0f21r01a0i0n.k Al @ 8sBe0e0v @d@14-X3 7JbO&&i b~59 &&XGK"/'0U!R&-!40 FJ%lJ Q! (sQsQ]3Ы1eA!Zsꈐg4 0֚ @?n'#2#M b7fJ:]T#3 AMJUF~S5e?Fk]?F#6?F{_ "w?P6 >JuM` ?uJt  @@|It=Wn56uIR_FIl#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FXGB/'0U`Rb6-!}40 V+ZlJQI0h|G!A!1l&fL# $<EfB 9b`fJ %ޜ\0?c Q菌#Oc Q\}ֱ~aE:pOϫ0:iG`iw*h<5a#j8oJiqze~EA#o>"rA #sHD:  # h4>T]]9 MTJUF3w?Fr(IY?FݡD?F,6^?P6 rlAJuM` ?)uJt  It=WX IR?8IlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LlQkBO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!ZV\槈?F9"rA #sHD:  # h#4>T#3 AMJUFZ)x?F~m?F %?FP_EyFw?P6 >JuM` ?uJt  1It=WOIRUo_}WIlTy6ވ#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ:%O\0:iG`Oc qy"zeEajoJiaze<5e'fÏ 0mFaij? mh~EA#o>"rA k#sHD:  # h4>T]]9 MTJUF:N[%?F ɇ?F%9.?F,6^?P6 v>JuM` ?)uJt  {d5Z\It=W2;wEIRkzIlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V+ZlJ]Uhz!A!ZֺV\?F9&sA#<# $BK jfJ'jWĞ 00>oPaYc l]]beE:P^c0TbCcba`iK8K8h<5e %k(qQlqe~EeF$||`ai !hA'o>v"rA # sHD:  # h4>T]]9 MTJUFydY?F?FV\?F. xy?P6 v>JuM` ?)uJt  V"(It=W7:LIRE! YBIl p#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!`197b$<# h$B 9b`fJ: m$D]0:mOc i'A~aEeT7E?c  V#NeFaze<5eF$|lVaiU3Lh~EA#o>"]rA #sHD:  # h4>T]]9 MTJUFEtJuM`?)uJt  7It=WܯHIRݮIl$dvĤ#>2zGz?@MJAebM #zT (#+#+#&Jp!p!5 g`?CopyrigTt (c) W20 9 M ]c os f"R!r !a i n. AUl (s"e e v0d @i!Em$}! K2?b6 3?ALb4(&$3/ 4/U%-|# e|'b6 ?Fiie<59 FX/G'0UBb6!}40 aFuJlJ 8>UhAA !1!Z(. E|zo}#<bc$ R] )VJ:F,00RS S IBf>QEҺV\?Ft@K\BU--# i?[F @ h<53nI9fKo]o ڵ h5a9YUU aUU? 3yk]Q ieq5 h2r_U"rA #sHD:  # h8>T ]]9 MTJUF̉?F7|?F AE?Fzl]?P6 !>JuM`lW? SuJt  o|MtA[_"oRMVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @nib#zv t#b( (+&B" ?APb)4(z$CD3//&*115 k`?CopyrigTtk(wc)k2009kM0c0o%s0f21r01ua0i0n.k_ Al @ 8UsBe0e0v @ d@1H4-,3 7%bO&&i Ab~59 &&XGK"'0U!R& 10 FJlJ Q! (sQsQ]31heA!Zsꈐ43 0 @?ҏn'8R# b7fJ:]T#3 AMJUFJuM` ?uJt  .9BWyIt=Wnq׏8IR_FIl#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ %ޜ\0?c Q#Oc Q\}ȱ~aE:pϫ0:iG`iw*h<5a#j8oJiqze~EA#o>"]rA #sHD:  # h4>T]]9 MTJUF%?FG>'~ݡD?F,6^?P6 #>JuM` ?juJt  HIt=WByIR?8Il?Rv\#>2zGz?@MJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!ZA!ZV\?F9"rA #sHD:  # h#4>T#3 AMJUFQK݆x?F-1?F %?FP_EyFw?P6 $>JuM` ?uJt  fd>It=WN6sgHRUo}WIlT?y6ވ#>2zGz?@MJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!A!1l&fL# $<EfB 9b`fJ:%ޜ'\0:iG`Oc qy"zeEajoJiaze<5e'fÞ 0mFaij mh~EA#o>"rA 5#sHD:  # h4>T]]9 MTJUF|k~ؾ?F;?F%9.?F,6^?P6 v%>JuM` ?)uJt  ُuߓIt=Wί IRkzIlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTtt(c])t20 9tuM c os If"!r !a i n.t WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+Z lJ]UhzЎ!A!ZֺV\O?F9&sA#<# $B %jfJ'jWĞ 00>oPaYc l]]aE:P^c0TbCcba`iK8K8h<5e %k(qQlqe~EeF$||`ai !hA'o>v"rA # sHD:  # h4>T]]9 MTJUFFJuM` ?)uJt  L+It=WݑHIRE! YBIl p#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!`197b$<# h$B 9b`fJ: m$D]0:mOc i'A~aEeT7E?c  V#NeFaze<5eF$|lVaiU3Lh~EA#o>"]rA #sHD:  # h4>T]]9 MTJUFQt?FRLxw?F~ tC?F7܄E?P6 v'>JuM` ?)uJt  6j>It=WNFFIRݮIl$dvĤ#>2zGz?@MJAebM #zT (#+#+#&Jp!p!5 g`?CopyrigTt (c) W20 9 M ]c os f"R!r !a i n. AUl (s"e e v0d @i!Em$}! K2?b6 3?ALb4(&$3/ 4/U%-|# e|'b6 ?Fiie<59 FX/G'0UBb6!}40 aFuJlJ 8>UhAA !1!Z(. E|zo}#<b$] RVJ:F,a0RS S IBf>QEҺV\?Ft@K\B?U--# i[F @ h<53nI9fKo]o ڵ h5a9YUU aUU~ 3yk]Q ieq5 h2r_U"]rA #sHD:  # h8>T ]]9 MTJUFXf?Fݼ?F AE?Fzl]?P6 (>JuM`lW? SuJt  ?aV_MtA[_=p'MVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @nib#zv t#b( (+&B" ?APb)4(z$CD3//&*115 k`?CopyrigTtk(wc)k2009kM0c0o%s0f21r01ua0i0n.k_ Al @ 8UsBe0e0v @ d@1H4-,3 7%bO&&i Ab~59 &&XGK"'0U!R&!40 FJlJ Q! sQsQ]31heA!Zsꈐ43 0 @?ҏn'R# b7fJ:]T#3 AMJUF;Э?Fn?F#6?F{_ "w?P6 )>JuM` ?uJt  &lIt=WAI׃IR_FIl#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L( DO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ %ޜ\0?c Q#Oc Q\}ȱ~aE:pϫ0:iG`iw*h<5a#j8oJiqze~EA#o>"]rA #sHD:  # h4>T]]9 MTJUFAYr?F L?FݡD?F,6^?P6 v*>JuM` ?)uJt  0@hIt=WmiIR?8IlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!ZV\槈?F9"rA #sHD:  # h#4>T#3 AMJUFZ?F!ќ?F %?FP_EyFw?P6 +>JuM` ?uJt  JJ&qIt=WrhIRUo_}WIlTy6ވ#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ:%O\0:iG`Oc qy"zeEajoJiaze<5e'fÏ 0mFaij? mh~EA#o>"rA k#sHD:  # h4>T]]9 MTJUF9 `?F2{ о?F%9.?F,6^?P6 v,>JuM` ?)uJt  V6>nIt=WgD~baIRkzIlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 $V+ZlJ]Uhz@!A!ZֺV?\?F9&sA #<# $B jfJ'jWĞ 00>oPaYc ?l]]|eE:P^0TbCcba`iK8K8h<5e %k(qQlqe~EeF$||`ai !hA'o>"rA #sHD:  # h4>T]]9 MTJUFq[')?F9i7?FV\?F. xy?P6 v->JuM` ?)uJt  9KIt=WYGJIRE! YBIl p#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!`197b$<# h$B 9b`fJ: m$D]0:mOc i'A~aEeT7E?c  V#NeFaze<5eF$|lVaiU3Lh~EA#o>"]rA #sHD:  # h4>T]]9 MTJUFӅN?FZDM?F~ tC?F7܄E?P6 v.>JuM` ?)uJt  1|It=WƯ:IRݮIl$dvĤ#>2zGz?@MJAebM #zT (#+#+#&Jp!p!5 g`?CopyrigTt (c) W20 9 M ]c os f"R!r !a i n. AUl (s"e e v0d @i!Em$}! K2?b6 3?ALb4(&$3/ 4/U%-|# e|'b6 ?Fiie<59 FX/G'0UBb6!}40 aFuJlJ 8>UhAA !1!Z(. E|zo}#<bc$2] )VJ:F,00RS S IBf>QEҺV\?Ft@K\BU--| i[F @ h<53nI9fKo]o  h5a9YUU aUU 3yk]Q ieq5 hb2r_U"rA #sHD:  # h8>T ]]9 MTJUFv?Fz?F AE?Fzl]?P6 />JuM`lW? SuJt  y SksMtA[_eMVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @nib#zv t#b( (+&B" ?APb)4(z$CD3//&*115 k`?CopyrigTtk(wc)k2009kM0c0o%s0f21r01ua0i0n.k_ Al @ 8UsBe0e0v @ d@1H4-,3 7%bO&&i Ab~59 &&XGK"'0U!R&!40 FJlJ Q! (sQsQ]31heA!Zsꈐ43 0 @?/n' #M b7fJ:]T#3 AMJUF`;?F:7?F#6?F{_ "w?P6 0>JuM` ?uJt  4E$pIt=WLx4IR_FIl#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L( DO ie<59 FuXG_'0U`Rb6J!}4 V"+ZlJUhh|G!A!1l&fL# $<EfB 9b`fJ %ޜ\0?c Q菌#Oc Q\}ֱ~aE:pOϫ0:iG`iw*h<5a#j8oJiqze~EA#o>"rA #sHD:  # h4>T]]9 MTJUF [kԏ?F4 c?FݡD?F,6^?P6 v1>JuM` ?)uJt  uIt=Wt]aIR?8IlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!ZV\槈?F9"rA #sHD:  # h#4>T#3 AMJUFYļ#?FŬ /?F %?FP_EyFw?P6 2>JuM` ?uJt  B?˳It=WFp\cIRUo_}WIlTy6ވ#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181a ??8:C$?'4/U%G|# |'b6L(BBO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ:%O\0:iG`Oc qy"zeEajoJiaze<5e'fÏ 0mFaij? mh~E#o>"rA k#sHD:  # h4>T]]9 MTJUF-!4?FL$$?F%9.,6^?P6 3>JuM` ?juJt  rs"It=WVIRkzIl?Rv\#>2zGz?@MJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigT}tZ(c)ZW20 9ZM ]c os f"R!r !a i n.Z AQl [&s"e e v0d @i!Em$+A?b6 ?AgJaT6` F !!l"zbAR +6ig5V181 ?2?;:C?'$4/U%G|# |'b6L3FO ie<59 FXG'K0U`Rb6!}4K0 V+ZlJ]Uhz!A!ZֺV\?F9&߮sA#`<# $B jfJ'jW?Ğ 00>oPaYc l]G]aE:P^0TbCcba`i?K8K8h<5e %k(qׁQlqe~EeF$||`ai !hA'o>"]rA #sHD:  # h4>T]]9 MTJUFX?Ş?F).?FV\?F. xy?P6 a?JuM` ?uJt  sd It=W> IRE!_ YBIl p#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6La(`BO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!19b$<# $4` 9b`fJ: m$D]0:mOc i'A~aEeTE?c  V#NeFaze<5eF?$|lVaiU3Lh~EA#o>"rA #sHD:  # h4>T]]9 MTJUFQC]?FD?b.?F~ tC?F7܄E?P6 v5>JuM` ?)uJt  [It=Wq.IRݮIl$dvĤ#>2zGz?@MJAebM #zT (#+#+#&Jp!p!5 g`?CopyrigTt (c) W20 9 M ]c os f"R!r !a i n. AUl (s"e e v0d @i!Em$}! K2?b6 3?ALb4(&$3/ 4/U%-|# e|'b6 ?Fiie<59 FX/G'0UBb6!}40 aFuJlJ 8>UhAA !1!Z(. E|zo}#<b$] RVJ:F,a0RS S IBf>QEҺV\?Ft@K\B?U--# i[F @ h<53nI9fKo]o ڵ h5a9YUU aUU~ 3yk]Q ieq5 h2r_U"]rA #sHD:  # h8>T ]]9 MTJUF:??Fq12?F AE?Fzl]?P6 6>JuM`lW? SuJt  /êQPͰMtA[_Y#MVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @nib#zv t#b( (+&B" ?APb)4(z$CD3//&*115 k`?CopyrigTtk(wc)k2009kM0c0o%s0f21r01ua0i0n.k_ Al @ 8UsBe0e0v @ d@1H4-,3 7%bO&&i Ab~59 &&XGK"'0U!R&!40 FJlJ Q! (sQsQ]31heA!Zsꈐ43 0 @?/n' #M b7fJ:] f? @ fA B &C  fE  &F b & 4&H fH&I \&J fp&K &L f&M &N &&O & f&Q &R f6S $6T f86U L6V f`6W t6X f6Y 6Z f6[ 6\ f6] 6^ fF_ F` f(Fa ~L1B~`1F~t1[D1e1R~1~1Z~1^~1b~Af~Aj~(AnT#3 AMJUF6٫&?Fh%4+ޱ?F*5?F$_D"w?P6 8>JuM` ?uJt  (LbIt=W,MyIR_FIl#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6ig5V1`e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ۰Z@]0?c Q#Oc Q\}|zeE:O)0:iG`iw*h<5a#j8oJiqze~EA#o>"rA #sHD:7 # h4>T]]9 MTJUFI)?FUj?FeTC?FǿJWc^?P6 v9>JuM` ?)uJt  6|.It=WL\} IR?8IlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LQ DO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!Z!姈?F9"rA #sHD:7 # h#4>T#3 AMJUFe{5?F?Fs۰Z?FNb_+iFw?P6 :>JuM` ?uJt  DqIt=W{*IRUo_}WIlTy6ވ#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJrO@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij? mh~EA#o>"rA k#sHD:7 # h4>T]]9 MTJUFS?FަƢ?F'?FǿJWc^?P6 v;>JuM` ?)uJt  cIt=W(?IRkzIlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 $V+ZlJ]Uhz@!A!Z5?!?F9&sA #<# $B jfJ'j`00>oPaYc l]]aE:Ͷ0TbCcba`iK8K8h<5e۰ϿZk(qQlqe~EeFͭ||`ai !hA'o>"rA 5#sHD:7 # h4>T]]9 MTJUF蕯?Fcų[?F!?Flaxy?P6 v<>JuM` ?)uJt  {It=W ůIRE! YBIl p#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!`197b$<# h$B 9b`fJ: m٠uۘ]0:mOc i'A~aEe7D?c  V#NeFaze<5eF|lVaiU3Lh~EA#o>"]rA #sHD:7 # h4>T]]9 MTJUFA!z?FA]?F>WB?Ft=E?P6 v=>JuM` ?)uJt  wT vIt=W?mIRݮIl$dvĤ#>2zGz?@MJAebM #zT (#+#+#&Jp!p!5 g`?Copy_rigTtt(c)t2U0 9tM c os f"!rԙ !a i n}.t Al U (s"e e 5v0d i!Em$}! K2?b6 ?ALb4($I3/ 4/U%b-|# |'Yb6?Fiie<59 FjX/G'0UBib6!}40 aFuJlJ8>UhAA@ !1!Z}o'- E|zo}#<b$] VJ:FQw0RS S IBf>QE2!?Fp\BU--# i[F @ h<53n CU9fKo]o  h5a9YUU aUUwi]Q ieq5 hb2r_U"rA #sHD:7 # h8>T ]]9 MTJUF gl6?FDb,)?FUw)٫?FQ`m ^?P6 >>JuM`lW? SuJt  LUMtA[_ʓWMVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @nib#zv t#b( (+&B" ?APb)4(z$CD3//&*115 k`?CopyrigTtk(wc)k2009kM0c0o%s0f21r01ua0i0n.k_ Al @ 8UsBe0e0v @ d@1H4-,3 7%bO&&i Ab~59 &&XGK"'0U!R&!40 FJlJ Q! (sQsQ]31heA!ZU0|z3 0 @?/n' #M b7fJ:]h^PsojRփUaEQ!?!`0 0c s!R'i e:}ɟh~5aef9oa|b c gT#3 AMJUFE//?F_ 8?F*5?F$_D"w?P6 ?>JuM` ?uJt  z7It=WiIR_FIl#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+Ab6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L(a2BO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4a2 9b`fJ۰Z@]0?c Q#Oc Q\}ȱ~aE:)0:iG`iw*h<5a#j8oJiqze~EA#o>"]rA #sHD:7 # h4>T]]9 MTJUFK?Fc>,Λ?FeTC?FǿJWc^?P6 v@>JuM` ?)uJt  jDFIt=W-M3}IR?8IlRv\#>2zGz?MHJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L(BO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!A!Z!?F9v"rA # sHD:7 # h#4>T#3 AMJUFQL ?F7ԩ+?Fs۰Z?FNb_+iFw?P6 A>JuM` ?uJt  Ç\UIt=W @ٶIRUo_}WIlTy6ވ#>2zGz?N@MJ@eb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L( DO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ:rO@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij? mh~EA#o>"rA k#sHD:7 # h4>T]]9 MTJUFLli[?FQ>?F'?FǿJWc^?P6 vB>JuM` ?)uJt  ICIt=WN3sIRkzIlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 $V+ZlJ]Uhz@!A!Z5?!?F9&sA #<# $B jfJ'j`00>oPaYc l]]aE:Ͷ0TbCcba`iK8K8h<5e۰ϿZk(qQlqe~EeFͭ||`ai !hA'o>"rA 5#sHD:7 # h4>T]]9 MTJUF63?F8.G?F!?Flaxy?P6 vC>JuM` ?)uJt  ͧILIt=Wf IRE! YBIl p#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LQ DO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!`197b$<# h$B 9b`fJ: m٠uۘ]0:mOc i'A~aEe7D?c  V#NeFaze<5eF|lVaiU3Lh~EA#o>"]rA #sHD:7 # h4>T]]9 MTJUFPHY?FpN?F>WB?Ft=E?P6 rAJuM` ?)uJt  PrIt=WoDIRݮIl$dvĤ#>2zGz?@MJAebM #zT (#+#+#&Jp!p!5 g`?CopyrigTt (c) W20 9 M ]c os f"R!r !a i n. AUl (s"e e v0d @i!Em$}! K2?b6 3?ALb4(&$3/ 4/U%-|# e|'b6 ?Fiie<59 FX/G'0UBb6!}40 aFuJlJ 8>UhAA !1!Z}'- E|zo}#<bc$] )VJ:FQw00RS S IBf>QE2!?Fp\BU--# i?[F @ h<53n CU9fKo]o ڵ h5a9YUU aUU?wi]Q ieq5 h2r_U"rA #sHD:7 # h8>T ]]9 MTJUFǦmڷ?FWZgL?FUw)٫?FQ`m ^?P6 E>JuM`lW? SuJt  NKMtA[X_*`lMVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @nib#zv t#b( (+&B" ?APb)4(z$CD3//&*115 k`?CopyrigTtk(wc)k2009kM0c0o%s0f21r01ua0i0n.k_ Al @ 8UsBe0e0v @ d@1H4-,3 7%bO&&i Ab~59 &&XGK"'0U!R&!40 FJlJ Q! (sQsQ]31heA!ZU0|z3 0 @?/n' #M b7fJ:]h^PsojRփUaEQ!?!`0 0c s!R'i e:}ɟh~5aef9oa|b c gT#3 AMJUFܹ?F cM?F*5?F$_D"w?P6 F>JuM` ?uJt  @@|It=Wn56uIR_FIl#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ۰Z@]0?c Q#Oc Q\}ȱ~aE:)0:iG`iw*h<5a#j8oJiqze~EA#o>"]rA #sHD:7 # h4>T]]9 MTJUF (?FthZ?FeTC?FǿJWc^?P6 vG>JuM` ?)uJt  It=WX IR?8IlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%`|# |'1b6LQBBO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!Z!姈?F9"rA #sHD:7 # h#4>T#3 AMJUFr!Qw?Fvk?Fs۰Z?FNb_+iFw?P6 AJuM` ?uJt  1It=WOIRUo_}WIlTy6ވ#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L(BO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4 9b`fJ:rO@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij? mh~EA#o>"rA k#sHD:7 # h4>T]]9 MTJUF!P4K?F l?F'?FǿJWc^?P6 vI>JuM` ?)uJt  {d5Z\It=W2;wEIRkzIlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 $V+ZlJ]Uhz@!A!Z5?!?F9&sA #<# $B jfJ'j`00>oPaYc ?l]]beE:Ͷǝ0TbCcba`iK8K8h<5e۰Zk(qQlqe~EeFͭ||`ai !hA'o>"rA #sHD:7 # h4>T]]9 MTJUFYzUv?FS s9?F!?Flaxy?P6 vJ>JuM` ?)uJt  V"(It=W7:LIRE! YBIl p#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!`197b$<# h$B 9b`fJ: m٠uۘ]0:mOc i'A~aEe7D?c  V#NeFaze<5eF|lVaiU3Lh~EA#o>"]rA #sHD:7 # h4>T]]9 MTJUF)"z>?F^i2VS?F>WB?Ft=E?P6 vK>JuM` ?)uJt  7It=WܯHIRݮIl$dvĤ#>2zGz?@MJAebM #zT (#+#+#&Jp!p!5 g`?CopyrigTt (c) W20 9 M ]c os f"R!r !a i n. AUl (s"e e v0d @i!Em$}! K2?b6 3?ALb4(&$3/ 4/U%-|# e|'b6 ?Fiie<59 FX/G'0UBb6!}40 aFuJlJ 8>UhAA !1!Z}'- E|zo}#<b$] RVJ:FQwa0RS S IBf>QE2!?Fp\B?U--# i[F @ h<53n CU9fKo]o ڵ h5a9YUU aUU~wi]Q ieq5 h2r_U"]rA #sHD:7 # h8>T ]]9 MTJUF{KY?F#v\?FUw)٫?FQ`m ^?P6 L>JuM`lW? SuJt  o|MtA[_"oRMVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @nib#zv t#b( (+&B" ?APb)4(z$CD3//&*115 k`?CopyrigTtk(wc)k2009kM0c0o%s0f21r01ua0i0n.k_ Al @ 8UsBe0e0v @ d@1H4-,3 7%bO&&i Ab~59 &&XGK"'0U!R&!40 FJlJ Q! (sQsQ]31heA!ZU0|z3 0 @?/n' #M b7fJ:]h^PsojRփUaEQ!?!`0 0c s!R'i e:}ɟh~5aef9oa|b c gT#3 AMJUF<5^?FUP?F*5?F$_D"w?P6 M>JuM` ?uJt  .9BWyIt=Wnq׏8IR_FIl#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L( DO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ۰Z@]0?c Q#Oc Q\}ȱ~aE:)0:iG`iw*h<5a#j8oJiqze~EA#o>"]rA #sHD:7 # h4>T]]9 MTJUF?F͍~eTC?FJWc^?P6 N>JuM` ?juJt  HIt=WByIR?8Il?Rv\#>2zGz?@MJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!ZA!Z!?F9"rA #sHD:7 # h#4>T#3 AMJUFSw?FK?Fs۰Z?FNb_+iFw?P6 O>JuM` ?uJt  fd>It=WN6sgHRUo}WIlT?y6ވ#>2zGz?@MJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!A!1l&fL# $<EfB 9b`fJ:r'@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij mh~EA#o>"rA 5#sHD:7 # h4>T]]9 MTJUF%u)H׾?FȐ?F'?FǿJWc^?P6 rAJuM` ?)uJt  ُuߓIt=Wί IRkzIlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTtt(c])t20 9tuM c os If"!r !a i n.t WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6LLs2BO ie<59 FXG/'0U`Rb6-!}40 V+Z lJ]UhzЎ!A!Z5!O?F9&sA#<# $s2 %jfJ'j`00>oPaYc l]]aE:Ͷc0TbCcba`iK8K8h<5e۰Zk(qQlqe~EeFͭ||`ai !hA'o>v"rA # sHD:7 # h4>T]]9 MTJUFf^oO?F]?F!?Flaxy?P6 vQ>JuM` ?)uJt  L+It=WݑHIRE! YBIl p#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!`197b$<# h$B 9b`fJ: m٠uۘ]0:mOc i'A~aEe7D?c  V#NeFaze<5eF|lVaiU3Lh~EA#o>"]rA #sHD:7 # h4>T]]9 MTJUFr,?F4w?F>WB?Ft=E?P6 vR>JuM` ?)uJt  6j>It=WNFFIRݮIl$dvĤ#>2zGz?@MJAebM #zT (#+#+#&Jp!p!5 g`?CopyrigTt (c) W20 9 M ]c os f"R!r !a i n. AUl (s"e e v0d @i!Em$}! K2?b6 3?ALb4(&$3/ 4/U%-|# e|'b6 ?Fiie<59 FX/G'0UBb6!}40 aFuJlJ 8>UhAA !1!Z}'- E|zo}#<b$] RVJ:FQwa0RS S IBf>QE2!?Fp\B?U--# i[F @ h<53n CU9fKo]o ڵ h5a9YUU aUU~wi]Q ieq5 h2r_U"]rA #sHD:7 # h8>T ]]9 MTJUF_5=~?Fe,=Vݼ?FUw)٫?FQ`m ^?P6 S>JuM`lW? SuJt  ?aV_MtA[_=p'MVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @nib#zv t#b( (+&B" ?APb)4(z$CD3//&*115 k`?CopyrigTtk(wc)k2009kM0c0o%s0f21r01ua0i0n.k_ Al @ 8UsBe0e0v @ d@1H4-,3 7%bO&&i Ab~59 &&XGK"'0U!R&!40 FJlJ Q! (sQsQ]31heA!ZU0|z3 0 @?/n' #M b7fJ:]h^PsojRփUaEQ!?!`0 0c s!R'i e:}ɟh~5aef9oa|b c gT#3 AMJUF<@έ?F&¬?F*5?F$_D"w?P6 T>JuM` ?uJt  &lIt=WAI׃IR_FIl#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJa6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6 LeE O @ie<59 FXG'0U`Rb6!}40 V+ZlJQI0h|G!A !6&f# &$<EfBM 9b`fJ۰Z@]0?c Q#Oc ?Q\}ֱ~aE:)'0:iG`iw*h<5a#j8oJiqze`~EA#o>"rA #sHD:7 # h4>T]]9 MTJUFpq?Fq֌?FeTC?FǿJWc^?P6 vU>JuM` ?)uJt  0@hIt=WmiIR?8IlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LQBBO ie<59 FXG'0U`RŴb6!}40 V+ZlJQ@hh|G!A!Z!?F9v"rA # sHD:7 # h#4>T#3 AMJUF߳ڮ?F$ ?Fs۰Z?FNb_+iFw?P6 V>JuM` ?uJt  JJ&qIt=WrhIRUo_}WIlTy6ވ#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6big581e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ:rO@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij? mh~EA#o>"rA k#sHD:7 # h4>T]]9 MTJUF>=9_?FL(Ѿ?F'?FǿJWc^?P6 vW>JuM` ?)uJt  V6>nIt=WgD~baIRkzIlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 $V+ZlJ]Uhz@!A!Z5?!?F9&sA #<# $B jfJ'j`00>oPaYc ?l]]|eE:Ͷǝ0TbCcba`iK8K8h<5e۰Zk(qQlqe~EeFͭ||`ai !hA'o>"rA #sHD:7 # h4>T]]9 MTJUFBP(?FxQ8?F!?Flaxy?P6 vX>JuM` ?)uJt  9KIt=WYGJIRE! YBIl p#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FD'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!`197b$<# h$B 9b`fJ: m٠uۘ]0:mOc i'A~aEe7D?c  V#NeFaze<5eF|lVaiU3Lh~EA#o>"]rA #sHD:7 # h4>T]]9 MTJUFMW?FM6N?F>WB?Ft=E?P6 vY>JuM` ?)uJt  1|It=WƯ:IRݮIl$dvĤ#>2zGz?@MJAebM #zT (#+#+#&Jp!p!5 g`?CopyrigTt (c) W20 9 M ]c os f"R!r !a i n. AUl (s"e e v0d @i!Em$}! K2?b6 3?ALb4(&$3/ 4/U%-|# e|'b6 ?Fiie<59 FX/G'0UBb6!}40 aFuJlJ 8>UhAA !1!Z}'- E|zo}#<b$] RVJ:FQwa0RS S IBf>QE2!?Fp\BU--| i?[F @ h<53n CU9fKo]o ڵ h5a9YUU aUU?wi]Q ieq5 h2r_U"rA #sHD:7 # h8>T ]]9 MTJUF('J?FK5+:?FUw)٫?FQ`m ^?P6 Z>JuM`lW? SuJt  y SksMtA[_eMVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @nib#zv t#b( (+&B" ?APb)4(z$CD3//&*115 k`?CopyrigTtk(wc)k2009kM0c0o%s0f21r01ua0i0n.k_ Al @ 8UsBe0e0v @ d@1H4-,3 7%bO&&i Ab~59 &&XGK"'0U!R&!40 FJlJ Q! (sQsQ]31heA! U0|z3 0 @?ҏn'R# b7fJ:]h^PsojR֯UaEQ!?ߟ!`0 0c s!R'i e:}ɟh~5aef9oa|b c gT#3 AMJUFB?F̒-8?F*5?F$_D"w?P6 [>JuM` ?uJt  4E$pIt=WLx4IR_FIl#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ۰Z@]0?c Q#Oc Q\}ȱ~aE:)0:iG`iw*h<5a#j8oJiqze~EA#o>"]rA #sHD:7 # h4>T]]9 MTJUFJ*ӏ?Fc?FeTC?FǿJWc^?P6 v\>JuM` ?)uJt  uIt=Wt]aIR?8IlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!Z!姈?F9"rA #sHD:7 # h#4>T#3 AMJUF"?F!S/?Fs۰Z?FNb_+iFw?P6 ]>JuM` ?uJt  B?˳It=WFp\cIRUo_}WIlTy6ވ#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ:rO@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij? mh~EA#o>"rA k#sHD:7 # h4>T]]9 MTJUF?F2\D?F'異JWc^?P6 ^>JuM` ?juJt  rs"It=WVIRkzIl?Rv\#>2zGz?@MJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigT}tZ(c)ZW20 9ZM ]c os f"R!r !a i n.Z AQl [&s"e e v0d @i!Em$+A?b6 ?AgJaT6` F !!l"zbAR +6ig5V181 ?2?;:C?'$4/U%G|# |'b6L3FO ie<59 FXG'K0U`Rb6!}4K0 V+ZlJ]Uhz!A!Z5!?F9&߮sA#`<# $B jfJ'j?`00>oPaYc l]G]aE:Ͷ0TbCcba`i?K8K8h<5e۰Zk(qׁQlqe~EeFͭ||`ai !hA'o>"]rA #sHD:7 # h4>T]]9 MTJUF79 Ğ?Fl_n.?F!?Flaxy?P6 v_>JuM` ?)uJt  sd It=W> IRE! YBIl p#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!`197b$<# h$B 9b`fJ: m٠uۘ]0:mOc i'A~aEe7D?c  V#NeFaze<5eF|lVaiU3Lh~EA#o>"]rA #sHD:7 # h4>T]]9 MTJUF-#&\?FZ|?F>WB?Ft=E?P6 v`>JuM` ?)uJt  [It=Wq.IRݮIl$dvĤ#>2zGz?@MJAebM #zT (#+#+#&Jp!p!5 g`?CopyrigTt (c) W20 9 M ]c os f"R!r !a i n. AUl (s"e e v0d @i!Em$}! K2?b6 3?ALb4(&$3/ 4/U%-|# e|'b6 ?Fiie<59 FX/G'0UBb6!}40 aFuJlJ 8>UhAA !1!Z}'- E|zo}#<b$] RVJ:FQwa0RS S IBf>QE2!?Fp\B?U--# i[F @ h<53n CU9fKo]o ڵ h5a9YUU aUU~wi]Q ieq5 h2r_U"]rA #sHD:7 # h8>T ]]9 MTJUFW>?F7 ?FUw)٫?FQ`m ^?P6 a>JuM`lW? SuJt  /êQPͰMtA[_Y#MVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @nib#zv t#b( (+&B" ?APb)4(z$CD3//&*115 k`?CopyrigTtk(wc)k2009kM0c0o%s0f21r01ua0i0n.k_ Al @ 8UsBe0e0v @ d@1H4-,3 7%bO&&i Ab~59 &&XGK"'0U!R&!40 FJlJ Q! (sQsQ]31heA!ZU0|z3 0 @?ҏn'0S b7fJ:]h^PsojR֯UaEQ!?ߟ!`0 0c s!R'i e:}ɟh~5aef9oa|b c g~L1B~`1F~t1[D1e1R~1~1Z~1^~1b~Af~Aj~(AnT#3 AMJUF6٫&?Fh%4+ޱ?F*5?F$_D"w?P6 c>JuM` ?uJt  (LbIt=W,MyIR_FIl#>2zGz?N@MJAeb #z (#+#+T#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A ?b6 ?AgJamT6G` F !!l"zbA +6iTg5V181 ?2?;:C?'I4/U%G,|# |'b6&L D O @ie<59 FXG'0U`Rb6!}40 V+ZlJQI0h|G!A !16&f &$<EfBM 9b`fJ۰Z@]0?c Q#Oc Q\}|zeE:)0:iG`i?w*h<5a#j8oJiqze~EA#o>"rA k#sHD:b # h4>T]]9 MTJUFI)?FUj?FeTC?FǿJWc^?P6 vd>JuM` ?)uJt  6|.It=WL\} IR?8IlRv\#>2zGz?@M2JAe7b #zQ (#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6LL0DO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!ZA!Z!?F9"rA #sHD:b # h#4>T#3 AMJUFe{5?F?Fs۰Z?FNb_+iFw?P6 e>JuM` ?uJt  DqIt=W{*IRUo_}WIlTy6ވ#>2zGz?N@MJAeb #z (#+#+T#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A ?b6 ?AgJamT6G` F !!l"zbA +6iTg5V181 ?2?;:C?'I4/U%G,|# |'b6&L0D O @ie<59 FXG'0U`Rb6!}40 V+ZlJQI0h|G!A !16&f &$<EfBM 9b`fJ:r@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij mh~EA#o>"rA #sHD:b # h4>T]]9 MTJUFS?FަƢ?F'?FǿJWc^?P6 vf>JuM` ?)uJt  cIt=W(?IRkzIlRv\#>2zGz?@M2JAe7b #zQ (#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6LL DO ie<59 FXG/'0U`Rb6-!}40 V+Z lJ]UhzЎ!A!Z5!O?F9&sA#< $B %jfJ'j`00>oPaYc l]]aE:Ͷc0TbCcba`iK8K8h<5e۰Zk(qQlqe~EeFͭ||`ai !hA'o>v"rA # sHD:b # h4>T]]9 MTJUF蕯?Fcų[?F!?Flaxy?P6 vg>JuM` ?)uJt  {It=W ůIRE! YBIl p#>2zGz?@M2JAe7b #zQ (#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A?b6 ?A mT6G` F !!l"zbA +6iTg5V181 ?2?;:C?'I4/U%G,|# |'b6&L2B O @ie<59 FXG'0U`Rb6!}40 V+ZlJQI0h|G!A !19b$< $2M 9b`fJ: m٠uۘ]ᇄ0:mOc i'A~aEeD?c  V#NeFaze<5eF|lVaiU?3Lh~EA#o>"rA k#sHD:b # h4>T]]9 MTJUFA!z?FA]?F>WB?Ft=E?P6 rUAJuM` ?)uJt  wT vIt=W?mIRݮIl$dvĤ#>2zGz?@M JAe #z (#+#+#&*Jp!p!5 g`?CopyrigTtt(wc)t20 9tM c o%s f"!r !ua i n.t_ Al (Us"e e v0 d i!Em$}! K2?0b6 ?ALcb4($3/ 4/U%-X|# |'b6?Fiie<59 FX/G_'0UBb6Z!}40 aFuJlJ8>UhAA Ў!1!Z}'[- E|zo}#;<b$T] VJ:FQw0RS S IBf>QE2!?Fp\BU--# i[F @ h<53n CU9fKo]o ?ڵ h5a9YUU aUUwi㼕]Q ieOq5 h2r_U"rA #sHD:b # h8>T ]]9 MTJUF gl6?FDb,)?FUw)٫?FQ`m ^?P6 i>JuM`lW? SuJt  LUMtA[_ʓWMVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @i #zv t#.b( (+&B"f ?APb)4(z$D3//& 115 k`?CopyrigTtk(c])k2009kuM0c0os0If21r01a0i0n.k WAl @ 8sBUe0e0v @d@14-3K 7!bO&& b~59 &&XGK"'0U!R&!40R FJlJ Q! (sQsQ]31eA-!ZU0|z 0f @?n'B# b7fJ:]h^Psoj?R֯UaEQ!?!`0 0c s!R'i e:}ɟh~5aef9oa|b c gT#3 AMJUFE//?F_ 8?F*5?F$_D"w?P6 j>JuM` ?uJt  z7It=WiIR_FIl#>2zGz?N@MJAeb #z (#+#+T#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A ?b6 ?AgJamT6G` F !!l"zbA +6iTg5V181 ?2?;:C?'I4/U%G,|# |'b6fLF O @ie<59 FXG'0U`Rb6!}40 V+ZlJQI0h|G!A !16&f &$<EfBM 9b`fJ۰Z@]0?c Q#Oc ?Q\}ֱ~aE:)'0:iG`iw*h<5a#j8oJiqze`~EA#o>"rA #sHD:b # h4>T]]9 MTJUFK?Fc>,Λ?FeTC?FǿJWc^?P6 vk>JuM` ?)uJt  jDFIt=W-M3}IR?8IlRv\#>2zGz?@M2JAe7b #zQ (#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!ZA!Z!?F9"rA #sHD:b # h#4>T#3 AMJUFQL ?F7ԩ+?Fs۰Z?FNb_+iFw?P6 l>JuM` ?uJt  Ç\UIt=W @ٶIRUo_}WIlTy6ވ#>2zGz?N@MJAeb #z (#+#+T#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A ?b6 ?AgJamT6G` F !!l"zbA +6iTg5V181 ?2?;:C?'I4/U%G,|# |'b6&L D O @ie<59 FXG'0U`Rb6!}40 V+ZMQI0h|G!A !16&f &$<EfBM 9b`fJ:r@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij mh~EA#o>"rA #sHD:b # h4>T]]9 MTJUFLli[?FQ>?F'?FǿJWc^?P6 vm>JuM` ?)uJt  ICIt=WN3sIRkzIlRv\#>2zGz?@M2JAe7b #zQ (#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+Z lJ]UhzЎ!A!Z5!O?F9&sA#< $B %jfJ'j`00>oPaYc l]]aE:Ͷc0TbCcba`iK8K8h<5e۰Zk(qQlqe~EeFͭ||`ai !hA'o>v"rA # sHD:b # h4>T]]9 MTJUF63?F8.G?F!?Flaxy?P6 vn>JuM` ?)uJt  ͧILIt=Wf IRE! YBIl p#>2zGz?@M2JAe7b #zQ (#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6LL DO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!A!19b $< $B 9b`fJ: m٠uۘ]0:mOc ?i'A~aEeDͅ?c ? V#NeFaze<5eF|lVaiU3Lh`~EA#o>"rA #sHD:b # h4>T]]9 MTJUFPHY?FpN?F>WB?Ft=E?P6 vo>JuM` ?)uJt  PrIt=WoDIRݮIl$dvĤ#>2zGz?@M JAe #z (#+#+#&*Jp!p!5 g`?CopyrigTt (c) 2U0 9 M c os f"!rԙ !a i n}. Al U (s"e e 5v0d i!Em$}! K2?b6 ?ALb4($I3/ 4/U%b-|# |'Yb6?Fiie<59 FjX/G'0UBib6!}40 aFuJlJ8>UhAA@ !1!Z}o'- E|zo}#<bX$ [ VʼJ:F?Qw0ȒS S I?Bf>QE2!?Fp\BU--# i[ÏF @ h<53n ?CU9fKo]o ڵ h5a9YUU aUUwi]Q i?eq5 h2r_U"rA k#sHD:b # h8>T ]]9 MTJUFǦmڷ?FWZgL?FUw)٫?FQ`m ^?P6 p>JuM`lW? SuJt  NKMtA[X_*`lMVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @i #zv t#.b( (+&B"f ?APb)4(z$D3//& 115 k`?CopyrigTtk(c])k2009kuM0c0os0If21r01a0i0n.k WAl @ 8sBUe0e0v @d@14-3K 7IbO&&i bP~59 &&XGK"'0U!R&!40 FJlJ $Q! (sQsQ]31ZeA!ZU0|z 0 @?n'0S b7fJ:]h?^PsojR֯UaEQ!?!`c0 0c s!R'i e:}ɟh~5aef9oa|b c gT#3 AMJUFܹ?F cM?F*5?F$_D"w?P6 q>JuM` ?uJt  @@|It=Wn56uIR_FIl#>2zGz?N@MJAeb #z (#+#+T#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A ?b6 ?AgJamT6G` F !!l"zbA +6iTg5V181 ?2?;:C?'I4/U%G,|# |'b6fLF O @ie<59 FXG'0U`Rb6!}40 V+ZlJQI0h|G!A !16&f &$<EfBM 9b`fJ۰Z@]0?c Q#Oc ?Q\}ֱ~aE:)'0:iG`iw*h<5a#j8oJiqze`~EA#o>"rA #sHD:b # h4>T]]9 MTJUF (?FthZ?FeTC?FǿJWc^?P6 vr>JuM` ?)uJt  It=WX IR?8IlRv\#>2zGz?@M2JAe7b #zQ (#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6LL2BO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!ZA!Z!?F9"rA #sHD:b # h#4>T#3 AMJUFr!Qw?Fvk?Fs۰Z?FNb_+iFw?P6 s>JuM` ?uJt  1It=WOIRUo_}WIlTy6ވ#>2zGz?N@MJAeb #z (#+#+T#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A ?b6 ?AgJamT6G` F !!l"zbA +6iTg5V181 ?2?;:C?'I4/U%G,|# |'b6&L D O @ie<59 FXG'0U`Rb6!}40 V+ZlJQI0h|G!A !16&f &$<EfBM 9b`fJ:r@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij mh~EA#o>"rA #sHD:b # h4>T]]9 MTJUF!P4K?F l?F'?FǿJWc^?P6 vt>JuM` ?)uJt  {d5Z\It=W2;wEIRkzIlRv\#>2zGz?@M2JAe7b #zQ (#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6LL DO ie<59 FXG/'0U`Rb6-!}40 V+Z lJ]UhzЎ!A!Z5!O?F9&sA#< $B %jfJ'j`00>oPaYc l]]beE:Ͷ10TbCcba`iK8K8h<5e۰Zk(qQlqe~EeFͭ||`ai !hA'o>"rA #sHD:b # h4>T]]9 MTJUFYzUv?FS s9?F!?Flaxy?P6 vu>JuM` ?)uJt  V"(It=W7:LIRE! YBIl p#>2zGz?@M2JAe7b #zQ (#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!A!19b $< $B 9b`fJ: m٠uۘ]0:mOc ?i'A~aEeDͅ?c ? V#NeFaze<5eF|lVaiU3Lh`~EA#o>"rA #sHD:b # h4>T]]9 MTJUF)"z>?F^i2VS?F>WB?Ft=E?P6 vv>JuM` ?)uJt  7It=WܯHIRݮIl$dvĤ#>2zGz?@M JAe #z (#+#+#&*Jp!p!5 g`?CopyrigTt (c) 2U0 9 M c os f"!rԙ !a i n}. Al U (s"e e 5v0d i!Em$}! K2?b6 ?ALb4($I3/ 4/U%b-|# |'Yb6?Fiie<59 FjX/G'0UBib6!}40 aFuJlJ8>UhAA@ !1!Z}o'- E|zo}#<bX$ 0[ VʼJ:F?Qw0ȒS S I?Bf>QE2!?Fp\BU--# i[ÏF @ h<53n ?CU9fKo]o ڵ h5a9YUU aUUwi]Q i?eq5 h2r_U"rA k#sHD:b # h8>T ]]9 MTJUF{KY?F#v\?FUw)٫?FQ`m ^?P6 w>JuM`lW? SuJt  o|MtA[_"oRMVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @i #zv t#.b( (+&B"f ?APb)4(z$D3//& 115 k`?CopyrigTtk(c])k2009kuM0c0os0If21r01a0i0n.k WAl @ 8sBUe0e0v @d@14-3K 7IbO&&i bP~59 &&XGK"'0U!R&!40 FJlJ $Q! (sQsQ]31ZeA!ZU0|z 0 @?nK' # bS7fJ:]h^PsojR֯UaEQ!?!`0 0c s!R'i e:}ɟh~5aef9oa|b c gT#3 AMJUF<5^?FUP?F*5?F$_D"w?P6 x>JuM` ?uJt  .9BWyIt=Wnq׏8IR_FIl#>2zGz?N@MJAeb #z (#+#+T#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A ?b6 ?AgJamT6G` F !!l"zbA +6iTg5V181 ?2?;:C?'I4/U%G,|# |'b6fLF O @ie<59 FXG'0U`Rb6!}40 V+ZlJQI0h|G!A !16&f &$<EfBM 9b`fJ۰Z@]0?c Q#Oc ?Q\}ֱ~aE:)'0:iG`iw*h<5a#j8oJiqze`~EA#o>"rA #sHD:b # h4>T]]9 MTJUF?F͍~eTC?FJWc^?P6 y>JuM` ?juJt  HIt=WByIR?8Il?Rv\#>2zGz?@MJAebM #zT (#+#+#&Jp!p!5 g`?CopyrigTt (c) W20 9 M ]c os f"R!r !a i n. AUl (s"e e v0d @i!Em$+A?b6 ?AgJaT6` F !!l"zbAR +6ig5V181 ?2?;:C?'$4/U%G|# |'b6L DO ie<59 FXG'K0U`Rb6!}4K0 V+ZlJQI0h|G!A!Z!?F9"rA #sHD:b # h#4>T#3 AMJUFSw?FK?Fs۰Z?FNb_+iFw?P6 z>JuM` ?uJt  fd>It=WN6sgHRUo}WIlT?y6ވ#>2zGz?@MJAebM #zT (#+#+#&Jp!p!5 g`?CopyrigTt (c) W20 9 M ]c os f"R!r !a i n. AUl (s"e e v0d @i!Em$+A?b6 ?AgJaT6` F !!l"zbAR +6ig5V181 ?2?;:C?'$4/U%G|# |'b6L3FO ie<59 FXG'K0U`Rb6!}4K0 V+ZlJQI0h|G!A!1&f $<EfB 9b`fJ:r@]0:iG`Oc ?qy"zeEajoJiaze<5e'f`0mFaij mh~EA#o>v"rA # sHD:b # h4>T]]9 MTJUF%u)H׾?FȐ?F'?FǿJWc^?P6 v{>JuM` ?)uJt  ُuߓIt=Wί IRkzIlRv\#>2zGz?@M2JAe7b #zQ (#+#+#&JBp!p!5 g`?CopyrigT}tt(c)tW20 9tM ]c os f"R!r !a i n.t AUl (s"e e v0d @i!Em$+A?b6 ?AgJaT6` F !!l"zbAR +6ig5V181 ?2?;:C?'$4/U%G|# |'b6L3FO ie<59 FXG'K0U`Rb6!}4K0 V+ZlJ]Uhz!A!Z5!?F9&߮sA#`< $B jfJ'j?`00>oPaYc l]G]aE:Ͷ0TbCcba`i?K8K8h<5e۰Zk(qׁQlqe~EeFͭ||`ai !hA'o>"]rA #sHD:b # h4>T]]9 MTJUFf^oO?F]?F!?Flaxy?P6 v|>JuM` ?)uJt  L+It=WݑHIRE! YBIl p#>2zGz?@M2JAe7b #zQ (#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!A!19b $< $B 9b`fJ: m٠uۘ]0:mOc ?i'A~aEeDͅ?c ? V#NeFaze<5eF|lVaiU3Lh`~EA#o>"rA #sHD:b # h4>T]]9 MTJUFr,?F4w?F>WB?Ft=E?P6 v}>JuM` ?)uJt  6j>It=WNFFIRݮIl$dvĤ#>2zGz?@M JAe #z (#+#+#&*Jp!p!5 g`?CopyrigTt (c) 2U0 9 M c os f"!rԙ !a i n}. Al U (s"e e 5v0d i!Em$}! K2?b6 ?ALb4($I3/ 4/U%b-|# |'Yb6?Fiie<59 FjX/G'0UBib6!}40 aFuJlJ8>UhAA@ !1!Z}o'- E|zo}#<b$] VJ:FQw0RS S IBf>QE2!?Fp\BU--# i[F @ h<53n CU9fKo]o  h5a9YUU aUUwi]Q ieq5 hb2r_U"rA #sHD:b # h8>T ]]9 MTJUF_5=~?Fe,=Vݼ?FUw)٫?FQ`m ^?P6 ~>JuM`lW? SuJt  ?aV_MtA[_=p'MVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @i #zv t#.b( (+&B"f ?APb)4(z$D3//& 115 k`?CopyrigTtk(c])k2009kuM0c0os0If21r01a0i0n.k WAl @ 8sBUe0e0v @d@14-3K 7IbO&&i bP~59 &&XGK"'0U!R&!40 FJlJ $Q! (sQsQ]31ZeA!ZU0|z 0 @?nK' # bS7fJ:]h^PsojR֯UaEQ!?!`0 0c s!R'i e:}ɟh~5aef9oa|b c gT#3 AMJUF<@έ?F&¬?F*5?F$_D"w?P6 >JuM` ?uJt  &lIt=WAI׃IR_FIl#>2zGz?N@MJAeb #z (#+#+T#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A ?b6 ?AgJamT6G` F !!l"zbA +6iTg5V181 ?2?;:C?'I4/U%G,|# |'b6fLF O @ie<59 FXG'0U`Rb6!}40 V+ZlJQI0h|G!A !16&f &$<EfBM 9b`fJ۰Z@]0?c Q#Oc ?Q\}ֱ~aE:)'0:iG`iw*h<5a#j8oJiqze`~EA#o>"rA #sHD:b # h4>T]]9 MTJUFpq?Fq֌?FeTC?FǿJWc^?P6 v>JuM` ?)uJt  0@hIt=WmiIR?8IlRv\#>2zGz?@M2JAe7b #zQ (#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!ZA!Z!?F9"rA #sHD:b # h#4>T#3 AMJUF߳ڮ?F$ ?Fs۰Z?FNb_+iFw?P6 >JuM` ?uJt  JJ&qIt=WrhIRUo_}WIlTy6ވ#>2zGz?N@MJAeb #z (#+#+T#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A ?b6 ?AgJamT6G` F !!l"zbA +6iTg5V181 ?2?;:C?'I4/U%G,|# |'b6fLF O @ie<59 FXG'0U`Rb6!}40 V+ZlJQI0h|G!A !16&f &$<EfBM 9b`fJ:r@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij mh~EA#o>"rA #sHD:b # h4>T]]9 MTJUF>=9_?FL(Ѿ?F'?FǿJWc^?P6 v>JuM` ?)uJt  V6>nIt=WgD~baIRkzIlRv\#>2zGz?@M2JAe7b #zQ (#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+Z lJ]UhzЎ!A!Z5!O?F9&sA#< $B %jfJ'j`00>oPaYc l]]|eE:Ͷ10TbCcba`iK8K8h<5e۰Zk(qQlqe~EeFͭ||`ai !hA'o>"rA #sHD:b # h4>T]]9 MTJUFBP(?FxQ8?F!?Flaxy?P6 v>JuM` ?)uJt  9KIt=WYGJIRE! YBIl p#>2zGz?@M2JAeWb #z@Q (#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!A!19b $< $B 9b`fJ: m٠uۘ]0:mOc ?i'A~aEeDͅ?c ? V#NeFaze<5eF|lVaiU3Lh`~EA#o>"rA #sHD:b # h4>T]]9 MTJUFMW?FM6N?F>WB?Ft=E?P6 v>JuM` ?)uJt  1|It=WƯ:IRݮIl$dvĤ#>2zGz?@M JAe #z (#+#+#&*Jp!p!5 g`?CopyrigTt (c) 2U0 9 M c os f"!rԙ !a i n}. Al U (s"e e 5v0d i!Em$}! K2?b6 ?ALb4($I3/ 4/U%b-|# |'Ib6?Fiie<59 FjX/G'0UBib6!}40 aFuJlJ8>UhAA@ !1!Z}o'- E|zo}#<bX$!B] VʼJ:F?Qw0ȒS S I?Bf>QE2!?Fp\BU--| i[F @ h<53n CU9fKo]o ڵ h5a9YUU aUUwiǤ]Q işeq5 h2r_U"rA 5#sHD:b # h8>T ]]9 MTJUF('J?FK5+:?FUw)٫?FQ`m ^?P6 >JuM`lW? SuJt  y SksMtA[_eMVYBMpry2VI'>\??\.?lA8 M2ll/f?=@MJB& @i #zv t#.b( (+&B"f ?APb)4(z$D3//& 115 k`?CopyrigTtk(c])k2009kuM0c0os0If21r01a0i0n.k WAl @ 8sBUe0e0v @d@14-3K 7IbO&&i bP~59 &&XGK"'0U!R&!40 FJlJ $Q! (sQsQ]31ZeA!ZU0|z 0 @?n'."# b7fJ:]h?^PsojR֯UaEQ!?!`c0 0c s!R'i e:}ɟh~5aef9oa|b c gT#3 AMJUFB?F̒-8?F*5?F$_D"w?P6 >JuM` ?uJt  4E$pIt=WLx4IR_FIl#>2zGz?N@MJAeb #z (#+#+T#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A ?b6 ?AgJamT6G` F !!l"zbA +6iTg5V181 ?2?;:C?'I4/U%G,|# |'b6&L72B O @ie<59 FXG'0U`Rb6!}40 V+ZlJQI0h|G!A !16&f &$<Ef72M 9b`fJ۰Z@]0?c Q#Oc ?Q\}ֱ~aE:)'0:iG`iw*h<5a#j8oJiqze`~EA#o>"rA #sHD:b # h4>T]]9 MTJUFJ*ӏ?Fc?FeTC?FǿJWc^?P6 v>JuM` ?)uJt  uIt=Wt]aIR?8IlRv\#>2zGz?@M2JAe7b #zQ (#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!ZA!Z!?F9"rA #sHD:b # h#4>T#3 AMJUF"?F!S/?Fs۰Z?FNb_+iFw?P6 >JuM` ?uJt  B?˳It=WFp\cIRUo_}WIlTy6ވ#>2zGz?N@MJAeb #z (#+#+T#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A ?b6 ?AgJamT6G` F !!l"zbA +6iTg5V181 ?2?;:C?'I4/U%G,|# |'b6fLF O @ie<59 FXG'0U`Rb6!}40 V+ZlJQI0h|G!A !16&f &$<EfBM 9b`fJ:r@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij mh~EA#o>"rA #sHD:b # h4>T]]9 MTJUF?F2\D?F'異JWc^?P6 ݉>JuM` ?juJt  rs"It=WVIRkzIl?Rv\#>2zGz?@MJAebM #zT (#+#+#&Jp!p!5 `?CopyrigTtZ(c)Z20 9ZM c. os f"!r !a i n.Z Al [&s"e ej v0d  i!Em$+A?b6 ?zAgJaۢT6` F !!l"zbjA) +6ig5UV181 ?2?F;:C?'4/U%G|# |'b6LA#BO ie<59 FXG'0U`Rb6!}40 V+ZlJ]UhzA!Z5!?F9&s7A#< X$" jfJ'j`00>oPaYc l]]aE:?Ͷ0TbCcba`iK8K8h<5e?۰Zk(qQlqe~EeFͭ||`ai !h`A'o>"rA #sHD:b # h4>T]]9 MTJUF79 Ğ?Fl_n.?F!?Flaxy?P6 v>JuM` ?)uJt  sd It=W> IRE! YBIl p#>2zGz?@M2JAe7b #zQ (#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!A!B19b$< $BM 9b`fJ: m٠uۘ]ᇄ0:mOc i'A~aEeD?c  V#NeFaze<5eF|lVaiU?3Lh~EA#o>"rA k#sHD:b # h4>T]]9 MTJUF-#&\?FZ|?F>WB?Ft=E?P6 v>JuM` ?)uJt  [It=Wq.IRݮIl$dvĤ#>2zGz?@M JAe #z (#+#+#&*Jp!p!5 g`?CopyrigTt (c) 2U0 9 M c os f"!rԙ !a i n}. Al U (s"e e 5v0d i!Em$}! K2?b6 ?ALb4($I3/ 4/U%b-|# |'Yb6?Fiie<59 FjX/G'0UBib6!}40 aFuJlJ8>UhAA@ !1!Z}o'- E|zo}#<b$] VM:FQw0RS S IBf>E2!?Fp\BU--# i[F @ h<53n CU9fKo]o  h5a9YUU aUUwi]Q ieq5 hb2r_U"rA #sHD:b # h8>T ]]9 MTJUFW>?F7 ?FUw)٫?FQ`m ^?P6 >JuM`lW? SuJt  /êQPͰMtA[_Y#MVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @i #zv t#.b( (+&B"f ?APb)4(z$D3//& 115 k`?CopyrigTtk(c])k2009kuM0c0os0If21r01a0i0n.k WAl @ 8sBUe0e0v @d@14-3K 7IbO&&i bP~59 &&XGK"'0U!R&!40 FJlJ $Q! (sQsQ]31ZeA!ZU0|z 0 @?nK' # bS7fJ:]h^PsojR֯UaEQ!?!`0 0c s!R'i e:}ɟh~5aef9oa|b c g~L1B~`1F~t1[D1e1R~1~1Z~1^~1b~Af~Aj~(AnT#3 AMJUF6٫&?Fh%4+ޱ?F*5?F$_D"w?P6 >JuM` ?uJt  (LbIt=W,MyIR_FIl#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L(BO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4 9b`fJ۰Z@]0?c Q#Oc Q\}|zeE:O)0:iG`iw*h<5a#j8oJiqze~EA#o>"rA #sHD: # h4>T]]9 MTJUFI)?FUj?FeTC?FǿJWc^?P6 v>JuM` ?)uJt  6|.It=WL\} IR?8IlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!Z!姈?F9"rA #sHD: # h#4>T#3 AMJUFe{5?F?Fs۰Z?FNb_+iFw?P6 >JuM` ?uJt  DqIt=W{*IRUo_}WIlTy6ވ#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ:rO@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij? mh~EA#o>"rA k#sHD: # h4>T]]9 MTJUFS?FަƢ?F'?FǿJWc^?P6 v>JuM` ?)uJt  cIt=W(?IRkzIlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 $V+ZlJ]Uhz@!A!Z5?!?F9&sA #<# $B jfJ'j`00>oPaYc l]]aE:Ͷ0TbCcba`iK8K8h<5e۰ϿZk(qQlqe~EeFͭ||`ai !hA'o>"rA 5#sHD: # h4>T]]9 MTJUF蕯?Fcų[?F!?Flaxy?P6 v>JuM` ?)uJt  {It=W ůIRE! YBIl p#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!`197b$<# h$B 9b`fJ: m٠uۘ]0:mOc i'A~aEe7D?c  V#NeFaze<5eF|lVaiU3Lh~EA#o>"]rA #sHD: # h4>T]]9 MTJUFA!z?FA]?F>WB?Ft=E?P6 v>JuM` ?)uJt  wT vIt=W?mIRݮIl$dvĤ#>2zGz?@MJAebM #zT (#+#+#&Jp!p!5 g`?Copy_rigTtt(c)t2U0 9tM c os f"!rԙ !a i n}.t Al U (s"e e 5v0d i!Em$}! K2?b6 ?ALb4($I3/ 4/U%b-|# |'Yb6?Fiie<59 FjX/G'0UBib6!}40 aFuJlJ8>UhAA@ !1!Z}o'- E|zo}#<b$] VJ:FQw0RS S IBf>QE2!?Fp\BU--# i[F @ h<53n CU9fKo]o  h5a9YUU aUUwi]Q ieq5 hb2r_U"rA #sHD: # h8>T ]]9 MTJUF gl6?FDb,)?FUw)٫?FQ`m ^?P6 >JuM`lW? SuJt  LUMtA[_ʓWMVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @nib#zv t#b( (+&B" ?APb)4(z$CD3//&*115 k`?CopyrigTtk(wc)k2009kM0c0o%s0f21r01ua0i0n.k_ Al @ 8UsBe0e0v @ d@1H4-,3 7%bO&&i b~59 && XGK"'0U!R&!40 FJlJ Q! (sQsQ]31heA!ZU0|z3 0 @?ҏn'B# b7fJ:]h^PsojR֯UaEQ!?ߟ!`0 0c s!R'i e:}ɟh~5aef9oa|b c gT#3 AMJUFE//?F_ 8?F*5?F$_D"w?P6 >JuM` ?uJt  z7It=WiIR_FIl#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ۰Z@]0?c Q#Oc Q\}ȱ~aE:)0:iG`iw*h<5a#j8oJiqze~EA#o>"]rA #sHD: # h4>T]]9 MTJUFK?Fc>,Λ?FeTC?FǿJWc^?P6 v>JuM` ?)uJt  jDFIt=W-M3}IR?8IlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!Z!姈?F9"rA #sHD: # h#4>T#3 AMJUFQL ?F7ԩ+?Fs۰Z?FNb_+iFw?P6 >JuM` ?uJt  Ç\UIt=W @ٶIRUo_}WIlTy6ވ#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ:rO@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij? mh~EA#o>"rA k#sHD: # h4>T]]9 MTJUFLli[?FQ>?F'?FǿJWc^?P6 v>JuM` ?)uJt  ICIt=WN3sIRkzIlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 $V+ZlJ]Uhz@!A!Z5?!?F9&sA #<# $B jfJ'j`00>oPaYc l]]aE:Ͷ0TbCcba`iK8K8h<5e۰ϿZk(qQlqe~EeFͭ||`ai !hA'o>"rA 5#sHD: # h4>T]]9 MTJUF63?F8.G?F!?Flaxy?P6 v>JuM` ?)uJt  ͧILIt=Wf IRE! YBIl p#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!`197b$<# h$B 9b`fJ: m٠uۘ]0:mOc i'A~aEe7D?c  V#NeFaze<5eF|lVaiU3Lh~EA#o>"]rA #sHD: # h4>T]]9 MTJUFPHY?FpN?F>WB?Ft=E?P6 v>JuM` ?)uJt  PrIt=WoDIRݮIl$dvĤ#>2zGz?@MJAebM #zT (#+#+#&Jp!p!5 g`?CopyrigTt (c) W20 9 M ]c os f"R!r !a i n. AUl (s"e e v0d @i!Em$}! K2?b6 3?ALb4(&$3/ 4/U%-|# e|'b6 ?Fiie<59 FX/G'0UBb6!}40 aFuJlJ 8>UhAA !1!Z}'- E|zo}#<b$] RVJ:FQwa0RS S IBf>QE2!?Fp\B?U--# i[F @ h<53n CU9fKo]o ڵ h5a9YUU aUU~wi]Q ieq5 h2r_U"]rA #sHD: # h8>T ]]9 MTJUFǦmڷ?FWZgL?FUw)٫?FQ`m ^?P6 AJuM`lW? SuJt  NKMtA[X_*`lMVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @nib#zv t#b( (+&B" ?APb)4(z$CD3//&*115 k`?CopyrigTtk(wc)k2009kM0c0o%s0f21r01ua0i0n.k_ Al @ 8UsBe0e0v @ d@1H4-,3 7%bO&&i Ab~59 &&XGK"'0U!R&!40 FJlJ Q! (sQsQ]31heA!ZU0|z3 0 @?ҏn'# b7fJ:]h^PsojR֯UaEQ!?ߟ!`0 0c s!R'i e:}ɟh~5aef9oa|b c gT#3 AMJUFܹ?F cM?F*5?F$_D"w?P6 >JuM` ?uJt  @@|It=Wn56uIR_FIl#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ۰Z@]0?c Q#Oc Q\}ȱ~aE:)0:iG`iw*h<5a#j8oJiqze~EA#o>"]rA #sHD: # h4>T]]9 MTJUF (?FthZ?FeTC?FǿJWc^?P6 v>JuM` ?)uJt  It=WX IR?8IlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!Z!姈?F9"rA #sHD: # h#4>T#3 AMJUFr!Qw?Fvk?Fs۰Z?FNb_+iFw?P6 >JuM` ?uJt  1It=WOIRUo_}WIlTy6ވ#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ:rO@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij? mh~EA#o>"rA k#sHD: # h4>T]]9 MTJUF!P4K?F l?F'?FǿJWc^?P6 v>JuM` ?)uJt  {d5Z\It=W2;wEIRkzIlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 $V+ZlJ]Uhz@!A!Z5?!?F9&sA #<# $B jfJ'j`00>oPaYc ?l]]beE:Ͷǝ0TbCcba`iK8K8h<5e۰Zk(qQlqe~EeFͭ||`ai !hA'o>"rA #sHD: # h4>T]]9 MTJUFYzUv?FS s9?F!?Flaxy?P6 v>JuM` ?)uJt  V"(It=W7:LIRE! YBIl p#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!`197b$<# h$B 9b`fJ: m٠uۘ]0:mOc i'A~aEe7D?c  V#NeFaze<5eF|lVaiU3Lh~EA#o>"]rA #sHD: # h4>T]]9 MTJUF)"z>?F^i2VS?F>WB?Ft=E?P6 v>JuM` ?)uJt  7It=WܯHIRݮIl$dvĤ#>2zGz?@MJAebM #zT (#+#+#&Jp!p!5 g`?CopyrigTt (c) W20 9 M ]c os f"R!r !a i n. AUl (s"e e v0d @i!Em$}! K2?b6 3?ALb4(&$3/ 4/U%-|# e|'b6 ?Fiie<59 FX/G'0UBb6!}40 aFuJlJ 8>UhAA !1!Z}'- E|zo}#<b$] RVJ:FQwa0RS S IBf>QE2!?Fp\B?U--# i[F @ h<53n CU9fKo]o ڵ h5a9YUU aUU~wi]Q ieq5 h2r_U"]rA #sHD: # h8>T ]]9 MTJUF{KY?F#v\?FUw)٫?FQ`m ^?P6 >JuM`lW? SuJt  o|MtA[_"oRMVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @nib#zv t#b( (+&B" ?APb)4(z$CD3//&*115 k`?CopyrigTtk(wc)k2009kM0c0o%s0f21r01ua0i0n.k_ Al @ 8UsBe0e0v @ d@1H4-,3 7%bO&&i Ab~59 &&XGK"'0U!R&!40 FJlJ Q! (sQsQ]31heA!ZU0|z3 0 @?/n' #M b7fJ:]h^PsojRփUaEQ!?!`0 0c s!R'i e:}ɟh~5aef9oa|b c gT#3 AMJUF<5^?FUP?F*5?F$_D"w?P6 >JuM` ?uJt  .9BWyIt=Wnq׏8IR_FIl#>2zGz?N@MJAeb #zb(#+B#+#&Mp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L(\"BO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4\" 9b`fJ۰Z@]0?c Q#Oc Q\}ȱ~aE:)0:iG`iw*h<5a#j8oJiqze~EA#o>"]rA #sHD: # h4>T]]9 MTJUF?F͍~eTC?FJWc^?P6 ݤ>JuM` ?juJt  HIt=WByIR?8Il?Rv\#>2zGz?@MJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6LLyBBO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!ZA!Z!?F9"]rA #sHD: # h#4>T#3 AMJUFSw?FK?Fs۰Z?FNb_+iFw?P6 >JuM` ?uJt  fd>It=WN6sgHRUo}WIlT?y6ވ#>2zGz?@MJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+ZlJQI0h|G!A!1l&fL# $<EfB 9b`fJ:r'@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij mh~EA#o>"rA 5#sHD: # h4>T]]9 MTJUF%u)H׾?FȐ?F'?FǿJWc^?P6 v>JuM` ?)uJt  ُuߓIt=Wί IRkzIlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTtt(c])t20 9tuM c os If"!r !a i n.t WAl (s"Ue e v0d i!Em$+A?b6 ?AgJaۀT6` F !!l"zbWAK +6ig5V181 2?2?;:C?'4/U%GX|# |'b6̼LFO ie<59 FXG/'0U`Rb6-!}40 V+Z lJ]UhzЎ!A!Z5!O?F9&sA#<# $B %jfJ'j`00>oPaYc l]]aE:Ͷc0TbCcba`iK8K8h<5e۰Zk(qQlqe~EeFͭ||`ai !hA'o>v"rA # sHD: # h4>T]]9 MTJUFf^oO?F]?F!?Flaxy?P6 v>JuM` ?)uJt  L+It=WݑHIRE! YBIl p#>2zGz?@M2JAe7b #z]b(#+%#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'b6L5*6O ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!19b$<# $4h" 9b`fJ: m٠uۇ]0:mOc i'A~aEeכD?c  V#NeFaze<5eF?|lVaiU3Lh~EA#o>"rA #sHD: # h4>T]]9 MTJUFr,?F4w?F>WB?Ft=E?P6 v>JuM` ?)uJt  6j>It=WNFFIRݮIl$dvĤ#>2zGz?@MJAebM #zT (#+#+#&Jp!p!5 g`?CopyrigTt (c) W20 9 M ]c os f"R!r !a i n. AUl (s"e e v0d @i!Em$}! K2?b6 3?ALb4(&$3/ 4/U%-|# e|'b6 ?Fiie<59 FX/G'0UBb6!}40 aFuJlJ 8>UhAA !1!Z}'- E|zo}#<b$] RVJ:FQwa0RS S IBf>QE2!?Fp\B?U--# i[F @ h<53n CU9fKo]o ڵ h5a9YUU aUU~wi]Q ieq5 h2r_U"]rA #sHD: # h8>T ]]9 MTJUF_5=~?Fe,=Vݼ?FUw)٫?FQ`m ^?P6 >JuM`lW? SuJt  ?aV_MtA[_=p'MVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @nib#zv t#b( (+&B" ?APb)4(z$CD3//&*115 k`?CopyrigTtk(wc)k2009kM0c0o%s0f21r01ua0i0n.k_ Al @ 8UsBe0e0v @ d@1H4-,3 7%bO&&i Ab~59 &&XGK"'0U!R&!40 FJlJ Q! (sQsQ]31heA!ZU0|z3 0 @?/n' #M b7fJ:]h^PsojRփUaEQ!?!`0 0c s!R'i e:}ɟh~5aef9oa|b c gT#3 AMJUF<@έ?F&¬?F*5?F$_D"w?P6 >JuM` ?uJt  &lIt=WAI׃IR_FIl#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ۰Z@]0?c Q#Oc Q\}ȱ~aE:)0:iG`iw*h<5a#j8oJiqze~EA#o>"]rA #sHD: # h4>T]]9 MTJUFpq?Fq֌?FeTC?FǿJWc^?P6 v>JuM` ?)uJt  0@hIt=WmiIR?8IlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!Z!姈?F9"rA #sHD: # h#4>T#3 AMJUF߳ڮ?F$ ?Fs۰Z?FNb_+iFw?P6 >JuM` ?uJt  JJ&qIt=WrhIRUo_}WIlTy6ވ#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ:rO@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij? mh~EA#o>"rA k#sHD: # h4>T]]9 MTJUF>=9_?FL(Ѿ?F'?FǿJWc^?P6 v>JuM` ?)uJt  V6>nIt=WgD~baIRkzIlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 $V+ZlJ]Uhz@!A!Z5?!?F9&sA #<# $B jfJ'j`00>oPaYc ?l]]|eE:Ͷǝ0TbCcba`iK8K8h<5e۰Zk(qQlqe~EeFͭ||`ai !hA'o>"rA #sHD: # h4>T]]9 MTJUFBP(?FxQ8?F!?Flaxy?P6 v>JuM` ?)uJt  9KIt=WYGJIRE! YBIl p#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!`197b$<# h$B 9b`fJ: m٠uۘ]0:mOc i'A~aEe7D?c  V#NeFaze<5eF|lVaiU3Lh~EA#o>"]rA #sHD: # h4>T]]9 MTJUFMW?FM6N?F>WB?Ft=E?P6 v>JuM` ?)uJt  1|It=WƯ:IRݮIl$dvĤ#>2zGz?@MJAebM #zT (#+#+#&Jp!p!5 g`?CopyrigTt (c) W20 9 M ]c os f"R!r !a i n. AUl (s"e e v0d @i!Em$}! K2?b6 3?ALb4(&$3/ 4/U%-|# e|'b6 ?Fiie<59 FX/G'0UBb6!}40 aFuJlJ 8>UhAA !1!Z}'- E|zo}#<b$] RVJ:FQwa0RS S IBf>QE2!?Fp\BU--| i?[F @ h<53n CU9fKo]o ڵ h5a9YUU aUU?wi]Q ieq5 h2r_U"rA #sHD: # h8>T ]]9 MTJUF('J?FK5+:?FUw)٫?FQ`m ^?P6 >JuM`lW? SuJt  y SksMtA[_eMVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @nib#zv t#b( (+&B" ?APb)4(z$CD3//&*115 k`?CopyrigTtk(wc)k2009kM0c0o%s0f21r01ua0i0n.k_ Al @ 8UsBe0e0v @ d@1H4-,3 7%bO&&i Ab~59 &&XGK"'0U!R&!40 FJlJ Q! (sQsQ]31heA!ZU0|z3 0 @?/n' #M b7fJ:]h^PsojRփUaEQ!?!`0 0c s!R'i e:}ɟh~5aef9oa|b c gT#3 AMJUFB?F̒-8?F*5?F$_D"w?P6 >JuM` ?uJt  4E$pIt=WLx4IR_FIl#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ۰Z@]0?c Q#Oc Q\}ȱ~aE:)0:iG`iw*h<5a#j8oJiqze~EA#o>"]rA #sHD: # h4>T]]9 MTJUFJ*ӏ?Fc?FeTC?FǿJWc^?P6 v>JuM` ?)uJt  uIt=Wt]aIR?8IlRv\#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!Z!姈?F9"rA #sHD: # h#4>T#3 AMJUF"?F!S/?Fs۰Z?FNb_+iFw?P6 >JuM` ?uJt  B?˳It=WFp\cIRUo_}WIlTy6ވ#>2zGz?N@MJAeb #zb(#+R#+#&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$+A7?b6 ?AgJaT6` F !!l"zbAٖ +6Rig5V181e ?2?;:C$?'4/U%G|# |'b6L)FO ie<59 FuXG_'0U`Rb6Z!}40 V"+ZlJQI0h|G!4A!1ظ&f# $<Ef4B 9b`fJ:rO@]0:iG`Oc qy"zeEajoJiaze<5e'f`0mFaij? mh~EA#o>"rA k#sHD: # h4>T]]9 MTJUF?F2\D?F'異JWc^?P6 ݴ>JuM` ?juJt  rs"It=WVIRkzIl?Rv\#>2zGz?@MJAebM #zWb(#+#+#&JBp!p!5 g`?CopyrigT}tZ(c)ZW20 9ZM ]c os f"R!r !a i n.Z AQl [&s"e e v0d @i!Em$+A?b6 ?AgJaT6` F !!l"zbAR +6ig5V181 ?2?;:C?'$4/U%G|# |'b6L3FO ie<59 FXG'K0U`Rb6!}4K0 V+ZlJ]Uhz!A!Z5!?F9&߮sA#`<# $B jfJ'j?`00>oPaYc l]G]aE:Ͷ0TbCcba`i?K8K8h<5e۰Zk(qׁQlqe~EeFͭ||`ai !hA'o>"]rA #sHD: # h4>T]]9 MTJUF79 Ğ?Fl_n.?F!?Flaxy?P6 v>JuM` ?)uJt  sd It=W> IRE! YBIl p#>2zGz?@M2JAe7b #z]b(#+#+#&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$+Ao?Xb6 ?AgJoaT;6` F !z!l"z_bA- +6ig5V18ʜ1 ?2?;H:C?'4/U%bG|# |'1b6LSFO ie<59 FXG'0U`RŴb6!}40 DV+ZlJQI0h|G!hA!`197b$<# h$B 9b`fJ: m٠uۘ]0:mOc i'A~aEe7D?c  V#NeFaze<5eF|lVaiU3Lh~EA#o>"]rA #sHD: # h4>T]]9 MTJUF-#&\?FZ|?F>WB?Ft=E?P6 v>JuM` ?)uJt  [It=Wq.IRݮIl$dvĤ#>2zGz?@MJAebM #zT (#+#+#&Jp!p!5 g`?CopyrigTt (c) W20 9 M ]c os f"R!r !a i n. AUl (s"e e v0d @i!Em$}! K2?b6 3?ALb4(&$3/ 4/U%-|# e|'b6 ?Fiie<59 FX/G'0UBb6!}40 aFuJlJ 8>UhAA !1!Z}'- E|zo}#<b$] RVJ:FQwa0RS S IBf>QE2!?Fp\B?U--# i[F @ h<53n CU9fKo]o ڵ h5a9YUU aUU~wi]Q ieq5 h2r_U"]rA #sHD: # h8>T ]]9 MTJUFW>?F7 ?FUw)٫?FQ`m ^?P6 >JuM`lW? SuJt  /êQPͰMtA[_Y#MVYBMpry2VI'>\??\.?lFA8 J2ll/f?=@MJB& @nib#zv t#b( (+&B" ?APb)4(z$CD3//&*115 k`?CopyrigTtk(wc)k2009kM0c0o%s0f21r01ua0i0n.k_ Al @ 8UsBe0e0v @ d@1H4-,3 7%bO&&i Ab~59 &&XGK"'0U!R&!40 FJlJ Q! (sQsQ]31heA!ZU0|z3 0 @?/n' #M b7fJ:]h^PsojRփUaEQ!?!`0 0c s!R'i e:}ɟh~5aef9oa|b c g_+s +EiHG%>Fh$X#"BU~dσEo@}+X(-oSs$վo$$  H- -cG-(ӿ-X - -;#-&-*- .'ӿ-1-5 P.P?8.Bh.FH.&J.M].Q>o.U,.X@.\ȃ@.I`H@.co@.g'@.-k)@.nK@.r C.Hvo#C.y'%C.x}9'C.6z))C.Ԅ)+C.d .C.K'0C.62C.H4C. )6C.ޚ>z)9C.|| H;C. "'x=C.?C.88H.=7H.Ȱ)HH.xH.%~) H. H.LH.$H.CoH.'H.wH.6*H.?05H.c )H.K'P.6P.`IP."P.~P.)HP.:P.:P.聜.E9.9.{(x., ~I.(،./8.H(H.(x.x[.8!Yߗ.$Yߜ.f(!(8ߜ.N,%hߜ./7`ߣ.3Ib.!7nYe.:8g.~>Hhi. B"ik.Em.IFi`.@MXi8b.P~nYhd.TYf.%XYȟh.["ej._l.eo.:i~FiH.lXix.lp.+t.w.U{.:}4j.ۂY.aH. jj.ˍY8.iyh .@ .ܘ4i .}j.&j.j.my. y."i.4i(. YX.ȹ.Oi(ȳ. ~y.Ďi(.88X.4i߼.Y.hY1(1ڊyX1Jޜy1~(1Y諁1aY߮1 YXP1nYR1OmT1YV1{yY1c-FZ1i/8(]1 7X_1 A1>C1{(E1H1*!)J1~L1"ZN1]&lP1)~(S1-XU1C1)W14Y18Ʃ[T]]9 MTAUF}Da 0?FH7r?F_/++?FXϸ?P6 `A$M (#<#lPJuM{` ?#{{20{F{ZujJtg  ɟ߇{tј` 'ɭ?s>JU2zGz?@M[#|Jk&A@$7b#z #!"b(b)+&J[e#t"t"?'6 I?A$/%Be#115 "`?CopyrigTt (c)020090M0c0oKs0f21r01a0i0n.0 Al0 8sBe0e0v@d0S"{14\#-Xe#3 7'6\% ZLFiie1E9 FXG/'0UR'6-!B40 FJlJ7Q0hLG1ZA!Y(}=K?Fl@I0`fS?Ks`ZsLbL\"JTy+HlPrW?F腺Z>FbyC ua)H0Ynǿl_Vef[U>dxԷErlg uVcQ$@aELe|}?FCʞ*Nc`vna Oc>wok&O8XWleBPmlfVArieoo.HLe+pQ?FYR&`O]vol``}; PaiEz6!iDF`ޣKH_SFn.ki`"rA k#ڃjnw5}6!i{HD: # h4>T]]9 MTUF)Q~ R?F\L#?Fx?F=:?P6 AA M (<Pdx#  $<PdxmJuM` /?9"9"29"F9"Z9"n9"9"9"9"/(Su()Jt%!  _lcd6tY1s2˟ke5n7rs=e57Fq1 >JU2zGzK?=@M3J6A@n4b%Cz@C2b3H%@3HNKNFJ[3 B?F &?A9D POqEUB3AA5 2`?CopyrigTt (c)5P20AP95PM-Pc.+Pos%Pf3R$Qr'P`Qa3Pi%Pn.5P Al{P +XsReSPej+PvPdsP2@AB3b-3 S  WF5 \fiieU9 fjXg2'0UbŴF!D0 TIf]jlJ @maa ]xQQ9A8`3F+G?F| @"$#әF1 "X3]/Lֲ1r2JAn?FkS?FΘtpb N ?_)Ay*t^(|CN7ȗu$#D[DP1X3aT1 :" $z 2? I? uK?$"X2a@s(BS2}:r5qEqEtFdo?F[K ۃ?FJ(OL?P$DT!  bqt%@{rfJHG^"f~Bt2)Џ⏪32Uu5*&?Fl5?F)b&&~?Fcle?P,A&!٘UީȽ|;!GmH﹡^@pw*oAΏ ՟4ޯFUuu #?F{+.W?,b26I>P-nx:aG|ZÉ-DuH rε50!au>uM"D$.@4#ZqTmz?FD?Fb.\i ]aJ`?@~{bcEt/^Vu1 a{&DFT?@l4ϳ$3<@ƒ>Pn}11WBx~|kz}~tesDޠux)LBk(a\6 `G $#Ppztt~Pz+ݿ]s~aϔb-4쇂3~uy0cفMk?Fǒ?F 6_?P(AT~' 6>Ľ?e+P?Toa?CB1wa1 83쇖y&Nfn~bS9xvD<$Q$#QcuNI|" 0)^VUıwm2G:LB3 .쇪;utq~F>`7bt?di д9Brq 8CJ &*짦f4omGL3A/S/#HD: # h4>T]]9 MTMUF؋@?Fce?F5svL*?F7= ?P6 ]A]M (<P]d_]x#_(_<s__JuM` ?_""2"F"Z"n"""uJt  oUxJ5t!21l]5 7,ȃ5$7ǁO>JU2zG/z?=@Ms3J6A@4b3z郷0392bR808;6J[}3 w(B??F ?A4 T? EB}3AA5 2`?CopyrigTt (c)@20@9@M@c@os@fBAr@Aa@i@n.@ AlP HsRe@e@v-PdPk2ADt3-}3C eG?Ft5 r\ViieIU9 VXW2'0U.b?F!ZD0 VZl1 &@(aa 3ArQ1q8Z}3F{و>r/2"0,s\>rt2JA%)?F+?FvWZk>Fy4 wa)`Ayf/!\3s M_lu|a<1u#Ca aܵ0 lkj? &_8)?"a@=s(<" !rÀ5 EbqEnu3.h?Fn`?F=/*lq?FF|oĵWA|GK|Wu|V#H1CRW%7#I3Et2~IUnuj "?FBĥج|+zw~>{Iσ]X41yu,A1BaNycЍ@2Wa4y}K6#I@ZltF~fUds!'Hɇ?FQy~<?F$f㷖꿈xywF,(|pgF|'c7|,X&l x קi4bqJ+ o N9z)e~zy0l44t;Ff4t/p1znuf.ʐ Lˮ?F I`V'0'|֠{yl7#y%m"gs7#It~jyozY_ƀ%çM,fFI|^t-,捇&F9~lFV6#I.@t~3ot~F+}|$+p?F?~a@v2rA 3z9Xt|L;W-yG7IGYt#~HD: # h4>T]]9 MTMUF}W?F?F5svL*?F7= ?P6 >M (<Pd_]x#_(_<s__JuM` ?_""2"F"Z"n"""uJt  wCHݛ5t!2-8Lc5 7,ȃ5$7ǁO>JU2zG/z?=@Ms3J6A@4b3z郷0392bR808;6J[}3 w(B??F ?A4 T? EB}3AA5 2`?CopyrigTt (c)@20@9@M@c@os@fBAr@Aa@i@n.@ AlP HsRe@e@v-PdPk2ADt3-}3C eG?Ft5 r\ViieIU9 VXW2'0U.b?F!ZD0 VZl1 &@(aa ]ArQ1q8Z}3F{و>r_2h"0,sf >r)t2JA%)?F+?FvWZk>Fy4 wa)`Ayf/!\3s ޿Mlu|a<1u#Ca aܵ0 lkj? &_8S?"a@=sB(<" !r5 EbqEnu3.h?Fn`?F=/*lq?FF|oĵWA|GK|WuǢ|V#HCRW%7#I3Et2~IUnuj "?FBĥج|ﲖ+zw~>{I]X41yu,A1BϠaNycߍ@2Wa4y}K6#IZltF~fU~ds!'Hɇ?FQy~<?F$fՖxywF,(|pgF|'c7|,X&l x ק1^uJ+ o N9z)e~zy0l44t;Ff4t/p1znuf.ʐ Lˮ?F I`V'0'|֠ yl7#y%m"gs7#It~jyozY_ƀ%çM,fFI|^t-,捇&F9~lFV6#I.@t~3ot~F+}|$+p?F?~a@v2rA 3z9Xt|L;W-yG7IGYt#~HD H# h4>T]]9 MMUF:TJ3?F ?FW7")?F(GP@?P6 f@#A#M (<Pd]x#$<PdxmJuM` /?""2"F"Z"n"""u )Jt!  ߆,ߑ'7t172DJM)527HB)5L7r Dɸ!>JU2zGz?=)@M3J6߀A@E4bM3z03a2b808RKFJ[3 PB?gF ?$A4 O5E3AA5 G2`?CopyrigTt (c)@20P9@M@c@oKs@fBAr@$Qa@i@n.@ Al?P HsCRePe@vUPd7P2AED3 5 -_C %GgFViieE9 VXW2'K0UVbgF!DK0 f!jl$1N@(aa ]3AQ18`3FPʞ>FQ?͉@"#] >"3n3v1lr2JA_[3nB?F#lNa?F ?Fe a)A@y?2oW Vytu#|_ӄ 5u3?\1a u׿@ ]h? d?#t?"2%a@ks(<29tK1r55EqEu}?FG?F U?F(k=|S@ܱ|ŗ-_`ǿmgV0ÖpITf#was2Eu2* ?Fd|ڀ >{$*Jr| ZȘ*'vY9!=a,z0WJ⅏ze#wFUuUfNڿ?F6 +C?F}ۛ)NQv1Vy>ﴺkcY︉0h ӯe#wZq~zd! nS@3(}|{gu2lqZt@>% rgrܥg/?B~fȿe#wϢnuex9?Fqp1C5bb=|=I"~;Jt^E>~KAOA/0ƛOu=e#w yJG?Fާ;נpIZ=gE܎=|grE2`~%-Bg0L0;e3w0䬌3t-~F`3FgG ߈A2rA 3+j[K~@])nATGf@B7e3w7I#Ha`dgHD H# h4>T]]9 MUFQ|3?Fͪ'?FH(])?F?\s?P6 A > (<@P]dx#D $<PdxJuM` ?9"9"29"F9"Z9"n9"9"9"9"/()u()Jt%!  [4c7tY1s2&뒺e5n7-V;e57n?ͷqJ1 >JU2zGz?R=@M3J6A@4b%Cz@C.2b3H%@3HNKNFJ[3 B?F I?A9D POqE*3AA5 2`?CopyrigTt (c)5P2U0AP95PM-Pc+Pos%Pf3R$Qr'P`Qa3Pi%Pn}.5P Al{PU +XsReSPe+P5vPdsP2AED3 (5 -_ SK  WFVi@ieE9 VXW2'0UbţF!D0 If]jl J @maa ]xQQ9A8Z3F꺷S"$#P8hB1 2X2?@s6vK r2J:jtFEZ qrs%@"s )1HA\HG@HA"lNa?F|/(?Fb) a)AyF7U1 "fWmA}$# c6n>}X3?$1 a }x ?@ %? z?M?$"X2%a@s(}{^<[}̈ιƋ/90!3'x+;m3; 3)1F;+x(Nڿ?FT&B?Fb{f,-JQ1;Ejv㓌 +ߌK$ؿLrZ\b03>P1Z;~+p•%ʲSpFZ>ppd-Tfs1u񶛄D𷱄K 瓌)h:GrKr߿?#4B31;;uSq~F7ސ?FF;Kf@9Brq 8CysZLs뿇* %L3 /1#;H4B`gHD: # h4>T]]9 MTMUFM&d2?F}{?P6  >M (< Pd_#x_tt_ ___(_<JuM` ?2FZnuJt -t!"J&b$=>tJU2Uj2?R=@MY3Ji6A@%2308b9R;6J[c3r27a? F ?A?9Bc3BfAfA5 2`?CopyrigT}t (c) W20@9 M@]c@os@fBRAr@Aaa0i@n. AUl@ HsBe@e@v@d@Q2_AcDZ3ę-c3rC 2rG FZ5 >\iViieU9 iVXW\r2'0j3 FZ!&D0 VZlJ`>UhLaLa ]Rd u 1A A1AW8Pa o|2U?F,%-@Nx[Jk#b?o--hi  6vZ2JAp?F}l^?F +ْ?F G&S- a),Ayx|S<ݻuz}קu#qSBa y= 30 4*?? ?"2a@/s<"t!r55TqE`ud ?F /wpc*uGs>{T#|f{}b*yZ>voigjJ*#;%7f2pU`uTK`j0rr?F);L^fFp/Xx1ѣ?V|%O4Tqde㼕?FHyt߲Xzΐ_3]ؘ#yԄT|qTS|t]<8l j m?@P3ɡեZ:+a{c3~|+2|}ZliL~|d($7! C]{-m;BP4~ΐKjgVhߩ~D8V-l|G2y)PlƳÿտa:dBl#ꃋ-@t32y ?c$p3~,xEr l|0?FS$^ΐWqp>hmN.Ey?'<(+t^+}m܀3}Tq(*wmnp:~qмZBT<i}~۸73q1&3–(Ko|>F}ѣ ?Fs?FUޒ[g$,y~vZ؆t=<}!uɡaѩYK&h0?FL#|ߘ 1D|\ ťa8 ?Fd\Ў!ݯ|? ﮉ2ɡbҨg7+?FBl;|qyS ~L](MB-eS?F@J9F:?FrIÅ hߏ¢h|@b$yoSk9r|hͦ |ɡe2oe1Br{a 53Q2HD: H h0>Th]]9 MIAUFd^V?F߫C?F>?F?_j|w?P6 8 >M $mJuM` /?`OO.u>Jt;  sxЕt=M4&ٕQ䣯+? G>yJU$"#?.& ?JbA@T"Z+bR\)Z&J#2N贁Nk.#@M# J&]/o/T"Z+'T"*B#BA1A15 `?Cop rigTt (c)x0]2`09x0Mp0]cn0osh0fv2Rg1rj01av0ih0n.x0 AUl0 n8s2e0en0v0d0@:1Y>4#-'M3 M7 .&%p0b5(9 DFX'dG_'0UB.&J!I$a dFxJlJ]Uhz_1!T!Պ(Z#FF-D}ؔ?cJ:Z 4qgjGQ RV"JmTtV,Щ=?FG с aW)O YPRSW:fOtG4Pi3GYA; l'z&@B!@C?F[,P4S *?j0[OeT?UƖaU5mTV.b9 Nj?FZp^9o`isoT0e(a~Th]]9 MIAUFHm?Fʋ?FqZzS̩?Fo_ w?P6 8 >M $mJuM` /?`OO.u>Jt;  zt/ Wٕᆝ?a%?uG>yJU$"#?.& ?JbA@T"Z+bR\)Z&J#2N贁Nk.#@M# J&]/o/T"Z+'T"*B#BA1A15 `?Cop rigTt (c)x0]2`09x0Mp0]cn0osh0fv2Rg1rj01av0ih0n.x0 AUl0 n8s2e0en0v0d0@:1Y>4#-'M3 M7 .&%p0b5(9 DFX'dG_'0UB.&J!I$a dFxJlJ]Uhz_1!T!(Z#Fb?d ?F94:,X,TGZ SY RV"JmTig/?F6o?FşY] `)O 1RSx 4S x$G4:74C͐GYA; ^^s¯&@B:~mTn%y2[9)A\(aU5UF O 2Wα?FG?8LolQ,i33((?l+dUl1"Canoo2m_;T#rA $sHD: H h0>Th]]9 MIAUFk"?Fwc?Fymh?F_!sw?P6 8>M $mJuM` /?`OO.u>Jt;  aMtl#/ו1`ng n}_GT>yJU"#?.& ~?JbA@uT"Z+b\)Z&J#2N贁Nk.#S@M#J&]/o/T"Z+'T"U*B#A1A15 `?Cop rigTt (c)x02`09x0Mp0c.n0osh0fv2g1rj01av0ih0n.x0 Al0 n8s2e0ejn0v0d0:1Y>4#-X'M3 M7.&%p0b59 DFX'dG/'0UB.&%!I$a dFxJ lJ]Uhz_1!T!(Z#FFút[?J:Z 4=iLGQ RSV"JmTVoEXNx A`?F&nƜ?FӪr#> `)O 4S }#GYkhkn/e~:KF4}3>YA; ΣW$@B4mT[PRSbU5U2{6E,?F72*ʶ'?FD;6o;^}p/l@i.fMdӟ2Z[lxg҇.atoo2m_UT#rA $sHD: # h4>T]]9 MTAUF\f?FQ)Xd?Fv?FZW?P6 `>$M (#<#lPJuM{` ?#{{20{F{ZujJtg  ntL_פ| 'RGU˲s>JU2zGz?@M[#|Jk&A@$7b#z #b(b)+&J[e#t"t"?'6 I?A$/%Be#115 "`?CopyrigTt (c)020090M0c0oKs0f21r01a0i0n.0 Al0 8sBe0e0v@d0S"{14\#-Xe#3 7'6\% ZLFiie1E9 FXG/'0UR'6-!B40 FJlJ7Q0hLG1ZAY(э6?FξRI0`fS?Ks`ZsLbRP\"JT6mPD2n ?FHOX\>F->wW Wa)H0YnǿlᜯVef[U>dxԷErlg u?VcQ$@aELeANS?FZ ͉?Fޓ{lʤm>wok&O8XWleBPmlfVArieoo.HLec=}pLwS?FXʍ`ˏvol``}; PaiEz|DF`ޣKH_SF:x~ALrA k#ڃjnw5}Oi{HD: # h4>T]]9 MTAUF8XV?Fp#enD?Fv?FZW?P6 `>$M (#<#lPJuM{` ?#{{20{F{ZujJtg  ґߝ t$wOפ| 'RGU˲s>JU2zGz?@M[#|Jk&A@$7b#z #!"b(b)+&J[e#t"t"?'6 I?A$/%Be#115 "`?CopyrigTt (c)020090M0c0oKs0f21r01a0i0n.0 Al0 8sBe0e0v@d0S"{14\#-Xe#3 7'6\% ZLFiie1E9 FXG/'0UR'6-!B40 FJlJ7Q0hLG1ZA!Y(э6?FξRI0`fS?Ks`?Zs$LL!bL\"JT6mPD2n ?FHOX\>F->wW Wa)H0YnǿlVef[U>d~xԷErlg uVcQ$@aELeANS?FZ ?F{lʤm>wok&O8XWleBPmlfVArieoo.HLec=}pLwS?FXʍ`ˏvol``}; PaiEz|DF`ޣKH_SF:x}~AL"rA k#ڃjnw5}Oi{UGDF P# h @T(PYYU UF~?M&Wd2P} (-. +0@ 0T0h0|Y03 - -3 --3--& &#:u` ? T,_'@@TUThh|U|UU&&K"&5&&0"u:)!z2<7q:U? ?; 4b0{[`+:B Fy3U"'ĉQ9" L A$6 K",G'@I@@q@E?DF@[r&BCkBuq@`-A0"Ruu8 @GC0$5Q;(?RK"U& d4; :)9u `u`["[b!;$wu`񉾑4?R5ػ3a171`Vis_PRXYcPm!#5``08``R`?CopyrF`gPt0(V`)02d`090MF`c:}`oH`ofbvary`aa`iw`n 0Al` }hsbeH`e}`v`dRh13d45!B=31ZrA66 24#30Ur?P].w,-^q^$P$sT<`o0mR`s`a>rv "saI8G28\vvk`2 hY,TYYRJ )eUF,,?F6_v?P fQ#"I#M !:#Q>NIU>bIY>vI]>I M ? I ? I ? I"+M?+Q#*"I*S%&S]V#f"+YV#z"V#"IaV#"IeV#"IAV#"IqV#" IV#"I S&2"IS&2IS&.2IS&B2I V#V2 I>2!>2IS&~2 IV#2+S&2"IS&2+S&2+V#2&?PI3 B&?I("C2B?IJCZB%&"9'a'77@I2I2GUG1uM` ?"I&6BDBXBlBBVVVVVV(V$(V8(VL(V`(/Vt(CV(WV(B,B,B,B,B,B};Āi 1a` Q|Ϳs2e8-ߕq`R~,y\1BTC\Zݼc6[?F[hsF߱~Q>qˁ&t ?FgMuN?Dv` ?,?6 EPU-?-+" Ԍ/UFz[aDv>tJ~M^3;0?gt{s4)/~Z!WJ=˧ب 5Z=fO/߱&////??{?q?;d?*V-?F`xM0P01W=͝4F??=ӎC !]=@/V54, OOS9qW@0kM9~0iZ <ȝ0*DT! SU7:w$ ]UZNOW~/mà' ]: e9T ,,? 6v?G@B1B$Gr65߱O__,_>_P_Fs[Q?F/e[p؟?M ?Sl ʟ_tfS$lߕ름Fx1cn)@aCo?20 6-Ԭ,65vٝJ w(-_q9KrUuw;y+OUF!R>7~n字/䉄5 _fL6&lLXqzݍMJ13LIo%]f Fz^(ʲS | u6)|LXX'} Ĥԭ67,M'5LmmFs]mrtoɊ!3EٿEݍv LSB@ d@}U00|Wdby#ANU 0 0 0 qH3ۓ] _WbB'P.>3]_A0hx%>Hލ?1;>s,}O+NڿW >gEn(F_>3 ]Q3}2bu$ˣSfQNFe'-$Sد|;~*YQoU(_HԪb~xBß;6H~ TEbݍ}nO*/<9n-@P,e'}eݴآm'viޞMTQދP?F/VJ$CճѵȌܷݍ1+OOĮY"ؑX:fDx~@Wt)L[~3x _AVW~IA]m_jݍX;AQq__s*~pm.@a)sI_8`}^ߔfЄ_j]~V^1P0oBoTzyE|N8^~{*ϳ}8CތҢ&s%X>F @4ύ?F*棕 L4?n~g&vn˹5so L~<@D~ew,[{ܿc=(SHǑo ,AU@y2ѝrͲs!?F N?F3?FcT(}03@ya?B᳠{j@1y8bvw ??a醼nMk?FCZώek/Ê?F@ٕ:?P(ܴ'B1/?{!K @-X;L_ @1aѶߘ>3C?FqFLc0/?Fd?<+v7D?6.zY Uco غ9JȆ߈ѿrTߣDqV\s"7G\DN,9FslD7Q-r|O╣'YQF{ F@) l$u(U)}}bQr)g|}1p1<G7t}bHA8sah77@y5?F]}H 0NXUVMFQ¡/.}=!8՞%د-+1pQ4ADF*.}K 0BoaKVWg>t}x=$GB=bvaA Q/R"i L1}/9/K/]')uw?F%ly?F*껩/ѵP﹈b@D>3bSSmlGAȔ|#h`*b5%F[ A-@zjaDi~b.x4dM?O+zOOu (?:?L?^?p??d??Fb2*.Q_ DCY?ˉFY] ) ~ zM?F!d]CZXjĞ82Dҥ4Y 0YLD|^,DYA_^F{aE`?`?Nd,/__b6mʝǧNAIY/////?r6FH?> _$s 1+/,5B/81#-BB >~??vLl⿤愈?[G=u?aK&d23L4CUG DF P# h @T(PYY#EψUFL&d2?|>?F~?]P} . B!D:J :^:rY: Au` ?"66JJ^^rrju# ^Jb"h,h'U ?L?4b {N[`:!#"&a#'b"^DQ)3 z$2l!L1$l" l"3'@>>ÿ@q05?B46 r&23c2ui0`҈-1Bu:@ l"3-A7Bl"F L$9u`u `m"[ bb!wu`)$"%أ#Q!'1`Vis_PRXYcPm!#5XP1XP02`?Co_pyr>PgPUt (NP) 2`PW09 M>PcuPo@Pof}RnQrTqPQa}PioPn] AlP uXUsRe@PeuPvP dB!#d$%b!(=#&#Rd&& "$B##0Ub#]&g,7^aNX@cTg@ daA+_ s11"hh22)t3*tBaaR+t"qqb(!pacb"!6u\%G!!["-@@Bq253T@b"q3L [ELP@[UL0]E5 s_$\&F3s͵NSYFue7A6P,@QjPUn725^}@$1p]]( sUQŅUQbN9P %BR&RpRQQcPFL]`NETWOFPK SHPP5 DROIR7IR5S!:0@ L*FrLr]@o"( qffs_PU 7ex}PcPn2l"! 0n<@5~b -"ER"^br36 Bm Ak Adzau"u22u3/BaQaQR5Q5Q"2b3 !!E|7l!!8ԲAP! !1; 8b,/$1JbKa'q'qne!b($pǕW ]-@$ SPaCPqA9P _Equ>PpRP!ePk`25Xq\` TsPxcP`DP!vR*`3^5b` Sb8C.SwXOQEdeyMPnfPc}PuRU`1%PRd$  N$m $`E I[!" PPe5R'`y 7sRU dCeEWAe C`eV^` SRiP@Q//` T;/M/"LoPcX/Ҭ///B lPiP+q/ ?/?R% RoPo_?Pm??NwRkx"adB`K?g IDPQdPS6O@HL7/nOnsICOHL8dhOPO#%AmV2irUQ ]Q 1O+_6 fH_Z_\G` fM#AtO_BO_OM@CO(oFNRCbogq%C2mQtBQW6oHL_Roof MHHiAאe2U w'0U W0 /ix4*є"%ݩ܅uuY>2 H4ֹhńЋńЋNńЋTńЋ>ńЇHD: %# h4>T]]9 M JUF/\r?F.U?F~?F_w?P6 AJuM` ?uJt  ;uAIt=WzIRUIl7O],#>2zGz?)@MJ߀A@ebM #zwb(b%)2+2&J p!p!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v0 d i!E$m$[w?b6 ?A$$4/U%-|# |'b6%?6iie<59 6X7'M0Ub6!}4K0 -FAJlJAI0h7!1!ZF9|$0f2 <ڒ#  OR|VJa9Z9P] PReS[RUE:dHܣM\]\ɱQ<5U oYaU526_HU"]rA #cHD: "# h4>T]]9 M JUF ?F"]?F|>?Fuvw?P6 ]AJuM` ?uJt  ].It=W`ĆW #JRbJlLXz#>2zGz?S@MJA@eb#z(b)R,+,&Jj!j!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v d c!Eg$[;?\6L ?A$./O%-v# v'\6?6iieP659 6X7'0UpB\6!w4%0 'F;JlJAC0h@7!1!ZF?Hܣ~0, <pB#\  IRvVJ:~?6VOS sgZ^TURUEUEBQG\ZYpBaիQ65UQ[fS.aYUb520_BU"rA #cHD: ## h4>T]]9 M JUFyE+?F0]я?F~?F@?d{w?P6 >JuM` ?uJt  vr It=WP|IRsUIlO.a#>2zG_z?=@MJAw@eb #zb( (2+T2&Jp!p!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d i!Em$[}! K2?b6 &?A$ 4/U%-|# e|'b6 ?6iie<59 6X7y'0Ub6!}40 -FAJlJAI0h7!1!効ZFHܣۄ0Y <? 6ybi  OR|VJa9PY]PPReS[RUE:]|$M\Q`YdC4U<5U=VN_YQU526_HU"rA #cHD: $# h4>T]]9 M JUF ?FDL?F|>?F~w?P6  >JuM` ?uJt  ].It=W,t@ "JRb~l>t2UK?=@MJA@bJ + &Ji[J'?a& ?A)B !!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r 1uai n. _ Al90 (Us=2e0e vO0 d10!H$-,# 'a&K?6i@iek59 6X7'K0a&!|$K0 FJlJ8>UhAA !!ZF@?d3{  </.a#]M 1R^VJ:]ɜHܣ/_AZ2Ey#xUEUVS s#FT=RxUk5U؝Qˠ\BY3QX5*n?֬BoAZ7],XU[Bl|Q2_*U"rA >sHD: ## h4>T]]9 M qAUFA[?FFw:?FE12Oz_:w?P6 L[ >  (m$JuM{` ?Agg2DuVJtS  .!tw|3s,kIɸ _>JU2N贁/Nk?=@M3#JC&A@b#zw u#bR( (+&jJ=#%'?& ?A"b${$:3/*T'B=#115 `?CopyrigTt (c)020090M0c0os0f21r01a0i0n.0 Al@ 8sBe0e0v@d0+"|144#-=#3 7&4%"XOFiie2E9 ԆFXG|L"'0URi&!40 FJlJ" >UhiQiQD ]GQ N1DJc$LBhL!l%,W2[AN11(Z=#FC[RRTFQ ucR/Q Rf4"J:GdFX_!0wbfc L|c :D)$aER!Jj^opdiUjh2E~V! b# 2 ?߮.hOEu<ɛ?F#Pw|hؾ6|ެ^hu?F/Lw|iU6|^^e~?EYo< thQ[T`vg2w 0M6weQT`Dgwӏ u5XPo`Iϣ4oj7::eQT`Bvu*< f|hQT`r :{T_t Pa?F3SXk͖o?F vT?P);N 90 ,)Ri0m6uR. 6u`yyb !` /K!? -hO.?Ra @cB)r5%aQ K)XiyBG\h5b-Ob?Fԇ*sR6|FsaeQ Q~B?F)qqiQhAeQ9dϢqwiaeQe񯁜ai|hQEWXYWuwZl a++hf! l?FQD0)ˑ6|P?U/hL t9?Fz2)v<>KU6|*hQyո ?ghhWyh= A=}!eQW%|6^T?`NAA_owA j;[6te UI:vdv =KylI?ε~T_Ţr+a W  /~nIX(dur|?F 4?F?PَKK :d?Ltؤ?yl!?(!@[l Xj2GtaCpzm&褯 "4gyC?); 1ecDhe2GoYe%3rQ M3#k2HD: H ih ,>T  9 MJUF ?F~?F|>һP6 m >JuM` ^?5uJHbcFFmtulyt b#tI>2zGwz?@MJA@Wb)+& !Jg"~& E"\Ab)+'A,A/UB115 `?CopyrigTt (c)I020U09I0MA0c.?0os90fG281r;0t1aG0i90n.I0 Al0 ?8s2eg0ej?0v0d0ŤM3 b7~&XXt5i b9 `!X78G'0UB~&%0R 8FLJlJ8>UhAA( 1:9m EsBU[JHU؝Hܣˠ Xm] 3Ey%U3^֬_Z7]G,XHU)a[BUQHUF@?d{lQY?.aXQ,o`ɜQۤoZ 2QXUH_Z_l_~\_H8>t"s ûdGC, F1 #uwfB )1~dࡘ1Y@+UW1[SsGX1t P'1")1;)+1d  .1#?X01& x31.0UFD  h(^TYYBBUFL&d2?x<F BP(?P? 8$ B66ȅH?j|;? 5JB@?\.ϗsU!&;/ҍ  0RB`=Bridge,lo ica ,n tw rk sy t m t p"r pPy"i"s c n"cB i2%z e^| R(* G@& ߃l?"488Q ]frsww ww ~ww w!%} Iceqs^QZQDrag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aab|>~??[q㿦)j?&Iz?&d23L4CUG DF P# h @T(PYY#EUFL&d2?@F|>?@_~w?P} Y.  !:J :^:rYDu` ?~"66JJ^^rru# *^:"@,@'酅#U2N贁Nk?H]b{# ?#^4Wb {['`:!#"h69#':"UY^"Q)+3 62D!L1$D" D"&3ɜ'>>ÿ@kq05?460r&BCku2u{0`i-1$Bu@ D"3?AIBD" $$9u`u `"[ b:!𿻐u`$i"&){#)Q!'1`Vis_PRXYcPm!y 5jP1jPAB`?CopyrPPgPt (`P) 20P9 MPPcPoRPofRQrPQaPiPn AlP XsReRPeJPvPdB !r#(d$r%:!B={#&r#dd&& t"r$,7^aN.@.cT<*Po mPsPQ>g da +_c&1&1r"hh")ht3* ut2aaB+ti"aa bo(!`ac:"!6uM\%$G!![2?@@Bq%CT@ br"q3$ 35$6Ep05E5c_r$4&F3s͵N?SYFu eIAt,@)Q ySUn%6}61`]]o(c-U)Q)U)QNqKP % TR&RpRQQuP$]`NETWuOXPK SHPUP VRO!RI S1L0@T$J$r5GYkr"o(pa&&s_<*-pq o(A֨57IABKFkq`RPQsPPU exPuP2D"! 0<@Eb Z"E*"br&3BmACAfa^ur"ku"xu3/\Ԭ20 iBGQGQi"2 b3 !!E0|qq7D!C8ArRA!!A;Jb61\b]aaae!bo(q`軕1W c]?@ SPaCPaAKP EquPPpBdPePC8%XI[m` {TPuP`DBPvR83^xmz"` SQbBRdP5d=QMPnfPcPuRiEQ`]&1PRd Nm 8E !3o! PP_q eiGR'`Q sRU<&eФ/YAeC`Ue.^Ԓ` SRiP@Q8T/%/mLPcX_/҄///B }lPiPq/p/?o* RPo7?PEd?v?YNwRkP"a =Yko HiԿAhǖ꥔ Uはw'0Ur/lAx ;,u;uM1, صpH ֍@噄ѤѤ&Ѥ,ѤHD: %# h4>T]]9 M JUFX^?@ ׬?F~?@?P.6 AJuM` ?urJt  ]It=W_7],IRUIlw#>2zGzw?@MJAw@eb #zb](b%)2+2&JBp!p!5 g`?CopyrigTt (c]) 20 9 uM c os If"!r !a i n. WAl (s"Ue e v0d i!Em$Ɇ[?b6 &?A$4/U%-|# e|'b6 ?6iie<59 6X7{'0Ub6!}40 -FAJlJAI0h7!1!効Z@9|$0Y2 <ڒ#4  OR|VJa9Z9P]PReS[RUE:d_HܣM\]\ɱQ<5U oYaUb526_HU"rA #cHD: "# h4>T]]9 M CAUF|>?@:x??@V|+q?P6 8]AI]M ] (JuM` ?#SS2uBJt? tzEUQؕKJbtU]OK>JU2zGz;?@M#J&A@bS#zI G#a(+bo)|+|&UJ#!!5 `?CopyrigTt(c)20 9M c oKs f"!r 1a i n. Al70 (s;2e0e vM0d/0!EH$#[#""?06 ?Ag$I~/%-#,# '6%KO/Fi@ie59 /FXEG'0UBŬ6!40 wFJlJ]Uhz!hAg!(Z#F@H/DžB0J>| 8Ene&KQ4\ RV"JT~?@gf_?F)?@ $C?8S sBKYbFe>J^R,UFeTGK!Q? ӧ|+@B:TPܛ\YܨMJe5$!JP/.`*7 `3iK=Dn鷯hZbU5TQ`R?@[uo0lBqaRSgdd*lxrl{!Joo2_Uvg"rA f# =HD: ## h4>T]]9 M !AUFnx?@?d{?Fg݅?@@?P6 $&> JuM` ^?1?u.Jt+  Rqtes.aqzWWqI7>JU2zGz?=@MJA@b1#zt' %#b?()1 ?(Z+Z&UJ!!5 `?CopyrigTt (c) 20 9 M c. os f"!r !a i n. Al0 (s2e ej v+0d 0 !E$[! s2?6 I?AE$ \/}%b-# 'Y6? Fiied59 FjX#G'0UBX640 UF"iJlJAq0h7!1E!`Fmr?@Hӣ۬0$*fq`7$d 6yb7  R VJa9Q|TK ST1 QE:]|$0]Y_dC4a8^] 7sP@EU < KB?x_QYFf*ɴ%Ud,Z7"_+dK lV}?? g52^_pUE"rA kD#TsHD: $# h4>T]]9 M AUF|>?@~?P6 n# >] JuM` ??Su.Jt+L iteJ]zb>tJU2U?=@MJ?A@(b')4+4&J[vr'?& ?A/@)B!!5 `?Copy_rigTt(c)2U0'09M0c0os 0f2 1r 0F1ai 0n}. Ala0U 8se2e90e05vw0dY0! $-# ',&?6iie59 65X7/'0ʼn&-!$0 /FCJ)lJ<>Uh3 C ]1!ZF@@_?d{ J*4 $d?.a7^QiBQ ]RVJ:D]ɜHܣ[_mZ2Ey7UEfU$S sTrTiRU5U؝QX\nY3QX5Vn֬nomZ7],Xf8:`ϋ iؚ~Gc2anY_Wt T}զDTk 0Q: %C?J i3l}f*i&udWl˔alb+d ?ܲVXU2D_VU"rA k#-UHLuD" # ;3h , T  JEuUF'_?@~?F|>ếP VNM A #$Ae  >uA` ?KG `mm. RSu#\>b]XFOmrߞuZptY b7#t&>U2N贁Nk?@9 3#>C&A@q" u(b)e+&f" !It$>=##"4#K"& "{"b)&;'f",f"/N =#11;#`?CopyrigXt (c)020090M0c0oKs0f21r01a0i0n.0 Al @ 8sBe0e0vZ!@d@+"BM=#3 7&4"Ht1EiIfE 4%!X|FGG'0UB&h50 TFJl>(fUlI 8%#IA{!1(R!gG?@c\;0R dUeR ?!c e(T@|$?Fn-?@Z %_C?YsB\Ӌ$UX?uj3dR-=wnQAY ܲVX3 e^Fx*aqRS3jIBFm_[viH{goRJdo~b KYeTGQ# #s sFR-Dn?% FX512# x4wYB H.15~dT1O6@+h1QMsG61^ P>1?1 C1G1ߔJx1ANPUFD # hVTYYzU?@ ?IF?h PaR"|ou]ofu2/uU ` C&nect&r` e-?{U H  ^   -}|5 p`I`V?}`xa833ސ]3σ3u 33?, ?Gxpx^& This coUnetrWaumtUcl#yrebtwe h *hp3is.HD # =h @>T(]]9 T 2AYUa? uP6 u]`u buA_ u  >3.TAuV ` lxMui"a)J@-?x;'6"wE- xo'6"y( _rq?o@I ?$m%? @horVA$"38*EL2-_br @P' Z6\11u .$n2y2^2n2u9ȑ#ULH/MM^1 # A D5 :0`Vis_SE.cTm!#20ED)`?Copy@0igTt; kc)j@DCU9j@M-@c@0o/@'ofhBYAr\@AUah@iZ@n7@ j@WAl@ `HsBUe/@e@0v@d7@N@B= #x  A G{?9#r22&0444 MG4'ALB5?_$k&(SZ6Y8# #2"qlSF,C`l>lUhr5 QA+/J *&%(og5k#p f3e'r#TA(11MJEsooR6'2Y7E5S3Wc7r516Ũ_aJ2_quU\DQ>0]b;)`R@As-@E T@xh@DiA eJi=S]UBTJg'0SV!@LA,SrWg 1Cy$A$AMJ6!Hp,@R/TAEb?RQP? _H>Ff"s O`E )F1S#-T7B1UedHV@x1P+81fZ"sUFD  h(^TYYBBUF\.ߗ?x<F BP(?hP?X8 ]B66 TbH?~? ?B@L&dW2?Y (sU/!-&PO/v:  0eIB`Modemw,n tw rk p rui h"al !v c !^| f(U GT&( F?_""U*++'?MwpwtwpwDwwp tGwww G@wwDGwD@w p@wyww[wp|`npXDrag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aabi4FѿL&d2?j?oҿ=t??\.r3r\.CUG DF P# h @T(PYY#EUF\.?@i4F?@M&d2ɻ?P} č,.B ! :J :^:rYD 7 7l7u` ?"66JJ^^rr)u#",'񤔅qU ??4^b,0{][`:#A82A6#'%Q)U" ^/LV1$  d7'>>ÿ@qZ05?46F0r.B4CZ2u0`-V1ZRBu@ 3mAwB h$9u`u `"[bz!u`R$"% #WQ 1 71`Vis_PRXYcPm!#5P4o67>B`?CopWyr~PgPt"0u(P)"020PU9"0M~PcPoP'ofRQrPQUaPiPn "0WAl` Xs bUePePv`dR 1#d$%!*(=#6#@d66 2$B##0Ub3]fg,7^q+^\@V\cTg Pda+_Msd1d1"hhr2)$t3*tR+tHR@ q q"@q@qTb(!PpaFc"+m6u\%RG81>1[B2m@@Rr5.CT@Fb"31 UFHUM5Ms_$&ׄF3s͵NSYF)UW0TewA,@WQ S+epwr5}1PpP"(A2yT?+>BB).B4KCFq`R`Qs\~PU T`xPP2 0<#@4Eb_ &2CE"brd3vRrӟ(Mff.F_<1-mTwNcPpu"ur2u3/R0HRuQ$uQ"2Tb3 &1&1E|FF0RQ(dPpWQ,[[ ]m@0` USPaPePl\rsQAyP E u ~PpPePr5X 1V` ?TPEѣPH` D`vR3𯴊ߜb` SabߣPLB PMBPd`rUdKMPnafPcPubHU\nHUQi{]d1;PRd Nm.0Š)U,03!8 PPr0BQhHpcu]uR`sRUѠeANe>`pe^bt1R; SbiPa¢&T18LPcX!mFTXjB?l'`iPkqo&0Z38RPoO,d/?c dDψ(ȱȱ"(Ms3) &&&WUՁ:p/` %R&RE"ibȱ`NEWOPKPSUH`PV0 ROj2URIV0S$AQxR7 i q'U,ygm5xbb7'dũfɵR3D-҃aa8')uyqarL?aTe5x`H7vAտD?aKDKDaKЅDKDK7eDAKTeDJHD: # h4>T]]9 M JU@i4F?@??@hĻ?P6 ܠAJuM` ?juJt At=W ףp= #JRbJlQO#>2zGz?)@MJ߀A@ebM#z\(b),+),&J[(.w?& ?A$T./O%B!!5 g`?CopyrigTtZ(c)Z2009ZM 0c. 0os0f21r0>1a0i0n.Z AlY0 8s]2e10ej 0vo0dQ0@!$b-# 'Y&?6iie59 6X7'0UpBŴ&!$0 D'F;JlJAh h7!h1!YZ@x f, <#  IRvVJ:ǿxT]]9 M JU@"&d2?@ `?@BP(ĺP6 ]AJuM` ?ju#t  m۶mIt=WwIR$I$+IIl#>2zGz?@M|JA@e7b #zb(b%)2+2&J[/.?& I?A$4/U%B!!5 g`?CopyrigTt (c)020%090M0c0oKs 0f21r 0D1a0i 0n.0 Al_0 8sc2e70e0vu0dW0!$-X# '&?6iie59 6X7/'0UvBŇ&-!$0 -FAJUlJ8>UhAA 1h1!T12 $<cV5{ WR~VJd2L&?@bX,Ʃ ]S fR#mS ?ZZQ4E^0__ %zzX5:U XYePY؉X5aZjoohY}aUVeEVŠRldQY)+R+X2>_;"rA 5#dsHD: # h4>T]]9 M JU@xmJuM` ?uJt  Am۶mIt=WHzGIR]Il#>2nz?3@MJAw@eb #zb( (2+T2&J[ (p"?0& ?A$ 4/U%BB!!5 g`?CopyrigTt (c])020%090uM0c0os 0If21r 0D1a0i 0n.0 WAl_0 8sc2Ue70e0vu0dW0!$-# '&?6iieP59 6X73'0UvBŇ&!$0 -FAJlJ8>Uh@ 11!Z@?t:Né  <qqh#B] WRVJ.@ ?@L&d© ]S )Q#hY8?Kh/QE^ `__ ^BX5a9XYePXRmScRU5:]md2L&U\ahY*PX\eEVV_iaU2>_PU"rA #dsHD: # h4>T]]9 M JU@i4F?@M&ɯd2?tP6  >JuM` ?uJt ASt=WJRb~li>t2U?=@MJA@b + &J[N#?0a& ?AT)B!!5 g`?CopyrigTtZ(c)Z20 9ZM c. os f"!r 1ai n.Z Al90 (s=2e0ej vO0d10@!$b-# 'Ya&?6iiek59 6jX7^'0a&Z!|$0 FJlJ UhqMAA ]A !4Ja-'Z@?fl6˃  <HzGh#BA OR|VJ:6]t:ϝNM__Z(\#UEL@ _?@Lƒ S AA#`YQ(\Xk5^ s`o!o ̌aX5UxT9 M3JU@i4F?@M&d2?ҷP6 m >JuM` ^?5ulbSD_Jt bstE>2zGz;?@MJA@u+b+&K !JS"j& 1"A.b+-,-/*B!!5 `?CopyrwigTt `wc)5020A0950M-0c+0o%s%0f32$1r'0`1ua30i%0n.50_ Al{0 +8Us2eS0e+0v0ds0ib =L!XY'0U Bj&%0 :lJ Uh*M[A[A 9A 1:xTh]]9 M JU@w[2?@2?@?뇤?@bf?P6  n>JuM{` ?5 uJt  hxvEt9SYEN^Ӟ~ӞEh!D#<>>2N_Nk?<@MJA@cb]b)++&J"< u) ?AHb$z@J+%/F%B!!5 c`?CopyrigTt (c)302`0930M+0c)0oKs#0f12"1r%0^1a10i#0n.30 Aly0 )8s}2eQ0e)0v0dq0!(Y$-3 7x&+0b59 6X7G'K0UhBx&!$Ia F3JlJ]Uhz11Z@`Y3   8gF/_ M ARnVJ!49BYOPBRWSMRUE:]R.?\QRYl>Q5U/V@_YQĈU2(_:UrA cHD: H h0>Th]]9 M JU@p8?@d2L&?@αB?@.?P6  n>JuM{` ?5 uJt  YEt9SRQEN߆$1Eh'>2N贁NKk?<@MJA@cbb)++&J[ < u)| ?$%/F%BB!!5 c`?CopyrigTt (cu) 02`09 0uM0c0os If2!r 51a0i n. 0 WAlP0 8sT2Ue(0e0vf0dH0!Y$Ť-['# 'x&0b59 6X|['7'0U?B)x&!$aI 6 JlJ]Uhz!^!Z@mN/?  8gF_  REVJ49Y&PR.S$R_UE:p]"`3  \Q)Yl?>cQ5oUV_YQ_Ub2OUrAg wcHD: H h0>Th]]9 M JU@&6?@0ސ?@?뇤?@bf?P6 n>JuM{` ?5 uJt  lUUEt9S;EN^Ӟ~ӞEh!D#<>>2N_Nk?<@MJA@cb]b)++&J~"< u) Y?AHb$z@+%/F%*B!!5 c`?CopyrigTt _(c)302`W0930M+0c)0os#0f12"1r%0^1a10i#0n}.30 Aly0U )8s}2eQ0e)05v0dq0!PY$-,3 7x&+0b59 6X7G'0UhBx&!$a F3JlJ]Uhz1h1Z@`Yg   8gF__  ARnVBJ49BYOPBRWSMRUE:]?R.?\QRYl>Q5U/V@_YQU2(_:UrA c_H>vQ+s #X8L(r F1&[f#1\!B-1]~d1+^@+(W1-LsG1ymP1f*1jU1emT1߹pXp1ftz8r1wt1zv1}$UFD  h,^TYYBBUF\.?x<F BP(c?Ps?m. 9c:M:O @z0 BH ?? V@L&dW2?F-W(Yi(G.sU!&P/)7(:  0 `WB`&Ring\network ?p$0rr0pPE1al\d$0v0c$0 c1^ (J YG& r+?!) +)!q q ǿ~~|p~~ṗ ~p~;ކ~pp2AAqDrag onut he]pe,nUdu /p64lies9Lt]wrkcQm tOfTly lGo_"imdO.b\.L&d2??;IOғEMQS?=?mar3r\.CUG D  # h T,YYEUF\.?@?FL&d2?P} ϛ% ^.&N+O+.Q+R+S+T+\+]+^+_+`+a+b+c+d*+e+f+g+Q.i+j+k+l+m+n+o+p+q+r+s+t+u+v+w+x+y+z+{+|+}+~++++++++++++++++++*++++73636 3 l_Fu{` ? &CG/B>CBHCBRCB\CBfCBpCBzCBCBCBCBCBCBCBCBCBCBCBCBCBCB"CB"CB"CB$"CB."CB8"CBB"CBL"CBV"CB`"CBj"CBt"CB~"CB"CB"CB"CB"CB"CB"CB"CB"CB"CB"CB"CB"CB2CB 2CB2CB2CB(2CB22CB<2CBF2CBP2CBZ2CBd2CBn2CBx2CB2CB2CB2CB2CB2CB2T6g666U66FFMBuIUHrN|Nw1r L@Gs5 ^CB0  $sV!v q)?@4v!p`:!@ K*RGs Br(1=s0s)) %Rt؉sq1`V sPeXY)cPm!#52862F1`?UCA p r gPt3()32U0Z93M c_ Eoi oM=rK yas iA n) J3A# l3EsUei e_ vd)21wrޟҀs?@A3{d|R$Bƕ~u +@@âɸ!BMBj8}rup`i-qBu *@rw1s!8=}/B 2t@I9u`un`"p2] HqDou`t1E[B2TU뱥)8s5ä  r}vh^T`%AT<7 o3mss >XxĀu7T=n7 eMTNtT yk3Dvd{uu ƃ@Rdư5ߙ߫ƕ9'9h\nE|1CU t@ʴ#FXjHqʶq-?bt[Ű//A:/L/^/~///A///p?!?3?ʼqV?h?z????z?? O@ɯ+O=OOOoOOO9OOO =t__'_!D_V_h_ͪ___#___$o+o=oB%`oroo&ooo'o!(5GY)|*+ .HTfx{şÏƹ/&8J!0m1Ɵ؟2 3BTf͐B_5Я6);7^p ̿_9:3EW;zόϞ(Oas?ߨߺDqm4# 1T 5h86%8llc౓#"AAш]]Ѥ C){q{qpqq22EyyNNaѕѨHr/d~CU|@c` MaЧufu e nA` EqipeBtm/h~4qP o|uNmb /b XQ Pr6HZ/{+ srt_q/\A6s6!P/^za Sil/T1 LcAHR\fpz$.8BLV`jt~""0":"D"N"X"b"|"v""""""""""""""" "" "*"4">"H"R"\"f"p"z"""""""""""""""""$"."8"B"L"V"`"j"t"~""AaXT@b FTP%జJKTltφT0ƐĮbPQwr SS#TS”GLF2DFbXO%—ȩP_(_:_S…LF?Hd}OƁLQ____KFLpXO( B}KoЁ?_T_o(ooS L FY2ణ3oaoЁ !eo}cGYkS L Fft]eҼ–B" E L FsxLfO͏ߏ*H L F l_go}<*A]LF џrmБ Є!7I[EʟLF `0 毯ʯ_&tEULF OT~N򤢿ƿTؿFLF O!H$6 Hϱa6ϗ*FLF ?ZبP6HZߙBLFR5xqy?o%L%9F//"q8?onT&L&9F?ᏼJ`_-?*e'L'r?UO{O$(L(roy:uoڟ) L)r!_@4 oj|*L*r"oݿF\);a+L+r#xQwχP ,L,r$|[6qȟϨ߹-L-r%Ϗ0 fTx.L.r&BX%7*] /L/r'7Msߙ0 0r(3 W2m1  1r)˿@,bt-2 2r*>T!/3/Y=3 3r+p/Iߔ/o!/P//M4 4r,tS?.1i?/??M5 5r-O1(O/^OpO]6 6r;Q?\AO:OP_/_*Um7 7r//?E_Q_{?__}8 8r0+oOo*aeo/_oo}9  9r1oa@$ _Zl: :v2/q6LO+Q; ;v3hA?gwoP?؏<  >v6~_ɯ߯2H'*M? ?v7'=ocsoԿ @ @v8#oGπ"]ϴ¿ϥA  Av9ϻ@RdߊB Bv:zߠߠ.D#IC Cv;`9_oP D Dvv*@  E-GV,Gv !7-[k=HLB,N5>LB_r:?C&2F3s͵NSYQFEB,N>HdDq7ME5qD68W#"U%&EfW@@cX @ S1` Token?_RiP1nD?[Q?##qh1ab /X##zQ?AzQgVD6e]r##"` %P&rPpPrtPe+sA D2`A!_`NTMPUOPKfPS A``UEfPPPObR`5ISi0QAqD_!_\X\OT.U_C0?ni4oo\XXOSw'K0Ur%V!0^ v2Zei1DAT\1sEPuQ1MEX OS%HVl2UxAUx1'ExAMEx HCDrDC  @   !"#$%&'()*+,-./0123456789:;<=>?*>ABhiATiiJ\ 3U@\.?FL&d2?JP}@YIYqX"u`W?"&&5&,"u6)~}bE@{#&t03! 7("tm!,v&b$&"qK!Y$30^?2-,"l-2""2!l"6 #",$=F#"f$6)![0$%J[LD0D=F?|" (&3AA1A1 ;m`"`?CopyrigPt(c 09M-Pc+Pos%Pf3R$Qr'P`Qa3Pi%Pn Al{P +XsRe*SPe+PvPd"!ZOAy 7$^ ?P?b?[!H${eQnB? ???O %O.O@@OROdOvO6CkaOROOOO_ %!_3_E_W_i_{_Vx<kb_b____ o %&o8oJo\onooy_ocoroooo %_.@@Rdvwd %0BTfxyheҏ %5GYk}~/mfĢן  % =Oas~_?gůɲܯ $ %?Q@cuOwhʿ) %RGYk}ϏϜ_i . %I[mߑߣoj!3 %N`r k &8 %Sew+= %Xj|)m 0BU]o9n"/#/5/G/Ub/t/////Io/2? ?(?:?L?Ug?y?@????ϟYp?B OO-O?OQOeGQoOOOOO?ߧfqOR_ _2_D_V_"u!q______yr_ro%o7oIo[o'"voooooos *<N`,#{@yt /ASe1ˏݏu "4FXj6%͟ߟ/yv'9K]o;&ү?yw, >Pbt@'@ſ׿Oyxπ1CUgyE(Ϧϸ_yy#6HZl~J)߽߫oyz$(;M_qO*y{)-@ RdvT+@y|.2EWi{Y%,y}37"J\n^5-/y~8/<2O/a/s///cE.///// ?y=?ABT? f?x???hU/??@???OyBOFRYOkO}OOOme0OOOO__yG_Kb^_p____ru1____ oo yLoPrcouoooow2oooo QUh z|3@%VZm4Џ*/[_r5՟ /? Ɇ`dw6گ"4#Oهei| Ŀ7߿@'9(_jπnҁϓϥϷϕ8,>-o',sߘߪ߼9 1C2! F1 xR'9K:)6} ;@);M<+)~%< .@RA09"5=/!/3/E/W/F5I/2/////E>??&?8?J?\?K:Y?B? ????U?OO@+O=OOOaOP?iOROOOOOeQ_!_3_E_W_dOXGv_b_____uAo#o5oGoYokoZIoroooooDžB(:L^p_NɁHD: H h <>T$]]9 MT kAU@\.?FL&d2=??F?P6 LA P>  + 4DJuM` ?"?o`0?oNu^Jt[ tgJbg>6#J?#,b/ @TZT"Z""P& T/@n_^B% 'N< ?m6 ?AeJa@ۢR4` Ac0entCol0r3z۝0Aٝ0bbbz90“2???9Nbb?1"bAYFbeDG?#E![C39 , B6"hLJ?#QE!TG; J`A`?Apy$@igTt(@)20mP9MYPc$@os@f_RArSP#Aa@i@n. AR @lXWsRePe$@v0dP@ᾡ`1O_o?#2TUam3 FD5#]BrFlL]BrF 0PuGiAbE9 6%yXGg'0bUm6!40 fjlJ qUhhUGHQA3(Z\*{ ٠0"#")b5DrD6"J Az~%"#"BA}/t?PSQ< E!?yET#-#tgaD[#,E:g@qVE`0w>]BrA \Cď'$$+HD  hj @>TA(]]9 M  eAU@\.?FL&d2+?]P6 LA > M /8HJuM` ^? C s4CLsRubJ1t_ tuJb$">JU5 JI4#=#/ @X^X"^"B"6 X/r cb!Bh@,G-v31k!k!5 J``?CopyrigTt(c)2009M0c.0os0f21r0Aa0i0n. Al3@ 8s7Be @e0vI@d+@0tv3?c- =< ?F ?AeJa[_Rf14W` A0cI@n0j1lB3z_ՁA_AbbbzY_)mEZf1T  9 MSAU@\.?Fr??F~q?P6 B >%M a*JuM` ? %U U4:uDJ@bEF&d2ɿuBltA bJt EIM>JoU2TU!?#S@M #~A@@"WbH)U+U&mJ !?v(GtI#J#"# %"& "A@"bH);E'|"/-<*B#h1h15 "`?CopyrigTt(wc)2009M0c0o%s0f21r01ua0i0n._ Al0 8Us2e0e0v0d0"MX#t3 t7&"tt Ei b@9 %!X GގG'0"UX&-50 FʢJlJAUhh)Q)Q!#A@! (:#`RB: 3R$JTV  h1?[_R: @AABUVeLٮ\2maXUe.o_jLo^m2aroo__7\HD H# h4>T]]9 MT CAU@\.?F??F~߻?P6 8M >M (JuM` ?#0SS2uBJt? tTKJWbK>[JU#?,& ?AA@R"bZ$J#B!!5 `?CopyrigT}t(c)W20 9M ]c os f"R!r !a i n. AUl0 (s2e e v0d !$#bB-## ',&%en#2TU1?"@M#R"g&a,R"g&j'\?6iieE9 6XG"7'02U,&-!G$0 NFbJqlJAUhh7!lR!(Q:#N J>83R JWTfV  !?qY_R8>qRl?38VUVL?&d2n\] aٔXEUoe6._x_j omQ2oDo5V_h_o\056 b_HR>+s 1ǡY-MSMלC Fhy1# 2a!B Ҵ1dԦ1 @+8W1 MsGgoz1ZPxS 2F:j 22 l 2>o 278r 2NUFD  h ^TYY>UFD"H$'@F @FxT]]9 #4AUFD"H$@F@ @&@F?x0>Uhhn1n1`!#!J`F6 [>A{ (FMBa!? OABE3RNkO}OGBERE6 O?OBE2?;.1rA _0rRxS`3HD: ##=h0>Th]]9 (3q #UFGJg:#@F@ @FWtyz@F.???Pv> u{` ?u3>(.t  ( y?_A@HNpΈ_-t#`aU"p [`JڍU5 ILҹc0U~ "?AG}cTLIb` LineCoklK rzc+"1&Z/#nFFF"?&?#+"1&&` STadK wI/#/N+$;# FC lM 72zS&eacۢR4` uA cG nt)?@#cb3zs94#+$3$I!8<>3 Q3#8.f.30FP=4B/G3B11G;;#?1pyQ i}gTt ( u)@2`09@uMC cQ osK IfB1r@P!a`0iK n.@ UA%2 HsBe@eQ vG d@0 l>]UhzЍA3+!`J!VQAU__T3^_odgU5^No_roU __ooj'EAb59 M{7/v!3rQav44CK7%iOHBTg7D'$~vv I+"688e @ Q:(yN@v5?=+$cz,Z#b~-(T{ HD: ##=h0>Th]]9 3#UF u` ?6u3`b>"6(t  <,?A@U"p [ZBH|гYYt [ՄJU5 CLT0U"?AG}eC]` LineColZI rz۷!#nF;FF{#?&?#),)"/&&` STaKdI wG/#/ZL+$9# FA lK r72Q&a` ?RR) 3#B2((236727kpvB1o31P17;9#?L1wpyO igTt (cu)J@2`09J@uMA cO osM0IfHBL1r<@N!aH@iM0n.J@ UA#2 @HsBeh@eO vE d@0 l>]Uhz1A3)!BJ@o39DYX3UD_d_vY3^__gzUf53^_V_ozU3__H\o_j5bPf59 M{o7l/5v!3HraPv4!$ 5v|mai6oozo7]'$t~kvPv v8%TE xH@L?c8 eaD@eJ@ l@Qo:0@3 9r)']z,Z#(T5-sTAcL@0P@HD: ##=h4>T]]9 P3#UFpo@F@ @F18Q[ @F.q??P> u` ?u3 >,2t  eX?A@LR[ A\c2t#`e"p [NdJU5 MLc0U "?AG}gLMb` LineColO rz$g/"5&0mddd#nFF;F"?&L?#/"5&&` STa%dO wM/#/R+-$?# FG lQ 72W&eagRa` uA cK nt 85W%#gbd3zRw98#/$h(Ph9BB3 (C#8>239FA=B8G3APAG;?#? 1wpyU igT_t ( )@W20@9@MG ]cU osO fBR 1r@T!ad0iO wn.@ A)2U HsBe@eU EvK d@@l> 0>UhhCA3/!J!VCQU__T3^oomgU5^Wo_{oUE_oo%obTG t>Q e jXHle59 M{7/v!3rX/Qz#=!$K 7%inug7D/'2 #vtx J/":UGDF P# h>,/T6D # UFD"H$@]F@&u@P} jih,D@Su`} ?.U@Nu#hQgtSftܸtRtA@3db#t%T/M/"j/+.d#%@?/"t`Make B 0c"0ground#3%~ؒ314+1`VIS_PRXY0CHM!#60z070"w`?C40py20]i00ht&0(,0u)&02009&0UM0c22s40f2R1r0Aa0i40un0 &0Al:@U 8s>Be@e20%v$0d2"e (^q5 J% 3hHA%DK%D,K3DGg $aI_9SFTv4y13TU-T[Te ZTATU J8>wSa%F1Q01$DtybgURwSi@^UR-n,?oUR1j?RRTuKrQi? eb #! >baes?,3QRoX0cD&q1cQ(QR=wS1VZi#3 D40N40UtBn0a0n`Eq#?_^9jYazPtt"(wS117eU5`>Xcy1`I!&` H0d$2&F40qUAw0޸q` SPo]wRR+="v6 ~!R)RRLf] Th 'Q0d_HV> ל ߪJAC BFu 2Qt#v 2Ž;B l1U@exko}+ 2oKaYOom*<N`rxx 2 ֛{ 2 2GUQ 2S$UFD  h ^TYYUFD"H$'@F @FxT h]]9 # AUFD"H$@Fcѿ?&@F5 L?sFC?P6 u` ?iu#t A@t   q?7Q.7)CWb7]ARMJqmdddpnFFF? ?Agam9T6` Fil> wCo> orz9b2j9A9obdk#zY)א9S|uX9/K&` /2L%!X!#\#w&` STWadD w/" /;)#82#b5"oU y3#B&(23"I&3cg30U2?AGQ}9L"|w` L ne%?(75N582M:Bhj<:AgCy1y17;C?C!pyJ i! htj(0)j2`09jM cJ osD fBC!r@I!a@iD n.j A" HsRe@eJ v#@dPw0l>]UhzAh#j181Ja`gCVQ'  2 bM[8A_^#e33nLo^og#eE3eVo_o#e!_>82rRA w082YsASi6bE9 MzgG]'4Ō;J!$a vvET#@x@&OnAHD # =hj0>T h]]9 # AUFD"H$@F@ ?&@Fq)?sFC?P6 u` ?iu#t A@t  ^)?7.7C_(\T[>JS/qnFFFa? ?Aga9T6` Fil* Con* orz9_b9A9bW#zE)9S|u%/7&k` /28%ߵ!D!o##&` STaUd0 w/"/+oUz G3#B&( 3"&3iE530U2?AG}x "|` L n e?#2Bh8<:*ACG1G1O7;3?/!py6 i htj(c)j2`09jM c6 os0 fB/!ru@5!a@i0 n.j A" yHsBe@e6 v0d@E0l>]UhzjADJ`XC66Q'  2RM)8@ mT}_^U3^_oagUEUtVKo_ooUp!p_>[QrA E0r sC)84Aeio6AbE9 MzG'4Z;!$Da Wvkv5T0x@?AHD # =hj0>T h]]9 # AUFD"H$@Fɻ1V?&@F&7 ?sFC?P6 u` ?iu#t A@t  Biq?7.7C!_lV}T[>JS/qnFFF? ?ga9T6` Fil* Co* orz}9b 9A9bW#zE)k9S|u%/7&` /28%!ߵ!D!o##w&` STWad0 w/"/+oU QG3#B&(3"&3E530U2?AG}u "|` L 'ne?#2BhP8<:A2CBG1G1O7;3]?/!py6 i htj(cu)j2`09juM c6 os0 IfB/!ru@5!a@i0 n.j UA" yHsBe@e6 v0d@E0 l>]UhzXjADJ`C66Q' C 2RM)8A@mT}_^U3^_oagUEUtVKo_ooU!p_>[QrRA E0r sCio6bE9 MzG]'4Z;J!$a T h]]9 #  AUFR_!@F;(kY?F̅$@F_fw?P6 u` ?u#t  \ Ac?oA@'t3(?.Zd;O?M&S?- >JS/qnFFF? ?{gaCۢT6` Fil4 Co4 orz۾Cb CACbۖa#zO)5CSu//A&` /2B%ߐ!N!y##&` STad: w/"H/+oU (Q3#B&(23"&3E?30U2?AG}u "` L 'ne?-2BhB<:A!CQ1Q1Y7;3?9!py@ i ht (c)@2`09@M c@ oKs: fB9!r@?!a@i: n.@ A" HsBe@e@ v0dH@O0l>]UhztA#B1J`!C660Q'  2RM38@wT_^U3^ookgUEU~VUo_yoU!z_>eQrA O0 rsCiy6bE9 Mz!G'R4d;! $a FvZv5T0x@?(AHD # =hj0>T h]]9 #  AUFR_!@F6??F̅$@F_q)w?P6 u` ?u#t  \ Ac?oA@'t3^)?.Zd;O?Mɯ??- >JS/qnFFF? ?AgލaCT6` Fwil4 Co4 orzCbCACbva#zO)CSu//A&`5 /2B%߿!N!y##&` STad*: w/"/+RoU= Q3# B&(!23"&3iE?30U2?AG}x "` L n e?-2BhB<:*A!CQ1Q1Y7;3?9!py@ i ht (c)@2`09@M c@ os: fB9!r@?!a@i: n.@ A" HsBe*@e@ v0d@O0l>]Uhz`tA#B1ŊJ`!C66"Q '  2RM38@wT_^U3^ookgUEU~VUo_yoU!z_>eQrA rs:Ciy6bE9 Mz!G'4Ŕd;! $a (FvZv5T0x@?(AHD # =hj0>T h]]9 #  AUF^!@Fp>?FKg@FmЁ??P6 u` 7?u#t  ?߀A@'t3;On?.Dioׅ?M@_߾?[ >JUonFFF? ?ob"ozCC]b,#&` STad_owCP lP -rz=&G/Y+[ ##e.2"#&3iE0U2?AG}x "` Li'nez/"Bh,:A!!';:3?I1py\ igTt (c)02`090MB0c\ oKsv f2I1r0[!a0iv n J0AX l07s"BUe0e\ vF0d""l>]Uhz1#!2!ŊJ`%6%6"A2  "RM(@DON(U38^Q_c_W(UE8UF_O_(U2O;2"rA 2#^cFCi%bE9 Mzl7]'4+J! $a ff95TF0x0I?s1HD # =hj0>T h]]9 #  AUF+ $@FmЁ?Fh_IŒ??P6 mu` o?u#t  $C?A@'t3;On?.N@?M? >RJUonFFF? ~?{b"zCCb,#&` STadowCjP lP rz=&G/Y+[ (##."#I&3E0U2?AG}""` LiOnez/"BPh,:A !!';u:3?I1py\ igTt _(c)02`W090MB0c\ osv f2I1rT0[!a0iv n 0AX l07s"Be0e\ vF0d$""l>]Uhz@1#!2!J`%6%6EdA  ("RM(@DON(U38^Q_c_W(UE8UF _O_(U2O;2"rA 2#^c%FCi%bE9 Mzl7'4Ŕ+! $a (ff95TF0x0I?s1HD # =hj0>T h]]9 #  AUFP0&@F'ǖ~rl?FMO?Fq_Ww?P6 u` ?u#t  ~jtx?oA@'t3ʡE?.Cl]M/$A >JUffnFF;F? ?b$zCuCb,#&` STadowCP lP rz=&HG/Y+[z ##."#&3E0U2?AG} "` Linez/"Bh,:A!!';:3?I1py\ igTt (c)02`090MB0c.\ osv f2I1r0[!a0iv n* 0AX l07Us"Be0e\ vF0Id""l>]Uhz1#!2!J`%6%6A  P"RM(@DON(U38^Q_c_W(UE8U@F_O_(U2O,;2"rA 2#J^cFCi%bPE9 Mzl7w'4)+! $aQ ff95TF0x0I?s1HD # =hj0>T h]]9 # AUF€#%@FL&d2?FM_O?ݐ?P6 mu` o?u#t  ~jth?A@t b@(.eX'?(MA>RJUffnFFF? ?b$zCCb&#&` STadowCJ lJ rz7&A/S+I[ # #.2"#&3E0U2?AG} "` Linet/"Bh,T:AB!!';43?C1pyV igTt(cu)2`09uM<0cV osp If2C1r0U!a0Uip n AR l7sBe0eJV v@0d""l>]Uhz1#!,!J`X66DA  " RMB(@DON"U32^K_]_W"UE2UF_O_"Ub2O;,"rAQ ,#Xc@Ci%bE9 Mzf7K'4Ž+!$a ff35T@0x0C?m1HD # =hj0>T h]]9 #  AUFb%@F'ǖ~rl?F2wa?Fq_W}w?P6 u` ?u#t  _LU?oA@'t3ʡE?.j+]M/$A>JUffnFF;F? ?b$zCCb,#&` STadowCjP lP rz=&G/Y+[ (##.2">"#&3E0U2?AG} "` Linez/"Bh,:A!!';:3?I1py\ igTt (c)02`090MB0c.\ osv f2I1r0[!a0iv n* 0AX l07Us"Be0e\ vF0Id""l>]Uhz1#!"J`%6%6EdA  ("RM(@DON(U38^Q_c_W(UE8UF _O_(U2O;#rA 2#^cFCi%bE9 Mzl7]'4+J! $a ff95TF0x0I?s1HD # =hj0>T h]]9 #  AUFu %@F'ǖ~rl?FMO?Fq_Ww?P6 u` ?u#t  ~jth?oA@'t3ʡE?.٬\m]M/S$AAJUnFF;F? ?b$zCuCb,#&` STadowCP lP rz=&HG/Y+[z ##. "#>3E0U2?AG} "` LiOnez/"BPh,:A !!';u:3?I1py\ igTt _(c)02`W090MB0c\ osv f2I1rT0[!a0iv n 0AX l07s"Be0e\ vF0d$""l>]Uhz@1#!2!J`%6%6EA#  R#R M(@DON(U38^Q_c_W(UE8UF_O_(U2O;2"ErA 2#^cFC i%bE9 Mzl7.'4+%! $a ff 95TF0x0I?s1HD # =hj0>T h]]9 #  AUF;%@F'ǖ~rl?FOr?Fq_Ww?P6 u` ?u#t  _vO~?oA@'t3ʡE?.]K=]M/$A>JUnFF;F? ?b$zCuCb,#&` STadowCP lP rz=&HG/Y+[z ##."#&3E0U2?AG} "` Linez/"Bh,:A!!';:3?I1py\ igTt (c)02`090MB0c.\ osv f2I1r0[!a0iv n* 0AX l07Us"Be0e\ vF0Id""l>]Uhz1#!2!J`%6%6A  P"RM(@DON(U38^Q_c_W(UE8U@F_O_(U2O,;2"rA 2#J^cFCi%bPE9 Mzl7w'4)+! $aQ ff95TF0x0I?s1HD # =hj0>T h]]9 #  AUF`9d[%@F?F{?Fߢ_-Jkw?P6 u` ?u#t  a2U0*C?oA@'t3 +?.ڊe]M~jtA>JUnFF;F? ?b$zCuCb,#&` STadowCP lP rz=&HG/Y+[z ##."#&3E0U2?AG} "` Linez/"Bh,:A!!';:3?I1py\ igTt (c)02`090MB0c.\ osv f2I1r0[!a0iv n* 0AX l07Us"Be0e\ vF0Id""l>]Uhz1#!2!J`%6%6A  P"RM(@DON(U38^Q_c_W(UE8U@F_O_(U2O,;2"rA 2#J^cFCi%bPE9 Mzl7w'4)+! $aQ ff95TF0x0I?s1HD: ##=h0>Th]]9 3$#UFt>!@Fp@FU^+m@F BP(??Pv> u{` ?u3>.6.t  ?A@RXqhki)t bk"p [SjJmU5 SLiT0U'"?AG}yFSb` LineColi rz!#nFFF#?&?#I,I"O&&` STadi wg/#/l+$Y# Fa lk &72q&` @?r)o 3#B..36=27.JM3117;Y#?l1pyo igTt (c)R@2`09R@Ma co osm0fPBl1rD@n!aP@im0n.R@ AC2 HHsBep@eo ve d@0l>]Uhz9Ah3I!J@35&5&hQ (;UL_q_T3^__gU5;^_^_oU;__do_j5b59 M{؏7/=v!3PrhaXv4!$A;7ai6oo74'&$|~svXv v_am A` Te xP@l>#mbzR#p8!e t@PQ:(yN'@f5ɔ?{I$m."z,Z#!b~-(T{<\B2>2 HD: ##=h0>Th]]9 3$#UFfG#@F BP(?FUiԄUV?P> u` ?iu3>W..t  x&1?A@RXʡE5i)t bk"p [TjJU5 [ SLT0U'"?AG}F^S` LineColi rz!#nFFF#?&?#I,I"O&&` STadi wg/#/l+$Y# %Fa lk &72q&'` @?r) 3#hR@BL..236=27$1311ԩ7;Y#?l1pyo igTt (c)j@]2`09j@Ma ]co osm0fhBRl1r\@n!ah@im0wn.j@ AC2U `HsBe@eo Eve d@0l>]UhzQA3I!J@X35&5&DQ(SUd__T3^__(gU5S^ov_6oUS__H|o_j5bP59 M{7l/Uv!3hrapv4!$ Uv}aiHz7]'&$Ŕ~vpv vX%Te xh@l?8 e'ad@ej@ @Q:1@3 9rI'm"z,Z#.T5-TAcl@0p@HD: ##=h4>T]]9 P3$#UFl6@Fp@Flf^J @F BP(q??P> u` ?u3 ]>2m2t  %䃞?A@V\m)t bo"p: [nՄJU5 WLT0U+"?AG}FWWb` LineCoklm rz醑!#nFFF#?0&?#M,M"S&&` S.Tadm wk/#i/p+$]# Fe lo *72u&` D?v)h9I!Bo? 3#eB223FA BGT2M3B117;]#?p1pys igTt(c])20@9uMe cs osq0IfBp1rw@r!a@iq0n. UAG2 {HsBe@es vi d@0)l>0>UhhClA3ZM!J@3,9&9&C"Q(nU__T3^__CgU5n^-o_QoUEn__o_(bTe ts0e j$Fje59 Mb{7/v!3rQv5!$;7aiPDV74'2B+#~vx _akq A` Ti x@p>#qb[zމV#qUGDF P# h4TPYY# %UFD"H$@F@&@P} j6   L 4 Hn[u` _?BU 4H9 u#p3lbtntQtRA%@> tS%tK/]'4( tTi%i/](/z.R&U@?/".g`Make BJ0cL0ground #d.#4#30U2)1_FB3!5~*؀3A$D;1`VIS_PRXY@0CHM!060<@78݉"`?C^0puy\0iZ0htP0(V0)P02b@0U9P0M@c\2s^0IfBvAry@Aa@i^0n@0 P0AUl@ }HsBe@e\0vN0d@2"e (^E 5 3r ca%A oCjA$A13 f3ba!5 cq@~n^e3jU?~bhKr;aq? |ub #h bauA1*4H f5ohc&Ac.abaEkQ,o^e= cAzf y3` D^0N^0tBn@a@nEi#_9Y@a `A1A1"( c'AAezeE>Xs A pIp1!` H@dN2&F^0YA @ޮ1` SPo]w:bb+"v 6 ~!bbbf,4T4?Had3E_HV>ל ߪJAC BFT 2f# 26B} 𬬘1;]@ek=o+C 2?]BBGU 2]PW 2aXZ 2{\ 2gq^ 202\(32552&62:182k$:2ߑ.<2/h>26X@268B2PLE2W9H22 HK2 JUFD  h ^TYYRUFD"H$'@F @FxH5@@@0ۀ HD:  # ;h4>T]]9 #U,AUFD"H$@FjZV@&@@P -u `u bu  @")lt A)0t#` bFv_n?p [_eAu` ?jurJ:26W&$##D./@%W(l"r/tvel JYO8?$"'D{(/$B}U2q(0?'?96?\.?fd?F 7`BackgroundC0l0rz\)z 5G!3M1 3?l"M@h<:A酙!30O贁Nk?mdddclak)2w` A0ce0t?A)n1bdCzI7!3117;l`?1py0i0h@ (0)2P20>P92PM*PcJ2s0f0R1r$P1a@i0n..2P A0l2P)WUs|RePPe0v@dpP0l>#$!Uh#3 pA QYŊJ*!3"Be(o1HD:  # ;h4>T]]9 #U,AUFD"H$@FVj?&@@P -u `u bu  @")lt A)0t#` bԚp [euv` ?SurAJ\tt&!$)'$"3/E X/j$=(tvel gsS?$"'*Q/$BU2q(0?'?96?\.?Efd?F 7`BackgroundC05l0rz)  5Gt!3M1 3&?l"(MPh<:A!30U_B??mdddLcla)2` ]A0ce0t?A)1b[dCzI7%!3117;l`?1py0i0h@ (0)2P20>P92PM*Pc2s0f0R1r$P1a@i0n.2P KA0l2P)Ws|RUePPe0v@dpP0l>#$!Uh#3 A Q!3 (BHA 3J*!32B'e@o1VcHD:  # ;h4>T]]9 #U,AUFD"H$@Fr߹\.@&@@P -u `u bu  @")lt A)0t#` bF_xP92PM*Pc2s0f0R1r$P1a@i0n.2P KA0l2P)Ws|RUePPe0v@dpP0l>#$!Uh#3 A Q\YJ*!32Be(o1>cHD:  # ;h4>T]]9 #U,AUFD"H$@F~߿?&@@P -u `u bu  @")lt A)0t#` bԚp [euv` ?ur>JvSȱ&$)'$"3/ E X/j$=(Etvel 37?$"'*/$BUo2q(0?'?96?\.?fd?F 7`BackgroundC0l0rz) K 5G!3:M1 3?l"Mh0<:A!300b/?mdddzcla)2` A0ce0t?A)1bdCzI7!3117;l`?1py0i0h@ u(0)2P20>PU92PM*Pc2s0If0R1r$P1a@i0n.2P A0l2P)Ws|Re*PPe0v@dpP0l>#$!Uh#3 A Q]!3 (BA 3J*X!32B'e@o1VcUGDF P# h>,/T6D # UFD"H$@]F@&u@P}  ih0D *@3-T-hc-|u` ?W΍U,@T'*hh||-"| 'u#QtSt% "{tR$t/'A@#KtT%/(/-3b/(08"A2?X>d.3@??2.`Make B0c0ground 335~J3hAmD;1`VIS_PRXY0CHM!#60@79݉j2`?C@puy@i @ht@U(@)@2@0@ @i@As@fBAr@Aa@i@n0 @AlP HsRe@eJ@v@d22e h4^hh P T3 3hHQ5T[5T[3T@[TT[ETh[TX|WndPao7T1128cpAhAhEhATh]]9 3#UFԚ?F BP(?F @F߅d\?P>u` ?iu3>k(.t  9#J{?Ao@HtSݓ_N׳_ambԚp [aJڍU5 ILc0U~!"?AG}cLIc"` LineColc rz$cC"I&nFFF#?&^?B#I&&` STa%dc wa/#/f/G(iF" d3#$..36hH1$d1d1l7;S#? 1pyi igTt ( )@2`09@M[ ci os!0f B 1r@h!a @i!0n.@ AR#0l@GsYBe-@ei v_ dM@b0 l>]Uhz13C!`J/!F%QA(E _._@T3O^h_z_W?UI5N___?U Oa_!o_j5AbI59 M{R7/f!3 raavb5!$fAm/%Q12ooXR7w ' $9~0vx] vF88e 1@tQR:(yN@{f5Q?=C$cz,Z#bS~-(T{<B2 >, HD:  ##=h0>Th]]9 3#UFGZت$@F BP(?Fu?Fa]?P>u` ?iu3>k(.t  aTR'?Ao@HtSˡE_N4@_ambԚp [aJڍU5 ILb0U!"?@2LhcC"II&ynFFF#($(?#R,C"I&&` STadowC l rz&/+_y" QB3#.3i6h H1q$B1B1J7;v`? 1py igTt _(c)02`W090M0c os0f2 1r0!a0i0nU.0  l 8Us-Be@e v?@d!@@0l>]Uhz13 C!J/!FA(EO_T3#^<_N_WU'5N_O_UO5__Y_jD#b'59 M{07/f!3baf-A4!$fm/%ij5|oorX07Ww' $ ~vf Wv $8e'ua0e0 @PHZQ0:^2@3 9R'cz,Z#.T.'~-qT@Ac000HD:  ##=h4>T]]9 P3#UFD"H$@F@Fq!j@FC1[z??P>u` ?u3 >,2t  0*?A7@LtWzGcQR e0qbFL&d2?p [>eՄJU5 MLT0U%"?AG}FWMbg"` LineColg rzR#nwFFF#?x&?F#uM&&` STadg we/#/j+$W# F_ lDi 72o&G,`h9C!Bt! 3#.2236A2JM3117;W#?1pym igTt(c)20U@9M_ c.m osg fGB1r;@l!aG@ig n0 A22 ?HsBeg@em vc d2l>UhhC0A3G!bJ@33&3&C_QA(2VC_h_zT3^__gyUb52^_U_oyUE2__[o_(bT_ ti e j5ieb59 M{7/[v!3nrvv-4!$;7aiX7w'2%#՚~vvv vw_H<>SGל ߪJAC BFM2|#XO2T]]9 3#UFD"H$@Fh4@Fj~L$@FZV{?@F?P>mu` o?u3 #,2t  K46?A@LR e,֍t#`F BP(?pz [e"ejJU5 MKLT0U$"?AG}Mb` LineColf -rz!#nFFF#?&F?#F,F"L&&` STa%df wd/#/i+-$V# F^ lh #792n&` =?o))eCQ3#8&327A22\ތ32q@?O FM$? "fKO:F!%311Ԧ7;V#?i1p]yl igTty(c)y2U0@9yM^ cl osj0fBi1rԪ@k!a@ij0n].y A@2 HUsRe@el vb d@0l>0>Uhh7A3gBbJ@32&2&QA(U_ _T3^ o%oxeU5^`o_oU5_ oo.oi3 eB!3)m!#1'/28pȱ;!$8Q 52xbszgO#u%w#vj#lei:M{!/!3wxAJ dQ`$U8!e fQ:(yN@$v9K?F$g"z]#b?M-,T{{/ Ck\tq ĂHD  # =hj0>T h]]9 # AUFD"H$@&@FxitI%"p: [kՆJsnFFF? ?Abm$zOOSsu` FilA ConA orzOk` >/2O%(!(&\#&` STad*G wE/"/+ReU= 3#J8'32H23"&3E#0Ut2??AG}ΐ` L? n /Bh,:A311 7;3?F!pyM igTta(c)a2`09aM? cM oKsG f3BF!r'@L!a3@iG n.a AA" +HsBeS@eM v dHs@0l>]UhzA#!J`366KaDX' (32oRM(@T/_O_KQU3^__gUEU&V_A_!oUk!"_> QrA *bcCi%AbE9 Mz7's4;! $Da fv5T x3@?1HD  # =hj8>T! ]]9 #,AUFD"H$@Fx@&@@P6 -u `u `bu  @e" - A-0t#` b ̮?p [iuu`l?SuvAJ`rJ &$-'("7/ I \/n$A(tzip Q?$"'(/$񓾍U2q,0?+?=6?\.?ljh?F 7`BackgroundCj0l0rz-.~5e%3Q1 3?a t##FGB%3!#rٿnFFFf6AۚsA,? ("bCzy-lB-3&` STa0ow?(!` Fi0lrH2F1` OE=%:?Q1&gp!K7h<:AJ%3117;XQ@?1py0i0htk(0)k20P9kM@c2s0fR1rP1aPi0n.k AB Xs=be*`e0v0d1`0l>#(!Uh #3 XQ\iJQ*%3'928e&o i1HSeE9 MzW'0URr;!4o ]vqv1` T0xP_QH D:  ##=h4>T]]9 3#UFD"H$@F~@Ff>$@FZV{?@F?P>mu` o?u3 >,2t  Q|a?A@LR e,֍t#`Fi4F?pz [e"ejJU5 MKLT0U$"?AGq}2Mb` LineColf rz!#nFFF#?&?#F,F"L&&` STadf wd/#/i+$V# F^ lh #72n&` =?o)eC(3#82A"36A27\327q@?O FM$? HfKO:F! 3117;uV#?i1pyl igTty(wc)y20@9yM^ cl o%sj0fBi1r@k!ua@ij0n.yW A@2 HsRUe@el vb d@0l>0>Uhh7A3gBJ@X32&2&DQ(U__T3^ o%oxeU5^`o_oU5 _ oo.oi3 e23)pm!4/'2$#ձ;!$8Q 52xbszgO#u%t#xj#lei:M{!/!3wxAJ VdQ`$U8bT^ tl0e @he}}k\tq ĂHD:  ##=h0>Th]]9 3#UF3钿Y"@FFە @FNPQkӭ??Pn>u` ?6u3`b >"6(t  z6?A@BHK=kUYt ["p: [ZՄJU5 CLT0U"?AG}eC` LineColZI rz۷!#nF;FF{#?&?#),)"/&&` STaKdI wG/#/ZL+$9# FA lK r72Q&` ?RR) 3#B2((236727kB1o31P17;9#?L1wpyO igTt (cu)J@2`09J@uMA cO osM0IfHBL1r<@N!aH@iM0n.J@ UA#2 @HsBeh@eO vE d@0 l>]Uhz1A3)!BJ@o39DYX3UD_d_vY3^__gzUf53^_V_ozU3__H\o_j5bPf59 M{o7l/5v!3HraPv4!$ 5v|mai6oozo7]'$t~kvPv v8%TE xH@L?c8eaD@e J@ fQo:3@e3 9)']z,Z#bK~-\sTAcL@ 0P@UGDF P# h>,/T6D # CUFD"H$@]F@&u@P} ~ k ,D@Tu` ?LR,ru#|QΉtSzttRt 'A@tT$/ (L/+-3xOb ((A"i/.d#@3)5~??".s`Make B0c0ground#b314 ;1`VIS_PRXYx0CHM!#6008!"`?C0py0i0ht0(0)02@090M@cJ2s0f$BAr@QAa$@i0nx0 0All@ HspBeD@e0v0dx2"eYk} !HA%DK)5D,K3DKDTGnDAD_'7BTAy1y1 "(S11}51<>@XBr1I!&` H@d.2&F0o$@Az0#` SPowRo +<"v8d7e7 J@cbbg bg__0R11"Sa%1+bb$y1r,QHEq)5Se@~|u3{,|uVz?rxK2cxfq<`}? rjb #! bIgaj?@TT,3qEGxsD& 'M1sYq(q{r=SeS,fa0 D0NZbAn$@a@Q"AC@M7LqtKo]e_vH>ל @(T6D UFY,b'@F#H$ @FxT ]]9 TaAUFY,b@F#H$@&@WFF"W@P6 u`bt A@u)΍tStS<tTJ(S3d i)Ob  ADREJ#U0U8"?@$ t0 ?$( ?U kaX:`B c groundC l rzAb#z.)s$%B//#b w/bn3H? K1#5 CL.`M kek2?dQ5.1#A D5 v$`?!py;0]i90htk(50])k20S@9kUM?@c;2s=0fEBR!r9@!aE@i=0wn.k A lk>GsBee@e;0v0d@B1#lhA@=^M G5C G&dRMl>0>UhhE p.A!1 $R0SPJf l#b(.hD Ob"YbM_(F!o+g?7o3coe5noogoeV%efo+o oeE2 o;rAsCghe[+TQQM- &EtJsTl@S6V%B,QE=BAA!D)B0#` D=0N=0t*E2nE@a?@nE,15eq3FB(OqiAbV%9 M!4.'7$ň&!$Q2 $H>%1x (z)ub"`\NWFL# 2NeB C6%OPauo@{+yoB; o!UFDfP h>,/T6D ؉UFY,b'@F#H$ @Fx%B2 6gdaO{'TT'T= S5Ҧ13C#C D)@N)@tC)@nsPaiyPr$^ Ph(:LV?DOowpx`,p|rag ont] hep ad ful--> siz "]bckru"im.bY,b#H$@@5pm;μ@@3F" HD  ?hZ8>T H]]9 UUFY,b@F#H$W@' P6 lA u`l?U  u(tS&A@ctTl$bsTJh=M/ m20U?@LebTqBG H#$\( ?A3`BackgrounWdC l rzuu!$)(=~ H" #{#9"Mj%7 M`M kek/dpQu` EvNO0nt!p'!~u eJع1!';1#Vis_o RXY. hm!#6050 v`?!py ui hx0 ( u)k2009kUM0c"s fBR!r0!ax0i Un0 kA lk*GsdBe0e s1Qd0 &+?"A %l>0>Uhh5@ 7A!!!JnGV lfX 2 3VM@ !Q_&1q_mQU3^__5gU%UHVoc_CoЧU"5G_ #rRA !"cCgThe'+RT!!M-Qt^t JcTl!nqz{,@{3#T811 C!## D N t"w1a0nEH>Or S-"GqS@w`Fx}T"#֮1VTB h9]^aTQW@=+CU}Bh9 PUFD  h ^TYYUFD"H$'@F @FxT]]9 #U/P%g(|"./t  {Pk?e"p _o*'6#4!Uh#3 A AYAJ*=3F"+2BU_ ASHD: # ;h4>T]]9 #U#AUF@F\.?Fl6 @@P Vt`  ?"u u u " '@l0+bA80&t# bp [5Ru7?u_eAYJUFL8~i/6a房D!@ '!"*(E,{Pko"] U?N@*(~k *Q/Bo2q0??6??S??F 7`BackgroundCq0lq0rz~8b%I=(1g 3?"&Ph<:AZ20U0B3 Lb+ 7117;Y`]?z1pyo0im0Wht(i0)W20@9M@co2sq0fBz1rԡ@1a@iq0n]. A}0lGsBe@eo0v" Pd@0l>#$>Uh,#3 A AUE 2teA}o #J*A @"BU_1SHD:  # ;ih(>TA9 35AUFi4F? <Ѕ2P $>  u` ^?3 u4#"t  q?A@g#tYsn$"Jh?hB="5 +#?A&\ ?~!~!5 `?CopyrigTt(c)20 9M c os f"!r !a i n. Al (s"e e v0d l>#UhEI !#J?Xl]b4X6WBHD:  # ;h0>Th]]9 #AUFi4F?k?@P -u `u bu  @",% AGh[ >u`] ?u#J" ѿ$ #p/$.?/ ")Z/l)t )baht Da&(/Ԯ$BU27q 0??16?\._?b\?F 7`Backgrou_ndC0l0rz%b5=t3E1 3&? ?9!J31h17;h`?1py0i0hUt (0) 2`W09 M{@c2%s0fB1ru@1ua@i0n. A0l zGsBe@e0v@d@0l># !Uh#3 A jAYbJ*3B`Uy_1HD:  # ;h0>Th]]9 #AUFi4F;? ?@P'-DT!>-u `u bu  @"E% AG[mu` 7?u#e@)J"9$' "/-%Y'%-(c/- t aht aR"/$&QbaBU2q 0??16?\.?Eb\?F 7`BackgroundC0l0rz%b_5=3E1 3? ?9!3117;h`?1py0i0ht (0) 2`09 M{@cJ2s0fB1ru@1a@i0n.. A0l zGUsBe@e0v@d@0l># !Uh#3 pA jAYŊJ*3&"2B`Uy_1SUGD  # h#$T #3 BUFL8?Fc?@Fi4F? uP} VV    $ u` ?ULV){$$ASu#L"p [A@)HtI  {Pk5?0t bF,/|񁠅dyBM#!!Z* "`?CopyrigPt (c) 20 9 M c os f"!r !a i n. Al (s2e e v0d ;"eYk}$Hp1D%|4;E|4$7UGD  # h#$T #3 BUFibAA%@Fc?@Fi4F? P}  u` ?u# VrVh -(^<c=PLVU((<<PP"p [A@Kt  6TA9 35AUFi4F? <Ѕ2P u` ?Mu# t  q?A7@t+"=&9Enm$ >  , Jh?B="5 +#?A&\ ?~!~!5 ~`?CopyrigTtl(c)l20 9lM c os f"!r !a i n.l Al (s"e e v0d. l>UhE`I !#J?l]2b6BHD:  # ;h,>T]]9 #AUFi4Fu?k?@P -vu `u bu  @"E! ACWmu` 7?~u#m>)J" ѻt b[]dt ]&( '/$$y'!t"/%'-/ BU2q0??-6?\.?^X?F 7`BackgroundCj0l0rz!?b!I=3A1g 3?3117;vd`?1py0]i0ht/ (0])/ 20\@9/ UMH@c2s0fNBR1rB@1aN@i0wn./ A0l/ GGsBen@e0v@d@0l8>#t!Uh #3 A 7AI+J*3[2B-UF_1\SHD:  # ;h,>T]]9 #AUFi4F? ?@P'-DT!ݿ>-u `u b_u  @"! ACWu` ?~u#->J"9Bt ]d!t ]"/ $-&b[]$y't"/%'-/ BU2q0??-6?\.?^X?F 7`BackgroundC0l0rz!b!=t3A1 3&?J31h17;d`?1py0i0ht (0) 2U0\@9 MH@c2%s0fNB1rB@1uaN@i0n. A0l GGsBen@e0v@d@0l>#t!Uh #3 A 7AI#J*X3[2B-UF_1\SHD: # ;h4>TB]]#AAUFD"H$@Fc?@F%@FCHy5?P6 Amu` ?A@ u#`%t  ŏ1w-#LRtA`%"p [S$J=#UG ?| ?釉\2q- ?,/>&?\.+?&i/: -4 # #20U" @ #Mb Bh,:*A!!';`?CopyrigTty(c)y2009yM0c.0os0f21r01a0i0n.y Al0 8s2e0e0v0d0 l*>,>UhE=%y1# 1J! rBA?(wN9OOEE3wEOKOY% wESO#R] JiAle%(9 MX&7WW'$ž.! $0 V #x"j__$f!32bGgHf_1 `5kyoobq %?1HD: ##=h0>Th]]9 3#UF( x"@FFxQ}H( @Fy0խ??Pn>u` ?A@u3`b>,2t  ?sFLR +5t ""p [NJU5 MLc0U"?AG}(LM"` LineColS rz$3"9&nFFF#?&^?2#9&&` STa%dS wQ/#/V/7(iF" T3#$2236hL1$T1T1\7;C#?1pyY igTt ( )02`090MK cY os0f21r0X!a0i0n.0 AR0l07sIBe@eY vO d=@R0 l>]Uhz133!J!9 RXEO?_)[3?^X_j_W/U95N_ __/U OQ_ou_j|5Ab959 M{B7/f!3bѿavS4!$f1m%A12(ooXB7sw'$)~ vv: sv688e !@dvQB:(yN@kf9A?=3$z,Z#bԁC~-,T{< B2 > HD: ##=h4>T]]9 P3!#UFD"H$@F<@F ҵ #@Fx萢5?@FN@?Pv> u{` ?{u3` #>,2t  ]?A@LR e0t bF@ ?p [e"eJU5 - MLT0U("?A?G}FMb` LineColj rzR#nwFFF#?x&?I#uP&&` STadj wh/#/m+$Z# Fb lDl 72r&J,`h9F!Bt! 3#.2236A2JM3117;Z#?1pyp igTty(c)y20X@9yMb c.p osj fJB1r>@o!aJ@ij n0 yA52 BHsBej@ep vf d2l>UhhC3A3J!bJ@36&6&C\WA(5UF_k_}T3^__ g|Ue55^_X_o|UE5__^o_(bTb tl e j5iee59 M{7/^v!3qryv-4!$;7ai X7w'2(#՝~vyv vwUGDF P# h>,/T6D # UFD"H$@]F@&u@P}  D 3,@+  h?u` ?U~@@T^,u#Q3tStB%: D"tRB$tK/]'A@3bI/[(#:"tTB%/](/{/A*""/.dJ3@S3y5~h?S?J2.`Make B0c0ground: @3ز3AD[;1`VIS_PRXY0CHM!#60+@892`?]C0py0i0Wht0(0)0U2Q@0W@ I@i0J1s0ftBeArh@Aat@i0n0 0Al@ lHsBe@e0v0dT2A2e4^AA @Jy5 3H=QJ5ITT[y5IT,T[3IT@T[ITT7WEIT^[@EXhTWnda:oTw7T(11J2G8hcAAEA>Xr1IC1&` Hn@d2&F0ot@A0#` SPowoTD!+"vde* @"s)r#r%_w)rgA0o^So=@ib@1$1J2ty2-t3I[t ZtE "bG8TQk`aJ5AK#r)r1{1Qg ga$y5hce@6D3,φ+?6ם ߪJAC BF[b#h]CB} `]@ekbo+JYd]BB8]Px`cOe،_7hGjOXl0n2fp3r5wu7xoH;3|x=rUFDfP h,TPYYCUFY,b'@F"H$ @Fx siz "]bckru"im.bY,b"H$@@\L[/f&.{@ͺl@;μ3D UGD" # h <^T$(YY#UFY,b@F"H$+@' ]P} j&(<XP"u` ? ((<<PjP nu#:xtSv߀A@#tT /tb"(9'do `%  `"Mo`Make B c ground!}Q ` Ev nt!pb ~  "%JT%-%'W+3S?$B#i#k0Ud2>3F&=i$46`#4r6r6 :2g"\i#2q0??F`#F\.?y( .O@i#dA+137]D"`?C"y ui h ( ]) 20@9 UM@c"s fBRAr Aa i n. AUl@ HsBe@Ie !d@)01w`V@s_0_RXY@cPWm![06@2.P QW"&/H:L e(^!6D _] i#HZZ`%T[%T@[3TYWgda^oC +T# 1 1`"13Rd3](cvydA C08Ua%k,@odL33TdAfx\3` D N tB!a@n8UA^E `%{MW?r6!3r0v*4*P83r69MTHD # =hj0>T h]]#A UFf0!? c@F"H$@FL( jKb' P6 ]Au` ^?M u#t  ]oEt9SENQ,>ChJ#0O迴Nk?{F 2q ?/&F\.?A8@73`Backgrou_ndCp lp rz@b Q Q#t$]A -]&MB±~<# u;c/u/!O2݇ #Iob< @P2V?h?!ܔ6!P!';3?1py0i0hUtp(0)p2`W09pM@c2%s0f!B1r@!ua!@i0n.p A| lpGsmBeA@e0v@dHa@ l> ,>Uh =E A#!1ŊJ`+6R  8x\ UVMY!9#_x9_5QoU3U+>_3__E2 _U2KrA 2NcCiA1eE(9 MX'E'0UbŔ+!ra .fjvoo{'_ !3rgfc`#fI-pHD # =hj0>T h]]#A UFL( jb@F"H$+@' P6 n>u{` ?5 u#t  ]EQt9SENEEhJ#0O贁Nk?F  ޱ2q ?/&F\.?MA8@73`BackgroundCp lp rz@bI Q:'! #t*$ -&MB±}_'!<# u;c/u/!<݇ #Ib-< @P2V?h?!܂6!!';3?1py0i0htp(0)p2`09pM@c2s0f!B1r@!a!@i0n.p AR| lpGsmBeA@e0v@da@ l> ,>Uh =E A#!1J`X+6  8x" UVMY!!_v9_xoU3^9__1UoUbE2 _U2rA 2NcCiA1eE9 MŔX'E'0Ub+!ra fjvoob{'*?!3rgfc`#fI-pHD # ;hj0>T h]]#A!AUF04qy#@FǮX?Fqo#@uP6 $> lu{` ? ;u4#*t' ‡tfmta{mvm[W"m3J#U0O贁Nk?F 2\2q* ?)/;&F\.?+A,8 iG #f?pH&M<# ";`BackgroundCJ0lJ0rz@ba0a072=?O?a4i6qbWd @B !!';us3?1py0i0ht (}0) @2`0U9 @M@c2s0IfB1r0Y1a@i0n. @ A0l @GsTBe*(@e0vf@dH@ l>,>UhE=%1#!1J`Fr  $&M3 `Q 6RFxAgߊ |? YF_W&d>2 ~`_21^'` _}A_(@M9 __Ue%2OU2rA T 2cxCiA1e%9 MX'g'0EUrŻ+$a f#xB"joo!$m_!3r =w>v12y q-> Ako(#HD # =hj0>T h]]#A UFOvE%@FǮX?FU1@?P6  >u` ?j u#t  ΈEt9SsENCп+EhJ"A|7<F ?ka@X:` Ac entCol* rz} b A bQ#z?)ۀ Ib'Ak!" //.*?/b!#Z/l 񽓱2q0??6F\.?Ey =?:@73`B cwkg0 ou d/b'Q Q3$A -6MB80UB2  !?'117;`?x1py0 ik0h ( )@2`0U9@M@cm2s* IfBx1r@/!a i* n.@ A, l@GsBe*@e0 v d@0Rl> ,>Uh =EAh#1o!J`z*`1  86n8[2 VM(X1_[gU3^9o!oUUE2~_Uo"KrA 0o"c%SiAbE9 M!4E.'D;;Da f jooŕ{7v!3r_w`v`Wvv+H=R_\H>` r =T"?KFX@{#ڮ1,TB9]^a]@+]QaG8B3PhDˋUF IHiûK,UFDfP h>(/T6D UFY,b'@F#H$ @FxT P]]9 %AUFY,b@F#H$@'R P6 u`bA@utS!WtT6 WWb; Z RADEJ#U0U?t":#a?L& ? kaX:`Bw cq groundCj l rzAb#z)sx%8B//#b ܭ/b23/!5 /Lf1w`Mw kekz/d!/R:}y` Ev0'nt1p~O2%145 8`?!py i h0 ( )k20>@9kM*@cJ"s0f0B!r0!a0i0n..k A lk)Gs|BeP@e 1dp@B+lhA@=M Ga53+ 7L&AORMl> 0>UhhE A!d1 s$R S PJ8VlbhXD !:bDbM#( !0og?"ocZeX5jnoogZe%jeVoooZeE12_;rA*sCgPhe[+!TQQM- IEJCTf%qbt!%s3,@=M! E=s11 DB` D0NR0t 21a*@nE!X5Xeq3FB(qiA b%9 M!d4?#ԁ'ŔL&!g$oQ5 H> r (z)ub"`\NWFM# 2TeB 1 ]Pa @+%  BXOU4UFD  h$^T YYBUFL&d2?F~?Fx<F BP(?| ~P?| w VBW< 2h5h? Pm?2?2P'2ȅHBU? ? D G 0eB`-City,n_ tworko ly cak iy no si"eo pR a !iq sk a !%= \%E^  G n?~#0?688?U[fcffgf 3fwf c3gwfw` f{~6a wxxxwwp` px wpu 0226yR2gy?LDrag thuesapWonodwipe.b~??Q뿤i??"&d2}L4oҿ޿UGDF P# h @T(PYY*# U@L&d2?@~?FUP} . !P6 :T 7h7|777 ,7%A'7.u`_?U"6@RThh||"u#) ^2<7:U? ?4b0{[`:S1#26X3#"2^QHW93 2 1/L1$-"@ 2  2"3'>>ÿ@ǵqp@eE?oDeF0|r&BCkBu@`i-1Bu @  26CA (B" 2#& "0)9u `u`"[ b1 $𿻐u`񾄑W3J#N5)W3Qq1q71`Vis_PRXYcPm!#5n `13RB`?CopWyrPgPtu(`)20?`U9MPc)`oP'of1b"ar%`^aUa1`i#`n WAly` )hs}bUePe)`v`dRq1N3 dZ4V1B=Tr6N3@t|6|6 x2N4#W30U[r|3]W,7^q_@VcTg dagRsqu2+ D3hhR)^RHqqE2K8CT $0aN2{5\1pac2!6u%\ GŜ1S1J[2@@R4{35s_N4]&F3s͵NSYFwUUaU,@Qr#`er51pN2K8ڀqiviv_<׀,=pޟ &K8AWBCgE/s"ITh]]9 M IAUF~?@s?F,jג?FRW_7r6?Pps-8Rw?>$Y]A  JuM` ? ;  )u*Jt' eta{+23.JvюV?lv_ ?vx]PqE>JU43f;?4.&P?Apb3bbfz@Ave bh(bv)t&*J#!!5 `?CopyrigTt~(c)~2`09~M c o%s f"!r 1ua i n.~_ Al/0 (Us32e0e vE0 d'0!3]$$#-## '.&%d 2zoGz.#@ M#J6h/z/ BK' B*ib~59 6X7oG'K0UB.&!I$Ia oFJl6.}UhU=!1 A(# ~VIP & `!& T` V_RUGD  3 h0TdYYB qUF9r?@H$$?Fvn?@@u?P} Lk f 0u` ?00DuNrtK  jtK޹ѹMWZU;!;!`?CopyrigPt(c)2\09Mj c.h osb fp"a!rd !ap ib n. Al h(s"e ejh v d #"P4#S8$,#B-5# H" G'I?O=5#H&,#Z45656 12j,$#5#0U2%53+&j  ^K5 6X77'456!.4] 6Je$B^ 6D 0HA,%DK%D0GHD: # h 4>T  9 P#CUF0C3?@&@ P?FμW3P6 n>u{` ?5u#t  (]It=W!IVR1_IlI#>y;?? ?bA@"b])b)&2\"@ #[&/#'*+:'";*t\U$q ?/6 46?> Jh1h15 g`?CoprigTt (c)02U0090M0c0os0f21rԑ01a0i0nU.0 0l0 8Us2e0e0v0 d0a1(e4B-t3 t70ieM9 kF:X=GA_'2r"Z!0 F3j|OO{=GyV!%3RGFNDGN_:w5k&_8_Rq @ElAUhhEG1#@A-!T6j& f$<f bfI(:x<'0i`c q$q3a(z=iKquM$ufE`|aOyX+cqE2o;#rA $2H bWHD: # h 4>T  9 P#CUF?@&@ _P?FP6 v >u` ?)u#t  P]It=W!IRg]Hl#>y? ~?bA@"b)b)b$񅴍2\"@#[&*<%&$*Q+:'";*\U$q ?/6 b46?> UJh1h15 g`?CoprigTt (c)020090M0c0oKs0f21r01a0i0n.0 0l0 8s2e0e0v0d0a1e4B-t3 t70@ieM9 kFX=G'2r"!u0 F3j|OO{X=GyV!3RGFNDGN_:w5!k&_8_q @ElAUhhEGІ1#@A!Z@2r80; <qL#4 bvI(a9i@`bcbu3:+}E`lQqi?X+cqM*ufoUyQquE2oe#rA $2H bWHD H# h0>Th]]9 M#JUFvn?@&@ P??@*~w?P6  >JuM` ? u#Jt =t9S!WJNbFh.>y*<? ?AJA@+b)b$J2N7Nk@MJQ&*2%$*+0'1*T!!5 c`?CoprigTtV(c)V2`09VM0c0os0f 21r0M1a 0i0n.V Alh0 8sl2e@0e0v~0d`0!E]$-# '0AbE9 6X7G'0URWB!a F"JlJ]Uhz 1#1-Z61 K 8 0R]VJ:9 6S gPQETT]]B9 #CUF^?@z?FO&_~uP6  >u`3?ju#t  @WIt=WUr mIR~[WPHl#>? ?Lb "z@A gb(N(+b*$2g"?088r #f&#fb8!r.DF&""+E'""F* \ ?X64?+96N?UJ~1~15 g`?CopyrigTt (c)020090M0c.0os0f21r01a0i0n.0 0l0 8s2e0e0v@d0w1P{4B-,3 70ieM9 FXSGG'2WUA!0 F%jOO{SGV!%3R W VdDWN_:5k<_N_Rq VEl QUhhE+G1#VA-"!T6u&F f$<f bvT(:+/U?k`c 2g.q%:uoc xWJ#eaq*uM:uf-l6R|aeyj xx-E2o;""rA !$N*H bWHD:  %$h4>T]]B9 #CUFD%?@\f#??@k߻?P6  >u` ?ju#t  I_IIt=WPaIRIJl*w#>G?? ?b߀A@eb=!z #"b $"bI$2g"?088r b#f&*8!r%/F&"+E'"%F*\ ` ?64?6N?U J~1~15 g`?CopyrigTt (c)020090M0c0os0f21r01a0i0n.0 0l0 8s2e0ej0v@d0@w1{4B-3 70ieM9 FXSGG_'2WUAZ!0 Fw%j(OO{SGV!3R W V@dDWN_:5kH<_N_q VEql QUhhE+G1#VA!Z@+*S?F <`?"B## bv@T(a9i`bcb0u%:A}?l6lgqiQaF 4qMuЍ=7{cc )A #ougq0u-E2oe#rA 0#VN*H bWHD:  %!$h4>T]]B9 #CUFW-?@=?Fh?@uV?P6 v>u` ?)u#t  Ht=WB/aקIR_noIl3ur#>!;??| ?Lb "zo@A gwb(b*)I(&2g"?@#f&#f #-(+(+E'""F*\ ?64?6N? *J~1~15 g`?CopyrigTt (c)02U0090M0c0os0f21rԧ01a0i0nU.0 0l0 8Us2e0e0v@ d0w1({4B-3 70ieM9 FXSGG'2WUA30 F%jOOŕ{SGV!3R W VdDWN_:5k<_N_)q VEl QUhhE+G1#VA"!Z@%g 1?( <Kg" bSvT(:?31J9c 0_M#db0u%@u~~mlfl?"0uM@ur\8ˊc`[y뵸m}q0u-E2oe""rA 3!$Tu bWUGD  3 h0TdYYB qUF 0KR?@xՈ ?F?@_@w?P} Lf  0u` ?00D)uNtK  Uɹt0zkn̹ k*ѹWU;!;!`?CopyrigPt (c)r 2\09r Mj ch o%sb fp"a!rd !uap ib n.r _ Al h(Us"e eh v d #"4#S8$J,#B-5#6G# G'?O)=5#H&,#@Z45656 12,$u#5#0UU53@+&j ^K5 6X77'R456!.4]R 6Je$^ 6D  5#HA,%DK%D0GHD: # Th4> T]]9 #CUF/KR?@wn?F#vP.6 Au`= ? u#t  o,It=W:CIRGm Mw+Il#i>y9 ?? ? bA@"b)b%)&񭃵2\"@# [&/#'*+:'J";*\U$7q ?/6P 46?> J h1h15 g`?Co}prigTt (c])020090uM0c0os0If21r01a0]i0n.0 0Ul0 8s2e0e0v0d0a1e4bB-t3 t70ieM9 kFX=GA'2r"!0 F3jP|OO{=G,yV!3RGFNDGN_:w5k&_8_q @ElAUhhEG1h#@A Tj&1 $<fib bfʼI(:0 0i`c 498˱q3a(z=iKquM$uft:ۍ|HaOybxE2ot;#rA $V2H bWHD: # Th4> T]]9 #CUF?@wݯn?tP6 >u` ?u#t  ]yY'It=W菗:CIRHl#>Hc? ?Lbbcbz@A } b(b*) #a 2g"@#f&*G%1$*+E'""F*t\`$q0??6 *4A?> Js1s15 g`?CopyrigTt (c)0W20090M0]c0os0f2R1r01a0i0Wn.0 )0l0U 8s2e0e05v@d0l1p4B-X3 70ieM9 vFXHG/'2r 2!0 F 3jOOŕ{HGV!3RGVYDGN_:5k1_C_)q KElQUhhE G1#KA Z@~#0f < 1#4 b vT(a9i@`bcb%u3:6}t:l\qi)qM5ufo`y\q%u"E2oe""rA Y!$=H bWHD H# h0>Th]]9 M#JUFʺ?@؏pǶ??@/Qw?P6 >JuM` ? u#Jt =t9S6WBBJNbFhՁ$>:3f<? ?A A@ab3bfbz #b$b$J 2zGz@MJ\&!(<&'$*+;'<*B!!5 c`?CopyrigT}tV(c)V]2`09VM%0]c#0os0f+2R1r0X1a+0i0n.V AUls0 #8sw2eK0e#0v0dk0@!E]$-3 7 %0bE(9 6X7G_'0UbBJ!a F-JlJ]Uhz1#1 劯Z@`Y<  8KAF4 ;RhVJ:Ç9 AS ]yY'PTGRU3U2_DQL_UEUu^jYH ]U2"_UrA Y$c( bUGD  3 h0TdYYB UFZV?@[V?FRHG?@ _BPhw?P} `f  f0 Du` ?00DDX)ubt_  .HLt %+,!iUc!c!`?CopyrigPt (c) 2\09 M c os f"!r !a i n. Al (s"e e v d AK"\#S`$T#B-]#o# &o'?c=]#p&T#4]6]6 Y2T$#]#05U2]3@qS& ^Ps5 6X87.G'4]6%!V4] F(J)e(^(I ]#HAT%D[5D0[3DDWHD: % $h4>T]]B9 #CUFO/?@/`p?FqRA?@?P6 n>u`3?u#t  noIt=WoIR#U HlAw#>2?088r@2#Aeb8 !rztb(#+#+#&y<u"?& ?"#+b%)+@'\?64?+6C? *Js1s15 g`?Coph rigTt (wc)020090M0c0o%s0f21r01ua0i0n.0U 0l0 8s2Ue0e0v@d0l1p4B-j(3 7&0ieM9 vFXj'G'2WUAŇ&!$0 F%CjOO{j'/V!3RGVYDGN_:B5k1_C_q m&lQUhhE GБ1#m!!bTc# $<f b)v^(::'Ԝ?k`c S#q%/u3;c .9~#eVquM/ufflG|aZy{ґ#q"E2o;#rA $CH bWHD: %$h4>T]]B9 #CUF3;?@/`p??@w?P6 >u` ?u#t  oIt=WoWIRIlAw#>2?088r@<#Aeb{8 !rzb(J#+#+#& yL?q#?& ?w"b%)#+b4/U%\?64?6C? *Js1s15 g`?Coph rigTt (wc)020090M0c0o%s0f21r01ua0i0n.0U 0l0 8s2Ue0e0v@d0l1p4B-3 7&0ieM9 vFXHGG'2WUAŇ&!$0 F%CjOO{HG/V!3RGVYDGN_:B5k1_C_q KElQUhhE G1#KA!効Z@x<?f# <h-nѶ# b v^(a9i`bcb%u%:6}fll\qi{ґ)qM5uf o`y\q%u"E2oe:#rA $=+H bWUGD  3 h0TdYYB qUF%@?@5,k?F ?@Q_rw?P} Lbd  0u` ^?U00_uNtK  :Z[tZJ[jIӹ._jѹԒWU;!;!`?CopyrigPt (c)r 2\09r Mj ch o%sb fp"a!rd !uap ib n.r _ Al h(Us"e eh v d #"4#S8$J,#B-5#6G# G'?O)=5#H&,#@Z45656 12,$#5#0U253@+&j ^K5 6rX77'4)56!.4] 6Je$^ P6D  5#HA,%DdK%D0GHD: # Th4> T]]9 #CUFy?@vn?F#?@u?P6 > u` ^?Mu#t  %7YIt=WaR9IR_L=*Hlw#>y!;?? ?bA@"b)Kb)&Z2\"y@#A[&/#'*+:'";*\nU$q ?/6 X46?> Jh1h15 g`?CoprigTt (c)020090M0c0os0f21r01a0i0n.0 0l0 8s2e0e0v0d0a1e4ŤB-t3 t70iePM9 kFX=GA'K2r"!0 FB3j|OO{=GyV!3RGFNDGN_:Bw5k&_8_q @ElAUhhEG1#@A!ŊTj& $L<f bfI(j! ?.۾0c _*#c ˱q3aklquM:mx<ۓ|aUyM8'hxE2o;:#rA $8+H bWHD: # Th4> T]]9 #CUF_xa*?@vn??@?]P6 hvA u{` ?5u#t  ߔ@gIt=WaR9UIRIl%w#>y%? ?bA@"b);b)b$i2\"@#[&*<%&$*+:'";*t\U$q ?/6 46?> Jh1h15 g`?CoprigTt (c)02U0090M0c0os0f21rԑ01a0i0nU.0 0l0 8Us2e0e0v0 d0a1(e4B-t3 t70ieM9 kFX=G'K2r"!0 FB3j|OO{=GyV!3RGFNDGN_:Bw5k&_8_q @ElAUhhEG1#@A!効Z@ xQ0Y; <3H#4Zb bvI(a9i@`bcbu3:+}x<lQqiM8qMuuUo/] d =xd #YuQquE2oe:#rA $8+H bWHD H# h0>Th]]9 M#JUFs`m?@|nH˲?Fdvn?@MQY?P6 v> uM{` ?5 u#Jt  o\SDt9S2X2ENFYEhI5KOV4>y<? ?AJbA@" +b )b $J2N贁NkS@MJ W& *8%"$ *+6'J"7*!!5 c`?CoprigTt (c)(02`09(0M 0c0os0f&21r0S1a&0i0n.(0 Aln0 8sr2eF0e0v0df0!E]$b-# 'A 0bPE9 6X7G'0U]BŔ!a $F(JlJ]Uhz@1#1!Z@?~ 7  >8ħ]i 6RcVJ:_3?f& .;T 1_QKTBR}U3U-_?QD_VT}UEU7&eD YZM8ʺ]a}U2_U#rA $c( bUGD  3 h0TdYYB qUFx<^?@ȵ?Fʺ?@Ot?Pn} L  0u` W?U050DuNtK Ot@ڹ *"!-U;!;!`?Copy_rigPt_(c)2\W09Mj ch osb fp"a!rd !ap ib n}. Al U h(s"e eh 5v d #"4#(S8$,#B-5#G# G'?O=5#H&,#Z45656 12,$#5#0U2&53@+&j  %cK5 6X77'R456!.4]R 6Je$^ 6D  5#HA,%DK%D0GHD: # Th4> T]]9 #CUF/KR?@}JR4?F#vnP6 >u` ?ju# t  ,It=WXBIRGm_ MwIlb>y;?? ?bA@"b.)b)&i2\"@#[&/#'*Q+:'";*\U$q ?/6 b46?> UJh1h15 g`?CoprigTt (c)020090M0c0oKs0f21r01a0i0n.0 0l0 8s2e0e0v0d0a1e4B-t3 t70@ieM9 kFX=GA/'2r"!0 F 3j|OOŕ{=GyV!3RGFNDGN_:w5k&_8_)q @ElAUhhEG1#@A!Tj& $3<fM bfI(:0i`c l$Zaq3a(z=iKquM$ufh6fҍ|aOy"?0x,bxE2o;#rA Y$2H bWHD: # Th4> T]]9 #CUF?@2L&??@@?]P6 lnAu{` ?5u# t  ]yY'It=Wȅ,d!K IRHl%mw#>y%? ?bA@"b);b)b$i2\"@#[&*<%&$*+:'";*t\U$q ?/6 46?> Jh1h15 g`?CoprigTt (c)02U0090M0c0os0f21rԑ01a0i0nU.0 0l0 8Us2e0e0v0 d0a1(e4B-t3 t70ieM9 kFX=G'K2r"!0 FB3j|OO{=GyV!3RGFNDGN_:Bw5k&_8_q @ElAUhhEG1#@A!効Z@v0Y; <B{ %#4k bvI(a9i@`bcbu3:+}76flQqi*h/qM*ufoUyQquE2oe#rA $2H bWHD H# h0>Th]]9 M#JUFʺ?@BP(T??@W0 w?P6 >JuM` ? u8# t =t9S?JNbFh?s>yr<?X ?AJ~A@+b)b$J2N贁NkS@MJ Q&*2%$*+0'J1*!!5 c`?CoprigTtV(c)V2`09VM0c.0os0f 21r0M1a 0i0n.V Alh0 8sl2e@0ej0v~0d`0!E]$-X# '0bE9 6X7G/'0UWB%!a F"J lJ]Uhz 1#1Z@~1  8[_B! 0R]VJ:9 6S ]yY'ETTh]]9 MJUF3;?@z^??@x<w?P6 >JuM` ? uJt  oEt9S֡WlENEhII>yI$<?X ?AJbA@"b )b$ )&J2zGz@M JW& /'*+6'"7*BB!!5 c`?CoprigTt (c)(0]2`09(0M 0]c0os0f&2R1r0S1a&0i0n.(0 AUln0 8sr2eF0e0v0df0@!Y$-# '  0b5(9 6X7G_'0U]BJ!a FR(JlJ,>Uh11!T0 9 F 8  2RYVJ4]1_CY?QsU3:@|>\OQ HS m`wQ52_;#rA 3$@cHD H# h0>Th]]9 M#JUFfl?@z^?F3;?@x<?P6 n>JuM{` ?5 u#Jt  KEt9S֡lENoחEhᐟI>y$<? ?AJbA@"b] )b$ )&J2z_Gz@ MJW& /'*+6'"7*T!!5 c`?CoprigTt (c)(02`09(0M 0c0oKs0f&21r0S1a&0i0n.(0 Aln0 8sr2eF0e0v0df0!E(]$-# ' 0bE9 6X7G'K0U]B!Ia F(JlJ*,>Uh1#1!Tf& 38>VM 2RYVJ:|> 3Y@P HS mۻPwQ34]1_CYQsUE2_;#rA $@c( bHD # h4>T]]9 P#CqAUFe!@b?@M?FQEV?@^?P6 L6 > #(m$uy`?Agg2Du#VtS  n4BH=t; w9_W*Ut3۶_>UF$<?Z& ?bA@b!z #"b$$"b$ 2"Z$@#&(&$:;'"*\$qy0?x?64#( Z4?V> J=#115 `?CopyrigTt (c)"@20.@9"@M@c@os@f BAr@MAa @i@n."@ 0lh@ HslBe@@e@v~@d`@+"1 44#ŤB-=#3 7Z&4%@iePM9 FXG>'K2r2Z&!u$0 VB3jO_{GZ/V!3bwWxVDnW^^Ko:B5k__q JE4"l(>Uhe Ah#A!1(Z=#F@ g0aR LoWGa"@&b$4"(qC^]?Fs(?@|0 ֿ%L|\|HD_LR4Уӟ^L-ٙ"X_a y4 pW? +?Ra@ts<ЯTh]]9 M!AUF<%?@[?FdHǩ?@W_Mw?P6 $[!>  JuM` ? ;  )u*Jt'  P&'mta{T 6Dmv޿mxb$y3>yJU]<?& ?AJbA@,"b4)b4)Sb4$J2zGzR$@MJ &5*`%J$*+^',"_*BB115 `?Cop_rigTt_(c)2`W09MH0cF0os@0fN2?1rB0{1aN0i@0n}. Al0U F8s2en0eF05v0d01PY4-,%3 %7&H0b59 FX7T]]9 MAUFvIڳ?@J?F8?@P} TP>">JuM` W?uJu u bKu `u Y-JWR]nio@&>٣~ C,ᗢeuܥ]h[o?C$ '"/'%S'-+]/' Jt  $Ӗb#"t="! Ư%'_deѬ&'YY-t#JJU2N贁Nk?<MJ6uAdbG8WbU9S;S;S6B3B115 d`?CopyrigTt (c])020090uM0c0os0If21r0Aa0i0n.0 WAl,@ 8s0BUe@e0vB@d$@14Ry36D3IP!BM2b;R?s?fzU3 7F02%je^E(9 BVXWbW_'0URšFZ!D0 bVrvZl!UhX3 1iAA! P@B#J^ewkdHD:  H h0>Th]]9 M!AUFٟx7$?@!{?FdHǩ?@W_Mw?P6 $[#>  JuM` ? ;  )u*Jt'  Y@mta{kbmv޿mxb$y3>yJU]<?& ?AJbA@,"b4)b4)Sb4$J2zGzR$@MJ &5*`%J$*+^',"_*BB115 `?Cop_rigTt_(c)2`W09MH0cF0os@0fN2?1rB0{1aN0i@0n}. Al0U F8s2en0eF05v0d01PY4-,%3 %7&H0b59 FX7T]]9 MAUF4?@R ?F8?@P} TP>$>JuM` W?uJu u bKu `u Y-JWR]ni_@"J&>kn OS?F4H⋘?"  'B"/'%S'-+]/' Jt  |3#"t="Y(ئ%'~#&' bS#JJU2N贁Nk?<MJ6AdbG8bU9JS;S;S6B3115 d`?CopyrigTt (c)020090M0c0oKs0f21r0Aa0i0n.0 Al,@ 8s0Be@e0vB@d$@14y36D3IP* M2b;R?ds?zU3 7F02%je^E9 BVXWbW'0URšF!D%0 bVvZlUhX3 h1iAA0P@#J^ewkdUHTuD" # A#A hz ,T! YJ MUFv{h?@K]`?FU UP N% # H, @ T  cO,OmJuM` /? O"6J^ Ocu#X"bs!Fۅb^uJt  7͉"tY!"^OJU2zGz?)@M#J&A@i"wb8b#9!;!;!62 %!4J#2#"6 p2.2b#9;/72l<2l?TN#=A=Ai"`?Copyrig`t (c)t@20@9t@Ml@cj@osd@frBcArf@Aar@id@n.t@ Al@ jHsBe@ej@v@d@"M#IC IG6"xh"t"Eiyn %1XGcW'0URũ6EK0 cVwZlJUdnUtLQQS) T =1T[A#A1(!`Iοͺ?@|0}# f ǿձm# Կ׌$8n:Moo` =[Weh$+HeQj?@)v&?FQ-?@iH?PS~>  F߈s|.Zߥ"lE _ e?h=X##Rȵ: Izu:t ɩ X"41(RCBS"r"5w5ae2oG[pF&ߞ֡h|}VhYr~!{/te,gEe DT?nxM殏Ea$6ЇK;@R d9:x,IyyߧUC6 -R&6t/}GyzνTB4gwqLAq@dR!5j;?@iwE?FmnX Űu{jlk8 fl?y>ĕl?_'t?quEt&XQV  :T;haai~?@^vνl쇢&UebhMHz?@^Z|b>jca>lTס/hi-Ya\1~|oW.f? 45=uTIy^. ?@}drPFuN?@zH?Q;|Uuelfay1| @pUmɯR^iqeoo oT##$g}i3 uoouBwoҕF})EL h0m&}~+̖ݿBmȇVQ9adv_UF ]"6l|]ΖmC\+~}i3 CQ!]!dΕ+ (al?@֤ |b$G4).&ܕ\w7f_Utpx'Wẏ,k/~? 5kՕHD: # h4>T]]9 M qAUF~?@%g?Fs7s^?@WҔh?P6 mL'>E  ($JuM` ?Agg2DuVbJtS t~Dzb 013v ';_>-JUC!C!5 `?CopyrigTt(wc)20 9Mr cp o%sj fx"i!rl !uax ij n._ Al p(Us"e ep v d +"<#T@$4#B=#uP!7?56 ?Ab`4z@9Al0b{3j8]b8a0$o3-=#O# O'564%酙t=#2mq @?2@ M3#JF?=EQ6<@B: ?6iie59 6XG2'0UR56!P40R FJlJD4Uh8ZQZQ ]   %a!@A1(A/.F?@":W0LRb O_LP)$J^2_o ꗦ`T8a.eEUZ+mQ?@_Vl}l?9+h5Uu?@w Vlm1lrU|pi5Ui焞?@Gd{y}.xbli\V)+hUrw?@wVleHl~s!2+hUpp%Vl߂'}|U'r,.?@C[>?Fi(w?@[ P?PU>b ԿftVlIֶ6l{)eRX0~eGdQR@_:M I~> zg@&? ɿI#?!$?Ra@B r552aQ:iт0;Kq𾙵QP!µ""]JT豸*e2 Z"s 7tG@-(F%m#H 2ߒ+OB - siz "]bckru"im.bY,b"H$@@5pm;μ@@}_3 D HD  # =hj8>T! ]]9 #UFY,b@F"H$@' P6 eA [u`l?  u#(΍tS&Aw@ctTl$bsTJ20-U?FW]ebqRG # ?sakunB`BZ ckgrou_ndCy ly rzubuAub#z)u=~ " #L#9"#MBh\"C? j0>Uhh5`7A#!Jn00.lPX2 3VM(Q_&1_QU3n o2ogUEe0&oo@_oUb5_KrA -sCgSXhe_'r!TH!!M-t "J'sTl!Mq %F{,@wj1%5bPE9 M{k7l!3k'QPsBp#!J$G=1ƀHD  # =hj0>T h]]?5AUF\,b@FW5?'P6 .L]A]  u` ?Eiu#4t1  tuKˁ=JU^;:Fx& sa@`B`BE ckgroundCd ld rz}J b J AJ b#z)ۀJ bA!"b#"bx##釉2q ?/ 6F\.W?5 8?:@7oW/i/.{!'G!1 03] \NB20UB4&'$$%117;`?s1pyh0if0ht (b0)@2`09@M{@cJh2sj0fBs1ru@s!a@ij0n..@ Ap l@zGUsBe@eh0v@Qd@0l> ^Uh[A"A]@MjA#1!J4/%CrA 0"S C`Q%S1Y9**0=*Qt&2t31:?F@F̬%?PKM! [t?[WY[ZnaU0fJ$U~tr<S! YM# ? 3&M@T@0tr$5!:+oog4! `Q^__1js+TN!p_^Wo[r5V rvM,(b  jbE9 M{7! 3a򪆢P3!5$;ۏ7愕HD:  # ;h0>Th]]#TAqAUFv\.%@F4O"Ƈ@F.r?F"H$ @P6 L6>  #. .u` ?)c,c8u#RtO  ߢ.t|} [J@}@@@FV&  ;`BackgroundC l rz@b ݶ bOA!|"/Ԕ/!K)!?#2!3z29b13{z&b@F3:3BU27qm0?l?~6F+?S ? :@7//!'#Qf31 ("C$ $lSF-2f30UB5DV&$$f3"AP"A*G;#?1py0i0hUt(0)2`W09M@c2%s0fB1r@!ua@i0n. A lGsHRePe0vZPd

 4 >UhzQ9 #AA#ZA!J`f3FI' BHN MozӋ[Hİ] 2b\B qD `2biVl+qېeNI e\0q:I lӱ`gB_@ 81!@N~P@CBfxwr|5Q5Vabe9iEovhwD_CrA) @"dlSaAiW.Fsb?FyOa`?P p ? 'l)݆9t$1d$G|,6J]w : ~gBt*<wxUGD" # h <^T$(YY#IUFY,b@F"H$+@' P} B &( u` ?U U(( Fu#PtSNA@tTLb!d ^% j#"MG`Make Bh cj groundQ` E;vl nt{!pb~- J%9-H%W#??$ZB##0U2#sF =$&#M4"6"6 ""\#2qƢ0??6#F\.?QE?@)#A!'`?C"yz ix h (t )n 20W@9n MC@cz"s| fIB:Ar vAa i| n.n Al@ AHsJBei@ez !d@ 1`VC@s_u0RXY@cPm! 06JW@2@3!&H/<e#ha!#3 H%Y #H Z%|T[?%|TWgda_C +T#!!"H!#8d3 (cQA6@0EHa?%Tk,@doEd 3F3TA`f;nd 3` D| N| tsB!aC@nEG!#^E %b{Gd?"6!3lr'0tv$@b#"6=s_H8> r =T"?KF #S1TB ^aT_o@+N coLa o b" 8 ?m&Gh _+}UFD  h(^TYYBBUF\.ߗ?x<F BP(?hP?X` ]B66]  TTTTTdH?ܸ? Q?B@L&d2?-(,1(.sUW!U&(w/x  0KB` Serv",n two k p"i h"al d v0c@ 1^| (SG|& b?,>?TTwpp pqqppqwqpqwqwq+p pppwwwznw6;5wqpwwwhghw>Drag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aabjZֿ~??+ ؿ)j??E(i\.r3r\.CUG DF P# h @T(PYY#E3UF\.?@jZ?F~߻?P} ΍L .B":J :^:rY:f 7 7ָAu` ?Uč"U66JJU^^rr)u#",'tU"J%q4??4bp0{[`: #|2&6#*'Q79" z^L1$" 7'@>>ÿ@q@@5EӅ??D5F0Zr&rBxC2u0`-1Buu&@ CAB@C$9u`u `m"[ b!wu`)3kQQ1Q71`Vis_PRXY%cPm!#5jP4P2B`?CopWyrPgPtf0u(P)f020PU9f0MPcPoP'ofRQrPQUaPiPn% f0WAl` XsbUePePv/`d%SRQ1#d:4%!*@8=3R6#@d\6\6 X2$B#30Ub\3]zg,7^-q>@VpcT<`of0m`sP4a>mmdasIJ'BT1/t"0t.2QQ3QQB3 tj1j1"5hbI6% 72EC?|8LPZX116Q;sa>arExAsF@>>ý__0Ru'@`*Xr>a cc^`Roo H?䣬!e'2$r d bpf`bffb bpf"}Be%Rbk ``.e;Rkbrđf@B #[_z}R=3đđBޅrr++r,$t -tH;:@0a(IafcX(Pq`uK`AP!eqPrqbBq b%F@rBq8%5=3_tD&&|rf"e#F3s͵NSYr'X$G,@R!B衅W_i_.] Q QBHʀ=34I'F}@` %_&͒#J0 Q`wNElWODpKDH0PِRTߐRlIِSqIQiOO|1<3;K'0U?}10~U3Uee8sTeq rqqq13@H36EBM$BM4BeMLBMB3M̅BM-uBG2HD: # h0>Th]]9 MP /AU@jZ?F͂T??FSFظ?P6 .]A]   JuM` W? EKu4bJt1 ytuo[=Jb(A =>JU2zGzt?@dM#߀A@bM;#z1 /#\I(bW)d+)d&J["*(w"?& ?AO$Tf/%B115 `?CopyrigTt(c)2`09MC0c.A0os;0fI2:1r=0v1aI0i;0n. Al0 A8s2ei0ejA0v0d0 1Y4-X 3  7&C0b59 FX7}'0UB)Ź&!$aI 7FKJlJ]Uhz211O! !u6?Fh,\.>*0II=*t >J:@T&ȑ/ [WpY\QEUzU . X[:;QRuSU5UF,®\oZOnlQ 8MP@u?FR >Nk"\T`GbmMlQi_f0%=mUt.m {=4+ ߥP> D"? 5-g?T0tp@bTh]]9 MP qAU@;?F5K?@xEL?6?F6?Pn6 L>M  P$  #uM` ?=`cc.@uRJtO  bm&QȽtA@Lؽl]WI@[>JU2zGzt?+PS@M/#J?&A@bbbPzs q#b](b)+&J[9#,ɺ ("a?& ?AR$ /%B9#V1V15 `?CopyrigTt (c)02`090M0c0os}0f2|1r01a0i}0n.0 Al0 8s2e0e0v0d0'"O1YS40#-9#b3 b7&0%0AbE9 YFX+G'0UB&!4a yFJlJ]Uhzt1h.A!-(:9#t.%-+0JN H߃W%$Jq-&?F mO" >Nk'"\RSWNh[H@_[4I 뇥P> 'CK=o? nO-?N]`@ b<couor5%BUV 6?woZA^ǿXEU@ T6?F __ jv6dDlVߦyZgPRkro}oiBdalN!\z3>6>CRHS X?BnDeTGvN7VHD: # h0>Th]]9 MP JU@jpiH?F[^?@$?F]Fڻ?P6 >JuM` ?j uJt  (a&aEt9S;-FEN=ۯ=Eh?u;>2zGzt?@M|JA@a7b#z}b(b!).+.&J[-m(?& I?A$0/Q%B!!5 c`?CopyrigTt (c)02`090M 0c 0oKs0f21r0@1a0i0n.0 Al[0 8s_2e30e 0vq0dS0!(Y$-# '& 0b59 6uX7_'0UJBŃ&J!$a FJlJ]Uhz!1!劵:F% Y.  8?zY^J4 ]9$]$R9S/RJUE UH$S!\1\? GX5ZU_YQJU __-_?\HD H# Uh4>T#A]]9 M /AU@jZ?FL|+??F@{~?P6 m. >b  JuM` ?+ILKu8J1t5 }ty_7??J]bA>tJU2]U"?=@MJ&A@3(WbA)N+N&JJ[ "#?& ?A9/Z) !!5 `?CopyrigTt(c])20A09uM-0c+0os%0If32$1r'0`1ai%0n. WAl{0 +8s2UeS0e+0v0ds0!E$5 򤲝-? 3  7&6iieE9 6X7 "'0#Ŵ&!$0 TIF]JlJ8>U#9AA `1!:Nk"\T`ObmM\"f4N[7 zex-K=FAa տ[jr D"? WZvD?4xa@RB#Th]]9 M IAU@FK?F\gVb?FY%?F_wᳬ?PJwW?>$[ >  JuM` ? ;  )u*Jt'  ^Zmta{֙3.JvdE @x?"_r?v{4܂ >pJU43f<!.&P~?b3bbfz@bAe&bq$Jd 2zGzt&.#@M#T"I&r(~&i$q)Q+}'i"~*B#81815 `?Co yrigTt (c)o02`09o0Mg0ce0os_0fm2^1r 1am0i_0n.o0 Al0 e8s2e0ee0v0d011Y54#-#D3 D7.&%g0Ab59 ;FX G[G'0URB.&!I$a [FoJl&}>UhE3MV1Ai!(# jV? & `& T` V_RUHPD  # #>h0TpHeeJ EU@u6?F5c{g&?@{r`5B?FF:Iͷ?mj>  M   *  (Y JuM` ? Y ":N`u#xJtu IoI%t"' % 'ii%$'`OkŁJU2"?@Ms#J&A@"b(bU)++&RJp}#>1#19 ?#bbbz| &/5> }#11"`?Co0yrig\t (c)02h090M0c0o%s0f21r0Aua0i0n.0_ Al!@ 8Us%Be0e0v7@ d@k"1Ue4t#B-}#3 746t%0 jU FXyGG'0UR46!O4i FJlJ$jUp5 3 h19 1!q(q4}#&J,t R j# 8bD?@@)?FvP؞?PEkU O|\QnS .܁nts}ped`,of :o ,M ? &d2? bȩ?tP@RBBoogr"55ZQUf_x____bY@ßAc_\jF?4ևi$on&h{c8oJo\opoo T)Y oaoooo o 6$|U7I[mS Uy{䷰7h7}'g"(I%ZvShX"cwӏiďa$xUGD  3 h0TdYYB U@%)?Fxg^?@ ߯H?Fw_7Uw?P}   f  f0 D fX lu` ?00DDXXll)ut  871%t%!?"Ư)1%:'ֿTeΦ1%T'ʤU!!O"`?CopyrigPt (c) 2\09 M c oKs f"!r 1a i n. Al00 (s42e0e vF0d(0"#S$#B-#l# '?R=#ǒ 2$Z##0U'B3@& ^5 DFX7dG'R&Dŭ6!4] dFxJeYk} #HFQ%RT][b5RT0][3RTD][5RTX][RTl]WHD:  H h4>T]]9 MAU@ ߯H?Fԋz)e??F9q?P6  >IM (#<Pd`<#P#dJuM` ? #2FZnubJt E-tA!["XѮJV&bN$p'N]I֤>J)U5 J[-# ?6 ??" A@.2Sb64B#2zGzt3@M#Jc678C6.? ;B72C: #115 k"`?CopyrigTt^ (c])^ 20@@9^ uM,@c*@os$@If2B#Ar&@_Aa2@i$@n.^ WAlz@ *Hs~BUeR@e*@v@dr@"14ʺ#-/ C  G6&iieP59 &XG W'0UiRŴ6!#40 $ V4ZlJ]Uhz@A!1(`C@U&pz?FDUy{?,d@#b`sb`"J-d K-q?F@F?F F0 ?Nk"?GiE*]CpdadC0[dhZe@#eGDQ> @" i$a3n&Y+`~rrood]io;e s"yr1C82K?Fѻ4G{?F-qx>tFjR^{|ZlYZe tmP|{Mޥa 0 1iS? q1+?wa@rc(<;"̏A!rFÀ5H5aE=*[^N?F%P?@"P&@ c?F{MTh]]9 M]AU@}%?F[$,?@+#V?Fd_3֡w?P6 B>M @ $ JuM` ^?3YY.KuHJtE  L<ܩt.'_3zMҩ,wsQ>JU2N贁N[?@M#J+&Aw@b](]i+bk)+)&Jp%#4"?>"<5!?& ?M#bbbz$ Rp&"/%B%#L1L15 `?Co yrigTt (c)02`090M{0cy0oss0f2r1r 1a0is0n.0 Al0 y8s2e0ey0v0d0"E1YI4#b-%#X3 X7A&%{0bP59 OFX!GoG'0UBŔ&!$a oFJlJ(>UhoI j1h$Ac!(`%#@'$F?>D{Q>L!gfQQ R "Jg V?Fo-R?@bHQ??FT!R?P& ߤlH\f6V\P5_E+UDv;*UmʙHQ:? w8s`*%$? .l?Q? ?\?D4_!R oogr5%Q3p_S@hIL?F~Kz?P)Oy޾ F @c"rA b$^sPj+u`dl(ET+QdAf u8<$HD:  H h4>T]]9 MIAU@ ܋?FOa>?@q`5B?F1*ݷ?P6 m8> (JuM` ?#SS2)uBJt?  \Eto֙>_B|KR>JU5 Jp'>͙#<?Z& ?bbbz@b#;A&b$B 2N/N[Z$@MI #"&(&D$ :;'"*#d1d15 `?Co; yrigTt (c)02U0090M0c0os0f21r; 1a0i0n}.0 Al0U 8s2e0e05v0d0"]1a4 #-,/p3 p7Z&'&iieU59 '&X9GG'K0UBZ&!u$K0 FJlJAUhhG1!- (T9C&J> RbT$R}R( "J:]Uy{䷧_8S s_@ o4%BT@.Tw?F:^֝ä >Nk"?YUU!f>)?\(K8ӷjmKl? a\$QU5Ui,SlQ%iu~!8hE_= T?F;uQuo`"rA 4sjQ޽lğ=onHD:  H h4>T]]9 MIAU@ ܋?F<j?@q`5B?F^ݷ?P6 m8>M (JuM` ?#SS2)uBJt?  \Et[Πؙ>_B?&}>J)>JU5 J#2N迴Nk?S@M #JC&AP bu(b)J++&B1[- #L#?&| ?$H*'#O1O15 `?CopyrigTt (c)020090M~0c|0osv0f2u1rx01a0iv0n.0 Al0 |8s2e0e|0v0d0"H1L4 #-/[3 %[7&'&iie@59 '&X|$GrG'0UBi&!40 rFJlJAUhh7m1!{! (Z$CR&FUy{?X> 81cKR RV "J{T@ ![?F=$. >Nk_"?YPSW>OcK8RKl? ף_p= $B:]'i,S\6aYss9$Q@5UV+6o'lQ:ifOdD`i[Dž}soąo82{_U{"rA z$s"HD:  H h4>T]]9 M!AU@ ܋?F@_v?@q`5B?F1*ݷ?P6 m$> JuM` ??Su.Jt+  \Epteap'Eqz>Bq|7>5 Jp>G͙;?2& ?bbbz@bAi&s&Bh 2zGztM?+"@MrX"&v(bu)+s/8*T<1<15 `?Co yrigTt (c)s02009s0Mk0ci0oKsc0fq2b1r 1aq0ic0n.s0 Al0 i8s2e0ei0v0d051P94-H3 H72&iie-59 XG_G'0UB2&M$0 _FsJlJ( >Uh_I `Z1m!afR* zRQd J:`]Uy{w_$S s@ +o4B`T@.Tw?F:^֝ä >Nk?"?zYQYV*)\§(7$d?ӷjm7lb+d ha\HD:  H h8>T ]]9 M!AU@ ܋?F*?@q`5Bǯ?F1?P6 $6>  JuzM`l? C"u2Jt/  \Etti|u~>Bu뒣;>RJU5 Jp>͙#<?6& ?bbbz@b#Am&by$Bl 2zGzt6#I@M\"&Rz(&q$y)+'q"*h,#:3o1o15 `?Co yrigTtk(c)k2009kM0c0os0f21r 1a0i0n.k Al0 8s2e0e0v@d0h1l4e-:?{3 {7I6&&i bP159 &XDGG'0UBX6&Q$0 FRJlJ(>UhI 1lq!a4DC9Nk"?CYQYf.Q;(hğ=;Af/h (\UHLuD" # ;3h( TEJ kU@jZ?F@{W~?P VN- I A `*%#.>>uA` ?%i i4iHu#XpTb>tU b7>t  a>U2zGz]?@9 %#>5&A@g(bu)+&X" !f$>F/#"&#="& "m"bu);r'X"i,X"/N/#11-#`?CopyrwigXt dwc)020090M0c0o%s0f21r01ua0i0n.0_ Al0 8UsBe0e0v@d0"i f &%!X/#]'0UB&Z5%0 VJl>8fUlY(C '(#vAm!#(:/#_Cgwu?F( mO"\>sl?/h%mq.%-+?@lփ?F^Uw>o|m7yQySf|wA=$*<~a3d@9SӀaۏ펃y'e0a#FX_`H> V+s LyC{:,YF `/r#10&OB 1~d v2@+( xQsG Ɂf L=8 A D G K`N?xcRXekUhzZHk{^n1b$pe.(shAXu4ltUFD  h(^TYYBBUF\.ߗ?x<F BP(?hP?X` ]!B66U 66 66%66ȅH??f]B@L&d2?-(1(.sUW!U&w/ҍ~  0QB`#Mainfr me, etwo k p rr pP1al d v c %1^| (SUG|& p??(:L ?qpwqqq wq wwpwq  qqwwzEwwtqwqw~wzqwqwp~*?Drag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aabL&d2ٿ\.??{ڿaAv??"jr3r\.CUG DF P# h>@/T(6D # #UF\.?@L&d2W?@w?P} <.4! D:J D:^:r,: A7f77f7 7!7&"l70&u`?( "66JJ^^rrTU/&0&0&D"u#N) ^2<7qU ?4b@{[`:#B'FT3i"'RQ92 z1L>ÿ@q@E?BDF,@rRSBu@`҈-g d(ag;_3@JAJA2hhXB)3*ÄR+Є.bq q2&&:r816a,s2+66u\L %8WQA$A[(BBSP@RXESTO$@,r23rUrD.e53_4&F3s͵N?SYFer=@:u]Qv,@F=a`up]XE628ABTOfD"J-$RRO(R[)VO`Rpasd`.e Tpx``B2+ 0Ls'_"x#0!UJ"b_ 簋 B)U2brJC\Rr˨83vvF_<U"D"=m2Q:2Q]q2XBƅ3/nR0{.b[a[a22:raa  A AE,,f7Ԣ18Q`#A#AQ; ^rprqqMMr1"8J6=a~Ak ]\SP@` SPa`e`lBsa_` E0ud`px`e`JXEas` T``U\cam`uF3dr7` SbM`i`fbUD7SLgn*f`c`ub/.eQXJAPbd. Nm@Je@=O! P`rx7x.[b`m DraeNiu9KoAe1S`u^8 Sri`a /J T//A/^`L`ch@{/Ҡ///Bl pQ/ @?#?<R`#Q?W??*oNwbkl"b`KҸH?[Ij`ad ps*OT]]9 M JU@z^?@]z?@ZVjźP6 ܠAJuM` ?juJt  3\It=W(\I*RIl#>2zGz?@M|JA@e7b #zb(b%)2+2&J[-m(?& I?A$4/U%B!!5 g`?CopyrigTt (c)020%090M0c0oKs 0f21r 0D1a0i 0n.0 Al_0 8sc2e70e0vu0dW0!$-X# '&?6iie59 6X7/'0UvBŇ&-!$0 -FAJlJAn h71Z1!TlL2 $<[V  ORvVJ:%'d2ɩ PY]PeS YY˱QEaZ_`YQU5U=Vr\. l\QY?))bUb526_;"rA #cHD: # h4>T]]9 M JU@d2L&?@P( ??@>?P6 e]A#uM` W?SuJt  RQ͸It=W\_(\IRIlƒ_',#>[,ɺ (? ?Ab A@"Sb$J2zGz?+P@MJ=&#fbbbPz (bE)&,"*UB!!5 g`?CopyrigTt (c)020%090M0c.0os 0f21r 0D1a0i 0n.0 Al_0 8sc2e70ej0vu0dW0@!$b-# 'Y?6iie59 6X7'0UvBŴ!0 D-FAJlJAh71h1!Z@bgX,  <)gV#\ M OR|VJ a9PY]PPReS[RUE:]r\.M\Q`YO Q5U=VN_YQĖU526_HU"rA #cHD: # h4>T]]9 M JU@z^?@<0 ?@bX,?@_~w?P6 >JuM` ?uJt  ףp= It=Wk t@IR)\_(IlK&D#>[-m(? ?AbA@"b$J2zGz?@M»J=&#fb{#z (bE)&,"*UB!!5 g`?CopyrigTt (c)020%090M0c.0os 0f21r 0D1a0i 0n.0 Al_0 8sc2e70ej0vu0dW0@!$b-# 'Y?6iie59 6X7'0UvBŴ!0 D-FAJlJAh71h1!TL&1 $<[V  ORvVJ:?`0 PY]PeS a+QEaZ_`YQU5U~=Vr\.m\QY%NX526_;"]rA #cHD: # h4>T]]9 M JU@RT*J?@r\.?@zP6  >#uM` ?juJt  ףp= It=W\(\IRQIl#>[,ɺ (a? ?Ab Aw@"b$J2zGz?+P@M»J=&#fbbbPz (b)&,"*B !!5 g`?CopyrigTt (wc)020%090M0c0o%s 0f21r 0D1ua0i 0n.0_ Al_0 8Usc2e70e0vu0 dW0!H$-,# 'K?6i@ie59 6X7'0UvB!0 -FAJlJAh711-!Z@3F  <F9Kt#  OR|VJa9PY]PPReS[RUE:]M\Q`YLQ5U=V N_YQU526_HUv"rA # cHD: # h4>T]]9 M JU@L&d2?@|??@t:?P6  >JuM` W?SuJt At=Wi_6#J]RbJlGX%#R>[*(? ?AbA;@"b $J2zGz?@dM#7& #fbu#z$ ( (&,"*BB!!5 g`?CopyrigT}tZ(c)ZW2009ZM 0]c 0os0f2R1r0>1a0i0n.Z AUlY0 8s]2e10e 0vo0dQ0!$ę-# '?6iie59 6X7}'0UpBi!0 'F;JlJF!( ]A!1-!Z@ B <yO#,4#BQ YR VJF!L&?@bX,_S RQ#jYiFQEU,b?@%\\(\\aX5U@?@ՔJR\p=o ף\kQX5Ufl6?@3oF\H8!\4rOiX:=?F&[f3r|UnTeRU ugZY8oJi QyZV'j[3rJa=yUU2@_RU"rA # HD: H ih(>T9 M3AU@L&d2?@\.?JP6 t >%M  &:"S:JuM` ?S0DVhurlnb#4"Jto ob'#t3&>JU#g"X#a?~& ?AJbAW@"+7 #J!%(,Ja#2zGz~"@MW#"6/%b)_;_6" /*Ba#115 2`?CopyrwigTt `wc)020090M0c0o%s0f21r0Aua0i0n.0_ Al/@ 8Us3Be@e0vE@d'@O"ib =X%`!Xa#Y'0UB~&%0 JlJ UhMQQ A75A!U(!1L&?@bX,Ơ h # RQ{h# >_,S{J,b?@xz^?@1o=?@h?PQ ̿ A!Y\(\\tگ@ UnĿvUohú{:i dk6!d P Ln4!lBoogr5%BUfl6ˣ_nH1_Xq~?4F6H/ ݴpX =?!6@,9?@HW8?P`ڒ੿ ) !oqf%$$UjGil!j( gtoomddvg0|RQPbرɠ )8!Oy;DcwVQ]z,Nz(6abxZQ~FZVjp[3’L%q^QFvc~b-Tt$bxbQ蟯 ' OBNz)6bXfUU^@ss9 ?@u?P1r _RUj2ilpfg.ɏmbd,>gxHD: # h0>Th]]9 MP IAU@Dxb?@F+?@`Wڔ?@u5F&?Pps-8R?>$> n JuM{` ?e ;  Su*Jt'  ʼnhmta{|_3.Jv9?\̧q?v-F$>JU2N'N[?@M#J&A@bI(bW)U+RU+U&J[# (<!J m?%P?AR^$(u/%B##1#15 `?CopyrigTt c)Z02`09Z0MR0cP0osJ0fX2I1rL01aX0iJ0n.Z0 l0 P8s2ex0ejP0v0d01Y 4#-X#/3 /7#(R0b59 &FX7FG_'2WUAFJ!$a FFD$&#l,&}>UhEMA11-O!(#H UV & `&d T` V_RHD: # h4>T]]9 M JU@^z?@ `?@<?@>_w?P6 >#uM` ?uJt  QIt=WwIRGzIlƒO_,#>*5 g`?CopyrigTt (c) 2U0 9 Mcosf"r-!a in}. AlH U sL"e e5v^ d@ PB[,ɺ ("a?& ?Ab Aw@"b$- &2?+P@MJ\6#fbbbPz (bE)&,"*%?@6iie 59 @6X7'K0UvBŽ&!$K0 -FAJlJ A>Uh1MDH]A U H!1|4#hLjA*lX!効:@MJR Y <RyJk1LbX,?@`0  S qq#Y`?[G=`a]~mΓAdžeЕQQ0F0ZVCXQ`@iqm2.uQQ=0r"H$YZ~X#Q`kwU{qm)F&uQ'QaZS0W+Q6`V BPXUmt~QR٘6p?@B |"Y(aaX$_کȑYr%e"U1/AoJ\` V"X;Q}rܢZ;o6hׯA\a ?,H%5eQCQ.|JZ'Ja6h1Aupm +p;eQ3@ Z,6hOQ'AE;Y}R8sRYh~Df7gWQAhVǫjfjchiL&E7gjE3ɏd2L14~.yl߶7ggQA?p8;M7 AİeXkQ9QUoQA4F G`XsUWiZñeHD: # h4>T]]9 M JU@JRT*?@+@ ?@ `0?@ ?P6 >n#uM` ?uJt  zGIt=W贁NIRQjIl{^z#R>[,ɺ (? ?Ab A;@"b$UJ=!=!5 g`?CopyrigTt (c)t 20 9t Ml c.j osd fr"c!rf !ar id n.t Al j(s"e ejj v d  6!E:$-I# I'L2]z?+OP@MJ\6#fbbbPz\ (b)&T,"*?@6iie 59 @6X7'0UvBŴ!0 D-FAJlJAhK7[!h1!Z@߆gp8  <JmQ#  OR|VJa9PY]PPReS[RUE:]6BGP(M\Q`YmRbU 5U=VN_YQUM526_HU"]rA #cHD: # h4>T]]9 M JU@jZV?@@?@,b?@&_d2?P(-DTw! @>>JuM` ?uJt  QIst=WR\(\I-lU#>[-m(w?ZP?AbA@"b$J2zG/z?HJ=&#fb{#z (b)&,"*B!!5 g`?CopyrigTt (c)0W20%090M0]c0os 0f2R1r 0D1a0i 0n.0 AUl_0 8sc2e70e0vu0dW0!$ę-# '?6iie59 6X7='0Z!0 -FRAJlJ(>Uh-I 1l!`a9 $< J:@t: HYdQ]S lQE-UV_XYTQHD: # h0>Th]]9 MP 5AU@D 1!?@&?@`Wڔ?@ 6F&?Pps-8R?>$ > n JuMy`?e ;  Su*Jt'  :mta{$_#pYmvK@{3.Jv׊ߖ.?k-I?>JU2N贁N[?@MJ&A@b5(bUC)A+A+A&J[? (<!6 ?%MP?AJ$(a/%B115 `?CopyrigTt] c)F02`W09F0M>0c<0os60fD251r80q1aD0i60nU.F0 l0 <8Us2ed0e<0v0 d01Y 4-3 7 #>0b59 FX72G'2KWU|A F!$a 2F#l(&}>UhE M-11;! AVI & `!&P }T` V_RHD: # h4>T]]9 M JU@&d2?@<0 ?@|>?@_~w?P6 !>#uM` ?uJt  )\(It=Wk t@IRף_p= ׳IlK&D#>[, (? ?Ab A@"b$J2zGz?+P)@MJ=&#fbbbPz (b)&,"*B!!5 g`?CopyrigTt (c)0W20%090M0]c0os 0f2R1r 0D1a0i 0n.0 AUl_0 8sc2e70e0vu0dW0!$ę-# '?6iie59 6X7}'0UvBa!0I -FAJlJ]Uhz11!Z@`0 f <:a+ѐ#B SRԀVJ:BP(?L&YS RJ)#hT_RUEtL!ZrMP  _QdYP^CyQ5Ul6aTYa\8{?h5a=ZR_YyaĚU2:_LU"rA #sHD H# Uh4>T#A]]9 M AU@L&d2?@\.?tP6 j">  ( <$U<mJuM` /?U2FXjutJtq t ,J&b2$H &C">[JU7w$?& ?A5"bA@R"&Jtm#2U"?s"@Mc#J&(IC (/58*m#p1p15 "`?Copy_rigTt (c) 2U009 M0c0os0f21rԙ01a i0n}. Al0U 8s2e0e05v@d0["i1Em4d#(m#5 -EO|3K |7&WFi@ieE9 WFXmGs"'K0#Ŋ&!$K0 FJlJ U#%]VQVQ ]9 1HA!a(Zm#]/z JpC"j(\g}QQ R"fd"J:TZV՛jjS 3sbd dW&@aa5Le@%c~\ja}_,‘up2u?pf}Lb .lukut PF Lpa @cBr5%3q?u,b?@xz^?@oo=?@?PqQ ̿ us&r\ϑ|t@ ħ|v˽|oohwà0B  "K2[@a!fl6NwekH?zGёtm !+s KwYZHCEl#Fxxry92 |swOB t~d u@+X?LsGy]f8w h$~ Ȉѻ(?+=Oa?8b;//%/7/Ho(k"XRSP!UFD  h ^TYY>UFD"H$'@F @Fx,/T6D # 9UFD"H$@]F@&u@P} jihf,l>u` ?V,@y^u#hQtSfttRt'A@y3dbr(+#tTB/(u/!/ <"/S.pd#@i#5J~?/"._`Make Bx0cz0groundT#X3Ҵ14;1`VIS_PRXYn0CHM!_#60080"`?C0py0i0ht~0(0)~02009~0M@cJ2s0fB Ar@GAa@i0nn0 ~0Alb@ HsfBe:@e0v|0d$n2"e (^C5@ #5 X3hHA%DK5D,K3D@Gg$aq_DaS T@H11"T2-T3[T ZTET@(APa%1 C1o1Do1y.bg B2Q5SiC@nU3bk,qoUcj?bhKrQi? ^ebo #!} baRe#d,UEohbcD&'C1(cQ(QR=S1fZi#3 D0N0UtDBn@a@nEEg_09YBaPPo1o1"(S11iee52>bXc1`I!]&` H@d|2&F0q}A0q` SPowُbb+e"vM- ~-!bb bL~f]Dfah 7Qbdҏ䅕HD: # ;h4>T]]9 # ,AUFD"H$@FZVj@&@@P -u `u bu  _@"f)l A)0t#` bFNt?p [eܠAuv` ?5urJϞ>Xq& $##./@%W(l"r/ tvel 46<R?$&(Q/$BU2q$0?#?56?\.?Ef`?F 7`BackgroundC05l0rz)z5=t3I1 3&?h<:JA#3+0UQB3_ 3117;l`?1py0i0ht (0)@20@9@M@c2s0fB1r@1a@i0n.@ KA0l@Gs RUe@e0vPd@0l>#$!Uh#3 A A\TYJ*3BU_1HD: ##=h0>Th]]9 3 UF>T/?FD"H$@Fn- @FN?t?P>u` o? u3`>$t  `"?A@>D$_~Ut W"p [VJ5 .Lc0U?AGG}YL?b` LineColA r&zY!"'&ɆX#mddd#nFFF"?&?#!"'&&` ]STadA w?/#/D+$1# F9 lC '2I&aWY*1` Ac= nt/#Ybdy3zg9*#!$)$|I!8<e Q3#8$f$3$FP3(B#GB117;1#?!pyG i}gTt (u)@2`09@uM9 cG osA IfB!r@F!aV0iA n.@ UA2 HsBe@eG v= d@0 l>]UhzЁA3!!`J !V)XU__Y3^_oXgU5^Bo_foU@__oojEb59 Mb{7/v!3rav44K7 %iPCH6Hg7w4'~vv !"608e @Q:(yN@v+?=!$Yz,Z#b~~-T{ HD: ##=h0>Th]]9 3 #UFH$$@FFJx-C-?F BP(ԭ??Pn>u` ?6u3`b>"6(t  2U0*?A@BHV-kYt ["p: [ZՄJU5 CLc0U"?AG}]LC` Line_ColI rz])"/&Cmddd#nFFF"?0&?#)$1$)"/&&` STadI wG/#/L+$9# %FA lK 72Q&a]A1` AcE nt?#]bd3zՃ~92#!c'  3#e8((3F7BGk+B$JA3117;9#?1pyO igTtW ()@2`W09@MA cO osI fB1rԗ@N!am0iI n].@ A22 HUsBe@eO vE d@0l>]U@hzA4K ?BEOJ !9"XU__Y3^o(o{gU5^eo_oU_oo$3ojEb5(9 M{7/6v!3ra4v54ve}%i6FWig74 '$~vx 1)"&8ea:@e@ @("4Q:/=@3 9)']zE,Z#(T(-ӁTjQc@0@HD ##=h4>TB]]9 3UF.L@FD"H$@F+@FNt?P>u` o? u3`>"(t L F%u?A@BHڬ\mY(t["p[ZJ5 .LT0U"?A?G}FCb` LineColE rzR˵#nwFFFw#?x&?$#u+&&` STadE wC/#/H+$5# F= lDG '2M&%,`h9!!Btn! 3#.> (3672M%11Ԓ7;5#?!pyK igTt (c)'@W203@9'@M= ]cK osE f%BR!r@J!a%@iE Un0 '@A2 HUsqBeE@eK vA Id2l>0>UhhCA3%!bJ@&)C6XU!_A_SY3g^__WWU@5^_3__WU@E_y_9o_bT= tG e j5ie@5(9 M{x7/69v!3LrA,Tv5!$;7laiooXx7w'2#x~ov]x vw_H<> Eל ߪJAC BF,w#ߣ4B} x ]@eko+^C]BaGH#P@*<N`rX(-85fUFD  h ^TYYHUFD"H$'@F @FxT]]9 #Q ,AUFD"H$@F BߡP(?&@@P-DT! -u `u bu  @")lt A)0t#` bԚp [WenAu` ?urJ &@Fi#$!Uh#3 A Q3 "$BA 3ŊJ*3&"B%e>o1UGDF P# h>,/T6D # 9UFD"H$@]F@&u@P} jih,D >u`} ?VU,@y^u#hQtSft{tRt'A@3<db(+#tTDB/(u/!/<"/S.d#@4#5~%?/"._`Make Bx0cz0gro_und*#X314;1`VIS_PRXYn0CHM!#60082݉"`?C0puy0i0ht~0(0)~0200U9~0M@c2s0IfB Ar@GAa@i0nn0 ~0AUlb@ HsfBe:@e0v|0dn2"e (^C5 (#5 X3hHA%DK5D,K3DGg$aq_aS T11"IT2-T3[T ZTETɴ(Ta%1 C18o1Hy.bgBE 2Q5Si!@nU3lk,{oUZmj?bhuKrQi? ^eb #! >baeo1,UEohlc&'C1(cQPQR=S1fi#3 D0N0tDBn@a@nEEg_09YBaPo1o1"(S11see52>Xc1`I!&` H@d|2&F0}A0q` SPo]wbb+e"vU`6ȅ- ~-!b)bbVf]Dfah 7Qld܏HD: ##=h 0>T@h  9 T3UF}ð?FD"H$@FYjB @F l?uP>u` ? u3`>$t  u?A@>D9ȯvUQt W"up [VJJ5 Lc0U?AG}YL?b` Line_ColA rzY!"'&##nFFF"?&S?#!"'&&w` STadA Iw?/#/D+$1#K F9 lC '2I+'&!$)$|!$L8X< (3#.$3$3632M1P17;1#?!wpyG igT_t ()<@]2`09<@M9 ]cG osA f:BR!r.@F!a:@iA Un0 <@A2 2HUsBeZ@eG v= Id2l>]Uhz#A3!!J !,VKKX%U6_V_hY3|^__WlU5%^_H_olU%__No_j5b59 M{7/'v!3:raBv5X4;s7B %i5oog74'f~]vKx Nv!"I68e ^@Q:(yNO@f+~?!$\Yz,ZB#b ~-~T{ HD: ##=h 0>T@h  9 T3#UFG1"@FF$I @F BP(?V?P>u`} ?u3`b[>"(t  c]K?A@BHuV5Yt T["p [ZjJU5 CKLc0U"?AGQ}]LC` LineColI rzI])"/&Emddd#nFwFF"?&?#)$1$)"/&&` ]STadI wG/#/L+$9# FRA lK 72Q&eoa]R4` AcE nt83Q%#]b[d3z92#M!c'  Q3#8(f(3F7BGkBBLA3B117;9#?1pyO i}gTt (u)@2`09@uMA cO osI IfB1r@N!am0iI n.@ UA22 HsBe@eO vE d@0 l>]UhzA4 ABGOJ!9"XU__Y3^o*o}gU5^go_oU@_oo5ojEb59 Mb{7/v!3rav44vg}%iP8FYkg7w4'$~vv 3)"&P8ea@e@ @$6Q:>@e3 9)']z,Z#(T(-\ՁTQc@ 0@HD: ##=h4>T]]9 @3 UF=U~@FD"H$@F[M l_?uP>u` ? u3`>"(t  {?A@BH-ϝY(Qt ["up [ZJJ5 Li0U"?AG}FLCb` Lne_ColE rz|&.#E#mddd#nFFF"a?&?#%"+&&` S.TadE wC/#i/H+$5# FlG 72M&ea]Ra` AcX0e? t83M%#]bd3zs9.#%$,-$!]/(h9B>3z C#8> (3JF7NBIGJAA!G;5#?1pyK igTt (X0)@20@9@Mc.K osE fB1r@J!a`0iE n.@ A%2 Hs Re@eK v"A d@@l> 0>Uhh @CA3%!J@&CXU__Y3no+o~gU5^ho_oUE_oo6obTt>G e jiHle59 M{G/v!3r@QvE4,K7qgG^"D'2#x [%"6)_H<>? Dל ߪJAC BFhy#5B} 5]@ek7o+>*9]B}B@]@PGHA&P+=OasD?ĩGJUFD  h ^TYYRUFD"H$'@F @FxT]]9 #AUFD"H$@&@FTЃ$?P ]Au` ? un#`t A@`@I:t5ZE$:"p: [g5J=U5 ? ?B#0{GzI@hQ"*!!5 o`?CopyrigTt](wc)]20 9]M c o%s f"!r !ua i n.]_ Al0 (Us2e e v00-d0l>0>Uhh!#k!UJ`F6[48{  FMBC!??1$E34NMO_OG$E4E6O?O$E28?;1rA TRZSB3HD:  # ;h0>Th]]9 #UFzEI@FD"H$@FE I#@F)[3#Gӹ?P ]Au` ^? u#`t  I.!?_A@=Dgj+U-tA`WU"p [VJ#0{GzK?<@/BhJA/mdddG G) ?AgaYT6` Fil Co orzYbWYAY{bd#;z),!=D" #g#]#M%!!7;}`?!py io ht (c)y02`09y0M c os fw2!rk0!aw0i n.y0 A" o8s2e0e v0d0 l>]Uhz`1X#!J`iF  8H\ 3FM@BsOOAE3NO_WWE%EjFA_Oe_E2cO;QArA RS3HD:  # ;h0>Th]]9 #AUF_k'$@FC@F9C?Fl6_f?P n>u{` ?m u#7`t  Fx $?A@=DsU,tA`Fp5׹?p [WW"WJ#U0{Gz?<@MBh G ^) ?A_aYL!.` Fil Co orVzYAY{b#z)=/["  3~##M% 1 17;}`?!py igTt (c)02`090M c os f2!rz0!a0i n.0 A" ~8s2e0e v0d00l>]Uhzo1X#!Je`FxF ) 8HR )3FMBOOAE3N__fWE%EyFP_Ot_E2rO;`ArA bc3HD:  # ;h0>Th]]9 #AUF_k'$@FF9C?F)[3#ӹ?u?P u` ?u#`b>"(t  Fx $?A@BH_sYCt ["p [ZJ#U0{Gz%?<@?aBhA(G XO) ?A_oa]L.` Fil Co orz]A]bv#z)=/L" !#o#"(#JM!h!7;`?!wpy igTt (cu)y02`09y0uM c os Ifw2!rk0!aw0i n.y0 UA" o8s2e0e v0d0 l>]Uhz`1$ "H/1BJ!`9H""" 3FMBOOE3N __oWE%EY_O}_E2{O;rA bc3HD:  # ;h0>Th]]9 #AUFzEI@FFE I#@F)[?3#ӹ?P u` ?mu#`bn >"m(t  I.!?A@BHgj+YtP ["up [ZJ#U0U?<@/BhA^mdddG `O) ?Aga]T6` Fwil Co orz]b]A]bdv#z)4!=/L" 3o#"(#M%11 7;`?!py iw ht (c)02`090M c os f2!rs0!a0i n.0 A" w8s2e0e v0d00l>]Uhzh1Z$ "71BJ`9H"( "3FMBOOE3N_$_wWEEa_O_E2O;rA bc3UGDF P# h>,/T6D # UFD"H$@]F@&u@P}  k0g,@DTh |u`} ?LU,@TUh|u#QtSt.%& 0"tR.$t|7/I'A@%#tT.%U/I(/g-3b)5/G((""/.d\63@?3e5~???62.`Make B0c0grou/nd& ,3؞314G;1`VIS_PRXY0CHM!#w60@82"`?C0py0i0ht0(0)02=@090MZ@c2s0f`BQArT@Aa`@i0n0 0Al@ XHsBe*@e0v0d2-2 eh8^hhH-Q659TD[e59ThD[39T@D[9TD[E9ThD[5X|D[%U9TDWndaKoc7TP116238ycA1I51x>Xr1I/1&` HZ@d2&F0o`@A0#` SPowo '"0!+x"vde&s ~s!4r:r4r%pw:rgAo%UhmI {a1$162te2-t3I[ ZE*R38\yca651+4r:rB1b?xav@|5Rq'e5ycBE@G'3,'㫊?GMKc`? 3b #/1 bq3Hep@,T*h|62+EM6H'1\+U=yceq@ D0NrQAn`@aZ@5a-2] ,Th O7qouHD:  ##=h0>Th]]9 3!#UFaD@Fi4F?@F3mq?P݀>u` ?u3>(.t  (~k ?A@HrN_atR bp [_a"aJڍU5 ILc0U~$"?AG}cLI` LineCoklf rzcF"L&nFFF#?&S?#F"L&&w` STadf wd/#/i/J(i" Qg3#$.f.36h@H1$g1g1o7;V#?#1pyl igTt ( )@2`09@M^ c.l os$0fB#1r@k!a@i$0n.@ A&0lT@ Gs\Be0@el Evb dP@e0l>]Uhz143F!J2!XVD(Q(E _1_CT3R^k_}_WBUL5N___BUOd_H$o_j5bPL59 M{U7l/f!3raXve5!$fDm2%T12ooXU7w'B#$<~3v!x vI8!e fwQU:(yN@~f5T?F$c"z,Z#bV~-(T{{<B2>/ HD:  ##=h0>Th]]9 3!#UF_k'$@Fi4F?F9C?F3m]?P>u` ?iu3>k(.t  Fx $?A@HN?s_a't bp [a"aJU5 - ILT0U$"?A?G}F/I` LineColf rz!#nFFF#a?&?#F,F"L&&` ]STadf wd/#/i+$V# F^ lh #72n&` =?o)z 3#B..23`6=27kH A3117;V#?i1pyl igTt (c)g@2`09g@M^ cl oKsj0feBi1rY@k!ae@ij0n.g@ A@2 ]HsBe@el vb dH@0l>]UhzNA3F!J@32&2&}Q(PUa__T3^__%gU5P^os_3oUP__yo_ j5b59 M{7/Rv!3eramv4!$Rv}ai6z7 '#$ő~vmv vU%T"b xe@i?8Te'aa@eg@ fQ:?@,3 9F'c"z,Z#.T5-TAci@0m@HD:  ##=h4>T]]9 P3#UFD3@F:N@ @F~?Pn>u` ? vu3`[>"(t  #?A@BHY,t#`F B_P(?p [_["[JU5 Lc0U~"?AG}]TLCb` LineCokl\ rz]<"B&#nFFF#?&?#<"B&&` ]STad\ wZ/#/_+$L# FT l^ 72d+A'Ah9ѤB! Q3#.(f(36(72M3117;L#?1pyb igTt ( )M@20Y@9M@MT cb os\ fKB1r?@a!aK@i\ n0 M@A62 CHsBek@eb vX d2l>0>UhhC4A3 ל ߪJAC BFxMh|#O7B @e o+CRoKaXYjo[PͩRԩTf˩U1G8WP+=OasYx]&ߥmUFD  h(^TYYBUF\.?x<F BP(?P?< 5 6IHC 6gfa6a9SBU@L&d2U?(sU*!(&J/BH8$q?/&?(H])|  0OB`"Firewal0,n0t0o0k"0p0r0pP711,d 0v0c0 U1^| a(){U5GO& h?0B?E\\\o   w w wy ߹{w yw yϹw {y{wwy w  ߛ{ 뛐*8p  } ߰ i|jDrag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aab\.ҿ~?? ;Կ)j??r]3rCUG DF P# h @T(PYY#EψUF\.?@~߻?P} ,.B ! :J :^:rY:k Au` ?"66JJ^^rru# *^b"h,h')qU ?3?4b {[`:#"&a#'JQ)b" ^^l!L1$l" l"7'>>ÿ@q0-5?46 rz23S2-uY0`-1Bu@ l"r3A`'Bl" L$9u`u `"[ bzb!u`R$"% أ#Q!'1`Vis_PRXYcPm!#5HP47"2`?CopyUr.PgPt (>P]) 20{P9 M.PcePo0PoIfmR^QraPQamPi_Pn AUlP eXsRe0PeePvPdB@!#d$%b!(g#>@f!^#&& "2bbbz12bGbf!cB##0Ub#]g,7^aN @V cT8fda[+_'s1 1"hh"2)t3 *tB+tBaa"qqb(!*paaSb"+6u\%G(!!["@Чcq"53T@ R"q3f uEf;uE5's_t$v&F3s͵NSYFuEf0we'Aj,@QZPUpQ"5x}L1*p"(AT?ݟZ2wB2;6q`RPQs.PU TPxmPSP^2l"+ 0^<@5b ۠۠"x5R"۫br3-PBrw('ٛ`ff_< $R-mA.AQS*pl!u "u"2u3/bBA0oB%Q%Q"2b3 !!E؁؁| NPl!#(>*pQ~ [ ]\@U0` SPaaPePl6rsRQA)P E u.PpBPeP{"5X .0` TcPѼSP"`DPvR3 `r ޹b` S;b4SP&SF.PQ!wPQJEd%TMPn;fPEcmPuR"/6HEQI[]1PRd Nm Eh! PPr"h"CU]%R`sRU3eA(ew3`tJرe^`BT , SRi+~K׻T `L_PcXG&8*JBlPiP;anIY0 -R_PoUS>b©'s)&U1:`` %2R&RviR`f`NEtWO6PKK`SHPP60 4ROJ2R*tI60S1QR`f`s7fitac'Eympx]b7'dYfjBr 3aQrf$i-QIaaL&E`v?`HvADK^DKDQKDqKED3aGHD H# h4>T]]9 MT JU@5wn?@'d2?@vP6 AJuM` W?SuJt  w]It=WuVIRY]JIl#>>@fY(? ?ALbbbz@A ebbfb)]b 6(. T#Jq!q!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d j!n$EB5 -F?}# }'X62zGz?3S@MJD6*-!./@ D)QQ&K,<"Q*i@ieE9 X6Xn73'K0UB!K0 aFuJlJAUhhc7![hz]0T ]]JU@\.?@WjZ?@* `?@JRT?P NamuM` ?,2<u#FtC mtimuV~ڻunO2zGz?>?@MA@bb?bz+ )#bC(+bQ)^+^&Ɇ"@fx?0&?x|5/-&bf^ >/`/%N B1B1`?Copyrigt(c)209Mq0co0o%si0fw2h1rk01uaw0ii0n._ Al0 o8Us2e0eo0v0 d0;1U?4-N3 N7&q045 EFXGeG'0UBų&!$$ eFyJlU`1#El,B^ PhO (!p&d2?@`0  <S ?؉O<S 5<Q3::*\QY'aQ5____Tehf'W{oaYQE##$Wuu']C_U_ kuVn_j@ղ_bl|>xoo uJSAU(:L^xSp8wag?%ehYjdcp i!rx  -?QcxS ?@ je,㨏O4Fӏ 5:vox] 2DVhxSPbtߔ尒 ? ypv y FXj|t:NѧwmN6@4~펰pdNAQcu.0ܰ+ 5P/Q&a/4EHD H# h4>T]]9 MT JU@\.?@W~?P6 >JuM` ?juJt At=WJRb~lT>5 g`?CopyrigTtZ(c)Z20 9ZMcoKsfr!!ain.Z Al< s@"e evR d4 HT5 B[}#?& ?AAw@"b4-/ &&t2Uy2?")@MJx6D8<6<2:iieE9 &5X.7"/'0y3&-!$0 FJ)lJ8>Uh ޓ$Ja7Z@?@ 0<Mbh#B] ?RlVJ:vn?6\ES YwQ#TTKRU%Ur=\PYZd;O#UEd^_OZaQU%5UPBgP([Ma\QU-V'?d2=_OZuV%hb2&_8U2rA 3LsQ% bHD H# h4>T]]9 MT JU@* `?@~?@PBWP(P6  n>JuM{` ?5u#t  5]It=WZd;IRMIl#>>@f.? ?ALbbbz@A ebbfb)]b6(. T#Jq!q!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al (s"e e v0d j!n$EB5 -F?}# }'X62zGz?S@MJP6-21/D)Q&K,<"Q*iiePE9 X6Xn7'0UB!%0 aFuJlJAUhhc7!-oiLaUe52j_|Uv<"rA ;#c8 bHD H# h4>T]]9 MT JU@\.?@@ ??@{?^?P6 v >JuM` ?)uJt At=W;On#JRbJl?ʡE#>>@f?.a? ?ALbbbz@A ebbfb)bE0(( #Jk!k!5 g`?CopyrigTtZ(c)Z20 9ZM c os f"!r !a i n.Z Al (s"e e v d d!h$B5 ɤ-@?w# Rw'R62zGzM?@MAJ6-2+/>)QK&E,6"K*i@ieE9 R6Xh7'0UB!0 [FoJl8JAUhh]7!6!Z@( <xLK#  }RSVJ:vn?6S YwQUTRU5UXz{\YR/IѫQEUPBP3([MabaiU_52d_vU6"rA 5#c8THD: H ih(>T9 M3JU@\.?@~?ҷP6 m >JuM` ^?5ulbSD_Jt bstE>2zGz;?@MJA@u+b+&K !JS"j& 1"Ab+Kb )-,-/B!!5 `?CopyrigTt `c)502U0A0950M-0c+0os%0f32$1r'0`1a30i%0n}.50 Al{0U +8s2eS0e+0v0ds0ib =L!XY/'0U Bj&%0 :l*J8>Uh@[A[A 1:vݏn? Y YwAQi@qJEr Ti Z?d;O!U3!^9_KZXQAUEPBϡP(KMQLQ I@'d2\ QLYuV_XAo@ ,oKZ?Mb_XEOOO\_H8> G*+s d:TzR4D$o F(߆#8  wLB UX~|d o@+CoBGh _PH  Ex  2( 3X  4 H| UFD  h(^TYYB>UF~?x<F BP(c?P?  s 6 6DSM 6gM 6D{M6M 6TM66x6K6v6HBU?8/&?R)B@L&d2?h-y(\.gҋ(i.sU!A&/@)Y(  0B`KLaptuo>0,>0or@0ableF0nB0tV0bB0oukF0mB0biT4UcB0m>0u^2rj4nr0A11nV0twJ2i1eq0i>0mV0n@0,PaL0d01e11^| ()IU5G& p??U"6? QQQ ``pwwpw w wނ ppK_wpwpwwppwwpppp ~ w w~~@w?~MpopJpppp~ppwpkwwZDrag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aab~߿?_)jk?3@ ?DUG D # h @^T(YYEUF~K? P} 7K.B!C D :T:h1Y:| 73 7 73v7x7377&u` ? "66JTThh||j&&"uJ&)R2%X<X7eU ?0?' 4b0{[`:1262Q3R2A"'QT9R2 ^L1$K" 7"Gd' @Bc]D?MQ0rBCSBuY@`-1"Ru$ @mGrC$Q'('R7"A& <4' &)9uv`u `"[bR1'$u.`425ؓ3a171`Vis_P_RXYcPm!#5H`o06QB`?CopWyr.`gPt0U(>`)02L`0P`W M.`ce`o0`'ofmb^ara`aUam`i_`n 0WAl` ehsbUe0`ee`v`dR13d45R1*83 Br3 66 2'QbtzV[1SBuL@`` F.`a^al^bz1 -2uߐqݐvR2CB#30U3F:w,7^F`^ P sT<`o0m`sm`a>g da;_zAA2Hhh"B)B* R+R::2mDmr81}ahcwP#6u\$ %W11%[2P@RA4"ECT'$@b2AEȜUiBȜU5z_4ɓ&F3sNSYF=U0ʚu s,@a#Z`ep"EˍLA}28ABTO0V""-sRxQ'(BKF>`R`as.`e T`xm`S`^B 0^LK'7"P#P E""b ..2EB2.˯brCRqʯܯ8z,BF3<^-""B=mQQ<*dh2"B B/R0R%a%a2qqr3 11E++0|ss7C8*PbQ11A;Q(r,`LA=k^u1MAE!ffuVҶ8}aY k q]PU@` SPUaa`e`lsRaQ)` Equ .`pB`e`β"Ep` QTc`S`&c^aEma`u9E^Mx_ ` S*bS`u`EL t_b9UdxM`n*f`cm`ub%7Uh5GAPbds Nm0{U0! P`rxqp2D@%b` Dbaew3uĮAe:fC`c'97/I/ Sbi`ao//¹T//` L_`ch/6?'?9?B"l`i`]?8(Y@?0?R_`?65?ON*h"wbk"a"R`K9B-/H`OI4`ad`cOLO/OOnh$gsC_L(t˰=_O_TQm2/atfa I4aoO_g¹f__㪲`Uk f`Pbao%ov8_No\_MPCOoNo(m Qt Q6LM5GMLvEHbdr!SC qpsY` W@DQQ:V6xHS`C@MOя^u`MpmB :V¡3EYx!O U1vqyRdnu}Ϗo߳(©`X^~"` %_@&דq|`NTWORKurH`PaRTRǰISQk:i*,Ŕ{Xo'0U¹ňaY`y}֏(!(H*ڽ(5|ѳy(!{5{ᤰdvHv˷v d,v5˧v(!&v˟"vĈ~(%vċ~Λ%vİQ5vѼd{5v5UGD  3 h0TdYYB IUF%D"?Fب̓m?Fre?F_jYfw?P} 8Yf u` ?0)u:t7  (\toLӑpG?WS̆{c٤CU!!`?CopyrigPt (c)J 2\09J MB c@ oKs: fH"9!r< u!aH i: n.J Al @(s"eh e@ v d  #S$#B- #l# '?R;= # &#24 6 6 2$Z# #0U2 3@&B ^#5 6X'7'R4 6!4] 6:e6^P#[EBM #HA%DGHD: H ih ,>T  9 M/AUF~?FtC&j+?P6 8V> a JuM` ?0K Ku:yJ6bqlt7~ bJt  $OC>JU2zGz?#@MJ?A@+(b9)F+,F&" !*$5J" "& w"\A1"b9)+6'"s,"s/B-  P3v#9 P1P1X7;`?CopyrigTt (c)020090M0c0os0f21r01a0i0n.0 Al@ 8s Be0e0v@d0N0i @b9 l6(X>7JG'0UBX&50 JF^JlJ UhMAA $ A11!:Lh4 0 tt3J!@|?Fhdzt 0 ?kCYk XEjUqA '[\<1ߑUjU!o6Pa@oVUhq`V r])m܆YaYi*X(QYaD"H?F=0 \S㥛\blXfYFt:N\[ZR ÅبX0Q^pp\.zZ ,\ 6?iwUS5?FrSGo?PE ?=TvE?!Y?.`txv6mT]]9 M 5AUF@ ?Ft:N?FM~u_7w?P6 .>M JuM` ? IKSu8Jt5  rtyV_->5^IWA>JUT5 J#/!/!5 `?CopyrigTt (c)f 20r 9f M^ c\ osV fd"U!rX !ad iV n.f Al \(s"e e\ v d (!E,$#E)edq%rVA٫llx51o>2rA 53eHD H# ih#4>TA#3 AM JUF8?FzwJHM?F,+?F%VA?P6  n>JuM{` ?5uJt  f߰nZIt=Wv%MIRG|׈,IljE7#D>5 J5 g`?CopyrigTt (c)* 206 9* M" c oKs f("!r U!a( i n.* Alp (st"eH e v dh PB~A!"#?& ?AlJa@Y;6` F" q!z!lT"z0_b0A0#bmT3z0B9Ub25181 $?25?G5\ P1u`"?46?8C_1A1b?t0bAFbI&DɤG b&LBFAL2zGz?")@MJFp'CfT<(Gb&I3F-LB3FiieE9 1X]G/'0UR&-!40 jV~Z 3Q hRG!-AT6yf3@$<f@C  bfJ: @BS+c X$}#e`e%akqcEAyHh?F~l0I#c ,aTE1vo>B]rA Cs+( bHD: # h#4>T#3 AMT JUF ?FH$D?F8}, WcSP6  n>JuM{` ?5uJt  s߿ 0eIt=W(\IR}WIl#>5 UJ5 g`?CopyrigTt (c)* 206 9* M" c. os f("!r U!a( i n.* Alp (st"eH ej v dh  E~A!"w#?X& ?AlJa@Y6` F" q!!lT"z}0b0A0#bT3z0UB9b25U181 $?25?*G5\P1u`"?46 ?8_1A1b?t0}bAF'b&D%G &LBFAL2zGz?"@MJF'CfT<(GbE&I3F-LB3Fiie%9 1X]G'0URŴ&!40 jV~Z 3Q hRG!A`Lޖ3?F\.0hO *1J#<=#,AB  f!JabdP$dreEAJT]]9 M qAUFp8?Ft:N?P6 mL >M ($JuM` ?AggL2DuVJtS  {G7zt.%_>JU5 J =#k!k!5 `?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al (Us"e e v d +"d!Eh$4#=#|x!F2 J3?]6 ?Ab4z@0Szu< `` F !!l"z֔0` ?251ݔ6b A6b4(4"Y==/w# w']6T4"BK/C2?=@M3#JF3@C37b"9F<2Fiie759 O&5X/GB_A/'0U{R]6-!x40 2VFZlJQD0h$G!Z@!11(Z/CFF\.30AR@Lu)_G  RaCf4"J? 6Bf*}~2?FVor?PE &TvE?~1LZc Jxdid`gR*YB_Lc׏_:M m&!&Ra DBBBTfwr5UBoPb2]rA 3q+"HD: # h4>T]]9 M 5AUFVj?Fޣ ~-?Fe2L&?FZT?P6 m. >b JuM` ?+ILKu8Jt5  O7nty>+B`"$'-A>JU5 J #/!/!5 `?CopyrigTt (wc)f 20r 9f M^ c\ o%sV fd"U!rX !uad iV n.f _ Al \(Us"e e\ v d (!E,$~|y7, SzQ|nF?F.`d %TvE?B1ZBrA YCc4!*uxnG@#r & 4xavDB#Bsrb5UHD: # h4>T]]9 M 5AUF{y3I?F~??Fd2Lq?P6 . >  mJuM` ?0IKu8Jt5  n`ݴڅtyx&1UԅbX9AR>JU5 J#/!/!5 `?CopyrigTt (c)f W20r 9f M^ ]c\ osV fd"RU!rX !ad iV n.f AUl \(s"e e\ v d @(!E,$~ 0T  JUFe?F:[??FO&Q,"7?P }uM` ?j`fpu#zAtw  [{t2Oۨy`<%t2N贁Nk?@MM+&A8 b*](i+i+i&p!!`?Copyrigt (cu) 209 uM c os If"!r 1a# i n. WAl30 (s72Ue 0e vI0d+0"!3 $#)Ry&#‘4?6Q?\c"bk)i+Q;'-,# '6% h5 IFXGiG'K0UBŨ6!4I iF}JlU!#A(ZFj^I30vi p-ڏ|Y &V"(:!]H?F{wX@0pS l01 o(fy { xU,>Pbtv3m?F/@M\lSFp ^ \ 0+??Fް}ulHyƊqWwi?Fܾrޝ۷cl)-i]oa?F5o רo`lۗ]Cfϟy { xY^p𔟦pO4?F0eO,plkleW,^ \ -r[v?Fp =\LhlmhG N1?F[Q{ l/5:1 fz7[;KՃT0P1ey { x¿Կ{dޯ?Fv9|eޝN.l?DɨT[\[fk'?F#Y}3Zflٙ(oWU"NhLޝ].Yt?BدW>lrt~]|%߸'0(f%y{xa v ?FϘǫḿl$h|a[s!?Fۂe2'[\YRSWW ?FIǧmp~Xl-TBi9w_Ku~Սe~< 8qOfSx#5y=Qgk?FG[Pm j%a ;(|a[sjT?FjwZ̮̈́S"o& +~?F 'APm*?w?3f|o7gyP( '7Ƀp5{/$ x //-/?/Q/c/ya-x?FlS+0ƄɰOYOe[s/?F@A ǻDÄZNF7?>.N?F nMoi?~q,P>Ʉ (:^?OD*x 7OIO[OmOOOyNaZBPK+qǀ̩BF6Ks _S~MGt='7e]Վe?Fɍ#cAcaKҌVB_,ϠZp"IؿoodK eowooooo k4@\{-=(eKs;o@,P%T̆m ?;e_#ֶZpp\J)~Wf ,Padҧɻ;y ÏՏ5A ?Frg,mr2 +nrsc9az?FWn ~}\+ :|wص@ymwQkܳ 8I2=d]? ń̙ "Ͻ)i8j7i3 ͯ߯i+?Fu߫˶<yOKs@,0YvjO}ȶѭ $Y MMeܚ-O ߟ4~ <-f5]Xкj 3ʶPbtf2+ PpߚDڋp,ψyӅ猜,4p:9?Fo}!s>ybH E3Ɲp ?Fn~p6Ü~y˓lj~ݨ" : (0!϶<'y'K+HHZl~f~ӋE?F&Ý A;yƿ* ,/=r?Fegm yQEڳs/e\?Ff"h=y/k.h@̵I y|!??4JkYhs??????iHu)?F͎ l䲥aβ ,IO;o\?F!yhX ejyROm,F @^f]ywO~6bԢ`V 6y O_o%d r______??FlO?=Ȣtc&O ,wo<ڐbrqM~@ O`> s>?Fcme~Vve~sO~%HlĀW<]|F<>~zK_]]M),ͭ`7E̺ژB>mfT# ,Bg)?F[='JFmjG;B|'|`yq])tK } /:Pp0&%;Taqԃa/E-? _ [X!////??D Tw2?Fw]12%W嬨$:W{,߰ M >:6yEpV(0AzGxaNtb#P?P-yp\J~%wMIn17O~:3݃* 3%\K?|\^OT[__ { xOO__+_=_"^j^I<=ADǂr-+ű!M!?夿e{*% m9N?:ߤzf"h<=b\㭖h1boyt65o %#M#'VW?FGn5> 9ؗϽrqCug<#ֶ?Fv^݇qLJ|U[>j?F^@;# qYq(ٿ2#>#Md TH7D6D # 4#T  U U !"#$%&'()*+,-./012*3>5h T  M YUFBg?FJ:?FAؔPM.uM`?u#t  jm7}%t!" .Π%'&!%4-Ut}2N贁NKk?@M#&A b(J++&Yz}/R/$38?#b`4zt (+b/R5N}11/"`?Copyrig t(c 09M0c.0os0f21r0Aa i0n Al6@ 8s:Be@e0vL@d{"1U%4e3 756%01hEPFX|GG'0U%R!56S1I FJlY)U4FX1#Aց(`}oO40OeOW0fnj# Qˣ-Y R5b 8!EЏv?F[ =\}g5ly$Oa3[e_q[~haWWrm)T`fnӟ_C1hhE:]_cd0g`h _R"rg t4{s{"oQ#w______Vcޯ?FW9|e!|vr.l`(n :l Jo}`[Q ?F#Y!|helƳoZfuj'7czX!|ߝ fUo(oZf?M :rm3~Tɶi(R}ty { xUV ?Fǫ!|?UvʁD!iip_(n :l r}9!?Fʂߤe2!|ωY\*!ijlߐjǏȯگ` K <ZfB0񁚍axCmƉR}Bty { xYџ+BQgk?FG[!| =jlU)+R(n :l }jT?FwZ!|B9nl(Z!X󁟜 ")p Tϑ` 4/]$R}p ty { x#5GY,h+?F߼߫!| ?iOf+k:l}‚,Y?FqvjO!|6zKi%SI#Zf@,0ƪ!|~9RĞX}ߘNd̮ Q>'ەߘux x&8J\nYJa-x?FglS+0!| @m}i˜?Wz(n}?F@ D!|¶RiBQ:4i!@Se L]yEڨZf?g5 J[#PR}ty xTfxoPoof+k*\onooocN1?FEߋ]2φ gm_h{ 'aV ?FIQ|X"Z~2z}5o]Sh]CYR`-`CLVI h oo&8@6>Pbtg[`#|϶U /(+~?F0'Au=0cLas` =E ߴI h 0BTfYl~g[ 2DFd-?FGt\e(-upғh6SFOp \pH%y|C/h6+S{0 ӼvAf@g+hPљV M H<l5-W/ :FdAg?F#ccMTbzm1Gcqe~1-B?`ZAvkNngoPoboto OkH?Fɝ?) V1? zk "M ,o"r?FLgmƦ J TܪMcSS6-F؏{wKJ\M,z% #߭ҋEŁN"}3cQLYNVV䯀@.HZl~ n P?F͚Dڋ~Ͱd@~y6{:M ,"Ęp:9?Fn8ͣϕ茻yb H v_=x?vQܠK='+ #X;F.+*3 rz@M\vЯ *ͭ?F;Y ~Eؚ)~ykM ,L5?F)-ffA煤 0{l[΁F~Uk߸?I36&&d>!ё*a0tM@ޞs0COρn{϶ f5A ?Frg, {35ٰy^5PנN,z5kzX_z?F-Wn \?/qy?%b/'8a'߀x\tRʓVxK?q%im!Fg?Jq /2_D_V_hV {+,qO_6}i?FrsM<+bSykY=T=/a]e/r_`x ;8$6HZ>asu=?6|./6l,`F@^f\/j~9̿ia/nLHThmO;~?}[h<11?C?U?g?y??@妎Ė  O0B_f^O8e\?FU"hύ?@B^bybOl?Q ,Mo~SA(5 `_ - <\_n_____⩼Pο!!2o^po8p ?Fna9hfoʌn%Zm?7 ZT![!j( ""`DpHxs/ȏ]-߼LbqS?FҾ+cCXA9x1ˠWC s\3EP|`0""ʟܟy*<N##A?FyYǟìiQ9!.Q^=&J+#ͷFSPA &&Dxj!.?Fo,,M V~< XO~U?F>6S p??HUK,HY&/ ?` _/& A[&PXp//////y*ӋE?FTmcͦQl~V)a ''F? |kټ]c¡J:?YnD((!ooo&$ ?FEc:d9~.]Gl))W_?F޶P dS&9~ԫߟFRB1 > 'Nzrmw }}?=In됿Tr)˻)ڸ" 0BT Yoo?F\/8BҡdifO g **ПA Y{?FְgmƦ͌!MdihMcSS%@'9 )|z֠?H,g]r~ei8YY$m**#(:L^p Y'4?FÄ!GQJ?Zqqqdi +"++,#a?F-ߕfadi [΁S<]?~qUg  ʕ7mI[[ߣވ/ZG +' +6$Vhzߌߞ߰@ Y???6 ,,,X?j??"6?FB6"MRp4KTp#1 ?mJ,` O4PHOZG\,U+,d(% Y__of';--Z__G/_t^> s>?Fyme%]U`vdicdUʔQQ ,?w/ ?~efvoZG*/\-K-H& / YP$6HU[../uO/t|?FaqS} 4dIalBt:K7? \T-E_?!#hTXO\.k.h'??OO(O:O)@R(dvK//Oo_t͇W?FЧji QI?e_N|%ЏIMs.qe$ү䧆o*\/ߋ/(o o2oDoVoho)nπϒƗK00o"яF>t44I8?F?f_<'kԸ!Iv' Pr۱|@? }.q?5d䧴*\0 0)Ptlt)K?FZIl_<緬TF!Ǿ iϿ­.L.7\1 ;1J*j|į)"FM?FO4_<`s31In1)0` 202@q1.?FzT~_<ʱI (빸~u7#ߩ MǍKKRw 2 lPiCϨ6\2i2x+Ϫϼ)PK303nߒ[Pr| ?Fo3on1Ox0 ~L":rCF]KSDJlع0 MPq6>B33, aZdFy^#I1Af4b4J?A^31K404dlI?FjwX@_<\X*߰~LϡD/g\Hb1),-FuPx~K :ehDo^1GEG?7l*B4;48-*<NLIw?F`sT5]|N~LZQCݞaQK505dm%?FGn5;TW~ A,p"wQYy>)N1`B@PKB^qq_'T?B5[5h.?(?:?L?^?p???F1 4c}C0\wPN)qk6<6?d]@?`pF*;Z"}^װIAOfQ;8aVȯ#{Wn\=͘OLP$Zɺ}_.qV'@IO^6 !60/D_V_h_z___2\֟?F4vS[p-̬)K7<7o\?y1<<<:y6yrЃ&~?!1b W@=yBP(lf7?۵FSF&Oi{// bxRC//Jy<<8X5X/j/|//// ???6[=2 l=.?f&M?dsl?~?+eXO-y?Fp\JlR ?ɦp{?\s__ ~C +OOJy==ftSr BTGHD: $ Uh4> T]]9 PM /AUF~?FtC&j?P6 .v> mJuM` ?0IKu8Jt5 }ty$AJbA>JU5 *J)";/#?@& ?Abk$zo@w Su`` Fil Co orzw ` Z/2%w!w&}bA&E&UBh115 `?!wpy igT}t(c)W20[09M ]c os fM2R!rA0!aM0i wn. A"U E8s2em0e 5v0d01 4Y=$3 $7@&T"+t32UHB?=@MJGF(I(/HFiie59 &X7G'K0HC@&![$K0 FJlJ$+VA' (++ ]61h!Z3F\ O6?F9.4?.`tx@! y@c#CJVAbX,?F?&d2b iQA.$c Ȑ #Sa3:TLh4b bcitt3h5eqA 'k?\<1lOe5e4P܇a5f_eD"H?F0 wlS㥛ԍlZblheFt:ǝNl+aiR أhQ\.j ,X^F5~I?F\O;\?PcG &TvE?a!"rA #c4xLexmdAa S ύ4xa$B#T]]9 M qAUFbX?Ffl6?FI$D"?Fz^?P6 L6x> ](m$JuM{` ?Agg2DuVJtS  y&1tQ rhGzI>JU5 J0! #<l!A?% ?A^Jb @bbbz #"b9#$"b$B 2% # ?<@M3#J6(&$%"QD;'"**=#115 `?CopyrigTt (c)02U0090M0c0os0f21r0Aa0i0nU.0 l@ 8Us!Be0e0v3@ d@+"1 (44#-=/3K 73L)i@ie59 O&XuGG'0U RŚF!$0R FJlJ8>UhW^Q^Q 1@!V!1(ZuCFWF3Ф JR L?[<œ_Q3$R$4"J1n6f?Fr\. LSW_Y?)$8aE:TCVb]k&aPdd *#8d2L?Fw;?FH?PBzt &TvE?!YaYcR&ekre~RMv'(J9_b 2}&(!&Ra@cBwrÀ5%8aOEev?n?V]kAyqiQ4eDe'BP(\orlh )$a^F)?F.\?PpU#u#rA =4Pz d|oO_Y~sEzw uFtQcwHD: H h4>T]]9 MT JUF|?Ffl6?F'd2?Fz^?P6 n>JuM{` ?5uJt  bX9It=WQIRuVIlGOz|>5 Jr2?@MJA@]gb%(1+Wb3)O+O&B!!5 g`?CopyrigTt (c) W20 9 M ]c os f"R!r !a i n. AUl 0 (s2e e v 0d0!$صh2?6 ?ALb4z@'!Sgu`` F 1!l"z' ` ?25߶1ݐ6:/[)ʼ=# '66Kiie<59 XQGG'0UB6!4%0 FJlJ(>UhI !+!:6V߫j֋#0=1 JUF'ÇpС0RSO S ;[5)۱Q3a9iQY'aHD: H h4>T]]9 MT JUFt:?FFh4?Fz^?FkZV{?P9>JuM` ?uJt  lIt=W9v׾IR}?_5^IIljt#>5 UJ5 g`?CopyrigTt (c)* 206 9* M" c. os f("!r U!a( i n.* Alp (st"eH ej v dh  3Eص!"#a?&?ALb4z@0Sgu`` F" q!!lT"z0` 2?2C516bANt6b4J= &;02zGz#)@MJF86x?OK7XB 6iie%(9 X7G_'0UB&Z!40 FRJlJ(>UhI !lXAa20$)0=~0M:XbX,\QS }A_б5Y9mYQ_H8>z 9s -b@J)Fd #: < OB ȼ! ~d :" @+^g<8s}Gtf֛e_?- Cf/ ri3 k8 m; o}? +BߨC aE H BGKL Q`a !as//'/9/K/]/o/////////?#?5?G?Y?k?}???????? OO1OCOUOgOyOOOOOOOO __-_?_Q_c_u________oo)o;oMo_oqoooooooo%7I[m!3EWi{hTI iVIw Џ*>ÿ@qZPU?TVpPr&bcwRu}P`-*Q"&bu &@WS$Aa(Kb""ch@D )9u`u `"[bz$u`؂CaAG1`Vis_PRXY%cPm!#52madPa%VR%TKa/ZB0gBqq32REqEqAAB5r6$ 7”ECϔ|A8ܔspꓮQQ;< !LAE7ĂFD a,!J^hdh")xA*HKa./Hd$Gpha1]` Mpnupa2ptqrFqa` E@u"pp 6peptuEQ`ѯ]8QP}rd NmP3P9KZ! PprtX˿]r`iDr|q uϯ\/AA$pqc`#E^-% Sripq߫uT+=,LSpcxwߠ E߱Bl pipgE}Ph RSpoO"|ґyz(ޥA` qp鴜D`NwrkhaGpB`e#AI(pqdpss@|'߸ֿSbpsQx/%mF#qtvq Iq{uQf{ r (pqq@(3/+URqm6put%  SGt5QVeqσąV///(C(pA` WlګO`/iMpmr1//\Qp?!?OUpqsIyP?b?XiBplrgrTSp#"2NO)OS4paB2Cpo! 7iO{O` GT01@ `p#_OOGO _u% `_#kapTq#(?=MpCv/Qv__SH"d\"ZqCB??Pq|&Љ و3UF~?vZS\u`?d?7ruAy}5-.B"TqqՈASw>>{ÿc6Hr92u?`s`Bxrq 07K`R oF@IAeB$H|8Ex~8"7=rb ӀӀƞFSrӋb{ra@RKᙑsz}_MSaabn.{&$,"-Ѵh!PPa@iy60`ZUuu`a p*LQ. p`RÑ.1=f@ߒbÑ;J&;i1J5MS_dK&#„BCF3sNSYFw";(LլDQT]]9 M !AUF8?F:?Fm](?FF]?P6 e$A  JuM` ??Su.Jt+  Rqte_|tH1qzrMZqaMKI7>JU5 J["a?2& ?AbAw@X"b`$B2zGz?")@MJ&a#b#z\c a(b`)m&g,X"m* 21215 `?CopyrigTt (wc)i020u09i0Ma0c_0o%sY0fg2X1r[01uag0iY0n.i0_ Al0 _8Us2e0e_0v0 d0+1 (/4->3K >72&i@ie#59 XG'0UB2&M$K0 UFiJlJA h7P1X!ZCFt,ܿ?F9$*m ;6dm S)RJ:^T<@T R}S $S @gQEU23\T xY _5ˀ aYQU#5UFY&yw\QY!ħ[68^_zd {?FC:\4 `]3?X"rA kf#sS*<7$dFl~r7lb+d [!}UHLuD  #;3h0TlaaJ )UF~?һ P m.N >uA` W?I?u#8b>t5 }ty>b"[>U?& ?bAK@8">&>*m!m!`?CopyrigXt(c)2d09M c oKs f"!r !a i n. Al (s"e e v0d f!3(aj$B-y# y'&t2U2?@9 H>6A(A(>/J8M*ifPE p6XB7^G'03&J!-$e F/Jl>!$Ul8AAa  @!#E18!1Zb?F _4 .40nCA.xMѧnA[(:DTPFmq4 _WtY\ FهX3^&o`_sZRXECU֚|I?F'@[\b Eq\ ypQUdKq\;rdXXQϓCگ K/ڇTXK^F!}} p$?P8-DT! .3!^_p_U.~4}]~q.x~TA#3 AM JUF#H^?FՃv?Fꖞ@?FĶ?P6 n>JuM{` ?5uJt  ߀It=WKꑔIR ׼IlV #D>5 J[? & ?AbA@0"b8$2zGz?@M»Je&9#fb#z; 9(bE8)E&?,0"E*UB 1 15 g`?CopyrigTt (c)A020M09A0M90c.70os10f?201r30l1a?0i10n.A0 Al0 78s2e_0ej70v0d0@1 4Y-3 7 &iieE9 X7'0UvBŴ &!%$0 D-FAJlJAh7(1h0!T#VcS( bHD: # h#4>T#3 AMT JUFȹޘ?FOd?FoT#?FqJĻ?P6  >JuM` ?juJt  uD It=W36EIRj׌IlB?@-#>5 J[? & ?AbA@0"b8$B2zGz?@M»Je&9#fb#z; 9(bE8)E&?,0"E* 1 15 g`?CopyrigTt (c)A0W20M09A0M90]c70os10f?2R01r30l1a?0i10n.A0 AUl0 78s2e_0e70v0d01 4-3 7 &iie%9 X7}'0UvBi &!%$0 -FAJlJAh7(10!`3'e?FfAs!h, ?nN#<bydb   VJaRTT $jTRUE:]gy_eZ-ֱQ%UOfkZoaU526_HU0"rA 5>#cHD: # h4>T]]9 M JUFS6h+?Fڨ?FC7LԠ?F_oo߯w?P6  >JuM` ?uJt  k6It=WHףrIR'c_hIlX_#>5 ՆJ[;? & ?AbA@N0"b8$B2zG7z?@MJe&9#fb#z; 9(b8)E&?,0"RE* 1 15 g`?CopyrigTt (c)A020M09A0M90c70os10f?201r30l1a?0i10n.A0 Al0 78s2e_0e70v0d01 4e-3 7 &iie%9 X7'0UvB &!%$0 -FAJlJ]Uhz(10!Z'F#?F9=7Z#<E $ ĀVJt!#cGP!2, TYŏ.ZfQoS 5!;KƱQE:F1aQ, jRYSuRYFU>X%e1lER[6C/I .g\wPU5egㅪlaYpO0X2:_;0"rA >#sHD: # h#4>T#3 AMT JUFJV?FO7x?F g8t8?FxMƻ?P6  >JuM` ?juJt  .![It=WBaIIR#!xIl?7O##>5 J[? & ?AbA@0"b8$B2zGz?@M»Je&9#fb#z; 9(bE8)E&?,0"E* 1 15 g`?CopyrigTt (c)A0W20M09A0M90]c70os10f?2R01r30l1a?0i10n.A0 AUl0 78s2e_0e70v0d01 4-3 7 &iie%9 X7}'0UvBi &!%$0 -FAJlJAh7(10!ZF/, E <{O!#4  OR|VAJaN[]PPReSRUE:]?Cm{ɾ__Z"u)Q%U=V9P]Y\QĖU526_HU0"rA >#cUHLuD" # ;3h( TEJ UF~K? P .N  >uA` ^?A u#0p,bKp>t- bFtq>U2zGz?@9 >?A@(b),+,,&" !$i>"&p ]""b)+'"Y,"VY/N*1*1`?CopyrigXwt dc)a0W20m09a0MY0]cW0osQ0f_2RP1rS01a_0iQ0n.a0 AUl0 W8s2e0eW0v0d0:i f x!X]'0U5BX&50 Jl>$Ul8AAC U  B # A!֚|I?F'@ & b E9& y'9m(^L0T,_>_ *XX3U{?Fr\HzdKB\;rdXXXAk}pCڇ K//XTTZbP _?F92}&~`m`[ ]3PY0nC]MnBU,Nvlza&p (91n-pQYWAliPFmqٸ EY\ FXX܏&o`DZ?RXXE_&__J_|D#AD1guOKOOjkFs"DI@[sDz.q[]J,bu?kZ̯_ofd $?QRp؞lq o|T]]9 M !AUFM4_?FX({'?F8as?F'|~?P6 m$ > JuM` ??Su.Jt+  ,ئqte_GqzLxg q}KRI7>JU5 J["a?2& ?AbAw@X"b`$B2zGz?")@MJ&a#b#z\c a(b`)m&g,X"m* 21215 `?CopyrigTt (wc)i020u09i0Ma0c_0o%sY0fg2X1r[01uag0iY0n.i0_ Al0 _8Us2e0e_0v0 d0+1 (/4->3K >72&i@ie#59 XG'0UB2&M$K0 UFiJlJ]UhzP1X!ZCFFMaT J*m $d2rv 7|QL{RJ:bTVͶ$S ?!͟TT QE!K:?Fc\?7YMQ#5UC6ǎȥy\aY = GZgh5Uc?hV[\]PfaiQb_tSF菐-?FҮYT˳ ]3?X"]rA f#asS*ԍ֯JQed~V(L qAb+d ׻HD: # h4>T]]9 M JUFd $?Fs"D?tP6 >JuM` ?uJt  RpIt=WcsW.IRI%l#>Q5 J2zGzK?=@MJA@neb1#z' %#b?(1 ?(Z+Z&B[ "?& &?AE$ \/}% 1 15 g`?CopyrigTt (c)A0W20M09A0M90]c70os10f?2R01r30l1a?0i10n.A0 AUl0 78s2e_0e70v0d01 4-3 7&iie%9 X7|'0UvBiů&!$0 -FAJlJA h7(1E!bTc1 $<K $  OR)vVJ: KvŦM\lQeS -^PűQEaZ9]`Y\QU%U=V,M_Zڕ]X526_HUE"rA D#cHD: # h#4>T#3 AMT JUFEM?FZI{?F'ϸBl?Fĺ?P6 >mJuM` ?uJt  ^J˛"It=W0"شIR}*IlFw#>5 J2zGz?)@MJ߀A@eb1#z' %#b?(bJM)Z+Z&B[?& ?$AE$\/}% 1 15 g`?CopyrigTt (c)A020M09A0M90c70oKs10f?201r30l1a?0i10n.A0 Al0 78s2e_0e70v0d01 P4-3 7&iie%9 X7/'0UvBů&-!$0 -FAJlJA h7(1ZTlT]]9 M JUF5 J2zGz?S@MJA@eb1#z' %#b?(bJM)Z+Z&B[?& ?$AE$\/}% 1 15 g`?CopyrigTt (c)A020M09A0M90c70oKs10f?201r30l1a?0i10n.A0 Al0 78s2e_0e70v0d01 P4-3 7&iie%9 X7/'0UvBů&-!$0 -FAJlJA h7(1ZE!ZF" Z <] Gʼ#OR  ORS|VJ:-US DZ/`#dTK QEUHǻM\Q`YO$iQ%UY $?)/Ep?Fa_V0w?P} 8f u` ?0)u:t7  Id̝txhˑgFݑZo`ҤCU!!`?CopyrigPt (c)J 2\09J MB c@ oKs: fH"9!r< u!aH i: n.J Al @(s"eh e@ v d  #S$#B- #l# '?R;= # &#24 6 6 2$Z# #0U2 3@&B ^#5 6X'7'R4 6!4] 6:e6^P#[EBM #HA%DGH7D6D # 4# *  !"#$%&'()*+,-./012*3>5h]T]]M YUFhop?F>+?FoPp?Fsqє?PM]uM`^?u#t  EF't!"UY%'~P*%4'?"U}2N贁Nk?@dM#&A b(+++&Y}/R/`$B8?V#bo4z @/'/5N }11/"`?Copyrig t(Uc 09uM0c0os0If21r0*Aa0i0n AUlE@ 8sIBe@e0v[@d{"1U%4e,3 7D6%01wEPFXGG' 0U4RD6b1I FJlY)U4FX14#A(!L15?Fd4Mf0:O$}#?)߰=^!8U}?Fz d@ lxrNj$!la.PX7h3URWa?3am:"~vn*&^x%>awE:}JC4` k|| a(d08gh_oo)o{T#______Hv?F d1a|3`[]w|c?7oHv.?FMFa|S3w|\£|oHvJKmc~ea|{ oHv(sna|;6n5coMA}#5G~QUHv>Η4?F@va|+|w|JCMHv,f V3Sa|p )zyBr7椏Hv]DWrGsɾa|k eą﫚l2 +7a|QWgQ-<̾э_q}Ra&8JHvˁ?F~廽a|/ͼhzyoχڡHvkT?FS;a|3zy? HvJbS6̨6a|ω9?OHvS1Ɇb._ja|^~_\@{}R -?Qc&Wa#UwvnnE>wm|<jBmm*'Waɱ`nk}.V̲o~'݌ssK/8}߯mEKx6iBJP1 UB}K^~o>P/6i@A}///* ! %/7/I/[/m//&A2mo~Kf΍4D2=y|Bm;m`(=w}zNmWUȣ(K\S}|t|d\L|L+YlQn0T%%$ċ^QUHQOOOO& AOSOeOwOOO&놮 G3!(E> H}OĹ[DnXXt' U!2h`Xn b_ Pg3~qP3fbAu~R)umooo& ]oooooo|o&g-N+_!eW?1 il}1HiDYH'rg|xMMXjQ%f|ɒ= %;vro]ݓinÞ]S( & yӏ&f@e!`¥ G8M Z³绾hv0W5gS1a8|QXSbW~7mȧՠ~=߬lB|y:߾nuTѺ'9& ˯ݯﯾ+A 7>M%- q?j j dEuk uQ9)?FAަIif[WvpQ鐲9 =~OIѮ]xz~êJ 1CU& E`=U4 Xw׵\ o5|݄ erKv7(\2Έf!9"pϼRѡ{ R}\ $”ގ#q[\ƧGJ Q\BĪ&iZf}#Xr_N|1i"@w\y =~X@/n????Te/?#?5?G?Y?3㒾?Fu}A{ZϹ?$=l?Fߣ؝@鴡s! U/q2 y#iwjQ rt}\\ǟ~nxBt@fP@Q*(g˼ߙ`]N1YY͓___Z_-_?_Q_c_u_՜t?F#|IΝ} C)u18h6o]?F\ v!ۊ5,'pm~ "߹3*_CRڟ8Yq_S˼_}5#7o7I[m ռwc?F䱹!? Uܟ*d4IM}l+m/r?F!zxy4GXM g1rH-odip'ʽh:PF}LHM\БqWČMQyS:UŸԟSewZ=x?FrJS=W+}| 8*_ޛU z0~+WzBJ/pVD W| 2'ؚ5F] 0+!31rߠ߲߯450i;h4MLTJMUs`I}$z8.=u2fC}1 O2V{uf`5MEp4}o7o9lM* g`S}+M?=;??1O'9K&)E_i) QiğuPmk6nɣ{j}Q}L]_h?>nj^$oVLɓ߱ mkVo@0Vp > vCu!9QAdmLG~ >Qo1/C/U/g/V/ /T7} 7վkEA*w}+% B`;$gK*"V2w@96קM-nvSiF!nLLgqNy4~ QUcqÍZS)^MO_OqOO-v??OO'O|9O F1'ߢM UPiPK>´}]"}9'uH0 A5]mI;;#ǧ66hx~r JQa~&qrMi~߭Uȴ߯E~߻ io{oooI_ oo1oCo|Uo$C$g;#,b2?.x}CwMLW1b[̵yx8ج`}eM}oJjRݣS62`M\|"XB}B+<5asݴf);M_|q7;ӱ,_|#Vx~ C.t 1_!; }i틺%~?3]9r?Fn?59?趒;>L]ߛ^_u^VQ$2Ս޻}ǸПƯد3EWi{7TS@f𿟜L)l\m߇WMw~쾟K,:֑Zь?FSƊl\?i@9 <>̩#Տߘ]l\ s?BZBDȕ݇k2PU}l\q3h^ ϞOasυϗϩS#ѣn>x8Bި9ڞMh #sUx=BT.< @?F %婢?2#.5>_9K 罰5L]!g6L}MJA?**=k}1TӦy?F'sO=/ge [A\{9M?F>Y=k X*e S(N $9-g[?ow-$.Tzv )\$?3߇Nx'fl\|z $M}~' /IpLֵ?F˦6k]zFq&>}w^YM|Ԅ?F<']?0#Jh#h /xIkHw1]ǥK]P|G>q2:|@_3Y 1I l\"_@=H?` @/?$?6?H?U //////1bJx?FL!E#ԇ}Se γybE?FcN} Ɗx3c }CRD80}>~^ϝ{ª\3s./M?F^Y⣝iϟʁi{s_4I[H?FJ8oxJJϑ+ϊUϰʉhFq$ >LT ]~~[4xYpŬ0Ex}LYTfxy."ooo#5yP?Fឍ~QTJZvW9 ?FڡGSۈrQ5|橁5ǤˑIGYh($Qw~5tjl@fxF# -?Qy?FOT ʼn@-1ş9Ыva*S?FR?fB V1?ݰف]沛tk{Τ/Yv{ʙޅ݉}1MZѰb$%7I[my -}\SU=cx|[)T*Oў}|d.KnޟR{nIxߒΫ}@B j-2YpM:H`FZT=e-B~yh,?/߯}%/ASew߉ߞyf}x0 Q>zsg=ڟUbw;IS ڀ>3LI~ goSy?~wib`W?YM7+mɼ7V9H3pvsSs/M/}~iV9@gM!&K]oZBdPeF]ʼY mV6| ig5 ח9]#.Sp_xuT&~?Ftm*ԍ`_rYHp O~![ިKmU|ױ.jriwo /F'gy|yrqFYH?߁h}FUϯz5ꞵ,WCˑB`Ԟ`H}sU2w~xoӄڭfDjt! J Hna)(J6w~nv؜p oo1oCo)______ֹ2JI`H~Ͱ f tɾ4EwߗMMpW[̵yط]?F3,棣SLLh ?mu`Xr}Q͘~?Dp);M_ *ֹci+!c) x+Ҳ{&3oٶ[i?FqTƊF,]H'^ <Əٶ H;z0=}F,XQʮ}7$zLٶzTǬGWF,4$ZgsRF{^ j4Z>~[T-G^8?Fz^.H ~L?%aasS Xޟno#ά:HTFF}6CF J'bO[;| ~^-!3EWiKYYx4?F -t[|L?r69BMj-1(?FN^4>Nsz9ET~.Q^=#94o4>ݠ_J? H~&U7`dU \(5Vm H FۄܱykyU} қh?nBN 2DV3ïկ IQY1Q( &&] 6P^JY8}Soj11Qً;]n;P^u񟷱g_ G!.H?Fh\<;Qq7B1b;Y|#Kk{[oY??cgCo;M_q4' IsЪN =͐\h \[Vmq:Dyxj?FYi&?Gbx)U͖֒z/^bA/ F5f;d#\EH{=Xj|8%5 1C Id匽 轫 (Z-q͜DD D58|UBn FxV5?F+A玕R\ȚE Fk$!2 +\HC.P?%ҧnP A @6D .THD: # h0>Th]]9 MP IAUFOѬ?FA^?FMOh?F9d*C?P68R?>$y> n JuM{` ?e ;  Su*Jt'  q3 Pmta{Z_ebN3.JvH?zhǿUv?vh e:Z}.b%{>JU2N?贁N[?)@M#J&A@wbI(bW)U+U+U&J π(<!lJ ?%P?AO"d+b Y)(u/%B #A1A15 `?Co}p rigTwt c)x0]2`09x0Mp0]cn0osh0fv2Rg1rj01av0ih0Wn.x0 l0U n8s2e0en05v0d0:1PY>4#-#,M3 M7#(p0b59 DFXGdG'/2WUA;F%!$a dF$&#l,&}>UhET ]]9 M qAUFr ?F l?F?Fg!ِ3u?P6 L}>   h,(JuM`l? Ek"k6HuZJtW  7OttG97i;y4v'ʚc>JU #<H!-A?^% ?AJb^ @bbbz #"b#$"b$J 2zGz?<@M7#J&(&$%" ;'"*@!EA#5 hy<=A#B115 `?CopyrigT}tk(c)kW20@9kM@]c@os0fBR1r05Aa@i0Wn.k ] lP@U HsTBe(@e@5vf@dH@/"148#-,?3 7#9 i b59 6XGG'0U?RF!y$0 F ZlJ]Uhz 1hy1!5(`A#FB1?F#)Q PV?d"cP΄ ťc(Mb(8"J! jo0o Cƣ8-$DqaE4d\b@d Kc;d .#8磵g.p~?FTHR?PV7 /!i q7ikWPV]DT#3 AMT 5AUFr ?F l?F?Fg!ِ3?P6 .6> JuM` ?IKu8Jt5  Otyt_G97iͅ;y4vʚIA>JU5 J#2zGz?@MJ/&A@bm#ztc a#b{(Wb)+&B#!!5 `?CopyrigTt (c) 0W2009 0M0]c0os f 2R!r 61a 0i n. 0 AUlQ0 8sU2e)0e0vg0dI0!$[#8"8"?6 ?A$/%-/# '6&iie59 &XG}'0UBi6!40I iF}JlJ(>UhiI !!AaR4 Rx J:j]ݿb~)_.S buBqVy3'?F(ËE?P,a,[ /A1YQYV4hA.xeAR +3l4xa@ R#Bsoogrb5%UGD  3 h0TdYYB UFW)eK?FI{Ä?F9n;*Y?FI_tnw?P} tf  f0 D Xu` ?00DDXXl)uvts  < %t"F0" %'ӿp %,'qdX¤U!!'"`?CopyrigPt (c) 2\09 M c oKs f"!r !a i n. Al0 (s 2e e v0d0s"#S$|#B-#l# '?Rw=#&|#466 2|$Z##0U23@{& ^5 FX`7Th]]9 M]AUF?FMHR  h$ JuM` ? 3YY.KuHJtE  0oI~$tq/袋[Dmk.IQ>JU2N贁NK[?<@M#J+&A@b](bk)i+i+i&Jy%#7 ?3#) ?Ac"i+h//%*B%#U1U15 `?Cop rigTt (c)02`090M0c0o%s|0f2{1r~01ua0i|0n.0_ Al0 8Us2e0e0v0 d0"N1YR4#--0" a7&%0bE9 XFX'xG'0UB&!$$a xFJlJ]Uhzs1Z!1(`%#FXxcӔ?F>D [TQ>Q) R "J:!l?FQXP\C\6m/m$BQYsZ_?FFt%7?F{hUuW{ ]3\+B MTT0TDiQ>8aQ4? /Ȟv/x i[? `RT*?D`@ S <oor5%QEUVV__ <#<>e__f{,Vxh`d3rAg 4 ccgd$ymAv AGuPHD: H h4>T]]9 MJUFoc?F24ͷ?F7?FXPq?P6 >JuM` ^?MuJt  ~27It=W]tEIURF]IlGEw|>2N/Nk?<@MJA@gbb ) +R + &J[_ffy) ?/3)"B5 !!5 g`?CopyrigTt (c)6020B0960M.0c,0oKs&0f42%1r(0a1a40i&0n.60 Al|0 ,8s2eT0e,0v0dt0!P$-/ 3  7|&&iie%9 &X7"G'0UkB|&!$%0 "F6JlJAUhh71!!T $#< $M DRkVJ:+;5jB\aQZS kBձQ3aZ9]UYQQU%U2VZ?9=_30B_ZK&DiaX52+_=U"rA $cHD: H h4>T]]9 MJUFoc?F24ͷ?F7?FXPq?P6 >JuM` ^?MuJt  ~27It=W]tEIURF]IlGEw|>5 J2zGzKt?<@MJA@gb%(b3)1+1+T1&B!!5 g`?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al 0 (s2e e v 0d0!$)[&`h4|9 ?A(:/[)-#K '6i@ie<59 X7"G'0UkB6!40 "F6JlJ(>Uh"I !e1+!AaBc1 $<@ J:?+;5j:\YQ,RS kBձaQ3"U9]MYIQHD: H h4>T]]9 MJUFoc?FXP?F7?F+;5jq?P6 >JuM` ^?MuJt  ~27It=WE]tIURF]Il\tE#>5 J2z_Gzt?<@MJA@gb]%(b3)1+1+1&B !!5 g`?CopyrigTt (wc) 20 9 M c o%s f"!r !ua i n. _ Al 0 (Us2e e v 0 d0!H$[&h4|9 C?A:/[)Y-# '6iie<59 X7"G'0UkB6!40 "F6Jl*$>Uh @3 !Ie1+!a1 $<@ JU99YUQIYEQHD: H h4>T]]9 MJUFc?F24ͷ?F7?FXP㟸?Pn6 >JuM` ?uJt  ~o2It=W]tEZIRF^IlEw|>5 J2zGzt?)@MJA@gb%(1+b3)O+O&*B!!5 g`?CopyrigTt (c) 2U0 9 M c os f"!rԶ !a i n}. Al 0U (s2e e 5v 0d0! $![h4?6 ?A:/[)e-# ' 6iie<5(9 X7"G_'0UkB6Z!40 "FR6JlJ(>Uh"I !4e1+!ahBO $<1 J:#]Z9=_30:_RS &DQaQ3"U9=YYQMYIQUHLuD" # ;3h0TlaaBJ >UFE3kh?F3?F_T?FU Whu?P vN>uA` ?)u#>t  5@{It=W#H9IRj;Il廤#2zGzt?@9 >A@gbb )bJ )'+'&>yga?|& ? " +'+,5'UN!!g`?Cop] rigXt (c),02d09,0M$0c."0os0f*21r0W1a*0i0n.,0 Alr0 "8sv2eJ0ej"0v0dj0!Ea$-X3 7|&$0fE 6X7G/'0UaB|&%!$e F,J l>aUl~1#1!jQ?FN @ ?[ql#<3ٽECUS(: 9[#UT eW3wU( R@SRQY?I?dXE ^ߑC8_J_ dX _2_=oV_D#OOOOO _vVFmR^\j:=pd_ofI Њ?F0떜lZ$&Оl ?:Ynx3~ ,az kXao41}gK}YWq`m0BTf|UH luD( " #  #A h]0T]]JMUF:%?F6emP?Fiz9vJ?P N&&M %4&U8HCM 9 / 9 / 9 /9/9CWW W WuM` ?% &W ">"R'&j'&~'&'&'&;&SuQ)t  bD%t!2 F_%7J">67šʿ~ U2zGzK?@Mk3{6A@n4b3z0312b808;6Tu3 A A2`?Copyrigxt c)W@209W@MO@c.M@osG@fUBFArI@AaU@iG@n.W@ AlTW@NGsBeu@eM@5v@d@c2AQ}Dl3R[u3-A B?V?4 ?E-Xu3,C ,GVl5O@(E ԕVXgW|2'0UR)V!-TA VZMU@QjQ1i81g\a?F;|~4P~G #W.?a4Hd3.䛵?Fp _`9},jX?F>@ ]3?iFS_lUӧ:ޜ !hރe#ģ[ Q " i!$a4BH:}k_wg0wEuf.29]~4pO˯ô>P|o!S#_`1y;6}wfl{o@opoQQ$Ug@EiE{iooeD?FD ~a]#Q`7\X!?Fw^?FrY?Fo2?P'DT! /3Q9 մ7'||U|6ys r #, Jދ]? $oe?Ň41:/ B"tŇrf5EU>PbtItnɟ ^HY*Gą 2DhaspA]鯱ï ֯z %7I[mOb罞О )E@ͿXP-?;a+ >L &WEW thqϧ"mϏ] 0BTfߪߘW4. Vwp,> i\_XT&8JZ;?FT}:/?$qxE~yE?FA5g`u/V/ 123\?FrMT/?d3~~?FEa,蕱/?CZ@6 De //*/]0T]]JUFp>)/Ep?F2왵??F ɏD,"7?P uM` ?j`fpu#zAtw tnٳ \b "OMG2N贿Nk?@dM#%&A2 bW(be)Jr+r+r&*!ܿ!`?Copy_rigt_(c)2W09M c os f"!r !1a i n}. Al<0U (s@2e0e 5vR0d40 "!3]$#Ry"&#4?6 Q?]"W*s*;'-X# '6% h5 RFX$GrG'0UBű6!4 rFJlU!h#'A(:FYSocg0vr p_y $(4!Z[7?FL30pS a۫YQ?\I`X3U5 Tީ?FʨQYC\f"qoY5U%?Fq$B\F\bJFXz___\Q# __1_C_U_g_VNx?FM=\>ۆ\34=(_V5T?F}\#R)\b@QoVr]?Fc߰#Z}L \$6ԡyqm0:?F u\.Iſ\)?oUU/ASewV?FN,]\\wzV]~?F@(r\F-~Ȩ\(p|ymIxg?F[j| 7+*y\= qmh?Y?FYgR\Aa\ulӏɟ۟UY=Oas!KC4?F}7PM\8HJ|\ HNVh?Fwi@­\A>xAV%+j7ٽ}#E~\I&)5eF=s '7["mSpуdĿֿRtYk}Ȏ~+]~nn)`]͟Cc֦ъ]#.?FPZk+N:2\y_@W߁2ʞ54}d\e҉qm}&?FUfK­thV\9\ލQak}ߏߡ߳~VZwۿ4&b-} ߜ.c|~kd$~Y""A6\lJ(i0(sVTloV?F} \ǀ_?$qmR'%"2?D= bY\r6yލ 2 QYI0`鎍1/ 48Ve[bV$?Fi뭩1?0pS!K;?F"~[:{Q~b?S)qm#|W-?FG~b .f-?R[Ϡ ލ /*/fɾw2Op>)/Ep?Fd(_a9~ {F!_ ~`2DMz2m^Gm}>IލPobotoj ___o o2o̺m@UP1-JO}^^fon l?FSƊ1̓ ;]\OogMNE0A`^?~uݟ$E~ɰ~%^~ =7}ÀMuҳ1?4tx鑡?3:\ `r $6Hj(i?F ڷ1^̄ZϭSԢ%^XP$֧zw]<<E?F6 "Rf2 =s 7Pq=[~1̇1%]?F | .@Rdc)Jl pe},X|4]-Huvzxډj?FwJ%H]ǕDG7t{GtY~Ǔ.PH#T~]?9+T =~B3~-L /=m$+)Hϰʛ&8J\n|JoWx#0z ),?5Uz!xz?Vsf&; `ߌ 猖gߺ8˺A}2!¹diqBZ$@S =u V N,.zu~6J1&ߴEWi{f&~c?Fۿ>4U, }J\1?Fξ9rзX=YR Qm#07q X; I6 =4T37 xU,=A S)d= Yqas{%?Fyx{wmQ7Z6n4Nl]?F7c2Gsj3j뙚;(N8 i<=ۇ4W-ɫ-9)]-?F`x}SoA뙳x@///?"?Rz//////xmYԒ?F0ufx)r蜅وWjFQ1?GUF MDe9gsaEo2I^~T@s@܂]Y/|sMv۶ IY?}lD?B9kP/ߊ.x/ONϋaz`3O__)_;_uOOOOOOxHOB?Fi$0%oAlOo-M_k"W?F[y\x_ ]g蜢, )+b77bћ9}DxZ]Qey=zFVjx/I bvdRo$6HZooooo  p? {,Բ5~}j8>6zB?FӺ ~|g=)s-?F8H~ݖ}T M?lfa=Kh݁5};p/"_f/tl 8at""4FXj| ߬XNT'(/E9?&I/ i {.PvwHkOQ qӟĶO@ߒ#'ߛ[w̜zfdm ___ooŅp______DAL4?FGww̆Ia{VU$oEFem(5tc(yÂ;UKG whsi}2Ca6o? ?F20?æmEyo6\iq,"4ߤsZ4?F"EwH | QUY% (?FZ <#a;:wPID8 n7 ~f* /e'Mǃac5'?Fԫ|>ka?I}|b:QH,>P גT_HZ> )6s ;gLjOhLAݨF]Im #1 ^OB UFv ~>dbo@+xco8sGU_I.p Pb bZ |b֬ >b 1cE hؒc "cϹ Lc ѻc 8D hcȔ0_4 B2v d&/#/5/G/Y/k/}//////// ??1?C?U?g?y???????? OO-O?OQOcOuOOOOOOOO__)_;_M___q________oo%o7oIo[omooooooooo!3EWi{ /ASewD ԁ8G bҏ+=Oas͟ߟ'9KJ Xs8Lh тN  (     o"HA ÄYk PUFDfP h TPYYhUFL&d2?F`0 ?Fx<F BP(c?P? w<lh -^&88Kh;_ 8srY3 8 83 8 838838 &8&381&8E&38Y&8m&38&d*8&38&8&8&]; 63!8!6#8563$8I6&8]63'8q6(86d2)86*8f6+86,8f6-86.8fF/8F08f/F18CF28fWF38kF48fF58F6U789;8fF<8F=8&F>8 V;fV@83VB8fGVC8[VE8boV;VG8ȗVRH8VI8VJ8VK8VL8fM8fN8-fO`8Af;UfQ8fifR8}fS8ffT8fUUVWXZ8ff[8f\8f v]8v^8f1v_8Eva8fYvb8mvd8fve8vf8Hvrg8vQ;vi8vj8k8l8+m8?n8So8gp8{q8r8s8tuvwy8z8{8|8/}8C~8W8k8Ѕ q  0A`Ap4icbptpo\ evq !aE  -QuYda|z !T3Q_`|]1n@` X?W&&.11 T_?xpxx p  pxp%{wxw?w _w xwOw  p JwwxwpxbL&d2鿃`0 +?? {ҿ ȿUGDF # hz8T YY# B{UFL&d2?F`0 ?P} [u`ho?u#   @B<66D^nY^-] [ [ [ [[[&7^"&[6&[J&[^&]r&[&^&[&d^&[&[&[&[6[&6[:6[N6h^b6![v6"[6#[6$[6%[6&[6'[6([F)[F*[*F+[>F,[RF-[fF.[zF/[F0[F1[F2[F3[F4[F5[V6[V7[.V]_BV9[VV:[jV;[~V<[V=[V>[V?[V@[VA[VB[ fC[f^2fEL[FfF[Zf^nfH[fI[fJ[fK[fL[fM[fN[fO[v^"vQ[6vR[JvS[^vT[rvU[vV[vW[vX[vY[vZ[v[[v\[][&^[:_[N`[ba[vb[c[d[e[Ɔf[چg[Q^i[j[*k[>l[Rm[fn[zo[p[q[r[ʖs[ޖt[u[v[w[.x[By[Vz[j{[~|[}[~[[Φ[[[ ު-2<ZZnn&&"&"&6&6&J&J&^&^&r& r&&&<&U&&&&U&&&&U&&66U&6&6:6:6UN6N6b6b6Uv6v666U6666U6666U66FFUFF*F*FU>F>FRFRFUfFfFzFzFUFFFFUFFFFUFFFFUVVVVU.V.VBVBVUVVVVjVjVU~V~VVVUVVVVUVVVVUVV f fUff2f2fUFfFfZfZfUnfnfffUffffUffffUffffUvv"v"vU6v6vJvJvU^v^vrvrvUvvvvUvvvvUvvvvUvvU&&::UNNbbUvvUUƆƆچچUU**U>>RRUffzzUUʖʖUޖޖUU..BBUVVjjU~~UUΦΦU  $BWW.(%6QDUQ?S>S3Q?RdV"qwX[?( 8RLS`S~SSSSıSرS챔SBRS(Sv|Hv|Rv|\v|fv @ 4񸣢vvy|v|v|v|v|v|v|v-|A|U|U$$}|.|8|V|`|j |t|~1|E|Y|mx؆؆|| "|!"|5"| ]"|q"|("|<"|F" |P"ZZ"|d"|n92|M2|a2|u2|2|2|2|Ȗ2|Җ21@1 AQB|eB|"yB|,B|6B|@B`|TB|^ދQUVVVVUVVVVV SRVfff&f0f :fDfNfSRbfUlfvfffUffffUffffUfffvU vv v*vU4v>vHvRvU\vfvpvzvUvvvvUvvvvUvvvvUvU$.8BULV`jUt~UUĆΆ؆U U(2U<FPZUdnxUUȖҖUܖU"U,6@JUT^h "UȦUܦb&l&U&,@UTh|U&&&&U&̶U046UDXR6lUU66U*>URfz6UFFF$FUUjF.UBFVjU~UFFU(1H1R1\1f1p1z1Ä1Î1Ø1â1ì1ö11111111AAA$A.A8ABALAð÷jAtA~AÈAÒAÜAæAðAúAAAAAAAQ QQQ(Q2QBU=Us/?Se?SU?SѲ?SđPÿ@qP?@R?TV?ܲu`W@jqRu`a@r URfchqb?SuLiup`u`@բѠ+u`ѓb&Y faH1crgg`Ÿ /"(úfiic` dFpaMvaf&afl,s  a?5 %` pq q wu`Vis_PR Y. hm!#5N 93N"+b`?Copyr gt  c)M20Y9MM cCo"o Lÿ҆u` ?u~pQ(-DT! @ p@U au@`ba@? ìҀ@^0FH%@Q.FӀOռB\i@?yQ/FQd@ߐRrf i`R$pnst*oM Pe]ف p ջ bmCuE``-u5@`^0aՁ^0d qn pN<udRE %EЎ%$-+h 0JTlaaM>UFN&d2?F`0 ?F|G?Fm]ri?P U>tA`  M?t q۠ FZ>u hu!s7YaMJMRKm? ?M>bA@bKbmbz #e8 ۢ =# b#2O[(ta k-3thk-![(}/tГ/w t/ t/w t/ t?w t&?t;: Ne F;,";&a#68;R;W *P>B m42A2A`?CopyrigXt _(c)i@2dW09i@Ma@c_@osY@fgBXAr[@Aag@iY@nU.i@ 0l@ _HUsBe@e_@v@-d@\2lH#"p# @K4JUlQQQQPA!@@2Ruݯ?F#& hnGHge) ]NUq Z?FG ߄\.r\oMGhEUKar?F3ojp0m]-Eά\?T\iEUe^?F`1<<0mN[ʰ~\on\i^*S__` 5C3\i__B_TFTA'VW@qqx_[QQ JR! J!4J78 h !a!hE!lU]T T!"#$%T__o{?FlӖ|н1|Ϥo} rhQя Me]otv۲ǀFRH0ύ|dr٣|WӍ[Smp"pʍ|q5JK tvp?FZEoZɍ| 9EPڣ||lbtvX9|"@G!/ ւ?F9|H&3|?<=$_4F+\>30m_d 5\i`U0m~ !Qx$(gN/ ?P0wf>nZ?l? r?;{|{*K1?Fݿ K 1wz_ 9*S?FAcM@=orOyg?_P|* /$?F#K i >捵JLJ=|*zJ@w/d;ЍuI@ͺhˏ4pHD: )&# T=h0>Th]]9 Q BUFܷqP?Fԁ43a?F7??FtYOȻ?P Bt`  XM6 ?t׻4n%O__Bu aquo7>KJASTfw?X ?Az@bbb! ( 6f )  '+ ߈?I-Z#g!z A Qu +%/,8)E!'+ k(?r+o?(a4 8) E"#{ #BstG8tU: Ba L>2?!88;D;68?5;D; tj>8LALA1 `?CopyrigTt (c)@2`09@M{@c.y@oss@fBrAru@Aa@is@n.@ 0l@ yHsBe@ey@vZ@d@v2h<M#l#@ M@?4>UhjA6Q>1| L`Fkdj]J}vMjR]M 6)fMB@Wa\ k_稇avCe=ESeR9Y? l`gESeFeabkod iSQޗh~??5@+ c;Ꞗi"2_U3rA/04sCHD: )&# T=h0>Th]]9 Q BUFdHKJAUVJp?X ?Awz@bbb! ( "f Փ'+ ' qq?z A  +/.&68))E! '+ go?W-sU!n*a4 8) "u#{ u#D!st?8tM: Bav L62?!08;<;60?5;<; tb>{8DADA1 `?CopyrigTt (c){@2`09{@Ms@c.q@osk@fyBjArm@Aay@ik@n.{@ 0l@ qHsBe@eq@vZ@d@n2h<M#l#@ M@?]UhzbA.QR61b L` KdjMaQ  6fM{"@Ftnq\[3K_,7e5EGe<\ֽE?Nf[ NA_qd7eEGec6i\m j'f܋h2_UB3rA'04msCHD: )&# T=h0>Th]]9 Q BUF)8/?FFT?F!/$?Fᱝ̻?P Bt`  vNC?t|¢ϛT H0Bu auo7 >JTA0f88v?WYALv@z bbb!'n 6 % )! ! ,+ <?' o?z #a47% =) J""#K#{% (+ ( tQ#BXYщ?A> ?A "+(/+/=/O/a!y:5rl/@ sU10( /???? "?0<2?M{!b 1/Ĝ/*%,"t:"t>TQQ'@`?CopyrigTt (c)FP2`09FPM>PcTh]]9 PB IAUFJ1>?F}?FF(e?F=PFo?P t`  0!?tj$h5q+ tЖZu Mauo8 >    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 ,p )l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ s"?(a490 9_b!#{t0#tN8tϻ: Ua BL2$18KE;F?VEK]; t>B 4AA0`?CopyrigTt _(c)@2`W09@M@c@os@fBAr@Qa@i@nU.@ @l/P HUs3RePe@vEP-d'P2h<M#bl# M/P?]Uhz@AQ1 L@3FO#۲?F?o2zP dj|aW{'8cUF:&x0?F?F?F_'qoO 0Yigull4aj?N~f0c~o+ fEee?F<'?F@]?FwF%ޕol}dQ3ll BXl귺m|?bBhaU~e`ba`?FV ?F?Th ofl?PI3qoikeðl8` |GT?heFnF$OĒ?F o* leowk~y{f~tGg˂a ,8b1;MHD: )&# ;h0>Th]]9 PB IAUFGF?FEs?F+\(?F~@ t?P t`  9`Ik?t{ͻIu -ZrqKZu Mauo8 >    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 ,p )l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ s"?(a40 9 .*2!#{0:#t8'tϻ:Ua L2$18K;F?VEK.; t>B4AA0`?CopyrigTt (c)@2`09@M@c@oKs@fBAr@Qa@i@n.@ @l/P Hs3RePe@vEPd'P2hb<M#l1# M/P?]UhzAQ1 L@3FMbX9?F4ҫP dj}ah8cUF[~K?F|D?F+Xc?F&PRcGoO 0YiM+FllZaj}0%|f0c̭ fEe.V?Fȿ̅)`oSt?F?(X:olGGTll .Xl{e{|rww@haUe:&x0?F%Clw?FAz?F 1vņflux1qoiFA(]`t߼ |~Th]]9 PB IAUFGF?F\Dֳ?F+\(?F~@ t?P t`  9`Ik?t%h2tMu -ZrqKZu Mauo8 >    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 ,p )l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ s"?(a40 9 .*2!#{0:#t8'tϻ:Ua L2$18K;F?VEK.; t>B4AA0`?CopyrigTt (c)@2`09@M@c@oKs@fBAr@Qa@i@n.@ @l/P Hs3RePe@vEPd'P2hb<M#l1# M/P?]UhzAQ1 L@3FMbX9?F4ҫP dj}ah8cUF[~K?F|D?F+Xc?F&PRcGoO 0YiM+FllZaj}0%|f0c̭ fEe.V?Fȿ̅)`oSt?F?(X:olGGTll .Xl{e{|rww@haUe:&x0?F%Clw?FAz?F 1vņflux1qoiFA(]`t߼ |~Th]]9 PB IAUFXIn?FLw¾?F+\(?F-ku?P t`  -k?tZ߅BTu -CmoLZu Mauo8 >    PEJڍU[\/(?&. ?AbbY!z@Ae bbCt c(a4b  b(h#{ h#΍t(tI*#0f88vb.#i L5<1v(&$7/(D%"6/5;0( t.*B#11`?CopyrigTt] c).@2`W09.@M&@c$@os@f,BAr @YAa,@i@n}..@ Alt@U $HsxBeL@e$@v@dl@"h<M#l# Mt@?]UhzAA!J@#FMbX9?F$x0OԛP dj}תa4(SUF[~K?FE?FSc?F?#oO 0YM+Fӱ\*aj,.}a$?# XEU"n?F +?FbEd?F v<olTBJ\LMYBltavXlp@XEUv/?Fpvw;pg?F $hއvol/AD0qYJg ַBl)$ԞXlD?B:XU^F.fّPKk^Rl_[Ei1GAf`dSOq+a,(bvHD: )&# ;h0>Th]]9 PB IAUFXIn?F(?F+\(?F-ku?P t`  -k?t7/;3bu -+CmoLZu Mauo8>    PEJڍU[\/(?&. ?AbbY!z@Ae bbCt c(a4b  # b(h#{ h#΍t(tI*#0f88vb.#i L1<1v(&$7/(D%"6/5;0( t.*B#11`?CopyrigTt] c).@2`W09.@M&@c$@os@f,BAr @YAa,@i@n}..@ Alt@U $HsxBeL@e$@v@dl@"h<M#l# Mt@?]UhzAA!J@#FMbX9?F%x0OԛP dj}תa4(SUF[~K?FE?Fdc?F,?#oO 0YM+Fӱ\*aj ,.}a?# XEU"n?F{ +?F(%/Nd?F<olTBJ\MYBlU{XlpDc@XEUv/vw;pg?F^$hއ?Fvol/AD0qYf ַBls$ԞXl+?B:XU^F.fّPyKk^Rl_[Ei1GAf`dSOq+a,(bvHD: )&# T=h0>Th]]9 Q BUF贷F$?Ft\@?F\HRq?FƯK7?P Bt`  x#?tK#ll$nZVBu auo7>JA]^'? ?Az@b ( 6f  )ϓb= + _? ' 88o?z A s +=  /)/;/M$[+["-j!Q U1[!x(ar4 ) "'}# }#BtΜQ8t_:Ba~ LH2!B8;N;6B?5;.N; tt>8VAVA `?CopyrigTt (c)@2`09@M@c@oKs}@fB|Ar@Aa@i}@n.@ 0l@ HsBe@e@v@d@2hb<M#l1# M@?4>UhuQuQPtA@Qj LZFχϰ 7j bL\2] 6R1bMB:MbPdc Ɵmdb`GeGEWe$oZ\aibvIGeU@Vϰ+@?F23<~pk_xu jlTh]]9 Q BUF#/?FKGY?F\HRq?FƯK7?P Bt`  ~B?tIH#ll$nZVBu acuo77AJA]^'? ?Az@b ( 6f  )ϓb= + _? ' 88o?z A s +=  /)/;/M$[+["-j!Q U1[!x(ar4 )] "'}#{t }#BtNQ8t_:Ba~ PLH2!B8;N;Q6B?5;N; tt>8VAVA `?CopyrigTt (c)@2`09@M@c@o%s}@fB|Ar@Aua@i}@n.@U 0l@ HsBUe@e@v@d@ 2h<M#l# MT@?4>UhuQuQtA(@QH1j LZFهgϰ 7j bL\G6] 6S-fMB:MbPdc mdb`GeGEWe$oˏZ\ai?bvIGeUWeVϰ+@?Vpk_xu j aGeWe _ooh2K]u:3rA 4s2HD: )&# T=h0>Th]]9 Q BUF/ ֛9?FD6Hr?F\HRq?FƯK7?P Bt`   a1?t -_9#ll$nZVBu auo7>JA]^'? ?Az@b ( 6f  )ϓb= + _? ' 88o?z A s +=  /)/;/M$[+["-j!Q U1[!x(ar4 )] "'}#{t }#BtNQ8t_:Ba~ PLH2!B8;N;Q6B?5;N; tt>8VAVA `?CopyrigTt (c)@2`09@M@c@o%s}@fB|Ar@Aua@i}@n.@U 0l@ HsBUe@e@v@d@ 2h<M#l# MT@?4>UhuQuQtA(@QH1j LZFهgϰ 7j bL\] 6-fMB:MbPdc Ɵmdb`GeGEWenZ\aiavIGeUWeVϰ+@?Vpk_xu j aGe@We_ooh2Kt]u3rA 4s2HD: )&# T=h0>Th]]9 Q BUF[@#?F\O?Fo?FƯK7?P Bt`  ?tJ8Xj$nZVBu auo7>JA]^'? ?Az@b ( 6f  )ϓb= + _? ' 88o?z A s +=  /)/;/M$[+["-j!Q U1[!x(ar4 )] "'}#{t }#BtNQ8t_:Ba~ PLH2!B8;N;Q6B?5;N; tt>8VAVA `?CopyrigTt>(cu)>2`09>uM@c@os}@IfB|Ar@Aa@]i}@n.> 0Ul@ HsBe@e@v@d@B2h,<M#l# M@?U4>UhuQuQtAJ@QH1j LZFهϰ 7j bL\] 6-fMB:ʿMbPdc 2Ngodb`GeGEWe$oZ\aibvIGeUWe4?Vpku j aGeWe_ooh2K]u3rA 4s2HD: )&# ;h0>Th]]9 PB IAUF?FË.5?FQ?F?P t`  ?{R   ] EJ]_DRb(?&. ?Az@bY(e 6f h )ϓb k+ _?Z'e 88o?ze Ae s[+ h g/y//$# L:5 /sUK1*a4 9 2(E#{ #t8tϤ:U a L2T18K;6Ԉ?@EK; tͺ>B40AA0`?CopyrigTwt c)@]2`09@M@]c@os@fBRAr@Aa@i@Wn.@ 0lPU HsRe@e@v/PdP2h<M#l#A MP? <>Uh$QQ(]A(Q1 LZ3;'xP 7jbbFbL7a 6{fM8cUFnDdTh]]9 PB IAUF4{"?F=N?FQ?F?P t`  ^}W;o?tQxČ( 뾅@l* 9u auo8>   ] EJ]_DRb(?&. ?Az@bY(e 6f h )ϓb k+ _?Z'e 88o?ze Ae s[+ h g/y//$# L:5 /sU"K1*a4 9 2(E#{ #t8tϤ:U a L2T18K;6Ԉ?@EK; tͺ>B40AA0`?CopyrigTwt c)@]2`09@M@]c@os@fBRAr@Aa@i@Wn.@ 0lPU HsRe@e@v/PdP2h<M#l#A MP? <>Uh$QQ(]A(Q1 LZ3;'xP 7jbbFbL7a 6{fM8(a?nDFF!@~qWoO 0dTc I\rdcd bjUkgaPbeEef"v?Fr6d?F?kĀqo`OivddlXr`tF0sK|٢jr3t!KU:G}?{]rLl} ]|q3xnTrg?F<ے7pooZgtfio,V|=] 5ve&1?Fpn?FTh]]9 PB IAUFGC<-?F f?FQ?F?P t`  L?RD)o?tC%)Č( 뾅@l* 9u auo8>   ] EJ]_DRb(?&. ?Az@bY(e 6f h )ϓb k+ _?Z'e 88o?ze Ae s[+ h g/y//$# L:5 /sU"K1*a4 9 2(#{ #st8tϥ:RUa L21*8K;6?@EK; tR>B4AA0`?CopyrigTt c)@2`09@M@c.@os@fBAr@Aa@i@n.@ 0lP HsRe@e@vZ/PdP2h<M#l# MP? < >Uh$QQ]AQ1 LZ3;'xP 7jbUbFb7a 6{fM8cUFnDFK!@?FDqWoO 0dTc I\addǼbjUkgabeE(aFjv?Fr6d?FkĀq o`Oi^j^r`t0sKÊ#|pr9t!KU:M}{]r,Ll}]|9xLufTrg?F<ے7vodObdcZgtfi,V #|=c ;vLu&1?Fpn?FTh]]9 PB IAUFĊ?F$n6b?FQ?F?P t`  ro?t,Č( 뾅@l* 9u auo8dA d  ] EJ]_DRb(?&. ?Az@bY(e 6f h )ϓb k+ _?Z'e 88o?ze Ae s[+ h g/y//$# L:5 /sU"K1*a4 9 2(E#{ #t8tϤ:U a L2T18K;6Ԉ?@EK; tͺ>B40AA0`?CopyrigTwt c)@]2`09@M@]c@os@fBRAr@Aa@i@Wn.@ 0lPU HsRe@e@v/PdP2h<M#l#A MP? <>Uh$QQ(]A(Q1 LZ3;'xP 7jbbFbL7da 6{fM8(a?D +F2|>?FW@WoO 0j?rdcd bj{^WeabeEef"v?Fddd?F܃qo`OivddlXr`tuqE|E:jr3t!KU:G}{]rLl}]|q3xngqrg?F~pooZgt_ML|\ 5ve&1?FWf?F?#0b|[m낪 z'oǵ(|F$$!ayTh]]9 Q BUF贷F$?FlIJ?F\HRq?F#o˯Z?P Bt`  x#?tnZ/J#ll#VBu auo7>JTA0f88v?WYϳAjLv@z bbb!' 6Y % )! ! ,+ <?' o?z #a47% @& J"#K#({% (+ (G t#Beı?A>L ?A"&"&$/*8%,"t:"t>  A A6 `?CopyrigTt _(c)D@2`W09D@M<@c:@os4@fBB3Ar6@oAaB@i4@n}.D@ Al@U :HsBeb@e:@v@d@2h/1<M#l#@7? M@?(>Uh7E P+AA!{ L:F A7<6j% bRzg9<2 "\MbPdS mT W5U6ik0YaYvq 2HD: )&# T=h0>Th]]9 Q BUF#/?F ?F\HRq?Fn˯Z?P Bt`  ~B?t6#ll#VBu acuo7hAJTA0f88v?WYϳAjLv@z bbb!' 6Y % )! ! ,+ <?' o?z #a47% =) J"#K#({% (+ (G t#Beı?A>L ?A"&"&$/*8%,"t:"t>  A A6 `?CopyrigTt$(c)$2`09$M<@c:@o%s4@fBB3Ar6@oAuaB@i4@n.$_ Al@ :HUsBeb@e:@v@-d@2`h/1<M#l1#7? PM@?(>Uh7E +AA!{ L:F<F6j% bRzg9<2 "\7MbPdS mT W5UO?6ik0YaYvq 2HD: )&# T=h0>Th]]9 Q BUF/ ֛9?FT?F\HRq?Fn˯Z?P Bt`   a1?t#ll#VBu auo7>JTA0f88v?WYϳAjLv@z bbb!' 6Y % )! ! ,+ <?' o?z #a47% =) J"#K#({% (+ (G t#Beı?A>L ?A"&"&$/*8%,"t:"t>  A A6 `?CopyrigTt _(c)D@2`W09D@M<@c:@os4@fBB3Ar6@oAaB@i4@n}.D@ Al@U :HsBeb@e:@v@d@2h/1<M#l#@7? M@?(>Uh7E P+AA!{ L:F6j% bT ü2 "\MbPdS mT W5UO6ik0YaYvq 2HD: )&# T=h0>Th]]9 Q BUF[@#?Flo]?Fo?Fn˯Z?P Bt`  ?tz6,JJ\8Xj#VBu acuo7AJTA0f88v?WYϳAjLv@z bbb!' 6Y % )! ! ,+ <?' o?z #a47% =) J"#K#({% (+ (G t#Beı?A>L ?A"&"&$/*8%,"t:"t>  A A6 `?CopyrigTt>(c)>2`09>M<@c:@o%s4@fBB3Ar6@oAuaB@i4@n.>_ Al@ :HUsBeb@e:@v@-d@2`h/1<M#l1#7? PM@?(>Uh7E +AA!{ L:F<F6j% bRzg9<2 "\ʩ7MbPdS 2NoT W5UO?6ik0YaYvq 2UHT5D B &# T>h0JTtiiM ENUFlQ?Fڋ?FPaW?F ru?P WNtQ` c͕.:7?tU)oni8;(\I2-nNuj mu){E0f88wv?AVQ Ӎ!@#b#m@b  0#  #W(3 (o+&T" #t#NĽ/?. ?M"&$a%$$,/>*L%i,T"tΞ*T"tR.R11#`?Copyrig`t (c)02l090M0c0os0f21r01a0i0n.0 Al@ 8sBe0e0v0@d@"Vt!X#xB #/ @T,UtE1UA-!@nZ pvm?S׮(%UQG@Y9"S\FkV5%UЗn@‹Pهϰ=\WQS\OXbiTQY%_7_I_[_DQOOOO__^̔ԍ?f Q́)f@vVP|?5^BlӿIY:6Xl?Ib ʏ܏EABTfxF\HRqCk?-q_WaW?ϰ+@"Bl!H,BXQnB)fFޖBoT[inJ\ۙgyAHD: )&# T=h0>Th]]9 Q BUFhY?FlIJ?F&1?F3(e?P Bt`  6n?tҝw~m4tMuVBu auo7>JAS`? ?Az@bbb! ( 6 )  '+ ߈?/I-Z#mg!z A " ././@/R+,g/y'sU1,ar4 )] "#{t #BtNg8tu:Ba PL^2!X8;d;Q6X?E;d; t͊>8lAlA `?CopyrigTt (c)@2`09@M@c@o%s@fBAr@Aua@i@n.@U 0l@ HsBUe@e@v@d@ 2h<M#l# MT@?4>UhQQA(VQ^1| LZFX} g 7j b2ɶGOR] 6SCfMB:ZMbXdc $I$I܍+d `2aa]Eme'la'iL.G]eU@9/$E?;FslAka,dHּgmeoo(oh2gyu3rA 4s2HD: )&# T=h0>Th]]9 Q BUFy?F.޺s?F&1?F3(e?P Bt`  7 ?tN]m4t_MuBu aquo7>KJAS`?X ?Az@bbb! ( 6f )  '+ ߈?I-Z#g!z A " ././@/R+g/y'sU1,a4 ) ."#{ :#Btg8tu:B@a L^2!X8;d;6X?E;d; Kt͊>8alAlA `?CopyrigTt (c)@2`09@M@c@os@fBAr@Aa@i@n.@ 0l@ HsBe@e@v@d@2hX<M#l # M@?4>UhQQAVQ^1| LZFX} 3 7j b2ɶOK] 6SCfMB:ZMbXdc $I$I܍+d 2aa]Emekla'i.]eU@;0$E?FTh]]9 Q BUF߹e?F4jߤ?F!?FTUUUɺ?P Bt`  ?tiqn= ףc?ckBu1 ,duon7>)JAUVJp? ?Awz@b_bb! (݉ " '+ ' qq?z A  +S/.&68))E! '+ g?uW-sUUn*a4 8) "u#{ u#D!tΜ?8tM:Bav L62?!08;<;60?5;.<; tb>{8DADA1 `?CopyrigTt (c){@2`09{@Ms@cq@oKsk@fyBjArm@Aay@ik@n.{@ 0l@ qHsBe@eq@v@d@n2hb<M#l1# M@? Uh,cQcQ] '1PbA.Q61b L`w"?FMDA dj? |m cuۡ'1 6!1fM{":F$3<6d kS=ѣ<n2{!5E[nLa vogaKeE[eV_@cbc g@]amr\GDž}iNu?FS%f|]tElFTh]]9 Q BUFtx?F/!?FTUUU?P Bt`  K_?t)C= ףc?cZBu auo7[>ʜJAUVJp? ?Awz@bbWb! ( 7 " '+ ' qq?z A  +/.&68))E! '+ g?W-sUUn*a4 8) ."u#{ {8aDADA1 `?CopyrigTt (c){@2`09{@Ms@cq@osk@fyBjArm@Aay@ik@n.{@ 0l@ qHsBe@eq@v@d@n2hX<M#l # M@? Uh,@cQcQ] '1bA.Q61b L`zw"?FDA dj O|m cuۡi'1 61fM{":F$3<6d kS=ѣ<n2{!5E[nLah vogaKeE[eV_cbPc g@]amr\Dž}iNu?FS%f|]tElF<2PhQp[" |"*`KeQitVl:qid?5hQ@J_nohU2t3rA 4n2HD: )&# T=h0>Th]]9 Q BUFiv?F{<?FU?F3z[j˺?P Bt`  y]?thS&XRBu ,duo7oAJAa^!? ?Az@bbb! (n 6  )  '+ g~X?I-Z#!g!z A " ,/,/>/P-[ן+g/y'"ي,a4 ) "!E#{ #Btg8tu:Ba L^2!X8;d;6X?Eu;d; t͊>)8lAlA `?CopyrigTt (c)@]2`09@M@]c@os@fBRAr@Aa@i@Wn.@ 0l@U HsBe@e@v@d@2h<M#l#A M@?8>UhoQQ]AJVQ^1| L@}?F! dj ٯla6?ztB: 7d /kyԷ&Dh]EWemkp+ɉ 5d}bGeUWeFBϰ+@ol0juMDhnMbX0j`(DhnC<o+o"<EgUoo6o9HD: )&# T=h0>Th]]9 Q BUFT1#E2H?F]&UaU?F3z[j?P Bt`  ?t1:&XRZBu auo7[!>ʜJAa^Ė? ?Az@bbWb! ( 7 6 )  '+ g~X?I-Z#!g!zV A " ,/,/>/P-[O+g/y',*a4 ) "!#{ #Bstg8tu: Ba L^2!X8;d;6X?E;d; t͊>8lAlA `?CopyrigTt (c)@2`09@M@c.@os@fBAr@Aa@i@n.@ 0l@ HsBe@e@vZ@d@2h<M#l# M@?8>UhoQQ]AVQ^1| L@Ͼ?F! dj ٨la6ztB: 7d /kyԷ&Dh]EWemkp+ɉ 5d}bGeUWeFBϰ+@ol0juMDhnH?MbX0j`DhWef9o-ai qGeUoo$o6o3UHLD )&# R>h 0JTlaaM>UFObFd0?Fgj?F0U?F_gw?P >tA`  N+ru?t sM׵01,_Œ X">u eu!s7-"JɅJUU?HA9 j@7tt7 b:*H&tH  th*Nĵ) ?MB"b;)H&e8H m 3 H -US4o?FPjj?6ֈ@!QpoĬگ eoĩ́ F o 01G}}϶@b@mp?#nʼPV]O߸uy\l2_+ʦE}@p5"iРo~e*al|ٍşןHD: )&# ;h0>Th]]9 PB IAUF\6:?F}?FF(e?F=PFo?P t`  @?tP[5q+ tЖZu Mauo8#>    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 ,p )l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ s"?(a40 9 .*2!#{0:#t8'tϻ:Ua L2$18K;F?VEK.; t>B4AA0`?CopyrigTt (c)@2`09@M@c@oKs@fBAr@Qa@i@n.@ @l/P Hs3RePe@vEPd'P2hb<M#l1# M/P?]UhzAQ1 L@3FO#۲?Fo2zP dj|aW{ޓ8cUF:&x0?F?F?FX'qoO 0Yifull4ajS?ON~f0c?h+ fEeޖe?F<'?F@]?F\F%ޕol}dQ3ll BXy귺m|ԇbBhaUe```?FV ?F?Th ofl?PI3qoijeðl.` |=T?heFnF$OĒ?F o* leowk~y{f~tGg˂a ,8b1;MHD: )&# ;h0>Th]]9 PB IAUF\6:?Fx?FF(e?F=PFo?P t`  @?t%5q+ tЖZu Mauo8$>    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 ,p )l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ s"?(a40 9 .*2!#{0:#t8'tϻ:Ua L2$18K;F?VEK.; t>B4AA0`?CopyrigTt (c)@2`09@M@c@oKs@fBAr@Qa@i@n.@ @l/P Hs3RePe@vEPd'P2hb<M#l1# M/P?]UhzAQ1 L@3FO#۲?Fo2zP dj|a{ޓ8cUF:&x0?F?F?F'qoO 0Yifull4ajK?ON~f0c?+ fEeޖe?F<'?F@]?FsF%ޕol}dQ3ll BXyR귺m|bBhaUe```?FV ?F?Th ofl?PI3qoiGkeðl?2` ,yFT?heFnF*OĒ?F o* leowk~yf~tGg˂a ,8b1;MHD: )&# T=h0>Th]]9 Q BUFL&d?F`0?F(\µ^S?P Bt`  {Go?tNV yAP FBub ,duo7%>RJ[0U?<ALv@tt7 }b6*D&tD  td*JBı) ?A>"b7)D&a4D  V3 D 8/td/tRy.x1x1`?CopyrigTt (c)02`090M0c0os0f21r01a0i0n.0 Al0 8s2e0e0v @d0"h0!<M#l#/MlP> @?UhLAA]R 1 P1"7Ж1bA>!J`oO2z[ dja_q:z׍ Q 6VMB@챝/P\`_m;E,Ui5Uޖ?FQ[5lf\VU'EUY2Ruݯ?FU]˖7sf\pdѣSYUWfe _zx]݅om{ZcXUFRP\g[)JXAp| rhQ#5 IXAYaLPւ?FتcP\T f\3$sXAp"۲ ElU1YA-k?FFoZP\fyf\!XAYX%?F8K7P\{ 䘷f\&SAY&1l?Fr>|]P\-]qiYip~ X1#g~jt-? XAY?F ףp=P\' f\?P=Rw㹥X'RXT}7vP\__/vnTpljlX7U/?$?vQ[E7Ժf\wUQY|>qh|P\4GN"MDX U29_KU#rA0$@CHD: )&# T=h0>Th]]9 Q BUF8?Fā43?F7??FtYOȻ?P Bt`  1=o2?!88;D;68?5u;D; tj>)8LALA1 `?CopyrigTt (c)@]2`09@M{@]cy@oss@fBRrAru@Aa@is@Wn.@ 0l@U yHsBe@ey@v@d@v2h<M#l#A M@?4>UhkQkQjA6Q>1| L`Fdj]JK}vM41R] 6)fMB@Wa\ k_程avCe=E~SeR9Y? lgESeFeabkod i?SQޗh~?5@+ c;ꉞi2_U3rA/04sCHD: )&# T=h0>Th]]9 Q BUF2B9?FZ&?F'l?F{Cƻ?P Bt`  ,i?t('̺㯝4\YDrVBu auo7'>JAUVJp? ?Awz@bbb! ( " '+ ' qq?z A 9 +/.&68))E! '+ g?W-sU"!n*a4 8) "u#{ u#D!t?8tM:Bav L62?!08;<;60?5u;<; tb>){8DADA1 `?CopyrigTt (c){@]2`09{@Ms@]cq@osk@fyBRjArm@Aay@ik@Wn.{@ 0l@U qHsBe@eq@v@d@n2h<M#l# M@?]UhzbA.Q61b L` djM"aQ  6fM{"@Ftnq\[3K_,7e5EGe<\ֽE?Nf[ N_qd7eEGec6i\m jOf܋h2_U3rA'04msCHD: )&# T=h0>Th]]9 Q BUF] ?F t5?F!/$?Fᱝ̻?P Bt`  "?t4@+ϛ׊T, H_0Bu aquo7(>KJTA0f88v?WYgAL5v]@z bbob!'݉ 6 ,% )! ! ,+ <?' o?z #a47% =) J"E#K#{% (+ ( t#BXY?A> ?A "+(/+/=/O/a!y:5r=l/@ sU10( /???? "0<2(?M{!b 1//*%,"st:"t>0QQ'@`?CopyrigTt (cu)FP2`09FPuM>PcTh]]9 PB IAUFR?F}Y?FF(e?F=PFo?P t`  (\#?tƯ.5q+ tЖZu Mauo8)>    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 p l l w+ g?-#U!׷!zme Ae [+j/|//-g#+ s"?(a4\0 9 *2!#{0#t8tϻ:񧂍Ua PL2$18K;QF?VEK; t>B4AA0`?CopyrigTt (c)@2`09@M@c@o%s@fBAr@Qua@i@n.@U @l/P Hs3RUePe@vEPd'P 2h<M#l# M/P?]UhzPAQ1 L@3FO#۲?FoO2zP dj|aW{8cUF:&x0?F?F?F_?'qoO 0Yigull4aj?N~f0co+ fEeޖe?F<'?F@]?FwF%ޕol}dQ3ll BXlﷺm|bBhaUeߔ`ba`?FV ?FTh oflPIϮ3qoikeðl8` |GT?heFnF$OĒ?F o* leowky{ftGg˂a,8b1;MHD: )&# ;h0>Th]]9 PB IAUFpX?F&U?F+\(?F~@ t?P t`  (TJ?t[uᯜ(=u -ZrqKZu Mauo8*>    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 ,p )l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ s"?(a40 9 .*2!#{0:#t8'tϻ:Ua L2$18K;F?VEK.; t>B4AA0`?CopyrigTt (c)@2`09@M@c@oKs@fBAr@Qa@i@n.@ @l/P Hs3RePe@vEPd'P2hb<M#l1# M/P?]UhzAQ1 L@3FMbX9?F4ҫP dj}ah8cUF[~K?F|D?F+Xc?F&PRcGoO 0YiM+FllZaj}0%|f0c̭ fEe.V?Fȿ̅)`oSt?F?(X:olGGTll .Xl{e{|rww@haUe:&x0?F%Clw?FAz?F 1vņflux1qoiFA(]`t߼ |~Th]]9 PB IAUFpX?F*g?F+\(?F~@ t?P t`  (TJ?t4%u -ZrqKZu Mauo8+>    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 ,p )l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ s"?(a40 9 .*2!#{0:#t8'tϻ:Ua L2$18K;F?VEK.; t>B4AA0`?CopyrigTt (c)@2`09@M@c@oKs@fBAr@Qa@i@n.@ @l/P Hs3RePe@vEPd'P2hb<M#l1# M/P?]UhzAQ1 L@3FMbX9?F4ҫP dj}ah8cUF[~K?F|D?F+Xc?F&PRcGoO 0YiM+FllZaj}0%|f0c̭ fEe.V?Fȿ̅)`oSt?F?(X:olGGTll .Xl{e{|rww@haUe:&x0?F%Clw?FAz?F 1vņflux1qoiFA(]`t߼ |~Th]]9 PB IAUF$?Fy}?F+\(?F-ku?P t`  p&k?tl    PEJڍU[\/(?&. ?AbbY!z@Ae bbCt c(a4b  # b(h#{ h#΍t(tI*#0f88vb.#i L5<1v(&$7/(D%"6/5;0( t.*B#11`?CopyrigTt] c).@2`W09.@M&@c$@os@f,BAr @YAa,@i@n}..@ Alt@U $HsxBeL@e$@v@dl@"h<M#l# Mt@?]UhzAA!J@#FMbX9?F$x0OԛP dj}תa4(SUF[~K?FE?FSc?F?#oO 0YM+Fӱ\*aj,.}a$?# XEU"n?F +?FbEd?F v<olTBJ\LMYBltavXlp@XEUv/?Fpvw;pg?F $hއ?FLvo~l/AD0qYJg ַBl)$ԞXlDB:XU^F.fّPKk^Rl_[Ei?1GAf`d?Sq+abvHD: )&# ;h0>Th]]9 PB IAUF$?FQ?F+\(?F-ku?P t`  p&k?t u -+CmoLZu Mauo8->    PEJڍU[\/(?&. ?AbbY!z@Ae bbCt c(a4b  # b(h#{ h#΍t(tI*#0f88vb.#i L5<1v(&$7/(D%"6/5;0( t.*B#11`?CopyrigTt] c).@2`W09.@M&@c$@os@f,BAr @YAa,@i@n}..@ Alt@U $HsxBeL@e$@v@dl@"h<M#l# Mt@?]UhzAA!J@#FMbX9?F%x0OԛP dj}תa4(SUF[~K?FE?Fdc?F,?#oO 0YM+Fӱ\*aj ,.}a?# XEU"n?F{ +?F(%/Nd?F<olTBJ\MYBlU{XlpDc@XEUv/vw;pg?F^$hއ?Fvol/AD0qYf ַBls$ԞXl+?B:XU^F.fّPyKk^Rl_[Ei1GAf`dSOq+a,(bvHD: )&# T=h0>Th]]9 Q BUFt[@#?FX J?F\HRq?FƯK7?P Bt`  =0[?t@'#ll$nZBu duo7.>JA]^'? ?Az@b ( 6f  )ϓb= + _? ' 88o?z A s +=  /)/;/M$[+["-j!Q U1[!x(ar4 )] "'}#{t }#BtNQ8t_:Ba~ PLH2!B8;N;Q6B?5;N; tt>8VAVA `?CopyrigTt (c)@2`09@M@c@o%s}@fB|Ar@Aua@i}@n.@U 0l@ HsBUe@e@v@d@ 2h<M#l# MT@?4>UhuQuQtA(@QH1j LZFهgϰ 7j bL\GB] 6S-fMB:MbPdc mdb`GeGEWe$oˏZ\ai?bvIGeU@Vϰ+@_?F23Th]]9 Q BUF偃?F?F\HRq?FƯK7?P Bt`  Xkw?t[I2#ll$nZVBu auo7/>JA]^'? ?Az@b ( 6f  )ϓb= + _? ' 88o?z A s +=  /)/;/M$[+["-j!Q U1[!x(ar4 )] "'}#{t }#BtNQ8t_:Ba~ PLH2!B8;N;Q6B?5;N; tt>8VAVA `?CopyrigTt (c)@2`09@M@c@o%s}@fB|Ar@Aua@i}@n.@U 0l@ HsBUe@e@v@d@ 2h<M#l# MT@?4>UhuQuQtA(@QH1j LZFهgϰ 7j bL\] 6-fMB:MbPdc Ɵmdb`GeGEWe$oZ\aibvIGeUWeVϰ+@?Vpk_xu j aGe@We_ooh2Kt]u3rA 4s2HD: )&# T=h0>Th]]9 Q BUF͜?Fil8?F\HRq?FƯK7?P Bt`  W׎?tt^ #ll$nZVBu acuo7aJ?JA]^'?X ?Az@bu ( 6  )b= + ? ' 88?z A  +=  /)/;/M$[+["-j!Q U1[!x(a4 ) ."'}#{ :}#BtQ8t_:B@a~ LH2!B8;N;6B?5;N; Ktt>8aVAVA `?CopyrigTt (c)@2`09@M@c@os}@fB|Ar@Aa@i}@n.@ 0l@ HsBe@e@v@d@2hX<M#l # M@?4>UhuQuQtA@QH1j LZFه3 7j bL\`] 6-fMB:MbPdc gmdb`GeGEWenZ\aiavIGeUWeVϰ+@?Vpk_xu j aGeWe_ooh2K]u3rA 4s2HD: )&# T=h0>Th]]9 Q BUF[@#"?F`>?Fo?FƯK7?P Bt`  ?tS'8Xj$nZVBu auo71>JA]^'? ?Az@b ( 6f  )ϓb= + _? ' 88o?z A s +=  /)/;/M$[+["-j!Q U1[!x(ar4 )] "'}#{t }#BtNQ8t_:Ba~ PLH2!B8;N;Q6B?5;N; tt>8VAVA `?CopyrigTt>(cu)>2`09>uM@c@os}@IfB|Ar@Aa@]i}@n.> 0Ul@ HsBe@e@v@d@B2h,<M#l# M@?U4>UhuQuQtAJ@QH1j LZFهϰ 7j bL\] 6-fMB:ʿMbPdc 2Ngodb`GeGEWe$oZ\aibvIGeUWe4?Vpku j aGeWe_ooh2K]u3rA 4s2HD: )&# ;h0>Th]]9 PB IAUFv?Fo]j?FQ?F?P t`  Smo?tT.qČ( 뾅@l* 9u duo82>   ] EJ]_DRb(?&. ?Az@bY(e 6f h )ϓb k+ _?Z'e 88o?ze Ae s[+ h g/y//$# L:5 /sU"K1*a4 9 2(E#{ #t8tϤ:U a L2T18K;6Ԉ?@EK; tͺ>B40AA0`?CopyrigTwt c)@]2`09@M@]c@os@fBRAr@Aa@i@Wn.@ 0lPU HsRe@e@v/PdP2h<M#l#A MP? <>Uh$QQ(]A(Q1 LZ3;'xP 7jbbFb7@c 6{fM8cUFnDdTh]]9 PB IAUFSQ=?F{3?FQ?F?P t`  4o?tPǭ\"Č( 뾅@l* 9u auo83>   ] EJ]_DRb(?&. ?Az@bY(e 6f h )ϓb k+ _?Z'e 88o?ze Ae s[+ h g/y//$# L:5 /sU K1(a4 9 2(E#{ #t8tϤ:U a L2T18K;6Ԉ?@EK; tͺ>B40AA0`?CopyrigTwt c)@]2`09@M@]c@os@fBRAr@Aa@i@Wn.@ 0lPU HsRe@e@v/PdP2h<M#l#A MP? <>Uh$QQ(]A(Q1 LZ3;'xP 7jbbFbL7a 6{fM8(a?nDFF!@~qWoO 0dTc I\rdcd bjUkgaPbeEef"v?Fr6d?F?kĀqo`OivddlXr`tF0sK|٢jr3t!KU:G}?{]rLl} ]|q3xnTrg?F<ے7pooZgtfio,V|=] 5ve&1?Fpn?FTh]]9 PB IAUF!?F?FQ?F?P t`  + {o?tn&Č( 뾅@l* 9u auo84>   ] EJ]_DRb(?&. ?Az@bY(e 6f h )ϓb k+ _?Z'e 88o?ze Ae s[+ h g/y//$# L:5 /sU"K1*a4 9 2(E#{ #t8tϤ:U a L2T18K;6Ԉ?@EK; tͺ>B40AA0`?CopyrigTwt c)@]2`09@M@]c@os@fBRAr@Aa@i@Wn.@ 0lPU HsRe@e@v/PdP2h<M#l#A MP? <>Uh$QQ(]A(Q1 LZ3;'xP 7jbbFbL7a 6{fM8cUFnDFK!@?FDqWoO 0dTc I\addbjUWkgabeE(aFjv?Fr6d?FkĀAqo`Oi^j^r`t0sK#|pr9t!KU:M}{]rYLl}]|9xLufTrg?F<7vodObdcZgtfi,V#|=c ;vLu&1?Fpn?FTh]]9 PB IAUFĊ?F)lIJ?FQ?F?P t`  o?t\Č( 뾅@l* 9u auo85>   ] EJ]_DRb(?&. ?Az@bY(e 6f h )ϓb k+ _?Z'e 88o?ze Ae s[+ h g/y//$# L:5 /sU"K1*a4 9 2(E#{ #t8tϤ:U a L2T18K;6Ԉ?@EK; tͺ>B40AA0`?CopyrigTwt c)@]2`09@M@]c@os@fBRAr@Aa@i@Wn.@ 0lPU HsRe@e@v/PdP2h<M#l#A MP? <>Uh$QQ(]A(Q1 LZ3;'xP 7jbbFbL7a 6{fM8(a?D +F2|>?FW@WoO 0dTc rdcd bj{^ea͂beEef"v?Fddd?F܃q o`OivddlXr`tuqEÊ|:jr3t!KU:G}{]r,Ll}]|q3xngqrg?F~pooZgtML|\ 5ve&1?FWf?F#0bĂ|[m낪 z'ǵ(|F$$!ayTh]]9 Q BUFt[@#?Fyوe??F\HRq?F#o˯Z?P Bt`  =0[?t&0N#ll#Bu duo76>JTA0f88v?WYϳAjL@z bbb!'  ,% )! ! ,+ <?' o?z #a47% =) J"E#K#{% (+ ( t#B2?A> &?A"&"I&$/*%,"t:"Kt> A A6 `?CopyrigTt (c)D@2`09D@M<@c:@oKs4@fBB3Ar6@oAaB@i4@n.D@ Al@ :HsBeb@e:@vZ@d@2h/1<M#bl#7? M@?(>Uh7E +A(A!{ L:F A<6j% bRzg9ǩ<2 "\MbPdS mT W5U6ik0YaYvq 2HD: )&# T=h0>Th]]9 Q BUF偃?F?P?F\HRq?Fn˯Z?P Bt`  Xkw?tGj#ll#VBu auo77>JTA0f88v?WYϳAjLv@z bbb!' 6Y % )! ! ,+ <?' o?z #a47% =) J"#K#({% (+ (G t#Beı?A>L ?A"&"&$/*8%,"t:"t>  A A6 `?CopyrigTt _(c)D@2`W09D@M<@c:@os4@fBB3Ar6@oAaB@i4@n}.D@ Al@U :HsBeb@e:@v@d@2h/1<M#l#@7? M@?(>Uh7E P+AA!{ L:F<6j% bRzg9ǩ<2 "\MbPdS mT W5UO6ik0YaYvq 2HD: )&# T=h0>Th]]9 Q BUF͜?F:'?F\HRq?Fn˯Z?P Bt`  W׎?ts aU#ll#VBu auo78>JTA0f88v?WYϳAjLv@z bbb!' 6Y % )! ! ,+ <?' o?z #a47% =) J"#K#({% (+ (G t#Beı?A>L ?A"&"&$/*8%,"t:"t>  A A6 `?CopyrigTt _(c)D@2`W09D@M<@c:@os4@fBB3Ar6@oAaB@i4@n}.D@ Al@U :HsBeb@e:@v@d@2h/1<M#l#@7? M@?(>Uh7E P+AA!{ L:F6j% bT ü2 "\MbPdS mT W5UO6ik0YaYvq 2HD: )&# T=h0>Th]]9 Q BUF[@#"?F.޺?Fo?Fn˯Z?P Bt`  ?tchE 8Xj#VBu auo79>JTA0f88v?WYϳAjLv@z bbb!' 6Y % )! ! ,+ <?' o?z #a47% =) J"#K#({% (+ (G t#Beı?A>L ?A"&"&$/*8%,"t:"t>  A A6 `?CopyrigTt>(c)>2`09>M<@c:@o%s4@fBB3Ar6@oAuaB@i4@n.>_ Al@ :HUsBeb@e:@v@-d@2`h/1<M#l1#7? PM@?(>Uh7E +AA!{ L:F<F6j% bRzg9<2 "\ʩ7MbPdS 2NoT W5UO?6ik0YaYvq 2UHT5D B &# T>h0JTtiiM ENUF|u(?F-?FPaW?F ru?P WNtQ` 786R7?tU溁i8;(\I2-nNuj mu){:E0f88wv?AVQ Ӎ!@#b#m@b  0#  #W(3 (o+&T" #t#NĽ/?. ?M"&$a%$$,/>*L%i,T"tΞ*T"tR.R11#`?Copyrig`t (c)02l090M0c0os0f21r01a0i0n.0 Al@ 8sBe0e0v0@d@"Vt!X#xB #/ @T,UtE1UA-!@nZ pvm?S׮(%UQG@Y9"S\FkV5%UЗn@‹Pهϰ=\WQS\OXbiTQY%_7_I_[_DQOOOO__^̔ԍ?f Q́)f@vVP|?5^BlӿIY:6Xl?Ib ʏ܏EABTfxF\HRqCk?-q_WaW?ϰ+@"Bl!H,BXQnB)fFޖBoT[inJ\ۙgyAHD: )&# T=h0>Th]]9 Q BUF4@ ,?FYوe?^?F&1?F3(e?P Bt`  N!?tx/m4tMuVBu auo7;>JAS`? ?Az@bbb! ( 6 )  '+ ߈?/I-Z#mg!z A " ././@/R+,g/y'sU1,ar4 )] "#{t #BtNg8tu:Ba PL^2!X8;d;Q6X?E;d; t͊>8lAlA `?CopyrigTt (c)@2`09@M@c@o%s@fBAr@Aua@i@n.@U 0l@ HsBUe@e@v@d@ 2h<M#l# MT@?4>UhQQA(VQ^1| LZFX} g 7j b2ɶO] 6CfMB:ZMbXdc $I$I܍+d 2aa]Eme'la'iL.]eU@9/$Ew?FslAka,dHޓּgmeoo(oh2gyu3rA 4s2HD: )&# T=h0>Th]]9 Q BUFnټk-?F]u)?F&1?F3(e?P Bt`  3?tg[ m4tMuVBu auo7<>JAS`? ?Az@bbb! ( 6 )  '+ ߈?/I-Z#z A* " ././@/R+Yg/y'sU1,a4 ) "#{ #BtΜg8tu:Ba L^2!X8;d;6X?E;.d; t͊>8lAlA `?CopyrigTt (c)@2`09@M@c@oKs@fBAr@Aa@i@n.@ 0l@ HsBe@e@v@d@2hb<M#l1# M@?4>UhQQPAVQ^1| LZFX}  7j b2/O]M 6CfMB:ZMbX͉dc ?$I$I܍+d 2aa]Emekla'i.]eU@;0$E?FTh]]9 Q BUFܲ?FH7H?F!?FTUUUɺ?P Bt`  &?tQ3ņ= ףc?ckBu5 auon7=>)JAUVJp? ?Awz@b_bb! (݉ " '+ ' qq?z A  +S/.&68))E! '+ g?uW-sUUn*a4 8) "u#{ u#D!tΜ?8tM:Bav L62?!08;<;60?5;.<; tb>{8DADA1 `?CopyrigTt (c){@2`09{@Ms@cq@oKsk@fyBjArm@Aay@ik@n.{@ 0l@ qHsBe@eq@v@d@n2hb<M#l1# M@? Uh,cQcQ] '1PbA.Q61b L`w"?FMDA dj? |m cuۡ'1 6!1fM{":F$3<6d kS=ѣ<n2{!5E[nLa vogaKeE[eV_@cbc g@]amr\GDž}iNu?FS%f|]tElFTh]]9 Q BUF:C<?FY!)^?F!?FTUUUɺ?P Bt`  Ȼ?ޫd?ttyI5= ףc?ckBu5 auon7>>)JAUVJp? ?Awz@b_bb! (݉ " '+ ' qq?z A  +S/.&68))E! '+ g?uW-sUUn*a4 8) "u#{ u#D!tΜ?8tM:Bav L62?!08;<;60?5;.<; tb>{8DADA1 `?CopyrigTt (c){@2`09{@Ms@cq@oKsk@fyBjArm@Aay@ik@n.{@ 0l@ qHsBe@eq@v@d@n2hb<M#l1# M@? Uh,cQcQ] '1PbA.Q61b L`w"?FMDA dj? |m cuۡ'1 6!1fM{":F$3<6d kS=ѣ<n2{!5E[nLa vogaKeE[eV_@cbc g@]amr\GDž}iNu?FS%f|]tElFTh]]9 Q BUFx]?FTy4߮?FU?F3z[j˺?P Bt`  Q`7lg?t-xW&XRkBu5 auon7?>)JAa^! ?Az@b_bb! (݉ 6 , )  '+ g~X?ZI-Z#!g![z A " ,/,/>/P-[?+g/y'Eي,a4 ) "!#{ #Btg8t)u:Ba L^2!*X8;d;6X?E;d; tR>8lAlA `?CopyrigTt (c)@2`09@M@c@os@fBAr@Aa@i@n.@ 0l@ HsBe@ej@v@d@2!h<M#l# M@? 8>UhoQQ]AVQ^1| L@?F҄! dj O٨l,d6ztJB: 7d /k?yԷ&Dh]EWemkp+ɉ 5d}bGeUWeFBϏ+@ol0ju?MDhnMbX0j`QDhnC<o+o"Th]]9 Q BUFT1#E2?FLΉ?FU?F3z[j˺?P Bt`  S|.?tп}Qm&XRkBu5 auon7@>)JAa^!? ?Az@b_bb! (݉ 6 , )  '+ g~X?ZI-Z#!g![z A " ,/,/>/P-[?+g/y'Eي,a4 ) "!#{ #Btg8t)u:Ba L^2!*X8;d;6X?E;d; tR>8lAlA `?CopyrigTt (c)@2`09@M@c@os@fBAr@Aa@i@n.@ 0l@ HsBe@ej@v@d@2!h<M#l# M@? 8>UhoQQ]AVQ^1| L?F҄! dj _٨la6ztJB: 7d /k?yԷ&Dh]EWemkp+ɉ 5d}bGeUWeFBϏ+@ol0ju?MDhnHMbX0j`DhWef9o-ai qGeUoo$o6o3UHLD )&# R>h 0JTlaaM>UF+1#E2?F* 9?F0U?F_gw?P >tA`  9|4?t +5f1,_Œ X">u eu!s7-AJɅJUU?H<j@7tt7 b:*H&tH  th*Nĵ) ?MB"b;)H&e8H m 3 H -US4o?FPjj?6ֈ@!QpoĬگ eoĩ́ F o 01G}}϶@b@mp?#nʼPV]O߸uy\l2_+ʦE}@p5"iРo~e*al|ٍşןHD: )&# ;h0>Th]]9 PB IAUF~Q?F?FF(e?F=PFo?P t`  IGr?tn 5q+ tЖZu Mauo8B>    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 ,p )l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ As"(a40 9 *2!#{0#΍t8tIϻ:AUa L2$18K;F?VEK; Kt>B4aAA0`?CopyrigTt (c)@2`09@M@c@os@fBAr@Qa@i@n.@ @l/P Hs3RePe@vEPd'P2hX<M#l # M/P?]UhzA(Q1 L@3FO#?Fo2zP dj|aW{8cUF:&x0?F?Fώ?FX'qoO 0Yifull4ajS?N~dh+ fEeޖe?F<'?F@]?F\F%ޕol}dQ3ll BXlm|ԇbBhaUe```?FV ?FTh oflPIϮ3qoijeðl.` |=T?heFnF$OĒ?F o* leowky{ftGg˂a,8b1;MHD: )&# ;h0>Th]]9 PB IAUF~Q?Fe?FF(e?F=PFo?P t`  IGr?t8n5q+ tЖZu Mauo8C>    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 ,p )l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ As"(a40 9 *2!#{0#΍t8tIϻ:AUa L2$18K;F?VEK; Kt>B4aAA0`?CopyrigTt (c)@2`09@M@c@os@fBAr@Qa@i@n.@ @l/P Hs3RePe@vEPd'P2hX<M#l # M/P?]UhzA(Q1 L@3FO#?Fo2zP dj|a{8cUF:&x0?F?FȎ?F'qoO 0Yifull4ajK?N~d+ fEeޖe?F<'?F@]?FsF%ޕol}dQ3ll BXlRm|bBhaUe`Ԗ``?FV ?FTh oflPIϮ3qoiGkeðl2` |FT?heFnF*OĒ?F o* leowkyftGg˂a,8b1;MHD: )&# T=h0>Th]]9 Q BUF&d29?F `0?F(\µ?F^Sӻ?P Bt`  o?tՐs] yAP FBuj auo7ARJ[0U?<ALv@tt7 }b6*D&tD  td*JBı) ?A>"b7)D&a4D  V3 D 8/td/tRy.x1x1`?CopyrigTt (c)02`090M0c0os0f21r01a0i0n.0 Al0 8s2e0e0v @d0"h0!<M#l#/MlP> @?UhLAA]R 1 P1"7Ж1bA>!J`oO2z[ djaq:z׍ QM 6VMB@챝P\`_m;?E,Ui5Uޖ?FQ[_5lf\VU'EUY2Ruݯ?FU]˖7sf\pdѿSYUWfe /zx]݅om{ZcXXUFRP\g[)JXAp| rhQ#5 ?IXAYaLPւ?FتcP\T f\3$sXAp" ElX1YA-k?FFoZP\fyf\?!,UAYX%?F8K7P\{ f\&SAY&1l?Fr>|]P\-]qiYip~ X1#g~jt-? ѰXAY?F ףp=P\' f\?P=RwX'RXT}7vP\__/vnTpډlX7U/$9SYE7Ժf\wUQY|>îqh|P\4GN?"MX U29_KU#rA0$@CHD: )&# T=h0>Th]]9 Q BUFܷqP?F@?F7??FtYOȻ?P Bt`  XM6 ?ti|9O__Bu aquo7E>KJASTfw?X ?Az@bbb! ( 6f )  '+ ߈?I-Z#g!z A Qu +%/,8)E!'+ k(?r+o,(a4 8) E"#{ #BtΜG8tU:Ba L>2?!88;D;68?5;.D; tj>8LALA1 `?CopyrigTt (c)@2`09@M{@cy@oKss@fBrAru@Aa@is@n.@ 0l@ yHsBe@ey@v@d@v2hb<M#l1# M@?4>UhkQkQPjA6Q>1| L`Fd~j]J}v)M]M 6)fMB@Wa\ k_稇avCe=ESeR9Y? l`gESeFeabkod iSQޗh~??5@+ c;Ꞗi"2_U3rA/04sCHD: )&# T=h0>Th]]9 Q BUFdHJAUVJp? ?Awz@bbb! ( " '+ ' qq?z A 9 +/.&68))E! '+ g?W-sU"!n*a4 8) "u#{ u#D!t?8tM:Bav L62?!08;<;60?5u;<; tb>){8DADA1 `?CopyrigTt (c){@]2`09{@Ms@]cq@osk@fyBRjArm@Aay@ik@Wn.{@ 0l@U qHsBe@eq@v@d@n2h<M#l# M@?]UhzbA.Q61b L` djM"aQ  6fM{"@Ftnq\[3K_,7e5EGe<\ֽE?Nf[ N_qd7eEGec6i\m jOf܋h2_U3rA'04msCHD: )&# T=h0>Th]]9 Q BUF)8/?FFT?F!/$?Fᱝ̻?P Bt`  vNC?tG(ϛT H0Bu auo7G>JTA0f88v?WYALv@z bbb!'n 6 % )! ! ,+ <?' o?z #a47% =) J""#K#{% (+ ( tQ#BXYщ?A> ?A "+(/+/=/O/a!y:5rl/@ sU10( /???? "?0<2?M{!b 1/Ĝ/*%,"t:"t>TQQ'@`?CopyrigTt (c)FP2`09FPM>PcTh]]9 PB IAUFJ1>?Fl?FF(e?F=PFo?P t`  0!?trj5q+ tЖZu Mauo8A    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 ,p )l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ s"?(a40 9 .*2!#{0:#t8'tϻ:Ua L2$18K;F?VEK.; t>B4AA0`?CopyrigTt (c)@2`09@M@c@oKs@fBAr@Qa@i@n.@ @l/P Hs3RePe@vEPd'P2hb<M#l1# M/P?]UhzAQ1 L@3FO#۲?Fo2zP dj|aW{ޓ8cUF:&x0?F?F?F_'qoO 0Yigull4aj?ON~f0c?o+ fEeޖe?F<'?F@]?FwF%ޕol}dQ3ll BXl귺m|bBhaUe`ba`?FV ?FTh oflPI3qoiؿkeðl8` |G?T?heFnF$O?F o* leowky?{ft?Gg˂a,8b1;MHD: )&# ;h0>Th]]9 PB IAUFGF?FEs?F+\(?F~@ t?P t`  9`Ik?t)6^u -ZrqKZu Mauo8I>    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 ,p )l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ s"?(a40 9 .*2!#{0:#t8'tϻ:Ua L2$18K;F?VEK.; t>B4AA0`?CopyrigTt (c)@2`09@M@c@oKs@fBAr@Qa@i@n.@ @l/P Hs3RePe@vEPd'P2hb<M#l1# M/P?]UhzAQ1 L@3FMbX9?F4ҫP dj}ah8cUF[~K?F|D?F+Xc?F&PRcGoO 0YiM+FllZaj}0%|f0c̭ fEe.V?Fȿ̅)`oSt?F?(X:olGGTll .Xl{e{|?rww@,eaUe:&x0?F%Clw?FAz?F 1vņflux1,oiFA(]`t߼ |~Th]]9 PB IAUFGF?FKDֳ?F+\(?F~@ t?P t`  9`Ik?t┯4;u -ZrqKZu Mauo8J>    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 ,p )l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ s"?(a40 9 .*2!#{0:#t8'tϻ:Ua L2$18K;F?VEK.; t>B4AA0`?CopyrigTt (c)@2`09@M@c@oKs@fBAr@Qa@i@n.@ @l/P Hs3RePe@vEPd'P2hb<M#l1# M/P?]UhzAQ1 L@3FMbX9?F4ҫP dj}ah8cUF[~K?F|D?F+Xc?F&PRcGoO 0YiM+FllZaj}0%|f0c̭ fEe.V?Fȿ̅)`oSt?F?(X:olGGTll .Xl{e{|rww@haUe:&x0?F%Clw?FAz?F 1vņflux1qoiFA(]`t߼ |~Th]]9 PB IAUFXIn?F    PEJڍU[\/(?&. ?AbbY!z@Ae bbCt c(a4b  # b(h#{ h#΍t(tI*#0f88vb.#i L5<1v(&$7/(D%"6/5;0( t.*B#11`?CopyrigTt] c).@2`W09.@M&@c$@os@f,BAr @YAa,@i@n}..@ Alt@U $HsxBeL@e$@v@dl@"h<M#l# Mt@?]UhzAA!J@#FMbX9?F$x0OԛP dj}תa4(SUF[~K?FE?FSc?F?#oO 0YM+Fӱ\*aj,.}a$?# XEU"n?F +?FbEd?F v<olTBJ\LMYBltavXlp@,UEUv/?Fpvw;pg?F $hއ?FLvo~l/AD0,YJg ַBl)$ԞXlDB:XU^F.fّPKk^Rl_[Ei?1GAf`d?Sq+a,(bvHD: )&# ;h0>Th]]9 PB IAUFXIn?F(?F+\(?F-ku?P t`  -k?tEeoEu -+CmoLZu Mauo8L>    PEJڍU[\/(?&. ?AbbY!z@Ae bbCt c(a4b  # b(h#{ h#΍t(tI*#0f88vb.#i L5<1v(&$7/(D%"6/5;0( t.*B#11`?CopyrigTt] c).@2`W09.@M&@c$@os@f,BAr @YAa,@i@n}..@ Alt@U $HsxBeL@e$@v@dl@"h<M#l# Mt@?]UhzAA!J@#FMbX9?F%x0OԛP dj}תa4(SUF[~K?FE?Fdc?F,?#oO 0YM+Fӱ\*aj ,.}a?# XEU"n?F{ +?F(%/Nd?F<olTBJ\MYBlU{XlpDc@XEUv/vw;pg?F^$hއ?Fvol/AD0qYf ַBls$ԞXl+?B:XU^F.fّPyKk^Rl_[Ei1GAf`dSOq+a,(bvHD: )&# T=h0>Th]]9 Q BUF贷F$?Ft\@?F\HRq?FƯK7?P Bt`  x#?t#ll$nZVBu auo7M>JA]^'? ?Az@b ( 6f  )ϓb= + _? ' 88o?z A s +=  /)/;/M$[+["-j!Q U1[!x(ar4 )] "'}#{t }#BtNQ8t_:Ba~ PLH2!B8;N;Q6B?5;N; tt>8VAVA `?CopyrigTt (c)@2`09@M@c@o%s}@fB|Ar@Aua@i}@n.@U 0l@ HsBUe@e@v@d@ 2h<M#l# MT@?4>UhuQuQtA(@QH1j LZFهgϰ 7j bL\G@[ 6S-fMB:MbPdc mdb`GeGEWe$oˏZ\ai?bvIGeU@Vϰ+@_?F23Th]]9 Q BUF#/?FKGY?F\HRq?FƯK7?P Bt`  ~B?tl#ll$nZVBu auo7N>JA]^'? ?Az@b ( 6f  )ϓb= + _? ' 88o?z A s +=  /)/;/M$[+["-j!Q U1[!x(ar4 )] "'}#{t }#BtNQ8t_:Ba~ PLH2!B8;N;Q6B?5;N; tt>8VAVA `?CopyrigTt (c)@2`09@M@c@o%s}@fB|Ar@Aua@i}@n.@U 0l@ HsBUe@e@v@d@ 2h<M#l# MT@?4>UhuQuQtA(@QH1j LZFهgϰ 7j bL\] 6-fMB:MbPdc Ɵmdb`GeGEWe$oZ\aibvIGeUWeVϰ+@?Vpk_xu j aGe@We_ooh2Kt]u3rA 4s2HD: )&# T=h0>Th]]9 Q BUF/ ֛9?F46Hr?F\HRq?FƯK7?P Bt`   a1?t 3JA]^'? ?Az@b ( 6f  )ϓb= + _? ' 88o?z A s +=  /)/;/M$[+["-j!Q U1[!x(ar4 )] "'}#{t }#BtNQ8t_:Ba~ PLH2!B8;N;Q6B?5;N; tt>8VAVA `?CopyrigTt (c)@2`09@M@c@o%s}@fB|Ar@Aua@i}@n.@U 0l@ HsBUe@e@v@d@ 2h<M#l# MT@?4>UhuQuQtA(@QH1j LZFهgϰ 7j bL\] 6-fMB:MbPdc Ɵmdb`GeGEWenZ\aiavIGeUWeVϰ+@?Vpk_xu j aGe@We_ooh2Kt]u3rA 4s2HD: )&# T=h0>Th]]9 Q BUF[@#?FLO?Fo?FƯK7?P Bt`  ?tSӈEw8Xj$nZVBu acuo7AJA]^'? ?Az@b ( 6f  )ϓb= + _? ' 88o?z A s +=  /)/;/M$[+["-j!Q U1[!x(ar4 )] "'}#{t }#BtNQ8t_:Ba~ PLH2!B8;N;Q6B?5;N; tt>8VAVA `?CopyrigTt>(cu)>2`09>uM@c@os}@IfB|Ar@Aa@]i}@n.> 0Ul@ HsBe@e@v@d@B2h,<M#l# M@?U4>UhuQuQtAJ@QH1j LZFهϰ 7j bL\ѻ] 6-fMB:ʩMbPdc 2N3odb`GeGEWe$oZ\aibvIGeUWe4?Vpku j aGeWe_ooh2K]u3rA 4s2HD: )&# ;h0>Th]]9 PB IAUF?FtË.5?FQ?F?P t`  ?{R   ] EJ]_DRb(?&. ?Az@bY(e 6f h )ϓb k+ _?Z'e 88o?ze Ae s[+ h g/y//$# L:5 /sU"K1*a4 9 2(E#{ #t8tϤ:U a L2T18K;6Ԉ?@EK; tͺ>B40AA0`?CopyrigTwt c)@]2`09@M@]c@os@fBRAr@Aa@i@Wn.@ 0lPU HsRe@e@v/PdP2h<M#l#A MP? <>Uh$QQ(]A(Q1 LZ3;'xP 7jbbFbL7a 6{fM8cUFnDdTh]]9 PB IAUF4{"?F=N?FQ?F?P t`  ^}W;o?t9pČ( 뾅@l* 9u auo8R>   ] EJ]_DRb(?&. ?Az@bY(e 6f h )ϓb k+ _?Z'e 88o?ze Ae s[+ h g/y//$# L:5 /sU"K1*a4 9 2(E#{ #t8tϤ:U a L2T18K;6Ԉ?@EK; tͺ>B40AA0`?CopyrigTwt c)@]2`09@M@]c@os@fBRAr@Aa@i@Wn.@ 0lPU HsRe@e@v/PdP2h<M#l#A MP? <>Uh$QQ(]A(Q1 LZ3;'xP 7jbbFbL7a 6{fM8(a?nDFF!@~qWoO 0dTc I\rdcd bjUkgaPbeEef"v?Fr6d?F?kĀqo`OivddlXr`tF0sK|٢jr3t!KU:G}?{]rLl} ]|q3xnTrg?F<ے7pooZgtfio,V|=] 5ve&1?Fpn?FTh]]9 PB IAUFGC<-?Ff?FQ?F?P t`  L?RD)o?t? )Č( 뾅@l* 9u auo8S>   ] EJ]_DRb(?&. ?Az@bY(e 6f h )ϓb k+ _?Z'e 88o?ze Ae s[+ h g/y//$# L:5 /sU"K1*a4 9 2(E#{ #t8tϤ:U a L2T18K;6Ԉ?@EK; tͺ>B40AA0`?CopyrigTwt c)@]2`09@M@]c@os@fBRAr@Aa@i@Wn.@ 0lPU HsRe@e@v/PdP2h<M#l#A MP? <>Uh$QQ(]A(Q1 LZ3;'xP 7jbbFbL7a 6{fM8cUFnDFK!@?FDqWoO 0dTc I\addbjUWkgabeE(aFjv?Fr6d?FkĀAqo`Oi^j^r`t0sK#|pr9t!KU:M}{]rYLl}]|9xLufTrg?F<7vodObdcZgtfi,V#|=c ;vLu&1?Fpn?FTh]]9 PB IAUFĊ?Fn6b?FQ?F?P t`  ro?tpwZČ( 뾅@l* 9u auo8T>   ] EJ]_DRb(?&. ?Az@bY(e 6f h )ϓb k+ _?Z'e 88o?ze Ae s[+ h g/y//$# L:5 /sU"K1*a4 9 2(E#{ #t8tϤ:U a L2T18K;6Ԉ?@EK; tͺ>B40AA0`?CopyrigTwt c)@]2`09@M@]c@os@fBRAr@Aa@i@Wn.@ 0lPU HsRe@e@v/PdP2h<M#l#A MP? <>Uh$QQ(]A(Q1 LZ3;'xP 7jbbFbL7a 6{fM8(a?D +F2|>?FW@WoO 0dTc rdcd bj{^ea͂beEef"v?Fddd?F܃q o`OivddlXr`tuqEÊ|:jr3t!KU:G}{]r,Ll}]|q3xngqrg?F~pooZgtML|\ 5ve&1?FWf?F#0bĂ|[m낪 z'ǵ(|F$$!ayTh]]9 Q BUF贷F$?FlIJ?F\HRq?F#o˯Z?P Bt`  x#?tx#ll#VBu auo7U>JTA0f88v?WYϳAjLv@z bbb!' 6Y % )! ! ,+ <?' o?z #a47% =) J"#K#({% (+ (G t#Beı?A>L ?A"&"&$/*8%,"t:"t>  A A6 `?CopyrigTt _(c)D@2`W09D@M<@c:@os4@fBB3Ar6@oAaB@i4@n}.D@ Al@U :HsBeb@e:@v@d@2h/1<M#l#@7? M@?(>Uh7E P+AA!{ L:F A7<6j% bRzg9<2 "\MbPdS mT W5U6ik0YaYvq 2HD: )&# T=h0>Th]]9 Q BUF#/?F ?F\HRq?Fn˯Z?P Bt`  ~B?t AF#ll#VBu auo7V>JTA0f88v?WYϳAjLv@z bbb!' 6Y % )! ! ,+ <?' o?z #a47% =) J"#K#({% (+ (G t#Beı?A>L ?A"&"&$/*8%,"t:"t>  A A6 `?CopyrigTt _(c)D@2`W09D@M<@c:@os4@fBB3Ar6@oAaB@i4@n}.D@ Al@U :HsBeb@e:@v@d@2h/1<M#l#@7? M@?(>Uh7E P+AA!{ L:F<6j% bRzg9ǩ<2 "\MbPdS mT W5UO6ik0YaYvq 2HD: )&# T=h0>Th]]9 Q BUF/ ֛9?FD?F\HRq?Fn˯Z?P Bt`   a1?t(9Sj#ll#VBu auo7W>JTA0f88v?WYϳAjLv@z bbb!' 6Y % )! ! ,+ <?' o?z #a47% =) J"#K#({% (+ (G t#Beı?A>L ?A"&"&$/*8%,"t:"t>  A A6 `?CopyrigTt _(c)D@2`W09D@M<@c:@os4@fBB3Ar6@oAaB@i4@n}.D@ Al@U :HsBeb@e:@v@d@2h/1<M#l#@7? M@?(>Uh7E P+AA!{ L:F6j% bT ü2 "\MbPdS mT W5UO6ik0YaYvq 2HD: )&# T=h0>Th]]9 Q BUF[@#?F\o]?Fo?Fn˯Z?P Bt`  ?tF]8Xj#VBu auo7X>JTA0f88v?WYϳAjLv@z bbb!' 6Y % )! ! ,+ <?' o?z #a47% =) J"#K#({% (+ (G t#Beı?A>L ?A"&"&$/*8%,"t:"t>  A A6 `?CopyrigTt>(c)>2`09>M<@c:@o%s4@fBB3Ar6@oAuaB@i4@n.>_ Al@ :HUsBeb@e:@v@-d@2`h/1<M#l1#7? PM@?(>Uh7E +AA!{ L:F<F6j% bRzg9<2 "\ʩ7MbPdS 2NoT W5UO?6ik0YaYvq 2UHT5D B &# T>h0JTtiiM ENUFlQ?Fڋ?FPaW?F ru?P WNtQ` c͕.:7?tUr=Ki8;(\I2-nNuj mu){YE0f88wv?AVQ Ӎ!@#b#m@b  0#  #W(3 (o+&T" #t#NĽ/?. ?M"&$a%$$,/>*L%i,T"tΞ*T"tR.R11#`?Copyrig`t (c)02l090M0c0os0f21r01a0i0n.0 Al@ 8sBe0e0v0@d@"Vt!X#xB #/ @T,UtE1UA-!@nZ pvm?S׮(%UQG@Y9"S\FkV5%UЗn@‹Pهϰ=\WQS\OXbiTQY%_7_I_[_DQOOOO__^̔ԍ?f Q́)f@vVP|?5^BlӿIY:6Xl?Ib ʏ܏EABTfxF\HRqCk?-q_WaW?ϰ+@"Bl!H,BXQnB)fFޖBoT[inJ\ۙgyAHD: )&# T=h0>Th]]9 Q BUFhY?FlIJ?F&1?F3(e?P Bt`  6n?t:m4tMuVBu auo7Z>JAS`? ?Az@bbb! ( 6 )  '+ ߈?/I-Z#,z A* " ././@/R+Yg/y'sU1,a4 ) "#{ #BtΜg8tu:Ba L^2!X8;d;6X?E;.d; t͊>8lAlA `?CopyrigTt (c)@2`09@M@c@oKs@fBAr@Aa@i@n.@ 0l@ HsBe@e@v@d@2hb<M#l1# M@?4>UhQQPAVQ^1| LFX}  7j b2ɏOR] 6CfMB:ZMbXdc $I$I܍+d 2aa]Eme'la'iL.]eU@9/$Ew?FslAka,dHޓּgmeoo(oh2gyu3rA 4s2HD: )&# T=h0>Th]]9 Q BUFy?Flo]9?F&1?F3(e?P Bt`  7 ?t)!m4tMuBu ,duo7[>JAS`? ?Az@bbb! ( 6 )  '+ ߈?/I-Z#mg!z A " ././@/R+,g/y'sU1,ar4 )] "#{t #BtNg8tu:Ba PL^2!X8;d;Q6X?E;d; t͊>8lAlA `?CopyrigTt (c)@2`09@M@c@o%s@fBAr@Aua@i@n.@U 0l@ HsBUe@e@v@d@ 2h<M#l# MT@?4>UhQQA(VQ^1| LZFX} g 7j b2ɶO] 6CfMB:ZMbXdc $I$I܍+d A2aa]Emekla'i.G]eU@;0$E?[FTh]]9 Q BUF߹e?F$jߤ?F!?FTUUUɺ?P Bt`  ?t&S= ףc?ckBu5 auon7\>)JAUVJp? ?Awz@b_bb! (݉ " '+ ' qq?z A  +S/.&68))E! '+ g?5W-sUU,p(a4 8) "u#{ u#D!tΜ?8tM:Bav L62?!08;<;60?5;.<; tb>{8DADA1 `?CopyrigTt (c){@2`09{@Ms@cq@oKsk@fyBjArm@Aay@ik@n.{@ 0l@ qHsBe@eq@v@d@n2hb<M#l1# M@? Uh,cQcQ] '1PbA.Q61b L`w"?FMDA dj? |m cuۡ'1 6!1fM{":F$3<6d kS=ѣ<n2{!5E[nLa vogaKeE[eV_@cbc g@]amr\GDž}iNu?FS%f|]tElFTh]]9 Q BUFtx?F/?F!?FTUUUɺ?P Bt`  K_?t= ףc?ckBu5 auon7]>)JAUVJp? ?Awz@b_bb! (݉ " '+ ' qq?z A  +S/.&68))E! '+ g?uW-sUUn*a4 8) "u#{ u#D!tΜ?8tM:Bav L62?!08;<;60?5;.<; tb>{8DADA1 `?CopyrigTt (c){@2`09{@Ms@cq@oKsk@fyBjArm@Aay@ik@n.{@ 0l@ qHsBe@eq@v@d@n2hb<M#l1# M@? Uh,cQcQ] '1PbA.Q61b L`w"?FMDA dj? |m cuۡ'1 6!1fM{":F$3<6d kS=ѣ<n2{!5E[nLa vogaKeE[eV_@cbc g@]amr\GDž}iNu?FS%f|]tElFTh]]9 Q BUFiv?F{<?FU?F3z[j˺?P Bt`  y]?tHIΧ&XRBu auo7^>JAa^!? ?Az@bbb! (n 6  )  '+ g~X?I-͊Z#!,[z A " ,/,/>/P-[?+g/y'Eي,a4 ) "!#{ #Btg8t)u:Ba L^2!*X8;d;6X?E;d; tR>8lAlA `?CopyrigTt (c)@2`09@M@c@os@fBAr@Aa@i@n.@ 0l@ HsBe@ej@v@d@2!h<M#l# M@? 8>UhoQQ]AVQ^1| L@?F҄! dj _٨la6ztJB: 7d /k?yԷ&Dh]EWemkp+,rb6c}bGeUWeFBϏ+@ol0ju?MDhnMbX0j`QDhnC<o+o"Th]]9 Q BUFT1#E2H?FK&Ua?FU?F3z[j˺?P Bt`  ?t &XRkBu5 auon7_>)JAa^!? ?Az@b_bb! (݉ 6 , )  '+ g~X?ZI-Z#!g![z A " ,/,/>/P-[?+g/y'Eي,a4 ) "!#{ #Btg8t)u:Ba L^2!*X8;d;6X?E;d; tR>8lAlA `?CopyrigTt (c)@2`09@M@c@os@fBAr@Aa@i@n.@ 0l@ HsBe@ej@v@d@2!h<M#l# M@? 8>UhoQQ]AVQ^1| L@?F҄! dj _٨la6ztJB: 7d /k?yԷ&Dh]EWemkp+ɉ 5d}bGeUWeFBϏ+@ol0ju?MDhnHMbX0j`DhWef9o-ai qGeUoo$o6o3UHLD )&# R>h 0JTlaaM>UFObFd0?F gj?F0U?F_gw?P >tA`  N+ru?t Tլ1,_Œ X">u eu!s7-`JɅJUU?HA9 j@7tt7 b:*H&tH  th*Nĵ) ?MB"b;)H&e8H m 3 H -US4o?FPjj?6ֈ@!QpoĬگ eoĩ́ F o 01G}}϶@b@mp?#nʼPV]O߸uy\l2_+ʦE}@p5"iРo~e*al|ٍşןHD: )&# ;h0>Th]]9 PB IAUF\6:?F}?FF(e?F=PFo?P t`  @?t^$h5q+ tЖZu Mauo8a>    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 ,p )l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ s"?(a40 9 .*2!#{0:#t8'tϻ:Ua L2$18K;F?VEK.; t>B4AA0`?CopyrigTt (c)@2`09@M@c@oKs@fBAr@Qa@i@n.@ @l/P Hs3RePe@vEPd'P2hb<M#l1# M/P?]UhzAQ1 L@3FO#۲?Fo2zP dj|aW{ޓ8cUF:&x0?F?F?FX'qoO 0Yifull4ajS?ON~f0c?h+ fEeޖe?F<'?F@]?F\F%ޕol}dQ3ll BXy귺m|ԇbBhaUe```?FV ?F?Th ofl?PI3qoijeðl.` |=T?heFnF$OĒ?F o* leowk~y{f~tGg˂a ,8b1;MHD: )&# ;h0>Th]]9 PB IAUF\6:?F}?FF(e?F=PFo?P t`  @?t8ȍ5q+ tЖZu Mauo8b>    PEJƱZVJp!?&. ?Az@b/b@Z'݉e 6 ,)l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ s"?(a4 9 .*2!#{:#t8'tϻ:Ua !L2$18K8F?VEK.; t>B4AA0`?CopyrigTt (c)@2`09@M@c@oKs@fBAr@Qa@i@n.@ @l/P Hs3RePe@vEPd'P2hb<M#l1# M/P?]UhzAQ1 L@3FO#۲?Fo2zP dj|a{ޓ8cUF:&x0?F?F?F'qoO 0Yifull4ajK?ON~f0c?+ fEeޖe?F<'?F@]?FsF%ޕol}dQ3ll BXyR귺m|bBhaUe```?FV ?F?Th ofl?PI3qoiGkeðl2` |FT?heFnF*OĒ?F o* leowk~yf~tGg˂a ,8b1;MHD: )&# T=h0>Th]]9 Q BUFL&d?F`0?F(\µ?F^Sӻ?P Bt`  {G?t7F0 yA_P FBu aquo7c>KJm0U?<AL@tMt7( }b6*D&stD  td**Bıa) ?A.>"b7)D&ar4D [ 3 D 8/td/Kty.x1x1`?CopyrigTt (c)02`090M0c0oKs0f21r01a0i0n.0 Al0 8s2e0e0vZ @d0"h!<M#l#/MBl> @?UhLAA]J 1 A 1"7A1bA>!J`?o2z[ dUjaq:z׍40S 6VMՋB@_P\`_m;E,Ui5Uޖ??FQ[5lf\VU'EUY2Ruݯ?FU]˖7sf\pdGѿSYUWfe zx]om{Zc`,UUFRP\g[)JXAp|? rhQ#5 IXAYaLPւ?FتcP\T f\3$sXAp"۲ ElU1YA-k?FFoZP\fyf\!XAYX%?F8K7P\{ 䘷f\&SAY&1l?Fr>|]P\-]qiY?ip~ X1#g~jt-? GXAY?F ףp=P\' f\?P=RwX'RXT}7vP\__/vnTpډlX7U/$?vQ[E7Ժf\wUQY|>îqh|P\4GN"MX U29_KU#rA0$@CHD: )&# T=h0>Th]]9 Q BUF8?F43?F7??FtYOȻ?P Bt`  1=oJASTfw? ?Az@bbb! ( 6 )  '+ ߈?/I-Z#mg!z A u +%/,8)E!'+ k(?r+o#?(a4 8) E"E#{ #BtG8tU:Ba L>2?!88;D;68?5u;D; tj>)8LALA1 `?CopyrigTt (c)@]2`09@M{@]cy@oss@fBRrAru@Aa@is@Wn.@ 0l@U yHsBe@ey@v@d@v2h<M#l#A M@?4>UhkQkQjA6Q>1| L`Fdj]JK}vM4@[ 6)fMB@Wa\ k_程avCe=E~SeR9Y? lgESeFeabkod i?SQޗh~?5@+ c;ꉞi2_U3rA/04sCHD: )&# T=h0>Th]]9 Q BUF2B9?FW]i\?F'l?F{Cƻ?P Bt`  ,i?t^̺㯝4\YDrVBu auo7e>JAUVJp? ?Awz@bbb! ( " '+ ' qq?z A 9 +/.&68))E! '+ g?W-sU"!n*a4 8) "u#{ u#D!t?8tM:Bav L62?!08;<;60?5u;<; tb>){8DADA1 `?CopyrigTt (c){@]2`09{@Ms@]cq@osk@fyBRjArm@Aay@ik@Wn.{@ 0l@U qHsBe@eq@v@d@n2h<M#l# M@?]UhzbA.Q61b L` djMaQ@ 6fM{"@Ftnq\[3K_,7e5EGe<\ֽE?Nf[ NA_qd7eEGec6i\m j#f,7e2_UB3rA'04msCHD: )&# T=h0>Th]]9 Q BUF] ?FtF?F!/$?Fᱝ̻?P Bt`  "?tEQTϛT H0VBu auo7f>JTA0f88v?WYϳAjLv@z bbb!' 6Y % )! ! ,+ <?' o?z #a47% =) J"#K#({% (+ (G t#BXY'?A> ?A "+(/+/=/O/a!y:5r{l/@ sU10( /???? "0aQQ'@`?CopyrigTt (c)FP2`09FPM>PcTh]]9 PB IAUFR?F|}Y?FF(e?F=PFo?P t`  (\#?tN뻫5q+ tЖZu Mauo8g>    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 ,p )l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ s"?(a40 9 .*2!#{0:#t8'tϻ:Ua L2$18K;F?VEK.; t>B4AA0`?CopyrigTt (c)@2`09@M@c@oKs@fBAr@Qa@i@n.@ @l/P Hs3RePe@vEPd'P2hb<M#l1# M/P?]UhzAQ1 L@3FO#۲?Fo2zP dj|aW{ޓ8cUF:&x0?F?F?F_'qoO 0Yigull4aj?ON~f0c?o+ fEeޖe?F<'?F@]?FwF%ޕol}dQ3ll BXl귺m|bBhaUe`ba`?FV ?FTh oflPI3qoiؿkeðl8` |G?T?heFnF$O?F o* leowky?{ft?Gg˂a,8b1;MHD: )&# ;h0>Th]]9 PB IAUFpX?FEsR?F+\(?F~@ t?P t`  (TJ?th/3u -ZrqKZu L,duo8UAU    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 ,p )l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ s"?(a40 9 .*2!#{0:#t8'tϻ:Ua L2$18K;F?VEK.; t>B4AA0`?CopyrigTt (c)@2`09@M@c@oKs@fBAr@Qa@i@n.@ @l/P Hs3RePe@vEPd'P2hb<M#l1# M/P?]UhzAQ1 L@3FMbX9?F4ҫP dj}ah8cUF[~K?F|D?F+Xc?F&PRcGoO 0YiM+FllZaj}0%|f0c̭ fEe.V?Fȿ̅)`oSt?F?(X:olGGTll .Xl{e{|rww@haUe:&x0?F%Clw?FAz?F 1vņflux1qoiFA(]`t߼ |~Th]]9 PB IAUFpX?F<Dֳ`?F+\(?F~@ t?P t`  (TJ?tA u -ZrqKZu Mauo8i>    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 ,p )l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ s"?(a40 9 .*2!#{0:#t8'tϻ:Ua L2$18K;F?VEK.; t>B4AA0`?CopyrigTt (c)@2`09@M@c@oKs@fBAr@Qa@i@n.@ @l/P Hs3RePe@vEPd'P2hb<M#l1# M/P?]UhzAQ1 L@3FMbX9?F4ҫP dj}ah8cUF[~K?F|D?F+Xc?F&PRcGoO 0YiM+FllZaj}0%|f0c̭ fEe.V?Fȿ̅)`oSt?F?(X:olGGTll .Xl{e{|rww@haUe:&x0?F%Clw?FAz?F 1vņflux1qoiFA(]`t߼ |~Th]]9 PB IAUF$?F,w¾`?F+\(?F-ku?P t`  p&k?t?̈n=u -CmoLZu L,duo8j>    PEJڍU[\/(?&. ?AbbY!z@Ae bbCt c(a4b  # b(h#{ h#΍t(tI*#0f88vb.#i L5<1,(&$7/(D%"6/5;0( t.*B#11`?CopyrigTt] c).@2`W09.@M&@c$@os@f,BAr @YAa,@i@n}..@ Alt@U $HsxBeL@e$@v@dl@"h<M#l# Mt@?]UhzAA!J@#FMbX9?F$x0OԛP dj}תa4(SUF[~K?FE?FSc?F?#oO 0YM+Fӱ\*aj,.}a$?# XEU"n?F +?FbEd?F v<olTBJ\LMYBltavXlp@XEUv/?Fpvw;pg?F $hއ?FLvo~l/AD0qYJg ַBl)$ԞXlDB:XU^F.fّPKk^Rl_[Ei?1GAf`d?Sq+a,(bvHD: )&# ;h0>Th]]9 PB IAUF$?F(n?F+\(?F-ku?P t`  p&k?t A4u -+CmoLZu Mauo8k>    PEJڍU[\/(?&. ?AbbY!z@Ae bbCt c(a4b  # b(h#{ h#΍t(tI*#0f88vb.#i L5<1v(&$7/(D%"6/5;0( t.*B#11`?Copy_rigTt$_(c)$2`W09$M&@c$@os@f,BAr @YAa,@i@n}.$ Alt@U $HsxBeL@e$@v@dl@"h<M#l# Mt@?]UhzAA!J@#FMbX9?F%x0OԛP dj}תa4(SUF[~K?FE?Fdc?F,?#oO 0YM+Fӱ\*aj ,.}a?# XEU"n?F{ +?F(%/Nd?F<olTBJ\MYBlU{XlpDc@XEUv/vw;pg?F^$hއ?Fvol/AD0qYf ַBls$ԞXl+?B:XU^F.fّPyKk^Rl_[Ei1GAf`dSOq+a,(bvHD: )&# T=h0>Th]]9 Q BUFt[@#?Ft\?F\HRq?FƯK7?P Bt`  =0[?tRwq#ll$nZBu duo7l>JA]^'? ?Az@b ( 6f  )ϓb= + _? ' 88o?z A s +=  /)/;/M$[+["-j!Q U1[!x(ar4 )] "'}#{t }#BtNQ8t_:Ba~ PLH2!B8;N;Q6B?5;N; tt>8VAVA `?CopyrigTt (c)@2`09@M@c@o%s}@fB|Ar@Aua@i}@n.@U 0l@ HsBUe@e@v@d@ 2h<M#l# MT@?4>UhuQuQtA(@QH1j LZFهgϰ 7j bL\GlR] 6S-fMB:MbPdc mdb`GeGEWe$oˏZ\ai?bvIGeU@Vϰ+@_?F23Th]]9 Q BUF偃?FKG?F\HRq?FƯK7?P Bt`  Xkw?tO [#ll$nZVBu auo7m>JA]^'? ?Az@b ( 6f  )ϓb= + _? ' 88o?z A s +=  /)/;/M$[+["-j!Q U1[!x(ar4 )] "'}#{t }#BtNQ8t_:Ba~ PLH2!B8;N;Q6B?5;N; tt>8VAVA `?CopyrigTt (c)@2`09@M@c@o%s}@fB|Ar@Aua@i}@n.@U 0l@ HsBUe@e@v@d@ 2h<M#l# MT@?4>UhuQuQtA(@QH1j LZFهgϰ 7j bL\] 6-fMB:MbPdc Ɵmdb`GeGEWe$oZ\aibvIGeUWeVϰ+@?Vpk_xu j aGe@We_ooh2Kt]u3rA 4s2HD: )&# T=h0>Th]]9 Q BUF͜?F$6H?F\HRq?FƯK7?P Bt`  W׎?t #ll$nZVBu auo7n>JA]^'? ?Az@b ( 6f  )ϓb= + _? ' 88o?z A s +=  /)/;/M$[+["-j!Q U1[!x(ar4 )] "'}#{t }#BtNQ8t_:Ba~ PLH2!B8;N;Q6B?5;N; tt>8VAVA `?CopyrigTt (c)@2`09@M@c@o%s}@fB|Ar@Aua@i}@n.@U 0l@ HsBUe@e@v@d@ 2h<M#l# MT@?4>UhuQuQtA(@QH1j LZFهgϰ 7j bL\G@[ 6S-fMB:MbPdc mdb`GeGEWenˏZ\ai?avIGeUWeVϰ+@?Vpk_xu j aGeWe _ooh2K]u:3rA 4s2HD: )&# T=h0>Th]]9 Q BUF[@#"?FJA]^'? ?Az@b ( 6f  )ϓb= + _? ' 88o?z A s +=  /)/;/M$[+["-j!Q U1[!x(ar4 )] "'}#{t }#BtNQ8t_:Ba~ PLH2!B8;N;Q6B?5;N; tt>8VAVA `?CopyrigTt>(cu)>2`09>uM@c@os}@IfB|Ar@Aa@]i}@n.> 0Ul@ HsBe@e@v@d@B2h,<M#l# M@?U4>UhuQuQtAJ@QH1j LZFهϰ 7j bL\ѻ}@[ 6-fMB:ʩMbPdc 2N3odb`GeGEWe$oZ\aibvIGeUWe4?Vpku j aGeWe_ooh2K]u3rA 4s2HD: )&# ;h0>Th]]9 PB IAUFv?FdË.?FQ?F?P t`  Smo?tϰոČ( 뾅@l* 9u duo8p>   ] EJ]_DRb(?&. ?Az@bY(e 6f h )ϓb k+ _?Z'e 88o?ze Ae s[+ h g/y//$# L:5 /sU"K1*a4 9 2(E#{ #t8tϤ:U a L2T18K;6Ԉ?@EK; tͺ>B40AA0`?CopyrigTwt c)@]2`09@M@]c@os@fBRAr@Aa@i@Wn.@ 0lPU HsRe@e@v/PdP2h<M#l#A MP? <>Uh$QQ(]A(Q1 LZ3;'xP 7jbbFb7@c 6{fM8cUFnDdTh]]9 PB IAUFSQ=?F|=?FQ?F?P t`  4o?taVpRKČ( 뾅@l* 9u auo8q>   ] EJ]_DRb(?&. ?Az@bY(e 6f h )ϓb k+ _?Z'e 88o?ze Ae s[+ h g/y//$# L:5 /sU K1(a4 9 2(E#{ #t8tϤ:U a L2T18K;6Ԉ?@EK; tͺ>B40AA0`?CopyrigTwt c)@]2`09@M@]c@os@fBRAr@Aa@i@Wn.@ 0lPU HsRe@e@v/PdP2h<M#l#A MP? <>Uh$QQ(]A(Q1 LZ3;'xP 7jbbFbL7a 6{fM8(a?nDFF!@~qWoO 0dTc I\rdcd bjUkgaPbeEef"v?Fr6d?F?kĀqo`OivddlXr`tF0sK|٢jr3t!KU:G}?{]rLl} ]|q3xnTrg?F<ے7pooZgtfio,V|=] 5ve&1?Fpn?FTh]]9 PB IAUF!?F?FQ?F?P t`  + {o?tHUČ( 뾅@l* 9u auo8r>   ] EJ]_DRb(?&. ?Az@bY(e 6f h )ϓb k+ _?Z'e 88o?ze Ae s[+ h g/y//$# L:5 /sU"K1*a4 9 2(E#{ #t8tϤ:U a L2T18K;6Ԉ?@EK; tͺ>B40AA0`?CopyrigTwt c)@]2`09@M@]c@os@fBRAr@Aa@i@Wn.@ 0lPU HsRe@e@v/PdP2h<M#l#A MP? <>Uh$QQ(]A(Q1 LZ3;'xP 7jbbFb7@c 6{fM8cUFnDFK!@?FDqWoO 0dTc I\addǼbjUkgabeE(aFjv?Fr6d?FkĀq o`Oi^j^r`t0sKÊ#|pr9t!KU:M}{]r,Ll}]|9xLufTrg?F<ے7vodObdcZgtfi,V #|=c ;vLu&1?Fpn?FTh]]9 PB IAUFĊ?Fn6b?FQ?F?P t`  o?t]eČ( 뾅@l* 9u auo8s>   ] EJ]_DRb(?&. ?Az@bY(e 6f h )ϓb k+ _?Z'e 88o?ze Ae s[+ h g/y//$# L:5 /sU"K1*a4 9 2(E#{ #t8tϤ:U a L2T18K;6Ԉ?@EK; tͺ>B40AA0`?CopyrigTwt c)@]2`09@M@]c@os@fBRAr@Aa@i@Wn.@ 0lPU HsRe@e@v/PdP2h<M#l#A MP? <>Uh$QQ(]A(Q1 LZ3;'xP 7jbbFb7@c 6{fM8(aD +F2|>?FW@WoO 0dTc ?rdcd bj{^WeabeEef"v?Fddd?F܃qo`OivddlXr`tuqE|E:jr3t!KU:G}{]rLl}]|q3xngqrg?F~pooZgt_ML|\ 5ve&1?FWf?F?#0b|[m낪 z'oǵ(|F$$!ayTh]]9 Q BUFt[@#?FlIJ?F\HRq?F#o˯Z?P Bt`  =0[?t7c`C#ll#Bu duo7t>JTA0f88v?WYϳAjL@z bbb!' 6Y % )! ! ,+ <?' o?z #a47% =) J"#K#({% (+ (G t#Beı?A>L ?A"&"&$/*8%,"t:"t>  A A6 `?CopyrigTt _(c)D@2`W09D@M<@c:@os4@fBB3Ar6@oAaB@i4@n}.D@ Al@U :HsBeb@e:@v@d@2h/1<M#l#@7? M@?(>Uh7E P+AA!{ L:F A7<6j% bRzg9<2 "\MbPdS mT W5U6ik0YaYvq 2HD: )&# T=h0>Th]]9 Q BUF偃?F (?F\HRq?Fn˯Z?P Bt`  Xkw?tɣ#ll#VBu auo7u>JTA0f88v?WYϳAjLv@z bbb!' 6Y % )! ! ,+ <?' o?z #a47% =) J"#K#({% (+ (G t#Beı?A>L ?A"&"&$/*8%,"t:"t>  A A6 `?CopyrigTt _(c)D@2`W09D@M<@c:@os4@fBB3Ar6@oAaB@i4@n}.D@ Al@U :HsBeb@e:@v@d@2h/1<M#l#@7? M@?(>Uh7E P+AA!{ L:F<6j% bRzg9ǩ<2 "\MbPdS mT W5UO6ik0YaYvq 2HD: )&# T=h0>Th]]9 Q BUF͜?F4@?F\HRq?Fn˯Z?P Bt`  W׎?tϘsW~#ll#VBu auo7v>JTA0f88v?WYϳAjLv@z bbb!' 6Y % )! ! ,+ <?' o?z #a47% =) J"#K#({% (+ (G t#Beı?A>L ?A"&"&$/*8%,"t:"t>  A A6 `?CopyrigTt _(c)D@2`W09D@M<@c:@os4@fBB3Ar6@oAaB@i4@n}.D@ Al@U :HsBeb@e:@v@d@2h/1<M#l#@7? M@?(>Uh7E P+AA!{ L:F6j% bT ü2 "\MbPdS mT W5UO6ik0YaYvq 2HD: )&# T=h0>Th]]9 Q BUF[@#"?FLo]Y?Fo?Fn˯Z?P Bt`  ?tC2.8Xj#VBu auo7w>JTA0f88v?WYϳAjLv@z bbb!' 6Y % )! ! ,+ <?' o?z #a47% =) J"#K#({% (+ (G t#Beı?A>L ?A"&"&$/*8%,"t:"t>  A A6 `?CopyrigTt>(c)>2`09>M<@c:@o%s4@fBB3Ar6@oAuaB@i4@n.>_ Al@ :HUsBeb@e:@v@-d@2`h/1<M#l1#7? PM@?(>Uh7E +AA!{ L:F<F6j% bRzg9<2 "\ʩ7MbPdS 2NoT W5UO?6ik0YaYvq 2UHT5D B &# T>h0JTtiiM ENUF|u(?Fڋ?FPaW?F ru?P WNtQ` 786R7?tUau}wAi8;(\I2-nNuj mu){xE0f88wv?AVQ Ӎ!@#b#m@b  0#  #W(3 (o+&T" #t#NĽ/?. ?M"&$a%$$,/>*L%i,T"tΞ*T"tR.R11#`?Copyrig`t (c)02l090M0c0os0f21r01a0i0n.0 Al@ 8sBe0e0v0@d@"Vt!X#xB #/ @T,UtE1UA-!@nZ pvm?S׮(%UQG@Y9"S\FkV5%UЗn@‹Pهϰ=\WQS\OXbiTQY%_7_I_[_DQOOOO__^̔ԍ?f Q́)f@vVP|?5^BlӿIY:6Xl?Ib ʏ܏EABTfxF\HRqCk?-q_WaW?ϰ+@"Bl!H,BXQnB)fFޖBoT[inJ\ۙgyAHD: )&# T=h0>Th]]9 Q BUF4@ ,?FlIJ/?F&1?F3(e?P Bt`  N!?tw;%m4tMuVBu auo7y>JAS`? ?Az@bbb! ( 6 )  '+ ߈?/I-Z#mg!z A " ././@/R+,g/y'sU1,ar4 )] "#{t #BtNg8tu:Ba PL^2!X8;d;Q6X?E;d; t͊>8lAlA `?CopyrigTt (c)@2`09@M@c@o%s@fBAr@Aua@i@n.@U 0l@ HsBUe@e@v@d@ 2h<M#l# MT@?4>UhQQA(VQ^1| LZFX} g 7j b2ɶGO@[ 6SCfMB:ZMbXdc $I$I܍+d `2aa]Eme'la'iL.G]eU@9/$E?;FslAka,dHּgmeoo(oh2gyu3rA 4s2HD: )&# T=h0>Th]]9 Q BUFnټk-?F.޺s?F&1?F3(e?P Bt`  3?tʼnm4tMuVBu auo7z>JAS`? ?Az@bbb! ( 6 )  '+ ߈?/I-Z#z A* " ././@/R+Yg/y'sU1,a4 ) "#{ #BtΜg8tu:Ba L^2!X8;d;6X?E;.d; t͊>8lAlA `?CopyrigTt (c)@2`09@M@c@oKs@fBAr@Aa@i@n.@ 0l@ HsBe@e@v@d@2hb<M#l1# M@?4>UhQQPAVQ^1| LZFX}  7j b2/O]M 6CfMB:ZMbX͉dc ?$I$I܍+d 2aa]Emekla'i.]eU@;0$E?FTh]]9 Q BUFܲ?Fj$?F!?FTUUUɺ?P Bt`  &?t§= ףc?ckBu5 auon7{>)JAUVJp? ?Awz@b_bb! (݉ " '+ ' qq?z A  +S/.&68))E! '+ g?uW-sUUn*a4 8) "u#{ u#D!tΜ?8tM:Bav L62?!08;<;60?5;.<; tb>{8DADA1 `?CopyrigTt (c){@2`09{@Ms@cq@oKsk@fyBjArm@Aay@ik@n.{@ 0l@ qHsBe@eq@v@d@n2hb<M#l1# M@? Uh,cQcQ] '1PbA.Q61b L`w"?FMDA dj? |m cuۡ'1 6!1fM{":F$3<6d kS=ѣ<n2{!5E[nLa vogaKeE[eV_@cbc g@]amr\GDž}iNu?FS%f|]tElFTh]]9 Q BUF:C<?F8!)^?F!?FTUUUɺ?P Bt`  Ȼ?ޫd?tI= ףc?ckBu5 auon7|>)JAUVJp? ?Awz@b_bb! (݉ " '+ ' qq?z A  +S/.&68))E! '+ g?uW-sUUn*a4 8) "u#{ u#D!tΜ?8tM:Bav L62?!08;<;60?5;.<; tb>{8DADA1 `?CopyrigTt (c){@2`09{@Ms@cq@oKsk@fyBjArm@Aay@ik@n.{@ 0l@ qHsBe@eq@v@d@n2hb<M#l1# M@? Uh,cQcQ] '1PbA.Q61b L`w"?FMDA dj? |m cuۡ'1 6!1fM{":F$3<6d kS=ѣ<n2{!5E[nLa vogaKeE[eV_@cbc g@]amr\GDž}iNu?FS%f|]tElFTh]]9 Q BUFx]?F{<W?FU?F3z[j˺?P Bt`  Q`7lg?t M&XRkBu5 auon7}>)JAa^!? ?Az@b_bb! (݉ 6 , )  '+ g~X?ZI-Z#!g![z A " ,/,/>/P-[?+g/y'Eي,a4 ) "!#{ #Btg8t)u:Ba L^2!*X8;d;6X?E;d; tR>8lAlA `?CopyrigTt (c)@2`09@M@c@os@fBAr@Aa@i@n.@ 0l@ HsBe@ej@v@d@2!h<M#l# M@? 8>UhoQQ]AVQ^1| L@?F҄! dj _٨la6ztJB: 7d /k?yԷ&Dh]EWemkp+ɉ 5d}bGeUWeFBϏ+@ol0ju?MDhnMbX0j`QDhnC<o+o"Th]]9 Q BUFT1#E2?FxLΉ?FU?F3z[j˺?P Bt`  S|.?tk, &XRkBu5 auon7~>)JAa^!? ?Az@b_bb! (݉ 6 , )  '+ g~X?ZI-Z#!g![z A " ,/,/>/P-[?+g/y'Eي,a4 ) "!#{ #Btg8t)u:Ba L^2!*X8;d;6X?E;d; tR>8lAlA `?CopyrigTt (c)@2`09@M@c@os@fBAr@Aa@i@n.@ 0l@ HsBe@ej@v@d@2!h<M#l# M@? 8>UhoQQ]AVQ^1| L@?F҄! dj _٨la6ztJB: 7d /k?yԷ&Dh]EWemkp+ɉ 5d}bGeUWeFBϏ+@ol0ju?MDhnHMbX0j`DhWef9o-ai qGeUoo$o6o3UHLD )&# R>h 0JTlaaM>UF+1#E2?Fgj?F0U?F_gw?P >tA`  9|4?t <'Ŵ\1,_Œ X">u eu!s7-JɅJUU?HA9 j@7tt7 b:*H&tH  th*Nĵ) ?MB"b;)H&e8H m 3 H -US4o?FPjj?6ֈ@!QpoĬگ eoĩ́ F o 01G}}϶@b@mp?#nʼPV]O߸uy\l2_+ʦE}@p5"iРo~e*al|ٍşןHD: )&# ;h0>Th]]9 PB IAUF~Q?F|}Y?FF(e?F=PFo?P t`  IGr?ttƯ.5q+ ~Жu auo8M> `  EJƱZVJp!?&. ?Az@bbbe!Y(ne 6 p )l l w+ g?-#U!׷!zme Ae [+j/|//-g#+ s "(a40 9 *2!E#{0#t8tϤ:U a L2T$18K;FԞ?VEK; t>B40AA0`?CopyrigTt (cu)@2`09@uM@c@os@IfBAr@Qa@]i@n.@ @Ul/P Hs3RePe@vEPd'PB2h,<M#l#_9M/P?]UhzAQ1 L@3FO#۲?Fo2zP dj|_aW{8cUF:&x0?F?Fώ?FX'qoO 0Yifull4ajS?N~dh+ fEeޖe?F<'?F@]?F\F%ol}dQ3ll BXl귺m|ԇbBhaUew```?FV ?FTh oflPI3qoijeðl.` |=T?heFnF$OĒ?F o* leowky{ftGOg˂a,8b1;MHD: )&# ;h0>Th]]9 PB IAUF~Q?F8?FF(e?F=PFo?P t`  IGr?t+>`5q+ tЖZu Mauo8>    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 ,p )l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ As"(a40 9 *2!#{0#΍t8tIϻ:AUa L2$18K;F?VEK; Kt>B4aAA0`?CopyrigTt (c)@2`09@M@c@os@fBAr@Qa@i@n.@ @l/P Hs3RePe@vEPd'P2hX<M#l # M/P?]UhzA(Q1 L@3FO#?Fo2zP dj|a{8cUF:&x0?F?FȎ?F'qoO 0Yifu,oi4ajK?N~d+ fEeޖe?F<'?F@]?FsF%ޕol}dQ3ll BXlRm|bBhaUe`Ԗ``?FV ?FTh oflPIϮ3qoiGkeðl2` |FT?heFnF*OĒ?F o* leowkyftGg˂,,8b1;MHD: )&# T=h0>Th]]9 Q BUF&d29?Ft`0L?F(\µ?F^Sӻ?P Bt`  o?tbS yAP FBuj auo7>RJ[0U?<ALv@tt7 }b6*D&tD  td*JBı) ?A>"b7)D&a4D  V3 D 8/td/tRy.x1x1`?CopyrigTt (c)02`090M0c0os0f21r01a0i0n.0 Al0 8s2e0e0v @d0"h0!<M#l#/MlP> @?UhLAA]R 1 P1"7Ж1bA>!J`oO2z[ dja_q:z׍ Q 6VMB@챝/P\`_m;E,Ui5Uޖ?FQ[5lf\VU'EUY2Ruݯ?FU]˖7sf\pdѣSYUWfe _zx]݅om{ZcXUFRP\g[)JXAp| rhQ#5 IXAYaLPւ?FتcP\T f\3$sXAp"۲ ElX1YA-k?FFoZP\fyf\!XAYX%?F8K7P\{ 䘷f\&SAY&1l?Fr>|]P\-]qiYip~ X1#g~jt-? XAY?F ףp=P\' f\?P=Rw㹥X'RXT}7vP\__/vnTpljlX7U/?$?vQ[E7Ժf\wUQY|>qh|P\4GN"MDX U29_KU#rA0$@C_ HN>Lo3s rFYd߫" EMF75 #C1C9 B ԙb:U @eko}+o9BG/;^PHWp (` d mHg ط8k }Oo^7tHx Dh|6A h  (8 ڏ K  9ŝ ^ B] @ Aa ]D V KfÐ ՏR &Q ~Td W 1&hY Z߮ oG'\ '^ {'aGhdgK E5'j Cm9o m% xߣ 9Xi Ȩ 8 U9( !(/# Ho&*Iط_) ?]@Y,0r019Ƚ2598 '.? ?T wp  ̠ p ʔ  pqwpqwqnwqpqqbqpppw wwwqqEwqpw߄wwrvrrwDrag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aabjZֿ~??cN׿ mF1??SbM1{V↑T*J?@ ?UG DF P# h @T(PYY# QU@jZ?@~??F?Pn} u{` ?Su#؍>>HX HlHYHH EO.LO4:UDDXXUllk'"&R",I'U25ĉq%4 ?"u'4b0{[`:#(26 U9$"3&x9"L1" ^!'>U@ÿ@ǽq^@?@VBӅ?]DSF0ZBu@`-1ZBuW@rCC!8GAB"2C9u`u `"[ b![u`2 %3Qo1o7B`?CopyrigPt0(c)020P90MPcPosPfRQrPQaPiPn 0Al` Xs bePePv`d/`VPs_SBNcPm!#5Qb41,a@o13dX453B^8=%3p63dz6z6 v24#V%30Urz3]ge<^1E U#5m Hq5twL5t{3t{ez1A+E*F7ԂX$18dT-`XQj2y`]r` MPWnuPaPtar,aOQ` UES0uPpK`ePt[eTL5Qdv],1PRd C`uK`bʦ30ޯ𯇡! PPr+=9H^p]ZaDbQUT\Կ濅APaB`Ȩ-5^]oυ% S biP aϭPeTυLPcXūa5DVߪhB:l(`iPg߸̨@߇RPoǩ|Z\@E pAD`~YxČUSPaPePlP,5ƪXp/` ATP-`54`%aPK]狥%Sb?`.A4`W`ZʦT3NwRk qa2$2`_ @Ȩ͒Y;MI`ad(`cz d ϴ兵nēAs DxP)ߑmr:atV%a Iâ@!auoDfP㞑 R `Qa/)/7M`Cl/Pد/M+QUmK`utP ?`/ D*?"?_ (b? (Dv??;Hd2QC K3` Wf}%5DVO#O `C` akO}O#ԅO` M`mRgOOɧDODp __1;OUQ1y?QI_[_CqtJw fo SU@jZ?Fű?%v%vKpIp(u.p` s?vbup` ? B=݉`C,qtMp5mQ-́<)oTm}QX.q͏Pߊӥ T.OtxFf@>|pÿruob쁙JRq KN̒rr$QUvvvrsE"`RoZK1& be9P bb OObr@muP`TaC]1eߊ_e71721bKa aXaaehAaYip P`u`T_`_`Qhڑx4ӥ5f_dP&b鄞pCwF3s͵NSY:3R rV@0e18TR <շqW,@rB* B}aaaahʾYVԐ;n` %̀P&²S$1aa`NEW_ORKP2H IP_!RRЕISQTҷiroohA'0UQ?8!Ԑ0oHD # =hj0>T h]]9  5AU@jZ?F͂T??Fx?SF?P6 jt`  o?tk[>(A Vu aSuo.]&A]  *ԮJU2zGzt?@L#&A@bA#z7 5#1bO(b])j+$j&[ "*(w "?& ?AU$l/%B115 `?CopyrigTt (cu)Q02`09Q0uMI0cG0osA0IfO2@1rC0|1aO0iA0n.Q0 WAl0 G8s2Ueo0eG0v0d0"1E]4MŤ-&3 &7&l>]Uhz811U!J!u6?F+\.>djIIa? >"(EǑ I%K9E 5EU . K ;;5QIWEEEF _KnSA?8@@Bu?FDR> ?Nk"\6`bmMM\j=am {:e P> #? D"? 5-g?j4B7!B{oogr57!ibDAbE9 MuX7_'0U~rN!$a)5 5vIzHD # =hj0>T h]]9  qAU@;?FI5K?@xEL?6ѿP6 t`  bm&Qo?t@@L]WI,#u aiuoL> JU2zGzt;?@L?&A@b}#zs q#1b(b)+$&[9#H",ɺ (wH"?& ?A$ /%9#BV1V15 `?CopyrigTt (cu)02`090uM0c0os}0If2|1r01a0i}0n.0 WAl0 8s2Ue0e0v0d0"O1E]S4MŤ-9#b3 b7&l>]Uhzt1.A!JN!m.%-+0djV1ax߃S(FJ-&?F mO"> ?Nk"L[Majnha_:e P> #? BK=o? n-?j4Bs!B{__Wr5s!D8E6V 6?wj_|_ ^XE.U@z T6?F @' d_mOoT \VyWxRkrVo_bVh*g:n"'UaEjz36>CN>?Bn}]zGvN7V iDAbE9 MX+G'0UJPN!4ae5 MaHD # =hj0>T h]]9  U@jpiH?F^?@$?F]F?P6 t`  !a&ao?t,F=۳=u;u auo>J2zGzwt?@ʐLAw@b#z1b](b!).+I.&[-m(?0& ?A$I0/Q%!!5 `?CopyrigTt (c)02`090M 0c 0os0f21r0@1a0i0n.0 Al[0 8s_2e30e 0vq0dS0T"!E]$M-# %'&l>]Uhz!1!JF% djc~YZ(_N9zOMGE%_EH$SwO"K ңHE ^&_8_WE_OqOHOOi&DAbPE9 MX7'0UUfb>!$a % f1jHD # Uh4>T#]]9 M5AU@jZ?FL|+?@?F({~?P6 JuM` ?u JYt )t7zEA2&L_D?. > >tJU2q K?=@MJ&A@-b9(+bG)T+T&J[#"#a?& ?AH?/`)#115 {`?CopyrigTt (c);020G09;0M30c10os+0f92*1r-0f1ai+0n.;0 Al0 18s2eY0e10v0dy0z"!4B#e-?3 7)& b 0K8>U# ]A]A "1!ъ!PzQ <%OYAJEU . K;;\%W%EF($L[.FX5Eai%?F 6?wL;] W-\TB⤲8?F@&SA?F @ ?Nk"L'`bmMW_Ye[ٯ7 VK=F: [jr ? D"? XZvD?ta@Boogr5;!QEx]SiLO MLGXa~WOTZiAle59 XG"'0Uc&N!$05 .HD # =hj0>T h]]9  IAU@K?FOgVb?FY%?Fwᳬ?PJW?>t`  ^Z?t#ə.E @x?r?/{4܂ G _Z+u u$ >  J JpU?43f<!.&P?b3bbfz@1bAe&bq$d 2zGzt.#@LT"&r(~&i$q)(+}'i"~*#81815 `?Co yrigTt (c)o02`09o0Mg0ce0os_0fm2^1r 1am0i_0n.o0 Al0 e8s2e0ee0v0d0"11E]54M-#D3 %D7.&lUh#7 V1#Ai!J# F/?B1B  VRiAAbE9 MX G{W'0U*R2N!I$a {VZUHPD  # #>h0JTpERI MU@u6?Fjc{g&?@%r`5B?Fm_F:Is?HNtQ`  II?t#]  _ii$!`kNu  iu%wj>M JQ T       "@&&JNU2"?H@Qs#N&A@b(bU)++&RNp}#>H1#19 ?#bbbz| R&/5R}#11`?Co0yrig\t (c)02h090M0c0os0f21r0Aa0i0n.0 Al!@ 8s%Be0e0v7@d@21a4t#-}#3 %746lJ#$JUp5 3 M19 1!q(!FnElrkRt# 8$kcD?@숒@)?FP?P"EkU |1\iOT/irvs}i>`_,of :m ,M ?? S&d2? *b?r4B!B oo1gr #5!>%(EQOOOO__FAc1_C_ D4ևS]_o_yRX+{_,__ #R__ (YQoSo+o=osd {oEeooooooFyUy{* hDVW(I X"c7I!pg bf'iMjSE t%XyG|'0UŢŞN!O4i |UGD # hz0TdYYBU@(%)?Fxg^?@0߯H?Fs7Uݹ?P} t` 87?t#_)TeΦu ]ukv  ̝L&UUU&I&3 U!!`?CopyrigPt _(c) 2\W09 M c os f"!r 1a i n}. Al00U (s42e0e uvF0d(0'HS$#-## 'I?k=#ǒ 2j$B##0U'BM3@&@F0Yk} #HA%DKb5DK3DK5DKED$!GiAZG5(|IDFX7yW'&Dŭ6!4YA yVZHD  # =hj4>T!]]>#AU@0߯H?Fz)e??F˞9q?P6 t`z  ?5t# rXѮu)Nu;):O]ע0 &> # " "+"+"+"+" $+"T-J[U7 ??& bA@ 2b4-#2zGzt#+@ Li68!6 ?}; 72U!:B#AA5 5`?CopyrigTt(c)20F@9M2@c.0@os*@f8B)Ar,@eAa8@i*@n. Al@ 0HsBeX@ej0@v@dx@)21"DM-,;?C G& l>]UhzAE!A#!ְ1J`#@{&pz?FUy{?NT,dKj&b&R&M/8T9K-q?F@F?FdG0 >Nk"?YE*]\LThKjfGD&Qhj ?iU3UGe&Y`?@/Jb)h5oWKoWo;èKod}l$ro`nE2K?Fˌ%4G{?F -q? eZR^{|\?6?vodmP}l>MBe 9 N 1iS? 1?grl#51:PO"4ga@Sq(UE^@O|ǐ[`ߡa v2rbA @3ijD&}laqOz o?#WHZ'Qu=*[^N?F]%P?@O&@ c?FаM<n ?` eb0)\(Pfodm}nv}l?V5(?q$Ix[cN#W{ #iA@&QeE9 MX''0UjdN!0 /HD  # =hj0T h]]9 #]AU@}%?FR$,?@6#V?Fc_3֡w?P6 u` ?u#t  3zM%t3ws%.<%H._'B> #PJU2N贁Nw[?@ʐL+&A@wbu](i+bk)%+&p%#4">9"<5!?& ?M#bbb͓z$ p&"/%T%#L1L15 w`?Co yrigTt (c)02`090M{0cy0oKss0f2r1r 1a0is0n.0 Al0 y8s2e0ey0v0d0"E1E(]I4M-%#X3 X7&l*>(UhE j1#$Ac!J`%#@5e$_F??!foA3nBM( V?FJ-R?@HQ??FS!R?P| llHL6VLD5E+v;*AůʙH: 8snP%$? k?Q? \?4_!__WrA5_! R,U3OC@IL?F4~Kz?P)Oy޾ T!]]>#IAU@܋?F2Oa>?@#r`5B?F*ݷ?P6 t`  >B?\oEt# ŖoZu 0Nu;Y:|8>$# JpU>##<?2& ?5bbbz@b#ANi&bu$'h 2N贁N[2$@ LX"D&v(&m$ :;T'm"*B#d1d15 5`?Co yrigTt (c)020090M0c0os0f21r 1a0i0n.0 Al0 8s2e0e0v0d0"]1"a4M-/p3 p72&l>0>Uhh= 1#!eJ`#&FNTM\jh1B,RBM(!JoUy{O_ e@ So4(D@^Tw?F]֝ä ?Nk"?w_KT\T+\_(Kjӷjmplhj -`\TPQE\Uui,St_o u~!ՠXEO9= T?FL?;uQ_Pm"rA @3sjQ1lğ=GoYniAleE9 MX|'w'0Ur^N!M$|A vzHD  # =hj4>T!]]>#IAU@܋?Fj?@2r`5B?F^ݷ?P6 t`  >B?\oEt# 6ΠZu 0Nu;Y~:#&}>0m8>  PJU2N贁Nwk?@ eL&A( 5bM(b[)h+h+$h&#[-M$#?& ?b$Z*'*B#O1O15 5`?CopyrigTt (c)02U0090M~0c|0osv0f2u1rx01a0iv0n}.0 Al0U |8s2e0e|05v0d0"H1P"L4M-/[3 [7&l>0>Uhh= m1#!S!J`#*&FPUy{_?NTMjC1gc RVMʣ(D#@ ![?F"$. ?Nk"W?IKTLTcKjRlhj p=' (*!)i,SO2Kes9T;QEGUFw6qX}__TM7fTZT\Dž}_P^52XOES"rA 0S#Es3iAleE9 MX|$Gxw'0UrIN!4gA xvzHD  # =hj4>T!]]>#!AU@܋?Fc_v?@#r`5B?F*ݷ?P6 t`  >B?\oEt# ap'EZu 0Nu;Y:|$># BJpU>#͙;? & ?5bbbz@}bAA& K&@ 2zGzt?"K@ L0"&N(bM)+TK/8Z*B<1<15 5`?CoyrigTt (c)s02009s0Mk0ci0osc0fq2b1r1aq0ic0n.s0 Al0 i8s2e0ei0v0d0b"5194M-t/H3 H7T &l>(>UhE=3Z1#E!J!FENTMjN@1h(NoUy{OO e@ o)4(D@^Tw?F]֝ä ?Nk"?'_KD3\T+\(Kj?ӷjmlhj P\ DiAlePsI=MXsG'0UzbZ6N!%$0 sFEjHD  # =hj8>T! ]]>#!AU@܋?F*?@#r`5BW?Fw?P6 t`  >B? \Et#տ|u l4RQu?]>I$>I# JpU>͙#<?& ?9bbbz@b#AE&bQ$$D 2zG[zt#@ L4"&R(^&I$Q)+]'I"^*Bh{.M#To1o15 9`?CoyrigTtk(c)k2009kM0c0os0f21r1a0i0n.k Al0 8s2e0e0v@d0f"h1l4M-:?{3 %{7&l>(>UhE= `51#I!J49fAn^ R)X f"B!Jui,SG?RSlOS u~!N]8-19= T?FL;uQ ?Nk"?YVTQRXQOnğ/=i n (\ wTiAaePE9 MXLg'0UbZiN!)$0 Lf`jUGD # hz4TYYT#BIU@Sj'ో?FL]&?@j>(?FeTot7Ѻ?P} u` ?u#8k/8CU(.88Lt `lm3tϭ^}ѯnAf'wyU~##0UH"?@&#!!*`?CopyrigPt (c) 20 9 M c os f"!r !a i n. Al (s2e e v0d z!~$#B-#,# 'O#^ =$&#4 {6{6 w2$e#ab3W) #LG,%,Dj8Hg\&dPaxO6'TXAXA"(2Ca%?28(B,"iha05( e&XV7 W'G${6!t40 VZHD: # =h4>TB#]]9 T!AU@%?FYp5?@_RP6 u` ?Mu t  !o)t~7RnB25"!)Lv$>   EJtU2q?=@dLA@-wb%(b3)%@+@&[w#?& ?A+/L)R!!5 {`?CopyrigTt (c)'020309'0M0c0os0f%21r0R1ai0n.'0 Alm0 8sq2eE0e0v0de0f"!$MEBY-?# '&rl U# #7 1* #p| '&)1&JH FFѷ |-B1 @V&Rl( b 0Ale59 MX7'0URN!$0% VZUGD D# h0T@dYY]BIU@j>(?F8??F/I6?Pn} 8WdT t`  7?ht#rL&~n[f1uowuwU!!`?CopyrigPtv(cu)v2\09vuMB c@ os: IfH"9!r< u!aH i: n.v WAl @(s"Ueh e@ v d  #S$#$- ## '?w= # &#24 6 6 $B# #0U2 3@& wa#3~  #dH1%4Gi^#5 6X'EGK'4 6! ] EFYJHD # =h4>TB]]9 \#!AU@#.?F/I6?@P t`  gjo?t#T U $YhAn m7 u)hnx Fu!)J hI 97eyh?#!?9& aAbA@_"bg)b$g)bIg$2zGz9#@L@&h*%}$f*+T'_"*BL1L1`?Co}p rigT}t((c)(W2009(M{0]cy0oss0f2Rr1ru01a0is0n.( AUl0 y8s2e0ey0v0d0E1I4Mb-X3 X79&l)Uh# j1#_!J FF$[ 7#e T$V3RiAlPeE9 XW'0URZFN!^0 VHD # =h0>T@h]]9 #U@딃r?F/(?@2?FkF_w?P t`  ;0K?t# y_h:.A>Dj# ixsj||yyh|j|Ay"s"y,"s,"yJ"y^" yr""y"/y"a|"1y"8y":y";y"|`AUhMq@q] y a7T^1 hjP!,!J!^!o$!$U#$%&U'()*+,t|q!a!U234567$9$!1&1>74Ua#[aJ`S@ɞd?F9^2d3Qqs^2tY7N26J6M#hN1y-loG?gn`bDPu6(āThq 6p?F!_T?@R h^*B?PQi e>amabƫWSuMD,Xud3, utSқJ! \&\xZ? $Zas? V =? @S?d2tR@B8BoRį֧r3Cc EH ]&H[Bѻ?@lML6~ ;m`~b&¨r?+J^t/qO@? [,!rPצ 2XQqH zg?F,53lܿu  ?FM9(֜2Ar}JND7UØB]ٿ?@h߾#?Fd~5ȿMuPu`~dg}-S/9u}DѺ f <-@uušJAV+ǥ8xP?\ q|?FKyhQ~2vTPf=?PoyGV(na~u3vu;*G1+u~ݏֻA_ ^Gϯᬅ?oQo!|b0QJX^?Fsm?@@޻Pg?POWLKz Fw^=g%fԧ!6&]JVbGᬤ? o[oQr!rmz@zg?@f(?FVɱC OPKMgBlVܖVVwVsS3O_ܘ=w?FKL?@jP0A`QʱH=lTG5OxOeuF|Fv=/Fꞏ ,-<60 ]Cs~?Mv1E GZ}v -# &<"ݝK-'>TAFd|6δ̙2{# ,',v #cX#JREB'~5-O$ ,RI~  `ܝ-C-X-_]bd% ,Wl' 4%ŀ>-խ@ײc& , Ǡ4 \lb\c>-R땳J ' ,+E :{(b\s"=]& a:U( ,/?Fb\.bLOOMևQ:U) ,!`3?F k?%6fSԿr`* ,Oڿ?F&Kba,e~Lʴ2ͷ+ ,b d?FjFŋݸML, ,Z׺ı?F bҢu W%r;z- ,TUI8?Fs%:v ~LSa@ . ,3Pވ?Fb^vO$)yϊ&Lؾ1/*mCe%f(~5JOAjuLīt~eq>aT~.j&],_10y՚?Fr`QSٵ?F艿O:McfdilFU1i;}m&R F$w|!l~1`-?F~J~ 03y<$-t9BIL{HiG,LDd|jph:OE 4b\{~-K 6,Ku20e%+~L-r; 7,kh}6`E׻L?S)` {A8 $Fٞ@`o?F%&0MuPu9KdfǸ;}-UL󥶚!s@+C9,*}3?F:ט26-*NY'| ݑU8am?FYe~Kp?@ŮM?F@_O`P jBނ> l'xk超VSOB;6{.f9;?@ v%e??Fh1*o/m_~!Wx ~)j |ALyUƅ?PbO__<J+t?F"e?@'IȂl:xl@׭9,&͓S2&n&Yۙo> =~vU^4Q?@,z"TEo-<[?|8q&?FCv?@s&Ŕck>\ :A:z5,7ح-idsjѦD;gcZT#n$!$ɞd?Fх@Z f<x.Ϗ:"r 23ED'佴9Ki PyT A$))X#!('0Uqŝ)) (h(J TEI 3aAU@jZ?F({~+?P >uA` ?u#ΕMJ*A )83*#<VQ 9jQ 9~Q 9Q 93(QA = Q(Q.$* BT`t &h)&4t   4t"z"pbE#"J>U2zGz?@9 3>+6A@"b]8bk9x;x6N2 !\4N%323326 2Mc2b"k9Kh7N2ׯa : R;l   4"ABoogr#5"Ap(U3TH P/?@ yjPvf MuPu@YF]ul9;VmMgHr f 9LTBUx]Si\QE[?MLx/r?FPzQ- %YAxlQY?U . [ ;;\upQYF)$r[.Fxai%?F 6?w\^ W-\Xj ~ɽ7yކ}dOflA=$'p$`4U@x@4S>aai6$xi'e!aS#8&`iMiI51Xԥ'0U6PE0 H?>_;s 枹\$qG"F8 S\ #] 5OB d_ ~do@+o[sGx ofj Zn XVr 84u h+y | F֛L  6ψ  ۏ 0< 7(3<ϖ NX5< 7< 9<Y^;< ><* <( &UFD  h(^TYYBUFjZ?F~??x<F BPG(?P } X ]B66]  TTUTTT"9Td9TȼHBU?F? ?B@L&d2?@-Q(\.,c(A.sU!&(/)1(  0%YB`'FT,serv2,comput"4di0t0ib04d0n0t;w*0rk!ea| (SG& i?!3E?? ?| wp  p | qw qwqw{pqpqwqqpqvppww'wwwnbwqpwoww6zwxvDrag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aabjZֿ~??cN׿ mF1??*t {V↑T*J?@ ?UG DF P# h @T(PYY# QU@jZ?F~?tP} u` ?u#2>D>HX DHlHYHH EOe.O4:DDXXll*k'"&J",':U2%5%4 ?"'{4b0u{[`:Q1#26"*!^ U9$"3&x9"L61 2!'@>e@ÿ@qn@?@fB?BmDcF0)B-u/@`-1Bu@rCC5GAB"2C9uv`u `"[ۢ b!]u` %3Qo1o7B`?CopyrigPt0(c)020P90MPcPosPfRQrPQaPiPn 0Al` XsbePePv,`d/`VPs_SBNcPm!#E5ab3P=` o13dX45CB ^8=%3p63dz6Pz6 v24#%3+0U'rz3]Jge<^AE U#D5m Hq5twL5t{3t{LEt{t{y {et!{|tYwmAdaT׃IUBT$1H@a@a20)L21632CLB3P1$125jb6w  7C|hh2E)*dQ 8ŔIQIQA11CB;1XrbYqea>!bz1AE:FG$18dT=`XQj2`]r` M`n+uPaPt+arp` ?bup` ? B=ݙ`S,t']p5#mQ-݁<9odm'Qh>qݏPT'._t'xVf@>pÿЅobZbq [Nܒrr$ aUvvvrsU"`Roj[16 beI`bb __br@muP`TaSm1u _u'G1G2Ab[a ahaauhAaYypP` u*`To`o` axx%D5f_d`&b鄮pSF3s͵NSYJCb rV@̓@e8d=`LqW,@r B:р.ǏR}qaqahYV䐷Kn ` %݀P&S41qa`NEWORK`2H Po!RRIJSQ*io"ohAo'0Ua?!0oHD # =hj0>T h]]9  5AU@jZ?F͂T??Fx?SF?P6 jt`  o?tk[>(A Vu aSuo.]&A]  *ԮJU2zGzt?@L#&A@bA#z7 5#1bO(b])j+$j&[ "*(w "?& ?AU$l/%B115 `?CopyrigTt (cu)Q02`09Q0uMI0cG0osA0IfO2@1rC0|1aO0iA0n.Q0 WAl0 G8s2Ueo0eG0v0d0"1E]4MŤ-&3 &7&l>]Uhz811U!J!u6?F+\.>djIIa? >"(EǑ I%K9E 5EU . K ;;5QIWEEEF _KnSA?8@@Bu?FDR> ?Nk"\6`bmMM\j=am {:e P> #? D"? 5-g?j4B7!B{oogr57!ibDAbE9 MuX7_'0U~rN!$a)5 5vIzHD # =hj0>T h]]9  qAU@;?FI5K?@xEL?6ѿP6 t`  bm&Qo?t@@L]WI,#u aiuoL> JU2zGzt;?@L?&A@b}#zs q#1b(b)+$&[9#H",ɺ (wH"?& ?A$ /%9#BV1V15 `?CopyrigTt (cu)02`090uM0c0os}0If2|1r01a0i}0n.0 WAl0 8s2Ue0e0v0d0"O1E]S4MŤ-9#b3 b7&l>]Uhzt1.A!JN!m.%-+0djV1ax߃S(FJ-&?F mO"> ?Nk"L[Majnha_:e P> #? BK=o? n-?j4Bs!B{__Wr5s!D8E6V 6?wj_|_ ^XE.U@z T6?F @' d_mOoT \VyWxRkrVo_bVh*g:n"'UaEjz36>CN>?Bn}]zGvN7V iDAbE9 MX+G'0UJPN!4ae5 MaHD # =hj0>T h]]9  U@jpiH?F^?@$?F]F?P6 t`  !a&ao?t,F=۳=u;u auo>J2zGzwt?@ʐLAw@b#z1b](b!).+I.&[-m(?0& ?A$I0/Q%!!5 `?CopyrigTt (c)02`090M 0c 0os0f21r0@1a0i0n.0 Al[0 8s_2e30e 0vq0dS0T"!E]$M-# %'&l>]Uhz!1!JF% djc~YZ(_N9zOMGE%_EH$SwO"K ңHE ^&_8_WE_OqOHOOi&DAbPE9 MX7'0UUfb>!$a % f1jHD # Uh4>T#]]9 M5AU@jZ?FL|+?@?F({~?P6 JuM` ?u JYt )t7zEA2&L_D?. > >tJU2q K?=@MJ&A@-b9(+bG)T+T&J[#"#a?& ?AH?/`)#115 {`?CopyrigTt (c);020G09;0M30c10os+0f92*1r-0f1ai+0n.;0 Al0 18s2eY0e10v0dy0z"!4B#e-?3 7)& b 0K8>U# ]A]A "1!ъ!PzQ <%OYAJEU . K;;\%W%EF($L[.FX5Eai%?F 6?wL;] W-\TB⤲8?F@&SA?F @ ?Nk"L'`bmMW_Ye[ٯ7 VK=F: [jr ? D"? XZvD?ta@Boogr5;!QEx]SiLO MLGXa~WOTZiAle59 XG"'0Uc&N!$05 .HD # =hj0>T h]]9  IAU@K?FOgVb?FY%?Fwᳬ?PJW?>t`  ^Z?t#ə.E @x?r?/{4܂ G _Z+u u$ >  J JpU?43f<!.&P?b3bbfz@1bAe&bq$d 2zGzt.#@LT"&r(~&i$q)(+}'i"~*#81815 `?Co yrigTt (c)o02`09o0Mg0ce0os_0fm2^1r 1am0i_0n.o0 Al0 e8s2e0ee0v0d0"11E]54M-#D3 %D7.&lUh#7 V1#Ai!J# F/?B1B  VRiAAbE9 MX G{W'0U*R2N!I$a {VZUHPD  # #>h0JTpERI MU@u6?Fjc{g&?@%r`5B?Fm_F:Is?HNtQ`  II?t#]  _ii$!`kNu  iu%wj>M JQ T       "@&&JNU2"?H@Qs#N&A@b(bU)++&RNp}#>H1#19 ?#bbbz| R&/5R}#11`?Co0yrig\t (c)02h090M0c0os0f21r0Aa0i0n.0 Al!@ 8s%Be0e0v7@d@21a4t#-}#3 %746lJ#$JUp5 3 M19 1!q(!FnElrkRt# 8$kcD?@숒@)?FP?P"EkU |1\iOT/irvs}i>`_,of :m ,M ?? S&d2? *b?r4B!B oo1gr #5!>%(EQOOOO__FAc1_C_ D4ևS]_o_yRX+{_,__ #R__ (YQoSo+o=osd {oEeooooooFyUy{* hDVW(I X"c7I!pg bf'iMjSE t%XyG|'0UŢŞN!O4i |UGD # hz0TdYYBU@(%)?Fxg^?@0߯H?Fs7Uݹ?P} t` 87?t#_)TeΦu ]ukv  ̝L&UUU&I&3 U!!`?CopyrigPt _(c) 2\W09 M c os f"!r 1a i n}. Al00U (s42e0e uvF0d(0'HS$#-## 'I?k=#ǒ 2j$B##0U'BM3@&@F0Yk} #HA%DKb5DK3DK5DKED$!GiAZG5(|IDFX7yW'&Dŭ6!4YA yVZHD  # =hj4>T!]]>#AU@0߯H?Fz)e??F˞9q?P6 t`z  ?5t# rXѮu)Nu;):O]ע0 &> # " "+"+"+"+" $+"T-J[U7 ??& bA@ 2b4-#2zGzt#+@ Li68!6 ?}; 72U!:B#AA5 5`?CopyrigTt(c)20F@9M2@c.0@os*@f8B)Ar,@eAa8@i*@n. Al@ 0HsBeX@ej0@v@dx@)21"DM-,;?C G& l>]UhzAE!A#!ְ1J`#@{&pz?FUy{?NT,dKj&b&R&M/8T9K-q?F@F?FdG0 >Nk"?YE*]\LThKjfGD&Qhj ?iU3UGe&Y`?@/Jb)h5oWKoWo;èKod}l$ro`nE2K?Fˌ%4G{?F -q? eZR^{|\?6?vodmP}l>MBe 9 N 1iS? 1?grl#51:PO"4ga@Sq(UE^@O|ǐ[`ߡa v2rbA @3ijD&}laqOz o?#WHZ'Qu=*[^N?F]%P?@O&@ c?FаM<n ?` eb0)\(Pfodm}nv}l?V5(?q$Ix[cN#W{ #iA@&QeE9 MX''0UjdN!0 /HD  # =hj0T h]]9 #]AU@}%?FR$,?@6#V?Fc_3֡w?P6 u` ?u#t  3zM%t3ws%.<%H._'B> #PJU2N贁Nw[?@ʐL+&A@wbu](i+bk)%+&p%#4">9"<5!?& ?M#bbb͓z$ p&"/%T%#L1L15 w`?Co yrigTt (c)02`090M{0cy0oKss0f2r1r 1a0is0n.0 Al0 y8s2e0ey0v0d0"E1E(]I4M-%#X3 X7&l*>(UhE j1#$Ac!J`%#@5e$_F??!foA3nBM( V?FJ-R?@HQ??FS!R?P| llHL6VLD5E+v;*AůʙH: 8snP%$? k?Q? \?4_!__WrA5_! R,U3OC@IL?F4~Kz?P)Oy޾ T!]]>#IAU@܋?F2Oa>?@#r`5B?F*ݷ?P6 t`  >B?\oEt# ŖoZu 0Nu;Y:|8>$# JpU>##<?2& ?5bbbz@b#ANi&bu$'h 2N贁N[2$@ LX"D&v(&m$ :;T'm"*B#d1d15 5`?Co yrigTt (c)020090M0c0os0f21r 1a0i0n.0 Al0 8s2e0e0v0d0"]1"a4M-/p3 p72&l>0>Uhh= 1#!eJ`#&FNTM\jh1B,RBM(!JoUy{O_ e@ So4(D@^Tw?F]֝ä ?Nk"?w_KT\T+\_(Kjӷjmplhj -`\TPQE\Uui,St_o u~!ՠXEO9= T?FL?;uQ_Pm"rA @3sjQ1lğ=GoYniAleE9 MX|'w'0Ur^N!M$|A vzHD  # =hj4>T!]]>#IAU@܋?Fj?@2r`5B?F^ݷ?P6 t`  >B?\oEt# 6ΠZu 0Nu;Y~:#&}>0m8>  PJU2N贁Nwk?@ eL&A( 5bM(b[)h+h+$h&#[-M$#?& ?b$Z*'*B#O1O15 5`?CopyrigTt (c)02U0090M~0c|0osv0f2u1rx01a0iv0n}.0 Al0U |8s2e0e|05v0d0"H1P"L4M-/[3 [7&l>0>Uhh= m1#!S!J`#*&FPUy{_?NTMjC1gc RVMʣ(D#@ ![?F"$. ?Nk"W?IKTLTcKjRlhj p=' (*!)i,SO2Kes9T;QEGUFw6qX}__TM7fTZT\Dž}_P^52XOES"rA 0S#Es3iAleE9 MX|$Gxw'0UrIN!4gA xvzHD  # =hj4>T!]]>#!AU@܋?Fc_v?@#r`5B?F*ݷ?P6 t`  >B?\oEt# ap'EZu 0Nu;Y:|$># BJpU>#͙;? & ?5bbbz@}bAA& K&@ 2zGzt?"K@ L0"&N(bM)+TK/8Z*B<1<15 5`?CoyrigTt (c)s02009s0Mk0ci0osc0fq2b1r1aq0ic0n.s0 Al0 i8s2e0ei0v0d0b"5194M-t/H3 H7T &l>(>UhE=3Z1#E!J!FENTMjN@1h(NoUy{OO e@ o)4(D@^Tw?F]֝ä ?Nk"?'_KD3\T+\(Kj?ӷjmlhj P\ DiAlePsI=MXsG'0UzbZ6N!%$0 sFEjHD  # =hj8>T! ]]>#!AU@܋?F*?@#r`5BW?Fw?P6 t`  >B? \Et#տ|u l4RQu?]>I$>I# JpU>͙#<?& ?9bbbz@b#AE&bQ$$D 2zG[zt#@ L4"&R(^&I$Q)+]'I"^*Bh{.M#To1o15 9`?CoyrigTtk(c)k2009kM0c0os0f21r1a0i0n.k Al0 8s2e0e0v@d0f"h1l4M-:?{3 %{7&l>(>UhE= `51#I!J49fAn^ R)X f"B!Jui,SG?RSlOS u~!N]8-19= T?FL;uQ ?Nk"?YVTQRXQOnğ/=i n (\ wTiAaePE9 MXLg'0UbZiN!)$0 Lf`jUGD # hz4TYYT#BU@5?F;?@ t2?F`0 ֺ?P} u` ?u#+/8<&L9`d<ft99(.8P8L``Uttyt mH 8"tC"hfc!N&>'nJ!O%X'm= 'p ~i##0U"K?@&S#a!1!1*"`?CopyrigPt (c])X020d09X0uMP0cN0osH0IfV2G1rJ01aV0iH0n.X0 WAl0 N8s2Uev0eN0v0d0"14J#B-#-3 -7#^=$.6#@DFPF B$e 0^dA\C #HA%DK%D8K5D`KEDdKEDg&Ca_'TAA""(Pa%288BKc`DcE ciha5 6rX7fg'$)F!DA ffzjUHPD  # #>h,JTEI MU@jZ?F@s??FX7`/?HmNuQ` o?u# j>tMtQ 1@t PATOQ E O#l|O6,2c J^vNt, "t "QwNbo ?!FVxNo]2УɆX3BUYU>VZ\)_ W거QUTAQ LG4CaCa_* Q_*____ o2f 8CT]?FoYDȡ?@ ~1pc} 9dS0]Yb<=p\/_ RT)4HtvzI!| ?^_AV,uݹ:4Z\o &Ja ʆXBU 9A1p@߄ߝZ\X9 (p\P΀dˆXEBUp2t Z\5q[,=6B҆XaU̓쬏 qXa>YU . [[ ;;p\Ua>YF`rZYoQUaai%?FzP4Z\^ W-p\] xTy8?F.?@@SA?FWk@ ?Nk"_|5`bmMp\PB|y[7 ơ|`?])?p*FWAX|a筃,H7~Z\?bxT?:!G4QڡUeB_T_f_x_DOOkoooZ}u?FU2Ty9=ŏsҟGO"vP_?@mlփ?Ff>> }= R3|Ofѡ|&['aޯ)d3#ux"@4SK 6ASʎy'e>'"Y`r,iMm׹ ߵl%1X~G׷_'0UJ26L50Ov ׶HD: # =h4>TB#]]9 TqAU@1D)?FL"ߛ$??Fٵ #ָ?P6 u` ?u4 t  ]<)t7񿗯)2)LEkL>  JtU2qD ?=@LC&A@-bu(b)+&񆤍[=#L"#a?& ?AH{/)=#@1@15 {`?CopyrigTt (c)w02009w0Mo0cm0osg0fu2f1ri01a; ig0n.w0 Al0 m8s2e0em0v0d0"91=4MB=#e-OL3 L7&l>  U#,|A|A9 $] t^1*=# #p Kw&&J`=#R&F 2'_b0CwvA kRqVM(~"!;ɡ?@<3?F ?P-DT! ;d1?Y=:ZTO㿂f{OaB J4 13? v,? (N_?r5w!:8oJo\g"a@jS(.8R!ZFI nx4__ D_U5U,VS?@g$ ?F~4,ێ~@ 8_H_ZTml`KDfl`'E4q2d8R鿃oo`rmkod&'aE2%_7USr(A@z#y3ae&b{, fZT5sae~t?FG=Va|7>-\氹pAiʈ$%?F(XoZ1a|}%\Iii ^WB^:fvEZT˒AiU?FAx߾Ya|k#ӝY~/Yt(Ae o0AleP59 MX=GL"'0UŢbN!40 O5 |HD: # =h4>TB#]]9 T]AU@R7)?Fy߈C??F"ָ?P6 u` ?u4 t  *5y")t7n)2)LI"+BA B JU2q0 ?=@L/&A@ybm#zc a#-bK{(m {(+I&)#Kڬ !?& ?A"&g$bbu/b /%)#Bo1o15 {`?CopyrigTt (c])020090uM0c0os0If21r01a0i0n.0 WAl0 8s2Ue0e0v@d0"h1l4M!E)#𤲝-DO{3 {7&l> U#,AA9 ] 18! #p %J`)#@~t?F # 0hU-~-/HA RVM(ET"rYD?@J-?F-' 9d 0_Y b%r\_oӫ([MFoFl 77]8>!Zݹ:4\\o?gƭkdQEF5W4?@A=?F[Q`??P-DT! :U^Zs[ #l@*p9lJjV\\l_ I&vpkhAzi!J?F߸TF\\Ͼ\zT khzinA9f@.mY <\\ԕ$ ,S{khAzi׍8r?Fį^?m ? ~_5 ә(Ae 0AleE9 MXlGR'0UuőN!40 ~5 ,@HD: # =h4>TB#]]9 TU@~t?FYaJE??F? ~?P6 u` 7?u t  }A_)t7Ǫ+)2)L^A]>REJt2q?R=@LA@-bbJ )+&L ;W!?m&L ?A" &zbbbOz /R;%!!5 {`?CopyrigTt (c)(020409(0M 0c0os0f&21r0S1ai0n.(0 Aln0 8sr2eF0e0v0df0>"!$MDO!EY-?# 'm&l> 0>U#3 -A9 B1 #p ;%J`F(jdO C]Se֑  FM(HC-O"K[%qU5)UuBТ:DY=~W\GUE2OE#rA 0"S3QhA%YB[)xIB_STD(Pd 0Ale59 MX7|B'0UbN!$1A5 fjHD # =hj0>T h]]9 U@/?Fxpz?@]JQ?Fk],>Uh@ !f$; hp _Q%Jd(jcZ(sEp!$a VZHD # =hj0>T h]]9 U@~t?Fxpz?@?Fx?vÂE?P6 t`  }A_?t#%_ ,u auo>J2zGzwt?@ʐLA@bu+b)%#+#&!yHa$?x&L ?A+!#+,1'!!5 `?CopY rigTt (c)(02`09(0M 0c0os0f&21r0S1a&0i0n.(0 Aln0 8sr2eF0e0v0df0I"!E]$M-# %'x&l>],>Uhh 1[$ hp  F%Jdjc%O(Eq!$a VjHD: )# Uh4> T]]9 M#AU@#ܡ,?Fb?JP WJtM`  ?t# AJb $>h g JQubhr6 u!>h=U7Jyb?!A?3& [AJ~CA@Y"wba)b$a)'ba$2zGz3#@MJ&b*%w$`*Q+'Y"**F1F1`?Cop rigTt(c)2009Mu0cs0osm0f{2l1ro01a{0im0n. Al0 s8s2e0es0v0d0?1EC4*-R3 %R73&l& UhVE9 `d1#Y!  FFU 7C@VCi@Ale759 XW'0UjR@N!N$0 VHD: )# Uh0>Th]]9 PM#U@X?Fg.?@DE`v?FepA1D?P JtM`  ;0K?t#˯ yh:.A>j# ixsj||"yy h|yy"s"j|,"s," |J""y^" yr"""y"/y" a|"1y""8y":y"";y"JU2z?Gz:1?N1HSJVAL0bXbY[R[VJSON9;?Ax74Ual#aX`S@fN:O6?F9^2d3QqsR^2tY7+"LN26J6RJN1v{+0?F2rn`XDPk6(āThqZMiڲ?FȒ?@%~?džm@`?PR߷i e>amaXƫWSkMD,Xkd3, ktS?J! \&\xZ? $Zas? V =? ?@?d2tR%߀@8BoR4̧r3cu>XRVSwSy?@r$Wè ;m`X&¨r+J^j{/qO@ [jrPͦ 2XQqE>L?F,D?@ cK'ةhzq 6ѱn|3wsW\ۉ>53lҿ侨gnxP?Fa"&~̜2Ah~sJN:@8PKNWM?@0R?Fw+PuP~y`~dg~~s̜ʪ}Bk3a ,?|IF%̜O,nA3O"?̜g'R S;x+#]Ǯ.uǥ8nP\ {r|%ʿs?Fcj˰?@3?FJ?Poy=V(nxW~u3vk;*G!v+u~ݏֻA_ ^=ů׬{5oGorb&Q"P C.?@M:P̈́} ?PNWLKz Fw^=g%fuԧ!6&{]JVbGᢤ oQo׬Qhzrmٿdlƣn@"N@0?@NPXcC OwPKMgBlVܖF{VmVsOS3E_dNF+P?F_iVJ͸?@9;+0}0'Z,H3wlTG5EnOe{uF Fv=/<~R2d0Pm%s~? MvO1; ܿ;t l h-`w?F?6z?Ϋ9W7FOQ1}M4ڔC͏&ِ1Wi!~RѪV? el 3~]_>-#O &2"ܿ#˕G GWAS?@nA8 ?1ІCѵzT]4-'>T7Fd6Ĵ̏2q#~R|Rl uްJREB'+-E$RߎD~ CXн-C-X-]bd%R| j#$ 4-խ@c&Rf^+ !̠Bd% c~4-Rꕳ@ 'R[\e'? }ķp)~ s"ޗ=?]& as(R lM?FAo .bLOMQs)R ^D^*%6VIrV*R2T?F8]X^*a,eLʴ2ͭ+R ug?FdpA1DݸoL,R;0 W%r;p-RH)?F76˸ LSa@ .RPe6˜R|)yϊ&Lؾ1/|EԈ1f?FFX ر}+ ķ&OjuLīt[q>aJ.j&S"_10|*?F `Jԭ%1+.nNMcfdilFU1i1}m&H F$w|!bt1|q59>?F>FK׀*F/BIL{Hi<[cԍ(=Pї!32$f ˂}sD|2k!f{30%_ʣz?T `c`Tw4G,~LDd|`pta?FVynZ{~~-K6~Ka0?F>&Dw@}|%+)~K-r;7F?FTa|E׻LS)`qA8|}FSP`M{ r?FhPuS@/}Kdf1}-U{Ls@+C9\}K;:*N}O'| ݇Uaqyli!&,$e?@hu?FA3]{ӿP jBނ>\'xk|OVO;|Pq2.?@`Ȩ?Fn |%c_Wx ~)j |A LyU{PbE__<|*&G&?F4J?@2s+M{0xl@ף9,͟S2n?&Yۏo4=|4P `RZC?@b* o0Z d֣r~Pz;'Uo};}לSU>T|m?F3|TsDܷ[ڣ̭?|X?F _PМؓ?@1}v򅗫0z5,7-i~ dsjќD;gcZT#dfN:6RDž@2]Kc$Lŏ0r ڝ 23E솤Dʟ佴/AiऑTAX'0Ugœ 2UGD # hz0TdYYBIU@zUϰ?Fz^?@#ܡ,?Fbݱ?P} t`  ?t#H$IpZίP!::8vgpqu B`Ufpp5uU!!`?CopyrigPt (c)J 2\09J MB c@ o%s: fH"9!r< u!uaH i: n.J _ Al @(Us"eh e@ v d  #S$#- #l# '?R= # &#24 6 6 2$ZB# #0U2 3@& a#3~  #pH1%4GicP#5 6X'.EG'4 6%!4] EFYJ_dH >;s w2mUqCU_ܾF< #< ߏ VOB f ~d,c @{+U'=g[sG(<f<s 8<) <% < < =կ Fқx= X= 6= H= = Xp>Q 7r> Nt> v> _z>< *9(}>f <9> V~> { /P> %>9 8?_42 G"UFD  h(^TYYBBUFjZ?F~??x<F BP(?P } kXt BW66 W TTTTT9ȅH?Q?G ?B@L&ɯd2?"-3(?\.E(#. sUk!i&/J( G 0gB`.email,SNM,serv 2,co puT.3d s.r b 4d n 0tw0rk!e^| (QSG& q ?%7I??? wpwp pqwqqqwqwq}pqqqpppw,wwwqqgawqp~wwww;yDrag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aabjZֿ~??cN׿ mF1?? m{V↑T*J?@ ?UG DF P# h @T(PYY# [U@jZ?@~?tP} u` ?u#2>D>HX DHlHYHH EAEdR9.&؍>DDXXllRu'9b"",'US2&5/4&3 ?"'4Wb0{['`:[1#2!6"d^Q_9$7&9"/L6 2&!'ݯ>o@ÿ@qx@?@-pB?wDmF03Bu9@`҈-1Bu @r#CC5 ",CAB2Cm9u`u `"[ b!u`/3Qy1y7B`?CopyrigPt0(c)020P90MPc.PosPfRQrPaaPiPn 0Al ` Xs$bePePv6`d"/`VPs_SBN cPm_!#5P8k` 7Fay1&3db4&5܀MB=/3z6&3d66 2&4#/30U1r3]%ge<^AE U#"&5m Hq&5twV5t{3t{VEt{t{y {etd{|tY wmda*V_BTAJa$Ja&203V21@3 2MVB3Z1125tb6 ta$taC|èEhhPÓnQ* ϔ8ܔAPꓰMB111;@cqcqba>*Ab1%EQF^.1XA#8dTG`XQ"y`])r` M`WnuPaPt5arFaiQ` WEqiPm6`nPvd{V5QX]1PRd*ơ ]`ue`bͯ߯@30! P`r@RdSH@ȱ]C5D6bQ۱eʿܿ{"\ ϬAP9a:B`諸75^ϖϬ% S:bi`#aweT ߬ぶLPchCekT}ߏBalB`i`g̨9@߮,RPoڂ|EZ\@ =phDBU T)?ar0TPpVrKB` B`sR;IY`A Y`Q@;bmr:PeExab!gD"qQr2w`ijJSCC ` TsR\͒kXV` ?ON`1ڒPN`SbY`(|~PEe`a 蘒Z Nwbk4a+.2`\d: IpadB`5cwϯJ)nĺskAx/&/ImTat f?a ];a£rl/kf//ő R pa/a//((/&?4/M`Ci?5?'+ pu"tPf!?BkQ OO"Ȁ\=O_OOkv(OOKHdBQ#CġHC` Wc!wV_ _ C]0ah_z_yi_'`M@m@_2d__vkpoo.KOB%fy "(p5j-T^u uqE珽 ST1.i1xACw>門ÿތc$bel erłłՆ߂^B2`RoUK=e2jrb ]]br-@O"Wyrl]u``dvx~jc*<Q_c--4A4Bj(6yB1B1*P{£qqqDqcҴzQaig6``!-uA`}ż @avh{zI5_}v&ﲄПF3s͵NSYFvy߂f!@v>8M{>6M>Ocլra~g,@wBQ&8P\UqUq}zʷ@ifz}!` %P&4odAA첱UqNNTWORKJeH0P\1RRISQBito̔3GQM'0UƗ?Ϳ10WƕHD # =hj0>T h]]9  5AU@jZ?@͂T??@x?SF?P6 jt`  o?tk[>(A Vu aSuo.]&A]  *ԮJU2zGzt?@L#&A@bA#z7 5#1bO(b])j+$j&[ "*(w "?& ?AU$l/%B115 `?CopyrigTt (cu)Q02`09Q0uMI0cG0osA0IfO2@1rC0|1aO0iA0n.Q0 WAl0 G8s2Ueo0eG0v0d0"1E]4MŤ-&3 &7&l>]Uhz811U!J!u6?@+\.>djIIa? >"(EǑ I%K9E 5EU . K ;;5QIWEEE@ _KnSA?8@VBu?@DR> ?Nk"\6`ObmMM\j=am {:e 뇿P> #? D"? 5-gg?j47!B{oogrK57!ibDAbE9 MX7'0U~rN!R$a)5 5vIzHD # =hj0>T h]]9  qAU@;?@J5K?@xEL?6ѿP6 t`  bm&Qo?t~@@L]WI,#u auoL> @JU2zGzt?@L?&A@b}#zts q#1b(Wb)+&[9#H",ɺ (;H"?&L ?A$ /R%9#V1V15 `?CopyrigTt (c)02`090M0c0os}0f2|1r01a0i}0n.0 Al0 8s2e0e0v0d0"O1E]S4Mb-9#b3 b7I&l>]Uhzt1.AF!JN!n.%-+0rdjV1ax߃)(@K-&?@ mO"> ?Nk"PL[Majnha_:e 뇿P> #? BK=o? n-g?j4s!B{__Wr5s!D8E6V 6?wj_|_ ^XE.U6Vz T6?@ @ d_mOoT ݬ\VyWxRkrVo_bVh*g:n"'UaEjz36>C~N>?Bn]_zGvN7ViDAbE9 MX+G'0UPN!R4ae5 MaHD # =hj0>T h]]9  U@jpiH?@^?@$?@]F?P6 t`  !a&ao?t,F=۳=u;u auo>J2zGzwt?@ʐLAw@b#z1b](b!).+I.&[-m(?0& ?A$I0/Q%!!5 `?CopyrigTt (c)02`090M 0c 0os0f21r0@1a0i0n.0 Al[0 8s_2e30e 0vq0dS0T"!E]$M-# %'&l>]Uhz!1!J@% djc~YZ(_N9zOMGE%_EH$SwO"K ңHE ^&_8_WE_OqOHOOi&DAbPE9 MX7'0UUfb>!$a % f1jHD # Uh4>T#]]9 M5AU@jZ?@L|+?@?@({~?P6 JuM` ?u JYt )t7zEA2&L_D?. > >tJU2q K?=@MJ&A@-b9(+bG)T+T&J[#"#a?& ?AH?/`)#115 {`?CopyrigTt (c);020G09;0M30c10os+0f92*1r-0f1ai+0n.;0 Al0 18s2eY0e10v0dy0z"!4B#e-?3 7)& b 0K8>U# ]A]A "1!ъ!PzQ <%OYAJEU . K;;\%W%E@($L[.FX5Eai%?@ 6?wL;] W-\TB⤲8?W&SA?@ @ ?Nk"L'`bmMW_Ye[7 VK=F: [jr ? D"? X?ZvD?a@Boogr5;!QEؿx]SiLO MLXa~WOTZiAle59 XG"'0Ujc&N!$05 .HD # =hj0>T h]]9  IAU@K?@OgVb?@O?@X5?PJW?>t`  ^Z?t#ə.b?T@[ u?/CG<_Z+u u$ >  J JpU?43f<!.&P?b3bbfz@1bAe&bq$d 2zGzt.#@LT"&r(~&i$q)(+}'i"~*#81815 `?Co yrigTt (c)o02`09o0Mg0ce0os_0fm2^1r 1am0i_0n.o0 Al0 e8s2e0ee0v0d0"11E]54M-#D3 %D7.&lUh#7 V1#Ai!J# F/?B1B  VRiAAbE9 MX G{W'0U*R2N!I$a {VZUHPD  # #>h0JTpERI MU@u6?@ic{g&?@%r`5B?@n_F:Is?HNtQ`  II?t#\  _ii$"`kNu  iu%wj>M JQ T       "@&&JNU2"?H@Qs#N&A@b(bU)++&RNp}#>H1#19 ?#bbbz| R&/5R}#11`?Co0yrig\t (c)02h090M0c0os0f21r0Aa0i0n.0 Al!@ 8s%Be0e0v7@d@21a4t#-}#3 %746lJ#$JUp5 3 M19 1!q(!@oElrkRt# 8$lcD?@숒@)?@P?P"EkU |1\iOT/irvs}i>`_,of :m ,M ?? S&d2? *b?r4B!B oo1gr #5!>%(EQOOOO__@Ac1_C_ D4ևS]_o_zRX,{_,__ #R__ (YQoSo+o=osd {oEeoooooo@zUy{* hDV!VV(I X"c7I!pg bf'iMjSE t%XyG|'0UŢŞN!O4i |UGD # hz0TdYYBU@(%)?@xg^?@0߯H?@s7Uݹ?P} t` 87?t#_)TeΦu ]ukv  ̝L&UUU&I&3 U!!`?CopyrigPt _(c) 2\W09 M c os f"!r 1a i n}. Al00U (s42e0e uvF0d(0'HS$#-## 'I?k=#ǒ 2j$B##0U'BM3@&@F0Yk} #HA%DKb5DK3DK5DKED$!GiAZG5(|IDFX7yW'&Dŭ6!4YA yVZHD  # =hj4>T!]]>#AU@0߯H?@z)e??@˞9q?P6 t`z  ?5t# rXѮu)Nu;):O]ע0 &> # " "+"+"+"+" $+"T-J[U7 ??& bA@ 2b4-#2zGzt#+@ Li68!6 ?}; 72U!:B#AA5 5`?CopyrigTt(c)20F@9M2@c.0@os*@f8B)Ar,@eAa8@i*@n. Al@ 0HsBeX@ej0@v@dx@)21"DM-,;?C G& l>]UhzAE!A#!ְ1J`#@{&pz?@Uy{?NT,dKj&b&R&M/8T9K-q?x6@F?@dG0 >Nk"?YE*]\LT_hKjfGD&Qhj iU3UGe&Y_`?@/b%)h5oWKoWo;KTod}l$roҥ`nE2K?@ˌ%4G{?@ -q eZ̿R^{|\6?vodmP}l>MBe 9 N 1iS? 1?g]rl#51:O("4ga@Sq(UE^@O|ǐ[`Ρa g v2rA @3ijD&}l迲aqOz o?#WHZ'Qu=*[^N?@]%P?@O&@ c?@аM<n ?` eb0)\(Pfodm}nv}l?V5(?q$Ix[cN#W{#iA&QeE9 MX|''0UdN!0 /HD  # =hj0T h]]9 #]AU@}%?@R$,?@6#V?@c_3֡w?P6 u` ?u#t  3zM%t3ws%.<%H._'B> #PJU2N贁Nw[?@ʐL+&A@wbu](i+bk)%+&p%#4">9"<5!?& ?M#bbb͓z$ p&"/%T%#L1L15 w`?Co yrigTt (c)02`090M{0cy0oKss0f2r1r 1a0is0n.0 Al0 y8s2e0ey0v0d0"E1E(]I4M-%#X3 X7&l*>(UhE j1#$Ac!J`%#@5e$_F??!foA3nBM( V?@J-RHQ??@S!R?P| llHL6VLD5E+v;*AʙH: 8snP%$? k?Q? \?f4_!_t_Wr5_! R,U3OC@IL?@4~Kz?P)Oy޾ T!]]>#IAU@܋?@2Oa>?@#r`5B?@*ݷ?P6 t`  >B?\oEt# ŖoZu 0Nu;Y:|8>$# JpU>##<?2& ?5bbbz@b#ANi&bu$'h 2N贁N[2$@ LX"D&v(&m$ :;T'm"*B#d1d15 5`?Co yrigTt (c)020090M0c0os0f21r 1a0i0n.0 Al0 8s2e0e0v0d0"]1"a4M-/p3 p72&l>0>Uhh= 1#!eJ`#&@NTM\jh1B,RBM(!JoUy{O_ e@ So4(DF^Tw?@]֝ä ?Nk"?w_KT\T+\(Kj?ӷjmlhj -`\TPQE\Uu?i,St_o u~!XEO9= T?@L;uQ_Pm"rA @3sjQ1lğ= GoYniAlePE9 MX'w'0UrJ^N!M$|A vzHD  # =hj4>T!]]>#IAU@܋?@j?@2r`5B?@^ݷ?P6 t`  >B?\oEt# 6ΠZu 0Nu;Y~:#&}>0m8>  PJU2N贁Nwk?@ eL&A( 5bM(b[)h+h+$h&#[-M$#?& ?b$Z*'*B#O1O15 5`?CopyrigTt (c)02U0090M~0c|0osv0f2u1rx01a0iv0n}.0 Al0U |8s2e0e|05v0d0"H1P"L4M-/[3 [7&l>0>Uhh= m1#!S!J`#*&@PUy{_?NTMjC1gc RVMʣ(D#F ![?@"$. ?Nk"?+IKTLTcKjRlhj p= (*!)i,SO2Kes9T;QEGUFw6qX}__TM7fTZT\Dž}I_P^52O,ES"rA 0S# Es3iAlePE9 MX$Gxw'0UrJIN!4gA xvzHD  # =hj4>T!]]>#!AU@܋?@c_v?@#r`5B?@*ݷ?P6 t`  >B?\oEt# ap'EZu 0Nu;Y:|$># BJpU>#͙;? & ?5bbbz@}bAA& K&@ 2zGzt?"K@ L0"&N(bM)+TK/8Z*B<1<15 5`?CoyrigTt (c)s02009s0Mk0ci0osc0fq2b1r1aq0ic0n.s0 Al0 i8s2e0ei0v0d0b"5194M-t/H3 H7T &l>(>UhE=3Z1#E!J!@ENTMjN@1h(NoUy{OO e@ o)4(DF^Tw?@]֝ ?Nk_"?'_KD3\T+\(Kjjmlhj P\DiAlesI(=MXsG_'0Uzb6N-!%$0 sFEjHD  # =hj8>T! ]]>#!AU@܋?@*?@#r`5BW?@w?P6 t`  >B? \Et#տ|u l4RQu?]>I$>I# JpU>͙#<?& ?9bbbz@b#AE&bQ$$D 2zG[zt#@ L4"&R(^&I$Q)+]'I"^*Bh{.M#To1o15 9`?CoyrigTtk(c)k2009kM0c0os0f21r1a0i0n.k Al0 8s2e0e0v@d0f"h1l4M-:?{3 %{7&l>(>UhE= `51#I!J49fAn^ R)X f"B!Jui,SG?RSlOS u~!N]8-19= T?@L;uQ ?Nk"?YVTQRXQOnğ/=i n (\ wTiAaePE9 MXLg'0UbZiN!)$0 Lf`jUGD # hz4TYYT#BqU@ t2?@D&d2?@$p?@|>׺?P} u` ?u#Lk/89L<`(.88LL`t m۶m3tبפUC~#9#0Up"?҃@/&9#!!!G*`?CopyrigPt (c) 20 9 M c. os f"!r 1a i n. Al&0 (s*2e ej v<0d0'"@!$0#B-9## 'w#^=9$&0#466 2R0$e#$^ P#30%T% 9#LHLA0%XDcKT%XD8cGg&daO^'BTcAcA0"-()Ca0%g2 ATB_6Si@haX5 &X~7aW'o$Ŵ6!40 aVuZHD: # =h4>TB#]]9 TU@$p?@|>W?P6 u` ?Mu t  )At72(L>REJt2q?=@LA@-bb )+&񆤍[Z#?m& ?A/$)R!!5 {`?CopyrigTt:(c):20 09:M c. os f"!r *1ai n.: AlE0 (sI2e0ej v[0d=0>"@!$MBQ-?# 'm&l>0>U#3 C!*; #p _ &J`@4?g8oyƏ C?,'ߑK FMD(9IMBIGE%UZ8!<A% fjHD: # =h4>TB#]]9 TU@$p?@|>?׸?P6 u` ?u4 t  )t7J)2(LAEJ޵2q?=@L|A@y7b #z]-b( J(2+2&*;q!?& ?A"#&$bb/bI4/U% 1 15 {`?CopyrigTt:(c):20N09:M:0c80os20f@211r40m1a@0i20n.: Al0 88s2e`0e80v0d0X"14MDi!EY-?3 7&Rl>0>U#3 C)1 #p| U%J`@g8oyƩ C2,'ߑB %VM^(9IMBIG3U%CUY8#M)U@$p?@|>?tP >tA`  ?t# >b24 C>u\u!.M# *H>U2llf?@9 >A@b-(C-(b;)W+W&>yg–#?& ?3"B-*X*G,e'񩣕p%1%1`?Cop _rigXt_(c)2dW09MT0cR0osL0fZ2K1rN01aZ0iL0n}. Al0U R8s2ez0eR05v0d0}"1P^"4-,13 17&!Qi 0,fUl4#A5C1CU3! !R \box(<v9s?@^!?@sckz%?PD-DT! /[S@K0Lobp׻nxw_gBs 3CUy_@ xh ,J T  M#EMU@jZ?FH2)'*??@n>?P m>uA` o?u#VlMJl -<lA -PK#TdK2(.K<FZnf>t  t3|>b!F**JRuKJ>U2zGz?@9 ?#>O&Aw@b(Wb)+&r" !$NI#"@#W"6 "\M"b)2;'r",r"/I#11G#`?CopyrigXt (c)020090M0c0os0f21r01a0i0n.0 Al@ 8sBe0e0v-@d@7"BMI#3 76@"!"t1"=ElJ Ul4@AAC 9" =Q A(4#UA!=(^!#?@RXM(0 # g# '?DnMN:U~TR\u5i[HmvQ~X3^w='__ '-~XE:UU . S[ ;;h\gU:U@>wR9o\jZ|K5~XAjai%?@@dQ]^ W-h\_~T9;Tꤲ8?@@)#SpSA?@jK@ ?Nk"V`UY5`bmMh\ly[7 / *?<~X6YxS?LR\cpTqUQ g8oy1 cJQ6YD}uϯ?^&S[vm۶modUQ6Y ~ÀC8[H`K?)K?M~X U@:_L_^_p_DA(G!EM_"_]u?@S.~{>O]UM~1xQDuMuRw?@lփ?@2'>w9Z^|)Sf|u?U35~8q3Du$-@8S,/: CYy$'eisa"+ziM̱iٙI@%!XRGٗ'0UL6t5 0f ٖ_H>x;s \<6x,c @LaF?F6 #> 7 XOB Hk99 ~dlo@+Xh?o[sG?: 8 P(?NE X?I ?L ȓ?O ?S (?V F֛?Z x?] 5Pb ,P߽f P}j xP#n6PXq N؜Pt PRw QUz 3(Q} Q 9!UFD  h(^TYYBވUFjZ?F~??x<F BPG(?P } XZ B66  TTTTTTd &!&Y"/&%'D/+6,k&/TȅHBU??/&:& ?B#@L&d2?=8\.Y+8 >sUQ1O6Pq?)(:  0%$gB`.man0ge]m0ntt s0rv2,co0pu03di0t0ibDdt n0twN@rk1ea| 8(SGv6 ߃m `???(:Lpppp wpppp pqp~pqwwqwqwpwqpqqwwqqp pp w. wwwicwqwwwww}Drag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aabjZֿ~??cN׿ mF1??M7{V↑T*J?@ ?UG DF P# h @T(PYY# QU@jZ?@~??F?Pn} u{` ?Su#؍>>HX HlHYHH EO.LO4:UDDXXUllk'"&R",I'U25ĉ%4 ?"u'4b0{N[`:Q1#2T6"!^U9$"3&9"/L6 2&!'ݯ>e@ÿ@qn@?@-fB?mDcFԸ0)Bu/@`҈-1Bu@rCC 5GAB"2Cm9u`u `"[ b!u`%3Qo1o7B`?CopyrigPt0(c)020P90MPc.PosPfRQrPQaPiPn 0Al` XsbePePv,`d/`VPs_SBNcPm_!#5ab4P=`o13dX45CB^8=%3p63dz6z6 v24#%30U'rz3]ge<^AE@ U#5m Hq5twL5t{3t{LEt{t{y {et@!{|tYwm@Ada׃IUBT$1@a@a20)L2163jajaLBA3P1125jb6w 7C |hhE)*dQ8ŔIQIQA11CB!;1XrYqea>!bz1AXE:FG$1 8dT=`XQj2`]r` M`nuPaPt+arp` ?bup` B=ݧ`S,t']p"51m-݁<9orm'Qh>qݏBKT'.mt'xydf@>p{ÿ#ГobZpq [ܒrr$avvvrs{c"`RQoxi16 e5`(bb_ mmbr@ uP`TaS@u._u'U1U2A-b[aahaDauhAaYg6s(P` -u*`}`ᕁ }`ax3R5Y_dn&bpSF3s͵NSYJQbrVC@ړN-e8%dE%'XLqW,@rb:*<Տ`}aahʀYVYn ` %P&S41Ģʢa`NEWOR+Kn2H P}!RȱRISQĢʢĢ ʦio0oŌh^A%'0Uo?č!0ÎoHD # =hj0>T h]]9  5AU@jZ?F͂T??Fx?SF?P6 jt`  o?tk[>(A Vu aSuo.]&A]  *ԮJU2zGzt?@L#&A@bA#z7 5#1bO(b])j+$j&[ "*(w "?& ?AU$l/%B115 `?CopyrigTt (cu)Q02`09Q0uMI0cG0osA0IfO2@1rC0|1aO0iA0n.Q0 WAl0 G8s2Ueo0eG0v0d0"1E]4MŤ-&3 &7&l>]Uhz811U!J!u6?F+\.>djIIa? >"(EǑ I%K9E 5EU . K ;;5QIWEEEF _KnSA?8@@Bu?FDR> ?Nk"\6`bmMM\j=am {:e P> #? D"? 5-g?j4B7!B{oogr57!ibDAbE9 MuX7_'0U~rN!$a)5 5vIzHD # =hj0>T h]]9  qAU@;?FI5K?@xEL?6ѿP6 t`  bm&Qo?t@@L]WI,#u aiuoL> JU2zGzt;?@L?&A@b}#zs q#1b(b)+$&[9#H",ɺ (wH"?& ?A$ /%9#BV1V15 `?CopyrigTt (cu)02`090uM0c0os}0If2|1r01a0i}0n.0 WAl0 8s2Ue0e0v0d0"O1E]S4MŤ-9#b3 b7&l>]Uhzt1.A!JN!m.%-+0djV1ax߃S(FJ-&?F mO"> ?Nk"L[Majnha_:e P> #? BK=o? n-?j4Bs!B{__Wr5s!D8E6V 6?wj_|_ ^XE.U@z T6?F @' d_mOoT \VyWxRkrVo_bVh*g:n"'UaEjz36>CN>?Bn}]zGvN7V iDAbE9 MX+G'0UJPN!4ae5 MaHD # =hj0>T h]]9  U@jpiH?F^?@$?F]F?P6 t`  !a&ao?t,F=۳=u;u auo>J2zGzwt?@ʐLAw@b#z1b](b!).+I.&[-m(?0& ?A$I0/Q%!!5 `?CopyrigTt (c)02`090M 0c 0os0f21r0@1a0i0n.0 Al[0 8s_2e30e 0vq0dS0T"!E]$M-# %'&l>]Uhz!1!JF% djc~YZ(_N9zOMGE%_EH$SwO"K ңHE ^&_8_WE_OqOHOOi&DAbPE9 MX7'0UUfb>!$a % f1jHD # Uh4>T#]]9 M5AU@jZ?FL|+?@?F({~?P6 JuM` ?u JYt )t7zEA2&L_D?. > >tJU2q K?=@MJ&A@-b9(+bG)T+T&J[#"#a?& ?AH?/`)#115 {`?CopyrigTt (c);020G09;0M30c10os+0f92*1r-0f1ai+0n.;0 Al0 18s2eY0e10v0dy0z"!4B#e-?3 7)& b 0K8>U# ]A]A "1!ъ!PzQ <%OYAJEU . K;;\%W%EF($L[.FX5Eai%?F 6?wL;] W-\TB⤲8?F@&SA?F @ ?Nk"L'`bmMW_Ye[ٯ7 VK=F: [jr ? D"? XZvD?ta@Boogr5;!QEx]SiLO MLGXa~WOTZiAle59 XG"'0Uc&N!$05 .HD # =hj0>T h]]9  IAU@K?FOgVb?FY%?Fwᳬ?PJW?>t`  ^Z?t#ə.E @x?r?/{4܂ G _Z+u u$ >  J JpU?43f<!.&P?b3bbfz@1bAe&bq$d 2zGzt.#@LT"&r(~&i$q)(+}'i"~*#81815 `?Co yrigTt (c)o02`09o0Mg0ce0os_0fm2^1r 1am0i_0n.o0 Al0 e8s2e0ee0v0d0"11E]54M-#D3 %D7.&lUh#7 V1#Ai!J# F/?B1B  VRiAAbE9 MX G{W'0U*R2N!I$a {VZUHPD  # #>h0JTpERI MU@u6?Fjc{g&?@%r`5B?Fm_F:Is?HNtQ`  II?t#]  _ii$!`kNu  iu%wj>M JQ T       "@&&JNU2"?H@Qs#N&A@b(bU)++&RNp}#>H1#19 ?#bbbz| R&/5R}#11`?Co0yrig\t (c)02h090M0c0os0f21r0Aa0i0n.0 Al!@ 8s%Be0e0v7@d@21a4t#-}#3 %746lJ#$JUp5 3 M19 1!q(!FnElrkRt# 8$kcD?@숒@)?FP?P"EkU |1\iOT/irvs}i>`_,of :m ,M ?? S&d2? *b?r4B!B oo1gr #5!>%(EQOOOO__FAc1_C_ D4ևS]_o_yRX+{_,__ #R__ (YQoSo+o=osd {oEeooooooFyUy{* hDVW(I X"c7I!pg bf'iMjSE t%XyG|'0UŢŞN!O4i |UGD # hz0TdYYBU@(%)?Fxg^?@0߯H?Fs7Uݹ?P} t` 87?t#_)TeΦu ]ukv  ̝L&UUU&I&3 U!!`?CopyrigPt _(c) 2\W09 M c os f"!r 1a i n}. Al00U (s42e0e uvF0d(0'HS$#-## 'I?k=#ǒ 2j$B##0U'BM3@&@F0Yk} #HA%DKb5DK3DK5DKED$!GiAZG5(|IDFX7yW'&Dŭ6!4YA yVZHD  # =hj4>T!]]>#AU@0߯H?Fz)e??F˞9q?P6 t`z  ?5t# rXѮu)Nu;):O]ע0 &> # " "+"+"+"+" $+"T-J[U7 ??& bA@ 2b4-#2zGzt#+@ Li68!6 ?}; 72U!:B#AA5 5`?CopyrigTt(c)20F@9M2@c.0@os*@f8B)Ar,@eAa8@i*@n. Al@ 0HsBeX@ej0@v@dx@)21"DM-,;?C G& l>]UhzAE!A#!ְ1J`#@{&pz?FUy{?NT,dKj&b&R&M/8T9K-q?F@F?FdG0 >Nk"?YE*]\LThKjfGD&Qhj ?iU3UGe&Y`?@/Jb)h5oWKoWo;èKod}l$ro`nE2K?Fˌ%4G{?F -q? eZR^{|\?6?vodmP}l>MBe 9 N 1iS? 1?grl#51:PO"4ga@Sq(UE^@O|ǐ[`ߡa v2rbA @3ijD&}laqOz o?#WHZ'Qu=*[^N?F]%P?@O&@ c?FаM<n ?` eb0)\(Pfodm}nv}l?V5(?q$Ix[cN#W{ #iA@&QeE9 MX''0UjdN!0 /HD  # =hj0T h]]9 #]AU@}%?FR$,?@6#V?Fc_3֡w?P6 u` ?u#t  3zM%t3ws%.<%H._'B> #PJU2N贁Nw[?@ʐL+&A@wbu](i+bk)%+&p%#4">9"<5!?& ?M#bbb͓z$ p&"/%T%#L1L15 w`?Co yrigTt (c)02`090M{0cy0oKss0f2r1r 1a0is0n.0 Al0 y8s2e0ey0v0d0"E1E(]I4M-%#X3 X7&l*>(UhE j1#$Ac!J`%#@5e$_F??!foA3nBM( V?FJ-R?@HQ??FS!R?P| llHL6VLD5E+v;*AůʙH: 8snP%$? k?Q? \?4_!__WrA5_! R,U3OC@IL?F4~Kz?P)Oy޾ T!]]>#IAU@܋?F2Oa>?@#r`5B?F*ݷ?P6 t`  >B?\oEt# ŖoZu 0Nu;Y:|8>$# JpU>##<?2& ?5bbbz@b#ANi&bu$'h 2N贁N[2$@ LX"D&v(&m$ :;T'm"*B#d1d15 5`?Co yrigTt (c)020090M0c0os0f21r 1a0i0n.0 Al0 8s2e0e0v0d0"]1"a4M-/p3 p72&l>0>Uhh= 1#!eJ`#&FNTM\jh1B,RBM(!JoUy{O_ e@ So4(D@^Tw?F]֝ä ?Nk"?w_KT\T+\_(Kjӷjmplhj -`\TPQE\Uui,St_o u~!ՠXEO9= T?FL?;uQ_Pm"rA @3sjQ1lğ=GoYniAleE9 MX|'w'0Ur^N!M$|A vzHD  # =hj4>T!]]>#IAU@܋?Fj?@2r`5B?F^ݷ?P6 t`  >B?\oEt# 6ΠZu 0Nu;Y~:#&}>0m8>  PJU2N贁Nwk?@ eL&A( 5bM(b[)h+h+$h&#[-M$#?& ?b$Z*'*B#O1O15 5`?CopyrigTt (c)02U0090M~0c|0osv0f2u1rx01a0iv0n}.0 Al0U |8s2e0e|05v0d0"H1P"L4M-/[3 [7&l>0>Uhh= m1#!S!J`#*&FPUy{_?NTMjC1gc RVMʣ(D#@ ![?F"$. ?Nk"W?IKTLTcKjRlhj p=' (*!)i,SO2Kes9T;QEGUFw6qX}__TM7fTZT\Dž}_P^52XOES"rA 0S#Es3iAleE9 MX|$Gxw'0UrIN!4gA xvzHD  # =hj4>T!]]>#!AU@܋?Fc_v?@#r`5B?F*ݷ?P6 t`  >B?\oEt# ap'EZu 0Nu;Y:|$># BJpU>#͙;? & ?5bbbz@}bAA& K&@ 2zGzt?"K@ L0"&N(bM)+TK/8Z*B<1<15 5`?CoyrigTt (c)s02009s0Mk0ci0osc0fq2b1r1aq0ic0n.s0 Al0 i8s2e0ei0v0d0b"5194M-t/H3 H7T &l>(>UhE=3Z1#E!J!FENTMjN@1h(NoUy{OO e@ o)4(D@^Tw?F]֝ä ?Nk"?'_KD3\T+\(Kj?ӷjmlhj P\ DiAlePsI=MXsG'0UzbZ6N!%$0 sFEjHD  # =hj8>T! ]]>#!AU@܋?F*?@#r`5BW?Fw?P6 t`  >B? \Et#տ|u l4RQu?]>I$>I# JpU>͙#<?& ?9bbbz@b#AE&bQ$$D 2zG[zt#@ L4"&R(^&I$Q)+]'I"^*Bh{.M#To1o15 9`?CoyrigTtk(c)k2009kM0c0os0f21r1a0i0n.k Al0 8s2e0e0v@d0f"h1l4M-:?{3 %{7&l>(>UhE= `51#I!J49fAn^ R)X f"B!Jui,SG?RSlOS u~!N]8-19= T?FL;uQ ?Nk"?YVTQRXQOnğ/=i n (\ wTiAaePE9 MXLg'0UbZiN!)$0 Lf`jUGD # hz4TYYT#B#U@f?FjK?@瘛?F1.?ٺ?P} u` ?ut#nW/8d`<Lg<`9ft99b<!9f"9#9f&9&'9f&(9(&)9<&.9P&P&/9n&*9&(.88LL``tt&&&&(&(&J<&<&P/b(n&n&&&t : zBtBIE GeroBE$G?3龅U~0UB?@4sF}CAAJSB`?CopyrigPt(}c; 200P9MPcPo%sPf"RQrPOQUa"PiPnO WAljP XsnRUeBPePvPdO"kBADtCB-}CC EGC=}DFtC dVV $RtDe\^RdYQ qd*a!gtEd8HjUdd{|dh{Sft{ah{ah{ah{ah{ah{ahkah!{ah!{tah(!{edh ,J T  M#EMU@jZ?F??Fĩ!3ܾ?P m>uA` o?u#jpMp -<p=PKA -dK#hxK2(.K<FZn>t,  t"lgyPb;!Fi&d2u!J>U2zGz?@9 g#>w&A@b(b)+&" !$NFq#2h#".6 "M"b)Z;'"i,"/*q#11o#`?CopyrigXt (c)020@90M0c.0os0f21r0$Aa0i0n.0 Al?@ 8sCBe@ej0vU@d7@_"ŤBMq#3 b7.6h"P&0"tY"eElJpYUl@{OX(QYuq'`0\q ٬\:SضX,Qp? X̏ ,MgX0QYŞ6ex`WYBaZuU4QY[S FP\ߴ_\16 4X8Qo џ 4WTX&tqYˣhMGX]}/s]GwXHQYt@tԚ?Fu\ɢ|~\oDlQLQ¿԰:G޿ ˘~XPU~U%BUT__ZAA(GE]T_f_[}u?Fʢ \9=Ŭ\G_ԑuQuucߟ?@ml?F=^`> P+CzOOߎf] B]$嗿<Љq3ux5@4Sa/JYԹ6TfJ'e0k?iMiIh%1X|zG'0U]1.650/ (HD # =h#4>T#3 >U@Ac?FO|_D?@ !?Foצ ?P6 u` ?u >,2t  f?5dLtW1qcRH_Axcl^?kJ2N贁Nk?W@ LA@b ++b )'+'&񉄉ԑ"?& ?A' !zR @$)$)/J%B 31315 `?CopyrigTt (wc)j020v09j0Mb0c`0o%sZ0fh2Y1r\01uah0iZ0n.j0_ Al0 `8Us2e0e`0v0 d0,1(04M-_/?3K ?7&l> 0>Uhh= Q1Zb!!J`F9A,2 %,VMS(Jt= OMmѱQ~%+UD_!OSUE^8__ {GzoXb52O;"rAQ 0#Qc3iAleE9 MXG'0Ub-N!R$KAB5 fjHD # =hj4>T]]>U@CC?Fd?@?FԬVq?P6 u` ?)u hAk,2t  Rg(LtW\jwS}ժcRV]clMJ2N贁Nk?@ LA@]b +Wb )'+'&𩆑;"?& ?A' !zR @$I)$)/J%B31315 `?CopyrigTt (c)j020v09j0Mb0c`0oKsZ0fh2Y1r\01ah0iZ0n.j0 Al0 `8s2e0e`0v0d0,1P04M-_/?3 ?7&l>0>Uhh= Q1b!!J`Fuz T ʼ)UB ,VMS(UjExK?DZ/`D%Q~%+U\bHNOkTI?$i|UE+Ugr?F9Y7TRY_DU52OE"rA 0#Qc3iAleE9 MXG}'0Ub-N!$KAB5 fjHD # =hj4>T]]>!AU@0M,?F (Q!?@2"\?F21기?P6 mu` o?u $lAl 1@,2<UJt  gttqzh&vJU? & ?Ab5"z@AA 6$>)ub ^(6 D#@ D2N߁Nk?@ L&^(+bl)+y&s,d"y*BB[1[15 `?CopyrigTt (c])020090uM0c0os0If21r01a0i0n.0 WAl0 8s2Ue0e0v0d0T1X4M-/g3 g7 &l>0>Uhh= y1!d!J`@"G3?F9;<#R<M(!A|jL, I%% [F?gGQ%SUl"F?F7K^5˖Q YEQCUESUF]k_T Y0ħ[HOMTb^?FWȬs рY+ d"rA 0#c<Fl~rl r!}iA2gE9 MX0G'0U*arUN!%$sAj5 v,zHDJ # =h#4>T#3 >BU@m?Fyg!B?@u>71?F!A0d6u?P6 u` ?iu >k,2t  eypLtWVcRB )clOODJ? ?Ab "z@A $)Mb 6( # D2N߁Nk?@ L&6(+bD)+Q&K,J<"Q*31315 `?CopyrigTt (c)j020v09j0Mb0c`0osZ0fh2Y1r\01ah0iZ0n.j0 Al0 `8s2e0e`0v0d0,104MB-k/?3 ?7l>0>UhhE= Q1n!T#3 >U@rڌ?FlUM?@MX?FI?P6 u` ?u >,2t  ?ou mLtWWcR$_˟clɽJw? ?Ab "zG@A $)]Mb6( # 2N贁Nk?V@ L\&6(bD)+QQ&K,<"Q*B31315 `?CopyrigTt (c)j020v09j0Mb0c`0oKsZ0fh2Y1r\01ah0iZ0n.j0 Al0 `8s2e0e`0v0d0,1P04M-k/?3 ?7l>0>Uhh= Q1n!T]]>TU@n2L?FIҮ?@y“:K?F[dg?P6 u` ?Mu [>,2t  K4LtWc4cR^rCcl{STJ?0 ?Ab "z@A $Һ)Mb6(@ # 2N贁Nk?@ L&6(bD)+Q&K,<"Q*T31315 `?CopyrigTt (c)j020v09j0Mb0c.`0osZ0fh2Y1r\01ah0iZ0n.j0 Al0 `8s2e0ej`0v0d0,1E04M-,k/?3 ?7l>#aUh[3 A Q1n!sXE/U8όKBI .O"tW/U{ؔG\b# aio?p0sX2O;<"rA (0#c3q_(RAeoiAVAeP$59 MXG'0U_r-N!0 B5 v*zHDJ # =h#4>T(#3 >U@ҙK?F<;H?@jB?FEk9?Pn6 u{` ?Su  A,2t  ןG}LtWҤcRMNcl?\zՆJ;? ?Ab "z@A $).Mb6( # 酑2N贁Nk?+@ L&6(bD)+(Q&K,<"Q*31315 `?CopyrigTt (c)j020v09j0Mb0c`0oKsZ0fh2Y1r\01ah0iZ0n.j0 Al0 `8s2e0e`0v0d0,1E(04M-k/?3K ?7l> 0>Uhh= Q1Zn!T]]>!AU@ꪓH|?Fto?@P"?F%dݳ?P6 mu` o?u $!>2 1@,2<UJt  ghttb뽘)ub^(6 D#@ 2N迴Nk?@ L&^(Wbl)+y&Ts,d"y*B[1[15 `?CopyrigTt (c)020090M0c0os0f21r01a0i0n.0 Al0 8s2e0e0v0d0T1X4M-/g3 %g7 &l>#aUh[3 A]@ y1!d!J`&F?ޓ, W_rv J<'R<M(!kuϢ?FK!TBKQ%WUZ&L#\ = GZɛXEWU8(?/&?F9I'\]\WHOC@}?F,^ рYZ+ d"rA 0#c֪J~V(L ~A ׻XWU8TL)?Fj;KL~\M2aiA~AeE9 MX0G}'0UrUN2(!0j5 svzHD # =hj4>T]]>U@gr?F^i`?@?Fyrq?P6 u` ?iu ">k,2t  !LtW( UcR]cl ;_@J2N贁Nk?*<@ LA@wbb ) + + &D  ") ?A !EzR @$)R$ )/J%B31315 `?CopyrigTt (c)j020v09j0Mb0c`0osZ0fh2Y1r\01ah0iZ0n.j0 Al0 `8s2e0e`0v0d0,104M-_/?3 %?7&l>0>Uhh= Q1b!-!J`[F%),2 ,VMыS(K=_LD^^PCűQ~%+U9IS_JUE+UF XOO ڕ]oX52OE"rA 0#Qc3iAleE9 MXG}'0Ub-N!$KAB5 fjUGD # hz0TdYYBIU@a ?Ftnm?@Me?FpWe`ݷ?P} mu` o?u#8#5$+4%5HU$*44HHt  g t3 at?Ы O` *0U"?҃@&T #M!M!`?CopyrigPt (c) 2\09 M| cz ost f"s!rv !a it n. Al z(s"e ez v d F!3YJ$#$- #Y# Y'#^ B= #Z&#l4G6PG6 C2$e^.317;( #HH1|H44Gi^P5 1&X"7.EG'$G6%!@4] EFYJUHuDh#" # J#UU U UUA>a0JTaaMU@Me̷?Fk ?@N?F0Cꮷ,"7?P AtQ`  7?`t#jn \v\fw"MGwugoquo$Kt2zG/z?@Q#+&A8 b*](i+i+i&)j#3$(Qc"bk)+'Rp7171{`?Copyrig}tn(c)n]209nMf0]cd0os^0fl2R]1r`01a# i^0n.n AUl0 d8s2e0ed0v0d0@"01Y44-C3 C7$&lU@U1#A(:!F?SD [6yw(E ?F{ŦL.D;\I`H3E^?FpJ"MC=\C"qoI5Eo9?F(bȵLvF=\#bJFHOOOO@DQKO]OoOOOOf??Fޝ,lCۆ=\)?4=(Of`ẏ?FC+mR)=\/b@QS_fFȄ?F7qm ~=\76ԡy]4։U?F*t,lI=\oooo ?E#goyooooo/?F:}W=\wzfu=pӣ?F߼<,l-~Ȩ]p|y^]x?F}+*y=\+ 3]X0l?F-Zߣh,l Bߒa=\ vl%?EYˏݏfO/?FI42,llHJ|=\HN4f:f?F`\},l>x싟f~?F3x!##E=\J&)O]챘?F/8-k%mSp=\< 2DBB]ǯٯ~S*|ǾȰq~Fn)`]]c֦]L½r]7rG2=\`_g@P 4?F8^d=\he]|J%%D2Vthz1hV~=\K m0BTfCAſ+i /НJ+mV.c|~kdny].!̛ ?FW,lJ(Jd0(fä j[+mޣ =\_?ny]~"2!GD= bY~=\6y@ mL^pCA .i}-|{zv,l3  4f #[tU?Fߞp=,l0ϓpBKg嵿?FdNw:{QBb?ɣ]gۼ?F5̅h.fQ[Ϡ mhzCA&8J 7?FG1^}a aB Kf?F@;,l^s};]K_dШ&?FfOBl?w2OKNe9@?+o)F?{qOCw_PvI4~=z2m?Gm}>ID ___Z1 (_:_L_^_p__H>ho 2 DVhzHMgz?FC_߯():?1ZSGbZ2@ҽw]6<730b837SI|~"RM?L2]-m?Fq,cɥ~)̲1%]? FZ ҟ2 `rѩ]/U Bkn|)<|4];-@uvzwWPFMǕDGt{GI"MqcB߀~@6?HPͿ]M+T/]-$A#8FNL /Y-m$+|*1 |Ŀֿ~ѩ'Z?s =-B^l?2UzVs0~ԦLnQ ~덧쭕g8A}2!"M 2:2?ְqBYZ$@SK]-?FkL}-.zus1v8 .@2ߪ߼ѩ|[s(^lU }J\!Omy͹?F$зX-R P"M^b=-s ,G4,c^lX I6g ]-BS3>-U,-A -,>Pb 1Ԧ(?F~^lAw,?Q7ZьkP?F=S~-sj3jK~)4~"M`dqhY W-߇4ĭɫ)^v 0$3^l0}S1Ix@YpB/T/f/x/"R//*/ѩ??FTmȵ^l5rЯLjوWjFQ/Zyk?F|X"\=De9gs jEo9 ^80>~sMY/|=?t۶ I4TSx?F/doM~^l ONQZW`@?[OmOOO;u??O"O4OFO??FhWy?0WvOo-uѣOd[?FSҮ- ]gWy, l Sz?Fl}WmxZWQ灝in]\h?F.j.\=/I Wdvdp_zooooboo,o>oPoboѩm4p=u_0S}Ÿj8>4W[դ?F:mq_Wş|g #Z?F'[=ݛ}T r=lfa4J0-p/"_flȏr$6HZl~ѩ;h4=(V.@ ʯܯa@Rdv`j^l8g Uw*$B_.nV?F" }"SqN̎?F-;u6D!FA\Y] œ1g ^~SI6? r1 b\nϒϤ϶`kx7|>@|SA-:N^{a*0An?F~ _1ZA}2!g-О?F\b F! qZtq*s 1Mm#)*:ݧ#VْG%E\־ |)߽BJx;mmMQs~߯X9Y Z}l@/P N?M/?1?C?U?U!///// ?7 ;{?Ft\,;) q~-a.d?~A3U'3҈>}>/Eܑp%ߠߤ@^^l{;HkOQ ҠO\ۼ?Fߙ4zf]ziO;_M___q_OOO__&_juW/?Fia~Ia{pU߀_~ Z lS;܃(Siri`RriZ;ӱhsm2Ca6.o&s ?F~f(;EyoIs6\aoZl~:oo 0BzP1c/?FAd)? |hAقUYܙK?FxtQمwPIr2] ~€+Xy'MፍǃaM*2S%ʰ?F+#f~;-a~p}|b:ѧ`vXT 3T %iX3ha TaPaMYU@?F{dܫ?@B?Fx?PM]tQ`  -F7?t#UY~PUu0"u;(,\"b&hUt}2zGz?@dQ#&A b(++&Y}/SV0$38?b`4z */!"!f2$R}11`?Copyriug t(cU 09M0]c0os0f2R1r0!Aa i0un Al<@U 8s@Be@e0vR@d21Y%4e3K 756lU)U4FX1#A2%!Gj0?F73W00"6#8$}-%L#1O)߰=! 8@U$h?FTۜX\rNj$n\B.PXX3@U xQwv&5}X\:"^?5&^,!UnE@UO/NPY[||m]P5Wh@_R_d_v_DQOOO __-_f/,?FRal_`[]lS_fV>ս?F)b rlS3le£ϲ_fq l+{ ~W2ofG Dv~iqhCs}6n~#coo[mE#o%7If[v6/?F2l+|lTCf% ?F92mXlp )B&ur7f}ܑ]{}k ~Xą=mg?]̧lHWg#tdf߻mAY /ASefWc{?Fu]S䱴ls :Llgu伟flo gU?F;^U=lChlx-jfF^eۙq~j0xi|m~c&Mz?lG6OɿE]+=Oas8,ǿ?l:<]izT}ۿ~*P?F=|{FlqHlο:.2~DB'ǘ}l5(3V߆ϾfD ыh殴li7>-I<̾ϲBbGYk}ߏGM~}?FF*.^/ͼi?oߛfu?Ff l3Mi[ KP~0굂c}lOF?آロfIӂr=Eldݠ_\B\n"w\㾥P8bnnE]<0j]SEj`B^ݷk. ρV̲_#u悔&ƀ ܠ\mmElxY=mu1~!Ii)\mz^.P/كYm//&*Ax"x$qQ} F4D2}{=yM].u #q2}~s}z0N?lWU$?μǵF!i}߶bܑ!n@垇D}LnXXt~#ViԂ,iߝXQ b4Oq>ad䅔tnR)u@o0oBoTon _____ o"u2$j1}Xι_!eΟ`?7-:ܐ9Ri>DYH-#Gߍ=ԑ4MXjQ9Ef׹ tt}k͟in?S(:L^pn &*~]JB&u¥ G48Ġ7-a#|GgS>a8|I>3; nP#bWU6mȧ .ֹc`}l:2?xuTѺVhzn 0B=M#p0}!:rd Q%- qOj 7-Vsb: u>O9e>(xx&?FgH??[WvpLQ?M9 Ԣ1/!ﰳm 7xzNªJrτϖϨn (:L^sjJ^/0ЧIs*!\ٖ o5|OF ȷӸ@`?F/ ߃7\!\ψf+!"p@)-_!\?$”Mގ#q|f@LS`8}!\߬BĪ&Zf<1ߒ2 2DVhz=U[[0m{TfP7-^u,b%:k#ԍ?FȘ!\(V!I/iUBg78;L5?Qcuӵ3@?F:Ě ],‰L?L/LY!ԣ?FRs;=w] PʉL?^+UϰGIm߲E,1u5w]LK>P#XrO?? vnj!\Zz -~X@////UX/j/|////=R?FQJ<}A{ХloZ ?@lsچk?Fp"mI鴡si}/q2 ym9HQ em\\g^rBt@|? [úA'5r?#7-oo#5ߕoooooo=zg?Fzl) Ud4I堹> /k͹?FV{<˽h4GX'1rn=["jyN%.:PɟLIUw ~#Q)9=Syeӄ0_6=6LTL=Us|9ks}ߵX5>2f$~1b?Uw0'/N`%;M p4~mmo7o 9Q5:+G(j=?=;J?1OnN&4'9K]Vv*RQxR]6g^ɣ|Zk%O!QڑQ^^h?g^j^}_Txk|j~WmVo@?xp >eBcN#c G!Tx5Pm|LGf.Q,ojF.@RdvSzL``qn ~GA>~wz^gqҕim~x$gK>~ V2wTx"dQᆠA(Os:!nLĥlqNCyQӫKcAahG}6ZSN?H????fF1;?M?_?q???Vv|&5}7@R"oPiyK> k#>ġ"}?A |M-¿t6j`~r_QW44zaqYX8Tȴ߯~n߻d ____T_f_x____ Y<,2?(rݾW1[̵yѿ㸗_go4͵S62M\{Qo^~(Z&T!+<5&s pBr~y>08x޻ ϛCE/RuCQݞ%~޽3]Fb?F?|~퀶5 ~ 趒;پQtoqΣ6 ޻֮Ǹ) 1Ÿԟ)e]+akDH~6 WMw׭K,@&"c?F'%|6 ξi@a > <ŗ&8`kb|-~ 6  s??BD&m/V%߇6 b3hD5^E);M̿޿Ͼ)`]|i!x899|/*a|>5i=ϭ,?F#6 K.5> ս5|[ݍvϒe*y34ݶJA)=`2DVh j@?F-/g ?hA\)/N/U?FM2e-j X*?v(N })2-OrYQ-~.Tk )\}/'?^qq|*=3laz ~} 4}ס@Rdv22(:)*?FN !kyMdFq&w^I/(Y[?Fߧ!Ma#Jh|ϻ/x9P8!il{mM{G~.2:O˕BĈy!" _뼙-Y` k/}///KU/ /2/D/V/4^F?}e_mu? y/X /?Fjnǚq7}? D?Ɗx^o߾AytÉmA~ ^{yoQfAYvӗ-ׂoNZc?OOOOgu O*O~gL<7@p?ʼn@-1ş9p6=n?FQ>~:B !~ ޾UC?i^Jak{_f/˲p6J%V{垇͉}1JMZ ۯ#l~Ư4ʩ݆!~ cx|[) T@ Ѳg.Kn>$?{nIn880ߊfr2Yp=ȓ }UptCE_}lB~?h,,$ϚϬm9eG\'1rth|~1=9zsg-?Ubw;]9 _Y*'1`-LI@0goSy?o7x>PEu{ X~=8+m?ɼ7)}^E"S0 }٫i)}.@R%m9Y; dA Z8M]Y ]V6yY+t8skA rM#\$Sp!_n8$Ye#=]*}_I}4I H~`]ت]~| .ʗjri_.@RdF&|m9;q;gi}I߂h(}(Uϯz5y+[Bq}X~v"x>?0~1>4W *wFI.i}A0p}} &N{*y/ K?]?o??+e'//??$?6?MIbLR$UFײ;nC -+}IDQ$Օi}-HsC V2wYNHCw?F3kDjt!eJ }=Zܵ|#aOQcܝw~BnW؜p f_x___F(O __._@_R_MIst@xAOK~` f ͹+ixrݧJQp~[̵yvOGo?Flg6uMh ٘]oSC`qb?':^Bo}^~^?>Dp$ςb)&8J\nMImc@xgAx+_f{&34'Hee÷@%|~g܂HV <|PFXdTX׊ćgߩXQ#֟7$zLvPFBrX}g$Zg̞Rש<͏ß՟*0BTfxMIߵ.W_=%eiJz#Ms2,MD_c|T%#5JLYXD?F5hFg y@8|ѕSCw]&.mᕼA?鯻Ϳ߿+L^pP>FS`D0 e4Z>+-G_SCa\0І?FKȝ ǶH ~%aWNwZ=!/OG#b q1{~! tIWxa@$,"-MIkO/?F|R |~A&'A;߯bc @``5('Mh-nf=!SCrRat!2vIgn/=gyzu  jf&q#=-uS),/*/NR<btB1*<|N t!ߡ..Nsz9_-ֽ'}.<94o._/?{iPא5] HV:;$HĠ﬉ қZ?nBӭ_2"4FXj ErT@y}Mo 6N?PJY_-_`o颾Mn;NOqȝR?FOZ|<;QaA1b;oIaWW6/H]ToY?vbgCt_Ϭz3,>PbtφϞ m9`Xizh \~wKVaϤ~gPϐsY6i&vb8l5' f EXe]/; ^bAߡqEiK )~E?H{=߷4HZl~-Yf"b }h 0JTlaHaMCMU@Kk?FVٖ?@uW< ?FY鷺?P >uA` ?u &J2A:2,t  #)taN_"舺m\pmv*IJ>U2zGz?@UL?A>A@Wb#q)!?(b'=&Nm ?0& ?M "b?)'7,I! O'11`?CopyrigXt (c)902d0990M10c/0oKs)0f72(1r+0d1a70i)0n.90 Al0 /8s2eW0e/0v0dw0!(]$B-3 7&lJaUl~ 1l !`@9  颥 nw&. ʙF,2 FFՋN@DW9_k7BLL␕U?A%E?AL9C=QIDZB3>X5EER_`y5qLWO ]7@D>XE2OE#rM) 0 " c3AAO(O:OLO^OpOFF&(LKSoW N L Od]uvx?FZl6>LI3nZձL)LA_x1ur/ fLP $e'Hٰ_FfIXDoo p_Uoi &kpiMf5kiX7!'0Uʂ>$e5 UH luD( " # #Aha0JTaaMQU@Ad{?FdT#3 >5AU@c^?F`Ld?@9x(g?F_Uw?P6 u` ?u .6(>2Q 1@;,2<_Jt  N3 trBNٟ,PޟbX"; JU2N贁Nk?@ʄ L&A@bu9(E+bG)%c+c&# #!!5 `?CopyrigTt (wc)020 090M c o%s f"!r +1ua i n.0_ AlF0 (UsJ2e0e v\0 d>0!E$M[#!2?06 ?AN$)e/%-/#K '6l> 2UhE=%!?!J!(NѠuOO u(:@¤̥?FbP;?PEB GݐAY1&YMAJFHe׵B `,a,[ /? :7i? >y4vʚ?rJ5;!:_o#ga@^AOiAlerI=MuXG_'0Ub5N!40% rFjUHLuD" # R>h0JT#3 _aRMC5MU@u{v?F ??F];\zظ?P >uA` ?u .)J2 1@;,2<_J>t  w?t&9W`ݟu㵩OJ[>U $?& ?MbA@D"J&N#y!y!`?CopyrigXt (c) 2d09 M c o%s f"!r !ua i n. _ Al (Us"e e v 0 d r!]$v$-## '&zBt#2q0[?"@9 q>6M(bL)J/8Y*lJ.-$U#8APAa A =!4Q1D!1A9 {?F%@ 0nCϿMnNEuýL9%K FH(5N?:G_&_ RHE5E#f/?FR=JvK ϽLQ ELxAEE^]R__ *HE8,;@ƫn~LnzdKL5rdXHsA8#5 뇯/tH@ED@/GpOc#?P-DT! рY?!IO F_}]~3v!9$e% UGD # hz0TdYYBqU@UJm?FBO ?@IxJC?F+9lbݠ?P} mu` o?u#L*5-+4,5HS+5\$*U44HH\\t  j@g> t~pm J)4 {ו' -U;!;! "`?CopyrigPt (c)r ]2\09r Mj ]ch osb fp"Ra!rd !ap ib n.r AUl h(s"e eh v d #"4#S8$,#4G# &G'?=5#H&,#Z45656 12,$B#5#05U253@+& $^ #E K5 5#\HA%$DH /KK5$D4/GiA^K5 6X7G'4Ŕ56!.4] FJHD* # =hj0>Th]]>]AU@ ąMu?F*]!?@v$?Fu?P6 u` ?iut  Dm%t3._袋%.0I~$%UHSB+> PJlU?B& ?AuA@o +bs(b$%#2zGz?+"@ L&s#v ##zu s/ 5&,J2*%#c1c15 w`?CopyrigTt (c)02`090M0c0os0f21r01a0i0n.0 KA# l07s2Ue0e0v0d0"\1E]`4MŤ-%#o3 o7B&$!A]UhzA 11J`%#@frq?F ["(M(!T?FyIRaZL\m۶mQ8ϐ?F@$mZK\٩?F}e?P,DT! VрYc!ITB M~E'QY5a XȞv/ ,^$ Ui[? RRT*?r.5 1:Oo aosg4 1"KUE[UF5sRŐO_ <tf ?@Gui&PbE9 M5X8G+"!'0UE]N!R]$ar5 vUHLuD*" # R>h-4JTaTa9 JB>U@@(/&?F94;??FIRaZ?P>uA` ?u>t   e~27-t!;E]t-6-P\E`,J%EJff? ?Mdb"z@A }$)1b:( #>!f!?X(d, P酑2N贁Nk@9 ^"&:(+!D:/ 5;T'2U&Ra1a1`?CopyrigXt (c)020090M0c0os0f21r01a0i0n.0 Al0 8s2e0e0v0d0"Z1E^4-/m3 m7lJ0JUllI 1!1` C  /VN!b͉(O"TYURIUD%YU+u7tYF_QER5:MT?7 T [Nё\#CTAE2OEv2rM $Fyc"mA$zG %I OUOYU`fsRsŠq_ _ wT#3 >U@+(/&?F94;??FIRaZw?P6 u` ?u t  <~2)t7E]tU)2)LXE\->J2N迴Nk?+@ LA@{b +b )'+'&D*!!5 {`?CopyrigTt (c) 2U0 9 M c os f"!rԶ !a i n}. Al 0U (s2e e 5v 0d0M"!E$M[h2?6 ?$A$)/J%,b,# '6l>(>UhE=~%!6!JXS(xNWOO D QH~%xE9OAOAiAle6I=MX7'0UjR>!40% 6FZHD:  # ;h0>T@h]]9 BIAU@Y"2?F h?F\9?F_X*qw?P68Rw?>u` ?u$.>. V- (.8:Q [t  !g?t{Yu?pvMl{~ݕvs5Q!fJU2N贁N[R?@L&A@bI(b*W)U+U+U&񩆍y#? (<!J ?%MP?AO"d+b Y)(u/%*B#A1A15 `?Cop rigTt cu)x02`09x0uMp0cn0osh0Ifv2g1rj01av0]ih0n.x0 Ul0 n8s2e0en0v0d0@:1Y>4M-#M3 M7#lUh/#7 _1AO!J # F qBd V(R iAb59 MXGW'2WUQ;N!R$aP5 VM&#HD # =hj8>T! ]]9 UqAU@c^?F`Ld?@D6 5D?6Hb?b06]DN`lt   ?N t!rBN,_PaX"; jJU #<nH!A?^%Y ?Ab^ @$bbbz #"b#$"b$ 2N_Nk?<@L&(&$%" ;'"!*@!A#BBhy?H *A#115 "`?CopyrigTtk(wc)k20@9kM@c@o%s0fB1r05Aua@i0n.kU ] lP@ HsTBUe(@e@vf@dH@/"14M-?3 7#l>]Uhz11!J`A#@SfVo?FnOo0  d" ΄ ť^R^M(!`ZQaSt__ Cƣ8-$Րj8:ۦ?@u-{?FrgY?PC d f"Y!Y1a ]D_;s ˿}nE>0FQ #? ZOB Uoϋ ~d"Pf @+(vQj[sGXWQŁfQ| Q2 8Q?. Q HQ xQ_ި F֛Q$ Q 6Q Q Q QZ 7. N8. h P,. $.? B//'/.[ o. P@/`6A/pD/ 1F/E xH/+ .XJ/Y Q8L/ ^0J&(W1R.KXZ1X2a1;poc1>9Hf1KDd(h1߯F%Kj1Jl1YNn1 QH2S1UFD  h(^TYYB UFjZ?F~??x<F BPG(?P } X ]B66]  TTUTTT9T9ȴHBU?Q?G ?B@L&ɯd2?6-G(?\.Y(7. sU!}&/) *%  0eB`-ecom0er 0eW,s2v2, 4put$4dui0t0ib24ud0n0tw 0rk!% ^| (S G& q?%7I???"" wp ""ppqwqqwqw^qpi ppwpw)wwwqqd^wqp~wwwwwyDrag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aabjZֿ~??cN׿ mF1??%!{V↑T*J?@ ?UG DF P# h @T(PYY# [U@jZ?@~?tP} u` ?u#2>D>HX DHlHYHH EEdR.؍>DDXXllRu'9h",'US2&5/4&3 ?"'4Wb0{['`:[1#26"d^Q_9$7&9"/L6 2&!'ݯ>o@ÿ@qx@?@-pB?wDmF03Bu9@`҈-1Bu@r#CC5",CAB2Cm9u`u `"[ b!u`/3Qy1y7B`?CopyrigPt0(c)020P90MPc.PosPfRQrPaaPiPn 0Al ` Xs$bePePv6`d/`VPs_SBNcPm_!#5P8k` 8Fay1&3db4&5܀MB=/3z6&3d66 2&4#/30U1r3]%ge<^AE U#"&5m Hq&5twV5t{3t{VEt{t{y {etd{|tY wmda*V_BTAJa$Ja&203V21@3 2MVB3Z1125tb6 7$C|èEhhPÓnQ*ϔtataAPꓰMB111;@cqcqba>*Ab1%EQF^.1XA#8dTG`XQy`])r` M`WnuPaPt5arFaiQ` WEqiPm6`nPvd{V5QX]1PRd*ơ ]`ue`bͯ߯@30! P`r@RdSH@ȱ]C5D6bQ۱eʿܿ{"\ ϬAP9a:B`諸75^ϖϬ% S:bi`#aweT ߬ぶLPchCekT}ߏBalB`i`g̨9@߮,RPoڂ|EZ\@ =phDBU T)?ar0TPpVrKB` B`sR;IY`A Y`Q@;bmr:PeExab!gD"qQr2w`ijJSCC ` TsR\͒kXV` ?ON`1ڒBkfHZSbY`|` E@cqTZ Nwbk4qa+.2`f dDIpadB`5cϐT)nĺs kx/0/(mTa t f?a ];a£|v///ő R pa/a@/?(/0?>/M`Cs?5?'U+pu"tPf!?BkQO)O"f=OiODOkvOOKHdBQ#CġRC<` Wm!wV_*_ Cg0ar__yi_'`M@mi2n__v"kpo$o8KOB%fy"FaPoboj qt1dw:1NvcU@jZ?@ű? _v pBup` ?}rup`  B=ݐpj,U>(p5$j-T^u*uq, ST1.s1'xAMw>ÿ$revK ˆeGrςłˆTς߆L2`R"oUK=e2j"rb ggbr-}@"Wbrgu``dv~jc 4F[_c@-->A>Bj(@yL1L1*Z{­q qqqcҴQ:ai6“`k`!uA`aż@q@ʇ{„S5_&ﲄПF3s͵N?SYFy 邉f@ H8W{H5WH`Yc|ag,@ BQр0Bf_q_qʷifz!` %.P&4odAA_qNNTWOWRKeH0PRf1RRI%SQ"it!̔=GQW'70U? 10a?ƕHD # =hj0>T h]]9  5AU@jZ?@͂T??@x?SF?P6 jt`  o?tk[>(A Vu aSuo.]&A]  *ԮJU2zGzt?@L#&A@bA#z7 5#1bO(b])j+$j&[ "*(w "?& ?AU$l/%B115 `?CopyrigTt (cu)Q02`09Q0uMI0cG0osA0IfO2@1rC0|1aO0iA0n.Q0 WAl0 G8s2Ueo0eG0v0d0"1E]4MŤ-&3 &7&l>]Uhz811U!J!u6?@+\.>djIIa? >"(EǑ I%K9E 5EU . K ;;5QIWEEE@ _KnSA?8@VBu?@DR> ?Nk"\6`ObmMM\j=am {:e 뇿P> #? D"? 5-gg?j47!B{oogrK57!ibDAbE9 MX7'0U~rN!R$a)5 5vIzHD # =hj0>T h]]9  qAU@;?@J5K?@xEL?6ѿP6 t`  bm&Qo?t~@@L]WI,#u auoL> @JU2zGzt?@L?&A@b}#zts q#1b(Wb)+&[9#H",ɺ (;H"?&L ?A$ /R%9#V1V15 `?CopyrigTt (c)02`090M0c0os}0f2|1r01a0i}0n.0 Al0 8s2e0e0v0d0"O1E]S4Mb-9#b3 b7I&l>]Uhzt1.AF!JN!n.%-+0rdjV1ax߃)(@K-&?@ mO"> ?Nk"PL[Majnha_:e 뇿P> #? BK=o? n-g?j4s!B{__Wr5s!D8E6V 6?wj_|_ ^XE.U6Vz T6?@ @ d_mOoT ݬ\VyWxRkrVo_bVh*g:n"'UaEjz36>C~N>?Bn]_zGvN7ViDAbE9 MX+G'0UPN!R4ae5 MaHD # =hj0>T h]]9  U@jpiH?@^?@$?@]F?P6 t`  !a&ao?t,F=۳=u;u auo>J2zGzwt?@ʐLAw@b#z1b](b!).+I.&[-m(?0& ?A$I0/Q%!!5 `?CopyrigTt (c)02`090M 0c 0os0f21r0@1a0i0n.0 Al[0 8s_2e30e 0vq0dS0T"!E]$M-# %'&l>]Uhz!1!J@% djc~YZ(_N9zOMGE%_EH$SwO"K ңHE ^&_8_WE_OqOHOOi&DAbPE9 MX7'0UUfb>!$a % f1jHD # Uh4>T#]]9 M5AU@jZ?@L|+?@?@({~?P6 JuM` ?u JYt )t7zEA2&L_D?. > >tJU2q K?=@MJ&A@-b9(+bG)T+T&J[#"#a?& ?AH?/`)#115 {`?CopyrigTt (c);020G09;0M30c10os+0f92*1r-0f1ai+0n.;0 Al0 18s2eY0e10v0dy0z"!4B#e-?3 7)& b 0K8>U# ]A]A "1!ъ!PzQ <%OYAJEU . K;;\%W%E@($L[.FX5Eai%?@ 6?wL;] W-\TB⤲8?W&SA?@ @ ?Nk"L'`bmMW_Ye[7 VK=F: [jr ? D"? X?ZvD?a@Boogr5;!QEؿx]SiLO MLXa~WOTZiAle59 XG"'0Ujc&N!$05 .HD # =hj0>T h]]9  IAU@K?@OgVb?@O?@X5?PJW?>t`  ^Z?t#ə.b?T@[ u?/CG<_Z+u u$ >  J JpU?43f<!.&P?b3bbfz@1bAe&bq$d 2zGzt.#@LT"&r(~&i$q)(+}'i"~*#81815 `?Co yrigTt (c)o02`09o0Mg0ce0os_0fm2^1r 1am0i_0n.o0 Al0 e8s2e0ee0v0d0"11E]54M-#D3 %D7.&lUh#7 V1#Ai!J# F/?B1B  VRiAAbE9 MX G{W'0U*R2N!I$a {VZUHPD  # #>h0JTpERI MU@u6?@ic{g&?@%r`5B?@n_F:Is?HNtQ`  II?t#\  _ii$"`kNu  iu%wj>M JQ T       "@&&JNU2"?H@Qs#N&A@b(bU)++&RNp}#>H1#19 ?#bbbz| R&/5R}#11`?Co0yrig\t (c)02h090M0c0os0f21r0Aa0i0n.0 Al!@ 8s%Be0e0v7@d@21a4t#-}#3 %746lJ#$JUp5 3 M19 1!q(!@oElrkRt# 8$lcD?@숒@)?@P?P"EkU |1\iOT/irvs}i>`_,of :m ,M ?? S&d2? *b?r4B!B oo1gr #5!>%(EQOOOO__@Ac1_C_ D4ևS]_o_zRX,{_,__ #R__ (YQoSo+o=osd {oEeoooooo@zUy{* hDV!VV(I X"c7I!pg bf'iMjSE t%XyG|'0UŢŞN!O4i |UGD # hz0TdYYBU@(%)?@xg^?@0߯H?@s7Uݹ?P} t` 87?t#_)TeΦu ]ukv  ̝L&UUU&I&3 U!!`?CopyrigPt _(c) 2\W09 M c os f"!r 1a i n}. Al00U (s42e0e uvF0d(0'HS$#-## 'I?k=#ǒ 2j$B##0U'BM3@&@F0Yk} #HA%DKb5DK3DK5DKED$!GiAZG5(|IDFX7yW'&Dŭ6!4YA yVZHD  # =hj4>T!]]>#AU@0߯H?@z)e??@˞9q?P6 t`z  ?5t# rXѮu)Nu;):O]ע0 &> # " "+"+"+"+" $+"T-J[U7 ??& bA@ 2b4-#2zGzt#+@ Li68!6 ?}; 72U!:B#AA5 5`?CopyrigTt(c)20F@9M2@c.0@os*@f8B)Ar,@eAa8@i*@n. Al@ 0HsBeX@ej0@v@dx@)21"DM-,;?C G& l>]UhzAE!A#!ְ1J`#@{&pz?@Uy{?NT,dKj&b&R&M/8T9K-q?x6@F?@dG0 >Nk"?YE*]\LT_hKjfGD&Qhj iU3UGe&Y_`?@/b%)h5oWKoWo;KTod}l$roҥ`nE2K?@ˌ%4G{?@ -q eZ̿R^{|\6?vodmP}l>MBe 9 N 1iS? 1?g]rl#51:O("4ga@Sq(UE^@O|ǐ[`Ρa g v2rA @3ijD&}l迲aqOz o?#WHZ'Qu=*[^N?@]%P?@O&@ c?@аM<n ?` eb0)\(Pfodm}nv}l?V5(?q$Ix[cN#W{#iA&QeE9 MX|''0UdN!0 /HD  # =hj0T h]]9 #]AU@}%?@R$,?@6#V?@c_3֡w?P6 u` ?u#t  3zM%t3ws%.<%H._'B> #PJU2N贁Nw[?@ʐL+&A@wbu](i+bk)%+&p%#4">9"<5!?& ?M#bbb͓z$ p&"/%T%#L1L15 w`?Co yrigTt (c)02`090M{0cy0oKss0f2r1r 1a0is0n.0 Al0 y8s2e0ey0v0d0"E1E(]I4M-%#X3 X7&l*>(UhE j1#$Ac!J`%#@5e$_F??!foA3nBM( V?@J-RHQ??@S!R?P| llHL6VLD5E+v;*AʙH: 8snP%$? k?Q? \?f4_!_t_Wr5_! R,U3OC@IL?@4~Kz?P)Oy޾ T!]]>#IAU@܋?@2Oa>?@#r`5B?@*ݷ?P6 t`  >B?\oEt# ŖoZu 0Nu;Y:|8>$# JpU>##<?2& ?5bbbz@b#ANi&bu$'h 2N贁N[2$@ LX"D&v(&m$ :;T'm"*B#d1d15 5`?Co yrigTt (c)020090M0c0os0f21r 1a0i0n.0 Al0 8s2e0e0v0d0"]1"a4M-/p3 p72&l>0>Uhh= 1#!eJ`#&@NTM\jh1B,RBM(!JoUy{O_ e@ So4(DF^Tw?@]֝ä ?Nk"?w_KT\T+\(Kj?ӷjmlhj -`\TPQE\Uu?i,St_o u~!XEO9= T?@L;uQ_Pm"rA @3sjQ1lğ= GoYniAlePE9 MX'w'0UrJ^N!M$|A vzHD  # =hj4>T!]]>#IAU@܋?@j?@2r`5B?@^ݷ?P6 t`  >B?\oEt# 6ΠZu 0Nu;Y~:#&}>0m8>  PJU2N贁Nwk?@ eL&A( 5bM(b[)h+h+$h&#[-M$#?& ?b$Z*'*B#O1O15 5`?CopyrigTt (c)02U0090M~0c|0osv0f2u1rx01a0iv0n}.0 Al0U |8s2e0e|05v0d0"H1P"L4M-/[3 [7&l>0>Uhh= m1#!S!J`#*&@PUy{_?NTMjC1gc RVMʣ(D#F ![?@"$. ?Nk"?+IKTLTcKjRlhj p= (*!)i,SO2Kes9T;QEGUFw6qX}__TM7fTZT\Dž}I_P^52O,ES"rA 0S# Es3iAlePE9 MX$Gxw'0UrJIN!4gA xvzHD  # =hj4>T!]]>#!AU@܋?@c_v?@#r`5B?@*ݷ?P6 t`  >B?\oEt# ap'EZu 0Nu;Y:|$># BJpU>#͙;? & ?5bbbz@}bAA& K&@ 2zGzt?"K@ L0"&N(bM)+TK/8Z*B<1<15 5`?CoyrigTt (c)s02009s0Mk0ci0osc0fq2b1r1aq0ic0n.s0 Al0 i8s2e0ei0v0d0b"5194M-t/H3 H7T &l>(>UhE=3Z1#E!J!@ENTMjN@1h(NoUy{OO e@ o)4(DF^Tw?@]֝ ?Nk_"?'_KD3\T+\(Kjjmlhj P\DiAlesI(=MXsG_'0Uzb6N-!%$0 sFEjHD  # =hj8>T! ]]>#!AU@܋?@*?@#r`5BW?@w?P6 t`  >B? \Et#տ|u l4RQu?]>I$>I# JpU>͙#<?& ?9bbbz@b#AE&bQ$$D 2zG[zt#@ L4"&R(^&I$Q)+]'I"^*Bh{.M#To1o15 9`?CoyrigTtk(c)k2009kM0c0os0f21r1a0i0n.k Al0 8s2e0e0v@d0f"h1l4M-:?{3 %{7&l>(>UhE= `51#I!J49fAn^ R)X f"B!Jui,SG?RSlOS u~!N]8-19= T?@L;uQ ?Nk"?YVTQRXQOnğ/=i n (\ wTiAaePE9 MXLg'0UbZiN!)$0 Lf`jUGD # hz4TYYT#BqU@",?@~?@$p?@|>׺?P} u` ?u#L+/8<L9`( .88L``t uPu3Pt۶m!tUH~#9#[0Up"?@/& 9#!!G*`?CopyrigPt(c)20 9M c os f"!r 1a i n. Al&0 (s*2e e v<0d0'"!$0#B-9#,# 'w#^ =9$&0#4 66 20$e#$^ #3 % 9#HLA0%XD`cKT%XD8cG g&daO^'*TcATcA0"-()Ca0% g2ATBK6SihaX5 &X~7aWK'o$ţ6!4 0 aVuZHD: # =h4>TB#]]9 TU@$p?@|>W?P6 u` ?Mu t  )At72(L>REJt2q?=@LA@-bb )+&񆤍[Z#?m& ?A/$)R!!5 {`?CopyrigTt:(c):20 09:M c. os f"!r *1ai n.: AlE0 (sI2e0ej v[0d=0>"@!$MBQ-?# 'm&l>0>U#3 C!*; #p _ &J`@7?g8oyƏ C?,'ߑK FMD(9IMBIGE%U\8!<A% fjHD: # =h4>TB#]]9 TU@$p?@|>??@?Pn6 u{` ?u th  )t*7)2(QLAEzJ2q?=@LA@yb #zt-b() (2+2&醍N>{??& ?A"b%$$>b7b{/b4/U% 1 15 {`?Copy_rigTt:(c):2U0N09:M:0c80os20f@211r40m1a@0i20n}.: Al0U 88s2e`0e805v0d0X"14Mi!E(-?3K 7&l> 0>U#3 C)1 #p U%J`@!g8oyƩ C2,'ߑB DVM^(9IMBIG3U%~CU[8 h:0T5 AB#MU@1 g?@4?@84C?@Kk^Ӻ?P t`  WwB?t#_L&,qۗ'0 .(='u uu1t6#I    ҩ""PE&&E&U2llf?43f@#&A@)b3bbfzt #Eb(Wb) ; 6#"w?_6C?/$ ;H,7#11+`?Copyright (c)@2t09@M@c@oKs @fB Ar @EAa@i @n.@ Al`@ HsdBe8@e@vv@dX@021M(=4#-#3 7_6( v `@K( vU `A#1(Og0x~u- h'#Q  "8!}Z_]02QEUCT/\?@Wh{vž\<ˉ\78u2/k٠' QQQ,WeI_[Xg_`zT'!68?@J[8j/OW\U M "RSDrV95Uۮ4R?@ rё\!l§\Wԫ{d8m k?NR܆?@ֿK #? }+OqZx~b_Xu5sZ OZ{d+i2o,u2r @3C QAoooooouYYG?@Pb|[p o _7~I|׿zT6Q3M7f?@Cs|h')`ρ?|ώ&a@-_4o0:02i@wE%tHXG'W0UN!z4 0N  UHLuD" # I>h ,J T  M#EMU@jZ?FJX??@HX?P m>uA` o?u#VlMJl -<lA -PK#TdK2(.K<FZnf>t  tt|>b!FQ~uKJ>U2zGz?@9 ?#>O&Aw@b(Wb)+&r" !$NI#"@#W"6 "\M"b)2;'r",r"/I#11G#`?CopyrigXt (c)020090M0c0os0f21r01a0i0n.0 Al@ 8sBe0e0v-@d@7"BMI#3 76@"!"t1"=ElJ Ul0@AAC 9 =QA(#UA!=(^!j9?@+P(0 # 4.!# քOCN6ULw-iN\u5e[EYzX3^GxQ1__ pPzXE6UU . O[ ;;d\@#Q}U6U@ _\fZ__"zXAjai%?@NT_N\^ W-d\ƿFvwzT97Tꤲ8?@)#?@@SAWp>@ ?Nk"R`QY5`ߛbmMd\?E_Wqy[7 9(  UDGzX2YGf?@2CL[N\AlTzXQ2YY a?^&O[?++d\g}UQ2Y?i`hCN\,@Иg*%:׉zXU6U?_z^_p^AA(G!EM __0[u?@ N\>4t>GCc-xQ@uIuc ?@lփ?@nc>s9ZQh |)Sf|Dҍu~4q3@uɕҔ@8S7^A?$My$'eCO9c]ziMqi~I@%!XRG~'0U6t5 Ff ~_H>Y;s ~HA10Hù:zF2Z#?ߚ\JOB YQ]~d-Pb^@}+(]3f[sGX2: Px2i2߰m83q3tH3}xx3X{F3ȝ34߂51D?i,3Dj6D*8DВ6:DN(=DSlX?DD7xD3D9֪UFD  h(^TYYBBUFL&d2?x<F BP(?P? t B66  TTTTTTdH?? Q?BZ@?"-3(\.E(#.sUk!i&/(  0B`PPublic,pr vUa.e0k0y0s0r01, og"a ,n.0tw*0r01y0 1m0t*0p *2r 0pP1!91Us0c*0n82c.!iz275 eA^| (SG& q ?%7I??? wpwp pqwqqqwqwq}pqqqpppw,wwwqqgawqp~wwww;yDrag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aabjZֿ~??cN׿ mF1??f&d23L4CUG DF P# h @T(PYY#E[UFL&d2?jZ?F~?]P} .B":J :^:rY:3 7 77 Au`?؍"66JJ^^*rrUu#J",':U2%&5/4f??z4b0u{[`:[1#2&6#"'V"^%Q_93 2 L1$" "3'@>>ÿ@qZx@mE?wDmF0r&BCZBu%@`-1ZBu&@ >CAB""C$9u`u `"[ bz!u`!Qy1y71`Vis_PRXY%cPm!#5P168B`?CopyUrPgPt0(P])020`90MPc`oPoIf bQrP6aa `iPn% 0AUlQ` hsUbePe`vg`d%R@y1&3db4&5! h8=/3z6&3d6P6 2&4B#/3+0U3r3]*g,^eqV5@cT<*G`o0m?`s `la>t&5 pISO`PdaTs"_BT /&20*V2QQ32DVB3Q1$125kb6x I7EC|ßgh`nQ*ƄQQA``b111;<balrqqAb1#8dsPXQ1`]+r` ]M?`nu-`aPtfarQiQ_` EqiPmg`n `xd>V5Q`N`]1yP%bd Nm0:30ȟڟZq!v P?`r'SHHZ]R`Dgb$a Be>\ЯoAPja}C`y75^GYo-%v Skbi?`Ta:eT̿o-vLPc?hϠk5.@RB$l s`iG`gpϢE%@`ϮqyRPorϱ|ߩZPm\@x px(+s&5ՈUm lparJ0TPpg`PKBg` Br"a;s;0S0LQmrPeExRg""tXqQrb2:`bv+mSJ)CQ`qsĂXC` qP@тuSbp?1PKg`yނn۠UN~w5bka.2` dHEIPNads`fc6H n $׮n~}sIH xJymQt=fpa ஑la1+fHZ㼁y +b P6a`a@lu MO`C(/F,Ÿb/ U+v3utP)Ɵ/H 9// ?Hq?(1tVEImx_dGF~?AvAvp BuJpGYB#uBGYpLJqsp(7Q7Q(xAF@>>ÿOoQ=ONRRCRIHށrA 7S>S"`AR(a1DceF"$?\[?RVRVR?R]?R">UDBb_ PPaMUZB[br@2\ zOz_sv(YqYq!!BO\ɅiqTqvxUzaO9ꂃSS{P_`u`(0y⢀@Bb 2a8RL7@(0aB{8Q|B{BQ|&Cz,@R2ivOOMoM()A)Awb8z[9 N6dՁ:w`` %c`P&!!i2<B)ANDTWORK(%H PD!R1@URIDS{QR<B<hB!i#??=ly|a'0U?Th]]9 MP /AUFjZ?F͂T??FSFظ?P6 .]A]   JuM` W? EKu4bJt1 ytuo[=Jb(A =>JU2zGzt?@dM#߀A@bM;#z1 /#\I(bW)d+)d&J["*(w"?& ?AO$Tf/%B115 `?CopyrigTt(c)2`09MC0c.A0os;0fI2:1r=0v1aI0i;0n. Al0 A8s2ei0ejA0v0d0 1Y4-X 3  7&C0b59 FX7}'0UB)Ź&!$aI 7FKJlJ]Uhz211O! !u6?Fh,\.>*0II=*t >J:@T&ȑ/ [WpY\QEUzU . X[:;QRuSU5UF,®\oZOnlQ 8MP@fu?FR >Nk"\T`bmMlQi_f0%=mUt.m {=4+ 뇥P> D"? 5-g?0tp@bTh]]9 MP qAUF;?F5K?FxEL?6?F6?Pn6 L>M  P$  #uM` ?=`cc.@uRJtO  bm&QȽtA@Lؽl]WI@[>JU2zGzt?@M/#J?&A@b}#zs q#b(b)R+&J[9#H",ɺ (H"?0& ?A$ /%B9#BV1V15 `?CopyrigTt (cu)02`090uM0c0os}0If2|1r01a0i}0n.0 WAl0 8s2Ue0e0v0d0'"O1YS40#Ť-9#b3 b7&0%0bE9 YFX+G'K0UB&!4Ia yFJlJ]Uhzt1.A!-(:9#t.%-+0JN H߃+%$Jq-&?F mO" >Nk"\RSWNh[H@[4I 뇥P> 'CK=o? n-?N]`@ b<couo]r5%BUV 6?woZÃ^ǿXEUV T6?F __ jv6dDlVyZgPRkro}oiBdalN!\z3ˏ6>CRHS X?BnDe>TGvN7VHD: # h0>Th]]9 MP JUFjpiH?F[^?F$?F]Fڻ?P6 >JuM` ?j uJt  (a&aEt9S;-FEN=ۯ=Eh?u;>2zGzt?@M|JA@a7b#z}b(b!).+.&J[-m(?& I?A$0/Q%B!!5 c`?CopyrigTt (c)02`090M 0c 0oKs0f21r0@1a0i0n.0 Al[0 8s_2e30e 0vq0dS0!(Y$-# '& 0b59 6uX7_'0UJBŃ&J!$a FJlJ]Uhz!1!劵:F% Y.  8?zY^J4 ]9$]$R9S/RJUE UH$S!\1\? GX5ZU_YQJU __-_?\HD H# Uh4>T#A]]9 M /AUFjZ?FL|+??F@{~?P6 m. >b  JuM` ?+ILKu8J1t5 }ty_7??J]bA>tJU2wq ?=)@MJ&A@\3(bA)N+)N&J[ "#?& C?A9/Z)*!!5 `?CopyrigTt(wc)20A09M-0c+0o%s%0f32$1r'0`1uai%0n._ Al{0 +8Us2eS0e+0v0 ds0!E$$5 -? 3  7&6iiePE9 6X7 "'0UBţ&!$0 IF]JlJ 8>U#9AA 1[!:Nk"\T`bmM\"f4N[7 zex-K=FAa [jr D"? WZvDS?4xa@R#Th]]9 M IAUFFK?F\gVb?FO?F$_5?PJwW?>$[ >  JuM` ? ;  )u*Jt'  ^Zmta{֙3.Jvt?@[_ u?vC >pJU43f<!.&P~?b3bbfz@bAe&bq$Jd 2zGzt&.#@M#T"I&r(~&i$q)Q+}'i"~*B#81815 `?Co yrigTt (c)o02`09o0Mg0ce0os_0fm2^1r 1am0i_0n.o0 Al0 e8s2e0ee0v0d011Y54#-#D3 D7.&%g0Ab59 ;FX G[G'0URB.&!I$a [FoJl&}>UhE3MV1Ai!(# jV? & `& T` V_RUHPD  # #>h0TpHeeJ EUFu6?F5c{g&?F{r`5B?FF:Iͷ?mj>  M   *  (Y JuM` ? Y ":N`u#xJtu IoI%t"' % 'ii%$'`OkŁJU2"?@Ms#J&A@"b(bU)++&RJp}#>1#19 ?#bbbz| &/5> }#11"`?Co0yrig\t (c)02h090M0c0o%s0f21r0Aua0i0n.0_ Al!@ 8Us%Be0e0v7@ d@k"1Ue4t#B-}#3 746t%0 jU FXyGG'0UR46!O4i FJlJ$jUp5 3 h19 1!q(4}#FXJt R j# 8bD?F@)?FvP؞?PEkU O|Ä\QnS ?.܁nts}ped`,of :o ,M ? &d2? bS?tP@RBoogr"55ZQUf_x____bY@?Ac_\jF4ևi$on&h{ǡ8oJo\opoo T)YAoaoooo o 6$|U7I[mS Uy{䷰7ho}V(f"(I%ZvShX?"cwӏ叭iďa$xUGD  3 h0TdYYB UF%)?Fxg^?F ߯H?Fw_7Uw?P}   f  f0 D fX lu` ?00DDXXll)ut  871%t%!?"Ư)1%:'ֿTeΦ1%T'ʤU!!O"`?CopyrigPt (c) 2\09 M c oKs f"!r 1a i n. Al00 (s42e0e vF0d(0"#S$#B-#l# '?R=#ǒ 2$Z##0U'B3@& ^5 DFX7dG'R&Dŭ6!4] dFxJeYk} #HFQ%RT][b5RT0][3RTD][5RTX][RTl]WHD:  H h4>T]]9 MAUF ߯H?Fԋz)e??F9q?P6  >IM (#<Pd`<#P#dJuM` ? #2FZnubJt E-tA!["XѮJV&bN$p'N]I֤>J)U5 J[-# ?6 ??" A@.2Sb64B#2zGzt3@M#Jc678C6.? ;B72C: #115 k"`?CopyrigTt^ (c])^ 20@@9^ uM,@c*@os$@If2B#Ar&@_Aa2@i$@n.^ WAlz@ *Hs~BUeR@e*@v@dr@"14ʺ#-/ C  G6&iieP59 &XG W'0UiRŴ6!#40 $ V4ZlJ]Uhz@A!1(`CFU&pz?FDUy{?,d@#b`sb`"J-d K-q?FFF?F F0 ?Nk"?GiE*]CpdadC0[dhZe@#eGDQ> @" i$a3n&Y+`~rrood]io;e s"yr1C82K?Fѻ4G{?F-qx>tFjR^{|ZlYZe tmP|{Mޥa 0 1iS? q1+?wa@rc(<;"̏A!rFÀ5H5aE=*[^N?F%P?F"P&@ c?F{MTh]]9 M]AUF}%?F[$,?F+#V?Fd_3֡w?P6 B>M @ $ JuM` ^?3YY.KuHJtE  L<ܩt.'_3zMҩ,wsQ>JU2N贁N[?@M#J+&Aw@b](]i+bk)+)&Jp%#4"?>"<5!?& ?M#bbbz$ Rp&"/%B%#L1L15 `?Co yrigTt (c)02`090M{0cy0oss0f2r1r 1a0is0n.0 Al0 y8s2e0ey0v0d0"E1YI4#b-%#X3 X7A&%{0bP59 OFX!GoG'0UBŔ&!$a oFJlJ(>UhoI j1h$Ac!(`%#F'$F?>D{Q>L!gfQQ R "Jg V?Fo-RbHQ??FT!R?P& lH\f6V\P5E+UDv_;*UmʙHQ:? w8s`*%$? .l?Q? \ς?D4h_!R otogr5%Q3p_SFhIL?F~Kz?P)Oy޾ F @c"rA b$^sPj+u`dl(?ET+QdAf u8<$HD:  H h4>T]]9 MIAUF ܋?FOa>?Fq`5B?F1*ݷ?P6 m8> (JuM` ?#SS2)uBJt?  \Eto֙>_B|KR>JU5 Jp'>͙#<?Z& ?bbbz@b#;A&b$B 2N/N[Z$@MI #"&(&D$ :;'"*#d1d15 `?Co; yrigTt (c)02U0090M0c0os0f21r; 1a0i0n}.0 Al0U 8s2e0e05v0d0"]1a4 #-,/p3 p7Z&'&iieU59 '&X9GG'K0UBZ&!u$K0 FJlJAUhhG1! (T9CFJ> kRbT$R}R( "J:]Uy{䷧_8S s@ o4%BTV.Tw?F:^֝ä >Nk"?YUU!f>)?\(K8ӷjmKl? a\$QU5Ui,SlQ%iu~!8hE_= T?F;uQuo`"rA 4sjQ޽lğ=onHD:  H h4>T]]9 MIAUF ܋?F<j?Fq`5B?F^ݷ?P6 m8>M (JuM` ?#SS2)uBJt?  \Et[Πؙ>_B?&}>J)>JU5 J#2N迴Nk?S@M #JC&AP bu(b)J++&B1[- #L#?&| ?$H*'#O1O15 `?CopyrigTt (c)020090M~0c|0osv0f2u1rx01a0iv0n.0 Al0 |8s2e0e|0v0d0"H1L4 #-/[3 %[7&'&iie@59 '&X|$GrG'0UBi&!40 rFJlJAUhh7m1!{!Պ (Z$CFFUy{?> 81cKR R)V "J{TV ![?F=$. >Nk_"?YPSW>OcK8RKl? ף_p= $B:]'i,S\6aYss9$Q@5UV+6o'lQ:ifOdD`i[Dž}soąo82{_U{"rA z$s"HD:  H h4>T]]9 M!AUF ܋?F@_v?Fq`5B?F1*ݷ?P6 m$> JuM` ??Su.Jt+  \Epteap'Eqz>Bq|7>5 Jp>G͙;?2& ?bbbz@bAi&s&Bh 2zGztM?+"@MrX"&v(bu)+s/8*T<1<15 `?Co yrigTt (c)s02009s0Mk0ci0oKsc0fq2b1r 1aq0ic0n.s0 Al0 i8s2e0ei0v0d051P94-H3 H72&iie-59 XG_G'0UB2&M$0 _FsJlJ( >Uh_I `Z1m!afR* zRQd J:`]Uy{w_$S s@ +o4B`TgV.Tw?F:^֝ >Nk"?zYQYV*)\(7$djm7lb+d ha\HD:  H h8>T ]]9 M!AUF ܋?F*?Fq`5Bǯ?F1?P6 $6>  JuzM`l? C"u2Jt/  \Etti|u~>Bu뒣;>RJU5 Jp>͙#<?6& ?bbbz@b#Am&by$Bl 2zGzt6#I@M\"&Rz(&q$y)+'q"*h,#:3o1o15 `?Co yrigTtk(c)k2009kM0c0os0f21r 1a0i0n.k Al0 8s2e0e0v@d0h1l4e-:?{3 {7I6&&i bP159 &XDGG'0UBX6&Q$0 FRJlJ(>UhI 1lq!a4DC9Nk"?CYQYf.Q;(hğ=;Af/h (\UGD # hz4TYYP# 9UFs2?FM&d2?F$p?F|>׺?P} 5   & >hRQ p  u` W?   *<J>R\npUu# t  mom%ty!V"!%' %'ؤUC~#30U82?҃@&T3q1q1:"`?Copy_rigPt (c) 2U009 M0c0os0f21rԚ01a0i0n}. Al0U 8s2e0e05v@d0"j1En4#-d3}3 }7Q?3^=4~6#DkFkF gB$gdaO&7*THT"(Pa%/BQ  2iRcE U6rXFGE'74ikF!dD0 EZeYk} 3 QYg%kd>vk5kd#avk3kdpvkEkdvk=Ekdvkkd vgHD H# Uh4>T#A]]9 MUAUF‰IJ?F#-c?F?FFt=?P6 &> A](# D<# P# dd# xJuM` ? #2FZnuJt  }7Fi8&t-!G"R7NA9%UB'DM"9%\'+d>tJU2wq ?=@M#&A@q"b(bJ);6J鏵#"wJ3?]6 ?A<#0Ɖ3z #V#bA38/9*#115 W"`?CopyrigTt (c)#@2U0/@9#@M@c@os@f!BAr@NAa i@n}.#@ Ali@U HsmBeA@e@5v@da@"1E4#(#5 -O3K 7]6Fi@ieE9 FXG"'0UR]6!x40 7VKZl:JdTU#& uUT ]9a x 1 A*# 2&#p +5(Z#FF<g60Q0,#0Q4"1 Rf"J! {-?F'<0c 0TYǮixxLpH$a5e r&7?FQh|a-|,CxEe}$X%lE?FV}w{|C|80}-|?"l!eEeaM?FO|7#Nqi}=ԡ$dduC_?F:s?FQ+7?FO9 uPu~0y jBqi/3-u_2O<-u,#$6v›l* ," z3H[o'?F hnd?FCsM>-|6`؄Ì~[U0!܉f;-aaiq x?F#^|P-|hP`]H<dp&B?FŜgN,5ҫi~l/WG~Ɖ|] ܉NQ*TMW.DPF)?Fa$IKbүnexC؆˄ILMƯدaWe=j$,$,hx?F3%?F+S 雖dNɛ˄@&fUٌ[?承uW[w?FqoW?Fsg:o?F)3⿗1܊5#AKƉsω5`R!Oǟ1a:dj{+ hʲdde5a:f?Foj&GCx9e2oeWcrA 3"5a5PeHD: H h0>Th]]9 MIAUFe?FM᜕?FXWF-0?FO?PDJW?A$> n JuM{` ?e ;  u*t'  Oț2mta{ԿHM3.Jv??v*Ij/I>JU2N贁NKk?<@M#J&A@bI(bW)U+U+TU&J#!!5 `?CopyrigTt (c) 2`09 M c os f"!r 1a i n. Al.0 (s22e0e vD0d&0!3]$#y#&#4#9PO"Pd+T/u/%-#,# '6% b}59 DFXGdG'0UBţ6!4a dFxJl(,&}>UhETh]]9 M9MUFJsx?F6?FI?FnjrL?P9V> $ 8 L ` t JuM` ?.BVj~SuJt  5hޅ%ty!"_:~څ%''"%'Bs>JU2N贁Nk?<@M#J6A@"b98bG9JE;E;E6J3115 "`?CopyrigTt (c)02`090M0c0oKs0f21r0Aa0i0n.0 Al@ 8s"Be0e0v4@d@"13H]4#y36#|D3I?A?2T;D?e?5-33 7F%0AbmE9 4VXWTW'0URRœF!DaR TVhZlJTUh6UT]$8]tA1 QJVb(T3RT0bLx"fA RSf"J:mGӎ!=Мoc ]rte$a31sE?Fd0!@c +HjẏvR%amE@uRU?F.$wX|'1Tn|pA-x@uӆN?FFoX|1Rqyh -x@u`CB2OX|Ә {n|O$ dCe?F_';?F4Hy ?F ! uPu@[y!Xn|kb_6nu(nux#vi8˿IQv x" YꥬM$5zG?F}Bh?u?FoyD?FYό Ə،m\ҋ:n|XAB0B5R+?F;(h?F?F;S4، nB6{n|Jqe!{q o.2ZQI{]>F˻w&t 1t?FOiL،?ö}>{} SS~DxĶȯ]z#0bb?Fwϯ،BZc4s  x̶.jlT1|t[mi 0?F_?Ft ҿ t߇R?ɨV=7Th]]9 MIAUF9PR1?Fq`?F]Pġ?F_Ӱ?PDJW?A$> n JuM{` ?e ;  Su*Jt'  Oځmta{_ t-3.JvĬN %e?7Ùf?vGOw{jyƤ>JU2N贁Nk?<@M#J&A@bI(bUW)U+U+U&J#!!5 `?CopyrigTt (c) ]2`09 M ]c os f"R!r 1a i n. AUl.0 (s22e0e vD0d&0@!3]$# y#&#4#J9PO"d+(T/u/%-## '6% g}59 DFXGdG'K0UBţ6!4Ia dFxJl,&}>UhETh]]9 MJUFâ[w?FVFc-??Fx?P9v>JuM` ? )uJt  81QEt9Siޯ2ENEh^ڻ IH^>2N贁Nk?<@MJA@cbbU)++&Jy;?u)?AbP)/%/F%B!!5 c`?CopY rigTt (c)(02`09(0M 0c0os0f&21r0S1a&0i0n.(0 Aln0 8sr2eF0e0v0df0!Y$b-# 'Ax& 0bP59 6X7G'0U]BŔx&!$a $F(JlJ]Uhz@11!ZF(?~O攚   8P[&~ 6RcVJ:)Hpv ?#V Th]]9 MMUF"q?F땘n?Fq0>?F_A!w?P9@7>M  $ 8 L ` t      8L`tJuM` ?""."B"V"j"~""pu)Jt!  1X{%5t132m_%5.7RjX6H7!>JU2N贁Nk?<@M3J6A@C2b8b9J;;6J=y3;?3UI?A2b9?O&EB3AA5 C2`?Cop9@rigTt _(c)P2`W09PMPc@os@fRAr@3QaPi@n}.P AlNPU HsRRe&Pe@5vdPdFP2APYD3-3,C GXF5PbU9 VXWW'0U=bXF!sDa Vjl:J Uh^maa]`t AQ֍A8Z3FWY?F9#}"# C22@fCsa Ur)[v2JAURo?FN?F=!?F G< 6uPuyA/ybMv Js 9o#"u#|u32$N 4 ?A~0 f? h#|S)?"2@Ts(<2"41rÀ5&Eyq3u0,Ǥ?Fs^?Fq?FS|xX1y6>|>E<ti!Z$@nqcN#`qBsq- dM?F"7z@Er4s0{욹nZ|q9a!i[+|ҼN#`V}188| m vqt(?&4yq`y:#Z?Fvd@^=PiY$|n׽\|6 ^yEb$ ^S ݿN#`"jtyVp`iK?F3H?FڛY ʜ|B6yI^a};I| Yb[soq|U?n \*O#`7I~Fmp1BB{?F>v?F 6Qqy hq|o]^})f~^K!OM3`Xjy%gzp jh?F t?Fŷ 9X|9} |)x?pM` #e2e:~Cra D)2HD: H h0>Th]]9 M9MUF$sж?Fp b?F4tV ?F_<?P96>M  $83L 3]`3t3 JuM` ?3.BVj~)uJt  DYU%ty!"8Ӆ%'fY*%';ƐnƤ>JU2N贁Nk?<@M#J6A@"b98bUG9E;E;E6Jy3;?39?A?2bPG9D?e?5B31A1A5 "`?Cop0rigTt (c)h@2`09h@M`@c^@osX@ffBWArZ@Aaf@iX@n.h@ Al@ ^HsBe@e^@v@d@"*AY.D#b-3=C =GA6%`@bPE9 4VXWTW'0URŔ6!4a TTVhZlJ <>Uh$]T]tOA Q1(`3F ?FiXe& 0On?Tڿx#EA_0_;Jb"JaFK`E?F /?F߱)\ uPu1ad0kvX'qeDz`Ֆex#P_v^ܿ4 Sm?T0 -? YzO?x"pp1@c](Qv:y!r55a3id{ Y,?F\?F O&&`VW:E3 xui?k0M5eigJA|@ W|wv0rIQv v uB@#aE^0:O o?F^k#?FTL?FY.}*\/~kU?F#]ҝZ?G3´<]lѤqA|? yFז_t&o˿Wi}id3.aДgSh?FDR<<ddT0~B{*!ZyqH_C,qÿ́w?F?F}SR?FD?ƙ!FsU.RM .fMA.zM +M++M.++M."M+"M+."M+B" M / 9Z#j"M M / 9#"Q& / 9#"U@#"a#"y&/9# 2Q&/M#"322y&M='y&x(-63"-6(-6uM`? A7242H2\2p22222222,2$,28,2L,6d(6x(6(6(6(6(F(%F(68686,86,3B?T?f?x???>u#9|J2b&baFU*JRu0;t1 b.!ta  zKdS'& 0JU2zGz?@dMc vA@b\`;xbIyV{YVv,r !:tJsrcrv rArb"Iy{Fw,r|,rMNsTTs`?Copyright%(c])%209%uMcos{Ifzr}ai{n.% WAlр sՂUeevdɀ+bMs` `vba3Wbtbiv eqX z/'0UÒv.0 zlJvUt@S +HW!!1<!.!@B!oe#Aqhq}?FTOp2c r\2"02c JWidxȯ(U?F:IВ?F -e젌"v?PN,DT! uPuqMk 6̍B!23ץE c#)!:2 Fbk  1d2b4?Q& Bbҿr45u)3ߤi]~젙K.LL̖bTJIr^F_ l ^c ׳fif|F~1r!o` GR["hJY@]+ݾ?F6vb"BFϤ %7ɝh|ֻL~|OߔhcAXT4B;CS;YBUߤ_qt|ȝ\ {~TqUAdɼx1ֶ?F|DB젓 Sb\.B| JLǝrZ~HĢg^ޥFg?F$@Į﫶 ,3JaE̲Sι?x<#̿- B 俋}p4<'xld~1<ܬCs?FicuU FЪ֌?< 1TZ pq~Y,ͲJOuOOadO"o4orVbP}q1EʄOCZ d:d?FQC;sl_<>Д]xeW. buDSwV*ɟjoko}o(ZoUgrrPʃL?Fse9mpi1@ps?C>O"Y+Aq[*2l>M_Xp#:,?F[`XK ^$ǽhXvFLzN?F-\Z?FM+ ")?P@Μ<^'k<\ 4.iyq1Kqkjцpqx"pȯ(UP:IВMk=6̍Bᦺi(֋P:mk?FJNHP?PN,.y1",+~]s\߂~]5zn5]?]ȻEtAF5G u$6GaMș<ѶgQ>E% Jצ#{~[:ĂKǯsԪhZ*ߝVU4db62GA,ϹJLk81-s߭f>T (ז0g1!e\%zynA,=͒}s c 5P=D mOAؿvP $kL`C@Y?F,ɴZ`2a]o*"+H) $WV= ً5Od.t@//GB"I0}!!v!M ~+ ت!fLZf-?FOgE>k^:Ўmz@ܐE! cykA$i/ Ok/5BOkFBKHgJ&?كd v:Ì?JO\O1/6O1_C_y%tNw&q00[^cAD[F=k"l4 x QP*% T|0IWj&?F?0ۃ4_#BDM[ٺF1يC nf1Wob!x///oHokJ?~CvY_0 ?Fy]Gp0V~YPM'aܿuiTױ ?pNo=W/_$OpG/_قuO> >F6q0>XY'O?/?A6ُ}Deٱ 5?u_aX݆ϟs+?QcuAuu?FH_*|>Pe hV8?FeHN55/Ԡlփ~+'vc>`h?Nk"\T`bmMPyG&_Sf \l>{f`lER ͮF9S*#s B}PBA9!F8D!#?߱XOB H^Q7~dx13so@+_dEoMsGyD|fXDD3D"DDXE@EEEgDhE[$HF-xFAF]؇FRF hF, G%Gd (GmO-G 9GP!UFDfP h>$KT 6D UF~@x! <`>!kbs{kbsi^% X\/7'TFJ!DbA[ qʕHDB # =hj8>T ]]9 #2AUFM&d2?]?Q6 ~A@9 hpAW(4?u`l?Xuhib  #AEJU `0.UH :l$'!f$5 #!`?CopyrigTtk(c])k20 9kuM c os If"!r !a i n.k WAl (s"Ue e v d $\#2q+0?*?<6M?\.?lp*E&B=#Hn&M4?6PMM4-,(,m# m'6##0OoNk3@*6'l6 ?Uhh#3 t!,$ BWaBE@BJ!>BdCRQ, 9VM (DAAO?_SSUR%c^|__WSU5cU ___C2O;rAc#p (e jO(heoiAb59 7,X\,'w'<4N%!4!m; v$zHD # =hj8>T! ]]9 T #iAUFL&d2ٿ} ??FP!3|>2u `u bu  @[A-0' - luu`l?ubC Ae"& J0G6G'0<p'"R('%.&' '!$ +/ "&"7/"',? U`0 h:HM %B7145 11`?CopyrigTtk(c)k20-@9kM@c@oKs@fBAr@LAa@i@n.k Alg@ HskBe?@e@v}@d_@4="36MD?F-P?M-83 7ԿF#30O贁NkC @Lg@?!Uh35 A"@ aRKaSPJOQsb2t8UoAo,giAreE9 6X7g'2Uq`^!D1 5 fj_(Hgyr Ds{ 9O5LFȍG 'w#7E)B 7G]a53+*@+G/4aGXGciPxG/G2PUFD  h,^TYYBBUF\.?x<F BP(c?P?tO @L^^{;B_@L&d2?sU!&"/ȍH$б?W/i&? ~t  0 ;QB`#Com ,link\netw r*"p0r pP1]a ,d0v c0 /1^ ; YP!3u &?  ;;" ;;;gr330;G;#7Drag onut heqp ad likb tw e cmGuiCaisd vOe]sBKcnTe)*`i]^o 9il^)n5k].b\.BP(?? M7Pfo??H D #  B>T>':)DNYh>) e0T9 EM dAU@\.?@?@?BP(?P6 .2A7 7P u` ?8=Q Keuoasu`u`bu`u -##@"L( (0!>zLU<?&(?bAR%g#2q l?AG}F]#qa0 c{`Con0eoct 0r 1l2z0 A0 +` Li2?05U"g# ~#"9 `.4 u{0 `:q1276' x:^%g#@KF$=mG<hB<wOEAGMOQ8u?^"f 4 #G<H7g#AwQ17;1w`VA0s_ RXYJchm!#e5P4PQ`? 1py0igPt (0)P209PMA0c0oPofR 1rP1a0i 2.P ARK0lPWs)bePe0v0dJU" Ip`@#neϥ?xdnf'#rK"c'#f `/2 k@ebum 7@w!;FPSeapb po18 `Qps-8R_t-0`R%J1^#B TU7^%\f*?v~!)?LEp &L,5bK`&! CT<0oPm`s0@a> m D/^""QQl2 2B33B11B56hR6C 7$PMC]E(j )w*:B^%]wQ1{U_ B@#"w` M`nu`a2u9bP1vpuqMc;Ca𡟳œTr`PrRdؐ1 Nؐ!m0k6['Zœ!̓ P`rRdEkœR`GD;bQiPeկ3EĜAP>aůYU_hœ%̓ S?bi`(aѿhUz1h B@̓L 0chAWej|ώUBؐiK0dA2gDMMœ̓ R 0oEAYCUœ`Α Apm0n0}Rfz\SP)aPF1lsQ˒W` ;iC`i0y,B@ ̓ ITPOP` 3c/@śSؐbP` 1mP e B1U"%Ѝ# A77^"[(qpPU]=`% &ROái;bBA`NEWOPKPSA ETPQOkRIWS1PT#ѿq;A11^"!! mBz3BB@9191A??´[(3F&p`g1q1 !0 2`T#;4l5cTIt,@r^";E3EU$hU9_D&zFBECF3s͵NSY";ų`pv*HA`bTfo?wQ&bu0HybDr)Ixbkfz`RQz:c exhGFRbBb<\ARbBg"ұeT2b @@-,eu LbrZSt?A////3s8BP(?N#F@<M?Orb:B$Ix\iĺAqG(.f\gXtFZ'0ye] IV]Zq 8BU~\2C }'qbšg q9#3^sGE[Tb%@tbSAc2} 2FA ]bF" JZd~Eq`axe@:F.qTba'g UD?@ ?`0o:C)aY3pra0]! \2rBa(a 3G2T3rA 0ex9dvn]GWrC jae%ah4F?@ p8Gp  Sfeb]oobs5{HZ,+s 5)d5ukDnmFG6q#F8B}G]a63b9@+x/`Hd=aȘG PUFD  h(^TYYBBUF~?x<F BP(?P? ` B 66 6 66^I6ȅH??A>IB@L&ɯd2?-(?\.1(. sUW!U&w/J G 0B`ETerminal,s"v",c i nt wo k t t o , !1i 01, et 05, qu p 5h rd0]1e!i1A^| (]G|& n?_ Q4FPR? pww {pv w wxwږ#wpwp~pw~? ~' ~~  wwpwl+w~wWv-{wywDrag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aab~߿?)j࿚i?3@ ?DUG DF P# h @T(PYY#EUF~K? P} 7K.B! : DTDh1YD| A3 AA3AA3AA&u` ? "6@@TThh||j&&"u#L&)R2%X<X7eqU ??' 4Wb0{[W`:#2P6Q3A"'򉄉Q9 ^ L1$K" H7"G' @>>ÿ@q@E?DF0܇rzBCCB-uI@`-1"Bu$ @]GbC$ Q`'(R7"A& <4' &)9u`u `"[ bz'$u`R425 ؓ3Q171`Vis_PRXYcPm!#58`0o68B`?CopWyr`gPt0(.`)02<`0U90M`cU`o `'of]bNarQ`aUa]`iO`n 0WAl` UhsbUe `eU`v`dR13d45*8=363@2t66 24B#30Ur3]w,A$T!^@cT<`o0m`s]`a>gdPa!gRsAA2hhB)p3+}RqqRqq281pacR2+6uM\$ %G11[2 P@ЯRECT'$@ b23;.UM5s_4/&ׄF3s͵NSYFU00UQ#,!@Q#J`epE>Ҡj_7Nam uBtS` SB~&_o<м_oB=Eoo/.c` WI4q*ՄVoC`C0N`҃?w`M`mI2JmhO@E!4ay>",>jeрϿ55 ©ltgИa ` %_0&ȳa5`NTW_ORK3bHPIPBQRБR5ISЀQ<) i$ eu؊6ŔX·q-/'0UwŻѡ ˈ74hH臘h5: '4ANѤ%Nb͡"44?4A?4'?e4[?4N?]4?4?Y4"4?9%4?%4ɥܣUHLuD" # ;3h( TEJ eUF~K? P VN% @*&>uA` ^?Ci i4Fu#Xp^Tb>tU b7t>U2zGz?@9 #>/&A@qa(bo)e|+|&R" !I`$>)##" #7"& "g"bo);l'R",R"/N )#z1z1'#`?CopyrigXt dc)020090M0c0os0f21r01a0i0n.0 Al0 8s2e0e0v @d0"i f  %!X)#]'0UB&T50 PJl>8fUlYC !(#pAg!(:)#FM&d2?qFGN tQ!P"(>!p8?ST0gYfRaNrTaU3^\.,__ 31bXEU[Vj?F@  l(\\ rX HYF `0QYp= ףXo`?̺oZqapXUL_^_p_\A*# ?Fg?l6 l\1"X%Du~ |!YRQi3a\ayo7;mDucP]{1cr|%iU{^?F^ lʡE\1_Zd럄ht X01?FXE#?FFb?PƚK G2G2 lû c_tFaXNTN]\R-\^Dr7 јٜ ZLT4&1pBHZlr À5%8yU`0 ST*J! o`rcݘEF3?FAM)ỷ?PMޟ+=){ )LFj?cl~Hӿ忷ǨHD: # h4>T]]9 M qAUFU*JR?FKRT*M&d2?Fp_8w?P6 L]A]M ($JuM` ?Agg2DSuVJtS  tq= ףUp$_>JU2zG_z?=@M3#JC&Aw@b#zw u#b( (+T&J[=# "?0& ?A$ /%B=#BZ1Z15 `?CopyrigTt (c])020090uM0c0os0If21r01a0i0n.0 WAl0 8s2Ue0e0v0d0+"S1W44#-=#f3 f7&4%/O]FiieP E9 ]FXsGL"'0UB&!4%0 FJlJQ h@$Gx12A!1(Z=#FF!0JR Lx{פ_Q\  R)V4"JVT?F]Q!?P-M G2G2\PRSWRc^_Lr___:M -LdTd&!&Ra@SBЯoogr5%Bb#iOD"ZoZD?B!)$a EeVHc^?F7zT?PxT8QoWmilvd)TJEvސl5 gvtmFd(:w.|&E2_U"rA k#ރ+"HD: # h4>T]]9 M 5AUFOt:?Fr\.?F#H$?F|>?P6 e.#A#b  JuM` ?+ILKu8Jt5  r7htyw/ؤA>[JU"?& ?AbA@D"bL$J#2zGz?"S@MJy&M#b#zO M(bL)Y&S,D"Y*B #115 `?CopyrigTt(c])20a09uMM0cK0osE0IfS2D1rG01aS0iE0n. WAl0 K8s2Ues0eK0v0d014-#*3 *7&?!FiieP59 !FX7G'0UB&!9$%0 iF}JlJA h@7<11D!Z#F&*JR?F9.4mL AxY S+RJ:rTDa@ RS .S X%QEU~[r\wY aU5UFGh4\Q iʧEQ8y^Ffj?F~@W?PbʒK G2G2@ D"]rA R#s c4v(O A.x$&AR q|4xa@S#Bsdvwrb5^%HD: # h#4>T#3 AMT JUFx<?Ft:N?F~?F7ͯfл?P6  >JuM` ?juJt It=WGWzHRIlQI#>[? ?AbA@"b$J2z6v?@MJ=&#fb{#z (b)&,"*B!!5 g`?Copy_rigTtZ(c)Z2U0%09ZM0c0os 0f21r 0D1a0i 0n}.Z Al_0U 8sc2e70e05vu0dW0! $-# ',?6iie59 6uX7_'0UvBZ!0 -F"AJlJAh711!TصTh]]9 MP qAUFbX,?F3L&?Ffl6?FWjZ?P6 L6 >M   $ m JuM{` ?=cc.@uRJtO  \(\tu_VQӽmI[>JU s#<@!A?V% ?zAJbV @bbbz #|"b#$|"bĄ$J 2zGz?<)@M/#J&B(&$%|";T'|"*B9#t1t15 `?CopyrigTt (c)02`090M0c0os0f21r01a0i0n.0 U l0 8s2e0e0v@d0'"m1Yq40#b-9#3 7A#-(0bP#E9 wFXIGG'0UBŔnF!q$a TFJlJ8>UhS2Q2Q]1LA|!-(`9#FBP(?FMx HNټOqɠ[Hl[yQ RV0"JU}e\?FAϡ`2If9?PaEQosqvyifdY0_rޖlͅhn4g_oeBdy$w4|!Z$ܿ__  %$?qyU2_U|#rA 4'"HD H# ih#4>TA#3 AM 5AUFbX,?F3L&?Ffl6?FW_jZw?P6 . > JuM` ? IKSu8Jt5  \(\tyuVQӅmݤA>JU2zGz;?@MJ&A@bE#z; 9#bS(ba)n+n&J[#";"?&L ?AY$p/R%#115 `?CopyrigTt (c)U020a09U0MM0cK0osE0fS2D1rG01aS0iE0n.U0 Al0 K8s2es0eK0v0d01E4D#5 Y-?*3 *7&FiieE9 FXG'0UBŴ&!$0 iF}JlJ(>UhiI <1Y!aRY4n Rx_ J:j]_`0 Ɓ_.S F) 8qViH$D?F@\.?Pַ  G2GC2\QYV4GK`mA.x ΤAR Ԡ3l4xa@ R#Bsoog]rb5% 8 bHD: # h4>T]]9 M 5AUFQ( B?F].r?Fx?F`0?P6 m. >b JuM` ?+ILKu8Jt5  ty(\{GzAt>tJU2U"?=@MJ&Aw@b9(WbG)T+T&JJ[#";'?& ?A?/`)UB#115 `?CopyrigTt (c);020G09;0M30c.10os+0f92*1r-0f1ai+0n.;0 Al0 18s2eY0ej10v0dy0@!4b-#3 7Y&?Fiie59 FjXG"^'0#ũ&Z!$0 OFcJlJ8>Uh9AA x"1DJau'Z#FFp8 J4T .xDD3AQ]M RVJ:n] ̅_Zr==B&d2?tW~ɲ`?FH!{?PZss G2G2 .S =;;RSW4O+EA.xSfϽ؍AR X]ded4Jxa@S#Bsoogrb5w%Q5U}H$D\\~?BBQ5\~CftZ a axUv~lk&lqU2n_U"rA 5>#pHD: # h4>T]]9 M JUFp8?F}>??FbX,?P6 >JuM` W?SuJt  f\It=W|?5^UIRIlI +#>5 ՆJ[;? & ?AbA@N0"b8$Be!e!5 g`?CopyrigTt (c) 20 9 M c oKs f"!r !a i n. Al (s"e e v d ^!b$-,q# q' &2zGz?@MJ69#nfb3z; .9(b8)E&?, 0"E*iie59 X:7'0UvB &!%$0 -FAJlJAh/7!0!eZF43, E <ᢋ/.# M OR|VJ:VjUS |bPReS0QEUxx#cHD H# ih#4>TA#3 AM JUFVj?F\.?F`0 Pn6 >JuM` ?uJt  3\ߦIt=WIRfIl$#>5 J[w? & ?AbA;@0"b8$񩣑e!e!5 g`?CopyrigTt (c) W20 9 M ]c os f"R!r !a i n. AUl (s"e e v d @^!Eb$-q# q' &2zGz?S@MJ69#fb3z; 9(b8)(E&?,0"E*iieE9 X:7'K0UvB &!%$K0 -FAJlJAh/7!T#cS( bUGD  3 h0TdYYB IUF}>?F&G/?Fgl6?FB\_z17=w?P} 8f u` ?0)u:t7 ? = ףptDʑ_Gzޑ?"L쇪iU!!`?CopyrigPt (c)J 2\09J MB c@ os: fH"9!r< u!aH i: n.J Al @(s"eh e@ v d  #S$#%B- ## '?;= # &#24 6 6 2$# #0U2 3@&B A^#5 6X'7'4Ŕ 6!4] 6:e6^#[EBM #HA%DGUHuDh" # R#U U  >]0T]]JUFgl6?F &p&??F{jG,"7?P  uM` ?j`fpu#zAtw tnٳ \b "OMGt2N贿Nk?@MM%&A2 bW(c+c+c& !!`?Copyrigt(c)209M c o%s f"!r 1ua i n._ Al-0 (Us12e0e vC0 d%0 "!3]$#Ry&#4?6QC?]"W(c+Q;'-,# '6% h|5 CFXGcG'K0UBŢ6!4I cFwJlU!#A(:F<3)0 vc p/y $(4!Xv݃`?FZyE}0pS a۫YQ\I`X3Uk?FQYC~\f"qoY|5UD/5?Fԧ߾ \F\bJFXk_}__\A#O_"_4_F_X_Vh#?F=]W\>ۆ\34=(_V[e¯?F'e*m#R)\b@QoWZʵ?F,ށmL \$6ԡybm&>e?FDȆY\.Iſ\)ozEU 2DVhVၱ?F}!\\wzVxtD?FYY4F-~Ȩ\(p|y m! ?FߝBF7+*y\= ڙbm&R{?FbZd\Aa\?ulď̟EY.@Rdv m5[?FRⳭ8HJ|\ HN۟VHD2?FߦM\\A>x2V8`?Fitͳ}#E\I&)|5e?:Xa"7["mSpd㯵ǿٿBeJ\n~.?oJ4=|nn)`]Cc֦Š]]7PPE5߁m:2\y_1W3E?F#Bd\eÉbm^9^?FV;.O!thV\9MύAa\n߀ߒߤ߶߻VV ZKX=\ .c|~k綖d]!:`="K\lJ(i0(dV;amЏ9ta*m \ǀ_?bmcO"QGm= bY~\r6y@ύ# AuYKtxoa{6\/ 4)V w!>?F ߄*"̕0ϓpD!K>?FWP! -ߟ:{Qb?D)bmh4(?F|hS ߵ.f-R[Ϡ ύ //-/?* Y7Q%i?F_s"'a E/`'r?Fs7"̍^sÁm;]֜/O?F/RE"ןh~pMM/㿈E8:͉@;$Pe"̪ (M۽^mJ?O.O@ORO ?????O%?kZ@ I~}P"P7|Msk aO=˩ ?Fa7 >fɾw2θOgl6'"*’ ܏{7_(4?F8W!"̿z2m^Gm}>IύAoSoeowj ____o#o\+w(@ `&"-JO}=O^f~oyV 6?F9~"̓ ;M\Oo~ahFp@o!"?ݟ$Eߡ?~%^]"Q>IۢwFX"̰4txڑ3:\Qcu '9لndu%?F<2}G"^̄ZϭSԓD-?F=ߓC.k0w]<<7 Qv@b" "R؝f2]bwƈWРJk "̇1%~]F@m 1CUb^fĽ w \,X|4]-HuvziP=?F ##BOP9]ǕDG(t{GeY zKgPfO2~]9+T~]~;?o-L /=m$+)9ϡʌ);M_q 0;F,5Uz!izVsJ}0W }f6i,g8~ٜ˺A}2!~ tLհ#QqBZ$@S]5tC6 e`,.zu'J1ߥ6HZl~"~ѠZ cX, }ٜ?J\1~C( k0ޜcAKrзX=YϯR p0%N. X, I6]+ Ӂ?FI:5;iU,=A  D)U= 1qRdvE[%ڻ2i{w׾mQ7Z'ütUl?F3&Gsj3jܙ-Ow) S-ۇ4H-ɫ9].E|"?F&ti}S`Aܙx@ ///??Rk/}/////b"m X i)r~ٜوWjFQ"?|PP?Fo%s=De9gsܙaEo#IOl֪E@e~iY/|dM?v۶ :YhSQv}T\Pˇi/ON|aܙz?`$OO__,_uOOOнOOOI@B?FKTG.i`AٜlOo->_|?F!i_ ]gٜ?, )ʼn!|?F3Ck*}DxZٜ?]QVyhk߻?FX[g]/I ٜ?bvd Co '9Koooooopj T&}j8>ͯ߮\nE@L@Gٜ|gxgx0Y3N,*ݖ}T  MlfahhÔ}Dq:6};p/"_f/-?Qc я$]+w(0p:dy~͇JO} M?p 0!s?FYY4ڼ~iS!(p|ʟEDk}'pҧO?zA'xў?R_F!] EQ>sNϽ=(V-Sewaۯ#5ٿ9/{?i߼$&B4O% C3i?y}o3qo?Fq ZiD!'FA\]0$=ڵ}SI6?Ͳ Ai{ߍߟI 0BT~#a\.LSA-BN^{q"?p?Fe6i㪡<_#AA}2![?F1:!6F! [jtE\qRD%yjǍ6Pݿ#V<>tl )ae"%7I[mzj3?C_%?Zzh̿Z} ?-P N?/????eK?]?o????yxz`h qDa.??>#L3ўh>/Ew9&:/ ЎP.JhHkOQ qӠħOʜ- &h̜zfUm@O___oa_s_____}2Z?F$'_{uh̆Ia{V?Uoǿ7e~h̰(ecy) - mz-$.hhsZ}2Ca6o`(~ "?F0.MX×mEyoށ顷6\Zq%բ}t7Z?F~ Oh?H |A?UYwkE?F?>C ?<a,:wPI5) ߈2/WfsM% e'MvǃaËgO?F%F92\aI}|b:B9 /VA ȒTH7D6D # 4# J  !"#$%&'()*+,-./012*3>5haATaaMYUF%>h`?Fr<."L?FcG?Fqј?PM ]u\`^?u#t  EF't !#"UY%'~P*%8'C"Ut2N贁Nk?@d\#&A b(++&Y/R/$78?#bMd4z (+b/513%R 11;3"`?Copyriug t(cU 09M@]c@os @fBR Ar@GAa i @un Alb@U HsfBe:@e@vx@d"1Y]4i<3K 7966i@15P6XGW'0UBQR96W1 VZlY]U]l@TGA#1(!l[?FuO[0:$}#)ߓ=b!8e,չ?FAOw(lxrNj$>la.PXTh|3ecztaLN E'm:"n*&G^|%[a5:q m5a)k?||=a Ed0UgEo"o4oFoT#______evHG?F3'y~|3`[]Ք|cToev_kfP?F;~|S3ٔ|\£oevV!ex<ڤ~|{ |ev-+3t#~|;6nRcoj^}.@RdQUev~؇Z?Fi~|+|ܔ|JCjev<)OO~|p )yBr7ev1 aNְk ~Ůeąܩ#A 5OfYQWgn?FO*~|Ch|`-jݯev%~?&nq΃0xi7y :kOop ~|4ZO勿]oρϓϗU+=Oσ+ӑ!]~|:<]їyT}ςT ?FO'>]P~|qH~|ο:.H!|ςto w'"~| 5(CşVPevR`t)/~|?7>-<Ѫ|Ra 1CUgevo I?Fb7~~|/ͼ셡yoevkY?F>_ ~|3y evMXy"}~|ω9?lev ?< "~|^_\˱R&8J\n|by\M[`bD'nnEm|<z_m6itaW}nk.V̲ocxL45MR9?}.mE?KxSi#;m1LL'7,}K^>P/Si^}///*=! B/T/f/x///byYEvk덚4D2=y_mS M߾}zNmWUdw4֢DB&™t|d˽\Li#hމQ?7B%$Ĩ^QUHnOOO_8& ^OpOOOOObyV~%װ!(E>ܩu;ofUN1[D}~XXtۯ~'haCjmt{ܿ`Xn b_փ%hkqwu~R)uoo 8& zoooooo~KL}"_!eΟW?N eFjӈHi>DYH'h(%i?}ou MMXjQ %f[݉gm`¥ G8j ,E/R&5gS>Na8|'hhv_ ߖ3bW7mȧս[PebݱJ}:?nuTѺ 2DV8& į֯ &i~FR?[M%- q?j  DJP}uQ9/'hdfO?FV+p\[Wvpa9| wdѿOtZ(UxzêJUfeC(6,b#l+eR(߫\(V1:9Oi:4ߋcG1!Gq}9 ?C)uNUBv(Bo?FO& v!~5I-lym(,.$23G_CRHCM4q6vl~_}5#7o Tfxy?F{UX>͘ Uܼ*d4Ij@ ?Fi; Ly4GXj9 g1re-#d\D-h:Pc}Lw4mv/*ĩMQy S:U ߟpʟy7j?FZ?W+}(U*<SW?F .턟bGF赁9 <8߁-`Z͸~~5 CTc/ws}e v#P3ׂo(r.i,"4Nr¿Կy=Lu?F7G3z 9 ˇ 5F?FJ.3$w 1tK -o9a|ዙCѾ;-z0ƛ+WzBg/w-%&G,ߪ 2Dؚ5F] MH,>PNr#߽v<߯0ʨ)QMLTgMUs}I$FATG}=u2f`?}1&OwuXp+MEp41}o7o9ݭ&fgPy}}M?=;??1O2DVh6 yJ]}z aFgRlnk6+nɣj4 anf-n_h?+nj^AoxvTN.g!uh-Vo@MVp >ߜ)sPU 1D'[}LG*>QoN/`/r//.V//+/=/v(#xEAGw} }%(Lʧ1;$gKG"V2w]xR)vJD)3 7F!nLigqN|ݭƃN'QM7ZSF^ jO|OOOJv?O O2ODOVOOh_D PicPK>ѩ݅cDchQ>M cAѩ JBɆf!\.S6x~r|#ݭ#.CqQzUȴ߯b~(oooofo*o<* 8}\q3h^ ߻l~ϢϴQ9 AS@XC^}|/9K ս5١TB㰉\JA**=@$,Q9G\鐒?FU ^d /g [A\9mpï?FnrB=k X* S(N A9]'Nx =$.T~v )\A?S7|#!8+|z AM}D(:LfQ9j,,j?F4*a.ȉ\zFq&ǻ}w^Ym[6?FG!Ɖ\0#Jh@ /x|I]11\\o=P|G>q2:]_1BM4=1vq"_]=H` @]//?A?S?e?e ////??/ԸƑ?F qT}S҂ ϵymޯZ?FQo8G} ϊx"1IQ }M}>~~^{ªy1}eYQrŁ& [ׂox^.cyOK_]_o__+!OO__$_6_/ٗW(?F 5w*zi۟灜i{ސ_26w?Fߒ(xJJ쑻+Uϰ|]FuqyUq~iT ]~[4vp=!;L }?LYh- pzK"o .@R/R7?Fhߤ? QTJZ׬23l%?FO& ?GSۈQ?5])B.zhɅ($Q1(5} X㺾 ?lرc#&8J\n/_?FdW2ʼn@-1ş9ȟ2֮tp?F<*fB s1]V%sAS})Tk{#/v2OB!XLi.݉}1̾MZͯÿտ$0BTfx~P _! QR6#I -hCFUz5|Y}N?#TG}"F$=c*c,j4Z>[T-G#ϊt9a?FQڧc,H ~{%a -2FA`~hLr Xޟno#:L$FFǕgtg'bl[;| ߛ{-,>PbtG)AQHZ?F;ƃOc,t[|{r6<9{mgE?F Cg=:*\R鬱YG/7)- I;-Z?N5şZ=/I'nD5-!bp1{ IWx^q2.BTfx\PX{Zxߛwtu,]R |{A&BQbhì?FB#5һ5(B]-nf!Pb,$21Nw gnV~B]gyz9^p 7QoGI|q~-9@d]/// :/^/p/////\ˍ|x?FȯI|hLYosլ{m|^>`tzϞI|ύKYʰ;!l?bsdzNQN鮢I|\Jm^*Hq^o_`n~APpⶍߥzȣs^ˀ≜O__(ZA}OOOOOO_~ޯ1}^i8Z`֋ ŸLS$W+wvqO j2~Lx/b6^Ni~ KC} mN;-럴 =T=qip8/~ h ;-#霝 2Dz1oooooo\~DG߷&wz P}/p쯹BxN]dK]y.8@h&V&%-2|ЏLWM;| =yidݑ%%-tڨNR 2DV2ď֏ : O21f& =Q>Nsz99]yX21 ;>#94oQ>ݠ_g?]^%mT`>rG.l(5sm H_`?#~6\9Ҵ} қhnBk=Oas#3ί(\Ofe#y~NQmr갯]ߕ 6m^ϕJY9]7}}NQ X]n;m^uԱ_^?$R?F[5l<;Qq<7B1b;-Y='!"/;mZoY?4cgC2oXj|ߎ84 2D\M'g\elh \~5[Vq:a,8ω?F0 iWi&4\GbF|aS)H9z#/<^bAL_߶,fdlEH{=uU%5*eBn v;!#4?FADo)XLȚ|bv!7A!*EKGalH`.P%ҧqp6t KT4HD #h34>T33 AMT JUFM&d2?F W`?P6 >JuM` ?juJt  5]It=Wp= ףIURIl#>5 ՆJ[ ;? & ?Ab A@N0"b8$*e!e!5 g`?CopyrigTt (c) 2U0 9 M c os f"!rԎ !a i n}. Al U (s"e e 5v d ^!Eb$-,q# q' &2zGz?=@MJ69#fE 3z; 9(b8)E&?,0"E*iieE9 jX:72'0UvBŴ &!%$0 D-FAJlJAh/7!h0!ZFg, E <ēNmP#  &OR|VJa9PY]PPReS[RUV%:]x#c S( bHD H# h4>T]]9 MT JUFp8?F@ W?P6 >JuM` ?juJt  f\It=W rI*RIl#>5 J[? & ?AbA@0"'b8$e!e!5 g`?CopyrigTt (c) 20 9 M c oKs f"!r !a i n. Al (s"e e v d ^!EHb$-q# q' &ڝt2U2?@MJ69(5,E&?,2E*iieE9 X:7'03Ŵ &!%$0 TF'JlJ8>UhAA `!1ZF? `, E <A#] =RjVJ:VjCS |b>RSS6 QV%U\.;\QNYu=!ٱQE^?&d2_MZW#h415U)Hb?*V[E! YB\JQUU+Vp;_MZw@0$[D#h2$_6U2rA >#JsS(#e_zH"%u@s $I/bO`MF@HD#C?EZOB ȳ3G~d 73o@+~Ho8sGHAHoZfhIH R8LHWOH [H^HaRH0f^ؐi+HHwm6xHpHsAqIup:{Ioz&Z ZH,UFD  h(^TYYBUFjZ?F~??x<F BPG(?P } X ]B66]  TTUTTT9T9d9iȅHBU?? ?B@L&_d2?@-Q(\.c(A.sU!&/)1(  0%[B`(file,s0rv2,compuUt$4d0s40r0b24d0n0tw,0rk!e^| (QSG& i?!3E?? ?qq wp  p w{{ qw qwqw{pqpqwqt}pqppw'wwwbwqpwww|zwxvDrag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aabjZֿ~??cN׿ mF1??*t {V↑T*J?@ ?UG DF P# h @T(PYY# QU@jZ?@~??F?Pn} u{` ?Su#؍>>HX HlHYHH EO.LO4:UDDXXUllk'"&R",I'U25ĉ%4 ?"u'4b0{N[`:Q1#2T6"!^U9$"3&9"/L6 2&!'ݯ>e@ÿ@qn@?@-fB?mDcFԸ0)Bu/@`҈-1Bu@rCC 5GAB"2Cm9u`u `"[ b!u`%3Qo1o7B`?CopyrigPt0(c)020P90MPc.PosPfRQrPQaPiPn 0Al` XsbePePv,`d/`VPs_SBNcPm_!#5P8a` 6!bz1AXE:FG$1 8dT=`XQj2`]r` M`nuPaPt+arp{` ?bup` BO=ݛ`S,t@']p5%m-T݁<9ofm'Qh>qݏ,BT'.at'xXf@>pÿЇobLZdq [ܒrr$ avvvrsW"`ERol]16 бeI`~bb a}abr@6uP`TaSo1u"_u'I1I2A!b[aahaauhAaYypP`Z u*`q`*q`azAx'F5_db&bpSF3s͵NSYJEbrV@ΓB!e 8d : LqW,@rB:@0ɏT}sasahYV搹Mny ` %߀P&S41sa`NEWOWRKb2H PRq!RRI%SQio$o¹h^A'70Uc?!0oHD # =hj0>T h]]9  5AU@jZ?F͂T??Fx?SF?P6 jt`  o?tk[>(A Vu aSuo.]&A]  *ԮJU2zGzt?@L#&A@bA#z7 5#1bO(b])j+$j&[ "*(w "?& ?AU$l/%B115 `?CopyrigTt (cu)Q02`09Q0uMI0cG0osA0IfO2@1rC0|1aO0iA0n.Q0 WAl0 G8s2Ueo0eG0v0d0"1E]4MŤ-&3 &7&l>]Uhz811U!J!u6?F+\.>djIIa? >"(EǑ I%K9E 5EU . K ;;5QIWEEEF _KnSA?8@@Bu?FDR> ?Nk"\6`bmMM\j=am {:e P> #? D"? 5-g?j4B7!B{oogr57!ibDAbE9 MuX7_'0U~rN!$a)5 5vIzHD # =hj0>T h]]9  qAU@;?FI5K?@xEL?6ѿP6 t`  bm&Qo?t@@L]WI,#u aiuoL> JU2zGzt;?@L?&A@b}#zs q#1b(b)+$&[9#H",ɺ (wH"?& ?A$ /%9#BV1V15 `?CopyrigTt (cu)02`090uM0c0os}0If2|1r01a0i}0n.0 WAl0 8s2Ue0e0v0d0"O1E]S4MŤ-9#b3 b7&l>]Uhzt1.A!JN!m.%-+0djV1ax߃S(FJ-&?F mO"> ?Nk"L[Majnha_:e P> #? BK=o? n-?j4Bs!B{__Wr5s!D8E6V 6?wj_|_ ^XE.U@z T6?F @' d_mOoT \VyWxRkrVo_bVh*g:n"'UaEjz36>CN>?Bn}]zGvN7V iDAbE9 MX+G'0UJPN!4ae5 MaHD # =hj0>T h]]9  U@jpiH?F^?@$?F]F?P6 t`  !a&ao?t,F=۳=u;u auo>J2zGzwt?@ʐLAw@b#z1b](b!).+I.&[-m(?0& ?A$I0/Q%!!5 `?CopyrigTt (c)02`090M 0c 0os0f21r0@1a0i0n.0 Al[0 8s_2e30e 0vq0dS0T"!E]$M-# %'&l>]Uhz!1!JF% djc~YZ(_N9zOMGE%_EH$SwO"K ңHE ^&_8_WE_OqOHOOi&DAbPE9 MX7'0UUfb>!$a % f1jHD # Uh4>T#]]9 M5AU@jZ?FL|+?@?F({~?P6 JuM` ?u JYt )t7zEA2&L_D?. > >tJU2q K?=@MJ&A@-b9(+bG)T+T&J[#"#a?& ?AH?/`)#115 {`?CopyrigTt (c);020G09;0M30c10os+0f92*1r-0f1ai+0n.;0 Al0 18s2eY0e10v0dy0z"!4B#e-?3 7)& b 0K8>U# ]A]A "1!ъ!PzQ <%OYAJEU . K;;\%W%EF($L[.FX5Eai%?F 6?wL;] W-\TB⤲8?F@&SA?F @ ?Nk"L'`bmMW_Ye[ٯ7 VK=F: [jr ? D"? XZvD?ta@Boogr5;!QEx]SiLO MLGXa~WOTZiAle59 XG"'0Uc&N!$05 .HD # =hj0>T h]]9  IAU@K?FOgVb?FY%?Fwᳬ?PJW?>t`  ^Z?t#ə.E @x?r?/{4܂ G _Z+u u$ >  J JpU?43f<!.&P?b3bbfz@1bAe&bq$d 2zGzt.#@LT"&r(~&i$q)(+}'i"~*#81815 `?Co yrigTt (c)o02`09o0Mg0ce0os_0fm2^1r 1am0i_0n.o0 Al0 e8s2e0ee0v0d0"11E]54M-#D3 %D7.&lUh#7 V1#Ai!J# F/?B1B  VRiAAbE9 MX G{W'0U*R2N!I$a {VZUHPD  # #>h0JTpERI MU@u6?Fjc{g&?@%r`5B?Fm_F:Is?HNtQ`  II?t#]  _ii$!`kNu  iu%wj>M JQ T       "@&&JNU2"?H@Qs#N&A@b(bU)++&RNp}#>H1#19 ?#bbbz| R&/5R}#11`?Co0yrig\t (c)02h090M0c0os0f21r0Aa0i0n.0 Al!@ 8s%Be0e0v7@d@21a4t#-}#3 %746lJ#$JUp5 3 M19 1!q(!FnElrkRt# 8$kcD?@숒@)?FP?P"EkU |1\iOT/irvs}i>`_,of :m ,M ?? S&d2? *b?r4B!B oo1gr #5!>%(EQOOOO__FAc1_C_ D4ևS]_o_yRX+{_,__ #R__ (YQoSo+o=osd {oEeooooooFyUy{* hDVW(I X"c7I!pg bf'iMjSE t%XyG|'0UŢŞN!O4i |UGD # hz0TdYYBU@(%)?Fxg^?@0߯H?Fs7Uݹ?P} t` 87?t#_)TeΦu ]ukv  ̝L&UUU&I&3 U!!`?CopyrigPt _(c) 2\W09 M c os f"!r 1a i n}. Al00U (s42e0e uvF0d(0'HS$#-## 'I?k=#ǒ 2j$B##0U'BM3@&@F0Yk} #HA%DKb5DK3DK5DKED$!GiAZG5(|IDFX7yW'&Dŭ6!4YA yVZHD  # =hj4>T!]]>#AU@0߯H?Fz)e??F˞9q?P6 t`z  ?5t# rXѮu)Nu;):O]ע0 &> # " "+"+"+"+" $+"T-J[U7 ??& bA@ 2b4-#2zGzt#+@ Li68!6 ?}; 72U!:B#AA5 5`?CopyrigTt(c)20F@9M2@c.0@os*@f8B)Ar,@eAa8@i*@n. Al@ 0HsBeX@ej0@v@dx@)21"DM-,;?C G& l>]UhzAE!A#!ְ1J`#@{&pz?FUy{?NT,dKj&b&R&M/8T9K-q?F@F?FdG0 >Nk"?YE*]\LThKjfGD&Qhj ?iU3UGe&Y`?@/Jb)h5oWKoWo;èKod}l$ro`nE2K?Fˌ%4G{?F -q? eZR^{|\?6?vodmP}l>MBe 9 N 1iS? 1?grl#51:PO"4ga@Sq(UE^@O|ǐ[`ߡa v2rbA @3ijD&}laqOz o?#WHZ'Qu=*[^N?F]%P?@O&@ c?FаM<n ?` eb0)\(Pfodm}nv}l?V5(?q$Ix[cN#W{ #iA@&QeE9 MX''0UjdN!0 /HD  # =hj0T h]]9 #]AU@}%?FR$,?@6#V?Fc_3֡w?P6 u` ?u#t  3zM%t3ws%.<%H._'B> #PJU2N贁Nw[?@ʐL+&A@wbu](i+bk)%+&p%#4">9"<5!?& ?M#bbb͓z$ p&"/%T%#L1L15 w`?Co yrigTt (c)02`090M{0cy0oKss0f2r1r 1a0is0n.0 Al0 y8s2e0ey0v0d0"E1E(]I4M-%#X3 X7&l*>(UhE j1#$Ac!J`%#@5e$_F??!foA3nBM( V?FJ-R?@HQ??FS!R?P| llHL6VLD5E+v;*AůʙH: 8snP%$? k?Q? \?4_!__WrA5_! R,U3OC@IL?F4~Kz?P)Oy޾ T!]]>#IAU@܋?F2Oa>?@#r`5B?F*ݷ?P6 t`  >B?\oEt# ŖoZu 0Nu;Y:|8>$# JpU>##<?2& ?5bbbz@b#ANi&bu$'h 2N贁N[2$@ LX"D&v(&m$ :;T'm"*B#d1d15 5`?Co yrigTt (c)020090M0c0os0f21r 1a0i0n.0 Al0 8s2e0e0v0d0"]1"a4M-/p3 p72&l>0>Uhh= 1#!eJ`#&FNTM\jh1B,RBM(!JoUy{O_ e@ So4(D@^Tw?F]֝ä ?Nk"?w_KT\T+\_(Kjӷjmplhj -`\TPQE\Uui,St_o u~!ՠXEO9= T?FL?;uQ_Pm"rA @3sjQ1lğ=GoYniAleE9 MX|'w'0Ur^N!M$|A vzHD  # =hj4>T!]]>#IAU@܋?Fj?@2r`5B?F^ݷ?P6 t`  >B?\oEt# 6ΠZu 0Nu;Y~:#&}>0m8>  PJU2N贁Nwk?@ eL&A( 5bM(b[)h+h+$h&#[-M$#?& ?b$Z*'*B#O1O15 5`?CopyrigTt (c)02U0090M~0c|0osv0f2u1rx01a0iv0n}.0 Al0U |8s2e0e|05v0d0"H1P"L4M-/[3 [7&l>0>Uhh= m1#!S!J`#*&FPUy{_?NTMjC1gc RVMʣ(D#@ ![?F"$. ?Nk"W?IKTLTcKjRlhj p=' (*!)i,SO2Kes9T;QEGUFw6qX}__TM7fTZT\Dž}_P^52XOES"rA 0S#Es3iAleE9 MX|$Gxw'0UrIN!4gA xvzHD  # =hj4>T!]]>#!AU@܋?Fc_v?@#r`5B?F*ݷ?P6 t`  >B?\oEt# ap'EZu 0Nu;Y:|$># BJpU>#͙;? & ?5bbbz@}bAA& K&@ 2zGzt?"K@ L0"&N(bM)+TK/8Z*B<1<15 5`?CoyrigTt (c)s02009s0Mk0ci0osc0fq2b1r1aq0ic0n.s0 Al0 i8s2e0ei0v0d0b"5194M-t/H3 H7T &l>(>UhE=3Z1#E!J!FENTMjN@1h(NoUy{OO e@ o)4(D@^Tw?F]֝ä ?Nk"?'_KD3\T+\(Kj?ӷjmlhj P\ DiAlePsI=MXsG'0UzbZ6N!%$0 sFEjHD  # =hj8>T! ]]>#!AU@܋?F*?@#r`5BW?Fw?P6 t`  >B? \Et#տ|u l4RQu?]>I$>I# JpU>͙#<?& ?9bbbz@b#AE&bQ$$D 2zG[zt#@ L4"&R(^&I$Q)+]'I"^*Bh{.M#To1o15 9`?CoyrigTtk(c)k2009kM0c0os0f21r1a0i0n.k Al0 8s2e0e0v@d0f"h1l4M-:?{3 %{7&l>(>UhE= `51#I!J49fAn^ R)X f"B!Jui,SG?RSlOS u~!N]8-19= T?FL;uQ ?Nk"?YVTQRXQOnğ/=i n (\ wTiAaePE9 MXLg'0UbZiN!)$0 Lf`jUGD # hz4TYYT#BU@5?F;?@ t2?F`0 ֺ?P} u` ?u#t+/8<&L9`d<t9( .88LU``ttyt m "t"hf;!&&'n"!'%0'm= 'p ~i##0U"K?@&S#a!!*_"`?CopyrigPt (c])0020<0900uM(0c&0os 0If.21r"0[1a.0i 0n.00 WAlv0 &8sz2UeN0e&0v0dn0w"!$J#B-#3 7#^=$6#D66 2$e,^6C% #HA%DK%D8K5D`KEDdGg&}c__'TAA""}(Pa%288BKS`DS\U Siha5 &rX7g'$i6!40 f-jUHPD  # #>h,JTEI MU@jZ?F@s??FX7`/?HmNuQ` o?u# j>tMtQ 1@t PATOQ E O#l|O6,2c J^vNt, "t "QwNbo ?!FVxNo]2УɆX3BUYU>VZ\)_ W거QUTAQ LG4CaCa_* Q_*____ o2f 8CT]?FoYDȡ?@ ~1pc} 9dS0]Yb<=p\/_ RT)4HtvzI!| ?^_AV,uݹ:4Z\o &Ja ʆXBU 9A1p@߄ߝZ\X9 (p\P΀dˆXEBUp2t Z\5q[,=6B҆XaU̓쬏 qXa>YU . [[ ;;p\Ua>YF`rZYoQUaai%?FzP4Z\^ W-p\] xTy8?F.?@@SA?FWk@ ?Nk"_|5`bmMp\PB|y[7 ơ|`?])?p*FWAX|a筃,H7~Z\?bxT?:!G4QڡUeB_T_f_x_DOOkoooZ}u?FU2Ty9=ŏsҟGO"vP_?@mlփ?Ff>> }= R3|Ofѡ|&['aޯ)d3#ux"@4SK 6ASʎy'e>'"Y`r,iMm׹ ߵl%1X~G׷_'0UJ26L50Ov ׶HD: # =h4>TB#]]9 TqAU@1D)?FL"ߛ$??Fٵ #ָ?P6 u` ?u4 t  ]<)t7񿗯)2)LEkL>  JtU2qD ?=@LC&A@-bu(b)+&񆤍[=#L"#a?& ?AH{/)=#@1@15 {`?CopyrigTt (c)w02009w0Mo0cm0osg0fu2f1ri01a; ig0n.w0 Al0 m8s2e0em0v0d0"91=4MB=#e-OL3 L7&l>  U#,|A|A9 $] t^1*=# #p Kw&&J`=#R&F 2'_b0CwvA kRqVM(~"!;ɡ?@<3?F ?P-DT! ;d1?Y=:ZTO㿂f{OaB J4 13? v,? (N_?r5w!:8oJo\g"a@jS(.8R!ZFI nx4__ D_U5U,VS?@g$ ?F~4,ێ~@ 8_H_ZTml`KDfl`'E4q2d8R鿃oo`rmkod&'aE2%_7USr(A@z#y3ae&b{, fZT5sae~t?FG=Va|7>-\氹pAiʈ$%?F(XoZ1a|}%\Iii ^WB^:fvEZT˒AiU?FAx߾Ya|k#ӝY~/Yt(Ae o0AleP59 MX=GL"'0UŢbN!40 O5 |HD: # =h4>TB#]]9 T]AU@R7)?Fy߈C??F"ָ?P6 u` ?u4 t  *5y")t7n)2)LI"+BA B JU2q0 ?=@L/&A@ybm#zc a#-bK{(m {(+I&)#Kڬ !?& ?A"&g$bbu/b /%)#Bo1o15 {`?CopyrigTt (c])020090uM0c0os0If21r01a0i0n.0 WAl0 8s2Ue0e0v@d0"h1l4M!E)#𤲝-DO{3 {7&l> U#,AA9 ] 18! #p %J`)#@~t?F # 0hU-~-/HA RVM(ET"rYD?@J-?F-' 9d 0_Y b%r\_oӫ([MFoFl 77]8>!Zݹ:4\\o?gƭkdQEF5W4?@A=?F[Q`??P-DT! :U^Zs[ #l@*p9lJjV\\l_ I&vpkhAzi!J?F߸TF\\Ͼ\zT khzinA9f@.mY <\\ԕ$ ,S{khAzi׍8r?Fį^?m ? ~_5 ә(Ae 0AleE9 MXlGR'0UuőN!40 ~5 ,@HD: # =h4>TB#]]9 TU@~t?FYaJE??F? ~?P6 u` 7?u t  }A_)t7Ǫ+)2)L^A]>REJ2q?R=@LA@yb #z.-b( (%2+2&L q!?& &?A"#&$bb/b 4/U%  1 15 {`?CopyrigTt (wc)B020N09B0M:0c80o%s20f@211r40m1ua@0i20n.B0_ Al0 88Us2e`0e80v0 d0X"1 4Mi!E-?3 R7&l> 0>U#3 GA9 B)1 #p| U%J`F(jdO C]/S֑K VM(HC-O"K[%q3U5CU?uBТ:^Y=~q\G3UE2OE#rA 0"c37QA?Y\[)xIB_mT^(`d :0A@le59 MXGB'0Ur-N!$KA5 fjHD # =hj0>T h]]9 U@/?Fxpz?@]JQ?Fk],>Uh@ !f$; hp _Q%Jd(jcZ(sEp!$a VZHD # =hj0>T h]]9 U@~t?Fxpz?@?Fx?vÂE?P6 t`  }A_?t#%_ ,u auo>J2zGzwt?@ʐLA@bu+b)%#+#&![Ha$?x& ?A//)񩣑!!5 `?CopyrigTt (c) 0]2`09 0M0]c0os f2R!r 51a0i n. 0 AUlP0 8sT2e(0e0vf0dH0@I"!E]$M-# 'x&l>],>Uh ![$ hp| F%JdjcO(hEq<cBɀODI$xD\AEOOOOD~hEuBТ91Y=~D\GiAbE9 MX|7W'0Ub>!$a VZ_H$;s nXk_$:@@_F8Z#?5VOB ȹ3~d=3 @}+xG\ [sG-hf-$-H1(1X11F֛ 1 1b61,11[1719N81Ȉ-p_8R*9h1<9HR5 ]xRXRp!UFD  h> T6D 4U?\.??F BP(?3P<; (^.h1 B ._ .s....UBU G 0`%Document,aUp, r2 SPe, 1!LF"t:$Fil, 3#g, k!^ x%% -G( S?'5 7NWwp\xpcu wf`oo\Drag onut hep adn"y aex.bL&d2ٿ~[?? ].r\5r\.EUGD" # h <^T$(YY#ӌU@\.?@L&d2?@~߻?P} u` ?Mu#3:D:DTDhYD| A A A AAAA&A&5V0&0& 16@@TThh||&&&h&S"4"!X2^7H^7D',6{҂_a?6 ?bbvbz@ t#RCCYCCCCCCX2&UHF%2?BX2]"BW3Fg3RFh3FX2 FU X2 F X2 FU X2 F X2 F5 X2F F"BC\"CS3F"CS=F2CSGF2CSQF/2CS[FC2CSeF2tsU2URM3@S[CT"bS$bZCfC f|d78JSB<D>`ÿ@{q`?@bK?df2uL -1bu .1ocr4#b vs"xh4C"M7 qx24S"_|um2u`u7`"0`au`rK=pg2 3 @D:'0A2Er:+Jw"+`@rApdBS(pԁ .r`?CopyrigPt (wc) 20U9 McoP'of r6ua in. U DlQ sUUePevgdI1`Vs_0RXYIcPm!#5378eH^0ӕYcU5#.U#Y.3#.E#.u#.=##.#.|#!.#!.#.pfmcaȹW!T4!4!28Toԁ arQ(-DT! @b0Q `aqqbvab? { q¬rrh@@($ &  qàq#@tq3t)'`Rg:sB Tgx Er@9'/'Tw\M8^6uk u  bu\ %qfŪ0`0#`abukv33u &rg𔫿Ͽ`28x1,@9"HD: &# ;ih ,>T!  9 U@D&d2?@KJ}0@@sbA*%BAG W$?n& ?A$#"t9,(tϺ*r(, [ # ͐(tl-t?t - t>?t- th? t}? tݒ? t?t :hT!<M#h $A$A5 s`?CopyrigTt (c)[@20g@9[@MS@cQ@oKsK@fYBJArM@AaY@iK@n.[@ Al@ QHsBey@eQ@vZ@d@?"l>U <>Uh$@AA BAJZ?-ku  ?V|=R"Q jRVMB:]GZpS ,TvRU5UC QkY[zZ%=| hUnd<+o{Yh<gttgYCNboio&1\oBٽB>PhQYwk_>g"U2Q_cU#rA $s?"HD: &# ;ih ,>T!  9 U@ʛ߹0?@nIw?@DI ?@MԿ?P u` ?u4t  !t/ ms!*bB!~DF=nm>J}02@@}%bAUB A?f. ?s,zb/b@'݉ 6 ,) ޷+ 3"?-#ϿS㥛!z /(, ) .":'`hT!<M#hT 115 u`?CopyrigTt (c)020@90M0c.0os0f21r0Aa0i0n.0 Al:@ 8s>Be@ej0vP@d2@?"Ul>8>UhpApA 1 0LZW|?U@7>0XB ,V MB4GRS_FU5:W]dT!  9 U@xj89?@F?@oU?@T?P u` 7?ut  K~D!t/0!*ҹ_!!DS_ Vn[>J}0@L@%_bAU)B AO9tG ?f. ?Y,zbb@' aY + :pΈ?'!x?z!(, ) !b#/h<M#h 115 u`?CopyrigTt (c)0W20090M0]c0os0f2R1r0 Aa0i0n.0 AUl&@ 8s*Be0e0v<@d@?"l>4>Uh\A\A 1 LZX9v?;0 0af҉A BVMB:66C JO DB.Uk5`AOWI[n_/T^9_WQ.U>U?jtOJoBdA D.UE2OErAg D4c?"HD: &# ;ih ,>T!  9 U@fB?@`mH?@i~jJ}02@@}%bAUB"G ?f. ? ,Cb /(,n  # :'hT!<MQ#h 71715 s`?CopyrigTt (c)n020z09n0Mf0cd0os^0fl2]1r`01al0i^0n.n0 Al0 d8s2e0ed0v0d0%?"l>]UhzŒT2JTyF mBFMB:jt?lK{@C vTC E%4TMlO~IADE2TO;rAg ${S?"HD: &# ;ih ,>T!  9 U@D&d2?@b1X΁?@K~?@;d;O ?P u` ?u4t  'V3X!t/XQ_x!*!D?7n  >J2U?R<@Ls,A@Tb+&tt0/t 2- tBy) ?b++'񠀑h!<M]#hR1R15 s`?Cop rigTt (c)020090M0c0osy0f2x1r{01a0iy0n.0 Al0 8s2e0e0v0d0U{"l> <>Uh$AA* p1JZ-ku? _V|=PA BFMB:]GZC ,DBE5E@C QI[J%=| E@^d~XLAIJgOlo.WPE2OE#rA $s{"HD: &# ;ih ,>T!  9 U@^?@K?@ZRJ}e0@@%bAJBAk?f. ?Y,zbb@' 6f ) + w/?-#S!zs+/&a&!+ Pkw?; d;O?8(, ) N" /=$h<MQ#h /A/A5 u`?CopyrigTt (c)f@20r@9f@M^@c\@osV@fdBUArX@Aad@iV@n.f@ Al@ \HsBe@e\@v@d@?"l>UhCAAMA 0LTuV  iRVMB4`_rQw_?"Q5^_zYQU@Uor_:k2P_t;rA $c?"HD: &# ;ih ,>T!  9 U@PaX?@f)?@MbX?@TaWk~n?P u` ?u4t  N=!t/ӯw~!*Dʮ!D#M8  >RJ}e0@@%bAJBAk?f. ?Y,zbb@' 6f ) + w/?-#S!zs+/&a&!+ Pkw?; d;O8,(\, ) ":'hb<M#hT /A/A5 u`?CopyrigTt (c)f@20r@9f@M^@c.\@osV@fdBUArX@Aad@iV@n.f@ Al@ \HsBe@ej\@v@d@?"l>UhCAAMAd 0LTcuV  iR)VMB4`_rQw_?"Q5^_zYQUUor_:k2P_;rA $c?"HD: &# ;ih ,>T!  9 U@PaX?@ w4?@MbX?@DkuL`~n?P u` ?u4t  N=!t/^~!*Dʮ!Duϧ{z  >RJ}e0@@%bAJBAk?f. ?Y,zbb@' 6) + w/?-#oS!zrs+/Ⱦ&a&!+ Pkw?; d;O?8(\, ) "' /=$h<M#h /A/A5 u`?CopyrigTt (c)f@W20r@9f@M^@]c\@osV@fdBRUArX@Aad@iV@n.f@ AUl@ \HsBe@e\@v@d@?"l>UhCAA`MA 0LTƌLuV  iRSVMB4`_rQw_?"Q5^_zYQUU or_:k2P_;:rA $c?"HD: &# ;ih ,>T!  9 U@PaX?@b`;?@MbX?@TaWk~n?P u` ?u4t  N=!t/ӯw~!*Dʮ!D%h >RJ}e0@@%bAJBAk?f. ?Y,zbb@' 6f ) + w/?-#S!zs+/&a&!+ Pkw?; d;O?8,r(, )] ":'h<MQ#h /A/A5 u`?CopyrigTt (c)f@20r@9f@M^@c\@osV@fdBUArX@Aad@iV@n.f@ Al@ \HsBe@e\@v@d@?"l>UhCAAMA 0LTuV  iRVMB4`_rQw_?"Q5^_zYQU@Uor_:k2P_t;rA $c?"HD: &# ;ih ,>T!  9 U@PaX?@iMbX?@TaWk~n?P u` 7?ut  N=!t/Ӕw~!*Dʮ!DNEr >TJ}0@@bAUBA_k?f. ?Y,zbb@t' 6 ) + w/?-#oS!zrs+/Ⱦ&a&!+ Pkw?; d;O?8(\, ) "' /=$h<M#h /A/A5 u`?CopyrigTt (c)f@W20r@9f@M^@]c\@osV@fdBRUArX@Aad@iV@n.f@ AUl@ \HsBe@e\@v@d@?"l>UhCAA`MA 0LTƌuV  iR(=RRMB4`_rQw_?"Q5^_zYQUUor_:k2P_;rA $c?"HD: &# ;ih ,>T!  9 U@PaX?@Cz?@MbX?@aWk~n?P u` ?u4t  N=!t/ӯw~!*Dʮ!D`q1 ARJ}e0@@%bAJBAk?f. ?Y,zbb@' 6f ) + w/?-#S!zs+/&a&!+ Pkw?; d;O?8,r(, )] ":'h<MQ#h /A/A5 u`?CopyrigTt (c)f@20r@9f@M^@c\@osV@fdBUArX@Aad@iV@n.f@ Al@ \HsBe@e\@v@d@?"l>UhCAAMA 0LTIuViR  iRSVMB4`_rQw_?"Q5^_zYQUU or_:k2P_;:rA $c?"HD: &# ;ih ,>T!  9 U@PaX?@h"o?@MbX?@DkuL`~n?P u` ?u4t  N=!t/^~!*Dʮ!D >RJ}e0@@bAJBAk?f. ?Y.zbb@' 6f ) + w/?-#S!zs+/&a&!+ Pkw?; d;O?8(, ) N" /=$h<MQ#h /A/A5 u`?CopyrigTt (c)f@20r@9f@M^@c\@osV@fdBUArX@Aad@iV@n.f@ Al@ \HsBe@e\@v@d@?"l>UhCAAMA 0LTuV  iRVMB4`_rQw_?"Q5^_zYQU@Uor_:k2P_t;rA $c?",H?_bs A/}뿟@JZqՆFxZ3#JG rB} G\~]}Da=3]@+XH\]:aGU7R]kP8RivR!AR %0RP(ȓR*5R.*ؗRD1)Rm4$ߛR7xR:XR=H1 A+UFD  h(^TYYBBUA@ ?I?P?  j FXj$| ȅH?? B@L&ɯd2?-)(?\.;(. sUa!_&/J ( G 0B`@iMac,$intosP,Ap 0le c0m 0u e+r m0n !#1n0tw02k eq0i 0mT0!,Pa"0d<0]1e!i1^| ( 3P B'?/ ~σ(/('v2 ?;%4I^b /pcv  .ԳDrag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aab?ɿt@ ?03%?贁NkHD # =h4>TB]]9 uAU@?%?@jOT\wQ?MΊFA9rr$r&A -34#u `7u ub A V >E& "* MJz:@q&" " ""@)"",Y#LM=b1+$'")"$"$27Y#EM 39 45#^Y#2q0l3SF'Y$?@J3N G>uLA-l5!HBuJAXRBr.#=wCbBܟ0?Cuԟ0I su `VB(#X3&'"2ql>!Uh@r5Y#1 a]WRa_SfPJA\'!2(1\ 4;?P,2Fu`bu@W(&PV$5K:ci3?+3__R8bVf5UVUmgWQheocrATM"AaAa$2f2aa2$(t 5tBtEJb.|wb_z9ի tBi8gvF$t| '"9P(Aqt% wuEwprp{Ϗ'9" nP=3EFre$w'2$9͟\oyЏRsRtruP!s1e!`Hih/P",>w=rr*˶ m4EWlqqPӏMū >sSoeei`%/;@%;LTY`2_3_4_U5O2c3c4cĉ5ZFf=G,[\F-[fpF.[F/[fF0[F1[fF2[F3[VF-2<UZZnnUUUU&&U"&"&6&6&UJ&J&^&^&Ur&r&&&S&&&&&&&&&&&66&6&6:6:6N6N6b6b6v6v6666666666666FFFF**F*F>FHOZHU\FpFpFFUFFFFUFFFFFFFR)!#FQ_? ?҈#lPYPPPPPPP!P1&PJ!P^!Pr!P!PP!PdP!P؂&P1P&1P:1PN1PhPv1P1P1P1P1P1P1PAPAP*AP>AP\APpAPAPAPAPAPAPAPGDPGR"`[R"j[RnS"tR"~R"R"R"R"b"Ė#b"Ζ7b"ؖKb"_b"sb^d^!^!^(2,2/2,A\ApA\AAAAHA{ZU@JT^_&&2c3&2c3&Bc3&GBc3 6yBc36Bc316Bc3E6Bc3Y2ibYCYCJ YC^YC&YC&YC&YC& YC 6ѢYC6YC16YCE6 YCxOrb&bxbsS;6{<F\.?@>Pÿ@qP?@VR?TV?2uL`,@-"Ru p`\@ZJrRf%c!h-" bqn?SuplNiE2u`u[`Fp@auL`bxΆΆ(؂g苤^q_US! >!a{4_b:pu{`:A~PHp\Ov΁Qe7`ESΆl.sPb ΁L'`q q w ;3`Vis_1RXY@chm#589{4*-b`?CopWyrg tU()2&@0,W McEo'ofM>rAzUaMi?n@ WAl EsUeeEvdBBgrRTUs`Hl"et6BTl\桇ub~aaLt~aLđΑؑ (2F@HD # h0>Th]]9 MP# JUF\.?F?Fb-2;?P JtM`  7?t#_B-K~LQGJu duo7]A$>aRAMJob@K+ tQJA$"a?& ?Aa4 ۢ # b)ta*"t =td=!%(U?tB? tс? tݖ? tޫ? t? t?ta.#A#A`?CopyrigTt (c)Z@2`09Z@MR@c.P@osJ@fXBIArL@AaX@iJ@n.Z@ l@ PHsBex@eP@vZ@d@m"Bh<#jl& @K @?UhLBQBQ] 1 !7AA#!V!@}ac RdjaE,JU'5l[Cdk%(gEU˖7s?FXE]ʚdkddѿS&iEn?Dǫoo` j!'hUFBG\k?*J`*e?~7CWi <I'hQYP ?F_}tk)vƫs'hQpsf l'hQYfyP\l'h1Y΋Q?FR&1\kQY-]?F2(Gf/\Rk> u'hQEW?7uL"las \.'h!YJ' ?F^3~\Nk?:P'hQY|y%.?FSo\Wkŏm'hRXD7Ժ?Fv[Fios*e7U l_9;\"kyޙ"M'hQYǬ! om?q:z'hUU3_Ő{ m!j,H0d ǕHD: )&# T=h0>Th]]9 Q BUFpɷL?FE@XV?F&1?Fbi0 ѻ?P Bt`  S0?tFp֯hݿQVBu auo7>JASTfw? ?Az@bbb! ( 6 )  '+ ߈?/I-Z#,z AF u +%/,8)E!'+ k(??r+oF(a4 8) E"#{ #BstG8tU: Ba L>2?!88;D;68?5;D; tj>8LALA1 `?CopyrigTt (c)@2`09@M{@c.y@oss@fBrAru@Aa@is@n.@ 0l@ yHsBe@ey@vZ@d@v2h<M#l#@ M@?4>UhjA6Q>1| L`k$k;cdj]J}vMjR]M 6)fMB@prwp\ k_稇avCe=ESe??F9Y? lgESeF:h%ykod iSQޗh~Kjo*` Oc;Ꞗi2_U3rA/04sCHD: )&# T=h0>Th]]9 Q BUFfFY?F,"+?FYU/?Fʯ8ϻ?P Bt`  I$lG(?t=`j>_PS ,Bu aquo7>KJAUVJp?X ?Awz@bbb! ( "f Փ'+ ' qq?z A  +/.&68))E! '+ go?W-sU!n*a4 8) "u#{ u#D!st?8tM: Bav L62?!08;<;60?5;<; tb>{8DADA1 `?CopyrigTt (c){@2`09{@Ms@c.q@osk@fyBjArm@Aay@ik@n.{@ 0l@ qHsBe@eq@vZ@d@n2h<M#l#@ M@?]UhzbA.QR61b L` KdjMaQ  6fM{"@FT4\[3K_,7e5EGe9?Nf[ N_qd7eEGeXәj'SW\m jOf܋h2_U3rA'04msCHD: )&# T=h0>Th]]9 Q BUF` l?Fċ?FC7Ժ?FBGԻ?P Bt`  I4z?t? D ǯ^\+Bu Fduo7 >JTA0f88v?WYϳAjLF@z bbb!' 6Y % )! ! ,+ <?' o?z #a47% =) J"#K#({% (+ (G t#BXY'?A> ?A "+(/+/=/O/a!y:5r{l/@ sU10( /???? "0aQQ'@`?CopyrigTt (c)FP2`09FPM>PcTh]]9 PB IAUF++g?F2?F {J?F%?P t`  r^?t鯕 { Li@Zu Mauo8 >    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 ,p )l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ s"?(a490 9_b!#{t0#tN8tϻ: Ua BL2$18KE;F?VEK]; t>B 4AA0`?CopyrigTt$(c)$2`09$M@c@o%s@fBAr@Qua@i@n.$U @l/P Hs3RUePe@vEPd'P 2h<M#l# M/P?]UhzPAQ1 L@3F l?F OqP dj|aW{,8cUFwW?F0ev"?F%Ti ?FUѣoO 0Yig߻ull4_aj??N~f0co+ fEeC.kn?FtdFِ?Fd?F?#l/Оol}dQ3ll BXl귺m|bBhaUeAvؼg`r4g?FÇ?F6|vflPI3qoikeðl1` |QT?heFnFc^?Fq`h leowkyyftGg˂a,8b1;MHD: )&# ;h0>Th]]9 PB IAUFd    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 ,p )l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ s"?(a40 9 .*2!#{0:#t8'tϻ:Ua L2$18K;F?VEK.; t>B4AA0`?CopyrigTt (c)@2`09@M@c@oKs@fBAr@Qa@i@n.@ @l/P Hs3RePe@vEPd'P2hb<M#l1# M/P?]UhzAQ1 L@3Fy*,[ܶ?F5]P dj}ah8cUFąiBQ?Fۨ.?Fao#ѻoO 0YiM+Fll_Zaj?}0%|f0c˭ fEem<_څ?Fb?F+}?F?oolGGTll .Xlhe{|kww@haUec(x,`H^ǀ?Fw?F234 flux1qoiFA(]l |~Th]]9 PB IAUFd    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 ,p )l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ s"?(a40 9 .*2!#{0:#t8'tϻ:Ua L2$18K;F?VEK.; t>B4AA0`?CopyrigTt (c)@2`09@M@c@oKs@fBAr@Qa@i@n.@ @l/P Hs3RePe@vEPd'P2hb<M#l1# M/P?]UhzAQ1 L@3Fy*,[ܶ?F5]P dj}ah8cUFąiBQ?Fۨ.?Fao#ѻoO 0YiM+Fll_Zaj?}0%|f0c˭ fEem<_څ?Fb?F+}?F?oolGGTll .Xlhe{|kww@haUec(x,`H^ǀ?Fw?F>34 flux1qoiFA(]l |~Th]]9 PB IAUF;L?]?F]hk?FXN׶?F`V?P t`  ??tQ0I9xE "˪Zu Mauo8 >    PEJڍU[\/(?&. ?AbbY!z@Ae bbCt c(a4b  b(h#{ h#΍t(tI*#0f88vb.#i L5<1v(&$7/(D%"6/5;0( t.*B#11`?CopyrigTt] c).@2`W09.@M&@c$@os@f,BAr @YAa,@i@n}..@ Alt@U $HsxBeL@e$@v@dl@"h<M#l# Mt@?]UhzAA!J@#Fy*,[ܦ?FVTP dj}תa4(SUFąi?F6^G?F/?F?oO 0YM+Fӱ\*aj,.}a$?# XEUYu?F #?Ft Ǜjm?FRtolTBJ\LMYBltavXlp@XEUg6PK|$yp?F`1А?FAD3 o~l/AD0qYJg ַBl*$ԞXlFB:XU^Fi?FfaEHRl_[Ei1GAf`dSq+a,(bvHD: )&# ;h0>Th]]9 PB IAUF;L?]?Fԁ_IRE?FXN׶?FgaV?P t`  ??tnG9xE"˪Zu Mauo8>    PEJڍU[\/(?&. ?AbbY!z@Ae bbCt c(a4b  # b(h#{ h#΍t(tI*#0f88vb.#i L1<1v(&$7/(D%"6/5;0( t.*B#11`?CopyrigTt] c).@2`W09.@M&@c$@os@f,BAr @YAa,@i@n}..@ Alt@U $HsxBeL@e$@v@dl@"h<M#l# Mt@?]UhzAA!J@#Fy*,[ܦ?FVTP dj}תa4(SUFąi?F^G?F/?F?oO 0YM+Fӱ\*aj ,.}a?# XEUYu?F#?Fm?F*m{olTBJ\MYBlU{XljDc@XEUg6PK|$yp?F1А?FD3 o~l/AD0qYf ַBlq$ԞXl.B:XU^Fk?FaEHRl_[Ei1GAf`dSq+a,(bvHD: )&# T=h0>Th]]9 Q BUFa)DbJA]^'? ?Az@b ( 6f  )ϓb= + _? ' 88o?z A s +=  /)/;/M$[+["-j!Q U1[!x(ar4 ) "'}# }#BtΜQ8t_:Ba~ LH2!B8;N;6B?5;.N; tt>8VAVA `?CopyrigTt (c)@2`09@M@c@oKs}@fB|Ar@Aa@i}@n.@ 0l@ HsBe@e@v@d@2hb<M#l1# M@?4>UhuQuQPtA@Qj LZF>7ܾ 7j bL\2] 6R1bMB: ZWdc Ɵmdb`GeGEWe2T|`I\aibvIGeU@OCJQTh]]9 Q BUFq \?FWY۷?F \?F0;?P Bt`  4fտݛ?t? 2N (+Xۙʿ-srVBu acuo77AJA]^'? ?Az@b ( 6f  )ϓb= + _? ' 88o?z A s +=  /)/;/M$[+["-j!Q U1[!x(ar4 )] "'}#{t }#BtNQ8t_:Ba~ PLH2!B8;N;Q6B?5;N; tt>8VAVA `?CopyrigTt (c)@2`09@M@c@o%s}@fB|Ar@Aua@i}@n.@U 0l@ HsBUe@e@v@d@ 2h<M#l# MT@?4>UhuQuQtA(@QH1j LZF>7gܾ 7j bL\G6] 6S-fMB: ZWdc mdb`GeGEWe2T|`I\ai?bvIGeUWeOC9ri_xu j aGeWe_ooh2K]u3rA 4s2HD: )&# T=h0>Th]]9 Q BUF&?FUa|AY?F \?F0;?P Bt`  \vJA]^'? ?Az@b ( 6f  )ϓb= + _? ' 88o?z A s +=  /)/;/M$[+["-j!fQ U1x(a4 ) "'}#{ }#BtΜQ8t_:Ba~ LH2!B8;N;6B?5;.N; tt>8VAVA `?CopyrigTt (c)@2`09@M@c@oKs}@fB|Ar@Aa@i}@n.@ 0l@ HsBe@e@v@d@2hb<M#l1# M@?4>UhuQuQPtA@QH1j LZFr7ܾ 7j bL/\]M 6-fMB: ZWdc ?mdb`GeGEWeA?2T|`I\aiavIGeUWeOC9ri_xu j aGe@We_ooh2Kt]u3rA 4s2HD: )&# T=h0>Th]]9 Q BUFR ?F(Zп?F&?F0;?P Bt`  U'?t)S Pʿ-srVBu auo7>JA]^'? ?Az@b ( 6f  )ϓb= + _? ' 88o?z A s +=  /)/;/M$[+["-j!Q U1[!x(ar4 )] "'}#{t }#BtNQ8t_:Ba~ PLH2!B8;N;Q6B?5;N; tt>8VAVA `?CopyrigTt (c)@2`09@M@c@o%s}@fB|Ar@Aua@i}@n.@U 0l@ HsBUe@e@v@d@ 2h<M#l# MT@?4>UhuQuQtA(@QH1j LZF>7gܾ 7j bL\] 6-fMB:D ZWdc 2Nodb`GeGEWe2T|`I\aibvIGeUWe-B9riu j aGeWe _ooh2K]u:3rA 4s2HD: )&# ;h0>Th]]9 PB IAUF(*?F?+8?F-?FP덋?P t`  g ?tr㯰4\ls,Zu Mauo8>  ]  PEJ]_DRb(?&. ?Az@bY(ne 6 h )b k+ ?Z'e 88?z6e Ae [+ h g/y//$# L:5, /sUK1*ap4 9] 2(#{t #tN8tϥ: Ua BL218KE;6?@EK]; tͺ>B 4AA0`?CopyrwigTt c)@2`09@M@c@o%s@fBAr@Aua@i@n.@U 0lP HsRUe@e@v/PdP 2h<M#l# MTP? <>Uh$QQ]AQ1 LZ3?ZkP 7jbb;'ߨL7a 6{fM8cUF*eE(aFr+}G`_=m?F7T҄xo`Oi^jva~t0sK`+t!kĀ9t!KU:M} -'sLl}]|]r9xLuf.Lp?F4gHvodObdcZgt_=,V~#|..7 ;vLuN?Fbݲt{?FNch|[m?&1 zoUh+#|?n1%*!ayTh]]9 PB IAUF/vt?FxN7?F-?FP덋?P t`  q?t} ܯ` \ls,Zu Mauo8>  ]  PEJ]_DRb(?&. ?Az@bY(ne 6 h )b k+ ?Z'e 88?z6e Ae [+ h g/y//$# L:5, /sUK1*ar4 9] 2(#{t #tN8tϥ: Ua BL218KE;6?@EK]; tͺ>B 4AA0`?CopyrwigTt c)@2`09@M@c@o%s@fBAr@Aua@i@n.@U 0lP HsRUe@e@v/PdP 2h<M#l# MTP? <>Uh$QQ]AQ1 LZ3?ZkP 7jbb;'ߨL7a 6{fM8(a?*F?F}ޑ`oO 0dTc I\rdcd bjӯokga>?>eEef?+}G?F_=m?FSxo`OivddlvatG0sK`%tkĀѡ3t!KU:G} -'sLl}]?|]r3xn.Lp?F4gHpooZgt_=,V|..7 5veN?Fbݲt{?FNcb|[m&1 zoUh+|n1%$!ay Th]]9 PB IAUF & W?Fq<9?F-?FP덋?P t`  q -?tv3m\ls,Zu Mauo8>  ]  PEJ]_DRb(?&. ?Az@bY(ne 6 h )b k+ ?Z'e 88?z6e Ae [+ h g/y//$# L:5, /sUK1*ar4 9] 2(#{8 #t8'tϥ:Ua L218K;6?@EK.; tͺ>B4AA0`?CopyrigTt c)@2`09@M@c@os@fBAr@Aa@i@n.@ 0lP HsRe@e@v/PdP2hX<M#l # MP? <>Uh$@QQ]AAQ1 LZ3˟ZkP 7]jbb;'ߨ7a 6{fM8cUF*r|p蠼F?F}`oO 0dTc ?I\addǼbjokgaz>eE(aFr+}G?FC_=m?FS҄xo`Oi^jvϾat0sK`+tkĀ9t!KU:M} -'sLl}]|]r9xLuf.Lp?F4gHvodObdcZgt_=,V#|..7 ;vLuN?Fbݲt{?FNch|[m&1 zoUh+#|n1%*!ayTh]]9 PB IAUFt5?FYz?F-?FP덋?P t`  @"?tgQ,n\ls,Zu Mauo8dAd  ]  PEJ]_DRb(?&. ?Az@bY(ne 6 h )b k+ ?Z'e 88?z6e Ae [+ h g/y//$# L:5, /sUK1*ar4 9] 2(#{t #tN8tϥ: Ua BL218KE;6?@EK]; tͺ>B 4AA0`?CopyrwigTt c)@2`09@M@c@o%s@fBAr@Aua@i@n.@U 0lP HsRUe@e@v/PdP 2h<M#l# MTP? <>Uh$QQ]AQ1 LZ3?ZkP 7jbb;'ߨL7da 6{fM8(a?#FT ?F1uRؑ`oO 0j?rdcd bj]ea }eEef?+}G?F~xW m?Fxo`Oivddlva~ttqE`%t:܃3t!KU:G} -'sLl}]|]r3xn2M#p?FcGpooZgt9L|8 5veN?Fl"Ry?F-#Fkb|[m&1 z'ǵ(|F$0$!ayTh]]9 Q BUFa)DbXX +Xۙ ^MVBu auo7>JTA0f88v?WYϳAjLv@z bbb!' 6Y % )! ! ,+ <?' o?z #a47% @& J"#K#({% (+ (G t#Beı?A>L ?A"&"&$/*8%,"t:"t>  A A6 `?CopyrigTt _(c)D@2`W09D@M<@c:@os4@fBB3Ar6@oAaB@i4@n}.D@ Al@U :HsBeb@e:@v@d@2h/1<M#l#@7? M@?(>Uh7E P+AA!{ L:FQ덋<6j% bRzg9<2 "\ ZWdS ?mT W5U5k0YaY?vq 2HD: )&# T=h0>Th]]9 Q BUFq \?F8˻?F \?FB2T|`I?P Bt`  4fտݛ?t.QW+Xۙ]MVBu acuo7hAJTA0f88v?WYϳAjLv@z bbb!' 6Y % )! ! ,+ <?' o?z #a47% =) J"#K#({% (+ (G t#Beı?A>L ?A"&"&$/*8%,"t:"t>  A A6 `?CopyrigTt _(c)D@2`W09D@M<@c:@os4@fBB3Ar6@oAaB@i4@n}.D@ Al@U :HsBeb@e:@v@d@2h/1<M#l#@7? M@?(>Uh7E P+AA!{ L:FP덋<6j% bRzg9<2 "\ ZWdS ?mT W5U4k0YaY?vq 2HD: )&# T=h0>Th]]9 Q BUF&?F 77 \?FB2T|`I?P Bt`  \vJTA0f88v?WYALv@z bbb!'n 6 % )! ! ,+ <?' o?z #a47% =) J""#K#{% (+ ( tQ#Bı?A> ?A"&"$&$/*%,"t:"t> A A6 `?CopyrigTt (c)D@2`09D@M<@c:@o%s4@fBB3Ar6@oAuaB@i4@n.D@_ Al@ :HUsBeb@e:@v@-d@2`h/1<M#l1#7? PM@?(>Uh7E +AA!{ L:F|po蠼6j% bT  ü2 "\ ZWdS mT W5U4k0YaYvq 2HD: )&# T=h0>Th]]9 Q BUFR ?FB?F&?FB2T|`I?P Bt`  U'?tǡ P]MVBu acuo7AJTA0f88v?WYϳAjLv@z bbb!' 6Y % )! ! ,+ <?' o?z #a47% =) J"#K#({% (+ (G t#Beı?A>L ?A"&"&$/*8%,"t:"t>  A A6 `?CopyrigTt _(c)D@2`W09D@M<@c:@os4@fBB3Ar6@oAaB@i4@n}.D@ Al@U :HsBeb@e:@v@d@2h/1<M#l#@7? M@?(>Uh7E P+AA!{ L:FP덋<6j% bRzg9<2 "\D ZWdS ?2NoT W5U4k0YaY?vq 2UHT5D B &# T>h0JTtiiM ENUF =?F>?FumK?F_u?P WNtQ` Kl7?tUo>TX*F(бoNuj mu){E0f88wv?AVQ Ӎ!@#b#m@b  0#  #W(3 (o+&T" #t#NĽ/?. ?M"&$a%$$,/>*L%i,T"tΞ*T"tR.R11#`?Copyrig`t (c)02l090M0c0os0f21r01a0i0n.0 Al@ 8sBe0e0v0@d@"Vt!X#xB #/ @T,UtE1UA-!@:2T|`I pvm?S׮(%U;jX[5G@Y9"S\FkV5%U#ɯ7ܾ=\WQS\O?XbiTQY%_7_I_[_DQOOOO__Ԫ?FH փBl[{Xl?G漫i_)fV u``9`-YBlO N}0,*x]@$?F>BlǏXlwg%ooo EU}ooooooM5#?F߳Y`;Blr*XlYmC*)fWBǽ?F#nZBl>^̔ԍ?f Q́)f?aD%?F qwJBlIY:6XlIb ʏ܏EABTfxF) \Ck?-q_Wa1Cv(Ԅ~Bl!H,BXQnB)fF01DBoT[inJ\ۙgyAHD: )&# T=h0>Th]]9 Q BUFKpJAS`? ?Az@bbb! ( 6 )  '+ ߈?/I-Z#mg!z A " ././@/R+,g/y'sU1,ar4 )] "#{t #BtNg8tu:Ba PL^2!X8;d;Q6X?E;d; t͊>8lAlA `?CopyrigTt (c)@2`09@M@c@o%s@fBAr@Aua@i@n.@U 0l@ HsBUe@e@v@d@ 2h<M#l# MT@?4>UhQQA(VQ^1| LZFg 7j b2ɶGOR] 6SCfMB:1ۑdc $I$I܍+d 2aa]EmeL.la'iL?.]eU@5/LN?FOOka,dHޓgmeoo(oh2gyu3rA 34s2HD: )&# T=h0>Th]]9 Q BUFܛ?FYQt?F#P3?F f7?P Bt`  _?t+%`' VBu auo7>JAS`? ?Az@bbb! ( 6 )  '+ ߈?/I-Z#mg!z A " ././@/R+,g/y'sU1,ar4 )] "#{t #BtNg8tu:Ba PL^2!X8;d;Q6X?E;d; t͊>8lAlA `?CopyrigTt (c)@2`09@M@c@o%s@fBAr@Aua@i@n.@U 0l@ HsBUe@e@v@d@ 2h<M#l# MT@?4>UhQQA(VQ^1| LZFg 7j b2ɶO] 6CfMB:1ۑdc $I$I܍+d 2aa]Eme^L.la'i.]eU@-7/LN?F$_fq.Th]]9 Q BUFn?F_S?Fi$?Fo2ͯS3»?P Bt`  -1{?t8b ?VBu auo7>JAUVJp? ?Awz@bbb! ( " '+ ' qq?z A 9 +/.&68))E! '+ g?W-sU"!n*a4 8) "u#{ u#D!t?8tM:Bav L62?!08;<;60?5u;<; tb>){8DADA1 `?CopyrigTt (c){@]2`09{@Ms@]cq@osk@fyBRjArm@Aay@ik@Wn.{@ 0l@U qHsBe@eq@v@d@n2h<M#l#A M@? Uh,cQcQ] '1bA.Q61b L`?g{Op dj? |m cuۡ'1 6!1fM{":F7Q덋<6d kS=ѣ<n2{!5E[nc^ vogaKeE[eV_@cbc g@]N4o r\Dž}iNuPna?FTPf|]tElF<2hQp_m痪 |"*hQiyl:qid5hQJ_noDhU23rAg 4n2HD: )&# T=h0>Th]]9 Q BUFD7n?FWw?Fi$?Fo2ͯS3»?P Bt`  ;#p!5?tR?9E ?VBu auo7>JAUVJp? ?Awz@bbb! ( " '+ ' qq?z A 9 +/.&68))E! '+ g?W-sU"!n*a4 8) "u#{ u#D!t?8tM:Bav L62?!08;<;60?5u;<; tb>){8DADA1 `?CopyrigTt (c){@]2`09{@Ms@]cq@osk@fyBRjArm@Aay@ik@Wn.{@ 0l@U qHsBe@eq@v@d@n2h<M#l#A M@? Uh,cQcQ] '1bA.Q61b L`?g{Op dj? |m cuۡ'1 6!1fM{":F7Q덋<6d kS=ѣ<n2{!5E[nc^ vogaKeE[eV_@cbc g@]N4o r\Dž}iNuPna?FTPf|]tElF<2hQp_m痪 |"*hQiyl:qid5hQJ_noDhU23rAg 4n2HD: )&# T=h0>Th]]9 Q BUF}h!?F0,?FTZLP?F Qû?P Bt`   Mǿ?t `,1fǰvz;ZBu ,dcuo7oAJAa^!? ?Az@bbb! ( 6 )  '+ g~X?I-Z#!g!z UA " ,/,/>/P-[+g/y'U1Ȋ,a4 u) "!#{ #Bt9g8tu:Ba BL^2!X8;Ed;6X?E;]d; t͊> 8lAlA `?CopyrigTt _(c)@2`W09@M@c@os@fBArԕ@Aa@i@nU.@ 0l@ HUsBe@e@v@-d@2h<M#bl#P M@?8>UhoQQ]AVQ^1| L@%fq.?F?c^ dj ٨la6ztB:'3S3 7d /kyԷ&Dh]EWe?g~kp+ɉ 5d}bGeUWeFTol0juMDhn1ۑ0j`Dhn.R덋<o+o"Th]]9 Q BUF}?Fb-P?FTZLP?F Qû?P Bt`  R딿i?tT`,1fǰvz;ZVBu auo7!>JAa?^? ?Az@bbb! ( 6 )  '+ g~X?I-Z#!g!z UA " ,/,/>/P-[+g/y'U1Ȋ,a4 u) "!#{ #Bt9g8tu:Ba BL^2!X8;Ed;6X?E;]d; t͊> 8lAlA `?CopyrigTt _(c)@2`W09@M@c@os@fBArԕ@Aa@i@nU.@ 0l@ HUsBe@e@v@-d@2h<M#bl#P M@?8>UhoQQ]AVQ^1| L@%fq.?F?c^ dj ٨la6ztB:'3S3 7d /kyԷ&Dh]EWe?g~kp+ɉ 5d}bGeUWeFTol0juMDhn1ۑ0j`Dhf e9o-ai qGeUoo$o6o3UHLD )&# R>h 0JTlaaM>UF .?F@=~9?F î>?FesY?P >tA`  A,:?t _VČ= W:`>u eu!s7"JJ0U?HA9 @tt7 b2:*H&tH  th*N) ?MB"b";)H&e8H  3 H -US4oTZLP?FK+0j6֏@!QpoĬ?> گ ݷeo?gց́ F?i?;0~1G}}϶iM@mp?#nC%fq.?F)Ouy\l2_+ʦmx~E}@p5"iQ덋Рoe*al|ٍşןHD: )&# ;h0>Th]]9 PB IAUF>'?FЖ''?F {J?F%?P t`  V k?t˟R{ Li@Zu Mauo8#>    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 ,p )l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ s"?(a40 9 .*2!#{0:#t8'tϻ:Ua L2$18K;F?VEK.; t>B4AA0`?CopyrigTt (c)@2`09@M@c@oKs@fBAr@Qa@i@n.@ @l/P Hs3RePe@vEPd'P2hb<M#l1# M/P?]UhzAQ1 L@3F l?FƟ qP dj|aW{ޓ8cUFwW?F0ev"?F%Ti ?FGUoO 0Yifull4ajT?N~f0ci+ fEeC.kn?FtdFِ?Fd?F#l/Оol}dQ3ll BXl귺m|؇bBhaUeAvؼgԵ`r4g?FÇ?Fϓ|vflPIϮ3qoijeðl4` |7T?heFnFc^?F]`h leowkyyftGg˂a,8b1;MHD: )&# ;h0>Th]]9 PB IAUF>'?FtQ>c?F {J?F%?P t`  V k?t^i{ Li@Zu Mauo8$>    PEJƱZVJp!?&. ?Az@b_bbe!Y(݉e 6 ,p )l l w+ g?Z-#U!׷!ze Ae [+j/|//-g#+ s"?(a40 9 .*2!#{0:#t8'tϻ:Ua L2$18K;F?VEK.; t>B4AA0`?CopyrigTt (c)@2`09@M@c@oKs@fBAr@Qa@i@n.@ @l/P Hs3RePe@vEPd'P2hb<M#l1# M/P?]UhzAQ1 L@3F l?FƟ qP dj|a{ޓ8cUFwW?F0ev"?F{%Ti ?FGUoO 0Yifull4ajM?N~f0c+ fEeC.kn?FtdFِ?FBd?F#l/Оol}dQ3ll BXlF귺m|bBhaUeAvؼgԵ`弄r4g]pÇ?F*|vflPI3qoiGkeðl2` |HT?heFnFc^?F`h leowkyftGg˂a,8b1;MHD: )&# T=h0>Th]]9 Q BUF\.?FW?Fb_-2;w?P Bt`  t0zեK~LQGVBu auo7%>J0U?R<AL@tt7P }b6*D&tD  tTd*Bı) ?\A>"b7)D&a4D  3 rD 8/td/ty. x1x1`?CopyrigTt _(c)02`W090M0c0os0f21rԡ01a0i0n}.0 Al0U 8s2e0e0v @d0"h!<M#l#/Ml> @?UhLAA] 1 1"71bAV>!J`Ƭ! Jdjbq:z׍i Q 6VMB@˿acP\`_m;E,Ui5U 5l?FQ[dg[VU'EU˖7s?F'YE]fdg[pdѣSYUfe3_GN]݅om{ZcXUFBGP\g[)J`UAp3C#5 IXAYT ?F_jy}tg[3$sXApsf ElX1Yfy?FPP\pg[!XAYw 䘷?F~_uO]{DŽ~g[&SAY-]?Fr]0P\g[ip~ X1#"5j-? XAY ' ?F@G_|P\̔g[?P=RwX'RX__/?Fv㗂P\#g[?pډlX7UB7Ժ ?vQ[Ezg[wU|QY1GN~V7;P\4Ѥl"MX U29_KU#rA0$@CHDJ  # =h4>T#]A B#BUFF?F|ل?F?F_U[?PBt`  t} :?tӕ##L xZZBu eu!s7[&>V Jߵ?0 ?Ab "z@A $)55 l H#b"#]! #BtΜz(tψ*Bh<M#h B`"ݵ0qql?E LUL1;?k(by$<$@7F/X(a4j$"'6k/5;w+ tE͝.%p! A A`?CopyrigTt (c])C@20O@9C@uM;@c9@os3@IfAB2Ar5@nAaA@i3@n.C@ WAl@ 9HsBUea@e9@v@d@b$JM@?0>Uh#5= ! 5*A3QA]!J!FEÍ hng[GʑB  6SVMB@j]9_^fU3QY>h_"[} [U%7nPobogU 52j_|Uq"ErA Z3s#HDJ # =h4>T ZA B|qAUFi$z?Ff,?F.@?FCCZYݥ?PBt`  zԜ?tƿSᆟ J kBu5 eu!sL'>D jJBU C"?0Z& ?Ab"z@A $ʎ)55 l #b "#! #BtΜ(t:Bh<M#h=# B`!2=#0qqlZ#Q LU1?@(!*7/(*"6/(E1K.+ t>Q5h1AA`?CopyrigTt (c)@20@9@M@c@oKs@fBAr@Aa@i@n.@ AlP HsRe@e@vRPd@v4&=#JMP?0>UhO3uE= !5AQ?Q!Jt1EÍT| hne887  6.fMB^;>?F>,Se?F1Ez ?P~-< kߎ:\zzl knJz۰fL:i 54a}:?  `? D"H$?n:a@Bowr @H'c(T@TFnXJ\kǓ1HeY5XevTݤ?Fc. ?Pfz`_vNST#]DA B#BUFik?F?Fa'D~?F?PBt`  ;#?t_Q$_[G ¾ Bu eu!s7(> Jߵa? ?Ab "z@A $)55 ml H#/b"#]! #Bt9z(tψ*Bh<M;#hu BI`"ݵ0qql? jLUL1w?k(by$<$7F/X(a4j$"'6k/5;w+ t͝.%! A A`?CopyrigTt (c)C@20O@9C@M;@c9@os3@fAB2Ar5@nAaA@i3@n.C@ Al@ 9HsBea@e9@v@dԁ@$&@JM@?0>Uh#5= !@*A3QA]!J!F? hngZ/S/E@M 6VMB@j]9_]gU3QY!w_"[87U%7n PobogU 52j_|Uq"rA Z3s#HD # =h#4>T ZA B|5AUF;|jd?FQn?F&TXdJ?F2gݸ?PBt`  ؽ?tѿ벏9   kWBu5 eu!s.)>D  JBU;"?& ?AbI"z@AU J$R)55J l #beX"X#!J :X#Bt('t*Bhb<M#h#. B`"酑#0qql?!QY LU1?(b$x$7/(4$"c6/5u;+ t.5,1HAHA`?CopyrigTt (c)@W20@9@Mw@]cu@oso@f}BRnArq@Aa}@io@n.@ AUl@ uHsBe@eu@v@d@:4&#YJM(@?0>Uh39E= !fAhoQQ!J81l?F9hnyye7@6SMB@TH0pp0@ Y9%[Zaz eoQioe[:4ևzZIa e5eF/14oTi&qQB8^FqcG?FBP?P :Y@ "rA :03fsgn^KDelr:i n0SpȨ? P( ? UVj?na@Bw-rx @SHD # =h4>TZDA B|qAUFG_?FMOff?Fl?F5Gú?PWBt`  #HEw?t[J |B gzRBuj eu!sL*> @JBU C"a?Z& ?Ab"z@A $)55 ml #/b "#! #Bt9(t:Bh<M;#hu=# BI`!2=#0qqlZ# LU1?(!*7/(D*"6/(E1K]+ t>Q5h1AA`?CopyrigTt (c)@2U0@9@M@c@os@fBArԭ@Aa@i@n}.@ AlPU HsRe@e@vPd@v4&=#JMP? 0>UhO3uE= !AQ?Q!Jt1| hne]Lg137 M 6.fMBFwݡ?F1?P1/`( KP\kEen8Kΰem:i 9`/]R? i4F? +?r?na@BoZwr @'c(T@T>.)qB?F48t\B"SOxlM_HeY5XeV`f΂7?Fwڽ胔?Pw>&T{¿ ?'srmooeN lnD\YgLE~]Z?)tTwd~&'q52_U"r"A v036w3HD # =h 4>TZ Ay IAUF3d?FM?FXxA?F4J^z?PQd93@>WBt`  M|Vt7?t# | .B9jHߜ? Vu*Z?3bLKj"k^Bue u!$+>   JBUB43f"<?2&P?Ab]$z@Ai b3bbff)55b ml #/b"l"l#! l#Bt9(t*񩧉#K B`"#0qq\2#m LU.m1?(&$H7/(*"H6Ի/5;+ t.yh<M#h %1\A\A`?CopyrigTt (c)@2U0@9@M@c@os@fBArԅ@Aa@i@n}.@ Al@U HsBe@e@v@d@4&#mJM@?UhMEI;nIzA#Q!J#6F>x@=&}?F&`?F5zT MST2N`R uܡgrf'QHDJ  # =h4>T#ZA B| AUFn?FZF?FXt?F5Gݮ?PBt`  g?t80ɹ gzkRBu5 eu!sn,>U !JBU;('? ?Ab!"z@A- " 0#e55" # Q#6!b>#0(<&Bst(tϑ*"Bh<vM#h B`"0qqEl1 LUU1?0/B'7O/a/s$"06t/`5;.+ tͦ.%!AA`?CopyrigTt (c)L@20X@9L@MD@cB@oKs<@fJB;Ar>@wAaJ@i<@n.L@ Al@ BHsBej@eB@vR@d@4&&JM@?!Uh!@!9 | 3AAc1J18$FF?F˨O hn؂-؂e/tӉ7R6MB@T21uG*\\VU5"QXޒI9YSD|a\Bg%UF?htR\gYl(Ah5UNl?F[ ݴ\*aUEU-?Fۻ\P-\Kp}AhU+;>?F! ɬ\q\g:,AhU>זtY?FUCZY\/\iCy 5AhTQY{'?FAuJ\l\jGוAdUX_SFКi?CF%ds 0c2rAb4:gn0 L;jHD # =h 8>T ZUy AUFEM&,?FX?FEtT?Fy_-{?PBt`  ڹ2Ԇd?t#P.Øz u_>$ |MBu liu%wM-> # ""%"%"%"$%"-JBBU(`Jyɹ#G 4?&6 ?ABbA@L2WbT459 .a0 ]a0UL1R5U8a6Bt 8t϶:#0qql&3V0L U#A?U?g77t??42Q6?.EK; t>h0 1<M#h^@%!QQ`?CopyrigTtk(c)k20UP9kMAPc?PoKs9PfGR8Qr;PtQaGPi9Pn.k AlP ?XsRegPe?PvRPdP$&$A/#ZMP?0>UhCaa9 #0Q#!L1J!9t?F9lrif7&6&MBCʯ?F{@a?F"[?PM Q ƲOH0i!lѹ3BDirT:i1%u51:m gOp? 0dq? ##Y?r4-ABhwr>#j0@cC(e#iJ"tS?FowO8?F*&خ?P ݿ Z _l!}keaɨ4i2{VtS7Sd|#- cq}tkwK>tɏw\#~eiF'2L?F靕I?FfʶݲDb tS!}gi(@Pzpzd|;٧VzwYiY"}a؏twz#~eAewnF][ߚ~`l<5C)` [-TH0L3rA0DģRaTvd|Hzwpg-JPU4 s!w#~'HD: ) # T=h4>+TZA B|AUFɡo?FD7%?F;+g3P?FPa=!u?PBt`  ~ۿ?tҽJI6 ~&8Bu eu!s.> ! ""!"!"!"P$!" -JBU "?& ?Ab"z@A 0T$955 l 83b 2L 3M1 3Btj8tDx:Bh<M#h#% B`2ݵ#0qNjql# 0jLU51AA`?CopyrigTt (c)3P2U0?P93PM+Pc)Pos#Pf1R"Qr%P^Qa1Pi#Pn}.3P AlyPU )Xs}ReQPe)PvPdqP4&# ZMyP? 0>Uh3E= 5QQM1J1?1!9hn}Ke71R"6MBaf$/ſ Dn/{?PT nN tom2qenלf_E.I:i FDOL?PWC  ?Q 038|!®Ú>O{b 0dw8pYDh[mÏsԟ@wv#~e5mF!u?F+#?Pҿ QC~ra2rbA 0JC:zLYON|n$dw0 kt?>|s w #~'UHPuD R # >hj 4JTb M#5MUFUk ?F[&?F")?F{(%˝ͭ?HNtQ`  y!?tA_?ѭ Σ(|rɛNu mu){.6>/J Q !JNU "?&& f?MbQ"z@QA] !R$Z)5=R t #b 2`"`#!R `#Nt(t* # N`" #0qql&#Qa Q Ua1?@(k!z*7/(*"<6/5;.+ t.pH%# p %1PAPA#`?Copyrig\t (c)@20@9@M@c}@osw@fBvAry@Aa@iw@n.@ Al@ }HsBe*@e}@v@d@45& #aJ(%@0JUp7C5I %nA9  Q!1AuJɤH pv1m˳=7 &6V"N@T3D?F'2L\5eMYSk\QeU$ndG?oQmjf E$eoxolb%2_U"rMen4Js38QQ@_R_d_v___VFBkN\wY{a^ l o}?>h 9rO#,hozf-b?F [4b\#aoܚ;yӏ aꖄ(~Fatk?F@]% a;G!Dx 0Ry@ov{ZmE_K:q ;w c? lZV? Qt:?v:i@B柴 r @S8QA ,sw %]o oofW h2A%mWvbP,?F˴mԠr\ߦ)k\{Xi(vCyRyF"HDJ  # =h 4>TZ y qAUF}!v~?F>!?F7}}?F3 _?u?PBt`  fno?t# W@O림 UBu eut!sL0># |HBU\`J=#G k$?& ?ABbA@"Wb$55 l #!%(&Bt8tI:y=#0qql# LU1?/'7//$ 2QZ6/5;; t'>h0h!<M#h0,%C!nAnA`?CopyrigTt (c)@20@9@M@c.@os@fBAr@Aa@i@n.@ Al@ HsBe@eJ@vPd@Q$ &=#JM@?8>Uhs0E= # Ah#)Q!JO!FU'vC hngQX\A7@6SMB@Trt3ϯ?V[GzaiWR}nwݷ?F6/?FgȝG?F*> ߂?Pqe> d.\SQxlV_gD|enX}el`:i :`Kts` L&d2? )jO?na@B>Pbwr @c(:eFif[θoo $::e4%JeǤ@_"k(\%JeVfY2DAoYnia<5^F}=4?Fm?P 63 J; #rA4 ze<120"yZL8t+T Z >|AUFN~?F8?FOa=!Pt`  Ie%8?t#ŠA |&8/$HMu liu%w1&>   P""%"%"@%"$%"-Jh<M#Nh#u`%Ĺ$?%> ?AbA@S2b[409 h0 ! }3 h0\8h6st 8tϸ:"%!11`?CopyrigTtk(c)k204@9kM @c.@os@f&BAr@SAa&@i@n.k Aln@ HsrBeF@eJ@v@df@$B#0UB-3]0 M2t =tS0=tD7=F?_5;sth0= t> \#-?_MVD?lF_LB#__Bl>x0@?UhL*a*a9 Az1 1!S17!A$!a7J!\;>1?O0lrvoieq7a 6&vMD@dd.H?Fdz3l\xEn;|7xO;R(PtvN?F^Mm?F3?Pfw ? ON1iM|BBy/MirFiiB:~m tu]{qnY? /b.? N&d2?r4^1BЃDVhr>#5^1 rC(@u5Pui?T!k? ph yH5w5u{jN?F_u=p@_?FdAT?PT '&Y}N\J}q y߅Q<ϵhsq(=Sg$>c(ôewϟ៣\#@uEPuM[T?F7glοuҰ|13@uvUPuPt?F߹Zj#mIhq@uPuKĥE2YǾluƔݨPu%bb?Fi$ l޿\+|?p= ףب1ewFB} EzG4uyF-{(%˝?Fr?Fߞ a;}{(\U販%զ;ѼIzϣz#೎@uaLyrt3ϯ?F;lB8|Ԧè1Ly7}}?FqXJlM|szĔx!y߶6u?*BQ?FZ[θ?Ppϐ Bеlj=*he~~|k%zµ;N7#*?6ԉܲy#'DqS1Sp>hlDr}ʨ7+U[CU @u!Lyf ??@VŲoK Ѩe2oeS3rYa0a4QR#iDYaVbT!P5Qih "8XW.'DŗV %!H4q1;  !j^du<"81hT_r!3! Re[>c&kbd1<"8vQU#`a51 HD # =h4>TZDA B|IAUFA>?F+u-?Fe烇?FL"4?PWBt`  wcZw?t4!A׳Yۮ 讚Buj eu!s82>I (@JBU"?2& f?Ab]"z@QAi ^$f)55^ l #b2l"l#!^ l#Bt(t*Bh<M#hS# B`"#0q/ql2#m LU1?(w!*H7/(*"w6Ի/E K+ tE.)5p@1\A\A`?CopyrigTt (c])@20@9@uM@c@os@IfBAr@Aa@i@n.@ WAl@ HsBUe@e@v@d@jN4&#mJM@?0>Uh'3ME= !zAQQ!JL1n@ez?F)hn Q*e7i@ 6f MB]@gS sS _]RfnfYl [aT@~TНJ9 9oi@?qQoa` e150efUFSo!fo^iMeon]nY5_,T "rA N03.O3HD # =h4>TZDA B|qAUFA>?F+u-?FAuJ?F\@̣?PWBt`  wcZw?t4!A׳%f. 5àBuj eu!sL3> @JBU;C"AxQ5h1AA`?CopyrigTt (c)@20@9@M@c.@os@fBAr@Aa@i@n.@ AlP HsRe@eJ@vPd@v4 &=#JMP?0>UhO3uE= !A4Q?Q!Jt1M$;4?F[hnRe7i  6.f MBVhgZK]2 @v&_mfnfh1:i PʬaBv$ /˸? `0?na@aowr" @'c(Ta02"Pggk| ǃodHeY5XeҔu4 /u?Zb&s 3mIܳqfoedm\f9r C:$yTwd~&'q52_U"rA v036w3_HH3s ".6HUK;#4F֝SS.#UY@ `VDexko+دo(?G(؝W۝d(ݝiޝcmoXpt~y(}HG~hO6 xI8l4߶x薚;D]òBE~(J']K&qh)#'OߜHr8NK5'~'Xn5'WxD \H袿e #;1UFD  h>$T 6D UuI@@?k??)3P  B B*J*AȅHy\?br  0E`Bainstom,leg nd ic n LH(i^( K%X_'0U"-!0cBeO/a/ AG M  ڭUO)UU)UʪUUW}w | _x ?1?󅈂 ??8??Xb?8?=?LDrag thuesapWonodwipe.bu*B?^+?4l)!y]贁Nk??l_uzkUGD" # h8^T (YY#UPU@?@@u*B?@^+?4l?P} ] Y X   u`h?UVY g# $V. _ _u#`bA@$Ct?.n.tY$.?U"`lgnd` _/cm@ =H$M1y#i%~R#!$"+W!`Vis_SM D2 cPm!#50\06`?Copyr gPtg(H )g2 09gM c:0o of2!r0;1a0i0n2 gAlV0 8sZ2e e0vl0d2" "-X)|# '!  3Bd!%$} i$=r$&# D66 $Z##0U_B3)7gdaOC ]KTD"Di",D3112(jCh?!KrAh? 8/Ubo #1/U!-i"Qi%9_&PtSAftQ@tRT "Q3eQ^"Q,5[,@WnsFOz)IC "(C%!h h%-06`!&> f2uj2 Ll0gl0?#.Q9/K)2X*iXQa5 =|'Lw'2rq6J!a LvZ%RbY "vseaa7m5C #HR%^ii%^i3^.i5^$iE^YiHDB # 3hj8>T! ]]9 JAU@@\+?4d?@u*B?@^P6 $JA u`bCAJ "u#`b5(.tA` t^ft/]7uL0..7>U2N?贁Nk?<.A3T7 "+&<oa){bA-3Q&!,5 JuJ\q +?'"'?\.?l8/: hP50@=Bd1d15 `?CopyrigTtk(c)k2009kM0c0os0f21r01a0i0n.k Al0 8s2e0e0v0d0-,/p3 p7> &2/4q6fDAFAF =BA/b$m# "!n"3=%l K!Z$b/ghe_y'Rɭ TA,RTCTl@ d1"0Ab&59 =9Q$W_'2r"AFX!=A0 V#LlJ aUh]E@C1#! ! T9!Jpb]e (bx(4do_nu3!~:iHqu&5!uosE2o;CrA D##8!eN0 0ymb0l2ex0sT21 0h0 0a0t[dspj0a0.`UHLD # J#h8/T >M U@@^+?4l?@u*B?@؟[?P. VJ# 0  A>uA`mbAjJ+x&x: N   ^u#`b k>te it<> 3.?"?AT@m>u`&d.W&2N贁GNk?ABa"im"+I&>#Dհg0# 9 ?^bbboz/3%"apoJT##J!#"2JN\$q0?727#?\.? pn)OBl_@%#B #AA; "`?CopyrigXto(c])o20@9ouM@c@os@IfBAr@Aa@i@n.o WAl P HsRUe@e@v!PdP#z"!-?C G6Qg@li_'>T,T"l("Tp@A"@?fQ gIXFWg/'0U^b6,1.10 f%"lJaUl~ A#1!(T#g1d2LuD 8jr"(xܯ)T?@ >20Aw »k F?rUs SSJ޾p8&t8B" ?@(mZ3X?@d*\5 +"?ywiմ|.\us8=us~Up ae i?=n.5tqQ:u=Pu{@_pPyvPEufvS.A @{3?@=m?@yj5#R>NtHOPgChNm{j{a{B4&t6P}u2&eS]ra #*z"aeSb@ PEoo t?ꟃz@Яx&3-?QɯQMLiL!Pg!Pn-P PHD: # T h8> T ]]9 # Bz1AU@@@?@u*B?@$nWs?#P6  >m u[`bKAaK    N Nu#`b+th% )'tr w]v-]-uL&$.->2N?贁Nk?<T)-J*"0+0&z#E;?#) ?A(Ӏ9,3a+lavvA.\$q"0?!7#227?\.?l.^?:WɄ!#5 Jh0@=T#115 `?CopyrigTtk(c)k20>@9kM*@c(@oKs"@f0B!Ar$@]Aa0@i"@n.k Alx@ (Hs|BeP@e(@vZ@dp@BY-?C G&$A2i b5(9 9XGW_'2r"2&X1!0 V'jO_{G/V!%3bjWkVDaWQ^>o9k__5%",@@heo]' TA,tl*"Tl@1rclkQUhm5KA#Z1*!T#X91$rqu   (8r\(4ts~ 34yB 5D M2;!srA 8#J8*bL@g@n@ SuiAtx@epHDB ##3hj8>T! ]]9 Js#U@@ ?@Uq?@$ns?#P6 mBJ >b]  k 3u`bCA$*J Fu3`bSJuthMQ5t] tU*uLNdp-U2L.W>7U5 2@ '\C#2q ?ʗ'"':#?\.?lV/:2J$N贏Nk?<h"QU-23;36<a)!b#rQt6.%)C#O(A439 ! T! ]]9 J0#U@Uq?@ ?@iFc?@$ns?@@#P6 a >]  u`mbCAJ <u3`bItC 4l5thPl]l \K<uLD#-MBI.M>7uU5 @J '重\#2ǭqU ?T'V"e'?\.W?lLP/: JN$N贁Nk?H<^GK"+&<ސa)bٖG16K#  (j4#~9 w!/lM3"!N235l2l:4B?&1Bhg1@@=/T#MAMA5 `?CopyrigTtk(c)k20@9kM|@cz@oKst@fBsArv@Aa@it@n.k Al@ zHsBe@ez@vZ@d@X-YC YG6:&Fi3b[5(9 &IgWSW_'2rU"6Z!40 SV<WKhe oKT,@dMdE"43Tl@MA @ ZdE%ikSlJQUhm>ECkAi!!4S9QBPgEqB(u/iHZt3i~yqYu[5~A{E{#TvX8esAu@t `HDB ##3hj8>T! ]]9 J"#U@UQ?@Ŀ ?7?@$ns?@@#P6 $J > mu`bC[AJ (u3`b*5t/ hi J75tTX]X 7(uL0*#-9..9>7U5 v.@J \2[qG ?F'H"W'?\.?l8/:vJ@$N贁Nk?<JP37"+&<au)b-3#6\4#p9 i!/X?3"!@235l X,44?1B@hY1@@=/?A?A5 `?Copy_rigTtk(c)k2U0@9kMn@cl@osf@ftBeArh@Aat@if@n}.k Al@U lHsBe@el@v@d@KC KG$s6Fi bM5(9 IgGEW_'2rG"s6Z!40 EV© B EUFDfP h>$KT 6D UA@ ?-I?3MP?% ȅH?BT ?2~t  03]`)disk,torageSLIT,flwcPat,(e^ 3%B ;o(7/I/f2u` F. `" ?&&b TJ /?|wxpf6lbx{s'pwwpl } wwLDrag thuesapWonodwipe.UH PD  (H# Uh -MPA&A AnQrQ  sQM B>B}diiMJN:!@XH`#pr~" %Nrdb#$u=P`N#"WL>$#3184+1N`Vis_S`0DL.c\m!#50346"`?Copy ig\t (j0)02v0090MZ0c: o\0of21r01a0i0nh0 0Al0 8s2e\0e v"0dh00-7 R30ER-)#?3 M?7?&/ & !ԩ=#@13 $BkFkFS)$##2N贁Nk?QIJ&QGlJ0AUppES19 !JB (w*- :"P!$bS",'Ai hiM  "ԟ (W]Z]a_*t@cP cn"!8*\e/S&@Ysg$" f$  )%c}}Uv U?a`3m_|"c2aU_s ?ovbFs}}2,ucrxsHQtXTE9 $5I _C_Spjc +gMEa%{}B\cxv (w%t%<g*hd>M!Pm`wYM#XJ&[f$@[dEfH'S#},b"41B(gǖhUw bf Д_DUUXj|J3P QX% f"%m  `b/"x,ȶ=q#mEPew_fm8J&J&@2MbS-f#%AOrlt%V/{܁/%TR$5 qmPpm+N%TA""11$2 (X;135Ѭ  J B`1s00(B`/R2%kA.Q7*QCDu:\$5sb8S"W` R2oc2DQw %AQAA" (k7?0ASW` %`&2p21vbb 5 !:#DCNg6d=O EAEA$2!8,@B"iNXG'2qkFu!Ŀ0AB57Omb?ؿ贁N8i6??54 _(H_Nf;s s)EF8l6JB#7@=xK? X;LL?w|w{vwpwOwp ߃w pwwwww~wppwp|wp %,:}vLDrag thuesapWonodwipe.b~߿?)j?xk:3?@ ?DUGDF P# h @T(PYY*# UF~K? P} t. ! :ATAhu` ?j"6@@TThh|u# ^",':U? ?4b {[`:O!#"&#'"hQHS)# h!/L!$@" "#' @>>ÿ@qZl0a5?k4a6p Tr&232u0`-!|2u@ "23|12" 9uv `u`"[ۢ b!]u`JS$A"J%)S#Am!m'1`Vis_PRXYcPm!#5nP08B2`?CopWyr@gPt (@) 2 P0U9 M@c%Po@'of-RQr!PZQUa-PiPn WAluP %XsyRUe@e%PvPdBm!J# dV$J%T!B=S(n! J#bx&x& t"3#S#0UWbx#]:W,A^a`N0STgdaoC _c }a}e"!"+@t3hhB )ZtB*gtA"aa G(3T Q J"q%X!`aSl"!6u\%7Ř!O!%["0@Bq35c_J$s&F3s͵NSYFuE{|E{|E{.|U1w;,@A SUro%}h `J"G(paefefs_<%||-p 1CUG(Arb6AKR8A2;6>]q`RP^Qs@fU TPx-PP2"! 0<X@5b ??"5"?br# BmߟE}Cq`#PuJ"]u"Tju3G(fcAuK ]00` SPa*!PeWPlbsQOc+` QnkPe@fQv̢yU%q P]]A6 :T#P@P2` Yc.ĢtucPlp3Zϗ,Ob` MSbPC#DcRqBi!a]X\S''Vdx&!pE0*o سcTD m HQJ%] h%]Th3]hhUHLuD" # ;3h , T  JEUF~?FfQuܽ?P NA  #. A  FV= *oBoVm>uA` /?y $8P`fxu#>b<"W!F&Sྻupt bF{#t=!&>U2zGz?@9 #>&?A@}" (b);,6" !$i>#[2#"r6p 92"b);'"5<"V5?N#AA#`?CopyrigXt (c])=@20I@9=@uM5@c3@os-@If;B,Ar/@hAa;@i-@n.=@ WAl@ 3HsBUe[@e3@v@d{@+"BM#C Gr6"L!3'L"tu"Ei fE %T1XG,W/'0UuRr650 ,V@Zl >(fUlL!@,Y %#A!(! Pprǹ\0Q# ?aGZa# QI8p;94?V?F?_YC!X?P*G0i jOpDl~Yma:Ze~MzYf<#(Wu: wd d 2v<"#41BeB7" t2Dwr$5@5wa3eL 9aImAaFNaaGNbZXoHh{VXn&[|mciynoRZbz8mG)cuTfw8xQ#8W@_C _o#n~smSɿ>F |r}W'`TEkpf>[ktT I% s"MqP SLxNrFH$DҔ0L)_\j(\ҞE\8bF3Ɍ|6ՕEkDZ8TWoiH&7toQcuǿٿw`Ǭޥ:ҡX:jw_o,,o>oPoEЕHD: # h4>T]]9 M !AUFnzjp?FU8<\?F?FoowǙD?]P6 $]A  mJuM` ?l? $u.Jt+  E:n]qte\gIqzq-0m7>JU2zGz?@MJA@b1#z' %#b?(bM)RZ+Z&J!!5 `?CopyrigTt (c) 20 9 M c os f"!r !a i n. Al0 (s2e e v+0d 0!E$[;?6L ?AE$\/}%-# '6? FiiePd59 FX#G'0UBŊ640 UFiJl&>Uh3 GM!Z1E!FϗjN>F-nTdܬV)iJZQVc qQHD: # h4>T]]9 M kAUF~?F˿r\?P6 mL>" ($JuM` ?AggL2DuVJ1tS tQ_uJb%_>-JU=!=!5 `?CopyrigTt(wc)20 9Ml cj o%sd fr"c!rf !uar id n._ Al j(Us"e ej v d %"6#T:$.#B[7#J! w2?/6 ?Ab A;@U2b]4-7#I# eI'/6.%7#2zG_z?=@ M-#J6^3Lj0 Cz`0^8 ^8j6dUh$ ]7T ]([!1 +(aJRj0ER"J:]SnQ7Ir5o5Q5U`oUzo;iU_S<U Pb#iaGc=cUeJ>H:a'Tt?PXX~|k/?lej> yrL&s ; _1t8~^~FutFXqxHD: # h4>T]]9 M kAUF~?F[8?F?K?P6 L6>M (m$JuM{` ?Agg2DuVJtS tH_Jb5_>JU=!=!5 `?CopyrigTt(c)20 9Ml cj osd fr"c!rf !ar id n. Al j(s"e ej v d %"6#:$.#B[7#J!7?/6 ?A A@U2b$]4-7#I# I'/6.%it7#2U2?2@MB-#J6^8Z<j6d<Bj::6iie{59 6jXSG2^'03/6Z!J40 FJlJ8>UhW Q Q [!A+(1.#ptn\Q0LR_7 W_L)E#$J kp>F|QFg[h'`T?PXX*G0i jOp\^">[O13SLR/Ɯ ""a A8l &Ra@lb<oor5o5B:TFH$DQ0mbSj0[K0HRX{5U\QuFə96oXDZ8TZ^DwWi^mi4q}doonFdal5 uueJuqrSWWqU PjrᇰYaG,H?_s  @FrշFȳSc#P' _U? C)V<>a81( DoD+XFo>?G7o-PH\/a*< dLeh]UFD  h(^TYYB UFjZ?F~??x<F BPG(?P } X ]B66]  TTUTTT)9T9ȅHBU??:& ?B@L&d2?J-[(\.Ym(K.sU!&/")!>%:  0 %wB`6conte 2,ma 0ag$0m$6s$0rvD2,1mpsu"2M1diB0]tF0ibX4d*0Un$0t0oF0k!e^| D(SG& iz ?!3E?? ? DDD wpGGDDtD pqwtDD@pqwqwqqqqpppw%wwwqq`Zwqpwww{w;\Drag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aabjZֿ~??cN׿ mF1?? V↑T*J??@ ?UG DF P# h @T(PYY# [U@jZ?@~??F?Pn} u{` ?Su#>>HX HlHYHH E.iOOQ؍>DDUXXllU*u'T9- &",'tU2J&5q/4 Q?"'4b0{[`:#26Q_9$"3&9"OL1" ^!'t>_@ÿ@qh@?@`B?gDP]F0#Bu)@K`-1Bu@rCC'5GAB2C9u`u `"[ bz!uK`2/3AQy1y7B`?CopyrigP}t0(c)0W20P90MP]cPosPfRRQrPQaPiPun 0Al`U XsbePePv&`d/`VPs_SBNcPm!#5P8#6P7`y1&3dpb4&5=Bh8=/3z6&3d66 2&4#/30U!r3]%ge<^1E  U#"em HqV5tw3t{FEt{t{y {et{k5t !{|tYwmAdaу*IOBT.1:a$:a&20#V2103dadaFB3J1125db6q 7~C|hhE)*^Q_`BCQCQA11=B;8ARrSqea !> b`1AE4FAނ.1+#8dT7`8XQ`]r` MPnuJPaPt%ar6aYQ` E]0u*PpU`e`tee^V5Qn]1PRd M`uU`b¯Ԧ30说! PPr#5GCHhz]3D&bQ e^\޿𿢏AP)aB#`Ҩ75^gyZ% S*biP aϷZeTZLPcX@&ϫk5N`rBDl2`i`g̨)@ߑ !RPoʂѩ|(Z\@ p(KD`ĖSPaPePlP6?ЪX.9` TP7`?>` /aZgSb4I`.3`QΡ@̮ʒ=N•wRka<`q ҨגcM_I` ad2`%c& d nĝs Nx);鑙mDatV/a I rNf󨑙 R `Qa// %;/IM`C~/⯸/+QmU`utP I`/ %N4"?4?q 2t? 2Nv??;EHd2QC]3` W@xڙ%?NV#O05OCr a}OO#ޅO/`M&`mRyOOӧYNp_/_C;!OUc1yQQH[_m_Mqt!Tw foSU@jZ?F~?/v/vUpSp2u8p` s?bup`TaM,{t!Wp5%m-ׁ< 3ofm!Qb8q׏ݥBT!.at!2hAXf@>pý$ bUdq ҹvU֒QrrrvvvrsW"`Ro(l]10 e)Zbb UUbr}@":btbUuP`hoeo1o"4zI}_obI1I2\!b^¸aaaaFѴ_AaYY6P`u$K`bq`ݡ%q`an䑷xh^rݥ5_bv&bЂF3s͵NSYDq\rV!@&!e68E^6*E6ǐGFխZ,@rb40PT}sasavs@YVynv` % P&S.1sa`NEWORKb2H PӰq!RTٰRIӰSIQƑDži|o$ohXAE'0U?!c0 oHD # =hj0>T h]]9  5AU@jZ?F͂T??Fx?SF?P6 jt`  o?tk[>(A Vu aSuo.]&A]  *ԮJU2zGzt?@L#&A@bA#z7 5#1bO(b])j+$j&[ "*(w "?& ?AU$l/%B115 `?CopyrigTt (cu)Q02`09Q0uMI0cG0osA0IfO2@1rC0|1aO0iA0n.Q0 WAl0 G8s2Ueo0eG0v0d0"1E]4MŤ-&3 &7&l>]Uhz811U!J!u6?F+\.>djIIa? >"(EǑ I%K9E 5EU . K ;;5QIWEEEF _KnSA?8@@Bu?FDR> ?Nk"\6`bmMM\j=am {:e P> #? D"? 5-g?j4B7!B{oogr57!ibDAbE9 MuX7_'0U~rN!$a)5 5vIzHD # =hj0>T h]]9  qAU@;?FI5K?@xEL?6ѿP6 t`  bm&Qo?t@@L]WI,#u aiuoL> JU2zGzt;?@L?&A@b}#zs q#1b(b)+$&[9#H",ɺ (wH"?& ?A$ /%9#BV1V15 `?CopyrigTt (cu)02`090uM0c0os}0If2|1r01a0i}0n.0 WAl0 8s2Ue0e0v0d0"O1E]S4MŤ-9#b3 b7&l>]Uhzt1.A!JN!m.%-+0djV1ax߃S(FJ-&?F mO"> ?Nk"L[Majnha_:e P> #? BK=o? n-?j4Bs!B{__Wr5s!D8E6V 6?wj_|_ ^XE.U@z T6?F @' d_mOoT \VyWxRkrVo_bVh*g:n"'UaEjz36>CN>?Bn}]zGvN7V iDAbE9 MX+G'0UJPN!4ae5 MaHD # =hj0>T h]]9  U@jpiH?F^?@$?F]F?P6 t`  !a&ao?t,F=۳=u;u auo>J2zGzwt?@ʐLAw@b#z1b](b!).+I.&[-m(?0& ?A$I0/Q%!!5 `?CopyrigTt (c)02`090M 0c 0os0f21r0@1a0i0n.0 Al[0 8s_2e30e 0vq0dS0T"!E]$M-# %'&l>]Uhz!1!JF% djc~YZ(_N9zOMGE%_EH$SwO"K ңHE ^&_8_WE_OqOHOOi&DAbPE9 MX7'0UUfb>!$a % f1jHD # Uh4>T#]]9 M5AU@jZ?FL|+?@?F({~?P6 JuM` ?u JYt )t7zEA2&L_D?. > >tJU2q K?=@MJ&A@-b9(+bG)T+T&J[#"#a?& ?AH?/`)#115 {`?CopyrigTt (c);020G09;0M30c10os+0f92*1r-0f1ai+0n.;0 Al0 18s2eY0e10v0dy0z"!4B#e-?3 7)& b 0K8>U# ]A]A "1!ъ!PzQ <%OYAJEU . K;;\%W%EF($L[.FX5Eai%?F 6?wL;] W-\TB⤲8?F@&SA?F @ ?Nk"L'`bmMW_Ye[ٯ7 VK=F: [jr ? D"? XZvD?ta@Boogr5;!QEx]SiLO MLGXa~WOTZiAle59 XG"'0Uc&N!$05 .HD # =hj0>T h]]9  IAU@K?FOgVb?FY%?Fwᳬ?PJW?>t`  ^Z?t#ə.E @x?r?/{4܂ G _Z+u u$ >  J JpU?43f<!.&P?b3bbfz@1bAe&bq$d 2zGzt.#@LT"&r(~&i$q)(+}'i"~*#81815 `?Co yrigTt (c)o02`09o0Mg0ce0os_0fm2^1r 1am0i_0n.o0 Al0 e8s2e0ee0v0d0"11E]54M-#D3 %D7.&lUh#7 V1#Ai!J# F/?B1B  VRiAAbE9 MX G{W'0U*R2N!I$a {VZUHPD  # #>h0JTpERI MU@u6?Fjc{g&?@%r`5B?Fm_F:Is?HNtQ`  II?t#]  _ii$!`kNu  iu%wj>M JQ T       "@&&JNU2"?H@Qs#N&A@b(bU)++&RNp}#>H1#19 ?#bbbz| R&/5R}#11`?Co0yrig\t (c)02h090M0c0os0f21r0Aa0i0n.0 Al!@ 8s%Be0e0v7@d@21a4t#-}#3 %746lJ#$JUp5 3 M19 1!q(!FnElrkRt# 8$kcD?@숒@)?FP?P"EkU |1\iOT/irvs}i>`_,of :m ,M ?? S&d2? *b?r4B!B oo1gr #5!>%(EQOOOO__FAc1_C_ D4ևS]_o_yRX+{_,__ #R__ (YQoSo+o=osd {oEeooooooFyUy{* hDVW(I X"c7I!pg bf'iMjSE t%XyG|'0UŢŞN!O4i |UGD # hz0TdYYBU@(%)?Fxg^?@0߯H?Fs7Uݹ?P} t` 87?t#_)TeΦu ]ukv  ̝L&UUU&I&3 U!!`?CopyrigPt _(c) 2\W09 M c os f"!r 1a i n}. Al00U (s42e0e uvF0d(0'HS$#-## 'I?k=#ǒ 2j$B##0U'BM3@&@F0Yk} #HA%DKb5DK3DK5DKED$!GiAZG5(|IDFX7yW'&Dŭ6!4YA yVZHD  # =hj4>T!]]>#AU@0߯H?Fz)e??F˞9q?P6 t`z  ?5t# rXѮu)Nu;):O]ע0 &> # " "+"+"+"+" $+"T-J[U7 ??& bA@ 2b4-#2zGzt#+@ Li68!6 ?}; 72U!:B#AA5 5`?CopyrigTt(c)20F@9M2@c.0@os*@f8B)Ar,@eAa8@i*@n. Al@ 0HsBeX@ej0@v@dx@)21"DM-,;?C G& l>]UhzAE!A#!ְ1J`#@{&pz?FUy{?NT,dKj&b&R&M/8T9K-q?F@F?FdG0 >Nk"?YE*]\LThKjfGD&Qhj ?iU3UGe&Y`?@/Jb)h5oWKoWo;èKod}l$ro`nE2K?Fˌ%4G{?F -q? eZR^{|\?6?vodmP}l>MBe 9 N 1iS? 1?grl#51:PO"4ga@Sq(UE^@O|ǐ[`ߡa v2rbA @3ijD&}laqOz o?#WHZ'Qu=*[^N?F]%P?@O&@ c?FаM<n ?` eb0)\(Pfodm}nv}l?V5(?q$Ix[cN#W{ #iA@&QeE9 MX''0UjdN!0 /HD  # =hj0T h]]9 #]AU@}%?FR$,?@6#V?Fc_3֡w?P6 u` ?u#t  3zM%t3ws%.<%H._'B> #PJU2N贁Nw[?@ʐL+&A@wbu](i+bk)%+&p%#4">9"<5!?& ?M#bbb͓z$ p&"/%T%#L1L15 w`?Co yrigTt (c)02`090M{0cy0oKss0f2r1r 1a0is0n.0 Al0 y8s2e0ey0v0d0"E1E(]I4M-%#X3 X7&l*>(UhE j1#$Ac!J`%#@5e$_F??!foA3nBM( V?FJ-R?@HQ??FS!R?P| llHL6VLD5E+v;*AůʙH: 8snP%$? k?Q? \?4_!__WrA5_! R,U3OC@IL?F4~Kz?P)Oy޾ T!]]>#IAU@܋?F2Oa>?@#r`5B?F*ݷ?P6 t`  >B?\oEt# ŖoZu 0Nu;Y:|8>$# JpU>##<?2& ?5bbbz@b#ANi&bu$'h 2N贁N[2$@ LX"D&v(&m$ :;T'm"*B#d1d15 5`?Co yrigTt (c)020090M0c0os0f21r 1a0i0n.0 Al0 8s2e0e0v0d0"]1"a4M-/p3 p72&l>0>Uhh= 1#!eJ`#&FNTM\jh1B,RBM(!JoUy{O_ e@ So4(D@^Tw?F]֝ä ?Nk"?w_KT\T+\_(Kjӷjmplhj -`\TPQE\Uui,St_o u~!ՠXEO9= T?FL?;uQ_Pm"rA @3sjQ1lğ=GoYniAleE9 MX|'w'0Ur^N!M$|A vzHD  # =hj4>T!]]>#IAU@܋?Fj?@2r`5B?F^ݷ?P6 t`  >B?\oEt# 6ΠZu 0Nu;Y~:#&}>0m8>  PJU2N贁Nwk?@ eL&A( 5bM(b[)h+h+$h&#[-M$#?& ?b$Z*'*B#O1O15 5`?CopyrigTt (c)02U0090M~0c|0osv0f2u1rx01a0iv0n}.0 Al0U |8s2e0e|05v0d0"H1P"L4M-/[3 [7&l>0>Uhh= m1#!S!J`#*&FPUy{_?NTMjC1gc RVMʣ(D#@ ![?F"$. ?Nk"W?IKTLTcKjRlhj p=' (*!)i,SO2Kes9T;QEGUFw6qX}__TM7fTZT\Dž}_P^52XOES"rA 0S#Es3iAleE9 MX|$Gxw'0UrIN!4gA xvzHD  # =hj4>T!]]>#!AU@܋?Fc_v?@#r`5B?F*ݷ?P6 t`  >B?\oEt# ap'EZu 0Nu;Y:|$># BJpU>#͙;? & ?5bbbz@}bAA& K&@ 2zGzt?"K@ L0"&N(bM)+TK/8Z*B<1<15 5`?CoyrigTt (c)s02009s0Mk0ci0osc0fq2b1r1aq0ic0n.s0 Al0 i8s2e0ei0v0d0b"5194M-t/H3 H7T &l>(>UhE=3Z1#E!J!FENTMjN@1h(NoUy{OO e@ o)4(D@^Tw?F]֝ä ?Nk"?'_KD3\T+\(Kj?ӷjmlhj P\ DiAlePsI=MXsG'0UzbZ6N!%$0 sFEjHD  # =hj8>T! ]]>#!AU@܋?F*?@#r`5BW?Fw?P6 t`  >B? \Et#տ|u l4RQu?]>I$>I# JpU>͙#<?& ?9bbbz@b#AE&bQ$$D 2zG[zt#@ L4"&R(^&I$Q)+]'I"^*Bh{.M#To1o15 9`?CoyrigTtk(c)k2009kM0c0os0f21r1a0i0n.k Al0 8s2e0e0v@d0f"h1l4M-:?{3 %{7&l>(>UhE= `51#I!J49fAn^ R)X f"B!Jui,SG?RSlOS u~!N]8-19= T?FL;uQ ?Nk"?YVTQRXQOnğ/=i n (\ wTiAaePE9 MXLg'0UbZiN!)$0 Lf`jUHLuD" # I>h(J TEI 3MU@jZ?F({~+?P >uA` ?u#jJ* )8* 9LGA )`G#dtG.$*G8BVj~>t  e t>"z "p{b+#7"J>U2zGwz?@9 S#>c&A@b(b)+,&" !$5N]#2T#k"6 "M"b)HF;'","/]#11[#`?CopyrigXt dc)020090M0c.0os0f21r0Aa0i0n.0 Al+@ 8s/Be@ej0vA@d#@K"lJ r!UleaAaAC 5LX%#!Q(r!Io?F8.<01# p炊 A# _W NEx]SiL5 [ML"X35^P?zQM___ %YA"XEEU . K ;; \W%U IF)$_ [.ǪF"XA6jai%?F ߭6?wL^ W- \_"T5Dꤲ8?F@@SA?F @ ?Nk"?I5?`bmModiy[7 K=F  %j1"XI1¦e?FrՓ`L dU TZ<٭hEeN@ (?FG+ MuPu;0&z_[Syкf|C`u|p?9L"TYAAekBp OOG}u?F9 mO"L9=T/hQeel.%-+?@mlփ?FU?> J4ɽ7yfXtOff|A=$ 䖏p$za3ex/@4S}a6N`Sy'e!a#q&ziMסiIT%!X '0UW65 0. "UGD # hz4TYYT#BqU@ t2?F`0 ?@jZֿƿP} mu` o?u#Ld28<LS9`(.88L``t, Stfm۶mەtUH~#9#[0Up"?@/& 9#!!G*"`?CopyrigPt (c) 20 9 M c oKs f"!r 1a i n. Al&0 (s*2e e v<0d0'"!P$0#B-9## '(w#^=9$&0#466 20$e$^ #E X5 9#HLA0%XD`cKX5XDdcGg&AcOT^'TcAcA0"-(Ca0%g20"ihaPX5 &X~7.GW'o$ţ6-!40 GV[ZHD: # =h4>T]]9 !AU@jZ?F`0 ?P6 mu` o?u t  M)t7@2(L$A F  EJU'N((? & ?AbA@ybbu?bz; 9#0"b(8$GbKn!M#X#n 9#2zGzt?088r@Lh"&9*?bRbPM/6&0"m!S('0"*TH1H15 {`?CopyrigTt (c)020090Mw0c.u0oso0f}2n1rq01a}0io0n.0 Al0 u8s2e0eju0v0d0"A1E4MO DQ-OT3 T7 &l\ Uh#7 f1 A0!J $FF, |B-&R6 HVWR( b w0AleP59 MXEG'0UbjN!%$0 W5 VZUHXD # U>h4JTmmMWQU@jZ?F`0 ?@P uQ` ?u4Ut9t-GQ"PB6\"mR"Q UA@"Q    #:"    Z]&& """",&*/5D,& I& & I&J&]U2zGzt?088r)@Qo36߀A@bbRbPz鄳03=b8b9;6xRn7Ry3SASA,K`?CopyrigdtJ(c)J20@9JM@c.@osz@fByAr|@Aa@iz@n.J Al@ HsBe@ej@v@d@ B@LAYPDZ- 'N((/`C?EVOea0RAq` A@c@n@yAlZB3z۳0ٳ0bbbzY3mqUZA<__bܠ_bNbbº_8(? EGO_C _GEV<$flmUxqAU1m81`п1?F?nWwgPt,r#51:*2~d|%X|RLr ?9@tIdE;.O ŏm87tZV?Fz?@. ?Fo6tpb&#?9?FnpH5#d|239}A$>k<^Ꟃsv+D?EYzi6ߛfk@bߊ௘,?@.ݮBk_RN|"N(קy9$T^8(8DY#0Y.qeq~ `0u?@e"&c?F+F?@CS ?FEJ N|{8] vtqSH sA$)k4y~ rU/ݡgaidaaTaep5FUhXlgdd'K0UV"őkh`!`T+0FUbE !*HD "#=h0>T@++]]9 !AU@jZ?F`0 ?ֿtP6 u` ?u#Ft %t3.$H$+A  R J}tU2q?=@LAw@)b!(Wb/)<+<&R[G z$?& ;AH'/H)!!5 w`?CopyrigTt6(c)62`096M0c0os0f!21r0N1ai0n.6 Ali0 8sm2eA0e0v0da0b"!E]$Mb-# '&lU+#7 1h#w!!JA tFkFֳ "x)B- FBiAbE9 MX7/W'0UxR>!8a /VCZ_H;s tY,-6nIgnF8gm#N^oFOF ȓ$ p~?fs`"qD}+ &V?Ge|f3|XσÆ( ~x ^֛8   q6   j 7] HN ,9? ° T !߶i8 _UFD  h(^TYYBBUFjZ?F~??x<F BP(?P } kXj BW66 W TTTTTTȮH?Q?G ?B@L&ɯd2?-)(?\.;(. sUa!_&/J ( G 0qB`3streaming, ed a s rv 2,co pu 31#Wib 4d n wtw0rk!e^| D(SG& m?!3E?? ?   wp x  p  ʵqwp qwqwqpqq/qpppw.wwwqqiwqpwwwweDrag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aabjZֿ~??cN׿ mF1? ؠ?VT*J?@ ?UG DF P# h @T(PYY# QU@jZ?@~??F?Pn} u{` ?Su#؍>>HX HlHYHH EO.DR4:UDDXXUllk'"&R",I'U25ĉ%4 ?"u'4b0{N[`:Q1#2T6"^U9$"3&9"/L6 2&!'ݯ>e@ÿ@qn@?@-fB?mDcFԸ0)Bu/@`҈-1Bu@rCC 5GAB"2Cm9u`u `"[ b!u`%3Qo1o7B`?CopyrigPt (c) 20P9 MPc.PosPfRQrPQaPiPn  Al` XsbePePv,`d/`VPs_SBNcPm_!#5ab4P=`o13dX45CB^8=%3p63dz6z6 v24#%30U'rz3]ge<^AE@ U#5m Hq5twL5t{3t{LEt{t{y {et@{|tYwm@Ada׃IUBT$1@a@a2ja$jaL21632CLBA3P1125jb6w 7C |hhE)*dQ8ŔIQIQA11CB!;1XrYqea>ez1AXE:FG$1 8dT=`XQj2`]r` M`nuPaPt+arp` ?bup` ? B=ݝ`S,t']p5'mQ-݁<9ohm'Qh>qݏBT'.ct'xZf@>pÿ7Љob2Zfq [ܒrr$ avvvrsY"`Ron_16 eI`bb ccbr@uP`TaSq1u$_u'K1K2A#b[@aahaauhA+}pPk` u*`s`s`a|x)H5_dd&һbpSF3s͵N?SYJGbrV@ГD#eb 8d E LqW,5@rB: 2ˏV}uaua hYVȻOn `; %P&S41ua`NEWORKd2H Ps!RR*ISQio&oh^A'0Ueq?!0 oHD # =hj0>T h]]9  5AU@jZ?F͂T??Fx?SF?P6 jt`  o?tk[>(A Vu aSuo.]&A]  *ԮJU2zGzt?@L#&A@bA#z7 5#1bO(b])j+$j&[ "*(w "?& ?AU$l/%B115 `?CopyrigTt (cu)Q02`09Q0uMI0cG0osA0IfO2@1rC0|1aO0iA0n.Q0 WAl0 G8s2Ueo0eG0v0d0"1E]4MŤ-&3 &7&l>]Uhz811U!J!u6?F+\.>djIIa? >"(EǑ I%K9E 5EU . K ;;5QIWEEEF _KnSA?8@@Bu?FDR> ?Nk"\6`bmMM\j=am {:e P> #? D"? 5-g?j4B7!B{oogr57!ibDAbE9 MuX7_'0U~rN!$a)5 5vIzHD # =hj0>T h]]9  qAU@;?FI5K?@xEL?6ѿP6 t`  bm&Qo?t@@L]WI,#u aiuoL> JU2zGzt;?@L?&A@b}#zs q#1b(b)+$&[9#H",ɺ (wH"?& ?A$ /%9#BV1V15 `?CopyrigTt (cu)02`090uM0c0os}0If2|1r01a0i}0n.0 WAl0 8s2Ue0e0v0d0"O1E]S4MŤ-9#b3 b7&l>]Uhzt1.A!JN!m.%-+0djV1ax߃S(FJ-&?F mO"> ?Nk"L[Majnha_:e P> #? BK=o? n-?j4Bs!B{__Wr5s!D8E6V 6?wj_|_ ^XE.U@z T6?F @' d_mOoT \VyWxRkrVo_bVh*g:n"'UaEjz36>CN>?Bn}]zGvN7V iDAbE9 MX+G'0UJPN!4ae5 MaHD # =hj0>T h]]9  U@jpiH?F^?@$?F]F?P6 t`  !a&ao?t,F=۳=u;u auo>J2zGzwt?@ʐLAw@b#z1b](b!).+I.&[-m(?0& ?A$I0/Q%!!5 `?CopyrigTt (c)02`090M 0c 0os0f21r0@1a0i0n.0 Al[0 8s_2e30e 0vq0dS0T"!E]$M-# %'&l>]Uhz!1!JF% djc~YZ(_N9zOMGE%_EH$SwO"K ңHE ^&_8_WE_OqOHOOi&DAbPE9 MX7'0UUfb>!$a % f1jHD # Uh4>T#]]9 M5AU@jZ?FL|+?@?F({~?P6 JuM` ?u JYt )t7zEA2&L_D?. > >tJU2q K?=@MJ&A@-b9(+bG)T+T&J[#"#a?& ?AH?/`)#115 {`?CopyrigTt (c);020G09;0M30c10os+0f92*1r-0f1ai+0n.;0 Al0 18s2eY0e10v0dy0z"!4B#e-?3 7)& b 0K8>U# ]A]A "1!ъ!PzQ <%OYAJEU . K;;\%W%EF($L[.FX5Eai%?F 6?wL;] W-\TB⤲8?F@&SA?F @ ?Nk"L'`bmMW_Ye[ٯ7 VK=F: [jr ? D"? XZvD?ta@Boogr5;!QEx]SiLO MLGXa~WOTZiAle59 XG"'0Uc&N!$05 .HD # =hj0>T h]]9  IAU@K?FOgVb?FY%?Fwᳬ?PJW?>t`  ^Z?t#ə.E @x?r?/{4܂ G _Z+u u$ >  J JpU?43f<!.&P?b3bbfz@1bAe&bq$d 2zGzt.#@LT"&r(~&i$q)(+}'i"~*#81815 `?Co yrigTt (c)o02`09o0Mg0ce0os_0fm2^1r 1am0i_0n.o0 Al0 e8s2e0ee0v0d0"11E]54M-#D3 %D7.&lUh#7 V1#Ai!J# F/?B1B  VRiAAbE9 MX G{W'0U*R2N!I$a {VZUHPD  # #>h0JTpERI MU@u6?Fjc{g&?@%r`5B?Fm_F:Is?HNtQ`  II?t#]  _ii$!`kNu  iu%wj>M JQ T       "@&&JNU2"?H@Qs#N&A@b(bU)++&RNp}#>H1#19 ?#bbbz| R&/5R}#11`?Co0yrig\t (c)02h090M0c0os0f21r0Aa0i0n.0 Al!@ 8s%Be0e0v7@d@21a4t#-}#3 %746lJ#$JUp5 3 M19 1!q(!FnElrkRt# 8$kcD?@숒@)?FP?P"EkU |1\iOT/irvs}i>`_,of :m ,M ?? S&d2? *b?r4B!B oo1gr #5!>%(EQOOOO__FAc1_C_ D4ևS]_o_yRX+{_,__ #R__ (YQoSo+o=osd {oEeooooooFyUy{* hDVW(I X"c7I!pg bf'iMjSE t%XyG|'0UŢŞN!O4i |UGD # hz0TdYYBU@(%)?Fxg^?@0߯H?Fs7Uݹ?P} t` 87?t#_)TeΦu ]ukv  ̝L&UUU&I&3 U!!`?CopyrigPt _(c) 2\W09 M c os f"!r 1a i n}. Al00U (s42e0e uvF0d(0'HS$#-## 'I?k=#ǒ 2j$B##0U'BM3@&@F0Yk} #HA%DKb5DK3DK5DKED$!GiAZG5(|IDFX7yW'&Dŭ6!4YA yVZHD  # =hj4>T!]]>#AU@0߯H?Fz)e??F˞9q?P6 t`z  ?5t# rXѮu)Nu;):O]ע0 &> # " "+"+"+"+" $+"T-J[U7 ??& bA@ 2b4-#2zGzt#+@ Li68!6 ?}; 72U!:B#AA5 5`?CopyrigTt(c)20F@9M2@c.0@os*@f8B)Ar,@eAa8@i*@n. Al@ 0HsBeX@ej0@v@dx@)21"DM-,;?C G& l>]UhzAE!A#!ְ1J`#@{&pz?FUy{?NT,dKj&b&R&M/8T9K-q?F@F?FdG0 >Nk"?YE*]\LThKjfGD&Qhj ?iU3UGe&Y`?@/Jb)h5oWKoWo;èKod}l$ro`nE2K?Fˌ%4G{?F -q? eZR^{|\?6?vodmP}l>MBe 9 N 1iS? 1?grl#51:PO"4ga@Sq(UE^@O|ǐ[`ߡa v2rbA @3ijD&}laqOz o?#WHZ'Qu=*[^N?F]%P?@O&@ c?FаM<n ?` eb0)\(Pfodm}nv}l?V5(?q$Ix[cN#W{ #iA@&QeE9 MX''0UjdN!0 /HD  # =hj0T h]]9 #]AU@}%?FR$,?@6#V?Fc_3֡w?P6 u` ?u#t  3zM%t3ws%.<%H._'B> #PJU2N贁Nw[?@ʐL+&A@wbu](i+bk)%+&p%#4">9"<5!?& ?M#bbb͓z$ p&"/%T%#L1L15 w`?Co yrigTt (c)02`090M{0cy0oKss0f2r1r 1a0is0n.0 Al0 y8s2e0ey0v0d0"E1E(]I4M-%#X3 X7&l*>(UhE j1#$Ac!J`%#@5e$_F??!foA3nBM( V?FJ-R?@HQ??FS!R?P| llHL6VLD5E+v;*AůʙH: 8snP%$? k?Q? \?4_!__WrA5_! R,U3OC@IL?F4~Kz?P)Oy޾ T!]]>#IAU@܋?F2Oa>?@#r`5B?F*ݷ?P6 t`  >B?\oEt# ŖoZu 0Nu;Y:|8>$# JpU>##<?2& ?5bbbz@b#ANi&bu$'h 2N贁N[2$@ LX"D&v(&m$ :;T'm"*B#d1d15 5`?Co yrigTt (c)020090M0c0os0f21r 1a0i0n.0 Al0 8s2e0e0v0d0"]1"a4M-/p3 p72&l>0>Uhh= 1#!eJ`#&FNTM\jh1B,RBM(!JoUy{O_ e@ So4(D@^Tw?F]֝ä ?Nk"?w_KT\T+\_(Kjӷjmplhj -`\TPQE\Uui,St_o u~!ՠXEO9= T?FL?;uQ_Pm"rA @3sjQ1lğ=GoYniAleE9 MX|'w'0Ur^N!M$|A vzHD  # =hj4>T!]]>#IAU@܋?Fj?@2r`5B?F^ݷ?P6 t`  >B?\oEt# 6ΠZu 0Nu;Y~:#&}>0m8>  PJU2N贁Nwk?@ eL&A( 5bM(b[)h+h+$h&#[-M$#?& ?b$Z*'*B#O1O15 5`?CopyrigTt (c)02U0090M~0c|0osv0f2u1rx01a0iv0n}.0 Al0U |8s2e0e|05v0d0"H1P"L4M-/[3 [7&l>0>Uhh= m1#!S!J`#*&FPUy{_?NTMjC1gc RVMʣ(D#@ ![?F"$. ?Nk"W?IKTLTcKjRlhj p=' (*!)i,SO2Kes9T;QEGUFw6qX}__TM7fTZT\Dž}_P^52XOES"rA 0S#Es3iAleE9 MX|$Gxw'0UrIN!4gA xvzHD  # =hj4>T!]]>#!AU@܋?Fc_v?@#r`5B?F*ݷ?P6 t`  >B?\oEt# ap'EZu 0Nu;Y:|$># BJpU>#͙;? & ?5bbbz@}bAA& K&@ 2zGzt?"K@ L0"&N(bM)+TK/8Z*B<1<15 5`?CoyrigTt (c)s02009s0Mk0ci0osc0fq2b1r1aq0ic0n.s0 Al0 i8s2e0ei0v0d0b"5194M-t/H3 H7T &l>(>UhE=3Z1#E!J!FENTMjN@1h(NoUy{OO e@ o)4(D@^Tw?F]֝ä ?Nk"?'_KD3\T+\(Kj?ӷjmlhj P\ DiAlePsI=MXsG'0UzbZ6N!%$0 sFEjHD  # =hj8>T! ]]>#!AU@܋?F*?@#r`5BW?Fw?P6 t`  >B? \Et#տ|u l4RQu?]>I$>I# JpU>͙#<?& ?9bbbz@b#AE&bQ$$D 2zG[zt#@ L4"&R(^&I$Q)+]'I"^*Bh{.M#To1o15 9`?CoyrigTtk(c)k2009kM0c0os0f21r1a0i0n.k Al0 8s2e0e0v@d0f"h1l4M-:?{3 %{7&l>(>UhE= `51#I!J49fAn^ R)X f"B!Jui,SG?RSlOS u~!N]8-19= T?FL;uQ ?Nk"?YVTQRXQOnğ/=i n (\ wTiAaePE9 MXLg'0UbZiN!)$0 Lf`jUGD # hz4TYYT#BqU@1XAɖ?F&fQԽ?@#[5?F/8tֺ?P} u` ?u#Lk/8CW(.J88L`6t stP_m13i-; NIU~񅴉#9#0Up"?@/&9#!!G*"`?CopyrigPt (c) 20 9 M c os f"!r 1a i n. Al&0 (s*2e e v<0d0'"!$0#%B-9## 'w#^=9$&0#466H 20$e#$^A #3  9#LFG0%XD`AHdJT%XD8Gg&daO^' TAA0"-(`@a0%g2!8TBT"i@haX5 &X~7WW'o$Ŵ6!40 WVkZHD: # =h4>TB#]]9 TuU@#[5?F3_(n?P6 ڍ` ?u Ft  )t7 \)2(jL>  ] " " "" >" R"g"g"g"g" $g",g"*/<$g"H,g"\#JtU2wqH0?=@L#G6A@-by8b9;6[A3P2;3?6@ ?A?9*A3DADA5 {`?CopyrigTt:(wc):20@9:Ms@cq@o%sk@fyBjArm@Aua?0ik@n.:_ Al@ qHUsBe@eq@v@ d@2=A(ADMBA3-_PC RPG6l> L>U#aQQ 9 ]R! ;$bA*A3; #p _{66J`A3@>?F(?mؙ @` lt V/&N&wbN&M8A%?@׬?Fk>P6%U ?)o.m  AKiMBaiVϥ]瓧sa5f*>B r7k, Pxz? S? \?r#5{1:PDVhwa@vcą(2HV1Qj\"ocHl\aiu].eEe*bGk?F}2?@6w#`ȸ)|?P ,m!^l_zP$vtR`&V~$}EP{sa>t}<~45 a#y{Ϗ@ᏫteE1oCc@OrbV?FZbyZ Pu @crAP~3zw h%|̏v saliv &Pxeen'n`ὓM?@3?`2UǎKiDc$vfeW^|Ywt$}k~G+BIW?FzUH(?@q||f?F%CRO .1^lztep{ha;y%|U4N*)qyr"[kSHle $rWȂe>!Q7?*GF?@D`uʄ3=CUFS>+悍Wzt0 ;ӝjLpTߙj[>`;]`?@?F?P` ֔zYmkai{﾿|{t(yc|[%tOH~ݽ*<4#>t,iw#ytuR!y7`߯ZiꠗKk~HlJa#(-)0"!8Qe s@AleE9 MXAWP2'0Uwf^!V<0SE .BUGD D# h0T@dYY]BIU@-H?Fc[B<(?@j>(?F/I6Ѹ?P} 8d Ut`  ?ht#rS8n'L֌rX_uo uU!!`?CopyrigPt (c)J 2\09J MB c.@ os: fH"9!r< u!aH i: n.J Al @(s"eh ej@ v d  #S$#-d ## '?= # &#24 6 6 2$B# #0U2 3@& a#3~ #dH@1%4Gi^#5 6rX'EG'4) 6!4] EFYJHD # =h4>TB]]9 \#!AU@#.?F/I6?@P t`  gjo?t#T U $YhAn m7 u)hnx Fu!)J hI 97eyh?#!?9& aAbA@_"bg)b$g)bIg$2zGz9#@L@&h*%}$f*+T'_"*BL1L1`?Co}p rigT}t((c)(W2009(M{0]cy0oss0f2Rr1ru01a0is0n.( AUl0 y8s2e0ey0v0d0E1I4Mb-X3 X79&l)Uh# j1#_!J FF$[ 7#e T$V3RiAlPeE9 XW'0URZFN!^0 VHD # =h0>T@h]]9 #U@딃r?F/(?@2?FkF_w?P t`  ;0K?t# y_h:.A>Dj# ixsj||yyh|j|Ay"s"y,"s,"yJ"y^" yr""y"/y"a|"1y"8y":y";y"|`AUhMq@q] y a7T^1 hjP!,!J!^!o$!$U#$%&U'()*+,t|q!a!U234567$9$!1&1>74Ua#[aJ`S@ɞd?F9^2d3Qqs^2tY7N26J6M#hN1y-loG?gn`bDPu6(āThq 6p?F!_T?@R h^*B?PQi e>amabƫWSuMD,Xud3, utSқJ! \&\xZ? $Zas? V =? @S?d2tR@B8BoRį֧r3Cc EH ]&H[Bѻ?@lML6~ ;m`~b&¨r?+J^t/qO@? [,!rPצ 2XQqH zg?F,53lܿu  ?FM9(֜2Ar}JND7UØB]ٿ?@h߾#?Fd~5ȿMuPu`~dg}-S/9u}DѺ f <-@uušJAV+ǥ8xP?\ q|?FKyhQ~2vTPf=?PoyGV(na~u3vu;*G1+u~ݏֻA_ ^Gϯᬅ?oQo!|b0QJX^?Fsm?@@޻Pg?POWLKz Fw^=g%fԧ!6&]JVbGᬤ? o[oQr!rmz@zg?@f(?FVɱC OPKMgBlVܖVVwVsS3O_ܘ=w?FKL?@jP0A`QʱH=lTG5OxOeuF|Fv=/Fꞏ ,-<60 ]Cs~?Mv1E GZ}v -# &<"ݝK-'>TAFd|6δ̙2{# ,',v #cX#JREB'~5-O$ ,RI~  `ܝ-C-X-_]bd% ,Wl' 4%ŀ>-խ@ײc& , Ǡ4 \lb\c>-R땳J ' ,+E :{(b\s"=]& a:U( ,/?Fb\.bLOOMևQ:U) ,!`3?F k?%6fSԿr`* ,Oڿ?F&Kba,e~Lʴ2ͷ+ ,b d?FjFŋݸML, ,Z׺ı?F bҢu W%r;z- ,TUI8?Fs%:v ~LSa@ . ,3Pވ?Fb^vO$)yϊ&Lؾ1/*mCe%f(~5JOAjuLīt~eq>aT~.j&],_10y՚?Fr`QSٵ?F艿O:McfdilFU1i;}m&R F$w|!l~1`-?F~J~ 03y<$-t9BIL{HiG,LDd|jph:OE 4b\{~-K 6,Ku20e%+~L-r; 7,kh}6`E׻L?S)` {A8 $Fٞ@`o?F%&0MuPu9KdfǸ;}-UL󥶚!s@+C9,*}3?F:ט26-*NY'| ݑU8am?FYe~Kp?@ŮM?F@_O`P jBނ> l'xk超VSOB;6{.f9;?@ v%e??Fh1*o/m_~!Wx ~)j |ALyUƅ?PbO__<J+t?F"e?@'IȂl:xl@׭9,&͓S2&n&Yۙo> =~vU^4Q?@,z"TEo-<[?|8q&?FCv?@s&Ŕck>\ :A:z5,7ح-idsjѦD;gcZT#n$!$ɞd?Fх@Z f<x.Ϗ:"r 23ED'佴9Ki PyT A$))X#!('0Uqŝ)) (h0JTxmmMU@L?FfZN?@]ޫ6?F^ ?P t`  HVRHRbLRvLRODRONVOFuH-HU2N贁NKk?@A@'bՈb񄝃P𫃘Q ? b]z@ՏH񧝃ؑؑ'`?Copyrigdt (c)2p09McoKsf r:a in. AlU sYe-evkdMёY(iՔZ- Tl8UxDE?mP!h#`@yr?FiªD#vBCh?OH#B|/e#L% +.M\?Fx5J+,ՏpeƘb|{0?@ T?F울'5 QuPuu|2P A_O:폵C]>ڏ|,#w| |fɀ~E?F` aFTSL!r?P,DT! c{d}u͏3aT^xƵif"Y:B Y7 E? O? ?ǀ4#XBwߡrS5"#]rpw ?F!~8ӱ-&?P|)\ݏ?̛C/oͰQ 0K8f ߱QI֭f"^!3|DڼCQb32btrX@}䡻XA(XAXA% 4FOaҔK?FgGyp{lQ Bť Dz#.3?Fo>?@vָsy`s&ag?P-Sg  书۟pB.GҢ?k .G TxSb/t/nSɕwe?F%/ȡ?@p̙L?Fyp5O?PN@w+߁aL\񖋷̍A߄ޘp vS&}?x/RޖSԕ??׌SaG9)ܣ?F"/2?@ď6.=H6ĻK(prN=׀zk ɓ??ۣ&OO*̱ص2F-e1fOxO "0vHgO?FN ?@rѴ?F~xy1wWD{{6o֟gvMEX}߆8@,_d9Rodo N3Ř6t?FaV?@Z_g?F,߉$8Yà]OJ r/3ŵm"ʏ%^6o;X0uoщ0邀?o}o±&r Bޚ=$?F?@ ddw?Fy[HEtD0?@ȕ 9pwJK{NӏrE]U 1*<صǥL?F_;+]yC,E{)qb=H1I ?F݄u{?@7J`Hύr_y\zYf̏-pܒj8܏B( + /~) A+3Bَ?@5/?FS}k̥=xEu&}K ѱPpAɯ̹[V]?Fx?@8^f`ó LvbK<IYLYA˲)ƫ̿T1 T]%E Q_U@IYWj~4u\/N+ܡ_[eL4{jERY\~PeC˧EU+?9DGaI-oG7抄Bm턇f޹d&U ]%ߏaE x1꤭?F퇑Ph~8-U_Խqսlr/M1#[~$g H9Ga0B ?FnB@rJo?FtVB$?b8><=QܻE2l@"%;Ghc#?ܒEz&v!3ETȟڟN2]9@:Sǚ~u\4@X~DG㘊1VO4GŚ?Fq?@Z61U-, K1析|LfJ8vĥ.Sh* S7 F//r & 0E=̨qu?@6}[?Fdۗ}CEOd5#|Li1Y.1,2lY?RvCƯ'?FcO +?@H=?F6EКɘCxj/ y<(辂m:}F;ܕЧdqj|BJUS-?/-6OOhP:2H(hhOzO R(RyO5Fnw0gs[`JɤL@p [Bc%0dO swE~n#kN}?˽6yU;%?-_Oa6TofoP>y%PD 0;fL#10t+XˉBH?, -#-/.{Mq12s=cOyU6;ƅ[P`qB!!ME=*By61M -7C !6dFsgyf%R_oo6J\&F^ /P*hTgiE!?FYRRG=V?FU tn2 OAKL2^ق̜ҁk:z焳'!hLK;i B7Hm$M]iH?FګZD?@vit=qN~ p<C MA՝n{jvDr^n4l4Z\{!V!;΂`? Heq$AT s>P/X+]1WU?Fbdi"ܽgD?P3F#?M2T8sY4݃MYec=ݗD}SQU]6⛸Ȍ' k('޲XQqN?FZ D; hwi5mND{I?FXPY?@2 }͘?FBҏÎxv'za݇/i\?M;L0nMuhg}IN;&?F9'w(=xF\_3ѦUi5dm?FC Ax"2009)~4lHN%+)GYo,VB΍z ^?@¼2?F>Yہ3|궕TtjDG:J4l)Gfd{ 2d?:p+/=/ߊdY"֍YyI6YPuHvD~wdVͶ?F *Rō U0)QY?=Խf 4l﫿#b3Mddo/ލ^?p?yǛ2mY̕[Y ?@Ho+ѐσfȝt3ɗøLCW~PHi_̻ԱMd^r\??eOOyLjG]2ğ֕USraARGSriaaT=YXwZ'0mUR?B!0] zVZUHXuD # %#>5h:,JT5 ]IA U@y?FJYﻛ??FbQa?P mNuQ` o?u#6QMIQ 9H#L\WYLpW LWLCWICWA ICW ICW I"CD"W I."WIB"WLV"WLDj"WI~"WI("WQ M W#"k#"#"&U M & M W32C2&MW@3P2W>4:& o2Ro2fo2zo2o2o2o2o2$o2/,$o28,o2L,o2`,o2t,o2,o2,6(6(6(6(68686,?>06J866^8Nt  ::Rt%RR_܋NbD$QFMpR @(uQNU2zGz?N@Q cNfA@RbMh+b[ihkhf>bK !LdNcb c#bf b\MSbb[ikXg>bl>boRcfqfqc`?Copyrigdt (c)p20p9pMpcpospfrqrpqapipn.p Alp xsrepepvpdpbMcrs rwf bQWRtR lQUxeQQWB $.! =1SaQ?$>a~!x!e#!Sa h*anvO)g?Fz ^`S 3?-IS ܇Gh;q?Fψ?@Lm)şƿOzHp MuPu`UR-ga8}|g$_sh}$ GB~3 dGcnjpǟ(Az3F#? Oǟ@fhؔ~ `$6#;zZ?FfuHvD?@ߠM=H *R U\hAᅪN5Ozq7*;]?F[Y ?@|%σf SMY^Qh993+!ڌ )~(;6mlR&&/OO~E~v_bD%%>X-"T G#+EK63 11WA/ T3ٳEC4}$F|rO 2DV0ps-*  ԀCV@59)5AFSƾ\ՌpބTvrD92C#!~V>rA%!?@4%-&?PR^BhTyYWX+  '!vN-^/p/PCZCdAHC$t~HgE;%'e~\aI/pԗ~{φhh~- Z1q܁ɥjZ谔T0Rc M`xhXϔ=0Ҋ??+E?? Y܅+)ȪU . ?F%pAHhAuQeFķeeǜRe !1g쁷Jai%?F,#9 R6$*h~*Aꤲ8iY 4?@?SA?F0pF@ ?Nk"͜!\Th% 4 [Xg?c乇?x)|";}p?FtVXb?F<X?@~LI%?F7ja8Ɵqֳ6h ǰMVX[=l?F@ ?Λh` !X)gxW<>2?߯An`di~RnKgwBXVXM_mpX`}뀁e'}NJc6fgl"0Uř 4ҵIp^\BeHeɉ0$e {eBpD=VX5vIߪ%e?@$ "ĩL¼A$ h|~&Ep=qp\J0~ \m"(@8v"~+1ap=3Ѐᔿ%t f\߱[P-?QcEp=GOM RϡvbxzV ?@%f'1rN&&"ҮcrA '|-(o>?e1pp$>%d|&k`{T~zQoD=gs {~@~IMho=|Ϸͯ߫噮|+2Z(,1t,>{eFud:L^pz$ozq820X3Y[?@7Mu]0mFﶜ݇$I~D={N/ݿGǙZ9:G-LPb~?2$m00 ["]Мߢ""10eVWLKz Fw{M 3D=h(jA+cF, (W$R-//"'p /""H1{,eO<-!t(>Et{ŧ&k}u?FԿ9*\.VԔ?1_)hVrUe ?@llփ?Fx!S> _ؐ%_ؐ.✼=~ߋ{p" xwϨ1wjf-@4Sa0%Ti:w?ؐ?$:~ ;IŊ=?,ģ:?yji6hAATD)IX$*'0UR?I!&c= &J_HZ|`;s dV(]bCV!Fx#?VOF HUzl~?fpoD+^U o_?G Mf Ѧ  苑 ߓ8eF֛߫ A6 w y :쑿 7] N` f(c ?Gg Y Ji 8l ?#/5/G/Y/ =#% b8%UFD  h(^TYYBBUFjZ?F~??x<F BP(?P } kXt BW66 W TTTUTT6"TRȅH?? ?B@L&_d2?"-3(\.E(#.sUk!i&/D % G 0eB`-dir c.o y,s rv 2, ompu.3!s.r b4d0n twB2k!%^| (SG& i?? /,>H ?{ wp | pqpqwq߂qwqwqpqmwlqppwpw'wwwqqb\wqpwwww;^Drag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aabjZֿ~??cN׿ mF1?ouzq7? %!VT*J?@ ?UG DF P# h @T(PYY# QU@jZ?@~??F?Pn} u{` ?Su#؍>>HX HlHYHH EO.LO4:UDDXXUllk'"&R",I'U25ĉ%4 ?"u'4b0{N[`:Q1#2T6"!^U9$"3&9"/L6 2&!'ݯ>e@ÿ@qn@?@-fB?mDcFԸ0)Bu/@`҈-1Bu@rCC 5GAB"2Cm9u`u `"[ b!u`%3Qo1o7B`?CopyrigPt0(c)020P90MPc.PosPfRQrPQaPiPn 0Al` XsbePePv,`d/`VPs_SBNcPm!#5ab4 3!bz1AE:FG$18dT=`XQj2`]rw` M`nuP%aPt+ar? { @&8~? 8Tv??;Hd2QCg3` Wڣ%ETV-O?O C| aOO#䅿O`M,`m@.O_"_Tp'_9_M;Oem1y [Qe_w_Sqt'aZw0fo&SU@jZ?Fű?5v5v[pYp8u>p` ?bup` B=ݥ`S,t']p 5/m-݁<9opm'Qh>qݏBKT'.kt'xybf@>p{ÿ#БobZnq [ܒrr$avvvrs{a"`RQovg16 eI`&bb_ kkbr@ uP`TaSy1@u,_u'S1S2A+b[aahaDauhAaYg6s&P` -u*`{`ᕁ {`ax1P5Y_dl&bpSF3s͵NSYJObrVC@ؓL+e8#d3#%XLqW,@rb:(:ӏ^}}a}ahʀYVWn ` %P&S41¢Ȣ}a`NEWOR+Kl2H P{!RƱRISQ¢Ȣ¢ Ȧio.oÌh^A#'0Um?!0oHD # =hj0>T h]]9  5AU@jZ?F͂T??Fx?SF?P6 jt`  o?tk[>(A Vu aSuo.]&A]  *ԮJU2zGzt?@L#&A@bA#z7 5#1bO(b])j+$j&[ "*(w "?& ?AU$l/%B115 `?CopyrigTt (cu)Q02`09Q0uMI0cG0osA0IfO2@1rC0|1aO0iA0n.Q0 WAl0 G8s2Ueo0eG0v0d0"1E]4MŤ-&3 &7&l>]Uhz811U!J!u6?F+\.>djIIa? >"(EǑ I%K9E 5EU . K ;;5QIWEEEF _KnSA?8@@Bu?FDR> ?Nk"\6`bmMM\j=am {:e P> #? D"? 5-g?j4B7!B{oogr57!ibDAbE9 MuX7_'0U~rN!$a)5 5vIzHD # =hj0>T h]]9  qAU@;?FI5K?@xEL?6ѿP6 t`  bm&Qo?t@@L]WI,#u aiuoL> JU2zGzt;?@L?&A@b}#zs q#1b(b)+$&[9#H",ɺ (wH"?& ?A$ /%9#BV1V15 `?CopyrigTt (cu)02`090uM0c0os}0If2|1r01a0i}0n.0 WAl0 8s2Ue0e0v0d0"O1E]S4MŤ-9#b3 b7&l>]Uhzt1.A!JN!m.%-+0djV1ax߃S(FJ-&?F mO"> ?Nk"L[Majnha_:e P> #? BK=o? n-?j4Bs!B{__Wr5s!D8E6V 6?wj_|_ ^XE.U@z T6?F @' d_mOoT \VyWxRkrVo_bVh*g:n"'UaEjz36>CN>?Bn}]zGvN7V iDAbE9 MX+G'0UJPN!4ae5 MaHD # =hj0>T h]]9  U@jpiH?F^?@$?F]F?P6 t`  !a&ao?t,F=۳=u;u auo>J2zGzwt?@ʐLAw@b#z1b](b!).+I.&[-m(?0& ?A$I0/Q%!!5 `?CopyrigTt (c)02`090M 0c 0os0f21r0@1a0i0n.0 Al[0 8s_2e30e 0vq0dS0T"!E]$M-# %'&l>]Uhz!1!JF% djc~YZ(_N9zOMGE%_EH$SwO"K ңHE ^&_8_WE_OqOHOOi&DAbPE9 MX7'0UUfb>!$a % f1jHD # Uh4>T#]]9 M5AU@jZ?FL|+?@?F({~?P6 JuM` ?u JYt )t7zEA2&L_D?. > >tJU2q K?=@MJ&A@-b9(+bG)T+T&J[#"#a?& ?AH?/`)#115 {`?CopyrigTt (c);020G09;0M30c10os+0f92*1r-0f1ai+0n.;0 Al0 18s2eY0e10v0dy0z"!4B#e-?3 7)& b 0K8>U# ]A]A "1!ъ!PzQ <%OYAJEU . K;;\%W%EF($L[.FX5Eai%?F 6?wL;] W-\TB⤲8?F@&SA?F @ ?Nk"L'`bmMW_Ye[ٯ7 VK=F: [jr ? D"? XZvD?ta@Boogr5;!QEx]SiLO MLGXa~WOTZiAle59 XG"'0Uc&N!$05 .HD # =hj0>T h]]9  IAU@K?FOgVb?FY%?Fwᳬ?PJW?>t`  ^Z?t#ə.E @x?r?/{4܂ G _Z+u u$ >  J JpU?43f<!.&P?b3bbfz@1bAe&bq$d 2zGzt.#@LT"&r(~&i$q)(+}'i"~*#81815 `?Co yrigTt (c)o02`09o0Mg0ce0os_0fm2^1r 1am0i_0n.o0 Al0 e8s2e0ee0v0d0"11E]54M-#D3 %D7.&lUh#7 V1#Ai!J# F/?B1B  VRiAAbE9 MX G{W'0U*R2N!I$a {VZUHPD  # #>h0JTpERI MU@u6?Fjc{g&?@%r`5B?Fm_F:Is?HNtQ`  II?t#]  _ii$!`kNu  iu%wj>M JQ T       "@&&JNU2"?H@Qs#N&A@b(bU)++&RNp}#>H1#19 ?#bbbz| R&/5R}#11`?Co0yrig\t (c)02h090M0c0os0f21r0Aa0i0n.0 Al!@ 8s%Be0e0v7@d@21a4t#-}#3 %746lJ#$JUp5 3 M19 1!q(!FnElrkRt# 8$kcD?@숒@)?FP?P"EkU |1\iOT/irvs}i>`_,of :m ,M ?? S&d2? *b?r4B!B oo1gr #5!>%(EQOOOO__FAc1_C_ D4ևS]_o_yRX+{_,__ #R__ (YQoSo+o=osd {oEeooooooFyUy{* hDVW(I X"c7I!pg bf'iMjSE t%XyG|'0UŢŞN!O4i |UGD # hz0TdYYBU@(%)?Fxg^?@0߯H?Fs7Uݹ?P} t` 87?t#_)TeΦu ]ukv  ̝L&UUU&I&3 U!!`?CopyrigPt _(c) 2\W09 M c os f"!r 1a i n}. Al00U (s42e0e uvF0d(0'HS$#-## 'I?k=#ǒ 2j$B##0U'BM3@&@F0Yk} #HA%DKb5DK3DK5DKED$!GiAZG5(|IDFX7yW'&Dŭ6!4YA yVZHD  # =hj4>T!]]>#AU@0߯H?Fz)e??F˞9q?P6 t`z  ?5t# rXѮu)Nu;):O]ע0 &> # " "+"+"+"+" $+"T-J[U7 ??& bA@ 2b4-#2zGzt#+@ Li68!6 ?}; 72U!:B#AA5 5`?CopyrigTt(c)20F@9M2@c.0@os*@f8B)Ar,@eAa8@i*@n. Al@ 0HsBeX@ej0@v@dx@)21"DM-,;?C G& l>]UhzAE!A#!ְ1J`#@{&pz?FUy{?NT,dKj&b&R&M/8T9K-q?F@F?FdG0 >Nk"?YE*]\LThKjfGD&Qhj ?iU3UGe&Y`?@/Jb)h5oWKoWo;èKod}l$ro`nE2K?Fˌ%4G{?F -q? eZR^{|\?6?vodmP}l>MBe 9 N 1iS? 1?grl#51:PO"4ga@Sq(UE^@O|ǐ[`ߡa v2rbA @3ijD&}laqOz o?#WHZ'Qu=*[^N?F]%P?@O&@ c?FаM<n ?` eb0)\(Pfodm}nv}l?V5(?q$Ix[cN#W{ #iA@&QeE9 MX''0UjdN!0 /HD  # =hj0T h]]9 #]AU@}%?FR$,?@6#V?Fc_3֡w?P6 u` ?u#t  3zM%t3ws%.<%H._'B> #PJU2N贁Nw[?@ʐL+&A@wbu](i+bk)%+&p%#4">9"<5!?& ?M#bbb͓z$ p&"/%T%#L1L15 w`?Co yrigTt (c)02`090M{0cy0oKss0f2r1r 1a0is0n.0 Al0 y8s2e0ey0v0d0"E1E(]I4M-%#X3 X7&l*>(UhE j1#$Ac!J`%#@5e$_F??!foA3nBM( V?FJ-R?@HQ??FS!R?P| llHL6VLD5E+v;*AůʙH: 8snP%$? k?Q? \?4_!__WrA5_! R,U3OC@IL?F4~Kz?P)Oy޾ T!]]>#IAU@܋?F2Oa>?@#r`5B?F*ݷ?P6 t`  >B?\oEt# ŖoZu 0Nu;Y:|8>$# JpU>##<?2& ?5bbbz@b#ANi&bu$'h 2N贁N[2$@ LX"D&v(&m$ :;T'm"*B#d1d15 5`?Co yrigTt (c)020090M0c0os0f21r 1a0i0n.0 Al0 8s2e0e0v0d0"]1"a4M-/p3 p72&l>0>Uhh= 1#!eJ`#&FNTM\jh1B,RBM(!JoUy{O_ e@ So4(D@^Tw?F]֝ä ?Nk"?w_KT\T+\_(Kjӷjmplhj -`\TPQE\Uui,St_o u~!ՠXEO9= T?FL?;uQ_Pm"rA @3sjQ1lğ=GoYniAleE9 MX|'w'0Ur^N!M$|A vzHD  # =hj4>T!]]>#IAU@܋?Fj?@2r`5B?F^ݷ?P6 t`  >B?\oEt# 6ΠZu 0Nu;Y~:#&}>0m8>  PJU2N贁Nwk?@ eL&A( 5bM(b[)h+h+$h&#[-M$#?& ?b$Z*'*B#O1O15 5`?CopyrigTt (c)02U0090M~0c|0osv0f2u1rx01a0iv0n}.0 Al0U |8s2e0e|05v0d0"H1P"L4M-/[3 [7&l>0>Uhh= m1#!S!J`#*&FPUy{_?NTMjC1gc RVMʣ(D#@ ![?F"$. ?Nk"W?IKTLTcKjRlhj p=' (*!)i,SO2Kes9T;QEGUFw6qX}__TM7fTZT\Dž}_P^52XOES"rA 0S#Es3iAleE9 MX|$Gxw'0UrIN!4gA xvzHD  # =hj4>T!]]>#!AU@܋?Fc_v?@#r`5B?F*ݷ?P6 t`  >B?\oEt# ap'EZu 0Nu;Y:|$># BJpU>#͙;? & ?5bbbz@}bAA& K&@ 2zGzt?"K@ L0"&N(bM)+TK/8Z*B<1<15 5`?CoyrigTt (c)s02009s0Mk0ci0osc0fq2b1r1aq0ic0n.s0 Al0 i8s2e0ei0v0d0b"5194M-t/H3 H7T &l>(>UhE=3Z1#E!J!FENTMjN@1h(NoUy{OO e@ o)4(D@^Tw?F]֝ä ?Nk"?'_KD3\T+\(Kj?ӷjmlhj P\ DiAlePsI=MXsG'0UzbZ6N!%$0 sFEjHD  # =hj8>T! ]]>#!AU@܋?F*?@#r`5BW?Fw?P6 t`  >B? \Et#տ|u l4RQu?]>I$>I# JpU>͙#<?& ?9bbbz@b#AE&bQ$$D 2zG[zt#@ L4"&R(^&I$Q)+]'I"^*Bh{.M#To1o15 9`?CoyrigTtk(c)k2009kM0c0os0f21r1a0i0n.k Al0 8s2e0e0v@d0f"h1l4M-:?{3 %{7&l>(>UhE= `51#I!J49fAn^ R)X f"B!Jui,SG?RSlOS u~!N]8-19= T?FL;uQ ?Nk"?YVTQRXQOnğ/=i n (\ wTiAaePE9 MXLg'0UbZiN!)$0 Lf`jUGD # hz4TYYT#BU@ѝ%bm?F? -wʬ?@aL?FHzaֺ?P} u` ?u#k/89bLd<`9ft"929<(.88LL``ttt g`"tk"[&Pw%f'aw%'LOd@:U~##0-U2?@M&#I1I1*"`?CopyrigPt (wc)020090Mx0cv0o%sp0f~2o1rr01ua~0ip0n.0_ Al0 v8Us2e0ev0v0 d0"B1(F4#B-#YU3 U73^=$V6#@hDCFCF ?B$e!Zl AC) 6 #HA%T8[5TL[ETA[Tt[AX[E(TWg$6iBH_'ɥ TQQ"(['ca %BL8RKjcU jcjctjcjciAD5 -6X\Gg'4CFZ!h ,J T  M#EMU@sހɞ?FRX??FHXܾ?P m>uA` o?u#pMJp -<p =PK =dK!=xKA -@K#K2(.K<FZn>t  8dIL"tW"tb!>bo!FQ~ouT!J>U2zGz?W@9 #>~&A@xb(b9;6" !$NF#g2#"~6 E2M"b9;7"iA<"A?*#AA#`?CopyrigXt (c)I@20U@9I@MA@c.?@os9@fGB8Ar;@tAaG@i9@n.I@ Al@ ?HsBeg@ej?@v@d@"ŤBM#C bG~6"!B'&"t"ElJ!XJUl&!!C 9P a u%#AR(!9J?F64EӠ0# C><# KONUjZ?FZw-i\֊\EYh3nNxQ1-o?o pPhEUU . [|iձ9\5gUF'?\x~Z__"QelQzai%?F\T_\{a+\FvwKd9Tꤲ8?F#?@?SA?F>@ ?Nk"`YUd}\kEWq_ʉh9(  GL%hYH.?FVRM\ߣ;b'\;uxPyJ}u?F`&d2?@s OuPu0%23[yO0]0N/\nn*\h|QY]#?FPWYmrWoDteQYx߫ *JR\uk'\eFJxdyX,?@ȼl<~ `0 ~ W$p-0K CF%X[myQYgPln\ g!A\?khQYHza2tY& CXeqUuUZT@3N}4#`Q :$  _?V3?C~Sa7BfN$!QA(.WLYET]__[{u?F7\H\U9ETt>CcxQuuj ?@llփ?Fc> Y6h 0)>AYIDҍuґ[Frq3ux@4S_헓^Agu"3J>ޟ9c]lIriMiI%`1-QD_'0U~6L50 HD: # =h4>TB#]]9 TqAU@aL?FHza_?P6 u` 7?u t  )t7U)2)LL>  @]JtU2qD ?=@LC&A@-bu(b)+&񆤍[=#L"#?& YA{/)R=#<@1@15 {`?Copy_rigTtT(c)T2U009TMo0cm0osg0fu2f1ri01a; ig0n}.T Al0U m8s2e0em05v0d0"91=4MB(=#-OL3K L7&l> R!U#( yD9 ]AB^1*=#; #p _w&&J`=#@0(v?F]?&d20ec+Η֑gRM(R!5?F`*JR8\9dFN\{IA\(T.8!T̠UX,?@azMھPZV OuPu0;Y?_  Ц;%u_6??&VUvl {aOǽXE!_3S@#) ۶?Fvn#o*`SrA@z#cXj3?llf"QooUF`z^?@|;h(;?F Bo*lN\_sVl]C#ll θ%67I~QUz$Ϙ&?F9;Y=FP-N\AY(V?`0 8_J_ t7YVZ\UAY%:$?Fx\.јAra#N\2T(AeGiAle59 MX=G|L"'0UbN!V0O5 HD: # =h4>TB#]]9 TU@[?F$Fh?@rp&?FQ^?P6 u` ?Mu t  c(o#)t7 5~/)2ڦ{)L5EEH AEJ2N迴Nk?=@LA@yb #z-bK( (2+I2&y<$v!Aƿx 0>U#3 TB#]]9 TIAU@$&?F`_0 ?P6 u` 7?u t  OFP-)t7t7)2)jL8> PJU2N_Nk?<@ʐL&A@{b]M(b[)Y+%Y+Y&y#$!Ax1B4MB(#-OQ3K Q7##l> 0>U#3 8A9 Bc1BD #p %J`#@0(v?F^?&d2 C<$I$IRMRM38T\.?@Y{_?F OuPu !YM4\ѶmPGq?l £iXD8*!}9!Y,a7Y.cqQE_S@ ۶?F?vn_P#rA 0S#cZ,1+\Ro#oDT#3 H[]9 U@֧?FS0?@2?F#+/º?P6 t`  )s}&?tM_%b̺P,\u duo#AԖJ2zGz?<)@LA@wbb)++&T[e#au) ?AH//)!!5 `?CopyrigTt (c) 02`09 0M0c0os f2!r 51a0i n. 0 AlP0 8sT2e(0e0vf0dH0I"!E]$M-# 'x&l> .U#,11 ] !a! #p| F%JYiC?F9dj6 {"aI"O(EF~! IGI4FpE%ExQ:^?FLgo$ҮLOHXEEq7R?FVs4մL`VR®LqlhndFEEH?F)HמLsVIfVEE6>6W?F{RLLlV±I]VVpE.A|IyW?Fjt6L'/#7M'$xvX2A|I*{q?FG>BL(fIfpE6AB|Iv7RPKeVR@ m%G:EERH]uwiyd`viAbE9 MX7MB'W0U:>!$)a% vHD # =h*0>T#3 H[]9 U@5 W?F)j?@#˳=.?F~0 ?P6 t`  5YY?tcxWUbYaۃku5 auom>J2zGz?R<@LA@bb*)++&񩆍[~e#u) ?A//) !!5 `?CopyrigTt (c) 02`09 0M0c0o%s f2!r 51ua0i n. 0_ AlP0 8UsT2e(0e0vf0 dH0I"!E]$M-#K 'x&l>U4>U#11 !a! #p F%JyO[f?FVj d~jɧd`X <݉O(pEF9IKG`E%pE9Hd?FBP(~LIHдDdAEpE|'R?F0RLFR׊L\RٴHpEJW*?FvݮL).uL[HpEO!ONciA1eE9 M*X7=B_'0Ub>!$a% fjHD: # =h4>TB#]]9 TIAU@s52W?Fp?@??F3bb!?P6 u` 7?u t  a pʙ)t7E d(2А3(L1qͯ8M"> BJU2N贁Nk?<)@L&A@{wbM(b[)Y+Y+Y&ԍ#;!Ax 0>AU#3 A hEn1MD #p %J`#@z?F"4_ G_ JXRM(*!*[%@[WB_$S@ʹ?FT! OuWPu #rDR$$cm9ha}Jl |>QxUUF9_C_bUATjHZ}?F\*JR?@x\?Ffl6 o`,Y\v ?\/{?TB#]]9 T]AU@_H?FX,ź?@M&?F?Pn6 u{` ?u t  9B)t7 _Ц;B2Zg)UL WB2> JU2N贁Nk?<@L/&A@{ba(bUo)m+m+m&j)##Ax 0>U#3 pA9 Bh1GD #p %J`)#@Ӯ?F9f&*ѦC)RRMU88ˢ?FZV WuPu1&Y9\M%_x;GKa YH_ ? >xx? eQj?r 5c!:o1oCgEa@QSE8>!_*JR\_ EarUE _d2?Fz`0  QU3rbA 0g#QsZ"?Rl BZqlDf +rGaeAiV\.岾\2_qd(Vpd y0Ale59 MXGG|B'0UlN!$AY5 @T_H.;s QEe OOH 3F8'I#?߸J[OF L~?fs" oD+^Cbo_?}G(ofWb[^_hTȅHBU??/&& ?B#@L&d2?=-8,?8>sUe1c6(?) 8  0%$iB`/ap0l0cat0on,servB,.0om0u0CUd0s0r0bDud@n@tw@'rk1eA^| 8SG6 u);M  ?ppqpw~xpqpppwywxpwppJp@t qq~>pwp;ww~w;NqOwqw<ZsfsqpDrag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aabi4Fѿ `??Ԇҿ4ӿw??n\.r0h47?=UG DF P# h @T(PYY# UF\.?@ `?@i4FѺP} u` ?Mu#b.CR;cbwe#1~U:DNblbb''U ^:"@,I@'Ui"r%ĉq{$ ?:"'4Wb {[W`:#2R 6Q )$#@&9D"D!L1:" ^:!ɜ'>0ÿ@q޴0?@2? @!260nuu0`i-12u]R@r\CC@5D"Ch3A 3/BD"'C9u`un `"[{ b:!u`!2{#A!'!B`?CopyrigPt (c) 20"P9 MPc. PosPfRQrPAQaPiPnQ Al\P Xs`Re4Pe PvrPdQ/`VPs_SBNQcPm!#5R46Q!r#d$r%2(={#&r#d&& "r$0Umb#]We,^l Um g%dk3dkUdbk%d lHmAdasVT/AQQr"0t"$32t23D!!i"5RQQ 76CC|8 PEAAD!11VA;w<A>1.b!EbF,J҄hdhr)z!*H/Abao(dTPHAS]ebw` MJPnu8P%aPtgqQrQA_` E uPpPeRPtU#%Q3E]!^PR0Rdgn PuPbu3 ZV![ PJPr 8p-?] ^ݝDrR/QMUr#D\TA4PuQb2`^%^,>T-%[ SvRiJP_Qj|UTT,^LPcJX뿠%%7B l ~PiRPgUχu0`ϓVb^RPorϖ|FJ(R@] p]D`MTNcw@Rkܲa҃Pz"`ۗh(mII@`YQd~PqSsߠt,JSgbRPdbsg삂xTz^VmQtHV{Q IwQjfT^ f 6R @`AQkQhz+[QmPu?t P PF쩂ŀ'ʨg삪eVT1^C@`!T` WDLÂ$X&݁^MrPm@RAyM_Ђŀp6 OPwQKSVyC݂IV[oBrPlPRglRTPuԋ//SPa)"C\PŀX//T` 7T= *![0`ѳ{QpT?f?Z?H%` APp\P-Q_/(/MZPCSŀv`ÿo!$q a f hrb`RoP!e82b bffs"`uRbk |p|ptR|{b{rՑwз@3u@`]^ā'vIo[jvpm_3 ՑՑ'<<މ!#QQaa ´$L0aI6s`ɱu`'ŘP!2P!r7{#453_&w"v#F3sNSYF!bF@!]8l#]no Ŵ1Gk,@b!,RvEoWo{mQQʽ3IFy !^ɲw` %2P&Ao)$0 Q`NE}WORKJUHu@PRR}ISQ  7BiA9_K_6hM3Ll'0Uƶ?5fAy 104(_HD # =hj0>T h]]9 5AU@(b?@L??@C?ִm?P6 jt`  o?ti[=(A Vu aSuo.]&A] *ԮJU2zGzt?@L#&A@bA#z7 5#1bO(b])j+$j&[ "*(w "?& ?AU$l/%B115 `?CopyrigTt (cu)Q02`09Q0uMI0cG0osA0IfO2@1rC0|1aO0iA0n.Q0 WAl0 G8s2Ueo0eG0v0d0"1E]4MŤ-&3 &7&l>]Uhz811U!J!Ž?@昫>djIIa? >"(E_~_ I%K9E 5E!*dK ;;5QIWEEE@sT&p _KnSA?<#R@V$T2ݰ?@ʡ /6q!I6`ObmMM\j=am {:e 뇿P> #? D"? 5-gg?j47!B{oogrK57!ibDAbE9 MX7'0U~rN!R$a)5 5vIzHD # =hj0>T h]]9 qAU@'P?@@="?@EP¿P6 t`  bm&Qo?t@@L]WI,#u aiuoL> JU2zGzt;?@L?&A@b}#zs q#1b(b)+$&[9#H",ɺ (wH"?& ?A$ /%9#BV1V15 `?CopyrigTt (cu)02`090uM0c0os}0If2|1r01a0i}0n.0 WAl0 8s2Ue0e0v0d0"O1E]S4MŤ-9#b3 b7&l>]Uhzt1.A!JN!DØ$j0djV1ax߃S(@où}sװ?@l[ 06q1I[Majnha_:e P> #? BK=o? n-?j4Bs!B{__Wr5s!D8E6V7гj_|_ ^XE.UB6VtMhNPڮs} /d_mOoT ݬ\VyWxRkrVo_bVh*g:n"'UaEɈ庾hBN>?Bn]zGvN7ViDAbE9 MX+G'0UPN!4ae5 MaHD # =hj0>T h]]9 U@Nr"?@v->u?@_w`|ach޺?P6 t`  !a&a?t,F=۳=uk;u5 auom>J2zGzt?@LA@b#zt1b(Wb!).+.&[-m(;?&L ?A$0/RQ%!!5 `?CopyrigTt (c)02`090M 0c 0os0f21r0@1a0i0n.0 Al[0 8s_2e30e 0vq0dS0T"!E]$Mb-# 'I&l>]Uhz!1!J@ 9ե djcYZ(_N9zOMGE%_Eohp3wO"K ңHE ^&_8_WE_OqOOOi&DAbE9 MX7}'0Ufb>!$a% f1jHD: # Uh4>T#]]9 M5AU@1b?@ 0?@(?@n?P6 JuM` ?u JYt  )t7xEA2&L_C?. > >tJU2q K?=@MJ&A@-b9(+bG)T+T&J[#"#a?& ?AH?/`)#115 {`?CopyrigTt (c);020G09;0M30c10os+0f92*1r-0f1ai+0n.;0 Al0 18s2eY0e10v0dy0z"!4B#e-?3 7)& b 0K8>U# ]A]A "1!ъ!$cIo <%OYAJE*dK;;\%W%E@-.L[.FX5ET^gY?@7гL;] W-\TB<#R?WLq#'?@Eڮs /6q!I'?`bmMW_Ye[7 VK=F: [jr ? D"? XZvD?a@Boog]r5;!QE _2%g@LO MLΈXa~#OTZiAle59 XG|"'0Uc&N!$05 .HD # =hj0>T h]]9 IAU@Du??@ e?@=?@n? 3?PJW?>t`  ^Z?t#Ǚ.YX?H"͋s?/HImG_BqhZ+u u$ >  J JpU?43f<!.&P?b3bbfz@1bAe&bq$d 2zGzt.#@LT"&r(~&i$q)(+}'i"~*#81815 `?Co yrigTt (c)o02`09o0Mg0ce0os_0fm2^1r 1am0i_0n.o0 Al0 e8s2e0ee0v0d0"11E]54M-#D3 %D7.&lUh#7 V1#Ai!J# F/?B1B  VRiAAbE9 MX G{W'0U*R2N!I$a {VZUHPuD  # #%>h 0JTpEI MU@Ž?@`?@4xS?@JBf&?HNtQ`  II?t#[  ii$ `kZNu  Miu%wj> JQ       % "&&tJNU2"K?H@Qs#N&A@b(b)++&Np}#> H1#19 ?#bbbz| &/5R }#11`?Co0yrig\t (c)02h090M0c0o%s0f21r0Aua0i0n.0_ Al!@ 8Us%Be0e0v7@ d@21a4t#-}#3K 746lJ #$JUp5 3 M19 1!aq(!@Llrkt# 837^1?@!?@km?P i ?e=1\iOT/irvs}i>`,of :m ,M ?? S&d2? *b?r4!B oo1gr. #5!>%(EQOOOO__@i1_C_ D4և]_o_#RX Ph'X___ #R__ (YQoSo+o=osd {oEeoooooopَm* hDV!VVi&n X"c7I!Hpg bf'iMjSE t%XyG|'0UUŢŞN!O4i |UGD # hz0TdYYBU@R-?@c1*?@=?@(kݫ?P} t`  87?t#_)TeΦu ]ukv  ̝L&UUU&I&3 U!!`?CopyrigPt _(c) 2\W09 M c os f"!r 1a i n}. Al00U (s42e0e uvF0d(0'HS$#-## 'I?k=#ǒ 2j$B##0U'BM3@&@F0Yk} #HA%DKb5DK3DK5DKED$!GiAZG5(|IDFX7yW'&Dŭ6!4YA yVZHD  # =hj4>T!]]>#AU@=?@!-??@$rq?P6 t`z  ?5t# rXѮu)Nu;):O]ע0 &> # " "+"+"+"+" $+"T-J[U7 ??& bA@ 2b4-#2zGzt#+@ Li68!6 ?}; 72U!:B#AA5 5`?CopyrigTt(c)20F@9M2@c.0@os*@f8B)Ar,@eAa8@i*@n. Al@ 0HsBeX@ej0@v@dx@)21"DM-,;?C G& l>]UhzAE!A#!ְ1J`#@l?@َm?NT,dKj&b&R&M/8T>f:?x6@8?@ߛ} _6q0YE*]\LThנKjfGD&Qhj iU3ULeVP۶W?@bs)h5oWKoWo;Kod}l$ro`nEBYFv?@D?%먪?@@3gZR^{|\6?vodmP}l>MBe 9 N 1iS? 1?grl#51:O"4gBa@Sq(UE^@A N?@CJ?m Y&v2rA @3ijD&}laqOz o?#WHZ'Qu{r>@\J"ۭ?@ yT?@ (U" +Web0)\ϼ(Pfodm}nv}l?V5(?q$Ix[cN#W{#iA&QeE9 MX''W0UdN! 0 /HD  # =hj0T h]]9 #]AU@~M)M?@۵+?@)?@4_=w?P6 u` ?u#t  3zM%t3ws%.<%H._'B> #PJU2N贁Nw[?@ʐL+&A@wbu](i+bk)%+&p%#4">9"<5!?& ?M#bbb͓z$ p&"/%T%#L1L15 w`?Co yrigTt (c)02`090M{0cy0oKss0f2r1r 1a0is0n.0 Al0 y8s2e0ey0v0d0"E1E(]I4M-%#X3 X7&l*>(UhE j1#$Ac!J`%#@J԰ί9?䟥!foAnBM(TfH?@3A,?@A') ?@:?PT% ibL6VLD5E+v;*AיH: 8snP%$? k?Q? \?4_!__Wr5 _! R,U3OC@bD}?@,en?P)Oy޾ ?pV?c"rA b$cZ-,u`κ\DT+V ?8<iAaeI=MX!GG'W0UxrFN!$ a FCzHD  # =hj4>T!]]>#IAU@+&Z?@A3?@0xS?@F#tݩ?P6 t`  >B?\oEt# ŖoZu 0Nu;Y:|8>$# JpU>##<?2& ?5bbbz@b#ANi&bu$'h 2N贁N[2$@ LX"D&v(&m$ :;T'm"*B#d1d15 5`?Co yrigTt (c)020090M0c0os0f21r 1a0i0n.0 Al0 8s2e0e0v0d0"]1"a4M-/p3 p72&l>0>Uhh= 1#!eJ`#&@NTM\jh1B,RBM(!JَmO_ e@ So4(DFtI?@:7f .6+qS w_KT\T+\(Kjӷjmlhj -`\TPQE\Upt_o ?u~!ՠXEOd<"PP'_Pm"rA @3sj߅Q1lğ=GoYniAleE9 MX'w'0Ur^N!M$|A vzHD  # =hj4>T!]]>#IAU@+&Z?@ ~*?@AxS?@mݩ?P6 t`  >B?\oEt# 6ΠZu 0Nu;Y~:#&}>0m8>  PJU2N贁Nwk?@ eL&A( 5bM(b[)h+h+$h&#[-M$#?& ?b$Z*'*B#O1O15 5`?CopyrigTt (c)02U0090M~0c|0osv0f2u1rx01a0iv0n}.0 Al0U |8s2e0e|05v0d0"H1P"L4M-/[3 [7&l>0>Uhh= m1#!S!J`#*&@[َm_?NTMjC1gc RVMʣ(D1FʞB.• .6q0IKTLTcKjRlhj ?p= (*!]ݏp{O2Ke?s9T;QEGUF/4qX-}__TM7fTZT\Dž}_P^52OES"rA 0S#Es3iAleE9 MX$Gxw'0UrIN!4gA xvzHD  # =hj4>T!]]>#!AU@+&Z?@r<I?@0xS?@F#tݩ?P6 t`  >B?\oEt# ap'EZu 0Nu;Y:|$># BJpU>#͙;? & ?5bbbz@}bAA& K&@ 2zGzt?"K@ L0"&N(bM)+TK/8Z*B<1<15 5`?CoyrigTt (c)s02009s0Mk0ci0osc0fq2b1r1aq0ic0n.s0 Al0 i8s2e0ei0v0d0b"5194M-t/H3 H7T &l>(>UhE=3Z1#E!J!@ENTMjN@1h(NَmOO e@ o)4(DFtI?@:7f .6q+ '_KD3\T+\(Kjӷjmlhjw P\DiAlesI=MXsG'W0Uzb6N!%$ 0 sFEjHD  # =hj8>T! ]]>#!AU@+&Z?@F#t?@0xSW?@w?P6 t`  >B? \Et#տ|u l4RQu?]>I$>I# JpU>͙#<?& ?9bbbz@b#AE&bQ$$D 2zG[zt#@ L4"&R(^&I$Q)+]'I"^*Bh{.M#To1o15 9`?CoyrigTtk(c)k2009kM0c0os0f21r1a0i0n.k Al0 8s2e0e0v@d0f"h1l4M-:?{3 %{7&l>(>UhE= `51#I!J49fAn^ R)X f"B!JpG?RSlOS u~!N]8-1d<"P?@:' .6q/ YVTQRXQOnğ=i n (\wTiAaeE9 MXLg'0UbiN!)$0 Lf`jUGD # hz0TdYYB%U@,b?@#@Ս??@c`q?P} Wt`{ f?t#F]tEY6<=P=d =x =f = =u )2<<PPd*dxxUu uE#U!!`?CopyrigPt (c)&02\09&0M0c.0os0f$21r0Q1a$0i0n.&0 All0 8sp2eD0ej0v0dd0"#S$#-`#d0" '?=#&#D66 2$B##0UcB3@P&0P4^ PP|H!YHA%DPK5DdK3DxK5DH!KED@K|DiAAa5IFrX7W'bD)6!4] VZUHPD  # #R>h-(JTeeM QU@f4F?@0`?pNuQ` ?u#>.R -<. =PK=dKQ -xK#|s } K2(.K<FZn#&خ7&Nt, t"t""tb#"NU2zGz?S@Q#N&A@u"b8b9,;,62 !4NF#2#"6 ]2M2b9;72iY<2Y?R#*A*A#`?Copyrwig\t hwc)a@20m@9a@MY@cW@o%sQ@f_BPArS@Aua_@iQ@n.a@_ Al@ WHUsBe@eW@v@-d@"l.]Upd驕XPQۿ~9`9(XTU_ϸTZAQeBtQ \_n_WT2ݰ?@-Ʒ꾌 ˠіTrivUqp5u ]M?@`?@#v;"ұ.+K oY\a'N%Z\nq3u@Q}6Ї'0)N77x[p EOGF؇AU;M_q߃{\Ԡ+ۜݾ4:` Һ!#S ?@.؏`r/A ?ǸBy vSul` g qMݞ@Y+9qZ U N)/` ?u[qirT@%֥x1֥X'0U "Ř6֥E0֥% UGD # hz0TdYYB%U@,b?@"@Ս??@c`q?P} Wt`{ f?t#E]tEuj )u74,bhi|1dlialiiX^hh||#R -u"iU!!`?CopyrigPt (c)&02\09&0M0c0os0f$21r0Q1a$0i0n.&0 All0 8sp2eD0e0v0dd0"#S$#I-#6# '?7)=#&#@D66 2$B##0UcB3@&04^AA| #,HA%D|K5DdK3DK5DKEDK|DiAcP5IFX7.W'bD6%!4] VZHD D# =h50>Th]]9 5AU@(b?@L??@Cmw?P6 t`  7?ti[=(_A u a)uo.dAd JU2zGzt?N@L &A@bA#zt7 5#1bO(Wb])j+j&[ "*(; "?&L ?AU$l/R%115 `?CopyrigTt (c)Q02`09Q0MI0cG0osA0fO2@1rC0|1aO0iA0n.Q0 Al0 G8s2eo0eG0v0d0"1E]4Mb-&3 &7I&l>]Uhz811U!J!Ž?@>djIׄIa? >"(E_~_ I%K9?E 5E!*dK ;;5QIWEEE@sT&p _KnA<#R@V$T2ݰ?@ʡ /6q!I6`bmMM\j=am {:e 뇥P> #? D"? 5-g?j47!B{oogr%57!ibDAAbE9 MX7'W0U~rN!$)a)5 5vIzHD # =hj0>T h]]9 qAU@'P?@@="?@EP¿P6 t`  bm&Qo?t@@L]WI,#u aiuoL> JU2zGzt;?@L ?&Aw@b}#zs q#1b](b)+I&[9#H",ɺ (H"?0& ?A$I /%9#V1V15 `?CopyrigTt (c)02`090M0c0os}0f2|1r01a0i}0n.0 Al0 8s2e0e0v0d0"O1E]S4M-9#b3 %b7&l>]Uhzt1.A!JN!DØ$j0djV1ax߃ݧ(@où}sװ?@lߵ[ 06Aq1I[Majnha_׾:e 뇥P> #? BK=o? n-?j4s!B{__Wr.5s!D8E6V7гj_|_ ?^XE.UB6VtMhNPڮs /d_mOoT ݬ\VߦyWx?RkrVo_bVh*g:n"'UaEɈ}hBN>?Bn]z/GvN7ViDAAbE9 MX+G'W0UPN!4)ae5 MaHD # =hj0>T h]]9 U@Nr"?@v->u?@_w`|ach޺?P6 t`  !a&a?t,F=۳=uk;u5 auoehAJ2zGzt?@L A@b#z1b(b!).+$.&[-m(w?& ?A$0/Q%B!!5 `?CopyrigTt (cu)02`090uM 0c 0os0If21r0@1a0i0n.0 WAl[0 8s_2Ue30e 0vq0dS0T"!E]$MŤ-# '&l>]Uhz!1 !J@ 9D djc?YZ(_N9zOMGE%_Eohp3wO"K ңHE ^&_8_WE_OqOO$Oi&DAbE9 MX7'0U*fb>!$a% f1jHD: # Uh4>T#]]9 M5AU@1b?@ 0?@(?@n?P6 JuM` ?u JYt  )t7xEA2&L_C?.> >tJU2q K?=@M &Aw@-b9(WbG)T+T&JJ[#"#?& ?A?/`) #115 {`?CopyrigTt (wc);020G09;0M30c10o%s+0f92*1r-0f1uai+0n.;0_ Al0 18Us2eY0e10v0 dy0z"!(4B#-?3 R7& bR 0K8>U# ]A]A `"1!!$?cIo <%YAJE*dK;;\%W%E@-.L[.FX5ET^gY?@߄7гL;] W-\_TB<#R?WLq#'?@Eڮs ?/6q!I'`bmMW_Ye[7 VK=F: [jr ? D"? X?ZvD?a@Boogr5;!QE 2%g@LO MLXa~#OTZiAle59 XG"'0Ujc&N!$05 .HD # =hj0>T h]]9 IAU@Du??@ e?@=?@n? 3?PJW?>t`  ^Z?t#Ǚ.YX?H"͋s?/HImG_BqhZ+u Su$A  H JpU?43f<!.&P? b3bbfz@1bAe&bq$d 2zGzt.#@LT"&r(~&i$q)(+}'i"~*#81815 `?Co yrigTt (c)o02`09o0Mg0ce0os_0fm2^1r 1am0i_0n.o0 Al0 e8s2e0ee0v0d0"11E]54M-#D3 %D7.&lUh#7 V1#Ai!J# F/?B1B  VRiAAbE9 MX G{W'0U*R2N!I$a {VZUHPuD  # #%>h 0JTpEI MU@Ž?@`?@4xS?@JBf&?HNtQ`  II?t#[  ii$ `kZNu  Miu%wj>JQ       % "&&tJNU2"K?H@Qs# &Aw@b(Wb)++I&Np}#>H1#19 ?#bbbIz| &/5R}#11`?Co0yrig\t (c)02h090M0c0oKs0f21r0Aa0i0n.0 Al!@ 8s%Be0e0v7@d@21(a4t#-}#3 746lJ#$JUp5 @3 M19 1!q(!@LlrkIt# 837^1?@!?@km?P i e=1\iOT/irv_s}i>`,of :m ,M ?? S&d2? *?b?r 4!B oo1g]r #5!>%(EQOOOO__@iڲ1_C_ D4O]_o_#RX Ph'___ #R__ (YQoSo+o=osd {oEeoooooopَm* hDV!VVi&n X"c7I!pg bf'iMjSE t%XyG|'0UŢŞN!O4i |UGD # hz0TdYYBU@R-?@c1*?@=?@(kݫ?P} t`  87?t#_)TeΦu ]ukvĝk!L"&UUU&I&3 U!!`?CopyrigPt(c)2\09M c o%s f"!r 1ua i n._ Al00 (Us42e0e vF0d(0'S$#-#l# '?Rk=#ǒ 2$ZB##0U'B3@&F0PYk} #HA%DKb5DK3DkK5DKED!GiA_B5|IDFX7yW'&Dŭ61YA yVZHD # =hj4>T ]]>#AU@=?@!-??@$rq?P6 t`z  ?5t# rXѮu)Nu;):O]ע0&> # " "+"+"+"+" $+"T-J[U7 ??& bA@ 2b4-#2zGzt#+@ Li68!6 ?}; 72U!:B#AA5 5`?CopyrigTt(c)20F@9M2@c.0@os*@f8B)Ar,@eAa8@i*@n. Al@ 0HsBeX@ej0@v@dx@)21"DM-,;?C G& l>]UhzAE!A#!ְ1J`#@l?@َm?NT,dKj&b&R&M/8T>f:?x6@8?@ߛ} _6q0YE*]\LThנKjfGD hj iU3ULeVP۶W?@bs)h5oWKoWo;Kod}l$ro`nEBYFv?@D?%먪?@@3gZR^{|\6?vodmP}l>MBe 9 N 1iS? 1?grl#51:O"4gBa@Sq(UE^@A N?@CJ?m Y&v2rA @3ijD&}laqOz o?#WHZ'Qu{r>@\J"ۭ?@ yT?@ (U" +Web0)\ϼ(Pfodm}nv}l?V5(?q$Ix[cN#W{#iA eE9 MX''W0UdN! 0 /HD # =hj0T h]]9 #]AU@~M)M?@۵+?@)?@4_=w?P6 u` ?u#t  3zM%t3ws%.<%H._'B> #PJU2N贁Nw[?@ʐL+&A@wbu](i+bk)%+&p%#4">9"<5!?& ?M#bbb͓z$ p&"/%T%#L1L15 w`?Co yrigTt (c)02`090M{0cy0oKss0f2r1r 1a0is0n.0 Al0 y8s2e0ey0v0d0"E1E(]I4M-%#X3 X7&l*>(UhE j1#$Ac!J`%#@J԰ί9?䟥!foAnBM(TfH?@3A,?@A') ?@:?PT% ibL6VLD5E+v;*AיH: 8snP%$? k?Q? \?4_!__Wr5 _! R,U3OC@bD}?@,en?P)Oy޾ ?pV?c"rA b$cZ-,u`κ\DT+ V ?8<iA eI=MX!GG'W0UxrFN!$ a FCzHD # =hj4>T ]]>#IAU@+&Z?@A3?@0xS?@F#tݩ?P6 t`  >B?\oEt# ŖoZu 0Nu;Y:|8>$# JpU>##<?2& ?5bbbz@}b#Ai&'bu$ 'h 2N贁N[J2$@ LX"&"v(&m$ :;'m"*B#Bd1d15 5`?Co yrigTt (c)0W20090M0]c0os0f2R1r 1a0i0n.0 AUl0 8s2e0e0v0d0@"]1"a4MY-/p3 p72&Rl>0>Uhh= Ђ1#!m!J`#&@ENTMj.h1%,RM(!JَmO_ e@ o)4(DFtI?@:7f .6qS w_KT\T+\(Kjӷjm hjw -`\TPQE\Up癙t_o u~!ՠXEOd<"PP'X_Pm"rA @3sjQ1lğO=GoYniA eE9 MX'w'0UUr^N!M$|A vzHD # =hj4>T ]]>#IAU@+&Z?@ ~*?@AxS?@mݩ?P6 t`  >B?\oEt# 6ΠZu 0Nu;Y~:#&}>0e8YAY Y PJU2N贁Nwk?@ eL&A( 5bM(b[)h+h+$h&#[-M$#?& ?b$Z*'*B#O1O15 5`?CopyrigTt (c)02U0090M~0c|0osv0f2u1rx01a0iv0n}.0 Al0U |8s2e0e|05v0d0"H1P"L4M-/[3 [7&l>0>Uhh= m1#!S!J`#*&@[َm_?NTMjC1cYK RVM(D1FʞB.• .W6q0IKTLT_cKjR hj p= (*!]pǙ{O2Kes9T;QEGUFڈ4qX-}__TM7fTZT\ODž}_P^b52OES"rAQ 0S#Es3iA eE9 MX$Gxw'0UUrIN!4gA xvzHD # =hj4>T ]]>#!AU@+&Z?@r<I?@0xS?@F#tݩ?P6 t`  >B?\oEt# ap'EZu 0Nu;Y:|$!># BJpU>#͙;? & ?5bbbz@}bAA&IK&@ 2zGzt?"K@ L0"&N(bM)+TK/8Z*B<1<15 5`?CoyrigTt (c)s02009s0Mk0ci0osc0fq2b1r1aq0ic0n.s0 Al0 i8s2e0ei0v0d0b"5194M-t/H3 H7T &l>(>UhE=3Z1#E!J!@ENTMjN@1h(NَmOO e@ o)4(DFtI?@:7f .6q+ '_KD3\T+\(Kjӷjm hjw P\DiA esI=MXsG'0Uzb6N(! 0 sFEjHD # =hj8>T! ]]>#!AU@+&Z?@F#t?@0xSW?@w?P6 t`  >B? \Et#տ|u l4RQu?]>I$">I# JpU>͙#<?& ?9bbbz@b#AE&bQ$$D 2zG[zt#@ L4"&R(^&I$Q)+]'I"^*Bh{.M#To1o15 9`?CoyrigTtk(c)k2009kM0c0os0f21r1a0i0n.k Al0 8s2e0e0v@d0f"h1l4M-:?{3 %{7&l>(>UhE= `51#I!J49fAn^ R)X f"B!JpG?RSlOS u~!N]8-1d<"P?@:' .6q/ YVTQRXQOnğ= l n (\wTiA eE9 MXLg'0UbiN!)$0 Lf`jUGD # hz0TdYYB%U@n?@c`?@,bػȻP} jt` o?t#uE]tZu M)u7#$_fh%i|&if'i(i̸)i*TiX^hUh||UTf"%-U!!`?CopyrigPtu c 2\W09&0M0c0os0f$21r0Q1a$0i0n}.&0 All0U 8sp2eD0e05v0dd0"#HS$#-## 'I?7=#&#D66 2b$B^0UcBM3@&T04^AA| #hHA%D|K5DK3DK5DKED@K|DiAAa5IFrX7W'bD)6!4] VZHD# # =hj0>T h]]9 5AU@(b?@L??@C?ִm?P6 jt`  o?ti[=(A Vu auo.$&> *ԮJU2zGzt?@L#&A@bA#z7 5#1bO(b])j+$j&[ "*(w "?& ?AU$l/%B115 `?CopyrigTt (cu)Q02`09Q0uMI0cG0osA0IfO2@1rC0|1aO0iA0n.Q0 WAl0 G8s2Ueo0eG0v0d0"1E]4MŤ-&3 &7&l>]Uhz811U!J!Ž?@昫>djIIa? >"(E_~_ I%K9E 5E!*dK ;;5QIWEEE@sT&p _KnSA?<#R@V$T2ݰ?@ʡ /6q!I6`ObmMM\j=am {:e 뇿P> #? D"? 5-gg?j47!B{oogrK57!ibDAbE9 MX7'0U~rN!R$a)5 5vIzHD# # =hj0>T h]]9 qAU@'P?@@="?@EP¿P6 t`  bm&Qo?t@@L]WI,#u aiuoL%> JU2zGzt;?@L?&A@b}#zs q#1b(b)+$&[9#H",ɺ (wH"?& ?A$ /%9#BV1V15 `?CopyrigTt (cu)02`090uM0c0os}0If2|1r01a0i}0n.0 WAl0 8s2Ue0e0v0d0"O1E]S4MŤ-9#b3 b7&l>]Uhzt1.A!JN!DØ$j0djV1ax߃S(@où}sװ?@l[ 06q1I[Majnha_:e P> #? BK=o? n-?j4Bs!B{__Wr5s!D8E6V7гj_|_ ^XE.UB6VtMhNPڮs} /d_mOoT ݬ\VyWxRkrVo_bVh*g:n"'UaEɈ庾hBN>?Bn]zGvN7ViDAbE9 MX+G'0UPN!4ae5 MaHD# # =hj0>T h]]9 U@Nr"?@v->u?@_w`|ach޺?P6 t`  !a&a?t,F=۳=uk;u5 auom&>J2zGzt?@LA@b#zt1b(Wb!).+.&[-m(;?&L ?A$0/RQ%!!5 `?CopyrigTt (c)02`090M 0c 0os0f21r0@1a0i0n.0 Al[0 8s_2e30e 0vq0dS0T"!E]$Mb-# 'I&l>]Uhz!1!J@ 9ե djcYZ(_N9zOMGE%_Eohp3wO"K ңHE ^&_8_WE_OqOOOi&DAbE9 MX7}'0Ufb>!$a% f1jHD:# # Uh4>T#]]9 M5AU@1b?@ 0?@(?@n?P6 JuM` ?u JYt  )t7xEA2&L_C?.'> >tJU2q K?=@MJ&A@-b9(+bG)T+T&J[#"#a?& ?AH?/`)#115 {`?CopyrigTt (c);020G09;0M30c10os+0f92*1r-0f1ai+0n.;0 Al0 18s2eY0e10v0dy0z"!4B#e-?3 7)& b 0K8>U# ]A]A "1!ъ!$cIo <%OYAJE*dK;;\%W%E@-.L[.FX5ET^gY?@7гL;] W-\TB<#R?WLq#'?@Eڮs /6q!I'?`bmMW_Ye[7 VK=F: [jr ? D"? XZvD?a@Boog]r5;!QE _2%g@LO MLΈXa~#OTZiAle59 XG|"'0Uc&N!$05 .HD# # =hj0>T h]]9 IAU@Du??@ e?@=?@n? 3?PJW?>t`  ^Z?t#Ǚ.YX?H"͋s?/HImG_BqhZ+u u$(>  J JpU?43f<!.&P?b3bbfz@1bAe&bq$d 2zGzt.#@LT"&r(~&i$q)(+}'i"~*#81815 `?Co yrigTt (c)o02`09o0Mg0ce0os_0fm2^1r 1am0i_0n.o0 Al0 e8s2e0ee0v0d0"11E]54M-#D3 %D7.&lUh#7 V1#Ai!J# F/?B1B  VRiAAbE9 MX G{W'0U*R2N!I$a {VZUHPuD # # #%>h 0JTpEI MU@Ž?@`?@4xS?@JBf&?HNtQ`  II?t#[  ii$ `kZNu  Miu%wj>)JQ       % "&&tJNU2"K?H@Qs#N&A@b(b)++&Np}#> H1#19 ?#bbbz| &/5R }#11`?Co0yrig\t (c)02h090M0c0o%s0f21r0Aua0i0n.0_ Al!@ 8Us%Be0e0v7@ d@21a4t#-}#3K 746lJ #$JUp5 3 M19 1!aq(!@Llrkt# 837^1?@!?@km?P i ?e=1\iOT/irvs}i>`,of :m ,M ?? S&d2? *b?r4!B oo1gr. #5!>%(EQOOOO__@i1_C_ D4և]_o_#RX Ph'X___ #R__ (YQoSo+o=osd {oEeoooooopَm* hDV!VVi&n X"c7I!Hpg bf'iMjSE t%XyG|'0UUŢŞN!O4i |UGD# # hz0TdYYBU@R-?@c1*?@=?@(kݫ?P} t`  87?t#_)TeΦu ]ukv*+,-̝./D]_&UUU&I&3 U!!`?CopyrigPt _(c) 2\W09 M c os f"!rT 1a i n] Al00 (Us42e0e vF0d'S$# # '?k=# 66 2$B ְ0U'B3@&F0Yk} #HA%DKb5DK3DK5D@KEDYAGiAZG5|IDFrX7yW'&D)ŭ6!4YA yVZHD* # =hj4>T!]]>#AU@=?@!-??@$rq?P6 t`z  ?5t# rXѮu)Nu;):O]ע0+&> # " "+"+"+"+" $+"T-J[U7 ??& bA@ 2b4-#2zGzt#+@ Li68!6 ?}; 72U!:B#AA5 5`?CopyrigTt(c)20F@9M2@c.0@os*@f8B)Ar,@eAa8@i*@n. Al@ 0HsBeX@ej0@v@dx@)21"DM-,;?C G& l>]UhzAE!A#!ְ1J`#@l?@َm?NT,dKj&b&R&M/8T>f:?x6@8?@ߛ} _6q0YE*]\LThנKjfGD&Qhj iU3ULeVP۶W?@bs)h5oWKoWo;Kod}l$ro`nEBYFv?@D?%먪?@@3gZR^{|\6?vodmP}l>MBe 9 N 1iS? 1?grl#51:O"4gBa@Sq(UE^@A N?@CJ?m Y&v2rA @3ijD&}laqOz o?#WHZ'Qu{r>@\J"ۭ?@ yT?@ (U" +Web0)\ϼ(Pfodm}nv}l?V5(?q$Ix[cN#W{#iA&QeE9 MX''W0UdN! 0 /HD* # =hj0T h]]9 #]AU@~M)M?@۵+?@)?@4_=w?P6 u` ?u#t  3zM%t3ws%.<%H._'B,> #PJU2N贁Nw[?@ʐL+&A@wbu](i+bk)%+&p%#4">9"<5!?& ?M#bbb͓z$ p&"/%T%#L1L15 w`?Co yrigTt (c)02`090M{0cy0oKss0f2r1r 1a0is0n.0 Al0 y8s2e0ey0v0d0"E1E(]I4M-%#X3 X7&l*>(UhE j1#$Ac!J`%#@J԰ί9?䟥!foAnBM(TfH?@3A,?@A') ?@:?PT% ibL6VLD5E+v;*AיH: 8snP%$? k?Q? \?4_!__Wr5 _! R,U3OC@bD}?@,en?P)Oy޾ ?pV?c"rA b$cZ-,u`κ\DT+V ?8<iAaeI=MX!GG'W0UxrFN!$ a FCzHD* # =hj4>T!]]>#IAU@+&Z?@A3?@0xS?@F#tݩ?P6 t`  >B?\oEt# ŖoZu 0Nu;Y:|8->$# JpU>##<?2& ?5bbbz@}b#Ai&'bu$ 'h 2N贁N[J2$@ LX"&"v(&m$ :;'m"*B#Bd1d15 5`?Co yrigTt (c)0W20090M0]c0os0f2R1r 1a0i0n.0 AUl0 8s2e0e0v0d0@"]1"a4MX,p3 p72&Rl>0>Uhh= Ђ1#!m!J`#&@ENTMj.h1%,RM(!JَmO_ e@ o)4(DFtI?@:7f .6qS w_KT\T+\(Kjӷjmlhjw -`\TPQE\Up癙t_o u~!ՠXEOd<"PP'X_Pm"rA @3sjQ1lğO=GoYniAleE9 MX'w'0UUr^N!M$|A vzHD* # =hj4>T!]]>#IAU@+&Z?@ ~*?@AxS?@mݩ?P6 t`  >B?\oEt# 6ΠZu 0Nu;Y~:#&}>0m8.>  PJU2N贁Nwk?@ eL&A( 5bM(b[)h+h+$h&#[-M$#?& ?b$Z*'*B#O1O15 5`?CopyrigTt (c)02U0090M~0c|0osv0f2u1rx01a0iv0n}.0 Al0U |8s2e0e|05v0d0"H1P"L4M-/[3 [7&l>0>Uhh= m1#!S!J`#*&@[َm_?NTMjC1cK RVM(D1FʞB.• .W6q0IKTLT_cKjRlhj p= (*!]pǙ{O2Kes9T;QEGUFڈ4qX-}__TM7fTZT\ODž}_P^b52OES"rAQ 0S#Es3iAleE9 MX$Gxw'0UUrIN!4gA xvzHD* # =hj4>T!]]>#!AU@+&Z?@r<I?@0xS?@F#tݩ?P6 t`  >B?\oEt# ap'EZu 0Nu;Y:|$/># BJpU>#͙;? & ?5bbbz@}bAA&IK&@ 2zGzt?"K@ L0"&N(bM)+TK/8Z*B<1<15 5`?CoyrigTt (c)s02009s0Mk0ci0osc0fq2b1r1aq0ic0n.s0 Al0 i8s2e0ei0v0d0b"5194M-t/H3 H7T &l>(>UhE=3Z1#E!J!@ENTMjN@1h(NَmOO e@ o)4(DFtI?@:7f .6q+ '_KD3\T+\(Kjӷjmlhjw P\DiAlesI=MXsG'W0Uzb6N!%$ 0 sFEjHD* # =hj8>T! ]]>#!AU@+&Z?@F#t?@0xSW?@w?P6 t`  >B? \Et#տ|u l4RQu?]>I$0>I# JpU>͙#<?& ?9bbbz@b#AE&bQ$$D 2zG[zt#@ L4"&R(^&I$Q)+]'I"^*Bh{.M#To1o15 9`?CoyrigTtk(c)k2009kM0c0os0f21r1a0i0n.k Al0 8s2e0e0v@d0f"h1l4M-:?{3 %{7&l>(>UhE= `51#I!J49fAn^ R)X f"B!JpG?RSlOS u~!N]8-1d<"P?@:' .6q/ YVTQRXQOnğ=i n (\wTiAaeE9 MXLg'0UbiN!)$ Lf`jUGD # hz0TdYYB%U@n?@T h]]9 5AU@(b?@L??@C?ִm?P6 jt`  o?ti[=(A Vu auo.2&> *ԮJU2zGzt?@L#&A@bA#z7 5#1bO(b])j+$j&[ "*(w "?& ?AU$l/%B115 `?CopyrigTt (cu)Q02`09Q0uMI0cG0osA0IfO2@1rC0|1aO0iA0n.Q0 WAl0 G8s2Ueo0eG0v0d0"1E]4MŤ-&3 &7&l>]Uhz811U!J!Ž?@昫>djIIa? >"(E_~_ I%K9E 5E!*dK ;;5QIWEEE@sT&p _KnSA?<#R@V$T2ݰ?@ʡ /6q!I6`ObmMM\j=am {:e 뇿P> #? D"? 5-gg?j47!B{oogrK57!ibDAbE9 MX7'0U~rN!R$a)5 5vIzHD1 # =hj0>T h]]9 qAU@'P?@@="?@EP¿P6 t`  bm&Qo?t@@L]WI,#u aiuoL3> JU2zGzt;?@L?&A@b}#zs q#1b(b)+$&[9#H",ɺ (wH"?& ?A$ /%9#BV1V15 `?CopyrigTt (cu)02`090uM0c0os}0If2|1r01a0i}0n.0 WAl0 8s2Ue0e0v0d0"O1E]S4MŤ-9#b3 b7&l>]Uhzt1.A!JN!DØ$j0djV1ax߃S(@où}sװ?@l[ 06q1I[Majnha_:e P> #? BK=o? n-?j4Bs!B{__Wr5s!D8E6V7гj_|_ ^XE.UB6VtMhNPڮs} /d_mOoT ݬ\VyWxRkrVo_bVh*g:n"'UaEɈ庾hBN>?Bn]zGvN7ViDAbE9 MX+G'0UPN!4ae5 MaHD1 # =hj0>T h]]9 U@Nr"?@v->u?@_w`|ach޺?P6 t`  !a&a?t,F=۳=uk;u5 auom4>J2zGzt?@LA@b#zt1b(Wb!).+.&[-m(;?&L ?A$0/RQ%!!5 `?CopyrigTt (c)02`090M 0c 0os0f21r0@1a0i0n.0 Al[0 8s_2e30e 0vq0dS0T"!E]$Mb-# 'I&l>]Uhz!1!J@ 9ե djcYZ(_N9zOMGE%_Eohp3wO"K ңHE ^&_8_WE_OqOOOi&DAbE9 MX7}'0Ufb>!$a% f1jHD:1 # Uh4>T#]]9 M5AU@1b?@ 0?@(?@n?P6 JuM` ?u JYt  )t7xEA2&L_C?.5> >tJU2q K?=@MJ&A@-b9(+bG)T+T&J[#"#a?& ?AH?/`)#115 {`?CopyrigTt (c);020G09;0M30c10os+0f92*1r-0f1ai+0n.;0 Al0 18s2eY0e10v0dy0z"!4B#e-?3 7)& b 0K8>U# ]A]A "1!ъ!$cIo <%OYAJE*dK;;\%W%E@-.L[.FX5ET^gY?@7гL;] W-\TB<#R?WLq#'?@Eڮs /6q!I'?`bmMW_Ye[7 VK=F: [jr ? D"? XZvD?a@Boogr@QE 2%g@LO MLXa~#OTZiAle59 XG"'0Ujc&N!$05 .HD1 # =hj0>T h]]9 IAU@Du??@ e?@=?@n? 3?PJW?>t`  ^Z?t#Ǚ.YX?H"͋s?/HImG_BqhZ+u u$6>  J JpU?43f<!.&P?b3bbfz@1bAe&bq$d 2zGzt.#@LT"&r(~&i$q)(+}'i"~*#81815 `?Co yrigTt (c)o02`09o0Mg0ce0os_0fm2^1r 1am0i_0n.o0 Al0 e8s2e0ee0v0d0"11E]54M-#D3 %D7.&lUh#7 V1#Ai!J# F/?B1B  VRiAAbE9 MX G{W'0U*R2N!I$a {VZUHPuD 1 # #%>h 0JTpEI MU@Ž?@`?@4xS?@JBf&?HNtQ`  II?t#[  ii$ `kZNu  Miu%wj>7JQ       % "&&tJNU2"K?H@Qs#N&A@b(b)++&Np}#> H1#19 ?#bbbz| &/5R }#11`?Co0yrig\t (c)02h090M0c0o%s0f21r0Aua0i0n.0_ Al!@ 8Us%Be0e0v7@ d@21a4t#-}#3K 746lJ #$JUp5 3 M19 1!aq(!@Llrkt# 837^1?@!?@km?P i ?e=1\iOT/irvs}i>`,of :m ,M ?? S&d2? *b?r4!B oo1gr. #5!>%(EQOOOO__@i1_C_ D4և]_o_#RX Ph'X___ #R__ (YQoSo+o=osd {oEeoooooopَm* hDV!VVi&n X"c7I!Hpg bf'iMjSE t%XyG|'0UUŢŞN!O4i |UGD1 # hz0TdYYBU@R-?@c1*?@=?@(kݫ?P} t`  87?t#_)TeΦu ]ukv89:;̝<=L>&UUU&I&3 U!!`?CopyrigPt _(c) 2\]0 M c os f"!r 1a i n}. Al00U (s42e0e uvF0d(0'HS$#-## ' ?kǒ 2j$B##0U'BM3@&@F0Yk} #HA%DKb5DK3DK5DKED$!GiAZG5(|IDFX7yW'&Dŭ6!4YA yVZHD8 # =hj4>T!]]>#AU@=?@!-??@$rq?P6 t`z  ?5t# rXѮu)Nu;):O]ע09&> # " "+"+"+"+" $+"T-J[U7 ??& bA@ 2b4-#2zGzt#+@ Li68!6 ?}; 72U!:B#AA5 5`?CopyrigTt(c)20F@9M2@c.0@os*@f8B)Ar,@eAa8@i*@n. Al@ 0HsBeX@ej0@v@dx@)21"DM-,;?C G& l>]UhzAE!A#!ְ1J`#@l?@َm?NT,dKj&b&R&M/8T>f:?x6@8?@ߛ} _6q0YE*]\LThנKjfGD&Qhj iU3ULeVP۶W?@bs)h5oWKoWo;Kod}l$ro`nEBYFv?@D?%먪?@@3gZR^{|\6?vodmP}l>MBe 9 N 1iS? 1?grl#51:O"4gBa@Sq(UE^@A N?@CJ?m Y&v2rA @3ijD&}laqOz o?#WHZ'Qu{r>@\J"ۭ?@ yT?@ (U" +Web0)\ϼ(Pfodm}nv}l?V5(?q$Ix[cN#W{#iA&QeE9 MX''W0UdN! 0 /HD8 # =hj0T h]]9 #]AU@~M)M?@۵+?@)?@4_=w?P6 u` ?u#t  3zM%t3ws%.<%H._'B:> #PJU2N贁Nw[?@ʐL+&A@wbu](i+bk)%+&p%#4">9"<5!?& ?M#bbb͓z$ p&"/%T%#L1L15 w`?Co yrigTt (c)02`090M{0cy0oKss0f2r1r 1a0is0n.0 Al0 y8s2e0ey0v0d0"E1E(]I4M-%#X3 X7&l*>(UhE j1#$Ac!J`%#@J԰ί9?䟥!foAnBM(TfH?@3A,?@A') ?@:?PT% ibL6VLD5E+v;*AH 8snP%$? k?Q? \?4_!__Wr5 _! R,U3OC@bD}?@,en?P)Oy޾ ?pV?c"rA b$cZ-,u`κ\DT+V ?8<iAaeI=MX!GG'W0UxrFN!$ a FCzHD8 # =hj4>T!]]>#IAU@+&Z?@A3?@0xS?@F#tݩ?P6 t`  >B?\oEt# ŖoZu 0Nu;Y:| ;>$# JpU>##<?2& ?5bbbz@}b#Ai&'bu$ 'h 2N贁N[J2$@ LX"&"v(&m$ :;'m"*B#Bd1d15 5`?Co yrigTt (c)0W20090M0]c0os0f2R1r 1a0i0n.0 AUl0 8s2e0e0v0d0@"]1"a4MY-/p3 p72&Rl>0>Uhh= Ђ1#!m!J`#&@ENTMj.h1%,RM(!JَmO_ e@ o)4(DFtI?@:7f .6qS w_KT\T+\(Kjӷjmlhjw -`\TPQE\Up癙t_o u~!ՠXEOd<"PP'X_Pm"rA @3sjQ1lğO=GoYniAleE9 MX'w'0UUr^N!M$|A vzHD8 # =hj4>T!]]>#IAU@+&Z?@ ~*?@AxS?@mݩ?P6 t`  >B?\oEt# 6ΠZu 0Nu;Y~:#&}>0n <>  PJU2N贁Nwk?@ eL&A( 5bM(b[)h+h+$h&#[-M$#?& ?b$Z*'*B#O1O15 5`?CopyrigTt (c)02U0090M~0c|0osv0f2u1rx01a0iv0n}.0 Al0U |8s2e0e|05v0d0"H1P"L4M-/[3 [7&l>0>Uhh= m1#!S!J`#*&@[َm_?NTMjC1cK RVM(D1FʞB.• .W6q0IKTLT_cKjRlhj p= (*!]pǙ{O2Kes9T;QEGUFڈ4qX-}__TM7fTZT\ODž}_P^b52OES"rAQ 0S#Es3iAleE9 MX$Gxw'0UUrIN!4gA xvzHD8 # =hj4>T!]]>#!AU@+&Z?@r<I?@0xS?@F#tݩ?P6 t`  >B?\oEt# ap'EZu 0Nu;Y:|$=># BJpU>#͙;? & ?5bbbz@}bAA&IK&@ 2zGzt?"K@ L0"&N(bM)+TK/8Z*B<1<15 5`?CoyrigTt (c)s02009s0Mk0ci0osc0fq2b1r1aq0ic0n.s0 Al0 i8s2e0ei0v0d0b"5194M-t/H3 H7T &l>(>UhE=3Z1#E!J!@ENTMjN@1h(NَmOO e@ o)4(DFtI?@:7f .6q+ '_KD3\T+\(Kjӷjmlhjw P\DiAlesI=MXsG'W0Uzb6N!%$ 0 sFEjHD8 # =h TB ]]>T#!AU@+&Z?@F#t?@0xS?@?P6 ։t`  >B? \E7t#| u l4Ru?]>jI$>>#  ՆJpU>͙#<?& ?9bbbz@b#;AE&bQ$ID 2zGzt#@ $L4"&R(^&I$EQ)+]'I"^*aBh{.M#o1o15 9`?CoyrigTtk(wc)k2009kM0c0o%s0f21r1ua0i0n.k_ Al0 8Us2e0e0v@ d0f"h1(l4M-:?{3K {7&l>*(>UhE= `51#-I!J49An^ RRX f"B!Jp?RSlOS u~! N]8-1d<"P?@:' .6q/ YVTQRXQOnğ=i n (\wTiAaeE(9 MXLg_'0UbiN-!)$0 Lf`j_Hf:L;s O}N#N۱?F=#>+"OF H4M~?f?oD+X_" oV?GU%afhn;h3HH8"E֛%",1x㫿I4[}L^P|}8\^X]زV4~) FuK(x29HKXv!5$M'*ȽT.XL2 )8(5h9;;@%B7XHILz)hO`S3~V)?HY G'\)XH`)q@d )sg)uk9(xm.9{0rx}tR9yd9x}{]9xU9%AUFD  h(^TYYBHUFjZ?F~??x<F BPG(?P } Xč ]B66]  TTUTTTT99d9bȅBU?? /&-& ?B#@L&_d2?r-Ƀ(\.ҕ(s.sU!&/DJ) f% G 04%eB`-r<0al,tim<0,s<0rvZ2,coR0pSuN0a3dP0sN0UrP0bn4dL0n<0wtwh0rk195^| (SG& iz ?!3E?? ? DuDGGD wp{Dtp pqwtDD@pqwqDwqWt pqpq ppw)wwwqd^wqpuwwwww`Drag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aabjZֿ~??cN׿ mF1??V↑T*J??@ ?UG DF P# h @T(PYY# [U@jZ?@~?tP} u` ?u#2>D>HX DHlHYHH HE .E9O؍>DDXXllRu'9j &",' !)2&5qq/4 F?"'4b0{[`+:#2J6Q_9$"3&9<"L1"e ^!'>_@ÿ@qh@?@`B?BgD]F0#B-u)@`-1Bu@r#CC5GAB2C9uv`u `"[ۢ b!-u`2/3Qy1y7B`?CopyrigPt0(c])020P90uMPcPosPIfRQrPQaPiPn 0AUl` XsbePePv&`d/`VPs_SBNcPm!#5>P8616a񁧙y1&3db4&5=B+h8=/3z6&3@d66 2&4#/30U!r3(]ge<^1E U#&5m Hq&5twV5t{3t{FEt{t{y {et !{|tYwmAdPaуIOB!T !:a:a&20#V2Hdada32=FB3J1125db6$q 7~C|hhE)*^Q_`CQCQ"A11=B;8ARrSqea> e1A+E4FAނX !#8dT7`XQy`]r` MPWnuPaPt%ar6aYQ` UE]0uPpU`e`tee^V5Qn],1PRd M`uU`b¯Ԧ30! PPr#5GCHhz]daD&bQe^\޿𿏫AP)aB`Ҩ75^gyϏ% S*biPaϷZeTϏLPcX&ϫk5N`ߪrBDl2`i`g̨)@ߑRPoʂѩ|(Z\@E pKD`YĖUSPaPePlP6?ЪXp9` ATP7`?>` /aZ4\nJSbI`W`QmU`u`QW&Zʒ=NwRka8<.2` Ҩ גc[mI` ad2`%c& dϐnĝs   Nx7I(鑙mDa9tV/a I͢+a Nf󨑙 R `Qa/ / 3I/ WM`C//+ tP I`? %3?E? 2Ă? 2Nv??;H"d2QCxk3` W ڧ%?NV1OCOC aOO#ޅO`M&`mRO_ӧYNp+_=_Q;OUq1y_Qi_${_Mqt!Tw*̩fo*SU@jZ?@ű܁?/v/vUpSp2u8p` ?bup`  B=ݩ`M,{t!Wp$53m-ׁ<3otm!#Qbq`׏ݥBT!).ot!xAfg>pÿ$XbUrq vU:֒rrrvvvrse"`Rozk10 eCZbb ccbr@O":tblcuP`TfnM}1o0BzW}_obW1W2\/b^@aaaaFҴ_tAaY6*P`u$`Rb`ݡ` a|.x^€ݥ5_b]&bЂF3s͵NSY`H\rV@4/eD8S^D&@SDՐUFZk,@rb4,>b}aaYV nw` %P& S.1a`NEWORKp2%H P!RURISϑQԑR!i| o2ohX|AS'0U?! 0oHD # =hj0>T h]]9  5AU@jZ?@͂T??@x?SF?P6 jt`  o?tk[>(A Vu aSuo.]&A]  *ԮJU2zGzt?@L#&A@bA#z7 5#1bO(b])j+$j&[ "*(w "?& ?AU$l/%B115 `?CopyrigTt (cu)Q02`09Q0uMI0cG0osA0IfO2@1rC0|1aO0iA0n.Q0 WAl0 G8s2Ueo0eG0v0d0"1E]4MŤ-&3 &7&l>]Uhz811U!J!u6?@+\.>djIIa? >"(EǑ I%K9E 5EU . K ;;5QIWEEE@ _KnSA?8@VBu?@DR> ?Nk"\6`ObmMM\j=am {:e 뇿P> #? D"? 5-gg?j47!B{oogrK57!ibDAbE9 MX7'0U~rN!R$a)5 5vIzHD # =hj0>T h]]9  qAU@;?@I5K?@xEL?6ѿP6 t`  bm&Qo?t@@L]WI,#u aiuoL> JU2zGzt;?@L?&A@b}#zs q#1b(b)+$&[9#H",ɺ (wH"?& ?A$ /%9#BV1V15 `?CopyrigTt (cu)02`090uM0c0os}0If2|1r01a0i}0n.0 WAl0 8s2Ue0e0v0d0"O1E]S4MŤ-9#b3 b7&l>]Uhzt1.A!JN!m.%-+0djV1ax߃S(@J-&?@ mO"> ?Nk"L[Majnha_:e P> #? BK=o? n-?j4Bs!B{__Wr5s!D8E6V 6?wj_|_ ^XE.U6Vz T6 @ d_mOoT ݬ\VߦyWx?RkrVo_bVh*g:n"'UaEjz}36>CN>?Bn]z/GvN7ViDAAbE9 MX+G'W0UPN!4)ae5 MaHD # =hj0>T h]]9  U@jpiH?@^?@$?@]F?P6 t`  !a&ao?t,F=۳=u;u auo>J2zGzwt?@ʐLAw@b#z1b](b!).+I.&[-m(?0& ?A$I0/Q%!!5 `?CopyrigTt (c)02`090M 0c 0os0f21r0@1a0i0n.0 Al[0 8s_2e30e 0vq0dS0T"!E]$M-# %'&l>]Uhz!1!J@% djc~YZ(_N9zOMGE%_EH$SwO"K ңHE ^&_8_WE_OqOHOOi&DAbPE9 MX7'0UUfb>!$a % f1jHD # Uh4>T#]]9 M5AU@jZ?@L|+?@?@({~?P6 JuM` ?u JYt )t7zEA2&L_D?. > >tJU2q K?=@MJ&A@-b9(+bG)T+T&J[#"#a?& ?AH?/`)#115 {`?CopyrigTt (c);020G09;0M30c10os+0f92*1r-0f1ai+0n.;0 Al0 18s2eY0e10v0dy0z"!4B#e-?3 7)& b 0K8>U# ]A]A "1!ъ!PzQ <%OYAJEU . K;;\%W%E@($L[.FX5Eai%?@ 6?wL;] W-\TB⤲8?W&SA?@ @ ?Nk"L'`bmMW_Ye[7 VK=F: [jr ? D"? X?ZvD?a@Boogr5;!QEؿx]SiLO MLXa~WOTZiAle59 XG"'0Ujc&N!$05 .HD # =hj0>T h]]9  IAU@K?@OgVb?@Y%?@wᳬ?PJW?>t`  ^Z?t#ə.E @x?r?/{4܂ G _Z+u u$ >  J JpU?43f<!.&P?b3bbfz@1bAe&bq$d 2zGzt.#@LT"&r(~&i$q)(+}'i"~*#81815 `?Co yrigTt (c)o02`09o0Mg0ce0os_0fm2^1r 1am0i_0n.o0 Al0 e8s2e0ee0v0d0"11E]54M-#D3 %D7.&lUh#7 V1#Ai!J# F/?B1B  VRiAAbE9 MX G{W'0U*R2N!I$a {VZUHPD  # #>h0JTpERI MU@u6?@jc{g&?@%r`5B?@m_F:Is?HNtQ`  II?t#]  _ii$!`kNu  iu%wj>M JQ T       "@&&JNU2"?H@Qs#N&A@b(bU)++&RNp}#>H1#19 ?#bbbz| R&/5R}#11`?Co0yrig\t (c)02h090M0c0os0f21r0Aa0i0n.0 Al!@ 8s%Be0e0v7@d@21a4t#-}#3 %746lJ#$JUp5 3 M19 1!q(!@nElrkRt# 8$kcD?@숒@)?@P?P"EkU |1\iOT/irvs}i>`_,of :m ,M ?? S&d2? *b?r4B!B oo1gr #5!>%(EQOOOO__@Ac1_C_ D4ևS]_o_yRX+{_,__ #R__ (YQoSo+o=osd {oEeoooooo@yUy{* hDV!VV(I X"c7I!pg bf'iMjSE t%XyG|'0UŢŞN!O4i |UGD # hz0TdYYBU@(%)?@xg^?@0߯H?@s7Uݹ?P} t` 87?t#_)TeΦu ]ukv  ̝L&UUU&I&3 U!!`?CopyrigPt _(c) 2\W09 M c os f"!r 1a i n}. Al00U (s42e0e uvF0d(0'HS$#-## 'I?k=#ǒ 2j$B##0U'BM3@&@F0Yk} #HA%DKb5DK3DK5DKED$!GiAZG5(|IDFX7yW'&Dŭ6!4YA yVZHD  # =hj4>T!]]>#AU@0߯H?@z)e??@˞9q?P6 t`z  ?5t# rXѮu)Nu;):O]ע0 &> # " "+"+"+"+" $+"T-J[U7 ??& bA@ 2b4-#2zGzt#+@ Li68!6 ?}; 72U!:B#AA5 5`?CopyrigTt(c)20F@9M2@c.0@os*@f8B)Ar,@eAa8@i*@n. Al@ 0HsBeX@ej0@v@dx@)21"DM-,;?C G& l>]UhzAE!A#!ְ1J`#@{&pz?@Uy{?NT,dKj&b&R&M/8T9K-q?x6@F?@dG0 >Nk"?YE*]\LT_hKjfGD&Qhj iU3UGe&Y_`?@/b%)h5oWKoWo;KTod}l$roҥ`nE2K?@ˌ%4G{?@ -q eZ̿R^{|\6?vodmP}l>MBe 9 N 1iS? 1?g]rl#51:O("4ga@Sq(UE^@O|ǐ[`Ρa g v2rA @3ijD&}l迲aqOz o?#WHZ'Qu=*[^N?@]%P?@O&@ c?@аM<n ?` eb0)\(Pfodm}nv}l?V5(?q$Ix[cN#W{#iA&QeE9 MX|''0UdN!0 /HD  # =hj0T h]]9 #]AU@}%?@R$,?@6#V?@c_3֡w?P6 u` ?u#t  3zM%t3ws%.<%H._'B> #PJU2N贁Nw[?@ʐL+&A@wbu](i+bk)%+&p%#4">9"<5!?& ?M#bbb͓z$ p&"/%T%#L1L15 w`?Co yrigTt (c)02`090M{0cy0oKss0f2r1r 1a0is0n.0 Al0 y8s2e0ey0v0d0"E1E(]I4M-%#X3 X7&l*>(UhE j1#$Ac!J`%#@5e$_F??!foA3nBM( V?@J-RHQ??@S!R?P| llHL6VLD5E+v;*AʙH: 8snP%$? k?Q? \?f4_!_t_Wr5_! R,U3OC@IL?@4~Kz?P)Oy޾ T!]]>#IAU@܋?@2Oa>?@#r`5B?@*ݷ?P6 t`  >B?\oEt# ŖoZu 0Nu;Y:|8>$# JpU>##<?2& ?5bbbz@b#ANi&bu$'h 2N贁N[2$@ LX"D&v(&m$ :;T'm"*B#d1d15 5`?Co yrigTt (c)020090M0c0os0f21r 1a0i0n.0 Al0 8s2e0e0v0d0"]1"a4M-/p3 p72&l>0>Uhh= 1#!eJ`#&@NTM\jh1B,RBM(!JoUy{O_ e@ So4(DF^Tw?@]֝ä ?Nk"?w_KT\T+\(Kj?ӷjmlhj -`\TPQE\Uu?i,St_o u~!XEO9= T?@L;uQ_Pm"rA @3sjQ1lğ= GoYniAlePE9 MX'w'0UrJ^N!M$|A vzHD  # =hj4>T!]]>#IAU@܋?@j?@2r`5B?@^ݷ?P6 t`  >B?\oEt# 6ΠZu 0Nu;Y~:#&}>0m8>  PJU2N贁Nwk?@ eL&A( 5bM(b[)h+h+$h&#[-M$#?& ?b$Z*'*B#O1O15 5`?CopyrigTt (c)02U0090M~0c|0osv0f2u1rx01a0iv0n}.0 Al0U |8s2e0e|05v0d0"H1P"L4M-/[3 [7&l>0>Uhh= m1#!S!J`#*&@PUy{_?NTMjC1gc RVMʣ(D#F ![?@"$. ?Nk"?+IKTLTcKjRlhj p= (*!)i,SO2Kes9T;QEGUFw6qX}__TM7fTZT\Dž}I_P^52O,ES"rA 0S# Es3iAlePE9 MX$Gxw'0UrJIN!4gA xvzHD  # =hj4>T!]]>#!AU@܋?@c_v?@#r`5B?@*ݷ?P6 t`  >B?\oEt# ap'EZu 0Nu;Y:|$># BJpU>#͙;? & ?5bbbz@}bAA& K&@ 2zGzt?"K@ L0"&N(bM)+TK/8Z*B<1<15 5`?CoyrigTt (c)s02009s0Mk0ci0osc0fq2b1r1aq0ic0n.s0 Al0 i8s2e0ei0v0d0b"5194M-t/H3 H7T &l>(>UhE=3Z1#E!J!@ENTMjN@1h(NoUy{OO e@ o)4(DF^Tw?@]֝ ?Nk_"?'_KD3\T+\(Kjjmlhj P\DiAlesI(=MXsG_'0Uzb6N-!%$0 sFEjHD  # =hj8>T! ]]>#!AU@܋?@*?@#r`5BW?@w?P6 t`  >B? \Et#տ|u l4RQu?]>I$>I# JpU>͙#<?& ?9bbbz@b#AE&bQ$$D 2zG[zt#@ L4"&R(^&I$Q)+]'I"^*Bh{.M#To1o15 9`?CoyrigTtk(c)k2009kM0c0os0f21r1a0i0n.k Al0 8s2e0e0v@d0f"h1l4M-:?{3 %{7&l>(>UhE= `51#I!J49fAn^ R)X f"B!Jui,SG?RSlOS u~!N]8-19= T?@L;uQ ?Nk"?YVTQRXQOnğ/=i n (\ wTiAaePE9 MXLg'0UbZiN!)$0 Lf`jUGD # hz4TYYT#BU@5?@`0 ?@ t2пP} mu` o?u#`/8d<L1<`9tU(.88LL`Zttt n۶m۶tgf!m-2!tUH~#a#[0U"?@W& a#!!o*"`?CopyrigPt (c)020090M0c oKs f2!r 31a0i n.0 AlN0 (sR2e&0e vd0dF0O"!P$X#B-a## '(#^=a$&X#466 2X$e(^%(5 a#dHoJX%DK|%D@tK5D8Gg&AUc_'TAAX"U(@SaX%2X"ihalI&X7lG'җ$6!40 lFZHD # =hj0>T h]]9 U@oC(?@mWں?@?@Vw?P6 u` ?ut  zU%t3b~}U%.9%UHS> " "" :"" N" b"w"w"w"w"w",w"&/8$w"D,w"PX,w"l#JU 'N((?6 ?A\bbRbz@A0ubbub9)b(8bI4e32zGz?088r@LF:Z2P?b96<2: e3AA5 w`?CopyrigTt (c)@2`09@M@c@o%s@fBAr@Qua@i@n.@_ Al3P HUs7Re Pe@vIP d+P2AE]DM-e3CK G6l>]4Uh8QQ9 !$]b!N!:"AZQ1J`e3@%?@~霤0df'#'/^&b^&M8Xd,O?@PR?@?cߡj ZW0?ri5kHiN׶_\(Úw ckfH AjG|olAGeEA@:?@wUѳ?@wN?P-DT! ]ujye6|ñlL|*%k UUB H 7 C? J? _7ͫ?kwr351:kw41b 8eXojc@{h`荞ۚӴh2rhA%`3`8z?ZJJ=aOy?5qexzaeyw?@J?@yZI?@G& hbt=lkKv>tZa7L|W顟tpҷ!iY#?@#?@sڎ`{R2zo |r}q#z_Ţ6|;|L|8dt~aay W(Ci?@%91?@;8.n?Pris%r{i"6|v}YaL|q|zKΏ#e!yEy?@ ,&G>@"_yy޼X/JCl;~e*6|<8L|wK|༬g >P`r#'9Ze%aiHJo?@U ?@qU}?@;E | /BYlx6|3@*aqOy5#*:!iZO?@C?@cQ`p`~ |IJ1Mlw^6|G#U_L|-hPbqN!yU_s8?@#`Ӳol?U6Xl?RiAeu9 MuXXWt'0UjDŰ^!40uE  HD: # =h4>T]]9 !AU@Fr+?@;?@Ě9?@UGݳ?P6 mu` o?u t  ܍`)t7Sׅ!)25Ia(L޿f$A F  EJU 'N(( ? & ?A`bbRbz@AA ybbub>)-b(D#GbKy!>#c#y D#2zGzt?088r@Ls"&D*8"PX/bl$d"x!(^('d"*S1S15 {`?CopyrigTt (c)020090M0c0oKsz0f2y1r|01a0iz0n.0 Al0 8s2e0e0v0d0"L1@P4M@ D-(O_3 _7 &l  Uh#7 q1+Ad!J VD, |-1R0SVbR( b 0AleE9 MXPG'0U$bZuN!%$0b5 VZHD "#=h0>T@++]]9 ِU@XΞ(?@?@/?@?P6 u` 7?u#t  ʿ%t3{%.9*%HS@7> ]A"" D:" N" b"b"""""""/$"&/8$"D,"X,@"l/~$"$J}tU2q0?=@L6Aw@)b8Wb9;6R[3G 2D?IF !?A?I3AA5 w`?CopyrigTt (c)@2`09@M@c@oKs@fBAr@Qa0i@n.@ Al!P Hs%Re@e@v7PdPBAE(]DM-3C GIFlT>oAT>U+<oAoA]!:" _$ }$AT#/ARJ`3@w{?@Vk@E$|&b|&M HA@nY?@C<ϖ?@:[?P-DT! ]W0alxk>8 <_ 敶`TWbXB p = ? >)PK? ?r#51:]ow41b(H1|_s8?@#`ӲalaDw5Xwl5dEJdZO?@C?@m-p?@w  [edir[wlWV(|uY:l>|j/v w$117JGJo?@U ?@tf+?@?ktzDzXwl(|}x|'=}A[tJ%?@~ל?@~?@.RV~7bߌ:|wla_=v}V痒_Fts4$imƉEy?@Q`/&G>@7;[8|{oodEJCwlv(|5t0\>|9?jՉt0GutWt1Cw3tw#e!i W(?@i?@ :=-?@|`̍f?PodiT rwlAD:(|F|v>| 8O/'ݦ[dvπw&30#e:!FY#?@>#?@r1?@4rzXw\.wl[2jq(|kj祐m>|VOdvs|N!F~oCO !L?@iOS#~Lf%>~zi4ptc+y$>|A ߟqayy-詺alB{TJ7b!iWyw?@f?@$1F?@ݏOD bϑANoBrQN 3*z׳]SqAy -;b>Sgi8TQTQB(YAeeXXyW _'0UiŞ^-!dD0^ 4UHLuD" # R>h 0JTlaHaMCqMU@?NB?@S[s~?@$O?@WZ}8Ÿ?P >uA` ?u4 >t  aU֠y)t7Fϯ1)2_G\Lȟ9flMlA  Z   J>U2zGzt?088r@9 3#>C&A@ybbRbPzw u#-b(bJ)+&N=#!!{`?CopyrigXt (c)02d090M0c.0os0f21r0J1a0i0n.0 Ale0 8si2e=0ej0v{0d]0" !]$4#- 'N((#?6 ?Me>aۀw R4` A#0c{0n01lI23zjw Mw bbbz5Iu#m{EZA<O&Ob5ObNbbOO((/%BG=## '6,lo>R4"lTJ$JUl 5I 1qYƕ!1(R!dӘ`?@S?il0"NX N i*ƙ?@`1Ww?@ټ?P^ÿ D* @[Q ʸZZ\!PX@: \Ŀ gsY @ [,˿? @?t@@Boogr5w!(NU^_p____Xj?R&[T2\o~e!ϏW_"?@\L-ed5?PO6h  U6bMmpN_W\4VI~zl{yfdDԻ~g,+?Ȏ !ood{ &'iMf5 4%uXW_'0U&[J!4e% 7KUHLuD" # I>h(J TEI 3AU@jZ?@({~+?P >uA` ?u#J* )8* 9LG 9`G 9tG 9G 9G9G9G!9GA )@G#"G.$*G8"B"V"j"~""""""l" ,>t   2t2z%2pbEC3O2J>U2zGz?@9 k3>{6A@wb8b9e;62 !4Nu3Bl322F 2M2bE9^K72S!υ`T9`U ?@ `kd\|SiDlؓ<N oldџtGlI?@~?@(t RV~'\Wc-N3pMq$$z$ơ𑯣@&'/6&G>@9 ;?@{gPDlCɚ>#(䞌!gP5|Tf- $` iR9$a/|`;fF`kDlӀ 7A?,s-mqBNf)ϭB*$`#?@ yC$`4rzY|˱AM^)Cm#ŗƦ}?zƀ9b"fjO?@m0?kOS3\?bUAfqGi?SbRS۾Cf?il߯aapeX/G|.lRxX U n@42PrŮ 8b:oLn?Ce(jY榄el`ƀEqQAeRp _og}u?@9 mO".l9=8/ ee )l.%-+mlփ?@U->V.lɽ7yHvOfўA=$}$ʊ x @4S>a U}62D 'e !aS#Ł&ʊi$!Tl51A1X/'0U;"2F1&E01 *_H;s eoY޴OXF #C4KOF H ~?fTnD+g5rV?GGȁfH ߝx ? 8  8 F֛ , µ5$   X ^6x? N{ } ( ' $ ,K #!UFD  h(^TYYB UFjZ?F~??x<F BPG(?P } X ]B66]  TTUTTTT96ȴHBU?Q?G ?B@L&ɯd2?6-G(?\.Y(7. sU!}&/)J'( G 0]B`)proxy,se 0v2,c 0mput4di0t 0ib*4d0n0t;w 0rk! e^| (SG& i?!3E?? ?    wp   p qw qw]qwqpqwwqqpvppww&www]qawqpwoww6zwxvDrag onut hepe.Rih-c]lckaUdcos UPo etQeAvUwreP 5aabjZֿ~??cN׿ mF1??S{V↑T*J?@ ?UG DF P# h @T(PYY# [U@jZ?@~?tP} u` ?u#2>D>HX DHlHYHH HE .E9O؍>DDXXllRu'9j &",'US2&5/4 ?"'4Wb0{['`:[1#26" !^Q_9$"3&9"/L6 2&!'ݯ>o@ÿ@qx@?@-pB?wDmF03Bu9@`҈-1Bu@r#CC 5(GAB2Cm9u`u `"[ b!u`/3Qy1y7B`?CopyrigPt0(c)020P90MPc.PosPfRQrPaaPiPn 0Al ` Xs$bePePv6`d/`VPs_SBNcPm!#5P86PG`y1&3db4&5MBh8=/3z6&3d66 Ԁ2&4#/30U1r3]ge<^AE U#&5m Hq&5twV5t{3t{VEt{t{y {et !{|tYwmAdaI_BT.1JaJa&2tataV21@32MVB3Z112I5tb6 7C|hhE) *”nQo`Г!SQSQA11BMB;1brcqe a> !b1AEDFQ.1#8dTG`XQ`])rw` M`nuP%aPt5arFaiQ` EqiPm6`nPvdnV5Q~]1PRd ]`ue`bү30 ! P`r3EWSHx]C(D6bQα eϿn\ϢAP9aB#`75^wωZ% S:bi` #ajeTZLPch@6߫k5^p߂BTlB`i`g̨9@ߡRPoڂ|8Z\@ 0p([D`ĦSPaPe`l`FOX.I` $TP*G`ON`?aj͒soSb Y`qP(xP⨠ڒMNwbk'aL.2`} sYkIpadB`5c6 d  nĭs  ^x5GmTat f?a Iݢ;a ^f󸑩 R pa/a //1G/UM`C/(/+Qme`utP Y`? 5^D.?@?} 0B? B^v??;EHd2QC'i3` W@ڥ%O^V/O0AOC~ aOO#O/`M6`mbO_i^p)_;_O;!O) eo1y]QHg_y_]qt1dw:fo(SU@jZ?@~??v?vepcpBuHp` ?bup`Ta],t1(gp"51m-< Corm1 QrHqBT1.mt1xAdg>pÿސc$bepq verrrvvvrs^c"`Roxi1@ e2Sjbb aabr >@"JtbauP`hoe{1.@zU}_ rU1U2l-bŕnaaaaVҴoAaY6(P`u4`r}`}`azxn4~5_r&bВF3sNSYT}lrV@z-eB8QnBLQBӐSV֜Z,@rBD*<`}(aaY Vn` %P&@!S>1a`NEWORKJn2H P߰}!R尪RI߰S͑QґBio0ohhAQ'0Uƛ?!10oHD # =hj0>T h]]9  5AU@jZ?@͂T??@x?SF?P6 jt`  o?tk[>(A Vu aSuo.]&A]  *ԮJU2zGzt?@L#&A@bA#z7 5#1bO(b])j+$j&[ "*(w "?& ?AU$l/%B115 `?CopyrigTt (cu)Q02`09Q0uMI0cG0osA0IfO2@1rC0|1aO0iA0n.Q0 WAl0 G8s2Ueo0eG0v0d0"1E]4MŤ-&3 &7&l>]Uhz811U!J!u6?@+\.>djIIa? >"(EǑ I%K9E 5EU . K ;;5QIWEEE@ _KnSA?8@VBu?@DR> ?Nk"\6`ObmMM\j=am {:e 뇿P> #? D"? 5-gg?j47!B{oogrK57!ibDAbE9 MX7'0U~rN!R$a)5 5vIzHD # =hj0>T h]]9  qAU@;?@I5K?@xEL?6ѿP6 t`  bm&Qo?t@@L]WI,#u aiuoL> JU2zGzt;?@L?&A@b}#zs q#1b(b)+$&[9#H",ɺ (wH"?& ?A$ /%9#BV1V15 `?CopyrigTt (cu)02`090uM0c0os}0If2|1r01a0i}0n.0 WAl0 8s2Ue0e0v0d0"O1E]S4MŤ-9#b3 b7&l>]Uhzt1.A!JN!m.%-+0djV1ax߃S(@J-&?@ mO"> ?Nk"L[Majnha_:e P> #? BK=o? n-?j4Bs!B{__Wr5s!D8E6V 6?wj_|_ ^XE.U6Vz T6 @ d_mOoT ݬ\VߦyWx?RkrVo_bVh*g:n"'UaEjz}36>CN>?Bn]z/GvN7ViDAAbE9 MX+G'W0UPN!4)ae5 MaHD # =hj0>T h]]9  U@jpiH?@^?@$?@]F?P6 t`  !a&ao?t,F=۳=u;u auo>J2zGzwt?@ʐLAw@b#z1b](b!).+I.&[-m(?0& ?A$I0/Q%!!5 `?CopyrigTt (c)02`090M 0c 0os0f21r0@1a0i0n.0 Al[0 8s_2e30e 0vq0dS0T"!E]$M-# %'&l>]Uhz!1!J@% djc~YZ(_N9zOMGE%_EH$SwO"K ңHE ^&_8_WE_OqOHOOi&DAbPE9 MX7'0UUfb>!$a % f1jHD # Uh4>T#]]9 M5AU@jZ?@L|+?@?@({~?P6 JuM` ?u JYt )t7zEA2&L_D?. > >tJU2q K?=@MJ&A@-b9(+bG)T+T&J[#"#a?& ?AH?/`)#115 {`?CopyrigTt (c);020G09;0M30c10os+0f92*1r-0f1ai+0n.;0 Al0 18s2eY0e10v0dy0z"!4B#e-?3 7)& b 0K8>U# ]A]A "1!ъ!PzQ <%OYAJEU . K;;\%W%E@($L[.FX5Eai%?@ 6?wL;] W-\TB⤲8?W&SA?@ @ ?Nk"L'`bmMW_Ye[7 VK=F: [jr ? D"? X?ZvD?a@Boogr5;!QEؿx]SiLO MLXa~WOTZiAle59 XG"'0Ujc&N!$05 .HD # =hj0>T h]]9  IAU@K?@OgVb?@Y%?@wᳬ?PJW?>t`  ^Z?t#ə.E @x?r?/{4܂ G _Z+u u$ >  J JpU?43f<!.&P?b3bbfz@1bAe&bq$d 2zGzt.#@LT"&r(~&i$q)(+}'i"~*#81815 `?Co yrigTt (c)o02`09o0Mg0ce0os_0fm2^1r 1am0i_0n.o0 Al0 e8s2e0ee0v0d0"11E]54M-#D3 %D7.&lUh#7 V1#Ai!J# F/?B1B  VRiAAbE9 MX G{W'0U*R2N!I$a {VZUHPD  # #>h0JTpERI MU@u6?@jc{g&?@%r`5B?@m_F:Is?HNtQ`  II?t#]  _ii$!`kNu  iu%wj>M JQ T       "@&&JNU2"?H@Qs#N&A@b(bU)++&RNp}#>H1#19 ?#bbbz| R&/5R}#11`?Co0yrig\t (c)02h090M0c0os0f21r0Aa0i0n.0 Al!@ 8s%Be0e0v7@d@21a4t#-}#3 %746lJ#$JUp5 3 M19 1!q(!@nElrkRt# 8$kcD?@숒@)?@P?P"EkU |1\iOT/irvs}i>`_,of :m ,M ?? S&d2? *b?r4B!B oo1gr #5!>%(EQOOOO__@Ac1_C_ D4ևS]_o_yRX+{_,__ #R__ (YQoSo+o=osd {oEeoooooo@yUy{* hDV!VV(I X"c7I!pg bf'iMjSE t%XyG|'0UŢŞN!O4i |UGD # hz0TdYYBU@(%)?@xg^?@0߯H?@s7Uݹ?P} t` 87?t#_)TeΦu ]ukv  ̝L&UUU&I&3 U!!`?CopyrigPt _(c) 2\W09 M c os f"!r 1a i n}. Al00U (s42e0e uvF0d(0'HS$#-## 'I?k=#ǒ 2j$B##0U'BM3@&@F0Yk} #HA%DKb5DK3DK5DKED$!GiAZG5(|IDFX7yW'&Dŭ6!4YA yVZHD  # =hj4>T!]]>#AU@0߯H?@z)e??@˞9q?P6 t`z  ?5t# rXѮu)Nu;):O]ע0 &> # " "+"+"+"+" $+"T-J[U7 ??& bA@ 2b4-#2zGzt#+@ Li68!6 ?}; 72U!:B#AA5 5`?CopyrigTt(c)20F@9M2@c.0@os*@f8B)Ar,@eAa8@i*@n. Al@ 0HsBeX@ej0@v@dx@)21"DM-,;?C G& l>]UhzAE!A#!ְ1J`#@{&pz?@Uy{?NT,dKj&b&R&M/8T9K-q?x6@F?@dG0 >Nk"?YE*]\LT_hKjfGD&Qhj iU3UGe&Y_`?@/b%)h5oWKoWo;KTod}l$roҥ`nE2K?@ˌ%4G{?@ -q eZ̿R^{|\6?vodmP}l>MBe 9 N 1iS? 1?g]rl#51:O("4ga@Sq(UE^@O|ǐ[`Ρa g v2rA @3ijD&}l迲aqOz o?#WHZ'Qu=*[^N?@]%P?@O&@ c?@аM<n ?` eb0)\(Pfodm}nv}l?V5(?q$Ix[cN#W{#iA&QeE9 MX|''0UdN!0 /HD  # =hj0T h]]9 #]AU@}%?@R$,?@6#V?@c_3֡w?P6 u` ?u#t  3zM%t3ws%.<%H._'B> #PJU2N贁Nw[?@ʐL+&A@wbu](i+bk)%+&p%#4">9"<5!?& ?M#bbb͓z$ p&"/%T%#L1L15 w`?Co yrigTt (c)02`090M{0cy0oKss0f2r1r 1a0is0n.0 Al0 y8s2e0ey0v0d0"E1E(]I4M-%#X3 X7&l*>(UhE j1#$Ac!J`%#@5e$_F??!foA3nBM( V?@J-RHQ??@S!R?P| llHL6VLD5E+v;*AʙH: 8snP%$? k?Q? \?f4_!_t_Wr5_! R,U3OC@IL?@4~Kz?P)Oy޾ T!]]>#IAU@܋?@2Oa>?@#r`5B?@*ݷ?P6 t`  >B?\oEt# ŖoZu 0Nu;Y:|8>$# JpU>##<?2& ?5bbbz@b#ANi&bu$'h 2N贁N[2$@ LX"D&v(&m$ :;T'm"*B#d1d15 5`?Co yrigTt (c)020090M0c0os0f21r 1a0i0n.0 Al0 8s2e0e0v0d0"]1"a4M-/p3 p72&l>0>Uhh= 1#!eJ`#&@NTM\jh1B,RBM(!JoUy{O_ e@ So4(DF^Tw?@]֝ä ?Nk"?w_KT\T+\(Kj?ӷjmlhj -`\TPQE\Uu?i,St_o u~!XEO9= T?@L;uQ_Pm"rA @3sjQ1lğ= GoYniAlePE9 MX'w'0UrJ^N!M$|A vzHD  # =hj4>T!]]>#IAU@܋?@j?@2r`5B?@^ݷ?P6 t`  >B?\oEt# 6ΠZu 0Nu;Y~:#&}>0m8>  PJU2N贁Nwk?@ eL&A( 5bM(b[)h+h+$h&#[-M$#?& ?b$Z*'*B#O1O15 5`?CopyrigTt (c)02U0090M~0c|0osv0f2u1rx01a0iv0n}.0 Al0U |8s2e0e|05v0d0"H1P"L4M-/[3 [7&l>0>Uhh= m1#!S!J`#*&@PUy{_?NTMjC1gc RVMʣ(D#F ![?@"$. ?Nk"?+IKTLTcKjRlhj p= (*!)i,SO2Kes9T;QEGUFw6qX}__TM7fTZT\Dž}I_P^52O,ES"rA 0S# Es3iAlePE9 MX$Gxw'0UrJIN!4gA xvzHD  # =hj4>T!]]>#!AU@܋?@c_v?@#r`5B?@*ݷ?P6 t`  >B?\oEt# ap'EZu 0Nu;Y:|$># BJpU>#͙;? & ?5bbbz@}bAA& K&@ 2zGzt?"K@ L0"&N(bM)+TK/8Z*B<1<15 5`?CoyrigTt (c)s02009s0Mk0ci0osc0fq2b1r1aq0ic0n.s0 Al0 i8s2e0ei0v0d0b"5194M-t/H3 H7T &l>(>UhE=3Z1#E!J!@ENTMjN@1h(NoUy{OO e@ o)4(DF^Tw?@]֝ ?Nk_"?'_KD3\T+\(Kjjmlhj P\DiAlesI(=MXsG_'0Uzb6N-!%$0 sFEjHD  # =hj8>T! ]]>#!AU@܋?@*?@#r`5BW?@w?P6 t`  >B? \Et#տ|u l4RQu?]>I$>I# JpU>͙#<?& ?9bbbz@b#AE&bQ$$D 2zG[zt#@ L4"&R(^&I$Q)+]'I"^*Bh{.M#To1o15 9`?CoyrigTtk(c)k2009kM0c0os0f21r1a0i0n.k Al0 8s2e0e0v@d0f"h1l4M-:?{3 %{7&l>(>UhE= `51#I!J49fAn^ R)X f"B!Jui,SG?RSlOS u~!N]8-19= T?@L;uQ ?Nk"?YVTQRXQOnğ/=i n (\ wTiAaePE9 MXLg'0UbZiN!)$0 Lf`jUGD # hz4TYYT#BqU@I7@(?@M&d2?@ t2?@`0 ֺ?P} u` ?u#L+/8<L9`( .88L``t $Itmj gf! !UC~#9#0Up"?҃@/&T9#ة!!G*`?CopyrigPt (c) W20 9 M ]c os f"R!r 1a i n. AUl&0 (s*2e e v<0d0'"!$0#B-9## E'w#^=9$&0#466 20$e#$^ #30%T% 9#HLA0%XD`cKT%XD8cGg&AdaO^'TcAcA0"J-(3Ca0%g2AATBK6S`6SihaX5 &X~7kW'o$ţ6!40 kVZUHLuD" # I>h ,J T  M#EMU@jZ?F"??@`^?P m>uA` o?u#VpMJp -<pA -PK#TdK2(.K<FZnf>t  t3|>b!F\.岿uKJ>U2zGz?@9 ?#>O&Aw@b(Wb)+&r" !$NI#"@#W"6 "\M"b)2;'r",r"/I#11G#`?CopyrigXt (c)020090M0c0os0f21r01a0i0n.0 Al@ 8sBe0e0v-@d@7"BMI#3 76@"!"t1"=ElJ4Ul8@AAC 9 =Q A(#UA!=(^!rCa?@ئ3 (0 # ?˕8# ; MkKUN>UV\u5m[} 0҂X3^E] 0__  yXE>UU . W[ ?;;l\gU>U@}bAo\nZM?NXAjai%?@;D%V\^ W-l\jp҂T9?T8?@)#?@@SA?@9ؾ@ ?Nk"?YY5`bmMl\K,q_ܱy[_7 GH5'  ΀X:YC}u?@H[V\u۶m۶l\&Dn۹XQ`C"4` NQ:Y%u?^&W[DqodUQ:YxLPp"2V\$I$Ik]T@!X Q LPݟd(: ?j=YU>UsG_YY f_x^AA(G!EM_&_8[}u?@R6V\9=8uG5xQHuQu?@mlփ?@t;/> ~t~Y|Of|͸ 4zTB#]]9 TU@ t2?@`0 ??@?Pn6 u{` ?u th  )t72(LMm>EJ2wq?=@LA@yb #z.-b( (%2+2&>@f'?& ?A`bbb)$bf/ !4/U%T115 {`?CopyrigTt:(c):20Y09:ME0cC0oKs=0fK2<1r?0x1aK0i=0n.: Al0 C8s2ek0eC0v0d0X"1P4MB-?"3 "7&l> 8>U# RARA9 ]41 #p U%J`@`C C?s9ӑ] ,VM^(s"2ǟO?Y!c1ƸFU5V^dln__ iQsX5VUF__ _ ROJ)XE2O,E"rA 0"|c3JQVU-?@k}A_Є\a#BFUVU~t?kb\+g!^(`d E0Ale59 MXGB'W0Ur8N!<+0%5 zvzUHxuD4" # J#UU >ha0JTaaMU@ t2?@* 7?@H"G?P tQ`  7?,t#6Z hӀ6C2wqGCLvnCu3;uM;2zGzt?>@QA@Ebbbz+ )#abC(+bQ)^+^&)y#?&)?I"O+^+N,l'R,1,1G`?Co}p rig}t:(c):]209:M[0]cY0osS0fa2RR1rU01aa0iS0n.: AUl0 Y8s2e0eY0v0d0@"%1Y)4-83 87$&lUмJ1$ KAp +!~ F F FFFFFFFFF"`!Q[C(CUH?@ &[\uP^CyyTQX3CUjdO[_TtY/`T7Q5____TCUQegG idpogZ4EQ$EGy#3 oEMF#r 7f;_\tTQZsR om_ hlРpv_QeT_2z|ro.FQpt8Auo,>PC^Awz^ @f xY 0BTfx+ 6yI8_mBԐYˏRdٮy %D+x]&8J\n+ }C2q}[eu៿x **xa@Rdv+ zܿȯگ ?{kk 1/ g_xeZl~ƺfZ?@&KWYܿvl")Q )yxitϘϪϼƹCG?@sw8⼕5Pvl'<(fT( ,ӓxmߠ߲ƹ"?@7.&ὡ }'i,D @?.v0B/ Ixq7L+&rZS^e ap\1r;K[J\ vfx N 8cBym <ÊvK%d!dv +@x$6k& LJ (4 e/ P}/@M x //)/;/M/ +'λ fe/?ioH?d/jiAlDlBATKA@egI^%L8X<ӈ9G'0mUB? <!d0M 9FMJHD: # =h4>TB#]]9 TU@ t2?@`0 ??@?Pn6 u{` ?u th  )t72(L>REJt2q?R=@LA@-bbJ )+&[Z#?m& ?A/$)񩣑!!5 {`?Copy_rigTt:(c):2U0 09:M c os f"!r *1ai n}.: AlE0U (sI2e0e 5v[0d=0>"!$MB(-?#K 'm&l>8>U# AA9 ]p! #p +;%J`@`CD Cs9ӑY] FMD(s"2O?I!c1ƸE%^d _2_ iAsLXw5UF_w_O ?RJ)LXE2OE"rA l0".cm3AU-?@[}A_6\G#BEU~tS?[~b6\WD(3`d Alew59 M*X7^B_'0Uur>!<0% ,v@z_Hp;s 7E HHlrFv#FNPOF ~?f8/ D+ [?Gy{f,7,X   F֛o5x hYe$] (6xH@+NA.D?19،6p:Lu?A[4(T9$>K"4H5UI6bb7oC|11r9Y:/;!!B>ʔ:x;b5J\ vq\u^NOVAqVL:0M;` q-/ps8s/p_/pp%p9ef/px4n .  iq!im-5_'0Uşn, Ưa"A"ٲ8߷c-5yc]JVDqb#[#b$2BPk(C']D`V,lّq^ TB*^"AQCc^,hf0B,x iZ'Qi3UxBm@4S}`ajh[S?u{MG/ä}c$-z@/-/%$wl 9?K:߂T_8xSFq8??h`Q??<[Uͳ Ez$!DzѪ=Oo%oGu6AP+\.˰OLYMFON _coBCdD?R蝹n!o"4Xj|q[0*AP6>Cȯگ4FX@_|xA̿ؿ 2rjpiH^0^TP$?@]FYbڇϙϫϽ);M_qߕ!f %H#KU~ZH$SY][/*Ϗ);M_q> W9Yɟk_D_1n/e$kcD?@숒@)?@P؞?P"EkU |QAU"4FXj@AOcߗy+{ /A@yUy{\nU&?(I/)BTfx$6,:GSqt3V=:}RK5:1c(%)Ӱxg^?@0߯H?@s7U )AOyqϯϯʦUeAſ5AE9_8q3`q15@#N$Y+UN$Y+UN$ V.N$V.N$V*6Y??=xN#Yw !rA~)AQM4z)e ˞92CDVh O6_Ƅ7_ ĝϙq41qe&/gEߕU@{&pz?@-?9K-qUF?@dG0G >Nk":a%GOe&Y`?@/#bph|n52K?@ˌ@%4G{?@ -qEo=*[^N?@]%P?@O&@ c?@аM<~" ?}mgE#n@O|ǐ[`Ρa{E |j??,?>?P?t???f?Q?=! OO*OrNOO@}%?@R$,Ӱ6#V?@c3#֡d oO%"3EWiO__'_9_υ__r{b_og5ie$F3of V?@J-R~HQ??@S!R?P| m?lHof@IL?@4~Kz?P)Oy޾ #*f`ZәpcӘ4™#̟ޟR_d_E%! 2_V~_yUR //./ЯiW$do-nmZWf^TwTp]֝äphiz;̵eZu?i,S f$@9= T?@L;uQҿ,>dtAϜ?P:/ASewOO!3?Q ߧCcٺ_vWi{ߍߟT/#/,/>/P/b////ʯ"6|D2?4Xj|NO`OrOOOOOO0x˯&_8_L_^_p_`_]YQ__Ld_oo+oOoaosoooooooowU'9K]o }62DVhzԏ MO{MCUC_q_3PS1|iق W2QZȑl/h1>?@|>@@"H$' @71Rhv? u0y`?9?ISue].2h"Qm3T! 7}Mߞ~+/!}Z QYbpeS{ YR@ BP/(?!B^8P: 95B: G)&! 9,Ԟ1YZc &S/9Q>ğ3`0 @@<@@i4F?@ ?"*exe;l'i0XAl%!0< l.>vW0K;7|"M4U>eM4U> M4uX;>M4XԞAmBTQ?jWVT9{{l·$1KDe2XDXHr4rDR5D6D>7DCD,opf:D ae"Q<D">DqqC(Ӓԑ 2FTK,KJ5TGTG)OT*\T9/0))Mpv?AO!ThlªS/_Šg\lM;-@>l+d|EUeRUX_Ur11I-dd>򴝸&ԓTalB3 `%L[Rhp2vpeр@6a|̂A-@_lb&U„ПF3s͵NSYQhbeT^@UseXő{8|pB~2pzy9v,@,2a>&)9n;?OSo]!!lG hQ Z#,i>kwxyz|*}~$u 1T1A1x!QcDZ}Hu1yĕ8(!1UT1+a 18 =^eZ^[qPAPp:icat(o~ s rvlѝPb|^y˻veլXӯu!(B1:X"FNtBv f8NOVA`CM)UUT` `-Xbp]int_`yPUekpma@a8_\esdl _Prdx<_unl$~o"pa̰ )ASEQ7dBSS+eձdC.'0U!250 Sf8@Be=sSL$Ș&Q~zA03s,ϯ<ġ68߯2- /9b>PNT_#Ih@*²+@ǵBe 3$?Qc1AQ7djtBm,ql 2ő4́` ))M TVA1TyQf3Xl˥Be115i3QQ͑Beէ$@@"H$% @&P(-DT!8) QX% 3Qu50`tW?)X&b&l"uV@v)oG"n%JfevUBe5VA8ABe b/nr"~l"-8A~5 0pAr"o@ BP( ?3-_Uo-AuY',>Pbt?Ph@@@ /0/L)A\#;Uj/|);VEV/}"QLkRVVRW____!//O?*?i$=Kq6a .Oa}Aӱ@}&VNova.cnfBNpity?̔?hX`OG'0U-JIq_yO=oϫ \e~?@_1PutD\.C ӏ -,  ?"s0ug|;rO1a4-C0jtߏ앓{]!3yMGE4dANgrhyq}'eeO#y_d!s4@~5t ?N&1o85&?O@W?i:{//-/?/Q/c/u/`ʛ߹03nIw DI  MԿkS tS/ h80gt ?}-???~KW|?U0tUp?>/o?dq;=kVo=~kVPFn9&M&oHOo1iˡOOOOO __._@_RTxj89?@F!o-?@TƊ_'{4' {Ⴕ_7_o~KX9v6o6!bo>?Qo3j @o NjGYvRTfBp`mHi~joPobotoooohooo (:Lp"q*@Cz DPgyӏ口 F@?`ޖD9Ŕ#ӟꟀ 2DVh@h"o??ʯܯ$HZlOPO _j|G\$\@' e:&(Ā?1=e''asߡK/U@jZV@@r\.@@?F~+?GդV=T$ @b<'d‡N\s2q?? 5?DP@Ay|r;TTdž5sѓGœur#@3~cȿ@loG@{zƀ%ק 'W@ `ee4e ,]QF48 8!pĐs/{՚-TiQQVY! rhOmg L%2*O® _75D5Q5?#!!AT_V,TatYm2u`%uL{PRižþ SрQQL1 _mR]_dcF3s͵NSY1PRիq @SMUk8l?jRl#kPjA f,@0QQ_kon\o//O8M71En e o<!QY!ѓ!11k1x1==R18!*ѰP2&!'1PWb srv@ bP\eM_JۆJ뭏B m+ )*B f1Ss'NOVA6PAI)-6Pec _uBlQhtNpw0/ $`oDaBa0iBh^s*N:]0703 ?Ui>e>/)0l^ud)iV4<@qKxiՔ$d x'0U x!qLd鍐i xutS8iRYy!"4SS䑻i ,? =Ojc4i{ς$ؒTx,*cԹx 3%I0OUkp4rf̈$أWYqVh̙zFFűܧרmcGA+Y8Q*D_Q1as@ CL_U@  @@vn @@t1A3 xױ/QB)%Rdv_kC>>gÿ@7?@6hųϚrӒ{!3߿՛AxOOM*UeRExE75#bD5ƂQ52_D_poo$F]Uq___W___[0#o :o`o.oooooX/HnOOp8OJHRX5eAC5////JO\J/> JmÄo*j?ӒTnUeRxUANiM}u}GNAOGNqeNq̝x栫wHQeU&T1[x&TNq1[&T1WqeO!&SPDbtbojJ?s!"n1Q#Sla}~Ox Ul -F:H7II`A"CUOO ]wNQ@Dl`֜4ͫf88 p?]`3I?@mml`IXc*G0i jOpxu qu?Y0q@.< q~sXtz`Cq#t~&q YƁVhz{uGz>@:1rh%ғ~Xu6e?6N҈uK#vrE@$}I8P%ufE(实{(sUqnoo̯31Qn1QmԀ.mHo +U%Օ$>>n圅oU@!Ө`Uo!+"`&)NN`ɳoUg_x`Q'!#t@e5i9%0ŏ(uҾ@3>@$qv)=V>aeBΰq`Q+=Oa|߯ !'3EWi{E2othux`U&8Q< w.c o thϦ2h64 "4?FXjqzu䕟ҟ͟ߟhuX𧄻唱gP~oSs z$6wZl~:A"4FXjcةN>j3+fj#oDVhNvQ@y#V^}Ώz{Mz_` ;OVA~%4 jQExI0QK$K&8J\n_@_*>H$a!d|1e"f!&!$!/3/hNU|oA_S_/`F(_{~?deeh/"eko}o__q_____+o|1n!3o?oQocPr]ϰGsoq姯e͂T?x`xSF؉`o u?7o,>:bt,"4FX,;?FI5KxE/L?6s|rҏ,>Pbtx-͟7!d /ASTjpiH?F^ $?F]Foxį֯ 0BTfj|.7!<|1!f/x*%?ŲEKU@zL|+`fyoϰ>E-??;M_ߏ/߳7! 1Cϧ'K?FOgVb`Y%?F_wᳬ?PJWI+FOasW0m"4FXTujc{g&?@%r`5B?Fm_F:Is&}%#5GYko??ZG@15Dl6G&//*9%P/U@(%)rxg^?@0߯H?Fs7WUgEpE/#%/e$*"!)**!+E6(2We""T5*^%"T7*^5""T9*^%"T:*^:"T;*Z!8!//??-?6?H?Z?l?o@')QP19 ??/$8)COUzGz)egH˞9yH~sOLo$O/__o!oI@EoWoio;3'o#śaGqoo΃ -A8wAAI&E6PDz^@@@@i@vᨓ֯Ć"ڒ"5"u`B?u8 `u`%ڒٓ"uu&`uz#=y V)A,''u15 Q&C8 Sٓ\#TqO?NWV?\._?@ A̯xDSA¶?|>Ҹb])P@X=pڑ"@렔&Q(-DT!? 2ϔDVž\'!%*oJ麖W6п@۪O߄?Lf@X L֗vE7Iv*"Sg_UZ*__[]@4s_"TG_X6_0[UY| X[|mX< j$IT&q25b)Q́́z7rJQJQ5{{BkQkQqCљѸҌQQ#rQQaQ<>UVT9\!F!51J;(HB)U6cd bq4* dPD@ং  q)U0CqщU8 yr9r#qX!kt=O1,5(rp4tQoJT!!.$`A(p>3D/goA~,`I#A_#r`+k4 rK2X0",4zI-47r45Ҵ+8&[sTa`nG`%4puL!!ߠqQߠ3q5uLJQ3_`2_;":#F3s͵NSY$2}U3@4C50%pK8LzpK`J7uvE,@rv15KNn0??-`Kqtś]́{ G9^S4qa4pb4pcx17q) T\7y13Srvab+8PAL9%`5(=է({գܥۨz_X;`G2k}pD<"KUl=$1U 3>9y5Չ5(юd%onӥOzQnCU . &kU)$%kiai%?@ 6?wHAꤲ8@SA?@ y@ ?Nk"%Ȯ ť襼x]Si% UPʐjsy |u?@9 mOG"l.%-+lփ?@U ?> ʭex@4S a5//+?o{}ﵟv1r' #1 $ :AQ1qNZ-quuս}%?FR$,?@6#V?Fc_3֡ #U#Rbt5P3j1'ӳ4"aZwej ! ˯@͂TxS'F#3^&K]/GY"aK]"aAiǿߥ͛u6+\.>& ΋Ǒ[@%|cئkBDR.%|zw\/ O8!07Nufs=e/:AiU@܋?F2Oa>?@#r`5B?F*UuU./w$O$u/eIO[OmOOOOO +6F3߱E__;I5K?@xEL?_1sux_A/S/e/w///Bo///??+?=?8umkJ~-&Ѓ )G[mȠweպukz/ T6ɞp2CYAOrooooOooOB9_%_7QidQ_c_u___Uj?@2U^P'Foo(o:o^ofxoү&3:(:7QYZfx_?Fcٺ_v___"4FXj|Ϡϲ ߈<09q;GY7Qp߂ߔߴZq ZqX* 1CUx,\PG<m.R/Yvpy U@Sj'ో?FL]&?@j>(?FeToSt7H#O%Oȃe}x5* =}'pf$:UgW=? #T9q9s5q '9K+Oo@!5qm/Y$ݮ///!/<~[%8p>H&/IZ& Si/{$g /(fO05/U>:Q5$17V????Go?OOo6O&xQiՀ!D aOOՁ_xOE#./X@zrYs/_r-pc_oo,o>o:botooohDooo9//딃r?F/(P2?FkF ||/+=OaswT:ѾiO]%_!Yp5PRql&Puişגc|ٟ!IEWiϫWX9פׯGOU@f4F&P0`?yՀؘ -?QcuYB G=I͏oOOB]n!W3U$kcD?@숒@)?@P؞?P"EkU |nU0EE&8J\n@AOcϛy+{!3E@yUy{`rY?(I3-FXj|Pğ(:0*G[]Wad#$>JVvן>~#(%)נxg^?@0߯H?@s7U$-E?}u׺7eUAصUA5=O\a^d@R_ZR]ERaZRbZ^RcZ:]/ /AhYo]^( osUA"ཁ^Qw8z)e$˞O963HZl?:O׶;Oݴ^Q4!')QU*\zUU@{&pz?@19K-qY袢F?@dG07 >Nk">QGSU&Y`?@U/'RtX^#%2K?@ˌ0%4G{?@ -q5_]=*[^N?@]%P?@O&@ c?@аM<." ?]k5'^@O|ǐ[PΡa5 Z //0/B/T/x///j/z/p-??+?sO?𗯩?͡}%?@R$,נ6#V?@c3֡hs?)"7I[m?OO+O=OٿOOb kfO _5me$F7_V V?@Jߒ-RHQ??@S!R?P| mlH_V@IL?@4~Kz?P)Oy޾ 2Oa>#*jP^Ý`gМЎ#ЏVOhO5%$6cZO}EB 2ԟY[hڣ o1^]^[V^TwX`]֝ ätXmj?ХU^ui,S$oV(@9= T?@L;uQoį֯ 0Bhxɿۿ@?d?v?9@~Mj2_Ş^N``f?1:L^p~ߐߴ P1_o ![^"$ .tXWU)_w6tX(B/T*3EWi{??xb77CU#ϫGc_v[mϑv4σ'0BTfΟ&&46/8o\nR?d?v??????|c'O9OYAPObOtOdOM IOOPTO __/_S_e_w________ogE+o=oOoaosooooo}& 6HZl~@Gd@ !-*b##9HHZ#&dg !ꐂT]zȏ#,b@Ս?~c`c*D@ ei4RQ`/Ga i#pEۀkqw\x#ey޴Ez?Qcu 3̿޿%&vg3IU~c #aϷN^Ͼ#(L?C?ִmc5r~2rK0̉v$'P@="EPO*<N`r/?3:LiuNr"?@v->u?@_w`|0a_ch55/./@/R/d/v///////OO2-??? S?e?w?kD$XG cLb#e?U@1ǟ 00nS O2O8|4刟hGKO]OoOOOoOOO@ O" _2_O_[_m_???_Du??@ e?@=P? 3u?PJWao%o@Oqoooooooo% C?\0nz|!`?@4xS?@JBf& o3EWi{ÏՏ珀2dQQamgyϣǟ~R-c1*?@=?@(k@峫쵮82ۃơ`ckѦY@o߅ߗԗߓ|ߒ}ߐ~#ۀDrbt߼ί# 2Pd` K]@||___U!-$r@c %Fl.Mgyߋߝ' -BSewğ~M)M?@۵+?@)?@4= &_q// L?rқ+&ZA3߳?@0F#t5 3.%7IN`r/2O&/P?/Q/e/w//////қ% ~*Am# U +S%?7?I?[?m?????????O!OQoEO)^OpOQOOOOOOO/?@r<I??$?U_g_y_______o oo-o?ooco0-J}oooootomyu(]t@Rdv=u );M_ B"4ʑ>ԏoD,b?@"@Ս?h?@c`GyoтΟ=4`"zwUπ,ϚȖϻȅ$ ˆ*ˇuCԈR(:L^p?F揠)D(jL?Cִmo㻝@1CUgyߋߝ@7nѬ 2DVhzD'Pò?@@="EP%7I[m+-Ѭ  (:L^pGNr"?@v->u?@_w`| a_chތ%%ν);M_q??IN//@o od/H1j? 0ނ nЉC//$|?// ??1?Y_U?g?y?__kk???? O*/h~u$R-c1*?@=?@(k ُӻ$Ag $AGIH&8ĉ@1ˊaϒ1ˋ1ˌ1ˍ1ˎ˺'9J]oϥ Fd@O/OAOU`U!-$rӟOɁLϯ,>fbtφ϶g'/4Ser'~M)M?@۵+?@)?@4=Ǐ$6HZl~ %7*OPObOtOOOOOOO_0α_0_"D_V_h_d_]qYU_T__oo)oULo^opoooooooo0B|ß{kߙ#cu"[FXv׻n?@c`?@,b $pߪq4qyW3UG8$h8Yz˿hUôQ󿓏ɏۏOaϹ=~XɤqL͟py(/L?6"C?ִmG4Rӻ>bҿ,>BT0ϛ% w'Pò?@@="XEP_1:0l~ߐߢߴ 26H "|&wNr"v->u?@_w`|,acWh-6^p$(/:/.Co'z_О_s1/ 0In*7/3=bt7Dl?/?//JO\O0 [db/t/(///wDu??@ e?@=-0? 3?UHU?PJWAU?g?????O OO1OCOGogOhQO )OOOOO__wS`?@4~JBf&1v=sH?u________oo)o-`?G\O*oooܟR-0c1*?@=?@?(kG'.VPzt!tqy!)ǯ٤ҫҫ#ҫDҫhըl";Fztop+o///iU8!߲-%$ϟr7<ßI3aLgtu?@_w`|ach#5GYk}"56HZOLo?O^c1Ѕ 0nˁضޏ'aL+=Oas///; 6);Ml~gDu??@ e?@=? 355?PJW֨!/#T/f/x///////O? &"?e?7H?Z?l?~????g`?@4eJBf&V`SO(O:OLO^OpOOOOOOoo~G4?8;_M_GY_}R-c1*?@=?@O(ksu_ofaCdFaNifRhzss aǟvIss UEoWoio{ooooܟo_PGCGPbt4/`( AS=gy?r<I8J\n/"/RO`F/-`/r/>///4/-A)%/@4#?5?G?Y?k? %??????O OO0OBOrooOCaAeoG}aO4WQYAY%]iY RT*"@@1@@jZ?@~?qtyue]aaSrw"RurP`?u?`uP`ڤrvQuP`upQ%U!V Sd^ackw'RzX\c2qt?sS?\.?PA{oWsWQQPG\RrRa?QpRȺu~Xҿ@j7pu@A?JReVWDP7_w3 @́b2@XrpW@au>jtQ(-DT!?ב̒Җ̒ 9қ)בxx__UeTQfTAY! E@u% Dd2UXKU$YUkdYdkׅksUkskCUUkKgmPQT[ZXIT&/R?a?ad1ׂ֐R3Drqq"I5!R6.%7;&+CHk(U/)bB*o Q8B|Q??̂:bGGfq$!gAA e$aId%UQFԛ–aaqPD__37d2űܮאIn&p$dO T#.R{AUp8?gd+]Fl%VVR+dXׂe2rDrI,"- R2% 3TaUSaq0pl`%&+uLp#אQՁdאQ`ב$d$_TvD&&="1d.?@:ׅU?@:2|?@:Du?@:U?@6B,a (CMTI E! :MySQLJ- sl_conc0icB=yYD:/@nc@v0_ab_@u4:HO 1sOhc@s0O_aeJ o@x2X+i >228uׅW2'0UfRŘcnZf?fd# 2^$a8Ob=UUycq m__Q0qX]b 0;az_~AQdb#XZ__Y2__@ԈXo__|oo? omjdq+%T7W~Vy>R龋bWqt#w3]6 Bk#5댈,Y3Tp!p!?^!^/c[hߏ񏫘4U@A({W~?ݔAFBqBy{JSe怏ȯ>{40IcoCL?5UƟdA͂T?x?SFعp:ij8 U&8J\njϒگx! !*6HZl~c;?@I5K?@xEL?6ѣբ޿&8J\nπϒϤϨ |!`߀);M_q߃ߢ߭jpiH^?@$?@]F̨*?@#U*µPٯ&8J\wߒߤ߶ +=OasjU?^P!3EWi{/݁$@AM_q?@cٺ_v -?Qcu#O/1/C/CW/i/{/4/@-AI%/4/??*?P%Vh|Ŀֿ~b;hݓ?@ ?@Fa47@pm[!HS'pr_H= ՙ !ITYҘ\2q|?{?\.?ʐJAq3 w~XcJ߿@lo@$s#[ur<6rE 5~Btddwt.$t{ >t{ >EtQ >t :m4HFXjIzpA/D5p1 D2-D3:D4$GDB5TDB6aDՒI7nD6C{D(DRb")D*D 8D9D:DC!C!X a>DYxza{ уF1T2gagaAp??u.T Az_H/q6Z\6]lwՑ+GdҋEE$E,{dr-drdՒh TatIcBut`%puL`0@xѥ @ !`|aWAz_b&p)11Q3s͵N?SY4Qb zʑQ@seDY{8h|Y{Lh|Y{`jz^v,@rxaՕ&{pnҔ??o]A6dm)1J1k1!11!p{pˢpp!1pp+q~a~!~!QPRc asPProxuyɐs6 rvGhQ|*|ᙑ ̟󟷚-A6hB_(IyNO 鹅ĺAbIN_OVA`NwTWRK} U-`dcMPbuig6 _f1`UaPfl6 =@Wet /FoUa5. oFfT,ur@bAn5XTtun/wrkb1=0Smn=A.R.3PM } iD~aLr)( dA'0UŘYP5 ۄ8Ey2a Ǎ!pQbנz cՙy5G߿06p4C!3`r߄ߋÅŤ߶CURjDwqqT-uUwu! ehXFt!30F5P ]izƐkDOWl mgj!$Bmsq  Wу?shWRs0wqrms 111QTQeAہ Qۏ7jhk&ggcU@TF"?o$?@`^%P#?ߦI'H%-/?/(]j{&Az\Z?-h1vpRQ//e*p:w wu\/U@U͂T?:D xSFKEPVCȤ/ItxSU2>////?O$?6?H?L_l?~8???????O"OP;?@I5K?@xEL? 65e>e4hpOOOOOOOO__$_6_:Ly=__K_____ooPjpiHf^?@$?@]F+1:botoooooooo (,>x>pq$OѥQmI ~UL|+fMF({~]H3UgyxlCď֏ N`{;cu K?@OgVb]Y%?@wᳬCŕLŜ?PJWYkɯۯ#5GKkłœҿPuWajc{g&?@%r`5B?@mܯF:I5?Lyϋϝϯπ -1CcGؑ߳) ߾ںU@(%)4`xg^?@0߯H?@s7U+)2Zlzed єԑO)왚Q(S[L% xў .G/_߲ xߴg @ŸԟU<z)e)˞9;@3Me P/k䌬t O//+/[OmOf s/@-/// }%?@R$,4`6#VTc3֡ PUYUY?l??????O#O5OGOKo]oc-O/OOO///?܋C2Oa>?@#9*GuPRst_k?}??______ oo$o6oHoxlopN ooooooo2[8uj>p9?^fPqk} (1CUgoґӏߏ'9,?@cٺ_vFXjџ+FOasϩsïկC '@9E)Ia5xοVI'9Kfoρ ϥR@@oZOON_1\I7@(?@M&d2C t2?@`0W ֿ_ dIE5b2@EXp0Ut/@qQ(-DT!O?wlrAɢϦIrlr06wJnaY`hqUX'ep)Vbe=ȁu t8pw{@η䁆E&raUȌկW63r@loz~[@?"fw#Q))Kyb*X q$u9r:0 "! q>uq! bA9Ab!,aFѡѻbt†Uwt`Vi #R)Ryarqk 4dvBH0P,FVCAUpgda}IoJTUq.bCuqg@ȁp/ ɨlAααb+]$VbA N[B,$ܲI-$$B(&cTa/qTn`%uLUqw)Qaww%VeL _d"`asF3sNSY"!@33%o;8~wQs $Ov_|hQpstB-tsw 3pahaad uhelĀaoxahg'0UŞ mRxa hf8cd ~d͏}ywebʔ .a6Eb֓zH3_B.agT nnAO =.eTh1adXŇ %4ťdF@s??@X7`/G𻥫ƣ„H= x}?}_?\._?0 Al_ogpEH!vAUda4hahiHV_H!lc u2 cc# aA/uI u9̐h񧡸]?@oYDȡ ~߾c}ߧ 9?dҶ ݹ:4kU@ 9A@ߝ.kàp?2t 5U̓5ӵU . ħ0Eӵf?0%*ai%?@zP4<ꤲ8?@.SA?@Wkߣ@ ?Nk"I'筃,H7~ uӿH#l~𢿺Ϩ}u?@UO2T_?@mlփ?@f>ߣ> жg5x@4S˯jPdovoaX{0fcQG_Q ,jg5%X@.a,39e͂T?àxSF`߯@!3g/WW2CUHB#Ff_Q)pM_Q~YZl~u6+\.>Ǒ@l*m.efBސDR%CLK]o0/O)@ Q*GSew;?@I5K?@xEL ?31SUX//'/9/K/]/O////////?PؼUm.%-+62JU-& mO"8!2? 6?wm,E庳U2z T6ཆ MRjz36>CvO'O9OKO]O\@OOOO OOQ"_%_7_I_[_m__jpiH?@^?@$?@]_Fꦕ̯___ oo.o5Rodovooooooon0A%uE?0afU?H$Sh9v /AS wZϿ ݏM-?%˲0zL|+({~cʟܟ$HZlgv)Qį,U@Z5PzQӆ5c2>($\nai%?@~=>&SAp~eZ5x]Sih9W깿˿ݿf%7I϶mp ϟ <nu4U@K~pOgVbY%?@wᳬ?PȟJW֯,Ԇ=(43f(p}ن0uԾԬ?S/ߑ/R洡j~u=ڥ؝uW6 2DVhz//Ot}V N!%fEWi{uQjc{g&?@%r`5BpF+:I)V3U|~> //./@/R/d/v//////ӢKV7 ? ~rn6Tu$-UkcD?@숒@)?@P؞?P"EkU |uSᴥ]ooooooo@Acooybh+{!xOu4FXj|@y?Uy{䷩ff(I|8v??????? OqCJGѴԡӣO%"5 (5_~(%) Pxg^?@0߯H?@s7UmvN____ j5oGgeL@!e يh!@HEA围9텛E? BTfϊIH@qI џ4HOJkAAAz)em˞9ӫEٯ믃 f&dE$Go4 aIsCB,5\U@{&pz?@z9<9K-qȢF?@dG0 >Nk" uyeG&Y_`?@/pŁle2K?@ˌ%4G{?@ -qFe=*[^N?@]%P?@O&@ c?@ПM<p€ ?ep@O|ǐ[Ρa Ugyϋϝcϳ@ IHñ*\?Pbt߼OOOD1}%?@R$, P6#V?@c3֡%W0#`_rZ"____>Pbt"o(R#]/'MBTf5#e$F0 V?@J-R HQ??@S!R?P| mlH0MN@IL?@4~Kz?P)Oy޾ `#e*ccp//OR 1#??+?(&eI?nm??>?HWi {O/OddS eHiozf^Tw]֝ä Uhfui,Sm0q@9= T?@L;uQ  __1_C_U_g_y__(___1oo$oX/߂o@ej߀2e^&Z _z0B!3EWiPzʌ ![ "$.Pyeh) 8'w6 q%ϝ|ğ ?0N`6oHoZolokcٺ_vooook\%̿I[py???COo?ɏۏg߭߿߀+4/F/[pﭨ!#b_BTfxo,>PbtZ K8D6S/!/*oV8_R"rYD?@J-?@-'uX9d5ZZ?ݹ:4l!J?@TFnA9f@.mY <%x&Y׍8r?@į^?FG_65W4?@A=?@[Q`??P-DT! ڎ_Ugy7ӟ\( *>Pbt9?@YaJE?| ~#̏} 2L>Pbtο(:LϫH"B1C MSV(jdO~VuBТ^a UHC-ٙߋ/* .?Rdv@? ځi1Pi(c7nU/%Ep_'2!PIsTTbTǚT_Q_QҚ$TT⵴S@[r@GQeU?!cƝ?[6TPm[Tk[T3&TTop 4_V []TR6T/0)C"u`  Iiy?BݱP`oTJ_S`no}qotSPtt$0*50DO)\qiQvݲTI"ᐄ2a9S)fBլ&Ϗ 2L^p土@ҟ nmoo2Sˤ0ڢҶ50dWXt 3ұPbt:^ _Vo:_oo'oKo]ooܟooo$ooo`~O?Ưد 2eK]beу˿ɏ7I[mϑϣϵEFUwK vC8:PbtZ //@/R/d/v//////"X*JR?/)3f\#?5?G?Y?k?}???? ?? O$mIO[Bcۺ gOyEx*E!҅ OOOOOO_!_3_E_W_i_{__/_S_/K?/o// ??o@?R??o??????UOs'Z@RW]Zx_o,>Pbt:ϟ@# ZX2gdz8$~G[mOq{ïկ jz^@@@@MN?@v'@g0UgOqn뿀Կ7DVh'?@=kQ*@~ϐϢϴOqԖӗNr%7I߶ߑOas!3EWi{Oqㇶ{O5GYk}?t:NU kjڛ U *<N`rϊOb>PUX\mQw________o+lߪ//(/:/L/^/p//$O/HO O/=@O$?~?R?'9KOohO5ߞOOOOOO __hOq5_G_-OqB| PJ%u1HN"t:oLo^opoooo>on/Ǘ{8m'm>;8$}'<PbwDApvO`'JR @@BP(@@ @ҼdT7%UJ\DAcu _ԏ揦_u%QV_X_CUS@'r̕(DAfff$6HǯN`rد 2DVhzDA|п/*A~}8 9=VDa9MU1OEOWGeOHOOOOOOO0o8@@ |X@@>h?@?¥,X?_QPX_jY_SpjQt& os//__f_/?o3?@*goyooooeQ666o+= O2ODO'9K]o&!NVŏ׏1CUgynv͟, );M_q_!˯ݯ)?~(:=1ePFXj|Ŀֿˏ BTfxϊϜϮ߼>b{Pbt^:L^6HZl~&!&!%7I[m)?-֌u; CGc7)7[m@ @@z^ UJ@_1"/# */<)Z/l#///Q'p6a%??߿@9?K?]?o??5ѳ3mlҩ3???? OfOxOOSOOOOOOO__+_=^RS &a_s_______oo'o9oKo]oooorb ojkjoooo VBTf/rN /B3ёP|ΉO56\;(fLO"4FXj|ğ֟蟊 pB,ootooooooA,(:t^pο$_\O(:L^pς ћϭjTNAW)_)!x{P &M!3iW"qF!$ +- -?]oއ~ 8`QPe6'()*+,-./01234R578U9:;?@UCDEFUGHJLUUUUUUUUUUU4P ocAzF)@#XPk@ B?xvPDȭbvPx3 U1( O-D&UA%U f -h"/T))U,   '-P/!(8(B(-$#P/D DU! (,(E(-(U((((U(+-6U?AJE(UH(R(T(e(Ug(y({(0(U3(B(UM(ENPUT]_cUlnr}UUh(t((U((Q(W(U\(`(a(c(Uf(s(v(~(U((((U((((U((((Uk(o(p(r(Uu(w(z((U((((U((((U((((U((((U((((U((((U((N((]((l( "* *+"59:<=>@CILMP5VSUE$%.)U.34YUZ\^`UadefUmopqUstvwUz{2&1ߊ !PP))TS!R &Q- 3*)A#ݱ g $)gA諸U} g0W5E?)g1`BcUkrFu@d5o@oBzۥo쥠㥠gju `` Fi@l>` 2H[[*GK Jjisb4#0U=?feArial UncodeMiS6?/?`4 R$fSymbol$67fWingds*7 fECalibr@  ?$fSwimunt(S$fPMingLU(w$fMS PGothicj@ $fDotum"|i0@ S$fESylaen  $fEstrangeloU dsaC 9$fEVrind1a8 Q$fEShrutqi| Q$fEM_angl$fETunga<"@ Q$fGSendya*/ (   R$fERavi"o Q$fGDhenu"*/ (  R$fELath#/ R$fEGautmqi | Q$fECordia NewE R$fEArial"*Cx /@~4 R$fMalgun Gothic |w L$fETimes NwRoan*Ax /@4$fGMS Farsi{{ ( _ R$ fGj ( / R$ \ EB \b .B \ %B \ =B\ 3B\%5B\ZGB\:B\7B\AB\S0B\1B\0BG0BG;B~GO.B~G}9B}G-B}G2B \;B\P8BpGIB \JB \>B\Y,BGuideTheDocPage-1"Gestur Fom aSwitch&msvNoAWutCn 7ecCa}loutPC SidePC TopPC FrontPC OutlineButonScren"Handhel Frot Handhe}l SieHandhel Top&Handhel Ou_tLieCo}nectrNet ormal"Periph Out5ln NetworukFonTower pTower }FontTower Sid TowerOutli nPeriph ToPeriph SdPeriph Font PeriphSadowPeopl"Peopl Outi n3D NetFacu 3DNetShadow&3D NetHighltSymbol TpSymbol Frnt"Symbol OutineSymbol} ide(Default Sv]gtye!HasText$ShapeC5ls$ShapeT y}Subhape7Ty$SolSH"%visLegndSh7ap9visVerion/Row_1 Manufctre Product}Nmbe PartNumbe* ProductDes_ripinu AsetNumbr SerialNumb Locatin Buildng RoomNetworkamIPAdre sSubnetMask"AdminIterf7ac NumberofPrtsMACdre s$Comuni_tySrng*NetworwkDscWipinPropetis$Lapto cmuerHubDepart5mn HardDi_veSzCPUMemory$OperatingSwysemIsViableSe7rvBelong7sTPC$Datbse rv CloudRow_2Row_3Row_4Row_5Row_6Row_7Row_8(Dynamic onetrTextPoWsiinBridgeu*Aplicaton servEthernt Scale AntiScaleRow_9Row_10Row_1Row_12Row_13Row_14Row_15Row_16Row_17Row_18Row_19Row_20Row_21Row_2Row_23Row_24Row_25Row_26Row_27Row_28Row_29Row_30Row_31Row_32Row_3Row_34Row_35Row_36Row_37Row_38Row_39Row_40Row_41Row_42Row_43Row_4Row_45Row_46Row_47Row_48Row_49Row_50Row_51Row_52Row_53Row_54Row_5Row_56Row_57Row_58Row_59Row_60Row_61Row_62Row_63Row_64Patch }pnel4Fiber _optctansemtAusterTranscedvisSpecIDBlocksATM switchBridge.14.Dynamic onetr15ModemRing etwork VBackground-1RegistraionTilesF msvSDContaierExclud daegr eShowFoterBackground*msvSha_peCtgorisCityServ.29SkinColrMainfrme$msvViioCreat dUrbanAlphabetModuleVerveNone Solid$Background FeNone .26viwsSTXTechniCom-linkFirewa lBox ca}lout(Oblique coUn etrdXdY8Public/prvate Ukysr TerminalangObliqueWeb sr vFTP se7rvEmail servType(Ma}ngemnt s7rv (E-Comewrc s vangShpeSewrv.1slopeindexFile s7rv$File srv.5 0 Serv.51DocumentsignslopebendPosfl_ipDrs00s01s02s03s04s05s06s07z0z4z1z3restBndsflip0Oblique con etr.460Oblique con etr.5270Oblique con etr.5280Oblique con etr.530Oblique con etr.5310Oblique con etr.5320Oblique con etr.53Print sevLegndvisAntScalevisScale visLegndGUID"visICo}nectdFlow NrmaDisk torageCostDurationResour cData8Conte wmaagumsrv2Streaming Wedas7rv&Direct}oy s7rv u0Aplicaton serv.57DReal-tim c}omuncossnrv)Proxy sev#2230]E3n mG3ܘn G3n %G3n G3m0(G3$n G3@n G3\n 'G3<G3VG3n tG3n G3n0%G3،#G3"G3آ)G3/G3IG3f&G3X#G3G30G3G3D$G3D)G3EGG30Ef"G3XE#G3n G3%G3EG3E #G3X' %G3EL G3Fi "G3 &G30F G3 )G3ܙn G3XF!G3h.!G3FH!G30d!E3Ƞt!&G3F!G30!E3F! G3G!!G30G"G3P&"-G3XGS"G3Gq"!G3H"G3("G3h0"E3G"G3"G3G #G3*#&G3HP#$G30Ht#G3h#&G3#+G3XH#G38#%G31 "$ E3H.$G3HK$#G31 n$ E3n z$G3$(G3$G3$n $G3$G31 % E3/ %!G3P0,%E380<%E3 0L%E30\%E30l%E3И0|%E30%E30%E3/%)G3H% G3@n %G3 &,G36&G30O&E3_&G3h0{&E3\n &G3n &G3n &G3n &G3ܚn &G3n &G3$n 'G3@n 'G3\n 3'G3n H'G3n ]'G3n r'G3ܛn 'G3n 'G3$n 'G3@n 'G3\n 'G3n 'G3n (G3n (G3ܜn /(G3n D(G3$n Y(G3@n n(G3\n (G3n (G3n (G3n (G3ܝn (G3n (G3$n )G3@n )G3\n +)G3n @)G3n U)G3n j)G3ܞn )G3n )G3$n )G3@n )G3\n )G3n )G3n )G3n *G3n '*G3<*G3Q*G3f*G3\{*G3@*G3$*G3*G3*G3*G3*G3I+G3>K-+4G3a+G3hy+G30I+G3\+G3XI+G3H+G3,/G3P0/,E3I?,"G3Ia,%G3O,"G380,E3,HG3-G30-G30;--G3 0h-E3(v-G3-G3-G3h/-'G3-E3-G3@.G3М0+.E30;.E30K.E38/[.&G3.G3.G3$.G38).A3h.G3H.G3/G3h0e$/*G3kN/ E3kX/ E3=Kb/9G3(/G3/G3&/A3؀/G3/G300!G30/0E3/=0(G3.e0&G3l-0A3h0G30G3$dd0G3P10E30G3.1%G3%1G3T >1A3-B1A3F1G3h1`1E31n1E3@dd~1G3\dd1G30k1 E3Hk1 E3\k1 E3pk1 E3k1 E3k1 E3k1 E3ȗk2 E3ܗk 2 E3k2 E3k 2 E3k*2 E342G3hӋN2E31V2E3\d23G3 y23G323G3,o^2E3XHb31G3pb233G3ثee33G3b33G33G3\3G3Ɉ 3"G3H{ 4G3ʈ :4$G3` ^4E3H b4E38 f4E3, j4E3졐 n4E3ࡐ r4E3ԡ v4E3ȡ z4E3p~4$G30^b4G3;4"G3p4E3.4G3h. 5G3F%5E3 35E3Hk75/G3\8f52G3n5'G3x51G3 5E3x 5@G3 46E3XS86G3 W6E38u`[6A3Hu`_6A3Tu`c6A3`u`g6A3lu`k6A3xu`o6A3u`s6A3u`w6A3u`{6A3u`6A3u`6A3u`6A3u`6A3u`6A3u`6A3u`6A3v`6A3v`6A3 v`6A3,v`6A38v`6A3Hv`6A3Tv`6A3`v`6A3lv`6A3xv`6A3v`6A3v`6A3v`6A3v`6A3v`6A3v`6A3v`6A3v`6A3v`6A3v`6A3w`6A3w`6A3 w`6A3,w`6A  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./01UU U UUUU U!"#$U%&U4<$Y,b'@"H$ @ kQuC-7 AU4< 8;R}A-i^I7 "A@QQR@pWKR8RL<(L<(ESRE(}WSR?c*bR  g"4FX88u(}'M@(yN2>>Hֹ2P e0RBbP Pxbt~`.8 (Pt)gvHvE{R$kyI!laU,OR'Ȩiz16dh5]P256lTT?R*ODSH%a!nova-17.0.13/doc/source/figures/filteringWorkflow1.png0000664000175000017500000020266513556316250022707 0ustar zuulzuul00000000000000PNG  IHDR&sRGBbKGD pHYs+tIME;o IDATxgp\Yv{.7,bjuKN޶PKjV#NFhm#6b(vFe$4=ьԶԶڗ#E$L3w?*6YU$"&̇ι=E!H$D"r$D"Ha"H$D"D"H$)L$D"H0H$D"D"H$&D"H0H$D"D"H$&D"H$RH$D"D"H$D D"H$RH$D"Ha"H$D D"H$)L$D"H0H$D"D"H$&D"H0H$D"D"H$&D"H$RH$D"D"H$D D"H$RH$D"Ha"H$D D"H$)L$D"Ha"H$D"D"H$)L$D"H0H$D"D"H$&D"H$~x!Bͯߍ(((o-H6qp8, !\ uTUEQ;I$&#FVI٤1Mz8(ix G' rrj!_) &N۶ʆP# 'M"H$B?*8]kkTuڦ1 ?fi u\Y6e#,K2'LN%1tCZ@k+jCx<~sߵmn4qLnO+H09xP(Tc!D#a X !@\WO:FC2expd"!W%;2N8L8x{ԱlZ:RD&LAH$S8Cvy|J/!u{r}]th+8h~@[d@$ ۻ.=ӤY.cZ җN!Har0 jxP,;eѬT0kuR(CRHe1R>iDRI#c4i+X$G ?ϖH$R87SDD)4]{a["n`*щ ~0ɞs4mP*E0Q`&\g11<بH0_ضR6\6 o{AuWsx]c۶-$d;1{=fgY-Q|>RCCBЪh+D gO&˛%Hat59I&yVXS'N`r';ԛM޺q#14/S' `hpP |D KRm#h'Rf{|<~~OZd+< tpӹb^A4ʹD"dﱘ0=zqGŤIvoLY["2Mr E<%+Haw&[SS, Ttf|pa9J ^}-GvfmՙYbq.?GW&''Y(IBZ*r#CDhuv:KkkKs"@ gʪ&7ޞb'>2PЪh*e|tTɎ87ofFjl>sKnqٳ|3\ejvR%B01Y"*즨a\&9:E LLP{\~N#oD"ɣ .X*ƈ+ D#ezi\>/P#30OT$:4EEa`bmquf'oD"O,+Ih2 3ei`>avy`*#Aƭ؎#oD"Α/7!Oz=LNOj5J\"x`$rp'/U%=6Jr[T"dgtLϣA`J<fz(D4<$ט[X HaL޾MuH l"%ŵ7hX&C7{>4KjUD" k,Wd76rJɖͫWCŢ2#M$)LcR]fY.bFE$**GJQhfׯ|D %N=čí),ۖ)?t]Zğcxw2SU(j,e2RH$Rl qz: "()w;ܼ}[&J>qvsmM&}%a0,,H$R<B2ѣ<;!# J%i2n#cQõDz|6K8DQﭑ\EpBT]Gx<ܜ";y{lYXğG]m& \-Har͙i*$.֮_l)O8t:>{ss/,pI9J| L$3ݦj1=Le`_4D~+Had [UAbFfB5jB,JH'Z%dWVW+'NCcFfG2~E9QnJ>fhXTٳh$)LޛVlf 4vtbxs$;sN|2r 0@"XI=b.`xliKrרV;;E!=2L.%1x6J$]YF-,.S6%Jz,MD§Jn]\.#0(w>DT;mih=[6t:4 i4sgշVqx^/z0rV&J$RܛJJv@4+Uts#>yVz r7T*1XLrtMSZ!n)䉦Ө??7YEH ;F.wZ)ޑh_ZC&#ŽD"ɏ `~q  9-'1kQ¡/JַoP0gCa^6);a*p׻Mu=>ТD}sj%L$RK$R|q\L/}GHc2-qN-ORpחTz; 9n߾ͅem 0 EBuzϓ lSWp݉T KQ19O>)'Cܼuk9X ͪnBZ-BjdZ~exqI$Ur5 ]TQ !yԁɭF]RfE8|jT{&}'N`LDK299/Jq/Av 8 'gP16nWDrI\aSruMkNV[u?uA?ۄжmfBH0qy<{vli=zq]Eqgn}jxjEБH0Ԫ{&~9;XʨlRHJveyuE{u[\BxdS9Pdqu%#J]]H07uۻs"Wgq9[}L !p]{?µiVɾNH*ɲ,} iw:R?ҵ;d_rF*X{±J$.L,rZ^,FI._KJV/^oۺkRus_c^WԺ]yHKQ(ҒBGHxW'ƻ^u73e閿ԭ봘 ^yP#Q =`iyGpH ;Q5Mrk"}]\EhFHdmTp4+l M a1& ɳ PU:&h-^37 2; 8J!?=4XnG?-U,BÄChR "ig7G\{Z">=3ֱtjd"!OBjht;NelD35UA4|^/!Ϗ' B;"L kk@G:>۝%Wok:c,2u/XTP5 6'?ѣTKSYͽE8re'.q:$d0$(ҳk"nFin^[ =b/pOn]sr&G818LJQo( SI ac_nO1CO]|Lt$JuvK .]aqoNJO8CXgN_OCS)qd|\dGBPVɮ+q4@,J*x3/PuK0u]z.k+ngp`>8$/; K34 ¥VK\,Aս]MQF3;C\ר1#ۗt*ܭK ceuU }JvyG7s~~ <(D>E  x'x$^?Ñ5V Q;4'~,Y96FmR.8a K/Q o(--DcKǑG%[ƶm^|!H0LS@?uYko160=#NM~Ucx|73].-~л^RP~^{?fR%,pz.ȃ2-R{ىv!o:?t޶n|/K4a xq]b%:{Urq?=wM{<qqQJrEǏmN^/0qܹ=!ʷ-bV;zu3}L[iu:zb@80|>Jrt2%g}D\2ރ?M[9?'8%QP| Dܚr 0rľHV`4gyq뭷8y],T^A~mP""3ڷ Jj 8-O⪦ YY~,Z]^ ![%9&x8IX)Ũk8#Vr_l_c.J0"N;?=:ys]}l赻]HTZ*mN=9Br!WiB8RIapbJ4[p[%:?U.uV'OIN˛׮\' [V5 crv]{<0B(h.-DI fdMNRcy`<(QwDI =EU+F~%Nޠi?1w.൭B,ƛ30 ~ba_2)W{(J'~jtDۆedĺp *D2GyzDI&(v#%WoܠbI'D@* C nK%GT{е*CG-N?5F?FK)7؎-{c6z]n<(YEg>?T:e9ܒ,ׯSv=G˃(DC!(8>ce(.aHSOKL7SχjuR{ N=n Lsǭ|IZ(JOq3mt=긼B_:-duy:`4B0E4FG0q W(|EXNQh:cD;(( Ϸ]N{|ڪ_@p"}O,`;ξ*Aa,+*㏝9d`KK;_vzU2D4!jtK %'~\5LӔҳ,ߺEWC??>J6Kl9Ȏ-{[ƴ-bm+ o^| <Gn)@8DZ2vm#;&Jo (V\]t(Y(Ɠ} qiluU G;HB f<"R̿I[`Lt[i8JZ% J=d!jv#H2D@_- bcG2{7VhDn IDAT|4mz׋@ސdQo6p6|LX\D3y}}tfxBDzc Pr"I/| !Pw.buTnQo8x{b R*+})({(Dh1rn٧[&algi%(i]Tj" 72}}rbCKetom>-!0 3tȷ3yQ?x{=  NLO1w&g~Q/.S,7 >lpXYKKy,qzC"L\L.J#_\ıc:mItMZah,X9^E>RCD9_0HRdžcSmcT._'lK$xK=NNO!HOFq6j$ Bx~u4 XO4BeS*6g|}?uץnKarHBp{jm186?U'YQ_L n b)) Nl>O:">ޒ0i68Blku .;${RnW =Bӥiۺm:0wmr H$O$v@7Hap Jcg"x(bV38즠Z_y@b'<ѡm%oP,qa`gQՈcÇrlH|佷u*s lA>R1c{~ʪO=0ܒ0)U+h CۖE yT`uQrR;'TCTpX:{z`L7|/9}U:*0@>Epa)sdz2P[SOMo\~;xTbDb۾5]1L*" ՝nFM4aMt:GuC,6m7Mkk6rJ(YXʲP^q]m(z؂k֖:ç.}P.b/0|`(5VRg!y> G^EKLXD {fwECxk#uoЖy&vrHrd%9C=Mѷ8~| M;DLNj1G<8F.=ПOV-CfU[h)x÷ r !F훻'VˢݞmZIYVKa9KSl44W Ggg7_3^<Duq&"N ~ôy;_gBp5fnw?8.Bd@4CZW&oݤ$"j}eN(bB@> ם%Xc5PL*x¤TyRĵUT50~wXy@7 \U^Ka4 mK"@Ӓxo+ICFgZ]_e Vz}D*9|Rg.㿄~XVM[ޅ`J ցlRn!\}pD@z[\qfI&z~`ť%CmUvтj/ƁpW4S㱋jU oG/ZkXUF o^9ķ> i4x_Bmno>'=ae 3F湽 Ez>5,˒܂"rdo2R}@i yם#Zz`M%),.QTH>D䁄iht:D2k5y`WW#Z/7V$K7{QuQVO63ZypE6_y L~qWC1tG>n DD2s&>&CͶiw:D09P f%~,}01~Pt^]4s -lO^<3ss$"j@¤`]RK`v r@vc5v`WI.tWHђkς' jrbf=,p՗u[/!"3'0lu[E:5Wa TF#A$-{&Z@Uی>Qn#֗&73K\&Ln=(\Qu7P GYOv]v5"0QUrC:NH`ڙS'Nln+/qJ)±x!gkWŽS?@uc$rBۡotD6jhY\wk=H5< ؇(j59D^C3i|j9t^_9* xԝ37>L?Y$lr_wʯlUvU//\/'90ђ%a]m4nbDAܑ}BZ ¥\mr!\NfcVX\Vnf#hzPTڑ4=4N}}fX"ǾAAա7+(D^/mK41fDX{B!=i6MX`H5)<~M\E<<&~!lF/'X4 $ b:(Ds{ryK4 |}ݍڬ}7˙ cEݘ4ӡk8~7yqğ217 k5An?,; >o^k ީׄ}r2OuEݑ˹x=^LԤ"fewĤn(r1-՘ӵ;vӬc lǾgm!e?<֏٘dfk>SNyՅ/Y[BnеOHztOKUG eI 꺈 E4*&W^X8XS"'^tߥݭΆ+fy dw(غrA4UhJmVEB`ގ,eʶGLW?@DUש(F rg~ϋٸ[_ޮ#_Gט_LD肣OoT=_oY fgLg=KATT6@@z#lbUÇi^U5>'[vc`'96zşz8A|80z.B Ω&I>A kp4n( gčz@fQi;Z*QtTAwwo*phz]4\]|@Ws}Ӡ-L=*ԧX^Nk+B˶a噾Ԕ8}Э S7S:IV@ pu ,f^(3X(#bt(Op#M ޤ﫳:zt*%gGeBl6Q cOV¤BJrd 7/S\[= %),~ NBe'G?sln70y=|7(*#9at% r+@h}s/ JU>qr5?l1~SOXlD}K !0@c=/l)D|->,OۻxTcc; Lj5|^0+*+nZ%c~0`Unnе?zZ%p}>|Q}FgJ 25 E?j:O,|iCCvEFVP-\F< яUAS֙~'\/9Q$/xzquN^ 2PM /o0|^ڽ~N鶞a䐁PXcm]t O>~vk,du8\ď ٻ/#a++ w)q0-(̥3xQ11e*q.VKZۧ,Fwu[SO_O2pxvWbjɋxuW~w40640ug9j$k e} fIO{f\Q4TUG}[(fB|hlKtz5T-*"‰vzSg6&{R1&cO٧%a6yv 완P]U1SX;ˉ[莃a[ OJ#\@C-,W{@D>SC^e5?6I4=-VP7*~F/"ߦ5o35msdh^g{b<噊*Z-<V%ij p KFY6E,N1]L}xxF-14"@HdK|ӼfWK"תptnn3chz$.Th6Q}j.kRթfO@5||s4VC|?s  &c A6`|bJ;"Ov= QZt+ F1zI4hw~鹗vBp hZPho-EA pd9||qx4C2CyÍ49N6n?⣨*C&.#&7K BU@~cK A #nMDU8+ Feo9(:O8O[{O w|[_Z*p7ǸV.1jo*|6.%RPz,2N&B0HHsɘU~Z(Ptx"YVOCH$Lm`ZSqPv3g1<3OQ ęJHM`cM ;}M=`>w8I%I,5O _215%I9ӹ|-1%#oR,ci+ѱ{꽍M*"(^:l4yrcl4FIKWêon:l>v9 f.\6E(H.*2w0Lg2HB $ -I$]N ́p08oN.0 CǴl,ƒ:N'})ۥ0< ܿEEI IDATT}BA0X{jeۘl{}*@]8VZw8I2eS)\><_55# dpeEɁ~0%|^ΊaL) (ߦqmi헬(H>wQxO`Lf-&I /Wu2F۶\ޚm12k$+ 4]'L =G%J1 n}7!$ ccb?PT=,-IX{= L"'ЮO.X"[ΚG,2RC1b{ Jzd,[&|εi01nd4B]u N/LݕW?m*U۲6W/ Z8EH$^Z!I֜ж!6'HoH⪕a0dU%Ls՜ D,}# dGu[H <[QUҖElj/L22 }L*hZhL@zzߊ|fd8- UJ-4JF6X 3yt.>@1%u? "Wd+at:>ϲ+Xbw1i-NrI]"EBui&Y+|2,arȃ۹AiDF1͢yP*&,Ҧ QT <fD[@*E&'皤it] >^#$&NRZz IZ:Zu:c]5:ɀ$!-sReZ|za/Vdy}MmHccXV zXV^}1, EYm@8 oA#V4ӌ~D4ŶKW ,VM#O 9IӘ^ W>īO[(N1ɓAbqJK/!K;=nfq,vpwWL92m̈PhO,H8ccv% !EA q(4IJ,edLl.FWԡ(uP4SD"D\it&sLfgD"_\+Y1w7{PL0Q,[`yoɀeaY6k^;Iln3L}D"uc$-cO`3#HLT$Hܛ1l }Nme}-DIM$YSw.tH\`8b @A|,c}Դ%$&p1݃ɲ-|t=[h_L+ynSܯϒԑwKar͉>"7CI65fPրɚFr6if&Y 6я_Xpa׮`?[[tK^%El&f:aڔ e5_= @  j~3p=熻I[ϣJ0'8JIQ5p ݃hMVLzٙA)t !5ϘdY1 +L6l(Gr{oaL8?{Ӥ_/ō0[I.ɉ7ZE]TVT!w4^L,zCGm~QW傤3idE3et{EU-lԐrG- Jk֥q!GN(W B[j2Y0qq6WZ]-{t:*̜gMdYB]C9RرyyjQ>D 4<`QL3aT4 FNrn]guͿJ^m ŏh73/W϶} ~M^dU>F@,\%5MPp my'uƣv񯈧ӴU$M…u CF)G_9&V1 9q6e2 yf2 _;TפS*o}{ MC] Ty!}n9BaR!o&KP:oMtڤCN,$/)2}3q4M YY=L4Ճ&٤aJEQ .:U_%9ss?C;̛ZOnUmt05oYK(Yimh9]xUA0ƙߍSN0p0rw`{"SBšy~hT0Hfp.C$EQINH2Z9x/[-ɮ'!>x}p)Wmãz(h K\pMQz2ͩB9"p9%17ž$y܋1L3K852sgPR^izYJM#V9ˮf:vP9w~C4b?$SQ FbT/6k4$yMǹ6|{)Gdx}uEdZ us/oPUAR$v3kԶO9ifӦTw ;yQtr+3<ږFNЍ$ [H9ʘxuNg@!E4&Wzޡ@~Ǒ]L]%ϜGT\6ZP|#4AWd$ w>ɵO8=[4UoZQAQW^V߯먺G[2s3DR[Px[YVC4v. ږoSXrx d7`3^ AsoRlr$ Ytl)対pHhv>$4#l,iU,]Ε>+}' a6zQ$AiI)jJ{Ov;q߰YGR- eM-Ӓt>7ȿӳ^/CExyg6TbqKk p줗MijᅣtK?;ڹ9M4us:d5D?DndIcKS6+Ȋey»o.eST$ ~j@R3IvP\u +6(%VU9Ĵm^© [:; s۶:XIR)*xr.t||;Iq,Upۨ-z먎BYF+Bq%uԡ9^؅/k78u,B6NNR7rL@Ws?`Te_un*NBeTs'8! s'"ŷ./ݮʤLD /Q$-]T5W+D- ˵恉:Wu JMZwQT_ob ڣTda%Pon3#Xu)$W8ڐ(75,3/:mnW6G7 V~}N)L6*Gbfձ3!l٩i,!1(..Ǘk655ŋuA} Ź {p02Zm6+]qEz7Ԓ<{r&''222O?O:::(,,'Hqx sU;pXsF)o( |%N{vWP]Sd>x( lKWc4sQ_t>K4yC"PT$f=fF/Őari>9}WR}< L')Ԕ:bv.CՊl%9||*Cqq[=|VY'N;mmmݻgy]v E,kBEaDdG1ξFq]Q}j|G|ޡ ,K.,瞣ʗk?etډbPܱm6utճ٧) 48ewy??%PYYISSv-[PXXa?Ӱ$6Fќ֖d,er066M6~{1:;;;IsQ706cRb1KPwGa`dP+W 5tRyיr7w #>b|‹Ļo3nك8?{PYVY$<ÎcN7Q][Ihۣlj'. +MC/1>Aӵ=}_|)**{w^#$͎TuˣQ# sdSl /M1v=m[ΌSV_=[V IDAT1tzѷ$db7 3gpCOd2`W!, Ӵo:&F0$gi=~BY!Jڋ{xU}/f6rr~q8OΈU J|'.2<$X}OMA&cMEmbX3gꫯxj뿶2m19¡ K ULD6/+!9B^4S*VР@?8ڶͥKn+;PRR®]kjd /|Fq?f/*z ożegTMo4IGru{SXBvqb7ۄ&cQmTW"J\;!7좼T3NEӣH:TIYI~-*.+bF T~yaL&L j] yUvn'~xu;vZFQ:ġCBl۶Vyr ;Y.ɯ]r% ^g욁݂YAm3:zٙi+ݦR)&o]/;^?~3g'{_eq~n藨.zZ}~/ !1._1<`&\RcWu!I:%lсfPN梳 LS/#/?H=ztѿwvm$|.6r,-rT:$$'p@V$+6a#<+vAqff4ǪKNׇ{~Nm۸;J~?.J0i-)*HڵkVΊ*B+K|f{02c.g6*D0h҆`G0rul%$h*ί* ,laJesNCcn㮷&/ L<kt:| T0: $FWF-/@]|AN`"IRv*^2v5]^$A(FW;N>]}W_}/*^MӨ۷SL*B&x~oJ4D2gx}|VYloQirQ$;osꍿ瘭RƮP[Zpikk[ 8}4LM(**"sAmSO=WB|/~@@92 Fq%4L!I2ΜDaۘlۏ\bY&)(BGu'? p8۷uV۹64H_*w/V')߱E|psuT Y9ۿmiφe,#%84BUA*X,~9;/CCXi+?͹)w۶3{,(n{!k.:;;ٹs'TׯXPSC@4Mi;)?,4A&K.EIq7lPrlIZqYV:S餽Jhiia۶mrBi߶m3+ P_s-)R\DB%`屗~ݩ9Ʈ|cS8jPϮIaa!@]ٲe {'sCFA]?w*~'σi!>?tQ-kQ?IK$ 85E 3DAoVFyQ%԰ bl4(]F6U'{b>sٲe ;w\ЗɯҼx'2Qjlz\ VEVROsB C S_(#f8I|ж /@I'OQ_;~^XFm&FL}A_Y!TY;~cS9ݟcx*I}.suu5?0]]]tuuyfBX OK$5 tؙ3g φ0Ȳ=I,2B0x9蕍J26֏e} Ţ^ )++B1BTJ%TSHMC%9զ*WN}ĴZ8=_'m`f"ne7nll_f۶m߿j:^؂QU}=G J'(G]bVT$# dܸ^%!M!{s塧wpX2Oֲ,"D"CXV {ޠ~|Jn+SVɔ\OE؃h?-uDhh:0{:Goxkh(C@v(.vS> TK AfHxM;9r}tV8). #'Lqf楤tȣ9{ ^ R\죬"OedΝ?`0w$ #4 f]5=$ꥸxˆ0JU ^gjOaJ10XtnW^y完ʗ%zt$I!TF PTME#>z(_`I m g.\/MdGqY G>>ƵO"2@-ٌ>6Kgg'`,ll:~}=zwnI`r&JIBUGLtG|1HnF:/P,SrHdph;̇$IQVVvןC,Iũt]M&'JkyZR  ACRYRy虯STFm>E>rP+͖'^dmϽD$p]KEE( 4[ P":6e]A~Lŋ-oP_TF pj2O|WcZ6KAIxWl2R𓔶 6$gKoWQxӰ0Ԡ@Eqs 2wm(,WqH.(d`HfyjU(p3 i>x $W^ ܗ `|f.gW])NEYsќ;̽AI/OǨlCry<܀* |y>4 &ĉ/xCݒ^|[MǤtyq46z_C]UhYB-7DّCxx4Yfg>\4iY<+J/(Zslbt0]ޭJUn/Gا&H  xw+?J6^qb_%;(w4vOi|/8~@OK;gD3xjќ;Jڐ0+wqiD?+ZNuTƕN1l}ɇTKe\"OsG`E=W]ڏdx$-;yk/u[=C+>E7ԁTUC$'>> "x<ƺ%>fg(.AV D&,ˋrdYVF\?U "1L~\HLr 'e9{%H1t;SD2y~oUƟqmW`fS/jUb2YHzUX'$+:v0E(BIŰ,KUwI#t6@Ԩeee8zwÚ{&#cj(/< ;LJ}yfCa':n,T,VZlBQ (֎֍_ttC^>N[WO͢zK+!,$ QWd+Î#oN$n'tc2QJ:P k0.Dzp͌`&²k.,$#eiD5 /tec v" wǤOS/_$ ׻Gw(=z_]Bߠ略q !r]ۖs~%!čj#}?|a9˩y=t?v BS"v&\9M_%*YHv곧Xۉe8\v8MO}PкۇQ>C}eó2 ݄(" HS5l3t'\!A&塾i(`g|z(D&:1w5j 6V[<>ۜ7M4dFZT,ؓe$N)+Xfif H29KtKiԅJOkϿ$"c Hi,6.gX*{o,qA^۠ضlT5Ϙ0q:&V11U~:[Go?9_現:}_%vF(>Cm;񳟆9gQHm(80TEtM>_iƧF TJ7qG(O }P]"я0 rqlc{S2u-!LJGKuw/m7),0аm\\UF{΄ǚwIG.9BqVP>IofkV4v:Lhj hA N51…LDf/g j$}ym1,E3 ]ǶU ږblקub3*6p`M2`fB'6bKa&zDZ”UUiʽ7fi}?@ڑ&ZlBe{3&"g 3?PmkhTp+,?ٿPp~o)"m'g3>xoPq_gl$c$';Mn} }8DٶO%Es)* at"a$p7OZ(D}S8'M==?qBLJ0R^9DhNh`YI.:9le1?{;HFdK)^xe}Nj?Ϳ'$ %}ϱ )LQ#p*.ό К4Ewi+W/)ۈ27)@&BH(:o%EòSXDI+l+hb,r׹~Uש /~g Ʀ']ʕO1'JP5 mtעض=C- Н^ 40B*~,#1$*H2%5/xl?') ϜY'W{ +K;*+( =LwsczQCJ"G(i!AzXmXQ!Zy!9oFWIon{>T5h0e?@<|CnSN0\X#|-fc`l7xd@ $E emrsAe`?0U伏/{c,q$kow5{7# {)C<)AKg=nԍdf( Ma(2X/%.vt%=~[\ff.` 񐎷PUV+R 8Ns]w1/1( ]wݾ]!QV5T8@+\Gk >~:G_g-}ccoq5/Gk+4 4$&o5rIX\S*`p{EITO%ǂdkHkbYyï. o}Δ/`0\V1M}L>8eYzp/m{#%k%:{O*s{UQ5C ق05i0XH~t'OpSeloNLяe+MQDEHdDy$w2])]ܑ_=@WqKWEdIE_˗IPu]76.:E ]S?o??Ӛ$qU nsutM["jM{xOkޠ<j2+uR. |>S_x/H*_4vY x-HX|钉0I#~;FV"kgY]|t}t,ͽF4{_GסgW\'&M}eK%%nɲm$Pǫ_Qg GZ #Y"u&{!S='8j}?zh?#{ zWEҙ5u$1/UڂD}wn'q?G<\W\B'uO%*ZH4 m}}>]I}7:_u:лݷyu/x9Z[@Bq(ĻKFX  IDAT N-4~.nU**zY\#6dn\0ks[u3@s$A>%^3ᰕp]$a~1eTeca3."X#I{6ᮃ(1DUׇmqf/r{p҇h́?d\;-)n`kG3Q&_MJ})6{Hn,\EV-p jӞ5PQ" :@k&?No, /Xa{ ۅexk+DCXGxBW2wsM~۹9Q]b˛^,3zٵ=9ML6\Ѯ k<))MWXfp\uo@QAB_mͺ~z]ՉG J 6T%YޗY9XǤ$O567Aj(U](,]ſpć ^'V .\ɒLWzTw)K:0-${8NL$ 4!I hpJj!dE`(a4p7i2[_ro05=&$7 iHб4=Ǯޜz4 \{xްp+h8./Y]fP '@W(/iMR l$LJ_:-e9O[pd A5TI±׍.FJ寓{?XYd3k岷3 !%q'7$'0P$YB¡b2G= 15}5e~In A=z\N /`Ƕeɋ7( 4$Au?C==!"N$=s.v $Cy0MU- lSS];@TtM{ 7VDK xs¶mk2m&kON$`9{,KzY`&T0t­sίP:҃۔g*­$&,lt΄cۨ^cc`y-Ȭw ` rYJaPY7!$6'/e gJaٵgCh; kW0MʥϚJh]MJ,#[pɉg.!DUjh!-QӧjͳkEVfpaujMj Z 4`嬵K䧊?w lY0٪BЬ>Rнyħ딪QjWZ0͖I M#&eab^9]7}8M"Ŭ`,DvbgX\XB߄|Tf3 ۢ&b+C!\FtCLʹmГI0}&+WqJi"Յ kkT*~`ژ[*äqG4!+3T2Adyg@rSSD0׭ڵ,LaD|CpJNɺɦ@rYfv.4W-{>T~X\I~bpxwrU$) LoڳmiL]Gb}&s2w.ߡ tR"&A D2gǐD+2'?p7_2yuZpxgBͭ!қ+yĤQeEQ7ArNe5H&%B2;^P"`U+q#!;y&;{."}OJ,…0 Hu9iX$>c3Hjо/02Ѷwj6$y &&o 1.ݢBw !fo37wbBMyZ 4UJ^qkOJj5 ",vnVT1!}|4 Y5RaV!N(o'ꭓKBhF|ҪVuKk E!QVRVhGvRR*͗"(Hƛu]nݺ|@%(fur3DġCԶm.\J*uYq]Zd2aP,>]ש52'Rb,v1I(Է YXDPEۂI!I8bRǓT~Ν{$ gnnRhVaZ]oNy q??YXXOID"Z,>_e{9G47,b) dE}Eah#ѵGw $tK ٥MAX >c"I@ju9+DB!l1B s qZiU̹s瘟_^?H$9w$Ittt0:3cۨ-fM@,?c"IHسv V yn!&D0hlL0yK6uͫUΝ;4_}>~? ###~O) Z5_%|,챊# kk[⫔j߽sͅKԺ׼P..æ U^Vf =} w+K|=:eJ,@!©(W"ie±w7KW*9s۷osIP/I*iB(\r`+Ȯ R A\FIib 7˭je }m*7.X-h+)ǿmVf Eƹ#j1.wԍìH'2H-2f%:?z]^Vpv óyJ~mn޼ɉ'9p`'d0p>$. Wd.dy~ZYA22t/\[bb45fp$ǞMӝKX"OML>a[Κsc "aS*\)u2CE?y":vs uG@%e[ZLR0!~d@$Iv^r/G,w}kׯ:tnݞjc dZ?SvP=:ˁ=U|ĮhBc٧:NU;KK\>r#\K?n?~/J*hy/_IۜY~-ylb-2f-mA9w Q@u_e_CMq ~acd䯣LL~Zn0^R_{\.eG)w Io8m}(,ǤZ* =ͷH( P,mw2]]dO8} Fk:FBoۚ&pŵ[^' ^}ؽeG\hR"g >G+ l ʕ+9|ߖJI4'WH07`jAšH{A֝ ~u\Y*ҕ ZPsWvK>('?C(Tj0>3OML(+hvҗy$&YX}+%z+qm He(&9x94n#jm5†(%]8/oX}BTSmdAm? zZqƾ=ڵר1bmjxk2Ƨ72YS-a9{JWJ+%Q4 %Ok`jncGn},o0>C.]ċ/#G,ӖLrknp<4J0b# W}/:ȮBvg>j3=ӟ, M,:|qȝA,_X$qREz<1Bfq]ւJz7yxL9 v [Șf`M Èc;\ξ_d!7c7t$q^ZMѤG=py>C9‘#GFigg(^-qm#s_|/N[A.?^~v.CL]!3;CH|>V^7~i_x|7E|ǟ| )cR,)s|[3MMϵE8'L4~P8t7$(v7"?/VEXVy5PrE"b_-Gv27o|[>c(U DL|DU k\?uQ(AH I$4=z8pAO~ .222±c3MIfV@L-m;C'du|ܬW_8Tħj? eq4?]y 뱰= -aj\|3{=6uzb;1V]@;Ph dM3|D˗IyGKWp73@ީ"QQ,LS:.ttd'X̗iUlb˥Hіnߺ RK*ib4L{Dq"l⸳ ]V,}SBӨ̵mzre~m/7x$I1DͲ>ǪcoCVNRWBHUXѯOړGA~ʗ9kp C%>OVEi1,,bS%? ( >lznqUL%lto3._@B@(@ɟ4c$IB[2-5ȝ?FS ^(ɄZ^}ۿ- Ii~ܖcP$&03mT(,.iߑd_T`z?2 t$aJ? $IRi-vjbx+WNk$(z ]=oP\<|  p$aZ4~i&8ÕW9[  ˯`lG1Y[\sӾs8T#HL鸽6X 3sD*qfg_P̘9'Ԝ?]%z EFۨMإC}(OѻLD o#} Y3xmȒL,uV !if}K&jUd4=a (P=-$ݻȊGkHK+# j#rH[ӆMB(B8vSguDZ #B 9JЧ!K-:kخ-CCq]dŇ鋡2F)^>ُ#d$n9A*:11z=+r,4}8`cIP#u%%ׯ_睷fhpǏo)$=]]]pg94f1 T^jpV.-=G =To:$"GwIG+iyJA*q8фeF)h$zI:X1|(fЌ|x#IZ R4*MtކBɊpye5@!y})Izkj\?HBPTne.nwa__'Nh'*YB-]+)+._]To41F'H9ʼn(|᫋gܹBR\;SkL_|s_q~hT|7$ IDATɵ;~Po/Zus L "G#C)SyKd!Dk/'hD1IJDFZl~@;6:Gt9ɻ5:ʹsM ɲL|p m?sŜ:|Wgw_+i Z _ 3` |/zWy^ßm-Yܐ=Ah#J"5vOd[~UxU']0pqVEޝx4JX>tYP#%{SռV %nqi9qĦoh8BXәAR8-Ajב$ŵ ===ϔGDD$ Rۭ:@Q#}b>Z,FEo2bvb<3)Phzck @#ψQN>M[*ʼn'ѓ$Øc&} TWi G{KVViDH>Ag&&X|RcJJ9$5=,\Qz{MG0@ٰ=<);dtey0663gH&>Ιgb:ujyo%Ibd~N C%ZzA06[\"=Ѱ%>>]Zu,i3Իty #ݜD:\!cn, G- ŞBEa8]vGQ{c4hU芊kTdfvg 9u$:\\1Lӳ}{Qvq.o'_:_!/e2h={ң鉗^4" k"dt靿H"]QnR,%}bL.-"\j[ BKU+/lz 4<>bR.зpJJ8{ sIɭ;I$dIn$I\IQnU-bɲ=]vO 8u`پxj=y NU[`Y5tX_c BHFd6__ґnbiyg.[כusU*?BȔ-K;= V嵓JNTB*=4"A4"Px$Tf{ؐRU%O5N>M.^{}>VΟHUoSFdZZDa1( <7C2gba\\[5*)Ey[)h^~c!p2 'Ow[~]ɵ;>ϰ4'0m?1$D[7{ȗXX*vF[VH}룤@Yώ`0*I ]Ԙ1I)g=U0pldLb=q<#|>[o*'Nd޽z:yIxg^Y+)*6$)D"0ԪUfV4S@YX8O2W7bR-r0 H H>o1)djL^M "I;kN< #ľ|> .9w mOJdIf`> ̏޳h/-հ&yOML S֙dVATzvFs,.^T҉R?a DC! %D2`yj!+ Ts~dygWr,-MP.0 y{N2Νcff'Nׇ, "i#|p"+S]9q;tbtwv6l-(B2/ԗ,m]CJ/Q(Q?кHK" (u>G1k3qej.D(;H  Vbu6؉ӌ/3߿cH' #JelyR#4^yԚLe!0LAn%)wt}昛D>"D}kZ %[>aP ?P9c*g- -0ss I0H<7<%[_?2Y*XB&բÝcׂD"C;!f'Eןb CRCZٳ\~'O;z n q%Ax/>IRd$Jny'2 !(L]_O B-0?a!(Z[l=<Z[qguR2z:ŕA$igLf1Ezo>Y2p *ɕJQE! !%t /塪*H%L.B2zksΖj5, Dzk:q/?R˼KS0Ёt;ݑ *UJ+qnw|fb( HERO(ڎ>B@qX۪Y"DLfǯU:M,-D<^9</^9|xWt]A.|1wzTlD===. LL$Iُ/qͱm ]@USA,Xh)0kP]hnĢэSe|'KT:+q\`RX"{<.^?Gz#irdd׮49Euxs˸"twu5Dn`U*OI1ݠn#ȲLku]n޼;'N7)Ý9H1?vb6eY)++tR/$l&$qst5Y"nC$]J\+ؗn]Ӷl.\hK&)e bsﰘ>[KX,OkN-sc õN )[Bf` *ikm6G[*!I `ە[Ǯ#er) ­P,̮ \ܾ.4νB$V~8m^{2ԻJm $K)kI$wm۷9s4D'O=a%+ĢQ?zCCC$Mi'&)5$IVܪEqq +txa0t}KSMOQ.o‡^kA2nۏ&Kﳖ_B j 7L̝'("L{޻\4U:A89o3 hhA9_ `vyNi,dd,~uERH(nk/+  IAo2YV+ܙx  [E.^ 7iWhJ֖7[J$Ϝ!q)O4,ňEE_ZbyiI0CA DxUUy\^$RհbTFX8DwXl[(V|e2 #&]Rl{\;斸}0Je?Jm[M8 c+3SGqLUϓU i{M1hWl 5O>Gl)lT7 uG J1{ 5Bk2qj&F %l~ޗ~" h?? &)abm{Z(^d>[BeUeh+MD.SaI~]C j_̾ЖcλqYB NmΖ$BaÞ. +kkQp@V$MEuT]C%$IBmlkp㠫`doh4ۖ^+3K R6 [UIuUez2s{#Y_}A*;8j;{L0)q4Ag|m?'Ū䰊P-M19[SM%'R vHyaDKkخȸ +LSD d+ص5׾bہ.IU@ 8@mnE82}wΜ>MZ7:zzY>8LbJn18aX]T-ΰZIߦՕq,W !V >"F!˷ɕVZ,7k  s׳Clk#O։`bO{ڕs@!rI00(lݶ3gŹfu 37f9gmٖ%YJRb H9* @)R%Q DU~]:̇X<=8-?"c%|_E,رcdYKmmt &6jNmwjdb5ΤN#(9P>D6qW!Q".hltrژ=Fg4#" `R?俓Zes;muP,jmCA U'x[>lɎӊ x~BYan0+s*)HY]gaO̩ N;jo-e&3>>)@FAU=&p't64>2McǏ'No^`w?>_(0t ꪻ}'|Y7SY?IDᦃX;FٱZM͓LhBDC %Eca, osS~ :qz: ݧ`J(tPQ IQP*@nWMzmhl h43Xy<ǎcl|;w٩]N]dRMV}J:7ܓ(P9\+͡><"8vp\f 7:0F#ussXvjZBxˠ=^`1ޠIZ؅dI=;{GgkGd-VSr8MMҷDUUΞ=˥KشM6'ttau5XHFxA N݉HpqKyL&UAbu80Yz|2ښF4Ν;ǹпdY/@w%$I4QN)A׾B&/Р؈j%Y +(ѹv PwqCCC477k.LG&Iۋ]4KX# Z@VU ]ug6HOWN;- qq;?`Ϟ="G~IAho`yyũijZ b89Mۍ[=a2uGt5ũiNU~&LNNr1<{q9_x1=΃_%f諂,g/](KḢK6l#|-4M( 1iHI6isss9ryCC <ַ~t c16OsFZC!.^'gIc|?ݝ|}Sٻw/`Ptta@ <&zz!8ĉI2. IzKԹ@CC=5b1 ̺y7@drdih4'e Rtt֝0llŦ̺/7K"SX }}zFPs "͡UA+ه X$M"T"`hht* PHo:0yq:l!DT-l 89E߿<\iij!PEjaq5C*e ''qM lܸ.DI:fhhh4ݻijj>n= t8ӋKYCyOH.꠪[JtOqJLdT,YrIQ5|6_ȩgqèFrOR"bk_[-g fRZv=\6'XP  }}C? f&爗JUE02%'HM_OﺨUU9uΟB˗?_iw>` ~x.jKm=@sO,}V;] ^ÖZ3_aFo9E'r,]mXoQ%e?q5aMdru6'h54׿Vaa}x{XT4jX63N:z(4b"j'P-;F#/_fnb_}=f5MJ[x]+N٬NLi5bH}0H:9F#2<<(YTUEeZ۶5MswhNS+D秉,'D#FDA@Si" T`O>|bWީ!-![67awLzJmK+NfIOE`͈F1evjBYSd4J.bK]S=4b:tBIU@mQPL]h\`5 KϬi(<rE fuML"s't[8/Lckm3@.a~nRuMTW94 j+sVBujdfsux3@us3M2)ml] ! ˳FuM8FBѱ%LO,M]k7Jfk3iBnsT6N3ODGmԆjY,Mg8n|c2Y&Py@xr (@cC>3<<^ntp%"SӸXA`z.uR$&2R|N| wR>x'/bv8%9^%j<6o~xӎaaf‹=sD;tpH)PË<^x۽&O'&4ME/op@! [ֵy,X*Ze45<Nzap xcTοo8qg2W=-UV8'Mr`?vt5I qpOi8˿;\16 c0}p`[+3XO7dx1-/$ll>0xFfDj7lED~4ȹW.>im=M¾[)Μضʱ1KFlJ7㧶BnUHE4Bco?vtP\;331\K;y_̫ho3رe cT :@e\A(4Bz,u.67Ssu3l6^, 2EThmn!XU'F0O H[FiRLx5T&'Vj$@\Sd|#yy;hhi!L bihbWHMFsO/vcd>b%LFxBoh41VgP A" 3"ڱj'r6TkcN:z;0&03#ND#|խ"wT 2r Wrh"I6[*.k~A(Ik @#MM̗A2 ᵙ|Wau/rĵ F4R2,/V"P Qj`0yhhk`|nMihE$LvRʥ.a Qc0 tl;4ƃ;f{bܘ :=0 kHge#NJP|ɶ͛YX\drfh:vw܆%A@-IEc("~PɤYZ{~fjWQO}DPUU>$I(к ?k f.l~%u|6yk^erbOV^R*i*!kοFM[A6mNšŧRQe&+H ď _efj~q+O<эX6,k T-}h3sD6zeQӈKp! ckGkX߾` EA`4ߟn'FvXVd1Ӫ[ d zF*"44* hvsa=t)Q= a $S\N,NwvzG+)3R)&3!UU"#f=$jk [\`9t`u8M7f(r94K<[Zq\zeMCT(d (84Vzhyzb2iaqiiEfn7F`@D{I wTRT"I!a2xVr: xI M|i>]*qqGb9`6Zp` L `Q_&8cw:nkC;~;eL\Yboh /#m۸9u>ӗh@Gb ھ~n39._5ݛ7q'kj0bF?sKc\>/V%Ź#2o)[ k_&۲Ʌp'l۾^9{bUcbx[nxVV #W9w.zZrW(;QaƦl|9Z,d0PэQu^I ҷ[K//qvrAD& RfT Ycd S4 `@+(Ӥ#2(rYFn%YWnCY'VB\FDXݎQUEAUUDm5PP)q2(Zb6G¹dllT.GMSn'M+n6毠 | O}AˋK{پ(rS'Y /ɕ=[۬DHlYYd%C5ٴom5QT&HIrq66P*&Ҁ( V x-3>n v_Q#0O,Gvְ47u-pշe6|6|3@}(sHV?M mkX<,FeJ6(8&#PU^V I˓ΖԆhixK[woa(ʸCT{iy̞ uU(v ~JT) H"NDX* 6.χu94M#ϓNHe234Je"˹uas_'?1N'wP )FN}gtmV{R[_S'/I,3ա$h"WOsN[9:::::k3FP,#"F ,!T bC-)UT F3g.R|&HT*%R]#hB!\QDf UUJyUCMXfDbLلI(RT$ qN>F#ь erl 99یN-R.k~{j >;,%ؼ̞C+L}{70q4W͢\exdi :sQEgh+̬ȘA|j9 =]qxO7 yEhz| D3 Pr({xrGqu0۩ zɦ{ 4ȵp6D<ߺ{9u+WG(`Sűz2/DKݷ oU2̍:y"{C>>wU";ĘQ5Gx$Ŧ'# $w%/Fg9I̭x~==YX0yGNNӾi^Ugo3C+F4y R7Ws|>O-oR<ť#0bcKdߎv2❪I+Fpm.Cǖ-47:Kmm{\oH Ox*q#o&Wf1a6o촊`"S,1fq.Lx93=9I"S6r7bsog}("tǎ~n^A&+\![P((Z\x'ǙJtR̖ikCEWYIh|CbgFQ5ɍ[~"_}I Nlm$aq)EYdP5 D+-ݴm&h%XqWS;==Դ׆zE1he, tٿ Bl!P@KǦ]TXDAbr])!R(xk(,M07 }tR߻fw3'?cC>"Sc)bH<$ \.3v A0z In _QSERPd<3ĒY@0Ȧ}ܷpUWfP, Y FH5rh΀*H1j-&%!ݳ _M;6R,μꥥ+-:v*dYNx<%se%CkK-F-,ƩEFm餷4ߟEVZ9CrZFvrT^]q#X,U@Elt sf8{Êd3b~ʩ8o`mNRFZ`0 | VSK$y*S4A 2Z IDAT%Sqykl.3qědb ꗖI3֞AQ$7]lGiS ̱Djs(gy)hFLFW\h0bW3@6gjVfQV!XY%YBe3,px]LGRDGGGG/L?V I~%X-j6] r,JrS^@!gP3dz P)d("O` w'F\N35;_[6jbIŠ2 S_A#ȣ)4Q]X򿱩Mvӗ/}ɱ duٳ_>uM')"NC} 3׮0!ĩݾj%FEԚ[{?#h\݁X]IlQ2W2)rFb{ƗZR6vZ#H*-[9:::::$ri+\>yxRlLQab _bqb1;'dx#T ߇lP4n3c\# sl$#ydF s,D'OȔdC5^̍F2>1M|$ l"I|adW"ʷ[0є{ASW ėp WWdDP ,dʽ5Du[ O̲861RsX`j`^Ν9WTZ ]6-z͋ "miuN/ | zD.y*]UMs7]ѷ@29܏i Z5yl76O-!7?z–BxyEE2qÆǞ"!X=lx[ٺ23Sػ b@^@>h|'%[y3oElÇS6}5o b!!Z44jD6\Q%Vٰ)%2 eEC6[۬jDN㱭h3)2&IɊݱMMې8l"ɔ=ކry4рDP R9,n/j*a7F> _TX"j@&f6Q(ct|8ţ08($cn QXɧӫe$ˉ,>G6CX2sӨf.1:G Is}`qz0"t\AVR$Q@-YkFb bEJ+S=MA!Hmwo #|mM&:::::_rea> dReSʱw͔Q*fg|^\/)NLEGu{}[Naf|2Vj9Ùf#5<&pe+eUk!NT'B*/0[xsÕ#qP1cG]o& `*2vJ*2Kmߌ]Hr" P|v?͵.O正6Q+,)߽ ;G=ܱaM|F. c>-s7ʢ0~,JUΗK )YjFDU}=M8~jC 2ScXT\ CSW 9SZ4VjE@ziuR҄îQ'L#H˓LϡFI /nz6j!$fftHO1>|XTI]@v0\<~=:ЊbEEdad(ttdHv6-}=hy?rTqՊ`tكZ SMKgQbv~|jL X~ZlkBh fLFJ7_LήP߷{b󽢔VϢ "첒,!h*L.Za|$e~ k(۰e@T*QJ'I̍SZ2[kо~{h{Aov 4t`?|:CA2 |h6Z[J%2-w[>{o|Pc5b YXݒLiV#+\ƩP?%.Lttttt6AB@)VbŸc-xn,wғ %_6`]lA6lht*tdlħi_ @6Zpݸc}kϐ!_1b:PʐHdR$/b 8z5\_^'82qӺe'~3 G)Uʹ5:| U;$/O07 VF8 ܚ5JǮ6VO_$`ʊvo'4,5r=;iۺll7_̱ٴ dm1LP:;f&N @Oҩc߾mwX>q"unK#op [|L4 9%ukd--;l2 3C̋UdjRSI 07l#ɒe[[k}m˒7 J{Yd 6&34$F |R_-|0y,x|3M"ŗG4\L18REuyxmC捴q U节FM&A͛T١Aw /aJ/GIX}htgpdoXqz?;Elۿ"|+_۫ !SOO8루v_e(Ir+KmٌGo1h ,L2nHu] j|m\ԍ+a}D.b /CD1D%̎y+3izx cm7HKcir 4CP'5BePBlmtwhڿBi43q7.m N~>J^~1eE~zqѩ[wkt]˽ye{)J 1sIY-q̏c[*0V|vgcmCM$ ةE&ձisQ;/q-w"b,3=(jXkLN-SRH>c \e!ePcN399OA afGzJ>`9{~<㾟qtnم{o]^Zx84Y'd2i+,,+〪h(8E&c,rq`Y6*:zg3 :V0͕r2a]rmX[IdY S'ܲ~qu(膱2kmeZznd"ɢᆗC&Q4;mZ;cYd- б25}U3T,e֧k <'}͠&ʹ};'WnqRO]w.,[iCӔQ]XQuU}3UMc jtKk$ݸ[ Ρwۆ5%**˼s]Pu|}\麽CN[J1:0@ƾǹm?5<ʧob2x9ˣ|HOǔzi?ʒ奪8Ń<+-&B!TrώaxlT>`-q ^_O팶|̙(Uٱq $H&6P }ŭj;˩"x jƱ:'p|a=zM5(8,^ L,y;ͱ!} WO~@y?'8ߓd3pK$R69@}4@穣Ϛ) [3' kAh]5͇g$'N-r<͵8wCS؊Nqu?FЄӴ^ba) RmuI}>3~=8p=fimc.~$~.AЫxPٶ"5IBצdt0%Nfo4~Q}ZgM{tNQ-h6j7puJ%,ݟ7ࣣ=0} mR"e4ys-ApWi»DZN0˒f6ǨzM:zn(*팍/db \n2CcsVKeXlm!r ٍ;67et.MrO?GJPPD ZZnˮ}dfz%eTnffd9d|de8[\aÎ473}^N!@=NeXB+RťWVP#%k˦6<7hp/o_>*:mŘJ_h"-&Bgv?\Z5ȖT(u`ybWf9bl{M&ϣʆm83a(jI_|Oev+&!-,„`sORp-p,d雰9x) 6w]gSuCUreV.FGFt3PS]µa^)߱ю#^*a_|kJ=>Aģ՝"Kqtu,7y^IHrI|fEǪpcgcgrU{bv+]#T%voBq2X9rH%x yTT@Cb4@SlҩL6cN&A mT?U8;he}zXFqk4] L_r;Nu5MPE-{2\udp>κ:>;r^leU%?FoPZbȭ1OlI ]^~3XʁkLO9/e[cۤSIIL6s$O @^0Lby7ohA:6T2NÇزى1[rwF\/Vf(.@i׃ǟI[(B!% LIHb(IF(0=A$4n>gj'cI;hX,-.Jgqn c1‡m硧^a}> m OĨl,pR\C+$[AUTe=ҊNUד] e; + +Mӏ_лSm:L㥼ζoc]ХN0e!V +Io2AjHՖ]'i8cK$iL?[=֯y\mH 18yx}--AgpIDAT{ m%XZWW 7|n'COG'Hle`"?ӅwyP;__86;ʮ0 j~m.0pUk ˧/>~G= hmH^No8X(N]l^쑷0^7rZ?<{([`K1]3G=86p%MƦ(04gQ{D´\ꡢ]Ui(3G8oPU ˂R.v9jbw#.CSl#ͣ-snU y[( hy%4>Y;X}Y|<*/=,噗:X-e<5ur'^yC/IJ($v{b@@@^@'Nj M"HO    @PDRRH} m %G0I$!@@@.SNq߄AJmH$3;$|VoI$y@@@`N$PrĉA$\   D}\K{th<$@cvgkۿm}viWݼy_eފRְaΒ΢=;tݑc{ض=====--mke[jT&&n.kT֚Tں%qgKΖ %-q-닛ce]akv4.hWg#)I(iAN"iG@@@@ xT") <[︋PҦ$6}p4@@@W@{'/cW%HgO(iI>8   +I)j[{v6 S    $IǷOI$h)    pPSF3~} m J(9vXBI[|H1H@@@@DmOJ@:%mB"iES@@@@J$%jԷR׶Oݭj[jWӲy_UʦM{aoiޝ%Eu{:w,ӑ#owZgձmW{NM{vM{Vu{fu{FU[zU[Zeʶ gIhM.oM.k\ֺ5uciKΖ-%-JZ[79˺浅1;hZ]45t&|uZԿL^bIS/    GI$ I$EPCܷHMm    @T"rFKϑT_>ω@@@do,=zt}}w幛WH$M@@@@T")s{[{I/$5jyH$=B@@@@Hu/6C(i$}44 @@@p/L$w݇gmb͚5."CI    @w'r]Nَ}+viWݼy_eފRְaΒ΢=;tݑc{ض=====--mke[jT&&n.kT֚Tں%qgKΖ %-q-닛ce]akv4.hWg}:P^I!    [N9e$XsE"( %_4o̔I${     T")bH4Io3>(ĉ)@"8@@@@l&IY,jӸBYy^8XWe)d)s6=w<;'I|_&}婯<,O~E:E@@@@<8S3y_?e肦UMQMy+W5Flw幍r·5mkXӰ$aqvâY g:˼usN&봺1b#בH#   D{&HUy<:'ېHz{X~$z@@@Q@%rLW&q I[?>   (IIU*7:KY҆;;K;;: tY#wGΒcۮʶmΒRњ\ޚ\`D!   L@; 1 K"iG@@@@ (K$VxHPOI$N    @T"2DVmFH$=J@@@@O>L(m^GO8A"!   @ 8ɻ'4>*lxcR="1    @*)bpv+.@"w;މ  XP ??ѢEܿ[H@%2GpO={:ww^,:jϩiϮiϪnϬnϨjKjKlZٖZ,)eZ7&n,mIْ%eCIK\q"gYWؼ9fGM V7E7E5k\Y6.maiNÒ f/Ȫ,2fM^7;ںgĈ'N?>wd    ` ȹKXq4* wOЧDҫODр  ^%..NE][[kN DRC_H2|!@" U  $ e>t255P&%%,A DRB }0$3  ȖuQVmmջXWel6 O/\D )#iI;>5ڌ  . e-aH9ե"""BexxxYYY l. mwMًNx\I$-Hh   ЍNHH0Ȗ۝ݼKFIbbbd% `SHJPhZmk6DҚυV!  FYm,ʺlE2 Ql7}c@k x)ufy;:Kmsjڳkڳ33ҫ*۶VV8KJEkrykrYMeIK[w$l/iPWܲ9Y6-lѼfGꂦ肦UMQMy+W5Flw幍r·5mkXӰ$UݷDҎO6#  @ :kYme--D]]̎4l.p=WDrwGDҿ=j' I_@@@ |!Ji8ofr%l"IM.̑z3I$h  v]g-xe̜?~d\\\KKKЂql$pI: m4N,TI>  A- +]ϢEq='G2nA@[ߧAS-$@@)kSeIYgVFGGk5;#@?T"+'pM?apD2?G@@+ ȩrv9_[VXBSJXiBT.<_{Ը^ d0   !eaWDŽYUmf, 3L]T@% Դg״gUgVgTWUmlKpeZJ[7$lI_Ҳ%e}qsl+l^[y͎MM"W5k,s6okְ4aINE dtys3IVMZiu_m3bĈ'XI$@@D9FOՔT1g-FH~/$xD   }### 8XG6vZmV W@%vUZ3H s$;V;dx   /Y:Qn[m9G~7#'t˒V(A؟NHG"  QV@tRJ^A6LMMO?'''ǥ)}l#L$O6pHaI k4DρV   @pȪgÖj[G[=>T")9u 'ۘ<l]G@@FGG3mlӁ B Z@DRB@KeNH$q@@^Y,k e#:^hG2ҎݡT@ɛO@ʶmΒRњ\ޚ\ֺuSYkRiҖĝ- ;[KZ6/n-ruk cv4Ѵ)iU~ST~Sd^ʼy۝eyn܆m a4,id;aI;>5ڌ  .bV{'ZNDD$~|4@@+PVV Ke햢[w 2PLH`a$#G@@蝀C`rss{w\mzcLK0 DR?kVm3d d   ^!eHÖqZO̜?qqq---l/BHq ,[Gg -7F@@OIIIcƌ0`qԊ`VfA{uc!kBB>2==]A#@">4B"#Xn  %,R1qĪ*?&'q#Lkmmmdd^cҥ;855>8H+-^8kG%  8$s4iD{׸YʠA`y]@V%dìlf6De  +!)pI{vU&. 8aQv¬Y3e^F܌usf}VuZW[1B.8zM"i'B{@@@{{iӆUU?+Kr\)B@Ȇeros+D*t@~)k\ֺ5uciKΖ-%-JZ[79˺浅1;hZ]]д*)*)2qe^㊼ƈβ)/Z_bu\/]5\"@L#O6F9 W"VJgB"H H2@@@XX9眣BƓH5{z\;زn;lVzD?+1 s$՚$@@ hGiKxܱGI;6y^y%G%l5oq7(IVm{D֏# (!|Wnmw3rɱcǦe/{+dffmd=r/\255U?T, *Y*##+I$;@@0wo,JOٞ80K?^j7JJJ gFGFFVWW{YcccLLasIAtt DR>N3H3  '`8J{uc6oX^Y[%} ܦBI4iطR3&Lݍw sɈq+Q@x{v, H$A@@ L>];JїXUUq/Jr|d*:tim ˖ɬ,7d7rזMY߳W$H;D֏# -aOU[}]bV^>RU$ ̀%c]d8(Drd>];\̧@]PL6i/iPWܲ9Y6-lѼfGꂦ肦UMQMy+W5Flw幍r·5HkZK"iG@@P@f=Zł{?kuIe3.8lIECCCP.zaY5"b=h?,ÆrJgB"iaHΖ;#  ;9cܸq* 'Oztg~)3jԨunWHɂ jb#(! +o DRB=[HzoDN$6{`4@@ 0G}Tȃf){)2OSj̘1iii/SSS [F&8:kLY. <㴯?pWyKjR-7_BI);e]e̼γ%Dd9٬re DReyQ8k;Fi7=" Mg@@/;ݷ_Um.zcTСCeg{{e=hlPYӊφ6C@%늚6-lѼfGꂦ肦UMQMy+W5Flw幍r·5mkXӰ$}$1['dy?   (!-#zQvҙHrϊS8k;pƺA"HO  D@Ҟ8q" c4Օxiؿn >LDLfdM%Yh>fmēUY۸,!|[Cض9 Kr8k]H$h3  Ir/8h G~IMu_vu7UmI]HJ(#;4⃩\255u7Ry=%k/^}H$I$-1|ɾ>@@hoo__ +moӴks3gozINIo2Kthw"44Ԑ˿{Hʄ ,̑qxXI?#Z  `@TTԈ#T9 .\_𥣭^ҖSz%/)k?c"Y[[-]N),,4{(P_pTTTDDDǛ|*/G,XL;''Drs sVm{8L{u -C@l)Y~AKCU=T[_1lkkKJJ2ZZ};I?m\RIA"@7peUzI$nN1h {5`v1՞A@𿀚Pإivݐ0'#?&n#89c˔Ö2ddZC"I"هacHZY@@Dx[s`ƚ@,kJҳg%o")든j Luuura9; dkH!]2dIOtHJ*UysSMxI$}oL   vPdʺwd>yh""vV.ٴȿk#+g9Zn4^IeRR|o4m/ٟ8qw/i誌$D?_%<" XW@K$U߶Ե5oo[g{sCmɎU[?&5djj`y-#d-233 dqwIݾ RǓ~)oݽ$B"dH$7F@@ ɴ m])dGk}[,RzPS5b{2&2 SD@ H()asII*%Dnoz ^qSqI(oB"i28! @HOjolkɒ+mM~{pKAM$+**d~uT^ȠA,P[[k&kKJJw) -#)>]]0~AVLgQ?7nnzݜiuߤ}V=#F8q"c $Vx @@ZdF⼼-:ۚ%K,,̢ӿ"edvv6sͬ @kDɰĔVb& ta{c-IE Hz}$>  pHfm\ڰ_7~3yvl[_οl n4~| F3w{ÿȿH4)Ď=17-1E`/nK" U  `oMF4Fk"%6mSV^yx'bbbm{Z27.. = {H/nY%Qڶw%]D@0OD2'yitis,U5ڲxkY~Ri^IYOmdkYYyϒ@uuaST%vHw*wb`I}4Dψ" -c")3%s[eeEI "(mYT  7%;''U4UΒr挷Y-ag[c=;X65kߞ#` ;Uvԇ7==Vg*%=}ϮS$nX1دH7# k"'/tUW~4wKN}$ժm#ɲ+ SdKj`> (Y&Ƿ- ;ThD2 G $ZMUK]l )!al"inŎ9_tl'ҽHZ[DҒF! U5ne)s-\Ia*@IIlC,~ YtzMlHʙ-O8:CWDjO  _5+=JyOƌ%ϑTdui9#a}m,5II\~`ަݕۻ*$1dsLÜY&_y)V~ͪmC")kj eukI~Mm dwKCMmEnłgm3G2Ⱦi讧?J i\RJ+=L ??5guɻ޺dGI"Tn  `sNIգ~6>n]% K7Wjn2wR||+[jevLH|ԇ_eeeAaKeږ2m46D+oKR6#F8qeiP5D27E@HeIMR]0dqQ\\דmzL$[kT䱽A&NʌHiR'Y䮲^ٳRө*I,N(RcsY~Ri^%+ʊ }U~ʼSn ۖ$gӢY2d_z#0h ތ2^K"C\n  `SnI9k;~լs> R >e{Y=& 5nIطB"iFY3==0;/99%eMJ@iN_Mǵ i^ #7A@(Iun|w+egɡCkIe;6WxHV77)D4oD2F! &F`202AU)Ci-#֡>|/@"{cj@@'~~?ɠG}T~}7ܒ($]PIªm5ڋ***"""|*/b][F mۼ[wCnH$  .)~~d3,ڟB"ٿϻ-GosI9[v?Jӎr[F-E H$@@ M$9;2WהfؿF%m;qƩǑG1l'?Q{ʺ)RKeQj?,߱,?4/qmseHk W姭=eYmKr6-N8/3aNF7iq_m]eS~%ff?aR+Ox7a;om{#n뱋_[յ _ҚVϝ=繑.Ϛ5; @YY%###P`…i|Ie #Ir[@@ tH?r}хg'̑Uےf#[wI%t|9CrC9d#>tߚU K]ܤ(Dƣ#`ؿvvasɸ6!]}$AC+HZ)@@k tHtoKszٓ鯪D('87nQ6+(ݕ~#~*kÐ%ܚPS_dHZkH- cBB>b?~ffw ''5@'A$v~z@@7]%[7.y;G_||eI,YcsEaJYEί=$G?dGf}mVC;QX]@mmal.YRRFYrRGC)HY4IF  Fnq zNkn5Sy~3WIvvIA挏޻w8p,)w:tXD+D`W H2T %nSJX_bzvbbo20SDLmB@DD2!fex&q7sQN}DnW*Ue?wܺ91F{QA S8ÍV"Y-K ssX0=ODԌ  `UdaVL[%\_$O>g~ګ<~qaն6GL$7zpֶUB;---rč>p\2??햑 !. I߸rW@@; M$6.ݲvgMeᆘPI$#:wK/Sܣ;oT<|J$TzRMbD/K/YW#O[5b{ʲ-aےlZ4?+q^fœoںutK36G)äWnwFcnѫk35/;%zs#.fͲI:22R̅٩od[F d@H$>@@ tHfoZTNiߵ)>Bɥ3|;o<Yɻ~|g|/;M~ ';T\Gj!xA@8111^nb ÖEm뵔!{IF  F-rvkܬ*>Σ3y5z$}q7_GOoUdw s$@gggjja"Tz|MXXXt $$A&  @/zL$FgDɦMuq1*+7|\ri"`{i8E6͵{dhhh!oۻv{h?A(@".#  I"2?}μD,Y^V8fߑmϻ?NT9_޹㶛?gu{iu+\3ܶ}$@EEEDD>OE;:A=nɱcwh3$@@牤Sjgm٩ {|ܯ?_zRw;_s 1;xF_R^Q[]_)9>(l8G djLr6m# 24hu"$@@&dqn,nmiJߺq.)Y12 }U~ʼSn ۖ$gӢY2d_v01Q)̊Q!i!PVV%esmmu{\aVfJ|Io `I<$  `@?Ɋ”U%{먯ە)iC*iɫslKZjʲ řHfQ!4y QSb233 $$$nVQ-#eI7 H$N @@l/D44~WIg{󾽝w؞el@_NrCVm~t! %%=l,RbS+䤽 o@H$=@@@ b")**rK[SYV-h_L$3}WH$l,]چi6SmϞ= MʖLB H$5@@> x-ܙYRvoܝ-#N9F^ -.Hid> ކ@ H(gI8&tW64-&&&P5U H$O  VV"Y3R]ՃdO mB醹ɾ[4kX-Y@%PYY^y7 DgH$1 @@ x)L*u~Hb뒷5b{ʲ-aےlZ4?+q^fœoںutK36G)äWnwFcnѫk35/;%zs#.f3f s8}P(^ggg{bYvȆVw˓M>$ws'|"_jnnl{wg_F_;5 B@W>ą&I0FՑ0""MuH-#`+_U׷΁ٳg-ܢ6 ڷ$}v@@W^J$V8&I_@@I}.)ܹ+VN{AF9i4H$eȰX&$V~: @@?O$+RVSQXEF@6LMM5Ĉޫ>lܸŋ&\6slQ'ǂ \iحm9JlIϱqHJkTujרhi 8&CI  ~m"bg'z ˇ ?6)nymKM,FE`rasI9[N6t햑QQQv-کkK>安$SSeRܩ)C}E  ]*T嫪.}P\.LSA4[[o.qJ2AjѧHjWڝȖFHIN@@zHw֕oϹ狗:Ĵ}(Ihfٴ(;i~V̄9ߤ}u>OY閘ɫglxSԇI7|?1݄ć!썸.~mݢW.|9fKkB_X=wJF;\g͚e&0K-99Y?QVagffJ^)MHKK3l)WdIZD3G$m!Z?>*MmsWj#h 0> Qkl.ϦdI3HZB@@zHE=\ _X/号XVEyDE}^.&&FK.\PI2mD-#} '(UuQI,uk#wvnU-*Z͑4՜PmI$M@@Jq'8'Nbg=+Ȏ+-Hmq&\#P× `@IIrRHӴe*Y z΂.\m?3vg^bo8kc 'q6N@26-$%EAgM$e%ZdvIϸFjGunIuΌۍ,R su#I$o@@.D('+"HȨoz  }(B)_ gm}~|/:5-#}om")׿[,%E .V_S_kbP.kzkx2Gm֤D_omIGj$-wF@@ܸs?NJ؂l[q& sTd_T(H\hZvwHUWRNP WR$=:.[i9L՝ D/GH" XodIQː*$64_ rPC) e= tHT( JO.;h:k^D;F"N}!ԂN-O;'x*z ɞƅN"iE[@@K"-řHIs ` [FHInD05 ҵ. eb|tv]&Em$y4rsשJU:9Cި.*hWiy$@@}J$oBoڧeNWUHJ`Նyi||<> @H$o@@MnL$b }e\W"MIa?s ÎqM!zE.ě卜l÷A+PSS`-#5 I_rO@@{ 6,^"plZ铏~^ǃ}ՙ^uO9!gE)þ9k1G Vm{bZ@,Yz{'ށ @"A@@(D2km3W,jYg˟dMhgȅ!#DɳrzNȩY!d2|koĝRԖɫglxSԇI7|?1݄ć!썸.~mݢW.|9fKkB_X=wJF;\0k,E &&u5kإl'@"iGF@@|.ЫDrGV-u}(21'tԩaXzqyȨH_e"ybj )!og7AFu$>mT_ [FJ4)%(*G gL@@z+лD2sg-wyf?L --1cȒߤ?u>&KeBN#yRZJ$/%Fkq\u?T풋ΌYOHvq=!-Zd)He-D H$!@@/ M$ڈ$/=5"/me~-Wec'gq;ӋY򋪐}3OGEɧmx=Ǜo:[3&DRlD-!{hXW;_:N>y ذ=Vm{yq;* gFQ9d=l  ࡀDrgo\tY og"^1W876lSa3Tyie%!Ӣ> Q;n{uwcTo")$OLq]3q.s\t9d\L"2,.eի-l&@"`  xAUIk+oIKIi'y8z0+o8Rv|>:LKs&Կˎ^p0{a)kF~o_RȑSo<;GIM''TN(x[uHY Ѓ$C@@@H5s>-|Q^/Ҕ5ڟUSϙK5;R̎8L[wLδ9y +fɓc0,r׿viw'.^LOusv%ʡCVUU1@"9n*EZH3@ H$_@@O$ev䒙.AllO:ACRљ6\Iw*I&G<ȸ\FnܸѬp#@"ɰ@@@(6\Mm27u K.}Y"M'Gov5đ >mđ|m# Ss<wv7;~x]8%ש%G9Yɟ coSIXN|[ވ[ztuG(q3@")))DFFZy4YD2>}G@p/6Mkgmo]!e]t975+,ɏ{,1KyQ'|u94Dȑ%!䏟*qo;Jz3sCnXՓu>G<>ǝw:nSF-پb8v L$B~tR?;RK${c9JY3&))7`Öy:4DDa  QUo=8I]y)ˉ7/SiʦUXCO;\Vz!ldv|}#rZvk'?0Ag\>Fδ99}\qPa!a78|T񛏼5OR5j e !En)3% -BH2@@p#>+~|%L}%y}#o\_2|W:ɨz,7^9vݼr0We;;t_4acx69nqq啎_qј?vE X2` zÆ @MM͂ S#.\([4p dT   Q")'D,PHnʆUnײ{ڋ>cٝ]}EqݗYb_rG9OӞ>Լ$mH)+]gGJI)k?X}U_ʡYc'HJ)jk=E.]j"e̗Hh Е$c@@:ma̿s֩ ټvKiZi/>z5O<|犅^E˝7Zb~Q~]?x~fZm"ejZ}z[^ͼőr׾k_vc(ǹIY5vn$ן"UO6A!]}$*jG< @@H}$S7y/7-%gQJڧKw:D)|Jg"nwWx7twF剓ռH-<''ըّ4Gc8¹^^8$uV;H R:K~T$PPP`2Rŋ9TED/j@@ ;fLx9˦o$/_ _bG/<'Lɭ W lt_߅I Ǐ{5V|/;{E[TgjkY>9=䤴k߉kkH)Gzo>dc@!?MDig:VL!-Zd9rB @H$Ǜ@@RD2{b)a肳&=~T_޸{CIkv@{W&t_?dicTNj/:1e㩩-xS-Ӗ,R#OL r7oXfGi6Z)G^t܋:Xu^U!^j$d@x:eӴSRRvڈH$  |0LY6|?'#q^ٛCƝzʉut䫒Kqu_^+Ҕeow_EҼk9y<4S]9oE+\1uVgyBJ[B%\gb_9;Rő8l>zmVm󍂀6neիE @"Dn  `jd dVBCY>/.>~⿮_MpWˏo\3+D2!WH.EI!|D>>ӟk=8=Rsҩ*p5ש#b_q;KҶ4h#66鎵JJJ\n8Cz d   `8s$;VW?G2+i?&K؃q{Soq̑GTW(vŧ]J!˓(;眉r<]"Ǐwbsmqg͛vڒW]vՎѷ%_u .pΎ8S'8|d}*=L5k|* 떑NJFz9 `9Ԃ  `'#FHv?ڪmYUIY?GIY;l濦q˵{g>W S\ݗw__6t9AtH)])y.Cln!S#[N=Ň rμH3.<8φ zvƏߝwx|ƀ'mHlTdI[v)kڋt)@"@@@@UUըQs=U?KeSM7=p[bkҿw_,vOIBBreiw;T)"oqy*T3>EO,rH\!GƆ YitGuc`;;01บ>P+aÆ1b@GrR5+WQu@@cǎU{J< %=,Q?Di{.u_z+/VLRVg rE^ssH9őE8k帇bm#>%DR%!>*k@o Ο?p,ܮvU-@@ĉU(7e$$G<模7pOz,>s4iȐQAtHI!s52/Rȫr\qG7FΙE"'k}+mvOH)uX|3\|Jhؿ-# lx(@"!! oBɱtZC#m5kEʧׯv=A@.=h3GWκm\4}ʓJ4yQC8ٛW=)OLÆ.)̈Ԃ/.ǨQ o"F?#w>T~__7Iu3gδUN ++0u#} oA@FءCJ*w? Vb?s##m F+򺷫~ EH$-`h  9[v xH.|?Ɯ}v/~DJl8r "CTxĩjAL<I'9aSE?5hpg+ %0h6(++?aj9s+ѵ6ME/@"C  ɒo[1cY,D2EOʜ/S59~4$IÇ;?;ȣv ,rc<)KCѣGsv0q pChѢ72ʄ6o=@H!D@@ ;Vł<'J45>/ f/S &M*))3fz#iA-Y-[FhE?~a{(ƍW__oYdU2Мf%ԇTfgg߿ʝm WH$M@@Z **J[}1G=rM#>NřH{v~BYL]\\K4^?G;xCҖ"26`yȀgEFɩ>ӦM J諀e"Ӹ8zH}.)s*ew_k} =H$h%  O>b:oy郎WEz>!2#R"W5tPu!dh?3<{{darcaÆYߜ"`5 i5ݯ_t]111uuuVA%@"-I  S`֬YF}7P+F_4?m\5\R=gL}(e)h7ֲZN{A0` xƑB0}hH6d4#[%y4dNJFɭ:;; K랼k@{ HyZ@@{Hh/)1l1y[~}9H>wzǙE)S =쿄 [}:ݝf?|Kaza3 7dL[vEa\R}C@l( I49m缵%S"]5Y)3޸w eޢ, ۼE2jYΖ/D6g4ݯ#T%O***"""Oܓ" 1  )裏2Ft[ȘW?ӗc>UE [q=hd^ /++W/h-d0y7gϞf\βpW~!v]o(onj /y<CSYYiX.n)ex#H >>ɪm|T_n+"%sss*E$@@B)))pMW%rt E3Pr-۸S.OUT7?K*Z3j} hUijZȻ@ H_VBCC9dQQQ}|@y/DD2H4D@{Im"bDTj3E׵KSj_9]}U :敞JM -U")I7ՇQCIIO -Y05R~[LNܖs K_rBw`w!eH$-hh 9&2 I ")׫J]gPjIx7S,y`^yDNI}THAI$># +VH2=dd==D H$y@9ʒmCFC%-* [Du3nJzn&QvFyĵ_nIy]wu8GIII,R>MLLCS,PL K.-4A$@"D" &&*"t]߭5-uًFgS,UUl"E --D2RH,i0 R/Y]]mZ\D2G@k 3GtBmk"RK/.UvRSjo*j9e,A2P64dݻd%KfffۄYmvSOD29=F@ 2Guµ6o5$3${TɏD-U{Jv3+UWB۞&=鲅0MC3VZ%gH9\ZfuH()asII*%vi[DϏ# @ 2Gm[k-εT ~ 'znOQ\)iRDsA hRSS YdmA akkkeնasɠ:C(.Co HzK  ^p4jI!UT1"Ua2Q}4Wv U"F Hzaq QjerJk=rash +=W" Hze  J%߫~ٵ~v7KUՒKyCW?QhXڲkTihj[>܊H1[ H(4d .VDc;;; K&''ZHD2&]A@ M$Qa ۽ 8lk5*t; h+D?ǾH)~z2m4--͛u߽ZZZ}ȻhѢl6 @d/  é]>6t0nmvWKFj骧*4,VeI"ه[f,,3T^QQ%򲲲>ߐ7"$@@W|C93*s -JTnd[uX}U nNjꥁRM;eUmJI Dd9L3,Ӗ erss W@cc-;C@2$y4@pwv=DR;[>%XS=5Q^*RE!]0V$| @ˡ떑\gaC "\D2G@k t5GRZ)s Α/I'鞶v\z|&+G߸5ҎJEIkEZ ږCWlQ]]]LLasIAW cIs{@@Jv#Jn(_uMU d|HkCYz\UuKݷe\"JÙPf%9# ?KivbdIY %eI⣦OVDҷ@@@2/oɒ%aaaz) 'n˹ۆ%~ޙ#@Hϳ   V\i"e̗Smmmut\2p9=C$^   ؼy!Og]hZti~~wkn x$L   `WRÖvNRخ] vH%eO +t(@"G8ކ   EFÑ)pfwb-G˒mC,˺eqj `kI[?>  ?Nj^Iw+Z$*r"?O-qڝ'+x.EJ!Hu2 ˧ӑƪ\6?J4^0&E@ÑUq/V-ilWUU-Xp@/7mdѽ8uuu~i "H$Dh  I%$⑼C咒Sx7$&hFUC,Onh.ɕH%TH $z1.Ofyh< oQW|=ᤑڇJ#ֿ8HʟU)*TOM?JOZk;QQ]?&e(m")ɐEJ:)eo[Y355𠓓 hHL-  ?d6}Fx{uHϹ]`h]J$[V<OxQ?|O]z 5RPj9j4OCݬ 7$ӮfFZoUrRWO$ PQQr } *@"ɨ@@l#2Ag*CM.^}V*BihIHZ\K5XAGjͯtG"!I_-Rw6hXyG1ZUn}5l¨fKKԻZU`*5lZEjUᣒ{hL{@]ÙK 8?LňU$*kxFD?EPH]V~jQjP)WA_ޮƆ\)ATեAPkUշ2O~LvwEwROikT,HdJ)۝c0Pi )(^څ ,E@.`} _=n==&;3C]ibQKY_?SDKxn7"6C#yJ?NæjO:eC׊XiDRvDC6h}|a %U:JפRr+דm*3jfƃmSQKo(ܦ]}i1隘1U"i車 o|__ +s/_nIp[S@6$ CBM'`Z *D@" CBĒM4J@ ! ,5< )O${gDR'~m7B*r{d(hZ iH+Iڹ.݄Pz(צ&Z=O$t\lj^'2~ݏ+5P<{]#rp S13bGm=_R9Qe{n:zڐ>Ƥ\6ftSa4#Q_O$&&'Yi&Vl) n˂}撹 F Hތw  RS*NҟM,VZ\}$GjhOܷDR/ ӷ$Tε# }JHP U%Z¨ 4O[UjlR1::I?1S%ncn6UTUdžGʪFuY6QT'o=`vЦwh'2GFFFz" Klj5Y]]< GO@@~xzGj_hY>H'h'dW]1ów\vH.橩N0%9MbH/skHW[:Q5RbWJ*j uWRZZ[ݤł]]}i*U3% _+]_oӹVmXMTu)CC-j[2&ɛ,Y"?33Ӑ_ˁ---@o$~b@@*aL1u( :Z(]իޢ浩4D>$.*I맕闾WNUChX7TLks-}J:/Ei'/kqK_M1UHjCBGV)=3RZ=5 !TܮhKUxMv}ڼKme~m46TRyiˤ1jtu'oTVh4[A(oTjFQ(R-UmV/VHw#) ]l.?G!Fo==aޣ1DZCգWY_uGk~<9D4đ1 @mmmtt~||[w#[I  `?Oz`},&0R+3_CD#[ _wmAn.wrp[4Un0!{=m5z|lerAKL)a%V H$4   8ng' u.VSlImё4Gٟc5<<<0/rѢEUUUm]@k˒mC-SneqݻF@@ H2@@~cꨵu*#,fPrv^wck{ѰG(=]fzxO^&avhhhVVeLl' 7%u#$@@@iii,R>R<,1"`]I>Z  XJ@c/XL[d-S5Q&G]nnn $A2 )+s=l+^ͯC .Cj9Jh"%dH=@j&jur;&S/A+@"# @a{YtٳCIKmLgJA+oHdDEA BMrJ~q Ti$QS Rkw80Iyny&f>HiLoU3O]Z@R!9F I),P]]uK.-)) f@ H3G xA.&&F2a^0-$D3h'z5?upk3ԕTT]ZKԧg#jn ۆoґɓ'[n5L>ғӓr  ,^052<<\0 Tl]2` 7H$)G@z! dt> G\*c?CtStHJ .VPV.e%9=@j h;kMTCjQ)}UZ>P0[Z㻡aڵ0mնAڇzE+רv6Ⱥr|(bsPwP4g VXa@fJ2IkE@LOO7e $p 1;;۰gkz㫵RDޑ8L%Q*S>PmWb5hhBOn&P+ʇ6*Uy$7|aڭDRGP>ʧJLT$^!UQliGGgDC)nڴwr}[eږ}CH!D@Lx ۇdτ'c z*sM'ՌE}K{UD>5o=6Curv+}'7T-ז9)Z熹vJj44κ&+s$~A/PTTd&)dI[B# ;Vz@ H jktˀ̝%ۆ_See7KzidP}HX_/FmjDRYHjFA'&FͲTPku'Z^L$6LQjMO"'*T)g #"Ow0%KOO([?' Y-˷qC` L@? L>}СkQ _A oqqqe}fsI/)TmOCUھPa^w#}")|I|rCv#ZU30dW sM$}^mP&Ӌ[!7Y6C=D]%/kdZUUeY;\S2 <v$ 2fwWTs$ݪjuEm"{Rw2Dy]}{CfrTfaʗ;H:nO:"95sPb8:vY^W{&ʟZWwk,]5L*s?D;аBEjMUvPs ^QF2e&:57g~  d< xM@ŷ~[m)cyòʢdײx;K]6lذP5u!DNz*Z۷G ˮ}WwF2QװL[>ʲxi\wdgJW  C1b /8>,J=ZEq(}(,,4,/}Oemx.ܬcַHQ222\ ^zʚ ǡ`~K,(@"iB@ `Ǜ/Ulmznҟ >Rƍ+..YhA4>euLk.[qpYzݷIھkwF{… ÖBN>]ސ5gk>k%rxG 7ɾ.@a' /+zgzoKfJQ1i$q?WM9/U+,/Ra(TV˚~v#V햑 9XVoh)WLoRwtRRR0$གb d E@&ȡ4ږn14?%!61WPR,[R/ -#%44e͸[wx @ "evjjjnem FDqfL,?_$f>|.1PCkRn6 郣 ?dr,}R?_zEQ*V?{矣n.d{JvՆuˊl2 -U߇Ć&#d Z_"ד޷Xv;v)㎙S;bU?+{`̘1r}+ndHFJJJB dl B@݌=ZA*EyW_F KL/2[S։qfA* ,Y05Rm/5d&N~D4pO>-uuyF"W .f~~ 6ڰK`~v^D21D# ??^>p)>Q^V[weGfERJzճnww|gr@{+VH!9G~ ~`pmiI+w$u_䚇tz|<9 Záv| 0Gl/~пe܍2vWm7H]wywS bxI-j_\O\>:ut荀$0dibbboakGiˏ cm=/oN1CMp(Hm%FVmme $c@;lyɨ T\RSS.\AdLIv}RLKj_\ Oհ3 5.s֬YQڗ\}:guicB{@$@4/neіsrI9OOr%FF.QԌv 듣 d~"2d𴗧TmUhrhklom(ٶ~ńxS9m'2l>y~hii1l/@ @DGG dMC^^^t" 'I3q,Jn?yƩs9bԳPGv" QG@G$> - {?0񞼜bKkӮo=P[-)K^{祻O>X0%_2ګ+2eR ]dd2 NJs/ղPVF#HII1dxK(~$/c}Uq?ޘzqǨ4F-ћegÄ\rDD2@$@/0sLY~ 44WؿqWv҂_^|j|*vlJ/u\!KZ-;hW@,X0G~ٲeIyތ-kJmz'رcpk#uH$,h  7t?oSf~Tm}R+woO_[YZd. U]nS~1>8`V["@ H(ɣ!\pa["˼rԌ[_%aeuI%/sÓIfe6aD{Y6}.1#6 郣 w [F]UEMu&V疑5[c?yOU)ݔ_!To Co׹K.ˉ=. ֯_oX-d=9XF[qES3_%+%{~̐ٚ2g3`i%&&&FS1 `3aZ[&h25-KS}kpw[F^p9K5Yyq2ad)[PRR"a~FL2 HU^nf`4@VVkv}晧 +Q׏F2s3 m  MD H^@{2@~1bDRºj.2Ri?{;W/gͿVLCْ9,_|v!wWy/_{ȊlY-_\I]7D!@QJHB7`:#YbԎҾa0|z[IC6Q?ȪsY{nvώF"$ }"#3F}m ^/۷cOU~Qκs>xw 3߫Ӳcq;Of+q{d&ag&ihKEI攭koww۳ϮjDguȍ]z?@.@ V\e̗ l[e+`k+s˪AM8Q֤[i=31dyS"[닷.ymM~I$e>_ɔ]s ѴE`8LRXxݻA,g~?奘B/յ4V{$?q#.55%D4I D=pPVmIHo(Li]*e{e)w7,n)LKT)O{ &)mIcO[eIVˀwZZZd;wUxQ ::ZoJx ݪ^6H4hweꂀ/uoݹeͿG;܏ll%FqTq ڃ)@"ϝ^#N}"я\}")To.jܿOGsʤcWY]=yғj<{sS44WؿW8?~qKDuY1 xyw5rg@G4C)#JoӧOQWˆ-&#5ho-bVϝ=9%ho@HɃ }"zQC?|I-SE_N&NʟI9M[y fC1 W5)3l}0eLLx/)b=1]"6*@U@,/X0G~ٲe6(#FF^xv|i]|pȘ/ }_]bdd96 郣  Hn+჏&e~!U3ּG,%>͛O$%st=e_}:ODhQ< *E dEa|*kA&7NI7^&U-u65,JMW-z_.1111rv:v  @:k{"/s}`?yg,HQɦJH;'OzT~Woi6-#e I[_ɒ 3be{,++3n+eMjN wrRW@H d磏:BI,l]EHٺfwU~J̧ވ[I}<d`-%* Y.1MG0{t腀aLsxyԄ%ʷa5G6rǓN:~ [y۶6.SEZQӏH"7f)mu2wץYS#3:7yivBI @/FÒxX&SA! -_ܐEL@{{(kۄQrtƪ:;Ro\D.1 t  J@ gذc^{ixe;jwJ޷7_!GqĎ?4'?c~@*řH&?*LS-NBIYGA'H"YQ%?m'nˀG#ϯ1կT@ $&&HYiӦ@맮?(\,KC}S6E}(1t%Fjn<d@>V:x$HΙIÇy駞dN)/J?\8#2dpIAf.}!-89z_g^/۷cOU~QHݚ_<vָ_h6(**2c&ѤlSk.t9J{ԨQ}h+"t7UmI]D?: `EI+>ڄ#O$%2MKB?/. W^~'hեYd?0n ijig|PHʖLFY"A"on*/\-/[)gfsFwk`tzr7G@"0c&),Y$5ǎȡCj+/L^=_,NJJ2l<.Ϸ=E Jw@^HnY&+JW,⹧2ȋF{ک'*S]h(D2/ᙿ<`H$sm])gP:J([R&[F2]e92%4/DR~OMM嗁^0;\EӣA@fAiLɂ?4Ŭ*MҋK8@ےȔ+p69Ƭ!@= OH$}M@[Mm *IhY&?q5ڿ䢋=_ښ+!HOeOIDR./Lloɒr"Ζ>@6 wW%͕J[/4ڐ2 6ߓr %{DH>8໯ȇXP𥭥Zj 3ںK?&nw~A`xp/6ܾuEQ3g}W^y㮸wym-yR2]qJ$mVBVKxpu}F{jʲHVTTDDDOEFU {JL41zJ@W n)kdjHmͻ[k5:vݐ0'#?&aQ^ ].F,@"iC@ tH쵒666ů\0?s O~$!7^wל{Y[4(gӏ߯%?;nPj]I$ُRyɏZ}:)޲|}Mbr2 >ߎH ]˶\AVQM@̘6̋ ?UIoq6ڸ+nZ&Y)4?+qI]bd7?"H$}˭@ tHn("{6gg%Zje蜯?yN;dW6)D2;'h'w衇6bx9DpKeqlP-s2bPn=ѸTHHKY|yѾB`ڵeڡYYYhɔugoZ$5ʊ@*#l,#ȚXM@c/XL{ٲemmmVki'iJZPe}l)PS5b{2?&rP.1AQi#@j$V{"0ODjgVj+KxI+܂'dUC9䚫6Z[ՔfvS|Hʯ2Űe$ 7]3vC6&\ύ!;@GC)Ae[2C"?'{bI`_glb$2:ZdkUi+H%F w߷\v ӣ @*kYuEuZP7رD`AEIK!BB !H!@ =;s3Lϼ+{y3yYQE2=oٔ?aEwccJ7*9Ӥać >vذahL&| ̣ iOk Te%dlw׬H.ΌX=Kٻ{omwʢBxW4GU: T$dM AQE2wz VddpxF$lkThMڑG+H6mݠT*иNGƐxs"3 _~!םr6ɢa%YYAoZ֖MիU,";X}n$8F$@>N# 7pPȶ(ї^yR$ګ}ɽ:oYoX4@v!0yAWƬ(پF nGÀWV Z3g>Ҹ.pǜ= L6m0F':۞" 7I$N!}@H֚ kV[]EW \/ a@V!#,^ X" B$@KZ|#"E>~tEݷ;Sn=sI̴<< `yW}m囯 <[7gϜI6E"*E{G,@~ 9*%H'HxJIX++V$nކ,wTٿk6U֔g IQbkOh Px6K$@>@B=uyh77k֮WЏU+"^~A]˜;a'lsbCzAϵ4k/# OC=w^6W*đE>0êm:#a"1333H8v917UY `랝^/XTڻwm߼l66ƫѣ QbjQb܏H @ P ЁeHH#޹&f 9Ǯ_i9/=R$vlX˘u9}NK/<Ϝ?"=lG|HV'"Cm}Q"ww!v2;' JC3h ,AS}$Gɲ!ݳ{QDjh2K46V" /(Y|jz /"ElHLBx٧~?yHD'pe!C%;~tEdE Y[S2q}zeNs,{K]^Pպ)*>H999YW=ip&ŋ#}!HYYYdO;H"5-;ޒmdJoosU>HkD'ǂ @ "Hɾ @knuiEAi3_|^"Pe L 2~KC~\٥arO4l,3:^*Q'gCOlJҟW"ر1_iRİCtuX;lذ$D@0]@Zǎ^$@.#m"%|P$J׭NTS.7tS 1rwsM7ɱcda/IHHvw% #Ў"*ʁ&3>uMErMA\Ui-뛶7&/ F{G^|8*iItCm) ,YځBE2fd`uܐ )) | @MM9dyZZZv5"vHecYҦK+hkӲ}ʭkP|VW vH:Kdg x _֊$V]9RimO(^ ˺ۚ r/ Y(lURH ,,''[D,F}hs5|?[&{fEo>#lPIVD ׶d8yIQ$k+7Vn]RB=BILPuPFIɠnvHDZHAX%€I]G|`"xx.y}~z#d]uAukZvnoI+87,Gx_oڦOMiC$#H@  +E(±s&䝎(+ܵc #vEQP՚-#酩&;Nq$MR%k';^ AE<"9'~!~zJĘH"P ܴ n.)$|)ط- Ģ`f*H P 1eHHQ"2i>YW qma!Od~ȵ-mPI(u T3ɉNhظZ)-T$owGu]W}`Xhrp2m,޹m0_'`3#ҵa#8/Z6(*mnjminov@k͂$u"Ag $@$T$=M 0(_s!}N'" Q^AU (̵3f" wYYYz .B%o H|ھ$o~xWݺ%+؋#iSlK|umuMwj4ݢN!P&R߻kGXi[~;qˑS[r5׭N^ ieMbY:{^UY%s3Bg,H<-wٔ'Lqe.;v¯cJyܑ)#'E|tG$2dɬq3{CIIF$H8$@$ o=s9g'._`A+xR$+s7/,g3cJ1!!AWRګFq'-9ʟ'ZN^4 C>ûmS$7a];NnۻN(D`kJ:TH䢙$@AMdP?;O$ >&Ī_Fyɣ>y,/֑pxQ$pӢ*vdEgé!?e:2`!9tR82. F%G}1 !Co6lXOvjjj In _&PZZˑ"-Z6m~{u}w~ɽFO6ڶV$wndۦ" }$zx ` @E2F}$ tE2=n%sj;-~=wgoѺj>v"yU2BIZ6E6*H`Xg+iiiXݡ$Vp.4FFGGc[ U$k{ϟ#_ږ]rԬ]_"7V嶧Hn) +T$|޲$@O-$ w0چ"ye- Eش6g{94^qy[) y'<9 5' Z"BE]GH .4d #$rmgF;OAEW" Φ۶V4mi޹i߾]J[TijWo+\ےfGF{"t"9vHHT$cHH 08ALY< >`tE} 6ʿ&y&{??'Ox} *Zک815r/ȁE=)p44W#&&Þ6{%$VQG$[ܺlʦmQv4"AM~;W^~i̟l);mtbg sm{r- *ŝIH |$sRBnCޜg>L0=/O̯e# uhG'8yvƏB{{ML65G3Xhb\2XgD0ɐ Z$Hnٲ%qx6ɺ+.'OWdEQBM։"ټ~W-r=䐶|ݺu_|(SHM^As%11͞< 3샐 !D.;[@Ta*nǟ~\ۣGϪKS, @' ILɺ9seM ./@l}#4aYYw m*ꋏwflƷ,dkknٵuώ[yC^Q#e4mWʜN*A;uq '@E  "y\N,L)2g9'^?g}s뮾d/FU`_QOBZHAU3:YHqưjoU]Zo6I Z$&jjf S$K곷:Q)dEQbeIU-;ۯƭ N IKtaaHBXICᵕٝ-& $@E'F G`UHpr#-Z7^|{xEqou{]49/d;,M쩇P$pHAU:_X2,º*,fiR0z}`a< 5.e.Uo%2r޼y VH~ydazW{KCE*MF5kWVd\ۈ#yE#$H]Gt=suziS$+:_j볈 I  jyyy"JײuB\4v8c8~MIQ$ԕ7nض 'uW#P$rr}jlWM\BEҏM%T$dM A|vܱ=$Oi.~zS_pQG+ޤ9Þ|H.qJW-] nmaUAItUmN&84ı8]f@QQYLHH{l*^ E2-aE;ƞW\v~}.EVmdJUV4q\]MJ smT$@Fd (C$@ mN;_UkW׮+6k;z)3l!MN- Vdɨ᭗E񂪲~tUP$/9$ƑD>I`ņ͍ >i/"شia"Ν; T$3#m޲y]9P$ϟ<wvz7S''yI#'ErS<% h/_RnujeU%K+gMe1畮^Y98#(}vâyrۂSON2aB֒:s8D^kNyܑ)#&)s>BC,58ns<Lp#KHHHz?[' oE ޹~mvl5 gמ`E_ :_eX܀nԈETхŜf̰O9y&}M |YYY"n),,^Y žΟ?2] ڥT$dڬP$c"&F|qt[(n]<~c{1+"C'ׯ/R GJ"YBEҥS @P>L$@~M@ɋ?cUVtM{ZRZ{ӍrprP28- 2> ¾Ū'LӲXG H!B2QFx 466KVWW TUې}Hc&`HdEӰlJQ$æ4C~71'iCJH"$Vm٠չ g\uE(xUe.ֵB?xgy-z$HdȔ hM55kR"" W@^ܲ6~l(L QC}rl]qWϣ>|oPnֲ-uk-mdik WmŬ$@@d02H$@ dazw}{vmG߸W^E8}7Οy6)iU#R^塙 o' #*?q~~iK㣽ҦH.ƅ%eWo<w.JN<ׯ_FF ,ƒmَ݁Y/ CD l i$8H- {VLoGͧPj→1GG|ު-^]8$@$H8  "P9oݳsOKJ}u'*3O?n2g>}'H"Mrd8M3^'tꗥy'Ks #sAUc\Uc9R>>'Ue|ldIoL: t4dA}Xp9d$% ɿ8H/ nh;w6e'LJ尡SOFU`12Wvkst1njӭYVkjkks&5lذq[XU\555~!OVXa"B?ACdEQbԦnNX9BC، 3j[*oqWçMµY2PU\ۜ$@$}T$?HE" 4 ,5{[UYbi?駟 ZIY ^z!ļGh ==zțOg&ΐ-& ޛGK.dޏcL?>_ z7_7]݇f0rÚل&悇ToCh111t9QEbir]UVZnJIZ>ynE2/ryӍ<k.s;l-5@,^R5Ƭҍѫ"K2g.LY:=/ XMĕ |I2CjUSL5<)s>J !!i7sйg'-' 7"&H"YQXUҰq5%o߻oo4l_]p})nb}F/tIl\p2kȜydw,7UVbJ)x(ڽk[ժȏCRI]G5?? `aM$_(5FFDDlٲts$d/@Z=-;56- Y*%~Qxrbߎz{{CؼaP$RH$@Ad@ #;A$@N #)f5nh$\&m>pETHeKgggNqbMޠF9Qx?*3^rq[ڹv  I@Eҩƒ@sssRR!diiw H ))) hEtFY"!w7o۽{WԤ"d.[_R "Yb((M><H:Md ["y՗ya6(rm߲.WbnxM%==UX켕f-S%{_2]4|َS?P鳧t4fܴujaasP9>"S@mm->b`EG //ϠEb%''qIHU@li޺wUiY(yYKJYV6J"YMdNYvHOP$@$"2iu!ѽ۫}$El-E{vm߿=m_)̜*i8Ʌ!z7[nޑ ~mɿۧT;BarK/8Uw?amy5R`i5aHaJ?&HduIO‰ҏDӽA.,,̰L{޼y sئJĽĦś7Vέ6/_btimA HkҰ^ pI q P8O=vW~!rRѓeնHnk(s&m2ٖ.frGGt׿.Ȧhθن}QGv "?nDM~\&Hx5UJʞ]}ܤ?OE2@'/Y"P@7%Csh"NB K)WzǶػwhE?H.v_"\S%1T$}l@h x6nm믯O[hCV)wi?NqD[̣qAmsI]:O?vBO>*i07aJ[7x}NVeVDDҬȜ?gKHJH̍~)XmX=>4) m,%ۆ5Zk Hr. @0(k W6C f߾3g|G sdնHhܨ Uzc Xh׎{n:5vb~ %6|W_/Z2|=n::s-nnGi@H,^W2=o*;1HmhhxM<" `?6HIh{(.e1畮^Y98#(}vâyrn*&e'N\0!k3s8XkIyܑ)#s&)s>BC,58ns<qHHH$ /]D0?aImDܾmݎ=~C=o^Ei(B#k־RugiİOujO1nj;*{[[`Z"T$wB bCpɴ4Ԁ:tӦMewPdglp"/;Z( ]Hr WP v6J$@>A#m۶^rG oo l۴n]qs IU% KWLy:CoH݆ ,uN͵qYQT$}bb%1##\zwBΟ?ߠESr (( >~2i& @@"Pΐ @Iۣ?o={|9u˷ԕV7qzEwn]o PɊ^{NI,/X iws-u~D9>~<䙌9ISU"%z젃&>}Q=-2dmJ,Z3d;׎3& $n"L;333Qs]HbEEGK"3d0pH[Hz<% 0+8uʉ\t5W;'=FϵUOxGicYݸ ݨY*EpyhEQBDܳk;JA^$EyG1[<z嵧o<{Z*Hu}{l+,N\[g-D FW S"N }A r$V"Y[\mh)#s]&.*IHtErUV{DLbL>juf"lӸ%91fuQG֗/gtE!s6mAX={viiBYWUCRI'>;2gT{{p'͒c@Z6YQ*7gX%Y*++%{;h蒑ԣ{-zE"֩Jz0MNqvHKHz <%  `,Ɋ2퍛bgOu =/8",(ҦHEt\Ĕܴh]plݳSӧQq ޽>oޠA8˶wn)ٰ6s}Y:IA4!(477'''rH48 ./H_$$鲲,; 'ɨ ]z޾8fƆN6Ere sm;8% I`d%$@$ dqfĪsוiّ6?pG׮]:+5E΀j|7^yʦ"ի*}[+gΘګwy:kl޴Q۷_2_6 Z,yhdgg#FADu2"*zcˆ|-ꬥj@Um ,ְ &L@iQ~u/vkݽcۦ $ٲq5IwOhmm7x`#s"5Ī:x@Y=?."{faC'9< I(xɊ9-lc$@Dd06J$@&`HV`X1]YjyK-op}[V) R$O:Y5ѠHn۴iK  8䯿k(˴EBE|,xGKDHLL4, )**itT<%P$Ϛ;,i1;k2:ZpbC$@ANdOvH H"6Dutɽ[6זɌ[]H( XQWN=Aû GRɆ[+v4nܽk{RI(Hs[ȝz"ԓI#뒈5>i,_DF$`@Ɋn]NIFy}wX6{h=a/#ɯ xIOPf$@$T$7V֯+D 4߿o֍x>FtmMW>ǑM ];睕p Jܾ y[]ܵg;89hUk$$-dr,}, 3,Ӟ7o^KE6tT#7#dr$|$}D҈ue-hyKʬ?2 c}{{ι}>z/<}?c!cن *&HHG 8HUҶz^'/[W>jl釯MCyU6mu6iPљD,]BdpIߙ#(-Ą3F>kIG8CE#;Sו9Q(!N!_Cj u?}}멄q̵3 ;*>H'" %^A ^}HՔf&L/]9m-k2e+*/ΐU#TUWo]6VlX,zUreq%y W/͊*SC~eSr2qeĎM*uިO"%2aÆ9ώG 466&$$sWTT H,F>"F@GʒP!dȒYf:Q!bi$ xIOf[$@$[U$+s7/WX)OӷA\: m;/GL[EzAUX!N"[֐@MM!}s\\\CCIy#_.GB1lO 8HV&WF˷Y޹ҦHP9x8*U\͇G~mzw侗9BU{T$tl $@E7DžV '8HVd[ wȗIl³/{!'-oo _']v91oZVF-5Rv }$=19 t"XP;|M""" pep]< 8HTv|A KV++xɩCB;S~{]th;ndp{ W"JH"hpˑƢ)YQ/?H5 =1kdn_q1_?#?ir#/ҦHVd[H4AK#THCpBAc7@(Sc@""*"9ݑǓNm[;_ ,"W$}k@  P"|6M$@^&`H8n7s#ڳ5kW+ê/?R$[3s򗧜뾻o>3x=rd.]sV*Tґ8^:l&XXӍW;Fq3 ~ٱZ7 hR$UrA)8R67Q_.(uGaWbI~EHHHv!k  %`H~9❫ [acy {GJy@)Q4&kckz/鹶7U,*ϓj}r 3뤣AJyr+eȁî `׶ڂ$۸v^v˷_'ޑC&nI~{QlvHH'k# "`H&^oDp,^AJ,\:{~Mk "g G=G1* \ɲ4 smT$$,쀶-[tr@V$V)˦[nvyɍL^Vr=ֻCRWH:Id'p cq$'ٽwѣCl{MLdɊHi]~?0o8C.yl &Sd@"PQҦH&Mj|felpw{d@zvHHz2  $Ў"XLt "H)(^;sR'GM~g;.]__ MEe咬(^S<%-WvvE#ccSĖT5XuXTуߥry[*nrH HP f7IH+E P^xNGɍUy 7Ք4mкy߾d 65xX"MAq$MR%k'wEAAYjy8 8B"lݷ_{M}8Dkqay+~l"y &W"6Y^*LC$@"."@$@K@W$ΟKC˱ ˴p{ΝA˄0U_xN 6Z|$]^ H:=gЬܧ~μsL/.,zkuCsǎYuP9E9+iَ+ 9~]CBB<Jo6Ls-(kC [ǑLӥ3y\^<+vH 8—f7. d?SFKnغkSnsvaΊC ~G~xsfǑEDErێ=HAwe޽;XM$@v P  %`^='>>|E[sUj_h*hΕҬH V};6=y>MA|Лk cϞhllLHH0y]c`jjAĪmqM:B6?UW\tԲX6ErvE*#)1+bt>7y%{ǥ5 $Va? )xmҶӲGĵcW"{zqw}IH P fWIH@@W$&X?sxWq=~"YhtFmBE$Hdѵ@}*--O"R3̮8䇃I _f܅ǏHaf4¶ ~\l\x]ErŅK7-/2?6na)Ӫ_R+!\..[TeْXR vNz!E/8գGc< .*IHtEret[ 2JWs?{d.nHYs^?rDIҦH"k>ޜLlF ZYҰmmzbFFF\#`16/~i#g~-VP${w?h߶[T$*l_ig{o{5س~뮲9HOteg ݻciC$@"."@$@Kj{Ёszl<]-Xw=l)mo}{k/=,? fD Z"BE2`g*;F/GZ8H0%.\h<9}U1asڻo=cC .Ntc,n[HCq 7@6*_MF$@C-! O0HΚ4gQW(͞ϮBKl1;GoP$}1t/Dm{UAULaIO!G%X+w:]SSY+\ZFFA˗VG#w@Zb=p#w&Lr.B4jXM+O?|c׮ WUU9˘Ǒ @0"> 0đ³_~UY+g>p|>,m7Nlz~)93Os~W],^AUEC;Uن@yy!$rf@VC  AE ERH.Щ_e㎾l/6E2vleq? ~T`'IHH'+# "`^ҳ̄%+"gOQ\d|D>|%§M.ɘ/&`O(^:<鸮=6q4{ML\~5i, 8I5?? !5;Ygkjjw5A$lYC O"|ɔQ$QROݒt9Cן QC`c-U_hQ -T$9/HH x I<]'s=ʈ_y_s>-(NʈE_ϟ~ E4%6zr™xcQPUaN*;#ܜl.\>N ϑ>[7ɵ|ll*}/;HZ Qa[O{,͗?>ɯ-p} NqT1+Gm7őD|mvJ$@$T$] _4>0=(#\J҂);;۠El>h*M"E"lurGD<㴓 1^>&"2 tIiaa aC-x\|9CHH:Id'p c۶mݻQi-˄1qjg;)fl2g.F?9zĀP$+K)md*~<)i: 8KȾIIIXl}.>w!#͛.nՑ Xđ8Óz=s8K%rח\ɋ>bg >lS$clx^䏚eH  P QgIH@@^38ݺvpR$煌[i.\SpUe'8>1h x@MM!ulll}})**2kJ=f"WH)_x>qwNl};@lA rAHjY xIϱfK$@$ J0@:N}Kn#YYY+] +ϟo"70P *]!R$O%CB[oܳOC<|ɔx՗|߰'Kdg"Y>'OxuzΐYm\eWGe,.ܘ\)bkQvnkilnݽwּg_Î=*ۑn[ƚ-% jdVcڱF+ p켗ezfNuHHz8# _'Y9?L撟a? !CR$G~7{(3O?ykb)jEx2bǦ|_~YgKHd i @hhh3vaSSS Z$Vmgff VE^!ǛGpyu%o r'U|95ieɆ=O-S`$@$9T$;ǏG @Ȑx! Gn 2'i@!wR$DoYa?tɰ_FuAUum"9{[ҽ{QFazE$`E$!dJf8BBDNVIwxHwGʗz҉]yyjw8HoPBKHHqT$g=IH  E.8fpIz%~+ p .Z:'&z9;|WE߸Gz3($@&Xm۹$"B`;@Г ~qQf%`,vgݫpvM9vH P !fIH_~J$VS{weϨ8aj{w$K硌tE}~vl1T;%%yoxݺrKiiigAx @!199YjDPpɅ CFVVV $ J}HyEii/sg}umW#ӏ݉ئHF|n"J$@H?m& /r&.2w!Hb62۬ʊNY4k Gi>ǞwD#W Fw`=s/Z $ j]UDF욚v _bAGdn@@@`رrǯ|㈰8>IHX>uE 4gXd+vH  P AgIHSbySW'/b}vnjC|ۍ}dEo>sd|D!o>&6E2ΔFrɅgɓO0S]$@A@ܰ:))fסWV|Cse@e#ˌKm}?zp~ 'J윱_}SO<?3WK|n"#PT$t`- <~p6lHgF|g{}NJȐ7@k#PParϝ+ykTQ :A=€ =|Ԙo(Aipزe *>+&Lw$A"s%md>q$;><HL͓ @`$鐺ER懎³ﺽ_҂dˈ^:;ϩ/H7eaO?|#֏sQ&0&{A&_)>[yB6G>Ea%\|6zS$-B?hGEҧf! Pt" $vYur#YM~[?toտf4|etئHF w:Az~ !_Y̺y;x8$IA;"&OsIA [Υ"8q 1T$}l@h 3D8n]Lنx.yUo >;"?nL_x<1 Ʊp̟v "𑉉9Q&·Ɖ8K=^\7˷rMdiS$C[οl4z}/:=gHhQE_Ĭ6|ҲY˫knL.ݔUfM;k46޻~k޳aǞ[w_-c͖ĒysOO1qEe#|Q8hvKӲ{}9⫯} ?! #@Eƌ /G`^xhEԙ2vwzu.G${d۔Я9,Jσ2y7`_ R F!d$|/2*}8?z-# #@E2Ɣ=" /JxwGZ)?JT{m/zYC}:(R-"&" WAl]D6LWzH H6?r!Kx9I( d;W?ģ|(|QA3VGr ]:~}A2& Ie$@$N$>3~Rn/֥M~{L$ ^9  vlla%K2 Ye.czf/xiS$g 6 #r&~2'ҦHxKJƒW7ps)Dt􊾿<ֵߝ|ssm%g_rԆWG'3 IdU$@$@ aСĝ^5q`ú6ErQ?tg~[N,  $! !#SRR\ k#0b%Qֵ-_6lg\0PpoΟc\S"Vbtt'Ct~^~{) fEǖVיsmψ\8),~ՓNkKޭ^}V$@$rT$] &%F>8핉?מm3ׯ8H\K`Ν/6DIlwmCHO 0@śɽO㖾/?{τ%05:#n 222=zúvӵEN9{ሣ~c`.v8w# "QbܟHH^= [ : ' ?HKK3Drm&' o-VQ mY<;@tH5w%=+$֤wR^z%[5ǣHH$@EAP܍HH2j(,R^xz֬@YYYXXM'"-V"S VH˺ ,a(4G$‹a܁u @H; x\T2fzIA$le,A{vD.䏔:H#@E=B? hii7?~cc& @@"Pΐ @nn!ddxxxee% *0 HHHH5 ;B|4,ӆ@Y +PtEA$@$@$@$mXEنeXm> P    oƠEFGG#w֓ @"n @p(((0 +++ ޳$@$@$@$Hh    C˗ "DHHHHbcc ˴/^sN"   }T$}h! iGFFד "/#E;I X}{6nh3eqg1T-g޼yhJ3f0z/H|gyfۤZ4Ǥ$sbMk ;Sdz$sCM[dObo7}snv(škdHHHIIscg{uس WXw^ke[nV$:Q7:Hnq;89Ex @y~ɒ%"P.'!.k%[vH3-]bAdl`8StL`$@$@$@&@E݄Y? @&ΌfʬHhORyl3RRtLT%OϨ殚 QOGH]4T{gJET6)KoI`ndǦ/&p5LCH$FmW{}r5H.76`89C#ҡWGu1VK$@$@$@"7E$.ΦthV$EN9EJ (xDPN6q[GMKeM]H-jźMB\`:H6IE] Gа02킂IoT]~3 ٠HJ0Gs +^HN\S\x0 IWe}$@#$?q18?Afnܠ)U"KmZʃMKsӎ/OV=xlyTj4\;3p>T$;7yy4 klٲ%**ʠE&$$(i"ʇ(IZ/f"Pt`$@$@$@.'@EHY! @ˠH:"+- \$i(Jl:VYqDW5Td鹩\;W$ͭGS t4DC766v&'wOza"iOO*16\HHHGسe ['7jF[t"i}i&-8H9լZHS$KHYwH 憄rdxxxee'ldi9YĔ+nrįGz^nER=5$@%111e---5 '=C~¬Hٌ_P썿ѹ+ e$@$@$@$`IN  "`~x'@q`4WA g'N1ETNZOJտH%dERiOLoo}=h d5{l]FZ/pSC$Nz?kz"KJ T$8g4 sH:ǍG Y3q4{Pbh(UޒmuAmTku}&GSX6ERyӊSzF#5X/ o(((0h|R_9wC$#-6 SZl@E75   *]I<@Ұ0CCeJmoɶYkK.@8H#'NKUm.A$@$@$8*$@ `M8&MOd>hFeעw蒺I#ǢeET9qE"CHHH:JdGq f)O_x#8Ȗv6PK|3{JmjY΃f^HyݴYT!eXE2 &x-߮"PXsHiXY__;ւsxeS$ "}p:'y+*1-ycXXpo   p'*˺I:NbZ4g 羽ً/)5f! ϙBq3+-uD95'CRuզN' däZ}նli7t`4m}oaX$N/ SG bĈ]#CBB }86]Nry2мUym]ԏp/U*^JE7"  *$@E^&V1]ⲛ#{[kwu^׶Hf2lo\*-AO+An5 n$@$@$@$aT$= ͑ @hii7mjj =Ut7Y% & "cGIHHHdffBF#Ŷ6$#9.k\YVH$@$@$`H؀;$@$@$@$P ˴ssscZ `$@$@$@~@ M$   _&؈U-2!!՗vmdJ7e$@$@$@Cd %;B$@$@$@&1112$4JOHHHHI+ZJ$@$@$@D+CBBt9׬YK6pdt ~g"Cq'KnDglg&8:ǒI  p%lWVuc<7j ˴o:~Ckws #$B#3lg JFyh z}:Iَ821<>H,Y/$w007|UӳPj6D$G5< nVT > 1D$kXI3|-h.x/>+9>#eRRk(C'=>-<\}Hk9t )J0jN~9cG4<"vp|4]aϪHMH ,% U7v{^Pivؿ?ٳgrddd-[L̞kp*vu͋27mvĄs#<% ;ߨ_(b`UTv|\y?(RM`:ӝui#qNMY*-"BHd~+VѼtE2Kݴ_6+-ѷ~wFͪQ#eͪ (G~Wmul }H\EE~)]myR9`w0-rO,Hl8J2^b$hC tN{W"]IJ:;q;a#73_ 5yl*nfu**op2tGݥؼXGb} au7BES}q`GfUe=%dD̆Gfey!)b:r0oX]yhomR-N6|X%gvRYt_2Wfͷ`>'uvIe$@.& }d @]dAtEKmu K]pډ&9M_JG"`n[~_U/e0&e-xa{s,d8J+]EZnCݨIr,":XU^ RH Վ.|@}}=! !#SRR|:Y!gBuuK:9~3_YXbjs͋o8<\Y uQG wAk4z!W( %+#k%O]5HG_CɄcU[7\s =2mWM3="c+ŷE l9 8\t7CU)E.E^xoP$uf5 glȺhB V{>}k}y;3V. wnͨw2Ods}hd=omQ5$Lz7|aDju:bb؛澣uh+P fgI sOGKPKp'BJWYT(w8PJ j"}īQ'GiGT?E!)*ި4*;M^*:g/oԽ>X=ki= 3|1/^l-TA~Tj~i3Ǒ+|ny2K~7\ԅpI/sNf}QW1z!/l.a PԅR ;Cꊩ>A(w;aqLfSuÀ~ut1}ybwBHZWHA"="{ά- VcdYw}DI]ѿVwk6oDvubUu{'yƶ{P7zg}s:3{rZf+m]żx"MTC)TRɆ}(/,]9 ۛpȹZҜڮs=;= P aeH 0 4Cz,7s}@^c~/躡Ujy3dB"ipZ< KT0T?Zۛ.r$FUw3<<,gHg ҰL;"")}@Ob8g-][И͵ye1qd87kણ̳H:g 2\~1UW.X(FV3|tGH{#bqWnZOnGc1DԳX+fJ&(d7 F1N;n!,fًͼI@UK?`:E3o KlNo/rETGlXoX'zSD.\25O:s}Xu2`n]ڳw9@f11oŷpR{V~=&@E҇@P+)\TF|u红_TFۼ 4?N-wndUD_]cE~C=REX/JmDR!N} ] "F8>aیyQ;uKh6O.4fm^Y-KGP!6O4/{sY Y4R(ҏE(WdSTM7:!Ckϣ~ӝDPJk Csϑ>)PۜT(7ե֎$`Yp!T.mծhVD枙Đ~Y܆3 (< ʣ)el}Z+3&j(Lŭ<ej`ɩHҹ;![+6P\ +KlHۈ$pErfܨWG{f{wn;H+9x7:~]y+,zMznN-6,nBJ0@M=k}z8Țe&lE_+|b&E5*6l]HZfj[Pnv}.Ȕ)R>9 fy_:$:&*ѝDHɔ7:ʘ=GVEX(hU:{w_*2딚UDVM$tT4{bZ܆YSETf9^ sfr)e_A|)Q QIíNr N+m!h~;i8 (xCȘ&ثf+qERNN,_ϓNit'm' P$]hSC\i]Tt%˞W+ {T(_QZ?ۜsO_=6k3=ԪBg5Wd;M;7#"bʿ)wafZ\)MT}Mq{3~;3֞"iՓ!9ؔԍж1^x?X45ub>:(U[p3?s:W/lHz h ^P<M\O~`TdN(D_F̓>R=._Q"ʥkJ 6K1r*P7[~KeJVO+[ܖ  0_y)\~(V`T$^p7=i4y^#1W9ͪ΍&&,'\=9F YLI1U䁕~`>mɕHd&PWsiTc*LR1F_!F(?+PzͨJ}T7d0FˢS]1YF@ѰL;777htF!Orr֟<ټY-{/G;*ȓ~a| hs뗘jSWu_z[BCE18C"JTB},n'HfOLxX6è=T.z>j08t}Y O,7!xCva SScYMXO9cQKtU>:XD2z{'k# @sLLL4hHk` 5{vbtJ[ʐМ#vБ]8yp/1>)dA!eQnjRsrvttJUvr~g]-dx8 (T$9HHWh~I-F^ٷð0 $ BBBt92,,̹.V"Ӳs;;_B8(֓5UGޘ_N$Kx:Q6%lJ8c]ԵY~ \SH$@$@$@B&""29m' /"KA[HH|mİ^^2:@)66ְL{ɒ%--- PtKD$ݜw~{j^_'hN0jFn/wӶiEs#~ u2  O%vtwՏ3Ga/߿gٺY__/]$@$@$@$@Id@+;E$b)t>u/?GX(".Y%ފEs 6vRWY'5ry;%A_T%_"V 1:wv...6 -)) i @"Cώ >|tb'IrUEtvCCā[_]k ef/C!ERcJNt* $! !#SRR "_EkI x @08aI2 %2CPż]v3b˳7ju=K7@UX et @ٮ"A /D?;;aG kQTW$Q@ R&؈7yѨbڈa.I:B} e1@{.͕8{c[ڜf2QE69GJ'`OTdv5=y/6DI lHHHH'@E}F܃HG@PCX @S,U^$paɒXx{Kee# Wլ,˕lVaKCIO@T%E 0Lt꿺o@V/IЉ(/QNE3UQvu:=]$Ke7pX'J"]]7pZ|$mzeJ腈j5>jPWFs546'aQ$qM&>r 3/_nH }gIHHHI/ZKAMK=ʋP,%?A˜}_]t4Is"6Dʉ f(f:uTwzU46SX([bxJ\E)f֊$l" DX+X2A5.k_@g)Xn"bkewK]Ǟxӆ=1L% sgeOP%=y ,,LwDɂ[IHHHHT$}H.#RtXJ1ԩTT>*QWd&񧳙ٞ"a恵"i YGI 2%{ߜ \TP<-&"io5|ާ 5 a RjP$7(DQDl7N.̖-[ !#e;p;͞ =*~?  /%G%zp)MDBT*Q*YdnSh3oT[P$ŋWOC{l,4V 7ٜS$;+]L&\H+Z&3PtMv%E|R>=>| ds@}; ^vZGhQERVٛup}ѐsnGZZZ !#ϟ]: Kd P!MD؞")ʋZv뤏㊤x9Hv*E]MI]hk8NH*eտprԷDnSMӥڢL45(hZB[T%ʻ;Vm_LqSgnn!ddxxxee[e$@$@$@$@$*T$]E BM{C6j1Ş"k@"ֈ8Kw̼Q9HdS1cY~Ru0{c, 2bHN6{P)ePXU SK-aV=>/lPqH-Ξ"ip-Tp\W@J6WRwGJm^Z[φ!>iCtkHHHH\Kky6 7zj.RH-*JТ*` $>JnX5rtRQٱP$ѐ,뫉S*$iεae]H$hEh(e>ȰhwX"#j"IKL/R:({ݗPg@gOcU 26JxXx>ӎ:# "x ˴p˷.+'    "rH- crm $6yuG3K}n!`gg{lui  smv(Hw۔ a?buGT"Z#=MZ(Dh3QìV2cN 8 ,ʣh|Ahs@ (QY-lb0%q8קT+3J'.bHzvI. uy[HSd5-2::imHHHHI5L$11V6 ٸfXIΊI6CȰ03/ّ "_EkIHENd6_P_" ChHVqڱjO&""2rdF$@$@$@$@N 'pYsm]r.U/}ǂbcX' x@SSSllaŋM0M PtXVK$@$@$@HII1,ӎw.C$@$@$@$@>IO "  >škdHHHIII`IHHH`vH%؜%5{ID/%ٓ 8H.p4DZdvF$@$@$@$@~D M%톘qF6^HzN^"X(˄ζ%KBF"$BI]_h0 8H G_bT$| ]i~ff!d$k#Ŷ+`]$@$@$@$@${Hޘ" [d3xdn}Gu4>[_6lB6՜~mH,yTlUhԉ}C֢ՑZ/)F/R,Vo3܄ʦf⽙Q U/u'QPqѧ*Wъk{}TC̖GQS#(V}臅iHHHH 8 P qgI/ ~K)kTP$z.^ (өQ('G7PBa6⽹N솝!la7eHxf*tPRޣk>Ȑ  7o kEaJ 㲳Ӄuqe:@ֳ+QU/\_MW I%e˖(l<HHHHI?0KAN%xg !*AJJTm&uQHNJ5DsD0@*SEC)U?J)%Bum# 7,I(^"AVXcg Ko9;(YSSud.<1112rkvHHHHHrV Y+/(8(/&^i$oJCQ9_BݬߩQ 2`5oT[ u͊h3tV@UP$3 ERt9^/lG ;tt͐I_ (1ϼő+IR!!!^YYFX *1N,xoQ*O4a=1K(r")NKkUH<\]6{!EAV$e=z)tI]TT$,>BvhX6njՒ "cD IG@DFьd͵֊~.\m=ؼJpG|$EWmKC?u 9EiH-WVB*^r=YzUIwleMz!YUA{kjj1,ӎoii Z&8 IN !#+!o)b%eT%%;FfHe٨n["):)MM:+}YeJbSC :Hd"6iV$edT9VrjD |o{4ߏ={.GFGG#M+$@$@$@$@$hHڈ?$(}1H4T^JHJZd늤8]K}TͲnڲTгGj7SA0DKtIYPIѐT9O{0t`bU_wNiclSz>RR︚rAUEEW/h- Ie$@%uCyg <͹'f+h0{C`o{g8cD:4RksO^WGp0LIIlHHHHI&I$ ehm _x!d$XG$@$@$@$@$aT$; *Ykvިh  k.!/H2zTJHHHHH P 1eHHHc4]3gn%D ]U 0*< &POWxӷo_y GmE=BFs(ۡWmǁCX[qЏLySUP'!atPU41r(?ϛ7OlFǥ7jpa:Xz70Gx~5#% m5Tm: k/@)ڜ0= cuf*I*̥ynG#Cos怉>IM܎45l(_7xM`{@`HHHHHUH$!p;QXD-iD[P-{JF/9|=Q$%f(f:^DO$"BB%#ꢞk!-(.Q!=ҽTUfo-С!!J'kXTDwB'ڟM=NRIuJhXS9 3ͦU֊eXmoP H5՘Zs#UQܢu5(n[/ȸC?yb,--^    *c͖H:OHoJѝ%$=i閨#.)qМoSS}4c"BRګ59ghȞ= >;%F,ۥˢB*rK4YIiB_" Pd6A$TD"q2S"~sf6)qDٔe7Q$ ټQmqBg:Cgln!:g@C`4'G80Bs4,vj4Dy#kQęUEM8H-ZY")d0o7[b loۛ~uucgee"lc6o;iF"Ĥ~xrrrss#r    T$gS}RDQp6%?O{=E_mSV[t\9EҦCv ")z"KU"Yr諳aŷQLU~6IY"ioնfqERTp$ˠ؜]՚I30?8eDhf=QBF:i"$K:ΐ{ <*? Y /9Y7I E{AQJsI=ъnȪmаY2tVG9M& ta6S1"D*a["Pף-2ۨ^o5GTYR5O |p9w8Гs꾍Ysu u]HHHHH P 1fI `"x/SR)"AӰj[¿t=GIqÄ(& 4#t I%!IZ'6T{'9ìI˰UەfÄ,V ųRI!O$HB^a8MWFM$ (N飸k.a&H2j1ϥjKnd&=`vĜ!#EO !&mw*ÊdxýwmwGй4+U$S2 ܜ Ȭ gI㩮FJ A&HHHHHHz>&  DHC0Ǭ,lD6^6J$@$@$@$yT$=Ϝ- xgOMMD$@$@$@$@^"@EK, EFĵJ\K7g$@$@$@$@$`IN   @#`35]po߄@HHHHkHH4BCȴ4ш999$c]\aIHHHGسe   1m6ʚt]=B(LIHHHHHz7[#  pƄW]]톦hl4{6؝;w*PJl"SJjTMl0ަz ~)3{Ѡ)]4t\DFHBgT&7R JOz@kkkNNW۽dbm,FLBZZw{G$@$@$@$@ @Ex( g ;ZA,UBVj0t:}a2Q'Bl1/d6t]!jeJ P6t:䥯#&Ҟ:D({_$:$E_rNOR OF4!uERu_j}S+( 8B^4/е/ȱG( 2H6 0*< (eжDvOF(\JQt:_*ܡyĞ.2ԞIԦ*1,dIּj۠H*N:(iG*WG{$j3DRjH$`pΏ"5),GG-Gڔe\D>66VbbbGEk5 ,sέn    `"@E2F}%?' Q^J4hg(e" HJDC[U$&{*EKHaTQqEz)tI=(0RTK27Q)fT$ke󛛛΀^6˗!dBB2HHHHHrN Y\໧'ROĿ:nJt۞"wTT~J葅KIq \J))>F >t+(E b"򜼗^T3B_/'Փس^=bgͩt=Ԡ]q$H$HT9*{ЖJ;kWDj!b]XkXy-(ԪmSQJ"f:X33sh,.,,dh'pt*B$@$@$@$@ @ETY' [@Yӝ Y,JSO$6E6pghBWg7i{N\>8\KTJY¬ _6{P!EZ.7TTm՚nS6 C6,ng !#23%;K0Bsb{g$@$@$@$@$T$] 8C+Ν gXcLӰ 鹉HHHHKwu ?#OiaK4D,UTTxɜ@n,r7    &@EҷLJ֑ ,:V&7jEKsH `9vVV{rldi!${r N$ $''3gZpFFA f g+$@$@$@$@T$9HHHA;8 x$%%YCͳ[ AFEEr !'i Pd6A$@$@AJ5??_>''ۃ/u%d;44T n_2  *8 r<%/ E#By잏 ݻ_xq>n3#p#.3!6%>G5jԨݻk~QQQAUlHHHHg P١aN8(4)` )qx!s%9Kj, l @}}}ll,SXXе ׎ewq :&tbR/&   $@E& IAR~޼ 6ɰWܥ-qw-pH% ?3&#d$OH%_xkG;Ҧ!`3K;]n8"lHHH|I Z )f:RŅzurذa} bH @s,,,4D0H2:r>sfpхʵA'zҋApI!}oaI8"lHHH|Isvk+VtDLKԳ {E$Yqqq  ~Ǻ~ fu' 'kgE4nGR-IlHHHHHz?[Xz ^N+:SUϐg޽{{2`# Qw[<28zӽS*sΎ 3C>(v %dA/$Х8E4 PyH=U+WrX?|^tջϖ; .,%!,m)vX䪁Jp zMtɻ)o3 !JT͍ 2 xI`gI)~g ꪲ][W/[-gK dMMܹslcΆ=%!#>І߱>p6\{>XtyTƽE ";cAK1d-q_)+X6ճ%BcMGCV82[k@7;&JW_%uUkWù}ԌkCߡw~uf;/"   '@E:S*bCs=S W?#l-򡲙U)Xj}\.+$@""9߱za=s@+iQt\8w>l0\˼E w P.JYQa?ׯ|Y֛lEWhii!"PlbzMM:G;ޔ4k],d=&L-8)`IwOKKcHo%   "l" 9i}wK⢰+.߳رcҙ!7'c5ĎABX^}wK. :lw/h}c}蒽{%P!uQK! .ykD. IeH)}:l5YH?[ *! V]5~44}!#rmkw׫ }!fz~စ|^8Y/U.7 I7eBJګElP/eͪo|^lgK…5@rF tRx<}uuuozx xq2pNX*naz*$    @E'F&?>3:b,y/9^RRRSSS@M\v&kTGsw!y׽N)׎.[Β8#!3qw %* $_C*|0}k}Y`HIzX^`riaV,k$-f NǞmRi+e+1fػC@%   #T$hh Ri~덙i֗vij}֭3w"xb3gЈ xGf*$sb$j4}|\s!cѵ㘣yQS<?G$@$@$@$H /Si#虍viںn=S/58n )HnkZM;Aw4}'C ;֊pwv~"pbHHH`qRpi7 첽rݻv4&2};$zm_E&`нs G z];&?kWI,wHHH@M}#?`技/{ܽk[ժe)sG&>EҜ>ȋkYPaC[?MGp/,xT31/џ%EE ӑ!0vlHHH:Ad'P"8xF `no;cei׎\;Ë$~k&!P} Piqz K.plۿuOKSY N}$V!8x*a yD u;nyefR`_8;1o1_zQĩ痧b   p*.*|!xVߞ͍Vd.;֭dEEy%2Lp:88A 4}' !X}|phv"i]n}m    "y9џ _Q[2gq߹U ,!!!0$W)`6X3&Q_;HC"MC$@$@$@$*T$]Ex!Cު*Xإuݻ7l(-H2aB֒ݧHۢf ^zYl>Xc<һ?ڮ dSS8BF"ѓ%    *VHX[s.{Z!6rʊkdvD)6 I{c6Ma0^QwȠpwvYs۵{$bZ$c {mZa    O")l=ˁߒڼ.KK~ݿkGCEa\^eSܪH{22W1{RD3 Mg?er!rx* ީk\;&M"YZZ:g]$%}v0    "Z 2~Il.-;=JS fNw"ȕtjNcA֤9:^\\n[?^|yq8nKE˵4 mf~ T$kkkcbb >bcM2HHHHIN' 䖺}v5m H_SW_Z>ۭ$"`|C?_x65} l.Q$qԎm[[ vQ>ۻ8$@$@$@$@AHdzuY쥓֭S{[w5Ԗ/ɜnEKKbbXh_-Y%DDqV'IkGJx6ڱHvxGĉ zf &   p*:=JHްftw7oRݽi}aeQ%W$k3 ]/Jt<]vj>>6͵8 UCT,ME#GCH(}|V<    O"Il-l*E֕-g䧆ri4n^dɹsԸeR0I]ŠE[ &AWst<\ "~U{dQF pBXUU/"as _N$@$@$@n$@EҍpYgS$3#*W-Cf{w߷ik :׭N"駟r%+\EҗAtH,%q$}fڦP$qۺOJSHjωG$@$@$@$@6 P{dIVTy~wxϋ/Xܴ*uc|X,ͻ$czdβ   4T$mD?֊dʹsbe,!+wھyC 2lXd@N]sY߁4Pcڮ"Y=$ƹz_._p];jԵÛڵk!ϙ3G½? L$@$@$@$IT$=Im#dYT(HwӺgW랝*PE|+!#6VPt˴J́՘Aȗ![̃X8Hnڻ_y!qR];HNK:V+w0_+k W%nkFmi׎j~v"7߈" 7RHHHHHz6r )x\Ws{ $xi6 I\He*|6C1g ˱322t0hʅ CaR$#d,q߻wg.hEv"ʇo*999qܓHHHH@$"YYTUi}Au+VùmRWNE'\;`N̥ 9㥥1dA{:'ʒeե)8ۻu߅m׎߯HΜ9 72 7*=~MV?^:)wԼ3 g-+Ό@ml8j>H[<ϖpB9KEז_DϬ-M7W5֯E"5ҜN tXa4V$וլYaM˽׎_;|Qrᠰ*    "@E2;0;kV$&y#dHT3Hqߞ@@mԺn*T$s :+sjG]{t #.UL׎UYђkmGRVm$IamƪܦK]:~ jvP9DsHHHH:Gdh `V${];i3}$Eăe]uA*3![*meik Gsm2e"!PaD2"Fu"0ûuq]^Zxdme۵~}!tiɏZ]8pT*HHHH Hz:t-"y҉#: Uۺ"Y9g֭ݵ_:^pVhݲ^"jkkMҰR'+葆ȗmm$`V$StDnp|A'pˆ}$E[Wi}1+:.nvPp    "@Eҷƃ8AHΝ=xuzӏc/YbFn޾uO3,HxI{ͭr_+vbT)oB0 OlsGR8ߴXmP$6ڱf];eRvؽp赃O C$@$@$@$YT$;K{6CC~!g~rzB9"ms-eVdo x[%"6rPe9++Kw+}l :a< Y:B#`/ bù^.+ݺv+ی#iSįYڮ;mݼ  mf~䩹Is8qe%߯.sѸ1N2m)sG&GX9<)&n!Kf 9蘣(1sӏG IN'`/vNJȭ7E\0G͗rm;HVܴisKs; Iy{lRWyCIʦߟ*SeuSW-*YZSb2zUVdIJ !ߟ*=x:uσ+ՁK!Be_&`xU\wz΍_qɣ͙mQ$k\;6vl=׈dT$7i2 K Pt)NV Iɵ=v#8\rO9WJ׭n˗Eʮwچn)vPL6!A"׳.544_O|b$6 Erm$iX(k#rwW$G鹶S$tEkB*!lHHHHH0w;kEc&@=[}ǍiW$wnYзM닜+tXЗ?uibccuywܹ555-vI6ZV^|¥vlX"kWmt-$@$@$@$@N"4[U$/pE$vѣ_n{́kKRk+K.\*#w @ԯ/tH,0@ izX\\ 9B)qDĵceʜ.9%qݻ7p-7*v..vP ) @"pC|rD\q&?_ݻw bA~?}ju"JS 1kc6h4##3 =T$%voM*IV7׬uu 24ֺAE2P&E$@$@$@ACd uvԦ""=AHb6\DDf}v76oZ)emӧO?찿?c9I6}$wNԺNHt[lFBD&53 G춧Hʵq$jMܼuώ\;7Vm5d;G,/ΰHAE#󄍐 Ie"`S8p7^8CW$ו#e"߹c# 3GȬz7%-RW粹zM[7X6E>2(\YXQ'{}Ll6T$=̦"7.{͊FQ$wl ׎}Zpޭ>"QtdLvHHHMENW)_(ɵK 2iپd][vl_\7ݺug~x@(hb' <77]QS,}U˪JV%5ƬΞW2zUVdIТمi3 R%O]6%gĉ+&d-~EweĎ]:wdJI/Qb Ň Y2kpAy<:>uԀ۱dCpq=rl(:$Bj l]aG7MH-oinH(v@ܳ{{UU!S(~ӂ}+/OJVzAE2f,K$@$@$@GdiȞ"Ğczze6467CimݹgOӾ;gN8|$*k.8晧_蠿O>z眑"deIҺM5%M{ZhݽyݺvUϖp,;o/[<H|i 455uffܹ[__HP$v9KÆ_g͇"YQk2FqسQ՗pH׎Z}0pG^;HzeQ    "Y<)K_s%3r{xHe5kWVdK.__Lw0i&{st TAU^G~oH,vpI^#d$pn&`HDSqﮛ^|a\;&|(ե)ڮ8A\5yߍuN=|$k.%/~{^;Hyz    "Ճ)#W$GGqG[y1S'~aH6ԮFf&OEtn~Dܴm ժx\82T(tfd+fIHkG՚~uUqkIOH$@$@$@$T$]UxME~]A󎭹H.]KDw_{v78&VmOT^iS$˗0׶w'R^|lz;IH[6UL"p괟>?p~x'Gc+JUR$ۻpk3xeQ    N")|<T$U/ݽkGiA2'DLp==-YM}{oǑG<#Y*HVyXt2 ˺թիU,=_b-_jȒ9ȗZ>0mfA*N]6%g餶| zԱ~="9@9%^|R=x:u/ %mp9d2,,,^]ass3rg}A28K].PrgӖH.;i_I*nKnj\;}u 6/"kɀ 8*>={dqfꜘ6nX_d4(Q!߇M}@SOKOs-ݺvyi{o ]3e/S#kGiJժeK+~5kkVԪ%50}vA557irҟ~͊|/kVܑ#E5+İBߍY&VUU$@$@$@$@%@Eһٺ X(%YQ+֯+Ѵ5).L_&/\9O|'z^_߰?P$8R`=4DH`N [ A".AX㴐8`vBBBccM|"*+zunֺ5 jbC i?{Ex]ryoCyQ=I[pkIp4HHHHD$'hW$kiQ*'*G(&|>4grxG?csǽ3ՌŐ& ! Wm`6l 6vΝ;I{|TwU$KѶ{ǶTQ$a>}<\;N?o'+=OV{AI4HHH }Gɲk )q HgǏxH%ݻw{}=Dv>`Oֵ12^y_|ѹΟb$%N`'l.X~d)@ )iĩYKL y"ti;-`??KפhU[O:Xm8vۿ?GӼٓwWi;C~HX-8  q$ԏ+p搏f [`\=թ+;֥C.olݪ߯t딟SN>V,NYj`Ye_-eBҸvڢ_.;]ŊVS DwY_l8];آ-[sumrӎgf=ھvx ZCmd5k# d)@"6۪VGE[n^`zY>ZT#ϫ)ߧqHH]#qo޴vo׫3O>xY {Om;9㶃gmS@@ED\HH.;VZz_lZŦCէ{7rPU=oL$gI1`$5?#)wsٳ+s\=awriӦM-ktYyR'-m&/nYqێzױ+_vdmdjE@WD2_1/9$IO\r׭qW ؑ}N4kڈ#[Y,ogDZ(ТEzX.d5+~U+;ڎqIf-R_]f$gT>2Քa-'mQ9~;1}ݛ Z5}Cn4݃o_dϟOB@@ d:7*!$KL_p檥6mX/]8gքIcߙ:ai?xW7U&3D"YBEFtP>1;:&M |f֦2ixoy۬ɢU-6  PD2!@I %eZhIr-V.?oܪDRN2ojt]m/DRn%7 <\SEٿ(`"iܛxe[ؼyK{Ud1Ҫo@@ (@"I({%3.ƴ|{r0&E8#1IhXO) Z;a03GѠ(h"+hr˖U?Cͷ$- @@&H$kBuf*PDR.}:?Oz U5:HfZX'|ңGw\abŊ$HHKfFPL$cڎ ΐm}$ UkX  @!H$ ɺ"PDr< IWÚL'voBY: fV1Qt7 c+N0}:A1}<`TGGvo2[ :?ӽ;3öq~تU;6Z.O=z<);.!%i99 @ihm;H$  (@"YG2%PDr)&))}j~"̫F0sM H()ws3fH^Iyj<;۝_Ik|J$S4Hmdj   HfͦjF0)|^e &HLaiz9cn,XKn9mڴ;M0!ɘ4eb(X"! Mmd@@2 ̄Ԥ@ɏ,N5n?WWmdb)$ ,O‘U)ņX(L"&۶D&jD@duYO$}49T٫#HQO@.֖K{OʃqC Hk8dlR}@@RDzPH$?($vf6dq7DRʘ[LF  Hj5ɶ ,IY@@#@"Ywu|StvNL=U*e6HJ\;=P;cكrHH7'Jwo!u! fv2k\wvQ~F:Քa-'m1iȫ50^Odxׇui<}Cn4݃9޺bZ(7  @H$}~M$~^Kz<0qWsyg|:oBI.)aӬqW9m^S1y땽n阾T~Jzz<:{ݪza[CVZU8?ȣo@R$?=wDڎ;{ty'k5TmdWG I:ykNHy1-}tTۛ3~@[>`|I gIO/ˉDv^"o"٥݋?;sn;w;mEv0F(" D HR9^ Dr`Vҫ2kijc:9ՋZ5c>`\W9sc$˾ʲ Pl|'qygJv m;4׿:*E! ,vc   F@^1=wy'RIpagwgat\8wlؽ+7xY D}g=Hi8o]_Hڱy@@GDPy%"'m#e.Z,;&ߩW9c,Z @QM$Yo]Ni8jj;H$Z8  7H$e/o" rQڟdw9qs*nExMW[v)o"Cn\qw}|[ Xmd1F@$5M$?5'H.>~tWYѾ(. @R$ <'su-o< ,RDx5-# $ԉHHΟ=ߕeJ7݌vřF>oN䡯O' |i~lc>Sѽёݛа.vH{wgP;}@[8t?AhժUvH,"h9 I']!K>v2-*ێAn>OW~Rڎ=ѽUmGhpǻv{=i;ϟ@@$% f$vһ+D"Y@K$jvHαU@@o HR#^ ]")$?U*G)ɲE ]"YVCPܶD(U" x$THH7b~!&]'. @1R&h8)Q&  #@"Iu({ SU"N$e_}(@D bT;  @"IMaO((ēmjSef_@ TdZ mwj;:|9'}67<&V@@#I({|ZW9N$e_\ E"YC֓W+fN~N9ᨎ7.HC"yc   B@މ!h;5 g|Vtx"cfh3_]<d%1H}=f@ C5%o;f4\`຅Cfpمpsg>u  +B@$B.&t={ϙwwXI& y-~z[םuwϣ}w\sU3pvdv2M$'kIބ'j;}08mǣ^#˜/DDra?1k\zo2O?t}F3tl@@D:PBɛȟ<n"W^=Z=tOVo^x&W`ݭK7Ƭ0OGvkjP *ЁwDvJA7ܰx%Xgh#G:Y8Jvɓ?F66WmGx"=={ݻgu  @ Xh"yQ?}[~Gto_oМ)} 2 QGlK$6E+vZ9WGRve/_vW޵}^c$~ NV;d!oȴpz%6F!W\tO&l5tO$_m^{%cQ@@(dAYI1B1i_O$\ޟG~^dҧ?y!8y^˭>jL;d'ۄ&+v^9uW`>}kr]7 pu'ricKk/5- ]ddmd mr\$!Ϭv7_i9OB^bnx]w֙O>d~g}` P9# H֫xa.,i;Yv$acv)ۛL$7z_xźEr >]rtq~ROsүuF6_5d#z~^Iyֶ<2G xS.s'yk/gvp_sZ٫lpD26>&7\:ocږ1Hqn/ `W'(C9G6A<8?i/Y}] ,;wkuoDry[|u֍k?&t_hl:ɰx6@@ Q^V@h"٤ur坌|ob~VR[fVtz{=Wo$8C+{rqtp:'۬j#}8b>m}GK$׵zCK5:Cw,7]{OH1ZI撻}w]&k4{ d3J GrqLY㻺 O)}믾pDޟׁ=yߤon߹3)%ddm7to^d#IK?tu&[?xmߣ7O=@ @}$]/(H![k\M6Z-N9F*ܺaY͕qoݲ~w*sQV}x]bIy@N~^Bɫ/?w젷E<}7p}O8F yV{cǒHv@ 'vo:y@ZIHAkM: zZ-$\YK.{CI2un^Z+s" DD щdw}=M^zҷ|Gpl}Aʱ {2hpIj{]뿯qk=$c$5l Ƽd;.]PbZWN7i"?<{}/ڏDUm#@ &h;9:Z8]&C*)vihvXk۫H.ۺ!0m\^Л/󶌗ܲfN'+r@ $(}[KoN2ԑj;1o2 N;Թ3:yv$u-#@g.cFE4(H(t2O{3m&^䒭#'8Rͫ?ЉD2   ,#+)\k=u-N$%ڵhrA\xic5<󎛮еYpD{ddM$ՃGo/3`ؖ2FResنDm#@y |v\zmVe"pȟ|}.4ṃ_kI@yWjZNޚ:b☩*"t 0F<0F@[DWݻҧb1cۯe/e#;h6lN#>M$mWULbӻi"t~Œ*_x,ed$@ӦM5;_Jɜ 4Wli;n-c[k=28OTaۯN$}.nL$ui:ty0a[wNKXD֚tl~KDr sNUdg6IUۅQ @@ d%)իW{ҹ~h5yu6^X\\uiI6K?=٦-tҏ.&F5_={ dE # 9o -ir>v/~OڿܣS9j;5{\_T~ oX2i)Mݸ|ƦVͫymY`ڏL_'+fnH$˧RR@@V H֪ΈM.b]r?.;]&ݿ飷DWdd0yͲlWm/?FK.;dvH=نHR@ Z/bN1 oM%WmI   @ Uq7o==vKO6ud~f'Cl#WmӺøWz1o Pk *֤]W1U%o˴qdN:,zG)@@%@"Yw[ ﮻j䮍zʈ7 5Drtl#9dclSy>WNlK"Y0 m%Jm;=WYOTaIoH:FRnu"tƪD2@@DDjP'מsV՟zw#dM$׿yź׭dU9`ؖ:Fr["d#Y'j*;$`%~ꉿ7Z/^,&o˴aNdd)U9ʂ ɺskڴw#~tVՙtP%mDRl#d% WJ$dj+ P2X&mǥ>Ki8d٨Z/\$ܴ|DLҨk@[$ux^߲oݾEH7U*,y$<ن ٳ4h)awvmᐥkMnz۶|nX<~ÒIN|ViM+K1}H.VN$eQ)$  PH$k1er }K^}Oyw- lw{p:Um$tlQ}$e$O}(\mOKY8}m8dCZFsaӥyX")dSe"9LUt) ]ɺ{Sڃ ?>߻tyfNUۼK[=YMHdK ;Gv;62[hkN8]`QF?iS7c$edFD"YU" RDVVv*%K=¬'];{8EI636nu$YO'wK~c6?{򲹃',{dm$O1+ P4N/?7^;g!3xmGǗctU;찃4Ir1ӈ;tӊOGH$V0  PH$g^_ׯ){ОMZT٫lon{쾫..g㎽K=z#o:{͚OqIlCDB`wu`mǾy% ^xC^7\~o..0򢥟;l}.`SLUd{2B]jժ,)$  @ 5)b^JWПxy}h:q6&i}K[wiR2MјERxƶyĞ=o^umI$d}0}WLl|f *VNl=wInF6?y&w.eajkA6ln/䣏:x[݆CmGÿn߱defeZ|÷o\6-u D"f @@HUJ^J4鎚~9_^3?oX_cL NW1AFlS++;uG`ӦM:ts;jR| sbﱤIN$=]gV\2$C-H$3'  @H$ ɪjD{/vŋӴiSt]%6W P'/M9c#彶CRK/mF1q͍K''*Ɋv2xN'{$CB@duX H:)YZldJgR2ACA{K]lde"ɓmr"2 PnNFi;kI'X9wQug&ڰtRu"`ສD2'53  ԄdMNdP]w͕Wm/o$O!$a6\Lɶ2}`N'{c$P3  @aH$ H$ c[{1r/~:SS/6( 2SFk.KUGmX<>8}HyD"Y  @qH$V[ƶ-)GuYpDr֫F5l+u]U^Y@P1ȱզmX<ΛN$?yD"IuB@(dQ(_ ̟?/>owU̝M$WyfMirb[I @ܰn rauot6ɂWiG}t:åPE@@ K,SN'|uNrIM$N7&z7z!<9n r>fUTHn#{˴콮QcB  @$Yj-r(C9DsG&' :voy 䮻f\Hi2rwc@@RD2Km@"͛KPsگH.}Oo)?L;ڙ @7UW^y/N2~힐Drp'8W:lי" %$@"YB `2\-AM^:o>y{N{r7WQs@b 4VyǠC@@ {"IdlKÆ S޻".``KRJC꼀0nK߿Ϋ  PHIU?^nI ŋ۴iW?+̙ṣ.+)X"[ ^Kfe |df͚)'0X( )rTٲΞ=[[Z}I"pO_F,ӎ r6 -p[iVAۋП2,  uPD2Kڥ 'Ci'=܃:Ȼ$JVҳgOY:2U75JW.$0Gڊ5RUtUWEznT}!WdNk;IJ6]=dɩknN_j jnC +u{z/ipKv2C jݼꞍDzڏi @@@vHGͪ'<&dI7Of!$Z&Mlcs_q!?m΢̨,/R;1@E}]wG l 2H0vt{2#c!aYOus M$uQixϳ b/~}yI)UiߨDRAJu_^|~@@@$qY:/~Z4 n^-i<ضcR^I{ژNT=v7,̩/`"G*tf@ vrwH~bCG|&6?x&[Í   K$7b.8FҢzqlSJ M6- "?VcHjXM:6*%nz\X/ 2}R }[hī͇ʢCOkd;BHR@@@ $90HF]lkaگ U_רN9c|(8$EBSEŌ^8PoQW&>L"n[ġX =(&m|/{ @'%q򺬞~^ňD2yd}(;@@(dDR`˄sv5T A.,MwɋPsWzC'QS~e2.FX:3GfO$>zv@@r H&M$P/dzl~ݵ1z}c_񻓤c:rR`7@47+MCW^Y-.k罘UjqdWiNvGc   PH$ke@@@@(9ɒ;$@@@@Z,@"Y.    @ H!@    bZ|p5@@@@JND B@@@@ H֒;꧖ I֭[re{;(uaJ{$Y@[$xPSKv_ࠃzG_h֬ȯRzU=ٳ,ˋ']9?ԜTs=_:kꪫn)OȑFYڴiY6lu Mg#o[MK%Wŋj%^ @dF^>hv35ݯȲW \vSH̑0D]Uh)sVlԩDR߭#RdN5ۧ,&t[ (WhJ %"@"сCM?#ڻKȄv8>t݋54oL ORe@Z,Pr ƽg|#C&U;ˆ}C{]1Ҳk  H^)C^!{`C*tԕ~ps.W#dqB^^ױ :Hg ŀ.嫺G` ]n<& Xۏ]gpuٗ݌NBʿMF,B׭%6Ef}6!˯ir7~5ZdCIbkIK)Y:V{r_uPIʇ/ >eZyq碛zuBEog]PFN4g.)%}Zd]|]_ <6)q ep/Wd~5y]4&ȽM=.YE?ngL11[ٮ>[M?5t]CYdYlNJ(5-F] V˟XҺ2Z9ewVo˜Y[]}]% U+v8u7 =|z{/2vkuUށȋlP7Z/ɿړ=ipe9 U׫NԊ$P1yGkYaVۚs=&4 36s"?< k⶛ְjE+PM[3ֈX 61Ѓ4ъsBC-Ț 6)N6PQ-~sTEP'o1S}bi>H@@ H9т6jI?;z}0~>}Q& r"z"& T~|8R?.R֓thA&-^`I_qF^>kXWptPcQzV`&aYzkЦ/qrN3+TCנl^G^ }Eq\bkB4R)xuƭ\OWqqh []C#{%Z?.T(d <Iz=+zOu-,-FoOywx|=m;:$nکI֠<_ަHcoSO &݉cv =(1Ms(~kh{*=F,ʲzg\r 2ޱs?*{?&{\VgܷPw܆(#%G@:%@"r^~ζN~it~ؘ,OM9TY*s.xyhA~tȞƅg௶A-÷]Nl}*L0r_17m-CXd:P>xNN_%a`r [?Qk .b'WvAWoGB_L" 6ަ[rJx3b^u '69iDus#/Qj(ͭ^ ī?yiX#uXnrd{|f2sF"nG$%I0t]9V^z`PƟ017TuYQvz|#< +1OD1G))  SD2ȮN|ςc>lIS/J;Hhyl:MIbDRʓ$ME?VNcBፖ1B3\3+Mi1QJ&O$-zM]}:B)I#ɘb{="7#eG0oiUHoiإvݖ Ѹ=6)X]p;sbIfFT}K1buJ9OP:1MGߤ)ע4Uѷ}g ktMk]So`?6{kc$- og=lc+IH)tK"Vr={ cvBf&g3o"st,V?9}ӖȾϐΊj>JLHI@@4#VǨK_.mONૹ^D&//]r/ v!Ӫ+^HJw`6f׵cbG]!yIehb4wsz\D,j]TT JYL>tmlzׂy~G%JdCBN+WECGw*k[D2$u9KD2>AE2'xqf(qdk8z[!7qTYKnnʾ0W'aozw/َ"Jo"Y-CjЃ4΍9R)K?lZ ֖CS`mܾl7u>{~t5XG4G9يeJU E"YZu9&yZ>vFnrߤNMsl4XԄ'aݔxyE|͘0,lSh:cȠ\|OYRЃ4rƓVLUuc_[}qyeͶ/k+NY;?/b'sTEutQ& kC`Eiir!  LS!S;URQ^kݎ~ew([]W <^r{+d5EKY@ˡdNMN802[plJz_e׼cɋnR_}qI:*RNMcJ+;%ႬGaPR~o҆J(+D/wkϺ^_Q"'WH}SP(()yae)a| mNRŜvZPRo1 MO  X& RBJhlqF\ CR;d'L l2b +Aj)Z`NAP2:RT@$ug1-e+βe/˶,ߚd{<xqNS èk\@ C"DO]jZJozLMg&=U{A0 E~, ۪}yJi}"~z7?)Jk^u(  P $pj zYPOl/J%$YjEޏ$VMC))fQ4zQ$=Xv @JKDA@͌/cA1@@jd*!>Q.\]i/R;zJYU>Rڇ!@ ]Dk B>{ź@@jd#,92nBUwiL2Y&'_ePRV+$\wϔ%.N1@|>f6) PރjfkZk)}hOv@@d.2Ig@n^s7ѕ PQ53"jWeJ$H|)cXd)e Q ցPO}1ܥ0LAw3+#J*lGn=3  P$i$&5aѕ0HN9_-W"ke)ER(S_)dSfR uPd^kj1D@(ɼ$J2tB~,Zr;\nMl˚tt|"|tr\uȸwernEwĆ$e/j57SKri/œʭw<+]"'nQuYJ1,9M (*#v,2)nV+/r-w}m7 P쌧=Dgi=ȏ5ŜJo%&wM2T_fLq1eZ"YнMz3nQOѡ2J ST5BY~ D3n DOmVfiQ:,>+][-z+  duBTکnRz zmtk4g.rW~^2)]e=i'l[ bh_B'kMXܽ"*%[5m-זWI}I)iCJ2R:P@@H$<s$5)F]U_Q]Ar3털5#M;vC./Z0'|^lh," .G V"a_kh&+?Y"B7CvJ&ݴJfs0$Y "y|/wlZ2 i4ԓ٢uq5l^KZeUH^m) i,t~GόjmNwweQ=4 6w5gcר:ՍtU']s‚$y@@QD2ig bxzy=1-m,n Io-Yh٢Gj @ d몹],:]궂ݨ߬giɊpG؈ 3S74TL[vAZ^,TIDAT]A,'d9()3 h?rA 0(w2 :bo5T)'^ݮv ߒ`Hk)[hKtn[MGS{/_Wt 7 Uu&tQYKQgӸ $+'s" .@"r=1HRNHToP3,~9uIzk2YK$S;FܴO#5sz'[ي{W_DR˦Taol[_c=@d}\k;k2YbBr?wP~DO zvDG[g6F=c`uSeLlrڔ0-8FCMeO຿E ǽfsvG2ґݻp^h}NBxGDur^mAL+aj ^$߅E{ZHjܱxΘSe{sڎj6ceclt*Y[n[w#nc[j;]"s\L:[xٯF0ukI$F1@@HAO${&"?L_cH{˾VnϻtBt7 O~d ;{{Q5eS}.2O|"),Ӿ r/rUFT4][jG.'v8 ݯi*% @Y 09{h(fU/t?&󇞥x6\xxJ_;fY5)<)[7BK[(=G-k<}:uv?ZڜWmkSb킖m]m31jP| K֙DREj WU]_Ԍؽu^W֗" |-@"6wO6M?yˏ^wI)ِW5Wv,wQ{iza 8RNnGZR/ExZ*-^?(?n7UVhyN[릵'gSwb_{[4#+ w45e@9=iꧧt lgia#YTuHYV#xBτQY}[乣C+5za=L6۔8JF}`IL:cm^ͫךuwV%kَ@@H$ _352~d¢HBt+.LXY^D][S.9V( 7n:I"\l}ݺuܽأ    @i H}|$ѓ+Gsz"KFj."٤i׬Y3Wdl.],ݍ<ڲjIE-wo..5tezMۜR;񮼮W    PH$PoPh2$Ѝ^%Zc0R^S6*k8l0Y#ɠ.J~\ҢIMuwqYIK9\E UF%2RsXoXhC2 5 gk;j`@@jdHsgKHZ~>q](J./_=MHIږ:j'[Wy1a@n9SrϜ4 MLfH!iDڂ$g=k#X^F31]텛HF3"cѻ,6M,Q9Tʈ  HrZU?;a;{G~WȪQ-Y7ՒP\>v-V^1n6J[+c,Ro%a$H2 P&r&sŴ%VKΙ?uJOښ7d2)():n]avz׭kӦŽF&)L6'|:rSfM$֙Zimi ZcT&5b"  .@"Y5CL]E U_ph&&$Jgj O^;ch@4;2v?e>/?69~ $Q6jK4 >''ɕXQ˺;X=@n!a5wx!  P$E8|ߋ/i.E6 +cGr7?ӒͅCס̚vY"%{EGɿ7-{2韂 mR6M~tX}|al̦%u~oӡL^l]ۡ]SbWc{@@R ,R'KҊPz6 K@y@M~ttj%p04yˮ7H6'M8o/aOzdKbI)̦kU޺䉤e;ht:M$uO|]HH&9F G@@H$KP8@-ɣ]m;;W'tҫSht^")E^!Ǧٟ,Ѡvն̬[<^Q\kДЭ-l:`5% <'9F}! zZA@K}MʋU9VI4 q:qg     P.$iTgr^fYF%7Oż%6uײe1sᖃ)y!Y2-T˫<̌   Ԅdުo}[չĂ}z_AUu6+HK]fcHepxJHQzTU,   VD2D֭KKc٠BrD2urިd0#vđn ]*Wz@@@H-@"^g}=c_u[^[DRZoӺr>׽KBWAq ? lI>FRbn=8Wo_d[Un-<7ɼukwKkGt:qϫ13    dm7"_I?@H lDc*uclEȿ= %kwIjqw%6xS6gذa"i7ԘEd[6fm& ul 't%" Krv$/FM3 zP>FI%;:Xlo<2    @HY49lKB%tP@&w]QE:4hp4M.{[Jk8%/;]|<[N].(U6|\wYCRKf{-Eq:n]9-̠E㦁yw4&ndtS3zY R+dwȭ[Ow"   E LoPLt^?I*'j -Ni f 0\i;xS~u#kvcAۊ{Wm\4YUp^tBO$ݻ1D~Q-2ɗ1]")\Vκ     PPNߧ1{I$%-6BPb,EޕII7lQJ'F,tWEnhsv=:tbmI`I^^2=I=޶.n=]2@@@@$!|ѠǞްϽjMmF:TjLo%0(1~xъ"Ej[me иI$jQfH7F2&%,U    @ H1HSDRbU?m٘wo%n Q9SV*}cQ1VT" e vf݊w{M7;T~ }Q.8`.fbT=);5cD2o+9d73    @$iȽDRI0/ uίt?Z[,"h"&U_u@_G}ڵZ4|1nWpSw9hh(eu:P5twT: (cIH1us fO!eS0RzˮJ\=vH4ofA@@@H$ӐKc 5қ9EG'bi'{ -̦Yfni/JL 96R0yŊ'3[gqoʪыޯna]#]vF苚f* -)-%Otx F941uSrꃷH2    @ HV8>Z/ #    PKH$u` Hڳt0z#.UVځ   d&@"Y-jWnW|(j'.>     dl@@@@ HR@@@@@ ;    HR@@@@@ ;    HR@@@@@ ;    HR@@@@@ ;    HR@@@@@ ;    HR@@@@@ ;    HR@@@@@ ;    HR@@@@@ ;    HR@@@@@ ;    HR@@@@@ ;    HR@@@@@ ;    HR@@@@@ ;    HR@@@@@ ;    HR@@@@@ ;    HR@@@@@ ;    HR@@@@@ ;    HR@@@@@ ;    HR@@@@@ ;    HR@@@@@ ;    HR@@@@@ ;    HR@@@@@ ;    HR@@@@@ ;    HR@@@@@ ;    HR@@@@@ ;    HR@@@@@ ;    HR@@@@@ ;    HR@@@@@ ;    HR@@@@@ ;    HR@@@@@ ;    HR@@@@@ ;    HR@@@@@ ;    HR@@@@@ ;    HR@@@@@ ;    HR@@@@@ ;    HR@@@@@ ;    HR@@@@@ ;    HR@@@@@ ;    HR@@@@@ ;    HR@@@@@ ;    HR@@@@@ ;    HR@@@@@ ;    HR@@@@@ ;    HR@@@@@ ;    HR@@@@@ ;    HR@@@@@ ;    HR@@@@@ ;    HR@@@@@ ;    HR@@@@@ ;    HR@@@@@ ;    HR@@@@@ ;    HR@@@@@ ;    HR@@@@@ ;    HR@@@@@ ;    HR@@@@@ ;    HR@@@@@ ;    HR@@@@@ ;    HR@@@@@ ;    HR@@@@@ ;    HR@@@@@ ;    HR@@@@@ ;    HR@@@@@ ;    HR@@@@@ ;    HR@@@@@ ;    HR@@@@@ ;    HR@@@@@ ;    HR@@@@@ ;    HR@@@@@ ;    HR@@@@@ ;    HR@@@@@ ;    HR@@@@@ ;    HR@@@@@ ;    HR@@@@@ ;    HR@@@@@ ;    HR@@@@@ ;    HR@@@@@ ;    HR@@@@@ ;    HR@@@@@ ;    HR@@@@@ ;    HR@@@@@ ;    HR@@@@@ ;    HR@@@@@ ;    HR@@@@@ ;    HR@@@@@ ;    HR@@@@@ ;    HR@@@@@ ;    HR@@@@@ ;    HR@@@@@ ;    ?/JtSpIENDB`nova-17.0.13/doc/source/figures/xenserver_architecture.svg0000664000175000017500000013312113556316250023674 0ustar zuulzuul00000000000000 image/svg+xml xapi plug-ins nova-compute nova.virt.xenapi XenAPI nova-network dhcpd Xen Domain 0 OpenStack VM xapi Tenant VM OpenStack add-ons OpenStack eth0 eth1 eth2 eth0 xenbr0 Networks connected to physical interfaces according to the selected configuration. Storage Repository Physical Host Virtual block devices, usually on local disk. OpenStack is using the XenAPI Python module to communicate with dom0 through the management network. Management Network Public Network Tenant Network ... nova-17.0.13/doc/source/figures/vmware-nova-driver-architecture.jpg0000664000175000017500000020440313556316250025307 0ustar zuulzuul00000000000000JFIF``ExifMM*;JiR >cuz1509696 2015:10:12 22:42:552015:10:12 22:42:55cuz150 http://ns.adobe.com/xap/1.0/ 2015-10-12T22:42:55.962cuz150 C   '!%"."%()+,+ /3/*2'*+*C  ***************************************************" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?F(((SM:tGG lG+= &3m[] 3t_?[ +(TBw@ _[ rQܻTy}J`Bw@ ?n]*?¼>O}fgܻT.?^{ER>3пn]*?[ =ԩ3=c(w@ (0Cw@ O[ =S/[ +hT 3= (w@ )N`Bw@ ?n]*?¼>O}fgܻT.?^{ES>3пn]*?—+(tfz-GOQ rQQ:}3= (w@ (> rQ.?^{ER>3пn]*?—+(Tfz-˿GORܻTy}J`Bw@ ?n]*?¼>O}bgܻT.?^{ER>3пn]*?[ =Y_.?G-˿GOWG/[ +h*cCw@ ?n]&?¼{ >L>3n]&?§#sFk/h/hs=Χ4foX&X&g>#sFk/h/hs=Χ4_' ɣ' ɣϰ{Nhr<7AM<7AM/g>uW/ _hs'SZİf-/ccN+ad ws֥ŭROaRPQEQEQEQEQEQEQEQEQEQGz(*9 E?S[-5.Ay4,d#VO ]VuVԻQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEP?5 n^mx_y8_ 8? r\^ǢP;Ҋ𺞸QE3M&h;[֭=6K(GxC_fW)#Z{}6ͯU2s^#Vm9Q^,{w}&hUZisqIE}&h,{qsqF)(=bRQG,{4f)r5?QG*IROv H`0TOLTv͎#c?\YBGsա:>'d+AM>2^iXNr֧$Sڻ*AV=rQEEPEPEPEPEPEPEPEPEPEPj)Էҥ5[Mn)l|^kTuoUk||l((@QE0 (Q@QHaEQtES((PEQp (QL(ES(hqހ (u0 (QGNR(h(EPEPER((?%wWzO_\8X_qKIK^Q@j9LGaRC q=sF NkA&19;{b\KE3Ek 1FJi;gZzAE. 80})!Y?_JM.-2;HTJ{K'ǥ&99D(83ZE]H3y9RN)Jnd@EZ\QL̾&hx샥xOs5#|-Za(E 3((((((((((*)ԿҥRJkq=uO ]fuVj}5/ &QEj@QE(`Q@`lgzE,b׵R >b+ }|$k1AGVo&VNMOM[&;L|k #F9uü_ 0d3#F^qiko}ego4ٗkSqemMkPoCFQO&ts|4"hN]B6#|*Ɛu5of)ˎn&sqi7B&#vzMy (䍇zs\߉nu(MsSXmh#ҵ( We>VAگLl-rX-jj{yvFRR IZ/գy[[8?L? G̈́ZfC捁hN - p|:Ȗ\ڦ2bK@A#!G"9'Q]7t{uTdY# OoM{gm7+ؠH7M\jXciPF Pur)6nU,]ZgѾl &Auw⋍6˧#vAG@(ah,CO;Ȫv}1G9UTa'5sQ?O%(71N.9OKn7 ~Q3U7dܪ䎸WcmR}V=8>[lnd =+Vm*NK|Ÿ9w n8_r0O5h)jbXlkFа Mkvvwf᷶߼UΤ>dBṆ@ɦ e)̨O ,qau2''#Wi?.A k4Y.MDkXML6R>a% 5c2]8]- ϲ&g(U <o`^ApIʜE%ZJZUF)yȯC{)2="]63$~dw?Ut7Q񞞑<2oP wXr}zͥ8f#w 텮soH_Kq[y!c|Z|QIxȊ̥vFzXRTS5t?]HҬV8ȮRٱӑS"AZR3̤@`^wkqKkkICĦEl;>J+]4|FZyS[LΉd)5pW%p)+o^徚[! [G'ȉO_L]9sIYQV@QE ((?ƽK/?-ֽK/oά7z5-%-xGQE%EsTN;=u ST!j}5Oֵw|61{ޑ#)$68iBU9]n.m'Zc>mxAy.t."iSjyI^6:SM]-=y-0Sieͯn,-0B^H@j/ .5y^irMEh7cDy湼R\m>k#Ov-zD־QkQGj?k"w5BU|:Fe[xgn"eZKltˉ| HRK+5FF6U${ȼJ$\DUXfVQ^nUP|xwdEXOdڵu-ob pGd˫i:VucxB4jzUׅ#uY&bѼkZ%k>dߋF^k1X:j״%״X۵H#?:^j2 gmGIYĝ&ITsveˆ'sZzF5$ld\} ]Ϩ3܉0 GcPAOh6ٴwk+3vމFN*ng뚄W춫koj98Z!ĽVI3_YIJg<͠QE43^: o5kGA_?!aΰ((((((((((RJK)q=uO ]VuVj}5/ &QEj@QE((`*A u Z1s5͸ړ5XԤq)kϥfh;fҟZݞMTZŴJ4y>㎵4[G;CBx_e,:{3cWw)imDG|{7Xt fen(D$m3A?a;zNi7 DȡzEji2̍ {P:}kOcsnAni?4=XԺֹo{kka@a;_5F{{Tk晪Y\5aZ{yo][]*Ƨdzt⨣eޥO.XX󊩨]h?dtҬ}:oXukxg&*wS]k6O]%I{qcO\MՖ/I>NW%=+#cȫtӏ) sTNӴXA /z\Ub(W}و\Ja 6;w.APūBK,+k*nGlZmoEpf_-'rqꖺ^ Y.;GbIaڳm\;CܭQ|G}u, k(_VY&ue6ۨ'a_ .2Ҳ;cZ(Xx3mnYq u3U4ZL" U*N[Xzа@6Is'q,0z|vJM(`QEQE0 (RK +ƽK/ oμ/z0J)(Š(?*PCt'γ!j]7y]MR4xu>6QEjd4R͖sbW&O.J=:{]9/y44.-g'jWjAc=Zz+ `vuld9 S׽֕ H"ky- 3ъ~tpZ?ɧ"4 dfN)[-7(pd`ӷJ;ҤKyBE#**1T&4 1EDQE (Os5_c׳C| + ( ( ( ( ( ( ( ( ( ( MME?ϡ>u?/w][ZMj[%?ΩRTaEVaER()((PER(((QEQEQE(((E(((((b ( ( ( ( ( ( ( (QC+Ծ2^[Eze#IcˑW7;p袖RQERW?8>y7y]MR?멪UԿŠ( (;I2/Z᛽'fk$ s׋RFLߛRHF-Q f̥*?[׮,-+Ro",X?:s\.t+-9b*֤z5-]o}>Fc{8\F6Di J *Mf>[&<۞-?2wS,mTk94(&O|潙o]Š^ PlI5xط%}1xYTMƽj:tu2 ] aL֐x2rEtфjI[BQ^Š(ES%5rڅƒ #a|Q243όX=+Og|eiO揬SF]γ>243ϔX=+Sc|gX)?*>O{tV#:|α>2T}bp3eV#ZQֱ>2T}bp3ekX*??_揬S}+Sc|eire6~}bp3eQZgZ6RG&Wgl>panlx8$Ŷ ?#%@RK( |ՕiuFb+/VCٳnoJƵB- nfEZ+S`|i??\Sw+KEj3ό?/OϱEj3ϔ?/G)c>]α>R43ϔX=tV#:|γ>24}bp22OFug|dh>deZ?'G#:|}ˢ?OFuF+Sg|diO揬SFV(j5όk?'G)c#+bOF1Zk'Iֱ>R4}bp22OFug|MX=tv'ҵ?OԶ&TșV]FO4*F f8\ 'JGwaX(n.s0^b5 yx(QՏKEvQ@ Q\ǻ KQ\ǻ 8'γ!j]7y]MR4xu>6QEhdQGP 9q{H$$zHO,2ڲuU_.0;GȠR[җ%qg9Nh1xd#^(4Y-Փ\|#c47W;f. G_ޕH)lm9 ܭl'^Ju:L6v&Bl(D(QE5<-Gk чFxRxot!*ux5ΛF}+RoL6.ԁ Et=+Ǵ7 2fNzF硯_FAҸ鄺2AE 4QEQEQEQEQEQEQEQEQEQEyNhhPvoʍSVBmR@( !}NY =(=)PCvJ6S,hQ@Y =(=)SY =(=)Ad7ҌJ 4]_Oҹ]k'~.P?r|~uJ?͋tz/TIlvh֭qk7;^FNqpnn=X~T+w=ƹ}{zںt G ,q@UⅫš޺e'L1,+wH4?+DmF0^4Տ'567s*)B(ƚIT;VbM 3zW> << )y$VqtNl@ˀ捤Y\or(P8"w|HVԿiZx>㼹s[zR0Ht{Gp#Z{#H֡C%7!H%n舤+K?:p|6qV#/feW1JС]>+p~|}I<֢,K~'jVhV*lإ 5i!URC;REAq y_x?} ^?5 |y?#9|Hh>J}fhQ@W*֖sF u" j &yÛ8nށsuuf!i.&fnٔ{HxQ5Oi܎E|}K5MWLpk<kJ)__Ϯ 6 kFzX~~Ql.gP!-|_h$]б }k-5+d4M*RLE 9"(((((((((((Vx)4-<Ocknb\NQF21޼H) r^jP)G+jsQKhBrzQF<)G>ԔQdrF: hcZXB`SO*(. (:zQV:SXm'TJj+R&v ,&ajZaXc.Om;٣XFxDUҥ6GqҺjháe%~rZIsMϝfI^Q^M.GԭC'}5o_ڰhPx{ֵg [FjKMQEQEQEQEQEQEQEQEQEQEQEQEQEQEQHhh=)rON+~#xGm,#O}&gml_%.X{(OP}Hs]T4٧oay&W :¸~#4 .uSs}yaF;,N]B+(QbtE@~9dGkWPon`83)Hx>E>5 ( ( ($GVh`14 hn"xHwU[Kku)nD8eY+Y-Q@ ( ( ( ( ( ( ( B)h%2JAk}AġX␌n(nxπ/cb#_}G|=@QQWBM<~ $gc%zWȻ~!rK1{bnXIQ[SwVf5#mQ |4❈B 'ua]04)QEQEQEQEQEQEQM&EV"I5ŏZEQرGŏ-^lc? @KY9/jO O 4Uo OB~cG4ep:P6h2 2Inħ[G&eӠ`d ;Go_ʴMvFu*(n} 9zk:E/!ui[h=kȴOĚMw:D(Kr897žKw\M~ѩIO9SQ~ܗ^T>n5b8\O|Ax'Ns}kK XPpҦX qصO2[ #Dt8N2}IZk}G-uZ[5慎&ʲDqXrܚ*t}p.#2Ȳ.QU9c) -ƑQrzF~#S@h6G}P*G}Qi?TfU-??ꃨZc>#i\S+}y}"O.5KHK}ʪ^pMu:l|Kˋ '{9?q Κ..+}-eʺF.-iIMZiw6SH2Fە"&%6M j7tcV}W#gRE*}Qi?Tfi?1ThYhZ*[; Xu-QA)8[kO>Kjd5{EuEq s .Ai?T g]|=/]hw=@{=|]%U^g-R@K7\}UW6s}_="9-t>"@4F'.vȿU9!>&m.ìD ]Mxi:OMsqZ# 7(<=2?R^e㫏Y:m㱯~_V]ݡIF8#eM]=QUhF~GG}V&Ś*G}Qi?1Tfi?1ThYhZ6@hG}P*}SFs#c@H .h((1F)h QERb@Mbf_M&GVc=qI9Mé߷iտLwRf76=룮sWnoMre7}7w_&?QE%((JZ(("j<8ahS]w iن=/Lԛku$^@NAOZo"h+o5_ᧈQLb/NSԁsz)iNŠ(EPEPEPEPEPII8kHY z֯/ B&sqKFs:;\N1iq\ω|a `$tUܶ+)UHVǵ}9տ稣[z6ϑGz6WsQQ έ=E?n>Gm(WsJuGBϑQ_mp %r?  "9ӜI~u|qiF3H+H6"Y_6֏.GHRz9bK<7#ź9?*|mI*%we-~U @?'VNuo(ٳ=\>m?ԡ j]j jMT\j)p9:ŋI Lњ; ıWq~k}DGN1@z'$fzuR~X4VQbһ'w6GX,L݇i=ֹ]K_ ېVy.5O- ;/4_jo?Rk]SS;/B;W w=Mt.sucZnZc̸4ԯ.J+A]7(h}j:Zn~tjS;AJ\/4ڷ!QP\;OX;fI'B+"5FssJצedF$aH5?=+KjйΜQFj9Xi2ivќn@ڦ-܆;v)N:?1O4T ;4uis3L7kZt$nwYE)$Rn~bZ| g}X3,DkBUh=?_j_ܿѪX6@*ֱxLlE${hd:SC0790j`s UK9h쏠t)̉t?1_=NܿѥӾQ2}?蟘t?1_>iܿѣN~SyA7G|}?rF;4Z>~~b*ǰ_=ig>I9xoS'vğ@F=@xRkJl5,}c޻O\5);3SWA)Uc%OQYo"vK/Enө =}kyqv~7Zr@QEQEQEQEQEn"oy7?j_!^7WWJ\B=G'JtRK+?K߶޷{,{8#X-]slWտ 7_OAm]T"cQE%Q@Q(4PE-!4f94s W كwaрWW9ݹ W ͧ?msZRfQ=L(Eӷ3ǹ ޻_ᬦXc;=J7`^Tj9-I#cu-FhQEQEs*rZ%\Z|T?{s€ d:On_M)liOGSg:FoT:_ʅԴmfQF9=IL4 (KDRQihh@k::Wa$@N3\~+ZSLZ&z+>UOdHA^^{f"|W/J6Sן]rݫfPۏRȑWMc[llp\OJZk#>s(74ZJ \(<ZWK:Jc3~r4`¸?ۃQ1[~b/XVmxc}#Ҹu.{/؞Bg(&( OxGiKxI-'&Om~aC 91QGAmc(guRbb (4QE,E==z6(s4^(d8;<ׄSFkOS1=,7-Q\Pu¬s"¿~Z(Q@Q@Q@Q@Q@!4^O_+zpoWM?v/xB=GݤRݤéVo?*X}1]sg:%y?g+?{k`*J ( JZC@ Bu Vv薞u*k1IOXzQDZ7]EXw~<ҡlC܏XW"akm\YR ~@Һc`tsrqgڭ/k'Ռ}Z?Z#?hx/?a53kWDOZT(tz3.lCB\% *P b^m^Q*xYEolY4/e$nXMrsUȾ [IXW-=Udw~-ƒ7Hݰߕl$ 8as^JG"X縧[Iu˩-Mc,/cH}h5/:Y1enT[z4lKETQEs)[sxlUPǜ94?)FoUU}Դ/-~-4ۅQ[w^hdk]ZhF-_gkW]<0\J]=X։hs)J xgL|#^Gk_ zT|oaor[F#ZΫܜg4n8Vqb#^q}F"DY0p {SC{(=>{2V6Ƕ+d}|]FEO%|5ay1W0Q=dhfKpsj9z+_h n/Eu~5Դ>EҴc-J9,hhjhsvk9Wy K$FQޕ'EԵbM!ƹZ|!Ɲ?1_gQAɽm?z^yi+6o/=?ޯBCkn?O:?օgk)@&{g^V17=^- m^84ǑL4"2}wW/j" |E9W_XkZX9?tDg@X8](?.7/ArxrqN4s@ɶ(ϢJ9]n6CgK+%Ʊch#ԝDB}ER#h&B69PH8Gy0:nӵߏQ>d2r>kr泧8 :vP JVe@Vvhg.9ǰÒiu N_jw|dڊ=tFhwiEq{W.9& xf.?#(/枵h:]n.ƺG[a>1ڭ @+Vφ J͙ך|E!#|E!#ɢ(x/aRox'a`8lxcw>'ՄJ^iXd"=+{M!6;WQ(+&^K+}r 1;U[M /],qȧ1ֹ1ʀ߽w>GkL&j7.v8] RGޤh#S*+ajz" 9Z^&|uuku7@qq:z}-64pWk nXhs#'k{躝Hw2@5(|W*ѧlM$n0r zuuw[s)'T"RyR$#OG:w;+;UofNꇋ_H5-CXRkU;Ys߁Ob};|1 pW_ O/ǶsZS}aˢi+K3@A7԰{ U#6NJ%9rj(N)i;Q@ E%RQ@ E%RQ@ Hii TJo Z?Bfo-5ЅoOfaSG'JI~NXu7sk65o'۟5W7{ߵ˪տcOـ[QE%Q@4Hh̼}z#5ܟuC}jr{R|Sv)ixWBt*ڝt5mrzUfW0oW#2'.)7)—Z\]Q@ KF(RR“4:^h\Zj"KT&,\Ϡ- j6.H.RJywW%i )&;R|=ķ g,} Ƚe\VHJ֢+;(c?bv/*ST7grje?)NlxSULcQ5Yk{]OZh'+]*;?WoWlꞌ=y|iévOnMrJFn̴:]o\^alnmtVzNo%kt\zs\)ފ؝:I(fKU$ NE_6(덃>v/PX{x(TG8.ö6e݂U\gv=dY4oFM:{K.ැ4Ҳ߰(< ܘqĮ?k?Ͻ=F(D7-CC_+mDu?z"CfPۏ)?>dz#c*]f+lmP g˃\fO>f0;{W)sE?i 5lt c4ϿtO=*kqC孰T2y =}MbuG^{.nj휺zhַMqXЯk&ܷR޸w?Zz]FscNR6ꐤB;_Oz})9q/Q[37A\roD\=k~]ǿ]xOp6ElgB jҽVuHv^J|E!#EPdVJOw]+ޥ"=F?⡻yǵw#5^xgV[@$&XW⦵8v[仵 ]EcԁXc𞣣5{rS`1[2ZxIvzgMڛJJXlWc[H5:c$v2Eѵ / iWj vMWQ,=ЅH&I0PQBFuzW#N5t̷1>Nj3Zݦ}ka:)Q{Fm^_xM-#Dь}+fľY!3 Bˈ݇|W*M= R'.褓QJ%9 ^V>Em7\c_]seƬ?|"o+:nLv ((4_5 )jZ '1MEqp.]N"s4 u 5dhr^*chrx"R1Rfzk>f ^ ֪)X麄3D}~UǕW 9B%Rc֥oH}"? Ȉ?Oѭnl{N A!z۫M^2 Z:a3ݰꢢ}fJ<oq$& fhtZLq6v\9lRÖe}v30<Uh-c`QYǘk,J3*&CM} mM} lחQ߄֢+= (Oث?bv t!dIG'ӳPOҹa.v¤W,r9(Yw~U_Z? o>ɛh@Ҏ?ȯC,ǎk)Rgx=Z?Z/B,~Tg<>x=@kؿ)T.9c'҇@#5&R^iejz`UTCQXzUH|&GMAPV4{Y|>CjP| io[C"hU'p1[i*彪Ę RmXSwE?ȟkKhhCHH֖եشs03>ZO<<>fY5´ 6JNM' )%~ 9 V_o"o+Y<{޺J7{Y<֏gټgz*1((w4<ݮ_vJ 'Q]>DŽj8}+sF%|[HܤJaX&Y`NUn#IRwY${gki\5,t~ }[pMZO ȿRT"/ҹf#G p4Eq<)"C3Kœ}]: &wiڷ C9XljAlj;Kg>AK;vhc=U=vRi.c9++9Pj#m.QtIr 4<?Qo;o/9GohvZ`(6}k7G%ݣ1;c8NqYŒʕDnjx}FNi2Br:uk5jRPrWl4y˙Q[tОv/ۥ}lו ע+= (Oث]b}Fy=(nه#9&5uvC惍8tn;7sU/Zoȭ!Y-e"+]`b3pP2}`,0pgn1@ :eŴ~dJ2472F)QS9mB$'z՟[ݭ ˟<}xiF(;FJ~ jZݎ^s\[[c%[8H㙱r 19 6fWne8 UI#hhe@kEyC]z@ Ckn?OЦRakIC$Ei%o*.JZ0"4_PZ]Ӽsq,JpQ=dPjE^m1XyU .,qK6 %HP ?*i-<,0@(oH`&>SV?e"IIA@UM:[qNtfhn"0pݠ *ޜmxIf۹*DO* MgQW.-!zthoo\[Z~&Д^| eݒH<-SW}+nm#:>ޔך|E!#q" E*ōگ=+]4GT7/(S֓X[Oo,1rAuh[Fw,>SJ*>_-]R Kf6Rȧp3zRgڗy=zeb%ĞT9'ڀ(cޮ5\G! Yu+e`QVf\'jh[dk[}Ì{Q# ,2LԮ ,Zt a#nh`fc1=He8v[;6wQ퓏J;krZdbs*֐b,~F6}uΙWYeJ1/ k¿~Z ( ( ( ( ( QE$tӈ6Ohe/Z=fˀ?u뤮owk՗[CȽh}.[((() -!"! pRտC־ 3|aE|kN:طkjyJx8Fe< Qln<)s! z/O2#ֹϱAutxI PKe$GZf; MNC p8b"ohUgA%~En5-᥊8u@#9D%,(Zgc&k+ m TXg-o 4\5IJm̮3ޛizsmHnlsJ5Ethzuos !{QGٍTtOkQ&dI#d,SKtQwO[.䃀*{GYo/<2{ڽS @XxeY#;]zӼ4}Nd<omom r}sVl}4uh}3rwm"ޛrOZU[F0ɔ gEsi3wǥ (wڙe<̅$Q$:}BA+?kjRũ 5-Jǫ]a7+rVYi#'If3{?+ЇJȌ!{0&Ҁ6L-C\~H֥ldr\ kJʱ'z(scOCs,TqY)+Дn#X[t.Qހ5mbFkUF¦J浗'ƚ[ 7ԑ,J[㸠 8-SYˤy*;U 6ـ u?a$Z$ݾwm&%)[M]~j72I;c⤊y`9F%ym$d)$p~7jlUUw1Y4K!ww=ÕjFX5YcrJ8]呣R#bƁ$Px^3tf~pIJ(=W֭)87Bc,P˲-fUmg=זWk&f c;o&eϕܨ3Ҁ6< [GSkIфgFگy+DxR6$fqяQ@s=Ŧ,m' :jkۧc\^lxZ&i0H=7_?J<;nVN^؍Z繪8 P89\Ąv<楴e/7HX4zkneݰ3HK,;BH7q9altsK3APhY^1(<Gv/*]CD \d\aޜ]oj82L3+*Ͽ3X8*}A ;[v+y.FgR.U W$K1,sܜIVb=7p(n %R6_I8z\qAӛn}jaj~XYw)8&A#8'z-m>+uJP,t$`HԷR^Cq /Uw1<.+9}I. Wsm=@x" O|TvsRF8ncq>4#ꐻ4K^JȪ9#}y{tM+ߗ޹<-KVvO Z((((((('ݧ$xvZvc}y?]W7ߵjZo.~Wټ?뺺1U-ɎE%Q@!<|S?9 wN vC_Ab?XԜgҊ==]} uZ_ k iRQ/pkV=b?IInaq114Ja^:xw'jwSMEj/{=(bzP]@tV#ҏF/eZ^J?Aמ^UcB\W'qk?u8׬Rcqɔoֹom SJom>dlt { FH ohph+fzQ(ˢ?1{=(.ʼk{ؒ_Ajw{f!at=+Ѐ )å!ozi \¹aֺZku*܃@ncf?.͗·VpXUE\M[ ^Jtc֧#ҏF/eZ^J?G׊4>hQ#vN;Wq-K " RɫsT5kyjA76c)+ѭ2/؊—wq(84KZ—hZzdV"hZe +Jo\d8ug`MrM6c\gMQrؗ$>bQ7I4a?kOO?.a5Q5@!;-IS ^J̤OF/^J̣JbzQ +SG#Ҁ2OF/Jˣ^>+#07@Vy2jH& akjeCdDZt(((((((Ii>sVow7^?wWH+ڵb/o}'o//~[((( ')4_3opw1 'p$EmEp?@ݫU̡feeu>l,Dq^* CsK."i)>[,cf3 YtO%C|BOnFœo/^to$}ap~-T|D]@k_m}0s>bhڦ%r0Ixvn(T䯯Jj^tٌ;QZƁ.}o2-]`wkA dڲh8TfK,i;P<c & [8w\{m~5Alhm*v 1.'<>}(ĚI'h+_s] oj5{Gټ|swAU-ɎETQEiƚM <`r^_)[`Iyr6 {9ǒǑڵiF! 3c?JקZr;nl;vN6G.XK'PġBDi?ЭR.idI33\ԷW3(Y%{rO69灉WVvnHk{TuzU tqNf7ՐA%  @?\W$Ȓ#ifc$KDt:oC4%Fs]tՇ]z|z̏w|?¸$#;2 xZ|WW)M"!= tŻRɶ y]VlSXQK~T*&׮Z - 9뢓Z$7W4hh&dY#mAe^u޽s T66ҍn~j:ڴ4O#ev* n&!eG}4%{7SKz(<яOһZ!_AkE/NsGBWivdahkI6/QEEPEu⠒j4f̎>Q.1@hǨ3sF=.t+~tn_Q^=F=G: =GYx??.jnpetctsz΍~usяs΂?:M~usяs΂{፽?:sяs΂K8B?:q`̩,g7)搨=8Cׇ+=qUWCvu<[ꈲ WnЩP0=jBV-|M|#M2MZ_ n#''MmaQ~rRV]F ߟZ~pg 7  RT8"ާdB5 AX&&1n.,Gifʝatg/z626b_GEQ_Kխ'6y)4JqgYEe}{ѹTs"jRѨѨ@h3 ⟆X0Wn!ڼd~m&W9&"(|AR}=*]=g̓-;Krn_Z}s|TsѤXzѺBIVFXq#?4NIHO5|Cյ zuӲ="YK-X FƊd0VH3c|>e))ב-!϶x+Eb;tXƁG*y MkD nN|J'kOރ1C|1W^ɩ7Qr'WHf77u?S0֗u/IlZ5ꈽ6hMO: =ZǹǹB57QѸzβ:?̇sSp/M~tn_Q^=F=G: ~tn{Ό{Ύt57Qѹ}GYx??.jn_Qo_Qf=IzΎt53HүpĞiQTUdC- ( ( ( ( ( ( ( lvM;ߵk_n=O#_>_s] oj5{Gټ|swAU-ɎETQER hcdAڹ kĴqsaֻcI3^ [-};jV䇀:WO?i4i~`W\1r,4YO?JiSʑxf\AUc'_WDqxCiN=kgМk^<؟ӇËa,OLװGz j~S'R+ꯩ)پC^$<c\ iQ,s~rS`WQ|8k\Gc^1*`1\NFWP 0? P)kɷ[QH(5 ,)M[~ jh!gWIMW~ XA{}x&? .?& =>>hV=? 3^? &?Iu_4}`9`ϸ>MW~M/$>.C(ϸVG$>q) μMW~M/$_XC=eFΠ{4=1yo$5'$XfzL;kme> ͧƒ۷iPxa,S[觹5Eܢ/K[=j~+Ƴa^鯖?H57uSB:J lw6|;u/yWPH}~a,gg~Wǭ@ ?hyN? N??f^ҼxYO5G{32=EMW~tjhQ^A ?&H_4}`~3+?$ ?&!rz3^>|IɣM[~MXCgf׏IɣMW~Z!r3^? &?-G$>{}ϸVG$> 3Я UI &? =>Կjɣ=ZאIy8w t_n{ >1FTR$,k"IZŘnf?CVV_ך 2篥mE4ӪQEQEQEQEQEQE>:'ݠwj5{Gټ|swA\߇~լkk}!QN((:Q@Q@Q@Q@ (Q@Š(AEPEPEPN"i֚ǯ~C&NN+R7 ݭ Ӗ[ڊ*aQ^3yַ(Q@Q@Q@Q@Q@6ONhڵb/o}'o/}J ߵk_n=O#_85RܘQEIAEPEPEPEPEPEPEPEPEPEPEPEPRpMPQ#֦m:u( zx5욧yI5Lj6CEWQE(((((((((()) v1nqL+.jzC`!b;UA\$Rm"#2!ek:6&,q2[xvԒ03ّۅP T:V_}1kʑ&fIHHrҫaw>d,yZ Qyc#=rT:ۃA(PsH%KF TgMiqjT\BEk/ YlNLà皌^ϪmA-2ȃeχo-{G8P=MfCm=˕]8TկVu iB;ڧ;?ٺjcNɒaLc bE4lvF57.$4\}Z}!`[im8xXMRM:O&Fj#'N06Š0(((((((((((_>~kq=\vJbvA^?Eb tOk}܎`5E-EMK[ ((((()}NMsufou_&W;wzAҹ :~:+=s] U-ɎETQEQEQEQEQEQEQEQEQEQEQEOҀ3$mGx n *@(]O<_^9yku3'S^;{9(Y,c!ܹFК縣Wcf?ՅvBD;fִ[D2YnOp+9@ou*+Ko5sy*pG5Qjڛ޴~S8QNqGNPƐQEQE ((((((((((%*i{EkǃZC9帴QEY!IJZ=vCO?QKqM<ɗM^@G՟py&%'cҚ8 5r"8!$ZO"Q"nRC/)H>`Rw2kǜ3&ȗy5zG"'"z~՟s^s<QK<gU?*><țyG/oʽ#fG"ҟ՟p6ȗy^wҏEJ>oK<ڏ"_ߕzG"}Yhy/oʏ"_ߕz?"/"V}oK<ȗy^IV}qK<ڏ"_ߕzG"QV}oK<ڏ"_QV}qK<ȗyz?"z~,G՟py6%m^G"V}oK<ȗy^G"V}oK<ڏ"oߕzG"}Yhy7j>/ݠ{@{kXFR!TX ͞]}PEx"1,zꥹ1((((((((((((~SO4u&?'ԕ~O+ *((((()c+~40AaiANV"r~"Z__د_a{c۶AVRkӤ1Sֈ[_أV+RX4,?^Ώp[_أv?W¥}¤i{:=S?kbx^M x?oKc<7wjZUE}>m=y/*[ƏT?ʗp[xGڭ/W¥ hIc<7wjZU}~"y7*KƓ-G9v=kV(UE}_T?/*KƏeKsTzڭ/Qo,?R4{*]Úc־m?b[_د%Ka<o-Ɵ\{oum3q^M x?H~X`Q.}xDo:+aW]C7WϚDŽ-ijDŽvOoZbOd0??ѿƺ*Ɠ2)z/Qo+ɿRi?R54RxG_د&Ia<7 x?o>jY]}~"y/*KƗ%G9v=gV/Qo,?R4.S_jGڭ_د%Ic<7 x7oR;o}{}_T?l=.S_jGڭ/W¤ i?R4{*]Úc־m?b[_د%Kc<7 x?oR;o}~"y/*KƏT?ʗqszأv/W¥iR4S?kbx^K x?o-K>jZU<_ؤ[ ד¤?ak^^ eFI.IbrsW5Y{Rpx3O+; \Z(Š(((([UaJ[QL((((-U-fj]&1%w;R%['Pq뢬/JRL]vzFخ[:f Wݜm#n+<#t:^cew5݇ˋ7߾QEQ@Š(()(h\G$]H7]zW]LmU s%u-c!kU-j(۪>]3ړn<#z})+;^՞ W V_KBAk4TEll5Qntyr)8;V=mX/cՠ8WP 1 T +`E"OISYɨx>5NџJNՏ,=n(M(([UaJ[R`- ((((-snhyu̶N"y#n\>+{l5Ryp$l{p݁{.A#TlG@:QE%Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@4NhL~O*8SRV3AETQEQEQE+]M}&p+]Mg3w1iʥ2ޘo.ݤXb{xyғɏz$hTQ'h;I=h{ʠeZxVy%S/]Yv\E$id/^?/ҭJ \,jɶ}Kjv\%ҭׇ|),@sxn8O ^O5]ϟQS ((((!sA3Z"k: 11M30.GaGEu>/g\ 6p[b:㞕 XDGQx E '<_~T}/?*,}/]=&C"pW;iwrltH"Fܧm;ON-ޞ\pL먣XQEQEQEQEvpIp*KPt?ξsU!Kk81|SI+u'7g zJh,^U>S٠4T( _e~GG`#U4~[H%´Ķx]3ցLZ[wS 7WIYbH2ח|mӴ!sW{g޼:%cNdQE`o`)KaJT4U )S-PEPEPHN-G3mZ,4c.sձam;-fcTfmǹ=I&}C֯5aK \FZ6rp0rkOD+Wp*J ( ( ( ( ( ( ( ( ( ( ( ( iM?t SRTq>g((((ҾjҏҾlS=s7$"1}'=+t'RňƫU-eIMMߞ_qP#5V=3^Z18dŢ*0)QECYgv+?\Lu>917Oof^_m [nzjk* oS-m#=M;sQ3s׃@}_E>/=? &9}w7F?iEL93s??\d=wMJI5YC!B+ @/&tI^,EݙguQIk,((((h_*j?? uᯕ5 \C^_LgS_Ρ{dm#~2ϛΡo΍oMG'=6}sPo@zw4*ԭ4Bi5)%e&rZ ԡ!#e_,b>~t!xpƣ+8},7WSч9> |Aҥ%[d5[.OHH??U`SIonZ)(KR)h7~;̂!X0c#zA2XW Z;d=wбJllp*{Nu__PYǜ?[@3-,X)(J&kBUzbz%0eTJZImz˞BS^Ԭd7y?TSPb%_}X梩>?G@}(Z,`ϯJЌrGz,v}1փB;ӵ=kk.scZCG/JZQE(((Q@lĞ=D_XQy"].q7 *3+䖌ħcwf'ڭ^_ֽU? _V+ pT i)~c E/AavKvJvPA sK5BR;Y68_K/OW??rz_>LrG ZJcMaJT,?WaEPF( ( M@ĴP8#i"bMV2ic42:מjSz嵊m;nUa~t;*J ( ( ( ( ( ( ( ( ( ( ( ( ( iM?t SRTq>g((((=v V/ZV*3]1Q#2渿W h=;W\nq`:\ԐtpTG%y-=nTN"nj"wQ="/ oaZ5Ÿisj[2>am-Qv8mcZմ xutĊI0+5ZKxgwBHmF6hk!LԴKKY7?Z6d^.b][N 1,'Vi'ʹO$JvB-eh6uw8?Ú+昑IYa*#w5~$kh;nX%o]W?_'m]W,QA<$QE ( B\7>Դu 2Dv5)Dl M3tbZ~Uьң;vV?O_,i&dhu qujk ZʌRb==s\#uxZ[h7t.B3kiz w\_P+2]LI5[ɹ24u[ CgAB=+TjԧH5F. ZIs5]BPӂŦ(y״DuzVXoFQ޻+ 4;[ \/t[RҵlZ6!sЌjgk zWA qTW%KGҝM_>QQE(())hCHJ$oݐnr\%w)YUGYh]jG\cױW&5 w(ӢCu?Z<ֿ?noy^՝M"ˊ|S[Ěe{ -mUv$\?X[}hs*$>$Z ֞aEFv\n6q^Hԕхr& [Tu'7:5 x.芐w˺ܯ,=?_kZɹ&ukgG~gVW2ڙ[=ˏ:ϚV)$yNjGd۬pJaY?\iKV؊ͮn9|8]G>go#_L/+ 1ۆZ(ŹKaJT,8J[QL(('m}El%KjYe LZIXzHfӭŖ׊7 5Q]Y-Fl^SjwfDۏkQE&4QE!Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@4NhL~O*8SRV3AETQEQEQE+O֬:Q^5r7tx5ûo-+TƉNr"kxYP6h0>cc%)Y;zRGI-cnokvzT,jу` ?bQ; 捎黅,.r ׵;.0+? \]K% Jo6O5… GaU4Q > /ֹ ҏĆ=a~SJZQQE((())i(#"x>-r"?yj1nEIYSPs=ks.?,H#Wۃt=*KgY{5},woH_[:)ڍɯ+ǿx0KH+̎Y5*P[%_0E0 ( i00)>X!k~lD݊ڲMH4uȸ % x徝t5@I 5i{FtGf gէ' waETQEQEQEQEQEQEQEQEQEQEQEQEQEQEM:~飨1>}MIXqQPEPEPEPER:@ ʱ|O&< 3շNQ>tռev e><9b*Bm2rK'P`1V|iXxwQ?j[ԟʾߊiЬ݃ST2)2z=K [ZHN$UާwQ?z HDp z? _ʶEAʖi9+Gu*ÚlO>G J4K5 V14-d;kףM-\FREY}jҪ *(((J3Zǰ~r+ѾSq^621یv2(u!a&l#ڹjaԉj *j?foy/йO!L5%u4t&@:CmmmBH AdurXX;_ޱ *v쫏k?,瘠6W?"ky,z<w^ 2clm@PA+1ݽ(4WWKQEQEQEQEQEQ)8ޘ_q;kMpq]#;AϰHppA2;iFQӎW[y jM"V%Z:I P吤>? xU; FHⴎ9I,:Z6n]HG+؎7": t/tTΙ~`؜f!WS( hTS^,|<@^)ɢZ2:dV/+1teʟ<פ68%ڀ>GvuB*(L`unY5*P[%_Š(Mw)Y#l 0({Y)w QUt ;d}_R%.DAWd&iLe+N$s!O=տuXQEQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@4NhL~O*8SRV3AETQEQEQEQ {c޸ mj"llsU~2k:G{G-܉n$CDŽ6d6PID db2NjMCMn#XmEʅ$0q^[m;~ b.rq]{O⇈4KdU0$K349ڸ+7]Ȳ[i F9rw|dx+,sEEiBfdN'cNdzQ]->WwHFT^%YOmiZnr:zQVi.--|ۦqc$T%?ac.g_D ?^Ock~7?7ر'~98j/ߤw/go%𶬺Y5]վ" w/[sԚ:o Oɱ@oa}],v02㖐bD4sx= $}s,6RH`XFS(:s\LibMC%B/ޮ Dft_mCfTy_ʤWH|(rGuݜsל|!b_e/f`%tt|-[F38iAfd V6M+(^.6W̾06rۆx !媎BksxO5HH;8axe. IGznx_{7;d CX4ksIE-@wk}jPWR3ETp"(%1eq>ۤ^1 0x|bH7ri#|M"}Y"Q0c20:uP@*R>/AhŠ((((((((((((((((~SO4u&?'ԕ~O+ *(((((/m w%|y \~^t2v!ۦ#wvT_֗{Nywֵ+QHݒr_0gGq{o&yiڬ KEU<A^*)>xź止ln-8 jԣ^>sz&+L~T,59')bz{]&់uXf-ݭ{"x@ _zMsIl̖qb1 z8y F3xQ{]0ĻX& klֻu柦k ZlJʲR0_7ud9ɮw1%c>+ӷ躕8Yy5ᆹ-,&}>Q[U?wk BX9?$2 JP8]블QcGi{9v E4{9ve(4~g.̻~9pzQ1ƎIve!x*ģO4+giRy?oMR{qoouci$vo;vA#>O\>Yve/S5~ϻ[~5iDŽu böw:f3JS ÓֽSȠz9e9sμx;: kfK']7R{f~i-{YmG+v0rhO |˹^(7xQӭ-b2ew9g|<ѼQ<3agq}.pAV7Q돳6I>?G ]I?e佦!&ZZlcu/L|/}Gßˡwv]6  `',˹:7>%i>%ntM;RԮK;*ڴLmEg{(rƴ{(LfIv2r=i)pI?r]Š?Ghr˸QGh ]w ( ˰s.E4{9ve) /h{\˹OTҬ6k N.-tqk1%mƦw%19ҽn=h?CG,2b=.&r%p}@o&1Ҳuz>+Z]̸&1u4me9sҾC-tf D~,zuO Kխu -9[ۏ1 >.̻>!.$U ܣz2.Z GʹcF=Ojv1,[Ҝd&r\scIhzKh_sǽz|=am,R̭!$ָGweۜHɥNq4u Z iشְݲzW]h:ۤ "(~zQE JZJkp&[%]w +:@KI{}ogn7[7I+Qɮ.&b5,9¨I5뚂4/qcci4Ss zl$/# y9,f.Hʀzrxa8P0¯'"!!8*t((((((((((((((((((iM@ɏ5%GߓjJ{( ( ( ( ( JZ(((=)hGw-NYA.˕$o75%@4ZvV&V1*5*?o_zebO?mԿ:?jCX)?(w<ߨ;-?G}ebMoԨw7U>ZQ寥Y}خ;*?w zϖyiO/{oG|]C~G#.RY-?(w<ߨ9*-?(=y?#0R?xKXOʏWs G#0ROj?(vF(>b9u*\狿n ?w zϖyi\Y}y7#.RߩWkGݧ~w<ߩQoԫ|O>]&w7T;*-?(Wsɿw JgOZu*<}b].73M,_0U-{(J> w9_};}؞sWWފ+ IݛF<()hIC$LyI8Zu'wIwir@屎U۲iP8^A #d={~]j/^Ѧ1 |'B7W7rI_OM%h⸎h((AEP0(((Z()h ( ('֐-@8ZU"渕!ZI*$zv77nNe], 6EΩ\xmI|$8<  [K[.;n"+b y5iv=YR !vO=M[UT@UF u]Il?IWꅇ*j (Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@!KH~PD~O*8SRV3AETQEQEQEQEQEQEQEQEQEQEQEQEQE'րw[ yX*ɟđ=.I +CxVO^JH_L UW.9Ƕjy;-ݔ}M4\K!圶}i|u>\lom׬gS^(0uKҗ!jnWk h-/h_c=ֱ?Q9 oO[{Ef10]?*Xc ǵ2(g]+9L{Fhbuwl%_θR#kh_)y/J[{jE>?=r/}[WiX{Sr88KX!Vd(ƵE0e5w"E%-0 ( ( ( ( ( (T/?N@gQ3tA d՛m4#GiZYc: }lJ-X{}'oN;sTjzKF[{UC2f[{Roqڛi.1['`bvZz~g,/,\N|۩U(n{QBd뤫Bt~C (Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@!KM?tL~O*8SRV2AETQEh)qF@Mh8A =hԕZ|A𞣩 >\;BJ?Q@-4U,xV;ָŕV{I{GZo 9 Ne05K+ͧ󻩨XOѫ.ruH ɤ k.&X}Tdc9= >t#Gv5m50U8DEEa}?"勯Zs!V`-2qOݦ~sGjzmYC|=/YvCԝM*+ bcQnOh: 9ڱVU=Jibt\CnEQ? ynTyS;䓎/:P>ִf2:WYQE (RPM,1%,Wi)v 'QS[3[t^|ƒ,r*ڶ ٶ6qso&p'*}pj^"6VrLAwsŠ-ڠǝ݂-We8_njְ̗Wo~,^ 99O}Xv[j xv $SKkwlcLcZץɽƒAERQEQEl~ieQE(((((((((((((((((();ZCL}48Oc (}S>ӷp0Vh<[#FAn:SZ-.-CFXVIȘ 9OZ4c~k\h5Wv^0L 6q:'/k^KxdJ}Xz$^ 6'޴G4(_la|]~lEվ~=T m1`iX[˩/JƳt6h#Uo+ac88c]oO _x06&k _O>.l0H B{kǟyk5VΈlX TAQvK%} D~}MKc?ʢ?xMhGC2kFt֠lto|USQzʶTJLﴙ>c2ޭqGh,VMɞ2tE&{Z ޡ|fB\̺}սx kes:ĶѶjֻi6 "(dtsG*b0O%*.U-eJ& }Rˉ.%sNwR3W6T;sG"ك.},|{3MI}KO\۟/<lx'˓I2 ?Jl:֑eZBv\9 }yʇsOе QY`irώ>5m^OUz8f7¤ץ:Qf 0Zz`<Β z_&a^fǎ+е :Ԋ+Rfj$Uv8c]H]4}-RnWs0&@)`*m\E q.G zz ub̹%XBuϵR{ 5ǥ0ǥe\jXKѮ9!+F@뚒^[\i/N#2ȇ`.eõg:e3\Ζ)#}`~ _Ԯ.AnH tٌᲵiY4H@,{G2q#-7 M*H[dMKV[x xsmQG7`T-.AGAXun*oV=(aEPEPEPGj) ~-N[-hV~>GsԵh C (Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@'jZ(yZ)Z2#Y4pzYu)+ EgU7(8 ϥ8tw`F8EOu|g!Lڻ}hE UXU4`vUEW`IFzq(x&LpU8H߿.hE0ǩ)4جo&BCk 2/STL\8y8#ҪGN=:Sl,6ƙt., u{\$Mmg8Ʊ=j\,];ecXgBN }E3Rׯ[Tѣ&k7gs;XvA(jrKm;AԼWFs^`,HIsZ+8v3F{K 7ZUw4s[JYc9Vci!&VvaV፬ݥq1-y 1ڶB03t9f#7pTZs:}+$1ȍºDka7N7"HB6^+#\٥ZYG5'1r=9(+h3k|q^e^t~"fuRⒽh(((((((((P`#Uf'uVaOUdf5n%E袷QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQER0ҖoZ~ ;Gl=;Z¿)`JrWqtV}*|A{;r|n6(((((((((LREq~0k'$ޕMC56]&W"n<.O`yw5S</N lik:d,:2h#ēW~$tMVOFwIetN ^A2U@-UuP&׹t );261R |iy}fwӚ_/bw.wY}Z<h줃).WiAJ'70+7SOcͬidr2/XkbH7 @izޣ`$LVh95)㏬dR?@.\jl8~"/7lѷ@Ȭ)CZ$hE-fNhlLQ@Wg1凩T+ fv!Rg#Os!ޥ"K`n2c[L5ڙ]KNcj-FĊ=عc_ibrˍ /u;URsc]]֝8܉T%\mˉ(uHŒSOQұr+j(R QڷGR%+QZ( ( ( ( ( ( (KGҀ )qQMq3g]4-ս*/:TʴS9ֶ:;(浌@]:,cW@-XŠ((((((((((((((((((((((P}ˆ=cȺ<⺊B(]kauF*Z 0SZOV5ޟk|O*l\zLhz\?V4P!~u~i?SO}꟝hz\ah,?MTD??:?SGah@thzG!5X>?SG"D??:>OιH?9/!~u}~Ȁ~OΏC=Sks4}~DK~t}꟝s_es4r :_C=ST,?Me꟝hz\!iE4r :?C=We$4dymn^?ιϲҋ8W,}G?o[?M🩣l4/ҢmG~Yd-94P[o!*3b>o<SJ,4r %WA?ҏEt!(J64be|5eRE^?*li>o<SG" J='JNU *agaϮEcHAs4r 7VKLc({P8x:ŜY[?ȂD&Ɵ;0\حi Y*-ST$4}~P:O=ST$M/ai :OC=ST,?M'ai :_C=ST,?Me꟝hz\ah,?MTD??:?SGah@thzG!7X_ȀOΏC=Sos4dʀ~OΏ?U}~[+r1M ( A*V}rxF27j?_Zٳ+ilc_V; o2sxڠ}8`) BjEPQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@nova-17.0.13/doc/source/figures/emc-enabler.png0000664000175000017500000012424313556316250021255 0ustar zuulzuul00000000000000PNG  IHDR#wsRGBgAMA a pHYsod8IDATx^wG sϷ{wsY޵=~#Bvw  +{nhi4^#}xV.###~UksX7~7h䤯.}>00k\\F;m_OI_KO |5>c焯鳕+ć+eOWŇ W8|)q Ā!2<*.=*|NZ/ǵ_{krؐq #MCsd-Ƴo| _M#j EqmP ??l_}?FO)?vq#Vܔ? ?4<*b4ႄ,1T9ϲjY4l\XT;x  ,y}s;{oϬ=gJ3O Z,8vO'w(|cNO\K\'wY~/}Wz,gkV「AYfo_ Zuob#6?bxk[aȵێơۏ #ㄝ&G9#IĜg͆Pd7輹Λo9?qaj_1`?8ork֏Zy᱋E-> .<<}x{cdz鱦y!a#Ldyɫ{up^->*X,4] 7p޾` 7{z@^3{ /1xj 3ɻ:M/v.x=I׃1hy=Gm3Gny`*7O75t#L&C760]wmx=p[,^7_Giou^~^_^! 病{x~Iz9/v_~R]> /pAǒ';?Ѿqz|0fW ڰ^.́ ޳B;H{z}t7BE#[IRsOLj z% 4Ż6kZn ג[|Nnm՘-G7%r&p ,yG鰵Mifc,{{pY;&?yYA[:z$>.op?qD/9<9oO.X}*{ͩC<&)0C=7eصp*Aۂ^qbaqM_gWA ļTL*Bˋ*z%!Dѽ&mg A»<^!Kty+H| n. 5c\3[xIX@(Oƙmڮ`Xie.=å'~wiqtpqcng7ը u}`ܩŏWoq_أ>HEܷ"_.iՏW~KӪ, @?\K%~x%+=`pϪVݞw'oh0яksJKo:.tܰ܌7_F>U;wI,%CNdXϻ9 W8M#m&o5roİ#Uzx##9!#?m#szxЊC U9lռv4bض67 wq eB.}oXp*FIܗt_;L3,xeߦ2 u~C#k-琭\e)8FaB'ŋ:/zfAku[RG& w^@7*.z z <2b0_Fuz-.ò/Cߜ@w)])a}]Acr>4;^]g؞wON=y{mwˤmOa]Fmh1r=U=3,%}/LW|Xo') +Amo!,- \oQ<ɒg,y+޳zr@?p+"ߔ7 %?O7K͈϶?wXxժO7ZO{!b gESv@8wErsiQ'Yb?lo)@,CCbzZݻ>鵡oM}{ns[ߞ;կgy{8ЯAtCQ^( _w(8xw:fcߞh_ܼgpgY@_/g,=D1Șt޺@śn>[\s۾R3]5 5qf tiZ]B]ruŲr2e)y0nm=1 K)1_C,&xjdyͰt{¼A qE1|`pߟV^؂}>yC{d`y҃!=hg;sgo`LeN\ V`J/t[ }S};~B_K2x7Nӧ ȸ;'`W? .ܧx.?CK~B\{K%?p_?nrïl{vNi9-ݣ\>w zޒ=a/~mz;UreT u(2'=K˺uuu.k{tYߣ3xs[{v޳^w켷g}Jׯ1gg>^(N5@UۡN_ףn]`+v)enA~{ 0k/ڄ_틥ۿX; /ܘ_ʆcدρ (.T"p S6ڀqa^RAWV끺$]sw5%a2xuu  EnUAZ\+ YK zU!iFt oh$.gKݧnd֎q Òw}a>cog,-[d’&55+E?ɎEЏ7qBe/⇚+^OU[.~! ӒFH\kxս~DqczV};- gwI̢]rsf1%\^DV9?xaL^&A`vNe+^8>.aYe:quk;on'~n{v;ӥ^~CлAxp:U䇂ON_ӹj#mnۛohZ4n13sW'b,yl\keA9|Y˲s+0?١vE>*|M!B6aC?&G֋%Z;@?~\}Uzws] j>rOD?~X%#o]~Z@{>*non}v ПWy-H[ {.8~.mY7`c/lSGC|"_ x)@`zO~?֏8s;끻r+;?tGwֻcY;VֻcuעPs/] 1GzMWֻ^R‡o_P3{3ޗweЇ!~||8 ,å.,KJ^_BlXl /yHTʲD6 FcH'2s ׌嘳yxxL#Ȗ׉Hvsrv_\sŇr`̟+. Fc,KEe c}^ _׃A~p%X`\=ǻ/ vy,t6\v~, F@ٞ6Y4׏9C {Dpu^K|;A^לUoD i' 2pϠY 2^/Gt%X&_6/ h-ij)+|)%A[`OsdRH=tx5Sfa{S87t_\1x_8 ȟ}u*yL;Mnj5j׽7?zMg>7u?Qm j]>^s@`կ1OG°w=^B?-_ǯ>В5q7;76Go;o7x%c+7 nFn8ҽPAd蟃 =iz/6_`ˁ9 >VE) 7~ڱ':RqV?Ω!{[}ےo+߶|<ׂ n+eݶﶂn˻{~??̩u8.W ȭdGհbe>|tY _]r~lA&ݳ yGzY 5r $".xP qKrŮ/s0O'"JplVxn2 e`;Z2x/P[jR? .gfCdћBo_ #{l- `\@{y^h@z%Gϛvw/ѕ@^< KN;v0Ň4ps"F?~mū}WW/~gCg{[~F~nDZu[=v4 A/dE\䅛 -j j`?WxMnIuRi>g{{4?PJòPV>^ϛ;!Ud[E?%`U!2ۧs{n/ 8?"{0_CZ1/o<[=YW#`wk|fVs=7dr|gcOBAʖQTDŃ.s끺$ .3I\u^.5>&pY|_̧@x`[ϣA-  ^c%f>; J5* ^Ze7tmkAX|7Oo"j֋@+&[6R2AkOKUG CxG?u}?۳U4k䗫~c='wLJ^]y?AᅀųqZ 'փS6?K7n3(|;(`4?W༏}onҔ)3{?rόGhݬf?V7-z잒.ynuV>Ygw {p_ňlSdeO]xݢG.~nXG{GΨWwzS-دm_C?k~a?x o9}&8b@!+Zl@?(w*VJ!+ܿZSմN_I||$C,/^ YGëA+wa7?GܗE q6 %7. gKhOzw~.gس=- {z3&aܿgVAތ{bw:oB?>h4˶vXϞV2C?d6~>Če2~/.Gpv0Y2oAe/.#!Gs#>2^ Ԓ#G\*l+^pI(94e,sD khJ)c&cKC}>-^brQ$T|ҳ.a=«I`]cw_ݧcJwxzNuN|VmhFIKm^텿v<я_B {W~D?=zHKn/_t:xx7xq+&J?tχVٴ+`1jֵ -ݰ鋶=JCvd4j=WύZbr!3m~y|3z9>{Ncn^E{ =ۻ?Jjý~kwͩCPq{?xU'~&Vox7%oJ$>Gy_^>(&L0،TO_ZƏ, MR^w8 VqJ}.K=Goj &B^B \(: >Z@__PW‘9{{us~w/t[Th{^}mXC}}RL+ӕ#?~;ɏHÒ}bՏ7|JяK~|w"DU.lϺ~|Wr/udWK+hX)K0bIK:%ʝ?[2hד۬z žGOF!,Nw xN.ƹf7xqN5xq~sx1 |a[|[/{w_>3M'k \;-y7/z77^yㅬ/̫¼7_Y9v ܏}y{>8ٿ|J3!|#Bޡo/C}"M4́s-;I;9ytO?鯦{S8bio+zC) =<\̑sDm=nz{VS*>q:}|Xo\+E_ǣmz\گoǏo:7rt7؁9 sxWg1=4m|3a8?( oNf~ޱKhi? KK{u[*W=:wMEc\ %wTzWq>yx11|xJm n[: >Bx{:XڣG{+C#_up"-|rXwX֞6x{gјM-Fnh6ly{';<֮EVEFڼ_,u%JC{A!nՒ ۃ}~K]=sK==W֋g=׽3p= ~q~FnBhD1~|tqȅ{}&&Ku_nn(Y6oT~7,jްw|;Z[ڼ[۾M8xewZ;%Srn6-˦~W"n ?rX C V]s:Mnb~߳W&5AL~G%+}zGs+O ^ n^a xydw4=|-x%{p.Xά9ETGz>Oj>}ݵ'Ol,L|eo}`ZJ0ιpA=1/g=1ZmaYo:G6qalsݜ@q?CSG}6E:"X}_<ԑǦ[1V ƨ7oD\5F 9M]?G47rn3d|V.uX~ͬC147o),6],Bmܡ=?qȢ߃qF~Fsv][M ~/X\'ڗ\ߥź[F,ryǖKڷ,wj[ڽ˺& KB_<4OiAx|- SKaw|RrVI(vyV@eVX #ʟ p | ͥ ׃I^ }\Cʡ1u%9%s;7fx3|3!?3͏bmk3>K5᭽Yx0>~' (/?C+wix۝~|6Խd$nmX}Kjt-n;}a`.n]}6g4Bw8XNiZ8hcН7L*Z +hٓ=z6}tWXPDG6[iS|ᓆ@x1>)((WGU_Wz/"=תOskIc`jzqޞYn:4ĭnn=j#ֿ7tmÁ췪~/v['KRЯ&& Šօo>q1n۫~qO?ձ)/&&\ne/XKW{7xwGs{[K~~9XG۪Ϣv[rm2gVl;z>rכ8U^l%ym\ Y=?ޱw{v9wdޗ˪:u|?_6+(e\/w{/`Lە+f.9}7W! ?}f-=>g9Z>, 7v>lzmY ۈQ0}R]3ŇmmBY{`;"^- ⛷S7^ +5Vw[ug#\>"J=6s)ڻDzT-q-oX,}(&bbqBʅO%JM_ZY/+Vi{[cG⚽kol ʳ<m}{K{Tٰ sv]&mv6lcO7G ]=ySE.|~⾰ Ӓ?__$U~zH_Gt#F?.t[A=>}GokUw{STÏ'Z5aOhS[k޳7nJʧ iAd_9 J#?5C9YsW@G{XoҚ `8(zZߜ;>JLQ_ߜ7QgctGE![z8~ޡY{-?{w;Oe2kϑ{w ,lWҫ˟<ѡv%;,im_|ExV-d_d˂ T} q_ćĪ^B0i~1q4g, z~ |~5 !я?mM f#4ǧu{ƍ~dRx.һ/],wy{ާ}"_٦M싙GO[7q/} )yN]=k~*_o\YV?që a<*N'b7xJ# SՏKk:]YJ;!KQ6ǧ+#SҎ"G1Yp46m!փ>[X1>`@O֙b~Kҟt9/M)= Zòl8ن }~(3ڤ]e3~vǴ]ζ㶴Z3p}WkK˞ dۗ<ڮG'1,ѕB?u}-V;=oB?,k0~Xk{=%O’%?Sb/Do#A k~X{$:Ou}Wy=NoKݧorr_K7>H |rߠgF~!x?ƨMЛʰ7{WYTXm!ѾM-nm6/F@H#2X%?ma h@Vd61ZP[=({VmRaZ ӝoI>O:/œ>nB\~*!NϮ7&\}\GWʒ״¥X luG):CֶpX?wu`j/|c1!Y6n3Ǝ6A>"s?0E"[[y,X,c䃭|zdNC7G-y擥v]я7x_>%@Ove.Nzj~$=_ǻU ?FGw_d'2L )Ă͟HܯU/L/KQV=&Gt&7pbYʮaO\_fi[Ngًuӝ~kE0+C+ XڏQ?V h3pVe/t_ls':=&e}#O*_|Sp=jTrǿx }Wה $ } }AK {7}#-%逶pJGN(D.Swq-.WY?; 1ƽo$Xkڵouf1z1qqڸ=+qǛb.oDV&eㅚҝ蟺vwMDWkh"&*r?ߊXQaEtћۊ~Y s؏/yq7Mk U[Z/,{. >lɎw(y /o*4VOؒ__-5D?]ߤ>Z 5 };@y%@+ANMiA|m) \2Џґ0]W"WHOL(V.:<^[Z_s?\s/o% nq/^m{_i[dBOy=}}mE+G֪ яG~z%w@ݞ~>o?@?eWw{C? -V^ *K~jɏV#CވX7/ox>qOyJߴb-H )z+>"lhF;n q qrAsܽ YhS=g7FM/w6đ?z- +na%%  #XP8Ts{ w pFӃ-=xÃ~7Myya^FszMG#JgX]~soϯ{\z{,Z*X)VOt G3%1Ak1/qF}aЕMklxݵ>Ѿ艎%Bw{ً== ^COik? 4a|K~nO%|T}侀}yǸַz䒟oQ_> MƦྡྷzks-H6 8J1a6?J U Zdv|_UhӡL~6~[Rv+0ݼ"n7{f|[ q5: b.843Zoy pf#E1*|+pKF# _ߠ:>uO_5J|˽Hr^{bU{X~2ϣWK?.{v[ 2 4-LzZڗ>&X |a7v<#Aߏ~#0Gz,k>3~=^Xgѓ~cɏw{ \g{ ^L'rL80~!K~taɏu}kkH~r8xޯ!|"/$m [z"|fÛ=o5xޯף^'~-fWxb<ˌ/oĴ e1%s{~_5pm|| FE`}E.Sy 0F8ztN<Y9;j/ze$٦WYut.x15k;Q@^ o8Uxp"śo9Sl)x%[.vNz9GeLbftabb U=aR4GjڸkM,&-fo32q%Pψлl6Nw6Us_}XC7fn_zl6&%o3l6;-AÐelvFx.V}g&w2l6; <CCf3/:89)-Y8[_z\+Zeh(kԪ%;0d > '}q+ߴhy|eq%.g#'kԪ%yɳ 35~hg<2WґBr߱ԶUKv0g }a@UdH!Y&$[LʤJ\H`PɃ$e@ f>؆*B$&RcHI2<6R#_waQ3T I<7z?sкC}_I-6_^Ej h?a1-QEA] "y QFnT`+5q9*;1OJ=`=[E rVꢠu5Y: *9O'tXֱ1Vu`'U6WA~:a&ϡ+}S7Pߋ+q!uB ً17 @D䄨C5]̽fcHA+>Z.WW#@b `D#1>;A[6Tq8hy8;WV;{}-Eaoˈ,7J; TU/Ine@{䄾<ΐ=@f@%s6 FrZ50v$Ua`;یffA4 Ӗ@ f솾&MAoJ?65ɿwA_8$u [wpu5ΧrRУʝeH1$HyM*5l^wncNۍ7nx'ŤPj=}!u e܆%"]<}%З8 zO5qF(^YsWI oR*l3EI ,,< W…U| -^|/xkvcǒ }B9W]yWb׉S1 +1k–{-RybQ'Wlޭ abv4(HItď>>amDLoS,6rcQR "LѤ7ZO'9l'0q TN_6댨pIё0 $kVUHFjAҡHdY/iWau{ttLM #e퓾_rKrF  [Ɓf_xBNC `*&^ E%fm*levcĘ/[دvAF2C$ )|3ǕhRloaZduo}N0ӹgʰM}}u6ZwVkGgYha]a6ƛMydYĪ<>m;8'j?xY?&}8 $&s 4,-&eq%.yl`dqgAjx`oz VnG*ya&}=A $oI򿔔s E+S+q{ à_ΦVMo;vw^|ػ Iz3yПKXB__8q߀'u,%C)J{ àgS;i͘ɳܗ+}ᛂWHRGM$i$Y&$[LʤJ\H0$PɃ$e@ f <Ǐln0=JW%OlvjZ4 ;6jD &q/ ~[nJYԔ$hJU=}WL|Jq/?ˆy, >ПE+?gXW8{3Y,+}A>A'10Y,+M˥%G6gX4Ts\-9}e>bB?⏨>bXi0S>`wO_zkŷ }JG@sqF.CbWПg=ybXi8GgIoKm׆YkuQ,"97u{<_5k*j3i bXarC⛁ +WC.{^ bXa _H&F@&seIr\W }ˉT∧>Uw`XT+}>WYˍ*nLțMX%",oaFU{M]bXB#CJwxk I"X<^AbzX%7fՋe?:bj^ՄC w}a$oaXUuW}"JXҿ%/]3X,+U>,?7TCAAb]@OK4GrbX)C9`/gXR-g{?<fX,V q[XЇHbXՓi?2#r'?Z0RZt m$#JǾG ,VҥKro &wX#w!dRL/_ɑH}_P᳼`b3 o@dJ1]r%77Wn"mTAՂ-?*<ƒpM_X)&&TܷQI^U\@WWHBu Zb]'7oYn|# ITE۷Y/k| >W>8Z_ }킆X۾Vm6\@a%$~04`xVd-LzPTj_PG܏)@@XÒ#E҅ @ cwئ7/\,VM"|¶wèġHa"U} \Y<+P$p/ G/~PkH/6#M `Dp3`l밬(#YDw0@A8@b\pp+RAK,b(H R8J\Vʮ)dMycSD3}TwFI^UG.-84v4B/dXG ˤKruЛ"UҎu(R1"Ͱ _X`GO1;RIȋqBLH5t[2J,uVҝ`f}hTHvg_PWq ǾW 9B_!٧sWI$Τ EPaЍ7-Z$bD*ɑ!c (&U%m+"AVۢfߚC%cuv?K]yAՄ~ /<<Ї >5ի /z3xh󘙝a?İXUxbzu:uQe|\0!Ka1D&kʱ-!2̾ Jrҝ:`VEL&I^UyG _| },J_']g+53"ZhgE rw,V_ZXX(׮ 71qGVG,l^TXbьշt|" {C Net ɮL &8#L*>_'E`|q57+#]$$uY>nLmBT&"94LU(H+EEE"|GR!rq$ Kyc !mM5,X=TQV3WLP |Z4"]f_PO,><>x?b`RLLro >Ɵ\FO.>2~HrJ)o+..H}_P5E`R}a~Ї+?R^RR"7X6* ܋C_~Q/pgRJQZZ*7X6* ܋CjQ0:@+m>#>\Y`E*ۨ$p/ }'.g,%]OgX,V$(*p /EXvl?@A_X,UE}f,= Ї 5!B?A>j摙B80+@7a#^$>7^}0QfٮHeG3rdacɍsuRdN"&3RH׾`%=n+ձ[asJ224J_[y"kN.^!kncOG }X9HE((8_픳WΨG$1iL{RbwpEThG%Ig73PJz&.)+|"5LvXgHYž\/Q:#vF9 Cʴs|#]rGne6XEz:}+,b5,+PF+N_Zy|* O.^a V+'!9Z33 4F1I(ECb3ʈqfFNcz/*c2S]һƀ7 e%.tN/3M[4oUAr*eZZ32~uG[LNwÙZ^&9#ek_XTDZIq@ug\aZmA#im)לY+k?9MW9OΨJy畲 a&eZԒ|zpkݷJHor\Mrj/3&C xU~iE:![Lc-qڙ!42"+v6g^W:`欂w/1]idht?trꓹkkO.]a מ'`Np==]bpX@ )8h_^]'fyఽ} <6& ] _0,RUhyc]ڑpHG2z#m/W`ѽ"lҶttTU[E; q Ʃx ClsdA˹kO.\{*ot:4٤@_0s(8^م":oLРQEHiQ5 }fS7zw* f7lF.Tk͜FشYk]F-7Pݍ"a ;UU1VbdRrx `zg"6Ɖs_EbWȮU 1f_f ylٷvmzGkl$S HZ-"yFFW=`=A`i>HO'̺b`=mꀑ}1LD$LJI #2aJ@rE9Kul4ԲȨk+zژ  7a5`:#CŽrTa34.B{QEQgJKaB#0^ .EywـX-4F\GWyb^cAƘ=1֡y93T[/p:vqG%j0%jV{\F2m$FF u' O.p*v,x|(Cf|o/2yɓ ׆y}A_ xpiߊ6-|pW66#C#>p㩢M7􋷜-ތG }bUMQAع+@M%Į\[ֳ[Ζbxd&Oܷq_tɖӥ[ms%N0Y.m$BF_\)rz x뙥[Į~-S>_gexd&Oܷ+K/vfv~َ/ 3Y7%2N⑙{sv4o\13 S&8fU5Ӗ#JȗMѪ%X- u,%X9Ĩ\fgX 1Ui܋SlR2[4it43!:2+f1@lQ6AW;Ϯu_˵_i&(+_|٬t$-UUFd7=V"^ct>]#mQ,hԗ4ewVNE&8)WX$"嬌dVq\TOެ=0-6#im !}n/ ZW7 aL’J́bfV&9$X;S%r;K z>c]{8OUvܒ2| F$92}R؀{wf HթY + EE 70@Yuۭ9BF3__[[xu0@\A_(0s|Bz@a5c6K VT"MB儲q^%%; 뱄{"jeS ctK=ILk_DJs_G:ʔ/ H6ϴ-*0AY$[#+0ĨTY:v:M܊^$ܛ#l ǬfrDpC9ZuEAVܔEױ+ KRTT;٪īîe${eR#诰;ӏ'c]k~3L蠿fc7;a܆ء3iWHzk[D @eETX\Bꔂ}躐L$%^rdZ6#9#r7 [OK!CGh`Zk]8}6.h5}DI%J3GFCjJ8W&_6.!]#IGKõ'cq=O=Q.cTQ+'Hƻ;<XQ)Z_-f# m'9# Zaʌ% Y{5ah[HM3lFFڔ24:/;| `,<>u}mY8屚>5 IBXRɕ9P9@|ʤ јugTqUnc)!`)Q݄o6n@FuJ rK%Gֆ7<93EUy$aVXi(*Zl@gY k^nUV3G蠟Uv`~ZI7eEJ(zSIHm; @%JJ8hgVvZ r8$s_TԬ[uW2dƠ 24Riп_tOº LN<kP9Bj5h <(̯+6vբ 6ܔEJ0Z%U/L5z ݁JJtn[$52y-WKo:*dhпyn bq]pYW \ "sdW<Ʀ/(+EiPPT%kՈQ 9u6c-c(8ZVP0xhj9k9F05XF Qfx-vpfs_!^z̝ͪr^+E4} -QFC.b]zC! oC瀉}I|?5Y6!C#]%u>\B_.8lEH^ͬ(Ff:6!C>AZ'm$BFw@_">bWl]J⑙?O5U ʊJDZ*ՙ% S%R"TVu*E#:o8YrF:n@ BFM!w"wYN nZ4stjd8f#ee5tT>\Wq>W-6{Vfb*`Y譓Vc hD&߱8# Za18ـɛ^}k*f،)+dhD}@>5 IBXRɕ9P9@|ʤ јugTqUnc)!zأjj䐵UYVc\-5!(g*n6lY + EE 7@Yuۭ9BF }؁}A<<}SPV4Ϋ6[}r(o[FT%ăމ7GY[$52#2mp -Pi)B"U'~St9/hw CPuK(!bh1.G V=֡IB&goCYV,V Gf}C_- nHVɫUL'qF"dh2Ogjxd&Oܷ)5Yf}hbX)j ?WL6!C#~Y8ogjxd&Oܷ)h/>g&Lo#24 3?;JeLEUoyI!C;r$ nWN6gUF/mm%dՒJ .92Y[<}h'}:HnEw1Q+y#SY24R_; !P %#,!R:sbsg3Q.h;P+U22Y[90JD ,흚>8}Œ7B(7R`d(}1Z!/ȉn#\b@V5U+U62Y՗׷tP$aoiH[kη}x)ATyR5` ΋̜PL1*s5|zX8#UM9kIL {⠬Yc$c,BFҁ~@_?$[MyI ]6Ԁ2 a Vq&/2TQɪd憞,(~~QBȝl{$< :8hSF!c$YCƋqŁdVB3N5¶V(dUKo9#!f7k|(ǜV=dC_A?ڠi,H M2YN)?2Xܷ-3YX<2'H w5_( O.Y,U5E <2rWZ'm$B2Y#3y⾍DФ@g:Lo#24YKql]?'dUi% Mfs}y54P!<:X!#3(L"dhпy6C?OcLVfI%S24ڕy)}< !J;};q:;Bd]8x{W1F +22Y[9I|Ș/<0!CS *;*Y({ 'P Jvڴ(Yg @ +22Y[o6Ա&sZ9#3|!Cpv$6I2H<UUlPW%gK(vArvA1*.JiLV}kO0/RD!$2x!C#~>Wzӌ':Yl+Im*!eƆyJ@H3VKa*c&c@ +22YH-L sz̠i~~A?kő?ȿ |“HuGtj#=7wXTQL[[H249<}5Z F;hOha觷BF&+} 3wp =qd [ VdE oiT2[xr u>, N%c|=O%ͽC0*J2*eLV2Vc24 O)f{>1r̘Ǟ#3 1K֭RdE o4Q :`HX 1i'H:!q3'yFU,hTU R5]Cxsozˎ$Q=Ÿ% $֞<^88;|F2DUVO'dhЗ+}i̬O6\ꐲZBy5ڥ䖣*(Nj\!#TҘ7 kX!F%;fV L} #a;f##+:U@>6#!'fX{a*LV} #ݜ:4+T"c<}RB'OyMJR$ %9fJtIg%vqHrBYHڇ/jgV +|d+ѷƧQ^C@ν彵,i^qRV]e7U=LV25w2v@_%x\e6 ͠ޅbȋŃEt~7`UG!#0j/8&3*yBF }m^H)fC"0򰪭Ɋ@oCNp[H |QّBFUiu+oq0O2if~=2*b)S\ytR-bym*|JVLHSYUdE ٷ0s b+5}dRM<2'H M.i^gexd&Oܷ--Z'm$BF }~D'>ɪyE12YnUoyJ!C#~-Fu422Y[}222Y[IKdA8uR$ v"t$72O!#̾כ$cÄ S*;*Y&DLV֛Fzz0٦9>IB`D>ո6gOHYYЪ6j 2S!#d [dMD/B"*k+')24J蟸u_M3^`f}$W5B2S!#T k"X!F%צI g0O2if~=2*b)SyXɊ@o)f24“Ԁq*'VrLV4V3-Iq+}}o@y9wd%oiZW2.!C#tJA?aT{ȼi>%D]3S-z_f QMdE#ְjDqG&Z2VN=24jkնwug*yױ4(dVcD+*6UB«%,լGjLqG&Zoa{(?̰i/%g4A!Wh1jF~58;jsMG:Sj_;2YՒ[sK(cقT%Xe})&dhAEam_X5 m$B23Hr%W+)+m$BF'o[m2YN<2'H MSX,jJKyϪu⑙oX>(aFQav{XJ@#Um}毪 |W<6i+_mJD!#uLxҺ =r|XÄ6pE/tVj‚G{G&+ }+O g?O?L Z)t682;z(idGY\!r+s62Y՗׷Ä&29f،33AФBwjG}pID3@ ;Xu5:td,ٷDYKP) ײ(W{rbW>MA0q0BmQWXcC2V#U y}@LL\(242A+}|~ZBԶqrI 4l4mLP^WWPTjWdG&+ ɾfHMgsnB&R)2 ?OЧlHl (+ }$#^E2Vf+dd"lM1T%XXݿL24B0x_b#3}I~>K)623JܷkY,)m$B)Y,U5JŊF<2'H eXQGf} }+*Lo#2bE%S6sյM ~w,hK5 s4඗+WqF&i%&24oЯ\6y;VFڀ/:E62Y՗շ07yU24*%.Ѯq#}c@3 E)923Dܷg6!C,ŪxbE#m$B2Y#3y⾍DP>xd&Oܷdhb~aJN^BF .֮y7.Ix[_HWs\mQdE o]'KФB s?K:]42`?k)P!+C22Y[R+KЈ<ۺX;U/cJF m2F4 }wecBF&+} cBÄ ,{gΥ<B,LJWC\y=˦>XɊ@^ߺ'u`YJO7s9#3|2"C ws>DyUaQɵi2"C w;7N+I@F߶?FUdm3#֙OD]:J_LV} 9N/L<}R2N%jm`Dr*!sjBHS 쑕 $6|R睚jZ3}Gf} }+*Lo#2bE%m$B)Y,U5JŊF<2'H eXQGf} }+*Lo#2bE%S)dhRwg$R7D}ʭboW!#uMjAA*־%w `!X)dd"շIC%dhC_ƚJɊ@f:&5x24IYB,u {Ra^6ڜHX .$gN<Γ eHfAG=,V" $6lRg5dh ZO։Gf} }+*Lo#24MbXW,V4⑙+#3y⾍DЈ<mYg:Lo#2Or|2"U(USF&Kz}M AЏoR̛j+}22Y[}'K̂yqX$|22Y[|@h.!C3 *i2A'1~́hV,ߋ-w`QJFTpUdE o1fʘ[<0!C3zTCgθiFX]*XD'QXW#LUS]VdE od8sN4/`HX dO"qɄlH}ݧ@K "=Qs,e]>3C!#d3 3hVY[2I4_I&3 +RoHHr ƋRαhur &D B9'+0Ĩ`24sg<>1,=KK :RBz+e3ceYbuUdE ٷ0'y9 DiOJߚO^Qzu }y'و9!1Fx2-eBF▻2R1 $֜R:*la]z 24*׉}Ҋ$C?yr4+HܷO@ }VBY} }+*Lo#24MbX)[yxLo#24:g<^e6CU#3y⾍DP>xd&OܷпEOe2bd׷<ݤ}K >ӬSɪ쾥WşuF} yΪILVe--+Yw -[/,C@I+(8f̧,4BRMk {co2.{ Q keBF&+}+'1PL %iQnqݧ ϨN'j)7"hdJYA7T 8\`Jm0+(g| ax(FN"0fU, Mc# kseSoyͰU 6X[X@6+ѕ[;q90Vj=2YQH==Pּ!$|5eɀ>9nBmΰULmXCJ5b=RX!#TtY%&=P!Ч 1*9X6s w(%cIsS "E)k(Q ,*JڦJR^a#U}ɾQ NsA&R)2 ӆsDXK8!C}-> ϴ)uxegQ`kˌy1+i[`TUɪDߚCJGHL91.G V= ! 4G)c⨦Ffmm$B&|+K{ziOVM(H y+բP;bݜxd&Oܷ\这-Y,U5EPbX(>b"%oC3Y,+egXZCgXTP@yK,ugXZ$>b"1Y,bXHB 3Y,+e- }JY%xc6CbRACgXTRCbRR }ŪEJ&_=OfX,-V4п[@6CbRQ }ŪEbX,V-Cbj,UgXZ$>b"1Y,bXHI_=bX),J?X,:8MCbXU@nٱ;ޯCbXUPп\0bnJ }ŪE3Y,+ 3Y,+Ls,u1/fjzN])%MIƦa(1Y( 2) QZcBϱ `h>v 2-S䄾LKC%GY9`~Z#dЗi"'eZ*y);|0CU|{ })rB_,V 2-S䄾LKC%D K֞Zrw73Y)''eZ }J& Z-__^E/kDN˴W, }bX5$ ƍ`wjsu앛q+蓪znJN˴tOPPANo>ЗiquOۄ O8 }+)>H@}W$֤G>j*䄾LLU?^@|}!7n 'eZ\}K+"P')'3YZf9Һo$&Q2D{‚TDn(ʈi]QQDƗ2-_?X:~s@\OPzPRpÉg8p&_zwVЗiquMcӱ0E=Y6;SV hܸE>dACU|D Wk]6w[wk *Ā ai`K8*tbG }Wn?YB40|@ )0Eb3 3PbBv2-(,D%f;R5՝ !}8 }+)>,LW..zUm\W}񰁱'b 􄑺@* s@2-ݘk_Wˍkh @1p)'eZ\ў2\H-Hxh a9`]ڇg"#2] νrŷ鋗r*kP:vHO0?W(Зiqu>@܆3`J>q*m!N<Õ3pώ];儾L+oO6E,{ƙSW+7}8 }+)>"y*;ՉSlʍˠFF/SS,&HHH3y ⯎ /'eZe: ;]Wۘ u2/''ꔩ }W'u wܫ/ L:M,fMgNZPb%EG$Ot (ҥ@$Ɗ;]j^`$].y@3pTN˴tzs@5! c.TW2@wW• }W0֟=&ةy1~o1sUp,VR| [U]00ErB_eЗii~S.>x1ɵv@.d/\RCN˴H%q$%AN˴- H&"%w5h3YZ ''eZ }J6д@Ϫ>~qrB_eЗii(>UC>~qrB_eЗii(>UC>~qrB_eЗii(>UC>f)S2OؔdlJCbj,U!g/?`>b ֟ fX,V(/gX[$ADX,J3CbXՑiz@bX(r,R6i6B'gigX,V2o%Y,J$g*a6K:gX,-ˎ{|,)M,)bX,V-RoCՙ?yMbX骛2CbTU~>b@_bX*AbXi)>b"1Y,)JD,J5:R6f}vCǯԞl6N#g-;oMl6flv-2Cfkl6](􏞽ftwЗbXtV_gX~bX+7黸3 evby31 }! K3Y)S(mJ#Qo:Z/5-DI@w ?}MC_V"#'>+hʴ2-= ׀}/cO*Se ؀+$͛22a9F '΅X9RGD6tYJ.WRQuFoz3~;Rzf<"7_9_pzIC 3""q\|%3p%cK)^^6K" ^+EtVp4eZz } ;"7 ~'J:~MrB_(( s.?ca>+7-D G;t<%_j:Z0[3Jb2Dÿi-3bX" ws%!g.;,!C] } 9w,1 ~ҍr?[FB>6f_o;rd> {] z%3J+.VrPxjɁ=߅ճ65lv WA#>O3]^z% ^Ƃ~O'سLC_[}?; ~΂_=˷,7 -[??g_CDz_W/WP_a*xfUjgߴ_Uf'fȩ\OC>gYo-0Kڿ5 ?myVш{4~o _ŧ^| _EП`π?'gY?\SL|O/Uբ{MdxVD]uZÞf'lਗ਼qQQW`qI}B?:  ?S`/H_ sso/m} %Td%=+{|$^P^L~^Gnoߔ$j6;}ﳁ~HK̅xG,s> hE_+V$}>BVq}6鏫~ >'Ԃvxz"LozqA4i TwmkviO2D@֓U)AuޑL xU,h ( ( ( ( ( ( ( ( (:;PQrݳaϴ@P@P@P@P@P@P@P@ψKmo2dp_fR05+Rogy9.%

Hu6%( ( ( ( ( ( ( (; }=KKA<@ g2FI!`bGI$HUtt`22`H (P@P@P@P@P@P@P@P@P@?twfh ( ( ( ( ( ( ( cTG羛 c]Ŝ* pH .PϷS^]Hdw.zʊ9ڈ$j8TUQ P@P@|mSWO- QcjĿ|HWGUh7]">&Χk^4|I\/3p oԿeOڍ?>T1D]\jO<8LH>ܻ3d 'g??ƀuG oc@: F7QGGXvѣ#M,hT;?4ê?hS?N4)'g??ƀuG oc@: F7QGGXvѣ#M,hT;?4O<;H{ > KkCRG%b_ ?i|>%Үo/<xP_'>'Ŧ6/<;iZ}Z&KhBEM^t-Vaf@P@C2Ocg3 *PZ ( ( ( ( ( ( ( ( /7@P@P@P@P@P@P@P@x3qŦ~N{.^(h ( (c<(?e_RWe@?h߳-y'RW =<\[zn<~~jn#~|t;? %X~)|/Wx'Y,^?Vҵⵢ-3Ncr yAf} HGj@|E⟁Z޺,5OԵa]_:kgmqra!|/|D{^ׁe&<i'7èh!߈K]{ /[K ( (GԆVR^~e|<*e`,P=dpP@P@P@P@P@P@P@P@G ?n_ol?? ( ( ( ( ( ( U7z9$_d2*mQP ( ( 8cU%q@TP@(QgT@L+k7k[}?ο<_|,Ӽ9jZ| F֠ڌ\> 얌 y*iZhothJ_ڃr>s ]/W|;Vӣzvy,5-s:}j| Ft&EX c%o,fu)z4XYҧ>7Vf.Hf.٧ͱ~'XqozJG⹞㇌xڄvx/Zuɨ6M߇6Z7("w9j߲|_ӭ7[B=/h^֛akqhWQr?(?_eZ8( ( (>\4f$zcHQG#tǓ( ( ( ( ( ( ( ( (:;PQrݳaϴ@P@P@P@P@P@P@PI$NI 9%:%I&}+هֻ{|ҵjW\jy5ԓ4\KUW OeLE~x ? l~ҟڛq3f4!Nmy?>i+Ot&(Ou˄ kO}ڟέ~>o]'/l0|I-m ˛[X(1Lڇ UoڇwL|I4۟ٷ_f[#֓x5^u? ޅ tMڴIO!s_=x/)_4t?x߉5]}BYn5ψO^)*^j{krWG /_ğKe.Wt4OO $xVZ/x|[BDm5ojWng?1b|;ٯG~do؟׆#_:kF oR< 7ĭĞy—}-Wº=@++\ }@P@P@ܜk#<=A?@@P@P@P@P@P@P@P@P@~ۗ[}( ( ( ( ( ( (>_ ( (>s-#s~&g+'_)I<l( ( ( ( ('ŧcf "O 2~)x݀xUt%X0 *AE}@P@P@c? ( ( ( ( ( ( ( ( (~ܿl~P@P@P@P@P@P@P@P@P@:~|S:|,Dƾ0'4k&uq|;oe7aĶ,~𭦛amSPkKx6M7|6?‘ܧ| CKƥuiCfw6O΢`MGT|ۇڀ ( (=CP@P@P@P@P@P@P@P@P((ٿg ( ( ( ( ( ( (( ( ( ( 纚;{himv=x'Tb&?(?V4z?c[Ytpo>|#xȎɫeOWPmj:6O7^f\fʸu5yTq8TTxڰ=qOԹ?]%2/\*siR ڒhTm?kaSlR뫛Sxq"?hu7/:g/~|=a}OX^]%OBM kf\3Cp_Q8̧dGQc%NR|5[񟈜'ḳ8TZYF*pr%v?/( [_aOQY~ntx6Wzwic`6mKxm%ZƵWǂpWΕ)R1ymkiШeB1:>*|F{Wk=׉Z/菉.U^nѣ7|e*~ !2#E3JtkQ֠u(_$1#/gˊjptxmdX,cK9fþ\/ZtF5~F~ˏ1|+G)񌸟 (eCsl6U,R}^T*֖"8ueN_r/v??$/G.{Pմ [S[GY-u=L-VWW ]]գX2ε8r^**uƥ9&ԡ5(f֫fmb0c_ ^p:5`M8ԧ(-4iRg ?/hxW}ſ io>t6'K2ؽḴI',27_iٻu1<;^eUT[sԌ%*\ɭ2OH(] 5_p?$y?Z!?_yH_EuZ]x'/? Qf;jB.?m ( ( wPP@P@P@P@P@P@P@P@P@?twfh ( ( ( ( ( ( ( ( (/Lj|!g> Px>>/xiR4_Z|&BYs=#<*Pz/iwxM?ߵ;O+yeo:rh%Zſ|uhAk7OBcø(VWT9,3Zқ?d*`v&g͕GȅP@U|?k['_ߋ8yq勏x-#V{Zya'GeۍxO"RyXY6<]:ػ-pxwW;mQn>!PY siGن-Pyl>߳=oWIjֵi㿊.JA񖧧vzN8l,p8LO|- *x.'8:r)C2T"_~~$?؟ğ'U?' ? (CK?'A7LVx~W@P@P@c? ( ( ( ( ( ( ( ( (~ܿl~P@P@P@P@P@P@P@P@P@fwH}OkT&"xTXt'xH䍊igpYϫu0Teu&ۻJeLj'c?~.o^Q֥ѧF4hT t"٣EgX>.%'ZU}C\5j>#$yơxI$Ha݄+~XF8rH:9oN{upg*iٸ:i̺}UOr#.$i#N.KP -ԍqek;c 5jLMӆ|<9 0[MHmBfR}ԟ'Gz cڟW7SOB]5%+ƣA_i.&hNI:X )+s/gbYPTqr\<`. 9&rU<ҭlNK~Ra:WhG,EJQcIX+NWC<]k G`?׏AC4v2Mj^ 4ۣ_:\NsfKPn^qbK3_TZ<" u*jX'chԚ_Z0><9n妱O5ddzVyoet&I;U?i_ЋT\E&gVn^VVxw 3xWja(a ړ(ߊ?T_[N_ ់ux? <1uwB|Sm'k_ x~{Ҡ8n.{Csu;#<4|&[NesLaUq)bkVڕYE7[݌Oc9sO<:St2e &*hrQԪ_L]w(EZ/Fa4 jZ5K pxp#ĻCZ(?':ui4۔*Ir=|M/b2x~K[ ,|R]Jxc1Ǥ\ NsC8>ibJMVkV3?v[_ Ujy&snU {P\oE.o>-"k?W?eo>&h4zC:އy״9,-u]?^Q{b+ʳn+^'"~CWi`Ij֎!PuaJ.Jp' p_yqp|&iᇥWpΜbg(?iCPaڟQh.6|!|1|H~ki{M6 yuy#Ӯ]YoH"~kQ610R \ƋjcKjrN3riÎ4YE8 ҃1 Rx)USJua]I46sB.d3Ə9|ItPeGt7pUqhP@P@P|7ÿ=B ( ( ( ( ( ( ( ( /7@P@P@P@P@P@P@P@|@P@P@x_c&glٝ?G_SZ%ɸȞ+<9JF(>_~n_>"%KPe.d>Ex2-RYa7Iҕ&{e xļY|bŨ}y`50񎒌}S}lV3QRP4pY!g>OMKQ9ٯ1UY~ڞIv*Pr/ (CK?'A?GO3|wY!_P@P@z;o( ( ( ( ( ( ( ( (:;PQrݳaϴ@P@P@P@P@P@P@PP@P@Pgu [F?^tO#5kxw՜~VGqeYO52+$nRDx#kBl5z8=YaӯB98TZJUiYt2Z$֨p،.B(R̮xK4*X+sXiԖ Fus獾\U|F73eʤ8dyگ[ IZ*.tX\e]n͟?_Qosr k.KQ$dYh~oT8+^iJ^ڽ_N8M6nkk=~ *0-|6URv<6S ;|gWׁ.#A/1ěk]>MǕ&ߴ&`Upk:5捿II4-q9+s^anIM9eK^៬Eqo4 >>M |M x^92@5oqRl\d,"$y4ѦiR N3KҌeG!Ǹ2ViM;:M _4OJf',Cҿi_wֿ i޵t|=1' ;Lo5FykQxW9C^7î#7ZPcÕJPp_.SRIʖQYǤӺugJ5ʕG>qS/֩x}/_?êT㇥^ߝs?DvM|?J莮z ~KT#_.֑xXy, \;Y;Nu(ԧ40+&-/dy]7_q#f(˱4j{B6Xݧ KC޵s $f<{q! A9[^Vj!fpm EIGe(xC01V,nVm{-)][ލ즢G+Ŭ,*Ng'8 [.FiKckÕKk?K(PH?ߵ%:XC\|ؐ|+c,|콯דrZ^ ׵?SgA;כ2t~-qZΪ|ևNECHZC:Io:֧ Z#+?SF7${$PIϊ02MI77xdjE6x> ӌ+eHmibbҷ$`ob%~ٚƍoq4Kx\@x#D,cwn7Gi$X(o-*Y=!*Ғ(2Y!X&Ѷұ/:A>.u1=9ww"Ƈm|Kv-eE^[^ 墧qUh|FZ*SUayDg:,^`:VR'(IsJ|\G֦T t+F|VG_mJZtjcp)ԍ5 u}innn~yioiBK,3<;3f%5c1Qs<1RQVmJ1KD%Z# )Os93)MR'w)Im5!_?׿huG$?2_&o֫O|%:?=X;Pբ__AZmţn$^+ /u4θ5c1N4(g[N,. Rժ:tYWVԬ׌02py]`3MNXWeYl5lv/FhvV188_fzW3?h|)|_xwF?OW5ox;֚$Ƨcgt˩H,M㻉{𙤸G6rʸ~'g8hRӡ|4iԛ"ڌJ~QN- q^IvI=ȳ0،~Tbysb+R7) ~jigHP@߂Nw㵲?g%AZ%Z|[bvr7S8S'.כGRnUhNU$y5y6{9O>hɳM$uq'~-ۗ7ﶛǞ]_Y3es뼿Ů/'}Y+_kY/"/!6ږs Sd~Pu!OarL ;\|F|wF.zz3|QI)8.+8qjGy+bgYݚP@Z?O'L2.wH|/s[۾r$P` (CK?'AGO3|wY!_P@P@z;o( ( ( ( ( ( ( ( (:;PQrݳaϴ@P@P@P@P@P@P@PP@P@P@Pg0nீR_mFi`u?{4v |S[':|%sR%*y֞ ;xCH>.fc`r\괱S,4JG#Tl;v???Z׏_(m;S}cxZfϧ0XZ+[ik,QM'p~oY0thsU8<'C)G*4/k$͇5[/f|=A>.|P晎#r{UZ88BY we㋨E7__$ /x^W5)lSce#ڌj.}kNJ,$M)*Ͳ]n :UMN: SMJj(ե4Rioy/&02T:lM9Sj5ika(b)9ѯIƭΜ'@P@P@__~1x@qs >Qԯ$#t8kckGSM좞Qx`._ӄVYNOݧN U*)1~Qcrl'2̱,6 JUkTi pWZ(ѦVN2T};ZG ]iW){em-m!.&)4MfI6&R%ŴѧxCB'ZJ?[f U\^55iS&&Ux ^#8,-ΌJp2lAN>짇Bt*UR(I/ (CK?'AGO3|wY!_P@P@z;o( ( ( ( ( ( ( ( (:;PQrݳaϴ@P@P@P@P@P@P@PP@P@P@P37Ѿ# C'h&N,E ZFZy=X7ǯmÿ|"CZj  }E ߋC㏇1_[FŇx)F3eЍWC+TpaeK1}pa:Tɇ3ow1مKya[|2d}EZdq$vh guO4{?üPG>'vs*[ Ε̖~>5fėp\hַͭM,De]f!v3 p-\_⧉3cJ%Jɜ 7ax짏-2w=MhTyz.q0Y!8Aѿ?tV?E fuE?$׈l {Y$O.] 0|MnV{&{$6H~)8#\lwT8^,$׸xFm42|$|S~WYlV+Ԋt!O5RTp KV`o{Yü_>|L<\-,˙aynE|u2 qe$SZOutfi.5W3~%hYa&.VtR_J_koCx)+Mo<-?ڠ/71vYď yjQG&j\E{qz2Gg (q6udhp ƥHbsm?5L^adpM:J5#4ٟ )9SƼwCvTj`w.h1Ʀ&VR^SOR|q _ c_ aχ+[oo%[ya~b6=XɸVxO UTs/sN4КFG&ԳNxlOg^vg8.pdxn"E 8EX*qX:Xfx= jթ'S)-z3gl<̍ڸL-LGaO x/KӥPPXSNQlUzp~6chRi^mV!Zq{j1W۩I|r^"+/5#_gS}?Se/E_W'_k/0Y8/o*|Eu؜OB?`'M|Oy濵G}ߋ_O/uOCe/|e֧cHOMy7I6k]GYda֬NQKxW =hgYWa*zM, ʫ<Ò,jǚWIQHq<8,6Ừ [Wa3s.TliJ+´״-F8ptULbH< (] 5_p?$y?Z!?_yH_EuZ]x'/? Qf;jB.?m ( ( wPP@P@P@P@P@P@P@P@P@?twfh ( ( ( ( ( ( ( ( ( ( )e=G }|<״O _!|IxA_M_@, kMuV#WGsOgPG MrkVR8bUZ0SF|+˚WeO<_%*74?>%\8/Lf/[z?վ'GįY2_x7c5?߈?>%? S6mYx~~ѿ?>Gb~Ϟ",i|>kk>56U/w6&x[,xZu]8y19a3<#G*j8%%Jt(R'9υm_x\[V/(hd?z_W?~EV7P).Gg_ˤ77Iies;' +9ekgVʣ^>8e{HRt骭|.soGj}"8:V=eR<~igujʂƩӜY!!c^*6(5;_[k1kkk1_GE%z^v2܁0zpN 3𗎒N9aC.JtE:N8[K+ŴXx<2CNhbx\*񪦪\O}x;*Y/><ؿm9߁hq' RhiqE߿O}x;*>#݋?/~طa+P_|MW.ۤ6[Cnã}sUTC\-m" BÅkxUdV8iae_$΃efsjq/Þ+'s8rf*us2ʽ4a8fS*{?*xFNgma㨿k??*:@.Ug %WY0R~9K>(?W<^˓NK[C!ҏћGxgO}(*{^o{s_S/oPwqt>,iܗ Ul:1 :vQ^ ; m<o[C^>5}#/m]nXjf<t?}rvײ?? `_Hh W)'/ŏ?A?m3~O֫~O'A@Qu#{և_4O*?oZˏB ( (=CP@P@P@P@P@P@P@P@P((ٿg ( ( ( ( ( ( (( ( ( (_ })'oxFok~\bx~ZJzeݽ'JTxw%bu(b9U:1oԄ}=̟CQ,sGϨ2y'C4o ,%B8Tk=?^"W Y^$c׾ |M\>*MR|Bu5.&N/,<^y+c x*^9I<'21Kr{5Ia̫V/YXXJx)Wڹ7'Soocoq?9)8k 7Ao7 ]Qn'^</! EGs_hIe d~#ꏫq?9)p_/;A濵&/Um|mcO)yn\lUx,nt 8ZǼ,~%,Tiq~?/`VU[C0 ]4⽯u9GUu-guK 3G2rdI ]Vq9aKrLbH< (] 5_p?$y?Z!Uaa}Yiz]ޥWvvam5oieein\]]\IG$"E3>HR՜)ӧ TR!NNS&F)RJ)6HZ*SF֫8RJ%RZ$ t9MFrI6?'G@w:|Wez֞#բo.֩c(:|Ɇzl54x:'[ޥ*ޱrsN5ڱt4ӯB[n "rc7 Me,9)a%3XTqupӍL4+K]/It{EѼ1XAoloIEM4`4DHUUUUF.\N*\N&Vz'VjwJ*9NsRmapj, 8l.:z`aJQ:tEE-%btP@P@z;o( ( ( ( ( ( ( ( (:;PQrݳaϴ@P@P@P@P@P@P@PP@P@P@P 7ot-K > a{[zGy=Ŧ躍ŋYj}/D~jk(gf62us,5W8W:\e*RN8/ΕHg-nCY}<5lnMdx-,d*ԭCJ 5eMSJMm4|[5MsSuk 5bTյmSGPMOPQo#Mu{}{u47ww2qsq,M#xWJ:th҄)RK:tӊ)ӄ2BJ0RbI$qWzjV^έjժέZgJu*Ԝ:'')ɹI(#{ EvOpPĵFF?@*HQ<*?CѥO? =`7_k pPĵki|§ u㯊&~'G˟xw#|.&7Yx&Ǻ-F[xίjMma5ryOE?o{Y?^ &:xēдNa4-Z~oa7x#.;k214)/bWaSXZEJ)RRGd5T?f]Зq/eeʟ5j򋥆^)~~L/>02j5Fo-WW­ # Dy]ГĚų܃>j2Φ UiTLR hSXh FJ6ZyTUg qNc]S8T{WjX8ڥ 7%NT匝9t(Ֆ?r,#I$M~V~G@P@P@ 3pP ( ( ( ( ( ( ( (?AGv>P@P@P@P@P@P@P@/@P@P@P@Nj>|(k?> |ih7g/kKXS[/oapW-Ś ob?: WI0Q+)@ 7ѱ~͟c?Ͽ@D ? …ؿf1CGRgx??n ??Bl_g_j)3N+מ+b5y}#Z"NHF9UO!I1bX[˰x\?`pj^ҤT(B*~ҭI՟,5IrmsA@P@P@P|7ÿ=B ( ( ( ( ( ( ( ( /7@P@P@P@P@P@P@P@|@P@P@P@P@P@P@P@P@P@c? ( ( ( ( ( ( ( ( (~ܿl~P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@z;o( ( ( ( ( ( ( ( (:;PQrݳaϴ@P@P@P@P@P@P@PP@P@P@P@P@P@> xᾑ~4&m#1O{cgQI/owbg}@@P@P@P@P@P@P@P@P@~ۗ[}( ( ( ( ( ( (>_ ( ( ( ( ( ? ?hO:gW㿋5/h:_m't|:-^Ӭ|=X\xN*(G¿7E(HG߅A|$#">+|#h#hqraxc-1y|'m[DҴ[Z85=Oׯ5+AvP@c? ( ( ( ( ( ( ( ( (~ܿl~P@P@P@P@P@P@P@$f,nTG ( {|s_?g7h~'_QXK_ Y^7y=`v(g TUߍ=_~k#kOգt55_>)3x_C/O׾(?<o^xcḀ:[_>߆o&ƍ7ƍXß?Ɵ.kh<--[Z?|-X_i;/?[|TO'Qu&?O' /ŏ??^3xn 𶥪Pc>|=A|Q*>&~Пa(ѿe~)|#oN/sx^05U|c^_-6Ú΢#GmWKxĿ|#c_ǿwg;|@wwZlvXj_P5!KM[Px "?kg>P|85Yk NyhIT3sr4]@8>?~^ÿNVOZx0~ ;Ǿ Uo |MJ-D3ZXOt'wo?j/_>"#CO^!ij:fcg/+IM/a5 5bv>9?ƿoş_@NJkiI|+\ޏxgÞ*xȒ{ SI.uM;VNLԢ r__|AoC'"_o SG_K]/H}鱵>:f\i)>?)+PhY8_Ȓ > ܻr]c}q@P@~ğ>~J߂_~9K~$]ּ5o }UsE_<ug 9ڇwn w}atb7?bE6 uڧW_ug^s|&~#hW^-] {e?ÉnW'zĠ' '}/#O?Mo'ˤGV|W챤j?(gT_>x7׺?-I|c[]}b#6ey~>qO//?txG|A/| |ACZ6㧆)g⨏Q4oj~!c=d/&O5=#׾i͡|NG/g/Tk7ڕ 5wǿK?~I>T߯|)^#NJIxtm#g<]xZSľ<|?׍u:-6hW[&&?A`{ _~Ʒ 'h5/xV'DߊQ<煾'O? ǦVV rR/ƿ}@@P@{,MlX=ڰpoߩ ( ( ( ( ( ( ( (:;PQrݳaϴ@P@P@P@P@P@P@Psw|GLp@P@6yQo ~ʿ(ʀ ?x_^, Bw|MC_~>7Í%?[>9Eqyu36wwmR-PcM cU?VO|IayQ/:|g1 h~!7?]x;W?:5mv[?D/*W5kGգӿ߲sya33Ws\hxB_u)=cL _k7 % YZ?3/E><)smO ~Ο h;]~&|iG|Wo  ?xJ7˫^7{k߇W~?|c?k~˿?KOXѾ ԚMI*GѬ|;F;BM7zT:CEPÏ?o(_tJהP@J06աz o>&iPo ~1W&>2_L_?|GwǁYzwĿZ?luxOf~!xũQkq[(ҵ 9q[BuOU#|{j__7D?rjG?هO?,I|43|Mk~[? Yo пo__?m/].ןuKk<kT{|Q~%EI5|,Ivpƿ%8Ҿ!4!IPx㇇Ŀ> #B?'_~),3⿊߆|(ls^Oiv?m;g[\`t"?kg>!N @Ow noti Gʬ@ЊTUP 8@ @P@P@P@P@P@P@P@P@~ۗ[}( ( ( ( ( ( ( U$l#ݧۥ6NǦ3ݰ<%P@x엣i?q~4tJ> osFn&'O?a?oC{G~ x%ӭxAX>s,Vv "z_amIg5~?gOͥo Uq%Z,$>"&"5(u5{oѢ[ ßJO>>(? <W2_kZxW|3隷K=Eu]꺂kظr?d?;_#`>=jzE~4|mJGKdžۍ> (*zc|?~͗Pj8 `|-Fn:=ߗ{xǚ[8[^ >x/녺_ ]V]·?%˦z|%B'o#LdW W5-+R6jRiΓ&  UcG]}g|m技b:;o4TX~V?u߷&wh*36E@1Uw*?ኬoLP;7ӯ`_ڗ03kؿo,Wx緓Xu(Ԥɶh$h@>W/}Y\7yoޟg"d'!Gxs?@"d?!Gxs?@"d?!Gxs?@"d?!G~DwO?Joڣ5z(oC:߇|Ei~4C;Xүoݥ_ig?X\˺F<[ ™l=j+Cx[[_?hkt>MD}-)ubxS*Vi{jR|27)K1U۴RKD},%@q[.W&n EocӥBVjΜyTRW'?!Gxs?@ <% 2,YnX~*@uzYZFǷꡛ2I.P@P@P@P@P@P@P@P@P@P@?twfh ( ( ( ( ( ( ( ( ( (w?cnDι?>_hP@P@P@P1(|?P| H?CH >~_>5G?i'oh }P@P@P@P@P@P@P@P@P@P@P((ٿg ( ( ( ( ( ( ( ( ( ("._OP@P@P@ ?k?+B?70GR7ïpyjtx{$~QuZcC)/?pG_h3P@P@P@P@P@P@P@P@P@P@G ?n_ol?? ( ( ( ( ( ( ( ( ( .p_H?_Kh9fP@P@P@~.JL3;a8?CuZ]CVbFv0~@P@P@P@P@P@P@P@P@P@P@~ۗ[}( ( ( ( ( ( ( ( ( (?/e:-~@P@P@P@pAR//#L#|:XN'7P!~֠GGPզ4>"ݣ' u0P@P@P@P@P@P@P@P@P@P@P@?twfh ( ( ( ( ( ( ( ( ( (w?cnDι?>_hP@P@P@P1(|?P| H?CH >~_>5G?i'oh }P@P@P@P@P@P@P@P@P@P@P((ٿg ( ( ( ( ( ( ( ( ( ("._OP@P@P@ ?k?+B?70GR7ïpyjtx{$~QuZcC)/?pG_h3P@P@P@P@P@P@P@P@P@P@G ?n_ol?? ( ( ( ( ( ( ( ( ( .p_H?_Kh9fP@P@P@~.JL3;a8?CuZ]CVbFv0~@P@P@P@P@P@P@P@P@P@P@~ۗ[}( ( ( ( ( ( ( ( ( (?/e:-~@P@P@P@pAR//#L#|:XN'7P!~֠GGPզ4>"ݣ' u0P@P@P@P@P@P@P@P@P@P@P@?twfh ( ( ( ( ( ( ( ( ( (w?cnDι?>_hP@P@P@P1(|?P| H?CH >~_>5G?i'oh }P@P@P@P@P@P@P@P@P@P@P((ٿg ( ( ( ( ( ( ( ( ( ("._OP@P@P@ ?k?+B?70GR7ïpyjt=?(ZcC)/_G_f3P@P@P@P@P@P@P@P@P@P@G ?n_ol??J|I~?- ~'xេxw1_'!xǟ,p[xjBmfou] ɧzxC%O~:O[4ý(~.h?,7{ {?~zg퍥wߍc[j^}{Bÿ<9{w OL A)ἒ_o? ]~/Ÿ/tG=G/ |VTt>aӯu hFȓƚk"ҼC>~_  E|Zk~|i- >"6.u|G~'iޭx[K>JԬm">/f>+/ s oٓWCּcxKOE]4="X}=uOGonYtH%ßBu֚mgw>O~ȿ -KC]xcğ=eAwhyOү+-[H #o|UK~@oMKN MF Ԛ't[97kmo(Ŀ|dO^߅;ï >ơb1,B᷏Tu]>-@u~rT'Y_oGx_GſG>;ž<[>ov@~ҟhۛ_|X7Ÿ(= oWMF⮥VXh YW=ޯxZx./u41q|+~~!eqY|5QCGGxgO4_) j:pk~m,k__[M~F6_WĽO_;Y.s|<iw-.P/ia%]c{anxG|~[go<#]$W5~&0> <3K^ -WS@='+a|_oY7oV 0z0|'{3<_Un.OJ,CǭQB~@?g5|B ( ( ( ( ( .p_H?_Kh9fP@P@P@~.JCV#gw)8ƺ<=?(ZcC)/?G_h3P@P@P@P@P@P@P@P@P@P@G ?n_ol?>?_%ꐹ S?P|q]`>kگoѥѺ+375I>*4ohz|wMԵ A-m|E=z~Ofja` +߶c ~Ԟ=?hkp]oGk>|xQz]>ၼMJߵ&kV`N~V/~~_g~u&㟉:~?1:GIu.u; O|aC-ZD"Z/&71pj)0<(xo^Wx/h? =(д;]OB5mcqz|Z^cdN~V/~~_g~u&㟉:~?1:GIu.u; O|aC-ZDKc_xuŁY_-ݿ| vgմvmBLZxnlB\T,74 /cEc* |_?k?wm{G֫~7~'8|S .[^{_v??֩jJ?gF;r|lwwgǟ}3^,$vv>lV>'}/O/-@?PzƟWϊe*W&r||^>Joյώ_^⟆zƍ7+[2)xwž,ܺ펱M+s|AᏊ<_ģVT-9oՃ77|]0m߂߲oG'7_hP@P@P@P1(|?P| H?i?~/(|P|k#LOH:C( ( ( ( ( ( ( ( ( ( (:;PQrݳaϴ^7o?i/Y|>w| <^爾x?ľ /%V-F񽞟i^+Ӽ?v/x2=q<? zW7oAG*C|"澀n؃'TĆE}ݿO ?b+ߴ7hk |S _<7vӮ|UMU,ijZW|oU>%t˿ xzׇ?A ( ( ( ( ("._OP@P@P@ͿWŸ_\>ږ\"|⧄{Jbf _vŞ}cQu )f *d|Д)G*4~Cӎrs[TϠ熼Axx9V.YmdSC)>h޶U*QV1aЮG$RJ!ԯA2Y[rm?g.i4NMnL? ( ( ( ( ( ( ( ( ( ( /7@?Gso&_cSd_  gC'l/ DOj.:Uɘ?߅_P ] 8~>!i@<q.+t|BҀx'H]WͥO9 J?s!w_+6?B¿WG/m(?߅_P ] 8~>!i@<q.+t|BҀx'H]WͥO9 J?s!w_+6?B¿WG/m(?߅_PyU g GwJG=3B1izK&$gDY*u3m]P=`|o@=`|o@=`|o@=`|o@=`|o@=`|o@=`|o@=`|o@=`|o@=`|o@=`|o@=`|o@=`|o@=`|o@=`|o@=`|o@=`|o@=`|o@=`|o@=`|o@=`|o@#E_۟2/=$'v)$)ǯWkO O{/m~/x"?B;l:X~=`|o^FiWytFiWytFiWytFiWytFiWytFiWytFiWytFiWyt_,ux>2phMW*Wc?3}S\^OKѴm.Q5by(MIƆlMy(8ѡNUjIF)MB2j1Mlr0\&ܢkmde էB G: 4cS^%VNnsb\O_/W×1 |3 7[Υ⯅_?{O%^x~Vk;}fKt}FNUUӮ^1,>wgj̲P^XitQj)ҫ(Ռd҅jo+;{}gqx/ܪuO/1U]| jc)br\)MT =`|o^FiWytFiWytG|g/=ߏ67f k'Mpxf_jºeύ|E}VSu}K\kPʘjYߊpٚSBxz  VEIҩ(EX4V.^.<O/θ"R晶_p='&fykД*Z9FN1US(?P꿇>| #x?FgG<Z WPдO:]۵KJ춱}mQG N4piP RNÚNrciJRvJm[gqfsg;5q>cqƕ<=mT^J|%J:q!o0?J7˭Nүүүүүүүүүүүүx7Xwg߇dϋZO5vm5gOjz;3̰F a*X\?'Q֧B5)*h6}_pWgp;>> -lVN~_1\؜]JXz\,"#(*p7/xC>>.xF}j )iٚ晩hf˩SmTS,̰ a*\GS'MVBwE)MjҺѦo\Cf|XJX'qX|m:_~4p*౸zԗ$ӄo{H*.ϔ{H*.{H*.{H*.{H*.{H*.{H*.{H*.{H*.{H*.{H*.{H*.{H*.{H*.{H*.{H*.{H*.{H*.{H*.{H*.{H*.{H*.{H*.{H*.{H*.{H*.{H*.{H*.B,G=7_n +,>g GY9x_;#w3v@@P@P@P@P@P@P@P@P@P@P@P@P@|]"w~eߵ'WğN%?gy<%G(gTw_Ob?.?hNgSg_!@?rg^ ow>{v~ x~/.~|9}fQ kAek * {5[Z]xOwČ겡Rh*Z apتS+:xZRQRIڸBrS2P\1x,.BscթUNx\^y:SgRe[CP?Oſ&Ex6Qnk qj74C_;[+rPg8;1f7cU15aZ<4g$(U\ܜcWgG.xWpy~''`0s,$sZ3֣GR<,(ӫVHʬL€ ( ( (8cP^֠)_i?~'(|P|k#LOH:C( ( ( ( ( ( (?AGv>P@P@P@P@P@P@P@P@P@P@P@P@wQ{ٗ~ԟu^/;ؗ4 oSj7OQ߳|g?Nuy8k͞MOӥ~  ?k?+B?70GR7ïpyjtx{$~QuZcC)/?pG_h3P@P@P@pAR//#L#|:XN'7P!~֠GGPզ4>"ݣ' u0P@P@P@P@P@P@P@~ۗ[}( ( ( ( ( ( ( ( ( ( ( ( ().?Gx^$w>.i5</֧*??/Gwo=gJ 9q5@?p<Z3?J4 (s>~ן@> W$~otZ`韡o_w ?d?HƇR7_f ( ( (??CytZ|__GOզFuwwNo?CA?Lh}1?#|EGXN?h` ( ( ( ( ( ( /7@>%x7gg5g=Z_J 69 _Wg" ;Hҭo5=Br!O>>6m7*yI_Vo9 7),2Ib<5"eBykCEOO9 ?߱?k/rϿc_>+*~_(~ƿ:|WTP>tY}_S!@<5"eBykCEOO9 ?߱?k/rϿc_>+*~_(~ƿ:|WTP>tY}_S!@{~;;Yை KtmG&WֱeM, ]iV7؋Wxi> ( ( ( ( ( ( ( E(˿jOQ:?ϿK sxKg7ʏ5 QG'Ҿ3Ÿ'q:\M~<5f&֧ҿM?B \?j~!?V#gw)q8ƺ<=?(1a8`? ( ( (8cP^֠)_i?~'(|P|k#LOH:C( ( ( ( ( ( (?AGv>ާ6𷂵{+-CMyx7] ^>'ڵ<H xVFLn,t{Nk{Okn[^^\Ciii 7WW2\O+,P JK,g_گgh hZs[?/1rh:Ms^te4GOKlo $pOt hWitK>$'u+-@Mk湬jS[iNqoeaeo5A(?o >%!$.bTе{mJONKIg4'xW~>'|67g^U–~(#Ś[].__Gԯyh澼(t)i&𿉴7>'+-k@YCh懬i\ڶi6naqqeeq լ,r0Q}q*>gi7>A όլ%)ZjNLJ$J:( ( ( ( ( ( ( (_̻xIĹ?LWO'sxZ\P~"+<)wcG_lojx+d(8cP^֠)_i?~'(|P|k#LOH:C( ( ( \?j~!?V#gw)q8ƺ<=?(1a8`? ( ( ( ( ( ( (~ܿl}:EtObcs⏍Ph^ Xᯆ|__x~C- /!Og 'H|>׿SB'_ kz{'>7hU^7> h/j\ܦ CG5EtO.?_?'C0xOXxO_4}|D׼a~Hľ"S|=_ռ/uxcPĀ/~ͿO69ُ_ :)q1ƞ%kG֩(u_[~ v[/<CĖ>}?ෞ$xo_+_''-h Sɟ G~ i"x#d c|*+xZ8֯a];g]wY4&:mu\k4F#4QwVLYxa= u{'M,c׿wa63Gu{j7fD,hx :N/~W+i]7uws#?/ JB}Yj6:^pK(/S?]nG{:ǯ>k?Ϋ'ǟ35iĻ__z_,16mGH{PbV__3%|^?ҟg}hii<`~" / ` }ã @Ÿ+ G&Ÿ_🄿io+OSxO?>߲v^<-@|'O>)J4 _Sմm?X:<5~w Oо _k>xQ1k 3k-}#WRjZ,Z\/:z_~}|V?wj xf o~| |e+V~:v__<'N?|9oе_QKOŦ`K &3x5 ( ( ( ( ( ( ( (_̻xIĹ?LWO'sxZ\P~"+<)wcG_lojx+d(8cP^֠)_i?~'(|P|k#LOH:C( ( ( \?j~!?V#gw)q8ƺ<=?(1a8`? ( ( ( ( ( ( (~ܿl}:Et_P%x)g?W,xZ־Ygo4 A6Ѵ k&K[ ac >,57[f?Oc_؟|;+ g=kZV.?tM6'[>k_FFSgG<]er7.üwy꿳;3Gn|__cfO2:ߏW ~ Sτ,-,/7w/og? >Ykæ>8|L #?,_ C\al}?q@T~IP~+x%x_aY /fX,߰W>_Om<?_7; N?? { 7&_|k?cfaW~P ?%O'ß)O_Eg->/់h*ڳ? >|>x;zƚT~5ߎx:ǟx{BZ<\ڽ:$79j GeSd8oX?h o_߀־|Tcictk'$+M4 Iao^iP[Zj\]C'"p]c֍bž|^\cկŖ> ?|6>?w'fz+U?|e0~ fj:vxgº|,.|K<%xĞ +Xu/]3U<=۟io ſWk~>2/\?/>QrDu+~#GB4|9h m[[o#f"X:Gc-x/~ |9Y_AtwGW[~¿',|13~˾ iM!>kk5 o,>'~O&%Z|A3LMͮx+=l*7Ə|!ր?@( ( ( ( ( ( ( (>.;oo2ړTwO's\3_<?jrs Bw|f;tIo_O' ٳɿ3tOᐠ??CytZ|__GOզFuwwNo?CA?Lh}1?#|EGXN?h` ( ( (s>~ן@> W$~otZ`韡o_w ?d?HƇR7_f ( ( ( ( ( ( (:;PQrݳaϴC |{>^9O ᯊ>Եx]>Ykwo=5o _Z?Bh<~Z%m*~͗4oq'3vOx?EMl;iʼnx35?wg8j?k4٧%pdi߳O,KӿfX?P ]ѧ~?/'Nb^ @6OwF4ļl;iʼnx35?wg8j?k4٧%pdi߳O,KӿfX?P ]ѧ~?/'Nb^ @6OwF4ļ:~Һ%?h-_gxkѾ1 >,|oh^湫d7-ιxf c^ޙxO>W?,hW?,hW?,hW?,hW?,hW?,hW?,hW?,hW?,hW?,hW?,hW?,hW?,hW?,hW?,hW?,hW?,hW?,hW?,hW?,hW?,hW?,hW?,hW?,hW?,hW?,hW?,hW?,hW?,hW?,hW?,h>?dIgZYS0u_ kxImKH,m@ף&7!pTʔ¾ B4bhNEh'+)V|oҿc%1O+r-,v&i9fueU*ե,0*8ӥSJC _ocXٟ _ocX _ocXƾ gO|[ڇ(h״gW//nnwsysk;k_ɵiN FS0' F)Nٞ %v~7'؊ԨQVHRnhGciJ1Wji-ZA|'?gZ '5+FKd^^[}:gxE*;P3%IJ5f~G*grURiOf(˖Q]OT _ocXa _ocX _ocX _ocX _ocX _ocX _ocX _ocX _ocX _ocX _ocX _ocX _ocXD~4^#b;ό nss`_[i~$A> |Mώ7ggf슒W,ud+aƤ4 68_鸧qj_j?I/ uex eҩ -t1ywX e\>OQ#Z:CK79 | %|j)0Au·"٦qàGexK"Ş#M|"xgTIb1+ԅ9XQm>vVY㿈9W~+q_d<%4Qw(ɪJ>J>J>J>J>J>J>J>J>J>J>J>J>J>J>J>J>J>J>J>J>J>J>J>J>J>~>,?#^%D| "~?p> ?O?8xwH<;ςo$O@@'G t[I#P:|-ÿ(>D| "~?p> ?O?8xwH<;ςo$O@@'G t[I#P:|-ÿ(>D| "~?p> ?O?8xwH<;ςo$O@H/7_w߁Sco=;Z3X{ _8G`a^U־{RuksssOK⸗kXrYgԿ9=;.noe콄m''@'G௷? t[I#P:|-ÿ(>D| "~?p> ?O?8xwH<;ςo$O@@'G t[I#P:|-ÿ(>D| "~?p> ?O?8xwH<;ςo$O@@'G t[I#P:|-ÿ(o /Cn{#7*lm?'U Cfz]_Kc\?~#xhL 0_P+ʿ֯~jTy>nnnwI~TWUK,''c}e콗>D| "~?p> ?O?8xwH<;ςo$O@To Ka_ǿh: [~6Ӵɳ'4qi{1uçWw콶FIjqU4%FgrD| "~?p> ?O?8xwH<;ςo$O@@'G t[I#P:|-ÿ(>D| "~?p> ?O?8xw~- Uhmߴ~†MJh]c+ilˇopoTi S%yWZJ/'խI?O/S_cYʩeRXo̹?|H<;ς\o$O@@'G t[I#P:|-ÿ(?`f)G{A-D| "~?p> ?O?8xwH<;ςo$O@@'G t[I#P:|-ÿ(>D|ߴ|>||\~||xPeo ]=gk|>//|I< nx k7'gn-&kactq0*J 5n~gNMC/+*wG8ox+<._<-)cq}D| "~?p> ?O?8xwH<;ςo$O@@'G t[I#P:|-ÿ(>D| "~?p> ?O?8xw`~۟C ?WFh|}oÍ;"l? `?iO`4>_ھf( ( ( ( ( ( .ПWo~1?Iޙ~_?Z3B ( ( ( ( .ПWo~1?Iޙ~_?Z3B (?>?>h%e.l>ROx~ WQʶφKizBO-o-hiV5¬aEN*J5hajգQ&N#RZQM;~YOUf'Z#WR`3<8:(ᱸM|.& *ԧ8ɣ Bw|f;tIoѿO' ٳɿ3tOᐠ ( ( .ПWo~1?Iޙ~_?Z3B (?8 .X7ú߄u9? ^5 VFRѯ4ǚhEB fUQ:w Tf8:u9Ss)S$Q2sL&eټ8mc10Y<q7 O1ҩ aqh¬hiSMF#%ƺ#p}1?#|EGXN?h` ( (>.;oo2ړTwO's\3_<?jrs Bw|f;tIo_O' ٳɿ3tOᐠ ( ( (?AGv>P@P@P@P@P@P@9 Mߗ.i5</֧*??/Gwo=gJ 9q5@?p<Z3?J4 ( ( ( ݦCt=y|E4( \?j~!?V#gw)q8ƺ<=?(1a8`? ( ( E(˿jOQ:?ϿK sxKg7ʏ5 QG'Ҿ3Ÿ'q:\M~<5f&֧ҿM?B ( ( ( /7@P@P@P@P@P@P@_hO+7~^jLLh?-~@P@P@P@P@_hO+7~^jLLh?-~@PR/Gwf]RxI$}b\Pkx+'_9NT~._z??G~Ε;#Prk6y7~ן@> W$~otZ`韡o_w ?d?HƇR7_f ( ( ().?Gx^$w>.i5</֧*??/Gwo=gJ 9q5@?p<Z3?J4 ( ( ( (~ܿl~P@P@P@P@P@P@]?zc32g h9fP@P@P@P@]?zc32g h9fP@H߷wI;U'sOA~O 9Q;3D:WxS$7XAˏ':WP@P@P@_hO+7~^jLLh?-~@P1(|?P| H?CH >~_>5G?i'oh }P@P@PR/Gwf]RxI$}b\Pkx+'_9NT~._z??G~Ε;#Prk6y7.;oo2ړTwO's\3_<?jrs Bw|f;tIo_O' ٳɿ3tOᐠ ( ( .ПWo~1?Iޙ~_?Z3B (8cP^֠)_i?~'(|P|k#LOH:C( ( (_̻xIĹ?LWO'sxZ\P~"+<)wcG_lojx+d( ( ( (:;PQrݳaϴ@P@P@P@P@P@PuBO͞AP@P@P@P@PuBO͞AP@|]"w~eߵ'WğN%?gy<%G(gTw_Ob?.?hNgSg_!@P@P@]?zc32g h9fP@pAR//#L#|:XN'7P!~֠GGPզ4>"ݣ' u0P@P@P@H߷wI;U'sOA~O 9Q;3D:WxS$7XAˏ':WP@P@P@P@?twfh ( ( ( ( ( ( ݦCt=y|E4( ( ( ( ( ݦCt=y|E4( E(˿jOQ:?ϿK sxKg7ʏ5 QG'Ҿ3Ÿ'q:\M~<5f&֧ҿM?B ( ( (B!_iDŽ?P'zgeEA ks (??CytZ|__GOզFuwwNo?CA?Lh}1?#|EGXN?h` ( (>.;oo2ړTwO's\3_<?jrs Bw|f;tIo_O' ٳɿ3tOᐠ ( ( (?AGv>P@P@P@P@P@P@9 Mߗgb-.i5|/֧*?_jW~>k.eo߳3ne#A0^2I'<)wcG_lojx3/Nkd?3/NhĿ;E?K$?LKA/Z?3/NhĿ;E?K$?LKA/Z?3/NhĿ;E?K$??o4ZԴo럳kͼh/|R۝6p1DŽ?P'zgeEA 3/NksLKA/Z?3/NhĿ;E?K$??^&5$_gy{[M +֑̏i_H1"+|3AL3;a8?&4$gg{C ˏ֒m?i_r-s#|q <=?(1a8`Ŀ;E??K$?LKA/Z?3/NhĿ;E?K$?LKA/Z?3/NhĿ;E?K$?LKA/Z \?%چn?cfSK)~ x$]lܬg*A?ϿK sxKg7ʏǯ5_r4(_x__Ï~ǾO9x>~0@v5m;6MjCѦ4]4o:u| uEK3Ag@N" w ,+&|T1NYO LN+{O/sXT_X75~|MdOm}Of ۟?Xױc>??i uEK3A?&I1[+-3s\IpeH&epɸG,9 HB/cVӴ9~|IҴMM@ f5?_-mT}hiZ:捤ki@P@P@P@ xGWh ig ^g?_xAw{]sHyI59| YtZO+]M}WU֮uMHG:P uEK3A̿'GmWI; wϋ G>*hw'ZN'~WxO]'ս}orr{*t/K mmo?H>&WX\'U쟬}g_{eW4G:WG9/Ch,?u  |n`῍+;߳-N7Լ/x2O^Ou qwu֍隝 >%Հ9A|U%8'{OÚG<3_x7i:-Xa<'~Cd֭=m#NKC[w_T`3??*/_|A!t y[to_i<+OR4{jVVZ6&]G -.? ~)B7 T-bhΌd͸&Z q'B'9O8L6+}[s6eB#N_aV{*{9Kqe~,?oO'eAȞ6|O7YwV}k¾ Ɵl|?sF͊60mdU/&8/ `jpקW<\|u(Т⽜!Uj黹kk%4xŞx8+)eauXiᰙkBOqU}թ˖Ҵ/QN~fh/~U[|$ w?K.$82K8ed#Kyh |On1XiO~ſ $Z&߇~ xt 3Z/̖ڶsiz>4BsF5o`_ (>@a/~τ~&'ƺn_jr^ W6??i uEK3A? s_3> ~Y|@Z3s~4_s8ԝ+g/+ç-hG#:j"Z_pW4~:% |7⛍1żIǮ%(uA_V9Gwkh*£R___٫c/ SO"?ں o_ x]x &>;?LOu/Y}{a7?4I6WV/[K*%GIVUԯwv_Q+[_2Uj{JrÖ1kg^%?_RYP35ïT"v|M?Ǡ8eՏF;ܦkk(|ma^Iv%XKgquY^i:Ɨqs]RzŅv77wFI( xWU𞥨iF]ՐԬilMݭͨ/A4[n\~3RRel.au^Lqy\9^+ׯN*xOQE{8B<4"wrKh Z0AtBoۑV++)YO>AG PP@P@P@|}A-nbۢVʈ-ِY̟ޕtP@P~տk/_E@ƛ?jXx:O Z,o|1|?CvAj?߈}gߴψg |/{_gBk;{ wXx}o7D/Zfm;Ekm}։iq5Ŏx@-"{ɬ4k9ooc ~<9@hP@P@P@P*??goVROǯLm7w>:_|  ~о#W.>._M&ԬEjxB/M@PC k O`B>;Ҽ.wg |<2G߇;ᮯik>mSڴŭwwwJm'#UτdٷVu☿eW|IďjZ?KLJ^غ> d|9impf>W~z|}rGࣞ_O~Ͽ o|1>.cEG?thTď _x1v%>/7~/\z~}?Ó÷Z%ίieE&6oamـ|J{7eޚoC a>+O5k jdǬ躇u;k6Z5 ;/ɻ'f?R/?V\[u~3|S/Ckw/bKVѼ%^+,.t$~:WETPmF oX^O*o's~xa_u6[%-V;,b#k f3x|8nϟocIw7㖵/=to>#K? h mvO}~3']54 ¶_KjZU~YP)kZK@?m??KN( (Tɀ~-T?h_o|u*!gg  !/;|G\|] \MXE3]i,_Κ?M:?# _.|w7x]co?^yexw[?]_? |4ڧh5k[Enf +O) Gkxǟ >n1~77گ>2+߉4ԴW>a9?u{|`r|2X?o?WE>$G< ڟT~k//:c|]Dž9_<-y&t5]bxg7Ifz2~ֿuS|K}h_Co1o h_5><)e,''nK_J%ʋ\MNm.OM[ a'~?e&_B|o |,~.ωI?Z7|1]C}gEm?{yjF) M Ŀ|{sI΋[ke;oO |ֵA4K?#]2WֺLJ5JkhVR?kطX?c ʿ.u?bOثO|g|QOk1 l#g.翷_q_}o_ [~~uo+xR47SK-i6/jiEPMu}B}<O%4x'D_6>x>+)AMcwMW#|^GEt~x{QX5MSX}q^ &WW@թ (< \|bw*4xRǞ?|Wj~c Yuv׺mص++kjwv7>_wm<$N,?_jC0f_/:$׃%_{/쭣xKGмWX\3Iu&Vڍ(4UO[,''>Q ¿ */m<oK{:[9EW:wXF@-g8;qY?nēxo-k_zߌ|F~ѾRx5ڔM  Jf(=#k%(ǯ Q@վ+>|G?3_m{DsI} Ŗ>Y+]GK_/S|e'>1|*5i,3[h]QKKn,t]KĚiMa]Y{x5̠ cB ( ( (9[Pk oZ[ fL0 {*FB躀 ( ( (>`bXcĒ}I9' (<߅5| o^ Эh5x?X4HmIo (b ^Yyf@~:O~:g/7coĺw(|?~xQ[ ({cZ_JiޑxU:Vkt?π!Z-<-Y8fkMo_{j7_\~'k=RJ5-O k 1]~1NCq oĘ!w _G#}?ob _٤~a(eJ<a wG?tF 6O0lF %$i4"J;{JsnxJ7ndkk_Oc/;ßqA~߲ſث_4ggo?Y⏏7 x[ŚjVzM;S^iookf?pdoN/ q*|"f|>xbmO;y}u]{{{xX]՗O}WS[+ko&0SFn-?hwoߵ59OD><~߳GǏ~Rss/?į'4V7u53R:~j?;n_)z ޡ{Hԯ?!g/'{0?[¯Yn^ ?f|R]GNeGjQAsx G/2+;e@oL~ſw1o)o쟠jW)R_>Qf>(2{y z4&sk&GgJd A,|,a?Fi M%x'wm? K5F5Hʺ9f5MO$*ROfO.tS8^焣{ZJ?;t?G;j?'OڋQڟh[^&|iZi|P1⯄>%zV *Q—wVVWf\X]2O'g#N~+xƟ>+|V⏎4_|V_Z<{{GVj chv2&i]{Ωxj)njjG|~oxS^'x3_Þ$ޕx]:4+?$k:G$뿱> o kgc5G}E ~zֳ_ks_qK*K#{TpQs kS/Q~ D V_Hx" 5tOO/E'P>"Di94mI]I%mf)?_g ?>hcx5ucF`6E$٧9tݪBPm])U{4?9>$~Ÿ S?'?B&Z෌C?~ }^/.|QjsI[I-Y'/>7ߌvCSG x+ww .O쿅?|MЮoo4ɵ>tP*[k#q:][inl|SkV^f!?"hA|Q᫭'ZơoH@> (>D><~߳GǏ~Rss/?į'4V7u53R:~j?;n_)z ޡ{Hԯ?!g/'{0?[¯Yn^ ?f|R]GNeGjQAsx G/2+;e@oL~ſw1o)o쟠jW)R_>Qf>(2{y z4&sk&GgJd A,|,a?Fi M%x'wm? K5F5Hʺ9f5MO$*ROfO.tS8^焣{ZJ?;t?G;j?'OڋQڟh[^&|iZi|P1⯄>%zV *Q—wVVWf\X]2O'g#N~+xƟ>+|V⏎4_|V_Z<{{GVj chv2&i]{Ωx }WtR_ ^/ ~2x^ N(+z#^vX>OD5i:4϶B[0~5nog _ǀo? *_ ?ú;~>.|?i1|Sj=+QT@n/%Ѩ jCy |ٟR/;Zs?^k`f;FsX۠j馻PJ2gFKx8]]];5t<1_؇JQO _RKK6~.|Z eLj|M/u]^vr_mN>ķOݏ߶죦x#n3'_h~7o,e}BONE?+뚕Aun?\f?>~<)+P5m#]ծtZKլmSxJV/QѵUuhޙZQj( o~|y/G;]x #xSBhm|EcH {!&6h1ydDV`G$뿱> o kgc5G}E ~zֳ_ks_qK*K#{TpQs kS/Q~ D V_Hx" 5tOO/E'P>"Di94mI]I%mf)?_g ?>hcx5ucF`6E$٧9tݪBPm])U{4?<|5>98qgߴ+|[uOxvSj(p'Yi<פӵ1-曨lFg߲/iW_s׆&h!KX5_>'5Yt;[7u;m?dmN~Z|w[Ě핗|YOw6jdmw'x`V]5K0jTque )QVe(ʟubƼD˂9Sq1Yq&|&Xzx*WPEIb«Wg> F_Otd?~aG7\D9OƬ!:B ( o> ^x5Ս'7M帓5k;ga xG߄I# _Zd"ǶmkLAgFҵ=B?0VEGg9u,W/}KKoi8ԭFݥVq?kJOjVmU+94pR]tڝ>#^z兝װY]4# #UĺqG20#n+)rx_M ?7-WG%xw@?<߉0g&ow-<}_<7~Qwdžcc|7V  oa5,σ?՟e|W=/SWZ>_7[/']WĺqG20#&낿)爿&o!>N(C7\D9O`qy62Nib8m<>zap،F&0thЫRq/?~~7MG~#r/M+\LJ>kvռV:T~(m %^Io f!73Kp^$b/ #gSZݿv6sIxj́%m/7e|BԼ6)j:Ňxw@ԏOSþ 4(Im;=GM_=ebQa!a_7FpuӥfjԧM9Nԟ_ 8KW/d0gS 牎]0jBY*Q ZZT ( |C犅ψ|sOj6RG4o\XxB\_kzi]ɌAvyWJZ)ѣNuUiҥJRIB 9I1NRm$2Z\F"*(SZT*4iSJjq:pr%7&[ ko>d& |55-K5 2QêqyO\a(c1X)^<Q,]?NI-]/i)VE Џ^{)9~ pym,pePZ_(ӫg:.' }oG7?u^K!b< k'Gs jKlf>&qO z_f?]_ UnEp/꯳3grxoo7֪M4# #U.QĊ?}&/> F_O%ӊ?y1M5?Sm?زeeeo  m-mXmjCE 1"Gh%ӊ?y1M5?S?෿N ZS?cߊ:q-x7ud]{fyfGG%$<~&낿)O[/']Q<~&낿)o; = G/~?|#M7DS⏂|o};?_ j:D?c#3.?Lq?ы`8(bVUkUiSaG.RN(C~Qu_MqOĹoM~ǿJ+COo+;d]{{dU)$Y0N(C7\D9O |^xC⮥;OC~#5-V/Ge~mڵ'K}CRxR cq7a3֥1yd13`^,&PxK ^SjHJ^֝XSׂ8 ƹv0YV? y;)g50t,+ FmG.|n꾿%ӊ?y1u_MqOώV?&_A*|Rd|Ak4ou K jĶ6k}54'kl{T^ڗ0/Q/kHTKn} }5'xgk8%Ϟ[yE:3,6`5,ilj܍F7}3 ᯢ VM{\]LW=_Ws̵\]oo/z~g <=^[W14+.ef^ESj4XyCS|ܰ[/']WĺqG20# k# aӍHc/Uє2@ "N(C7\D9O<189Q0F*^Ymld0J5k (`ԔԚ䟳J4> [YFSap53yn.c2,*f80%){YBUЭnzlպ3$Jʹ**Wg:( Qگ ( ( (( (]Gi^X:6gqkZyo6g^j:w$VVv<*$p$B#0TשNsZN*PJ*M9MF1ri$ٕjpj1iPB֯Z)QJ\TV)ӄS9()4 'Ʒa-W3ѼcMg WI6n~ Fy)eG{PsrJuԮڸ^oE/7obJpěpcb^Jy %V.OޖmCmGQ5BVկ5MWTu=OQPu 幻K$yY]vc;N:4J!J(F:tSNQ!BJ1RbI$UVZթZjZYʥZjIΥZ&T69ɹJMMJ( ( (%CGEUkzOطık|cE%Ҿ -FSzuGHN nt˛=73^_[ |:CCo<3? *{ο"G kV2xAͼ[aNa|sXN3lʶQ3NS2T;{:JRJ*թ\yr'gw ptS9*ؚMRi1iaPK ( >(|Nc+ko4L׵>vRG<7$|C)#t[ۇI V2(r\5ŽYc߻JtJUkTvB.Je pV~q.GyV#:eeׯ+JF =(ޮ'VRЅJ|i6_(p/vٝAaKpLbfaq$qi1?2uCo_~e\ y͸%8qeߗ/R)ʴ^Z*I{ xd*w~?,FK{|[9ac>\9{sfIyVYBrYi:_!P@P@PO? <-m~7 ԇ]eoxt+ΗiYxKBN^~UƷci<9{{x313dVqa+)s*?UsWV4a9Bk)b?8g#ʼ.^"q3q83xTx;p?y᪪2U+}?JaLmml,`(IpUaq =]a7)JMΥJrVܧV9Royq&mybc<ʿ 1xNsh0TaJ(F4ѧңJN1"_ͧ P@>8_]{"̼lrwjSoxz-vKxnY6w֞ps9<$TgiT(a^bt(ì+Se r-|uę,Jck . 3jJ*U|`/o<8~~v7x~iw7񐵛}SXqտ>-V8VK rn Oy?jCXG(TrSW3_YҟsxZ_' )U=BW#9Mݧ 7,3PJ8S^U? ( ( (kJ>.S'o3?=*h?gWs3č?|B\^|$pIZfomausL4\uRj<;}˪YJa,ּ\*hNQG&~"Гx[/c|ڕiF.2 5źN[|!ЯUq*ןR//R sS!z^Ge]7,w#i&V.umBok+O 2L*(ѧ8:|n*Q{lf.Y]B)R)S#s:3g6]<]ղ céK7)ԩ*Nz*K[C("/tDּUsF<5aqxž%mtoJugi1ʀpXl6#Pb*F = sZIF:pR'Slcpyv,xaiέjet.Qo.m棪x[s}K \7<{kPG'RKxOj@,!vk_!C/ҥƮZlKIFyOДIQ{+V'<;[z8& ~>:TMF_nʑ>ױ 1͌Kq,,<4L$K#Ydr$;wrYؖbI&QJ1J1I$I%dZ$-?%)JR)7)JMJMMzoVGL ( (bTWx"G|QA|wV84xZ.tcKkw+|mݵ2\3C yxl$ܫq/OkV1`ptR4Ekq7bI5%%6[(keaa:U!I~Zgsxqk6_$P.? kEܟ桨oT핻ϨھBMugq~w¹|I{<h?utOoڞ.҆(VVCd>X#7GRdx˿?~5??Ϳ?j6_ fZ_Lw4ƿGG#22OYFA_ I.Q(6@I?h?3k)2 O~#NYSÊV9C[:s|G\\]J >߫jޟp>1/5LgHc`*^7\W ]G=Ex_hɺx,"+>i}g4rD6#:ׯCJ/uYx^4ɴO*>'Wop|o#7GRdx˿?~5??Ϳ?j6_ fZ_Lw4ƿGG#22OYFA_ I.Q(6@I?h?3k)2 e\jN5GRyU_'_d|g뀆N,AoH_;>7m WO.Ee7a2|,9aT9>jԲuk֛u*i^NQc6s?sS9^z-*4hpԮ.*|)Ԕ/ k]//ChHlWHGG`j]݉TE '|1s~ ?aM11|eso~s{-◈,-ͮl0iWw:Gxqx׫tr3,L_C.9Ek^WˆԽIUp?Gì,0d8T,?5ޮuğ8Lx,&_0xirZIխ^S/ +wW:`3 3?3/+@qBg`3 0̿_J? +wW:>/Q32~7 +&x _ 0QG$?Й'uC/ EL?3/+@qBg`3 0̿_J? +wW:>/Q32~7 +&x _ 0QG$?Й'uC/ EL?3/+@qBg`3 0̿_J? +wW:>/Q32~7 +k@| x/^?m5ʿ $׃niIτүUg[ekX k8SCx.TqOO-| 岲c{u'M9'χ_8-xX2 j:xL\lÌs^TrLg(5ӊ:qNi{<^+uZ|F*7Oæx{CO0iV @_b1oc }Oiea)¹ e/:f8 u񘙷'9|ԜiBIwqmǙs(!ɲU<%ʨ]ar8+uU2RMRK_ fw'V$VWeN U9'N>udNe?:4?<Ǐ_[=ZF>45Xb@ѼZ>iQ[jiZpJ\e4I8']t&T [,V0gPUR`ixWʭmziŸ◊\on.Tk U*T[~UTK euJSR ~83N_{A_(ɟff_/%V;^f (aпX#|]->en4J}L!@? NxK19Y/ N7 JXP[UΤ[TRYM51V'<׫b<4 Ezէ**Q֯VrmέYΥI=e9JNW? ?6EwK:Ohm}ݣ9#PQt| ?R:%G_*̿+?=E7rw>? [GU$GB?Ve͡-qC?R:%?uD /m~.kx /_Qï&0Uh{w\o|şI|2"~1¬C#ߋZ'pॿu^,K1#/f_]9?;-g_ !_La2!)oW?eE:c Y6GOKY/b(G_*̿?=E7rw>? [GU$GB?Ve͡-qC?R:%?uD /m~.kx /_Qï&0Uh{w\o|şI|2"~1¬C#ߋZ'qU2i|@CŞ-wxU[[Uugy;Mҭt y䳱bGD|/:aipN"a'N0\*Jueʤ9rkv}YkYqcGVWS2tVTaN'8R:tx)(^O fw'V$VWeN U9GI뎿@( +g/ߴ|_?𽏇| }io|sm[ʺ<-jR]u=A{7%ExuydYma+O1OafjWM:kt,wmx/wdy\<.[R~N2,*18_=IYͨ*1_)oW?eE}B?Veͧ]9?;-g_ !_La2!)oW?eE:c Y6GOKY/b(G_*̿?=E7rw>? [GU$GB?Ve͡-qC?R:%?uD /m~.kx /_Qï&0Uh{w\o|şI|2"~1¬C#ߋZ'pॿu^,K1#/f_]9?;-g_ !_La2!)oW?eE:c Y6GOKY/b(G_*̿?=E7rw]xjO$oO|z|B4WO- F0hWz֗,>t[{IuKKKW;nm 8SgnpwNnjiFx r/vROv}+x LOgXҶo Fu)jyєpt0 V*Zg-[[Fr?O?`>ouտ~8+?TϷN?[pp!?)\q@P@?r/U@uP@P@P@|@P@c'KOw+4;q_"r^!^~ ,ᦍcKU~7S|=i>*!'¯vWEċei4=o]O4=X$ _7xĞ)|s{ip΃#w>uq?<k_<ÃqasJy#4kQ6QF'81Y2k #pOx -|vI[!Sd$MNF8ƩkJNRx;<qZ\28JPZ-8BykyFXEG*~΄8SV/5Z+#✻q-Hѧ[WCΥ<#% _k)ԭB\f+~ؿ( Q<B~ǞkKU yxok|o i=o^-ӵ?M 74Ͳ:%BZr/-Ĝx6*֌Vuo>W<q5ԣM*06iqH(v'2:W_ 11B?<3~_5gGO7OPx{-0h7 RVSUԯlo? ?dc 0 ydO2TTω,E ӭx|4gK JZξ&?qS߁.Wf|9q٭c3Pl+9x:Ѝ7R\>~b_Z 2`&_;GI$wwWE\׈?aޭ^W.c~k? t-wǟ a WŅ; 뺫k:ׇ4Xrx *ysQc u%i8aZ,w[WRhm|a쟌|,PƮeg^SeӝjPb(KF,ti 9ZܰJ**~f?K/zO9,AyE+xo]kz>6:,,OdANJuG|<Lӵay:.>U8gu2 R0U14byp8L<,V6~Ҽ#*s|AxOye?9yJ:QT{,Fgp(bqYm?g8UN8,:/ 7?j&UK˧g֣a^+mX׵?3Z_Cs©#>9tX74_x03X "U1L]:.a1u)Ucu)taF,V te pgYS>K,~f?W;B .~u:t1z,bIRaKMj؇dkO~%~տ4R?o~>!vw|)K~/ _w^E2.9ϥ¾)'^(nyF\4hС=BxoᏈ_ƹ: ?u/j )|Um/:6K?>*9}>|+~ |oO e7pIps>:˱ˡF?O (JrGQPPF0bؿdN s3!N9_<ڮO,MoBi%#XX)Uu!1Jf۪hb{)?׀c|:DO]פDtQ_~ IUGT'< &bxnϫFy𸶣 x(5EFa[c%VQu)b*?/8>N fXcɳ)NܪG/(BrpJg5iiBHGR6OffukX,7c05|E*Ur*3U15h ]XQt+V6ں?F̿sqxl-z\wqTpt1iSQ.ZqPwJE;IjO(54? h=_C!<Ӵ&xŏ7|?h735KR.5Oĝ4>A𮵡~8K"ນunk< 1ptuT%<#VROm'^T"B\KjY#-upƶYfa=\~/BmNWpMէx<7c~Þ:z,bBW<).?tO^YO/~%i/_5MV)_GY x:!:vXp]wc9> /S50PTሯJ#,UYx| Y_Oe]G!̤Yld_K*U{)01CF<\"oxسg| FxKdƗE~jzxOCź[k;_|Cx~/>V7g_ Y^k=c?7^*c͇XʔE,=zTgZtkrl"J_*QUx*a|6"\!jx\>; _ }:/)'}CC7#߱֘֟дh6cM_U2aRˤ8״KueMβ YH}KkzӊyT*'o8siO2xTeY2Y2MQ*J2:T3δuUzJ&??j/[j*2O]|iѩB< h ,\7F>5Hqxėou+7=W'mœxRĹRR҇+c0:tRxʕ-\W `i)OWa5*)cS,k]qϚJVCGY\-zx }~`s(WNJܷPuG_hP@G?eH.< oMEq#¾ЬB[]/ӴW縖+kxs4PG$c\1qX-*`Tm1vS[sey CS=|N&iQڌy$+rSk#.~˞<g ܞ,wMog>xFG~̺X_&9il|3}\j.sx~k֫%, c,E%g,Dq.0hҨㅧOZlD?x&k |MT#z8>YakI`rFx0؜6{ ]^)7?bSž$ώ_ÝWG2|c(>,xCT4zω#Hmt w\⇋ C2.:q&MF3ʱ8Jj?ӄ(J$!JeźiSRt(0oJY>'1"N{xw ^baKԩ[8NL+֩ m\e~|o'~zoĿx,Wkw9c&O:,GGB{s6xu=CI4 /#n 3 J 6kDRexl$JTS89JkbVss?_|#ps¹>;lV3"ͺq3f>1P^fK aVt0P ql~ԷO_ m@84ٓoK ։tvznh~t_沈杨àYմ1^_aJaa/H̥Ӕ%.ycgMT*5u_O ɖYM[ y.XVXx;Te|+޹o>/|2>.7dxa2|F"10|t[:W',4qJ5)׭Nq[VtRҩSK}sQJ0u_!Ǽqb֮Ep}LSBvź[?Eo  5MO}}\ g`y:od/".cM':4)j:x, '05j,"~,{>_JJ&JJlJ W_7@ > K}rWߋ<ť05 k-g 5NGn]h4xs^-7 03Nyvup%:WJ\j8.T0V*^/ar*qiVmyV!G ƧuAVk SSFJ\³傤[ᦟS??k> _{B(w/u [(!<1nu+Zu_x[s:>2NYn;3zlDq933Yt:l0&tRKRx|D__b>$g9e)a!V8\v$g ,M|7],}ya,Vt*%OZ?ox7Wgߎ>?3Xs65v^񟄮/a<7_Z{j$.BHwn:aFXY.m W/4kQRnUC%[Rxyx3(ʥ\^O,nCԊR'C8ʆ)SONT?kJ4{V&^_Mw4? եCQ??7+I&=kiײhw]#Pfl]ogkMT6ڭ\ֲȳArۤcrIp~QAԂSpirJQhV_P:#RI5 UӜoQHZ^ gؘҨ;Bu :4b3 S$jV:PR9i@p(_gNSE3O?wxauI~|%cW; [|=//%Ξ"-5yOp32n+9n+zX'kQQJ^ί>bQЩajY L&'7|ŪfU*=.~հX*V&3^ i_|_|1b|Aw^?u?>8|^#>^Ro mľ>':շfqwxqr8i Qq,pH9F ֧'Zx5jW/+eKxW̰Y upx|%^1KV+Bqc0aK%|%Fp_oxB[x=݆Im~"x_~!4iy[Lӯ_|T'Ym/iR0t0rQX"jpJXFHѡNIT/٨}GO8㼫.⿲7/1X"˳+a(U$5#BҞ#Z.TS uK'(G_05_Ɯu{^OY*? mNTu Uo [.|o9#QFA/w;b,5OWZ?^ΖgTⰎ2IШ^gN,>.3^{S 086\G+k.kRqќgF*iZ֭_:^27!$@e[w/oڻ]*[\QA7>~6~ͩd[ρOi/E44[=G׾!S:nZ-wG%apqf/BshœѡӍ,4珧*ЧNN" 39x{X:4ȳ T!Ju_NWVKJJ<=\>?V_/8пc~i\T4KS▷oxUr? 1W&{J q^o,G."*:~Ve*0r ѧ,= .x96;|C,5 έ%,Ƅ2'& ,;*R'C EXʑo;Ge~f'ïJ'_"sYDPG;αΦeF.3Z2K XJeg{|]:M/D!~?K+-[>.-mcvzv'ş׺qxdž|oMKCW,G:=i<ѕ|1F0R)n5Q(Wq~K ʗp^"8\/sֿRQԬcN}gGN8=*_Q|"<~vJN -Ʌ-cQ꟔I5ۿ5Rڃ^5k5izį $V#i2ltۗY*<Rk;RJuk؊)&Z)ҧRqSyu ؏ U+NfO5/޿ڴ/C|hͨˢkV'VKf`?& :}jibx4E rנd55ZZN\qL>ب|U|l1pK|6*8~#b!WPtSS 8Z|w?g,a{~-wtyK^%ͦ\Eh?|Cxwƴ{-7Ŵ?zƟYo |A̲^$[HҮ~e*+ʬ|bxØ(N_NU+A\4)':|:[g{Cٞ>#Ƭ fٓQ_o|Koțm =[;I&AegOo N;6xlFcЭKSq#^ҍㅄ1|<le`c0O1q8z Srx\ [N}iф<6..?W׍n{Ļֵ|3eKY\ip8b0<ʮ-ўa*:8_ԛpج)-qQ&|W?bWh3/*πߴǎ~~ʿ |;H_߬x oiV<cIܴ>4jK.o;O"᜿ <lj(+c\p|FS5<#IJn1ž-ӷ5:m5TW3<mpv# C-Ԇ hʞ:5k8AQ˕JVq9ԥV0?q~hz*-S} x?u|NqkfMmgŞI] T_8 <|KU7kNXV-ω^uqWs%d_JO q͡.WB+q iue) J1OXXPJVTE|q_ї|QJ8%~֟|5Q[ݴVZ{h x~X5 bZ|S | :ϋ"8w(j'Xr*1xG' i\>2Z|ЩWڸjT K:/aV1 -[qQT1xل 5T*Qڮ"t#<1?? j}.F|3 Z!oTE?I ~ GFU͖}L32̷/>+&&i{[S(ӕ,ʣI]J柤' q&M.qgr"X3?q<aN5%K:J\N2N_'M}ٓUh~5O x u㷉|-|[Zo+ƩsV1b}gU[~x,3χՇϳ,eR1jU]4q'yVq®__nYpՀřpQ(䩀u\ƬSp1԰pMG .x꟱>|wms]}z4[Ƶ4|96m<1gu#;_kīmqׂ2apXSfѯRT0:q[NTq#N3b*cis3V}xQc,*Xj5+¬r(Ũ0֕8mT1 Y|_K"_ϋP?YLeOĈ|;/k=~Y!{~{g- źZ3-qu~*_^W V "UQӧL5jqT)^{W,W ^/IN\G;{z8uQ9eZWھo3/gB&xw7c<ڎGug |!A]}|@jCֿ<+Xfy|!^^*1ův 8׆ uVpǎe~5pA9A'9C/XGifkVE)G S1PSw[#Zo '6c:9>f ;鵿k ^=^<_D)K%Ąws-A{:uq'\+s8j8&lV"IX\5=WQa:% TN?g|q` KFpU|v6hpsMӡF51iR#? av#jw-ɓPTyLkO vyrn5 JWu~5L׍yy*4ԩe rn uN +T'(רN(ѥqGAO%"b+8WͳZQfWZNJr JwZ1GP!š@ ⶗\x#Rij~$nj~+K> \ֱxRO,βÈp]ZSNД#j'QWRxaӺnpe<#,;]Wx-2YT>Ҝh5nHׯ<\SNU??OiJu>!7E#7~++^卢ƞeƹX>*iXjvחڇSm|\gX"X*QVGxa[*1Wn |%O 8`5J"ocN7 Al K'wZnSZ >:.mvϠAO|`, 3Rҵm<|O\Pߊ0RgC&S?1)cMІ(N9R^ SI=SׂsN*q1F6tV.O _I:lm/2|e42f^e.siciY4({\:wi/"82sl7\V~I~X t|BJ)Jpi|.u{ {#)|vwx: |B^[hau;WXԼ%t >omd8Y|6L-|l'<oy}4&XJ|i$˸ rc5e1XJ_4|AʝzU#Z3p1f4)G/_(|eXGyh/)bOq'/4|K57*ij5}&3G >%) ZUj\^5a^8JO2N7^q6qOǃhe߱Nx>`pOV l>.6xZ2?Bs>5 V|x^/]k_y4o67|m umcm>{qg`83m(b#5H}bg*~Ւ)BsNWpL[kxcQ熼em?Z~۞8K qxV-!fa36HMPo-~O5U87i7 ZqK qT!AUK7^<ĮY/05,ʆg:9v],e,L/ JXIbjb] :҇?E e|e |TҼ' XkcS|t.~$xCSCP'/~C M_ Yf W 5tgSa? QpX:xN*Ӕh›Jhk)gy@/uk+Qq&/ ۷LXo+d"8佸E Z PI."-)\Ŭjwi޾%x\n_)6^?{Ғ|rUbҔTkUf>'g<#¹uX5u&fU=:5a% Jxj~oßxO_ Xx/ǀ{}Ŧ[dY^[FfSԯgu 뛛˛3,YeckJ'Uz%䒌#)ӄcN8Ɲ8WunA`rl KexaxJ)R9ʥZ%:uju')== :˦]Py MѼMJ._O]+W_l~ݓ{:^K)!֒Z\E3l1\Ex08UJ1`%¥hޭKFW*jXJ?3UpY,s L#9sH>zp򟹇`^*qiJ1RvԌ1?`/?cO gWmmFAƿ^)׵=W_t6֩ 'kо!>!59#U/8p:4s.uhÖ^zSZJuC5w{Z/MI&+1xb1?Ǝ".|!0jX\VYRO Nq_TRXJ?G37|q_A9g@~%hτ%jZ~|{xQ#Ϧ h!GI0+LЇ.xyVcJjR Z1F^έ1Z\gfobj{(`)gJi֣:jNx.Q,ol<)i> k>[xtRFkMCzjk+*]s?ڝv\FO?X?hh`*K1F8*^aZ Rƌ'#(!dҼ!ax[2|4qw83߳Z9&(_O+oTҡ/F'nEGBъmmc'IT֣UIlMzX灘\ ORTjiT 6E:)5R5p1RrVB ߈>#+~xÿ4O7ƾݦx@EX)EW~d3epeIn!hS_3*2N T4FSiQQ}bN[% SS;⪵abZxS8b0|c?G'k_M|BbNki3~V?4[/V:K˫|_+}FFxum{Mih3?B[" "{%RXK݅:i+ZZ6噆x<^*TOLj x7>4Zϊ"8L],TӼmNY~;)WGdyou,wO'ͱ)+iVi޶"ֻaVә~c,*2G FfS͗NmFӕiVƱ1{{|F3|h-A棫qxL0ɟ~.d&#?|GCjt9lx7ϏrRb34KCVSJ2^8L7^mQ.igIWS>N`iq8 1ŷ(KL†I1ut_߰>7x ~a_ԊK&Ǡǫk 9(Ddn]߇,sƘ ¹^ i3˱q0M*:40iS;Eฏ3C}O60udᾭUVbq-?¬n*'5 tTڷWJ`>ſe{ĺO[TajMHk~.xº\:桧7~+`S*9ng_X|ENWXy4꺘_Ood\0hs|O6fjqⰘ_bf'AQjITT>ɮ+X~?SxeM@F/dN'VdOF9KK|UHK<k!h id_xW6O2+c\%ean`YkΦLhBOYO*c*u$y?d| ƟwφRx[,wV|o᷀4|&mf).!|zxi:x9եaOBt)CZjxj+IƆR_e~|?MGNѣּ?5OࣀF>&iQ)S 4ޖ#*Ӓ'Ne,4CtS8fhTkjLhBw`/io25#o?xMkx86io2j uO x{6M}.l>!i)&nLWeR\Ɲx:#%<.%b׃*Z8>TsFwOʥG(2RXlNT;q8JM|$t/\dg+i>.>'~ӟ]tH@oxy_4m:[([(c2,.>׈0|U\[Kҧ弹1Uj0NSN?OMPLn+C-b3WjʦxOSV0nhO_[}2-j<=xčKoMk55WO&}2n&4ϱ G[2I&XKb*bV2 ԩJj|O*~,4]}(5ʸ\gdIK NXRvgR/+5F|6/(YKJmև#ljdO??xÞҿh?٫_(<7]B׭O^ ֬n toN ZŦoxu|C$ Io[q&_4\U NV_ 58eХRI0MJ[^|x?589v-ƌhѡ oI{F*ф%R U{Hb(`x G:K]FQh%a,&. ]cbQsZ[|_?5o3M<)q|_~~$|5 =喝*G;>i5kxL󬯞zc8p]N}^椫*aUѫJ"  )*#e\gyOcfYj-ľJ*MjQSiWZUcYTOq'~<)>&gYд+nfAַ~L/5-P.Kx5M6n*gd:^eP4塊RhiI7$O5oԧ`0gy6-u^)X_'<7NUA+/?_~1FO ~((s775WMt_|e]mh>2~]]ǪXYX^+K򇉼EC31_GCJ+apT>VqVXJ2xܗ&+:#2+X\n>.AO ~&pux>hF&eqdF6}` F VHz7POC\VK᜛J2UX4B5Nthƾp<_7ke8>'YRIx8[m#KM/ZxRi?N|Oei`w%Σ(SZ>qQXa r*9d*wŵx/l8 ˋx'5Wxl)u /+HsFu+VP_~c+N -^;ۆ?;:<_gO;{Z֫sXZ qus,q(eEfxlקahԯV*4iEΥIܮ?`17 j~;K aVb+MSJ#9%ӫi&; Ɩ/?j/s_ڭ< 5e`*;F⩨jqh~O$I_P@~(ȿW[]IP@P@P@P@#qg/3>8W_HʜorC[{ćOm#_؞:YKO+:! 0?<5èxc_{V5M{M>xLJ7`sL=?e0^RT141XxRb:SFe'cR a<WL{:j (B0ѫʝ)S~4(OGմe2|ey^C|Pon{lMzu&aφ}OH.4_xs ̳,v#?aj*j5|*SW 'NIJ1 ΄K=Ubr|-pJT16.?5ƭRӭ9iEږ&lo||)o "W\-/>~ )L>`>#.]lB5Yn~ga?O;ŵž/ `cKf4a HAVQ uVIДJ/ܷ)dwe'VV*V:zP㉅eJ'~+a[Gu xlx#χt/H߄^Y!3W X^fs-֟'>$ֵ? q9nkX6{1j5*U)BI:J5+4YF)_xwY\-r ܢE”UVBkΎ9:srm໿LAx,-?5ox\-xzRm%_^H,AaoiN];x<}l/1x.KVN # U*S*nrʰ.kax8 ]li<=L|ic!FOQ&VPVlUڔn<>{hx/ /_|OnA#O|?ÏHִ/OH/43W\+QѬ~3Q(Սh.qt+*7s2K*{*|k-ᾙk ~⦁`v{gaX0\k[^jwZv$CJ%l|9fsʰu& |l?#㯈-?ǟxNvNR6't)# [xf]4_h -| [i:7_8.eS8xS(8֡e[q49,d8ӝ.INœ0SIJIO57>qoK|UpxL¬kFYtUY֥_IZ.Fi)7]pW>SU*}=47h >&/>&#*# \/໏'uaNkb#G(VBS:Sķֽ#¢V>KHSRqy <q9hT֤i!^1/~55'T&94mJihfbl?2Gi^[ekeY]h8Jj J.b)T9^u*Ju*JSslxöw/_q Ʒo \z߉O>,񎽫k,t.m^i:6x[ 90iṞR=< qPBZWہ~&xŞ&Sc2*5Uxdsር *َ&LeJ7~ 40Е,7{_9}7P/3I>57Vo.5WO*Ju׬4K{(%\1fjg/1X_9( R4'GMƼ5xR(VVgVR 2<b)prQN)Y|XhaT*phќ(4/|{K׎GĽw ψzϏhG'u":mMEXhVt_K_ dy-nt?1pqԱ ǺT ־0is+duVkyyk:ZOm1h5V?|sن)< L5mHEt1BQAףRI_Y_lp 9g |̨qu*JѫCKIUXlNыQ᷉~7ekx?WԆmoDx,Ze4o 9-#A݌ oi\+d8 +`qscT157R:NXm4N)Si9~ž%qw(3:3([*<6LTU,:eTyի5ZNH(o_))-ޙ+G_XG>~ ~Ԟ><]apx^ѯ~:~ sJTCb#Pj(R 8ѝ*8(⽬UjET> 4kV3:ag>+?Fdb)ץJJRRkU3,Ꮙ0eUEL.5uTa>=_o/hFE? j?ul<74_V{jZ^V=:dT'. C(R)Zӕ,rTi/,_™.67 3c1XHͦ ”(Jkf8)/F[o6|J|Z7~̿ +7o7 wjַ=GH; xW`mtzw捣j:epggqˢc"N8z0tc/yPh9{ҧ&}o`0po'S6xg*Y5%IcXxx´b>]OU:5'쑨_5ZKw_ Dk,F֚8ƻk>K~UwpbjB-\]5}uMIӼ/Jp7B'R9qS [_xz8Zp\$Z1he:ziR:o;q0<%)q26.Uqxu sPЧ燗0z0GRdקJ=o(nkls/|L,I,|/O 1COxKtM:=r[MVv>†UjpwBrN6z18m׌a/<bw&DžRe|1ggi5mthLz^ 7FUZC b׼Ox^%woÆrpL2(f'¶:,4,40^ U[ )Ux|S9wżKx,Q^2U26YJԕ 5.X<7=П NK%pzur4M:sJ1FiTm9Sx)SӝZug+s E˃qkPiF6ӄaGS:ӭIEc ԠJZ0ſcNO5xY׵)Q8j-[\n;S5wĺ޸Qu Yc{96x_8p.' $ 8EFx؊JU*U(ь)ӥAR<ƾ=ޯ;2SXt{m7OjN(g,E,Lg0jy֝6|s*2t~Q8VBYzqVΜQS*NNJqSTS5b>R"^G| g?_.h>۬$⏊~=N]~>$~| DJЭu-9P,aCKWф`)ӭ^NaO18PJ,=JTDT<1_W;(|Ix%Rl> TNU 14kb+bjAIA:MZ[imII1( (@BٰzL= .<> J = 0TQJ *TScE$?xV?cqXezV+RUk15JjMTV9MRmݟ?fϋ?ÿ$GO>:E)y./ hƯjkˤsEx佻1MqYeTgq/QBcaqPb-wBtUGNB37?g? |4x7P5H>*n.u-3J<)ZXkS ZhPxNӵ^+:G4_;<x5\CUbiTkK ,\eN7dJ:T{x7L/2)dr<u0(:seL8rT^jU9[ ZUzMYUׄ>(|9V 5k;6ծ5kiega,piֶ}aͳ6K+j?+P,W4U9a*\gI{:jpMsYCÒ"r8D԰^vB n:XLdc[*҅\=Zy^8Zzo_?%Bo ~ hK'{;FGloxP5O|s^Amk&mi>ož9V/3|jf%Ɉ ;u#IWIT^U JlpW:0YCF ERiamFia,J*Te+G W._~ݟ .-5;7 ; U&x* q'ۼok5鑙9׵]>nL fQ|o__Yob%1k8NtWt.UUaiNujJHS*sJ)SOZ8# />V^b#ա.jZJ8j3QKNjJeշK?ggg g|=i ,?a=#ՕiJ|AG#2Wẕq.q1pyo-\ ZènT*G (cB F/+?o幆oC3⾳TqQ9Ba^^ʌ0:Xh8mkGf4E?h:4O e ]\#A7 Mqpl/oWڧu?kڦ{5 p1JLQC83Y*uBQT(ʯjӪ֭^jTC8Ǝ4'K9#`rF>Ά'NoNP^O \Ӽ;mEH'H%HuZxᅭ SHƫY^ Z\ag&e} qGj,FLqͧ<5JI{<ƕjJ1<]b2" βGe SN.4eda%*\ß Cs~|u-?V3_ jr>:S K}{jZOywkWf^pXC9gͱ18Y_CUamJ5VJ# jKP/F:s 5' ~E`13rf8ZE•WF,=)եB=&U #x^Ywkյz^+mBsW(>8\^$.<'x/8oe.ZrJ#VukPraBBtN0,>ѥGapXJrTjJu*Nz**ի?ן:>/$ULֵwt}Fҭ'5m[S/3M[ᵳIn%cyT>yZnW 4(pVZ TRԩRrj0!)MF1M?J^q F#ф֯^)ӥF8':jԔaNNSbi/ ĞJusc-oX|gILSSh[K;kYφt+jv*y6KZ\sSq6&]tڋar_ZjXCFci>H{ Z <Kr?Mళt"7ݙ3,$$IJld<GF>AΠtoxw!-C0h/OO͇><GF>AΠtoxw!-C0h/OO͇><GF>AΠtoxw!-C0h/OO͇><GF>AΠtoxw!-C0h/OO͇><GF>AΠtoxw!-C0h/OO͇><GF>AΠtoxWk/wܟOI |}uxZcYx,~ "?\7~2%滠kc|Wq&u8g߯cU xe[\/(ʤ`aYU>wg&K~1feVf^cn%oWVT3T){Zg?gF:PA(8W;z_?pĺx7DwlJq8sԜNoh+#< ఙv p|=J = nYNOgF!Vs%rZ: ( QI5 H`3XBhHi 9KXM?x @~Qҏ鿳 o,!+6{u ICLGЯ6YCf:KI'Qˊ?b8|-Y>%'Ïq/?%Ѥm?(1kB,aYCaඟ 5_ mϰI\m,Oi?[O?qGLGЯ6ĤqC6ÖEçd4-~&#WE?R|8"l?_O?b\Qƿ+o"Ϳ)>덿6/' iG.(_f?urȿtFOأq [o}JO:o9d_ :KI'Qˊ?b8|-Y>%'Ïq/?%Ѥm?(1kB,aYCaඟ 5_ mϰI\m,{o$=?I7~nZiϩO?;`]q;aIƿ+o"Ϳ)>덿6~S+ޛ+P)=/g5b|?<)<={1zT5ծ5/QѬ>%ΡJ9> È,~etO1O[ u&tJU(ЫZ:q4T*=?~~ʸK'|5kSrex|v5afU0tTU40h*Yϒ*T7 CB (ۛh_gX~ޟ~7xN^㯇Xм!gxGS!<mex:xY[cKңЦ[2<A`2<}\n0ֱmOk:\LZ05.i'9~ ƟG~ &̸78fSC9~.irLexPҝN|EKՔH8?çd4-~&#WEo?urȿtFOأq [o}JO:o9d_ :KI'Qˊ?b8|-Y>%'Ïq/?%Ѥm?(1kB,aYCaඟ 5_ mϰI\m,Oi?[O?qGLGЯ6ĤqC6ÖEçd4-~&#WE?R|8"l?_O?b\Qƿ+o"Ϳ)>덿6/' iG.(_f?urȿtFOأq [o}JO:o9d_ :KI'Qˊ?b8|-Y>%'Ïq/?%Ѥm?(1kB,aYCgsao| O+ƿIeSþ|)X5|.q|2 gW֛n>)ВpYi=c{Ƹ6/2T``9rc0Սj ʢJ0j+ }? xq`reKN|_aOFr )J4NpX7 NI4,I#3#gwcfcXO$Ÿ  ( Qگ ( ( (( 'u +5 I?EfI-<x>#1?ٞ慡ڢ .V1@P@P@P@|`Ais&~YW*Z ω++"u-O^wi&h9/$w#,嘒MzP@x&c( &~c'_5|i| <]_3Tu kpizʅtM4/+LlmҀ ( ( (?ॺWB{(.?OᠵO7~ h0i?GmqCrih'౾ǿk |1x[ OZG<7'o~/>"/|!Ҽ0_|M_ˣ:k֎4n 꿴;=\6Ǹ>47ྏusJ?gGѡ]Iu]WMӑZ@4)L~_|[χ? ~;?ᖝ.߆ Ox0/9kzI^c{ipG$ɝBFSIZVI~>PusOwjL'_K{4-q/ j:ީޒG2}gh2}y]~Gfu 4_/` EllB7߳_g߆~4Q?JE{Xu{g{x.ai.#b%>$7CƟGϏ^k{ ?*G?k?~,ϟ |-}O7HUkGNѵ0^>x|{O*g"wsh_qxHbC|chvu%Ζ72*I^/g/>{4ߋzP_jV+^zνeo+=+ #Ԯ|;& ˬ]g ?_xz=?W 1w!Z|!}~W~Ο g?V ]CI;LFW;1o—'u5Դ𿆠Mi f?d|'LzWij7 u?xVs[Ok2hXqY\|9vWn-g__xwE>"Ӽ!|K׋4o^>xw>=Oj׭wl!}D鿃\/sBƁCx{Yh ޡazz>!UXhΙ/D#ӓ{Tmo+|L@o߱?|"5_|W|*&4Kϊ'5škZ֡o.,~=k X<6[e [gu)'|^~$K@1 .Q ծm.G > C ƶ)MeDGO?wďL{]>|]Q^o xHz  5sυ5}GAQ#%o/ x_߆c8]O|?ahZ|QaizƁmV4cWdԀ?A E } ( w ?&oSv9*(7 @g >|W;7*xc~+P_5?UoZƑc5ޱښG{vPgjv_tO'm߳_4_>#|;[Kŏ))|9':&᥸$kyBCyq~_J~|J #LxWG hzڮ|Gi F; K7O4I%6ַ3{Fy~>3~η{_?|EٟDh|o X.~iBRmoN4dl/)nmO Ξ?QĿ+>KaCWQ;q=ީӦ}_~ /mnI_?c/٫OIq].>s 39vixbEԬ{»X оZ}3f?^|aߵWSO3Ĩu>*Nwi~h| OţEլ@Vilu(n5=:[Y}|l2~ iO G>m/|Kc7_{7?7izT<'+MV "wYkEO ֯o60w3q_ ~)6dω|A75~˿4_W<: ieӯO'^)-[Iu}>uKZVca'G4o:kfwö(o_?Ǟ(6smj ~c:bҮ}+V#Ҭ KK:\ W?쿴ׅ5o\Ҽ1|]> xֵzz6]gIE!ePjV7u Ӏg|)78|G78KDO|h:H'څf|)i࿊:^:ooxSFnmFK`b89<]{x?Qώ<#ߍ?f_:OOY²gXZܰ . \IUk`>^|7{_ kkƏ~//~|b"wx>8LJ45sO)ςa%&Yd&a?ę?"|PM">|++᷈|Gi,چ Cx ˟v+m6R{?<{|-:_٢ogQ藞'?xk+4o D+4]j% /~ SxY z-66}H|!?xUOǺ47*W|oGG|'nZ\i:RxSCxRn`osi|>?̿`ĚM Ɩ_uMG U~ݟy_:|c.>v/ aF'j̪yWCثxnYA&0]KO~~߶ׂ PMPG}_\sɞ?O;Cτ~>>:/,?i_Wេ~Ԟ*?f7O?+ӭ??x Su^5~~ßs[)S;#_~K1oxH?k|F6| ӴZ _ٷ෉?e~_P#gO7$+ _>L|ogL$K{猴E1|_ >4Z?WŏK ;{$/캳kX$`#tK|F8O7_ i1Z|J վ1z-x]eƟ=NĿe?e?6\f5վHk/W?MǍ-~xFmcQ bXп<+ jdzb}];^8]i5_~?S 죫߱/tM>$| ?kľ >YkKhfb5?Sᧉ~ 9^:Wě~4}3>7}⟅>+Լu6o/_uHt D̟mhP@_o'd PԟdP j߶/1N2~Ҿ8?ewaq|Ct{PݾG xVPԟN[]{NXxAtF pJ|~>3)3L@~ |fxO-KڞsxsAM:.,*Q@_Ij,' 1C@k>:@|G/{~/ ZSjtk὾w=" 3_mZN,v[<vH8ac?"㟌~ U~xb_ 7qZ꺎xRW"tD_@GΉ?|cA|*OKgh/t]r΍ NZƛ&?.d/'o>Sgᯌg|;Έ|?|;vzn|&4O`k|s_hWzOv.~?N]G ه9 7/>o>뿴umtN|Hwi7rx^;~^|l>STco h_~&xFEͿ!?c^8P|lDžh__4ߍTύZ5|j#4/^qaCPnxL4B;]M]k E } ( w ?&oSv9*(?AAL9P< ~?KaOڛ $DeV2h ?h?z;R4/l4f6cRn~:ɯ_R-?koo1OS7{o~,n_>%-6?|S>3:.=_ >.CV׵}6v:pN𿅿_Og┟o?-~_:oGD7>9k|J, -4kqGE~x|1G/1;׼xƚ*|Qyil,[ht'|WU]7Kzx>wTP|+w c:m ~-64k vCk][HԒ'Zkx?iRYo$C`/?2.ǎ4?>g嗄{cI֮K=JľJm'-e|9kjQ>*`ߍ? ~YWsŏ &𥯊~!x?@.xSjd3?jvo~֞lIеk_l-2Q_~80FqZx[X>\'7PJ ??W:R (. qw-[G4{KS>Q?o1SO~7' 3D:"?]t?Xx / '~'Y{O驮_Aϯh~X@<}3 ߷z?v/5e[˨oLV퇆4{OivZWe\?](l)wO|a_ OzO {It=Śo<)iU6/.5k3~+?kInE =M :",q4M[OV(]ͼ[|8j<<)CCx_Oϯ|#%l5ǿ]SF>ѬAszޕi_ikp@߲i7Yهᾫ<+Y+1{MD_/UBxt]~$kA`Gi^ψ_č?~g/ ;xY|=Ūeox.ZTex7Wz~Fb"?-oWojѼm?>.>=<~ssŸ7&-4o?jƹm{O!fЬUk7>yf^j< GO~֙eQ|j /i֟ 4 k]*XҼM5펅wހ4Am Vooq FC 1"QET8U4E ( &|*= ( (9PQݪa : ( ( (>_ (mȱ\~u~P@P@P@{&Pٻkkjdm' @p (bmigzbA_!8wgv P_o:*/?Ttu8ʰ v (>?`%'~ߴj/?5 k'GAd5x+ ?z~ >  ( 5iswǟf7 }>U:<ٛ#ܻ`sҀ= (>#|SHv>aKχ$Tp' ( ( ( (?3kvN#IT7]#q 4P@Jx`/$GGQԣ OVz ( ( ( '#G̟ OÖ8U($p'@@P@P((@P@P@P@/@P~Ɲ!xBk}[ލx/s{@Ьso^@u[hִ y5owW~ u6eĐ$2|C)7/RbH .m Ksx>O xL4 <?tM+L94k4B㵶,@m@P{K[[k{+y/,6ex'xTxYXړnvoO~џ]s_7 >"sZ]oqwt^M?þ2ӮsPЬ}7Z+}_~!i6x^;xDaxO|mxXLj9u],C-G>?/hP@P@~(ȿW[]IP@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P((@P@P@P@/@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@~(ȿW[]IP@P@P@+#20!=C)J( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (OFB? 7쮀?l/c"<@?( ( ( si[Hy ݹIC$OpH?@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@P@~9:sXnb[.{,<)P@P@P@P3u #ڗ۞C|C$RE` bG"ta؃Ђ$h*( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (; xfMb.Pl&<<.Q?@`?l?: ,%&G{Yd~ο,%&G{Yd~ο,%&G{Yd~ο,%&G{Yd~ο,%&G{Yd~ο,%&G{Yd~ο,%&G{Yd~οX(5j):dΉ:~",`E`b @< Aʼn=O'wOY"8|Oe3?M_HOk@< I~i(5#OM?ٯe&$ 5̠W??4fy'&2y_W?P+jG_<?M_HOk@< I~i(5#OM?ٯe&$ 5̠W??4fy'&2y_W?P+jG_<?M_HOk@< I~i(5#OM?ٯe&$ 5̠W??4fy'&2y_W?P+jG_<?M_HOk@< I~i(5#OM?ٯe&$ 5̠W??4fy'&2y_W?P+jG_<?M_HOk@< I~i(5#OM?ٯe&$ 5̠W??4fy'&2y_W?P+jG_<?M_HOk@< I~i(5#OM?ٯe&$ 5̠W??4fy'&2y_W?P+jG_<?M_HOk@< I~i(5#OM?ٯe&$ 5̠W??4fy'&2y_W?P+jG_<?M_HOk@< I~i(5#OM?ٯe&$ 5̠W??4fy'&2y_W?P+jG_<?M_HOk@< I~i(5#OM?ٯe&$ 5̠W??4fy'&2y_W?P+jG_<?M_HOk@< I~i(5#OM?ٯe&$ 5̠W??4fy'&2y_W?P+jG_<?M_HOk@E(iH_ Md|_QD?|B}K)&ট ٢ghHf^@3+/PA (OأBq߳"(*"F @q'c~d|Q ï;'W7Z|']_GW]hfyVVW3nova-17.0.13/doc/source/figures/hsp_network.png0000664000175000017500000045750113556316250021454 0ustar zuulzuul00000000000000PNG  IHDRm9sBITOsRGBgAMA a pHYs+tEXtSoftwaregnome-screenshot>qIDATx^Uio&7 BB XWEE}uu~{Aۺ(TTRCBznn{۴yI.1@Ƚ Is9sfys3xy<σ mhCІ6 m#0 0 0vaaaXɭal#ʏZӉPP)|x<>pS( &al=Ln csOr~)\˲ IiGx uYIr(׍%/A6 ØLn c3#/{Iz.RD)-WJ0 P[^Zfm15mĦ>je)ԖrC`n mEew0v V6B ^A[۲WPԊVox (dI-keidwral-Ln cQ t:vNh7Q $IJ ̖T`4k`{WH).jj=-+?g ØNLn c+yY%N[ѐֱNL.e66Sׄz.Rp˪ 3brktbrk[R\K ԗ捏*#Jmuɋ[R RyDòd|GCǢ׉Z^OqaS0?ZoaG/RIj9qQƶ$ޡ<,KwD$uFtk\l6xpd׋aӍɭal*K%^֯h^RUES5Qrwe[m^аQ^etY[US(u 0 [ HJѓЪ*W%WRr}oBX"RP$^]t~_bxxWv%ZgkRr@]P?7 9\{LVuK6P1LFsZO2}Dkd``f!>} wkt%e u| ۾c|6 ø?V@_b.Ŷ;#~$[N!*y{'?pf̘J$!$5i'7-e.r/^\kD^3=b rieO*p\!*u5(ů̿,XN8]GƲtwGCi1고RF敂[Sp#a<al,²>GNvʕi8c.81n[ҭ*rW\au5ǣ eedvmTb\txS)~>xի^o-rz;"J>ײ(EVMal)v1~׎*@gxғkHj'@~Y 헁+a1^6\=UTImJ-vUTb"(Pܿkn$ S|7Qw#Ru\\M9 0wp0 IzGdI3]w݅>W$EǹuKۤE)Jc3'YJ5|3C!ZSUw qrkA%)NnC0 ˟魇k[T&(_κE]YJB'Drx#mR*-Zޘ[Եw,Rj%[MNQ']3:z)y<00MCt/mw$$$Jl%Zzǘ52mR{ ӓ mqSN0I2z]dL+%NcM[m%]tUv/nӚV*z1Oy\ƇO3gAדi0-0Z_O4B)TBԫ>פŒq™!uJ!Myu;[KYr V^$EE"bn[ "0:G}%\\Mljw"=ƴ2Z.7 RbS@_ei*4:|K_#x{q5CJ 1?_1xcǷ)_g8q'3*G#0`†1E*~N >Ɔ;Ez-FUy `&\c4*"Wx(=8| ``-_ +|m!CVz;38%ʰ|l:-3}~B[0[Øʒ۲1ݨd/D' "y?1~v/V5)H= `]knK_*wp7aٸ?ccNZ]%>9ƆF0K)1b?Z [{@4 c4/dckTvr|ÿ>8=KBԑ>g"CWsu'= {f́_RCY;oկ~ .D9}Mk0a+0YfhrkT05i@r[+ xH%z{9ssٮDjs7u◾Cy3wko] ~[կ_jd=5ߖr'˗,-x;߉w>֍j|#pܑH1ݔUM0-0}!o%(TPBB1O|E.WG*>2$ŭy/z!~_7 |xNFVQa095ܤ3aGCPnWMYRϏ1ULn c X_e0ݤJ5tZk4P41k f4׬Pj)EZ`]+]7{'u^{?/}Kpwq9>O j9 _K.?9sn]έaS0_VvsmҪ/QÕ]BuKzIW zZӟ4Z1t?]8]jNBu-~ga?§V s5(??1 c:05 c''km#c R+ J.f j/xgBww7Λ}s˖Yxg?dWuѬWxۢSޢZٳ 0kLn QW "L ;B: ^j*j)}mxo{yUDQb\500Ї|'O 5n D9QB^Nv%&a3^n cJqt:upwQ/| 8Ӱ>L,F.]7^AZ N{s1N<C  T9k;݆;aeuBE7@;(:fQ9zoۖ -ܲۙ(p/al VrkƎeT]lh6$?UGe3JOz {Gc>;a֪8/k~sBllc5 0?v6i@%N ;Sm^^,]+m3վ* PEWslTUT)(jZ 0燮 Gw/'8kܭJni" mS,xK 015 cR%Xa:8,nZGԣT̉2l` .}ƔA[9Ԗ7vjU^ doqm0{@RUJR[vZal}*1W\aɭa}ͦI\ƶAR+fΜ΅Jmaa#&a+ewjVo/^j"]t){owTW͚a0Djlv 7V%'z)|(oˇrߎ?9mr0 15 ^Qi^Qz*n^p$QeuAUB[楆Wƅ^nZy[0 ؁N cHFAM$wR[n׿5֬Y#<tf͚n'[WߪPpM7k_v…n3frn0`rkSdg[f̘˗cܹws9Xh/ݙ|͟?wFFFKߊ+Y05 c:15)˭n:&uZOUt*mOj2\߸($y :*+*ݙ&15 c:a'WzD,|/;m-@yb88'ܜR2\(mWNoL /+R"exUnbۀ§e"K^Jq 0M0al1*QۙKnr'W={yIp5sA? ?^{Z{^4c/Sk+8tX)؀h} YɭaӅɭaLmAQ2*ʂ{ǧ[/V\w0L`U"W[i[7'Ln ØNLn cn 2Nn%vcj`)iWGFM\I I7.x$on-[0MbrkSv[@aU=V7Pϙ)d WJJ79 }wHarkqϘ1VVY_y*%OCJo5火:ͿϽűe9ӱ^ʄgEDkcnTf;00G7Em!d| 9M/UB$IZ9--P^B27ewXlbCN%4{s^#.gTâɵ:h\skWbX@ʙ;8&aL'&1ELn>z]1{ʕrf Dr<nYjZ & MOlS뉻/SuQΚD(5.UR̳aiuMtm4VR4wDLn ØNLn cn}$cjJˉ$ˑcxz}is[(mR|ەA;jSص{!XZxqJoMn 0[Ø"&ޥ]JY-˵V ::,')@BFZ̧sY8\Yc(*;|ZYU1Ln 06[Ø"&[o=*ݘ6z)S\^0 15)breHXROH 1ԩj^{jYo`yU %C th|yPA'!‰=m\bpU9BxW9\1(>Ӛq$sE1xޓOxg?)t8`, >eYFQ(qѨnsnj%xOw`]s6BmF 6o =tlnTT"Ơ 2N1by1V`cw ƛ@PO|,Ou+5 c:[0T!BdS n.MR$UV9>G |]=T~Fr/=DtZ'nEPW j}8 ,eJZ]ǡ!{5 ^Օx˞7Xr*?]} &1{uUWZL?؟ai0nRǔbZ\ǔqQ|ZZ9׸E}X7E^sr0N+r9wpJKxVV4bѣ>%F_<=&q/nE;L?;T_w괢JAZLa6Nߎ1122~Z/Vюhο:|cUDUϕvF/ݟ[Jl@5f8urߘ\mrZ&I ~j^|ʉ8koF9.2G@qEΛq+"m-AMMn 06ɭaL-CYSj$F$Lah `4⎡qϙ?Õw܅-Oeq;CRXT% PoeVxXC5[ȧpb:i\hz򸸯ev6A9KWԣ.Cx# ~<3^q:zU+J4▜'?~ q.s1>֤tcBMmUΛ<.6{w.s4 y jY1IviG'x s-ƥj!53 '1=qrƏ"50Uj/Dr;Qd_Gϥ2NmHPl6rɭ]hw|Ln ØNLn cnT5WrE548X2W)}\/aVF%S檆sw[)^9>y^L&#} Ӧ yFqG̛wLNюɭaӉ5f} rMܾ[WAPipbh1O4s\Mj 14abZۥ&/s K"Ȉ n[p ܕDLAcQP1KVlN~幌ֲ:D0 VrkSd.?{\c6Œ#C(vy%qǼH]ziniN)A$?Z/~ X;JP/oqO|/.Wb4D ^. $ ^)-h2׭ox cjG@}=[ъ{NUiUkj<8syS7ué+s\sgEI+ 1媫E(G3ϵҚk~ sBǘd][[0MarkSdg[WRz)sN$g<7)ۻ3n5}0cƺ1VݹWݶXvj^*GtU{utlpw[$Uǫ[-@ Snag8m*ɭɭaӅɭaL]nڢBڛ :e9sF)w e/.-n׆k^c\/eE5 !'=I׵qK lXr3)Ъ+^)y] Jd7ԒCÑhx^^ҡ*D NDo pQ{wUkalkLn ø|j^R-(z* rK/Ak! sNP^kG}U)KhT>W!ﺓ틻vaSCzƩ QL8\T"\ZB U-A$d ^tz۰f]x{0[qHU BMsV)CV)8GyaƶDEaHISx~DfSf 切WVkrE JLDs< 0^`ZA;bϣrØd{_B# 8C C ]P.}RØâ~a7:Z&X5{яG>f4dLNJoe ͝$yŤa 15 ^q/${)%R8I#Y1$^BMfH)i@U0㶮4ړ2$!iJ'.je)KBK | /)aMCrCHG]QSZaպ]zZ㱨ߵQ%V+d)QscXa\9ӣBHr9Ky,<gjndžaӁM øW|^*vRT5Q3.wӞYx۳/7Czm4*1Q*R#ށB!* \?V(p%IVje31|8L(P,"x)5. C].z+Ox1?Y=lRZ,&-A̖Wc̡d7(=im2fPUpIlHKj: n(u\.s 0 Ø*aL[:i:Xo3_97݀O}.psn.jkd:QW{XKѡ0Bʄ&[ Q=)>JRX*׍(!Zab=Jc#|jDp̣xcÝ ^Ş=oNt=*(W@Ҭ0Cs]g0:j}0/y:h0̕sCn6p8EW!_qֵ5fT05)s˭:q\EߨvooD71Eg~0yV12ªuXz-VX|2,Z/ʎNcR_*nS׮{V^dj=d\PoRgQ>8Q.I,{̉Lc'C%ia80lǷ^OR[}1Uwʭ:\=\U]p+?s0)arkSdg['OyJn *3sm&vqQ|z\F]T3>l=GA6#,2gΝ~Zq81t^i"16<ʕcXnqNlfX9nbh6CuDNɎMO/1N/F ]/Kn{eNHXcݚaܾv^w\yO®<>jݪpĹ˃Bkh:5FyMMnɭaS0N-;W FۤƬx_,GuT"(w \|dFCtRbFm0{]>CkQsJ6UM3Lf8 _ÃMc `{0=t/`.Ϛ5øpɢ!,boѡvzT>:UJ8MR)$Ksxi[e@g׀A۬.g->>zC8_N|.;UЊ^$)umZ3frKLn Ø &1Ev[ɕ6A;]+gPD%]*Ud+u-~z/^*9AAy|wnTlaZ/("ƹ['=P< GcvUcͥ^$aNkiBid;crE2ǑQiGžFΣHWט昂1a6 5C<׭h-4P 04G?}X8{&nc~ (1Ⰺj cLnɭaS0N-EXrOfrS kJC5%9tS<)vc㾨#Y0<O>jkpoq,ĘQdͣ{n?xX"z`&zv2(D)rě ̺xNuZkYx~/Ab?F6QcRvg|>7 xԑo7,wϽޱ-B)OӶ-15 c*ٙ6@֐r 6E57{^/ūСz*1q='oK#VCW1UW9, P?^'7W< ǻ+uZc&[11ӐW₀<&i<($5IBQe&U?*MYQ"ɕn] =S1UǸPOx ň)IҤsQ)82"l _[ymڱvnɭaSA2aDP{B>xAG%k-=ʥ帶sBJׁZ"Аr*aUeLJQXNQUSN¯~>=HCqNaCM)uܲ:wꌃ4M)i၌)V:qQs"I~).s͓1,BiZw0}=K/A€˻=D*T: h5ȪjuyL]S*0 0ɭa^QblF,!UsVjU EQq^GxGLyUc2j0: $13Yx lkܻJ=9=i Tm_WK(cx:YWRxE-2HDZWg>a}=>0$c| )V-0 c: c/TܣR\NJPCv﹗܄sF{U-/;Tڧ%C \/K(̿lXqi=/S ǓO<+qu7]+o\v9(1jܷUG(QLLs(%jw}B +ץLp4:[Ш)߻ϙC>l_~~1 -X} Hb׵20ɭaL[n3$^51 v QI_?(+zCWgRʢ< CWja`> لH $z+yŞ3^;GЗG[_ Ÿ+K/Jݏ8mO(iT8>%LǪ[Z3n{^n1NT0Tn#Qe::O8<=PZoc '+qkN=k{uC-WU0arkSdMJ>Dy,Zb@m`ي!\t)rj\pe0 XNJR/f/EF%%# B0(US?]\t2DIA q>ȃ? ފ.Xp1,]9;5CX;FǠjoJȠ}AKt.Դl㣨P٬ n}2fVR`] @_:˯NܱV,YWCC/xc/bjFG+hܚ15Ln cr㓈rWK)2T+L^ Q MD0ypob㱇8x/E` 7e6j2U#T5MK_~ExKoX `fkj8:hWDV 'GbF@B5:UCXj5֭t]j#7MwJ [U0sLc9u,eW7)qU3ۋt ִ>a bZ&eǴ? oxg̴$C-crKLn Ø &1EvfSfs_KUрqx +jUV-UMjuEc"<ļehuz%1Vs<VUE5V[iy}}!xl^q>&I>6G1g¹s0YG=an_pay50YCguܩcKq4'Xz - ׬E'0ҥwR,Z(^GSX=d *XO=d|g~zF>Ƙv[[0ɭaLZnywP=P>  V8FL+J#~QOb +\KXZs/&\(AQG<zE p|[8u97 keFGyRnEN}Gubk=zF/(jWmX6_qjiJLGR@ g1(5^buW#hR(zMԪ̴iǞ{ܵ0arkSdg[\V(mۘ.*Ȥr>ݒJ唷8OE.JU' bP=~\qڀeӿ$ICmZZq}+O}ur98@bDČ_mҺզm3TȸWM]cMB-P- (\BT"s[b#t_ɘҬ a:=˲2QQ}IX|gaP ?PՙɭɭaSsalaZ*|Uc= bUs= -0r|UiP)jT62.s8G3to]5VN~WSoz%>􆗣hlh5jĕQ fPuzzU V01 꼡Q8RJupm=Cʧq%(dRAA<uҠyjW͌h MkHU"R\kz4s;ڮ :Z&F'A׫1-a15 ^Q$Wh09H*UQP"HQx$ fEQ>‹osT1f^NL)ݚ!TZs:n*LCRΙ[Q% yB C1 %:6OΙ$ `+4 ØLn x(TOU8E+MqM7K߄/^u(D_* ʊT)i %M}_!W7U]CEP)šU16F-QsTzRnc?@+[r]Ia1ULn x@PjE =NY Q`z o~); }W<4G=SW]zSYK9 UNW ߏG[ D *Uu= NӃ֜ҭ SmJl5՝_6 06ɭa :Y?@ۯe#_U_܁]t+ځJ: mNUGN(醩)c|z2Ռ\)flZw}/7֋j A%wUK kIjRp}. s* 5H+\na1uLn x@RaFa MїvHFkGTaƺ4HXGZ+Jg^c(w5zrؐ KV/8/k'{-9 ba&JnDc[t+)qC׃_U;!Gȡz"'1R7)k MnS3rg/O\>ZsgV. W7=^A۩6a1eLn x@P)f/kCDh yX2ŧx?(t'WphcF¼z ˛kh8Aڋ];3*qpL[ }J ,FvQI;0]ZZE5#uz 1X'<'نaƦN c=mEQFK06ׯqڻ> 1yK0tr>jB#ga`p]qٿ܂!X^swҐ9B[$ns)64bv8!VZ٪έSuu\^*sxZ}vpQ'٧p7; Ƈ2Tǭb81Ln cn=Y8Hrw}k*!ߵgPCQcIO:G…8˖7/ߌw X0$MLu^MnQCv1ۀr-*s5A9p?uo pV^?߰ђ5{`q,@1[brkT05)bre!33pz籢RŌ`6:6ER>ʮ:>HP1Q8 wzn5V NrJa1>T5g"Z]PSf褕w9=1vYU;~ {BA>9@ oKߛn__B\y(zTBY䖘1Ln cn))e&ÀϦܮ" u3?)% ]:Jyϕ>LnMn Ø.Ln cnTF'k&%Hnsr؁հ! a&x k"os'G%"FVTкWPPՀۏQ2(r)Bƺӭ+k_/ %˽y$ҥiFeA ~NT( /LnMn Ø. aƶgI$L~<񤣱> .׬bw.u_0_}}^ {r|wwCuyh2Ygb.M XK~#B~D㙧Zں\(7Pk~Jƭ^xVc2 0VrkSJn u&^(+N?ܸx9~ an^;ct8KmVR5*= u缹G?o_t=>vΕN\U+\4j!Hpg^QrE7> XhC>[+5 c05)breHnSչ$v'_\vխ˺i\7W`2y)~G*CE樨JP՚ C$A<ȇ_On&O!eYe!$Nn0{Zf`rktb x$g9W_3gb]wh̚9YY0s971trs<3w4o.2ws/@8kwDE>{kl򘍣s|C&B8#s© CV=܌Jxy )0 cb%1EvP 7蛁kVww}BϋpҾ 0#1Rk)2 ?US\Zw,,ocVZ vΟMn@Ln ØN 01005DqYRnx}YM'-PswtC&ܐe }g>2}>_jrbrktbrkSvȽYa9Ww)g6>O}e)( i[mh-AbWܾ&Š2^Rջ-ZK^Cot{ͥؾEWYk $&aL'&1ELnXQOcuc~ pp˲Qd]eAj0B<ӣ Fa)$U%cqT$ %G/ ~ɭaݿ) 0Y^C0n* md 2+a}v`p¼`f{5p3aP}]Q6Zq˝K&Ry],Ie)U`p<.Narנ%PY?кaXɭaL+2$s9J/]:vﮍB!:t2^" .MRoBYnRzMH݇kLܦͽKaVEv'@?BT+ןFɸ/I\⺐V#Fm#b:3E/ãwޚ_R S[TRL.+5 c:15)bre:Y:!)Nn}BSQ0Fq~* @&p.љ\< U? |~7:/'S-Z3!g NTC+[+)ݺc8띯CjW[RuL.%ߝ[0[Ø"&[=Q{_ |#_݅SJ+S6%2AD) )jLx M{Z3>>w]J3&zAF%Y[$Qs(#QxK F2o֬zHOur$$ɭaӉɭaL-}ӯ>./X"ܪ^,_NjwyԖ-6y+5jȕΩ7qϞw9N7r3*0XUe\sT10}ifgG/{ xCE?F0b?q$B1V uL1[0[Ø"&[= o= * qih6έ(~/TA]&\WN5θo*r tV2*\ .)xHhT+uZlqoxIs:4 cj53 Uj\dИ112In49}SgzK6On)^榗  ӗ %6O( vK~x%$j"Q;Ҕ'BcF-szNz>UF.ҤsEWªӗYɭa=`rkSv˸'==saBj/jn^4JG%jVMyivWο_ylozZ>3J~ʐƍ)n00Qbס¸_ǭmy'>mF )oJցŮ h6y2ZP.9u -ڋU:pT|wG CMTا i:u|.AkOO8Yk UNʛJlKV)+q "u4crktbrkSvȂC;MkZx>JlܺY0,E* W.H)ZO3i'Kzo@&=i6¡vjjԠQzdžQ[;^Jw׼{҇^+C@=DmMHl!RZx05 c:15)brem/5foKV(m lBc"S'>-6fP'/.P9xt%&&aL&1ELnCC&ZEmfͽ5Y8 Pa7㓗&qVGLwG[uIS#R֍ )a #ve~|laXC2Mn ØFLn cna#ZYۋQܦE_[nJ&ST] T2kK[X%LL7D[տ-Jn赻WBq^"QhA6 x,zKPU[ve[erkrk`rkSv]A!uAӋS*#Pp%II-Ʀ - +ĻhsA!WOT5YņS\ǧ8M1Ln cn1Ů.խMxYJzRɦOI]Y5ũq!9tZɰz N^&. 6NJ%R'Z\G04QLQtZCR?#&aL'0 c#YPC|*JHNW}nX61b۫[6^ѲJD%!ևjq׉2 yQ[Jhq'8r0 cz[Ø"VreSXFDݔ'2H;ٜ~7F*X9U1]%EyrqM"[^&Jn ØNLn cnY։NڧڢTWUj$iy1͍Gmj37pzNn_ `\ $Zχɭa) 1 B -:$,Nl11ʍOLolxsS⭠.x]|fpP[J^Sb,~mgFaƴ`%1E01Xɭaa`rkaa4aa; &aaNɭaa`rkaa4aa; &aaNɭa::؜tL,w}lk}O57487,+ݰ4P$h=F'MS6s0 0HCYv=t]̘1=FC]!yH!Pr7[:w2ݴs=%\w"o{ĥ5G%#Bd^cH7wGg1epb<ƓG NWqB]s_c'㾕ʷqs|4T*r?t˴;t>ah=E H%e;rN(z*.2Ċ&p5D98V$|S)7ΏBv=o%ibMI_!3u։h_0CJ@i}k)h)[{Z.lc̊Y)%En/-:<[K )ؒ ]fÓdΏDZG]:zޮRMn Ø &1 Z-'%;◲g֬YXz5*w`…klQ&1/ʛΦrnIlrÉX_[H hP~]h3\鬶j28ɝZR&4[qs 7CK&k"&H͸s1~_aݺ!/u^Z=H" {al &1ʏ~WIvG[Oq%]w9QI`}y:Y=ziҷA m_q W2_3UxA!*-~LKv07Z7_#By] mg/eg}[1N9u\ק"Ot+ ͦɭa[ug3'K$E]N;͉mxhS >8.;Ҳk@*Ɣ צ7iIijQ 1nE5O8ơPqq^ql[ c׾|Un4L[ȆcZz <97⸸R[(_0 cK15)P2 _k׮ tLi#;()bJ[@.dȹX34jvI!zZ'UY&12ʕZHTXN+ |i;qx-vUB9}}NYMRn5[f|m-=nb汤Q}8 DiJW*K&.4Dt9ܶ ~N^thw0bJ$Ee!z z+-˝l+-3[XL`l|B$NQJF/+JdrOIҪc| p /th1oFǻ{̋isPHyL*iN(:ɹ.Z>cQXuR%Wi^(Ӣ)maxgu5HЊ7ꇇ)>3HhQbv⥩Rk8p5עK׫T#߄zt?iNYjrE)0=*H&4+mBʗРi-{+^#<q%Sʸ#SuTԕE/-ST+3x< \y|C2U\zgJY?Cal[.bS,aJ靇^CWxOŬYqeW{g~k`rR(k֮ͷ-pv0:ªU\Zh46֮YCAv˖-[?J${S*lpwr1,_8CVewbXzMQBPUNS}LQ3W(׺W]`.N xPQUc7>6GuݺuNʔ^~\ڵLŋ]Tڭ7p??G<Rzm̏!Wc|l\^Sf/ 7trw.+V,ǐju>o!+ʧ[3 Ø &1EvR'X[)||7w˕"|ͮRbnZ<٧G?x r ;x)8ѓyO\Sip~8|UUP_r !g|O|:vkg?ЏttI8GsG眊wrnԽNlҮNV .-\ǟp~8c"˿'я~ ã=~{Dqq~QW[qvT]&aL&1TTʭĶr궺_Sx㍸;`nBc# Zg>d]o|?K/a]?_%Ka]wŗ%\|N|; n7tZcX}R>Aٽ ~8q/~V,?;/{9<Ѹʫ}nzGIE?qҪo}[GoFẫ_7/gƉ>9f=0>K-;;}ǯx\S ֆϒɭaӁɭaLRh5TRx7Ez8Q!o['Oy]/~p[hhGpſG; qa!> ƫz?8'{ձUn/8f{)Z A!'>o{?!>ɏ ά^2SOx+7DƌGGy̕hV^BP;4u~U {ͯ}yv}x솷0qzxsv-j >r%cԃfν%oO5Ҝ;{p#c5+(mu-\[PkW 2_>ƿ.>$~fz [ݔ)q5IܖUσ%FU0 Ø*&1KZ[m%/OنFƻ8䐇&?;?5A^btt:8묳q~^:]'y>ωzK;m3}Sp]i @hӃnxj!(zm/ꉪ?D!:2|ȡap cH.hتp;?8P/vURڋ_b߃3wUt},qQ|,[v'qNzƟMk 壆'aƖ`rkS֗%'jΨp--:ق ԧ>~ֳG3f"rf-C- 8sdR hr{`}wMu䗿vysNu/jw~~1cJ^Ղ8fĬysq-7K/g𨣏7߂5C~+.ftjR^Qy8ْ|阸2uW ,%KņL>W}> Ǻ!Jv~WuTB0̙3wݹG⡇?^TmC==11<SO1q=[M/͘9åq{@y:sQ~f&H~N ~05)/⍿'ĺQS(!juFsdhԦlU'iOmf5w.^ <9A^U8aͤ绗gGyh6<{O:IꞾouz7;bDZqVj&*:Aua2:߇nM!UImM%=[%2='W\> ϩI_9Xh\U"8}{D|꼪G,__]p!ko /wn6 )z֭?8ەw"=,[zΡg/ē0|[@oe_>b[K6//v Y,R}Ja~ tmK k ɠ;fb¤щ·)JYi P!̜:*UA.]#j7בXl8yCY%pe)d69U:mIo}&`Ǝɭal^~iK\?_ eDPa{@i$m5 vGKU2O*(U]')W#!q'S)DWP.-$ӡ[IpwndS,*yQEbCw;[QLOsUz7Ӵ!BgAO!hs`1VB_l:ѕdlOr7%z*^T\RXAݲ88Hyk=fuZ4K>jkuž%sp2 {UT֗jPJn1orП~6 H9rԭnlM1z6o (N#\k׼=\R@ ׼Jatb/VfGL~"ޘRtKFJ߷-B:*:"uovO<2cI(%ȱ[ (:viIl PrUP((ԥƂjٲ)b@DEi,[$)Q`;ǒ34  C5Av1vQ'bN7C `|CaH%,o躙`R:E)BuhX0 c[b҆AH- ֵ:.)0mɭalC&@_PJn):'I(b*ZPzM=,cȋ* z k9ANǬ$1<2(h\59ſnAB)upÙӘD,|+߸ 0`)}<7oGy!Sgj"s|G%|t{Ct? aEn(}H}G-*1Bw'T5p?Lḧ_ $Z&ypr0 ؞05I¸視2"~FGo|m;.<[)|tɵ|n[]?G>GFン0 cV.|{DnW%TDum9{$u&TZ80p j2U:.Xi?2z 3,x$e:< C7.&gr[MQAi1*2o&swM7[V̜9sqQ`rkF-o'>ɟDK\gx|P4sjÀH6HdMu{%s?9hr)P@k_JTeZdOmSGB9h[[h=ɽy(RFC"}qy*MO~1 0 0 6)X'pɗB)R5)F2cx(0('|8\Sa 'ڵk]|j*X%֭s\G2eSSť8s__ݲҬ)-PhQaaa܃J6%qڮ~ITRJz}sG>ի-[J'JYn7:>}/~1:oc>rWf(oC#RIkşG|__  $nTY. w\_%dߢܮurY7 ]1נ%LVUHD(q uFj\ms30o/5/㪫.?fA>Lݒ{z00 0 g*!RbVw3Bz6G; \w ÚpEe+r%>я;g~KW_Eu\?矇/=>y/}7r?o`x*DCr^Ws?=g㏗\wg>ko]dBe-'f[ī κt Oi q7㓟$>V c~{yNf׎ 7ŋy,1~pÒ?荴v*|k_~ ý6۵љg[n÷(ovPS??9׸k UCLh 0 0 ?eIq,Kyv.OkzX1W< ڑ|ƌyy̾ZGN Οë'<8~A^¼1Pͽj>/O|qwSW]uU>y_ϫzV/x{<ӑ<̓e;R}_7勗ޖ/c^~G /ϟSFWF~a'zvH~AK_ί_t[^k6>?oM>|C@QU+jZ9׍ kӒMozO`h|-L[V 0AW;=/Cv/K4sU/^Wbxx~qyA{#O:ēo|xӞ%nFtmV__G?q\s5xs罘;w.71wp6¨c-߀G?Ľ6o}k'>J_WpcC'Taai6֥Ԝ&) @фX'Q[`[.ڵC%`9>'?v)KT9x'>sgS 5dRttZٳp|'Fvʼ{ի_</e~ƺø/AREP̙^'o~vE(;$Z7BQLz0 0 06=TpW$Ea&J/ 83O! |r;\3(4}.@rAa֋b Zۄ͘nPp뮤ullifFIQ({l]vCB[֐rÐp])O|3GW^W7ǟ#=p%AIx__{Ncj1Ӫf RJ*!p{cpf?~qYs0B6 0 0MʭR§Z+{L-Jfz(Og}D~+e###rN{2Mo ?R촓fiRZ)j NTZs2$8Q`||zS Z6| Еx[Glⳟ M 2ơ,:G~L|3ŵ^z+u^#<úut8c)ls6w[<9^7(+˜u pT*i>/{)ӝLwEq1>j$Q -G{~ HS5 0k6)bH*QCJW N>'=}cW­sgvdw?\u_cE3{4Pd5i aPq(BsBZT)T#5-w|W/5oEUijuTup$͐+ME\*!p+]xmT}~+?GHqx'b]w╯zN: l~7f_ Ӈq=g,Ë_/uQg x?s/' ZwXQRNj_k@U0 0{ǣn I>#=UԻUGI)QTamF)UIjUZJ 3Q&qfHBuիnY-B" 7z2nEWm6wiiG1{\tB.wG\9sa67B)qR$cCgu<msǰhb̙gAyMz"ԣA$uu6AM<<4O0ka@%c^0o:_r+^B [˯ b@/144.Ċu;ȃSns SL{s~՜F.Qep\uU.O ?:>p&DWTۼό Ƭ#U|3fsioD? Si}iQR U/YQE$+bap~FA $Q~o4{h%=YAE+ӄJmd>vD]ߤ i? Q%N0EPA)A 6WnMqZ8aQõ:ŒG5'S;zUJ)+=$cZ|vzm7415jz*"MǟԘ&z!9"yNxi|g^pbx 05{0 㟗{1np(O14C'|vUG(ƪ+ŶCWL]򋂒\QEGUX/`R0(<W (YuMUjg+SՃӢ<-Zjv[/q}-Otcq}t(vjo@ŗKW% 9mq9\iWbHq/!wR'kUdbtѯ/5b~%%NgZZq?ơF'`W).opC/x9 svb&f9:i?(lb֤cJLᦲry΃/Լͧ11`lL:=OӤb0\ƶfPNևlRnlsUbVWz'J+ˠhp>W^ NN=R̍«6c]fsQa/GI6PuRUQZ)5ʨXqT*ǩLG)&UJ@= Umx#I\VgFVA_߀KRڠЪ)1R O9$̀q1$jߖE羘.̿91C?JVV贞)iTs4s5FqED(ڻyQk hoC;& ;pPy6Yѡ`yO%Ls]Aʏ2L: ssvO2?;~|hsp3'] ^ -K?\W>W$xϋ>#<9wnS)|x9ӇFuTll_*b F9%ς].sN{~wMpmWtF9˙n8^YF^jC&%hCI3 |>샵kb޼yklJC\LUI_Wx?6;~+C?,Z}WY;U~pz|`RUvZx"ȇDs&()biUA!S-%7lc?xN% UВh!y] a+]PŜ*D40QoM!8S(r%Pzu-s..c{A:)fv]!=5F(*I41R}R~Ƽt>SP2!?}Lܵc!/U: 5.5*W[ٱf+_ 7׸xfbz|Rf$@볇qlwImߚQ܊6>q߱Q@e6=TjkaI#dwB9gF'2ρV'k8<<ٺF .P|=hj9'U僾KקeEmǮ9b~› >oFy#)/ lWsnaG3U+'w|؇>ۏ0yey ^8r{G kcsHnҚWժBhl7_`I>iď:?׼a_+]#c SlwkDEPRE;8ZAwsGv;sx-ZK%K,:lRn% Az+뮪ɭf^(zxdуsFX `mO׍ P'N4C62_G렟.*TNhf6? < gKઐRl`"Pn)$3UM4Vsy׏Z ơCJؽ (幋y“ʵ7p ]r'V0H wܺ mUT_cAU GR=u2X2a]lj&Usx9!{U\ps >|!ڸ̙3gdrVn}+5g)e7r_%d)|`7@Rm_1ARNJʛڳdOjH9r. ~qorCZ'JqfjfETWEd{ZO%mϐ7a ??<2.W! s%ؾ*OOJeObpm,þ"&{';9^Fh5n%==o*̧Uh 0{eUΙWŭ喋Sonj;( ]+j[)axKhnkX 5ԋU A%.)N&(Ayh]xc-\<Ш>OZPt]3r^A㺎}#mKrT?{WhGqkן=D@PZ8"RHqiEk @wߙ}7yڦLv3s3;;#I_NP lª|A/پyN3"3-n_ΊgnܬpX?*ҒU?P?'QxR{ $c8Y i*B'hZ쿈~fw=_H B+`Ww<.kwP2 @ cBKP+P,Άly,JCҗ]z`ȧAO?!A!-NB5V(\őY?eeT+x? \˫~"$P:kh 2]~.c{ˡ=_bjL#۟[RBBpb2(̡fQ,Yڧ(g5Qӫ{KR9LҕE:@玊<';%Qo*LGƂ~-mBO~ i?=&q!DOVB8e߽ǖW.;dy?6(mg{HoƊ[%UtzW9tECˀg|IRL^ vEziۤㄶ yеQCCCCCCCC@[ ~Mn544444444 4;xԥ̳.Owtr&_2>Ku4OXc?Cn&jhhhhhhhhhroɭF&jhhhhhhhhhroɭF&jhhhhhhhhhroɭF&jhhhhhhhhhroɭF&jhhhhhhhhhroɭF&jhhhhhhhhhroɭF&jhhhhhhhhhroɭF&jhhhhhhhhhroɭF&jhhhhhhhhhroɭF&jhhhhhhhhhroɭF&jhhhhhhhhhroɭF&jhhhhhhhhhrQmʁY6B5`~ C_!f0 $L.|a| B)V.C84[K -]Hr TY,E> jŊ(j \!:\F(o_FcŃTz묧Ã:c(E?ѥ?aPZCHq> B;]qT vAR O>I"oOE҄0{eLX4|Ib94,' "7yzȱ8} CBȯIr+(B8Iϯ,a!s9|m`N}31᥇.e@)dRw֗*ja >S(9W~/!%Vp]U>u`&CC '6~^P{H_ܕW G9Vn߄ڏ˪V,14]ƐWzemRQ[!A,"_[ܦHn?`t?$oИAmH'NlQx ERJrk pbE})˓1k8GQ0d 1fmPNHoU8?ߒvFWEwz܊[Wzˬ[5D/_]JOQBɤS_\ׯ.?w=E}vY/YﻮKGR$Wne+_C4] -!\.#˩\!_JBȗm8$HS"$u|Kym,'=1v$f2B:`ҳ[2qŧu,&0MYWey= =N&:)C=g yg 0a@FcY UʲbtFY[hlk$-B:-4-E9y B===ʶU~umƲ&B`EEjB _M0ߒMPFjR]9ٿQcJr![W<.=qy2 P9^S%5,.I~4#yTb!@/l$IhX`[#YY_eQ {\lkԪ@jeOJoz'z|^ݚ.c(^xRbI\r(W٫׭'hLL~5c$* f 4iYt26V[lT5$HpTk|u!(2za2j<F(2zc1X`P,i Xu)ߚó2޴萒Bnu];@ltI:-J9&%e+M[-R1ƫ&{Wl>Lǿ'H[y"& R<$Ye$ؔX yFY: H"HL!-P,XR 8Rj,[Hy+g}\K\OheX(58CP~ Rf ,rnd/s"kC]VRBd+e7u2€ɭSoCG4Gg8XB]U}?? o]Bu[#)z7 e__?Z_B*z)OHF@Ѭ7qJ!ԶLX ێ1p{PK jAFfpe3芻ȧ5dPIBV}dS),H~%y&[L&jHDE4-TrN&.`*=C #0x`477c0`FAcXwMq/<5gF>MC0~X<C 4Fرc1tPP$lV/D"tR㿇T uKi m&H}tl.On'M1;<=GMzd:,ɗ@,W㿃Y)C@F>~gK/Q/6iul |t͸-!]-#Gṧiȓy6Wtܨ?TbfϞW^y"C(ÉH`=FNHHTIx<$8^Ň}LҺ"9HeVXLJo0y\+sf>wM2~Xc .r ٭j,;b \o6E<܄>0zErT+TtmTP'@k}O\G?GO>/*Ӻ¨Ԓ |ȶ2 ]8f>=bEaa]w%&My%XfO^SyvEP-;.![Bv14@*H D|ȭLEA|(SFF,$tBiHubJ=1t@+D$tAA@i+lw2$LVHv5RrڍS""-^B{{;rKsҐT5NʝwO>a[oK/LɲP[o<}kLۥ,FD"~u饰(6Q.GgW'pg`!qmn_>+m4yQJ/L +F 5Q(Q|@j^-h([d no*D=L - T{nĽz\w̓O?=pw{n~s93gVշxSOz(yY*Apqի(G\/G @괜};u'xgLGUIEd86r?ķ;^}]Gwq7jq8. }x(t`|Y0~L'N9T|{P0d7Xg _ԻO4B:t|(\'?N;txAx ΂C=~*dTOC̳୩ABicʔbж +SBT1<(@dZ,N<op?O~c?}tʩj=}W ƼypGo~;{c=p駫YUr6+CQ'jC׮BlU& $(DP{2JǙk$8`oͷ_Ë/=_x!~k2j&/?0,D:;nM[,yLcvM3Oa ;(K>d,dX8ӰєM³.PmBOwjfPx%i$4?m 6]w H[IXԯ u-jjX́i`jʮO"{:Q)q嗟o^{O= {/8q" Bt*h̦a;N4{{g},N[oLmWqWBn`։&KȭlD "BcM55 <$ܡc#UԀd.Wx O>yU_#E<ɪWIfhfqD)q'͊! tX˵&7a#3ATMnftvŐ5"E_ݱa@ˆmj ǩ& nV=c%dU5)b;cvGg]kdڕRזwlm?7WVz:]QDV5$,BY #J.c`UW瞏<WrԂ*|!(?BTAZFSS3$;XrI8N|!F`4̝ I&I^Imthj*eά@VNN7(ZGÆN+I"PnX5ɓaRԇWj/r5Nҭl!s\zY^'rY7܅mBd&?m\lBR[7> &$}/gcPI]8j(gO|x0u{taʼw^ՇK*Q"s (uOԯPzgYg]7]#&a`Dk`%44$IE^MQP(z:{ވSn"dX!(9ͶE8Bzl R֋u20/$z5ARIouAf%%ҋd L8Wެ$^6=8T.Byb>Icׇ뮻V`$I7o)6dsl&XoZTJ1 k!V_}1 &NBpcbͰ5jPXm5p?T~lW!2/f>ᅬ5"m+U5nb52M<#8"cy˘J/H+E0"$o1e=>lP*ԫIGI}Qt\ hQ3rLV^_)-cw#fm/!z}7[GӑdU6šd& úS6$nnfBRprRhU&b'5Jv&L 1u[[nn5jZJYVʚz}!CX ʙ, S@i,{|']ʻcUWP<# E^a) ET'R+|Կ:/ +SN-7߄BBpPsS,否!$6&a !.ul|Fx^ȉ I2[/t²s xEPmW Q%镅ЁeQ$Dٳf;ı}VҎ'Q)2Z|b|'p&M6*2eLdJ&}8$({ HH\#SnqHK]p⼶NzBU:,Xt7gdX8o5^zmTOe1$i#_IfQ#X)mƫ:SvE$EBPbAϡ!Qe@# RYADSc{Jo❬Ӄ R+ɵ4-a!%|񟼅Ћ8Dv)b|m,FX-#Pe|zmʪƃNr*)@"VCP.s2|vNMY7QUYTCmW WD;j@rjiz96D4na !id4$ȫ3Ϩʶv{E aZ.h,S+n >!)lџ|tKԉΏv"$q8<"<&B# r'gBmȑ#1sLǞhm@ C˸a}D"TZx ѹu tdO$cL5EƐQ(XS82d:K2\)Fq)JcC[Mn5&[Q[ Z*[HfeC WP*$U^XS ?|ϰj9N M(]HvOHk2줃"uPo,3E>߆d.4eV>,#GBUYO(=J*[c>K/_=IT5 km!X}G5,M c2`3m0D$#FGy,!DrQ\ sX|4K<%1_%q=5}$DDVÑnhANkG3 >okDbMd7#=saa wR"ͨfK9D-?Y=}%"0C$L_ StY$-nA!Rmy@$^OrO# !z&us8{?)&#E = 5IUCc" 0l&(sVrkդ*ep(JȦho댖~̈́rzD}QRoL8W$&#F!b !*O 3DuzcQ9ʳ!4Vc HzQ"hr"[IYfI^ɓmMӕ"9+8Aqۧq0z*htR!5#ѐyCҍJ+Y&H/cOb{S՘ݍ ƠV6[&ѰX%= 0kV`(-9VY묷.O @=d}}&gBsy=eX 5%HK$_n3!wsXrHd_Slek,ǐ2'eWK(ZcK\ 鉫}K#Ҿ:/Çm-q®:]z"ߜ@GgBiz`I>iDXto%KVHdFޢW}RL9 7βL}86_.D$J9ɶF"\->)#c.uZVïd+SI:r.&ɧ3K/:/;1jr9ejQh):s|>=e=2F=Wg¯2,V]yz, 2NsOmhp6  , ?ׁ w`P~KfQN:@囧#]fqsWhrɭv1V$r2BzTUoꕑc1􈙌#Ն^f(c|Ta0#Pzm,4@n<2^BxC5(@Eʵ.9Ϟ-mȭE X$eU[ uSjS!/"GE򤟩4zK"$( MyT{!V̛F hD =mrTrnTT 4uU2nUtG$YIp]:"&:u_ HXG l7+Y|2dH*j RArg5d)Qi;ȫ ֈncaFꣅSVzG`3%/R J:NHϵu8g},UH]v*  Eh| 1tDx%- Xv;Ͳ4e/zo;U8mo@;oX2K}cPXE7~aNj3|jwhlj1nL3A'BJHeވ0풔34Vc hr+ ##D'j%DMݑsQϭqQjUZ" 5@^#r?x22ڮi%^* N *$=R6b|$WIJxc\yo E*SVuCskR='L"&) " WV)O% )E/<؋/|v!"cU'[%}9.?ID2#rgt ?D-#D $"םoߔ\PU9> L$A-_KW2%CEPR(cQ+3OA)"VuݮFe=l@xW!?Q,>!݃䩣e'jǝ_yEv# ࣉ rϥEAj垎. 0DNLJ[KKe R@r+f.+-ƓߝCK: c>ͽn[ndEY)i2QDY.Reh<<BגQ+?S knϿ9U9sQo= 5J!uYd}D+YLBtb JK䤃c]Y3єN ϐV[>Jm܊]I?uVgyVbY0Gsp^z %4 TOC/g LWzWUnEbH)13>IcX"k4 :Szr$1/}k!療;C{p A%|)>S|4xET2J.V,r n0?>7 ƌbCtI/?QmQ ˨@Bf0SbBd(R)@%B)OUCP!(Lgdco}G-׾%:K\8Kb }l g(gNҥODBr f5d>blj1yPe,2qu\yRQBmLzMH@ `Ei^M?<7ґae'J6EĴ/*h_ !0ɲJʥ@GΕPv CICF}!ÜyIԃ\7 >M܀XQ[;IJ"B/GbT<{m!^YhR+dwWz~5%TRit iX4t2׿L4FH'\'"eFG8%:=Q_̴IF|=(^B"˫z8ɩG$\x *vT^\p*&m>!pRjլQ@XK lU AդVaD2&l#>(ظ⇷>A=ftQ3K=)1jGsV,GH-ޓ_]#[9#y'.2_oT* KG"=}oqJأX'o+lӄ)%f`T4~n#V?_|t(61VwW7,WbgrY>-UYB76n/8׷ヒvĶωqhPC|Q%nXS#I֒-K Wy.!,^/k,nrͿ7/$Y,E۾~,(MVnO{Mk> Sp΍QMշ'˃@E&xYgJY-l0рAq䏯mϼ j8 #p`z.슃xFj A9}ܧ/8$Ϟ&=0چ>iNZ^K3ls7Ѷ r)qjpMEL'c1a<0w%N q#) KZ[w 3"\"jȱ<~ ymk<ݵ `yB]qP=v!˯^}˸~w>Ꝑli:Wfo+u}u}ӈYܒ '}1_ڡ2a=NJ>a Ic1(#{< uK7`>_݅oﶗ ł\tVe*U!2a },]` QPGyR U T]!quYRԓ4jaz6L4 ($2~ U~lD'Nt܈R?L%:>]y֖OcnZHŒeBqS'y# 1wֱlqϠ`(\MfДId O")Bv׋0/bt q)i"fQQyNΫғ Kodtls[ ]y35=x\Ld&\̳|eBF[Ɛڬ#qd$$2O:|<9a5aȸF_^Swj W}2E]Y{Ed r診^]G^<(X}<鿃.s\e&ϭ'Tg3ZoULS|oɬgg0%knd6eͥeBMƘj\7VKIxYxw\?-gk'jnjQYSPiI}*s.Yx\R\d"'KVn EĜ8 $y?ITB75vhet?@[UaF _y6gh1|*7;1+<8nB!`c~[θާ1G[%FéHh2$C^,j)MP1+I&֨ =jJ[*C澌%q4[1.-0IkCC5&vDda]潇.6"͜*Jj+!fIz8”*td|?<6x]dkᔓVe£RUt'|t$\?T0Ѡ$J Je\\S@^Q^~,H-lDt>Aa-;6z `I M41Jc;2tEP}fS+%0--8 2K$/Cg[B:3Dt¥B~L(?YuN}qtqp$Ql" zcv3(0g@'2 yL:֡b5bA now4 tlBcH4U z9|ijP3>~xˣC9Wҍ%Sx,7 %e@E"ucnIX2DKH%IU{aA'CBtO/N3(kJt7,3$gU` jqqNb).|RC4LbVeg +l-%$bn`D"gy3 3X+~_VY>AHbW7 "TQTAo\(˺%-Ȇr]2(QBc !d 2C@bF5L_A]VF3磝Ҋ'2dZDK@^I}?몡BC^!-BѠȸd[VjNfYHΪ(%" $4Պ|nYB5 4X%622ɨPTzCAQ4x?gx U LY䕪ĽYb <+@c&A[ vZk4.:e?4l:{;G:( ) 1}˥󿃤Q"=l! N]$ d$14a[s:p >e\7f,[08Ӳ;4H N23X=kߟgp[}5}Y OC>|6%啰Eb!S¹&K޻gYL[p:OSiG`*eZ']q30xE!FU:?s10[QRI`HrƣWIi7eq"HsȋOn7`ĨRO\IcMyVLk2 U<G}`-UFpx_ۤ{,WNKSĽ꿗stđhЙG5 L)dO N,WVG;\CecTeYFUQ#NF?hZA -mE5Oᑷ?ƙW߀{}aj: h*p¢`[ً[iS>aѹh_Ҵ$^l?mQU֜a$Y|$!;tOk nZ߿AQ /8,IBAzʏՃ#!%CK)UNh3Sg_?/}:v)7¥ob  OJ~ !s. ?]8ũ[_7~}ׂhNGɠ̗1\ZM7W󮂕j?ReHUik΢ }tIS!䋪'"4d=Y6Ok55aa+.Whʱ-.0j6ƕ SIzCT}X2UE>F[sH&(99t8#p(=t}~3թR谔c l1Vʒ>zW;@f_/{1tl6)8f< DZԼuT/yN%_!_ d_EHJn<$:YYVk71(cAcƑy$G=21^kJ! S6W:hl}YBjU- !29? ~bMY(u0'WA,HbVL羚tOX43$,?ÜNLye Jjy9xxgf\yJ#Wpa`r0!+$I`~~(Q FYOAGEV+ D>|&SaZS /16?-pAJV9FD#!Cլj:2^Zӯ"/9-z]hi0`̘K>m8;0uz,cʶfVTwoVZ#KOAclE3#өY?(z}PR@2풽jB5D"%}}6~{'@ouUv%/_ե7tiq5 IGhdnUC5yO,`oyݸ׷s$)l kVVO^Elm.^"`PՐ>)Gח旿d|#`:$BV}O~ lz]kxr )/@T|? da-Or+cjbq}xpo9BqQ-~jHsܚ PʨaISRo(SҶl, ]qS^.:]ea /a~H/47L˯&UۛGEk>Zw'lƘT\a6(l 2v4Vc hr+ u\NY(Wh&d h8-Ѭ{izV,r+9etKK\.:Iyo^̜GOlk$=~6 Y(0Ϫ WWjΦq٣.~N,rʸa*̲xᥙxi_s EXhRz[2$d'r,P3_jd.!y㙲a#W~kn+f\$LD'> ;Y[+}k%qDdup m.F:>.v+g C"hrɭv1a 6Ѐ\I$ዹ.i7G|.'/\_0DciJ4I˜>oCTInJ<@hl255JLb:>H"m 0_)Pˋ̣^1 1cAZe#(=}&+O+=>"BOE%S3ʇmrQ:$ :z>l 0~ouqȵU5QN*&j,MncE!d3Nf|P֍7k z̦:y!:IC"H`ѦSW*Vٞ^mwYG"HX&뿋<MnC[Mn5&[{u5!)iȊPdMxڞX4h#rRAI L4z] qꖛ}>'T0A |Iİ1>Y2,!8.{ m2sIpmFREH)"A=`H!z) YAHǒY2ey@V щj( Zq+/.Y?30nUI(Dz,7Gғcљ`F#ACIr/1( "7!W6o 5[iEuDn̊\iixm?W qPsVOH]PN݁]Fp=;ˣZBa^_MnCۯa_C( zwm_Jd+R!LXVaV*f2hwRhgd6QF.͡"\C5FAzyHzU+)KCg,ꭁ T6שF,U%%5 =۠& |S#id~Q]H&%X yy^A@^Ej|%!i-Rl|'IC@BB׌J i< 8Q"1)KHe7I"?Xf=!z8ađ`pq(DGEґ,ds$m "w2$MѸZKʘlW,e3VHzeۑKq[LDۇ$|v#:Gd$ymŲLȃ:"rRe/E@D71u u}PucOxj_q!QeE$__ٞob &cL] ҙM -e4THrzs#r-[m544JBsbIiɲf}e'GeR O/aa K40"ɉ l11MGZq:P)я#fgPrn4e̓Ui'I0fV1\&fi_3(En7lqIdbmp…0+U$2#&wڱH۴ 1$s]+]K%K7(pZZ/Jo3ɂ kRyd`Y~5&B a)|Ȏ"%=o33$n0IB@1F](g%h`[Iy_ݚyU4"xq&-sٖe8l?gX],Y PƟ¼'C~{~ݠ60!j6N7kM>ո گeJ2L=O=Z7#L e6$2F}Zk %y#\V^L]7[{l>n hJ'Q'vX}`;7m)V: >yo*JVfAZ15vpvq-0w/apа(6il1~ r d̚/DۜH640iiu#q7`ͦΏ?[O@ҕ%YKV*p]R] 2O[} &LOBA3(%jLkZhC2adذHu]Od$'Y9fRxj,}mg,*m,$RFd,Y~|!@zIzx.H-6mOY#>}擤DV O 317aՈrPȩj5;l(jmv18qw[ntՅᅢTA'맬ci"E8.YΛyIj } +R#%%Huk:M} ٶl(Iw ᾌtP6C}ixevb^(ve yyjZ4z24 [[txBJ2xuN8|m14'oz#d :% Ϻtl+߂fY~/LJrvE r⨝`][gu:=f<45H3SS4)F7cՇcTioF:d# vqn֟)C7>kj|F1C]bFzØ.hs/h6`3MՖ(zF4&UtteNcǡr-K3;2ov-oY?Y?uyUWg /j_eQ?}@ۥ&[a>>-$g45d73B8v N= ?z8n%<~jh ws "!9$ cXwL5n*VيkN8C¯!;!m[$܀2.>j?j$E"i4YR$n!6֛1f5y 8rMqAcp-`o}= hF}%c(C6VC2g 1"ބ?yF2]Z#ކo*#ڄp}O`5 IB$P]i C[> zs(Ke襨A!f[HʋsYckU5$NGr)% t8L[m6bc|(꘱iIE!6eGo!y#lؔAsH7w?tL+kɁybe Ie6a')qGVa4%c7\+kEc6o,mCLňf ?!m50qz^^9!:5svXkP)bñVk|XE`7ij G3O;l!~rv(U$T"@5(*l4s$#8pP%O7Dw5j<QΩr!^I;Ԃ‚LHq&XV c'‭AC~ 묍YEsv'lnl@Ef̞645Er7yx~q>$acͱ+ቻnG~7hx Zخ[`I1yL Rtt=z$2 |+氾؃ƨzЁ܌kM{ XY$܁ iQp Mr݀M70ֻ/Q6e#e9n6Bn_E*Ƅb ?MM@r[ݾ!jX05+ˡPEn54rǬe#OQapC? ͽwŌ4|;1rH\ PyIr{= ccŔ詆XoUp߅cxt~xXƕ=n-V^o29t}̌ѡ` 0?kuv=Gxe3;G#:.l22'{*._>".{-o~kyp`ګ{0 ? o2;CK=xWqxA$ZXugO[o9 p/'p/}e +p&0:B?2NG婇E1tP3~չ^zgZ+=?"vxQ-a 5Ny8a0e8vM~@$2_Tz>-qDR,MS&A"#]IIct-e\H,;.ʹ!76+Ϲ r?';D/ԋ8x8xU0uY]JAZpO.YoyAl5谝C`-v $~1x[ycdϭV Ș/+͏Vġ-x_` `ə&xoc=A^}O]7sfL;bwc%|T{1yK91#Q.ο@b3\%+՝^B)S=2OLWJJ+444JB7ӄg_nz>|E'?FJ+DY̴੶.|c7Nfxvӣ_⚿+z%[nkt| >~Y\zh\y [!.·vC7Y ;1Ix8??܀QxsxR~7fc|눃̴w`P832Y\qN{7l$IQ76`^\@56>J)Gb.e?4A'eȩ$B7}B&͞_y",y]LP_:Ѭ5Ibq^7݄;|C<~<}'FCs˷In>x%pࡸipObCˠA`w"XOコGq(z~n1S~ٷ pv#Eپ8ϟ$JgqfE0u.tݎ {;(Hzxi|+?GX ƻ{>Ə^~{5HO-҂1*!vot? @ۈ[Nٍn7p-@Nl^{},n;xյc5=#dz wh1W\z羊+c@MA+~\3,Z2/!63>}:K7eamL'X {>b ίɶ3Nx Qk4F%9eHb{6bd<{!@5;U+\!6 8S0a ݾ}G; 0>JV {;V3'wa#P<alҵHt$wqwFRƣ/_7#VCR(Xqڏ:58̓pwOVGظMpϢۋiྷ^E pG\|\y}Ɔ4~s^ WJW1v$4}*9+ؕ`njƩ{F#RZFKQ%_iZ#{=x%iIlT=}R5=m ?8|]y|[kcGG(מo+r$gq נ1J:h*I# :'j^)vΩW 6NHLGQ41t*;бgw6&KtKoMkǟf2=Lx`x!tZ*fZ#S {&\7~IL03,EtB>rWWhH 8lwg5~r5h*?K0R;g)1dz8F'ޛ5b&Rߚ1#_1vx#y|:W0G2a:Pc[;on0 WBep|`ʫ0By3*9\"`y {A}J'F>t"ԏCZq́{J]a+UTنjh7hr񕄼dUi-Z'?~sfC2YLT"a7?E6!rp^]7f*$|.F3x' c{ aP'Q+H/1 +֌ H jBgk3Z7؎'\ x7Pu txa%ȧab9Ln ^|{: 7|73IL+f0<,jڬ)뭋693g!3 UDQz !^fQ0b) uF쎍2ߝ4$Bjߨ4[Lf_]&p#>t0*grВ7T2> o ,>UPq|6'MQ5?(ʇk'ʢlȑ[984w"-3XBfd`ݸHӰ`'Zc/bf`=\qfU[ qѿlI #aґcQ[Oc~nm0PbDUmԯg?A+NAyD81]>DUŘFؽRSAF&_Ij$H\cS$8oÛ<4XsH'6SXmꨒmdASW4\17" Qcp&A$lu]Gq?2YWy$GJ.DǬVDKi8ƳazvSH`mha>S0  ǠЀ&#CbTBͤAv+k=ʓ{ $V\"2fȗ:f5a9 ~ 7FǁY_*dщ$ ~M2t܀4gȓm9cID]]AU Q50`*"=}8Vo/`y`7Ig'1Ax5J"l.yY橼F^t!&h1l:b9r 9MͧJ =c4f,ԇ4B?U#]]apǭ:`G11 JZd_q Wa 44jӍ_12dc~+i28me)랍=? jAGҔQsZw9z뭊ஹpڧc`o.& k[z^m)^ e (aB?Ξ_P$I]fX4b/l0~m3+,$ &+y>#Ô _.digO=}w{T4: TVǔq 8`~6x8vrs,%#-6k> kgwCI4MG[ Fй2ol5}:3X,2T̡N!yUO>?aU9bJs3nVVuti* i71^pˣx׳-\x8yQzqZ7')R$.< .|fw^Q4SSm܆K HÍ=o yoc1qѷFS:n\_㌟^I뮅}l :Y> t9 wanODBߤ1HP涕It]8~@L9aO|鬔+|y2_֐9e1!`(4,IG ,?ęOBF;ocItq|bxg4mNLSx׺ñ8~qݝDOƆo3Nڞ}CkO(}:['bj$Gw^BPہ4PC$;l-nm8jMʽPqq&kaUVB`qٯyw'>yUt8 Mr "8 =.:|"7 sK5fĶj KsHiIX,[~H:Aqg 'F}v4eJp̄ϭ//H?teA]f2xp/㭅jKϻ!Ŏo!l,Nģϼ .{NǧԱH;bv`Ic# w't<^8}spstc]7иg_|[ v}Glņzi4V*H*D]?o9ZHh=xo*Xsp.[` P9a۬G5U.Jsι8ร0`x3z. P:+c=ѧ5:ǣ#7d bEz]k]M?PYl!hsUtQ7~vExe"_ vxp57*k{k24N:0d&hl><", ޟ}뭻2b'YwUxq rM#ᐜf5x`` 1G7%ɔ8~$#)3Te. 3ZH|%陕dgMIrpR-xOԴ)! ;]„qImh15V$s˯?Hr8[k$ӱ,n8c*N  0yXcJ8`)8b1]6G p1a`s \6ÖoS:,FFlf=1l]٘:d/?]w;W]g~ h::Ü"v2'P^wyt_1j eUB%mX-]NOr[6N !waSهG˩"kY1!2zK\H EgK4dϾ.ޛ1K j| R~- tAWcñ8=l ,§=y?{~>jnզ80j'>Wd)bUƢ4o&gfSh)ᔳ/A%;¹~W >zy$l;Z |ȮXu}袣ě0j >[l)F nP`olJooaMjgOT{2ُx k#t\:#Nm:QO 俩G"7cGR+U"IÑ!I,Wvb<ǒ齕:!ϩq"Ucz!P(Z]yXe3 JZ-#Gṧi8d/ߐac -)CL,c~&Y4UlYKN9kfpl3틾>sH$(̚v;m뽸W7bqh : ІIdu8grx'17؝GcS C<>j^}[М43E:ac&;FRDX!7ě~7zhJnd6hs7HA \{h1 PTf6cY.k"aszcB&7ƺ"UEO>.-RS#E$=WfsKGQm`ldUaט>OzOG~ H%>[4 =0TRkGwpeב@6\=nbwOUVF9Cs"F)G6jyDb]26@:HeIX3}-,4l8 ? ֧L$mMձ W^RSc"aYè~+kM$UU!6jVmJ(n hn7=.ԏW0eQۇ`LA=Tc[~ aH\, קD];;a;Pf` c5l#+sL=T@mkXk\X`Pg0X CC!s$2I:"|2ym䥣>`]pĎS`q.N< HrWa|F'$ajv9q,l5;oLION}dVkc $;o^}c|˟:j%Ckoäc|WbO8jreMC ʥB\`='a&Ng6v@9jol2q]9I7/,xy˟ X` x-H<9|?nzH@rrj4lnj93pǟSɬMHYQc9xQstJ2夃iPe'aIanK> $AeZXCo4c$f /45!tY']U3`y m/'Wb:kQC1y u,+/|GFdX'] N|ΘC.-֛ [8=5Ri$i?O@qɁ`Ǟӿ6"֑GDwȐI+&.46b~y['(2݀-6t,(S@"}֖Օd I<(teA&UqFQ3AUD˸X>LH6L~Q)/$ yAD䴚BCF >ue˲=Gp3)*uCͪpUmö$sѢ#єh_v OrSc嚉b~@!{6]>uR+6HL8 xaHg1]rI08w:Hl=RJ?ީXu<!*C9K= PVI:eȭ:ʠ<3u.4tw$nBґ`$-tPeRcOBX`ZQ-`|:*In֧H AYk2nҁ$c9K!3FJRoYgu? "0LYY4 B̃+zdRA+,d#b`Sڐ8AT`[Ig͜T ˴0AfMLS›3fK~vý?8k7'eeAUֽou&_/r5^+ 1N-"YM,\$ky F3R$"v Tߘ˶`&BsIa*Y -"H=rlbE9g p+ jCa!K 4si$tB*sĒ6ni4b4@ $]jwʣbI찓Faqɐ-ECiLF/r(;NX@@Z}>-&1޺FIpaastg;BJ=$tB_ъ - \!Ẏd?5:,Sˆ*eNX*r(1CFS+d&IBY`f =pHL1N'GBK88Zr"I47«ԇZ]tIb}tHLJ,ec!5dh2]Yg4I P\NZN92HD~ÄAY\}`APBNMU%GEQr@g}gt˴e!aT,>3Fqǒ-$F:0#Ԝh_jE)ejj$EQmAˀ.M3\wJgdkskU"ѝE`>(d6 Ed*Pȡ)BaR0N!A=r} qF7j%[nʰ܄-AG΃K0]:e*OMg6@N݄y$[j(KנՄ,!0IeH+I2zk]vƶ&t-Tm)+}{lV+5U/ɠPyv?LiЈ$]4!E1Ɵ+2 H2m> ITƍ$P% ,x i =J̡J)'Z#-P@$~ /szUޝּL#VQQ̫O2L9:^#s_>2R[3t#w"Y5 sG"AWRC dpG@_hM4Y6x$<"(=-.y~XñFTJF&9(C5P HX>FI9 r$9.2(O.D'dNƩC4 F~e q$$2ޱL}+d#Nˇx@OK䵄*gze˃07˨TU1>#O$7y{޸LKUscF8r1 pBX;asDa(p{c #< cБQLqX=A C,$Wn Ic])WeR7nb7ZXv'2b&Ӡn0ONN"nĹ)C:n0uKHpI~Iu ֤Q@7LӉx@N*&((4^;dנPz7qlݢxU?kBz ͱFyz 򟔁3$LI̤wRPc~!$l|J2#)fhSarV@'!yKK`˘FiH>l䱘8 *o4+v&((PL!9ў\+}hy@fFq5zZeqZH2,t@\Gq}IHh{HlS a 41e'rHlX~9;8Ɍ~ :zS'Cl_[HDetq% )yFLZmDVl5AYdgۉ-Z:P%$$v Ewx̕oy [pS6z:zԪmM빔 cBB|!EWϤQq"Z\I,iSVY(q'Ip\B@>Z]z 'ek$nD zJɮlGݗefYZI,M[B$=UMm cEGtGfY,W] |x\JXGnd*i3AusyX3CM=hyNe yqlTȈRl|5܎S'R>ɭxI)f]gzRNrE2U}y\BȤįM~hd/I L$m/K`KJ&HҢy񀤡`ex\n+uz8rPR"g[lt:rXep ~JF+JH`Ũ-1>: #)iى&ɋCb'yLyQ_m+-.iHȜ#bixLzT#=8J I|+K\6(,,CzoSz%]5+zJb2xDRJ^"B{dɭC7ybѕh@2q)ɫz[&*6YT /&RQyEOɒ9] ZGz$\G,I -gqy Sɋ,`YK}R$Is*r^~*gP $\&Gie:UKyxn-O.ΊJJyPrHKXtcIO*QkAthNˇU]y8}dHX-TʌRtSIܔTC'w 0x:%;DTV-*r'FNI:1MuڗEVA!t>wq<Gfبy]H)Do,mDuiZ&+"hrɭv1,r$r~4N;8`1aX8I@L AU¢Lb8F^3aF^ j!r pIra#9&;Ѱ˲1EDiܙ e,yL^KnDdg\D7("cr/:'BCfz},E>]|Xtje@A%(·ݏFjr4]q \'o-ڪjmyGZzd, 2֕FSEdHɖ()#"Qz2?kkMi2TP-!MѳGWb!F A5܈E=I#aU6:juh-nG%OVxBy|/=/?6X/S\@b+eQIH;)ψLɄ Kx|vHe{`ؠ!te%QG)AȜG7}$%yx':+=R9DW݂Kϙ,ԛBȴ|T]uB {DgTYqPߒW2I*g4e װ`v^ђǶ3>KI.Fw{eH2,ŲϺ-KioǟtZ[`v@ː!H1ntVBf%JQ8rZVo<@޷TyWΨk<0!'uR-GoR˒㎤z?xRbVErIyNJꞸzn՝xEɃcx>3 Ⱦ{pNmx2~=4~_AۯJt-/WYxbH\βVO? $OKѯ:Lmdg14=*N5@S<}vXiPIn8`ʤýe*]kyZ }[*'A \l7O" S&XHIha &e)-8o9'eڮW$kEzIdA+=|K'UVC8s'wDZE7$TEr%Q< w^ٓɊ=b஻}>cDsV,RuT9IPq:"AbYD%!i:Hg؊#)#w(#+ɖPԭx mDr?u\.JSt1y N̕,A\?ɑ|Z7 lNǭgҌR.62$)rn54mi44Z>SlͶ(JHїb_}59wJ,IP#P%D->R|\=4aR`Zk⩧Bİn8ضz;"P,"c}bEP??>AB"iK7"L_?%gcGx<%\.GgTKe޴Jdm1W oqyz ~P}"pwukmȒa?)=BH:7O>VV Y;4Jͭ*_WF[Qm1DC%=Wƣ>Q(HD`]Į.E$V2&PD!"NcK!.}jS+ԡH͔ۥ :eY`"a#hES^4HDzVOB^u=Z2,h" .C4vwQ'8R/d_!cƌQE :C[$d]}0a 5y}H+fDȩ)hԘB!˾}*!GaI$QOpdcaDcC\=(˄FPF9ZH]S&_m<12]Ʒ "SolЫ #ȏ+>NHY\!DM8tXJ}BE|?gہ(Dsi'A,NCiqD"zݐ3fC]?R~_ghrL8n^VdL^=v{^d[ܸ1ZPW=٥1A}0Ј*@H@_!F"Q wPDV [y( C_ 6bCzoHIOފދ'.2}qdDdռ U4?Kf4^GdY NE[Z5w+E$_9Y6< Bχ,)5y]hwQk?Ӿ}HBM:* vE"EĆ^+6~ XqQZ A:H֯MN l@9ϷN;sy)tQjr?10DGhq;_ R*,Icz&!o3[xӠK9'%4&,WȏQ %/%[՟RZf)_!#BCprkNZ GDGzҥ,U9Q@"--nc&6e"yuݐKlr) WM/":FycYԴ-˽IQ 'lrVif e-ҠjG(D*)Tѕ265tNm)'=KW[W*e4|o,VQ j فQȇGvv|_k %OW$zElcF]S஘j*#c0Yѡe&σ1R:󹆒_ŨIۤaNb8oތ$`iWWK$Bۂ~]W(/^l!k*$̟?߸Uc̙&}4W^=nQ)밬>h=ß.&u{DKfZQ6_odݧ_:aOy^]2v:kxQGap`4\6ɶipQr# kaa19XrkNfiYdBG>8/Xn"RC)%{ 7?_l~~CЧ>iCb$"R_AduM[Y@(0NiY'Bwx*[^G$Y0S%1?i،0slZ`Ku1hV +wgE<4$оODy(UԽDVC+TBSV\qI[{Η/iⵯ}-|]d o=lҮ 3Uc^oyM;S̆2>p?goK@R^Z-;dwx:|sx>ol3V%vYyâK|^w D]]DnȀ_yKl-,Vb9LR"GSI蓽k}Pva}2>W5x˛ތ6/9l~\zɟeU bƌ[׽l1وᮻ2?c=F%7'S?/Qd$ z+݋~!.FyCng|Kgcٲp 8񖷼p *wy;lV {[µ7$QOީF!yԪW=X&'?2+9T*]X`z=[l]wzkp$񏝆W+ Qu? W=W]upGp%3 ^җOdcfS\tE c=nim8Lcl IG8H[툝v z*gଌ"7Sjrۍ5 5yYַ//Wl ݑ<.Z|^ՁYFW/~8w㠃[m<~5.q>F_CCp;_J|f= gۃM7>|'n=U˺7@oSdxqaFt;6+_*׿1|g0cϽ¹_!aaa1yXrknNbpGe@;Eq͵W,삍H 㪿_3>{YHXda%v`]wo S6Fc-ƙg|7t1xN_n{Cgwxnymq9_#c|O8_4+ETQ}Xyo4dxKހ$ _jnKw㟱&[aͷ]i,=}c2-0eW^zbͷDgg!˛m<}ݸ[qw ~Ń~U;u<=(r)wދ]s=8c٘oᒋ/%#cY2B~,Y6%_+6M楋KG7}N<$h.x KHjÂo7n!u8KSNnxn_Il{ù瞇|Xw37m|ݸ'?99򾷣_~K|#!kh$c}pV a­k~◘&x\y >݇y<~<}}G|DZ %-,,&%&H<*s}MۮNϞe⪫;ͪO{*vc7|kFWw'FFp8xlF3я݉pu| x?Oy'O?lw {'.Bx M_}K1O|N)~G&O5df~aw] B&ۋ~~VBh̼Gᦛn2n(Dl_fgI6Zc$eOH6섏|쳸qy_77Gߎ$UzҪAn <07̀CYQ/ceG_,W{УbRh?83?_^|ꓟ6}l%̚suɏ-oy.Z d#)M2)ͤhhiL؇qeużqѬs˺ͺg?cNYg~x^ct0čW_I7uo:ʩͶo=X^w}7uFW97~_Gpb3.#f!YfTށ7=#7e?6wЋ^/>ޏ:w Ò[uzsɆ_b4_ُ\z)x ۨGʹR'yy׼t=RfR83gj$ǐFifjLc٦`R1]." o8̐) k=paa=0c~k_QT:x|{W qÍ7p.(GGm\ W{ghL^MFJP+Qi2e.U|d 5la=4'</q-FՄ}?Aϣ 뽖;Htu=QW:a-{/{ tbl4a vqAXz()?G[]^c5`bL %6oޣ`tt@V߉SN~7>ϘCK[m z͆dv4E:'UݙLSN2<| *JwYXt1b6iѬVGX;:IY;Qx-,,&[c,I`h,D *Z5ƛl CGbsQ5 e|1STT`p`%YhQDxRh#>oMsfcYg}s!o g}N?LgsYm]P#fNc$j˭l`)_@eIWDr&]-WI!v-}"J0MedRn=UrT]gp==52CF;;{Dсk Ale\wƒ|ZִP==]f1aˈFj{`F'fYs6P~3<أw7mm5k_0m4T+5 3 ѿqffgl;Wc B&x ـӜ9m5\/7t76d3DI λqw3z;$HxJ4, mf$ԗ|_ j٩U4Gy:f`?s6̧;+L,o'Y Yo| `mAOoH!%kZXlX'9/5,ng'##acC }D'j e]$W^iȄ,"-N' <ЃओޅKciT7`IEn:/,8 w`fQٖDEzvcL _Qiq˭bYs Tk8_k^*|oo[CpAj] ga^~Қ:1fo!^yx^}B[ayYg1/wnh"{牸K$IҌ-6jq;lȇ?=vY$<W}1#5BuTu}V VS[VrdIB >qG߅/xӛ߄G?;`}c8wP_/{kM7YfCoL;M嫙uQO!l C2 pi44,?d$uTب7n,_akp[CD$OZ4Es;,Z| vm|K_ow00 e`'Ať9ms ɉFG[h)تO"11RO"+/BUƳW|^'KE,4.ڑU:H>}r5D,4nx+.G6dYV#NiQprMuL['ML Jrޟ?\\z x^ڟvK/*B2>஻azzl>L6#8/L8L'nz7~G;]GlŖPc\y {[Ab,t};H|'v^/3@"Ss0m^?_zS2dmH>t{0~?i?&)ɣt?d);gxDZo[b;lL8lH~$~czpYů~G oĞ{yI'd?_vjCů}={(P %k[> Ne^w$tuvv|-[EgGNy{V[7^kU^5TK"c)R@i~Gά&Td4TkS.mza]s9O;tC֤ʞ2v%%+6Xi0H>3+Va5W SQ68Z@{"i_]DuVQ$vU?Gf$1RHq46MTyI\3)+tExu8䩑!#c=?\_[L[uOWa9 nHyu67 Z!Lȣ"C*dqSæ_>1G?T̪e؟QO:6al(X/`#IFt2,y~|;{ܯ|_yJPX_c6=WYyꆺx%K4TT$#lq8 J㻁Y4TK7Hr+R{Lw]2og @6$ϙ(*pkph_jrwɬme5 R~/B'JtXX|a4dr˩*|ϻ) &KO1*RK`҄NҔ$PUVBVwe-rtEV9>UY !ֳBD 5/- bxkDH/pT]{"EVA1yc "4sщZ)jKb$9 yR6_^_׋ H똲}CyMS07G.rQDV*Ӡ55%JgW%=1},T,,=/ 5 {Y"6v-)dz:TVRȏ $ړ%5Pz&Gqn<_*jV['sƐJ>VI_Gԁ$EMYtEj X^}k>0?YRCxeASC'݈JrHqs0_(WNA{%NSMAl[lLonQ@譚/!xPz.?>OLQy21 !,;KbACej%aaa1yZX{_W0hLHMM!㯋r0aP؄LvO1Vª~xsQp&u+b_dV&?b[u,lkŸiȊȦE]yZO`YhꑗaYkE֜(lLFT0Mc5:Dr1eB50* 6sHUԯ~tc+\SbcrZf={ʽ/ۭ{fJŌ)*{+<%EQ-,9H[kȯẸE<{ {pu5seXU8Qr{V|eL_O9u 10DigRNKRGD8έgp@ȐINV57Ȭk+(A#ϣ"`no9r'\cAQDr42nZv[<Խ9mS̞`:wK~d~$dVUsGU3?\k Ri }uo(ܹ Ubʛb@ZZ !&IxL_4 ˈʱ!R\_B$Q?\Iq\r+flP6~g*+B{~fyPOe#)}ݽTw-jj*,)zMդY-t.c#:[5'lkdhr@L7'J*fb%@s(V^.X NS3T/ɟ+'p(XjՇVa3sQm63T-,9<F j(YWPK6Y%-?+2Mqm˸iq[V\_rS䲲I&}f5VLJ~3f0k3de(R.K[)vYN0\H0LtmUR^(mus"=r}6CӧOgYYf&S]d2%zxnIiwV$T>1sj mAt-,WXrkNb-4+hU()C!_(x+(=D}Q%/16CmXXXXXXX(t, 2yc~(l uZ}=a$PTJOE%Ѿ͐ ]ilq Mr[*̾*JaյX{ J__-ڰ߄ZEe@ 2FI_zZ[zb’VV jk SPOV[-Hn!UكtDYzok~ V>uĶ8/)YXXXXXXYF*!:_Ug(sxs҄Ar[bJpMWaϗ!,wcpRNPJܗ&Ÿ (y8eӭ!*;ۍMcǴ.MQq S_^j#ܼoK旅V ݵ6g&=eEЏC[rkZb jЗi`Rgz5&QD^m:Pa!<2 Q<|,GI[ cZڥ "an~RD$1:fa>l lSV]>*䮣Y/}_\]% SS -XWaɭAD+cb-5)9@ +X׿V ._זdCZHSN s"mIIy%P"tpо7/ĝ= ߯O3.::ՋW?vu[tu@O :cV5̒[uZXXXXX.H6H\tH@=u1H{- y@薐,H5%hVH.K$:fZA6b;{n^JȐGD?͋p]aq -uG^gxspv̐9uiD>˭,[XXXXXXXXପ黢:V4IA#f` Μ_y^ 2>[>I4`QqBJIͤU<3oޅV 'iۦf(VrkZ[ CzSm$>^~ Gᡇc 60oM-q$n54(A6 JdIX q{mCRbnˮA?)pϢ%֐7NhݲBd9{tt`FgYFd@D1|V|Kn-V ZXXXXXL9gKG/\O8 /aKr2TbYr>AVЌ3,b<8o<nϛNG|珸eԵD~6,}<%\<9XRAzr`ԃD4mY 3bU-V3{y 6 = 2Հ:ߵb݃%f흃ms&6vsجMzjآ}xAM":Th4tَňc௷=}h]ԃ =y}ܿ3r~|Fcxn91<ڜܪ-ɶ Hytt1vч~]ز#FwgX %Kn-,,,,,&MUK?_3 J>4ja x}$[l)vvͦ; *я p ҁHLJ/oⶃ NFo<{d}a\#Q~%YLrFڋ(Ў4 U*.Ø.NHp+!RGj_o) %,<7˨ nRb0#$!J $uT+-l>u=w%ҁ[:KqEa\y'uޮff6BM)P GI>6; [pfbk̙;핸򛀎4Hx[^Op1 Izh|\ƴ6.:3ؠ1$Z?sKn-V ZXXXXXLқMnrwGmqo¤ARHt$>܄#FYrsw‡}hK/X:8[`jq.NQF: } ]gaj ,EOg'Y&z- F@DV<­U0MC;Ffǿ Z{b$ĭua<C~2A.1ui!v3];576GYCՆH,Tj54G0z+x>-YGKPѭZ4#^>ywp$ 0B\12'EJ]p6/}?{/p<\4Řo|[zda5Qb݃%=ƅ܄7JZ!DP ktWBh@X H"Sj$i@" _T*3io3y6 [|Ǘ`hN鮳(>(F8_ݍ-7ϙ-S)H뎩; C)Z8?GN:ttcA סZkb4`Wu76n;|o K j6J D栫ѥ$m8˝n :Q]qacF|F_|5?cӇѴQ .GnfuݷaL$z{Jl,l9w.6у]ؠsHy H|C~VڀoMe ({z*%L`zOF{[-oבio?R|Owy/ v9%, -)RbYyÏ!n=]o.M>yAZ=D5KJ`F'c_n%6+JIg2Knj=zQ-ubtȢ&$6zgva[o /pӜ.@8Ȩ[[|`sZwbxtC#|> ::*@'afʼ/J34bG}߂%b 6,AW\IΪpn2>Hϱꯟ _qjE9%Kn-,,,,,&Ɠ[-C^4UiVY ,dz3sc=)%]b1c `HԁhihXG5|̹T5hhL tpՕ?u5p0ɭY"EѪ,n~僨ӯw-!E ,,,,,,,,, Ĉ߃$LF+H I" ?n-Fy2l!eF@DZqD"0PKkaYǦMc#,K7xe/o nf-F (ZmH.irj0ZM{ܠzRV׈\x qeX]%WXcXrkaaaaaaaUHJd0EE$rDRt]Ql&t:ҍ8مRWnd!i6I=߶FP"hHH>[@}PTvrj:EHZA$XcYacy5OO~%k`a#n7!it%YN%Nޅ!vFڙ̫H*9M_+":? IDN{$DGMtmwu@#"9$VI~v)z[)J!qbIhPZ'?%4"X}״^sfVQrGx-2̶ ?YɣfyCD~_>$Q쒰VȜ+$#u^n8cR'Id=>O\iLҜ %}§~RVoȚ\׏cԢ6%Vu}kOH,,,,,,,,aKm,\r[_VuLI,dK9U~1pJ$!M+5 x"+a6rm]sYV6|n5?ovJHvEu8=6*zZ#3ώF9k ,x\H!q3}4]N4d1AH^t$nmrHX25RVC`)䕹$r-.Aå*FJ5* %yN(mn9 Eیa 'Hz{(KYJ.ÏCtdn½6[ 5ozCGo:$VB3fDLFVF&de[R DkX.;$ɩK*«E&pWJ  ?ޒwдbcDM5kg,|6-(WW@GW^s4,i<Ò[ 5ʪKp_s6)iZ.%PPbWS :< -'!|$msf2 }G+e6;1(u ǿ#n`0MZA{9Yۚwwd!ia@L NQ 5͗M4cm|uɸ͏sB^ZHa]Zl;F4Dql5taZ,X=hWD JHN I?yx3<[˚>"tt/Ri|YkE!'ɚD;.gL-gB Cjfz0hڀ2)ZUs8p[3J;HcrXYzYO$1,X-Xrkaaaaaz\u3ぺت,#yd^W#ԯayxcGq!8ehHu.n8͡ :*U4 RVk£6%un@ jEf {`m6N,mW=~K4M1!W^zr>ǰb`ɭAA)uX g QW6]=!]"\ww?F11<@F3!L|TbHoq-@B2p=5dt$:ftv` gc`fad2Mt.^;c+s7szb<#ĶsSJ`N"tDwɇgpVrl$~ n _A3P3"9u4CĘ.'),Xmh>Ij %5s$cRxY WPCԲ<*}N&z#uUV͢$yY"Kw .-9 X hgfԬ}}f RM"6|Ĭcaaaaaaal[+'AEVuGN[zg bG>y͒[ gZ)3~Jx'-r˃TDzك%HSЌdtlT$hкz7',${"42Gqb2tHZJse8R+"[&HI#խyFM04V,,,,,,,&%Oe ԪfR"&uJww'>O?»O~KWpQo\3<YX~ӟb-W<|{üyPxcl\6Z+)޵ ,O"|s HR*~ą^/5x׿5|F ChZ;I'cv!QjZa nCC$0R"~XXXr ș-96mϖA ]]|U2- ֩ h4h6188ux:̌ Z676Lj3``l>}4AtPcɬY3u!"zn.]5VXbeꉾzП:ֵB_ %J_-69.mu!Чb*U@Uo#pB,^###i+S[jqǭm%vp޷áYhmoW_6ȷg|>8]\r0}nO~ϛƩ>_]c1oW>?_'llԚ|4x;a^f"EXXXXX<{; ҍҡ}}}1m4lVq1cƌifAJg?U) 8>+`3 U!*w]|G׾5khEERQR" ?u}݃!3[ju\rtnT9.zsgCw ;x[߁o},}W nrtm|_9|>}k8e/7\93v߮3z*sQxކ}{%tbЁ^TTחC뮻?0sL3CK|aTnXdyϺc`3 -cO"_~YawFCTDd/*X[]/ZqE/3j vA) — TJ ~xƹ!{?/?opÏO~լ뮺?oϞg>Y<~tt[_*%&mK5N8簂%Ԇtba/wyA8tM7?96pCϦnj H=#%ZA'>7 r-i*DD :V%վ "'wEe|n:&"aXnb<ʕ:vmqH='Fu`4PRA28I]$nɗSgeKѩUЦs1 VVidaaaa1u1DT}k'%ғEVj|;fmpG72~& ª WX\j|wM-HGF/$l#J*R+i 53 "1@wW j$.j:\$qi$'u=|tqᠳiʑʂkzArnS҃㻠XP$U/x "ʍo'?iIk_׭qd6Vb$wߍ[nv9X[AlmyeK.g?YQឞ1Af8*:]P:~_ܹsqᇛcMb݄t٣>jl %ek!?k]Kn,Y78묳 1TQ%ewm@g_ok:³6 k/3NdIilaaaaaTpWO\n֒[I]w/ N>ds^8I۵b-\u d~6!kqooI }Ymg% tDzY*|}nCrkPXX}8ꨣLőuVD K*ٺ\M_&.BY MQ^kYk7`JO ȭfKip]X`ÿ UMWd +,guKA"E0ElE,gS!r Oi?Dpo?z`b~I@FdU wqzc*WaվH O­kٔ(Yi,,,,,MHg*mmJ?x=n1ua$ %+Ux_*XXXXXXX<. 3"@SO5Ez>,$TTqdUVCk[Aӂ0ui}_m %]]v(,EYp!'t]+[XXXXXX<>VZ@fKˍHԆ%*C1IV hNVU%A g"w[Sf͚eK/[^}n6,$T zb-X |,,,,,,,}HOK+ȭ #ٳ\ԅI"j je2,*GAp-xnPUg.Qڰv5 ߼y0}k+mP[ m Kn'u>We(A__U j9ypA\Yp-.,DhUї-A\ "f[A[+ KnWVaJF*Aے۩ Kn'h[tOX!Dj [ kaaaaaaaa1e`ɭŔ%SZPwbW=WXD.cL$&gUwPܷ_ڄ7;ȟb%&֤'{U~+cuc]M5n;YW7 ܷ~)N8 ֖4,2b[ )Kn-MhuLpNǓڀ*T.*x*(O*diO+k& דȚLuZXǰbDZܤe5~45&.5[ciڌjdM6ʺad5~=opQ,,,]XrknBK(Ldy )D>h'gO 3)D2ѽO-k&pя;qVU% &oڀB2Q<:4yY5O%B,,,]XrkBJt5DbL*扬:g& ȏ'y̟K(e"yn @~OǓɓfN8(O%C~[XXXrk™oukѧG4?iq֜V5'W>k7ٴwM6S,~T*O.ڍ!}duEy-R,,, ,XG[&#ZXF&gU;V'NgJ&JDHo%:KΓǂ]C0vUAqM|&%Cǂp-x</8,[Wog%!|xx~ww?3.C=om$I[0G|{He0v\%_ 3NaY&.qxIT^q+pE*H^rU/ >˓k^Aӧ]aF)CG:I)%4G{Jٕw&YlT"M4J9e*JLQF2R0R Q 1E7tFr,#(L]T]c9S_J[bЉī2N$awxN3qbZ)wUo!QL~I+$ WDWvF&^|L^˲,%F-|2ֱHd"<(+jҁitPZx@7/6ܻD`ir/l"y`{銆Ji53,3\Q*yZQߐG&.9_ 5<6@9Oc#!Xn 7> W=yGy噼gM4,Ò[Kn-&%DnI ۄZqZHX߾?^Fr;Jئu %X(KЭ Ů/߹_4s)r sCnE" %[oio-oc%[ lWo}!ۼǨӚ!OLk^yŶ7X7H[wpEècI'Ɏ$=y Yq9<,X:^A3"X5/&eX5Y'GW};ٕ|/^+$:s }ww7"a2-]"lĴ!ɜwyܖGpxk,~|%rr+&+vCpU> ?VN6"+ݏm+(r,GV0lԂfVteKpA(GyFi9eUVj=MLǺW)s2_.-1>Q4*z)d/-||F$m&aɭ%gR!U+_kGJdS믽wxon;FtR 'l;*UAeIr+k/n1F' wtڟ_ i]@nBm>Wm#8-p+6E7o=|%=- ӌqv@> +cyxoBP%aִ*$QB%` B}Z{q.EMxHrKo~, /S\ƧU/gc C+Ӱtϫy)J"Kƫg"W-/ Lfv7H^̗(dê@Pc$>1nOʝcIʡTϘon0{ }h Z`7t̊{N)~2kd>C 9 AnYF u0JP$è{8Ƿw.F; WE`’:h@d4P6tA׊S4iL(e~%dƪcؔ뚉FHܬsO9;qF&S-3XrRfɭŪـmPV ܖ2㸯 Knt#|/ 6L_oғճbT&EʼV(] ǪÆ!tTI*NmuT,|[$;H+ȭz ]'L2opg!yKqycAvz!aSƩH|ҿ}EvP$ガۊ[#8SB>jȭ<3-?%w ]z?۱`ޫlȆO>bfaz[FdU[ $m %q=$L#o>hiS3s)k`5 O-Lt{mW7u5.owd8ߘ/Lu c란 `~[v#A- H R ?/#mj&;]ezhluK?5l6l:gCLLTp;)膼H׋s+d1mc#LFtn7QS.ÈP}~-XSbyKIrGfVYkRCud^5Zk>skDLɈܒpuDHM4IyDˌ"C* &kWPVFw̠e4zNR 1Lm8i~s8Pf1R[&i° @Jyf6m?C=t0I04H!2YxZb߇ 31]uF[c1.O)r!L3SbjJCLDYyElԏ92b# Ø8+t>c8=AR3 G^Iǘ /OIIp0?Yb߉[F,8Lai'><1,,C4 rѡѓ:5T<ÆW|DL(maQz (|MD|i7԰YQ )aMJ1&nUD}}NW0ƋϫH:11J >0 To`T?nЏ3?KFnb(ax^ZgRߪE_5Vai &}) CO'CBr=s]TCjO$GN[R>z8u}sMSeI|ڣ8eNJeOUO$?s<#+c" Edͭ2_ 1k ?)#scLJP.CWq¿ژJ6q{x@*ʝ:{J7S F5ַUW_PC3F/ /ʪ h{U\yWҤW6Yƞ0ct Y`ȋ`x/#*&܌E)A_A;f+2"c|ꕍJ{n LͭIuMyHs8w'iUMC zy|[QF(İOBHկ?ӧx$HAd/Yȸ'?S]9_,.j[`n <+rMӃ]|F)r`z]Ee IP"I~~KV'j:[ѧx6#(=iLɡ-*ycVٕ61 S'siGi^{S)+ˊrBV>E/MEC-\w<\χ`8Fij 3M^^LnJ's/w)?Zz­3Kn-hn|~XH"#+ c~BEN tϭ[}ꊱʲۇK|8.6L m/Agngz?݋}" MTzi%BC3&kAʚaSQxoH eS[ьǫMrWjʵ'f}ϗu!LKR}o5U!0Kba>2޺Ɉ~jM_ZB+jcn3 g.| =r|[0v0<3t-$$/Y| 9a#DqhQ"0e|j_ק_c5c& ,bˁ7VCL4Kbް'YR\ fI]Rn"]uw#ZhA7ߘwS)iBde=v -hϯ{νx7^p@t9JbX2ެM¦cY8بbLc~<TNZu*M6T4O:PsCSM~j9=Q]ľ,Ė7~7!̚&Tf똓a*g )B *Z zf2i,M_3ݻ6l[-;|pބHl_ iD1٥-N)T9a27X*ڊ;EL麡jp9sQ:`Dn?D=LTgzNc#/wV fp}{xgoA;" 'aY w$a8ĝDV4(Z>pPTLA )]yh!Ⱦ[5^CB1E2-Bf,c騜)V$ND^r42 qנ]6G~b|W6?sɝзoFx8^4ug8yC%͘Z)S|0ChP U3 GN#PKLbѾ*7˿St72O#-UUSWmuPy4}I4}HYE)4 ɯVf:kfV1u⾸uUl4\-x&x4 pn٠ӝ@ P}.[PY{DBʣVdo7d#MX&R[g-,,T,,63B }UG ~/8 ,IvF<,DXլ0mxk\<2|m I&IR\'L8o}2 j 2|qyG#|ܟkC\uO!W`F@R&ɝI?Bucc.ZxO.}zfBP!δT,9)[aα%_ޜ,{FF)|~Fn:Jϕ%0:6@+A+26jhPʦ[ѪveyW>7&=ב.cɔV ԭC9V4,,,[Xrk@}cI0Sx}R3+ nk@/r3y_4~6t>{rĥIYF4łF(@Ttm,i[)>=D&_>'6 E`N-Mt1zZ#n5DN 9hV7FR-22tƏDvb(PR#G_VNJ=5A(y:K/) cDz؃.$%i0]fIi! ZZ!Eo`fi<,F 9!d,4P"=pތv4ov Y4SY'qCx8}qwDPOdMMuZ$9]Ohy8c*o"QdYmFLD6f;1l?ް=N;v/t<0Ɨsnyqѧy2ѭYi;2|{7?>g_|nttCyh[RK ?qNtù_=1@T Pl%Ab6yNֱJna1aɭzuGȨi2V0mIg|i`U7o=>W=b|㤝qK6E?.{r~Q dh]^4-%dmF\ClAiP?Rt ݁O}{ [ř'B|ivK{N|JΡ 0B&DngHu cyn,EX!*%$r188 +qmKMb+|[#öO o}ٶ<8 ݉% !l |UhɎ i0ƥӔ]- oc,t| ~r<ooḗ7N|6س?q7O~o}Y']7ctzMu64-訙oHXX b=1*6#d>IՁV aڅG:/‘Fn/AbwU 70^b-zN~q=o\V/RICKoWnŨ_xy]7 ARY23%!I]h3f QaFBVG1J"?صnnl3exw޻_pၸz@Diy[g&3e: (ju+ yl# #T*p`tOɥ787?=K:{E &馷h}3 0BȄaBH,^DgȎY13Ag4 *KP F/Daat\c|6v-wݝ{`6#b]hhᆴNHHjޕ̬K4dͿژnaÒ[)&\7DA9*Ԩ,JTl! =4mL= C.ֿIևo!jhe$$g `bV [ eځ>WӁ͙1pw$ 2z32j)ȧZ^Su Ӷ>/%cCRmKpgta< :IktOPS/2ҩ>dmBf`cAlN2!R3C +QZ2] p3@l0+᲻XR>JQ~s-a5M(J-[2Zy*<?vjM,4KK53ݒA{hՠV4ؐ`-mT =F*~{pl B3D(s3Doduה[͡M13&LVͻgL  5 jT,,R 53IHZ$J7 p|26H|Kn>40Hf=*J{B}&}8Net&()Xy mN$MVh5$HYUCfFPFݭq%iLȬǴЧa@,M/Q i!R<\4ωcx2i61[7!A G9LSsp^X U^`uQD0S{f$_A/j[OaÄץ"2Opީ-@NOQX?)LZߣ gNB5e)fCU]D"46}ixAbcMGs$(GMǏ<MqU8$OCpqgaaoxZXLYH-\92pA9:CD&߅PN棣Ob׽ND~nYa51:jUpTs:$ +ID!MH,~F/8f<6nV'5YY/!SߐB雩ԀXנ033 Kr:H"QrKf22ec!ཕ$C9H2GU$lRf0+˔+J'FԈi3]j7RR6 @FLyNK5ecI2=pٸ滢ED"yub[Fp@hMY!F$hZ1+ DċJAT *H(u/0V&| /λ%/ eVe9[uc!by0@r'n0)m&!I0'e1޼ :.0|6('F `#$#Z4 ZTENBńO0SYnI5[K-6Zt!M2i LSMgN}w5A)<ƜyF>m\`Wy5 x'6%[zH5!yU\%MGn!>˷s%8q]:*TE͆G-TM-,8bnqtvK_ykJ֩5,#YuW#4f;mfƴ l@ԽNk7"7FHnD,A?TֳwQ*"c+s-,, Zb=QR҆;H6Y}eeyRyQo ݸdZG^K#F&0Jr&-kܱݯv9fRDpjzX:i@ ,TZ>NeTA.')N}ԑ[wbf]Y%' D@k5yiVT2c e6>e{m&Xr+ƑD(5y E%P! F嬉dIGp |/M*=r8 2d$U3!O«U{y¾x&}][-EU 1ό͋rd`{PC&\U:qf#|s~ZXN-7}9*,Dob8tQ/^"YYj#Ш3U Gh#sx[cA%EEsf*=wųsh]@~C$"iRƆőmsNy^F$u3LQ KP a-|c7\lgb&>ݫo˟'=*E#wNO}`uY)>!8]h3KsKn-h8T&"% |FY\%mtQj`N7^ft$8`HW>!L[BJ!R&b) N3 `=-`Dq hpG-j8=Ϝn7`+bJjsƨ#T0aAr' XFb7֑$ONl XfHúFn^3r'%Og4WvxލBlUpk^{0L':QXV=*[ΡUHhf[6<3%Ԇx(mȰym\C{gŨUhl۳ =(N:E8Eb3&XG@>k'yLsBI],X`ɭZTZYWQD}evMZOŕ:$YZK^!@n$Xy_T|NByBmJ URҠCw1:2fUʘY1RƦHR[ᠩ*bn#c!VEo X4L|!*FRR 3%[KGx4ilѭ\!@t5;(CE3-qa1z&eCYZ]TI:HHd;HvK|vOy.JA>2x}TLj)< *.OW*N4B;дZ1S73vIڐ=̓:E\$Le9/*yzu!g͌eS5Nr\bJP博+OB3 ʬbze,f^^?I2#/=3eyUW}3-fcFsN  |өńMaURY-ūs,TlŴ2)|nlPKjcnϱxieク 5\L?1In[ Љn5 ˫$?jj6#W-̲4ol[XX^lGJ^$"|n4fObCѬKU&JID #LRi8zg%:>0it҅ LkPY|/ʂ8(J Yy0'gVgy2{DpiRjYW!Ct0ytD1+lLe)J+JoDJ"Uc]J'3#= e:uE01_L6/%FK$LIm4ݩvaU:RtRR)C&==!xQY&q6ظ Y'[l#Y /|(RƟDؠ5ɗRfY0~L4[\e4*wcoCe^וZMnbӢ`9Q|GGF֑{3 5Q FQ ԑrEex2"mQv_ZΠZ@E4uQDiJ8#Id#$mI_N7DQ.#!F@%EeHIsxE~Zl蓻riٺ 8gD3Ekj0T}Q`^2٘adb8[(r 0-0M E0m}0iS te06IG/#,K,|nJIx-FYsIT2݇6ҠNZH2Cl=FUKDhY/7i>Gb|}gD RQŠ+rxvל&0eeZ*nˢBe-6 ^;`9 M(J#m~^m*'^Y*=KO>)*k200jG#5RT{FEϫaOW*{1G~O͋0Rۘ$%,TRDgt}hc/"bj?Q4*4yIOE  S\՗Xa2)7F2rŖzKOcF%AW: Wʨ=o|ݾ䷁8Hy?{?~aϽ %3N0#D8>WOWM,O*o+njϜRr%(M2gUz+JZDi\iƍ«3ykw?cz)<G敐HӘ]9t/~ʧqt\12FnE5e2P#|.h5BGuA&ڣq g&\xG a~Bd|ޚu\VU_cY]W>ؤIt S_i4'Y' 8c : boNiFxh ԉKw$IqZrk1,]P!̕XQRj@T}@& d~㬟t PhuD&ʵN9ޣkYzE$"!>3#+2=|1~F?_Af YɏkR25E`Th ױqe;rwrto![(ݧ""svur:O=q mUѮNCwf}6FZFQCBFO#?Dl0H+tKDnZrWIJ<qS^x?Z tiKG:~Hp0h,Ōd>.諰 nGٿ-;saY`#J$q3]c..F!Rn 1Qm䉡N__YV3ͳd]{SOݼ +-t,kb<٠dއtS"9kc,'Vd19&KnUrDn{pGQuBBG5Dz&"H^EAE)"t "O-=_y}wݷɗ5 6'om;3;3"*KṠ3]lp/B=Abjj0}QNܲwnwc3,C@)J̾mɞ%AI 輩OfƇ9Sj5usa@ҡ,j0nt|g^sx-#sÑۏ*=IĊ6Kk!B N\k}oM*r)«7Yyy4RĊOXc0ҬxI5n1avJ讔Ho| fMޏTC:4xlש*E$"QT!c-L4Y`䏪4ơ-:cbt𺘨'M |ԶN-^y70~Øv[#.Y&ì#;QIcRܓdf (7,DS}8x$%i(O'F0_ih˓.KȯMV (Bl eM QL|Y-=+%X殧ě=;M汖-גfň+ʭ8o!߉f `]Cһeƈw CrNG3`tg(=F^+R(_+ :"I_?CVNYoUegk/ oq]/禡\.![Ȣ̴K2y1+ꊧAc;m?n= J@iPށ:́ʊebYy:bBԭao^[$2諁湮2}!)l?~k,'hkkwvXȭ##?Tn40JsԴP)۠dZ,b*APdhV!)XJIe.&;NN)fӪ1qj4B+5A#-P!Wa~lvdT% R$WdCT̈TeNiD)9c:*ï0kyXijB0~jּ1{oNHOrM|luyiS{͂"[bNR6ae[WN!{6ʀ'pcƲij$:F$r5VX }qy %*wcqAǴ]yE`-¨6 +QlƚeGrq‘[GnGn?~J )*LMP0gujL9ͥE'RvR""UN.DM*_T9<^/N~CPJ,ZuHj6PJw)K) YC= S*,ay_,HK?EZM#|_lb gCiϱq\^;I8 KB跙Z34ha? E%T6CW0?8dl )喤"iu dOĭJ#x6_&,[Ո(ІzZD@UdݖU?Y%fud L\]AѼ3c.}>Lɟ頤47[GyyyE:AJXdeV֛%JNERWd~I=+~;?P ,3Q$ֺI9䯚 h;Y Lԙtj Es\˂+![wm֌Vyo/ޗ#*z#-%K(MdXY+&j OQAT DB(MloƛʹTšD^,|\1|,ƪ~AYEXǢ5(\2z$IJP ZbI #)_MK%H5s|eLrW[@r$L$- >^apHD^D<#4Xt'ݍ.0ZV[YD2Ht2J3Ӕ;ٰ\I3DjrHYFʄ䊴e*K$+-QyubYoV[B~ =R=0VueV^>j9_F,1OiིHl_pXfvP٠50~ un.e^&DN: 1֢w=sp:.~uD:PC5aiRcǡȶE_ؾ4&3@-B6,T`"T=HXR:F"UT2=a$:iU4HTx_A pU4B^4˅z qpX0 F y0,˭zI⩢tmf$ T* I6D{yFR32,@U!#AȐgmIIdA&&w@>z|,QJ1購zBL3]9y:#u? >9VGb833^"}YY ߅ /V HW>"""$ƭS 5[pԬy bg'5RX:aZHMf!0NPbcLˏһsIqa,k=^. D5kDՠ7YmUTm3,e[ӧY }YmeL2׽U'd|Td՗x^vSʴ#ϠrV%_^26Wuf\5Wu hFsˬ'(5&2|gU0+!qgd.mS>>zqpX!{ 04HKiHOBR 2$yR"j;] }X@@$ >?МQ)x$ZֶYdVEq1M`f/2-$$੔f ` "N{({)#nEjdZ"$=eo^zOWsZrjTDߔ@4$^Gs(z) ;b|ӔYY2bJ2RFуb4PE/HوF?e +&L37$;O K@٤,1)}ʇP_80oti Yԛ(t>4H"o>n;V+S~<+b.Y^&jej6wyt5H?4TcD-j?kРx9b&ۀk*Wݐou[7 n-aჾ$Ƴ"(P3j4>U> \;ϙ%RᕣVƴ7 (GǠxf*ہfZ2@>ͽ ϲ!bH$2ϕgg/6Y4 |ܵFlj$nEbdA2~rmmfG^÷ox2_$Ju1lGDUX7R̒ ENydMl6ʴ2#e"ˡ_n!a{mMҚLR d9-P,TL&es8Ө[Į:':adw*Lv۟_s?DԋO6<6CBD85_07qgBx%HV1EvsˎD?'tv.ƌc+te ޡSvXxfK`\fKpv>‡WzܔHEAX3в/7ϼ-k KxDf~6yrhl#"УF"iM^%GyV]sf6;L3"c$ 6[m5{t V|D"9ZhBL[rN6+` B_2xb Gc-c෣&a CXC1jD'ɯs)7]s|WXea3 v=vrM:ƚVyc@dK$ި>HdpߞŒFTe-^"d$"*MYhk_E#>WYRE$2I63 ۭ, +r`MQfCPe)sY،1U<)5\x3 嘗Cf3jXah;"k 'Fb4:xp֑[yۅFnTGcrO"jiTyNuׄqE^o8*6G$"|MW. H2R|4 X)j?%{{k$|ق\4ڟ:q52R40P30(]'dq;aFDYkh2*2%7܃ߘ fL9/gD<ҍ~[>ѤlI>Dl)ifa_3~՚,$,$ncw>͆S+Ei^sQ]O+n7S ʠ@srEaCSYh&e))] tF|>;fftBp>b!,NZ[N˳+{۶"r#HmD_[_S^~w*~uՍx䡜R2iA@m9(#uQȈ&_{Am~Rr+ ac9`e-v@db=w46[s]ȭ## On #OZSsW^2)]ޣi3݄͆dlNUa*M1 *y균BO:8DOB&.'k[=B̐v-M$7- {DRZKnrX Cy˨>+<eоj𗞠{$#ݣx`m SoI;G(d}YzWj3+$$AL r \7HߣλK;`聉;byͷW"RdxFnm; aw-hztiMnNSm_%IDAT&'ώ4ʸT#Y,hR3s[ ]2iLT;dҡ-7ߺNr>ۜ" "疰[GnGn>Jk>XA%$ Lʿ\Q6~RѧnBi !*(^eK_k0(Q}4)R>d4e_J:" =ULU>"qv6ⓤl^S)4MͰ_E4iNVҲ" }TR%/ Y֯WQ*RlUSb܊ eA˭rU)Ig &SLVKS,_-6+Yϻ5HL.4d/?g4/Hb{d9\#Jޤ0w`UGYF%6ǨD"3Yl^<4[]S)LHu+ʮUTV Tʷť/rMbg졽9w֠ZBΡ} ZGn,:,k-M*u?Rixa0uYۨT6SAR3nd+@1 4m FDk"YPftקx/;IQMG 6>7"ewZ˙2N6(YM=2R ,Q5ʩ.I2CQjiLtNo2)#8hR_UߤBd S"ZK$i \:)7BEзIcr͵!-k(z }`J^Ip5fMIDJ_%P4sH..M>K>4;]|:3abM8J[Rm[ryɲOGyXꝸv7n>2Ҭz,HY~+Tʨ =yojԾ,+v-I4bAZ 'GYd,PIYsW'%QjU*5*)`1&` 2ƓRye#'EE"Wn4益פ75d9T6HҴVJkp`|)f%?\FI!J7GYp(jyb$"jP)naܸ/+yKr%Ȱ-}gU)j=@C<$XXLwH/=}%ȲW21+PJ+5a>f;9+Q˴B.Z9vN:iMkgzhY-6> q!g94HQe6 BZ,S+jfuZf}UC\nX) m/W`NjLqgeTn#M`MeeQfW;88,X8rH"QmdұH.$ͦQ1DdFkj.\*:y}OI>m/j}0P//k/c9F3hY*jոj))x }Հl3&$^"laB73&r%bkCk" Ӭ,+n#1QMnM-?3oVmfFrL$`II$jfd=y# )Ζj<:k[6~1R/BwXM-ge`-0si#+uFupX(Nval]U6e[o7Ŵ)4|HjyP85|L[$8lPY)L&Ik *7i=wv"2 bMeJ2͓utvua0rr6JPU^АW&A+ FL}9L<Ɏ VMj2ZQ`Z^TSZ4)$@N_ mAO"+\ʝQAGaC'?]!Jd(z6=<b_?5bD5ӄ6+8ū*$mi ;P˿gqeR+9܍1 T*(.S5[ as| (B0ԐUي裏wq3.Y. .ؔyꆡfZ]W.p嗪ܳ-5"5˂ ^I)Y;:0h`'Ys|L8[6*n@pvсޕ}7qyᰯ~ }$ꤩ(5Tb-G-,o]Hjԋ^F's%FJ{)>}$ҿ6\cf[aܸȷwA[[;0XeUP*WlАdI$LuV {lHVAD@bo#! %qh XZ(v-UInk[ޖ )l>^㟢{$(i?8s=(b;@5d?RHQvU=Y%@Y/QHjm]IZȵIڈD8DW.MU9; kvaLyw(@VĤ7 l6XyJ$F`m&#Uj:M-B+Z'i6CׇJ[sξg䰺BAo{챇{)P]о5?7"ZZ~!~Ҭ?$ eWDw]4͈{I Vg!F|$oNƗΟ-já|e_S(WfCU̞~tw !eΐةO~*,{YR"Y9u*C' "C}Z>mY>S/T)N8D9o.+KH"ꫯK/->;DMhat\eu8%Z}W6]1n2JF=|1a #|Ys$ڪjN\Vcc72dv}VJ;rd% Kr+?W^9&2̐x͘>nSN!-h US`|$rwP%y칡B^ֶ* ^}U#ZڕFd? 3؋8}SҼLV Qntڪ' bĎw$`znƫ,{)^DX,VVyYnU?OT.vW^yoYQ5θ:eՉڵ IYT^'1XLt"UIn=χK5駟6r]UOn;ȭbrl))r)~.e ۛ^{wE64$C"f[ ɴFthTa{W7 m*t.*/⸣&o)S 6I8dF$v˚'ى*H6=\z'P\q&癕_-kO[o-~=&l+[P;`O)էr([<1-Y7R_{}~/Ldi4Ddeԕr̐Qi/ME%,yón :[cFo =w&`Od9iyCdaQ\l^*XXIz{9>//#QmP* x3q}/۩Ӭ]]H#d(*b +ic=SN&.gipgg>\{~I޾'z ><_/`wQW_Eb#n682;yLE|zŶxԢȶv " 5H,7Sy*cOP$m%p1|pđG5v.n&˸J":{i<}?1zYPYEd55)E܊ԪƝ/"%ʲEAy*#|( C2 /n#uX -ŝ(x$B{ώ}qI>3>ؓ8N;l?,HtӍ8gLDK3"pj{3p Y-i,o-`a!7?i|)?WI"S,z"T1rѿY`Q,W=O£=ai'N^{ w_z/[oA:I״Y2F6p}um3f%'|=|:F5Z]~HEEJ#KpIO& ,\~|ZFhڀ]3|z-0bQ}ijDXE4% 5($ 7hTT$H"DV>Wo47r$5SUSm8kvM".M[}o*͏wذaucDO1eXVcXGSE :l}_ pff}r<<_4 slΒ|8ob/썫\r|'3|⊄ KN[[;:;1g wUX ~?> fs)*i^.`l5$ Pp[:,"ޱe$aFNK aG&6 AC N-]_㕗_SF3d\"P3ۻ8щ^3"%b)Ive )M^ϝƵ71;S$Wj{=kL8s0sFozfΜmi\,x+%?"NFJ2 (8M[ǩ}/ $uʬ^0sfnOxYn+/: r K-PKuNy4>ˮ]$7xu(6;%+rkpŕWCw \c1{A# * ^y?p!V#Ug0r&(;Z`WFWg;V]eMXqq//#!#Zj0~p&l( Z!!хeVXo! rO4bHZt^@򋔇lB;67ެn4v}*. y{cttO=!;~0ld-IvWGR6Obڇog VgiƦST.jׯ&-9h06lS >KW]D1t8_oC,̲8#qbxw7N8[m@{6)gaK[movzK L>'x4=Ql\)w \\ڮ+?r:R'B ]7~sXnkbyž{}O=$ypq1n-ki˧rȲ-Xo&ѦXc5Ŧj`d|ZuBSeGհɎ{}&L$#Mi+Z!XYxtm>3S_5j;>n_[2:CNB>ǃcV<sX|qi6Fɓ'ǽu RFV_}uL8,3v| T"fT'apg'r^'J3IڳɫAw79t;֎Z}C8 Mc$wc9zMx.B"5a`ӡ\KN j(ԁŒ혙HNsu!IbhWSq2 Լ[zo~[f_ K~<5lm5+Ev~Vs`4]/XRp󺈈7<`#CNZpmYf6Vf ]hC K@{$AA~pIp|b cJr"l֠Kɫ=<r(9TLFiHuhMF¬lLd11 bQZ_~ڟ99f5C꼩LY ̒~]Oaw2^ ܮ:кi+"#9f;({isk(-rOqf[Vf M|eIN5;EʖxsYHUZ-W,Y"!x+hKJ"bzߋ"Ӫ~;nMRiS ~QVk_$cʱ&6y*Pi (5%Y0O*VS{Sj,*=ޫVd:m:|vU`)(_$ GK+xqLlg<,yJ1,c&u,$Ffy^ۘ zC3B%I≤8H2(q:t(M:0AGk}RzSVK=42Jh֒ا56T AsǣT XZK.2ְ/Rڷj+|{߳)$ǹBDu狸⋐(P)6^.:Kfn꘿cב!D>#8l*#^h \T"Ds94m*ȱ# fQ\7%x5D$ǟ##U6ET*q]{fv|QD2ǭO,Li>9V yiIZ8_s Hdof$C9WܒJ?|7Ξуw6j$hPr};Գ6|syfʩ4uTFZ`jroZ`}1Rd!!,qq`=l/1gV܂f2Xj̅&Di䊮jwSZi%ZѪ:ohz<P}O~b!YSg^N)oÑD|,J \Ԁ]i+|D"ۏ_5gR8k1|@ArؑB:ț25.);jPf&d@վDbB<[z \bo 7)PQ5AVd/&m; "P?/R^C5W\[1R/j۸ӝ@'eMҡtàAi$ M a_kcC`?/fN,bGڳL6JQJg-v tAAuP '<$<ɏK@{$cvyg<;Q^$ÂH/ʓ%1;("z= NeOYj?ifGϖKĢ`yTCt*Hʃ>wޒ0$}ӐTڀ#j\y|ҵ*!C<)*)ܵmAՈݧAG#ţO`Ia`<ɻKd\P[YtE_$oce3;S)ڤi%iyx4J+=Oϐ,<#:'A#@P/\é}{1yt/.;瞞VG-PI$ѵrުJi9ו j4XiP*Ux/;j|(*A:>6[oE_ĢMJ**a3 h{1hB+~8YgzIW'Z_t<'nm !& ׀_}rH,"[_gGbdB Q&v NY|2RM8Đ$~I 36<[r#K j\V^%W<7awB1 ?뮽q}s;J,<̓wWᕗ_‰'x n[Pކ /?0=h}xgC_:N;;x\o.b<83qW|7J5);|_7xSxg.LE^|y{ko }zsG.<<#ٲӖ+In+l?b!kI RO=tvvu׊accU䓗>=%=tzi$+UDEl5A2Tj0Lwdcq5l[anP0>:}B63eRv[<8 D<>A5e(.-Dl'y ˬʭ*F=.4*G3dHGe+6ڄd [_㾎 7Xj\pRLG>w =eH9`Šm]`DL4!"hMV]x,]v` 0|RpDr묽6 Ȓ|ʟuLRDrVd/A\<SMnfN. [mZT0 Mʵ_@ϓN_ .t  iNUeַ*=AU"g]x4tT"HRMQi ,l50mZȹgYR>FHĴjRe@%HO~m Tv;7=V[K"Lvie28؞i4~ k _:Y4 l٦K}Yud|Z,E}y4Y"M?|N8qCZ!wWdӘ6sΘ#i䮳|i!fG{Pءu4J=`^%i0e A_~^z0x6C\M1Wf-XkA8|w.~-y?/6ԥU nԹB2IC0Nnɷv`[+2Bki:dy½*@m}*X@\ IPEq;,*h ,#}5kD(`nH%ߎ͂2(Yô!H"?1jX 9%8BJY-uvŲCWuL"i>hTCqr 1e+mqY?gv Ip[l ~F(wcw\x5k 6H\+)b eZzW}-T+Ozg|;8D.V[m V\a4:5n 'pY8_ љ@44r$$w|+%|bWkc?sxGgyf͓+:k־ xOg'+ɚD-G?—% ]2Uw7|3Nj *z:ߪp "KF#} g|~~Ə_Wq衇R7>!<ۈt:VM 7Y!K٤ːj.Br-5j Z rWĉqya=4cvu1W^n ^z)VZi%x8soM5uݾiňtdHt{ZAsα4ÒGn?$TTϞVhL'KRknv[X:S+Ͼ@3r,]::SYsһJo 2\aI#0Z/^s_o֬O;B 988888|85E"xZA=#Fbb̘I:͠^p՜˭ ,XzQM2h9- Who7[f2Y $JfD|sɓGYLe͕V& 6lKCUe2:8[Ӓ*"]bmJyZ2)x֛Py];Nv"B& nCetjk%iVNmyr <1ﴠ:)ęk{Gg ܗ;Q護O?;~K ]68CAk"'1-ЛzkuRVeW _}MWa u._2BD\Vs5(_|Do>'u`ڂc| {'abBߘ^['j~ !dd TK@Ko`V%"MrzUgxyx'&Z]s}+Hy_e7f]BjJ@ I촙s㝑+ ?KE^?, lsGTJ~yfC8jF, m#b˯㵔Ȓ5Ie Wu`<`-x\Wr@7q$6&YBzՎ$XQvu R 9e5uO\%˸\?/b$rjz4HobZ J',\U͆YDg5 ?+hPHY (N;(Y1>3]UV.Ud\i>7}!|W:ѣ: 8rఄCp`0 =D988888888,6pa# uppppppppXlȭbGn8r[:88888888,6pa# uppppppppXlȭbGn8r[:88888888,6pa V:g?cs#tʂC<9_ s<<0+q..ٱun!9/0s+|V&򐊔Iҁ.Cil6G;#afeV2J#/CL3y>+7+D_#⯄ C}2bZ GFTBWWe=u!?gTqݡ_?p-R+u `}4 /;N#z ɰY+.uǝToMO<A>Oyey>%>\Tu&bpPS;,r &^s>r?ʫ-:6,eV{G9}8*)L|W/zK3:#doC1sńNEիbK/moBMfےӍ̢e澷~'qp_Vf ݶ ldk ( JSGbQ]V;/RȃozJ۳Dq\u霡QpPج,nVdX?[Ǔ`%A+.V\g4 ɓqM7a„ Ft YyZnz=SO<'xx2> ,r b4 δX]CX9 FӖOc\4x)(ZxHOFye]C,scsHl($ k @65)C={a8$Yn?8+rCEYnGp[ jYngcYre]54jN"hf4%_hqII9RBu@,Z"26j +Tsl}rV2 m=k^.+0kI#;]c6$ IfLG{{IWunIZ=٦W*D@hfQTs!I&/2!jIox ʓqˏX~"Ld\fc|VY[0&E :mmh+?}j]?^|J}(syTNèџ@&YY(BNVN׉K/?A߲*6Ȯe1n6=4y,e e?۱J+koi9?̾ Bi Mg|^,j =4~L ^r4,ܔ&%%)Tj}=3=[$ڳgsvҤ)?1v{0Y'<⫇N"_%yInCL4e fLNӋH6=̘>HeGóLǝghv#I^>_c;ѣW0 _[[=AH3ˤHNi+'hG!?=5IƸ!ifS`<::$ }x%#zN6,7aeޣ:N?z2m y?vM,& -KV@r-FԹ ʹȳ`|^Ŕ1-*VcJ5aKֹA b r+ǂHDI}39wucgQ.qmw{~~Ob},J m2/|w3M7|_җOg-]w]pxGqW+{.2xmƀ1c`VǏrLDR1tRhٹObZZ?) c,"uMx`vk*~_qe Ͻ_^9?F=ㄓN—4qw<N>$ZfY j4>#;Sf9c:nDrA/y?$y1MH:8888888<ɭԀM[Q]plbB>~$k)R#:ӏO܅>r<ӸQKooWqq'mH# e}̓K#`S}iDC3l@R8x`䰑Xș0y Ǧ[~~Lro <=:}b`1ƃ>'3gc 72n큯~P|xͅAwx>f>ZOYm6q/!bM/0"=&D |ШlXZg}5WWE| Gb+kp;N>&X{1ݩx'1)Az5L.1n0yL0b \+qg{9*.jx=}Xq㯏?F1?k~uե'͍A_D_"ԩD\}mwppppppX0o*hAszd&v~p׎OϻZ РAPcǮVZYYN9GfpYg2nw,jk;츓hܤIlU܊ܮsSS0Md2<$=3g`V>x?YH{iL2rZ=a{|dRSPF=^`.]S. ;qE ZXXiHܗ˜0<^}UvI)HkGܿߝsppppppX7MRqo]&-,O<_4|4UԦix4ʕ>2?O}S$|瞋]; ⥗&~ o*~_kB2em?oW'.c=]p!Xiez~OX/sÔIŞvذa6AX$c8p}{rF 1Y{3\~eI"jUœXߏu^ddW8t|n >8㉧$!'Q&:u9P$cIB6vmo+=cÍ6ĠAX`6W/3^O;Aq:d -$!Is'-^'{<nln!ƿeFTJfaq"KZ$Y[@s6)lM1f/m!1+ Ʈ7XpǞx㍰a73Ֆ[OշDd o +`ڴi$[cmƍ_M6ل/|qsOP()m@f_oWgypolV2x=4:ڋ3ig??' 7kVڮ. 29l~7g<ӛoݔGˮ__t=3|aCfa5VB湥CzbG÷} ?9?Ƚ"n@lHώUT&Ib;jaHXE!kZx GZG$1ÐJ{yM R&09KE DO1*ə&yoJΕ%9қ,>r׋h@&Ւ[SehNZ> ή)Z &TCZat>~.YĂTL mqׂV@P&5Z,'THS( AE|y HC/xx}|-ۚXv׷!)*_ 7:?t?|u ň7dE|?i z ɰɲNFa7Ʀ' Jur;u 'dmUknU_2_;`QrNx=,5IKʆa& "}v [4F&B2Joo@G _*&Xr]4龔M 3itAlaBiVϗr׳UGW{Zm׈ż򜲡fLfJ)z ᣅO?za jk}kUh9@s$$q%hLZ2"ޱ-r@iThj;OmBr@'ŀd0YӜBȜοoOr7^=ǂ,s7ۙ "XYd63t`V~sBlHf9z-̈́bhD榣"RG cMr_VH;cqj&xV0$)3EJ7O2$[4ޭF ~K9Xs# qa+ƨy!!rۤ@r{/ #!Ar@:[1B]~$*&c"i"k# jA>!"lgs$ tXH~㟌Jd3& F (9edG]ս" V,:͍ދiƈ#<2>`2k1uH7IXg$QJ$7eMѮ YDIKhx"eEq\y4wiDRbԲŁɽPŧtiV|TyZ+oSyN{)+bm!Tu.vhΓ*o`|$I+Ah!(.u(LNPg [/9}n;LDx>8Tgj x^F/-@uA|'Wc @l NFT1d(j@Y3cyםe6 4}qa\5lqlh;$8?݇L=Ռ(՗5O=6ƾW]"`=FC6mCD43j,xĮB sO}$\uҥŧqtuBiPs[D盺?R$0b`ƴ}oI)- #'~ҼcP:ɴgSiu]\d>x]E':V}:j麹dTvh3 X}9XB"aIʽ2)WHYG;`"Y{=v" =wKre dycx̟l:pG"WZԋ({<@ DnàvWo\v v|1(n!T]˥؁2AQ_!Ș'*b+˭VW}?InNiT~{{WpXH+Ç2?$Ħ"+q{m &FSG9FQ$]Ɍd"i>T&,[u-J5_(ru<6z},"WaL\5@K(T*LYdc]Ӹcjf B?hERϺ^'X7ckR NhJʸ# /f Ϡ jǸA(TqO/^ژ:~UXƅE 3rLVh4i :;'InԭթNH&`x^u2b+A*l;f|xݗᵨOצ9? OuG y 6R#Ĵ:q뛯|8<" b+d=YhÄSA׫$Ft v׬MHEZg_Yo -̢53E2iwkRwᣁQW3njtoP*K%XHei@%;Ȱ;wSj,Aջㆳ{+o z۲diHy3zZaXCm(D nvd\|q;`=>Qb~pΕʎ|GW3O!yIv} si"'f, tͨARAG*!;-XŏH|S6dQBVվ0~xsQIn\D~6<u٨<ԨHmـD$d 1hVw=^~ 3J eF[*^͖qx2a, qG)fkh+_ u7!bj@g' j7Jzp8"*qͰnB5kB q=z>bV"dFӬU,ibzFezQpaVl&YFo P |[YDKqߚwPSokGǨ}CL2%MCc!AMpXf\۶F ,zUٶ6d}A fNAhSX֣~{}pCq# ;9vGǔNtW55l6Mz+n_,spC_@aTrFlu3#{eqJo jˌY ]ˌFNQДVRT1ma_ +S(XL1I`"B;2hW<]AN22`6C.nWupX4B6REoy><fH]QÑ[`_eY<~vm|9T*@kj@ٸ#&3}ih ߲LGKE![ %(S؇!i /&`/ "Mց^ $[ʟ^;88,pQ9}($JdYOU O̯^%HdeB2뽑N2UҪ)/a}+tS 3Wa|5SLN3JXF$@j3ZӉḑ||5M8rYbǺ =W:C|:6rRRg/^cD<'Ȳ#ի,sgnԛ2WqWM!e>182nje9(+LyEhT ߒ$ϋQHqEluyE~z/wvVfgqY˺q(;O p|hX%TV>ri6K\=L$Djk;!ydnH\f| `*iv\Vd`| =p P.15_5T,2=9Y2[X ?iR(qHB@ ݰ4LRD_k%*!c'T/pذ{'GTӾ"! !aw:qy#rL²#f|bW`w) [ d373KX|r9g)&0 S¥`bbPhx$V a:jki#0KDd_\>i^,L 6_hpejS<NWS+9IGVȲLպ]Ӷ]'{ח˜kp@3ǚ/ c1|UPɅ$6Uyu4Klؐ@UWWFenNef&nUAnv#|̆ mؤwvjk9u mUYgn}93͉C'ԷS_6F(eDU$Lv,L q*S Dkh,݇æaqoy*jWrBMuJcE@]eIMxa-xoB9{~sIWWiR']@S6v ]?|vhtk sG(f7t)>ݧ bUr?g}[![Bő뢔Gob6f#W]峩3y6GXXXBxLrd"A:Y{ʊ-Rv B $DT$ *{y$csДM(6:-d)&p:QdXkndy<'rE o:>0 29rӧEH:ot\F&[ вi3tChi*=PSz&rn݊X KJ1=éO?gRDRT{ؾcroR$ Bw( $Esқp@`dxuFXyK @$.^Nбe#z~sOQ> l!D/]]kp`s D* 6~YS2Jnd 9v<%te >3پMZ=?jXS#37C"DH pǁ$QaxP) íSP%ISLM{H~~+!9GOuk)fsQzִRBǣgD=FyS!JN?5LR6; (]i~:R{dE IBOQb bzдAS/t#Ǚc[oîB0;pw~iﹱ ;IR vC+wAN=tGi#0|Ffm}n(5.>B＀^sΟ"sptGȦS PDiZd 2sTD"N[@R =TI,9:#xjS8zFbCe2, Y2vz&2s\< |Au:*Z%a(0ä.eyE+Rꢘҡ|?vUba_6o 0u^&p8RfZ#l]$XJs'͟U_B>1ų}4As 9ui?%!0y~ΩǙYLs3 [D&_>5nmMgOxblW1 zO vR"I>fmR.(/wrn A:1,2p%>8L"ZSc$* ꢁŀ"Q&&W07~zs?FϋkK,ӓD5-E%U!.M5\x#u56Ѵ"Nu. }Nը h0 :Cl U5( .#)GSIcsg/rĎgh:O&ʉ1~rO};uU>TMC@Ul5-D+/0,)] w;œ?\DOcvx|1M|tt~;>@?璉Y`rK2.4B:m^ir$Wh̓Oj LTtF47d͙lz-68o97eIĖfC2STh 3RW$z38\ϋa068\dmgiۖӒwgx`q(^$myo\^!ݓGHkhC꒤]ӈy7Q "m)M3;4nx5?٬2kΎ 9Ĺ[8KxE`2pz额}ol|I&ۚqh[30q f'uYN}) _};ֳ=pϽ.HU( MCP, KibIMe/ȩ vYL b~D!cw<3`tHS]YpJM=>}0\;ѓ-ff4t?΂ś,?ryc<#5THC 5+ F}qGx7bkȩ9]ᢳ,p<=7_#$0D5R?Nv4|xpL, <%IJub-0֚ˊ,-.=av-,>i"-;KeuqԱUZvH I]T Ӡ\.i[ Ɍ NZa05y3O} LΕX']*}2g\>~,Q*̏?ͮ7gfhqVԲo.?YV"mN*>BhR ?U$joL3iik xػՉzlb'R]l9siJV=ف$OcLO܆eCTjb\8IYwʱ35вai,_U檝/JGN_9H]HHb ~?FD Yͮ9.q96r>C]z9پ%UC Ȳ+w.Iߥ)hK_.[B8* .xy7E5(ʒnjP0I:(ӓ=TS, 囩y6/U!4FCkK ?VlzH.J1_@ɋuGUeYι|p?>D/<1^<$ ݋sfSY>bMƆK[]2 ktV$*sRߓylaPddn($#Yq!Me !'ZC3`Rpxd*mK_$Fe8_>ծaWFX?9BI#dIc;oDG(h ہ=K*MWxP;>3\juZ2n2_tNv|[߃XùdK+x(B0VCǖU !cc+%)nrc҇ N~)#Su"m~a>OBȁG[yis3^s6}1k}aRGh1)v3 غ?H]g9.M)t W/rT9~9M!Y;ߛD#x ʔT| ,d1ۖ D>_ _("L\.G^l7O[~6l&V(6/.B%1ȸB5ktոVVe\16B3-u4"Ɏ=>j2ϒ,MdI"5M4ͧ"%$r[wmi͎r%tM,\O$&U]Փ'8 kF&8|8)f |kd;< Ӵ6xa6w`'YCI_b䗧F29fyͳ۞k֠*X=jkȀ&q1>bRP$4lz9_`ϼ$9p84|55_Mo VNbsHfwk7p2._ЇP_{oqd, FNsSN2=?Ğv)KYX?bdd.1DOj1Ջh0ϼ2 UK<剐l{)I`J*/̖4&#&]Wku~O4zك.!)21T́X0 Iz0GzK-/ƦܸcCN4WPIbfO(x(6'HnۧQ=KP$IgoSK<.݆{^o{)>PR_Srv$Iƚȅ|s a bo3K{x?eޠ.6?{C:3@$g( E/;qmCmYv=(+oah_Vyo~L -eiha█!9=t>L/oAv7!wW G_#A!2Ay:7Cl\ivkĪd wC( 4L4KMkFx<$YCx:be<3KQ >vocs1_F~kv;? IOa^3|uk x8[C0Vw_:6C5ި1nK^'STClZ :T$B6\r|:<*k<]bBMÝuYs42:̳546I,@}P ش'V@,ӹv-2Ϙ\htj3mTH IDAT)Ef㮝t]ev*AE:lY*Vo߼` `u~j.) '_Jҫâ?X߁"?^IhX˳7F{$\w]@m6Y2_?+KOl^!2x4.=zWg{)7o& Z22_B&WYRfcSg'M-,,I07m"zg#sIZL@WYB6L&: y9y$Ѩbxry@,*(a.-jW=Lɟ (6$ݱ,wMS0<:FX>kD]MgAQhNk7dfff1a19yhtuʼkIJ=c/#y@ݪ96+o]0 LX'#+ʊGlH1d7E4K&U5 ˏ^ 9؈$=@&-<̻ȣU4ڜ̿33;82e˻x!VlNV̇nJnBPLc*4lه)'?a 01JtY3&s16a[۷8fLPFuڰZQN|B"ܕkmZ腏܏VYG] `#D(I)=0|E bYYy 9sH,cV2+<3Y/LI7ʗ9GxWӜ8ߍacSRUӨ3ar¾beY"9v5N$IB"?K@Z/~ݿ%<z9R;p5*٬`Pӳl k.CLP.`*njCڎ{d!^" X7FLLqg C w[ ȥg&sDbK>'vmo>o26DW3y-$ʲ|b N^$Lʹ,݋򥴝$)H&5~ bWL2M!JӣD[i޵KbޏeD.* j-G[VfrHE]srrrh+_3<Fn!1tXj^24_݊L3OS6!X#q(g?#xm}ӆ}B *o";p\~l2HTUVa)sBGWЅJUXM3+ᱤ{}')[& RRD)Gb ŒIU+:\9櫧mwn0z`y@|b̥d6 ` PM{H.[® cӸQJ)/fk?Ė"Ρ*& }3lv(N\ 3F 몄|QUt J@H*BZ[? ˱rkn%jjVKaxX&gqM$IѰ;Fn%i1-h:k5kס ~X5R,86R,$@V%S>)fP+_X+QU9 JJQOH-x2Wto&;|lNU0Bj<D"# r3̌\%J|Z Uף WRfGy!M??LkDcBipV%=>BcwY iRvSv`won%*sWQaɧBBsxt^~$-~&IHHw#!K#f/ Wls#hj}%Bc$/1UfΜ`jl/܅GrLӴmEH*~4!eQNo(6h;m_+ \:N2^s>J !Dt9p|>. gt|nf=^'ZU&uW?$2 l4?t)k{ _m)z][$0@ו_+[H{*$0v.Wbfxmf@!ZN=@&\RR#hC =F`Kn oz:۩EASfca<ϙ2v$ņ'$f_ _.1}A$Eż< f1"ֽ'?Aߡ_#;Bؗ2NJL͏$k*.&;:ַc8~d46R.EY4SDZ0 I ulW_K dbCblWV8Tkۅ.'vߘ4Md-@ 2B{=+FPzTN #t%OFvҶ%f3[i~{uY{Puw3#f,~Cҙ A5P۹ۍr1{"ؔ"l BLMq+ ݳx ʗX};n 6i=Km4hnűTxV? 11l"*{]xNRgp%Vӊz&z/9-Ԉ!^:Q* 6ʅI)lؗ\"P%N2oHRiٛQa %p*G l6r+k6mg1u;B諽I`d'HfRD;~j0IG,iTG$Pb>%B * GN}JocɥC&/3u?࡟34:xAFSjpc}GhM15n88Y|9Ix{×&2JK۾H=sJ~ GZ$1#޽Und'Rv|r/O=5S`&+ɩO8GM~i>$EcÙij<=qAEV;w8qiҍל u2צ]잎$hvt3BӘ,x&"K!5u\,=;cd8WIQQBU[3v[ EQ@w~)s:Nϱkvf]7yb5Eu=ڗ31q `'_yg=Cyc=9f3`3)QEJZn~ؿakzwז%]Y-ʦ(sAAf0{BzD!J%4'<< [3ߦ}h5>S%?~"W]VHj?<7q$ϡ @3.hv$ Z8|k9k1/?=w=i%O25sj Q$;;'܇?Ck',}G!wu#|߿U:+R n݋G~ muRW m_zI m'|4␟u:n@%zi~_9*P4U4~U23+ANsF)k5I%u:o>'񛢞vK?Wx_$M߀ ފM7PtnҸ4_Z>'agcřI\ӓ#lA08MRCLs~w0R1+Fo7C/S4NOT0 ]T!pleeBPDpTJ TL̫C& &{It<}Q\A|;;f|v@ #Lώ D=l| J5s<)U1kY`Fr7G*5O9:bzW*o"Qzm@d躬s%ݒPSp!E{G"{ Tb cS5,WInMS?Q%[p1|>=EU"GW$5.A>m&Ex[@QVT͕4n| h+hcmE7jj@j6BW]D{\pv}0B<{ֵy'ݖ~+q*tw !07n\{/1_@LrF3*VahL='ރ7Ǜ~ѐ&>}Ftpre E'ԾP8U֤tvnZaZ]B{C:;=SR+3juǕA0ar^w&>|{ض\OzCXsvoZWw߲gk"qƮw\ I݅~ɗ"9رC^CѮC=C$>FlՃ7ECմEk|aa[@ao`u7t֔W~ٶkJQ(<ϠE^k_4ʔ(ִM|E`~zkPm s<6aޠ^]כ%ekiK5a\0x24wm(ȃغ 4)+p|w(X ] 7Ჰ@T{ [7iZ(Mi psK4KƬau;іE0LNVO b5k. XwvtvpS#餷 41X\3 7Җ2˼xh --Z[w,>:xkɦkI*m6Sw&ZG,Rc>::4K{}c5a.oz_[8,Ո[6wA͹Chh] UiaT״c+O5oUaM?m#Kv8vvB- d-)c}Je˪6k07o(;=5ɋ'DcĻ0IW/{ r]Mi\y?2jpfZ2UXCk~Bcl}5&/37'ش[ 5~xzp!t ΞX[s7[*z9p%R3!6`~$?;Wc$ 5KLh4.~WϨ|b ZZfik t)aq́yl[uoRC̏e8hQi̞"7qӎ^qH"y2(k)ulcvãTV!4~Bf[O*#&̯Τ9%K+\,adeS./J|;+yt27( s)g9(;(ӴLA9̌")qV\@m׃Z\D`"8R>@\KOS7*̏M3U+vYg|Ƃy˼X\$,P.@w̏97"O.OAʻn?'O.hp@%b~Cl^#̬ێpǨ@J; G SԂIXɊ\]@h)~6ڄ \K` UgRb R[%{eciꭍs%0{9z6f,NR~BڲM|O/q{)yBcGFbZJ$q i#_ZX֟iJf{/-Xsnc4a~0;l&12fl\'w,0[)h Acܽs^T g79?D x(to=Rb#|[(s&Bxə`'UddgYX&ЗEjGN #,V!8v694rw;R~QN8*gfSyi'9Xg*6p$GU*TH uvR.q)Q*skPKD*:q)w? <~7H;څ7 F2c^M,Ny7Z`Pt 1 lIYV' T*;莄$^ 08'd 1l3/ffǧ9o[!I bfHLmڋ&H}*Z"VeOs 1̞@'~La1R^yrn4ˏAR*Y_{s0QP ss9l,~|faBWδЁbX3.%KT;;McVesmIX-LoO}TIN!86B8BNQC1{cZ~J,܊++J\Kא4ٹ< -@)5Dv~ O 0}Cr<5&\=T/Y-kb_epBww9YrhIjʝ#Av7)mƗCll_R?v*v-8A~@'(: z)&;n;]Rl.ӯKA !O(>U nݏw)uzPʑ9Hpe @S>Wd_8Om`ٴ)Mi)_E-fdgQ S @] }t-\qW{wSWwTgIz'bc(-yJ2w{M]u?2װsU\b8ΊtӴ;wpȳsE4;~nJMin<"`\UA803۟V_W͍+xo梞^mLb=R%*uI5!m>RRn!0 ,bX i,!O?UYӡ;|mx]BG-3MQ{6EQ.xO@o)ylG_`y ~<)v!(Z)%:q5p*uU}XZ/p@jJ1Mx4ULfh;kNJp8MfgylK5އ-q([x>w7xy,r3[B90yr"jԌ Di!R8zra[H͸\;5БX(E wot~i11zJXm{;P#kS*A+.Pyma{!z >B]j!QōuS\]Q̃]|TЪgA1<~<2=ϒ<>o5d }5XRg/Vd 9ҥu@@rH濝{RC% |~NqqKHaא9Uk!\Μ*:ykQc28 yyʅ4OX"TOB @m۸K)ql+&.ZMb D`YW 4@#sփ0Y %I|+Zs*pUÃ9 ɣ-rX{wBݵB۩e֮lÖߩ7Lg|&J8k?~F1*Yza;6<ֆHMaߊ 8Ɗ )R\hꄺ(DNE5E$F{cZ~yls)k8!nG-;J>%%+?y>=׋T\Ppm/6$'Kd"Od0[Բ<1qRSt^-`_J0q ;G_z61vQsIge|[/7"DT3Dhz U3QjɈ`y)4GPI?ϣ}5Oml!EQ ω[/,0| ~޳!}į_)k۵B)%tۮ_܆RbWy5˾#U UI_Sos&KWTb1@:PH kb_V؎D(9|{a傺y?+-^_Xך^S=6[]xϽM>j WuPːp/NJ{h')FͯY\u*my=<%⣿A7B8~OD)XrU\0]gCjF?{A'uYP$ ۇCfap'5? @0Bbس bOj,fvIq5"`&r :=^TJzjbUR"U$d׳ _U`:^)GoJZ0) !N'Xȏc*.먙E`MOQ*RH x`DLBz^A=w1ff6_%qnwCRIg!`e񏾅Q-z~S?~ݺ_k&ɷ_f;vf0)+S^C]uvȧgPk5 !(BVT}rȭ_X`䬍-!4yk VlQ 8F aڣn?~|lZk. s\0.>٥N _v5i j g}bgO*FDU` 1*l a{,bP%v?ho2 (}~oPlK y-ad>Ne^"ܺ3Z*,m\֪m:&0} O-BeWJ5e?_G9مTÛPiu c, 1v) ][niM(bY\+2ëշ]\U7K[|mK9 +Y>%N0vx1 }lů]<$ɉO ptV!(z5oq/PFb̟Wybngϵͮl[z}&p)S*fYckOOR°}&G^6z SGk]3G1dQ P8MtҚ1)1?Y&~bB8TTé+cv xNDh+j4;U~l P@Jc~(u6:,ȷ.qFB!&''I8"$07kq`^r֢P#e⫂0wȿ𢡄x< tc:C~քU~NX#V?"XCGOlv?f!QNxV!4Co͇hEg7%ô|(ߧFVmc,sfݯ+u;Jw/0ss(1CTC ^fw)L7J5EPxjj=zB `y} wr6zJsuJH=ڈh"scQYS,+Fc5SD+&(V 糥`| ?"68oO2Qޙ#T?H"kLakZnn ɖb'϶eF4=N\MRAA vS WJh"H!"L7նs=3?kֻ T*DAO0{ϟ1!C{?!yu cS"8Za\gs%'{ erTpjCo/{}_"عl*uSSb&x)(JB(A#9Ͽ_%>e)Wl,Mg&i g;OՊ<y9^"Sw+j)JE#Ep2F>O1A)QA-?JS2ӣ-Fy뙣zg%bB-HhVZ({cWߒjU\V+ُTTsKJ̩8Dfx+QZbG'}OIx~xY`،`):uVSEuCP*I[// YTܦ8ǮCb=< [~t+PE̪YY9St4`Kz۳^j8*7`:tL& E-Et *5Bv?'%#szg)g3\ek h|0~F"oQoU%VmI_ҽxf֒OzG(ue4נY ~M{<_QW9S y ݟ~wVq5J D kD2(2P>[b74ұyPW~@ IDATS=C%5RF[c,ae1JEjXYT%?G.S'۶s-@fqVйi~=F瀄|5*~|J[c9`r2y˭]`ݫɫc(Rо)6C_`!Mսv$sEuQK@8Ohz@sqUrN28Vd[Fxr bjq! Ywީ^ RIޔƴk(s)uȮ{|9* 6[//+B@T0K#;#"1*E*HlVͭH[BT<Ǐs֭[nw!$h U n#aZC ]]a8|J&8۷У!>_&=caFL{6aJFJőkwGơcU5Gl[SE&B`{zȭyfncwݟW{Ȍ0ՏH$Yܒ[b74oam3 vI%MC8 0D^u ® PB`%7pA c/f*!q)7RN| ܳ@'#BDvf!9)mv#@ 2Az}Rr|l~G,VG]bHL;yl}o)'ra#L_'{T6_KR 8r$|CO\\(Z5_`HmH?U]u tj_5U,yӲW/tytxb>C^/:u.MC<K0~`xK-˼ ^/_^V5ZA뀏%{Bb[ۄPHc >SK7;_Pbs?ss0SCW)>콛"#yDGw~T:!euwMB玑K ݏbJG_$Bj:Z+(/`G˰6Uj!2񡫯!#LvW(t;(vbY0 SuCsq޵n\^s_oW$?"5?OR\ezftz-_bcЅJaddn^ﲭ9/S&`ĭ.y07>{s)2{<G6 av!@_f( i*_Ğ:*mo='曤Wo|oW1TQ47z T%9!ZWy+?Hҕh:=gnɮZDu\#7XLvb1̙32<b]f >(~*ֹKAu:|^;MiJSҔ@%9t) b1줵P(</4}MiJS*q\ɹyJ9(U7hAONNP,ܹcFs0@v`WԋDhM|SrC0gd9MKc;w$‵jʾ} k.6lpѥtd&)j 9ΊHtTZ͖HFƁp" #$*?Γm75MSr0فEKins"xEɖRJFGG9~8>UV144tK`~>rwh D.)abؘ˶m?bxxm5ONgk5O̸kabAaUPr)M~-mʗ¼F0}INq T*:trLgg'|7WuΞG>6E9I)(Q,fzUB„/rrֻ!a>7=H- {hJSK%̛eH cTiΞ=(tttqSouB.6}} Ç(JX3vxa~r35PyڄySr0 yk ds'OR,I$ ޔuFG?!{ƃy/n 0HAl830ѬxՔ KM/a-Hq/|ER߱@./?F*7 ̏`\w,f9v; cÁfI֦\SscLWY|| sd9fǩ^q)l&HJXX)0)4a@OPPRцTFeLᎃÖ %¸ֺ" 4ΑB[JTq-Wb\7j!7\ .ر7sLM 8w.adDQJH|dw2B5\/N3V5̛RE\FVL-AFK)%`cNj"l)%Pb) 7鴋m[Re#]Z6U4)ŭ?4mc{[)P&nt*lOeFgybp]e~~|>%L(7*b1Tj1,eiA5e)8sS'|Xo0HS[R/~Jj(ߡfKP y㻦}f H.s2?7W?`KuYMY ;DR,, O4,UIMY]IM~MR&y귘YtaZ Bu;"f蔣kɇF_!9vh#ݽpW Ӑw hVBfJH:Q>x^SK.Ckn)t ¿L&ܥ5?BH Q9CjmI|S`t0^~MHg+"eqPg"TpJbU)VKY\`1bF(c%_}`T_8RJ0i6 4еt_r# H/+<y4WH!@.b{[p=X:q4ȦUSS2W掳V]P 8|Xty25/vK8X4SVl})ԭafWd(QitKzhi2<Y F)QjsCş,]j͒T%1(94G<7RJza,M/YVFQL2THEІAT0U6B=R!].%z% F B`pe öo{$f2=koz9fא 5(D'8b!P&)\#k>k爟>e5Uz}#rnh7t}E.9Ep-8S_NԱF.#"'(2̫MӾ!l8o){nw[#0&3`V[*Q c%uST"eYH)Qeŀ.$7gQVZ5X.SvC )%z:. s6RIDH5O}H7ޙ0DljUv&VT9pWЩDgZe!޶4v7l]Eq@C(h8k0B|BFXG-<(k# \XH_?ԝ2(M6[k%Aա$&bbꘋ1KP;Tg(PvFu$'NSEqvOa! j?{\ו{~I7 0(Ԓ(R'wkeTMux5So]kV؊T$E9D7sΞ. R$VD\޻k{BA*Q4NRsO~@!;|YFxh/0[zKŦhOG-D+#9!gI7&8W)F:)%e!ehv7~f@uF?uigmuE,[p QxkMTg_|i\{y=d['>Oxi?oɀT 9]~ߒ͙Xvc_YL4~4EmJf6K!դVLeDZtV'<)([عV b=t!-m-,d%¶.ZNRHf|4Jx_HL`*ªQ$E7*7Rllx G(wv-̯:mXDwG~G\eo+A0&M'OШƷiހUR&2>UohgK-Y &7 |?* #7ulO'IU+tU–ڟZ?M(}A!+rhzǬa.RYM$Ѯ L7Gȵ>g7Ӕ-ɶwx\Dɣ?#$*תDΑ^EOlc2h%]"XO)-zhG1/Q UeD^PT5/Gj̅l=E WuJݎviK, LuYhs@PGk΁W3*.6^?(;YbZ8uKK̋GkHΖ( ֶ$'07NWejeYY%<?h>7ćߧ}ȓtߏV[2[)FQi]\Iϒfh3騋] t&7t2S X{*=vHaA-`/UG`k^{=/(L̥Yq S wp>JPpqb{_aAD4]~LtjAkD Oɇ[" J|gvs /JI(|e&P 9%<AFaOniT5B! mM%1s`a{(HӦj%h\W]V 6˾Z\nrX8#{IRޏD,CS@Mg:G(gkL%Ҳ9NEa8oYđ|l6.k$~vųsdn}B֤X;6]t)TjM ٞƼQc+P2ދB#! 2H l}lS-I Z~_fLt?B^bnkY S=pS!qT]C1shZօhRgF/S\`6Ã5=a:*5ʊBj>:k{ݬ%]U+!]y(c^rlw9@_n37-%ihP.hLZ!=ʉg BtÛ䬌݇#qPcxΓ8{=OPzK| 1e_vB pȚ|sXeWvjabOϜ%q`iOP(KF?F6[y!vmЌ/Uý^SirTU!-T-,VvKdLwifqj^k/p*uވ.Aەb{VÆ(+X%,5/*loSч֧K al8*j A*M!ecAzöqcA\3l(z6Fۺ 'O90qWOh撼_>ur$_QuɅ|lOPqPb)rR*Z&"z|>bgDfP B"})Lm~i>UAl V_z-hʗ 7 Lw %Lb6SqC +:@h[$8-GKUPke ϐ6аjx5a_jȅ-=m[H` ,kS0@<҂d[w_t Z`Fi@GRh% {v?wq.~tM=a\ӔWh :g.T6D]šeb<祿;&B@fS$LWͫ=qON p!wEoK?5m|ǣNC1ۻSwc`nzr/O{/tǽ"'|󎋓0l")r~,}qZ6&4=C:$i+ T2 /I H-\3bkQ:"9:],c6IEZ%:6r䒏RsŨx\-j$w{.َރo:حmٞݬmFבMC hLL% ͎Z˄JVd۞Zbct\PojKBPnadSϏlgj+ zĶ;Nz(Q"#"63=^Ltr|3/tɻ75 mO+zawRj|ejnNץ>``\bM-"$ڶJDHPFz|ޑm&mzae?[zBb19IEG꼸}-m;7E]U@Aʱ 6ZN-S}!,{1`7مY-xz6Wڶh$n\fG bz|/b2{nذtEASO{46n@Ԡ?j\5 ƚW#ټ6jnX\lڶJ:F"+[`GxxCsF́z6KCHRLyiB]awW,K%i#*70nYs~\hw83 ĠN/֭YK}wjB U}0wu0O$JN\.M?d>nהj_=ˎ*tmt*YSmw|)aw.^vw:3|oW/2ͥzGqVK38>vJCOSRХ/]"lkdЭ<=29BNVyt;蓓S_3.m?J|svT1Ў>o/65(qKY8Yfݮ%,νdj:U5-09 Хc/]̶f%+=Ie|C|8дfI/aUyfc}}!68@ҁ12FyDu?.\tw t}[Rԩ"릱w̥ٖIS ,&!gؑyzb3(r͕0Yy0?ztx<|FDzХ/ sIOU.i2ҳ( R] OtaHUu8$ _gU{mX,Il~%]̶ZQ0wN` ff3 6\ߓ\*RQ@BeS@)N#rft+,-'8L90A;ȑ33KR‘\_ 垝:)/ӎG+<]Խ.4k"'Q,AX(lMDO˂QQ*#qx;|: ;'ƚe(^*Y&G`s``,.%-V3gi[mw\/>Sqi ?JqP{;#VT M'3ELQ}>ֽKB% us %T>3^!) 0(Ym$lj/cKʡc>,O(_‘Is49N~8AO@2L;irH|YFF998D= ;ēe^A15N=cvBcJ L18NǛ3}M`@p؆WYK"UdSnTH[v۴ڽʉ.cY*^)9csY]s)8rdei֙(~k`<=t oÁUI!\9{}VBkzKQjiB>d\:~u|ܚbʕwurU\w}d$`i/^)um[_xlLط W;+nRBYC):6Ε)E| K}7gy78xx)Q*'YU*_qr@yъ%n02hr=j10MlOɵ^6%Zad hZZB[ELD`!/qkL>ѻ{{aZ9vӚ}. crnK/N/ T)%G2jqȿev>"w]]k%7AQ\2'BafʱuGHA5CСIcG<Cg ^dze!d:L x0EyqBJjYN(ڲ 1|ɋG\>ƗK Lsª!@* Vz"T?/ c":X֫ bWtۏoxjfDv #W ZK]{헄F&PL˗dɧOOhRNBLyloW*L< 4?3;^8ǰڻP.9j$RrZq+WnۘցDH [U^ 3N* rkyyvf-8U*u[lwyŹ:ѽ*k7z VkcDZ4wc,l*6v/~O\:;h⮈ i`xEZ_s%MoQچghg"喝VA5FŌa5bYA#;}wխ`-&W릟cے @(l'#(>E)˜8Eajm5>$xO~(NotZshJc=""u ƚ>]W@=C+cc#IS37uu|S3T0(^$N07(FTo3}s(i< q?" {_)2`Ь8_%mM%0Ҫ5/nE9r xqZZ]{(/f -?k>ŗJŲ.oѳ2ZRb=4z>M^YTS!I݃\CV1)-l6m.@^rP9=D o?34y4ajɡ"Ll(nK@BbQ7mN,`Yd5.;]tmvW}/i mO`"t~?I48bh\[ қBR?8W4u.p `̎8?{DB<[۸ݮw1?$HoQl!kv3ajncĎT"573?O1C1ݓm˄p蘁s۾BzӦHkt`3a^h ֢^3"}qqb4UpU\dVǞ: EQGZ"x9X˜@̀Z:^_8۰J-knJvw#~j!=_JX}$jf(_6C_$] =Žz鉒~\j&fu_ۚ'40* *kIwU%Se9&ʗ},F6%XJykdyxAf+ぇD<0hjՙzBlk6L tfoho<r.SM 3O+,桒hNMXQ*鹗0Oj#?5.u]7loZЇ>v߈~PBu_EPl_4_?Z7]~~A*OY&I&ׯU䛿IlBT <`m -AՑz0XE-ost7|.vێGw}v9Kgʁ?E%D:~`ĊuQ Wk $Z1e#]EV`{OvD E~u!nMTZСw̆:ۼRR\(uS"=PM$`桯Qha[ FD3:Z}i6n`V|:.H+İ.G%ª#a[WVInjg+byT:z39F>@B*MM:~a팆*MfvّTBm15Q{9^ X3c P5a}XzwR}SۼQ8X g|/5TV*V堯%%9~3k#pռdMy<X?2V[%2SU4ߓ.G#|t?v}96ع% +"Q,n- gj|j4X/=~Ɋq+F90lGRi*LB*: *1B K1"1=i ΃rE$-wY"o/=A%[hT2Gwݏ4gszw0sg f~"Y&>V{_KǨb2"t9tn OVY}oæ^5=.(R7%*ȤLM:*Bl[r|Lz:LLwDKI[:)7\66DagH9Bۯa^fy|KUkB8L7 Q|ڙ۱|W׍ E# ĺ"ȯF GK0=5ՄBLՋJ}T%?NQkIVC5\n{3M>嚺(FiͶk,lB6&wg)UΞ5xqjB4?shsI/X<>^(A~ 6й9b(=H(UE0|>aC4tc"W/ľƂ@|.U!3 Z P ζRZž{6Rs튢 0o~hÏ[/In]?M_#D)lE$rszw\V4sl$lwwp-™vlea0\Lտ%~[h {wXk^!;>G5@OQiSDIxDS~g.0_|Gwt!,]X.׊;Œxzؼ EqV$! ( 75;!mY}0K{`9cxfgA1&;(72~e+r kSz  vOU UNTl6)R;fmeԽR^C{V_v2mQliE9&voY{ݨ\.E/Nމ<ʳ[;rhi`^+̻ gat}k>E2ٺ e\Y&e6lYhjg#!Ys-ڸaU?-I6RsC5k<~vBM07MͲ٬Ph=I"Ѻh.cTJS+ÔS[/@Ydzi UfS2 ?Pv.-ڳ\ afײ,ZZX[0rU[2WX"%]p]E&oK6n4 nhN )%1\WzM2?O{eϞ=N\wXVWh+{Ѵ[WGdY.ErWG'Ӝ !P,MABNCM@wȑaX'_qׯܚ$,*GпTzlHv&#G7hFf 8vbߗi3BfxʘL6UU{n*A[iuplFN/Mui-:8>sTyvrɑ'0kc'+1/ٹtCd9:0?>ٿ4mfO156LM 53 04<P.< 186ǎD,M^J-Ϟm^t̡R>U̿O^ ۠lv<[\/[K)O_s+tv.2R>\b̡P躏{,Zb,V57ϸ4JgKw(uj14Z(̎5n#̥r 6`I8$*/KK Y>E5뢚ϬIU29>LI垹eY| ,+-]tv3p9'3S թQAJ?hoϼTر7qFYfӧ\:05=|-<=rVJaJ\7l)(ҜrX{1&7!|f)A\Z73넺cruv9w߈:ι(oEw (62b3;+9UR.#W GA,mkfEjS|gX?]|~/S{ M*5)uI R 9@Jvk̜yO I8>2v=FgŁ#GI>%PT4WOտ:W]g%ڶ89FضkcA [>+c{a]T'q|o1mdncfƆ"lǩ"p}#`2Q◥)-kYd;rcV6M`8yPS'Djvb.h !)'LTO@4E=s{Q[xBEmRAw .օP%{II[ :IUmO_%ս{ق#>@ULXe7k~ z: H a'|[W*39rhIg6lFxaz}# obժ{'03zHj`%rU&(ΎSc:V{\D:yBL,rSX{uau*AB[#(5EOijh(=:KQ( 2&Β=WT-wQb&Yf)-_!}iRAUω H>B)DVc*Mݸus-lF]hOP%2A|jIe(3oba߂ɹTe(U4[lFX[װ籧Qk[p?oC^B&"M]cPĚQ,1XZnBm Bo Mk[ dn(GKϣ1(FukH΁,vm^M2\q=WqH{:,{{\xH"%JTRuwm5eoوnb7bwg{H*e { E$5'ss;svd,2e2 gx",$Q _`ϰ>OmKe#oPR깇TgS^zϴ?`Cj;ZQ5ljv2o41@:h9,f{\J`3tmlQ'1yj~ i ܶ\Y%J=R#=*Y>Yc5]wZdzhʓvZ9[%ڰ9wGBB|^R$Fj,;UoE* |x(T+,Aܥ%̇pWT:;r x+[շ35=JQAVF1H :ܵGG.Hɗ-3L~[.j^t~b*$'Qt.lf!Ҳʞ)ob˘G.0:tF@~%.ΐ= z1`Pl}L,╶3xoQXai6NDzsЋ*~0Ȼz)܈(>uQPdQ-sw@jmorYUr#~; J*KٜeOHSU !|Ԟx 9ėFT5ƾ)0>UYD8oâ۱[ >"4tmӡHЯ˶+Eqd Pc嗝GvO?2vuwzS}C0# HQrUUv|Ir$9:;L2o|]+ٚge:H5v7fcFL)f,Ϡۍ@oUF08?)Y$tq=~OMzν+]$ID*:ʵ?E-_:8~6pZoҁQ:]d,5UR@їZ 1?K&A29.3c=f*Dn"Sc3t?M*Z#v:%[ܻ.bKskDU@ͬ:=0Uح0ҿ@.ߍB> cpQ 3@"\Vy.:J;^Y}ŢQ`4 t/1Jqʑ$ҶW06@cTbx=oYPS8\@M㋢AX"ldfifg5^'ea7a}FdsRG)ѭu<-g]#aHd37_,NK}3~YGɆ&R3q,/(w> E;N&$x{koVHfޑ3.ژCV,^Ϥ1:_۬~]*j5ݕj_觶+AUHE6Q .N `tU/H$O(?@J>[O )(r#/%:ӯ zD1;"~cY0PRVl=z.xyJv9KrE0gUқӬ]޽&ZGVTPe6cvlb^IJǑv${NjZZu_U#UJ<ŢҕB&ARseBw/O/EAR*f,ŗ ͂CރN[ez=\X86??i*R~ #츫:Mwu޻eV&HDB,k"uФ* G噚HgP$.}6?'Y%9I#CqS 7QUVJxOdd=6Q/`u8XZ%{ޜ']re.2#;-pSu)7dbI<$ tw4թL>#a<2)>$7TbQ,U/Q~!&w" PHH'`b21V;#,mZf#&/yM g3Jo I$@g)p" st6A2b-l1#?^XPЙ]8| /{J61ʉ'n˗q՟IȇYM^;v3G.$ Q;P9UEz&seuLSQG[[Ӝi9AgHkY`{>b*^R(gjym`Kb~)+8;ևYa>nrznYuQޙ&H:qg9dnh:Iajnl6x-!kv;U_UJkl̐O'-McR%9,G,7`kYBV!,N( F;/bU~?!vNHNJl:6vn=5tAUt8{ 7Wl& uxU_p퓏Qt}QNP4-7~ϼ,{c?F"ɂ[Eu z 18k҃ Qoh߳1{#+TYAOj]I!Ml}T"`U( I?|5G-dQ>n=9/kv{/J-,# * >#hK C<3MPDgr| }|o0SYװ "N.`=/^xs?3@$fěDsMFFYռlpc6JDxW:%+Z$M]R/P2:QA.$]J1%4G8PځeǶ(,فQɱ2:%K\H 6Lhns<N:уmVFOGdwUZBw']"+Rx/җ )<Դ_~4[FVuWn|ˁ~fj肨CvZ 1;D[Ȋ@L,B"O;u/=$#1z"iۻDW+0$ d|&k祫}Aɓ+L%uQo"]TzV3 |r UXɇ|dXH#tyFj 꿰stWy&.}¼=@mޯ052B[TUWn8AiEAf;iCKXdP5ӕ䝪k쾷fnUݔei-L$Lj*^GxzXZOqG0/b`5|H'ꏾYyـl4ci_qXV(iy;GSoSS "QIBr E='/6,p_I b9|m$ ;]v#U NT.`JD"ʯ&+ _ޏsN/=kU\,~!n0wTz7 : n3}݄$mg я7PF*`s31X_'PY$ (25=gm9>s%bIRFx@N6!+S$]8 IDATzK#Ʉ Wlx|=eob1PU\6/>.2: (t|aaWV}cgRķWfAImLs)i~݋NDcv1 {*gI9TFmz߶SwePrfި?CWuCwn*z^A\++)gXJ8 m߇ 8ЮX$HEszr{ fo3_fu~DT]G kS4wHIID[R ,[wsa^(<5L<*zcwwVS18+h9h@4Yiz/XJb{[ig0;J ?rQDhz+}xC]GX2~!Zo Ya6,"}Si8jmxVRc/H2X\z̘uZ=ǰSyɈl@G_Q҃^'Y%81^?RycC!%.$c | ~?yLfC?o$]xAw"@a'"ekeW%>ߎ׬w<$&46_5d, ^?P1q!-bHN]'{ %I:P,x뢈^'ax;nvF@o#K225q*KP yr;7(҈J_Ǯ (i@C[پ>[cܿ΢3!#6^6uZs4j:%&ʺ&p i 5v~π4;$HJ_ (mRަ( xY_[K0}&nEM{#;}#{ \.xͦSYJ3;ԲS:P 9~8&g 2,,[ʞ]*+SSJ܈ Ȫ,v"&k$>E"  {s~+0p.O_׆_s ν #I6gHE#XˏRtJ_B!}{s+-B f4 ΄;<˲,;s&&PȅŲCNgN#M9lrjŠ?؏KQzH5;=zI5fCI Kh %yZ`45Cp\UUTUE$Fy=.2Usm8Ez{{tl$i ho!K֗C4XrU<2 Ջ "ԴbPBu&/_ z#UݯasVV2GyTq$)ZDA3, zh(zL&&ć Wq8\L5B?JB한ix'9r9nܸ˗IR8 ԜkʻbyID{<¡&r hsLR4ߐM%P`dYOe*E~2uw^ @t@NGQVMx>%Ҝ;NGso2$͢o"W케~$H(OJ ̅mNu5p`_OR\vk׮pNs^E ̓Igr39qDicс͸XGj)[o$PLMESIqȃUNj+hETl6dnUUmyy9GL&^KsB1 1VAIiണaAf`0xtbX~RYYO4 LKHR;~z333CYYX dz qfDO})L|߾VQ5<<<׮]chd|B`ZvS(Ķ' 3u5i =11^ t:|Ȅ$ 65kJU~ ?EGnܸ+Wp?;-}DØL&1hm.]DKs MMMY{'J,#NkVd佰:n)))ٗ Lݯ42e~._S鞚]N"d2{o@<ҥK,,.7&>M311ǟ~\z֑dsk+4ؤ!.]D2uB>"M\tA&&ӳ7OJ67ob2q\5OOOH&9qz^ ӏoh4clu:, :Q B,--!I)qn޼,ugrʠIW-nܸ ,SS[X@?kƢ SWWGYY& C2("" ",1yPb.`0o!)q׮]X,3r=jzzk׮1;;l6gA#51>>JG AhkkpQdTK4errUU|= JUU&''z*\OM&'tUU?&jkd$:;gbb@ @C}myFUUBjjjhll|lIp:b6f=$tAA&AQ|>fY${e9y6U!"/vw?5h4ʵkr |mmm78KZIC6erj`0Hmm-2Z-:נ 2x<S᠄B!._CQWW@>gjj χݜEOEaxx-Ξ=Kuu5L&dPÜ{EP>}UUIӌ099$@GGc*;v9$Iz9@$ehkkA{d20+*4I 8l'^W666ꫯd2X,9rn@zffM xGt~^/OLLdhmmdAÏ  HOOS#fKkk+---.UUfeuǎ=sXxBeb(ϟjf"? jrrf|>k#$333NA׿d2aT,&Ȅa}}p:@4h3A,QG ݸyX,K6pOV+'yp:  4l *h~r]UU!JJJOr_\\dmmv_A?/KKK34weB*A>IfMQ L***AÏ 1>1AEy8(SZZx=ׇ(h;"LPԠaemmh$X?+d;EMO ߺDWWׁ 311ACCv@^/嚾!dYfjrJyy&'777c CQFGGm [[[lnnԤeHeZ'г,}}->iZZZpݚ#Aß'&&ZPk;4;;$TUUiyVAOw6}0f-:נ"ƕ{d2,8y:~:0TUUim<ڮs  BE&>p|ں:M Og2q\Ԗ#r##~ D" }O+*(z5t ֎h4J,ta}mvm׹ 3yѣ{.뵵5(Z),,,0:6F{{;ھD:fllmk 3Ǽj:weIZ@說H&Ѯ]wJnh:D<^+ 1C!666hllԮtBWҙ {zl"444PZZ E?|> >OF*Z&[۩i>eEޮeF4hx֖8KK464h}UУ(}}}+*+03==Mss3C bI|>Z^ۨٹ9v-zPEQ:ari5hx@lmoJCCVcxt:5TBWUɩ)8|0^W{,yiooRY4<nu[;N5'xm2x:x }{{~j먯cfL3L4< ( kͻ{B4~L\zNOOF҆4<Earj ^mlnnI}]vÇq:b38###TWW4kHRRWW9cj(cbbEQв#4<` 25=MPQ1ba45DBOܼyơC42y Fik{{gLc#Gs4hxdYn} :&''tڌJ芢022v(-eelllgysehX&-هoqqQ+mTBu`ll6*}(-,3?7G[[v] B,Uh)РSx^::::CW F6wh"3;;KMu5n[OeAϟ}wSUUM?CȷMΞ=lAگi]k;5-ikk?M.=#[Ȧ&' A(S,'`0H QQQA0AbcceN9s׼B BA1&`0xeN*d Ed=F*++osO]UU8WTz^ j߇"7Zۨ*SSSi%UU Br9M4v~W#2333\{v.--G75PK(byi鶝|{2fM)) qD'.2r9kJ>G$КP}H$ W&I>3"8:m!gTC &#mCAo4[ZZ[od Lʖ|UP5<Ә$UUL&ޅQamx<x6I3 UUu:rH$MK3AEmQ##uw<}}}@ww6T1X,244bAS `PUU d2RUU8H*,..ݍ҈1ť%VWW9t萶\$)*++q'ڪMMMtP]UU677IK|Xk"y뼶 -:נ!B8E#=ƭ^1 ??kMUUVVVJTUX,"2*fY{` r9Z[[5AC֘WC vRbEQX, {B,..rQFm޸5Ad2ioBfQ, IF$INSNx4iﱂLMM҂P( 2`45נG /,Ex<N:ua?"* z<B!677Fp1f'J,cssbɴ3_6vp8G###D2 W^q $cGR]] J36G"#JvNss3>gVUkI#-u%U)0?8@觥%(( SCMTD /1^mN6^*T lEzLck43lnmS(X].Z[[)//32WU: K$TQ sPUt*jA c~l]GeH@dBRzM z=f^ &LjnxI%Rvb\>df}cłd@s]Ȧ hdY1!a1o,BTVf3$eSUl*h{<ܧI&2X6Dn&b $2vL2lǠ6_bXX,X{l&U5||DlT5NDjko%l2F4$_PK2+cWfE]s;b1_8rRjJD}]`ߏnc4Eq셪X~DVO2g.ss~*[o`4 |Ʀ_,wRs̭dVR.qNU%8'\U-Ι ӧNQڏ+}10EBpPYYsq__c/^z*T-_oNz UCɄ<ǩ ?3+4sS6*1>ޢyl.BIrÌ߸8ٚCvG|gi=Al }_e 磬;MזH%&4ry҂Rr-&%Ե41,X*zI$brdd?D&PUb~bFƶ6npU9\Rى,J=6L&?AʬMy?njZ2q2QA!_TH01FAg_@UsyJl 6{~P2;1E$`PҌaFƙ#bwd { 喎lMwuT[++eP 9R4  i#WUl2A._DXvbK߲yp[ E`j|/bO{$<*,~g]8c LU#LTE)dI&Ө-6LFݎL2A # X6lo&jYaI'e`j3G*\T*jhYcrbo9*+}*N rQN:Sa67M;ٝTQonJgI(nǠGF*5,x`90u-H |T9b6-Lpӯ48imFL*Λߑ1݆$J."Ɂ(a;BxJbt:3bsXU$ 2΀aCv҆Y"zl;AmK38k!DflR zSwQLCpTE&LP\eD"W j,a}qSu%V֩U߿G`Wbg~t xE+\z .bʚ2\敿ﰢ5;̬_@R,\D(6պbQQ I})3enXHkc7-5|5>,uWeQg9nxH)H¢dܸ_ aGY* qFOYgPUJ쵋\ Dy ]Y{IYÔ]HEf7eIo+T|EYT̮2=fzY]"l03t9,Օx &~>M oKGLxK^d#BQ̫/S0Eꪪ8te8ֲF^y5~ +;x8v5*yֶ(I"#} BY%vU'VwΛ@8Swd|ѧn%@? O]Ͼ%- rO^Ӌcx}>L d蛤 ڞ3<Ѿ$qyqh5#.# 4얛-\̈́O]`cDnL0!z'7fmgEn ReQGiΜ@Dꘀ즪:@;aj~tO_cz!_ Agl9PLh_;?\׌,|R_PfS7>W5BcW%fytcD2fY.(k=87/2us,./fڏƣK0;F᷸p 5,.0t_x:ia8]m\Kx޿t-3#S]d֦X{fsjWRb"(E~bWy~կx7o {:yQk3,ljjב9U(bBQ^9x4ZLN@)LnHίqIIvmEWyW 8JjV>r~őfäA^J!WYyWob\p>ESC. ]~*.8r(mm9y̕g&h3G5-.!7yn;j!b29tݗF5#E^}]-׾ddbzӿk c1lz'(e;/8dmzX1C 7U.0̄\k9]ae)V‰֧/nkbqqi-ct $YjNX/r2mXB:3_ec+j!DpzGb{[A*J7) ɍY.y9T| P߾?F5, HNQA9WE8` V`@!W(Q-O> /k`5[c [ۀA#[m]ˣV_ ^FG]@ yv/;z 1>kʏOaPl6694eKc7MBޚ!;9O2:4.lf^}6~~@o#} ܼF4/|Vi4Eپ˲Vȣ")m(IŨVSPfDA\%HONQbnBGl zq[˪q&ygv?`Nh5j;c!μs}xՓq :s;<\hElc=ʭ"o)F$PJٷax:ͣ H*l D݂E4 2:9A,^Bgz{rMV^}ED) ۸M7pYd%BipoᶩRRsX{lJfsy9F{۫{d "Yqg>*JW&UA,J#{\]؋gHD}h5&xx#%~&a&@_bf@M[)U uW GӔkH 1>^O(fɑ^ x[*Y29 0;&䙙'\=Rt jhBgaS7jT7Vq:"-A p.N/etfl+qxKP43Kq&]޾j iٍes4|Yznl b+YrTcŅy&LCC7z .+6x9Y,+od17;C&a ,cNu &qԃI6;<.n=`Al^ y&[hA.s_""3/`s< K s`sC:҆+gRR;K:_,R zn%rE+/()n^^#Ԅo&[X'ٱeJNp8w.{YN&6ky0 EDu ,TՔ#޲}<[ӁZ)o;&:D}XUb ᶸq`q)0u4@OM$EIfQP$E]x[ 8Q4P?.7Li [X}8A8\ Xy3 ݈ƃA=_'~oI.b8u[X"w<W$jB4v)(4yāg?0[m8ʏKu\N?ơʉFvR "!M'_ZSq8TWNjs564QV;ߩOw7ƁtѪ$Xlv,j1W+('!H26Yq6W. xʚx(E3E\B$}5Di#P-8&K$IWWW%R^j|m ZlKJ ۑВIH85E Kt4D%X* (͆Ţn]PV3r:]74?@P`vSuKhIfCjnיzdYa_C6=N4 j-j".`ٶ ۮ%u qX-۹w\%Պ,5){l)ۦ`M ><-OB ɥ%w?&H|)+++^9-T;E~=;xe_xY~>AۙSX?(b5F)+*=Kvje7O~|d0dhfǶ-?{I]?6==|?Ay)-Ze 8?G={_Y ?ʏ* l6AIRxy֯!4Mt@?Ǒ\1&:g|Mf'1,>)LOLዕ}f$-+ⷋMBM&Z7xյa~K I2 M3"nk躱:Zȷ_ >¿X_IMov.WIrww)|Ȭr?u{A>ܾE?51]9)w /;j^k 4Mpmf>k75INa8؍e.}rʃg*s703t~z {AZKePdf9s=% LANWHy8qj?F!Გ.k:KJٜǍ; Yw&5; qZQ5 iz_!mЁ2_u]m4 ''GX,w^mJ +膀+%o,19*$B69@YI/+K HY)VV7yCbg}gyvZQqw8XSj:9Hg1p"^`enl!/㴂27jr$@ FأaJ&w75ޯrtRJpeL +ǥݼh]%M 榊iVhIme{Ab%OX8L L5%z`Y\ZD90H-α7REW(?HsK=W]$="0s{av3I3'J)2`#"vU$Q$q֥#b;AD% ]0LDYFz"BϦcôY@qByǴb۸QzY444]@&Aox4bD[7IE0SC9} hhjȊk I!454[a2,b:Emo.P@Vԭ$&ZACV"4E>$y;vMqÏQrHc~7"HE/ ؚ,o=9Q&aKd+D 9Hve{4$^VFƦ|pj#ŚeDڣK1M1%lħ/lxl "Rlc&Yl&Iאb|o&ّLA˯^++]iOlUGk2?1(/ N0/o&9m 4F]wFMp9}&I..Ǧp{sӛH4瘹 IDAT Xn\7_0;4=,̌2 0?WȂN&/p7h|aM[\L+zxOau80t['ZYe~Ac~vRkQ@6?2a^Ki>FkeR$Wk M^Ƥ]cmq)R|X~V7Q ){-1>*Չ v:8Q;U,2d9jNcjKzn X@Lgh4BGCܿ~tC)S#\vNnc&S]_ K+8 ~GEիLLJ(k9-ȂLm}f+@3T%;Й%6͵$Txí^76UGhi6KW_Bu9s?ǽ4 ܾ@:*9h  @Y-GNyJ C g0S'ɍwс2Qm1hec2Eg~pU]t-r~`#r q߶@,q((ϜDX=R9ʶ#4,6xu]lzTG ZKHͧ_6exyiOCgOp4_1 i]=\ƣ4[|ULQ%^¡-H>e|zǏE)+qs=NDEL?W vEB,/_ejvHu#GOc v;L:[Q(7;:/q4@JX7;ﲶAR픷!L,XkP_cƇɩ!~pYFGTU3 :Eܦ@ǒ72/7?7hj[jj+QJiz*4+kxl w/o`xVy?ѵjO~sB1ܑֆ:"Sv?ɩe?Z`ej~nE[C`Yrյ6"ًKP][x:nOPzHts-un$#i9rcyO/tPg*s;eI&)o"Ya=Qvʨ]J>=ȅ.'3qj\xcVӅݮHr;+ƁSǰ䦹~*\|Crj#uO/r?AñӴ61u?W BC'hkfez #KT74Q<5K \=%=Y䏴Fnm{~(br{XC=yE`zb%/+"wΓ*X 'h Ex.Ajé d*"xoz}dJJQg8ߥLnx 㖫B6R`e /VTxM9UXMmj@Mί'W.Fqp9,HXH2*J?$~dwQRV7`MO勷~NuK߱nkY_tȲB)"#nI SxY%vCu)UV఩.?XD-!K8Ur VnY*y_y0T =Q[.A@uz8mX~BA(h9vh@e fh8##V}M$)Eqx5QQ[`m3cb(xvYuR޸ƖF4"7,0i Yaiu DBZV&Fa6 'OSYWKۉXL224MIah8rʨqr A#8B}1l.dwu&G ns4`5VV1 O0SD(o_`rjlj*jYb~5)9curcAV"!6秙^i>uNVXfv~i ~B0*8}A:Bmcu 6ג䳛'CŔ*SClhJ!Jޏ\g "hX>:C#L bVzTƶj?{c7W?a Ta|p"`zNibUU<n$$+4C8{ J}5T4`azt~5 ӆ!Zpl bb`OM3mZ`"p9-S{١AL_w,?kTWDW2k2h )l^?F[݆4G"?By]#Zؘgu#'q *}, Y 0x8iWGWï81\Rko[7G 0,2Pti4MT4WND-pwvXwOq8@ԧ{=>:9ik](edIoT:Ams8(ibbQQՊ$niVBR-8fݚA&e#d]e0WSL$[ݯTCϰŐdvbG ӛdswl lVi|ՍE0k!jEt#E%յ]2UVe0 Sg#Z]DEi aEV`31?A0 H/Q|@;ULm1F2ź4Mdqkq]n}.RuGۂ>,Nc.v^epu~Bbe;U!ϰZ;]L2kd6sXvDb/̡HRV0Qƃ |kDM >ggi!]JQZNв:@V][.5Y0uoy#g~.[K۹Whi(yz\ҨoG͹uDm&AgfjB9E˻,-R0@pJL<&bgsjMP8WBnfy@g8-GL=C~aŵenv9Դ$gZr R(dHӤǘ\Шom ^QFz~٥~Z;}d-!jZPR`k+IܢV$P^$r p@t Ahɡ!-e(fVU54K2k8 aDL20@M[3J+ܟ]$nX. )vƗ QX[]Eh<դ/A _EiЎ$* {BϬsH'W-n^'cm-CG%JNd*U A˲Sş DIc[yS("l$Aux@gvh%›o5R],$':Y1p;.R3~+Zv `fnC6%Ә> U8mg.fQ{vU$Z!kKE ?+!:k+Ng2FA7+KJIDĠoX^lG Y ko=FIm [s3T_zF>&S %X_[`(Z C^[mUҚ#ؙ{ <ē3ɸr+:V`\`/?KEON0zҮ4'#H5Y "\T8T kjlClqލ{İLs7७HHǵw&5p܎Ds7؝$WCkS q笲J8x(7owljF%lNcw<]5Ni>u6`*ۈ >IG]~L]SFkK w/sF78vwXb^`zhk5ځUE$CGe\{蹦":D- %̵Uνt׊ k[imHhgL[XYWpl"dӧH~rL[ɑ#{qbBg |,6>*0x.$k: 8_DaAR\`%f_fAjK8Z6;Da U5OX46H֖˧:_]b@#QQr K8ԇ7na!n3.z[&Y4bg.x#3T:CB18}7o2K9ҹIaJ߿ho04`"?_a$ : a(8*8 <:+ms{ݽoLPUGh,G VPQxD(ېIs*[K JES3vs%^auG8vU~MܹsNR(ƦR{hM tsOqiƦf(v/!훨aGY(uMtvq]a7R-K{JXE2Z8l}wHL-y +Xn, : cCܸp9dZ*T'߹O/ؘ]yǛhg=.|``/12Ɖ7~V]Q&^߀2-I_!΀qz:;Xc=oІE*N7[ۖT"Vۈ#:?D~f?C[_VgzV&r jx5XB2s!?ۿey%dq#n{o FD!~ikqr71\Q|NW ӹ95ͬ-v EY* 9է? VWU;h"h?I&b aUe'_$ZfQRB8L ~@lDc!J+1ޯLm~N#Cøm{µͬod%w0a%AAsAm^ Kdr6$@Q%ڱ_TJ 7LA$\$Viߢ,&\G0B,v?1TYMuH.,3)k>āM(h肕r6B6"^A0u4C TVeid!XU O˺PRQ?& M"~.&5Yg*iOrqG#g'"6,/':s` T`e~R-M &x9'`,Vȡ:CG%_M`uaFHU-(hr"0b!Cre ?Fvd=%@q{<!T,`Uތ":}c2k,/#4l'ۉHPȐCR˫((Ϝ4yfņF? *  %47)OhGX܏$ɄʱIP__/ũ.-a.\NI%qVPt5 ӍM+kX|1:I,Ǫl6DBFDbTH.i:~C=wQ}T#Y_^deewvode~Mvt$ua+ r" v|+HuZ[ }hIRjbrxD66628av Hba+$8zVm$PP[Qɱ<>/vNjr;Q-vn;(xP{OR,icxĦţ}W:1S`M)OxmG|, 3ny3;BO~ԊE'_<^5v6[(}=k> zsˬ5GtDq+{<ءccxj @1(K,aל嫅o}sg HMa%Jծ _h2T;n OD|;S?OxA.|'뮿ŧÒϢ{\|ϵlEbLDRxrrgy9QylB^]w(>9'_uOL|Wa9W [}{,%@KUlʟ!X<[k{{/ &<~mwV!3gb3[gA-w 4I/MrwK6)G&}SklT@»c ͮ_OϮqS>;]>ss'lczk~b2|or7M! )`umkC]ֳ.BM7o)M q}Mx] MMwɩE dU4֣eё$*y·GO&?78ٜ@;ug{{{7o3:r9َ xQF2r)ƧD u;>.L }IDATqw`/ v3:BXb@j}rVw8Gϝtc```9sF[xRq/)NITה> ^duM|0#GV}g_9bVy0@Z"3Tvǚ\55Fz#t_5-;w?߃=.3=ekCp Dأ/n X YRo!(v|Ve- Z>Cj-%,!3NE/{}.S1WqQݻ;:p48=؃Df}]H^B!G/"AE9]== yB$6 f.K.a:$ MtAƪHd]ɢ(ͦ](4u24GVm4 c%Ï,m9Ae1V#:_%x[Fjɴ=؃5O~%q)D8?ʭ{֐ft:#] UхYe-,r~c":⠼{/a/32m?Kx8-XNe^#bbd ͡q>%M=bM6b=؃1l wS̑\!>  N=ξNO &8{!r8N\>]TTWVm7$ vϼL+<켌L#O35y!Vje,QSqN&2t2 DZN|{OvKKc)#{ $# w)F%{MoSs/ i膉()(JQM,jEr,oZ0 ?1f% ?kAjB4b5u`70gC;MsqLҦ/%#4f$MRnRٯdX$ݵ&mק6{ gf&__?(p{kڔŐcrb8{=5ί,إݯ<{xqvK)v>c: : i㔛 6i|~WUwTky`ZlLzm\.s>K: : :: : : G rIENDB`nova-17.0.13/doc/source/figures/xenserver_architecture.png0000664000175000017500000024641213556316250023671 0ustar zuulzuul00000000000000PNG  IHDR}t/RbKGD pHYs B(xtIME (PN IDATxwXǿG]4)TEPA&[4QS4ݨXXH@c;Pc<=ξ;;;;`0+X?7A $/@.fSR%%Ś._' =sg,XĉfL*e{<駅ZѥpB%&xd,^աC-뢣>d0 Ӝ7M0= ĉS.=}]yyE2SΣ׺ gg;#Gp`*a0 AAZ;`,nj,S.M8s|V `|x|;]xvϼizVeccʕ&<{D `0׾Ї3O``|L00Zurvf3 `6))iZ6:T`sw[ˇ률 ϔ`0 hii(&% 䊋K/20>P @ ˙& `0^[$W2m0>tX=`ee&99u `0 3n\YL f37A+==6mt`0WD}}n=&̨g0}&[c'`Qq"<}Δ'==eeM~ii22^ kz>Enn>G~w~dg硠YYY9?|gSTTԌZ\\ikrmvWY%hիpW"k0jԧǡCص6wA``+{j6@eVVVORGѣpr; ,Z#{^+cȐOa_ysOT"/Ì߼s33|L^||2Y[Ϸ@ ߙxhyӦ?ѧV&>qkֲ1Q`0^'_$s~~!:ի7KϜBBBsJL|~&݅wesݽ>yz`ΜIosN; ЯW:zj&F~m[=D#w~͛wa /- M@Qޯ]㫯VP״q";&RS/, [[wCDH90}ZC̙3Qd>SXR^^av/X˗%'):#=| P" `aњ;>1Q}}hkkr. PRR=F q](++յ&NLp唗"̌%۷ /@ykIIXZAuu \*ZDbNN>bcAIInn-_tOO`oo-Q\\(,,LMPPP|Wpz=[⑛//n^')IG#aee.+H]~8w&ƭ33c()) ٰo))i6,JJȋ"rr5hFh}}=ӳ 99>ڴ1q~"RS3ЮD]o*+ ##}8:}-cVXsW `0 BE~QQʕDII:gmmA/NNHڷw ѱ-x$"b !D@RS/kk 89%vd$2OH*+Jo ssL"222M3󉳳IJ'c "66Đ""9~|;!D@**Ȁ݉Ȉ&'&j˅;EERTtYݜ916nE䉏O{E֯_Fd2n\@-#~~$33;ѱ-CZ6$VVDFFxyD.iD[[_>]$q^bl܊hj++s O6mV"Ӊ,16nE2ͽEϟNU6qv#v$- !D@vXMTTq+bhOtuId䟜̌hlG|>2'm۶!aaHHH@?Kڴ1#s-]!D@Nkk OM'˗biOƍ #&&Ƃ$//cbbH̙DuOBdܸ0ҥK EEwٿ=!D@VG44H˅ټyiƌ;:L2x/ӢE3u#FFDAAlذ\";}nDGGK˖!r@xx8e"DBD "nnDVVXYGf- K~F|>&J23c㬭-:/ɇ;ohhW2cXnޚ̘14>>Iuu~D&LJcVRm/K6PǫW굒"16nETUUq+rҾfu`K[[KlGFݽ{ObbbHq+|;6'&ڵ%vDFF ]l۸q9T'vǧ=P#DNOڴ1#ZZ̘ܺuߣG'2g$n;)Իḵܱc5QWW%ǧ=QWW%g";wH t !D@.]GLL ׾ҷomۆhii1DOOŶYå=O\{wOPP# gg;ȉ;89k|Eddd1QVV" $r&.Q" u" {Bɧ' ֒\"[$˅XZpLNNHHٮ]i;_ww'._VuIx<1cqmSI=,Y2(smԩ#ȋ.^'`0^ vQv̙3kgCR4IhhWRPG799>9p`#!D@]KYN9wn7!D@/Y33c.)a9|x @v?:cȨ!o*n??w))u?Cڴ1茛}}r65o8JpΝ׏'adRҪI"ASZzAc~ٲ9DCC<;gܥ^'&kj8CM_z[ !~7cXҶmΉ~XY/*a[wOq&KAB dgߔ0ȶmsi{'ƕH7M_C\wHrwl]] ͽլRR.q駅DII{^33c2e3,r߿kkDsNMӅ8:% H}#o߯ٻ ǧqpؖ64THLaB$$#222duF[[̚5ǓdҤ@F=!2}( |`'!ɹIBCssf ;dWRPGlm-' ޏxz:szOIDZ#Vo\UUP_\Q@3ԩr.α5rl=gF}}#ӞB p턜<ۖ%˗NJKsȁ3$9h`K͛;$rr|ǯW&ZZ-ݣ̽{K{ABDQQ3jݺŤ6$ݺ'5jvE {Nsi*ȑc "\*o1G ի7cU\(dϞ #1th_\}`gg 􂑑ÇOsN<`~7o%N++slݺ߿'qxbco{{+N222߈[…3)¼y+_^=zׯ?—OŋGӾcѵkBCb΃ᇯ<t l66s'ݻw#<}$<=LQr&_?MSh8z4]c_TO,rmѣ(--ǼyS:=th_a w~//t싋_WܻʼwOK>|ʊ4i(deec 5kܺ!+p dddZZ{ qL6{t??ws'3 ߿ƍw79 yPQQ  xli- //2kkk' <ľ$2wcZ䇣G#Sq-޽^,̌pZZ:v8>0u7{q& %;8BUURZ9J99>RR^بvmq:JII!#G~#%!rR5FFF7ĂOc222HNNE\\Tۥ ,)^感ssmhpg?oZ^^f@RmhKF}JJ3=H˖Ó'OvvYIb]-ƭ"5j6aggMa[r PZZ&nkn󥤤]]gѺ§UY#c?/#c̱Xv;6l)eG9הQp8~-Ъy2NmmM<|(~b# h"c)~yVތؽ{a?qP?|IO6PUU͍4ևt9xD_H<TǓ'ךf==mܿwwG\wkA*KÇ{ɩR^e ]/BB$n~=@p. 5<ǙXt-_7u⥟G wMVp\gɒPCrE1CStDA׸kh!33[ȑx8u˖CjjV+3f|/rԾ}A>:HJssPgqm"MOUU3E#ɢz{R;``s =z/nhkk"99L騩REPddUs $$qqؿ8 ?@KK]o߯y 7okvXOO7n}a="33Ett4ڰR;Q-x#-ݗ@{'w$H9QWW9D3d5}R¯.@Zmjj*HL|$PLLH=/tޑTT$x5gc0"ޡ./+CYY _}KJ|ښزe1N)ddd%**J曟8>8]ٳz | G#aff,ws…=HIICh{2 /]k^(--k6gDI|رϵ & C5zȑf}nee&ѱs'cO˥ %%E=? v¤IätHV 'zfPWW'O9ri{}Ͻ.TT⚽\yf͋PVVE.p&055¾}Ǜ[qq)?lyD[6̙c1bD?DGjR^ee$to1׋ť矦@/|99%ɉ~wW`7܉oT8v,V]]ӧ/=ҘAjjƋ zƇ )--%/ `ذaFѱ/n1uhյ nvŰaE` }-@?'1R?mHl۶660iP\- _ܣ8wn7u^-ؿ8oASSZ>>1qP 0=ztB׮Wv;v0Ν={ҲƏѣ?Ǐoյϟc`׮ @aa1N8U _G#ab⍑#O_.]:`i:4?:FNo__7ddd᯿NƍPQQҥOqHODξؼy34LL Ѷm? ^^ķ~ID\Æ ;#(0a>|o?ٳ^X'Ǐ?nz,4?{:CRR*ƏoRʕ75jttpY= m۶3¦aȐ8v,+^G`7LS ƍ"(h(ڶ{AKKo߇"֯_B5j¦CCC ر/󲲲%8p bccĈ~@[qc׮-Po߮@͛wc,2 莈7. 11qHHH;ƏG~гggt$ GܹSpI`ذPXܹ+Xz,-Mz| 0M>fע/=zF``t͛w朕KƬYKP[[ -i2ޥK|r 0[a޽#wΝ`p}al qq|m0g$;vvvA߿\\c9/nݒ6(54$]]wW0y0\]{`rk1jt` =z \\W0a9 Xb.:tܹ!1PUUAnn~ yWL=>>1~|8u`$'rUQk; <|:Wo۔ @VVRRpBԉ`,[7n܁q+,Z46 t6=зoWlݺ|>y^zٳ'g:wO{D}=AMM-]>4CNN2]z=z ,-MQ\\SS#nѯ@o"77CK u`̘Av-Xv1%  6U?tteΝ}tMMu|$$$#)).X+nQ*AE;ښ3fx<SQ\\޽9nǍwС'V^ytM[PSSEN-kX< :u򆺺ZCťф= t1f "99ٹĄ \xHN:v z!..<|3 n0% *[[K EE%Bغ;NW< ["=ztӧy(**ySХ?,-͸z`MUxph+xÇGq<ǃ-ѻѻ'0bD ++ppA55L4**J(/-uб7:twCP䠭^())Ǚ5j ƏԺ '';4=zK{AQ*z~< b . 5x< ťx`?,Z4**rxӑ^X[#::FDž01iw_P/RX3>ߧ`ff W>N}{9* ƻYф4USXX΃<=/|\}0̨g02::Z̙fɪL `0><ƇlԳO1o7M`0 6)g4aF=SVVJd`0 xy\Y6̨g0i`0  C&̨g0o ^߾rf=`0 7lc b GaG-`Kh_\nq^r$$ƍ;ׁ -aC׮F^^ݝ`cc ƭ[a l99w,ugMW10> ;ر'n|L7iiO6 55Xr""01>(!Xf ,X99>jkkݻȈ5iӧ/aذ!{;S[ƍ;$,l 99'L# f3ws,0>.A X{HEE%lm;!++55TUUr `*))YY9mLQq梲h*L0) sl#:tz36R`brƶn۶_NNNHCȠ))i55";;`l jj* Z1X@\|ٛ"44_KMM-S[ahg2q9OCii17$L7c` iW `^`#S=%M21ͨ |=Y NW,7X:ڵk|S.L{5X`0bv_T7S11S(kn`3a0oͨ EX.x#BŠyr,YZt> ƇD84@IlaO2U}f@$d!,jSx[ ~H 5O^n `g/Xz[aGhc:H Z}}pIAGXN7t5sk53q(ay!NLg.3ok8`)fa|`f @7_, Utd:a|,,-bJa0o7~?BhJD'#ۺ|ZapJ .4}{y-(7t* t@G| lH/g!t4yP >uoBa3(>C/`0 x῁s46c|D#hXDwe!ACŌY84Z^J(tΊׁ :| !<ε@ @x!tNtFs@ tdj`0 `0̨^~ᗚ' GKe+ [7_ʄx`!b{f9 @*ܯz$DW?G\5߃ft11a`0 `0 o"~ ͗Z'Z)40/F5_tt)e!::/Zoh7to/(~:240_(Ū<`0 `0m +#{E>w"@ߋޒfdBHz߄9N7e(? PɰBlYP'}P*#;Σa`0 `0)?' AW +4SWݏT KvS@?!:(z]lЩ^HED<9W}4ҡ;3 `0 =*.>LЕAy֠7>Lm :W^m`0 `0].x/q|<g0 `0 = x()~rdT`oH m4J荍KäM宬DXH{!22ߛ{+1V f355sg`NO%{70ptbEQC@Epqnj} * (+O9CYZө!&ܗL-+Ν"**giDBS㊋ ,z]7nVē'yy@|<5.8[g}9\$,jy4A"rrIIIyjju?~8m[hdŵk3=ջ/0u*=74.`gGLLr\Hѣ=2YYԿQYIX8m52p&/ȗx3q .D>3vՔ|!BSKˑc/%~`F=xKV_۷KHשqw5̷m {0ߡC o#.ёcOO`̆[Rի_`.slHw_F))'&ȕ+!:`t߹C MFu1r$q0}:1~ Sg(ظ{0oխxDc#y,ǔjwEAA! 紴iTFm-cgאv,oO'LۉT?Je?/Y=w:Oٻ>G*#SiuN]?܀`$^.]U0>VO//ZEAꔒM5FM˖}KԿԭC}|sFE?=C#VjEňE /_N󉈉>5Z],ر1^ ׭kA>}ʚ׍!]LqRʪ)ii&+ɒU!bW{c =OX6JV][o}0{lnd9֟_/UƜ{Rw 2 Y4کҩS7 ±jJ1M-7.ØuDi~ 3 Ƈ"aoN (ucz2L IDAT>pP㻱@d$ё߸66Vih` }UѺr%`A~Æ8l?5qqUKd`irٿBaèݹ3(Zž:!44im ((H{&dGUZtl:ϏFĉY::&L:f~22A jj'f $}o)Cz(*q?>{78> p =磶eUe-CwxYzaᡅtqn 33NR7BI^ =)5`&Z&qe=G} qzWNoQqWTQ.8}4&N1neǖqM.Ɗ+ݡ;*{iU't6>228|=ZtN__:ύ`rV@ythO΄iJ[Pc|jaPUUԤGK4i(gC:*7̉Y"%?[/Ì۰A`NJV^r)(Pcںinnt&L K齈lMMQRF` @\II۸QZG…40Ҕ,O>iHSQC:y֋LIߌ t[멪N-[@Oϕoɷ4g@X(߹vavNp0#GhLkϩFwi"#3C[y.c! Xpw~?:|}9 8va]ΜeaM$>+::HJs렦K]6 >X~=uc:<˩swE] {#{}5\>ssXsz ~ AvA@shhg"1o ~ P2j `-E’+cbʼne@//u;.@>wu*%zQE ܕ+`Юao/92x߸0THoki!Ϙ)=3M\'#TTB^ҢE itӆ~$'^׮jACcjj ~ I_Sn.5[gΤݸQǎI::t&Ffl == RPP@]]L,)#$ӭ[<#yJIƫe鱥P+@CIa㈍06Eaysdۉ_/?+?L\bץ/gп>m|ӱ'=ؗBcZEAoI Aďa?"q,' +kK7}GQoIjzW@C H` X.r/6T!+**bA ( U0 ZB !!{~f7H44V-=$?e>1Dr}?{z8q߬;rBC}9z=;=@ }{-y˗fy{O"" )I_(1^ǖna_Ӭj3.ݠr劗;kyc)Ǩ\>ǬgesS"H޿Mr[Μ] sdӦvo?|UkFNPDy?<ekdߋDⷬѣo\C|7lxnž׮f:?_Cv?۵K/m|[؃V!m@^x+; z:wTr]U5gl=喬i2kvo_J\]pj:u;;`GD=fwÆvdYO_G۸n0q]?hPUFvF,Աk}c2;ddr#<{G;6w;tȾg{_WXXtǎv%3N{UKE7xa:4c?ؽLrS;y=_۶M5T_ B[e]+lYu_e!7>W۩UdTQk?Uj--oᱯ^;TT]=,ߘ4iL߮N;O%CXpwOr\S`}ʊ)]wFI?}{?uTS/"Gg~vwiUsMů.c:bՀ~;ڣemG`_;vGNJg^R~Ŏ}6c;z챬7"|2c1n;-_y%cθm[թ950 C uG`(+$N07֭,22cծ ѣqv}͌'0{nTh.VuMv:nޜ14%~ܯ1ƕW%vߞy𺜴icr݂ 1s4f_ȑpImk[[-Mh0r5`n2žA0e{r0i}_];=bb iզ}%τ?yf3fYӕh"RRxW,jsW5*n/V}}3,۾{7zU-of㘻~.ii_]jT)U/W,Z+ExֵZNm[DMSjsGNOȒ?0w 9=v&9ϗT) "1f7vmcG"7Y)SƘ@cJ6&8ؘ3ׯō טxƔ*eLd1+3y}dL*X^ĉi>hLzI?-=ݘ&M}m[i֞^j׶{?4lh/cb)^ܘ4}J1aat4cF/4C3Ƙ%>sXDa†-w7a3sM0y)@q2$Ĕx Ӻ= 07O4 ŒbwѓG{MaUy`1>dy0b Nv2CCԓ~xǦ%LP L籝ĽO]>T|s0͔SAEւx 诔ޠ=vD咕y9I=Jܡ8‚èY1۸;G T\ԋ3''M[LDDDD¯zuODDDD@y""""""" EDDDDDDBR{7@'{aݺgmeJ).MJ .UQQVH?MV-^u{Tʈ?|$N("w t3#=)UY\4Bi&4i%\d^DDDDDDRP/""""""^DDDDDDDԋz"""""""^DDDD$?2Ƥ7A>'ΰ>\AJ"9pd~xRD.ԋ("""""""^DDDDDDDA(KA@D P*RRH~GډbՠCeX F 4"R>bߡtG%(tt r›@nDRZm@9^%Kk|b@{9j$ ꥰ20 P9O4gZtCRR)>!=S3"rLwQRɥILTJDc!!La\ ;CgB}p->m[|&3eSx,7&s6*)F2%owOZR4Jc ܭKBj*!uJH"ާ,[eR~zt0SޝUx6ylc适I剈䑟3/PJI!심S*H>"LL^DD,`W۰::J%sqTI>T2ȥt^-TJI!36N I&3?Tύ>+)RS͢@=Mw4h-"d>gY~v{_ϲ3>7e㙖ύ@y8%/~3`|)UV9њlN(ۮL=0V#Z ui}V4<%3^D$z@O)LTJ h S#"_0>=gP$K|EEDҵpzz-vfzhl ׵T.=YD yה.^DTNnʘT/)z^DDDD$w98tPQ\Ǖ"^DDDDr\9?i&zNX5 =&'kQZRh`s . (NI A80' ҃'nJBJLcG<%@} B7v SX_.Áݓg .tϿ jſsA:v֋)?eg:". "g]{N:9 񕼣B2pk>H@)7bA{Z4]|O. :EhO~.e[o:}XExi tk"GZܤ,!""""" `KA@Y58(|RR) ܁TDDDDDDAKS W9) LIDDDDDP@yǭFDDp 70|v#ҥ9tй~0"S>}d˖-,_ٕ(QdҔR TP]0}t5N:tZj۷y;(2eʐɓ'c *NIP(c?b#U^xo'44Ԍ?:tcÇomBCCe=2.m+7iČ7Ό7DFF۴i1Ƙ'u=vٱc1ƘSN Zj~Q)Z/V^6l7n4h;zƍqO<駟LBBILL4~Z٦@yyTTL[߼c… ϸlڴɸnocÆ kͫ>=pYʕ+=W_cYhYsWכtsiᅴ_kBs={0UYFA}^] MObӧiii|ڵ+}hٲ%ݻwѣL:{?@ٲe֭{<[у-[/H+;e'kQ̛7M6VVtŻ쭷ʑ#Gضm bΜ9,[ z)ΝK߾}R %KdĈto3.;Gn{ƍc֬YzȓO?e[l1ժU3Hf111~5|M6,|US/g'5ݺuv5vX;#|vZ-[?oÇ݆ z:tjr3g4u1g(!{}Y?zT^8ZhA׮] /dС4lؐxM^z%&L@2e6~I͚5/VS^/ʟnݚ2es7mDǎؿ?QQQӇs2w\^}U.\weŗM7ĉ'_>G&:::r7'Nн{w"Bpv1oLLo߾} ֫W~h\.99svz>:%*Z ^!8/Nn oپ}7~w1PR%op vǥKf)2/8X~=}Xb+Vȍ  00ʕ+sN*UD"Eعs繤1je+ bŊ=J˖-RF 6nxNyb7sT]y@*We:#<~'N\.5VXXSNO>;v>}xvQ8u座e˖ԪU+_d5-*o߾<;?y?AAA\.srjռ=ޱc*UZ˕ig:n bƘh p*&K~Ts=G͚59}4AAA?%Kpv[oseKMM{H/;͛7?E>|cǎ ~/ٹs'uLk^Q3C@J>ؗi;v[heY~O:|cͤ(><.N\.ZBM\\5kdΜ9%灄LAq65/j8Lnzz|~~2lٲ̚5-[Ozpdq/ n*]}*p0}z{7dɒߜپ׺obb"qqqT^ݯjڵR3yo3;vW_vU2w}7?~@֭[S~}nj3X|ba„ <Yq}] oҥKQߡHnL2{>+EbY[nVPdV\鷎&Mp嗓ȪUػwo^WɷAl1}N4iBTTdÆ lڴ)r޾ , 22reժU8qڵkg8ݱrDjYd(/Auy⠠ bbbY&. ˲X|9III~ӴiSý9 6lٲ$&&z VR {;nj֬ŋg_lWa&}```/\&664goi~_f…aݻe˖[f6oc _Inj- /7jI="{S0^AKAKBLAS_<UO& d/@xX~qx{o?cN_N[$e QP/A3p?v-K-(KHa$(>4¼|,Rb3r'PIP`aЕ UP$ MI+hѢ,רƘ[sl_f4izfa_M6>z⢠qpB L:E 8 ح$( !@-(;:vCǎ<=NwcיMn^63/gҍ1n'"wYsw{}vn;===cv[n}\Y\_<ȥ`@.O+RD-R 2eʸ˔)GmgO>VGOzQP/""""""" EDDDDDDԋzQP/""""""^DDDDDDDԋ$8B)%\ ŀ8%0y$}|MU6΢@k}-]W.Ձ@` ' FSkqNpP8 ,ʃ.3uד9g(G( ?)""9غukИ1c"10<==5j8ӦMfϞ]~wl*W\Jv˥:utߩSTZuE|衇0Ƙ-Z /,С3Ѽyٓ'OY~ĉ_G=Զm&MZ>?v.<^>T`:<8 fҁf@?'h)8fQi `zgvԏn1$}Wb0*MP p-,#S@S""#G~г-/'}]^{N-Z)6.˽k׮+ٳgVʕ=z뭫{@ӦMKNNHHHh㙿x⊀7/ Tq^J8kjNаw՝ % ؊]Op_v` Pʹ6{)Np |}%RUq~ao:8~E'Nu~[[Y[/2}C-¹9!&{2vZN̫ w[r/`SR|S&l9C9SV4?x^g^y_<nMTVDDrnݺ|!c0F*eYVPJƌ6Ƹkժuȑ#ׯOLLt5lD͚5j7lnʕ+RlSK.LJJ l߾%Jx[^Ν;CSRR\ժU;s0,,{۵kWݻCOj-["~rM6MhٲA?h||| g֯__ԩS-[DfͲ(ٳcǶMOO//|7lGŋyw#99փ>xor˖-E,#]men gz8k11>sz/?]CZu$MQڙ6gmzL6:~U|(=;ey79qާO8Aqׇ3}I{G:Ar;ȸQW{Fl;e}o D|5%eGdSf8e~[uj|gzgu>~uuM49\zƎ,+ղ˲NXu̲$˲[uвe,keY,ˊ])ԭ[7Ųem,*RHSN 6mZlYOePhTteWtttg2e_x ˲Z5%***)9D_}e,k_0!!!r|ͳ,zs;שSgeY-˺˲;,˺Ͳ[vysxxATXqeY-˺_lLL˲:ZgZDD&.]g˲.o֬hm,Ӽy{,˪fYVe˲*ZU޲e,+ҲeEXfYV˲"""j [ qMZ Ǯ- fl,v٬g$9vm|#zgx' \Ů ̍灩d?]EoU߾RyS49s|rE[o g`Kح`I>۹1>}y)Of97|}~9q y_}v>#OMgV }sqЖontq|pLfo9KvϔuED|4iRzBjjj޺lٲ~Dz>hU1:v\3f' ط5Sk,s~ :.e.{(pu|;즳5PFYX >?sz8|w{OOdNyǢӱt۝d4G`q9F-t7sʤzw:`NODDD)ShԨСnݺ={vSN3*U:t҅|5jرccǎ{]v IIIE7mT,GW_}5; %_~<ˍ5jάY>}]EƘ7|mzzk˖-~m۶mb`- tZ^y1'O!&&frTD`;hR욯٬#ܕ4O"Nqn~Og8v#f{Tym) K!% r}l?vm}m~.5@;[Oyb6ۭc^<=8@g><=' P46+2uoHN>^u->\3/'o:7 :D9/v~.]T'==ݵqưMz7o~r'눈T`'pիWm۶e{gϞ &~޴NLL ;ߥO>SO=u֮]_qɲ111?Gydwqcǚ4h@Rk̹ssq5ݙ/ӲY%Q洮sCg6ڲ><7(NcVa6]K{ʹ\fձ(,'87:6W'a7o4_}6\fJ͋d?c-\xxs/ ͝yy C|.ȷ91;<Ϝ_7&G{(t>=/ώe3g_:8=.G9cvwwwoi6ϲ;b?o!ؙwzqnL=`lsv+.fdY>|*ˊ֪U[n /_|ZHOZxٲerӧOxf͚>yd9s}k۶ ZO8ʕ+K3$$$4^x1pѓcbb[J4 UPjezGn&8,{T/GuuWyN>y v]La"YvSΏ41Y-ZL[FFM>v4zϢN=8ǽyqb΍7vvmqn<ߊ>ʹzҮFuSVd.v+S5vfr9ss]n]_:pzAAA. *7|Lv4Hs**`*v`77Ůᮀ]ciyvұxs>{vO9pbd/`7_3ms`O\ AC)bd?ع˝>;r'@f6efSu~䓪˗/NKK ꪫ=vРA_Ϝ9s19obŊ7jhv7oѰa#UV}vƍoWx8V@I"?&EDD" LxƞƮ KwNżZ>uԩSW+x"""""""S@D ﰛßVRz7H""""""" EDDDDDDDA(QP/""""""" EDDDDDDDAzQP/""""""" EDDDDDDDAzQP/""""""" EDDDDDDԋz, IDATQP/""""""" EDDDDDDԋzQP/""""""^DDDDDDDԋzQP/""""""^DDDDDDDԋz"""""""^DDDDDDDԋ("""""""^DDDDDDDԋ("""""""^DDDDDDDA("""""""^DDDDDDDA(""""""" EDDDDDDDA(""""""" EDDDDDDDA(QP/""""""" EDDDDDDDA(QP/""""""" EDDDDDDDAH!T?aX \PY "N(Dg*W}mwGP]q~gG$(SrT9w{o M""""""" EDDDDDDDA(QP/""""""" EDDDDDDDAzQP/"""""""@ХO=-9x*PZ4wøl} Z bT۝hZwE˚vd2t?e?qe.uysh;lxb"UjץBw{ТT^kv}vDF)S(/1p%JY FUz)!~7{۷Qfm\ػszV4~Cu^tLj7iAK)V_.z9odQd)*ŞRe<V|i߮82TYaοx},>"8Jw}繼AW)QP_]>yiӣǓ;b(Oڗ7-Hhݧ}SɼtKh; #G*׊fڛ07CE^}4qN1yE]NK?_ڛ%"y ؂͍GYle)%FqÐݠfΔXgn+"?5ԍMBjÍ"H7(^۵-kWC?OP\3W‘}._7:}=neokBBCikvnɵIfWf?ֵr40Q{ C̝AxD1:5zדb)U<=q\'1,֮K!|̏տP|EbI嚵X:w&kgM,S{quT*ۯc o@P,$2״dGx9p++Q*7 Nz u3Id!)'SY nEX;OyFRhII*D mr1/Q Mv`ݲ~ٷ3yeXq;~ >Ĩ{K/k0?| iO؁_g[᳏3R洸+~7]Ǖ:a.Ҳ[M)U5}xb:̾]q\sn~1UCo\qpo<µɡ}{Mߖ,`7V EDD K~DUɾ|Tjrߴ U[ЦGow3dl͛K_ͣf&4-o5I{Ӽ5>Gby#}0Y6bA4nٚwQT׀RQ(IN_nڶG$0Oi֮#[0ϼ˵#w_4+8:w1 +ը]͸@؅n?gO~:ayk.os5\qјx?~1K^rpڛжg_}ܶg_o&GhԲ5w=>N y躎mHF94nC)_NCy_K7rڌ|cұ3{O=KX<ΘOr&![ے4m.&SVVΟM yuӸUz=W^@tF*EYa}Yڿ_MIL[{Ijèw>.wUמY|{=ſ^zSc(/`_8n]gzPpߴƭdyczb,m[A}Upmڜ}_|Dj8TBBZ.#MzA tcQE)RD*UJ-CP=2dI;3Lf癹ͫWڲϿ`t׷hvwnזlc).'<,@2Źnj69k)>qAOںj֭ƕDFD{@JVf}7>_9ELt%Ķk*Zw/ҡcdT>W~c<Eqptֵ,Y* 2{;>{U6z8:; q(>Nw~9|N.77mLKOI}|p xYi|Κ#C&Uڲ5+KuAcM7o;_:ODX!FgQ\>I㷻?~3>|"=I^3Ir 9K!@kllliѽEs猙\P9hر+u~lc)an[wWx>gj4omT '6&ٲ?0.IXHCc~ɯd%+Wa29ZXfxH\l\3gM6ᡡX[b ^GOwZ'",иY1[uOs[bcc(V?E=U5~A$ ɑq^O37\2%uwKto~_g7nATdQ5΄jz3T0iۺMZѬk Q'ord2qt.޸[5"Mdգt9=DНۄ}1>}g*܉cx'U `Ri.έ6u"VUٶzl 2<ۃw=nJD\yЋ!>r,[V-巩 CLL4އ..U nxm-f%9zm՛ {~=sǏn G^>vl%,$(ydɞwo+_Srq(U'Gdx8k1fGMεټr aɞnO/c^^T|O}Mtb~;?N[[j6oMQ%J,[߇}EL kӈ  "[<=l Ɩ( .Ϩ󱶎Mjؾ]k|F*oε۰v*[?d:jn/B9z8?L&r`²ǦASlvP/"Ó|[68g=j֎Ҡ}{o~qpt|zK'7zпq Q/V8p8߻6ww}Nrs3 聓 1QQ,ж"TkGg~;?L[[jlKc0YY%:8f!DEFVƓlG'|?yE~53q;)[3Sm5[֨9EU#oᢼAnZkݺgBB0~#0W8_:zTo[{{܇Ȉj6SH*dw^ :C C֜1LƷ-/fΧtZ?X>H=;9%DD^ FZvlkk|M:D@ yqjgGpyj%;iG)#_L0lYN,PXY-eKsmNs&cևoK9k鍾 /"K Sr>vB`Ybkg@{!"""B`7RDD^6WDDD$ѓz%"""""""^DDDDDDDԋ(%"""""""^DDDDDD? <ͣ>zR/""""""^DDDDDDDԋC=7֎>Dk^DDDDDDDI4oB{Z҄={в`*k`u5\pH8QRHɒ%ٽ{ѹsgf̘5$$ŋsq8QRرc)P@XW;;;>3rȡ'">}XAq%4MTT3gpus@@]s%*̙3̖-[8rfbf͚%Kdʕ+ܸq(Ν;x{{{f1X cÆ \p-Ɔ͛@xx8ޘfX~=gϞMrSN_q!bbbtr^^^,_\x ~/V(gIul[oEÆ 0a;{f֭f} .L`` >>>Ջo(Amۖ7͚5cP|yOj׮z 2=JTT.]PBZ9s&2)[,֭_7jՊ`O,Yc̙/h"u lٲر2ep ^u >sܸtǏ_~;wFa2ȗ/.\QF|w:D۳gkX???7nL*U,|2Vʕ+*U7|[[[.\Hٲe)^<+*UH"\|M6q)Y&5jxuܽ{7SxqZnAAA,[  ,H6mpuu5]p!ժUʕ+(PVZ舧'7o͍ݻ;/_fƍk׎+VpI*VH˖-r<˗i֬1ܹsܹ~'N~={6kצPB=z 6p֭De%zRrrrbϬ^ĉ)Y$*Tl۶n:fΜɎ;,Zx1Wlٲ۷@j1Çs!5jcod?~SNqҥDO1?LoT^'OvZN8G}LD+W2zh4hݻٽ{7gÆ 4;vB L>۷oӧOԩChh(7nd̘18p^zacw~ԨQl޼tqZjeq79#G^z_;;;.]r|3vX*UdQ#jĈ :=zpU FϞ=5kzի3ݻcǎ4i;;;իWɓ'(7ޠB TXڵktKe?N,ʹ~:Ga,^?˗sf̘ٳYj~~~=G;'ZoRymI1opY{w@f!!!6C8&b._$,">Ȓ% gϞeҤIvI"Eh߾=fb͚5DFFZ\4TZs*UxbjUT!&&+W2dj5nXxZke2hٲ%VVVFp%7on]n]ҥK֭[([nl6憧'7o^ٓꏥ֣R'8iٞ;GF_ߏL -dO _"iOn2 4jFV,EӦ^ǽYSl ỦIÀ@ j_,ʀ UL>P'M.)ȓRܬYqL0'Pzu,Xĵe/RH2@ܹsd̘1Ex2eJm2acccTMgΜ!<ccǑ3gN̙Ä Xf SL̝;W<㹸MύKL2lڴ).SN,X~~zBCCiӦ7oޜK.QN<<o޼٢5jɪUEERJTT?v=k֬tޝ}w^`"RȞ=;&)S={7o^o͑#G8r-e˖FgvNb۶mL:XܹssdR̙3ʞ=? ///ﴓ'OOfpEÙ>}:Vٳg>Cw'yYy,vX{r|ZV/V##BBB _Cm-ڸ'-p0Ȩ_1 YDK"88.]н{wZjE3fQɓ7n{әҥKGŊ4i+V͛ :4ESX1*Wi޼9K,aܸqNߩS'f̘Aݻ7GAxwiР˗ҥK=S4jԈC/_ҷo_d"Rpppv,[ -z~J*L2.]2f̈`̙ejՊ@̙ck6W6nܘ 6M.\?cQmIo %K`6_> nݺue˖"[....Lcȑ#->'_gܸq֭[G;T^36nH-2dI&/F{5j(M={vNt$22ٳgӫW/d"ohѢԯ_ZjѼys6aޢEpwwf͚pwwwz-5kF)\0 ?ar7nÆ hѢtܙ2eʰvm\ C?~ʔ)CF(]4Yf}ij'""RJQV- رcק|TT RdIԩcQFժUqww7 Xv-YfeΜ9,Y|ѱcG6mJ\/_V;7ݦKH7 n悅(fk6cFF2?v:琮ss=z?L:4qpYX<D̃'L^{c4<ܭEkgD4od dK%MC")$QR//ܰa8|0yӓ(fΜ#"iFN⹻5999ѨуwO>ٛ@'6|%[cƆڵkSv$k2\+++WnQ+tѲeKaI4x>4*i׃ !=8dO 26[AȽ$ިe<:&?h񐐉>NC,)!]-n2vO$/"^3nܸ'd#}O}&NȮ]vݺu|z8ޓw9fURtDDI;v|2֭LIDD^UVM4DmFɛ(4mE^tE$Q"""""""JEDDDDDDDI(QR/"""""""/4}ttK.՞4Ӕ/QAI#V^ cPDHՙ5;kOK09P D'O(r1 O|5[ⵛ@y,5QDH?ey|E%Xx)V$I};QR/""򤊔@j"""":QR/"""""""JEDDDDDDԦ^DDD3L (y;éz<"e*#ͳg?*xXղ!"JEDD-kZ!)o^"#"R/+:kc9szII};v<7kONPDu`Ȑ i8f~y?#P_UD$M$_[èAڕ"qBVDDDDDԧ~wh7ȫHQR/"""""""JEDDDDDDDIzI,Y̙3_v={$((H3ҫW/= իWٳ'}=͛O?""JEDD$9pw~t5bifXl:  @@@ .|!޹s'۷o4).K CmM6ڕ"q‚cEGT$DQ?;vif=<< ""J_dRٶwٝ+Epq3W(%"ٌ3ppp s̝; ڶmKϞ=-[x1˖-֭[+W#FFll,{sԨQØ>((3|p+ƲeXz5OՕ зo_llJ5k 4b_~Iܹҥ ,'7o^Yl8::̴iXr%2d`ڴiܹs8q"3f`Ϟ=̜9/9r֭[f͚ 6tq\B 1c׮]q 49sp1f3ʕcȑdɒ`ȑ#_ػw/g˗>bN.%Tpp0cƌa)R#G&9۷/`=yCBBoٵk.]O>lٲpBnݺ jՊ޽{[,_eѢE888ХKQR2sd^aF}MBسg'k֬tޝ'N0l0eF˖-'Ǐk׮lْI&j*}8|0nݚ .0g7oΎ;"22e˖qTB޽:u*k%OAfcРAҶm[fsuFjѣ?;vdΝ{G2eصk~~~d˖j*0`|1l0Fȑ#ywX"_~%AAAT\Y;IDԋH_ξ}ppp0իWӲeKBBB4iO>UVʕٳg3h tB6myyѢEo;;;vd͚QF%7m{{{/_N׮]qssvn۷9x 0;;;*T@͓ښsRreL'rbرZ;vpQl \2bŊyfrsXzwbkצTR8pkԨ?oIΜ9P͛7o>(Z(ٳggmժC O<4nܘK.;wnOΙ3g8<2e^z_rooor @̙oׯӧg„ ׏>ȝ;v(_T\={pyBBB,ggg*VȁSYfeɒ%ۗϳckc'N0c ;?o$A Ѿ}{.\h$ .SNXY%_oaЧDٙ={6mڴŅݻwKlX`<8qH+T`$LXߟӧsN]Fll,VVV={"U񷭭-UV:XC-[6#ђ-ZWT ˗/;wnVZrB  }>=z4gϞ͍k׮Y,ՕҥKk'zy̙3'Jǿ+[ld˖geeENX`}e/^2eqׯOz۷/ХK"""]Ν;sY"""8x {ķ;\& ٌQz@39r$%K|`,ccc-Ν;Ӈ"ELZs֬Yq֧,88Y&Ok۠ 9IIn9!!!ңzy$)(PHdnJΝ-Չ'ra-ZD=q#44iӦ>_̲eRxqubUTPB)ކ?AW駟n:zŋ-ZD׮]&)ƶmX|9 6`׮]Io~۶mOmoNƍu@>e 0j?eLq9 fɒ%DGG'Oاc3fOOO^{5ٹs'5Ҏ4IyhҤ 3gd׮]0zh-ڇ{xxPre ŋرErc$K7ndѢEQFFct¢EXdc^Z5֯_@;vF@LL ݻw\r :sm6fΜiG >|8'N **իWsΝGZJ,ɖ-[ԩS|I6X|93e.];C)k֬Ό3[nq)cD= bԨQ\pӧOsUc>38z(f͢qƸakkKv3g'880$QR/"""Ofڴid˖zQ@~g~g+f1]Νٽ{7 66ٳ'9rgϞ|G󆇇ɭ[,wЁ+WpڴiX߳gO(W%JΝ;xzzuwY~gL&sf֬Y|G>|̙3zjN8A ȓ'3g?'&&O?!W\4iĢuӱcGرc)[ƧٙEzj-J5xoCR-ʢEXb%J wԪUˢDFpTR[[[Nj?~<ԪU r>EDRp[txr.uOݴ+E^i7{%7:\y\w빠ۈ1ca~ONS$C ~.۷ɓ'O{G\RNϏ,Y+ƅ ȑ#цi:mg4쐲kZ\̅ ș3'OT/QQQʕؿC ʕ+,Z@BCCqwwOr7n`kkksY ފ[Yx{{|/ )vux<"z.=O* ŸW" [aee",8G/U},[s|~@ǤJv`.ҥftCc-Oe ͕R IDATa[Q ˲] e0XD)+TƉܘ?T  |6$j #cw1R]DgYtMvLYkaYiC[o=jcc}R5]01ފeqV@ ˋw 'WBb(DƙiYE:O${L?EDDDIkS ?Mq=|si@:7yV3esq!NuXxy М| RFC֦RV&>^X4q團D5gZS hBqbK:{mO.4bɮGNuoY Nʀ)tQR/""")! 22@DD$Sz%"""""""^DDDDDDDԋ+""""6PYa%""7Pzs6!""""JEDR@:`'S%""߀r7ϢQDD}@d<?BDDDDԋ.'@sBDDDDԋ>?DDDDU3P ] Xh♝k_wy٘6mƍffQػMb\9n`t?p2_N Kr$6'XVllllll6^Gkќ{{8&62220<~b0yIiY)]!%<3&<9ttYxz]􋤹/rlLw5o?'{J$H{OU[CZV)J[+A"BqNHy^yss7ywI+ e<%B<^m*(!˜JKz!BIB܌&)![!B!IBSA:DK`!BHR/TkyIB!$Bazֵ'$B! !09>v\ O'/WWo.68rhyT^ou%HB!^!'6vvt sjCP,I4~-Q$BIq#]D) ~"^!+=7+y"rnk}*ICk|YZBIB<֕ zrϛÖqS[s:g_!gY&}Uigܱ\Ty+J7^b B<_=!x YX*8-B!IBStB!^!I*nE,O!Bz!&ɂ9!BIBgsR%B!^!ɱw 51W!B!IBSdA !BHR/9I{!BIB$' ҤB!$B!L !BHR/YZ)d!BIB\ssE!B!IBS f!BIB`Rb&-B! !0>OLz!BIB^R#B!$BaI}tB!^!IJO^B!$Barnf\R!BxX;Ne}YԀB'玤| a:R(p-T,gX-k2H1SdBܯHVAuooǛ͎|!0kgQ?6|Ofi{ԛʡ˼B?xa{^^㸛KJB3} &c,dc$0B<Ϣ ^`X*H`#(\ !pI B^!_ !BIB'8-B!^!iiAU!BHR/„% B! !0=$B!^!iz!BIBj!B!^!i 0!BHR/4e!BIB_ !Bǟ Tg3gBW{TZ)v͚Y&MQ}S>`D8@n/;>,syzVȸv-2((JܯǼw*WaϻIRƣPƔ)LK;lٴ^^SryKN]\Lڵ$'+ZW !BǟDjк[iРN=;zI aUY-fccoC GZ0M@d%|'mK2VD#ARݧO!@[g͚YRmB,,,0Հ}܁^@[UlWttv@}BȐ^!HT]ף_|0[]Avom Bxd[U5ѣԫWIIq/>`D=ǿx> -d{!B'ʣRoQz!?],U('&! !BHRY 9s&b93{̘IslB!$h7k׮f&U# lsO kDZ%&-B!ICQKNkM{Sv5֮ݍz7n$녽vvt⮷/JXiYsssʕsm;nӣG{ 鋛[Y>`fۧZRSә6m<ժyҩSKaEkK\Х_UU}oߜ+3r@7l˟h?|wr4k֐E~'9===+ЬYxaF} jժʧAŊn4n#Yjqq UaXO7z%&&|]0x.f͖ێgΜ|4}_MyҜ>QhBX l?]B!"Soknnp.b]oPtIssssZԮ]r\9}<Ўla st*u2JĪT?|_޽:GhdV=ɫ~¶m{pv.ARR2/j'Oў6m[Fnn.M[̜=ųjJ34l؍F܅Am>ҥ)S:d`:thQ8񵳳jJ9AÆu&S>…3g)cLܹpu-yۺ|M^yJm?wd:E˖,]:cS|툏7sZ?~)bK3[-7lXv۶ժU*kx|ѫvL #F7[^mFy۶56koܸM11W{耳cԴG0=E@"PB!=q=O4| \~^xk}6ʕ=ڵaܺ#ѣHH67;vqc_~ 'W)M UU ݵ---pv.qdk'Oe>T批9+}}dÆ;W}̘ma{Y?|Cagg՛\/\zhQòk%ڴi?ί~ʕ&~~ޜ;e4botu-׋;CiРm~o~7ݘ8Q0}}ص^{ ;MhQVAdNr\?|5U=>@( * B!()t7MFXڷoNZZ: dݺm\Q2neeg@rr*J93f$iN=~uWaSԬYgؽ _}]Νx WunLbӦط?9l?!11eKӪUzhǴi R"Fpoذ.=zrYzhϥKWHKKOF[/akkCǎXz[7c Νkל% KRR ].r}{{;5k1j Q}HO`Μtю}ȑ9s&]M7n23g.յ7}(/=пoԩID6o?|R6a͚-< dذXw y-[2zH/^Cn/2p`Ⱥu[:u]K@mok̞[ Mlڴਢx>jfLԓ>-!B('V5hsp|,Y{{;|}8th-իW6Z>ȋ4mڀĐըQÇ_{_NJF]6cw \\JUZp*.\UTdym&N|K3rʗ/CVMQL4ޤBrL.kIŊ&?~ +Vl`_{ig#Fގ*U*(˫:ژҥ]8r$ ;;,]:"_yGUY&2bGeʔbƌEDD\lҴkK/=gؾQzFy jlt!pؾ7&NRNM zVRLb駻˖-;zMԿ-^V59|0?Drr*իcfٲ|hC 9fMdȐwٹ3@YOdܸܼD ޽azjSQի{R3.]79cބH jC= |}(UE  M@^!B;R =ȪU3ޯXC#Rۏ>N\!$ @z!B_092#FB<0yyyĚE:6)`% !Bao޼t]Frrc]YY̝&::ŋ'!:p#"K:2w2ߗcشiM<56^@ ڸw&;\7ڰ$B!sRug:8;ť.ժ#9w.X]f ׮]+=55A""]oz#?Wݿ(}|E~g兆Og!F|˖|ےA8?~fMZ8'h?0(pkB!~G]@kk99$&&nʲzm>ω2BBrJwrYG*^{m0Yy'Oc%=]Z Xf 6s Klv_=` 'ty !BIoՠO?˫:D G}v$'##ss3ڶ 4ZݺaooKXi駅tư^={YA6Xc.BQ͛w`kkCeXb))i݉uk{.ر#>}:d:ΟS4k֐dVĩSԩ%AAaʍ\]0:E~Szٵ6,~Kg`,Ò%8zJ9ӧOgTXQQ KRR!~zZ"##-Ѯ]~}3pw/G>`Tʼnn%[XA&6VȆ mm};kG}âE I鋈'""[7%,4_|17$U:k}ܹǨ |OL%K:W_sС8E\]KѲe/}7Z5#Xj}vcӦ7xy FIKW>CVdRB۶sezΝ|d֯Cn[?99+W6͛D߾;wGs-ط'cI7vٹS™3!DrYn+Nys~a!!{Xэ V!43f|aHJ.\eԇW?1$7ng֬%ZAff&'ļyЯ_/-[ٳQtd(Ss=|9w-[x7[Y6mc_wNVի{rF7fԨϘ57lYXdbr,ABQYzÇȈ2S{KZnJǎA^x7v- q4hc({Ҥ9rm9s1s.("^>0G}: x{PGX9-]:U'wUuIe;={7EQ۵k~۾ukkX6{Wj7}aݺ9_s  6iR7ݺ5<SΩ` ߛ꫃ԺukϝZ:akIu„w n8Xs~Sd}$%P-,,Խ{WMСZVUUU}UU Sw3Mf ۤΝ{(s^W- ǪZ'W8G:ͷ"~z󤤔[fVԠ^DF^dɒqu-f_ Θ=|O@,,, m߾ZZx\xh֭P|Vp'6777jm++Kz`t<.\ƍDwN+ѤI}n m{P< @Qwo+nݺhј;T#'ȼrBCN߾ ˺uk-۶)r13oݾ}*gX܅xN<[ qs+k}Æuhժ …w1qcۖ6$77˗c kIڷo^=ӴLbb2{ocZ_~Yqݱ>oP^9OM=T64jT?܅lݺ?~K\寿ceee{s= u]Wג9Ǐf߾#A7@!B>&n~\*T(ORΔ.m|gy||sl$8pŋ'U`eeIVV6qq ?|90zF8; 33uqq2 #(Q2eJhoXht,_xv  6>>5^S濮K( _|1hyIII5J4$.:6F1vj&ŗ/beew1e߱׺wWZh%(oɩ! nWm˜JܶߩRQ;gcQ4芃Ԯ] {֮Ll׫1c"J9.Mf.ukC^J@͚5d9r-;7Ý  !B!Ih䳀?ٸjJ N>}iikh4[,^-۳GkTݽa *T(PUЊz̨{{[2Lx; __/~ۻ>^sc^ $~rp*U@VV6vEFEĥ 2:UGZ|툍7Zw;+( ۶);|9]:ffmQwhӦ'ڵ[iݺ)#GNp7f*xyU# !Bf8;w bذ^kzOevچ֮T_Obg~_i2E~'!!y=t(=If:ujI||kl ==ŋ7*Vdddi_6` ۷˗aԝS.]%99հ, R\1cYY٨̙ͣk6EӨQ=*Urgڴ_HLL6,/k6ƳlzEsQzeZsÇOpE~ :ujɂ+tm1pu-Enn.⮳pB:GƾxzVofz!EiҤ>fff|Lڴi @۶Xv+ǎӦM;/Μ|}lڴ ?Z@y 4xI(BHR`X<fw ի#fҽ{[ڶ $++Wvb߾#wUfέ>u{xz6#4(ӧO0L</SR37M{ѧOg{ʐK1͟J渺2*Z5OFϞ/ѼӸ7NZw;^:?3:u:з+nSƍ}qwoDz;w%J80}[Nj-[#o9 ޡVEcccͼy ً[#zJfyՏmQ^$8x $$d/3g~itEFhшFzLʁ4o˝2Srss }~oߏ`>֭O{zJ*iժ^^iҤ>nnZ}̙;;[/ž=(SݻC~52Pʒ@]K0܆~}rssqu-y9V%pLpH.E`bui7 K&rs9@˾뭍ՅB<=ȪU3F>|ӞgY1DF^^ٲgϡݱc?5ƻ:ѣpqqysJr1vY,--GE]"11[]ٳ4mʕ8c&ʕ+qF]R}YcN IDAT] ˫: s4cdž ۉqc_*Ur'4 (=űcӳ-Z4۱ #D!xtdR/^rLQ#xmذ!Cs3 |\Ir7=]_ t0Zkb}e8ȟ1SѓbZ-@(֋.Zw=Tc7-p\X,D`Vxz*4Be+z5P:~~KBI~L- zL.}|} ʼnUF} CS|p~*WwX0sI%B?Z q$$ܤf֤wc$BQ">z◠'_4(ígNOF :'{| ~ӓ E7ńfz"_V>KO+k \`ȷKOPR26yhRRל}L}n|ǒ-<$o1~,*d}@+ q /l/*/1Fh쀡B <1Ib]hɒ\vS ԲHPPc> '`h-$'{|z;J>[O!h-z z?}T M?uK`B~x}(^VZ+~̀wf{^ $MPC5>_DɿϬ|tg\/H~ʠZ 7G^O.un7"~m9 FY>[>VB!Roy#Feddr5<=+LSRRILLݽ#{qqױ_u\\faشiC;D.Wƚo@AڸQ_D= Th ==ֹ'~!y\=qg{7_;Z7кO/d1sC0}ZWv Da}.nguxmBV1璅6ߪ4I:FbYP|eo@;HY`|}d6l*U*vjR6t4&n_3jVߦk֬a֜9K?蛾OJ \zXf_22)gZ/$ ȏfcj}?蜜ƍƍ۱%8+Æ=wmlIꕩTݰl|O=ȾA:wH:z?~{zz6c7096!aaIMMqcd'Rq6.;\OxuWѺ,A1`DwC(#nέrk<9ГZ'Juo=.Zu_dzNbbTx yO@*RK? Cr$?[/~v^i]2E6Z#z/( OH g_smh.rZ/qHm.DU:{Ќ±w2~_4ݾn9x3?sĉ3/^յ$ éSSiܼXi۶g}' o[*UFVV6[2&LM߾}qK+~s>[Y8vg> /%11Q>e葼Nիwǐ!}~ɒ1% )YjcsN{f7wtRO|R? Uܶ,&%W0FO֬eDu26g$n_M %8zi3$ڤvwHNKꫠn6@nM,<$P~RdM` 0m@l=c|K=$Kx)&'E`'g=_?K Nz^m֝:|1##kדos!0UUQФI3W΄m;awj'n|Y.]zs8}:*U*R݆ΟյfwO T LO`ϞC.]ukmd:BB~E $331c&kcʕ8ϣ( 5kV8Ϟ~}ʖ5t2>>L*T(;E׮݋9t( sqp7lOnn.nn:AܼčT|kbVV6CUU둘LFF*W8NFF&~X4bbb#<\mp..}붂{[[5Y;vԫWe]Qؿ(UT4 HKKgϞC-[Feddr ]Q=Ғ%8x0 7h __"*;Źs4hP''G"".PZ%,,n}]KѓXSvvr`kkM8p {{;իm( ϴt=ERR SN#::*bx=!!4C}zx7!~o]<#g=ד1gu[|ߢx^mB8=)m]_E~@+qqƫԓz"?s~JZ]ғMP[O6Z/! c.zȭ!Yh-M4XZxq\p۵4 8S]S8suX~| ,[6L~#b kvzwc>2wܙ9.V"ԲFGG,PX1}$`zh׃zSH :+7SF݋qO&2h$<))hkkf.s,&<7?w?\A),>: ڵ[TjIzz# xHO޽pT魘g;+W嗿]9ȑ3rUN!A895С@…+3(*T(K``0 |C_ug0wseΜI8;;:2eJsv0sL⫯es'[X[[˥KWqvvdAQ_S!~DGvʕ+qM'1ll~Y3nnm8q?jլ cҤO3g1g7O~q_~JI %ؾ} `)TTS.ўN=U:t?Tҥѿkul~kk 9MJ!q4nlطIId6]2zn_943?ݬž{턲nؿ { rKxYyr8‹ģ_u|g/kh&{ٗ|椺Uum|+Nuw)vJ9#33SV< E/&)V]~o>`x᱇wrzsV6lة̢E+طGl0?f֜>wݺ>㏵ϝ̛7;wNœ'z_}5s8/0|iiFÇOOپ}7oi~g<߱wJs[7e?f6k8~'[ѱ;K8:lه7leg4G "Xp:#F|IpXԯ_{z 0wrxn8;;ЇFгI1 ([ky[, xD96^ J~]Nm^B }}mx⩂cb[`Ӧ=8:6zjg ]\FlqskÆ 4ٳ5kVͭ-iӜjլ՟LlE-YZZ/^L!O'@KɓGPDqtѣ==0a;޽GO`ڴQ(QR 4i8QxznO߾];vtEiS{ڵS&X.[ ggG\{޽+vvE:x1r7Tf_wNTn^'-- WזTZY}s'+g7ر 'Nή: `KN)S֭r _9r-[ciYy۶Y*]*[--+Ec˗o}V(.^c O#nժ1͛+OףbrV?qrj:ǖ-4tuuP( ܇ŋi\'%JgRDqvmq"__Ξi%D2y^Ck'6!+ᠾ 3A:SNLH)(ڛ455[(ŋKJAAYd됐0 ̧ҥx4Q4:8<dll)U>>^9ܔh=55csʪʙ_[ZV !)iiihk+nذ0Uk^^Mu܈%66Gdž;:6֭;ҲtŸߖEybcEIIIrBGD|JsVLi5ޫXQYW144m?&,>j`iY#5Zs>\Y0TT5s YNOJgjZ{ILLRaGo,L=cdd@b{3e_nʘkbRb ;koe$99Hou?\o#<~3/V=æM{P&`.[֌Kj|O Ra˖?^zyVMLJaff½{gyk]SFj׶9!B66VlڴDz! }}=Z[ć62]r6ߤI9CjjOd[fceٻ͚x.]ڐŽ]kk 5ll*s^D>C>MBw r劜>}Q6oާ :95a$$<;?gccETT4O&ifIMMq\f_Ⱶ裣cٿXy޾s;nok\Lvّ]q~dSml-,-8p!,##Ϯ#(:*##rA쿠[.^Z"kP fŊMԨњ?dٖ>37F =q*)SdĈ/rE?? _ٶm _ݻ01)O?}epp㏻ӣӧ_qsՑ/X@i۶[lY3qOmۏ\Mu ^0igWR i~vvuIeU0~,v8HN%pIL۞쉋K?ƍA,_zjEӦue?XONZz\љ/Ӻrxz8q8w{RvzhOus'sW>FGdžL յm6'* {?Sg/m4gѣ,-+2rG<B!xm ^NQdϟZ;oy;msYt e%GHLL`wweᘚ$'Dv,]::u[l:/BE  jD=^MR__3g:~i4ik+P(j,g eԉT{T)CQ(( ,2ueECcL0\:&,>3=Sb9<ʙ3`@O*WHUX <|Rjeոpe}g!ʄyof'Ȁ{0TfР^)cFDn޼!cR'1TSm\{ْ1]88]IZZ:nl逎2gCʕ4kcffС}#11 ;9NgX\苫kkak[Cޅ;z„aف={Vpgjժ1gO 5!g5@ ([;3A=Qvo 4S- pJjm([· Fzպ`5CUF9hP =7hP\aY4Q+Vxд=5kV%&&w1dw1ܻΈ_ҨU[{7w1С$$<} wjl/9s+m8 tcA^HFƍ2d/A&ҨzС9|:J>iذ: 1V͛2pD^6ݞt0~?9.setgϑu߳~l >M{ΜlڴGmWQ4hБΝwgII̚ ..hѢ73f,$))9K>[J۶ӸqW>snLk{/h}A&> bXh: Q#7ùsWG>F:&&3ڟ ;ѣ;2r-ZSq60(Q-##7PS(֢_U7lY3ukiݺ)%KJ)`ŋcޱRB|RR`+}w.p H(Q TPۮ g*_>7eτ""qA'!CvOİ} 6nMt\dd7Khkk1eԩNÆu166 ww7llHNNao?@ppŋۅ ֶGOgٲy^FͨQy^iViذ?~(4 [hi)5kn帽O>{sv>R Κ5[/ť|XLiCԳfΩSo#GhLy<{"Gř;w2ݻr@9ť۶K߿;gz/\}G1sNaúDE~4_ h,v_c&o)Wo㏻hҁ(""y"!)7&..Ga#G~̬YvoXR9)o޼ÂPF޸q_Aw7eF _oMzz:K"P1%ؠz46l ۪ >S((?#/͇P8__zji5ؐ+7gZ~'?o;H.\H|0"+Wm$'_><OϞ;w2nnm03k5[6=۲z~~]k~3{whL)3g>?~[q&~ѣ=-ݽ ehN=alҥЭ[;0gbv{1s/=Nj\\QRl Ϝ9)L8<6YNoF4hP\ή6۶_-P6mu~ƌȇ*cٝrڂ_~ݹ X {z~7nT_/˖P4T~͏CKP_ !'6l-LB:eF<ʙbP_"t@K͈Vlo?I FX޽;bhXfz:qK;@rrGUd MMͥKWs\?ڵkkKnOBS]IBSwyA&͙3^B:TΜI)(B~F eƌg%''seʪZ5fM4nlGbbYdN|)7[:{ևYLs.׮ή6}tbȐw=Ӯ] {ľ};3e<ݕ.]\}2yJ||Bi˕3'##*uWn`Pظ,ojj*I91Sfφ%KPg V/7xpo6lERR2;vx͇8ttt4h5W>3gNvj\6oXzE͚vk]Y?Сhi):t 9y|_z yF|l':8pEN>׸t*;v 99};_sytP7ǰvٳ>9rF Q00(@jBJGGH.s@v+n' \@٭t!>8,a\ɍ۽RCÒݑ+7b&UE _%g l K׏G_m6nnmiٲ~~/C%o;zKsJ(^%6mφٳiqիзo/~kԨJjj*խUIegu˵nݔ%ʔ1VxW#!cNqKvXhȖ\^?55۷_޽Gѣ=']Ԫe`07,-+б3?\O=r}y :O[PcÇQuDL& ;CjBOdyPf_Tʦ Aq? tw /xdvx6e__!0Pu."8]c!Cpe-[V4oވxyyI )hkkӠAVDDC1cFƍ ƍRSSY~ _92qq Iݳ6̝篰dؾ~꠿Sr9LZZIIuGKEfпZÕ+~/,=ټy/ 99?Xq#@KKj<Ǔ'1,[d={5YzxSRRWF*dmƍ}g޼%a y1jǬY OS'T$ߟ9s#$ 'Еc͖޽pF&Mѡ@֭{~Ec- e(՛r @{qU`_ nPvӷtC?gS]Pfrs֢ժYȀ=^ij0n I}[9矧s/ԯߞm[`ff>ꆃCW0{"f͚Je;v..(_ށEVfٳfM`YԧGoƪYWK5T?*Gٝ #prjB(]ڎU63n eO#1`bdT[\}Рޜ;wU-qtlzY~1e˚ڟҥ05e۶吃pUjnyCJًHKK#55SSd-,,Z%ժYo~yOT^MLɨQ_ahX>ԩ#57o FFup}}}&MD}cѢ,YSS[:u1`TbE*Uj̱c^67\][RLi46{*u HǶ {+ew3tj֬[J6a?hժ W@ppvvhժ1~膯?ٳ'2zN@qvvK62릫7cΜIbjjKbbׯ ݌5^BKKCqnƎHŊ7o ff&\mmm<>l*--0,,ʣݽ{ ʾu||EPF]OĐqtmmm*T(zˋxS| }q4GbnnJ&=z'TZ-g/ɩ/AA(U8x,-+^>V?dk#ضO@TDDb!GY(UʐzjjdtqiƎ3g_؈ky+<=O숖wrf-Hݺزezj̘9={vvnݡCAnݔ笑BYV([F([}rlT(eSYG^!WꑕCs3rk? ^f{)ջwBY8]]VeJ,/ QyJ⧫-?*͍mm24,01)I?+]$[3sDl)YUXo<x*,-+Я_MAŋ{\%J H |2KaFanԺuSbb3B-ޱ.BE-Z8ТE?m1d5z#OmٲO_A֯_| <14,!izzʟew*U,)VժY3oTtu_|u14,ɱc^xzb0wׯܹrNwiӦOvlY3865-0}}=ty0|?R5P͹ !!t0H=ydaQ|-Z8DKPFW^Me/FRTڴj՘]<9s:Q?ʕ+X[[pum (ǯ\Ukk 6o~$&&tw."kk Ba%! 6kAT"?xyɧobSĉs,ZB=m]TZp#:Y>fZ+ʕ3GPкuSsF7z[lmk1wIRDq>0w:V8zԋ&烼z'ߖTPXH5!Bֱ @ Ǎa&۹ +VY(_ff (WvT/3`@ q=A}rrFߦMl) <<mq m[J2s]VK ?5UNDZcg_:݄?q(O !zڴ Kabbyߏ6O $$\:::^޽p[Ǜ3G=WyS322 D*T(Ʀ{0O_8퓰;8ZIdJ;lJMMiWx9MLiWsР^GVP?ٸq7|{8РA͛u֭رrB3r_&śצGw==O |J;J6ɓŦo殅BAJq(~S B85Z5x' Cz)VIok_'@=9Ba_|Ag!oŊqM*WH4-߹I)ܹh`N޾s- NXYUʶLRR2WAժSx{_ѣ>˭ \#22ƍ}^fU,,4{&'p%QJq4Gbmm1EMaI]N-/I5!(j6l*?~6뷧U܆?SCNE޴hћ\Hݩ_=&ں9O"56N>kMD!M/44"ϑ{z]͛G|y:u~l[W4f/_~p||}Vn/W]zBϞ#qrjBHOo%<<~EOoȑ3Z%eX|Gzq6n5Y''0s/\#>>8}z+8;c?* BHMֺҥ'O."==]!3{#G~%rB*_C+oڴGdžt@z5۷36!##C\..4j`Z5k뗇wNԯ_[ѬlؠL{'%5[j {br%wBa~IBo2⍸? voBQ^VMx4QcJ:GdžXZV$&&.Wx8x4'FprjcccEժsF`]Wwť?'۷KTߏݣyF=Z#b8qԗ[0* CNatV.(Ƹ4 R KPODßK@&lxCjB!D!Ӱadjj̭[w4޻uZZZdIu~03SdnnJHHqq9œ910(G>< ~bry>nLv-8~'.U&|gl~@c¼yK-Wxcf͚^?@VDGK"_].^XRB! cEu&MpI5' IDATs{z+/֦QsX^rr Ph@rr ;wqOiذBDC?ck2sx6[c>}:ab՚c"44BNQSNASĤ!!k17yx쉗BQM: =TڒCk!n`߾UѾ4H׮믍hii`k[?BmtL@]WO3p`OzR/^+7ck[+OeW*뼛B[)3:rǎ=TjDTg6"VJ@{`+xxcvR= w_m+J. J0p`O222u+;:ll( 5P@:թV۶_rEww%>)AAh׮?uR<WV|A=?6ʙӳg{LMV '&\B`4k66Vԭ[C [ZTbcyLLJFlla߃O>ehZYUή6%)^n]m~k (SƌMZ2Ύ\|Zl00((pvvP!7ywaaoawc@`UB/##(."/RRRYZ:Ԇ@y;CB}+w:M^a݅ 1x902ˢߴST_!!=vv/_avW M߾}==O|wB `͚G !(bcSx7Mַ?^! Uuk4ڳg1.cB@FFFB0`tBQ?t7Ԅ=_>GaCP(j8i)p466Ҟ;wrdf6Ι3?xHGWW7ca]Ç`˖}6: &6~mv˶cA6dEf|`m?Й3g{KXDd?n Nh O!D0xpu IKKC[[gaS[(%^{Ł̬I.eU?6|cTنll#emCa2Hy cś"cꋎ=1ddiedd+2k$Ļc ׬xK{z!Bz!AE*t7 ^Y~xwTt' [ܥ'B!ۗOjBwDppXrFFʷ_ B!(w޳E ! ~ %AB!iF}2?hĎ%B!(V8E6 vQ($B!=_}m6EHEѸ qAAz!B! Prrr!)!DvHhhD/B!B>|>88KjC"cY:]zd!$B!8s7-==}뷤B(8֨Y*ˣ#D!BAJ[XTggWѢE3ZYU>|?6IZB!(\bBBº?MIIR3Be<ӉVj A9] -B!BN-7oɂ #{;֬Y%mߢrwuHֶvZ:лwe2-۠A=S Ւm_8zKUnD '}F^+g DwqǏ}$fCaC+)9!U!Y{վ PW Ucsno7`d!;@e_ KǀǪ;@p@n~6Qy߷Q,BAHEMWּP;Uc@y~fP2^!B!($B!xu@u^ZW\7gW1KV!AB!\YՇ 4fR4nf?!^!8v% YkQ&rWV$`4€TA}ur !$B!Y_M`UFr)({ ު\zGU}(:"6|-p~ Dɥ*xɔvB!2x@c6P\Qq %UYQꨞU!͇7e2콐f9n(G棚FuC"6 vBOG@!"߅?gy TA*X!X- 3dh?PS|Xu Z/Jn6d =?I9rbƝBw$B!xҀ[Η,ܶj& (WW{d<ħ# !B`6=:!"$QB!B!AB!B!$B!B!B!B!B!B!^!B! !B! !B!Bz!B!B:RB!@7!D4*BHP/B1 rw attachment * Fix live-migration when glance image deleted * Add functional confirm\_migration\_error test * [stable-only] Delete allocations even if \_confirm\_resize raises (part 2) * Delete allocations even if \_confirm\_resize raises * Stop logging traceback when skipping quiesce * Fix retry of instance\_update\_and\_get\_original * Teardown networking when rolling back live migration even if shared disk * Use migration\_status during volume migrating and retyping * libvirt: Always disconnect volumes after libvirtError exceptions * libvirt: Stop ignoring unknown libvirtError exceptions during volume attach * Fix {min|max}\_version in ironic Adapter setup * Create request spec, build request and mappings in one transaction * xenapi/agent: Change openssl error handling * libvirt: Avoid using os-brick encryptors when device\_path isn't provided * Fix nova-grenade-live-migration run book for opendev migration * Fix regression in glance client call * OpenDev Migration Patch * Move legacy-grenade-dsvm-neutron-multinode-live-migration in-tree * Fix legacy-grenade-dsvm-neutron-multinode-live-migration * libvirt: set device address tag only if setting disk unit * libvirt: disconnect volume when encryption fails * Add missing libvirt exception during device detach * Error out migration when confirm\_resize fails * prevent common kwargs from glance client failure * Define irrelevant-files for tempest-full-py3 job * Delete instance\_id\_mappings record in instance\_destroy * Do not persist RequestSpec.ignore\_hosts * Add functional regression test for bug 1669054 * Update instance.availability\_zone on revertResize * Add functional recreate test for bug 1819963 * [Stable Only] hardware: Handle races during pinning * Fix incomplete instance data returned after build failure * Update instance.availability\_zone during live migration * Update resources once in update\_available\_resource * Don't persist zero allocation ratios in ResourceTracker * Document unset/reset wrinkle for \*\_allocation\_ratio options * Replace openstack.org git:// URLs with https:// 17.0.10 ------- * Fix resource tracker updates during instance evacuation * Allow utime call to fail on qcow2 image base file * libvirt: Add workaround to cleanup instance dir when using rbd * Add description of custom resource classes * Fix WeighedHost logging regression * Avoid BadRequest error log on volume attachment * Provide a useful error message when trying to update non-compute services * Don't emit warning when ironic properties are zero * Avoid redundant initialize\_connection on source post live migration * Make host\_manager use scatter-gather and ignore down cells * Make service all-cells min version helper use scatter-gather * Ignore VolumeAttachmentNotFound exception in compute.manager * Lock detach\_volume * Fix a missing policy in test policy data * Handle unicode characters in migration params * tox: Don't write byte code (maybe) * Handle IndexError in \_populate\_neutron\_binding\_profile * PCI: do not force remove allocated devices * Fix port dns\_name reset * Fix incompatible version handling in BuildRequest * Don't call begin\_detaching when detaching volume from shelved vm * Skip checking of target\_dev for vhostuser * Migrate nova v2.0 legacy job to zuulv3 * Fix os-simple-tenant-usage result order * Send context.global\_id on neutron calls * Removing pip-missing-reqs from default tox jobs * Do not dump all instances in the scheduler * Exclude build request marker from server listing * Remove stale pip-missing-reqs tox test * Ensure rbd auth fallback uses matching credentials * Fix destination\_type attribute in the bdm\_v2 documentation * Handle unbound vif plug errors on compute restart * Update port device\_owner when unshelving * Handle binding\_failed vif plug errors on compute restart 17.0.9 ------ * Add secret=true to fixed\_key configuration parameter * Don't persist RequestSpec.requested\_destination * Handle tags in \_bury\_in\_cell0 * Create BDMs/tags in cell with instance when over-quota * Make the nova-next job voting and gating * Add functional regression test for bug 1806064 * Note the aggregate allocation ratio restriction in scheduler docs * Fix InstanceNotFound during \_destroy\_evacuated\_instances * Add functional regression test for bug 1794996 * compute: Ensure pre-migrating instances are destroyed during init\_host * Add regression test for bug #1764883 * Test websocketproxy with TLS in the nova-next job * Move the nova-next job in-tree and update it * Default embedded instance.flavor.is\_public attribute * Make supports\_direct\_io work on 4096b sector size * De-dupe subnet IDs when calling neutron /subnets API * Fix NoneType error in \_notify\_volume\_usage\_detach * Ensure attachment cleanup on failure in driver.pre\_live\_migration * Move live\_migration.pre.start to the start of the method * Fix up compute rpcapi version for pike release * conductor: Recreate volume attachments during a reschedule * Add regression test for bug#1784353 * fixtures: Track volume attachments within CinderFixtureNewAttachFlow * Add regression test for bug 1797580 * Handle volume API failure in \_post\_live\_migration * Handle missing marker during online data migration 17.0.8 ------ * Not set instance to ERROR if set\_admin\_password failed * Ignore VirtDriverNotReady in \_sync\_power\_states periodic task * Explicitly fail if trying to attach SR-IOV port * stable-only: fix typo in IVS related privsep method * Fix stacktraces with redis caching backend * Null out instance.availability\_zone on shelve offload * nova-manage - fix online\_data\_migrations counts * Skip more rebuild tests for cells v1 job * Skip ServerShowV247Test.test\_update\_rebuild\_list\_server in nova-cells-v1 job * Skip ServerShowV254Test.test\_rebuild\_server in cells v1 job * Enforce case-sensitive hostnames in aggregate host add * Revert "Make host\_aggregate\_map dictionary case-insensitive" * Skip ServerActionsTestJSON.test\_rebuild\_server for cells v1 job * nova-status - don't count deleted compute\_nodes * Filter deleted computes from get\_all\_by\_uuids() 17.0.6 ------ * libvirt: Use os.stat and os.path.getsize for RAW disk inspection * Add tempest-slow job to run the tempest slow tests * libvirt: Always escape IPv6 addresses when used in migration URI * libvirt: Reduce calls to qemu-img during update\_available\_resource * Fix soft deleting vm fails after "nova resize" vm * Fix service list for disabled compute using MC driver * Set default of oslo.privsep.daemon logging to INFO level * Refix disk size during live migration with disk over-commit * Update RequestSpec.flavor on resize\_revert * cover migration cases with functional tests * Follow devstack-plugin-ceph job rename * import zuul job settings from project-config * Remove noisy DEBUG log * Make scheduler.utils.setup\_instance\_group query all cells * Fix nova-status "\_check\_resource\_providers" check * Fix DB archiver AttributeError due to wrong table name attribute used * Add functional test for affinity with multiple cells * Fix the request context in ServiceFixture * Move conductor wait\_until\_ready() delay before manager init * Wait for network-vif-plugged before starting live migration * Fix cancel\_all\_events event name parsing * Filter out instances without a host when populating AZ * Revert "libvirt: slow live-migration to ensure network is ready" * VMware: fix TypeError while get console log * block\_device: Rollback volumes to in-use on DeviceDetachFailed * Fix host validity check for live-migration * Fix bad links for admin-guide * Update nova network info when doing rebuild for evacuate operation * Fix message for unexpected external event * Reload oslo\_context after calling monkey\_patch() * [placement] Retry allocation writes server side * Make ResourceTracker.stats node-specific * Add recreate test for RT.stats bug 1784705 * Disable limits if force\_hosts or force\_nodes is set * Make host\_aggregate\_map dictionary case-insensitive * Call generate\_image\_url only for legacy notification * Handle HostMappingNotFound when deleting a compute service * Add unshelve instance error info to fault table * [Stable Only] Remove soft-deleted instances from quota\_usages * Fix server\_group\_members quota check * Add functional regressions tests for server\_group\_members OverQuota * hardware: fix hugepages memory usage per intances * Fix TypeError in prep\_resize allocation cleanup * unquiesce instance after quiesce failure * Consider hostdev devices when building metadata * Refactor \_build\_device\_metadata * Default embedded instance.flavor.disabled attribute * libvirt: add qemu version check when configuring mtu for network * Fix unbound local when saving an unchanged RequestSpec * add mtu to libvirt xml for ethernet and bridge types * Use ironic-tempest-dsvm-ipa-wholedisk-bios-agent\_ipmitool-tinyipa in tree * Fix regression when listing build\_requests with marker and ip filter * Update admin/flavors document * libvirt: Fix the rescue race for vGPU instances * Make nova service-list use scatter-gather routine * Handle CannotDeleteParentResourceProvider to 409 Conflict * Fix unit test modifying global state * Handle network-changed event for a specific port * Make nova list and migration-list ignore down cells * Use instance project/user when creating RequestSpec during resize reschedule * libvirt: Log breadcrumb for known encryption bug * Be graceful about vif plugging in early ironic driver startup * [Stable Only] Add amd-ssbd and amd-no-ssb CPU flags * Add policy rule to block image-backed servers with 0 root disk flavor * ironic: stop lying to the RT when ironic is down * [Stable Only] Initialise failed\_builds in IronicNodeState * mock utils.execute() in qemu-img unit test * Fix the file name of development-environment.rst * Ensure resource class cache when listing usages * Change consecutive build failure limit to a weigher * Fix interpretation of max\_attempts for scheduling alternates * Allow cinderv2 endpoints within the request context catalog 17.0.5 ------ * libvirt: Skip fetching the virtual size of block devices * libvirt: handle DiskNotFound during update\_available\_resource * Metadata-API fails to retrieve avz for instances created before Pike * Add ssbd and virt-ssbd flags to cpu\_model\_extra\_flags whitelist * Avoid unnecessary joins in HostManager.\_get\_instances\_by\_host * Fix shelving a paused instance * Make instance.refresh() avoid recursion better * Fix auth\_url example in hypervisor-hyper-v.rst * placement: Fix HTTP error generation * Update auth\_url in install docs * Don't reschedule on RequestedVRamTooHigh errors * Added ability to configure default architecture for ImagePropertiesFilter * libvirt: Report the virtual size of RAW disks * Add random sleep between retry calls to placement 17.0.4 ------ * libvirt: check image type before removing snapshots in \_cleanup\_resize * Stringify instance UUID * Migrate tempest-dsvm-multinode-live-migration job in-tree * log stale allocations as WARNING instead of DEBUG * Fix detach\_volume calls when rolling back a failed attach * Handle PortNotFoundClient exception when getting ports * Make association\_refresh configurable * Handle @safe\_connect returns None side effect in \_ensure\_resource\_provider * libvirt: Make \`cpu\_model\_extra\_flags\` case-insensitive for real * xenapi: handle InstanceNotFound in detach\_interface() * Fix dropped check for boot\_index 0 in \_validate\_bdm * libvirt: fix hard reboot issue with mdevs * Update docs for [keystone\_authtoken] changes since Queens * Improve performance when list instances with IP filter * Cleanup RP and HM records while deleting a compute service * Update os\_compute\_api:os-flavor-extra-specs:index docs for 2.47 * Log a warning and add nova-status check for old API service versions * Add nova-status check for ironic flavor migration * Delete allocations from API if nova-compute is down * Block deleting compute services which are hosting instances * api-ref: add a note in DELETE /os-services about deleting computes * Add functional test for deleting a compute service * Move update\_task\_state out of try/except 17.0.3 ------ * libvirt: slow live-migration to ensure network is ready * libvirt: Report the allocated size of preallocated file based disks * Document how to disable notifications * ironic: Get correct inventory for deployed node * List instances performace optimization * only increment disk address unit for scsi devices * Skip placement on rebuild in same host * Don't persist RequestSpec.retry * Remove the branch specifier from the nova-multiattach job * Add regression test for persisted RequestSpec.retry from failed resize * libvirt: Allow to specify granular CPU feature flags * libvirt: Block swapping to an encrypted volume when using QEMU to decrypt * Avoid showing password in log * Add \_\_repr\_\_ for NovaException 17.0.2 ------ * Use ksa session for cinder microversion check * vmware: Fixes \_detach\_instance\_volumes method * add check before adding cpus to cpuset\_reserved * Migrate tempest-dsvm-cells job to an in-tree job definition * [placement] Add sending global request ID in get * Move \_make\_instance\_list call outside of DB transaction context * Add functional regression test for bug 1746509 * Change compute mgr placement check to region\_name * Always deallocate networking before reschedule if using Neutron * Preserve multiattach flag when refreshing connection\_info * Handle EndpointNotFound when building image\_ref\_url in notifications * Add --by-service to discover\_hosts * Revert "Refine waiting for vif plug events during \_hard\_reboot" * docs: Disable smartquotes * Make archive\_deleted\_rows handle a missing CONF.api\_database.connection * Update the nova-manage db archive\_deleted\_rows description * Unmap compute nodes when deleting host mappings in delete cell operation * Avoid exploding if guest refuses to detach a volume * Return 400 when compute host is not found * Handle not found error on taking snapshot 17.0.1 ------ * Only attempt a rebuild claim for an evacuation to a new host * hyper-v: Logs tips on PortBindingFailed * Save admin password to sysmeta in libvirt driver * Allow 'network' in RequestContext service\_catalog * Check for multiattach before removing connections * Pass user context to virt driver when detaching volume * Allow force-delete even if task\_state is not None * Ensure the JSON-Schema covers the legacy v2 API * Detach volumes when VM creation fails * Handle spawning error on unshelving * Fix and update compute schedulers config guide * Imported Translations from Zanata * compute: Cleans up allocations after failed resize * libvirt: mask InjectionInfo.admin\_pass * Update noVNC deployment docs to mention non-US keymap fix in 1.0.0 * [placement] Add functional tests for traits API * [placement] Add sending global request ID in put (3) 17.0.0 ------ * libvirt: disconnect volume from host during detach * Ensure attachment\_id always exists for block device mapping * Add functional test for deleting BFV server with old attach flow * Update plugs Contrail methods to work with privsep * Only pull associated \*sharing\* providers * Fix error handling in compute API for multiattach errors * Detach volumes when deleting a BFV server pre-scheduling * Add functional recreate test of deleting a BFV server pre-scheduling * Clean up ports and volumes when deleting ERROR instance * Add functional tests to ensure BDM removal on delete * Store block device mappings in cell0 * Drop extra loop which modifies Cinder volume status * Check quota before creating volume snapshots * Add the ability to get absolute limits from Cinder * Add resource\_class to fields in ironic node cache * Lazy-load instance attributes with read\_deleted=yes * unquiesce instance on volume snapshot failure 17.0.0.0rc2 ----------- * Add admin guide doc on volume multiattach support * Cleanup the manage-volumes admin doc * Don't JSON encode instance\_info.traits for ironic * Use correct arguments in task inits * Bindep does not catch missing libpcre3-dev on Ubuntu * Fix docs for IsolatedHostsFilter * Handle volume-backed instances in IsolatedHostsFilter * Add regression test for BFV+IsolatedHostsFilter failure * doc: fix the link for the evacuate cli * Make bdms querying in multi-cell use scatter-gather and ignore down cell * VGPU: Modify the example of vgpu white\_list set * Refine waiting for vif plug events during \_hard\_reboot * Update UPPER\_CONSTRAINTS\_FILE for stable/queens * Update .gitreview for stable/queens 17.0.0.0rc1 ----------- * Encode libvirt domain XML in UTF-8 * Clean up reservations in migrate\_task call path * Compute RPC client bump to 5.0 * Bump compute RPC API to version 5.0 * Fixed auto-convergence option name in doc * Workaround glanceclient bug when CONF.glance.api\_servers not set * Remove a duplicate colon * TrivialFix: Add a blankline * XenAPI: Provide support matrix and doc for VGPU * Add a prelude release note for the 17.0.0 Queens GA * Address comments from I51adbbdf13711e463b4d25c2ffd4a3123cd65675 * Add late server group policy check to rebuild * Add regression test for bug 1735407 * Fix wrong link for "Manage Flavors" in CPU topologies doc * Make sure that we have usable input for graphical console * fix misspelling of 'projectUser' * Test case: new standard resource class unusable * Clarify CONF.scheduler.max\_attempts * Add release note for Aggregate[Core|Ram|Disk]Filter change * placement doc: Conflict caveat for DELETE APIs * Trivial fix a missleading comment * Provide support matrix and doc for VGPU * doc: update the GPU passthrough HPC feature entry * [placement] Add sending global request ID in put (2) * [placement] Add sending global request ID in put (1) * [placement] Add sending global request ID in post * Update cells v2 layout doc caveats for Queens * Zuul: Remove project name * Doc: Nix os-traits link from POST resource\_classes * docs: Add booting from an encrypted volume * libvirt: fix native luks encryption failure to find volume\_id * Don't wait for vif plug events during \_hard\_reboot * Don't rely on parse.urlencode in url comparisons * Reset the \_RC\_CACHE between tests * Fix invalid UUIDs in test\_compute.py * Fix the wrong description * doc: placement upgrade notes for queens * Add functional tests for traits-based scheduling * Cleanup launch instance and manage IPs docs * Migrate "launch instance" user guide docs * Pass limit to /allocation\_requests * doc: mark the max microversions for queens * Updated from global requirements * trivial: Fix few policy doc * Query all cells for service version in \_validate\_bdm * add "--until-complete" option for nova-manage db archive\_deleted\_rows * Mention required traits in the flavors user docs * Fix nits in support traits changes * Log options at debug when starting API services under wsgi * set\_{aggregates|traits}\_for\_provider: tolerate set * ProviderTree.get\_provider\_uuids: Top-down ordering * SchedulerReportClient.\_delete\_provider * ComputeDriver.update\_provider\_tree() * report client: get\_provider\_tree\_and\_ensure\_root * trivial: Fix typos in release notes * Use util.validate\_query\_params in list\_traits * Add functional tests for virt driver get\_traits() method * Implement get\_traits() for the ironic virt driver * Add get\_traits() method to ComputeDriver * [placement] Separate API schemas (resource\_provider) * Fix invalid UUIDs in remaining tests * ProviderTree.new\_child: parent is either uuid or name * Add server filters whitelist in server api-ref * reno for notification-transformation-queens * Add the nova-multiattach job * Collapse duplicate error handling in rebuild\_instance * Rollback instance.image\_ref on failed rebuild * Updated from global requirements * SchedulerReportClient.set\_aggregates\_for\_provider * Fix a comment in a notification functional test * Bumping functional test job timeouts * Remove deprecated policy items from fake\_policy * Reduce policy deprecation warnings in test runs * Fix the incorrect RST convention * Fix SUSE Install Guide: Placement port * Log the events we timed out waiting for while plugging vifs * Reduce complexity of \_from\_db\_object 17.0.0.0b3 ---------- * Ironic: Get IP address for volume connector * Add release note for QEMU native LUKS decryption * Fix missing 'if\_notifications\_enabled' decorator * Fix missing marker functions * Fix bug case by none token context * Transform instance.resize\_prep notification * Move remaining uses of parted to privsep * Avoid suspending guest with attached vGPUs * placement: enable required traits from the flavor extra specs * placement: using the dict format for the allocation in claim\_resources * Update VMWare vSphere link address * Handle TZ change in iso8601 >=0.1.12 * Updated from global requirements * Fix the order of target host checks * Add the Nova libvirt StorPool attachment driver * Expand on when you might want to set --max-count for map\_instances * libvirt: pass the mdevs when rebooting the guest * Set server status to ERROR if rebuild failed * libvirt: QEMU native LUKS decryption for encrypted volumes * Replace curly quotes with straight quotes * Fix 'all\_tenants' & 'all\_projects' type in api-ref * Use neutron port\_list when filtering instance by ip * Start moving users of parted to privsep * Add PowerVM to feature-classification * Fix update\_cell to ignore existing identical cells * Change compute RPC to use alternates for resize * Report Client: PUT empty (not None) JSON data * Send traits to ironic on server boot * PowerVM Driver: SEA * Recreate mediated devices on reboot * [api] Allow multi-attach in compute api * doc: Document TLS security setup for noVNC proxy * placement: support traits in allocation candidates API * api-ref: Fix parameter type in server-migrations.inc * Transform instance-evacuate notification * [placement] Add sending global request ID in delete (3) * Add index(instance\_uuid, updated\_at) on instance\_actions table * Fix 500 in test\_resize\_server\_negative\_invalid\_state * Generalize DB conf group copying * Track tree-associated providers in report client * ProviderTree.populate\_from\_iterable * Raise on API errors getting aggregates/traits * Updated from global requirements * Remove redundant swap\_volume tests * Track associated sharing RPs in report client * SchedulerReportClient.set\_traits\_for\_provider * ProviderTree.data => ProviderData * Cleanup redundant want\_version assignment * Fix format in flavors.rst * libvirt: Introduce disk encryption config classes * libvirt: Collocate encryptor and volume driver calls * libvirt: create vGPU for instance * Deduplicate service status notification samples * libvirt: don't attempt to live snapshot paused instances * Pass multiattach flag to reserve\_block\_device\_name * Handle swapping to a multiattach volume * [libvirt] Allow multiple volume attachments * trivial: Remove crud from 'conf.py' * Fix openstackdocstheme options for api-ref * Updated from global requirements * [placement] Add functional tests for resource class API * correct referenced url in comments * Transform instance.resize\_confirm notification * placement: \_get\_trees\_matching\_all\_resources() * Account for deprecation of personality files * PowerVM driver: ovs vif * add \_has\_provider\_trees() utility function * func tests for nested providers in alloc candidate * Deduplicate aggregate notification samples * Fix accumulated nits * Make sure that functional test triggered on sample changes * Add taskflow to requirements * Updated from global requirements * Enable py36 unit tests in tox * Stop globally caching host states in scheduler HostManager * make unit tests compatible with os-vif 1.8.0 * Remove unnecessary execute permissions in files * [placement] Fix resource provider delete * Transform rescue/unrescue instance notifications * conf: Do not inherit image signature props with snapshots * Track provider traits in report client * Fix missing rps in allocation candidates * Add aggregates check in allocation candidates * Fix accumulated nits in refactor series * Test helper: validate provider summaries * Revert "Deduplicate service status notification samples" * console: Provide an RFB security proxy implementation * console: introduce the VeNCrypt RFB authentication scheme * console: introduce framework for RFB authentication * console: Send bytes to sockets * Update links in documents * Add a warning in 'nova-manage cell\_v2 delete\_cell' * Modify the test case of get\_disk\_mapping\_rescue\_with\_config * Rename block\_device\_info\_get\_root * Increase notification wait timeout in functional tests * [placement] Add sending global request ID in delete (2) * Fix comment in MigrationSortContext * Add index(updated\_at) on migrations table * Add pagination and Changes-since filter support for os-migrations * Deduplicate service status notification samples * Add exception to no-upcall note of cells doc * Fix typo in release note * Add cross cell sort support for get\_migrations * libvirt: add tests to check multipath in iscsi/fc volume connectors * libvirt: test to make sure volume\_use\_multipath is properly used * libvirt: use 'host-passthrough' as default on AArch64 * Add reference to policy sample * Add an additional description for 'token\_ttl' * Updated from global requirements * Qualify the Placement 1.15 release note * Add migration db and object pagination support * Add regression test for resize failing during retries * Fix race condition in retrying migrations * libvirt: Provide VGPU inventory for a single GPU type * Fix OpenStack capitalization * Update FAQs about listing hosts in cellv2 * Add ConsoleAuthToken object * Optionalize instance\_uuid in console\_auth\_token\_get\_valid() * Add index on token\_hash and instance\_uuid for console\_auth\_tokens * Add access\_url\_base to console\_auth\_tokens table * Add debug output for selected page size * Use method validate\_integer from oslo.utils * conf: hyperv: fix a comment typo * Remove a duplicate line in a unit test * Use volume shared\_targets to lock during attach/detach * Handle no allocations during migrate * Add regression test for resizing failing when using CachingScheduler * zuul: Move legacy jobs to project * Imported Translations from Zanata * log test: use fixtures.StandardLogging in setUp * Fix up formatting for deprecate-api-extensions-policies release note * Fix documentation nits in set\_and\_clear\_allocations * Document lack of side-effects in AllocationList.create\_all() * VMware: add support for different firmwares * hyper-v: Deprecates support for Windows / Hyper-V Server 2012 * Use UEFI as the default boot for AArch64 * Don't log a warning for InstanceNotFound in detach\_interface * manager: more detailed info of unsupported compute driver * Add test for assignment of uuid to a deleted BDM * Fix fake libvirt XML generation for disks * Handle glance exception during rotating instance backup * Move aggregates from report client to ProviderTree * Only call numa\_fit\_instance\_to\_host if necessary * Expose BDM uuid to drivers * DriverBlockDevice: make subclasses inherit \_proxy\_as\_attr * Add an online migration for BDM.uuid * Address nits in I46d483f9de6776db1b025f925890624e5e682ada * Add support for getting volume details with a specified microversion * XenAPI: Unit tests must mock os\_xenapi calls * Revert "Modify \_poll\_shelved\_instances periodic task call \_shelve\_offload\_instance()" * Remove 'nova-manage host' and 'nova-manage agent' * Remove 'nova-manage logs' command * conf: Remove deprecated 'remap\_vbd\_dev' option * api-ref: Fix incorrect parameter name * [placement] Add sending global request ID in delete * trivial: conf: libvirt: remove a redundant space * Fix the formatting for 2.58 in the compute REST API history doc * trivial: Modify signature of \_filter\_non\_requested\_pfs * Add PCI NUMA policies * Document testing guide for new API contributions * trivial: use cn instead of rp * Updated from global requirements * Test allocation candidates: multiple aggregates * Fix functional tests for USE\_NEUTRON * Make conductor pass and use host\_lists * Don't try to delete build request during a reschedule * libvirt: don't log snapshot success unless it actually happens * Add retry\_on\_deadlock decorator to action\_event\_start * conf: libvirt: Cleanup CPU modelling related options * Remove dead parameter from '\_create\_domain\_and\_network' * Handle images with no data * tests: Use correct response type in tests * Remove the inherits parameter for the Resource object * Remove the LoadedExtensionInfo object * Initialize osprofiler in WSGI application * doc: update supported drivers for cpu topology * Do not set allocation.id in AllocationList.create\_all() * [placement] Fix getting placement request ID * [placement] Enable limiting GET /allocation\_candidates * Pass RequestSpec to ConductorTaskAPI.build\_instances * Fix an error in \_get\_host\_states when deleting a compute node * Provide example for placement last-modified header of now * objects: Add PCI NUMA policy fields * Workaround missing RequestSpec.project\_id when moving an instance * Use instance.project\_id when creating request specs for old instances * Fix duplicate allocation candidates * trivial: conf: libvirt: fix a typo * Remove extensions module * Fix 4 doc typos * Fix false positive server group functional tests * Updated from global requirements * XenAPI: create vGPU for instance * update\_cell allows more than once cell to have the same db/transport url * [placement] Add x-openstack-request-id in API ref * [placement] Separate API schemas (allocation\_candidate) * [placement] Separate API schemas (allocation) * Implement set\_and\_clear\_allocations in report client * Make BlockDeviceMapping object support uuid * Add uuid column to BlockDeviceMapping * Remove unused argument from LibvirtDriver.\_disconnect\_volume * Removed unused argument from LibvirtDriver.\_connect\_volume * Fix unit test failures when direct IO not supported * [placement] Separate API schemas (resource\_class) * Updated from global requirements * Deduplicate functional test code * Aggregate ops on ProviderTree * Implement query param schema for migration index * Make request\_spec.spec MediumText * Fix the formatting for 2.56 in the compute REST API history doc * Delete the TypeAffinityFilter * live-mig: keep disk device address same * Traits ops on ProviderTree * SchedulerReportClient.\_get\_providers\_in\_aggregates * [placement] Separate API schemas (inventory) * [placement] Separate API schemas (aggregate) * [placement] Separate API schemas (trait) * [placement] Separate API schemas (usage) * Fix the bug report link of API Guide * Extract instance allocation removal code * Test alloc\_cands with one RP shared between two RPs * Test alloc\_cands with non overlapping sharing RPs * handle traits with sharing providers * Fix possible TypeError in VIF.fixed\_ips * Add pagination and changes-since for instance-actions * Updated common create server sample request because of microversion 2.57 * Fix some typos in nova doc * Retry \_trait\_sync on deadlock * Remove unnecessary connector stash in attachment\_update * Pass mountpoint to volume attachment\_create with connector * Pass bdms to versioned notifications during finish\_revert\_resize * Update and complete volume attachments during resize * Pass mountpoint to volume attachment\_update * Don't persist could-be-stale InstanceGroup fields in RequestSpec * Update nova-status and docs for nova-compute requiring placement 1.14 * Wait for live\_migration\_rollback.end notification * Some nit fix in multi\_cell\_list * Raise MarkerNotFound if BuildRequestList.get\_by\_filters doesn't find marker * Move flushing block devices to privsep * Convert ext filesystem resizes to privsep * [placement] Add info about last-modified to contrib docs * [placement] Add cache headers to placement api requests * Stabilize test\_live\_migration\_abort func test * doc: add note about fixing admin-only APIs without a microversion * Deprecate file injection * VMware: implement get\_inventory() driver method * VMware: expose max vCPUs and max memory per ESX host * VMware: fix memory stats * api-ref: Fix a description for 'guest\_format' * Move the claim\_resources method to scheduler utils * Change RPC for select\_destinations() * Re-use existing ComputeNode on ironic rebalance * placement: skip authentication on root URI * Add instance action db and obj pagination support * Update Instance action's updated\_at when action event updated * Make live migration hold resources with a migration allocation * Add instance action record for snapshot instances * Add quiesce and unquiesce in support matrix * libvirt: throw NotImplementedError if qga is not responsive when setting password * [placement] Fix API reference for microversion 1.14 * Unmap compute nodes when deleting host mapping * Follow up on removing old-style quotas code * Add API and nova-manage tests that use the NoopQuotaDriver * Add instance action record for backup instances * Don't launch guestfs in a thread pool if guestfs.debug is enabled * Remove confusing comment in compute\_node\_get API method * [placement] add name to resource provider create error * Improve error message on invalid BDM fields * doc: link in some Sydney summit content * trivial: more suitable log in set\_admin\_password * Add support for listing hosts in cellv2 * [placement] Add 'Location' parameters in API ref * [placement] Object changes to support last-modified headers 17.0.0.0b2 ---------- * Implement new attach Cinder flow * Add new style volume attachment support to block\_device.py * SchedulerReportClient.\_get\_providers\_in\_tree * Modify select\_destinations() to return objects and alts * Move the to\_dict() method to the Selection object * Return Selection objects from the scheduler driver * Refactor the code to check for sufficient hosts * Fix 'force' parameter in os-quota-sets PUT schema * Reformat \_get\_all\_with\_shared * Updated from global requirements * Deprecate configurable Hide Server Address Feature * XenAPI: update the picture in Xen hypervisor document * Deprecate API extensions policies * Avoid stashed connector lookup for new style detach * placement: update client to set parent provider * Scheduler set\_inventory\_for\_provider does nested * placement: adds REST API for nested providers * placement: allow filter providers in tree * XenAPI: Don't use nicira-iface-id for XenServer VIF * archive\_deleted\_instances is not atomic for insert/delete * Remove the unused request\_id filter from api-paste.ini * Add a new check to volume attach * Add instance action record for shelve\_offload instances * Modify \_poll\_shelved\_instances periodic task call \_shelve\_offload\_instance() * Add Selection objects * Fix doubling allocations on rebuild * Add PowerVM to compute\_driver options * Updated from global requirements * Fix wrong argument order in functional test * [placement] Fix an error message in API validation * Transform instance.resize\_revert notification * Mention API behavior change when over quota limit * [placement] Fix foreign key constraint error * [placement] Add aggregate link note in API ref * Fail fast if changing image on a volume-backed server rebuild * Get original image\_id from volume for volume-backed instance rebuild * Add regression test for rebuilding a volume-backed server * ProviderTree.get\_provider\_uuids() * Fix cellsv1 messaging test * Make \_Provider really private * Split instance\_list into instance and multi\_cell * Genericify the instance\_list stuff * Remove 'nova-manage account' and 'nova-manage project' * Remove 'nova-manage shell' command * Updated from global requirements * Fixes 'Not enough available memory' log message * Only log not correcting allocation once per period * Add description for resource class creation * Trivial: Nix duplicate PlacementFixture() in test * [placement] re-use existing conf with auth token middleware * Fix disk size during live migration with disk over-commit * Use ksa adapter for keystone conf & requests * Downgrade log for keystone verify client fail * [placement]Enhance doc for placement allocation list * Update description of Rebuild in server\_concepts.rst * Use oslo\_db Session in resource\_provider.py * VMware: Handle concurrent registrations of the VC extension * Proper error handling by \_ensure\_resource\_provider * Refactor placement version check * Nix log translations from scheduler.client.report * Remove old-style quotas code * Remove direct usage of glance.generate\_image\_url * remove glance usage inside compute * Assert that we restrict cold migrations to the same cell * [placement] Fix format in placement API ref * Enable cold migration with target host(2/2) * qemu-img do not use cache=none if no O\_DIRECT support * remove reserve\_quota\_delta * Raise specific exception when swapping migration allocations fails * Fix ValueError when loading old pci device record * Updated from global requirements * Remove the objects for describing the extension for v2.1 API * Remove the objects which related to the old v2 API implementation * Updated from global requirements * Save updated libvirt domain XML after swapping volume * placement: add nested resource providers * Deprecate the IronicHostManager * Fix some incorrect option references for scheduler filters * Remove deprecated TrustedFilter * Fix NoneType error when [service\_user] is misconfigured * check query param for server groups function * Deduplicate instance.create notification samples * Nits from Ic3ab7d60e4ac12b767fe70bef97b327545a86e74 * [placement] Fix GET PUT /allocations nits * [placement] POST /allocations to set allocations for >1 consumers * Add instance action record for lock/unlock instances * XenAPI: provide vGPU inventory in compute node * XenAPI: get vGPU stats from hypervisor * Add 'all\_tenants' for GET sec group api ref * Update the documentation links * Add instance action record for attach/detach/swap volumes * Add regression test for rebuild with new image doubling allocations * Refined fix for validating image on rebuild * Address nits from service create/destroy notification review * Versioned notifications for service create and delete * Remove unnecessary self.flags and ConfPatcher * Implement query param schema for delete assisted vol * Add ProviderSummary.resource\_class\_names @property * required traits for no sharing providers * Fix invalid minRam error message * finish refactor AllocCandidates.\_get\_by\_filters() * PowerVM support matrix update * Fix the format file name * Simplify BDM boot index checking * Remove unused global variables * Updated from global requirements * Implement query param schema for flavor index * Implement query param schema for fping index * Implement query param schema for sec group APIs * Finish stestr migration * Fix incorrect known vcpuset when CPUPinningUnknown raised * Enable cold migration with target host(1/2) * Update server query section in the API concept doc * [placement] Add 'CUSTOM\_' prefix description in API ref * [placement] Fix parameter order in placement API ref * Remove 'nova-manage quota refresh' command * Api-guide: Address TODOs in user\_concepts section * Update server status api guide * Api guide:add Server Consoles * Update Metadata api section of api guide * Implement query param schema for simple\_tenant\_usage * Transform instance-live\_migration\_pre notification * Use FakeLiveMigrateDriver in notification test * Change live\_migrate tests to use fakedriver * Test resource allocation during soft delete * factor out compute service start in ServerMovingTest * Moving more utils to ProviderUsageBaseTestCase * Don't overwrite binding-profile * Fix TypeError of \_get\_project\_id when project\_id is None * Regenerate and pass configdrive when rebuild Ironic nodes * Update bindep.txt for doc builds * [placement] Symmetric GET and PUT /allocations/{consumer\_uuid} * Service token is not experimental * Use ksa adapter for neutron client * Get auth from context for glance endpoint * vgpu: add enabled white list * cleanup mapping/reqspec after archive instance * Fix the usage of instance.snapshot notification sample * Update document related to host aggregate * api-ref: Add a description of 'key\_name' in rebuild * api-ref: Fix an example in "Delete Assisted Volume Snapshot" * Use the RequestSpec when getting scheduler\_hints in compute * Add migration\_get\_by\_uuid in db api * Add instance action record for attach/detach interface * placement: Document request headers in api-ref * Deduplicate keypair notification samples * Include project\_id and user\_id in AllocationList.get\_all\_by\_consumer\_id * Clean up exception caught in \_validate\_and\_build\_base\_options * Implement query param schema for volume, snapshot API * Implement query param schema for quota set APIs * api-ref: fix the type on the block\_device\_mapping\_v2 parameter * placement: Document \`in:\` prefix for ?member\_of= * libvirt: Re-initialise volumes, encryptors, and vifs on hard reboot * VMware: serial console log (completed) * PowerVM Driver: config drive * Fix TypeError in nova-manage db archive\_deleted\_rows * Remove setting of version/release from releasenotes * Fix the formatting for the 2.54 microversion REST API version history * hyper-v: Do not allow instances with pinned CPUs to spawn * Updated from global requirements * Add microversion to allow setting flavor description * Fix docstring for GET /os-migrations and related DB API * Add a note about versioned notification samples being per-release * Document the real behavior of notify\_on\_state\_change * Use NoDBTestCase for powervm driver tests * create allocation request for single provider * build alloc request resources for shared resources * build ProviderSummary objects in sep function * begin refactor AllocCandidates.\_get\_by\_filters() * Add security release note for OSSA-2017-005 * Add error message on metadata API * api-ref: make a note about os:scheduler\_hints being a top-level key * doc: fix link to creating unit tests in contributor guide * Validate new image via scheduler during rebuild * Add FlavorPayload.description for versioned notifications * placement: AllocCands.get\_by\_{filters => requests} * Deduplicate server\_group samples * Correct log message when removing a security group * Updated from global requirements * Enable reset keypair while rebuilding instance * Test allocation\_candidates with only sharing RPs * Test alloc candidates with same RC in cn & shared * rt: Make resource tracker always invoking get\_inventory() * Revert "Don't overwrite binding-profile" * Cleanup build\_request\_spec * Refactor test\_allocation\_candidates * block\_device\_mapping\_v2.bus\_type is missing from api-ref * Remove incorrect comment about instance.locked * Don't overwrite binding-profile * Do not use “-y” for package install * [placement] set accept to application/json if accept not set * [placement] Fix a wrong redirection in placement doc * Handle InstanceNotFound when setting password via metadata * Extract allocation candidates functional tests * Deduplicate instance.reboot notification samples * Deduplicate instance.live\_migration notification samples * Deduplicate instance.interface\_attach samples * Deduplicate instance.power-off notification samples * Transform instance-live\_migration\_abort notification * Deduplicated instance.(un)pause notification samples * Factor out duplicated notification sample data (2) * Move last\_bytes into the path module * Fix test\_get\_volume\_config method * Fix missing versioned notification sample * Clean up allocations if instance deleted during build * Avoid deleting allocations for instances being built * libvirt: remove old code in post\_live\_migration\_at\_destination * Using --option ARGUMENT * Add Flavor.description attribute * Modify incorrect debug meaasge in \_inject\_data * Avoid redundant security group queries in GET /servers/{id}/os-security-groups * Update contributor microversion doc for compute * Updated from global requirements * Granularize resources\_from\_{flavor|request\_spec} * Parse granular resources/traits from extra\_specs * placement: Parse granular resources & traits * RequestGroup class for placement & consumers * Factor out duplicated notification sample data * libvirt: Don't VIR\_MIGRATE\_NON\_SHARED\_INC without migrate\_disks * libvirt: do unicode conversion for error messages * Fix return type in FilterScheduler.\_legacy\_find\_hosts * Implement power\_off/power\_on for the FakeDriver * Remove instance.keypairs migration code * conf: Validate '[api] vendordata\_providers' options * conf: Remove 'vendordata\_driver' opt * Trivial grammar fix * Fix warning on {'cell\_id': 1} is an invalid UUID * Move contrail vif plugging to privsep * Move plumgrid vif plugging to privsep * Move midonet vif plugging to privsep * Move infiniband vif plugging to privsep * Remove compatibility method from FlavorPayload * placement: Contributor doc microversion checklist * libvirt: do not remove inst\_base when volume-backed during resize * Refactor claim\_resources() to use retries decorator * Make put\_allocations() retry on concurrent update * [placement] avoid case issues microversions in gabbits * Fix format in live-migration-usage.rst * Don't update RT in \_allocate\_network * Transform keypair.import notification * api-ref: document caveats with scheduler hints * add whereto for testing redirect rules * rp: break functions out of \_set\_traits() * Use Migration object in ComputeManagerMigrationTestCase * check query param for used\_limits function * VMware: add support for graceful shutdown of instances * Pass requested\_destination in filter\_properties * Functional regression test for evacuate with a target * Fix indent in configuring-migrations.rst * XenAPI: resolve VBD unplug failure with VM\_MISSING\_PV\_DRIVERS error * libvirt: properly decode error message from qemu guest agent * Use ksa adapter for placement conf & requests * Only filter/weigh hosts once if scheduling a single instance * Update placement api-ref: allocations link in 1.11 * rt: Implement XenAPI get\_inventory() method * Fix instance lookup in hide\_server\_addresses extension * libvirt: remove extraneous retry assignment in cleanup method * libvirt: Don't disregard cache mode for instance boot disks * Fix live migration grenade ceph setup * Pass the correct image to build\_request\_spec in conductor.rebuild\_instance * rp: remove \_HasAResourceProvider mixin * rp: move RP.\_set\_traits() to module scope * rp: Remove RP.get\_traits() method * [placement] Limit number of attempts to delete allocations * [placement] Allow \_set\_allocations to delete allocations * conf: Move additional nova-net opts to 'network' * Do not attempt volume swap when guest is stopped/suspended * Convert IVS VIF plugging / unplugging to privsep * Move blkid calls to privsep * trivial: Rename 'policy\_check' -> 'policy' * test: Store the OutputStreamCapture fixture * Accept all standard resource classes in flavor extra specs * Fix AttributeError in BlockDeviceMapping.obj\_load\_attr * Move project\_id and user\_id to Allocation object * VGPU: Define vgpu resource class * Make migration uuid hold allocations for migrating instances * Fix wrapping of neutron forbidden error * Import user-data page from openstack-manuals * Import the config drive docs from openstack-manuals * Move kpartx calls to privsep * Move nbd commands to privsep * Move loopback setup and removal to privsep * Move the idmapshift binary into privsep * Include /resource\_providers/uuid/allocations link * xenapi: cached images should be cleaned up by time * Add test so we remember why CUSTOM\_ prefix added * Move xend existence probes to privsep * Move shred to privsep * Add alternate hosts * Implement query param schema for host index * conf: Remove deprecated 'null\_kernel' opt * Adds 'sata' as a valid disk bus for qemu and kvm hypervisors * propagate OSError to MigrationPreCheckError * Trivial: fix spelling of allocation\_request * Transform instance.trigger\_crash\_dump notification * Add debug information to metadata requests 17.0.0.0b1 ---------- * placement: integrate ProviderTree to report client * [Trivial] Fix up a docstring * Remove duplicate error info * [placement] Clean up TODOs in allocations.yaml gabbit * Add attachment\_get to refresh\_connection\_info * Add 'delete\_host' command in 'nova-manage cell\_v2' * Keep updating allocations for Ironic * docs: Explain the flow of the "serial console" feature * Send Allocations to spawn * Move lvm handling to privsep * Cleanup mount / umount and associated rmdir calls * Update live migration to use v3 cinder api * placement: set/check if inventory change in tree * Move restart\_compute\_service to a common place * Fix nova-manage commands that do not exist * fix cleaning up evacuated instances * doc: Fix command output in scheduler document * Refactor resource tracker to account for migration allocations * Revert allocations by migration uuid * Split get\_allocations\_for\_instance() into useful bits * Regenerate context during targeting * Pick ironic nodes without VCPU set * Don't use mock.patch.stopall * Move test\_uuid\_sentinels to NoDBTestCase * [placement] Confirm that empty resources query causes 400 * [placement] add coverage for update of standard resource class * api-ref: add warning about force evacuate for ironic * Add snapshot id to the snapshot notifications * Reproduce bug 1721652 in the functional test env * Add 'done' to migration\_get\_in\_progress\_by\_host\_and\_node filter * Update "SHUTOFF" description in API guide * api-ref: fix server status values in GET /servers docs * Fix connection info refresh for reboot * rp: rework AllocList.get\_all\_by\_consumer\_id() * rp: fix up AllocList.get\_by\_resource\_provider\_uuid * rp: remove ability to delete 1 allocation record * rp: remove dead code in Allocation.\_create\_in\_db() * rp: streamline InventoryList.get\_all\_by\_rp\_uuid() * rp: remove CRUD operations on Inventory class * Make expected notifications output easier to read in tests * Elevate existing RequestContext to get bandwidth usage * Fix target\_cell usage for scatter\_gather\_cells * Nix bug msg from ConfGroupForServiceTypeNotFound * nova-manage map\_instances is not using the cells info from the API database * Updated from global requirements * Update cinder in RequestContext service catalog * Target context for build notification in conductor * Don't fix protocol-less glance api\_servers anymore * Move user\_data max length check to schema * Remove unnecessary BDM destroy during instance delete * rp: Move RP.\_get|set\_aggregates() to module scope * rp: de-ORM ResourceProvider.get\_by\_uuid() * use already loaded BDM in instance.create * use already loaded BDM in instance. (2) * use already loaded BDM in instance. * Remove dead code of api.fault notification sending * Fix sending legacy instance.update notification * doc: Rework man pages * Fix typo in test\_prep\_resize\_errors\_migration * Fix minor input items from previous patches * nova.utils.get\_ksa\_adapter() * De-duplicate \_numa\_get\_flavor\_XXX\_map\_list * hardware: Flatten functions * Update libvirt volume drivers to use os-brick constants * Always put 'uuid' into sort\_keys for stable instance lists * Fix instance\_get\_by\_sort\_filters() for multiple sort keys * Deprecate allowed\_direct\_url\_schemes and nova.image.download.modules * Add error notification for instance.interface\_attach * Note TrustedFilter deprecation in docs * Make setenv consistent for unit, func, and api-samples * Blacklist test\_extend\_attached\_volume from cells v1 job * Pre-create migration object * Remove metadata/system\_metadata filter handling from get\_all * fix unstable shelve offload functional tests * TrivialFix: Fix the incorrect test case * stabilize test\_resize\_server\_error\_and\_reschedule\_was\_failed * api-ref: note that project\_id filter only works with all\_tenants * Avoid redundant BDM lookup in check\_can\_live\_migrate\_source * Only query BDMs once in API during rebuild * Make allocation cleanup honor new by-migration rules * Modernize set\_vm\_state\_and\_notify * Remove system\_metadata loading in Instance.\_load\_flavor * Stop joining on system\_metadata when listing instances * Remove old compat code from servers ViewBuilder.\_get\_metadata * Remove unused get\_all\_instance\_\*metadata methods * doc: Add documentation for cpu\_realtime, cpu\_realtime\_mask * Remove 400 as expected error * Remove doc todo related to bug/1506667 * api-ref: add note about rebuild not replacing volume-backed root disk * api-ref: remove redundant preserve\_ephemeral mention from rebuild docs * [placement] gabbi tests for shared custom resource class * Update RT aggregate map less frequently * libvirt: add method to configure migration speed * Set migration object attributes for source/dest during live migrate * Refactor duplicate code for looking up the compute node name * Fix CellDatabases fixture swallowing exceptions * Use improved instance\_list module in compute API * Fix a pagination logic bug in test\_bug\_1689692 * Add hints to what the Migration attribute values are * Move cell0 marker test to Cellsv1DeprecatedTestMixIn * Ensure instance can migrate when launched concurrently * console: introduce basic framework for security proxying * [placement] Update the placement deployment instructions * Move allocation manipulation out of drop\_move\_claim() * Do not monkey patch eventlet in unit tests * Do not setup conductor in BaseAPITestCase * Make etree.tostring() emit unicode everywhere * Fix inconsistency of 'NOTE:' description * Don't shell out to mkdir, use ensure\_tree() * Read from console ptys using privsep * Move ploop commands to privsep * Set group\_members when converting to legacy request spec * Support qemu >= 2.10 * Fix policy check performance in 2.47+ * doc: make host aggregates examples more discoverable * Remove dest node allocations during live migration rollback * Fix race in delete allocation in ServerMovingTests * xenapi: pass migrate\_data to recover\_method if live migrate fails * \_rollback\_live\_migration in live-migration seqdiag * Log consumer uuid when retrying claims in the scheduler * Add recreate test for live migrate rollback not cleaning up dest allocs * Add slowest command to tox.ini * Make TestRPC inherit from the base nova TestCase * Ensure errors\_out\_migration errors out migration * use context mgr in instance.delete * Implement query param schema for GET hypervisor(2.33) * Remove SCREEN\_LOGDIR from devstack install setting * Fix --max-count handling for nova-manage cell\_v2 map\_instances * Set the Pike release version for scheduler RPC * Add functional for live migrate delete * Fix IoOpsFilter test case class name * Add get\_node\_uuid() helper to ResourceTracker * Live Migration sequence diagram * Deprecate idle\_timeout in api\_database * cleanup test-requirements * Add 400 as error code for resource class delete * Implement query param schema for agent index * fix nova accepting invalid availability zone name with ':' * check query param for service's index function * Remove useless periodic task that expires quota reservations * Add attachment\_get call to volume/cinder\_api * Add functional migrate force\_complete test * Copy some tests to a cellsv1 mixin * Add get\_instance\_objects\_sorted() * Make 'fault' a valid joined query field for Instance * Change livesnapshot to true by default * docs: Rename cellsv2\_layout -> cellsv2-layout * Add datapath type information to OVS vif objects * libvirt: Make 'get\_domain' private * Fix 500 if list servers called with empty regex pattern * Vzstorage: synchronize volume connect * Add \_wait\_for\_action\_fail\_completion to InstanceHelperMixin * Remove allocations when unshelve fails on host * Updated from global requirements * Add instance.interface\_detach notification * Add default configuration files to data\_files * Remove method "\_get\_host\_ref\_from\_name" * Add a regression test for bug 1718455 * Add recreate test for unshelve offloaded instance spawn fail * Add PowerVM hypervisor configuration doc * Add tests to validate instance\_list handles faults correctly * Add fault-filling into instance\_get\_all\_by\_filters\_sort() * Support pagination in instance\_list * Add db.instance\_get\_by\_sort\_filters() * Make instance\_list honor global query limit * Add base implementation for efficient cross-cell instance listing * Fix hyperlinks in document * api-ref: fix default sort key when listing servers * Add instance.interface\_attach notification * libvirt: bandwidth param should be set in guest migrate * Updated from global requirements * Add connection pool size to vSphere settings * Add live.migration.force.complete to the legacy notification whitelist * Restore '[vnc] vnc\_\*' option support * neutron: handle binding:profile=None during migration * doc: Add documentation for emulator\_thread\_policy * doc: Split flavors docs into admin and user guides * VMware: Factor out relocate\_vm() * remove re-auth logic for ironic client wrapper * hyperv: report disk\_available\_least field * Allow shuffling hosts with the same best weight * Enable custom certificates for keystone communication * Fix the ocata config-reference URLs * Fix a typo * Account for compute.metrics.update in legacy notification whitelist * use unicode in tests to avoid SQLA warning * Move libvirts dmcrypt support to privsep * Squash dacnet\_admin privsep context * Squash dac\_admin privsep context * Move the dac\_admin privsep code to a new location * Use symbolic names for capabilities, expand sys\_admin context * stabilize test\_resize\_server\_error\_and\_reschedule\_was\_failed * Updated from global requirements * Drop support for the Cinder v2 API * Remove 400 as expected error * Set error state after failed evacuation * Add @targets\_cell for live\_migrate\_instance method in conductor * [placement] Removing versioning from resource\_provider objects * doc: rename the Indices and Tables section * doc: Further cleanup of doc contributor guide * [placement] Unregister the ResourceProvider object * [placement] Unregister the ResourceProviderList object * [placement] Unregister the Inventory object * [placement] Unregister the InventoryList object * [placement] Unregister the Allocation object * [placement] Unregister the AllocationList object * [placement] Unregister the Usage object * [placement] Unregister the UsageList object * [placement] Unregister the ResourceClass object * [placement] Unregister the ResourceClassList object * [placement] Unregister the Trait object * [placement] Unregister the TraitList object * Add '\_has\_qos\_queue\_extension' function * Add '\_has\_dns\_extension' function * Assume neutron auto\_allocate extension's enabled * Add single quotes for posargs on jobs * Add nova-manage db command for ironic flavor migrations * enhance api-ref for os-server-external-events * Have one list of reboot task\_states * Call terminate\_connection when shelve\_offloading * Revert "Enable test\_iscsi\_volume in live migration job" * Target context when setting instance to ERROR when over quota * Cleanup running of osprofiler tests * Fix test runner config issues with os-testr 1.0.0 * Fix missed chown call * Updated from global requirements * Tweak connection\_info translation for the new Cinder attach/detach API * Add attachment\_complete call to volume/cinder.py * Remove dest node allocation if evacuate MoveClaim fails * Add a test to make sure failed evacuate cleans up dest allocation * Add recreate test for evacuate claim failure * Create allocations against forced dest host during evacuate * fake\_notifier: Refactor wait\_for\_versioned\_notification * Transform instance.resize.error notifications * Update docs to include standardization of VM diagnostics * Refactor ServerMovingTests for non-move tests * Remove deprecated keymgr code * Move execs of tee to privsep * Add ComputeNodeList.get\_by\_hypervisor\_type() * Split out the core of the ironic flavor migration * Fix binary name * Revert "Revert "Fix AZ related API docs"" * [placement] Correct a comment in \_set\_allocations * Remove Xen networking plugin * Revert "Fix AZ related API docs" * [placement] correct error on bad resource class in allocation * api-ref: note the microversions for GET /resource\_providers query params * doc: fix flavor notes * Fix AZ related API docs * Transform aggregate.remove\_host notification * Transform servergroup.delete notification * Transform aggregate.add\_host notification * Cleanup unused get\_iscsi\_initiator * Remove two testing stubs which aren't really needed * Typo error about help resource\_classes.inc * Transform servergroup.create notification * Set regex flag on ostestr command for osprofiler tests * Transform keypair.delete notification * Move execs of touch to privsep * Move libvirt usages of chown to privsep * Enable test\_iscsi\_volume in live migration job * Refactor out claim\_resources\_on\_destination into a utility * Fix broken URLs * Ensure instance mapping is updated in case of quota recheck fails * Track which cell each instance is created in and use it consistently * Make ConductorTaskTestCase run with 2 cells * xenapi: Exception Error logs shown in Citrix XenServer CI * Update contributor guide for Queens * Allow setting up multiple cells in the base TestCase * Fix test\_rpc\_consumer\_isolation for oslo.messaging 5.31.0 * Fix broken link * First attempt at adding a privsep user to nova itself * Provide hints when nova-manage db sync fails to sync cell0 * Add release note for force live migration allocations * Handle exception on adding secgroup * doc: Add configuration index page * doc: Add user index page * spelling mistake * Fix ValueError if invalid max\_rows passed to db purge * Remove usage of kwarg retry\_on\_request in API * Add release note for requiring shred 8.22 or above * Make xen unit tests work with os-xenapi>=0.3.0 * Skip more racy rebuild failing tests with cells v1 * Add some inline code docs tracing the cold migrate flow * Mark LXC as missing for swap volume support * Remove compatibility code for flavors * rbd: Remove unnecessary 'encode' calls * Updated from global requirements * Pass config object to oslo\_reports * Replace http with https for doc links in nova * Put base policy rules at first * Amend uuid4 hacking rule * conf: Rename two VNC options * Correct examples in "Manage Compute services" documentation * Handle deleted instances when refreshing the info\_cache * Remove qpid description in doc * Replace dd with shred for zeroing lvm volumes * Update docs for \_destroy\_evacuated\_instances * doc: link to versioned notification samples from main index * doc: link to placement api-ref and history docs from main index * doc: fix online\_data\_migrations option in upgrades doc * Add recreate test for forced host evacuate not setting dest allocations * add online\_data\_migrations to nova docs * Glance download: only fsync files * Functional test for regression bug #1713783 * doc: fix show-hide sample in notification devref * Default the service version in the notification tests * api-ref: add warnings about forcing the host for live migrate/evacuate * HyperV: Perform proper cleanup after failed instance spawns * [placement] Update user doc with api-ref link * [placement] api-ref GET /traits name:startswith * Add video type virtio for AArch64 * Document tagged attach in the feature support matrix * [placement] Require at least one resource class in allocation * Enhance doc for nova services * Update doc to indicate nova-network deprecated * Updated from global requirements * [placement] Add test for empty resources in allocation * Refactor LiveMigrationTask.\_find\_destination * Cleanup allocations on invalid dest node during live migration * Hyper-V: Perform proper cleanup after cold migration * Test InstanceNotFound handling in 'nova usage' * Typo fix in admin doc ssh-configuration.html * iso8601.is8601.Utc No Longer Exists * Fix nova assisted volume snapshots * Fix \_delete\_inventory log message in report client * Add functional recreate test for live migration pre-check fails * doc: Remove deprecated call to sphinx.util.compat * Remove unneeded attributes from context * Updates to scheduling workflow doc * Add uuid online migration for migrations * Add uuid to migration object and migrate-on-load * Add uuid to migration table * Add placeholder migrations for Pike backports * Clarify the field usage guidelines * Optimize MiniDNS for fewer syscalls * [Trivial] docstrings, typos, minor refactoring * Update PCI passthrough doc for moved options * tests: De-duplicate some graphics tests * Reduce code complexity - linux\_net.py * Refactor init\_instance:resume\_guests\_state * conf: Allow users to unset 'keymap' options * Change default for [notifications]/default\_publisher\_id to $host * Deprecate CONF.monkey\_patch * Add device tag support info in support matrix * Prevent blank line at start of migration placeholders * Remove useless error handling in prep\_resize * De-duplicate two delete\_allocation\_for\_\* methods * Move hash ring initialization to init\_host() for ironic * Fix bug on vmware driver attach volume failed * fix a typo in format\_cpu\_spec doc * Cleanup allocations in failed prep\_resize * Add functional test for rescheduling during a migration * Remove allocation when booting instance rescheduled or aborted * Fix sample configuration generation for compute-related options * Add formatting to scheduling activity diagram * Monkey patch the blockdiag extension * docs: Document the scheduler workflow * Updated from global requirements * Delete instance allocations when the instance is deleted * How about not logging errors every time we shelve offload? * Add missing tests for \_remove\_deleted\_instances\_allocations * nova-manage: Deprecate 'cell' commands * Add missing unit tests for FilterScheduler.\_get\_all\_host\_states * api-ref: fix key\_name note formatting * Assume neutron port\_binding extensions enabled * libvirt: Fix getting a wrong guest object * pci: Validate behavior of empty devname * Tests: Add cleanup of 'instances' directory * Remove the section about extensions from the API concept doc * Restrict live migration to same cell * Remove source node allocation after live migration completes * Allocate resources on forced dest host during live migration * Add language for compute node configuration * trivial: Remove some single use function from utils * Add functional live migrate test * Add functional force live migrate test * doc: Address review comments for main index * trivial: Remove dead function, variable * tests: Remove useless test * Remove plug\_ovs\_hybrid, unplug\_ovs\_hybrid * Correct statement in api-ref * Fix a typo in code comment * Refactor libvirt.utils.execute() away * Fix quobyte test\_validate\_volume\_no\_mtab\_entry * Updated from global requirements * update comment for dropping support * Move common definition into common layer * Remove host filter for \_cleanup\_running\_deleted\_instances periodic task * Fix contributor documentation * replace chance with filter scheduler in func tests * Clean up resources at shelve offload * test shelve and shelve offload with placement * Amend the code review guide for microversion API * delete allocation of evacuated instance * Make scheduler.utils.merge\_resources ignore zero values * Fix a wrong link * Fix reporting inventory for provisioned nodes in the Ironic driver * Avoid race in test\_evacuate * Reset client session when placement endpoint not found * Update api doc with latest updates in api framework * doc: Extend nfv feature matrix with pinning/NUMA * Always use application/json accept header in report client * Fix messages in functional tests * Handle addition of new nodes/instances in ironic flavor migration * Skip test\_rebuild\_server\_in\_error\_state for cells v1 * test server evacuation with placement * doc: add superconductor up-call caveat for cross\_az\_attach=False * doc: add another up-call caveat for cells v2 for xenapi aggregates * Update reno for stable/pike * Deprecate bare metal filters 16.0.0.0rc1 ----------- * Remove "dhcp\_options\_for\_instance" * Clarifying node\_uuid usage in ironic driver * doc: address review comments in stable-api guide updates * Resource tracker compatibility with Ocata and Pike * placement: avoid returning duplicated alloc\_reqs when no sharing rp * Imported Translations from Zanata * [placement] Make placement\_api\_docs.py failing * [placement] Add api-ref for allocation\_candidates * Clarify that vlan feature means nova-network support * [placement] Add api-ref for RP usages * Remove ram/disk sched filters from default list * Remove provider allocs in confirm/revert resize * placement: refactor healing of allocations in RT * remove log message with potential stale info * doc: Address review comments for contributor index * Require Placement 1.10 in nova-status upgrade check * Mark Chance and Caching schedulers as deprecated * [placement] Add api-ref for usages * Clean up \*most\* ec2 / euca2ools references * Add documentation for documentation contributions * Structure cli page * doc: Import configuration reference * Add release note for shared storage known issue * Improve stable-api doc with current API state * update policy UT fixtures * Bulk import all config reference figures * rework index intro to describe nova * Mark max microversion for Pike in history doc * Add a prelude section for Pike * doc: provide more details on scheduling with placement * Add functional test for local delete allocations * Document service layout for consoles with cells * Add For Operators section to front page * Create For End Users index section * doc: code review considerations for online data migrations * Add track\_instance\_changes note in disable\_group\_policy\_check\_upcall * Cleanup release note about ignoring allow\_same\_net\_traffic * no instance info cache update if instance deleted * Add format\_dom for PCI device addresses * doc: Add additional content to admin guide * Create reference subpage * Raise NoValidHost if no allocation candidates * Fix all >= 2 hit 404s * Handle ironicclient failures in Ironic driver * Fix migrate single instance when it was created concurrently * trivial: Remove files from 'tools' * trivial: Remove "vif" script * tools/xenserver: Remove 'cleanup\_sm\_locks' * Test resize with too big flavor * [placement] Add api-ref for RP allocations * placement: filtering the resource provider id when delete trait association * Updated from global requirements * Add resource utilities to scheduler utils * Add Contributor Guide section page * Fix getting instance bdms in multiple cells * Update install guide to clearly define between package installs * doc: Import administration guide * doc: Import installation guide * Complete dostring of live\_migration related methods * Add a caveat section about cellsv2 upcalls * doc: Start using oslo\_policy.sphinxext * policies: Fix Sphinx issues * doc: Start using oslo\_config.sphinxext * doc: Rework README to reflect new doc URLs * doc: Remove dead files * nova-manage: Deprecate '--version' parameters * imagebackend: cleanup constructor args to Rbd * Sum allocations in the scheduler when resizing to the same host * doc: Make use of definition lists, literals * hardware offload support for openvswitch * reflow rpc doc to 80 columns * fix list rendering in policy-enforcement * Fix scope of errors\_out\_migration in finish\_resize * Fix scope of errors\_out\_migration in resize\_instance * Split Compute.errors\_out\_migration into a separate contextmanager * fix list rendering in cells * fix list rendering in aggregates * Fix list rendering in bdm doc * fix list rendering in rpc doc * Fix list rendering in code-review.rst * Fix whitespace in rest\_api\_version\_history * Fix lists in process doc * [placement] Avoid error log on 405 response * Keep the code consistent * Filter out stale migrations in resource audit * Test resize to same host with placement api * fix rpc broken rst comment * sort redirectmatch lines * add top 404 redirect * [placement] Require at least one allocation when PUT * Add redirect for api-microversion-history doc * Fix 409 handling in report client when deleting inventory * Detach device from live domain even if not found on persistent * Cleanup unnecessary logic in os-volume\_attachments controller code * Adopt new pypowervm power\_off APIs * placement: remove existing allocs when set allocs * Additional assertions to resize tests * Accept any scheduler driver entrypoint * add redirects for existing broken docs urls * Add some more cellsv2 doc goodness * Test resize with placement api * Deprecate cells v1 * Add release note for PUT /os-services/\* for non-compute services * Updated from global requirements * Don't warn on expected network-vif-unplugged events * do not pass proxy env variables by tox * Show quota detail when inject file quota exceeds * rootwrap.d cleanup mislabeled files * always show urls in list\_cells * api-ref: requested security groups are not applied to pre-existing ports * api-ref: fix security\_groups response parameter in os-security-groups * Clean variable names and docs around neutron allocate\_for\_instance * explain payload inheritance in notification devref * Update SSL cert used in testing * Remove RamFilter and DiskFilter in default filter * Enhance support matrix document * remove extension param and usage * Add description on maximum placement API version * Updated from global requirements * Add cinder keystone client opts to config reference * Updated from global requirements * fix test\_rebuild\_server\_exc instability * [placement] quash unicode warning with shared provider * add a redirect for the old cells landing page * Remove unnecessary code 16.0.0.0b3 ---------- * claim resources in placement API during schedule() * placement: account for move operations in claim * add description about key\_name * doc: add FAQ entry for cells v1 config options * Add oslo\_concurrency=INFO to default log levels for nova-manage * stabilize test\_create\_delete\_server functional test * Ensure we unshelve in the cell the instance is mapped * Fix example in \_serialize\_allocations\_for\_consumer * deprecate \`\`wsgi\_log\_format\`\` config variable * Move the note about '/os-volume\_boot' to the correct place * Remove the useless fake ExtensionManager from API unittests * Netronome SmartNIC Enablement * Updated from global requirements * Enhance support matrix document * add cli to support matrix * add a retry on DBDeadlock to \_set\_allocations() * docstring and unused code removal * libvirt: Post-migration, set cache value for Cinder volume(s) * use os\_traits.MISC\_SHARES\_VIA\_AGGREGATE * style-only: s/context/ctx/ * Instance remains in migrating state forever * Add helper method for waiting migrations in functional tests * Improve assertJsonEqual error reporting * Translate the return value of attachment\_create and \_update * Move the last\_bytes util method to libvirt * Do not import nova.conf into nova/exception.py * Set IronicNodeState.uuid in \_update\_from\_compute\_node * Add VIFHostDevice support to libvirt driver * Remove redundant free\_vcpus logging in \_report\_hypervisor\_resource\_view * Remove the useless extension block\_device\_mapping\_v1 object * Remove the useless FakeExt * Remove the code related to extension loading from APIRouterV21 * Add 'updated\_at' field to InstancePayload in notifications * Use wsgi-intercept in OSAPIFixture * API ref: associate floating IP requires Active status * Suppress some test warnings * Use enum value instead of string service name * rename binary to source in versioned notifications * Trim the fat from InstanceInfo * [placement] Use wsgi\_intercept in PlacementFixture * Replaces uuid.uuid4 with uuidutils.generate\_uuid() * Ironic: Support boot from Cinder volume * [placement] Flush RC\_CACHE after each gabbit sequence * Stop using mox stubs in cast\_as\_call.py * Add online migration to move quotas to API database * Migrate Ironic Flavors * Add tags to instance.create Notification * request\_log addition for running under uwsgi * Stop using mox stubs in test\_console\_auth\_tokens.py * Increase cpu time for image conversion * Remove an unnecessary argument in \_prep\_resize * Updated from global requirements * Using plain routes for the microversions test * Updated from global requirements * Updated from global requirements * placement: add retry tight loop claim\_resources() * Dump versioned notifications when test\_create\_delete\_server * retry on authentication failure in api\_client * Change default policy to view quota details * Implement interface attach/detach in ironic virt driver * Update policy description for 'instance\_actions' * Update ironic feature matrix * Updated from global requirements * doc: Switch to openstackdocstheme * Don't cast cinderclient microversions to float * Remove the unittest for plugin framework * Use plain routes list for versions instead of stevedore * Removed unused 'wrap' property * Make Quotas object favor the API database * Remove check\_detach * Remove improper LOG.exception() calls in placement * VMware: Handle missing volume vmdk during detach * Use \_error\_out\_instance\_on\_exception in finish\_resize * placement: proper JOIN order for shared resources * placement: alloc candidates only shared resources * Allow wrapping of closures * Updated from global requirements * provide interface-scoped nameserver information * Only setup iptables for metadata if using nova-net * Fix and optimize external\_events for multiple cells * Add policy granularity to the Flavors API * Deprecate useless quota\_usage\_refresh from nova-manage * add dict of allocation requests to select\_dests() * Handle None returned from get\_allocation\_candidates due to connect failure * Updated from global requirements * Update URL home-page in documents according to document migration * api-ref: Fix an expand button in os-quota-sets * Correct the description of 'disable-log-reason' api-ref * Consider instance flavor resource overrides in allocations * Do not mention that tags are case sensitive in docs * api-ref: fix max\_version for deprecated os-quota-class-sets parameters * Handle uuids in os-hypervisors API * Use uuid for id in os-services API * Remove 'reserved' count from used limits * Make security\_group\_rules use check\_deltas() for quota * Make key\_pairs use check\_deltas() for quota * Count instances to check quota * Use plain routes list for extension\_info instead of stevedore * Use plain routes list for os-snapshots instead of stevedore * Use plain routes list for os-volume-attachments instead of stevedore * doc: Populate the 'user' section * doc: Populate the 'reference' section * doc: Populate the 'contributor' section * doc: Populate the 'configuration' section * Add log info in scheduler to mark start of scheduling * [placement] Add api-ref for allocations * [placement] Add api-ref for RP traits * [placement] Add api-ref for traits * Remove translation of log messages * Fix indentation in policy doc * conf: remove \*\_topic config opts * Stop using mox stubs in test\_remote\_consoles.py * api-ref: Verify parameters in os-migrations.inc * Use URIOpt * Convert HostState.limits['numa\_topology'] to primitive * Log compute node uuid when the record is created * Remove key\_manager.api\_class hack * Update policy descriptions for base * Consistent policies * Support tag instances when boot(4/4) * Fix instance evacuation with PCI devices * [placement] fix 500 error when allocating to bad class * [placement] Update allocation-candidates.yaml for gabbi 1.35 * fix test\_volume\_swap\_server instability * XenAPI: Fix ValueError in test\_slave\_asks\_master\_to\_add\_slave\_to\_pool * api-ref: mention disk size limitations in resize flavor * [placement] cover deleting a custom resource class in use * [placement] cover deleting standard trait * Updated from global requirements * fix unshelve notification test instability * scheduler: isolate \_get\_sorted\_hosts() * Set wsgi.keep\_alive=False globally for tests * Dump tracked version notifications when swap volume tests fail * Default reservations=None in Cells v1 and conductor APIs * Avoid false positives of Jinja2 in Bandit scan * Updated from global requirements * Remove 'create\_rule\_default' * Use oslo.polcy DocumentedRuleDefault * trivial: Remove unnecessary function * doc: Populate the 'cli' section * Fix the releasenote and api-ref for quota-class API * Fix typo * Stop counting hw\_video:ram\_max\_mb against quota * Add ability to signal and perform online volume size change * api-ref: mark instance action events parameter as optional * Add BDM to InstancePayload * placement: add claim\_resources() to report client * doc: Enable pep8 on doc generation code * doc: Remove dead plugin * Use plain routes list for os-volumes instead of stevedore * Use plain routes list for os-baremetal-nodes endpoint instead of stevedore * Use plain routes list for os-security-group-default-rules instead of stevedore * Use plain routes list for os-security-group-rules instead of stevedore * Use plain routes list for server-security-groups instead of stevedore * Use plain routes list for os-security-groups instead of stevedore * Use plain routes list for image-metadata instead of stevedore * Use plain routes list for images instead of stevedore * Remove the test for the route '/resources.:(format)' * doc: Use consistent author, section for man pages * Use plain routes list for os-networks instead of stevedore * doc: Remove cruft from conf.py * Fix wrong log parm * Query deleted instance records during \_destroy\_evacuated\_instances * Skip boot from encrypted volume on Xen+libvirt * improve notification short-circuit * Use PCIAddressField in oslo.versionedobjects * Fix quota class set APIs * api-ref: Add X-Openstack-Request-Id description * Fix a missing classifier * api-ref: Add missing parameters in limits.inc * api-ref: Fix parameters in server-security-groups * Stop using deprecated 'message' attribute in Exception * Adjust error msg for ImageNUMATopologyAsymmetric * placement: scheduler uses allocation candidates * Trivial: Remove unnecessary format specifier * Handle Cinder 3.27 style attachments in swap\_volume * Support tag instances when boot(3/4) * Remove reverts\_task\_state decorator from swap\_volume * Pre-load instance.device\_metadata in InstanceMetadata * Updated from global requirements * [placement] Improve allocation\_candidates coverage * xenapi: avoid unnecessary BDM query when building device metadata * Add release note for xenapi virt device tagging support * Make notification publisher\_id consistent * Modify some comments for virt driver * Fix parameters and description for os-volume\_attachments * Remove nova.api.extensions.server.extensions usage * Fix error message when support matrix entry is missing a driver * Fix comment for API binary name in WSGIService * Fix arguments in calling \_delete\_nic\_metadata * Fix incorrect docstrings in neutron network API * Add 'networks' quota in quota sample files * Reset the traits sync flag in the placement fixtures * Add api-ref for os-quota-class-set APIs * trivial: Use valid UUIDs in test\_admin\_password * placement: filter usage records by resource provider id * Fix 'project-id' 'user-id' as required in server group * Reduce (notification) test duplication * Use plain routes list for os-cells endpoint instead of stevedore * Hyper-V: fix live migration with CSVs * placement: support GET /allocation\_candidates * Handle keypair not found from metadata server using cells * Don't delete neutron port when attach failed * Removes getfattr from Quobyte Nova driver * libvirt: update the logic to configure volume with scsi controller * libvirt: update logic to configure device for scsi controller * Updated from global requirements * conf: fix netconf, my\_ip and host are unclear * Remove wsdl\_location configuration option * hyperv: Fixes log message in livemigrationops * hyperv: stop serial console workers while deleting vm files * hyperv: Fixes Generation 2 VMs volume boot order * Ensure the JSON-Schema covers the legacy v2 API * API support for tagged device attachment * Delete disk metadata when detaching volume * Add scatter gather utilities for cells * Sanitize instance in InstanceMetadata to avoid un-pickleable context * remove the very old unmaintained wsgi scripts * Extract custom resource classes from flavors * Fix the log information argument mistake * Remove mox from nova.tests.unit.virt.xenapi.test\_vm\_utils.py * Handle version for PUT and POST in PlacementFixture * Add a reset for traits DB sync * Strengthen the warning on the old broken WSGI script * Add key\_name field to InstancePayload * Add keypairs field to InstanceCreatePayload * api-ref: Fix missing parameters in API Versions * placement: refactor driver select\_destinations() * Updated from global requirements * VStorage: changed default log path * Add python 3.5 in classifier * Delete nic metadata when detaching interface * Remove mox from nova.tests.unit.api.openstack.compute.test\_limits * Add get\_count\_by\_vm\_state() to InstanceList object * move resources\_from\_request\_spec() to utils * return 400 Bad Request when empty string resources * placement: adds ProviderTree for nested resources * Add missing microversion documentation * Remove mox in test\_availability\_zone.py * Stop using mox stubs in test\_keypairs.py * Plumbing for tagged nic attachment * Remove code that produces warning in modern Python * Plumbing for tagged volume attachment * Fix misuse of assertIsNone * Simplify a condition * Support paging over compute nodes with a uuid marker * Update api-ref to indicate swap param * \_schedule\_instances() supporting a RequestSpec object * Removes potentially bad exit value from accepted list in Quobyte volume driver * Switch Nova Quobyte volume driver to mount via systemd-run * Clean up volumes on boot failure * Explain why API services are filtered out of GET /os-services * Fix redundant BDM lookups during rebuild * Delete all inventory has its own method DELETE * Remove translation of log messages * hypervisor\_hostname must match get\_available\_nodes * Fix using targeted cell context when finding services in cells * [doc] Updated sqlalchemy URL in migrate readme * placement: separate normalize\_resources\_qs\_param * Updated from global requirements * Use more specific asserts in tests * Transform instance.soft\_delete notifications * Fix the note at the end of allocate\_for\_instance * Count floating ips to check quota * Add FloatingIPList.get\_count\_by\_project() * Count fixed ips to check quota * Add FixedIPList.get\_count\_by\_project() * Count security groups to check quota * Add SecurityGroupList.get\_counts() * Count networks to check quota * Provide a hint when \_verify\_response fails * Provide error message in MismatchError for api-samples tests * placement: produce set of allocation candidates * Reduce code duplication * Use plain routes list for os-remote-consoles instead of stevedore * Remove multiple create from stevedore * Use plain routes list for os-tenant-networks instead of stevedore * Use plain routes list for os-cloudpipe endpoint instead of stevedore * Use plain routes list for os-quota-classes endpoint instead of stevedore * Consolidate index and detail methods in HypervisorsController * Handle uuid in HostAPI.compute\_node\_get * api-ref: fix unshelve asynchronous postconditions typo * add missing notification samples to dev ref * Fix regression preventing reporting negative resources for overcommit * Add separate instance.create payload type * placement: Add GET /usages to placement API * placement project\_id, user\_id in PUT /allocations * api-ref: fix hypervisor\_hostname description for Ironic * Updated from global requirements * Provide original fault message when BFV fails * Add PowerVM to nova support matrix * remove null\_safe\_int from module scope * Fix a wrong comment * Stop caching compute nodes in the request * Centralize compute\_node\_search\_by\_hypervisor in os-hypervisors * api-ref: cleanup PUT /os-hypervisors/statistics docs * Make compute\_node\_statistics() work across cells * Only auto-disable new nova-compute services * Cleanup the plethora of libvirt live migration options * [placement] Update placement devref to modern features * Make all timestamps formats equal * Transform keypair.create notification * remove mox from unit/virt/vmwareapi/test\_driver\_api.py * XenAPI: device tagging * Updated from global requirements * api-ref: fix misleading description in PUT /os-services/disable * Remove service control from feature support matrix * Indicate Hyper-v supports fibre channel in support matrix * Use CONF.host for powervm nodename * Pull out code that builds VIF in \_build\_network\_info\_model * Use plain routes list for os-server-groups endpoint instead of stevedore * Use plain routes list for user\_data instead of stevedore * remove get\_nw\_info\_for\_instance from compute.utils * remove ugly local import * Add missing query filter params for GET /os-services API * XenAPI: Create linux bridge in dest host during live migration * Remove translation of log messages * Count server group members to check quota * Add bool\_from\_string for force-down action * Remove old service version check for mitaka * Clarify conf/compute.py help text for ListOpts * Use plain routes list for block\_device\_mapping instead of stevedore * Use plain routes list for os-consoles, os-console-auth-tokens endpoint instead of stevedore * [placement] Increase test coverage * Remove unused variable * pci: add uuid field to PciDevice object * libvirt: dump debug info when interface detach times out * Amend api-ref for multiple networks request * Remove translation of log messages * Calculate stopped instance's disk sizes for disk\_available\_least * Transform instance.live\_migration\_rollback notification * Add InstanceGroup.\_remove\_members\_in\_db 16.0.0.0b2 ---------- * Fix lookup of instance mapping in metadata set-password * libvirt: Extract method \_guest\_add\_spice\_channel * libvirt: Extract method \_guest\_add\_memory\_balloon * libvirt: Extract method \_guest\_add\_watchdog\_action * libvirt: Extract method \_guest\_add\_pci\_devices * libvirt: Extract method \_guest\_add\_video\_device * libvirt: fix alternative\_device\_name for detaching interfaces * [placement] Add api-ref for aggregates * Add docstring for test\_limit\_check\_project\_and\_user\_zero\_values * Skip microversion discovery check for update/delete volume attachments * Use 3.27 microversion when creating new style volume attachments * Use microversions for new style volume attachments * libvirt: handle missing rbd\_secret\_uuid from old connection info * Log a warning if there is only one cell when listing instances * [placement] Use util.extract\_json in allocations handler * [placement] Disambiguate resource provider conflict message * raise exception if create Virtuozzo container with swap disk * Convert additional disassociate tests to mock * Remove useless API tests * Remove \*\*kwargs passing in payload \_\_init\_\_ * Prefer non-PCI host nodes for non-PCI instances * Add PCIWeigher * XenAPI: Remove bittorrent.py which is already deprecated * Count server groups to check quota * Default to 0 when merging values in limit check * api-ref: fix type for hypervisor\_marker * Fix html\_last\_updated\_fmt for Python3 * nfs fix for xenial images * Remove unused CONF import from placement/auth.py * xen: pass Xen console in cmdline * Add earliest-version tags for stable branch renos * Fix the race condition with novnc * Add service\_token for nova-glance interaction * Adopts keystoneauth with glance client * placement: use separate tables for projects/users * Move rebuild notification tests into separate method * contrail: add vrouter VIF plugin type support * Fix cell0 naming when QS params on the connection * libvirt: Check if domain is persistent before detaching devices * Fix device metadata service version check for multiple cells * Remove cells topic configuration option * Add get\_minimum\_version\_all\_cells() helper for service * libvirt: rearange how scsi controller is defined * libvirt: set full description of the controller used by disk * libvirt: update LibvirtConfigGuestDeviceAddress to provide XML * Use plain routes list for os-services endpoint instead of stevedore * use plain routes list for os-virtual-interfaces * use plain routes list for hypervisor endpoint instead of stevedore * Use plain routes list for hosts endpoint instead of stevedore * Use plain routes list for os-fping endpoint * Use plain routes list for instance actions endpoint * Use plain routes list for server ips endpoint * XenAPI: use os-xenapi 0.2.0 in nova * Add InstanceGroupList.get\_counts() * Reset the \_TRAITS\_SYNCED global in Traits tests * Revert "Remove Babel from requirements.txt" * Avoid unnecessary lazy-loads in mutated\_migration\_context * libvirt: log vm and task state when vif plugging times out * Send out notifications when instance tags changed * Catch neutronclient.NotFound on floating deletion * Move notifications/objects/test\_base.py * Fixed some nits for microversion 2.48 * code comments incorrectness * Remove Babel from requirements.txt * Sync os-traits to Traits database table * Support tag instances when boot(2/4) * ComputeDriver.get\_info not limited to inst name * Replace messaging.get\_transport with get\_rpc\_transport * Be more tolerant of keystone catalog configuration * Send request\_id on glance calls * Updated from global requirements * [placement] Add api-ref for resource classes * Standardization of VM diagnostics info API * Remove unused exceptions * Refactor a test method including 7 test cases * Fix missing marker functions * Completed implementation of instance diagnostics for Xen * Updated from global requirements * Use VIR\_DOMAIN\_BLOCK\_REBASE\_COPY\_DEV when rebasing * show flavor info in server details * placement: Specific error for inventory in use * Updated from global requirements * Add database migration and model for consumers * add new test fixture flavor with extra\_specs * Updated from global requirements * Connecting Nova to DRBD storage nodes directly * Update server create networks API reference description for tags * libvirt: fix call args to destroy() during live migration rollback * Pass a list of instance UUIDs to scheduler * Fix call to driver\_detach in remove\_volume\_connection * Use plain routes list for server diagnostics endpoint * Use plain routes list for os-server-external-events endpoint * Use plain routes list for server-migrations endpoint instead of stevedore * Use plain routes list for server-tags instead of stevedore * Use plain routes list for os-interface endpoint instead of stevedore * Remove usage of parameter enforce\_type * placement: test for agg association not sharing * placement: test non-shared out of inventory * placement: tests for non-shared with shared * placement: shared resources when finding providers * Fix live migration devstack hook for multicell environment * Target cell on local delete * Updated from global requirements * Fix default\_availability\_zone docs * Send request\_id on neutron calls * Update policy description for os-volumes * Fix doc job with correct ref link * Remove oslo.config deprecated parameter enforce\_type * Completely remove mox from unit/network/test\_linux\_net.py * Add configuration options for certificate validation * Do not rely on dogpile internals for mocks * XenAPI: nova-compute cannot restart after manually delete VM * Add policy description for os-networks * Changing deleting stale allocations warning to debug * Replace diagnostics objects with Nova diagnostics objects * Added nova objects for intance diagnostics * [placement] adjust resource provider links by microversion * Add \`img\_hide\_hypervisor\_id\` image property * Catch InstanceNotFound when deleting allocations * Remove mox from nova/tests/unit/virt/xenapi/test\_xenapi.py[1] * [placement] Add api-ref for DELETE resource provider * [placement] Add api-ref for PUT resource provider * [placement] Add api-ref for GET resource provider * [placement] Add api-ref for POST resource provider * [placement] Add api-ref for DELETE RP inventory * [placement] Add api-ref for PUT RP inventory * [placement] Add api-ref for GET RP inventory * [placement] Add api-ref for DELETE RP inventories * [placement] Add api-ref for PUT RP inventories * Add check\_deltas() and limit\_check\_project\_and\_user() to Quotas * Enhancement comments on CountableResource * Deprecate TypeAffinityFilter * [placement] Add api-ref for GET RP inventories * Optimize creating security\_group * Limit the min length of string for integer JSON-Schema * Avoid lazy-loading instance.id when cross\_az\_attach=False * Use plain routes list for os-migrations endpoint instead of stevedore * Updated from global requirements * Migrate to oslo request\_id middleware - mv 2.46 * Ensure the value of filter parameter is unicode * XenAPI: Deprecate nicira-iface-id for XenServer VIF * Don't run ssh validation in cells v1 job * Fix MarkerNotFound when paging and marker was found in cell0 * Add recreate functional test for regression bug 1689692 * cinder: add attachment\_update method * cinder: add attachment\_create method * Use targeted context when burying instances in cell0 * Send request\_id on cinder calls * Remove unused migrate\_data kwarg from virt driver destroy() method * Fix the display of updated\_at time when using memcache driver * Check instance existing before check in mapping * Remove mox from unit/cells/test\_cells\_messaging.py * make sure to rebuild claim on recreate * Nix redundant dict in set\_inventory\_for\_provider * PowerVM Driver: SSP emphemeral disk support * Avoid lazy-load error when getting instance AZ * Handle conflict from neutron when addFloatingIP fails * re-Allow adding computes with no ComputeNodes to aggregates * Libvirt volume driver for Veritas HyperScale * Make the method to put allocations public * Don't delete allocation if instance being scheduled * Exclude deleted service records when calling hypervisor statistics * Modify incorrect comment on return\_reservation\_id * Remove incorrect comments in multiple\_create * Have nova.context use super from\_context * Handle new hosts for updating instance info in scheduler * [Trivial] Hyper-V: accept Glance vhdx images * Add strict option to discover\_hosts * make route and controller in alpha sequence * [placement] Fix placement-api-ref check tool * Use plain routes list for limits endpoint instead of stevedore * Updated from global requirements * Handle uuid in HostAPI.\_find\_service * doc: add cells v2 FAQ on mapping instances * doc: add cells v2 FAQ on refreshing global cells cache * doc: start a FAQs section for cells v2 * De-complicate some of the instance delete path * doc: add links to summit videos on cells v2 * Make target\_cell() yield a new context * Move to proper target\_cell calling convention * Updated from global requirements * Repair links in Nova documentation * api-ref: Fix parameter order in os-services.inc * fix typo * Deprecate unused policy from policy doc * trivial: Remove dead code * convert unicode to string before we connect to rados * Use plain routes list for os-quota-sets endpoint instead of stevedore * Use plain routes list for os-certificates endpoint instead of stevedore * Remove mox from cells/test\_cells\_rpc\_driver.py * api-ref: Example verification for servers-actions.inc * Updated from global requirements * nova-manage: Deprecate 'log' commands * nova-manage: Deprecate 'host' commands * nova-manage: Deprecate 'project', 'account' commands * libvirt: remove glusterfs volume driver * libvirt: remove scality volume driver * Deprecate scheduler trusted filter * XenAPI: remove hardcode dom0 plugin version in unit test * Change log level from ERROR to DEBUG for NotImplemented * Skip policy rules on attach\_network for none network allocation * Skip ceph in grenade live migration job due to restart failures * Correct \_ensure\_console\_log\_for\_instance implementation * Cache database and message queue connection objects * Correct the error message for query parameter validation * correctly log port id in neutron api * Fix uuid replacement in aggregate notification test * Remove DeviceIsBusy exception * Catch exception.OverQuota when create image for volume backed instance * Add policy description for os-host * Libvirt support for tagged volume attachment * Libvirt support for tagged nic attachment * Updated from global requirements * Add policy description for 'os-hide-server-addresses' * Add policy description for os-fixed-ips * Add policy description for networks\_associate * Add policy description for server\_usage * Modify the description of flat\_injected in nova.conf * Add policy description for multinic * Add policy description for 'limits' * Use plain routes list for server-password endpoint instead of stevedore * libvirt: expand checks for SubclassSignatureTestCase * fix InvalidSharedStorage exception message * Fix decoding of encryption key passed to dmcrypt * Make compute auto-disable itself if builds are failing * Make discover\_hosts only query for unmapped ComputeNode records * api-ref: Fix examples for add/removeFixedIp action * Fix a typo in code comment * Updated from global requirements * [BugFix] Change the parameter of the exception error message * Handle special characters in database connection URL netloc * fix typo in parameter type definition * Move null\_safe funcs to module level * do not log error for missing \_save\_tags * Add more description to policies in the keypairs.py * Add description to policies in extended\_status and extended\_volumes * Address comments when moving volume detach to block\_device.py * Updated from global requirements * Add a functional test for 'removeFloatingIp' action * Correct the wording about filter options * libvirt: Fix races with nfs volume mount/umount * libvirt: Pass instance to connect\_volume and disconnect\_volume * Remove the can\_host column * Totally freeze the extension\_info API * Trivial fix typo in document * Add missing rootwrap filter for cryptsetup * Add Cinder v3 detach to shutdown\_instance * Make NovaException format errors fatal for tests * Fix unit test exception KeyErrors * [BugFix] Release the memory quota for video ram when deleting an instance * Remove the rebuild extension help methods * service: use restart\_method='mutate' for all services * Verify project id for flavor access calls * Add a convenience attribute for reportclient * Add uuid to service.update notification payload * objects: add ComputeNode.get\_by\_uuid method * objects: add Service.get\_by\_uuid method * db api: add service\_get\_by\_uuid * Add online data migration for populating services.uuid * placement: get providers sharing capacity * Remove cloudpipe APIs * Replace newton to release\_name in upgrade.rst * Fix a typo * neutron: retrieve physical network name from a multi-provider network * Use six.text\_type() when logging Instance object * Fix typo in wsgi applications release note * Catching OverQuota Exception * Add description to policies in extended\_az and extend\_ser\_attrs * Add policy description for os-quota-classes * Add policy description for instance actions * Add policy description for fping * Updated from global requirements * Ensure sample policy help text correctly wrapped * Add policy description for extensions * Use plain routes list for server-metadata endpoint instead of stevedore * Transform instance.volume\_detach notification * Transform instance.volume\_attach.error notification * Transform instance.volume\_attach notification * Fix units for description of "flavor\_swap" parameter * Don't lazy-load flavor.projects during destroy() * devref and reno for nova-{api,metadata}-wsgi scripts * Add pbr-installed wsgi application for metadata api * Update devref with vendordata changes * remove unused functions * Use systemctl to restart services * Remove nova-cert leftovers * Add policy description for image size * Add policy description for instance-usage-audit-log * Add policy description for Servers IPs * Add policy description for config\_drive * XenAPI: update support matrix to support detach interface * Remove unnecessary execute permissions * Use plain routes list for os-fixed-ips endpoint instead of stevedore * Use plain routes list for os-availability-zone endpoint instead of stevedore * Use plain routes list for os-assisted-volume-snapshots endpoint * Use plain routes list for os-agents endpoint instead of stevedore * Use plain routes list for os-floating-ip-dns endpoint instead of stevedore * Add compute\_nodes\_uuid\_idx unique index * Use plain routes list for os-floating-ips-bulk endpoint instead of stevedore * Use plain routes list for os-floating-ip-pools endpoint instead of stevedore * Use plain routes list for os-floating-ips endpoint instead of stevedore * api-ref: Fix unnecessary description in servers-admin-action * api-ref: Fix parameters in servers-action-console-output * api-ref: Use 'note' directive * use plain routes list for os-simple-tenant-usage * Use plain routes list for os-instance-usage-audit-log endpoint instead of stevedore * Support tag instances when boot(1) * Add Cinder v3 detach call to \_terminate\_volume\_connections * placement: implement get\_inventory() for libvirt * nova-manage: Deprecate 'agent' commands * Add reserved\_host\_cpus option * Update description to policies in remaining flavor APIs * Add description to policies in migrations.py * Trivial fix: fix broken links * Remove nova-cert * Fixed a broken link in API Plugins document * Stop using mox int unit/virt/xenapi/image/test\_utils.py * Add ability to query for ComputeNodes by their mapped value * Add ComputeNode.mapped field * Updated from global requirements * Add a note to \*\_allocation\_ratio options about Ironic hardcode * Remove legacy v2.0 code from test\_flavor\_access * Do not log live migration success when it actually failed * Expose StandardLogging fixture for use * Add Cinder v3 detach to local\_cleanup * Don't check for file type in \_find\_base\_file * Rename \_handle\_base\_image to \_mark\_in\_use * Add context comments to \_handle\_base\_image * Add mock check and fix uuid's use in test * Revert "Prevent delete cell0 in nova-manage command" * Improve comment for PCI port binding update * Parse algorithm from cipher for ephemeral disk encryption * Add description to policies in floating\_ip files * Add description to policies in migrate\_server.py * Remove all discoverable policy rules * PowerVM Driver: console * Update doc/source/process.rst * 2.45: Remove Location header from createImage and createBackup responses * Clean up ClientRouter debt * api-ref: move createBackup to server-actions * Deprecate Multinic, floatingip action and os-virtual-interface API * Register osapi\_compute when nova-api is wsgi * disable keepalive for functional tests * Use plain routes list for '/os-aggregates' endpoint instead of stevedore * Use plain routes list for '/os-keypairs' endpoint instead of stevedore * Use plain routes list for flavors-access endpoint instead of stevedore * Use plain routes list for flavors-extraspecs endpoint instead of stevedore * Use plain routes list for flavor endpoint instead of stevedore[1] * Use plain routes list for '/servers' endpoint instead of stevedore * encryptors: Switch to os-brick encryptor classes * Fix unnecessary code block in a release note * Remove redundant code * api-ref: Fix a parameter description in servers.inc * api-ref: Parameter verification for servers-actions (4/4) * api-ref: Parameter verification for servers-actions (3/4) * Refactor a test method including 3 test cases * Sort CellMappingList.get\_all() for safety * Add workaround to disable group policy check upcall * Make server groups api aware of multiple cells for membership * libvirt: remove redundant and broken iscsi volume test * Remove BuildRequest.block\_device\_mapping clone workaround * libvirt: Always disconnect\_volume after rebase failures * Rework descriptions in os-hypervisors * Trivial Fix a typo * api-ref: Parameter verification for servers-actions (2/4) * Updated from global requirements * PowerVM Driver: spawn/destroy #4: full flavor * Remove archaic reference to QEMU errors during post live migration * Tell people that the nova-cells man page is for cells v1 * Add release note and update cell install guide for multi-cell limitations * PowerVM Driver: spawn/destroy #3: TaskFlow * Allow CONTENT\_LENGTH to be present but empty * libvirt: Remove is\_job\_complete polling after pivot * Adding auto\_disk\_config field to InstancePayload * add tags field to instance.update notification * Add description to policies in hypervisors.py * Explicitly define enum type as string in schema * PowerVM Driver: power\_on/off and reboot * Using max api version in notification sample test * PowerVM Driver: spawn/destroy #2: functional * Warn the user about orphaned extra records during keypair migration * Deprecate os-hosts API * Update resource tracker to PUT custom resource classes * [placement] Idempotent PUT /resource\_classes/{name} * Update detach to use V3 Cinder API * conf: Move 'floating\_ips' opts into 'network' * conf: Deprecate 'default\_floating\_pool' * conf: Add neutron.default\_floating\_pool * libvirt: Use config types to parse XML for root disk * libvirt: Add missing tests for utils.find\_disk * libvirt: Use config types to parse XML for instance disks * Updated from global requirements * Mock timeout in test\_\_get\_node\_console\_with\_reset\_wait\_timeout * Add test ensure all the microversions are sequential in placement API * fix overridden error * fix typos * Add interfaces functional negative tests * Remove unused os-pci API * Fix mitaka online migration for PCI devices * Fix port update exception when unshelving an instance with PCI devices * Fix docstring in \_validate\_requested\_port\_ids * Fix the evacuate API without json-schema validation in 2.13 * api-ref: Fix response code and parameters in evacuate * Remove json-schema extension variable for resize * Update etherpad url * Use deepcopy when process filters in db api * Add regression test for server filtering by tags bug 1682693 * remove unused parameter in rpc call * Remove usage of parameter enforce\_type * Remove test\_init\_nonexist\_schedulerdriver * Spelling error "paramenter" * api-ref: Parameter verification for servers-actions (1/4) * Revert "Make server\_groups determine deleted-ness from InstanceMappingList" 16.0.0.0b1 ---------- * Fix hypervisors api missing HostMappingNotFound handlers * Updated from global requirements * Fix HTTP 500 raised for getConsoleLog for stopped instance * Remove backend dependency for key types * Fix libvirt group selection in live migration test * Update network metadata type field for IPv6 * Add description to policies in servers.py * Add description to policies in security\_groups.py * api-ref: Nova Update Compute services Link * api-ref: Fix parameters in os-hosts.inc * Add uuid to Service model * Modify PciPassthroughFilter to accept lists * Deprecate CONF.api.allow\_instance\_snapshots * Read NIC features in libvirt * Fix api-ref for create servers response * placement: Add Traits API to placement service * Remove aggregate uuid generation on load from DB * Document and provide useful error message for volume-backed backup * PowerVM Driver: spawn/delete #1: no-ops * Refactor: Move post method to APIValidationTestCase base class * remove log translation tags from nova.cells * Get BDMs when we need to in \_handle\_cell\_delete * Remove dead db api code * Add description to policies in server\_password.py * remove flake8-import-order * Expand help text for [libvirt]/disk\_cachemodes * Updated from global requirements * Add description to policies in remote\_consoles.py * api-ref: fix os-extended-volumes:volumes\_attached in servers responses * Image meta min\_disk should be int in fake\_request\_spec * Optimize the link address * Add description to policies in quota\_sets.py * Fix joins in instance\_get\_all\_by\_host * Fix test\_instance\_get\_all\_by\_host * Remove the stevedore extension point for server create * Remove the json-schema extension point of server create * Remove the extension check for os-networks in servers API * Make server\_groups determine deleted-ness from InstanceMappingList * Add get\_by\_instance\_uuids() to InstanceMappingList * Remove Mitaka-era service version check * Teach HostAPI about cells * Make scheduler target cells to get compute node instance info * Deprecate the Cinder API v2 support * Limit exposure of network device types to the guest * Remove a fallacy in scheduler.driver config option help text * [placement] Allow PUT and POST without bodies * Use physical utilisation for cached images * Remove config opts for extension black/white list * Remove the usage of extension black/white list opt in scheduler hints * Cleanup wording on compute service version checks in API * Fix test\_no\_migrations\_have\_downgrade * Perform old-style local delete for shelved offloaded instances * Regression test for local delete with an attached volume * Set size/status during image create with FakeImageService * Commit usage decrement after destroying instance * Add regression test for quota decrement bug 1678326 * Short-circuit local delete path for cells v2 and InstanceNotFound * api-ref: make it clear that os-cells is for cells v1 * Add description to policies in security\_group\_default\_rules.py * Remove the usage of extension black/white list opt in user data * Add empty flavor object info in server api-ref * placement: Enable attach traits to ResourceProvider * docs: update description for AggregateInstanceExtraSpecsFilter * nova-net: remove get\_instance\_nw\_info from API subclass * API: accept None as content-length in HTTP requests * Switch from pip\_missing\_reqs to pip\_check\_reqs * nova-manage: Deprecate 'shell' commands * doc: Separate the releasenotes guide from the code-review section * Distinguish between cells v1 and v2 in upgrades doc * Use HostAddressOpt for opts that accept IP and hostnames * Stop using ResourceProvider in scheduler and RT * Updated from global requirements * Remove unnecessary tearDown function in testcase * Ensure reservation\_expire actually expires reservations * Remove unnecessary duplicated NOTE * Add description to policies in server\_diagnostics.py * Add description to policies in server\_external\_events.py * Add server-action-removefloatingip.json file and update servers-actions.inc * api-ref: networks is mandatory in Create Server * Trivial: Remove unused method * Make metadata doc more readable * Remove the usage of extension black/white list opt in AZ * Remove the usage of extension black/white list opt in config drive * Remove the usage of extension black/white list opts in multi-create * Remove the usage of extension black/white list opts in BDM tests * Rename the model object ResourceProviderTraits to ResourceProviderTrait * Short circuit notifications when not enabled * Add description to policies in services.py * compute: Move detach logic from manager into driver BDM * doc: Move code-review under developer policies * Add description to policies in servers\_migrations.py * Remove mox from nova/tests/unit/consoleauth/test\_consoleauth.py * Remove unnecessary setUp function in testcase * api-ref: Fix wrong HTTP response codes * Make conductor ask scheduler to limit migrates to same cell * Updated from global requirements * Consolidate unit tests for shelve API * Remove \_wait\_for\_state\_change() calls from notification (action)tests * Fix calling super function in setUp method * Remove namespace check in creating traits * Add description for /consoles * Ensure instance is in active state after notification test * Add description to policies in used\_limits * Add description to policies in lock\_server.py * Add description to policies in server\_metadata.py * Add description to policies in evacuate.py and rescue.py * Add description to policies in server\_groups.py * Use cursive for signature verification * Fix api-ref for adminPass behavior * Fix 'server' and 'instance' occurrence in api-ref * Add description to policies in flavor\_extra\_specs.py * code comment redundant * Add exclusion list for tempest for a libvirt+xen job * Add description to policies in cells\_scheduler.py * Add description to policies in aggregates.py * Add description to policies in pause\_server.py * Add description to policies in simple\_tenant\_usage.py * Add description to policies in keypairs.py * Remove unused policy rule in admin\_actions.py * Add description to policies in admin\_actions * Add description to policies in certificates.py * libvirt: Remove dead code * Add description to policies in console\_output.py * tox: Stop calling config/policy generators twice * There is a error on annotation about related options * Remove mox from nova.tests.unit.objects.test\_instance.py * fixed typos and reword stable api doc * Fix some reST field lists in docstrings * Add description to nova/policies/shelve.py * [placement] Split api-ref topics per file * Add description to policies in tenant\_networks.py * placement: Add Trait and TraitList objects * Remove legacy regeneration of RequestSpec in MigrationTask * remove i18n log markers from nova.api.\* * [placement] add api-ref for GET /resource\_providers * Structure for simply managing placement-api-ref * 'uplug' word spelling mistake * Make xenapi driver compatible with assert\_can\_migrate * Remove mox from nova/tests/unit/api/openstack/compute/test\_virtual\_interfaces.py * Remove mox from nova/tests/unit/api/openstack/compute/test\_quotas.py * Remove mox from nova/tests/unit/api/openstack/compute/test\_migrations.py * Fix wrong unit test about config option enabled\_apis * Do not attempt to load osinfo if we do not have os\_distro * Add confirm resized server functional negative tests * remove mox from unit/api/openstack/compute/test\_disk\_config.py * Revert "libvirt: Pass instance to connect\_volume and ..." * Add descripiton to policies in virtual\_interfaces.py * Add description to policies to availability\_zone * Add description to policies in suspend\_server.py * api-ref: fix description of volumeAttachment for attach/swap-volume * Get instance availability\_zone without hitting the api db * Set instance.availability\_zone whenever we schedule * [placement] Don't use floats in microversion handling * tests: fix uefi testcases * libvirt: make emulator threads to run on the reserved pCPU * libvirt: return a CPU overhead if isolate emulator threads requested * virt: update overhead to take into account vCPUs * numa: update numa usage to include reserved CPUs * numa: take into account cpus reserved * numa: fit instance NUMA node with cpus reserved onto host NUMA node * remove mox from unit/api/openstack/compute/test\_flavor\_manage.py * remove mox from unit/compute/test\_compute\_utils.py * api-ref: Complete all the verifications of remote consoles * remove mox from unit/virt/xenapi/image/test\_bittorrent.py * Fix some reST field lists in docstrings * Add lan9118 as valid nic for hw\_vif\_model property for qemu * Add description to policies in deferred\_delete.py * Add description to policies in create\_backup.py * Add description to policies in consoles.py * Add description to policies in cloudpipe.py * Add description to policies in console\_auth\_tokens.py * Add description to policies in baremetal\_nodes.py * conf: Final cleanups in conf/network * conf: Deprecate 'allow\_same\_net\_traffic' * libvirt: Ignore 'allow\_same\_net\_traffic' for port filters * conf: Deprecate 'use\_ipv6' * netutils: Ignore 'use\_ipv6' for network templates * Add check for invalid inventory amounts * Add check for invalid allocation amounts * Remove the Allocation.create() method * Add release note for CVE-2017-7214 * Add description to policies in cells.py * Tests: remove .testrepository/times.dbm in tox.ini (functional) * Pre-add functional tests stub to notification testing * libvirt: conditionally set script path for ethernet vif types * Add description to policies in agents.py * Add description to policies in admin\_password.py * libvirt: mark some Image backend methods as abstract * Add description to policies in assisted\_volume\_snapshots.py * Change os-server-tags default policy * Ironic: hardcode min\_unit for standard resources to 1 * Refactor: remove \_items() in nova/api/openstack/compute/attach\_interfaces.py * delete more i18n log markers * remove log translation from nova.api.metadata * update i18n guide for nova * Add description to policies in attach\_interfaces.py * Add description to policies in volumes\_attachments.py * Add description to policies in volumes.py * Fix rest\_api\_version\_history (2.40) * fix os-volume\_attachments policy checks * libvirt: Ignore 'use\_ipv6' for port filters * conf: Fix indentation in conf/netconf * Remove unused VIFModel.\_get\_legacy method * Add helper method to add additional data about policy rule * DELETE all inventory for a resource provider * nova-status: don't coerce version numbers to floats for comparison * remove mox from unit/api/openstack/compute/test\_flavors.y * Improve descriptions for hostId, host, and hypervisor\_hostname * compute: Only destroy BDMs after successful detach call * Remove old oslo.messaging transport aliases * Updated from global requirements * do not include context to exception notification * Add api-ref for filter/sort whitelist * Fix functional regression/recreate test for bug 1671648 * api-ref: fix description in os-services * flake8: Specify 'nova' as name of app * objects: Add attachment\_id to BlockDeviceMapping * db: Add attachment\_id to block\_device\_mapping * Updated from global requirements * Clarify os-stop API description * remove flake8-import-order for test requirements * Avoid lazy-loading projects during flavor notification * libvirt: add debug logging in detach\_device\_with\_retry * Transform instance.reboot.error notification * Transform instance.reboot notifications * remove hacking rule that enforces log translation * doc: configurable versioned notifications topics * Replace obsolete vanity openstack.org URLs * Add populate\_retry to schedule\_and\_build\_instances * Add a functional regression/recreate test for bug 1671648 * virt: implement get\_inventory() for Ironic * Fix the help for the disk\_weight\_multiplier option * Add a note about force\_hosts only ever having a single value * Make os-availability-zones know about cells * Introduce fast8 tox target * Duplicate JSON line ending check to pep8 * trivial: Remove \r\n line endings from JSON sample * [placement] Raising http codes on old microversion * Updated from global requirements * doc: add some documentation around quotas * Make versioned notifications topics configurable * Use proper user and tenant in the owner section of libvirt.xml * Prevent delete cell0 in nova-manage command * Refactor InstancePayload creation * nova-status: require placement >= 1.4 * Temporarily untarget context when deleting from cell0 * Decrement quota usage when deleting an instance in cell0 * VMware: use WithRetrieval in ds\_util module * VMware: use WithRetrieval in get\_network\_with\_the\_name * Remove VMware driver \_get\_vm\_ref\_from\_uuid method * trivial: Add a note about 'cells\_api' * Add description for Image location in snapshot * Typo fix in releasenotes: deprecate network options * api-ref: Fix parameters and examples in aggregate API * Transform instance.rebuild.error notification * Transform instance.rebuild notification * Add regression test for bug 1670627 * No API cell up-call to delete consoleauth tokens * Add identity helper property to CellMapping * Correctly set up deprecation warning * Add cell field to Destination object * Change MQ targeting to honor only what is in the context * Remove duplicate attributes in sample files * api-ref: Fix keypair API parameters * Fix missing instance.delete notification * conf: Fix formatting of network options * Teach simple\_tenant\_usage about cells * Teach os-migrations about cells * Teach os-aggregates about cells * Stop using mox in unit/virt/disk/test\_api.py * Avoid using fdatasync() when fetching images * Fix API doc about server attributes (2.3 API) * Refactor cell loading in compute/api * Target cell in super conductor operations * Ensure image conversion flushes output data to disk * fdatasync() downloaded images before use * conf: fix default values reporting infra worker * Error message should not include SQL command * Make consoleauth target the proper cell * Enlighten server tags API about cells * Update docstrings for legacy notification methods * conf: Deprecate most 'network' option * Use Cinder API v3 as default * get\_model method missing for Ploop image * trivial: Standardize naming of variables * trivial: Standardize indentation of test\_vif * autospec the virt driver mock in test\_resource\_tracker * Add functional test for bad res class in set\_inventory\_for\_provider * Remove unused placement\_database config options * libvirt: pass log\_path to \_create\_pty\_device for non-kvm/qemu * virt: add get\_inventory() virt driver API method * conf: remove console\_driver opt * Use flake8-import-order * numa: add numa constraints for emulator threads policy * Remove mox from nova.tests.unit.api.openstack.compute.test\_block\_device\_mapping * Revert "Add some metadata logging to root cause ssh failure" * Add comment to instance\_destroy() * Remove GlanceImageService * Use Sphinx 1.5 warning-is-error * Add warning on setting secure\_proxy\_ssl\_header * handle uninited fields in notification payload * Fix api-ref with Sphinx 1.5 * Imported Translations from Zanata * Reno for additional-notification-fields-for-searchlight * Default firewall\_driver to nova.virt.firewall.NoopFirewallDriver * Handle conflicts for os-assisted-volume-snapshots * Remove mox from nova.tests.unit.api.openstack.compute.test\_create\_backup * Log with cell.uuid if cell.name is not set * Updated from global requirements * re-orphan flavor after rpc deserialization * Stop using mox stubs in nova.tests.unit.api.openstack.compute.test\_serversV21 * Skip unit tests for SSL + py3 * Add functional test for ip filtering with regex * Add resize server functional negative tests * conf: resolved final todos in libvirt conf * Only create vendordata\_dynamic ksa session if needed * Check for 204 case in DynamicVendorData * Add some metadata logging to root cause ssh failure * Remove unused variable * Remove domains \*-log-\* from compile\_catalog * Updated from global requirements * Updated from global requirements * [placement] Add Traits related table to the api database * Remove mox from nova/tests/unit/db/test\_db\_api.py * Complete verification of servers-action-fixed-ip.inc * Remove mox in nova/tests/unit/compute/test\_shelve.py (3) * libvirt: Pass instance to connect\_volume and disconnect\_volume * Stop using mox in compute/test\_hypervisors.py * Add device\_id when creating ports * Make compute/api instance get set target cell on context * Remove mox from nova.tests.unit.virt.xenapi.test\_vmops[1] * Tests: remove .testrepository/times.dbm in tox.ini * Updated from global requirements * Remove invalid tests-py3 whitelist item * Ignore deleted services in minimum version calculation * Add RPC version aliases for Ocata * Remove mox from nova/tests/unit/test\_configdrive2.py * Remove usage of config option verbose * Remove check\_attach * Handle VolumeBDMIsMultiAttach in os-assisted-volume-snapshots * api/metadata/vendordata\_dynamic: don't import Requests for its constants * Fix typos detected by toolkit misspellings * remove a TODO as all set for tags * Clean up metadata param in doc * Remove extension in API layer * Correct some spelling errors * Fix typo in config drive support matrix docs * doc: Don't put comments inside toctree * Fix doc generation warnings * Remove run\_tests.sh * Fix spice channel type * Updated from global requirements * libvirt: drop MIN\_LIBVIRT\_HUGEPAGE\_VERSION * libvirt: drop MIN\_LIBVIRT\_NUMA\_VERSION * libvirt: drop MIN\_QEMU\_NUMA\_HUGEPAGE\_VERSION * libvirt: Fix misleading error in Ploop imagebackend * More usage of ostestr and cleanup an unused dependency * Ensure that instance directory is removed after success migration/resize * api-ref: Body verification for os-hypervisors.inc * Make conductor create InstanceAction in the proper cell * Allow nova-status to work with custom ca for placement * libvirt: Handle InstanceNotFound exception * Make scheduler get hosts from all cells * Make servers API use cell-targeted context * Make CellDatabases fixture work over RPC * Use the keystone session loader in the placement reporting * Verify project\_id when quotas are checked * Remove mox from nova/tests/unit/virt/vmwareapi/test\_vif.py * conf: Fix invalid rST comments * Revert "fix usage of opportunistic test cases with enginefacade" * Placement api: set custom json\_error\_formatter in resource\_class * Enable coverage report * Make server\_external\_events cells-aware * Remove service version check for Ocata/Newton placement decisions * Remove a dead cinder v1 check * Raise correct error instead of class exist in Placement API * Remove mox from nova/tests/unit/objects/test\_service.py * Skip soft-deleted records in 330\_enforce\_mitaka\_online\_migrations * Stop using mox from tests/unit/test\_service.py * Update placement\_dev with info about new decorator * Remove unused logging import * Deprecate xenserver.vif\_driver config option and change default * Fix live migrate with XenServer * Fix novncproxy for python3 * Remove mox stubs in api/openstack/compute/test\_server\_reset\_state.py * Fix some typo errors * Enable defaults for cell\_v2 update\_cell command * Remove dead code: \_safe\_destroy\_instance\_residue * Updated from global requirements * Make eventlet hub use a monotonic clock * Tolerate WebOb===1.7.1 * Tolerate jsonschema==2.6.0 * Stop using mox in test\_compute\_cells.py * Stop using mox in virt/xenapi/image/test\_glance.py * Remove mox from unit/api/openstack/compute/test\_aggregates.py * Remove mox from api/openstack/compute/test\_deferred\_delete.py * Typo fix: degredation => degradation * api-ref: Fix deprecated proxy API parameters * api-ref: note that boot ignores bdm:device\_name * Skip test\_stamp\_pattern in cells v1 job * Fix misuse of assertTrue * Fix improper prompt when update RC with existed one's name * Remove mox from nova/tests/unit/virt/vmwareapi/test\_configdrive.py * Placement api: set custom json\_error\_formatter in root * Cleanup some issues with CONF.placement.os\_interface * Placement api: set custom json\_error\_formatter in aggregate and usage * Fix suggested database migration command * Placement api: set custom json\_error\_formatter in resource\_provider * api-ref: Fix network\_label parameter type * Fix incorrect example for querying resource for RP * Use ListOfIntegersField in oslo.versionedobjects * libvirt: drop MIN\_QEMU\_PPC64\_VERSION * libvirt: drop MIN\_LIBVIRT\_AUTO\_CONVERGE\_VERSION * libvirt: drop MIN\_QEMU\_DISCARD\_VERSION * libvirt: drop MIN\_LIBVIRT\_HYPERV\_TIMER\_VERSION * libvirt: drop MIN\_LIBVIRT\_UEFI\_VERSION * libvirt: drop MIN\_LIBVIRT\_FSFREEZE\_VERSION * libvirt: drop MIN\_LIBVIRT\_BLOCKJOB\_RELATIVE\_VERSION * Bump minimum required libvirt/qemu versions for Pike * api-ref: fix instance action 'message' description * Placement api: set custom json\_error\_formatter in inventory * conf/libvirt: remove invalid TODOs * conf/compute: remove invalid TODOs * Remove straggling use of main db flavors in cellsv1 code * Add Cells V1 -> Cells V2 step-by-step example * nova-manage: Update deprecation timeline * Enable global hacking checks and removed local checks * Update hacking version * Use min parameter to restrict live-migration config options * Fix typo in nova/network/neutronv2/api.py * libvirt: wait for interface detach from the guest * libvirt: fix and break up \_test\_attach\_detach\_interface * api-ref: mark id as optional in POST /flavors * Fix nova-manage cell\_v2 metavar strings * Remove unused validation code from block\_device * Prepare for using standard python tests * Placement api: set custom json\_error\_formatter in allocations * [3/3]Replace six.iteritems() with .items() * conf: Deprecate 'firewall\_driver' * conf: Deprecate 'ipv6\_backend' * libvirt: set vlan tag for macvtap on SR-IOV VFs * Removed unnecessary parantheses and fixed formation * Fix the spelling mistake in host.py * Allow None for block\_device\_mapping\_v2.boot\_index * Edits for Cells V2 step-by-step examples * api-ref: fix delete server async postcondition docs * libvirt: check if we can quiesce before volume-backed snapshot * Default live\_migration\_progress\_timeout to off * libvirt: Remove redundant bdm serial mangling and saving during swap\_volume * Consider startup scenario in \_get\_compute\_nodes\_in\_db * libvirt: Introduce Guest.get\_config method * libvirt: Parse basic attributes of LibvirtConfigGuest from xml * libvirt: Parse filesystem elements of guest config * libvirt: Parse virt\_type attribute of LibvirtConfigGuest from xml * libvirt: Parse os attributes of LibvirtConfigGuest from xml * libvirt: Remove unused disk\_info parameter * libvirt: Simplify internal usage of get\_instance\_disk\_info * Stop failed live-migrates getting stuck migrating * Stop \_undefine\_domain erroring if domain not found * tests: fix vlan test type from int to str * Add an update\_cell command to nova-manage * allocations.consumer\_id is not used in query * api-ref: document the 'tenant\_id' query parameter * TrivialFix: replace list comprehension with 'for' * Reserve migration placeholders for Ocata backports * Update the upgrades part of devref * Cleanup the caches when deleting a resource provider * vomiting * Clarify the deployment of placement for cellsv1 users * conf: remove deprecated image url options * conf: add min parameter to scheduler opts * Add step-by-step examples for Cells V2 setup * Add nodename to \_claim\_test log messages * Update reno for stable/ocata 15.0.0.0rc1 ----------- * Add placement request id to log when GET or POST rps * Add placement request id to log when GET aggregates * Add more debug logging on RP inventory delete failures * Add more debug logging on RP inventory update failures * Delete a compute node's resource provider when node is deleted * Remove mox from unit/virt/libvirt/test\_imagebackend.py (end) * Mark compute/placement REST API max microversions for Ocata * Add release note for filter/sort whitelist * Clarify the language in the apache wsgi sample * Stop swap allocations being wrong due to MB vs GB * Clarify the [cells] config option help * Add offset & limit docs & tests * Report reserved\_host\_disk\_mb in GB not KB * Fix access\_ip\_v4/6 filters params for servers filter * Fix typo in cells v2 ocata reno * doc: add upgrade notes to the placement devref * Simplify uses of assert\_has\_calls * Fix typo in help for discover\_hosts\_in\_cells\_interval * Handle NotImplementedError in \_process\_instance\_vif\_deleted\_event * Fix the terminated\_at field in the server query params schema * Add release note for nova-status upgrade check CLI * Add prelude section for Ocata * Collected release notes for Ocata CellsV2 * reno for notification-transformation-ocata * Allow scheduler to run cell host discovery periodically * doc: update the man page entry for nova-manage db sync * doc: refer to the cell\_v2 man pages from the cells v2 doc * doc: add some detail to the map\_cell0 man page * Remove pre-cellsv2 short circuit in instance get * Continue processing build requests even if one is gone already * Allow placement endpoint interface to be set * Ensure build request exists before creating instance * placement-api: fix ResourceProviderList query * tests: Remove duplicate NumaHostInfo * tests: Combine multiple NUMA-generation functions * tests: Don't reinvent \_\_init\_\_ * Explain how allow\_resize\_to\_same\_host is useful * nova-status: relax the resource providers check * Read instances from API cell for cells v1 * [placement] Use modern attributes of oslo\_context * Fix map\_cell\_and\_hosts help * Fresh resource provider in RT must have generation 0 * libvirt: Limit destroying disks during cleanup to spawn * Use is\_valid\_cidr and is\_valid\_ipv6\_cidr from oslo\_utils * Ignore IOError when creating 'console.log' * Fix unspecified bahavior on GET /servers/detail?tenant\_id=X as admin * Remove unused exceptions from nova.exception * nova-manage docs: cell\_v2 delete\_cell * nova-manage docs: cell\_v2 list\_cells * nova-manage docs: cell\_v2 discover\_hosts * nova-manage docs: cell\_v2 create\_cell * nova-manage docs: cell\_v2 verify\_instance * nova-manage docs: cell\_v2 map\_cell\_and\_hosts * Fix tag attribute disappearing in 2.33 and 2.37 * Scheduler calling the Placement API * Block starting compute unless placement conf is provided * Added instance.reboot.error to the legacy notifications * Avoid redundant call to update\_resource\_stats from RT * api-ref: Fix path parameters in os-hypervisors.inc * libvirt: fix vCPU usage reporing for LXC/QEMU guests * Adding vlans field to Device tagging metadata * libvirt: expose virtual interfaces with vlans to metadata * objects: vlan field to NetworkInterfaceMetadata object * Move instance creation to conductor * Updated from global requirements * Fix server group functional test by using all filters * Hyper-V PCI Passthrough * Change exponential function to linear * Fixed indentation in virt/libvirt/driver.py * Cache boot time roles for vendordata * Optionally make dynamic vendordata failures fatal * Use a service account to make vendordata requests * libvirt: ephemeral disk support for virtuozzo containers 15.0.0.0b3 ---------- * ironic: Add trigger crash dump support to ironic driver * Only warn about hostmappings during ocata upgrade * nova-manage docs: cell\_v2 map\_instances * nova-manage docs: cell\_v2 map\_cell0 * nova-manage docs: cell\_v2 simple\_cell\_setup * Add new configuration option live\_migration\_scheme * Fix race condition in instance.update sample test * libvirt: Use the mirror element to detect job completion * libvirt: Mock is\_job\_complete in test\_driver * adding debug info for pinning calculation * PCI: Check pci\_requests object is empty before passing to support\_requests * Ironic: Add soft power off support to Ironic driver * Add sort\_key white list for server list/detail * Trivial-fix: replace "json" with "yaml" in policy README * Release PCI devices on drop\_move\_claim() * objects: add new field cpuset\_reserved in NUMACell * Make api\_samples tests use simple cell environment * Assign mac address to vf netdevice when using macvtap port * conf: Deprecate 'console\_driver' * libvirt: avoid generating script with empty path * placement: minor refactor \_allocate\_for\_instance() * placement: report client handle InventoryInUse * Multicell support for instance listing * scheduler: Don't modify RequestSpec.numa\_topology * Fix and add some notes to the cells v2 first time setup doc * Add deleting log when config drive was imported to rbd * Updated from global requirements * Amend the PlacementFixture * Prevent compute crash on discovery failure * Ironic: Add soft reboot support to ironic driver * os-vif: convert libvirt driver to use os-vif for fast path vhostuser * Updated from global requirements * Add a PlacementFixture * Set access\_policy for messaging's dispatcher * libvirt: make coherent logs when reboot success * Add ComputeNodeList.get\_all\_by\_uuids method * Fix typo in 216\_havana.py * placement: create aggregate map in report client * Support Ironic interface attach/detach in nova virt * Generate necessary network metadata for ironic port groups * Ensure we mark baremetal links as phy links * os-vif-util: set vif\_name for vhostuser ovs os-vif port * Move migration\_downtime\_steps to libvirt/migration * libvirt: fix nova can't delete the instance with nvram * Remove mox in libvirt destory tests * VMWare: Move constant power state strings to the constant.py * Remove references to Python 3.4 * hyperv: make sure to plug OVS VIFs after resize/migrate * Strict pattern match query parameters * Raise InvalidInput exception * Fix Nova to allow using cinder v3 endpoint * [py35] Fixes to get more tempest tests working * Move to tooz hash ring implementation * api-ref: Fix a parameter in os-availability-zone.inc * objects: remove cpu\_topology from \_\_init\_\_ of InstanceNUMATopology * Integrate OSProfiler and Nova * Remove mox from unit/virt/libvirt/test\_imagebackend.py (5) * Enable virt.vmwareapi test cases on Python * Enable virt.test\_virt\_drivers.AbstractDriverTestCase on Python 3 * Port compute.test\_user\_data.ServersControllerCreateTest to Python 3 * Add revert resized server functional negative tests * XenAPI: Fix vif plug problem during VM rescue/unrescue * Handle oslo.serialization type error and binascii error * Remove invalid URL in gabbi tests * nova-manage cell\_v2 map\_cell0 exit 0 * Add query parameters white list for server list/detail * nova-manage docs: add cells commands prep * Add --verbose option to discover\_hosts command * Add more details when test\_create\_delete\_server\_with\_instance\_update fails * Updated from global requirements * Add some cellsv2 setup docs * Fix the generated cell0 default database name * rt: use a single ResourceTracker object instance * Add nova-manage cell\_v2 delete\_cell command * Add InstanceMappingList.get\_by\_cell\_id * Create HostMappingList object * Add nova-manage cell\_v2 list\_cells command * Add nova-manage cell\_v2 create\_cell command * Add rudimentary CORS support to placement API * libvirt: workaround findmnt behaviour change * api-ref: Fix parameters whose values are 'null' * Fix broken link of Doc * api-ref: Fix parameters and response in os-quota-sets.inc * Remove nova-manage image from man pages * Updated from global requirements * Fixes to get all functional tests working on py35 * [placement] Add a bit about extraction plans to placement\_dev * [placement] Add an "Adding a Handler" section to placement\_dev * [placement] placement\_dev info for testing and gabbi * [placement] placement\_dev info for microversion handling * Updated from global requirements * placement: validate member\_of values are uuids * Make metadata server know about cell mappings * Remove redundant arg check in nova-manage cell\_v2 verify\_instance * Expose a REST API for a specific list of RPs * copy pasta error * Set sysinfo\_serial="none" in LibvirtDriverTestCase * [py35] Fixes to get rally scenarios working * Fix missing RP generation update * Add service\_token for nova-neutron interaction * rt: explicitly pass compute node to \_update() * Make unit tests work with os-vif 1.4.0 * Updated from global requirements * libvirt: make live migration possible with Virtuozzo * Small improvements to placement.rst * Better black list for py35 tests * Fix class type error in attach\_interface() function * Hyper-V: Adds vNUMA implementation * Don't bypass cellsv1 replication if cellsv2 maps are in place * Adds Hyper-V OVS ViF driver * docs - Connect to placement service & retries * Improve flavor sample in notification sample tests * xenapi: support the hotplug of a neutron port * Update notification for flavor * Add service\_token for nova-cinder interaction * Make allocate\_for\_instance take consistent args * XenAPI Remove useless files when use os-xenapi lib * XenAPI Use os-xenapi lib for nova * Make placement client keep trying to connect * releasenotes: Add missing releasenote for encryption provider constants * Stop using mox stubs in test\_attach\_interfaces.py * Remove mox from api/openstack/compute/test\_floating\_ip\_dns.py * Remove mox in nova/tests/unit/compute/test\_shelve.py (end) * Remove mox in unit/api/openstack/test\_wsgi.py * Document testing process for zero downtime upgrade * Remove mox in nova/tests/unit/compute/test\_shelve.py (2) * Notifications for flavor operations * Add debug possibility for nova-manage command * conf: Deprecate yet more nova-net options * conf: Resolve formatting issues with 'quota' * [2/3]Replace six.iteritems() with .items() * Port xenapi test\_vm\_utils to Python 3 * docs: sort the Architecture Concepts index * Make the SingleCellSimple fixture a little more comprehensive * Fix non-parameterized service id in hypervisors sample tests * Fix TypeError in \_update\_from\_compute\_node race * Trivial indentation fix * Add missing CLI commands in support-matrix.ini * tests: Replace use of CONF with monkey patching * correct misleading wording * Fix a typo in documents * Don't translate exceptions w/ no message * Fix ksa mocking in test\_cinderclient\_unsupported\_v1 * [placement] fix typo in call to create auth middleware * HTTP interface for resource providers by aggregates * Return uuid attribute for aggregates * Update docstring of \_schema\_validation\_helper * api-ref: use the examples with paging links * Port libvirt.test\_vif to Python 3 * Port libvirt.test\_firewall to Python 3 * Move quota options to a config group * Handle Unauthorized exception in report client's safe\_connect() * Remove mox from unit/virt/libvirt/test\_imagebackend.py (4) * Remove mox from unit/virt/libvirt/test\_imagebackend.py (3) * Remove mox from unit/virt/libvirt/test\_imagebackend.py (2) * Do not post allocations that are zero * Remove mox from unit/compute/test\_compute\_api.py (1) * Add aggregate notification related enum values * Transform aggregate.delete notification * Transform aggregate.create notification * Added missing decorator for instance.create.error * Enable Neutron by default * Port virt.libvirt.test\_imagebackend to Python 3 * move gate hooks to gate/ * tools: Remove 'colorizer' * tools: Remove 'with\_venv' * tools: Remove 'install\_venv', 'install\_venv\_common' * tools: Remove 'clean-vlans' * tools: Remove 'enable-pre-commit-hook' * Use JSON-Schema to validate query parameters for keypairs API * Adds support for versioned schema validation for query parameters * Remove mox from api/openstack/compute/test\_extended\_hypervisors.py * Stop using mox in compute/test\_server\_actions.py * Remove mox from unit/api/openstack/compute/test\_cloudpipe.py * Add support matrix for attach and detach interfaces * Make last remaining unit tests work with Neutron by default * Make test\_metadata pass with CONF.use\_neutron=True by default * Make test\_nova\_manage pass with CONF.use\_neutron=True by default * Stub out os\_vif.unplug in libvirt instance destroy tests * Make test\_attach\_interfaces work with use\_neutron=True by default * Make test\_floating\_ip\* pass with CONF.use\_neutron=True by default * Make several API unit tests pass with CONF.use\_neutron=True by default * Make test\_server\_usage work with CONF.use\_neutron=True by default * Make test\_security\_group\_default\_rules work with use\_neutron=True by default * Make test\_tenant\_networks pass with CONF.use\_neutron=True by default * Make test\_security\_groups work with CONF.use\_neutron=True by default * Make test\_virtual\_interfaces work with CONF.use\_neutron=True by default * Make test\_user\_data and test\_multiple\_create work with use\_neutron=True * Make test\_quota work with CONF.use\_neutron=True by default * Make test\_compute pass with CONF.use\_neutron=True by default * api-ref: Fix parameters in os-server-groups.inc * Remove mox in test\_block\_device\_mapping\_v1.py * placement: Do not save 0-valued inventory * Add 'disabled' to WatchdogAction field * Remove more deprecated nova-manage commands * Make servers api view load instance fault from proper cell * Add support for setting boot order in Hyper-V * Create schema generation for NetworkModel * conf: added notifications group * Missing usage next links in api-ref * [placement] start a placement\_dev doc * Stop handling differences in registerCloseCallback * Enable TestOSAPIFixture.test\_responds\_to\_version on Python 3 * pci: Clarify SR-IOV ports vs direct passthrough ports * nova-status: check for compute resource providers * doc: add recomendation for delete notifications * Move FlavorPayload to a seperate file * Remove Rules.load\_json warning * Handle unicode when dealing with duplicate aggregate errors during migration * Handle unicode when dealing with duplicate flavors during online migrations * Actually test online flavor migrations * Remove unused init\_only kwarg from wsgi app init * api-ref: add notes about POST/DELETE errors for os-tenant-networks * Remove unnecessary attrs from TenantNetworksDeprecationTest * api-ref: microversion 2.40 overview * Fix assertion in test\_instance\_fault\_get\_by\_instance * Add more field's in InstancePayload * api-ref: cleanup os-server-groups 'policies' parameter description * objects: add new field cpu\_emulator\_threads\_policy * Support filtering resource providers by aggregate membership * Resource tracker doesn't free resources on confirm resize * Stop using mox stubs in nova/tests/unit/cells * Add release note to PCI passthrough whitelist regex support * api-ref: Fix parameter type in servers-admin-action.inc * Port security group related tests to Python 3 * Add create image functional negative tests * Don't apply multi-queue to SRIOV ports * Avoid multiple initializations of Host class * placement: correct improper test case inheritance * Remove mox in tests/unit/objects/test\_instance\_info\_cache * Port compute unit tests to Python 3 * Fix urllib.urlencode issue in functional tests on Python 3 * Trival fix typo * Enble network.test\_neutronv2.TestNeutronv2 on Python 3 * Enble compute.test\_compute\_mgr.ComputeManagerUnitTestCase on Python 3 * Port api.openstack.compute.test\_disk\_config to Python 3 * Updated from global requirements * Ignore 404s when deleting allocation records * nova-status: return 255 for unexpected errors * VMware: Update supported OS types for ESX 6.5 * Replace "Openstack" with "OpenStack" * Use bdm destination type allowed values hard coded * Fix BDM JSON-Schema validation * [TrivialFix] Fix comment and function name typo error * [TrivialFix] Fix comment typo error * Fix python3 issues with devstack * [1/3]Replace six.iteritems() with .items() * Fix typo * Fix misleading port delete description * conf: remove deprecated barbican options * conf: Remove 'virt' file * Trival fix typos in api-ref * make 2.31 microversion wording better * Add soft delete wrinkle to api-ref * Add document update for get console usage * Trivial: add ability to define action description * Added missed "raises:" docstrings into numa\_get\_constraints() method * Removes unnecessary utf-8 encoding * Port test\_matchers.TestDictMatches.test\_\_str\_\_ to Python 3 * Skip network.test\_manager.LdapDNSTestCase on Python 3 * Remove mox in tests/unit/objects/test\_security\_group * Remove v2.40 from URL string in usage API docs * nova-status: add basic placement status checking * nova-status: check for cells v2 upgrade readiness * Add nova-status upgrade check command framework * rt: remove fluff from test\_resource\_tracker * rt: pass the nodename to public methods * conf: make 'default' upper case * conf: move few console opts to xenserver group * conf: remove deprecated ironic options * conf: refactor conf\_fixture.py * Add unit test for extract\_snapshot with compression enabled * Refactor the code to add generic schema validation helper * Updated from global requirements * Fix error if free\_disk\_gb is None in CellStateManager * nova-manage: squash oslo\_policy debug logging * Pre-load info\_cache when handling external events and handle NotFound * Make nova-manage cell\_v2 discover\_hosts tests use DBs * Fix nova-manage cell\_v2 discover\_hosts RequestContext * Make nova-manage emit a traceback when things blow up * XenAPI: Remove ovs\_integration\_bridge default value * rt: pass nodename to internal methods * Failing test (mac osx) - test\_cache\_ephemeral * Catch VolumeEncryptionNotSupported during spawn * Updated from global requirements * Fix exception message formatting error in test * osapi\_max\_limit -> max\_limit * Add more detail to help text for reclaim\_instance\_interval option * Added PRSM to HVType class for support PR/SM hypervisor * conf: Deprecate more nova-net options 15.0.0.0b2 ---------- * [test]Change fake image info to fit instance xml * Cleanup Newton Release Notes * Port libvirt.storage.test\_rbd to Python 3 * VMware: ensure that provider networks work for type 'portgroup' * libvirt: Stop misusing NovaException * Fix the file permissions of test\_compute\_mgr.py * Add detail to cellsv2-related release notes * Revert "Use liberty-eol tag for liberty release notes" * Fix some release notes in preparation for the o-2 beta release * Add schedule\_and\_build\_instances conductor method * libvirt: Detach volumes from a domain before detaching any encryptors * libvirt: Flatten 'get\_domain' function * fakelibvirt: Remove unused functions * libvirt: Remove slowpath listing of instances * Only return latest instance fault for instances * Remove dead begin/end code from InstanceUsageAuditLogController * Use liberty-eol tag for liberty release notes * api-ref: Fix description of os-instance-usage-audit-log * conf: fix formatting in base * Stop allowing tags as empty string * libvirt: remove hack for dom.vcpus() returning None * Add Python 3.5 functional tests in tox.ini * Simple tenant usage pagination * Modify mistake of scsi adapter type class * Remove the EC2 compatible API tags filter related codes * Port virt vmwareapi tests to Python 3 * Mark sibling CPUs as 'used' for cpu\_thread\_policy = 'isolated' * Added missed "raises:" docstrings into numa\_get\_constraints() method * Changed NUMACell to InstanceNUMACell in test\_stats.py * TrivialFix: changed log message * api-ref: Fix 'id' (attachment\_id) parameters * Move tags validation code to json schema * Let nova-manage cell\_v2 commands use transport\_url from CONF * Make test\_create\_delete\_server\_with\_instance\_update deterministic * restore locking in notification tests * Remove mox from unit/compute/test\_compute\_api.py(2) * Deprecate compute options * Remove support for the Cinder v1 API * Make simple\_cell\_setup fully idempotent * Corrects the type of a base64 encoded string * Fix instructions for running simple\_cell\_setup * Quiet unicode warnings in functional test\_resource\_provider * conf: Detail the 'injected\_network\_template' opt * Add more description for rx and tx param * move rest\_api\_version\_history.rst to compute layer * Enhance PCI passthrough whitelist to support regex * Better wording for micorversion 2.36 * Port test\_servers to py3 * Catch InstanceNotFound exception * Remove mox in tests/unit/objects/test\_compute\_node * Refactor REGEX filters to eliminate 500 errors * Fix crashing during guest config with pci\_devices=None * Provide an online data migration to cleanup orphaned build requests * Add SecurityGroup.identifier to prefer uuid over name * Setup CellsV2 environment in base test * conf: add warning for vm's max delete attempts * Cleanup after any failed libvirt spawn * Guestfs handle no passwd or group in image * Return 400 when name is more than 255 characters * Check that all JSON files don't have \r\n in line * Enable test\_bdm.BlockDeviceMappingEc2CloudTestCase on Python 3 * network id is uuid instead of id * fix for auth during live-migration * Don't trace on ImageNotFound in delete\_image\_on\_error * Cascade deletes of RP aggregate associations * Make resource provider objects not remotable * Bump prlimit cpu time for qemu from 2 to 8 * test: drop unused config option fake\_manager * conf: Remove config option compute\_ manager * Extend get\_all\_by\_filters to support resource criteria * Port test\_virt\_drivers to Python 3 * Don't use 'updated\_at' to check service's status * libvirt: Fix initialising of LVM ephemeral disks * Remove extra ^M for json file * Port virt.disk.mount.test\_nbd to Python 3 * Remove unnecessary comment of BDM validation * Update ironic driver get\_available\_nodes docstring * api-ref: note that os-virtual-interfaces is nova-network only * Fix up non-cells-aware context managers in test\_db\_api * Add SingleCellSimple fixture * [proxy-api] microversion 2.39 deprecates image-metadata proxy API * Make RPCFixture support multiple connections * tests: avoid starting compute service twice in sriov functional test * tests: generate correct pci addresses for fake pci devices * Fix nova-serialproxy when registering cli options * Updated from global requirements * Revert "reduce pep8 requirements to just hacking" * conf: Improve help text for network options * conf: Deprecate all nova-net related opts * libvirt: Mock imagebackend template funcs in ImageBackendFixture * libvirt: Combine injection info in InjectionInfo * Fix misuse of assertTrue * Return 400 when name is more than 200 characters * Replace the assertEqual(None,A) with assertIsNone(A) * Rename few tests as per new config options * Handle MarkerNotFound from cell0 database * Removed unused ComputeNode create/update\_inventory methods * Fix a typo in a comment in microversion history * Handle ImageNotFound exception during instance backup * Add a CellDatabases test fixture * Pass context as kwarg instead of positional arg to get\_engine * Transform instance.snapshot notifications * libvirt: virtlogd: use virtlogd for char devices * libvirt: create consoles in an understandable/extensible way * Add more log when delete orphan node * libvirt: Add comments in \_hard\_reboot * Update cors-to-versions-pipeline release note * Unity the comparison of hw\_qemu\_guest\_agent * Add metadata functional negative tests * Require cellsv2 setup before migrating to Ocata * Improving help text for xenapi\_vmops\_opts * convert libvirt driver to use os-vif for vhost-user with ovs * Handle ComputeHostNotFound when listing hypervisors * Improve the error message for failed RC deletion * refactor: move down \`\`dev\_number\`\` in xenapi * Fix placement API version history 1.1 title * placement: Perform build list of standard classes once * placement: REST API for resource classes * Add a retry loop to ResourceClass creation * conf: Remove deprecated service manager opts * support polling free notification testing * conf: Standardize formatting of virt * Updated from global requirements * Remove invalid tests for config option osapi\_compute\_workers * placement: adds ResourceClass.save() * Add CORS filter to versions pipeline * Create hyperv fake images under proper directory * Some improvement to the process doc * libvirt: Improve \_is\_booted\_from\_volume implementation * libvirt: Delete duplicate check when live-migrating * Add block\_device\_mapping\_v2.uuid to api-ref * Correct the sorting of datetimes for migrations * Fix pci\_alias that include white spaces * Raise DeviceNotFound detaching volume from persistent domain * Always use python2.7 for docs target * objects: Removes base code that already exists in o.vo * libvirt: Don't re-resize disks in finish\_migration() * libvirt: Never copy a swap disk during cold migration * libvirt: Rename Backend snapshot and image * libvirt: Cleanup test\_create\_configdrive * libvirt: Test disk creation in test\_hard\_reboot * libvirt: Rewrite \_test\_finish\_migration * guestfs: Don't report exception if there's read access to kernel * Fix for live-migration job * Handle maximum limit in schema for int and float type parameters * Port compute.test\_extended\_ip\* to Python 3 * Remove more tests from tests-py3.txt * Support detach interface with same MAC from instance * placement: adds ResourceClass.destroy() * Make test\_shelve work with CONF.use\_neutron=True by default * Restrict test\_compute\_cells to nova-network * Make test\_compute\_mgr work with CONF.use\_neutron=True by default * Make test\_compute\_api work with CONF.use\_neutron=True by default * Make nova.tests.unit.virt pass with CONF.use\_neutron=True by default * Make xenapi tests work with CONF.use\_neutron=True by default * Make libvirt unit tests work with CONF.use\_neutron=True by default * Make vmware unit tests work with CONF.use\_neutron=True * Explicitly use nova-network in nova-network network tests * Make test\_serversV21 tests work with neutron by default * neutron: handle no\_allocate in create\_pci\_requests\_for\_sriov\_ports * Add a releasenote for bug#1633518 * libvirt: prefer cinder rbd auth values over nova.conf * libvirt: cleanup network volume driver auth config * Fix wait for detach code to handle 'disk not found error' * [api-ref] Minor text clean-up, formatting * Convert live migration uri back to string * conf: improve libvirt lvm * conf: Trivial fix of indentation in 'api' * config options: improve libvirt utils * Never pass boolean deleted to instance\_create() * Port xenapi test\_xenapi to Python 3 * Port libvirt test\_driver to Python 3 * conf: Deprecate 'torrent\_' options * hacking: Use uuidutils or uuidsentinel to generate UUID * Replace uuid4() with uuidsentinel * Replace uuid4() with uuidsentinel * Replace uuid4() with uuidsentinel * Add os-start/stop functional negative tests * Port ironic unit tests to Python 3 * Port test\_keypairs to Python 3 * Port test\_metadata to Python 3 * Fix expected\_attrs kwarg in server\_external\_events * Check deleted flag in Instance.create() * Revert "Revert "Make n-net refuse to start unless using CellsV1"" * Revert "Log a warning when starting nova-net in non-cellsv1 deployments" * Default deleted if the instance from BuildRequest is not having it * docs: cleanup wording for 'SOFT\_DELETED' in api-guide * libvirt: Acquire TCP ports for console during live migration * conf: Deprecate 'remap\_vbd\_dev' option * conf: Covert StrOpt -> PortOpt * Check Config Options Consistency for xenserver.py * Add description for 2.9 microversion * Remove AdminRequired usage in flavor * Optional name in Update Server description in api-ref * List support for force-completing a live migration in Feature support matrix * Remove mox from nova/tests/unit/compute/test\_virtapi.py * Remove mox from nova/tests/unit/virt/test\_virt.py * Catch ImageNotAuthorized during boot instance * Remove require\_admin\_context * remove NetworkDuplicated exception * InstanceGroupPolicyNotFound not used anymore * UnsupportedBDMVolumeAuthMethod is not used * Port virt.xenapi.client.test\_session to Python 3 * vif: allow for creation of multiqueue taps in vrouter * conf: Move api options to a group * [scheduler][tests]: Fix incorrect aggr mock values * objects: Move 'vm\_mode' to 'fields.VMMode' * objects: Move 'hv\_type' to 'fields.HVType' * objects: Move 'cpumodel' to 'fields.CPU\*' * objects: Move 'arch' to 'fields.Architecture' * Show team and repo badges on README * Remove config option snapshot\_name\_template * Remove deprecated compute\_available\_monitors option * Improve help text for interval\_opts * config options: improve libvirt remotefs * Improve consistency in libvirt * Fix root\_device\_name for Xen * Move tag schema to parameter\_types.py * Remove tests from tests-py3.txt * hardware: Flatten functions * add host to vif.py set\_config\_\* functions * linux\_net: allow for creation of multiqueue taps * Fix notification doc generator * Config options: improve libvirt help text (2) * Placement api: Add informative message to 404 response * Remove sata bus for virtuozzo hypervisor * Fix a typo in nova/api/openstack/compute/volumes.py * Fix race in test\_volume\_swap\_server\_with\_error * libvirt: Call host connection callbacks asynchronously * conf: remove deprecated cert\_topic option * Return build\_requests instead of instances * conf: remove deprecated exception option * doc: Add guidline about notification payload * Port libvirt test\_imagecache to Python 3 * Port test\_serversV21 to Python 3 * encryptors: Introduce encryption provider constants * Add TODO for returning a 202 from the volume attach API * Fix typo in image\_meta.py & checks.py & flavor.py * Refactor two nearly useless secgroup tests * Transform instance.finish\_resize notifications * Remove redundant VersionedObject Fields * Transform instance.create.error notification * Transform instance.create notification * api-ref: add missing os-server-groups parameters * libvirt: prepare domain XML update for serial ports * [placement] increase gabbi coverage of handlers.resource\_provider * [placement] increase gabbi coverage of handlers.inventory * [placement] increase gabbi coverage of handlers.allocation * libvirt: do not return serial address if disabled on destination * Remove mox from api/openstack/compute/test\_fping.py * Add index on instances table across project\_id and updated\_at * Complete verification for os-floating-ips * libvirt: handle os-brick InvalidConnectorProtocol on init * placement: adds ResourceClass.get\_by\_name() * placement: adds ResourceClass.create() * Improve help text for libvirt options * Use byte string or utf8 depending on python version for wsgi * Separate CRUD policy for server\_groups * Stop using mox stubs in nova/tests/unit/virt/disk * Remove the description of compute\_api\_class option * Remove mox in virt/xenapi/image/test\_bittorrent.py * Add context param to confirm\_migration virt call * Use pick\_context\_manager throughout DB APIs * Database poison note * tests: verify cpu pinning with prefer policy * api-ref: Body verification for os-simple-tenant-usage.inc * remove additional param * Fix typo for 'infomation' * Remove unused code in nova/api/openstack/wsgi.py * conf: remove deprecated cells driver option * Fix detach\_interface() call from external event handler * Implement get and set aggregates in the placement API * Add {get\_,set\_}aggregates to objects.ResourceProvider * Log a warning when starting nova-net in non-cellsv1 deployments * Revert "Make n-net refuse to start unless using CellsV1" * HyperV: use os-brick for volume related operations * INFO level logging should be useful in resource tracker * hyper-v: wait for neutron vif plug events * Remove mox in nova/tests/unit/api/openstack/compute (1) * Use available port binding constants * Rename PCS to Virtuozzo in error message * [PY3] byte/string conversions and enable PY3 test * Fix mock arg list order in test\_driver.py * Add handle for 2 exceptions in force\_delete * Typo error about help libvirt.py * Updated from global requirements * Introduce PowerVMLiveMigrateData * Make n-net refuse to start unless using CellsV1 * Store security groups in RequestSpec * api-ref: body verification for abort live migration * Fix data error in api samples doc 15.0.0.0b1 ---------- * Typo error servers.py * Typo error allocations.yaml * Refactor console checks in live migration process * Remove mox in tests/unit/objects/test\_pci\_device * Add microversion cap information * No return for flavor destroy * neutron: actually populate list in populate\_security\_groups * Clarify the approval process of specless blueprints * Add uuid field to SecurityGroup object * api-ref: body verification for force\_complete server migration * api-ref: body verification for show server migration * api-ref: body verification for list server migrations * api-ref: example verification for server-migrations * api-ref: parameter verification for server-migrations * api-ref: method verification for server-migrations * [placement] Enforce min\_unit, max\_unit and step\_size * Remove ceph install/config functions from l-m hook * Ceph bits for live-migration job * Avoid unnecessary db\_calls in objects.Instance.\_from\_db\_object() * placement: genericize on resource providers * api-ref: fix server\_id in metadata docs * Add the initial documentation for the placement API * API Ref: update server\_id params * conf: fix formatting in wsgi * Transform requested secgroup names to uuids * conf: fix formatting in availability\_zone * libvirt: Cleanup spawn tests * Rename security\_group parameter in compute.API:create * Change database poison warning to an exception * Fix database poison warnings, part 25 * Updated from global requirements * Correct wrong max\_unit in placement inventory * Add flavor extra\_spec info link to api\_ref * Fix database poison warnings in resource providers * Placement api: 404 response do not indicate what was not found * Instance obj\_clone leaves metadata as changed * Add a no-op wait method to NetworkInfo * Move driver\_dict\_from\_config to libvirt driver * Create schema generation for AddressBase * conf: Improve help text for ldap\_dns\_opts * conf: Fix indentation of network * Fix config option types * libvirt: Fix incorrect libvirt library patching in tests * libvirt: refactor console device creation methods * libvirt: read rotated "console.log" files * libvirt: change get\_console\_output as prep work for bp/libvirt-virtlogd * Updated from global requirements * api-ref: Fix a 'port' parameter in os-consoles.inc * Update nova api.auth tests to work with newer oslo.context * Remove ironic instance resize from support matrix doc * [placement] add a placement\_aggregates table to api\_db * libvirt: remove py26 compat code in "get\_console\_output" * Change RPC post\_live\_migration\_at\_destination from cast to call * libvirt: add migration flag VIR\_MIGRATE\_PERSIST\_DEST * Revert MTU hacks for bug 1623876 * Pass MTU into os-vif Network object * Updated from global requirements * api-ref: fix addFloatingIp action docs * Fix a TypeError in notification\_sample\_base.py * Add functional api\_samples test for addFloatingIp action * Fix qemu-img convert image incompatability in alpine linux * migration.source\_compute should be unchanged after finish\_revert\_resize * Add explicit dependency on testscenarios * Updated from global requirements * cors: update default configuration in config * api-ref: remove user\_id from keypair list response and fix 2.10 * Don't parse PCI whitelist every time neutron ports are created * conf: Remove deprecated 'compute\_stats\_class' opt * conf: Remove extraneous whitespace * hardware: Split '\_add\_cpu\_pinning\_constraint' * libvirt: Delete the lase\_device of find\_disk\_dev\_for\_disk\_bus * EventReporterStub * Catch all local/catch-all addresses for IPv6 * placement: add ResourceClass and ResourceClassList * placement: raise exc when resource class not found * fix connection context manager in rc cache * pci: remove pci device from claims and allocations when freeing it * PCI: Fix PCI with fully qualified address * Log warning when user set improper config option value * libvirt: fix incorrect host cpus giving to emulator threads when RT * Transform instance.shutdown notifications * encryptors: Workaround mangled passphrases * Fix cold migration with qcow2 ephemeral disks * Updated from global requirements * config options: Improve help for SPICE * Remove manual handling of old context variables * api-ref: cleanup bdm.delete\_on\_termination field * api-ref: document the power\_state enum values * libvirt: Pass Host instead of Driver to volume drivers * conf: Attempt to resolve TODOs in scheduler.py * conf: Remove 'scheduler\_json\_config\_location' * Remove unreachable code * [api-ref] Fix path parameter console\_id * doc: add a note about conditional support for xenserver change password * Replace admin check with policy check in placement API * Fix import statement order * Fix database poison warnings, part 24 * libvirt: sync time on resumed from suspend instances * Fix database poison warnings, part 23 * Add RPC version aliases for Newton * Transform instance.unpause notifications * Catch NUMA related exceptions in create server API method * Notification object version test depends on SCHEMA * Updated from global requirements * Virt: add context to attach and detach interface * Imported Translations from Zanata * Stop using mox stubs in test\_shelve.py * Fix SAWarning in TestResourceProvider * Transform instance.unshelve notifications * TrivialFix: Fixed typo in 'MemoryPageSizeInvalid' exception name in docstrings * Make build\_requests.instance MediumText * Use six.wraps * Transform instance.resume notifications * Transform instance.shelve\_offload notifications * api-ref: fix image GET response example * Fix exception raised in exception wrapper * Add missing compat routine for Usage object * Updated from global requirements * Transform instance.power\_off notifications * conf: Removed TODO note and updated desc * Set 'last\_checked' flag if start to check scheduler file * Remove bandit.yaml in favor of defaults * Pre-add instance actions to avoid merge conflicts * Add swap volume notifications (error) * libvirt: add supported vif types for virtuozzo virt\_type * fix testcase test\_check\_can\_live\_migrate\_dest\_fills\_listen\_addrs * doc: Integrate oslo\_policy.sphinxpolicygen * Using get() method to prevent KeyError * tests: verify pci passthrough with numa * tests: Adding functional tests to cover VM creation with sriov * [placement] Add support for a version\_handler decorator * pci: in free\_device(), compare by device id and not reference * Mention API V2 should no longer be used * doc: Update libvirt-numa guide * Remove deprecated nova-manage vm list command * Remove block\_migration from LM rollback * PCI: Avoid looping over PCI devices twice * Update docs for serial console support * Remove conductor local api:s and 'use\_local' config option * Cleanup before removal of conductor local apis * compute: fixes python 3 related unit tests * XenAPI: Fix VM live-migrate with iSCSI SR volume * Fix the scope of cm in ServersTestV219 * Explicitly name commands target environments * \_run\_pending\_deletes does not need info\_cache/security\_groups * Updated from global requirements * hardware: Standarized flavor/image meta extraction * Tests: improve assertJsonEqual diagnostic message * api-ref: Fix wrong parameters in os-volumes.inc * Remove mox from unit/virt/libvirt/test\_imagebackend.py (1) * Send events to all relevant hosts if migrating * Catch error and log warning when not able to update mtimes * Clarify what changed with scheduler\_host\_manager * Add related options to floating ip config options * Correct bug in microversion headers in placement * Ironic Driver: override get\_serial\_console() * Updated from global requirements * Drop deprecated support for hw\_watchdog\_action flavor extra spec * Remove watchdog\_actions module * Removal of tests with different result depending on testing env * Add debug to tox environment * Document experimental pipeline in Nova CI * Update rolling upgrade steps from upgrades documentation * Add migrate\_uri for invoking the migration * Fix bug in "nova/tests/unit/virt/test\_virt\_drivers.py" for os-vif * Remove redundant req setting * Changed the name of the standard resource classes * placement: change resource class to a StringField * Remove nova/openstack/\* from .coveragerc * Remove deprecated nova-all binary * Fix issue with not removing rbd rescue disk * Require WebOb>=1.6.0 * conf: Remove deprecated \`\`use\_glance\_v1\`\` * Adding hugepage and NUMA support check for aarch64 * hacking: Use assertIs(Not), assert(True|False) * Use more specific asserts in tests * Add quota related tables to the api database * doc: add dev policy about no new metrics monitors * Always use python2.7 for functional tests * doc: note the future of out of tree support * docs: update the Public Contractual API link * Remove \_set\_up\_controller() from attach tests * Add InvalidInput handling for attach-volume * placement: add cache for resource classes * placement: add new resource\_classes table * hardware: Rework docstrings * doc: Comment on latin1 vs utf8 charsets * Improve help text for libvirt options * block\_device: Make refresh\_conn\_infos py3 compatible * Add swap volume notifications (start, end) * Add a hacking rule for string interpolation at logging * Stop using mox stubs in test\_snapshots.py * Stop using mox from compute/test\_multiple\_create.py * Don't attempt to escalate nova-manage privileges * Improve help text for upgrade\_levels options * Remove dead link from notification devref * Stop using mox stubs in test\_evacuate.py * Tests: fix a typo * ENOENT error on '/dev/log' * Patch mkisofs calls * conf: Group scheduler options * conf: Move consoleauth options to a group * Fix exception due to BDM race in get\_available\_resource() * Delete traces of in-progress snapshot on VM being deleted * Add error handling for delete-volume API * Catch DevicePathInUse in attach\_volume * Enable release notes translation * Fix drop\_move\_claim() on revert resize * Updated from global requirements * Fix API doc for os-console-auth-tokens * tests: avoid creation of instances dir in the working directory * config options: improve libvirt imagebackend * libvirt: fix DiskSmallerThanImage when block migrate ephemerals * Remove unnecessary credential sanitation for logging * Replace uuid4() with uuidsentinel * Change log level to debug for migrations pairing * Remove the duplicated test function * Move get\_instance() calls from try-except block * Allow running db archiving continuously * Add some extra logging around external event handling * Fix a typo in driver.py * Avoid Forcing the Translation of Translatable Variables * Fix database poison warnings, part 21 * libvirt: Fix BlockDevice.wait\_for\_job when qemu reports no job * Stop using mox from compute/test\_used\_limits.py * Updated from global requirements * Remove mox from tests/unit/conductor/tasks/test\_live\_migrate.py(3) * Remove mox from tests/unit/conductor/tasks/test\_live\_migrate.py(2) * Remove mox from tests/unit/conductor/tasks/test\_live\_migrate.py(1) * Fix calling super function in setUp method * refresh instances\_path when shared storage used * Prevent us from sleeping during DB retry tests * Fix error status code on update-volume API * conf: Trivial cleanup of console.py * conf: Trivial cleanup of compute.py * conf: Trivial cleanup of 'cells' * conf: Deprecate all topic options * Updated from global requirements * Disable 'supports\_migrate\_to\_same\_host' HyperV driver capability * Fix periodic-nova-py{27,35}-with-oslo-master * Report actual request\_spec when MaxRetriesExceeded raised * Make db archival return a meaningful result code * Remove the sample policy file * libvirt/guest.py: Update docstrings of block device methods * Fix small RST markup errors * [Trivial] changes tiny RST markup error * Add get\_context helper method * Use gabbi inner\_fixtures for better error capture * Hyper-V: Fixes os\_type image property requirement * conf: Cleanup of glance.py * conf: Move PCI options to a PCI group * Add Apache 2.0 license to source file * Updated from global requirements * Make releasenotes reminder detect added and untracked notes * [placement] reorder middleware to correct logging context * Fixes RST markup error to create a code-box * libvirt: support user password settings in virtuozzo * Removing duplicates from columns\_to\_join list * Ignore BuildRequest during an instance reschedule * Remove stale pyc files when running the cover job * Add a post-test-hook to run the archive command * [placement] ensure that allow headers are native strings * Fix a few typos in API reference * Fix typo on api-ref parameters * Fix typo in comment * Remove mox in nova/tests/unit/compute/test\_shelve.py (1) * Let schema validate image metadata type and key lengths * Remove scheduled\_at attribute from instances table * Fix database poison warnings, part 22 * Archive instance-related rows when the parent instance is deleted * Unwind circular import issue with api / utils * Fix database poison warnings, part 18 * Remove context object in oslo.log method * libvirt: pick future min libvirt/qemu versions * Improve consistency in serial\_console * conf: Improve consistency in scheduler opts * Move notification\_format and delete rpc.py * config options: improve libvirt smbfs * Fix database poison warnings, part 17 * Updated from global requirements * Fix database poison warnings, part 16 * Hyper-V: Adds Hyper-V UEFI Secure Boot * Stop overwriting thread local context in ClientRouter * Cleanup some redundant USES\_DB\_SELF usage * Fix database poison warnings, part 20 * Fix database poison warnings, part 19 * use proper context in libvirt driver unit test * Renamed parameters name in config.py * [placement] Allow both /placement and /placement/ to work * numa: Fixes NUMA topology related unit tests * VMware: Do not check if folder already exists in vCenter * libvirt: fixes python 3 related unit tests * Clean up stdout/stderr leakage in cmd testing * Capture stdout in for test\_wsgi:test\_debug * Add destroy method to the RequestSpec object * Remove last sentence * VMware: Enforce minimum vCenter version of 5.5 * test:Remove unused method \_test\_get\_test\_network\_info * Determine disk\_format for volume-backed snapshot from schema * Fix database poison warnings, part 15 * Fix CONTAINER\_FORMATS\_ALL to have ova insteadk of vmdk * Config options consistency of ephemeral\_storage.py * docs: Clarify sections & note on filter scheduler * Fixes python 3 unit tests * Add Hyper-V storage QoS support * Add blocker migration to ensure for newton online migrations * hacking: Always use 'assertIs(Not)None' * Hyper-V: fix image handling when shared storage is being used * Annotate online db migrations with cycle added * properly capture logging during db functional tests * [placement] 404 responses do not cause exception logs * Fix pep8 E501 line too long * Remove unused code * Replace uuid4() with generate\_uuid() from oslo\_utils * Return instance of Guest from method write\_instance\_config * Mock.side\_effects does not exist, use Mock.side\_effect instead * Remove redundant str typecasting * VMware: deprecate wsdl\_location conf option * Remove nova.image.s3 and configs * Remove internal\_id attribute from instances table * Fix stdout leakage during opportunistic db tests * Updated from global requirements * Improve help text for glance options * libvirt: ignore conflict when defining network filters * Add placeholder DB migrations for Ocata * Remove PCI parent\_addr online migration * Make nova-manage online migrations more verbose * Fix check\_config\_option\_in\_central\_place * Skip malformed cookies * Fix database poison warnings, part 14 * Standardize output capture for nova-manage tests * Work around tests that don't use nova.test as a base * Don't print to stdout when executing hacking checks * Make test logging setup fixture disable future setup * Fix typo in docsting in test\_migrations.py * Remove support for deprecated driver import * conf: Add 'deprecated\_reason' to osapi opts * Add hacking checks for xrange() * Using assertIsNone() instead of assertEqual(None) * move os\_vif.initialize() to nova-compute start * Add deprecated\_since parameter * [placement] Manage log and other output in gabbi fixure * Reduce duplication and complexity in format\_dom * Fix invalid exception mock for InvalidNUMANodesNumber * libvirt: fix serial console not correctly defined after live-migration * Add more description when service delete * trivial: Rewrap guide at 79 characters * plugins/xenserver: Add '.py' extension * conf: Fix opt indentation for scheduler.py * conf: Reorder scheduler opts * Updated from global requirements * Revert "Set 'serial' to new volume ID in swap volumes" * [placement] Adjust the name of the gabbi tests * placement: refactor instance translate function * Move wsgi-intercept to test-requirements.txt * Add missing slash to dir path * Expand feature classification matrix with gate checks * [placement] Stringify class and provider uuid in error * [api-ref] Correct parameter type * Remove default=None for config options * libvirt: cleanup never used migratable flag checking * Remove unnecessary setUp and tearDown * Remove unused parameters * Remove duplicate key from dictionary * Updated from global requirements * placement: refactor translate from node to dict * stub out instances\_path in unit tests * Add a new release note * XenAPI: add unit test for plugin test\_pluginlib\_nova.py * Add link ref to nova api concept doc * libvirt: Use the recreated disk.config.rescue during a rescue * Add members in InstanceGroup object members field * Updates URL and removes trailing characters * Stop ovn networking failing on mtu * Update reno for stable/newton * Don't pass argument sqlite\_db in method set\_defaults 14.0.0.0rc1 ----------- * Override MTU for os\_vif attachments * Fix object assumption in remove\_deleted\_instances() * Add is\_cell0 helper method * Set a bigger TIMEOUT\_SCALING\_FACTOR value for migration tests * Update minimum requirement for netaddr * [placement] consolidate json handling in util module * Fix unnecessary string interpolation * Handle TypeError when disabling host service * Fix an error in archiving 'migrations' table * Remove deprecated flag in neutron.py * Clean up allocation when update available resources * [placement] Mark HTTP error responses for translation * [placement] prevent a KeyError in webob.dec.wsgify * Body Verification of api-ref os-volume-attachments.inc * Add functional regression test for bug 1595962 * Use tempest tox with regex first * libvirt: add ps2mouse in choice for pointer\_model * Doc fix for Nova API Guide, added missing word * conf: Make list->dict conversion more specific * Revert "tox: Don't create '.pyc' files" * Improve help text for xenapi\_session\_opts * Improve help text for service options * Correct image.inc for heading * Complete verification for os-cloudpipe.inc * Use assertEqual() instead of assertDictEqual() * Fix typo of stevedore * [placement] functional test for report client * Add regression test for immediate server name update * Fixed suspend for PCI passthrough * libvirt: Rewrite test\_rescue and test\_rescue\_config\_drive * Guard against failed cache refresh during inventory * More conservative allocation updates * [placement] Correct serialization of inventory collections * Switching expression order within if condition * Correct sort\_key and sort\_dir parameter for flavor * Correct address, version parameter in ips.inc * Use to\_policy\_values for policy credentials * Doc fix for Nova API Guide, fixed wording * Nova shelve creates duplicated images in cells * More conservative inventory updates * Fix server group name on api-ref * Update BuildRequest if instance currently being scheduled * Fix reno for removal of nova-manage service command * Add note about display\_name in \_populate\_instance\_names * Extended description for sync\_power\_state\_pool\_size option * Use recursive obj\_reset\_changes in BuildRequest * HyperV: ensure config drives are copied as well during resizes * [placement] make PUT inventory consistent with GET * Fill destination check data with VNC/SPICE listen addresses * Revert "libvirt: move graphic/serial consoles check to pre\_live\_migration" * Fix MonitorMetric obj\_make\_compatible * Using assertIsNotNone() instead of assertIsNot(None,) * [api-ref] fix availability\_zone for server create * Fix SafeConfigParser DeprecationWarning in Python 3.2 * Set 'serial' to new volume ID in swap volumes * Fix policy tests for project\_id enforcement * neutron: don't trace on port not found when unbinding ports * Remove RateLimitFault class * Rate limit is removed , update doc accordingly * Fix a typo from ID to Id * context: change the name 'rule' to 'action' in context.can * Add description for v2.20 changes in api-ref * Add sync\_power\_state\_pool\_size option * Additional logging for placement API * Fix resizing in imagebackend.cache() * [placement] cleanup some incorrect comments * Updated from global requirements * Compute: ensure that InvalidDiskFormat is handled correctly * Add keypairs\_links into resp * Add hypervisor\_links into hypervisor v2.33 * Throw exception if numa\_nodes is not set to integer greater than 0 * Add reserved param for v2.4 * Add more description on v2.9 history * libvirt: inject files when config drive is not requested * Pin maximum API version of microversion * XenAPI: resolve the fetch\_bandwidth failure * Fix api-ref doc for server-rebuild * [api-ref] Update configuration file * fix broken link in api-ref * Trivial fix remove not used var in parameters * Trival fix a typo * Increase BDM column in build\_requests table * VMware: Refactor the image transfer * Pass GENERATE\_HASHES to the tox test environment * [placement] add two ways to GET allocations * Handle ObjectActionError during cells instance delete * [placement] Add some tests ensuring unicode resource provider info * cleanup: separate the creation of a local root to it's own method * standardize release note page ordering * Remove misleading warning message * Add deprecated\_reason for use\_usb\_tablet option * db: retry on deadlocks while adding an instance * virt: handle unicode when logging LifecycleEvents * Ensure ResourceProvider/Inventory created before add Allocations record * Libvirt: Correct PERF\_EVENTS\_CPU\_FLAG\_MAPPING * Enable py3 tests for unit.api.openstack.compute.test\_console\_output * Implement setup\_networks\_on\_host for Neutron networks * Add tests for safe\_connect decorator * libvirt: improve logging for shared storage check * Cleanup allocation todo items * [placement] Allow inventory to violate allocations * Refresh info\_cache after deleting floating IP * Remove deprecated configuration option network\_device\_mtu * Example & Parameter verification of os-security-group-default-rules.inc * [placement] clean up some nits in the requestlog middleware * correctly join the usage to inventory for capacity accounting * Annotate db models that have moved to the nova\_api db * Stop using mox in virt/libvirt/test\_imagecache.py * Stop using mox in unit/fake\_processutils.py * [api-ref]: Correcting server\_groups\_list parameter's type * Fix race condition bug during live\_snapshot * ironic: Rename private methods for instance info * [placement] Fix misleading comment in wsgi loader * Remove mox from api/openstack/compute/test\_networks.py * Remove mox from api/openstack/compute/test\_rescue.py * Remove mox from api/openstack/compute/test\_image\_size.py * Remove mox from api/openstack/compute/test\_extended\_ips.py * Remove mox from nova/tests/unit/virt/xenapi/test\_driver.py * Remove mox from unit/api/openstack/compute/test\_hide\_server\_addresses.py * fixing block\_device\_mapping\_v2 data\_type * Updated from global requirements * Add bigswitch command to compute rootwrap filters * libvirt: add hugepages support for Power * incorrect description in nova-api.log about quota check * Removed enum duplication from nova.compute * Remove unused conf 14.0.0.0b3 ---------- * Remove deprecated cinder options * Simple instance allocations from resource tracker * Add support for allocations in placement API * Add create\_all and delete\_all for AllocationList * Pull from cell0 and build\_requests for instance list * Remove hacked test that fails with latest os-brick * Report compute node inventories through placement * Delete BuildRequest regardless of service\_version * Fix service version lookups * Remove BuildRequest when scheduling fails * Run cell0 db migrations during nova-manage simple\_cell\_setup * Move cell message queue switching and add caching * Add basic logging to placement api * Fixed indentation * Update placement config reno * Ignore generated merged policy files * Register keystone opts for placement sample config * Remove deprecated neutron options * ironic\_host\_manager: fix population of instances info on start * Eliminate additional DB queries in nova lists * Remove the incomplete wsgi script placement-api.py * ironic\_host\_manager: fix population of instances info on schedule * rt: ensure resource provider records exist from RT * Allow linear packing of cores * Return 400 error for non-existing snapshot\_id * create placement API wsgi entry point * Fix qemu version check * Documentation for the vendordata reboot * Add more vd2 unit tests * Add a TODO and add info to a releasenote * [placement] remove a comment that is no longer a todo * Make api-ref bug link point to nova * Api-ref: Improve os-migrateLive input parameters * Fix a typo in the driver.py file * New discover command to add new hosts to a cell * Clean up instance mappings, build requests on quota failure * Not allow overcommit ratios to be negative * Updated from global requirements * Use StableObjectJsonFixture from o.vo * test\_keypairs\_list\_for\_different\_users for v2.10 * Fix using filter() to meet python2,3 * Emit warning when use 'user\_id' in policy rule * Adds nova-policy-check cmd * Reduce code complexity - api.py * Use cls in class method instead of self \_delete\_domain is a class method, so cls should be used instead of self * Revert "Optional separate database for placement API" * Changed exception catching order * Add BuildRequestList object * In InventoryList.find() raise NotFound if invalid resource class * Updated from global requirements * Imported Translations from Zanata * TrivialFix: Remove cfg import unused * Add oslopolicy script runs to the docs tox target * Add entry\_point for oslo policy scripts * Tests: use fakes.HTTPRequest in compute tests * Remove conversion from dict to object from xenapi live\_migration * Hyper-V: properly handle shared storage during migrations * TrivialFix: Remove logging import unused * Hyper-V: properly handle UNC instance paths * Get ready for os-api-ref sphinx theme change * Update link in general purpose feature matrix * List system dependencies for running common tests * [api-ref]: Update link reference * Abort on HostNotCompatibleWithFixedIpsClient * Add warning if metadata\_proxy\_shared\_secret is not configured * devspec: remove unused dev\_count in devspec * TrivialFix: removed useless storing of sample directory * [api-guide]: Update reference links * Fix link reference in Nova API version * Provide more duplicate VLAN network error info * Correct microversions URL in api\_plugins.rst * Create Instance from BuildRequest if not in a cell * Added todo for deletion LiveMigrateData.detect\_implementation usage * driver.pre\_live\_migration migrate\_data is always an object * Manage db sync command for cell0 * Updated common create server sample request because of microversion 2.37 * Remove TODO for service version caching * removed db\_exc.DBDuplicateEntry in bw\_usage\_update * Add online migration to move instance groups to API database * Remove locals() for formatting strings * Hyper-V: update live migrate data object * Config options consistency of notifications.py * Add networks to quota's update json-schema when network quota enabled * rt: isolate report and query sched client tests * rt: remove ComputeNode.create\_inventory * rt: rename test\_tracker -> test\_resource\_tracker * rt: remove old test\_resource\_tracker.py * Updated from global requirements * Remove deprecated security\_group\_api config option * Added min\_version field to 'host\_status' in 'api-ref' * Make InstanceGroup object favor the API database * Doc: Update PCI configuration options * Don't maintain user\_id and project\_id in context * Add support for usages in the placement API * Add a Usage and UsageList object * Add support for inventories to placement API * Check capacity and allocations when changing Inventory * Add release note to warn about os-brick lock dir * config options: improve help netconf * Config options consistency for consoleauth.py * Support Identity v3 when connecting to Ironic * Copy edit feature classification * don't report network limits after 2.35 * Adding details in general purpose feature matrix [1] * Improve placement API 404 and 405 response tests * doc: fix disk=0 use case in flavor doc * Config options: improve libvirt help text (1) * Dump json for nova.network.model.Model objects * Improve error message for empty cached\_nwinfo * Return HTTP 400 on list for invalid status * Move some flavor fakes closer to where they are being used * Replace flavors.get\_all\_flavors\_sorted\_list() with object call * Refactor and objectify flavor fakes used in api tests * Fix 'No data to report' error * Change api-site to v2.1 format * Refuse to run simple\_cell\_setup on CellsV1 * In placement API send microversion header when error * libvirt: Improve mocking of imagebackend disks * Updated flags for XVP config options * Add unit tests for nova.virt.firewall.IpTablesFirewallDriver (Part 4) * [libvirt] Remove live\_migration\_flag & block\_migration\_flag * placement: add filtering by attrs to resource\_providers * Add support for resource\_providers urls * Remove nova/api/validator.py * Updated from global requirements * Change default value of live\_migration\_tunnelled to False * Remove code duplication in enums * [vncproxy] log for closing web is misleading * Return None in get\_instance\_id\_by\_floating\_address * Make simple\_cell\_setup work when multiple nodes are present * Add REST API support for get me a network * plugins/xenserver: Resolve PEP8 issues * Fix migration list + MigrationList operation * rt: Create multiple resize claim unit test * rt: Refactor unit test for trackable migrations * VIF: add in missing translation * Clean imports in code * Fix neutron security group tests for 5.1.0 neutronclient * modify description of "Inject guest networking config" * os-vif: do not set Route.interface if None * Check opt consistency for neutron.py * Improve help text for compute manager options * Make simple\_cell\_setup idempotent * Add cell\_v2 verify\_instance command * Remove unnecessary debug logs of normal API ops * Replace mox with mock in test\_validate\_bdm * Replace mox with mock in test\_cinder * Allow Nova Quotas to be Disabled * Allow authorization by user\_id for server evacuate * Allow authorization by user\_id for server update * Allow authorization by user\_id for server delete * Allow authorization by user\_id for server changePassword action * Update binding:profile for SR-IOV ports on resize-revert * Verified deprecation status for vnc options * Add tests for user\_id policy enforcement on trigger\_crash\_dump * Allow authorization by user\_id for server shelve action * Allow authorization by user\_id for force\_delete server * Allow authorization by user\_id for server resize action * Allow authorization by user\_id for server pause action * Add tests for user\_id policy enforcement on stop * Fix consistency in crypto conf * Add placement API web utility methods * Improve help text for XenServer Options * Improve help text for xenapi\_vm\_utils\_opts * network: fix handling of linux-bridge in os-vif conversion * Fix consistency in API conf * Improve consistency in WSGI opts * Add unit tests for nova.virt.firewall.IpTablesFirewallDriver (Part 3) * Improve help text for xenapi\_opts * Maintain backwards compat for listen opts * Allow authorization by user\_id for server rescue action * Allow authorization by user\_id for server rebuild * Allow authorization by user\_id for server suspend action * Allow authorization by user\_id for server lock action * Optional separate database for placement API * Replace fake\_utils by using Fixture * virt/image: between two words without a space in output message * config options: improve help text of database (related) options (2/2) * config options: improve help text of database (related) options (1/2) * Remove hacking check [N347] for config options * Skipping test\_volume\_backed\_live\_migration for live\_migration job * rt: New unit test for rebuild\_claim() * List instances for secgroup without joining on rules * Improve help text for vmwareapi\_opts * Updated from global requirements * vnc host options need to support hostnames * Removed flag "check\_opt\_group\_and\_type" from pci.py * Removed flag "check\_opt\_group\_and\_type" * libvirt: convert over to use os-vif for Linux Bridge & OVS * Remove left over conf placeholders * libvirt: Rename import of nova.virt.disk.api in driver * Fix server operations' policies to admin only * Add support for vd2 user context to other drivers * api-ref: Example verification for os-simple-tenant-usage.inc * Remove unused exception: ImageNotFoundEC2 * Fix opt description for s3.py * virt/hardware: Check for threads when "required" * Improve consistency in VNC opts * Improve help text for compute\_opts * Config options: Improve help text for console options * Config options: Consistency check for remote\_debug options * docs: update code-review guide for config options * Add separate create/delete policies to attach\_interface * Fix handling of status in placement API json\_error\_formatter * Use constraints for all tox environments * Move JSON linting to pep8 * HyperV: remove instance snapshot lock * rt: Move monitor unit tests into test\_tracker * rt: Move unit tests for update usage for instance * rt: Move unit tests for update mig usage * rt: Remove useless unit test in resource tracker * rt: Remove dup tests in test\_resource\_tracker * rt: Remove incorrect unit test of resize revert * rt: Refactor test\_dupe\_filter unit test * rt: Remove duplicate unit test for missing mig ctx * rt: Refactor resize claim abort unit test * rt: Refactor resize\_claim unit test * Set enforce\_type=True in method flags * Use constraints for releasenotes * Add some logging and a comment for shelve/unshelve operations * Run shelve/shelve\_offload\_instance in a semaphore * Check opt consistency for api.py * Allow empty CPU info of hypervisors in API response * Config options consistency of rdp.py * Improve consistency in workarounds opts * Refresh README and its docs links * Correct InventoryList model references * instance.name should be blank if instance.id is not set * Cells: Handle delete with BuildRequest * Add NoopConductorFixture * Make notification objects use flavor capacity attributes * Fix busted release notes * config options: Improve help for conductor * Config options: base path configuration * PCI: Fix network calls order on finish\_revert\_resize() * Remove deprecated legacy\_api config options * Config Options: Improve help text for Ipv6 options * Update tags for Image file url from filesystems config option * Check options consistency in hyperv.py * Improve help text for floating ips options * config options: Improve help for base * Improve consistency in API * cleanup: some update xml cases in test\_migration * Use stashed volume connector in \_local\_cleanup\_bdm\_volumes * Ironic: allow multiple compute services * api-ref: Parameter verification for os-simple-tenant-usage.inc * Ironic: report node.resource\_class * network: introduce helper APIs for dealing with os-vif objects * ironic: Cleanup instance information when spawn fails * update wording around pep8 exceptions * Remove backward compatibility with pre-grizzly releases * use the HostPortGroupSpec.vswitchName instead of HostPortGroup.vswitch.split * Replace functions 'Dict.get' and 'del' with 'Dict.pop' * Updated from global requirements * Strict ImageRef validation to UUID only * Add the ability to configure glanceclient debug logging * Deprecate cert option * Merged barbican and key\_manager conf files into one * Config options consistency of pci.py * config option: rename libvirt iscsi\_use\_multipath * Fix require thread policy for multi-NUMA computes * Allocate PCI devices on migration * TrivialFix: Fixed a typo in nova/test.py * Updated from global requirements * Improve help text of image\_file\_url * Ironic: enable multitenant networking * libvirt: Remove some unnecessary mocking in test\_driver * libvirt: Pass object to \_create\_images\_and\_backing in test * libvirt: Reset can\_fallocate in test setUp() * libvirt: Create console.log consistently * Fixed invalid UUIDs in unit tests * Remove deprecated manager option in cells.py * Refactor deallocate\_fixed tests to use one mock approach instead of three * Improve consistency in virt opts * Updated header flag in SSL opts * Updated from global requirements * Don't cache RPC pin when service\_version is 0 * Imported Translations from Zanata * Remove white space between print and () * Flavor: correct confusing error message about flavorRef * Consistency changes for osapi config options * Fixed typos in nova: compute, console and conf dir * Add objects.ServiceList.get\_all\_computes\_by\_hv\_type * Add InstanceList.get\_uuids\_by\_host() call * Conf options: updated flags for novnc * Address feedback on cell-aggregate-api-db patches * Updated from global requirements * Add data migration methods for Aggregate * Config options: Consistency check for quota options * Add server name verification in instance search * Fix typo in DeviceDetachFailed exception message * Straddle python-neutronclient 5.0 for testing * Initialise oslo.privsep early in main * Cells: Simple setup/migration command * Aggregate create and destroy work against API db * Make Aggregate.save work with the API db * Improve help text for vmware * Config options consistency of exceptions.py * Help text for the mks options * Trivial option fixes * Properly quote IPv6 address in RsyncDriver * rbd\_utils: wrap blocking calls in tpool.Proxy() * Resolve PCI devices on the host during Guest boot-up * Fixed typos in nova, nova/api, nova/cells directory * Fix misspellings * Trivial: add 'DEPRECATED' for os-certificates API ref * Mention proxy API deprecation microversion in api-ref * xenserver: fix an output format error in cleanup\_smp\_locks * Add log for instance without host field set * Improve consistency in crypto * Deprecate barbican options * Improve consistency in flavors * Improve the help text for the guestfs options * Reminder that release notes are built from commits * Add initial framing of placement API * Add missing ComputeHostNotFound exception in live-migration * Free new pci\_devices on revert-resize * Use oslo\_config new type PortOpt for port options * Updated from global requirements * Remove unused imports in api/openstack/fakes.py * Add docs about microversion testing in Tempest * Remove leftover list\_opts entry points * Remove nova.cache\_utils oslo.config.opts entrypoint * Remove nova.network namespace from nova-config-generator.conf * Remove neutronv2.api oslo.config.opt entry point * Follow up on Update binding:profile for SR-IOV ports * Improve consistency in servicegroup opts * Improve help text for cloudpipe * Remove the useless version calculation for proxy api deprecated version * numa: remove the redundant check for hw\_cpu/hw\_mem list * Add support for oslo.context 2.6.0 * Update tags for Cache config option * Remove unused validation code for quota\_sets * Revert "Don't assert exact to\_dict output" * cleanup\_live\_migration\_destination\_check spacing * Default image.size to 0 when extracting v1 image attributes * Add details to general purpose feature matrix * Adding functional tests for 2.3 microversion * compute: Skip driver detach calls for non local instances * libvirt: Fix invalid test data * libvirt: Fix fake \_disk\_info data in LibvirtDriverTestCase * Don't set empty kernel\_id and ramdisk\_id to glance image * Config options consistency for cell.py * Refuse to have negative console ttls * Option Consistency for availability\_zone.py * Add a small debug line to show selection location * Fix wrong override value of config option vswitch\_name * Fix wrong override value of config option proxyclient\_address * Call release\_dhcp via RPC to ensure correct host * Adjust MySQL access with eventlet * Improve consistency in cert * Updated from global requirements * rt: don't log pci\_devices twice when updating resources * Config options consistency for configdrive.py * Remove deprecated ironic.api\_version config option * Improve the help text for compute timeout\_opts * Deprecate the nova-manage commands that rely on nova-network * Improve consistency in xenserver * Add the 'min' param to IntOpts where applicable * Remove unused config option 'fake\_call' * Make Aggregate metadata functions work with API db * Use deprecated\_reason for network quota options * "nova list-extensions" not showing summary for all * Fix typos in deprecates-proxy-apis release note * Enable deferred IP on Neutron ports * Improve help text for XenServer pool opts * remove config option iqn\_prefix * Deprecate os-certificates * Update RequestSpec nested flavor when a resize comes in * New style vendordata support * Add metadata server fixture * Improve help text for quota options * Improve help text for consoleauth config options * Bump Microversion to 2.36 for Proxy API deprecation * api: use 'if else' instead of 'try exception' to get password value * Add better help to rdp options * Adding details in general purpose feature matrix * Enables Py34 tests for unit.api.openstack.compute.test\_server\_actions * Filter network related limits from limits API * Filter network related quotas out of quotas API * Deprecate Baremetal and fping API * Deprecate volumes related APIs * Deprecate SecurityGroup related proxy API * Deprecated floating ip related proxy APIs * Complete verification of os-instance-actions.inc * Check opt group and type for nova.conf.service.py * Fix links to network APIs from api-ref * Add comment about how status field changed * Fix database poison warnings, part 13 * Deprecate network quota configuration * Verify os-aggregates.inc on sample files * Cleanup: validate option at config read level * :Add missing %s in print message * api-ref: unify the no response output in delete operation * Return 400 when SecurityGroupCannotBeApplied is raised * network: handle forbidden exception from neutron * Avoid update resource if compute node not updated * Document update\_task\_state for ComputeDriver.snapshot * Config Option consistency for crypto.py * Fix database poison warnings, part 12 * Don't check cinder volume states during attach * Clean up test\_check\_attach\_availability\_zone\_differs * Fix database poison warnings, part 11 * Fix opt description and indentation for flavors.py * Remove redundant flag value check * Improve help context of ironic options * Update instance node on rebuild only when it is recreate * Remove unneeded bounds-checking code * Improve the help text for the linuxnet options (4) * Don't assert exact to\_dict output * Fix database poison warnings, part 10 * config options: help text for enable\_guestfs\_debug\_opts * Fix database poison warnings, part 9 * Improve help text of s3 options * Remove deprecated config option volume\_api\_class * Fix inappropriate notification send * libvirt: Fix signature and behaviour of fake get\_disk\_backing\_file * libvirt: Pass path to Image base class * Remove max\_size argument to images.fetch and fetch\_to\_raw * Update tox.ini: Constraints are possible for api\* jobs * Separate api-ref for list security groups by server * Deprecate FixedIP related proxy APIs * Deprecated networks related proxy APIs * Check option descriptions and indentations for configdriver.py * Make Aggregate host operations work against API db * libvirt: open RBD in read-only mode for read-only operations * Remove unnecessary code added for ec2 deprecation * Enhance notification doc generation with samples * Depracate Images Proxy APIs * Correct the network config option help text * config options: improve help for noVNC * Replace deprecated LOG.warn with LOG.warning * Fixed typos in api-ref and releasenotes directory * Fix invalid import order and remove import \* * Improve the help text for the network options (4) * Add async param to local conductor live\_migrate\_instance * libvirt: update guest time after suspend * libvirt: Modify the interface address object assignment * Update binding:profile for SR-IOV ports * Port nova test\_serversV21.Base64ValidationTest to Python 3 * Refactor instance action notification sample test * Config option update tasks for availability\_zone * Expand initial feature classification lists * Add prototype feature classification matrix * [libvirt] Live migration fails when config\_drive\_format=iso9660 * Modify docstring of numa\_get\_reserved\_huge\_pages method * Use constraints for coverage job * Remove compute host from all host aggregates when compute service is deleted * Fix incorrect cellid numbering for NUMA memnode * Fix opt descripton for cells.py * Fix host mapping saving * Example and body verification of os-quota-sets.inc * Remove deprecated network\_api\_class option * neutron: destroy VIFs if allocating ports fails * Validate pci\_passthrough\_whitelist when starting n-cpu * Rename compute manager \_check\_dev\_name to \_add\_missing\_dev\_names * Remove unused context argument to \_default\_block\_device\_names() * Fix typo in AdminPasswordController 14.0.0.0b2 ---------- * Use from\_environ when creating a context * Pass kwargs through to base context * Fix opt description and check deprecate status for hyperv.py * VMware: Enable disk.EnableUUID=True in vmx * hyper-v: device tagging * Add release notes for notification transformation * Assert reservation\_id in notification sample test * Remove redundant DEPRECATED tag from help messages * Fix PUT server tag 201 to return empty content * Clean up helper methods in ResourceProvider * Transform instance.restore notifications * neutron: delete VIFs when deallocating networking * Add VirtualInterface.destroy() * Make notifications module use flavor capacity attributes * Make ironic driver use flavor fields instead of legacy ones * Make xenapi driver use flavor fields instead of legacy ones * Make libvirt driver use flavor fields instead of legacy ones * Make hyperv driver use flavor fields instead of legacy ones * Make vmware driver use flavor fields instead of legacy ones * Bump service version for BuildRequest deletion * Stop instance build if BuildRequest deleted * Add block\_device\_mappings to BuildRequest * Improve help text of flavors config options * Improve help text for cinder config options * Microversion 2.35 adds keypairs pagination support * Fix up legacy resource fields in simple-tenant-usage * Use flavor attributes instead of deprecated instance resources * Typo fix: remove multiple whitespace * network: handle unauthorized exception from neutron * Fix the broken links * 'limit' and 'marker' support for db\_api and keypair\_obj * Improve help text for exceptions * Improve help text for compute running\_deleted\_opts * rest api version bumped for async pre live migration checks * Add user\_id request parameter in os-keypairs list * Revert "Detach volume after deleting instance with no host" * Don't overwrite MarkerNotFound error message * tox: Use conditional targets * tox: Don't create '.pyc' files * Improve help text for allocation\_ratio\_opts * Release note for vzstorage volume driver * Fix typo in \_update\_usage\_from\_migrations * Transform instance.resize notifications * Refactors nova.cmd utils * Replace DOS line ending with UNIX * migration volume failed for invalid type * api-ref: fix wrong description about response example in os-hypervisor * api-ref: body verification of os-agents * Fix wrong JSON format in API samples * Implement ResourceProvider.destroy() * Add Allocation and AllocationList objects * Deprecate nova-manage vm list command * Remove live-migration from nova-manage man page * Deprecate the quota\_driver config option * Allow irrelevant,self-defined specs in ComputeCapacityFilter * Transform instance.pause notifications * Fix opt description for scheduler.py * Verify "needs:check\_deprecation\_status" for serial\_console.py * API: catch InstanceNotReady exception * Transform instance.shelve notifications * Replace unicode with six.text\_type * Added support for new block device format in vmops * XenAPI: add unit test for plugin bandwidth * api-ref: unify the delete response infomation * Add nova-manage quota\_usage\_refresh command * Quota changes for the nova-manage quota\_usage\_refresh command * Remove DictCompat from SecurityGroup * Replace use of eval with ast.literal\_eval * libvirt: fix missed test in migration * Improve the help text for the network options (3) * Correct reraising of exception * api-ref: Parameter verification for servers-actions.inc Part 1 * Body verification of os-interface.inc * Parameter verification of os-instance-actions.inc * xvp: change the default xvp conf path to CONF.xvp group * libvirt:code flow problem in wait\_for\_job * Clean up service version history comments * Add a ResourceProviderList object * Refactor block\_device\_mapping handling during boot * Remove spaces around keyword argument * Use ovo in test\_obj\_make\_compatible() * Improve the help text for the network options (2) * Update mutable-config reno with LM timeout params * Added better error messages during (un)pinning CPUs * Remove duplicate policy test * Complete verification for os-virtual-interfaces * api-ref: os-volumes.inc * Enable python34 tests for nova.tests.unit.pci.test\_manager and test\_stats * api-ref: merge multiple create to servers.inc * Improve the help text for configdrive options * Revert "Remove manual creation of console.log" * Fix invalid import order * Fix invalid import order * Fix invalid import order * config options: improve help for notifications * Fix invalid import order * Fix invalid import order * Remove unused itype parameter from get migration context * Do not try to backport when db has older object version * Detach volume after deleting instance with no host * Transform instance.suspend notifications * Hacking check for \_ENFORCER.enforce() * Remove final use of \_ENFORCER.enforce * Hacking check for policy registration * Extract \_update\_ports\_for\_instance * Extract port create from allocate\_for\_instance * Improve help text for resource tracker options * Transform instance.power\_on notifications * Add a py35 environment to tox * api-ref: add note about os-certificates API * XenAPI: UT: Always mock logging configuration * Fix api\_validation for Python 3 * api-ref: verify assisted-volume-snapshots.inc * Delete reduplicate code in test\_compute\_mgr.py * Port test\_hacking to Python 3 * Fix comment for version 1.15 ComputeNodeList * Microversion 2.33 adds pagination support for hypervisors * VMware: create vif with resource limitations * policy: clean-up * Make VIF.address unique with port id for neutron * Device tagging metadata API support * trivial: remove unnecessary mock from servers API test * Return HTTP 200 on list for invalid status * Complete verification for os-floating-ips-bulk * Transform instance.update notification * Pre-add instance actions to avoid merge conflicts * Transform instance.delete notifications * XenAPI: Add UT for independent compute option * Log DB exception if VIF creation fails * Fixes compute API unit tests for python3 * Reduce complexity in \_stub\_allocate\_for\_instance * Reorder allocate\_for\_instance preamble * Make \_validate\_requested\_network\_ids return a dict * Extract \_validate\_requested\_network\_ids * Create \_validate\_requested\_port\_ids * Extract \_filter\_hypervisor\_macs * Always call port\_update in allocate\_for\_instance * Device tagging API support * Mapping power\_state from integer to string * Compute manager device tagging support * trivial: comment about vif object address field * Example verification for os-fixed-ips.inc * Revert "Detach volume after deleting instance with no host" * policy: Replaces 'authorize' in nova-api (part 5) * libvirt: add todo about bdms in \_build\_device\_metadata * libvirt: virtuozzo instance rescue mode support * api-ref: os-certificates.inc * policy: Replaces 'authorize' in nova-api (part 4) * Make LM timeout params mutable * Help text for the ephemeral storage options * Config Options: Improve help text for debugger * Make Ironic options definitions consistent * Fix some typos * Add namespace oslo.db.concurrency in nova-config-generator.conf * Remove mox in tests/unit/objects/test\_quotas * Remove network information from IOVisor vif * Add automatic switching to postcopy mode when migration is not progressing * Extend live-migration-force-complete to use postcopy if available * Add a test utility for checking mock calls with objects * Remove invalid test for config option scheduler\_host\_manager * Complete verification for api-ref os-flavor-extra-specs * policy: Replaces 'authorize' in nova-api (part 3) * libvirt: Add migration support for perf event support * Libvirt driver implementation of device tagging * Add policy sample generation * Cleanup instance device metadata object code * libvirt: virtuozzo instance resize support * Fix test\_ipv6 and simplify to\_global() * Remove russian from unit/image/test\_glance.py * Py3: fix serial console output * \_security\_group\_get\_by\_names cleanup * Add reminder comments for compute rpcapi version bump * Update get\_instance\_diagnostics for instance objects * Improve help text for wsgi options * Don't immediately null host/node when shelving * Evaluate 'task\_state' in resource (de)allocation * Add new configuration option to turn auto converge on/off * Add new configuration option to turn postcopy on/off * Improve nova.rpc conf options documentation * Fix spelling mistake * Add ability to select specific tests for py34 * Remove mox from unit/compute/test\_compute.py (4) * Remove mox from unit/compute/test\_compute.py (end) * Remove mox from unit/compute/test\_compute.py (11) * Remove mox from unit/compute/test\_compute.py (10) * Remove mox from unit/compute/test\_compute.py (9) * Remove mox from unit/compute/test\_compute.py (8) * Remove mox from unit/compute/test\_compute.py (7) * Remove mox from unit/compute/test\_compute.py (6) * Remove mox from unit/compute/test\_compute.py (5) * UT: cleanup typo in libvirt test\_config * Remove mox from unit/compute/test\_compute.py (3) * Remove mox from unit/compute/test\_compute.py (2) * Remove mox from unit/compute/test\_compute.py (1) * Improve image signature verification failure notification * libvirt: attach configdrive after instance XML * libvirt: add nova volume driver for vzstorage * Moving test helpers to a common place * On port update check port binding worked * Refactor to create \_ensure\_no\_port\_binding\_failure * policy: Replaces 'authorize' in nova-api (part 2) * XenAPI: Add option for running nova independently from hypervisor * XenAPI: Stream config drive to XAPI * XenAPI: Perform disk operations in dom0 * Port test\_ipv6 to py3 and simplify to\_global() * api-ref: Example verification for os-agents.inc * Allow monitor plugins to set own metric object * api-ref: correct the order of APIs in server-tags * Remove unused LOG * Remove unnecessary \_\_init\_\_ * Release notes: fix typos * Make print py3 compatible * libvirt: fix disk size calculation for VZ container instances * Fix error message for VirtualInterfaceUnplugException * libvirt: Add boot ordering to individual disks * image\_meta: Add hw\_rescue\_device and hw\_rescue\_bus * collapse servers.ViewBuilderV21 into servers.ViewBuilder * remove personality extension * remove preserve-ephemeral rebuild extension * remove access\_ips extension * Bump the service version for get-me-a-network support * neutron: handle 'auto' network request in allocate\_for\_instance * Add unit tests for nova.virt.firewall.IpTablesFirewallDriver (Part 2) * libvirt: split out code for recovering after migration tasks * libvirt: split out code for processing migration tasks * libvirt: split off code for updating migration stats in the DB * libvirt: split off code for updating live migration downtime * api-ref: verify images.inc * libvirt: split out code for determining if migration should abort * libvirt: split out code for detecting live migration job type * policy: Replaces 'authorize' in nova-api (part 1) * Check if flavor.vcpus is more than MAX\_TAP\_QUEUES * policy: Add defaults in code (part 6) * objects: Add devices\_metadata to instance object * objects: new InstanceDeviceMetadata object * db: add a device\_metadata column to instance\_extra * libvirt: add perf event support when create instance * Improve help text of crypto.py * objects: adding an update method to virtual\_interface * Rename driver method check\_can\_live\_migrate\_destination\_cleanup * api-ref: added docs for microversion 2.26 * policy: Add defaults in code (part 5) * policy: Add defaults in code (part 4) * policy: Add defaults in code (part 3) * policy: Add defaults in code (part 2) * add ploop support into qemu-img info * policy: Add defaults in code (part 1) * Handle UnableToAutoAllocateNetwork in \_build\_and\_run\_instance * Add note about preserve\_ephemeral limitations * Add console auth tokens db api methods * Remove mox from unit/virt/libvirt/volume/\*.py * Port cinder unit tests to Python 3 * Port test\_pipelib and test\_policy to Python 3 * Adding missing log translation hints * Add instance groups tables to the API database * Make live migration checks async * Check for None max\_count for Python 3 compat * Updated from global requirements * fix developer docs on API * libvirt: virtlogd: use "log" element in char devices * Fix ConsoleAuthTokens to work for all console types * remove os-disk-config part 4 * remove os-disk-config part 3 * remove load\_standard\_extensions method * Modify "policy.conf" to "policy.json" * Ensures that progress\_watermark and progress\_time are updated * Add a note for policy enforcement by user\_id * XenAPI: Support neutron security group * Added instance actions for conductor * Stop using mox stubs in nova/tests/unit/test\_metadata.py * remove support for legacy v2 generator extensions * Remove duplicate unit test resource tracker * Prevent instance disk overcommit against itself * api-ref: parameter verification os-agents * make failures on api\_samples more clear * api-ref, os-services.inc * api-ref: docs for microversion v2.28 * Update dhcp\_opts on both create and update * api-ref: Improve os-instance\_usage\_audit\_log samples * Add ironic mac address when updating and creating * pci: Deprecate is\_new from pci requests * Enhance notification sample test base * Handle multiple samples per versioned notification * Transform wrap\_exception notification to versioned format * XenAPI: OVS agent updates the wrong port with Neutron * Stop using mox from unit/fake\_server\_actions.py * objects: you want'em * libvirt: enhance method to return pointer\_model from image prop * Improve help text for service group options * Updated from global requirements * Skip network allocation if 'none' is requested * Separete notification object version test * [typo] replaced comupte to compute in test * api-ref, os-availability-zone.inc * Config: no need to set default=None * Add delete\_, update\_ and add\_ inventory to ResourceProvider * libvirt: fix typos in comments * Remove the nova.compute.resources entrypoint * Re-deprecate use\_usb\_tablet config option * Log the network when neutron won't apply security groups * api-ref: parameter verification os-fixed-ips * Add CellMappingList object * Add console auth tokens table and model * live migration check source failed caused bdm.device\_path lost * Use is\_valid\_ipv4 from oslo.utils * Include exception in \_try\_deallocate\_network error log * Remove mox from tests/unit/virt/test\_imagecache.py * Fix docstring nits from ResourceProvider.set\_inventory() review * fix errors in revert resize api docs * Add set\_inventory() method on ResourceProvider * Improve the help text for cells options (8) * VMware: Fix bug of TypeError when getting reference of VCenter cluster is None * XenAPI: Integers returned from XAPI are actually strings * Remove virt.block\_device.\_NoLegacy exception * rename libvirt has\_default\_ephemeral * Remove ec2\_code from exception * Add specific lazy-load method for instance.tags * Don't attempt to lazy-load tags on a deleted instance * Pre-load tags when showing server details * Policy-in-code servers rules * Fix image meta which is sent to glance v2 * Extract update\_port call into method * Refactor to create \_populate\_mac\_address * Rename \_populate\_mac\_address adding pci * Rename created\_port to created\_port\_id * Flip allocate\_for\_instance create or update if * libvirt: cleanup baselineCPU return value checking * Updated from global requirements * Remove mox from tests/unit/objects/test\_aggregate.py * Handle keypair not found from metadata server * Skip network validation if explicitly requesting no networks * nova-net: handle 'auto' network request in allocate\_for\_instance * neutron: validate auto-allocate is available * Add helpers to NetworkRequest(List) objects for auto/none cases * Remove api\_rate\_limit config option * Tear down of os-disk-config part 2 * Tear down os-disk-config part 1 * Disallow instance tag set for invalid instance states * Make instance as second arg in compute api calls * TrivialFix: Remove extra comma from json * Skip NFS and Ceph in live migration job test run * Added missed response to test\_server\_tags * api-ref: console types * api-ref: add version 2.3 parameters to servers * Remove extra expected error code (413) from image metadata * Use instance object instead of db record * Publish proxy APIs deprecation in api ref doc * Fix outdated parameter network\_info description in virt/driver * api-ref: Fix parameters in os-instance-usage-audit-log * Remove python code validation specific to legacy\_v2 * Remove DictCompat from instance\_info\_cache * Remove redundant test in test\_resource\_tracker * nova shared storage: rbd is always shared storage * Modify the disk bus and device name for Aarch64 * Remove mox from unit/compute/test\_compute\_mgr.py (end) * Remove mox in tests/unit/objects/test\_instance\_faults * Remove mox from unit/compute/test\_compute\_mgr.py (6) * Remove mox from unit/compute/test\_compute\_mgr.py (8) * Remove mox from unit/compute/test\_compute\_mgr.py (7) * Trivial-Fix: Fix typos * Fix some typos * Remove mox from unit/compute/test\_compute\_mgr.py (5) * Remove mox from unit/compute/test\_compute\_mgr.py (4) * Remove mox from unit/compute/test\_compute\_mgr.py (3) * Remove mox from unit/compute/test\_compute\_mgr.py (2) * Updated from global requirements * Make Aggregate.get\_by\_uuid use the API db * api-ref: parameter verification for os-aggregates * Improve help text for neutron\_opts * remove processing of blacklist/whitelist/corelist extensions * fix OS-SCH-HNT:scheduler\_hints location in sample * Fix reno from hyper-v-remotefx * Yield the thread when verifying image's signature * Remove invalid test methods for config option port\_range * libvirt: Prevent block live migration with tunnelled flag * Trivial: remove none existing py3 test from tests-py3.txt * Make host as second arg in compute api calls * Stop using mox stubs in tests/unit/fake\_notifier * Remove unused \_get\_flags method from integrated\_helpers * Enable all extension for all remaining sample tests * tox.ini: Remove unnecessary comments in api-ref target * Stop using mox stubs in nova/tests/unit * Updated from global requirements * Raise exception if BuildRequest deleted twice * Replace mox with mock for xenapi vm\_utils.lookup * Detach volume after deleting instance with no host * pci: Allow updating pci\_requests in instance\_extra * Change default fake\_ server status to ACTIVE * Fix update inventory for multiple providers * Default to using glance v2 * Enable all extension for remaining server API tests * Enable all extension for server API tests part-1 * Remove mox from unit/compute/test\_compute\_mgr.py (1) * Fixes py3 unit tests for nova.tests.unit.test\_block\_device.\* * Reno for mutable-config * Remove invalid test of config option default\_notification\_level * Improve the help text for cells options (7) * test: pass enable\_pass as kwarg in test\_evacuate * Remove config option config\_drive\_format's invalid value test * test: remove invalid test method in libvirt/test\_imagebackend * xenapi: Remove invalid values for config option image\_compression\_level * Remove mox from api/openstack/compute/test\_pci.py * Stop using mox from openstack/compute/test\_cells.py * Enable all extension for server actions sample tests * Enable all extension for Flavor API sample tests * Fix resource tracking for instances with no numa topology * Clarified "user" to plural type * Revert "Optimize \_cleanup\_incomplete\_migrations periodic task" * Remove unused authorizer methods * Remove legacy v2 policy rules * Add unit tests for nova.virt.firewall.IpTablesFirewallDriver (Part 1) * Make create\_inventory() handle name change * Add ResourceProvider.save() * Remove the skip\_policy\_check flags * api-ref: verify keypairs * Make Xenplugin to work with glance v2 api * Trival: version history 2.30 is not indented as others * Do not register notification objects * Move notification objects to a separate package * Move notification related code to separate package * Adjust field types and defaults on Inventory * Add InventoryList.find() method * Add a get\_by\_uuid for aggregates * Imported Translations from Zanata * get rid of the old \_vhd methods * Make Hyper-V to work with glance v2 api * Stop using mox stubs in stub\_out\_key\_pair\_funcs * Remove v2 extension setting from functional tests * Add name and generation to ResourceProvider object * Remove duplicate test of DELETED instances * Added support for new block device format in Hyper-V * Enable mutable config in Nova * Improve help text for availability zones options * tests: make XMLMatches work with Python3 * Catch PciRequestAliasNotDefined exception * api-ref: parameter verification for os-hypervisors * xen: skip two more racey mox py34 test classes * libvirt: handle reserved pages size * Fix nova-compute start failed when reserved\_huge\_pages has value * Make the base options definitions consistent * virt: set address space & CPU time limits when running qemu-img * Remove manual creation of console.log * Fix imagecache.get\_cache\_fname() to work in python3 * Remove policy checkpoints for SecurityGroupAPI and NetworkAPI * Remove policy checkpoints from ComputeAPI * Stop using mox from objects/test\_instance.py (3) * Stop using mox from objects/test\_instance.py (2) * Stop using mox from objects/test\_instance.py (1) * Fix wrong patch of unittest in unit/test\_metadata.py * Remove code referencing inventory table in cell DB * Handle SetAdminPasswdNotSupported raised by libvirt driver * Prevent boot if ephemeral disk size > flavor value * [libvirt] Incorrect parameters passed to migrateToURI3 * Revert inventory/allocation child DB linkage * Only chown console log in rescue * Don't chown a config disk which already exists * Don't overwrite config disk when using Rbd * Add 'update' method to GlanceImageServiceV2 * Add 'create' method to GlanceImageServiceV2 * Add 'detail' method to GlanceImageServiceV2 * Add 'delete' method to GlanceImageServiceV2 * Add 'download' method to GlanceImageServiceV2 * Add 'show' method to GlanceImageServiceV2 * Split the glance API path based on config * Remove image\_meta * add "needs:\*" tags to the config option modules * api-ref method verification for os-cells * API change for verifying the scheduler when live migrating * Stop using mox stubs in volume/encryptors/test\_base.py * Introduce a CONF flag to determine glance client version * fix a typo in comment * Fix white spaces in api-ref * Updated from global requirements * virt/hardware: Add diagnostic logs for scheduling * Use assertNotIn instead of assertTrue(all(A != B)) * Use assert(Not)Equal instead of assertTrue(A == X) * Use assertLess(Equal) instead of assertTrue(A > X) * Use assertGreater(A, X) instead of assertTrue(A > X) * Fall back to flat config drive if not found in rbd * libvirt: Fix the content of "disk.config" lost after migrate/resize * remove /v2.1/{tenant\_id} from all urls * Remove "or 'reserved'" from \_create\_volume\_bdm * pci: Move PCI devices and PCI requests into migration context * Updated from global requirements * Fixes invalid uuid usages in test\_neutronv2 * Clarify message for Invalid/Bad Request exception * Cancelled live migration are not in progress * set wrap\_width for config generator to 80 * API change for verifying the scheduler when evacuating * Fix invalid uuid warnings in virt testcases 14.0.0.0b1 ---------- * Remove mox from nova/tests/unit/virt/libvirt/test\_utils.py * Fix multipath iSCSI encrypted volume attach failure * libvirt: add "get\_job\_info" to Guest's object * Modify 'an network' to 'a network' * Remove legacy v2 API code completely * Remove the usage of RateLimitingMiddleware * Remove unused inner\_app\_v21 and ext\_mgr * Remove legacy API code from sample tests * Remove InstanceUsageAuditLogTest for legacy API * Change instance\_claim parameter from instance\_ref to instance * Make AggregateList.get\_ return API & cell db items * Make Aggregate.get operation favor the API db * Add aggregates tables to the API db * Microversion 2.28 changes cpu\_info string to JSON object * libvirt: Skip CPU compatibility check for emulated guests * Specify the default cdrom type "scsi" for AARCH64 * Remove mox from nova/tests/unit/test\_iptables\_network.py * Updated from global requirements * pci: Make sure PF is 'available' when last VF is freed * pci: related updates are done without DB lookups * pci: make sure device relationships are kept in memory * Remove mox from nova/tests/unit/virt/libvirt/test\_vif.py * verify api-ref os-migrations.inc * Nova UTs broken due to modifying loopingcall global var * Remove mox from unit/api/openstack/compute/test\_consoles.py * Stop using mox from virt/libvirt/storage/test\_lvm.py * Update functional tests for fixtures 3 * Stop using mox in test\_firewall * Add tests to attach/detach vols for shelved server * Remove unused \_vlan\_is\_disabled test flag * libvirt: New configuration classes to parse device address element * Fixed clean up process in confirm\_resize() after resize/cold migration * VMware: remove dead code in test\_get\_vm\_create\_spec() * Remove mox from compute/test\_scheduler\_hints.py * Updated from global requirements * Remove normal API operation logs from API layer * Remove unused LOG from v2.1 API code * Adds RemoteFX support to the Hyper-V driver * libvirt: fix serial ports lost after hard-reboot * Stop using mox stubs in test\_server\_usage.py * Remove mox from compute/test\_instance\_usage\_audit\_log.py * api-ref: os-consoles.inc * Add proxy middleware to application pipeline * api-ref: Example verification for os-interface.inc * Remove redundant orphan instances unit test * Remove duplicate migration RT unit tests * Redundant test of CPU resources in test\_tracker * Remove duplicate test of RT.stats.current\_workload * Remove duplicate test of claim context manager * Remove pointless "additive claims" unit test * Remove oversubscribe test in test\_resource\_tracker * api: Improve the \_check\_multiple\* function names readability * api-ref verify servers-action-deferred-delete.inc * Fix the order of expected error codes * Remove DictCompat from NetworkRequest * api-ref: Add a sample test for os-interface * Use oslo\_log instead of logging * Verify requested\_destination in the scheduler * Add requested\_destination field to RequestSpec * Remove mox from compute/test\_extended\_ips\_mac.py * Ironic nodes with instance\_uuid are not available * Updated from global requirements * Fixes python 3 urllib quote / unquote usage * Make compute nodes update their own inventory records * Remove unused WsgiLimiter * Remove unused args from RateLimitingMiddleware * Remove unused use\_no\_auth from wsgi\_app\_v21() * Fix incorrectly named vmwareapi test * Make Inventory and ResourceProvider objects use the API DB instead * Rename ImageCacheManager.\_list\_base\_images to \_scan\_base\_images * Remove all references to image\_popularity from image cache * Remove image cache image verification * Fix test\_age\_and\_verify\_swap\_images * api and availablity\_zone opt definition consistent * Rename Image.check\_image\_exists to Image.exists() * Remomve mox from api/openstack/compute/test\_console\_output.py * Remove mox from api/openstack/compute/test\_config\_drive.py * VMware: set service status based on vc connection * Return 400 HTTP error for invalid flavor attributes * Get transport\_url from config in Cells v2 cell map utility * Support for both microversion headers * Fix unit test after the replace of key manager * Fix "KeyError: u'instance\_id'" in string format operation * Save all instance extras in a single db call * Remove APIRouter of legacy v2 API code * Remove legacy v2 API tests which use wsgi\_app() * limits.inc example verification * Remove duplicate unit test in test\_tracker * Remove delete stubs in test\_resource\_tracker * Remove service crud from test\_resource\_tracker * Remove conductor from test\_resource\_tracker * Remove StatsDicTestCase from test\_resource\_tracker * rt-unit: Replace hard-coded strings with constants * Remove useless test of incorrect stats value * Remove RT duplicate unit test for PCI stats * Remove more duplicate RT unit tests * Removes test\_claim\_saves\_numa\_topology() * objects: added 'os\_secure\_boot' property to ImageMetaProps object * Trivial: Fixes serial console minor nits * Revert "glance:add helper method to get client version" * Add length check in comparing object lists * Update Support Matrix * Improve the help text for the rdp options * No disable reason defined for new services * api-ref: limits.inc validate parameters * Make available to build docs with python3 * Updated from global requirements * remove db2 support from tree * Adds Hyper-V imagecache cleanup * raise exception ComputeHostNotFound if host is not found * Skip instance name templating in API cell * Add http\_proxy\_to\_wsgi to api-paste * Stop using mox stubs in test\_pipelib.py * api-ref: Parameter verification for os-interface.inc * devspec: remove unused VIRTFN\_RE and re * Remove duplicate test of set inst host/node * Remove SchedulerClientTrackerTestCase * Move unit tests of set\_instance\_host\_and\_name() * Remove MissingComputeNodeTestCase for res tracker * Remove tests for missing get\_available\_resource() * api-ref, os-fping.inc * Pass OS\_DEBUG to the tox test environment * Hyper-V: Implement nova rescue * Add resource provider tables to the api database * HyperV: Nova serial console access support * Let setup.py compile\_catalog process all language files * use\_neutron\_default\_nets: StrOpt ->BoolOpt * api-ref: Add fault parameter details * be more explicit that rate limits are gone in v2.1 * Warn when using null cache backend * Enable 'null' value for user\_data in V2.1 API * Updated from global requirements * fix Quota related error return incorrect problem * Add online migration to move keypairs from main to API database * Completed migrations are not "in progress" * Make flavor-manage api call destroy with Flavor object * Move is\_volume\_backed\_instance to compute.utils * Updated from global requirements * api-ref: verify flavors.inc * Fix use of invalid assert calls * Config options: remove import\_opts from cloudpipe section * Enables Py34 tests for unit.api.openstack.compute.test\_server\_tags * Fix the versions API for api-ref * Update link for hypervisor support matrix message * api-ref: complete verification of baremetal api * Keep BuildRequest db entry around longer * Drop fields from BuildRequest object and model * Resize API operation passing down original RequestSpec * Augment release note for import\_object\_ns removal * pci: add safe-guard to \_\_eq\_\_ of PciDevice * deprecate config option "fatal\_exception\_format\_errors" * config options: centralize exception options * libvirt: Add serial ports to the migration data object * Hyper-V: Fixes disk overhead claim issue * Config options: move set default opt of db section to centralized place * [Trivial] Fix a grammar error in comments * api-ref: Example verification for servers-action-shelve.inc * [Ironic] Correct check for ready to deploy * api-ref: Fix parameters in servers-action-shelve.inc * api-ref: parameter verification for os-server-groups * api-ref: servers-action-evacuate.inc * remove FlavorCreateFailed exception * Add tests for floating\_ip private functions * Trivial: remove os-security-groups needs:method\_verification line * Add RC file for excluding tempest tests for LVM job * Move config options from nova/api directory (5) * libvirt: add method to configure max downtime when migrating * libvirt: add "abort\_job" to Guest's object * libvirt: add method "migrate" to Guest's object * Only attempt to inject files if the injection disk exists * Remove deprecated option libvirt.remove\_unused\_kernels * Rename Raw backend to Flat * deprecate s3 image service config options * Cold migrate using the RequestSpec object * Add a RequestSpec generation migration script * Enables Py34 tests for unit.compute.test\_compute * Fixes invalid uuid usages in functional tests * Make neutronapi get\_floating\*() methods return objects * Switch api unit tests to use v2.1 API * Remove mox used in tests/unit/api/openstack/compute/test\_server\_start\_stop * Remove marker from nova-manage cells\_v2 map\_instances UI * api-ref: complete verification for os-flavor-access * Make some build\_requests columns nullable * Add message queue switching through RequestContext * trivial: remove unused argument from a method * baseproxy: stop requiring CONF.verbose * Cleanup validation logic in \_get\_requested\_networks * api-ref: complete verification of servers-action-crash-dump.inc * migrate to os-api-ref * api-ref: image.inc - Update method validation * config options: centralize section "database" + "api\_database" * api-ref: parameter verification for os-quota-sets * Fix network mtu in network\_metadata * Add a note about egress rules to os-security-group-rules api-ref * ironic: fix call to \_cleanup\_deploy on config drive failure * Follow-up for the API config option patch * api-ref: reorder parameters.yaml * Network: fix typo * Add online migration to store keypairs with instances * Make Keypair object favor the API database * api-ref: ips.inc example verification * Fix spelling mistake in libvirt * Body Verification of os-aggregates.inc * Move placement api request logging to middleware * conf: Move cloudpipe options to a group * conf: Address nits in I92a03cb * Fix corrupt "host\_aggregates\_map" in host\_manager * Fix spelling mistake * api-ref: Example verification for os-volume\_attachments.inc * api-ref: Parameter verification for os-volume\_attachments.inc * Remove fake\_imagebackend.Raw and cleanup dependent tests * Remove unused arguments to images.fetch and images.fetch\_to\_raw * api-ref: finish validation for os-server-external-events.inc * report info if parameters are out of order * Method verification of os-floating-ips-bulk.inc * api-ref: os-volumes.inc method verification * config options: move s3 related options * deprecate "default\_flavor" config option * config options: centralize default flavor option * Return HTTP 400 on boot for invalid availability zone * Config options: remove import\_opts from completed section * Fix migration query with unicode status * Config options: centralize cache options * Change 5 space indent to 4 spaces * Remove deprecated "memcached\_server" in Default section * Updated from global requirements * Add a functional test for instance fault message with retry * api-ref: complete verification for extensions resource * live-migration ceph: fix typo in ruleset parsing * api-ref: os-floating-ip-dns.inc method verification * api-ref: Method verification for servers-actions * Eager load keypairs in instance metadata * Complete method verification of os-networks * Method verification of os-security-group-default-rules * virt: reserved number of mempages on compute host * deprecate "file transfer" feature for Glance images * centralized conf: nova/network/rpcapi.py * Config options: centralize remotefs libvirt options (end) * Config options: centralize smbfs libvirt options (16) * imagebackend: Check that the RBD image exists before trying to cleanup * Rewrite \_cleanup\_resize and finish\_migration unit tests to use mock instead of mox * Remove mox in test\_volume\_snapshot\_create\_outer\_success * api-ref: Method verification for os-volume\_attachments.inc * Improve the help text for the API options (4) * Improve the help text for the API options (3) * api-ref: ips.inc parameter verification * Add Keypairs to the API database * Create Instances with keypairs * Method verification for server-action-deferred-delete * method verification for server-action-remote-consoles * method verification of os-server-external-events * method verification of os-instance-usage-audit-log * Add keypairs to Instance object * Complete method verification of os-baremetal-nodes.inc * api-ref: parameter validation for os-security-group-rules * Fixed missing variable * api-ref: Method verification for os-floating-ips * force\_live\_migration remove redundant check * pci: create PCI tracker in RT.\_init\_compute\_node * Fix race condition for live-migration-force-complete * api-ref: servers-action-shelve.inc * Added fault response parameter to Show Server Details API * pci: Remove unused 'all\_devs' method * Corrected the typo * Denormalize personality extension * method verification of os-assisted-volume-snapshots * api-ref: os-certificates.inc method verification * Complete method verification of os-cloudpipe.inc * Fix service version to update the DB * method verification for servers-action-fixed-ip * Added new exception to handle CinderClientException * Drop paramiko < 2 compat code * Config options: centralize scality libvirt options (15) * Compute: Adds driver disk\_gb instance overhead estimation * config options: move image\_file\_url download options * crypto: Add support for Paramiko 2.x * Denormalize extensions for clarity * Complete method verification of os-fping * Complete method verification of os-security-group-rules * Fix invalid uuid warnings * Correct some misspell words in nova * Remove 404 for list and details actions of servers * Improve the help text for the API options (2) * Improve the help text for the API options (1) * Complete method verification of os-migrations * Move config options from nova/api directory (4) * api-ref: perform all 4 phases of verification for action console output * api-ref: add url parameter to expand all sections * api-ref: complete verification for diagnostics.inc * api-ref: update parameter validation on servers * Complete method verification of os-tenant-networks * trivial: removed unused networks var from os-tenant-networks:create * Complete method verification of os-security-groups * Move config options from nova/api directory (3) * Move config options from nova/api directory (2) * Move config options from nova/api directory (1) * api-ref: method verification and fixes for servers.inc * Instance mapping save, properly load cell mapping * Fix exception when vcpu\_pin\_set is set to "" * config: remove deprecated ironic.client\_log\_level * Complete method verification of os-quotas * Compelete method verification of os-servers-admin * Complete method verification of os-shevle * Add api-sample test for showing quota detail * Remove legacy v2 tests which use APIRouter * pci: eliminate DB lookup PCI requests during claim * pci: pass in instance PCI requests to claim * Remove rate\_limit param in builder * Remove comment on v3 API * Not talking about V2 API code in review doc guide * Add keypairs to instance\_extra * Trivial: No need to exclude TestMoveClaim from py34 tests * Remove 400 as expected error * Cleaned up request and response formats page * Complete method verification of os-agents * update servers policy in code to use formats * Complete method verification of os-fixed-ips * Consolidate image\_href to image uuid validation code * Fix TestNeutronv2.test\_deallocate\_for\_instance\_2\* race failures * Centralize config option for nova/network/driver.py * Don't raise error when filtering on custom metadata * Config options: centralize quobyte libvirt options (14) * Config options: centralize volume nfs libvirt options (13) * Config options: centralize volume net libvirt options (12) * Config options: centralize iser libvirt options (11) * Config options: centralize iscsi libvirt options (10) * Config options: centralize glusterfs libvirt options (9) * Config options: centralize aoe vol libvirt options (8) * Config options: centralize volume libvirt options (7) * Config options: centralize vif libvirt options (6) * Config options: centralize utils libvirt options (5) * Config options: centralize lvm libvirt options (4) * Remove legacy v2 unit tests[q-v] * Remove legacy v2 unit tests[f-n] * Remove Limits dependency of legacy v2 API code * Remove mox in unit/virt/xenapi/test\_agent.py * Set migration status to 'error' on live-migration failure * Add pycrypto explicitly * Centralize vif,xenpool & vol\_utils config options * Config options: centralize imagecache libvirt options (3) * Config options: centralize imagebackend libvirt options (2) * Remove the legacy v2 API entry from api-paste.ini * Update stable API doc to indicate code removal * Config options: centralize driver libvirt options (1) * UEFI - instance terminates after boot * Fix unit tests for v2.1 API * Remove legacy v2 unit tests[a-e] * Config options: Centralize servicegroup options * libvirt: release serial console ports when destroying guests * Remove mox from tests/unit/network/test\_api.py * Remove legacy v2 API functional tests * fix wrong key name in test code * Remove the legacy v2 API test scenarios from API sample tests * Remove 413 expect in servers.py * Remove core extension list * rt: remove unused image\_meta parameter * Fail to start nova-api if no APIs were able to be started * Test that nova-api ignores paste failures, but continues on * libvirt: introduces module to handle domain xml migration * Trivial: dead code * Fix database poison warnings, part 8 * docs: link to Laski's cells talk from the Austin summit * compute: Retain instance metadata for 'evacuate' on shared storage * Archive instance\_actions and instance\_actions\_event * Add os-interface functional negative tests * api-ref: verify os-server-groups.inc * Avoid unnessary \_get\_power\_state call * Remove mox in test\_certificates.py * api-ref: verfiy limits body * api-ref: body verification of ips.inc * Change message format of Forbidden * Updated from global requirements * api-ref verify of servers-admin-action.inc * pci: Allow to assign pci devices in pci device list * Fix typo in support-matrix.ini: re(set)=>(re)set * Add ability to filter migrations by instance uuid * Wrong mocks, wrong mock order * verify api-ref metadata.inc * verify api-ref os-server-password.inc * Updated from global requirements * Fix database poison warnings, part 7 * Declare nova.virt namespace * [doc] fix 5 typos * Make compute rpcapi 'live\_migration' backward compatible * Replace key manager with Castellan * Deprecate Nova Network * verify api-ref os-instance-usage-audit-log.inc * Only reset dns\_name when unbinding port if DNS is integrated * Changed the storage size from GB to GiB * Remove unused FAKE\_UUID variables * Deprecated the concept of extensions in v2.1 * Fix database poison warnings, part 6 * Fix database poison warnings, part 5 * Avoid unconditional warnings in nova-consoleauth * libvirt: remove version checks for hyperv PV features * libvirt: remove version checks for libvirt disk discard feature * libvirt: remove version checks for block job handling * libvirt: remove version checks for PCI device detach * libvirt: remove version checks for live snapshot feature * libvirt: add explicit check for min required QEMU version * libvirt: increase min required libvirt to 1.2.1 * network: Fix nova boot with multiple security-groups * Updated config description on live snapshot * Fix NoSuchOptError when referring to conf.neutron.auth\_plugin * api-ref host verification (os-hosts.inc) * api-ref verify os-floating-ip-pools.inc * Complete Verification of server-metadata * Complete method Verification of os-hypervisors * Fix invalid uuid warnings in compute api testcases * Fix invalid uuid warnings * complete Method Verification of aggregates * Complete Method Verification of ips * Fix resize to same host failed using anti-affinity group * Complete method Verification of consoles * Config options: Centralize netconf options * Remove 413 as expected error code * Complete Verification of os-server-password * Complete Verification of os-hosts * Add links to API guide to describe links * Complete Method Verification of os-interface * Complet Method Verification of flavor-access * Complete Verification of os-virtual-interfaces * Complet Method Verification of os-instance-actions * Complete Verification of os-flavor-extra-specs * Fix database poison warnings, part 4 * Complet Method Verification of flavor * Complet Method Verification of server group * Trivial: fix mock decorator order * Add test for nova-compute and nova-network main database blocks * Prevent nova-api from dying if enabled\_apis is wrong * Complet Method Verification of keypair * Complet Method Verification of availability-zone * Complet Method Verification of simple tenant usage * remove the use of import\_object\_ns * Fixed typo in word "were" * Complet Method Verification of os-services * Complet Method Verification of server diag * Remove mox in tests/unit/compute/test\_host\_api.py * Config options: completing centralize neutron options * Add instances into dict when handle exception * Complet Method Verification of limits * Improve the help text for the compute rpcapi option * Move config options from nova/compute/rpcapi.py file * Updated from global requirements * deprecate nova-all * Remove unused base\_options param from \_get\_image\_defined\_bdms * Change BuildRequest to contain a serialized instance * Split out part of map\_cell\_and\_hosts to return a uuid * Add manage command for cell0 * Config options: centralize section "ssl" * config options: centralize security\_group\_api opt * Imported Translations from Zanata * Stop using mox stubs in test\_multinic.py * libvirt: deprecate use\_usb\_tablet in favor of pointer\_model * Config options: Centralize neutron metadata options * add tags to files for the content verification phase * Config options: Centralize compute options * Add 415 to list of exceptions for microversions devref * Added validation for rescue image ref * Final warnings removals for api-ref * Clean port dns\_name in case of port detach * Fix remaining json reference warnings * Add validations for volume\_size and destination\_type * Remove duplicate api ref for os-networks/actions * Fix all remaining sample file path * Stop using mox stubs in test\_access\_ips.py * Stop using mox stubs in test\_admin\_password.py * libvirt - Add log if libguestfs can't read host kernel * Fix sample file path for 4 files * Fix invalid uuid warnings in objects testcases * Fix invalid uuid warnings in server-group unit tests * Create image for suspended instance booted from volume * Fix content and sample file for keypair, migration, networks * Fix sample file path for os-i\* API * Fix the parameters for os-agents API * Fix sample file path for fixed, floating ips API * Fix sample path for aggregate, certificate, console * Add remaining image API ref * Fix the schema of assisted\_volume\_snapshots * config options: conductor live migrate options * xenapi: Fix xmlrpclib marshalling error * fix samples references in security group files * fix samples references in os-services * Fix api samples references in 3 more files * Fix reverse\_upsize\_quota\_delta attempt to look up deleted flavors * Fix api ref for os-hosts, os-quota-sets and os-fping * Fix api ref for os-cells, os-cloudpipe and server-action-shelve * Fix api sample references in 2 more files * Updated from global requirements * hardware: thread policy default value applied even if specified * Fix api ref for ips, limits, metdata and agent * virt: use more realistic fake network / VIF data * Fix json response example heading in api ref * Fix database poison warnings, part 3 * Remove 40X and 50X from Normal response codes * Specify normal status code on os-baremetal-nodes * Remove unused rotation param from \_do\_snapshot\_instance * Remove unused filter\_class\_names kwarg from get\_filtered\_hosts * Remove deprecated ability to load scheduler\_host\_manager from path * Fix "Creates an aggregate" parameters * Unavailable hosts have no resources for use * HyperV: Add SerialConsoleOps class * HyperV: Add serial console handler class * HyperV: Add serial console proxy * fix samples references for 2 files * Update servers.inc to be as accurate as api-site * Fix database poison warnings, part 2 * Fix "Creates an agent build" parameters * Update get\_by\_project\_id on InstanceMappingList * Clean up cell handling in nova-manage cell\_v2 map\_instances * Properly clean up BDMs when \_provision\_instances fails * clean up versions.inc reference document * Collection of CSS fixes * Fixes unexpectedly passing functional test * move sphinx h3 to '-' instead of '^' * fix blockquote font size * Add 'Show All' / 'Hide All' toggle * use 'required' instead of 'optional' for parameters * Fix css references to the glyphicons font * Initial use of microversion\_parse * Changed an HTTP exception to return proper code * Compute API: omit disk/container formats when creating images of snapshots * Fix formatting of rst in parameters.yaml * Add instance/instance\_uuid to build\_requests table * network: make nova to handle port\_security\_enabled=False * BaseCoreFilter docstring and formating improved * Fix NoMoreNetworks functional test traces * Fix typo in nova release notes * Updated from global requirements * Fix generation of Guru Meditation Report * Fix invalid uuid warnings in cell api testcases * cleanup some issues in parameters.yaml * Import RST files for documentation * add combined parameters.yaml file * claims: Do not assume image-meta is a dict * Fix nova opts help info * Fix doc build if git is absent * Add checks for driver attach\_interfaces capability * Updated from global requirements * Add AllServicesCurrent fixture * Improve the help text for the linuxnet options (3) * Improve the help text for the linuxnet options (2) * Fix signature of copy\_image * libvirt: remove live migrate workaround for an unsupported ver * libvirt: move graphic/serial consoles check to pre\_live\_migration * Fix invalid uuid warnings in api testcases * Minor updates to the how\_to\_get\_involved docs * Put more into compute.api.\_populate\_instance\_for\_create * Remove unused parameter from \_get\_requested\_instance\_group * Improved test coverage * Check API versions intersects * virt/hardware: Fix 'isolate' case on non-SMT hosts * Migrate compute node resource information to Inventory objects * Drop compute node uuid online migration code * increase error handling for dirty files * config options: centralize 'spice' options * Fix max concurrent builds's unlimited semaphore * VMware: add in context for log messages * XenAPI: specify block size for writing config drive * Fix database poison warnings * Make swap-volume an admin-only API by default * Updated from global requirements * Improve the help text for the linuxnet options (1) * Config options: Centralize network options * Config options: centralize base path configuration * Add new NeutronFloatingIP object * Add "\_\_repr\_\_" method to class "Service" * remove alembic from requirements.txt * Config options: centralize section "xvp" * Imported Translations from Zanata * Updated from global requirements * allow samples testing for PUT to not have a body * libvirt: delete the last file link in \_supports\_direct\_io() * db: retry instance\_info\_cache\_update() on deadlock * Moved tags filtering tests to TestInstanceTagsFiltering test case * Move config options from nova/network/linux\_net.py * Remove nova-manage service subcommand * config options: centralize quota options * DB API changes for the nova-manage quota\_usage\_refresh command * Improve the help text for the network options (1) * Fix typo in compute node mega join comments * Add api-ref/build/\* to .gitignore * Improve help text for the network object options * Config options: Centralize console options * Config options: Centralize notification options * Remove mox from tests/unit/network/security\_group/test\_neutron\_driver.py * Added server tags support in nova-api * Added server tags controller * Added db API layer to add instance tag-list filtering support * Improve 'workarounds' conf options documentation * Config options: centralize "configdrive" options * config options: centralize baseproxy cli options * Check if a exception has a code on it before read the code * Fix import statement order in nova/rpc.py * Document our policy on fixing v2.0 API bugs * Config options: Centralize neutron options * Remove mox from tests/unit/compute/test\_compute\_xen.py * Fix typo in comments of affinity and anti-affinity * Fix up online\_data\_migrations manage command to be consistent * Adds missing discoverable rules in policy.json * Config options: Centralize ipv6 options * config options: centralize xenserver vmops opts * Config options: Centralize xenapi driver options * config options: centralize xenserver vm\_utils opts * Remove flavor seeding from the base migration * Rely on devstack to skip rescue tests for cells v1 * Replace topic with topics for messaging.Notifier * Updated from global requirements * Fix test for empty policy rules * Improve 'monkey\_patch' conf options documentation * conf: Remove 'destroy\_after\_evacuate' * config options: Move crypto options into a group * config options: centralize section: "crypto" * config options: Centralise 'monkeypatch' options * config options: Centralise 'utils' options * doc: clean up oslo-incubator related stuff * config option generation doesn't work with a generator * Add link to the latest nova.conf example * Change the nova tempest blacklist to use to idempotent ids * HyperV: Refactor livemigr, avoiding getting disk paths remotely * Remove DictCompat from mapping objects * Enhance value check for option notify\_on\_state\_change * Fix flavor migration tests and edge case found * config options: Centralize upgrade\_levels section * config options: Centralize mks options * Remove DictCompat from S3 object * config options: Centralize vmware section * config options: centralize section "service" * Define context.roles using base class * TrivialFix: removed unnecessary cycle in servicegroup/test\_api.py * Handle pre-migration flavor creation failures in the crusty old API * config options: centralize section "guestfs" * config options: centralize section "workarounds" * config options: Centralize 'nova.rpc' options * Cleanup NovaObjectDictCompat from BandwidthUsage * config options: fix the missed cli options of novncproxy * Add metadata objects for device tagging * Nuke cliutils from oslo-incubator * libvirt: pci detach devices should use dev.address * Fix stale file handle error in resource tracker * Updated from global requirements * config options: Centralize xenapi torrent options * Fix: unable to delete instance when cinder is down * Block flavor creation until main database is empty * Further hack up the n.t.unit.db.fakes module of horribleness * Add flavor migration routine * Make Flavor create() and destroy() work against API DB * Move config options from nova/objects/network.py * Add tag column to vifs and bdm * Remove extensible resource tracking * Fix error message of nova baremetal-node-delete * Enhanced error handling for rest\_parameters parser * Fix not supported error message * config options: Centralise 'image\_file\_url' options * neutron: Update the port with a MAC address for PFs * Remove mox from tests/unit/network/test\_rpcapi.py * Remove mox from tests/unit/objects/test\_migration.py * The 'record' option of the WebSocketProxy should be string * config options: centralize section: "glance" * Move resource provider staticmethods to proxies * Add Service.get\_minimum\_version\_multi() for multiple binaries * remove the ability to disable v2.1 * Make git clean actually remove covhtml * Set 'libvirt.sysinfo\_serial' to 'none' in RealTimeServersTest * Make compute\_node\_statistics() use new schema * remove glance deprecated config * Config options: Centralize consoleauth options * config options: centralize section "cloudpipe" * After migrate in-use volume the BDM information lost * Allow to update resource per single node * pci: Add utility method for getting the MAC addr 13.0.0 ------ * Imported Translations from Zanata * VMware: Use Port Group and Key in binding details * Config options: Centralize resource tracker options * Fixed incorrect behavior of xenapi driver * Remove DictCompat from ComputeNode * config options: Centralise 'virt.imagecache' options * neutron: pci\_request logic considers 'direct-physical' vnic type * config options: remove the scheduler import\_opt()s * Improve the help text for hyperv options (3) * Improve the help text for hyperv options (2) * Improve the help text for hyperv options (1) * Imported Translations from Zanata * Remove a redundant 'that' * Cleanup NovaObjectDictCompat from NumaTopology * Fix detach SR-IOV when using LibvirtConfigGuestHostdevPCI * Stop using mox in test\_security\_groups * Cleanup the exception LiveMigrationWithOldNovaNotSafe * Add sample API content * Create api-ref docs site * Config options: Centralize debugger options * config options: centralize section: "keymgr" * libvirt: fix ivs test to use the ivs vif object * libvirt: pass a real instance object into vif plug/unplug methods * Add a vnic type for PF passthrough and a new libvirt vif driver * libvirt: live\_migration\_flags/block\_migration\_flags default to 0 * Imported Translations from Zanata * config options: Centralize xenapi options * Populate instance\_mappings during boot * libvirt: exercise vif driver 'plug' method in tests * config options: centralize xenserver options * Fix detach SR-IOV when using LibvirtConfigGuestHostdevPCI * Reduce number of db calls during image cache manager periodic task * Imported Translations from Zanata * Update cells blacklist regex for test\_server\_basic\_ops * Update cells blacklist regex for test\_server\_basic\_ops * Remove mox from tests/functional/api\_sample\_tests/test\_cells.py * Remove mox from tests/unit/api/openstack/compute/test\_baremetal\_nodes.py * Config options: Centralize ldapdns options * Add NetworkRequestList.from\_tuples helper * Stop providing force\_hosts to the scheduler for move ops * Enforce migration tests for api database * Objectify test\_flavors and test\_flavors\_extra\_specs * Allow ironic driver to specify cafile * trivial: Fix alignment of wsgi options * config options: Remove 'wsgi\_' prefix from opts * VMware: Always update image size for sparse image * VMware: create temp parent directory when booting sparse image * VMware: Use datastore copy when the image is already in vSphere * Imported Translations from Zanata * Fix typos in document * Removes some redundant words * Stop providing force\_hosts to the scheduler for move ops * Include CellMapping in InstanceMapping object * Make flavor extra\_specs operations work against the API DB * Make Flavor access routines work against API database * Clarify the \`\`use\_neutron\`\` option upgrade notes 13.0.0.0rc2 ----------- * Imported Translations from Zanata * Try to repopulate instance\_group if it is None * Try to repopulate instance\_group if it is None * modify duplicate // to / in doc * change host to host\_migration * Fixup test\_connection\_switch functional test * Fix SAWarning in \_flavor\_get\_by\_flavor\_id\_from\_db * Update 'os-hypervisors.inc' in api-ref * Fix os-server-groups.inc * cinder: accommodate v1 cinder client in detach call * Move config options from nova/network/manager.py * Change adminPass for several server actions * Fix os-virtual-interfaces and flavors api-ref * Make FlavorList.get\_all() return results from the API and main DBs * Objectify some tests in test\_compute and test\_flavors * Objectify test\_instance\_type\_extra\_specs * Add a DatabasePoisonFixture * config options: Use OptGroup for listing options * Live migration failure in API leaves VM in MIGRATING state * Fix flavor-access and flavor-extras api-ref * Fix diagnostics, extensions api ref * Fix typo 'mappgins' to 'mappings' * Imported Translations from Zanata * Fix hosts and az api samples * Change "libvirt.xml" back to the original after doing unrescue * Fix os-service related reference missing * Add 'binary' and 'disable-reason' into os-service * Remove unused argument v3mode * Clean up the TestGlanceClientWrapper retry tests * stop setting mtu when plugging vhost-user ports * config options: Move wsgi options into a group * Rewrite 'test\_filter\_schedule\_skipping' method using Mock * Remove stub\_compute config options * Added missing "=" in debug message * libvirt: serial console ports count upper limit needs to be checked * Imported Translations from Zanata * Return 400 on boot for invalid image metadata * Fix JSON format of server\_concepts * Remove /v1.1 endpoint from api-guide * config options: centralize section: "rdp" * Fixes hex decoding related unit tests * Fix conversion of config disks to qcow2 during resize/migration * xenapi: Fix when auto block\_migration in the API * xenapi: Fix up passing of sr\_uuid\_map * xenapi: Fix the live-migrate aggregate check * Add rebuild action descriptions in support-matrix * Config options: centralize section "hyperv" * Removal of unnecessary \`import\_opt\`s for centralized config options * Imported Translations from Zanata * Fixes bug with notify\_decorator bad getattr default value * config options: centralize section "monitors" * config options: Centralise floating ip options * Fix API Error on hypervisor-uptime API * VMware: make the opaque network attachment more robust * Add functional test for v2.7 * avoid microversion header in functional test * Add backrefs to api db models * Update reno for stable/mitaka * stop setting mtu when plugging vhost-user ports * Removes redundant object fields * Blacklist TestOSAPIFixture.test\_responds\_to\_version in python3 * Fix conversion of config disks to qcow2 during resize/migration * Remove auto generated module api documentation * Imported Translations from Zanata * Mark 2.25 as Mitaka maxmium API version * Add a hacking check for test method closures * Make Flavor.get operations prefer the API database * xenapi: Fix when auto block\_migration in the API * xenapi: Fix up passing of sr\_uuid\_map * Update to openSUSE versions * xenapi: Fix the live-migrate aggregate check * Error on API Guide warnings * Add Newton sanity check migration * Add placeholder migrations for Mitaka backports * Update .gitreview for stable/mitaka * Set RPC version aliases for Mitaka 13.0.0.0rc1 ----------- * Fix reno reverts that are still shown * Wait for device to be mapped * Add a prelude section for Mitaka relnotes * Fix reno for RC1 * libvirt: Fix ssh driver to to prevent prompting * Support-matrix of vmware for chap is wrong * Imported Translations from Zanata * Allocate free bus for new SCSI controller * config options: centralize cinder options * Add os-brick rootwrap filter for privsep * Fix retry mechanism for generator results * Add a cell and host mapping utility to nova-manage * Add release note for policy sample file update * Fix vmware quota extra specs reno formatting * Avoid lazy-loads of ec2\_ids on Instance * Replace deprecated LOG.warn with LOG.warning * libvirt: Allow use of live snapshots with RBD snapshot/clone * Typo fix in documentation * Redundant parentheses removed * Trivial: Use exact docstring for quota module * Replace deprecated LOG.warn with LOG.warning * Revert "virt: reserved hugepages on compute host" * Make tuple actually a tuple * xenapi: Image cache cannot be disabled * VMware: enable a resize of instance with no root disk * fixed typo in word "OpenStack" * hyper-v: Copies back files on failed migration * Add functional test for OverQuota * Translate OverLimit exceptions in Cinder calls * Add regression test for Cinder 403 forwarding * register the config generator default hook with the right name * pci - Claim devices outside of Claim constructor * Get instance security\_groups from already fetched instance * Use migrate\_data.block\_migration instead of block\_migration * Fix pre\_live\_migration result processing from legacy computes * Add reno for disco driver * linux\_net: use new exception for ovs-vsctl failures * Insure resource tracker updated for deleted instances * VMware: use datacenter path to fetch image * libvirt: check for optional LibvirtLiveMigrateData attrs before loading * Change SpawnIsSynchronous fixture return * Report instance-actions for live migration force complete API * Add release notes for security fixes in 13.0.0 mitaka GA * API: Raise up HTTPNotFound when no availabe while get\_console\_output * libvirt: Comment non-obvious security implications of migrate code * Update the doc of notification * fixed log warning in sqlalchemy/api.py * Add include\_disabled parameter to service\_get\_all\_by\_binary * Imported Translations from Zanata * Set personality/injected\_files to empty list if not specified * Fix processing of libvirt disk.info in non-disk-image cases * pci: avoid parsing whitelist repeatedly * Add Forbidden to caught cinder exceptions * Missing info\_cache.save() in db sqlalchemy api * tests: Add some basic compute\_api tests for attaching volumes * Clean up networks with SR-IOV binding on reschedule * virt: refactor method compute\_driver\_matches * Make force\_ and ignore\_hosts comparisons case insensitive * xenapi: fix when tar exits early during download * Address nits in I83a5f06ad * Fix config generation for Neutron auth options * Remove an unused method in FakeResourceTracker * Rework 'limited' and 'get\_limit\_and\_marker' * plugins/xenserver: Resolve PEP8 issues * Remove unused variable and redundant code path * Soft delete instance group member when delete instance * VMware: Refactor the formatting instance metadata * Remove sizelimit.py in favor of oslo\_middleware.sizelimit * libvirt: make snapshots call suspend() instead of reimplementing it * Use generic wrapper for cinder exceptions * Add ppc64le architecture to some libvirt unit tests * Add Database fixture to sync to a specific version * Drop the use of magic openstack project\_id * Aggregate object fixups * Address nits in Ia2296302 * Remove duplicated oslo.log configuration setup * libvirt: Always copy or recreate disk.info during a migration * nova-manage: Print, not raise, exceptions * virt: reserved hugepages on compute host * XenAPI:Resolve Nova/Neutron race condition * Don't use locals() and globals(), use a dict instead * update the deprecated \`\`security\_group\_api\`\` and \`\`network\_api\_class\`\` * [Ironic]Match vif-pif mac address before setting 'vif\_port\_id' * Correct the wrong usage of 'format' jsonschema keyword in servers API * Add ComputeNode and Aggregate UUID operations to nova-manage online migrations * Extend FakeCryptoCertificate.cert\_not\_valid\_after to 2 hours * Revert "functional: Grab the service version from the module" * libvirt: Fix resize of instance with deleted glance image * Reno for libvirt libosinfo with OS * Fix hyperv use of deprecated network\_api\_class * Fix v2.12 microversion REST API history doc * Add docstrings for nova.network.base\_api.get\_vifs\_by\_instance * Style improvements * Reno for Ironic api\_version opt deprecation * Release notes: online\_data\_migrations nova-manage command * nova-manage: Declare a PciDevice online migration script * test\_fields: Remove all 'Enum' subclass tests * Make test cases test\_crypto.py from NoDBTestCase * Ironic: remove backwards compatibility code * Ironic: Use ironicclient native retries for connection errors * RT: aborting claims clears instance host and NUMA info * Provide correct connector for evacuate terminate * Reset instance progress when LM finishes * Forbid new legacy notification event\_type * VMware: Remove VMwareHTTPReadFile * API: Mapping ConsoleTypeInvalid exception to HTTPBadRequest * VMware: remove deprecation warnings from oslo\_versionedobjects * Reject empty-named AZ in aggregate metadata * add checking for new image metadata property 'hw\_cpu\_realtime\_mask' * Remove unused methods in nova/utils.py * Fix string interpolations at logging calls * Generate better validation error message when using name regexes * Return 400 for os-virtual-interfaces when using Neutron * Dump metric exception text to logs * Updated from global requirements * Use SensitiveStringField for BlockDeviceMapping.connection\_info * Add index on instances table across deleted/created\_at columns * Tweak the resize\_confirm\_window help text * Enable rebuild tests in cellsv1 job * libvirt: clean up help text for live\_migration\_inbound\_addr option * Add release note for nova using neutron mtu value for vif plugging * deprecate security\_group\_api config option * update tests for use\_neutron=True; fix exposed bugs * deprecate \`\`volume\_api\_class\`\` and \`\`network\_api\_class\`\` * deprecate \`\`compute\_stats\_class\`\` config option * Deprecate the \`\`vendordata\_driver\`\` config option * Deprecate db\_driver config option * deprecate manager class options * remove default=None for config options * Check 'destination\_type' instead of 'source\_type' in \_check\_and\_transform\_bdm * Documentation fix regarding triggering crash dump * Use db connection from RequestContext during queries * Ironic: Clean up if configdrive build fails * Revert "Generate better validation error message when using name regexes" * Add unit tests for live\_migration\_cleanup\_flags * Replaced unittest and unittest2 to testtools * Sample nova.conf file has missing/duplicated config options 13.0.0.0b3 ---------- * Fix missing of unit in HostState.\_\_repr\_\_() * Make InstanceMappings.cell\_id nullable * Create BuildRequest object during boot process * Add BuildRequest object * Api\_version\_request.matches does not accept a string or None * Added Keystone and RequestID headers to CORS middleware * Generate better validation error message when using name regexes * XenAPI: introduce unit test for XenAPI plugins * Abstract a driver API for triggering crash dump * Fix evacuate support with Nova cells v1 * libvirt: don't attempt to get baseline cpu features if host cpu model is None * Ensure there are no unreferenced closures in tests * libvirt: set libvirt.sysinfo\_serial='none' for virt driver tests * libvirt: Add ppc to supported arch for NUMA * Use new inventory schema in all compute\_node gets * Remove unused libvirt \_get\_all\_block\_devices and \_get\_interfaces * Use new inventory schema in compute\_node\_get\_all() * Deprecate nova.hooks * Adjust resource-providers models for resource-pools * Fix Cells RPC API by accepting a RequestSpec arg * API: Improve os-migrateLive input parameters * Allow block\_migration and disk\_over\_commit to be None * Update time is not updated when metadata of aggregate is updated * complete the removal of api\_version from rest client parameters * objects: add HyperVLiveMigrateData stub * functional: Grab the service version from the module * Added missed '-' to the rest api history doc * Gracefully handle cancelling all events more than once * Cleanup service.kill calls in functional tests * Do not use constraints for venv * VMware: Use actual VM state instead of using the instance vm\_state * Do not pass call\_xenapi unmarshallable type * check max\_net\_count against min\_count when booting * objects: Allow instance to reset the NUMA topology * Mark 'network\_device\_mtu' as deprecated * Add service binary/host to service is down log for context * Abort an ongoing live migration * Add new APIs and deprecate old API for migrations * Deprecate conductor manager option * Xen: Calculate block\_migration if it's None * Libvirt: Calculate block\_migration if it's None * NUMATopologyFilter raise exception and not continue filter next node * Updated from global requirements * Add specific method to lazy-load instance.pci\_devices * Move logging outside of LibvirtConfigObject.to\_xml * Update the help for deprecated glance host/port/protocol options * Added missing execution of the test * Add build\_requests database table and model * Make db.aggregate\_get a reader not a writer * Remove an unnecessary variable in a unit test * Remove duplicate test case flavor\_create * Don't lazy-load instance.services if the instance is deleted * Add functional regression test for list deleted instances on v2.16 * Use constant\_time\_compare from oslo.utils * Remove APIRouterV3 * reduce pep8 requirements to just hacking * fix usage of opportunistic test cases with enginefacade * add regression test for bug #1541691 * Creates flavor\* tables in API database * Add test for unshelve in the conductor API * add a place for functional test to block specific regressions * make microversion a client level construct for tests * Allocate uuids for aggregates as they are created or loaded * bug and tests in 'instance\_info\_cache' * fix typo in comment * Fix conductor to \*really\* pass the Spec obj * Updated from global requirements * Catch iscsi VolumeDeviceNotFound when detaching * Add note about using OS-EXT-\* prefix for attribute naming * Remove use of \`list\` as variable name * resource-provider versioned objects * Fix networking exceptions in ComputeTestCase * Fix online\_data\_migrations() not passing context * Fix two bugs in online\_data\_migrations() * Make online\_data\_migrations do smaller batches in unlimited case * Use MTU value from Neutron in OVS/LB VIF wiring * tox: Remove 'oslo.versionedobjects' dependency * Fix API Guide doc * Add functional regression test for bug 1552888 * Fix an unnecessary interpolation * Change wording of microversion bump about 503 * Validate subs in api samples base class to improve error handling * Add a column for uuid to aggregate\_hosts * Hyper-V: Removes pointless check in livemigrationops * XenAPI: Fix VIF plug and unplug problem * Update ComputeNode values with disk allocation ratios in the RT * Update HostManager and DiskFilter to use ComputeNode disk ratio * Add disk\_allocation\_ratio to ComputeNode * config options: Centralise 'virt.disk' options * config options: Centralise 'virt.netutils' options * Improve 'virt.firewall' conf options documentation * config options: Centralise 'virt.firewall' options * Improve 'virt.images' conf options documentation * config options: Centralise 'virt.images' options * Update wrong comment * Fix misuse of assertTrue in console and virt tests * Failed migration shoudn't be reported as in progress * Fix missing of unit in debug info * always use python2.7 for pep8 * servicegroup: remove the zookeeper driver * Hacking: check for deprecated os.popen() * Log successful reverts\_task\_state calls * Hyper-V: os\_win related updates * Partial revert of ec2 removal patch * Fixed leaked UnexpectedMethodCallErrors in test\_compute * Unshelve using the RequestSpec object * Provide ReqSpec to live-migrate conductor task * Fix cell capacity when compute nodes are down * Fix misleading test name * Default "discoverable" policies to "@" * build smaller name regexes for validation * Add reno for block live migraton with cinder volumes * Remove support for integer ids in compute\_api.get * Add annotation to the kill() method * Add missing os types: suseGuest64/suseGuest * Hypervisor support matrix: add feature "trigger crash dump" * Update example policy.json to remove "" policies * Fixed arguement order in remove\_volume\_connection * Add better help text to scheduler options (7) * Add better help text to scheduler options (6) * RT: Decrese usage for offloaded instances * Allow saving empty pci\_device\_pools in ComputeNode object * Add StableObjectJsonFixture and use it in our base test class * nova-manage: Add hooks for running data-migration scripts * always use pip constraints * Update instance host in post live migration even when exception occurs * Use imageutils from oslo.utils * Remove duplicate key from dictionary * reset task\_state after select\_destinations failed * Pass bdm info to \_get\_instance\_disk\_info method * Fix create snapshot failure on VMs with SRIOV * Reorder name normalization for DNS * Allocate UUID for compute node * rpc.init() is being called twice per test * Use instance hostname for Neutron DNS unit tests * objects: Rename PciDevice \_migrate\_parent\_addr method * Use assertRaises() to check specific exception * libvirt: make live\_migration\_uri flag dependent on virt\_type * Remove unused CONF imports * Add /usr/local/{sbin,bin} to rootwrap exec\_dirs * write live migration progress detail to DB in migration monitor * Add migration progress detail in DB * Tolerate installation of pycryptodome * neutron: handle attach interface case with no networks * Move Disk allocation ratio to ResourceTracker * Updated from global requirements * HyperV: Fix vm disk path issue * Removal of unnecessary \`import\_opt\`s for cells config options * Fix 500 error for showing deleted flavor details * Fix \_compare\_result type handling comparison * neutron: remove redundant request.network\_id assignment * Fix reported ppc64le bug on video selection * Improve 'virt.driver' conf options documentation * Improve unit tests for instance multiple create * Change populate\_security\_groups to return a SecurityGroupList * Fix error message in imagebackend * config options: Centralise 'virt.driver' options * Avoid lazy-loading flavor during usage audit * resource\_providers, allocations and inventories models * Revert "Add new test\_rebuild\_instance\_with\_volume to cells exclude list" * Update the CONF import path for VNC * Improve 'vnc' conf options documentation * Remove discoverable policy from server:migrations resource * Improve the help text for cells options (6) * Improve the help text for cells options (5) * Improve the help text for cells options (4) * Improve the help text for cells options (3) * Improve the help text for cells options (2) * Allow block live migration of an instance with attached volumes * Implement an indexed ResourceClass Enum object * Add check to limit maximum value of max\_rows * Fix spelling mistake * Add methods for RequestContext to switch db connection * virt: osinfo will report once if libosinfo is not loaded * Replace eventlet-based raw socket client with requests * Add a tool for reserving migration placeholders during release time * libvirt: check for interface when detach\_interface fails * libvirt: implement LibvirtConfigGuestInterface.parse\_dom * Filter APIs out from services list * Config options: centralize options in conductor api * Improve the help text for cells options (1) * VMware: add release notes for the limits * Get a ReqSpec in evacuate API and pass it to scheduler * Fixes cells py3 unit tests * Fixes network py3 unit tests * Fixes Python 3 unit tests for nova.compute * Add new test\_rebuild\_instance\_with\_volume to cells exclude list * Add some obvious detail to nw\_info warning log * Fix fallocate test on newer util-linux * Remove \_create\_local function * Trivial logic cleanup in libvirt pre\_live\_migration * Return HTTP 400 for invalid server-group uuid * Properly inject network\_data.json in configdrive * enginefacade: remove 'get\_session' and 'get\_api\_session' * enginefacade: 'request\_spec' object * Add new API to force live migration to complete * Add new DB API method to retrieve migration for instance * Imported Translations from Zanata * Updated from global requirements * Sync L3Driver, NullL3 interface with LinuxNetL3 * Top 100 slow tests: api.openstack.compute.test\_api * Top 100 slow tests: api.openstack.compute.test\_versions * Top 100 slow tests: legacy\_v2.test\_servers * Top 100 slow tests: api.openstack.compute.test\_flavor\* * Top 100 slow tests: api.openstack.compute.test\_image\_size * Top 100 slow tests: api.openstack.compute.test\_volumes * Confusing typo fixed * doc: all\_tenants query option incorrectly identified as non-admin * Update driver support matrix for Ironic * parametrize max\_api\_version in tests * libvirt: Race condition leads to instance in error * Avoid lazy-loads in metadata requests * Join flavor when re-querying instance for floating ip association * Allow all api\_samples tests to be run individually * Make os-instance-action read deleted instances * enginefacade: 'flavor' * Updated from global requirements * Use instance hostname for Neutron DNS * libvirt: Make behavior of os\_require\_quiesce consistent * Split-network-plane-for-live-migration * Database not needed for most cells messaging tests * libvirt: use osinfo when configuring the disk bus * libvirt: use osinfo when configuring network model * Database not needed for test class: ConsoleAPITestCase * Database not needed for test class: ConductorImportTest * virt: adjusting the osinfo tests to use fakelibosinfo * Database not needed for RPC serializer tests * Database not needed for most crypto tests * Database not needed for most nova manage tests * ebtables/libvirt workaround * Test that new tables don't use soft deletes * Use instance in setup\_networks\_on\_host * enginefacade: test\_db\_api cleanup, missed decorators * Database not needed for test class: PciGetInstanceDevs * Add test coverage to functional api tests \_compare\_result method * Remove and deprecate conductor provider\_fw\_rule\_get\_all() * Remove prelude from disk-weight-sch reno * Enable volume operations for shelved instances * Gracefully handle a deleting instance during rebuild * remove the unnecessary parem of set\_vm\_state\_and\_notify * tests: adding fake libosinfo module * config options: Centralise 'vnc' options * config options: Make noVNC proxy into vnc group * Improve 'pci' conf options documentation * config options: centralize section "wsgi" * libvirt: deprecate live/block\_migration\_flag opts * Tidy up scheduler\_evolution.rst * config options: add hacking check for help text length * xrange() is renamed to range() in Python 3 * Do not use "file" builtin, but "open" instead * Fix some word spellings in messages * No need to have ironicclient parameter in methods * Add a TODO to make ComputeNode.cpu\_info non-nullable * Fix missing marker functions in nova/pci * Adding volume operations for shelved instances * Optimize Instance.create() for optional extra fields * Optimize servers path by pre-joining numa\_topology * Trivial: Remove a duplicated word * Update the home-page * Add better help text to scheduler options (5) * Switch to oslo.cache lib * Remove all remaining references to Quantum * doc: remove detail about extensions * Add description for trigger crash dump * Object: Give more helpful error message in TestServiceVersion * Spread allocations of fixed ips * Updated from global requirements * Stop using mox (scheduler) * Fix xvpvncproxy config path when running n-xvnc * Optimize the instance fetched by floating\_ips API * Improve efficiency of Migration.instance property * Prevent \_heal\_instance\_info\_cache() periodic lazy-loads * Revert "Added new scheduler filter: AggregateTypeExtraSpecsAffinityFilter" * Remove unused provider firewall rules functionality in nova * enginefacade: 'instance\_tags' * Apply scheduler limits to Exact\* filters * Fix typos in nova/scheduler and nova/virt * Replace exit() by sys.exit() * Trivial: Fix a typo in test\_policy.py * neutronv2: Allow Neutron to specify OVS/LB bridge * HyperV: do not log twice with different level * Replace stubs.Set with stub\_out (db) * Add a disk space weight-based scheduler * Fix up live-migration method docstrings * Libvirt: Support ovs fp plug in vhostuser vif * xenapi: simplify swap\_xapi\_host() * Allow sending the migrate data objects over the wire * Added new scheduler filter: AggregateTypeExtraSpecsAffinityFilter * Replace "all\_mappings" variable by "block\_device\_mappings" * Add better help text to scheduler options (4) * Migrate from keystoneclient to keystoneauth * fast exit dhcpbridge on 'old' * Ironic: Lightweight fetching of nodes * Fix RequestSpec \_from\_db\_object * doc:Ask reviews to reject new legacy notifications * Generate doc for versioned notifications * doc: add devref about versioned notifications * Adds json sample for the versioned notifications * relocate os\_compute\_api:servers:discoverable * libvirt: convert to use instance.image\_meta property * Updated from global requirements * doc: fix malformed api sample * Persist the request spec during an instance boot * Revise the compute\_upgrade\_levels\_auto release note * Adding guard on None value for some helpers method * Return HTTP 400 if volume size is not defined * API: Rearrange HTTPBadRequest raising in \_resize * remove the wrong param of fake\_db\_migration initiation * Enable all extension for server PUT API sample tests * Config options: centralize options in availability\_zones * We now require gettext for dev environments * Revert "Pass host when call attach to Cinder" * update feature support matrix documentation * Config options: centralize section "cells" * Use uuidsentinel in host\_status test * remove not used tpl * Return 409 instead of 503 when cidr conflict * releasenotes: Note on CPU thread pinning support * Use extra\_data\_func to get fingerprints of objects * Use stevedore for scheduler driver * Use stevedore for scheduler host manager * Enables conductor py3 unit tests * REST API changes for user settable server description * Use get\_notification\_transport() for notifications * Stop using stubs.Set in vmwareapi unit tests * Add tests for nova.rpc module * libvirt: check min required qemu/kvm versions on ppc64/ppc64le * VMware: Handle image size correctly for OVA and streamOptimized images * enginefacade: 'instance\_group' * enginefacade: 'floating\_ip' * enginefacade: 'compute\_node' * enginefacade: 'service' * Hyper-V: Trace original exception before converting exception * Fixed incorrect names/comments for API version 2.18 * Remove mox from tests/unit/objects/test\_keypair.py * API: Remove unexpected from errors get\_console\_output * Updated from global requirements * Fix docstrings for sphinx * Make project\_id optional in v2.1 urls * remove not used tpl file * Log retries at INFO level per guidelines * make logic clearer about template selection * Add ITRI DISCO os-brick connector for libvirt * Fix misleading comment of pci\_stats * cleanup: remove python 2.6 compat assertNotIsInstance * Add better help text to scheduler options (3) * (lxc) Updated regex to ignore failing tests * Add better help text to scheduler options (2) * Add better help text to scheduler options (1) * Note in HypervisorSupportMatrix for Libvirt/LXC shutdown kernel bug * Ceph for live-migration job * enginefacade: 'security\_group' * enginefacade: 'instance' * enginefacade: 'fixed\_ip' * enginefacade: 'quota' and 'reservation' * Python3: Replace dict.iteritems with six.iteritems * Updated from global requirements * Object: Fix wrong usage migrate\_data\_obj * \_can\_fallocate should throw a warning instead of error * VMware: no longer convert image meta from dict to object * cleanup: add comments about the pre/post extension processing * cleanup: remove custom serializer support * Add description for server query * remove docs about format extensions * Remove catching of ComputeHostNotFound exception * Return empty object list instead [] * cleanup: remove configurable action\_peek * libvirt: use native AIO mode for cinder volumes * libvirt: use native AIO mode for image backends * Issue an info log msg when port quota is exceeded * Validate translations * Imported Translations from Zanata 13.0.0.0b2 ---------- * doc: add client interactive guideline for microversions * doc: add version discovery guideline in api concept doc * doc: completes microversion use-cases in api concept doc * Fix indents of servers-detail-resp.json * libvirt: make snapshot use RBD snapshot/clone when available * Improve the help text for the cert options * cleanup: remove infrastructure for content/type deserializer * Pass host when call attach to Cinder * Pass attachment\_id to Cinder when detach a volume * libvirt: Fix/implement revert-resize for RBD-backed images * Added super() call in some of the Model's child * enginefacade: 'ec2\_instance' and 'instance\_fault' * cleanup: collapse wsgi serializer test hierarchy * Add service status notification * cleanup: remove wsgi serialize/deserialize decorators * enginefacade: 'block\_device\_mapping' * Fix invalid import order * Add a REST API to trigger crash dump in an instance * libvirt: adding a class to retrieve hardware properties * virt: introduce libosinfo library to set hardware policy * pci: changing the claiming and allocation logic for PF/VF assignment * pci: store context when creating pci devices * Make emitting versioned notifications configurable * Add infra for versioned notifications * Make sure that we always have a parent\_addr set * change set\_stubs to use stub\_out in vmwareapi/stubs.py * Add note to ComputeNode.numa\_topology * Reno for lock policy * Clean up nova/conf/scheduler.py * Reno for Xen rename * config options: Make xvp proxy into vnc group * XenAPI: Fix race on rotate\_xen\_guest\_logs * Add exception handling in \_cleanup\_allocated\_network * hardware: check whether realtime capable in API * Remove releasenotes/build between releasenotes runs * Add python3\* packages to development quickstart guide * Make sure full stack trace is logged on RT update failure * Changed filter\_by() to filter() during filtering instances in db API * config options: Centralise PCI options * HyperV: Set disk serial number for attached volumes * Use "regex" of StrOpt to check option "port\_range" * enable uefi boot * VMware: convert to use instance.image\_meta property * Config drive: convert to use instance.image\_meta property * Use of six.PY3 should be forward compatible * Add host\_status attribute for servers/detail and servers/{server\_id} * Revert "Workaround reno reverts by accepting warnings" * Adds relase notes for soft affinity feature * libvirt: handle migrate\_data as object in cleanup method * Create filter\_properties earlier in boot request * Parse availability\_zone in API * Add object and database support for host\_status API * Workaround reno reverts by accepting warnings * ports & networks gather should validate existance * objects: add virtual 'image\_meta' property to Instance object * compute: convert manager to use nova.objects.ImageMeta * Replace stubs.Set with stub\_out (os) * Fix Mock assert\_called\_once\_with() usage * ServerGroupsV213SampleJsonTest should actually test v2.13 * Move config options from nova/cert directory * Remove dead code from reserve\_block\_device\_name rpcapi * Adapt the code to the new get\_by\_volume BDM functions * Fix undetected races when getting BDMs by volume id * Fix instance not destroyed after successful evacuation * Use TimeFixture from oslo\_utils in functional tests * Fix indexing of dict.keys() in python3 * libvirt: add a new live\_migration\_tunnelled config * libvirt: force config related migration flags * libvirt: force use of direct vs p2p migration * libvirt: force use/non-use of NON\_SHARED\_INC flag * libvirt: parse live migration flags at startup * enginefacade: 'aggregate' * Add helper shim for getting items * hacking: check for common double word typos * Fix backing file detection in libvirt live snapshot * trivial: Add additional logs for NUMA scheduling * Add 'hw:cpu\_threads\_policy=isolate' scheduling * Replaces itertools.izip with six.moves.zip * Clean up network resources when reschedule fails * Replace stubs.Set with stub\_out (fakes) * Add maximum microversions for each releases * Remove "or 'reserved'" condition from reserve\_block\_device\_name * live-migration hook ansible 2.0 compaitability * update min tox version to 2.0 * pci: adding support to specify a device\_type in pci requests * Block flaky python34 test : vmwareapi.test\_configdrive.ConfigDriveTestCase * Actually pass the migration data object down to the virt drivers * nova conf single point of entry: fix error message * Fix sphinx warnings from signature\_utils * Sets binding:profile to empty dic when unbinding port * Use timedelta.total\_second instead of calculating * Use stub\_out and mock to remove mox:part 3 * Replaces \_\_builtin\_\_ with six.moves.builtins * Remove mm-ctl from network.filters * Add mm-ctl to compute.filters * Add reviewing point related to REST API * Stop using mox stubs in nova.tests.unit.console * pci: do not filter out any SRIOV Physical Functions * objects: update the old location parent\_addr only if it has value * Add xenapi support for XenapiLiveMigrateData objects * Fixes Hyper-V unit tests for latest os\_win release * Add 'hw:cpu\_thread\_policy=require' scheduling * add "hw\_firmware\_type" image metadata * Docstring change for consistency * Add tests for metadata functions * libvirt: fix TypeError calling \_live\_migration\_copy\_disk\_paths * Add DiskFormat as Enum in fields * Remove DictCompat from EC2 objects * Remove DictCompat from DNSDomain * Add description on how to run ./run\_test.sh -8 * Propagate qemu-img errors to compute manager * Change assertEqual(True/False) to assertTrue/False * objects: adding a parent\_addr field to the PciDevice object * Add caching of service\_min\_versions in the conductor * Scheduler: enforce max attempts at service startup * Fix unit tests on Mac OS X * Stop using mox stubs in nova.tests.unit.api.openstack.compute.test\_services * libvirt: add discard support for attached volumes * Remove DictCompat from CellMapping * Remove NovaObjectDictCompat from Aggregate * XenAPI: Cope with more Cinder backends * single point of entry for sample config generation * Remove Deprecated EC2 and ObjectStore impl/tests * libvirt: add realtime support * Imported Translations from Zanata * libvirt: update to min required version to 0.10.2 * Remove null AZ tests from API tests * Replace stubs.Set with stub\_out (functional tests) * Updated from global requirements * doc: minor corrections to the API version docco * Refactor \_load\_support\_matrix * Fix format conversion in libvirt snapshot * Fix format detection in libvirt snapshot * api: add soft-affinity policies for server groups * scheduler: fill RequestSpec.instance\_group.members * scheduler: add soft-(anti-)affinity weighers * Implements proper UUID format for compute/test\_stats\* * Add image signature verification * Convert nova.tests.unit.image.fake.stub\_out\_image\_service to use stub\_out * Block more flaky py34 tests * Replace deprecated library function os.popen() with subprocess * Remove mox and Stubs from tests/unit/pci/test\_manager.py * Correct the code description * Fix advice for new contribs * libvirt: better error for bad live migration flag * Add argument to support-matrix sphinx extension * Wrong URL reported by the run\_tests.sh message * Make use of 'InstanceNUMACell.cpu\_policy' field * Add 'cpu\_policy' and 'cpu\_thread\_policy' fields * Add 'CPUThreadAllocationPolicy' enum field * Blacklist flaky tests and add warning * Modify Scheduler RPC API to use RequestSpec obj * Implements proper UUID format for test\_compute\_mgr * Remove get\_lock method and policy action * libvirt: sort block\_device\_list in volume\_in\_mapping log * Stop explicitly running test discovery for py34 * introduce \`\`stub\_out\`\` method to base test class * Cleanup NovaObjectDictCompat from security\_group\_rule * Remove useless header not need microversion * Implements proper UUID format for test\_compute * Move Process and Mentoring pages to devref * Document restrictions for working on cells v1 * api-guide: add a doc on users * Assignment (from method with no return) removed * remove use of \_get\_regexes in samples tests * Improve 'virt' conf options documentation * config options: Centralise 'virt.hardware' options * Get list of disks to copy early to avoid multiple DB hits * Remove non-unicode bind param warnings * Fix typo, ReST -> REST * Wrong spelling of defined * libvirt: fix typo in test\_init\_host\_migration\_flags * docs: update refs to mitaka release schedule * doc: add how to arrange order of scheduler filters * libvirt: only get instance.flavor if needed in get\_disk\_mapping * Replace backtick with apostrophe in lazy-loading debug log * libvirt: fix TypeError in find\_disk\_dev\_for\_disk\_bus * Fix RPC revision log entry for 4.6 * signature\_utils: move to explicit image metadata * Unreference mocks are listed in the wrong order * remove API v1.1 from testing * remove /v1.1 from default paste.ini * libvirt: verify cpu bw policy capability for host * Implements proper UUID format for test\_compute\_cells and test\_compute\_utils * Add the missing return value in the comment * Updated from global requirements * xen: block BootableTestCase from py34 testing * Modify conductor to use RequestSpec object * db: querry to retrieve all pci device by parent address * db: adding columns to PciDevice table * Replace except Exception with specific exception * pci: minor fix to exception message format * Python 3 deprecated the logger.warn method in favor of warning * Check added for mandatory parameter size in schema * Remove redundant driver initialization in test * enginefacade: 'instance\_metadata' * Misspelling in messages * Add lock to host-state consumption * Add lock to scheduler host state updating * Allow virt driver to define binding:host\_id * [python3] Webob request body should be bytes * Replace copy.deepcopy of RequestContext with copy.copy * DriverBlockDevice must receive a BDM object, not a dict * Misspelling in message * Wrong usage of "a" * Remove unused logging import and LOG global var * Reduce the number of db/rpc calls to get instance rules * Use is\_supported() to check microversion * SameHostFilter should fail if host does not have instances * VMware: add method for getting hosts attached to datastore * Trivial: Fix wrong comment in service version * signature\_utils: handle ECC curve unavailability * Updated from global requirements * tests: Remove duplicate check * enginefacade: 'bw\_usage', 'vol\_usage' and 's3\_image' * VMware: improve instance names on VC * VMware: add in folder support on VC * VMware: cleanup unit test global variable * signature\_utils: refactor the list of ECC curves * Nuke EC2 API from api-paste and remove wsgi support * Remove cruft for things o.vo handles * Make scheduler\_hints schema allow list of id * Change logging level for 'oslo\_db' * Remove unused compute\_api in ServerUsageController * network: Don't repopulate instance info cache from Neutron ports * Fix doc comment for get\_available\_resource * objects: lazy-load instance.security\_groups more efficiently * VMware: cleanup unit tests * Use SpawnIsSynchronousFixture in most unit tests * Use stub\_out and mock to remove mox: part 1 * Disable the in tree EC2 API by default * deprecate old glance config options * remove temporary GlanceEndpoint object * convert GlanceClientWrapper to endpoint * Use stub\_out and mock to remove mox: part 2 * Add a compute API to trigger crash dump in instance * Make libvirt driver return migrate data objects for source and dest checks * Use TimeFixture from oslo\_utils to override time in tests * enginefacade: 'vif' and 'task\_log' * review guide: add location details for config options * libvirt: wrapper list\_guests to Host's object * remove vestigial XML\_NS\_V11 variable * remove unused EXTENSION\_DESERIALIZE\_\* constants * config options: Centralise 'virt.ironic' options * remove unused pipeline\_factory\_v3 alias * remove unused methods from integrated\_helpers test class * remove unused extends\_name attribute * Add upload/download vhd2 interfaces * Replace unicode with six.text\_type * conductor: fix unbound local variable request\_spec * Use just ids in all request templates for flavors/images * extract non instance methods * remove unused trigger\_handler * remove unused update\_dhcp\_hostfile\_with\_text method * remove nova-cert from most functional tests * enginefacade: 'migration' * XenAPI: Fix race in rotate\_xen\_guest\_logs * libvirt: introduce "pause" to Guest's object * libvirt: introduce "shutdown" to Guest's object * libvirt: introduce "snapshot" to Guest's object * libvirt: introduce thaw filesystems * libvirt: introduce freeze filesystems * libvirt: replace direct libvirt's call AbortJobBlock * Allow to update 'v2.1' links in sample files * Do not update links for 'versions' tests * centeralized conf:compute/emphemeral\_storage\_encryption * Add instance.save() when handling reboot in init instance * Add transitional support for migrate data objects to compute manager * Implements proper UUID format for few objects tests * Filter by leased=False when allocating fixed IPs * Increase informations in nova-net warnings * docs: add concept guide for certificate * Fix reclaim\_instance\_interval < 0 never delete instance completely * Updated from global requirements * Add placeholders for config options * Implements proper UUID format for the fake\_network * Refresh stale volume BDMs in terminate\_connection * Block requests 2.9.0 * Implements proper UUID format for the test\_compute\_api * Remove onSharedStorage from evacuate API * Fix CPU pinning for odd number of CPUs w hyperthreading * hardware: stop using instance cell topology in CPU pinning logic * Check context before returning cached value * deprecate run\_tests.sh * remove archaic references to XML in api * simplify the request / response format document * Add signature\_utils module * Remove XML description from extension concept * remove ctype from classes * Remove cells service from api samples that don't test cells * Add uuidsentinel test module * Remove the wrong usage of api\_major\_version in api sample tests * Updated from global requirements * Fix wrong method name in doc filter\_scheduler * doc: update threading.rst * Makes GET extension info sample tests run for v2 also * update api\_samples code to use better variables * Remove incorrect comments about file injection * Remove a restriction on injection files * Remove unnecessary log when search servers * Deprecated tox -downloadcache option removed * rework warning messages for extension whitelist/blacklist * Make sure bdm.volume\_id is set after auto-creating volumes * Replace safe\_utils.getcallargs with inspect.getcallargs * Fix wrap\_exception to get all arguments for payload * Add hypervisor, aggregates, migration description * retool xen glance plugin to work with urls * always create clients with GlanceEndpoint * Implement GlanceEndpoint object * Clean up glance url handling * Use RequestSpec in the ChanceScheduler * Modify left filters for RequestSpec * Modify NUMA, PCI and num\_instances filters for RequestSpec * Improve inject\_nmi() in libvirt driver and add tests * Report compute-api bugs against nova * XenAPI: Expose labels for ephemeral disks * Fix use of safeutils.getcallargs * Cache SecurityGroupAPI results from neutron multiplexer * Remove the executable bit from several python files * Optimize \_cleanup\_incomplete\_migrations periodic task * [Py34] api.openstack.compute.legacy\_v2.test\_servers.Base64ValidationTest * [Py34] api.openstack.test\_faults.TestFaultWrapper * [Py34] Enable api.openstack.test\_wsgi unit test * default host to service name instead of uuid * Remove start\_service calls from the test case * Add SIGHUP handlers for compute rpcapi to console and conductor * Cache the automatic version pin to avoid repeated lookups * virt: allow for direct mounting of LocalBlockImages * Use testscenarios to set attributes directly * update API samples to use endpoints * Updated from global requirements * Add project-id and user-id when list server-groups * Fixes Python 3 compatibility for filter results * Remove duplicate default=None for option compute\_available\_monitors * Disable IPv6 on bridge devices * Don't load deleted instances * Improve Filter Scheduler doc clarity * libvirt: report pci Type-PF type even when VFs are disabled * Remove deprecated neutron auth options * Fix capitalization of IP * Add separated section for configure guest os * Add separated section for extra specs and image properties * Add a note about fixing "db type could not be determined" with py34 * neutron: skip test\_deallocate\_for\_instance\_2\* in py34 job * tighten regex on objectify * Replace os.path.join() for URLs * Add hv testing for ImageMetaProps.\_legacy\_property\_map * Edit the text to be more native-English sounding * docs: add test strategy and feature classification * Fix the endpoint of /v2 on concept doc * Drop JSON decoding for supported\_instances * docs: update old stuff in version section * Scheduler: honor the glance metadata for hypervisor details * Implements proper UUID format for the ComputeAPITestCase * docs: add microversions description in the concept doc * Make admin consistent * Add more concepts for servers * Make "ReSTful service" consistent * Add retry logic for detaching device using LibVirt * Fix Exception message consistency with input protocol * Remove SQLite BigInteger/Integer translation logic * xen: Drop JSON for supported\_instances * vmware: Drop JSON for supported\_instances * ironic: Drop JSON for supported\_instances * hyperv: Drop JSON for supported\_instances * libvirt: Drop JSON for supported\_instances * Drop JSON for stats in virt API * Replaces izip\_longest with six.moves.zip\_longest * Fixes dict keys and items references for Python 3 * Scheduler: correct control flow when forcing host * Replaces longs with ints * neutron: only get port id when listing ports in validate\_networks * neutron: only list ports if there is a quota limit when validating * Add reviewing point related to REST API * Revert "Enable options for oslo.reports" * Fix wrong CPU metric value in metrics\_filter * Reset the compute\_rpcapi in Compute manager on SIGHUP * Remove the unused sginfo rootwrap filter * docs: ensure third party tests pass before +2 * Config options: centralize section "scheduler" * add api-samples tox target * Remove Instance object flavor helper methods only used in tests * Remove unnecessary extra instance saves during resize * docs: using the correct format and real world example for fault message * VMware: cleanup ExtraSpecs * Remove HTTPRequestEntityTooLarge usage in test * Enables py3 unit tests for libvirt.host module * Replaces \_\_builtin\_\_ with six.moves.builtins * Converting nova.virt.hyperv to py3 * Hyper-V: removes \*Utils modules and unit tests * docs: update services description for concept guide * docs: remove duplicated section about error handling * Remove Useless element in migrate\_server shcema * Optimize "open" method with context manager * trivial: Add some logs to 'numa\_topology\_filter' * Updated from global requirements * Docs: update the concept guide for Host topics * Cleanup of compute api reboot method * Hyper-V: adds os-win library * Remove description about image from faults section * api-guide: add note about users * Updated from global requirements * xenapi: Add helper function and unit tests for client session * Config options: centralize section "scheduler" * Ironic: Workaround to mitigate bug #1341420 * Libvirt: Support fp plug in vhostuser vif * Remove version from setup.cfg 13.0.0.0b1 ---------- * Add note for automatic determination of compute\_rpc version by service * Add note for Virtuozzo supporting snapshots * Add note for HyperV 2008 drop of support * Imported Translations from Zanata * Add note for removing conductor RPC API v2 * Add note for dropping InstanceV1 objects * Add note for force\_config\_drive opt change * Add note for deprecating local conductor * Revert "Detach volume after deleting instance with no host" * force releasenotes warnings to be treated as errors * Fix reno warning for API DB relnote * Adding a new vnic\_type for Ironic/Neutron/Nova integration * Use o.vo DictOfListOfStringsField * libvirt: remove todo note not useful anymore * Modify metric-related filters for RequestSpec * Modify default filters for RequestSpec * servicegroup: stop zombie service due to exception * Add persistence to the RequestSpec object * Updated from global requirements * add hacking check for config options location * Correct some nits for moving servers in concept doc * use graduated oslo.policy * TrivialFix: remove 'deleted' flag * Make server concept guide use 'server' consistently * api-guide: fix up navigation bar * Use version convert methods from oslo\_utils.versionutils * docs: reorder move servers text * docs: add clarifications to move servers * Change some wording on server\_concepts.rst * Cleanup unused test code in test\_scheduler.py * Modify Aggregate filters for RequestSpec * Add code-review devref for release notes * Hyper-V: refines the exceptions raised in the driver * Use o.vo FlexibleBooleanField * docs: describe migration and other movement concepts * Double 'an' in message * Unify on \_schedule\_instances * Add review guideline to microversion API * Remove the TestRemoteObject class * Catch FixedIpNotFoundForAddress when create server * doc: add server status to concept.rst * docs: update the concept guide shelve actions * Fixed incorrect name of 'tag' and 'tag-any' filters * Fix resource tracker VCPU counting * Add relnote for change in default setting * use NoDBTestCase for KeypairPolicyTest * doc: change policies.rst to indicate API links * Remove useless code in \_poll\_volume\_usage function * Neutron: add logging context * Remove unused param of CertificatesController * Add user data into general concept * Fix a typo in api-guide doc * Make some classes inherit from NoDBTestCase * XenAPI: Workaround for 6.5 iSCSI bug * NFS setup for live-migration job * Fix ebtables-version release note * config options: enhance help text of section "serial\_console" * Updating nova config-reference doc * Updated from global requirements * Prevent redundant instance.update notifications * VMware: fix docstring for cluster management * api: remove re-declared type in migrate schema * enginefacade: 'agent' and 'action' * config options: centralize section "serial\_console" * Replaced private field in get\_session/engine with public method * SR-IOV: Improve the vnic type check in the neutron api * Simplified boolean variable check * update connect\_volume test * Enable options for oslo.reports * Reverse sort tables before archiving * scheduler: fix incorrect log message * Updated from global requirements * Add release note for API DB migration requirements * Replaced deprecated timeutils methods * Multinode job for live-migration * Use o.vo VersionPredicateField * Use flavor instead of flavour * Corrected few grammatical nitpics * Add more 'actions' for server concepts doc * libvirt: mlnx\_direct vif type removal * xen: mask passwords in volume connection\_data dict * Updated from global requirements * Use --concurrent with ebtables * Removed extra spaces from double line strings * Change test function name to make more sense * Change Invalid exception to a specified exception * Add 'lxd' to the list of recognized hypervisors * Add microversions schema unit test for None * Clean up legacy multi-version test constructs * Fix Nova's indirection fixture override * Remove skips for resize tests from tempest-dsvm-cells-rc * Modify Affinity filter for RequestSpec * Prepare filters for using RequestSpec object * Use ServiceList object rather than direct db call * Add relnote for ERT deprecation * Remove IN-predicate warnings * docs: update the API faults concept guide * Deprecate nova-manage service subcommand * Double detach volume causes server fault * Use JSON format instead of json format * Network: add in missing translation * cells is a sad panda about scheduler hints * VMware: expand support for Opaque networks * Fix is\_volume\_backed\_instance() for unset image\_ref * Add \_LE to LOG.error statement in nova/service * Add service records for nova-api services * Added method is\_supported to check API microversions * enginefacade: 'host\_mapping' * Removes support for Hyper-V Server 2008 R2 * Fix the bug of "Error spelling of 'explicitely'" * Claims: fix log message * Fix paths for api-guide build * Remove flavors.get\_flavor() only used in tests * VMware: Raise DiskNotFound for missing disk device * Remove two unneeded db lookups during delete of a resizing instance * Fix pci\_stats logging in resource tracker * live-mig: Mark migration as failed on fail to schedule * Move the Migration set-status-if-exists pattern to a method * Don't track migrations in 'accepted' state * live-migrate: Change the status Migration is created with * compute: split check\_can\_live\_migrate\_destination * Replace N block\_device\_mapping queries with 1 * Add "unreleased" release notes page * Add reno for release notes management * XenAPI: Correct hypervisor type in Horizon's admin view * Fix typo in test\_post\_select\_populate * Rearranges to create new Compute API Guide * Added CORS support to Nova * Aggregate Extra Specs Filter should return if extra\_specs is empty * cells: skip 5 networking scenario tests that use floating IPs * force\_config\_drive: StrOpt -> BoolOpt * Updated from global requirements * Add test coverage for both types of not-found-ness in neutronclient for floating * Fix impotent \_poll\_shelved\_instances tests * Fix race in \_poll\_shelved\_instances task * Handle a NeutronClientException 404 Error for floating ips * Handle DB failures in servicegroup DB driver * Hook for live-migration job * Omit RescheduledException in instance\_fault.message * Remove duplicate server.kill on test shutdown * make the driver.Scheduler as abstract class * Fix a spelling mistake in the log * objects: remove remote\_object\_calls from \_BaseTestCase * Repair and rename test\_is\_volume\_backed\_instance\_no\_bdms() * Use ObjectVersionChecker fixture from oslo.versionedobjects * VMware: add in vif resource limitations * Untie subobject versions * Block oslo.messaging 2.8.0 * Split up test\_is\_volume\_backed\_instance() into five functions * Avoid the dual-naming confusion * enginefacade: 'provider\_fw', 'console\_pool' and 'console' * enginefacade: 'network' * clean up regex in tempest-dsvm-cells-rc * skip lock\_unlock\_server test for cells * ScalityVolume:fix how remote FS mount is detected * OpenStack typo * Remove duplicate keys in policy.json * Add missing policy rules * devref:Don't suggest decorate private method * VMware: use a constant for 'iscsi' * Config drive: make use of an instance object * Fix attibute error when cloning raw images in Ceph * Properly log BlockDeviceMappingList in \_create\_block\_device\_mapping * Exclude all BDM checks for cells * glance:add helper method to get client version * enginefacade: 'dnsdomain' and 'ec2' * enginefacade: 'certificate' and 'pci\_device' * enginefacade: 'key\_pair' and 'cell' * enginefacade: 'instance\_mapping' * enginefacade: 'cell\_mapping' * enginefacade: 'instance\_info' and 'instance\_extra' * Use EngineFacade from oslo\_db.enginefacade * VMware: fix trivial indentations * Remove flavors.get\_all\_flavors() only used in tests * Make lock policy default to admin or owner * libvirt:Fix a typo of test cases * Deprecate local conductor mode * Deprecate Extensible Resource Tracker * Change image to instance in comment * VMware: use oslo\_config new type PortOpt * Remove vcpu resource from extensible resource tracker * Add logging to snapshot\_volume\_backed method * Remove unnecessary destroy call from Ironic virt driver * cells: add debug logging to bdm\_update\_or\_create\_at\_top * Drop Instance v1.x support * Check prefix with startswith() instead of slicing * Add debug logging for when boot sequence is invalid in \_validate\_bdm * remove the redundant policy check for SecurityGroupsOutputController * virt: add constraint to handle realtime policy * libvirt: add cpu schedular priority config * libvirt: rework membacking config to support future features * Do not mask original spawn failure if shutdown\_instance fails * Point to cinder options in nova block alloc docs * Fix booting fail when unlimited project quota * Remove useless get\_instance\_faults() * Remove "Can't resolve label reference" warnings * Remove reservation\_id from the logs when a schedule fails * Use RequestSpec object in HostManager * Use RequestSpec object in the FilterScheduler * Add ppcle architectures to libvirt blockinfo * Deprecated: failIf * Imported Translations from Zanata * Remove obj\_relationships from objects * Delete dead test code * Add tempest-dsvm-lxc-rc * Mark set-admin-password as complete for libvirt in support matrix * Hypervisor support matrix: define pause & unpause * Revert "Implement online schema migrations" * Fix the os-extended-volumes key reference in the REST API history docs * Remove get\_all method from servicegroup API * Remove SoftDeleteMixin from NovaBase * libvirt: support snapshots with parallels virt\_type * Use oslo.config choices kwarg with StrOpt for servicegroup\_driver * Imported Translations from Zanata * Add -constraints sections for CI jobs * Add "vnc" option group for sample nova.conf file * Updated from global requirements * Expands python34 unit tests list * Fix missing obj\_make\_compatible() for ImageMetaProps object * Fix error handling in nova.cmd.baseproxy * Change 'ec2-api' stackforge url to openstack url * Fixes Python 3 str issue in ConfigDrive creation * Revert "Store correct VirtCPUTopology" * Enable all extension for image API sample tests * Add tags to .gitignore * Updated from global requirements * Add a nova functional test for the os-server-groups GET API with all\_projects parameter * Image meta: treat legacy vmware adapter type values * Attempt rollback live migrate at dest even if network dealloc fails * hacking check for contextlib.nested for py34 support * Print number of rows archived per table in db archive\_deleted\_rows * Updated from global requirements * Fix more inconsistency between Nova-Net and Neutron * Fix metadata service security-groups when using Neutron * Remove redundant deps in tox.ini * Add some tests for map\_dev * Clean up tests for dropping obj\_relationships * Fix up Service object for manifest-based backports * Fix service\_version minimum calculation for compute RPC * docs: add the scheduler evolution plans * Revert "virt: Use preexec\_fn to ulimit qemu-img info call" * Updated from global requirements * Ensure Glance image 'size' attribute is 0, not 'None' * Ignore errorcode=4 when executing \`cryptsetup remove\` command * libvirt: Don't attempt to convert initrd images * Revert "Fixes Python 3 str issue in ConfigDrive creation" * Monkey patch nova-ec2 api * Compute: remove unused parameter 12.0.0 ------ * Omnibus stable/liberty fix * Drop outdated sqlite downgrade script * Updated from global requirements * Fix Status-Line in HTTP response * Imported Translations from Zanata * Default ConvertedException code to 500 * Updated from global requirements * VMware: fix bug for config drive when inventory folder is used * Fix a typo * code-review guidelines: add checklist for config options * Add a code-review guideline document * virt: Use preexec\_fn to ulimit qemu-img info call * Clean up some Instancev1 stuff in the tests * Updated from global requirements * Replaces contextlib.nested with test.nested * Sync cliutils from oslo-incubator * Make archive\_deleted\_rows\_for\_table private 12.0.0.0rc2 ----------- * load consoleauth\_topic option before using it * Revert "[libvirt] Move cleanup of imported files to imagebackend" * Add more documentation for RetryFilter * Fix InstanceV1 backports to use context * Imported Translations from Zanata * Add test of claim context manager abort * Log DBReferenceError in archive\_deleted\_rows\_for\_table * Use DBReferenceError in archive\_deleted\_rows\_for\_table * Add testresources used by oslo.db fixture * Remove unused context parameter from db.archive\_deleted\_rows\* methods * xenapi\_device\_id integer, expected string * Fix InstanceV1 backports to use context * Drop unused obj\_to\_primitive() override * Updated from global requirements * libvirt: remove unnecessary else in blockinfo.get\_root\_info * Make test cases in test\_test.py use NoDBTest * XenAPI: Fix unit tests for python34 * docs: re-organise the API concept docs * VMware: specify chunk size when reading image data * Make ConsoleauthTestCase inherit from NoDBTest * Change a test class of consoleauth to no db test * Imported Translations from Zanata * Catch 3 InvalidBDM related exc when boot instance * Move create vm states to svg diagram * Ironic: Fix bad capacity reporting if instance\_info is unset * Revert "[libvirt] Move cleanup of imported files to imagebackend" * Honor until\_refresh config when creating default security group * remove sphinxcontrib-seqdiag * [Py34] nova.tests.unit.api.openstack.test\_common * [Py34] Enable api.openstack.test\_mapper unit test * [Py34] Enable test\_legacy\_v2\_compatible\_wrapper * Extend the ServiceTooOld exception with more data * Make service create/update fail if version is too old * Allow automatic determination of compute\_rpc version by service * Add get\_minimum\_version() to Service object and DB API * Correct memory validation for live migration * devref: change error messages no need microversion * Replace f.func\_name and f.func\_code with f.\_\_name\_\_ and f.\_\_code\_\_ * Imported Translations from Zanata * Add a note about the 500->404 not requiring a microversion * Ensure Nova metrics derived from a set of metrics * Updated from global requirements * Fixes Python 3 str issue in ConfigDrive creation * Make secgroup rules refresh with refresh\_instance\_security\_rules() * Remove unused refresh\_security\_group\_members() call * Imported Translations from Zanata * Check DBReferenceError foreign key in Instance.save * Fix Instance unit test for DBReferenceError * Ironic: Fix bad capacity reporting if instance\_info is unset * libvirt: check if ImageMeta.disk\_format is set before accessing it * libvirt: check if ImageMeta.disk\_format is set before accessing it * Rollback is needed if initialize\_connection times out * Updated from global requirements * Add Pillow to test-requirements.txt * VMware: raise NotImplementedError for live migration methods * xapi-tools: fixes cache cleaner script * Cleanup of Translations * Add Pillow to test-requirements.txt * Update rpc version aliases for liberty * Remove orphaned code related to extended\_volumes * Add checkpoint logging when terminating an instance * Add checkpoint logging when building an instance in compute manager * Removed unused method from compute/rpcapi * Remove unused read-only cell code * Change warn to debug logs when migration context is missing * Use os-testr for py34 tox target * Add sample config file to nova docs * Remove lazy-loading property compute\_task\_api from compute api * Remove conductor 2.x RPC API * Reserve 10 migrations for backports * Use StrOpt's parameter choices to restritct option auth\_strategy * vmware: set default value in fake \_db\_content when creating objects * Avoid needless list copy in 'scheduler\_host\_subset\_size' case * libvirt: Log warning for wrong migration flag config options * Slightly better translation friendly formatting * Identify more py34 tests that already pass * rebuild: Apply migration context before calling the driver * hardware: improve parse\_cpu\_spec to handle exclusion range * Correct Instance type check to work with InstanceV1 * Imported Translations from Zanata * Correct Instance type check to work with InstanceV1 * Only create volumes with instance.az if cinder.cross\_az\_attach is False * Fix the help text of monkey\_patch config param * Rollback of live-migration fails with the NFS driver * Set TrustedFilter as experimental * doc: gmr: Update instructions to generate GMR error reports * rebuild: Apply migration context before calling the driver * Fix MetricWeigher to use MonitorMetricList * VMware: update log to be warning * Add more help text to the cinder.cross\_az\_attach option * Cleanup of Translations * Revert "Deprecate cinder.cross\_az\_attach option" * Fix some spelling typo in manual * Fix NoneType error when calling MetricsWeigher * wsgi: removing semicolon * Fix logging\_sample.conf to use oslo\_log formatter * Remove unused \_check\_string\_length() * Deprecate cinder.cross\_az\_attach option * Neutron: update cells when saving info\_cache * Fix MetricWeigher to use MonitorMetricList 12.0.0.0rc1 ----------- * Imported Translations from Zanata * Detach volume after deleting instance with no host * Remove unnecessary call to info\_cache.delete * Filter leading/trailing spaces for name field in v2.1 compat mode * Give instance default hostname if hostname is empty * If rescue failed set instance to ERROR * Add some devref for AZs * Change parameter name in utility function * RT: track evacuation migrations * rebuild: RPC sends additional args and claims are done * Cells: Limit instances pulled in \_heal\_instances * Open Mitaka development * Fix order of arguments in assertEqual * devref: update the nova architecture doc * Imported Translations from Zanata * Fix quota update in init\_instance on nova-compute restart * net: explicitly set mac on linux bridge * live-migration: Logs exception if operation failed * libvirt: add unit tests for the designer utility methods * Add test cases for some classes in objects.fields * Change ignore-errors to ignore\_errors * libvirt: fix direct OVS plugging * claims: move a debug msg to a warn on missing migration * Fix order of arguments in assertEqual * Remove duplicate VALID\_NAME\_REGEX * Pep8 didn't check api/openstack/common.py * Updated from global requirements * libvirt: Add unit tests for methods * Devref: Document why conductor has a task api/manager * Imported Translations from Zanata * Fix nova configuration options description * libvirt:on snapshot delete, use qemu-img to blockRebase if VM is stopped * Allow filtering using unicode characters * Updated from global requirements * Imported Translations from Zanata * Test both NoAuthMiddleware and NoAuthMiddlewareV3 * Remove redundant variable 'context' * Add 'OS-EXT-VIF-NET:net\_id' for v21 compatible mode * libvirt: Add NUMA cell count to cpu\_info * Xenapi: Don't access image\_meta.id when booting from a volume * Imported Translations from Zanata * Fix typo in HACKING.rst * Remove comment in wrong place * Fix string formatting in api/metadata/vendordata\_json.py * Raise exception.Migration earlier in REST API layer * Remove "shelved\_image\_id" key from instance system metadata * Only set access\_ip\_\* when instance goes ACTIVE * VMware: fix typo in comment * RT: Migration resource tracking uses migration context * compute: migrate/resize paths properly handle stashed numa\_topology * Claims: Make sure move claims create a migration context records * libvirt:update live\_migration\_monitor to use Guest * VMware: create method for getting datacenter from datastore * User APIRouterV21 instead of APIRouterV3 for v2.1 unittests * Remove TestOpenStackClientV3 from nova functional tests * Rename all the ViewBuilderV3 to ViewBuilderV21 * libvirt: Split out resize\_image logic from create\_image * Reuse method to convert key to passphrase * Creating instance fail when inject ssh key in cells mode * Fix the usage output of the nova-idmapshift command * Make test\_revoke\_cert\_project\_not\_found\_chdir\_fails deterministic * Reduce the number of Instance.get\_by\_uuid calls * Remove 'v3' from comments in Nova API code * xapi: cleanup volume sr on live migration rollback * Hyper-V: Implements attach\_interface and detach\_interface method * Remove unnecessary 'context' param from quotas reserve method call * VMware: Replace get\_dynamic\_properties with get\_object\_properties\_dict * VMware: Replace get\_dynamic\_property with get\_object\_property * Return empty PciDevicePoolList obj instead of None * libvirt: add debug logging for lxc teardown paths * Add API schema for different\_cell filter * Add microversion bump exception for scheduler-hint * Use six.text\_type instead of str in serialize\_args * Set vif and allocated when associating fixed ip * Fix ScaleIO commands in rootwrap filters * Add missing information to docstring * Add microversion rule when adding attr to request * Check unknown event name when create external server event * Don't expect meta attributes in object\_compat that aren't in the db obj * CONF.allow\_resize\_to\_same\_host should check only once in controller * Updated from global requirements * Fix debug log format in object\_backport\_versions() * Add version 3.0 of conductor RPC interface * Remove and deprecate conductor object\_backport() * Invalidate AZ cache when the instance AZ information is different * Consolidate code to get the correct availability zone of an instance * Fix order of arguments in assertEqual * Ironic: Call unprovison for nodes in DEPLOYING state * libvirt: use guest as parameter for get serial ports * Separate API schemas for v2.0 compatible API * api: allow any scheduler hints * API: Handle InstanceUnknownCell exceptions * Updated from global requirements * Add some explanation for the instance AZ field * Remove 'v3' from extension code * Remove more 'v3' references from the code * Sorting and pagination params used as filters * Freeze v1 Instance and InstanceList schema hashes * Imported Translations from Transifex * Remove unused parameter overwrite in elevated * Add missing delete policies in the sample file * Fix a few typos * ironic: convert driver to use nova.objects.ImageMeta * objects: convert config drive to use ImageMeta object * VMware: ensure that instance is deleted when volume is missing * libvirt:Rsync compression removed * xenapi: Support extra tgz images that with only a single VHD * Hyper-V: Fixes snapshoting inexistent VM issue * Hyper-V: Adds RDPConsoleOps unit tests * Rectify spelling mistake in nova * libvirt: Add a finish log * Remove old unused baremetal rootwrap filters * Relax restrictions on server name * network\_request\_obj: Clean up outdated code * Object: Fix KeyError when loading instance from db * Add os-brick's scsi\_id command to rootwrap * Expose keystoneclient's session and auth plugin loading parameters * Remove and deprecate conductor compute\_node\_create() * Drop unused conductor manager vol\_usage\_update() mock * Add constraint target to tox.ini * nova-net: fix missing log variable in deallocate\_fixed\_ip * Provide working SQLA\_VERSION attribute * Don't "lock" the DB on expand dry run * New sensible network bandwidth quota values in Nova tests * Fix Cells gate test by modifying the regressions regex * Add functional test for server group * Reject the cell name include '!', '.' and '@' for Nova API * Hyper-V: Adds HyperVDriver unit tests * claims: Remove compat code with instance dicts * Add Instance and InstanceList v2.0 objects * Teach conductor to do manifest-based object\_class\_action() things * Make the conductor fixture use version manifests * Update objects test infrastructure for multiple versions * Refactor Instance tests to use objects.Instance * Fix an issue with NovaObjectRegistry hook * Pull out the common bits of InstanceList into \_BaseInstanceList * Pull out the common bits of Instance into \_BaseInstance * Clarify max\_local\_block\_devices config option usage * Allow to use autodetection of volume device path * Remove the blacklisted nova-cells shelve tests * Update from global requirements * objects: Hook migration object into Instance * Fix order of arguments in assertEqual * Fix order of arguments in assertEqual * Detach and terminate conn if Cinder attach fails * [libvirt] Move cleanup of imported files to imagebackend * hyperv: convert driver to use nova.objects.ImageMeta 12.0.0.0b3 ---------- * Add notes explaining vmware's suds usage * Adds instance\_uuid index for instance\_system\_metadata * Handle nova-compute failure during a soft reboot * Fix mistake in UT:test\_detach\_unattached\_volume * Fix RequestSpec.instance\_group hydration * Remove unused root\_metadata method of BlockDeviceMappingList * Add JSON-Schema note to api\_plugins.rst * Compute: update finish\_revert\_resize log to have some context * Revert "Remove references to suds" * Fix API directories on the doc * Fix incomplete error message of quota exceeded * Add secgroup param checks for Neutron * Implement manifest-based backports * Delete orphaned instance files from compute nodes * Fixed incorrect keys in cpu\_pinning * api: deprecate the api v2 extension configuration * Remove the v3 word from help message of api\_rate\_limit option * Use the same pci\_requests field for all filters and HostManager * objects: Add MigrationContext object * Don't query database with an empty list of tags for creation * Remove duplicate NullHandler test fixture * Add migration policy to upgrades devref * Add warning log when deprecated v2 and v3 code get used * Update ComputeNode values with allocation ratios in the RT * Update HostManager and filters to use ComputeNode ratios * Add cpu\_allocation\_ratio and ram\_allocation\_ratio to ComputeNode * VMware: adds support for rescue image * filter pre\_assigned\_dev\_names when finding disk dev * Fix order of arguments in assertEqual * Fix order of arguments in assertEqual * Fix order of arguments in assertEqual * rt: Rewrite abort and update\_usage tests * Cleanup RT \_instance\_in\_resize\_state() * Compute: be consistent with logs about NotImplemented methods * VMware: pass network info to config drive * Remove/deprecate conductor instance\_update() * Make compute manager instance updates use objects * xenapi: add necessary timeout check * Fix permission issue of server group API * Make query to quota usage table order preserved * Change v3 to v21 for devref api\_plugins.rst * Remove duplicate exception * Don't trace on InstanceInfoCacheNotFound when refreshing network info\_cache * Cells: Improve block device mapping update/create calls * Rm openstack/common/versionutils from setup.cfg * Add a warning in the microversion docs around the usage of 'latest' * Fix exception message mistake in WSGI service * Replace "vol" variable by "bdm" * Remove v3 references in unit test 'contrib' * Removed unused dependency: discover * Rename tests so that they are run * Adds unit tests to test\_common.py * db: Add the migration\_context to the instance\_extra table * tests: Make test\_claims use Instance object * api: use v2.1 only in api-paste.ini * VMware: Update to return the correct ESX iqn * Pass block\_device\_info when delete an encrypted lvm * Handle neutron exception on bad floating ip create request * API: remove unused parameter * Consider that all scheduler calls are IO Ops * Add RequestSpec methods for primitiving into dicts * Add a note about the 400 response not requiring a microversion * api: deprecate the concept of extensions in v2.1 * Fix precedence of image bdms over image mappings * Cells: remove redundant check if cells are enabled * Strip the extra properties out when using legacy v2 compatible middleware * Remove unused sample files from /doc dir * Expose VIF net-id attribute in os-virtual-interfaces * libvirt: take account of disks in migration data size * Add deprecated\_for\_removal parm for deprecated neutron\_ops * Use compatibility methods from oslo * compute: Split the rebuild\_instance method * Allow for migration object to be passed to \_move\_claim * rt: move filtering of migration by type lower in the call stack * rt: generalize claim code to be useful for other move actions * libvirt: make guest to return power state * libvirt: move domain info to guest * Xen: import migrated ephemeral disk based on previous size * cleanup NovaObjectDictCompat from external\_event * cleanup NovaObjectDictCompat from agent * Catch invalid id input in service\_delete * Convert percent metrics back into the [0, 1] range * Cleanup for merging v2 and v2.1 functional tests * Remove doc/source/api and doc/build before building docs * Fixes a typo on nova.tests.unit.api.ec2.test\_api.py * Add a note about the 403 response not requiring a microversion * Pre-load expected attrs that the view builder needs for server details * Remove 'Retry-After' in server create and resize * Remove debug log message in SG API constructor * Updated from global requirements * Refactor test cases for live-migrate error case * Fixes Bug "destroy\_vm fails with HyperVException" * libvirt: refactor \_create\_domain\_setup\_lxc to use Image.get\_model * Set task\_state=None when booting instance failed * libvirt: Fix snapshot delete for network disk type for blockRebase op * [Ironic]Not count available resources of deployed ironic node * Catch OverQuota in volume create function * Don't allow instance to overcommit against itself * n-net: add more debug logging to release\_fixed\_ip * Fix scheduler code to use monitor metric objects * objects: add missing enum values to DiskBus field * Move objects registration in tests directory * xenapi: convert driver to use nova.objects.ImageMeta * libvirt: convert driver to use nova.objects.ImageMeta * Updated from global requirements * VMware: Delete vmdk UUID during volume detach * Move common sample files methods in test base class * Share server POST sample file for microversion too * Fix remote\_consoles microversion 2.8 not to run on /v3 * Remove merged sample tests and file for v2 tests * Move "versions" functional tests in v2.1 tests * Nil out inst.host and inst.node when build fails * Fix link's href to consider osapi\_compute\_link\_prefix * Fix abnormal quota usage after restore by admin * Specify current directory using new cwd param in processutils.execute * Remove and deprecate unused conductor method vol\_usage\_update() * Replace conductor proxying calls with the new VolumeUsage object * Add a VolumeUsage object * Updated from global requirements * Move CPU and RAM allocation ratios to ResourceTracker * Pull the all\_tenants search\_opts checking code into a common utility * Gate on nova.conf.sample generation * libvirt: use proper disk\_info in \_hard\_reboot * Update obj\_reset\_changes signatures to match * libvirt: only get bdm in \_create\_domain\_setup\_lxc if booted from volume * libvirt: \_create\_domain\_setup\_lxc needs to default disk mapping as a dict * libvirt: add docstring for \_get\_instance\_disk\_info * Add rootwrap daemon mode support * Removed duplicated keys in dictionary * Xenapi: Correct misaligned partitioning * libvirt:Remove duplicated check code for config option sysinfo\_serial * Test cases for better handling of SSH key comments * Allow compute monitors in different namespaces * cleanup NovaObjectDictCompat from hv\_spec * cleanup NovaObjectDictCompat from quota * Correct a wrong docstring * Create RequestSpec object * Clarify API microversion docs around handling 500 errors * libvirt: Fix KeyError during LXC instance boot * Xenapi: Handle missing aggregate metadata on startup * Handle NotFound exceptions while processing network-changed events * Added processing /compute URL * libvirt: enable live migration with serial console * Remove the useless require\_admin\_context decorator * Correct expected error code for os-resetState action * libvirt: add helper methods for getting guest devices/disks * compute: improve exceptions related to disk size checks * Improve error logs for start/stop of locked instance * pci: Remove nova.pci.device module * pci: Remove objects.InstancePCIRequests.save() * Remove unused db.security\_group\_rule\_get\_by\_security\_group\_grantee() * Revert "Make nova-network use conductor for security groups refresh" * Make compute\_api.trigger\_members\_refresh() issue a single db call * Fix cells use of legacy bdms during local instance delete operations * Hyper-V: Fixes serial port issue on Windows Threshold * Consolidate initialization of instance snapshot metadata * Fix collection of metadata for a snapshot of a volume-backed instance * Remove unnecessary ValueError exception * Update log's level when backup a volume backend instance * The API unit tests for serial console use http instead of ws * Drop scheduler RPC 3.x support * Move quota delta reserve methods from api to utils * nova.utils.\_get\_root\_helper() should be public * Host manager: add in missing log hints * Removing extension "OS-EXT-VIF-NET" from v2.1 extension-list * nova-manage: fix typo in docstring about mangaging * hyper-v: mock time.sleep in test\_rmtree * Remove tie between system\_metadata and extra.flavor * Fixes Hyper-V boot from volume fails when using ephemeral disk * Re-write way of compare APIVersionRequest's * Store "null api version" as 0.0 * add docstring to virt driver interface (as-is) [1 of ?] * Remove last of the plugins/v3 from unit tests * Rename classes containing 'v3' to 'v21' * Move the v2 api\_sample functional tests * Updated from global requirements * Add logging when filtering returns nothing * libvirt: cleanup() serial\_consoles after instance failure * Don't query database with an empty list of tags for IN clause * Libvirt: Make live\_migration\_bandwidth help msg more meaning * Move V2.1 API unittest to top level directory * Neutron: Check port binding status * Move legacy v2 api smaple tests * conductor: update comments for rpc and use object * Load flavor when getting instances for simple-tenant-usage * Make pagination tolerate a deleted marker * Updated from global requirements * Cleanup HTTPRequest for security\_groups test * Add api samples impact to microversion devref * Use min and max on IntOpt option types * Add hacking check for eventlet.spawn() * Updated from global requirements * neutron: filter None port\_ids from ports list in \_unbind\_ports * VMware: treat deletion exception with attached volumes * VMware: ensure that get\_info raises the correct exception * Allow resize root\_gb to 0 for volume-backed instances * Limit parallel live migrations in progress * Validate quota class\_name * Move V2 API unittests under legacy\_v2 directory * Updated from global requirements * Replace get\_cinder\_client\_version in cinder.py * Avoid querying for Service in resource tracker * Remove/deprecate unused parts of the compute node object * Make ComputeNode.service\_id nullable to match db schema * Add missing rules in policy.json * Add V2.1 API tests parity with V2 API tests * Fixed indentation * Simplify interface for creating snapshot of volume-backed instance * Add instance action events for live migration * Remove 'v3' directory for v2.1 json-schemas * Move v2.1 code to the main compute directory - remove v3 step3 * libvirt: qemu-img convert should be skipped when migrating * Add version counter to Service object * Fix the peer review link in the 'Patches and Reviews' policy section * Handle port delete initiated by neutron * Don't check flavor disk size when booting from volume * libvirt: make instance compulsory in blockinfo APIs * xapi: ensure pv driver info is present prior to live-migration * Move existing V2 to legacy\_v2 - step 2 * Move existing V2 to legacy\_v2 * Return v2 version info with v2 legacy compatible wrapper * Ironic: Add numa\_topology to get\_available\_resource return values * Fix three typos on nova/pci directory * Imported Translations from Transifex * pci: Use PciDeviceList for PciDevTracker.pci\_devs * pci: Remove get\_pci\_devices\_filter() method * pci: Move whitelist filtering inside PCI tracker * libvirt: call host.get\_capabilities after checking for bad numa versions * libvirt: log when BAD\_LIBVIRT\_NUMA\_VERSIONS detected * Use string substitution before raising exception * Hyper-V: deprecates support for Windows / Hyper-V Server 2008 R2 * VMware: Do not untar OVA on the file system * Add hacking check for greenthread.spawn() * Ironic: Use ironicclient native retries for Conflict in ClientWrapper * Prevent (un)pinning unknown CPUs * libvirt: use instance UUID with exception InstanceNotFound * Fix notify\_decorator errors * VMware: update supported vsphere 6.0 os types * libvirt: convert Scality vol driver to LibvirtBaseFileSystemVolumeDriver * libvirt: convert Quobyte driver to LibvirtBaseFileSystemVolumeDriver * pci: Use fields.Enum type for PCI device type * pci: Use fields.Enum type for PCI device status * More specific error messages on building BDM * Ensure test\_models\_sync() works with new Alembic releases * Hyper-V: Adds VolumeOps unit tests * Hyper-V: Adds MigrationOps unit tests * Suppress not image properties for image metadata from volume * Add non-negative integer and float fields * Fix DeprecationWarning when using BaseException.message * Added support for specifying units to hw:mem\_page\_size * Compute: use instance object for refresh\_instance\_security\_rules * libvirt: convert GPFS volume driver to LibvirtBaseFileSystemVolumeDriver * Updated from global requirements * Add os-brick based LibvirtVolumeDriver for ScaleIO * docs: add link to liberty summit session on v2.1 API * Refactor unit test for InstanceGroup objects * Don't pass the service catalog when making glance requests * libvirt: check min required qemu/libvirt versions on s390/s390x * libvirt: ensure LibvirtConfigGuestDisk parses readonly/shareable flags * libvirt: set caps on maximum live migration time * libvirt: support management of downtime during migration * cleanup NovaObjectDictCompat from numa object * Fix test\_relationships() for subobject versions * libvirt: don't open connection in driver constructor * Skip SO\_REUSEADDR tests on BSD * \_\_getitem\_\_ method not returning value * Compute: replace incorrect instance object with dict * Fix live-migrations usage of the wrong connector information * Honour nullability constraints of Glance schema in ImageMeta * Change docstring in test to comment * libvirt: convert GlusterFS driver to LibvirtBaseFileSystemVolumeDriver * libvirt: convert SMBFS vol driver to LibvirtBaseFileSystemVolumeDriver * libvirt: convert NFS volume driver to LibvirtBaseFileSystemVolumeDriver * Introduce LibvirtBaseFileSystemVolumeDriver * Add test to check relations at or below current * Add documentation for the nova-cells command * libvirt:Rsync remote FS driver was added * Clean the deprecated noauth middleware * Add os\_brick-based VolumeDriver for HGST connector * libvirt: add os\_admin\_user to use with set admin password * Fixed incorrect behaviour of method \_check\_instance\_exists * Squashing down update method * Fix the wrong file name for legacy v2 compatible wrapper functional test * Add scenario for API sample tests with legacy v2 compatible wrapper * Skip additionalProperties checks when LegacyV2CompatibleWrapper enabled * Libvirt: correct libvirt reference url link when live-migration failed * libvirt: enable virtio-net multiqueue * Replacing unichr() with six.unichr() and reduce with six.moves.reduce() * Fix resource leaking when consume\_from\_instance raise exception * :Add documentation for the nova-idmapshift command * RBD: Reading rbd\_default\_features from ceph.conf * New nova API call to mark nova-compute down * libvirt: move LibvirtISCSIVolumeDriver into it's own module * libvirt: move LibvirtNETVolumeDriver into it's own module * libvirt: move LibvirtISERVolumeDriver into it's own module * libvirt: move LibvirtNFSVolumeDriver into it's own module * allow live migration in case of a booted from volume instance * Handle MessageTimeout to MigrationPreCheckError * Create a new dictionary for type\_data in VMwareAPIVMTestCase class * resource tracker style pci resource management * Added missed '-' to the rest\_api\_version\_history.rst * Imported Translations from Transifex * Remove db layer hard-code permission checks for keypair * Fix a couple dead links in docs * cleanup NovaObjectDictCompat from virt\_cpu\_topology * Adding user\_id handling to keypair index, show and create api calls * Updated from global requirements * Remove legacy flavor compatibility code from Instance * libvirt: Fix root device name for volume-backed instances * Fix few typos in nova code and docs * Helper script for running under Apache2 * Raise NovaException for missing/empty machine-id * Fixed random failing of test\_describe\_instances\_with\_filters\_tags * libvirt: enhance libvirt to set admin password * libvirt: rework quiesce to not share "sensitive" informations * Metadata: support proxying loadbalancers * formely is not correct * Remove 'scheduled\_at' - DB cleanup * Remove unnecessary executable permission * Neutron: add in API method for updating VNIC index * Xen: convert image auto\_disk\_config value to bool before compare * Make BaseProxyTestCase.test\_proxy deterministic wrt traffic/verbose * Cells: Handle instance\_destroy\_at\_top failure * cleanup NovaObjectDictCompat from virtual\_interface * Fix test mock that abuses objects * VMware: map one nova-compute to one VC cluster * VMware: add serial port device * Handle SSL termination proxies for version list * Use urlencode instead of dict\_to\_query\_str function * libvirt: move LibvirtSMBFSVolumeDriver into it's own module * libvirt: move LibvirtAOEVolumeDriver into it's own module * libvirt: move LibvirtGlusterfsVolumeDriver into it's own module * libvirt: move LibvirtFibreChannelVolumeDriver into it's own module * VMware: set create\_virtual\_disk\_spec method as local * Retry live migration on pre-check failure * Handle config drives being stored on rbd * Change List objects to use obj\_relationships * Fixes delayed instance lifecycle events issue * libvirt-vif: Allow to configure a script on bridge interface * Include DiskFilter in the default list * Adding support for InfiniBand SR-IOV vif type * VMware: Add support for swap disk * libvirt: Add logging for dm-crypt error conditions * Service group drivers forced\_down flag utilization * libvirt: Replace stubs with mocks for test\_dmcrypt * clarify docs on 2.9 API change * Remove db layer hard-code permission checks for instance\_get\_all\_hung\_in\_rebooting * Undo tox -e docs pip install sphinx workaround * Set autodoc\_index\_modules=True so tox -e docs builds module docs again * Allow NUMA based reporting for Monitors * libvirt: don't add filesystem disk to parallels containers unconditionally * objects: add hw\_vif\_multiqueue\_enabled image property * Prepare for unicode enums from Oslo * rootwrap: remove obsolete filters for baremetal * Create class hierarchy for tasks in conductor * return more details on assertJsonEqual fail * Fix IronicHostManager to skip get\_by\_host() call * Store correct VirtCPUTopology * Add documentation for block device mapping * Show 'locked' information in server details * VMware: add resource limits for disk * VMware: store extra\_specs object * VMware: Resource limits for memory * VMware: create common object for limits, reservations and shares * VMware: add support for cores per socket * Add DiskNotFound and VolumeNotFound test * Not check rotation at compute level * Instance destroyed if ironic node in CLEANWAIT * Ironic: Better handle InstanceNotFound on destroy() * Fix overloading of block device on boot by device name * tweak graphviz formatting for readability * libvirt: rename parallels driver to virtuozzo * libvirt: Add macvtap as virtual interface (vif) type to Nova's libvirt driver * cells: document upgrade limitations/assumptions * rebuild: make sure server is shut down before volumes are detached * Implement compare-and-swap for instance update * docs: add a placeholder link to mentoring docs * libvirt: Kill rsync/scp processes before deleting instance * Updated from global requirements * Add console allowed origins setting * libvirt: move the LibvirtScalityVolumeDriver into it's own module * libvirt: move the LibvirtGPFSVolumeDriver into it's own module * libvirt: move the LibvirtQuobyteVolumeDriver into the quobyte module * libvirt: move volume/remotefs/quobyte modules under volume subdir * Add missing policy for limits extension * Move to using ovo's remotable decorators * Base NovaObject on VersionedObject * Document when we should have a microversion * libvirt: do relative block rebase only with non-null base * Add DictOfListOfStrings type of field * Get py34 subunit.run test discovery to work * Enable python34 tests for nova/tests/unit/scheduler/test\*.py * libvirt: mark NUMA huge page mappings as shared access * libvirt:Add a driver API to inject an NMI * virt: convert hardware module to use nova.objects.ImageMeta 12.0.0.0b2 ---------- * Replace openssl calls with cryptography lib * libvirt: move lvm/dmcrypt/rbd\_utils modules under storage subdir * Fix Instance object usage in test\_extended\_ips tests * Fix test\_extended\_server\_attributes for proper Instance object usage * Fix test\_security\_groups to use Instance object properly * Refactor test\_servers to use instance objects * Switch to using os-brick * Updated from global requirements * VMware: remove redundant check for block devices * Remove unused decorator on attach/detach volume * libvirt: test capability for supports\_migrate\_to\_same\_host * Added removing of tags from instance after its deletion * Remove unused import of the my\_ip option from the manager * Scheduler: enhance debug messages for multitenancy aggregates * VMware: Handle missing vmdk during volume detach * Running microversion v2.6 sample tests under '/v2' endpoint * VMware: implement get\_mks\_console() * Add MKS protocol for remote consoles * Add MKS console support * libvirt: improve logging in the driver.py code * Fix serializer supported version reporting in object\_backport * Updated from global requirements * Revert "Add error message to failed block device transform" * tox: make it possible to run pep8 on current patch only * Fix seven typos on nova documentation * Add two fields to ImageMetaProps object * Check flavor type before add tenant access * Switch to the oslo\_utils.fileutils * hypervisor support matrix: fix snapshot for libvirt Xen * libvirt: implement get\_device\_name\_for\_instance * libvirt: Always default device names at boot * Remove unused import of the compute\_topic option from the DB API * Remove unused call to \_get\_networks\_by\_uuids() * libvirt: fix disk I/O QOS support with RBD * Updated from global requirements * Remove unnecessary oslo namespace import checks * VMware: Fixed redeclared CONF = cfg.CONF * Execute \_poll\_shelved\_instances only if shelved\_offload\_time is > 0 * Switch to oslo.reports * Support Network objects in set\_network\_host * Fix Filter Schedulers doc to refer to all\_filters * Fixup uses of mock in hyperv tests * Cleanup log lines in nova.image.glance * Revert "Add config drive support for Virtuozzo containers" * Virt: fix debug log messages * Virt: use flavor object and not flavor dict * Add VersionPredicate type of field * Remove unnecessary method in FilterScheduler * Use utf8\_bin collation on the flavor extra-specs table in MySQL * docs: clear between current vs future plans * cleanup NovaObjectDictCompat subclassing from pci\_device * libvirt: make unit tests concise by setup guest object * libvirt: introduce method to wait for block device job * Decouple instance object tests from the api fakes module * Fixed typos in self parameter * Hyper-V: restart serial console workers after instance power change * Only work with ipv4 subnet metadata if one exists * Do not import using oslo namespace * Refresh instance info cache within lock * Remove db layer hard-code permission checks for fixed\_ip\_associate\_\* * Add middleware filterout Microversions http headers * Correct backup\_type param description * Fix a request body template for secgroup tests * Images: fix invalid exception message * Updated from global requirements * rebuild: fix rebuild of server with volume attached * objects: send PciDeviceList 1.2 to all code that can handle it * Fix libguestfs failure in test\_can\_resize\_need\_fs\_type\_specified * Fix the incorrect PciDeviceList version number * objects: Don't import CellMapping from the objects module * Deprecate the osapi\_v3.enabled option * Remove conductor api from resource tracker * Fix test\_tracker object mocks * Fix Python 3 issues in nova.utils and nova.tests * Remove db layer hard-code permission checks for instance\_get\_all\_by\_host\_and\_not\_type * Support all\_tenants search\_opts for neutron * libvirt : remove broken olso\_config choices option * Convert instance\_type to object in prep\_resize * VMware: clean up exceptions * Revert "Remove useless db call instance\_get\_all\_hung\_in\_rebooting" * VMware: Use virtual disk size instead of image size * Remove db layer hard-code permission checks for provider\_fw\_rule\_\* * Remove db layer hard-code permission checks for archive\_deleted\_rows\* * Revert "Implement compare-and-swap for instance update" * Add tool to build a doc latex pdf * make test\_save\_updates\_numa\_topology stable across python versions * Update HACKING.rst for running tests and building docs * Cleanup quota\_class unittest with appropriate request context * Remove db layer hard-code permission checks for quota\_class\_create/update * Remove db layer hard-code permission checks for quota\_class\_get\_all\_by\_name * Improve functional test base for microversion * Remove db layer hard-code permission checks for reservation\_expire * Introducing new forced\_down field for a Service object * Use stevedore for loading monitor extensions * libvirt: Remove dead code path in method clear\_volume * Switch to oslo.service library * Include project\_id in instance metadata * Convert test\_compute\_utils to use Instance object * Fix for mock-1.1.0 * Port crypto to Python 3 * Add HostMapping object * Remove useless db call instance\_get\_all\_hung\_in\_rebooting * Cleanup unused method fake\_set\_snapshot\_id * Handle KeyError when volume encryption is not supported * Expose Neutron network data in metadata service * Build Neutron network data for metadata service * Implement compare-and-swap for instance update * Added method exists to the Tag object * Add DB2 support * compute: rename ResizeClaim to MoveClaim * Fix the little spelling mistake of the comment * Remove db layer hard-code permission checks for quota\_create/update * Fix the typo from \_pre\_upgrade\_294 to \_pre\_upgrade\_295 for tests/unit/db/test\_migration * Ironic:check the configuration item api\_max\_retries * Modified testscenario for micro version 2.4 * Add some notifications to the evacuate path * Make evacuate leave a record for the source compute host to process * Fix incorrect enum in Migration object and DB model * Refactoring of the os-services module * libvirt: update docstring in blockinfo module for disk\_info * Ignore bridge already exists error when creating bridge * libvirt: handle rescue flag first in blockinfo.get\_disk\_mapping * libvirt: update volume delete snapshot to use Guest * libvirt: update live snapshot to use Guest object * libvirt: update swap volume to use Guest * libvirt: introduce GuestBlock to wrap around Block API * libvirt: rename GuestVCPUInfo to VCPUInfo * libvirt: save the memory state of guest * removed unused method \_get\_default\_deleted\_value * Remove flavor migration from db\_api and nova-manage * Rework monitor plugin interface and API * Adds MonitorMetric object * virt: add get\_device\_name\_for\_instance to the base driver class * libvirt: return whether a domain is persistent * Cells: fix indentation for configuration variable declaration * VMware: add unit tests for vmops attach and detach interface * Remove unneeded OS\_TEST\_DBAPI\_ADMIN\_CONNECTION * Switch from MySQL-python to PyMySQL * virt: fix picking CPU topologies based on desired NUMA topology * Port test\_exception to Python 3 * devref: virtual machine states and transitions * Consolidate the APIs for getting consoles * Remove db layer hard-code permission checks for floating\_ip\_dns * Fix typo in model doc string * virt: Fix AttributeError for raw image format * log meaningful error message on download exception * Updated from global requirements * Add bandit for security static analysis testing * Handle unexpected clear events call * Make on\_shared\_storage optional in compute manager * snapshot: Add device\_name to the snapshot bdms * compute: Make swap\_volume with resize updates BDM size * Make Nova better at keeping track of volume sizes in BDM * API: make sure a blank volume with no size is rejected * Ironic: Improve driver logs * Drop MANIFEST.in - it's not needed with PBR * Libvirt: Define system\_family for libvirt guests * Convert RT compute\_node to be a ComputeNode object * glance:check the num\_retries option * tests: Move test\_resource\_tracker to Instance objects * Remove compat\_instance() * Enable python34 tests for nova/tests/unit/objects/test\*.py * Soft delete system\_metadata when destroy instance * Remove python3 specific test-requirements file * Try luksFormat up to 3 times in case the device is in use * rootwrap: update ln --symbolic filter for FS and FC type volume drivers * Add wording to error message in TestObjectVersions.test\_relationships * Close temporary files in virt/disk/test\_api.py * Add BlockDeviceType enum field * Add BlockDeviceDestinationType enum field * Add BlockDeviceSourceType enum field * Avoid recursion in object relationships test * tests: move a test to the proper class in test\_resource\_tracker * Remove db layer hard-code permission checks for network\_set\_host * Block subtractive operations in migrations for Kilo and beyond * Remove db layer hard-code permission checks for network\_disassociate * libvirt: Correct domxml node name * Test relationships of List objects * libvirt: configuration for interface driver options * Fix Python 3 issues in nova.db.sqlalchemy * Update test\_db\_api for oslo.db 2.0 * Fix is\_image\_extendable() thinko * Validate maximum limit for quota * utils: ignore block device mapping in system metadata * libvirt: add in missing doc string for hypervisor\_version * Remove useless policy rule from fake\_policy.py * Replace ascii art architecture diagram with svg image * Adds MonitorMetricTypeField enum field * Unfudge tox -e genconfig wrt missing versionutils module * virt: update doctrings * hypervisor support matrix: add feature "evacuate" * XenAPI: Refactor rotate\_xen\_guest\_logs to avoid races * hypervisor support matrix: add feature "serial console" * hypervisor support matrix: add CLI commands to features * Fix typos detected by toolkit misspellings * hypervisor support matrix: fix "evacuate" for s390 and hyper-v * Make live migration create a migration object record * Cells: add instance cell registration utility to nova-manage * fix typos in docs * Logging corrected * Check mac for instance before disassociate in release\_fixed\_ip * Add the rule of separate plugin for Nova REST API in devref * Use flavor object in compute manager 12.0.0.0b1 ---------- * Changes conf.py for Sphinx build because oslosphinx now contains GA * Fix testing object fields with missing instance rows * Change group controller of V2 test cases * Reduce window for allocate\_fixed\_ip / release\_fixed\_ip race in nova-net * Make NoValidHost exceptions clearer * Hyper-V: Fixes method retrieving free SCSI controller slot on V1 * Refactor network API 'get\_instance\_nw\_info' * Removed extra '-' from rest\_api\_version\_history.rst * Remove an useless variable and fix a typo in api * VMware: convert driver to use nova.objects.ImageMeta * Bypass ironic server not available issue * Fix test\_create\_security\_group\_with\_no\_name * Remove unused "id" and "rules" from secgroup body * cells: add devstack/tempest-dsvm-cells-rc for gating * Add common function for v2.1 API flavor\_get * Fix comment typo * Fix up instance flavor usage in compute and network tests * Fix up ec2 tests for flavors on instances * Fix up xenapi tests for instance flavors * Fix up some bits of resource\_tracker to use instance flavors * Register the vnc config options under group 'vnc' * Cells: cell scheduler anti-affinity filter * Cells: add in missing unit test for get\_by\_uuid * VMware driver: Increasing speed of downloading image * Hyper-V: Fix virtual hard disk detach * Add flag to force experimental run of db contract * Make readonly field tests use exception from oslo.versionedobjects * Fixes "Hyper-V destroy vm fails on Windows Server 2008R2" * Add microversion to allow server search option ip6 for non-admin * Updated from global requirements * VMware: Handle port group not found case * Imported Translations from Transifex * libvirt: use correct translation format * Add explicit alembic dependency * network: add more debug logging context for race bug 1249065 * Add virt resource update to ComputeNode object * xenapi: remove bittorrent entry point lookup code * Use oslo-config-generator instead of generate\_sample.sh * Add unit tests for PCI utils * Support flavor object in migrate\_disk\_and\_power\_off * Remove usage of WritableLogger from oslo\_log * libvirt: Don't fetch kernel/ramdisk files if you already have them * Allow non-admin to list all tenants based on policy * Remove redundant policy check from security\_group\_default\_rule * Return bandwidth usage after updating * Update version for Liberty * neutron: remove deprecated allow\_duplicate\_networks config option * Validate maximum limit for integer * Improve the ability to resolve capabilities from Ironic * Fix the wrong address ref when the fixed\_ip is invalid * The devref for Nova stable API * Fix wrong check when use image in local * Fixes TypeError when libvirt version is BAD\_LIBVIRT\_CPU\_POLICY\_VERSIONS 12.0.0a0 -------- * Remove hv\_type translation shim for powervm * cells: remove deprecated mute\_weight\_value option * Make resize api of compute manager to send flavor object * VMware: detach cinder volume when instance destroyed * Add unit tests for the exact filters * test: add MatchType helper class as equivalent of mox.IsA * Validate int using utils.validate\_integer method * VMware: use min supported VC version in fake driver * Updated from global requirements * Added documentation around database upgrades * Avoid always saving flavor info in instance * Warn when CONF torrent\_base\_url is missing slash * Raise invalid input if use invalid ip for network to attach interface * Hyper-V: Removes old instance dirs after live migration * DB downgrades are no longer supported * Add Host Mapping table to API Database * VMware: verify vCenter server certificate * Implement online schema migrations * Hyper-V: Fixes live migration configdrive copy operation * Avoid resizing disk if the disk size doesn't change * Remove openstack/common/versionutils module * Fix TestObjEqualPrims test object registration * Remove references to suds * VMware: Remove configuration check * Remove and deprecate conductor task\_log methods * Remove unused compute utils methods * Make instance usage audit use the brand new TaskLog object * Add a TaskLog object * Updated from global requirements * Fix noVNC console access for an IPv6 setup * hypervisor support matrix: add status "unknown" * VMware: typo fix in config option help * Sync with latest oslo-incubator * Associating of floating IPs corrected * Minor refactor in nova.scheduler.filters.utils * Cleanup wording for the disable\_libvirt\_livesnapshot workaround option * Remove cell api overrides for force-delete * libvirt: convert imagebackend to support nova.virt.image.model classes * virt: convert disk API over to use nova.virt.image.model * Cells: Skip initial sync of block\_device\_mapping * Pass Down the Instance Name to Ironic Driver * Handle InstanceNotFound when sending instance update notification * Add an index to virtual\_interfaces.uuid * Updated from global requirements * Add config drive support for Virtuozzo containers * Update formatting of microversion 2.4 documentation * Consolidates scheduler utils tests into a single file * Send Instance object to cells instance\_update\_at\_top * VMware: use vCenter instead of VC * fix "down" nova-compute service spuriously marked as "up" * Improve formatting of rest\_api\_version\_history * Link to microversion history in docs * libvirt: fix live migration handling of disk\_info * libvirt: introduce method to get domain XML * libvirt: introduce method detach\_device to Guest object * Remove db layer hard-code permission checks for quota\_usage\_update * pass environment variables of proxy to tox * Remove db layer hard-code permission checks for quota\_get\_all\_\* * Fixed some misspellings * Clean up Fake\_Url for unit test of flavor\_access * Updated from global requirements * Add AggregateTypeAffinityFilter multi values support * volume: log which encryptor class is being used * VMware: Don't raise exception on resize of 0 disk * Hyper-V: sets supports\_migrate\_to\_same\_host capability * libvirt: remove \_get\_disk\_xml to use get\_disk from Guest * libvirt: introduce method to attach device * libvirt: update tests to use Mock instead of MagicMock * libvirt: Remove unnecessary JSON conversions * objects: fix parsing of NUMA cpu/mem properties * compute: remove get\_image\_metadata method * compute: only use non\_inheritable\_image\_properties if snapshotting * objects: add os\_require\_quiesce image property * libvirt: make default\_device\_names DRY-er * virt: Move building the block\_device\_info dict into a method * Objects: update missing adapter types * Add error handling for creating secgroup * libvirt: handle code=38 + sigkill (ebusy) in destroy() * Removed a non-conditional 'if' statement * Map uuid db field to instance\_uuid in BandwidthUsage object * Hyper-V: Fix missing WMI namespace issue on Windows 2008 R2 * Replace metaclass registry with explicit opt-in registry from oslo * Fix an objects layering violation in compute/api * Remove assertRemotes() from objects tests * Use fields from oslo.versionedobjects * Convert test objects to new field formats * Begin the transition to an explicit object registry * Set default event status to completed * Add a hacking rule for consistent HTTP501 message * Add and use raise\_feature\_not\_supported() * Objects: fix typo with exception * Remove useless volume when boot from volume failed * Hyper-V: Lock snapshot operation using instance uuid * Refactor show\_port() in neutron api * Ironic: Don't report resources for nodes without instances * libvirt: Remove unit tests for \_hard\_reboot * Adds hostutilsv2 to HyperV * libvirt: introduce method to delete domain config * libvirt: introduce method to get vcpus info * libvirt: Don't try to confine a non-NUMA instance * Removed explicit return from \_\_init\_\_ method * libvirt: introduce method resume to Guest object * libvirt: introduce method poweroff to Guest object * libvirt: make \_create\_domain return a Guest object * Raise InstanceNotFound when save FK constraint fails * Updated from global requirements * Add new VIF type VIF\_TYPE\_TAP * libvirt: Disable NUMA for broken libvirt * Handle FlavorNotFound when augmenting migrated flavors * virt: convert VFS API to use nova.virt.image.model * virt: convert disk mount API to use nova.virt.image.model * virt: introduce model for describing local image metadata * Remove unused instance\_group\_policy db calls * Improve compute swap\_volume logging * libvirt: introduce method get\_guest to Host object * libvirt: introduce a Guest to wrap around virDomain * Remove unused exceptions * Extract helper method to get image metadata from volume * Fix \_quota\_reserve test setup for incompatible type checking * Fixes referenced path in nova/doc/README.rst * Updated from global requirements * Handle cells race condition deleting unscheduled instance * Compute: tidy up legacy treatment for vif types * Allow libvirt cleanup completion when serial ports already released * objects: define the ImageMeta & ImageMetaProps objects * Ensure to store context in thread local after spawn/spawn\_n * Ironic: Parse and validate Node's properties * Hyper-V: Fix SMBFS volume attach race condition * Remove unit\_test doc * Make blueprints doc a reference for nova blueprints * Remove jenkins, launchpad and gerrit docs * Prune development.environment doc * docs: fixup libvirt NUMA testing docs to match reality * Fix some issues in devref for api\_microversions * nova response code 403 on block device quota error * Updated from global requirements * Remove unused variables from images api * Compute: improve logging using {} instead of dict * snapshot: Copy some missing attrs to the snapshot bdms * bdm: Make sure that delete\_on\_termination is a boolean * Get rid of oslo-incubator copy of middleware * Make nova-manage handle completely missing flavor information * Use oslo\_config choices support * Let soft-deleted instance\_system\_metadata readable * Make InstanceExternalEvent use an Enum for status * Add error message to failed block device transform * network: fix instance cache refresh for empty list * Imported Translations from Transifex * Add common function for v2 API flavor\_get * Remove cell policy check * VMware: replace hardcoded strings with constants * Add missing @require\_context * Standardize on assertJsonEqual in tests * Tolerate iso style timestamps for cells rpc communication * Force the value of LC\_ALL to be en\_US.UTF-8 * libvirt: disconnect\_volume does not return anything * Remove hash seed comment from tox.ini * Allow querying for migrations by source\_compute only * libvirt: Do not cache number of CPUs of the hypervisor * Create instance\_extra entry if it doesn't update * Ignore Cinder error when shutdown instance * Remove use of builtin name * Hyper-V: Fixes cold migration / resize issue * Fix cells capacity calculation for n:1 virt drivers * VMware: Log should use uuid instead of name * VMware: fill in instance metadata when resizing instances * VMware: fill in instance metadata when launching instances * Add the swap and ephemeral BDMs if needed * Updated from global requirements * Block oslo.vmware 0.13.0 due to a backwards incompatible change * hypervisor support matrix: update libvirt KVM (s390x) * Hyper-V: ensure only one log writer is spawned per VM * Prevent access to image when filesystem resize is disabled * Share admin password func test between v2 and v2.1 * VMware: remove dead function in vim\_util * Fix version unit test on Python 3 * Resource tracker: remove invalid conductor call from tests * Remove outdated TODO comment * Disable oslo.vmware test dependency on Python 3 * Run tests with PyMySQL on Python 3 * Drop explicit suds dependency * improve speed of some ec2 keypair tests * Add nova object equivalence based on prims * Cleanups for pci stats in preparation for RT using ComputeNode * Replace dict.iteritems() with six.iteritems(dict) * Add a maintainers file * virt: make sure convert\_all\_volumes catches blank volumes too * compute utils: Remove a useless context parameter * make SchedulerV3PassthroughTestCase use NoDBTest * Don't use dict.iterkeys() * VMware: enforce minimum support VC version * Split up and improve speed of keygen tests * Replace dict(obj.iteritems()) with dict(obj) * libvirt: Fix cpu\_compare tests and a wrong method when logging * Detect empty result when calling objects.BlockDeviceMapping.save() * remove \_rescan\_iscsi from disconnect\_volume\_multipath\_iscsi * Use six.moves.range for Python 3 * Use EnumField for instance external event name * Revert "Detach volume after deleting instance with no host" * Removed unused methods and classes * Removed unused variables * Removed unused "as e/exp/error" statements * Resource tracker: use instance objects for claims * Remove db layer hard-code permission checks for security\_group\_default\_rule\_destroy * Avoid AttributeError at instance.info\_cache.delete * Remove db layer hard-code permission checks for network\_associate * Remove db layer hard-code permission checks for network\_create\_safe * Pass project\_id when create networks by os-tenant-networks * Disassociate before deleting network in os-tenant-networks delete method * Remove db layer hard-code permission checks for v2.1 cells * Move unlock\_override policy enforcement into V2.1 REST API layer * tests: libvirt: Fix test\_volume\_snapshot\_delete tests * Add a finish log * Add nova-idmapshift to rootwrap filters * VMware: Missing docstring on parameter * Update docs layout * Add note to doc explaining scope * Show 'reserved' status in os-fixed-ips * Split instance event/tag correctly * libvirt: deprecate libvirt version usage < 0.10.2 * Fix race between resource audit and cpu pinning * Set migration\_type for existing cold migrations and resizes * Add migration\_type to Migration object * Add migration\_type and hidden to Migration database model * libvirt: improve logging * Fix pip-missing-reqs * objects: convert HVSpec to use named enums * objects: convert VirtCPUModel to use named enums * Ironic: Fix delete instance when spawning * Retry a cell delete if host constraint fails * objects: introduce BaseEnumField to allow subclassing * Add policy to cover snapshotting of volume backed instances * objects: add a FlexibleBoolean field type * Don't update RT status when set instance to ERROR * Delete shelved\_\* keys in n-cpu unshelve call * Fix loading things in instance\_extra for old instances * VMware: remove invalid comment * neutron: log hypervisor\_macs before raising PortNotUsable * VMware: use get\_object\_properties\_dict from oslo.vmware * VMware: use get\_datastore\_by\_ref from oslo.vmware * Unshelving volume backed instance fails * Avoid useless copy in get\_instance\_metadata() * Fix raise syntax for Python 3 * Replace iter.next() with next(iter) * libvirt: use instance UUID with exception InstanceNotFound * devref: add information to clarify nova scope * Refactor an unit test to use urlencode() * Additional cleanup after compute RPC 3.x removal * Drop compute RPC 3.x support * libvirt: deprecate the remove\_unused\_kernels config option * Updated from global requirements * libvirt: Use 'relative' flag for online snapshot's commit/rebase operations * Remove db layer hard-code permission checks for quota\_destroy\_all\_\* * Replace unicode with six.text\_type * Replace dict.itervalues() with six.itervalues(dict) * Use compute\_node consistently in ResourceTracker * Fix the wrong comment in the test\_servers.py file * Move ebrctl to compute.filter * libvirt: handle NotSupportedError in compareCPU * Hypervisor Support Matrix renders links in notes * Update fake flavor's root and ephemeral disk size * Code clean up db.instance\_get\_all\_by\_host() * use block\_dev.get\_bdm\_swap\_list in compute api * Catch SnapshotNotFound exception at os-volumes * Rename \_CellProxy.iteritems method to items on py3 * Overwrite NovaException message * API: remove unuseful expected error code from v2.1 service delete api * Fix quota-update of instances stuck in deleting when nova-compute startup finish * API: remove admin require from certificate\_\* from db layer * API: Add policy enforcement test cases for pci API * API: remove admin require for compute\_node(get\_all/search\_by\_hyperviso) from db * API: remove admin require for compute\_node\_create/update/delete from db layer * API: remove admin require from compute\_node\_get\_all\_by\_\* from db layer * Share deferred\_delete func tests between v2 and v2.1 * VMware: add support for NFS 4.1 * Compute: remove reverts\_task\_state from interface attach/detach * VMware: ensure that the adapter type is used * Fix failure of stopping instances during init host * Share assisted vol snapshots test between v2 and v2.1 * Compute: use instance object for \_deleted\_old\_enough method * API: remove instance\_get\_all\_by\_host(\_and\_node) hard-code admin check from db * Remove db layer hard-code permission checks for service\_get\_by\_host\* * Remove db layer hard-code permission checks for service\_get\_by\_compute\_host * Detach volume after deleting instance with no host * libvirt: safe\_decode xml for i18n logging * Fix scheduler issue when multiple-create failed * Move our ObjectListBase to subclass from the Oslo one * Fix cinder v1 warning with cinder\_catalog\_info option reference * Deprecate nova ironic driver's admin\_auth\_token * Handle return code 2 from blkid calls * Drop L from literal integer numbers for Python 3 * Libvirt: Use tpool to invoke guestfs api * Minor edits to support-matrix doc * hacking: remove unused variable author\_tag\_re * Update kilo version alias * Refactor tests that use compute's deprecated run\_instance() method * Helper scripts for running under Apache2 * downgrade log messages for memcache server (dis)connect events * don't report service group connection events as errors in dbdriver * Updated from global requirements * Switch to \_set\_instance\_obj\_error\_state in build\_and\_run\_instance * Add SpawnFixture * Log the actual instance.info\_cache when empty in floating ip associate * unify libvirt driver checks for qemu * VMware: Allow other nested hypervisors (HyperV) * servicegroup: remove get\_all method never used as public * libvirt: add todo note to avoid call to libvirt from the driver * libvirt: add method to compare cpu to Host * libvirt: add method to list pci devices to Host * libvirt: add method to get device by name to Host * libvirt: add method to define instance to host * libvirt: add method to get cpu stats to host * monitor: remove dependance with libvirt * Clean up ComputeManager.\_get\_instance\_nw\_info * Updated from global requirements * Cells: Call compute api methods with instance objects * Correct docstring info on two parameters * Start the conversion to oslo.versionedobjects * Cleanup conductor unused methods * Revert "Ironic: do not destroy if node is in maintenance" * fix network setup on evacuate * Reschedules sometimes do not allocate networks * Incorrect argument order passed to swap\_volume * Mark ironic credential config as secret * Fix missing format arg in compute manager * objects: remove field ListOfEnumField * Cleaning up debug messages from previous change in vmops.py * Remove orphaned tables - iscsi\_targets, volumes * console: clean tokens do not happen for all kind of consoles * Fix import order * Skip only one host weight calculation * Fix typo for test cases * VMWare: Isolate unit tests from requests * Imported Translations from Transifex * Cleanup docs landing page * Updated from global requirements * Add ability to inject routes in interfaces.template * tests: make API signature test also check static function * Make test\_version\_string\_with\_package\_is\_good work with pbr 0.11 * Fix disconnect\_volume issue when find\_multipath\_device returns None * Updated from global requirements * Fix assert on call count for encodeutils.safe\_decode mock * Don't wait for an event on a resize-revert * minor edit to policy\_enforcement.rst * Update self with db result in InstanceInfoCache.save * libvirt: retry to undefine network filters during \_post\_live\_migration * Wedge DB migrations if flavor migrations are not complete * Removed twice declared variables * Removed variables used not in the scope that they are declared * libvirt: add method to get hardware info to Host * libvirt: avoid call of listDefinedDomains when post live migration * Remove unused db.aggregate\_metadata\_get\_by\_metadata\_key() call * Removed 'PYTHONHASHSEED=0' from tox.ini * Changed logic in \_compare\_result api\_samples\_test\_base * Convert bandwidth\_usage related timestamp to UTC native datetime * Drop use of 'oslo' namespace package 2015.1.0 -------- * Add a method to skip cells syncs on instance.save * Add some testing for flavor migrations with deleted things * Add support for forcing migrate\_flavor\_data * Virt: update shared storage log information message * Fixed functional in tests\_servers, to pass with random PYTHONHASHSEED * Adds toctree to v2 section of docs * Fixes X509 keypair creation failure * Update rpc version aliases for kilo * libvirt/utils.py: Remove 'encryption' flag from create\_cow\_image * Libvirt: Correct logging information and progress when LM * libvirt/utils.py: Remove needless code from create\_cow\_image * libvirt/utils.py: Clarify comment in create\_cow\_image function * Fix documentation for scheduling filters * libvirt: check qemu version for NUMA & hugepage support * Add security group calls missing from latest compute rpc api version bump * Add security group calls missing from latest compute rpc api version bump * Make objects serialize\_args() handle datetimes in positional args * Imported Translations from Transifex * view hypervisor details rest api should be allowed for non-admins * n-net: turn down log level when vif isn't found in deallocate\_fixed\_ip * Associate floating IPs with first v4 fixed IP if none specified * Correct the help text for the compute option * Convert NetworkDuplicated to HTTPBadRequest for v2.1 API * Remove comment inconsistent with code * Remove db layer hard-code permission checks for fixed\_ip\_get\_\* * Fixed nova-network dhcp-hostsfile update during live-migration * Remove db layer hard-code permission checks for network\_get\_all\_by\_host * Remove db layer hard-code permission checks for security\_group\_default\_rule\_create * Remove db layer hard-code permission checks for floating\_ips\_bulk * sync oslo: service child process normal SIGTERM exit * Remove downgrade support from the cellsv2 api db * Fix migrate\_flavor\_data() to catch instances with no instance\_extra rows * libvirt: use importutils instead of python built-in 2015.1.0rc2 ----------- * Imported Translations from Transifex * Updated from global requirements * Control create/delete flavor api permissions using policy.json * Add config option to disable handling virt lifecycle events * Ironic: pass injected files through to configdrive * libvirt: Allow discrete online pCPUs for pinning * Fix migrate\_flavor\_data() to catch instances with no instance\_extra rows * libvirt: unused imported option default\_ephemeral\_format * libvirt: introduce new method to guest tablet device * Fix migrate\_flavor\_data string substitution * Object: Fix incorrect parameter set in flavor save\_extra\_specs * Fix max\_number for migrate\_flavor data * remove downgrade support from our database migrations * Add policy check for extension\_info * Cleanup unnecessary session creation in floating\_ip\_deallocate * Fix inefficient transaction usage in floating\_ip\_bulk\_destroy * Control create/delete flavor api permissions using policy.json * Fix handling of pci\_requests in consume\_from\_instance * Use list of requests in InstancePCIRequests.obj\_from\_db * Add numa\_node field to PciDevicePool * scheduler: re-calculate NUMA on consume\_from\_instance * VMware: remove unused method * VMware: enable configuring of console delay * Don't query compute\_node through service object in nova-manage * Fixed test in test\_tracker to work with random PYTHONHASHSEED * Update rpc version aliases for kilo * remove the CONF.allow\_migrate\_to\_same\_host * Fix kwargs['migration'] KeyError in @errors\_out\_migration decorator * Add equality operators to PciDeviceStats and PciDevice objects * libvirt: Add option to ssh to prevent prompting * Validate server group affinity policy * VMware: use oslo.vmware methods for handling tokens * Remove db layer hard-code permission checks for network\_get\_associated\_fixed\_ips * tests: use numa xml automatic generation in libvirt tests * Resource tracker: unable to restart nova compute * Include supported version information * Release Import of Translations from Transifex * Fixed tests in test\_glance to pass with random PYTHONHASHSEED * Refactored tests in test\_neutron\_driver to pass with random PYTHONHASHSEED * refactored test in vmware test\_read\_write\_util to pass with random PYTHONHASHSEED * fixed tests in test\_matchers to pass with random PYTHONHASHSEED * fix for vmware test\_driver\_api to pass with random PYTHONHASHSEED * Update hypervisor support matrix with kvm on system z * Fix kwargs['migration'] KeyError in @errors\_out\_migration decorator * VMware: remove unused parameter for VMOPS spawn * libvirt: make \_get\_instance\_disk\_info conservative * refactored tests to pass in test\_inject to pass with random PYTHONHASHSEED * fixed tests in test\_iptables\_network to work with random PYTHONHASHSEED * refactored tests in test\_objects to pass with random PYTHONHASHSEED * fixed tests in test\_instance to pass with random PYTHONHASHSEED * Replace ssh exec calls with paramiko lib * Fix handling of pci\_requests in consume\_from\_instance * Use list of requests in InstancePCIRequests.obj\_from\_db * Share hide server add tests between v2 and v2.1 * Share V2 and V2.1 images functional tests * change the reboot rpc call to local reboot * 'deleted' filter does not work properly * Spelling mistakes in nova/compute/api.py * Use kwargs from compute v4 proxy change\_instance\_metadata * Delay STOPPED lifecycle event for all domains, not just Xen * Use kwargs from compute v4 proxy change\_instance\_metadata * compute: stop handling virt lifecycle events in cleanup\_host() * Replace BareMetalDriver with IronicDriver in option help string * tests: introduce a NUMAServersTest class * Fix test\_set\_admin\_password\_bad\_state() * Fix test\_attach\_interface\_failure() * Fix test\_swap\_volume\_api\_usage() * Resource tracker: unable to restart nova compute * Forbid booting of QCOW2 images with virtual\_size > root\_gb * Pass migrate\_data to pre\_live\_migration * Fixed order of arguments during execution live\_migrate() * update .gitreview for stable/kilo * Add min/max of API microversions to version API * VMware: Fix attribute error in resize * Release bdm constraint source and dest type * Fix check\_can\_live\_migrate\_destination() in ComputeV4Proxy * compute: stop handling virt lifecycle events in cleanup\_host() * Store context in local store after spawn\_n * Fixed incorrect dhcp\_server value during nova-network creation * Share multiple create server tests between v2 and v2.1 * Remove power\_state.BUILDING * libvirt: cleanup unused lifecycle event handling variables from driver * Add min/max of API microversions to version API * Pass migrate\_data to pre\_live\_migration * libvirt: add debug logging to pre\_live\_migration * Don't ignore template argument in get\_injected\_network\_template * Refactor some service tests and make them not require db * Remove and deprecate unused conductor service calls * Convert service and servicegroup to objects * Add numa\_node field to PciDevicePool * Ironic: do not destroy if node is in maintenance * libvirt: remove unnecesary quotes * VMware: fix log warning * libvirt: quit early when mempages requested found * VMware: validate CPU limits level * Remove and deprecate conductor get\_ec2\_ids() * Remove unused metadata conductor parameter * Replace conductor get\_ec2\_ids() with new Instance.ec2\_ids attribute * Add EC2Ids object and link to Instance object as optional attribute * neutron: reduce complexity of allocate\_for\_instance (security\_groups) * neutron: reduce complexity of allocate\_for\_instance (requested\_networks) * Avoid indexing into an empty list in getcallargs * Fixed order of arguments during execution live\_migrate() * Fix check\_can\_live\_migrate\_destination() in ComputeV4Proxy 2015.1.0rc1 ----------- * Add compute RPC API v4.0 * Reserve 10 migrations for backports * Honor uuid parameter passed to nova-network create * Update compute version alias for kilo * Refactor nova-net cidr validation in prep for bug fix * Fix how service objects are looked up for Cells * websocketproxy: Make protocol validation use connection\_info * scheduler: re-calculate NUMA on consume\_from\_instance * Prevent scheduling new external events when compute is shutdown * Print choices in the config generator * Manage compute node that exposes no pci devices * libvirt: make fakelibvirt more customizable * Use cells.utils.ServiceProxy object within cells\_api * Fix Enum field, which allows unrestricted values * consoleauth: Store access\_url on token authorization * tests: add a ServersTestBase class * tests: enhance functional tests primitives * libvirt: Add version check when pinning guest CPUs * Open Liberty development * xenapi: pull vm\_mode and auto\_disk\_config from image when rescue * VMware: Fix attribute error in resize * Allow \_exec\_ebtables to parse stderr * Fix rebuild of an instance with a volume attached * Imported Translations from Transifex * Stacktrace on live migration monitoring * Add 'docker' to the list of known hypervisor types * Respect CONF.scheduler\_use\_baremetal\_filters * Make migration 274 idempotent so it can be backported * Add 'suspended' lifecycle event * Fix how the Cells API is returning ComputeNode objects * Ironic: fix log level manipulation * Fix serialization for Cells Responses * libvirt: fix disablement of NUMA & hugepages on unsupported platforms * Optimize periodic call to get\_by\_host * Fix multipath device discovery when UFN is enabled * Use retrying decorator from oslo\_db * virt: Make sure block device info is persisted * virt: Fix block\_device tests * instance termination with update\_dns\_entries set fails * Filter fixed IPs from requested\_networks in deallocate\_for\_instance * Fixes \_cleanup\_rbd code to capture ImageBusy exception * Remove old relation in Cells for ComputeNode and Service * consoleauth: remove an instance of mutation while iterating * Add json-schema for v2.1 fixed-ips * Share V2 and V2.1 tenant-networks functional tests * Share migrations tests between V2 and V2.1 * Merging instance\_actions tests between V2 and V2.1 * Share V2 and V2.1 hosts functional tests * Add serialization of context to FakeNotifier * Handle nova-network tuple format in legacy RPC calls * remove usage of policy.d which isn't cached * Update check before migrating flavor * Expand Origin header check for serial console * libvirt: reuse unfilter\_instance pass-through method * No need to create APIVersionRequest every time * Libvirt: preallocate\_images CONFIG can be arbitrary characters * Add some tests for the error path(s) in RBD cleanup\_volumes() * VMware: add instance to log messages * Hyper-V: checks for existent Notes in list\_instance\_notes * Fix incorrect statement in inline neutronv2 docs * Imported Translations from Transifex * Vmware:Find a SCSI adapter type for attaching iSCSI disk * Avoid MODULEPATH environment var in config generator * Be more forgiving to empty context in notification * Store cells credentials in transport\_url properly * Fix API links and labels * Stale rc.local file - vestige from cloudpipe.rst * Remove stale test + opensssl information from docs * Add the last of the oslo libraries to hacking check * Cancel all waiting events during compute node shutdown * Update hypervisor support matrix for ironic wrt pause/suspend * Scheduler: deprecate mute\_weight\_value option on weigher * Pass instance object to add\_instance\_fault\_from\_exc * Remove dead vmrc code * Add vnc\_keymap support for vmware compute * Remove compute/api.py::update() * add ironic hypervisor type * Removes XML MIME types from v2 API information * API: fix typo in unit tests * Add field name to error messages in object type checking * Remove obsolete TODO in scheduler filters * Expand valid server group name character set * Raise exception when backup volume-backed instance * Libvirt SMB volume driver: fix volume attach * Adds Compute API v2 docs * PCI tracker: make O(M \* N) clean\_usage algo linear * Fix v2.1 list-host to remove 'services' filter * Fix incorrect http\_conflict error message * Link to devstack guide for appropriate serial\_console instructions * Skip socket related unit tests on OSX * Add debug logging to quota\_reserve flow * Fix missing the cpu\_pinning request * Hyper-V: Sets \*DataRoot paths for instances * Refactored test in test\_neutron\_driver to pass with random PYTHONHASHSEED * fixed tests in test\_neutrounv2 to pass with random PYTHONHASHSEED * Refactored test in linux\_net to pass with random PYTHONHASHSEED * refactored tests in test\_wsgi to pass with random PYTHONHASHSEED * fixed tests in test\_simple\_tenant\_usage to pass with random PYTHONHASHSEED * Refactored test\_availability\_zone to work properly with random PYTHONHASHSEED * fixed test in test\_disk\_config to work with random PYTHONHASHSEED * Fixed test to work with random PYTHONHASHSEED * Fix \_instance\_action call for resize\_instance in cells * Add some logging in the quota.reserve flow * Check host cpu\_info if no cpu\_model for guest * Move ComputeNode creation at init stage in ResourceTracker * Releasing DHCP in nova-network fixed * Fix PCIDevicePool.to\_dict() when the object has no tags * Convert pci\_device\_pools dict to object before passing to scheduler * Sync from Oslo-Incubator - reload config files * Fix v2.1 hypervisor servers to return empty list * Add support for cleaning in Ironic driver * Adjust resource tracker for new Ironic states * Ironic: Remove passing Flavor's deploy\_{kernel, ramdisk} * don't 500 on invalid security group format * Adds cleanup on v2.2 keypair api and tests * Set conductor use\_local flag in compute manager tests * Use migration object in resource\_tracker * Move suds into test-requirements.txt * Make refresh\_instance\_security\_rules() handle non-object instances * Add a fixture for the NovaObject indirection API * Add missing \`shows\` to the RPC casts documentation * Override update\_available\_resources interval * Fix for deletes first preexisting port if second was attached to instance * Avoid load real policy from policy.d when using fake policy fixture * Neutron: simplify validate\_networks * Switch to newer cirros image in docs * Fix common misspellings * Scheduler: update doctring to use oslo\_config * Skip 'id' attribute to be explicitly deleted in TestCase * Remove unused class variables in extended\_volumes * libvirt: remove volume\_drivers config param * Make conductor use instance object * VMware: add VirtualVmxnet3 to the supported network types * Fix test cases still use v3 prefix * Typo in oslo.i18n url * Fix docs build break * Updated from global requirements * Fix typo in nova/tests/unit/test\_availability\_zones.py * mock out build\_instances/rebuild\_instance when not used * Make ComputeAPIIpFilterTestCase a NoDBTestCase * Remove vol\_get\_usage\_by\_time from conductor api/rpcapi * default tox cmd should also run 'functional' target * VMware: Consume the oslo.vmware objects * Release bdm constraint source and dest type * VMware: save instance object creation in test\_vmops * libvirt: Delay only STOPPED event for Xen domain * Remove invalid hacking recheck for baremetal driver * Adds Not Null constraint to KeyPair name * Fix orphaned ports on build failure * VMware: Fix volume relocate during detach 2015.1.0b3 ---------- * Fix AggregateCoreFilter return incorrect value * Remove comments on API policy, remove core param * Add policy check for consoles * Sync from oslo-incubator * Rename and move the v2.1 api policy into separated files * Disable oslo\_messaging debug logging * heal\_instance\_info\_cache\_interval help clearer * Forbid booting of QCOW2 images with virtual\_size > root\_gb * don't use oslo.messaging in mock * BDM: Avoiding saving if there were no changes * Tidy up sentinel comparison in pop\_instance\_event * Tidy up dict.setdefault() usage in prepare\_for\_instance\_event * Remove duplicate InvalidBDMVolumeNotBootable * libvirt: make default value of numa cell memory to 0 when not defined * Add the instance update calls from Compute * Save bdm.connection\_info before calling volume\_api.attach\_volume * Add InstanceMapping object * Add CellMapping object * load ram\_allocation\_ratio when asked * Remove pci\_device.update\_device helper function * Tox: reduce complexity level to 35 * Remove db layer hard-code permission checks for service\_get\_all * Expand help message on some quota config options * Test fixture for the api database * remove duplicate calls to cfg.get() * Remove context from remotable call signature * Actually stop passing context to remotable methods * Remove usage of remotable context parameter in service, tag, vif * Remove usage of remotable context parameter in security\_group\* * Remove usage of remotable context parameter in pci\_device, quotas * let fake virt track resources * doc: fix a docstext formatting * Update unique constraint of compute\_nodes with deleted column * Modify filters to get instance info from HostState * Add the RPC calls for instance updates * Implement instance update logic in Scheduler * Log exception from deallocate\_port\_for\_instance for triage * Remove usage of remotable context parameter in migration, network * Remove usage of remotable context parameter in compute\_node, keypair * Remove usage of remotable context parameter in instance\* objects * Remove usage of remotable context parameter in fixed\_ip, flavor, floating\_ip * Remove usage of remotable context parameter in ec2 object * libvirt: partial fix for live-migration with config drive * Added assertJsonEqual method to TestCase class * VMware: Improve reporting of path test failures * libvirt test\_cpu\_info method fixed random PYTHONHASHSEED compatibility * Remove usage of remotable context parameter in bandwidth, block\_device * Remove usage of remotable context parameter in agent, aggregate * Remove db layer hard-code permission checks for pci * Objects: use setattr rather than dict syntax in remotable * Split out NovaTimestampObject * libvirt: Resize down an instance booted from a volume * add neutron api NotImplemented test cases for Network V2.1 * Stop using exception.message * Remove unused oslo logging fixture * libvirt: don't allow to resize down the default ephemeral disk * Add api microvesion unit test case for wsgi.action * Change some comments for instance param * Hyper-V: Adds VMOps unit tests (part 2) * Add get\_api\_session to db api * Use the proper database engine for nova-manage * Add support for multiple database engines * Virt: update fake driver to use UUID as lookup key * VMware: use instance UUID as instance name * VMware: update test\_vm\_util to use instance object * Handle exception when doing detach\_interface * Variable 'name' already declared in 'for' loop * Handle RESIZE\_PREP status when nova compute do init\_instance * Move policy enforcement into REST API layer for v2.1 api volume\_attachment * Remove the elevated context when get network * Handles exception when unsupported virt-type given * Fix confusing log output in nova/nova/network/linux\_net.py * Workaround for race condition in libvirt * remove unneeded teardown related code * Fixed archiving of deleted records * libvirt: Remove minidom usage in driver.py * Stop spamming logs when creating context * Fix ComputeNode backport for Service.obj\_make\_compatible * Break out the child version calculation logic from obj\_make\_compatible() * Fix PciDeviceDBApiTestCase with referential constraint checking * Verify all quotas before updating the db * Add shadow table empty verification * Add @wrap\_exception() for 3 compute functions * Remove FK on service\_id and make service\_id nullable * Using Instance object instead of db call * Revert "Removed useless method \_get\_default\_deleted\_value." * Remove db layer hard-code permission checks for network\_count\_reserved\_ips * implement user negative testing for flavor manage * refactor policy fixtures to allow use of real policy * libvirt: remove unnecessary flavor parameter * Compute: no longer need to pass flavor to the spawn method * Update some ResizeClaimTestCase tests * Move InstanceClaimTestCase.test\_claim\_and\_audit * Handle exception when attaching interface failed * Deprecate Nova in tree EC2 APIs * cells: don't pass context to instance.save in instance\_update\_from\_api * ensure DatabaseFixture removes db on cleanup * objects: introduce numa topology limits objects * Add a test that validates object backports and child object versions * Fix ArchiveTestCase on MySQL due to differing exceptions * VMware: fix VM rescue problem with VNC console * VMware: Deprecation warning - map one nova-compute to one VC cluster * compute: don't trace on InstanceNotFound in reverts\_task\_state * Fix backporting objects with sub-objects that can look falsey * neutron: deprecate 'allow\_duplicate\_networks' config option * Fix Juno nodes checking service.compute\_node * Fix typo in \_live\_migration\_cleanup\_flags method * libvirt: add in missing translation for exception * Move policy enforcement into REST API layer for v2.1 extended\_volumes * Remove useless policy rules for v2.1 api which removed/disabled * Remove db layer hard-code permission checks for service\_get\_all\_by\_\* * Fix infinite recursion caused by unnecessary stub * Websocket Proxy should verify Origin header * Improve 'attach interface' exception handling * Remove unused method \_make\_stub\_method * Remove useless get\_one() method in SG API * Fix up join() and leave() methods of servicegroup * network: Fix another IPv6 test for Mac * Add InstanceList.get\_all method * Use session with neutronclient * Pass correct context to get\_by\_compute\_node() * Revert "Allow force-delete irrespective of VM task\_state" * Fix kwargs['instance'] KeyError in @reverts\_task\_state decorator * Fix copy configdrive during live-migration on HyperV * Move V2 sample files to respective directory * V2 tests -Reuse server post req/resp sample file * V2.1 tests - Reuse server post req/resp sample file * Remove an unused config import in nova-compute * Raise HTTPNotFound for Port/NetworkNotFound * neutronv2: only create client once when adding/removing fixed IPs * Stop stacktracing in \_get\_filter\_uuid * libvirt: Fix live migration failure cleanup on ceph * Sync with latest oslo-incubator * Better logging of resources * Preserve preexisting ports on server delete * Move oslo.vmware into test-requirements.txt * Remove db layer hard-code permission checks for network\_get\_by\_uuid * Refactor \_regex\_instance\_filter for testing * Add instance\_mappings table to api database * ec2: clean up in test\_cinder\_cloud * Remove unused method queue\_get\_for * Remove make\_ip\_dict method which is not used * Remove unused method delete\_subnet * Remove unused method disable\_vlan * Remove unused method get\_request\_extensions * Fix wrong log output in nova/nova/tests/unit/fake\_volume.py * Updated from global requirements * Remove db layer hard-code permission checks for network\_get\_by\_cidr * Add cell\_mappings table to api database * Ban passing contexts to remotable methods * Fix a remaining case of passing context to a remotable in scheduler * Fix several cases of passing context to quota-related remotable methods * Fix some cases of passing context to remotables with security groups * Replace RPC topic-based service queries with binary-based in cells * Replace RPC topic-based service queries with binary-based in scheduler * Fix some straggling uses of passing context to remotable methods in tests * VMware: remove code invoking deprecation warning * Fix typo in nova/scheduler/filters/utils.py * Remove db layer hard-code permission checks for network\_delete\_safe * Don't add exception instance in LOG.exception * Move policy enforcement into REST API layer for v2.1 servers * Move policy enforcement into REST API layer for v2.1 api attach\_interfaces * Remove db layer hard-code permission checks for flavor-manager * Remove db layer hard-code permission checks for service\_delete/service\_get * Remove db layer hard-code permission checks for service\_update * Fix 'nova show' return incorrect mac info * Use controller method in all admin actions tests * Remove db layer hard-code permission checks for flavor\_access * Modify filters so they can look to HostState * let us specify when samples tests need admin privs * Updated from global requirements * Remove cases of passing context to remotable methods in Flavor * Remove cases of passing context to remotable methods in Instance * Fix up PciDevice remotable context usage * libvirt: add comment for vifs\_already\_plugged=True in finish\_migration * neutron: check for same host in \_update\_port\_binding\_for\_instance * Move policy enforcement into REST API layer for v2.1 security groups * Keep instance state if lvm backend not impl * Replace RPC topic-based service queries in nova/api with binary-based * Remove service\_get\_by\_args from the DB API * Remove usage of db.service\_get\_by\_args * Make unit tests inherit from test.NoDBTestCase * Fixed incorrect behavior of method sqlalchemy.api.\_check\_instance\_exists * Remove db layer hard-code permission checks for migrations\_get\* * vmware: support both hard and soft reboot * xenapi: Fix session tests leaking state * libvirt: Cleanup snapshot tests * Change instance disappeared during destroy from Warning to Info * Replace instance flavor delete hacks with proper usage * Add delattr support to base object * Use flavor stored with instance in vmware driver * Use flavor stored with instance in ironic driver * Modify AggregateAPI methods to call the Scheduler client methods * Create Scheduler client methods for aggregates * Add update and delete \_aggregate() method to the Scheduler RPC API * Instantiate aggregates information when HostManager is starting * Add equivalence operators to NUMACell and NUMAPagesTopology * Adds x509 certificate keypair support * Better round trip for RequestContext<->Dict conversion * Make scheduler client reporting use ComputeNode object * Prevent update of ReadOnlyDict * Copy the default value for field * neutron: add logging during nw info\_cache refresh when port is gone * Add info for Standalone EC2 API to cut access to Nova DB * VMware: Fix disk UUID in instance's extra config * Update config generator to use new style list\_opts discovery * Avoid KeyError Exception in extract\_flavor() * Imported Translations from Transifex * Updated from global requirements * Move policy enforcement into REST API layer for v2.1 create backup * Truncate encoded instance sys meta to 255 or less * Adds keypair type in nova-api * Switch nova.virt.vmwareapi.\* to instance dot notation * Allow disabling the evacuate cleanup mechanism in compute manager * Change queries for network services to use binary instead of topic * Add Service.get\_by\_host\_and\_binary and ServiceList.get\_by\_binary * Compute: update config drive settings on instance * Fix docstrings for assorted methods * Config driver: update help text for force\_config\_drive * libvirt-numa.rst: trivial spelling fixes * Ensure bridge deleted with brctl delbr * create noauth2 * enhance flavor manage functional tests * Add API Response class for more complex testing * Add more log info around 'not found' error * Remove extended addresses from V2.1 update & rebuild * Switch nova.virt.hyperv.\* to instance dot notation * Revert instance task\_state when compareCPU fails * Libvirt: Fix error message when unable to preallocate image * Switch nova.virt.libvirt.\* to instance dot notation * Add nova-manage commands for the new api database * Add second migrate\_repo for cells v2 database migrations * Updated from global requirements * Force LANGUAGE=en\_US in test runs * neutron: consolidate common unbind ports logic * Sync oslo policy change * Remove compute\_node field from service\_get\_by\_compute\_host * Fix how the Service object is loading the compute\_node field * Remove compute\_node from service\_get\_by\_cn Cells API method * Remove want\_objects kwarg from nova.api.openstack.common.get\_instance * Switch nova.virt.\* to use the object dot notation * add string representation for context * Remove db layer hard-code permission checks for migration\_create/update * Disables pci plugin for v2.1 & microversions * Fix logic for checking if az can be updated * Add obj\_alternate\_context() helper * libvirt: remove libvirt import from tests so we only use fakelibvirt * capture stdout and logging for OSAPIfixture test * remove unused \_authorize\_context from security\_group\_default\_rules.py * Switch nova.context to actually use oslo.context * Fixed incorrect indent of test\_config\_read\_only\_disk * Fixed incorrect assertion in test\_db\_api * Remove TranslationFixture * Replace fanout to False for CastAsCall fixture * Make ConsoleAuthTokensExtensionTestV21 inherit from test.NoDBTestCase * Remove db layer hard-code permission checks for task\_log\_get\* * Remove db layer hard-code permission checks for task\_log\_begin/end\_task * Api: remove unusefull compute api from cells * Remove db layer hard-code permission checks for service\_create * Imported Translations from Transifex * Change v3 import to v21 in 2.1 api unit test * Fix NotImplementedError handling in interfaces API * Support specifing multiple values for aggregate keys * Remove attach/detach/swap from V2.1 extended\_volumes * Make metadata cache time configurable * Remove db layer hard-code permission checks for fixed\_ip\_disassociate\_all\_by\_timeout * Move policy enforcement into REST API layer for v2.1 api assisted\_volume\_snapshots * Fix tiny typo in api microversions doc * Fixes Hyper-V: configdrive is not migrated to destination * ensure that ram is >= 1 in random flavor creation * Fixes 500 error message and traces when no free ip is left * db: Add index on fixed\_ips updated\_at * Display host chosen for instance by scheduler * PYTHONHASHSEED bug fix in test\_utils * fixed tests in test\_vm\_util to work with random PYTHONHASHSEED * Add microversion allocation on devref * Remove OS-EXT-IPS attributes from V2.1 server ips * Remove 'locked\_by' from V2.1 extended server status * Remove 'id' from V2.1 update quota\_set resp * Fix bad exception logging * VMware: Ensure compute\_node.hypervisor\_hostname is unique * Inherit exceptions correctly * Remove en\_US translation * Move policy enforcement into REST API layer for v2.1 cloudpipe * Move policy enforcement into REST API layer for v2.1 security\_group\_default\_rules * linux\_net.metadata\_accept(): IPv6 support * Enforce in REST API layer on v2.1 api remote consoles * Remove accessips attribute from V2.1 POST server resp * Move policy enforcement into REST API layer for v2.1 floating\_ip\_dns * Fix bad interaction between @wsgi.extends and @wsgi.api\_version * Enforce in REST API layer on v2.1 shelve api * Move policy enforcement into REST API layer for v2.1 api evacuate * Add manual version comparison to microversion devref document * Switch to uuidutils from oslo\_utils library * Add developer documentation for writing V2.1 API plugins * Convert nova.compute.\* to use instance dot notation * Better power\_state logging in \_sync\_instance\_power\_state * Use instance objects in fping/instance\_actions/server\_metadata * Fix misspellings words in nova * Fix KeyErrors from incorrectly formatted NovaExceptions in unit tests * Move policy enforcement into REST API layer for v2.1 floating ips * Switch nova.network.\* to use instance dot notation * Revert : Switch off oslo.\* namespace check temporarily * Move policy enforcement into REST API layer for v2.1 networks related * Remove db layer hard-code permission checks for v2.1 agents * Move v2.1 virtual\_interfaces api policy enforcement into REST API layer * fix 'Empty module name' exception attaching volume * Use flavor stored with instance in libvirt driver * Handle 404 in os-baremetal-nodes GET * API: Change the API cpu\_info to be meaning ful * Updated from global requirements * Make compute unit tests inherit from test.NoDBTestCase * Request objects in security\_groups api extensions * Reuse is\_int\_like from oslo\_utils * VMware: fix network connectivity problems * Move policy enforcement into REST API layer for v2.1 admin password * Fix the order of base classes in migrations test cases * Libvirt: Allow missing volumes during delete * Move policy enforcement into REST API layer for v2.1 server\_diagnostics * Fix wrong log when reschedule is disabled * Replace select-for-update in fixed\_ip\_associate * Move policy enforcement into REST API layer for v2.1 fping * Consolidate use api request version header * Copy image from source host when ImageNotFound * VMware: update get\_available\_datastores to only use clusters * Add useful debug logging when policy checks fail * Remove unused conductor methods * Call notify\_usage\_exists() without conductor proxying * Updated from global requirements * Make notifications use BandwidthUsageList object * libvirt: Fix migration when image doesn't exist * Fix a typo of devref document for api\_plugin * console: add unit tests for baseproxy * libvirt: log host capabilities on startup * Allow configuring proxy\_host and proxy\_port in nova.conf * Fixes novncproxy logging.setup() * Add descriptions to some assertBooleans * Remove update\_store usage * Enforce policy checking in REST API layer for v2.1 server\_password * Add methods that convert any volume BDM to driver format * Split scheduler weight test on ram * Split scheduler weight test on metrics * Split scheduler weight test on ioops * Fix 500 when deleting a not existing ec2 security group * Remove backwards compat oslo.messaging entries from setup.cfg * Change utils.vpn\_ping() to return a Boolean * Enable retry when there are multiple force hosts/nodes * Use oslo.log * switch LOG.audit to LOG.info * Add catch FlavorExtraSpecsNotFound in V2 API * tests: remove duplicate keys from dictionary * Add blkid rootwrap filter * Fix idempotency of migration 269 * objects: fix issue in test cases for instance numa * VMware: Accept image and block device mappings * nova flavor manage functional test * extract API fixture * Fix V2 hide server address functional tests * Remove unused touch command filter * Add a test for block\_device\_make\_list\_from\_dicts * Move policy enforcement into REST API layer for v2.1 floating\_ip\_pools * libvirt: address test comments for zfcp volume driver changes * libvirt: Adjust Nova to support FCP on System z systems * Fix BM nodes extension to deal with missing node properties * VMware: update the support matrix for security groups * Ignore 'dynamic' addr flag on gateway initialization * Adds xend to rootwrap.d/compute.filters * Create volume in the same availability zone as instance * Wrap IPv6 address in square brackets for scp/rsync * fake: fix public API signatures to match virt driver * Added retries in 'network\_set\_host' function * Use NoDBTestCase instead of TestCase * Change microversion header name * VMware: ensure that resize treats CPU limits correctly * Compute: pass flavor object to migrate\_disk\_and\_power\_off * extract method from fc volume discovery * Set instance NUMA topology on HostState * Support live-migrate of instances in PAUSED state * Fix DB access by FormatMappingTestCase * api: report progress when instance is migrating * libvirt: proper monitoring of live migration progress * libvirt: using instance like object * libvirt: convert tests from mox to mock * XenAPI: Fix data loss on resize up * Delete instance files from dest host in revert-resize * Pass the capabilities to ironic node instance\_info * No need to re-fetch instance with sysmeta * Switch nova.api.\* to use instance dot notation * Objectify calls to service\_get\_by\_compute\_host * Refactor how to remove compute nodes when service is deleted * Move policy enforcement into REST API layer for v2.1 admin actions * Contrail VIF Driver changes for Nova-Compute * libvirt : Fix slightly misleading parameter name, validate param * libvirt: cleanup setattr usage in test\_host * libvirt: add TODOs for removing libvirt attribute stubs * Expand try/except for get\_machine\_ips * Switch nova.compute.manager to use instance dot notation * libvirt: stub out VIR\_CONNECT\_LIST\_DOMAINS\_INACTIVE * libvirt: stub out VIR\_SECRET\_USAGE\_TYPE\_ISCSI for older libvirt * Change calls to service information for Hypervisors API * Add handling for offlined CPUs to the nova libvirt driver * Make compute API create() use BDM objects * Remove redundant tearDown from ArchiveTestCase * libvirt: switch LibvirtConnTestCase back to NoDBTestCase * Replace usage of LazyPluggable by stevedore driver * Don't mock time.sleep with None * Libvirt: Support ovs plug in vhostuser vif * Removed duplicate key from dictionary * Fixes Attribute Error when trying to spawn instance from vhd on HyperV * Remove computenode relationship on service\_get * Remove nested service from DB API compute\_nodes * libvirt: Use XPath instead of loop in \_get\_interfaces * fixed tests to work with random PYTHONHASHSEED * Imported Translations from Transifex * Make the method \_op\_method() public * Quiesce boot from volume instances during live snapshot * Fix "Host Aggregate" section of the Nova Developer Guide * network: Fix another IPv6 test for Mac * Pre-load default filters during scheduler initialization * Libvirt: Gracefully Handle Destroy Error For LXC * libvirt: stub VIR\_CONNECT\_LIST\_DOMAINS\_ACTIVE for older libvirts * Fix VNC access, when reverse DNS lookups fail * Remove now useless requirements wsgiref * Add JSON schema for v2.1 add network API * Handle MessagingException in unshelving instance * Compute: make use of dot notation for console access * Compute: update exception handling for spice console * Add missing api samples for floating-ips api(v2) * Move v2.1 rescue api policy enforcement into REST API layer * Move policy enforcement into REST API layer for v2.1 ips * Move policy enforcement into REST API layer for v2.1 multinic * Move policy enforcement into REST API layer for v2.1 server\_metadata * VMware: fix resize of ephemeral disks * VMware: add in a utility method for detaching devices * VMware: address instance resize problems * Fixes logic in compute\_node\_statistics * Cover ListOfObjectField for relationship test * Replace oslo-incubator with oslo\_context * Libvirt: add in unit tests for driver capabilities * Ironic: add in unit tests for driver capabilities * Tests: Don't require binding to port 4444 * libvirt: fix overly strict CPU model comparison in live migration * Libvirt: vcpu\_model support * IP filtering is not accurate when used with limit * Change how the API is getting a list of compute nodes * Change how Cells are getting the list of compute nodes * Change how HostManager is calling the service information * Move scheduler.host\_manager to use ComputeNode object * patch out nova libvirt driver event thread in tests * Change outer to inner join in fixed IP DB API func * Small cleanup in pci\_device\_update * Remove useless NotFound exception catching for v2/v2.1 fping * V2.1 cleanup: Use concrete NotFound exception instead of generic * Drop deprecated namespace for oslo.rootwrap * Add vcpu\_model to instance object * Pass instance primitive to instance\_update\_at\_top() * Adds infrastructure for microversioned api samples * Libvirt: Support for generic vhostuser vif * Pull singleton config check cruft out of SG API * hacking: Got rid of unnecessary TODO * Remove unused function in test * Remove unused function * hardware: fix reported host mempages in numa cell * objects: fix numa obj relationships * objects: remove default values for numa cell * Move policy enforcement into REST API layer for v2.1 suspend/resume server * Move policy enforcement into REST API layer for v2.1 api console-output * Move policy enforcement into REST API layer for v2.1 deferred\_delete * Move migrate-server policy enforce into REST API * Add API schema for v2.1 tenant networks API * Move policy enforcement into REST API layer for v2.1 lock server * Libvirt: cleanup rescue lvm when unrescue * Sync simple\_tenant\_usage V2.1 exception with V2 and add test case * IP filtering can include duplicate instances * Add recursive flag to obj\_reset\_changes() * Compute: use dot convension for \_poll\_rescued\_instances * Add tests for nova-manage vm list * libvirt: add libvirt/parallels to hypervisor support matrix * Compute: update reboot\_instance to use dot instance notation * Fix incorrect compute api config indentation * libvirt: fix emulator thread pinning when doing strict CPU pinning * libvirt: rewrite NUMA topology generator to be more flexible * libvirt: Fix logically inconsistent host NUMA topology * libvirt: utils canonicalize now the image architecture property * A couple of grammar fixes in help strings * Implement api samples test for os-baremetal-nodes Part 2 * Compute: use consistant instance dot notation * Log warning if CONF.my\_ip is not found on system * libvirt: remove \_destroy\_instance\_files shim * virt: Fix interaction between disk API tests * network: Fix IPv6 tests for Mac * Use dot notation on instance object fields in \_delete\_instance * libvirt: memnodes shuold be set to a list instead of None * Cleanup add\_fixed\_ip\_to\_instance tests * Cleanup test\_instance\_dns * Fix detach\_sriov\_ports to get context to be able to get image metadata * Implement api samples test for os-baremetal-nodes * Fix description of parameters in nova functions * Stop making the database migration backend lazy pluggable * Updated from global requirements * Libvirt: Created Nova driver for Quobyte * Adds keypair type database migration * libvirt: Enable serial\_console feature for system z * Make tests use sha256 as openssl default digest algorithm * Improved performance of db method network\_in\_use\_on\_host * Replace select-for-update in floating\_ip\_allocate\_address * Move policy enforcement into REST API layer for v2.1 pause server * Libvirt: update log message * Update usage of exception MigrationError * Extract preserve ephemeral on rebuild from servers plugin * VMware: update get\_vm\_resize\_spec interface * VMware: Enable spawn from OVA image * Raise bad request for missing 'label' in tenant network * CWD is incorrectly set if exceptions are thrown * VMware: add disk device information to VmdkInfo * Use controller methods directly in test\_rescue * Call controller methods directly in test\_multinic * Add version specific test cases for microverison * Change v2.1 API status to CURRENT * Remove wsgi\_app usage from test\_server\_actions * Change some v2.1 extension names to v2 * Add VirtCPUModel nova objects * Add enum fieldtype field * Convert v2.1 extension\_info to show V2 API extension list * Remove compability check for ratelimit\_v3 * Keep instance state if ssh failed during migration * Cleanup and removal of unused code in scheduler unit tests * Fix incorrect use of mock in scheduler test * Make test re-use HTTPRequest part 5 * Refactor test\_filter\_scheduler use of fakes * consoliate set\_availability\_zones usage * Warn about zookeeper service group driver usage * Updated from global requirements * Update matrix for kvm on ppc64 * Switch off oslo.\* namespace check temporarily * Switch to using oslo\_\* instead of oslo.\* * Adjust object\_compat wrapper order * Add more tests for tenant network API * Sync with oslo-incubator * Make compute use objects usage 'best practice' * Enable BIOS bootmenu on AMI-based images 2015.1.0b2 ---------- * libvirt: fix console device for system z for log file * Fix references to non-existent "pause" section * libvirt: generate proper config for PCS containers * libvirt: add ability to add file and block based filesystem * libvirt: add ploop disks format support * Fix improper use of Stevedore * libvirt: Fail when live block migrating instance with volumes * Add notification for suspend * Add API schema for v2.1 networks API * Remove v1.1 from v2.1 extension description * Add \_LW for missing translations * Treat LOG.warning and LOG.warn same * Add JSON schema for v2.1 'quota\_class' API * Add missing setup.cfg entry for os-user-data plugin * Add api\_version parameter for API sample test base class * Add suggestion to dev docs for debugging odd test failures * Add max\_concurrent\_builds limit configuration * Fixes Hyper-V configdrive network injection issue * Update Power State after deleting instance * Remove temporary power state variables * Make obj\_set\_defaults() more useful * Adds devref for API Microversions * PCI NUMA filtering * Ensure publisher\_id is set correctly in notifications * libvirt: Use XPath instead of loop in \_get\_all\_block\_devices * libvirt: Use XPath instead of loop in get\_instance\_diagnostics * fix typo in rpcapi docstring * Fix conductor servicegroup joining when zk driver is used * Do not treat empty key\_name as None * Failed to discovery when iscsi multipath and CHAP both enabled * Fix network tests response code checking * Remove unused error from v2.1 create server * Fix corrupting the object repository with test instance objects * Change cell\_type values in nova-manage * Fix bad mocking of methods on Instance * Updated from global requirements * VMware: fix resume\_state\_on\_host\_boot * Fix cells rpc connection leak * Remove redundant assert of mock volume save call * Don't create block device mappings in the API cell * Add formal doc recording hypervisor feature capability matrix * Ironic: Adds config drive support * libvirt-xen: Fix block device prefix and disk bus * libvirt-xen: don't request features ACPI or APIC with PV guest * Make EC2 compatible with current AWS CLI * libvirt: remove pointless loop after live migration finishes * Remove useless argparse requirement * add asserts of DriverBlockDevice save call parameters * fix call of DriverVolumeBlockDevice save in swap\_volume * Use a workarounds group option to disable live snaphots * libvirt : Add support for --interface option in iscsiadm * Cells: Fix service\_get\_by\_compute\_host * Expand instances project\_id index to cover deleted as well * Remove unused conductor parameter from get\_host\_availability\_zone() * Fixes Hyper-V instance snapshot * Add more status when do \_poll\_rebooting\_instances * Adds barbican keymgr wrapper * libvirt: avoid setting the memnodes where when it's not a supported option * Make code compatible with v4 auth and workaround webob bug * Fix likely undesired use of redirection * Save bdm in swap\_volume * doc: document manual testing procedure for serial-console * nova net-delete network is not informative enough * Improvement in 'network\_set\_host' function * Fix typo in nova/virt/disk/vfs/localfs.py * Fix expected error in V2.1 add network API * libvirt: fix failure when attaching volume to iso instance * Add log message to is\_luks function * Access migration fields like an object in finish\_revert\_resize * Remove unused migration parameter from \_cleanup\_stored\_instance\_types * object: serialize set to list * Fix leaking exceptions from scheduler utils * Adds tests for Hyper-V LiveMigration utils * Adds tests for Hyper-V VHD utils * libvirt: fix missing block device mapping parameter * libvirt: add QEMU built-in iSCSI initiator support * Add update\_or\_create flag to BDM objects create() * Typos fixed * Remove unused method from test\_metadata * libvirt: Support iSCSI live migration for different iSCSI target * Add JSON schema for "associate\_host" API * Add migrate\_flavor\_data to nova-manage * Adds logging to ComputeCapabilitiesFilter failures * Add flavor fields to Instance object * Fix up some instance object creation issues in tests * Fix misspellings in hardware.py * VMware: add in utility methods for copying and deleting disks * Apply v2.1 API to href of version API * Revert "Raise if sec-groups and port id are provided on boot" * libvirt: always pass image\_meta when getting guest XML * libvirt: assume image\_meta is non-None in blockinfo module * libvirt: always pass image meta when getting disk info from bdm * Calls to superclass' \_\_init\_\_ function is optional * Enforce DB model matches results of DB migrations * Add missing foreign keys for sqlite * Fix an indentation in server group api samples template * Allow instances to attach to shared external nets * Handle ironic\_client non-existent case * Cells: Record initial database split in devref * Use a workarounds option to disable rootwrap * virt: Fix images test interaction * libvirt: add parallels virt\_type * Convert nova-manage list to use Instance objects * Create a 'workarounds' config group * Updated from global requirements * don't use exec cat when we can use read * don't assert\_called\_once\_with with a real time * Network: correct VMware DVS port group name lookup * Refactor ComputeCapabilitiesFilter as bugfix preparation * libvirt: Set SCSI as the default cdrom bus on System z * Adds common policy authorizer helper functions for Nova V2.1 API * Adds skip\_policy\_check flag to Compute/Network/SecurityGroup API * Make test re-use HTTPRequest part 4 * libvirt: update uri\_whitelist in fakelibvirt.Connection * Revert "Adds keypair type database migration" * Support for ext4 as default filesystem for ephemeral disks * Raise NotFound if attach interface with invalid net id or port id * Change default value of multi\_instance\_display\_name\_template * Check for LUKS device via 'isLuks' subcommand * disk: use new vfs method and option to extend * Replace select-for-update in fixed\_ip\_associate\_pool * Remove unused content\_type\_params() * libvirt: always pass image meta when getting disk mapping * libvirt: always pass image meta when getting disk info * Add API schema for v2.1 server reboot actions * objects: fix typo in changelog of compute\_node * Add API schema for v2.1 'removeFloatingIp' * Add API schema for v2.1 'addFloatingIp' * Add parameter\_types.ip\_address for cleanup * Reply with a meaningful exception when ports are over the quota limit * Adds keypair type database migration * A minor change of CamelCase parameter * Imported Translations from Transifex * Remove N331 hacking rules * GET details REST API next link missing 'details' * Add missing indexes in SQLite and PostgreSQL * libvirt: cleanup warning log formatting in \_set\_host\_enabled * Revert temporary hack to monkey patch the fake rpc timeout * Remove H238 comment from tox.ini * libvirt: use image\_meta when looking up default device names * Fix bdm transformation for volume backed servers * Removed host\_id check in ServersController.update * Fix policy validation in JSONSchema * Adds assert\_has\_no\_errors check * Removed useless method \_get\_default\_deleted\_value * virt: make tests pass instance object to get\_instance\_disk\_info * libvirt: rename conn variable in LibvirtConnTestCase * Raise if sec-groups and port id are provided on boot * Begin using ironic's "AVAILABLE" state * Transform IPAddress to string when creating port * Break base service group driver class out from API * Remove unused \_get\_ip\_and\_port() * Updated from global requirements * Add method for getting the CPU pinning constraint * libvirt: Consider CPU pinning when booting * Make ec2/cloud.py use get\_instance\_availability\_zone() helper * HACKING.rst: Update the location of unit tests' README.rst * Remove unused method log\_db\_contents * Make use of controller method in test\_flavor\_manage * libvirt: Use XPath instead of loop in \_get\_disk\_xml * Avoid bdms db call when cleaning deleted instance * Ignore warnings from contextlib.nested * Cleanup bad JSON files * Switch to oslo.vmware API for reading and writing files * Make test re-use HTTPRequest part 1 * Make test re-use HTTPRequest part 2 * Make test re-use HTTPRequest part 3 * Remove HTTPRequestV3 in scheduler\_hints test * Hyper-V: Adds instance missing metrics enabling * ephemeral file names should reflect fs type and mkfs command * Reschedule queries to nova-scheduler after a timeout occurs * libvirt: remove use of utils.instance\_sys\_meta * libvirt: remove use of fake\_instance.fake\_instance\_obj * Remove redundant catch for InstanceNotFound * Add to\_dict() method to PciDevicePool object * libvirt: rename self.conn in LibvirtVolume{Snapshot||Usage}TestCase * libvirt: rename self.libvirtconnection in LibvirtDriverTestCase * libvirt: convert LibvirtConnTestCase to use fakelibvirt fixture * Remove unused network rpcapi calls * Added hacking rule for assertEqual(a in b, True/False) * Add API schema for v2.1 createImage API * Fix errors in string formatting operations * libvirt: Create correct BDM object type for conn info update * Fixes undocumented commands * Make \_get\_instance\_block\_device\_info preserve root\_device\_name * Convert tests to NoDBTestCase * Fixes Hyper-V should log a clear error message * Provide compatibliity for db.compute\_node\_statistics * Update network resource when shelve offload instance * Update network resource when rescheduling instance * libvirt: Expanded test libvirt driver * Adds "file" disk driver support to Xen libvirt driver * Virt: remove unused 'host' parameter from get\_host\_uptime * Don't translate logs in tests * Don't translate exceptions in tests * disk/vfs: introduce new option to setup * disk/vfs: introduce new method get\_image\_fs * initialize objects with context in block device * Remove unused controller instance in test\_config\_drive * Fix v2.1 os-tenant-networks/networks API * Use controller methods in test\_floating\_ips * Cleanup in test\_admin\_actions * Calling controller methods directly in test\_snapshots * Add checking changePassword None in \_action\_change\_password(v2) * Add more exceptions handle when change server password (v2) * Share admin\_password unit test between V2 & V2.1 * Share server\_actions unit test between V2 & V2.1 * Fix server\_groups schema on v2.1 API * Implement a safe copy.copy() operation for Nova models * clean up extension loading logging * Hyper-V: Fixes wrong hypervisor\_version * console: introduce baseproxy and update consoles cmd * libvirt: update get\_capabilities to Host class * libvirt: add get\_connection doc string in Host class * Enable check for H238 rule * Call ComputeNode instead of Service for getting the nodes * Remove mox dependency * Fix JSONFilter docs * libvirt: move \_get\_hypervisor\_\* functions to Host class * libvirt: don't turn time.sleep into a no-op in tests * Adds Hyper-V generation 2 VMs implementation * VMware: ensure that correct disk details are returned * Improve api-microversion hacking check * Add unit test for getting project quota remains * Fix py27 gate failure - test\_create\_instance\_both\_bdm\_formats * Reduce complexity of the \_get\_guest\_config method * Cleanups in preparation of flavor attributes on Instance * Add flavor column to instance\_extra table * docs: document manual testing procedure for NUMA support * Add setup/cleanup\_instance\_network\_on\_host api for neutron/nova-network * Remove useless requirements * Make get\_best\_cpu\_topology consider NUMA requested CPU topology * Make libvirt driver expose sibling info in NUMA topology * VMware: snapshot as stream-optimized image * VMware: refactor utility functions related to VMDK * Get settable user quota maximum correctly * Add missing policy for nova in policy.json * Fix typo in nfs\_mount\_options option description * increase fake rpc POLL\_TIMEOUT to 0.1s * work around for until-failure * Fix inconsistencies in the ComputeNode object about service * Fixed incorrect initialization of availability zone tests * Revert "initialize objects with context in block device" * Fix wrong instructions for rebuilding API samples * Performance: leverage dict comprehension in PEP-0274 * Sync with latest oslo-incubator * initialize objects with context in VirtualInterface object tests * initialize objects with context in Tag object tests * initialize objects with context in Service object tests * Fixes Hyper-V boot from volume live migration * Expansion of matching XML strings logic * Xenapi: Attempt clean shutdown when deleting instance * don't use debug logs for object validation * create some unit of work logging in n-net * Make service-update work in API cells * oslo: remove useless modules * Do not use deprecated assertRaisesRegexp() * Honor shared storage on resize revert * Stub out instance action events in test\_compute\_mgr * Remove unused instance\_group\_metadata\_\* DB APIs * initialize objects with context in block device * Reduce the complexity of the create() method * speed up tests setting fake rpc polling timeout * xenapi: don't send terminating chunk on errors * Make service-delete work in API cells * Add version as request param for fake HTTPRequest * Fix OverQuota headroom KeyError in nova-network allocate\_fixed\_ip * Updated from global requirements * Make numa\_usage\_from\_instances consider CPU pinning * Cleanup in admin\_actions(v2.1api) * Cache ironic-client in ironic driver * tests: fix handling of TIMEOUT\_SCALING\_FACTOR * libvirt: remove/revert pointless logic for getVersion call * libvirt: move capabilities helper into host.py * libvirt: move domain list helpers into Host class * libvirt: move domain lookup helpers into Host class * Fix live migration RPC compatibility with older versions * Added \_get\_volume\_driver method in libvirt driver * fix wrong file path in docstring of hacking.checks * Make ec2 auth support v4 signature format * VMware: driver not handling port other than 443 * libvirt: use XPath in \_get\_serial\_ports\_from\_instance * Remove non existent rule N327 from HACKING.rst * Replace Hacking N315 with H105 * Enable W292 * Fix and re-gate on H306 * Move to hacking 0.10 * Fix nova-manage shell ipython * Make service-list output consistent * Updated from global requirements * Make V2.1 servers filtering (--tenant-id) same as V2 * Fix failure rebuilding instance after resize\_revert * Move WarningsFixture after DatabaseFixture so emit once * libvirt: Use arch.from\_host instead of platform.processor * Cells: Improve invalid hostname handling * Fix obj\_to\_primitive() expecting the dict interface methods * Remove unused XML\_WARNING variable in servers API * Guard against missing X-Instance-ID-Signature header * libvirt: not setting membacking when mempages are empty host topology * remove pylint source code annotations * Cleanup XML for api samples tests for Nova REST API * remove all traces of pylint testing infrastructure * initialize objects with context in SecurityGroupRule object tests * initialize objects with context in SecurityGroup object tests * initialize objects with context in base object tests * initialize objects with context in Migration object tests * initialize objects with context in KeyPair object tests * initialize objects with context in InstanceNUMATopology object tests * initialize objects with context in InstanceGroup object tests * initialize objects with context in InstanceFault object tests * Fix error message when no IP addresses available * Update WSGI SSL IPv6 test and SSL certificates * Catch more specific exception in \_get\_power\_state * Add WarningsFixture to only emit DeprecationWarning once in a test run * Maintain the creation order for vifs * Update docstring for wrap\_exception decorator * Doc: Adds python-tox to Ubuntu dependencies * Added hacking rule for assertTrue/False(A in B) * ironic: use instance object in driver.py * Add LibvirtGPFSVolumeDriver class * Make pagination work with deleted marker * Return 500 when unexpected exception raising when live migrate v2 * Remove no need LOG.exception on attach\_interface * Make LOG exception use format\_message * make IptablesRule debug calls meaningful * Switch to tempest-lib's packaged subunit-trace * Update eventlet API in libvirt driver * initialize objects with context in Instance object tests * initialize objects with context in Flavor object tests * initialize objects with context in FixedIP object tests * initialize objects with context in EC2 object tests * initialize objects with context in ComputeNode object tests * initialize objects with context in BlockDeviceMapping object tests * Nuke XML support from Nova REST API - Phase 3 * Return floating\_ip['fixed\_ip']['instance\_uuid'] from neutronv2 API * Add handling of BadRequest from Neutron * Add numa\_node to PCIDevice * Nuke XML support from Nova REST API - Phase 2 * Remove unused methods in nova utils * Use get\_my\_ipv4 from oslo.utils * Add cpu pinning check to numa\_fit\_instance\_to\_host * Add methods for calculating CPU pinning * Remove duplicated policy check at nova-network FlatManager * boot instance with same net-id for multiple --nic * XenAPI: Check image status before uploading data * XenAPI: Refactor message strings to remove locals * Cellsv2 devref addition * Nuke XML support from Nova REST API - Phase 1 * hardware: fix numa topology from image meta data * Support both list and dict for pci\_passthrough\_whitelist * libvirt: Add balloon period only if it is not None * Don't assume contents of values after aggregate\_update * Add API schema for server\_groups API * Remove unused function \_get\_flavor\_refs in flavor\_access extension * Make rebuild server schema 'additionalProperties' False * Tests with controller methods in test\_simple\_tenant\_usage * Convert wsgi call to controller in test\_virtual\_interfaces * Fix the comment of host index api * Imported Translations from Transifex * Use controller methods directly in test\_admin\_password * Drop workarounds for python2.6 * VMware: add in utility method for copying files * Remove lock files when remove libvirt images * Change log when set\_admin\_password failed * Catch InstanceInvalidState for start/stop action * Unshelving a volume backed instance doesn't work * Cache empty results in libvirt get\_volume\_connector * VMware: improve the performance of list\_instances * VMware: use power\_off\_instance instead of power\_off * VMware: refactor unit tests to use \_get\_info * libvirt: clean instance's directory when block migration fails * Remove unused scheduler driver methods * Reuse methods from netutils * VMware: make use of oslo.vmware logout * Remove unused directory nova/tests/unit/bundle * Prevent new code from using namespaced oslo imports * Move metadata filtering logic to utils.py * Make test\_consoles to directly call controller methods * Catch expected exceptions in remote console controller * Make direct call to controller test\_server\_password * Cleanup in test\_keypairs not to use wsgi\_app * Add ipv6 support to fake network models * Add host field when missing from compute\_node * Remove condition check for python2.6 in test\_glance * Cleanup in test\_availability\_zone not to use wsgi\_app * Call controller methods directly in test\_evacuate * VMware: Use datastore\_regex for disk stats * Add support for clean\_shutdown to resize in compute api layer * Fix Instance relationships in two objects * objects: remove NovaObjectDictCompat from Tag object * libvirt: introduce new helper for getting libvirt domain * libvirt: remove pointless \_get\_host\_uuid method * libvirt: pass Host object into firewall class * Cleanup in server group unit tests * Enhance EvacuateHostTestCase test cases * Call controller methods directly in test\_console\_output * Make direct call to controller in test\_console\_auth\_tokens * Populates retry info when unshelve offloaded instance * Catch NUMA related exceptions for create server v2.1 API * Remove unnecessary cleanup from ComputeAPITestCase * extract RPC setup into a fixture 2015.1.0b1 ---------- * Fix recent regression filling in flavor extra\_specs * remove detail method from LimitsController * Remove instance\_uuids from request\_spec * libvirt: remove unused get\_connection parameter from VIF driver * libvirt: sanitize use of mocking in test\_host.py * libvirt: convert test\_host.py to use FakeLibvirtFixture * libvirt: introduce a fixture for mocking out libvirt connections * Expand valid resource name character set * Set socket options in correct way * Make resize server schema 'additionalProperties' False * Make lock file use same function * Remove unused db.api.dnsdomain\_list * Remove unused db.api.instance\_get\_floating\_address * Remove unused db.api.aggregate\_host\_get\_by\_metadata\_key * Remove unused db.api.get\_ec2\_instance\_id\_by\_uuid * Join instances column before expecting it to exist * ec2: Change FormatMappingTestCase to NoDBTestCase * libvirt: enhance driver to configure guests based on hugepages * Fix ironic delete fails when flavor deleted * virt: pass instance object to block\_stats & get\_instance\_disk\_info * Add pci\_device\_pools to ComputeNode object * Handle invalid sort keys/dirs gracefully * hardware: determine whether a pagesize request is acceptable * objects: add method to verify requested hugepages * hardware: make get\_constraints to return topology for hugepages * hardware: add method to return requested memory page size * Cleanup in ResourceExtension ALIAS(v2.1api) * Replace use of handle\_schedule\_error() with set\_vm\_state\_and\_notify() * Fix set\_vm\_state\_and\_notify passing SQLA objects to send\_update() * Imported Translations from Transifex * Libvirt: use strutils.bool\_from\_string * Use constant for microversions header name (cleanup) * Adds support for versioned schema validation for microversions api * Add support for microversions API special version latest * Adds API microversion response headers * Use osapi\_compute worker for api v2 service * initialize objects with context in Aggregate object tests * Replace the rest of the non-object-using test\_compute tests * Fix using anyjson in fake\_notifier * Fix a bug in \_get\_instance\_nw\_info() where we re-query for sysmeta * Corrects link to API Reference on landing page * libvirt: disk\_bus setting is being lost when migration is reverted * libvirt: enable hyperv enlightenments for windows guests * libvirt: enhance to return avail free pages on cells * libvirt: move setting of guest features out into helper method * libvirt: add support for configuring hyperv enlightenments in XML * libvirt: change representation of guest features * libvirt: add support for hyperv timer source with windows guests * libvirt: move setting of clock out into helper method * libvirt: don't pass a module import into methods * Reject non existent mock assert calls * VMware: remove unused method in the fake module * Use oslo db concurrency to generate nova.conf.sample * Make instance\_get\_all\_\*() funtions support the smart extra.$foo columns * Make cells send Instance objects in build\_instance() * Fix spelling error in compute api * objects: fix changed fields for instance numa cell * Hyper-V: Fix volume attach issue caused by wrong constant name * Move test\_extension\_info from V3 dir to V2.1 * Make create server schema 'additionalProperties' False * Make update server schema 'additionalProperties' False * Updated from global requirements * Update devref with link to kilo priorities * Add vision of nova rest API policy improvement in devref * objects: remove dict compat support from all XXXList() objects * objects: stop conductor manager using dict field access on objects * objects: allow creation of objects without dict item compat * Remove duplicated constant DISK\_TYPE\_THIN * Hyper-V: Fix retrieving console logs on live migration * Remove FlavorExtraSpecsNotFound catch in v3 API * Add API schema for v2.1 block\_device\_mapping\_v1 * Add API schema for v2.1 block\_device\_mapping extension * VMware: Support volume hotplug * fix import of oslo.concurrency * libvirt: set guest cpu\_shares value as a multiple of guest vCPUs * Make objects use the generalized backport scheme * Fix base obj\_make\_compatible() handling ListOfObjectsField * VMware: make use of oslo.vmware pbm\_wsdl\_loc\_set * Replace stubs with mocks * Updated from global requirements * use more specific error messages in ec2 keystone auth * Add backoff to ebtables retry * Add support for clean\_shutdown to rescue in compute api layer * Add support for clean\_shutdown to shelve in compute api layer * Add support for clean\_shutdown to stop in compute api layer * Extend clean\_shutdown to the compute rpc layer * initialize objects with context in compute manager * Add obj\_as\_admin() to NovaPersistentObject * Bump major version of Scheduler RPC API to 4.0 * Use model\_query from oslo.db * Only check db/api.py for session in arguments * Small cleanup in db.sqlalchemy.api.action\_finish() * Inline \_instance\_extra\_get\_by\_instance\_uuid\_query * libvirt: Convert more tests to use instance objects * virt: Convert more tests to use instance objects * virt: delete unused 'interface\_stats' method * objects: fix version changelog in numa * libvirt: have \_get\_guest\_numa\_config return a named tuple * simplify database fixture to the features we use * extract the timeout setup as a fixture * Stop neutron.api relying on base neutron package * Move pci unit test from V3 to V2.1 * Clarify point of setting dirname in load\_standard\_extensions * Remove support for deprecated header X\_ROLE * move all conf overrides to conf\_fixture * move ServiceFixture and TranslationFixture * extract fixtures from nova.test to nova.test.fixtures * libvirt: Fix NUMA memnode assignments to host cells * libvirt: un-cruft \_get\_guest\_numa\_config * Make scheduler filters/weighers only load once * Refactor unit tests for scheduler weights * Fix cells RPC version 1.30 compatibility with dict-based Flavors * Objects: add in missing translation * network:Separate the translatable messages into different catalogs * objects: introduce numa pages topology as an object * check the configuration num\_vbd\_unplug\_retries * Doc: minor fixes to unit testing devref * Doc: Update i18n devref * VMware: remove flag in tests indicating VC is supported * virt: use instance object for attach in block\_device * VMware: clean up unit tests * Do not compute deltas when doing migration * Modify v21 alias name for compatible with v2 * Clean bdms and networks after deleting shelved VM * move eventlet GREENDNS override to top level * fix pep8 errors that apparently slipped in * include python-novaclient in abandon policy * replace httplib.HTTPSConnection in EC2KeystoneAuth * Re-revert "libvirt: add version cap tied to gate CI testing" * ironic: remove non-standard info in get\_available\_resource dict * hyperv: use standard architecture constants for CPU model * xenapi: fix structure of data reported for cpu\_info * ironic: delete cpu\_info data from get\_available\_resource * vmware: delete cpu\_info data from get\_available\_resource * pci: move filtering of devices up into resource tracker * Libvirt: Fsfreeze during live-snapshot of qemu/kvm instances * libvirt: Fixes live migration for volume backed instances * Updated from global requirements * Remove unused db.api.fixed\_ip\_get\_by\_address\_detailed * VMware: Remove unused \_check\_if\_folder\_file\_exists from vmops * VMware: Remove unused \_get\_orig\_vm\_name\_label from vmops * VMware: enable a cache prefix configuration parameter * Hyper-V: attach volumes via SMB * etc: replace NullHandler by Python one * Add cn\_get\_all\_by\_host and cn\_get\_by\_host\_and\_node to ComputeNode * Add host field to ComputeNode * Reject unsupported image to local BDM * Update LVM lockfile name identical to RAW and Qcow * Fix invalid read\_deleted value in \_validate\_unique\_server\_name() * Adds hacking check for api\_version decorator * Parse "networks" attribute if loading os-networks * Fixes interfaces template identification issue * VMware: support passing flavor object in spawn * Libvirt: make use of flavor passed by spawn method * Virt: change instance\_type to flavor * rename oslo.concurrency to oslo\_concurrency * Support macvtap for vif\_type being hw\_veb * downgrade 'No network configured!' to debug log level * Remove unnecessary timeutils override cleanup * Cleanup timeutils override in tests/functional/test\_servers * Downgrade quota exceeded log messages * libvirt: Decomposition plug hybrid methods in vif * Remove unused cinder code * Libvirt normalize numa cell ids * Remove needless workaround in utils module * Check for floating IP pool in nova-network * Remove except Exception cases * Fixes multi-line strings with missing spaces * Fix incorrectly formatted log message * libvirt: check value of need\_legacy\_block\_device\_info * Fixed typo in testcase and comment * Share server access ips tests between V2 & V2.1 * Workflow documentation is now in infra-manual * Add a validation format "cidr" * Use a copy of NEW\_NETWORK for test\_networks * Adds global API version check for microversions * Implement microversion support on api methods * Fix long hostname in dnsmasq * This patch fixes the check that 'options' object is empty correctly * Assert order of DB index members * Updated from global requirements * object-ify flavors manager side of the RPC * Add CPU pinning data to InstanceNUMACell object * Enforce unique instance uuid in data model * libvirt: Handle empty context on \_hard\_reboot * Move admin\_only\_action\_common out of v3 directory(cleanup) * Compute Add build\_instance hook in compute manager * SQL scripts should not manage transactions * Clear libvirt test on LibvirtDriverTestCase * Replacement \`\_\` on \`\_LW\` in all LOG.warning part 4 * Replacement \`\_\` on \`\_LW\` in all LOG.warning part 3 * Convert v3/v2.1 extension info to present v2 API format * Adds NUMA CPU Pinning object modeling * objects: Add several complex field types * VMware: ephemeral disk support * Imported Translations from Transifex * Fix disconnecting necessary iSCSI sessions issue * VMware: ensure that fake VM deletion returns a task * Compute: Catch binding failed exception while init host * libvirt: Fix domain creation for LXC * Xenapi: Allow volume backed instances to migrate * Break V2 XML Support * Libvirt: SMB volume driver * libvirt: Enable console and log for system z guests * libvirt: Set guest machine type on system z * Drop support for legacy server groups * Libvirt: Don't let get\_console\_output crash on missing console file * Hyper-V: Adds VMOps unit tests (part 1) * VMware: allow selection of vSAN datastores * libvirt: enhance config memory backing to handle hugepages * VMware: support spawn of stream-optimized image * libvirt: reuse defined method to return instance numa topology * Remove the volume api related useless policy rules * Error code for creating secgroup default rule * Don't mock external locks with Semaphore * Add shelve and unshelve info into devref doc * VMware: optimize resource pool usage * Added objects Tag and TagList * libvirt: video RAM setting should be passed in kb to libvirt * Switch to moxstubout and mockpatch from oslotest * Check that volume != root device during boot by image * Imported Translations from Transifex * Make a flavorRef validation strict * Add missing indexes from 203 migration to model * Fix type of uniq\_security\_groups0project\_id0name0deleted * Correct columns covered in migrations\_instance\_uuid\_and\_status\_idx * Add debug log for url not found * Optimize 'floating\_ip\_bulk\_create' function * factor out \_setup\_logging in test.py * extract \_setup\_timeouts in test.py * Scheduler: return a namedtuple from \_get\_group\_details * Use "is\_neutron\_security\_groups" check * Fix function name mismatch in test case * VMware: prevent exception with migrate\_disk\_and\_power\_off * Fix URL mapping of image metadata PUT request * Compute: catch correct exception when host does not exists * Fix URL mapping of server metadata PUT request * objects: move numa host and cell to objects * objects: introduce numa objects * Code cleanup: quota limit validation * Add api validation schema for image\_metadata * Correct InvalidAggregateAction translation&format * Remove blanks before ':' * Port virtual-interfaces plugin to v2.1(v3) API * Catch ComputeServiceUnavailable on v2 API * GET servers API sorting REST API updates * Add API validation schema for volume\_attachments * Changed testcase 'test\_send\_on\_vm\_change' to test vm change * VMware: associate instance with storage policy * VMware: use storage policy in datastore selection * VMWare: get storage policy from flavor * Share CreateBackup unit test between V2 & V2.1 * Share suspend\_server unit test between V2 & V2.1 * Share pause\_server unit test between V2 & V2.1 * Share lock\_server unit test between V2 & V2.1 * VMware: enable VMware driver to use new BDM format * Use admin only common test case in admin action unit test cases * objects: move virt numa instance to objects * Fix v2.1 API os-simple-tenant-usage policy * Set vm state error when raising unexpected exception in live migrate * Add delete not found unit testcase for floating\_ip api * Improve error return code of floating\_ips in v2/v2.1 api * Port floating\_ips extension to v2.1 * Removing the headroom calculation from db layer * Make multiple\_create unit tests share between v2 and v2.1 * Set API version request information on request objects * Change definition of API\_EXTENSION\_NAMESPACE to method * Adds APIVersionRequest class for API Microversions * Updated from global requirements * remove test.ReplaceModule from test.py * Added db API layer to add instance tag-list filtering support * Added db API layer for CRUD operations on instance tags * Implement 'personality' plugin for V2.1 * Fix API samples/templates of multinic-add-fixed-ip * move the integrated tests into the functional tree * Sync latest from oslo-incubator * Fix use of conf\_fixture * Make network/\* use Instance.get\_flavor() * Make metadata server use Instance.get\_flavor() * Fix use of extract\_flavor() in hyper-v driver * Check server group policy on migrate/evacuate * VMware: fix exception when multiple compute nodes are running * Add API json schema for server\_external\_event(v2.1) * Port v2 quota\_classes extension to work in v2.1(v3) framework * Share unit test case for server\_external\_events api * Add API schema for v2.1/v3 scheduler\_hints extension * Make compute/api.py::resize() use Instance.get\_flavor() * Make get\_image\_metadata() use Instance.get\_flavor() * Fix instance\_update() passing SQLA objects to send\_update() * Fix EC2 volume attachment state at attaching stage * Fixes Hyper-V agent IDE/SCSI related refactoring * dummy patch to let tox functional pass * Remove Python 2.6 classifier * Make aggregate filters use objects * hardware: clean test to use well defined fake flavor * Enable pep8 on ./tools directory * objects: Add test for instance \_save methods * Error code for creating duplicate floating\_ip\_bulk * Use HTTPRequest instead of HTTPRequestV3 for v2/v2.1 tests * objects: make instance numa topology versioned in db * Clean up in test\_server\_diagnostics unit test case * Add "x-compute-request-id" to a response header * Prevent admin role leak in context.elevated * Hyper-V: Refactors Hyper-V VMOps unit tests * Hyper-V: Adds Hyper-V SnapshotOps tests * Introduce a .z version element for backportable objects * Adds new RT unit tests for \_sync\_compute\_node * Fix for extra\_specs KeyError * Remove old Baremetal Host Manager * Remove unused network\_api.get\_instance\_uuids\_by\_ip\_filter() * Remove unused network\_api.get\_floating\_ips\_by\_fixed\_address() * add abandon\_old\_reviews script * Remove havana compat from nova.cert.rpcapi * Retry ebtables on race * Eventlet green threads not released back to pool * Hyper-V: Adds LiveMigrationOps unit tests * Hyper-V: Removes redundant utilsfactory tests from test\_hypervapi * Hyper-V: Adds HostOps unit tests * Make nova-api use quotas object for create\_security\_group * Make nova-api use quotas object for count() and limit\_check() * Add count and limit\_check methods to quota object * Make neutronapi get networks operations return objects * Hyper-V: fix tgt iSCSI targets disconnect issue * Network object: add missing translations * Adapting pylint runner to the new message format * Cleanup v2.1 controller inheritance * Load extension 2 times fix load sequence issue * Make get\_next\_device\_name() handle an instance object * Add obj\_set\_defaults() to NovaObject * Switch to oslo.config fixture * Remove VirtNUMAHostTopology.claim\_test() method * Instances with NUMA will be packed onto hosts * Make Instance.save() update numa\_topology * objects: remove VirtPageSize from hardware.py * VMware: enable backward compatibility with existing clusters * Make notifications use Instance.get\_flavor() * Make notify\_usage\_exists() take an Instance object * Convert hardware.VirtCPUTopology to nova object * Updated from global requirements * Replacement \`\_\` on \`\_LW\` in all LOG.warning part 2 * compute: rename hvtype.py to hv\_type.py * Replacement \`\_\` on \`\_LW\` in all LOG.warning part 1 * Replacement \`\_\` on \`\_LE\` in all LOG.exception * Use opportunistic approach for migration testing * Replacement \`\_\` on \`\_LI\` in all LOG.info - part 2 * Replacement \`\_\` on \`\_LI\` in all LOG.info - part 1 * Add ALL-IN operator to extra spec ops * Sync server\_external\_events v2 to v2.1 Part 2 * Sync server\_external\_events v2 to v2.1 Part 1 * Fix connecting unnecessary iSCSI sessions issue * Add API validation schema for services v2.1 plugin * Fix exception handling in \_get\_host\_metrics() * initialize objects with context in network manager tests * initialize objects with context in flavors * initialize objects with context in compute api * initialize objects with context in resource tracker * Use common get\_instance call in API plugins part 3 * Clean the test cases for service plugins * initialize objects with context in server groups api * initialize objects with context in cells * tests: update \_get\_instance\_xml to accept custom flavor object * libvirt: vif tests should use a flavor object * Compute: improve test\_compute\_utils time * Compute: improve usage of Xen driver support * libvirt: introduce new 'Host' class to manage the connection * Add CHAP credentials support * Document the upgrade plans * Move test\_hostops into nova/tests/unit * Fix get\_all API to pass search option filter to cinder api * VMware: remove ESX support for getting resource pool * objects: Makes sure Instance.\_save methods are called * Add support for fitting instance NUMA nodes onto a host * VMware: remove unnecessary brackets * Imported Translations from Transifex * Port volume\_attachments extension to v2.1 API * Only filter once for trusted filters * Indicate whether service is down for mc driver * Port assisted-volume-snapshots extension to v2.1 * Updated from global requirements * Add custom is\_backend\_avail() method * Fixes differencing VHDX images issue on Hyper-V * Add debug log when over quota exception occurs * Fix rule not found error in sec grp default rule API * Convert service v3 plugin to v2.1 API * Decrease admin context usage in \_get\_guest\_config * Catch NotImplemented nova exceptions in API extension * Add API json schema to volumes api(v2.1) * Don't modify columns\_to\_join formal parameter in \_manual\_join\_columns * Limit tcp/udp port to be empty string in json-schema * Fix the cell API with string rpc\_port failed * Add decorator expected\_errors for security\_group extension * Fix bulk floating ip ext to show uuid and fixed\_ip * Use session in cinderclient * Make objects.Flavor.\_orig\_projects a list * Refactor more compute tests to use Instance objects * Use Instance.get\_flavor() in more places * Support instance\_extra fields in expected\_attrs on Instance object * Adds host power actions support for Hyper-V * Exceptions: finish sentence with fullstop * Type conflict in trusted\_filter.py using attestation\_port default value * Get EC2 metadata localip return controller node ip * Rename private functions in db.sqla.api * Enable hard-reboot on more states * Better error message when check volume status * libvirt: use qemu (qdisk) disk driver for Xen >= 4.2.0 * Add resource types for JSON-Schema validation * Add integer types for JSON-Schema * Revert pause/unpause state when host restart * Extends use of ServiceProxy to more methods in HostAPI in cells * Nova devref: Fix the rpc documentation typos * Remove duplicated code in services api integrated test case * Share server\_password unit test between V2 & V2.1 * Key manager: ensure exception reason is translated * Virt: update spawn signature to pass instance\_type * Compute: set instance to ERROR if resume fails * Limit InstanceList join to system\_metadata in os-simple-tenant-usage * Pass expected\_attrs to instance\_get\_active\_by\_window\_joined * VMware: remove unused parameter (mountpoint) * Truncate encoded instance message to 255 or fewer * Only load necessary instance info for use in sync power state * Revert "Truncate encoded instance message to 255" * VMware: refactor cpu allocations * Fixes spawn issue on Hyper-V * Refine HTTP error code for os-interface * Share migrations unit test between V2 & V2.1 * Use common get\_instance call in API plugins part 2 * make get\_by\_host use slave in periodic task * Add update\_cells to BandwidthUsage.create() * Fix usage of BandwidthUsage.create() * Updated from global requirements * Hard reboot doesn't re-create instance folder * object-ify flavors api and compute/api side of RPC * Allow passing columns\_to\_join to instance\_get\_all\_by\_host\_and\_node() * Don't make a no-op DB call * Remove deprecated affinity filters * Generalize dependent object backporting * GET servers API sorting compute/instance/DB updates * Hyper-V: cleanup basevolumeutils * Specify storage IP for iscsi connector * Fix conductor processes race trying to join servicegroup (zk driver) * Remove unused db.api.floating\_ip\_set\_auto\_assigned * Remove unused db.api.flavor\_extra\_specs\_get\_item * Remove unused oslo.config import * Create instance\_extra items atomically with the instance itself * Shelve\_offload() should give guests a chance to shutdown * Fixes Hyper-V driver WMI issue on 2008 R2 * Fix circular reference error when live migration failed * Fix live migration api stuck when migrate to old nova node * Remove native security group api class * libvirt: pin emulator threads to union of vCPU cpuset * libvirt: add classes for emulator thread CPU pinning configuration * libvirt: set NUMA memory allocation policy for instances * Fixed quotas double decreasing problem * Convert v3 console plugin to v2.1 * Virt: make use of the InstanceInfo object * Virt: create an object InstanceInfo * Metadata service: make use of get\_instance\_availability\_zone * Metadata service: remove check for the instance object type * Metadata: use instance objects instead of dictionary * VMware: Fix problem transferring files with ipv6 host * VMware: pass vm\_ref to \_set\_machine\_id * VMware: pass vm\_ref to \_get\_and\_set\_vnc\_config * Add API schema for aggregates set\_metadata API * Compute: Add start notification for resume * VMware: fix regression for 'TaskInProgress' * Remove havana compat from nova.console.rpcapi * Remove havana compat from nova.consoleauth.rpcapi * Share console-auth-tokens tests between V2 & V2.1 * Raise HTTPNotFound in V2 console extension * Add 'instance-usage-audit-log' plugin for V2.1 * Truncate encoded instance message to 255 * Deduplicate some INFO and AUDIT level messages * move all tests to nova/tests/unit * Add tox -e functional * Don't touch info\_cache after refreshing it in Instance.refresh() * Drop max-complexity to 47 * Aggregate.save() shouldn't return a value * Remove useless host parameter in virt * Use real disk size to consider a resize down * Add virtual interface before add fixed IP on nova-network * image cache clean-up to clean swap disk * Make unit test floating ips bulk faster * Remove flush\_operations in the volume usage output * Updated from global requirements * xenapi plugins must target only Python 2.4 features * libvirt: add classes for NUMA memory binding configuration * libvirt: add in missing translation for LVM migration * Config bindings: remove redundant brackets * Config drive: delete deprecated config var config\_drive\_tempdir * Refactor Ironic driver tests as per review comment * Switch default cinder API to V2 * Remove deprecated spicehtml5 options * Fix xen plugin to retry on upload failure * Log sqlalchemy exception message in migration.py * Use six.text\_type instead of unicode * XENAPI add duration measure to log message * Quotas: remove deprecated configuration variable * Glance: remove deprecated config options * Cinder: remove deprecated configuration options * Neutron: remove deprecated config options * object: update instance numa object to handle pagesize * hardware: make cell instance topology to handle memory pages * hardware: introduce VirtNUMATopologyCellInstance * hardware: fix in doctstring the memory unit used * virt: introduce types VirtPageSize and VirtPagesTopology * Clearer default implmentation for dhcp\_options.. * Fix instance\_usage\_audit\_log test to use admin context * VMware: remove unused method \_get\_vmfolder\_ref * libvirt: safe\_decode domain.XMLDesc(0) for i18n logging * VMware: trivial fix for comment * Fix the uris in documentation * Make test\_security\_groups nose compatible * Make test\_quotas compatible with nosetests * Return HTTP 400 if use invalid fixed ip to attach interface * Fixed typos in nova.objects.base docstrings * Add note on running single tests to HACKING.rst * Use sizelimit from oslo.middleware * Use oslo.middleware * Make resource tracker always use Flavor objects * maint:Don't translate debug level logs * Make console show and delete exception msg better * Change error code of floating\_ip\_dns api(v2.1) * Make scheduler code use object with good practice * Switch Nova to use oslo.concurrency * scheduler: Remove assert on the exact number of weighers * Update docstring for check\_instance\_shared\_storage\_local * remove use of explicit lockutils invocation in tests * Delay STOPPED lifecycle event for Xen domains * Remove warning & change @periodic\_task behaviour * Fix nova-compute start issue after evacuate * Ignore DiskNotFound error on detaching volumes * Move setup\_instance\_group to conductor * Small doc fix in compute test * libvirt: introduce config to handle cells memory pages caps * Fixes DOS issue in instance list ip filter * Use 404 instead of 400 when security\_group is non-existed * Port security-group-default-rules extension into v2.1 * Port SecurityGroupRules controller into v2.1 * error if we don't run any tests * Revert "Switch Nova to use oslo.concurrency" * Updated from global requirements * Remove admin context which is not needed * Add API validation schema for disk\_config * Make test\_host\_filters a NoDBTestCase * Move group affinity filters tests to own test file * Split out metrics filter unit tests * Splits out retry filter unit tests * Split out compute filters unit tests * Update hooks from oslo-incubator copy * Split out aggregate disk filter unit tests * Split out core filter unit tests * Split out IO Ops filter unit tests * Split out num instances filter unit tests * Split and fix the type filters unit tests * Split and fix availability zone filter unit tests * Split out PCI passthrough filter unit tests * Use common get\_instance call in API plugins * Fix nova evacuate issues for RBD * DB API: Pass columns\_to\_join to instance\_get\_active\_by\_window\_joined * Read flavor even if it is already deleted * Use py27 version of assertRaisesRegexp * update retryable errors & instance fault on retry * xenapi: upload/download params consistency change * Use assertRaisesRegexp * Drop python26 support for Kilo nova * Switch Nova to use oslo.concurrency * Remove param check for backup type on v2.1 API * Set error state when unshelve an instance due to not found image * fix the error log print in encryptor \_\_init\_\_.py * Remove unused compute\_api in extend\_status * Compute: maint: adjust code to use instance object format * VMware: use instance.uuid instead of instance['uuid'] * Network: manage neutron client better in allocate\_for\_instance * Split out agg multitenancy isolation unit tests * Split agg image props isolation filter unit tests * Separate isolated hosts filter unit tests * Separate NUMA topology filter unit tests * resource-tracker: Begin refactor unit tests * Faster get\_attrname in nova/objects/base.py * Hyper-V: Skip logging out in-use targets * Compute: catch more specific exception for \_get\_instance\_nw\_info * typo in the policy.json "rule\_admin\_api" * Fix the unittest use wrong controller for SecurityGroups V2 * host manager: Log the host generating the warning * Add API validation schema for floating\_ip\_dns * Remove \`domain\` from floating-ip-dns-create-or-update-req body * Port floating\_ip\_dns extention to v2.1 * Remove LOG outputs from v2.1 API layer * Run build\_and\_run\_instance in a separate greenthread * VMware: Improve the efficiency of vm\_util.get\_host\_name\_for\_vm * VMware: Add fake.create\_vm() * Use wsgi.response for v2.1 API * Use wsgi.response for v2.1 unrescue API * Add API schema for v2.1 "resize a server" API * Remove use of unicode on exceptions * Fix error in comments * Make pci\_requests a proper field on Instance object * libvirt: fully parse PCI vendor/product IDs to integer data type * Remove uncessary instance.save in nova compute * api: add serial console API calls v2.1/v3 * Add API validation schema for cloudpipe api * Remove project id in ViewBuilder alternate link * Handle exception better in v2.1 attach\_interface * Cleanup of tenant network tests * Port floating\_ips\_bulk extention to v2.1 * Make v2.1 tests use wsgi\_app\_v21 and remove wsgi\_app\_v3 * Translate 'powervm' hypervisor\_type to 'phyp' for scheduling * Give a reason why NoValidHost in select\_destinations * ironic: use instance object for \`\_add\_driver\_fields\` * ironic: use instance object for \`\_wait\_for\_active\` * ironic: use instance object for \`get\_info\` * ironic: use instance object for \`rebuild\` * ironic: use instance object for plug\_vifs * Revert "Replace outdated oslo-incubator middleware" * Set logging level for glanceclient to WARN * Nova should be in charge of its log defaults * Reduce the complexity of \_get\_guest\_config() * VMware: fix compute node exception when no hosts in cluster * libvirt: use instance object for detach\_volume * libvirt: use instance object for attach\_volume * libvirt: use instance object for resume\_state\_on\_host\_boot * libvirt: treat suspend instance as an object * VMware: Remove redundant fake.reset() in test\_vm\_util * VMware: add tests for spawn with config drive enabled * Adds tests for Hyper-V Network utils * Adds tests for Hyper-V Host utils * Fix order of arguments in assertEqual * Replace custom patching in \`setUp\` on HypervisorsSampleJsonTests * Console: delete code for VMRCConsole and VMRCSessionConsole * VMware: delete the driver VMwareESXDriver * Replacement \`\_\` on \`\_LE\` in all LOG.error * VMware: rename vmware\_images to images * Remove unuseful parameter in cloudpipe api(v2/v2.1) * Moves trusted filter unit tests into own file * Port update method of cloudpipe\_update to v2.1(v3) * Clean up iSCSI multipath devices in Post Live Migration * Check fixed-cidr is within fixed-range-v4 * Porting baremetal\_nodes extension to v2.1/v3 * Port fixed\_ip extention to v2.1 * Separate filter unit tests for agg extra specs * Move JSON filter unit tests into own file * Separate compute caps filter unit tests * Separate image props filter unit tests * Separate disk filters out from test\_host\_filters * Separate and refactor RAM filter unit tests * Remove duplicate test * Reduce the complexity of stub\_out\_db\_network\_api() * Remove duplicate index from model * Remove useless join in nova.virt.vmwareapi.vm\_util * fixed typo in test name * Separate and refactor affinity filter tests * Pull extra\_specs\_ops tests from test\_host\_filters * Remove outdated docstring for XenApi driver's options * VMware: attach config drive if booting from a volume * Remove duplicated comments in virt/storage\_users * Compute: use instance object for vm\_state * libvirt: use six.text\_type when setting text node value in guest xml * Allow strategic loading of InstanceExtra columns * Create Nova Scheduler IO Ops Weighter * Put a cap on our cyclomatic complexity * Add notification for server group operations * Clean up the naming of PCI python modules * Port os-networks-associate plugin to v2.1(v3) infrastructure * Port os-tenant-networks plugin to v2.1(v3) infrastructure * Cleanup of exception handling in network REST API plugin * Fix instance\_extra backref * Refactor compute tests to not use \_objectify() * Refactor compute and conductor tests to use objects * Fix genconfig - missed one import from oslo cleanup * Handle Forbidden error from network\_api.show\_port in os-interface:show * Replace outdated oslo-incubator middleware * VMware: Improve logging on failure due to invalid guestId * Ironic: Continue pagination when listing nodes * Fix unit test failure due to tests sharing mocks * libvirt: fully parse PCI addresses to integer data type * libvirt: remove pointless HostState class * Porting SecurityGroup related controller into v2.1 * Allow force-delete irrespective of VM task\_state * Use response.text for returning unicode EC2 metadata * Remove unused modules copied from oslo-incubator * Remove unused code in pci\_manager.get\_instance\_pci\_devs() * VMWare: Remove unused exceptions * Switch to nova's jsonutils in oslo.serialization * VMware: mark virtual machines as 'belonging' to OpenStack * XenAPI: Inform XAPI who is connecting to it * Rename cli variable in ironic driver * Add more input validation of bdm param in server creation * Return HTTP 400 if use an in-use fixed ip to attach interface * VMware: get\_all\_cluster\_refs\_by\_name default to {} * Minor refactor of \_setup\_instance\_group() * add InstanceGroup.get\_by\_instance\_uuid * Add instance\_group\_get\_by\_instance to db.api * Updated from global requirements * Add supported\_hv\_specs to ComputeNode object * Pass block device info in pre\_live\_migration * Use 400 instead of 422 for security\_groups v2 API * Port floating\_ip\_pools extention to v2.1 * Imported Translations from Transifex * Sync with latest oslo-incubator * Don't translate unit test logs * Optimize get\_instance\_nw\_info and remove ipam * Convert migrate reqeusts to use joins * Use database joins for fixed ips to other objects * Keep migration status if instance still resizing * Don't log every (friggin) migration version step during unit tests * Remove init for object list in api layer * Revise compute API schemas and add tests * Add Quota roll back for deallocate fix ip in nova-network * Update README for openstack/common * Fix libvirt watchdog support * VMware: add support for default pbm policy * Remove unused imports from neutron api * Cleanup tenant networks plugin config creation * Port os-networks plugin to v2.1(v3) infrastructure * Use reasonable timeout for rpc service\_update() * Finish objects conversion in the os-interface API 2014.2 ------ * Fix pci\_request\_id break the upgrade from icehouse to juno * Fix pci\_request\_id break the upgrade from icehouse to juno * Updated translations * vfs: guestfs logging integration * Fix broken cert revocation * Port cloudpipe extension to v2.1 * Cleanup log marker in neutronv2 api * Add 'zvm' to the list of known hypervisor types * Fix wrong exception return in fixed\_ips v2 extention * Extend XML unicode test coverage * Remove unnecessary debug/info logs of normal API ops * Refactor of test case of floating\_ips * Make v2.1 API tests use v2 URLs(test\_[r-v].\*) * Make v2.1 API tests use v2 URLs(test\_[f-m].\*) * Break out over-quota calculation code from quota\_reserve() * Fix image metadata returned for volumes * Log quota refresh in\_use message at INFO level for logstash * Break out over-quota processing from quota\_reserve() * Remove obsolete vmware/esx tools * Fix broken cert revocation * Remove baremetal virt driver * Update rpc version aliases for juno * VMware: Set vmPathName properly in fake driver * Port disk\_config extension for V2.1 * Allow backup operation in paused and suspend state * Update NoMoreFixedIps message description * Make separate calls to libvirt volume * Correct VERSION of NetworkRequest * Break out quota usage refresh code from quota\_reserve() * libvirt: abort init\_host method on libvirt that is too old * Mask passwords in exceptions and error messages * Support message queue clusters in inter-cell communication * neutronv2: translate 401 and 404 neutron client errors in show\_port * Log id in raise\_http\_conflict\_for\_instance\_invalid\_state() * Use image metadata from source volume of a snapshot * Fix KeyError for euca-describe-images * Optimize 'fixed\_ip\_bulk\_create' function * Remove 'get\_host\_stats' virt driver API method * Suppressed misleading log in unshelve, resize api * Imported Translations from Transifex * libvirt: add \_get\_launch\_flags helper method in unit test * Refactoring of contrib.test\_networks tests * Make v2.1 API tests use v2 URLs(test\_[a-e].\*) * Port fping extension to work in v2.1/v3 framework * Use oslo.utils * Correctly catch InstanceExists in servers create API * Fix the os\_networks display to show cidr properly * Avoid using except Exception in unit test * nova-net: add more useful logging before raising FixedIpLimitExceeded * libvirt: convert conn test case to avoid DB usage * libvirt: convert driver test suite to avoid DB usage * Mask passwords in exceptions and error messages * Disable libvirt NUMA topology support if libvirt < 1.0.4 * Resource tracker: use brackets for line wrap * VMWare: Remove unnecessery method * console: make unsupported ws scheme in python < 2.7.4 * VMWare: Fix nova-compute crash when instance datastore not available * Disable libvirt NUMA topology support if libvirt < 1.0.4 * VMware: remove \_get\_vim() from VMwareAPISession * Compute: use an instance object in terminate\_instance * VMware: remove unnecessary deepcopy * Destroy orig VM during resize if triggered by user * Break out quota refresh check code from quota\_reserve() * move integrated api client to requests library * Fix unsafe SSL connection on TrustedFilter * Update rpc version aliases for juno * Fix the os\_networks display to show cidr properly * libvirt: convert mox to mock in test\_utils * Remove kombu as a dependency for Nova * Adds missing exception handling in resize and rebuild servers API * Remove keystoneclient requirement * Destroy orig VM during resize if triggered by user * VMware: Fix deletion of an instance with no files * console: introduce a new exception InvalidConnectionInfo * Remove the nova-manage flavor sub-command * support TRACE\_FAILONLY env variable * Ensure files are closed promptly when generating a key pair * libvirt: convert volume snapshot test case to avoid DB usage * libvirt: convert volume usage test case to avoid DB usage * libvirt: convert LibvirtNonblockingTestCase to avoid DB usage * libvirt: convert firewall tests to avoid DB usage * libvirt: convert HostStateTestCase to avoid DB usage * libvirt: split firewall tests out into test\_firewall.py * libvirt: convert utils test case to avoid DB usage * Add VIR\_ERR\_CONFIG\_UNSUPPORTED to fakelibvirt * Remove indexes that are prefix subsets of other indexes * remove scary error message in tox * Cleanup \_convert\_block\_devices * Enhance V2 disk\_config extension Unit Test * Add developer policy about contractual APIs * Reserve 10 migrations for backports * libvirt: Make sure volumes are well detected during block migration * Remove websocketproxy workaround * Fix unsafe SSL connection on TrustedFilter 2014.2.rc1 ---------- * Remove xmlutils module * libvirt: Make sure NUMA cell memory is in Kb in XML * Fix disk\_allocation\_ratio on filter\_scheduler.rst * Remove unused method within filter\_scheduler test * Open Kilo development * Correct missing vcpupin elements for numa case * VMware: remove unused variable from tests * Imported Translations from Transifex * VMWare: Fix VM leak when deletion of VM during resizing * Logging detail when attach interface failed * Removes unused code from wsgi \_to\_xml\_node * Fix XML UnicodeEncode serialization error * Add @\_retry\_on\_deadlock to \_instance\_update() * Remove duplicate entry from .gitignore file * console: fix bug when invalid connection info * console: introduce a new exception InvalidToken * cmd: update the default behavior of serial console * console: make websocketproxy handles token from path * VMware: Remove tests for None in fake.\_db\_content['files'] * Fix creating bdm for failed volume attachment * libvirt: consider vcpu\_pin\_set when choosing NUMA cells * Fix hook documentation on entry\_points config * Remove local version of generate\_request\_id * fix usage of obj\_reset\_changes() call in flavor * Fix Bad except clauses order * Typo in exception name - CellsUpdateProhibited * Log original error when attaching volume fails * Retry on closing of luks encrypted volume in case device is busy * VMware: Remove VMwareImage.file\_size\_in\_gb * VMware: remove unused argument from \_delete\_datastore\_file() * xenapi: deal with reboots while talking to agent * Ironic: Do not try to unplug VIF if not associated * Fix Typo in method name - parse\_Dom * Adds openSUSE support for developer documentation * VMware: Remove class orphaned by ESX driver removal * Fixes missing ec2 api address disassociate error on failure * Fixes potential reliablity issue with missing CONF import * Updated from global requirements * Port extended\_ips/extended\_ips\_mac extension to V2.1 * the value of retries is error in \_allocate\_network * Ironic driver must wait for power state changes * Fallback to legacy live migration if config error * libvirt: log exception info when interface detach failed * libvirt: support live migration with shared instances dir * Fix SecurityGroupExists error when booting instances * Undo changes to obj\_make\_compatible * Clarify virt driver test comments & log statement * move integrated api client to requests library * VMware: Make DatastorePath hashable * Remove usage of self.\_\_dict\_\_ for message var replacement * VMware: trivial formatting fix in fake driver * VMware: Improve logging of DatastorePath in error messages * VMware: Use vm\_mode constants * Imported Translations from Transifex * Updated from global requirements * do not use unittest.TestCase for tests * Neutron: Atomic update of instance info cache * Reduce the scope of RT work while holding the big lock * libvirt: convert CacheConcurrencyTestCase to avoid DB usage * Give context to the warning in \_sync\_power\_states * remove test\_multiprocess\_api * add time to logging in unit tests * XenAPI: clean up old snapshots before create new * Return vcpu pin set as set rather than list * Fix start/stop return active/stopped immediately in EC2 API * consistently set status as REBUILD when rebuilding * Add test case for vim header check * Add missing instance action record for start of live migration * Reduce the log level for the guestfs being missing * Sync network\_info if instance not found before \_build\_resources yield * Remove the AUDIT log message about loaded ext * Fix unset extra\_spec for a flavor * Add further debug logging for multiprocess test * Revert "libvirt: support live migrate of instances with conf drives" * Revert "libvirt: Uses correct imagebackend for configdrive" * Fixes server list filtering on metadata * Add good path test cases of osapi\_compute\_workers * Be less confusing about notification states * Remove unused py33 tox env * fix\_typo\_in\_heal\_instance\_info\_cache * Refactor test\_get\_port\_vnic\_info 2 and 3 * Revert "libvirt: reworks configdrive creation" * Making nova.compute.api to return Aggregate Objects * Scheduler: add log warning hints * Change test function from snapshot to backup * Fixes Hyper-V dynamic memory issue with vNUMA * Update InstanceInvalidState output * Add unit test for glanceclient ssl options * Fix Broken links in devref/filter\_scheduler.rst * Change "is lazy loaded" detection method in db\_api test * Handle VolumeBDMPathNotFound in \_get\_disk\_over\_committed\_size\_total * Handle volume bdm not found in lvm.get\_volume\_size * Updated from global requirements * Address nits in I6b4123590 * Add exists check to fetch\_func\_sync in libvirt imagebackend * libvirt: avoid changing UUID when redefining nwfilters * Vmware:Add support for ParaVirtualSCSIController * Fix floating\_ips\_bulk unit test name * refactor flavor manage tests in prep for object-ify flavors * refactor flavor db fakes in prep for object-ify flavors * move dict copy in prep for object-ify flavors * tests: kill worker pids as well on timeouts * Close standard fds in test child process * Mitigating performance impact with getting pci requests from DB * Return None from get\_swap() if input is not swap * Require tests for DB migrations * VMware: fix broken mock of ds\_util.mkdir * Fix KeyError for euca-describe-images * Fixes HyperV VM Console Log * FIX: Fail to remove the logical volume * correct \_sync\_instance\_power\_state log message * Add support for hypervisor type in IronicHostManager * Don't list entire module autoindex on docs index * Add multinic API unit test * Add plan for kilo blueprints: project priorities * make flavors use common limit and marker * Raise an exception if qemu-img fails * Libvirt: Always teardown lxc container on destroy * Mark nova-baremetal driver as deprecated in Juno, removed in K * libvirt: Unnecessary instance.save(s) called * Add progress and cell\_name into notifications * XenAPI: run vhd-util repair if VHD check fails * Get instance\_properties from request\_spec * libvirt: convert encrypted LVM test to avoid DB usage * libvirt: convert test\_dmcrypt to avoid DB usage * libvirt: convert test\_blockinfo.py to avoid DB usage * libvirt: convert test\_vif.py to avoid DB usage * libvirt: remove pointless class in util test suite * libvirt: avoid need for lockutils setup running test cases * VMware: Remove host argument to ds\_util.get\_datastore() * Fix DB migration 254 by adding missing unittest * postgresql: use postgres db instead of template1 * Assume VNIC\_NORMAL if binding:vnic\_type not set * mock.assert\_called\_once() is not a valid method * db: Add @\_retry\_on\_deadlock to service\_update() * Update ironic states and documentation * XenAPI improve post snapshot coalesce detection * Catch NotImplementedError on reset\_network for xen * VMware: Fix usage of assertEqual in test\_vmops * Add more information to generic \_add\_floating\_ip exception message * bring over pretty\_tox.sh from tempest * Console: warn that the Nova VMRC console driver will be deprecated in K * virt: use compute.vm\_mode constants and validate vm mode type * compute: tweaks to vm\_mode APIs to align with arch/hvtype * Fix NUMA fit testing in claims and filter class * consolidate apirequest tests to single file * ensure that we safely encode ec2 utf8 responses * instance\_topology\_from\_instance handles request\_spec properly * NUMA \_get\_constraint auto assumed Flavor object * Imported Translations from Transifex * Fix 'force' parameter for quota-update * Update devref * default=None is unneeded in config definitions * Remove unused elevated context param from quota helper methods * Remove stale code from ObjectListBase * Split up libvirt volume's connect\_volume method * Record instance faults during boot process * ironic/baremetal: add validation of host manager/state APIs * virt: move assertPublicAPISignatures into base test class * libvirt: avoid 30 second long test in LXC mount setup * Remove all redundant \`setUp\` methods * fix up assertEqual(None...) check to catch more cases * Fix object version hash test * disk/vfs: make docstring conventional to python * disk/vfs: ensure guestfs capabilities * NIST: increase RSA key length to 2048 bit * Fix incorrect exception when bdm with error state volume * ironic: Clean LOG usage * Improve secgroup create error message * Always log the releasing, even under failure * Fix race condition in update\_dhcp * Make obj\_make\_compatible consistent * Correct baremetal/ironic consume\_from\_instance.. * Fix parsing sloppiness from iscsiadm discover * correct inverted subtraction in quota check * Add quotas for Server Groups (quota checks) * Add quotas for Server Groups (V2 API change) * check network ambiguity before external network auth * Updated from global requirements * libvirt: Consider numa\_topology when booting * Add the NUMATopologyFilter * Make HostManager track NUMA usage * API boot process sets NUMA topology for instances * Make resource tracker track NUMA usage * Hook NUMA topology checking into claims * Stash numa-related flavor extra\_spec items in system\_metadata * Fixes network\_get\_all\_by\_host to use indexes * Add plan for kilo blueprints: when is a blueprint needed * Bump FakeDriver's resource numbers * delete python bytecode before every test run * Stop using intersphinx * Don't swallow exceptions in deallocate\_port\_for\_instance * neutronv2: attempt to delete all ports * Proxy nova baremetal commands to Ironic * Increase sleeps in baremetal driver * Improve logging of external events on the compute node * virt: use compute.virttype constants and validate virt type * compute: Add standard constants for hypervisor virt types * Fix test\_create\_instance\_invalid\_key\_name * Fix \`confirmResize\` action status code in V2 * Remove unnecessary imageRef setting from tests * Add unit test for add\_floating\_ip API * Remove unused config "service\_down\_time" reference * Clarify logging in lockutils * Make sure libvirt VIR\_ERR\_NO\_DOMAIN errors are handled correctly * Adds LOG statements in multiprocess API test * Block sqlalchemy migrate 0.9.2 as it breaks all of nova * Xen: Attempt to find and cleanup orphaned SR during delete * Nova-net: fix server side deallocate\_for\_instance() * Method for getting NUMA usage from an instance * Ironic: save DB calls for getting flavor * Imported Translations from Transifex * Fix 'os-interface' resource name for Nova V2.1 * Add new unit tests for PCI stats * Fixes AttributeError with api sample test fail * Fix "revertResize/confirmResize" for V2.1 API * Add unit test to os-agent API * check the block\_device\_allocate\_retries * Support SR-IOV networking in libvirt * Support SR-IOV networking in nova compute api and nova neutronv2 * Support SR-IOV networking in the PCI modules * Add request\_id in PciDevice * Replace pci\_request flavor storage with proper object usage * Adds a test for raw\_cpu\_arch in \_node\_resource * Stop stack tracing when trying to auto-stop a stopped instance * Add quotas for Server Groups (V2 API compatibility & V2.1 support) * Fixes Hyper-V volume mapping issue on reboot * Libvirt-Enable support for discard option for disk device * libvirt: set pae for Xen PVM and HVM * Add warning to periodic\_task with interval 0 * document why we disable usb\_tablet in code * Fix 'os-start/os-stop' server actions for V2.1 API * Fix 'createImage' server actions for V2.1 API * Add unit test to aggregate api * Handle exception better in v2 attach\_interface * Fix integrated test cases for assisted-volume-snapshots * libvirt: start lxc from block device * Remove exclude coverage regex from coverage job * Pass instance to set\_instance\_error\_state vs. uuid * Add InstancePCIRequests object * Drop verbose and useless nova-api log information * Add instance\_extra\_update\_by\_uuid() to DB API * Add pci\_requests to instance\_extra table * Add claims testing to VirtNUMAHostTopology class * Expose numa\_topology to the resource tracker * libvirt: fix bug when releasing port(s) * Specify correct operation type when NVH is raised * Ironic: don't canonicalize extra\_specs data * VMware: add tests for image fetch/cache functions * VMware: spawn refactor image fetch/cache * Ironic: Fix direct use of flavor and instance module objects * Ironic driver fetches extra\_specs when needed * Maint: neutronclient exceptions from a more appropriate module * Check requirements.txt files for missing (used) requirements * Sync oslo-incubator module log: * Add amd64 to arch.canonicalize() * Sync oslo lockutils to nova * libvirt: deprecated volume\_drivers config parameter * VMware: Remove get\_copy\_virtual\_disk\_spec from vmops and vm\_util * maint: various spelling fixes * Fix config generator to use keystonemiddleware * libvirt: improve unit test time * VMware: prevent race condition with VNC port allocation * VMware: Fix return type of get\_vnc\_console() * VMware: Remove VMwareVCVMOps * Network: enable instance deletion when dhcp release fails * Adds ephemeral storage encryption for LVM back-end images * Don't elevate context when rescheduling * Ironic driver backports: patch 7 * Improve Ironic driver performance: patch 6 * Import Ironic Driver & supporting files - part 5 * Import Ironic Driver & supporting files - part 4 * Import Ironic Driver & supporting files - part 3 * Import Ironic Driver & supporting files - part 2 * Import Ironic Driver & supporting files - part 1 * Add sqlite dev packages to devref env setup doc * Add user namespace support for libvirt-lxc * Move to oslo.db * api: add serial console API calls v2 * compute: add get\_serial\_console rpc and cells api calls * compute: add get\_serial\_console in manager.py * virt: add method get\_serial\_console to driver * Clean up LOG import in floating\_ips\_bulk v2 api 2014.2.b3 --------- * Update invalid state error message on reboot API * Fix race condition with vif plugging in finish migrate * Fix service groups with zookeeper * xenapi: send chunk terminator on subprocess exc * Add support for ipv6 nameservers * Remove unused oslo.config import * Support image property for config drive * warn against sorting requirements * VMware: remove unused \_get\_vmdk\_path from vmops * virt: use compute.arch constants and validate architectures * Change v3 quota-sets API to v2.1 * always set --no-hosts for dnsmasq * Allow \_poll\_bandwidth\_usage task to hit slave * Add bandwidth usage object * VMware: spawn refactor enlist image * VMware: image user functions for spawn() * Change v3 flavor\_manage API to v2.1 * Port used\_limits & used\_limits\_for\_admin into v2.1 * Add API schema for v2.1 access\_ips extension * Add API schema for v2.1 "rebuild a server" API * Add API schema for v2.1 "update a server" API * Enabled qemu memory balloon stats * Reset task state 'migrating' on nova compute restart * Pass certificate, key and cacert to glanceclient * Add a policy for handling retrospective vetos * Adds Hyper-V soft shutdown implementation * Fix swap\_volumes * Add API schema for v2.1/v3 multiple\_create extension * Return hydrated net info from novanet add/remove\_fixed\_ip calls * Add API schema for v2.1/v3 availability\_zone extension * Add API schema for v2.1/v3 server\_metadata API * Fixes a Hyper-V list\_instances localization issue * Adds list\_instance\_uuids to the Hyper-V driver * Change v3 admin\_actions to v2.1 * Change v3 aggregate API to v2.1 * Convert v3 ExtendedAvailabilityZone api to v2.1 * Convert v3 hypervisor plugin to v2.1 * Convert server\_usage v3 plugin to v2.1 API * Convert v3 servers return\_reservation\_id behaviour to v2.1 * the headroom infomation is incomplete * Port volumes extension to work in v2.1/v3 framework * vmwareapi oslo.vmware library integration * Allow forceDelete to delete running instances * Port limits extension to work in v2.1/v3 framework * Port image-size extension to work in v2.1/v3 framework * Port v2 image\_metadata extension to work in v2.1(v3) framework * Port v2 images extension to work in v2.1(v3) framework * Convert migrate\_server v3 plugin to v2.1 * Changes V3 evacuate extension into v2.1 * console: add typed console objects * virt: setup TCP chardevice in libvirt driver * Remove snapshot\_id from \_volume\_snapshot\_create() * Check min\_ram and min\_disk when boot from volume * Add API schema for v2.1 "create a server" API * InstanceNUMAToplogy object create remove uuid param * Change v3 flavor\_access to v2.1 * Convert rescue v3 plugin to v2.1 API * Change v3 security\_groups API to v2.1 * Changes V3 remote\_console extension into v2.1 * Use common get\_instance function in v2 consoles extension * Add API schema for v2.1/v3 user\_data extension * Convert v3 cells API to v2.1 * Convert v3 server metadata plugin to v2.1 * Convert multiple-create v3 plugin to v2.1 * Convert v3 flavor extraspecs plugin to v2.1 * Fix scheduler\_available\_filters help * cmd: add nova-serialproxy service * console: add serial console module * Changes V3 server\_actions extension into v2.1 * Change v3 version API to v2.1 * Change v3 shelve to v2.1 * Process power state syncs asynchronously * Made unassigned networks visible in flat networking * Add functions to setup user namespaced filesystems * Adds nova-idmapshift cli utility * Add idmap to libvirt config * Allow hard reboots when still attempting a soft reboot * Decrease amount of queries while adding aggregate metadata * Adds Hyper-V serial console log * Store original state when suspending * Fix NoopQuotasDriver.get\_settable\_quotas() * Use instance objects consistently in suspend tests * Instance objects: fix indentation issue * libvirt: Add method for getting host NUMA topology * Add instance\_extra table and related objects * Change v3 availability-zone API to v2.1 * Move and generalize decorator serialize\_args to nova.objects.base * Convert v3 certificate API to v2.1 * Make neutronapi use NetworkRequest for allocate\_for\_instance() * Use NetworkRequest objects through to nova-network * Add extension block\_device\_mapping\_v1 for v2.1 * Catch BDM related InvalidBDM exceptions for server create v2.1 * Changes block\_device\_mapping extension into v2.1 * Fix rootwrap for non openstack.org iqn's * Let update\_available\_resource hit slave * Plumb NetworkRequest objects through conductor and compute RPC * Updates available resources after live migration * Convert compute/api to use NetworkRequest object and list * Refactor the servers API to use NetworkRequest * Cells: Update set\_admin\_password for objects * Remove libvirt legacy LVM code * libvirt: reworks configdrive creation * Handle non dict metadata in server metadata V2 API * Fix wrong disk type limitation for disk IO throttling * Use v2.1 URLs instead of v3 ones in API unit tests * VMware: Add in support for CPU shares in event of resource contention * VMware: add resource limits for CPU * Refactor admin\_action plugin and test cases * Fix error in log when log exception in guestfs.py * Remove concatenation with translated messages * Port simple\_tenant\_usage into v2.1 * Convert console\_output v3 plugin to v2.1 * GET servers API sorting enhancements common utilities * Add \_security\_group\_ensure\_default() DBAPI method * Fix instance boot when Ceph is used for ephemeral storage * Add NetworkRequest object and associated list * Remove use of str on exceptions * Fix the current state name as 'shutting-down' * Explicitly handle exception ConsoleTypeUnavailable for v2 consoles * Convert v3 server diagnostics plugin to v2.1 * Porting v3 evacuate testcases to v2 * libvirt: Uses correct imagebackend for configdrive * Add v2.1 API router and endpoint * Change v3 keypairs API to v2.1 * Backport V3 hypervisor plugin unit tests to V2 * Remove duplicated negative factors in keypair test * filter: add per-aggregate filter to configure max\_instances\_per\_host * Updated from global requirements * Mask passwords in exceptions and error messages * Make strutils.mask\_password more secure * A minor change to a comments * Check vlan parameter is valid * filter: add per-aggregate filter to configure disk\_allocation\_ratio * Deprecate cinder\_\* configuration settings * Allow attaching external networks based on configurable policy * Fix CellStateManagerFile init to failure * Change v3 extended\_status to v2.1 * Fixes Hyper-V volume discovery exception message * Use default quota values in test\_quotas * libvirt: add validation of migration hostname * Add a Set and SetOfIntegers object fields * Add numa\_topology column to the compute\_node table * Preserve exception text during schedule retries * Change v3 admin-password to v2.1 * Make Object FieldType from\_primitive pass objects * Change V3 access\_ips extension into v2.1 * Update RESP message when failed to create flavor * Cleanup of V2 console output tests and add missing tests * Convert multinic v3 plugin to v2.1 * Change 'changes\_since'/'changes-since' into v2.1 style for servers * Backport v3 multinic tests to v2 * Change ViewBuilder into v2.1 for servers * Change v3 agents API to v2.1 * Change v3 attach\_interface to v2.1 * Backport V3 flavor extraspecs API unit tests to V2 * Return BadRequest instead of UnprocessableEntity for volumes API * Convert create\_backup v3 plugin to v2.1 API * Update instance state after compute service died for rebuilded instance * Make floatingip-ip-delete atomic with neutron * Add v3 versions plugin unit test to v2 * Remove duplicated code in test\_versions * Change v3 hosts to v2.1 * Change v3 extended\_server\_attibutes to v2.1 * Make test\_killed\_worker\_recover faster * Change v3 flavor\_rxtx to v2.1 * fix typo in docstring * libvirt: driver used memory tests cleanup * Avoid refreshing PCI devices on instance.save() * Updated from global requirements * Change v3 flavors to v2.1 * neutronv2: treat instance as object in deallocate\_for\_instance * Fix class name for ServerGroupAffinityFilter * Adds Hyper-V Compute Driver soft reboot implementation * Add QuotaError handling to servers rebuild API * Allow to create a flavor without specifying id * XenAPI: Remove interrupted snapshots * Fix typo in comment * Fix V2 unit tests to test hypervisor API as admin * Create compute api var at \_\_init\_\_ * libvirt: support live migrations of instances with config drives * Change v3 os-user-data extension to v2.1 * Remove duplicated code in test\_user\_data * Convert v3 server SchedulerHints plugin to v2.1 * Convert deferred\_delete v3 plugin to v2.1 API * Backport some v3 scheduler hints API UT to v2 API * Change error status code for out of quota to be 403 instead of 413 * Correct seconds of a day from 84400 to 86400 * VMware: add adapter type constants * Fix comment typo * scheduler sends select\_destinations notifications * Fix for volume detach error when use NFS as the cinder backend * objects: Add base test for obj\_make\_compatible() * objects: Fix InstanceGroup.obj\_make\_compatible() * Restore backward compat for int/float in extra\_specs * Convert v3 config drive plugin to v2.1 * Fix sample files miss for os-aggregates * Backport v3 config\_drive API unittest to v2 API * Backport some v3 availability zones API UT to v2 API * Handle non-ascii characters in spawn exception msg * Log warning message if volume quota is exceeded * Remove \_instance\_update usage in \_build\_instance * Treat instance like an object in \_build\_instance * Remove \_instance\_update usage in \_default\_block\_device\_names * Add missing flags to fakelibvirt for migration * Adds tests for Hyper-V Volume utils * Fix ability to generate object hashes in test\_objects.py * Fix expected error details from jsonschema * Extend the docstring for obj\_make\_compatible() with examples * HyperV Driver - Fix to implement hypervisor-uptime * Port os-server-groups extension to work in v2.1/v3 framework * Fix the exception for a nonexistent flavor * Add api extension for new network fields * Use real exceptions for network create and destroy * Support reserving ips at network create time * Adds get\_instance\_disk\_info to compute drivers * Use rfc3986 library to validate URL paths and URIs * Send create.end notification even if instance is deleted * Allow three periodic tasks to hit slave * Fixes Hyper-V unit test path separator issue * Share common test settings in test\_flavor\_manage * Shelve should give guests a chance to shutdown * Rescue should give guests a chance to shutdown * Resize should give guests a chance to shutdown * Power off commands should give guests a chance to shutdown * objects: Make use of utils.convert\_version\_to\_tuple() * tests: fix test\_compute to have predictable service list * libvirt: make sysinfo serial number configurable * Fixes Hyper-V resize down exception * Make usage\_from\_instances consider current usage * VMware: ensure test case for init\_host in driver * Add some v2 agents API tests * Libvirt: Do not raise ENOENT exception * Add missing create() method on SecurityGroupRule object * Add test for get\_instance\_disk\_info to test\_virt\_drivers * Move fake\_quotas and fake\_get\_quotas into a class * Objectify association in neutronapi * Objectify last uses of direct db access in network/floating\_ips * Update migration defaults * libvirt: reduce indentation in is\_vif\_model\_valid\_for\_virt * Fixes Hyper-V boot from volume root device issue * Fixes Hyper-V vm state issue * Imported Translations from Transifex * Share unittest between v2 and v2.1 for hide\_server\_addresses extension * Check compulsory flavor create parameters exist * Treat instance like an object in \_default\_block\_device\_names * Change 'image\_ref'/'flavor\_ref' into v2 style for servers * Change 'admin\_password' into v2 style for servers extension * Image caching tests: use list comprehension * Move \_is\_mapping to more central location * Stop augmenting oslo-incubators default log levels * Track object version relationships * Remove final use of glance\_stubs * Removes GlanceClient stubs * Pull transfer module unit tests from glance tests * VMware: remove specific VC support from class VMwareVolumeOps * VMware: remove Host class * Image cache tests: ensure that assertEquals has expected param first * VMware: spawn refactor \_configure\_config\_drive * VMware: refactor spawn() code to build a new VM * VMware: Fix type of VM's config.hardware.device in fake * VMware: Create fake VM with given datastore * VMware: Remove references to ebs\_root from spawn() * VMware: Create VMwareImage object for image metadata * Image caching: update image caching to use objects * Report all objects with hash mismatches in a single go * Include child\_versions in object hashes * Direct-load Instance.fault when lazy-loading * VMware: Remove unused variable in test\_configdrive * Raise HTTPNotFound error from V2 cert show API * Add dict and json methods to VirtNUMATopology classes * virt: helper for processing NUMA topology configuration * Raise Not Implemented error from V2 diagnostics API * Make NovaObjectSerializer work with dicts * Updated from global requirements * neutronv2: treat instance like object in allocate\_for\_instance * nova-network: treat instance like object in allocate\_for\_instance * Treat instance like object in \_validate\_instance\_group\_policy * Treat instance like an object in \_prebuild\_instance * Treat instance like an object in \_start\_building * Add graphviz to list of distro packages to install * Fixes Hyper-V agent force\_hyperv\_utils\_v1 flag issue * ec2: Use S3ImageMapping object * ec2: Add S3ImageMapping object * Remove unused db api methods * Get EC2 snapshot mappings with nova object * Use EC2SnapshotMapping for creating mappings * Add EC2SnapshotMapping object * Fix NotImplementedError in floating-ip-list * filter: add per-aggregate filter to configure max\_io\_ops\_per\_host * Hacking: a new hacking check was added that used an existing number * Fix hacking check for jsonutils * VMware: revert deletion of cleanup\_host * Use flavor in confirm-resize to drop claim * Add new db api get functions for ec2\_snapshot * Partial oslo-incubator sync -- log.py * Add unit tests for libvirt domain creation * Fix Trusted Filter to work with Mt. Wilson \`vtime\` * Fix 202 responses to contain valid content * Fix EC2 instance type for a volume backed instance * libvirt: add serial ports config * Split EC2 ID validator to validator per resource type * libvirt: do not fail instance destroy, if mount\_device is missing * libvirt: persist lxc attached volumes across reboots and power down * Resize block device after swap to larger volume * Make API name validation failure deterministic * VMware: spawn refactor add VirtualMachineConfigInfo * libvirt: Fix kwargs for \_create\_image * VMware: fix crash when VC driver boots * baremetal: Remove depenency on libvirt's fetch\_image method * libvirt: Remove unecessary suffix defaulting * Drop instance\_group\_metadata from the database * Neutron v2 API: fix get\_floating\_ip\_pools * libvirt: Allow specification of default machine type * Fix rebuild with cells * Added hacking check for jsonutils * Consistently use jsonutils instead of specific implementation * Convert network/api.py uses of vif database functions to objects * Convert last use of direct database instance fetching from network api * libvirt: skip disk resize when resize\_instance is False * libvirt: fix \_disk\_resize to make sure converted image will be restored * Backport some v3 certificate API unittest to v2 API * Backport some v3 aggregate API unittest to v2 API * Imported Translations from Transifex * More informative nova-scheduler log after NoValidHost is caught * Remove metadata/metadetails from instance/server groups * Prepend /dev/ to root\_device\_name in get\_next\_device\_name * Lock attach\_volume * Adjust audit logs to avoid negative disk info * Convert network/api.py to use FloatingIP object * Correct some IPAddress DB interaction in objects * docs - Set pbr 'warnerrors' option for doc build * docs - Fix errors,warnings from document generation * Provide a quick way to run flake8 * Add support for select\_destinations in Scheduler client * Create a Scheduler client library * VMware: handle case when VM snapshot delete fails * Use common get\_instance function in v2 attach\_interface * Add some v2 flavor\_manage API tests * Backport v3 api unittest into v2 api for attach\_interface extension * Fix the error status code of duplicated agents * Handle ExternalNetworkAttachForbidden exception * Allow empty volumes to be created * docs - Fix errors,warnings from document generation * docs - Fix exception in docs generation * docs - Fix docstring issues in virt tree * VMware: test\_driver\_api: Use local variables in closures * VMware: Remove ds\_util.build\_datastore\_path() * Use v1 as default for cinder\_catalog\_info * Fix live-migration failure in FC multipath case * Optimize instance\_floating\_address\_get\_all * Enhance PCI whitelist * Add a missing instance=instance in compute/mgr * Correct returned HTTP status code (Use 403 instead of 413) * Fix wrong command for \_rescan\_multipath * add log exception hints in some modules * Fix extension parameters in test\_multiple\_create * Standardize logging for v3 api extensions * Standardize logging for v2 api extensions * Add ListOfDictOfNullableString field type * Enable terminate for EC2 InstanceInitiatedShutdownBehavior * Remove duplicate test of passing glance params * Convert glance unit tests to not use stubs * Add decorator expected\_errors for ips v3 extension * Return 404 instead of 501 for unsupported actions * Return 404 when floating IP pool not found * Makes versions API output deterministic * Work on document structure and doc building * Catch NeutronClientException when showing a network * Add API schema for v2.1/v3 security\_groups extension * Add API schema for v2.1/v3 config\_drive extension * Remove pre-icehouse rpc client API compat * makes sure correct PCI device allocation * Adds tests for Hyper-V VM Utils * Make nova-api use quotas object for reservations * VMware: implement get\_host\_ip\_addr * Boot an instance with multiple vnics on same network * Optimize db.floating\_ip\_deallocate * Fixes wrong usage of mock.assert\_not\_called() * Code change for nova support cinder client v2 * libvirt: saving the lxc rootfs device in instance metadata * Add method for deallocating networks on reschedule * DB: use assertIsNotNone for unit test * Add expire reservations in backport position * Make network/api.py use Network object for associations * Migrate test\_glance from mox to mock * Add instanceset info to StartInstance response * Adds verbosity to child cell update log messages * Removes unnecessary instructions in test\_hypervapi * Diagnostics: add validation for types * Add missed discoverable policy rules for flavor-manage v3 * Rename rbd.py to rbd\_utils.py in libvirt driver directory * Correct a maybe-typo in pci\_manager * libvirt: make guestfs methods always return list of tuples * Revert "Deallocate the network if rescheduling for * libvirt: volume snapshot delete for network-attached disks * libvirt: parse disk backing chains from domain XML * Handle MacAddressInUseClient exception from Neutron when creating port * Updated from global requirements * Remove instance\_info\_cache\_delete() from conductor * Make spawn\_n() stub properly ignore errors in the child thread work * Update devref out-of-tree policy grammar error * Compute: add log exception hints * Handle NetworkAmbiguous error when booting a new instance with v3 api * Handle FloatingIpPoolNotFound exception in floating ip creation * Add policy on how patches and reviews go hand in hand * Add hacking check for explicit import of \_() * VMware: Do not read opaque type for DVS network * VMware: add in DVS VXLAN support * Network: add in a new network type - DVS * Network: interface attach and detach raised confusing exception * Deprecate metadata\_neutron\_\* configuration settings * Log cleanups for nova.network.neutron.api * Remove ESXDriver from Juno * Only get image location attributes if including locations * Use JSON instead of json in the parameter descriptions * Add a retry\_on\_deadlock to reservations\_expire * docs - Fix doc build errors with SQLAlchemy 0.9 * docs - Fix indentation for RPC API's * docs - Prevent eventlet exception during docs generation * docs - Add an index for the command line utilities * docs - fix missing references * Change LOG.warn to LOG.debug in \_shutdown\_instance * EC2: fixed AttributeError when metadata is not found * Import Ironic scheduler filters and host manager * EndpointNotFound deleting volume backend instance * Fix nova boot failure using admin role for another tenant * docs - Fix docstring issues * Update scheduler after instance delete * Remove duplicate index from block\_device\_mapping table * Fix ownership checking in get\_networks\_by\_uuid * Raises NotImplementedError for LVM migration * Convert network/api.py fixedip calls to use FixedIP object * Convert network/api.py get calls to use Network object * Add extensible resources to resource tracker (2) * Make DriverBlockDevice save() context arg optional * Improved error logging in nova-network for allocate\_fixed\_ip() * Issue multiple SQL statements in separate engine.execute() calls * Move check\_image\_exists out of try in \_inject\_data * Fix fake\_update in test\_update\_missing\_server * Add unit tests to cells conductor link * Revert "libvirt: add version cap tied to gate CI testing" * Use Ceph cluster stats to report disk info on RBD * Add trace logging to allocate\_fixed\_ip * Update devref setup docs for latest libvirt on ubuntu * libvirt re-define guest with wrong XML document * Improve logging when python-guestfs/libguestfs isn't working * Update dev env docs on libvirt-dev(el) requirement * Parse unicode cpu\_info as json before using it * Fix Resource tracker should report virt driver stats * Fix \_parse\_datetime in simple tenant usage extension * Add API schema for v2.1/v3 cells API * Fix attaching config drive issue on Hyper-V when migrate instances * Allow to unshelve instance booted from volume * libvirt: add support for guest NUMA topology in XML config * libvirt: remove pointless LibvirtBaseVIFDriver class * libvirt: remove 'vif\_driver' config parameter * libvirt: remove use of CONF.libvirt.virt\_type in vif.py * Handle NotImplementedError in server\_diagnostics v3 api * Remove useless check in \_add\_retry\_host * Initialize Ironic virt driver directory * Live migration is broken for NFS shared storage * Fix ImportError during docs generation * Updated from global requirements * Extend API schema for "create a server" extensions * Enable cloning for rbd-backed ephemeral disks * Add include\_locations kwarg to nova.image.API.get() * Add index for reservations on (deleted, expire) * VMWare Driver - Ignore datastore in maintenance mode * Remove outdated docstring for nova.network.manager * libvirt: remove 3 unused vif.py methods * Turn on pbr's autodoc feature * Remove api reference section in devref * Deduplicate module listings in devref * VMware: Resize operation fails to change disk size * Use library instead of CLI to cleanup RBD volumes * Move libvirt RBD utilities to a new file * Properly handle snatting for external gateways * Only use dhcp if enable\_dhcp is set on the network * Allow dhcp\_server to be set from new field * Set python hash seed to 0 in tox.ini * Make devref point to official devstack vagrant repo * Stop depending on sitepackages libvirt-python * libvirt: driver tests use non-mocked BDMs * Fix doc build errors in models.py * Make several ec2 API tests inherit from NoDBTestCase * Stub out rpc notifications in ec2 cloud unit tests * Add standard constants for CPU architectures * virt: switch order of args to assertEqual in guestfs test * virt: move disk tests into a sub-directory * virt: force TCG with libguestfs unless KVM is enabled in libvirt * Do not pass instances without host to compute API * Pass errors from detach methods back to api proc * libvirt: add tests for \_live\_snapshot and \_swap\_volume methods * libvirt: fill in metadata when launching instances * Increase min required libvirt to 0.9.11 * Rollback quota when confirm resize concurrently completed * API: Enable support for tenant option in nova absolute-limits * libvirt: removing lxc specific disk mapping * Method to filter non-root block device mappings * VMware: remove local variable * Use hypervisor hostname for compute trust level * Remove unused cell\_scheduler\_method * Fix the i18n for some warnings in compute utils * Fix FloatingIP.save() passing FixedIP object to sqlalchemy * Scheduler: throw exception if no configured affinity filter * xenapi: Attach original local disks during rescue * libvirt: remove VIF driver classes deprecated in Icehouse * Move logs of restore state to inner logic * Clean nova.compute.resource\_tracker:\_update\_usage\_from\_instances * Fix and Gate on E265 * Log translation hint for nova.api * Fix duplicated images in test\_block\_device\_mapping * Add Hyper-V driver in the "compute\_driver" option description * reduce network down time during live-migration * Augment oslo's default log levels with nova specific ones * Make the coding style consistent with other Controller in plugins/v3 * Fix extra metadata didn't assign into snapshot image * Add i18n log markers in disk api * VMware: improve log message for attachment of CDROM * Raise NotImplemented default-security-group-rule api with neutron * vmwareapi: remove some unused fake vim methods * Correct image\_metadata API use of nova.image.glance * Revert "Add extensible resources to resource tracker" * Update database columns nullable to match model * Updated from global requirements * Make quotas APIv3 extension use Quotas object for create/update * Make quotas APIv2 extension use Quotas object for create/update * Add quota limit create/update methods to Quotas object 2014.2.b2 --------- * libvirt: VM diagnostics (v3 API only) * Add ibmveth model as a supported network driver for KVM * libvirt: add support for memory tuning in config * libvirt: add support for memory backing parameters * libvirt: add support for per-vCPU pinning in guest XML * libvirt: add parsing of NUMA topology in capabilities XML * handle AutoDiskConfigDisabledByImage at API layer * Rollback quota in os\_tenant\_network * Raise specific error of network IP allocation * Convert to importutils * Catch CannotResizeDisk exception when resize to zero disk * VMware: do not cache image when root\_gb is 0 * Turn periodic tasks off in all unit tests * Rename virtutils to the more common libvirt\_utils * Check for resize path on libvirt instance delete * Return status for compute node * servers list API support specify multi-status * Deprecate scheduler prep\_resize * Updated from global requirements * Fix nova cells exiting on db failure at launch * Remove unneeded calls in test\_shelve to start instances * Correct InvalidAggregateAction reason for Xen * Handle a flavor create failed better * Add valid method check for quota resources * VMware: power\_off\_instance support * Add debug log for availability zone filter * Fix typo * Fix last of direct use of object modules * Check instance state before attach/detach interface * Fix error status code for cloudpipe\_update * Fix unit tests related to cloudpipe\_update * Add API schema for v2.1/v3 reset\_server\_state API * Adjust audit logs to avoid negative mem/cpu info * Re-add H803 to flake8 ignore list * Fix nova/pci direct use of object modules * Gate on F402/pep8 * Inject expected results for IBM Power when testing bus devices * Add extensible resources to resource tracker * libvirt: define XML schema for recording nova instance metadata * Sync loopingcall from oslo * Add APIv2 support to make host optional on evacuate * Add differencing vhdx resize support in Hyper-V Driver * Imported Translations from Transifex * Add context as param to cleanup function * Downgrade the warn log in network to debug * Correct use of nova.image.glance in compute API * Keep Migration status in automatic confirm-resize * Removes useless stub of glanceclient create * Remove rescue/unrescue NotImplementedError handle * Add missing foreign key on pci\_devices.compute\_node\_id * Revert "Add missing image to instance booted from volume" * Add debug log for pci passthrough filter * Cleanup and gate on hacking E711 and E712 rule * Keep resizing&resized instances when compute init * Commit quota when deallocate floating ip * Remove unnecessary error log in cell API * Remove stubs in favor of mock in test\_policy * Remove translation for debug message * Fix error status code for agents * Remove warn log for over quota * Use oslo.i18n * Cleanup: remove unused argument * Implement methods to modify volume metadata * Minor tweaks to hypervisor\_version to int * update ignore list for pep8 * Add decorator expected\_errors for v3 attach\_interfaces * Add instance to debug log at compute api * Don't truncate osapi\_glance\_link or osapi\_compute\_link prefixes * Add decorator expected\_errors to V3 servers core * Correctly reject request to add lists of hosts to an aggregate * Do not process events for instances without host * Fix Cells ImagePropertiesFilter can raise exceptions * libvirt: remove flawed get\_num\_instances method impl * libvirt: remove unused list\_instance\_ids method * libvirt: speed up \_get\_disk\_over\_committed\_size\_total method * Partial oslo-incubator sync * VMware: Remove unnecessary deepcopy()s in test\_configdrive * VMware: Convert vmops to use instance as an object * VMware: Trivial indentation cleanups in vmops * VMware: use datastore classes in file\_move/delete/exists, mkdir * VMware: use datastore classes get\_allowed\_datastores/\_sub\_folder * VMware: DatastorePath join() and \_\_eq\_\_() * VMware: consolidate datastore code * VMware: Consolidate fake\_session in test\_(vm|ds)\_util * Make BDM dict \_\_init\_\_ behave more like a dict * VMware: support the hotplug of a neutron port * Deallocate the network if rescheduling for Ironic * Make sure that metadata handler uses constant\_time\_compare() * Enable live migration unit test use instance object * Move volume\_clear option to where it's used * move the cloudpipe\_update API v2 extension to use objects * Avoid possible timing attack in metadata api * Move injected\_network\_template config to where it's used * Don't remove delete\_on\_terminate volumes on a reschedule * Defer raising an exception when deleting volumes * Xen: Cleanup orphan volume connections on boot failure * Adds more policy control to cells ext * shelve doesn't work on nova-cells environment * libvirt: add migrateToURI2 method to fakelibvirt * libvirt: fix recent test changes to work on libvirt < 0.9.13 * Update requirements to include decorator>=3.4.0 * Cleanup and gate on hacking E713 rule * libvirt: add version cap tied to gate CI testing * Small grammar fix in libvirt/driver.py. fix all occurrences * Correct exception for flavor extra spec create/update * Fixes Hyper-V SCSI slot selection * xenapi: Use netuils.get\_injected\_network\_template * libvirt: Support IPv6 with LXC * Improve shared storage checks for live migration * XenAPI: VM diagnostics for v3 API * Move retry of prep\_resize to conductor instead of scheduler * Retry db.api.instance\_destroy on deadlock * Translations: add LC to all LOG.critical messages * Remove redundant code in Libvirt driver * Virt: fix typo (flavour should be flavor) * Fix and gate on H305 and H307 * Remove unused instance variables from HostState * Send compute.instance.create.end after launched\_at is set * VMware: validate the network\_info is defined * Security groups: add missing translation * Standardization of nova.image.API.download * Catch InvalidAggregateAction when deleting an aggregate * Restore ability to delete aggregate metadata * Nova-api service throws error when SIGHUP is sent * Remove cell api overrides for lock and unlock * Don't mask out HostState details in WeighedHost * vmware: VM diagnostics (v3 API only) * Use pool/volume\_name notation when deleting RBD volumes * Add instanceset info to StopInstance response * Change compute updates from periodic to on demand * Store volume backed snapshot in current tenant * libvirt+lxc: Unmount guest FS from host on error * libvirt: speed up get\_memory\_mb\_used method * libvirt: speed up get\_vcpus method * libvirt: speed up get\_all\_block\_devices method * libvirt: speed up list\_instances method * libvirt: speed up list\_instance\_uuids method * Updated from global requirements * Fix interfaces template for two interfaces and IPv6 * Fix error status code for multinic * libvirt: fix typo in fakelibvirt listAllDomains() * Refactors VIF configuration logic * Add missing test coverage for MultiplePortsNotApplicable compute/api * Make the block device mapping retries configurable * Catch image and flavor exceptions in \_build\_and\_run\_instance * Restore instance flavor info when driver finish\_migration fails * synchronize 'stop' and power state periodic task * Fix more re-definitions and enable F811/F813 in gate * Prepend '/dev/' to supplied dev names in the API * Handle over quota exception from Neutron * Remove pause/unpause NotImplementedError API layer * Add test cases for 2 block\_device functions * Make compute api use util.check\_string\_length * add comment about why snapshot/backup have no lock check * VM diagnostics (v3 API only) * VM diagnostics: add serializer to Diagnostics object * VM diagnostics: add methods to class to update diagnotics * object-ify API v2 availability\_zone extension * object-ify availability\_zones * add get\_by\_metadata\_key to AggregateList object * xenapi: make boot from volume use volumeops * libvirt: Avoid Glance.show on hard\_reboot * Add host\_ip to compute node object * VMware: move fake.py to the test directory * libvirt: convert cpuset XML handling to use set instead of string * virt: add method for formatting CPU sets to strings * Fixes rbd backend image size * Prevent max\_count > 1 and specified ip address as input * Add aggregates.rst to devref index * VMware: virt unrescue method now supports objects * VMware: virt rescue method now supports objects * Remove duplicate python-pip from Fedora devref setup doc * Do not fail cell's instance deletion, if it's missing info\_cache * libvirt: more efficient method to list domains on host * vmwareapi: make method signatures match parent class * Remove duplicate keys from dictionaries * virt: split CPU spec parsing code out into helper method * virt: move get\_cpuset\_ids into nova.virt.hardware * Fix duplicate definitions of variables/methods * change the firewall debugging for clarity * VMware: consolidate common constants into one file * Require posix\_ipc for lockutils * hyperv: make method signatures match parent class * Format eph disk with specified format in libvirt * Resolve import dependency in consoleauth service * Add 'anon' kwarg to FakeDbBlockDeviceDict class * Make cells rpc bdm\_update\_or\_create\_at\_top use BDM objects * Improve BlockDeviceMapping object cells awareness * Add support for user\_id based authentication with Neutron * VMware: add in test utility to get correct VM backing * Change instance disappeared during destroy from Error to Warning * VMware: Fix race in spawn() when resizing cached image * VMware: add support for driver method instance\_exists * Object-ify APIv3 agents extension * Object-ify APIv2 agents extension * Avoid re-adding iptables rules for instances that have disappeared * libvirt: Save device\_path in connection\_info when booting from volume * sync periodic\_task fix from incubator * Fix virt BDM \_\_setattr\_\_ and \_\_getattr\_\_ * Handle InstanceUserDataTooLarge at api layer * Updated from global requirements * Mask node.session.auth.password in volume.py \_run\_iscsiadm debug logs * Nova api service doesn't handle SIGHUP properly * check ephemeral disk format at libvirt before use * Avoid referencing stale instance/network\_info dicts in firewall * Use mtu setting from table instead of flag * Add debug log for core\_filter * VMware: optimize VM spawn by caching the vm\_ref after creating VM * libvirt: Add configuration of guest VCPU topology * virt: add helper module for determining VCPU topology * Change the comments of SOFT\_DELETED race condition * Fix bad log message with glance client timeout * Move the instance\_type\_id judgment to the except-block * Update port binding when unshelve instance * Libvirt: Added suffix to configdrive\_path required for rescue * sync policy logging fix from incubator * Sync process utils from olso * Remove instance\_uuids argument to \_schedule * Add \_\_repr\_\_ handler for NovaObjects * Pass instance to \_reschedule rather than instance\_uuid * Pass instance to \_set\_instance\_error\_state * Pass instance to \_error\_out\_instance\_on\_exception * Add APIv3 support to make host optional on evacuate * Move rebuild to conductor and add find host logic * VMware: validate that VM exists on backend prior to deletion * VMware: remove duplicate key from test\_instance dict * ConfigDriveBuilder refactor for tempdir cleanliness * VMware: cleanup the constructors of the compute drivers * Fix wrong lock name for operating instance external events * VMware: remove unused parameter 'network\_info' * VM diagnostics: introduce Diagnostics model object * Fixes internal server error for add/remove tenant flavor access request * add repr for event objects * Sync oslo lockutils to nova * Neutronv2 api does not support neutron without port quota * Be explicit about objects in \_shutdown\_instance() * Pass instance object into \_shutdown\_instance() * Skip none value attributes for ec2 image bdm output * Fixed wrong assertion in test\_vmops.py * Remove a not used function \_get\_ip\_by\_id * make lifecycle event logs more clear * xenapi: make method signatures match parent class * libvirt: make method signatures match parent class * virt: add test helper for checking public driver API method names * virt: fix signature of set\_admin\_password method * virt: use context & instance as param names in migrate APIs * virt: add get\_instance\_disk\_info to virt driver API * vmwareapi: remove unused update\_host\_status method * libvirt: remove hack from ensure\_filtering\_rules\_for\_instance * libvirt: remove volume\_driver\_method API * libvirt: add '\_' prefix to remaining internal methods * Imported Translations from Transifex * Fake driver: remove unused method get\_disk\_available\_least * Baremetal driver: remove unused states * Fix nova/network direct use of object modules * Fix rest of API objects usage * Fix rest of compute objects usage * Clean conntrack records when removing floating ip * Updated from global requirements * Enforce task\_state is None in ec2 create\_image stop instance wait loop * Update compute rpcapi tests to use instance object instead of dict * Fix run\_instance() rpc method to pass instance object * Fix error in rescue rpcapi that prevents sending objects * add checksums to udp independent of /dev/vhost-net * Use dot notation to access instance object fields in ec2 create\_image * vmwareapi: remove unused fake vim logout method * vmware: remove unused delete\_disk fake vim method * Revert "Sync revert and finish resize on instance.uuid" * Add test cases for block\_device * Add assert\_called check for "brclt addif" test * Log when nova-conductor connection established * Xen: Remove extraneous logging of type information * Fix agent\_id with string type in API samples files for os-agents v2 * Fix update agent return agent\_id with string for os-agents v3 * VMware: Fix fake raising the wrong exception in \_remove\_file * VMware: refactor get\_datastore\_ref\_and\_name * libvirt: introduce separate class for cpu tune XML config * libvirt: test setting of CPU tuning data * Make Evacuate API use Instance objects * VMware: create utility function for reconfiguring a VM * effectively disable libvirt live snapshotting * Fix exception raised when a requested console type is disabled * Add missing image to instance booted from volume * Use default rpc\_response\_timeout in unit tests * vmware: Use exc\_info when logging exceptions * vmware: Reuse existing StorageError class * vmware: Refactor: fold volume\_util.py into volumeops.py * Use ebtables to isolate dhcp traffic * Replace nova.utils.cpu\_count() with processutils.get\_worker\_count() * Sync log and processutils from oslo * libvirt: add '\_' prefix to host state information methods * libvirt: add '\_' prefix to some get\_host\_\* methods * Deprecate and remove agent\_build\_get\_by\_triple() * Object-ify xenapi driver's use of agent\_build\_get\_by\_triple() * Add Agent object * Move the error check for "brctl addif" * Add API schema for v2.1/v3 quota\_sets API * Add API schema for v2.1/v3 flavors\_extraspecs API * Add API schema for v2.1/v3 attach\_interfaces API * Add API schema for v2.1/v3 remote\_consoles API * Use auth\_token from keystonemiddleware * Use \_set\_instance\_obj\_error\_state in compute manager set\_admin\_password * api: remove unused function * api: remove useless get\_actions() in consoles * Do not allow resize to zero disk flavor * api: remove dead code in WSGI XML serializer * Updated from global requirements * Standardize logging for nova.virt.libvirt * Fix log debug statement in compute manager * Add API schema for v2.1/v3 aggregates API * Fix object code direct use of other object modules * Fix the rest of direct uses of instance module objects * Imported Translations from Transifex * Add API schema for v2.1/v3 flavor\_manage API * Forcibly set libvirt uri in baremetal virtual power driver * Synced jsonutils and its dependencies * Sync revert and finish resize on instance.uuid * Object-ify APIv3 availability\_zone extension * Fix bug in TestObjectVersions * libvirt: add '\_' prefix to all get\_guest\_\*\_config methods * libvirt: remove unused 'get\_disks' method * Downgrade some exception LOG messages in the ec2 API * Conductor: remove irrelevant comment * Added statement for ... else * Avoid traceback logs from simple tenant usage extension * Fix detaching pci device failed * Adds instance lock check for live migrate * Don't follow HTTP\_PROXY when talking to localhost test server * Correct the variable name in trusted filter * Target host in evacuate can't be the original one * Add API schema for v2.1/v3 hosts API * Object-ify APIv3 flavor\_extraspecs extension * Object-ify APIv2 flavorextraspecs extension * Catch permission denied exception when update host * Fix resource cleanup in NetworkManager.allocate\_fixed\_ip * libvirt: Support snapshot creation via libgfapi * Allow evacuate from vm\_state=Error * xenapi: reorder volume\_utils * Replace assertTrue/False with assertEqual/NotEqual * Replace assert\* with more suitable asserts in tests * Replace assertTrue/False with assertIn/NotIn * VMware: remove unused code in vm\_util.py * Not count disabled compute node for statistics * Instance and volume cleanup when a build fails * wrap\_instance\_event() shouldn't swallow return codes * Don't replace instance object with dict in \_allocate\_network() * Determine shared ip from table instead of flag * Set reasonable defaults for new network values * Adds network fields to object * Add new fields to the networks table * Log exception if max scheduling attempts exceeded * Make remove\_volume\_connection() use objects * Create lvm.py module containing helper API for LVM * Reduce unit test times for glance * Should not delete active snapshot when instance is terminated * Add supported file system type check at virt layer * Don't store duplicate policies for server\_group * Make exception handling in get\_image\_metadata more specific * live migrate conductor tasks to use nova.image.API * Fix Flavor object extra\_specs and projects handling * Drop support for scheduler 2.x rpc interface * Drop support for conductor 1.x rpc interface * Deprecate glance\_\* configuration settings * Update websocketproxy to work with websockify 0.6 * XenAPI: disable/enable host will be failed when using XenServer * Remove traces of now unused host capabilities from scheduler * Fix BaremetalHostManager node detection logic * Add missing stats info to BaremetalNodeState * Replace assertTrue(not \*) with assertFalse(\*) * Clean nova.compute.api.API:\_check\_num\_instances\_quota * Fix the duplicated image params in a test * Imported Translations from Transifex * Fix "fixed\_ip" parameters in unit tests * Removes the use of mutables as default args * Add API schema for v2.1/v3 create\_backup API * Catch ProcessExecutionError in revoke\_cert * Updated from global requirements * Sync oslo lockutils to nova * devref policy: code is canonical source of truth for API * Log cleanups for nova.virt.libvirt.volume * Log cleanups for nova.virt.libvirt.imagecache * Rename VolumeMapping to EC2VolumeMapping * ec2: Convert to use EC2InstanceMapping object * Add EC2InstanceMapping object for use in EC2 * Add hook for network info update * Enhance and test exception safety in hooks * Object-ify server\_password APIv3 extension * Object-ify server\_password APIv2 extension * Move the fixed\_ips APIv2 extension to use objects * Completely object-ify the floating\_ips\_bulk V2 extension * Add bulk create/destroy functionality to FloatingIP * Cleanup and gate on pep8 rules that are stricter in hacking 0.9 * VMware: update file permissions and mode * Downgrade log level when create network failed * Updated from global requirements * libvirt: Use VIR\_DOMAIN\_AFFECT\_LIVE for paused instances * Initialize objects field in ObjectsListBase class * Remove bdms from run\_instance RPC conductor call * Sync "Prevent races in opportunistic db test cases" * Imported Translations from Transifex * Check the network\_info obj type before invoke wait function * Migrate nvp-qos to generic name qos-queue * Add test for HypervisorUnavailable on conductor * Test force\_config\_drive as a boolean as last resort * Add helper functions for getting local disk * Add more logging to nova-network * Make resize raise exception when no valid host found * Fix doc for service list * Handle service creation race by service workers * Add configurable HTTP timeout to cinder API calls * Prevent clean-up of migrating instances on compute init * Deprecate neutron\_\* configuration settings * Skip migrations test\_walk\_versions instead of pass * Remove duplicate code in Objects create() function * Fix object change detection * Fix object leak in nova.tests.objects.test\_fields.TestObject * Failure during termination should always leave state as error() * Make check\_instance\_shared\_storage() use objects * Save connection info in libvirt after volume connect * Remove unused code from test\_compute\_cells * libvirt: Don't pass None for image\_meta parameter in tests * Revert "Allow admin user to get all tenant's floating IPs" * libvirt: Remove use of db for flavor extra specs in tests * libvirt: Close opened file explicitly * Network: ensure that ports are 'unset' when instance is deleted * Don't translate debug level logs in nova * maint: Fixes wrong docstring of method get\_memory\_mb\_used * Ensure changes to api.QUOTA\_SYNC\_FUNCTIONS are restored * Fix the wrong dest of 'vlan' option and add new 'vlan\_start' option * Add deprecation warning to nova baremetal virt driver * Fixes typo error in Nova * Attach/detach interface to paused instance with affect live flag * Block device API missing translations for exceptions * Enabled swap disk to be resized when resizing instance * libvirt: return the correct instance path while cleanup\_resize * Remove the device handling from pci device object * Use new pci device handling code in pci\_manager * Separate the PCI device object handling code * xenapi: move find\_vbd\_by\_number into volume utils * Virt: remove unnecesary return code * Fixes hyper-v volume attach when host is AD member * Remove variability from object change detection unit test * Remove XML namespace from some v3 extensions 2014.2.b1 --------- * xenapi: Do not retry snapshot upload on 500 * Fix H401,H402 violations and re-enable gating * Bump hacking to 0.9.x series * Change listen address on libvirt live-migration * Make get\_console\_output() use objects * Add testing for hooks * Handle string types for InstanceActionEvent exc\_tb serialization * Revert "Remove broken quota-classes API" * Revert "Remove quota-class logic from context and make unit tests pass" * Fix cold-migrate missing retry info after scheduling * Disable rescheduling instance when no retry info * Fix infinitely reschedule instance due to miss retry info * Use VIF details dictionary to get physical\_network * Fix live\_migration method's docstring * Add subnet routes to network\_info when Neutron is used * fix nova test\_enforce\_http\_true unit test * novncproxy: Setup log when start nova-novncproxy * Make sure domain exists before referencing it * Network: add instance to the debug statement * V3 Pause: treat case when driver does not implement the operation * Don't translate debug level logs in nova.virt * Remove duplicate method * websocketproxy: remove leftover debug output * Remove unnecessary else block in compute manager set\_admin\_password * Treat instance objects like objects in set\_admin\_password flow * Move set\_admin\_password tests from test\_compute.py to api/mgr modules * Fix a wrong comment in the code * maint: correct docstring parameter description * libvirt: Remove dated docstring * Add unit tests for ipv4/ipv6 format validation * Cleanup allocating networks when InstanceNotFound is raised * Add test to verify ironic api contracts * VMware: spawn refactor - phase 1 - test for spawn * Revert "Fix migration and instance resize update order" * Simplify filter\_scheduler.populate\_retry() * libvirt: Use os\_command\_line when kernel\_id is set * libvirt: Make nwfilter driver use right filterref * libvirt: convert cpu features attribute from list to a set * Don't log TRACE info in notify\_about\_instance\_usage * xenapi: add tests for find\_bad\_volumes * Revert "Remove traces of now unused host capabilities from scheduler" * Check the length of aggregate metadata * Add out of tree support dev policy * Deprecate instance\_get\_by\_uuid() from conductor * Make metadata password routines use Instance object * Make SecurityGroupAPI use Object instead of instance\_get\_by\_uuid() * Add development policies section to devref * Add read\_only field attribute * Fix api direct use of instance module objects * Fix direct use of block\_device module objects * Fix InstanceActionEvent traceback parameter not serializable * Fix state mutation in cells image filter * libvirt: split and test finish\_migration disk resize * Use no\_timer\_check with soft-qemu * Add missing translation support * Update HACKING.rst to include N320 * Add tests to avoid inconsistent extension names * VMware: spawn refactor - Datastore class * VMware: remove dsutil.split\_datastore\_path * VMware: spawn refactor - DatastorePath class * Updated from global requirements * VMware: Fix memory leaks caused by caches * Allow user to specify image to use during rescue - V3 API changes * VMware: create utility functions * Check if volume is bootable when creating an instance * VMware: remove unused parameters in imagecache * xenapi: virt unrescue method now supports objects * libvirt: virt unrescue method now supports objects * libvirt: virt rescue method now supports objects * xenapi: virt rescue method now supports objects * Remove useless codes for server\_group * Catch InstanceInfoCacheNotFound during build\_instances * Do not replace the aggregate metadata when updating az * Move oslotest to test only requirements * libvirt: merge two utils tests files * libvirt: remove redundant 'libvirt\_' prefix in test case names * xenapi: refactor detach volume * Add API schema for v2.1/v3 migrate\_server API * Adds IVS unit tests for new VIF firewall logic * Don't set CONF options directly in unit tests * Fix docstring typo in need\_legacy\_block\_device\_info * Revert "Partially remove quota-class logic from nova.quotas" * Revert "Remove quota\_class params from rest of nova.quota" * Revert "Remove quota\_class db API calls" * Revert "Convert address to str in fixed\_ip\_obj.associate" * String-convert IPAddr objects for FixedIP.attach() * Updated from global requirements * Run instance root device determination fix * xenapi: tidy up volumeops tests * Don't return from a finally block * Support detection of fixed ip already in use * Rewrite nova policy to use the new changes of common policy * Treat instance objects as objects in unrescue API flow * Treat instance objects as objects in rescue API flow * Refactor test\_rescue\_unrescue into compute api/manager unit tests * Sync oslo network utils * Fix EC2 not found errors for volumes and snapshots * xenapi: refactor volumeops attach * xenapi: remove calls to call\_xenapi in volumeops * xenapi: move StorageError into global exception.py * Virt: ensure that instance\_exists uses objects * Use objects through the run\_instance() path * Deprecate run\_instance and remove unnecessary code * Change conductor to cast to build\_and\_run\_instance * Fix migration and instance resize update order * remove cpu feature duplications in libvirt * Add unit test trap for object change detection * Sync periodic\_task from oslo-incubator * VCDriver - Ignore host in Maintenance mode in stats update * Enable flake8 F841 checking * Imported Translations from Transifex * Reverse order of cinder.detach() and bdm.delete() * Correct exception info format of v3 flavor manage * Imported Translations from Transifex * Handle NetworkInUse exception in api layer * Correct exception handling when create aggregate * Properly skip coreutils readlink tests * Record right action name while migrate * Imported Translations from Transifex * Fix for multiple misspelled words * Refactor test to ensure file is closed * VM in rescue state must have a restricted set of actions * versions API: ignore request with a body * xenapi: fix live-migrate with volume attached * Add helper methods to convert disk * XenAPI: Tolerate multiple coalesces * Add helpers to create per-aggregate filters * Ensure live-migrate reverts if server not running * Raise HTTPInternalServerError when boot\_from\_volume with cinder down * Imported Translations from Transifex * [EC2]Correct the return status of attaching volume * Fix security group race condition while creating rule * VMware: spawn refactor - phase 1 - copy\_virtual\_disk * Catch InstanceNotFound exception if migration fails * Inject expected results for IBM Power when testing bus * Fix InstanceActionTestCase on PostgreSQL/MySQL * Fix ReservationTestCase on PostgreSQL * VMware: deprecate ESX driver from virt configuration * Add new ec2 instance db API calls * Remove two unused db.api methods * Fix direct use of aggregate module objects * Fix tests/compute direct use of instance module objects * share neutron admin auth tokens * Fix nova image-show with queued image * Catch missing Glance image attrs with None * Align internal image API with volume and network * Do not wait for neutron event if not powering on libvirt domain * Mask block\_device\_info auth\_password in virt driver debug logs * Remove all mostly untranslated PO files * Payload meta\_data is empty when remove metadata * Handle situation when key not memcached * Fix nova/compute direct use of instance module objects * Address issues with objects of same name * Register objects in more services * Imported Translations from Transifex * Default dhcp lease time of 120s is too short * Add VIF mac address to fixed\_ips in notifications * Call \_validate\_instance\_group\_policy in \_build\_and\_run\_instance * Add refresh=True to get\_available\_nodes call in build\_and\_run\_instance * Add better coverage support under tox * remove unneeded call to network\_api on detach\_interface * Cells: Pass instance objects to build\_instances * XenAPI: Add logging information for cache/download duration * Remove spaces from SSH public key comment * Make hacking test more accurate * Fix security group race condition while listing and deleting rules * On rebuild check for null image\_ref * Add a reference to the nova developer documentation * VMware: use default values in get\_info() when properties are missing * VMware: uncaught exception during snapshot deletion * Enforce query order for getting VIFs by instance * Fix typo in comment * Allow admin user to get all tenant's floating IPs * Defer applying iptable changes when nova-network start * Remove traces of now unused host capabilities from scheduler * Add log translation hints * Imported Translations from Transifex * Fix CIDR values denoting hosts in PostgreSQL * Sync common db and db/sqlalchemy * Remove quota\_class db API calls * Remove quota\_class params from rest of nova.quota * Fix wrong quota calculation when deleting a resizing instance * Ignore etc/nova/nova.conf.sample * Fix wrong method name assert\_called\_once * Correct pci resources log * Downgrade log when attach interface can't find resources * Fixes Hyper-V iSCSI target login method * VMware: spawn refactor - phase 1 - fetch\_image * vmware:Don't shadow builtin function type * Partially remove quota-class logic from nova.quotas and test\_quotas * Convert address to str in fixed\_ip\_obj.associate * Accurate exception info in api layer for aggregate * minor corrections to devref rpc page * libvirt: Handle unsupported host capabilities * Fix the duplicated extension summaries * Imported Translations from Transifex * Raise more information on V2 API volumes when resource not found * Remove comments since it's pointless * Downgrade and fix log message for floating ip already disassociated * Fix wrong method name for test\_hacking * Imported Translations from Transifex * Add specific regexp for timestamps in v2 xml * VMWare: spawn refactor - phase 1 - create\_virtual\_disk * VMware: spawn refactor - phase 1 - power\_on\_vm * Move tests into test\_volume\_utils * Tidy up xenapi/volume\_utils.py * Updated from global requirements * VMware: Fix usage of an alternate ESX/vCenter port * VMware: Add check for datacenter with no datastore * Remove unused instance\_update() method from virtapi * Make baremetal driver use Instance object for updates * Rename quota\_injected\_file\_path\_bytes * Imported Translations from Transifex * Fixes arguments parsing when executing command * Remove explicit dependency on amqplib * Deprecate action\_event\_\*() from conductor * Remove conductor usage from compute.utils.EventReporter * Unit test case for more than 1 ephemeral disks in BDM * Network: replace neutron check with decorator * Update links in README * Add mailmap entry * XenAPI: Remove unneeded instance argument from image downloading * XenAPI: adjust bittorrent settings * Fix a minor comments error * Code Improvement * Fix the explanation of HTTPNotFound for cell showing v2 API * Add Nova API Sample file & test for get keypair * Add a docstring to hacking unit tests * Make libvirt driver use instance object for updates * Make vmwareapi/vmops use Instance object for updates * Convert xenapi/vmops uses of instance\_update to objects * Make xenapi agent code use Instance object for updates * Check object's field * Use Field in fixed\_ip * Remove logging in libvirt \_connect\_auth\_cb to avoid eventlet locking * Fix v3 API extension names for camelcase * VMware: prevent image snapshot if no root disk defined * Remove unnecessary cleanup in test * Raise HTTPForbidden from os-floating-ips API rather than 404 * Improve hacking rule to avoid author markers * Remove and block DB access in dhcpbridge * Improve conductor error cases when unshelving * Dedup devref on unit tests * Shrink devref.unit\_tests, since info is in wiki * Fix calls to mock.assert\_not\_called() * VMware: reduce unit test times * Fix wrong used ProcessExecutionError exception * Clean up openstack-common.conf * Revert "Address the comments of the merged image handler patch" * Remove duplicated import in unit test * Fix security group list when not defined for an instance * Include pending task in log message on skip sync\_power\_state * Make cells use Fault obj for create * libvirt: Handle \`listDevices\` unsupported exception * libvirt: Stub O\_DIRECT in test if not supported * Deprecate instance\_fault\_create() from conductor * Remove conductor usage from add\_instance\_fault\_from\_exc() * Add create() method to InstanceFault object * Remove use of service\_\* conductor calls from xenapi host.py * Updated from global requirements * Optimize validate\_networks to query neutron only when needed * Remove quota-class logic from context and make unit tests pass * VMware: spawn refactor - phase 1 - execute\_create\_vm * xenapi: fixup agent tests * Don't translate debug level logs in nova.spice, storage, tests and vnc * libvirt: Refresh volume connection\_info after volume snapshot * Fix instance cross AZ check when attaching volumes * Raise descriptive error for over volume quota * Fix broken version responses * Don't translate debug level logs in objectstore, pci, rdp, servicegroup * Don't translate debug level logs in cloudpipe, hacking, ipv6, keymgr * Don't translate debug level logs in nova.cert, console and consoleauth * Don't translate debug level logs in nova.cmd and nova.db * Don't translate debug level logs in nova.objects * Don't translate debug level logs in nova.compute * Fix bad Mock calls to assert\_called\_once() * VCDriver - No longer returns uptime due to multiple hosts * Make live\_migration use instance objects * wrap\_check\_security\_groups\_policy is already defined * Updated from global requirements * Don't translate debug level logs in nova.conductor * Don't translate debug level logs in nova.cells * Use strtime() specific timestamp regexp * Use datetime object for fake network timestamps * Use datetime object for stub created\_at timestamp * Verify created\_at cloudpipe timestamp is isotime * Verify next-available limit timestamps are isotime * Verify created/updated timestamps are isotime * Use timeutils.isotime() in images view builder * Use actual fake timestamp in API templates * Normalize API extension updated timestamp format * Regenerate API samples for GET /extensions * objects: remove unused utils module * objects: restore some datetime field comments * Add fault wrapper for rescue function * Add x-openstack-request-id to nova v3 responses * Remove unnecessary wrapper for 5 compute APIs * Update block\_device\_info to contain swap and ephemeral disks * Hacking: add rule number to HACKING.rst * Create the image mappings BDMs earlier in the boot * Delete in-process snapshot when deleting instance * Imported Translations from Transifex * Fixed many typos * VMware: remove unneeded code * Rename NotAuthorized exception to Forbidden * Add warning to periodic\_task with interval 0 * Fix typo in unit tests * Remove a bogus and unnecessary docstring * Don't translate debug level logs in nova.api * Don't translate debug level logs in nova.volume * VMware: remove duplicate \_fake\_create\_session code * libvirt: Make \`fakelibvirt.libvirtError\` match * ec2utils: Use VolumeMapping object * ec2: create volume mapping using nova object * Add VolumeMapping object for use in EC2 * Add new ec2 volume db API calls * Remove legacy block device usage in ec2 API * Deprecate instance\_get\_active\_by\_window\_joined() from conductor * Deprecate instance\_get\_all\_by\_filters() from conductor * Don't translate debug level logs in nova.network * Fix bad param name in method docstring * Nova should pass device\_id='' instead of None to neutron.update\_port() * Set default auth\_strategy to keystone * Support multi-version pydevd * replace NovaException with VirtualInterfaceCreate when neutron fails * Spice proxy config setting to be read from the spice group in nova.conf * xenapi: make auto\_config\_disk persist boot flag * Deprecate compute\_unrescue() from conductor * Deprecate instance\_destroy() from conductor * libvirt: fix comment for get\_num\_instances * Fix exception message being changed by nested exception * DescribeInstances in ec2 shows wrong image-message * Imported Translations from Transifex * Remove unused nova.crypto.compute\_md5() * VMware: spawn refactor - phase 1 - get\_vif\_info * Remove comments and to-do for quota inconsistency * Set the volume access mode during volume attach * Fix a typo in compute/manager::remove\_volume\_connection() * XenAPI: Use local rsync rather than remote if possible * Delete image when backup operation failed on snapshot step * Fix migrate\_instance\_\*() using DB for floating addresses * Ignore errors when deleting non-existing vifs * Use eventlet.tpool.Proxy for DB API calls * Improve performance for checking hosts AZs * Correct the log in conductor unshelve\_instance * Imported Translations from Transifex * Make instance\_exists() take an instance, not instance\_name * Xen: Retry plugin call after connection reset * Remove metadata's network-api dependence on the database * Add helper method to determine disk size from instance properties * Deprecate nova-manage flavor subcommand * Updated from global requirements * Imported Translations from Transifex * VMware: remove unused variable * Scheduler: enable scheduler hint to pass the group name * Loosen import\_exceptions to cover all of gettextutils * Don't translate debug level scheduler logs * VMWare - Check for compute node before triggering destroy * Update version aliases for rpc version control * make ec2 errors not useless * VMware: ensure rescue instance is deleted when instance is deleted * Ensure info cache updates don't overwhelm cells * Remove utils.reset\_is\_neutron() to avoid races * Remove unnecessary call to fetch info\_cache * Remove deprecated config option names: Juno Edition * Don't overwrite instance object with dict in \_init\_instance() * Add specific doc build option to tox * Fix up import of conductor * Use one query instead of two for quota\_usages * VMware: Log additional details of suds faults * Disable nova-manage network commands with Neutron V2 * Fix the explanations of HTTPNotFound for keypair's API * remove unneeded call to network\_api on rebuild\_instance * Deprecate network\_migrate\_instance\_\* from conductor * Deprecate aggregate\_host\_\* operations in conductor * Convert instance\_usage\_audit() periodic task to objects * Return to using network\_api directly for migrations * Make \_is\_multi\_host() use objects * Remove unneeded call to fetch network info on shutdown * Instance groups: add method get\_by\_hint * Imported Translations from Transifex * GET details REST API next link missing 'details' * Don't explode if we fail to unplug VIFs after a failed boot * nit: correct docstring for FilterScheduler.schedule\_run\_instance * Revert "Fix network-api direct database hits in metadata server" * ec2: use BlockDeviceMappingList object * ec2: use SecurityGroup object * ec2: get services using ServiceList object * ec2: remove db.instance\_system\_metadata usage * Remove nova-clear-rabbit-queues * Allow -1 as the length of "get console output" API * Fix AvailabilityZone check for hosts in multiple aggregates * Move \_get\_locations to module level plus tests * Define constants for the VIF model types * Imported Translations from Transifex * Make aggregate host operations use Aggregate object * Convert poll\_rescued\_instances() periodic task to objects * Make update\_available\_resource() use objects * Add get\_by\_service() method to ComputeNodeList object * Add with\_compute\_node to service\_get() * Make \_get\_compute\_info() use objects * Pass configured auth strategy to neutronclient * Imported Translations from Transifex * Make quota rollback checks more robust in conductor tests * Updated from global requirements * Remove duplicate code from nova.db.sqlalchemy.utils * Downgrade the log level when automatic confirm\_resize fails * Refactor unit tests for image service CRUD * Finish \_delete\_instance() object conversion * Make detach\_volume() use objects * Add lock on API layer delete floating IP * ec2: Convert instance\_get\_by\_uuid calls to objects * Fix network-api direct database hits in metadata server * Scheduler: remove test scheduling methods that are not used * Add info\_cache as expected attribute when evacuate instance * Make compute manager use network api method return values * Allow user to specify image to use during rescue - V2 API changes * Allow user to specify image to use during rescue * Use debug level logging in unit tests, but don't save them * Update user\_id length to match Keystone schema in volume\_usage\_cache * Avoid the possibility of truncating disk info file * Read deleted instances during lifecycle events * Add RBAC policy for ec2 API security groups calls * compute: using format\_message() to convert exception to string * support local debug logging * Fix bug detach volume fails with "KeyError" in EC2 * Fix straggling uses of direct-to-database queries in nova-network * Xen: Do not resize root volumes * Remove mention of nova-manage.conf from nova-manage.rst * XenAPI: Add host information to glance download logs * Check image exists before calling inject\_data * xenapi: Cleanup tar process on glance error * Missing catch InstanceNotFound in v3 API * Recover from POWERING-\* state on compute manager start-up * Remove the unused \_validate\_device\_name() * Adds missing expected\_errors for V3 API multinic extension * Correct test boundary for libvirt\_driver.get\_info * Updated from global requirements * Update docs to reflect new default filters * Enable ServerGroup scheduler filters by default * Revert "Use debug level logging during unit tests" * Remove redundant tests from Qcow2TestCase * libvirt: remove\_logical\_volumes should remove each separately * VMware: Fixes the instance resize problem * Fix anti-affinity server-group boot failure * Nova utils: add in missing translation * Add exception handling in "nova diagnostics" * mark vif\_driver as deprecated and log warning * Revert object-assuming changes to \_post\_live\_migration() * Revert object-assuming changes to \_post\_live\_migration() * libvirt: optimize pause mode support * Check for None or timestamp in availability zone api sample * Refactor Network API * Require admin context for interfaces on ext network * remove redundant copy of test\_cache\_base\_dir\_exists * Make sure leases are maintained until release * Add tests for remaining expected conductor exceptions * Fix Jenkins translation jobs * libvirt: pause mode is not supported by all drivers * Reduce config access in scheduler * VMWare: add power off vm before detach disk during unrescue * Reduce logging in scheduler * xenapi: add a test for \_get\_partitions * Refactor network\_utils to new call\_xenapi pattern * Sync request\_id middleware bug fix from oslo * Make example 'entry\_points' parameter a dictionary * Localized error exception message on delete host aggregate * Note that XML support \*may\* be removed * Change errors\_out\_migration decorator to work with RPC * low hanging fruit oslo-incubator sync * Fix description of ServerGroupAffinityFilter * Added test cases in ConfKeyManagerTestCase to verify fixed\_key * Moved the registration of lifecycle event handler in init\_host() * Change NotFound to InstanceNotFound in server\_diagnostics.py * Remove unnecessary passing of task\_state to check\_instance\_state * Rename instance\_actions v3 to server\_actions * Drop nova-rpc-zmq-receiver man-page * Correct the keypairs-get-resp.json API sample file * Make hypervisor\_version an int in fakeVirt driver * Ensure network interfaces are in requested order * Reserve 10 migrations for backports * XenAPI: Calculate disk\_available\_least * Open Juno development 2014.1.rc1 ---------- * Fix getting instance events on subsequent attempts * Improved logs for add/remove security group rules * VMware: remove double import * VMware: clean up VNC console handling * Make conductor expect ActionEventNotFound for action methods * Remove zmq-receiver from setup.cfg * Add a note about deprecated group filters * Fix the section name in CONTRIBUTING.rst * Fix display of server group members * Add new style instance group scheduler filters * Automatically create groups that do not exist * Add InstanceGroup.get\_by\_name() * Remove unnecessary check for CONF.notify\_on\_state\_change * Add nova.conf.sample to gitignore * Use binding:vif\_details to control firewall * Disable volume attach/detach for suspended instances * Updated from global requirements * Persist image format to a file, to prevent attacks based on changing it * Add test cases for validate\_extra\_spec\_keys * Catch InstanceInLocked exception for rescue and instance metadata APIs * Imported Translations from Transifex * Make 'VDI too big' more verbose * Use osapi\_glance\_link\_prefix for image location header * postgres incompatibility in InstanceGroup.get\_hosts() * Add missing test for None in sqlalchemy query filter * Use instance data instead of flavor in simple\_tenant\_usage extension * Sync oslo imageutils, strutils to Nova * Use correct project/user id in conductor.manager * fix the extension of README in etc/nova * Tell pip to install packages it sees globally * Change exception type from HTTPBadRequest to HTTPForbidden * Don't attempt to fill faults for instance\_list if FlavorNotFound * Bypass the database if limit=0 for server-list requests * Fix availability-zone option miss when creates an instance * No longer any need to pass admin context to aggregate DB API methods * Updated Setting up Developer Environment for Ubuntu * Change libvirt close callback to use green thread * Re-work how debugger CLI opts are registered * Imported Translations from Transifex * \_translate\_from\_glance() can cause an unnecessary HTTP request * Add UNSHELVING and RESCUING into IoOPSFilter consideration state * VMware: fix booting from volume * Do not add current tenant to private flavor access * Disable oslo.messaging debug logs * Update vm\_mode when rebuilding instance with new image * VMware: fix list\_instances for multi-node driver * VMware: Add utility method to retrieve remote objects * Use project/user from instance for quotas * Refactors unit tests of image service detail() * Refactors nova.image.glance unit tests for show() * Revert deprecation warning on Neutron auth * V2 API: remove unused imports * Change HTTPUnprocessableEntity to HTTPBadRequest * Rename \_post\_live\_migration instance\_ref arg * Add a decorator decorator that checks func args * Updated from global requirements * Instance groups: cleanup * Use the list when get information from libvirt * Remove unused quota\_\* calls from conductor * Use correct project/user for quotas * Include proper Content-Type in the HTTP Headers * Fix inconsistent quota usage for security group * Handling unlimited values when updating quota * Fix service API and cells * Remove unnecessary stubbing in test\_services * InvalidCPUInfo exception added to except block * VMware: fix exception when no objects are returned * Don't allow empty or 0 volume size for images * Wait till message handling is done on service stop * Remove PciDeviceList usage in pci manager * Fix the rpc module import in the service module * Revert "VMware Driver update correct disk usage stat" * Catch HostBinaryNotFound exception in V2 API * Ignore InstanceNotFound while getting console output * Raise error on nova-api if missing subnets/fixed\_ips on networks/port * Fix the explanations of HTTPNotFound for new APIs * Remove the nova.config.sample file * Refuse to block migrate instances with config drive * Include next link when default limit is reached * Catch NotImplementedError on Network Associate * VMware: add a file to help config the firewall for vnc * Change initial delay for servicegroup api reporting * Fix KeyError if neutron security group is not TCP/UDP/ICMP and no ports * Prevent rescheduling on block device failure * Check if nfs/glusterfs export is already mounted * Make compute API resize methods use Quotas objects * Remove commented out code in test\_cinder\_cloud * Update quantum to neutron in comment * Add deleted\_at attribute in glance stub on delete() * Add API sample files of "unshelve a server" API * Remove unused method from fake\_network.py * Don't refresh network cache for instances building or deleting * GlanceImageService static methods to module scope * Remove XenAPI driver deprecation warning log message * VMware: bug fix for host operations when using VMwareVCDriver * xenapi: boot from volume without image\_ref * Use HTTPRequestV3 instead of HTTPRequest in v3 API tests * Cells: Send instance object for instance\_delete\_everywhere * Fix "computeFault" when v3 API "GET /versions/:(id)" is called * VMware: ensure that the task completed for resize operation * Change parameters of add\_timestamp in ComputeDriverCPUMonitor class * Cells API calls return 501 when cells disabled * Add version 2.0 of conductor rpc interface * Added missing raise statement when checking the config driver format * Make NovaObject report changed-ness of its children * Increase volume creation max waiting time * Remove action-args from nova-manage help * VMware: fix rescue disk location when image is not linked clone * Fix comment for block\_migration in nova/virt/libvirt/driver.py * Don't import library guestfs directly * Correct inheritance of nova.volume.cinder.API * VMware: enable booting an ISO with root disk size 0 * Remove bad log message in get\_remote\_image\_service * Raise NotImplementedError in NeutronV2 API * Remove block\_device\_mapping\_destroy() from conductor API * Make sure instance saves network\_info when we go ACTIVE * Fix sqlalchemy utils test cases for SA 0.9.x * Fix equal\_any() DB API helper * Remove migration\_update() from conductor API * Remove instance\_get() from conductor API * Remove aggregate\_get\_by\_host() from conductor API * add support for host driver cleanup during shutdown * Add security\_group\_rule to objects registry * Remove aggregate\_get() from conductor API * Delete meaningless lines in test\_server\_metadata.py * Imported Translations from Transifex * Move log statement to expose actually info\_cache value * Fix input validation for V2 API server group API extension * Adds test for rebuild in compute api * Specify spacing on periodic\_tasks in manager.py * network\_info cache should be cleared before being rescheduled * Don't sync [system\_]metadata down to cells on instance.save() * Fixes the Hyper-V agent individual disk metrics * VMware: remove unused code (\_delete method in vmops.py) * Fix docstring for shelve\_offload\_instance in compute manager * Block database access in nova-network binary * Make nova-network use conductor for security groups refresh * Make nova-network use quotas object * Reverts change to default state\_path * Fix raise\_http\_conflict\_for\_instance\_invalid\_state docstring * Cells: Pass instance objects to update/delete\_instance\_metadata * Don't detach root device volume * Revert "Adding image multiple location support" * Revert "Move libvirt RBD utilities to a new file" * Revert "enable cloning for rbd-backed ephemeral disks" * Add helper method for injecting data in an image * Add helper method for checking if VM is booting from a volume * Libvirt: Repair metadata injection into guests * Make linux\_net use objects for last fixed ip query * Add get\_by\_network() to FixedIPList * Update aggregate should not allow duplicated names * Recover from REBOOT-\* state on compute manager start-up * VMware: raise an exception for unsupported disk formats * VMware: ensure that deprecation does not appear for VC driver * rename ExtensionsResource to ExtensionsController * Ensure is\_image\_available handles V2 Glance API * libvirt: fix blockinfo get\_device\_name helper * Log Content-Type/Accept API request info * Remove the docker driver * xenapi: Speed up tests by not waiting on conductor * Updated from global requirements * xenapi: Fix test\_rescue test to ensure assertions are valid * VMware: image cache aging * Add py27local tox target * Fix broken API os-migrations * Catch FloatingIpNotFoundForHost exception * Fix get\_download\_hander() typo * Handle IpAddressGenerationClient neutron * Delete ERROR+DELETING VMs during compute startup * VMware: delete vm snapshot after nova snapshot * Fix difference between mysql & psql of flavor-show * Add version 3.0 of scheduler rpc interface * Make libvirt wait for neutron to confirm plugging before boot * Task cleanup\_running\_deleted\_instances can now use slave * Do not add HPET timer config to non x86 targets * Make test computations explicit * Instance groups: only display valid instances for policy members * Don't allow reboot when instance in rebooting\_hard * VMware: add missing translations * Fix typo and add test for refresh\_instance\_security\_rules * Add declaration of 'refresh\_instance\_security\_rules' to virt driver * Remove mention of removed dhcp\_options\_enabled * Fix compute\_node stats * Fix: Unshelving an instance uses original image * Noted that tox is the preferred unit tester * Updated development.environment.rst * Use instance object instead of \_instance\_update() * Remove compute virtapi BDM methods * enable cloning for rbd-backed ephemeral disks * Move libvirt RBD utilities to a new file * Fixup debug log statements in the nova compute manager * Use debug level logging during unit tests * Fix debug message formatting in server\_external\_events * VMware: VimException \_\_str\_\_ attempts to concatenate string to list * Mark ESX driver as deprecated * Volume operations should be blocked for non-null task state * xenapi: fix spawn servers with ephemeral disks * Fixes NoneType vcpu list returned by Libvirt driver * Add conversion type to LOG.exception's string * Remove compute API get\_instance\_bdms method * Move run\_instance compute to BDM objects * Move live migration callbacks to BDM objects * Instance groups: validate policy configuration * Add REST API for instance group api extension * VMware: boot from iso support * Store neutron port status in VIF model * Correct network\_model tests and \_\_eq\_\_ operator * Make network\_cache more robust with neutron * Error out failed migrations * Fix BDM legacy usage with objects * Fix anti-affinity race condition on boot * Initial scheduler support for instance\_groups * Add get\_hosts to InstanceGroup object * Add instance to instance group in compute.api * Add add\_members to InstanceGroup object * Remove run-time dependency on fixtures module by the nova baremetal * Make compute manager prune instance events on delete and migrate * Make compute manager's virtapi support waiting for events * Add os-server-external-events V3 API * Add os-server-external-events API * Add external\_instance\_event() method to compute manager * Fix invalid vim call in vim\_util.get\_dynamic\_properties() * Rescue API handle NotImplementedError * VMware: Add a test helper to mock the suds client * VMware: Ensure test VM is running in rescue tests * Move \_poll\_volume\_usage periodic task to BDM objects * Move instance\_resize code paths to BDM objects * Make swap\_volume code path use BDM objects * Fix log messages typos in rebuild\_instance function * Move detach\_volume and remove\_vol\_connection to BDM objects * Move instance delete to new-world BDM objects * VMware ESX: Boot from volume must not relocate vol * Fix development environment docs for redhat-based systems * neutron\_metadata\_proxy\_shared\_secret should not be written to log file * VMware: create datastore utility functions * Address the comments of the merged image handler patch * Ignore the image name when booting from volume 2014.1.b3 --------- * Fix typo in devref * VMware: refactor \_get\_volume\_uuid * Add return value to some network API methods * Fixing host\_ip configuration help message * No longer call check\_uptodate.sh in pep8 * notifier middleware broken by oslo.messaging * regenerate the config file to support 1.3.0a9 * Add doc update for 4 filters which is missing in filter\_scheduler.rst * Remove 3 unnecessary variables in scheduler * Adding image multiple location support * Move all shelve code paths to BDM objects * Move rebuild to BDM objects * sync sslutils to not conflict with oslo.messaging * Accurate comment in compute layer * Refactor xenapi/host.py to new call\_xenapi pattern * Add a missing space in a log message * VMware: iscsi target discovery fails while attaching volumes * Remove warn log in quota function on API layer * Sync the latest DB code from oslo-incubator * Prevent thrashing when deploying many bm instances * Support configuring libvirt watchdog from flavors * Add watchdog device support to libvirt driver * Remove extra space at the end of help string * Port libvirt copy\_image tests to mock * Updated from global requirements * Sync latest Guru Meditation Reports from Oslo * Skip sqlite-specific tests if sqlite is not configured * VMware: add in debug information for network selection * vmwareapi:Fix nova compute service down issue when injecting pure IPv6 * Make compute use quota object existing function * Fixes api samples for V2 os-assisted-volume-snapshots * Raise exception if volume snapshot id not found instead of return * Added os-security-groups prefix * VMware Driver update correct disk usage stat * attach/detach interface should raise exception when instance is locked * Restore get\_available\_resource method in docker driver * Make compute manager use InstanceInfoCache object for deletes * Deprecate conductor instance\_type\_get() and remove from VirtAPI * Make restore\_instance pass the Instance object to compute manager * Use uuid instead of name for lvm backend * Adds get\_console\_connect\_info API * Remove log\_handler module from oslo-incubator sync * Remove deleted module flakes from openstack-common.conf * When a claim is rejected, explain why * Move xenapi/agent.py to new call\_xenapi style * xenapi plugins: Make sure subprocesses finish executing * Update Oslo wiki link in README * Refactor pool.py to remove calls to call\_xenapi * Move vbd plug/unplug into session object * xenapi: make session calls more discoverable * Make error notifications more consistent * Adds unit test for etc/nova/policy.json data * Support IPv6 when booting instances * xenapi: changes the debug log formatting * libvirt: raises exception when attempt to resize disk down * xenapi: stop destroy\_vdi errors masking real error * Make resource\_tracker use Flavor object * Make compute manager use Flavor object * Make baremetal driver use Flavor object instead of VirtAPI * Sync latest config file generator from oslo-incubator * Fixes evacuate doesn't honor enable password conf for v3 * Removed copyright from empty files * Fix the explanations of HTTPNotFound response * VMware: support instance objects * Add support for tenant\_id based authentication with Neutron * Remove and recreate interface if already exists * Prevent caller from specifying id during Aggregate.create() * Enable flake8 H404 checking * Imported Translations from Transifex * Fix logic for aggregate\_metadata\_get\_by\_host\_with\_key test case * Use oslo-common's logging fixture * Re-Sync oslo-incubator fixtures * Updated from global requirements * Update pre\_live\_migration to take instance object * Remove unused method inject\_file() * Remove db query from deallocate\_fixed\_ip * update deallocate\_for\_instance to take instance obj * Update server\_diagnostics to use instance object * Move the metrics update to get\_metrics * Unmount the NFS and GlusterFS shares on detach * Add a caching scheduler driver * libvirt: image property variable already defined * Replaces exception re-raising in Hyper-V * Remove blank space after print * VMware: add instance detail to detach log message * libvirt: Enable custom video RAM setting * Remove trailing comma from sample JSON * Add pack\_action\_start/finish helper to InstanceAction object * Rewrite InstanceActionEvent object testcase using mock * Clean up \_make\_\*\_list in object models to use base.obj\_make\_list * libvirt: remove explicit /dev/random rng default * Document virt driver methods that take Instance objects * Make interface attach and detach use objects * Pass instance object to soft\_delete() and get\_info() * libvirt: setting a correct driver name for iscsi volumes * libvirt: host specific virtio-rng backend * Fix HTTP methods for test\_attach\_interfaces * Fix the calls of webob exception classes * VMware: remove unused parameter from \_wait\_for\_task * Downgrade the log level for floating IP associate * Removing redundant validation for rebuild request * VMware: add a test for driver capabilities * Catch HostBinaryNotFound exception when updating a service * VMware: ensure that datastore name exists prior to deleting disk * Move compute's \_get\_instance\_volume\_block\_device\_info to BDM objects * Use disk\_bus and device\_type in attaching volumes * Add device bus and type to virt attach\_volume call * Make volume attach use objects * compute: invalid gettext message format * VMware: fix the VNC port allocation * VMware: fix datastore selection when token is returned * Hyper-V log cleanups * vmware: driver races to create instance images * Introduce Guru Meditation Reports into Nova * Updated from global requirements * Revert "VMware: fix race for datastore directory existence" * Use instance object for delete * Update ubuntu dev env instructions * VMware: fix race for datastore directory existence * libvirt: adding a random number generator device to instances * Add 'use\_slave' to instance\_get\_all\_by\_filter in conductor * Fix the validation of flavor\_extraspecs v2 API * Make webob.exc.HTTPForbidden return correct message * Use image from the api in run\_instance, if present * Remove unused variables in the xenapi.vmops module * Describe addresses in ec2 api broken with neutron * Cleanup v3 test\_versions * Fix import order in log\_handler * Emit message which merged user-supplied argument in log\_handler * Adds service request parameter filter for V3 API os-hosts request * Fix comment typo in nova/compute/api.py * stop throwing deprecation warnings on init * Remove broken quota-classes API * VMware: fix instance lookup against vSphere * Add a new compute API method for deleting retired services * Fix instance\_get\_all\_by\_host to actually use slave * Periodic task poll\_bandwidth\_usage can use slave * Partially revert "XenAPI: Monitor the GC when coalescing" * Mark XML as deprecated in the v2 API * adjust version definition for v3 to be only json * Fix option indenting in compute manager * Adds create backup server extension for the V3 API * Catch InstanceNotFound exceptions for V2 API instance\_actions * Sync log.py from oslo * Make floating\_ips module use FloatingIP for associations * Remove \_\_del\_\_ usage in vmwareapi driver * Fixed spelling errors in nova * LibVirt: Disable hairpin when using Neutron * VMware: optimize instance reference access * Serialize the notification payload in json * Add resource tracking to unshelve\_instance() * Typo in the name 'libvirt\_snapshot\_compression' * Refactor driver BDM attach() to cover all uses * Fix assertEqual parameter order post V3 API admin-actions-split * Fix copyright messages after admin actions split for V3 API * Catch InstanceNotFound exceptions for V2 API virtual interfaces * Correct the assert() order in test\_libvirt\_blockinfo * Use disk\_bus when guessing the device name for vol * libvirt: add virtio-scsi disk interface support * libvirt: configuration element for virtual controller * VMware: factor out management of controller keys and unit numbers * Remove unused notifier and rpc modules from oslo sync * Imported Translations from Transifex * Remove XML support from schemas v3 * Treat port attachment failures correctly * Add experimental warning for Cells * Add boolean convertor to "create multiple servers" API * VMware: prevent race for vmdk deletion * VMware: raise more specific exceptions * Disable IGMP snooping on hybrid Linux bridge * libvirt: remove retval from libvirt \_set\_host\_enabled() * VMware: remove unused class * compute: format\_message is a method not an attribute * MetricsWeigher: Added support of unavailable metrics * Fix incorrect kwargs 'reason' for HTTPBadRequest * Fix the indents of v3 API sample docs * Refactor get\_iscsi\_initiator to a common location * Fix compute\_node\_update() compatibility with older clients * XenAPI: Add the mechanism to attach a pci device to a VM * Remove underscore for the STATE\_MAP variable * XenAPI: Add the support for updating the status of the host * libvirt: support configurable wipe methods for LVM backed instances * Fix InstanceNotFound error in \_delete\_instance\_files * Ensure parent dir exists while injecting files * Convert post\_live\_migration\_at\_destination to objects * Convert remove\_fixed\_ip\_to\_instance to objects * Convert add\_fixed\_ip\_to\_instance to objects * Fix invalid facilities documented in rootwrap.conf * VMware: improve unit test time * Replace assertEqual(None, \*) with assertIsNone in tests * Add comment/doc about utils.mkfs in rootwrap * Add mkfs to the baremetal-deploy-helper rootwrap * libvirt-volume: improve unit test time * Move consoleauth\_manager option into nova.service and fix imports * libvirt: improve unit test time * Imported Translations from Transifex * Make is\_neutron() thread-safe * Update the mailmap * Rewrite InstanceAction object test cases using mock * Make floating\_ips module use FloatingIP for updates * Make floating\_ips module use FloatingIP for (de-)allocations * Make floating\_ips module use FloatingIP for all get queries * Make floating\_ips module use Service object * Make floating\_ips module use Instance object * Make floating\_ips module use Network object * Make floating\_ips module use FixedIP object * Fix break in vm\_vdi\_cleaner after oslo changes * Fixes the Hyper-V VolumeOpsTestCase base class * libvirt: Uses available method get\_host\_state * Add V3 api for pci support * Update docstring for baremetal opportunistic tests * Fix upper bound checking for flavor create parameters * Fixed check in image cache unit test * Count memory and disk slots once in cells state manager * changed quantum to neutron in vif-openstack * Convert unrescue\_instance to objects * Don't allow compute\_node free\_disk\_gb to be None * compute: removes unnecessary condition * Rename Openstack to OpenStack * Support setting a machine type to enable ARMv7/AArch64 guests to boot * Catch InstanceNotFound exceptions for V2 API floating\_ips * Explicity teardown on error in libguestfs setup() * Catch InstanceNotFound exceptions for V2 API deferred delete * Replace oslo.sphinx with oslosphinx * Change assertTrue(isinstance()) by optimal assert * Make nova\_ipam\_lib use Network, FixedIP, and FloatingIP objects * Make nova-network use FixedIP for timeouts * Make nova-network use FixedIP object for updates * Make nova-network use FixedIP object for disassociations * Use six.moves.urllib.parse instead of urlparse * Add "body=" argument to v3 API unit tests * Remove unused methods * Adds migrate server extension for V3 API * Move policy check of start/stop to api layer * Refactor stats to avoid bad join * Remove @author from copyright statements * Remove character filtering from V3 API console\_output * DB: logging exceptions should use save\_and\_reraise * Fix incorrect check in aggregate/az test * xenapi: set viridian=false for linux servers * Delete baremetal image files after deployment * Make sure "volumeId" in req body on volume actions * Removes console output plugin from the core list * Using six.add\_metaclass * Fix bad log formatting * Remove quota classes extension from the V3 API * Group kvm image\_meta tests for get\_disk\_bus * Prefix private methods with \_ in docker driver * Fix the sample and unittest params of v3 scheduler-hints * Add a instance lookup helper to v3 plugins * Use raw string notation for regexes in hacking checks * Improve detection of imports in hacking check * Renumber some nova hacking checks * Docker cannot start a new instance because of an internal error * libvirt: configuration element for a random number generator device * VMware: fix instance rescue bug * Fix run\_tests.sh lockutils when run with -d * Adds tests to sqlachemy.api.\_retry\_on\_deadlock * Replace detail for explanation msgs on webob exceptions * Allow operators to customize max header size * Prevent caller from specifying id during Migration.create() * Prevent caller from specifying id during KeyPair.create() * Prevent caller from specifying id during Service.create() * Prevent caller from specifying id during ComputeNode.create() * Clean IMAGE\_SNAPSHOT\_PENDING state on compute manager start up * Fix trivial typo in libvirt test comment * Refactoring metadata/base * Removes XML namespace from V3 API test\_servers * correct the bugs reference url in man documents * Objectify instance\_action for cell scheduler * Remove tox locale overrides * libvirt: use to\_xml() in post\_live\_migration\_at\_destination * Removes os-instance-usage-audit-log from the V3 API * VMware: update test name * VMware: improve unit test performance * Fix english grammar in the quota error messages * Removes os-simple-tenant-usage from the V3 API * Fix a couple of unit test typos * Add HEAD api response for test s3 server BucketHandler * Removes XML support from security\_groups v3 API * Hyper-V driver RDP console access support * Make consoleauth token verification pass an Instance object * Adds RDP console support * Fix migrations changing the type of deleted column * Add hpet option for time drifting * Typo in backwards compat names for notification drivers * Support building wheels (PEP-427) * Fix misspellings in nova * Disable file injection in baremetal by default * Drop unused dump\_ SQL tables * Convert rescue\_instance to objects * Convert set\_admin\_password to objects * The object\_compat decorator should come first * Default video type to 'vga' for PowerKVM * Sync latest db.sqlalchemy from oslo-incubator * Guard against oversize flavor rxtx\_factor float * Make libvirt use Flavor object instead of using VirtAPI * Fix instance metadata tracking during resets * Make delete\_instance\_metadata() use objects * Break out the meat of the object hydration process * V2 Pause: treat case when driver does not implement the operation * VMware: fix bug for exceptions thrown in \_wait\_for\_task * Nova Docker: Metadata service doesn't work * nova: use RequestContextSerializer for notifications * Fix auto instance unrescue after poll period * Fix typos in hacking check warning numbers * Fix exception handling miss in remote\_consoles * Don't try to restore VM's in state ERROR * Make it possible to disable polling for bandwidth usage * XenAPI: Monitor the GC when coalescing * Revert "Allow deleting instances while uuid lock is held" * report port number for address already in use errors * Update my mailmap * libvirt: Adds missing tests to copy\_image * Sync latest gettextutils from oslo-incubator * Make change\_instance\_metadata() use objects * Add XenAPI driver deprecation warning log message * Adds host\_ip to hypervisor show API * VMware: update the default 'task\_poll\_interval' time * Fixes Hyper-V VHDX snapshot bigger than instance * Define common "name" parameter for Nova v3 API * Stacktrace on error from libvirt during unfilter * Disable libvirt driver file injection by default * Add super call to db Base class * Fix baremetal stats type * Fix bittorrent URL configuration option * Fix VirtualInterfaceMacAddressException message * Add serializer capability to fake\_notifier * Avoid deadlock when stringifying NetworkInfo model * Add hacking test to block cross-virt driver code usage * Hyper-V: Change variable in debug log message * Rename API schema modules with removing "\_schema" * Fixed naming issue of variable in a debug statement formatting * Use new images when spawning BM instances * Remove get\_instance\_type and get\_active\_by\_window from nova compute API * Make the simple\_tenant\_usage API use objects * Add instance\_get\_active\_by\_window\_joined to InstanceList * Update nova.conf.sample for python-keystoneclient 0.5.0 * Add ESX quality warning * Set SCSI as the default cdrom bus for PowerKVM * Enforce FlavorExtraSpecs Key format * Fix scheduler\_hints parameter of v3 API * Remove vi modelines * VMware: Remove some unused variables * Fix a bug in v3 API doc * Move logging out of BDM attach method * Add missing translation support * libvirt: making set\_host\_enabled to be a private methods * Remove unused variable * Call get\_pgsql\_connection\_info from \_test\_postgresql\_opportunistically * Port to oslo.messaging * Sync latest config file generator from oslo-incubator * Test guestfs without support for close\_on\_exit * Make nova-network use FixedIP object for vif queries and bulk create * Make nova-network use FixedIP for host and instance queries * Make nova-network use FixedIP object for associations * Make nova-network use FixedIP for get\_by\_address() queries * Add FixedIP.floating\_ips dynamic property * Add FloatingIP object implementation * Add FixedIP Object implementation * Deal with old versions of libguestfs * Destroy docker container if spawn fails to set up network * Adds suspend server extension for V3 API * Adds pause server extension for V3 API * Removes XML namespace definitions from V3 API plugins * Remove XML support from migrations pci multiple\_create v3 API plugins * Remove extra space in log message * Allow deleting instances while uuid lock is held * Add 'icehouse-compat' to [upgrade\_levels] compute= * Make os-service API return correct error messages * Make fixed\_ip\_get\_by\_address() take columns\_to\_join * Refactor return value of fixed\_ip\_associate calls * Make nova-network use Network object for deleting networks * Make nova-network use Network for associations * Make nova-network use Network object for set\_host() operation * Make nova-network use Network object for updates * Make nova-network use Network object for remaining "get" queries * Make nova-network use NetworkList for remaining "all" queries * Make nova-network use Network object for get-all-by-host query * Make nova-network a "conductor-using service" * Ignore 'dynamic' addr flag on bridge configuration * Remove XML support from some v3 API plugins * xenapi: clean up step decorator fake steps * Use objects internally in DriverBlockDevice class * Make snapshot\_volume\_backed use new-world objects * Make volume\_snapshot\_{create,delete} use objects * Move compute API is\_volume\_backed to BDM objects * Add block device mapping objects implementation * XenAPI: Wait for VDI on introduce * Shelve: The snapshot should be removed when delete instance * Revert "Allow deleting instances while uuid lock is held" * Retry reservation commit and rollback on deadlock * Adds lock server extension for V3 API * Remove duplicated method in mock\_key\_mgr * Add quality warning for non-standard libvirt configurations * Add docker driver removal warning * Remove V3 API XML entry points * Remove XML support from admin\_password V3 API plugin * Remove XML support from certificates v3 API * Remove XML support from some v3 API plugins(e.g. services) * Remove XML support from some extension v3 API plugins * Remove XML support from some server v3 API plugins * Remove XML support from quota and scheduler\_hints v3 API plugins * Remove XML support from flavor v3 API plugins * Revert "Fix race conditions between imagebackend and imagecache" * Remove XML support from v3 API plugins * Remove unused methods * Remove trace XML from unittests * removing xml from servers.py * Remove xml unit tests for v3 api plugins * Remove v3 xml API sample tests * Adds dmcrypt utility module * Adds ephemeral\_key\_uuid field to instance * Error message is malformed when removing a sec group from an instance * Do not set root device for libvirt+Xen * Docker Set Container name to Instance ID * Fix init of pci\_stats in resource tracker * Catch NotImplementedError in get\_spice\_console in v2/v3 API * Minor changes to make certificates test cases use HTTPRequestV3 * VMware: Only include connected hosts in cluster stats * disk/api.py: refactors extends and adds missing tests * Make nova-network use Network to create networks * Make obj\_to\_primitive() handle netaddr types * Add Network object * Make service workers gracefully handle service creation race * support stevedore >= 0.14 * Increase the default retry for iscsi connects * Finish compacting pre-Icehouse database migrations * Compact pre-Icehouse database migrations <= 210 * Compact pre-Icehouse database migrations <= 200 * Compact pre-Icehouse database migrations <= 190 * Fix cache lock for image not consistent * VMware: fix image snapshot with attached volume * Use block\_device\_info at post\_live\_migration\_at\_destination * Update policy check on each action for certificates * Use (# of CPUs) workers by default * Remove policy check in db layer for aggregates * Remove unused configurations * VMware: fix exception when using multiple compute nodes * Remove copyright from empty files in nova * disk/api.py: resize2fs fails silently + adds tests * remove 2 unused function in test\_volumes.py * Update log message to support translations * PCI address should be uniform * Remove flavor-disabled related policy rules for v3 api * Remove get\_all\_networks from nova.network.rpcapi * Remove get\_network from nova.network.rpcapi * Update nova.network to use DNSDomain object * Remove some dead dnsdomain code * Add DNSDomain object * Add db.dnsdomain\_get\_all() method * Update linux\_net to use VirtualInterface * Update nova\_ipam\_lib to use VirtualInterface * libvirt: Review of the code to use module units * Update network.manager to use VirtualInterface * Imported Translations from Transifex * Updated from global requirements * Define "supported\_instances" for fake compute * Remove get\_vif\_by\_mac\_address from network rpcapi * Remove unused method from network rpcapi * Allow delete when InstanceInfoCache entry is missing * libvirt: Fix root disk leak in live mig * Additional check for qemu-nbd hang * Correct host managers free disk calculation * Correct the state for PAUSED instances on reboot * XenAPI: Use get\_VALUE in preference to get\_record()['VALUE'] * XenAPI: Speedup get\_vhd\_parent\_uuid * XenAPI: Report the CPU details correctly * XenAPI: Tidy calls to get\_all\_ref\_and\_rec * XenAPI: get\_info was very expensive * Fix bug with not implemented virConnect.registerCloseCallback * Make test\_poll\_volume\_usage\_with\_data more reliable * Re-write sqlite BigInteger mapping test * Small edits on help strings * Make floating\_ip\_bulk\_destroy deallocate quota if not auto\_assigned * Sync processutils from oslo-incubator * Create common method for MTU treatment * Move fake\_network config option to linux\_net * libvirt: move unnecesary comment * Sync log.py from oslo-incubator * hyperv: Retry after WMI query fails to find dev * vmwareapi:remove unused variables in volumeops * Fix docstring in libvirt.driver.LibvirtDriver.get\_instance\_disk\_info() * Hide VIR\_CONNECT\_BASELINE\_CPU\_EXPAND\_FEATURES where needed * Make test\_different\_fname\_concurrency less racy * VMware: improve exception logging in driver.py 2014.1.b2 --------- * Add instance faults during live\_migrate errors * VMware: use .get() to access 'summary.accessible' * Nova Docker driver must remove network namespace * Added a new scheduler filter for metrics * Sync module units from oslo * Join pci\_devices for servers API * VMware: fix missing datastore regex with ESX driver * Fix the flavor\_ref type of unit tests * Sync unhandled exception logging change from Oslo * Fix race conditions between imagebackend and imagecache * Add explicit discussion of dependencies to README.rst * Add host and details column to instance\_actions\_events table * Join pci\_devices when getting all servers in API * Add sort() method to ObjectListBase * Add VirtualInterface object * VMware: Fix incorrect comment indentation * vmwareapi: simple refactor of config drive tests * Fix multi availability zone issue part 2 * Make exception message more friendly * disable debug in eventlet.wsgi server * Alphabetize core list for V3 API plugins * Ensure MTU is set when the OVS vif driver is used * remove redundant \_\_init\_\_() overwriting when getting ExtensionResources * Fix bug for neutron network-name * Fix rbd backend not working for none admin ceph user * Set objects indirection API in network service * Use oslo.rootwrap library instead of local copy * Remove admin auth when getting the list of Neutron API extensions * Fix the test parameter order for v3 evacuate test * Add API schema for v3 evacuate API * Remove unused code * Take a vm out of SNAPSHOTTING after Glance error * Corrected typo in metrics * libvirt: handle exception while get vcpu info * Fixed incorrect test case of test\_server\_metadata.py * Add API schema for v3 rescue API * Support preserve\_ephemeral in baremetal * Show bm deploy how to preserve ephemeral content * Add preserve\_ephemeral option to rebuild * Fix string formatting of exception.NoUniqueMatch message * docstring fix * xenapi: stop server destroy on live\_migrate errors * Ensure that exception raised in neutron are handled correctly * Fix updating device names when defaulting * libvirt: Fix confusing use of mox.StubOutWithMock * Sync request\_id middleware for nova * Calculate default security group into quota usage * Allow run\_image\_cache\_manager\_pass to hit db slave * Consolidate the blockdev related filters * VMware: upload images to temporary directory * Refactor CIDR field to use netaddr.IPNetwork * Make nova-network use Instance objects * Make nova-network use Service object * Allow \_check\_instance\_build\_time to hit db slave * Set objects indirection API in metadata service * libvirt: Configuration element for sVirt support * VMware: unnecessary session reconnection * Add API schema for v3 multinic API * API schema for v3 console\_output API * Workers verification for WSGI service * Remove unused dict BYTE\_MULTIPLIERS * Optimize libvirt live migration workflow at source * libvirt, fix test tpool\_execute\_calls\_libvirt * Using staticmethod to mock LibvirtDriver.\_supports\_direct\_io * Use the mangle checksum fill rule regardless to the multi\_host * Enabled Libvirt driver to read 'os\_command\_line' from image properties * Update nova.conf.sample * Capture exception for JSON load in virt.storage\_users * Ensure that headers are utf8, not unicode * Attribute snapshot not defined in libvirt/config.py * ec2 api should check 'max\_count'&'min\_count' para * nova docker driver cannot find cgroup in /proc/mounts on RHEL * VMware: fix rescue with disks are not hot-addable * VMware: bug fix for VM rescue when config drive is configured * Define common API parameter types * Fixed a problem in iSCSI multipath * Fix unhandled InvalidServerState exceptions in server start/stop * Cells rebuild regression fix * Fix potential fd leak * Rename instance\_type to flavor in libvirt virt driver tests * Rename instance\_type to flavor in vmware virt driver tests * Improve error message in services API * Make image props filter handle old vm\_modes * XenAPI: Use direct IO for writing config drive * Avoid unnecessary use of rootwrap for some network commands * Remove unused copyright from nova.api.\_\_init\_\_ * replace type() to isinstance() in nova * Make availability\_zone optional in create for aggregates * libvirt: Fix infinite loop waiting for block job * baremetal: stop deployment if block devices are not available * Cleanup 'deleting' instances on restart * Ignore duplicate delete requests * Let drivers override default rebuild() behaviour * Enable compute\_node\_update to tolerate deadlocks * xenapi: resize up ephemeral disks * xenapi: refactor generate\_ephemeral * xenapi: refactor resize\_up\_root\_vdi * Abstract add\_timestamp out of ComputeDriverCPUMonitor class * Revert "Whitelist external netaddr requirement" * The private method \_text\_node should be used as function * Add finer granularity to host aggregate APIs * Remove unused import * Adds new method nova.utils.get\_hash\_str * Make nova/quota use keypair objects * VMware: update test file names * Ensure instance action event list in order * Docker Driver doesn't respect CPU limit * libvirt: stop overwriting LibvirtConfigCPU in get\_host\_capabilities * Cleanup the flake8 section of tox.ini * Use the full string for localisation * Don't deallocate/reallocate networks on reschedules * Cleanup object usage in the rebuild path * Fix test case with wrong parameter in test\_quota\_classes * Remove unused variables in imagebackend.py * Remove unused code in test\_attach\_interfaces.py * Whitelist external netaddr requirement * Better exception handling for deletes during build * Translate the snapshot\_pending state for old instances * Prevent Instance.refresh() from returning a new info cache * Extends V3 os-hypervisor api for pci support * Sync config generator from oslo-incubator * Imported Translations from Transifex * Remove uneeded dhcp\_opts initialization * Update class/function name for test\_extended\_availability\_zone.py * Allow deleting instances while uuid lock is held * xenapi: add support for vcpu\_pin\_set * xenapi: more info when assert\_can\_migrate fails * fix ips to 'ips' in APIRouter * Hyper-V:Preserve config drive image after the instance is resized * fix log message in APIRouter * VMware: use session.call\_method to invoke api's * Rename instance\_type to flavor in hyper-v virt driver * Rename instance\_type to flavor in xenapi virt driver * Compact pre-Icehouse database migrations <= 180 * Change when exists notification is sent for rescue * Revert change of default FS from ext3 to etx4 * Convert nova.compute.manager's \_spawn to objects * Add alias as prefix for flavor\_rxtx v3 * Remove unused code in nova/api/ec2/\_\_init\_\_.py * Remove unused import * VMware: improve connection issue diagnostic * Fixes messages logged on Glance plugin retries * Aggregate: Hosts isolation based on image properties * Fix for qemu-nbd hang * Return policy error, not generic error * Fix lxc rootfs attached two devices in some action * Removes disk-config extension from v3 api * Fix typo'ed deprecated flag names in libvirt.imagebackend * Disable libguestfs' default atexit handlers * Add API schema for v3 extended\_volumes API * Catch InstanceIsLocked exception on server actions * Fix inconsistent "image" value on \_get\_image() * Add API schema for v3 keypairs API * Add API schema for v3 flavor\_access API * Add API schema for v3 agents API * Add API schema for v3 admin\_password API * Adds a PREPARED state after baremetal node power on * Make scheduler rpcapi use object serializer * Update log message when remove pci device * Add unit test for ListOfStrings field in object models * Sync oslo db.sqlalchemy.utils to nova * Remove duplicated test * Fixing availability-zone not take effect error * Fix image cache periodic task concurrent access bug * Fix interprocess locks for run\_tests.sh * lxc: Fix a bug of baselineCPU parse failure * platform independence for test\_virt unit tests * Imagecache: fix docstring * libvirt: Set "Disabled Reason" to None when enable nova compute * Change log from ERROR to WARNING when instance absent * VMware: clean up unnecessary help message of options * Don't use deprecated module commands * Add apache2 license header to appropriate files for enabling H102 * XenAPI: Allow use of clone\_vdi on all SR types * Remove unused variables in test\_conductor.py * Do not use contextlib.nested if only mock one function * Remove update\_service\_capabilities from nova * Adds user\_data extension to nova.api.v3.extensions * Add wsgiref to requirements.txt * pass the empty body into the controller * Imported Translations from Transifex * Revert recent change to ComputeNode * sync oslo service to fix SIGHUP handling * Fix parameter checking about quota update api * Spelling fix resouce=>resource * Change default ephemeral FS to ext4 * When inject admin password, no need to generate temp file * Make \_change\_index\_columns use existing utility methods * Fix interprocess locks when running unit-tests * Cleanup object usage in the delete path * Change RPC post\_live\_migration\_at\_destination from call to cast * Pass rbd\_user id and conf path as part of RBD URI for qemu-img * Allow some instance polling periodic tasks to hit db slave * Sync timeutils from oslo-incubator * Catch NotImplementedError for vnc in the api * List NotImplementedError as a client exception for vnc * remove vmwareapi.vmops.get\_console\_output() * Object-ify build\_and\_run\_instance * Retry on deadlock in instance\_metadata\_update * use 'os\_type' in ephemeral filename only if mkfs defined * ValueError should use '%' instead of ',' * Setting the xen vm device id on vm record * Rename instance\_type to flavor in nova.utils and nova.compute.utils * Rename instance\_type to flavor in nova.cloudpipe * Serialize instance object while building request\_spec * Make rebuild use Instance objects * Remove deprecated config aliases * Changed error message to match usage * Add configurable 120s timeout ovs-vsctl calls * Clarify rebuild\_instance's recreate parameter * Clean swap\_volume rollback, on libvirt exception * Image cache: move all of the variables to a common place * baremetal: set capabilites explicitly * Remove docker's unsupported capabilities * Set a sane default for state\_path * Fix incorrect exception on os-migrateLive * barematal: Cleanup the calls to assertEqual * Refactor time conversion helper function for objects in db api * Fixes ConfigDrive bug on Windows * Remove smoketests * Revert graceful shutdown patch * Handle InstanceUserDataMalformed in create server v2 api * Enable remote debugging for nova * Fix race in unit tests, which can cause gate job to fail * Add boolean convertor to cells sync\_instances API * Initialize iptables rules on initialization of MetadataManager * vmwareapi: raise on get\_console\_output * hyperv: remove get\_console\_output method * List NotImplementedError as client exception * api: handle NotImplementedError for console output * Make Serializer/Conductor able to backlevel objects * Make ec2 use Flavor object * Move restore and rebuild operations to Flavor objects * Add flavor access methods to Instance object * Rename instance\_type to flavor in nova.network tree * Stop, Rescue, and Delete should give guest a chance to shutdown * Remove middleware ratelimits from v3 api * Remove unused variables in neutron api interface and neutron tests * Remove unneeded call to conductor in network interface * Return client tokens in EC2 DescribeInstances * Require List objects to be able to backlevel their contents * Make Instance object compatible with older compute nodes * Deprecate/remove scheduler select\_hosts() * Pass Instance object to console output virt driver api * Send Instance object to validate\_console\_port * Pass Instance object to compute vnc rpc api * Update vnc virt driver api to take Instance object * Add error as not-in-progress migration status * Don't replace instance.info\_cache on each save * Add boolean convertors for migrate\_live API * VMWare: bug fix for Vim exception handling * XenAPI: Synchronize on all VBD plug/unplug per VM * Add IPAddress field type in object models * Fixes errors on start/stop unittest * Use a dictionary to eliminate the inner loop in \_choose\_host\_filters() * Correct uses of :params in docstrings * Delete iSCSI devices after volume detached * Prevent spoofing instance\_id from neutron to nova * Replaces call to lvs with blockdev * Refactor PXE DHCP Option support * Normalize the weights instead of using raw values * Compact pre-Icehouse database migrations <= 170 * XenAPI: Speedup host\_ref cannot change - get it once * Updated from global requirements * Rename instance\_type to flavor in test\_utils and nova.tests.utils * Rename instance\_type to flavor in baremetal virt driver * VMware: fix bug when more than one datacenter exists * Sync oslo lockutils for "fix lockutils.lock() to make it thread-safe" * Move calls to os.path.exists() in libvirt imagebackend * Ensure api\_paste\_conf is an absolute path * Log exception in \_heal\_instance\_info\_cache * Raise better exception if duplicate security groups * Remove the largely obsolete basepath helper * libvirt: Custom disk\_bus setting is being lost on hard\_reboot * Libvirt: Making the video driver element configurable * Give migrations tests more time to run * Remove the api\_thread\_pool option from libvirt driver * baremetal: volume driver refactoring and tests * Sync middleware audit, base, and notifier from oslo * Get test\_openAuth\_can\_refuse\_None\_uri to cleanup after itself * Hide injected\_file related quotas for V3 API * Make obj\_from\_primitive() preserve version information * Cells: check states on resize/rebuild updates * Make flavor\_access extension use Flavor object * libvirt: add a test to guard against set\_host\_enabled raising an error * Fix UnboundLocalError in libvirt.driver.\_close\_callback * Quota violations should not cause a stacktrace in the logs * Enforce permissions in snapshots temporary dir * Sync rpc fix from oslo-incubator * Fix changes-since filter for list-servers API * Make it possible to override test timeout value * Imported Translations from Transifex * libvirt: consider minimal I/O size when selecting cache type * Setup destination disk from virt\_disk\_size * Add Flavor object * Add atomic flavor access creation * Add extra\_resources field to compute\_nodes table * Recommend the right call instead of datetime.now() * libvirt: remove unused imports from fake libvirt utils * VMware: fix disk extend bug when no space on datastore * Fix monkey\_patch docstring bug * Change unit test for availability\_zones.reset\_cache * Make compute support monitors and store metrics * Added a new scheduler metrics weight plugin * LXC: Image device should be reset in mount() and teardown() * Add shutdown option to cleanup running periodic * xenapi: Update VM memory overhead estimation * Misc typos in nova * Add default arguments for Connection class * Update Instance from database after destroy * Libvirt: Adding video device to instances * Configuration element for describing video drivers * Don't log stacktrace for UnexpectedTaskStateError * Extends V3 servers api for pci support 2014.1.b1 --------- * LOG.warn() and LOG.error() should support translation * Minor change for typo from patch 80b11279b * network\_device\_mtu should be IntOpt * Fix HTTP response code for network APIs and improve error message * Use password masking utility provided in Oslo * Sync log.py from Oslo-incubator * xenapi: stop hang during glance download * Clean up test cases for compute.manager.\_check\_instance\_build\_time * Recover from IMAGE-\* state on compute manager start-up * Document when config options were deprecated * VMware: Fix unhandled session failure issues * Use utils method when getting instance metadata and system metadata * Add status mapping for shutoff instance when resize * Fix docstring on SnapshotController * Fix trivial typo 'descirption' * Compact pre-Icehouse database migrations <= 160 * Compact pre-Icehouse database migrations <= 150 * Compact pre-Icehouse database migrations <= 140 * Remove redundant body validation for createBackup * Change evacuate test hostnames to preferable ones * Change conductor live migrate task to use select\_destinations() * Ensure proper notifications are sent when build finishes * Periodic task \_heal\_instance\_info\_cache can now use slave db * docker: access system\_metadata as a dict * Don't overwrite marker when checking if it exists * There is no need to set VM status to ERROR on a failed migration * DB migration 209: Clean up child rows as well * Cleanup ec2/metadata/osapi address/port listen config option help * Recover from build state on compute manager start-up * Comply with new hacking 0.8 release * Correct network\_device\_mtu help string * Remove last of AssertEquals * Fix Neutron Authentication for Metadata Service * Update help for osapi\_compute\_listen\_port * libvirt: host update disable/enable report HTTP 400 * Catch InstanceIsLocked exception on server actions * VMware: enable driver to work with postgres database * Make test\_evacuate from compute API DRYer * Fix testcase config option imports * Fix "in" comparisons with one element tuples * Remove \_security\_group\_chain\_name from nova/virt/firewall.py * Remove duplicate setting of os\_type in libvirt config builder * Fix logic in LibvirtConnTestCase.\_check\_xml\_and\_uri * Remove unused flag 'host\_state\_interval' * Make object compat work with more positional args * Fix LibvirtGenericVIFDriver.get\_config() for quota * Fix a tiny double quote matching in field obj model * Move flags in libvirt's volume to the libvirt group * Check Neutron port quota during validate\_networks in API * Failure during termination should always leave state as Error(Deleting) * Remove duplicate FlavorNotFound exception handling in server create API * Make check more pythonic * Make sure report\_interval is less than service\_down\_time * Set is\_public to False by default for volume backed snapshots * Delete instance faults when deleting instance * Pass Instance object to spice compute rpc api * Pass Instance object to get\_spice\_console virt api * Remove update\_service\_capabilities from scheduler rpc api * Remove SchedulerDependentManager * powervm: remove powervm virt driver from nova * libvirt: Provide a port field for GlusterFS network disks * Add API input validation framework * Remove duplicate BuildAbortException block * Remove compute 2.x rpc api * Add v3 of compute rpc API * Fix incorrect argument position in DbQuotaDriver * Change ConductorManager to self.db when record cold\_migrate event * instance state will be stuck in unshelving when unshelve fails * Fix some i18n issue in nova/compute/manager.py * Don't gate on E125 * Supplement 'os-migrateLive' in actions list * Corrected typo in host\_manager * Fix a lazy-load exception in security\_group\_update() * fakevirt: return hypervisor\_version as an int instead of a string * Bump to sqlalchemy-migrate 0.8.2 * ComputeFilter shouldn't generate a warning for disabled hosts * Remove cert 1.X rpc api * Add V2 rpc api for cert * Remove console 1.X rpc api * Do not hide exception in update\_instance\_cache\_with\_nw\_info * Wrong handling of Instance expected\_task\_state * XenAPI: Fix caching of images * Extend LibvirtConfigGuest to parse guest cpu element info * Rename instance\_type parameter in migrate\_disk\_and\_power\_off to flavor * convert min\_count and max\_count to type int in nova v3 api * Add decorator expected\_errors for flavors\_extraspecs v3 * Remove nullable=True in models.py which is set by default * baremetal: Make api validate mac address * Use 204 instead of 202 for delete of keypairs v3 * Fix log message format issue for api * Remove "set()" from CoreAPIMissing exception * Move flag in libvirt's vif to the libvirt group * Move flag in libvirt's utils to the libvirt group * Move flags in libvirt's imagebackend to the libvirt group * Extend the scheduler HostState for metrics from compute\_node * docker: return hypervisor\_version as an int rather than a string * Sync Log Levels from OSLO * Removes check CONF.dhcp\_options\_enabled from nova * Improved debug ability for log message of cold migration * Adjust the order of notification for shelve instance * Add FloatField for objects * XenAPI: Fix config section usage * Fix performance of Server List with Neutron for Admins * Add context as parameter for two libvirt APIs * Add context as parameter for resume * xenapi: move session into new client module * xenapi: stop key\_init timeout failing set password * xenapi: workaround vbd.plug race * Address infinite loop in nova compute when getting network info * Use of logging in native thread causes deadlock connecting to libvirtd * Add v3 api samples for shelve * Imported Translations from Transifex * libvirt: Fix log message when disable/enable a host * Fix missing format specifier in ImagePropertiesFilter log message * Sync the DB2 communication error code change from olso * baremetal: refactor out powervm dependency * handle migration errors * Make compute manager \_init\_instance use native objects * Fix for reading the xenapi\_device\_id from image metadata * Check if reboot request type is None * Use model\_query() instead of session.query in db.instance\_destroy * Fix up spelling mistake * Periodic task \_poll\_unconfirmed\_resizes can now use slave db * Include image block device maps in info * Sync local from oslo * objects: declare some methods as static * Handle UnicodeEncodeError in validate\_integer * Remove traces of V3 personality extension from api samples * Removes os-personalities extension from the V3 API * VMware: add support for VM diagnostics * Remove useless api sample template files for flavor-rxtx v3 * Fix libvirt evacuate instance on shared storage fails * Fixes get\_vm\_storage\_paths issue for Hyper-V V2 API * Clean up how test env variables are parsed * Add missing argument max\_size in libvirt driver * VMware: Always upload a snapshot as a preallocated disk * Fix empty selector XML bug * Libvirt:Instance resize confirm issue against NFS * Add V2 rpc api for console * Fix sample parameter of agent API * VMware: fix snapshot failure when host in maintenance mode * Clean up unused variables * Add a driver method to toggle instance booting * Fix cells instance\_create extra kwarg * handle empty network info in instance cache * Remove deprecated instance\_type alias from nova-manage * xenapi: kernel and ramdisk missing after live-migrate * Remove V2 API version of coverage extensions * Remove V3 API version of coverage extension * Update openstack/common/periodic\_task * Use 201 instead of 200 for action create of flavor-manage v3 * Enforce metadata string type on key/value pairs * Fixes RequestContext initialization failure * Move flags in libvirt's imagecache to the libvirt group * Move base\_dir\_name option to somewhere more central * Move some libvirt specific flags into a group * Removed unused instance object helper function * Update openstack/common/lockutils * Rename InstanceType exceptions to Flavor * Added monitor (e.g. CPU) to monitor and collect data * Conditionalise automatic enabling of disabled host * Users with admin role in Nova should not re-auth with Neutron * Use 400 instead of 422 for invalid input in v3 servers core * Fix limits v3 follow API v3 rules * Remove used\_limits extension from the V3 API * Remove reduntant call to update\_instance\_info\_cache * Add flavor-extra-specs to core for V3 API * Add flavor-access to core for V3 API * Remove unused libvirt\_ovs\_bridge flag * Fix AttributeError(s) from get\_v4/6\_ips\_by\_interface * Raising exception for invalid floating\_ip's ID * libvirt: Allow delete to complete when a volume disconnect fails * replace assertNotEquals with assertNotEqual * Add V3 api samples for access\_ips * Add v3 api samples for scheduler-hints * Add v3 api samples for availability\_zone * Add V3 API sample for server's actions * Cache Neutron Client for Admin Scenarios * More instance\_type -> flavor renames in db.api * Cache compute node info in Hypervisor api * Reverse the quota reservation in revert\_resize * Rename virtapi.instance\_type\_get to flavor\_get * Xenapi: Allow windows builds with xentools 6.1 and 6.2 * Make baremetal support metadata for ephemeral block-device-mapping * Make baremetal\_deploy\_helper understand ephemeral disks * Removed unused methods from db.api * Fix type mismatch errors in NetworkTestCase * VMware: Detach volume should not delete vmdk * xenapi: Fix agent update message format * xenapi: Fix regression issue in agent update * Shrink the exception handling range * Moved quota headroom calculations into quota\_reserve * Remove dup of LibvirtISCSIVolumeDriver in LibvirtISERVolumeDriver * Replace assertEquals with assertEqual - tests/etc * libvirt: pass instance to a log() call in the standard way * xenapi: Move settings to their own config section * domainEventRegisterAny called too often * Allow configuring the wsgi pool size * driver tests (loose ends): replace assertEquals with assertEqual * baremetal: replace assertEquals with assertEqual * image tests: replace assertEquals with assertEqual * virt root tests: replace assertEquals with assertEqual * Remove unnecessary steps for cold snapshots * baremetal: Make volume driver use a correct source device * Update quota-class-set/quota-set throw 500 error * Add log\_handler to implement the publish\_errors config option * Imported Translations from Transifex * Enable non-ascii characters in flavor names * Move docker specific options into a group * Check return code of command instead of checking stderr * Added tests for get\_disk\_bus\_for\_disk\_dev function * Checking existence of index before dropping * add hints to api\_samples documentation * xenapi: check for IP address in live migration pre check * Remove live\_snapshot plumbing * Remove unused local variable in test\_compute * Make v3 admin\_password parameters consistent * Flavor name should not contain only white spaces * fix a typo error in test\_libvirt\_vif.py * Remove unused local variables in test case * Rename \_get\_vm\_state to \_get\_vm\_status * Ensure deleted instances' status is always DELETED * Let resource\_tracker report right migration status * Imported Translations from Transifex * nit: fix indentation * Always pass context to compute driver destroy() * Imported Translations from Transifex * db tests: replace assertEquals with assertEqual * compute tests: replace assertEquals with assertEqual * Catch exception while building due to instance being deleted * Refactor UnexpectedTaskStateError for handling of deleting instances * Parted 'invalid option' in XenAPI driver * Specify DB URL on command-line for schema\_diff.py * Fix \`NoopQuotaDriver.get\_(project|user)\_quotas\` format * Send delete.end with latest instance state * Add missing fields in DriverBlockDevice * Fix the boto version comparison * Add test for class InsertFromSelect * Process image BDM earlier to avoid duplicates * Clean BDM when snapshoting volume-backed instances * Remove superflous 'instances' joinedload * Fix OLE error for HyperV * Make the vmware pause/unpause unit tests actually test something * Fixes the destroy() method for the Docker virt driver * xenapi: converting XenAPIVolumeTestCase to NoDB * Move \`diff\_dict\` to compute API * Add compatibility for InstanceMetadata and primitives * Issue brctl/delif only if the bridge exists * ensure we don't boot oversized images * Add V3 API samples for config-drive * Remove duplicated test * Add notification for host operation * Sync log from oslo * Replace assertEquals with assertEqual - tests/scheduler * Make non-admin users can unshelve a server * Fix interface-attach removes existing interfaces from db * Correct exception handling * Utilizes assertIsNone and assertIsNotNone - tests/etc * Use elevated context in resource\_tracker.instance\_claim * Add updates and notifications to build\_and\_run\_instance * Add network handling to build\_and\_run\_instance * Make unshelve use new style BDM * Make \_get\_instance\_nw\_info() use Instance object * Convert evacuation code to use objects * Deprecate two security\_group-related methods from conductor * Make metadata server use objects for Instance and Security Groups * Replace assertEquals with assertEqual - tests/api * Remove security\_group-related methods from VirtAPI * Make virt/firewall use objects for Security Groups and Rules * Drop auth\_token configs for api-paste.ini * Add auth\_token settings to nova.conf.sample * Use \_get\_server\_admin\_password() * Pass volume\_api to get\_encryption\_metadata * Comments for db.api.compute\_node\_\*() methods * Fix migration 185 to work with old fkey names * Adds V3 API samples for user-data * Enforce compute:update policy in V3 API * tenant\_id implies all\_tenants for servers list in V3 API * Move get\_all\_tenants policy enforcement to API * all\_tenants=0 should not return instances from all tenants * Utilizes assertIsNone and assertIsNotNone - tests/virt * xenapi: workaround for failing vbd detach * xenapi: strip base\_mirror after live-migrate * xenapi: refactor get\_all\_vdis\_in\_sr * Remove unused expected\_sub\_attrs * Remove useless variable from libvirt/driver.py * Add a metadata type validation when creating vm * Update schema\_diff.py to use 'postgresql' URLs * Disable nova-compute on libvirt connectivity exceptions * Make InstanceInfoCache load base attributes * Add SecurityGroupRule object * Add ephemeral\_mb record to bm\_nodes * Stylistic improvement of models.ComputeNodeStat * clean up numeric expressions in tests * replaced e.message with unicode(e) * Add DeleteFromSelect to avoid database's limit * Imported Translations from Transifex * Utilizes assertIsNone and assertIsNotNone - tests/api * Include name/level in unit test log messages * Remove instance\_type\* proxy methods from nova.db.api * Add InstanceList.get\_by\_security\_group() * Make security\_group\_rule\_get\_by\_security\_group() honor columns * Claim IPv6 is unsupported if no interface with IPv6 configured * Pass thru credentials to allow re-authentication * network tests: replace assertEquals with assertEqual * Nova-all: Replace basestring by six for python3 compatability * clean up numeric expressions with byte constants * Adds upper bound checking for flavor create parameters * Remove fake\_vm\_ref from test\_vmwareapi.py * xen tests: replace assertEquals with assertEqual * Fix tests to work with mysql+postgres concurrently * Enable extension access\_ips for v3 API * Correct update extension point's check\_func for v3 server's controller * Updates the documentation for nova unit tests * Remove consoleauth 1.X rpc api * consoleauth: retain havana rpc client compat * Pull system\_metadata for notifications on instance.save() * Allow \_sync\_power\_states periodic task to hit slave DB * Fix power manager hangs while executing ipmitool * Update my mailmap * Stored metrics into compute\_nodes as a json dictionary * Bad except clauses order causes wrong text in http response * Add nova.db.migration.db\_initial\_version() * Fix consoleauth check\_token for rpcapi v2 * Nova db/api.py docstring cleanups.. * Adds XML namespace example for disk config extension * Remove multipath mapping device descriptor * VMware: fix VM resize bug * VMware: fix bug for reporting instance UUID's * Remove extra space in tox.ini * Fix migrate w/ cells * Add tests for compute (child) cell * Call baselineCPU for full feature list * Change testing of same flavor resize * Fix bad typo in cloudpipe.py * Fix compute\_api tests for migrate * Replace basestring by six for python3 compatability * Add flavor-manage to core for V3 API * Refactor unit tests code for python3 compatability * make libvirt driver get\_connection thread-safe * Remove duplicates from exceptions list * Apply six for metaclass * Add byte unit constants * Add block device handling to build\_and\_run\_instance * Reply with a meaningful exception, when libvirt connection is broken * Fix getting nwinfo for Instance obj * Make cells info\_cache updates more tolerant * Raise an error if module import fails * Drop RPC securemessage.py and crypto module * Remove deprecated libvirt VIF driver code * nova.exception does not have a ProcessExecutionError * Fix setting backdoor port in service start * Sync lockutils from oslo * Fix wrong description when updating quotas * Expose additional status in baremetal API extension * migrate server doesn't raise correct exception * Make security\_group\_get() more flexible about joins * Make Object FieldType take an object name instead of a class * Hyper-v: Change the hyper-v error log for debug when resize failed * Adds V3 API samples for the disk-config extension * Utilizes assertIn - tests/etc * Fix all scripts to honor the enabled\_ssl\_apis flag * Updated from global requirements * Fix i18n issue for nova/compute/manager.py * Change tab to blank space in hypervisors-detail-resp * Fixing ephemeral disk creation * Merging two mkfs commands * xenapi: ephemeral disk partition should fill disk * Fix the ConsolesController class doc string * xenapi: Speeding up the easy cases of test\_xenapi * xenapi: Speeding up more tests by switching to NoDB * Remove .pyc files before generating sample conf * xenapi: migrate multiple ephemeral disks * Fail quickly if file injection for boot volume * Add obj\_make\_compatible() * Updated from global requirements * Make cells 'flavorid' for resizes * Fixes unicode issue in the Hyper-V driver * Add missing ' to extra\_specs debug message * VMware: Fix ValueError unsupported format character in log message * graceful-shutdown: add graceful shutdown into compute * remove unused network module from certificates api extension * Sync fixture module from oslo * Fixes Invalid tag name error when using k:v tagname * Fix tests for migration 227 to check sqlite * Adds V3 API samples for console output * Add V2 rpc api for consoleauth * Update version aliases for rpc version control * Improve object instantiation syntax in some tests * A nicer calling convention for object instantiation * Updates OpenStack Style Commandments link * Updated from global requirements * Adding support for multiple hypervisor versions * Manage None value for the 'os\_type' property * Add CIDR field type * Validate parameters of agent API * Adding Read-Only volume attaching support to Nova * Update timeutils.py from oslo * Fix docstring related to create\_backup API * powervm tests: replace assertEquals with assertEqual * Add V3 API sample for admin-password * Remove duplicated test cases * Add extension access\_ips for v3 API * Ensure migration 209 works with NULL fkey values * Cells: Fix instance deletes * Uses oslo.imageutils * Add testr concurrency option for run\_tests.sh * Fix the image name of a shelved server * xenapi: test\_driver should use NoDBTestCase * xenapi: Speedup vm\_util and vmops tests * xenapi: speedup test\_wait\_for\_instance\_to\_start * Remove xenapi rpm building code * Fixes datastore selection bug * Fixes Hyper-V snapshot spawning issue * Make SecurityGroup receive context * Fix DB API mismatch with sqlalchemy API * Remove aggregate metadata methods from conductor and virtapi * Make XenAPI use Aggregate object * libvirt: add missing i18n support * Adds V3 API samples for attach-interfaces * Make aggregate methods use new-world objects * Add missing key attribute to AggregateList.get\_by\_host() * Fix i18n issue for nova/virt/baremetal/virtual\_power\_driver.py * Fix scheduler rpcapi deprecated method comment * Send notifications on keypair create/delete * Use \`versionutils.is\_compatible\` for Dom0 plugin * Use \`versionutils.is\_compatible\` for Nova Objects * Improve logging messages in libvirt driver * xenapi: stop agent errors stopping build * Fix NovaObject versioning attribute usage * xenapi: removes sleep after final upload retry * xenapi: stop using get\_all\_vdis\_in\_sr in spawn * populate local-ipv4 address in config drive * Harden version checking for boto * Handle MarkerNotFound better in Flavor API * Sanitize passwords when logging payload in wsgi * Remove unnecessary "LOG.error()" statement * xenapi: simplify \_migrate\_disk\_resizing\_up * xenapi: revert on \_migrate\_disk\_resizing\_up error * xenapi: make \_migrate\_disk\_resizing\_up use @step * libvirt tests: replace assertEquals with assertEqual * Use the oslo fixture module * Port server actions unittests to V3 API Part 2 * Remove unused method \_get\_res\_pool\_ref from VMware * Imported Translations from Transifex * Check for None when cleaning PCI dev usage * Fix vmwareapi driver get\_diagnostics calls * Remove instance\_info\_cache\_update() from conductor * compute api should throw exception if soft reboot invalid state VM * Make a note about Object deepcopy helper * Avoid caching quota.QUOTAS in Quotas object * Remove transitional callable field interface * Make the base object infrastructure use Fields * Migrate some tests that were using callable fields * Migrate NovaPersistentObject and ObjectListBase to Fields * Migrate Instance object to Fields * Utilizes assertIn - tests/api/etc * Utilizes assertIn - tests/virt * Utilizes assertIn - tests/api/contrib * Utilizes assertIn - tests/api/v3 * Make scheduler disk\_filter take swap into account * Add variable to expand for format string * Make quota sets update type handling a bit safer * Add test\_instance\_get\_active\_by\_window\_joined * Fixes error on live-migration of volume-backed vm * Migrate PciDevice object to Fields * Migrate InstanceInfoCache object to Fields * Migrate InstanceFault object to Fields * Migrate Service object to Fields * Migrate ComputeNode object to Fields * Migrate Quotas object to Fields * Migrate InstanceGroup object to Fields * Migrate InstanceAction and InstanceActionEvent objects to Fields * Move exception definitions out of db api * Remove unused scheduler rpcapi from compute api * Libvirt: disallow live-mig for volume-backed with local disk * xeanpi: pass network\_info to generate\_configdrive * Replace incorrect Null checking to return correctly * Fix nova DB 215 migration script logic error * Xenapi: set hostname when performing a network reset * Fix "resource" length in project\_user\_quotas table * Migrate SecurityGroup object to Fields * Migrate Migration object to Fields * VMware: fix regression attaching iscsi cinder volumes * Remove whitespace from cfg options * cleanup after boto 2.14 fix * Add boto special casing for param changes in 2.14 * xenapi: simplify PV vs HVM selection logic * fix missing host when unshelving * Fix a typo of tabstop * Fix error message of os-cells sync\_instances api * Log which filter failed when on log level INFO * Migrate KeyPair object to Fields * Migrate Aggregate object to Fields * Make field object support transitional call-based interface * Add Field model and tests * Fix conductor's object change detection * Remove obsolete redhat-eventlet.patch * Move is\_volume\_backed\_instance to new style BDM * Add a get\_root\_bdm utility function * Libvirt: allow more than one boot device * Libvirt: make boot dev a list in GuestConfig * Remove compute\_api\_class config option * Libvirt: add boot\_index to block device info dicts * Fixes Hyper-V issue with VHD file format * Update log message for add\_host\_to\_aggregate * Correct use of ConfigFilesNotFoundError * hyperv tests: replace assertEquals with assertEqual * Utilizes assertNotIn * VMware tests: replace assertEquals with assertEqual * Fix incorrect root partition size and compatible volume name * Imported Translations from Transifex * Utilize assertIsInstance * Fix typos in nova/api code * Make \`update\_test\` compatible with nose * Add a custom iboot power driver for nova bm * Fix FK violation errors in InstanceActionTestCase * Fix test\_shadow\_tables() on PostgreSQL/MySQL * Fix PCI devices DB API tests * Fix DB API tests depending on the order of rows * Use print function rather than print statement * Update default for running\_deleted\_instance\_action * Drop unused BM start\_console/stop\_console methods * VMware: Network fallback in case specified one not found * baremetal: Add missing method to volume driver * baremetal: Use network API to get fixed IPs * Replace decprecated method aliases in tests * catch exception in start and stop server api * Ensure that the netaddr import is in the 3rd party section * Fix status code of server's action confirm\_resize for v3 * Remove duplicated method in test\_compute\_api.py * Create flavor-access for the tenant when creating a private flavor * Fix root disk not be detached after deleting lxc container * fallocate image only when user has write access * Fixes typo in ListTargets CLI in hyperv driver * Fixes typos in nova/db code * Fixes typos in the files in the nova folder * Avoid clobbering {system\_,}metadata dicts passed to instance update * Baremetal: Be more patient with IPMI and BMC * VMware: fix bug with booting from volumes * Fixes typos in nova/compute files * Fixes typos in virt files * Fix docstring for disk\_cachemodes * Plug Vif into Midonet using Neutron port binding * VMware: remove deprecated configuration variable * Fix races in v3 cells extension tests * Add V3 API samples for consoles * Update allowvssprovider in xenstore\_data * Fix races in cells extension tests * Move \`utils.hash\_file\` -> \`imagecache.\_hash\_file\` * Remove \`utils.timefunc\` function * Remove \`utils.total\_seconds\` * Remove \`utils.get\_from\_path\` * Fix divergence in attach\_interfaces extensions * Replace assert\_ with assertTrue * Fixes several misc typos in scheduler code * Fix libvirt test on systems with real iSCSI devices * Reserve 10 migrations for backports * Sync three-part RPC versions support from Oslo * Remove unused dict functions from utils * Avoid mutable default args in \_test\_populate\_filter\_props * XenAPI: Add versioning for plugins * Add Docstring to some scheduler/driver.py methods * Libvirt: default device bus for floppy block devs * Fix filter\_properties of unshelve API * hyperv: Initialize target\_iqn in attach\_volume * Log if a quota\_usages sync updates usage information 2013.2.rc1 ---------- * Open Icehouse development * baremetal: Fix misuse of "instance" parameter of attach/detach\_volume * Fix the wrong params of attach/detach interface for compute driver * Imported Translations from Transifex * Adds missing entry in setup.cfg for V3 API shelve plugin * Avoid spamming conductor logs with object exceptions * Prefix \`utils.get\_root\_helper\` with underscore * Remove \`utils.debug\` * Remove \`utils.last\_octet\` * Remove \`utils.parse\_mailmap\` * Updated from global requirements * Remove unecessary \`get\_boolean\` function * Make Exception.format\_message aware of Messages * Disable lazy gettext * VMware: Check for the propSet attribute's existence before using * VMware: fix bug for invalid data access * Make rbd.libvirt\_info parent class compatible * Host aggregate configuration throws exception * VMware: Handle cases when there are no hosts in cluster * VMWare: Disabling linked clone doesn't cache images * Fixes inconsistency in flavors list with marker * Fix indentation in virt.libvirt.blockinfo module * Update jsonutils.py from oslo * Fix loading instance fault in servers view * Refactor test cases related to instance object * Use system locale for default request language * Update attach interface api to use new network model * Adds V3 API specific urlmap tests * Catch volume errors during local delete * Fix processutils.execute errors on windows * Fixes rescue doesn't honor enable password conf for v3 * VMware: Fix bug for root disk size * Fix incorrect exception raised during evacuate * Full sync of quota\_usages * Fix log format error in lazy-load message * xenapi: reduce impact of errors during SR.scan * Forced scheduling should be logged as Audit not Debug * xenapi: Resize operations could be faster * Resource limits check sometimes enforced for forced scheduling * Skip test if sqlite3 not installed * Add notification for pause/unpause instance * Make LiveMigrateTask use build\_request\_spec() * Ensure image property not set to None in build\_request\_spec() * Make sure periodic task sync\_power\_states continues on error * get\_all\_flavors uses id as key to be unique * fix the an Unexpected API Error issue in flavor API * Adds V3 API samples for srvcs, tenant usage, server\_diagnostics * VMware: Fix SwitchNotFound error when network exists * Fix unicode string values missing in previous patch * Fix stopping instance in sync\_power\_states * Remove deprecated task states * plug\_vif raise NotImplementedError instead of pass * Check instance exists or not when evacuate * xenapi: ignore 500 errors from agent resetnetwork * Add flavor name validation when create flavor * xenapi: enforce filters after live-migration * xenapi: set vcpu cap to ensure weight is applied * Get image metadata in to\_xml for generating xml * Add notification on deleting instance without host * Fix V3 API flavor returning empty string for attributes * Fix v3 server rebuild deserializer checking with wrong access\_ip key * Windows instances require the timezone to be "localtime" * Don't wrap Glance exceptions in NovaExceptions * Update rootwrap with code from oslo * fix typo & grammer in comment 363-364 * Make Instance.refresh() extra careful about recursive loads * Log object lazy-loads * Ensure we don't end up with invalid exceptions again * Fix console db can't load attribute pool * Fix HTTP response for PortNotFound during boot (v3 API) * Fixes assertion bug in test\_cells\_weights.py * Remove \_get\_compute\_info from filter\_scheduler.py * VMware: fix bug for incorrect cluster access * Add V3 API samples for security-groups * Correct lock path for storage-registry-lock * Moved registration of lifcycle events handler in init\_host() * Rebuilding stopped instance should not set terminated\_at * Require oslo.config 1.2.0 final * Removes pre\_live\_migration need for Fixed IPs * Move call to \_default\_block\_device\_names() inside try block * Fix several flake8 issues in the plugins/xenserver code * Fix type is overwritten when UPDATE cell without type specified * Adds v3 API samples for hide server addresses and keypairs * Always filter out multicast from reflection * VMware: fix bug with booting from volume * VMware: enable VNC access without user having to enter password * Remove exceptions.Duplicate * Add v3 API samples for rescue * Added 'page\_size' param to image list * Fix SecurityGroupsOutputTest v3 security group tests * Fixes file mode bits of compute/manager.py * Adds v3 API samples for hosts extension * Only update PCI stats if they are reported from the host * xenapi: Cleanup pluginlib\_nova * Fix Instance object assumptions about joins * Bring up interface when enslaving to a bridge * v3 API samples for servers * xenapi: refactor: move UpdateGlanceImage to common * Imported Translations from Transifex * Fixes modules with wrong file mode bits in virt package * Adds v3 API samples for ips and server\_metadata extensions * Fix V3 API server metadata XML serialization * libvirt: add test case for \_hard\_reboot * Add tests for pre\_live\_migration * Adds V3 API samples for evacuate,ext-az,ext-serv-attrs * Add V3 API samples for ext-status,hypervisor,admin-actions * Code change for regex filter matching * Convert TestCases to NoDBTestCase * VMware: ensure that resource exists prior to accessing * Fixes modules with wrong file mode bits * Fixes test scripts with wrong bitmode * Update sample config generator script * Instance object incorrectly handles None info\_cache * Don't allow pci\_devices/security\_groups to be None * Allow for nested object fields that cannot be None * Object cleanups * Convert TestCases to NoDBTestCase * Convert TestCases to NoDBTestCase * Actually fix info\_cache healing lazy load * Fixes host stats for VMWareVCDriver * libvirt: ignore false exception due to slow NFS on resize-revert * Syncs install\_venv\_common.py from oslo-incubator * Correct deleted\_at value in notification messages * VMwareVCDriver Fix sparse disk copy error on spawn * Remove unused \_instance\_update() method in compute api * Change service id to compute for compute/api.py * XenAPI raise InstanceNotFound in \_get\_vm\_opaque\_ref * Replace OpenStack LLC with OpenStack Foundation * Send notification for any updates to instance objects * Add flag to make baremetal.pxe file injection optional * Force textmode consoles on baremetal * Typo: certicates=>certificates in nova.conf * Remove print statement from test\_quotas that fails H233 check * Fix for os-availability-zone/detail returning 500 * Convert TestCases to NoDBTestCase * Fixes the usage of PowerVMFileTransferFailed class * MultiprocessWSGITest wait for workers to die bug * Prune node stats at compute node delete time * VMware: datastore regex not honoured * VMware: handle exceptions from RetrievePropertiesEx correctly * VMware: Fix volume detach failure * Remove two unused config options in baremetal * Adds API samples and unitests for os-server-usage V3 extension * xenapi: Make rescue safer * Add V3 API samples for quota-sets/class-sets,inst-usage-audit-log * Fix problem with starting Windows 7 instances using VMware Driver * VMware: bug fix for instance deletion with attached volume * Fix migration 201 tests to actually test changes * Don't change the default attach-method * Fix snapshot failure with VMwareVCDriver * Fix quota direct DB access in compute * Add new-world Quota object * Fix use of bare list/dict types in instance\_group object * Fix non-unicode string values on objects * Add missing get\_available\_nodes() refresh arg * Make Instance.Name() not lazy-load things * Add debugging to ComputeCapabilitiesFilter * xenapi: fix pep8 violations in nova plugins * Retry on deadlock in instance\_metadata\_delete * Make virt drivers use a consistent hostname * [VMware] Fix problem transferring files with ipv6 host * VMware: Fix ensure\_vlan\_bridge to work properly with existing DVS * Fix network info injection in pure IPv6 environment * delete a non existent flavor extra spec returns 204 * Don't use ModelBase.save() inside of transaction * send the good binding to neutron after live-migration * Add linked clone related unit tests for VMware Hyper * Ensure anti affinity scheduling works * pci passthrough bug fix:hasattr dones not work for dict * Fix rename q\_exc to n\_exc (from quantum to neutron) * Improve "keypair data is invalid" error message * Enable fake driver can live migration * Don't use sudo to discover ipv4 address * xenapi: Fix rescue * Fix create's response is different with requested for sec-grps V3 * Fix logging of failed baremetal commands * Add v3 API samples for os-extended-volumes * Better help for generate config * Fix hyper-v vhd real size bigger than flavor issue * Remove unused and duplicate code * Policy check for forced\_host should be before the instance is created * Remove cached console auth token after migration * Don't generate notifications when reaping running\_deleted instances * Add instance\_flavor\_id to the notification message * Edits for nova.conf.sample * xenapi: fix where root\_gb=0 causes problems * Wire in ConfKeyManager.\_generate\_hex\_key! * Drop unused logger from keymgr/\_\_init\_\_.py * Move required keymgr classes out of nova/tests * Translate more REST API error messages * pci passthrough fails while trying to decode extra\_info * Update requirements not to boto 2.13.0 * Port server actions unittests to V3 API Part 1 * Remove unused method in scheduler driver * Ignore H803 from Hacking * Fixes misuse of assertTrue in virt test scripts * Add missing notifications for rescue/unrescue * Libvirt: volume driver set correct device type * Make v3 API versions extensions core * Make Instance.save() log missing save handlers * Don't fail if volume has no image metadata * Get image properties instead of the whole image * Remove extra 'console' key for index in extensions consoles v3 * Fix V3 API server extension point exception propagation * VMware: nova-compute crashes if VC not available * Update mailmap for jhesketh * Code change for nova support glance ipv6 address * disassociate\_address response should match ec2 * Adds V3 API samples for remote consoles, deferred delete * Fix asymmetric view of object fields * Use test.TestingException where possible * Add encryption support for volumes to libvirt * VMware: fix driver support for hypervisor uptime * Wrong arguments when calling safe\_utils.getcallargs() * Add key manager implementation with static key * Remove duplication in disk checks * Change the duplicate class name TestDictMatches in test\_matches.py * Add alias as prefix to request params for config\_drive v3 * xenapi: Add per-instance memory overhead values * Fixes misuse of assertTrue in test scripts * Remove unused and wrong code in test\_compute.py * Remove cases of 'except Exception' in tests.image * Remove \_assert\_compute\_node\_has\_enough\_memory from filter\_scheduler.py * Fix regression issues with cells target filter * Remove out of date list of jenkins jobs * Don't lose exception info * Add filter for soft-deleted instances to periodic cleanup task * Don't return query from db API * Update fedora dev env instructions * Only return requested network ID's * Ensure get\_all\_flavors returns deleted items * Fix the order of query output for postgres * Fix migration 211 to downgrade with MySQL * Removed duplicated class in exception.py * Fix console api pass tuple as topic to console rpc api * Enable test\_create\_multiple\_servers test for V3 API * VMware image clone strategy settings and overrides * Reduce DB load caused by heal instance info cache * Clean up object comparison routines in tests * Clean up duplicated change-building code in objects * disable direct mounting of qcow2 images by default * xenapi: ensure finish\_migration cleans on errors * xenapi: regroup spawn steps for better progress * xenapi: stop injecting the hostname during resize * xenapi: add tests for finish\_migration and spawn * xenapi: tidy ups to some spawn related methods * xenapi: move kernel/ramdisk methods to vm\_utils * xenapi: ensure pool based migrate is live * Fix live-migrate when source image deleted * Adds v3 API samples for limits and simple tenant usage * Return a NetworkInfo object instead of a list * Fix compute\_node\_get\_all() for Nova Baremetal * Add Neutron port check for the creation of multiple instances * Remove unused exceptions * Add V3 API samples for flavor-manage,flavor-extra-specs * Add V3 API samples for flavors,flavor-rxtx,flavor-access * Catch more accuracy exception for \_lookup\_by\_name * Fixes race cond between delete and confirm resize * Fixes unexpected exception message in ProjectUserQuotaNotFound * Fixes unexpected exception message in PciConfigInvalidWhitelist * Add missing indexes back in from 152 * Fix the bootfile\_name method call in baremetal * update .mailmap * Don't stacktrace on ImageNotFound in image\_snapshot * Fix PCIDevice ignoring missing DB attributes * Revert "Call safe\_encode() instead of str()" * Avoid errors on some actions when image not usable * Add methods to get image metadata from instance * Fix inconsistent usages for network resources * Revert baremetal v3 API extension * Fixes misuse of assertTrue in compute test scripts * add conf for number of conductor workers * xenapi: Add efficient impl of instance\_exists() 2013.2.b3 --------- * Updated from global requirements * Fix failure to emit notification on Instance.save() * MultiprocessWSGITest wait for workers to die bug * Synchronize the key manager interface with Cinder * Remove indirect dependency from requirements.txt * Clean up check for migration 213 * Add V3 API samples for instance-actions,extenions * fix conversion type missing * Enable libvirt driver to use the new BDM format * Allow block devices without device\_name * Port to oslo.messaging.Notifier API * Add expected\_errors for extension aggregates v3 * Refresh network info cache for secgroups * Port "Make flavors is\_public option .." to v3 tree * Add missing Aggregate object tests * Generalize the \_make\_list() function for objects * PCI passthrough Libvirt vm config * Add columns\_to\_join to instance\_update\_and\_get\_original * XenAPI: Allow 10GB overhead on VHD file check size * Adds ephemeral storage support for Hyper-V * Adds Hyper-V VHDX support * Create mixin class for common DB fields * Deprecate conductor migration\_get() * Change finish\_revert\_resize paths to use objects * Change finish\_resize paths to use objects * Change resize\_instance paths to use objects * VMware: Nova boot from cinder volume * VMware: Multiple cluster support using single compute service * Nova support for vmware cinder driver * Adds Hyper-V dynamic memory support * xenapi: Fix download\_handler fallback * Ensure old style images can be resized * Add nova.utils.get\_root\_helper() * Inherit base image properties on instance creation * Use utils.execute instead of subprocess * Fixes misuse of assertTrue in Cells test scripts * Remove versioning from IOVisor APIs PATH * Revert "Importing correlation\_id middleware from oslo-incubator" * update neutronclient to 2.3.0 minimum * Adds metrics collection support in Hyper-V * Port all rpcapi modules to oslo.messaging interface * Fix a gross duplication of context code in objects tests * Make compute\_api use Aggregate objects * Add Aggregate object model * Add dict and list utility functions for object typing * VMware: remove conditional suds validation * Limit instance fault messages to 255 characters * Add os-assisted-volume-snapshots extension * Scheduler rpcapi 2.9 is not backwards compatible * Adds support for Hyper-V WMI V2 namespace * Port flavormanage extension to v3 API Part 2 * Add os-block-device-mapping to v3 API * Improves Hyper-V vmutils module for subclassing * xenapi: add support for auto\_disk\_config=disabled * Check ephemeral and swap size in the API * Adds V3 API samples for cells and multinic * Increase volume created checking retries to 60 * Fix changes\_since for V3 API * Make v3 API console-output extension core * Makes v3 API keypairs extension core * Add support for API message localization * Fix typo and indent error in isolated\_hosts\_filter.py * Adds 'instance\_type' param to build\_request\_spec * Guest-assisted-snaps libvirt implementation * Improve EC2 API error responses * Remove EC2 postfix from InvalidInstanceIDMalformedEC2 * Introduce InternalError EC2 error code * Introduce UnsupportedOperation EC2 error code * Introduce SecurityGroupLimitExceeded EC2 error code * Introduce IncorrectState EC2 error code * Introduce AuthFailure EC2 error code * Fix ArchiveTestCase on PostgreSQL * Fix AggregateDBApiTestCase on PostreSQL and MySQL * Port Cheetah templates to Jinja2 * Libvirt: call capabilites before getVersion() * Remove \_report\_driver\_status from compute/manager.py * Interpret BDM None size field as 0 on compute side * Add test cases for resume\_state\_on\_host\_boot * Add scheduler support for PCI passthrough * Fix v3 swap volume with wrong signature * vm\_state and task\_state not updated during instance delete * VMware: use VM uuid for volume attach and detach * xenapi: support raw tgz image download * xenapi: refactor - extract image\_utils * Add block\_device\_mapping\_get\_all\_by\_instance to virtapi * Sync rpc from oslo-incubator * Fix the multi-instance quota message * Fix virtual power driver fails silently * VMware: Config Drive Support * xenapi: skip metadata updates when VM not found * Make resource\_tracker record host\_ip * Disable compute fanout to scheduler * Make image\_props\_filter use information from DB not RPC * Make compute\_capabilities\_filter use information from DB not RPC * XenAPI: More operations with LVM-based SRs * XenAPI: make\_partition fixes for Dom0 * Fix wrong method call in baremetal * powervm: make start\_lpar timeout * Disable retry filter with force\_hosts or force\_nodes * Call safe\_encode() instead of str() * Fix usage of classmethod in various places * Fix V3 API quota\_set tests using V3 url and request * Handle port over-quota when allocating network for instance * Fix warning log message typo in resource\_tracker.instance\_claim * Sync filetuils from oslo-incubator * Fix VMware fakes * DRY up use of @wrap\_exception() decorator * Remove unused fake run\_instance() method * Use ExceptionHelper to bypass @client\_exceptions * Added new hypervisor to support Docker containers * Introduce InvalidPermission.Duplicate EC2 error code * Fix and gate on H302 (import only modules) * On snapshot errors delete the image * Remove dis/associate actions from security\_groups v3 * Add volume snapshot delete API test case * Assisted snapshots compute API plumbing * Adds V3 API samples for agents, aggregates and certificates * Adds support for security\_groups for V3 API server create * powervm: Use FixedIntervalLoopingCall for polling LPAR status * xenapi: agent not inject ssh-key if cloud-init * Tenant id filter test is not correct * Add PCI device tracker to compute resource tracker * PCI devices resource tracker * PCI device auto discover * Add PCI device filters support * Avoid swallowing exceptions in network manager * Make compute\_api use Service and ComputeNode objects * Adding VIF Driver to support Mellanox Plugin * Change prep\_resize paths to use objects * Make backup and snapshot use objects * Deprecate conductor migration\_create() * Make inject\_network\_info use objects * Convert reset\_network to use instance object * Make compute\_api use objects for lock/unlock * Add REUSE\_EXT in \_swap\_volume call to blockRebase * Remove unused \_decompress\_image\_file from powervm operator class * powervm: actually remove files after migration * Fix to disallow server name with all blank spaces (v3 API) * Add mock to test-requirements * xenapi: Improve test\_xenapi unit testing performance * Sets policy settings so V3 API extensions are discoverable * Pass objects for revert and confirm resizes * Convert \_poll\_unconfirmed\_resizes to use Migration object * Make compute\_api confirm/revert resize use objects * Make compute\_api migrate/resize paths use instance objects * Fix race when running initialize\_gateway\_device() * fix bad usage of exc\_info=True * Use implicit nullable=True in sqlalchemy model * Introduce Invalid\* EC2 error codes * Improve parameter related EC2 error codes * Disconnect from iSCSI volume sessions after live migration * Correct default ratelimits for v3 * Improve db\_sqlalchemy\_api test coverage * Safe db.api.compute\_node\_get\_all() performance improvement * Remove a couple of unused stubs * Fix Instance object issues * Adds API version discovery support for V3 * Port multiple\_create extension to V3 API * Add context information to download plugins * Adds V3 API samples for migrations * Filter network by project id * Added qemu guest agent support for qemu/kvm * PCI alias support * Add PCI stats * Raise timeout in fake RPC if no consumers found * Stub out instance\_update() in build instance tests * Mock out action event calls in build instance test * powervm: revert driver to pass for plug\_vifs * Remove capabilities.enabled from test\_host\_filters * xenapi: through-dev raw-tgz image upload to glance * Add PCI device object support * Store CONF.baremetal.instance\_type\_extra\_specs in DB * Pci Device DB support * VMware: remove redundant default=None for config options * Move live-migration control flow from scheduler to conductor * Fix v3 extensions inherit from wrong controller * Fix network creation in Vlan mode * compute rpcapi 2.29 is not backwards compatible * Fix the message of coverage directory error * Fix error messages in v3 aggregate API * compute rpcapi 2.37 is not backwards compatible * use 'exc\_info=True' instead of import traceback * Add env to make\_subprocess * Remove unused nova.common module * Adds Flavor ID validations * Imported Translations from Transifex * Add DocStrings for function allocate\_for\_instance * Removes V3 API images and image\_metadata extensions * Powervm driver now logs ssh stderr to warning * Update availability\_zone on time if it was changed * Add db.block\_device\_mapping\_get\_by\_id * Add volume snapshot APIs to driver interface * Pass the destination file name to download modules * Fix typo in baremetal docs * VMware: clean up get\_network\_with\_the\_name * Stylistic improvement of compute.api.API.update() * Removes fixed ips extension from V3 API * Libvirt: fix KeyError in set\_vif\_bandwidth\_config * Add expected\_errors for migrations v3 * Add alias as prefix to request params for user\_data v3 * Fix migrations index * Should finish allocating network before VM reaches ACTIVE * Fixes missing host in Hyper-V get\_volume\_connector * Fix various cells issues due to object changes * Document CONF.default\_flavor is for EC2 only * Revert task state when terminate\_instance fails * Revert "Make compute\_capabilities\_filter use ..." * Add resource tracking to build\_and\_run\_instance * Link Service.compute\_node with ComputeNode object * Add ComputeNode object implementation * Add Service object implementation * Make compute\_api use KeyPair objects * Add KeyPair object * Fix spice/vnc console api samples tests * Fix network manager tests to use correct network host * Stub out get\_console\_topic() in test\_create\_console * Stub out instance\_fault\_create() in compute tests * Fix confirm\_resize() mock in compute tests * Fix rpc calls on pre/post live migration tests * Stub out setup\_networks\_on\_host() in compute tests * maint: remove redundant disk\_cachemode validation entry * Fix unicode key of azcache can't be stored to memcache * XenAPI: SR location should default to location stored in PBD * XenAPI: Generic Fake.get\_all\_records\_where implementation * XenAPI: Return platform\_version if no product\_version * XenAPI: Support local connections * Delete expired instance console auth tokens * Fix aggregate creation/update with null or too long name * Fix live migration test for no scheduler running * Fix get\_diagnostics() test for no compute consumer * Stubout reserve\_block\_device\_name() in test * Stubout deallocate\_for\_instance() in compute tests * Stub out net API sooner in servers API test * PCI utils * Object support for instance groups * Add RBD supporting to libvirt for creating local volume * Add alias as prefix to request params for availability\_zone v3 * Remove deprecated legacy network info model in Hypervisor drivers * Correct the authorizer for extended-volumes v3 * emit warning while running flake8 without virtual env * Adds Instance UUID to rsync debug logging * Fixes sync issue for user level resources * Fix Fibre Channel attach for single WWN * nova.conf configurable gzip compression level * Stub out more net API methods floating IP DNS test * Enable CastAsCall for test\_api\_samples * Stub out attach\_volume() in test\_api\_samples * Fix remove\_fixed\_ip test with CastAsCall * Add add\_aggregate\_to\_host() to FakeDriver * Fix api samples image service stub * Add CastAsCall fixture * Enable consoleauth service during ec2 tests * Disable periodic tasks during integration tests * Use ExceptionHelper to bypass @client\_exceptions * Clean up some unused wrap\_exception() stuff * Add new compute method for building an instance * VMware: provide a coherent message to user when viewing console log * Use new BDM syntax when determining boot metadata * Allow more than one ephemeral device in the DB * Port flavormanage extension to v3 API part 1 * Correct the status code to 201 for create v3 * Pop extra keys from context in from\_dict() * Don't initialize neutronv2 state at module import * Remove instance exists check from rebuild\_instance * Remove unused variables in test\_compute\_cells * Fix fake image\_service import in v3 test\_disk\_config * Updates tools/config/README * xenapi: Added iPXE ISO boot support * Log exception details setting vm\_state to error * Fix instance metadata access in xenapi * Fix prep\_resize() stale system\_metadata issue * Implement hard reboot for powervm driver * Use the common function is\_neutron in servers.py * Make xenapi capabilities['enabled'] use service enabled * Remove duplicate test from V3 version of test\_hosts * Remove unused nova.tests.image.fake code * Remove unused fake run\_instance() method * Remove use of fake\_rabbit in Nova * libvirt: fix {attach,detach}\_interface() * Added test case in test\_migrations for migration 208 * Add flag to make IsolatedHostsFilter less restrictive * Add unique constraint to AggregateMetadata * Fix a typo in test\_migrations for migration 209 * Remove duplicate variable \_host\_state * enhance description of share\_dhcp\_address option * Adds missing V3 API scheduler hints testcase * [v3] Show detail of an quota in API os-quota-sets * Remove legacy network model in tests and compute manager * Remove redundant \_create\_instance method from test\_compute * Add jsonschema to Nova requirements.txt * Remove docstrings in tests * Fix scheduler prep\_resize deprecated comments * Search filters for get\_all\_system\_metadata should use lists * fix volume swap exception cases * Set VM back to its original state if cold migration failed * Enforce flavor access during instance boot * Stub out entry points in LookupTorrentURLTestCase * Port volumes swap to the new API-v3 * correct the name style issue of ExtendedServerAttributes in v3 api * Fix IVS vif to correctly delete interfaces on unplug * Adding support for iSER transport protocol * libvirt: allow passing 'os\_type' property to glance * Fixes auto confirm invalid error * Fix ratelimiting * quantum pxeboot-port support for baremetal * baremetal: Log IPMI power on/off timeouts * VMware: Added check for datastore state before selection * Boot from image destination - volume * Virt driver flag for different BDM formats * Refactor how BDMs are handled when booting * Change RPC to use new BDM format for instance boot * Make API part of instance boot use new BDM format * Add Migration object * Fix untranslated log messages in libvirt driver * Fix migration 210 tests for PostgreSQL * Handle InstanceInvalidState of soft\_delete * Don't pass RPC connection to pre\_start\_hook * VMware: Ensure Neutron networking works with VMware drivers * Unimplemented suspend/resume should not change vm state * Fix project\_user\_quotas\_user\_id\_deleted\_idx index * Allow Cinder to specify file format for NFS/GlusterFS * Add migration with missing fkeys * Implement front end rate-limiting for Cinder volume * Update mailmap * Fixup some non-unity-ness to conductor tests * Add scheduler utils unit tests * Convert admin\_actions ext tests to unit tests * Unit-ify the compute API resize tests * Raises masked AssertionError in \_test\_network\_api * Have tox install via setup.py develop * Set launch\_index to right value * Add passing a logging level to processutils.execute * Clear out service disabled reason on enable for V3 API * Fix HTTP response for PortInUse during boot (v3 API) * Adds infra for v3 API sample creation * Remove deprecated CONF.fixed\_range * Offer a paginated version of flavor\_get\_all * Port integrated tests for V3 API * Refactor integrated tests to support V2 and V3 API testing Part 2 * Refactor integrated tests to support V2 and V3 API testing * Fix cells manager RPC version * Upgrade to Hacking 0.7 * Fix logic in add\_host\_to\_aggregate() * Enforce compute:update policy in API * Removed the duplicated \_host\_state = None in libvirt driver * Sync gettextutils from oslo-incubator * Fix typo in exception message * Fix message for server name with whitespace * Demote personalities from core of API v3 as extensions os-personality * Port disk\_config API to v3 Part 2 * remove \_action\_change\_password the attribute in V3 server API * Fix exception handling in V3 API coverage extension * Remove "N309 Python 3.x incompatible construct" * Allow swap\_volume to be called by Cinder * Remove trivial cases of unused variables * Handle NeutronClientException in secgroup create * Fix bad check for openstack versions (vendor\_data/config drive) * Make compute\_capabilities\_filter use information from DB not RPC * Make affinity\_filters use host\_ip from DB not RPC * db: Add host\_ip and supported\_instances to compute\_nodes * Add supported\_instances to get\_available\_resource to all virt drivers * libvirt: sync get\_available\_resources and get\_host\_stats * Clean up unimplemented methods in the powervm driver * Make InvalidInstanceIDMalformed an EC2 exception * Fix one port can be attached to more devices * Removed code duplication in test\_get\_server\_\*\_by\_id * Add option for QEMU Gluster libgfapi support * Moves compute.rpcapi.prep\_resize call to conductor * Fix get\_available\_resource docstrings * Fix spelling in image\_props\_filter * Fix FK violation in ConsoleTestCase * Fix ReservationTestCase on PostgreSQL * Fix instance\_group\_delete() DB API method * Fix capitalization, it's OpenStack * Add test cases to validate neutron ports * Add expected\_errors for extension quota\_classes v3 * Fix leaking of image BDMs * Moved tests for server.delete * Fix VMwareVCDriver to support multi-datastore * Fixes typo in \_\_doc\_\_ of /libvirt/blockinfo.py * User quota update should not exceed project quota * Port "Accept is\_public=None .." to v3 tree * Remove clear\_rabbit\_queues script * Don't need to init testr in run\_tests.sh * Imported Translations from Transifex * Deprecate conductor's compute\_reboot() interface * Deprecate conductor's compute\_stop() interface * Make compute\_api use InstanceAction object * Add basic InstanceAction object * Add delete() operation to InstanceInfoCache * Make compute\_api use Instance.destroy() * Add Instance.destroy() * Make compute\_api use Instance.create() * Change swap\_volume volume\_api calls to use ID * Fix H501: Do not use locals() for string formatting * fix libguestfs mount order when inspecting * Imported Translations from Transifex * powervm: add test case for get\_available\_resource * Fix to allow ipv6 in host\_ip for ESX/vSphere driver * Improve performance of driver's get\_available\_nodes * Cleanup exception handling on evacuate * Removed code for modular exponentiation, pow() already does this * Remove unsafe XML parsing * Fix typo with network manager service\_name * Remove old legacy network info model in libvirt driver * maint: remove redundant default=None for config options * Fix simultaneous timeout with smart iptables usage * xenapi: send identity headers from glance plugin * Catch ldap ImportError * xenapi: refactor - extract get\_virtual\_size * xenapi: refactor - extract get\_stream\_funct\_for * xenapi: test functions for \_stream\_disk * Check host exists before evacuate * Fix EC2 API Fault wrapper * Fix deferred delete use of objects * Remove unsafe XML parsing * Update BareMetal driver to current nova.network.model * Personality files can be injected during server rebuild * Need to allow quota values to be set to zero * Merged flavor\_disabled extension into V3 core api * Merged flavorsextraspecs extension into core API * Code dedup in test\_update\_\* * Move tests test\_update\_\* to separate class * VMware: fix rescue/unrescue instance * Add an exception when doesn't have permissions to operate vm on hyper-v * Remove dead capabilities code * Spelling correction in test\_glance.py * Enhance object inheritance * Enable no\_parent and file\_only security * Add Instance.create() * Pull out instance object handling for use by create also * Make fake\_instance handle security groups * Fix instance actions testing * Sync models with migrations * Wrong unique key name in 200 migration * Remove unused variable * Make NovaObject.get() avoid lazy-load when defaulting * Fix migration downgrade 146 with mysql * Remove the indexes on downgrade to work with MySQL * Downgrade MySQL to the same state it used to be * Format CIDR strings as per storage * Fix migration downgrade 147 with mysql * Fix typo in compute.rpcapi comments * Imported Translations from Transifex * Avoid extra glance v2 locations call! * xenapi: Adding BitTorrent download handler * xenapi: remove dup code in make\_step\_decorator * Retry failed instance file deletes * xenapi: retry when plugin killed by signal * Do not use context in db.sqla.api private methods * Finish DB session cleanup * Clean up session in db.sqla.api.migration\_\* methods * Clean up session in db.sqla.api.network\_\* and sec\_groups\_\* methods * Don't inject files while resizing instance * Convert CamelCase attribute naming to camel\_case for servers V3 API * Convert camelCase attribute naming to camel\_case * Add plug-in modules for direct downloads of glance locations * Allow user and admin lock of an instance * Put fault message in the correct field * Fix Instance objects with empty security groups * db: Remove deprecated assert\_unicode attribute * VlanManager creates superfluous quota reservations * xenapi: allow non rsa key injection * Add expected\_errors for extensions simple\_tenant\_usage v3 * Clean destroy for project quota * Add expected\_errors for extension Console v3 * Add expected\_errors for extension baremetal v3 * Clean up session in db.sqla.api.get\_ec2 methods * Clean up db.sqla.api.instance\_\* methods * remove improper usage of 'assert' * Support networks without gateway * Raise 404 when instance not found in admin\_actions API * Switch to Oslo-Incubator's EnvFilter rootwrap * xenapi: Moving Glance fetch code into image/glance:download\_vhd * Performs hard reboot if libvirt soft reboot raises libvirtError * xenapi: Rename imageupload image * Make nbd reservation thread-safe * Code dedup in class QuotaReserveSqlAlchemyTestCase * Fix multi availability zone issue part 1 * Fix instance\_usage\_audit\_log v3 follow REST principles * Update mailmap * Add obj\_attr\_is\_set() method to NovaObject * Add ObjectActionFailed exception and make Instance use it * Fix change detection logic in conductor * Convert pause/unpause to use objects * Make delete/soft\_delete use objects * Refactor compute API's delete to properly do local soft\_deletes * Add identity headers while calling glanceclient * xenapi: Reduce code duplication in vmops * vendor-data minor format / style cleanups * maint: remove unused exceptions * Add support for Neutron https endpoint * Add index to reservations.uuid column * Refactor EC2 API error handling code * Cleanup copy/paste in test\_quota\_sets * Make EvacuateTest DRYer * Add expected\_errors for extensions quota\_sets and hypervisors * Remove generic exception catching for admin\_actions API v3 * Demote admin-passwd from core of API v3 as extensions os-admin-password * handle auto assigned flag on allocate floating ip * Add expected\_errors for extension shelve v3 * Use cached nwinfo for secgroup rules * Sync config.generator from Oslo * Remove \* import from xenserver plugins * EC2-API: Fix ambiguous ipAddress/dnsName issue * xenapi: no image upload retry on certain errors * Add error checking around host service checking * add vendor\_data to the md service and config drive * Moves compute.rpcapi.prep\_resize call to scheduler.manager * Removed scheduler doc costs section * Fix formatting on scheduler documentation * Add expected\_errors for extension server\_diagnostics V3 * Fix extensions agent follow API v3 rules * XenAPI: Change the default SR to be the pool default * Fix flavor\_access extension follow API V3 rules * Add notification for live migration call * Correct status code and response for quota\_sets API v3 * Fixes for v3 API servers tests * Remove sleep from service group db and mc tests * [xenapi] Unshadow an important test case class * Fix and Gate on H303 (no wildcard imports) * Remove unreachable code * powervm: pass on unimplemented aggregate operations * Fix timing issue in SimpleTenantUsageSample test * Code dedup in virt.libvirt.test\_imagecache.test\_verify\_checksum\_\* * Move tests test\_verify\_checksum\_\* to separate class * Logging virtual size of the QCOW2 * Add expected\_errors for extension certificates v3 * Support setting block size for block devices * Set the image\_meta for the instance booted from a volume * return 429 on API rate limiting occur * Add task\_state filter for nova list * Port server\_usage API to v3 part 2 * Port server\_usage API to v3 part 1 * Adds factory methods to load Hyper-V utils classes * Fix 2 pep8 errors in tests * Enabled hacking check for Python3 compatible print (H233) * Fix race between aggregate list and delete * Enforce authenticated connections to libvirt * Enabled the hacking warning for Py3 compatible octal literals (H232) * Remove fping plugin from V3 API * Moves scheduler.rpcapi.prep\_resize call on compute.api to conductor * Fix some Instance object class usage errors * xenapi: remove pv detection * Add expected\_errors for extension keypair and availablity\_zone * Add expected\_errors for extension console\_output v3 * Fix extension hosts follow API v3 rules * Use project quota as default user quota * Adds NoAuthMiddleware for V3 * xenapi: remove propagate xenapi\_use\_agent key * Update references with new Mailing List location * MinDisk size based on the flavor's Disk size * Use RetrievePropertiesEx instead of RetrieveProperties * Speed up test BareMetalPduTestCase.test\_exec\_pdutool * Port ips-extended to API-v3 ips core API Part 2 * Disable per-user rate limiting by default * Support EC2 API wildcards for DescribeTags filters * Remove the monkey patching of \_ into the builtins * Sync lockutils from Oslo * Set lock\_path in tests * Port ips-extended to API-v3 ips core API Part 1 * Fix postgresql failures related to Data type to API-v3 fixed-ip * Bypass queries which cause a contradiction * Add basic BDM format validation in the API layer * Servers API for the new BDM format * Fixes Hyper-V issues on versions prior to 2012 * Add expected\_errors for extension instance\_actions v3 * Fix extension server\_meta follow API v3 rules * Ensure that uuid is returned with mocked instance * Code dedup in class InstanceTypeExtraSpecsTestCase * Add expected\_errors for extension cells V3 * Add expected\_errors for extension\_info V3 * Add latest oslo DB support * Add note why E712 is ignored * Clarify instance\_type vs flavor in nova-manage * Fix leaky network tests * Fix HTTP response for PortNotFound during boot * Don't pass empty image to filter on live migration * Start using hacking 0.6 * Set VM back to its original state if cold migration failed * xenapi: ensure vcpu\_weight configured correctly * Fix failing network manager unit tests * Add expected\_errors for extensions services and server\_password v3 * Update oslo.config.generator * Fix the is\_volume\_backed\_instance check * Add support for volume swap * Fix policy failure on image\_metadata calls * Sync models for AgentBuild, Aggregates, AggregateHost tables * Imported Translations from Transifex * Make ServerXMLSerializationTest DRYer * Port migrations extension to v3 API part 2 * Port migrations extension to v3 API part 1 * xenapi: Fix console rotate script * Sync some of Instance\* models with migrations * Fix extension rescue follow API v3 rules * Per-project-user-quotas for more granularity * Add unique constraint to InstanceTypeExtraSpecs * Remove instance\_metadata\_get\_all\* from db api * Merged flavorextradata extension (ephemeral disk size) into core API * Fixed tests for flavor swap extension after merging in core API * Remove hostname param from XenApi after first boot * Cell Scheduler support for hypervisor versions * Fix flavor v3 follow API v3 rules * Sync sample config file generator with Oslo * Allow exceptions to propagate through stevedore map * Create vmware section * Sync latest rpc changes from oslo-incubator * Check instance on dest once during block migration * Revert "Add requests requirement capped <1.2.1." * Unit-ify compute\_api delete tests * Convert network API to use InfoCache object * Make InfoCache.network\_info be the network model * Make shelve pass old-world instance object to conductor * Make admin API state resets use Instance.save() * Deduplicate data in TestAddressesXMLSerialization * Move \_validate\_int\_value controller func to utils * Correct the action name for admin\_actions API v3 * Fixing dnsdomain\_get call in nova.network.manager * Raise exception if both port and fixed-ip are in requested networks * Sync eventlet\_backdoor from oslo-incubator * Fix up trivial license mismatches * Implements host uptime API call for cell setup * Ensure dates are dates, not strings * Use timeutils.utcnow() throughout the code * Add indexes to sqlite * Fix iptables rules when metadata\_host=127.0.0.1 * Sync gettextutils from oslo * Handle instance objects in conductor compute\_stop * Config drive attached as cdrom * Change EC2 client tokens to use system\_metadata * Check that the configuration file sample is up to date * Make servers::update() use Instance.save() to do the work * Make Instance.save() handle cells DB updates * Convert suspend/resume to use objects * Make compute\_api.reboot() use objects * Fix HTTP response for PortInUse during boot * Fix DB access when refreshing the network cache * Use valid IP addresses values in tests * Add ability to factor in per-instance overheads * Send updated aggregate to compute on add/rm host * Fix inconsistency between Nova-Net and Neutron * Fix parse\_transport\_url when url has query string * xenapi: no glance upload retry on 401 error * Code dedup in test\_libvirt\_vif * Raise exceptions when Spice/VNC are unavailable * xenapi: Pass string arguments to popen * Add rpcapi tests for shelving calls * Create key manager interface * Remove duplicate cells\_rpcapi test * ec2-api: Disable describing of instances using deleted tags as filter * Disable ssl layer compression for glance requests * Missed message -> msg\_fmt conversion * Refresh network cache when reassigning a floating IP in Neutron * Remove unnecessary comments for instance rebuild tests * Add missing tests for console\_\* methods * Force reopening eventlet's hub after fork * Remove project\_id from alternate image link path * Fixes wrong action comment 'lock' to 'unlock' * Add expected\_errors for extension extended\_volumes v3 * port BaremetalNodes API into v3 part2 * port baremetal\_nodes API into v3 part1 * Add validation of available\_zone during instance create * Move resource usage sync functions to db backend * Remove locals() from various places * Add expected\_errors for extension evacuate v3 * Add expected\_errors for extension deferred\_delete v3 * Fix accessing to '/' of metadata server without any checks to work * Fix duplicate osapi\_hide\_server\_address\_states config option * API for shelving * Fix shelve's use of system\_metadata * Fix Instance object handling of implied fields * Make Instance object properly update \*metadata * Support Client Token for EC2 RunInstances * Change get\_all\_instance\_metadata to use \_get\_instances\_by\_filters * Add a new GroupAffinityFilter * Move a migration test to MigrationTestCase * Use db.flavor\_ instead of db.instance\_type\_ * Periodic task for offloading shelved instances * Shelve/unshelve an instance * Code dedup in class ImagesControllerTest * Assert backing\_file should exist before attempting to create it * Add API-v3 merged core API into core API list * Don't ignore 'capabilities' flavor extra\_spec * Support scoped keys in aggregate extra specs filter * Fix blocking issue when powervm calculate checksum * Avoid shadowing Exception 'message' attribute * Code dedup in class TestServerActionRequestXMLDeserializer * Fix mig 186 downgrade when using sqlalchemy >= 0.8 * Move test\_stringified\_ips to InstanceTestCase * Move \*\_ec2\_\* tests in test\_db\_api to own test case * Code dedup in class ImageXMLSerializationTest * Fix malformed format string * Fix EC2 DescribeTags filter * Code dedup in test\_libvirt\_volume * Port AttachInterfaces API to v3 Part 2 * Make ServersViewBuilderTest DRYer * Move test\_security\_group\_update to SecurityGroupTestCase * Code dedup in class ServersControllerCreateTest * Code dedup in tests for server.\_action\_rebuild * Moved tests for server.\_action\_rebuild * Move bw\_usage\_\* tests in test\_db\_api to own test case * Move dnsdomain\_\* tests in test\_db\_api to own test case * Remove redundant if statements in cells.state * Move special cells logic for start/stop * Port used limits extension to v3 API Part 2 * Avoid deleting user-provided Neutron ports if VM spawn fails * Fix nic order not correct after reboot * Porting os-aggregates extensions to API v3 Part 2 * Porting os-aggregates extensions to API v3 Part 1 * Porting server metadata core API to API v3 Part 2 * Porting server metadata core api to API v3 Part 1 * Port limits core API to API-v3 Part 2 * xenapi: Only coalesce VHDs if needed * Don't attach to multiple Quantum networks by default * Load cell data from a configuration file * Fix filtering aggregate metadata by key * remove python-glanceclient cap * Remove duplicated key\_pair\* tests from test\_db\_api * Porting limits core api to API v3 Part 1 * Add missing tests for db.api.instance\_\* methods * Fix IPAddress and CIDR type decorators * Complete deletion when compute manager start-up * Port user\_data API to v3 Part 2 * Add legacy flag to get\_instance\_bdms * XenAPI: Refactor Fake to create pools, SRs and VIFs automatically * Port flavor\_rxtx extension to v3 API Part 2 * Port flavor\_rxtx extension to v3 API Part 1 * Fix aggregate\_get\_by\_host host filtering * Fix v3 hypervisor extension servers action follow REST principles * xenapi:populating hypervisor version in host state * Port attach and detach of volume-attachment into os-extended-volume v3 * Port deferredDelete API to v3 Part 2 * Fix status code for coverage API v3 * Port instance\_actions API to v3 Part 2 * port instance\_actions API into v3 part1 * Prompt error message when creating aggregate without aggregate name * Port used limits extension to v3 API Part 1 * Makes \_PATH\_CELL\_SEP a public global variable * port disk\_config API into v3 part1 * Imported Translations from Transifex * Remove locals() from virt directory * Handle ImageNotAuthorized exception * Port AvailabilityZone API to v3 Part 2 * port AvailabilityZone API into v3 part1 * Port service API to v3 Part 2 * Imported Translations from Transifex * Unify duplicate code for powering on an instance * Port hide srvr addresses extension to v3 API Pt2 * Sync v2/v3 console\_output API extensions * Port extended status extension to v3 API Part 2 * Port os-console-output extension to API v3 Part 2 * Changes select\_destinations to return dicts instead of objects * Better start/stop handling for cells * Make notifications properly string-convert instance datetimes * Fix default argument values on get\_all\_by\_filters() * Make db/api strip timezones for datetimes * Fix object\_compat decorator for non-kwargs * Imported Translations from Transifex * Remove unused recreate-db options from run\_test.sh * update Quantum usage to Neutron * Convert cells to use a transport URL * Fix aggregate update * Passing volume ID as id to InvalidBDMVolume exception * Handle instance being deleted while in filter scheduler * Port extended-availability-zone API into v3 part2 * Fix extensions os-remote-consoles to follow API v3 rules * Add unique constraints to AggregateHost * Unimplemented pause should not change vm state on PowerVM * Port server password extension to v3 API Part 2 * xenapi: Add disk config value to xenstore * Port hide srvr addresses extension to v3 API Pt1 * Add -U to the command line for pip * xenapi: support ephemeral disks bigger than 2TB * Cells: Make bandwidth\_update\_interval configurable * Add \_set\_instance\_obj\_error\_state() to compute manager * Update v3 servers API with objects changes * xenapi: enable attach volumes to non-running VM * Change force\_dhcp\_release default to True * Revert "Sync latest rpc changes from oslo-incubator" * Sync 10 DB models and migrations * Make compute\_api.get() use objects natively * port Host API into v3 part2 * Port admin-actions API into v3 part2 * Fix cells manager rpc api version * Allow ::/0 for IPv6 security group rules * Fix issue with pip installing oslo.config-1.2.0 * Sort output for unit tests in test\_describe\_tags before compare * Document rate limiting is per process * Properly pin pbr and d2to1 in setup.py * Add support for live\_snapshot in compute * xenapi: Stub out \_add\_torrent\_url for Vhd tests * Add Instance.get\_by\_id() query method * Fix duplicate fping\_path config option * Port images metadata functionality to v3 API Part 2 * Add unique constraint to ConsolePool * Enable core API-v3 to be optional when unit testing * Clarify flavorid vs instance\_type\_id in db * Sync db.models.Security\* and db.models.Volume\* * Sync db.models.Instance\* with migrations * Add "ExtendedVolumes" API extension * Fix misc issues with os-multinic v3 API extension * Port multinic extension to v3 API Part 2 * Port security groups extension to v3 API Part 2 * Port security groups extension to v3 API Part 1 * Add missing help messages for nova-manage command * Validate volume\_size in block\_device\_mapping * Imported Translations from Transifex * Fix info\_cache and bw\_usage update race * xenapi: glance plugin should close connections * Change db.api.instance\_type\_ to db.api.flavor\_ * Replace get\_instance\_metadata call in api.ec2.cloud.\_format\_instances * Add unique constraint to AgentBuild * Ensure flake8 tests run on all api code * Sync notifier change from oslo-incubator * Sync harmless changes from oslo-incubator * Sync latest rpc changes from oslo-incubator * Add missing matchmaker\_ring * Port extended-server-attributes API into v3 part2 * List migrations through Admin API * Add a VIF driver for IOVisor engine * port Service API into v3 part1 * Port admin-actions API into v3 part1 * Port fping extension to v3 API Part 2 * Disassociate fixed IPs not known to dnsmasq * Imported Translations from Transifex * Allow filters to only run once per request if their data is static * Port extended-availability-zone API into v3 part1 * Update openstack.common.config * Export just the volume metadata for the database to be populated * port Deferred\_delete API into v3 part1 * Misc fixes for v3 evacuate API extension * Imported Translations from Transifex * Baremetal ensures node is off before powering on * Remove references to deprecated DnsMasqFilter * Port user\_data API to v3 Part 1 * Update instance.node on evacuate * Fix formatting errors in documentation * Use oslo.sphinx and remove local copy of doc theme * Remove doc references to distribute * Sync install\_venv\_common from oslo * Make EC2 API request objects instead of converting them * Make instance show and index use objects * Remove conductor usage from consoleauth service * xenapi: Stub out entry points for BitTorrent tests * Fix debug message for GroupAntiAffinityFilter * Add unique constraints to Service * Add unique constraint to FixedIp * Fixed columns list in indexes * Add cinder cleanup to migrations * Change unique constraint in VirtualInterface * Changes ComputeTaskManager class to inherit base.Base * Moves populate retry logic to the scheduler utils * Exceptions raised by quantum validate\_networks result in 500 error * Fix and gate on E125 * Add object (de)serialization support to cells * Add cells get\_cell\_type() method * Add fill\_faults() batch operation to InstanceList * Make api\_samples reboot test use a plausible scenario * Fix compute\_api object handling code in cells messaging * Fix power\_state lookup in confirm\_resize * Make flavors is\_public option actually work * Imported Translations from Transifex * hyperv: Fix vmops.get\_info raises InstanceNotFound KeyError * Make instance\_update() string-convert IP addresses * Refactor compute\_api reboot tests to be unit-y * Refactors select\_destinations to return HostState objects * PowerVM resize and migrate test cases * Clear out service disabled reason on enable * Port agent API to v3 Part 2 * Fix v3 hypervisor extension search action follow REST principles * Fix resize ordering for COW VHD * Add inst\_type parameter * Store volume metadata as key/value pairs * Fixes a typo on AggregateCoreFilter documentation * xenapi: Tidy up Popen calls to avoid command injection attacks * Remove notify\_on\_any\_change option * Add unique constraints to Quota * Port images metadata functionality to v3 API Part 1 * Port scheduler hints extension to v3 API Part 2 * Adding action based authorization for keypairs * Port multinic extension to v3 API Part 1 * Port hypervisor API into v3 part2 * port Instance\_usage\_audit\_log API into v3 part2 * port Instance\_usage\_audit\_log API into v3 part1 * Fix metadata for create in child cell * update xen/vmware virt drivers not to hit db directly * Reduce nesting in instance\_usage\_audit * Port os-console-output extension to API v3 Part 1 * Fix to integer cast of length in console output extension * Imported Translations from Transifex * Add notifiers to both attach and detach volumes * Make test\_deferred\_delete() be deterministic * Added functionality for nova hooks pass functions * Fix compatibility with older confirm\_resize() calls * Pass instance host-id to Quantum using port bindings extension * libvirt: Fix spurious backing file existence check * Add unique constraint for security groups * powervm: make get\_host\_uptime output consistent with other virt drivers * Remove locals() from virt/vmwareapi package * Add HACKING check for db session param * Select disk driver for libvirt+Xen according to the Xen version * Port coverage API into v3 part2 * Port coverage API into v3 part1 * Fix grizzly compat issue in conducor rpc api * Xenapi shutdown should return True if vm is shutdown * Break out Compute Manager unit tests * Break out compute API unit tests * port Host API into v3 part1 * Imported Translations from Transifex * Standardize use of nova.db * Check system\_metadata type in \_populate\_instance\_for\_create * Clean up and make HACKING.rst DRYer * Sync db.models with migrations * Refactor ServerStatusTest class * Move tests db.api.instance\_\* to own class * Add tests for \`db.console\_pool\_\*()\` functions * Fix binding of SQL query params in DB utils * Make db.fakes stub out API not sqlalchemy * Reassign MAC address for vm when resize\_revert * test\_xmlutil.py covers more code in xmlutil.py * Handle UnexpectedTaskState and InstanceNotFound exceptions * Port quota classes extension to v3 API Part 2 * Ports image\_size extension to v3 API * xenapi: Add configurable BitTorrent URL fetcher * remove locals() from virt/hyperv package * Add resume state on host boot function to vmware Hyper * Port server\_diagnostics extension to v3 API Part2 * Port images functionality to v3 API Part 2 * Port cells extension to v3 API Part 2 * Notification support for host aggregate related operation * Fix vol\_usage\_update() DB API tests * Port consoles extension API into v3 part2 * Port consoles extension API into v3 part1 * Imported Translations from Transifex * New select\_destinations scheduler call * Session cleanup for db.security\_group\_\* methods * fix invalid logging * Port scheduler hints extension to v3 API Part 1 * Port config\_drive API to v3 Part 2 * Port config drive API to v3 Part 1 * Port images functionality to v3 API Part 1 * Moves scheduler.manager.\_set\_vm\_state\_and\_notify to scheduler.utils * VNC console does not work with VCDriver * Sane rest API rate limit defaults * Ignore lifecycle events for non-existent instances * Fix resizes with attached file-based volumes * Remove trivial cases of unused variables (3) * Remove locals() from compute directory * Hypervisor uptime fails if service is disabled * Fix metadata access in prep for instance objects * Sync to\_primitive() IPAddress support from Oslo * Merged flavor\_swap extension into core API * Fix typo for instance\_get\_all\_by\_filters() function * Implement get\_host\_uptime for powervm driver * Port flavor\_disabled extension to v3 API Part 2 * Fix sqlalchemy utils * Port flavor\_disabled extension to v3 API Part 1 * Port flavor\_access extension to v3 API Part 2 * Port flavor\_access extension to v3 API Part 1 * Fixes for quota\_sets v3 extension * Port server password extension to v3 API Part 1 * Port Simple\_tenant\_usage API to v3 Part 2 * xenapi: Remove vestigial \`compile\_metrics\` code * Add update() method to NovaObject for dict compatibility * Add obj\_to\_primitive() to recursively primitiveize objects * Make sure periodic instance reclaims continues on error * Remove broken config\_drive image\_href support * Report the az based on the value in the instance table * Allow retrying network allocations separately * Imported Translations from Transifex * Better default for my\_ip if 8.8.8.8 is unreachable * Fix a couple typos in the nova.exception module * Make fake\_network tolerant of objects * Prepare fake instance stubs for objects * Make info\_cache handle when network\_info is None * Fix instance object's use of a db query method parameter * Make NovaObject support the 'in' operator * Add Instance.fault * Add basic InstanceFault model * xenapi: Make BitTorrent url more flexible * xenapi: Improve cross-device linking error message * db.compute\_node\_update: ignore values['update\_at'] * Make sure periodic cleanup of instances continues on error * Fix for failure of periodic instance cleanup * Update instance properties values in child cells to create instance * port Attach\_interface API into v3 part1 * Sync models.Console\* with migrations * Port quota API into v3 part2 * Stop creating folders in virt unit tests * Imported Translations from Transifex * Refresh volume connections when starting instances * Fix trivial mismatch of license header * Exeption message of 'live migration' is not appropriate * Sync rpc from oslo-incubator * Fix types in test\_ec2\_ids\_not\_found\_are\_printable * Port quota API into v3 part1 * Skip security group code when there is no network * Sync db.models and migrations * Update pyparsing to 1.5.7 * Make InstanceList filter non-column extra attributes * Add Instance.security\_groups * Add basic SecurityGroup model * Revert XenApi virt driver should throw exception * Imported Translations from Transifex * Avoid redefining host to none in get\_instance\_nw\_info(...) * Extract live-migration scheduler logic from the scheduler driver * Fix the filtered characters list from console-log * Add invalid number checking in flavor creation api * Port quota classes extension to v3 API Part 1 * Remove usage of locals() from powervm virt package * Fix xenstore-rm race condition * Refactor db.security\_group\_get() instance join behavior * Fix serialization of iterable types * Fix orphaned instance from get\_by\_uuid() and \_from\_db\_object() * refactor security group api not to raise http exceptions * Perform additional check before live snapshotting * Do not raise NEW exceptions * Baremetal\_deploy\_helper error message formatting * Fix sys\_meta access in prep for instance object * Cells: Pass object for start/stop * Clarify the compute API is\_volume\_backed\_instance method * Add AggregateCoreFilter * Port extended-server-attributes into v3 part1 * Add AggregateRamFilter * Fix KeyError exception when scheduling to child cell * Port missing bits from httplib2 to requests * Revert "fixes nova resize bug when force\_config\_drive is set." * Port extended status extension to v3 API Part 1 * Fix quota logging on exceptions * XenApi virt driver should throw exception on failure * Retry quota\_reserve on DBDeadlock * Handle NoMoreFixedIps in \_shutdown\_instance * Make sure instance\_type has extra\_specs * Remove locals() from nova/virt/libvirt package * Fix importing InstanceInfoCache during register\_all() * Make \_poll\_unconfirmed\_resizes() use objects * Revert "Add oslo-config-1.2.0a2 and pbr>=0.5.16 to requirements." * Preserve network order when using ConfigDrive * Revert "Initial scheduler support for instance\_groups" * fixes nova resize bug when force\_config\_drive is set * Add troubleshoot to baremetal PXE template * Sync db.models.Quota\* with migrations * Modify \_assertEqualListsOfObjects() function * Port hypervisor API into v3 part1 * Remove a layer of nesting in \_poll\_unconfirmed\_resizes() * Use InstanceList for \_heal\_instance\_info\_cache() * Remove straggling use of all-kwarg object methods * Allow scheduler manager NoValidHost exception to pass over RPC * Imported Translations from Transifex * Add oslo-config-1.2.0a2 and pbr>=0.5.16 to requirements * Remove usage of locals() for formatting from nova.scheduler.\* * Libvirt driver: normalize variable names (part1) * xenapi: script to rotate the guest logs * Clean up scheduler tests * Drop unused \_virtual\_power\_settings global * Remove junk file when ftp transfer failure * xenapi: revisit error handling around calls to agent * Remove the unused plugins framework * Added unit tests for vmware cluster driver * Adds expected\_errors decorator for API v3 * Sync oslo-incubator gettextutils * port Simple\_tenant\_usage API into v3 part1 * Remove db session hack from conductor's vol\_usage\_update() * Converts scheduler.utils.build\_request\_spec return to json primitive * Revert "Delegate authentication to quantumclient" * Retry the sfdisk command up to 3 times * No support for double nested 64 bit guest using VCDriver * Fill context on objects in lists * Setting static ip= for baremetal PXE boot * Add tests for libvirt's reboot functionality * Check the instance ID before creating it * Add missing tests for nova.db.api.instance\_system\_metadata\_\* * Add err\_msg param to baremetal\_deploy\_helper * Remove \_is\_precooked pre-cells Zones hacks * Raise max header size to accommodate large tokens * Make NovaObject support extra attributes in items() * Imported Translations from Transifex * Fix instance obj refresh() * Fix overzealous conductor test for vol\_usage\_update * Add missing tests for certificate\_\* methods * Log xml in libvirt \_create\_domain failures * Add unique constraints to Cell * Accept is\_public=None when listing all flavors * Add missing tests for cell\_\* methods * Add missing tests for nova.db.api.instance\_metadata\_\* * Don't deallocate network if destroy time out * Port server\_diagnostics extension to v3 API Part1 * Add old display name to update notification * Port fping extension to v3 API Part 1 * libvirt fix resize/migrates with swap or ephemeral * Allow reboot or rebuild from vm\_state=Error * Initial scheduler support for instance\_groups * Fix the ServerPasswordController class doc string * Imported Translations from Transifex * Cleanup certificate API extension * Enforce sqlite-specific flow in drop\_unique\_constraint * Remove unused cert db method * Fix bad vm\_state change in reboot\_instance() * Add rpc client side version control * xenapi: ensure agent check respects image flags * Drop \`bm\_pxe\_ips\` table from baremetal database * Adding fixed\_ip in create.end notification * Improved tests for instance\_actions\_\* * Refactored tests for instance\_actions\_\* * Add missing tests for provider\_fw\_rule\_\* methods * Session cleanup for db.security\_group\_rule\_\* methods * Add tests for nova.db.api.security\_group\_rule\_\* methods * Refactors qemu image info parsing logic * Port cells extension to v3 API Part 1 * Organize limits units and per-units constants * Fix flavor extra\_specs filter doesn't work for number * Replace utils.to\_bytes() with strutils.to\_bytes() * Updates nova.conf.sample * Remove bin lookup in conf sample generator * Refactor conf sample generator script * Remove unused arg from make\_class\_properties.getter method * Fix obj\_load() in NovaObject base class * Backup and restore object registry for tests * Fix the wrong reference by CONF * Port flavors core API to v3 tree * Remove usage of locals() from xenapi package * Remove trivial cases of unused variables (1) * Don't make nova-compute depend on iSCSI * Change resource links when url has no project id * Make sync\_power\_state routines use InstanceList * Enhance the validation of the quotas update * Add missing tests for compute\_node\_\* methods * Fix VMware Hyper can't honor hw\_vif\_model image property * Remove use of locals() in db migrations * Don't advertise mute cells capabilities upwards * Allow confirm\_resize if instance is in 'deleting' status * Port certificates API to v3 Part 2 * port agent API into v3 part1 * Port certificates API to v3 Part 1 * Naming instance directory by uuid in VMware Hyper * Revert "Fix local variable 'root\_uuid' ref before assign" * Use Python 3.x compatible octal literals * Fix and enable H403 tests * Remove usage of locals() from manager.py * Fix local variable 'root\_uuid' ref before assign * Improve the performance of migration 186 * Update to the latest stevedore * Quantum API \_get\_floating\_ip\_by\_address mismatch with Nova-Net * xenapi: remove auto\_disk\_config check during resize * xenapi: implement get\_console\_output for XCP/XenServer * Check libvirt version earlier * update\_dns() method optimization * Sync can\_send\_version() helper from oslo-incubator * Remove unused db api call * Quantumapi returns an empty network list * Add missing tests for nova.db.api.network\_\* * Cleanup overshadowing in test\_evacuate.py * Give a way to save why a service has been disabled * Cells: Add support for global cinder * Fix race conditions with xenstore * Imported Translations from Transifex * Remove explicit distribute depend * Fix assumed port has port\_security\_enabled * Rename functions in nova.compute.flavors from instance\_type * Remove redundant architecture property update in powervm snapshot * Use an inner join on aggregate\_hosts in aggregate\_get\_by\_host * xenapi: ensure instance metadata always injected into xenstore * Nova instance group DB support * Fix to disallow server name with all blank spaces * Replace functions in utils with oslo.fileutils * Refactors get\_instance\_security\_groups to only use instance\_uuid * Create an image BDM for every instance * DB migration to the new BDM data format * Fix dangling LUN issue under load with multipath * Imported Translations from Transifex * Add missing tests for s3\_image\_\* methods * Register libvirt driver with closed connection callback * Enhance group handling in extract\_opts * Removed code duplication in conductor.api * Refactored tests for instance\_fault\_\* * Added verbose error message in tests helper mixin * Adds v3 API extension discovery filtering * Adds support for the Indigo Virtual Switch (IVS) * Some libvirt driver lookups lacks proper exception handling * Put VM UUID to live migration error notification * Fix db.models.Instance description * Fix db.models.Certificate description * Fix db.models.ComputeNodeStats description * Fix db.models.ComputeNode description * Fix db.models.Service description * BDM class and transformation functions * Remove unused method in VMware driver * Cleanup nova exception message conversion * Update analyze\_opts to work with new nova.conf sample format * Remove unused methods from VirtAPI * Make xenapi use Instance object for host\_maintenance\_mode() * Make xenapi/host use instance objects for \_uuid\_find * Use InstanceList object for init\_host * Add Instance.info\_cache * Use Instance Objects for Start/Stop * Add lists of instance objects * Add base mixin class for object lists * Add deleted flag to NovaObject base * Export volume metadata to new instances * Sending volume IO usage broken * Rename unique constraints due to new convention * Replace openstack-common with oslo in HACKING.rst * Fixes test\_config\_drive unittest * Port evacuate API to v3 Part 2 * Port evacuate API to v3 Part 1 * Speeding up scheduler tests * Port rescue API to v3 Part 2 * Port rescue API to v3 Part 1 * Handle security group quota exceeded gracefully * Adds check that the core V3 API is loaded * Call virt.driver.destroy before deallocating network * More KeypairAPI cleanups * Improve Keypair error messages in osapi * Fix Keypair exception messages * Moving more tests to appropriate locations * Skip ipv6 tests on system without ipv6 support * Keypair API test cleanup * Alphabetize v3 API extension entry point list * Add missing exception to cell\_update() * Refactors scheduler.chance.select\_hosts to raise NoValidHost * Enhance unit test code coverage for availability zone * Converts 'image' to json primitive on compute.rpcapi.prep\_resize * Import osapi\_v3/enabled option in nova/test * Regenerate missing resized backing files * Moving \`test\_misc\` tests to better locations * Allocate networks in the background * Make the datetime utility function coerce to UTC * API to get the Cell Capacity * Update rpc/impl\_qpid.py from oslo * More detailed log in failing aggregate extra filter * xenapi: Added logging for sparse copy * Make object actions pass positional arguments * Don't snat all traffic when force\_snat\_range set * Add x-compute-request-id header when no response body * Call scheduler for run\_instance from conductor * correctly set iface-id in vmware driver * Fix a race where a soft deleted instance might be removed by mistake * Fix quota checks while resizing up by admin * Refactor libvirt driver exception handling * Avoiding multiple code loops in filter scheduler * Don't log warn if v3 API is disabled * Link to explanation of --checksum-full rule * Imported Translations from Transifex * Stop libvirt errors from outputting to strerr * Delete unused bin directory * Make instance object tolerate isotime strings * Add fake\_instance.py * Fix postgresql failures related to Data type * hardcode pbr and d2to1 versions * Silence exceptions from qpid connection.close() (from oslo) * Add Davanum to the mailmap * Fix VMwareVCdriver reporting incorrect stats * Adds ability to black/whitelist v3 API extensions * Clean up vmwareapi.network\_util.get\_network\_with\_the\_name * Imported Translations from Transifex * Normalize path for finding api\_samples dir * Add yolanda to the mailmap * Add notes about how doc generation works * python3: Add py33 to tox.ini * Improve Python 3.x compatibility * Ports consoles API to v3 API * Fix nova-compute fails to start if quantum is down * Handle instance directories correctly for migrates * Remove unused launch\_time from instance * Launch\_at and terminated\_at on server(s) response * Fixed two minor docs niggles * Adds v3 API disable config option * Fix bug where consoleauth depended on remote conductor service * Only update cell capabilites once * Ports ips api to v3 API * Make pylint ignore nova/objects/ * Set resized instance back to original vm\_state * Add power\_on flag to virt driver finish/revert migration methods * Cosmetic fix to parameter name in DB API * compute.api call conductor ComputeTaskManager for live-migrate * Removed session from reservation\_create() * Raise exception instances not exception classes * \_s3\_create handles image being deleted * Imported Translations from Transifex * Add instance object * Add base object model * Enhance multipath parsing * Don't delete sys\_meta on instance delete * Fix volume IO usage notifications been sent too often * Add missing os.path.abspath around csrfile * Fix colorizier thowing exception when a test fails * Add db test that checks that shadow tables are up-to-date * Sync shadow table for 159 migration * Sync shadow table for 157 migration * Sync shadow table for 156 migration * Add missing tests for nova.db.api.quota\_\* methods * Add tests for some db.security\_group\_\* methods * Fix \_drop\_unique\_constraint\_in\_sqlite() function * Clean up failed image transfers in instance spawn * Make testr preserve existing OS\_\* env vars values * Fix msg version type sent to cells RPC API * Verify that CONF.compute\_driver is defined * Fix EC2 RegisterImage ImageLocation starts with / * Support Cinder mount options for NFS/GlusterFS * Raise exception instances, not exception classes * Add update method of security group name and description * Cell weighing class to handle mute child cells * Add posargs support to flake8 call * Enumerate Flake8 E12x ignores * Fix and enable flake8 F823 * Fix and enable flake8 F812 * libvirt: improve the specification of network disks * Imported Translations from Transifex * In utils.tempdir, pass CONF.tempdir as an argument * Delegate authentication to quantumclient * Pull binary name from sys.argv[0] * Rename policy auth for V3 os-fixed-ips * Fix internationalization for some LOG messages * Enumerate Flake8 Fxxx ignores * Enable flake8 E721 * Removing misleading error message * No relevant message when stop a stopped VM * Cells: Add filtering and weight support * API Extensions framework for v3 API Part 2 * fix a misleading docstring * xenapi: make the xenapi agent optional per image * Fix config drive code logical error * Add missing conversion specifier to ServiceGroupUnavailable * Deprecate compute\_api\_class option in the config * Add node as instance attribute for notification * removes project\_id/tenant\_id from v3 api urls * Set up 'compute\_task' conductor namespace * Removed superflous eval usage * Fix log message * Sync shadow table for 179 migration * Remove copy paste from 179 migration * Sync shadow table for 175 and 176 migration * Change db \`deleted\` column type utils * Fix tests for sqlalchemy utils * Add missing tests for nova.db.api.quota\_class\_\* * Moved sample network creation out of unittest base class constructor * Add missing tests for db.api.reservation\_\* * add xml api sample tests to os-tenant-network * Remove locals() usage from nova.virt.libvirt.utils * IPMI driver sets bootdev option persistently * update mailmap * Imported Translations from Transifex * Remove tempest hack for create/rebuild checks * Better error message on malformed request url * virt: Move generic virt tests to nova/tests/virt/ * vmwareapi: Move tests under tests/virt/vmwareapi/ * hyperv: Move tests under nova/tests/virt/hyperv * Fix UnboundLocalError in powervm lvm cleanup code * Delete a quota through admin api * Remove locals() usage from nova.virt.libvirt.volume * Importing correlation\_id middleware from oslo-incubator * Make a few places tolerant of sys\_meta being a dict * Remove locals() from scheduler filters * Rename requires files to standard names * Imported Translations from Transifex * translates empty remote\_ip\_prefix to valid cidr for nova * Reset task\_state when resetting vm\_state to ACTIVE * xenapi: Moving tests under tests/virt/xenapi/ * xenapi: Disable VDI size check when root\_gb=0 * Remove ImageTooLarge exception * Move ImageTooLarge check to Compute API * Share checks between create and rebuild * Remove path\_exists from NFS/GlusterFS drivers * Removed session from fixed\_ip\_\*() functions * Catch InstanceNotFound in instance\_actions GET * Using unicode() to handle image's properties * Adds live migration support to cells API * Raise AgentBuildNotFound on updating/destroying deleted object * Add missing tests for nova.db.api.agent\_build\_\* methods * Don't update API cell on get\_nwinfo * Optimize SecurityGroupsOutputController by len(servers) * get\_instance\_security\_groups() fails if no name on security group * libvirt: Moving tests under tests/virt/libvirt * Make it easier to add namespaced rpc APIs * baremetal: Move tests under tests/virt/baremetal * Disallow resize if image not available * powervm: Move tests under tests/virt/powervm * Sync RPC serializer changes from Oslo * Fix missing argument to logging warning call * set ERROR state when scheduler hits max attempts * Sync latest RPC changes from oslo * Add notification for live migration * Add requests requirement capped <1.2.1 * Adding tests for rebuild image checks * Add ImageNotActive check for instance rebuild * Fix error in instance\_get\_all\_by\_filters() use of soft\_deleted filter * Fix resize when instance has no image * Fixes encoding issues for nova api req body * Update run\_tests.sh to run flake8 too * Added validation for networks parameter value * Added attribute 'ip' to server search options * Make nova-api use servicegroup.API.service\_is\_up() * Add memorycache import into the oslo config * Fix require\_context() decorators * Imported Translations from Transifex * Remove locals() from nova/cells/\* * Update mailmap * Strip exec\_dirs prefix from rootwrap filters * Clean up test\_api\_samples a bit * Remove unnecessary parens in test\_volumes * Use strict=True instead of \`is\_valid\_boolstr\` * Editable default quota support * Remove usage of locals() for formatting from nova.api.\* * Switch to flake8+hacking * Fix flake8 errors in anticipation of flake8 * Don't update DB records for unchanged stats * baremetal: drop 'prov\_mac\_address' column * The vm\_state should not be modified until the task is complete * Return Customer's Quota Usage through Admin API * Use prettyxml output * Remove locals() from messages in virt/disk/api.py * 'm1.tiny' now has root\_gb=1 * Cast \`size\` to int before comparison * Don't raise unnecessary stack traces in EC2 API * Mox should cleanup before stubs * Reverse compare arguments in filters tests * Don't inject settings for dynamic network * Add ca cert file support to cinder client requests * libvirt: Catch VIR\_ERR\_NO\_DOMAIN in list\_instances * Revert "Include list of attached volumes with instance info" * Sync rpc from oslo * Remove openstack.common.version * Fix for missing multipath device name * Add missing tests for db.fixed\_ip\_\*(). functions * xenapi: ensure vdi is not too big when resizing down * Cells: Don't allow active -> build * Fix whitespace issue in indent * Pass the proper admin context to update\_dhcp * Fix quantum security group driver to accept none for from/to\_port * Reverse path SNAT for DNAT floating-ip * Use Oslo's \`bool\_from\_string\` * Handle IPMI transient failures better * Improve unit tests for DB archiving * Remove "#!/usr/bin/env python" from .py files under nova/cmd * Add missing unique constraint to KeyPair model * Refactored tests for db.key\_pair\_\*() functions * Refactor nova.volume.cinder.API to reduce roundtrips with Cinder * Fix response from snapshot create stub * Hide lock\_prefix argument using synchronized\_with\_prefix() * Cleanups for create-flavor * Cleanup create flavor tests * Imported Translations from Transifex * Test for remote directory creation before shutting down instance * Fix run\_tests.sh usage of tools/colorizer.py * Move get\_table() from test\_migrations to sqlalchemy.utils * Convert Nova to use Oslo service infrastructure * Show the cause of virt driver error * Detach volume fails when using multipath iscsi * API extensions framework for v3 API * Sync service and threadgroup modules from oslo * Fix header issue for baremetal\_deploy\_helper.py * Extract getting instance's AZ into a helper module * Allow different paths for deploy-helper helpers * Show exception details for failed deploys * Imported Translations from Transifex * Check QCOW2 image size during root disk creation * Adds useful debug logging to filter\_scheduler * fix non reporting of failures with floating IP assignment * Improve message and logging for corrupt VHD footers * Cleanup for test\_create\_server\_with\_deleted\_image * Check cached SSH connection in PowerVM driver * Allow a floating IP to be associated to a specific fixed IP * Record smoketest dependency on gFlags * Make resize/migrated shared storage aware * Imported Translations from Transifex * Add pointer to compute driver matrix wiki page * xenapi: cleanup vdi when disk too big exception raised * Update rootwrap with code from oslo * Fixes typo in server-evacuate-req.xml * Fix variable referenced before assginment in vmwareapi code * Remove invalid block\_device\_mapping volume\_size of '' * Architecture property updated in snapshot libvirt * Add sqlalchemy migration utils.create\_shadow\_table method * Add sqlalchemy migration utils.check\_shadow\_table method * Change type of cells.deleted from boolean to integer * Pass None to image if booted from volume in live migration * Raise InstanceInvalidState for double hard reboot * Removes duplicate assertEqual * Remove insecure default for signing\_dir option * Removes unnecessary check for admin context in evacuate * Fix zookeeper import and tests * Make sure that hypervisor nodename is set correctly in FakeDriver * Optimize db.instance\_floating\_address\_get\_all method * Session cleanup for db.floating\_ip\_\* methods * Optimize instance queries in compute manager * Remove duplicate gettext.install() calls * Include list of attached volumes with instance info * Catch volume create exception * Fixes KeyError bug with network api associate * Add unitests for VMware vif, and fix code logical error * Fix format error in claims * Fixes mock calls in Hyper-V test method * Adds instance root disk size checks during resize * Rename nova.compute.instance\_types to flavors * Convert to using newly imported processutils * Import new additions to oslo's processutils * Imported Translations from Transifex * Enable live block migration when using iSCSI volumes * Nova evacuate failed when VM is in SHUTOFF status * Transition from openstack.common.setup to pbr * Remove random print statements * Remove security\_group\_handler * Add cpuset attr to vcpu conf in libvirt xml * Imported Translations from Transifex * Remove referances to LegacyFormatter in example logging.conf * libvirt: ignore NOSTATE in resume\_state\_on\_host\_boot() method * Sync oslo-incubator print statement changes * Fix stub\_instance() to include missing attributes * Add an index to compute\_node\_stats * Convert to using oslo's execute() method * Import latest log module from oslo * Being more defensive around the use\_ipv6 config option * Update hypervisor\_hostname after live migration * Make nova-network support requested nic ordering * nova coverage creates lots of empty folders * fix broken WSDL logic * Remove race condition (in FloatingIps) * Add missing tests for db.floating\_ip\_\* methods * Deprecate show\_host\_resources() in scheduler manager * Add force\_nodes to filter properties * Adds --addn-hosts to the dnsmasq arg list * Update our import of oslo's processutils * Update oslo-incubator import * Delete InstanceSystemMetadata on instance deletion * vmwareapi: Add supported\_instances to host state * xenapi: Always set other\_config for VDIs * Copy the RHEL6 eventlet workaround from Oslo * Move db.fixed\_ip\_\* tests from DbApiTestCase to FixedIpTestCase * Checks if volume can be attached * Call format\_message on InstanceTypeNotFound exception * xenapi: Don't swallow missing SR exception * Prevent rescuing a VM with a partially mounted volume * Fix key error when create lpar instance failed * Reset migrating task state for MigrationError exceptions * Volume IO usage gets reset to 0 after a reboot / crash * Sync small and safe changes from oslo * Sync jsonutils from oslo * Fix EC2 instance bdm response * Rename \_check\_image\_size to \_get\_and\_check\_image\_metadata * Convert the cache key from unicode to a string * Catch glance image create exceptions * Update to using oslo periodic tasks implementation * Import oslo periodic tasks support * import and install gettext in vm\_vdi\_cleaner.py * Fix baremetal get\_available\_nodes * Fix attach when running as root without sysfsutils * Make \_build\_network\_info\_model testable * Fix building quantumapi network model with network list * Add the availability\_zone to the volume.usage notifications * Add delete\_net\_interface function * Performance optimization for contrib.flavorextraspecs * Small whitespace tweak * Kill off usage of locals() in the filter\_scheduler * Remove local variable only used in logging * Create instance with deleting image * Refactor work with db.instance\_type\_\* methods * Fix flakey TestS3ImageService bug * Add missing snapshot image properties for VMware Hyper * Imported Translations from Transifex * Fix VMware Hyper console url parameter error * Update NovaBase model per changes on oslo.db.sqlalchemy * Send a instance create error notification * Refactor \_run\_instance() to unify control flow * set bdm['volume\_id'] to None rather than delete it * Destroy conntrack table on source host during migration * Adds tests for isolated\_hosts\_filter * Fixes race condition of deleting floating ip * Imported Translations from Transifex * Wrong proxy port in nova.conf for Spice proxy * Fix missing kernel output via VNC/Spice on boot * Fix bug in db.instance\_type\_destroy * Move get\_backdoor\_port to base rpc API * Move db.instance\_type\_extra\_specs\_\* to db.instance\_type\_\* methods * Add missing test for db.instance\_type\_destroy method * Fix powervm driver resize instance error * Support FlatDHCP network for VMware Hyper * Imported Translations from Transifex * Deprecate conductor ping method * Add an rpc API common to all services * If rescue fails don't error the instance * Make os.services.update work with cells * Fix fixed\_ip\_count\_by\_project in DB API * Add unit tests for /db/api.py#fixed\_ip\_\* * Add option to exclude joins from instance\_get\_by\_uuid * Remove unnecessary method argument * Improve Python 3.x compatibility * ec2 CreateVolumes/DescribeVolumes status mapping * Can now reboot rescued instances in xenapi * Allows xenapi 'lookup' to look for rescue mode VMs * Adds tests to xenapi.vm\_utils's 'lookup' method * Imported Translations from Transifex * Stop vm\_state reset on reboot of rescued vm * Fix hyperv copy file error logged incorrect * Fix ec2 CreateVolumes/DescribeVolumes status * Imported Translations from Transifex * Don't swallow PolicyNotAuthorized for resize/reboot actions * Remove unused exception and variable from scheduler * Remove unnecessary full resource audits at the end of resizes * Update the log module from oslo-incubator * Translate NoMoreFloatingIps exception * Imported Translations from Transifex * Fix up regression tester * Delete extra space to api/volumes message * Map internal S3 image state to EC2 API values * removing unused variable from a test * Translate cinder NotFound exception * hypervisor tests more accurate db * Added comments to quantum api client * Cleanup and test volume usage on volume detach * Import and convert to oslo loopingcall * Remove orphaned db method instance\_test\_and\_set * baremetal: VirtualPowerDriver uses mac addresses in bm\_interfaces * Sync rpc from oslo-incubator * Correct disk's over committed size computing error * Imported Translations from Transifex * Allow listing fixed\_ips for a given compute host * Imported Translations from Transifex * baremetal: Change input for sfdisk * Make sure confirm\_resize finishes before setting vm\_state to ACTIVE * Completes the power\_state mapping from compute driver and manager * Make compute/manager use conductor for unrescue() * Add an extension to show the mac address of a ip in server(s) * Cleans up orphan compute\_nodes not cleaned up by compute manager * Allow for the power state interval to be configured * Imported Translations from Transifex * Fix bug in os-availability-zone extension * Remove unnecessary db call in scheduler driver live-migration code * baremetal: Change node api related to prov\_mac\_address * Don't join metadata twice in instance\_get\_all() * Imported Translations from Transifex * Don't hide stacktraces for unexpected errors in rescue * Fix issues with check\_instance\_shared\_storage * Remove "undefined name" pyflake errors * Optimize some of compute/manager's periodic tasks' DB queries * Optimize some of the periodic task database queries in n-cpu * Change DB API instance functions for selective metadata fetching * Replace metadata joins with another query * xenapi: Make \_connect\_volume exc handler eventlet safe * Fix typo: libvir => libvirt * Remove multi scheduler * Remove unnecessary LOG initialisation * Remove unnecessary parens * Simplify random host choice * Add NOVA\_LOCALEDIR env variable * Imported Translations from Transifex * Clarify volume related exception message * Cleanup trailing whitespace in api samples * Add tenant/ user id to volume usage notifications * Security groups may be unavailable * Encode consoleauth token in utf-8 to make it a str * Catch NoValidHost exception during live-migration * Evacuated instance disk not deleted * Fix a bad tearDown method in test\_quantumv2.py * Import eventlet in \_\_init\_\_.py * Raise correct exception for duplicate networks * Add an extension to show the network id of a virtual interface * Fix error message in pre\_live\_migration * Add reset function to nova coverage * Imported Translations from Transifex * nova-consoleauth start failed by consoleauth\_manager option missing * set timeout for paramiko ssh connection * Define LOG globally in baremetal\_deploy\_helper * Allow describe\_instances to use tags for searches * Correct network uuid field for os-network extension * Only call getLogger after configuring logging * Add SecurityGroups API sample tests * Cannot boot vm if quantum plugin does not support L3 api * Add missing tests for instance\_type\_extra\_specs\_\* methods * Remove race condition (in InstanceTypeProjects) * Deprecate old vif drivers * Optimize resource tracker queries for instances * baremetal: Integrate provisioning and non-provisioning interfaces * Move console scripts to entrypoints * Remove deprecated Grizzly code * Fallback to conductor if types are not stashed * Imported Translations from Transifex * Resolve conflicting mac address in resize * Simplify and correct the bm partition sizes * Fix legacy\_net\_info guard * Fix SecurityGroups XML sample tests * Modify \_verify\_response to validate response codes * Fix a typo in attach\_interface error path * After migrate, catch and remove deleted instances * Grab instance for migration before updating usage * Explain why the give methods are whitelisted * libvirt: Get driver type from base image type * Guard against content being None * Limit the checks for block device becoming available * Fix \_error\_out\_instance exception handler * Raise rather than generating millions of IPs * Add unit tests for nova.volume.cinder.API * Update latest oslo.setup * baremetal: Drop unused columns in bm\_nodes * Remove print statements * Imported Translations from Transifex * Fix the python version comparison * Remove gettext.install() from nova/\_\_init\_\_.py * Sync latest gettextutils from oslo-incubator * Return 409 on creating/importing same name keypair * Delete tests.baremetal.util.new\_bm\_deployment() * Return proper error message when network conflicts * Better iptables DROP removal * Query quantum once for instance's security groups * quantum security group driver nova list shows same group * Sync in matchmaker and qpid Conf changes from oslo * improve handling of an empty dnsmasq --domain * Fix automatic confirmation of resizes for no-db-compute * 'injected\_files' should be base 64 encoded * Add missing unit tests for FlavorActionController * Set default fixed\_ip quota to unlimited * Accepts aws-sdk-java timestamp format * Imported Translations from Transifex * get context from req rather than getting a new admin context * Use Cluster reference to reduce SDK calls * Fix missing punctuation in docstring * xenapi: fix support for iso boot * Ensure only pickle-able objects live in metadata * sync oslo db/sqlalchemy module * Convert host value from unicode to a string * always quote dhcp-domain, otherwise dnsmasq can fail to start * Fix typo in the XML serialization os-services API * Add CRUD methods for tags to the EC2 API * Fix migrating instance to the same host * Rework time handling in periodic tasks * Show quota 'in\_use' and 'reserved' info * Imported Translations from Transifex * Fix quantum nic allocation when only portid is specified * Make tenant\_usage fall back to instance\_type\_id * Use format\_message on exceptions instead of str() * Add a format\_message method to the Exceptions * List AZs fails if there are disabled services * Switch nova-baremetal-deploy-helper to use sfdisk * Bring back colorizer again with error results * Imported Translations from Transifex * Adds Tilera back-end for baremetal * Always store old instance\_type during a migration * Make more readable error msg on quantum client authentication failure * Adding netmask to dnsmasq argument --dhcp-range * Add missing tests for db.instance\_type\_access\_\* methods * Remove race condition (in InstanceTypes) * Add missing tests for db.instance\_type\_\* methods * Imported Translations from Transifex * set up FakeLogger for root logger * Fix /servers/os-security-groups using quantum * NoneType exception thrown if driver live-migration check returns None * Add missing info to docstring * Include Co-authored-by entries in AUTHORS * Do not test foreign keys with SQLite version < 3.7 * Avoid using whitespace in test\_safe\_parse\_xml * xenapi: Retrieve VM uuid from xenstore * Reformat openstack-common.conf * Imported Translations from Transifex * Fixes Nova API /os-hosts missing element "zone" * disable colorizer as it swallows fails * Make iptables drop action configurable * Fixes argument order of quantumv2.api.get\_instance\_nw\_info * Make \_downsize\_quota\_delta() use stashed instance types * py2.6 doesn't support TextTestRunner resultclass * Reset ec2 image cache between S3 tests * Sync everything from oslo-incubator * Sync rpc from oslo-incubator * Don't log traceback on rpc timeout * Adds return-type in two functions' docstrings * Remove unnecessary checks in api.py * translate cinder BadRequest exception * Initialize compute manager before loading driver * Add a comment to placeholder migrations * xenapi: fix console for rescued instance * Fixes passing arbitrary conductor\_api argument * Make nova.virt.fake.FakeDriver useable in integration testing * Remove unnecessary DB call to find EC2 AZs * Remove outdated try except block in ec2 code * nova-manage vm list fails looking 'instance\_type' * Update instance network info cache to include vif\_type * Bring back sexy colorized test results * Don't actually connect to libvirtd in unit tests * Add placeholder migrations to allow backports * Change arguments to volume\_detach() * Change type of ssh\_port option from Str to Int * xenapi: rpmbuild fixes * Set version to 2013.2 2013.1.rc1 ---------- * Fix Hyper V instance conflicts * Add caching for ec2 mapping ids * Imported Translations from Transifex * fix add-fixed-ip with quantum * Update the network info when using quantum * List InstanceNotFound as a client exception * Refactor db.service\_destroy and db.service\_update methods * Fix console support with cells * Fix missing argument to QemuImageInfo * Add missing tests for db.virtual\_interface\_\* methods * Fix multiple fixed-ips with quantum * Add missing tests for db.service\_\* methods * Ensure that headers are returned as strings, not integers * Enable tox use of site-packages for libvirt * Require netaddr>=0.7.6 to avoid UnboundLocalError * Pass project id in quantum driver secgroup list * Fixes PowerVM spawn failed as missing attr supported\_instances * Fix RequestContext crashes w/ no service catalog * Prevent volume-attach/detach from instances in rescue state * Fix XenAPI performance issue * xenapi: Adding logging for migration plugin * libvirt: Tolerate existing vm(s) with cdrom(s) * Remove dead code * Remove unused virt.disk.api methods bind/unbind * Imported Translations from Transifex * Revert "Remove the usage of instance['extra\_specs' * Add standard methods to the Limits API * Store project\_id for instance actions * rstrip() strips characters, not strings * Fix use of libvirt\_disk\_prefix * Revert 1154253 causes XenServer image compat issue * Reset migrating task state for more Exceptions * Fix db archiving bug with foreign key constraints * Imported Translations from Transifex * Update migration 153 for efficiency * Don't include traceback when wrapping exceptions * Fix exception message in Networks API extension * Make conductor's quota methods pass project\_id properly * Fix: improve API error responses from os-hosts extension * Add missing API doc for networks-post-req * Make os-services API extensions consistent * Fix system\_metadata "None" and created\_at values * Add the serial to connection info for boot volumes * Do not accept invalid keys in quota-update * Add quotas for fixed ips * Makes safe xml data calls raise 400 http error instead of 500 * Fixes an iSCSI connector issue in the Hyper-V driver * Check keypair destroy result operation * Resize/Migrate refactoring fixes and test cases * Fixes Hyper-V live migration with attached volumes * Force nova to use keystone v2.0 for auth\_token * Fix issues with cells and resize * Fix copyright - from LLC to Foundation * Don't log traceback on expected console error * Generalize console error handling during build * Remove sqlalchemy calling back to DB API * Make ssh key injection work with xenapi agent * Fix use of potentially-stale instance\_type in tenant\_usage * Drop gzip flag from tar command for OVF archives * Fix reconnecting to libvirt * List ComputeHostNotFound as a client exception * Fix: Nova aggregate API throws an uncaught exception on invalid host * Do cleaning up resource before rescheduling * nova-manage: remove unused import * Read instance resource quota info from "quota" namespace * LibvirtGenericVIFDriver update for stp * Switch to final 1.1.0 oslo.config release * Skip deleted fixed ip address for os-fixed-ips extension * Return error details to users in "dns-create-private-domain" * Lazy load CONF.quota\_driver * Fix cells instance deletion * Don't load system\_metadata when it isn't joined * List ConsoleTypeInvalid as a client exception * Make run\_instance() bail quietly if instance has been deleted * Delete instance metadata when delete VM * Virtual Power Driver list running vms quoting error * Refactor work with session in db.block\_device\_mapping\_\* methods * Add missing tests for db.block\_device\_mapping\_\* methods * websockify 0.4 is busted * Sync rpc from oslo-incubator * Fix: nova-manage throws uncaught exception on invalid host/service * Fix more OS-DCF:diskConfig XML handling * Fix: Managers that incorrectly derive from SchedulerDependentManager * Fix nova-manage --version * Pin SQLAlchemy to 0.7.x * Deprecate CONF.fixed\_range, do dynamic setup * Remove the usage of instance['extra\_specs'] * Fix behaviour of split\_cell\_and\_item * Fix quota issues with instance deletes * Fixes instance task\_state being left as migrating * Force resource updates to update updated\_at * Prepare services index method for use with cells * Handle vcpu counting failures gracefully * Return XML message with objectserver 404 * xenapi: Fix reboot with hung volumes * Rename LLC to Foundation * Pass migration\_ref when when auto-confirming * Revert changing to FQDN for hostnames * Add numerous fixes to test\_api\_samples * Fixes instance action exception in "evacuate" API * Remove instance['instance\_type'] relationship from db api * Refactor db tests to ensure that notdb driver is used * Rewrap two lines * Server create will only process "networks" if os-networks is loaded * Fixes nbd device can't be released error * Correct exception args in vfs/guestfs * Imported Translations from Transifex * Prevent nova services' coverage data from combining into nova-api's * Check if flavor id is an empty string * Simple syntax fix up * Fixes volume attach on Hyper-V with IPv6 * Add ability to control max utilization of a cell * Extended server attributes can show wrong hypervisor\_hostname * Imported Translations from Transifex * Remove uses of instance['instance\_type'] from nova/notifications * Libvirt driver create images even without meta * Prevent rescue for volume-backed instances * Fix OS-DCF:diskconfig XML handling * Imported Translations from Transifex * Compile BigInteger to INTEGER for sqlite * Add conductor to nova-all * Make bm model's deleted column match database * Update to Quantum Client 2.2.0 * Remove uses of instance['instance\_type'] from nova/scheduler * Remove uses of instance['instance\_type'] from nova/api * Remove uses of instance['instance\_type'] from nova/network * Remove uses of instance['instance\_type'] from nova/compute * Correct substring matching of baremetal VPD node names * Fix Wrong syntax for set:tag in dnsmasq startup option * Fix instance evacuate with shared storage * nova-manage: remove redundant 'dest' args * clear up method parameters for \_modify\_rules * Check CONF values \*after\* command line args are parsed * Make nova-manage db archive\_deleted\_rows more explicit * Fix for delete error in Hyper-V - missing CONF imports * add .idea folder to .gitignore pycharm creates this folder * Make 'os-hosts/node1' case sensitivity defer to DB * Fix access\_ip\_\* race * Add MultipleCreate template and fix conflict with other templates * Update tox.ini to support RHEL 6.x * Fix instance type cleanup when doing a same-id migration * Tiny typo * Remove unnecessary setUp() and tearDown() methods * Remove duplicate API logging * Remove uses of instance['instance\_type'] from libvirt driver * Remove uses of instance['instance\_type'] from powervm driver * Remove uses of instance['instance\_type'] from xenapi driver * Fixed image filter support for vmware * Switch to oslo.config * Fix instance\_system\_metadata deleted columns * Remove parameters containing passwords from Notifications * Add missing action\_start if deleting resized inst * Fix issues with re-raising exceptions * Don't traceback in the API on invalid keypair * delete deleted image 500 bug * Moves Hyper-V options to the hyperv section * Fix 'to integer' conversion of max and min count values * Standarize ip validation along the code * Adjusts reclaim instance interval of deferred delete tests * Fix Network object encoding issue when using qpid * Rename VMWare to VMware * Put options in a list * Bump instance updated\_at on network change * Catching InstanceNotFound exception during reboot instance * Imported Translations from Transifex * Remove completed FIXME * quantum security\_group driver queries db regression * Prevent reboot of rescued instance * Baremetal deploy helper sets ODIRECT * Read baremetal images from extra\_specs namespace * Rename source\_(group\_id/ip\_prefix) to remote\_(group\_id/ip\_prefix) * docs should indicate proper git commit limit * Imporove db.sqlalchemy.api.\_validate\_unique\_server\_name method * Remove unused db calls from nova.db.api * Fixes oslo-config update for deprecated\_group * fix postgresql drop race * Compute manager should remove dead resources * Fix an error in compute api snapshot\_volume\_backed bdm code * Fixes disk size issue during image boot on Hyper-V * Updating powervm driver snapshot with update\_task\_state flow * Imported Translations from Transifex * Add ssh port and key based auth to VPD * Make ComputeManager \_running\_deleted\_instances query by uuid * Refactor compute manager \_get\_instances\_by\_driver * Fix target host variable from being overwritten * Imported Translations from Transifex * Fixes live migration with attached volumes issue * Don't LOG.error on max\_depth (by default) * Set vm\_state to ERROR on net deallocate failure * validate security\_groups on server create * Fix IBM copyright strings * Implement rules\_exist method for quantum security group driver * Switch to using memorycache from oslo * Remove pylint errors for undefined GroupException members * Sync timeutils and memorycache from oslo * instance\_info\_cache\_update creates wrongly * Tone down logging while waiting for conductor * Add os-volumes extension to api samples * Regenerate nova.conf.sample * Fix ephemeral devices on LVM don't get mkfs'd * don't stack trace if long ints are passed to db * Pep8/pyflakes cleanup of deprecated\_api * Fix deprecated network api * Fixes the Hyper-V driver's method signature * Imported Translations from Transifex * Fixes a Hyper-V live migration issue * Don't use instance['instance\_type'] for scheduler filters in migration * Fallback coverage backdoor telnet connection to lo * Add instance\_type\_get() to virt api * Make compute manager revert crashed migrations on init\_host() * Adds API Sample tests for Volume Attachments * Ensure that FORWARD rule also supports DHCP * Remove duplicate options(joinedload) from aggregates db code * Shrink size of aggregate\_metadata\_get\_by\_host sql query * Remove old commented out code in sqlalchemy models * Return proper error messages while disassociating floating IP * Don't blindly skip first migration * Imported Translations from Transifex * Suppress retries on UnexpectedTaskStateErrors * Fix \`with\_data\` handling in test-migrations * BM Migration 004: Actually drop column * Actually run baremetal migration tests * Adds retry on upload\_vhd for xapi glance plugin * ec2 \_format\_security\_group() accesses db when using quantum\_driver * Remove un-needed methods * Prevent hacking.py from crashing on unexpected import exception * Bump python-quantumclient version to 2.1.2 * Improve output msgs for \_compare\_result * Add a 'hw\_' namespace to glance hardware config properties * Makes sure required powervm config options are set * Update OpenStack LLC to Foundation * Improve hackings docstring detection * Make sure no duplicate forward rules can exist * Use min\_ram of original image for snapshot, even with VHD * Revert IP Address column length to 39 * Additional tests for safe parsing with minidom * Make allocate\_for\_instance() return only info about ports allocated * Fix crash in quantumapi if no network or port id is specified * Unpin PasteDeploy dependency version * Unpin routes dependency version * Unpin suds dependency version * Unpin Cheetah dependency version * Allow zk driver be imported without zookeeper * Retry floating\_ip\_fixed\_ip\_associate on deadlock * Fix hacking.py to handle 'cannot import x' * Add missing import to fakelibvirt * Migration 148: Fix drop table dependency order * Minor code optimization in \_compute\_topic * Fix hacking.py to handle parenthesise in from import as * Fix redefinition of function test\_get\_host\_uptime * Migration 147: Prevent duplicate aggregate\_hosts * Rework instance actions to work with cells * Fix incorrect zookeeper group name * Sync nova with oslo DB exception cleanup * Fix broken baremetal migration tests * if reset fails, display the command that failed * Remove unused nova.db.api:instance\_get\_all\_by\_reservation * Add API Sample tests for Snapshots extension * Run libguestfs API calls in a thread pool * Change nova-dhcpbridge FLAGFILE to a list of files * Imported Translations from Transifex * Readd run\_tests.sh --debug option * Clean unused kernels and ramdisks from image cache * Imported Translations from Transifex * Ensure macs can be serialized * Remove Print Statement * Prevent default security group deletion * libvirt: lxml behavior breaks version check * Add missing import\_opt for flat\_injected * Add processutils from oslo * Updates to OSAPI sizelimit middleware * Remove compat cfg wrapper * Fix exception handling in baremetal API * Make guestfs use same libvirt URI as Nova * Make LibvirtDriver.uri() a staticmethod * Enable VM DHCP request to reach DHCP agent * Don't set filter name if we use Noop driver * Removes unnecessary qemu-img dependency on powervm driver * Migration 146: Execute delete call * Add \`post\_downgrade\` hook for migration tests * Fix migration snake-walk * BM Migrations 2 & 3: Fix drop\_column statements * Migration 144: Fix drop index statement * Remove function redefinitions * Migration 135: Fix drop\_column statement * Add missing ec2 security group quantum mixin * Fix baremetal migration skipping * Add module prefix to exception types * Flush tokens on instance delete * Fix launching libvirt instances with swap * Spelling: compatable=>compatible * import base\_dir\_name config option into vmwareapi * Fix ComputeAPI.get\_host\_uptime * Move DB thread pooling to DB API * Use a fake coverage module instead of real one * Standardize the coverage initializations * Sync eventlet\_backdoor from oslo-incubator * Sync rpc from oslo-incubator * Fix message envelope keys * Remove race condition (in Networks) * Move some context checking code from sqlalchemy * Baremetal driver returns accurate list of instance * Identify baremetal nodes by UUID * Improve performance of baremetal list\_instances * Better error handling in baremetal spawn & destroy * Wait for baremetal deploy inside driver.spawn * cfg should be imported from oslo.config * Add Nova quantum security group proxy * Add a volume driver in Nova for Scality SOFS * Make nova security groups more pluggable * libvirt: fix volume walk of /dev/disk/by-path * Add better status to baremetal deployments * Fix handling of source\_groups with no-db-compute * Improve I/O performance for periodic tasks * Allow exit code 21 for 'iscsiadm -m session' * Removed duplicate spawn code in PowerVM driver * Add API Sample tests for Hypervisors extension * Log lifecycle events to log INFO (not ERROR) * Sync rpc from oslo-incubator * sync oslo log updates * Adding ability to specify the libvirt cache mode for disk devices * Sync latest install\_venv\_common.py * Make add-fixed-ip update nwfilter wth in libvirt * Refactor nwfilter parameters * ensure we run db tests in CI * More gracefully handle TimeoutException in test * Multi-tenancy isolation with aggregates * Fix pep8 issues with test\_manager.py * Fix broken logging imports * Fix hacking test to handle namespace packages * Use oslo-config-2013.1b4 * support preallocated VM images * Fix instance directory path for lxc * Add snapshot methods to fakes.py * PowerVMDiskAdapter detach/cleanup refactoring * Make ComputeTestCase.test\_state\_revert faster * Add an extension to show image size * libvirt: Use uuid for instance directory name * Support running periodic tasks immediately at startup * Fix XMLMatcher error reporting * Fix XML config tests for disk/net/cpu tuning * Add support for network adapter hotplug * Handle lifecycle events in the compute manager * Add support for lifecycle events in the libvirt driver * Enhance IPAdresses migration tests * Add basic infrastructure for compute driver async events * Fix key check in instance actions formatter * Add a safe\_minidom\_parse\_string function * Documentation cleanups for nova devref * Fix leak of loop/nbd devices in injection using localfs * Add support for instance CPU consumption control * Add support for instance disk IO control * Retry bw\_usage\_update() on innodb Deadlock * Change CIDR column size on migration version 149 * Provide way to pass rxtx factor to quantum * Fibre channel block storage support (nova changes) * Default SG rules for the Security Group "Default" * create new cidr type for data storage * Ensure rpc result is primitive types * Change all instances of the non-word "inteface" to "interface" * Remove unused nova.db.api:network\_get\_by\_bridge * Fix a typo in two comments. networksa -> networks * Live migration with an auto selection of dest * Remove unused nova.db.api:network\_get\_by\_instance * Fix network list and show with quantum * Remove unused db calls from nova.db.sqlalchemy.api * Remove unused db calls * Small spelling fix in sqlalchemy utils * Fix \_get\_instance\_volume\_block\_device\_info call parameter * Do not use abbreviated config group names (zookeeper) * Prevent the unexpected with nova-manage network modify * Fix hacking tests on osx * Enable multipath for libvirt iSCSI Volume Driver * Add select\_hosts to scheduler manager rpc * Add and check data functions for test\_migrations 141 * fix incorrectly defined ints as strs * Remove race condition (in TaskLog) * Add generic dropper for duplicate rows * Imported Translations from Transifex * Fix typo/bug in generic UC dropper * remove intermediate libvirt downloaded images * Add support for instance vif traffic control * Add libvirt XML schema support for resource tuning parameters * Fix instance can not be deleted after soft reboot * Correct spelling of quantum * Make pep8 tests run inside virtualenv * Remove tests for non-existing SimpleScheduler * libvirt: Fix LXC container creation * Rename 'connection' to 'driver' in libvirt HostState * Ensure there is only one instance of LibvirtDriver * Stop unit test for prompting for a sudo password * clean up missing whitespace after ':' * Push 'Error' result from event to instance action * Speedup the revert\_state test * Add image to request\_spec during resize * Ensure start time is earlier than end time in simple\_tenant\_usage * Split out body of loop in \_sync\_power\_states in compute manager * Remove dead variable assignment in compute manager * Assign unique names with os-multiple-create * Nova network needs to take care of existing alias * Delete baremetal interfaces when their parent node is deleted * Harmonize PEP8 checking between tox and run\_tests.sh * VirtualPowerDriver catches ProcessExecutionError * [xenapi] Cooperatively yield during sparse copy * Allow archiving deleted rows to shadow tables, for performance * Adds API Sample tests for FlavorAccess extension * Add an update option to run\_tests.sh * filter\_scheduler: Select from a subset of hosts * use nova-conductor for live-migration * Fix script argument parsing * Add option to allow cross AZ attach configurable * relocatable roots doesn't handle testr args/opts * Remove a log message in test code * add config drive to api\_samples * Don't modify injected\_files inside PXE driver * Synchronize code from oslo * Canonizes IPv6 before insert it into the db * Only dhcp the first ip for each mac address * Use connection\_info on resize * Fix add-fixed-ip and remove-fixed-ip * API extension for accessing instance\_actions * Use joinedload for system\_metadata in db * Add migration with data test for migration 151 * Correct misspelling in PowerVM comment * Add GlusterFS libvirt volume connector * Module import style checking changes * Stub additional FloatingIP methods in FlatManager * Resize/Migrate functions for PowerVM driver * Added a service heartbeat driver using Memcached * Use a more specific error reporting invalid disk hardware * Allow VIF model to be chosen per image * Check the length of flavor name in "flavor-create" * Add API sample tests to Services extension * VMWare driver to use current nova.network.model * Add "is not" test to hacking.py * Update tools/regression\_tester * Fix passing conductor to get\_instance\_nw\_info() * Imported Translations from Transifex * Make compute manager use conductor for stopping instances * Move allowvssprovider=false to vm-data field * Allow aggregate create to have None as the az * Forces flavorRef to be string in servers resize api * xenapi: Remove unecessary exception handling * Sync jsonutils from openstack-common * Simplify and optimize az server output extension * Add an extension to show the type of an ip * Ensure that only one IP address is allocated * Make the metadata paths use conductor * Fix nova-compute use of missing DBError * Adding support for AoE block storage SANs * Update docs about testing * Allow generic rules in context\_is\_admin rule in policy * Implements resize / cold migration on Hyper-V * test\_(dis)associate\_by\_non\_existing\_security\_group\_name missing stub * Make scheduler remove dead nodes from its cache * More conductor support for resizes * Allow fixed to float ping with external gateway * Add generic UC dropper * Remove locking declarator in ServiceGroup \_\_new\_\_() * Use ServiceGroup API to show node liveness * Refine PowerVM MAC address generation algorithm * Fixes a bug in attaching volumes on Hyper-V * Fix unconsumed column name warning in test\_migrations * Fix regression in non-admin simple\_usage:show * Ensure 'subunit2pyunit' is run in venv from run\_tests.sh * Fix inaccuracies in the development environment doc * preserve order of pre-existing iptables chains * Adds API Sample tests for FloatingIPDNS extension * Don't call 'vif.plug' twice during VM startup * Disallow setting /0 for network other than 0.0.0.0 * Fix spelling in comment * Imported Translations from Transifex * make vmwareapi driver pass quantum port-id to ESX * Add control-M to list of characters to strip out * Update to simplified common oslo version code * Libvirt: Implement snapshots for LVM-backed roots * Properly write non-raw LVM images on creation * Changes GA code for tracking cross-domain * Return dest\_check\_data as expected by the Scheduler * Simplify libvirt snapshot code path * fix VM power state to be NOSTATE when instance not found * Fix missing key error in libvirt.driver * Update jsonutils from oslo-incubator * Update nova/compute/api to handle instance as dict * Use joined version of db.api calls * l3.py,add\_floating\_ip: setup NAT before binding * Regenerate nova.conf.sample * Fixes a race condition on updating security group rules * Ensure that LB VIF drivers creates the bridge if necessary * Remove nova.db call from baremetal PXE driver * Support for scheduler hints for VM groups * Fixed FlavorAccess serializer * Add a virtual PowerDriver for Baremetal testing * Optimize rpc handling for allocate and deallocate * Move floating ip db access to calling side * Implement ZooKeeper driver for ServiceGroup API * Added the build directory to the tox.ini list pep8 ignores * support reloctable venv roots in testing framework * Change to support custom nw filters * Allow multiple dns servers when starting dnsmasq * Clean up extended server output samples * maint: remove unused imports from bin/nova-\* * xenapi: Cleanup detach\_volume code * Access DB as dict not as attributes part 5 * Introduce support for 802.1qbg and 802.1qbh to Nova VIF model * Adds \_(prerun|check)\_134 functions to test\_migrations * Extension for rebuild-for-ha * Support hypervisor supplied macs in nova-network * Recache or rebuild missing images on hard\_reboot * Cells: Add cells support to hypervisors extension * Cells: Add cells support to instance\_usage\_audit\_log api extension * Update modules from common required for rpc with lock detection * Fix lazy load 'system\_metadata' failed problem * Ban database access in nova-compute * Move security\_groups refreshes to conductor * Fix inject\_files for storing binary file * Add regression testing tool * Change forward\_bridge\_interface to MultiStrOpt * Imported Translations from Transifex * hypervisor-supplied-nics support in PowerVM * Default the last parameter (state) in task\_log\_get to None * Sync latest install\_venv\_common from oslo * Remove strcmp\_const\_time * Adds original copyright notice to refactored files * Update .coveragerc * Allow disk driver to be chosen per image * Refactor code for setting up libvirt disk mappings * Refactor instance usage notifications for compute manager * Flavor Extra Specs should require admin privileges * Remove unused methods * Return to skipping filters when using force\_hosts * Refactor server password metadata to avoid direct db usage * lxc: Clean up namespace mounts * Move libvirt volume driver tests to separate test case * Move libvirt NFS volume driver impl into volume.py * replace ssh-keygen -m with a python equivalent * Allow connecting to self-signed quantum endpoints * Sync latest db and importutils from oslo * Use oslo database code * Fix check instance host for instance action * Make get\_dev\_name\_for\_instance() use stashed instance\_type info * Added Postgres CI opportunistic test case * Remove remaining instance\_types query from compute/manager * Make cells\_api fetch stashed instance\_type info * Teach resource tracker about stashed instance types * Fix up instance types in sys meta for resizes * lxc: virDomainGetVcpus is not supported by driver * Fix incorrect device name being raised * VMware VC Compute Driver * Default value of monkey\_patch\_modules is broken * Adds evacuate method to compute.api * Fix import for install\_venv.py * allow disabling file injection completely * separate libvirt injection and configdrive config variables * Add API sample tests to os-network * Fix incorrect logs in network * Update HACKING.rst per recent changes * Allow for specifying nfs mount options * Add REST API to show availability\_zone of instance * Make NFS mount hashes consistent with Cinder * Parse testr output through subunit2pyunit * Imported Translations from Transifex * Optimize floating ip list to make one db query * Remove hardcoded topic strings in network manager * Reimplement is\_valid\_ipv4() * Tweakify is\_valid\_boolstr() * Fix update quota with invalid value * Make system\_metadata update in place * Mark password config options with secret * Record instance actions and events * Postgres does not like empty strings for type inet * Add 'not in' test to tools/hacking.py * Split floating ip functionality into new file * Optimize network calls by moving them to api * Fixes unhandled exception in detach\_volume * Fixes FloatingIPDNS extension 'show' method * import tools/flakes from oslo * Use conductor for instance\_info\_cache\_update * Quantum metadata handler now uses X-Forwarded-For * instance.update notifications don't always identify the service * Handle compute node not available for live migration * Fixes 'not in' operator usage * Fixes "is not" usage * Make scheduler modules pass conductor to add\_instance\_fault * Condense multiple authorizers into a single one * Extend extension\_authorizer to enable cleaner code * Remove unnecessary deserializer test * Added sample tests to FlavorExtraSpecs API * Fix rebuild with volumes attached * DRYing up volume\_in\_mapping code * Use \_prep\_block\_device in rebuild * xenapi: Ax unecessary \`block\_device\_info\` params * Code cleanup for rebuild block device mapping * Fix eventlet/mysql db pooling code * Add support for compressing qcow2 snapshots * Remove deprecation notice in LibvirtBridgeDriver * Fix boto capabilities check * Add api samples to fping extension * Fix SQL Error with fixed ips under devstack/postgresql * Pass testropts in to setup.py in run\_tests.sh * Nova Hyper-V driver refactoring * Fixed grammar problems and typos in doc strings * Add option to control where bridges forward * xenapi: Add support for different image upload drivers * Removed print stmts in test cases * Fix get and update in FlavorExtraSpecs * Libvirt: Add support for live snapshots * Move task\_log functions to conductor * erase outdated comment * Keep flavor information in system\_metadata * Add instance\_fault\_create() to conductor * Adds API Sample tests for os-instance\_usage\_audit\_log extension * validate specified volumes to boot from at the API layer * Refactor libvirt volume driver classes to reduce duplication * Change ''' to """ in bin/nova-{novncproxy,spicehtml5proxy} * Pass parameter 'filter' back to model layer * Fix boot with image not active * refactored data upgrade tests in test\_migrations * Fix authorized\_keys file permissions * Finer access control in os-volume\_attachments * Stop including full service catalog in each RPC msg * Make sure there are no unused import * Fix missing wrap\_db\_error for Session.execute() method * Use install\_venv\_common.py from oslo * Add Region name to quantum client * Removes retry of set\_admin\_password * fix nova-baremetal-manage version printing * Refactoring/cleanup of compute and db apis * Fix an error in affinity filters * Fix a typo of log message in \_poll\_unconfirmed\_resizes * Allow users to specify a tmp location via config * Avoid hard dependency on python-coverage * iptables-restore error when table not loaded * Don't warn up front about libvirt loading issues in NWFilterFirewall * Relax API restrictions around the use of reboot * Strip out Traceback from HTTP response * VMware Compute Driver OVF Support * VMware Compute Driver Host Ops * VMware Compute Driver Networking * Move policy checks to calling side of rpc * Add api-samples to multinic extension * Add system\_metadata to db.instance\_get\_active\_by\_window\_joined * Enable N302: Import modules only * clean up api\_samples documentation * Fix bad imports that cause nova-novncproxy to fail * populate dnsmasq lease db with valid leases * Support optional 4 arg for nova-dhcpbridge * Add debug log when call out to glance * Increase maximum URI size for EC2 API to 16k * VMware Compute Driver Glance improvement * Refactored run\_command for better naming * Fix rendering of FixedIpNotFoundForNetworkHost * Fix hacking N302 import only modules * Avoid db lookup in info\_from\_instance() * Fixes task\_log\_get and task\_log\_get\_all signatures * Make failures in the periodic tests more detailed * Clearer debug when test\_terminate\_sigterm fails * Skip backup files when running pep8 * Added sample tests to floating-ip-pools API * \_sync\_compute\_node should log host and nodename * Don't pass the entire list of instances to compute * VMware Compute Driver Volume Management * Bump the base rpc version of the network api to 1.7 * Remove compute api from scheduler driver * Remove network manager from compute manager * Adds SSL support for API server * Provide creating real unique constraints for columns * Add version constraint for coverage * Correct a format string in virt/baremetal/ipmi.py * Add REST api to manage bare-metal nodes * Adding REST API to show all availability zones of an region * Fixed nova-manage argument parsing error * xenapi: Add cleanup\_sm\_locks script * Fix double reboot during resume\_state\_on\_host\_boot * Add support for memory overcommit in live-migration * Adds conductor support for instance\_get\_active\_by\_window\_joined * Make compare\_result show the difference in lists * Don't limit SSH keys generation to 1024 bits * Ensure service's servicegroup API is created first * Drop volume API * Fix for typo in xml API doc sample in nova * Avoid stuck task\_state on snapshot image failure * ensure failure to inject user files results in startup error * List servers having non-existent flavor should return empty list * Add version constraint for cinder * Remove duplicated tapdev creation code from libvirt VIF * Move helper APIs for OVS ports into linux\_net * Add 'ovs\_interfaceid' to nova network VIF model * Replace use of mkdtemp with fixtures.TempDir * Add trust level cache to trusted\_filter * Fix the wrong datatype in task\_log table * Cleanup of extract\_opts.py * Baremetal/utils should not log certain exceptions * Use setup.py testr to run testr in run\_tests.sh * Fix nova coverage * PXE driver should rmtree directories it created * Fix floating ips with external gateway * Add support for Option Groups in LazyPluggable * Fix incorrect use of context object * Unpin testtools * fix misspellings in logs, comments and tests * fix mysql race in tests * Fix get Floating ip pools action name to match with its policy * Generate coverage even if tests failed * Allow snapshots of paused and suspended instances * Update en\_US message translations * Sync latest cfg from oslo-incubator * Avoid testtools 0.9.25 * Cells: Add support for compute HostAPI() * Refactor compute\_utils to avoid db lookup * ensure zeros are written out when clearing volumes * fix service\_ref undefined problem * Add rootwrap filters for password injection with localfs * fix floating ip test that wasn't running * Prevent metadata updates until instance is active * More consistent libvirt XML handling and cleanup * pick up eventlet backdoor fix from oslo * Run\_as\_root to ensure resize2fs succeed for all image backends * libvirt: Fix typo in configdrive implementation * Refactor EC2 keypairs exception * Directly copy a file URL from glance * Remove restoring soft deleted entries part 2 * Remove restoring soft deleted entries part 1 * Use conductor in the servicegroup db driver * Add service\_update to conductor * Remove some db calls from db servicegroup driver * XenAPI: Fix volume detach * Refactor: extract method: driver\_dict\_from\_config * Cells: Fix for relaying instance info\_cache updates * Fix wrong quota reservation when deleting resizing instance * Go back to the original branch after pylint check * Ignore auto-generated files by lintstack * Add host to instance\_faults table * Clean up db network db calls for fixed and float * Remove obsolete baremetal override of MAC addresses * Fix multi line docstring tests in hacking.py * PXE driver should not accept empty kernel UUID * Use common rootwrap from oslo-incubator * Remove network\_host config option * Better instance fault message when rescheduling * libvirt: Optimize test\_connection and capabilities * don't allow crs in the code * enforce server\_id can only be uuid or int * Allow nova to use insecure cinderclient * Makes sure compute doesn't crash on failed resume * Fix fallback when Quantum doesn't provide a 'vif\_type' * Move compute node operations to conductor * correcting for proper use of the word 'an' * Correcting improper use of the word 'an' * Save password set through xen agent * Add encryption method using an ssh public key * Make resource tracker use conductor for listing instances * Make resource tracker use conductor for listing compute nodes * Updates prerequisite packages for fedora * Expose a get\_spice\_console RPC API method * Add a get\_spice\_console method to nova.virt.ComputeDriver API * Add nova-spicehtml5proxy helper * Pull NovaWebSocketProxy class out of nova-novncproxy binary * Add support for configuring SPICE graphics with libvirt * Add support for setting up elements in libvirt config * Add common config options for SPICE graphics * Create ports in quantum matching hypervisor MAC addresses * Make nova-api logs more useful * Override floating interface on callee side * Reject user ports that have MACs the hypervisor cannot use * Remove unused import * Reduce number of iptable-save restore loops * Clean up get\_instance\_id\_by\_floating\_address * Move migration\_get\_...\_by\_host\_and\_node to conductor * Make resource tracker use conductor for migration updates * minor improvements to nova/tests/test\_metadata.py * Cells: Add some cells support to admin\_actions extension * Populate service list with availability zone and correct unit test * Correct misspelling of fake\_service\_get\_all * Add 'devname' to nova.network.model.VIF class * Use testrepository setuptools support * Cleaning up exception handling * libvirt: use tap for non-blockdevice images on Xen * Export the MAC addresses of nodes for bare-metal * Cells: Add cells API extension * More HostAPI() cleanup for cells * Break out a helper function for working with bare metal nodes * Renames the new os-networks extension * Define a hypervisor driver method for getting MAC addresses * enables admin to view instance fault "details" * Revert "Use testr setuptools commands." * Revert "Populate service list with availability zone" * Fix typos in docstring * Fix problem with ipv6 link-local address(es) * Adds support for Quantum networking in Hyper-V * enable hacking.py self tests * Correct docstring on sizelimit middleware * sync latest log and lockutils from oslo * Fix addition of CPU features when running against legacy libvirt * Fix nova.availability\_zones docstring * Fix uses of service\_get\_all\_compute\_by\_host * VMware Compute Driver Rename * use postgresql INET datatype for storing IPs * Extract validation and provision code to separate method * Implement Quantum support for addition and removal of fixed IPs * Keep self and context out of error notification payload * Populate service list with availability zone * Add Compute API validations for block device map * Cells: Commit resize quota reservations immediately * Cells: Reduce the create\_image call depth for cells * Clean up compute API image\_create * Fix logic error in periodic task wait code * Centralize instance directory logic * Chown doesn't work on mounted vfat * instances\_path is now defined here * Convert ConfigDriveHelper to being a context manager itself * Use testr setuptools commands * Move migration\_create() to conductor * Move network call from compute API to the manager * Fix incorrect comment, and move a variable close to use * Make sure reboot\_instance uses updated instance * Cleanup reboot\_instance tests * Fix use of stale instance data in compute manager * Implements getPasswordData for ec2 * Add service\_destroy to conductor * Make nova.service get service through conductor * Add service\_create to conductor * Handle waiting for conductor in nova.service * Allow forcing local conductor * Make pinging conductor a part of conductor API * Fix some conductor manager return values * Handle directory conflicts with html output * Fix error in NovaBase.save() method * Skip domains on libvirt errors in get\_vcpu\_used() * Fix state sync logic related to the PAUSED VM state * Remove more unused opts from nova.scheduler.driver * Fix quota updating when admin deletes common user's instance * Tests for PXE bare-metal provisioning helper server * Correct the calculating of disk size when using lvm disk backend * Adding configdrive to xenapi * Validated device\_name value in block device map * Fix libvirt resume function call to get\_domain\_xml * Make it clearer that network.api.API is nova-network specific * Access instance as dict, not object in xenapi * Expand quota logging * Move logic from os-api-host into compute * Create a directory for servicegroup drivers * Move update\_instance\_info\_cache to conductor * Change ComputerDriver.legacy\_nwinfo to raise by default * Cleanup pyflakes in nova-manage * Add user/tenant shim to RequestContext * make runtests -p act more like tox * fix new N402 errors * Add host name to log message for \_local\_delete * Try out a new nova.conf.sample format * Regenerate nova.conf.sample * Make Quantum plugin fill in the 'bridge' name * Make nova network manager fill in vif\_type * Add some constants to the network model for drivers to use * Move libvirt VIF XML config into designer.py * Remove bogus 'unplug' calls from libvirt VIF test * Fix bash syntax error in run\_tests.sh * Update instance's cell\_name in API cell * Fix init\_host checking moved instances * Fix test cases in integrated.test\_multiprocess\_api * Map libvirt error to InstanceNotFound in get\_instance\_disk\_info * Fixed comment typo * Added sample tests to FlavorSwap API * Remove unused baremetal PXE options * Remove unused opt import in scheduler.driver * Move global service networking opts to new module * Move memcached\_servers opt into common.memorycache * Move service\_down\_time to nova.service * Move vpn\_key\_suffix into pipelib * fix N402 on tools/ * fix N402 for nova-manage * fix N402 for rest of nova * fix N402 for nova/c\* * fix N402 for nova/db * don't clear the database dicts in the tearDown method * Fixed typos in doc strings * Enhance wsgi to listen on ipv6 address * Adds a flag to allow configuring a region * Fix double reboot issue during soft reboot * Remove baremetal-compute-pxe.filters * Fix pyflakes issues in integrated tests * Adds option to rebuild instance with existing disk * Move common virt driver options to virt.driver * Move vpn\_image\_id to pipelib * Move enabled\_apis option into nova.service * Move default\_instance\_type into nova.compute * Move osapi\_compute\_unique\_server\_name\_scope to db * Move api\_class options to where they are used * Move manager options into nova.service * Move compute\_topic into nova.compute.rpcapi * fix N402 for nova/network * fix N402 for nova/scheduler * fix N402 for nova/tests * Fix N402 for nova/virt * Fix N402 for nova/api * New instance\_actions and events table, model, and api * Cope better with out of sync bm data * Import latest timeutils from oslo-incubator * Remove availability\_zones from service table * Enable Aggregate based availability zones * Sync log from oslo-incubator * Clarify the DBApi object in cells fakes * Fix lintstack check for multi-patch reviews * Adds to manager init\_host validation for instances location * Add to libvirt driver instance\_on\_disk method * add to driver option to keep disks when instance destroyed * Fix serialization in impl\_zmq * Added sample tests to FlavorRxtx API * Refresh instance metadata in-place * xenapi: Remove dead code, moves, tests * Fix baremetal VIFDriver * Adds a new tenant-centric network extension * CLI for bare-metal database sync * Move scheduler\_topic into nova.scheduler.rpcapi * Move console\_topic into nova.console.rpcapi * Move network\_topic into nova.network.rpcapi * Move cert\_topic into nova.cert.rpcapi * Move global s3 opts into nova.image.s3 * Move global glance opts into nova.image.glance * Remove unused osapi\_path option * attach/detach\_volume() take instance as a parameter * fix N401 errors, stop ignoring all N4\* errors * Add api extension to get and reset password * powervm: Implement snapshot for local volumes * Add exception handler for previous deleted flavor * Add NoopQuotaDriver * Conductor instance\_get\_all replaces \_by\_filters * Support cinderclient http retries * Sync rpc and notifier from oslo-incubator * PXE bare-metal provisioning helper server * Added sample tests to QuotaClasses API * Changed 'OpenStack, LLC' message to 'OpenStack Foundation' * Convert short doc strings to be on one line * Get instances from conductor in init\_host * Invert test stream capture logic for debugging * Upgrade WebOb to 1.2.3 * Make WebOb version specification more flexible * Refactor work with TaskLog in sqlalchemy.api * Check admin context in bm\_interface\_get\_all() * Provide a PXE NodeDriver for the Baremetal driver * Handle compute node records with no timestamp * config\_drive is missing in xml deserializer * Imported Translations from Transifex * NovaBase.delete() rename to NovaBase.soft\_delete() * livbirt: have a single source of console log file naming * Remove the global DATA * Add ping to conductor * Add two tests for resize action in ServerActionsControllerTest * Move service\_get\_all operations to conductor * Move migration\_get\_unconfirmed\_by\_dest\_compute to conductor * Move vol\_usage methods to conductor * Add test for resize server in ComputeAPITestCase * Allow pinging own float when using fixed gateway * Use full instance in virt driver volume usage * Imported Translations from Transifex * Refactor periodic tasks * Cells: Add periodic instance healing * Timeout individual tests after one minute * Fix regression in RetryFilter * Cells: Add the main code * Adding two snapshot related task states * update version urls to working v2 urls * Add helper methods to nova.paths * Move global path opts in nova.paths * Remove unused aws access key opts * Move fake\_network opt to nova.network.manager * Allow larger encrypted password posts to metadata * Move instance\_type\_get() to conductor * Move instance\_info\_cache\_delete() to conductor * Move instance\_destroy() to conductor * Move instance\_get\_\*() to conductor * Sync timeutils changes from Oslo * Remove system\_metadata db calls from compute manager * Move block\_device\_mapping destroy operations to conductor * Clean up setting of control\_exchange default * fix floating-ip in multihost case * Invalid EC2 ids should make the entire request fail * improve libguestfs exception handling * fix resize of unpartitioned images with libguestfs * xenapi: Avoid hotplugging volumes on resize * Remove unused VMWare VIF driver abstraction * Delete pointless nova.virt.VIFDriver class * Clarify & fix docs for nova-novncproxy * Removes unused imports * Imported Translations from Transifex * Fix spelling mistakes in nova.virt * Cells: Add cells commands to nova-manage * Add remaining get\_backdoor\_port() rpc calls to coverage * Fix race in resource tracker * Move block\_device\_mapping get operations to conductor * Move block\_device\_mapping update operations to conductor * Improve baremetal driver error handling * Add unit test to update server metadata * Add unit test to revert resize server action * Add compute build/resize errors to instance faults * Add unit test for too long metadata for server rebuild action * Adds os-volume\_attachments 'volume\_id' validation * Raise BadRequest when updating 'personality' * Imported Translations from Transifex * Ensure that Quantum uses configured fixed IP * Add conditions in compute APIRouter * Imported Translations from Transifex * CRUD on flavor extra spec extension should be admin-only * Report failures to mount in localfs correctly * Add API sample tests to FixedIPs extension * baremetal power driver takes \*\*kwargs * Implement IPMI sub-driver for baremetal compute * Fix tests/baremetal/test\_driver.py * Move baremetal options to [BAREMETAL] OptGroup * Adds test for HTTPUnprocessableEntity when rebooting * Make sure the loadables path is the absolute path * Fix bug and remove update lock in db.instance\_test\_and\_set() * Periodic update of DNS entries * Fix error in test\_get\_all\_by\_multiple\_options\_at\_once() * Remove session.flush() and session.query() monkey patching * Update nova-cert man page * Allow new XML API sample file generation * Remove unused imports * spelling in test\_migrations * Imported Translations from Transifex * Check for image\_meta in libvirt.driver.spawn * Adds test for 'itemNotFound' errors in 'Delete server' * Remove improper NotFound except block in list servers * Spelling: Compatability=>Compatibility * Imported Translations from Transifex * Ensure we add a new line when appending to rc.local * Verify the disk file exists before running qemu-img on it * Remove lxc attaching/detaching of volumes * Teardown container rootfs in host namespace for lxc * Fix cloudpipe instances query * Ensure datetimes can be properly serialized * Imported Translations from Transifex * Database metadata performance optimizations * db.network\_delete\_safe() method performance optimization * db.security\_group\_rule\_destroy() method performance optimization * Import missing exception * Ignore double messages to associate the same ip * Imported Translations from Transifex * Database reservations methods performance optimization * Using query.soft\_delete() method insead of soft deleting by hand * Create and use subclass of sqlalchemy Query with soft\_delete() method * Remove inconsistent usage of variable from hyperv * Log last compute error when rescheduling * Removed unused imports * Make libvirt driver default to virtio for KVM/QEMU NICs * Refactor libvirt VIF classes to reduce duplicate code * Makes sure to call crypto scripts with abspath * Enable nova exception format checking in tests * Eliminate race conditions in floating association * Imported Translations from Transifex * Provide a configdrive helper which uses contextlib * Add extension to allow hiding of addresses * Add html reports to report action in coverage extension * Add API samples tests for the coverage extension * Fix \_find\_ports() for when backdoor\_port is None * Parameterize database connection in test.py * fixing the typo of the error message from nbd * add 'random\_seed' entry to instance metadata * Baremetal VIF and Volume sub-drivers * Fix revert resize failure with disk.local not found * Fix a test isolation error in compute.test\_compute * New Baremetal provisioning framework * Move baremetal database tests to fixtures * address uuid overwriting * Add get\_backdoor\_port to cert * Add get\_backdoor\_port to scheduler * Add get\_backdoor\_port to console * Make libvirt driver.listinstances return defined * Add get\_backdoor\_port to consoleauth * Export custom SMBIOS info to QEMU/KVM guests * Make configdrive.py use version.product\_string() * Allow loading of product/vendor/package info from external file * Remove obsolete VCS version info completely * Trap exception when trying to write csr * Define a product, vendor & package strings in version.py * Extract image metadata from Cinder * Add expected exception to aggregate\_metadata\_delete() * Move aggregate\_get() to conductor * Add .testrepository/ directory to gitginore * Make load\_network\_driver load passed in driver * Fix race condition of resize confirmation * libvirt: Make vif\_driver.plug() returns None * Add an iptables mangle rule per-bridge for DHCP * Make NBD retry logic more generic, add retry to loop * Reliably include OS type in ephemeral filenames * Allow specification of libvirt guest interface backend driver * Fix "image\_meta" data passed in libvirt test case * Fix typos in vncserver\_listen config param help description * Traceback when user doesn't have permission * removed duplicate function definitions * network/api add\_fixed\_ip correctly passes uuid * Import cfg module in extract\_opts.py * Raise old exception instance instead of new one * Update exceptions to pass correct kwargs * Add option to make exception format errors fatal * allow for the ability to run partial coverage * Remove fake\_tests opt from test.py * Execute pygrub using nova-rootwrap in xenapi * Add DBDuplicateEntry exception for unique constraint violations * Fix stack trace on incorrect nova-manage args * Use service fixture in DB servicegroup tests * fix instance rescue without cmdline params in xml.rescue * Added sample tests to FlavorDisabled API * Reset the IPv6 API backend when resetting the conf stack * libvirt: Skip intermediate base files with qcow2 * fix test\_nbd using stubs * Imported Translations from Transifex * Properly remove the time override in quota tests * Fix API samples generation * Move TimeOverride to the general reusable-test-helper place * Added conf support for security groups * Add accounting for orphans to resource tracker * Add more association support to network API * Remove the WillNotSchedule exception * Replace fixtures.DetailStream with fixtures.StringStream * Move network\_driver into new nova.network.driver * Move DNS manager options into network.manager * Refactor xvp console * Move agent\_build\_get\_by\_triple to conductor * Move provider\_fw\_rule\_get\_all to conductor * Move security\_group operations in VirtAPI to conductor * Retry NBD device allocation * Use testr to run nova unittests * Add a developer trap for api samples * Update command on devref doc * Fixed deleting instance booted from invalid vol * Add general mechanism for testing api coverage * Add the missing replacement text in devref doc * Allow xenapi to work with empty image metadata * Imported Translations from Transifex * Fix for broken switch for config\_drive * Fix use of osapi\_compute\_extension option in api\_samples * Remove sleep in test\_consoleauth * Fix errors in used\_limits extension * Fix poll\_rescued\_instances periodic task * Add syslogging to nova-rootwrap * Clean up run\_tests.sh * Ensure that sql\_dbpool\_enable is a boolean value * Stop nbd leaks, remove pid race * Fixes KeyError: 'sr\_uuid' when booting from volume on xenapi * Add VirtAPI tests * Move remaining aggregate operations to conductor * remove session param from instance\_get * remove session param from instance\_get\_by\_uuid * Use nova.test.TestCase as the base test class * Ensure datetimes can be properly serialized * Fixes string formatting error * Adds API Sample tests for DiskConfig extension * Fix for correctly parsing snapshot uuid in ec2api * Autodetect nbd devices * Add Jian Wen to .mailmap * Move metadata\_{host,port} to network.linux\_net * Move API extension opts to api.openstack.compute * Move osapi\_max\_limit into api.openstack.common * Move link\_prefix options into api.openstack.common * Move some opts into nova.utils * Properly scope password options * Remove the deprecated quantum v1 code and directory * add and removed fixed ip now refresh cache * Implement an XML matcher * Add support for parsing the from libvirt host capabilities * Add support for libvirt domain XML config * Add support for libvirt domain XML config * Add coverage extension to nova API * Allow rpc-silent FloatingIP exceptions in n-net * Allow conductor exceptions to pass over RPC silently * Don't leak info from libvirt LVM backed instances * Add get\_backdoor\_port to nova-conductor * Properly scope isolated hosts config opts * Move monkey patch config opts into nova.utils * Move zombie\_instance\_updated\_at\_window option * Move some options into nova.image.glance * Move cache\_images to nova.virt.xenapi.vm\_utils * Move api\_rate\_limit and auth\_strategy to nova.api * Move api\_paste\_config option into nova.wsgi * Port to argparse based cfg * Cleanup the test DNS managers * Move all temporary files into a single /tmp subdir * Modified sample tests to FlavorExtraData API * Fix KeyError of log message in virt/libvirt/utils.py * Allows an instance to post encrypted password * Make nova/virt use aggregate['metadetails'] * Revert "Simplify how ephemeral disks are created and named." * Fix bw\_usage\_update issue with conductor * Correctly init XenAPIDriver in vm\_vdi\_cleaner.py * Set instance\_ref['node'] in \_set\_instance\_host\_and\_node * Consider reserved count in os-user-limits extension * Make DNS drivers inherit interface * Map cinder snapshot statuses to ec2 * i18n raise Exception messages * Set default DNS driver to No-op * Access DB values as dict not as attributes. Part 4 * Use conductor for bw\_usage operations * libvirt: enable apic setting for Xen or KVM guest * Improve virt/disk/mount/nbd test coverage * Add NFS to the libvirt volume driver list * Use admin user to read Quantum port * Add vif\_type to the VIF model * Make the nbd mounter respect CONF.max\_nbd\_devices * Imported Translations from Transifex * Raise NotImplementedError in dns\_driver.DNSDriver * Unpin lxml requirements * Added sample tests to FlavorManage API * Use fixtures library for nova test fixtures * Catch ProcessExecutionError when building config drives * Fix fname concurrency tests * Imported Translations from Transifex * Make ignore\_hosts and force\_hosts work again * Run test objectstore server on arbitrary free port * Fix network manager ipv6 tests * Prevent creation of extraneous resource trackers * Remove unused bridge interfaces * Use conductor for migration\_get() * Reset node to source in finish\_revert\_resize() * Simplify how ephemeral disks are created and named * Order instance faults by created\_at and id * Sync RPC logging-related bits from oslo * Fix bugs in test\_migrations.py * Fix regression allowing quotas to be applied to projects * Improve nova-manage usability * Add new cliutils code from oslo-incubator * Update tools/flakes to work with pydoc * Fix pep8 exclude logic for 1.3.3 * Avoid vm instance shutdown when power state is NOSTATE * Fix handling of unimplemented host actions * Fix positional arg swallow decorator * Fix minidns delete\_entry to work for hostname with mixed case chars * powervm: Refactored run\_command for better naming * Sync latest openstack.common.rpc * Ensure prep\_resize arguments can be serialized * Add host to get\_backdoor\_port() for network api * Add agent build API support for list/create/delete/modify agent build * Added sample tests to extended status API * Imported Translations from Transifex * Make policy.json not filesystem location specific * Use conductor for resourcetracker instance\_update * network managers: Pass elevated cxtx to update\_dhcp * Volume backed live migration w/o shared storage * Add pyflakes option to tox * Adds API Sample tests for Quotas extension * Boot from volume without image supplied * Implements volume usage metering * Configurable exec\_dirs to find rootwrap commands * Allow newer boto library versions * Add notifications when libvirtd goes down * Make update\_service\_capabilities() accept a list of capabilities * update mailmap to add my perferred mail * Fix test suite to use MiniDNS * Add support for new WMI iSCSI initiator API * Added sample tests to deferred delete API * On confirm\_resize, update correct resource tracker * Renaming xml test class in sample tests of consoles API * remove session param from certificate\_get * improve sessions for key\_pair\_(create,destroy) * powervm: add DiskAdapter for local volumes * Access DB values as dict not as attributes. Part 3 * Patch fake\_libvirt\_utils with fixtures.MonkeyPatch * Open test xenapi/vm\_rrd.xml relative to tests * Reset notifier\_api before each test * Reset volume\_api before cinder cloud tests * Fix rpc control\_exchange regression * Add generic customization hooks via decorator * add metadata support for overlapping networks * Split out part of compute's init\_host * Use elevated cxtx in resource\_tracker.resize\_claim * Fix test\_migrations for postgres * Add vpn ip/port setting support for CloudPipe * Access DB values as dict not as attributes. Part 2 * Enable debug in run\_tests using pdb * Add POWERVM\_STARTING state to powervm driver * Fix test\_inject\_admin\_password for OSX * Multi host DHCP networking and local DNS resolving * use file instead of tap for non-blockdevice images on Xen * use libvirt getInfo() to receive number of physical CPUs * Don't run the periodic task if ticks\_between\_runs is below zero * Fix args to AggregateError exception * Fix typo in inherit\_properties\_from\_image * Access DB values as dict not as attributes * Fix KeyError of log message in compute/api.py * Fix import problem in test\_virt\_disk\_vfs\_localfs * Remove start\_guests\_on\_host\_boot config option * Add aggregate\_host\_add and \_delete to conductor * Imported Translations from Transifex * Call plug\_vifs() for all instances in init\_host * Make compute manager use conductor for instance\_gets * Fixes HyperV compute "resume" tests * Convert datetimes for conductor instance\_update * Update migration so it supports PostgreSQL * Include 'hosts' and 'metadetails' in aggregate * Verify doc/api\_samples files along with the templates * Remove default\_image config option * Move ec2 config opts to nova.api.ec2.cloud * Move imagecache code from nova.virt.libvirt.utils * Use flags() helper method to override config in tests * RetryFilter checks 'node' as well as 'host' * Make resize and multi-node work properly together * Migration model update for multi-node resize fix * Add version to conductor migration\_update message * Validate rxtx\_factor as a float * Display errors when running nosetests * Respect the base\_dir\_name flag in imagebackend * Add exceptions to baremetal/db/api * Clean up unused methods in scheduler/driver * Provide better error message for aggregate-create * Imported Translations from Transifex * Allow multi\_host compute nodes to share dhcp ip * Add blank nova/virt/baremetal/\_\_init\_\_.py * Add migration\_update to conductor * Remove unnecessary topic argument * Add pluggable ServiceGroup monitoring APIs * Add SSL support to utils.generate\_glance\_url() * Add eventlet db\_pool use for mysql * Make compute manager use nova-conductor for instance\_update * Missing instance\_uuid in floating\_ip notifications * Make nova-dhcpbridge use CONFIG\_FILE over FLAGFILE * Rename instance\_info\_cache unique key constraints * Cleanup compute multi-node assignment of node * Imported Translations from Transifex * maint: remove an unused import from libvirt.utils * Encode consoleauth token in utf-8 to make it a str * nova-dhcpbridge should require the FLAGFILE is set * Added cpu\_info report to HyperV Compute driver * Remove stale flags unit tests * Truncate large console logs in libvirt * Move global fixture setup into nova/test.py * Complete API samples for Hosts extension * Fix HostDeserializer to enable multiple line xml * adjust rootwrap filters for recent file injection changes * Don't hard code the xen hvmloader path * Don't update arch twice when create server * remove db access in xen driver * Imported Translations from Transifex * Move compute\_driver into nova.virt.driver * Re-organize compute opts a bit * Move compute opts from nova.config * Add a CONTRIBUTING file * Compute doesn't set the 'host' field in instance * Xenapi: Don't resize down if not auto\_disk\_config * Cells: Re-add DB model and calls * Use more specific SecurityGroupHandler calls * Fix wait\_for\_deleted function in SmokeTests * Wrap log messages with \_() * Add methods to Host operations to fake hypervisor * Move sql options to nova.db.sqlalchemy.session * Add debug logging to disk mount modules * Remove the libguestfs disk mount API implementation * Remove img\_handlers config parameter usage * Convert file injection code to use the VFS APIs * Introduce a VFS implementation backed by the libguestfs APIs * Introduce a VFS implementation mapped to the host filesystem * Adds API for bulk creation/deletion of floating IPs * Remove obsolete config drive init.d example * Imported Translations from Transifex * Rename sql\_pool\_size to sql\_max\_pool\_size * Detect shared storage; handle base cleanup better * Allow VMs to be resumed after a hypervisor reboot * Fix non-primitive uses of instance in compute/manager * Remove extra space in exception * Adds missing index migrations by instance/status * Convert migrations.instance\_uuid to String(36) * Add missing binary * Change all tenants servers listing as policy-based * Fixes a bug in get\_info in the Hyper-V Driver * refactor: extract method: connect\_volume * Handle instances not being found in EC2 API responses * Pin pep8 to 1.3.3 * Return an error response if the specified flavor does not exists. (v4) * Send block device mappings to rebuild\_instance * Move db lookup for block device mappings * Use CONF.import\_opt() for nova.config opts * Imported Translations from Transifex * Remove nova.config.CONF * Add keystoneclient to pip-requires * Pass rpc connection to pre\_start\_hook * Fix typo: hpervisor=> hypervisor * Fix reversed args to call to \_reschedule * Add the beginnings of the nova-conductor service * remove old baremetal driver * Remove useless function quota\_usage\_create * Fix calls to private method in linux\_net * Drop unused PostgreSQL sequences from Folsom * Compact pre-Grizzly database migrations * Fix os-hosts extension can't return xml response correctly * Set node\_availability\_zone in XenAPIAggregateTestCase * Ignore editor backup files * Imported Translations from Transifex * Remove nova.flags * Remove FLAGS * Make fping extension use CONF * Use disk image path to setup lxc container * Use the auth\_token middleware from keystoneclient * improve session handling around instance\_ methods * add index to fixed\_ips * add instance\_type\_extra\_specs to instances * Change a toplevel function comment to a docstring * Ensure cat process is terminated * Add some sqlalchemy tweakables * Fixes an error reporting bug on Hyper-V * update api\_samples add os-server-start-stop * update api\_samples add os-services module * Switch to using eventlet\_backdoor from oslo * Sync eventlet\_backdoor from oslo * Added sample tests to consoles API * Fix use of 'volume' variable name * Ditch unused import and variable * Make ec2\_instance\_create db method consistant across db apis * Adds documentation for Hyper-V testing * Adds support for ConfigDriveV2 in Hyper-V * don't explode if a 413 didn't set Retry-After * Fix a couple uses of FLAGS * Remove nova.flags imports from scheduler code * Remove some unused imports from compute/\* * Remove importing of flags from compute/\* * Remove nova.flags imports from bin/\* * Move nova shared config options to nova.config * Fix use\_single\_default\_gateway * Update api\_samples README.rst to use tox * Do not alias stdlib uuid module as uuidutils, since nova has uuidutils * Allow group='foo' in self.flags() for tests * updated api\_samples with real hypervisor\_hostname * Issue a hard shutdown if clean fails on resize up * Introduce a VFS api abstraction for manipulating disk images * Fix network RPC API backwards compat * create\_db\_entry\_for\_new\_instance did not call sgh for default * Add support for backdoor\_port to be returned with a rpc call * Refactor scheduling filters * Unpin amqplib and kombu requirements * Add module for loading specific classes * Make sure instance data is always refreshed * Move all mount classes into a subdirectory * Add support for resizes to resource tracker * Fixes create instance \*without\* config drive test * Update db entry before upate the DHCP host file * Remove gen\_uuid() * Enhance compute capability filter to check multi-level * API extension for fpinging instances * Allow controller extensions to extend update/show * Isolate tests from the environment variable http\_proxy * Handle image cache hashing on shared storage * fix flag type define error * Simplify libvirt volume testing code * Migrate floating ip addresses in multi\_host live\_migration * Add DB query to get in-progress migrations * Try hard shutdown if clean fails on resize down * Restore self.test\_instance at LibvirtConnTestCase.setUp() * Fixes usage of migrate\_instance\_start * added getter methods for quantumv2 api * fix LVM backed VM logial volumes can't be deleted * Clean up \_\_main\_\_ execution from two tests for consistency * Imported Translations from Transifex * Update uuidutils from openstack common * Remove volume.driver and volume.iscsi * Use base image for rescue instance * Make xenapi shutdown mode explicit * Fix a bug in XenAPISession's use of virtapi * Ban db import from nova/virt * Update vol mount smoketest to wait for volume * Add missing webob to exc * Add missing exception NetworkDuplicated * Fix misuse of exists() * Rename config to vconfig * Move agent\_build\_get\_by\_triple to VirtAPI * Fix \_setup\_routes() signature in APIRouter * Move libvirt specific cgroups setup code out of nova.virt.disk.api * make libvirt with Xen more workable * script for configuring a vif in Xen in non-bridged mode * Upgrade pylint version to 0.26.0 * Removes fixed\_ip\_get\_network * improve session handling around virtual\_interfaces * improve sessions for reservation * improve session handling around quotas * Remove custom test assertions * Add nova option osapi\_compute\_unique\_server\_name\_scope * Add REST API support for list/enable/disable nova services * Switch from FLAGS to CONF in nova.compute * Switch from FLAGS to CONF in tests * Get rid of pylint E0203 in filter\_scheduler.py * Updated scheduler and compute for multiple capabilities * Switch from FLAGS to CONF in nova.db * Removed two unused imports * Remove unused functions * Fixes a bug in api.metadata.base.lookup() on Windows * Fixes a bug in nova.utils, due to Windows compatibility issues * improve session handling of dnsdomain\_list * Make tox.ini run pep8/hacking checks on bin * Fix import ordering in /bin scripts * add missing opts to test\_db\_api.py * clean up dnsdomain\_unregister * Make utils.mkfs() set label when fs=swap * Another case of dictionary access * Remove generic topic support from filter scheduler * Clarify server\_name, hostname, host * Refactor scheduling weights * update nova.conf.sample * Check instance\_type in compute capability filter * Sync latest code from oslo-incubator * Adds REST API support for Fixed IPs * Added separate bare-metal MySQL DB * Added bare-metal host manager * Remove unused volume exceptions * Adds a conf option for custom configdrive mkisofs * Fixed HyperV to get disk stats of instances drive * powervm: failed spawn should raise exception * Enable Quantum linux bridge VIF driver to use "bridge" type * Remove nova-volume DB * make diagnostics workable for libvirt with Xen * Avoid unnecessary system\_metadata db lookup * Make instance\_system\_metadata load with instance * Add some xenapi Bittorrent tests * Move security groups and firewall ops to VirtAPI * Move host aggregate operations to VirtAPI * Simplify topic handling in network rpcapi * Sync rpc from openstack-common * Send instance\_type to resize\_instance * Remove instance\_type db lookup in prep\_resize * Send all aggregate data to remove\_aggregate\_host * Fix incorrect LOG.error usage in \_compare\_cpu * Limit formatting routes when adding resources * Removes unnecessary db query for instance type * Fix verification in test\_api\_samples.py * Yield in between hash runs for the image cache manager * Remove unused function require\_instance\_exists * Refactor resource tracker claims and test logic * Remove out-of-date comment * Make HostManager.get\_all\_host\_states() return an iterator * Switch from FLAGS to CONF in nova.virt * 'BackupCreate' rotation parameter >= 0 * Corrects usage of db.api.network\_get * Switch from FLAGS to CONF in nova.console * Map NotAuthorized to 403 in floating ips extension * Decouple EC2 API from using instance id * libvirt: Regenerates xml instead of using on-disk * Imported Translations from Transifex * Fix to include error message in instance faults * Include hostname in notification payloads * Fix quota updating during soft delete and restore * Fix warnings found with pyflakes * make utils.mkfs() more general * Fixes snapshot instance failure on libvirt * Make ComputeDrivers send hypervisor\_hostname * Fixed instance deletion issue from Nova API * De-duplicate option: console\_public\_hostname * Don't verify image hashes if checksumming is disabled * Imported Translations from Transifex * Look up stuck-in-rebooting instances in manager * Use chance scheduler in EC2 tests * Send all aggregate data to add\_aggregate\_host * Send all migration data to finish\_revert\_resize * Send all migration data to revert\_resize * Fix migrations when not using multi-host network * Fix bandwidth polling exception * Fixes volume attach issue on Hyper-V * Shorten self.compute.resource\_tracker in test\_compute.py * Cleanup nova.db.sqlalchemy.api import * Use uuidutils.is\_uuid\_like for uuid validation * Add uuidutils module * Imported Translations from Transifex * Switch from FLAGS to CONF in nova.scheduler * Switch from FLAGS to CONF in nova.network * Switch from FLAGS to CONF in misc modules * Switch from FLAGS to CONF in nova.api * Switch from FLAGS to CONF in bin * Remove flags.DECLARE * Move parse\_args to nova.config * Forbid resizing instance to deleted instance types * Imported Translations from Transifex * Fix unused variables and wrong indent in test\_compute * Remove unnecessary db call from xenapi/vmops * xenapi: place boot lock when doing soft delete * Detangle soft delete and power off * Fix signing\_dir option for auth\_token middleware * Fix no attribute 'STD\_OUT\_HANDLE' on windows * Use elevated context in disassociate\_floating\_ip * Remove db.instance\_get\* from nova/virt * sync deprecated log method from openstack-common * move python-cinderclient to pip-requires * Tiny resource tracker cleanup * Fix Quantum v2 API method signatures * add doc to standardize session usage * improve sessions around floating\_ip\_get\_by\_address * Bump the base rpc version of the network api * Eliminates simultaneous schedule race * Introduce VirtAPI to nova/virt * Add some hooks for managers when service starts * Fix backwards compat of rpc to compute manager * xenapi: Make agent optional * Add xenapi host\_maintenance\_mode() test * refactor: extract \_attach\_mapped\_block\_devices * Make bdms primitive in rpcapi.terminate\_instance * Ability to specify a host restricted to admin * Improve EC2 describe\_security\_groups performance * Increased MAC address range to reduce conflicts * Move to a more canonicalized output from qemu-img info * Read deleted flavors when using to\_xml() * Fix copy-paste bug in block\_device\_info\_generation * Remove nova-volume scheduling support * Remove duplicate api\_paste\_config setting * Fixes hypervisor based image filtering on Hyper-V * make QuantumV2 support requested nic ordering * Add rxtx\_factor to network migration logic * Add scheduler retries for prep\_resize operations * Add call to reset quota usage * Make session.py reusable * Remove redundant code from PowerVM driver * Force earlier version of sqlalchemy * refactor: extract method vm\_ref\_or\_raise * Use env to set environ when starting dnsmasq * pep8 fixes for nova-manage * Fix VM deletion from down compute node * Remove database usage from libvirt check\_can\_live\_migrate\_destination * Clean up xenapi VM records on failed disk attaches * Remove nose detailed error reporting * Validate is-public parameter to flavor creation * refactor: extract \_terminate\_volume\_connections * improve sessions around compute\_node\_\* * Fix typo in xenapi/host.py * Remove extra print line in hacking.py * Ensures compute\_driver flag can be used by bdm * Add call to trigger\_instance[add/remove]\_security\_group\_refresh quantum * Validates Timestamp or Expiry time in EC2 requests * Add API samples to Admin Actions * Add live migration helper methods to fake hypervisor driver * Use testtools as the base testcase class * Clean up quantumv2.get\_client * Fix getattr usage * Imported Translations from Transifex * removes the nova-volume code from nova * Don't elevate context when calling run\_instance * remove session parameter from fixed\_ip\_get * Make instance\_get\_all() not require admin context * Fix compute tests abusing admin context * Fix use of elevated context for resize methods * Fix check for memory\_mb * Imported Translations from Transifex * Fix nova-network MAC collision logic * Fix rpcapi version for new methods * Remove useless return * Change hacking.py N306 to use logical\_lines * Add missing live migration methods to ComputeDriver base class * Fix hacking.py naivete regarding lines that look like imports * details the reboot behavior that a virt driver should follow * xenapi: refactor: Agent class * Send usage event on revert\_resize * Fix config-file overrides for nova-dhcpbridge * Make nova-rootwrap optional * Remove duplicated definition of is\_loaded() * Let scheduler know services' capabilities at startup * fetch\_images() method no more needed * Fix hardcoded topic strings with constants * Save exceptions earlier in finish\_resize * Correct \_extract\_query\_params in image.glance * Fix Broken XML Namespace Handling * More robust checking for empty requested\_networks * Imported Translations from Transifex * Rehydrate NetworkInfo in reboot\_instance() * Update common * Use cat instead of sleep for rootwrap test * Addtional 2 packages for dev environment on ubuntu * Let VlanManager keep network's DNS settings * Improve the performance of quantum detection * Support for nova client list hosts with specific zone * Remove unused imports in setup.py * Fixes fake for testing without qemu-img * libvirt: persist volume attachments into config * Extend IPv6 subnets to /64 if network\_size is set smaller than /64 * Send full migration data to finish\_resize * Send full migration to confirm\_resize * Send full migration to resize\_instance * Migrate to fileutils and lockutils * update sample for common logging * Add availability zone extension to API samples test * Refactor: config drive related functions * Fix live migration volume assignment * Remove unused table options dicts * Add better log line for undefined compute\_driver * Remove database usage from libvirt imagecache module * Return empty list when listing servers with bad status value * Consistent Rollback for instance creation failures * Refactor: move find\_guest\_agent to xenapi.agent * Fix Incorrect Exception when metadata is over 255 characters * Speed up volume and routing tests * Speed up api.openstack.compute.contrib tests * Allow loading only selected extensions * Migrate network of an instance * Don't require quantumclient when running nova-api * Handle the case where we encounter a snap shot correctly * Remove deprecated root\_helper config * More specific exception handling in migration 091 * Add virt driver capabilities definition * Remove is\_admin\_context from sqlalchemy.api * Remove duplicate methods from network/rpcapi.py * SanISCSIDriver SSH execution fixes * Fix bad Log statement in nova-manage * Move mkfs from libvirt.utils to utils * Fixes bug Snapshotting LXC instance fails * Fix bug in a test for the scheduler DiskFilter * Remove mountpoint from parse\_volume\_info * limit the usage of connection\_info * Sync with latest version of openstack.common.timeutils * nova-compute sends its capabilities to schedulers ASAP * Enable custom eventlet.wsgi.server log\_format * Fix the fail-on-zero-tests case so that it is tolerant of no output * add port support when QuantumV2 subclass is used * Add trove classifiers for PyPI * Fix and enable pep8 E502, E712 * Declare vpn client option in pipelib * Fix nova-volume-usage-audit * Fix error on invalid delete\_on\_termination value * Add Server diagnostics extension api samples * Add meaningful server diagnostic information to fake hypervisor * Use instance\_exists to check existence * Fix nova-volume-usage-audit * Imported Translations from Transifex * Avoid leaking BDMs for deleted instances * Deallocate network if instance is deleted in spawn * Create Flavors without Optional Arguments * Update policies * Add DNS records on IP allocation in VlanManager * update kwargs with args in wrap\_instance\_fault * Remove ComputeDriver.update\_host\_status() * Do not call directly vmops.attach\_volume * xenapi: fix bfv behavior when SR is not attached * Use consoleauth rpcapi in nova-novncproxy * Change install\_venv to use setup.py develop * Fixes syntax error in nova.tools.esx.guest\_tools.py * Allow local rbd user and secret\_uuid configuration * Set host prior to allocating network information * Remove db access for block devices and network info on reboot * Remove db access for block devices on terminate\_instance * Check parameter 'marker' before make request to glance * Imported Translations from Transifex * Internationalize nova-manage * Imported Translations from Transifex * Fixes live\_migration missing migrate\_data parameter in Hyper-V driver * handles empty dhcp\_domain with hostname in metadata * xenapi: Tag volumes in boot from volume case * Stops compute api import at import time * Fix imports in openstack compute tests * Make run\_tests.sh fail if no tests are actually run * Implement snapshots for raw backend * Used instance uuid rather than id in remove-fixed-ip * Migrate DHCP host info during resize * read\_deleted snapshot and volume id mappings * Make sure sleep can be found * Pass correct task\_state on snapshot * Update run\_tests.sh pep8 ignore list for pep8 1.2 * Clean up imports in test\_servers * Revert "Tell SQLite to enforce foreign keys." * Add api samples to simple tenant usage extension * Avoid RPC calls while holding iptables lock * Add util for image conversion * Add util for disk type retrieval * Fixes test\_libvirtr spawn\_with\_network\_info test * Remove unneeded temp variable * Add version to network rpc API * Remove cast\_to\_network from scheduler * Tell SQLite to enforce foreign keys * Use paramiko.AutoAddPolicy for the smoketests * nova-manage doesn't validate key to update the quota * Dis-associate an auto-assigned floating IP should return proper warning * Proxy floating IP calls to quantum * Handle invalid xml request to return BadRequest * Add api-samples to Used limits extension * handle IPv6 race condition due to hairpin mode * Imported Translations from Transifex * XenAPI should only snapshot root disk * Clarify trusted\_filter conf options * Fix pep8 error in bin/nova-manage * Set instance host field after resource claim * powervm: add polling timeout for LPAR stop command * Drop claim timeouts from resource tracker * Update kernel\_id and ramdisk\_id while rebuilding instance * Add Multiple Create extension to API sample tests * Fix typo in policy docstring * Fix reserve\_block\_device\_name while attach volume * Always use bdm in instance\_block\_mapping on Xen * Centralize sent\_meta definition * Move snapshot image property inheritance * Set read\_deleted='yes' for instance\_id\_mappings * Fix XML response for return\_reservation\_id * Stop network.api import on network import * libvirt: ignore deleted domain while get block dev * xenapi: Refactor snapshots during resize * powervm: remove broken instance filtering * Add ability to download images via BitTorrent * powervm: exception handling improvements * Return proper error messages while associating floating IP * Create util for root device path retrieval * Remove dependency on python-ldap for tests * Add api samples to Certificates extension * Add nova-cert service to integrated\_helpers * Compare lists in api samples against all matches * ip\_protocol for ec2 security groups * Remove unneeded lines from aggregates extension API sample tests * Remove deprecated Folsom code: config convert * Make resource tracker uses faster DB query * Remove deprecated Folsom code: bandwith\_poll\_interval * Add TestCase.stub\_module to make stubbing modules easier * Imported Translations from Transifex * Update tools hacking for pep8 1.2 and beyond * Remove outdated moduleauthor tags * remove deprecated connection\_type flag * Add aggregates extension to API samples test * Update RPM SPEC to include new bandwidth plugin * Remove TestCase.assertNotRaises * Imported Translations from Transifex * Imported Translations from Transifex * Use self.flags() instead of manipulating FLAGS by hand * Use test.TestCase provided self.mox and self.stubs * Remove unnecessary setUp, tearDown and \_\_init\_\_ in tests * xenapi: implement resume\_state\_on\_host\_boot * Revert "Add full test environment." * Synchronize docstring with actual implementation * Num instances scheduler filter * Add api samples to cloudpipe extension * Fix CloudPipe extension XML serialization * Max I/O ops per host scheduler filter * libvirt: continue detach if instance not found * libvirt: allows attach and detach from all domains * Fixes csv list required for qemu-img create * Added compute node stats to HostState * libvirt: Improve the idempotency of iscsi detach * Pass block\_device\_info to destroy in revert\_resize * Enable list with no dict objects to be sorted in api samples * Fixes error message for flavor-create duplicate ID * Loosen anyjson dependency to avoid clash with ceilometer * xenapi: make it easier to recover from failed migrations * Remove unnecessary check if migration\_ref is not None * Bump the version of SQLAlchemy in pip-requires * optimize slightly device lookup with LXC umounts * Support for several HA RabbitMQ servers * xenapi: Removing legacy swap-in-image * xenapi: increase timeout for resetnetwork agent request * Replaced default hostname function from gethostname to getfqdn * Fix issues deleting instances in RESIZED state * Modified 404 error response to show specific message * Updated code to update attach\_time of a volume while detaching * Check that an image is active before spawning instances * Fix issues with device autoassignment in xenapi * Deleting security group does not mark rules as deleted * Collect more accurate bandwidth data for XenServer * Zmq register opts fix in receiver * Revert explicit usage of tgt-adm --conf option * Fix booting a raw image on XenServer * Add servers/ips api\_samples tests * LOG.exception() should only be used in exception handler * Fix XenServer's ability to boot xen type images * all\_extensions api\_samples testing for server actions * Fixes remove\_export for IetAdm * libvirt: Fix \_cleanup\_resize * Imported Translations from Transifex * xenapi: fix undefined variable in logging message * Spelling: ownz=>owns * Fix NetAppCmodeISCSIDriver.\_get\_lun\_handle() method * Integration tests virtual interfaces API extension * Allow deletion of instance with failed vol cleanup * Fixes snapshotting of instances booted from volume * Move fakeldap.py from auth dir to tests * Remove refs to ATAoE from nova docs * Imported Translations from Transifex * Set volume status to error if scheduling fails * Update volume detach smoke test to check status * Fix config opts for Storwize/SVC volume driver * Ensure hybrid driver creates veth pair only once * Cleanup exception handling * Imported Translations from Transifex * Add lun number (0) to model\_update in HpSanDriver * libvirt: return after soft reboot successfully completes * Fixes to the SolarisISCSI Driver * Fix live migration when volumes are attached * Clarify dangerous use of exceptions in unit tests * Cleanup test\_api\_samples:\_compare\_result * Fix testContextClaimWithException * Fix solidfire unit tests * Stop double logging to the console * Recreate nw\_info after auto assigning floating ip * Re-generate sample config file * Use test.TestingException instead of duplicating it * Fix startup with DELETED instances * Fix solidfire option declaration * Restore SIGPIPE default action for subprocesses * Raise NotFound for non-existent volume snapshot create * Catch NotFound exception in FloatingIP add/remove * Adds API sample testing for rescue API extension * Fix bugs in resource tracker and cleanup * Replace builtin hash with MD5 to solve 32/64-bit issues * Properly create and delete Aggregates * No stack trace on bad nova aggregate-\* command * Clean up test\_state\_revert * Fix aggregate\_hosts.host migration for sqlite * Call compute manager methods with instance as keyword argument * Adds deserialization for block\_device\_mapping * Fix marker pagination for /servers * Send api.fault notification on API service faults * Always yield to other greenthreads after database calls * fix unused import * Don't include auto\_assigned ips in usage * Correct IetAdm remove\_iscsi\_target * Cleanup unused import in manager.py * xapi: fix create hypervisor pool * Bump version to 2013.1 * Add Keypairs extension to API samples test * sample api testing for os-floating-ips extension * Update quota when deleting volume that failed to be scheduled * Update scheduler rpc API version * Added script to find unused config options * Make sure to return an empty subnet list for a network without sunbet * Fix race condition in CacheConcurrencyTestCase * Makes scheduler hints and disk config xml correct * Add lookup by ip via Quantum for metadata service * Fix over rate limit error response * Add deserialization for multiple create and az * Fix doc/README.rst to render properly * Add user-data extension to API samples tests * Adds API sample testing for Extended server attributes extension * Inherit the base images qcow2 properties * Correct db migration 91 * make ensure\_default\_security\_group() call sgh * add ability to clone images * add get\_location method for images * Adds new volume API extensions * Add console output extension to API samples test * Raise BadRequest while creating server with invalid personality * Update 'unlimited' quota value to '-1' in db * Modified 404 error response for server actions * Fix volume id conversion in nova-manage volume * Improve error handling of scheduler * Fixes error handling during schedule\_run\_instance * Include volume\_metadata with object on vol create * Reset the task state after backup done * Allows waiting timers in libvirt to raise NotFound * Improve entity validation in volumes APIs * Fix volume deletion when device mapper is used * Add man pages * Make DeregisterImage respect AWS EC2 specification * Deserialize user\_data in xml servers request * Add api samples to Scheduler hints extension * Include Schedule Hints deserialization to XML API * Add admin actions extension * Allow older versions of libvirt to delete vms * Add security groups extension to API samples test * Sync a change to rpc from openstack-common * Add api\_samples tests for servers actions * Fix XML deserialization of rebuild parameters * All security groups not returned to admins by default * libvirt: Cleanup L2 and L3 rules when confirm vm resize * Corrects use of instance\_uuid for fixed ip * Clean up handling of project\_only in network\_get * Add README for doc folder * Correct typo in memory\_mb\_limit filter property * Add more useful logging around the unmount fail case * Imported Translations from Transifex * Make compute/manager.py use self.host instead of FLAGS.host * Add a resume delete on volume manager startup * Remove useless \_get\_key\_name() in servers API * Add entity body validation helper * Add 422 test unit test for servers API * Use tmpdir and avoid leaving test files behind * Includes sec group quota details in limits API response * Fixes import issue on Windows * Overload comment in generated SSH keys * Validate keypair create request body * Add reservations parameter when cast "create\_volume" to volume manager * Return 400 if create volume snapshot force parameter is invalid * Fix FLAGS.volumes\_dir help message * Adds more servers list and servers details samples * Makes key\_name show in details view of servers * Avoid VM task state revert on instance termination * Avoid live migrate overwriting the other task\_state * Backport changes from Cinder to Nova-Volume * Check flavor id on resize * Rename \_unplug\_vifs to unplug\_vifs * PowerVM: Establish SSH connection at use time * libvirt: Fix live block migration * Change comment for function \_destroy * Stop fetch\_ca from throwing IOError exceptions * Add 'detaching' to volume status * Reset task state before rescheduling * workaround lack of quantum/nova floatingip integration * fix rpcapi version * Added description of operators for extra\_specs * Convert to ints in VlanManager.create\_networks * Remove unused AddressAlreadyAllocated exception * Remove an unused import * Make ip block splitting a bit more self documenting * Prevent Partial terminations in EC2 * Add flag cinder\_endpoint\_template to volume.cinder * Handle missing network\_size in nova-manage * Adds API sample test for Flavors Extra Data extension * More specific lxml versions in tools/pip-requires * Fixes snat rules in complex networking configs * Fix flavor deletion when there is a deleted flavor * Make size optional when creating a volume from a snapshot * Add documentation for scheduler filters scope * Add and fix tests for attaching volumes * Fix auth parameter passed to libvirt openAuth() method * xapi: Fix live block migration * Add a criteria to sort a list of dict in api samples * delete a module never used * Update SolidFire volume driver * Adds get\_available\_resource to hyperv driver * Create image of volume-backed instance via native API * Improve floating IP delete speed * Have device mapping use autocreated device nodes * remove a never used import * fix unmounting of LXC containers in the presence of symlinks * Execute attach\_time query earlier in migration 98 * Add ServerStartStop extension API test * Set install\_requires in setup.py * Add Server Detail and Metadata tests * xenapi: Make dom0 serialization consistent * Refer to correct column names in migration 98 * Correct ephemeral disk cache filename * Stop lock decorator from leaving tempdirs in tests * Handle missing 'provider\_location' in rm\_export * Nail the pip requirement at 1.1 * Fix typo in tgtadm LOG.error() call * Call driver for attach/detach\_volume * rbd: implement create\_volume\_from\_snapshot * Use volume driver specific exceptions * Fake requests in tests should be to v1 * Implement paginate query use marker in nova-api * Simplify setting up test notifier * Specify the conf file when creating a volume * Generate a flavorid if needed at flavor creation * Fix EC2 cinder volume creation as an admin user * Allow cinder catalog match values to be configured * Fix synchronized decorator path cleanup * Fix and cleanup compute node stat tracking * avoid the buffer cache when copying volumes * Add missing argument to novncproxy websockify call * Use lvs instead of os.listdir in \_cleanup\_lvm * Fixing call to hasManagedSaveImage * Fix typo in simple\_tenant\_usage tests * Move api\_samples to doc dir * Add a tunable to control how many ARPs are sent * Get the extension alias to compose the path to save the api samples * Add scope to extra\_specs entries * Use bare container format by default * Sync some updates from openstack-common * Fix simple\_tenant\_usage's handing of future end times * Yield to another greenthread when some time-consuming task finished * Automatically convert device names * Fix creation of iscsi targets * Makes sure new flavors default to is\_public=True * Optimizes flavor\_access to not make a db request * Escape ec2 XML error responses * Skip tests in OSX due to readlink compat * Allow admins to de-allocate any floating IPs * Fix xml metadata for volumes api in nova-volume * Re-attach volumes after instance resize * Speed up creating floating ips * Adds API sample test for limits * Fix vmwareapi driver spawn() signature * Fix hyperv driver spawn() signature * Add API samples to images api * Add method to manage 'put' requests in api-sample tests * Add full python path to test stubbing modules for libvirt * Rename imagebackend arguments * Fixes sqlalchemy.api.compute\_node\_get\_by\_host * Fix instances query for compute stats * Allow hard reboot of a soft rebooting instance * On rebuild, the compute.instance.exists * Fix quota reservation expiration * Add api sample tests for flavors endpoint * Add extensions for flavor swap and rxtx\_factor * Address race condition from concurrent task state update * Makes sample testing handle out of order output * Avoid leaking security group quota reservations * Save the original base image ref for snapshots * Fixed boot from snapshot failure * Update zmq context cleanup to use term * Fix deallocate\_fixed\_ip invocation * fix issues with Nova security groups and Quantum * Clear up the .gitignore file * Allow for deleting VMs from down compute nodes * Update nova-rpc-zmq-receiver to load nova.conf * FLAG rename: bandwith\_poll\_\*=>bandwidth\_poll\_\* * Spelling: Persistant=>Persistent * Fix xml metadata for volumes extension * delete unused valiables * Clean up non-spec output in flavor extensions * Adds api sample testing for extensions endpoint * Makes api extension names consistent * Fixes spawn method signature for PowerVM driver * Spelling fix Retrive=> Retrieve * Update requires to glanceclient >=0.5.0 * Sort API extensions by alias * Remove scheduler RPC API version 1.x * Add version 2.0 of the scheduler RPC API * Remove some remnants of VSA support * hacking: Add driver prefix recommendation * Implements PowerVM get\_available\_resource method * Add a new exception for live migration * Assume virt disk size is consumed by instances * External locking for image caching * Stop using scheduler RPC API magic * Adds api sample testing for versions * Do not run pylint by default * Remove compute RPC API version 1.x * Add version 2.0 of compute RPC API * Accept role list from either X-Roles or X-Role * Fix PEP8 issues * Fix KeyError when test\_servers\_get fails * Update nova.conf.sample * Fixes backwards compatible rpc schedule\_run * Include launch-index in openstack style metadata * Port existing code to utils.ensure\_tree * Correct utils.execute() to check 0 in check\_exit\_code * Add the self parameter to NoopFirewallDriver methods * request\_spec['instance\_uuids'] as list in resize * Fix column variable typo * Add ops to aggregate\_instance\_extra\_specs filter * Implement project specific flavors API * Correct live\_migration rpc call in test * Allow connecting to a ssl-based glance * Move ensure\_tree to utils * Define default mode and device\_id\_string in Mount * Update .mailmap * Fix path to example extension implementation * Remove test\_keypair\_create\_quota\_limit() * Remove duplicated test\_migrate\_disk\_and\_power\_off() * Add missing import webob.exc * Fix broken SimpleScheduler.schedule\_run\_instance() * Add missing user\_id in revoke\_certs\_by\_user\_and\_project() * Rename class\_name to project\_id * Use the compute\_rpcapi instance not the module * Remove duplicated method VM\_migrate\_send * Add missing context argument to start\_transfer calls * Remove unused permitted\_instance\_types * Add lintstack error checker based on pylint * Make pre block migration create correct disk files * Remove unused and old methods in hyperv and powervm driver * Trap iscsiadm error * Check volume status before detaching * Simplify network create logic * Clean up network create exception handling * Adding indexes to frequently joined database columns * Ensure hairpin\_mode is set whenever vifs is added to bridge * Returns hypervisor\_hostname in xml of extension * Adds integration testing for api samples * Fix deallocate\_fixed\_ip() call by unifying signature * Make instance\_update\_and\_get\_original() atomic * Remove unused flags * Remove test\_instance\_update\_with\_instance\_id test * Remove unused instance id-to-uuid function * Re-work the handling of firewall\_driver default * Include CommonConfigOpts options in sample config * Re-generate nova.conf.sample * Ensure log formats are quoted in sample conf * Don't include hostname and IP in generated sample conf * Allow generate\_sample.sh to be run from toplevel dir * Let admin list instances in vm\_states.DELETED * Return actual availability zones * Provide a hint for missing EC2 image ids * Check association when removing floating ip * Add public network support when launching an instance * Re-define libvirt domain on "not found" exception * Add two prereq pkgs to nova devref env guide * Fix hyperv Cfgs: StrOpt to IntOpt * continue deleting instance even if quantum port delete fails * Typo fix: existant => existent * Fix hacking.py git checks to propagate errors * Don't show user-data when its not sent * Clarify nwfilter not found error message * Remove unused \_create\_network\_filters() * Adds missing assertion to FloatingIP tests * Restore imagebackend in test\_virt\_drivers.py * Add nosehtmloutput as a test dependency * Remove unused exceptions from nova/exception.py * Cleanup pip dependencies * Make glance image service check base exception classes * Add deprecated warning to SimpleScheduler * Have compute\_node\_get() join 'service' * XCP-XAPI version fix * add availability\_zone to openstack metadata * Remove stub\_network flag * Implements sending notification on metadata change * Code clean up * Implement network creation in compute API * Debugged extra\_specs\_ops.py * Fix typo in call in cinder.API unreserve\_volume * xenapi: Tag nova volumes during attach\_volume * Allow network to call get\_fixed\_ip\_by\_address * Add key\_name attribute in XML servers API * Fix is\_admin check via policy * Keep the ComputeNode model updated with usage * Remove hard-coded 'admin' role checking and use policy instead * Introduce ImagePropertiesFilter scheduler filter * Return HTTP 422 on bad server update PUT request * Makes sure instance deletion ok with deleted data * OpenStack capitalization added to HACKING.rst * Fix get\_vnc\_console race * Fix a TypeError that occurs in \_reschedule * Make missing imports flag in hacking settable * Makes sure tests don't leave lockfiles around * Update FilterScheduler doc * Disable I18N in Nova's test suites * Remove logging in volume tests * Refactor extra specs matching into a new module * Fix regression in compute\_capabilities filter * Refactor ComputeCapabilitiesFilter test cases * Revert per-user-quotas * Remove unused imports * Fix PEP8 issues * Sync changes from openstack common * Implement GET (show) in OS API keypairs extension * Fix spelling typos * Ignoring \*.sw[op] files * xenapi: attach root disk during rescue before boot * Allows libvirt to set a serial number for a volume * Adds support for serial to libvirt config disks * Remove unused variables * Always create the run\_instance records locally * Fix use of non-existant var pool * Adds Hyper-V support in nova-compute (with new network\_info model), including unit tests * Update sqlite to use PoolEvents for regexp * Remove unused function in console api * Allow nova to guess device if not passed to attach * Update disk config to check for 'server' in req * Changes default behavior of ec2 * Make ComputeFilter verify compute-related instance properties * Collect instance capabilities from compute nodes * Move volume size validation to api layer * Change IPtablesManager to preserve packet:byte counts * Add get\_key\_pair to compute API * Defined IMPL in global ipv6 namespace * xenapi: remove unnecessary json decoding of injected\_files * Remove unnecessary try/finally from snapshot * Port pre\_block\_migration to new image caching * Adding port attribute in network parameter of boot * Add support for NFS-based virtual block devices * Remove assigned, but unused variables from nova/db/sqlalchemy/api.py * xenapi: Support live migration without pools * Restore libvirt block storage connections on reboot * Added several operators on instance\_type\_extra\_specs * Revert to prior method of executing a libvirt hard\_reboot * Set task\_state=None when finished snapshotting * Implement get\_host\_uptime in libvirt driver * continue config-drive-v2, add openstack metadata api * Return values from wrapped functions in decorators * Allow XML payload for volume creation * Add PowerVM compute driver and unit tests * Revert task\_state on failed instance actions * Fix uuid related bug in console/api * Validate that min\_count & max\_count parameters are numeric * Allow stop API to be called in Error * Enforce quota limitations for instance resize * Fix rpc error with live\_migration * Simple checks for instance user data * Change time.sleep to greenthread.sleep * Add missing self. for parent * Rewrite image code to use python-glanceclient * Fix rpc error with live\_migration * volumes: fix check\_for\_export() in non-exporting volume drivers * Avoid {} and [] as default arguments * Improve bw\_usage\_update() performance * Update extra specs calls to use deleted: False * Don't stuff non-db data into instance dict * Fix type error in state comparison * update python-quantumclient dependency to >=2.0 * Key auto\_disk\_config in create server off of ext * Implement network association in OS API * Fix TypeError conversion in API layer * Key requested\_networks off of network extension * Key config\_drive off of config-drive extension * Make sure reservations is initialized * import module, not type * Config drive v2 * Don't accept key\_name if not enabled * Fix HTTP 500 on bad server create * Default behavior should restrict admins to tenant for volumes * remove nova code related to Quantum v1 API * Make sure ec2 mapping raises proper exceptions * Send host not ComputeNode into uptime RPC call * Making security group refresh more specific * Sync with latest version of openstack.common.cfg * Sync some cleanups from openstack.common * maint: compare singletons with 'is' not '==' * Compute restart causes period of network 'blackout' * Revert "Remove unused add\_network\_to\_project() method" * Add error log for live migration * Make FaultWrapper handle exception code = None * Don't accept scheduler\_hints if not enabled * Avoid double-reduction of quota for repeated delete * Traceback when over allocating IP addresses * xenapi: ensure all calls to agent get logged * Make update\_db an opt arg in scheduler manager * Key min\_count, max\_count, ret\_res\_id off of ext * Key availability\_zone in create server off of ext * Fix the inject\_metadata\_into\_fs in the disk API * Send updated instance model to schedule\_prep\_resize * Create unique volumes\_dir for testing * Fix stale instances being sent over rpc * Fix setting admin\_pass in rescue command * Key user\_data in create server off of extension * Key block\_device\_mapping off of volume extension * Moves security group functionality into extension * Adds ability to inherit wsgi extensions * Fixes KeyError when trying to rescue an instance * Make TerminateInstances compatible with EC2 api * Uniqueness checks for floating ip addresses * Driver for IBM Storwize and SVC storage * scheduler prep\_resize should not update instance['host'] * Add a 50 char git title limit test to hacking * Fix a bug on remove\_volume\_connection in compute/manager.py * Fix a bug on db.instance\_get\_by\_uuid in compute/manager.py * Make libvirt\_use\_virtio\_for\_bridges flag works for all drivers * xenapi: reduce polling interval for agent * xenapi: wait for agent resetnetwork response * Fix invalid exception format strings * General host aggregates part 2 * Update devref for general host aggregates * Cleanup consoles test cases * Return 409 error if get\_vnc\_console is called before VM is created * Move results filtering to db * Prohibit file injection writing to host filesystem * Added updated locations for iscsiadm * Check against unexpected method call * Remove deprecated use Exception.message * Remove temporary hack from checks\_instance\_lock * Remove temporary hack from wrap\_instance\_fault * Fix up some instance\_uuid usage * Update vmops to access metadata as dict * Improve external locking on Windows * Fix traceback when detaching volumes via EC2 * Update RPC code from common * Fixes parameter passing to tgt-admin for iscsi * Solve possible race in semaphor creation * Rename private methods of compute manager * Send full instance to compute live\_migration * Add underscore in front of post\_live\_migration * Send full instance to scheduler live\_migration * Send full instance to run\_instance * Use dict style access for image\_ref * Use explicit arguments in compute manager run\_instance * Remove topic from scheduler run\_instance * Use explicit args in run\_instance scheduler code * Update args to \_set\_vm\_state\_and\_notify * Reduce db access in prep\_resize in the compute manager * Remove instance\_id fallback from cast\_to\_compute\_host() * Remove unused InstanceInfo class * Adds per-user-quotas support for more detailed quotas management * Remove list\_instances\_detail from compute drivers * Move root\_helper deprecation warning into execute * Flavor extra specs extension use instance\_type id * Fix test\_resize\_xcp testcase - it never ran * tests: avoid traceback warning in test\_live\_migration * ensure\_tree calls mkdir -p * Only log deprecated config warnings once * Handle NetworkNotFound in \_shutdown\_instance * Drop AES functions and pycrypto dependency * Simplify file hashing * Allow loaded extensions to be checked from servers * Make extension aliases consistent * Remove old exception type * Fix test classes collision * Remove unused variables * Fix notification logic * Improve external lock implementation * maint: remove an unused import in libvirt.driver * Require eventlet >= 0.9.17 * Remove \*\*kwargs from prep\_resize in compute manager * Updates to the prep\_resize scheduler rpc call * Migrate a notifier patch from common: * Update list\_instances to catch libvirtError * Audit log messages in nova/compute/api.py * Rename \_self to self according to Python convention * import missing module time * Remove unused variables * Handle InstanceNotFound in libvirt list\_instances * Fix broken pep8 exclude processing * Update reset\_db to call setup if \_DB is None * Migrate a logging change from common: * Send 'create volume from snapshot' to the proper host * Fix regression with nova-manage floating list * Remove unused imports * Simple refactor of some db api tests * fix unmounting of LXC containers * Update usage of 'ip' to handle more return codes * Use function registration for policy checks * Check instance lock in compute/api * Fix a comment typo in db api * Audit log messages in nova/compute/manager.py * XenAPI: Add script to destroy cached images * Fix typo in db test * Fix issue with filtering where a value is unicode * Avoid using logging in signal handler * Fix traceback when using s3 * Don't pass kernel args to Xen HVM instances * Sync w/ latest openstack common log.py * Pass a full instance to rotate\_backups() * Remove agent\_update from the compute manager * Move tests.test\_compute\_utils into tests.compute * Send a full instance in terminate\_instance * maint: don't require write access when reading files * Fix get\_diagnostics RPC arg ordering * Fix failed iscsi tgt delete errors with new tgtadm * Deprecate root\_helper in favor of rootwrap\_config * Use instance\_get instead of instance\_by * Clarify TooManyInstances exception message * Setting root passwd no longer fails silently * XenAPI: Fix race-condition with cached images * Prevent instance\_info\_cache from being altered post instance * Update targets information when creating target * Avoid recursion from @refresh\_cache * Send a full instance in change\_instance\_metadata * Send a full instance in unrescue\_instance * Add check exit codes for vlans * Compute: Error out instance on rebuild and resize * Partially revert "Remove unused scheduler functions" * Use event.listen() instead of deprecated listeners kwarg * Avoid associating floating IP with two instances * Tidy up nova.image.glance * Fix arg to get\_instance\_volume\_block\_device\_info() * Send a full instance in snapshot\_instance * Send a full instance in set\_admin\_password * Send a full instance in revert\_resize * Send a full instance in rescue\_instance * Send a full instance in remove\_volume\_connection * Send a full instance in rollback\_live\_migration\_at\_destination * Send a full instance in resume\_instance * Send a full instance in resize\_instance * Send a full instance in reset\_network * Convert virtual\_interfaces to using instance\_uuid * Compute: VM-Mode should use instance dict * Fix image\_type=base after snapshot * Send a full instance in remove\_fixed\_ip\_from\_instance * Send a full instance in rebuild\_instance * Reverts fix lp1031004 * sync openstack-common log changes with nova * Set default keystone auth\_token signing\_dir loc * Resize.end now includes the correct instance\_type * Fix rootwrapper with tgt-admin * Use common parse\_isotime in GlanceImageService * Xen: VHD sequence validation should handle swap * Revert "Check for selinux before setting up selinux." * reduce debugging from utils.trycmd() * Avoid error during snapshot of ISO booted instance * Add a link from HACKING to wiki GitCommitMessages page * Instance cleanups from detach\_volumes * Check for selinux before setting up selinux * Prefer instance in reboot\_instance * maint: libvirt imagecache: remove redundant interpreter spec * Support external gateways in VLAN mode * Turn on base image cleanup by default * Make compute only auto-confirm its own instances * Fix state logic for auto-confirm resizes * Explicitly send primitive instances via rpc * Allow \_destroy\_vdis if a mapping has no VDI * Correct host count in instance\_usage\_audit\_log extension * Return location header on volume creation * Add persistent volumes for tgtd * xenapi: Use instance uuid when calling DB API * Fix HACKING violation in nova/api/openstack/volume/types.py * Remove ugly instance.\_rescue hack * Convert to using dict style key lookups in XenAPI * Implements notifications for more instance changes * Fix ip6tables support in xenapi bug 934603 * Moving where the fixed ip deallocation happens * Sanitize xenstore keys for metadata injection * Don't store system\_metadata in xenstore * use REDIRECT to forward local metadata request * Only enforce valid uuids if a uuid is passed * Send a full instance in pre\_live\_migration * Send a full instance in power\_on\_instance and start\_instance * Send a full instance in power\_off\_instance and stop\_instance * Make instance\_uuid backwards compat actually work * Send a full instance via rpc for post\_live\_migration\_at\_destination * Send a full instance via rpc for inject\_network\_info * Send a full instance via rpc for inject\_file * Send a full instance via rpc for get\_vnc\_console * Remove get\_instance\_disk\_info from compute rpcapi * Send a full instance via rpc for get\_diagnostics * Send a full instance via rpc for finish\_revert\_resize * Ensure instance is moved to ERROR on suspend failure * Avoid using 'is' operator when comparing strings * Revert "Add additional capabilities for computes" * Allow power\_off when instance doesn't exist * Fix resizing VDIs on XenServer >= 6 * Refactor glance image service code * Don't import libvirt\_utils in disk api * Call correct implementation for quota\_destroy\_all\_by\_project * Remove return values from some compute RPC methods * Reinstate instance locked error logging * Send a full instance via rpc for finish\_resize * Fix exception handling in libvirt attach\_volume() * Convert fixed\_ips to using instance\_uuid * Trim volume type representation * Fix a couple of PEP8 nits * Replace subprocess.check\_output with Popen * libvirt driver: set os\_type to support xen hvm/pv * Include architecture in instance base options passed to the scheduler * Fix typo of localhost's IP * Enhance nova-manage to set flavor extra specs * Send a full instance via rpc for detach\_volume * Remove unused methods from compute rpcapi * Send a full instance via rpc for confirm\_resize * Send a full instance via rpc for check\_can\_live\_migrate\_source * Send a full instance via rpc for check\_can\_live\_migrate\_destination * Remove unused scheduler functions * Send a full instance via rpc for attach\_volume * Send a full instance via rpc for add\_fixed\_ip\_to\_instance * Send a full instance via rpc for get\_console\_output * Send a full instance via rpc for suspend\_instance * Send a full instance via rpc for (un)pause\_instance * Don't use rpc to lock/unlock an instance * Convert reboot\_instance to take a full instance * Update decorators in compute manager * Include name in a primitive Instance * Shrink Simple Scheduler * Allow soft deletes from any state * Handle NULL deleted\_at in migration 112 * Add support for snapshots and volume types to netapp driver * Inject instance metadata into xenstore * Add missing tempfile import to libvirt driver * Fix docstring for SecurityGroupHandlerBase * Don't log debug auth token when using cinder * Remove temporary variable * Define cross-driver standardized vm\_mode values * Check for exception codes in openstack API results * Add missing parameters to novas cinder api * libvirt driver: set driver name consistently * Allow floating IP pools to be deleted * Fixes console/vmrc\_manager.py import error * EC2 DescribeImageAttribute by kernel/ramdisk * Xen: Add race-condition troubleshooting script * Return 400 in get\_console\_output for bad length * update compute\_fill\_first\_cost\_fn docstring * Xen: Validate VHD footer timestamps * Xen: Ensure snapshot is torn down on error * Provide rootwrap filters for nova-api-metadata * Fix a bug in compute\_node\_statistics * refactor all uses of the \`qemu-img info\` command * Xen: Fix snapshots when use\_cow=True * tests: remove misleading docstrings on libvirt tests * Update NovaKeystoneContext to use jsonutils * Use compute\_driver in vmware driver help messages * Use compute\_driver in xenapi driver help messages * Add call to get hypervisor statistics * Adds xcp disk resize support * Log snapshot UUID and not OpaqueRef * Remove unused user\_id and project\_id arguments * Fix wrong regex in cleanup\_file\_locks * Update jsonutils from openstack-common * Return 404 when attempting to remove a non-existent floating ip * Implements config\_drive as extension * use boto's HTTPResponse class for versions of boto >=2.5.2 * Migrations for deleted data for previously deleted instances * Add image\_name to create and rebuild notifications * Make it clear subnet\_bits is unused in ipam case * Remove unused add\_network\_to\_project() method * Adding networking rules to vm's on compute service startup * Avoid unrecognized content-type message * Updates migration 111 to work w/ Postgres * fixes for nova-manage not returning a full list of fixed IPs * Adds non\_inheritable\_image\_properties flag * Add git commit message validation to hacking.py * Remove unnecessary use of with\_lockmode * Improve VDI chain logging * Remove profane words * Adds logging for renaming and hardlinking * Don't create volumes if an incorrect size was given * set correct SELinux context for injected ssh keys * Fixes nova-manage fixed list with deleted networks * Move libvirt disk config setup out of main get\_guest\_config method * Refactor libvirt imagebackend module to reduce code duplication * Move more libvirt disk setup into the imagebackend module * Don't hardcode use of 'virtio' for root disk in libvirt driver * Ensure to use 'hdN' for IDE disk device in libvirt driver * Don't set device='cdrom' for all disks in libvirt driver * Move setup of libvirt disk cachemode into imagebackend module * Get rid of pointless 'suffix' parameter in libvirt imagebackend * Revert "Attach ISO as separate disk if given proper instruction" * Ensure VHDs in staging area are sequenced properly * Fix error in error handler in instance\_usage\_audit task * Fix SQL deadlock in quota reservations * Ensure 413 response for security group over-quota * fixes for nova-manage network list if network has been deleted * Allow NoMoreFloatingIps to bubble up to FaultWrapper * Fix cloudpipe keypair creation. Add pipelib tests * Don't let failure to delete filesystem block deletion of instances in libvirt * Static FaultWrapper status\_to\_type map * Make flavorextradata ignore deleted flavors * Tidy up handling of exceptions in floating\_ip\_dns * Raise NotImplementedError, not NotImplemented singleton * Fix the mis-use of NotImplemented * Update FilterSchedulerTestCase docstring * Remove unused testing.fake * Make snapshot work for stopped VMs * Split ComputeFilter up * Show all absolute quota limits in /limits * Info log to see which compute driver has loaded * Rename get\_lock() to \_get\_lock() * Remove obsolete line in host\_manager * improve efficiency of image transfer during migration * Remove unused get\_version\_from\_href() * Add debug output to RamFilter * Fixes bare-metal spawn error * Adds generic retries for build failures * Fix docstring typo * Fixes XenAPI driver import in vm\_vdi\_cleaner * Display key\_name only if keypairs extension is used * Fix EC2 CreateImage no\_reboot logic * Reject EC2 CreateImage for instance-store * EC2 DescribeImages reports correct rootDeviceType * Support EC2 CreateImage API for boot-from-volume * remove unused clauses[] variable * Partially implements blueprint xenapi-live-migration * Improved VM detection for bandwidth polling (XAPI) * Sync jsonutils from openstack-common * Adding granularity for quotas to list and update * Remove VDI chain limit for migrations * Refactoring required for blueprint xenapi-live-migration * Add the plugin framework from common; use and test * Catch rpc up to the common state-of-the-art * Support requested\_networks with quantum v2 * Return 413 status on over-quota in the native API * Fix venv wrapper to clean \*.pyc * Use all deps for tools/hacking.py tests in tox * bug 1024557 * General-host-aggregates part 1 * Attach ISO as separate disk if given proper instruction * Extension to show usage of limited resources in /limits response * Fix SADeprecationWarning: useexisting is deprecated * Fix spelling in docstrings * Fix RuntimeWarning nova\_manage not found * Exclude openstack-common from pep8 checks * Use explicit destination user in xenapi rsync call * Sync gettextutils fixes from openstack-common * Sync importutils from openstack-common * Sync cfg from openstack-common * Add SKIP\_WRITE\_GIT\_CHANGELOG to setup.py * Remove unnecessary logging from API * Sync a commit from openstack-common * Fix typo in docstring * Remove VDI chain limit for snapshots * Adds snapshot\_attached\_here contextmanager * Change base rpc version to 1.0 in compute rpcapi * Use \_lookup\_by\_name instead of \_conn.lookupByName * Use the dict syntax instead of attribute to access db objects * Raise HTTP 500 if service catalog is not json * Floating\_ip create /31,32 shouldn't silent error * Convert remaining network API casts to calls * network manager returns empty list, not raise an exception * add network creation call to network.api.API * overriden VlanManager.create\_networks must return a result * When over quota for floating ips, return HTTPRequestEntityTooLarge * Remove deprecated auth-related db code * Fix .mailmap to generate unique AUTHORS list * Imports base64 to fix xen file injection * Remove deprecated auth from GlanceImageService * Adds bootlocking to the xenserver suspend and resume * ensure libguestfs mounts are cleaned up * Making docs pretty! * allows setting accessIPvs to null via update call * Re-add nova.virt.driver import to xenapi driver * Always attempt to delete entire floating IP range * Adds network labels to the fixed ips in usages * only mount guest image once when injecting files * Remove unused find\_data\_files function in setup.py * Use compute\_api.get\_all in affinity filters * Refactors more snapshot code into vm\_utils * Clarifying which vm\_utils functions are private * Refactor instance\_usage\_audit. Add audit tasklog * Fixes api fails to unpack metadata using cinder * Remove deprecated auth docs * Raise Failure exception when setting duplicate other\_config key * Split xenapi agent code out to nova.virt.xenapi.agent * ensure libguestfs has completed before proceeding * flags documentation to deprecate connection\_type * refactor baremetal/proxy => baremetal/driver * refactor xenapi/connection => xenapi/driver * refactor vmwareapi\_conn => vmwareapi/driver * Don't block instance delete on missing block device volume * Adds diagnostics command for the libvirt driver * associate\_floating\_ip an ip already in use * When deleting an instance, avoid freakout if iscsi device is gone * Expose over-quota exceptions via native API * Fix snapshots tests failing bug 1022670 * Remove deprecated auth code * Remove deprecated auth-related api extensions * Make pep8 test work on Mac * Avoid lazy-loading errors on instance\_type * Fetch kernel/ramdisk images directly * Ignore failure to delete kernel/ramdisk in xenapi driver * Boot from volume for Xen * Fix 'instance %s: snapshotting' log message * Fix KeyError 'key\_name' when KeyPairExists raised * Propagate setup.py change from common * Properly name openstack.common.exception * Janitorial: Catch rpc up with a change in common * Make reboot work for halted xenapi instances * Removed a bunch of cruft files * Update common setup code to latest * fix metadata file injection with xen * Switch to common notifiers * Implements updating complete bw usage data * Fix rpc import path in nova-novncproxy * This patch stops metadata from being deleted when an instance is deleted * Set the default CPU mode to 'host-model' for Libvirt KVM/QEMU guests * Fallback to fakelibvirt in test\_libvirt.py test suite * Properly track VBD and VDI connections in xenapi fake * modify hacking.py to not choke on the def of \_() * sort .gitignore for readability * ignore project files for eclipse/pydev * Add checks for retrieving deleted instance metadata for notification events * Allow network\_uuids that begin with a prefix * Correct typo in tools/hacking.py l18n -> i18n * Add \*.egg\* to .gitignore * Remove auth-related nova-manage commands * Remove unnecessary target\_host flag in xenapi driver tests * Remove unnecessary setUp() method in xenapi driver tests * Finish AUTHORS transition * Don't catch & ignore exceptions when setting up LXC container filesystems * Ensure system metadata is sent on new image creation * Distinguish over-quota for volume size and number * Assign service\_catalog in NovaKeystoneContext * Fix some hacking violations in the quantum tests * Fix missing nova.log change to nova.openstack.common.log * Add Cinder Volume API to Nova * Modifies ec2/cloud to be able to use Cinder * Fix nova-rpc-zmq-receiver * Drop xenapi session.get\_imported\_xenapi() * Fix assertRaises(Exception, ...) HACKING violation * Make possible to store snapshots not in /tmp directory * Prevent file injection writing to host filesystem * Implement nova network API for quantum API 2.0 * Expand HACKING with commit message guidelines * Add ServiceCatalog entries to enable Cinder usage * Pass vdi\_ref to fake.create\_vbd() not a string * Switch to common logging * use import\_object\_ns for compute\_driver loading * Add compatibility for CPU model config with libvirt < 0.9.10 * Sync rpc from openstack-common * Redefine the domain's XML on volume attach/detach * Sync jsonutils from openstack-common * Sync iniparser from openstack-common * Sync latest importutils from openstack-common * Sync excutils from openstack-common * Sync cfg from openstack-common * Add missing gettextutils from openstack-common * Run hacking tests as part of the gate * Remove duplicate volume\_id * Make metadata content match the requested version of the metadata API * Create instance in DB before block device mapping * Get hypervisor uptime * Refactoring code to kernel Dom0 plugin * Ability to read deleted system metadata records * Add check for no domains in libvirt driver * Remove passing superfluous read\_deleted argument * Flesh out the README file with a little more useful information * Remove unused 'get\_open\_port' method from libvirt utils * deallocate\_fixed\_ip attempts to update deleted ip * Dom0 plugin now returns data in proper format * Add PEP8 checks back for Dom0 plugins * Add missing utils declaration to RPM spec * Fixes bug 1014194, metadata keys are incorrect for kernel-id and ramdisk-id * Clean up cruft in nova.image.glance * Retry against different Glance hosts * Fix some import ordering HACKING violations * Deal with unknown instance status * OS API should return SHUTOFF, not STOPPED * Implement blueprint ec2-id-compatibilty * Add multi-process support for API services * Allow specification of the libvirt guest CPU model per host * Refactor Dom0 Glance plugin * Switch libvirt get\_cpu\_info method over to use config APIs * Remove tpool stub in xenapi tests * Use setuptools-git plugin for MANIFEST * Remove duplicate check of server\_dict['name'] * Add missing nova-novncproxy to tarballs * Add libvirt config classes for handling capabilities XML doc * Refactor libvirt config classes for representing CPU models/features * Fix regression in test\_connection\_to\_primitive libvirt testcase * Rename the instance\_id column in instance\_info\_caches * Rename GlanceImageService.get to download * Use LOG.exception instead of logging.exception * Align run\_tests.py pep8 with tox * Add hypervisor information extension * Remove GlanceImageService.index in favor of detail * Swap VDI now uses correct name label * Remove image service show\_by\_name method * Cleanup of image service code * Adds default fall-through to the multi scheduler. Fixes bug 1009681 * Add missing netaddr import * Make nova list/show behave nicely on instance\_type deletion * refactor libvirt from connection -> driver * Switch to using new config parsing for vm\_vdi\_cleaner.py * Adds missing 'owner' attribute to image * Ignore floatingIpNotAssociated during disassociation * Avoid casts in network manager to prevent races * Stop nova\_ipam\_lib from changing the timeout setting * Remove extra DB calls for instances from OS API extensions * Allow single uuid to be specified for affinity * Fix invalid variable reference * Avoid reset on hard reboot if not supported * Fix several PEP-8 issues * Allow access to metadata server '/' without IP check * Fix db calls for snaphsot and volume mapping * Removes utils.logging\_error (no longer used) * Removes utils.fetch\_file (no longer used) * Improve filter\_scheduler performance * Remove unnecessary queries for network info in notifications * Re-factor instance DB creation * Fix hacking.py failures.. * fix libvirt get\_memory\_mb\_total() with xen * Migrate existing routes from flat\_interface * Add full test environment * Another killfilter test fix for Fedora 17 * Remove unknown shutdown kwarg in call to vmops.\_destroy * Refactor vm\_vdi\_cleaner.py connection use * Remove direct access to glance client * Fix import order of openstack.common * metadata: cleanup pubkey representation * Make tgtadm the default iscsi user-land helper * Move rootwrap filters definition to config files * Fixes ram\_allocation\_ratio based over subscription * Call libvirt\_volume\_driver with right mountpoint * XenAPI: Fixes Bug 1012878 * update refresh\_cache on compute calls to get\_instance\_nw\_info * vm state and task state management * Update pylint/pep8 issues jenkins job link * Addtional CommandFilters to fix rootwrap on SLES * Tidy up exception handling in contrib api consoles * do sync before fusermount to avoid busyness * Fix bug 1010581 * xenapi tests: changes size='0' to size=0 * fixes a bug in xenapi tests where a string should be int * Minor HACKING.rst exception fix * Make libvirt LoopingCalls actually wait() * Add instance\_id in Usage API response * Set libvirt\_nonblocking to true by default for Folsom * Admin action to reset states * Use rpc from openstack-common * add nova-manage bash completion script * Spelling fixes * Fix bug 1014925: fix os-hosts * Adjust the libvirt config classes' API contract for parsing * Move libvirt version comparison code into separate function helper * Remove two obsolete libvirt cheetah templates from MANIFEST.in * Propose nova-novncproxy back into nove core * Fix missing import in compute/utils.py * Add instance details to notifications * Xen Storage Manager: tests for xensm volume driver * SM volume driver: DB changes and tests * moved update cache functionality to the network api * Handle missing server when getting security groups * Imports cleanup * added deprecated.warn helper method * Enforce an instance uuid for instance\_test\_and\_set * Replaces functions in utils.py with openstack/common/timeutils.py * Add CPU arch filter scheduler support * Present correct ec2id format for volumes and snaps * xensm: Fix xensm volume driver after uuid changes * Cleanup instance\_update so it only takes a UUID * Updates the cache * Add libvirt min version check * Ensure dnsmasq accept rules are preset at startup * Re-add private \_compute\_node\_get call to sql api * bug #996880 change HostNotFound in hosts to HTTPNotFound * Unwrap httplib.HTTPConnection after WsgiLimiterProxyTest * Log warnings instead of full exceptions for AMQP reconnects * Add missing ack to impl\_qpid * blueprint lvm-disk-images * Remove unused DB calls * Update default policies for KVM guest PIT & RTC timers * Add support for configuring libvirt VM clock and timers * Dedupe native and EC2 security group APIs * Add two missing indexes for instance\_uuid columns * Revert "Fix nova-manage backend\_add with sr\_uuid" * Adds property to selectively enable image caching * Remove utils.deprecated functions * Log connection\_type deprecation message as WARNING * add unit tests for new virt driver loader * Do not attempt to kill already-dead dnsmasq * Only invoke .lower() on non-None protocols * Add indexes to new instance\_uuid columns * instance\_destroy now only takes a uuid * Do not always query deleted instance\_types * Rename image to image\_id * Avoid partially finished cache files * Fix power\_state mis-use bug 1010586 * Resolve unittest error in rpc/impl\_zmq * Fix whitespace in sqlite steps * Make eventlet backdoor play nicer with gettext * Add user\_name project\_name and color option to log * fixes bug 1010200 * Fixes affinity filters when hints is None * implement sql-comment-string stack traces * Finalize tox config * Fixes bug lp:999928 * Convert consoles to use instance uuid * Use OSError instead of ProcessExecutionError * Replace standard json module with openstack.common.jsonutils * Don't query nova-network on startup * Cleans up power\_off and power\_on semantics * Refactor libvirt create calls * Fix whitespace in sqlite steps * Update libvirt imagecache to support resizes * separate Metadata logic away from the web service * Fix bug 1006664: describe non existent ec2 keypair * Make live\_migration a first-class compute API * Add zeromq driver. Implements blueprint zeromq-rpc-driver * Fix up protocol case handling for security groups * Prefix all nova binaries with 'nova-' * Migrate security\_group\_instance\_association to use a uuid to refer to instances * Migrate instance\_metadata to use a uuid to refer to instances * Adds \`disabled\` field for instance-types * More meaningful help messages for libvirt migration options * fix the instance quota overlimit message * fix bug lp:1009041,add option "-F" to make mkfs non-interactive * Finally ack consumed message * Revert "blueprint " * Use openstack-common's policy module * Use openstack.common.cfg.CONF * bug #1006094 correct typo in addmethod.openstackapi.rst * Correct use of uuid in \_get\_instance\_volume\_bdm * Unused imports cleanup (folsom-2) * Quantum Manager disassociate floating-ips on instance delete * defensive coding against None inside bdm resolves bug 1007615 * Add missing import to quantum manager * Add a comment to rpc.queue\_get\_for() * Add shared\_storage\_test methods to compute rpcapi * Add get\_instance\_disk\_info to the compute rpcapi * Add remove\_volume\_connection to the compute rpcapi * blueprint * Implements resume\_state\_on\_host\_boot for libvirt * Fix libvirt rescue to work with whole disk images * Finish removing xenapi.HelperBase class * Remove network\_util.NetworkHelper class * Remove volume\_util.VolumeHelper class * Remove vm\_utils.VMHelper class * Start removing unnecessary classes from XenAPI driver * XenAPI: Don't hardcode userdevice for VBDs * convert virt drivers to fully dynamic loading * Add compare\_cpu to the compute rpcapi * Add get\_console\_topic() to the compute rpcapi * Add refresh\_provider\_fw\_rules() to compute rpcapi * Use compute rpcapi in nova-manage * Add post\_live\_migration\_at\_destination() to compute rpcapi * Add pre\_live\_migration() to the compute rpcapi * Add rollback\_live\_migration\_at\_destination() to compute rpcapi * Add finish\_resize() to the compute rpcapi * Add resize\_instance() to the compute rpcapi * Add finish\_revert\_resize() to the compute rpcapi * Add get\_console\_pool\_info() to the compute rpcapi * Fix destination host for remove\_volume\_connection * Don't deepcopy RpcContext * Remove resize function from virt driver * Cleans up extraneous volume\_api calls * Remove list\_disks/list\_interfaces from virt driver * Remove duplicate words in comments * Implement blueprint host-topic-matchmaking * Remove unnecessary setting of XenAPI module attribute * Prevent task\_state changes during VERIFY\_RESIZE * Eliminate a race condition on instance deletes * Make sure an exception is logged when config file isn't found * Removing double quotes from sample config file * Backslash continuation removal (Nova folsom-2) * Update .gitignore * Add a note on why quota classes are unused in Nova * Move queue\_get\_for() from db to rpc * Sample config file tool updates * Fix instance update notification publisher id * Use cfg's new global CONF object * Make xenapi fake match real xenapi a bit closer * Align ApiEc2TestCase to closer match api-paste.ini * Add attach\_time for EC2 Volumes * fixing issue with db.volume\_update not returning the volume\_ref * New RPC tests, docstring fixes * Fix reservation\_commit so it works w/ PostgreSQL * remove dead file nova/tests/db/nova.austin.sqlite * Fix the conf argument to get\_connection\_pool() * Remove Deprecated auth from EC2 * Revert "API users should not see deleted flavors." * Grammar fixes * Record instance architecture types * Grammar / spelling corrections * cleanup power state (partially implements bp task-management) * [PATCH] Allow [:print:] chars for security group names * Add scheduler filter for trustedness of a host * Remove nova.log usage from nova.rpc * Remove nova.context dependency from nova.rpc * \_s3\_create update only pertinent metadata * Allow adding fixed IPs by network UUID * Fix a minor spelling error * Run coverage tests via xcover for jenkins * Localize rpc options to rpc code * clean-up of the bare-metal framework * Use utils.utcnow rather than datetime.utcnow * update xen to use network\_model * fixes bug 1004153 * Bugfix in simple\_tenant\_usage API detail view * removed a dead db function register\_models() * add queue name argument to TopicConsumer * Cleanup tools/hacking using flake8 * Expose a limited networks API for users * Added a instance state update notification * Remove deprecated quota code * Update pep8 dependency to v1.1 * Nail pep8 dependencies to 1.0.1 * API users should not see deleted flavors * Add scheduler filter: TypeAffinityFilter * Add help string to option 'osapi\_max\_request\_body\_size' * Permit deleted instance types to be queried for active instances * Make validate\_compacted\_migration into general diff tool * Remove unused tools/rfc.sh * Finish quota refactor * Use utils.parse\_strtime rather than datetime.strptime * Add version to compute rpc API * Add version to scheduler rpc API * Add version to console rpc API * Remove wsgiref from requirements * More accurate rescue mode testing for XenAPI * Add tenant id in self link in /servers call for images * Add migration compaction validation tool * Enable checking for imports in alphabetical order * Include volume-usage-audit in tarballs * Fix XenServer diagnostics to provide correct details * Use cfg's new behavior of reset() clearing overrides * Sync with latest version of openstack.common.cfg * Only permit alpha-numerics and .\_- for instance type names * Use memcache to store consoleauth tokens * cert/manager.py not using crypto.fetch\_crl * Cleanup LOG.getLoggers to use \_\_name\_\_ * Imported Translations from Launchpad * Alphabetize imports in nova/tests/ * Fix Multi\_Scheduler to process host capabilities * fixed\_ip\_get\_by\_address read\_deleted from context * Fix for Quantum LinuxBridge Intf driver plug call * Add additional logging to compute filter * use a RequestContext object instead of context module * make get\_all\_bw\_usage() signature match for fake virt driver * Add unit test coverage for bug 1000261 * Moving network tests into the network folder * Add version to consoleauth rpc API * Add version to the cert rpc API * Add base support for rpc API versioning * fixes typo that completely broken Quantum/Nova integration * Make Iptables FW Driver handle dhcp\_server None * Add aliases to .mailmap for comstud and belliott * Add eventlet backdoor to facilitate troubleshooting * Update nova's copy of image metadata on rebuild * Optional timeout for servers stuck in build * Add configurable timeout to Quantum HTTP connections * Modify vm\_vdi\_cleaner to handle \`-orig\` * Add \_\_repr\_\_ to least\_cost scheduler * Bump XenServer plugin version * handle updated qemu-img info output * Rearchitect quota checking to partially fix bug 938317 * Add s3\_listen and s3\_listen\_port options * Misused and not used config options * Remove XenAPI use of eventlet tpool * Fixed compute periodic task. Fixes bug 973331 * get instance details results in volumes key error * Fix bug 988034 - Quantum Network Manager - not clearing ips * Stop using nova.exception from nova.rpc * Make use of openstack.common.jsonutils * Alphabetize imports in nova/api/ * Remove unused \_get\_target code from xenapi * Implement get\_hypervisor\_hostname for libvirt * Alphabetize imports * Alphabetize imports in nova/virt/ * Adding notifications for volumes * Pass 'nova' project into ConfigOpts * fixes bug 999206 * Create an internal key pair API * Make allocation failure a bit more friendly * Avoid setting up DHCP firewall rules with FlatManager * Migrate missing license info * Imported Translations from Launchpad * Fix libvirt Connection.get\_disks method * Create a utf8 version of the dns\_domains table * Setup logging, particularly for keystone middleware * Use default qemu-img cluster size in libvirt connection driver * Added img metadata validation. Fixes bug 962117 * Remove unnecessary stubout\_loopingcall\_start * Actually use xenapi fake setter * Provide a transition to new .info files * Store image properties with instance system\_metadata * Destroy system metadata when destroying instance * Fix XenServer windows agent issue * Use ConfigOpts.find\_file() to find paste config * Remove instance Foreign Key in volumes table, replace with instance\_uuid * Remove old flagfile support * Removed unused snapshot\_instance method * Report memory correctly on Xen. Fixes bug 997014 * Added image metadata to compute.instance.exists * Update PostgreSQL sequence names for zones/quotas * Minor help text related changes * API does need new image\_ref on rebuild immediately * Avoid unnecessary inst lookup in vmops \_shutdown * implement blueprint floating-ip-notification * Defer image\_ref update to manager on rebuild * fix bug 977007,make nova create correct size of qcow2 disk file * Remove unnecessary shutdown argument to \_destroy() * Do not fail on notify when quantum and melange are out of sync * Remove instance action logging mechanism * httplib throw "TypeError: an integer is required" when run quantum * fix bug 992008, we should config public interface on compute * A previous patch decoupled the RPC drivers from the nova.flags, breaking instance audit usage in the process. This configures the xvpvncproxy to configure the RPC drivers properly with FLAGS so that xvpvncproxy can run * Fix bug 983206 : \_try\_convert parsing string * pylint cleanup * Fix devref docs * Remove Deprecated AuthMiddleware * Allow sitepackages on jenkins * Replaces exceptions.Error with NovaException * Docs for vm/task state transitions * Fix a race with rpc.register\_opts in service.py * Mistake with the documentation about cost function's weight corrected * Remove state altering in live-migration code * Register fake flags with rpc init function * Generate a Changelog for Nova * Find context arg by type rather than by name * Default auto-increment for int primary key columns * Adds missing copyright to migration 082 * Add instance\_system\_metadata modeling * Use fake\_libvirt\_utils for libvirt console tests * Fix semantics for migration test environment var * Clean up weighted\_sum logic * Use ConfigOpts.find\_file() to locate policy.json * Sync to newer openstack.common.cfg * Fix test\_mysql\_innodb * Implement key pair quotas * Ensure that the dom0 we're connected to is the right one * Run ip link show in linux\_net.\_device\_exists as root * Compact pre-Folsom database migrations * Remove unused import * Pass context to notification drivers when we can * Use save\_and\_reraise\_exception() from common * Fix innodb tests again * Convert Volume and Snapshot IDs to use UUID * Remove unused images * Adding 'host' info to volume-compute connection information * Update common.importutils from openstack-common * Provide better quota error messages * Make kombu support optional for running unit tests * Fix nova.tests.test\_nova\_rootwrap on Fedora 17 * Xen has to create it's own tap device if using libvirt and QuantumLinuxBridgeVIFDriver * Fix test\_migrations to work with python 2.6 * Update api-paste.ini to remove unused settings * Fix test\_launcher\_app to ensure service actually got started * Minor refactor of servers viewbuider * A previous patch decoupled the RPC drivers from the nova.flags, breaking instance audit usage in the process. This configures the instance audit usage to configure the RPC drivers properly with FLAGS so that the job can run * Allow blank passwords in changePassword action * Allow blank adminPass on server create * Return a BadRequest on bad flavors param values * adjust logging levels for utils.py * Update integration tests to listen on 127.0.0.1 * Log instance consistently * Create name\_label local variable for logging message * Remove hack for xenapi driver tests * Migrate block\_device\_mapping to use instance uuids * Remove unnecessary return statements * Clean up ElementTree usage * Adds better bookending and robustness around the instance audit usage generation * Pass instance to resize\_disk() to fix exception * Minor spelling fix * Removes RST documentation and moves it to openstack-manuals * Trivial spelling fix * Remove workaround for sqlalchemy-migration < 0.6.4 * Remove unnecessary references to resize\_confirm\_window flag * Fix InnoDB migration bug in migrate script 86 * Use openstack.common.importutils * Ignore common code in coverage calculations * Use additional task states during resize * Add libvirt get\_console\_output tests: pty and file * Keep uuid with bandwidth usage tracking to handle the case where a MAC address could be recycled between instances * Added the validation for name check for rebuild of a server * Make KillFilter to handle 'deleted' w/o rstrip * Fix instance delete notifications * Disconnect stale instance VDIs when starting nova-compute * Fix timeout in EC2 CloudController.create\_image() * Add additional capabilities for computes * Move image checksums into a generic file * Add instance to several log messages * Imports to human alphabetical order * Fixes bug 989271, fixes launched\_at date on notifications * Enable InnoDB checking * make all mysql tables explicitly innodb * Use instance\_get\_by\_uuid since we're looking up a UUID * Use nova\_uuid attribute instead of trying to parse out name\_label * Add a force\_config\_drive flag * Fix 986922 * Improvement for the correct query extraction * Fixes bug 983024 * Make updating hostId raises BadRequest * Disallow network creation when label > 255. Fixes bug 965008 * Introduced \_atomic\_restart\_dhcp() Fixes Bug 977875 * Make the filename that image hashes are written to configurable * Xen: Pass session to destroy\_vdi * Add instance logging to vmware\_images.py * Add instance logging to vmops.py * fix bug #980452 set net.ipv4.ip\_forward=1 on network * Log instance * Log instance information for baremetal * Include instance in log message * Log instance * Ensure all messages include instance * Add instance to log messages * Include instance in log message * Refactor nova.rpc config handling * Don't leak RPC connections on timeouts or other exceptions * Small cleanup to attach\_volume logging * Implements EC2 DescribeAddresses by specific PublicIp * Introduced flag base\_dir\_name. Fixes bug 973194 * Set a more reasonable default RPC thread pool size * Number of missing imports should always be shown * Typo fix in bin/instance-usage-audit * Improved tools/hacking.py * Scope coverage report generation to nova module * Removes unnecessary code in \_run\_instance * Validate min\_ram/min\_disk on rebuild * Adding context to usage notifications * Making \`usage\_from\_instance\` private * Remove \_\_init\_\_.py from locale dir * Fixes bug 987335 * allow power state "BLOCKED" for live migrations if using Xen by libvirt * Exclude xenapi plugins from pep8/hacking checks * Imported Translations from Launchpad * Remove unnecessary power state translation messages * Add instance logging * Use utils.save\_and\_reraise\_exception * Removing XenAPI class variable, use session instead * Log instance consistently * Keep nova-manage commands sorted * Log instances consistently * Moves \`usage\_from\_instance\` into nova.compute.utils * Log instance * nova.virt.xenapi\_conn -> nova.virt.xenapi.connection * Remove unused time keyword arg * Remove unused variable * support a configurable libvirt injection partition * Refactor instance image property inheritance out to a method * Refactor availability zone handling out to a method * Include name being searched for in exception message * Be more tolerant of deleting failed builds * Logging updates in IptablesFirewallDriver * Implement security group quotas * Do not allow blank adminPass attribute on set password * Make rebuilds with an emtpy name raise BadRequest * Updates launched\_at in the finish and revert\_migration calls * Updated instance state on resize error * Reformat docstrings in n/c/a/o/servers as per HACKING * fix bug 982360, multi ip block for dmz\_cidr * Refactor checking instance count quota * Small code cleanup for config\_disk handling * Refactors kernel and ramdisk handling into their own method * Improve instance logging in compute/manager * Add deleted\_at to instance usage notification * Simplify \_get\_vm\_opaque\_ref in xenapi driver * Test unrescue works as well * Remove unused variable * Port types and extra specs to volume api * Make exposed methods clearer in xenapi.vmops * Fix error message to report correct operation * Make run\_tests.sh just a little bit less verbose * Log more information when sending notifications * xenapi\_conn -> xenapi.connection * Renamed current\_audit\_period function to last\_completed\_audit\_period to clarify its purpose * QuantumManager will start dnsmasq during startup. Fixes bug 977759 * Fixed metadata validation err. Fixes bug 965102 * Remove python-novaclient dependency from nova * Extend instance UUID logging * Remove references to RemoteError in os-networks * Fix errors in os-networks extension * Removes dead code around start\_tcp in Server * Improve grammar throughout nova * Improved localization testing * Log kwargs on a failed String Format Operation * Standardize quota flag format * Remove nova Direct API * migration\_get\_all\_unconfirmed() now uses lowercase "finished" Fixes bug 977719 * Run tools/hacking.py instead of pep8 mandatory * Delete fixed\_ips when network is deleted * Remove unecessary --repeat option for pep8 * Create compute.api.BaseAPI for compute APIs to use * Give all VDIs a reasonable name-label and name-description * Remove last two remaining hyperV references * bug 968452 * Add index to fixed\_ips.address * Use 'root' instead of 'os' in XenAPI driver * Information about DifferentHostFilter and SameHostFilter added * HACKING fixes, sqlalchemy fix * Add test to check extension timestamps * Fixes bug 952176 * Update doc to mention nova tool for type creation * Change Diablo document reference to trunk * Imported Translations from Launchpad * Cloudpipe tap vpn not always working * Allow instance logging to use just a UUID * Add the serialization of exceptions for RPC calls * Cleanup xenapi driver logging messages to include instance * Stop libvirt test from deleting instances dir * Move product\_version to XenAPISession * glance plugin no longer takes num\_retries parameter * Remove unused user\_id and project\_id parameters to fetch\_image() * Cleanup \_make\_plugin\_call() * Push id generation into \_make\_agent\_call() * Remove unused path argument for \_make\_agent\_call() * Remove unused xenstore methods * Combine call\_xenapi and call\_xenapi\_request * Fixed bug 962840, added a test case * Use -1 end-to-end for unlimited quotas * fix bug where nova ignores glance host in imageref * Remove unused \_parse\_xmlrpc\_value * Fix traceback in image cache manager * Fixes regression in release\_dhcp * Use thread local storage from openstack.common * Extend FilterScheduler documentation * Add validation on quota limits (negative numbers) * Get unit tests functional in OS X * Make sure cloudpipe extension can retrieve network * Treat -1 quotas as unlimited * Auto-confirming resizes would bail on exceptions * Grab the vif directly on release instead of lookup * Corrects an AttributeError in the quota API * Allow unprivileged RADOS users to access rbd volumes * Remove nova.rpc.impl\_carrot * Sync openstack.common.cfg from openstack-common * add libvirt\_inject\_key flag fix bug #971640 * Do not fail to build a snapshot if base image is not found * fix TypeError with unstarted threads in nova-network * remove unused flag: baremetal\_injected\_network\_template baremetal\_uri baremetal\_allow\_project\_net\_traffic * Imported Translations from Launchpad * fixed postgresql flavor-create * Add rootwrap for touch * Ensure floating ips are recreated on reboot * Handle instances being missing while listing floating IPs * Allow snapshots in error state to be deleted * Ensure a functional database connection * Add a faq to vnc docs * adjust logging levels for linux\_net * Handle not found in check for disk availability * Acccept metadata ip so packets aren't snatted * bug 965335 * Export user id as password to keystone when using noauth * Check that DescribeInstance works with deleted image * Check that volume has no snapshots before deletion * Fix libvirt rescue * Check vif exists before releasing ip * Make kombu failures retry on IOError * Adds middleware to limit request body sizes * Add validation for OSAPI server name length * adjust logging levels for libvirt error conditions * Fix exception type in \_get\_minram\_mindisk\_params * fixed bug lp:968019 ,fix network manager init floating ip problem * When dnsmasq fails to HUP log an error * Update KillFilter to handle 'deleted' exe's * Fix disassociate query to remove foreign keys * Touch in use image files when they're checked * Base image signature files are not images * Support timestamps as prefixes for traceback log lines * get\_instance\_uuids\_by\_ip\_filter to QM * Updated docstrings in /tools as per HACKING * Minor xenapi driver cleanups * Continue on the the next tenant\_id on 400 codes * Fix marker behavior for flavors * Remove auth\_uri, already have auth\_host, auth\_port * A missing checksum does not mean the image is corrupt * Default scheduler to spread-first * Reduce the image cache manager periodic interval * Handle Forbidden and NotAuthenticated glance exc * Destroy src and dest instances when deleting in RESIZE\_VERIFY * Allow self-referential groups to be created * Fix unrescue in invalid state * Clean up the shared storage check (#891756) * Don't set instance ACTIVE until it's really active * Fix traceback when sending invalid data * Support sql\_connection\_debug to get SQL diagnostic information * Improve performance of safe\_log() * Fix 'nova-manage config convert' * Add another libvirt get\_guest\_config() test case * Fix libvirt global name 'xml\_info' is not defined * Clean up read\_deleted support in host aggregates code * ensure atomic manipulation of libvirt disk images * Import recent openstack-common changes * makes volume versions display properly * Reordered the alphabet * Add periodic\_fuzzy\_delay option * Add a test case for generation of libvirt guest config * Convert libvirt connection class to use config APIs for CPU comparisons * Introduce a class for storing libvirt CPU configuration * Convert libvirt connection class to use config APIs for guests * Convert libvirt connection class to use config APIs for filesystem devices * Introduce a class for storing libvirt snapshot configuration * Move NIC devices back after disk devices * Convert libvirt connection class to use config APIs for disk devices * Convert libvirt connection class to use config APIs for input devices * Convert libvirt connection class to use config APIs for serial/console devices * Convert libvirt connection class to use config APIs for graphics * Convert libvirt vif classes over to use config API * Convert libvirt volume classes over to use config API * Delete the test\_preparing\_xml\_info libvirt test * Introduce a set of classes for storing libvirt guest configuration * Send a more appropriate error response for 403 in osapi * Use key in locals() that actually exists * Fix launching of guests where instances\_path is on GlusterFS * Volumes API now uses underscores for attrs * Remove unused certificate SQL calls * Assume migrate module missing \_\_version\_\_ is old * Remove tools/nova-debug * Inlining some single-use methods in XenAPI vmops * Change mycloud.com to example.com (RFC2606) * Remove useless dhcp\_domain flags in EC2 * Handle correctly QuotaError in EC2 API * Avoid unplugging VBDs for rescue instances * Imported Translations from Launchpad * Rollback create\_disks handles StorageError exception * Capture SIGTERM and Shut down python services cleanly * Fixed status validation. Fixes bug 960884 * Clarify HACKING's shadow built-in guidance * Strip auth token from log output * Fail-fast for invalid read\_deleted values * Only shutdown rescue instance if it's not already shutdown * Modify nova.wsgi.start() should check backlog parameter * Fix unplug\_vbd to retry a configurable number of times * Don't send snapshot requests through the scheduler * Implement quota classes * Fixes bug 949038 * Open Folsom * Fixes bug 957708 * Improvements/corrections to vnc docs * Allow rate limiting to be disabled via flag * Improve performance of generating dhcp leases * Fix lxc console regression * Strip out characters that should be escaped from console output * Remove unnecessary data from xenapi test * Correct accessIPv6 error message * Stop notifications from old leases * Fix typo in server diagnostics extension * Stub-implement floating-ip functions on FlatManager * Update etc/nova.conf.sample for ship * Make sqlite in-memory-db usable to unittest * Fix run/terminate race conditions * Workaround issue with greenthreads and lockfiles * allow the compute service to start with missing libvirt disks * Destroy rescue instance if main instance is destroyed * Tweak security port validation for ICMP * Debug messages for host filters * various cleanups * Remove Virtual Storage Array (VSA) code * Re-instate security group delete test case * db api: Remove check for security groups reference * Allow proper instance cleanup if state == SHUTOFF * Use getLogger for nova-all * Stop setting promisc on bridge * Fix OpenStack Capitalization * Remove improper use of redirect for hairpin mode * Fix OpenStack Capitalization * HACKING fixes, TODO authors * Keep context for logging intact in greenthreads * fix timestamps to match documented ec2 api * Include babel.cfg in tarballs * Fix LXC volume attach issue * Make extended status not admin-only by default * Add ssl and option to pass tenant to s3 register * Remove broken bin/\*spool\* tools * Allow errored volumes to be deleted * Fix up docstring * libvirt/connection.py: Set console.log permissions * nonblocking libvirt mode using tpool * metadata speed - revert logic changes, just caching * Refix mac change to work around libvirt issue * Update transfer\_vhd to handle unicode correctly * Fixes bug 954833 By adding the execute bit to the xenhost xenapi plugin * Cleanup flags * fix bug 954488 * Fix backing file cp/resize race condition * Use a FixedIp subquery to find networks by host * Changes remove\_fixed\_ip to pass the instance host * Map image ids to ec2 ids in metadata service * Remove date\_dhcp\_on\_disassociate comment and docs * Make fixed\_ip\_disassociate\_all\_by\_timeout work * Refactor glance id<->internal id conversion for s3 * Sort results from describe\_instances in EC2 API * virt/firewall: NoopFirewallDriver::instance\_filter\_exists must return True * fix nova-manage floating delete * fixed list warn when ip allocated to missing inst * Removes default use of obsolete ec2 authorizor * Additional extensions no longer break unit-tests * Use cPickle and not just pickle * Move (cast|call)\_compute\_message methods back into compute API class * Fix libvirt get\_console\_output for Python < 2.7 * doc/source/conf.py: Fix man page building * Update floating auto assignment to use the model * Make nova-manage syslog check /var/log/messages * improve speed of metadata * Fix linux\_net.py interface-driver loading * Change default of running\_deleted\_instance\_action * Nuke some unused SQL api calls * Avoid nova-manage floating create /32 * Add a serializer for os-quota-sets/defaults * Import nova.exception so exception can be used * refactoring code, check connection in Listener. refer to Bug #943031 * Fix live-migration in multi\_host network * add convert\_unicode to sqlalchemy connection arguments * Fixes xml representation of ext\_srv\_attr extension * Sub in InstanceLimitExceeded in overLimit message * Remove update lockmode from compute\_node\_get\_by\_host * Set 'dhcp\_server' in \_teardown\_network\_on\_host * Bug #922356 QuantumManager does not initiate unplug on the linux\_net driver * Clean up setup and teardown for dhcp managers * Display owner in ec2 describe images * EC2 KeyName validation * Fix issues with security group auths without ports * Replaced use of webob.Request.str\_GET * Allow soft\_reboot to work from more states: * Make snapshots with qemu-img instead of libvirt * Use utils.temporary\_chown to ensure permissions get reset * Add VDI chain cleanup script * Reduce duplicated code in xenapi * Since 'net' is of nova.network.model.VIF class and 'ips' is an empty list, net needs to be pulled from hydrated nw\_info.fixed\_ips(), and appended to ips * Fix nova-manage backend\_add with sr\_uuid * Update values in test\_flagfile to be different * Switch all xenapi async plugin calls to be sync * Hack to fixup absolute pybasedir in nova.conf.sample * fixup ldapdns default config * Use cache='none' for all disks * Update cfg from openstack-common * Add pybasedir and bindir options * Simply & unify console handling for libvirt drivers * Cleanup XenAPI tests * fix up nova-manage man page * Don't use glance when verifying images * Fixes os-volume/snapshot delete * Use a high number for our default mac addresses * Simplify unnecessary XenAPI Async calls to be synchronous * Remove an obsolete FIXME comment * Fixing image snapshots server links * Wait for rescue VM shutdown to complete before destroying it * Renaming user friendly fault name for HTTP 409 * Moving nova/network tests to more logical home * Change a fake classes variable to something other than id * Increase logging for xenapi plugin glance uploads * Deprecate carrot rpc code * Improve vnc proxy docs * Require a more recent version of glance * Make EC2 API a bit more user friendly * Add kwargs to RequestContext \_\_init\_\_ * info\_cache is related to deleted instance * Handle kwargs in deallocate\_fixed\_ip for FlatDHCP * Add a few missing tests regarding exception codes * Checks image virtual size before qemu-img resize * Set logdir to a tempdir in test\_network * Set lock\_path to a tempdir in TestLockCleanup * Exceptions unpacking rpc messages shouldn't hang the daemon * Use sqlalchemy reflection in migration 080 * Late load rabbit\_notifier in test\_notifier * boto shouldn't be required for production deploys * Don't use ec2 IDs in scheduler driver * pyflakes cleanups on libvirt/connection.py * Validate VDI chain before moving into SR * Fix racey snapshots * Don't swallow snapshot exceptions * allow block migration to talk to glance/keystone * Remove cruft and broken code from nova-manage * Update paste file to use service tenant * Further cleanup of XenAPI * Fix XML namespaces for limits extensions and versions * Remove the feature from UML/LXC guests * setup.py: Fix doc building * Add adjustable offset to audit\_period * nova-manage: allow use of /32 IP range * Clear created attributes when tearing down tests * Fix multi\_host column name in setup\_networks.. * HACKING fixes, all but sqlalchemy * Remove trailing whitespaces in regular file * remove undocumented, unused mpi 'extension' to ec2 metadata * Minor clarifications for the help strings in nova config options * Don't use \_ for variable name * Make test\_compute console tests more robust * test\_compute stubs same thing multiple times * Ignore InstanceNotFound when trying to set instance to ERROR * Cleans up the create\_conf tool * Fix bug 948611. Fix 'nova-manage logs errors' * api-paste.ini: Add /1.0 to default urlmap * Adds nova-manage command to convert a flagfile * bug 944145: race condition causes VM's state to be SHUTOFF * Cleanup some test docstrings * Cleans up a bunch of unused variables in XenAPI * Shorten FLAGS.rpc\_response\_timeout * Reset instance to ACTIVE when no hosts found * Replaces pipelines with flag for auth strategy * Setup and teardown networks during migration * Better glance exception handling * Distinguish rootwrap Authorization vs Not found errors * Bug #943178: aggregate extension lacks documentation * Rename files/dirs from 'rabbit' to 'rpc' * Change references to RabbitMQ to include Qpid * Avoid running code that uses logging in a thread * No longer ignoring man/novamanage * Fixing incorrect use of instance keyword in logging * Fix rst formatting and cross-references * Provide a provider for boto.utils * Only pass image uuids to compute api rebuild * Finally fix the docs venv bug * Get rid of all of the autodoc import errors * Rename DistributedScheduler as FilterScheduler * Allows new style config to be used for --flagfile * Add support for lxc consoles * Fix references to novncproxy\_base\_url in docs * Add assertRaises check to tools/hacking.py as N202 * fix restructuredtext formatting in docstrings that show up in the developer guide * Raise 409 when rescuing instance in RESCUE mode * Log a certain rare instance termination exception * Update fixed\_ip\_associate to not use relationships * Remove unnecessary code in test setUp/tearDown * Imported Translations from Launchpad * Only raw string literals should be used with \_() * assertRaises(Exception, ...) considered harmful * Added docs on MySQL queries blocking main thread * Fix test\_attach\_volume\_raise\_exception * Fix test\_unrescue to actually test unrescue * bug #941794 VIF and intf drivers for Quantum Linux Bridge plugin * Ensures that we don't exceed iptables chain max * Allows --flat\_interface flag to override db * Use self.mox instead of create a new self.mocker * Fix test\_migrate\_disk\_and\_power\_off\_exception * fakes.fake\_data\_store doesn't exist, so don't reset it * populate glance 'name' field through ec2-register * Remove unused \_setup\_other\_managers method from test case * Remove unused test\_obj parameter to setUp() * Use stubout instead of manually stubbing out os.path.exists * Remove superfluous \_\_init\_\_ from test case * Use test.TestCase instead of manually managing stubout * Handle InstanceNotFound during server update * Use stubout instead of manually stubbing out versions.VERSIONS * Remove unused session variable in test setup * Cleanup swap in \_create\_vm undo * Do not invoke kill dnsmasq if no pid file was found * Fixes for ec2 images * Retry download\_vhd with different glance host each time * Display error for invalid CIDR * Remove empty setUp/tearDown methods * Call super class tearDown correctly * Fixes bug 942556 and bug 944105 * update copyright, add version information to footer * Refactor spawn to use UndoManager * Fail gracefully when the db doesn't speak unicode * Remove unnecessary setting up and down of mox and stubout * Remove unnecessary variables from tests * Ensure image status filter matches glance format * fix for bug 821252. Smarter default scheduler * blueprint sphinx-doc-cleanup bug 944381 * Adds soft-reboot support to libvirt * Minor cleanup based on HACKING * libvirt driver calls unplug() twice on vm reboot * Add missing format string type on some exception messages * Fixing a request-id header bug * Test creating a server with metadata key too long * Fixes lp931801 and a key\_error * notifications for delete, snapshot and resize * Ensure that context read\_deleted is only one of 'no', 'yes' or 'only' * register Cell model, not Zone model * Option expose IP instead of dnshost in ec2 desc' * Fix \_sync\_power\_states to obtain correct 'state' * Ensures that keypair names are only AlphaNumeric * Cast vcpu\_weight to string before calling xen api * Add missing filters for new root commands * Destroy VM before VDIs during spawn cleanup * Include hypervisor\_hostname in the extended server attributes * Remove old ratelimiting code * Perform image show early in the resize process * Adds netapp volume driver * Fixes bug 943188 * Remove unused imports and variables from OS API * Return empty list when volume not attached * Be consistent with disabling periodic tasks * Cast volume-related ids to str * Fix for bug 942896: Make sure network['host'] is set * Allow xvd\* to be supplied for volume in xenapi * Initialize progress to 0 for build and resize * Fix issue starting nova-compute w/ XenServer * Provide retry-after guidance on throttled requests * Use constant time string comparisons for auth * Rename zones table to cells and Instance.zone\_name to cell\_name * Ensure temporary file gets cleaned up after test * Fixes bug 942549 * Use assertDictMatch to keep 2.6 unit tests passing * Handle case where instance['info\_cache'] is None * sm volume driver: fix backend adding failure * sm vol driver: Fix regression in sm\_backend\_conf\_update * TypeError API exceptions get logged incorrectly * Add NoopFirewallDriver * Add utils.tempdir() context manager for easy temp dirs * Check all migrations have downgrade in test\_misc * Remove monkey patching in carrot RPC driver * Call detach\_volume when attach fails * Do not hit the network\_api every poll * OS X Support fixed, bug 942352 * Make scheduler filters more pluggable * Adds temporary chown to sparse\_copy * make nova-network usable with Python < 2.6.5 * Re-adds ssl to kombu configuration and adds flags that are needed to pass through to kombu * Remove unused import * Make sure detail view works for volume snaphots * Imported Translations from Launchpad * Decode nova-manage args into unicode * Cleanup .rescue files in libvirt driver unrescue * Fixes cloudpipe extension to work with keystone * Add missing directive to tox.ini * Update EC2KeystoneAuth to grab tenant 'id' * Monkey patch migrate < 0.7.3 * Fixes bug lp#940734 - Adding manager import so AuthMiddleware works * Clean stale lockfiles on service startup : fixes bug 785955 * Fix nova-manage floating create docs * Fix MANIFEST.in to include missing files * Example config\_drive init script, label the config drive * fix unicode triggered failure in AuthManager * Fix bug 900864 Quantum Manager flag for IP injection * Include launch\_index when creating instances * Copy data when migration dst is on a different FS * bigger-than-unit test for cleanup\_running\_deleted\_instances * Nova options tool enhancements * Add hypervisor\_hostname to compute\_nodes table and use it in XenServer * Fixes error if Melange returns no networks * Print error if nova-manage should be run as root * Don't delete security group in use from OS API * nova-network can't deallocate ips from deleted instances * Making link prefixes support https * Prevent infinite loop in PublishErrorsHandler * blueprint host-aggregates: host maintenance - xenapi implementation * bug 939480 * libvirt vif-plugging fixes. Fixes bug 939252 , bug 939254 * Speeding up resize down with sparse\_copy * Remove network\_api fallback for info\_cache from APIs * Improve unit test coverage per bug/934566 * Return 40x for flavor.create duplicate * refactor a conditional for testing and understanding * Disable usb tablet support for LXC * Add Nexenta volume driver * Improve unit test coverage per bug/934566 * nova-manage: Fix 'fixed list' * Add lun number to provider\_location in create\_volume \* Fixes bug 938876 * Fix WeightedHost * Fix instance stop in EC2 create\_image * blueprint host-aggregates: improvements and clean-up * Move get\_info to taking an instance * Support fixed\_ip range that is a subnet of the network block * xenapi: nova-volume support for multiple luns * Fix error that causes 400 in flavor create * Makes HTTP Location Header return as utf-8 as opposed to Unicode * blueprint host-aggregates: host maintenance * blueprint host-aggregates: xenapi implementation * Rework base file checksums * Avoid copying file if dst is a directory * Add 'nova-manage export auth' * Alter output format of volume types resources * Scheduler notifications added * Don't store connection pool in RpcContext * Fix vnc docs: novaclient now supports vnc consoles * Clarify use of Use of deprecated md5 library * Extract get\_network in quantum manager * Add exception SnapshotIsBusy to be handled as VolumeIsBusy * Exception cleanup * Stop ignoring E202 * Support tox-based unittests * Add attaching state for Volumes * Fix quantum get\_all\_networks() signature (lp#936797) * Escape apostrophe in utils.xhtml\_escape() (lp#872450) * Backslash continuations (nova.api.openstack) * Fix broken method signiture * Handle OSError which can be thrown when removing tmpdir. Fixes bug 883326 * Update api-paste.ini with new auth\_token settings * Imported Translations from Launchpad * Don't tell Qpid to reconnect in a busy loop * Don't inherit controllers from each other, we don't want the methods of our parent * Improve unit test coverage per bug/934566 * Setting access ip values on server create * nova.conf sample tool * Imported Translations from Launchpad * Add support for admin\_password to LibVirt * Add ephemeral storage to flavors api * Resolve bug/934566 * Partial fix for bug 919051 * fix pre\_block\_migration() interaction with libvirt cache * Query directly for just the ip * bug 929462: compile\_diagnostics in xenapi erronously catch XenAPI.Failure * Use new style instance logging in compute api * Fix traceback running instance-usage-audit * Actual fix for bug 931608 * Support non-UTC timestamps in changes-since filter * Add additional information to servers output * Adding traceback to async faults * Pulls the main components out of deallocate * Add JSONFormatter * Allow file logging config * LOG.exception does not take an exc\_info keyword * InstanceNotFound exceptions for terminate\_intance now Log warning instead of throwing exeptions * bug 933620: Error during ComputeManager.\_poll\_bandwidth\_usage * Make database downgrade works * Run ovs-ofctl as root * 077\_convert\_to\_utf8: Convert \*all\* FK tables early * Fix bug 933147 Security group trigger notifications * Fixes nova-volume support for multiple luns * Normalize odd date formats * Remove all uniqueness constraints in migration 76 * Add RPC serialization checking, fix exposed problems * Don't send a SQLAlchemy model over rpc * Adds back e2fsck exit code checking * Syncs vncviewer mouse cursor when connected to Windows VMs * Backslash continuations (nova.tests) * The security\_group name should be an XML attribute * Core modifications for future zones service * Remove instance\_get stubs from server action tests * removed unused method and added another test * Enables hairpin\_mode for virtual bridge ports, allowing NAT reflection * Removed zones from api and distributed scheduler * Fix bug 929427 * Tests for a melange\_ipam\_lib, who is missing tests * Create a flag for force\_to\_raw for images * Resolve bug/927714 -- get instance names from db * Fix API extensions documentation, bug 931516 * misc networking fixes * Print friendly message if no floating IPs exist * Catch httplib.HTTPException as well * Expand Quantum Manager Unit Tests + Associated Fixes * bw\_usage takes a MAC address now * Adding tests for NovaException printing * fix a syntax error in libvirt.attach\_volume() with lxc * Prevent Duplicate VLAN IDs * tests: fix LdapDNS to allow running test\_network in isolation * Fix the description of the --vnc\_enabled option * Different exit code in new versions of iscsiadm * improve injection diagnostics when nbd unavailable. Bug 755854 * remove unused nwfilter methods and tests * LOG.exception only works while in an exception handler * \_() works best with string literals * Remove unnecessary constructors for exceptions * Don't allow EC2 removal of security group in use * improve stale libvirt images handling fix. Bug 801412 * Added resize support for Libvirt/KVM * Update migration 076 so it supports PostgreSQL * Replace ApiError with new exceptions * Simple way of returning per-server security groups * Declare deprecated auth flag before its used * e2fsck needs -y * Standardize logging delaration and use * Changing nova-manage error message * Fix WADL/PDF docs referenced in describedby links * bug 931604: improve how xenapi RRD records are retrieved * Resolve bug/931794 -- add uuid to fake * Use new style instance logging in compute manager * clean pyc files before running unit tests * Adding logging for 500 errors * typo fix * run\_tests.sh fix * get\_user behavior in ldapdriver * Fsck disk before removing journal * Don't query database with an empty list for IN clause * Use stubs in libvirt/utils get\_fs\_info test * Adding (-x | --stop) option back to runner.py * Remove duplicate variable * Fixing a unicode related metadata bug * bug 931356: nova-manage prints libvirt related warnings if libvirt isn't installed * Make melange\_port an integer * remove a private duplicate function * Changes for supporting fast cloning on Xenserver. Implements blueprint fast-cloning-for-xenserver 1. use\_cow\_images flag is reused for xenserver to check if copy on write images should be used. 2. image-id is used to tag an image which has already been streamed from glance. 3. If cow is true, when an instance of an image is created for the first time on a given xenserver, the image is streamed from glance and copy on write disk is created for the instance. 4. For subsequent instance creation requests (of the same image), a copy on write disk is created from the base image that is already present on the host. 5. If cow is false, when an instance of an image is created for the first time on a host, the image is streamed from glance and its copy is made to create a virtual disk for the instance. 6. For subsequent instance creation requests, a copy of disk is made for creating the disk for the instance. 7. Snapshot creation code was updated to handle cow=true. Now there can be upto 3 disks in the chain. The base disk needs to be uploaded too. 8. Also added a cache\_images flag. Depending on whether the flag is turned on on not, images will be cached on the host * Completes fix for LP #928910 - libvirt performance * Add some more comments to \_get\_my\_ip() * remove unused and buggy function from S3ImageService * Fix minor typo in runner.py * Remove relative imports from scheduler/filters * Converting db tables to utf8 * remove all instance\_type db lookups from network * Remedies LP Bug #928910 - Use libvirt lookupByName() to check existence * Force imageRef to be a string * Retry on network failure for melange GET requests * Handle network api failures more gracefully * Automatic confirmation of resizes on libvirt * Fix exception by passing timeout as None * Extend glance retries to show() as well * Disable ConfigParser interpolation (lp#930270) * fix FlatNetworkTestCase.test\_get\_instance\_nw\_info * remove unused and buggy function from baremetal proxy * Remove unused compute\_service from images controller * Backslash continuations (nova.virt.baremetal) * fixed bug 928749 * Log instance id consistently inside the firewall code * Remove the last of the gflags shim layer * Fix disk\_config typo * Pass instance to log messages * Fix logging in xenapi vmops * Ensures that hostId's are unique * Fix confirm\_resize policy handling * optimize libvirt image cache usage * bug 929428: pep8 validation on all xapi plugins * Move translations to babel locations * Get rid of distutils.extra * Backslash continuations (network, scheduler) * Remove unnecessary use of LoopingCall in nova/virt/xenapi/vm\_utils.py * Stop using LoopingCall in nova.virt.xenapi\_conn:wait\_for\_task() * Handle refactoring of libvirt image caching * linux\_net: Also ignore shell error 2 from ip addr * Consistently update instance in nova/compute/manager.py * Use named logger when available * Fix deprecated warning * Add support for LXC volumes * Added ability to load specific extensions * Add flag to include link local in port security * Allow e2fsck to exit with 1 * Removes constraints from instance and volume types * Handle service failures during finish\_resize gracefully * Set port security for all allocated ips * Move connection pool back into impl\_kombu/qpid * pep8 check on api-paste.ini when using devstack * Allows test\_virt\_drivers to work when run alone * Add an alias to the ServerStartStop extension * tests.integrated fails with devstack * Backslash continuations (nova.virt) * Require newer versions of SA and SA-Migrate * Optimizes ec2 keystone usage and handles errors * Makes sure killfilter doesn't raise ValueError * Fixes volume snapshotting issues and tests * Backslash continuations (misc.) * nova-rootwrap: wait() for return code before exit * Fix bug 921814 changes handling of adminPass in API * Send image properties to Glance * Check return code instead of output for iscsiadm * Make swap default to vdb if there is no ephemeral * Handle --flagfile by converting to .ini style * Update cfg from openstack-common * Fix xvpvncproxy error in nova-all (lp#928489) * Update MANIFEST.in to account for moved schemas * Remove ajaxterm from Nova * Adding the request id to response headers. Again * Update migration to work when data already exists * Fix support for --flagfile argument * Implements blueprint heterogeneous-tilera-architecture-support * Add nova/tests/policy.json to tarball * Fix quantum client filters * Store the correct tenant\_id/project\_id * dont show blank endpoint headers * Pass in project\_id in ext. authorizer * Fix \_poll\_bandwidth\_usage if no network on vif * Fix nova.virt.firewall debugging message to use UUID * Fix debugging log message to print instance UUID * mkfs takes vfat, not fat32 * Pass partition into libvirt file injection * bug 924266: connection\_type and firewall\_driver flags mismatch * bug 927507: fix quantum manager get\_port\_by\_attachment * Fix broken flag in test\_imagecache * Don't write a dns directive if there are no dns records in /etc/network/interfaces * Imported Translations from Launchpad * Backslash continuations (nova.db) * Add initiator to initialize\_connection * Allows nova to read files as root * Re-run nova-manage under sudo if unable to read conffile * Fix status transition when reverting resize * Adds flags for href prefixes * X\_USER is deprecated in favor of X\_USER\_ID * Move cfg to nova.openstack.common * Use Keystone Extension Syntax for EC2 Creds * Remove duplicate instances\_path option * Delete swap VDI if not used * Raise ApiError in response to InstanceTypeNotFound * Rename inst in \_create\_image, and pass instance to log msgs * Fix bug #924093 * Make sure tenant\_id is populated * Fix for bug 883310 * Increased coverage of nova/auth/dbdriver.py to 100%. Fixes 828609 * Make crypto use absolute imports * Remove duplicate logging\_debug\_format option * blueprint nova-image-cache-management phase1 * Set rescue instance hostnames appropriately * Throw an user error on creating duplicate keypairs Fixes bug 902162 * Fixes uuid lookup in virtual interfaces extension * Add comments to injected keys and network config * Remove hard coded m1.tiny behavior * Fix disassociation of fixed IPs when using FlatManager * Provides flag override for vlan interface * remove auto fsck feature from file injection. Bug 826794 * DRYing up Volume/Compute APIRouters * Excise M2Crypto! * Add missing dev. Fixes LP: #925607 * Capture bandwidth usage data before resize * Get rid of DeprecationWarning during db migration * Don't block forever for rpc.(multi)call response * Optionally disable file locking * Avoid weird test error when mox is missing * fix stale libvirt images on download failure. Bug 801412 * cleanup test case to use integers not strings * Respect availability\_zone parameter in nova api * Fix admin password skip check * Add support for pluggable l3 backends * Improve dom0 and template VM avoidance * Remove Hyper-V support * Fix logging to log correct filename and line numbers * Support custom routes for extensions * Make parsing of usage stats from XS more robust * lockfile.FileLock already appends .lock * Ties quantum, melange, and nova network model * Make sure multiple calls to \_get\_session() aren't nested * bug 921087: i18n-key and local-storage hard-coded in xenapi * optimize libvirt raw image handling. Bug 924970 * Boto 2.2.x failes. Capping pip-requires at 2.1.1 * fixed bug 920856 * Expand policies for admin\_actions extension * Correct checking existence of security group rule * Optionally pass a instance uuid to log methods * remove unsupported ec2 extensions * Fix VPN ping packet length * Use single call in ExtendedStatus extension * Add mkswap to rootwrap * Use "display\_name" in "nova-manage vm list" * Fix broken devref docs * Allow for auditing of API calls * Use os.path.basename() instead of string splitting * Remove utils.runthis() * Empty connection pool after test\_kombu * Clear out RPC connection pool before exit * Be more explicit about emptying connection pool * fixes melange ipam lib * bug 923798: On XenServer the DomU firewall driver fails with NotImplementedError * Return instancesSet in TerminateInstances ec2 api * Fix multinode libvirt volume attachment lp #922232 * Bug #923865: (xenapi driver)instance creation fails if no guest agent is avaiable for admin password configuration * Implementation of new Nova Volume driver for SolidFire ISCSI SAN * Handle kepair delete when not found * Add 'all\_tenants' filter to GET /servers * Use name filter in GlanceImageService show\_by\_name * Raise 400 if bad kepair data is provided * Support file injection on boot w/ Libvirt * Refactor away the flags.DEFINE\_\* helpers * Instances to be created with a bookmark link * fix \`nova-manage image convert\` exception * Added validation of name when creating a new keypair * Ignore case in policy role checks * Remove session arg from sm\_backend\_conf\_update * Remove session arguments from db.api * Add a note explaining why unhandled exceptions shouldn't be returned to users * Remove fetching of networks that weren't created via nova-manage * uses the instance uuid in libvirt by introducing a new variable 'uuid' for the used template instead of using a random uuid in libvirt * Fixing a rebuild race condition bug * Fixes bug 914418 * Remove LazySerializationMiddleware * Bug #921730: plugins/xenserver/xenapi/etc/xapi.d/plugins/objectstore no longer in use * Adding live migration server actions * bug 921931: fix Quantum Manager VM launch race condition * Fix authorization checks for simple\_usage.show * Simplify somewhat complicated reduce() into sum() * Ignore connection\_type when no instances exist * Add authorization checks to flavormanage extension * rootwrap: Fix KillFilter matching * Fix uptime calculation in simple\_usage * Fixing rebuilds on libvirt, seriously * Don't pass filter\_properites to managers * Fixing rebuilds on libvirt * Fix bug 921715 - 'nova x509-create-cert' fails * Return 403 instead of 401 when policies reject * blueprint host-aggregates: OSAPI extensions * blueprint host-aggregates: OSAPI/virt integration, via nova.compute.api * Fixes bug 921265 - i'nova-manage flavor create|list' * Remove unused flags.Help\*Flag * Convert vmwareapi code to UNIX style line endings * Blueprint xenapi-provider-firewall and Bug #915403 * Adds extension for retrieving certificates * Add os-start/os-stop server actions to OSAPI * Create nova cert worker for x509 support * Bug #916312: nova-manage network modify --network flag is inconsistent * Remove unused nova/api/mapper.py * Add nova.exception.InvalidRPCConnectionReuse * Add support for Qpid to nova.rpc * Add HACKING compliance testing to run\_test.sh * Remove admin\_only ext attr in favor of authz * usage: Fix time filtering * Add an API extension for creating+deleting flavors * extensions: Allow registering actions for create + delete * Explicitly encode string to utf8 before passing to ldap * Make a bunch of dcs into single-entry lists * Abstract out \_exact\_match\_filter() * Adds a bandwidth filter DB call * KVM and XEN Disk Management Parity * Tweak api-paste.ini to prepare for a devstack change * Remove deprecated serialization code * Add affinity filters updated to use scheduler\_hints and have non-douchey names * Do not output admin\_password in debug logs * Handle error in associate floating IP (bug 845507) * Brings back keystone middleware * Remove sensitive info from rpc logging * Error out instance on set password failure * Fixed limiting for flavors * Adds availability zone filter * Fixes nova-manage fixed list * API version check cleanups * ComputeNode Capacity support * blueprint host-aggregates: maintenance operations to host OSAPI exts * Add a specific filter for kill commands * Fix environment passing in DnsmasqFilter * Cleanups for rootwrap module * Fix 'nova-manage config list' * Add context and request spec to filter\_properties * Allow compute manager prep\_resize to accept kwargs * Adds isolated hosts filter * Make start\_instance cast directly to compute host * Refactor compute api messaging calls to compute manager * Refactor test\_scheduler into unit tests * Forgot to update chance scheduler for ignore\_hosts change * Add SchedulerHints compute extension * Add floating IP support to Quantum Manager * Support filter based on CPU core (over)allocation * bug 917397 * Add option to force hosts to scheduler * Change the logic for deleting a record dns\_domains * Handle FlavorNotFound on server list w/ filter * ERROR out instance if unrescue fails * Fix xenapi rescue without swap * Pull out ram\_filter into a separate filter * pass filter\_properties into scheduling requests for run\_instance * Fixes bug #919390 - Block Migration fails when keystone is un use * Fix nova-manage floating list (fixes bug 918804) * Imported Translations from Launchpad * scheduler host\_manager needs service for filters * Allow Quantum Manager to run in "Flat" mode * aws/ec2 api validation * Fix for bug 918502 * Remove deprecated extension code * Validating image id for rebuild * More cleanup of Imports to match HACKING * chmod nova-logspool * nova/network: pass network\_uuid to linuxnet\_interface\_driver and vif driver * Clean up crypto.py * Fix missing imports and bad call caught by pyflakes * Clarify error messages for admin passwords * Log uuid when instances fail to spawn * Removed references to FLAGS.floating\_ip\_dns\_domains * Removed some vestigial default args from DNS drivers * Allow config of vncserver\_proxyclient\_address * Rename 'zone' to 'domain.' * disk\_config extension now uses OS prefix * Do not write passwords to verbose logs. bug 916167 * Automatically clean up DNS when a floating IP is deallocated * Fix disassociating of auto assigned floating ips * Cleanup Imports to match HACKING guidelines * Added an LDAP/PowerDNS driver * Add dns domain manipulation to nova * fixes bug lp914962 * Fixed bug 912701 * Fix bug #917615 * Separate scheduler host management * Set instance\_ref property when creating snapshots * Implements blueprint vnc-console-cleanup * Rebuild/Resize support for disk-config * Allow instances in 'BUILD' state to be deleted * Stop allowing blank image names on snapshot/backup * Only update if there are networks to update * Drop FK constraint if it exists in migration 064 * Fix an error that prevents message from getting substituted * blueprint host-aggregates * Add missing scripts to setup.py (lp#917676) * Fixes bug 917128 * Clean up generate fingerprint * Add policy checking to nova.network.api.API * Add default policy rule * Super is not so super * Fixed the log line * Add tests for volume list and detail through new volume api, and fix error that the tests caught * Typofix for impl\_kombu * Refactoring logging \_log function * Update some extensions (1) * DECLARE osapi\_compute\_listen\_port for auth manager * Increase robustness of image filtering by server * Update some extensions (2) * Implement BP untie-nova-network-models * Add ipv4 and ipv6 validation * greenlet version inconsistency * Add policy checks to Volume.API * Remove unused extension decorator require\_admin * Fix volume api typo * Convert nova.volume.api.API to use volume objects * Remove a whole bunch of unused imports * have all quota errors return an http 413 * This import is not used * Refactor request and action extensions * Prefixing the request id with 'req-' to decrease confusion when looking at logs * Fixing a bug that was causing the logging to display the context info for the wrong user. bug: 915608 * Modify the fake ldap driver to fix compatibility * Create an instance DNS record based on instance UUID * Implements blueprint separate-nova-volumeapi * Implement more complete kombu reconnecting * First implementation of bp/live-migration-resource-calc * Remove 'status' from default snapshot properties * Clean up disk\_format mapping in xenapi.vm\_utils * Remove skipping of 2 tests * Make authz failures use proper response code * Remove compute.api.API.add\_network\_to\_project * Adds test for local.py * Fix policy import in nova.compute.api * Remove network\_api from Servers Controller * minor fix in comment * Updates linux\_net to ignore some shell errors * Add policy checks to Compute.API * Ensure nova is compatible with WebOb 1.2+ * improve handling of the img\_handlers config list * Unbreak start instance and fixes bug 905270 * catch InstanceInvalidState in more places * Fix some cfg test case naming conflicts * Remove 'location' from GlanceImageService * Makes common/cfg.py raise AttributeError * Call to instance\_info\_cache\_delete to use uuid * Bug #914907: register\_models in db/sqlalchemy/models.py references non-existent ExportDevice * Update logging in compute manager to use uuids * Do not overwrite project\_id from request params * Add optional revision field to version number * Imported Translations from Launchpad * nova-manage floating ip fixes * Add a modify function to the floating ip dns api * Adding the request id to response headers * Add @utils.deprecated() * Blueprint xenapi-security-groups * Fix call to compute\_api.resize from \_migrate * Fix metadata mapping in s3.\_s3\_parse\_manifest * Fix libguestfs operation with specified partitions * fix reboot\_instance typo * Fix bad test cases in smoketest * fix bug 914049: private key in log * Don't overwrite local context on elevated * Bug 885267: Fix GET /servers during instance delete * Adds support for floating ip pools * Adds simple policy engine support * Refactors utils.load\_cached\_file * Serialization, deserialization, and response code decorators * Isolate certain images on certain hosts * Workaround bug 852095 without importing mox * Bug #894683: nova.service does not handle attribute specific exceptions and client hangs * Bug #912858: test\_authors\_up\_to\_date does not deal with capitalized names properly * Adds workaround check for mox in to\_primitive * preload cache table and keep it up to date * Use instance\_properties in resize * Ensure tests are python 2.6 compatible * Return 409s instead of 500s when deleting certain instances * Update HACKING.rst * Tell users what is about to be installed via sudo * Fix LP912092 * Remove small unneeded code from impl\_kombu * Add missing space between XML attributes * Fix except format to match HACKING * Set VLAN MTU size when creating the vlan interface * Add instance\_name field to console detail command which will give the caller the necessary information to actually connect * Fix spelling of variable * Remove install\_requires processing * Send event notifications for suspend and resume * Call mkfs with the correct order of arguments * Fix bug 901899 * Fix typo in nova/rootwrap/compute.py. Fixes LP: #911880 * Make quantum\_use\_dhcp falsifiable * Fixing name not defined * PEP8 type comparison cleanup * Add cloudpipe/vpn api to openstack api contrib * Every string does not need to be internationalized * Adds running\_deleted\_instance\_reaper task * libvirt: implements boot from ISO images * Unused db.api cleanup * use name gateway\_v6 instead of gateway6 * PEP8 remove direct type comparisons * Install a good version of pip in the venv * Bug #910045: UnboundLocalError when failing to get metrics from XenAPI hosts * re-raising exceptions fix * use dhcp\_lease\_time for dnsmasq. Fix bug 894218 * Clean up pylint errors in top-level files * Ensure generated passwords meet minimum complexity * Fixing novaclient\_converter NameError * Bug 820059: bin/nova-manage.py VpnCommands.spawn calls non-existant method VpnCommands.\_vpn\_for - fixed * Bug 751229: Floating address range fixed * Brings some more files up to HACKING standards * Ensure queue is declared durable so messages aren't dropped * Create notification queues as durable * Adding index to instances project\_id column * Add an API for associating floating IPs with DNS entries * 'except:' to 'except Exception:' as per HACKING * Adds EC2 ImportKeyPair API support * Take the availability zone from the instance if available * Update glance Xen plugin w/ purge props header * Converting zones into true extension * Convering /users to admin extension * Add a DECLARE for dhcp\_doamin flag to metadata handler * Support local target for Solaris, use 'safe' command-line processing * Add 'os-networks' extension * Converting accounts resource to admin extension * Add exit\_code, stdout, stderr etc to ProcessExecutionException * Fixes LP bug #907898 * Switch extension namespace * Refactor Xen Vif drivers. Fixes LP907850 * Remove code in migration 064 to drop an fkey that does not exist. Fixes LP bug #907878 * Help clarify rpc API with docs and a bit of code * Use SQLAlchemy to drop foreign key in DB migrate * Move createBackup server action into extension * Bug#898257 support handling images with libguestfs * Bug#898257 abstract out disk image access methods * Move 'actions' subresource into extension * Make os-server-diagnostics extension admin-only * Remove unneeded broken test case * Fix spelling typos in comments * Allow accessIPv4 and accessIPv6 on rebuild action * Move 'diagnostics' subresource to admin extension * Cleaning up imports in compute and virt * Cleaning up imports in nova.api * Make reroute\_compute use functools.wraps. Fixes LP bug #906945 * Removing extra code from servers controller * Generate instance faults when instance errors * Clarify NoValidHost messages * Fix one last bug in os-console-output extension * Fix os-console-output extension integration * Set Location header in server create and rebuild actions * Consistently use REBUILDING vm\_state * Improve the minidns tests to handle zone matching * Remove unused FLAGS.block\_size * Make UUID format checking more correct * Set min\_ram and min\_disk on snapshot * Add support for port security to QuantumManager * Add a console output action to servers * Creating mechanism that loads Admin API extensions * Document return type from utils.execute() * Renamed the instance\_dns\_driver to dns\_driver for more general use * Specify -t rsa when calling ssh-keygen * create\_export and ensure\_export should pass up the return value, to update the database * Imported Translations from Launchpad * avoid error and trace on dom.vcpus() in lxc * Properly passes arg to run\_iscsiadm to fix logout * Makes disassociate by timeout work with multi-host * Call get\_instance\_nw\_info with elevated context, as documented in nova/network/manager.py * Adds missing joinedload for vif loading * missing comments about extensions to ec2 * Pull resource extensions into APIRouter * IPAM drivers aren't homogenous bug 903230 * use env to find 'false'. Fix for OS X * Fix scheduler error handler * Starting work on exposing service functionality * Bugfix for lp904932 * Ensure fkey is dropped before removing instance\_id * Fixes bug 723235 * nova.virt.libvirt.firewall: set static methods * Expose Asynchronous Fault entity in the OSAPI * Fix nova-manage flags declaration * Remove useless flags declaration * Remove useless input\_chain flags * Make XenAPI agent configuration synchronous * Switch disk\_config extension to use one DB query * Update utils.execute so that check\_exit\_code handles booleans. Fixes LP bug #904560 * Rename libvirt\_uri to uri * Make libvirt\_uri a property * Making pep8 output less verbose * Refactors handling of detach volume * Fixes bug 887402 * Bug 902626 * Make various methods static * Pass additional information from nova to Quantum * Refactor vm\_state and task\_state checking * Updates OVS rules applied to IPv4 VIFs * Follow-on to I665f402f to convert rxtx\_quota to rxtx\_factor in nova-manage and a couple of tests * Make sure the rxtx\_cap is used to set qos info * Fix some errors found by pychecker * Fix tgtadm off by one error. Fixes bug #871278 * Sanitize EC2 manifests and image tarballs * floating-ip: return UUID of instance rather than ID * Renaming instance\_actions.instance\_id column to instance\_uuid. blueprint: internal-uuids * Fix for bug 902175 * fixed typos. removed an unused import * Vm state management and error states * Added support for creating nova volume snapshots using OS API * Fix error when subnet doesn't have a cidr set * bug 899767: fix vif-plugging with live migration * Fixing snapshot failure task\_state * Imported Translations from Launchpad * Moves find config to utils because it is useful * fixed\_ips by vif does not raise * Add templates for selected resource extensions * Fix network forwarding rule initialization in QuantumManager * \_check\_image\_size returns are consistent * Fixed the perms on the linux test case file so that nose will run it * Add preparation for asynchronous instance faults * Add templates for selected resource extensions * Use more informative message when violating quota * Log it when we get a lock * removing TODO as we support Windows+XenServer and have no plans to support quiesce or VSS at the moment * Adds network model and network info cache * Rename .nova-venv to .venv * revert using git for novaclient * Port nova.flags to cfg * Make cfg work on python 2.6 * Relax novaclient and remove redis dependency * Relax dependency on boto 1.9b and nova-adminclient * Make QuantumManager no longer depend on the projects table * Imported Translations from Launchpad * Fix for bug 901459 * Updated the test runner module with a sys.path insert so that tests run in and outside a virtual environment * Add ability to see deleted and active records * Set instance['host'] to the original host value on revert resize * Fix race condition in XenAPI when using .get\_all * Clean up snapshot metadata * Handle the 'instance' half of blueprint public-and-private-dns * Refactors periodic tasks to use a decorator * Add new cfg module * Remove extra\_context support in Flags * A more secure root-wrapper alternative * Remove bzr related code in tests/test\_misc * Change cloudServersFault to computeFault * Update associate\_floating\_ip to use instance objs * vm\_state:=error on driver exceptions during resize * Use system M2Crypto package on Oneiric, bug 892271 * Update compute manager so that finish\_revert\_resize runs on the source compute host. Fixes bug #900849 * First steps towards consolidating testing infrastructure * Remove some remnants of ChangeLog and vcsversion.py generation * Pass '-r' option to 'collie cluster status' * Remove remnants of babel i18n infrastructure * Fixes a typo preventing attaching RBD volumes * Remove autogenerated pot file * Make admin\_password keyword in compute manager run\_instance method match what we send in the compute API. Fixes bug #900591 * remove duplicate netaddr in nova/utils * cleanup: remove .bzrignore * add index to instance\_uuid column in instances * Add missing documentation for shared folder issue with unit tests and Python lock file * Updated nova-manage to work with uuid images Fixes bug 899299 * Add availabity\_zone to the refresh list * Document nova-tarball Jenkins job * Adds extension documentation for some but not all extensions * Add templates for selected resource extensions * EC2 rescue/unrescue is broken, bug 899225 * Better exception handling during run\_instance * Implement resize down for XenAPI * Fix for EC2 API part of bug 897164 * Remove some unused imports from db * Replacing instance id's in in xenapi.vmops and the xen plugin with instance uuids. The only references to instance id's left are calls to the wait\_for\_task() method. I will address that in another branch. blueprint: internal-uuids * Convert get\_lock in compute to use uuids * Fix to correctly report memory on Linux 3.X * Replace more cases of instance ids with uuids * Make run\_instance only support instance uuids * Updates simple scheduler to allow strict availability\_zone scheduling * Remove VIF<->Network FK dependancy * Adds missing image\_meta to rescue's spawn() calls * Bug #898290: iSCSI volume backend treats FLAGS.host as a hostname * split rxtx\_factor into network and instance\_type * Fixing get\_info method implementations in virt drivers to accept instance\_name instead of instance\_id. The abstract class virt.ComputeDriver defines get\_info as: def get\_info(self, instance\_name). blueprint: internal-uuids * Fixes bug 767947 * Remove unused ec2.action\_args * Fix typo: priviledges -> privileges * Bug #896997: nova-vncproxy's flash socket policy port is not configurable * Convert compute manager delete methods to objects * Removing line dos line endings in vmwareapi\_conn.py * reboot & rebuild to use uuids in compute manager * Fix for bug 887712 * Add NAT/gateway support to QuantumManager * Fix QuantumManager update\_dhcp calls * Fix RPC responses to allow None response correctly * Use uuids for compute manager agent update * power\_on/power\_off in compute manager to use uuids * Use uuids for file injection * removed logic of throwing exception if no floating ip * Adding an install\_requires to the setup call. Now you can pip install nova on a naked machine * Removing obsolete bzr-related clauses in setup.py * Makes rpc\_allocate\_fixed\_ip return properly * Templatize extension handling * start/stop in compute manager to use uuids * Updating {add,remove}\_fixed\_ip\_from\_instance in compute.api and compute.manager to use instance uuid instead of instance id. blueprint internal-uuids * Use instance uuids for consoles and diagnostics * Fixes bug 888649 * Fix Bug #891718 * Bug #897091: "nova actions" fails with HTTP 400 / TypeError if a server action has been performed * Bug #897054: stack crashes with AttributeError on e.reason if the server returns an error * Refactor a few things inside the xenapi unit tests * New docs: unit tests, Launchpad, Gerrit, Jenkins * Fix trivial fourth quote in docstring * Fix deprecation warnings * Fix for bug 894431 * Remove boot-from-volume unreachable code path (#894172) * reset/inject network info in compute to use uuid * Updating set\_admin\_password in compute.api and compute.manager to use instance uuids instead of instance ids. Blueprint internal-uuids * rescue/unrescue in compute manager to use uuids * Updated development environment docs * Call df with -k instead of -B1 * Make fakelibvirt python2.6 compatible * Clean up compute api * Updating attach/detach in compute.api and compute.manager to use instance uuid instead of instance id. blueprint internal-uuids * Change compute API.update() to take object+params * Use XMLDictSerializer for resource extensions * Updating {add,remove}\_security\_group in compute.api to use instance uuids instead of instance ids. blueprint internal-uuids * Extend test\_virt\_driver to also test libvirt driver * poll\_rebooting\_instances passes an instance now * Revert "Fixes bug 757033" * Put instances in ERROR state when scheduler fails * Converted README to RST format * Workaround xenstore race conditions * Fix a minor memory leak * Implement schedule\_prep\_resize() * Fixes bug 886263 * snapshot/backup in compute manager to use uuids * Fixes bug 757033 * Converting tests to use v2 * lock/unlock in compute manager to use uuids * suspend/resume in compute manager to use uuids * Refactor metadata code out of ec2/cloud.py * pause/unpause in compute manager to use uuids * Creating new v2 namespace in nova.api.openstack * Add a "libvirt\_disk\_prefix" flag to libvirt driver * Added RST docs on how to use gettext * Refactoring/cleanup of some view builders * Convert remaining calls to use instance objects * Make run instances respect availability zone * Replacing disk config extension to match spec * Makes sure gateways forward properly * Convert security\_group calls to use instance objs * Remove hostname update() logic in compute.API * Fixes bug 890206 * Follow hostname RFCs * Reference Ron Pedde's cleanup script for DevStack * Remove contrib/nova.sh and other stale docs * Separate metadata api into its own service * Add logging, error handling to the xenstore lib * Converting lock/unlock to use instance objects * Deepcopy optparse defaults to avoid re-appending multistrings (#890489) * install\_venv: apply eventlet patch correctly with python 2.7 (#890461) * Fix multistring flags default handling (#890489) * Fixing image create in S3ImageService * Defining volumes table to allow FK constraint * Converting network methods to use instance objects * Handle null ramdisk/kernel in euca-describe-images * Bind engine to metadata in migration 054 * Adding downgrade for migration 57 plus test * Log the URL to an image\_ref and not just the ID * Converting attach\_volume to use instance object * Converting rescue/unrescue to use instance objects * Converting inject\_file to use instance objects * Bug #888719: openvswitch-nova runs after firstboot scripts * Bug #888730: vmwareapi suds debug logging very verbose * Converting consoles calls to use instance objects * Converting fixed ip calls to use instance objects * Convert pause/unpause, sus/res to use instance obj * fix rebuild sha1 not string error * Verify security group parameters * Converting set password to use instance objects * Converting snapshot/backup to use instance objects * Refactor of QuotaError * Fix a notification bug when creating instances * Converting metadata calls to use instance objects * nova-manage: exit with status 1 if an image registration fails * Converting start and stop to use instance objects * Converting delete to use instance objects * Capture exceptions happening in API layer * Removed some old cruft * Add more error handling to glance xenapi plugin * Fixes bug 871877 * Replace libvirt driver's use of libxml2 with ElementTree * Extend fake image service to let it hold image data * Bug #887805 Error during report\_driver\_status(): 'LibvirtConnection' object has no attribute '\_host\_state' * More spelling fixes inside of nova * Fixes LP878319 * Fix exception reraising in volume manager * Adding Chuck Short to .mailmap * Undefine libvirt saved instances * Split compute api/manager tests within module * Workaround for eventlet bug with unit tests in RHEL6.1 * Apply M2Crypto fix for all Fedora-based distributions * Fix failing libvirt test (bug 888250) * Spelling fixes in nova/api comments * Get MAC addresses from Melange * Refactor logging\_error into utils * Converting rebuild to use instance objects * Converting resize to use instance objects * Converting reboot to use instance objects * Reducing the number of compute calls to Glance * Remove duplicate method (2) * Move tests for extensions to contrib directory * Remove duplicate method * Remove debugging print * Adds extended status information via the Admin API to the servers calls * Wait until the instance is booted before setting VCPU\_params * changes logging reference in zone\_manager.py * Exception cleanup in scheduler * Fixing create\_vbd call per VolumeHelper refactoring * Switch glance XenAPI plugin to use urllib2 * Blueprint lasterror * Move failed instances to error state * Adding task\_states.REBOOTING\_HARD * Set task state to UPDATING\_PASSWORD when needed * Clean up docstrings for faults.Fault and it's usage * Fix typo in docstring * Add DHCP support to the QuantumManager and break apart dhcp/gateway * Change network delete to delete by uuid or cidr * Bug #886353: Faults raised by OpenStack API Resource handlers fail to be reported properly * Define faults.Fault.\_\_str\_\_ * Speed up tests a further 35 seconds * Removing duplicate kernel/ramdisk check in OSAPI * Remove unnecessary image list in OSAPI * Add auto-reloading JSON config file support to scheduler * Change floating-snat to float-snat * Allows non-admin users to use simple scheduler * Skip libvirt tests when libvirt not present * Correcting libvirt tests that were failing * Fix for launchpad bug #882568 * Gracefully handle Xen resize failure * Don't update database before resize * fix bug 816630 * Set nova-manage to executable Fixes LP885778 * Fixing immediate delete after boot on Libvirt * exception.KeypairNotFound usage correction * Add local storage of context for logging * Reserve memory/disk for dom0/host OS * Speed up tests yet another 45 seconds * APIs should not wait on scheduler for builds in single zone deployment * Added some documentation to db.api module docstring * Updated rst docs to include threading model * Adds documentation for Xen Storage Manager * Xen Storage Manager Volume Driver * Drop extra XML tests and remove \_json suffix from names * Fix empty group\_id to be considered invalid * Stop nova-ajax-console-proxy configuring its own logging * Bug 884863: nova logs everything to syslog twice * Log the exception when we get one * Use fat32 for Windows, linux-swap for Linux swap partitions * Fix KeyError when passed unknown format of time * flatten distributed scheduler * Bug #884534: nova-ajax-console-proxy crashes on shutdown * Bug 884527: ajax\_console\_proxy\_port needs to be an integer * Too much information is returned from POST /servers * Disable SQLite synchronous mode during tests * Creating uuid -> id mapping for S3 Image Service * Fix 'begining' typo in system usage data bug 884307 * Fixes lp883279 * Log original dropped exception when a new exception occurs * Fix lp:861160 -- newly created network has no uuid * Bug #884018: "stack help" prints stacktrace if it cannot connect to the server * Optional --no-site-packages in venv * fixes bug 883233. Added to Authors fix typo in scheduler/driver.py assert\_compute\_node\_has\_enough\_memory * Updated NoAuth to account for requests ending in / * Retry failed SQL connections (LP #876663) * Removed autogenerated API .rst files * Fix to a documentation generation script * Added code to libvirt backend to report state info * Adding bulk create fixed ips. The true issue here is the creation of IPs in the DB that are not currently used(we are building the entire block). This fix is just a bandaid, but it does cut ~25 seconds off of the quantum tests on my laptop * Fix overzealous use of faults.Fault() wrapper * Revert how APIs get IP address info for instances * Support server uuids with security groups * Support using server uuids when accessing consoles * Adding support for retrying glance image downloads * Fix deletion of instances without fixed ips * Speed up test suite by 20 seconds * Removed callback concept on VM driver methods: * Fix file injection for OSAPI rebuilds. Fixes 881649 * Replaces all references to nova.db.api with nova.db * venv: update distribute as well as pip * Fix undefined glance\_host in get\_glance\_client * Fix concurrency of XenAPI sessions * Server metadata must support server uuids * Add .gitreview config file for gerrit * Convert instancetype.flavorid to string * Make sure networks returned from get\_instance\_nw\_info have a label * Use UUIDs instead of IDs for OSAPI servers * Improve the liveness checking for services * Refactoring of extensions * Moves a-zone scheduling into simple scheduler * Adds ext4 and reiserfs to \_mount\_filesystem() * Remove nova dependency on vconfig on Linux * Upgrade pip in the venv when we build it * Fixes bug 872459 * Repartition and resize disk when marked as managed * Remove dead DB API call * Only log instance actions once if instance action logging is enabled (now disabled by default) * Start switching from gflags to optparse * Don't leak exceptions out to users * Fix EC2 test\_cloud timing issues * Redirects requests from /v#.# to /v#.#/ * Chain up to superclass tearDown in ServerActionsTest * Updated RST docs: bzr/launchpad -> git/github * Refactoring nova.tests.api.openstack.test\_flavors * Refactoring image and server metadata api tests * Refactoring nova.tests.api.openstack.test\_servers * Refactoring nova.tests.api.openstack.test\_images * Utility script that makes enforcing PEP8 within git's pre-commit hook as easy as possible * Add XML templates * Remove OSAPI v1.0 * Remove unused flag\_overrides from TestCase * Cancel any clean\_reboot tasks before issuing the hard\_reboot * Makes snapshots work for amis. Fixes bug 873156 * Xenapi driver can now generate swap from instance\_type * Adds the ability to automatically issue a hard reboot to instances that have been stuck in a 'rebooting' state for longer than a specified window * Remove redundant, dead code * Added vcpu\_weight to models * Updated links in the README that were out of date * Add INPUT chain rule for EC2 metadata requests (lp:856385) * Allow the user to choose either ietadm or tgtadm (lp:819997) * Remove VolumeDriver.sync\_exec method (lp:819997) * Adds more usage data to Nova's usage notifications * Fixes bug 862637 -- make instance\_name\_template more flexible * Update EC2 get\_metadata calls to search 'deleted': False. Fixes nova smoke\_tests!!! * Use new ip addr del syntax * Updating HACKING to make split up imports into three blocks * Remove RateLimitingMiddlewareTest * Remove AoE, Clean up volume code * Adds vcpu\_weight column to instance\_types table and uses this value when building XenServer instances * Further changes to the cleaner * Remove duplicated functions * Reference orphaned\_instance instead of instance * Continue to the next iteration of the loop if an instance is not found * Explicit errors on confirm/revertResize failures * Include original exception in ClassNotFound exception * Enable admin access to EC2 API server * Make sure unknown extensions return 404 * Handle pidfile exception for dnsmasq * Stop returning correct password on api calls * Restructure host filtering to be easier to use * Add support for header version parameter to specify API version * Set error state on spawn error + integration test * Allow db schema downgrades * moved floating ip db access and sanity checking from network api into network manager added floating ip get by fixed address added fixed\_ip\_get moved floating ip testing from osapi into the network tests where they belong * Adds a script that can automatically delete orphaned VDIs. Also had to move some flags around to avoid circular imports * Improve access check on images * Updating image progress to be more granular. Before, the image progress had only 2 states, 0 and 100. Now it can be 0, 25, 50 or 100 * Deallocate ip if build fails * Ensure non-default FLAGS.logfile\_mode is properly converted to an octet * Moving admin actions to extension * Fixes bug 862633 -- OS api consoles create() broken * Adds the tenant id to the create images response Location header Fixes bug 862672 * Fixes bug 862658 -- ec2 metadata issue getting IPs * Added ==1.0.4 version specifier to kombu in pip-requires to ensure tests pass in a clean venv * bug lp845714 * install\_venv: pip install M2Crypto doesn't work on Fedora * install\_venv: add support for distro specific code * install\_venv: remove versioned M2Crypto dependency * install\_venv: don't use --no-site-packages with virtualenv * install\_venv: pass the --upgrade argument to pip install * install\_venv: refactor out pip\_install helper * Replace socat with netcat * api.ec2.admin unit tests * Fixes Bug #861293 nova.auth.signer.Signer now honors the SignatureMethod parameter for SHA1 when creating signatures * Enforce snapshot cleanup * bug 861310 * Change 'recurse\_zones' to 'local\_zone\_only' * Fixes euca-describe-instances failing or not showing IPs * Fixes a test failure in master * Fixed bug lp850602. Adding backing file copy operation on kvm block migration * Add nova-all to run all services * Snapshots/backups can no longer happen simultaneously. Tests included * Accept message as sole argument to NovaException * Use latest version of SQLAlchemy * Fix 047 migration with SQLAlchemy 0.7.2 * Beef up nova/api/direct.py tests * Signer no longer fails if hashlib.sha256 is not available. test\_signer unit test added * Make snapshots private by default * use git config's review.username for rfc.sh * Raise InsufficientFreeMemory * Adding run\_test.sh artifacts to .gitignore * Make sure options is set before checking managed\_disk setting. Fixes bug 860520 * compute\_api create\*() and schedulers refactoring * Removed db\_pool complexities from nova.db.sqlalchemy.session. Fixes bug 838581 * Ensure minRam and minDisk are always integers * Call endheaders when auth\_token is None. Fixes bug 856721 * Catch ImageNotFound on image delete in OSAPI * Fix the grantee group loading for source groups * Add next links to images requests * put fully qualified domain name in local-hostname * Removing old code that snuck back in * Makes sure to recreate gateway for moved ip * Fix some minor issues due to premature merge of original code * \* Rework osapi to use network API not FK backref \* Fixes lp854585 * Allow tenant networks to be shared with domain 0 * Use ovs-vsctl iface-to-br to look up the bridge associated with the given VIF. This avoids assuming that vifX.Y is attached to xenbrY, which is untrue in the general case * Made jenkins email pruning more resilient * Fixing bug 857712 * Adds disk config * Adding xml schema validation for /versions resource * Fix bug 856664 overLimit errors now return 413 * Don't use GitPython for authors check * Fix outstanding pep8 errors for a clean trunk * Add minDisk and minRam to OSAPI image details * Fix rfc.sh's check for the project * Add rfc.sh to help with gerrit workflow * This patch adds flavor filtering, specifically the ability to flavor on minRam, minDisk, or both, per the 1.1 OSAPI spec * Add next links for server lists in OSAPI 1.1. This adds servers\_links to the json responses, and an extra atom:link element to the servers node in the xml response * Update exception.wrap\_exception so that all exceptions (not just Error and NovaException types) get logged correctly * Merging trunk * Adding OSAPI tests for flavor filtering * This patch adds instance progress which is used by the OpenStack API to indicate how far along the current executing action is (BUILD/REBUILD, MIGRATION/RESIZE) * Merging trunk * Fixes lp:855115 -- issue with disassociating floating ips * Renumbering instance progress migration * Fixing tests * Keystone support in Nova across Zones * trunk merge fixup * Fix keys in ec2 conversion to make sure not to use unicode * Adds an 'alternate' link to image views per 3.10 and 3.11 of http://docs.openstack.org/cactus/openstack-compute/developer/openstack-compute-api-1.1/content/LinksReferences.html * Typo * Fixing tests * Fixing tests * make sure kwargs are strings and not unicode * Merging trunk * Adding flavor filtering * Instance deletions in Openstack are immediate. This can cause data to be lost accidentally * Makes sure ips are moved on the bridge for nodes running dnsmasq so that the gateway ip is always first * pep8 * add tests and fix bug when no ip was set * fix diverged branch * migration conflict fixed * clean up based on cerberus review * clean up based on cerberus review * Remove keystone middlewares * fix moving of ips on flatdhcp bridge * Merged trunk * merged trunk * update floating ips tests * floating ip could have no project and we should allow access * actions on floating IPs in other projects for non-admins should not be allowed * floating\_ip\_get\_by\_address should check user's project\_id * Pep8 fixes * Merging trunk * Refactoring instance\_type\_get\_all * remove keystone url flag * merge trunk, fix conflicts * remove keystone * Include 'type' in XML output * Minor cleanup * Added another unit test * Fixed unit tests with some minor refactoring * Fix the display of swap units in nova manage * Refactored alternate link generation * pep8 fixes * Added function to construct a glance URL and unit test * merge from trunk * convert images that are not 'raw' to 'raw' during caching to node * show swap in Mb in nova manage * Address Soren's comments: \* clean up temp files if an ImageUnacceptable is going to be raised Note, a qemu-img execution error will not clean up the image, but I think thats reasonable. We leave the image on disk so the user can easily investigate. \* Change final 2 arguments to fetch\_to\_raw to not start with an \_ \* use 'env' utility to change environment variables LC\_ALL and LANG so that qemu-img output parsing is not locale dependent. Note, I considered the following, but found using 'env' more readable out, err = utils.execute('sh', '-c', 'export LC\_ALL=C LANG=C && exec "$@"', 'qemu-img', 'info', path) * Add iptables filter rules for dnsmasq (lp:844935) * create disk.local the same way ephemerals are created (LP: #851145) * merge with trunk r1601 * fix call to gettext * Fixed --uuid network command in nova-manage to desc to "uuid" instead of "net\_uuid" * removes warning set forth in d3 for deprecated setting of bridge automagically * Update migration 047 to dynamically lookup the name of the instance\_id fkey before dropping it. We can't hard code the name of the fkey since we didn't name it explicitly on create * added to authors cuz trey said I cant patch otherwise! * Fixed --uuid network command in nova-manage to desc to "uuid" instead of "net\_uuid" * merged with trunk * Update migration 047 to dynamically lookup the name of the instance\_id fkey before dropping it. We can't hard code the name of the fkey since we didn't name it explicitly on create * oops, add project\_id and 'servers' to next links * Fixes migration for Mysql to drop the FK on the right table * Reverted some changes to instance\_get\_all\_by\_filters() that was added in rev 1594. An additional argument for filtering on instance uuids is not needed, as you can add 'uuid: uuid\_list' into the filters dictionary. Just needed to add 'uuid' as an exact\_match\_filter. This restores the filtering to do a single DB query * fix syntax error in exception, remove "Dangerous!" comment * merged trunk and resolved conflict * run the alter on the right table * fix unrelated pep8 issue in trunk * use dictionary format for exception message * fix a test where list order was assumed * Removed the extra code added to support filtering instances by instance uuids. Instead, added 'uuid' to the list of exact\_filter\_match names. Updated the caller to add 'uuid: uuid\_list' to the filters dictionary, instead of passing it in as another argument. Updated the ID to UUID mapping code to return a dictionary, which allows the caller to be more efficient... It removes an extra loop there. A couple of typo fixes * Reworked the export command to be nova-manage shell export --filename=somefile * Adds the ability to automatically confirm resizes after the \`resize\_confirm\_window\` (0/disabled by default) * use '\_(' for exception messages * PEP8 cleanup * convert images that are not 'raw' to 'raw' during caching to node * now raising instead of setting bridge to br100 and warning as was noted * \* Remove the foreign key and backrefs tying vif<->instance \* Update instance filtering to pass ip related filters to the network manager \* move/update tests * Adds an optional flag to force dhcp releases on instance termination. This allows ips to be reused without having to wait for the lease to timeout * remove urllib import * Fixing case where OSAPI server create would return 500 on malformed body * Fix the issue with the new dnsmasq where it tries and fails to bind to ipv6 addresses * Merging trunk * Renaming progress migration to 47 * merge with trunk * Added unit test * Corrected the status in DB call * don't try to listen on ipv6 addresses, or new dnsmasq goes boom * make our own function instead of using urllib.urlencode since we apparently don't suppor urlencoded strings yet * Merged trunk * remove unused import * merge the sknurt * remove the polymorph * Fix typo in comment * Fixes the handling of snapshotting in libvirt driver to actually use the proper image type instead of using raw for everything. Also cleans up an unneeded flag. Based on doude's initial work * merge with trunk * removing extra newline * catching AttributeError and adding tests * Remove vestigial db call for fixed\_ips * Fixes the user credentials for installing a config-drive from imageRef * Some Linux systems can also be slow to start the guest agent. This branch extends the windows agent timeout to apply to all systems * remove extra line * get the interface using the network and instance * flag typo * add an optional flag to force dhcp release using dnsmasq-utils * Fix user\_id, project\_id reference for config\_drive with imageRefs * Fix a bug that would make spawning new instances fail if no port/protocol is given (for rules granting access for other security groups) * When swap is specified as block device mapping, its size becomes 0 wrongly. This patch make it set to correct size according to instance\_type * Fix pep8 issues * fixed grant user, added stdout support * This changes the interpretation of 'swap' for an instance-type to be in MB rather than GB * Fixing list prepend * Merging trunk * create disk.local the same way ephemerals are created (LP: #851145) * Fix failing test * Authorize to start a LXC instance withour, key, network file to inject or metadata * Update the v1.0 rescue admin action and the v1.1 rescue extension to generate 'adminPass'. Fixes an issue where rescue commands were broken on XenServer. lp#838518 * pep8 * merge the trunks * update tests to return fake\_nw\_info that is valid for the pre\_live\_migrate * make sure to raise since the tests require it * Pep8 Fix * Update test\_volumes to use FLAGS.password\_length * Zero out the progress when beginning a resize * Adding migration progress * Only log migration info if they exist * remove getting fixed\_ips directly from the db * removed unused import * Fixes libvirt rescue to use the same strategy as xen. Use a new copy of the base image as the rescue image. It leaves the original rescue image flags in, so a hand picked rescue image can still be used if desired * Fixing tests, PEP8 failures * fix permissions * Add a FakeVirDomainSnapshot and return it from snapshotCreateXML. Fixes libvirt snapshot tests * merge the trunks * Merged trunk * I am using iputils-arping package to send arping command. You will need to install this package on the network nodes using apt-get command apt-get install iputils-arping * Removed sudo from the arguments * Add a FakeVirDomainSnapshot and return it from snapshotCreateXML. Fixes libvirt snapshot tests * merge from trunk * Make sure grantee\_group is eagerly loaded * Merged trunk * compute/api: swap size issue * Update exception.wrap\_exception so that all exceptions (not just Error and NovaException types) get logged correctly * Removes the on-disk internal libvirt snapshot after it has been uploaded to glance * cleaned up * remove debugging * Merging trunk * Allowing resizes to the same machine * trunk merge * updates Exception.NoMoreFixedIps to subclass NovaException instead of Error * NoMoreFixedIps now subclasses NovaException instead of Error * merge trunk * was trying to create the FK when Should have been dropping * pep8 * well since sqlalchemy-migrate and sqlalchemy can't agree on what the FK is called, we fall back on just manually dropping it * tests working again * the table is the table for the reason its a table * uhh dialect doesn't exist, beavis * update comment * if no public-key is given (--key), do not show public-keys in metadata service * it merges the trunk; or else it gets the conflicts again * exceptions properly passed around now * merge with trunk at revno 1573 * add the fake\_network Manager to prevent rpc calls * This makes the OS api extension for booting from volumes work. The \_get\_view\_builder method was replaced in the parent class, but the BootFromVolume controller was not updated to use the new method * remove undedded imports and skips * pep8 fixes * Added a unit test * pass-through all other parameters in next links as well * update for the id->uuid flip * Merged trunk * Adding flavor extra data extension * Merged trunk * fix test * revert last change * Added virt-level support for polling unconfirmed resizes * build the query with the query builder * Removing toprettyxml from OSAPI xml serialization in favor of toxml * use uuids everywhere possible * make sure to use the uuid * update db api for split filterings searches * update tests * delete the internal libvirt snapshot after it is saved to glance * cleanup prints in tests * cleanup prints in tests * Add a simple test for the OS boot from volume api * get rid of debugs * Merged from trunk and resolved conflicts * Execute arping command using run\_as\_root=True instead of sudo * Return three rules for describe\_security\_groups if a rule refers to a foreign group, but does not specify protocol/port * pep8 issues * added xml support for servers\_list in response with tests * Merged trunk * added servers\_links in v1.1 with tests * added build\_list to servers controllers and view builder and kept all old tests passing * The 1.1 API specifies that two vendor content types are allowed in addition to the standard JSON and XML content types * pep8 * tests are back * PEP8 fix * Adding progress * In the unlikely case of an instance losing a host, make sure we still delete the instance when a forceDelete is done * 0 for the instance id is False ;) * Cleanup state management to use vm\_state instead of task\_state Add schedule\_delete() method so delete() actually does what it says it does * merge trunk * write out xml for rescue * fix up the filtering so it does not return duplicates if both the network and the db filters match * fix rescue to use the base image, reset firewall rules, and accept network\_info * make sure to pass in the context * move the FakeNetworkManager into fake\_network * Fix issue where floating ips don't get recreated when a network host reboots * ip tests were moved to networking * add tests * fix typo * allow matching on fixed\_ip without regex and don't break so all results are reported * add case where vif may not have an instance\_id associated with it * fix typo * Initial pass at automatically confirming resizes after a given window * Use the correct method to get a builder * merge trunks * pep8 * move ip filtering over to the network side * fix pep8 whitespace error * add necessary fields to flavor.rng schema * get all the vifs * get all the vifs * make sure we are grabbing out just the ids * flavor\_elem.setAttribute -> flavor\_elem.set, flavor -> flavor\_dict * minor changes to credentials for the correct format * Don't report the wrong content type if a mapped type doesn't exist * add stubs for future tests that need to be written * Test both content types for JSON and XML * Remove unnecessary vendor content types now that they are mapped to standard content types automatically * Add copyright * Map vendor content types to their standard content type before serializing or deserializing. This is so we don't have to litter the code with both types when they are treated identically * exporting auth to keystone (users, projects/tenants, roles, credentials) * make xml-api tests pass * update variable name after merge: flavor\_node -> flavor\_elem * resolve conflicts / merge with trunk revno 1569 * Fixes an issue where 'invalid literal for int' would occur when listing images after making a v1.1 server snapshot (with a UUID) * fixed tests * removing toprettyxml * add attributes to xml api * Remove debugging * Update test\_libvirt so that flags and fakes are used instead of mocks for utils.import\_class and utils.import\_object. Fixes #lp849329 * fix the test so that it fakes out the network * fix white space for pep8 * fix test\_extensions test to know of new extension FlavorExtraData * add extension description for FlavorExtraData * Adding migration for instance progress * Make tests pass * no need for the instance at all or compute * bump the migration * remove unused import, make call to network api to get vifs for the instance * merge the trunk * skip a bunch of tests for the moment since we will need to rework them * remove the vif joins, some dead code, and the ability to take in some instances for filtering * allow passing in of instances already * run the instances filter through the network api first, then through the db * add get\_vifs\_by\_instance and stub get\_instance\_ids\_by\_ip\_filter * change vifs to rpc call and add instance ids by ip * Multi-NIC support for vmwareapi virt driver in nova. Does injection of Multi-NIC information to instances with Operating system flavors Ubuntu, Windows and RHEL. vmwareapi virt driver now relies on calls to network manager instead of nova db calls for network configuration information of instance. Re-oranized VMWareVlanBridgeDriver and added session parmeter to methods to use existing session. Also removed session creation code as session comes as argument. Added check for flat\_inject flag before attempting an inject operation * last of the api.openstack.test\_images merge fixes * pep8 fixes * trunk merge * makes sure floating addresses are associated with host on associate so they come back * Deprecate aoe in preperation for removal in essex * Only allow up to 15 chars for a Windows hostname * pep8 * deprecate aoe * Fix instance rebooting (lp847604) by correcting a malformed cast in compute.api and an incorrect method signature in the libvirt driver * Fix mismerge * make tests pass * This patch teaches virt/libvirt how to format filesystem on ephemeral device depending on os\_type so that the behaviour matches with EC2's. Such behaviour isn't explicitly described in the documentation, but it is confirmed by checking realy EC2 instances. This patch introduces options virt\_mkfs as multistring. Its format is --virt\_mkfs== When creating ephemeral device, format it according to the option depending on os\_type. This addresses the bugs, https://bugs.launchpad.net/nova/+bug/827598 https://bugs.launchpad.net/nova/+bug/828357 * Test new vendor content types as well * Only allow up to 15 chars for a Windows hostname * Split accept tests to better match the name of the test * Remove debugging print * Inject hostname to xenstore upon creation * Update test\_libvirt so that flags and fakes are used instead of mocks for utils.import\_class and utils.import\_object. Fixes #lp849329 * interpret 'swap' to be in MB, not in GB * Actually test expected matches received * Test new content-types * This branch changes XML Serializers and their tests to use lxml.etree instead of minidom * add additional data to flavor's ViewBuilder * Inject hostname to xenstore upon creation * drop the virtual\_interfaces key back to instances * - remove translation of non-recognized attributes to user metadata, now just ignored - ensure all keys are defined in image dictionaries, defaulting to None if glance client doesn't provide one - remove BaseImageService - reorganize some GlanceImageService tests * And again * Update MANIFEST.in to match directory moves from rev1559 * we're back * Update MANIFEST.in to match directory moves from rev1559 * Moving tests/test\_cloud.py to tests/api/ec2/test\_cloud.py. They are EC2-specific tests, so this makes sense * Same as last time * Made tests version version links more robust * PEP8 cleanup * PEP8 cleanup * PEP8 cleanups * zone manager tests working * fixing import * working on getting tests back * relocating ec2 tests * merging trunk; resolving conflicts * Correctly map image statuses from Glance to OSAPI v1.1 * pep8 fixes in nova/db/sqlalchemy/api.py and nova/virt/disk.py * Add support for vendor content types * pep8 fixes * merging trunk; resolving conflicts * Update GlanceClient, GlanceImageService, and Glance Xen plugin to work with Glance keystone * Fix typo (woops) * pep8 fix * Some arches dont have dmidecode, check to see if libvirt is capable of running rather getInfo of the arch its running on * merging parent branch lp:~rackspace-titan/nova/glance-client-keystone * adding tests for deleted and pending\_delete statuses * Fixes rogue usage of sudo that crept in * fixups * remove unused dep * add test for method sig * parent merge * migration move * bug fixes * merging trunk * Fixes shutdown of lxc containers * Make quoting consistent * Fix rogue usage of 'sudo' bypassing the run\_as\_root=True method * trunk merge * region name * tweaks * fix for lp847604 to unbreak instance rebooting * use 'qemu-image resize' rather than 'truncate' to grow image files * When vpn=true in allocate ip, it attempts to allocate the ip that is reserved in the network. Unfortunately fixed\_ip\_associate attempts to ignore reserved ips. This fix allows to filter reserved ip address only when vpn=True * Do not require --bridge\_interface for FlatDHCPManager (lp:844944) * Makes nova-vncproxy listen for requests on the queue like it did before the bin files were refactored * Update GlanceClient, GlanceImageService, and Glance Xen plugin to work with Glance keystone * api/ec2/ebs: make metadata returns correct swap and ephemeral0 * api/ec2: make get\_metadata() return correct mappings * virt/libvirt: format ephemeral device and add fs label when formating ext3 fs * Fix spelling mistake * Stock zones follows a fill-first methodology—the current zone is filled with instances before other zones are considered. This adds a flag to nova to select a spread-first methodology. The implementation is simply adding a random.shuffle() prior to sorting the list of potential compute hosts by weights * Pass reboot\_type (either HARD or SOFT) to the virt layers from the API * merging trunk * fixing image status mapping * don't need random in abstract\_scheduler.py anymore.. * pull-up from trunk; move spread\_first into base\_scheduler.py * trunk merge * adding auth tokens to child zone calls * Add comment to document why random.shuffle() works * Merged trunk * Make whitespace consistent * Use triple quotes for docstrings to be consistent * Remove the unnecessary sudo from qemu-img as it is unneeded and doesn't work with our current packaging * Remove chanes\_since and key\_name from basic server entity * Merged trunk * remove extra line for pep8 * remove unnecessary qemu-img flag, use base image type by default * shorten comment to < 79 chars * merged rbp * remove sudo from qemu-img commands * adds a fake\_network module to tests to generate sensible network info for tests. It does not require using the db * Adding a can\_read\_deleted filter back to db.api.instance\_get\_all\_by\_filters that was removed in a recent merge * removing key\_name and config\_drive from non-detailed server entity * Authorize to start a LXC instance withour, key, network file to inject or metadata * Open Essex (switch version to 2012.1) * Last Diablo translations for Nova * Open Essex (switch version to 2012.1) * Last Diablo translations * pep 8 * Fixing security groups stuff * put key into meta-data, not top level 'data' * metadata key is 'public-keys', not 'keys' * fix for lp844364: fix check for fixed\_ip association in os-floating-ips * if no public-key is given (--key), do not show public-keys in metadata service * NetworkManager's add\_fixed\_ip\_to\_instance calls \_allocate\_fixed\_ips without vpn or requested\_networks parameters. If vpn or requested\_networks is not provided to the \_allocate\_fixed\_ips method, it throws an exception. This issue is fixed now * Merged trunk * First pass at adding reboot\_type to reboot codepath * child zone queries working with keystone now * Added docstring to explain usage of reserved keyword argument * One more bug fix to make zones work in trunk. Basic problem is that in novaclient using the 1.0 OSAPI, servers.create() takes an ipgroups argument, but when using the 1.1 OSAPI, it doesn't, which means booting instances in child zones won't work with OSAPI v1.0. This fix works around that by using keyword arguments for all the arguments after the flavor, and dropping the unused ipgroups argument * Fixes the reroute\_compute decorator in the scheduler API so that it properly: * make check for fixed\_ip association more defensive * Fix lp:844155 * Changing a behavior of update\_dhcp() to write out dhcp options file. This option file make dnsmasq offer a default gateway to only NICs of VM belonging to a network that the first NIC of VM belongs to. So, first NIC of VM must be connected to a network that a correct default gateway exists in. By means of this, VM will not get incorrect default gateways * merged trunk * merging trunk * merging trunk * merged trunk * Make weigh\_hosts() return a host per instance, instead of just a list of hosts * converting fix to just address ec2; updating test * Do not attempt to mount the swap VDI for file injection * Add a NOTE() * Merged trunk * Use .get instead * Do not attempt to mount the swap VDI for file injection * pull-up from trunk * pull-up from trunk * pull-up from trunk * adding can\_read\_deleted back to db api * Clean up shutdown of lxc containers * Cleanup some more comments * Cleanup some comments * fixes vncproxy service listening on rabbit * added tests for failure cases talking with zones * This code contains contains a new NetworkManager class that can leverage Quantum + Melange * comment fix * typo trying to raise InstanceNotFound when all zones returned nothing * create a new exception ZoneRequestError to use for returning errors when zone requests couldn't complete * pep8 fix for tests/api/openstack/test\_servers.py which is an issue in trunk * catch exceptions from novaclient when talking to child zones. store them and re-raise if no other child zones return any results. If no exceptions are raised but no results are returned, raise a NotFound exception * added test to cover case where no local hosts are available but child hosts are * remove the short circuit in abstract scheduler when no local hosts are available * fix for lp844364: improve check for fixed\_ip association * Ensure restore and forceDelete don't do anything unless the server is waiting to be reclaimed * actually shuffle the weighted\_hosts list.. * Check task\_state for queued delete * spread-first strategy * Make sure instance is deleted before allowing restore or forceDelete * Add local hostname to fix Authors test * delete\_instance\_interval -> reclaim\_instance\_interval * PEP8 cleanup * Restart compute with a lower periodic\_interval to make test run faster * merge trunk * properly handle the id resetters * removed vestige * pull-up from trunk * fix a couple of typos in the added unit test * modified unit tests, set use\_single\_default\_gateway flag to True whereever needed instead of setting it in the init method * exclude net tag from host\_dhcp if use\_single\_default\_gateway flag is set to false * forgot \_id * had used wrong variable * Fixes a case where if a VIF is returned with a NULL network it might not be able to be deleted. Added test case for that fix * Fix for LP Bug #837867 * weigh\_hosts() needs to return a list of hosts for the instances, not just a list of hosts * Merged trunk * Set flat\_injected to False by default * changed the fixed\_ip\_generator * PEP8 cleanup * Wait longer for all agents, not just Windows * merged trunk * updated floating\_ip generation * Tests for deferred delete, restore and forceDelete * An AMI image without ramdisk image should start * Added use\_single\_default\_gateway to switch from multiple default gateways to single default gateway * Fixed unit test * reverting change to GlanceImageService.\_is\_image\_available * At present, the os servers.detail api does not return server.user\_id or server.tenant\_id. This is problematic, since the servers.detail api defaults to returning all servers for all users of a tenant, which makes it impossible to tell which user is associated with which server * reverting xenapi change * Micro-fix; "exception" was misspelled as "exceptions" * Fix a misspelling of "exception" * revert changes to display description * merged trunk * novaclient v1\_0 has an ipgroups argument, but novaclient v1\_1 doesn't * Set flat\_injected to False by default * Fixes an issue where 'invalid literal for int' would occur when listing images after making a v1.1 server snapshot (with a UUID) * further cleanup * Default to 0 seconds (off) * PEP8 cleanups * Include new extension * Implement deferred delete of instances * trunk merge * cleaning up tests * zone name not overwritten * Update the v1.0 rescue admin action and the v1.1 rescue extension to generate 'adminPass'. Fixes an issue where rescue commands were broken on XenServer. lp#838518 * fix a mistaking of dataset and expected values on small test * fix a mistaking of deletion in ensure\_floating\_forward * revert codes for db * correct a method to collect instances from db add interface data to test * added me to Authors * meeging trunk * format for pep8 * format for pep8 * implement unit test for linux\_net * Adjust test\_api to account to multiple rules getting returned for a single set rule * Clean up security groups after use * Make a security group rule that references another security group return ipPermission for each of tcp, udp, and icmp * Multi-NIC support for vmwareapi virt driver in nova. Does injection of Multi-NIC information to instances with Operating system flavors Ubuntu, Windows and RHEL. vmwareapi virt driver now relies on calls to network manager instead of nova db calls for network configuration information of instance. Ensure if port group is properly associated with vlan\_interface specified in case of VLAN networking for instances. Re-oranized VMWareVlanBridgeDriver and added session parmeter to methods to use existing session. Also removed session creation code as session comes as argument. Added check for flat\_inject flag before attempting an inject operation. Removed stale code from vmwareapi stubs. Also updated some comments to be more meaningful. Did pep8 and pylint checks. Tried to improve pylint score for newly added lines of code * Fix bug #835919 that output a option file for dnsmasq not to offer a default gateway on second vif * Accidentally added instance to security group twice in the test. Fixed * Minor cleanup * Fixing xml serialization of limits resource * correct floating ip id to increment in fake\_network * Add iptables filter rules for dnsmasq * Merged trunk * Change non E ascii characte * Launchpad automatic translations update * Instance record is not inserted in db if the security group passed to the RunInstances API doesn't exists * Added unit tests to check instance record is not inserted in db when security groups passed to the instances are not existing * removed unneeded import * rick nits * alex meade issues * Added list of security groups to the newly added extension (Createserverext) for the Create Server and Get Server detail responses * default description to name * use 'qemu-image resize' rather than 'truncate' to grow image files * remove extra description stuff * fix pep8 violation * feedback from jk0's review, including removing a lot of spaces from docstrings * revert description changes, use metadata['description'] if it is set to populate field in db * merged trunk * change db migrate script again to match other similar scripts * Fix for LP Bug #839269 * move networks declarations within upgrade/downgrade methods * more review cleanup * remove import of 'fake' from nova manager, now that we've moved that to test\_quantum.py * Fixes a small bug which causes filters to not work at all. Also reworks a bit of exception handling to allow the exception related to the bug to propagate up * Email error again. Tired * Email error * Fixed review comments * Add documentation comment * pull-up from trunk * Forgot to handle return value * Add tests for flags 'snapshot\_image\_format' * Update snapshot image metada 'disk\_format' * Add flag 'snapshot\_image\_format' to select the disk format of the snapshot image generated with the libvirt driver * missing migration * Email contact error * Update Authors file * Merged trunk * Correct tests associated * Fix protocol-less security groups * Adding feedparser to pip-requires * Removing xml functions that are no longer called * Launchpad automatic translations update * Glance can now perform its own authentication/authorization checks when we're using keystone * import filters in scheduler/host\_filter.py so default\_host\_filter gets added to FLAGS; rework SchedulerManager() to only catch missing 'schedule\_' attribute and report other missing attributes * move content of quantum/fake.py to test\_quantum.py in unit testing class (most original content has been removed anyway) * melange testing cleanup, localization cleanup * remove references to MelangeIPAMTest, as they cannot be used yet * Deleted debug messages * Resolved conflicts and fixed pep8 errors * Fix a few references to state\_description that slipped through * added unit tests and cleanup of import statements * renamed fake\_network\_info.py * trunk merge * moved cidr\_v6 back * Probably shouldn't leave that commented out * Added test for NULL network * Fixed lp835242 * Fixes for minor network manager issues centered around deleting/accessing instances which don't have network information set * remove extra references to state\_description * pull-up from trunk * merge unit test from Chris MacGown * Adds test for image.glance.GlanceImageService.\_is\_image\_available * - implements changes-since for servers resource - default sort is now created\_at desc for instances * undo change in setting q\_tenant\_id in quantum\_manager.create\_network * additional review cleanup * docstring cleanup * merging trunk * Fixes NotFound exceptions to show the proper instance id in the ec2 api * typo * more review cleanup * another commit from brad * add specific exceptions for quantum client. Fix doc-strings in client.py * merge brad's changes that address most review feedback * fix for lp838583 - fixes bug in os-floating-ips view code that prevents instance\_id from being returned for associated addresses * Accept keypair when you launch a new server. These properties would be stored along with the other server properties in the database (like they are currently for ec2 api) * Launchpad automatic translations update * merge trunk, fix tests * fix for lp838583 - return instance\_id for associated floating\_ips, add test * removing unnecessary imports * remove BaseImageService * pep8 * move GlanceImageService tests to proper module; remove translation of non-standard image attributes to properties; ensure all image properties are available, defaulting to None if not provided * merge trunk * Add comment for an uncommon failure case that we need to fix * Fix for LP Bug #838466 * Correctly yield images from glance client through image service * Simple usage extension for nova. Uses db to calculate tenant\_usage for specified time periods * Fix for LP Bug #838251 * merge trunk, fix conflict * Validates that user-data is b64 encoded * Updated VersionsAtomSerializer.index to use lxml.etree to generate atom feed * remove extra test * merged trunk * Fixed and improved the way instance "states" are set. Instead of relying on solely the power\_state of a VM, there are now explicitly defined VM states and VM task states which respectively define the current state of the VM and the task which is currently being performed by the VM * Updating test for xml to use lxml * expect key\_name attribute in 1.1 * change to use \_get\_key\_name to retrieve the key * Implements lp:798876 which is 'switch carrot to kombu'. Leaves carrot as the default for now... decision will be made later to switch the default to kombu after further testing. There's a lot of code duplication between carrot and kombu, but I left it that way in preparation for ripping carrot out later and to keep minimal changes to carrot * Disassociated previously associated floating ips when calling network\_api.associate\_floating\_ip. Also guard against double-association in the network.manager * adding support for limiting in image service; updating tests with fixture ids and marker support * trunk merge * merging trunk * fix keypairs stubs * add explicit message for NoMoreFloatingIps exception * fix for chris behrens' comment - move tenant\_id => project\_id mapping to compute.api.get\_all * moved key\_name per review * zone\_add fixed to support zone name * kludge for kombu 1.1.3 memory transport bug * merged trunk * Removed extraneous import and s/vm\_state.STOP/vm\_states.STOPPED/ * Merged trunk * Code cleanup * Use feedparser to parse the generated atom feeds in the tests for the versions resource * add test to verify 400 response when out of addresses * switched default to kombu per vishy * use kombu.connection.BrokerConnection vs kombu.connection.Connection so that older versions of kombu (1.0.4) work as well as newer * fix FloatingIpAlreadyInUse to use correct string pattern, convert ApiErrors to 400 responses * Fix for LP Bug #782364 * Fix for LP Bug #782364 * more logging info to help identify bad payloads * Removed test\_parallel\_builds in the XenAPI tests due to it frequently hanging indefinitely * logging change when rpc pool creates new connection * pep8 fix * make default carrot again and delay the import in rpc/\_\_init\_\_.py * Removed debug messages * Fix for LP Bug #837534 * add kombu to pip-requires and contrib/nova.sh * restore old way FLAGS.rpc\_backend worked.. no short name support for consistency * fix remaining tests * Update RequestContext so that it correctly sets self.is\_admin from the roles array. Additionally add a bit of code to ignore case as well * pep8, fix fakes * fix a bunch of direct usages of db in compute api * make two functions instead of fast flag and add compute api commands instead of hitting db directly * fixing bug * fixing short-ciruit condition * yielding all the images * merged trunk * changing default sort to created\_at * The exception 'RamdiskNotFoundForImage' is no longer used * With OS API, if the property 'ramdisk\_id' isn't set on the AMI image, Nova can not instantiate it. With EC2 API, the AMI image can be instantiate * adding an assert * Use getCapabilities rather than getInfo() since some versions of libvirt dont provide dmi information * supporting changes-since * Fix a bad merge on my part, this fixes rebuilds\! * disassociate floating ips before re-associating, and prevent re-association of already associated floating ips in manager * Update RequestContext so that it correctly sets self.is\_admin from the roles array. Additionally add a bit of code to ignore case as well * Merged trunk * remove unneeded connection= in carrot Consumer init * pep8 fix for test\_rpc\_common.py * fix ajax console proxy for new create\_consumer method * doc string cleanup * created nova/tests/test\_rpc\_common.py which contains a rpc test base class so we can share tests between the rpc implementations * ditched rpc.create\_consumer(conn) interface... instead you now do conn.create\_consumer(. * Update the EC2 ToToken middleware to use eventlet.green.httplib instead of httplib2. Fixes issues where the JSON request body wasn't getting sent to Keystone * remove brackets from mailmap entry * access db directly in networkmanagers's delete\_network method, so stubbed test call works correctly * more logging info to help identify bad payloads * In the XenAPI simulator, set VM.domid, when creating the instance initially, and when starting the VM * remove 'uuid' param for nova-manage network delete that I had add previously * add alias to mailmap * update file name for db migrate script after merge (again) * update file name for db migrate script after merge * merged trunk * Fixes this bug by removing the test. The test has no asserts and seems to be raising more problems than it could solve * Removed test\_parallel\_builds * Merged trunk * Increased migration number * Fixes lp:813864 by removing the broken assert. The assert was a check for isinstance of 'int' that should have been 'long'. But it doesn't appear this assert really belongs, anyway * Merged trunk * Adds assertIn and assertNotIn support to TestCase for compatibility with python 2.6 This is a very minimal addition which doesn't require unittest2 * support the extra optional arguments for msg to assertIn and assertNotIn * removed broken assert for abstract\_scheduler * pep8 fixes * fix for assertIn and assertNotIn use which was added in python 2.7. this makes things work on 2.6 still * merge trunk * restore fixed\_ip\_associate\_pool in nova/db/sqlalchemy.py to its original form before this branch. Figured out how to make unit tests pass without requiring that this function changes * remove unused rpc connections in test\_cloud and test\_adminapi * carrot consumer thread fix * add carrot/kombu tests... small thread fix for kombu * add doc-strings for all major modules * remove fake IPAM lib, since qmanager must now access nova DB directly * Update the EC2 ToToken middleware to use eventlet.green.httplib instead of httplib2. Fixes issues where the JSON request body wasn't getting sent to Keystone * fix nova/tests/test\_test.py * fix nova-ajax-console-proxy * fix test\_rpc and kombu stuff * always set network\_id in virtual\_interfaces table, otherwise API commands that show IP addresses get confused * start to rework some consumer stuff * update melange ipam lib to use network uuid, not bridge * fix issue with setting 'Active' caused by Quantum API changes. Other misc fixes * Bug #835952: pep8 failures do not cause the tests to fail * Start domid's at 1, not 0, to avoid any confusion with dom0 * use 'uuid' field in networks table rather than 'bridge'. Specify project\_id when creating instance in unit test * Bug #835964: pep8 violations in IPv6 code * In the XenAPI simulator, set VM.domid, when creating the instance initially, and when starting the VM * Bug #835952: pep8 failures do not cause the tests to fail * Bug #835964: pep8 violations in IPv6 code * Virtual Storage Array (VSA) feature. - new Virtual Storage Array (VSA) objects / OS API extensions / APIs / CLIs - new schedulers for selecting nodes with particular volume capabilities - new special volume driver - report volume capabilities - some fixes for volume types * fix FALGS typo * changes a few double quotes to be single, as the rest in the vicinity are * Default rabbit max\_retries to forever Modify carrot code to handle retry backoffs and obey max\_retries = forever Fix some kombu issues from cut-n-paste Service should make sure to close the RPC connection * Updated VersionsXMLSerializer and corresponding tests to use lxml * v1.0 of server create injects first users keypair * add tests to verify NotFound exceptions are wrapped with the proper ids * use db layer for aggregation * merged trunk * flag for kombu connection backoff on retries * more fixes * more work done to restore original rpc interfaces * merge changes from brad due to recent quantum API changes * Minor changes based on recent quantum changes * start of kombu implementation, keeping the same RPC interfaces * doubles quotes to single * changed format string in nova-manage * removed self.test ip and \_setup\_networking from libvirt * updated libvirt test * merge trunk * stubbed some stuff in test\_libvirt * removed create\_volumes, added log & doc comment about experimental code * reverted CA files * couple of pep8s * Tiny tweaks to the migration script * updated fake values * updated fake values * Merged trunk and fixed conflicts * updated fake values * updated fake values * forgot ) * update libvirt tests * Update compute API and manager so that the image\_ref is set before spawning the rebuilt instance. Fixes issue where rebuild didn't actually change the image\_id * added debug prints for scheduler * update libvirt * updated instance type fake model * added vcpus to instance flavor test model * added memory\_mb to instance flavor test model * forgot test print statements * misplaced comma.. * Update compute API and manager so that the image\_ref is set before spawning the rebuilt instance. Fixes issue where rebuild didn't actually change the image\_id * Add brad to Authors file * replace accidental deletion in nova-mange * rearrange imports * fix for quantum api changes, change nova-mange to have quantum\_list command * merge brad's fixes * add priority for static networks * driver: added vsa\_id parameter for SN call * merged with rev.1499 * cosmetic cleanup * Updated server and image XML serializers to take advantage of the addresses and metadata serializers * VSA code redesign. Drive types completely replaced by Volume types * merged trunk * Just a couple of small changes I needed to get the migrations working with SQLAlchemy 0.7.x on Fedora 16 * Minor fixes * check log file's mode prior to calling chmod * The fix for run\_iscsiadm in rev 1489 changed the call to use a tuple because values were being passed as tuples. Unfortunately a few calls to the method were still passing strings * Add a set of generic tests for the virt drivers. Update a bit of documentation to match reality * updated LimitsXMLSerializer to use etree and supply the xml declaration * merge underlying fix for testing * merged trunk * updated additional limits test * pep8 * pass all commands to run\_iscsiadm as a tuple * altered fake network model * Updated limits serialization tests to use etree and added limits schema * Test fixup after last review feedback commit * Fix glance image authorization check now that glance can do authorization checks on its own; use correct image service when looking for ramdisk, etc.; fix a couple of PEP8 errors * forget a return * review feedback * Fixed integrated.test\_xml to be more robust * typo * fixed a couple of syntax errors * Add bug reference * updated tests * updated libvirt tests to use fake\_network\_info * Bumped migration number * Merged trunk * Review feedback * pep8 * DRYed up code by moving \_to\_xml into XMLDictSerializer * updated addresses serializer to use etree instead of minidom * Added addresses schema * updated addresses xml serialization tests to use etree instead of minidom * Updated ServerXMLSerializer to use etree instead of minidom * added unit tests to instance\_types for rainy day paths * Reverted two mistakes when looking over full diff * Updated MetadataXMLSerializer to use etree instead of minidom * Added: - volume metadata - volume types - volume types extra\_specs * Added schemas Updated metadata tests to use etree instead of minidom * Servers with metadata will now boot on xenserver with flat\_injected==False * moved import up * Verify resize needs to be set * changing comment * fixing bug * merged trunk * Updated ImagesXMLSerializer to use etree instead of minidom * Set error state when migration prep fails * Removed invalid test * Removed RESIZE-CONFIRM hack * Set state to RESIZING during resizing.. * Merged trunk * Another attempt at fixing hanging test * Once a network is associated with project, I can’t delete this network with ‘nova-manage network delete’. As you know, I can delete network by scrubbing the project with ‘nova-manage project scrub’. However it is too much. The cause of this problem is there is no modify command of network attribute * Update paste config so that EC2 admin API defaults to noauth * merged with volume types (based on rev.1490). no code rework yet * merged with volume\_types. no code refactoring yet * merged with nova 1490 * added new tables to list of DBs in migration.py * removes french spellings to satisfy american developers * added virtio flag; associate address for VSA; cosmetic changes. Prior to volume\_types merge * stub\_instance fix from merge conflict * moved import to the top * fixing inappropriate rubyism in test code * Added fix for parallel build test * Fixed silly ordering issue which was causing tons of test failures * merged trunk * change snapshot msg too * forgot to add new extension to test\_extensions * Add me to Authors * added Openstack APIs for volume types & extradata * Add comments for associate/dissociate logic * Updated ImageXMLSerialization tests to use etree instead of minidom Fixed incorrect server entity ids in tests * Merged from trunk * Add names to placeholders of formatting * The notifiers API was changed to take a list of notifiers. Some people might want to use more than one notifier so hopefully this will be accepted into trunk * use dict.get for user\_id, project\_id, and display\_description in servers view as suggested by ed leaf, so that not all tests require these fields * Updated flavors xml serialization to use lxml instead of minidom * merge trunk, fix tests * fix more tests * Removed unused imports * Updated FlavorsXMLSerialization tests to use etree and validation instead of minidom * Merged from trunk * split test\_modify() into specific unit tests * Added DELETED status to OSAPI just in case * Fixes iscsiadm commands to run properly * Fixed issue where we were setting the state to DELETED before it's actually deleted * merged with rev.1488 * Merged trunk and fixed conflicts * added volume type search by extra\_spec * Fix for trying rebuilds when instance is not active * Fixed rebuild naming issue and reverted other fix which didn't fix anythin * Attempt to fix issue when deleting an instance when it's still in BUILD * Fix default hostname generator so that it won't use underscores, and use minus signs instead * merged with 1487 * pep8 compliant * Merged from trunk * - rebuilds are functional again - OSAPI v1.1 rebuild will accept adminPass or generate a new one, returning it in a server entity - OSAPI v1.0 will generate a new password, but it doesn't communicate it back to the user * Fix flag override in unit test * merged with rev.1485 * add rainy day test to to\_global fixed to\_global to catch correct error from incorrect mac addresses * Let's be more elegant * similar to lp828614: add rainy day test and fix exception error catch to AddrFormatError * check log file mode prior to chmod * added unit tests for version.py * Merged trunk * Fix for migrations * Conversion to SQLAlchemy-style * dict formatting * Commit without test data in migration * Commit with test data in migration * Do not require --bridge\_interface for FlatDHCPManager * Fix quotas migration failure * Fix flavorid migration failure * fixed indentation * adding xml serialization and handling instance not found * removing extraneous imports * pep8 * Thou shalt not use underscores in hostnames * Catch exception for instances that aren't there * pep8 fixes * Couple of fixes to the review feedback changes * Launchpad automatic translations update * Address code review feedback from Rick and Matt * removing print statement * added volume metadata APIs (OS & volume layers), search volume by metadata & other * Update paste config so that EC2 admin API defaults to noauth * cleanup * updating tests * fix iscsi adm command * Fix pep8 * Merged from trunk * added volume\_types APIs * Fix not found exceptions to properly use ec2\_ips for not found * Stub out the DB in unit test. Fix 'nova-manage network modify' to use db.network\_update() * rebuilds are functional again * Adds a use\_deprecated\_auth flag to make sure creds generated using nova-manage commands will work with noauth * Merged from upstream * Fixed some pep8 and pylint issues * Forgot to set the flag for the test * I added notifications decorator for each API call using monkey\_patching. By this merge, users can get API call notification from any modules * Fixes bug that causes 400 status code when an instance wasn't attached to a network * fix for rc generation using noauth * Fixed doc string * Merged from upstream * Switched list\_notifier to log an exception each time notify is called, for each notification driver that failed to import * updating tests * merging trunk * Fixed some docstring Added default publisher\_id flagw * Removed blank line * Merged with trunk * Fixed typo and docstring and example class name * Updated migration number * Move use\_ipv6 into flags. Its used in multiple places (network manager and the OSAPI) and should be defined at the top level * Merged trunk * PEP8 fixes * 'use the ipv6' -- 'use ipv6' * Move use\_ipv6 into flags. Its used in multiple places (network manager and the OSAPI) and should be defined at the top level * Refresh translations * This branch does the final tear out of AuthManager from the main code. The NoAuth middlewares (active by default) allow a user to specify any user and project id through headers (os\_api) or access key (ec2\_api) * Implements first-pass of config-drive that adds a vfat format drive to a vm when config\_drive is True (or an image id) * Launchpad automatic translations update * pulling all qmanager changes into a branch based on trunk, as they were previously stacked on top of melange * Moved migration and fixed tests from upstream * Merged trunk * Added the fixes suggested by Eric Windisch from cloudscaling.. * removing unnecessary tthing * merge trunk, resolve conflicts, fix tests * unindented per review, added a note about auth v2 * Our goal is to add optional parameter to the Create server OS 1.0 and 1.1 API to achieve following objectives:- * fixing exception logging * Fixes bug 831627 where nova-manage does not exit when given a non-existent network address * Move documentation from nova.virt.fake into nova.virt.driver * initial cut on volume type APIs * fix pep8 issue * Change parameters of 'nova-manage network modify'. Move common test codes into private method * Merged from trunk,resolved conflicts and fixed broken unit tests due to changes in the extensions which now include ProjectMapper * xml deserialization, and test fixes * syntax * update test\_network test\_get\_instance\_nw\_info() * remove extra spaces * Fixed conflict with branch * merged trunk * The FixedIpCommandsTestCase in test\_nova\_manage previously accessed the database. This branch stubs out the database for these tests, lowering their run time from 104 secs -> .02 secs total * some readability fixes per ja feedback * fix comment * Update a few doc strings. Address a few pep8 issues. Add nova.tests.utils which provides a couple of handy methods for testing stuff * Make snapshot raise InstanceNotRunning when the instance isn't running * change NoAuth to actually use a tenant and user * Added Test Code, doc string, and fixed pip-requiresw * Merged trunk * Ensure that reserve and unreserve exit when an address is not found * Simple usage extension for nova. Uses db to calculate tenant\_usage for specified time periods * Stubbed out the database in order to improve tests * logging as exception rather than error * Merged from upstream * Changed list\_notifier to call sys.exit if a notification driver could not be found * merged trunk * implemented tenant ids to be included in request uris * Add a generic set of tests for hypervisor drivers * Upstream merge * Added ability to detect import errors in list\_notifier if one or more drivers could not be loaded * Fix pep8 * delete debug code * Fixes for a number of tests * Use 'vm\_state' instead of 'state' in instance filters query * Merged with Dan to fix some EC2 cases * Add 'nova-manage network modify' command * Fixes/updates to make test\_cloud pass * Fix scheduler and integrated tests * Update migration number * Merged with Dan * Merged task\_state -> task\_states and fixed test\_servers test * Update virt/fake to correct power state issue * fix test\_servers tests * update test\_security\_group tests that have been added * Merged trunk * Renamed task\_state to task\_states.. * Ec2 API updates * merge with trunk * Fixing merge conflicts * Launchpad automatic translations update * Adds accessIPv4 and accessIPv6 to servers requests and responses as per the current spec * adding import * Fixes utils.to\_primitive (again) to handle modules, builtins and whatever other crap might be hiding in an object * fixing bug lp:830817 * added test for bad project\_id ... although it may not be used * added exception catch and test for bad project\_id * added exception catch for bad prefix and matching test * added exception catch and test for bad prefix * comment strings * added unit tests for versions.py * Added OS APIs to associate/disassociate security groups to/from instances * add/remove security groups to/from the servers as server actions * lp:828610 * removed leftover netaddr import * added rainy day test for ipv6 tests. fixed ipv6.to\_global to trap correct exception * Merged from trunk * pep8 * improve test coverage for instance types / flavors * Launchpad automatic translations update * Assorted fixes to os-floating-ips to make it play nicely with an in-progress novaclient implementation, as well as some changes to make it more consistent with other os rest apis. Changes include: * finished fake network info, removed testing shims * updated a maths * updated a maths * Merged trunk * Lots of modifications surrounding the OSAPI to remove any mention of dealing with power states and exclusively using vm\_states and task\_state modules. Currently there are still a number of tests failing, but this is a stopping place for today * who cares * added return * Merged from trunk and fixed review comments * fixed formatting string * typo * typo * typo * typo * typo * typo * added fake network info * Fixed review comments * Fixed typo * better handle malformed input, and add associated tests * Fixed typo * initial committ * Fixed NoneType returned bugw * merged trunk * Updated accessIPv4 and accessIPv6 to always be in a servers response * Fixed mistake on mergew * tweak to comment * Merged with trunkw * a few tweaks - remove unused member functions, add comment * incorporate feedback from brian waldon and brian lamar. Move associate/disassociate to server actions * merge from trunk * pep8 * Finished changing ServerXMLSerializationTest to use XML validation and lxml * Added monkey patching notification code function w * Updated test\_show in ServerXMLSerializationTest to use XML validation * vm\_state --> vm\_states * Next round of prep for keystone integration * merge from trunk * Removes the incorrect hard-coded filter path * Revert irrelevant changes that accidentally crept into this patch :( * add tenant\_id to api. without tenant\_id, admins can't tell which servers belong to which tenants when retrieving lists * Merged from trunk * Fixes primitive with builtins, modules, etc * fix test\_virtual interfaces for tenant\_id stuff * fix test\_rescue tests for tenant\_id changes * Fix unit test for the change of 'nova-manage network list' format * Add copyright notices * merged trunk * Define FLAGS.default\_local\_format. By default it's None, to match current expected \_create\_local * Fix config\_drive migration, per Matt Dietz * updated migration number * merge with trunk * Bump migration number * pep8 * Start improving documentation * Added uuid column in virtual\_interfaces table, and an OpenStack extension API for virtual interfaces to expose these IDs. Also set this UUID as one of the external IDs in the OVS vif driver * Move documentation from nova.virt.fake to nova.virt.driver * add key\_name/data support to server stub * add user\_id and description. without user\_id, there is no way for a tenant to tell which user created the server. description should be added for ec2 parity * merge * Bugfix for lp 828429. Its still not clear to me exactly how this code path is actually invoked when nova is used, so I'm looking for input on whether we should be adding a test case for this, removing the code as unused, etc. Thanks * remove security groups, improve exception handling, add tests * Merged trunk * merged trunk * Currently, rescue/unrescue is only available over the admin API. Non-admin tenants also need to be able to access this functionality. This patch adds rescue functionality over an API extension * Makes all of the binary services launch using the same strategy.  \* Removes helper methods from utils for loading flags and logging  \* Changes service.serve to use Launcher  \* Changes service.wait to actually wait for all the services to exit  \* Changes nova-api to explicitly load flags and logging and use service.serve \* Fixes the annoying IOError when /etc/nova/nova.conf doesn't exist * tests pass * Fixes issue where ServersXMLSerializer was missing a method for update actions * follow same pattern as userdata (not metadata apporach) * rename the test method * Updated docs for the recent scheduler class changes * Passes empty string instead of None to MySQLdb driver if the DB password isn't set * merged trunk * added volume metadata. Fixed test\_volume\_types\_extra\_specs * declare the use\_forwarded\_for flag * merge trunk * Fixes lp828207 * Added unit test * allow specification of key pair/security group info via metadata * Fixed bug in which DescribeInstances was returning deleted instances. Added tests for pertinent api methods * Accept binary user\_data in radix-64 format when you launch a new server using OSAPI. This user\_data would be stored along with the other server properties in the database. Once the VM instance boots you can query for the user-data to do any custom installation of applications/servers or do some specific job like setting up networking route table * added unittests for volume\_extra\_data * Removed extra parameter from the call to \_provision\_resource\_locally() * resolve conflicts after upstream merge * Change the call name * Cleanup the '\_base' directory in libvirt tests * Oops * Review feedback * Added 'update' method to ServersXMLSerializer * Added more unit testcases for userdata functionality * Remove instances.admin\_pass column * merged trunk * Merged with trunk * typo * updated PUT to severs/id to handle accessIPv4 and accessIPv6 * DB password should be an empty string for MySQLdb * first cut on types & extra-data (only DB work, no tests) * merge from trunk * Better docstring for \_unrescue() * Review feedback * Need to pass the action * Updated the distributed scheduler docs with the latest changes to the classes * Syntax error * Moved compute calls to their own handler * Remove old comment * Don't send 'injected\_files' and 'admin\_pass' to db.update * fix docstrings in new api bins * one more * fix typo * remove signal handling and clean up service.serve * add separate api binaries * more cleanup of binaries per review * Changed the filter specified in \_ask\_scheduler\_to\_create\_instance() to None, since the value isn't used when creating an instance * Minor housecleaning * Fix to return 413 for over limit exceptions with instances, metadata and personality * Refactored a little and updated unit test * minor cleanup * dhcpbridge: add better error if NETWORK\_ID is not set, convert locals() to static dict * Added the fix for the missing parameter for the call to create\_db\_entry\_for\_new\_instance() * Updated a number of items to pave the way for new states * Corrected the hardcoded filter path. Also simplified the filter matching code in host\_filter.py * Added rescue mode extension * Fixed issue where accessIP was added in none detail responses * Updated ServersXMLSerializer to allow accessIPv4 and accessIPv6 in XML responses * Merged trunk * Added accessIPv4 and accessIPv6 to servers view builder Updated compute api to handle accessIPv4 and 6 * Fixed several logical errors in the scheduling process. Renamed the 'ZoneAwareScheduler' to 'AbstractScheduler', since the zone-specific designation is no longer relevant. Created a BaseScheduler class that has basic filter\_hosts() and weigh\_hosts() capabilities. Moved the filters out of one large file and into a 'filters' subdirectory of nova/scheduler * Merged trunk * Adds the enabled status of a host when XenServer reports its host's capabilities. This allows the scheduler to ignore hosts whose enabled is False when considering where to place a new instance * merge trunk and fix unit test errors * in dhcpbridge, only grab network id from env if needed * bug #828429: remove references to interface in nova-dhcpbridge * pep8 * remove extra reference in pipelib * clean up fake auth from server actions test * fix integration tests * make admin context the default, clean up pipelib * merged trunk * Merged with trunk and fixed broken testcases * merged with nova-1450 * nova-manage VSA print & forced update\_cap changes; fixed bug with report capabilities; added IP address to VSA APIs; added instances to APIs * Make all services use the same launching strategy * Updated compute manager/API to use vm/task states. Updated vm/task states to cover a few more cases I encountered * Updated server create XML deserializer to account for accessIPv4 and accessIPv6 * Added the host 'enabled' status to the host\_data returned by the plugin * Added accessip to models pep8 * Added migration for accessIPv4 and accessIPv6 * Fixed broken unit testcases * Initial instance states migration * pep8 fix * fix some naming inconsistencies, make associate/disassociate PUTs * Add NetworkCommandsTestCase into unit test of nova-manage * very minor cleanup * Undo an unecessary change * Merged trunk * Pep8 fixes * Split set state into vm, task, and power state functions * Add modules for task and vm states * Updated tests to correctly use the tenant id * DB object was being casted to dict() in API code. This did not work as intended and logic has been updated to reflect a more accurate way of getting information out of DB objects * merge from trunk * Cleaned up the extension metadata API data * Updated get\_updated time * Cleaned up the file * Fixed vif test to match the JSON key change * Added XML support and changed JSON output keys * Added virtual interfaces API test * Removed serverId from the response * Merged trunk * Merged Dan's branch to add VIF uuid to VIF drivers for Quantum * Removed a change from faults.py that was not required." * Changed return code to 413 for metadata, personality and instance quota issues * Append the project\_id to the SERVER-MANAGEMENT-URL header for v1.1 requests. Also, ensure that the project\_id is correctly parsed from the request * add new vif uuid for OVS vifplug for libvirt + xenserver * Remove instances.admin\_pass column * merge trunk * all tests passing * fix unit tests * Resolved conflicts and merged with trunk * Added uuid for networks and made changes to the Create server API format to accept network as uuid instead of id * I'm taking Thierry at his word that I should merge early and merge often :) * Fixes issue with exceptions getting eaten in image/s3.py if there is a failure during register. The variables referenced with locals() were actually out of scope * Allow local\_gb size to be 0. libvirt uses local\_gb as a secondary drive, but XenServer uses it as the root partition's size. Now we support both * Merged trunk * merge from trunk * make project\_id authorization work properly, with test * Use netaddr's subnet features to calculate subnets * make delete more consistant * Review feedback * Updated note * Allow local\_gb to be 0; PEP8 fixes * Updated ViewBuilderV10 as per feedback * \* Added search instance by metadata. \* instance\_get\_all\_by\_filters should filter deleted * This branch implements a nova api extension which allows you to manage and update tenant/project quotas * test improvements per peer review * fixing pep8 issue * defaults now is referred to using a tenant * fixing up the show quotas tests, and extension * making get project quotas require context which has access to the project/tenant) * fixing pep8 issues again * fixing spacing issues * cleaning up a few things from pyflakes * fixing pep8 errors * refactoring tests to not use authmanager, and now returning 403 when non admin user tries to update quotas * removed index, and separated out defaults into its own action * merging test\_extensions.py * another trunk merge * another trunk merge... a new change made it into nova before the code was merged * Cleanup the '\_base' directory in libvirt tests * Small bug fix...don't cast DB objects to dicts * merge from trunk * Updated the EC2 metadata controller so that it returns the correct value for instance-type metadata * Fix test\_metadata tests * merge the trunk * Merged with upstream * Added list\_notifier, a driver for the notifer api which calls a list of other drivers * merge with trunk * Refactored the HostFilterScheduler and LeastCostScheduler classes so that they can be combined into a single class that can do both host filtering and host weighting, allowing subclasses to override those processes as needed. Also renamed the ZoneAwareScheduler to AbstractScheduler, for two reasons: one, the 'zone-aware' designation was necessary when the zone code was being developed; now that it is part of nova, it is not an important distinction. Second, the 'Abstract' part clearly indicates that this is a class that is not designed to be used directly, but rather as the basis for specific scheduler subclasses * cosmetic change in test\_extensions. Avoids constant merge conflicts between proposals with new extensions * Validate the size of VHD files in OVF containers * Include vif UUID in the network info dictionary * Added uuid to allocate\_mac\_address * Fixed the naming of the extension * redux of floating ip api * Merged trunk * Merged trunk * log the full exception so we don't lose traceback through eventlet * fix error logging in s3.py * pep8 cleanup * Merged trunk * Removed newly added userdatarequesthandler for OS API, there is no need to add this handler since the existing Ec2 API metadatarequesthandler does the same job * got tests passing with logic changes * pep8 * pep8 * add note * have the tests call create\_networks directly * allow for finding a network that fits the size, also format string correctly * adding sqlalchemi api tests for test\_instance\_get\_all\_by\_filter to ensure doesn't return deleted instances * added cloud unit test for describe\_instances to ensure doesn't return deleted instances * return the created networks * pep8 fix * merge trunk * Adding kvm-block-migration feature * i hate these exceptions where it should just return an empty list * fix typo where I forgot a comma * merge trunk, remove \_validate\_cidrs and replace functionality with a double for loop * fix bug which DescribeInstances in EC2 api was returning deleted instances * We don't have source for open-wrt in the source tree, so we shouldn't use the images. Since the images are only there for uploading smoketests, They are now replaced with random images * Make response structure for list floating ips conform with rest of openstack api * put tenant\_id back in places where it was * This branch allows the standard inclusion of a body param which most http clients will send along with a POST request * Libvirt has some autogenerated network info that is breaking ha network * making body default to none * pep8 fix * Adding standard inclusion of a body param which most http clients will send along with a POST request * Fixed merging issue * Merged with trunk * Updated rate limiting tests to use tenants * Corrected names in TODO/FIXME * remove openwrt image * Fix the tests when libvirt actually exists * Merged trunk * Add durable flag for rabbit queues * Fixed merge conflict * merged trunk * Merged trunk * Dryed up contructors * make list response for floating ip match other apis * fix missing 'run\_as\_root' from bad merge * Added ability too boot VM from install ISO. System detects an image of type iso. Images is streamed to a VDI and mounted to the VM. Blank disk allocated to VM based on instance type * Add source-group filtering * added logic to make the creation of networks (IPv4 only) validation a bit smarter: - detects if the cidr is already in use - detects if any existing smaller networks are within the range of requested cidr(s) - detects if splitting a supernet into # of num\_networks && network\_size will fit - detects if requested cidr(s) are within range of already existing supernet (larger cidr) * fix InvalidPortRange exception shows up in euca2ools instead of UnknownError when euca-authorize is specified w/ invalid port # * Changes requests with an invalid server action to return an HTTP 400 instead of a 501 * Currently OS API doesn't accept availability zone parameter so there is no way to instruct scheduler (SimpleScheduler) to launch VM instance on specific host of specified zone * typo fix * Fix v1.1 /servers/ PUT request to match API documentation by returning 200 code and the server data in the body * Allow different schedulers for compute and volume * have NetworkManager generate MAC address and pass it to the driver for plugging. Sets the stage for being able to do duplicate checks on those MACs as well * make sure security groups come back on restart of nova-compute * fix all of the tests * rename project\_net to same\_net * use dhcp server instead of gateway for filter exception * get rid of network\_info hack and pass it everywhere * fix issue introduced in merge * merge trunk, fix conflict frim dprince's branch to remove hostname from bin/nova-dhcpbridge * merge in trunk, resolving conflicts with ttx's branch to switch from using sudo to run\_as\_root=True * remerge trunk * Added durable option for nova rabbit queues added queueu delete script for admin/debug purposes * Added add securitygroup to instance and remove securitygroup from instance functionality * Fix ugly little violations before someone says anything * Merged trunk * Updated logging * end of day * Check uncompressed VHD size * reworked test\_extensions code to avoid constant merge conflicts with newly added ext * nova-manage: fixed instance type in vsa creation * Stub out instance\_get as well so we can show the results of the name change * removed VSA/drive\_type code from EC2 cloud. changed nova-manage not to use cloud APIs * Merged with trunk and fixed broken unit testcases * merged rev1418 and fixed code so that less than 1G image can be migrated * Created the filters directory in nova/scheduler * removed admincontext middleware * updates from review * merge from trunk * fix merges from trunk * Nuke hostname from nova-dhcpbridge. We don't use it * merge the trunk * need to actually assign the v4 network * Fixes to the OSAPI floating API extension DELETE. Updated to use correct args for self.disassociate (don't sweep exceptions which should cause test cases to fail under the rug). Additionally updated to pass network\_api.release\_floating\_ip the address instead of a dict * Merged trunk * Fixed unit tests * only run if the subnet and cidr exist * only run if the subnet and cidr exist * merge from trunk * make sure network\_size gets set * merge from trunk * don't require ipv4 * forgot the closing paren * use subnet iteration from netaddr for subnet calculation * Fix a typo that causes ami images to launch with a kernel as ramdisk when using xen * Fixing a 500 error when -1 is supplied for flavorRef on server create * rewriting parsing * fix typo that causes ami instances to launch with a kernal as ramdisk * Merged trunk * Allows for a tunable number of SQL connections to be maintained between services and the SQL server using new configuration flags. Only applies when using the MySQLdb dialect in SQLAlchemy * Merged trunk * Fixes pep8 issues in test\_keypairs.py * Merged trunk * start of day * Fixes to the OSAPI floating API extension DELETE. Updated to use correct args for self.disassociate (don't sweep exceptions which should cause test cases to fail under the rug). Additionally updated to pass network\_api.release\_floating\_ip the address instead of a dict * API needs virtual\_interfaces.instance joined when pulling instances from the DB. Updated instance\_get\_all() to match instance\_get\_all\_by\_filters() even though the former is only used by nova-manage now. (The latter is used by the API) * remove extra log statements * join virtual\_interfaces.instance for DB queries for instances. updates instance\_get\_all to match instance\_get\_all\_by\_filters * remove accidentally duplicated flag * merged trunk * add keystone middlewares for ec2 api * Merged with trunk * added userdata entry in the api paste ini * Initial version * Accidentally added inject\_files to merge * Support for management of security groups in OS API as a new extension * Updates to libvirt, write metadata, net, and key to the config drive * prefixed with os- for the newly added extensions * Merged with trunk * Author added * allow scheduling topics to multiple drivers * Check compressed image size and PEP8 cleanup * v1.1 API also requires the server be returned in the body * capabilities fix, run\_as\_root fix * lp824780: fixed typo in update\_service\_capabilities * fix pep8 * spacing fixes * fixed pep8 issue * merge from trunk * fixed v1.0 stuff with X-Auth-Project-Id header, and fixed broken integrated tests * merged with 1416 * fixing id parsing * moved vsa\_id to metadata. Added search my meta * Refactored the scheduler classes without changing functionality. Removed all 'zone-aware' naming references, as these were only useful during the zone development process. Also fixed some PEP8 problems in trunk code * Added search instance by metadata. get\_all\_by\_filters should filter deleted * got rid of tenant\_id everywhere, got rid of X-Auth-Project-Id header support (not in the spec), and updated tests * Silly fixes * v1.0 and v1.1 API differs for PUT, so split them out Update tests to match API * Removed postgres, bug in current ubuntu package which won't allow it to work easily. Will add a bug in LP * minor cleanup * Added availability zone support to the Create Server API * Make PUT /servers/ follow the API specs and return a 200 status * More logging * removed extra paren * Logging for SQLAlchemy type * merged trunk * Fixed per HACKING * \* Removes rogue direct usage of subprocess module by proper utils.execute calls \* Adds a run\_as\_root parameter to utils.execute, that prefixes your command with FLAG.root\_helper (which defaults to 'sudo') \* Turns all sudo calls into run\_as\_root=True calls \* Update fakes accordingly \* Replaces usage of "sudo -E" and "addl\_env" parameter into passing environment in the command (allows it to be compatible with alternative sudo\_helpers) \* Additionally, forces close\_fds=True on all utils.execute calls, since it's a more secure default * Remove doublequotes from env variable setting since they are literally passed * Changed bad server actions requests to raise an HTTP 400 * removed typos, end of line chars * Fixed broken unit testcases * Support for postgresql * merge from trunk * tenant\_id -> project\_id * Adding keypair support to the openstack contribute api * elif and FLAG feedback * Removed un-needed log line * Make sure to not use MySQLdb if you don't have it * get last extension-based tests to pass * Allows multiple MySQL connections to be maintained using eventlet's db\_pool * Removed verbose debugging output when capabilities are reported. This was clogging up the logs with kbytes of useless data, preventing actual helpful information from being retrieved easily * Removed verbose debugging output when capabilities are reported * Updated extensions to use the TenantMapper * fix pep8 issues * Fixed metadata PUT routing * These fixes are the result of trolling the pylint violations here * Pass py\_modules=[] to setup to avoid installing run\_tests.py as a top-level module * Add bug reference * Pass py\_modules=[] to setup to avoid installing run\_tests.py as a top-level module * fix servers test issues and add a test * added project\_id for flavors requests links * added project\_id for images requests * merge trunk * fix so that the exception shows up in euca2ools instead of UnknownError * Dropped vsa\_id from instances * import formatting - thx * List security groups project wise for admin users same as other users * Merged with trunk * merge with nova-1411. fixed * pep8 fix * use correct variable name * adding project\_id to flavor, server, and image links for /servers requests * Merged with trunk * tests pass * merge from trunk * merged with nova-1411 * This branch makes sure to detach fixed ips when their associated floating ip is deallocated from a project/tenant * adding other emails to mailmap * add Keypairs to test\_extensions * adding myself to authors * This adds the servers search capabilities defined in the OS API v1.1 spec.. and more for admins * Be more tolerant of agent failures. It is often the case there is only a problem with the agent, not with the instance, so don't claim it failed to boot so quickly * Updated the EC2 metadata controller so that it returns the correct value for instance-type metadata * added tests - list doesn't pass due to unicode issues * initial port * merged trunk * Be more tolerant of agent failures. The instance still booted (most likely) so don't treat it like it didn't * Updated extensions to expect tenant ids Updated extensions tests to use tenant ids * Update the OSAPI v1.1 server 'createImage' and 'createBackup' actions to limit the number of image metadata items based on the configured quota.allowed\_metadata\_items that is set * Fix pep8 error * fixing one pep8 failure * I think this restores the functionality .. * Adds missing nova/api/openstack/schemas to tarball * Instance metadata now functionally works (completely to spec) through OSAPI * updated v1.1 flavors tests to use tenant id * making usage of 'delete' argument more clear * Fix the two pep8 issues that sneaked in while the test was disabled * Fix remaining two pep8 violations * Updated TenantMapper to handle resources with parent resources * updating tests; fixing create output; review fixes * OSAPI v1.1 POST /servers now returns a 202 rather than a 200 * Include missing nova/api/openstack/schemas * Rename sudo\_helper FLAG into root\_helper * Minor fix to reduce diff * Initial validation for ec2 security groups name * Remove old commented line * Command args can be a tuple, convert them to list * Fix usage of sudo -E and addl\_env in dnsmasq/radvd calls, remove addl\_env support, fix fake\_execute allowed kwargs * Use close\_fds by default since it's good for you * Fix ajaxterm's use of shell=True, prevent vmops.py from running its own version of utils.execute * With this branch, boot-from-volume can be marked as completed in some sense. The remaining is minor if any and will be addressed as bug fixes * Update the curl command in the \_\_public\_instance\_is\_accessible function of test\_netadmin to return an error code which we can then check for and handle properly. This should allow calling functions to properly retry and timeout if an actual test failure happens * updating more test cases * changing server create response to 202 * Added xml schema validation for extensions resources. Added corresponding xml schemas. Added lxml dep, which is needed for doing xml schema validation * Fixing a bug in nova.utils.novadir() * Adds the ability to read/write to a local xenhost config. No changes to the nova codebase; this will be used only by admin tools that have yet to be created * fixed conditional because jk0 is very picky :) * Fixed typo found in review * removing log lines * added --purge optparse for flavor delete * making server metadata work functionally * cleaning up instance metadata api code * Updated servers tests to use tenant id * Set image progress to 100 if the image is active * Cleaned up merge messes * Merged trunk * cleaned up unneeded line * nova.exception.wrap\_exception will re-raise some exceptions, but in the process of possibly notifying that an exception has occurred, it may clobber the current exception information. nova.utils.to\_primitive in particular (used by the notifier code) will catch and handle an exception clobbering the current exception being handled in wrap\_exception. Eventually when using the bare 'raise', it will attempt to raise None resulting a completely different and unhelpful exception * remove obsolete script from setup.py * assert that vmops.revert\_migration is called * Import sys as well * Resolve conflicts and fixed broken unit testcases * This branch adds additional capability to the hosts API extension. The new options allow an admin to reboot or shutdown a host. I also added code to hide this extension if the --allow-admin-api is False, as regular users should have no access to host API calls * adding forgotten import for logging * Adds OS API 1.1 support * Updated test\_images to use tenant ids * Don't do anything with tenant\_id for now * Review fixes * fixed wrong syntax * Assign tenant id in nova.context * another trunk merge * Merged trunk * Merged trunk * Cleaned up some old code added by the last merge * Fixed some typos from the last refactoring * Moved the restriction on host startup to the xenapi layer.: * Remove nova/tests/network, which was accidentally included in commit * upper() is even better * merged with 1383 * Updated with code changes on LP * Merged trunk * Save exception and re-raise that instead of depending on thread local exception that may have been clobbered by intermediate processing * Adding \_\_init\_\_.py files * Adds ability to disable snapshots in the Openstack API * Sync trunk * Set image progress to 100 if the image is active * Sync trunk * Update the curl command in the \_\_public\_instance\_is\_accessible function of test\_netadmin to return an error code which we can then check for and handle properly. This should allow calling functions to properly retry and timout if an actual test failure happens * ZoneAwareScheduler classes couldn't build local instances due to an additional argument ('image') being added to compute\_api.create\_db\_entry\_for\_new\_instance() at some point * simplified test cases further, thanks to trunk changes * Added possibility to mark fixed ip like reserved and unreserved * Update the OSAPI v1.1 server 'createImage' and 'createBackup' actions to limit the number of image metadata items based on the configured quota.allowed\_metadata\_items that is set * Pep8 fix * zone\_aware\_scheduler classes couldn't build instances due to a change to compute api's create\_db\_entry\_for\_new\_instance call. now passing image argument down to the scheduler and through to the call. updated a existing test to cover this * Adding check to stub method * moving try/except block, and changing syntax of except statement * Fixes broken image\_convert. The context being passed to glance image service was not a real context * Using decorator for snapshots enabled check * Disable flag for V1 Openstack API * adding logging to exception in delete method * Pass a real context object into image service calls * Adding flag around image-create for v1.0 * Refactored code to reduce lines of code and changed method signature * If ip is deallocated from project, but attached to a fixed ip, it is now detached * Glance Image Service now understands how to use glance client to paginate through images * Allow actions queries by UUID and PEP8 fixes * Fixed localization review comment * Allow actions queries by UUID and PEP8 fixes * Fixed review comments * fixing filters get * fixed per peer review * fixed per peer review * re-enabling sort\_key/sort\_dir and fixing filters line * Make sure mapping['dns'] is formatted correctly before injecting via template into images. mapping['dns'] is retrieved from the network manager via info['dns'], which is a list constructed of multiple DNS servers * Add a generic image service test and run it against the fake image service * Implemented @test.skip\_unless and @test.skip\_if functionality in nova/test.py * merged with 1382 * Updates v1.1 servers/id/action requests to comply with the 1.1 spec * fix typo * Moving from assertDictEqual to assertDictMatch * merging trunk * merging trunk * Add exception logging for instance IDs in the \_\_public\_instance\_is\_accessible smoke test function. This should help troubleshoot an intermittent failure * adding --fixes * glance image service pagination * Pass tenant ids through on on requests * methods renamed * Add exception logging for instance IDs in the \_\_public\_instance\_is\_accessible smoke test function. This should help troubleshoot an intermittent failure * Removed most direct sudo calls, make them use run\_as\_root=True instead * pep8 violations sneaking into trunk? * pep8 violations sneaking into trunk? * trunk merge * Fixes lp821144 * Make disk\_format and container\_format optional for libvirt's snapshot implementation * pep8 * fixed up zones controller to properly work with 1.1 * Add generic image service tests * Add run\_as\_root parameter to utils.execute, uses new sudo\_helper FLAG to prefix command * Remove spurious direct use of subprocess * Added virtual interfaces REST API extension controller * Trunk contained PEP8 errors. Fixed * Trunk merge * fix mismerge * Added migration to add uuid to virtual interfaces. Added uuid column to models * merged trunk * merged with nova trunk * Launchpad automatic translations update * fixed pep8 issue * utilized functools.wraps * added missing tests * tests and merge with trunk * removed redundant logic * merged trunk * For nova-manage network create cmd, added warning when size of subnet(s) being created are larger than FLAG.network\_size, in attempt to alleviate confusion. For example, currently when 'nova-manage network create foo 192.168.0.0/16', the result is that it creates a 192.168.0.0/24 instead without any indication to why * Remove instances of the "diaper pattern" * Read response to reset the connection state-machine for the next request/response cycle * Added explanations to exceptions and cleaned up reboot types * fix pep8 issues * fixed bug , when logic searched for next avail cidr it would return cidrs that were out of range of original requested cidr block. added test for it * Adding missing module xmlutil * fixed bug, wasn't detecting smaller subnet conflict properly added test for it * Properly format mapping['dns'] before handing off to template for injection (Fixes LP Bug #821203) * Read response to reset HTTPConnection state machine * removed unnecessary context from test I had left there from prior * move ensure\_vlan\_bridge,ensure\_bridge,ensure\_vlan to the bridge/vlan specific vif-plugging driver * re-integrated my changes after merging trunk. fixed some pep8 issues. sorting the list of cidrs to create, so that it will create x.x.0.0 with a lower 'id' than x.x.1.0 (as an example). <- was causing libvirtd test to fail * Revert migration now finishes * The OSAPI v1.0 image create POST request should store the instance\_id as a Glance property * There was a recent change to how we should flip FLAGS in tests, but not all tests were fixed. This covers the rest of them. I also added a method to test.UnitTest so that FLAGS.verbose can be set. This removes the need for flags to be imported from a lot of tests * Bad method call * Forgot the instance\_id parameter in the finish call * Merged in the power action changes * Removed test show() method * Fixed rescue/unrescue since the swap changes landed in trunk. Minor refactoring (renaming callback to \_callback since it's not used here) * Updates to the XenServer glance plugin so that it obtains the set of existing headers and sends them along with the request to PUT a snapshotted image into glance * Added admin-only decorator * This updates nova-ajax-console-proxy to correctly use the new syntax introduced last week by Zed Shaw * Merged trunk * Changed all references to 'power state' to 'power action' as requested by review * Added missing tests for server actions Updated reboot to verify the reboot type is HARD or SOFT Fixed case of having an empty flavorref on resize * Added more informative docstring * Added XML serialization for server actions * Removed debugging code * Updated create image server action to respect 1.1 * Fixes lp819397 * Fixed rescue unit tests * Nuke hostname. We don't use it * Split serverXMLDeserializers into v1.0 and v1.1 * another merge * Removed temporary debugging raise * Merged trunk * modify \_setup\_network for flatDHCP as well * Merged trunk * Added xenhost config get/setting * fix syntax error * Fixed rescue and unrescue * remove storing original flags verbosity * remove set\_flags\_verbosity.. it's not needed * Merged trunk * OS v1.1 is now the default into novarc * added NOVA\_VERSION to novarc * remove unused reference to exception object * Add a test for empty dns list in network\_info * Fix comments * uses 2.6.0 novaclient (OS API 1.1 support) * Fix to nova-ajax-console-proxy to use the new syntax * Update the OS API servers metadata resource to match the current v1.1 specification - move /servers//meta to /servers//metadata - add PUT /servers//metadata * fix pep8 issues that are in trunk * test\_host\_filter setUp needs to call its super * fix up new test\_server\_actions.py file for flags verbosity change * merged trunk * fixing typo * Sync with latest tests * The logic for confirming and reverting resizes was flipped. As a result, reverting a resize would end up deleting the source (instead of the destination) instance, and confirming would end up deleting the destination (instead of the source) instance * Found a case where an UnboundLocalError would be raised in xenapi\_conn.py's wait\_for\_task() method. This fixes the problem by moving the definition of the unbound name outside of the conditional * Moves code restarting instances after compute node reboot from libvirt driver to compute manager; makes start\_guests\_on\_host\_boot flag global * Moved server actions tests to their own test file. Updated stubbing and how flags are set to be in line with how they're supposed to be set in tests * merging trunk * add test for spawning a xenapi instance with an empty dns list * Nova uses instance\_type\_id and flavor\_id interchangeably when they almost always different values. This can often lead to an instance changing instance\_type during migration because the values passed around internally are wrong. This branch changes nova to use instance\_type\_id internally and flavor\_id in the API. This will hopefully avoid confusion in the future * The OSAPI v1.0 image create POST request should store the instance\_id as a Glance property * Linked to bug * Changed the definition of the 'action' dict to always occur * Updates to the XenServer glance plugin so that it obtains the set of existing headers and sends them along with the request to PUT a snapshotted image into glance * Fixed rescue and unrescue * Added in tests that verify tests are skipped appropriately * Merged trunk * Merged dietz' branch * Update HACKING: - Make imports more explicit - Add some dict/list formatting guidelines - Add some long method signature/call guidelines - Add explanation of i18n * Pep8 cleanup * Defaults \`dns\` to '' if not present, just as we do with the other network info data * Removes extraneous bodies from certain actions in the OSAPI servers controller * Revert should be sent to destination node and confirm should be sent to source node * Conditionals were not actually runing the tests when they were supposed to. Renamed example testcases * fix pylint W0102 errors * Remove whitespaces from name and description before creating security group * Remove instances of the "diaper pattern" * Fixes lp819397 * Initial version * Load instance\_types in downgrade method too * Fix trailing whitespace (PEP8) * fix test\_cloud FLAGS setting * dist scheduler flag setting fixes * fix scheduler tests that set FLAGS * fix more tests that use FLAGS setting * all subclasses of ComputeDriver should fully implement the interface of the destroy method * align multi-line string * fix test\_s3 FLAGS uses * switch FLAGS.\* = in tests to self.flags(...) remove unused cases of FLAGS from tests modified test.TestCase's flags() to allow multiple overrides added missing license to test\_rpc\_amqp.py * follow convention when raising exceptions * pep8 fixes * use an existing exception * use correct exception name * fix duplicate function name * fix undefined variable error * fix potential runtime exception * remove unused imports * remove bit-rotted code * more cleanup of API tests regarding FLAGS * fix use of FLAGS in openstack API servers tests to use the new way * Removes extraneous body argument from server controller methods * Merged trunk * Merged trunk * Default dns to '' if not present * replaced raise Exception with self.fail() * Removed dependancy on os.getenv. Test cases now raise Exception if they are not properly skipped * PEP8 issue * whoops, got a little comma crazy * Merged trunk and fixed conflicts to make tests pass * fumigate non-pep8 code * Use flavorid only at the API level and use instance\_type\_id internally * Yet another conflict resolved * forgot to remove comment * updated to work w/ changes after merged trunk fixing var renaming. the logic which forces default to FLAGS.network\_size if requested cidr was larger, was also applying to requested cidrs smaller than FLAGS.network\_size. Requested cidrs smaller than FLAGS.network\_size should be ignored and not overriden * merged from trunk * merged from trunk * merge trunk * Launchpad automatic translations update * Resolved pep8 errors * renaming test\_skip\_unless\_env\_foo\_exists() * merging trunk * Removed trailing whitespace that somehow made it into trunk * Merged trunk * Removed duplicate methods created by previous merge * Fixes lp819523 * Fix for bug #798298 * fix for lp816713: In instance creation, when nova-api is passed imageRefs generated by itself, strip the url down to an id so that default glance connection params are used * Added check for --allow-admin-api to the host API extension code * Another unittest * Merged trunk * Add support for 300 Multiple Choice responses when no version identifier is used in the URI (or no version header is present) * Merged trunk * Glance has been updated for integration with keystone. That means that nova needs to forward the user's credentials (the auth token) when it uses the glance API. This patch, combined with a forth-coming patch for nova\_auth\_token.py in keystone, establishes that for nova itself and for xenapi; other hypervisors will need to set up the appropriate hooks for their use of glance * Added changes from mini server * raise correct error * Minor test fixes * fix failing tests * fix pep8 complaints * merge from trunk * Fixed a missing space * Bad merge res * merge the trunk * fix missing method call and add failing test * Removed duplicate xattr from pip-requires * Fixed merge issues * Merged trunk * merged trunk * remove unused parameter * Merged trunk * Merged from lab * fix pylint errors * fix pylint errors * merge from trunk * Moves image creation from POST /images to POST /servers//action * Fixed several typos * Changed migration to be an admin only method and updated the tests * - Remove Twisted dependency from pip-requires - Remove Twisted patch from tools/install\_venv.py - Remove eventlet patch from tools/install\_venv.py - Remove tools/eventlet-patch - Remove nova/twistd.py - Remove nova/tests/test\_twistd.py - Remove bin/nova-instancemonitor - Remove nova/compute/monitor.py - Add xattr to pip-requires until glance setup.py installs it correctly - Remove references to removed files from docs/translations/code * Fix an error in fetch\_image() * Get instance by UUID instead of id * Merged trunk * Added the powerstate changes to the plugin * pull-up from trunk/fix merge conflict * fixing typo * refactored tests * pull-up from trunk * Removing the xenapi\_image\_service flag in favor of image\_service * cleanup * Merged trunk * abstraction of xml deserialization * fixing method naming problem * removing compute monitor * merge from trunk * code was checking for key in sqlalchemy instance and will ignore if value is None, but wasn't working if floating\_ip was a non-sqlalchemy dict obj. Therefore, updated the error checking to work in both caes * While we currently trap JSON encoding exceptions and bail out, for error notification it's more important that \*some\* form of the message gets out. So, we take complex notification payloads and convert them to something we know can be expressed in JSON * Better error handling for resizing * Adds the auth token to nova's RequestContext. This will allow for delegation, i.e., use of a nova user's credentials when accessing other services such as glance, or perhaps for zones * merged trunk rev1348 * Launchpad automatic translations update * added some tests for network create & moved the ipv6 logic back into the function * merged with nova trunk * Added host shutdown/reboot conditioning * avoid explicit type checking, per brian waldon's comment * Added @test.skip\_unless and @test.skip\_if functionality. Also created nova/tests/test\_skip\_examples.py to show the skip cases usage * fix LinuxBridgeInterfaceDriver * merge trunk, resolve conflict in net/manater.py in favor of vif-plug * initial commit of vif-plugging for network-service interfaces * Merged trunk * pep8 fixes * Controller -> self * Added option for rebooting or shutting down a host * removed redundant logic * merged from trunk * adding a function with logic to make the creation of networks validation a bit smarter: - detects if the cidr is already in use - when specifying a supernet to be split into smaller subnets via num\_networks && network\_size, ensures none of the returned subnets are in use by either a subnet of the same size and range, nor a SMALLER size within the same range. - detects if splitting a supernet into # of num\_networks && network\_size will fit - detects if the supernet/cidr specified is conflicting with a network cidr that currently exists that may be a larger supernet already encompassing the specified cidr. " * Carry auth\_token in nova's RequestContext * merge with trunk, resolve conflicts * Revert hasattr() check on 'set\_auth\_token' for clients * it makes the pep8, or else it gets the vim again * merge from trunk * Fixes this issue that I may have introduced * Update compute tests to use new exceptions * Resync to trunk * Remove copy/paste error * Launchpad automatic translations update * Launchpad automatic translations update * Fixed review comments: Put parsing logic of network information in create\_instance\_helper module and refactored unit testcases as per the changed code * pep8 * wow, someone whent all crazy with exceptions, why not just return an empty list? * Only call set\_auth\_token() on the glance client if there's one available * Make unit tests pass * merging * only attempt to get a fixed\_up from a v4 subnet if there is a v4 subnet * FlavorNotFound already existed, no need to create another exception * Created exceptions for accepting in OSAPI, and handled them appropriately * only create fixed\_ips if we have an ipv4 range * Revert to using context; to avoid conflict, we import context module as nova\_context; add context to rescue * You see what happens Danny when you forget to close the parenthesis * Merged with trunk * Merged trunk * allow the manager to try to do the right thing * allow getting by the cidr\_v6 * the netmask is implied by the cidr, so use that to display the v6 subnet * either v4 or v6 is required * merging trunk * pull-up from trunk and conflict resolution * merge trunk * stwart the switch to just fixed\_range * typo * Round 1 of changes for keystone integration. \* Modified request context to allow it to hold all of the relevant data from the auth component. \* Pulled out access to AuthManager from as many places as possible \* Massive cleanup of unit tests \* Made the openstack api fakes use fake Authentication by default * require either v4 or v6 * pull-up from trunk * Fix various errors discovered by pylint and pyflakes * fixing underline * removing extra verbage * merged trunk * This change creates a minimalist API abstraction for the nova/rpc.py code so that it's possible to use other queue mechanisms besides Rabbit and/or AMQP, and even use other drivers for AMQP rather than Rabbit. The change is intended to give the least amount of interference with the rest of the code, fixes several bugs in the tests, and works with the current branch. I also have a small demo driver+server for using 0MQ which I'll submit after this patch is merged * removing dict() comment * adding more on return\_type in docstrings * Fixes issue with OSAPI passing compute API a flavorid instead of an instance identifier. Added tests * made the whole instance handling thing optional * Reorganize the code to satisfy review comments * pull-up from trunk; fix problem obscuring context module with context param; fix conflicts and no-longer-skipped tests * remove unused import * --Stolen from https://code.launchpad.net/~cerberus/nova/lp809909/+merge/68602 * removing 'Defining Methods' paragraph * rewording * Use the util.import\_object to import a module * rewording * one last change * upgrades * expanding * merged trunk and fix time call * updating HACKING * Fixing lxml version requirement * Oops, I wasn't actually being compatible with the spec here * bumping novaclient version * Fixes lp:818050 * Updated resize to call compute API with instance\_type identifiers instead of flavor identifiers. Updated tests * fix run\_tests.sh * merge trunk * Fixed changes missed in merge * fix more spacing issues, and removed self link from versions template data * merged trunk * added instance support to to\_primitive and tests * merged trunk and fixed post\_live\_migratioin\_at\_destination to get nw\_info * Removing unnecessary imports * Added xml schema validation for extensions resources. Added corresponding xml schemas. Added lxml dep, which is needed for doing xml schema validation * remove extra log statement * api/ec2: rename CloudController.\_get\_instance\_mapping into \_format\_instance\_mapping * fixed typo * merge with trunk * fixed pep8 issues and removed unnecessary factory function * returned vsa\_manager, nova-manage arg and print changes * Added the config values to the return of the host\_data method * Adds XML serialization for servers responses that match the current v1.1 spec * Added methods to read/write values to a config file on the XenServer host * fix pep8 errors * minor cleanup * Removed unused Duplicate catch * Fix to\_dict() and elevated() to preserve auth\_token; revert an accidental change from context.get\_admin\_context() to simply context * Fixes bug 816604, which is the problem that timeformat in server responses for updated and created are incorrect. This fix just converts the datetime into the correct format * merging trunk * pep8 * moving server backup to /servers//action instead of POST /images * Simplified test cases * Rewrite ImageType enumeration to be more pythonic * refactoring and make self links correct (not hard coded) * Fix tests for checking pylint errors * Use utils.utcnow. Use True instead of literal 1 * Some tests for resolved pylint errors * simplify if statement * merge trunk * use wsgi XMLNS/ATOM vars * Updated deserialization of POST /servers in the OSAPI to match the latest v1.1 spec * Removed unused Duplicate catch * pull-up from trunk * Catch DBError for duplicate projects * Catch DBError for duplicate projects * Make network\_info truly optional * trunk infected with non-pep8 code * unicode instead of str() * Add a flag to set the default file mode of logs * merge trunk * make payload json serializable * moved test * Removed v1\_1 from individual tests * merge from trunk * merge to trunk * more commented code removed * some minor cosmetic work. addressed some dead code section * merged with nova-1336 * prior to nova-1336 merge * remove authman from images/s3.py and replace with flags * fix tests broken in the merge * merged trunk * fix undeclared name error * fix undeclared name error * fix undeclared name error * fix undeclared name errors * remove unused assignment which causes undeclared name error * fix undefined variable errors * fix call to nonexistant method to\_global\_ipv6. Add myself to authors file * Make network\_info truly optional * updates handling of arguments in nova-manage network create. updates a few of the arguments to nova-manage and related help. updates nova-manage to raise proper exceptions * forgot a line * fixed create\_networks ipv6 management * Fail silently * typo * --bridge defaults to br100 but with a deprecation warning and to be removed in d4 * Reverting to original code * use ATOM\_XMLNS everywhere * merge trunk * added unit testcase to increase code coverage * stub out VERSIONS for the tests * put run\_tests.sh back to how it was * Fixed conflict * Fail silently * Merged with trunk and fixed broken unit test cases * Fix the skipped tests in vmwareapi and misc spots. The vmware networking stuff is stubbed out, so the tests can be improved there by fixing the fakes * pep8 issue * refactoring MetadataXMLDeserializer in wsgi/common * move viewbuilder and serializer tests into their own test cases * Fix all of the skipped libvirt tests * fix typo * merged trunk * Fixes typo in attach volume * utilize \_create\_link\_nodes base class function * default the paramater to None, not sure why it was required to begin with * pass None in for nw\_info * added test for accept header of atom+xml on 300 responses to make sure it defaults back to json, and reworked some of the logic to make how this happens clearer * Drop FK before dropping instance\_id column * moved rest of build logic into builder * Drop FK before dropping instance\_id column * Removed FK import * Delete FK before dropping instance\_id column * oops! moved ipv6 block back into the for loop in network manager create\_networks * update everything to use global VERSIONS * merged trunk * change local variable name * updated handling of v6 in network manager create\_networks to it can receive None for v6 args * added ipv6 requirements to nova-manage network create. changed --network to --fixed\_range\_v4 * remove unexpected parameter * fixed xmlns issue * updated the bridge arg requirements based on manager * this change will require that local urls be input with a properly constructed local url: http://localhost/v1.1/images/[id]. Such urls are translated to ids at the api layer. Previously, any url ending with and int was ok * make atom+xml accept header be ignored on 300 responses in the VersionsRequestDeserializer * Removed superfluous parameter * Use auth\_token to set x-auth-token header in glance requests * Fixed the virt driver base * Some work on testing. Two cases related to lp816713 have some coverage already: using an id as an imageRef (test\_create\_instance\_v1\_1\_local\_href), and using a nova href as a url (test\_create\_instance\_v1\_1) * Remove xenapi\_inject\_image flag * Add a flag to set the default file mode of logs * fixed issue with factory for Versions Resource * Fix context argument in a test; add TODOs * improved the code per peer review * Add context argument a lot more places and make unit tests work * fix hidden breakage in test * Remove xenapi\_inject\_image flag * removed unused import * pep8 * pep8 * updated nova-manage create network. better help, handling of required args, and exceptions. Also updated FLAG flat\_network\_bridge to default to None * Re-enables and fixes test\_cloud tests that broke from multi\_nic * Fix for boto2 * Re-enables and fixes test\_cloud tests that broke from multi\_nic * add invalid device test and make sure NovaExceptions don't get wrapped * merge from trunk * pep8 * pep8 * updating common metadata xml serializer tests * Cleaned up test\_servers * Moved server/actions tests to test\_server\_actions.py * updating servers metadata resource * pull-up from trunk * Address merge review concerns * Makes security group rules with the newer version of the ec2 api and correctly supports boto 2.0 * merging parent branch servers-xml-serialization * updating tests * updated serializer tests for multi choice * pep8 cleanup * multi choice XML responses with tests * merged recent trunk * merge with trunk * Cherry-pick of tr3buchet's fix for add\_fixed\_ip\_to\_instance * Resolved conflicts with trunk * fix typo in attach\_volume * fix the last of them * fake plug for vif driver * couple more fixes * cleanup network create * code was checking for key in sqlalchemy instance but if floating\_ip is a non-sqlalchemy dict instance instead, value=None will cause NoneType exception * fix more tests * fix the first round of missing data * fix the skipped tests in vmwareapi xenapi and quota * Add myself to authors * Implements a simplified messaging abstraction with the least amount of impact to the code base * fix for lp816713: In instance creation, when nova-api is passed imageRefs generated by itself, strip the url down to an id so that default glance connection params are used * cloud tests all passing again * added multi\_choice test just to hit another resource * pep8 fixes * initial working 300 multiple choice stuff * cherry-pick tr3buchet's fix for milestone branch * cleanup * pep8 * pep8 * First pass at converting this stuff--pass context down into vmops. Still need to fix unit tests and actually use auth\_token from the context.. * pep8 and simplify rule refresh logic * pep8 * merging parent branch lp:~rackspace-titan/nova/osapi-create-server * adding xml deserialization for createImage action * remove some logging, remove extra if * compute now appends self.host to the call to add an additional fixed ip to an instance * Update security gropu rules to properly support new format and boto 2.0 * Updated test stubs to contain the correct data Updated created and updated in responses to use correct time format * pep8 compliance * VSA volume creation/deletion changes * moved v1.1 image creation from /images to /servers//action * fixed per peer review * passing host from the compute manager for add\_fixed\_ip\_to\_instance() * adding assert to check for progress attribute * removing extra function * Remove debugging code * cleanup * fixed minor issues * reverting tests to use imageRef, flavorRef * updating imageRef and flavorRef parsing * Updates to the compute API and manager so that rebuild, reboot, snapshots, and password resets work with the most recent versions of novaclient * merging trunk; resolving conflicts * Add OpenStack API support for block\_device\_mapping * queries in the models.Instance context need to reference the table by name (fixed\_ips) however queries in the models.FloatingIp context alias the tables out properly and return the data as fixed\_ip (which is why you need to reference it by fixed\_ip in that context) * added warning when size of subnet(s) being created are larger than FLAG.network\_size in attempt to alleviate confusion. For example, currently when 'nova-manage network create foo 192.168.0.0/16', the result is that it creates a 192.168.0.0/24 instead without any indication to why * xml deserialization works now * merged from trunk * merged trunk * merging trunk * pull-up from trunk * got rid of print * got rid of more xml string comparisons * atom test updates * got rid of some prints * got rid of string comparisons in serializer tests * removing objectstore and image\_service flag checking * Updates /servers requests to follow the v1.1 spec. Except for implementation of uuids replacing ids and access ips both of which are not yet implemented. Also, does not include serialized xml responses * fixed detail xml and json tests that got broken * updated atom tests * Updated ServerXMLSerializer to utilize the IPXMLSerializer * merged trunk * merge from trunk * fix pep8 issues * fix issue with failing test * merged trunk * I'm sorry, for my fail with rebasing. Any way previous branch grew to many other futures, so I supersede it. 1. Used optparse for parsing arg string 2. Added decorator for describe method params 3. Added option for assigning network to certain project. 4. Added field to "network list" for showing which project owns network * Moved the VIF network connectivity logic('ensure\_bridge' and 'ensure\_vlan\_bridge') from the network managers to the virt layer. In addition, VIF driver class is added to allow customized VIF configurations for various types of VIFs and underlying network technologies * merge with trunk, resolve conflicts * fix pep8 * Launchpad automatic translations update * removing rogue print * removing xenapi\_image\_service flag * adding to authors * fixing merge conflict * merge from trunk * initial stuff to get away from string comparisons for XML, and use ElementTree * merged with 1320 * volume name change. some cleanup * - Updates /images//meta and /images//meta/ to respect the latest specification - Renames ../meta to ../metadata - Adds PUT on ../metadata to set entire container (controller action is called update\_all) * Adds proper xml serialization for /servers//ips and /servers//ips/ * some cleanup. VSA flag status changes. returned some files * Pass on auth\_token * Warn user instead of ignoring * Added ensuring filter rules for all VMs * atom and xml\_detail working, with tests * Adds the -c|--coverage flag to run\_tests.sh to generate a local code coverage report * Estetic fix * Fix boot from volume failure for network block devices * Bug #796813: vmwareapi does not support distributed vswitch * modified to conform to latest AWS EC2 API spec for authorize & revoke ingress params using the IpPermissions data structure, which nests lists of CIDR blocks (IpRanges) as well as lists of Group data * Fixes faults to use xml serializers based on api version. This fixed bug 814228 * Fixes a typo in rescue instance in ec2 api. This is mnaser's fix, I just added a test to verify the change * Fixes bug 797250 where a create server request with the body '{"name":"server1"}' results in a HTTP 500 instead of HTTP 422 * adding xml serialization for /servers//ips and /servers//ips/ * add a simple broken test to verify the bug * Fixed old libvirt semantics, added resume\_guests\_state\_on\_host\_boot flag * xml version detail working with tests * adding testing to solidify handling of None in wsgi serialization * Added check to make sure there is a server entity in the create server request * Fixed some typos in log lines * removed prints, got versions detail tests passing, still need to do xml/atom * reverting some wsgi-related changes * merged trunk * removed print lines * This fixes the xml serialization of the /extensions and /extensions/foo resources. Add an ExtensionsXMLSerializer class and corresponding unit tests * added 1.0 detail test, added VersionRequestDeserializer to support Versions actions properly, started 300/multiple choice work * fix for reviews * Fixed bad test Fixed using wrong variable * Moved the exception handling of unplugging VIF from virt driver to VIF driver. Added better comments. Added OpenStack copyrights to libivrt vifs.py * pep8 + spelling fixes * Floating IP DB tests * Updated Faults controller to choose an xml serializer based on api version found in the request url * removing unnecessary assignments * Hotfix * Some estetic refactoring * Fixing PEP8 compliance issues * adding --fixes * fixing typos * add decorator for 'dns' params * merge with trunk, resolve conflicts * pep8 * Fixed logging * Fixed id * Fixed init\_host context name * Removed driver-specific autostart code * fix 'version' command * Add bug reference * Use admin context when fetching instances * Use subscript rather than attribute * Make IP allocation test work again * Adjust and re-enable relevant unit tests * some file attrib changes * some cosmetic changes. Prior to merge proposal * Added test\_serialize\_extenstions to test ExtensionsXMLSerializer.index() * tests: unit tests for describe instance attribute * tests: an unit test for nova.compute.api.API.\_ephemeral\_size() * tests: unit tests for nova.virt.libvirt.connection.\_volume\_in\_mapping() * tests/glance: unit tests for glance serializer * tests: unit tests for nova.virt * tests: unit tests for nova.block\_device * db/api: fix network\_get\_by\_cidr() * image/glance: teach glance block device mapping * tests/test\_cloud:test\_modify\_image: make it pass * nova/tests/test\_compute.py: make test\_compute.test\_update\_block\_device\_mapping happy * test\_metadata: make test\_metadata pass * test\_compute: make test\_compute pass * test\_libvirt: fix up for local\_gb * virt/libvirt: teach libvirt driver swap/ephemeral device * virt/libvirt: teach libvirt driver root device name * compute/api: pass down ephemeral device info * compute/manager, virt: pass down root device name/swap/ephemeral to virt driver * ec2/get\_metadata: teach block device mapping to get\_metadata() * api/ec2: implement describe\_instance\_attribute() * db/api: block\_device\_mapping\_update\_or\_create() * block\_device: introduce helper function to check swap or ephemeral device * ec2utils: factor generic helper function into generic place * Launchpad automatic translations update * Config-Drive happiness, minus smoketest * merged with latest nova-1308 * more unittest changes * Last patch broke libvirt mapping of network info. This fixes it * Fixes an issue with out of order operations in setup\_network for vlan mode in new ha-net code * Merged with 1306 + fix for dns change * update netutils in libvirt to match the 2 dns setup * merge * merge with 1305 * make sure dhcp\_server is available in vlan mode * Adds ability to set DNS entries on network create. Also allows 2 dns servers per network to be specified * pep8-compliant. Prior to merge with 1305 * Reverted volume driver part * pep cleanup * remove auth manager from instance helper * docstring update * pass in the right argument * pull out auth manager from db * merge trunk * default to None in the method signature * merged trunk * remove some more stubouts and fakes * clean up fake auth manager in other places * same as: https://code.launchpad.net/~tr3buchet/nova/lp812489/+merge/68448 fixes: https://bugs.launchpad.net/nova/+bug/812489 but in a slightly different context * pep8 * updating images metadata resource * ...and this is me snapping back into reality removing all trace of ipsets. Go me * fixed networks not defined error when creating instances when no networks exist * fix test\_access * This is me being all cocky, thinking I'll make it use ipsets.. * fix auth tests * Add i18n for logging, changed create\_bridge/vlan to should\_create\_bridge/vlan, changed unfilter\_instance's keyword param to positional, and added Dan's alternate ID to .mailmap * fix extensions tests * merge trunk * fix all tests * pep8 fixes * Updated the comments for VMWare VIF driver * initial test for v1.1 detail request * Moved restaring instances from livbirt driver to ComputeManager * Added network\_info to unfilter\_instance to avoid exceptions when shutting down instances * Removed unused exception object * Fixed the missing quotes for 802.1Qbh in libvirt template * add decorator for multi host option * Merged Dan's branch * Merged trunk * use new 'create\_vlan' field in XenAPIBridgeDriver * merge with trunk, resolve conflicts * remove IPy * for libvirt OVS driver, do not make device if it exists already * refactor xenapi vif plug to combine plug + get\_vif\_rec, tested and fixed XenAPIBridgeDriver * Correctly add xml namespaces to extensions xml * Added xml serialization for GET => /extensions. Added corresponding tests * merge ryu's branch * remove debugging * fix a whole bunch of tests * start removing references to AuthManager * change context to maintain exact time, store roles, use ids instead of objects and use a uuid for request\_id * Resolved conflict with trunk * Adds an XML serializer for limits and adds tests for the Limits view builder * pep8 * add in the right number of fields * pep8 * updated next-available to use utc time * merge trunk * rename in preperation for trunk merge * only include dns entries if they are not None in the database * Updated the compute API so that has\_finished\_migration uses instance\_uuid. Fixes some regressions with 1295-1296 * only use the flag if it evaluates true * Catch the FixedIpNotFoundForInstance exception when no fixed IP is mapped to instance * Updated time-available to be correct format Fixed old tests to respect this * This fixes issues with invalid flavorRef's being passed in returning a 500 instead of a 400, and adds tests to verify that two separate cases work * merge from trunk * Moving lp:~rackspace-titan/nova/extensions-xml-serialization to new branch based off of trunk. To remove dep on another branch * Perform fault wrapping in the openstack WSGI controller. This allows us to just raise webob Exceptions in OS API controllers with the appropriate explanations set. This resolves some inconsistencies with exception raising and returning that would cause HTML output to occur when faults weren't being handled correctly * pep8 and stuff * Some code was recently added to glance to allow the is\_public filter to be overridden. This allows us to get all images and filter properly on the nova side until keystone support is in glance. This fixes the issue with private images and snapshots disappearing from the image list * pep8 * Merged with trunk which includes ha-net changes * Updated the compute API so that has\_finished\_migration uses instance\_uuid. Fixes some regressions with 1295-1296 * Updating the /images and /images/detail OSAPI v1.1 endpoints to match spec w/ regards to query params * Ensure valid json/xml/atom responses for versions requests * Update OSAPI v1.1 /flavors, /flavors/detail, and /flavors/ to return correct xml responses * Renamed the virt driver resize methods to migration for marginally more understandable code * allow 2 dns servers to be specified on network create * allow 2 dns servers to be specified on network create * Fixes lp813006 * Fixes lp808949 - "resize doesn't work with recent novaclient" * minor fix * Some broken tests from my other merge * Fixed import issue * added tests, updated pep8 fixes * Changed test\_live\_migration\_raises\_exception to use mock for compte manager method * fixed another issue with invalid flavor\_id parsing, and added tests * minor cleanup * pep8 issue * cleanup * merge with trunk * Fixed the localization unit test error in the vif driver logging * cleanup tests and fix pep8 issues * removed vif API extension * Fixed Xenapi unit test error of test\_rescue * Slight indentation change * Merged Dan Wendlandt's branch and fixed pep8 errors * Added call to second coverage invocation * Fixed an issue where was invoked before it was defined in the case of a venv * - Add 'fixed\_ipv6' property to VirtualInterface model - Expose ipv6 addresses in each network in OSAPI v1.1 * forgot to add xenapi/vif.py * Perform fault wrapping in the openstack WSGI controller. This allows us to just raise webob Exceptions in OS API controllers with the appropriate explanations set. This resolves some inconsistencies with exception raising and returning that could cause HTML output to occur when an exception was raised * Added LimitsXMLSerializer Added LimitsViewBuidlerV11Test test case * Added create\_vlan/bridge in network unit test * Add OpenStack API support for block\_device\_mapping * Changed the default of VIF driver * Fixed PEP8 issues * Combined bridige and vlan VIF driver to allow better transition for current Nova users * Merged trunk * Merged lp:~~danwent/nova/network-refactoring * Adds HA networking (multi\_host) option to networks * CHanges based on feedback * Older Windows agents are very picky about the data sent to it. It also requires the public key for the password exchange to be in a string format and not an integer * adding flavors xml serialization * added versions list atom test and it passes * Set the status\_int on fault wrapped exceptions. Fixes WSGI logging issues when faults are returned * Fix plus passing tests * remove debug prints * merge ryu's branch * update for ryu's naming changes, fix some bugs. tested with OVSDriver only so far * Fixes bug #807764. Please disregard previous proposal with incorrect bug # * Whoops * Added LP bug num to TODO * Split tests into 2 * Fix email address in Author * Make sure reset\_network() call happens after we've determined the agent is running * pep8 * Merged trunk * Added Dan Wendlandt to Authors, and fixed failing network unit tests * merged trunk * Made all but one test pass for libvirt * Moved back allow\_project\_net\_traffic to libvirt conn * Set the status\_int on fault wrapped exceptions. Fixes WSGI logging issues when faults are returned * lp812489: better handling of periodic network host setup to prevent exception * add smoketests to verify image listing * default image to private on register * correct broken logic for lxc and uml to avoid adding vnc arguments (LP: #812553) * Stupid merge and fixed broken test * Most of the XenServer plugin files need the execute bit set to run properly. However, they are inconsistent as it is, with one file having the execute bit set, but the another having it set when it is not needed * Made the compute unit tests to pass * Host fix * Created \_get\_instance\_nw\_info method to clean up duplicate code * initial changes for application/atom+xml for versions * Update Authors file * network api release\_floating\_ip method will now check to see if an instance is associated to it, prior to releasing * merge from lp:~midokura/nova/network-refactoring-l2 * Corrects a bad model lookup in nova-manage * correct indentation * Fixes lp809587 * Fix permissions for plugins * Ya! Apparently sleep helps me fix failing tests * Some older windows agents will crash if the public key for the keyinit command is not a string * added 'update' field to versions * First attempt at vmware API VIF driver integration * Removed unnecessary context parameter * Merged get\_configurations and plug of VIF drivers * Moved ensure\_vlan\_bridge of vmware to VIF driver * Added network\_info parameter to all the appropriate places in virt layers and compute manager * remove xenapi\_net.py from network directory, as this functionality is now moved to virt layer * first cut of xenserver vif-plugging, some minor tweaks to libvirt plugging * Refactor device type checking * Modified alias ^Cd minor fixes * Merged with trunk * Reverted to original code, after network binding to project code is in integration code for testing new extension will be added * Fixed broken unit testcases after adding extension and minor code refactoring * Added a new extension instead of directly making changes to OS V1.1. API * have to use string 'none' and add a note * tell glance to not filter out private images * updated links to use proper atom:link per spec * Renamed setup\_vif\_network to plug\_vif * Fixes lp813006 - inconsistent DB API naming * move import network to the top * Merged lp:~danwent/nova/network-refactoring-l2 * merged from trunk * network api release\_floating\_ip method checks if an instance associated to the floating prior to releasing. added test * Added detroy\_vif\_network * Functionality fixed and new test passing * Updates to the compute API and manager so that rebuild, reboot, snapshots, and password resets work with the most recent versions of novaclient * better handling of periodic network host setup * Merged trunk * Removed blank lines * Fix unchecked key reference to mappings['gateway6']. Fixes LP #807764 * add downgrade * correct broken logic for lxc and uml to avoid adding vnc arguments (LP: #812553) * Beginnings of the patch * Fixed equality comparison bug in libvirt XML * Fixed bad parameters to setup\_vif\_networks * Zapped an extra newline * Merged with trunk * Add support for generating local code coverage report * respecting use\_ipv6 flag if set to False * merged trunk * merged trunk * fixed reviewer's comment. 1. ctxt -> context, 2. erase unnecessary exception message from nova.sccheduler.driver * cleanup * merge of ovs L2 branch * missed the vpn kwarg in rpc * fix bad merge * change migration number * merged trunk * This change adds the basic boot-from-volume support to the image service * Fixed the broken tests again * Merging from upstream * Some missed instance\_id casts * pep8 cleanup * adding --fixes * adding fixed\_ipv6 property to VirtualInterface model; exposing ipv6 in api * VSA schedulers reorg * Merged with trunk * fix issues that were breaking vlan mode * fixing bad lookup * Updates to the XenServer agent plugin to fix file injection: * Don't jsonify the inject\_file response. It is already json * localization changes. Removed vsa params from volume cloud API. Alex changes * Added auth info to XML * returncode is an integer * - Fixed the conflift in vmops.py * Check returncode in get\_agent\_features * resolved pep8 issues * merged from trunk * Updated servers to choose XML serializer based on api version * pep8 * updated servers to use ServerXMLSerializer * added 'create' to server XML serializer * added 'detail' to server XML serializer * convert group\_name to string, incase it's a long * nova/api/ec2/cloud.py: Rearranged imports to be alphabetical as per HACKING * pep8'd * Extended test to check for error specific error code and test cover for bad chars * Some basic validation for creating ec2 security groups. (LP: #715443) * changed to avoid localization test failure * Initial test case proving we have a bug of, ec2 security group name can exceed 255 chars * added index to servers xml serializer * Change \_agent\_has\_method to \_get\_agent\_features. Update the inject files function so that it calls \_get\_agent\_features only once per injected file * pep8 * Moved Metadata Serialization Test * Added ServerXMLSerializer with working 'show' method Factored out MetadataXMLSerializer from images and servers into common * added missing drive\_types.py * added missing instance\_get\_all\_by\_vsa * merged with 1280 * VSA: first cut. merged with 1279 * Added some unit and integration tests for updating the server name via the openstack api * renamed priv method arg\_to\_dict since it's not just used for revoke. modified to conform to latest AWS EC2 API spec for authorize & revoke ingress params using the IpPermissions data structure, which nests lists of CIDR blocks (IpRanges) as well as lists of Group data * got rid of return\_server\_with\_interfaces and added return\_server\_with\_attributes * Added ServerXMLSerializationTest * take out print statements * Ensures a bookmark link is returned in GET /images. Before, it was only returned in GET /images/detail * One last nit * Tests passing again * put maxDiff in setUp * remove get\_uuid\_from\_href and tests * stop using get\_uuid\_from\_href for now * Updated with some changes from manual testing * Updates to the XenServer agent plugin to fix file injection: * merging trunk * use id in links instead of uuid * pep8 fixes * fix ServersViewBuilderV11Tests * Adds greater configuration flexibility to rate limiting via api-paste.ini. In particular: * return id and uuid for now * merge with trunk * Adds distributed scheduler and multinic docs to the Developer Reference page * Added more view builder tests * merged wills revisions * Added ViewBuilderV11 tests Fixed bug with build detail * fix issues with uuid and old tests * - Present ip addresses in their actual networks, not just a static public/private - Floating ip addresses are grouped into the networks with their associated fixed ips - Add addresses attribute to server entities * Update the agent plugin so that it gets 'b64\_contents' from the args dict instead of 'b64\_file' (which isn't what nova sends) * Adding unit and integration tests for updating the server name via the 1.1 api * merge with trunk, resolve conflicts * remove argument help from docstrings + minor fix * Fixes Bug #810149 that had an incomplete regex * Existing Windows agent behaves differently than the Unix agents and require some workarounds to operate properly. Fixes are going into the Windows agent to make it behave better, but workarounds are needed for compatibility with existing installed base * Add possibility to call commands without subcommands * fix redundency * Updated Authors * Fixed remove\_version\_from\_href Added tests * mistakenly commited this code into my branch, reverting it to original from trunk * Merged with trunk and fixed pep errors * added integrated unit testcases and minor fixes * First pass * corrected catching NoNetworksDefined exception in host setup and getting networks for instance * catching the correct exception * Added ServersTestv1\_1 test case Changed servers links to use uuid instead of id * pep8 * Updated old tests * add support to write to stdout rather than file if '-' is specified. see bug 810157 * merging trunk * removed self links from flavors * added commands * exposing floating ips * updated image entity for servers requests * Update the agent plugin so that it gets 'b64\_contents' from the args dict instead of 'b64\_file' (which isn't what nova sends) * Use assertRaises instead of try/except--stupid brain-o * Added progress attribute to servers responses * fixing bad merge * pull-up from trunk, while we're at it * Comment on parse\_limits(); expand an exception message; add unit tests; fix a minor discovered bug * adding bookmark to images index * add updated and created to servers detail test, and make it work * removing mox object instantiation from each test; renaming \_param to filter\_name * add self to authors * use 'with' so that close is called on file handle * adding new query parameters * support '-' to indicate stdout in nova-manage project 'environment' and 'zip' * Improvements to nova-manage: 1. nova-manage network list now shows what belongs to what project, and what's the vlan id, simplifying management in case of several networks/projects 2. nova-manage server list [zone] - shows servers. Useful if you have many servers and want to list them in particular zone, instead of grep'ing nova-manage service list * Minor fixes * Merged with Trunk * updated to support and check for flavor links in server detail response * Updated responses for GET /images and GET /images/detail to respect the OSAPI v1.1 spec * merge * beginning server detail spec 1.1 fixup * Augment rate limiting to allow greater flexibility through the api-paste.ini configuration * merge from trunk * added unit testcases for validating the requested networks * Extends the exception.wrap\_exception decorator to optionally send an update to the notification system in the event of a failure * trunk merge * merging trunk * updating testing; simplifying instance-level code * pep8 * adding test; casting instance to dict to prevent sqlalchemy errors * merged branch lp:~rackspace-titan/nova/images-response-formatting * Add multinic doc and distributed scheduler doc to developer guide front page * merged trunk * Don't pop 'vpn' on kwargs inside a loop in RPCAllocateFixedIP.\_allocate\_fixed\_ips (fixes KeyError) * Added Mohammed Naser to Authors file * merge with trunk * fix reviewer's comment * Starting part of multi-nic support in the guest. Adds the remove\_fixed\_ip code, but is incomplete as it needs the API extension that Vek is working on * Don't pop 'vpn' on kwargs inside a loop in RPCAllocateFixedIP.\_allocate\_fixed\_ips (fixes KeyError's) * added unit test cases and minor changes (localization fix and added fixed\_ip validation) * Made sure the network manager accepts kwargs for FlatManager * Fix bug 809316. While attempting to launch cloudpipe instance via 'nova-manage vpn run' command, it comes up with IP from instances DHCP pool and not the second IP from the subnet, which break the forwarding rules that allow users to access the vpn. This is due 'allocate\_fixed\_ip' method in VlanManager doesn't receive 'vpn' as an argument from caller method and cloudpipe instances always considers as 'common' instances * cleanup * server create deserialization functional and tested * added xml deserialization unit test cases and fixe some pep errors * Updated some common.py functions to raise ValueErrors instead of HTTPBadRequests * Renamed 'nova-manage server list' -> 'nova-manage host list' to differentiate physical hosts from VMs * Allowed empty networks, handled RemoteError properly, implemented xml format for networks and fixed broken unit test cases * minor cleanup * Updated ImageXMLSerializer to serialize links in the server entity * Updated images viewbuilder to return links in server entity * updated images tests * merged trunk * pep8 * Updated remove\_version\_from\_href to be more intelligent Added tests * Fix PEP8 for 809316 bugfix * Fix 809316 bug which prevent cloudpipe to get valid IP * fix reviewer's comment * stray debug * pep8 * fixed marshalling problem to cast\_compute.. * fixed all failed unit test cases * This doesn't actually fix anything anymore, as the wsgi\_refactor branch from Waldon took care of the issue. However, a couple rescue unit tests would have caught this originally, so I'm proposing this to include those * fixes an issue where network host fails to start because a NoNetworksFound exception wasn't being handled correctly * Bad test * unknowingly made these changes, reverting to original * catch raise for networks not found in network host and instance setup * Merged with Trunk * add optional parameter networks to the Create server OS API * Changed broken perms * Tests * Made xen plugins rpm noarch * Set the proper return code for server delete requests * Making the xen plugins rpm to be noarch * merging trunk * Expanding OSAPI wsgi module to allow handling of headers and status codes * Updates some of the extra scripts in contrib and tools to current versions * updating code to implement tests * merging parent wsgi-refactor * allowing controllers to return Nonew * adding headers serializer * pep8 * minor refactoring * minor tweaks * Adds an extension which makes add\_fixed\_ip() available through an OpenStack extension * Comment out these two asserts; Sandy will uncomment in his merge-prop * Fix the bug 800759 * merging wsgi-refactor * adding 204 response code * pre trunk merge * Missing Author updated * Allows for ports in serverRef in image create through the openstack api * Adds security groups to metadata server. Also adds some basic tests for metadata code * fix comments * fix conflict * Added vif OS API extension to get started on it * Moved 'setup\_compute\_network' logic into the virt layer * Added myself to authors file * Fixed two typos in rescue API command * flaw in ec2 cloud api, \_get\_image method , if doing a search for aki-0000009, yet that image name doesn't exist, it strips off aki- and looks for any image\_id 0000009 and if there was an image match that happens to be an ami instead of aki, it will go ahead and deregister the ami instead. That behavior is unintended, so added logic to ensure that the original request image\_id matches the type of image being returned from database by matching against container\_format attr * Fixed up an incorrect key being used to check Zones * merged trunk * fix tests * make sure that old networks get the same dhcp ip so we don't break existing deployments * cleaned up on set network host to \_setup\_network and made networks allocate ips dynamically * Make the instance migration calls available via the API * Add a flag to disable ec2 or osapi * Add a flag to disable ec2 or osapi * refactor * easing up content-type restrictions * peer review fix - per vish: 'This method automatically converts unknown formats to ami, which is the same logic used to display unknown images in the ec2 api. This will allow you to properly deregister raw images, etc.' * Updated resize docstring * removing Content-Length requirement * Add docstrings for multinic extension * Add support for remove\_fixed\_ip() * Merged trunk * pull-up from trunk * Added unit tests * First take at migrations * Fixes bug #805604 "Multiprocess nova-api does not handles SIGTERM correctly." * image/fake: added teardown method * Updated mailmap due to wrong address in commit message * tests/test\_cloud: make an unit test, test\_create\_image, happy * nova/compute/api.py: fixed mismerge * ec2 api \_get\_image method logic flaw that strips the hex16 digit off of the image name, and does a search against the db for it and ignores that it may not be the correct image, such as if doing a search for aki-0000009, yet that image name doesn't exist, it strips off aki- and looks for any image\_id 0000009 and if there was an image match that happens to be an ami instead of aki, it will go ahead and deregister that. That behavior is unintended, so added logic to ensure that the original request image\_id matches the type of image being returned from database by matching against container\_format attr * sqlalchemy/migrate: resolved version conflict * merge with trunk * pull-up from trunk * unit test suite for the multinic extension * pull-up from trunk * Added server entity to images that only has id * Merging issues * Updated \_create\_link\_nodes to be consistent with other create\_\*\_nodes * Changed name of xml\_string to to\_xml\_string * Merging issuse * Temporarily moved create server node functionality into images.py Temporarily changed image XML tests to expect server entities with only ids * Removed serverRef from some tests and viewbuilder * Comments for bugfix800759 and pep8 * Removed bookmark link from non detailed image viewbuilder * implemented clean-up logic when VM fails to spawn for xenapi back-end * Adds the os-hosts API extension for interacting with hosts while performing maintenance. This differs from the previous merge prop as it uses a RESTful design instead of GET-based actions * Added param to keep current things from breaking until we update all of the xml serializers and view builders to reflect the current spec * Fixes Bug #805083: "libvirtError: internal error cannot determine default video type" when using UML * Dried up images XML serialization * Dried up images XML serialization * stricter zone\_id checking * trunk merge * cleanup * Added image index * pep8 fixes * Comments Incorporated for Bug800759 * Added API and supporting code for rebooting or shutting down XenServer hosts * fixed image create response test * Updated test\_detail * Merged trunk * make server and image metadata optional * Updated the links container for flavors to be compliant with the current spec * pep8 * Renamed function * moved remove\_version to common.py * unit tests * progress and server are optional * merged trunk * Add a socket server responding with an allowing flash socket policy for all requests from flash on port 843 to nova-vncproxy * pep8 compliance * Pull-up from trunk (post-multi\_nic) * changed calling signature to be (instance\_id, address) * correct test\_show * first round * removed extra comment * Further test update and begin correcting serialization * Removed a typo error in libvirt connection.py * updated expected xml in images show test to represent current spec * pep8 fixes * Added VIF driver concept * Added the missing 'self' parameter * after trunk merge * Changed the exception type for invalid requests to webob.exc.HTTPBadRequest * Added net\_attrs argument for ensure\_bridge/vlan methods * Added a L2 network driver for bridge/vlan creation * wrap list comparison in test with set()s * slightly more fleshed out call path * merged trunk * merge code i'd split from instance\_get\_fixed\_addresses\_v6 that's no longer needed to be split * fix metadata test since fixed\_ip searching now goes thru filters db api call instead of the get\_by\_fixed\_ip call * clean up compute\_api.get\_all filter name remappings. ditch fixed\_ip one-off code. fixed ec2 api call to this to compensate * clean up OS API servers getting * rename \_check\_servers\_options, add some comments and small cleanup in the db get\_by\_filters call * pep8 fix * convert filter value to a string just in case before running re.compile * add comment for servers\_search\_options list in the OS API Controllers * pep8 fixes * fix ipv6 search test and add test for multiple options at once * test fixes.. one more to go * resolved conflict incorrectly from trunk merge * merged trunk * doc string fix * fix OS API tests * test fixes and typos * typos * cleanup checking of options in the API before calling compute\_api's get\_all() * a lot of major re-work.. still things to finish up * merged trunk * remove debug from failing test * remove faults.Fault wrapper on exceptions * rework OS API checking of search options * merged trunk * missing doc strings for fixed\_ip calls I renamed * clarify a couple comments * test fixes after unknown option string changes * minor fixups * merged trunk * pep8 fixes * test fix for renamed get\_by\_fixed\_ip call * ec2 fixes * added API tests for search options fixed a couple of bugs the tests caught * allow 'marker' and 'limit' in search options. fix log format error * another typo * merged trunk * missed power\_state import in api fixed reversed compare in power\_state * more typos * typos * flavor needs to be converted to int from query string value * add image and flavor searching to v1.0 api fixed missing updates from cut n paste in some doc strings * added searching by 'image', 'flavor', and 'status' reverted ip/ip6 searching to be admin only * compute's get\_all should accept 'name' not 'display\_name' for searching Instance.display\_name. Removed 'server\_name' searching.. Fixed DB calls for searching to filter results based on context * Refactored OS API code to allow checking of invalid query string paremeters and admin api/context to the index/detail calls. v1.0 still ignores unknown parameters, but v1.1 will return 400/BadRequest on unknown options. admin\_api only commands are treated as unknown parameters if FLAGS.enable\_admin\_api is False. If enable\_admin\_api is True, non-admin context requests return 403/Forbidden * clean up checking for exclusive search options fix a cut n paste error with instance\_get\_all\_by\_name\_regexp * merged trunk * python-novaclient 2.5.8 is required * fix bugs with fixed\_ip returning a 404 instance searching needs to joinload more stuff * added searching by instance name added unit tests * pep8 fixes * Replace 'like' support with 'regexp' matching done in python. Since 'like' would result in a full table scan anyway, this is a bit more flexible. Make search options and matching a little more generic Return 404 when --fixed\_ip doesn't match any instance, instead of a 500 only when the IP isn't in the FixedIps table * start of re-work of compute/api's 'get\_all' to handle more search options * Silence warning in case tests.sqlite doesn't exist * fix libvirt test * update tests * don't set network host for multi\_host networks * add ability to set multi\_host in nova-manage and remove debugging issues * filter the dhcp to only respond to requests from this host * pass in dhcp server address, fix a bunch of bugs * PEP8 passed * Formatting fix * Proper Author section insertion (thx Eldar) * Signal handler cleanup, proper ^C handling * copy paste * make sure to filter out ips associated by host and add some sync for allocating ip to host * fixed zone id check * it is multi\_host not multi\_gateway * First round of changes for ha-flatdhcp * Updated the plugin to return the actual enabled status instead of just 'true' or 'false' * UML doesnt do vnc as well * fixed a bug which prevents suspend/resume after block-migration * Gracefull shutdown of nova-api * properly displays addresses in each network, not just public/private; adding addresses attribute to server entities * Gracefull shutdown of nova-api * Removing import of nova.test added to nova/\_\_init.py\_\_ as problem turned out to be somewhere else (not in nova source code tree) * Fixing weird error while running tests. Fix required patching nova/tests/\_\_\_init\_\_.py explictly importing nova.test * Added missing extension file and tests. Also modified the get\_host\_list() docstring to be more accurate about the return value * Silence warning in case tests.sqlite doesn't exist * Fix boot from volume failure for network block devices * Improvements to nova-manage: network list now includes vlan and projectID, added servers list filtered by zone if needed * removed unneeded old commented code * removed more stray debug output * removed debugging output * after trunk merge * Updated unit tests * remove logging statement * Found some additional fixed\_ip. entries in the Intance model contest that needed to be updated * use url parse instead of manually splitting * Changed fixed\_ip.network to be fixed\_ips.network, which is the correct DB field * Added the GroupId param to any pertinent security\_group methods that support it in the official AWS API * Removes 'import IPy' introduced in recent commit * removing IPy import * trunk merge * Fixed the case where an exception was thrown when trying to get a list of flavors via the api yet there were no flavors to list * fix up tests * tweak * review fixes * completed api changes. still need plugin changes * Update the fixed\_ip\_disassociate\_all\_by\_timeout in nova.db.api so that it supports Postgres. Fixes casting errors on postgres with this function * after trunk merge * Fixes MANIFEST.in so that migrate\_repo/versions/\*.sql files are now included in tarball * Include migrate\_repo/versions/\*.sql in tarball * Ensure auto-delete is false on Topic Queues * refactored the security\_group tests a bit and broke up a few of them into smaller tests * Reverses the self.auto\_delete = True that was added to TopicPublisher in the bugfix for lp804063. That bugfix should have only added auto\_delete = True to FanoutPublisher to match the previous change to FanoutConsumer * Added 'self.auto\_delete = True' to the two Publisher subclasses that lacked that setting * Added the '--fixes' tag to link to bug * Added self.auto\_delete = True to the Publisher subclasses that did not have that set * added multi-nic support * osapi test\_servers fixed\_ip -> fixed\_ips * updated osapi 1.0 addresses view to work with multiple fixed ips * trunk merge with migration renumbering * Allows subdirectory tests to run even if sqlite database doesn't exist * fix bug 800759 * Child Zone Weight adjustment available when adding Child Zones * trunk merge * blah * merge trunk * merged trunk * Windows instances will often take a few minutes setting up the image on first boot and then reboot. We should be more patient for those systems as well check if the domid changes so we can send agent requests to the current domid * Theese changes eliminate dependancy between hostname and ec2-id. As I understand, there already were no such dependancy, but still we had confusing names in code. Also I added more sophisticated generation of default hostname to give user possibility to set the custom one * updated images * updated servers * refactored flavors viewbuilder * fixes lp:803615 * added FlavorRef exception handling on create instance * refactored instance type code * Update the ec2 get\_metadata handler so it works with the most recent version of the compute API get\_all call which now returns a list if there is only a single record * - add metadata container to /images/detail and /images/ responses - update xml serialization to encode image entities properly * merging trunk * PEP8 fix * Adapt flash socket policy branch to new nova/wsgi.py refactoring * clean up * Update the ec2 get\_metadata handler so it works with the most recent version of the compute API get\_all call which now returns a list if there is only a single record * trunk merge * pep8 * pep8 * done and done * Update the fixed\_ip\_disassociate\_all\_by\_timeout in nova.db.api so that it supports Postgres. Fixes casting errors on postgres with this function * phew ... working * compute\_api.get\_all should be able to recurse zones (bug 744217). Also, allow to build more than one instance at once with zone\_aware\_scheduler types. Other cleanups with regards to zone aware scheduler.. * Updated v1.1 links in flavors to represent the curret spec * fix issue of recurse\_zones not being converted to bool properly add bool\_from\_str util call add test for bool\_from\_str slight rework of min/max\_count check * fixed incorrect assumption that nullable defaults to false * removed port\_id from virtual interfaces and set network\_id to nullable * changes a few instance refs * merged trunk * Rename one use of timeout to expiration to make the purpose clearer * pulled in koelkers test changes * merge with trey * major reactor of the network tests for multi-nic * Merged trunk * Fixes Bug #803563 by changing how nova passes options in to glance. Before, if limit or marker were not set, we would pass limit=0 and marker=0 in to glance. However, marker is supposed to be an image id. With this change, if limit or marker are not set, they are simply not passed into glance. Glance is free then to choose the default behavior * Fixed indentation issues Fixed min/max\_count checking issues Fixed a wrongly log message when zone aware scheduler finds no suitable hosts * Fixes Bug #803563 by changing how nova passes options in to glance. Before, if limit or marker were not set, we would pass limit=0 and marker=0 in to glance. However, marker is supposed to be an image id. With this change, if limit or marker are not set, they are simply not passed into glance. Glance is free then to choose the default behavior * Sets 'exclusive=True' on Fanout amqp queues. We create the queues with uuids, so the consumer should have exclusive access and they should get removed when done (service stop). exclusive implies auto\_delete. Fixes lp:803165 * don't pass zero in to glance image service if no limit or marker are present * more incorrect list type casting in create\_network * removed the list type cast in create\_network on the NETADDR projects * renumbered migrations again * Make sure test setup is run for subdirectories * merged trunk, fixed the floating\_ip fixed\_ip exception stupidity * trunk merge * "nova-manage vm list" was still referencing the old "image\_id" column, which was renamed to "image\_ref" at revision 1144 * Implement backup with rotation and expose this functionality in the OS API * Allow a port name in the server ref for image create * Fanout queues use unique queue names, so the consumer should have exclusive access. This means that they also get auto deleted when we're done with them, so they're not left around on a service restart. Fixes lp:803165 * pep8 fix * removed extra stubout, switched to isinstance and catching explicit exception * get latest branch * Deprecate -r for run\_tests.sh and adds -n, switching the default back to recreate * check\_domid\_changes is superfluous right now since it's only used when timeout is used. So simplify code a little bit * updated pip-requires for novaclient * Merged trunk * pip requires * adopt merge * clean up logging for iso SR search * moved to wrap\_exception approach * Fix 'undefined name 'e'' pylint error * change the default to recreate the db but allow -n for faster tests * Fix nova-manage vm list * Adding files for building an rpm for xenserver xenapi plugins * moved migration again & trunk merge * Brought back that encode under condition * Add test for hostname generation * Remove unnessesary (and possibly failing) encoding * Fix for bug 803186 that fixes the ability for nova-api to run from a source checkout * moved to wrap\_exception decorator * Review feedback * Merged trunk * Put possible\_topdir back in nova-api * Use milestone cut * Merged trunk * Let glance handle sorting * merging trunk * Review feedback * This adds system usage notifications using the notifications framework. These are designed to feed an external billing or similar system that subscribes to the nova feed and does the analysis * Refactored usage generation * pep8 * remove zombie file * remove unecessary cast to list * merge with trey * OOPS * Whoops * Review feedback * skipping another libvirt test * Fix merge issue in compute unittest * adding unicode support to image metadata * Fix thinko in previous fix :P * change variable names to remove future conflict with sandy's zone-offsets branch * Fix yet more merge-skew * merge with trey * This branch allows LdapDriver to reconnect to LDAP server if connection is lost * Fix issues due to renming of imange\_id attrib * Re-worked some of the WSGI and WSGIService code to make launching WSGI services easier, less error prone, and more testable. Added tests for WSGI server, new WSGI loader, and modified integration tests where needed * Merged trunk * update a test docstring to make it clear we're testing multiple instance builds * log formatting typo pep8 fixes * Prevent test case from ruining other tests. Make it work in earlier python versions * pep8 fix * I accidently the whole unittest2 * Adds support for "extra specs", additional capability requirements associated with instance types * refactoring to compute from scheduler * remove network to project bind * resync with trunk * Add test for spawn from an ISO * Add fake SR with ISO content type * Revise key used to identify the SR used to store ISO images streamed from Glance * remerged trunk * Fix pep8 nits in audit script * Re-merging code for generating system-usages to get around bzr merge braindeadness * getting started * Added floating IP support in OS API * This speeds up multiple runs of tests to start up much faster because it only runs db migrations if the test db doesn't exist. It also adds the -r/--recreate-db option to run\_tests.sh to delete the tests db so it will be recreated * small formatting change * breaking up into individual tests for security\_groups * Proposing this because it is a critical fix before milestone. Suggestions on testing it are welcome * logging fixes * removed unneded mac parameter to lease and release fixed ip functions * Made \_issue\_novaclient\_command() behave better. Fixed a bunch of tests * Review feedback * merge with trey * trunk merge, getting fierce. * Merged trunk * Added nova.version to utils.py * - Modified NOTE in vm\_util.py - Changed gettext line to nova default in guest\_tool.py * renaming tests * make sure basic filters are setup on instance restart * typo * changed extension alias to os-floating-ips * missed the bin line * Updating license to ASL 2.0 * update nova.sh * make nova-debug work with new style instances * Changed package name to openstack-xen-plugins per dprince's suggestion. All the files in /etc/xapi.d/plugins must be executable. Added dependency on parted. Renamed build.sh to build-rpm.sh * remove extra stuff from clean vlans * Clarify help verbiage * making key in images metadata xml serialization test null as well * making image metadata key in xml serialization test unicode * extracting images metadata xml serialization tests into specific class; adding unicode image metadata value test * merged blamar's simpler test * Pulled changes, passed the unit tests * Pulled trunk, merged boot from ISO changes * Removed now un-needed fake\_connection * Use webob to test WSGI app * fixed pep style * review issues fixed * sqlalchmey/migration: resolved version conflict * merge with trunk * Adding files for building an rpm for xenserver xenapi plugins * Upstream merge * merging trunk; adding error handling around image xml serialization * adding xml serialization test of zero images * pep8 * add metadata tests * add fake connection object to wsgi app * add support to list security groups * only create the db if it doesn't exist, add an option -r to run\_tests.py to delete it * Fix for bug #788265. Remove created\_at, updated\_at and deleted\_at from instance\_type dict returned by methods in sqlalchemy API * PEP8 fix * pep8 * Updated \_dict\_with\_extra\_specs docstring * Renamed \_inst\_type\_query\_to\_dict -> \_dict\_with\_extra\_specs * Merged from trunk * Add api methods to delete provider firewall rules * This small change restores single quotes and double quotes as they were before in the filter expression for retrieving the PIF (physical interface) xenapi should use for creating VLAN interfaces * Remove the unnecessary insertion of whitespace. This happens to be enough to make this patch apply on recent versions of XenServer / Xen Cloud Platform * Removes the usage of the IPy module in favor of the netaddr module * - update glance image fixtures with expected checksum attribute - ensure checksum attribute is handled properly in image service * mailmap * mailmap * configure number of attempts to create unique mac address * merged * trunk merged. conflicts resolved * added disassociate method to tests * fixes * tests * PEP8 cleanup * parenthesis issue in the migration * merge * some tests and refactoring * Trunk merge fixes * Merging trunk * implement list test * some tests * fix tests for extensions * Fixed snapshot logic * PEP8 cleanup * Refactored backup rotate * conflict resolved * stub tests * add stubs for flating api os api testing * merge with kirill * associate diassociate untested, first attept to test * Pep8 fix * Adding tests for backup no rotation, invalid image type * Fixed the default arguments to None instead of an empty list * Fixing PEP8 compliance issues * Trailing whitespace * Adding tests for snapshot no-name and backup no-name * Edited the host filter test case for extra specs * Removed an import * Merged from trunk * Remove extra debug line * Merged with trunk * Add reconnect test * Use simple\_bind\_s instead of bind\_s * Add reconnect on server fail to LDAP driver * ec2/cloud: typo * image/s3: typo * same typo i made before! * on 2nd run through filter\_hosts, we've already accounted for the topic memory needs converted to Bytes from MB * LeastCostScheduler wasn't checking for topic cost functions correctly. Added support so that --least\_cost\_scheduler\_cost\_functions only needs to have method names specified, instead of the full blown version with module and class name. Still works the old way, too * requested\_mem typo * more typos * typo in least cost scheduler * Unwind last commit, force anyjson to use our serialization methods * debug logging of number of instances to build in scheduler * missed passing in min/max\_count into the create/create\_all\_at\_once calls * Dealing with cases where extra\_specs wasn't defined * pep8 fixes * Renamed from flavor\_extra\_specs to extra\_specs * All tests passing * missed passing an argument to consume\_resources * Committing some broken code in advance of trying a different strategy for specifying args to extensions.ResoruceExtensions, using parent * Starting to transition instance type extra specs API to an extension API * Now automatically populates the instance\_type dict with extra\_specs upon being retrieved from the database * pep8 * Created Bootstrapper to handle Nova bootstrapping logic * alter test, alter some debug statements * altered some tests * freakin migration numbering * trunk merge * removing erroneous block, must've been a copy and paste fat finger * specify keyword, or direct\_api proxy method blows up * updated the way vifs/fixed\_ips are deallocated and their relationships, altered lease/release fixed\_ip * Fixed syntax errors * This adds a way to create global firewall blocks that apply to all instances in your nova installation * Accept a full serverRef to OSAPI POST /images (snapshot) * Cast rotation to int * PEP8 cleanup * Fixed filter property and added logging * added tests * Implemented view and added tests * Adding missing import * Fixed issue with zero flavors returning HTTP 500 * Adding dict with single 'meta' key to /imgages//meta/ GET and PUT * fixing 500 error on v1.0 images xml * Small refactoring around getting params * libvirt test for deleting provider firewall rules * Make firewall rules tests idempotent, move IPy=>netaddr, add deltete test * merge from trunk * altho security\_group authorize & revoke tests already exist in test\_api, adding some direct ec2 api method tests. added group\_id param support to the pertinent security group methods * Make sure there are actually rules to test against * Add test for listing provider firewall rules * pep8: remove newline at end of file * Add admin api test case (like cloud test case) with a test for fw rules * Move migration to newer version * an int() was missed being removed from UUID changes when zone rerouting kicks in * fixing 500 on None metadata value * proper xml serialization for images * "nova-manage checks if user is member of proj, prior to adding role for that project" * adding metadata container to /images/detail and /images/ calls * Add xml serialization for all /images//meta and /images//meta/ responses * trunk merge and migration bump * handle errors for listing an instance by IP address * Merged markwash's fixes * Merged list-zone-recurse * str\_GET is a property * Fixed typo * Merged trunk * minor fixups * fixes for recurse\_zones and None instances with compute's get\_all * typo * add support for compute\_api.get\_all() recursing zones for more than just reservation\_id * Change so that the flash socket policy server is using eventlet instead of twisted and is running in the same process as the main vnx proxy * ec2/cloud: address review * compute/api: an unit test for \_update\_{image\_}bdm * ec2/cloud: unit tests for parser/formatter of block device mapping * ec2/cloud: an unit test for \_format\_instance\_bdm() * ec2utils: an unit test for mapping\_prepend\_dev() * ec2: bundle block device mapping * ec2utils: introduce helper function to prepend '/dev/' in mappings * volume/api: an unit test for create\_snapshot\_force() * Add some resource checking for memory available when scheduling Various changes to d-sched to plan for scheduling on different topics, which cleans up some of the resource checking. Re-compute weights when building more than 1 instance, accounting for resources that would be consumed * Returned code to original location * Merged from trunk * run launcher first since it initializes global flags and logging * Now passing unit tests * Two tests passing * Now stubbing nova.db instead of nova.db.api * Bug fixing * Added flavor extra specs controller * Initial unit test (failing) * This catches the InstanceNotFound exception on create, and ignores it. This prevents errors in the compute log, and causes the server to not be built (it should only get InstanceNotFound if the server was deleted right after being created). This is a temporary fix that should be fixed correctly once no-db-messaging stuff is complete * allocate and release implementation * fixed pep8 issues * merge from trunk * image -> instance in comment * added virtual\_interface\_update method * Fixes issues with displaying exceptions regarding flavors in nova-manage * better debug statement around associating floating ips when multiple fixed\_ips exist * pep8 fixes * merging trunk * added fixed ip filtering by null virtual interface\_id to network get associated fixed ips * fixed ip gets now have floating IPs correctly loaded * reverting non-xml changes * Adding backup rotation * moving image show/update into 'meta' container * Check API request for min\_count/max\_count for number of instances to build * updated libvirt tests network\_info to be correct * fixed error * skipping more ec2 tests * skipping more ec2 tests * skipping more ec2 tests * skipping test\_run\_with\_snapshot * updated test\_cloud to set stub\_network to true * fixed incorrect exception * updating glance image fixtures with checksum attribute; fixing glance image service to use checksum attribute * Round 1 of backup with rotation * merge from trunk * fix some issues with flags and logging * Add a socket server responding with an allowing flash socket policy for all requests from flash on port 843 to nova-vncproxy * api/ec2: an unit test for create image * api/ec2, boot-from-volume: an unit test for describe instances * unittest: an unit test for ec2 describe image attribute * test\_cloud: an unit test for describe image with block device mapping * ec2utils: an unit test for ec2utils.properties\_root\_defice\_name * unittest, image/s3: unit tests for s3 image handler * image/s3: factor out \_s3\_create() for testability * ec2utils: unit tests for case insensitive true/false conversion * ec2utils: add an unit test for dict\_from\_dotted\_str() * test\_api: unit tests for ec2utils.id\_to\_ec2\_{snap, vol}\_id() * api/ec2: make CreateImage pass unit tests * volume/api: introduce create\_snapshot\_force() * api/ec2/image: make block device mapping pass unit tests * db/block\_device\_mapping/api: introduce update\_or\_create * db/migration: resolve version conflict * merge with trunk * ec2 api describe\_security\_groups allow group\_id param , added tests for create/delete security group in test\_cloud although also exists in test\_api this tests directly the ec2 method * pip-requires * pep8 * fixed zone update * Stop trying to set a body for HTTP methods that do not allow it. It renders the unit tests useless (since they're testing a situation that can never arise) and webob 1.0.8 fails if you do this * fixed local db create * omg stop making new migrations.. * trunk merge * merge from trunk * added try except around floating ip get by host in host init * This branch adds support to the xenapi driver for updating the guest agent on creation of a new instance. This ensures that the guest agent is running the latest code before nova starts configuring networking, setting root password or injecting files * renamed migrations again * merge from trunk * if we get InstanceNotFound error on create, ignore (means it has been deleted before we got the create message) * some libvirt multi-nic just to get it to work, from tushar * Removed whitespace * Fixed objectstore test * merge with trey * Very small alterations, switched from using start() to pass host/port, to just defining them up front in init. Doesn't make sense to set them in start because we can't start more than once any way. Also, unbroke binaries * Bump WebOb requirement to 1.0.8 in pip-requires * Oops, I broke --help on nova-api, fixed now * pep8 fix * Monkey patching 'os' kills multiprocessing's .join() functionality. Also, messed up the name of the eventlet WSGI logger * Filter out datetime fields from instance\_type * erase unnecessary TODO: statement * fixed reviewer's comment. 1. adding dest-instance-dir deleting operation to nova.compute.manager, 2. fix invalid raise statement * fix comment line * Stop trying to set a body for HTTP methods that do not allow it. It renders the unit tests useless (since they're testing a situation that can never arise) and webob 1.0.8 fails if you do this * log -> logging to keep with convention * Removed debugging and switched eventlet to monkey patch everything * Removed unneeded import * Tests for WSGI/Launcher * Remove the unnecessary insertion of whitespace. This happens to be enough to match this patch apply on recent versions of XenServer / Xen Cloud Platform * trunk merge * fix lp 798361 * Removed logging logic from \_\_init\_\_, added concept of Launcher...no tests for it yet * nova-manage checks if user is member of proj, prior to adding role for that project * Other migrations have been merged in before us, so renumber * Merged trunk * pep8 fixes * assert\_ -> assertTrue since assert\_ is deprecated * added adjust child zone test * tests working again * updated the exceptions around virtual interface creation, updated flatDHCP manager comment * more trunks * another trunk merge * This patch adds support for working with instances by UUID in addition to integer IDs * importing sqlalchemy IntegrityError * Moving add\_uuid migration to 025 * Merging trunk, fixing conflicts * Enclosing tokens for xenapi filter in double quotes * working commit * Fix objectstore test * Cleanup and addition of tests for WSGI server * Merged trunk * Check that server exists when interacting with /v1.1/servers//meta resource * No, really. Added tests for WSGI loader * Added tests for WSGI loader * nova.virt.libvirt.connection.\_live\_migration is changed * Cleanup * merged rev trunk 1198 * Introduced Loader concept, for paste decouple * fix pep8 check * fix comments at nova.virt.libvirt.connection * Cleanup of the cleanup * Further nova-api cleanup * Cleaned up nova-api binary and logging a bit * Removed debugging, made objectstore tests pass again * General cleanup and refactor of a lot of the API/WSGI service code * Adding tests for is\_uuid\_like * Using proper UUID format for uuids * Implements a portion of ec2 ebs boot. What's implemented - block\_device\_mapping option for run instance with volume (ephemeral device and no device isn't supported yet) - stop/start instance * updated fixed ip and floating ip exceptions * pep8: white space/blank lines * Merging trunk * renamed VirtualInterface exception and extend NovaException * moving instance existance logic down to api layer * Ensure os\_type and architecture get set correctly * Make EC2 update\_instance() only update updatable\_fields, rather than all fields. Patch courtesy of Vladimir Popovski * Fixes two minor bugs (lp795123 and lp795126) in the extension mechanism. The first bug is that each extension has \_check\_extension() called twice on it; this is a minor cosmetic problem, but the second is that extensions which flunk \_check\_extension() are still added. The proposed fix is to make \_check\_extensions() return True or False, then make \_add\_extension() call it from the top and return immediately if \_check\_extensions() returns False * Fixes a bug where a misleading error message is outputted when there's a sqlalchemy-migrate version conflict * Result is already in JSON format from \_wait\_for\_agent * Fix PEP8 * Fix for lp:796834 * Add new architecture attribute along with os\_type * bunch of docstring changes * adding check for serverRef hostname matching app url * Fix for Bug lp:796813 * Fix the volumes extension resource to have a proper prefix - /os-volumes * Fixes lp797017, which is broken as a result of a fragile method in the xenapi drivers that assumed there would only ever be one VBD attached to an instance * adding extra image service properties to compute api snapshot; adding instance\_ref property * Missed a pep8 fix * Remove thirdwheel.py and do the test with a now-public ExtensionManager.add\_extension() * Removes nova/image/local.py (LocalImageService) * Add some documentation for cmp\_version Add test cases for cmp\_version * Increased error message readability for the OpenStack API * fixing test case * Updated "get\_all\_across\_zones" in nova/compute/api.py to have "context = context.elevated()", allowing it to be run by non-admin users * merging trunk * more words * Cleaned up some pep8 issues in nova/api/openstack/create\_instance\_helper.py and nova/api/openstack/\_\_init\_\_.py * Pull-up from trunk * Add a test to ensure invalid extensions don't get added * Update xenapi/vm\_utils.py so that it calls find\_sr instead of get\_sr. Remove the old get\_sr function which by default looked for an SR named 'slices' * add vlan diagram and some text * Added context = context.elevated() to get\_all\_across\_zones * auto load table schema instead of stubbing it out * Fixed migration per review feedback * Made hostname independent from ec2 id. Add generation of hostnames based on display name * Fix for a problem where run\_tests.sh would output a seemingly unrelated error message when there was a sqlalchemy-migrate version number conflict * stub api methods * Missed a InstanceTypeMetadata -> InstanceTypeExtraSpecs rename in register\_models * Fix unitttest so that it actually fails without the fix * Make $my\_ip Glance's default host, not localhost * We don't check result in caller, so don't set variable to return value * Remove debugging statement * Fix lp795123 and lp795126 by making \_check\_extension() return True or False and checking the result only from the top of \_add\_extension() * Glance host defaults to rather than localhost * Upstream merge * add in dhcp drawing * Rename: intance\_type\_metadata -> instance\_type\_extra\_specs * erroneous self in virtual\_interface\_delete\_by\_instance() sqlalchemy api * Fixes a bug where a unit test sometimes fails due to a race condition * remove the network-host fromt he flat diagram * add multinic diagram * add the actual image * Renaming to \_build\_instance\_get * merged trunk * returned two files to their trunk versions, odd that they were altered in the first place * Added a new test for confirming failure when no primary VDI is present * Unit tests pass again * more doc (and by more I mean like 2 or 3 sentances) * Fix copyright date * PEP8 cleanup * Attempting to retrieve the correct VDI for snapshotting * Fixing another test * Fixing test\_servers\_by\_uuid * floating\_ips extension is loading to api now * initial commit of multinic doc * generated files should not be in source control * Fixed UUID migration * Added UUID migration * Clean up docstrings to match HACKING * merge with trey * Small tweaks * Merged reldan changes * First implementation of FloatingIpController * First implementation of FloatingIpController * compute/api: fix mismerge due to instance creation change * ec2/cloud.py: fix mismerge * fix conflict with rebasing * api/ec2: support CreateImage * api/ec2/image: support block device mapping * db/model: add root\_device\_name column to instances table * ec2utils: consolidate 'vol-%08x' and 'snap-%08x' * api/ec2: check user permission for start/stop instances * ec2utils: consolidate 'vol-%08x' and 'snap-%08x' * api/ec2: check user permission for start/stop instances * api/ec2: check user permission for start/stop instances * Adds 'joinedload' statements where they need to be to prevent access of a 'detached' object * novaclient changed to support projectID in authentication. Caused some minor issues with distributed scheduler. This fixes them up * Add trailing LF (\n) to password for compatibility with old agents * Workaround windows agent bugs where some responses have trailing \\r\\n * removed commented out shim on Instance class * Windows instances will often take a few minutes setting up the image on first boot and then reboot. We should be more patient for those systems as well check if the domid changes so we can send agent requests to the current domid * Split patch off to new branch instead * Add --fixes * First attempt to rewrite reroute\_compute * syntax * Merged trunk * Windows instances will often take a few minutes setting up the image on first boot and then reboot. We should be more patient for those systems as well check if the domid changes so we can send agent requests to the current domid * Fixed bug * Added metadata joinedloads * Prep-work to begin on reroute\_compute * specify mysql\_engine for the virtual\_interfaces table in the migration * Passed in explanation to 400 messages * Fixing case of volumes alias * The volumes resource extension should be prefixed by its alias - os-volumes * Adding uuid test * Pep8 Fixes * Fixing test\_servers.py * pep8 * Fixing private-ips test * adding server existence check to server metadata resource * Fixing test\_create\_instance * made the test\_xenapi work * test xenapi injected set to True * something else with tests * something with tests * i dont even care anymore * network\_info has injected in xenapi tests * Adding UUID test * network\_info passed in test\_xenapi, mac\_address no longer in instance values dict * added network injected to stub * added injected to network dict oportion of tuple returned by get\_instance\_nw\_info * don't provision to all child zones * network info to \_create\_vm * fix mismerge * updated xenapi\_conn finish\_resize arguments * stubbed out get\_instance\_nw\_info for compute\_test * pip novaclient bump * merge with nova trunk * fixed up some little project\_id things with new novaclient * typo * updated finish\_resize to accept network\_info, updated compute and tests in accordance * \_setup\_block\_device\_mapping: raise ApiError when db inconsistency found * db/block\_device\_mapping\_get\_all\_by\_instance: don't raise * Print list of agent builds a bit prettier * PEP8 cleanups * Rename to 024 since 023 was added already * pep8 * The Xen driver supports running instances in PV or HVM modes, but the method it uses to determine which to use is complicated and doesn't work in all cases. The result is that images that need to use HVM mode (such as FreeBSD 64-bit) end up setting a property named 'os' set to 'windows' * typo * None project\_id now default * Adds code to run\_tests.py which: * Fixing code to ensure unit tests for objectstore, vhd & snapshots pass * ec2utils: minor optimize \_try\_convert() * block\_device\_mapping: don't use [] as default argument * api/ec2: make the parameter parser an independent method * Show only if we have slow tests, elapsed only if test success * Showing elapsed time is now default * Ensuring pep8 runs even when nose optons are passed * network tests now teardown user * Removing seconds unit * network user only set if doesnt exist * net base project id now from context, removed incorrect floatnig ip host assignment * fixed instance[fixed\_ip] in ec2 api, removed fixed\_ip shim * various test fixes * Updated so that we use a 'tmp' subdirectory under the Xen SR when staging migrations. Fixes an issue where you would get a 'File exists' error because the directory under 'images' already existed (created via the rsync copy) * db fakes silly error fix * debug statements * updated db fakes * updated db fakes * Changed requests with malformed bodies to return a HTTP 400 Bad Request instead of a HTTP 500 error * updated db fakes and network base to work with virtual\_interface instead of mac\_address * Phew ... ok, this is the last dist-scheduler merge before we get into serious testing and minor tweaks. The heavy lifting is largely done * db fakes * db fakes * updated libvirt test * updated libvirt test * updated libvirt test * updated libvirt test * updated libvirt test * getting the test\_host\_filter.py file from trunk, mine is jacked somehow * removed extra init calls * fixed HACKING * Changed requests with malformed bodies to return a HTTP 400 Bad Request instead of a HTTP 500 error * duplicate routes moved to base class * fixed scary diff from trunk that shouldnt have been there * version passing cleanup * refactored out controller base class to use aggregation over inheritance * Move ipy commands to netaddr * merged trunk * mp fixes * Really PEP8? A tab is inferior to 2 spaces? * pep8 fix * upstream merge * Stub out the rpc call in a unit test to avoid a race condition * merged trunk rev 1178 * Making timing points stricter, only show slow/sluggish tests in summary * Improved errors * added kernel/ramdisk migrate support * Added faults wrapper * remove file that got ressurected * Cleaned up pep8 errors using the current version of pep8 located in pip-requires. This is to remove the cluttered output when using the virtualenv to run pep8 (as you should). This will make development easier until the virtualenv requires the latest version of pep8 (see bug 721867) * merge with trey * autoload with the appropriate engine during upgrade/downgrade * Created new exception for handling malformed requests Wrote tests Raise httpBadRequest on malformed request bodies * Fixed bug 796619 * Adds --show-elapsed option for run\_tests * pep8 * Alias of volumes extension should be OS-VOLUMES * Illustrations now added to Distributed Scheduler documentation (and fixed up some formatting) * Load table schema automatically instead of stubbing out * Removed clocksource=jiffies from PV\_args * Test now passes even if the rpc call does not complete on time * - fixes bug that prevented custom wsgi serialization * Removed clocksource=jiffies from PV\_args * merging trunk, fixing pep8 * pep8 * Improved tests * removing unnecessary lines * wsgi can now handle dispatching action None more elegantly * This fixes the server\_metadata create and update functions that were returning req.body (as a string) instead of body (deserialized body dictionary object). It also adds checks where appropriate to make sure that body is not empty (and return 400 if it is). Tests updated/added where appropriate * removed yucky None return types * merging trunk * trunk merge * zones image\_id/image\_href support for 1.0/1.1 * Update xenapi/vm\_utils.py so that it calls find\_sr instead of get\_sr. Remove the old get\_sr function which by default looked for an SR named 'slices' * fixed bug 796619 * merge trunk * check for none and empty string, this way empty dicts/lists will be ok * Updated so that we use a 'tmp' subdirectory under the Xen SR when staging migrations. Fixes an issue where you would get a 'File exists' error because the directory under 'images' already existed (created via the rsync copy) * fix method chaining in database layer to pass right parameters * Add a method to delete provider firewall rules * Add ability to list ip blocks * pep 8 whitespace fix * Move migration * block migration feature added * Reorder firewall rules so the common path is shorter * ec2 api method allocate\_address ; raises exception.NoFloatingIpsDefined instead of UnknownError when there aren't any floating ips available * in XML Serialization of output, the toprettyxml() call would sometimes return a str() and sometimes unicode(), I've forced encoding to utf-8 to ensure that we always get str(). This fixes the related bug * A recent commit added a couple of directories that don't belong in version control. Remove them again * adding support for cusom serialization methods * forgot a comma * floating ips can now move around the network hosts * A recent commit added a couple of directories that don't belong in version control. Remove them again * 'network list' prints project id * got rid of prints for debugging * small pep8 fixes * return body correctly as object instead of a string, with tests, also check for empty body on requests that need a body * adding xml support to /images//meta resource; moving show/update entities into meta container * removed posargs decorator, all methods decorated * Allows Nova to talk to multiple Glance APIs (without the need for an external load-balancer). Chooses a random Glance API for each request * forgot a comma * misc argument alterations * force utf-8 encoding on toprettyxml call for XMLDictSerializer * added new exception more descriptive of not having available floating addresses avail for allocation * raise instance instead of class * Fix copyright year * style change * Only update updateable fields * removing LocalImageService from nova-manage * rebase from trunk * decorators for action methods added * source illustrations added & spelling/grammar based on comstud's feedback * fixed reraise in trap\_error * forgot some debugging statements * trunk merge and ec2 tests fixed * Add some docstrings for new agent build DB functions * Add test for agent update * Multiple position dependent formats and internationalization don't work well together * Adding caveat * Fixing code per review comments * removed fixed\_ips virtual\_interface\_id foreignkey constraint from multi\_nic migration, and added it as a standalone migration with special sqlite files * Record architecture of image for matching to agent build later. Add code to automatically update agent running on instance on instance creation * Add version and agentupdate commands * Add an extension to allow for an addFixedIp action on instances * further changes * tests working after merge-3 update * 022 migration has already been added, so make ours 023 now * parse options with optparse, options prepended '--' * renamed migration again * Pull-up from multi\_nic * merged koelkers tests branch * remove file that keeps popping up * Merging trunk * Fixing the tests * matched the inner exception specifically, instead of catching all RemoteError exceptions * Support multiple glance-api servers * Merged trunk * Fix merge conflict * removing custom exception, instead using NoFloatingIpsDefined * raises exception.NoFloatingIpsDefined instead of UnknownError * Normalize and update database with used vm\_mode * added a test for allocate\_address & added error handling for api instead of returning 'UnknownError', will give information 'AllocateAddressError: NoMoreAddresses * merged trunk again * updated docstring for nova-manage network create * Now forwards create instance requests to child zones. Refactored nova.compute.api.create() to support deferred db entry creation * MySQL database tables are currently using the MyISAM engine. Created migration script nova/db/sqlalchemy/migrate\_repo/versions/021\_set\_engine\_mysql\_innodb.py to change all current tables to InnoDB * merged trunk again * Support for header "X-Auth-Project-Id" in osapi * Cleaned up some pylint errors * tweaks * PEP8 fix * removed network\_info shims in vmops * Fix for bug#794239 to allow pep8 in run\_tests.sh to use the virtual environment * adding Authorizer key for ImportPublicKey * fix exception type catched * Look for vm\_mode property on images and use that if it exists to determine if image should be run in PV or HVM mode. If it doesn't exist, fall back to existing logic * removed straggler code * trunk merge * merge trunk * pep8 * removed autogen file * added field NOVA\_PROJECT\_ID to template for future using * added tests for X-Auth-Project-Id header * fix fake driver for using string project * adding Authorizer key for ImportPublicKey * Cleaned up some of the larger pylint errors. Set to ignore some lines that pylint just couldn't understand * DRY up the image\_state logic. Fix an issue where glance style images (which aren't required to have an 'image\_state' property) couldn't be used to run instances on the EC2 controller * remove the debuging lines * remove the old stuff * tests all pass * Added virtual environment to PEP8 tests * Added test\_run\_instances\_image\_status\_active to test\_cloud * Add the option to specify a default IPv6 gateway * pep8 * Removed use of super * Added illustrations for Distributed Scheduler and fixed up formatting * Disabled pylint complaining about no 'self' parameter in a decorator function * DRY up the image\_state logic. Fix an issue where glance style images (which aren't required to have an 'image\_state' property) couldn't be used to run instances on the EC2 controller * Fixed incorrect error message Added missing import Fixed Typo (pylint "undefined variable NoneV") * removing local image service * Remove unnecessary docstrings * Add the option to specify a default IPv6 gateway * port the floating over to storing in a list * Make libvirt snapshotting work with images that don't have an 'architecture' property * take out the host * Removed empty init * Use IPNetwork rather than IPRange * Fixed type causing pylint "exception is not callable" Added param to fake\_instance\_create, fake objects should appear like the real object. pylint "No value passed for parameter 'values' in function call" * sanity check * run\_instances will check image for 'available' status before attempting to create a new instance * fixed up tests after trunk merge * Use True/False instead of 1/0 when setting updating 'deleted' column attributes. Fixes casting issues when running nova with Postgres * merged from trunk * Remove more stray import IPy * Dropped requirement for IPy * Convert stray import IPy * Use True/False instead of 1/0 when setting updating 'deleted' column attributes.Fixes casting issues when running nova with Postgres * Removed commented code * Added test case for snapshoting base image without architecture * Remove ipy from virt code and replace with netaddr * Remove ipy from network code and replace with netaddr * Remove ipy from nova/api/ec2/cloud.py and use netaddr * Remove ipy from nova-manage and use netaddr * This branch allows marker and limit parameters to be used on image listing (index and detail) requests. It parses the parameters from the request, and passes it along to the glance\_client, which can now handle these parameters. Essentially all of the logic for the pagination is handled in glance, we just pass along the correct parameters and do some error checking * merge from trunk, resolved conflicts * Update the OSAPI images controller to use 'serverRef' for image create requests * Changed the error raise to not be AdminRequired when admin is not, in fact, required * merge with trey * Change to a more generic error and update documentation * make some of the tests * Merged trunk * merge trunk * Ignore complaining about dynamic definition * Removed Duplicate method * Use super on an old style class * Removed extraneous code * Small pylint fixes * merge with trunk * Fixed incorrect exception * This branch removes nwfilter rules when instances are terminated to prevent resource leakage and serious eventual performance degradation. Without this patch, launching instances and restarting nova-compute eventually become very slow * merge with trunk * resolve conflicts with trunk * Update migrate script version to 22 * Added 'config list' to nova-manage. This function will output all of the flags and their values * renamed migration * trunk merge after 2b hit * Distributed Scheduler developer docs * Updated to use the '/v1/images' URL when uploading images to glance in the Xen glance plugin. Fixes the issue where snapshots fail to upload correctly * merged trunk again * added 'nova-manage config list' which will list out all of the flags and their values. I also alphabetized the list of available categories * Updated to use the '/v1/images' URL when uploading images to glance in the Xen glance plugin. Fixes issue where snapshots failed to get uploaded * Removed "double requirement" from tools/pip-requires file * merged koelker migration changes, renumbered migration filename * fix comment * Fixed pip-requires double requirement * Added a test case for XML serialization * Removed unused and erroneous (yes, it was both) function * paramiko is not installed into the venv, but is required by smoketests/base.py. Added paramiko to tools/pip-requires * Changes all uses of utcnow to use the version in utils. This is a simple wrapper for datetime.datetime.utcnow that allows us to use fake values for tests * Set pylint to ignore correct lines that it could not determine were correct, due to the means by which eventlet.green imported subprocess Minimized the number of these lines to ignore * LDAP optimization and fix for one small bug caused huge performance leak. Dashboard's benchmarks showed overall x22 boost in page request completion time * Adds LeastCostScheduler which uses a series of cost functions and associated weights to determine which host to provision to * Make libvirt snapshotting work with images that don't have an 'architecture' property * Add serverRef to image metadata serialization list * Fixed pylint: no metadata member in models.py * Implement OSAPI v1.1 style image create * trunk merge * little tweaks * Flush AuthManager's cache before each test * Fixed FakeLdapDriver, made it call LdapDriver.\_\_init\_\_ * Merged with trunk * This change set adds the ability to create new servers with an href that points to a server image on any glance server (not only the default one configured). This means you can create a server with imageRef = http://glance1:9292/images/3 and then also create one with imageRef = http://glance2:9292/images/1. Using the old way of passing in an image\_id still works as well, and will use the default configured glance server (imageRef = 3 for instance) * added nova\_adminclient to tools/pip-requires * merged trunk * Added paramiko to tools/pip-requires * Tests that all exceptions can be raised properly, and fix the couple of instances where they couldn't be constructed due to typos * merge trunk... yay.. * switch zones to use utcnow * make all uses of utcnow use our testable utils.utcnow * Fix error with % as replacement string * Fixing conflicts * Tests to assure all exceptions can be raised as well as fixing NotAuthorized * use %% because % is a replacement string character * some comment docstring modifications * Makes novarc work properly on a mac and also for zsh in addition to bash. Other shells are not guaranteed to work * This adds the ability to publish nova errors to an error queue * don't use python if readlink is available * Sudo chown the vbd device to the nova user before streaming data to it. This resolves an issue where nova-compute required 'root' privs to successfully create nodes with connection\_type=xenapi * Bugfix #780784. KeyError when creating custom image * Remove some of the extra image service calls from the OS API images controller * pep8 fixes * merge with trey * make it pass for the demo * Merged with Will * Minor comment formatting changes * got rid of more test debugging stuff that shouldnt have made it in * Remove comment about imageRef not being implemented * Remove a rogue comment * more tests (empty responses) * get\_all with reservation id across zone tests * move index and detail functions to v10 controller * got rid of prints * Refactored after review, fixed merge * image href should be passed through the rebuild pipeline, not the image id * merge from trunk * got rid of print debugs * cleanup based on waldon's comments, also caught a few other issues * missed a couple chars * Little cleanups * pep8 and all that * tests all passing again * list --reservation now works across zones * fix novarc to work on mac and zsh * merged, with trunk, fixed the test failure, and split the test into 3 as per peer review * Fixes nova-manage bug. When a nova-network host has allocated floating ips \*AND\* some associated, the nova-manage floating list would throw exception because was expecting hash with 'ec2\_id' key , however, the obj returned is a sqlalchemy obj and the attr we need is 'hostname' * start the flat network * more testing fun * fixed as per peer review to make more consistent * merged from trunk * Implement the v1.1 style resize action with support for flavorRef * Updates to the 018\_rename\_server\_management\_url migration to avoid adding and dropping a column. Just simply rename the column * Support SSL AMQP connections * small fixes * Allow SSL AMQP connections * reservation id's properly forwarded to child zones on create * merge from trunk * fix pep8 issue from merge * coose the network\_manager based on instance variable * fix the syntax * forgot a comma * This just fixes a bunch of pep8 issues that have been lingering around for a while and bothering me :) * touch ups * Updates to the 018\_rename\_server\_management\_url to avoid adding and dropping a column. Just simply rename the column * basic reservation id support to GET /servers * - move osapi-specific wsgi code from nova/wsgi.py to nova/api/openstack/wsgi.py - refactor wsgi modules to use more object-oriented approach to wsgi request handling: - Resource object steps up to original Controller position - Resource coordinates deserialization, dispatch to controller, serialization - serialization and deserialization broken down to be more testable/flexible * merge from trunk * make the stubs * use the host * da stubs * Bumped migration number * Merged from trunk * updates to keep things looking better * merge from trunk * fix pep8 issues * PEP8 fix * Moved memcached driver import to the top of modules * fix pep8 issues * pep8 fixes * Cleanup instances\_path in the test\_libvirt test\_spawn\_with\_network\_info test. Fixes issue where the nova/tests/instance-00000001/ is left in the nova source tree when running run\_test.sh -N * fix filtering tests * Renamed migration to 020 * osapi: added support for header X-Auth-Project-Id * added /zones/boot reservation id tests * Adds hooks for applying ovs flows when vifs are created and destroyed for XenServer instances * Logs the exception if metadata fails and returns a 500 with an error message to the client * Fixing a bunch of conflicts * add new base * refator existing fakes, and start stubbing out the network for the new manager tests * pep8 * Incremented version of migration script to reflect changes in trunk * basic zone-boot test in place * Incremented version of migration script to reflect changes in trunk * Incremented version of migration script to reflect changes in trunk * switch to using webob exception * Added new snapshots table to InnoDB migrations * Adds a few more status messages to error states on image register for the ec2 api. This will hopefully provide users of the ec2 api with a little more info if their registration fails * Cleaned up bug introduced after fixing pep8 errors * Fixing Scheduler Tests * Cleaned up bug introduced after fixing ^Cp8 errors * Basic hook-up to HostFilter and fixed up the passing of InstanceType spec to the scheduler * make the old tests still pass * rename da stuffs * rename da stuffs * Resolving conflict and finish test\_images * merge * added tests for image detail requests * Merged trunk * Merged trunk and fixed conflicts * Whitespace cleanups * added pause/suspend implementation to nova.virt.libvirt\_conn * Change version number of migration * Update the rebuild\_instance function in the compute manager so that it accepts the arguments that our current compute API sends * Moved everything from thread-local storage to class attributes * Added the filtering of image queries with image metadata. This is exposing the filtering functionality recently added to Glance. Attempting to filter using the local image service will be ignored * This enables us to create a new volume from a snapshot with the EC2 api * Use a new instance\_metadata\_delete\_all DB api call to delete existing metadata when updating a server * added tests for GlanceImageService * Add vnc\_keymap flag, enable setting keymap for vnc console and fix bug #782611 * Add refresh\_provider\_fw\_rules to virt/driver.py#ComputeDriver so virtualization drivers other than libvirt will raise NotImplemented * Rebased to trunk rev 1120 * trunk merge * added get\_pagination\_params function in common with tests, allow fake and local image services to accept filters, markers, and limits (but ignore them for now) * Cleaned up text conflict * pep8 fixed * pep8 fixes * Cleaned up text conflict * removing semicolon * Cleaned up text conflict * skip the vlam test, not sure why it doesn't work * Cleaned up pep8 errors * Fixed the APIError typo * MySQL database tables are currently using the MyISAM engine. Created migration script nova/db/sqlalchemy/migrate\_repo/versions/020\_set\_engine\_mysql\_innodb.py to change all current tables to InnoDB * MySQL database tables are currently using the MyISAM engine. Created migration script nova/db/sqlalchemy/migrate\_repo/versions/020\_set\_engine\_mysql\_innodb.py to change all current tables to InnoDB * Handle the case when a v1.0 api tries to list servers that contain image hrefs * Added myself to Authors file * edits based on ed's feedback * More specific error messages for resize requests * pep8 fixes * merge trunk * tests passing again * Actually remove the \_action\_resize code from the base Servers controller. The V11 and V10 controllers implement these now * merge from trunk * This adds a volume snapshot support with the EC2 api * Fixed the typo of APIError with ApiError * nova/auth/novarc.template: Changed NOVA\_KEY\_DIR to allow symlink support * Updated compute api and manager to support image\_refs in rebuild * zone-boot working * regular boot working again * regular boot working again * first pass at reservation id support * Updates so that 'name' can be updated when doing a OS API v1.1 rebuild. Fixed issue where metadata wasn't getting deleted when an empty dict was POST'd on a rebuild * first cut complete * project\_id moved to be last * add support for keyword arguments * fixed nova.virt.libvirt\_conn.resume() method - removing try-catch * reservation\_id's done * basic flow done * lots more * starting * boot-from-volume: some comments and NOTE(user name) * Use metadata variable when calling \_metadata\_refs * Implement the v1.1 style resize action with support for flavorRef * Fixes to the SQLAlchmeny API such that metadata is saved on an instance\_update. Added integration test to test that instance metadata is updated on a rebuild * Update the rebuild\_instance function in the compute manager so that it accepts the arguments that our current compute API sends * Cleanup instances\_path in test\_libvirt test\_spawn\_with\_network\_info test * Added missing nova import to image/\_\_init\_\_.py * Another image\_id location in hyperv * Fixing nova.tests.api.openstack.fakes.stub\_out\_image\_service. It now stubs out the get\_image\_service and get\_default\_image\_service functions. Also some pep8 whitespace fixes * Fixing xen and vmware tests by correctly mocking glance client * Fixing integration tests by correctly stubbing image service * More image\_id to image\_ref stuff. Also fixed tests in test\_servers * When encrypting passwords in xenapi's SimpleDH(), we shouldn't send a final newline to openssl, as it'll use that as encryption data. However, we do need to make sure there's a newline on the end when we write the base64 string for decoding.. Made these changes and updated the test * Fixes the bug introduced by rpc-multicall that caused some test\_service.py tests to fail by pip-requiring a later version of mox * added \n is not needed with -A * now pip-requires mox version 0.5.3 * added -A back in to pass to openssl * merge with dietz * merge with dietz * XenAPI tests pass * fixed so all the new encryption tests pass.. including data with newlines and so forth * Glance client updates for xenapi and vmware API to work with image refs * Merged lp:~rackspace-titan/nova/lp788979 * get the right args * Fixing pep8 problems * Modified instance\_type\_create to take metadata * Added test for instance type metadata create * merge with trey * Added test for instance type metadata update * Added delete instance metadata unit test * Added a unit test * Adding test code * Changed metadata to meta to avoid sqlalchemy collision * Adding accessor methods for instance type metadata * remove errant print statement * prevent encryption from adding newlines on long messages * trunk merge * nova/auth/novarc.template: Changed NOVA\_KEY\_DIR to allow symlink support * docstrings again and import ordering * fix encryption handling of newlines again and restructure the code a bit * Libvirt updates for image\_ref * Commit the migration script * fixed docstrings and general tidying * remove \_take\_action\_to\_instance * fix calls to openssl properly now. Only append \n to stdin when decoding. Updated the test slightly, also * fixed read\_only check * Fix pep8 errors * Fix pep8 violations * Fix a description of 'snapshot\_name\_template' * unittest: make unit tests happy * unittest: tests for boot from volume and stop/start instances * compute: implement ec2 stop/start instances * compute, virt: support boot-from-volume without ephemeral device and no device * db: add a table for block device mapping * volume/api: allow volume clone from snapshot without size * api/ec2: parse ec2 block device mapping and pass it down to compute api * teach ec2 parser multi dot-separted argument * api/ec2: make ec2 api accept true/false * Adds the ability to make a call that returns multiple times (a call returning a generator). This is also based on the work in rpc-improvements + a bunch of fixes Vish and I worked through to get all the tests to pass so the code is a bit all over the place * fix a minor bug unrelated to this change * updated the way allocate\_for\_instance and deallocate\_for\_instance handle kwargs * Rename instances.image\_id to instances.image\_ref * changes per review * merge with dietz * stub out passing the network * Virt tests passing while assuming the old style single nics * adding TODOs per dabo's review * Fixes from Ed Leafe's review suggestions * merge trunk * move udev file so it follows the xen-backend.rules * Essentially adds support for wiring up a swap disk when building * add a comment when calling glance:download\_vhd so it's clear what is returned * make the fakes be the correct * skip vmware tests, since they need to be updated for multi-nic by someone who knows the backend * put back the hidden assert check i accidentally removed from glance plugin * fix image\_path in glance plugin * Merged trunk * skip the network tests for now * Change the return from glance to be a list of dictionaries describing VDIs Fix the rest of the code to account for this Add a test for swap * cleaning up getattr calls with default param * branch 2a merge (including trunk) * trunk merge * remerged with 2a * tests pass and pep8'ed * review fixups * Expanded tests * In vmwareapi\_net.py removed the code that defines the flag 'vlan\_interface' and added code to set default value for the flag 'vlan\_interface' to 'vmnic0'. This will now avoid flag re-definition issue * missed a driver reference * exceptions are logged via the raise, so just log an error message * log upload errors * instance obj returned is not a hash, instead is sqlalchemy obj and hostname attr is what the logic is looking for * we don't need the mac or the host anymore * Test tweaks * instances don't need a mac\_address to be created anymore * Make a cleaner log message and use [] instead of . to get database fields * use the skip decorator rather than comment out * merging trunk * Adding some pluralization * Double quotes are ugly #3 * merge with dietz * fix typo introduced during merge conflict resolution * Remove spurious newline at end of file * Move migration to fix ordering * remove dead/duplicate code * Double quotes are ugly #2 * Double quotes are ugly * refactoring compute.api.create() * Fix test\_cloud tests * Restricted image filtering by name and status only * Switch the run\_instances call in the EC2 back to 'image\_id'. Incoming requests use 'imageId' so we shouldn't modify this for image HREF's * Switching back to chown. I'm fine w/ setfacl too but nova already has 'chown' via sudoers so this seems reasonable for now * replace double quatation to single quatation at nova.virt.libvirt\_conn * remove unnecessary import inspect at nova.virt.libvirt\_conn * creating \_take\_action\_to\_instance to nova.virt.libvirt\_conn.py * Instead of redefining the flag 'vlan\_interface', just setting a default value (vmnic0) in vmwareapi\_net.py * Renamed image\_ref variables to image\_href. Since the convention is that x\_ref vars may imply that they are db objects * Added test skipper class * change the behavior of calling a multicall * move consumerset killing into stop * don't put connection back in pool * replace removed import * cleanups * cleanup the code for merging * make sure that using multicall on a call with a single result still functions * lots of fixes for rpc and extra imports * don't need to use a separate connection * almost everything working with fake\_rabbit * bring back commits lost in merge * connection pool tests and make the pool LIFO * Add rpc\_conn\_pool\_size flag for the new connection pool * Always create Service consumers no matter if report\_interval is 0 Fix tests to handle how Service loads Consumers now * catch greenlet.GreenletExit when shutting service down * fix consumers to actually be deleted and clean up cloud test * fakerabbit's declare\_consumer should support more than 1 consumer. also: make fakerabbit Backend.consume be an iterator like it should be. * convert fanout\_cast to ConnectionPool * pep8 and comment fixes * Add a connection pool for rpc cast/call Use the same rabbit connection for all topic listening and wait to be notified vs doing a 0.1 second poll for each * add commented out unworking code for yield-based returns * make the test more expicit * add support to rpc for multicall * merge with dietz * Fixing divergence * Merged trunk * Added params to local and base image service * Fixed the mistyped line referred to in bug 787023 * Merged trunk and resolved conflicts * Fixed a typo * make the test work * Merged with trunk * Several changes designed to bring the openstack api 1.1 closer to spec - add ram limits to the nova compute quotas - enable injected file limits and injected file size limits to be overridden in the quota database table - expose quota limits as absolute limits in the openstack api 1.1 limits resource - add support for controlling 'unlimited' quotas to nova-manage * During the API create call, the API would kick off a build and then loop in a greenthread waiting for the scheduler to pick a host for the instance. After API would see a host was picked, it would cast to the compute node's set\_admin\_password method * starting breakdown of nova.compute.api.create() * fix test. instance is not updated in DB with admin password in the API anymore * Merged upstream * pep8 fixes * Initial tests * fix forever looping on a password reset API call * updating admin\_pass moved down to compute where the password is actually reset. only update if it succeeds * merged trunk * change install\_ref.admin\_password to instance\_ref.admin\_pass to match the DB * Merged trunk * remove my print * we're getting a list of tuples now' * we have a list of tuples, not a list of dicts * pep8 fixes * return the result of the function * Updated tests to use mox pep8 * InstanceTypesMetadata is now registered * make some changes to the manager so dupe keywords don't get passed * Fixing the InstanceTypesMetadata table definition * try out mox for testing image request filters * Adding the migrate code to add the new table * dist-sched-2a merge * Created new libvirt directory, moved libvirt\_conn.py to libvirt/connection.py, moved libvirt templates, broke out firewall and network utilities * make the column name correct * The code for getting an opaque reference to an instance assumed that there was a reference to an instance obj available when raising an exception. I changed this from raising an InstanceNotFound exception to a NotFound, as this is more appropriate for the failure, and doesn't require an instance ID * merge against 2a * trunk merge * simplified the limiting differences for different versions of the API * New tests added * Changed the exception type to not require an instance ID * Added model for InstanceTypeMetadata * Added test * Avoid wildcard import * Add unittests for cloning volumes * merged recent trunk * merged recent trunk * Make snapshot\_id=None a default value in VolumeManager:create\_volume(). It is not a regular case to create a volume from a snapshot * Don't need to import json * Fix wrong call of the volume api create() * pep8 fix in nova/compute/api.py * instead of the API spawning a greenthread to wait for a host to be picked, the instance to boot, etc for setting the admin password... let's push the admin password down to the scheduler so that compute can just take care of setting the password as a part of the build process * tests working again * eventlet.spawn\_n() expects the function and arguments, but it expects the arguments unpacked since it uses \*args * Don't pass a tuple since spawn\_n will get the arguments with \*args anyway * move devices back * Using the root-password subcommand of the nova client results in the password being changed for the instance specified, but to a different unknown password. The patch changes nova to use the password specified in the API call * Pretty simple. We call openssl to encrypt the admin password, but the recent changes around this code forgot to strip the newline off the read from stdout * DHSimple's decrypt needs to append \n when writing to stdin * need to strip newline from openssl stdout data * merge with trey * work on * merge trunk * moved auto assign floating ip functionality from compute manager to network manager * create a mac address entry and blindly use the first network * create a mac address entry and blindly use the first network * create a mac address entry and blindly use the first network * need to return the ref * Added filtering on image properties * Fixes a bug related to incorrect reparsing of flags and prevents many extra reparses * no use mac * comment out the direct cloud case * make fake\_flags set defaults instead of runtime values * add a test from vish and fix the issues * Properly reparse flags when adding dynamic flags * no use mac * instances don't have mac's anymore and address is now plural * let the fake driver accept the network info * Comment out the 2 tests that require the instance to contain mac/ip * initial use of limited\_by\_marker * more fix up * many tests pass now * its a dict, not a class * we don't get the network in a tuples anymore * specified image\_id keyword in exception arg * When adding a keypair with ec2 API that already exists, give a friendly error and no traceback in nova-api * added imageid string to exception, per peer review * Fixes some minor doc issues - misspelled flags in zones doc and also adds zones doc to an index for easier findability * removed most of debugging code * Fixing docstring * Synchronise with Diablo development * make \_make\_fixture respect name passed in * zone1 merge * sending calls * accepting calls * Fixing \_get\_kernel\_ramdisk\_from\_image to use the correct image service * Fixing year of copyright * merge * select partially going through * merge from trunk * make image\_ref and image\_id usage more consistant, eliminate redundancy in compute\_api.create() call * take out irrelevant TODO * blah * uhhh yea * local tweaks * getting closer to working select call * swap should use device 1 and rescue use device 2 * merged from trunk * fix tests, have glance plugin return json encoded string of vdi uuids * make sure to get a results, not the query * merged from trunk * Removing code duplication between parse\_image\_ref and get\_image service. Made parse\_image\_ref private * Changed ec2 api dupe key exception log handler info->debug * Added test case for attempting to create a duplicate keypair * Removing debug print line * Renaming service\_image\_id vars to image\_id to reduce confusion. Also some minor cleanup * cleanup and fixes * got rid of print statement * initial fudging in of swap disk * make the test\_servers pass by removing the address tests for 1.1, bug filed * port the current create\_networks over to the new network scheme * need to have the complete table def since sqlalchemy/sqlite won't reload the model * must have the class defined before referencing it * make the migration run with tests * get rid of all mention of drivers ... it's filter only now * merge trunk * Fixes euca-attach-volume for iscsi using Xenserver * fix typo * merge branch lp:~rackspace-titan/nova/ram-limits * Added test * Fixes missing space * Fixed mistyped line * Rebased to trunk rev 1101 * merge from trunk * moved utils functions into nova/image/ * Trunk merge * Fix bug #744150 by starting nova-api on an unused port * Removing utils.is\_int() * Added myself to Authors * When adding a keypair that already exists, give a friendly error and no traceback in nova-api * --dhcp-lease-max=150 by default. This prevents >150 instances in one network * Minor cleanup * No reason to modify the way file names are generated for kernel and ramdisk, since the kernel\_id and ramdisk\_id is still guaranteed to be ints * found a typo in the xenserver glance plugin that doesn't work with glance trunk. Also modified the image url to fetch from /v1/image/X instead of /image/X as that returned a 300 * fixing glance plugin bug and setting the plugin to use /v1 of the glance api * merge trunk * move init start position to 96 to allow openvswitch time to fully start * Include data files for public key tests in the tarball * minor cleanup * Makes sure vlan creation locks so we don't race and fail to create a vlan * merging trunk * Include data files for public key tests in the tarball * Merged with trunk * renaming resource\_factory to create\_resource * combined the exception catching to eliminate duplication * synchronize vlan creation * print information about nova-manage project problems * merge from trunk * fix comments * make nwfilter mock more 'realistic' by having it remember which filters have been defined * fix pep8 issue * fixed silly issue with variable needing to be named 'id' for the url mapper, also caught new exception type where needed * This is the groundwork for the upcoming distributed scheduler changes. Nothing is actually wired up here, so it shouldn't break any existing code (and all tests pass) * Merging trunk * Get rid of old virt/images.py functions that are no longer needed. Checked for any loose calls to these functions and found none. All tests pass for me * Update OSAPI v1.1 extensions so that it supports RequestExtensions. ResponseExtensions were removed since the new RequestExtension covers both use cases. This branch also removes some of the odd serialization code in the RequestExtensionController that converted dictionary objects into webob objects. RequestExtension handlers should now always return proper webob objects * Addressing bug #785763. Usual default for maximum number of DHCP leases in dnsmasq is 150. This prevents instances to obtain IP addresses from DHCP in case we have more than 150 in our network. Adding myself to Authors * foo * syntax errors * temp fixes * added support for reserving certain network for certain project * Fixed some tests * merge with trunk * Added an EC2 API endpoint that'll allow import of public key. Prior, api only allowed generation of new keys * This fix ensures that kpartx -d is called in the event that tune2fs fails during key injection, as it does when trying to inject a key into a windows instance. Bug #760921 is a symptom of this issue, as if kpartx -d is not called then partitions remain mapped that prevent the underlying nbd from being reused * Add new flag 'max\_kernel\_ramdisk\_size' to specify a maximum size of kernel or ramdisk so we don't copy large files to dom0 and fill up /boot/guest * The XenAPI driver uses openssl as part of the nova-agent implementation to set the password for root. It uses a temporary file insecurely and unnecessarily. Change the code to write the password directly to stdin of the openssl process instead * The tools/\* directory is now included in pep8 runs. Added an opt-out system for excluding files/dirs from pep8 (using GLOBIGNORE) * fill out the absolute limit tests for limits v1.0 controller * add absolute limits support to 1.0 api as well * Merged with trunk * fixed pep8 issue * merge from trunk * Fail early if requested imageRef does not exist when creating a server * Separate out tests for when unfilter is called from iptables vs. nwfilter driver. Re: lp783705 * Moved back templates and fixed pep8 issue. Template move was due to breaking packaging with template moves. That will need to happen in a later merge * further refactoring of wsgi module; adding documentation and tests * don't give instance quota errors with negative values * Merged trunk and resolved horrible horrible conflicts * No reason to hash ramdisk\_id and kernel\_id. They are ints * temp * waldon's naming feedback * Fixing role names to match code * Merging trunk * updated the hypervisors and ec2 api to support receiving lists from pluralized mac\_addresses and fixed\_ips * fname should have been root\_fname * minor cleanup, plus had to merge because of diverged-branches issue * Minor cleanup * merge from trunk * Fix comments * Add a unitest to test EC2 snapshot APIs * Avoid wildcard import * Simple change to sort the list of controllers/methods before printing to make it easier to read * missed the new wsgi test file * removing controller/serializer code from wsgi.py; updating other code to use new modules * merge lp:nova * fixup absolute limits to latest 1.1 spec * refactoring wsgi to separate controller/serialization/deserialization logic; creating osapi-specific module * default to port 80 if it isnt in the href/uri * return dummy id per vishs suggestion * hackish patch to fix hrefs asking for their metadata in boot (this really shouldnt be in ec2 api?) * Sort list of controllers/methods before printing * use a manual 500 with error text instead of traceback for failure * log any exceptions that get thrown trying to retrieve metadata * skeleton of forwarding calls to child zones * fix typo in udev rule * merge trunk * libvirt fixes to use new image\_service stuff * On second thought, removing decorator * Adding FlagNotSet exception * Implements a basic mechanism for pushing notifications out to interested parties. The rationale for implementing notifications this way is that the responsibility for them shouldn't fall to Nova. As such, we simply will be pushing messages to a queue where another worker entirely can be written to push messages around to subscribers * Spacing changes * get real absolute limits in openstack api and verify absolute limit responses * Added missing xenhost plugin. This was causing warnings to pop up in the compute logs during periodic\_task runs. It must have not been bzr add'd when this code was merged * fixed bug with compute\_api not having actual image\_ref to use proper image service * Adding xenhost plugin * Merging trunk * Added missing xenhost plugin * Fix call to spawn\_n() instead. It expects a callable * fix pep8 issues * oops, took out commented out tests in integrated.test\_servers and made tests pass again * fixed api.openstack.test\_servers tests...again * fixed QuotaTestCases * fixed ComputeTestCase tests * made ImageControllerWithGlanceServiceTests pass * fixed test\_servers small tests as well * get integrated server\_tests passing * Removed all utils.import\_object(FLAGS.image\_service) and replaced with utils.get\_default\_image\_service() * MySQL database tables are using the MyISAM engine. Created migration script to change all current tables to InnoDB, updated version to 019 * MySQL database tables are using the MyISAM engine. Created migration script to change all current tables to InnoDB, updated version to 019 * Small cleanups * Moving into scheduler subdir and refactoring out common code * Moving tests into scheduler subdirectory * added is\_int function to utils * Pep8 fixes * made get\_image\_service calls in servers.py * use utils.get\_image\_service in compute\_api * updates to utils methods, initial usage in images.py * added util functions to get image service * Using import\_class to import filter\_host driver * Adding fill first cost function * add more statuses for ec2 image registration * Add --fixes * Add --fixes * Fixes the naming of the server\_management\_url in auth and tests * Merging in Sandy's changes adding Noop Cost Fn with tests * merged trunk * move migration 017 to 018 * merge ram-limits * Removed extra serialization metadata * Docstring cleanup and formatting (nova/network dir). Minor style fixes as well * pep8 * Fixes improper attribute naming around instance types that broke Resizes * merge ram-limits * support unlimited quotas in nova-manage and flags * fix test * Changed builder to match specs and added test * add migration for proper name * Update test case to ensure password gets set correctly * make token use typo that is in database. Also fix now -> utcnow and stop using . syntax for dealing with tokens * Added missing metadata join to instance\_get calls * Avoid using spawn\_n to fix LP784132 * add ram limits to instance quotas * Convert instance\_type\_ids in the instances table from strings to integers to enable joins with instance\_types. This in particular fixes a problem when using postgresql * Set password to one requested in API call * don't throw type errors on NoneType int conversions * Added network\_info into refresh\_security\_group\_rules That fixs https://bugs.launchpad.net/nova/+bug/773308 * Improved error notification in network create * Instead of using a temp file with openssl, just write directly to stdin * First cut at least cost scheduler * merge lp:nova * Implemented builder for absolute limits and updated tests * provision\_resource no longer returns value * provision working correctly now * Re-pull changed notification branch * PEP8 fixes * adding --fixes lp:781429 * Fixed mistyped key, caused huge performance leak * Moved memcached connection in AuthManager to thread-local storage. Added caching of LDAP connection in thread-local storage. Optimized LDAP queries, added similar memcached support to LDAPDriver. Add "per-driver-request" caching of LDAP results. (should be per-api-request) * ugh, fixed again * tests fixed and pep8'ed * Update comment on RequestExtension class * failure conditions are being sent back properly now * Added opt-out system for excluding files/dirs from pep8 (using GLOBIGNORE) * MySQL database tables are using the MyISAM engine. Created migration script to change all current tables to InnoDB * MySQL database tables are using the MyISAM engine. Created migration script to change all current tables to InnoDB * fix for lp783705 - remove nwfilters when instance is terminated * basic call going through * Added missing metadata join to instance\_get calls * add logging to migration and fix migration version * Migrate quota schema from hardcoded columns to a key-value approach. The hope is that this change would make it easier to change the quota system without future schema changes. It also adds the concept of quotas that are unlimited * Conceded :-D * updated the mac\_address delete function to actually delete the rows, and update fixed\_ips * Added missing flavorRef and imageRef checks in the os api xml deserialization code along with tests * Fixed minor pylint errors * This branch splits out the IPv6 address generation into pluggable backends. A new flag named ipv6\_backend specifies which backend to use * Reduce indentation to avoid PEP8 failures * merge koelker migration changes * using mac\_address from fixed\_ip instead of instance * PEP8 cleanups * Use new 3-argument API * add a todo * style fixing * Removed obsolete method and test * renamed test cases in nova/tests/api/openstack/test\_servers.py to use a consistent naming convention as used in nova/tests/api/openstack/test\_images.py. also fixed a couple of pylint #C0103 errors in test\_servers.py * make the migration work like we expect it to * Fixed all pep8 errors in tools/install\_venv.py. All tests pass * Added the imageRef and flavorRef attributes in the xml deserialization * Add vnc\_keymap flag and enable setting keymap for vnc console * Review changes and merge from trunk * Pep8 cleaning * Added response about error in nova-manage project operations * Removed tools/clean\_vlans and tools/nova-debug from pep8 tests as they are shell scripts * Added lines to include tools/\* (except ajaxterm) in pep8 tests * Add a unit test for snapshot\_volume * Define image state during snapshotting. Name snapshot to the name provided, not generate * Unit test for snapshotting (creating custom image) * fixed a few C0103 errors in test\_servers.py * renamed test cases to use a consistent naming convention as used in nova/tests/api/openstack/test\_images.py * fix sys.argv requirement * first cut at weighted-sum tests * merge trunk * add udev rules and modified ovs\_configure\_vif\_flows.py to work with udev rules * Adds proper error handling for images that can't be found and a test for deregister image * added |fixed\_ip\_get\_all\_by\_mac\_address| and |mac\_address\_get\_by\_fixed\_ip| to db and sqlalchemy APIs * started on integrating HostFilter * Add support for rbd snapshots * Merging in trunk * I'm assuming that openstack doesnt work with python < 2.6 here (which I read somewhere on the wiki). This patch will check to make sure python >= 2.6 is installed, and also allow it to work with python 2.7 (and greater in the future) * merge lp:nova * XenAPI was not implemented to allow for multiple simultaneous XenAPI requests. A single XenAPIConnection (and thus XenAPISession) is used for all queries. XenAPISession's wait\_for\_task method would set a self.loop = for looping calls to \_poll\_task until task completion. Subsequent (parallel) calls to wait\_for\_task for another query would overwrite this. XenAPISession.\_poll\_task was pulled into the XenAPISession.wait\_for\_task method to avoid having to store self.loop * pep8 fixes * Merged trunk * volume/driver: make unit test, test\_volume, pass * Make set\_admin\_password non-blocking to API * Merged trunk * Review feedback * Lost a flag pulling from another branch. Whoops * Update the compute manager so that it breaks out of a loop if set\_admin\_password is not implemented by the driver. This avoids excessively logging NotImplementedError exceptions * Merging in Sandy's changes * Make host timeout configurable * Make set\_admin\_password non-blocking to API * volume/driver: implement basic snapshot * merge trunk * Update the compute manager so that it breaks out of a loop if set\_admin\_password is not implemented by the driver * Add init script and sysconfig file for openvswitch-nova * volume/driver: factor out lvm opration * Authors: add myself to Authers file * trunk merge * Adding zones doc into index of devref plus a bug fix for flag spellings * fixup based on Lorin's feedback * added flag lost in migration * merge trunk * pep8 * Adding basic tests for call\_zone\_method * fixed\_ip disassociate now also unsets mac\_address\_id * Make sure imports are in alphabetical order * updated previous calls referring to the flags to use the column from the networks table instead * merged from trunk * handle instance\_type\_ids that are NULL during upgrade to integers * fix for lp760921. Previously, if tune2fs failed, as it does on windows hosts, kpartx -d also failed to be called which leaves mapped partitions that retain holds on the nbd device. These holds cause the observed errors * if a LoopingCall has canceled the loop, break out early instead of sleeping any more than needed * Add a test for parallel builds. verified this test fails before this fix and succeeds after this fix * incorporated ImageNotFound instead of NotFound * merged from trunk * misc related network manager refactor and cleanup * changed NotFound exception to ImageNotFound * Update comment * Variable renaming * Add test suite for IPv6 address generation * Accept and ignore project\_id * Make it so that ExtensionRequest objects now return proper webob objects. This avoids the odd serialization code in the RequestExtensionController class which converts JSON dicts to webobs for us * merged from trunk * Remove ResponseExtensions. The new RequestExtension covers both use cases * Initial work on request extensions * Added network\_info into refresh\_security\_group\_rules * fixed pep8 spacing issue * merge from trunk * rename quota column to 'hard\_limit' to make it simpler to avoid collisions with sql keyword 'limit' * Fix remote volume code * 1 Set default paths for nova.conf and api-paste.ini to /etc/nova/ 2 Changed countryName policy because https://bugs.launchpad.net/nova/+bug/724317 still affected * Implement IPv6 address generation that includes account identifier * messing around with the flow of create() and specs * Redundant line * changes per review * docstring cleanup, nova/network dir * make instance.instance\_type\_id an integer to support joins in postgres * merge from trunk and update .mailmap file * Merged trunk * Updated MANIFEST for template move * NoValidHost exception test * Fixes an issue with conversion of images that was introduced by exception refactoring. This makes the exceptions when trying to locate an ec2 id clearer and also adds some tests for the conversion methods * oops fixed a docstring * Pep8 stuff * Bluprint URL: https://blueprints.launchpad.net/nova/+spec/improve-pylint-scores/ * start of zone\_aware\_scheduler test * Moved everything into notifier/api * make sure proper exceptions are raised for ec2 id conversion and add tests * better function name * Updated the value of the nova-manager libvirt\_type * more filter alignment * Removed commented out 'from nova import log as logging' line, per request from Brian Lamar * merge trunk * align filters on query * better pylint scores on imports * Code cleanup * Merged trunk * Abstract out IPv6 address generation to pluggable backends * Merged trunk * First cut with tests passing * changing Authors file * removed unused wild card imports, replaced sqlalchemy wildcard import with explicit imports * removed unused wild card imports, replaced sqlalchemy wildcard import with explicit imports * Fix for #780276 (run\_tests.sh fails test\_authors\_up\_to\_date when using git repo) * extracted xenserver capability reporting from dabo's dist-scheduler branch and added tests * migrate back updated\_at correctly * added in log\_notifier for easier debugging * Add priority based queues to notifications. Remove duplicate json encoding in notifier (rpc.cast does encoding... ) make no\_op\_notifier match rabbit one for signature on notify() * Bugfix #780784. KeyError when creating custom image * removed unused wild card imports, replaced sqlalchemy wildcard import with explicit imports * removed unused wild card imports, replaced sqlalchemy wildcard import with explicit imports * removed unused wild card imports, replaced sqlalchemy wildcard import with explicit imports * Better tests * Add example * give a more informative message if pre-migration assertions fail * Whoops * fix migration bug * Pep8 * Test * remove stubbing of XenAPISession.wait\_for\_task for xenapi tests as it doesn't need to be faked. Also removed duplicate code that stubbed xenapi\_conn.\_parse\_xmlrpc\_value * migration bug fixes * Change xenapi's wait\_for\_task to handle multiple simultaenous queries to fix lp:766404 * Added GitPython to [install\_dir]/tools/pip-requires * got rid of unnecessary imports * Enable RightAWS style signature checking using server\_string without port number, add test cases for authenticate() and a new helper routine, and fix lp753660 * Better message format description * unified underscore/dash issue * update tests to handle unlimited resources in the db * pep8 * capabilities flattened and tests fixed * Set root password upon XenServer instance creation * trunk merge * clean up unused functions from virt/images.py * Removing a rogue try/catch expecting a non-existant exception.TimeoutException that is never raised * basic test working * db: fix db versioning * fix mismerge by 1059 * volume/driver: implement basic snapshot/clone * volume/driver: factor out lvm opration * Host Filtering for Distributed Scheduler (done before weighing) * Rebased to trunk rev 1057 * Adds coverage-related packages to the tools/pip-requires to allows users to generate coverage reporting when running unit tests with virtulenv * merge from trunk * Set publish\_errors default to False * convert quota table to key-value * Simple fix for this issue. Tries to raise an exception passing in a variable that doesn't exist, which causes an error * Fixed duplicate function * Review feedback * Review feedback * Fixed method in flavors * Review feedback * Review feedback * Merged trunk * Set root password upon XenServer instance creation * Added Python packages needed for coverage reports to virtualenv packages * Added interface functions * merge from trunk * added test for show\_by\_name ImageNotFound exception * tests pass again * Sanitize get\_console\_output results. See bug #758054 * revised file docs * New author in town * Changes to allow a VM to boot from iso image. A blank HD is also attached with a size corresponding to the instance type * Added stub function for a referenced, previously non-existant function * Merged trunk * grabbed from dist-sched branch * Explicitly casted a str to a str to please pylint * Removed incorrect, unreachable code * spacing fix * pep8 fix * Improved error notification in network create * Add two whitespaces to conform PEP8 * Publish errors via nova.notifier * Added myself to Authors file * terminology: no more plug-ins or queries. They are host filters and drivers * Added interface function to ViewBilder * Added interfaces to server controller * added self to authors * fixed issue with non-existent variable being passed to ImageNotFound exception * removing rogue TimeoutException * merge prop fixes * Merged trunk * print statements removed * merge with trunk * flipped service\_state in ZoneManager and fixed tests * pep8 * not = * not = * and or test * and or test * merge from trunk * Removed extra newline after get\_console\_output in fake virt driver * Moved all reencoding to compute manager to satisfy both Direct API and internal cloud call * Merged with current trunk * added myself to Authors * Adding a test case to show the xml deserialization failure for imageRef and flavorRef * Fixes for nova-manage vpn list * json parser * Don't fail the test suite in the absence of VCS history * It's ok if there's no commit history. Otherwise the test suite in the tarball will fail * Merged trunk * flavor test * Fix indentation * tests and better driver loading * Add missed hyphen * Adding OSAPI v1.1 limits resource * Adding support for server rebuild to v1.0 and v1.1 of the Openstack API * reduce policy for countyname * looking for default flagfile * adding debug log message * merging trunk * merging trunk * removing class imports * Merged trunk * Merged trunk * Moved reencoding logic to compute manager and cloud EC2 API * ensure create image conforms to OS API 1.1 spec * merge updates from trunk * Added support in the nova openstack api for requests with local hrefs, e.g., "imageRef":"2" Previously, it only supported "imageRef":"http://foo.com/images/2". The 1.1 api spec defines both approaches * Add a flag to allow the user to specify a dnsmasq configuration file for nova-network to use when starting dnsmasq. Currently the command line option is set to "--config-fil=" with nothing specified. This branch will leave it as it is if the user does not specify a config file, but will utilize the specific file if they do * merged from trunk * implemented review suggestion EAFP style, and fixed test stub fake\_show needs to have image\_state = available or other tests will fail * got rid of extra whitespace * Update tools/pip-requires and tools/install\_venv.py for python2.7 support (works in ubuntu 11.04) * No need to test length of admin password in local href test * merging trunk; resolving conflicts; fixing issue with ApiError test failing since r1043 * Added support in osapi for requests with local hrefs, e.g., "imageRef":"2" * initial pass * Implement get\_host\_ip\_addr in the libvirt compute driver * merging trunk; resolving conflicts * Modified the instance status returned by the OS api to more accurately represent its power state * Fixed 2 lines to allow pep8 check to pass * Since run\_tests.sh utilizes nose to run its tests, the -x, --stop flag works correctly for halting tests on the first failed test. The usage information for run\_tests.sh now includes the --stop flag * add support for git checking and a default of failing if the history can't be read * ApiError 'code' arg set to None, and will only display a 'code' as part of the str if specified * Fixed: Check for use of IPv6 missing * removed unused method and fixed imports * Change the links in the sidebar on the docs pages * Use my\_ip for libvirt version of get\_host\_ip\_addr * fix typo in import * removed unused method and fixed imports * small changes in libvirt tests * place ipv6\_rules creation under if ip\_v6 section * Added checking ip\_v6 flag and test for it * merging trunk * adding view file * Expose AuthManager.list\_projects user filter to nova-manage * Final cleanup of nova/exceptions.py in my series of refactoring branches * Uses memcached to cache roles so that ldap is actually usable * added nova version to usage output of bin/nova-manage for easy identification of installed codebase * Changing links in sidebar to previous release * Rebased to trunk rev 1035 * converted 1/0 comparison in db to True/False for Postgres cast compatibility * Changed test\_cloud and fake virt driver to show out the fix * converted 1/0 comparison to True/False for Postgres compatibility * pep8 * fixed docstring per jsb * added version list command to nova-manage * Added more unit-test for multi-nic-nova libvirt * Sanitize get\_console\_output in libvirt\_conn * added nova version output to usage printout for nova-manage * Make the import of distutils.extra non-mandatory in setup.py. Just print a warning that i18n commands are not available.. * Correcting exception case * further cleanup of nova/exceptions.py * added eagerloading mac adddresses for instance * merge with trunk and resolve conflicts * Added myself to authors file * pep8 fixes * Refactoring usage of nova.exception.NotFound * Let nova-mange limit project list by user * merging trunk * Make the import of distutils.extra non-mandatory in setup.py. Just print a warning that i18n commands are not available.. * Updated run\_tests.sh usage info to reflect the --stop flag * Fixed formatting to align with PEP 8 * Modified instance status for shutoff power state in OS api * Refactoring the usage of nova.exception.Duplicate * Rebased to trunk rev 1030 * removed extra newline * merged from trunk * updated tests to reflect serverRef as href (per Ilya Alekseyev) and refactored \_build\_server from ViewBuilder (per Eldar Nugaev) * Add a test checking spawn() works when network\_info is set, which currently doesn't. The following patch would fix parameter mismatch calling \_create\_image() from spawn() in libvirt\_conn.py * removed unused imports and renamed template variables * pep8 * merging trunk * Renamed test\_virt.py to test\_libvirt.py as per suggestion * fixing bad merge * Merged trunk and fixed simple exception conflict * merging trunk * Refactoring nova.exception.Invalid usage * adding gettext to setup.py * Use runtime XML instead of VM creation time XML for createXML() call in order to ensure volumes are attached after RebootInstances as a workaround, and fix bug #747922 * Created new libvirt directory, moved libvirt\_conn.py to libvirt/connection.py, moved libvirt templates, broke out firewall and network utilities * Rebased to trunk rev 1027, and resolved a conflict in nova/virt/libvirt\_conn.py * Rebased to trunk rev 1027 * clarifies error when trying to add duplicate instance\_type names or flavorids via nova-manage instance\_type * merge trunk * Rework completed. Added test cases, changed helper method name, etc * pep8 * merge trunk, resolved conflict * merge trunk * Abstracted libvirt's lookupByName method into \_lookup\_by\_name * Provide option of auto assigning floating ip to each instance. Depend on auto\_assign\_floating\_ip boolean flag value. False by default * Fixes per review * Restore volume state on migration failure to fix lp742256 * Fixes cloudpipe to get the proper ip address * merging trunk * Fix bug with content-type and small OpenStack API actions refactor * merge with trunk * merge trunk * merged trunk * -Fixed indent for \_get\_ip\_version -Added LoopingCall to destroy as suggested by earlier bug report -Standardized all LoopingCall uses to include useful logging and better error handling * Create a dictionary of instance\_types before executing SQL updates in the instance\_type\_id migration (014). This should resolve a "cannot commit transaction - SQL statements in progress" error with some versions of sqlite * create network now takes bridge for flat networks * Adapt DescribeInstances to EC2 API spec * Change response of the EC2 API CreateVolume method to match the API docs for EC2 * Merged trunk and fixed api servers conflict * pep8 * Fixes and reworkings based on review * pep8 * Addressing exception.NotFound across the project * fix logging in reboot OpenStack API * eager loaded mac\_address attributes for mac address get functions * updated image builder and tests for OS API 1.1 compatibility (serverRef) * forgot import * change action= to actions= * typo * forgot to save * moved get\_network\_topic to network.api * style cleaning * Fixed network\_info creation in libvirt driver. Now creating same dict as in xenapi driver * Modified instance status for shutdown power state in OS api * rebase trunk * altered imports * commit to push for testing * Rebased to trunk rev 1015 * Utility method reworked, etc * Docstring cleanup and formatting (nova/image dir). Minor style fixes as well * Docstring cleanup and formatting (nova/db dir). Minor style fixes as well * Docstring cleanup and formatting (nova dir). Minor style fixes as well * use vpn filter in basic filtering so cloudpipe works with iptables driver * use simpler interfaces * Docstring cleanup and formatting (console). Minor style fixes as well * Docstring cleanup and formatting (compute). Minor style fixes as well * merge trunk * Add privateIpAddress and ipAddress to EC2 API DescribeInstances response * style fixing * Fix parameter mismatch calling \_create\_image() from spawn() in libvirt\_conn.py * Add a test checking spawn() works when network\_info is set, which currently doesn't. The following patch would fix it * put up and down in the right dir * Makes metadata correctly display kernel-id and ramdisk-id * pep8 cleaning * style fix * revert changes that doesn't affect the bug * in doesn't work properly on instance\_ref * Another small round of pylint clean-up * Added an option to run\_tests.sh so you can run just pep8. So now you can: ./run\_tests.sh --just-pep8 or ./run\_tests.sh -p * merge trunk * fix display of vpn instance id and add output rule so it can be tested from network host * Exit early if tests fail, before pep8 is run * more changes per review * fixes per review * docstring cleanup, nova/image dir * Docstring cleanup and formatting. Minor style fixes as well * cleanups per code review * docstring cleanup, nova dir * fixed indentation * docstring cleanup, console * docstring cleanup, nova/db dir * attempts to make the docstring rules clearer * fix typo * docstring cleanup compute manager * bugfix signature * refactor the way flows are deleted/reset * remove ambiguity in test * Pylinted nova-compute * Pylinted nova-manage * replaced regex to webob.Request.content\_type * fix after review: style, improving tests, replacing underscore * merge with trunk * fix Request.get\_content\_type * Reverted bad merge * Rebased to trunk rev 1005 * Removed no longer relevant comment * Removed TODO we don't need * Removed \_ and replaced with real variable name * instance type get approach changed. tests fixed * Merged trunk * trunk merged * fix: mark floating ip as auto assigned * Add to Authors * Change response format of CreateVolume to match EC2 * revamped spacing per Rick Harris suggestion. Added exact error to nova-manage output * only apply ipv6 if the data exists in xenstore * Create a dictionary of instance\_types before executing SQL updates in the instance\_type\_id migration (014). This should resolve a "cannot commit transaction - SQL statements in progress" error with some versions of sqlite * add support for git checking and a default of failing if the history can't be read * strip output, str() link local * merging lp:~rackspace-titan/nova/exceptions-refactor-invalid * Round 1 of pylint cleanup * Review feedback * Implement quotas for the new v1.1 server metadata controller * fix doc typo * fix logging in reboot OpenStack API * make geninter.sh use the right tmpl file * pep8 fix * refactoring usage of exception.Duplicate errors * rename all versions of image\_ec2\_id * Abstracted lookupByName calls to \_lookup\_by\_name for centralized error handling * actually use the ec2\_id * remove typo * merging lp:~rackspace-titan/nova/exceptions-refactor-invalid * Fixes cloudpipe to get the proper ip address * add include file for doc interfaces * add instructions for setting up interfaces * Merged trunk and fixed small comment * Fixed info messages * Tweak to destroy loop logic * Pretty critical spelling error * Removed extra calls in exception handling and standardized the way LoopingCalls are done * one last i18n string * Merged trunk * multi-line string spacing * removing rogue print * moving dynamic i18n to static * refractoring * Add support for cloning a Sheepdog volume * Add support for cloning a Sheepdog volume * Add support for creating a new volume from a existing snapshot with EC2 API * Add support for creating a new volume from a existing snapshot with EC2 API * Add support for creating a Sheepdog snapshot * Add support for creating a Sheepdog snapshot * Add support for creating a snapshot of a nova volume with euca-create-snapshot * Add support for creating a snapshot of a nova volume with euca-create-snapshot * trunk merged * Implement get\_host\_ip\_addr in the libvirt compute driver * Adding projectname username to the nova-manage project commands to fix a doc bug, plus some edits and elimination of a few doc todos * pep8 fixes * Remove zope.interface from the requires file since it is not used anywhere * use 'is not None' instead of '!= None' * Fix loggin in creation server in OpenStack API 1.0 * Support admin password when specified in server create requests * First round of pylint cleanup * merge lp:nova and resolve conflicts * Change '== None' to 'is None' * remove zope.interface requires * use 'is not None' instead of '!= None' * pep8 fixes * Change '== None' to 'is None' * Fixes nova-manage image convert when the source directory is the same one that local image service uses * trunk merged * pep8 fixed * calc link local * not performing floating ip operation with auto allocated ips * it is rename not move * pep8 fix * Rebased to trunk rev 995 * Rebased to trunk rev 995 * merge trunk * add fault as response * Fix logging in openstack api * Fix logging in openstack api * Fix logging in openstack api * trunk merged. conflict resolved * trunk merged. conflict resolved * The change to utils.execute's call style missed this call somehow, this should get libvirt snapshots working again * Fix parameter mismatch calling to\_xml() from spawn() in libvirt\_conn.py * move name into main metadata instead of properties * change libvirt snapshot to new style execute * Add additional logging for WSGI and OpenStack API authentication * Rename the id * Added period to docstring for metadata test * Merged trunk * Empty commit to hopefully regenerate launchpad diff * Explicitly tell a user that they need to authenticate against a version root * Merged trunk * merging trunk * adding documentation & error handling * correcting tests; pep8 * Removed the unused self.interfaces\_xml variable * Only poll for instance states that compute should care about * Diablo versioning * Diablo versioning * Rebased to trunk rev 989 * Rebased to trunk rev 989 2011.2 ------ * Final versioning for Cactus * initial roundup of all 'exception.Invalid' cases * merge trunk * set the bridge on each OvsFlow * merge with trunk * bugfix * bugfix * Fix parameter mismatch calling to\_xml() from spawn() in libvirt\_conn.py * add kvm-pause and kvm-suspend 2011.2rc1 --------- * Rework GlanceImageService.\_translate\_base() to not call BaseImageService.\_translate\_base() otherwise the wrong class attributes are used in properties construction.. * Updated following to RIck's comments * Rebased to trunk rev 987 * Rework GlanceImageService.\_translate\_base() to not call BaseImageService.\_translate\_base() otherwise the wrong class attributes are used in properties construction.. * Try to be nicer to the DB when destroying a libvirt instance * pep8 * merge trunk * fixed error message i18n-ization. added test * Don't hammer on the DB * Debug code clean up * Rebased to trunk rev 986 * An ultimate workaround workd... :( * Zero out volumes during deletion to prevent data leaking between users * Minor formatting cleanup * jesse@aire.local to mailmap * Changed pep8 command line option from --just-pep8 to --pep8 * re-add broken code * merge trunk * Final versioning * Updates the documentation on creating and using a cloudpipe image * iSCSI/KVM test completed * Minor fixes * Fix RBDDriver in volume manager. discover\_volume was raising exception. Modified local\_path as well * Fixes VMware Connection to inherit from ComputeDriver * Fixes s3.py to allow looking up images by name. Smoketests run unmodified again with this change! * move from try\_execute to \_execute * Make VMWare Connection inherit from ComputeDriver * add up and down .sh * fix show\_by\_name in s3.py and give a helpful error message if image lookup fails * remove extra newline * dots * Rebased to trunk rev 980 * Rework importing volume\_manager * Blushed up a little bit * Merged trunk * Only warn about rouge instances that compute should know about * Added some tests * Dangerous whitespace mistake! :) * Cleanup after prereq merge * Add new flag 'max\_kernel\_ramdisk\_size' to specify a maximum size of kernel or ramdisk so we don't copy large files to dom0 and fill up /boot/guest * Rebased to trunk rev 980 * Merged lp:~rackspace-titan/nova/server\_metadata\_quotas as a prereq * Merged trunk * Docstring cleanup and formatting. Minor style fixes as well * Updated to use setfacl instead of chown * Commit for merge of metadata\_quotas preq * merge trunk * Removed extra call from try/except * Reverted some superfluous changes to make MP more concise * Merged trunk * Reverted some superfluous changes to make MP more concise * Replace instance ref from compute.api.get\_all with one from instance\_get. This should ensure it gets fully populated with all the relevant attributes * Add a unit test for terminate\_instances * pep8 * Fix RBDDriver in volume manager. discover\_volume was raising exception. Modified local\_path as well * pep8 fixes * migaration and pep8 fixes * update documentation on cloudpipe * Makes genvpn path actually refer to genvpn.sh instead of geninter.sh * typo * Merged trunk * Updating the runnova information and fixing bug 753352 * merge trunk * network manager changes, compute changes, various other * Floating ips auto assignment * Sudo chown the vbd device to the nova user before streaming data to it. This resolves an issue where nova-compute required 'root' privs to successfully create nodes with connection\_type=xenapi * Minor blush ups * A minor blush up * A minor blush up * Remove unused self.interfaces\_xml * Rebased to trunk rev 977 * Rebase to trunk rev 937 * debug tree status checkpoint 2 * docstring cleanup, direct api, part of compute * bzr ignore the top level CA dir that is created when running 'run\_tests.sh -N' * fix reference to genvpn to point to the right shell script * Set default stateOrProvice to 'supplied' in openssl.cnf.tmpl * merge trunk * This branch fixes https://bugs.launchpad.net/bugs/751231 * Replace instance ref from compute.api.get\_all with one from instance\_get. This should ensure it gets fully populated with all the relevant attributes * When using libvirt, remove the persistent domain definition when we call destroy, so that behavior on destroy is as it was when we were using transient instances * Rebased to trunk rev 973 * Currently terminating an instance will hang in a loop, this allows for deletion of instances when using a libvirt backend. Also I couldn't help add a debug log where an exception is caught and ignored * merge trunk * resolved lazy\_match conflict between bin/nova-manage instance and instance\_type by moving instance subcommand under vm command. documented vm command in man page. removed unused instance\_id from vm list subcommand * Ooops - redefining the \_ variable seems like a \_really\_ bad idea * Handle the case when the machine is already SHUTOFF * Split logic on shutdown and undefine, so that even if the machine is already shutdown we will be able to proceed * Remove the XML definition when we destroy a machine * Rebased to trunk rev 971 * debug tree status checkpoint * Reabased to trunk rev 971 * Fixed log message gaffe * pylintage * typo - need to get nova-volumes working on this machine :-/ * dd needs a count to succeed, and remove unused/non-working special case for size 0 * There is a race condition when a VDI is mounted and the device node is created. Sometimes (depending on the configuration of the Linux distribution) nova loses the race and will try to open the block device before it has been created in /dev * zero out volumes on delete using dd * Added RST file on using Zones * Fixes euca-attach-volume for iscsi using Xenserver * pep8 * merge trunk * removes log command from nova-manage as it no longer worked in multi-log setup * Added error message to exception logging * Fixes bug which hangs nova-compute when terminating an instance when using libvirt backend * missing 'to' * Short circuit non-existant device during unit tests. It won't ever be created because of the stubs used during the unit tests * Added a patch for python eventlet, when using install\_venv.py (see FAQ # 1485) * fixed LOG level and log message phrase * merge prop tweaks 2 * Set default stateOrProvice to 'supplied' in openssl.cnf.tmpl * This branch fixes https://bugs.launchpad.net/nova/+bug/751242 * Ignore errors when deleting the default route in the ensure\_bridge function * bzr ignore the CA dir * merge prop tweaks * Import translations from Launchpad * added Zones doc * Update the describe\_image\_attribute and modify\_image\_attribute functions in the EC2 API so they use the top level 'is\_public' attribute of image objects. This brings these functions in line with the base image service * Import from lp:~nova-core/nova/translations * corrects incorrect openstack api responses for metadata (numeric/string conversion issue) and image format status (not uppercase) * Implement a mechanism to enforce a configurable quota limit for image metadata (properties) within the OS API image metadata controller * Update the describe\_image\_attribute and modify\_image\_attribute functions in the ec2 API so they use the top level 'is\_public' attribute of image objects. This brings these functions in line with the base image service * Ignore errors when deleting the default route in the ensure\_bridge function * merge trunk * removed log command from nova-manage. no longer applicable with multiple logfiles * merge trunk * reminde admins of --purge option * Fixes issues with describe instances due to improperly set metadata * Keep guest instances when libvirt host restarts * fix tests from moving access check into update and delete * Added support for listing addresses of a server in the openstack api. Now you can GET \* /servers/1/ips \* /servers/1/ips/public \* /servers/1/ips/private Supports v1.0 json and xml. Added corresponding tests * Log libvirt errcode on exception * This fixes how the metadata and addresses collections are serialized in xml responses * Fix to correct libvirt error code when the domain is not found * merged trunk * Removed commented-out old 'delete instance on SHUTOFF' code * Automatically add the metadata address to the network host. This allows guests to ARP for the address properly * merged trunk and resolved conflict * slight typo * clarified nova-manage instance\_type create error output on duplicate flavorid * This branch is a patch for fixing below issue. > Bug #746821: live\_migration failing due to network filter not found Link a bug report * fix pep8 violation * Update instances table to use instance\_type\_id instead of the old instance\_type column which represented the name (ex: m1.small) of an instance type * Drop extra 'None' arg from dict.get call * Some i18n fixes to instance\_types * Renamed computeFault back to cloudServersFault in an effort to maintain consistency with the 1.0 API spec. We can look into distinguishing the two in the next release. Held off for now to avoid potential regression * adds a timeout on session.login\_with\_password() * Drop unneeded Fkey on InstanceTypes.id * Bypass a potential security vulnerability by not setting shell=True in xenstore.py, using johannes.erdfelt's patch * Renamed computeFault to cloudServersFault * fixed the way ip6 address were retrieved/returned in \_get\_network\_info in nova/virt/xenapi/vmops * added -manage vm [list|live-migration] to man page * removed unused instance parameter from vm list ... as it is unused. added parameters to docstring for vm list * moved -manage instance list command to -manage vm list to avoid lazy match conflict with instance\_types * Simplify by always adding to loopback * Remove and from AllocateAddress response, and fix bug #751176 * remove unused code * better error message * Blush up a bit * Rebased to trunk rev 949 * pep8 * adds timeout to login\_with\_password * test provider fw rules at the virt/ipteables layer. lowercase protocol names in admin api to match what the firewall driver expects. add provider fw rule chain in iptables6 as well. fix a couple of small typos and copy-paste errors * fixed based on reviewer's comment - 1. erase unnecessary blank line, 2. adding LOG.debug * Rebased to trunk rev 949 * fixed based on reviewer's comment - 'locals() should be off from \_() * Make description of volume\_id more generic * add the tests * pep8 cleanup * ApiError code should default to None, and will only display a code if one exists. Prior was output an 'ApiError: ApiError: error message' string, which is confusing * ec2 api run\_instances checks for image status must be 'available'. Overhauled test\_run\_instances for working set of test assertions * if we delete the old route when we move it we don't need to check for exists * merged trunk * removed comment on API compliance * Added an option to run\_tests.sh so you can run just pep8. So now you can: ./run\_tests.sh --just-pep8 or ./run\_tests.sh -p * Add automatic metadata ip to network host on start. Also fix race where gw is readded twice * Controllers now inherit from nova.api.openstack.common.OpenstackController * Merged trunk * Support providing an XML namespace on the XML output from the OpenStack API * Merged with trunk, fixed up test that wasn't checking namespace * Added support for listing addresses of a server in the openstack api. Now you can GET \* /servers/1/ips \* /servers/1/ips/public \* /servers/1/ips/private Supports v1.0 json and xml. Added corresponding tests * check visibility on delete and update * YADU (Yet Another Docstring Update) * Make sure ca\_folder is created before chdir()ing into it * another syntax error * Use a more descriptive name for the flag to make it easier to understand the purpose * Added logging statements for generic WSGI and specific OpenStack API requests * syntax error * Incorprate johannes.erdfelt's patch * updated check\_vm\_record in test\_xenapi to check the gateway6 correctly * updated get\_network\_info in libvirt\_conn to correctly insert ip6s and gateway6 into the network info, also small style fixes * add docstrings * updated \_prepare\_injectables() to use info[gateway6] instead of looking inside the ip6 address dict for the gateway6 information * Enable RightAWS style signing on server\_string without port number portion * modified behavior of inject\_network\_info and reset\_network related to a vm\_ref not being passed in * Create ca\_folder if it does not already exist * Wait for device node to be created after mounting image VDI * Improved unit tests Fixed docstring formatting * Only create ca\_path directory if it does not already exist * Added bug reference * Only create ca\_path directory if it does not already exist * Make "setup.py install" much more thorough. It now installs tools/ into /usr/share/nova and makes sure api-paste.conf lands in /etc/nova rather than /etc * fixed based on reviwer's comment * return image create response as image dict * Add a patch for python eventlet, when using install\_venv.py (see FAQ # 1485) * Undo use of $ in chain name where not needed * Testing for iptables manager changes * Don't double-apply provider fw rules in NWFilter and Iptables. Don't create provider fw rules for each instance, use a chain and jump to it. Fix docstrings * typo * remove -None for user roles * pep8 * fallback to status if image\_state is not set * update and fix tests * unite the filtering done by glance client and s3 * Removing naughty semicolon * merged trunk * remove extraneous empty lines * move error handling down into get\_password function * refactor to handle invalid adminPass * fixed comment * merged trunk * add support for specifying adminPass for JSON only in openstack api 1.1 * add tests for adminPass on server create * Fix a giant batch of copypasta * Remove file leftover from conflict * adding support for OSAPI v1.1 limits resource * Moved 'name' from to , corrected and fixes bug # 750482 * This branch contains the fix for lp:749973. VNC is assumed that is default for all in libvirt which LXC does not support yet * Remove comments * Separate CA/ dir into code and state * removed blank lines for pep8 fix * pep8 fixed * Fixed the addresses and metadata collections in xml responses. Added corresponding tests * Dont configure vnc if we are using lxc * Help paste\_config\_file find the api config now that we moved it * Add bug reference * Move api-paste.ini into a nova/ subdir of etc/ * Add a find\_data\_files method to setup.py. Use it to get tools/ installed under /usr/(local/)/share/nova * Nits * Add missing underscore * fix bug lp751242 * fix bug lp751231 * Automatically create CA state dir, and make sure the CA scripts look for the templates in the right places * fix bug 746821 * Remove and from AllocateAddress response, and fix bug #751176 * Allow CA code and state to be separated, and make sure CA code gets installed by setup.py install * Rebased to trunk 942 * fix bug lp:682888 - DescribeImages has no unit tests * Correct variable name * correct test for numeric/string metadata value conversion * openstack api metadata responses must be strings * openstack api requires uppercase image format status responses * merge trunk * Refactor so that instances.instance\_type is now instances.instance\_type\_id * splitting test\_get\_nic\_for\_xml into two functions * Network injection check fixed in libvirt driver * merging trunk * fixing log message * working with network\_ref like with mapping * add test for NWFilterFirewall * Removed adminclient.py and added reference to the new nova-adminclient project in tools/pip-requires * Don't prefix adminPass with the first 4 chars of the instance name * Declares the flag for vncproxy\_topic in compute.api * Fixes bug 741246. Ed Leafe's inject\_file method for the agent plugin was mistakenly never committed after having to fix commits under wrong email address. vmops makes calls to this (previously) missing method * Attempt to circumvent errors in the API from improper/malformed responses from image service * fixes incorrect case of OpenStack API status response * Fixed network\_info creating * Moved 'name' property from to , corrected and fixes bug # 750482 * corrected capitalization of openstack api status and added tests * libvirt\_con log fix * Ensure no errors for improper responses from image service * merge trunk * Fixes error which occurs when no name is specified for an image * improving tests * network injection check fixed * Only define 'VIMMessagePlugin' class if suds can be loaded * Make euca-get-ajax-console work with Euca2ools 1.3 * Add bug reference * Use keyword arguments * add multi\_nic\_test * added preparing\_xml test * split up to\_xml to creation xml\_info and filling the template * use novalib for vif\_rules.py, fix OvsFlow class * extract execute methods to a library for reuse * Poller needs to check for BUILDING not NOSTATE now, since we're being more explict about what is going on * Add checking if the floating\_ip is allocated or not before appending to result array in DescribeAddresses * Added synchronize\_session parameter to a query in fixed\_ip\_disassociate\_all\_by\_timeout() and fix #735974 * Made the fix simpler * Add checking if the floating\_ip is allocated or not before appending to result array * Added updated\_at field to update statement according to Jay's comment * change bridge * Add euca2ools import * Rebased to trunk 930 * Rebased to trunk 726 * lots of updates to ovs scripts * Make euca-get-ajax-console work with Euca2ools 1.3 * merge trunk * Hopefully absolved us of the suds issue? * Removes excessive logging message in the event of a rabbitmq failure * Add a change password action to /servers in openstack api v1.1, and associated tests * Removal of instance\_set\_state from driver code, it shouldnt be there, but instead should be in the compute manager * Merged trunk * Don't include first 4 chars of instance name in adminPass * Friendlier error message if there are no compute nodes are available * merge lp:nova * Merged waldon * Adding explanation keyword to HTTPConflict * Merged waldon * makes sure s3 filtering works even without metadata set properly * Merged waldon * Didn't run my code. Syntax error :( * Now using the new power state instead of string * adding servers view mapping for BUILDING power state * removes excessive logging on rabbitmq failure * Review feedback * Friendlier error message if there are no compute nodes are available * Merged with Waldon * Better error handling for spawn and destroy in libvirt * pep8 * adding 'building' power state; testing for 409 from OSAPI when rebuild requested on server being rebuild * More friendly error message * need to support python2.4, so can't use uuid module * If the floating ip address is not allocated or is allocated to another project, then the user trying to associate the floating ip address to an instance should get a proper error message * Update state between delete and spawn * adding metadata support for v1.1 * Rebuild improvements * Limit image metadata to the configured metadata quota for a project * Add volume.API.remove\_from\_compute instead of compute.API.remove\_volume * Rebased to trunk rev 925 * Removed adminclient and referred to pypi nova\_adminclient module * fixed review comment for i18n string multiple replacement strings need to use dictionary format * fixed review comment for i18n string multiple replacement strings need to use dictionary format * Add obviously-missing method that prevents an Hyper-V compute node from even starting up * Avoid any hard dependencies in nova.virt.vmwareapi.vim * review cleanup * Handles situation where Connection.\_instances doesn't exist (ie. production) * localize NotImplementedError() * Change '"%s" % e' to 'e' * Fix for LP Bug #745152 * Merged waldon * adding initial v1.1 rebuild action support * Add ed leafe's code for the inject\_file agent plugin method that somehow got lost (fixes bug 741246). Update TimeoutError string for i18n * submitting a unit test for terminate\_instance * Update docstrings and spacing * fixed ordering and spacing * removed trailing whitespace * updated per code review, replaced NotFound with exception.NotFound * Merged Waldon's API code * remove all references to image\_type and change nova-manage upload to set container format more intelligently * Rough implementation of rebuild\_instance in compute manager * adding v1.0 support for rebuild; adding compute api rebuild support * Key type values in ec2\_api off of container format * Whoops * Handle in vim.py * Refixed unit test to check XML ns * Merged with trunk (after faults change to return correct content-type) * OpenStack API faults have been changed to now return the appropriated Content-Type header * More tests that were checking for no-namespace * Some tests actually tested for the lack of a namespace :-) * pep8 fixes * Avoid hard dependencies * Implement quotas for the new v1.1 server metadata controller. Modified the compute API so that metadata is a dict (not an array) to ensure we are using unique key values for metadata. This is isn't explicit in the SPECs but it is implied by the new v1.1 spec since PUT requests modify individual items * Add XML namespaces to the OpenStack API * Merged with trunk * Fixed mis-merge: OS API version still has to be v1.1 * Store socket\_info as a dictionary rather than an array * Merged with trunk * Added synchronize\_session parameter to a query in fixed\_ip\_disassociate\_all\_by\_timeout() and fix #735974 * Key was converted through str() even if None, resulting in "None" being added to authorized\_keys when no key was specified * queues properly reconnect if rabbitmq is restarted * Moving server update adminPass support to be v1.0-specific OS API servers update tests actually assert and pass now Enforcing server name being a string of length > 0 * Adding Content-Type code to openstack.api.versions.Versions wsgi.Application * Fixes metadata for ec2\_api to specify owner\_id so that it filters properly * Makes the image decryption code use the per-project private key to decrpyt uploaded images if use\_project\_ca is set. This allows the decryption code to work properly when we are using a different ca per project * exception -> Fault * Merged trunk * Do not push 'None' to authorized\_keys when no key is specified * Add missing method that prevent HyperV compute nodes from starting up * TopicAdapterConsumer uses a different callback model than TopicConsumer. This patch updates the console proxy to use this pattern * merge trunk * Uses the proc filesystem to check the volume size in volume smoketests so that it works with a very limited busybox image * merged trunk * The VNC Proxy is an OpenStack component that allows users of Nova to access their instances through a websocket enabled browser (like Google Chrome) * make sure that flag is there in compute api * fix localization for multiple replacement strings * fix doc to refer to nova-vncproxy * Support for volumes in the OpenStack API * Deepcopy the images, because the string formatting transforms them in-place * name, created\_at, updated\_at are required * Merged with trunk * "Incubator" is no more. Long live "contrib" * Rename MockImageService -> FakeImageService * Removed unused super\_verbose argument left over from previous code * Renamed incubator => contrib * Wipe out the bad docstring on get\_console\_pool\_info * use project key for decrypting images * Fix a docstring * Found a better (?) docstring from get\_console\_pool\_info * Change volume so that it returns attachments in the same format as is used for the attachment object * Removed commented-out EC2 code from volumes.py * adding unit tests for describe\_images * Fix unit test to reflect fact that instance is no longer deleted, just marked SHUTOFF * Narrowly focused bugfix - don't lose libvirt instances on host reboot or if they crash * fix for lp742650 * Added missing blank line at end of multiline docstring * pep8 fixes * Reverted extension loading tweaks * conversion of properties should set owner as owner\_id not owner * add nova-vncproxy to setup.py * clarify test * add line * incorporate feedback from termie * Make dnsmasq\_interface configurable * Stop nova-manage from reporting an error every time. Apparently except: catches sys.exit(0) * add comment * switch cast to a call * move functions around * move flags per termie's feedback * initial unit test for describe images * don't print the error message on sys.exit(0) * added blank lines in between functions & removed the test\_describe\_images (was meant for a diff bug lp682888) * Make Dnsmasq\_interface configurable * fix flag names * Now checking that exists at least one network marked injected (libvirt and xenapi) * This branch adds support for linux containers (LXC) to nova. It uses the libvirt LXC driver to start and stop the instance * use manager pattern for auth token proxy * Style fixes * style fix * Glance used to return None when a date field wasn't set, now it returns ''. Glance used to return dates in format "%Y-%m-%dT%H:%M:%S", now it returns "%Y-%m-%dT%H:%M:%S.%f" * Fix up docstring * Added content\_type to OSAPI faults * accidentally dropped a sentence * Added checks that exists at least one network marked inhected in libvirt and xenapi * Adds support for versioned requests on /images through the OpenStack API * Import order * Switch string concat style * adding xml test case * adding code to explicitly set the content-type in versions controller; updating test * Merged trunk * Added VLAN networking support for XenAPI * pep8 * adding server name validation to create method; adding tests * merge lp:nova * use informative error messages * adding more tests; making name checks more robust * merge trunk * Fix pep8 error * Tweaking docstrings just in case * Catch the error that mount might through a bit better * sorted pep8 errors that were introduced during previous fixes * merge trunk * make all openstack status uppercase * Add remove\_volume to compute API * Pass along the nbd flags although we dont support it just yet * cleaned up var name * made changes per code review: 1) removed import of image from objectstore 2) changed to comments instaed of triple quotes * Displays an error message to the user if an exception is raised. This is vital because if logfile is set, the exception shows up in the log and the user has no idea something went wrong * Yet more docstring fixes * More style changes * Merged with trunk * Multi-line comments should end in a blankline * add note per review * More fixes to keep the stylebot happy * Cleaned up images/fake.py, including move to Duplicate exception * Code cleanup to keep the termie-bot happy * displays an error message if a command fails, so that the user knows something went wrong * Fixes volume smoketests to work with ami-tty * address some of termie's recommendations * add period, test github * pep8 * osapi servers update tests actually assert now; enforcing server name being a string of length > 0; moving server update adminPass support to be v1.0-specific * Moving shared\_ip\_groups controller to APIRouterV10 Replacing all shared\_ip\_groups contoller code with HTTPNotImplemented Adding shared\_ip\_groups testing * fix docstrings * Merged trunk * Updated docstrings to satisfy * Updated docstrings to satisfy * merge trunk * merge trunk * minor fix and comment * style fixes * merging trunk * Made param descriptions sphinx compatible * Toss an \_\_init\_\_ in the test extensions dir. This gets it included in the tarball * pep8 * Fix up libvirt.xml.template * This fixes EC2 API so that it returns image displayName and description properly * merged from trunk * Moving backup\_schedule route out of base router to OS API v1.0 All controller methods return HTTPNotImplemented to prevent further confusion Correcting tests that referred to incorrect url * Fixed superfluous parentheses around locals() * Added image name and description mapping to ec2 api * use self.flags in virt test * Fixed DescribeUser in the ec2 admin client to return None instead of an empty UserInfo object * Remove now useless try/except block * Dont make the test fail * backup\_schedule tests corrected; controller moved to APIRouterV10; making controller fully HTTPNotImplemented * when image\_id provided cannot be found, returns more informative error message * Adds support for snapshotting (to a new image) in the libvirt code * merge lp:nova * More pep8 corrections * adding shared\_ip\_groups testing; replacing all shared\_ip\_groups contoller code with HTTPNotImplemented; moving shared\_ip\_groups controller to APIRouterV10 * Merged trunk * pep8 whitespace * Add more unit tests for lxc * Decided to not break old format so this should work with the way Glance used to work and the way glace works now..The best of both worlds? * update glance params per review * add snapshot support for libvirt * HACKING update for docstrings * merge trunk * Fix libvirt merge mistake * lock down requirements for change password * merge trunk * Changed TopicConsumer to TopicAdapterConsumer in bin/nova-ajax-console-proxy to allow it to start up once again * style changes * Removed iso8601 dep from pip-requires * Merged trunk * Removed extra dependency as per suggestion, although it fixes the issue much better IMO, we should be safe sticking with using the format from python's isoformat() * Assume that if we don't find a VM for an instance in the DB, and the DB state is NOSTATE, that the db instance is in the process of being spawned, and don't mark it SHUTOFF * merge with trunk * Added MUCH more flexiable iso8601 parser dep for added stability * Fix formatting of TODO and NOTE - should be a space after the # * merge lp:nova * Mixins for tests confuse pylint no end, and aren't necessary... you can stop the base-class from being run as a test by prefixing the class name with an underscore * Merged the two periodic\_tasks functions, that snuck in due to parallel merges in compute.manager * Start up nova-api service on an unused port if 0 is specified. Fixes bug 744150 * Removed 'is not None' to do more general truth-checking. Added rather verbose testing * Merged with trunk * merge trunk * merge trunk, fixed conflicts * TopicConsumer -> TopicAdapterConsumer * Fix typo in libvirt xml template * Spell "warn" correctly * Updated Authors file * Removed extraneous white space * Add friendlier message if an extension fails to include a correctly named class or factory * addressed reviewers' concerns * addressed termies review (third round) * addressed termie's review (second round) * Do not load extensions that start with a "\_" * addressed termies review (first round) * Clarified note about scope of the \_poll\_instance\_states function * Fixed some format strings * pep8 fixes * Assume that if we don't find a VM for an instance in the DB, and the DB state is NOSTATE, that the db instance is in the process of being spawned * pep8 fixes * Added poll\_rescued\_instances to virt driver base class * There were two periodic\_tasks functions, due to parallel merges in compute.manager * pep8 fixes * Bunch of style fixes * Fix utils checking * use\_ipv6 now passing to interfaces.template as first level variable in libvirt\_conn * Replaced import of an object with module import as per suggestion * Updates to the newest version of nova.sh, which includes:  \* Installing new python dependencies  \* Allows for use of interfaces other than eth0  \* Adds a run\_detached mode for automated testing * Now that it's an extension, it has to be v1.1. Also fixed up all the things that changed in v1.1 * merge trunk addressing Trey's comments * Initial extensification of volumes * Merged with trunk, resolved conflicts & code-flicts * Removed print * added a simple test for describe\_images with mock for detail funciton * merged trunk * merge trunk * merge lp:nova * Adding links container to openstack api v1.1 servers entities * Merged trunk * Add license and copyright to nova/tests/api/openstack/extensions/\_\_init\_\_.py * Fixed a typo on line 677 where there was no space between % and FLAGS * fix typos * updated nova.sh * Added a flag to allow a user to specify a dnsmasq\_config\_file is they would like to fine tune the dnsmasq settings * disk\_format is now an ImageService property. Adds tests to prevent regression * Merged trunk * Merged trunk * merging trunk * merge trunk * Merged trunk and fixed broken/conflicted tests * - add a "links" container to versions entities for Openstack API v1.1 - add testing for the openstack api versions resource and create a view builder * merging trunk * This is basic network injection for XenServer, and includes: * merging trunk * Implement image metadata controller for the v1.1 OS API * merging trunk * Changed use\_ipv6 passing to interfaces.template * merging trunk, resolving conflicts * Add a "links" container to flavors entities for Openstack API v1.1 * Toss an \_\_init\_\_ in the test extensions dir. This gets it included in the tarball * Use metadata = image.get('properties', {}) * merge trunk * Revert dom check * merge trunk * Fix unit tests w/ latest trunk merge * merging trunk and resolving conflicts * Fix up destroy container * Fix up templating * Implement metadata resource for Openstack API v1.1. Includes: -GET /servers/id/meta -POST /servers/id/meta -GET /servers/id/meta/key -PUT /servers/id/meta/key -DELETE /servers/id/meta/key * Dont always assume qemu * Removed partition from setup\_container * pep8 fix * disk\_format is now an ImageService property * Restore volume state on migration failure * merge trunk, add unit test * merge trunk * merge trunk addressing reviewer's comments * clarify comment * add documentation * Empty commit? * minor pep8 fix in db/fakes.py * Support for markers for pagination as defined in the 1.1 spec * add hook for osapi * merge trunk * Ports the Tornado version of an S3 server to eventlet and wsgi, first step in deprecating the twistd-based objectstore * Merged with trunk Updated net injection for xenapi reflecting recent changes for libvirt * Fix lp741415 by splitting arguments of \_execute in the iSCSI driver * make everything work with trunk again * Support for markers for pagination as defined in the 1.1 spec * add descriptive docstring * don't require integrated tests to recycle connections * remove twisted objectstore * port the objectstore tests to the new tests * update test base class to monkey patch wsgi * rename objectstore tests * port s3server to eventlet/wsgi * add s3server, pre-modifications * merge trunk * Added detail keywork and i18n as per suggestions * incorporate feedback from termie * Implementation of blueprint hypervisor-vmware-vsphere-support. (Link to blueprint: https://blueprints.launchpad.net/nova/+spec/hypervisor-vmware-vsphere-support) * fix typo * Addressing Trey's comments. Removed disk\_get\_injectables, using \_get\_network\_info's return value * Adds serverId to OpenStack API image detail per related\_image blueprint * Fix for bug #740947 Executing parted with sudo in \_write\_partition (vm\_utils.py) * Implement API extensions for the Openstack API. Based on the Openstack 1.1 API the following types of extensions are supported: * Merging trunk * Adds unit test coverage for XenAPI Rescue & Unrescue * libvirt driver multi\_nic support. In this phase libvirt can work with and without multi\_nic support, as in multi\_nic support for xenapi: https://code.launchpad.net/~tr3buchet/nova/xs\_multi\_nic/+merge/53458 * Merging trunk * Review feedback * Merged trunk * Additions to the Direct API: * Merged trunk * Added test\_get\_servers\_with\_bad\_limit, test\_get\_servers\_with\_bad\_offset and test\_get\_servers\_with\_bad\_marker * pep8 cleanups * Added test\_get\_servers\_with\_limit\_and\_marker to test pagination with marker and limit request params * style and spacing fixed * better error handling and serialization * add some more docs and make it more obvious which parts are examples * add an example of a versioned api * add some more docs to direct.py * add Limited, an API limiting/versioning wrapper * improve the formatting of the stack tool * support volume and network in the direct api * Merged with trunk, fix problem with behaviour of (fake) virt driver when instance doesn't reach scheduling * In this branch we are forwarding incoming requests to child zones when the requested resource is not found in the current zone * trunk merge * Fixes a bug that was causing tests to fail on OS X by ensuring that greenthread sleep is called during retry loops * Merged trunk * Fix some errors that pylint found in nova/api/openstack/servers.py * Fix api logging to show proper path and controller:action * Merged trunk * Pylint 'Undefined variable' E0602 error fixes * Made service\_get\_all()'s disabled parameter default to None. Pass False for enabled services; True for disabled services. Calls to this method have been updated to remain consistent * Merged with trunk * Reconcile tests with latest trunk merges * Merged trunk and resolved conflict in nova/db/sqlalchemy/api.py * Don't try to parse the empty string as a datetime * change names for consistency with existing db api * Merged with trunk * Forgot one set of flags * Paginated results should not include the item starting at marker. Improved implementation of common.limited\_by\_marker as suggested by Matt Dietz. Added flag osapi\_max\_limit * Detect if user is running the default Lucid version of libvirt, and give a nicer error message * Updated to use new APIRouterV11 class in tests * Fix lp741514 by declaring libvirt\_type in nova-manage * Docstring fixes * get image metadata tests working after the datetime interface change in image services * adding versioned controllers * Addressed issues raised by Rick Harris' review * Stubbing out utils.execute for migrate tests * Aggregates capabilities from Compute, Network, Volume to the ZoneManager in Scheduler * merged trunk r864 * removing old Versions application and correcting fakes to use new controller * Renamed \_\_image and \_\_compute to better describe their purposes. Use os.path.join to create href as per suggestion. Added base get\_builder as per pychecker suggestion * merging trunk r864 * trunk merged. conflicts resolved * Merged trunk * merge trunk * merge trunk * Small refactor * Merged trunk and fixed tests * Couple of pep8 fixes * pep8 clearing * making servers.generate\_href more robust * merging trunk r863 * Fixes lp740322: cannot run test\_localization in isolation * couple of bugs fixed * Merged trunk * Dont use popen in dettaching the lxc loop * Fix up formatting of libvirt.xml.template * trunk merge * fix based on sirp's comments * Grrr... because we're not recycling the API yet, we have to configure flags the first time it's called * merge trunk * Fake out network service as well, otherwise we can't terminate the instance in test\_servers now that we've started a compute service * merge trunk * Sorted out a problem occurred with units tests for VM migration * pep8 fixes * Test for attach / detach (and associated fixes) * Pass a fake timing source to live\_migration\_pre in every test that expectes it to fail, shaving off a whole minute of test run time * merge trunk * Poll instance states periodically, so that we can detect when something changes 'behind the scenes' * Merged with conflict and resolved conflict (with my own patch, no less) * Added simple nova volume tests * Created simple test case for server creation, so that we can have something to attach to.. * Merged with trunk * Added volume\_attachments * Declare libvirt\_type to avoid AttributeError in live\_migration * minor tweak from termie feedback * Added a mechanism for versioned controllers for openstack api versions 1.0/1.1. Create servers in the 1.1 api now supports imageRef/flavorRef instead of imageId/flavorId * Fixed the docstring for common.get\_id\_from\_href * better logging of exceptions * Merged trunk * Merged trunk * Fix issues with certificate updating & whitespace removal * Offers the ability to run a periodic\_task that sweeps through rescued instances older than 24 hours and forcibly unrescues them * Merged trunk * Added hyperv stub * Don't try to parse a datetime if it is the empty string (or None) * Remove a blank line * pep8 fix * Split arguments of \_execute in the iSCSI driver * merge trunk * Added revert\_resize to base class * Addressing Rick Clark's comments * Merged with lp:nova, fixed conflicts * boto\_v6 module is imported if the flag "use\_ipv6" is set to True * pep8 fixes, backported some important fixes that didn't make it over from my testing system :-( * Move all types of locking into utils.synchronize decorator * Doh! Missed two places which were importing the old driver location * Review feedback * make missing noVNC error condition a bit more fool-proof * clean some pep8 issues * general cleanup, use whitelist for webserver security * Better method name * small fix * Added docstring * Updates the previously merged xs\_migration functionality to allow upsizing of the RAM and disk quotas for a XenServer instance * Fix lp735636 by standardizing the format of image timestamp properties as datetime objects * migration gateway\_v6 to network\_info * merge prop fixes * Should not call super \_\_init\_\_ twice in APIRouter * fix utils.execute retries for osx * Keep the fallback code - we may want to do better version checking in future * Give the user a nicer error message if they're using the Lucid libvirt * Only run periodic task when rescue\_timeout is greater than 0 * Fixed some typos * Forgot extraneous module import again * Merged trunk * Forgot extraneous module import * Automatically unrescue instances after a given timeout * trunk merge * indenting cleanup * fixing some dictionary get calls * Unit test cleanup * one more minor fix * Moving the migration yet again * xml template fixed * merge prop changes * pep8 fixed * trunk merged * added myself to authors file * Using super to call parent \_setup\_routes in APIRouter subclasses * Merged trunk * pep8 fix * Implement v1.1 image metadata * This branch contains the fix for bug #740929 It makes sure cidr\_v6 is not null before building the 'ip6s' key in the network info dictionary. This way utils.to\_global\_ipv6 does not fail because of cidr==None * review comments fixed * add changePassword action to os api v1.1 * Testing of XML and JSON for show(), and conformance to API spec for JSON * Fixed tests * Merged trunk * Removed some un-needed code, and started adding tests for show(), which I forgot\! * id -> instance\_id * Checking whether cidr\_v6 is not null before populating ipv6 key in network info map (VMOps.\_get\_network\_info) * Executing parted with sudo in \_write\_partition * We update update\_ra method to synchronize, in order to prevent crash when we request multiple instance at once * merged with trunk Updated xenapi network injection for IPv6 Updated unit tests * merge trunk * merge trunk * removed excess debug line * more progress * use the nova Server object * separating out components of vnc console * Earlier versions of the python libvirt binding had getVersion in the libvirt namespace, not on the connection object. Check both * Report the exception (happens when can't import libvirt) * Use subset\_dict * Removing dead code * Touching up comment * Merging trunk * Pep8 fixes * Adding tests for owned and non-existent images * More small cleanups * Fix for #740742 - format describe\_instance\_output correctly to prevent errors in dashboard * Cleaning up make\_image\_fixutres * Merged with lp:nova * Small cleanup of openstack/images.py * Fixed up the new location of driver.py * Fix for lp740742 - format describe\_instance\_output correctly to prevent errors in dashboard * Merged with lp:nova * Filtering images by user\_id now * Clarified my "Yuk" comment * Cleaned up comment about virsh domain.info() return format * Added space in between # and TODO in #TODO * Added note about the advantages of using a type vs using a set of global constants * Filled out the base-driver contract, so it's not a false-promise * Enable flat manager support for ipv6 * Adding a talk bubble to the nova.openstack.org site that points readers to the 2011.1 site and the docs.openstack.org site - similar to the swift.openstack.org site. I believe it helps people see more sites are available, plus they can get to the Bexar site if they want to. Going forward it'll be nice to use this talk bubble to point people to the trunk site from released sites * Correctly imports greenthread in libvirt\_conn.py. It is used by live\_migrate() * Forgot this in the rename of check\_instance -> check\_isinstance * Test the login behavior of the OpenStack API. Uncovered bug732866 * trunk merge * Renamed check\_instance -> check\_isinstance to make intent clearer * Fix some crypto strangeness (\n in file\_name field of certificates, wrong IMPL method for certificate\_update) * Added note agreeing with Brian Lamar that the namespace doesn't belong in wsgi * Fix to avoid db migration failure in virtualenv * Fixed up unit tests and direct api that was also calling \_serialize (naughty!) * Fix the describe\_vpns admin api call * pep8 and fixed up zone-list * Support setting the xmlns intelligently * get\_all cleanup * Refactored out \_safe\_translate code * Set XML namespace when returning XML * Fix for LP Bug #704300 * Fix a typo in the ec2 admin api * typo fix * Pep8 fix * Merging trunk * make executable * Adding BASE\_IMAGE\_ATTRS to ImageService * intermediate progress on vnc-nova integration. checking in to show vish * add in eventlet version of vnc proxy * Updating doc strings in accordance with PEP 257. Fixing order of imports in common.py * one more copyright fix * pep8 stupidness * Tweak * fixing copyright * tweak * tweak * Whoops * Changed default for disabled on service\_get\_all to None. Changed calls to service\_get\_all so that the results should still be as they previously were * Now using urlparse to parse a url to grab id out of it * Resolved conflicts * Fix * Remove unused global semaphore * Addressed reviewer's comments * pep8 fix * Apparantly a more common problem than first thought * Adding more docstrings. image\_id and instance\_type fields of an instance will always exist, so no reason to check if keys exist * Pass a fake timing source to test\_ensure\_filtering\_rules\_for\_instance\_timeout, shaving off 30 seconds of test run time * pep8 * Merged trunk * Add a test for leaked semaphores * Remove checks in \_cache\_image tests that were too implementation specific * adding view builder tests * Add correct bug fixing metadata * When updating or creating set 'delete = 0'. (thus reactivating a deleted row) Filter by 'deleted' on delete * merging trunk r843 * making Controller.\_get\_flavors is\_detail a keyword argument * merging trunk r843 * Fix locking problem in security group refresh code * merging trunk r843 * Add unit test and code updates to ensure that a PUT requests to create/update server metadata only contain a single key * Add call to unset all stubs * IptablesManager.semaphore is no more * Get rid of IptablesManager's explicit semaphore * Add --fixes lp: metadata * Convert \_cache\_image to use utils.synchronized decorator. Disable its test case, since I think it is no longer needed with the tests for synchronized * Make synchronized decorator not leak semaphores, at the expense of not being truly thread safe (but safe enough for Eventlet style green threads) * merge trunk * Wrap update\_ra in utils.synchronized * Make synchronized support both external (file based) locks as well as internal (semaphore based) locks. Attempt to make it native thread safe at the expense of never cleaning up semaphores * merge with trunk * vpn changes * added zone routing flag test * routing test coverage * routing test coverage * xenapi support for multi\_nic. This is a phase of multi\_nic which allows xenapi to work as is and with multi\_nic. The other virt driver(s) need to be updated with the same support * better comments. First redirect test * better comments. First redirect test * Remove \_get\_vm\_opaque\_ref() calls in rescue/unrescue * Remove dupe'd code * Wrap update\_dhcp in utils.synchronized * if fingerprint data not provided, added logic to calculate it using the pub key * get rid of another datetime alias * import greenthread in libvirt * merge lp:nova * make bcwaldon happy * fix licenses * added licenses * wrap and log errors getting image ids from local image store * merge lp:nova * merging trunk * Fix for LP Bug #739641 * pep8; various fixes * Provide more useful exception messages when unable to load the virtual driver * Added Gabe to Authors file. He helped code this up too * Added XenAPI rescue unit tests * added an enumerate to track device in vmops.create\_vifs() * pep8 * Openstack api 1.0 flavors resource now implemented to match the spec * more robust extraction of arguments * Updated comment per the extension naming convention we actually use * Added copyright header * Fix pep8 issues in nova/api/openstack/extensions.py * Fix limit unit tests (reconciles w/ trunk changes) * Changed fixed\_range (CIDR) to be required in the nova-manage command; changed default num\_networks to 1 * merging trunk r837 * zones3 and trunk merge * Added space * trunk merge * remove scheduler.api.API. naming changes * Changed error to TypeError so that we get the arguments list * Added my name to Authors Added I18n for network create string * merge with trunk * merge trunk * merge trunk * merge trunk * Add bug metadata * Wrap update\_dhcp in utils.synchronized * fixes nova-manage instance\_type compatibility with postgres db * Tell PyLint not to complain about the "\_" function * Make smoketests' exit code reveal whether they were succesful * pep8 * Added run\_instances method to the connection.py of the contrib/boto\_v6/ec2 which would return ReservationV6 object instead of Reservation in order to access attribute dns\_name\_v6 of an instance * cleanup another inconsistent use of 1 for True in nova-manage * Changed Copyright to NTT for newly added files for flatmanager ipv6 * merge trunk * \* committing ovs scripts * fix nova-manage instance\_type list for postgres compatibility * fixed migration instance\_types migration to support postgres correctly * comment more descriptive * Seriously? * Fixed netadmin smoketests for ipv6 * Merged trunk * Better errors when virt driver isn't loaded * merge lp:nova * fix date formatting in images controller show * huh * fix ups * merge trunk * uses True/False instead of 1/0 for Postgres compatibility * cleaned up tests stubs that were accidentally checked in * works again. woo hoo * created api endpoint to allow uploading of public key * api decorator * Cleanup of FakeAuthManager * Replaced all pylint "disable-msg=" with "disable=" and "enable-msg=" with "enable=" * Change cloud.id\_to\_ec2\_id to ec2utils.id\_to\_ec2\_id. Fixes EC2 API error handling when invalid instances and volume names are specified * A few more single-letter variable names bite the dust * Re-implementation (or just implementation in many cases) of Limits in the OpenStack API. Limits is now available through /limits and the concept of a limit has been extended to include arbitrary regex / http verb combinations along with correct XML/JSON serialization. Tests included * Avoid single-letter variable names * auth\_data is a list now (thanks Rick!) * merge with trunk * Mark instance metadata as deleted when we delete the instance * results * fixed up novaclient usage to include managers * Added test case * Minor fixes to replace occurances of "VI" by "VIM" in 2 comments * whoopsy2 * whoopsy * Fixed 'Undefined variable' errors generated by pylint (E0602) * Merged trunk * Change cloud.id\_to\_ec2\_id to ec2utils.id\_to\_ec2\_id. Fixes EC2 API error handling when invalid instances and volume names are specified * enable-msg -> enable * disable-msg -> disable * enable\_zone\_routing flag * PEP-8 * Make flag parsing work again * Using eventlets greenthreads for optimized image processing. Fixed minor issues and style related nits * Fixed issue arisen from recent feature update (utils.execute) * Make proxy.sh work with both openbsd and traditional variants of netcat * Query the size of the block device, not the size of the filesystem * merge trunk * Ensuring kernel/ramdisk files are always removed in case of failures * merge trunk * merge trunk * Implement metadata resource for Openstack API v1.1. Includes: -GET /servers/id/meta -POST /servers/id/meta -GET /servers/id/meta/key -PUT /servers/id/meta/key -DELETE /servers/id/meta/key * Make "ApiError" the default error code for ApiError instances, rather than "Unknown." * When changing the project manager, if the new manager is not yet a project member, be sure to make them be a project member * Make the rpc cast/call debug calls show what topic they are sending to. This aides in debuugging * Final touches and bug/pep8 fixes * Support for markers for pagination as defined in the 1.1 spec * Merged trunk * Become compatible with ironcamel and bcwaldon's implementations for standardness * pep8 * Merged dependant branch lp:~rackspace-titan/nova/openstack-api-versioned-controllers * Updated naming, removed some prints, and removed some invalid tests * adding servers container to openstack api v1.1 servers entities * decorator more generic now * Images now v1.1 supported...mostly * fixed up bzr mess * Fix for LP Bug #737240 * refactored out middleware, now it's a decorator on service.api * Fix for LP Bug #737240 * Add topic name to cast/call logs * Changing project manager should make sure that user is a project member * Invert some of the original logic and fix a typo * Make the smoketests pep8 compliant (they weren't when I started working on them..) * Update the Openstack API to handle case where personality is set but null in the request to create a server * Fix a couple of things that assume that libvirt == kvm/qemu * Made fixed\_range a required parameter for nova-manage network create. Changed default num\_networks to 1; 1000 seems large * Fix a number of place in the volume driver where the argv hadn't been fully split * fix for lp712982, and likely a variety of other dashboard error handling issues. This fix simply causes the default error code for ApiError to be 'ApiError' rather than 'Unknown', which makes dashboard handle the error gracefully, and makes euca error output slightly prettier * Fix mis-merge * pep8 is hard * syntax error * create vifs before inject network info to remove rxtx\_cap from network info (don't need to inject it) * Make utils.execute not overwrite std{in,out,err} args to Popen on retries. Make utils.execute reject unknown kwargs * merged trunk, merged qos, slight refactor regarding merges * - general approach for openstack api versioning - openstack api version now preserved in request context - added view builder classes to handle os api responses - added imageRef and flavorRef to os api v1.1 servers - modified addresses container structure in os api v1.1 servers * Pep8 * Test changes * pep8 * Adjust test cases * pep8 * merge * Mark instance metadata as deleted when we delete the instance * Backfix of bugfix of issue blocking creating servers with metadata * Better comment for fault. Improved readability of two small sections * Add support for network QoS (ratelimiting) for XenServer. Rate is pulled from the flavor (instance\_type) when constructing a vm * pep8 * I suck at merging * Now returns a 400 for a create server request with invalid hrefs for imageRef/flavorRef values. Also added tests * moving Versions app out of \_\_init\_\_.py into its own module; adding openstack versions tests; adding links to version entities * fixed code formatting nit * handle create and update requests, and update the base image service documentation to reflect the (defacto) behavior * Move the check for None personalities into the create method * Get the migration out * get api openstack test\_images working * merge trunk * Improved exception handling * better implementation of try..except..else * merging parent branch lp:~bcwaldon/nova/osapi-flavors-1\_1 * merging parent branch lp:~rackspace-titan/nova/openstack-api-version-split * iptables filter firewall changes merged * merged trunk * pep8 * adding serialization\_metadata to encode links on flavors * merge with libvirt\_multinic\_nova * pep8 * teach glance image server get to handle timestamps * merge trunk * merge trunk * fixes for NWFilterFirewall and net injection * moving code out of try/except that would never trigger NotFound * handle timestamps in glance service detail * fixed IpTablesFirewal * Fixes lp736343 - Incorrect mapping of instance type id to flavor id in Openstack API * Comparisons to None should not use == or != * Pep8 error, oddly specific to pep8 v0.5 < x > v0.6 * Remove unconditional raise, probably left over from debugging * Mapping the resize status * Mapping the resize status * Fixed pep8 violation * adding comments; removing returns from build\_extra; removing unnecessary backslash * refactor to simpler implementation * Foo * glance image service show testcases * oh come on * refactoring * Add tests and code to handle multiple ResponseExtension objects * Just use 'if foo' instead of 'if len(foo)'. It will fail as spectacularly if its not acting on a sequence anyways * bugfix * Remove unconditional raise, probably left over from debugging * No need to modify this test case function as well * refactored: network\_info creation extracted to method * Call \_create\_personality\_request\_dict within the personalities\_null test * Foo * more pep8 fixes * Switch back to 'is not None' for personality\_files check. (makes mark happy) * pep8 fixes * 1) Update few comments where whitespace is missing after '#' 2) Update document so that copy right notice doesn't appear in generated document 3) Now using self.flag(...) instead of setting the flags like FLAGS.vmwareapi\_username by direct assignment. 4) Added the missing double quote at the end a string in vim\_util.py * more pep8 fixes * Fix up tests * Replaced capability flags with List * Fix more pep8 errors * Remove me from mailmap * Fix up setup container * Merged trunk * Update the Openstack API to handle case where personality is set but null in the request to create a server * Make smoketests' exit code reveal whether they were succesful * merge with trunk. moved scheduler\_manager into manager. fixed tests * Set nbd to false when mounting the image * Fixed typo when I was trying to add test cases for lxc * Remove target\_partition for setup\_container but still hardcode because its needed when you inject the keys into the image * Remove nbd=FLAGS.use\_cow\_images for destroy container * Update mailmap * Fix a number of place in the volume driver where the argv hadn't been fully split * Fix pep8 errors * Update authors again * Improved exception handling: - catching appropriate errors (OSError, IOError, XenAPI.Failure) - reduced size of try blocks - moved exception handling code in separate method - verifing for appropriate exeception type in unit tests * get\_console\_output is not supported by lxc and libvirt * Update Authors and testsuite * Comparisons to None should not use == or != * Make error message match the check * Setting the api verion in the request in the auth middle is no longer needed. Also, common.get\_api\_version is no longer needed. As Eric Day noted, having versioned controllers will make that unnecessary * moving code out of try/except that would never trigger NotFound * Added mechanism for versioned controllers for openstack api versions 1.0/1.1. Create servers in the 1.1 api now supports imageRef/flavorRef instead of imageId/flavorId * fix up copyright * removed dead method * pep8 * pep8 * Remerge trunk * cleanup * added in network qos support for xenserver. Pull qos settings from flavor, use when creating instance * moved scheduler API check into db.api decorator * Add basic tests for lxc containers * Revert testsuite changes * MErge trunk * Fix a few of the more obvious non-errors while we're in here * hacks in place * Fix the errors that pylint was reporting on this file * foo * foo * commit before monster * Fix \_\_init\_\_ method on unit tests (they take a method\_name kwarg) * Don't warn about C0111 (No docstrings) * In order to disable the messages, we have to use disable, not disable-msg * Avoid mixins on image tests, keeping pylint much happier * Use \_ trick to hide base test class, thereby avoiding mixins and helping PyLint * hurr * hurr * get started testing * foo * Don't complain about the \_ function being used * Again * pep8 * converted new lines from CRLF to LF * adding bookmarks links to 1.1 flavor entities * Reverting * Log the use of utils.synchronized * expanding osapi flavors tests; rewriting flavors resource with view builders; adding 1.1 specific links to flavors resources * Dumb * Unit test update * Fix lp727225 by adding support for personality files to the openstack api * Changes * fixes bug 735298: start of nova-compute not possible because of wrong xml paths to the //host/cpu section in "virsh capabilities", used in nova/virt/libvirt\_conn.py * update image service documentation * merge lp:nova and resolve conflicts * User ids are strings, and are not necessarily == name. Also fix so that non-existent user gives a 404, not a 500 * Fudge * Keypairs are not required in the OpenStack API; don't require them! * Merging trunk * Add missing fallback chain for ipv6 * Typo fix * fixed pep8 issue * chchchchchanges * libvirt template and libvirt\_conn.spawn modified in way that was proposed for xenapi multinic support * Re-commit r805 * Re-commit r804 * Refactored ZoneRedirect into ZoneChildHelper so ZoneManager can use this too * Don't generate insecure passwords where it's easy to use urandom instead * merging openstack-api-version-split * chchchchchanges * chchchchchanges * Fixes euca-get-ajax-console returning Unknown Error, by using the correct exception in get\_open\_port() logic. Patch from Tushar Patil * chchchchchanges * Revert commit that modified CA/openssl.cnf.tmpl * Comment update * Derped again * Move mapper code into the \_action\_ext\_controllers and \_response\_ext\_controllers methods * The geebees * forgot to return network info - teehee * refactored, bugfixes * merge trunk * moving code out of try/except that would never trigger NotFound * merge trunk * Logging statements * added new class Instances for managaging instances added new method list in class Instances: * tweak * Stuff * Removing io\_util.py. We now use eventlets library instead * Some typos * \* Updated document vmware\_readme.rst to mention VLAN networking \* Corrected docstrings as per pep0257 recommentations. \* Stream-lined the comments. \* Updated code with locals() where ever applicable. \* VIM : It stands for VMware Virtual Infrastructure Methodology. We have used the terminology from VMware. we have added a question in FAQ inside vmware\_readme.rst in doc/source \* New fake db: vmwareapi fake module uses a different set of fields and hence the structures required are different. Ex: bridge : 'xenbr0' does not hold good for VMware environment and bridge : 'vmnic0' is used instead. Also return values varies, hence went for implementing separate fake db. \* Now using eventlet library instead and removed io\_utils.py from branch. \* Now using glance.client.Client instead of homegrown code to talk to Glance server to handle images. \* Corrected all mis-spelled function names and corresponding calls. Yeah, an auto-complete side-effect! * Implement top level extensions * Added i18n to error message * Checks locally before routing * Really fix testcase * More execvp fallout * Fix up testsuite for lxc * Error codes handled properly now * merge trunk * Adding unit test * Fix instance creation fail under use\_ipv6=false and FlatManager * pep8 clean * Fix a couple of things that assume that libvirt == kvm/qemu * Updating gateway\_v6 in \_on\_set\_network\_host() is not required for FlatManager * added correct path to cpu information (tested on a system with 1 installed cpu package) * Fix unknown exception error in euca-get-ajax-console * fixed pep8 errors (with version 0.5.0) * Use integer ids for (fake) users * req envirom param 'nova.api.openstack.version' should be 'api.version' * pep8 fixes * Fixed DescribeUser in ec2 admin client * openstack api 1.0 flavors resource now implemented; adding flavors request value testing * response working * Added tests back for RateLimitingMiddleware which now throw correctly serialized errors with correct error codes * Add ResponseExtensions * revised per code review * first pass openstack redirect working * Adding newlines for pep8 * Removed VIM specific stuff and changed copyright from 2010 to 2011 * Limits controller and testing with XML and JSON serialization * adding imageRef and flavorRef attributes to servers serialization metadata * Merged with trunk (and brian's previous fixes to fake auth) * Plugin * As suggested by Eric Day: \* changed request.environ version key to more descriptive 'api.version' \* removed python3 string formatting \* added licenses to headers on new files * Tweak * A few fixes * pep8 * merge lp:nova * ignore differently-named nodes in personality and metadata parsing * wrap errors getting image ids from local image store * Moving the migration again * Updating paste config * pep8 * internationalization * Per Eric Day's suggest, the verson is not store in the request environ instead of the nova.context * s/onset\_files/injected\_files/g * pep8 fixes * Add logging to lock check * Now that the fix for 732866, stop working around the bug * Major cosmetic changes to limits, but little-to-no functional changes. MUCH better testability now, no more relying on system time to tick by for limit testing * Merged with trunk to get fix for bug 732866 * Merged trunk * modifying paste config to support v1.1; adding v1.1 entry in versions resource ( GET /) * Fixed lp732866 by catching relevant \`exception.NotFound\` exception. Tests did not uncover this vulnerability due to "incorrect" FakeAuthManager. I say "incorrect" because potentially different implementations (LDAP or Database driven) of AuthManager might return different errors from \`get\_user\_from\_access\_key\` * refactor onset\_files quota checking * Code clean up. Removing \_decorate\_response methods. Replaced them with more explicit methods, \_build\_image, and \_build\_flavor * Use random.SystemRandom for easy secure randoms, configurable symbol set by default including mixed-case * merge lp:nova * Support testing the OpenStack API without key\_pairs * merge trunk * Fixed bugs in bug fix (plugin call) * adding missing view modules; modifying a couple of servers tests to use enumerate * just fixing a small typo in nova-manage vm live-migration * exception fixup * Make Authors check account for tests being run with different os.getcwd() depending on how they're run. Add missing people to Authors * Removed duplicated tests * PEP8 0.5.0 cleanup * Really delete the loop * Add comments about the destroy container function * Mount the right device * Merged trunk * Always put the ipv6 fallback in place. FLAGS.use\_ipv6 does not exist yet when the firewall driver is instantiated and the iptables manager takes care not to fiddle with ipv6 if not enabled * merged with trunk and removed conflicts * Merging trunk * Reapplied rename to another file * serverId returned as int per spec * Reapplied rename of Openstack -> OpenStack. Easier to do it by hand than to ask Bazaar to do it * Merged with trunk. Had to hold bazaar's hand as it got lost again * Derive unit test from standard nova.test.TestCase * pep8 fixes * adding flavors and images barebones view code; adding flavorRef and imageRef to v1.1 servers * Fixed problem with metadata creation (backported fix) * Clarify the logic in using 32 symbols * moving addresses views to new module; removing 'Data' from 'DataViewBuilder' * Don't generate insecure passwords where it's easy to use urandom instead * Added a views package and a views.servers module. For representing the response object before it is serialized * Make key\_pair optional with OpenStack API * Moved extended resource code into the extensions.py module * Moving fixtures to a factory * Refactor setup contianer/destroy container * Fixing API per spec, to get unit-tests to pass * Implements basic OpenStack API client, ready to support API tests * Fix capitalization of ApiError (it was mistakenly called APIError) * added migration to repo * Clarified message when a VM is not running but still in DB * Implemented Hyper-V list\_instances\_detail function. Needs a cleanup by someone that knows the Hyper-V code * So the first of those tests doesn't pass. Removing as it looks like it was meant to be deleted * Added test and fixed up code so that it works * Fix for LP Bug #704300 * fixed keyword arg error * pep8 * added structure to virt.xenapi.vmops to support network info being passed in * Removed duplicated test, renamed same-named (but non-identical) tests * merge trunk * PEP8 cleanup * Fixes other half of LP#733609 * Initial implementation of refresh instance states * Add missing fallback chain for ipv6 * The exception is called "ApiError", not "APIError" * Implement action extensions * Include cpuinfo.xml.template in tarball * Adding instance\_id as Glance image\_property * Add fixes metadata * Include cpuinfo.xml.template in tarball * Merged test\_network.py properly. Before I had deleted this file and added again, but this file status should be modified when you see the merged difference * removed conflicts and merged with trunk * Create v1\_0 and v1\_1 packages for the openstack api. Added a servers module to each. Added tests to validate the structure of ip addresses for a 1.1 request * committing to share * small typo in nova-manage vm live-migration * NTT's live-migration branch, merged with trunk, conflicts resolved, and migrate file renamed * Reverted unmodified files * Reverted unmodified files * Only include kernel and ramdisk ID in meta-data output if they are actually set * Test fixes and some typos * Test changes * Migration moved again * Compute test * merge trunk * merge trunk * Make nova-dhcpbridge output lease information in dnsmasq's leasesfile format * Merged my doc changes with trunk * Fixed pep8 errors * Fixed failing tests in test\_xenapi * Fixes link to 2011.1 instad of just to trunk docs * fixes: 733137 * Add a unit test * Make utils.execute not overwrite std{in,out,err} args to Popen on retries. Make utils.execute reject unknown kwargs * Removed excess LOG.debug line * merge trunk * The extension name is constructed from the camel cased module\_name + 'Extension' * Merged with trunk * Fix instructions for setting up the initial database * Fix instructions for setting up the initial database * merged with latest trunk and removed unwanted files * Removed \_translate\_keys() functions since it is no longer used. Moved private top level functions to bottom of module * Use a consistent naming scheme for XenAPI variables * oops * Review feedback * Review feedback * Review feedback * Some unit tests * Change capitalization of Openstack to OpenStack * fixed conflicts after merging with trunk with 787 * Adding a sidebar element to the nova.openstack.org site to point people to additional versions of the site * oops * Review feedback * Replace raw SQL calls through session.execute() with SQLAlchemy code * Review feedback * Remove vish comment * Remove race condition when refreshing security groups and destroying instances at the same time * Removed EOL whitespace in accordance with PEP-8 * Beginning of cleanup of FakeAuthManager * Make the fallback value None instead of False * Indentation adjustment (cosmetical) * Fixed lp732866 by catching relevant \`exception.NotFound\` exception. Tests did not uncover this vulnerability due to "incorrect" FakeAuthManager. I say "incorrect" because potentially different implementations (LDAP or Database driven) of AuthManager might return different errors from \`get\_user\_from\_access\_key\` * Merged trunk * This change adds the ability to boot Windows and Linux instances in XenServer using different sets of vm-params * merge trunk * New migration * Passes net variable as value of keyword argument process\_input. Prior to the execvp patch, this was passed positionally * Changes the output of status in describe\_volumes from showing the user as the owner of the volume to showing the project as the owner * Added support for ips resource: /servers/1/ips Refactored implmentation of how the servers response model is generated * merge trunk * Adds in multi-tenant support to openstack api. Allows for multiple accounts (projects) with admin api for creating accounts & users * merge trunk * remerge trunk (again). fix issues caused by changes to deserialization calls on controllers * Add config for osapi\_extensions\_path. Update the ExtensionManager so that it loads extensions in the osapi\_extensions\_path * process\_input for tee. fixes: 733439 * Minor stylistic updates affecting indentation * Make linux\_net ensure\_bridge commands that add and remove ip addr's from devices/bridges work with with the latest utils.execute method (execvp) * Added volume api from previous megapatch * Made changes to xs-ipv6 code impacted because of addition of flatmanger ipv6 support * Need to set version to '1.0' in the nova.context in test code for tests to be happy * merge from trunk.. * Discovered literal\_column(), which does exactly what I need * Merged trunk * Further vmops cleanup * cast execute commands to str * Remove broken test. At least this way, it'll actually fix the problem and be mergable * \* Updated the readme file with description about VLAN Manager support & guest console support. Also added the configuration instructions for the features. \* Added assumptions section to the readme file * \* Modified raise statements to raise nova defined Exceptions. \* Fixed Console errors and in network utils using HostSystem instead of Datacenter to fetch network list \* Added support for vmwareapi module in nova/virt/connection.py so that vmware hypervisor is supported by nova \* Removing self.loop to achieve synchronization * merge trunk * Moved vlan\_interface flag in network.manager removed needless carriage return in vm\_ops * Use self.instances.pop in unfilter\_instance to make the check/removal atomic * Make Authors check account for tests being run with different os.getcwd() depending on how they're run. Add missing people to Authors * Make linux\_net ensure\_bridge commands that add and remove ip addr's from devices/bridges work with with the latest utils.execute method (execvp) * \_translate\_keys now needs one more argument, the request object * Added version attribute to RequestContext class. Set the version in the nova.context object at the middleware level. Prototyped how we can serialize ip addresses based on the version * execvp: fix params * merge lp:nova * switch to a more consistent usage of onset\_files variable names * re-added a test change I removed thinking it was related to removed code. It wasn't :> * merge trunk * Document known bug numbers by the code which is degraded until the bugs are fixed * fix minor typo * Fix a fer nits jaypipes found in review * Pep8 / Style * Re-removed the code that was deleted upstream but somehow didn't get merged in. Bizarre! * More resize * Merged with upstream * pep8 fun * Test login. Uncovered bug732866 * Merged with upstream * Better logging, be more careful about when we throw login errors re bug732866 * Don't wrap keys and volumes till they're in the API * Add a new IptablesManager that takes care of all uses of iptables * Last un-magiced session.execute() replaced with SQLAlchemy code.. * PEP8 * Add basic test case * Implements basic OpenStack API client, ready to support API tests * Initial support fo extension resources. Tests * Partial revert of one conversion due to phantom magic exception from SQLAlchemy in unrelated code; convert all deletes * merge lp:nova * add docstring * fixed formatting and redundant imports * Cleaned up vmops * merge trunk * initializing instance power state on launch to 0 (fixes EC2 API bug) * Correct a misspelling * merge lp:nova * merge trunk * Use a FLAGS.default\_os\_type if available * Another little bit of fallout from the execvp branch * Updated the code to detect the exception by fault type. SOAP faults are embedded in the SOAP response as a property. Certain faults are sent as a part of the SOAP body as property of missingSet. E.g. NotAuthenticated fault. So we examine the response object for missingSet and try to check the property for fault type * Another little detail. * Fix a few things that were either missed in the execvp conversion or stuff that was merged after it, but wasn't updated accordingly * Introduces the ZoneManager to the Scheduler which polls the child zones and caches their availability and capabilities * One more thing. * merge trunk * Only include ramdisk and kernel id if they are actually set * Add bugfix metadata * More execvp fallout * Make nova.image.s3 catch up with the new execute syntax * Pass argv of dnsmasq and radvd to execute as individual args, not as a list * Split dnsmasq and radvd commands into their respective argv's * s/s.getuid()/os.getuid()/ * merge lp:nova and add stub image service to quota tests as needed * merged to trunk rev781 * fix pep8 check * merge lp:nova * Modifies S3ImageService to wrap LocalImageService or GlanceImageService. It now pulls the parts out of s3, decrypts them locally, and sends them to the underlying service. It includes various fixes for image/glance.py, image/local.py and the tests * add tests to verify the serialization of adminPass in server creation response * Fixes nova.sh to run properly the first time. We have to get the zip file after nova-api is running * minor fixes from review * merged trunk * fixed based on reviewer's comment * merge lp:nova * Moved umount container to disk.py and try to remove loopback when destroying the container * Merged trunk * Replace session.execute() calls performing raw UPDATE statements with SQLAlchemy code, with the exception of fixed\_ip\_disassociate\_all\_by\_timeout() * Fixes a race condition where multiple greenthreads were attempting to resize a file at the same time. Adds tests to verify that the image caching call will run concurrently for different files, but will block other greenthreads trying to cache the same file * maybe a int instead ? * merge lp:nova * merge, resolve conflicts, and update to reflect new standard deserialization function signature * Fixes doc build after execvp patch * execvp: fix docs * initializing instance power state on launch to 0 (fixes EC2 API bug) * - Content-Type and Accept headers handled properly - Content-Type added to responses - Query extensions no long cause computeFaults - adding wsgi.Request object - removing request-specific code from wsgi.Serializer * Fixes bug 726359. Passes unit tests * merge lp:nova, fix conflicts, fix tests * fix the copyright notice in migration * execvp: cleanup * remove the semaphore when there is no one waiting on it * merge lp:nova and resolve conflicts * Hi guys * Update the create server call in the Openstack API so that it generates an 'adminPass' and calls set\_admin\_password in the compute API. This gets us closer to parity with the Cloud Servers v1.0 spec * Added naming scheme comment * Merged trunk * execvp passes pep8 * merge trunk * Add a decorator that lets you synchronise actions across multiple binaries. Like, say, ensuring that only one worker manipulates iptables at a time * renaming wsgi.Request.best\_match to best\_match\_content\_type; correcting calls to that function in code from trunk * merge lp:nova * Fixes bug #729400. Invalid values for offset and limit params in http requests now return a 400 response with a useful message in the body. Also added and updated tests * Add password parameter to the set\_admin\_password call in the compute api. Updated servers password to use this parameter * stuff * rearrange functions and add docstrings * Fixes uses of process\_input * update authors file * merged trunk r771 * merge lp:nova * remove unneeded stubs * move my tests into their own testcase * replaced ConnectionFailed with Exception in tools/euca-get-ajax-console was not working for me with euca2tools 1.2 (version 2007-10-10, release 31337) * Fixed pep8 issues * remerge trunk * removed uneeded \*\*kw args leftover from removed account-in-url changes * fixed lp715427 * fixed lp715427 * Fix spacing * merge lp:nova and resolve conflicts * remove superfluous trailing blank line * add override to handle xml deserialization for server instance creation * Added 'adminPass' to the serialization\_metadata * merge trunk * Merged with trunk Updated exception handling according to spawn refactoring * Fixed pep8 violation in glance plugin * Added unit tests for ensuring VDI are cleaned up upon spawn failures * Stop assuming anything about the order in which the two processes are scheduled * make static method for testing without initializing libvirt * tests and semaphore fix for image caching * execvp: unit tests pass * merged to trunk rev 769 * execvp: almost passes tests * Refactoring nova-api to be a service, so that we can reuse it in unit tests * Added documentation about needed flags * a few fixes for the tests * Renamed FLAG.paste\_config -> FLAG.api\_paste\_config * Sorted imports correctly * merge trunk * Fixes lp730960 - mangled instance creation in virt drivers due to improper merge conflict resolution * Use disk\_format and container\_format in place of image type * using get\_uuid in place of get\_record in \_get\_vm\_opaqueref changed SessionBase.\_getter in fake xenapi in order to return HANDLE\_INVALID failure when reference is not in DB (was NotImplementedException) * Merging trunk * Fixing tests * Pep8 fixes * Accidentally left some bad data around * Fix the bug where fakerabbit is doing a sort of prefix matching on the AMQP routing key * merge trunk * Use disk\_format and container\_format instead of image type * merged trunk * update manpage * update code to work with new container and disk formats from glance * modify nova manage doc * Nits * abstracted network code in the base class for flat and vlan * Remerged trunk. fixed conflict * Removes VDIs from XenServer backend if spawn process fails before vm rec is created * Added ability to remove networks on nova-manage command * Remove addition of account to service url * refactored up nova/virt/xenapi/vmops \_get\_vm\_opaque\_ref() no longer inspects the param to check to see if it is an opaque ref works better for unittests * This fix is an updated version of Todd's lp720157. Adds SignatureVersion checking for Amazon EC2 API requests, and resolves bug #720157 * \* pep8 cleanups in migrations \* a few bugfixes * Removed stale references to XenAPI * Moved guest\_tool.py from etc/esx directory to tools/esx directory * Removed excess comment lines * Fix todo comment * execvp * Merged trunk * virt.xenapi.vmops.\_get\_vm\_opaque\_ref changed vm to vm\_ref and ref to obj * virt.xenapi.vmops.\_get\_vm\_opaque\_ref assumes VM.get\_record raises * add a delay before grabbing zipfile * Some more refactoring and a tighter unit test * Moved FLAGS.paste\_config to its re-usable location * Merged with trunk and fixed conflict. Sigh * Converted tabs to spaces in bin/nova-api * A few more changes * Inhibit inclusion of stack traces in the logs UNLESS --verbose has been specified. This should help keep the logs compact, helping admins find the messages they're interested in (e.g., "Can't connect to MySQL server on '127.0.0.1' (111)") without having to sort through the stack traces, while still allowing developers to see those traces at will * Addresses bugs 704985 and 705453 by: * And unit tests * A few formatting niceties * First part of the bug fix * virt.xenapi.vmops.\_get\_vm\_opaque\_ref checks for basestring instance instead of str * virt.xenapi.vmops.\_get\_vm\_opaque\_ref exception caught properly * cleaned up virt.xenapi.vmops.\_get\_vm\_opaque\_ref. more reliable approach to checking if param is an opaque ref. code is cleaner * deleted network\_is\_associated from nova.db api * move the images\_dir out of the way when converting * pep8 * rework register commands based on review * added network\_get\_by\_cidr method to nova.db api * Use IptablesManager.semapahore from securitygroups driver to ensure we don't apply half a rule set * Log failed command execution if there are more retry attempts left * Make iptables rules class \_\_ne\_\_ just be inverted \_\_eq\_\_ * Invalid values for offset and limit params in http requests now return a 400 response with a useful message in the body. Also added and updated tests * Create --paste\_config flag defaulting to api-paste.ini and mv etc/nova-api.conf to match * Implementation for XenServer migrations. There are several places for optimization but I based the current implementation on the chance scheduler just to be safe. Beyond that, a few features are missing, such as ensuring the IP address is transferred along with the migrated instance. This will be added in a subsequent patch. Finally, everything is implemented through the Openstack API resize hooks, but actual resizing of the instance RAM and hard drive space is not yet implemented * Generate 'adminPass' and call set\_password when creating servers * Merged with current trunk * merge trunk * Resolving excess conflicts due to criss-cross in branch history * Make "dhcpbridge init" output correctly formatted leases information * Rebased to nova revision 761 * Fixed some more pep8 errors * \* Updated readme file with installation of suds-0.4 through easy\_install. \* Removed pass functions \* Fixed pep8 errors \* Few bug fixes and other commits * zipfile needs to be extracted after nova is running * make compute get the new images properly, fix a bunch of tests, and provide conversion commands * avoid possible string/int comparison problems * merge lp:nova * select cleanups * Merged to trunk rev 760, and fixed comment line indent according to Jay's comment * Fix renaming of instance fields using update\_instance api method * apirequest -> apireq * \* os\_type is no longer \`not null\` * respond well if personality attribute is incomplete * Added initial support to delete networks nova-manage * move the id wrapping into cloud layer instead of image\_service * added flatmanager unit testcases and renamed test\_network.py to test\_vlan\_network.py * remove xml testing infrastructure since it is not feasible to use at present * refactor server tests to support xml and json separately * More unit tests and rabbit hooks * Fix renaming of instance fields using update\_instance method * Fix api logging to show proper path and controller:action * merged trunk * \* Tests to verify correct vm-params for Windows and Linux instances * More fixes * delete unnecessary DECLARE * Fixed based on reviewer's comment. Main changes are below. 1. get\_vcpu\_total()/get\_memory\_mb()/get\_memory\_mb\_used() is changed for users who used non-linux environment. 2. test code added to test\_virt * merge lp:nova * merge trunk * fixed wrong local variable name in vmops * Use %s for instance-delete logging in case instance\_id comes through as a string * remove ensure\_b64\_encoding * add the ec2utils file i forgot * spawn a greenthread for image registration because it is slow * fix a couple issues with local, update the glance fake to actually return the same types as the real client, fix the image tests * make local image service work * use LocalImageServiceByDefault * Replace objectstore images with S3 image service backending to glance or local * Merged to trunk rev 759 * Merged trunk rev 758 * remove ra\_server from model and fix migration issue while running unit tests * Removed properties added to fixed\_ips by xs-ipv6 BP * altered ra\_server name to gateway\_v6 * merge lp:nova * rename onset\_files to personality\_files all the way down to compute manager * Changing output of status from showing the user as the owner, to showing the project * enforce personality quotas * localize a few error messages * Refactor wsgi.Serializer away from handling Requests directly; now require Content-Type in all requests; fix tests according to new code * pep8 * Renaming my migration yet again * Merged with Trunk * Use %s in case instance\_id came through as a string * Basic notifications drivers and tests * adding wsgi.Controller and wsgi.Request testing; fixing format keyword argument exception * This fix changes a tag contained in the DescribeKeyPairs response from to so that Amazon EC2 access libraries which does more strict syntax checking can work with Nova * some comments are modified * Merged to trunk rev 757. Main changes are below. 1. Rename db table ComputeService -> ComputeNode 2. nova-manage option instance\_type is reserved and we cannot use option instance, so change instance -> vm * adding wsgi.Request class to add custom best\_match; adding new class to wsgify decorators; replacing all references to webob.Request in non-test code to wsgi.Request * Remerged trunk, fixed a few conflicts * Add in multi-tenant support in openstack api * Merged to trunk rev 758 * Fix regression in the way libvirt\_conn gets its instance\_types * Updated DescribeKeyPairs response tag checked in nova/tests/test\_cloud.py * merged to trunk rev757 * Fixed based on reviewer's comments. Main changes are below. 1. Rename nova.compute.manager.ComputeManager.mktmpfile for better naming. 2. Several tests code in tests/test\_virt.py are removed. Because it only works in libvirt environment. Only db-related testcode remains * Fix regression in the way libvirt\_conn gets its instance\_types * more rigorous testing and error handling for os api personality * Updated Authors and .mailmap * Merged to rev 757 * merges dynamic instance types blueprint (http://wiki.openstack.org/ConfigureInstanceTypesDynamically) and bundles blueprint (https://blueprints.launchpad.net/nova/+spec/flavors) * moved migration to 008 (sigh) * merged trunk * catching bare except: * added logging to instance\_types for DB errors per code review * Very simple change checking for < 0 values in "limit" and "offset" GET parameters. If either are negative, raise a HTTPBadRequest exception. Relevant tests included * requested style change * Fixes Bug #715424: nova-manage : create network crashes when subnet range provided is not enough , if the network range cannot fit the parameters passed, a ValueError is raised * adding new source docs * corrected error message * changed \_context * pep8 * added in req.environ for context * pep8 * fixed \_context typo * coding style change per devcamcar review * fixed coding style per devcamcar review notes * removed create and delete method (and corresponding tests) from flavors.py * Provide the ability to rescue and unrescue a XenServer instance * Enable IPv6 injection for XenServer instances. Added addressV6, netmaskV6 and gatewayV6 columns to the fixed\_ips table via migration #007 as per NTT FlatManager IPv6 spec * Updated docstrings * add support for quotas on file injection * Added IPv6 migrations * merge fixes * Inject IPv6 data into XenStore for instance * Change DescribeKeyPairs response tag from keypairsSet to keySet, and fix lp720133 * Port Todd's lp720157 fix to the current trunk, rev 752 * Changed \_get\_vm\_opaqueref removing test-specific code paths * Removed excess TODO comments and debug line * initial commit of vnc support * merged trunk * Changed ra\_server to gateway\_v6 and removed addressv6 column from fixed\_ips db table * \* Added first cut of migration for os\_type on instances table \* Track os\_type when taking snapshots * merging trunk * \* Added ability to launch XenServer instances with per-os vm-params * test osapi server create with multiple personalities * ensure personality contents are b64 encoded * Merged trunk * Fixed pep8 issues, applied jaypipes suggestion * Rebased to nova revision 752 * Use functools.wraps to make sure wrapped method's metadata (docstring and name) doesn't get mangled * merge from trunk * Fake database module for vmware vi api. Includes false injection layer at the level of API calls. This module is base for unit tests for vmwareapi module. The unit tests runs regardless of presence of ESX/ESXi server as computer provider in OpenStack * Review feedback * Updated the code to include support for guest consoles, VLAN networking for guest machines on ESX/ESXi servers as compute providers in OpenStack. Removed dependency on ZSI and now using suds-0.4 to generate the required stubs for VMware Virtual Infrastructure API on the fly for calls by vmwareapi module * Added support for guest console access for VMs running on ESX/ESXi servers as computer providers in OpenStack * Support for guest consoles for VMs running on VMware ESX/ESXi servers. Uses vmrc to provide the console access to guests * Minor modification to document. Removed excess flags * Moved the guest tools script that does IP injection inside VM on ESX server to etc/esx directory from etc/ directory * support adding a single personality in the osapi * corrected copyrights for new files * Updated with flags for nova-compute, nova-network and nova-console. Added the flags, --vlan\_interface= --network\_driver=nova.network.vmwareapi\_net [Optional, only for VLAN Networking] --flat\_network\_bridge= [Optional, only for Flat Networking] --console\_manager=nova.console.vmrc\_manager.ConsoleVMRCManager --console\_driver=nova.console.vmrc.VMRCSessionConsole [Optional for OTP (One time Passwords) as against host credentials] --vmwareapi\_wsdl\_loc=/vimService.wsdl> * Fixed trunk merge issues * Merged trunk * At previous commit, I forget to erase conflict - fixed it * merged to trunk rev 752 * Rebased at lp:nova 759 * test\_compute is changed b/c lack of import instance\_types * rename db migration script * 1. merged trunk rev749 2. rpc.call returns '/' as '\/', so nova.compute.manager.mktmpfile, nova.compute.manager.confirm.tmpfile, nova.scheduler.driver.Scheduler.mounted\_on\_same\_shared\_storage are modified followed by this changes. 3. nova.tests.test\_virt.py is modified so that other teams modification is easily detected since other team is using nova.db.sqlalchemy.models.ComputeService * updated docs * updated docs * Fixed xenapi tests Gave up on clever things with map stored as string in xenstore. Used ast.liteeral\_eval instead * This branch implements the openstack-api-hostid blueprint: "Openstack API support for hostId" * refactored adminclient * No reason to initialize metadata twice * Units tests fixed partially. Still need to address checking data injected into xenstore need to convert string into dict or similar. Also todo PEP8 fixes * replaced ugly INSTANCE\_TYPE constant with (slightly less ugly) stubs * add test for instance creation without personalities * fixed pep8 * Add a lock\_path flag for lock files * refactored nova-manage list (-all, ) and fixed docs * moved nova-manage flavors docs * Edited \`nova.api.openstack.common:limited\` method to raise an HTTPBadRequest exception if a negative limit or offset is given. I'm not confident that this is the correct approach, because I guess this method could be called out of an API/WSGI context, but the method \*is\* located in the OpenStack API module and is currently only used in WSGI-capable methods, so we should be safe * merge trunk * moving nova-manage integration tests to smoke tests * Wrapped the instance\_types comparison with an int and added a test case for it. Removed the inadvertently added newline * Rename migration to coincide with latest trunk changes * Adds VHD build support for XenServer driver * Suppress stack traces unless --verbose is specified * Removed extraneous newline * Merging trunk to my branch. Fixed a conflict in servers.py * Fixed obvious errors with flags. Note: tests still fail * Merging trunk * Fixed default value for xenapi\_agent\_path flag * 1) merge trunk 2) removed preconfigure\_xenstore 3) added jkey for broadcast address in inject\_network\_info 4) added 2 flags: 4.1) xenapi\_inject\_image (default True) This flag allows for turning off data injection by mounting the image in the VDI (agreed with Trey Morris) 4.2) xenapi\_agent\_path (default /usr/bin/xe-update-networking) This flag specifies the path where the agent should be located. It makes sense only if the above flag is True. If the agent is found, data injection is not performed * Wrap IptablesManager.apply() calls in utils.synchronized to avoid having different workers step on each other's toes * merge trunk * Add utils.synchronized decorator to allow for synchronising method entrance across multiple workers on the same host * execvp * execvp * execvp * execute: shell=True removed * Add lxc to the libvirt tests * Clean up the mount points when it shutsdown * Add ability to mount containers * Add lxc libvirt driver * Rebased to Nova revision 749 * added listing of instances running on a specific host * fixed FIXME * beautification.. * introduced new flag "max\_nbd\_devices" to set the number of possible NBD devices * renamed flag from maximum\_... to max\_.. * replaced ConnectionFailed with Exception in tools/euca-get-ajax-console was not working for me with euca2tools 1.2 (version 2007-10-10, release 31337) * Did a pull from trunk to be sure I had the latest, then deleted the test directory. I guess it appeared when I started using venv. Doh * Deleting test dir from a pull from trunk * introduced new flag "maximum\_nbd\_devices" to set the number of possible NBD devices * reverted my changes from https://code.launchpad.net/~berendt/nova/lp722554/+merge/50579 and reused the existing db api methods to add the disabled services. Looks much better now :) * add timeout and retry for ssh * Makes nova-api correctly load the default flagfile * force memcache key to be str * only create auth connection if cache misses * No reason to dump a stack trace just because the AMQP server is unreachable; an error notification should be sufficient * Add error message to the error report so we know why the AMQP server is unreachable * No reason to dump a stack trace just because we can't reach the AMQP servire; it ends up being just noise * DescribeInstances modified to return ipv6 fixed ip address in case of flatmanager * Bootlock original instance during rescue * merge with zones2 fixes and trunk * check if QUERY\_STRING is empty or not before building the request URL in bin/nova-ajax-console-proxy * trunk merge * API changed to new style class * trunk merge, pip-requires and novatools to novaclient changes * Fixes FlatDHCP by making it inherit from NetworkManager and moving some methods around * fixed: bin/nova-ajax-console-proxy:66:19: W601 .has\_key() is deprecated, use 'in' * merged trunk * add a caching layer to the has\_role call to increase performance * Removed unnecessary compute import * Set rescue instance VIF device * use default flagfile in nova-api * Add tests for 718999, fix a little brittle code introduced by the committed fix * Rename test to describe what it actually does * Copy over to current trunk my tests, the 401/500 fix, and a couple of fixes to the committed fix which was actually brittle around the edges.. * I'm working on consolidating install instructions specifically (they're the most asked-about right now) and pointing to the docs.openstack.org site for admin docs * check if QUERY\_STRING is empty or not before building the request URL * Teardown rescue instance * Merged trunk * Create rescue instance * Merging trunk, conflicts fixed * Verify status of image is active * Rebased at lp:nova 740 * merged with trunk * Cleanup db method names for dealing with auth\_tokens to follow standard naming pattern * The proposed bug fix stubs out the \_is\_vdi\_pv routine for testing purposes * revert a few unnecessary changes to base.py * removed unused references to unittest * add customizable tempdir and remove extra code * Pass id of token to be deleted to the db api, not the actual object * Removing unecessary headers * Rename auth\_token db methods to follow standard * Removing unecessary nokernel stuff * Adding \_make\_subprocess function * No longer users image/ directory in tarball * Merging trunk, small fixes * make smoketests run with nose * IPV6 FlatManager changes * Make tests start with a clean database for every test * merge trunk * merge clean db * merged trunk * sorry, pep8 * adds live network injection/reconfiguration. Some refactoring * forgot to get vm\_opaque\_ref * new tests * service capabilities test * moved network injection and vif creation to above vm start in vmops spawn * Merged trunk * nothing * Removes processName from debug output since we aren't using multiprocessing and it doesn't exist in python 2.6.1 * Add some methods to the ec2 admin api to work with VPNs. Also implements and properly documents the get\_hosts method * Fix copypasta pep8 violation * moved migrate script to 007 (again..sigh) * Don't require metadata (hotfix for bug 724143) * merge trunk * Merged trunk * Updated email in Authors * Easy and effective fix for getting the DNS value from flag file, when working in FlatNetworking mode * Some first steps towards resolving some of the issues brought up on the mailing list related to documenting flags * Support HP/LeftHand SANs. We control the SAN by SSHing and issuing CLIQ commands. Also improved the way iSCSI volumes are mounted: try to store the iSCSI connection info in the volume entity, in preference to doing discovery. Also CHAP authentication support * This fix checks whether the boot/guest directory exists on the hypervisor. If that is not the case, it creates it * Globally exclude \*.pyc files from generated tarballs * stubbing out \_is\_vdi\_pv for test purposes * merge trunk * Globally exclude .pyc files from tarball contents * Get DNS value from Flag, when working in FlatNetworking mode. Passing the flag was ineffective previously. This is an easy fix. I think we would need nova-manage to accept dns also from command line * xenapi plugin function now checks whether /boot/guest already exists. If not, it creates the directory * capability aggregation working * fix check for existing port 22 rule * move relevant code to baseclass and make flatdhcp not inherit from flat * Hotfix to not require metadata * Documentation fixes so that output looks better * more smoketest fixes * Removed Milind from Authors file, as individual Contributer's License Agreement & Ubuntu code of conduct are not yet signed * Fixed problems found in localized string formatting. Verified the fixes by running ./run\_tests.sh -V * Change missed reference to run\_tests.err.log * PEP 257 fixes * Merged with trunk * fix missed err.log * Tests all working again * remove extra flag in admin tests * Revert commit 709. This fixes issues with the Openstack API causing 'No user for access key admin' errors * Adds colors to output of tests and cleans up run\_tests.py * Reverted bad-fix to sqlalchemy code * Merged with trunk * added comments about where code came from * merge and fix conflicts * Prevent logging.setup() from generating a syslog handler if we didn't request one (breaks on mac) * fix pep8 * merged upstream * Changed create from a @staticmethod to a @classmethod * revert logfile redirection and make colors work by temporarily switching stdout * merged trunk * add help back to the scripts that don't use service.py * Alphabetize imports * remove processName from debug output since we aren't using multiprocessing and it doesn't exist in python 2.6.1 * updates to nova.flags to get help working better * Helper function that supports XPath style selectors to traverse an object tree e.g * tests working again * Put back the comments I accidentally removed * Make sure there are two blank links after the import * Rename minixpath\_select to get\_from\_path * Fixes the describe\_availability\_zones to use an elevated context when getting services and the db calls to pass parameters correctly so is\_admin check works * Fix pep8 violation (trailing whitespace) * fix describe\_availability\_zones * Cope when we pass a non-list to xpath\_select - wrap it in a list * Fixes existing smoketests and splits out sysadmin tests from netadmin tests * Created mini XPath implementation, to simplify mapping logic * move the deletion of the db into fixtures * merged upstream * Revert commit 709. This fixes issues with the Openstack API causing 'No user for access key admin' errors * put the redirection back in to run\_tests.sh and fix terminal colors by using original stdout * Deleted trailing whitespace * Fixes and optimizes filtering for describe\_security\_groups. Also adds a unit test * merged trunk * fix for failing describe\_instances test * merged trunk * use flags for sqlite db names and fix flags in dhcpbridge * merged trunk * Fixes lp715424, code now checks network range can fit num\_networks \* network\_size * The proposed branch prevents FlatManager from executing network initialisation tasks contained in linux\_net.init\_host(), which are unnecessary when flat networking is used * Adds some features to run\_tests.sh: - if it crashes right away with a short erorr log, print that directly - allow specifying tests without the nova.tests part * The kernel\_id and the ramdisk\_id are optional, yet the OpenStack API was requiring them. In addition, with the ObjectStore these properties are not under 'properties' (as they are with Glance) * merged trunk * merge trunk * Initial support for per-instance metadata, though the OpenStack API. Key/value pairs can be specified at instance creation time and are returned in the details view. Support limits based on quota system * Merged trunk * Removed pass * Changed unit test to refer to compute API, per Todd's suggestion. Avoids needing to extend our implementation of the EC2 API * Fixes lots of errors in the unit tests * dump error output directly on short import errors * allow users to omit 'nova.tests' with run\_tests * Merged trunk * \* Took care of localization of strings \* Addressed all one liner docstrings \* Added Sateesh, Milind to Authors file * Fixed pep8 errors * FlatManager.init\_host now inhibits call to method in superclass. Floating IP methods have been redefined in FlatManager to raise NotImplementedError * speed up network tests * merged trunk * move db creation into fixtures and clean db for each test * fix failures * remove unnecessary stubout * Lots of test fixing * Update the admin client to deal with VPNs and have a function host list * Removed unused import & formatting cleanups * Exit with exit code 1 if conf cannot be read * Return null if no kernel\_id / ramdisk\_id * Reverted change to focus on the core bug - kernel\_id and ramdisk\_id are optional * Make static create method behave more like other services * merged fix-describe-groups * add netadmin smoketests * separate out smoketests and add updated nova.sh * fix and optimize security group filtering * Support service-like wait behaviour for API service * Added create static method to ApiService * fix test * Refactoring nova-api to be a service, so that we can reuse it in tests * test that shows error on filtering groups * don't make a syslog handler if we didn't ask for one * Don't blindly concatenate queue name if second portiion is None * Missing import for nova.exceptions (!) * At the moment --pidfile is still used in some scripts in contrib/puppet/. I don't use puppet, please check if there are possible side effects * We're not using prefix matching on AMQP, so fakerabbit shouldn't be doing it! * merge fixes from anso branch * merged trunk * Removed block of code that resurrected itself in the last merge * Added Andy Southgate to the Authors file * Merged with trunk, including manual conflict resolution in nova/virt/disk.py and nova/virt/xenapi/vmops.py * Put the whitespace back \*sigh\* * Remove duplicate import gained across a merge * Rename "SNATTING" chain to "snat" * Fix DescribeRegion answer by introducing '{ec2,osapi}\_listen' flags instead of overloading {ec2,osapi}\_host. Get rid of paste\_config\_to\_flags, bin/nova-combined. Adds debug FLAGS dump at start of nova-api * Also remove nova-combined from setup.py * Fixed some docstring * Get rid of nova-combined, see rationale on ML * Merged trunk * no, really fix lp721297 this time * Updated import statements according to HACKING guidelines. Added docstrings to each document. Verified pep8 over all files. Replaced some constants by enums accordingly. Still little bit more left in vm\_util.py and vim\_util.py files * Add flags for listen\_port to nova-api. This allows us to listen on one port, but return another port (for a proxy or load balancer) in calls like describe\_regions, etc * Fix tiny mitakes! (remove unnecessary comment, etc) * Fixed based on reviewer's comment. 1. Change docstrings format 2. Fix comment grammer mistake, etc * PEP8 again * Account for the fact that iptables-save outputs rules with a space at the end. Reverse the rule deduplication so that the last one takes precedence * floating-ip-snat was too long. Use floating-snat instead * PEP8 adjustments * Remove leftover from debugging * Add a bunch of tests for everything * Fixes various issues regarding verbose logging and logging errors on import * merged trunk * Add a new chain, floating-ip-snat, at the top of SNATTING, so that SNATting for floating ips gets applied before the default SNAT rule * Address some review comments * Some quick test cleanups, first step towards standardizing the way we start services in tests * use a different flag for listen port for apis * added disabled services to the list of displayed services in bin/nova-manage * merged to trunk rev709. NEEDS to be fixed based on 3rd reviewer's comment * just add 005\_add\_live\_migration.py * Fixed based on reviewer's comment. 1. DB schema change vcpu/memory/hdd info were stored into Service table. but reviewer pointed out to me creating new table is better since Service table has too much columns * update based on prereq branch * update based on prereq branch * fixed newline and moved import fake\_flags into run\_tests where it makes more sense * merged fix * remove changes to test db * Fixed my confusion in documenting the syntax of iSCSI discovery * pretty colors for logs and a few optimizations * Renamed db\_update to model\_update, and lots more documentation * modify tests to use specific hosts rather than default * Merged with head * remove keyword argument, per review * move test\_cloud to use start\_service, too * add a start\_service method to our test baseclass * add a test for rpc consumer isolation * Merged with trunk * The OpenStack API was using the 'secret' as the 'access key'. There is an 'access key' and there is a 'secret key'. Access key ~= username. Secret key ~= password. This fix is necessary for the OpenStack Python API bindings to log in * Add a bunch of docs for the new iptables hotness * fix pep8 and remove extra reference to reset * switch to explicit call to logging.setup() * merged trunk * Adds translation catalogs and distutils.extra glue code that automates the process of compiling message catalogs into .mo files * Merged with trunk * make sure that ec2 response times are xs:dateTime parsable * Removing pesky DS\_Store files too. Begone * Updated to remove built docs * Removing duplicate installation docs and adding flag file information, plus pointing to docs.openstack.org for Admin-audience docs * introducing a new flag timeout\_nbd for manually setting the time in seconds for waiting for an upcoming NBD device * use tests.sqlite so it doesn't conflict with running db * cleanup from review * Duh, continue skips iteration, not pass. #iamanidiot * reset to notset if level isn't in flags * Enable rescue testing * PEP8 errors and remove check in authors file for nova-core, since nova-core owns the translation export branch * Merged trunk * Stub out VM create * \* Removed VimService\_services.py & VimService\_services\_types.py to reduce the diffs to normal. These 2 files are auto-generated files containing stubs for VI SDK API end points. The stub files are generated using ZSI SOAP stub generator module ZSI.commands.wsdl2py over Vimservice.wsdl distributed as part of VMware Virtual Infrastructure SDK package. To not include them in the repository we have few options to choose from, 1) Generate the stub files in build time and make them available as packages for distribution. 2) Generate the stub files in installation/configuration time if ESX/ESXi server is detected as compute provider. Further to this, we can try to reduce the size of stub files by attempting to create stubs only for the API end points required by the module vmwareapi * introducing a new flag timeout\_nbd for manually setting the time in seconds for waiting for an upcoming NBD device * \* Removed nova/virt/guest-tools/guest\_tool.bat & nova/virt/guest-tools/guest\_tool.sh as guest\_tool.py can be invoked directly during guest startup * More PEP-8 * Wrap ipv6 rules, too * PEP-8 fixes * Allow non-existing rules to be removed * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ NOVA-CORE DEVELOPERS SHOULD NOT REVIEW THIS MERGE PROPOSAL ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * merged with nova trunk revision #706 * Fix typo * Unfilter instance correctly on termination * move exception hook into appropriate location and remove extra stuff from module namespace * Also remove rules that jump to deleted chains * simplify logic for parsing log level flags * reset all loggers on flag change, not just root * add docstring to reset method * removed extra comments and initialized from flags * fix nova-api as well * Fix refresh sec groups * get rid of initialized flag * clean up location of method * remove extra references to logging.basicConfig * move the fake initialized into fake flags * fixes for various logging errors and issues * fanout works * fanout kinda working * service ping working * scheduler manager * tests passing * start of fanout * merge trunk * previous trunk merge * puppet scripts only there as an example, should be moved to some other place if they are still necessary * Various optimizations of lookups relating to users * If there are no keypairs registered on a create call, output a useful error message rather than an out-of-range exception * Fixes vpn images to use kernel and ramdisk specified by the image * added elif branch to handle the conversion of datetime instances to isoformat instead of plain string conversion * Calculate time correctly for ec2 request logs * fix ec2 launchtime response not in iso format bug * pep8 leftover * move from datetime.datetime.utcnow -> utils.utcnow * pass start time as a param instead of making it an attribute * store time when RequestLogging starts instead of using context's time * Fix FakeAuthManager so that unit tests pass; I believe it was matching the wrong field * more optimizations context.user.id to context.user\_id * remove extra * replace context.user.is\_admin() with context.is\_admin because it is much faster * remove the weird is\_vpn logic in compute/api.py * Don't crash if there's no 'fixed\_ip' attribute (was returning None, which was unsubscriptable) * ObjectStore doesn't use properties collection; kernel\_id and ramdisk\_id aren't required anyway * added purge option and tightened up testing * Wrap iptables calls in a semaphore * pep8 * added instance types purge test * Security group fallback is named sg-fallback * Rename a few things for more clarity * Port libvirt\_conn.IptablesDriver over to use linux\_net.IptablesManager * merged trunk * Typo fix * added admin api call for injecting network info, added api test for inject network info * If there are no keypairs, output a useful error message * Fix typo (?) in authentication logic * Changing type -> image\_type * Pep8 cleanup * moved creating vifs to its own function, moved inject network to its own function * sandy y u no read hacking guide and import classes? * Typo fix * XenAPI tests * Introduce IptablesManager in linux\_net. Port every use of iptables in linux\_net to it * Use WatchedFileHandler instead of RotatingFileHandler * Resize compute tests * Support for HP SAN * Merging trunk to my branch. Fixed conflicts in Authors file and .mailmap * Rename migration 004 => 005 * Added Author and tests * Merging trunk * fixups backed on merge comments * Fixed testing mode leftover * PEP8 fix * Remove paste\_config\_to\_flags since it's now unused * Port changes to nova-combined, rename flags to API\_listen and API\_listen\_port * Set up logging once FLAGS properly read, no need to redo logging config anymore (was inoperant anyway) * Switch to API\_listen and API\_listen\_port, drop wsgi.paste\_config\_to\_flags * added new class Instances to manage instances and added a new listing method into the class * added functionality to list only fixed ip addresses of one node and added exception handling to list method * Use WatchedFileHandler instead of RotatingFileHandler * Incorporating minor cleanups suggested by Rick Harris: \* Use assertNotEqual instead of assertTrue \* Use enumerate function instead of maintaining a counter * Resize compute tests * fixed based on reviewer's comment. 1. erase wrapper function(remove/exists/mktempfile) from nova.utils. 2. nova-manage service describeresource(->describe\_resource) 3. nova-manage service updateresource(->update\_resource) 4. erase "my mistake print" statement * Tests * pep8 * merged trunk * Makes FlatDHCPManager clean up old fixed\_ips like VlanManager * Correctly pass the associate paramater for project\_get\_network through the IMPL layer in the db api * changed migration to 006 for trunk compatibility * completed doc and added --purge option to instance type delete * moved inject network info to a function which accepts only instance, and call it from reset network * Test changes * Merged with trunk * Always compare incoming flavor\_id as an int * Initial support for per-instance metadata, though the OpenStack API. Key/value pairs can be specified at instance creation time and are returned in the details view. Support limits based on quota system * a few changes and a bunch of unit tests * remove leftover periodic tasks * Added support for feature parity with the current Rackspace Cloud Servers practice of "injecting" files into newly-created instances for configuration, etc. However, this is in no way restricted to only writing files to the guest when it is first created * missing docstring and fixed copyrights * move periodic tasks to base class based on class variable as per review * Correctly pass the associate paramater to project\_get\_network * Add \*\*kwargs to VlanManager's create\_networks so that optional args from other managers don't break * Uncommitted changes using the wrong author, and re-committing under the correct author * merge with zone phase 1 again * Added http://mynova/v1.0/zones/ api options for add/remove/update/delete zones. child\_zones table added to database and migration. Changed novarc vars from CLOUD\_SERVERS\_\* to NOVA\_\* to work with novatools. See python-novatools on github for help testing this * pip requires novatools * copyright notice * moved 003\_cactus.py migration file to 004\_add\_instance\_types.py to avoid naming collision with new trunk migration * Add \*\*kwargs to VlanManager's create\_networks so that optional args from other managers don't break * merge with zone phase 1 * changed from 003-004 migration * merged lp:~jk0/nova/dynamicinstancetypes * Merged trunk * merge from dev * fixed strings * multi positional string fix * Use a semaphore to ensure we don't run more than one iptables-restore at a time * Fixed unit test * merge with trunk * fixed zone list tests * Make eth0 the default for the public\_interface flag * Finished flavor OS API stubs * Re-alphabetise Authors, move extra addresses into .mailmap * Re-alphabetise Authors, move extra addressses into .mailmap * Move the ramdisk logging stuff * Hi guys * fixup * zone list now comes from scheduler zonemanager * Stop blowing away the ramdisk * Rebased at lp:nova 688 * Update the Openstack API so that it returns 'addresses' * I have a bug fix, additional tests for the \`limiter\` method, and additional commenting for a couple classes in the OpenStack API. Basically I've just tried to jump in somewhere to get my feet wet. Constructive criticism welcome * added labels to networks for use in multi-nic added writing network data to xenstore param-list added call to agent to reset network added reset\_network call to openstack api * Add a command to nova-manage to list fixed ip's * Foo * comments + Englilish, changed copyright in migration, removed network\_get\_all from db.api (vestigial) * Adding myself to Authors and .mailmap files * example: * Switched mailmap entries * Supporting networks with multiple PIFs. pep8 fixes unit tests passed * Merged kpepple * Merged trunk * More testing * Block diagram for vmwareapi module * added entry in the category list * Added vmwareapi module to add support of hypervisor vmware-vsphere to OpenStack * added new functionality to list all defined fixed ips * added more I18N * Merged trunk and fixed conflict with other Brian in Authors * removing superfluous pass statements; replacing list comprehension with for loop; alphabetizing imports * Rebased at lp:nova 687 * added i18n of 'No networks defined' * Make eth0 the default for FLAGS.public\_interface * Typo fixes * Merging trunk * Adding tests * first crack at instance types docs * merge trunk * style cleanup * polling tests * Use glance image type to determine disk type * Minor change. Adding a helper function stub\_instance() inside the test test\_get\_all\_server\_details\_with\_host for readability * Fixes ldapdriver so that it works properly with admin client. It now sanitizes all unicode data to strings before passing it into ldap driver. This may need to be rethought to work properly for internationalization * Moved definition of return\_servers\_with\_host stub to inside the test\_get\_all\_server\_details\_with\_host test * fixed * Pep8 fixes * Merging trunk * Adding basic test * Better exceptions * Update to our HACKING doc to add examples of our docstring style * add periodic disassociate from VlanManager to FlatDHCPManager * Flipped mailmap entries * -from migrate.versioning import exceptions as versioning\_exceptions + +try: + from migrate.versioning import exceptions as versioning\_exceptions +except ImportError: + try: + # python-migration changed location of exceptions after 1.6.3 + # See LP Bug #717467 + from migrate import exceptions as versioning\_exceptions + except ImportError: + sys.exit(\_("python-migrate is not installed. Exiting.")) * Accidently removed myself from Authors * Added alternate email to mailmap * zone manager tests * Merged to trunk * added test for reset\_network to openstack api tests, tabstop 5 to 4, renamed migration * Use RotatingFileHandler instead of FileHandler * pep8 fixes * sanitize all args to strings before sending them to ldap * Use a threadpool for handling requests coming in through RPC * Typos * Derp * Spell flags correctly (i.e. not in upper case) * Fixed merge error * novatools call to child zones done * novatools call to child zones done * Putting glance plugin under pep8 control * fixed authors, import sys in migration.py * Merged trunk * First commit of working code * Stubbed out flavor create/delete API calls * This implements the blueprint 'Openstack API support for hostId': https://blueprints.launchpad.net/nova/+spec/openstack-api-hostid Now instances will have a unique hostId which for now is just a hash of the host. If the instance does not have a host yet, the hostId will be '' * Fix for bug #716847 * merge trunk * First commit for xenapi-vlan-networking. Totally untested * added functionality to nova-manage to list created networks * Add back --logdir=DIR option. If set, a logfile named after the binary (e.g. nova-api.log) will be kept in DIR * Fix PEP-8 stuff * assertIsNone is a 2.7-ism * This branch should resolve nova bug #718675 (https://bugs.launchpad.net/nova/+bug/718675) * Added myself to the authors file * I fail at sessions * I fail at sessions * Foo * hurr durr * Merging trunk part 1 * stubbed out reset networkin xenapi VM tests to solve domid problem * foo * foo * Adding vhd hidden sanity check * Fixes 718994 * Make rpc thread pool size configurable * merge with trunk * fail * Fixing test by adding stub for get\_image\_meta * this bug bit me hard today. pv can be None, which does not translate to %d and this error gets clobbered by causing errors in the business in charge of capturing output and reporting errors * More pep8 fixes * Pep8 fixes * Set name-label on VDI * Merge * Don't hide RotatingFileHandler behind FileHandler's name * Refactor code that decides which logfile to use, if any * Fixing typo * polling working * Using Nova style nokernel * changed d to s * merge with trunk * More plugin lol * moved reset network to after boot durrrrr.. * Don't hid RotatingFileHandler behind FileHandler's name * removed flag --pidfile from nova/services.py * Added teammate Naveed to authors file for his help * plugin lol * Plugin changes * merging trunk back in; updating Authors conflict * Adding documentation * Regrouping methods so they make sense * zone/info works * Refactoring put\_vdis * Adding safe\_find\_sr * Merged lp:nova * Fixes tarball contents by adding missing scripts and files to setup.py / MANIFEST.in * Moving SR path code outside of glance plugin * When re-throwing an exception, use "raise", not "raise e". This way we don't lose the stack trace * Adding more documentation, code-cleanup * Replace placeholders in nova.pot with some actual values * The proposed fix puts a VM which fails to spawn in a (new) 'FAILED' power state. It does not perform a clean-up. This because the user needs to know what has happened to the VM he/she was trying to run. Normally, API users do not have access to log files. In this case, the only way for the user to know what happened to the instance is to query its state (e.g.: doing euca-describe-instances). If we perform a complete clean-up, no information about the instance which failed to spawn will be left * Some trivial cleanups in context.py, mostly just a test of using the updated git-bzr-ng * Use eventlet.green.subprocess instead of standard subprocess * derp * Better host acquisition * zones merge * fixed / renamed migration scripts * Merged trunk * Update .pot file with source file and line numbers after running python setup.py build * Adds Distutils.Extra support, removes Babel support, which is half-baked at best * Pull in .po message catalogs from lp:~nova-core/nova/translations * Fix sporadically failing unittests * Missing nova/tests/db/nova.austin.sqlite file * Translations will be shipped in po/, not locale/ * Adding missing scripts and files to setup.py / MANIFEST.in * Fixes issues when running euca-run-instances and euca-describe-image-attribute against the latest nova/trunk EC2 API * initial * Naïve attempt at threading rpc requests * Beautify it a little bit, thanks to dabo * OS-55: Moved conn\_common code into disk.py * Break out of the "for group in rv" loop in security group unit tests so that we are use we are dealing with the correct group * Tons o loggin * merged trunk * Refactored * Launchpad automatic translations update * trunk merge * better filtering * Adding DISK\_VHD to ImageTypes * Updates to that S3ImageService kernel\_id and ramdisk\_id mappings work with EC2 API * fixed nova-combined debug hack and renamed ChildZone to Zone * plugin * Removing testing statements * Adds missing flag that makes use\_nova\_chains work properly * bad plugin * bad plugin * bad plugin * fixed merge conflict * First cut on XenServer unified-images * removed debugging * fixed template and added migration * better filtering * Use RotatingFileHandler instead of FileHandler * Typo fixes * Resurrect logdir option * hurr * Some refactoring * hurr * Snapshot correctly * Added try clause to handle changed location of exceptions after 1.6.3 in python-migrate LP Bug #717467 * Use eventlet.green.subprocess instead of standard subprocess * Made kernel and ram disk be deleted in xen api upon instance termination * Snapshot correctly * merged recent version. no conflict, no big/important change to this branch * wharrgarbl * merge jk0 branch (with trunk merge) which added additional columns for instance\_types (which are openstack api specific) * corrected model for table lookup * More fixes * Derp * fix for bug #716847 - if a volume has not been assigned to a host, then delete from db and skip rpc * added call to reset\_network from openstack api down to vmops * merging with trunk * Got rid of BadParameter, just using standard python ValueError * Merged trunk * support for multiple IPs per network * Fix DescribeRegion answer by using specific 'listen' configuration parameter instead of overloading ec2\_host * Fixed tables creation order and added clearing db after errors * Modified S3ImageService to return the format defined in BaseService to allow EC2 API's DescribeImages to work against Glance * re-add input\_chain because it got deleted at some point * Launchpad automatic translations update * Fixes a typo in the auth checking for DescribeAvailabilityZones * Fixes describe\_security\_groups by forcing it to return a list instead of a generator * return a list instead of a generator from describe\_groups * Hi guys * Added missing doc string and made a few style tweaks * fix typo in auth checking for describe\_availability\_zones * now sorting by project, then by group * Launchpad automatic translations update * Made a few tweaks to format of S3 service implementation * Merged trunk * First attempt to make all image services use similar schemas * fix :returns: and add pep-0257 * Preliminary fix for issue, need more thorough testing before pushing to lp * Launchpad automatic translations update * More typos * More typos * More typos * More typos * More typos * fixed exceptions import from python migrate * Cast to host * This fixes a lazy-load issue in describe-instances, which causes a crash. The solution is to specifically load the network table when retrieving an instance * added instance\_type\_purge() to actually remove records from db * updated tests and added more error checking * Merged trunk * more error checking on inputs and better errors returned * Added more columns to instance\_types tables * Added LOG line to describe groups function to find out what's going * joinedload network so describe\_instances continues to work * zone api tests passing * Create a new AMQP connection by default * First, not all * Merged to trunk and fixed merge conflict in Authors * rough cut at zone api tests * Following Rick and Jay's suggestions: - Fixed LOG.debug for translation - improved vm\_utils.VM\_Helper.ensure\_free\_mem * Create a new AMQP connection by default * after hours of tracking his prey, ken slowly crept behind the elusive wilderbeast test import hiding in the libvirt\_conn.py bushes and gutted it with his steely blade * fixed destroy calls * Forgot the metadata includes * added get IPs by instance * added resetnetwork to the XenAPIPlugin.dispatch dict * Forgot the metadata includes * Forgot the metadata includes * Typo fixes and some stupidity about the models * passing instance to reset\_network instead of vm\_ref, also not converting to an opaque ref before making plugin call * Define sql\_idle\_timeout flag to be an integer * forgot to add network\_get\_all\_by\_instance to db.api * template adjusted to NOVA\_TOOLS, zone db & os api layers added * Spawn from disk * Some more cleanup * sql\_idle\_timeout should be an integer * merged model change: flavorid needs to unique in model * testing refactor * flavorid needs to unique in model * Add forwarding rules for floating IPs to the OUTPUT chain on the network node in addition to the PREROUTING chain * typo * refactored api call to use instance\_types * Use a NullPool for sqlite connections * Get a fresh connection in rpc.cast rather than using a recycled one * Make rpc.cast create a fresh amqp connection. Each API request has its own thread, and they don't multiplex well * Only use NullPool when using sqlite * Also add floating ip forwarding to OUTPUT chain * trunk merge * removed ZoneCommands from nova-manage * Try using NullPool instead of SingletonPool * Try setting isolation\_level=immediate * This branch fixes bug #708347: RunInstances: Invalid instance type gives improper error message * Wrap line to under 79 characters * Launchpad automatic translations update * adding myself to Authors file * 1. Merged to rev654(?) 2. Fixed bug continuous request. if user continuouslly send live-migration request to same host, concurrent request to iptables occurs, and iptables complains. This version add retry for this issue * forgot to register new instance\_types table * Plugin tidying and more migration implementation * fixed overlooked mandatory changes in Xen * Renamed migration plugin * A lot of stuff * - population of public and private addresses containers in openstack api - replacement of sqlalchemy model in instance stub with dict * Fixes the ordering of init\_host commands so that iptables chains are created before they are used * Pass timestamps to the db layer in fixed\_ip\_disassociate\_all\_by\_timeout rather than converting to strings ahead of time, otherwise comparison between timestamps would often fail * Added support for 'SAN' style volumes. A SAN's big difference is that the iSCSI target won't normally run on the same host as the volume service * added support to pull list of ALL instance types even those that are marked deleted * Indent args to ssh\_connect correctly * Fix PEP8 violations * Added myself to Authors * 1) Moved tests for limiter to test\_common.py (from \_\_init\_\_.py) and expanded test suite to include bad inputs and tests for custom limits (#2) * Added my mail alias (Part of an experiment in using github, which got messy fast...) * Fixed pep8 error in vm\_utils.py * Add my name to AUTHORS, remove parentheses from the substitution made in the previous commit * Don't convert datetime objects to a string using .isoformat(). Leave it to sqlalchmeny (or pysqlite or whatever it is that does the magic) to work it out * Added test case for 'not enough memory' Successfully ran unit tests Fixed pep8 errors * Give a better error message if the instance type specified is invalid * Launchpad automatic translations update * added testing for instance\_types.py and refactored nova-manage to use instance\_types.py instead of going directly to db * added create and delete methods to instance\_types in preparation to call them from nova-manage * added testing for nova-manage instance\_type * additional error checking for nova-manage instance\_type * Typos and primary keys * Automates the setup for FlatDHCP regardless of whether the interface has an ip address * add docstring and revert set\_ip changes as they are unnecessary * Commas help * Changes and bug fixes * avoiding HOST\_UNAVAILABLE exception: if there is not enough free memory does not spawn the VM at all. instance state is set to "SHUTDOWN" * merge lp:nova at revision #654 * merge with lp:nova * Fixed pep8 errors Unit tests passed * merge source and remove ifconfig * fixes #713766 and probably #710959, please test the patch before committing it * use route -n instead of route to avoid chopped names * Updates to the multinode install doc based on Wayne's findings. Merged with trunk so should easily merge in * Checks whether the instance id is a list or not before assignment. This is to fix a bug relating to nova/boto. The AWK-SDK libraries pass in a string, not a list. The euca tools pass in a list * Launchpad automatic translations update * Catching all socket errors in \_get\_my\_ip, since any socket error is likely enough to cause a failure in detection * Catching all socket errors in \_get\_my\_ip, since any socket error is likely enough to cause a failure in detection * blargh * Some stuff * added INSTANCE\_TYPES to test for compatibility with current tests * Checking whether the instance id is a list or not before assignment. This is to fix a bug relating to nova/boto. The AWK-SDK libraries pass in a string, not a list. the euca tools pass in a list * Added data\_transfer xapi plugin * Another quick fix to multinode install doc * Made updates to multinode install doc * fixed instance\_types methods to use database backend * require user context for most flavor/instance\_type read calls * added network\_get\_all\_by\_instance(), call to reset\_network in vmops * added new parameter --dhcp\_domain to set the used domain by dnsmasq in /etc/nova/nova.conf * minor * Fix for bug #714709 * A few changes * fixed format according to PEP8 * replaced all calls to ifconfig with calls to ip * added myself to the Authors file * applied http://launchpadlibrarian.net/63698868/713434.patch * Launchpad automatic translations update * aliased flavor to instance\_types in nova-manage. will probably need to make flavor a full fledged class as users will want to list flavors by flavor name * simplified instance\_types db calls to return entire row - we may need these extra columns for some features and there seems to be little downside in including them. still need to fix testing calls * refactor to remove ugly code in flavors * updated api.create to use instance\_type table * added preliminary testing for bin/nova-manage while i am somewhat conflicted about the path these tests have taken, i think it is better than no tests at all * rewrote nova-manage instance\_type to use correct db.api returned objects and have more robust error handling * instance\_types should return in predicatable order (by name currently) * flavorid and name need to be unique in the database for the ec2 and openstack apis, repectively * corrected db.instance\_types to return expect dict instead of lists. updated openstack flavors to expect dicts instead of lists. added deleted column to returned dict * converted openstack flavors over to use instance\_types table. a few pep changes * added FIXME(kpepple) comments for all constant usage of INSTANCE\_TYPES. updated api/ec2/admin.py to use the new instance\_types db table * Launchpad automatic translations update * allow for bridge to be the public interface * Removed (newly) unused exception variables * Didn't mean to actually make changes to the glance plugin * Added a bunch of stubbed out functionality * Moved ssh\_execute to utils; moved comments to docstring * Fixes for Vish & Devin's feedback * Fixes https://bugs.launchpad.net/nova/+bug/681417 * Don't swallow exception stack traces by doing 'raise e'; just use 'raise' * Implementation of 'SAN' volumes A SAN volume is 'special' because the volume service probably won't run on the iSCSI target. Initial support is for Solaris with COMSTAR (Solaris 11) * merging * Fixed PEP8 test problems, complaining about too many blank lines at line 51 * Adds logging.basicConfig() to run\_tests.py so that attempting to log debug messages from tests will work * Launchpad automatic translations update * flagged all INSTANCE\_TYPES usage with FIXME comment. Added basic usage to nova-manage (needs formatting). created api methods * added seed data to migration * Don't need a route for guests. Turns out the issue with routing from the guests was due to duplicate macs * Changes the behavior of run\_test.sh so that pep8 is only run in the default case (when running all tests). It will no longer run when individual test cases are being given as in: * open cactus * some updates to HACKING to describe the docstrings * Casting to the scheduler * moves driver.init\_host into the base class so it happens before floating forwards and sets up proper iptables chains 2011.1 ------ * Set FINAL = True in version.py * Open Cactus development * Set FINAL = True in version.py * pass the set\_ip from ensure\_vlan\_bridge * don't fail on ip add exists and recreate default route on ip move if needed * initial support for dynamic instance\_types: db migration and model, stub tests and stub methods * better setup for flatdhcp * added to inject networking data into the xenstore * forgot context param for network\_get\_all * Fixes bug #709057 * Add and document the provider\_fw method in virt/FakeConnection * Fix for LP Bug #709510 * merge trunk * fix pep8 error :/ * Changed default handler for uncaughted exceptions. It uses logging instead print to stderr * Launchpad automatic translations update * rpartition sticks the rhs in [2] * Fix for LP Bug #709510 * change ensure\_bridge so it doesn't overwrite existing ips * Fix for LP Bug #709510 * Enabled modification of projects using the EC2 admin API * Reorder insance rules for provider rules immediately after base, before secgroups * Merged trunk * Match the initial db version to the actual Austin release db schema * 1. Discard nova-manage host list Reason: nova-manage service list can be replacement. Changes: nova-manage * Only run pep8 after tests if running all the tests * add logging.basicConfig() to tests * fix austin->bexar db migration * woops * trivial cleanup for context.py * Made adminclient get\_user return None instead of throwing EC2Exception if requested user not available * pep8 * Added modify project to ec2 admin api * incorporate feedback from devin - use sql consistently in instance\_destroy also, set deleted\_at * Fixed whitespace * Made adminclient get\_user return None instead of throwing EC2Exception if requested user not available * OS-55: Fix typo for libvirt\_conn operation * merge trunk * remove extraneous line * Fixed pep8 errors * Changed default handler for uncaughted exceptions. Logging with level critical instead of print to stderr * Disassociate all floating ips on terminate instance * Fixes simple scheduler to able to be run\_instance by admins + availability zones * Makes having sphinx to build docs a conditional thing - if you have it, you can get docs. If you don't, you can't * Fixed a pep8 spacing issue * fixes for bug #709057 * Working on api / manager / db support for zones * Launchpad automatic translations update * Adds security group output to describe\_instances * Use firewall\_driver flag as expected with NWFilterFirewall. This way, either you use NWFilterFirewall directly, or you use IptablesFirewall, which creates its own instance of NWFilterFirewall for the setup\_basic\_filtering command. This removes the requirement that LibvirtConnection would always need to know about NWFirewallFilter, and cleans up the area where the flag is used for loading the firewall class * simplify get and remove extra reference to import logging * Added a test that checks for localized strings in the source code that contain position-based string formatting placeholders. If found, an exception message is generated that summarizes the problem, as well as the location of the problematic code. This will prevent future trunk commits from adding localized strings that cannot be properly translated * Made changes based on code review * makes sure that : is in the availability zone before it attempts to use it to send instances to a particular host * Makes sure all instance and volume commands that raise not found are changed to show the ec2\_id instead of the internal id * remove all floating addresses on terminate instance * Merged in trunk changes * Fixed formatting issues in current codebase * Added the test for localized string formatting * Fixes NotFound messages in api to show the ec2\_id * Changed cpu limit to a static value of 100000 (100%) instead of using the vcpu value of 1. There is no weight/limit variable now so I see no other solution than the static max limit * Make nova.virt.images fetch images from a Glance URL when Glance is used as the image service (rather than unconditionally fetch them from an S3/objectstore URL) * Fixed spacing... AGAIN * Make unit tests clean up their mess in /tmp after themselves * Make xml namespace match the API version requested * Missing import in xen plugin * Shortened comment for 80char limt * Added missing import * Naive, low-regression-risk fix enabling Glance to work with libvirt/hyperv * Add unit test for xmlns version matching request version * Properly pulling the name attribute from security\_group * adding testcode * Fix Bug #703037. ra\_server is None * Fix regression in s3 image service. This should be a feature freeze exception * I have a feeling if we try to migrate from imageId to id we'll be tracking it down a while * more instanceId => id fixes * Fix regression in imageId => id field rename in s3 image service * Apply lp:707675 to this branch to be able to test * merge trunk * A couple of bugfixes * Fixes a stupid mistake I made when I moved this method from a module into a class * Add dan.prince to Authors * Make xml namespace match the API version requested * Fix issue in s3.py causing where '\_fix\_image\_id' is not defined * added mapping parameter to write\_network\_config\_to\_xenstore * OS-55: Added a test case for XenAPI file-based network injection OS-55: Stubbed out utils.execute for all XenAPI VM tests, including command simulation where necessary * Simple little changes related to openstack api to work better with glance * Merged trunk * Cleaned up \_start() and \_shutdown() * Added missing int to string conversion * Simple little changes related to openstack api to work better with glance * use 'ip addr change' * Fix merge miss * Changed method signature of create\_network * merged r621 * Merged with http://bazaar.launchpad.net/~vishvananda/nova/lp703037 * Merged with vish branch * Prefixed ending multi-line docstring with a newline * Fixing documentation strings. Second attempt at pep8 * Removal of image tempdir in test tearDown. Also, reformatted a couple method comments to match the file's style * Add DescribeInstanceTypes to admin api. This lets the dashboard know what sizes can be launched (using the -t flag in euca-run-instances, for example) and what resources they provide * Rename Mock, since it wasn't a Mock * Add DescribeInstanceTypes to admin api (dashboard uses it) * Fix for LP Bug #699654 * Change how libvirt firewall drivers work to have meaningful flags * Fixed pep8 errors * This branch updates docs to reflect the db sync addition. It additionally adds some useful errors to nova-manage to help people that are using old guides. It wraps sqlalchemy errors in generic DBError. Finally, it updates nova.sh to use current settings * Added myself to the authors list * fix pep8 issue (and my commit hook that didn't catch it) * Add a host argument to virt drivers's init\_host method. It will be set to the name of host it's running on * merged trunk * Wraps the NotFound exception at the api layer to print the proper instance id. Does the same for volume. Note that euca-describe-volumes doesn't pass in volume ids properly, so you will get no error messages on euca-describe-volumes with improper ids. We may also need to wrap a few other calls as well * Fixes issue with SNATTING chain not getting created or added to POSTROUTING when nova-network starts * Fix for bug #702237 * Moving init\_host before metadata\_forward, as metadata\_forward modifies prerouting rules * another trunk merge * Limit all lines to a maximum of 79 characters * Perform same filtering for OUTPUT as FORWARD in iptables * Fixed up a little image\_id return * Trunk merged * This patch: * Trunk merged * In instance chains and rules for ipv4 and ipv6, ACCEPT target was missing * moved imageId change to s3 client * Migration for provider firewall rules * Updates for provider\_fw\_rules in admin api * Adds driver.init\_host() call to flatdhcp driver * Fixed pep8 errors * Fixed pep8 errors * No longer hard coding to "/tmp/nova/images/". Using tempdir so tests run by different people on the same development machine pass * Perform same filtering for OUTPUT as FORWARD in iptables. This removes a way around the filtering * Fix pep-8 problem from prereq branch * Add a host argument to virt driver's init\_host method. It will be set to the name of host it's running on * updated authors since build is failing * Adds conditional around sphinx inclusion * merge with trunk * Fixes project and role checking when a user's naming attribute is not uid * I am new to nova, and wanted to fix a fairly trivial bug in order to understand the process * Fix for LP Bug #707554 * Added iptables rule to IptablesFirewallDriver like in Hisaharu Ishii patch with some workaround * Set the default number of IP's to to reserve for VPN to 0 * Merged with r606 * Properly fixed spacing issue for pep8 * Fixed spacing issue for pep8 * Fixed merge conflict * Added myself to ./Authors file * Switches from project\_get\_network to network\_get\_by\_instance, which actually works with all networking modes. Also removes a couple duplicate lines from a bad merge * Set the default number of IP's to to reserver for VPN to 0 * Localized strings that employ formatting should not use positional arguments, as they prevent the translator from re-ordering the translated text; instead, they should use mappings (i.e., dicts). This change replaces all localized formatted strings that use more than one formatting placeholder with a mapping version * add ip and network to nwfilter test * merged ntt branch * use network\_get\_by\_instance * Added myself (John Dewey) to Authors * corrected nesting of the data dictionary * Updated a couple data structures to pass pep8 * Added static cpu limit of 100000 (100%) to hyperv.py instead of using the vcpu value of 1 * PEP8 fixes * Changes \_\_dn\_to\_uid to return the uid attribute from the user's object * OS-55: PEP8 fixes * merged branch to name net\_manager.create\_networks args * the net\_managers expect different args to create\_networks, so nova-manage's call to net\_manager.create\_networks was changed to use named args to prevent argument mismatching * OS-55: Post-merge fixes * Fix describe\_regions by changing renamed flags. Also added a test to catch future errors * changed nova-manage to use named arguments to net\_manager.create\_networks * Merged trunk * Removed tabs form source. Merged trunk changes * allow docs to build in virtualenv prevent setup.py from failing with sphinx in virtualenv * fixes doc build and setup.py fail in virtualenv * fix reversed assignment * fixes and refactoring of smoketests * remove extra print * add test and fix describe regions * merged trunk * This patch skips VM shutdown if already in the halted state * Use Glance to relate machine image with kernel and ramdisk * Skip shutdown if already halted * Refactoring \_destroy into steps * i18n! * merged trunk fixed whitespace in rst * wrap sqlalchemy exceptions in a generic error * Wrap instance at api layer to print the proper error. Use same logic for volumes * This patch adds two flags: * Using new style logging * Adding ability to remap VBD device * Resolved trunk merge conflicts * Adds gettext to pluginlib\_nova.py. Fixes #706029 * Adding getttext to pluginlib\_nova * Add provider\_fw\_rules awareness to iptables firewall driver * No longer chmod 0777 instance directories, since nova works just fine without them * Updated docs for db sync requirements; merged with Vish's similar doc updates * Change default log formats so that:  \* they include a timestamp (necessary to correlate logs)  \* no longer display version on every line (shorter lines)  \* use [-] instead of [N/A] (shorter lines, less scary-looking)  \* show level before logger name (better human-readability) * OS55: pylint fixes * OS-55: Added unit test for network injection via xenstore * fixed typo * OS-55: Fix current unit tests * Fixed for pep8 * Merged with rev597 * No longer chmod 0777 instance directories * Reverted log type from error to audit * undid moving argument * Fix for LP Bug #699654 * moved argument for label * fixed the migration * really added migration for networks label * added default label to nova-manage and create\_networks * syntax * syntax error * added plugin call for resetnetworking * Fix metadata using versions other than /later. Patch via ~ttx * should be writing some kindof network info to the xenstore now, hopefully * Use ttx's patch to be explict about paths, as urlmap doesn't work as I expected * Doc changes for db sync * Fixes issue with instance creation throwing errors when non-default groups are used * Saving a database call by getting the security groups from the instance object * Fixes issue with describe\_instances requiring an admin context * OS-55: pylint fixes * Fixing another instance of getting a list of ids instead of a list of objects * Adds security group output to describe\_instances * Finds and fixes remaining strings for i18n. Fixes bug #705186 * Pass a PluginManager to nose.config.Config(). This lets us use plugins like coverage, xcoverage, etc * i18n's strings that were missed or have been added since initial i18n strings branch * OS-55: Only modify Linux image with no or injection-incapable guest agent OS-55: Support network configuration via xenstore for Windows images * A couple of copypasta errors * Keep exception tracing as it was * Pass a PluginManager to nose.config.Config(). This lets us use plugins like coverage, xcoverage, etc * Also print version at nova-api startup, for consistency * Add timestamp to default log format, invert name and level for better readability, log version once at startup * When radvd is already running, not to hup, but to restart * fix ipv6 conditional * more smoketest fixes * Passing in an elevated context instead of making the call non-elevated * Added changes to make errors and recovery for volumes more graceful: * Fetches the security group from ID, allowing the object to be used properly, later * Changing service\_get\_all\_by\_host to not require admin context as it is used for describing instances, which any user in a project can do * Exclude vcsversion.py from pep8 check. It's not compliant, but out of our control * Exclude vcsversion.py from pep8 check. It's not compliant, but out of our control * Include paste config in tarball * Add etc/ directory to tarball * Fixes for bugs: * Return non-zero if either unit tests or pep8 fails * Eagerly load fixed\_ip.network in instance\_get\_by\_id * Add Rob Kost to Authors * Return non-zero if either unit tests or pep8 fails * Merged trunk * merge trunk * Add paste and paste.deploy installation to nova.sh, needed for api server * Updated trunk changes to work with localization * Implement provider-level firewall rules in nwfilter * Whitespace (pep8) cleanups * Exception string lacking 'G' for gigabytes unit * Fixes \*\*params unpacking to ensure all kwargs are strings for compatibility with python 2.6.1 * make sure params have no unicode keys * Removed unneeded line * Merged trunk * Refactor run\_tests.sh to allow us to run an extra command after the tests * update the docs to reflect db sync as well * add helpful error messages to nova-manage and update nova.sh * Fixed unit tests * Merged trunk * fixed pep8 error * Eagerly load instance's fixed\_ip.network attribute * merged trunk changes * minor code cleanup * minor code cleanup * remove blank from Authors * .mailmap rewrite * .mailmap updated * Refactor run\_tests.sh to allow us to run an extra command after the tests * Add an apply\_instance\_filter method to NWFilter driver * PEP-8 fixes * Revert Firewalldriver * Replace an old use of ec2\_id with id in describe\_addresses * various fixes to smoketests, including allowing admin tests to run as a user, better timing, and allowing volume tests to run on non-udev linux * merged trunk * replace old ec2\_id with proper id in describe\_addresses * merge vish's changes (which merged trunk and fixed a pep8 problem) * merged trunkand fixed conflicts and pep error * get\_my\_linklocal raises exception * Completed first pass at converting all localized strings with multiple format substitutions * Allows moving from the Austin-style db to the Bexar-style * move db sync into nosetests package-level fixtures so that the existing nosetests attempt in hudson will pass * previous commit breaks volume.driver. fix it. * per vish's feedback, allow admin to specify volume id in any of the acceptable manners (vol-, volume-, and int) * Merged trunk * Fixed unit tests * Fix merge conflict * add two more columns, set string lengths) * Enable the use\_ipv6 flag in unit tests by default * Fixed unit tests * merge from upstream and fix small issues * merged to trunk rev572 * fixed based on reviewer's comment * Basic stubbing throughout the stack * Enable the use\_ipv6 flag in unit tests by default * Add an apply\_instance\_filter method to NWFilter driver * update status to 'error\_deleting' on volumes where deletion fails * Merged trunk * This disables ipv6 by default. Most use cases will not need it on and it makes dependencies more complex * The live\_migration branch ( https://code.launchpad.net/~nttdata/nova/live-migration/+merge/44940 ) was not ready to be merged * merge from upstream to fix conflict * Trunk merge * s/cleanup/volume. volume commands will need their own ns in the long run * disable ipv6 by default * Merged trunk * Plug VBD to existing instance and minor cleanup * fixes related to #701749. Also, added nova-manage commands to recover from certain states: * Implement support for streaming images from Glance when using the XenAPI virtualization backend, as per the bexar-xenapi-support-for-glance blueprint * Works around the app-armor problem of requiring disks with backing files to be named appropriately by changing the name of our extra disks * fix test to respect xml changes * merged trunk * Add refresh\_security\_group\_\* methods to nova/virt/fake.py, as FakeConnection is the reference for documentation and method signatures that should be implemented by virt connection drivers * added paste pastedeploy to nova.sh * authors needed for test * revert live\_migration branch * This removes the need for the custom udev rule for iscsi devices. It instead attaches the device based on /dev/disk/by-path/ which should make the setup of nova-volume a little easier * Merged trunk * Risk of Regression: This patch don’t modify existing functionlities, but I have added some. 1. nova.db.service.sqlalchemy.model.Serivce (adding a column to database) 2. nova.service ( nova-compute needes to insert information defined by 1 above) * Docstrings aren't guaranteed to exist, so split() can't automatically be called on a method without first checking for the method docstring's existence. Fixes Bug #704447 * Removes circular import issues from bin/stack and replaces utils.loads with json.loads. Fixes Bug#704424 * ComputeAPI -> compute.API in bin/nova-direct-api. Fixes LP#704422 * Fixed apply\_instance\_filter is not implemented in NWFilterFirewall * pep8 * I might have gone overboard with documenting \_members * Add rules to database, cast refresh message and trickle down to firewall driver * Fixed error message in get\_my\_linklocal * openstack api fixes for glance * Stubbed-out code for working with provider-firewalls * Merged trunk * Merged with trunk revno 572 * Better shutdown handling * Change where paste.deploy factories live and how they are called. They are now in the nova.wsgi.Application/Middleware classes, and call the \_\_init\_\_ method of their class with kwargs of the local configuration of the paste file * Further decouple api routing decisions and move into paste.deploy configuration. This makes paste back the nova-api binary * Clean up openstack api test fake * Merged trunk * Add Start/Shutdown support to XenAPI * The Openstack API requires image metadata to be returned immediately after an image-create call * merge trunk * Fixing whitespace * Returning image\_metadata from snapshot() * Merging trunk * Merged trunk * merged trunk rev569 * merged to rev 561 and fixed based on reviewer's comment * Adds a developer interface with direct access to the internal inter-service APIs and a command-line tool based on reflection to interact with them * merge from upstream * pep8 fixes... largely to things from trunk? * merge from upstream * pep8 * remove print statement * This branch fixes two outstanding bugs in compute. It also fixes a bad method signature in network and removes an unused method in cloud * Re-removes TrialTestCase. It was accidentally added in by some merges and causing issues with running tests individually * removed rpc in cloud * merged trial fix again * fix bad function signature in create\_networks * undo accidental removal of fake\_flags * Merged trunk * merged lp:~vishvananda/nova/lp703012 * remove TrialTestCase again and fix merge issues * import re, remove extra call in cloud.py. Move get\_console\_output to compute\_api * Create and use a generic handler for RPC calls to compute * Create and use a generic handler for RPC calls to compute * Create and use a generic handler for RPC calls * Merged trunk * OS-55: Inject network settings in linux images * Merged with trunk revno 565 * use .local and .rescue for disk images so they don't make app-armor puke * Implements the blueprint for enabling the setting of the root/admin password on an instance * OpenStack Compute (Nova) IPv4/IPv6 dual stack support http://wiki.openstack.org/BexarIpv6supportReadme * Merged to rev.563 * This change introduces support for Sheepdog (distributed block storage system) which is proposed in https://blueprints.launchpad.net/nova/+spec/sheepdog-support * Sort Authors * Update Authors * merge from upstream: * pep8 fixes * update migration script to add new tables since merge * sort Authors * Merged with r562 * This modifies libvirt to use CoW images instead of raw images. This is much more efficient and allows us to use the snapshotting capabilities available for qcow2 images. It also changes local storage to be a separate drive instead of a separate partition * pep8. Someday I'll remember 2 blank lines between module methods * remove ">>>MERGE" iin nova/db/sqlalchemy/api.py * checking based on pep8 * merged trunk * Modified per sorens review * Fix for Pep-8 * Merged with r561 * Moved commands which needs sudo to nova.sh * Added netaddr for pip-requires * Marking snapshots as private for now * Merging Trunk * Fixing Image ID workaround and typo * Fixed based on the comments from code review. Merged to trunk rev 561 * Add a new method to firewall drivers to tell them to stop filtering a particular instance. Call it when an instance has been destroyed * merged to trunk rev 561 * Merged trunk * merge trunk rev560 * Fixes related to how EC2 ids are displayed and dealt with * Get reviewed and fixed based on comments. Merged latest version * Make libvirt and XenAPI play nice together * Spelling is hard. Typing even moreso * Revert changes to version.py * Minor code cleanups * Minor code cleanups * Minor code cleanups * Make driver calls compatible * Merged trunk * Stubbed out XenServer rescue/unrescue * Added unit tests for the Diffie-Hellman class. Merged recent trunk changes * Bring NWFilter driver up to speed on unfilter\_instance * Replaced home-grown Diffie-Hellman implementation with the M2Crypto version supplied by Soren * Instead of a set() to keep track of instances and security groups, use a dict(). \_\_eq\_\_ for stuff coming out of sqlalchemy does not do what I expected (probably due to our use of sessions) * Fixes broken call to \_\_generate\_rc in auth manager * Fixes bug #701055. Moves code for instance termination inline so that the manager doesn't prematurely mark an instance as deleted. Prematurely doing so causes find calls to fail, prevents instance data from being deleted, and also causes some other issues * Revert r510 and r512 because Josh had already done the same work * merged trunk * Fixed Authors * Merged with 557 * Fixed missing \_(). Fixed to follow logging to LOG changes. Fixed merge miss (get\_fixed\_ip was moved away). Update some missing comments * merge from upstream and fix leaks in console tests * make sure get\_all returns * Fixes a typo in the name of a variable * Fixes #701055. Move instance termination code inline to prevent manager from prematurely marking it as destroyed * fix invalid variable reference in cloud api * fix indentation * add support for database migration * fix changed call to generate\_rc * merged with r555 * fixed method signature of modify\_rules fixed unit\_test for ipv6 * standardize volume ids * standardize volume ids * standardize on hex for ids, allow configurable instance names * correct volume ids for ec2 * correct formatting for volume ids * Fix test failures on Python 2.7 by eagerly loading the fixed\_ip attribute on instances. No clue why it doesn't affect python 2.6, though * Adding TODO to clarify status * Merging trunk * Do joinedload\_all('fixed\_ip.floating\_ips') instead of joinedload('fixed\_ip') * Initialize logging in nova-manage so we don't see errors about missing handlers * \_wait\_with\_callback was changed out from under suspend/resume. fixed * Make rescue/unrescue available to API * Stop error messages for logs when running nova-manage * Fixing stub so tests pass * Merging trunk * Merging trunk, small fixes * This branch adds a backend for using RBD (RADOS Block Device) volumes in nova via libvirt/qemu. This is described in the blueprint here: https://blueprints.launchpad.net/nova/+spec/ceph-block-driver * Fix url matching for years 2010-forward * Update config for launching logger with cleaner factory * Update paste config for ec2 request logging * merged changes from trunk * cleaned up prior merge mess * Merged trunk * My previous modifications to novarc had CLOUDSERVER\_AUTH\_URL pointing to the ec2 api port. Now it's correctly pointing to os api port * Check for whole pool name in check\_for\_setup\_error * change novarc template from cc\_port to osapi\_port. Removed osapi\_port from bin scripts * Start to add rescue/unrescue support * fixed pause and resume * Fixed another issue in \_stream\_disk, as it did never execute \_write\_partition. Fixed fake method accordingly. Fixed pep8 errors * pep8 fixes * Fixing the stub for \_stream\_disk as well * Fix for \_stream\_disk * Merged with r551 * Support IPv6 firewall with IptablesFirewallDriver * Fixed syntax errors * Check whether 'device\_path' has ':' before splitting it * PEP8 fixes, and switch to using the new LOG in vm\_utils, matching what's just come in from trunk * Merged with trunk * Merged with Orlando's recent changes * Added support of availability zones for compute. models.Service got additional field availability\_zone and was created ZoneScheduler that make decisions based on this field. Also replaced fake 'nova' zone in EC2 cloud api * Eagerly load fixed\_ip property of instances * Had to abandon the other branch (~annegentle/nova/newscript) because the diffs weren't working right for me. This is a fresh branch that should be merged correctly with trunk. Thanks for your patience. :) * Added unit tests for the xenapi-glance integration. This adds a glance simulator that can stub in place of glance.client.Client, and enhances the xapi simulator to add the additional calls that the Glance-specific path requires * Merged with 549 * Change command to get link local address Remove superfluous code * This branch adds web based serial console access. Here is an overview of how it works (for libvirt): * Merged with r548 * Fixed bug * Add DescribeInstanceV6 for backward compatibility * Fixed test environments. Fixed bugs in \_fetch\_image\_objecstore and \_lookup\_image\_objcestore (objectstore was broken!) Added tests for glance * Fixed for pep8 Remove temporary debugging * changed exception class * Changing DN creation to do searches for entries * Fixes bug #701575: run\_tests.sh fails with a meaningless error if virtualenv is not installed. Proposed fix tries to use easy\_install to install virtualenv if not present * merge trunk, fix conflict * more useful prefix and fix typo in string * use by-path instead of custom udev script * Quick bugfix. Also make the error message more specific and unique in the equivalent code in the revoke method * remove extra whitspaces * Raise meaningful exception when there aren't enough params for a sec group rule * bah - pep8 errors * resolve pylint warnings * Removing script file * Read Full Spec for implementation details and notes on how to boot an instance using OS API. http://etherpad.openstack.org/B2RK0q1CYj * Added my name to Authors list * Changes per Edays comments * Fixed a number of issues with the iptables firewall backend: \* Port specifications for firewalls come back from the data store as integers, but were compared as strings. \* --icmp-type was misspelled as --icmp\_type (underscore vs dash) \* There weren't any unit tests for these issues * merged trunk changes * Removed unneeded SimpleDH code from agent plugin. Improved handling of plugin call failures * Now tries to install virtualenv via easy\_install if not present * Merging trunk * fixed issue in pluginlib\_nova.py * Trunk merge and conflcts resolved * Implementation of xs-console blueprint (adds support for console proxies like xvp) * Fixed a number of issues with the iptables firewall backend: \* Port specifications for firewalls come back from the data store as integers, but were compared as strings. \* --icmp-type was misspelled as --icmp\_type (underscore vs dash) \* There weren't any unit tests for these issues * Add support for EBS volumes to the live migration feature. Currently, only AoE is supported * Changed shared\_ip\_group detail routing * Changed shared\_ip\_group detail routing * A few more changes to the smoeketests. Allows smoketests to find the nova package from the checkout. Adds smoketests for security groups. Also fixes a couple of typos * Fixes the metadata forwarding to work by default * Adds support to nova-manage to modify projects * Add glance to pip-requires, as we're now using the Glance client code from Nova * Now removing kernel/ramdisk VDI after copy Code tested with PV and HVM guests Fixed pep8 errors * merged trunk changes * consolidate boto\_extensions.py and euca-get-ajax-console, fix bugs from previous trunk merge * Fixed issues raised by reviews * xenapi\_conn was not terminating utils/LoopingCall when an exception was occurring. This was causing the eventlet Event to have send\_exception() called more than once (a no-no) * merge trunk * whups, fix accidental change to nova-combined * remove uneeded superclass * Bugfix * Adds the requisite infrastructure for automating translation templates import/export to Launchpad * Added babel/gettext build support * Can now correctly launch images with external kernels through glance * re-merged in trunk to correct conflict * Fix describe\_availablity\_zones versobse * Typo fix * merged changes from trunk * Adding modify option for projects * Fixes describe\_instances to filter by a list of instance\_ids * Late import module for register\_models() so it doesn't create the db before flags are loaded * Checks for existence of volume group using vgs instead of checking to see if /dev/nova-volumes exists. The dev is created by udev and isn't always there even if the volume group does exist * Add a new firewall backend for libvirt, based on iptables * Create LibvirtConnection directly, rather than going through libvirt\_conn.get\_connection. This should remove the dependency on libvirt for tests * Fixed xenapi\_conn wait\_for\_task to properly terminate LoopingCall on exception * Fixed xenapi\_conn wait\_for\_task to properly terminate LoopingCall on exception * Fixed xenapi\_conn wait\_for\_task to properly terminate LoopingCall on exception * optimize to call get if instance\_id is specified since most of the time people will just be requesting one id * fix describe instances + test * Moved get\_my\_ip into flags because that is the only thing it is being used for and use it to set a new flag called my\_ip * fixes Document make configuration by updating nova version mechanism to conform to rev530 update * alphbetized Authors * added myself to authors and fixed typo to follow standard * typo correction * fixed small glitch in \_fetch\_image\_glance virtual\_size = imeta['size'] * fixed doc make process for new nova version (rev530) machanism * late import module for register\_models() so it doesn't create the db before flags are loaded * use safer vgs call * Return proper region info in describe\_regions * change API classname to match the way other API's are done * small cleanups * First cut at implementing partition-adding in combination with the Glance streaming. Untested * some small cleanups * merged from upstream and made applicable changes * Adds a mechanism to programmatically determine the version of Nova. The designated version is defined in nova/version.py. When running python setup.py from a bzr checkout, information about the bzr branch is put into nova/vcsversion.py which is conditionally imported in nova/version.py * Return region info in the proper format * Now that we aren't using twisted we can vgs to check for the existence of the volume group * s/canonical\_version/canonical\_version\_string/g * Fix indentation * s/string\_with\_vcs/version\_string\_with\_vcs/g * Some fixes to \_lookup\_image\_glance: fix the return value from lookup\_image, attach the disk read-only before running pygrub, and add some debug logging * Reverted formatting change no longer necessary * removed a merge conflict line I missed before * merged trunk changes * set the hostname factory in the service init * incorporated changes suggested by eday * Add copyright and license info to version.py * Fixes issue in trunk with downloading s3 images for instance creation * Fix pep8 errors * Many fixes to the Glance integration * Wrap logs so we can: \* use a "context" kwarg to track requests all the way through the system \* use a custom formatter so we get the data we want (configurable with flags) \* allow additional formatting for debug statements for easer debugging \* add an AUDIT level, useful for noticing changes to system components \* use named logs instead of the general logger where it makes sesnse * pep8 fixes * Bug #699910: Nova RPC layer silently swallows exceptions * Bug #699912: When failing to connect to a data store, Nova doesn't log which data store it tried to connect to * Bug #699910: Nova RPC layer silently swallows exceptions * pv/hvm detection with pygrub updated for glance * Bug #699912: When failing to connect to a data store, Nova doesn't log which data store it tried to connect to * Resolved merge differences * Additional cleanup prior to pushing * Merged with trunk * Fixing unescaped quote in nova-CC-install.sh script plus formatting fixes to multinode install * getting ready to push for merge prop * Fixing headers line by wrapping the headers in single quotes * Less code generation * grabbed the get\_info fix from my other branch * merged changes from trunk * Remove redundant import of nova.context. Use db instance attribute rather than module directly * Merging trunk * Removing some FIXMEs * Reserving image before uploading * merge * Half-finished implementation of the streaming from Glance to a VDI through nova-compute * Fix Nova not to immediately blow up when talking to Glance: we were using the wrong URL to get the image metadata, and ended up getting the whole image instead (and trying to parse it as json) * another merge with trunk to remedy instance\_id issues * merge * Include date in API action query * Review feedback * This branch implements lock functionality. The lock is stored in the compute worker database. Decorators have been added to the openstack API actions which alter instances in any way * Review feedback * Review feedback * Review feedback * typo * refers to instance\_id instead of instance\_ref[instance\_id] * passing the correct parameters to decorated function * accidentally left unlocked in there, it should have been locked * various cleanup and fixes * merged trunk * pep8 * altered argument handling * Got the basic 'set admin password' stuff working * Include date in action query * Let documentation get version from nova/version.py as well * Add default version file for developers * merge pep8 fixes from newlog2 * Track version info, and make available for logging * pep8 * Merged trunk * merge pep8 and tests from wsgirouter branch * Remove test for removed class * Pep8 * pep8 fix * merged trunk changes * commit before merging trunk * Fixes format\_instances error by passing reservation\_id as a kwarg instead of an arg. Also removes extraneous yields in test\_cloud that were causing tests to pass with broken code * Remove module-level factory methods in favor of having a factory class-method on wsgi components themselves. Local options from config are passed to the \_\_init\_\_ method of the component as kwargs * fix the broken tests that allowed the breakage in format to happen * Fix format\_run\_instances to pass in reservation id as a kwarg * Add factories into the wsgi classes * Add blank \_\_init\_\_ file for fixing importability. The stale .pyc masked this error locally * merged trunk changes * Introduces basic support for spawning, rebooting and destroying vms when using Microsoft Hyper-V as the hypervisor. Images need to be in VHD format. Note that although Hyper-V doesn't accept kernel and ramdisk separate from the image, the nova objectstore api still expects an image to have an associated aki and ari. You can use dummy aki and ari images -- the hyper-v driver won't use them or try to download them. Requires Python's WMI module * merged trunk changes * Renamed 'set\_root\_password' to 'set\_admin\_password' globally * merge with trunk * renamed sharedipgroups to shared\_ip\_groups and fixed tests for display\_name * Fix openstack api tests and add a FaultWrapper to turn exceptions to faults * Fixed display\_name on create\_instance * fix some glitches due to someone removing instanc.internal\_id (not that I mind) remove accidental change to nova-combined script * Fixed trunk merge conflicts as spotted by dubs * OS API parity: map image ID to numeric ID. Ensure all other OS operations are at least stubbed out and callable * add in separate public hostname for console hosts. flesh out console api data * allow smoketests to find nova package and add security rules * Fix a bunch of pep8 stuff * This addition to the docs clarifies that it is a requirement for contributors to be listed in the Authors file before their commits can be merged to trunk * merge trunk * another merge from trunk to the latest rev * pulled changes from trunk added console api to openstack api * Removed dependencies on nova server components for the admin client * Remove stale doc files so the autogeneration extension for sphinx will work properly * Add to Authors and mailmap * Make test case work again * This branch contains the internal API cleanup branches I had previously proposed, but combined together and with all the UUID key replacement ripped out. This allows multiple REST interfaces (or other tools) to use the internal API directly, rather than having the logic tied up in the ec2 cloud.py file * socat will need to be added to our nova sudoers * merged trunk changes * intermediate work * Created a XenAPI plugin that will allow nova code to read/write/delete from xenstore records for a given instance. Added the basic methods for working with xenstore data to the vmops script, as well as plugin support to xenapi\_conn.py * Merged trunk * Recover from a lost data store connection * Updated register\_models() docstring * simplify decorator into a wrapper fn * add in xs-console worker and tests * pep8 cleanup * more fixes, docstrings * fix injection and xml * Fixing formatting problems with multinode install document * Split internal API get calls to get and get\_all, where the former takes an ID and returns one resource, and the latter can optionally take a filter and return a list of resources * missing \_() * Fixed for pep8 * Fixed:Create instance fails when use\_ipv6=False * Removed debug message which is not needed * Fixed misspelled variable * Fixed bug in nova\_project\_filter\_v6 * The \_update method in base Instance class overides dns\_name\_v6,so fixed it * self.XENAPI.. * Changed Paused power state from Error to Paused * fixed json syntax error * stop using partitions and first pass at cow images * Remove stale doc files * pep8 * tests fixed up * Better method for eventlet.wsgi.server logging * Silence eventlet.wsgi.server so it doesn't go to stdout and pollute our logs * Declare a flag for test to run in isolation * Build app manually for test\_api since nova.ec2.API is gone * Recover from a lost data store connection * Added xenstore plugin changed * merged changes from trunk * some more cleanup * need one more newline * Redis dependency no longer needed * Make test\_access use ec2.request instead of .controller and .action * Revert some unneeded formatting since twistd is no longer used * pep8 fixes * Remove flags and unused API class from openstack api, since such things are specified in paste config now * i18n logging and exception strings * remove unused nova/api/\_\_init\_\_.py * Make paste the default api pattern * Rework how routing is done in ec2 endpoint * Change all 2010 Copyright statements to 2010-2011 in doc source directory only * rename easy to direct in the scripts * fix typo in stack tool * rename Easy API to Direct API * Moved \_\_init\_\_ api code to api.py and changed allowed\_instances quota method argument to accept all type data, not just vcpu count * Made the plugin output fully json-ified, so I could remove the exception handlers in vmops.py. Cleaned up some pep8 issues that weren't caught in earlier runs * merged from trunk * Renamed argument to represent possible types in volume\_utils * Removed leftover UUID reference * Removed UUID keys for instance and volume * Merged trunk * Final edits to multi-node doc and install script * Merged trunk changes * Some Bug Fix * Fixed bug in libvirt * Fixed bug * Fixed for pep8 * Fixed conflict with r515 * Merged and fiexed conflicts with r515 * some fixes per vish's feedback * Don't know where that LOG went.. * Final few log tweaks, i18n, levels, including contexts, etc * Apply logging changes as a giant patch to work around the cloudpipe delete + add issue in the original patch * dabo fix to update for password reset v2 * krm\_mapping.json sample file added * dabo fix to update for password reset * added cloudserver vars to novarc template * Update Authors * Add support for rbd volumes * Fixes LP688545 * First pass at feature parity. Includes Image ID hash * Fixing merge conflicts with new branch * merged in trunk changes * Fixing merge conflicts * Fixes LP688545 * Make sure we point to the right PPA's everywhere * Editing note about the database schema available on the wiki * Modifying based on reviewer comments * Uses paste.deploy to make application running configurable. This includes the ability to swap out middlewares, define new endpoints, and generally move away from having code to build wsgi routers and middleware chains into a configurable, extensible method for running wsgi servers * Modifications to the nova-CC-installer.sh based on review * Adds the pool\_recycle option to the sql engine startup call. This enables connection auto-timeout so that connection pooling will work properly. The recommended setting (per sqlalchemy FAQ page) has been provided as a default for a new configuration flag. What this means is that if a db connection sits idle for the configured # of seconds, the engine will automatically close the connection and return it to the available thread pool. See Bug #690314 for info * Add burnin support. Services are now by default disabled, but can have instances and volumes run on them using availability\_zone = nova:HOSTNAME. This lets the hardware be put through its paces without being put in the generally available pool of hardware. There is a 'service' subcommand for nova-manage where you can enable, disable, and list statuses of services * pep8 fixes * Merged compute-api-cleanup branch * Removed compute dependency in quota.py * add timeout constant, set to 5 minutes * removed extra whitespace chars at the end of the changed lines * Several documentation corrections and formatting fixes * Minor edits prior to merging changes to the script file * add stubs for xen driver * merge in trunk * merged latest trunk * merge trunk * merge trunk * temp * Stop returning generators in the refresh\_security\_group\_{rules,members} methods * Don't lie about which is the default firewall implementation * Move a closing bracket * Stub out init\_host in libvirt driver * Adjust test suite to the split between base firewall rules provided by nwfilter and the security group filtering * Fix a merge artifact * Remove references to nova-core/ppa and openstack/ppa PPA's * Updated the password generation code * Add support for Sheepdog volumes * Add support for various block device types (block, network, file) * Added agent.py plugin. Merged xenstore plugin changes * fixed pep8 issues * Added OpenStack's copyright to the xenstore plugin * fixed pep8 issues * merged in trunk and xenstore-plugin changes * Ignore CA/crl.pem * Before merge with xenstore-plugin code * Corrected the sloppy import in the xenstore plugin that was copied from other plugins * Ignore CA/crl.pem * Merged trunk * Merged trunk * deleting README.livemigration.txt and nova/livemigration\_test/\* * Merged trunk * Merged trunk * 最新バージョンにマージ。変更点は以下の通り。 Authorsに自分の所属を追加 utils.pyのgenerate\_uidがおかしいのでインスタンスIDがオーバーフローしていたが、 その処理を一時撤廃。後で試験しなおしとすることにした。 * Merged trunk * Auth Tokens assumed the user\_id was an int, not a string * Removed dependencies on flags.py from adminclient * Make InstanceActions and live diagnostics available through the Admin API * Cleanup * Improved test * removed some debugging code left in previous push * Converted the pool\_recycle setting to be a flag with a default of 3600 seconds * completed the basic xenstore read/write/delete functionality * Removed problematic test * PEP8 fix * \* Fix bad query in \_\_project\_to\_dn \* use \_\_find\_dns instead of \_\_find\_objects in \_\_uid\_to\_dn and \_\_project\_to\_dn * Moved network operation code in ec2 api into a generic network API class. Removed a circular dependency with compute/quota * Oopsies * merge trunk * merge trunk * Make compute.api methods verbs * Fail * Review feedback * Cleans up the output of run\_tests.sh to look closer to Trial * change exit code * Changing DN creation to do searches for entries * Merged trunk * Implemented review feedback * This patch is beginning of XenServer snapshots in nova. It adds: * Merged trunk * Calling compute api directly from OpenStack image create * Several documentation corrections * merge recent revision(version of 2010/12/28) Change: 1. Use greenthread instead of defer at nova.virt.libvirt\_conn.live\_migration. 2. Move nova.scheduler.manager.live\_migration to nova.scheduler.driver 3. Move nova.scheduler.manager.has\_enough\_resource to nova.scheduler.driver 4. Any check routine in nova-manage.instance.live\_migration is moved to nova.scheduler.driver.schedule\_live\_migration * Merging trunk * Note that contributors are required to be listed in Authors file before work can be merged into trunk * Mention Authors and .mailmap files in Developer Guide * pep 8 * remove cloudpipe from paste config * Clean up how we determine IP to bind to * Converted a few more ec2 calls to use compute api * Cleaned up the compute API, mostly consistency with other parts of the system and renaming redundant module names * fixed the compute lock test * altered the compute lock test * removed tests.api.openstack.test\_servers test\_lock, to hell with it. i'm not even sure if testing lock needs to be at this level * fixed up the compute lock test, was failing because the context was always admin * syntax error * moved check lock decorator from the compute api to the come manager... when it rains it pours * removed db.set\_lock, using update\_instance instead * added some logging * typo, trying to hurry.. look where that got me * altered error exception/logging * altered error exception/logging * fixd variables being out of scope in lock decorator * moved check lock decorator to compute api level. altered openstack.test\_servers according and wrote test for lock in tests.test\_compute * Moved ec2 volume operations into a volume API interface for other components to use. Added attach/detach as compute.api methods, since they operate in the context of instances (and to avoid a dependency loop) * pep8 fix, and add in flags that don't refernece my laptop * apt-get install socat, which is used to connect to the console * removed lock check from show and changed returning 404 to 405 * fix lp:695182, scheduler tests needed to DECLARE flag to run standalone * removed () from if (can't believe i did that) and renamed checks\_lock decorator * Add the pool\_recycle setting to enable connection pooling features for the sql engine. The setting is hard-coded to 3600 seconds (one hour) per the recommendation provided on sqlalchemy's site * i18n * Pep-8 cleanup * Fix scheduler testcase so it knows all flags and can run in isolation * removed some code i didn't end up using * fixed merge conflict with trunk * pep8 * fixed up test for lock * added tests for EC2 describe\_instances * PEP8 cleanup * This branch fixes an issue where VM creation fails because of a missing flag definition for 'injected\_network\_template'. See Bug #695467 for more info * Added tests * added test for lock to os api * refactor * Re-added flag definition for injected\_network\_template. Tested & verified fix in the same env as the original bug * forgot import * syntax error * Merged trunk * Added implementation availability\_zones to EC2 API * Updating Authors * merge * Changes and error fixes to help ensure basic parity with the Rackspace API. Some features are still missing, such as shared ip groups, and will be added in a later patch set * initial lock functionality commit * Merged with trunk * Additional edits in nova.concepts.rst while waiting for script changes * Bug #694880: nova-compute now depends upon Cheetah even when not using libvirt * add ajax console proxy to nova.sh * merge trunk * Fix pep8 violations * add in unit tests * removed superfluous line * Address bug #695157 by using a blank request class and setting an empty request path * Defualt services to enabled * Address bug #695157 by using a blank request class and setting an empty request path * Add flag --enable\_new\_services to toggle default state of service when created * merge from trunk * This commit introduces scripts to apply XenServer host networking protections * Whoops * merge from upstream and fix conflicts * Update .mailmap with both email addresses for Ant and myself * Make action log available through Admin API * Merging trunk * Add some basic snapshot tests * Added get\_diagnostics placeholders to libvirt and fake * Merged trunk * Added InstanceAction DB functions * merge trunk * Bug #694890: run\_tests.sh sometimes doesn't pass arguments to nosetest * Output of run\_tests.sh to be closer to trial * I've added suspend along with a few changes to power state as well. I can't imagine suspend will be controversial but I've added a new power state for "suspended" to nova.compute.power\_states which libvirt doesn't use and updated the xenapi power mapping to use it for suspended state. I also updated the mappings in nova.api.openstack.servers to map PAUSED to "error" and SUSPENDED to "suspended". Thoughts there are that we don't currently (openstack API v1.0) use pause, so if somehow an instance were to be paused an error occurred somewhere, or someone did something in error. Either way asking the xenserver host for the status would show "paused". Support for more power states needs to be added to the next version of the openstack API * fixed a line length * Bug #694880: nova-compute now depends upon Cheetah even when not using libvirt * Bug #694890: run\_tests.sh sometimes doesn't pass arguments to nosetest * fix bug #lp694311 * Typo fix * Renamed based on feedback from another branch * Added stack command-line tool * missed a couple of gettext \_() * Cleans up nova.api.openstack.images and fix it to work with cloudservers api. Previously "cloudservers image-list" wouldn't work, now it will. There are mappings in place to handle s3 or glance/local image service. In the future when the local image service is working, we can probably drop the s3 mappings * Fixing snapshots, pep8 fixes * translate status was returning the wrong item * Fixing bad merge * Converted Volume model and operation to use UUIDs * inst -> item * syntax error * renaming things to be a bit more descriptive * Merging trunk * Converted instance references to GUID type * Added custom guid type so we can choose the most efficient backend DB type easily * backup schedule changes * Merged trunk * Merging trunk, fixing failed tests * A few fixes * removed \ * Moving README to doc/networking.rst per recommendation from Jay Pipes * Merged trunk * couple of pep8s * merge trunk * Fixed after Jay's review. Integrated code from Soren (we now use the same 'magic number' for images without kernel & ramdisk * Fixed pep8 errors * launch\_at を前回コミット時に追加したが、lauched\_atというカラムが既に存在し、 紛らわしいのでlauched\_onにした。 * logs inner exception in nova/utils.py->import\_class * Fix Bug #693963 * remove requirement of sudo on tests * merge trunk * Merge * adding zones to api * Support IPv6 * test commit * テスト項目表を再び追加した状態でコミット * テスト項目表をローカルから一度削除した状態でコミット * テスト項目表がなぜか消えたので追加 * nova.compute.managerがこれまでの修正でデグレしていたので修正 CPUID, その他のチェックルーチンをnova.scheduler.manager.live\_migrationに追加 * nova.compute.managerがこれまでの修正でデグレしていたので修正 CPUID, その他のチェックルーチンをnova.scheduler.manager.live\_migrationに追加 * Make nova work even when user has LANG or LC\_ALL configured * merged trunk, resolved trivial conflict * merged trunk, resolved conflict * Faked out handling for shared ip groups so they return something * another typo * applied power state conversion to test * trying again * typo * fixed the os api image test for glance * updated the xenstore methods to reflect that they write to the param record of xenstore, not the actual xenstore itself * fixed typo * Merged with trunk All tests passed Could not fix some pep8 errors in nova/virt/libvirt\_conn.py * fixed merge conflict * updated since dietz moved the limited function * fixed error occuring when tests used glance attributes, fixed docstrings * Merged again from trunk * fixed a few docstrings, added \_() for gettext * added \_() for gettext and a couple of pep8s * adds a reflection api * unit test - should be reworked * Moves implementation specific Openstack API code from the middleware to the drivers. Also cleans up a few areas and ensures all the API tests are passing again * PEP8 fix * One more time * Pep8 cleanup * Resolved merge conflict * Merged trunk * Trying to remove twisted dependencies, this gets everything working under nosetests * Merged Monty's branch * Merged trunk and resolved conflicts * Working diagnostics API; removed diagnostics DB model - not needed * merged trunk * merged trunk * Superfluous images include and added basic routes for shared ip groups * Simplifies and improves ldap schema * xenapi iscsi support + unittests * Fixed trunk and PEP8 cleanup * Merged trunk * Added reference in setup.py so that python setup.py test works now * merge lp:nova * better bin name, and pep8 * pep8 fixes * some pep8 fixes * removing xen/uml specific switches. If they need special treatment, we can add it * add license * delete xtra dir * move euca-get-ajax-console up one directory * merge trunk * move port range for ajaxterm to flag * more tweaks * add in license * some cleanup * rewrite proxy to not use twisted * added power state logging to nova.virt.xenapi.vm\_utils * added suspend as a power state * last merge trunk before push * merge trunk, fixed unittests, added i18n strings, cleanups etc etc * And the common module * minor notes, commit before rewriting proxy with eventlet * There were a few unclaimed addresses in mailmap * first merge after i18n * remove some notes * Add Ryan Lane as well * added tests to ensure the easy api works as a backend for Compute API * fix commits from Anthony and Vish that were committed with the wrong email * remove some yields that snuck in * merge from trunk * Basic Easy API functionality * Fixes reboot (and rescue) to work even if libvirt doesn't know about the instance and the network doesn't exist * merged trunk * Fixes reboot (and rescue) to work even if libvirt doesn't know about the instance and the network doesn't exist * Adds a flag to use the X-Forwarded-For header to find the ip of the remote server. This is needed when you have multiple api servers with a load balancing proxy in front. It is a flag that defaults to False because if you don't have a sanitizing proxy in front, users could masquerade as other ips by passing in the header manually * Got basic xenstore operations working * Merged trunk * Modified InstanceDiagnostics and truncate action * removed extra files * merged trunk * Moves the ip allocation requests to the from the api host into calls to the network host made from the compute host * pep8 fix * merged trunk and fixed conflicts * Accidentally yanked the datetime line in auth * remove extra files that slipped in * merged trunk * add missing flag * Optimize creation of nwfilter rules so they aren't constantly being recreated * use libvirt python bindings instead of system call * fixed more conflicts * merged trunk again * add in support of openstack api * merge trunk and upgrade to cheetah templating * Optimize nwfilter creation and project filter * Merging trunk * fixed conflicts * Adding more comments regarding XS snapshots * working connection security * WSGI middleware for lockout after failed authentications of ec2 access key * Modifies nova-network to recreate important data on start * Puts the creation of nova iptables chains into the source code and cleans up rule creation. This makes nova play more nicely with other iptables rules that may be created on the host * Forgot the copyright info * i18n support for xs-snaps * Finished moving the middleware layers and fixed the API tests again * Zone scheduler added * Moved some things for testing * Merging trunk * Abstracted auth and ratelimiting more * Getting Snapshots to work with cloudservers command-line tool * merge trunk * Minor bug fix * Populate user\_data field from run-instances call parameter, default to empty string to avoid metadata base64 decoding failure, LP: #691598 * Adding myself and Antony Messerli to the Authors file * Fixes per-project vpns (cloudpipe) and adds manage commands and support for certificate revocation * merge trunk * merge antonymesserli's changes, fixed some formatting, and added copyright notice * merged i8n and fixed conflicts * Added networking protections readme * Moved xenapi into xenserver specific directory * after trunk merge * Fixes documentation builds for gettext.. * committing so that I can merge trunk changes * Log all XenAPI actions to InstanceActions * Merged trunk * merging trunk * merging trunk * Fix doc building endpoint for gettext * All merged with trunk and let's see if a new merge prop (with no pre-req) works. * Problem was with a missplaced parentheses. ugh * Adding me in the Authors file * Populate user\_data field from run-instances call parameter, default to empty string to avoid metadata base64 decoding failure, LP: #691598 * connecting ajax proxy to rabbit to allow token based security * remove a debugging line * a few more fixes after merge with trunk * merging in trunk * move prototype code from api into compute worker * Burnin support by specifying a specific host via availability\_zone for running instances and volumes on * Merged trunk * This stops the nova-network dhcp ip from being added to all of the compute hosts * prototype works with kvm. now moving call from api to compute * Style correction * fix reboot command to work even if a host is rebooted * Filter templates and dom0 from list\_instances() * removed unused import and fix docstring * merge fakerabbit fix and turn fake back on for cloud unit tests * Reworked fakerabbit backend so each connection has it's own. Moved queues and exchanges to be globals * PEP8 cleanup * Refactored duplicate rpc.cast() calls in nova/compute/api.py. Cleaned up some formatting issues * Log all XenAPI actions * correct xenapi resume call * activate fake rabbit for debugging * change virtualization to not get network through project * update db/api.py as well * don't allocate networks when getting vpn info * Added InstanceDiagnostics and InstanceActions DB models * PEP8 cleanup * Merged trunk * merge trunk * 1) Merged from trunk 2) 'type' parameter in VMHelper.fetch\_image converted in enum 3) Fixed pep8 errors 4) Passed unit tests * Remove ec2 config chain and move openstack versions to top-level application * Use paste.deploy for running the api server * pep8 and removed extra imports * add missing greenthread import * add a few extra joined objects to get instance * remove extra print statements * Tests pass after cleaning up allocation process * Merging trunk * Typo fix, stubbing out to use admin project for now * Close devnull filehandle * added suspend and resume * Rewrite of vif\_rules.py to meet coding standards and be more pythonic in general. Use absolute paths for iptables/ebtables/arptables in host-rules * Add raw disk image support * Add my @linux2go.dk address to .mailmap * fixed some pep8 business * directly copy ip allocation into compute * Minor spellchecking fixes * Adds support for Pause and Unpause of xenserver instances * Make column names more generic * don't add the ip to bridge on compute hosts * PEP8 fixups * Added InstanceActions DB model * initial commit of xenserver host protections * Merged trunk * Fixed pep8 errors * Integrated changes from Soren (raw-disk-images). Updated authors file. All tests passed * pep8 (again again) * pep8 (again) * small clean up * テストコードをレポジトリに追加 nova.compute.manager.pre\_live\_migration()について、異常終了しているのに正常終了の戻り値を返すことがあったため変更 - 正常終了の戻り値をTrueに変更 - fixed\_ipが見つからないときにはRemoteErrorをraiseする - それに合わせてnova.compute.manager.live\_migrationも変更 * テストコードをレポジトリに追加 nova.compute.manager.pre\_live\_migration()について、異常終了しているのに正常終了の戻り値を返すことがあったため変更 - 正常終了の戻り値をTrueに変更 - fixed\_ipが見つからないときにはRemoteErrorをraiseする - それに合わせてnova.compute.manager.live\_migrationも変更 * Support proxying api by using X-Forwarded-For * eventlet merge updates * Cleaned up TODOs, using flags now * merge trunk and minor fix(for whatever reason validator\_unittest did not get removed from run\_test.py) * fixed unittests and further clean-up post-eventlet merge * All API tests finally pass * Removing unneeded Trial specific code * A few more tweaks to get the OS API tests passing * Adding new install script plus changes to multinode install doc * Removing unneeded Trial specific code * Replaced the use of redis in fakeldap with a customized dict class. Auth unittests should now run fine without a redis server running, or without python-redis installed * Adding Ed Leafe to Authors file * Some tweaks * Adding in Ed Leafe so we can land his remove-redis test branch * Add wait\_for\_vhd\_coalesce * Some typo fixes * pep8 cleanup * Fixed some old code that was merged incorrectly * Replaced redis with a modified dict class * bug fixes * first revision after eventlet merge. Currently xenapi-unittests are broken, but everything else seems to be running okay * Integrated eventlet\_merge patch * Code reviewed * XenAPI Snapshots first cut * Fixed network test (thanks Vish!) and fixed run\_tests.sh * First pass at converting run\_tests.py to nosetests. The network and objctstore tests don't yet work. Also, we need to manually remove the sqlite file between runs * remerged for pep8 * pep8 * merged in project-vpns to get flag changes * clean up use of iptables chains * move some flags around * add conditional bind to linux net * make sure all network data is recreated when nova-network is rebooted * merged trunk * merged trunk, fixed conflicts and tests * Added Instance Diagnostics DB model * Put flags back in nova.virt.xenapi/vm\_utils * Removed unnecessary blank lines * Put flags back in vm\_utils * This branch removes most of the dependencies on twisted and moves towards the plan described by https://blueprints.launchpad.net/nova/+spec/unified-service-architecture * pep8 fixes for bin * PEP8 cleanups * use getent, update docstring * pep8 fixes * reviewed the FIXMEs, and spotted an uncaught exception in volume\_utils...yay! * fixed a couple of more syntax errors * Moved implementation specific stuff from the middleware into their respective modules * typo * fixed up openstack api images index and detail * fake session clean-up * Removed FakeInstance and introduced stubout for DB. Code clean-up * removed extra stuff used for debugging * Restore code which was changed for testing reasons to the original state. Kudos to Armando for spotting this * Make nova work even when user has LANG or LC\_ALL configured * Merged changes from trunk into the branch * Hostテーブルのカラム名を修正 FlatManager, FlatDHCPManagerに対応 * merged with trunk. fixed compute.pause test * fixup after merge with trunk * memcached requires strings not unicode * Fix 688220 Added dependency on Twisted>=10.1.0 to pip-requires * Make sure we properly close the bzr WorkingTree in our Authors up-to-datedness unit test * fixes for xenapi (thanks sandywalsh) * clean up tests and add overriden time method to utils * merged from upstream * add missing import * Adding back in openssh-lpk schema, as keys will likely be stored in LDAP again * basic conversion of xs-pause to eventlet done * brougth clean-up from unittests branch and tests * I made pep8 happy * \* code cleanup \* revised unittest approach \* added stubout and a number of tests * clean up code to use timeout instead of two keys * final cleanup * Restore alphabetical order in Authors file * removed temporary comment lines * Lots of PEP-8 work * refresh\_security\_group renamed to refresh\_security\_group\_rules * added volume tests and extended fake to support them * Make sure the new, consolidated template gets included * Make sure we unlock the bzr tree again in the authors unit test * The ppa was moved. This updates nova.sh to reflect that * merged upstream * remove some logging * Merged from trunk and fixed merge issues. Also fixed pep8 issues * Lockout middleware for ec2 api * updates per review * Initial work on i18n. This adds the installation of the nova domain in gettext to all the "endpoints", which are all the bin/\* files and run\_tests.py * For some reason, I forgot to commit the other endpoints.. * Remove default\_{kernel,ramdisk} flags. They are not used anymore * Don't attempt to fiddle with partitions for whole-disk-images * pep8 * Includes architecture on register. Additionally removes a couple lines of cruft * nothing * nothing * nothing * support for pv guests (in progress) * merge trunk * Now that we have a templating engine, let's use it. Consolidate all the libvirt templates into one, extending the unit tests to make sure I didn't mess up * first cut of unittest framework for xenapi * Added my contacts to Authors file * final cleanup, after moving unittest work into another branch * fixup after merge with trunk * added callback param to fake\_conn * added not implemented stubs for libvirt * merge with trey tests * Fixed power state update with Twisted callback * simplified version using original logic * moving xenapi unittests changes into another branch * Adds support to the ec2 api for filtering describe volumes by volume\_ids * Added LiveCD info as well as some changes to reflect consolidation of .conf files * Fix exception throwing with wrong instance type * Add myself * removing imports that should have not been there * second round for unit testing framework * Added Twisted version dependency into pip-requires * only needs work for distinguishing pv from hvm * Move security group refresh logic into ComputeAPI * Refactored smoketests to use novarc environment and to separate user and admin specific tests * Changed OpenStack API auth layer to inject a RequestContext rather than building one everywhere we need it * Elaborate a bit on ipsets comment * Final round of marking translation strings * First round of i18n-ifying strings in Nova * Initial i18n commit for endpoints. All endpoints must install gettext, which injects the \_ function into the builtins * Fixed spelling errors in index.rst * fix pep8 * Includes kernel and ramdisk on register. Additinally removes a couple lines of cruft * port new patches * merge-a-tat-tat upstream to this branch * Format fixes and modification of Vish's email address * There is always the odd change that one forgets! * \* pylint fixes \* code clean-up \* first cut for xenapi unit tests * added pause and unpause to fake connection * merged changes from sandy's branch * added unittest for pause * add back utils.default\_flagflie * removed a few more references to twisted * formatting and naming cleanup * remove service and rename service\_eventlet to service * get service unittests runnning again * whitespace fix * make nova binaries use eventlet * Converted the instance table to use a uuid instead of a auto\_increment ID and a random internal\_id. I had to use a String(32) column with hex and not a String(16) with bytes because SQLAlchemy doesn't like non-unicode strings going in for String types. We could try another type, but I didn't want a primary\_key on blob types * remove debug messages * merge with trey * pause and unpause code/tests in place. To the point it stuffs request in the queue * import module and not classe directely as per Soren recommendation * Make XenServer VM diagnostics available through nova.virt.xenapi * Merged trunk * Added exception handling to get\_rrd() * Changed OpenStack API auth layer to inject a RequestContext rather than building one everywhere we need it * changed resume to unpause * Import module instead of function * filter describe volumes by supplied ids. Includes unittest * merging sandy's branch * Make get\_diagnostics async * raw instances can now be launched in xenapi (only as hvm at the moment) * pause from compute.manager <-> xenapi * Merged Armando's XenAPI fix * merge with trunk to pull in admin-api branch * Flag to define which operations are exposed in the OpenStack API, disabling all others * Fixed Authors conflict and re-merged with trunk * fixes exception throwing with wrong instance type * Ignore security group rules that reference foreign security groups * fixed how the XenAPI library is loaded * remove some unused files * port volume manager to eventlet also * intermediate commit to checkpoint progress * some pylint caught changes to compute * added to Authors * adds bzr to the list of dependencies in pip-require so that upon checkout using run\_tests.sh succeeds * merge conflict * merged upstream changes * add bzr to the dev dependencies * Fixed docstrings * Merged trunk * Got get\_diagnostics in working order * merged updates to trunk * merge trunk * typo fix * removing extraneous config ilnes * Finished cleaning up the openstack servers API, it no longer touches the database directly. Also cleaned up similar things in ec2 API and refactored a couple methods in nova.compute.api to accommodate this work * Pushed terminate instance and network manager/topic methods into network.compute.api * Merged trunk * Moved the reboot/rescue methods into nova.compute.api * PEP8 fixes * Setting the default schema version to the new schema * Adding support for choosing a schema version, so that users can more easily migrate from an old schema to the new schema * merged with trunk. All clear! * Removing novaProject from the schema. This change may look odd at first; here's how it works: * test commit * コメントを除去 README.live\_migration.txtのレビュー結果を修正 * This change adds better support for LDAP integration with pre-existing LDAP infrastructures. A new configuration option has been added to specify the LDAP driver should only modify/add/delete attributes for user entries * More pep8 fixes to remove deprecated functions * pep8 fix * Clarifying previously commited exception message * Raising an exception if the user doesn't exist before trying to modify its attributes * Removing redundant check * Added livecd instructions plus fixed references to .conf files * pylint fixes * Initial diagnostics import -- needs testing and cleanup * Added a script to use OpenDJ as an LDAP server instead of OpenLDAP. Also modified nova.sh to add an USE\_OPENDJ option, that will be checked when USE\_LDAP is set * Reverting last change * a few more things ironed out * Make sure Authors check also works for pending merges (otherwise stuff can get merged that will make the next merge fail this check) * It looks like Soren fixed the author file, can I hit the commit button? * merge trunk * Make sure Authors check also works for pending merges (otherwise stuff can get merged that will make the next merge fail this check) * Add a helpful error message to nova-manage in case of NoMoreNetworks * Add Ryan Lucio to Authors * Adding myself to the authors list * Add Ryan Lucio to Authors * Addresses bug 677475 by changing the DB column for internal\_id in the instances table to be unsigned * importing XenAPI module loaded late * Added docstring for get\_instances * small fixes on Exception handling * first test commit * and yet another pylint fix * fixed pylint violations that slipped out from a previous check * \* merged with lp:~armando-migliaccio/nova/xenapi-refactoring \* fixed pylint score \* complied with HACKING guidelines * addressed review comments, complied with HACKING guidelines * adding README.livemigration.txt * rev439ベースにライブマイグレーションの機能をマージ このバージョンはEBSなし、CPUフラグのチェックなし * modified a few files * Fixed conflicts with gundlach's fixes * Remove dead test code * Add iptables based security groups implementation * Merged gundlach's fixes * Don't wrap HTTPAccepted in a fault. Correctly pass kwargs to update\_instance * fixed import module in \_\_init\_\_.py * minor changes to docstrings * added interim solution for target discovery. Now info can either be passed via flags or discovered via iscsiadm. Long term solution is to add a few more fields to the db in the iscsi\_target table with the necessary info and modify the iscsi driver to set them * merge with lp:~armando-migliaccio/nova/xenapi-refactoring * merge trunk * moved XenAPI namespace definition into xenapi/\_\_init\_\_.py * pylint and pep8 fixes * Decreased the maximum value for instance-id generation from uint32 to int32 to avoid truncation when being entered into the instance table. Reverted fix to make internal\_id column a uint * Finished cleaning up the openstack servers API, it no longer touches the database directly. Also cleaned up similar things in ec2 API and refactored a couple methods in nova.compute.api to accomodate this work * Merged reboot-rescue into network-manager * Merged trunk * Fixes a missing step (nova-manage network create IP/nn n nn) in the single-node install guide * Tired of seeing various test files in bzr stat * Updated sqlalchemy model to make the internal\_id column of the instances table as unsigned integer * \* Removes unused schema \* Removes MUST uid from novaUser \* Changes isAdmin to isNovaAdmin \* Adds two new configuration options: \*\* ldap\_user\_id\_attribute, with a default of uid \*\* ldap\_user\_name\_attribute, with a default of cn \* ldapdriver.py has been modified to use these changes * Pushed terminate instance and network manager/topic methods into network.compute.api * Fix bugs that prevented OpenStack API from supporting server rename * pep8 * Use newfangled compute\_api * Update tests to use proper id * Fixing single node install doc * Oops, update 'display\_name', not 'name'. And un-extract-method * Correctly translate instance ids to internal\_ids in some spots we neglected * Added test files to be ignored * Consolidated the start instance logic in the two API classes into a single method. This also cleans up a number of small discrepencies between the two * Moved reboot/rescue methods into nova.compute.api * Merged trunk and resolved conflicts. Again * Instances are assigned a display\_name if one is not passed in -- and now, they're assigned a display\_name even if None is explicitly passed in (as the EC2 API does.) * Merged trunk and resolved conflicts * Default Instance.display\_name to a value even when None is explicitly passed in * Refactor nwfilter code somewhat. For iptables based firewalls, I still want to leave it to nwfilter to protect against arp, mac, and ip spoofing, so it needed a bit of a split * Add a helpful error message to nova-manage in case of NoMoreNetworks * minor refactoring after merge * merge lp:~armando-migliaccio/nova/refactoring * merge trunk * typo fix * moved flags into xenapi/novadeps.py * Add a simple abstraction for firewalls * fix nova.sh to reflect new location of ppa * Changed null\_kernel flag from aki-00000000 to nokernel * Guarantee that the OpenStack API's Server-related responses will always contain a "name" value. And get rid of a redundant field in models.py * Going for a record commits per line changes ratio * Oops, internal\_id isn't available until after a save. This code saves twice; if I moved it into the DB layer we could do it in one save. However, we're moving to one sqlite db per compute worker, so I'd rather have two saves in order to keep the logic in the right layer * Todd points out that the API doesn't require a display\_name, so let's make a default. That way the OpenStack API can rest assured that its server responses will always have a name key * Adds in more documentation contributions from Citrix * Remove duplicate field and make OpenStack API return server.name for EC2-API-created instances * Move cc\_host and cc\_port flags into nova/network/linux\_net.py. They weren't used anywhere else * Add include\_package\_data=True to setup.py * With utils.default\_flagfile() in its old location, the flagfile isn't being read -- twistd.serve() loads flags earlier than that point. Move the utils.default\_flagfile() call earlier so the flagfile is included * Removed a blank line * Broke parts of compute manager out into compute.api to separate what gets run on the API side vs the worker side * Move default\_flagfile() call to where it will be parsed in time to load the flagfile * minor refactoring * Move cc\_host and cc\_port flags into nova/network/linux\_net.py. They weren't used anywhere else * Added a script to use OpenDJ as an LDAP server instead of OpenLDAP. Also modified nova.sh to add an USE\_OPENDJ option, that will be checked when USE\_LDAP is set * Fixed termie's tiny bits from the prior merge request * Delete unused flag in nova.sh * Moving the openldap schema out of nova.sh into it's own files, and adding sun (opends/opendj/sun directory server/fedora ds) schema files * OpenStack API returns the wrong x-server-management-url. Fix that * Cleaned up pep8 errors * brought latest changes from trunk * iscsi volumes attach/detach complete. There is only one minor issue on how to discover targets from device\_path * Fix unit tests * Fix DescribeImages EC2 API call * merged Justin Santa Barbara's raw-disk-image back into the latest trunk * If only I weren't so lazy * Rename imageSet variable to images * remove FAKE\_subdomain reference * Return the correct server\_management\_url * Default flagfile moved in trunk recently. This updates nova.sh to run properly with the new flagfile location * Correctly handle imageId list passed to DescribeImages API call * update of nova.sh because default flagfile moved * merged trunk * Add a templating mechanism in the flag parsing * Adjust state\_path default setting so that api unit tests find things where they used to find them * Import string instead of importing Template from string. This is how we do things * brought the xenapi refactoring in plus trunk changes * changes * pep8 fixes and further round of refactoring * Rename cloudServersFault to computeFault -- I missed this Rackspace branding when we renamed nova.api.rackspace to nova.api.openstack * Make sure templated flags work across calls to ParseNewFlags * Add include\_package\_data=True to setup.py * fixed deps * first cut of the refactoring of the XenAPIConnection class. Currently the class merged both the code for managing the XenAPI connection and the business logic for implementing Nova operations. If left like this, it would eventually become difficult to read, maintain and extend. The file was getting kind of big and cluttered, so a quick refactoring now will save a lot of headaches later * other round of refactoring * further refactoring * typos and pep8 fixes * first cut of the refactoring of the XenAPIConnection class. Currently the class merged both the code for managing the XenAPI connection and the business logic for implementing Nova operations. If left like this, it would eventually become difficult to read, maintain and extend. The file was getting kind of big and cluttered, so a quick refactoring now will save a lot of headaches later * PEP fixes * Adding support for modification only of user accounts * This modification should have occured in a different branch. Reverting * added attach\_volume implementation * work on attach\_volume, with a few things to iron out * A few more changes: \* Fixed up some flags \* Put in an updated nova.sh \* Broke out metadata forwarding so it will work in flatdhcp mode \* Added descriptive docstrings explaining the networking modes in more detail * small conflict resolution * first cut of changes for the attach\_volume call * The image server should throw not found errors, don't need to check in compute manager * Consolidated the start instance logic in the two API classes into a single method. This also cleans up a number of small discrepencies between the two * Setting "name" back to "cn", since id and name should be separate * Adding support for modification only of user accounts * don't error on edge case where vpn has been launched but fails to get a network * Make sure all workers look for their flagfile in the same spot * Fix typo "nova.util" -> "nova.utils" * Fix typo "nova.util" -> "nova.utils" * Added a .mailmap that maps addresses in bzr to people's real, preferred e-mail addresses. (I made a few guesses along the way, feel free to adjust according to what is actually the preferred e-mail) * Add a placeholder in doc/build. Although bzr handles empty directories just fine, setuptools does not, so to actually ship this directory in the tarball, we need a file in it * Add a placeholder in doc/build. Although bzr handles empty directories just fine, setuptools does not, so to actually ship this directory in the tarball, we need a file in it * Merged trunk * pep8 * merged trunk, added recent nova.sh * fix typos in docstring * docstrings, more flags, breakout of metadata forwarding * doc/build was recently accidentally removed from VCS. This adds it back, which makes the docs build again * Add doc/build dir back to bzr * Make aws\_access\_key\_id and aws\_secret\_access\_key configurable * add vpn ping and optimize vpn list * Add an alias for Armando * the serial returned by x509 is already formatted in hex * Adding developer documentation - setting up dev environment and how to add to the OpenStack API * Add a --logdir flag that will be prepended to the logfile setting. This makes it easier to share a flagfile between multiple workers while still having separate log files * Address pep8 complaints * Address PEP8 complaints * Remove FAKE\_subdomain from docs * Adding more polish * Adding developer howtos * Remove FAKE\_subdomain from docs * Make aws\_access\_key\_id and aws\_secret\_access\_key configurable * updated nova.sh * added flat\_interface for flat\_dhcp binding * changed bridge\_dev to vlan\_interface * * Add a --logdir flag that will be prepended to the logfile setting. This makes it easier to share a flagfile between multiple workers while still having separate log files * added svg files (state.svg is missing because its source is a screen snapshot) * Unify the location of the default flagfile. Not all workers called utils.default\_flagfile, and nova-manage explicitly said to use the one in /etc/nova/nova-manage.conf * Set and use AMQP retry interval and max retry FLAGS * Incorporating security groups info * Rename cloudServersFault (rackspace branding) to computeFault. Fixes bug lp680285 * Use FLAGS instead of constants * Incorporating more networking info * Make time.sleep() non-blocking * Removed unnecessary continue * Update Authors and add a couple of names to .mailmap (from people who failed to set bzr whoami properly) * Refactor AMQP retry loop * Allows user to specify hosts to listen on for nova-api and -objectstore * Make sure all the libvirt templates are included in the tarball (by replacing the explicitly listed set with a glob pattern) * fixed pep8 violations * Set and use AMQP retry interval and max retry constants * pep8 violations fix * added placeholders * added test for invalid handles * Make sure all templates are included (at least rescue tempaltes didn't used to be included) * Check for running AMQP instances * Use logging.exception instead * Reverted some changes * Added some comments * Adds images (only links one in), start for a nova-manage man file, and also documents all nova-manage commands. Can we merge it in even though the man page build isn't working? * Added some comments * Check for running AMQP instances * first cut of fixes for bug #676128 * Removed .DS\_Store files everywhere, begone! * Moves the EC2 API S3 image service into nova.service. There is still work to be done to make the APIs align, but this is the first step * PEP8 fixes, 2 lines were too long * First step to getting the image APIs consolidated. The EC2 API was using a one-off S3 image service wrapper, but this should be moved into the nova.image space and use the same interface as the others. There are still some mismatches between the various image service implementations, but this patch was getting large and wanted to keep it within a resonable size * Improved Pylint Score * Fixes improper display of api error messages that happen to be unicode * Make sure that the response body is a string and not unicode * Soren updated setup.py so that the man page builds. Will continue working on man pages for nova-compute and nova-network * Overwrite build\_sphinx, making it run once for each of the html and man builders * fixes flatdhcp, updates nova.sh, allows for empty bridge device * Update version to 2011.1 as that is the version we expect to release next * really adding images * adding images * Documenting all nova-manage commands * Documenting all nova-manage commands * Fixes eventlet race condition in cloud tests * fix greenthread race conditions in trunk and floating ip leakage * Testing man page build through conf.py * Improved Pylint Score * adjusting images size and bulleted list * merged with trunk * small edit * Further editing and added images * Update version to 2011.1 as that is the version we expect to release next * ec2\_api commands for describe\_addresses and associate\_address are broken in trunk. This happened during the switch to ec2\_id and internal\_id. We clearly didn't have any unit tests for this, so I've added a couple in addition to the three line change to actually fix the bugs * delete floating ips after tests * remove extra line and ref. to LOG that doesn't exist * fix leaking floating ip from network unittests and use of fakeldap driver * Adds nova-debug to tools directory, for debugging of instances that lose networking * fixes errors in describe address and associate address. Adds test cases * Ryan\_Lane's code to handle /etc/network not existing when we try to inject /etc/network/interfaces into an image * pep8 * First dump of content related to Nova RPC and RabbitMQ * Add docstrings to any methods I touch * pep8 * PEP8 fixes * added myself to Authors file. Enjoy spiders * Changed from fine-grained operation control to binary admin on/off setting * Changed from fine-grained operation control to binary admin on/off setting * Lots of documentation and docstring updates * The docs are just going to be wrong for now. I'll file a bug upstream * Change how wsgified doc wrapping happens to fix test * merge to trunk * pep8 * Adding contributors and names * merge with trunk * base commit * saw a duplicate import ... statement in the code while reading through unit tests - this removes the dupe * removed redundant unit test import * add in bzr link * adding a bit more networking documentation * remove tab * fix title * tweak * Fix heading * merge in anne's changes * tweak * Just a few more edits, misspellings and the like * fix spacing to enable block * merge to remote * unify env syntax * Add sample puppet scripts * fix install guide * getting started * create SPHINX\_DEBUG env var. Setting this will disable aggressive autodoc generation. Also provide some sample for P syntax * fix conf file from earlier merge * notes, and add code to enable sorted "..todo:: P[1-5] xyz" syntax * merge in more networking docs - still a work in progress * anne's changes to the networking documentation * Updated Networking doc * anne gentle's changes to community page * merge in heckj's corrections to multi-node install * Added a .mailmap that maps addresses in bzr to people's real, preferred e-mail addresses. (I made a few guesses along the way, feel free to adjust according to what is actually the preferred e-mail) * Updated community.rst to fix a link to the IRC logs * merging in changes from ~anso/nova/trunkdoc * fixed another spacing typo causing poor rendering * fixed spacing typo causing poor rendering * merge in anne's work * add docs for ubuntu 4, 10, others * Updated Cloud101 and admonition color * merge heckj's multi install notes * working on single node install * updating install notes to reference Vish' nova.sh and installing in MYSQL * Add Flat mode doc * Add Flat mode doc * Add Flat mode doc * Add VLAN Mode doc * Add VLAN Mode doc * merge in anne's changes * home page tweaks * Updated CSS and community.rst file * modifications and additions based on doc sprint * incorporate some feedback from todd and anne * merge in trunk * working on novadoc structure * add some info on authentication and keys * Since we're autodocumenting from a sphinx ext, we can scrap it in Makefile * Use the autodoc tools in the setup.py build\_sphinx toolchain * Fix include paths so setup.py build\_sphinx works again * Cleanups to doc process * quieter doc building (less warnings) * File moves from "merge" of termie's branch * back out stacked merge * Doc updates: \* quieter build (fewer warnings) \* move api reference out of root directory \* auto glob api reference into a TOC \* remove old dev entries for new-fangled auto-generated docs * Normalization of Dev reference docs * Switch to module-per-file for the module index * Allow case-by-case overriding of autodocs * add exec flags, apparently bzr shelve/unshelve does not keep track of them * Build autodocs for all our libraries * add dmz to flags and change a couple defaults * Per-project vpns, certificates, and revocation * remove finished todo * Fix docstrings for wsigfied methods * fix default twitter username * shrink tweet text a bit * Document nova.sh environment * add twitter feed to the home page * Community contact info * small tweaks before context switch * use include to grab todd's quickstart * add in custom todo, and custom css * Format TODO items for sphinx todo extension * additions to home page * Change order of secions so puppeting is last, add more initial setup tasks * update types of services that may run on machines * Change directory structure for great justice! * Refactored smoketests to use novarc environment and to separate user and admin specific tests * start adding info to multi-node admin guide * document purpose of documentation * Getting Started Guide * Nova quickstart: move vish's novascript into contrib, and convert reademe.md to a quickstart.rst * merge trunk * Add a templating mechanism in the flag parsing. Add a state\_path flag that will be used as the top-level dir for all other state (such as images, instances, buckets, networks, etc). This way you only need to change one flag to put all your state in e.g. /var/lib/nova * add missing file * Cleanup nova-manage section * have "contents" look the same as other headings * Enables the exclusive flag for DirectConsumer queues * Ensures that keys for context from the queue are passed to the context constructor as strings. This prevents hangs on older versions of python that can't handle unicode kwargs * Fix for bug #640400, enables the exclusive flag on the temporary queues * pep8 whitespace and line length fixes * make sure context keys are not unicode so they can be passed as kwargs * merged trunk * merged source * prettier theme * Added an extra argument to the objectstore listen to separate out the listening host from the connecting host * Change socket type in nova.utils.get\_my\_ip() to SOCK\_DGRAM. This way, we don't actually have to set up a connection. Also, change the destination host to an IP (chose one of Google's DNS's at random) rather than a hostname, so we avoid doing a DNS lookup * Fix for bug#613264, allowing hosts to be specified for nova-api and objectstore listeners * Fixes issue with security groups not being associated with instances * Doc cleanups * Fix flags help display * Change socket type in nova.utils.get\_my\_ip() to SOCK\_DGRAM. This way, we don't actually have to set up a connection. Also, change the destination host to an IP (chose one of Google's DNS's at random) rather than a hostname, so we avoid doing a DNS lookup * ISCSI Volume support * merged * more descriptive title for cloudpipe * update of the architecture and fix some links * Fixes after trunk merge * removed some old instructions and updated concepts * merge * Documentation on Services, Managers, and Drivers * Document final undocumented python modules * merged trunk * cloudpipe docs * Fixed --help display for non-twisted bin/\* commands * Adds support for multiple API ports, one for each API type (OS, EC2) * Fixed tests to work with new default API argument * Added support for OpenStack and EC2 APIs to run on different ports * More docs * Language change for conformity * Add ec2 api docs * Exceptions docs * API endpoint documentation * basics to get proxied ajaxterm working with virsh * :noindex: on the fakes page for virt.fakes which is included in compute.rst * Virt documentation * Change retrieval of security groups from kwargs so they are associated properly and add test to verify * don't check for vgroup in fake mode * merged trunk, just in case * Update compute/disk.py docs * Change volume TODO list * Volume documentation * Remove fakes duplication * Update database docs * Add support for google analytics to only the hudson-produced docs * Changes to conf.py * Updated location of layout.html and change conf.py to use a build variable * Update database page a bit * Fakes cleanup (stop duplicate autodoc of FakeAOEDriver) * Document Fakes * Remove "nova Packages and Dependencies" * Finished TODO item * Pep-257 * Pep-257 cleanups * Clean up todos and the like for docs * A shell script for showing modules that aren't documented in .rst files * merge trunkdoc * link binaries section to concepts * :func: links to python functions in the documentation * Todo cleanups in docs * cleanup todos * fix title levels * wip architecture, a few auth formatting fixes, binaries, and overview * volume cleanups * Remove objectstore, not referenced anywhere * Clean up volumes / storage info * Moves db writes into compute manager class. Cleans up sqlalchemy model/api to remove redundant calls for updating what is really a dict * Another heading was too distracting, use instead * Fix underlining -> heading in rst file * Whitespace and docstring cleanups * Remove outdated endpoint documentation * Clean up indentation error by preformatting * Add missing rst file * clean up the compute documentation a bit * Remove unused updated\_data variable * Fix wiki link * added nova-manage docs * merged and fixed conflicts * updates to auth, concepts, and network, fix of docstring * cleanup rrd doc generation * Doc skeleton from collaborative etherpad hack session * OK, let's try this one more time * Doc updates * updates from review, fix models.get and note about exception raising * Style cleanups and review from Eric * New structure for documentation * Fixes PEP8 violations from the last few merges * More PEP8 fixes that were introduced in the last couple commits * Adding Google Analytics code to nova.openstack.org * Fixes service unit tests after tornado excision * Added Google Analytics code * renamed target\_id to iscsi\_target * merged gundlach's excision * Oops, didn't mean to check this one in. Ninja-patch * Delete BaseTestCase and with it the last reference to tornado * fix completely broken ServiceTestCase * Removes some cruft from sqlalchemy/models.py like unused imports and the unused str\_id method * Adds rescue and unrescue commands * actually remove the conditional * fix tests by removing missed reference to prefix and unnecessary conditional in generate\_uid * Making net injection create /etc/network if non-existant * Documentation was missing; added * Moving the openldap schema out of nova.sh into it's own files, and adding sun (opends/opendj/sun directory server/fedora ds) schema files * validates device parameter for attach-volume * add nova-debug to setup.py * nova-debug, relaunch an instance with a serial console * Remove the last vestigial bits of tornado code still in use * pep8 cleanup * print the exception on fail, because it doesn't seem to reraise it * use libvirt connection for attaching disks and avoid the symlink * update error message * Exceptions in the OpenStack API will be converted to Faults as they should be, rather than barfing a stack trace to the user * pep8 * pep8 * Duplicate the two trivial escaping functions remaining from tornado's code and remove the dependency * more bugfixes, flag for local volumes * fix bugs, describe volumes, detach on terminate * ISCSI Volume support * Removed unused imports and left over references to str\_id * logging.warn not raise logging.Warn * whitespace * move create\_console to cloud.py from admin.py * merge lp:nova * add NotFound to fake.py and document it * add in the xen rescue template * pep 8 cleanup and typo in resize * add methods to cloud for rescue and unrescue * update tests * merged trunk and fixed conflicts/changes * part way through porting the codebase off of twisted * Another pep8 cleanup branch for nova/tests, should be merged after lp:~eday/nova/pep8-fixes-other. After this, the pep8 violation count is 0! * Changes block size for dd to a reasonable number * Another pep8 cleanup branch for nova/api, should be merged after lp:~eday/nova/pep8-fixes 2010.1 ------ * Created Authors file * Actually adding Authors file * Created Authors file and added to manifest for Austin Release * speed up disk generation by increasing block size * PEP8 cleanup in nova/tests, except for tests. There should be no functional changes here, just style changes to get violations down * PEP8 cleanup in nova/\*, except for tests. There should be no functional changes here, just style changes to get violations down * PEP8 cleanup in nova/db. There should be no functional changes here, just style changes to get violations down * PEP8 cleanup in nova/api. There should be no functional changes here, just style changes to get violations down * PEP8 and pylint cleanup. There should be no functional changes here, just style changes to get violations down * Moves db writes into compute manager class. Cleans up sqlalchemy model/api to remove redundant calls for updating what is really a dict * validate device in AttachDisk * Cleanup of doc for dependencies (redis optional, remove tornado, etc). Please check for accuracy * Delays the creation of the looping calls that that check the queue until startService is called * Made updates based on review comments * Authorize image access instead of just blindly giving it away * Checks the pid of dnsmasq to make sure it is actually referring to the right process * change boto version from 1.9b1 to 1.9b in pip-requires * Check the pid to make sure it refers to the correct dnsmasq process * make sure looping calls are created after service starts and add some tests to verify service delegation works * fix typo in boto line of pip-requires * Updated documentation * Update version set in setup.py to 2010.1 in preparation for Austin release * Also update version in docs * Update version to 2010.1 in preparation for Austin release * \* Fills out the Parallax/Glance API calls for update/create/delete and adds unit tests for them. \* Modifies the ImageController and GlanceImageService/LocalImageService calls to use index and detail routes to comply perfectly with the RS/OpenStack API * Makes disk.partition resize root drive to 10G, unless it is m1.tiny which just leaves it as is. Larger images are just used as is * reverted python-boto version in pip-requires to 1.9b1 * Construct exception instead of raising a class * Authorize Image before download * Add unit test for XML requests converting errors to Faults * Fixes https://bugs.launchpad.net/nova/+bug/663551 by catching exceptions at the top level of the API and turning them into Faults * Adds reasonable default local storage gb to instance sizes * reverted python-boto version in pip-requires to 1.9b1.\ * Fix typo in test case * Remember to call limited() on detail() in image controller * Makes nova-dhcpbridge notify nova-network on old network lease updates * add reasonable gb to instance types * it is flags.DEFINE\_integer, not FLAGS.define\_int * Makes disk.partition resize root drive to 10G, unless it is m1.tiny which just leaves it as is. Larger images are just used as is * update leases on old leases as well * Adds a simple nova-manage command called scrub to deallocate the network and remove security groups for a projeect * Refresh MANIFEST.in to make the tarball include all the stuff that belongs in the tarball * Added test case to reproduce bug #660668 and provided a fix by using the user\_id from the auth layer instead of the username header * Add the last few things to MANIFEST.in * Also add Xen template to manifest * Fix two problems with get\_console\_log: \* libvirt has this annoying "feature" where it chown()s your console to the uid running libvirt. That gets in the way of reading it. Add a call to "sudo chown ...." right before we read it to make sure it works out well. \* We were looking in the wrong directory for console.log. \*blush\* * This branch converts incoming data to the api into the proper type * Fixes deprecated use of context in nova-manage network create * Add a bunch of stuff to MANIFEST.in that has been added to the tree over the last couple of months * Fix the --help flag for printing help on twistd-based services * Fix two problems with get\_console\_log: libvirt has this annoying "feature" where it chown()s your console to the uid running libvirt. That gets in the way of reading it. We were looking in the wrong directory for console.log. \*blush\* * Fix for bug 660818 by adding the resource ID argument * Reorg the image services code to push glance stuff into its own directory * Fix some unit tests: \* One is a race due to the polling nature of rpc in eventlet based unit tests. \* The other is a more real problem. It was caused by datastore.py being removed. It wasn't caught earlier because the .pyc file was still around on the tarmac box * Add a greenthread.sleep(0.3) in get\_console\_output unit test. This is needed because, for eventlet based unit tests, rpc polls, and there's a bit of a race. We need to fix this properly later on * Perform a redisectomy on bin/nova-dhcpbridge * Removed 'and True' oddity * use context for create\_networks * Make Redis completely optional: * make --help work for twistd-based services * trivial style change * prevent leakage of FLAGS changes across tests * run\_tests.sh presents a prompt: * Also accept 'y' * A few more fixes for deprecations * make run\_tests.sh's default perform as expected * Added test case to reproduce bug #660668 and provided a fix by using the user\_id from the auth layer instead of the username header * get flags for nova-manage and fix a couple more deprecations * Fix for bug#660818, allows tests to pass since delete expects a resource ID * This branch modifies the fixes all of the deprecation warnings about empty context. It does this by adding the following fixes/features \* promotes api/context.py to context.py because it is used by the whole system \* adds more information to the context object \* passes the context through rpc \* adds a helper method for promoting to admin context (elevate()) \* modifies most checks to use context.project\_id instead of context.project.id to avoid trips to the database * timestamps are passed as unicode * Removed stray spaces that were causing an unnecessary diff line * merged trunk * Minimized diff, fixed formatting * remove nonexistent exception * Merged with trunk, fixed broken stuff * revert to generic exceptions * fix indent * Fixes LP Bug#660095 * Move Redis code into fakeldap, since it's the only thing that still uses it. Adjust auth unittests to skip fakeldap tests if Redis isn't around. Adjust auth unittests to actually run the fakeldap tests if Redis /is/ around * fix nosetests * Fixes a few concurrency issues with creating volumes and instances. Most importantly it adds retries to a number of the volume shell commands and it adds a unique constraint on export\_devices and a safe create so that there aren't multiple copies of export devices in the database * unit tests and fix * call stuff project\_id instead of project * review fixes * fix context in bin files * add scrub command to clean up networks and sec groups * merged trunk * merged concurrency * review comments * Added a unit test but not integrated it * merged trunk * fix remaining tests * cleaned up most of the issues * remove accidental paste * use context.project\_id because it is more efficient * elevate in proper places, fix a couple of typos * merged trunk * Fixes bug 660115 * Address cerberus's comment * Fix several problems keeping AuthMiddleware from functioning in the OpenStack API * Implement the REST calls for create/update/delete in Glance * Adds unit test for WSGI image controller for OpenStack API using Glance Service * Fixes LP Bug#660095 * Xen support * Adds flat networking + dhcpserver mode * This patch removes the ugly network\_index that is used by VlanManager and turns network itself into a pool. It adds support for creating the networks through an api command: nova-manage network create # creates all of the networks defined by flags or nova-manage network create 5 # create the first five networks * Newlines again, reorder imports * Remove extraneous newlines * Fix typo, fix import * merged upstream * cleanup leftover addresses * super teardown * fix tests * merged trunk * merged trunk * merged trunk * merged trunk * Revert the conversion to 64-bit ints stored in a PickleType column, because PickleType is incompatible with having a unique constraint * Revert 64 bit storage and use 32 bit again. I didn't notice that we verify that randomly created uids don't already exist in the DB, so the chance of collision isn't really an issue until we get to tens of thousands of machines. Even then we should only expect a few retries before finding a free ID * Add design doc, docstrings, document hyper-v wmi, python wmi usage. Adhere to pep-8 more closely * This patch adds support for EC2 security groups using libvirt's nwfilter mechanism, which in turn uses iptables and ebtables on the individual compute nodes. This has a number of benefits: \* Inter-VM network traffic can take the fastest route through the network without our having to worry about getting it through a central firewall. \* Not relying on a central firewall also removes a potential SPOF. \* The filtering load is distributed, offering great scalability * Change internal\_id from a 32 bit int to a 64 bit int * 32 bit internal\_ids become 64 bit. Since there is no 64 bit native type in SqlAlchemy, we use PickleType which uses the Binary SqlAlchemy type under the hood * Make Instance.name a string again instead of an integer * Now that the ec2 id is not the same as the name of the instance, don't compare internal\_id [nee ec2\_id] to instance names provided by the virtualization driver. Compare names directly instead * Fix bug 659330 * Catch exception.NotFound when getting project VPN data * Improve the virt unit tests * Remove spurious project\_id addition to KeyPair model * APIRequestContext.admin is no more. * Rename ec2\_id\_list back to instance\_id to conform to EC2 argument spec * Fix bug 657001 (rename all Rackspace references to OpenStack references) * Extracts the kernel and ramdisk id from manifests and puts in into images' metadata * Fix EC2 GetConsoleOutput method and add unit tests for it * Rename rsapi to osapi, and make the default subdomain for OpenStack API calls be 'api' instead of 'rs' * Fix bug 658444 * Adds --force option to run\_tests.sh to clear virtualenv. Useful when dependencies change * If machine manifest includes a kernel and/or ramdisk id, include it in the image's metadata * Rename ec2 get\_console\_output's instance ID argument to 'instance\_id'. It's passed as a kwarg, based on key in the http query, so it must be named this way * if using local copy (use\_s3=false) we need to know where to find the image * curl not available on Windows for s3 download. also os-agnostic local copy * Register the Hyper-V module into the list of virt modules * hyper-v driver created * Twisted pidfile and other flag parameters simply do not function on Windows * Renames every instance of "rackspace" in the API and test code base. Also includes a minor patch for the API Servers controller to use images correctly in the absence of Glance * That's what I get for not using a good vimrc * Mass renaming * Start stripping out the translators * Remove redis dependency from RS Images API * Remove redis dependency from Images controller * Since FLAGS.images\_path was not set for nova-compute, I could not launch instances due to an exception at \_fetch\_local\_image() trying to access to it. I think that this is the reason of Bug655217 * Imported images\_path from nova.objectstore for nova-compute. Without its setting, it fails to launch instances by exception at \_fetch\_local\_image * Defined images\_path for nova-compute. Without its setting, it fails to launch instances by exception at \_fetch\_local\_image * Cleans up a broken servers unit test * Huge sweeping changes * Adds stubs and tests for GlanceImageService and LocalImageService. Adds basic plumbing for ParallaxClient and TellerClient and hooks that into the GlanceImageService * Typo * Missed an ec2\_id conversion to internal\_id * Cleanup around the rackspace API for the ec2 to internal\_id transition * merge prop fixes * A little more clean up * Replace model.Instance.ec2\_id with an integer internal\_id so that both APIs can represent the ID to external users * Fix clause comparing id to internal\_id * Adds unit test for calling show() on a non-existing image. Changes return from real Parallax service per sirp's recommendation for actual returned dict() values * Remove debugging code, and move import to the top * Make (some) cloud unit tests run without a full-blown set up * Stub out ec2.images.list() for unit tests * Make rpc calls work in unit tests by adding extra declare\_consumer and consume methods on the FakeRabbit backend * Add a connect\_to\_eventlet method * Un-twistedify get\_console\_ouptut * Create and destroy user appropriately. Remove security group related tests (since they haven't been merged yet) * Run the virt tests by default * Keep handles to loggers open after daemonizing * merged trunk and fixed tests * Cleans up the unit tests that are meant to be run with nosetests * Update Parallax default port number to match Glance * One last bad line * merge from gundlach ec2 conversion * Adds ParallaxClient and TellerClient plumbing for GlanceImageService. Adds stubs FakeParallaxClient and unit tests for LocalImageService and GlanceImageService * Fix broken unit tests * Matches changes in the database / model layer with corresponding fixes to nova.virt.xenapi * Replace the embarrasingly crude string based tests for to\_xml with some more sensible ElementTree based stuff * A shiny, new Auth driver backed by SQLAlchemy. Read it and weep. I did * Move manager\_class instantiation and db.service\_\* calls out of nova.service.Service.\_\_init\_\_ into a new nova.service.Service.startService method which gets called by twisted. This delays opening db connections (and thus sqlite file creation) until after privileges have been shed by twisted * Add pylint thingamajig for startService (name defined by Twisted) * Revert r312 * Add a context of None to the call to db.instance\_get\_all * Honour the --verbose flag by setting the logging level to DEBUG * Accidentally renamed volume related stuff * More clean up and conflict resolution * Move manager\_class instantiation and db.service\_\* calls out of nova.service.Service.\_\_init\_\_ into a new nova.service.Service.startService method which gets called by twisted. This delays opening db connections (and thus sqlite file creation) until after privileges have been shed by twisted * Bug #653560: AttributeError in VlanManager.periodic\_tasks * Bug #653534: NameError on session\_get in sqlalchemy.api.service\_update * Fixes to address the following issues: * s/APIRequestContext/get\_admin\_context/ <-- sudo for request contexts * Bug #654034: nova-manage doesn't honour --verbose flag * Bug #654025: nova-manage project zip and nova-manage vpn list broken by change in DB semantics when networks are missing * Bug #654023: nova-manage vpn commands broken, resulting in erroneous "Wrong number of arguments supplied" message * fix typo in setup\_compute\_network * pack and unpack context * add missing to\_dict * Bug #653651: XenAPI support completely broken by orm-refactor merge * Bug #653560: AttributeError in VlanManager.periodic\_tasks * Bug #653534: NameError on session\_get in sqlalchemy.api.service\_update * Adjust db api usage according to recent refactoring * Make \_dhcp\_file ensure the existence of the directory containing the files it returns * Keep handles to loggers open after daemonizing * Adds BaseImageService and flag to control image service loading. Adds unit test for local image service * Cleans up the unit tests that are meant to be run with nosetests * Refactor sqlalchemy api to perform contextual authorization * automatically convert strings passed into the api into their respective original values * Fix the deprecation warnings for passing no context * Address a few comments from Todd * Merged trunk * Locked down fixed ips and improved network tests * merged remove-network-index * Fixed flat network manager with network index gone * merged trunk * show project ids for groups instead of user ids * create a new manager for flat networking including dhcp * First attempt at a uuid generator -- but we've lost a 'topic' input so i don't know what that did * Find other places in the code that used ec2\_id or get\_instance\_by\_ec2\_id and use internal\_id as appropriate * Convert EC2 cloud.py from assuming that EC2 IDs are stored directly in the database, to assuming that EC2 IDs should be converted to internal IDs * Method cleanup and fixing the servers tests * merged trunk, removed extra quotas * Adds support for periodic\_tasks on manager that are regularly called by the service and recovers fixed\_ips that didn't get disassociated properly * Replace database instance 'ec2\_id' with 'internal\_id' throughout the nova.db package. internal\_id is now an integer -- we need to figure out how to make this a bigint or something * merged trunk * refactoring * refactoring * Includes changes for creating instances via the Rackspace API. Utilizes much of the existing EC2 functionality to power the Rackspace side of things, at least for now * Get rid of mention of mongo, since we are using openstack/swift * Mongo bad, swift good * Add a DB backend for auth manager * Bug #652103: NameError in exception handler in sqlalchemy API layer * Bug #652103: NameError in exception handler in sqlalchemy API layer * Bug #651887: xenapi list\_instances completely broken * Grabbed the wrong copyright info * Cleaned up db/api.py * Refactored APIRequestContext * Bug #651887: xenapi list\_instances completely broken * Simplified authorization with decorators" " * Removed deprecated bits from NovaBase * Wired up context auth for keypairs * Completed quota context auth * Finished context auth for network * Finished instance context auth * Finished instance context auth * Made network tests pass again * Whoops, forgot the exception handling bit * Missed a few attributes while mirroring the ec2 instance spin up * pylint and pep8 cleanup * Forgot the context module * Some minor cleanup * Servers stuff * merge rsapi\_reboot from gundlach * Wired up context auth for services * Server creation up to, but not including, network configuration * Progress on volumes Fixed foreign keys to respect deleted flag * Support reboot in api.rackspace by extracting reboot function from api.ec2 into api.cloud * Make Fault raiseable, and add a test to verify that * Make Fault raiseable by inheriting from webob.exc.HTTPException * Related: https://code.launchpad.net/~anso/nova/authupdate/+merge/36925 * Remove debuggish print statement * Make update work correctly * Server update name and password * Support the pagination interface in RS API -- the &offset and &limit parameters are now recognized * Update from trunk to handle one-line merge conflict * Support fault notation in error messages in the RS API * Limit entity lists by &offset and &limit * After update from trunk, a few more exceptions that need to be converted to Faults * fix ordering of rules to actually allow out and drop in * fix the primary and secondary join * autocreate the models and use security\_groups * Began wiring up context authorization * Apply patch from Vish to fix a hardcoded id in the unit tests * removed a few extra items * merged with soren's branch * fix loading to ignore deleted items * Add user-editable name & notes/description to volumes, instances, and images * merged trunk * patch for test * fix join and misnamed method * fix eagerload to be joins that filter by deleted == False * \* Create an AuthManager#update\_user method to change keys and admin status. \* Refactor the auth\_unittest to not care about test order \* Expose the update\_user method via nova-manage * Updates the fix-iptables branch with a number of bugfixes * Fixes reversed arguments in nova-manage project environment * Makes sure that multiple copies of nova-network don't create multiple copies of the same NetworkIndex * Fix a few errors in api calls related to mistyped database methods for floating\_ips: specifically describe addresses and and associate address * Merged Termie's branch that starts tornado removal and fixed rpc test cases for twisted. Nothing is testing the Eventlet version of rpc.call though yet * Adds bpython support to nova-manage shell, because it is super sexy * Adds a disabled flag to service model and check for it when scheduling instances and volumes * Adds bpython support to nova-manage shell, because it is super sexy * Added random ec2 style id's for volumes and instances * fix security group revoke * Fixed tests * Removed str\_id from FixedIp references * missed a comma * improved commenting * Fault support * fix flag defaults * typo s/boo/bool * merged and removed duplicated methods * fixed merge conflicts * removed extra code that slipped in from a test branch * Fixed name property on instance model * Implementation of the Rackspace servers API controller * Added checks for uniqueness for ec2 id * fix test for editable image * Add authorization info for cloud endpoints * Remove TODO, since apparently newer boto doesn't die on extra fields * add disabled column to services and check for it in scheduler * Hook the AuthManger#modify\_user method into nova-manage commands * Refactored adminclient to support multiple regions * merged network-lease-fix * merged floating-ips * move default group creation to api * Implemented random instance and volume strings for ec2 api * Adds --force option to run\_tests.sh to clear virtualenv. Useful when dependencies change * merge from trunk * Instance & Image renaming fixes * merge from gundlach * Testing testing testing * get rid of network indexes and make networks into a pool * Add Serializer.deserialize(xml\_or\_json\_string) * merged trunk * return a value if possible from export\_device\_create\_safe * merged floating-ip-by-project * merged network-lease-fix * merged trunk * Stop trying to install nova-api-new (it's gone). Install nova-scheduler * Call out to 'sudo kill' instead of using os.kill. dnsmasq runs as root or nobody, nova may or may not be running as root, so os.kill won't work * Make sure we also start dnsmasq on startup if we're managing networks * Improve unit tests for network filtering. It now tracks recursive filter dependencies, so even if we change the filter layering, it still correctly checks for the presence of the arp, mac, and ip spoofing filters * Make sure arguments to string format are in the correct order * Make the incoming blocking rules take precedence over the output accept rules * db api call to get instances by user and user checking in each of the server actions * More cleanup, backup\_schedules controller, server details and the beginnings of the servers action route * This is getting ridiculous * Power state mapping * Set priority of security group rules to 300 to make sure they override the defaults * Recreate ensure\_security\_group\_filter. Needed for refresh * Clean up nwfilter code. Move our filters into the ipv4 chain * If neither a security group nor a cidr has been passed, assume cidr=0.0.0.0/0 * More re-work around the ORM changes and testing * Support content type detection in serializer * If an instance never got scheduled for whatever reason, its host will turn up as None. Filter those out to make sure refresh works * Only call \_on\_set\_network\_host on nova-network hosts * Allow DHCP requests through, pass the IP of the gateway as the dhcp server * Add a flag the specifies where to find nova-dhcpbridge * Ensure dnsmasq can read updates to dnsmasq conffile * Set up network at manager instantiation time to ensure we're ready to handle the networks we're already supposed to handle * Add db api methods for retrieving the networks for which a host is the designated network host * Apply IP configuration to bridge regardless of whether it existed before. The fixes a race condition on hosts running both compute and network where, if compute got there first, it would set up the bridge, but not do IP configuration (because that's meant to happen on the network host), and when network came around, it would see the interface already there and not configure it further * Removed extra logging from debugging * reorganize iptables clear and make sure use\_nova\_chains is a boolean * allow in and out for network and compute hosts * Modification of test stubbing to match new domain requirements for the router, and removal of the unnecessary rackspace base controller * Minor changes to be committed so trunk can be merged in * disable output drop for the moment because it is too restrictive * add forwarding ACCEPT for outgoing packets on compute host * fix a few missed calls to \_confirm\_rule and 80 char issues * allow mgmt ip access to api * flush the nova chains * Test the AuthManager interface explicitly, in case the user/project wrappers fail or change at some point. Those interfaces should be tested on their own * Update auth manager to have a update\_user method and better tests * add a reset command * Merged Termie's branch and fixed rpc test cases for tesited. Nothing is testing the Eventlet version of rpc.call though yet * improved the shell script for iptables * Finished making admin client work for multi-region * Install nova-scheduler * nova-api-new is no more. Don't attempt to install it * Add multi region support for adminclient * Merging in changes from rs\_auth, since I needed something modern to develop on while waiting for Hudson to right itself * whatever * Put EC2 API -> eventlet back into trunk, fixing the bits that I missed when I put it into trunk on 9/21 * Apply vish's patch * Applied vish's fixes * Implementation of Rackspace token based authentication for the Openstack API * fixed a few missing params from iptables rules * removed extra line in manage * made use of nova\_ chains a flag and fixed a few typos * put setup\_iptables in the right dir * Fixed rpc consumer to use unique return connection to prevent overlap. This could be reworked to share a connection, but it should be a wait operation and not a fast poll like it was before. We could also keep a cache of opened connections to be used between requests * fixed a couple of typos * Re-added the ramdisk line I accidentally removed * Added a primary\_key to AuthToken, fixed some unbound variables, and now all unit tests pass * Missed the model include, and fixed a broken test after the merge * Some more refactoring and another unit test * Refactored the auth branch based on review feedback * Replaced the existing Rackspace Auth Mechanism with one that mirrors the implementation in the design document * Merged gundlach's branch * renamed ipchains to iptables * merged trunk * Fixed cloudpipe lib init * merged fix-iptables * When calculating timedeltas make sure both timestamps are in UTC. For people ahead of UTC, it makes the scheduler unit tests pass. For people behind UTC, it makes their services time out after 60 seconds without a heart beat rather than X hours and 60 seconds without a heart beat (where X is the number of hours they're behind UTC) * Spot-fix endpoint reference * Wrap WSGI container in server.serve to make it properly handle command line arguments as well as daemonise properly. Moved api and wsgi imports in the main() function to delay their inclusion until after python-daemon has closed all the file descriptors. Without this, eventlet's epoll fd gets opened before daemonize is called and thus its fd gets closed leading to very, very, very confusing errors * Apply vish's patch * Added FLAGS.FAKE\_subdomain letting you manually set the subdomain for testing on localhost * Address Vishy's comments * All timestamps should be in UTC. Without this patch, the scheduler unit tests fail for anyone sufficiently East of Greenwich * Compare project\_id to '' using == (equality) rather than 'is' (identity). This is needed because '' isn't the same as u'' * Various loose ends for endpoint and tornado removal cleanup, including cloudpipe API addition, rpc.call() cleanup by removing tornado ioloop, and fixing bin/\* programs. Tornado still exists as part of some test cases and those should be reworked to not require it * Re-add root and metadata request handlers to EC2 API * Re-added the ramdisk line I accidentally removed * Soren's patch to fix part of ec2 * Add user display fields to instances & volumes * Responding to eday's feedback -- make a clearer inner wsgi app * Added a primary\_key to AuthToken, fixed some unbound variables, and now all unit tests pass * merge from trunk * typo in instance\_get * typo in instance\_get * User updatable name & description for images * merged trunk and fixed errors * cleaned up exception handling for fixed\_ip\_get * Added server index and detail differentiation * merged trunk * typo s/an/a * Reenable access\_unittest now that it works with new rbac * Rewrite rbac tests to use Authorizer middleware * Missed the model include, and fixed a broke test after the merge * Delete nova.endpoint module, which used Tornado to serve up the Amazon EC2 API. Replace it with nova.api.ec2 module, which serves up the same API via a WSGI app in Eventlet. Convert relevant unit tests from Twisted to eventlet * Remove eventlet test, now that eventlet 0.9.10 has indeed been replaced by 0.9.12 per mtaylor * In desperation, I'm raising eventlet.\_\_version\_\_ so I can see why the trunk tests are failing * merged trunk * bpython is amazing * Fix quota unittest and don't run rbac unit tests for the moment * merged trunk * Some more refactoring and another unit test * Implements quotas with overrides for instances, volumes, and floating ips * Renamed cc\_ip flag to cc\_host * Moves keypairs out of ldap and into the common datastore * Fixes server error on get metadata when instances are started without keypairs * allows api servers to have a list of regions, allowing multi-cluster support if you have a shared image store and user database * Don't use something the shell will escape as a separator. | is now = * Added modify project command to auth manager to allow changing of project manager and description * merged trunk * merged trunk * Refactored the auth branch based on review feedback * Whitespace fixes * Support querying version list, per the RS API spec. Fixes bug 613117 * Undo run\_tests.py modification in the hopes of making this merge * Add a RateLimitingMiddleware to the Rackspace API, implementing the rate limits as defined by the current Cloud Servers spec. The Middleware can do rate counting in memory, or (for deployments that have more than one API Server) can offload to a rate limiting service * Use assertRaises * A small fix to the install\_venv program to allow us to run it on the tarmac box as part of the tarmac build * Removes second copy of ProcessExecutionError that creeped in during a bad merge * Adds an omitted yield in compute manager detach\_volume * Move the code that extracts the console output into the virt drivers. Move the code that formats it up into the API layer. Add support for Xen console * Add Xen template and use it by default if libvirt\_type=xen * added rescue mode support and made reboot work from any state * Adds timing fields to instances and volumes to track launch times and schedule times * Fixes two errors in cloud.py in the nova\_orm branch: a) self.network is actually called network\_manager b) the logic for describe-instances check on is\_admin was reversed * Adds timing fields to instances and volumes to track launch times and schedule times * updated docstring * add in a few comments * s/\t/ /g, and add some comments * add in support for ajaxterm console access * add security and session timeout to ajaxterm * initial commit of ajaxterm * Replaced the existing Rackspace Auth Mechanism with one that mirrors the implementation in the design document * Whitespace fixes * Added missing masquerade rules * Fix things not quite merged perfectly -- all tests now pass * Better error message on the failure of a spawned process, and it's a ProcessExecutionException irrespective of how the process is run (twisted or not) * Added iptables host initial configuration * Added iptables host initial configuration * Proposing merge to get feedback on orm refactoring. I am very interested in feedback to all of these changes * Support querying version list * Add support for middleware proxying to a ratelimiting.WSGIApp, for deployments that use more than one API Server and thus can't store ratelimiting counters in memory * Test the WSGIApp * RateLimitingMiddleware tests * Address a couple of the TODO's: We now have half-decent input validation for AuthorizeSecurityGroupIngress and RevokeDitto * Clean up use of ORM to remove the need for scoped\_session * Roll back my slightly over-zealous clean up work * More ORM object cleanup * Clean up use of objects coming out of the ORM * RateLimitingMiddleware * Add ratelimiting package into Nova. After Austin it'll be pulled out into PyPI * When destroying a VM using the XenAPI backend, if the VM is still running (the usual case) the destroy fails. It needs to be powered-off first * Leave out the network setting from the interfaces template. It does not get passed anymore * Network model has network\_str attribute * Cast process input to a str. It must not be unicode, but stuff that comes out of the database might very well be unicode, so using such a value in a template makes the whole thing unicode * Make refresh\_security\_groups play well with inlineCallbacks * Fix up rule generation. It turns out nwfilter gets very, very wonky indeed if you mix rules and rules. Setting a TCP rule adds an early rule to ebtables that ends up overriding the rules which are last in that table * Add a bunch of TODO's to the API implementation * Multiple security group support * Remove power state constants that have ended up duplicated following a bad merge. They were moved from nova.compute.node.Instance into nova.compute.power\_state at the same time that Instance was moved into nova.compute.service. We've ended up with these constants in both places * now we can run files - thanks vish * Move vol.destroy() call out of the \_check method in test\_multiple\_volume\_race\_condition test and into a callback of the DeferredList. This should fix the intermittent failure of that test. I /think/ test\_too\_many\_volumes's failure was caused by test\_multiple\_volume\_race\_condition failure, since I have not been able to reproduce its failure after fixing this one * Adds 'shell run' to nova manage, which spawns a shell with flags properly imported * Finish pulling S3ImageService out of this mergeprop * Pull S3ImageService out of this mergeprop * Correctly pass ip\_address to templates * Fix call to listNWFilters * (Untested) Make changes to security group rules propagate to the relevant compute nodes * Filters all get defined when running an instance * added missing yield in detach\_volume * multiple network controllers will not create duplicate indexes * renamed \_get\_quota to get\_quota and moved int(size) into quota.py * add a shell to nova-manage, which respects flags (taken from django) * Move vol.destroy() call out of the \_check method in test\_multiple\_volume\_race\_condition test and into a callback of the DeferredList. This should fix the intermittent failure of that test. I /think/ test\_too\_many\_volumes's failure was caused by test\_multiple\_volume\_race\_condition failure, since I have not been able to reproduce its failure after fixing this one * removed second copy of ProcessExecutionError * move the warnings about leasing ips * simplified query * missed a space * set leased = 0 as well on disassociate update * speed up the query and make sure allocated is false * workaround for mysql select in update * Periodic callback for services and managers. Added code to automatically disassociate stale ip addresses * fixed typo * flag for retries on volume commands * auto all and start all exceptions should be ignored * generalized retry into try\_execute * more error handling in volume driver code * handle exceptions thrown by vblade stop and vblade destroy * merged trunk * deleting is set by cloud * re added missing volume update * Integrity error is in a different exc file * allow multiple volumes to run ensure\_blades without creating duplicates * fixed name for unique constraint * export devices unique * merged instance time and added better concurrency * make fixed\_ip\_get\_by\_address return the instance as well so we don't run into concurrency issues where it is disassociated in between * disassociate floating is supposed to take floating\_address * speed up generation of dhcp\_hosts and don't run into None errors if instance is deleted * don't allocate the same floating ip multiple times * don't allow deletion or attachment of volume unless it is available * fixed reference to misnamed method * manage command for project quotas * merged trunk * implement floating\_ip\_get\_all\_by\_project and renamed db methods that get more then one to get\_all\_by instead of get\_by * fixed reversed args in nova-manage project environment * merged scheduler * fix instance time * move volume to the scheduler * tests for volumes work * update query and test * merged quotas * use gigabytes and cores * use a string version of key name when constructing mpi dict because None doesn't work well in lookup * db not self.db * Security Group API layer cleanup * merged trunk * added terminated\_at to volume and moved setting of terminated\_at into cloud * remerged scheduler * merged trunk * merged trunk * merged trunk * merged trunk * fixed reversed admin logic on describe instances * fixed typo network => network\_manager in cloud.py * fixed old key reference and made keypair name constistent -> key\_pair * typo fixes, add flag to nova-dhcpbridge * fixed tests, added a flag for updating dhcp on disassociate * simplified network instance association * fix network association issue * merged trunk * improved network error case handling for fixed ips * it is called regionEndpoint, and use pipe as a separator * move keypair generation out of auth and fix tests * Fixed manager\_user reference in create\_project * Finished security group / project refactor * delete keypairs when a user is deleted * remove keypair from driver * moved keypairs to db using the same interface * multi-region flag for describe regions * make api error messages more readable * Refactored to security group api to support projects * set dnsName on describe * merged orm and put instance in scheduling state * just warn if an ip was already deallocated * fix mpi 500 on fixed ip * hostname should be string id * dhcpbridge needed host instead of node name * add a simple iterator to NovaBase to support converting into dictionary * Adjust a few things to make the unit tests happy again * First pass of nwfilter based security group implementation. It is not where it is supposed to be and it does not actually do anything yet * couple more errors in metadata * typo in metadata call * fixed messed up call in metadata * added modify project command to allow project manager and description to be updated * Change "exn" to "exc" to fit with the common style * Create and delete security groups works. Adding and revoking rules works. DescribeSecurityGroups returns the groups and rules. So, the API seems to be done. Yay * merged describe\_speed * merged scheduler * set host when item is scheduled * remove print statements * removed extra quotes around instance\_type * don't pass topic into schedule\_run\_instance * added scheduled\_at to instances and volumes * quotas working and tests passing * address test almost works * quota tests * merged orm * fix unittest * merged orm * fix rare condition where describe is called before instance has an ip * merged orm * make the db creates return refs instead of ids * add missing files for quota * kwargs don't work if you prepend an underscore * merged orm, added database methods for getting volume and ip data for projects * database support for quotas * Correct style issues brought up in termie's review * mocking out quotas * don't need to pass instance\_id to network on associate * floating\_address is the name for the cast * merged support code from orm branch * faster describe\_addresses * added floating ip commands and launched\_at terminated\_at, deleted\_at for objects * merged orm * solution that works with this version * fix describe addresses * remove extraneous get\_host calls that were requiring an extra db trip * pass volume['id'] instead of string id to delete volume * fix volume delete issue and volume hostname display * fix logging for scheduler to properly display method name * fixed logic in set\_state code to stop endless loops * Authorize and Revoke access now works * list command for floating ips * merged describe speed * merged orm * floating ip commands * removed extraneous rollback * speed up describe by loading fixed and floating ips * AuthorizeSecurityGroupIngress now works * switch to using utcnow * Alright, first hole poked all the way through. We can now create security groups and read them back * don't fail in db if context isn't a dict, since we're still using a class based context in the api * logging for backend is now info instead of error * merged orm * merged orm * set state everywhere * put soren's fancy path code in scheduler bin as well * missing deleted ref * merged orm * merged orm * consistent naming for instance\_set\_state * Tests turn things into inlineCallbacks * Missed an instance of attach\_to\_tornado * Remove tornado-related code from almost everything * It's annoying and confusing to have to set PYTHONPATH to point to your development tree before you run any of the scripts * deleted typo * merged orm * merged orm * fixed missing paren * merge orm * make timestamps for instances and volumes, includes additions to get deleted objects from db using deleted flag * merged orm * remove end of line slashes from models.py * Make the scripts in bin/ detect if they're being run from a bzr checkout or an extracted release tarball or whatever and adjust PYTHONPATH accordingly * merged orm * merged orm branch * set state moved to db layer * updated to the new orm code * changed a few unused context to \_context * a few formatting fixes and moved exception * fixed a few bugs in volume handling * merged trunk * Last of cleanup, including removing fake\_storage flage * more fixes from code review * review db code cleanup * review cleanup for compute manager * first pass at cleanup rackspace/servers.py * dhcpbridge fixes from review * more fixes to session handling * few typos in updates * don't log all sql statements * one more whitespace fix * whitespace fixes * fix for getting reference on service update * clean up of session handling * New version of eventlet handles Twisted & eventlet running at the same time * fix docstrings and formatting * Oops, APIRequestContext's signature has changed * merged orm * fix floating\_ip to follow standard create pattern * Add stubbed out handler for AuthorizeSecurityGroupIngress EC2 API call * merged orm\_deux * Merged trunk * Add a clean-traffic filterref to the libvirt templates to prevent spoofing and snooping attacks from the guests * Lots of fixes to make the nova commands work properly and make datamodel work with mysql properly * Bug #630640: Duplicated power state constants * Bug #630636: XenAPI VM destroy fails when the VM is still running * removed extra equals * Just a couple of UML-only fixes:  \* Due to an issue with libvirt, we need to chown the disk image to root.  \* Just point UML's console directly at a file, and don't bother with the pty. It was only used for debugging * removed extra file and updated sql note * merged fixed format instances from orm * fixed up format\_instances * merged server.py change from orm branch * reverting accidental search/replace change to server.py * merged orm * removed model from nova-manage * merged orm branch * removed references to compute.model * send ultimate topic in to scheduler * more scheduler tests * test for too many instances work * merged trunk * fix service unit tests * removed dangling files * merged orm branch * merged trunk and cleaned up test * renamed daemon to service and update db on create and destroy * pass all extra args from service to manager * fix test to specify host * inject host into manager * Servers API remodeling and serialization handling * Move nova.endpoint.images to api.ec2 and delete nova.endpoint * Cloud tests pass * OMG got api\_unittests to pass * send requests to the main API instead of to the EC2 subset -- so that it can parse out the '/services/' prefix. Also, oops, match on path\_info instead of path like we're supposed to * Remove unused APIRequestContext.handler * Use port that boto expects * merged orm branch * scheduler + unittests * removed underscores from used context * updated models a bit and removed service classes * Small typos, plus rework api\_unittest to use WSGI instead of Tornado * Replace an if/else with a dict lookup to a factory method * Nurrr * Abstractified generalization mechanism * Revert the changes to the qemu libvirt template and make the appropriate changes in the UML template where they belong * Create console.log ahead of time. This ensures that the user running nova-compute maintains read privileges * This improves the changelog generated as part of "setup.py sdist". If you look at it now, it says that Tarmac has done everything and every little commit is listed. With this patch, it only logs the "top-most" commit and credits the author rather than the committer * Fix simple errors to the point where we can run the tests [but not pass] * notes -- conversion 'complete' except now the unit tests won't work and surely i have bugs :) * Moved API tests into a sub-folder of the tests/ and added a stubbed-out test declarations to mirror existing API tickets * Delete rbac.py, moving @rbac decorator knowledge into api.ec2.Authorizer WSGI middleware * Break Router() into Router() and Executor(), and put Authorizer() (currently a stub) in between them * Return error Responses properly, and don't muck with req.params -- make a copy instead * merged orm branch * pylint clean of manager and service * pylint cleanup of db classes * rename node\_name to host * merged trunk * Call getInfo() instead of getVersion() on the libvirt connection object. virConnectGetVersion was not exposed properly in the python bindings until quite recently, so this makes us rather more backwards compatible * Better log formatter for Nova. It's just like gnuchangelog, but logs the author rather than the committer * Remove all Twisted defer references from cloud.py * Remove inlineCallbacks and yield from cloud.py, as eventlet doesn't need it * Move cloudcontroller and admincontroller into new api * Adjust setup.py to match nova-rsapi -> nova-api-new rename * small import cleanup * Get rid of some convoluted exception handling that we don't need in eventlet * First steps in reworking EC2 APIRequestHandler into separate Authenticate() and Router() WSGI apps * Call getInfo() instead of getVersion() on the libvirt connection object. virConnectGetVersion was not exposed properly in the python bindings until quite recently, so this makes us rather more backwards compatible * Fix up setup.py to match nova-rsapi -> nova-api-new rename * a little more cleanup in compute * pylint cleanup of tests * add missing manager classes * volume cleanup * more cleanup and pylint fixes * more pep8 * more pep8 * pep8 cleanup * add sqlalchemy to pip requires * merged trunk, fixed a couple errors * Delete \_\_init\_\_.py in prep for turning apirequesthandler into \_\_init\_\_ * Move APIRequestContext into its own file * Move APIRequest into its own file * run and terminate work * Move class into its own file * fix daemon get * Notes for converting Tornado to Eventlet * undo change to get\_my\_ip * all tests pass again * rollback on exit * merged session from devin * Added session.py * Removed get\_backup\_schedules from the image test * merged devin's sqlalchemy changes * Making tests pass * Reconnect to libvirt on broken connection * pylint fixes for /nova/virt/connection.py * pylint fixes for nova/objectstore/handler.py * ip addresses work now * Add Flavors controller supporting * Resolve conflicts and merge trunk * Detect if libvirt connection has been broken and reestablish it * instance runs * Dead code removal * remove creation of volume groups on boot * tests pass * Making tests pass * Making tests pass * Refactored orm to support atomic actions * moved network code into business layer * move None context up into cloud * split volume into service/manager/driver * moved models.py * removed the last few references to models.py * chown disk images to root for uml. Due to libvirt dropping CAP\_DAC\_OVERRIDE for uml, root needs to have explicit access to the disk images for stuff to work * Create console.log ahead of time. This ensures that the user running nova-compute maintains read privileges * fixed service mox test cases * Renamed test.py and moved a test as per merge proposal feedback * fixed volume unit tests * work endpoint/images.py into an S3ImageService. The translation isn't perfect, but it's a start * get to look like trunk * Set UML guests to use a file as their console. This halfway fixes get-console-output for them * network tests pass again * Fixes issue with the same ip being assigned to multiple instances * merged trunk and fixed tests * Support GET //detail * Moved API tests into a sub-folder of the tests/ and added a stubbed-out test declarations to mirror existing API tickets * Turn imageid translator into general translator for rackspace api ids * move network\_type flag so it is accesible in data layer * Use compute.instance\_types for flavor data instead of a FlavorService * more data layer breakouts, lots of fixes to cloud.py * merged jesse * Initial support for Rackspace API /image requests. They will eventually be backed by Glance * Fix a pep8 violation * improve the volume export - sleep & check export * missing context and move volume\_update to before the export * update volume create code * A few small changes to install\_venv to let venv builds work on the tarmac box * small tweaks * move create volume to work like instances * work towards volumes using db layer * merge vish * fix setup compute network * merge vish * merge vish * use vlan for network type since it works * merge vish * more work on getting running instances to work * merge vish * more cleanup * Flavors work * pep8 * Delete unused directory * Move imageservice to its own directory * getting run/terminate/describe to work * OK, break out ternary operator (good to know that it slowed you down to read it) * Style fixes * fix some errors with networking rules * typo in release\_ip * run instances works * Ensure that --gid and --uid options work for both twisted and non-twisted daemons * Fixes an error in setup\_compute\_network that was causing network setup to fail * add back in the needed calls for dhcpbridge * removed old imports and moved flags * merge and fixes to creates to all return id * bunch more fixes * moving network code and fixing run\_instances * jesse's run\_instances changes * fix daemons and move network code * Rework virt.xenapi's concurrency model. There were many places where we were inadvertently blocking the reactor thread. The reworking puts all calls to XenAPI on background threads, so that they won't block the reactor thread * merged trunk and fixed merge errors * Refactored network model access into data abstraction layer * Get the output formatting correct * Typo * Don't serialize in Controller subclass now that wsgi.Controller handles it for us * Move serialize() to wsgi.Controller so \_\_call\_\_ can serialize() action return values if they are dicts * Serialize properly * Support opaque id to rs int id as well * License * Moves auth.manager to the data layer * Add db abstraction and unittets for service.py * Clarified what the 'Mapped device not found' exception really means. Fixed TODO. Some formatting to be closer to 80 chars * Added missing "self." * Alphabetize the methods in the db layer * fix concurrency issue with multiple instances getting the same ip * small fixes to network * Fixed typo * Better error message on subprocess spawn fail, and it's a ProcessExecutionException irrespective of how the process is run * Check exit codes when spawning processes by default Also pass --fail to curl so that it sets exit code when download fails * PEP8/pylint cleanup in bin and nova/auth * move volume code into datalayer and cleanup * Complete the Image API against a LocalImageService until Glance's API exists (at which point we'll make a GlanceImageService and make the choice of ImageService plugin configurable.) * Added unit tests for WSGI helpers and base WSGI API * merged termies abstractions * Move deferredToThread into utils, as suggested by termie * Remove whitespace to match style guide * Data abstraction for compute service * this file isn't being used * Cleaned up pep8/pylint style issues in nova/auth. There are still a few pylint warnings in manager.py, but the patch is already fairly large * More pylintrc updates * fix report state * Removed old cloud\_topic queue setup, it is no longer used * last few test fixes * More bin/ pep8/pylint cleanup * fixing more network issues * Added '-' as possible charater in module rgx * Merged with trunk * Updated the tests to use webob, removed the 'called' thing and just use return values instead * Fix unit test bug this uncovered: don't release\_ip that we haven't got from issue\_ip * Fix to better reflect (my believed intent) as to the meaning of error\_ok (ignore stderr vs accept failure) * Merged with trunk * use with\_lockmode for concurrency issues * First in a series of patches to port the API from Tornado to WSGI. Also includes a few small style fixes in the new API code * Pull in ~eday/nova/api-port * Merged trunk * Merged api-port into api-port-1 * Since pylint=0.19 is our version, force everyone to use the disable-msg syntax * Missed one * Removed the 'controllers' directory under 'rackspace' due to full class name redundancy * pep8 typo * Changed our minds: keep pylint equal to Ubuntu Lucid version, and use disable-msg throughout * Fixed typo * Image API work * Newest pylint supports 'disable=', not 'disable-msg=' * Fix pep8 violation * tests pass * network tests pass * Added unittests for wsgi and api * almost there * progress on tests passing * remove references to deleted files so tests run * fix vpn access for auth * merged trunk * removed extra files * network datamodel code * In an effort to keep new and old API code separate, I've created a nova.api to put all new API code under. This means nova.endpoint only contains the old Tornado implementation. I also cleaned up a few pep8 and other style nits in the new API code * No longer installs a virtualenv automatically and adds new options to bypass the interactive prompt * Stylistic improvements * Add documentation to spawn, reboot, and destroy stating that those functions should return Deferreds. Update the fake implementations to do so (the libvirt ones already do, and making the xenapi ones do so is the subject of a current merge request) * start with model code * clean up linux\_net * merged refresh from sleepsonthefloor * See description of change... what's the difference between that message and this message again? * Move eventlet-using class out of endpoint/\_\_init\_\_.py into its own submodule, so that twisted-related code using endpoint.[other stuff] wouldn't run eventlet and make unit tests throw crazy errors about eventlet 0.9.10 not playing nicely with twisted * Remove duplicate definition of flag * The file that I create automates this step in http://wiki.openstack.org/InstallationNova20100729 : * Simpler installation, and, can run install\_venv from anywhere instead of just from checkout root * Use the argument handler specified by twistd, if any * Fixes quite a few style issues across the entire nova codebase bringing it much closer to the guide described in HACKING * merge from trunk * merged trunk * merged trunk and fixed conflicts * Fixes issues with allocation and deallocation of fixed and elastic addresses * Added documentation for the nova.virt connection interface, a note about the need to chmod the objectstore script, and a reference for the XenAPI module * Make individual disables for R0201 instead of file-level * All controller actions receive a 'req' parameter containing the webob Request * improve compatibility with ec2 clients * PEP8 and name corrections * rather comprehensive style fixes * fix launching and describing instances to work with sqlalchemy * Add new libvirt\_type option "uml" for user-mode-linux.. This switches the libvirt URI to uml:///system and uses a different template for the libvirt xml * typos * don't try to create and destroy lvs in fake mode * refactoring volume and some cleanup in model and compute * Add documentation to spawn, reboot, and destroy stating that those functions should return Deferreds. Update the fake implementations to do so (the libvirt ones already do, and making the xenapi ones do so is the subject of a current merge request) * Rework virt.xenapi's concurrency model. There were many places where we were inadvertently blocking the reactor thread. The reworking puts all calls to XenAPI on background threads, so that they won't block the reactor thread * add refresh on model * merge in latedt from vish * Catches and logs exceptions for rpc calls and raises a RemoteError exception on the caller side * Removes requirement of internet connectivity to run api server * Fixed path to keys directory * Update cloud\_unittest to match renamed internal function * Removes the workaround for syslog-ng of removing newlines * Fixes bug lp:616312 by reversing the order of args in nova-manage when it calls AuthManager.get\_credentials * merged trunk * Sets a hostname for instances that properly resolves and cleans up network classes * merged fix-hostname and fixed conflict * Implemented admin client / admin api for fetching user roles * Improves pep8 compliance and pylint score in network code * Bug #617776: DescribeImagesResponse contains type element, when it should be called imageType * Bug 617913: RunInstances response doesn't meet EC2 specification * remove more direct session interactions * refactor to have base helper class with shared session and engine * ComputeConnectionTestCase is almost working again * more work on trying to get compute tests passing * re-add redis clearing * make the fake-ldap system work again * got run\_tests.py to run (with many failed tests) * Bug #617776: DescribeImagesResponse contains type element, when it should be called imageType * initial commit for orm based models * Add a few unit tests for libvirt\_conn * Move interfaces template into virt/, too * Refactor LibvirtConnection a little bit for easier testing * Remove extra "uml" from os.type * Fixes out of order arguments in get\_credentials * pep8 and pylint cleanup * Support JSON and XML in Serializer * Added note regarding dependency upon XenAPI.py * Added documentation to the nova.virt interface * make rpc.call propogate exception info. Includes tests * Undo the changes to cloud.py that somehow diverged from trunk * Mergeprop cleanup * Mergeprop cleanup * Make WSGI routing support routing to WSGI apps or to controller+action * Make --libvirt\_type=uml do the right thing: Sets the correct libvirt URI and use a special template for the XML * renamed missed reference to Address * die classmethod * merged fix-dhcpbridge * remove class method * typo allocated should be relased * rename address stuff to avoid name collision and make the .all() iterator work again * keep track of leasing state so we can delete ips that didn't ever get leased * remove syslog-ng workaround * Merged with trunk * Implement the same fix as lp:~vishvananda/nova/fix-curl-project, but for virt.xenapi * Fix exception in get\_info * Move libvirt.xml template into nova/virt * Parameterise libvirt URI * Merged with trunk * fix dhcpbridge issues * Adapts the run\_tests.sh script to allow interactive or automated creation of virtualenv, or to run tests outside of a virtualenv * Prototype implementation of Servers controller * Working router that can target WSGI middleware or a standard controller+action * Added a xapi plugin that can pull images from nova-objectstore, and use that to get a disk, kernel, and ramdisk for the VM * Serializing in middleware after all... by tying to the router. maybe a good idea? * Merged with trunk * Actually pass in hostname and create a proper model for data in network code * Improved roles functionality (listing & improved test coverage) * support a hostname that can be looked up * updated virtualenv to add eventlet, which is now a requirement * Changes the run\_tests.sh and /tools/install\_venv.py scripts to be more user-friendly and not depend on PIP while not in the virtual environment * Fixed admin api for user roles * Merged list\_roles * fix spacing issue in ldapdriver * Fixes bug lp:615857 by changing the name of the zip export method in nova-manage * Wired up admin api for user roles * change get\_roles to have a flag for project\_roles or not. Don't show 'projectmanager' in list of roles * Throw exceptions for illegal roles on role add * Adds get\_roles commands to manager and driver classes * more pylint fixes * Implement VIF creation in the xenapi module * lots more pylint fixes * work on a router that works with wsgi and non-wsgi routing * Pylint clean of vpn.py * Further pylint cleanup * Oops, we need eventlet as well * pylint cleanup * pep8 cleanup * merged trunk * pylint fixes for nova/objectstore/handler.py * rename create\_zip to zipfile so lazy match works * Quick fix on location of printouts when trying to install virtualenv * Changes the run\_tests.sh and /tools/install\_venv.py scripts to be more user-friendly and not depend on PIP while not in the virtual environment. Running run\_tests.sh should not just work out of the box on all systems supporting easy\_install.. * 2 changes in doing PEP8 & Pylint cleaning: \* adding pep8 and pylint to the PIP requirements files for Tools \* light cleaning work (mostly formatting) on nova/endpoints/cloud.py * More changes to volume to fix concurrency issues. Also testing updates * Merge * Merged nova-tests-apitest into pylint * Merged nova-virt-connection into nova-tests-apitest * Pylint fixes for /nova/tests/api\_unittest.py * pylint fixes for nova/virt/connection.py * merged trunk, fixed an error with releasing ip * fix releasing to work properly * Add some useful features to our flags * pylint fixes for /nova/test.py * Fixes pylint issues in /nova/server.py * importing merges from hudson branch * fixing - removing unused imports per Eric & Jay review * initial cleanup of tests for network * Implement the same fix as lp:~vishvananda/nova/fix-curl-project, but for virt.xenapi * Run correctly even if called while in tools/ directory, as 'python install\_venv.py' * This branch builds off of Todd and Michael's API branches to rework the Rackspace API endpoint and WSGI layers * separated scheduler types into own modules * Fix up variable names instead of disabling pylint naming rule. Makes variables able to be a single letter in pylintrc * Disables warning about TODO in code comments in pylintrc * More pylint/pep8 cleanup, this time in bin/\* files * pylint fixes for nova/server.py * remove duplicated report\_state that exists in the base class more pylint fixes * Fixed docstring format per Jay's review * pylint fixes for /nova/test.py * Move the xenapi top level directory under plugins, as suggested by Jay Pipes * Pull trunk merge through lp:~ewanmellor/nova/add-contains * Pull trunk merge through lp:~ewanmellor/nova/xapi-plugin * Merged with trunk again * light cleanup - convention stuff mostly * convention and variable naming cleanup for pylint/pep8 * Used new (clearer) flag names when calling processes * Merged with trunk * Greater compliance with pep8/pylint style checks * removing what appears to be an unused try/except statement - nova.auth.manager.UserError doesn't exist in this codebase. Leftover? Something intended to be there but never added? * variable name cleanup * attempting some cleanup work * adding pep8 and pylint for regular cleanup tasks * Cleaned up pep8/pylint for bin/\* files. I did not fix rsapi since this is already cleaned up in another branch * Merged trunk * Reworked WSGI helper module and converted rackspace API endpoint to use it * Changed the network imports to use new network layout * merged with trunk * Change nova/virt/images.py's \_fetch\_local\_image to accept 4 args, since fetch() tries to call it with that many * Merged Todd and Michael's changes * pep8 and pylint cleanups * Some pylink and pep8 cleanups. Added a pylintrc file * fix copyrights for new files, etc * a few more commands were putting output on stderr. In general, exceptions on stderr output seems like a bad idea * Moved Scheduler classes into scheduler.py. Created a way to specify scheduler class that the SchedulerService uses.. * Make network its own worker! This separates the network logic from the api server, allowing us to have multiple network controllers. There a lot of stuff in networking that is ugly and should be modified with the datamodel changes. I've attempted not to mess with those things too much to keep the changeset small(ha!) * Fixed instance model associations to host (node) and added association to ip * Fixed write authorization for public images * Fixes a bug where if a user was removed from a group after he had a role, he could not be re-added * fix search/replace error * merged trunk * Start breaking out scheduler classes.. * WsgiStack class, eventletserver.serve. Trying to work toward a simple API that anyone can use to start an eventlet-based server composed of several WSGI apps * Use webob to simplify wsgi middleware * Made group membership check only search group instead of subtree. Roles in a group are removed when a user is removed from that group. Added test * Fixes bug#614090 -- nova.virt.images.\_fetch\_local\_image being called with 4 args but only has 3 * Fixed image modification authorization, API cleanup * fixed doc string * compute topic for a node is compute.node not compute:node! * almost there on random scheduler. not pushing to correct compute node topic, yet, apparently.. * First pass at making a file pass pep8 and pylint tests as an example * merged trunk * rename networkdata to vpn * remove extra line accidentally added * compute nodes should store total memory and disk space available for VMs * merged from trunk * added bin/nova-listinstances, which is mostly just a duplication of euca-describe-instances but doesn't go through the API * Fixes various concurrency issues in volume worker * Changed volumes to use a pool instead of globbing filesystem for concurrency reasons. Fixed broken tests * clean up nova-manage. If vpn data isn't set for user it skips it * method is called set\_network\_host * fixed circular reference and tests * renamed Vpn to NetworkData, moved the creation of data to inside network * fix rpc command line call, remove useless deferreds * fix error on terminate instance relating to elastic ip * Move the xenapi top level directory under plugins, as suggested by Jay Pipes * fixed tests, moved compute network config call, added notes, made inject option into a boolean * fix extra reference, method passing to network, various errors in elastic\_ips * use iteritems * reference to self.project instead of context.project + self.network\_model instead of network\_model * fixes in get public address and extra references to self.network * method should return network topic instead of network host * use deferreds in network * don't \_\_ module methods * inline commands use returnValue * it helps to save files BEFORE committing * Added note to README * Fixes the curl to pass in the project properly * Adds flag for libvirt type (hvm, qemu, etc) * Fix deprecation warning in AuthManager. \_\_new\_\_ isn't allowed to take args * created assocaition between project and host, modified commands to get host async, simplified calls to network * use get to retrieve node\_name from initial\_state * change network\_service flag to network\_type and don't take full class name * vblade commands randomly toss stuff into stderr, ignore it * delete instance doesn't fail if instances dir doesn't exist * Huge network refactor, Round I * Fixes boto imports to support both beta and older versions of boto * Get IP doesn't fail of you not connected to the intetnet * updated doc string and wrapper * add copyright headers * Fix exception in get\_info * Implement VIF creation * Define \_\_contains\_\_ on BasicModel, so that we can use "x in datamodel" * Fixed instance model associations to host (node) and added association to ip * Added a xapi plugin that can pull images from nova-objectstore, and use that to get a disk, kernel, and ramdisk for the VM. The VM actually boots! * Added project as parameter to admin client x509 zip file download * Turn the private \_image\_url(path) into a public image\_url(image). This will be used by virt.xenapi to instruct xapi as to which images to download * Merged in configurable libvirt\_uri, and fixes to raw disk images from the virtualbox branch * Fixed up some of the raw disk stuff that broke in the abstraction out of libvirt * Merged with raw disk image * Recognize 'magic' kernel value that means "don't use a kernel" - currently aki-00000000 * Fix Tests * Fixes nova volumes. The async commands yield properly. Simplified the call to create volume in cloud. Added some notes * another try on fix boto * use user.access instead of user.id * Fixes access key passing in curl statement * Accept a configurable libvirt\_uri * Added Cheetah to pip-requires * Removed duplicate toXml method * Merged with trunk * Merged with trunk, added note about suspicious behaviour * Added exit code checking to process.py (twisted process utils). A bit of class refactoring to make it work & cleaner. Also added some more instructive messages to install\_venv.py, because otherwise people that don't know what they're doing will install the wrong pip... i.e. I did :-) * Make nodaemon twistd processes log to stdout * Make nodaemon twistd processes log to stdout * use the right tag * flag for libvirt type * boto.s3 no longer imports connection, so we need to explicitly import it * Added project param to admin client zip download * boto.utils import doesn't work with new boto, import boto instead * fix imports in endpoint/images.py boto.s3 no longer imports connection, so we need to explicitly import it * Added --fail argument to curl invocations, so that HTTP request fails get surfaced as non-zero exit codes * Merged with trunk * Merged with trunk * strip out some useless imports * Add some useful features to our flags * Fixed pep8 in run\_test.py * Blank commit to get tarmac merge to pick up the tags * Fixed assertion "Someone released me too many times: too many tokens!" * Replace the second singleton unit test, lost during a merge * Merged with trunk to resolve merge conflicts * oops retry and add extra exception check * Fix deprecation warning in AuthManager. \_\_new\_\_ isn't allowed to take args * Added ChangeLog generation * Implemented admin api for rbac * Move the reading of API parameters above the call to \_get\_image, so that they have a chance to take effect * Move the reading of API parameters above the call to \_get\_image, so that they have a chance to take effect * Adds initial support for XenAPI (not yet finished) * More merges from trunk. Not everything came over the first time * Allow driver specification in AuthManager creation * pep8 * Fixed pep8 issues in setup.py - thanks redbo * Use default kernel and ramdisk properly by default * Adds optional user param to the get projects command * Ensures default redis keys are lowercase like they were in prior versions of the code * Pass in environment to dnsmasq properly * Releaed 0.9.0, now on 0.9.1 * Merged trunk * Added ChangeLog generation * Wired up get/add/remove project members * Merged lp:~vishvananda/nova/lp609749 * Removes logging when associating a model to something that isn't a model class * allow driver to be passed in to auth manager instead of depending solely on flag * make redis name default to lower case * Merged get-projects-by-user * Merged trunk * Fixed project api * Specify a filter by user for get projects * Create a model for storing session tokens * Fixed a typo from the the refactor of auth code * Makes ldap flags work again * bzr merge lp:nova/trunk * Tagged 0.9.0 and bumped the version to 0.9.1 * Silence logs when associated models aren't found. Also document methods used ofr associating things. And get rid of some duplicated code * Fix dnsmasq commands to pass in environment properly 0.9.0 ----- * Got the tree set for debian packaging * use default kernel and ramdisk and check for legal access * import ldapdriver for flags * Removed extra include * Added the gitignore files back in for the folks who are still on the git * Added a few more missing files to MANIFEST.in and added some placeholder files so that setup.py would carry the empty dir * Updated setup.py file to install stuff on a python setup.py install command * Removed gitignore files * Made run\_tests.sh executable * Put in a single MANIFEST.in file that takes care of things * Changed Makefile to shell script. The Makefile approach completely broke debhelper's ability to figure out that this was a python package * fixed typo from auth refactor * Add sdist make target to build the MANIFEST.in file * Removes debian dir from main tree. We'll add it back in in a different branch * Merged trunk * Wired up user:project auth calls * Bump version to 0.9.0 * Makes the compute and volume daemon workers use a common base class called Service. Adds a NetworkService in preparation for splitting out networking code. General cleanup and standardizarion of naming * fixed path to keys directory * Fixes Bug lp:610611: deleted project vlans are deleted from the datastore before they are reused * Add a 'sdist' make target. It first generates a MANIFEST.in based on what's in bzr, then calls python setup.py sdist * properly delete old vlans assigned to deleted projects * Remove debian/ from main branch * Bump version to 0.9.0. Change author to "OpenStack". Change author\_email to nova@lists.launchpad.net. Change url to http://www.openstack.org/. Change description to "cloud computing fabric controller" * Make "make test" detect whether to use virtualenv or not, thus making virtualenv optional * merged trunk * Makes the objectstore require authorization, checks it properly, and makes nova-compute provide it when fetching images * Automatically choose the correct type of test (virtualenv or system) * Ensure that boto's config has a "Boto" section before attempting to set a value in it * fixes buildpackage failing with dh\_install: missing files * removed old reference from nova-common.install and fixed spacing * Flag for SessionToken ttl setting * resolving conflict w/ merge, cleaning up virtenv setups * resolving conflict w/ merge, cleaning up virtenv setups * Fixes bug#610140. Thanks to Vish and Muharem for the patch * A few minor fixes to the virtualenv installer that were breaking on ubuntu * Give SessionToken an is\_expired method * Refactor of auth code * Fixes bug#610140. Thanks to Vish and Muharem for the patch * Share my updates to the Rackspace API * Fixes to the virtualenv installer * Ensure consistent use of filename for dhcp bridge flag file * renamed xxxservice to service * Began wiring up rbac admin api * fix auth\_driver flag to default to usable driver * Adds support scripts for installing deps into a virtualenv * In fact, it should delete them * Lookup should only not return expired tokens * Adds support scripts for installing deps into a virtualenv * default flag file full path * moved misnamed nova-dchp file * Make \_fetch\_s3\_image pass proper AWS Authorization headers so that image downloads work again * Make image downloads work again in S3 handler. Listing worked, but fetching the images failed because I wasn't clever enough to use twisted.web.static.File correctly * Move virtualenv installation out of the makefile * Expiry awareness for SessionToken * class based singleton for SharedPool * Basic standup of SessionToken model for shortlived auth tokens * merged trunk * merged trunk * Updated doc layout to the Sphinx two-dir layout * Replace hardcoded "nova" with FLAGS.control\_exchange * Add a simple set of tests for S3 API (using boto) * Fix references to image\_object. This caused an internal error when using euca-deregister * Set durable=False on TopicPublisher * Added missing import * Replace hardcoded example URL, username, and password with flags called xenapi\_connection\_url, xenapi\_connection\_username, xenapi\_connection\_password * Fix instance cleanup * Fix references to image\_object. This caused an internal error when using euca-deregister * removed unused assignment * More Cleanup of code * Fix references to get\_argument, fixing internal error when calling euca-deregister * Changes nova-volume to use twisted * Fixes up Bucket to throw proper NotFound and NotEmpty exceptions in constructor and delete() method, and fixes up objectstore\_unittest to properly use assertRaises() to check for proper exceptions and remove the assert\_ calls * Adds missing yield statement that was causing partitioning to intermittently fail * Merged lp:~ewanmellor/nova/lp609792 * Merged lp:~ewanmellor/nova/lp609791 * Replace hardcoded "nova" with FLAGS.control\_exchange * Set durable=False on TopicPublisher, so that it matches the flag on TopicConsumer. This ensures that either redeclaration of the control\_exchange will use the same flag, and avoid AMQPChannelException * Add an import so that nova-compute sees the images\_path flag, so that it can be used on the command line * Return a 404 when attempting to access a bucket that does not exist * Removed creation of process pools. We don't use these any more now that we're using process.simple\_execute * Fix assertion "Someone released me too many times: too many tokens!" when more than one process was running at the same time. This was caused by the override of SharedPool.\_\_new\_\_ not stopping ProcessPool.\_\_init\_\_ from being run whenever process.simple\_execute is called * Always make sure to set a Date headers, since it's needed to calculate the S3 Auth header * Updated the README file * Updated sphinx layout to a two-dir layout like swift. Updated a doc string to get rid of a Sphinx warning * Updated URLs in the README file to point to current locations * Add missing import following merge from trunk (cset 150) * Merged with trunk, since a lot of useful things have gone in there recently * fixed bug where partition code was sometimes failing due to initial dd not being yielded properly * Fixed bug 608505 - was freeing the wrong address (should have freed 'secondaddress', was freeing 'address') * renamed xxxnode to xxservice * Add (completely untested) code to include an Authorization header for the S3 request to fetch an image * Check signature for S3 requests * Fixes problem with describe-addresses returning all public ips instead of the ones for just the user's project * Fix for extra spaces in export statements in scripts relating to x509 certs * Adds a Makefile to fill dependencies for testing * Fix syslogging of exceptions by stripping newlines from the exception info * Merged fix for bug 608505 so unit tests pass * Check exit codes when spawning processes by default * Nobody wants to take on this twisted cleanup. It works for now, but could be much nicer if twisted has a nice hook-point for exception mapping * syslog changes * typo fixes and extra print statements removed * added todo for ABC * Fixed bug 608505 - was freeing the wrong address (should have freed 'secondaddress', was freeing 'address') * Merged trunk, fixed extra references to fake\_users * refactoring of imports for fakeldapdriver * make nova-network executable * refactor daemons to use common base class in preparation for network refactor * reorder import statement and remove commented-out test case that is the same as api\_unittest in objectstore\_unittest * Fixes up Bucket to throw proper NotFound and NotEmpty exceptions in constructor and delete() method, and fixes up objectstore\_unittest to properly use assertRaises() to check for proper exceptions and remove the assert\_ calls * Fix bug 607501. Raise 403, not exception if Authorization header not passed. Also added missing call to request.finish() & Python exception-handling style tweak * merge with twisted-volume * remove all of the unused saved return values from attach\_to\_twisted * fix for describe addresses showing everyone's public ips * update the logic for calculating network sizes * Locally administered mac addresses have the second least significant bit of the most significant byte set. If this byte is set then udev on ubuntu doesn't set persistent net rules * use a locally administered mac address so it isn't saved by udev * Convert processpool to a singleton, and switch node.py calls to use it. (Replaces passing a processpool object around all the time.) * Fixed the broken reference to * remove spaces from export statements in scripts relating to certs * Cleanups * Able to set up DNS, and remove udev network rules * Move self.ldap to global ldap to make changes easier if we ever implement settings * Cleanup per suggestions * network unittest clean up * Test cleanup, make driver return dictionaries and construct objects in manager * Able to boot without kernel or ramdisk. libvirt.xml.template is now a Cheetah template * Merged https://code.launchpad.net/~justin-fathomdb/nova/copy-error-handling * Merged bug fixes * Map exceptions to 404 / 403 codes, as was done before the move to twisted. However, I don't think this is the right way to do this in Twisted. For example, exceptions thrown after the render method returns will not be mapped * Merged lp:~justin-fathomdb/nova/bug607501 * Merged trunk. Fixed new references to UserManager * I put the call to request.finish() in the wrong place. :-( * More docstrings, don't autocreate projects * Raise 401, not exception if Authorization header not passed. Also minor fixes & Python exception-handling style tweak * LdapDriver cleanup: docstrings and parameter ordering * Ask curl to set exit code if resource was not found * Fixes to dhcp lease code to use a flagfile * merged trunk * Massive refactor of users.py * Hmm, serves me right for not understanding the request, eh? :) Now too\_many\_addresses test case is idempotent in regards to running in isolation and uses self.flags.network\_size instead of the magic number 32 * Redirect STDERR to output to an errlog file when running run\_tests.py * Send message ack in rpc.call and make queues durable * Fixed name change caused by remove-vendor merge * Replace tornado objectstore with twisted web * merged in trunk and fixed import merge errors * First commit of XenAPI-specific code (i.e. connections to the open-source community project Xen Cloud Platform, or the open-source commercial product Citrix XenServer) * Remove the tight coupling between nova.compute.monitor and libvirt. The libvirt-specific code was placed in nova.virt.libvirt\_conn by the last changeset. This greatly simplifies the monitor code, and puts the libvirt-specific XML record parsing in a libvirt-specific place * In preparation for XenAPI support, refactor the interface between nova.compute and the hypervisor (i.e. libvirt) * Fixed references to nova.utils that were broken by a change of import statement in the remove-vendor merge * Remove s3\_internal\_port setting. Objectstore should be able to handle the beatings now. As such, nginx is no longer needed, so it's removed from the dependencies and the configuration files are removed * Replace nova-objectstore with a twistd style wrapper. Add a get\_application method to objectstore handler * Minor post-merge fixes * Fixed \_redis\_name and \_redis\_key * Add build\_sphinx support * fix conf file to no longer have daemonize=1 because twistd daemonizes by default * make nova-volume start with twisteds daemonize stuff * Makin the queues non-durable by default * Ack messages during call so rabbit leaks less * simplify call to simple\_execute * merge extra singleton-pool changes * Added a config file to let setup.py drive building the sphinx docs * make simple method wrapper for process pool simple\_execute * change volume code to use twisted * remove calls to runthis from node * merge with singleton pool * Removed unused Pool from process.py, added a singleton pool called SharedPool, changed calls in node to use singleton pool * Fixes things that were not quite right after big merge party * Make S3 API handler more idiomatic Twisted Web-y * \_redis\_name wasn't picking up override\_type correctly, and \_redis\_key wasn't using it * Quick fix to variable names for consistency in documentation.. * Adds a fix to the idempotency of the test\_too\_many\_addresses test case by adding a simple property to the BaseNetwork class and calculating the number of available IPs by asking the network class to tell the test how many static and preallocated IP addresses are in use before entering the loop to "blow up" the address allocation.. * Adds a flag to redirect STDERR when running run\_tests.py. Defaults to a truncate-on-write logfile named run\_tests.err.log. Adds ignore rule for generated errlog file * no more print in storage unittest * reorder imports spacing * Fixes to dhcp lease code to use a flagfile * merged trunk * This branch fixes some unfortunate interaction between Nova and boto * Make sure we pass str objects instead of unicode objects to boto as our credentials * remove import of vendor since we have PPA now * Updates the test suite to work * Disabled a tmpdir cleanup * remove vendor * update copyrights * Volume\_ID identifier needed a return in the property. Also looking for race conditions in the destructor * bin to import images from canonical image store * add logging import to datastore * fix merge errors * change default vpn ports and remove complex vpn ip iteration * fix reference to BasicModel and imports * Cleanups related to BasicModel (whitespace, names, etc) * Updating buildbot address * Fixed buildbot * work on importing images * When destroying an Instance, disassociate with Node * Smiteme * Smiteme * Smiteme * Smiteme * Move BasicModel into datastore * Smiteme * Smiteme * Whitespace change * unhardcode the binary name * Fooish * Finish singletonizing UserManager usage * Debian package additions for simple network template * Foo * Whitespace fix * Remove debug statement * Foo * fix a typo * Added build-deps to debian/control that are needed to run test suite. Fixed an error in a test case * optimization to not load all instances when describe instances is called * More buildbot testing * More buildbot testing * More buildbot testing * More buildbot testing * More buildbot testing * More buildbot testing * Addin buildbot * Fix merge changelog and merge errors in utils.py * Fixes from code review * release 0.2.2-10 * fix for extra space in vblade-persist * Avoid using s-expr, pkcs1-conv, and lsh-export-key * release 0.2.2-9 * fixed bug in auth group\_exists * Move nova related configuration files into /etc/nova/ * move check for none before get mpi data * Refactored smoketests flags * Fixes to smoketest flags * Minor smoketest refactoring * fixes from code review * typo in exception in crypto * datetime import typo * added missing isotime method from utils * release 0.2.2-8 * missed a comma * release 0.2.2-7 * use a flag for cert subject * whitespace fixes and header changes * Fixed the os.environ patch (bogus) * Fixes as per Vish review (whitespace, import statements) * Off by one error in the allocation test (can someone check my subnet math?) * Adding more tests, refactoring for dhcp logic * Got dhcpleasor working, with test ENV for testing, and rpc.cast for real world * Capture signals from dnsmasq and use them to update network state * Relax the Twisted dependency to python-twisted-core (rather than the full stack) * releasing version 0.3.0+really0.2.2-0ubuntu0ppa3 * If set, pass KernelId and RamdiskId from RunInstances call to the target compute node * Add a default flag file for nova-manage to help it find the CA * Ship the CA directory in nova-common * Add a dependency on nginx from nova-objectsstore and install a suitable configuration file * releasing version 0.3.0+really0.2.2-0ubuntu0ppa2 * Don't pass --daemonize=1 to nova-compute. It's already daemonising by default * Add debian/nova-common.dirs to create var/lib/nova/{buckets,CA,images,instances,keys,networks} * keeper\_path is really caled datastore\_path * Fixed package version * Move templates from python directories to /usr/share/nova * Added --network\_path setting to nova-compute's flagfile * releasing version 0.3.0+really0.2.2-0ubuntu0ppa1 * Use rmdir instead of rm -rf to remove a tempdir * Set better defaults in flagfiles * Fixes and add interface template * Simple network injection * Simple Network avoids vlans * clean a few merge errors from network * Add curl as a dependency of nova-compute * getting started update * getting started update * Remove \_s errors from merge * fix typos in node from merge * remove spaces from default cert * Make sure get\_assigned\_vlans and BaseNetwork.hosts always return a dict, even if the key is currently empty in the KVS * Add \_s instance attribute to Instance class. It's referenced in a bunch of places, but is never set. This is unlikely to be the right fix (why have two attributes pointing to the same object?), but it seems to make ends meet * Replace spaces in x509 cert subject with underscores. It ends up getting split(' ')'ed and passed to subprocess.Popen, so it needs to not have spaces in it, otherwise openssl gets very upset * Expand somewhat on the short and long descriptions in debian/control * Use separate configuration files for the different daemons * Removed trailing whitespace from header * Updated licenses * Added flags to smoketests. General cleanup * removed all references to keeper * reformatting * Vpn ips and ports use redis * review reformat * code review reformat * We need to be able to look up Instance by Node (live migration) * Get rid of RedisModel * formatting fixes and refactoring from code review * reformatting to fit within 80 characters * simplified handling of tempdir for Fakes * fix for multiple shelves for each volume node * add object class violation exception to fakeldap * remove spaces from default cert * remove silly default from generate cert * fix of fakeldap imports and exceptions * More Comments, cleanup, and reformatting * users.py cleanup for exception handling and typo * Make fakeldap use redis * Refactor network.Vlan to be a BasicModel, since it touched Redis * bugfix: rename \_s to datamodel in Node in some places it was overlooked * fix key injection script * Fixes based on code review 27001 * added TODO * Admin API + Worker Tracking * fixed typo * style cleanup * add more info to vpn list * Use flag for vpn key suffix instead of hardcoded string * don't fail to create vpn key if dir exists * Create Volume should only take an integer between 0 and 1000 * Placeholders for missing describe commands * Set forward delay to zero (partial fix to bug #518) * more comment reformatting * fit comment within 80 lines * removed extraneous reference to rpc in objectstore unit test * Fix queue connection bugs * Fix deletion of user when he is the last member of the group * Fix error message for checking for projectmanager role * Installer now creates global developer role * Removed trailing whitespace from header * added nova-instancemonitor debian config * Updated licenses * Added flags to smoketests. General cleanup * A few missing files from the twisted patch * Tweaks to get instancemonitor running * Initial commit of nodemonitor * Create DescribeImageAttribute api method * release 0.2.2-6 * disk.py needed input for key injection to work * release 2.2-5 * message checking callbacks only need to run 10 times a second * release 2.2-4 * trackback formatting isn't logging correctly * documentation updates * fix missing tab in nova-manage * Release 2.2-3 * use logger to print trace of unhandled exceptions * add exit status to nova-manage * fix fakeldap so it can use redis keeper * fix is\_running failing because state was stored as a string * more commands in nova-manage for projects and roles * More volume test fixes * typo in reboot instances * Fix mount of drive for test image * don't need sudo anymore * Cleaning up smoketests * boto uses instance\_type not size * Fix to volume smoketests * fix display of project name for admin in describe instances * make sure to deexpress before we remove the host since deexpress uses the host * fix error in disassociate address * fixed reversed filtering logic * filter keypairs for vpn keys * allow multiple vpn connections with the same credentials * Added admin command to restart networks * hide vpn instances unless you are an admin and allow run\_instances to launch vpn image even if it is private * typo in my ping call * try to ping vpn instances * sensible defaults for instance types * add missing import to pipelib * Give vpns the proper ip address * Fix format addresses * Release 0.2.2-2 * fix more casing errors and make attachment set print * removed extraneous .volume\_id * don't allow volumes to be attached to the same mountpoint * fix case for volume attributes * fix sectors off by one * Don't use keeper for instances * fix default state to be 0 instead of pending * Release 0.2.2 * Fix for mpi cpu reporting * fix detach volume * fix status code printing in cloud * add project ids to volumes * add back accidentally removed bridge name. str is reserved, so don't use it as a variable name * whitespace fixes and format instances set of object fixes * Use instdir to iterate through instances * fix bridge name * Adding basic validation of volume size on creation, plus tests for it * finished gutting keeper from volume * First pass at validation unit tests. Haven't figured out class methods yet * Removing keeper sludge * Set volume status properly, first pass at validation decorators * Adding missing default values and fixing bare Redis fetch for volume list * one more handler typo * fix objectstore handler typo * fix modify image attribute typo * NetworkNode doesn't exist anymore * Added back in missing gateway property on networks * Refactored Instance to get rid of \_s bits, and fixed some bugs in state management * Delete instance files on shutdown * Flush redis db in setup and teardown of tests * Cleaning up my accidental merge of the docs branch * change pipelib to work with projects * Volumes support intermediate state. Don't have to cast to storage nodes for attach/detach anymore, just let node update redis with state * Adding nojekyll for directories * Fix for #437 (deleting attached volumes), plus some >9 blade\_id fixes * fix instance iteration to use self.instdir.all instead of older iterators * nasa ldap defaults * sensible rbac defaults * Tests for rbac code * Patch to allow rbac * Adding mpi data * Adding cloudpipe and vpn data back in to network.py * how we build our debs * Revert "fix a bug with AOE number generation" * re-added cloudpipe * devin's smoketests * tools to clean vlans and run our old install script * fix a bug with AOE number generation * Initial commit of nodemonitor * Create DescribeImageAttribute api method * Create DescribeImageAttribute api method * More rackspace API * git checkpoint commit post-wsgi * update spacing * implement image serving in objectstore so nginx isn't required in development * update twitter username * make a "Running" topic instead of having it flow under "Configuration" * Make nginx config be in a code block * More doc updates: nginx & pycurl * Add a README, because GitHub loves them. Update the getting started docs * update spacing * Commit what I have almost working before diverging * first go at moving from tornado to twisted * implement image serving in objectstore so nginx isn't required in development * update twitter username * Update documentation * fix for reactor.spawnProcess sending deprecation warning * patch from issue 4001 * Fix for LoopingCall failing Added in exception logging around amqp calls Creating deferred in receive before ack() message was causing IOError (interrupted system calls), probably because the same message was getting processed twice in some situations, causing the system calls to be doubled. Moving the ack() earlier fixed the problem. The code works now with an interval of 0 but that causes heavy processor usage. An interval of 0.01 keeps the cpu usage within reasonable limits * get rid of anyjson in rpc and fix bad reference to rpc.Connection * gateway undefined * fix cloud instances method * Various cloud fixes * make get\_my\_ip return 127.0.0.1 for testing * Adds a Twisted implementation of a process pool * make a "Running" topic instead of having it flow under "Configuration" * Make nginx config be in a code block * More doc updates: nginx & pycurl * Add a README, because GitHub loves them. Update the getting started docs * whitespace fixes for nova/utils.py * Add project methods to nova-manage * Fix novarc to use project when creating access key * removed reference to nonexistent flag * Josh's networking refactor, modified to work with projects * Merged Vish's work on adding projects to nova * missed the gitignore * initial commit