From ac09199094e786dc59bfe95b89d99cfbd280868e Mon Sep 17 00:00:00 2001 From: Andrew Davison Date: Fri, 19 Feb 2016 15:41:33 +0100 Subject: [PATCH 1/8] Renamed `RecordingChannelGroup` to `ChannelIndex`, following the discussion in #210 --- doc/source/core.rst | 28 +-- doc/source/images/base_schematic.svg | 2 +- ...chematic_with_IrregularlySampledSignal.svg | 2 +- doc/source/images/generate_diagram.py | 2 +- doc/source/images/multi_segment_diagram.svg | 2 +- .../images/simple_generated_diagram.svg | 4 +- doc/source/io.rst | 2 +- doc/source/io_developers_guide.rst | 2 +- doc/source/usecases.rst | 22 +- examples/generated_data.py | 14 +- neo/core/__init__.py | 6 +- neo/core/analogsignal.py | 10 +- neo/core/baseneo.py | 10 +- neo/core/block.py | 14 +- neo/core/irregularlysampledsignal.py | 4 +- neo/core/recordingchannelgroup.py | 38 ++-- neo/core/segment.py | 6 +- neo/core/unit.py | 10 +- neo/io/alphaomegaio.py | 2 +- neo/io/baseio.py | 10 +- neo/io/blackrockio.py | 16 +- neo/io/blackrockio_deprecated.py | 12 +- neo/io/brainwaredamio.py | 10 +- neo/io/brainwaref32io.py | 12 +- neo/io/brainwaresrcio.py | 18 +- neo/io/elphyio.py | 14 +- neo/io/hdf5io.py | 30 +-- neo/io/kwikio.py | 10 +- neo/io/neuroscopeio.py | 8 +- neo/io/tools.py | 14 +- neo/test/coretest/test_analogsignalarray.py | 12 +- neo/test/coretest/test_block.py | 32 +-- neo/test/coretest/test_generate_datasets.py | 30 +-- .../coretest/test_recordingchannelgroup.py | 204 +++++++++--------- neo/test/coretest/test_segment.py | 16 +- neo/test/coretest/test_unit.py | 18 +- neo/test/generate_datasets.py | 8 +- neo/test/iotest/test_brainwaredamio.py | 6 +- neo/test/iotest/test_brainwaref32io.py | 6 +- neo/test/iotest/test_brainwaresrcio.py | 8 +- neo/test/tools.py | 2 +- 41 files changed, 341 insertions(+), 335 deletions(-) diff --git a/doc/source/core.rst b/doc/source/core.rst index 863034eb0..c6ac00ac5 100644 --- a/doc/source/core.rst +++ b/doc/source/core.rst @@ -37,7 +37,7 @@ There is a simple hierarchy of containers: A container for heterogeneous discrete or continous data sharing a common clock (time basis) but not necessarily the same sampling rate, start time or end time. A :py:class:`Segment` can be considered as equivalent to a "trial", "episode", "run", "recording", etc., depending on the experimental context. May contain any of the data objects. :py:class:`Block`: - The top-level container gathering all of the data, discrete and continuous, for a given recording session. Contains :class:`Segment`, :class:`Unit` and :class:`RecordingChannelGroup` objects. + The top-level container gathering all of the data, discrete and continuous, for a given recording session. Contains :class:`Segment`, :class:`Unit` and :class:`ChannelIndex` objects. Grouping objects ---------------- @@ -48,19 +48,19 @@ membrane potential signals, etc. They contain references to data objects that cut across the simple container hierarchy. -:py:class:`RecordingChannelGroup`: +:py:class:`ChannelIndex`: A set of indices into :py:class:`AnalogSignal` objects, representing logical and/or physical recording channels. This has several uses: * for linking :py:class:`AnalogSignal` objects recorded from the same (multi)electrode across several :py:class:`Segment` objects. * for spike sorting of extracellular signals, where spikes may be recorded on more than one - recording channel, and the :py:class:`RecordingChannelGroup` can be used to associate each + recording channel, and the :py:class:`ChannelIndex` can be used to associate each :py:class:`Unit` with the group of recording channels from which it was calculated. :py:class:`Unit`: A Unit gathers all the :class:`SpikeTrain` objects within a common :class:`Block`, possibly across several Segments, that have been emitted by the same cell. - A :class:`Unit` is linked to the :class:`RecordingChannelGroup` object from which it was detected. + A :class:`Unit` is linked to the :class:`ChannelIndex` object from which it was detected. .. image:: images/base_schematic.png :height: 500 px @@ -91,14 +91,14 @@ In general, an object can access its children with an attribute *childname+s* in * :attr:`Block.segments` * :attr:`Segments.analogsignals` * :attr:`Segments.spiketrains` - * :attr:`Block.recordingchannelgroups` + * :attr:`Block.channelindexes` These relationships are bi-directional, i.e. a child object can access its parent: * :attr:`Segment.block` * :attr:`AnalogSignal.segment` * :attr:`SpikeTrains.segment` - * :attr:`RecordingChannelGroup.block` + * :attr:`ChannelIndex.block` Here is an example showing these relationships in use:: @@ -119,14 +119,14 @@ Here is an example showing these relationships in use:: In some cases, a one-to-many relationship is sufficient. Here is a simple example with tetrodes, in which each tetrode has its own group.:: - from neo import Block, RecordingChannelGroup + from neo import Block, ChannelIndex bl = Block() # the four tetrodes for i in range(4): - rcg = RecordingChannelGroup(name = 'Tetrode %d' % i, + rcg = ChannelIndex(name = 'Tetrode %d' % i, channel_indexes=[0, 1, 2, 3]) - bl.recordingchannelgroups.append(rcg) + bl.channelindexes.append(rcg) # now we load the data and associate it with the created channels # ... @@ -136,19 +136,19 @@ Now consider a more complex example: a 1x4 silicon probe, with a neuron on chann bl = Block(name='probe data') # one group for each neuron - rcg0 = RecordingChannelGroup(name='Group 0', + rcg0 = ChannelIndex(name='Group 0', channel_indexes=[0, 1, 2]) - bl.recordingchannelgroups.append(rcg0) + bl.channelindexes.append(rcg0) - rcg1 = RecordingChannelGroup(name='Group 1', + rcg1 = ChannelIndex(name='Group 1', channel_indexes=[1, 2, 3]) - bl.recordingchannelgroups.append(rcg1) + bl.channelindexes.append(rcg1) # now we add the spiketrain from Unit 0 to rcg0 # and add the spiketrain from Unit 1 to rcg1 # ... -Note that because neurons are sorted from groups of channels in this situation, it is natural that the :py:class:`RecordingChannelGroup` contains a reference to the :py:class:`Unit` object. +Note that because neurons are sorted from groups of channels in this situation, it is natural that the :py:class:`ChannelIndex` contains a reference to the :py:class:`Unit` object. That unit then contains references to its spiketrains. Also note that recording channels can be identified by names/labels as well as, or instead of, integer indices. diff --git a/doc/source/images/base_schematic.svg b/doc/source/images/base_schematic.svg index 56dab9d3e..4086edad9 100644 --- a/doc/source/images/base_schematic.svg +++ b/doc/source/images/base_schematic.svg @@ -3708,7 +3708,7 @@ x="283.56253" y="30.577604" id="tspan10382-0" - dy="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1.6593653">RecordingChannelGroup + dy="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1.6593653">ChannelIndex RecordingChannelGroup + dy="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1.6593653">ChannelIndex RecordingChannelGroup + style="stroke-width:1">ChannelIndex - + - + diff --git a/doc/source/io.rst b/doc/source/io.rst index 0c3560b0e..b1d429b5e 100644 --- a/doc/source/io.rst +++ b/doc/source/io.rst @@ -158,7 +158,7 @@ Some IOs support advanced forms of lazy loading, cascading or both (these featur You do not have to do anything else, lazy cascading is now active for the object you just loaded. You can interact with the object in the same way as if it was loaded with ``cascade=True``. However, only the objects that are actually accessed are loaded as soon as they are needed:: - >>> print(block.recordingchannelgroups[0].name) # The first RecordingChannelGroup is loaded + >>> print(block.channelindexes[0].name) # The first ChannelIndex is loaded >>> print(block.segments[0].analogsignals[1]) # The first Segment and its second AnalogSignal are loaded Once an object has been loaded with lazy cascading, it stays in memory:: diff --git a/doc/source/io_developers_guide.rst b/doc/source/io_developers_guide.rst index b7d7b13b2..d661cc560 100644 --- a/doc/source/io_developers_guide.rst +++ b/doc/source/io_developers_guide.rst @@ -60,7 +60,7 @@ enable advanced lazy loading: Because the links of objects can point to previously loaded objects, you need to cache all loaded objects in the IO. If :meth:`load_lazy_cascade` is called with the address of a previously loaded object, return the object instead of loading it again. Also, a call to :meth:`load_lazy_cascade` might require you to load additional objects further up in the hierarchy. For example, if a :class:`SpikeTrain` is accessed through a - :class:`Segment`, its :class:`Unit` and the :class:`RecordingChannelGroup` of the :class:`Unit` might have to be loaded at that point as well + :class:`Segment`, its :class:`Unit` and the :class:`ChannelIndex` of the :class:`Unit` might have to be loaded at that point as well if they have not been accessed before. Note that you are free to restrict lazy cascading to certain objects. For example, you could use the ``LazyList`` only for the ``analogsignals`` diff --git a/doc/source/usecases.rst b/doc/source/usecases.rst index 2ff5c0977..39c75796e 100644 --- a/doc/source/usecases.rst +++ b/doc/source/usecases.rst @@ -12,11 +12,11 @@ that we have recorded three trials/episodes. We therefore have a total of Our entire dataset is contained in a :class:`Block`, which in turn contains: * 3 :class:`Segment` objects, each representing data from a single trial, - * 1 :class:`RecordingChannelGroup`. + * 1 :class:`ChannelIndex`. .. image:: images/multi_segment_diagram.png -:class:`Segment` and :class:`RecordingChannelGroup` objects provide two different +:class:`Segment` and :class:`ChannelIndex` objects provide two different ways to access the data, corresponding respectively, in this scenario, to access by **time** and by **space**. @@ -52,8 +52,8 @@ Perhaps you want to see which physical location produces the strongest response, .. doctest:: - # We assume that our block has only 1 RecordingChannelGroup - rcg = block.recordingchannelgroups[0]: + # We assume that our block has only 1 ChannelIndex + rcg = block.channelindexes[0]: index = rcg.channel_indexes siglist = [sig[:, index] for sig in rcg.analogsignals] @@ -90,10 +90,10 @@ in :class:`SpikeTrain` objects. Again, our data set is contained in a :class:`Block`, which contains: * 3 :class:`Segments` (one per trial). - * 2 :class:`RecordingChannelGroups` (one per tetrode), which contain: + * 2 :class:`ChannelIndexes` (one per tetrode), which contain: - * 2 :class:`Unit` objects (= 2 neurons) for the first :class:`RecordingChannelGroup` - * 5 :class:`Units` for the second :class:`RecordingChannelGroup`. + * 2 :class:`Unit` objects (= 2 neurons) for the first :class:`ChannelIndex` + * 5 :class:`Units` for the second :class:`ChannelIndex`. In total we have 3 x 7 = 21 :class:`SpikeTrains` in this :class:`Block`. @@ -135,14 +135,14 @@ Now we can calculate the PSTH averaged over trials for each unit, using the plt.title("PSTH of unit %s" % unit.name) -**By RecordingChannelGroup** +**By ChannelIndex** Here we calculate a PSTH averaged over trials by channel location, blending all units: .. doctest:: - for rcg in block.recordingchannelgroups: + for rcg in block.channelindexes: stlist = [] for unit in rcg.units: stlist.extend([st - st.t_start for st in unit.spiketrains]) @@ -158,7 +158,7 @@ Spike sorting Spike sorting is the process of detecting and classifying high-frequency deflections ("spikes") on a group of physically nearby recording channels. -For example, let's say you have defined a RecordingChannelGroup for a tetrode +For example, let's say you have defined a ChannelIndex for a tetrode containing 4 separate channels. Here is an example showing (with fake data) how you could iterate over the contained signals and extract spike times. (Of course in reality you would use a more sophisticated algorithm.) @@ -177,7 +177,7 @@ how you could iterate over the contained signals and extract spike times. [0.1, 0.1, 0.1, 0.1], [0.1, 0.1, 0.1, 0.1]], sampling_rate=1000*Hz, units='V')) - rcg = RecordingChannelGroup(channel_indexes=[0, 1, 2, 3]) + rcg = ChannelIndex(channel_indexes=[0, 1, 2, 3]) rcg.analogsignals.append(seg.analogsignals[0]) diff --git a/examples/generated_data.py b/examples/generated_data.py index d648380fa..a03fd5753 100644 --- a/examples/generated_data.py +++ b/examples/generated_data.py @@ -24,10 +24,10 @@ def generate_block(n_segments=3, n_channels=8, n_units=3, # Create container and grouping objects segments = [neo.Segment(index=i) for i in range(n_segments)] - rcg = neo.RecordingChannelGroup(name='T0') + rcg = neo.ChannelIndex(name='T0') for i in range(n_channels): rc = neo.RecordingChannel(name='C%d' % i, index=i) - rc.recordingchannelgroups = [rcg] + rc.channelindexes = [rcg] rcg.recordingchannels.append(rc) units = [neo.Unit('U%d' % i) for i in range(n_units)] @@ -35,7 +35,7 @@ def generate_block(n_segments=3, n_channels=8, n_units=3, block = neo.Block() block.segments = segments - block.recordingchannelgroups = [rcg] + block.channelindexes = [rcg] # Create synthetic data for seg in segments: @@ -85,9 +85,9 @@ def generate_block(n_segments=3, n_channels=8, n_units=3, # averaging over trials. For example, perhaps you wish to see which physical # location produces the strongest response, and each stimulus was the same: -# We assume that our block has only 1 RecordingChannelGroup and each +# We assume that our block has only 1 ChannelIndex and each # RecordingChannel only has 1 AnalogSignal. -rcg = block.recordingchannelgroups[0] +rcg = block.channelindexes[0] for rc in rcg.recordingchannels: print("Analysing channel %d: %s" % (rc.index, rc.name)) @@ -121,9 +121,9 @@ def generate_block(n_segments=3, n_channels=8, n_units=3, plt.bar(bins[:-1], count, width=bins[1] - bins[0]) plt.title("PSTH of unit %s" % unit.name) -# By RecordingChannelGroup. Here we calculate a PSTH averaged over trials by +# By ChannelIndex. Here we calculate a PSTH averaged over trials by # channel location, blending all Units: -for rcg in block.recordingchannelgroups: +for rcg in block.channelindexes: stlist = [] for unit in rcg.units: stlist.extend([st - st.t_start for st in unit.spiketrains]) diff --git a/neo/core/__init__.py b/neo/core/__init__.py index 0f2002103..267d6ad2f 100644 --- a/neo/core/__init__.py +++ b/neo/core/__init__.py @@ -12,7 +12,7 @@ .. autoclass:: Block .. autoclass:: Segment -.. autoclass:: RecordingChannelGroup +.. autoclass:: ChannelIndex .. autoclass:: Unit .. autoclass:: AnalogSignal @@ -30,7 +30,7 @@ from neo.core.block import Block from neo.core.segment import Segment -from neo.core.recordingchannelgroup import RecordingChannelGroup +from neo.core.recordingchannelgroup import ChannelIndex from neo.core.unit import Unit from neo.core.analogsignal import AnalogSignal @@ -42,7 +42,7 @@ from neo.core.spiketrain import SpikeTrain # Block should always be first in this list -objectlist = [Block, Segment, RecordingChannelGroup, +objectlist = [Block, Segment, ChannelIndex, AnalogSignal, IrregularlySampledSignal, Event, Epoch, Unit, SpikeTrain] diff --git a/neo/core/analogsignal.py b/neo/core/analogsignal.py index 1e484c916..2af4107e6 100644 --- a/neo/core/analogsignal.py +++ b/neo/core/analogsignal.py @@ -129,7 +129,7 @@ class AnalogSignal(BaseNeo, pq.Quantity): read-only. (:attr:`t_start` + arange(:attr:`shape`[0])/:attr:`sampling_rate`) :channel_index: - access to the channel_index attribute of the principal RecordingChannelGroup + access to the channel_index attribute of the principal ChannelIndex associated with this signal. *Slicing*: @@ -146,7 +146,7 @@ class AnalogSignal(BaseNeo, pq.Quantity): ''' - _single_parent_objects = ('Segment', 'RecordingChannelGroup') + _single_parent_objects = ('Segment', 'ChannelIndex') _quantity_attr = 'signal' _necessary_attrs = (('signal', pq.Quantity, 2), ('sampling_rate', pq.Quantity, 0), @@ -185,7 +185,7 @@ def __new__(cls, signal, units=None, dtype=None, copy=True, obj._sampling_rate = _get_sampling_rate(sampling_rate, sampling_period) obj.segment = None - obj.recordingchannelgroup = None + obj.channelindex = None return obj def __init__(self, signal, units=None, dtype=None, copy=True, @@ -259,8 +259,8 @@ def __repr__(self): def channel_index(self): """ """ - if self.recordingchannelgroup: - return self.recordingchannelgroup.channel_indexes + if self.channelindex: + return self.channelindex.channel_indexes else: return None diff --git a/neo/core/baseneo.py b/neo/core/baseneo.py index 1e575dd7a..9abd5abab 100644 --- a/neo/core/baseneo.py +++ b/neo/core/baseneo.py @@ -125,7 +125,10 @@ def _reference_name(class_name): `segment.block`. The attribute name `block` is obtained by calling `_container_name("Block")`. """ - return class_name.lower() + name_map = { + "ChannelIndex": "channelindex" + } + return name_map.get(class_name, class_name.lower()) def _container_name(class_name): @@ -137,7 +140,10 @@ def _container_name(class_name): referenced by `block.segments`. The attribute name `segments` is obtained by calling `_container_name_plural("Segment")`. """ - return _reference_name(class_name) + 's' + name_map = { + "ChannelIndex": "channelindexes" + } + return name_map.get(class_name, _reference_name(class_name) + 's') class BaseNeo(object): diff --git a/neo/core/block.py b/neo/core/block.py index 1afcb7c2b..9d14adf0e 100644 --- a/neo/core/block.py +++ b/neo/core/block.py @@ -27,25 +27,25 @@ class Block(Container): *Usage*:: - >>> from neo.core import (Block, Segment, RecordingChannelGroup, + >>> from neo.core import (Block, Segment, ChannelIndex, ... AnalogSignal) >>> from quantities import nA, kHz >>> import numpy as np >>> - >>> # create a Block with 3 Segment and 2 RecordingChannelGroup objects + >>> # create a Block with 3 Segment and 2 ChannelIndex objects ,,, blk = Block() >>> for ind in range(3): ... seg = Segment(name='segment %d' % ind, index=ind) ... blk.segments.append(seg) ... >>> for ind in range(2): - ... rcg = RecordingChannelGroup(name='Array probe %d' % ind, + ... rcg = ChannelIndex(name='Array probe %d' % ind, ... channel_indexes=np.arange(64)) - ... blk.recordingchannelgroups.append(rcg) + ... blk.channelindexes.append(rcg) ... >>> # Populate the Block with AnalogSignal objects ... for seg in blk.segments: - ... for rcg in blk.recordingchannelgroups: + ... for rcg in blk.channelindexes: ... a = AnalogSignal(np.random.randn(10000, 64)*nA, ... sampling_rate=10*kHz) ... rcg.analogsignals.append(a) @@ -75,11 +75,11 @@ class Block(Container): *Container of*: :class:`Segment` - :class:`RecordingChannelGroup` + :class:`ChannelIndex` ''' - _container_child_objects = ('Segment', 'RecordingChannelGroup') + _container_child_objects = ('Segment', 'ChannelIndex') _child_properties = ('Unit',) _recommended_attrs = ((('file_datetime', datetime), ('rec_datetime', datetime), diff --git a/neo/core/irregularlysampledsignal.py b/neo/core/irregularlysampledsignal.py index 9be4c1780..2117146d1 100644 --- a/neo/core/irregularlysampledsignal.py +++ b/neo/core/irregularlysampledsignal.py @@ -104,7 +104,7 @@ class IrregularlySampledSignal(BaseNeo, pq.Quantity): ''' - _single_parent_objects = ('Segment', 'RecordingChannelGroup') + _single_parent_objects = ('Segment', 'ChannelIndex') _quantity_attr = 'signal' _necessary_attrs = (('times', pq.Quantity, 1), ('signal', pq.Quantity, 2)) @@ -148,7 +148,7 @@ def __new__(cls, times, signal, units=None, time_units=None, dtype=None, obj.times = pq.Quantity(times, units=time_units, dtype=float, copy=copy) obj.segment = None - obj.recordingchannelgroup = None + obj.channelindex = None return obj diff --git a/neo/core/recordingchannelgroup.py b/neo/core/recordingchannelgroup.py index a96c57f4a..b919075ee 100644 --- a/neo/core/recordingchannelgroup.py +++ b/neo/core/recordingchannelgroup.py @@ -1,9 +1,9 @@ # -*- coding: utf-8 -*- ''' -This module defines :class:`RecordingChannelGroup`, a container for multiple +This module defines :class:`ChannelIndex`, a container for multiple data channels. -:class:`RecordingChannelGroup` derives from :class:`Container`, +:class:`ChannelIndex` derives from :class:`Container`, from :module:`neo.core.container`. ''' @@ -16,7 +16,7 @@ from neo.core.container import Container -class RecordingChannelGroup(Container): +class ChannelIndex(Container): ''' A container for multiple data channels. @@ -30,25 +30,25 @@ class RecordingChannelGroup(Container): *Usage 1* multi :class:`Segment` recording with 2 electrode arrays:: - >>> from neo.core import (Block, Segment, RecordingChannelGroup, + >>> from neo.core import (Block, Segment, ChannelIndex, ... AnalogSignal) >>> from quantities import nA, kHz >>> import numpy as np >>> - >>> # create a Block with 3 Segment and 2 RecordingChannelGroup objects + >>> # create a Block with 3 Segment and 2 ChannelIndex objects ... blk = Block() >>> for ind in range(3): ... seg = Segment(name='segment %d' % ind, index=ind) ... blk.segments.append(seg) ... >>> for ind in range(2): - ... rcg = RecordingChannelGroup(name='Array probe %d' % ind, + ... rcg = ChannelIndex(name='Array probe %d' % ind, ... channel_indexes=np.arange(64)) - ... blk.recordingchannelgroups.append(rcg) + ... blk.channelindexes.append(rcg) ... >>> # Populate the Block with AnalogSignal objects ... for seg in blk.segments: - ... for rcg in blk.recordingchannelgroups: + ... for rcg in blk.channelindexes: ... a = AnalogSignal(np.random.randn(10000, 64)*nA, ... sampling_rate=10*kHz) ... rcg.analogsignals.append(a) @@ -56,7 +56,7 @@ class RecordingChannelGroup(Container): *Usage 2* grouping channels:: - >>> from neo.core import Block, RecordingChannelGroup + >>> from neo.core import Block, ChannelIndex >>> import numpy as np >>> >>> # Create a Block @@ -67,25 +67,25 @@ class RecordingChannelGroup(Container): ... sig = AnalogSignal(np.random.randn(1000, 8)*mV, sampling_rate=10*kHz) ... blk.segments[0].append(sig) ... - >>> # Create a new RecordingChannelGroup which groups three channels from the signal - ... rcg = RecordingChannelGroup(channel_names=np.array(['ch1', 'ch4', 'ch6']), + >>> # Create a new ChannelIndex which groups three channels from the signal + ... rcg = ChannelIndex(channel_names=np.array(['ch1', 'ch4', 'ch6']), ... channel_indexes = np.array([0, 3, 5]) >>> rcg.analogsignals.append(sig) - >>> blk.recordingchannelgroups.append(rcg) + >>> blk.channelindexes.append(rcg) *Usage 3* dealing with :class:`Unit` objects:: - >>> from neo.core import Block, RecordingChannelGroup, Unit + >>> from neo.core import Block, ChannelIndex, Unit >>> >>> # Create a Block >>> blk = Block() >>> - >>> # Create a new RecordingChannelGroup and add it to the Block - >>> rcg = RecordingChannelGroup(name='octotrode A') - >>> blk.recordingchannelgroups.append(rcg) + >>> # Create a new ChannelIndex and add it to the Block + >>> rcg = ChannelIndex(name='octotrode A') + >>> blk.channelindexes.append(rcg) >>> >>> # create several Unit objects and add them to the - >>> # RecordingChannelGroup + >>> # ChannelIndex ... for ind in range(5): ... unit = Unit(name = 'unit %d' % ind, ... description='after a long and hard spike sorting') @@ -127,12 +127,12 @@ def __init__(self, channel_indexes, channel_names=None, channel_ids=None, name=None, description=None, file_origin=None, coordinates=None, **annotations): ''' - Initialize a new :class:`RecordingChannelGroup` instance. + Initialize a new :class:`ChannelIndex` instance. ''' # Inherited initialization # Sets universally recommended attributes, and places all others # in annotations - super(RecordingChannelGroup, self).__init__(name=name, + super(ChannelIndex, self).__init__(name=name, description=description, file_origin=file_origin, **annotations) diff --git a/neo/core/segment.py b/neo/core/segment.py index 8be9b8587..a09fa7f73 100644 --- a/neo/core/segment.py +++ b/neo/core/segment.py @@ -181,11 +181,11 @@ def construct_subsegment_by_unit(self, unit_list=None): *Example*:: >>> from neo.core import (Segment, Block, Unit, SpikeTrain, - ... RecordingChannelGroup) + ... ChannelIndex) >>> >>> blk = Block() - >>> rcg = RecordingChannelGroup(name='group0') - >>> blk.recordingchannelgroups = [rcg] + >>> rcg = ChannelIndex(name='group0') + >>> blk.channelindexes = [rcg] >>> >>> for ind in range(5): ... unit = Unit(name='Unit #%s' % ind, channel_index=ind) diff --git a/neo/core/unit.py b/neo/core/unit.py index 64382ac9b..46ebd4364 100644 --- a/neo/core/unit.py +++ b/neo/core/unit.py @@ -26,7 +26,7 @@ class Unit(Container): so this object is not contained in the usual :class:`Block`/ :class:`Segment`/:class:`SpikeTrain` hierarchy. - A :class:`Unit` is linked to :class:`RecordingChannelGroup` objects from + A :class:`Unit` is linked to :class:`ChannelIndex` objects from which it was detected. With tetrodes, for instance, multiple channels may record the same :class:`Unit`. @@ -60,7 +60,7 @@ class Unit(Container): ''' _data_child_objects = ('SpikeTrain',) - _single_parent_objects = ('RecordingChannelGroup',) + _single_parent_objects = ('ChannelIndex',) _recommended_attrs = Container._recommended_attrs def __init__(self, name=None, description=None, file_origin=None, @@ -70,13 +70,13 @@ def __init__(self, name=None, description=None, file_origin=None, ''' super(Unit, self).__init__(name=name, description=description, file_origin=file_origin, **annotations) - self.recordingchannelgroup = None + self.channelindex = None @property def channel_indexes(self): """ """ - if self.recordingchannelgroup: - return self.recordingchannelgroup.channel_indexes + if self.channelindex: + return self.channelindex.channel_indexes else: return None diff --git a/neo/io/alphaomegaio.py b/neo/io/alphaomegaio.py index 8f371a1bf..d1a28a62b 100644 --- a/neo/io/alphaomegaio.py +++ b/neo/io/alphaomegaio.py @@ -354,7 +354,7 @@ def count_samples(m_length): file_origin = \ os.path.basename(self.filename), units = pq.dimensionless) -# todo apibreak: create RecordingChannelGroup for each signals +# todo apibreak: create ChannelIndex for each signals # ana_sig.channel_index = \ # file_blocks[list_chan[ind_chan]]['m_numChannel'] ana_sig.annotate(channel_name = \ diff --git a/neo/io/baseio.py b/neo/io/baseio.py index 61f5d0660..f9516f59a 100644 --- a/neo/io/baseio.py +++ b/neo/io/baseio.py @@ -19,7 +19,7 @@ from neo.core import (AnalogSignal, Block, Epoch, Event, IrregularlySampledSignal, - RecordingChannelGroup, + ChannelIndex, Segment, SpikeTrain, Unit) read_error = "This type is not supported by this file format for reading" @@ -161,8 +161,8 @@ def read_analogsignal(self, **kargs): def read_irregularlysampledsignal(self, **kargs): assert(IrregularlySampledSignal in self.readable_objects), read_error - def read_recordingchannelgroup(self, **kargs): - assert(RecordingChannelGroup in self.readable_objects), read_error + def read_channelindex(self, **kargs): + assert(ChannelIndex in self.readable_objects), read_error def read_event(self, **kargs): assert(Event in self.readable_objects), read_error @@ -189,8 +189,8 @@ def write_analogsignal(self, anasig, **kargs): def write_irregularlysampledsignal(self, irsig, **kargs): assert(IrregularlySampledSignal in self.writeable_objects), write_error - def write_recordingchannelgroup(self, rcg, **kargs): - assert(RecordingChannelGroup in self.writeable_objects), write_error + def write_channelindex(self, rcg, **kargs): + assert(ChannelIndex in self.writeable_objects), write_error def write_event(self, ev, **kargs): assert(Event in self.writeable_objects), write_error diff --git a/neo/io/blackrockio.py b/neo/io/blackrockio.py index bf800b0cb..782f22f82 100644 --- a/neo/io/blackrockio.py +++ b/neo/io/blackrockio.py @@ -40,7 +40,7 @@ from neo.io.baseio import BaseIO from neo.core import (Block, Segment, SpikeTrain, Unit, Event, - RecordingChannelGroup, AnalogSignal) + ChannelIndex, AnalogSignal) class BlackrockIO(BaseIO): @@ -50,7 +50,7 @@ class BlackrockIO(BaseIO): is_readable = True is_writable = False - supported_objects = [Block, Segment, AnalogSignal, RecordingChannelGroup, + supported_objects = [Block, Segment, AnalogSignal, ChannelIndex, SpikeTrain, Unit] readable_objects = [Block, Segment] @@ -93,18 +93,18 @@ def read_block(self, lazy=False, cascade=True, load_waveforms = False): channel_id = st.annotations['channel_id'] index = None for sig in seg.analogsignals: - if channel_id in sig.recordingchannelgroup.channel_ids: - i = np.where(sig.recordingchannelgroup.channel_ids==channel_id)[0][0] + if channel_id in sig.channelindex.channel_ids: + i = np.where(sig.channelindex.channel_ids==channel_id)[0][0] index = sig.channel_indexes[i] break if index is not None: - rcg = RecordingChannelGroup(name = 'Group {0}'.format(channel_id), + rcg = ChannelIndex(name = 'Group {0}'.format(channel_id), channel_indexes=np.array([index]), channel_ids=np.array([channel_id])) unit = Unit(name=st.name) unit.spiketrains.append(st) rcg.units.append(unit) - bl.recordingchannelgroups.append(rcg) + bl.channelindexes.append(rcg) bl.create_many_to_one_relationship() @@ -420,13 +420,13 @@ def read_nsx(self, filename_nsx, seg, lazy, cascade): channel_indexes = np.arange(anasig.shape[1]) # this assumes there is only ever a single segment - rcg = RecordingChannelGroup(channel_indexes=channel_indexes, + rcg = ChannelIndex(channel_indexes=channel_indexes, channel_ids=np.array(ch['channel_id']), channel_names=np.array(ch['label']), name=name, file_origin=filename_nsx) rcg.analogsignals.append(anasig) - anasig.recordingchannelgroup = rcg + anasig.channelindex = rcg seg.analogsignals.append(anasig) def read_sif(self, filename_sif, seg, ): diff --git a/neo/io/blackrockio_deprecated.py b/neo/io/blackrockio_deprecated.py index ca555592f..c8503ccd0 100644 --- a/neo/io/blackrockio_deprecated.py +++ b/neo/io/blackrockio_deprecated.py @@ -11,7 +11,7 @@ from neo.io.baseio import BaseIO from neo.core import (Block, Segment, - RecordingChannel, RecordingChannelGroup, AnalogSignal) + RecordingChannel, ChannelIndex, AnalogSignal) from neo.io import tools @@ -24,7 +24,7 @@ class BlackrockIO(BaseIO): is_writable = True # write is not supported # This IO can only manipulate continuous data, not spikes or events - supported_objects = [Block, Segment, AnalogSignal, RecordingChannelGroup, RecordingChannel] + supported_objects = [Block, Segment, AnalogSignal, ChannelIndex, RecordingChannel] # Keep things simple by always returning a block readable_objects = [Block] @@ -79,7 +79,7 @@ def read_block(self, lazy=False, cascade=True, n_stops). If these parameters are not specified, the default is to store all data in one Segment. - The Block also contains one RecordingChannelGroup for all channels. + The Block also contains one ChannelIndex for all channels. n_starts: list or array of starting times of each Segment in samples from the beginning of the file. @@ -112,9 +112,9 @@ def read_block(self, lazy=False, cascade=True, n_stops = [self.loader.header.n_samples] #~ # Add channel hierarchy - #~ rcg = RecordingChannelGroup(name='allchannels', + #~ rcg = ChannelIndex(name='allchannels', #~ description='group of all channels', file_origin=self.filename) - #~ block.recordingchannelgroups.append(rcg) + #~ block.channelindexes.append(rcg) #~ self.channel_number_to_recording_channel = {} #~ # Add each channel at a time to hierarchy @@ -277,7 +277,7 @@ def channel_indexes_in_segment(seg): channel_indices.append(sig.recordingchannel.index) for asa in seg.analogsignals: - channel_indices.append(asa.recordingchannelgroup.channel_indexes) + channel_indices.append(asa.channelindex.channel_indexes) return channel_indices diff --git a/neo/io/brainwaredamio.py b/neo/io/brainwaredamio.py index 158696274..3a143458a 100644 --- a/neo/io/brainwaredamio.py +++ b/neo/io/brainwaredamio.py @@ -39,7 +39,7 @@ # needed core neo modules from neo.core import (AnalogSignal, Block, - RecordingChannelGroup, Segment) + ChannelIndex, Segment) # need to subclass BaseIO from neo.io.baseio import BaseIO @@ -79,7 +79,7 @@ class BrainwareDamIO(BaseIO): # This class is able to directly or indirectly handle the following objects # You can notice that this greatly simplifies the full Neo object hierarchy - supported_objects = [Block, RecordingChannelGroup, + supported_objects = [Block, ChannelIndex, Segment, AnalogSignal] readable_objects = [Block] @@ -141,13 +141,13 @@ def read_block(self, lazy=False, cascade=True, **kargs): return block # create the objects to store other objects - rcg = RecordingChannelGroup(file_origin=self._filename, + rcg = ChannelIndex(file_origin=self._filename, channel_ids=np.array([1]), channel_indexes=np.array([0]), channel_names=np.array(['Chan1'], dtype='S')) # load objects into their containers - block.recordingchannelgroups.append(rcg) + block.channelindexes.append(rcg) # open the file with open(self._path, 'rb') as fobject: @@ -159,7 +159,7 @@ def read_block(self, lazy=False, cascade=True, **kargs): break # store the segment and signals - seg.analogsignals[0].recordingchannelgroup = rcg + seg.analogsignals[0].channelindex = rcg block.segments.append(seg) # remove the file object diff --git a/neo/io/brainwaref32io.py b/neo/io/brainwaref32io.py index 1b6894cc6..b50486b32 100644 --- a/neo/io/brainwaref32io.py +++ b/neo/io/brainwaref32io.py @@ -36,7 +36,7 @@ import quantities as pq # needed core neo modules -from neo.core import Block, RecordingChannelGroup, Segment, SpikeTrain, Unit +from neo.core import Block, ChannelIndex, Segment, SpikeTrain, Unit # need to subclass BaseIO from neo.io.baseio import BaseIO @@ -63,8 +63,8 @@ class BrainwareF32IO(BaseIO): reading or closed. Note 1: - There is always only one RecordingChannelGroup. BrainWare stores the - equivalent of RecordingChannelGroups in separate files. + There is always only one ChannelIndex. BrainWare stores the + equivalent of ChannelIndexes in separate files. Usage: >>> from neo.io.brainwaref32io import BrainwareF32IO @@ -84,7 +84,7 @@ class BrainwareF32IO(BaseIO): # This class is able to directly or indirectly handle the following objects # You can notice that this greatly simplifies the full Neo object hierarchy - supported_objects = [Block, RecordingChannelGroup, + supported_objects = [Block, ChannelIndex, Segment, SpikeTrain, Unit] readable_objects = [Block] @@ -158,12 +158,12 @@ def read_block(self, lazy=False, cascade=True, **kargs): return block # create the objects to store other objects - rcg = RecordingChannelGroup(file_origin=self._filename, + rcg = ChannelIndex(file_origin=self._filename, channel_indexes=np.array([], dtype=np.int)) self.__unit = Unit(file_origin=self._filename) # load objects into their containers - block.recordingchannelgroups.append(rcg) + block.channelindexes.append(rcg) rcg.units.append(self.__unit) # initialize values diff --git a/neo/io/brainwaresrcio.py b/neo/io/brainwaresrcio.py index 6166c64d1..6c5a1922d 100755 --- a/neo/io/brainwaresrcio.py +++ b/neo/io/brainwaresrcio.py @@ -47,7 +47,7 @@ # needed core neo modules from neo.core import (Block, Event, - RecordingChannelGroup, Segment, SpikeTrain, Unit) + ChannelIndex, Segment, SpikeTrain, Unit) # need to subclass BaseIO from neo.io.baseio import BaseIO @@ -78,7 +78,7 @@ class BrainwareSrcIO(BaseIO): reading or closed. Note 1: - The first Unit in each RecordingChannelGroup is always + The first Unit in each ChannelIndex is always UnassignedSpikes, which has a SpikeTrain for each Segment containing all the spikes not assigned to any Unit in that Segment. @@ -92,8 +92,8 @@ class BrainwareSrcIO(BaseIO): a condition, each repetition is stored as a separate Segment. Note 4: - There is always only one RecordingChannelGroup. BrainWare stores the - equivalent of RecordingChannelGroups in separate files. + There is always only one ChannelIndex. BrainWare stores the + equivalent of ChannelIndexes in separate files. Usage: >>> from neo.io.brainwaresrcio import BrainwareSrcIO @@ -115,7 +115,7 @@ class BrainwareSrcIO(BaseIO): is_writable = False # write is not supported # This class is able to directly or indirectly handle the following objects - supported_objects = [Block, RecordingChannelGroup, + supported_objects = [Block, ChannelIndex, Segment, SpikeTrain, Event, Unit] readable_objects = [Block] @@ -163,8 +163,8 @@ def __init__(self, filename=None): # This stores the current Block self._blk = None - # This stores the current RecordingChannelGroup for easy access - # It is equivalent to self._blk.recordingchannelgroups[0] + # This stores the current ChannelIndex for easy access + # It is equivalent to self._blk.channelindexes[0] self._rcg = None # This stores the current Segment for easy access @@ -289,14 +289,14 @@ def read_next_block(self, cascade=True, lazy=False, **kargs): self._blk = Block(file_origin=self._file_origin) if not cascade: return self._blk - self._rcg = RecordingChannelGroup(file_origin=self._file_origin, + self._rcg = ChannelIndex(file_origin=self._file_origin, channel_indexes=np.array([], dtype=np.int)) self._seg0 = Segment(name='Comments', file_origin=self._file_origin) self._unit0 = Unit(name='UnassignedSpikes', file_origin=self._file_origin, elliptic=[], boundaries=[], timestamp=[], max_valid=[]) - self._blk.recordingchannelgroups.append(self._rcg) + self._blk.channelindexes.append(self._rcg) self._rcg.units.append(self._unit0) self._blk.segments.append(self._seg0) diff --git a/neo/io/elphyio.py b/neo/io/elphyio.py index 57eee8022..22db75f66 100644 --- a/neo/io/elphyio.py +++ b/neo/io/elphyio.py @@ -91,7 +91,7 @@ from neo.io.baseio import BaseIO # to import from core -from neo.core import (Block, Segment, RecordingChannelGroup, RecordingChannel, +from neo.core import (Block, Segment, ChannelIndex, RecordingChannel, AnalogSignal, Event, SpikeTrain) # -------------------------------------------------------- @@ -3677,7 +3677,7 @@ class ElphyIO(BaseIO): - :class:`Block` - :class:`Segment` - :class:`RecordingChannel` - - :class:`RecordingChannelGroup` + - :class:`ChannelIndex` - :class:`Event` - :class:`SpikeTrain` @@ -4189,21 +4189,21 @@ def read_segment( self, episode ): - def read_recordingchannelgroup( self, episode ): + def read_channelindex( self, episode ): """ - Internal method used to return :class:`RecordingChannelGroup` info. + Internal method used to return :class:`ChannelIndex` info. Parameters: elphy_file : is the elphy object. episode : number of elphy episode, roughly corresponding to a segment """ n_spikes = self.elphy_file.n_spikes - group = RecordingChannelGroup( + group = ChannelIndex( name="episode %s, group of %s electrodes" % (episode, n_spikes) ) for spk in range(0, n_spikes) : - channel = self.read_recordingchannel(episode, spk) - group.recordingchannels.append(channel) + channel = self.read_channelindex(episode, spk) + group.channelindexes.append(channel) return group diff --git a/neo/io/hdf5io.py b/neo/io/hdf5io.py index b7ab19961..c05216873 100755 --- a/neo/io/hdf5io.py +++ b/neo/io/hdf5io.py @@ -126,7 +126,7 @@ class represents a connection manager with the HDF5 file with the possibility >>> iom.get_info() This is a neo.HDF5 file. it contains: {'spiketrain': 0, 'irsaanalogsignal': 0, 'analogsignalarray': 0, -'recordingchannelgroup': 0, 'analogsignal': 1, 'epoch': 0, 'unit': 0, +'channelindex': 0, 'analogsignal': 1, 'epoch': 0, 'unit': 0, 'recordingchannel': 0, 'segment': 1, 'event': 0, 'block': 1} @@ -534,7 +534,7 @@ def _get_parent(self, path, ref, parent_type): if parent_type.lower() in ('recordingchannel', 'unit'): # We need to search all recording channels - path = block_path + '/recordingchannelgroups' + path = block_path + '/channelindexes' for n in self._data.iterNodes(path): if not '_type' in n._v_attrs: continue @@ -547,21 +547,21 @@ def _get_parent(self, path, ref, parent_type): if parent_type.lower() == 'segment': path = block_path + '/segments' - elif parent_type.lower() in ('recordingchannelgroup', - 'recordingchannelgroups'): - path = block_path + '/recordingchannelgroups' + elif parent_type.lower() in ('channelindex', + 'channelindexes'): + path = block_path + '/channelindexes' else: return '' return self._search_parent(path, object_folder, ref) def _get_rcgs(self, path, ref): - """ Get RecordingChannelGroup parents for a RecordingChannel + """ Get ChannelIndex parents for a RecordingChannel """ parts = path.split('/') object_folder = parts[-2] block_path = '/'.join(parts[:-4]) - path = block_path + '/recordingchannelgroups' + path = block_path + '/channelindexes' return self._search_parent(path, object_folder, ref, True) def _search_parent(self, path, object_folder, ref, multi=False): @@ -595,7 +595,7 @@ def _search_parent(self, path, object_folder, ref, multi=False): _second_parent = { # Second parent type apart from Segment 'AnalogSignal': 'RecordingChannel', - 'AnalogSignalArray': 'RecordingChannelGroup', + 'AnalogSignalArray': 'ChannelIndex', 'IrregularlySampledSignal': 'RecordingChannel', 'SpikeTrain': 'Unit'} @@ -616,9 +616,9 @@ def load_lazy_cascade(self, path, lazy): ppaths.append(None) self.parent_paths[path] = ppaths elif t == 'RecordingChannel': - if 'recordingchannelgroups' in node._v_attrs: + if 'channelindexes' in node._v_attrs: self.parent_paths[path] = node._f_getAttr( - 'recordingchannelgroups') + 'channelindexes') # Set parent objects if path in self.parent_paths: @@ -626,7 +626,7 @@ def load_lazy_cascade(self, path, lazy): if t == 'RecordingChannel': # Set list of parnet channel groups for rcg in self.parent_paths[path]: - o.recordingchannelgroups.append( + o.channelindexes.append( self.get(rcg, cascade='lazy', lazy=lazy)) else: # Set parents: Segment and another parent if paths[0] is None: @@ -650,7 +650,7 @@ def load_lazy_cascade(self, path, lazy): if t == 'RecordingChannel': rcg_paths = self._get_rcgs(path, ref) for rcg in rcg_paths: - o.recordingchannelgroups.append(self.get( + o.channelindexes.append(self.get( rcg, cascade='lazy', lazy=lazy)) self.parent_paths[path] = rcg_paths else: @@ -810,9 +810,9 @@ def get_lazy_shape(obj, node): r.recordingchannel = obj # Cannot create Many-to-Many relationship with old format, # create at least One-to-Many - if obj_type == 'RecordingChannelGroup' and not object_ref: + if obj_type == 'ChannelIndex' and not object_ref: for r in relatives: - r.recordingchannelgroups = [obj] + r.channelindexes = [obj] # special processor for RC -> RCG if obj_type == 'RecordingChannel': if hasattr(node, '_v_parent'): @@ -820,7 +820,7 @@ def get_lazy_shape(obj, node): if hasattr(parent, '_v_parent'): parent = parent._v_parent if 'object_ref' in parent._v_attrs: - obj.recordingchannelgroups.append(self.get( + obj.channelindexes.append(self.get( parent._v_pathname, lazy=lazy)) return obj diff --git a/neo/io/kwikio.py b/neo/io/kwikio.py index a6cb9290d..d5069147f 100644 --- a/neo/io/kwikio.py +++ b/neo/io/kwikio.py @@ -55,7 +55,7 @@ # to import from core from neo.core import (Segment, SpikeTrain, Unit, Epoch, AnalogSignal, - RecordingChannelGroup, Block) + ChannelIndex, Block) import neo.io.tools class KwikIO(BaseIO): @@ -70,7 +70,7 @@ class KwikIO(BaseIO): is_writable = False # write is not supported supported_objects = [ Block, Segment, AnalogSignal, - RecordingChannelGroup] + ChannelIndex] # This class can return either a Block or a Segment # The first one is the default ( self.read ) @@ -140,14 +140,14 @@ def read_block(self, else: channel_index = np.arange(0,self._attrs['shape'][1]) - rcg = RecordingChannelGroup(name='all channels', + rcg = ChannelIndex(name='all channels', channel_indexes=channel_index) - blk.recordingchannelgroups.append(rcg) + blk.channelindexes.append(rcg) ana = self.read_analogsignal(channel_index=channel_index, lazy=lazy, cascade=cascade) - ana.recordingchannelgroup = rcg + ana.channelindex = rcg seg.duration = (self._attrs['shape'][0] / self._attrs['kwik']['sample_rate']) * pq.s diff --git a/neo/io/neuroscopeio.py b/neo/io/neuroscopeio.py index a12da4cbd..7e8c9d529 100644 --- a/neo/io/neuroscopeio.py +++ b/neo/io/neuroscopeio.py @@ -26,7 +26,7 @@ from neo.io.baseio import BaseIO from neo.io.rawbinarysignalio import RawBinarySignalIO -from neo.core import (Block, Segment, RecordingChannelGroup, +from neo.core import (Block, Segment, ChannelIndex, AnalogSignal) @@ -39,7 +39,7 @@ class NeuroScopeIO(BaseIO): is_readable = True is_writable = False - supported_objects = [ Block, Segment , AnalogSignal, RecordingChannelGroup] + supported_objects = [ Block, Segment , AnalogSignal, ChannelIndex] readable_objects = [ Block ] writeable_objects = [ ] @@ -100,11 +100,11 @@ def read_block(self, # RCG for i, xml_rcg in enumerate(root.find('anatomicalDescription').find('channelGroups').findall('group')): n_channels = len(xml_rcg) - rcg = RecordingChannelGroup(name = 'Group {0}'.format(i), + rcg = ChannelIndex(name = 'Group {0}'.format(i), channel_indexes=np.arange(n_channels, dtype = int)) rcg.channel_ids = np.array([int(xml_rc.text) for xml_rc in xml_rcg]) rcg.channel_names = np.array(['Channel{0}'.format(id) for id in rcg.channel_ids], dtype = 'S') - bl.recordingchannelgroups.append(rcg) + bl.channelindexes.append(rcg) # AnalogSignals reader = RawBinarySignalIO(filename = self.filename.replace('.xml', '.dat')) diff --git a/neo/io/tools.py b/neo/io/tools.py index 4e643eaed..293127c4c 100644 --- a/neo/io/tools.py +++ b/neo/io/tools.py @@ -12,7 +12,7 @@ from neo.core import (AnalogSignal, Block, Epoch, Event, IrregularlySampledSignal, - RecordingChannelGroup, + ChannelIndex, Segment, SpikeTrain, Unit) @@ -22,7 +22,7 @@ # Special case this tricky many-to-many relationship # we still need links from recordingchannel to analogsignal -# for rcg in block.recordingchannelgroups: +# for rcg in block.channelindexes: # for rc in rcg.recordingchannels: # rc.create_many_to_one_relationship() @@ -35,7 +35,7 @@ # * when 'channel_index ' is in AnalogSIgnal the corresponding # RecordingChannel is created. # * 'channel_index ' is then set to None if remove_from_annotation -# * only one RecordingChannelGroup is created +# * only one ChannelIndex is created # # It is a utility at the end of creating a Block for IO. # @@ -62,14 +62,14 @@ # indexes = np.sort(list(recordingchannels.keys())).astype('i') # names = np.array([recordingchannels[idx].name for idx in indexes], # dtype='S') -# rcg = RecordingChannelGroup(name='all channels', +# rcg = ChannelIndex(name='all channels', # channel_indexes=indexes, # channel_names=names) -# bl.recordingchannelgroups.append(rcg) +# bl.channelindexes.append(rcg) # for ind in indexes: # # many to many relationship # rcg.recordingchannels.append(recordingchannels[ind]) -# recordingchannels[ind].recordingchannelgroups.append(rcg) +# recordingchannels[ind].channelindexes.append(rcg) def iteritems(D): @@ -86,7 +86,7 @@ class LazyList(collections.MutableSequence): respective object. """ _container_objects = set( - [Block, Segment, RecordingChannelGroup, Unit]) + [Block, Segment, ChannelIndex, Unit]) _neo_objects = _container_objects.union( [AnalogSignal, Epoch, Event, IrregularlySampledSignal, SpikeTrain]) diff --git a/neo/test/coretest/test_analogsignalarray.py b/neo/test/coretest/test_analogsignalarray.py index 629d1584b..3f782218e 100644 --- a/neo/test/coretest/test_analogsignalarray.py +++ b/neo/test/coretest/test_analogsignalarray.py @@ -23,7 +23,7 @@ from numpy.testing import assert_array_equal from neo.core.analogsignal import AnalogSignal -from neo.core import Segment, RecordingChannelGroup +from neo.core import Segment, ChannelIndex from neo.test.tools import (assert_arrays_almost_equal, assert_arrays_equal, assert_neo_object_is_compliant, assert_same_sub_schema) @@ -197,22 +197,22 @@ def test__children(self): segment.analogsignals = [signal] segment.create_many_to_one_relationship() - rcg = RecordingChannelGroup(name='rcg1', channel_indexes=np.arange(signal.shape[1])) + rcg = ChannelIndex(name='rcg1', channel_indexes=np.arange(signal.shape[1])) rcg.analogsignals = [signal] rcg.create_many_to_one_relationship() self.assertEqual(signal._single_parent_objects, - ('Segment', 'RecordingChannelGroup')) + ('Segment', 'ChannelIndex')) self.assertEqual(signal._multi_parent_objects, ()) self.assertEqual(signal._single_parent_containers, - ('segment', 'recordingchannelgroup')) + ('segment', 'channelindex')) self.assertEqual(signal._multi_parent_containers, ()) self.assertEqual(signal._parent_objects, - ('Segment', 'RecordingChannelGroup')) + ('Segment', 'ChannelIndex')) self.assertEqual(signal._parent_containers, - ('segment', 'recordingchannelgroup')) + ('segment', 'channelindex')) self.assertEqual(len(signal.parents), 2) self.assertEqual(signal.parents[0].name, 'seg1') diff --git a/neo/test/coretest/test_block.py b/neo/test/coretest/test_block.py index 3befded0d..4705de29d 100644 --- a/neo/test/coretest/test_block.py +++ b/neo/test/coretest/test_block.py @@ -84,8 +84,8 @@ def test__fake_neo__cascade(self): seg = res.segments[0] self.assertEqual(seg.annotations, self.annotations) - self.assertEqual(len(res.recordingchannelgroups), 1) - rcg = res.recordingchannelgroups[0] + self.assertEqual(len(res.channelindexes), 1) + rcg = res.channelindexes[0] self.assertEqual(rcg.annotations, self.annotations) self.assertEqual(len(seg.analogsignals), 1) @@ -130,7 +130,7 @@ def test__fake_neo__nocascade(self): self.assertEqual(res.annotations, self.annotations) self.assertEqual(len(res.segments), 0) - self.assertEqual(len(res.recordingchannelgroups), 0) + self.assertEqual(len(res.channelindexes), 0) class TestBlock(unittest.TestCase): @@ -144,8 +144,8 @@ def setUp(self): self.segs1 = self.blk1.segments self.segs2 = self.blk2.segments - self.rcgs1 = self.blk1.recordingchannelgroups - self.rcgs2 = self.blk2.recordingchannelgroups + self.rcgs1 = self.blk1.channelindexes + self.rcgs2 = self.blk2.channelindexes self.units1 = [[unit for unit in rcg.units] for rcg in self.rcgs1] self.units2 = [[unit for unit in rcg.units] for rcg in self.rcgs2] @@ -223,10 +223,10 @@ def check_creation(self, blk): targ6['seed'] = seed self.assertEqual(blk.annotations, targ6) - self.assertTrue(hasattr(blk, 'recordingchannelgroups')) + self.assertTrue(hasattr(blk, 'channelindexes')) self.assertTrue(hasattr(blk, 'segments')) - self.assertEqual(len(blk.recordingchannelgroups), self.nchildren) + self.assertEqual(len(blk.channelindexes), self.nchildren) self.assertEqual(len(blk.segments), self.nchildren) def test__creation(self): @@ -245,7 +245,7 @@ def test__merge(self): rcgs1a = clone_object(self.rcgs1) assert_same_sub_schema(rcgs1a + self.rcgs2, - blk1a.recordingchannelgroups) + blk1a.channelindexes) assert_same_sub_schema(segs1a + self.segs2, blk1a.segments) @@ -254,7 +254,7 @@ def test__children(self): rcgs1a = clone_object(self.rcgs1) self.assertEqual(self.blk1._container_child_objects, - ('Segment', 'RecordingChannelGroup')) + ('Segment', 'ChannelIndex')) self.assertEqual(self.blk1._data_child_objects, ()) self.assertEqual(self.blk1._single_parent_objects, ()) self.assertEqual(self.blk1._multi_child_objects, ()) @@ -263,21 +263,21 @@ def test__children(self): ('Unit',)) self.assertEqual(self.blk1._single_child_objects, - ('Segment', 'RecordingChannelGroup')) + ('Segment', 'ChannelIndex')) self.assertEqual(self.blk1._container_child_containers, - ('segments', 'recordingchannelgroups')) + ('segments', 'channelindexes')) self.assertEqual(self.blk1._data_child_containers, ()) self.assertEqual(self.blk1._single_child_containers, - ('segments', 'recordingchannelgroups')) + ('segments', 'channelindexes')) self.assertEqual(self.blk1._single_parent_containers, ()) self.assertEqual(self.blk1._multi_child_containers, ()) self.assertEqual(self.blk1._multi_parent_containers, ()) self.assertEqual(self.blk1._child_objects, - ('Segment', 'RecordingChannelGroup')) + ('Segment', 'ChannelIndex')) self.assertEqual(self.blk1._child_containers, - ('segments', 'recordingchannelgroups')) + ('segments', 'channelindexes')) self.assertEqual(self.blk1._parent_objects, ()) self.assertEqual(self.blk1._parent_containers, ()) @@ -335,7 +335,7 @@ def test__children(self): def test__size(self): targ = {'segments': self.nchildren, - 'recordingchannelgroups': self.nchildren} + 'channelindexes': self.nchildren} self.assertEqual(self.targobj.size, targ) def test__filter_none(self): @@ -718,7 +718,7 @@ def test__filterdata_multi_partres_annotation_annotation(self): # seg1 = seg1.replace('\n', '\n ') # # targ = ("Block with " + - # ("%s segments, %s recordingchannelgroups\n" % + # ("%s segments, %s channelindexes\n" % # (len(self.segs1), len(self.rcgs1))) + # ("name: '%s'\ndescription: '%s'\n" % (self.blk1.name, # self.blk1.description)) + diff --git a/neo/test/coretest/test_generate_datasets.py b/neo/test/coretest/test_generate_datasets.py index bc92edf37..6f6afb7e1 100644 --- a/neo/test/coretest/test_generate_datasets.py +++ b/neo/test/coretest/test_generate_datasets.py @@ -17,7 +17,7 @@ import quantities as pq from neo.core import (class_by_name, Block, Segment, - RecordingChannelGroup, Unit, + ChannelIndex, Unit, AnalogSignal, IrregularlySampledSignal, SpikeTrain, Event, Epoch) @@ -44,7 +44,7 @@ def test_defaults(self): def test_all_supported(self): objects = [Block, Segment, - RecordingChannelGroup, Unit, + ChannelIndex, Unit, AnalogSignal, IrregularlySampledSignal, SpikeTrain, Event, Epoch] @@ -78,7 +78,7 @@ def test_half_supported(self): def test_all_without_block(self): objects = [Segment, - RecordingChannelGroup, Unit, + ChannelIndex, Unit, AnalogSignal, IrregularlySampledSignal, SpikeTrain, Event, Epoch] @@ -96,7 +96,7 @@ def test_all_without_block(self): def test_all_without_segment_valueerror(self): objects = [Block, - RecordingChannelGroup, Unit, + ChannelIndex, Unit, AnalogSignal, IrregularlySampledSignal, SpikeTrain, Event, Epoch] @@ -116,7 +116,7 @@ def test_defaults(self): def test_all_supported(self): objects = [Block, Segment, - RecordingChannelGroup, Unit, + ChannelIndex, Unit, AnalogSignal, IrregularlySampledSignal, SpikeTrain, Event, Epoch] @@ -180,7 +180,7 @@ def test_half_supported(self): def test_all_without_segment(self): objects = [Block, - RecordingChannelGroup, Unit, + ChannelIndex, Unit, AnalogSignal, IrregularlySampledSignal, SpikeTrain, Event, Epoch] @@ -194,7 +194,7 @@ def test_all_without_segment(self): def test_all_without_block_valueerror(self): objects = [Segment, - RecordingChannelGroup, Unit, + ChannelIndex, Unit, AnalogSignal, IrregularlySampledSignal, SpikeTrain, Event, Epoch] @@ -211,7 +211,7 @@ def test_no_object_valueerror(self): def test_all(self): objects = [Block, Segment, - RecordingChannelGroup, Unit, + ChannelIndex, Unit, AnalogSignal, IrregularlySampledSignal, SpikeTrain, Event, Epoch] @@ -297,7 +297,7 @@ def test_segment(self): def test_all_without_block(self): objects = [Segment, - RecordingChannelGroup, Unit, + ChannelIndex, Unit, AnalogSignal, IrregularlySampledSignal, SpikeTrain, Event, Epoch] @@ -315,7 +315,7 @@ def test_all_without_block(self): def test_all_without_segment(self): objects = [Block, - RecordingChannelGroup, Unit, + ChannelIndex, Unit, AnalogSignal, IrregularlySampledSignal, SpikeTrain, Event, Epoch] @@ -584,8 +584,8 @@ def test__event(self): def test__irregularlysampledsignal(self): self.check__get_fake_values(IrregularlySampledSignal) - def test__recordingchannelgroup(self): - self.check__get_fake_values(RecordingChannelGroup) + def test__channelindex(self): + self.check__get_fake_values(ChannelIndex) def test__segment(self): self.check__get_fake_values(Segment) @@ -660,7 +660,7 @@ def subcheck__generate_datasets(self, cls, cascade, seed=None): else: self.assertNotEqual(res.children, ()) - if cls in ['RecordingChannelGroup', RecordingChannelGroup]: + if cls in ['ChannelIndex', ChannelIndex]: for i, unit in enumerate(res.units): for sigarr in res.analogsignals: self.assertEqual(unit.channel_indexes[0], @@ -681,8 +681,8 @@ def test__event(self): def test__irregularlysampledsignal(self): self.check__generate_datasets(IrregularlySampledSignal) - def test__recordingchannelgroup(self): - self.check__generate_datasets(RecordingChannelGroup) + def test__channelindex(self): + self.check__generate_datasets(ChannelIndex) def test__segment(self): self.check__generate_datasets(Segment) diff --git a/neo/test/coretest/test_recordingchannelgroup.py b/neo/test/coretest/test_recordingchannelgroup.py index 49c8ac803..29ac097a1 100644 --- a/neo/test/coretest/test_recordingchannelgroup.py +++ b/neo/test/coretest/test_recordingchannelgroup.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- """ -Tests of the neo.core.recordingchannelgroup.RecordingChannelGroup class +Tests of the neo.core.channelindex.ChannelIndex class """ # needed for python 3 compatibility @@ -20,7 +20,7 @@ else: HAVE_IPYTHON = True -from neo.core.recordingchannelgroup import RecordingChannelGroup +from neo.core.recordingchannelgroup import ChannelIndex from neo.core.container import filterdata from neo.core import Block, Segment, SpikeTrain from neo.test.tools import (assert_neo_object_is_compliant, @@ -43,9 +43,9 @@ def setUp(self): # dim=1, dtype='i') # channel_names = get_fake_value('channel_names', np.ndarray, seed=1, # dim=1, dtype=np.dtype('S')) - # name = get_fake_value('name', str, seed=3, obj=RecordingChannelGroup) + # name = get_fake_value('name', str, seed=3, obj=ChannelIndex) # description = get_fake_value('description', str, seed=4, - # obj='RecordingChannelGroup') + # obj='ChannelIndex') # file_origin = get_fake_value('file_origin', str) # #coordinates = get_fake_value('coordinates', np.ndarray, seed=2, dim=2, dtype='f') # attrs1 = {'name': name, @@ -55,11 +55,11 @@ def setUp(self): # attrs2 = attrs1.copy() # attrs2.update(self.annotations) # - # res11 = get_fake_values(RecordingChannelGroup, annotate=False, seed=0) - # res12 = get_fake_values('RecordingChannelGroup', + # res11 = get_fake_values(ChannelIndex, annotate=False, seed=0) + # res12 = get_fake_values('ChannelIndex', # annotate=False, seed=0) - # res21 = get_fake_values(RecordingChannelGroup, annotate=True, seed=0) - # res22 = get_fake_values('RecordingChannelGroup', annotate=True, seed=0) + # res21 = get_fake_values(ChannelIndex, annotate=True, seed=0) + # res22 = get_fake_values('ChannelIndex', annotate=True, seed=0) # # assert_arrays_equal(res11.pop('channel_indexes'), channel_indexes) # assert_arrays_equal(res12.pop('channel_indexes'), channel_indexes) @@ -80,11 +80,11 @@ def setUp(self): def test__fake_neo__cascade(self): self.annotations['seed'] = None - obj_type = 'RecordingChannelGroup' + obj_type = 'ChannelIndex' cascade = True res = fake_neo(obj_type=obj_type, cascade=cascade) - self.assertTrue(isinstance(res, RecordingChannelGroup)) + self.assertTrue(isinstance(res, ChannelIndex)) assert_neo_object_is_compliant(res) self.assertEqual(res.annotations, self.annotations) @@ -106,11 +106,11 @@ def test__fake_neo__cascade(self): def test__fake_neo__nocascade(self): self.annotations['seed'] = None - obj_type = RecordingChannelGroup + obj_type = ChannelIndex cascade = False res = fake_neo(obj_type=obj_type, cascade=cascade) - self.assertTrue(isinstance(res, RecordingChannelGroup)) + self.assertTrue(isinstance(res, ChannelIndex)) assert_neo_object_is_compliant(res) self.assertEqual(res.annotations, self.annotations) @@ -118,23 +118,23 @@ def test__fake_neo__nocascade(self): self.assertEqual(len(res.analogsignals), 0) -class TestRecordingChannelGroup(unittest.TestCase): +class TestChannelIndex(unittest.TestCase): def setUp(self): self.nchildren = 2 self.seed1 = 0 self.seed2 = 10000 - self.rcg1 = fake_neo(RecordingChannelGroup, + self.chx1 = fake_neo(ChannelIndex, seed=self.seed1, n=self.nchildren) - self.rcg2 = fake_neo(RecordingChannelGroup, + self.chx2 = fake_neo(ChannelIndex, seed=self.seed2, n=self.nchildren) - self.targobj = self.rcg1 + self.targobj = self.chx1 - self.units1 = self.rcg1.units - self.units2 = self.rcg2.units - self.sigarrs1 = self.rcg1.analogsignals - self.sigarrs2 = self.rcg2.analogsignals - self.irrsig1 = self.rcg1.irregularlysampledsignals - self.irrsig2 = self.rcg2.irregularlysampledsignals + self.units1 = self.chx1.units + self.units2 = self.chx2.units + self.sigarrs1 = self.chx1.analogsignals + self.sigarrs2 = self.chx2.analogsignals + self.irrsig1 = self.chx1.irregularlysampledsignals + self.irrsig2 = self.chx2.irregularlysampledsignals self.units1a = clone_object(self.units1) self.sigarrs1a = clone_object(self.sigarrs1, n=2) @@ -148,142 +148,142 @@ def setUp(self): self.trains1 = sum(self.trains1, []) self.trains2 = sum(self.trains2, []) - def test__recordingchannelgroup__init_defaults(self): - rcg = RecordingChannelGroup(channel_indexes=np.array([1])) - assert_neo_object_is_compliant(rcg) - self.assertEqual(rcg.name, None) - self.assertEqual(rcg.file_origin, None) - self.assertEqual(rcg.analogsignals, []) - assert_arrays_equal(rcg.channel_names, np.array([], dtype='S')) - assert_arrays_equal(rcg.channel_indexes, np.array([1])) - - def test_recordingchannelgroup__init(self): - rcg = RecordingChannelGroup(file_origin='temp.dat', + def test__channelindex__init_defaults(self): + chx = ChannelIndex(channel_indexes=np.array([1])) + assert_neo_object_is_compliant(chx) + self.assertEqual(chx.name, None) + self.assertEqual(chx.file_origin, None) + self.assertEqual(chx.analogsignals, []) + assert_arrays_equal(chx.channel_names, np.array([], dtype='S')) + assert_arrays_equal(chx.channel_indexes, np.array([1])) + + def test_channelindex__init(self): + chx = ChannelIndex(file_origin='temp.dat', channel_indexes=np.array([1])) - assert_neo_object_is_compliant(rcg) - self.assertEqual(rcg.file_origin, 'temp.dat') - self.assertEqual(rcg.name, None) - self.assertEqual(rcg.analogsignals, []) - assert_arrays_equal(rcg.channel_names, np.array([], dtype='S')) - assert_arrays_equal(rcg.channel_indexes, np.array([1])) + assert_neo_object_is_compliant(chx) + self.assertEqual(chx.file_origin, 'temp.dat') + self.assertEqual(chx.name, None) + self.assertEqual(chx.analogsignals, []) + assert_arrays_equal(chx.channel_names, np.array([], dtype='S')) + assert_arrays_equal(chx.channel_indexes, np.array([1])) - def check_creation(self, rcg): - assert_neo_object_is_compliant(rcg) + def check_creation(self, chx): + assert_neo_object_is_compliant(chx) - seed = rcg.annotations['seed'] + seed = chx.annotations['seed'] - # for i, unit in enumerate(rcg.units): - # for sigarr in rcg.analogsignals: + # for i, unit in enumerate(chx.units): + # for sigarr in chx.analogsignals: # self.assertEqual(unit.channel_indexes[0], # sigarr.channel_index[i]) targ2 = get_fake_value('name', str, seed=seed+4, - obj=RecordingChannelGroup) - self.assertEqual(rcg.name, targ2) + obj=ChannelIndex) + self.assertEqual(chx.name, targ2) targ3 = get_fake_value('description', str, - seed=seed+5, obj=RecordingChannelGroup) - self.assertEqual(rcg.description, targ3) + seed=seed+5, obj=ChannelIndex) + self.assertEqual(chx.description, targ3) targ4 = get_fake_value('file_origin', str) - self.assertEqual(rcg.file_origin, targ4) + self.assertEqual(chx.file_origin, targ4) targ5 = get_annotations() targ5['seed'] = seed - self.assertEqual(rcg.annotations, targ5) + self.assertEqual(chx.annotations, targ5) - self.assertTrue(hasattr(rcg, 'units')) - self.assertTrue(hasattr(rcg, 'analogsignals')) + self.assertTrue(hasattr(chx, 'units')) + self.assertTrue(hasattr(chx, 'analogsignals')) - self.assertEqual(len(rcg.units), self.nchildren) - self.assertEqual(len(rcg.analogsignals), self.nchildren) + self.assertEqual(len(chx.units), self.nchildren) + self.assertEqual(len(chx.analogsignals), self.nchildren) def test__creation(self): - self.check_creation(self.rcg1) - self.check_creation(self.rcg2) + self.check_creation(self.chx1) + self.check_creation(self.chx2) def test__merge(self): - rcg1a = fake_neo(RecordingChannelGroup, + chx1a = fake_neo(ChannelIndex, seed=self.seed1, n=self.nchildren) - assert_same_sub_schema(self.rcg1, rcg1a) - rcg1a.annotate(seed=self.seed2) - rcg1a.analogsignals.append(self.sigarrs2[0]) - rcg1a.merge(self.rcg2) - self.check_creation(self.rcg2) + assert_same_sub_schema(self.chx1, chx1a) + chx1a.annotate(seed=self.seed2) + chx1a.analogsignals.append(self.sigarrs2[0]) + chx1a.merge(self.chx2) + self.check_creation(self.chx2) assert_same_sub_schema(self.sigarrs1a + self.sigarrs2, - rcg1a.analogsignals, + chx1a.analogsignals, exclude=['channel_index']) assert_same_sub_schema(self.units1a + self.units2, - rcg1a.units) + chx1a.units) def test__children(self): blk = Block(name='block1') - blk.recordingchannelgroups = [self.rcg1] + blk.channelindexes = [self.chx1] blk.create_many_to_one_relationship() - self.assertEqual(self.rcg1._container_child_objects, ('Unit',)) - self.assertEqual(self.rcg1._data_child_objects, ('AnalogSignal', 'IrregularlySampledSignal')) - self.assertEqual(self.rcg1._single_parent_objects, ('Block',)) - self.assertEqual(self.rcg1._multi_child_objects, tuple()) - self.assertEqual(self.rcg1._multi_parent_objects, ()) - self.assertEqual(self.rcg1._child_properties, ()) + self.assertEqual(self.chx1._container_child_objects, ('Unit',)) + self.assertEqual(self.chx1._data_child_objects, ('AnalogSignal', 'IrregularlySampledSignal')) + self.assertEqual(self.chx1._single_parent_objects, ('Block',)) + self.assertEqual(self.chx1._multi_child_objects, tuple()) + self.assertEqual(self.chx1._multi_parent_objects, ()) + self.assertEqual(self.chx1._child_properties, ()) - self.assertEqual(self.rcg1._single_child_objects, + self.assertEqual(self.chx1._single_child_objects, ('Unit', 'AnalogSignal', 'IrregularlySampledSignal')) - self.assertEqual(self.rcg1._container_child_containers, ('units',)) - self.assertEqual(self.rcg1._data_child_containers, + self.assertEqual(self.chx1._container_child_containers, ('units',)) + self.assertEqual(self.chx1._data_child_containers, ('analogsignals', 'irregularlysampledsignals')) - self.assertEqual(self.rcg1._single_child_containers, + self.assertEqual(self.chx1._single_child_containers, ('units', 'analogsignals', 'irregularlysampledsignals')) - self.assertEqual(self.rcg1._single_parent_containers, ('block',)) - self.assertEqual(self.rcg1._multi_child_containers, + self.assertEqual(self.chx1._single_parent_containers, ('block',)) + self.assertEqual(self.chx1._multi_child_containers, tuple()) - self.assertEqual(self.rcg1._multi_parent_containers, ()) + self.assertEqual(self.chx1._multi_parent_containers, ()) - self.assertEqual(self.rcg1._child_objects, + self.assertEqual(self.chx1._child_objects, ('Unit', 'AnalogSignal', 'IrregularlySampledSignal')) - self.assertEqual(self.rcg1._child_containers, + self.assertEqual(self.chx1._child_containers, ('units', 'analogsignals', 'irregularlysampledsignals')) - self.assertEqual(self.rcg1._parent_objects, ('Block',)) - self.assertEqual(self.rcg1._parent_containers, ('block',)) + self.assertEqual(self.chx1._parent_objects, ('Block',)) + self.assertEqual(self.chx1._parent_containers, ('block',)) - self.assertEqual(len(self.rcg1._single_children), 3*self.nchildren) - self.assertEqual(len(self.rcg1._multi_children), 0) - self.assertEqual(len(self.rcg1.data_children), 2*self.nchildren) - self.assertEqual(len(self.rcg1.data_children_recur), + self.assertEqual(len(self.chx1._single_children), 3*self.nchildren) + self.assertEqual(len(self.chx1._multi_children), 0) + self.assertEqual(len(self.chx1.data_children), 2*self.nchildren) + self.assertEqual(len(self.chx1.data_children_recur), 2*self.nchildren + 1*self.nchildren**2) - self.assertEqual(len(self.rcg1.container_children), 1*self.nchildren) - self.assertEqual(len(self.rcg1.container_children_recur), + self.assertEqual(len(self.chx1.container_children), 1*self.nchildren) + self.assertEqual(len(self.chx1.container_children_recur), 1*self.nchildren) - self.assertEqual(len(self.rcg1.children), 3*self.nchildren) - self.assertEqual(len(self.rcg1.children_recur), + self.assertEqual(len(self.chx1.children), 3*self.nchildren) + self.assertEqual(len(self.chx1.children_recur), 3*self.nchildren + 1*self.nchildren**2) - assert_same_sub_schema(list(self.rcg1._single_children), + assert_same_sub_schema(list(self.chx1._single_children), self.units1a + self.sigarrs1a + self.irrsig1a, exclude=['channel_index']) - assert_same_sub_schema(list(self.rcg1.data_children), self.sigarrs1a + self.irrsig1a, + assert_same_sub_schema(list(self.chx1.data_children), self.sigarrs1a + self.irrsig1a, exclude=['channel_index']) - assert_same_sub_schema(list(self.rcg1.data_children_recur), + assert_same_sub_schema(list(self.chx1.data_children_recur), self.sigarrs1a + self.irrsig1a + self.trains1[:2] + self.trains1[2:], exclude=['channel_index']) - assert_same_sub_schema(list(self.rcg1.children), + assert_same_sub_schema(list(self.chx1.children), self.sigarrs1a + self.irrsig1a + self.units1a, exclude=['channel_index']) - assert_same_sub_schema(list(self.rcg1.children_recur), + assert_same_sub_schema(list(self.chx1.children_recur), self.sigarrs1a + self.irrsig1a + self.trains1[:2] + self.trains1[2:] + self.units1a, exclude=['channel_index']) - self.assertEqual(len(self.rcg1.parents), 1) - self.assertEqual(self.rcg1.parents[0].name, 'block1') + self.assertEqual(len(self.chx1.parents), 1) + self.assertEqual(self.chx1.parents[0].name, 'block1') def test__size(self): targ = {'analogsignals': self.nchildren, @@ -453,7 +453,7 @@ def test__filter_single_annotation_obj_single(self): res2 = self.targobj.filter(j=1, objects=['SpikeTrain']) res3 = self.targobj.filter(j=1, objects=[SpikeTrain]) res4 = self.targobj.filter(j=1, objects=[SpikeTrain, - RecordingChannelGroup]) + ChannelIndex]) assert_same_sub_schema(res0, targ) assert_same_sub_schema(res1, targ) @@ -645,18 +645,18 @@ def test__filterdata_multi_partres_annotation_annotation(self): # @unittest.skipUnless(HAVE_IPYTHON, "requires IPython") # def test__pretty(self): - # res = pretty(self.rcg1) + # res = pretty(self.chx1) # ann = get_annotations() # ann['seed'] = self.seed1 # ann = pretty(ann).replace('\n ', '\n ') - # targ = ("RecordingChannelGroup with " + + # targ = ("ChannelIndex with " + # ("%s units, %s analogsignals, %s irregularlysampledsignals\n" % # (len(self.units1a), # len(self.irrsig1a), # len(self.sigarrs1a), # )) + - # ("name: '%s'\ndescription: '%s'\n" % (self.rcg1.name, - # self.rcg1.description) + # ("name: '%s'\ndescription: '%s'\n" % (self.chx1.name, + # self.chx1.description) # ) + # ("annotations: %s" % ann)) # diff --git a/neo/test/coretest/test_segment.py b/neo/test/coretest/test_segment.py index 21faae05e..2f6fac2f7 100644 --- a/neo/test/coretest/test_segment.py +++ b/neo/test/coretest/test_segment.py @@ -25,7 +25,7 @@ from neo.core.segment import Segment from neo.core import (AnalogSignal, Block, - Epoch, RecordingChannelGroup, SpikeTrain, Unit) + Epoch, ChannelIndex, SpikeTrain, Unit) from neo.core.container import filterdata from neo.test.tools import (assert_neo_object_is_compliant, assert_same_sub_schema) @@ -458,7 +458,7 @@ def test__filter_single_annotation_obj_single(self): res2 = self.targobj.filter(j=1, objects=['Epoch']) res3 = self.targobj.filter(j=1, objects=[Epoch]) res4 = self.targobj.filter(j=1, objects=[Epoch, - RecordingChannelGroup]) + ChannelIndex]) assert_same_sub_schema(res0, targ) assert_same_sub_schema(res1, targ) @@ -476,8 +476,8 @@ def test__filter_single_annotation_obj_multi(self): def test__filter_single_annotation_obj_none(self): targ = [] - res0 = self.targobj.filter(j=1, objects=RecordingChannelGroup) - res1 = self.targobj.filter(j=1, objects='RecordingChannelGroup') + res0 = self.targobj.filter(j=1, objects=ChannelIndex) + res1 = self.targobj.filter(j=1, objects='ChannelIndex') res2 = self.targobj.filter(j=1, objects=[]) assert_same_sub_schema(res0, targ) @@ -684,10 +684,10 @@ def test__construct_subsegment_by_unit(self): signal_types = ['Vm', 'Conductances'] sig_len = 100 - # recordingchannelgroups - rcgs = [RecordingChannelGroup(name='Vm', + # channelindexes + rcgs = [ChannelIndex(name='Vm', channel_indexes=unit_with_sig), - RecordingChannelGroup(name='Conductance', + ChannelIndex(name='Conductance', channel_indexes=unit_with_sig)] # Unit @@ -698,7 +698,7 @@ def test__construct_subsegment_by_unit(self): all_unit.append(un) blk = Block() - blk.recordingchannelgroups = rcgs + blk.channelindexes = rcgs for s in range(nb_seg): seg = Segment(name='Simulation %s' % s) for j in range(nb_unit): diff --git a/neo/test/coretest/test_unit.py b/neo/test/coretest/test_unit.py index 0301c7908..2bdcf09fc 100644 --- a/neo/test/coretest/test_unit.py +++ b/neo/test/coretest/test_unit.py @@ -22,7 +22,7 @@ from neo.core.unit import Unit from neo.core.container import filterdata -from neo.core import SpikeTrain, RecordingChannelGroup +from neo.core import SpikeTrain, ChannelIndex from neo.test.tools import (assert_neo_object_is_compliant, assert_arrays_equal, assert_same_sub_schema) @@ -143,7 +143,7 @@ def test__merge(self): unit1a.spiketrains) def test__children(self): - rcg = RecordingChannelGroup(channel_indexes=np.arange(self.nchildren), name='rcg1') + rcg = ChannelIndex(channel_indexes=np.arange(self.nchildren), name='rcg1') rcg.units = [self.unit1] rcg.create_many_to_one_relationship() assert_neo_object_is_compliant(self.unit1) @@ -152,7 +152,7 @@ def test__children(self): self.assertEqual(self.unit1._container_child_objects, ()) self.assertEqual(self.unit1._data_child_objects, ('SpikeTrain',)) self.assertEqual(self.unit1._single_parent_objects, - ('RecordingChannelGroup',)) + ('ChannelIndex',)) self.assertEqual(self.unit1._multi_child_objects, ()) self.assertEqual(self.unit1._multi_parent_objects, ()) self.assertEqual(self.unit1._child_properties, ()) @@ -163,16 +163,16 @@ def test__children(self): self.assertEqual(self.unit1._data_child_containers, ('spiketrains',)) self.assertEqual(self.unit1._single_child_containers, ('spiketrains',)) self.assertEqual(self.unit1._single_parent_containers, - ('recordingchannelgroup',)) + ('channelindex',)) self.assertEqual(self.unit1._multi_child_containers, ()) self.assertEqual(self.unit1._multi_parent_containers, ()) self.assertEqual(self.unit1._child_objects, ('SpikeTrain',)) self.assertEqual(self.unit1._child_containers, ('spiketrains',)) self.assertEqual(self.unit1._parent_objects, - ('RecordingChannelGroup',)) + ('ChannelIndex',)) self.assertEqual(self.unit1._parent_containers, - ('recordingchannelgroup',)) + ('channelindex',)) self.assertEqual(len(self.unit1._single_children), self.nchildren) self.assertEqual(len(self.unit1._multi_children), 0) @@ -362,7 +362,7 @@ def test__filter_single_annotation_obj_single(self): res2 = self.targobj.filter(j=1, objects=['SpikeTrain']) res3 = self.targobj.filter(j=1, objects=[SpikeTrain]) res4 = self.targobj.filter(j=1, objects=[SpikeTrain, - RecordingChannelGroup]) + ChannelIndex]) assert_same_sub_schema(res0, targ) assert_same_sub_schema(res1, targ) @@ -373,8 +373,8 @@ def test__filter_single_annotation_obj_single(self): def test__filter_single_annotation_obj_none(self): targ = [] - res0 = self.targobj.filter(j=1, objects=RecordingChannelGroup) - res1 = self.targobj.filter(j=1, objects='RecordingChannelGroup') + res0 = self.targobj.filter(j=1, objects=ChannelIndex) + res1 = self.targobj.filter(j=1, objects='ChannelIndex') res2 = self.targobj.filter(j=1, objects=[]) assert_same_sub_schema(res0, targ) diff --git a/neo/test/generate_datasets.py b/neo/test/generate_datasets.py index 8357fc42f..328632748 100644 --- a/neo/test/generate_datasets.py +++ b/neo/test/generate_datasets.py @@ -16,7 +16,7 @@ Block, Epoch, Event, IrregularlySampledSignal, - RecordingChannelGroup, + ChannelIndex, Segment, SpikeTrain, Unit, class_by_name) @@ -302,7 +302,7 @@ def fake_neo(obj_type="Block", cascade=True, seed=None, n=1): n (default=1) is the number of child objects of each type will be created. In cases like segment.spiketrains, there will be more than this number because there will be n for each unit, of which there will be n for - each recordingchannelgroup, of which there will be n. + each channelindex, of which there will be n. ''' if hasattr(obj_type, 'lower'): @@ -344,7 +344,7 @@ def fake_neo(obj_type="Block", cascade=True, seed=None, n=1): # need to manually create 'implicit' connections if obj_type == 'Block': # connect data objects to segment - for i, rcg in enumerate(obj.recordingchannelgroups): + for i, rcg in enumerate(obj.channelindexes): for k, sigarr in enumerate(rcg.analogsignals): obj.segments[k].analogsignals.append(sigarr) for k, sigarr in enumerate(rcg.irregularlysampledsignals): @@ -352,7 +352,7 @@ def fake_neo(obj_type="Block", cascade=True, seed=None, n=1): for j, unit in enumerate(rcg.units): for k, train in enumerate(unit.spiketrains): obj.segments[k].spiketrains.append(train) - #elif obj_type == 'RecordingChannelGroup': + #elif obj_type == 'ChannelIndex': # inds = [] # names = [] # chinds = np.array([unit.channel_indexes[0] for unit in obj.units]) diff --git a/neo/test/iotest/test_brainwaredamio.py b/neo/test/iotest/test_brainwaredamio.py index 16be5ac28..51589bb45 100644 --- a/neo/test/iotest/test_brainwaredamio.py +++ b/neo/test/iotest/test_brainwaredamio.py @@ -18,7 +18,7 @@ import quantities as pq from neo.core import (AnalogSignal, Block, - RecordingChannelGroup, Segment) + ChannelIndex, Segment) from neo.io import BrainwareDamIO from neo.test.iotest.common_io_test import BaseTestIO from neo.test.tools import (assert_same_sub_schema, @@ -58,12 +58,12 @@ def proc_dam(filename): block = Block(file_origin=filename) - rcg = RecordingChannelGroup(file_origin=filename, + rcg = ChannelIndex(file_origin=filename, channel_indexes = np.array([0]), channel_ids = np.array([1]), channel_names = np.array(['Chan1'], dtype='S')) - block.recordingchannelgroups.append(rcg) + block.channelindexes.append(rcg) params = [res['params'][0, 0].flatten() for res in damfile['stim']] values = [res['values'][0, 0].flatten() for res in damfile['stim']] diff --git a/neo/test/iotest/test_brainwaref32io.py b/neo/test/iotest/test_brainwaref32io.py index 93fbf7813..4f2d98cce 100644 --- a/neo/test/iotest/test_brainwaref32io.py +++ b/neo/test/iotest/test_brainwaref32io.py @@ -17,7 +17,7 @@ import numpy as np import quantities as pq -from neo.core import Block, RecordingChannelGroup, Segment, SpikeTrain, Unit +from neo.core import Block, ChannelIndex, Segment, SpikeTrain, Unit from neo.io import BrainwareF32IO from neo.test.iotest.common_io_test import BaseTestIO from neo.test.tools import (assert_same_sub_schema, @@ -51,13 +51,13 @@ def proc_f32(filename): # create the objects to store other objects block = Block(file_origin=filenameorig) - rcg = RecordingChannelGroup(file_origin=filenameorig, + rcg = ChannelIndex(file_origin=filenameorig, channel_indexes=np.array([], dtype=np.int), channel_names=np.array([], dtype='S')) unit = Unit(file_origin=filenameorig) # load objects into their containers - block.recordingchannelgroups.append(rcg) + block.channelindexes.append(rcg) rcg.units.append(unit) try: diff --git a/neo/test/iotest/test_brainwaresrcio.py b/neo/test/iotest/test_brainwaresrcio.py index f4c88e30a..ee6dfffdd 100644 --- a/neo/test/iotest/test_brainwaresrcio.py +++ b/neo/test/iotest/test_brainwaresrcio.py @@ -19,7 +19,7 @@ import quantities as pq from neo.core import (Block, Event, - RecordingChannelGroup, Segment, SpikeTrain, Unit) + ChannelIndex, Segment, SpikeTrain, Unit) from neo.io import BrainwareSrcIO, brainwaresrcio from neo.test.iotest.common_io_test import BaseTestIO from neo.test.tools import (assert_same_sub_schema, @@ -89,7 +89,7 @@ def proc_src(filename): chan_names = ['Chan{}'.format(i) for i in range(NChannels)] rcg.channel_indexes = chan_nums rcg.channel_names = np.array(chan_names, dtype='string_') - block.recordingchannelgroups.append(rcg) + block.channelindexes.append(rcg) for rep in srcfile['sets'][0, 0].flatten(): proc_src_condition(rep, filename, ADperiod, side, block) @@ -126,7 +126,7 @@ def proc_src_comments(srcfile, filename): def proc_src_units(srcfile, filename): '''Get the units in an src file that has been processed by the official matlab function. See proc_src for details''' - rcg = RecordingChannelGroup(file_origin=filename, + rcg = ChannelIndex(file_origin=filename, channel_indexes=np.array([], dtype=int)) un_unit = Unit(name='UnassignedSpikes', file_origin=filename, elliptic=[], boundaries=[], timestamp=[], max_valid=[]) @@ -155,7 +155,7 @@ def proc_src_condition(rep, filename, ADperiod, side, block): '''Get the condition in a src file that has been processed by the official matlab function. See proc_src for details''' - rcg = block.recordingchannelgroups[0] + rcg = block.channelindexes[0] stim = rep['stim'].flatten() params = [str(res[0]) for res in stim['paramName'][0].flatten()] diff --git a/neo/test/tools.py b/neo/test/tools.py index cd72a6e4a..91ac4d0bf 100644 --- a/neo/test/tools.py +++ b/neo/test/tools.py @@ -429,7 +429,7 @@ def assert_sub_schema_is_lazy_loaded(ob): # FIXME: it is a workaround for recordingChannelGroup.channel_names # which is nupy.array but allowed to be loaded when lazy == True - if ob.__class__ == neo.RecordingChannelGroup: + if ob.__class__ == neo.ChannelIndex: continue ndim = ioattr[2] From abca22f1a7d1e4ed071a19c6012bfd84ea5e7258 Mon Sep 17 00:00:00 2001 From: Andrew Davison Date: Fri, 19 Feb 2016 17:23:57 +0100 Subject: [PATCH 2/8] Starting to clean up potential name conflicts --- neo/core/analogsignal.py | 9 +-------- neo/core/segment.py | 8 ++++---- neo/core/unit.py | 3 +-- neo/io/blackrockio.py | 2 +- neo/test/coretest/test_generate_datasets.py | 4 ++-- 5 files changed, 9 insertions(+), 17 deletions(-) diff --git a/neo/core/analogsignal.py b/neo/core/analogsignal.py index 2af4107e6..3f7a7d4d4 100644 --- a/neo/core/analogsignal.py +++ b/neo/core/analogsignal.py @@ -255,8 +255,7 @@ def __repr__(self): super(AnalogSignal, self).__repr__(), self.t_start, self.t_stop, self.sampling_rate)) - @property - def channel_index(self): + def get_channel_index(self): """ """ if self.channelindex: @@ -264,12 +263,6 @@ def channel_index(self): else: return None - @property - def channel_indexes(self): - """ - """ - return self.channel_index - def __getslice__(self, i, j): ''' Get a slice from :attr:`i` to :attr:`j`. diff --git a/neo/core/segment.py b/neo/core/segment.py index a09fa7f73..cde2cda77 100644 --- a/neo/core/segment.py +++ b/neo/core/segment.py @@ -148,8 +148,8 @@ def take_slice_of_analogsignalarray_by_unit(self, unit_list=None): return [] indexes = [] for unit in unit_list: - if unit.channel_indexes is not None: - indexes.extend(unit.channel_indexes) + if unit.get_channel_indexes() is not None: + indexes.extend(unit.get_channel_indexes()) return self.take_slice_of_analogsignalarray_by_channelindex(indexes) @@ -165,8 +165,8 @@ def take_slice_of_analogsignalarray_by_channelindex(self, sliced_sigarrays = [] for sigarr in self.analogsignals: - if sigarr.channel_indexes is not None: - ind = np.in1d(sigarr.channel_indexes, channel_indexes) + if sigarr.get_channel_index() is not None: + ind = np.in1d(sigarr.get_channel_index(), channel_indexes) sliced_sigarrays.append(sigarr[:, ind]) return sliced_sigarrays diff --git a/neo/core/unit.py b/neo/core/unit.py index 46ebd4364..c77164e1f 100644 --- a/neo/core/unit.py +++ b/neo/core/unit.py @@ -72,8 +72,7 @@ def __init__(self, name=None, description=None, file_origin=None, file_origin=file_origin, **annotations) self.channelindex = None - @property - def channel_indexes(self): + def get_channel_indexes(self): """ """ if self.channelindex: diff --git a/neo/io/blackrockio.py b/neo/io/blackrockio.py index 782f22f82..53476a8b6 100644 --- a/neo/io/blackrockio.py +++ b/neo/io/blackrockio.py @@ -95,7 +95,7 @@ def read_block(self, lazy=False, cascade=True, load_waveforms = False): for sig in seg.analogsignals: if channel_id in sig.channelindex.channel_ids: i = np.where(sig.channelindex.channel_ids==channel_id)[0][0] - index = sig.channel_indexes[i] + index = sig.get_channel_index()[i] break if index is not None: rcg = ChannelIndex(name = 'Group {0}'.format(channel_id), diff --git a/neo/test/coretest/test_generate_datasets.py b/neo/test/coretest/test_generate_datasets.py index 6f6afb7e1..4ee1815eb 100644 --- a/neo/test/coretest/test_generate_datasets.py +++ b/neo/test/coretest/test_generate_datasets.py @@ -663,8 +663,8 @@ def subcheck__generate_datasets(self, cls, cascade, seed=None): if cls in ['ChannelIndex', ChannelIndex]: for i, unit in enumerate(res.units): for sigarr in res.analogsignals: - self.assertEqual(unit.channel_indexes[0], - sigarr.channel_index[i]) + self.assertEqual(unit.get_channel_indexes()[0], + sigarr.get_channel_index()[i]) def test__analogsignalarray(self): self.check__generate_datasets(AnalogSignal) From 185ac016d4fbcceb90216e688323fbf4e4245add Mon Sep 17 00:00:00 2001 From: Andrew Davison Date: Fri, 19 Feb 2016 17:42:51 +0100 Subject: [PATCH 3/8] Renamed the `channelindex` attribute to `channel_index` --- examples/generated_data.py | 6 ++--- neo/core/analogsignal.py | 6 ++--- neo/core/baseneo.py | 4 +-- neo/core/block.py | 4 +-- neo/core/irregularlysampledsignal.py | 2 +- neo/core/recordingchannelgroup.py | 8 +++--- neo/core/segment.py | 2 +- neo/core/unit.py | 6 ++--- neo/io/blackrockio.py | 8 +++--- neo/io/blackrockio_deprecated.py | 4 +-- neo/io/brainwaredamio.py | 4 +-- neo/io/brainwaref32io.py | 2 +- neo/io/brainwaresrcio.py | 4 +-- neo/io/elphyio.py | 2 +- neo/io/hdf5io.py | 22 ++++++++-------- neo/io/kwikio.py | 4 +-- neo/io/neuroscopeio.py | 2 +- neo/io/tools.py | 6 ++--- neo/test/coretest/test_analogsignalarray.py | 4 +-- neo/test/coretest/test_block.py | 26 +++++++++---------- .../coretest/test_recordingchannelgroup.py | 2 +- neo/test/coretest/test_segment.py | 2 +- neo/test/coretest/test_unit.py | 4 +-- neo/test/generate_datasets.py | 2 +- neo/test/iotest/test_brainwaredamio.py | 2 +- neo/test/iotest/test_brainwaref32io.py | 2 +- neo/test/iotest/test_brainwaresrcio.py | 4 +-- 27 files changed, 72 insertions(+), 72 deletions(-) diff --git a/examples/generated_data.py b/examples/generated_data.py index a03fd5753..fb62af041 100644 --- a/examples/generated_data.py +++ b/examples/generated_data.py @@ -35,7 +35,7 @@ def generate_block(n_segments=3, n_channels=8, n_units=3, block = neo.Block() block.segments = segments - block.channelindexes = [rcg] + block.channel_indexes = [rcg] # Create synthetic data for seg in segments: @@ -87,7 +87,7 @@ def generate_block(n_segments=3, n_channels=8, n_units=3, # We assume that our block has only 1 ChannelIndex and each # RecordingChannel only has 1 AnalogSignal. -rcg = block.channelindexes[0] +rcg = block.channel_indexes[0] for rc in rcg.recordingchannels: print("Analysing channel %d: %s" % (rc.index, rc.name)) @@ -123,7 +123,7 @@ def generate_block(n_segments=3, n_channels=8, n_units=3, # By ChannelIndex. Here we calculate a PSTH averaged over trials by # channel location, blending all Units: -for rcg in block.channelindexes: +for rcg in block.channel_indexes: stlist = [] for unit in rcg.units: stlist.extend([st - st.t_start for st in unit.spiketrains]) diff --git a/neo/core/analogsignal.py b/neo/core/analogsignal.py index 3f7a7d4d4..27d539526 100644 --- a/neo/core/analogsignal.py +++ b/neo/core/analogsignal.py @@ -185,7 +185,7 @@ def __new__(cls, signal, units=None, dtype=None, copy=True, obj._sampling_rate = _get_sampling_rate(sampling_rate, sampling_period) obj.segment = None - obj.channelindex = None + obj.channel_index = None return obj def __init__(self, signal, units=None, dtype=None, copy=True, @@ -258,8 +258,8 @@ def __repr__(self): def get_channel_index(self): """ """ - if self.channelindex: - return self.channelindex.channel_indexes + if self.channel_index: + return self.channel_index.channel_indexes else: return None diff --git a/neo/core/baseneo.py b/neo/core/baseneo.py index 9abd5abab..bce02199e 100644 --- a/neo/core/baseneo.py +++ b/neo/core/baseneo.py @@ -126,7 +126,7 @@ def _reference_name(class_name): `_container_name("Block")`. """ name_map = { - "ChannelIndex": "channelindex" + "ChannelIndex": "channel_index" } return name_map.get(class_name, class_name.lower()) @@ -141,7 +141,7 @@ def _container_name(class_name): obtained by calling `_container_name_plural("Segment")`. """ name_map = { - "ChannelIndex": "channelindexes" + "ChannelIndex": "channel_indexes" } return name_map.get(class_name, _reference_name(class_name) + 's') diff --git a/neo/core/block.py b/neo/core/block.py index 9d14adf0e..10c2c17f4 100644 --- a/neo/core/block.py +++ b/neo/core/block.py @@ -41,11 +41,11 @@ class Block(Container): >>> for ind in range(2): ... rcg = ChannelIndex(name='Array probe %d' % ind, ... channel_indexes=np.arange(64)) - ... blk.channelindexes.append(rcg) + ... blk.channel_indexes.append(rcg) ... >>> # Populate the Block with AnalogSignal objects ... for seg in blk.segments: - ... for rcg in blk.channelindexes: + ... for rcg in blk.channel_indexes: ... a = AnalogSignal(np.random.randn(10000, 64)*nA, ... sampling_rate=10*kHz) ... rcg.analogsignals.append(a) diff --git a/neo/core/irregularlysampledsignal.py b/neo/core/irregularlysampledsignal.py index 2117146d1..3fd73b387 100644 --- a/neo/core/irregularlysampledsignal.py +++ b/neo/core/irregularlysampledsignal.py @@ -148,7 +148,7 @@ def __new__(cls, times, signal, units=None, time_units=None, dtype=None, obj.times = pq.Quantity(times, units=time_units, dtype=float, copy=copy) obj.segment = None - obj.channelindex = None + obj.channel_index = None return obj diff --git a/neo/core/recordingchannelgroup.py b/neo/core/recordingchannelgroup.py index b919075ee..a9899d9bd 100644 --- a/neo/core/recordingchannelgroup.py +++ b/neo/core/recordingchannelgroup.py @@ -44,11 +44,11 @@ class ChannelIndex(Container): >>> for ind in range(2): ... rcg = ChannelIndex(name='Array probe %d' % ind, ... channel_indexes=np.arange(64)) - ... blk.channelindexes.append(rcg) + ... blk.channel_indexes.append(rcg) ... >>> # Populate the Block with AnalogSignal objects ... for seg in blk.segments: - ... for rcg in blk.channelindexes: + ... for rcg in blk.channel_indexes: ... a = AnalogSignal(np.random.randn(10000, 64)*nA, ... sampling_rate=10*kHz) ... rcg.analogsignals.append(a) @@ -71,7 +71,7 @@ class ChannelIndex(Container): ... rcg = ChannelIndex(channel_names=np.array(['ch1', 'ch4', 'ch6']), ... channel_indexes = np.array([0, 3, 5]) >>> rcg.analogsignals.append(sig) - >>> blk.channelindexes.append(rcg) + >>> blk.channel_indexes.append(rcg) *Usage 3* dealing with :class:`Unit` objects:: @@ -82,7 +82,7 @@ class ChannelIndex(Container): >>> >>> # Create a new ChannelIndex and add it to the Block >>> rcg = ChannelIndex(name='octotrode A') - >>> blk.channelindexes.append(rcg) + >>> blk.channel_indexes.append(rcg) >>> >>> # create several Unit objects and add them to the >>> # ChannelIndex diff --git a/neo/core/segment.py b/neo/core/segment.py index cde2cda77..131cfe928 100644 --- a/neo/core/segment.py +++ b/neo/core/segment.py @@ -185,7 +185,7 @@ def construct_subsegment_by_unit(self, unit_list=None): >>> >>> blk = Block() >>> rcg = ChannelIndex(name='group0') - >>> blk.channelindexes = [rcg] + >>> blk.channel_indexes = [rcg] >>> >>> for ind in range(5): ... unit = Unit(name='Unit #%s' % ind, channel_index=ind) diff --git a/neo/core/unit.py b/neo/core/unit.py index c77164e1f..e5ee9b1a1 100644 --- a/neo/core/unit.py +++ b/neo/core/unit.py @@ -70,12 +70,12 @@ def __init__(self, name=None, description=None, file_origin=None, ''' super(Unit, self).__init__(name=name, description=description, file_origin=file_origin, **annotations) - self.channelindex = None + self.channel_index = None def get_channel_indexes(self): """ """ - if self.channelindex: - return self.channelindex.channel_indexes + if self.channel_index: + return self.channel_index.channel_indexes else: return None diff --git a/neo/io/blackrockio.py b/neo/io/blackrockio.py index 53476a8b6..37b164974 100644 --- a/neo/io/blackrockio.py +++ b/neo/io/blackrockio.py @@ -93,8 +93,8 @@ def read_block(self, lazy=False, cascade=True, load_waveforms = False): channel_id = st.annotations['channel_id'] index = None for sig in seg.analogsignals: - if channel_id in sig.channelindex.channel_ids: - i = np.where(sig.channelindex.channel_ids==channel_id)[0][0] + if channel_id in sig.channel_index.channel_ids: + i = np.where(sig.channel_index.channel_ids==channel_id)[0][0] index = sig.get_channel_index()[i] break if index is not None: @@ -104,7 +104,7 @@ def read_block(self, lazy=False, cascade=True, load_waveforms = False): unit = Unit(name=st.name) unit.spiketrains.append(st) rcg.units.append(unit) - bl.channelindexes.append(rcg) + bl.channel_indexes.append(rcg) bl.create_many_to_one_relationship() @@ -426,7 +426,7 @@ def read_nsx(self, filename_nsx, seg, lazy, cascade): name=name, file_origin=filename_nsx) rcg.analogsignals.append(anasig) - anasig.channelindex = rcg + anasig.channel_index = rcg seg.analogsignals.append(anasig) def read_sif(self, filename_sif, seg, ): diff --git a/neo/io/blackrockio_deprecated.py b/neo/io/blackrockio_deprecated.py index c8503ccd0..a95bdcc4e 100644 --- a/neo/io/blackrockio_deprecated.py +++ b/neo/io/blackrockio_deprecated.py @@ -114,7 +114,7 @@ def read_block(self, lazy=False, cascade=True, #~ # Add channel hierarchy #~ rcg = ChannelIndex(name='allchannels', #~ description='group of all channels', file_origin=self.filename) - #~ block.channelindexes.append(rcg) + #~ block.channel_indexes.append(rcg) #~ self.channel_number_to_recording_channel = {} #~ # Add each channel at a time to hierarchy @@ -277,7 +277,7 @@ def channel_indexes_in_segment(seg): channel_indices.append(sig.recordingchannel.index) for asa in seg.analogsignals: - channel_indices.append(asa.channelindex.channel_indexes) + channel_indices.append(asa.channel_index.channel_indexes) return channel_indices diff --git a/neo/io/brainwaredamio.py b/neo/io/brainwaredamio.py index 3a143458a..4d8ba72e8 100644 --- a/neo/io/brainwaredamio.py +++ b/neo/io/brainwaredamio.py @@ -147,7 +147,7 @@ def read_block(self, lazy=False, cascade=True, **kargs): channel_names=np.array(['Chan1'], dtype='S')) # load objects into their containers - block.channelindexes.append(rcg) + block.channel_indexes.append(rcg) # open the file with open(self._path, 'rb') as fobject: @@ -159,7 +159,7 @@ def read_block(self, lazy=False, cascade=True, **kargs): break # store the segment and signals - seg.analogsignals[0].channelindex = rcg + seg.analogsignals[0].channel_index = rcg block.segments.append(seg) # remove the file object diff --git a/neo/io/brainwaref32io.py b/neo/io/brainwaref32io.py index b50486b32..a505792b2 100644 --- a/neo/io/brainwaref32io.py +++ b/neo/io/brainwaref32io.py @@ -163,7 +163,7 @@ def read_block(self, lazy=False, cascade=True, **kargs): self.__unit = Unit(file_origin=self._filename) # load objects into their containers - block.channelindexes.append(rcg) + block.channel_indexes.append(rcg) rcg.units.append(self.__unit) # initialize values diff --git a/neo/io/brainwaresrcio.py b/neo/io/brainwaresrcio.py index 6c5a1922d..51ef0c024 100755 --- a/neo/io/brainwaresrcio.py +++ b/neo/io/brainwaresrcio.py @@ -164,7 +164,7 @@ def __init__(self, filename=None): self._blk = None # This stores the current ChannelIndex for easy access - # It is equivalent to self._blk.channelindexes[0] + # It is equivalent to self._blk.channel_indexes[0] self._rcg = None # This stores the current Segment for easy access @@ -296,7 +296,7 @@ def read_next_block(self, cascade=True, lazy=False, **kargs): file_origin=self._file_origin, elliptic=[], boundaries=[], timestamp=[], max_valid=[]) - self._blk.channelindexes.append(self._rcg) + self._blk.channel_indexes.append(self._rcg) self._rcg.units.append(self._unit0) self._blk.segments.append(self._seg0) diff --git a/neo/io/elphyio.py b/neo/io/elphyio.py index 22db75f66..032fb40db 100644 --- a/neo/io/elphyio.py +++ b/neo/io/elphyio.py @@ -4203,7 +4203,7 @@ def read_channelindex( self, episode ): ) for spk in range(0, n_spikes) : channel = self.read_channelindex(episode, spk) - group.channelindexes.append(channel) + group.channel_indexes.append(channel) return group diff --git a/neo/io/hdf5io.py b/neo/io/hdf5io.py index c05216873..541626541 100755 --- a/neo/io/hdf5io.py +++ b/neo/io/hdf5io.py @@ -534,7 +534,7 @@ def _get_parent(self, path, ref, parent_type): if parent_type.lower() in ('recordingchannel', 'unit'): # We need to search all recording channels - path = block_path + '/channelindexes' + path = block_path + '/channel_indexes' for n in self._data.iterNodes(path): if not '_type' in n._v_attrs: continue @@ -547,9 +547,9 @@ def _get_parent(self, path, ref, parent_type): if parent_type.lower() == 'segment': path = block_path + '/segments' - elif parent_type.lower() in ('channelindex', - 'channelindexes'): - path = block_path + '/channelindexes' + elif parent_type.lower() in ('channel_index', + 'channel_indexes'): + path = block_path + '/channel_indexes' else: return '' @@ -561,7 +561,7 @@ def _get_rcgs(self, path, ref): parts = path.split('/') object_folder = parts[-2] block_path = '/'.join(parts[:-4]) - path = block_path + '/channelindexes' + path = block_path + '/channel_indexes' return self._search_parent(path, object_folder, ref, True) def _search_parent(self, path, object_folder, ref, multi=False): @@ -616,9 +616,9 @@ def load_lazy_cascade(self, path, lazy): ppaths.append(None) self.parent_paths[path] = ppaths elif t == 'RecordingChannel': - if 'channelindexes' in node._v_attrs: + if 'channel_indexes' in node._v_attrs: self.parent_paths[path] = node._f_getAttr( - 'channelindexes') + 'channel_indexes') # Set parent objects if path in self.parent_paths: @@ -626,7 +626,7 @@ def load_lazy_cascade(self, path, lazy): if t == 'RecordingChannel': # Set list of parnet channel groups for rcg in self.parent_paths[path]: - o.channelindexes.append( + o.channel_indexes.append( self.get(rcg, cascade='lazy', lazy=lazy)) else: # Set parents: Segment and another parent if paths[0] is None: @@ -650,7 +650,7 @@ def load_lazy_cascade(self, path, lazy): if t == 'RecordingChannel': rcg_paths = self._get_rcgs(path, ref) for rcg in rcg_paths: - o.channelindexes.append(self.get( + o.channel_indexes.append(self.get( rcg, cascade='lazy', lazy=lazy)) self.parent_paths[path] = rcg_paths else: @@ -812,7 +812,7 @@ def get_lazy_shape(obj, node): # create at least One-to-Many if obj_type == 'ChannelIndex' and not object_ref: for r in relatives: - r.channelindexes = [obj] + r.channel_indexes = [obj] # special processor for RC -> RCG if obj_type == 'RecordingChannel': if hasattr(node, '_v_parent'): @@ -820,7 +820,7 @@ def get_lazy_shape(obj, node): if hasattr(parent, '_v_parent'): parent = parent._v_parent if 'object_ref' in parent._v_attrs: - obj.channelindexes.append(self.get( + obj.channel_indexes.append(self.get( parent._v_pathname, lazy=lazy)) return obj diff --git a/neo/io/kwikio.py b/neo/io/kwikio.py index d5069147f..f476a7ae5 100644 --- a/neo/io/kwikio.py +++ b/neo/io/kwikio.py @@ -142,12 +142,12 @@ def read_block(self, rcg = ChannelIndex(name='all channels', channel_indexes=channel_index) - blk.channelindexes.append(rcg) + blk.channel_indexes.append(rcg) ana = self.read_analogsignal(channel_index=channel_index, lazy=lazy, cascade=cascade) - ana.channelindex = rcg + ana.channel_index = rcg seg.duration = (self._attrs['shape'][0] / self._attrs['kwik']['sample_rate']) * pq.s diff --git a/neo/io/neuroscopeio.py b/neo/io/neuroscopeio.py index 7e8c9d529..3ba40cbf1 100644 --- a/neo/io/neuroscopeio.py +++ b/neo/io/neuroscopeio.py @@ -104,7 +104,7 @@ def read_block(self, channel_indexes=np.arange(n_channels, dtype = int)) rcg.channel_ids = np.array([int(xml_rc.text) for xml_rc in xml_rcg]) rcg.channel_names = np.array(['Channel{0}'.format(id) for id in rcg.channel_ids], dtype = 'S') - bl.channelindexes.append(rcg) + bl.channel_indexes.append(rcg) # AnalogSignals reader = RawBinarySignalIO(filename = self.filename.replace('.xml', '.dat')) diff --git a/neo/io/tools.py b/neo/io/tools.py index 293127c4c..52907b358 100644 --- a/neo/io/tools.py +++ b/neo/io/tools.py @@ -22,7 +22,7 @@ # Special case this tricky many-to-many relationship # we still need links from recordingchannel to analogsignal -# for rcg in block.channelindexes: +# for rcg in block.channel_indexes: # for rc in rcg.recordingchannels: # rc.create_many_to_one_relationship() @@ -65,11 +65,11 @@ # rcg = ChannelIndex(name='all channels', # channel_indexes=indexes, # channel_names=names) -# bl.channelindexes.append(rcg) +# bl.channel_indexes.append(rcg) # for ind in indexes: # # many to many relationship # rcg.recordingchannels.append(recordingchannels[ind]) -# recordingchannels[ind].channelindexes.append(rcg) +# recordingchannels[ind].channel_indexes.append(rcg) def iteritems(D): diff --git a/neo/test/coretest/test_analogsignalarray.py b/neo/test/coretest/test_analogsignalarray.py index 3f782218e..54eb0e565 100644 --- a/neo/test/coretest/test_analogsignalarray.py +++ b/neo/test/coretest/test_analogsignalarray.py @@ -206,13 +206,13 @@ def test__children(self): self.assertEqual(signal._multi_parent_objects, ()) self.assertEqual(signal._single_parent_containers, - ('segment', 'channelindex')) + ('segment', 'channel_index')) self.assertEqual(signal._multi_parent_containers, ()) self.assertEqual(signal._parent_objects, ('Segment', 'ChannelIndex')) self.assertEqual(signal._parent_containers, - ('segment', 'channelindex')) + ('segment', 'channel_index')) self.assertEqual(len(signal.parents), 2) self.assertEqual(signal.parents[0].name, 'seg1') diff --git a/neo/test/coretest/test_block.py b/neo/test/coretest/test_block.py index 4705de29d..0be5ee200 100644 --- a/neo/test/coretest/test_block.py +++ b/neo/test/coretest/test_block.py @@ -84,8 +84,8 @@ def test__fake_neo__cascade(self): seg = res.segments[0] self.assertEqual(seg.annotations, self.annotations) - self.assertEqual(len(res.channelindexes), 1) - rcg = res.channelindexes[0] + self.assertEqual(len(res.channel_indexes), 1) + rcg = res.channel_indexes[0] self.assertEqual(rcg.annotations, self.annotations) self.assertEqual(len(seg.analogsignals), 1) @@ -130,7 +130,7 @@ def test__fake_neo__nocascade(self): self.assertEqual(res.annotations, self.annotations) self.assertEqual(len(res.segments), 0) - self.assertEqual(len(res.channelindexes), 0) + self.assertEqual(len(res.channel_indexes), 0) class TestBlock(unittest.TestCase): @@ -144,8 +144,8 @@ def setUp(self): self.segs1 = self.blk1.segments self.segs2 = self.blk2.segments - self.rcgs1 = self.blk1.channelindexes - self.rcgs2 = self.blk2.channelindexes + self.rcgs1 = self.blk1.channel_indexes + self.rcgs2 = self.blk2.channel_indexes self.units1 = [[unit for unit in rcg.units] for rcg in self.rcgs1] self.units2 = [[unit for unit in rcg.units] for rcg in self.rcgs2] @@ -223,10 +223,10 @@ def check_creation(self, blk): targ6['seed'] = seed self.assertEqual(blk.annotations, targ6) - self.assertTrue(hasattr(blk, 'channelindexes')) + self.assertTrue(hasattr(blk, 'channel_indexes')) self.assertTrue(hasattr(blk, 'segments')) - self.assertEqual(len(blk.channelindexes), self.nchildren) + self.assertEqual(len(blk.channel_indexes), self.nchildren) self.assertEqual(len(blk.segments), self.nchildren) def test__creation(self): @@ -245,7 +245,7 @@ def test__merge(self): rcgs1a = clone_object(self.rcgs1) assert_same_sub_schema(rcgs1a + self.rcgs2, - blk1a.channelindexes) + blk1a.channel_indexes) assert_same_sub_schema(segs1a + self.segs2, blk1a.segments) @@ -266,10 +266,10 @@ def test__children(self): ('Segment', 'ChannelIndex')) self.assertEqual(self.blk1._container_child_containers, - ('segments', 'channelindexes')) + ('segments', 'channel_indexes')) self.assertEqual(self.blk1._data_child_containers, ()) self.assertEqual(self.blk1._single_child_containers, - ('segments', 'channelindexes')) + ('segments', 'channel_indexes')) self.assertEqual(self.blk1._single_parent_containers, ()) self.assertEqual(self.blk1._multi_child_containers, ()) self.assertEqual(self.blk1._multi_parent_containers, ()) @@ -277,7 +277,7 @@ def test__children(self): self.assertEqual(self.blk1._child_objects, ('Segment', 'ChannelIndex')) self.assertEqual(self.blk1._child_containers, - ('segments', 'channelindexes')) + ('segments', 'channel_indexes')) self.assertEqual(self.blk1._parent_objects, ()) self.assertEqual(self.blk1._parent_containers, ()) @@ -335,7 +335,7 @@ def test__children(self): def test__size(self): targ = {'segments': self.nchildren, - 'channelindexes': self.nchildren} + 'channel_indexes': self.nchildren} self.assertEqual(self.targobj.size, targ) def test__filter_none(self): @@ -718,7 +718,7 @@ def test__filterdata_multi_partres_annotation_annotation(self): # seg1 = seg1.replace('\n', '\n ') # # targ = ("Block with " + - # ("%s segments, %s channelindexes\n" % + # ("%s segments, %s channel_indexes\n" % # (len(self.segs1), len(self.rcgs1))) + # ("name: '%s'\ndescription: '%s'\n" % (self.blk1.name, # self.blk1.description)) + diff --git a/neo/test/coretest/test_recordingchannelgroup.py b/neo/test/coretest/test_recordingchannelgroup.py index 29ac097a1..70323dce3 100644 --- a/neo/test/coretest/test_recordingchannelgroup.py +++ b/neo/test/coretest/test_recordingchannelgroup.py @@ -219,7 +219,7 @@ def test__merge(self): def test__children(self): blk = Block(name='block1') - blk.channelindexes = [self.chx1] + blk.channel_indexes = [self.chx1] blk.create_many_to_one_relationship() self.assertEqual(self.chx1._container_child_objects, ('Unit',)) diff --git a/neo/test/coretest/test_segment.py b/neo/test/coretest/test_segment.py index 2f6fac2f7..9eb6ad1ae 100644 --- a/neo/test/coretest/test_segment.py +++ b/neo/test/coretest/test_segment.py @@ -698,7 +698,7 @@ def test__construct_subsegment_by_unit(self): all_unit.append(un) blk = Block() - blk.channelindexes = rcgs + blk.channel_indexes = rcgs for s in range(nb_seg): seg = Segment(name='Simulation %s' % s) for j in range(nb_unit): diff --git a/neo/test/coretest/test_unit.py b/neo/test/coretest/test_unit.py index 2bdcf09fc..9c645f114 100644 --- a/neo/test/coretest/test_unit.py +++ b/neo/test/coretest/test_unit.py @@ -163,7 +163,7 @@ def test__children(self): self.assertEqual(self.unit1._data_child_containers, ('spiketrains',)) self.assertEqual(self.unit1._single_child_containers, ('spiketrains',)) self.assertEqual(self.unit1._single_parent_containers, - ('channelindex',)) + ('channel_index',)) self.assertEqual(self.unit1._multi_child_containers, ()) self.assertEqual(self.unit1._multi_parent_containers, ()) @@ -172,7 +172,7 @@ def test__children(self): self.assertEqual(self.unit1._parent_objects, ('ChannelIndex',)) self.assertEqual(self.unit1._parent_containers, - ('channelindex',)) + ('channel_index',)) self.assertEqual(len(self.unit1._single_children), self.nchildren) self.assertEqual(len(self.unit1._multi_children), 0) diff --git a/neo/test/generate_datasets.py b/neo/test/generate_datasets.py index 328632748..62aaf6f66 100644 --- a/neo/test/generate_datasets.py +++ b/neo/test/generate_datasets.py @@ -344,7 +344,7 @@ def fake_neo(obj_type="Block", cascade=True, seed=None, n=1): # need to manually create 'implicit' connections if obj_type == 'Block': # connect data objects to segment - for i, rcg in enumerate(obj.channelindexes): + for i, rcg in enumerate(obj.channel_indexes): for k, sigarr in enumerate(rcg.analogsignals): obj.segments[k].analogsignals.append(sigarr) for k, sigarr in enumerate(rcg.irregularlysampledsignals): diff --git a/neo/test/iotest/test_brainwaredamio.py b/neo/test/iotest/test_brainwaredamio.py index 51589bb45..5ad303152 100644 --- a/neo/test/iotest/test_brainwaredamio.py +++ b/neo/test/iotest/test_brainwaredamio.py @@ -63,7 +63,7 @@ def proc_dam(filename): channel_ids = np.array([1]), channel_names = np.array(['Chan1'], dtype='S')) - block.channelindexes.append(rcg) + block.channel_indexes.append(rcg) params = [res['params'][0, 0].flatten() for res in damfile['stim']] values = [res['values'][0, 0].flatten() for res in damfile['stim']] diff --git a/neo/test/iotest/test_brainwaref32io.py b/neo/test/iotest/test_brainwaref32io.py index 4f2d98cce..1b23be70f 100644 --- a/neo/test/iotest/test_brainwaref32io.py +++ b/neo/test/iotest/test_brainwaref32io.py @@ -57,7 +57,7 @@ def proc_f32(filename): unit = Unit(file_origin=filenameorig) # load objects into their containers - block.channelindexes.append(rcg) + block.channel_indexes.append(rcg) rcg.units.append(unit) try: diff --git a/neo/test/iotest/test_brainwaresrcio.py b/neo/test/iotest/test_brainwaresrcio.py index ee6dfffdd..94cabfc9f 100644 --- a/neo/test/iotest/test_brainwaresrcio.py +++ b/neo/test/iotest/test_brainwaresrcio.py @@ -89,7 +89,7 @@ def proc_src(filename): chan_names = ['Chan{}'.format(i) for i in range(NChannels)] rcg.channel_indexes = chan_nums rcg.channel_names = np.array(chan_names, dtype='string_') - block.channelindexes.append(rcg) + block.channel_indexes.append(rcg) for rep in srcfile['sets'][0, 0].flatten(): proc_src_condition(rep, filename, ADperiod, side, block) @@ -155,7 +155,7 @@ def proc_src_condition(rep, filename, ADperiod, side, block): '''Get the condition in a src file that has been processed by the official matlab function. See proc_src for details''' - rcg = block.channelindexes[0] + rcg = block.channel_indexes[0] stim = rep['stim'].flatten() params = [str(res[0]) for res in stim['paramName'][0].flatten()] From 57fc637285acff462be1a846912f4afc27c0fc8b Mon Sep 17 00:00:00 2001 From: Andrew Davison Date: Mon, 22 Feb 2016 00:16:42 +0100 Subject: [PATCH 4/8] Renamed variables called `rcg` (for RecordingChannelGroup) to `chx` (for ChannelIndex). --- doc/source/core.rst | 16 +++--- doc/source/usecases.rst | 24 ++++---- examples/generated_data.py | 22 +++---- neo/core/block.py | 8 +-- neo/core/recordingchannelgroup.py | 20 +++---- neo/core/segment.py | 10 ++-- neo/io/baseio.py | 2 +- neo/io/blackrockio.py | 12 ++-- neo/io/blackrockio_deprecated.py | 10 ++-- neo/io/brainwaredamio.py | 6 +- neo/io/brainwaref32io.py | 6 +- neo/io/brainwaresrcio.py | 30 +++++----- neo/io/hdf5io.py | 14 ++--- neo/io/kwikio.py | 6 +- neo/io/neuroscopeio.py | 14 ++--- neo/io/tools.py | 12 ++-- neo/test/coretest/test_analogsignalarray.py | 8 +-- neo/test/coretest/test_block.py | 64 ++++++++++----------- neo/test/coretest/test_segment.py | 8 +-- neo/test/coretest/test_unit.py | 10 ++-- neo/test/generate_datasets.py | 8 +-- neo/test/iotest/test_brainwaredamio.py | 4 +- neo/test/iotest/test_brainwaref32io.py | 6 +- neo/test/iotest/test_brainwaresrcio.py | 24 ++++---- 24 files changed, 172 insertions(+), 172 deletions(-) diff --git a/doc/source/core.rst b/doc/source/core.rst index c6ac00ac5..43b144d4f 100644 --- a/doc/source/core.rst +++ b/doc/source/core.rst @@ -124,9 +124,9 @@ In some cases, a one-to-many relationship is sufficient. Here is a simple exampl # the four tetrodes for i in range(4): - rcg = ChannelIndex(name = 'Tetrode %d' % i, + chx = ChannelIndex(name = 'Tetrode %d' % i, channel_indexes=[0, 1, 2, 3]) - bl.channelindexes.append(rcg) + bl.channelindexes.append(chx) # now we load the data and associate it with the created channels # ... @@ -136,16 +136,16 @@ Now consider a more complex example: a 1x4 silicon probe, with a neuron on chann bl = Block(name='probe data') # one group for each neuron - rcg0 = ChannelIndex(name='Group 0', + chx0 = ChannelIndex(name='Group 0', channel_indexes=[0, 1, 2]) - bl.channelindexes.append(rcg0) + bl.channelindexes.append(chx0) - rcg1 = ChannelIndex(name='Group 1', + chx1 = ChannelIndex(name='Group 1', channel_indexes=[1, 2, 3]) - bl.channelindexes.append(rcg1) + bl.channelindexes.append(chx1) - # now we add the spiketrain from Unit 0 to rcg0 - # and add the spiketrain from Unit 1 to rcg1 + # now we add the spiketrain from Unit 0 to chx0 + # and add the spiketrain from Unit 1 to chx1 # ... Note that because neurons are sorted from groups of channels in this situation, it is natural that the :py:class:`ChannelIndex` contains a reference to the :py:class:`Unit` object. diff --git a/doc/source/usecases.rst b/doc/source/usecases.rst index 39c75796e..43acae8d1 100644 --- a/doc/source/usecases.rst +++ b/doc/source/usecases.rst @@ -53,14 +53,14 @@ Perhaps you want to see which physical location produces the strongest response, .. doctest:: # We assume that our block has only 1 ChannelIndex - rcg = block.channelindexes[0]: + chx = block.channelindexes[0]: - index = rcg.channel_indexes - siglist = [sig[:, index] for sig in rcg.analogsignals] + index = chx.channel_indexes + siglist = [sig[:, index] for sig in chx.analogsignals] avg = np.mean(siglist, axis=0) plt.figure() - for index, name in zip(rcg.channel_indexes, rcg.channel_names): + for index, name in zip(chx.channel_indexes, chx.channel_names): plt.plot(avg[:, index]) plt.title("Average response on channels %s: %s' % (index, name) @@ -75,7 +75,7 @@ during the experiment and you want to follow up. What was the average response? .. doctest:: - index = rcg.channel_indexes[5] + index = chx.channel_indexes[5] avg = np.mean([seg.analogsignals[0][:, index] for seg in block.segments[::2]], axis=1) plt.plot(avg) @@ -142,14 +142,14 @@ blending all units: .. doctest:: - for rcg in block.channelindexes: + for chx in block.channelindexes: stlist = [] - for unit in rcg.units: + for unit in chx.units: stlist.extend([st - st.t_start for st in unit.spiketrains]) plt.figure() count, bins = np.histogram(stlist) plt.bar(bins[:-1], count, width=bins[1] - bins[0]) - plt.title("PSTH blend of tetrode %s" % rcg.name) + plt.title("PSTH blend of tetrode %s" % chx.name) Spike sorting @@ -177,13 +177,13 @@ how you could iterate over the contained signals and extract spike times. [0.1, 0.1, 0.1, 0.1], [0.1, 0.1, 0.1, 0.1]], sampling_rate=1000*Hz, units='V')) - rcg = ChannelIndex(channel_indexes=[0, 1, 2, 3]) - rcg.analogsignals.append(seg.analogsignals[0]) + chx = ChannelIndex(channel_indexes=[0, 1, 2, 3]) + chx.analogsignals.append(seg.analogsignals[0]) # extract spike trains from each channel st_list = [] - for signal in rcg.analogsignals: + for signal in chx.analogsignals: # use a simple threshhold detector spike_mask = np.where(np.min(signal.magnitude, axis=1) < -1.0)[0] # note, np.min(Quantity) is borked @@ -207,7 +207,7 @@ Unit to the group on which we detected it. u = Unit() u.spiketrains = st_list - rcg.units.append(u) + chx.units.append(u) Now the recording channel group (tetrode) contains a list of analogsignals, and a single Unit object containing all of the detected spiketrains from those diff --git a/examples/generated_data.py b/examples/generated_data.py index fb62af041..ff17d636e 100644 --- a/examples/generated_data.py +++ b/examples/generated_data.py @@ -24,18 +24,18 @@ def generate_block(n_segments=3, n_channels=8, n_units=3, # Create container and grouping objects segments = [neo.Segment(index=i) for i in range(n_segments)] - rcg = neo.ChannelIndex(name='T0') + chx = neo.ChannelIndex(name='T0') for i in range(n_channels): rc = neo.RecordingChannel(name='C%d' % i, index=i) - rc.channelindexes = [rcg] - rcg.recordingchannels.append(rc) + rc.channelindexes = [chx] + chx.recordingchannels.append(rc) units = [neo.Unit('U%d' % i) for i in range(n_units)] - rcg.units = units + chx.units = units block = neo.Block() block.segments = segments - block.channel_indexes = [rcg] + block.channel_indexes = [chx] # Create synthetic data for seg in segments: @@ -43,7 +43,7 @@ def generate_block(n_segments=3, n_channels=8, n_units=3, # Analog signals: Noise with a single sinewave feature wave = 3 * np.sin(np.linspace(0, 2 * np.pi, feature_samples)) - for rc in rcg.recordingchannels: + for rc in chx.recordingchannels: sig = np.random.randn(data_samples) sig[feature_pos:feature_pos + feature_samples] += wave @@ -87,8 +87,8 @@ def generate_block(n_segments=3, n_channels=8, n_units=3, # We assume that our block has only 1 ChannelIndex and each # RecordingChannel only has 1 AnalogSignal. -rcg = block.channel_indexes[0] -for rc in rcg.recordingchannels: +chx = block.channel_indexes[0] +for rc in chx.recordingchannels: print("Analysing channel %d: %s" % (rc.index, rc.name)) siglist = rc.analogsignals @@ -123,13 +123,13 @@ def generate_block(n_segments=3, n_channels=8, n_units=3, # By ChannelIndex. Here we calculate a PSTH averaged over trials by # channel location, blending all Units: -for rcg in block.channel_indexes: +for chx in block.channel_indexes: stlist = [] - for unit in rcg.units: + for unit in chx.units: stlist.extend([st - st.t_start for st in unit.spiketrains]) count, bins = np.histogram(np.hstack(stlist)) plt.figure() plt.bar(bins[:-1], count, width=bins[1] - bins[0]) - plt.title("PSTH blend of recording channel group %s" % rcg.name) + plt.title("PSTH blend of recording channel group %s" % chx.name) plt.show() diff --git a/neo/core/block.py b/neo/core/block.py index 10c2c17f4..050fc93c7 100644 --- a/neo/core/block.py +++ b/neo/core/block.py @@ -39,16 +39,16 @@ class Block(Container): ... blk.segments.append(seg) ... >>> for ind in range(2): - ... rcg = ChannelIndex(name='Array probe %d' % ind, + ... chx = ChannelIndex(name='Array probe %d' % ind, ... channel_indexes=np.arange(64)) - ... blk.channel_indexes.append(rcg) + ... blk.channel_indexes.append(chx) ... >>> # Populate the Block with AnalogSignal objects ... for seg in blk.segments: - ... for rcg in blk.channel_indexes: + ... for chx in blk.channel_indexes: ... a = AnalogSignal(np.random.randn(10000, 64)*nA, ... sampling_rate=10*kHz) - ... rcg.analogsignals.append(a) + ... chx.analogsignals.append(a) ... seg.analogsignals.append(a) *Required attributes/properties*: diff --git a/neo/core/recordingchannelgroup.py b/neo/core/recordingchannelgroup.py index a9899d9bd..804423324 100644 --- a/neo/core/recordingchannelgroup.py +++ b/neo/core/recordingchannelgroup.py @@ -42,16 +42,16 @@ class ChannelIndex(Container): ... blk.segments.append(seg) ... >>> for ind in range(2): - ... rcg = ChannelIndex(name='Array probe %d' % ind, + ... chx = ChannelIndex(name='Array probe %d' % ind, ... channel_indexes=np.arange(64)) - ... blk.channel_indexes.append(rcg) + ... blk.channel_indexes.append(chx) ... >>> # Populate the Block with AnalogSignal objects ... for seg in blk.segments: - ... for rcg in blk.channel_indexes: + ... for chx in blk.channel_indexes: ... a = AnalogSignal(np.random.randn(10000, 64)*nA, ... sampling_rate=10*kHz) - ... rcg.analogsignals.append(a) + ... chx.analogsignals.append(a) ... seg.analogsignals.append(a) *Usage 2* grouping channels:: @@ -68,10 +68,10 @@ class ChannelIndex(Container): ... blk.segments[0].append(sig) ... >>> # Create a new ChannelIndex which groups three channels from the signal - ... rcg = ChannelIndex(channel_names=np.array(['ch1', 'ch4', 'ch6']), + ... chx = ChannelIndex(channel_names=np.array(['ch1', 'ch4', 'ch6']), ... channel_indexes = np.array([0, 3, 5]) - >>> rcg.analogsignals.append(sig) - >>> blk.channel_indexes.append(rcg) + >>> chx.analogsignals.append(sig) + >>> blk.channel_indexes.append(chx) *Usage 3* dealing with :class:`Unit` objects:: @@ -81,15 +81,15 @@ class ChannelIndex(Container): >>> blk = Block() >>> >>> # Create a new ChannelIndex and add it to the Block - >>> rcg = ChannelIndex(name='octotrode A') - >>> blk.channel_indexes.append(rcg) + >>> chx = ChannelIndex(name='octotrode A') + >>> blk.channel_indexes.append(chx) >>> >>> # create several Unit objects and add them to the >>> # ChannelIndex ... for ind in range(5): ... unit = Unit(name = 'unit %d' % ind, ... description='after a long and hard spike sorting') - ... rcg.units.append(unit) + ... chx.units.append(unit) *Required attributes/properties*: :channel_indexes: (numpy.array 1D dtype='i') diff --git a/neo/core/segment.py b/neo/core/segment.py index 131cfe928..371695a4e 100644 --- a/neo/core/segment.py +++ b/neo/core/segment.py @@ -184,18 +184,18 @@ def construct_subsegment_by_unit(self, unit_list=None): ... ChannelIndex) >>> >>> blk = Block() - >>> rcg = ChannelIndex(name='group0') - >>> blk.channel_indexes = [rcg] + >>> chx = ChannelIndex(name='group0') + >>> blk.channel_indexes = [chx] >>> >>> for ind in range(5): ... unit = Unit(name='Unit #%s' % ind, channel_index=ind) - ... rcg.units.append(unit) + ... chx.units.append(unit) ... >>> >>> for ind in range(3): ... seg = Segment(name='Simulation #%s' % ind) ... blk.segments.append(seg) - ... for unit in rcg.units: + ... for unit in chx.units: ... train = SpikeTrain([1, 2, 3], units='ms', t_start=0., ... t_stop=10) ... train.unit = unit @@ -204,7 +204,7 @@ def construct_subsegment_by_unit(self, unit_list=None): ... >>> >>> seg0 = blk.segments[-1] - >>> seg1 = seg0.construct_subsegment_by_unit(rcg.units[:2]) + >>> seg1 = seg0.construct_subsegment_by_unit(chx.units[:2]) >>> len(seg0.spiketrains) 5 >>> len(seg1.spiketrains) diff --git a/neo/io/baseio.py b/neo/io/baseio.py index f9516f59a..555146c5e 100644 --- a/neo/io/baseio.py +++ b/neo/io/baseio.py @@ -189,7 +189,7 @@ def write_analogsignal(self, anasig, **kargs): def write_irregularlysampledsignal(self, irsig, **kargs): assert(IrregularlySampledSignal in self.writeable_objects), write_error - def write_channelindex(self, rcg, **kargs): + def write_channelindex(self, chx, **kargs): assert(ChannelIndex in self.writeable_objects), write_error def write_event(self, ev, **kargs): diff --git a/neo/io/blackrockio.py b/neo/io/blackrockio.py index 37b164974..66d449a28 100644 --- a/neo/io/blackrockio.py +++ b/neo/io/blackrockio.py @@ -98,13 +98,13 @@ def read_block(self, lazy=False, cascade=True, load_waveforms = False): index = sig.get_channel_index()[i] break if index is not None: - rcg = ChannelIndex(name = 'Group {0}'.format(channel_id), + chx = ChannelIndex(name = 'Group {0}'.format(channel_id), channel_indexes=np.array([index]), channel_ids=np.array([channel_id])) unit = Unit(name=st.name) unit.spiketrains.append(st) - rcg.units.append(unit) - bl.channel_indexes.append(rcg) + chx.units.append(unit) + bl.channel_indexes.append(chx) bl.create_many_to_one_relationship() @@ -420,13 +420,13 @@ def read_nsx(self, filename_nsx, seg, lazy, cascade): channel_indexes = np.arange(anasig.shape[1]) # this assumes there is only ever a single segment - rcg = ChannelIndex(channel_indexes=channel_indexes, + chx = ChannelIndex(channel_indexes=channel_indexes, channel_ids=np.array(ch['channel_id']), channel_names=np.array(ch['label']), name=name, file_origin=filename_nsx) - rcg.analogsignals.append(anasig) - anasig.channel_index = rcg + chx.analogsignals.append(anasig) + anasig.channel_index = chx seg.analogsignals.append(anasig) def read_sif(self, filename_sif, seg, ): diff --git a/neo/io/blackrockio_deprecated.py b/neo/io/blackrockio_deprecated.py index a95bdcc4e..f3f4ab624 100644 --- a/neo/io/blackrockio_deprecated.py +++ b/neo/io/blackrockio_deprecated.py @@ -112,18 +112,18 @@ def read_block(self, lazy=False, cascade=True, n_stops = [self.loader.header.n_samples] #~ # Add channel hierarchy - #~ rcg = ChannelIndex(name='allchannels', + #~ chx = ChannelIndex(name='allchannels', #~ description='group of all channels', file_origin=self.filename) - #~ block.channel_indexes.append(rcg) + #~ block.channel_indexes.append(chx) #~ self.channel_number_to_recording_channel = {} #~ # Add each channel at a time to hierarchy #~ for ch in channel_list: #~ ch_object = RecordingChannel(name='channel%d' % ch, #~ file_origin=self.filename, index=ch) - #~ rcg.channel_indexes.append(ch_object.index) - #~ rcg.channel_names.append(ch_object.name) - #~ rcg.recordingchannels.append(ch_object) + #~ chx.channel_indexes.append(ch_object.index) + #~ chx.channel_names.append(ch_object.name) + #~ chx.recordingchannels.append(ch_object) #~ self.channel_number_to_recording_channel[ch] = ch_object # Iterate through n_starts and n_stops and add one Segment diff --git a/neo/io/brainwaredamio.py b/neo/io/brainwaredamio.py index 4d8ba72e8..756537217 100644 --- a/neo/io/brainwaredamio.py +++ b/neo/io/brainwaredamio.py @@ -141,13 +141,13 @@ def read_block(self, lazy=False, cascade=True, **kargs): return block # create the objects to store other objects - rcg = ChannelIndex(file_origin=self._filename, + chx = ChannelIndex(file_origin=self._filename, channel_ids=np.array([1]), channel_indexes=np.array([0]), channel_names=np.array(['Chan1'], dtype='S')) # load objects into their containers - block.channel_indexes.append(rcg) + block.channel_indexes.append(chx) # open the file with open(self._path, 'rb') as fobject: @@ -159,7 +159,7 @@ def read_block(self, lazy=False, cascade=True, **kargs): break # store the segment and signals - seg.analogsignals[0].channel_index = rcg + seg.analogsignals[0].channel_index = chx block.segments.append(seg) # remove the file object diff --git a/neo/io/brainwaref32io.py b/neo/io/brainwaref32io.py index a505792b2..8e8843cad 100644 --- a/neo/io/brainwaref32io.py +++ b/neo/io/brainwaref32io.py @@ -158,13 +158,13 @@ def read_block(self, lazy=False, cascade=True, **kargs): return block # create the objects to store other objects - rcg = ChannelIndex(file_origin=self._filename, + chx = ChannelIndex(file_origin=self._filename, channel_indexes=np.array([], dtype=np.int)) self.__unit = Unit(file_origin=self._filename) # load objects into their containers - block.channel_indexes.append(rcg) - rcg.units.append(self.__unit) + block.channel_indexes.append(chx) + chx.units.append(self.__unit) # initialize values self.__t_stop = None diff --git a/neo/io/brainwaresrcio.py b/neo/io/brainwaresrcio.py index 51ef0c024..9d939a732 100755 --- a/neo/io/brainwaresrcio.py +++ b/neo/io/brainwaresrcio.py @@ -165,7 +165,7 @@ def __init__(self, filename=None): # This stores the current ChannelIndex for easy access # It is equivalent to self._blk.channel_indexes[0] - self._rcg = None + self._chx = None # This stores the current Segment for easy access # It is equivalent to self._blk.segments[-1] @@ -289,15 +289,15 @@ def read_next_block(self, cascade=True, lazy=False, **kargs): self._blk = Block(file_origin=self._file_origin) if not cascade: return self._blk - self._rcg = ChannelIndex(file_origin=self._file_origin, + self._chx = ChannelIndex(file_origin=self._file_origin, channel_indexes=np.array([], dtype=np.int)) self._seg0 = Segment(name='Comments', file_origin=self._file_origin) self._unit0 = Unit(name='UnassignedSpikes', file_origin=self._file_origin, elliptic=[], boundaries=[], timestamp=[], max_valid=[]) - self._blk.channel_indexes.append(self._rcg) - self._rcg.units.append(self._unit0) + self._blk.channel_indexes.append(self._chx) + self._chx.units.append(self._unit0) self._blk.segments.append(self._seg0) # this actually reads the contents of the Block @@ -317,7 +317,7 @@ def read_next_block(self, cascade=True, lazy=False, **kargs): # reset the per-Block attributes self._blk = None - self._rcg = None + self._chx = None self._unitdict = {} # combine the comments into one big event @@ -470,7 +470,7 @@ def _assign_sequence(self, data_obj): """ if isinstance(data_obj, Unit): self.logger.warning('Unknown Unit found, adding to Units list') - self._rcg.units.append(data_obj) + self._chx.units.append(data_obj) if data_obj.name: self._unitdict[data_obj.name] = data_obj elif isinstance(data_obj, Segment): @@ -980,8 +980,8 @@ def __read_segment_list(self): self.__read_comment() # create a channel_index for the numchannels - self._rcg.channel_indexes = np.arange(numchannels) - self._rcg.channel_names = np.array(['Chan{}'.format(i) for i in range(numchannels)], dtype='S') + self._chx.channel_indexes = np.arange(numchannels) + self._chx.channel_names = np.array(['Chan{}'.format(i) for i in range(numchannels)], dtype='S') # store what side of the head we are dealing with for segment in segments: @@ -1296,7 +1296,7 @@ def __read_unit_list(self): numelements = np.fromfile(self._fsrc, dtype=np.int16, count=1)[0] # {sequence} * numelements1 -- the number of lists of Units to read - self._rcg.annotations['max_valid'] = [] + self._chx.annotations['max_valid'] = [] for i in range(numelements): # {skip} = byte * 2 (int16) -- skip 2 bytes @@ -1313,19 +1313,19 @@ def __read_unit_list(self): # if there aren't enough Units, create them # remember we need to skip the UnassignedSpikes Unit - if numunits > len(self._rcg.units) + 1: - for ind1 in range(len(self._rcg.units), numunits + 1): + if numunits > len(self._chx.units) + 1: + for ind1 in range(len(self._chx.units), numunits + 1): unit = Unit(name='unit%s' % ind1, file_origin=self._file_origin, elliptic=[], boundaries=[], timestamp=[], max_valid=[]) - self._rcg.units.append(unit) + self._chx.units.append(unit) # {Block} * numelements -- Units for ind1 in range(numunits): # get the Unit with the given index # remember we need to skip the UnassignedSpikes Unit - unit = self._rcg.units[ind1 + 1] + unit = self._chx.units[ind1 + 1] # {skip} = byte * 2 (int16) -- skip 2 bytes self._fsrc.seek(2, 1) @@ -1348,7 +1348,7 @@ def __read_unit_list(self): unit.annotations['boundaries'].append(boundaries) unit.annotations['max_valid'].append(max_valid) - return self._rcg.units[1:maxunit] + return self._chx.units[1:maxunit] def __read_unit_list_timestamped(self): """ @@ -1460,7 +1460,7 @@ def __read_unit_unsorted(self): else: unit = Unit(name=name, file_origin=self._file_origin, elliptic=[], boundaries=[], timestamp=[], max_valid=[]) - self._rcg.units.append(unit) + self._chx.units.append(unit) self._unitdict[name] = unit # convert the individual spikes to SpikeTrains and add them to the Unit diff --git a/neo/io/hdf5io.py b/neo/io/hdf5io.py index 541626541..5ccf3d10c 100755 --- a/neo/io/hdf5io.py +++ b/neo/io/hdf5io.py @@ -555,7 +555,7 @@ def _get_parent(self, path, ref, parent_type): return self._search_parent(path, object_folder, ref) - def _get_rcgs(self, path, ref): + def _get_chxs(self, path, ref): """ Get ChannelIndex parents for a RecordingChannel """ parts = path.split('/') @@ -625,9 +625,9 @@ def load_lazy_cascade(self, path, lazy): paths = self.parent_paths[path] if t == 'RecordingChannel': # Set list of parnet channel groups - for rcg in self.parent_paths[path]: + for chx in self.parent_paths[path]: o.channel_indexes.append( - self.get(rcg, cascade='lazy', lazy=lazy)) + self.get(chx, cascade='lazy', lazy=lazy)) else: # Set parents: Segment and another parent if paths[0] is None: paths[0] = self._get_parent( @@ -648,11 +648,11 @@ def load_lazy_cascade(self, path, lazy): ref = self._data.getNodeAttr(path, 'object_ref') if t == 'RecordingChannel': - rcg_paths = self._get_rcgs(path, ref) - for rcg in rcg_paths: + chx_paths = self._get_chxs(path, ref) + for chx in chx_paths: o.channel_indexes.append(self.get( - rcg, cascade='lazy', lazy=lazy)) - self.parent_paths[path] = rcg_paths + chx, cascade='lazy', lazy=lazy)) + self.parent_paths[path] = chx_paths else: for p in o._single_parent_containers: parent = self._get_parent(path, ref, p) diff --git a/neo/io/kwikio.py b/neo/io/kwikio.py index f476a7ae5..9b237ad84 100644 --- a/neo/io/kwikio.py +++ b/neo/io/kwikio.py @@ -140,14 +140,14 @@ def read_block(self, else: channel_index = np.arange(0,self._attrs['shape'][1]) - rcg = ChannelIndex(name='all channels', + chx = ChannelIndex(name='all channels', channel_indexes=channel_index) - blk.channel_indexes.append(rcg) + blk.channel_indexes.append(chx) ana = self.read_analogsignal(channel_index=channel_index, lazy=lazy, cascade=cascade) - ana.channel_index = rcg + ana.channel_index = chx seg.duration = (self._attrs['shape'][0] / self._attrs['kwik']['sample_rate']) * pq.s diff --git a/neo/io/neuroscopeio.py b/neo/io/neuroscopeio.py index 3ba40cbf1..a3823b8f6 100644 --- a/neo/io/neuroscopeio.py +++ b/neo/io/neuroscopeio.py @@ -98,13 +98,13 @@ def read_block(self, bl.segments.append(seg) # RCG - for i, xml_rcg in enumerate(root.find('anatomicalDescription').find('channelGroups').findall('group')): - n_channels = len(xml_rcg) - rcg = ChannelIndex(name = 'Group {0}'.format(i), + for i, xml_chx in enumerate(root.find('anatomicalDescription').find('channelGroups').findall('group')): + n_channels = len(xml_chx) + chx = ChannelIndex(name = 'Group {0}'.format(i), channel_indexes=np.arange(n_channels, dtype = int)) - rcg.channel_ids = np.array([int(xml_rc.text) for xml_rc in xml_rcg]) - rcg.channel_names = np.array(['Channel{0}'.format(id) for id in rcg.channel_ids], dtype = 'S') - bl.channel_indexes.append(rcg) + chx.channel_ids = np.array([int(xml_rc.text) for xml_rc in xml_chx]) + chx.channel_names = np.array(['Channel{0}'.format(id) for id in chx.channel_ids], dtype = 'S') + bl.channel_indexes.append(chx) # AnalogSignals reader = RawBinarySignalIO(filename = self.filename.replace('.xml', '.dat')) @@ -121,7 +121,7 @@ def read_block(self, sig /= amplification sig.segment = seg seg.analogsignals.append(sig) - rcg.analogsignals.append(sig) + chx.analogsignals.append(sig) bl.create_many_to_one_relationship() return bl diff --git a/neo/io/tools.py b/neo/io/tools.py index 52907b358..abfbeee5a 100644 --- a/neo/io/tools.py +++ b/neo/io/tools.py @@ -22,8 +22,8 @@ # Special case this tricky many-to-many relationship # we still need links from recordingchannel to analogsignal -# for rcg in block.channel_indexes: -# for rc in rcg.recordingchannels: +# for chx in block.channel_indexes: +# for rc in chx.recordingchannels: # rc.create_many_to_one_relationship() @@ -62,14 +62,14 @@ # indexes = np.sort(list(recordingchannels.keys())).astype('i') # names = np.array([recordingchannels[idx].name for idx in indexes], # dtype='S') -# rcg = ChannelIndex(name='all channels', +# chx = ChannelIndex(name='all channels', # channel_indexes=indexes, # channel_names=names) -# bl.channel_indexes.append(rcg) +# bl.channel_indexes.append(chx) # for ind in indexes: # # many to many relationship -# rcg.recordingchannels.append(recordingchannels[ind]) -# recordingchannels[ind].channel_indexes.append(rcg) +# chx.recordingchannels.append(recordingchannels[ind]) +# recordingchannels[ind].channel_indexes.append(chx) def iteritems(D): diff --git a/neo/test/coretest/test_analogsignalarray.py b/neo/test/coretest/test_analogsignalarray.py index 54eb0e565..4cba35a14 100644 --- a/neo/test/coretest/test_analogsignalarray.py +++ b/neo/test/coretest/test_analogsignalarray.py @@ -197,9 +197,9 @@ def test__children(self): segment.analogsignals = [signal] segment.create_many_to_one_relationship() - rcg = ChannelIndex(name='rcg1', channel_indexes=np.arange(signal.shape[1])) - rcg.analogsignals = [signal] - rcg.create_many_to_one_relationship() + chx = ChannelIndex(name='chx1', channel_indexes=np.arange(signal.shape[1])) + chx.analogsignals = [signal] + chx.create_many_to_one_relationship() self.assertEqual(signal._single_parent_objects, ('Segment', 'ChannelIndex')) @@ -216,7 +216,7 @@ def test__children(self): self.assertEqual(len(signal.parents), 2) self.assertEqual(signal.parents[0].name, 'seg1') - self.assertEqual(signal.parents[1].name, 'rcg1') + self.assertEqual(signal.parents[1].name, 'chx1') assert_neo_object_is_compliant(signal) diff --git a/neo/test/coretest/test_block.py b/neo/test/coretest/test_block.py index 0be5ee200..86e126266 100644 --- a/neo/test/coretest/test_block.py +++ b/neo/test/coretest/test_block.py @@ -85,8 +85,8 @@ def test__fake_neo__cascade(self): self.assertEqual(seg.annotations, self.annotations) self.assertEqual(len(res.channel_indexes), 1) - rcg = res.channel_indexes[0] - self.assertEqual(rcg.annotations, self.annotations) + chx = res.channel_indexes[0] + self.assertEqual(chx.annotations, self.annotations) self.assertEqual(len(seg.analogsignals), 1) self.assertEqual(len(seg.analogsignals), 1) @@ -107,12 +107,12 @@ def test__fake_neo__cascade(self): self.assertEqual(seg.epochs[0].annotations, self.annotations) - self.assertEqual(len(rcg.units), 1) - unit = rcg.units[0] + self.assertEqual(len(chx.units), 1) + unit = chx.units[0] self.assertEqual(unit.annotations, self.annotations) - self.assertEqual(len(rcg.analogsignals), 1) - self.assertEqual(rcg.analogsignals[0].annotations, + self.assertEqual(len(chx.analogsignals), 1) + self.assertEqual(chx.analogsignals[0].annotations, self.annotations) self.assertEqual(len(unit.spiketrains), 1) @@ -144,29 +144,29 @@ def setUp(self): self.segs1 = self.blk1.segments self.segs2 = self.blk2.segments - self.rcgs1 = self.blk1.channel_indexes - self.rcgs2 = self.blk2.channel_indexes + self.chxs1 = self.blk1.channel_indexes + self.chxs2 = self.blk2.channel_indexes - self.units1 = [[unit for unit in rcg.units] for rcg in self.rcgs1] - self.units2 = [[unit for unit in rcg.units] for rcg in self.rcgs2] + self.units1 = [[unit for unit in chx.units] for chx in self.chxs1] + self.units2 = [[unit for unit in chx.units] for chx in self.chxs2] self.units1 = sum(self.units1, []) self.units2 = sum(self.units2, []) - self.sigarrs1 = [[sigarr for sigarr in rcg.analogsignals] - for rcg in self.rcgs1] - self.sigarrs2 = [[sigarr for sigarr in rcg.analogsignals] - for rcg in self.rcgs2] + self.sigarrs1 = [[sigarr for sigarr in chx.analogsignals] + for chx in self.chxs1] + self.sigarrs2 = [[sigarr for sigarr in chx.analogsignals] + for chx in self.chxs2] self.trains1 = [[train for train in unit.spiketrains] for unit in self.units1] self.trains2 = [[train for train in unit.spiketrains] for unit in self.units2] - self.irsigs1 = [[irsig for irsig in rcg.irregularlysampledsignals] - for rcg in self.rcgs1] - self.irsigs2 = [[irsig for irsig in rcg.irregularlysampledsignals] - for rcg in self.rcgs2] + self.irsigs1 = [[irsig for irsig in chx.irregularlysampledsignals] + for chx in self.chxs1] + self.irsigs2 = [[irsig for irsig in chx.irregularlysampledsignals] + for chx in self.chxs2] self.epcs1 = [[epc for epc in seg.epochs] for seg in self.segs1] @@ -242,16 +242,16 @@ def test__merge(self): blk1a.merge(self.blk2) segs1a = clone_object(self.blk1).segments - rcgs1a = clone_object(self.rcgs1) + chxs1a = clone_object(self.chxs1) - assert_same_sub_schema(rcgs1a + self.rcgs2, + assert_same_sub_schema(chxs1a + self.chxs2, blk1a.channel_indexes) assert_same_sub_schema(segs1a + self.segs2, blk1a.segments) def test__children(self): segs1a = clone_object(self.blk1).segments - rcgs1a = clone_object(self.rcgs1) + chxs1a = clone_object(self.chxs1) self.assertEqual(self.blk1._container_child_objects, ('Segment', 'ChannelIndex')) @@ -297,12 +297,12 @@ def test__children(self): self.assertEqual(self.blk1._multi_children, ()) assert_same_sub_schema(list(self.blk1._single_children), - self.segs1 + self.rcgs1) + self.segs1 + self.chxs1) assert_same_sub_schema(list(self.blk1.container_children), - self.segs1 + self.rcgs1) + self.segs1 + self.chxs1) assert_same_sub_schema(list(self.blk1.container_children_recur), - self.segs1 + self.rcgs1 + + self.segs1 + self.chxs1 + self.units1[:2] + self.units1[2:]) @@ -318,7 +318,7 @@ def test__children(self): exclude=['channel_index']) assert_same_sub_schema(list(self.blk1.children), - segs1a + rcgs1a) + segs1a + chxs1a) assert_same_sub_schema(list(self.blk1.children_recur), self.sigarrs1[::2] + self.epcs1[:2] + self.evts1[:2] + @@ -328,7 +328,7 @@ def test__children(self): self.epcs1[2:] + self.evts1[2:] + self.irsigs1[1::2] + self.trains1[1::2] + - self.segs1 + self.rcgs1 + + self.segs1 + self.chxs1 + self.units1[:2] + self.units1[2:], exclude=['channel_index']) @@ -549,7 +549,7 @@ def test__filter_single_annotation_container(self): [self.epcs1[3], self.evts1[3]] + self.irsigs1[1::2] + self.trains1[1::2] + - [self.segs1[1], self.rcgs1[1], + [self.segs1[1], self.chxs1[1], self.units1[1], self.units1[3]]) @@ -563,7 +563,7 @@ def test__filter_single_attribute_container_data(self): assert_same_sub_schema(res0, targ) def test__filter_single_annotation_container_norecur(self): - targ = [self.segs1[1], self.rcgs1[1]] + targ = [self.segs1[1], self.chxs1[1]] res0 = self.targobj.filter(j=1, container=True, recursive=False) @@ -582,7 +582,7 @@ def test__filter_single_attribute_container_norecur_nores(self): assert_same_sub_schema(res0, targ) def test__filter_single_annotation_nodata_container(self): - targ = [self.segs1[1], self.rcgs1[1], + targ = [self.segs1[1], self.chxs1[1], self.units1[1], self.units1[3]] res0 = self.targobj.filter(j=1, @@ -596,7 +596,7 @@ def test__filter_single_attribute_nodata_container_nores(self): assert_same_sub_schema(res0, targ) def test__filter_single_annotation_nodata_container_norecur(self): - targ = [self.segs1[1], self.rcgs1[1]] + targ = [self.segs1[1], self.chxs1[1]] res0 = self.targobj.filter(j=1, data=False, container=True, recursive=False) @@ -624,7 +624,7 @@ def test__filterdata_multi(self): [self.epcs1[3], self.evts1[3]] + self.irsigs1[1::2] + self.trains1[1::2] + - [self.segs1[1], self.rcgs1[1], + [self.segs1[1], self.chxs1[1], self.units1[1], self.units1[3], self.trains1[0]]) @@ -719,7 +719,7 @@ def test__filterdata_multi_partres_annotation_annotation(self): # # targ = ("Block with " + # ("%s segments, %s channel_indexes\n" % - # (len(self.segs1), len(self.rcgs1))) + + # (len(self.segs1), len(self.chxs1))) + # ("name: '%s'\ndescription: '%s'\n" % (self.blk1.name, # self.blk1.description)) + # ("annotations: %s\n" % ann) + diff --git a/neo/test/coretest/test_segment.py b/neo/test/coretest/test_segment.py index 9eb6ad1ae..128e7a1fd 100644 --- a/neo/test/coretest/test_segment.py +++ b/neo/test/coretest/test_segment.py @@ -685,7 +685,7 @@ def test__construct_subsegment_by_unit(self): sig_len = 100 # channelindexes - rcgs = [ChannelIndex(name='Vm', + chxs = [ChannelIndex(name='Vm', channel_indexes=unit_with_sig), ChannelIndex(name='Conductance', channel_indexes=unit_with_sig)] @@ -698,7 +698,7 @@ def test__construct_subsegment_by_unit(self): all_unit.append(un) blk = Block() - blk.channel_indexes = rcgs + blk.channel_indexes = chxs for s in range(nb_seg): seg = Segment(name='Simulation %s' % s) for j in range(nb_unit): @@ -717,8 +717,8 @@ def test__construct_subsegment_by_unit(self): blk.create_many_to_one_relationship() for unit in all_unit: assert_neo_object_is_compliant(unit) - for rcg in rcgs: - assert_neo_object_is_compliant(rcg) + for chx in chxs: + assert_neo_object_is_compliant(chx) assert_neo_object_is_compliant(blk) # what you want diff --git a/neo/test/coretest/test_unit.py b/neo/test/coretest/test_unit.py index 9c645f114..05b0fa30d 100644 --- a/neo/test/coretest/test_unit.py +++ b/neo/test/coretest/test_unit.py @@ -143,11 +143,11 @@ def test__merge(self): unit1a.spiketrains) def test__children(self): - rcg = ChannelIndex(channel_indexes=np.arange(self.nchildren), name='rcg1') - rcg.units = [self.unit1] - rcg.create_many_to_one_relationship() + chx = ChannelIndex(channel_indexes=np.arange(self.nchildren), name='chx1') + chx.units = [self.unit1] + chx.create_many_to_one_relationship() assert_neo_object_is_compliant(self.unit1) - assert_neo_object_is_compliant(rcg) + assert_neo_object_is_compliant(chx) self.assertEqual(self.unit1._container_child_objects, ()) self.assertEqual(self.unit1._data_child_objects, ('SpikeTrain',)) @@ -203,7 +203,7 @@ def test__children(self): self.trains1a) self.assertEqual(len(self.unit1.parents), 1) - self.assertEqual(self.unit1.parents[0].name, 'rcg1') + self.assertEqual(self.unit1.parents[0].name, 'chx1') def test__size(self): targ = {'spiketrains': self.nchildren} diff --git a/neo/test/generate_datasets.py b/neo/test/generate_datasets.py index 62aaf6f66..a0e7c1055 100644 --- a/neo/test/generate_datasets.py +++ b/neo/test/generate_datasets.py @@ -344,12 +344,12 @@ def fake_neo(obj_type="Block", cascade=True, seed=None, n=1): # need to manually create 'implicit' connections if obj_type == 'Block': # connect data objects to segment - for i, rcg in enumerate(obj.channel_indexes): - for k, sigarr in enumerate(rcg.analogsignals): + for i, chx in enumerate(obj.channel_indexes): + for k, sigarr in enumerate(chx.analogsignals): obj.segments[k].analogsignals.append(sigarr) - for k, sigarr in enumerate(rcg.irregularlysampledsignals): + for k, sigarr in enumerate(chx.irregularlysampledsignals): obj.segments[k].irregularlysampledsignals.append(sigarr) - for j, unit in enumerate(rcg.units): + for j, unit in enumerate(chx.units): for k, train in enumerate(unit.spiketrains): obj.segments[k].spiketrains.append(train) #elif obj_type == 'ChannelIndex': diff --git a/neo/test/iotest/test_brainwaredamio.py b/neo/test/iotest/test_brainwaredamio.py index 5ad303152..0894824c9 100644 --- a/neo/test/iotest/test_brainwaredamio.py +++ b/neo/test/iotest/test_brainwaredamio.py @@ -58,12 +58,12 @@ def proc_dam(filename): block = Block(file_origin=filename) - rcg = ChannelIndex(file_origin=filename, + chx = ChannelIndex(file_origin=filename, channel_indexes = np.array([0]), channel_ids = np.array([1]), channel_names = np.array(['Chan1'], dtype='S')) - block.channel_indexes.append(rcg) + block.channel_indexes.append(chx) params = [res['params'][0, 0].flatten() for res in damfile['stim']] values = [res['values'][0, 0].flatten() for res in damfile['stim']] diff --git a/neo/test/iotest/test_brainwaref32io.py b/neo/test/iotest/test_brainwaref32io.py index 1b23be70f..2140b406d 100644 --- a/neo/test/iotest/test_brainwaref32io.py +++ b/neo/test/iotest/test_brainwaref32io.py @@ -51,14 +51,14 @@ def proc_f32(filename): # create the objects to store other objects block = Block(file_origin=filenameorig) - rcg = ChannelIndex(file_origin=filenameorig, + chx = ChannelIndex(file_origin=filenameorig, channel_indexes=np.array([], dtype=np.int), channel_names=np.array([], dtype='S')) unit = Unit(file_origin=filenameorig) # load objects into their containers - block.channel_indexes.append(rcg) - rcg.units.append(unit) + block.channel_indexes.append(chx) + chx.units.append(unit) try: with np.load(filename) as f32obj: diff --git a/neo/test/iotest/test_brainwaresrcio.py b/neo/test/iotest/test_brainwaresrcio.py index 94cabfc9f..54c911c5e 100644 --- a/neo/test/iotest/test_brainwaresrcio.py +++ b/neo/test/iotest/test_brainwaresrcio.py @@ -84,12 +84,12 @@ def proc_src(filename): comm_seg = proc_src_comments(srcfile, filename) block.segments.append(comm_seg) - rcg = proc_src_units(srcfile, filename) + chx = proc_src_units(srcfile, filename) chan_nums = np.arange(NChannels, dtype='int') chan_names = ['Chan{}'.format(i) for i in range(NChannels)] - rcg.channel_indexes = chan_nums - rcg.channel_names = np.array(chan_names, dtype='string_') - block.channel_indexes.append(rcg) + chx.channel_indexes = chan_nums + chx.channel_names = np.array(chan_names, dtype='string_') + block.channel_indexes.append(chx) for rep in srcfile['sets'][0, 0].flatten(): proc_src_condition(rep, filename, ADperiod, side, block) @@ -126,12 +126,12 @@ def proc_src_comments(srcfile, filename): def proc_src_units(srcfile, filename): '''Get the units in an src file that has been processed by the official matlab function. See proc_src for details''' - rcg = ChannelIndex(file_origin=filename, + chx = ChannelIndex(file_origin=filename, channel_indexes=np.array([], dtype=int)) un_unit = Unit(name='UnassignedSpikes', file_origin=filename, elliptic=[], boundaries=[], timestamp=[], max_valid=[]) - rcg.units.append(un_unit) + chx.units.append(un_unit) sortInfo = srcfile['sortInfo'][0, 0] timeslice = sortInfo['timeslice'][0, 0] @@ -147,15 +147,15 @@ def proc_src_units(srcfile, filename): boundaries=[iboundaries], elliptic=[ielliptic], timeStamp=[], max_valid=[maxValid]) - rcg.units.append(unit) - return rcg + chx.units.append(unit) + return chx def proc_src_condition(rep, filename, ADperiod, side, block): '''Get the condition in a src file that has been processed by the official matlab function. See proc_src for details''' - rcg = block.channel_indexes[0] + chx = block.channel_indexes[0] stim = rep['stim'].flatten() params = [str(res[0]) for res in stim['paramName'][0].flatten()] @@ -175,7 +175,7 @@ def proc_src_condition(rep, filename, ADperiod, side, block): trains = proc_src_condition_unit(spikeunit, sweepLen, side, ADperiod, respWin, damaIndexes, timeStamps, filename) - rcg.units[0].spiketrains.extend(trains) + chx.units[0].spiketrains.extend(trains) atrains = [trains] else: damaIndexes = [] @@ -201,10 +201,10 @@ def proc_src_condition(rep, filename, ADperiod, side, block): respWins = [] spikeunits = [] - for unit, IdString in zip(rcg.units[1:], IdStrings): + for unit, IdString in zip(chx.units[1:], IdStrings): unit.name = str(IdString) - fullunit = zip(spikeunits, rcg.units[1:], sweepLens, respWins) + fullunit = zip(spikeunits, chx.units[1:], sweepLens, respWins) for spikeunit, unit, sweepLen, respWin in fullunit: trains = proc_src_condition_unit(spikeunit, sweepLen, side, ADperiod, respWin, damaIndexes, timeStamps, From 10ca34fed6419e85ce91419e44a4858ec522218d Mon Sep 17 00:00:00 2001 From: Andrew Davison Date: Mon, 22 Feb 2016 00:23:52 +0100 Subject: [PATCH 5/8] Renamed `recordingchannelgroup` module to `channelindex` --- neo/core/__init__.py | 2 +- neo/core/{recordingchannelgroup.py => channelindex.py} | 0 .../{test_recordingchannelgroup.py => test_channelindex.py} | 2 +- 3 files changed, 2 insertions(+), 2 deletions(-) rename neo/core/{recordingchannelgroup.py => channelindex.py} (100%) rename neo/test/coretest/{test_recordingchannelgroup.py => test_channelindex.py} (99%) diff --git a/neo/core/__init__.py b/neo/core/__init__.py index 267d6ad2f..d9bb67717 100644 --- a/neo/core/__init__.py +++ b/neo/core/__init__.py @@ -30,7 +30,7 @@ from neo.core.block import Block from neo.core.segment import Segment -from neo.core.recordingchannelgroup import ChannelIndex +from neo.core.channelindex import ChannelIndex from neo.core.unit import Unit from neo.core.analogsignal import AnalogSignal diff --git a/neo/core/recordingchannelgroup.py b/neo/core/channelindex.py similarity index 100% rename from neo/core/recordingchannelgroup.py rename to neo/core/channelindex.py diff --git a/neo/test/coretest/test_recordingchannelgroup.py b/neo/test/coretest/test_channelindex.py similarity index 99% rename from neo/test/coretest/test_recordingchannelgroup.py rename to neo/test/coretest/test_channelindex.py index 70323dce3..6384b47dc 100644 --- a/neo/test/coretest/test_recordingchannelgroup.py +++ b/neo/test/coretest/test_channelindex.py @@ -20,7 +20,7 @@ else: HAVE_IPYTHON = True -from neo.core.recordingchannelgroup import ChannelIndex +from neo.core.channelindex import ChannelIndex from neo.core.container import filterdata from neo.core import Block, Segment, SpikeTrain from neo.test.tools import (assert_neo_object_is_compliant, From 075526d990663ace2a54ffe5f715a4b0e03d9239 Mon Sep 17 00:00:00 2001 From: Andrew Davison Date: Mon, 22 Feb 2016 12:57:04 +0100 Subject: [PATCH 6/8] Renamed the `channel_indexes` attribute of `ChannelIndex` to `index`, to avoid having `channel_index.channel_indexes` --- neo/core/analogsignal.py | 2 +- neo/core/block.py | 2 +- neo/core/channelindex.py | 14 +++++++------- neo/core/unit.py | 2 +- neo/io/blackrockio.py | 16 ++++++++-------- neo/io/blackrockio_deprecated.py | 4 ++-- neo/io/brainwaredamio.py | 2 +- neo/io/brainwaref32io.py | 2 +- neo/io/brainwaresrcio.py | 4 ++-- neo/io/kwikio.py | 2 +- neo/io/neuroscopeio.py | 4 ++-- neo/io/tools.py | 4 ++-- neo/test/coretest/test_analogsignalarray.py | 2 +- neo/test/coretest/test_channelindex.py | 8 ++++---- neo/test/coretest/test_segment.py | 4 ++-- neo/test/coretest/test_unit.py | 2 +- neo/test/generate_datasets.py | 2 +- neo/test/iotest/test_brainwaredamio.py | 6 +++--- neo/test/iotest/test_brainwaref32io.py | 4 ++-- neo/test/iotest/test_brainwaresrcio.py | 4 ++-- 20 files changed, 45 insertions(+), 45 deletions(-) diff --git a/neo/core/analogsignal.py b/neo/core/analogsignal.py index 27d539526..24c285694 100644 --- a/neo/core/analogsignal.py +++ b/neo/core/analogsignal.py @@ -259,7 +259,7 @@ def get_channel_index(self): """ """ if self.channel_index: - return self.channel_index.channel_indexes + return self.channel_index.index else: return None diff --git a/neo/core/block.py b/neo/core/block.py index 050fc93c7..23da68d2f 100644 --- a/neo/core/block.py +++ b/neo/core/block.py @@ -40,7 +40,7 @@ class Block(Container): ... >>> for ind in range(2): ... chx = ChannelIndex(name='Array probe %d' % ind, - ... channel_indexes=np.arange(64)) + ... index=np.arange(64)) ... blk.channel_indexes.append(chx) ... >>> # Populate the Block with AnalogSignal objects diff --git a/neo/core/channelindex.py b/neo/core/channelindex.py index 804423324..847c08548 100644 --- a/neo/core/channelindex.py +++ b/neo/core/channelindex.py @@ -43,7 +43,7 @@ class ChannelIndex(Container): ... >>> for ind in range(2): ... chx = ChannelIndex(name='Array probe %d' % ind, - ... channel_indexes=np.arange(64)) + ... index=np.arange(64)) ... blk.channel_indexes.append(chx) ... >>> # Populate the Block with AnalogSignal objects @@ -117,13 +117,13 @@ class ChannelIndex(Container): _container_child_objects = ('Unit',) _data_child_objects = ('AnalogSignal', 'IrregularlySampledSignal') _single_parent_objects = ('Block',) - _necessary_attrs = (('channel_indexes', np.ndarray, 1, np.dtype('i')),) + _necessary_attrs = (('index', np.ndarray, 1, np.dtype('i')),) _recommended_attrs = ((('channel_names', np.ndarray, 1, np.dtype('S')), ('channel_ids', np.ndarray, 1, np.dtype('i')), ('coordinates', pq.Quantity, 2)) + Container._recommended_attrs) - def __init__(self, channel_indexes, channel_names=None, channel_ids=None, + def __init__(self, index, channel_names=None, channel_ids=None, name=None, description=None, file_origin=None, coordinates=None, **annotations): ''' @@ -133,9 +133,9 @@ def __init__(self, channel_indexes, channel_names=None, channel_ids=None, # Sets universally recommended attributes, and places all others # in annotations super(ChannelIndex, self).__init__(name=name, - description=description, - file_origin=file_origin, - **annotations) + description=description, + file_origin=file_origin, + **annotations) # Defaults if channel_names is None: @@ -144,4 +144,4 @@ def __init__(self, channel_indexes, channel_names=None, channel_ids=None, # Store recommended attributes self.channel_names = channel_names self.channel_ids = channel_ids - self.channel_indexes = channel_indexes + self.index = index diff --git a/neo/core/unit.py b/neo/core/unit.py index e5ee9b1a1..67e7a37b2 100644 --- a/neo/core/unit.py +++ b/neo/core/unit.py @@ -76,6 +76,6 @@ def get_channel_indexes(self): """ """ if self.channel_index: - return self.channel_index.channel_indexes + return self.channel_index.index else: return None diff --git a/neo/io/blackrockio.py b/neo/io/blackrockio.py index 66d449a28..a5df6ecec 100644 --- a/neo/io/blackrockio.py +++ b/neo/io/blackrockio.py @@ -98,9 +98,9 @@ def read_block(self, lazy=False, cascade=True, load_waveforms = False): index = sig.get_channel_index()[i] break if index is not None: - chx = ChannelIndex(name = 'Group {0}'.format(channel_id), - channel_indexes=np.array([index]), - channel_ids=np.array([channel_id])) + chx = ChannelIndex(name='Group {0}'.format(channel_id), + index=np.array([index]), + channel_ids=np.array([channel_id])) unit = Unit(name=st.name) unit.spiketrains.append(st) chx.units.append(unit) @@ -420,11 +420,11 @@ def read_nsx(self, filename_nsx, seg, lazy, cascade): channel_indexes = np.arange(anasig.shape[1]) # this assumes there is only ever a single segment - chx = ChannelIndex(channel_indexes=channel_indexes, - channel_ids=np.array(ch['channel_id']), - channel_names=np.array(ch['label']), - name=name, - file_origin=filename_nsx) + chx = ChannelIndex(index=channel_indexes, + channel_ids=np.array(ch['channel_id']), + channel_names=np.array(ch['label']), + name=name, + file_origin=filename_nsx) chx.analogsignals.append(anasig) anasig.channel_index = chx seg.analogsignals.append(anasig) diff --git a/neo/io/blackrockio_deprecated.py b/neo/io/blackrockio_deprecated.py index f3f4ab624..c92eedca9 100644 --- a/neo/io/blackrockio_deprecated.py +++ b/neo/io/blackrockio_deprecated.py @@ -121,7 +121,7 @@ def read_block(self, lazy=False, cascade=True, #~ for ch in channel_list: #~ ch_object = RecordingChannel(name='channel%d' % ch, #~ file_origin=self.filename, index=ch) - #~ chx.channel_indexes.append(ch_object.index) + #~ chx.index.append(ch_object.index) #~ chx.channel_names.append(ch_object.name) #~ chx.recordingchannels.append(ch_object) #~ self.channel_number_to_recording_channel[ch] = ch_object @@ -277,7 +277,7 @@ def channel_indexes_in_segment(seg): channel_indices.append(sig.recordingchannel.index) for asa in seg.analogsignals: - channel_indices.append(asa.channel_index.channel_indexes) + channel_indices.append(asa.channel_index.index) return channel_indices diff --git a/neo/io/brainwaredamio.py b/neo/io/brainwaredamio.py index 756537217..5fea6f6b2 100644 --- a/neo/io/brainwaredamio.py +++ b/neo/io/brainwaredamio.py @@ -143,7 +143,7 @@ def read_block(self, lazy=False, cascade=True, **kargs): # create the objects to store other objects chx = ChannelIndex(file_origin=self._filename, channel_ids=np.array([1]), - channel_indexes=np.array([0]), + index=np.array([0]), channel_names=np.array(['Chan1'], dtype='S')) # load objects into their containers diff --git a/neo/io/brainwaref32io.py b/neo/io/brainwaref32io.py index 8e8843cad..54534c640 100644 --- a/neo/io/brainwaref32io.py +++ b/neo/io/brainwaref32io.py @@ -159,7 +159,7 @@ def read_block(self, lazy=False, cascade=True, **kargs): # create the objects to store other objects chx = ChannelIndex(file_origin=self._filename, - channel_indexes=np.array([], dtype=np.int)) + index=np.array([], dtype=np.int)) self.__unit = Unit(file_origin=self._filename) # load objects into their containers diff --git a/neo/io/brainwaresrcio.py b/neo/io/brainwaresrcio.py index 9d939a732..0f94ec370 100755 --- a/neo/io/brainwaresrcio.py +++ b/neo/io/brainwaresrcio.py @@ -290,7 +290,7 @@ def read_next_block(self, cascade=True, lazy=False, **kargs): if not cascade: return self._blk self._chx = ChannelIndex(file_origin=self._file_origin, - channel_indexes=np.array([], dtype=np.int)) + index=np.array([], dtype=np.int)) self._seg0 = Segment(name='Comments', file_origin=self._file_origin) self._unit0 = Unit(name='UnassignedSpikes', file_origin=self._file_origin, @@ -980,7 +980,7 @@ def __read_segment_list(self): self.__read_comment() # create a channel_index for the numchannels - self._chx.channel_indexes = np.arange(numchannels) + self._chx.index = np.arange(numchannels) self._chx.channel_names = np.array(['Chan{}'.format(i) for i in range(numchannels)], dtype='S') # store what side of the head we are dealing with diff --git a/neo/io/kwikio.py b/neo/io/kwikio.py index 9b237ad84..678f786ba 100644 --- a/neo/io/kwikio.py +++ b/neo/io/kwikio.py @@ -141,7 +141,7 @@ def read_block(self, channel_index = np.arange(0,self._attrs['shape'][1]) chx = ChannelIndex(name='all channels', - channel_indexes=channel_index) + index=channel_index) blk.channel_indexes.append(chx) ana = self.read_analogsignal(channel_index=channel_index, diff --git a/neo/io/neuroscopeio.py b/neo/io/neuroscopeio.py index a3823b8f6..5b04480ce 100644 --- a/neo/io/neuroscopeio.py +++ b/neo/io/neuroscopeio.py @@ -100,8 +100,8 @@ def read_block(self, # RCG for i, xml_chx in enumerate(root.find('anatomicalDescription').find('channelGroups').findall('group')): n_channels = len(xml_chx) - chx = ChannelIndex(name = 'Group {0}'.format(i), - channel_indexes=np.arange(n_channels, dtype = int)) + chx = ChannelIndex(name='Group {0}'.format(i), + index=np.arange(n_channels, dtype = int)) chx.channel_ids = np.array([int(xml_rc.text) for xml_rc in xml_chx]) chx.channel_names = np.array(['Channel{0}'.format(id) for id in chx.channel_ids], dtype = 'S') bl.channel_indexes.append(chx) diff --git a/neo/io/tools.py b/neo/io/tools.py index abfbeee5a..4aa6cf7a8 100644 --- a/neo/io/tools.py +++ b/neo/io/tools.py @@ -63,8 +63,8 @@ # names = np.array([recordingchannels[idx].name for idx in indexes], # dtype='S') # chx = ChannelIndex(name='all channels', -# channel_indexes=indexes, -# channel_names=names) +# index=indexes, +# channel_names=names) # bl.channel_indexes.append(chx) # for ind in indexes: # # many to many relationship diff --git a/neo/test/coretest/test_analogsignalarray.py b/neo/test/coretest/test_analogsignalarray.py index 4cba35a14..240dfdaec 100644 --- a/neo/test/coretest/test_analogsignalarray.py +++ b/neo/test/coretest/test_analogsignalarray.py @@ -197,7 +197,7 @@ def test__children(self): segment.analogsignals = [signal] segment.create_many_to_one_relationship() - chx = ChannelIndex(name='chx1', channel_indexes=np.arange(signal.shape[1])) + chx = ChannelIndex(name='chx1', index=np.arange(signal.shape[1])) chx.analogsignals = [signal] chx.create_many_to_one_relationship() diff --git a/neo/test/coretest/test_channelindex.py b/neo/test/coretest/test_channelindex.py index 6384b47dc..a8ecc0b7a 100644 --- a/neo/test/coretest/test_channelindex.py +++ b/neo/test/coretest/test_channelindex.py @@ -149,23 +149,23 @@ def setUp(self): self.trains2 = sum(self.trains2, []) def test__channelindex__init_defaults(self): - chx = ChannelIndex(channel_indexes=np.array([1])) + chx = ChannelIndex(index=np.array([1])) assert_neo_object_is_compliant(chx) self.assertEqual(chx.name, None) self.assertEqual(chx.file_origin, None) self.assertEqual(chx.analogsignals, []) assert_arrays_equal(chx.channel_names, np.array([], dtype='S')) - assert_arrays_equal(chx.channel_indexes, np.array([1])) + assert_arrays_equal(chx.index, np.array([1])) def test_channelindex__init(self): chx = ChannelIndex(file_origin='temp.dat', - channel_indexes=np.array([1])) + index=np.array([1])) assert_neo_object_is_compliant(chx) self.assertEqual(chx.file_origin, 'temp.dat') self.assertEqual(chx.name, None) self.assertEqual(chx.analogsignals, []) assert_arrays_equal(chx.channel_names, np.array([], dtype='S')) - assert_arrays_equal(chx.channel_indexes, np.array([1])) + assert_arrays_equal(chx.index, np.array([1])) def check_creation(self, chx): assert_neo_object_is_compliant(chx) diff --git a/neo/test/coretest/test_segment.py b/neo/test/coretest/test_segment.py index 128e7a1fd..7b8e6b226 100644 --- a/neo/test/coretest/test_segment.py +++ b/neo/test/coretest/test_segment.py @@ -686,9 +686,9 @@ def test__construct_subsegment_by_unit(self): # channelindexes chxs = [ChannelIndex(name='Vm', - channel_indexes=unit_with_sig), + index=unit_with_sig), ChannelIndex(name='Conductance', - channel_indexes=unit_with_sig)] + index=unit_with_sig)] # Unit all_unit = [] diff --git a/neo/test/coretest/test_unit.py b/neo/test/coretest/test_unit.py index 05b0fa30d..0604319e2 100644 --- a/neo/test/coretest/test_unit.py +++ b/neo/test/coretest/test_unit.py @@ -143,7 +143,7 @@ def test__merge(self): unit1a.spiketrains) def test__children(self): - chx = ChannelIndex(channel_indexes=np.arange(self.nchildren), name='chx1') + chx = ChannelIndex(index=np.arange(self.nchildren), name='chx1') chx.units = [self.unit1] chx.create_many_to_one_relationship() assert_neo_object_is_compliant(self.unit1) diff --git a/neo/test/generate_datasets.py b/neo/test/generate_datasets.py index a0e7c1055..598914482 100644 --- a/neo/test/generate_datasets.py +++ b/neo/test/generate_datasets.py @@ -356,7 +356,7 @@ def fake_neo(obj_type="Block", cascade=True, seed=None, n=1): # inds = [] # names = [] # chinds = np.array([unit.channel_indexes[0] for unit in obj.units]) - # obj.channel_indexes = np.array(inds, dtype='i') + # obj.indexes = np.array(inds, dtype='i') # obj.channel_names = np.array(names).astype('S') if hasattr(obj, 'create_many_to_one_relationship'): diff --git a/neo/test/iotest/test_brainwaredamio.py b/neo/test/iotest/test_brainwaredamio.py index 0894824c9..22bbe4510 100644 --- a/neo/test/iotest/test_brainwaredamio.py +++ b/neo/test/iotest/test_brainwaredamio.py @@ -59,9 +59,9 @@ def proc_dam(filename): block = Block(file_origin=filename) chx = ChannelIndex(file_origin=filename, - channel_indexes = np.array([0]), - channel_ids = np.array([1]), - channel_names = np.array(['Chan1'], dtype='S')) + index=np.array([0]), + channel_ids=np.array([1]), + channel_names=np.array(['Chan1'], dtype='S')) block.channel_indexes.append(chx) diff --git a/neo/test/iotest/test_brainwaref32io.py b/neo/test/iotest/test_brainwaref32io.py index 2140b406d..c592b2db2 100644 --- a/neo/test/iotest/test_brainwaref32io.py +++ b/neo/test/iotest/test_brainwaref32io.py @@ -52,8 +52,8 @@ def proc_f32(filename): # create the objects to store other objects block = Block(file_origin=filenameorig) chx = ChannelIndex(file_origin=filenameorig, - channel_indexes=np.array([], dtype=np.int), - channel_names=np.array([], dtype='S')) + index=np.array([], dtype=np.int), + channel_names=np.array([], dtype='S')) unit = Unit(file_origin=filenameorig) # load objects into their containers diff --git a/neo/test/iotest/test_brainwaresrcio.py b/neo/test/iotest/test_brainwaresrcio.py index 54c911c5e..e9fa07072 100644 --- a/neo/test/iotest/test_brainwaresrcio.py +++ b/neo/test/iotest/test_brainwaresrcio.py @@ -87,7 +87,7 @@ def proc_src(filename): chx = proc_src_units(srcfile, filename) chan_nums = np.arange(NChannels, dtype='int') chan_names = ['Chan{}'.format(i) for i in range(NChannels)] - chx.channel_indexes = chan_nums + chx.index = chan_nums chx.channel_names = np.array(chan_names, dtype='string_') block.channel_indexes.append(chx) @@ -127,7 +127,7 @@ def proc_src_units(srcfile, filename): '''Get the units in an src file that has been processed by the official matlab function. See proc_src for details''' chx = ChannelIndex(file_origin=filename, - channel_indexes=np.array([], dtype=int)) + index=np.array([], dtype=int)) un_unit = Unit(name='UnassignedSpikes', file_origin=filename, elliptic=[], boundaries=[], timestamp=[], max_valid=[]) From 3dcc9da96f7c6a1e2d4b1a0f1911ce8a6dc464bb Mon Sep 17 00:00:00 2001 From: Andrew Davison Date: Mon, 22 Feb 2016 16:08:22 +0100 Subject: [PATCH 7/8] Some documentation updates --- MANIFEST.in | 1 + README.rst | 27 +- doc/source/core.rst | 86 ++-- doc/source/developers_guide.rst | 2 +- doc/source/images/base_schematic.png | Bin 102088 -> 60651 bytes doc/source/images/multi_segment_diagram.png | Bin 88515 -> 147943 bytes doc/source/images/multi_segment_diagram.svg | 465 ++++-------------- .../multi_segment_diagram_spiketrain.png | Bin 34070 -> 69457 bytes .../multi_segment_diagram_spiketrain.svg | 77 ++- doc/source/index.rst | 39 +- doc/source/install.rst | 12 +- doc/source/io.rst | 6 +- doc/source/releases/0.4.0.rst | 25 + doc/source/usecases.rst | 5 + doc/source/whatisnew.rst | 20 +- neo/core/irregularlysampledsignal.py | 10 +- 16 files changed, 271 insertions(+), 504 deletions(-) create mode 100644 doc/source/releases/0.4.0.rst diff --git a/MANIFEST.in b/MANIFEST.in index 54c150232..47ca05810 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,4 +1,5 @@ include README.rst +include CITATION.rst prune drafts include examples/*.py recursive-include doc * diff --git a/README.rst b/README.rst index a44eb579b..02c4f21b2 100644 --- a/README.rst +++ b/README.rst @@ -2,25 +2,30 @@ Neo === -Neo is a package for representing electrophysiology data in Python, together +Neo is a Python package for working with electrophysiology data in Python, together with support for reading a wide range of neurophysiology file formats, including Spike2, NeuroExplorer, AlphaOmega, Axon, Blackrock, Plexon, Tdt, and support for writing to a subset of these formats plus non-proprietary formats including HDF5. The goal of Neo is to improve interoperability between Python tools for -analyzing, visualizing and generating electrophysiology data (such as -OpenElectrophy, NeuroTools, G-node, Helmholtz, PyNN) by providing a common, +analyzing, visualizing and generating electrophysiology data by providing a common, shared object model. In order to be as lightweight a dependency as possible, Neo is deliberately limited to represention of data, with no functions for data analysis or visualization. +Neo is used by a number of other software tools, including OpenElectrophy_ +and SpykeViewer_ (data analysis and visualization), Elephant_ (data analysis), +the G-node_ suite (databasing) and PyNN_ (simulations). + Neo implements a hierarchical data model well adapted to intracellular and extracellular electrophysiology and EEG data with support for multi-electrodes (for example tetrodes). Neo's data objects build on the quantities_ package, which in turn builds on NumPy by adding support for physical dimensions. Thus -neo objects behave just like normal NumPy arrays, but with additional metadata, +Neo objects behave just like normal NumPy arrays, but with additional metadata, checks for dimensional consistency and automatic unit conversion. +A project with similar aims but for neuroimaging file formats is `NiBabel`_. + Code status ----------- @@ -44,5 +49,17 @@ More information For installation instructions, see doc/source/install.rst -:copyright: Copyright 2010-2014 by the Neo team, see AUTHORS. +:copyright: Copyright 2010-2014 by the Neo team, see doc/source/authors.rst :license: 3-Clause Revised BSD License, see LICENSE.txt for details. + + +.. _OpenElectrophy: https://github.com/OpenElectrophy/OpenElectrophy +.. _Elephant: http://neuralensemble.org/elephant +.. _G-node: http://www.g-node.org/ +.. _Neuroshare: http://neuroshare.org/ +.. _SpykeViewer: https://spyke-viewer.readthedocs.org/en/latest/ +.. _NiBabel: http://nipy.sourceforge.net/nibabel/ +.. _PyNN: http://neuralensemble.org/PyNN +.. _quantities: http://pypi.python.org/pypi/quantities +.. _`NeuralEnsemble mailing list`: http://groups.google.com/group/neuralensemble +.. _`issue tracker`: https://github.c diff --git a/doc/source/core.rst b/doc/source/core.rst index 43b144d4f..6e5f3ffac 100644 --- a/doc/source/core.rst +++ b/doc/source/core.rst @@ -2,13 +2,16 @@ Neo core ******** -.. currentmodule:: neo +.. currentmodule:: neo.core -Introduction -============ +This figure shows the main data types in Neo: -Objects in Neo represent neural data and collections of data. Neo objects fall -into three categories: data objects, container objects and grouping objects. +.. image:: images/base_schematic.png + :height: 500 px + :alt: Illustration of the main Neo data types + :align: center + +Neo objects fall into three categories: data objects, container objects and grouping objects. Data objects ------------ @@ -16,28 +19,27 @@ Data objects These objects directly represent data as arrays of numerical values with associated metadata (units, sampling frequency, etc.). -:py:class:`AnalogSignalArray`: - A regular sampling of a single- or multi-channel continuous analog signal. + * :py:class:`AnalogSignal`: A regular sampling of a single- or multi-channel continuous analog signal. + * :py:class:`IrregularlySampledSignal`: A non-regular sampling of a single- or multi-channel continuous analog signal. + * :py:class:`SpikeTrain`: A set of action potentials (spikes) emitted by the same unit in a period of time (with optional waveforms). + * :py:class:`Event`: An array of time points representing one or more events in the data. + * :py:class:`Epoch`: An array of time intervals representing one or more periods of time in the data. -:py:class:`SpikeTrain`: - A set of action potentials (spikes) emitted by the same unit in a period of time (with optional waveforms). - -:py:class:`Event`: - An array of time points representing one or more events in the data. - -:py:class:`Epoch`: - An array of time intervals representing one or more periods of time in the data. Container objects ----------------- There is a simple hierarchy of containers: -:py:class:`Segment`: - A container for heterogeneous discrete or continous data sharing a common clock (time basis) but not necessarily the same sampling rate, start time or end time. A :py:class:`Segment` can be considered as equivalent to a "trial", "episode", "run", "recording", etc., depending on the experimental context. May contain any of the data objects. + * :py:class:`Segment`: A container for heterogeneous discrete or continous data sharing a common + clock (time basis) but not necessarily the same sampling rate, start time or end time. + A :py:class:`Segment` can be considered as equivalent to a "trial", "episode", "run", + "recording", etc., depending on the experimental context. + May contain any of the data objects. + * :py:class:`Block`: The top-level container gathering all of the data, discrete and continuous, + for a given recording session. + Contains :class:`Segment`, :class:`Unit` and :class:`ChannelIndex` objects. -:py:class:`Block`: - The top-level container gathering all of the data, discrete and continuous, for a given recording session. Contains :class:`Segment`, :class:`Unit` and :class:`ChannelIndex` objects. Grouping objects ---------------- @@ -47,25 +49,29 @@ were recorded on which electrodes, which spike trains were obtained from which membrane potential signals, etc. They contain references to data objects that cut across the simple container hierarchy. + * :py:class:`ChannelIndex`: A set of indices into :py:class:`AnalogSignal` objects, + representing logical and/or physical recording channels. This has two uses: -:py:class:`ChannelIndex`: - A set of indices into :py:class:`AnalogSignal` objects, representing logical and/or - physical recording channels. This has several uses: - * for linking :py:class:`AnalogSignal` objects recorded from the same (multi)electrode - across several :py:class:`Segment` objects. - * for spike sorting of extracellular signals, where spikes may be recorded on more than one - recording channel, and the :py:class:`ChannelIndex` can be used to associate each - :py:class:`Unit` with the group of recording channels from which it was calculated. + 1. for linking :py:class:`AnalogSignal` objects recorded from the same (multi)electrode + across several :py:class:`Segment`\s. + 2. for spike sorting of extracellular signals, where spikes may be recorded on more than one + recording channel, and the :py:class:`ChannelIndex` can be used to associate each + :py:class:`Unit` with the group of recording channels from which it was obtained. -:py:class:`Unit`: - A Unit gathers all the :class:`SpikeTrain` objects within a common :class:`Block`, possibly - across several Segments, that have been emitted by the same cell. - A :class:`Unit` is linked to the :class:`ChannelIndex` object from which it was detected. + * :py:class:`Unit`: A Unit links the :class:`SpikeTrain` objects within a :class:`Block`, + possibly across multiple Segments, that were emitted by the same cell. + A :class:`Unit` is linked to the :class:`ChannelIndex` object from which the spikes were detected. -.. image:: images/base_schematic.png - :height: 500 px - :alt: Neo : Neurotools/OpenElectrophy shared base architecture - :align: center + +NumPy compatibility +=================== + +Neo data objects inherit from :py:class:`Quantity`, which in turn inherits from NumPy +:py:class:`ndarray`. This means that a Neo :py:class:`AnalogSignal` is also a :py:class:`Quantity` +and an array, giving you access to all of the methods available for those objects. + +For example, you can pass a :py:class:`SpikeTrain` directly to the :py:func:`numpy.histogram` +function, or an :py:class:`AnalogSignal` directly to the :py:func:`numpy.std` function. Relationships between objects @@ -91,13 +97,13 @@ In general, an object can access its children with an attribute *childname+s* in * :attr:`Block.segments` * :attr:`Segments.analogsignals` * :attr:`Segments.spiketrains` - * :attr:`Block.channelindexes` + * :attr:`Block.channel_indexes` These relationships are bi-directional, i.e. a child object can access its parent: * :attr:`Segment.block` * :attr:`AnalogSignal.segment` - * :attr:`SpikeTrains.segment` + * :attr:`SpikeTrain.segment` * :attr:`ChannelIndex.block` Here is an example showing these relationships in use:: @@ -180,13 +186,7 @@ For more details, see the :doc:`api_reference`. -Inheritance -=========== - -Some Neo objects (:py:class:`AnalogSignal`, :py:class:`SpikeTrain`) inherit from :py:class:`Quantity`, -which in turn inherits from NumPy :py:class:`ndarray`. This means that a Neo :py:class:`AnalogSignal` actually is also a :py:class:`Quantity` and an array, giving you access to all of the methods available for those objects. -For example, you can pass a :py:class:`SpikeTrain` directly to the :py:func:`numpy.histogram` function, or an :py:class:`AnalogSignal` directly to the :py:func:`numpy.std` function. Initialization diff --git a/doc/source/developers_guide.rst b/doc/source/developers_guide.rst index fb0af757a..a044549e9 100644 --- a/doc/source/developers_guide.rst +++ b/doc/source/developers_guide.rst @@ -228,7 +228,7 @@ However, the pep8 and flake8 programs does not check for all PEP 8 issues. In particular, they does not check that the import statements are in the correct order. -Also, please do not use "from __ import *". This is slow, can lead to +Also, please do not use ``from __ import *``. This is slow, can lead to conflicts, and makes it difficult for code analysis software. diff --git a/doc/source/images/base_schematic.png b/doc/source/images/base_schematic.png index ff2a8ac000f10e898b62efe00a8219793179657a..d763e80001970aaf1efeb0a6be2d106037d3aef3 100644 GIT binary patch literal 60651 zcmd4&hdW%~7dDKK-n&FEQKFY*qSuHnf*^Ve2GK?xy(DV%L>o1N5IxcRC?SbK5PdKt zLX;ueV3haxe4pR%egA~#T-Ui~Z0GE{*1GR??>&izPqe7WS;;{l5S5O$`cn`He+{@_ zkrD$Xc6#0j;DgXlO~-^3xWY)C5`e$SpxPFGAP|ki&5c*7QsD*^viNJ5`x|>h{9z8h z&L9{JChq3t?&s(Lbr$#bb;-vlvVuU|ARYCGCP4)|ORxfy>C5YXvn~*r#nvPdRf6V2 zriYA)V#2~hw(skd62)FT&+BDoc)Kb20sj2?cbPA@OYdgm{hUkDNoE!?GNSbm=aBK-d1D`JxinZoaBC3^Ir-RzHKw5%i{^K{H^ zDnSGUvf_(%UuZYDsf_2--%8c49|qCu6SHLRNDPU0Xp#viPh;VpQ0&T=A1XJ~m=VaN z#eGErE4G^@fdsNbLytb=|DV~jDtjVjF}1V@T28ZlA_;a+3LN#Y0<)pMOVdN7D{IgB zZkn)aeR3;7Yer+-9o7AX;r{3jEjSd3%*LmPra^jSz?EDfzw+mXS|BG{;80F;B2m0& z`SXv#I5<4T!(k=jnW4@4T6WW&o0@E_D#!;%JxCiIj}ESGw-`A=RPe6w*vTnHPlHII zeEUuC@amEYPp|@8E|oRuj>cDKfe=oLFp8j2B=rl(bp*?9r_4UGG zrlRc_bj9)g-CqnNcZL!C6C+kpeki5cBV&e}2@}&`e=8N~4skE7r`jZ<IA2yiCvx^wz z08t@|cw8B~oY`YTX3g1sK>@9M3B75g){H&+^ixV$1T(Y{emS^g=LuQN!S61u?=?1) z+{28N62*O>durPAn3-c7C!JnAceZQ!Fvvk6DatQzQV85hsjVg9O+02yd*c|N1Cn@Y zi`C5a!4i1>B#(nk8l50bxq-!~^N(=-E#DjVs9o$u;U3Sffv`9E)l$thkVR}lW!s%}YJ9Z~k zwaXS$M08~j36H8Ki#~`&7_ctRB11rnni5RXt5Aw)rKm#kg-tRKrtX@<=Orx4Bn3KO zLsvi-Wh~K`tB8j&5ArWcX?_eKt15X_z5nu_7bV>|2g$ZcbWn68Q<%;2V7PF!=xRaU z({Fse`VO4IpHs)JwnWuHw)D-%3Gm%LOcLAT#FD`5aSxoI6h+jqJD{BA(rox7(Jy=|*M-?t<(y5p&~f0lT6=grEW(U;g~c&0IX zBh>nGUIa6=x&o<05gLNUre3F;i}a8z@n2;|K7IJ_%>@(Y$_5>`xgLSYbbZh<;)AW}?A^hbfr^PEJRqG+UXBp`j-(sE{w%fq z0El^6x%2-J12N@)@i+;u=93{;Uq8@cxbo*Y1K2mFJS>k~i1%A9^Q|A5H<6%2A%T`k zmr9@@;@lsDJvM_MxUaR*5=LXNoLkeu#mEoeC3E3;W`olLH^x)Plln80WVGfpIzXa- z(~m_;K(9yB+@bNCRO?cBDLnjbgZX$MB64(R9B~-qw?uNPc66+XW@{FKx8aDvowTP+ zKM2~EkYgzeLB;8lzJyX!E_su!HSoeGZ9j5J3!Z3`o$2~5B))|QkVwx|HTf#+Q-DQ$ zuqlX~sDGdQ4T1S9qe$eX^{yfR&ZE}ezis&xytuR{)u@B0jj_KN3Gg@}hIVvb*B41& zIYMx>lR886&v1%0srnlrioA(ds)@?$Uon%3O!@O#n4%Xi*zPToqO9AtK6V08BZ*Y* zmR9?F`0^CGeE#51Wi)oh9}}A%NL<999LGg@#8*}y#%M)y z6Gu8oiPk1PFjp|OtrWUvR7!dJ44&2h1D;7i;9pPeNDkUBmME5Cj0rcc{6IIlttp}N zI$!dvIWYJeA^G4|b=^1g0i~YfXNu?&L$(J#4n*Zm~ zgV;%7NQ=lFjq(Q}BHI`rQAU2Cr<3Kb>eiNDmNr0G{HzJ9YR8=$T-DAgQMF#^hmnfp zyu|mpv9r5Ct+jtJd!SZYU8XwkAa|gU4iD&QU>zUfnrVus;LW&8eimp~x8q14(nOm~ zFgu_->K*tg33^r?w5KkpLR#RRzvL!8h6|bSV_%s593xQR7V}>VbQ#QoQa1xo=Of;g zwwOZd8ov7v$!x5~mSkGA26io^*2(Pm0zLk#wyax;VrPnzsugzD-x{^JaK?PoKF{uI z&51`>H^D!drEp&bu17cZm5svZl~q?xUf9W@{(I>EUVbF_x|86hi=KUxGhDgP_K3-P zHq1^V73#F2F9(S~Wjy*jMi2q7-`f18w*jm@Ft`>*e#Aor1EN4)*>366Qlg0wHEK*g zkm%3QB+1{*|BUBr_LtLqyT6ey8vjhr5NvJ>MfPUw>I!`*j+|v`p8n)K^5K6qv1Yeq zAR3vO&axt0YR8K}e?q^jkl3p<89AL%>}Xkov;6Fq?kHU8BSjat5e>Vvqf806y~C_A{pdEpoIETFxop3Qjo=1INw46b^ z?_hb}e^xpFIi~6Dx!+)@ACpLXw&(`lO7nINvn<6g%ihVukG#L4rD}eUXSd|l4kTEL z)zuz{-1*TfRl#jV@*frdZ2C_xtgw9d8QMc{F$?iY)vkbzLYj?IbSS7}24g@#^<-i2 zt0phH_PJZ=?MlLDnrSjo3X1EERx2I;#Qz(XyFbUiDOwP1jkYy7TYEXaf=_&wb+!GB zONc3Uo$Sph>X7`ML7yZ0epC4_2U^(REb|#w|M~y14f&!2i|m$)=#gkLX04fp-<)WP z>=t9ib=dk!Q?Vt>Hp`ySwHcV2sj5^~0Z*TE^dwWo5~rlMm=i^gzN=?7X)Gnut3CVv zf94_jWMMK;hod;GT@%D{*K?V&>r0m6v(m)OmFI3aN@zv-ZWvn1UclbYp8Us=YFB|w zP?nibU29VzB_&81Xs7}15?2w%0Zl6R1no1B3j;Nm{vQ*rj`r^^zH4FrE5IA`{1z{? zC?Kq{#>?Q$A~5TcWy7$aa8!mYdQS;-WUsWXL(uqQ$5rvw;lNg)u%df!gTbflU(mZ6 zi?c=OdF#d~4pC1frFD19`Ru{Lu*2)Ug%1vmE>Y{42=z{ORls4KL~e;aK4O&|G`@O> zx}1LspC3@QgRN93Ef_RumEJhtWZi9z@x{Rf3b$MTts;+2az&Ww(fY}!Ky^!v{|s7t zw%HrSk)Cb*U!pZBCHF%C^F(_@h?eOl!ga(AF5$V!{hycLmVC>z`JXjqh!0K9NSr@) z@Ar53Uj*+c8X%QhQ(D6$G!^_W(AI5;#Hfaqm3u-_g&EmE)V=9ZtocF@B_;3ggmI#X zTi$79<^Mwkf4uA#9=%0uG#6eDt>)l09=o%fg3QdAPLg2XO_VHSXl%+Na3Lrrn872# zCy2^YwL?Efr)9SsMvFwliw?^F9X-o?^uG~-Ef!u!6~!E-&*;+QZ(Wqy9Vs%)axzn( zC<+KJ28@fEn=Ywyi72s|Dz0v98qEB?9L%n6Ry3k_2{G>PhqqqVTOI9Znl<;G=?t)>w?pdacB@bX$_Sr%D#W>%#*5P@4hx1u*k1H1WcrH$SQ`nCb%o~~!b z%OnwaVPnQUR<+7l!j_ct`Ful*a+f35o$d4Gk>YJ~d*yv`NshL8Lk7Fh!?DeME%DfPx&3x{6xJ zhGs**&&rf~uMj*TctU7PJQVVM#r0Lh1AinY=3UrL3MPx6OX?IQ5&GS%*@bKEovO7w z6?pM>Tfx5GM=Or}F5Od&fa*}(mD(KZ4Y8|3IAWA}F;_sO6BG69B)Gnte0nuxd^Mii zX)-z~P1nXXw_>b3HF@HWwnzILob525H-h&`)W*(@iVie5mf}x-E=RWkK}QGaA%JG- zr&%CI)Af6Pj7GSk->L>5Z5mX13)lJqTw^t`959m%YJ0bBgHtxFvB8U9P*C|ogtS_`r#6A5_2>@g_a1OpiU>vuiWu?o?rjP8M6&w)Xdk+?azKcYQhl?Bg6eyzL0-%(p0HDxTQ*HCj^x_ry3u zURnMq_AI^nnYG3Xs2UAT0ldlb!_t*bZeSoriFta{9sH>0LAhOtNq&$dmG~_b$vMYh zPNC@Jwmo4Ko|@WAf6CIqyDUmRST3ZgHO@xrMt|&!Z9ZNH=g&t#P83VRCMggK2y!s4 z1fKP?(Etu#($1B;x_^fz9QgViA_1R&4qj}YQEpY=EB1hpXboEvcM*!pG^*rV++R2` z2ZsushiM+2{fxu+1>?Hl-4Amot`r*vk;^iTjoW{(pM$NOAR3UskMM52+|5J!h6QAV zEpz$?_D*IE{^`S?npgLldwLQRw5xZBJ&rO}n1=hrJjwbwHm^y-2m}u^_b@`e2;+#i z6neGdH_|5Sybwwf_fI{DxCsJ5LlKWcjy z9Ifx%AfD1Ak)yS^PWmu{rXQ|wO(#3GI zsVU?BBF3ZpFv{}h7s$=SsZo!7%iTi#n>Tm1FdOO{KCF_d4gK@{&03ojlnEyie%ODQ z9x(@^2T}Fw#$KrKtj;}rMdt7mN7za^`d_T(m=(ag0r!KrRl7f3EsE(4j$NF&TKrkm zLm5_H{xB%og)Gue!Q=st3Q5Xq892U=TV|&jy=FWU?NzZH%c;N}jo-V1S--3xEjCK} z7jGI~%xPe*ENfd-?jld(UedXO7t^4jo?;HZnGkb6*iyJfUj&Sysv8tG zzXbG=hC=z8?T&zi4(ad1%fHmt`pl!sBTMeqgl#zM{;!YdN+xw|G~02zfXaaGc7HD& zN~`&+lMk$yJI@Vf<5)kyzR<7=ZE;>vSATJs=?&@uaHDHROA6mdZxI$nAphPVyM-<$ z>%sLD@n|h!hX%#9e-jhwD`P2jH<_nNJwlUwm@Acj`pz7JYu++HRr8-4>ivW%XONTp z{xEN_9*_nT*~Rh zO=EhPevr(iLD_aS)!r5IA*HWP`@9wzZeRb^|5{;dGW;uYqGf>MWJF>X_e`Nc*HI*L zT}1+^#KoetXRx%xKk*RmB(*yjlco=2cO{VT^Hgo_$06oE-$eJto1w07j}GWK3PzsH-D#oN&-akwyRKk!fR-K4{FX=APanJhmR7Mp2>; zUM8!78+fC2iZfBz=wVUMV!^8J0795{HuOlknIQ+7KkCpy>eE~VC(9da25pFmV z4mzqimcM3xO#1FH%`++`=4T=7{qQv@gUJTSyFJv@_#BNndwqXg%e#DZ#~vLYqj=7R zH`_kTeufvAR%F1NxkFFq##D6BD(XoQ`bxGA6j zU^O_KEp2rtTm#Y&GQ6F#yAS00Cr?7r&kal^;5~0%(gBvxj$kP|U|amn2QoMl)>|Y& zQ0gsKD6MhMD_^QCAKrN;#JzxPs{BMI`O~*m062^iDRi4iae=i+epGLHRf9(0wJQl z*dcKf%fTfe;&?-}=N(J!l~xg*^m#1bI5==OV7ks*xr z6+M&o6M7g zKSi$Dw!JPCIX~HwX-HS|b@C**e00(+Ph3sa!V9ue+3Xn! z?#xc*5Q{976rNx>4G(97&)b7>{%jn6504b9`f7PFJ(Ei-0oXJJcUmvVFQmsCxF^Gs zMH_Xl7sTkg2#+ZXQfR^yLH%9f7xT%M3y*thI9m0ksveE+q`kB73B&+VxZlkVy zUj2JxZ%HFzjWNe^Ui_4sH6J)$lmS^Yei83rrV?5Eu>weoeysHM$+yN89zoii5Av)* zO5|UAnM}t|%it+ejpX1^_O|r>q+dIhxQKj17H1jsEwI7}QZsK}8WPwB56_|9i~#pO zV*Glo7;+{84wb92y9)a`W9Ie?wH2rSmvw_qlX*FN zHXF`VKrVUnEECvJ7+9e$Wg%@qB*rQ?Y1D%V%I@G(QGwiH@0aiv^uu)&gs!*g* zME;31U_UiG3J&E670Ztp&%uw!!_ngVB`xE$zEEB~3SQ&LxHWRq$ydV`_>a>i zb6mwrR`@+E)2Y?^;{NXXqr?q93QaPO(;jpW)8QYKZqIw&-Uk%+kNf&CJ2yx?-9Ziw zpLOAE`4CN2r=2rogfs~+C6SX>^FyyXvk!sjQ8qm;ez zlCPnp`?D{xTmmTa9bc3ZMc4?^7T=5bhPveoVJM-) z0~v3zJ9{17`n;kM#@|0g$?aJf1p8g}T;}Ufx9XBbrXBbt&;01w@RKRgeP#n`?Zelw z5(Ux;LD;oGLp*#}jk%BgVP$YPRf)$6Tg(J30p`vJX_=3fH!d|P?d*hy$4S18jI^h{Lv!6XYPtCwby*KNVRhiEl5rR$ zlBTg8M+7bN#(ZvQuI2x2E(5O!>n`8*L4#vJUC{TDusoTL zWznJote9ux`~&;!R=S{f-Km}YlHOs|sw4lOG|j0R0tuykxgLyJHpg`MKZQtVLLKhC zsYIEIapAw}?v5}@OaNuKY|KB3xL`Q;Tp1d^%56AND-o6aZoFL6{6N%mgJAZl zpFfv8I!x4ag@;n{mhI0Pf+zc#ut5#|PRYjj=pIauL1FRd!T(~EV zHCOkA=P>s1g04x53zwSbNyjt!UHvvTZl1{^jMLQKJ5i4OD>JjybKEFZKQB$g**neb zRF$b*LL1D6?J+;v0zgE z`WF)WZ@J4VfaI{^LO7o`f+oPJy&G34M{A@bsI}+;ew=Y3L5_xHtI>7mX0%if2TzkH7N2kXsrmL_P6 z1b?@4oKnYm#U!S2taJT*yixf+fcJpqeQY#Oxj*U*rAd16@N88dh|Th1u*e@vFyil| zA^{luBPf;wby-2)->QhY5-fR%z?T+t{mGHbY*wu9RDDk>q-ZL`R9SJI3*V1o<$b_k z_Q(pzy;O^$t#pk|(1(VPzIv&t-S7Us0eW1)BxZ8h(%Cy>!Bmye@(bflo856uc**Toe1VfCW)NL%H%t+aL3%cd3Avk=8(&D{zMQ!xm+Zy(-uNgb5p zs1+B9ccrwh)Ykq|D|_XX0SGBC1?$ajz~6{z!vVXlT_y_R1a|eCJob3|pDOy_2h<*o zZ=R(*`_SGrc!(fhYk&9G7m!G_feG-t{?&%N!(%0FaQ0@X^@YqVsP{!uoZ`AW8Gl4Y zvqtEsVhh3S#HZ%DPSM&LAwX;Sk~{wmA+d&uZz|#493D0~VD~isY!7&7q5>$U>aI`We0Do*Lok zhMR<&ubNFz!1ijclX-6RHK%Q7NOs!PU4x=73&T*|yN;k+9H{ysK6)}g*nN01#)AO9 z8SJZ}!RT)g2W*(#qttrX?l1n|o7Hb=5CR589&o|AKkr_7Y;M;tzJILpigI05t|92( zb1QatZy7Ud>jEh3wuEg>?=J)%BK^*zg2!=Yc!DmQKb)0)e`_05Ol9We;C`D4C;^M=!v2;s*_4N@;tt$~YRCW5V zcdvZmkB5M+?+^!Vj4HmVO}JUY`4`NPw^MIxySh+um^M+PgYS927mD1IUWZWYK6{pZ zYh75!>v5fq*Ia|RkxABr%_n<1nx&yArFu8SyQ?KX)2t)$ZzqYJ5{3QpU+cCp4XL;0 z*KOa3eyg>Z0_T^T1$wUBntzyOa*Qsla#rv{W*Zmf7d&zNnEBEtvG9NG%Rc#_=r|IH zy7vjP-1VMn(L)rIy=(TyN~=}ZZdT05#Jb??Z6+%^9p55t^Kw&uzh|g#{mp%k;*TtP z13CV*_W{R6z?F~H-sp}8PbR&7?Mpphg*vY)I~yuv@<#T@(PW>X+OCdMvXah?Ol@t8 z0`>(pKEA!&{yw9Aqi=fLqV({U_k0vjtzQF|sdwegW(|!9%kKl9?1@7WhYvt2jA$wpQi;SBwD|8hwyjQ+7^nwq!+2$GHUNT z=X=fIY|(mO&(ix9r`&iJ>$mp>!IMi2iBDQ~hTeI`QQEe95Vh?x!tCTdn4qL)Kgx}HdrYB#>ZjvddpQ@?^7e{q{P1`vW)ju2b1D^7#5M_@%Uz-_8_QEi- z@zuN)E10S_*n3FO%97lddb7+>sLV*T*~91IW8o=sBUB9zfAgr5eaO>ZStI(%Ygti5LLyC=<@Mly+WCXcz{Y5eeb-yoG}g?pNXya! zU)$Z5iSxjbyV6c#I+IC$^Bx~FHXSr2-qD!bB`XszMbmS;Ew|(Ud$aatvZy=6;fD&Q z$Df$<_9zmM?VeS924R)rhP&db66H38Ok~W|^!94@X3vYP-G*UK$Z#KZbie^);L=OX>P$k*Iv_!>*>dqq(g%+bZ-*5|%#Z9cqh zkB>ra`2v1(3%{eu^OB1h3{{4s;d@Uz4)~G=(8K0#=5?ulI|E$wy(k2balNI zom$&E7jvCZ9Gfw^tmpe5rZ%N7^V%gJrNcfn)9Sf{@ zK}|ZNfzKJ$7!zVye;1uaw3J}~2jIfgxn5oKHis+*Qf-ps)S*laEf^r}l7L7G2f23Zv3!q%a z+>-Ojm*n|o{Uv3`z(+$n#k=zrC-+A^1ov6e+RwFzc0ySig{F|o6EUOlbVO@%uHR1p zl5n#D&lgCXgKt;-Lb@ZdlbwX!zuIEFMfR!|qO>Qu*dn&@;_!JQ+Q*3QT{XVIc>Ze(+ub7-gt6zaGr;6S;b8b9fX!~gNR zN8y4wmp~COtgd|b!2mSAH5w*b5c<{`IX053?>$-=H9Y#7@(JG6pM3*+lcAbr4F}l&hkN(77w1~q4P$>5@+oRC+)lp7Oo4n5#5pJ9c=Gse*pdfJ zV_9D!B8@VFCQQgN&|GifMcgV`u0ihU9Lhg;D%t?%-A|+!o*hHCe_Vk$BFElBu*ZjQ zEh;k|46G#CwuHXWwUebZr?T!M2>Yy*#?M191B5Ei!TXJ&^w}T@g4@HWLdZvGB#|tG zEaz7cmou_xJl7`sp8HAVZ@#&2tLM78sF+b0=ua(G>Ez{}G#l#ci6f=$SYIi^NL9r? zM`6^GzG;_`(G)?^xT^fB7c})Dw{Y%dOWvS;?m*Zp8umP^vJiI36^Gep?APwpt!tdm zcw(+ucg))KheYA`Iu#rPbK@z>Ti<&whN~;$39vW`qZ1WYGfos|X0{RqiqHjqV-AyL zIt9Uh;65-dr)prkzHHZ8ht#rX^Hymm>ZO2@rKx}W>!aC{LV z9Wuj{dk4gAO2RSXD`L^{TqQUe!`9a0KA~55WNoZ-cN}Nzg?`ZYeg9=r$e+ zD?3_}3GHu=Ut>3gM4c?$hxFQzC%NZ5>6-F@z1!eE^>$y#Ilnxg?S-Hb(Os7(izxpo zeN^aPw+~DQSXO?F#=_9Yn2GNyUzRfBoYaVtOD1@Wdv}{TK{*VX`ke%4iRn7rDy%&! z4ucm=ERE}kx4`MnXn9a0`ph@??;XMJ?r5)Fe3Y8(j~#2~^18QuU#M3;b`OS#15v27 zF8o8T&2EDpQJ8dbYDNxeAMX0ap5GhXh*9Bz3+Y=mJ$lK1UX2>24F<6|0;&R*XBW)Pr3PZFKrZAH^Cz4r%N=ba)nQw#5~8GU}b zznaVf{&2S9pCOhEoWEKa`h*xpJOU8YaHvLWsD>vmradz~@O~0)a(U^nDS`&rz*kA+ zWWvizd9ac~TR_A8JNugTRD)%oEjQbD9M3>t3r-r8Gp_-Ihchu}MVW!vZ6D0>I!e2~ zp1&7h@@W1JnZ)b_Y7vndz%jgPjXwPtklYj+v^U*xqStSxWSv}~FDN6c%!dCJSCPw+ zz9R0JjZEWXI+=1{ZE!d7y5}w1@Y@4>Z1mzggm+PCHA6R-foK=y@r*UR$pzn*52@mM zl5lD_dQSWFiFD^a=;VPczO1BU_Tw13e`XwY_fIuqLywiIr^pzD0S%I+ab?9h&}(&Z zzF|)UQQHjcR$huF|A3L{<%m0P{wT2yKc1f6Ygg#p>roiyv}&Z^Xx}Ir=_B#Za}2#Y z+W-TJ6SeZGeX9JHAg~@1aa3$WORyE2?op{(>j5Cg%9ZivY%UDh`nc1&^1*v0Ps+Uw z{gQ%N-d|9QEBpZoSD55L9Mvyu?{)aGbm(p~li$YJ`W0>uNXkkmIpi~~ys2iLfimZd z(|^gFN_oFh6;f?rOIh96<$Rfyu*M-D*n*pYc<+VphsSWW;9xmtXJ_^Rldr1z58UX7 z+5IS)Y=iDBdbV=c69rFg_S1wysUwzUn>|WWKx6zuz-s3JdORqJCdxuwx zgrJ%c#qr1vyhjXoHtYJf$p*m?1=<%z*8*%r;l{|+_Td`u%u>bsMh4swzL5eJ@zyG%VfXO6{1v9J%h9F`3@>Ivm~#y&V;Z};SvsbgLXnR7%3Er>qc+~7fv zCC}?AIp}A;0V|V81fAB*M+fO>3s_jK_E;8tEMf}s6yOd%Mz+iKD7%P-M;aldotGlffG zz_Wnm6Q`&K6WHH&2$~@o<*}M}+!!>p%p1nUwqUY<)ts_u4IF!OBcfMIV-{3$1{0@VCd$xY# zV@1*P`OnVmFqDr|qf}(=lJAIE7yx1$KOWJnoAsXGaw#ynbo_2?p!DS>5k=5uNqnvX zOxzB)Fxv+7eLi@j@b5~mN}AFMbEC`npG@N?t7(xJyb|3z(!Wy01iBQ;mU_&0>~t$d4}#xC#^Peg zvDG4|?F;w3sETMGSe}0F3u$T3?60|(?erLuqSWkQ6_ws_qOK>W%GA=iJFBvw8fpgB z*|3?*(uLt~v8rLJO{b5WH+j&pVWR+qruw#d^Ioi$O3D|66D@z-!x=$2uX&T{x$O7d zMVRTtng2;VW}5F)>p&93P^7x&AY`Zln>K^K(I(I&zw`!a#(vA!n5W$wC%7UnaDj?R zHt`XD)QiT8#ohXzo8^Rjk|J(hr6D!4QoF}qs=$1GnBMc5;@J9K!JjK?s7&*Vx)m?! zhMBE0tx#=KOOvPR(!U$>`yQkD?foMHCN`-NEfYAKp)#GfK_~MrAFIgc9~f6WS^vtL zR#sD!{L#1qzrnr_|F*cbIWO&XKT{7vsG^`hfsS``sZ+*rD0y{pggXf^#Tu;1RFR zU1`wwkr5#=v2vhQpI<}wyil^ll*|av)}^7Y;KR17^KH1K13my%J3!>SSfz=yA1jbU z1RhTgNAHctH&PtggWrZRb7$ouJYaC zxWon!V|?Dy$P+(1!_|n0SlqZsf9yC85pJ}6`jq<~{g!pi@G2iVRf-74z%$^+O`CQS zuDsCe#L_i^2*lF+eyhIKr}CEQqXjVu=o-)VA2f&8+XUaX9vYbsg*mjk;*_F-jXV#< z9RW67W7F9Z@-ukr=f?sd0I)}1{Byd`!krwK&%z+^q-J@1sU6^Fa#)lfi$b6%ARDd6 zFgyX-e|fFH@{&TLt09C?v3EsZW@*qx1vkHi`Uijl9?S)UY7hIxwo(~k9WZU0nU&?4 zZToalPoi7h%}ofm*BhCFr2&xb&9~o>(wS1Nw7N06`dUdd&UXgI%12w%)tVTEm`*Yf zSH!8qt8j+-Nw?1*w703a3F``ZXa#-}^p^Htwtv9T60P|hld1&y{Jyp9&U49;{(_hZLnWie zl?8nUB^S#|;zRt^c0It_ZZZU?``_LgDC@L(Etxmi;|+6$ieBQd8*`3n&i~fFC|({- zC9}z-UR@3}8=IQm5-5P;1GCM2^XXC?E`3AND44{5i`bp%rkte7{b6od^iuHZ`lp$y zeD2B_dExVCG=G>%24&bi3ak}P%(dxEy`7!oHP9s7CUCyI&(FNcm5zXf8s(v@X=Fqf zjyrLlct3ObLPU5$@n_|>Qbuh?1iiYYH*d*;wvANjFG;#n4KP+Nn^tnydUbh!-vX?` zTU<68p~!j#X1faYWxz_c$$TH~d6kYa+DHictt4XZaaVVAj+bP-aJ5I&@#H?@BL)nH zjMFa^qLL5WYS7yiU`THZZPUs9)6Pf2d7Etn`~Q3})#NQJ06APD-T=iiX`g9?+a}u5 zklg<1vy;-ie4d`ZHx6hLjp<5@N?g$?psUrA&-x{+4}4dRDAP>)HD3+0E?^#GvsfCL z8cTS_R)ilZVP~U`HCERIR7y@p*}J@e1VNaYtcz25kKtJs5C7=JpZLC?X^x&-BFGf4|wn7Kgkz46gd-^ajAb zwBn230-_e5W7xdfqK!&5r*lu`!cL)}o`bCVhK-`;DGZy8$DAal8*A&^Zk-}5#3t>5 z{*|TznQL$u^)gn^)BGsJQ_Co}e8_sIRr(oR@_xI*9sYOUgi+VFt5=bp95GCBYv2oswnJrx|RyZoQ&=)+<3J}KZY@m2Ie4;F84Y|$4xFnU zbgvt`hIyPTS<-i@QML|jiZ!LUM1RVLFV#+nEzX`Gw#c!u_pqh<1;3Tqf~wgbzYx@7 zugbBjw^bCxi)TvRdDd3{)r|66KNYcAP?Mygo=IEpu0z??kn4jGo%>=0Q+HvM#tUlW3n&ZJ$fohvo*1KJc!wIIF$qKTpjqJghYJ+{G2V7JM#E!L%B zE;}2;_}8z=i^5MVeA@xp&CurGn;Y(~&eNA=X8SEu$T$c{(Aw8ti^%>PWZ3qI1Z;*q z_;<#|QH2UozxueE!d@4c$u8_(hzaR#T3=a^-p61 zX8`Vhy`&IF_uw$UfF>Lln%u&UtL<(w2dOa~^@Z#kX8(`ff#|!>J?y|-li>L6J~Z5# z^fa)6SaYzOTZ%tVJ(%9%X9&2Wy*KhRj%Hi?%r)B>Wl#^jwmI_ck)lnQKH1LfiIDJPRL426mo>VAqsZA5z~8IfpZQ= z+p}q840nH;qW}-RcX6?y;xd%XVq#(fJzb4IM8Bf(oi;U_4owCyF5OyOOG85=pf0$? zy{^J#W+1n@2fq7B{ zn0i3wAyY=ndv;*5G7O01UehLPvwiD3ysgVl{eG4GU#xm`P_TK)CntNQ=pY4n@vB`b zO>^^-&ql;tb031&s}w1GbGol{*Xd0(w5QlWnGahOih<{|94L&R6>hA$+iy5m+1*Nb%p`&w zbb$IZ28MprSTuf~yT#P=b;z@&_noJ4Zg}(-wVe|f+G0MG%dE!(El`CeE~>Kb!$gZO zcK@xOr8LA z!r{5YoG!NG<{98NZ-h|Ug&*H4RDgW|Lcy&CG0P^wzsK=h5whN0|A_OYJ#SJG|G$&v z{bf9w0n#}JD*BkCg|1+~a>safU+w1l;Z<2fD4kC{FI8oZS&Rm0uSkT^T@|wwjD!`f z1qaBZPQ2Mhb}a8bG!|h@Wg%>{#Nw>m?_RlIOo{l1=aJ-WDIvrT?WI4gMtj zfrK%hBam63ILsGLYQV&y5LgD=Th3As5@rwCEIHa+QTa%kR#LUI+}$bu$X}KnPn-t> zElV4YCNuxIAL;B$$^YQ<`0+!@$o%qOdW_Ipr1Ox`R~4_>??NL6rCp?%A4cp`d`dVy zV5~pGKlJj0N+!-d&$!H+Q*EcU!&iU#{Gr{TbSSm4&1w>()T_hy&$xv=TQb}JjnlSi ztzON23Y*qtQ+kCI+Q2J6v=8oLkZ&N-*Tc@S|8)TrB@~bv+$cXDi!CWn3gsu7-Df}7 zGZ-jlG>*xSSXi*9TB3Q@sI|_6I44p=M*n|j0YqNJgCwNxvTz%F)Y_KrNF8geB-;$F~<%xq1`cgSA zh6;{v97Xr=HR7x}!bplXE|P$)|75xT4Xx;4*wvx?TdCnsd;6!q(!fx(>N$3A959Wq zfHsl~s1{~60k>`pY|22z8SwhwfBqZ*r0J8Rmdyx_EISEtim-2s1UJJ*%R8Y$!Hi@1 z4j7SRfnw*8ecn#bE7wiCyp_YHs`I(x^nWp5MLL*%b8uwfUW}TRtri*IW{=mbze69P zrgdU&eRzxNRYvDPY=PumxtM#hTg7sIfA*(}uQGu&XoZqpwqYlzGjLaSw`uBoggBtry?Yl0 zOhhg~{$6nb`4b9A(LZ(wF6z>o@%(4H=N?Z zKO>|aV|htRP_NaW)Rl}}#-|p?71T(Mg}XCj0+@JGeU;XxaPmRV9zS!zM*uPQTt)jy1RlAH_m7bbL( zgxuPM8G7L>s~vBszc<||dy$-Qfqzt?%AkG~9j7@_<7D$8ewwy2M~1^HZahn6~`e(9tWCFg5Ot0veD*rZjefrlRQWqFN``Mp7rt&qpse+uLjlf!Q?wt? zSj{(9JegPHNYzYaSPS5%@8SAN^v_=%!+ac~Z&E+YmRF2T4++lU4!L{hbybJ;#oD7U zzA9#k7k);1!M?#$Ch>e%0`Xs)+=R$JnP6zRjhQ&__HaEZHvlY^vjl3Wt-<6LG0t@S zGQyOV*f@l^hwJwBREto`G~b(;?B z#U9USY8~ZiKGy{CTV1RzMsY=RM%y)+##~R)1v|q@2CtjMes?8jz4m&N^mI_dl0tF# z|Doxt!=n1WuVLu!?g5c5MLI+fknZkMLP|OZ=|;MxVdxHF=x(Gt1?g_^clo^UmxuWW zo|!r4o^$tEd#$ziy(a!wszuXQ+G;n6xz0Xe8Y`6Zh40Xg}$i%xQP||oRr(Tw$GotIW7RIF$CR(AB}QCZ!se(k-vW5JKDcWYvHS8kKXBQ zKPt}2cNcLGm+r9{#sEu8{iMZA#!^%8(u`9_J2ohN*ezX6cleBlOO~WNOB9m#@fm;ByLQZ3kD6JjPLRaOiT(K54=vtr{f#bF~QFTE#a6U-Wahfzr@r z)O+f#tGcgFK038!Q*0B*s5k+DL%jOoz*O=$u4~hI*z@v?y5{!O3Kik3WUp?XPm`pf-uHJInsdO>4Umx#?d>iUerS4@+ zy&7CNDcw^Px~)L`H$58mX=ABFw!q=N;QcU{7~Gi4bxd#p02HElimn0bl9`Ro{BXYd z%U@0*q4XF2Q_IjJ2*`4?Uor}p18mg(+-?CJePCss?GOP4^#T5B(&<+Ka+I-jGfO{{dCg+GeHo`xIpid+* zNugra`PXs71Bnvo3BL)oYUFj=!-qfuJONG)ilGBlW%bCtc$x7C2#NJo3v1;2?5%?p zF{YT=@l5m$3&}hZf{Vcl`v-(T;R%y8BaT=*%vQ~ucBUA(bpPk-UG!F_=SM!=W&`hk zeES}FqvKwm9&>+-SH^d3HmVo~RpAiUws~YeZ-yE%Xooi#!Rrmk2aSH@?8)QeM$GJs z_$I?kl*Q?U=@42ZDD>=(8jY=PbN`OO3RTG^yD`6&Wy(CgK;64T&5ls$7Iyb1{iDE* z$9_o>KM=P50;&^GBD)p&CgqJ4Hjs2twRzoG0(r2$)8MNwZ6V#&VjF?(1{0qtBxzqC z9OxSIX|)+z{L-90cqq7)qQEQJW=E+aovG&m0@HS>Aztd&pO^3;b(c+ zp1_%ABJ@Nf;k#5zE#!MOH1sum5ke8D+`qhIW`D;{{zxSsM~QboLh?&~ww=*7>PQ9A z5z8teB5cBfZtGDh2 zXxSGCGH2+;4m-I3NLh!yoYdvTEeG@9k9Yko@H*(?Zx@M*OZOJhbgv({981O}J~QoU zF=3z%lB>JLcLn$UOwQD13?f{z_Fnobj)JQ2nvmpMB$99bpXE-kPQ}z;^>8E+;Lo_ZFjoR&Vn}>4xbi;ej_-lk1pA_j{+P~ z^W~J>!IfyTfh!rHHxP>fRPNyL@YbX>jmxBCKYR#qe$g>tsL0t#Q0`h?zK=`UCH%kg~N@>UyB=y%p^}KjJdlJBy*iA0eWwp4LOmd?7#S~8ky||T!u8} zo?`%&r~^IC?4QX!;mvtR-TsAU4!eF>H4YRTOxRR%aX&7qr!Gt;LHdJi6ccWAX|w+B zECLyteB*0C(``8M8N3MzNyp8A7cQ{;;!YmnaHCWZgZd2_MtFO8(!$+fjm7XSz*F%9@sRv+ z6-el|7p$@^Hh{t)=W&tC!-e?CJZWcu5|}6$HteaTjDGU}c-AkN7denAZZb*7)J{uo zz~np0V=OX3&{YmWrSsJ}@YV1O8Ib(kqWGA*AZ~?PpCc^o(w0l_sgN9yyM%WfTsYjr z`HVOKF9N@9oa?EeG55)267g-QFw|S=G519Lufx^-EJu5_tp^AjMtu4HEW!`5C8FvZ zO1VB>ZvNoW_TiXR3a#(ixH!poN(I;A*Pl|pJN3a&Fg)_hkc4K~N(JB3jdPMKG=0NX zDI9RVxc|Ginr_28HZ+3yJUYEwIw{%1?bxcifoa5m!q0(uk*AzH$j7cFkyG12LU+rA z?uV3g2NnzSrwLYmbL&J=#>$;OB>K7s>8n;#7s=f?ES5~lxJtqck|S;xLhmq7OG^IK~EEeN^g)?o-jKJN=mz*g#q=+F1fKZZiX7 zk$r$rz);dvK$n~Uktr)28Odf!n^n4a`8BkaX$qa63B>y0-Nu)k!7rz7EItQ-*>wWA@)>W(H20(Wx!W-}*l**T(rDoS=RE{U4gjR! z_Bc1s^7unm(f;iD0&gdBK9B+KhVRH&xw7$$snpQ!>bbY!VzUpR_p2w?eCYd9D~%H8 zdrg0KMb!V!1EB_i^EIU*h{*YKX|k8mxu}FF7T=c(|A@1#)d%FU&cYn-pDsyA9I6<6@B79}L;VhLGPHX*vI)bwcTy+*8VVafcO`XWG|OF)=+QF~Vd5In9sh2@2$0<> zm>H4joD5V#U$Ri#jk|PYY*sn2Kw4fXUUJb&r)4BL*TL3jIj@1~8@wn(ZJN z-M*!fxdxP=1R<=!ZfUB)P7fK2yr-YWZzR)gRrcn1C6(7k^SiAf8#D99QRCX5<6otZ zoMQBp&LiB*u1j_=FWZ%t#Ku+62mpLU*;KYARl@GWsYN^|fNPy^1P~%cz{&8|epUE4 zXZMCoH~~Q4kmI%QaoL(}5MG@(SbQeMQ&rS!9{)|P&B~>*k!-5-g*2~ag=B%Sq1d`! zLVpDN%yl`(R6c{IsKM!b2he^@V!1J_QydaP=vulH>sNEwIxvHNaG~)}qf{#`kZljX z3|ISSDvKZk7>&qAkXatDsYY{U-h~yO5ElE95U&#FMK1=N31josW@I9sZ%gUTif|6$koAIt?!ekX4VYc{YOv;Hk&gNy+1JPvFW%A!|p$QM%mctvtBS&enT*&P-zuMJab`_@M0fgMNH7o4G#81lIDhDf3yw111GkGE&EbT2bYTE+9*|#wZfB0^OCjp+Kt&)J_sz zf$vfDXgFezTrVQt@voCV$?cC8ZL0@QH*33*Z^pzKdR2)Y;8uRQy)08Ibuh5&n=XT1 z=7D@08ICs}%=pPpYzd4XI^by)Ak)BE^HX{I^-Mj+6dE;hS(}VYY0c7l#d#fo@nM6;@^USzcG= zc^6g%v@r?hI}n{ls5aF$%z+ZRZu~7lc|Q*q8X{A0$M-X1cl~N))+FK%zDK?dGy6*! z5h|?^`zzEP{jJSxa$J+D5C|}1Dm?z7<)L${R`$E z(mg$}vLD(q7BL((qQs4i@|%>mW01ffvIt8aj%yhxEt@;Mn7kWXTy1iwG^JeaYA$|A zju3@o4nrz^;&R|B!{5R$e#8%KO2HMA9HOsdMsr-h#FdYE;=)gY_j-re8HU60>sI#x^YZJyI8bSTtnBYtuQ&Y`5}P8wF9 zgI`Nv5U$02l-+Oxi7E0VDOT@NHLOV^#WZnFRVtfn+x4e@!4}w#^^Bpt*`JAc$t`J~ z_N1>ovlnWuemB~$c>+n%MseuN4!mz7W-7>fcRUjS%(O!-6a7(QLl82j+d*u!4Wt;- z@lw`_JvYe151E8PTihFZcG;aDM-{U6vslvDh-CERsYC4&+K`PS(E0~*5xFZHI(eSg z$b)X(<8U3q`_RrhgbXB=YYb>fn5ZiRNl=3}c_QR-2m2nkcW=SGge5$ngV7;;f(rJ4 z5qgVT@Du1kR^uCiJMo@QI!F*UKx&M~Ra>BOSAg=3$SbQ_c68AJpa@gGT@o}YY`m78 z{$dpndaEg?H-Cr}cWd=r)^#x+R;TEa@c=UNdvf`1e$)iG)pTIq0)UyPBKaAZ`4}KO z_niTX73Y%>W%M>b9YAKopGBmZ4c}B2CpQ)rUSEwEqB+7T)#H+eDKOPQIy>wos+yF| z6FJXiSSHV@9ZY$PVzh2wPuN0benH8Rz?@&+QqrQ=`ojl-x4h$=;Rx?do*!$A!pwu@ z`70DJxswBM^w)^xUXgRtt%@>IzmB++C;ZXI_JiiD-a@>n(Gex0gzznlN!K@H*7D85 z_q$0og(o+2LQSMplLqPa(D|@I@Jf~NYP*c932o%Bgfsv_1tdfX5mZeKFSKKL{QI$o8B50Db}^>k3&Kf=)E*b%)fgi#}0S?dC2e$is5 zW!t5V9ju7yn$+HWOq}1Q<`=TBt}Zw&QpaN|k$=by(L@&QK{hGykz3j8tXU%`-VSNy7CrvAhuuavgQJz2oS; z(68+(XN)6!6N8V$B|*{lCx=hvkp}`gcsq-XpY<)55%#_WieGN z_6z(opN%^Qky03@kZ(27^bIi0{E0Yp3c&+1)U+(&L6Q0`hvahU>{kfdvH)p zXPnpOnnG_G;;zMO%ZZ#1+F31MNvxaK?*SI6mTj3Xzy*vJ(hWE{Y8p*eQbfEOY76)& z$vV&gu}dTau}qWmWSCrURt(Sj*7gBRXS6M7WKNwF^59a2tNJ(>l~P<8U8r5xO2s8% z(uD&#I>mA%MhMyvcZQ%qM6wFD^~hNFHzOXqNK&)c%_`pgCuYn51hD^=$t@k18?cfc z>7ZRi9ck6_kIifY?7raux$qS>aE6X#8Xv;GaH_s3rNc$T|IYULWT84^>1>mP*4l>? zZ)s%V4SFNXa;8-&b0TW0n0I{@f_FpXuo5aCYlNL)c=(^eL&aSD5x25ZCFr*VX`q-U)#f5 zA;*XQMifQu(v<6UV>}8|!$RtF7Axtsxn? zAxhX==m*{ivu(+=X6AgPqwe=YH$xQdG<-}K|M!#aF_-Y+RzByo!w>DN#YTTW_zRI4 zx~%;PIrVnM);&N!=s*rSK}kxVw=u+|B(R;5WXo;kx5hg&>;R5G71E$k!f<^(CLaEZ z1NyL9C#Evx+Vq}1;?Sqw&L-BMolgNYTjk6}eKBe#Nl9M!N|Qf5zX-nG{VULk z&R!p5qsG|7mlgvn;KbKE+e2rII&o$gLAt&Sl!L_6pPsB=QC`%@I2)PwXuN}W>T&EP z(mDlF+ZrJ6t-B(N`k2aR4>Z*k`hWW>@AzBCj%7$>_CMcH?kbh3)Gn}klyd(?7EAuj~BO)EO$y*(<<+i z*XKV4jlGwwBjJ)>-)^#5wDCZ@PjjdFoWq4>oU%`DOy}TTryr>qk+%EDV*KEsO&GL9 zWEi2%ag6rOYmSI&r+6&(E6SO zZO`{mcW>%59y;n)9Ls*+>`rTOB)VuQv~4^Kv`SsjvZ!W&VY`aejK1=TMK2HA{r>Xr zhouI)yAwaw(d6qiARodHlhik%{QnVbI#Z#uJuJwaN6Llz?8H=M&zp0M5tm*u&?q|W zl*%8JjUmkDaBRsxuO{LaxWCnnFXAKtXAE$HIsgMjmXh=iH2DP46nPxP24VIQQNfd{**vIj{ zs{DH;egml2{@rrMXHrl-B40KK7m9T8w+PQTP1Np{)9;4BnjJ-KVCrfaPo=|viVke0 zE4gxsP&2%XS8!ST$m^w$;j~Y_l}eW_r4jBrUk)x;}E*A~A@nX36A89Pr~j z>i)b!j60+S84}~+j45fj?__JfcM+dvq#y$FDXJ7oKlvP)k-}+V+V*0&H$Ef>(J6)D4rF4SNoE152(m|q% z@-tPyn>;QnoRL9DG>}|222?_3C#UH*6IEv9%CZv%wR}t~Pm(jF#BXTrj8r2ci#+8H z9|plE!Rs(u7ZaqITjLp3qiutA${=D>5M_`lMA#_bj&LzXJ(DKrE8RS)7zF>qcrEW# zzw4>-4vc|Rp?RyL!P%qMCi=WvCDl{FTlc}77mc7O4oY(ec6QU-B=qY4pBDgjvvOo& z$%4aX{snU!<-US921XA7=IVGc%BQBQo0i0Mogv^1)G>S}|MVACR{3Q*$IS^=>Q2M{!* zu$x(#68eal$EDz&>NjrKc0KK)>l$LTZ^51VIP*jLez6eS#Hm=aFFl_I(5 z_=kL9ssvA3M9xm=A;XTeE?;jdBKNk_(kXRca3sVKP3ekyJ*&+t)gGtZyX?{=@?kQwB{NKRRUY(7GLDIXuv9q1e|-^2EwQsbc6CKOuZ z;f2R;&*CFR?L47^$r~lU(RQbY+MtuZ=osav`XbMqt|xJdAdD`czI_hiK!UM{^|t#U zps1x^ZFE?xjhE_)R}#gWq!EBnB);nR?@91x3;m9tGPPGn zjWYVuQHZ$UQ6wowP;GjZ-cX5Y8$;4;hR&u-?WvE%LyC?@uD)q)tK=EwRtb8<*C}0Y z65f$FIEF$T@1kKqv#o58o8LO(^Uje%j_OJYxa12Bb`*dMH(xr&e1TQXY%*60*f+Dw z6B`cG82`C_(5}u!;hs@n{39!o=`MMKbcUZ0(9gVQ_z>uHDf*ZnJ%xmgIKMCUla=aj zmPC{0=pMWcCo_Jf8C3s9F_e!9;7$P}Q8qwg&y{4ql1p+}cI+?sqK+Ms*YF>FP8RZy zm>!m6*3c7CiN~!R5`!tNmy7{Ru(i*C6hiqxSzB!?lIbAP+WB{`k_Jdrpv@+{Y=*7# zFHz|Ge;$xQ)kYX+K4BzMx=|#K|CBT#y0htK5CR!ClapdMMd33^QNWYj z2J;1+4`qgJX#nk1==d^{cTHkkfVPsy7}G?s$$T0hQ-rVmo8as4rS`Q(KzQMa@kt38 z8TA;vbi41czfUp7j5AvPz`^c%$>B^lW0R^Eku5$8%~c0=h2FEe|f!^8A!QeHF~>h`{aHA%ywa?elvgeDBSIM&5+)-_c zcUC}GoZpHr#lb=FCr z@@8Nj!o360TT_Q_!@aib1pKNO9ayjd1thT2tMqNb{p7a6jLpXl?0y))Vn#zru@3tJ z4-!+UK4qq20y1z=STun@cgOO&dn6y^!2b$Mq~ooc0reU3LYV-M2uj7Q4fNO@(?ulOV_dQM{z;IU-_1%&Na__03m}ON3{N0E{gh z5$Goom?9y=z(jn9rDlLUf%pun zL-b|iLT!4RIJYB1<5g?&dk5G#*I4@GZ=^LM;h%xWbv!q7PEDz;kPDGLI-X#&fznK~ zCW$+Qvi9$rTwjQA2#$i5i4*XTPDLW_46SIQ@*BtPrw6Lp7>F_xr9n<5f4~!&)$kQANuuopd0mC3gJCBo4Ft z+Z|$fg|`q+LDskQa5uMkAZLSfKs4KvgoJ<4CRb_K*#UE>4fOs zaaJNTnK}-si|CUdIyeq%TQxQc=C4RfzEW{I35#|c`Z-VX z7jN#^+gOx~=$1Xn!la(_$Gp)dsUmvC1J0?JG2>}C=agWDLIdYH1MxzZzZ7f^c}q~> za|1>M=rz%=to=%3wKtn^h?{hc(>kp>1hSO`Ptw#~UR2hEctcVwu0c(%r z^G?t49W?$p5GmNe#*9cr+t1lqLZf`(3u#bW1TToc%RG<4li4P42le z5!NkjcwWK7+>Sb|u3cT3T-?2XEC8tm&2SOCsZty3O;a#;T_#HDdAsI>rVSpdV9a;%*5q&s(vkTA!*YH39WH7^I z6g9k2Cou!N%M;l>n1UL}CJ+c(`T8@nBc$TfJ)zQY<^Ed!Vj3>aYu;7kX6eJx{a~MN zE)_Q={om>S-s`W$rIoI5*UxWZ!ZTPYDea>q9#bUE10(`9g($d@TQc%ZZSa?8>PzsM zTrnPCJ1(4i?s@di`i{mbD*`jn#EhEV-x62M#diqLe2Hh%0sDcs8y$RMC?c#XhUjIN zQlb}9)aO!TSh=@e!)4;MjIa1_&QNFm4QoBUsw(^<1+Np#IYq?Ji;)GV$wFzM(GHVo z65rkhGz~o_r$zHP_|A{(V;wprnEHnzT9yi(zU{K93{!n1cdg?2eS5AGH{#WEap|8F z?SsCWrn8ZRO6A8-;-v7-YZ^bly7mY&Sd+^^U02mBU#z1#FAUB2=@8%H255|7Hva^# zSEcBbHhv$uuEhfx>A5;5X@zcrEw0IM?$l0m6Pj}*z_^3rNwv(al8+)YCEDi4559N7 z^%RhHPbdz`mp>i3GhzDh!l52o|KQ6`rDpHJZuc|N#+9AmeKX-1kIn;~5VTrJO%Eua zJ9Jp27V%M}=^fv(j{J?f*oBmncU)FST*vPGzJ#DGOOH<+joIW-mpO?Cl+$>8Pv&qz z5x(IT{O?NY>y6a?9AjQ&*QWAvpOz6rqxd$oiO~n?PtVgMo`WjUN+v?9U&;PQNMeq4 zU=twL;z+KapxXzpuYpM5P7ulq89mnSz#9^AC%540nE-5Vn@{t;YZ@PWx*d2Ybk`p= z>Y2L{_hj)>5D&j*G9(%o$o(u$!{sbQr{i$Q6}N3%?M9z_0I#8sQQ?e4*odnA%+{TL z7{!C0^xhEFXr%xCE-TT9N@!5tGOQLg{dQJPgAbH#l^#?G5-}<3FcXL1xWN;KdW)TA zBAn*Ss0Fc3GcF_8v}EUHETW!mZkh^y+Y>*SP5dJVpgjmcX~zwuYEQcXyN|vqb);{V zHCfB6pqi|<25vo~?o{e|Goq|pa#xIb?NLVqIdrQkDmN_G6Z?<-@qR>ISMD#~W94)8 zIWK6VNg~`h9DubEn_=3EQK{etK~m5i>0kQfN8{OGCODnVyl_2b5e z>NPDSL>Q}s-t^dtE)$R9$l|pFo6Fz#4PEtxh}6h}G(VolKjv9<_`{E62*j&5WDpV& z#igg~nF)n-tNa51tPF$Ydk^%BM2-#~mY(d==$>{E0VD!K148kF9zoKk7J~wO@gKtN zL^0HkofQSzYl~V&)qKX)p1v1(idv!x(9IvFMmpHtD@oY4-h$bg*Ua6>CzjPj@FOOQ zu#EC)*5SRp;~u=@Qd8XiA&n4UxYknvY!QVvdaFUgKkPJ<+&x-0*8UG2Rm&oL6Bo{2E_1erHavUmAd&zGs|tQ_%bfN{qO zxQB-;`=CioY>M))w2`R5Rf6;8EfNH|n-JiUYOWrV8QwFmdl<)*;Ps^Y6tsH-uTwj| z(4}Xn8|UkExuQmb!qrq=i9FOdfo`y&NPzWpV z-38~@f7Qjetx+;h)LJQl<4_}rXIev=o0?t{C^MQ)3kAmnyjw_!Svm`W$nq|N-=&n| zrMlWDZHjr)F?edUvR5TFgcmw){WS$WdqH7Kud?pI=X;at6$`gK>oc>fQ zmh0e(HiD;(XT_Y0C^}X%6Pq{F_pgH?uE=x#V0u$rK3G1|wc^j&C9yk8l`NOx_J+Q@ zPm@KxPB|Lh8SRu$Qc8iDJ72nYkTZzRw|Sq~D4)UnI^p&Pe*8lb*W0Kxl!xKiC>M=Q ze?$%~_cgUPhU0lt0JjH$y9pU3HzF z0<=MBg1pdD&~B+7sx$q7u-<-zO6LUfyoRsvSgF|Fh>)Uf`vT6#=6T$rOiyexc>w_qYj6x zVqWZI``ZL65!9`Sj{TXii20mPBG%v+&Q)L}`bL1b)24404 zA(LKc>3oYGfsTWIt}q^Xa>z4NN%$ru2X*nD4ppy?%{jaX#u zQyVvH6N)Z;C(liqWO$zMLdSE&Qz6B%O+J6Trt<$G_Z`h&!tw1_oR1ENnA}UsuRa#T z_*Cn={%mqXmp*Xu<2UBKL3>k;Hr#5xs4ffJmqQ;99JK~wHOFcdev4oBJ?2z^!j@dWgXxs8o0(jUaA-==6++?#W**&yBH&Gr{t2R?F9pDz>_Ut znUH`&OLGSvK!JB)>ZAq-aMF(xv=Jji*0rXh`vT5$Nv;MVuJnFJd~jL)-brg)GlzzE z9Cylu(xp_gaRANwTFTMR4DCTU9zzeRCj0D;cA$__PBE$IX#GKDayXd-+<+FlURYR% zf(esm#F!DT5Owg3e?^cYXGB>{T3ZpIjU&B-Eb)vu)x9>eV@snBy{3ULLVL7H*+(}r z*HcdAnIviBPBZVeG$zo2qjgnCb!$`JPGTyv{=$mChJUN`SZ^9%$U}FWzEf16qOgV2 zxq;o$lH!k*>Q1A<#KVoAjkI8iY~8DoLrzv9Sleu~YoAK^Zq(b)q!e)!{qXAU5C^cpXCl>~_lRu?EKM06M~x{h zB{0j6#>pZ4GjBjw{#HjtKNfYO|rfs9nU$E$$wpF~4TC|$mmTuIvb zO(>45I!ag0pc5MjKN?1X2E^ecJTsH7JB=_idl~OIxvFVTqE1djN^kp1wJp_v$0j zQ3XA{dLN3T#m<6z2TQs7gU0r2;9TVzwor7cu5}Mi&ux&sa9>Y?E+VJDv00WmEY1Rm z%Bfr_44|Z}+aDg`M}s2;FIBV;2EaEyylM02^Nu^x{?0Kqqs(zRdmhPPfp<2K?%(xMCa0CYqq^sT znSRt^lq%~UwEmr`QfJFF?O*v*u0&zRs%JKa`Mz{R_L{#Zw4(+08!Ar$r5^e1FEjJb zQapDZf_G2B_~G}2p^tCp9(R_)zY}5e3dvc)RfqL^-8F<=q(b}hxMY7yCmm5SeONaO zs^zx#)TrEzK{w(HDk|L<`yKi;R*7JlS=u7>drJV9l*b$u=m~@`_Rr(ITo@?G&hUG_ z!xClzb}CX6L^^;q>N(u!J&5d7wzFUAgAdJY3cp1H- zOPA;ERy7N5V5p<9?2YD-Z{@J2b}S8G27?+|9%a`H9Cu1NSs{PkM_(G6QiPNOA`_=} zLo9l+9Rtk37=nEFn*dE!jIoexWzHR;iN0!&pWL7BL$Jdzdt;UJt|Cxts`=O3(UBWy zqUDVI0u_F2OpypuMthp&SPZ537le=SXX&JXwH-2^Z%!cLr@Pt?hB1lbXN_&V)*M3NAKzOJ-P0;Q{~J~u0$ zb^&K--%uiJrZf;_LtgZoZWVjP$xRw_Pf82z>a?pATqT`#DB9UOIM8dR5vW8@B_Y37 zd8m5*Km{pUX5h$H|d5?YQ0 z-5Z}jzi3(xl%Ii)_DMs`=%tcuKUR@x(M1?K^{D%u>PN%=;%3J%3;XD-@Qny!a|L6P zb+!L{I{DNOv}U#&15EOmkpmkJ>Mwdu$d_8*|{k15dR#QV;oS1J{_#_`T$0EsybO|fVV`8cKUEZr*aIS8cEl;rv#8drAG^c$ztZ-mt?1#? z0pP~_kIj!p2xlS$wOeZ`AdRtTmvJHALOCe74>0~w3M`6Ar&)PYJ|K+Z2+GLO<3(9o zFw=$M&lF2Ys>`XctHg4AXTj=Xy5%38)A@1VM;LIKw9mdr9!~S(d^#^_dluFl(S) zY68=tN}K`ROy*A^!kQaBB5DVq(VOGb)m*LTmGw(E7>l@Ugt*T@ZDC%tYIr!02w^{b z^vh~?$AL`Txj}0L?)<;a!urLegW=jBToVl4-3z|_2OrIT9@V12Q{j%)^ zuAN^*2+C+e(!v%H>z~@nGt>!mrcP+EAk>(0FVIYAKWWpz(?L_yTuHMyP-Jo?S7#}& zD=BtDK9TFQtc-Y>BO^0l)|_t_ zARRz?2e0r(ILU{&9;>lzq2*(@Li$Iyw>Fx(H4!4@SVy;h*T+JN6;Rvt+Y?*a6DkQ= z8QNH+d{h|~(3mn|!2p&vE~23^VlOD1>8pf_xJnrUQz-2fC?JX_&p+T>Y)wwQq0GtB zZmXa0?(uSFW@_e2=HMaY_|1i^>&@(&oz;hB=WJ)ip~83S>M0teqIG>7$hEXVnQO^j ziYgvD5!G^hwiDx8iJ8copO|MFu@Ih7-sbXddXO34hyQJ`UZ_!T|MMrQ6G4xhm1VRL zUG+d$PqkF0o~^Wst*qGCu%N`9rWA5J%MzrZU{u{TJ3G6$&Zto0G%-zBkg%WkSX}Zk z;G|xLwt{yv6A<8{cTT(Y+$^&es+w9#xD%nI{7pYt)F!8Ak z@@-os3OgLmn&ssh4F%2Zf5m>fB~`X|LFyxFq84BEdi>7|fMgp{Z|U;ESC#sx_6K@%4Vnw^3Jo=$ z&ZTyHT8Ypy>ylijzID%&H40U+)smL0>k^G9orh@7WRDo(Z`)~ZyWVzdl|CnOI~;QM z#w^?LenYx8QL;L6(1pdM!rAa7Mw>Lg^r6Cg;w9h-BKN^ibOIW!)O%<4d7Zwxp#4vY z-~YSBZa$Rrhp%jFX?S(%4dK3<%x37g0zMz+*|IMSbz9LTeJ+fN&|>=vauafBc}bc5 zCk@R;buxR0-_Sd(#AG(RlE>{Jvjcl}w}o!s=Y7A|yxvV2N-<@Auw{$C3itJwwe02P z4b26;n(Dmyx};OOy!j;sjuz0XiX;<+U6r=eshop8r1{o%S)1E^UHrGOXHdVplZY#>AiraaM#?zqXunEer|@F@setI10Y6wqL$}wKOp^Gix5662i25 z;5JR>ZFqh)4|JqFivJMI<_lX zce=!`1W^U0aT4u_N3*mLIjh z6Z5|%`0mycw}YXY93!;dM3v4be4WT!$!E9lBjQhA->f`6H#ofJP*G4vr#NhIp z!-}Ed%?7QW;=8_Y9tIlbZsSr!ura#{sH@0}BXd&3nLYpQurwYWc*cbD^ts6r{28MP z&3`Nwn2brIZ)sXI=~(UH@SUdA4=}y*@SVm)>Wi(w^P}W%^?n7)7p8^3)8r&vewyux zcT00utt@dsIF-G5I%M~?-y9rI{Dlj32Hta>_b0-Gm<;EUqWCn=(jn+407p8(wM;INl2Ku|S>+tJH#+A9rpAV|U@K2E;x9G;-7CzAjJSG3K^pz8$Zd&OB zm)HrA-sBb1aN&LVby`KkyEUZGATO*Fme2awwrruYE*pDu7{b z7Ny}Vs+crP~NulA*a~fHrX-?HU zkyiNCw_D+NI@$3cPOyM*_Fg9HF4GL<$4$$mo^8Zy^n&RmUP6A-FWw8xV%EX5yig2? z$3WgdiAT~2&SPIpnt`YOlwns)8X6MYJ4*L8x%q2 zTVXA_2dV$AQtATQ29jT3}Ln>Ak>X)`#b-S)_Q$5;-}z)~NsbI{1lMXI2SL!qY%FTKkD8(DylE~8wQ5%knR@g?hA3B9ELD$Q0w(8VMuaLgwtD~H}lCk+~C^#Bwu+z*Wo2Y80{Nn z)#UP6eotUdp4vi#Oxl9DIJKeZGU`%(Fq#!26UU8_Msb?+k{y<(=EuzcGIjX;}i+G@*wLibaaJ`AA$6gbBWcX1WBRzx& z!2Ia=>Ln8)9Y)?lH;Yex;Kl+wY`!%=UKn}}L&fyN+>1G3V$0`Rm{+*E`T;oxAHR}# zS%}T!(c6nZepX@|V2{*hA(zi}?^Y+M`h)BSIRXgbN%|>7q%>v&B=lmG?wv~cY=#17Ae9VzUPc5yM zfL&W7T#|U1WXnvMj@S=uw_+;N{5Kd;RlwaD=Wn-~vNSmrqdV6b5@pyID~4?jM4frg zauStoffcYikUEs>*O)?Ett0u~>t!l;;{JU~j60Ui+%|)tkw|fmDz)Pvh_)i<`GEt*HowAMNL7I-E=Nprak{0!GnY>uPaShcr1? z3n#^)Bej5&v|{0qS=|o0tM#THU;xOD#>C1 zVRbPN`5>}DREX88>Ux2~pb~N8uKh|l<#=6%-_qsvhaJ#RMmK6;#lQ763NBugM&E#7 zK#o`5OWk7Mn3ZynpzvGHqn?9-Z3qVuvmt36;TFVQCLhv#?c^OJj&6Dg@}e~>75OA6 znM9G%RI#%hp{RSTzBDI=FXl$7Nn)pW-)nowH(@~g0>R>Bpdeo{I8|U^x zn|oo9?;f9P=xSzW1mn}_5^;3O#iS6$=j))^iD2MK5qL;dHY>>8&>k@oeOCNOh%;tS& zJr}>_nu^LB!udG2-8qcEcdSJ^myxFy?xsWNG5uCi-?1#m~d7$H)?j!cm*DnEK2VfJs7mp^SA-|qjv(=a@ccdM z(YQikn*s8UK7hZQf1A1#?Fm&1&F?}x6&K}sd2<(8PGKt)BZ{3W+WQ>@7 zR!{&gM84blJN}%tgR~8I5624l#93y29jb32jx^DAQ0JpK#H({0wpc%gGwaWtiJBFx z4ld#RsCMng?}}~qG(Jq)Z*_MwoZw(=04tCwQNkRZ@T7!;E-wjW26C-x!62{@Bdzr2 zfAhWH@9NyPbh-}(0odtUMo~)2`ny`tYdZRyz~{fOKw)-WQ7(!}_ZD}3!%jE2Cyw^l ztzqsiw?1l#QfA+3pVe|_hyT6mj#@#V%KEg2ysYLb8n-D6Z_}yLjmYT@C{+nkktif; ze@UQxR<+B@x#Mde%0f8Kdc`D22F~k$>X;hvR-a9+AjYIfE~#`TZzCk4YjRsHr3ZUq zBss?(6-MaF@&p|8Dy%PGL@)PQ$No1+PzN~GIP4yU;f$eI zu;pZ^DpTRPsM=Ae#6o+R7h|6>J#9R?|1Bp9f3}~8=4F~7*bCGqJ+hiQf?lfGCPDf& z_Vwd(CeiF{#RG#<#jUd8nQXVVJ#$Za{U4XK{f0-oF12)qy{dqX{-yJ6&^p)63S0tM zfoWbCqkk~hx{kb~6#bvol`NS9)rof@vk6xvJHL6xZh`Kvm)p8o)MVCYq9(HtR774m zQF*++BirgUCtDh~-wHM|%l?#-n^aVMI0-DEKN`kqlYpV4Xv3DY6Gs&+<%ZCM&oz2t zmcmb|Lu2I&-<7H^o8ne`pGO`Kt3zsvx9>p-020k%6rE?Ebt&F_@|w80sDdX@FuV!LoRQb zOU;;oHvSgB5{Z}^NWDI*?Hs?9NprwjH{9~P;oYMhs&9bc@>|L)ppBf6eKt*juAsN~ zA91`xIlDf@3|i4#Xr9tD#yJb7%YFxX(USXG-VqZ(Rx}=w2>nvMTe&59Lp%h=$Jo_h ze}zuB<^jWXs5$}S;|%0vYrBm#zFQcF(}v8N1i=wes$SK~XUR~I9P09ZEN1q*KICpV zC-QSU4h~D?d^e$g1o45D$Q01`ZZ$_`zm&!XwU;-RZ#YFa_~>oWKXL{WpWRX14)i7G z93np(?yF9GrHhw|m09tl80o8hrjwAt(v19-bGvT)7~GJE!)4&2W&B6IEy!xw#~pD^ zaCQ@!8y}uRnAaWUqB42d$-Fyv_f>l_khc950`0_V3lP)xv(dMjtEMkV?EiUBFr+s{ zA*eW)f)FK!xtUfeY`!ZB>E_N1eTy^wc^6oublHOZzlG}3r{_Kp^)(NuqMd#pc9KTN z`4qat?o6iRDM5&%aUWwc00ZEd+T#>idg{yL7wf!$<6xz{w+l1r_kgPK*?S6=^A}?w zNf56*yBS3@ZJ!f5?yEA_?Rl5_xOv-WTbP|lhN8^gydr}(=8}|p!e~=0_yq8?{$$n$ zcANDNvOwEhFM9w`*_-3nIK-vgb5VA`pWx8R>OX?l6_pE)5eRiiW3L6x$vkYHLM3uI%5Zn|5hPnm|dd4$5OnS92S%sPY+D$ zBq@j*c&P+dsl_pAEde^KRSN4#V4)A=1NCgFPDlds+k`g}`&lY*_kVfq-wC5lF8$E; zL4+n2ZOG2OCn=~_SjY}=fVqKMjA*SXaw_^L=9oQ7DojbbkDdul#}10?o*nB-VaeRe z(k4m+CP^9#r&K-$U$d7`UD-bqzN(0MosB7T%zi*y?C-{Wyo=wOh`WWDtN1s&9pUM^ zER+YiVNib@gv`g7`oQ1s4&A4ld!b&9BW1(t_jr(O>T?yQWS@DRrI=8qcj0ZB^T!hB<8&ls2NE^BWRi!P-& zI$Jb#77sSsSKbm6w=(Z!U28(5v^)xThlLfL^V@XFj_Q!$ctkTgs$j3Z& z-|QH7Io}|H92uks1T{DnA_U5= zc?E=8fmvSq+2QYjZ#!T+4)`k3%qKmKC|8*d|BGEpan4ZMXUpdaKK8eeBE`QapnTSm z*2pz{Wf}Y%vx!h*DmkYm&+$rDmiudWOP)2Ewq7S6UZHoY3TwCcAr6oC(EKE1B?|4` zd@7VG46NlM+7=034UUl5vzhL@@|#}UzCLQU788Jy$E`(_2I8a1efW}aLOLg=SMLy{ zw5pP&SjXI&`r?q=Yhc52*y&dIkX8ay4ozmC{Xl+YP4WBF6j!n>pV-%v5em0#>q1uu zx&1HxW1|G4C2h0-=QYWmuLlC8oE$r6{0nXWIdpSrvJK9e9g*9jKm7Y=McouYKE3g> z!VfU23_f>G-&@fO;nt-2%yhVWWWO(sGUH8|c+ zDr-obRhXUher5k) zfF)nFv+DFym~8E@2m!qCH3n&EcO1G=#gV+29cZQIr>t6$fjd<2sN6&5kak21A1R0K zH>A06k_f}|8YjD#_(+Strx4_J<;zX#?#jVRd_@W;=eIoOY*h^}38uz&5@)-*0S;u9 zmJpN22qMEtfjOF(9;@H?U*`Q%owyz*_^yp}*#TTy9$mTR`kj%sI;ZsZ(5Um`6kvaC zb9sTAe(GhiE?Ev%Kid0dF--E| z=)08$o7{cgudIMR@QlDzV+uqiK*qO2&68%!L-H?54xd&lI`$~?nJ9+rKC{Tiv)13_ z!~c)ql4B!=!l}gCB-78lTU9?WFrdqVgQfV9Sd(zRPA~q#q!|hOs}WGOd+34Exrg z>XQKorEfT}hs!EIeb|@9z*Ti!ptMCKOP*p+a{CnV z{o-SIDY=pB%O`^C+!N$Hbmmab<$Z=Ibc9p5bPDZHrel9P59hlH&4qK%uA@Y?V?lkE zO4(nlas@2(TdmFK3%cL`kZAcsm0zo2m3~>?r;Ya#U6^ApV-%eUz0>I|FjVN_Bx*x8 z@4p``OGxBEK11JXa*6WkPFhxlE679#5kgTl$;g(>_BEy}l}f_RZF`vbEzQqK;cEPr zw2i&i3a-RG*-qt|_4kvna#uP3^S-~3RL_TKbO1w%<}l?YqSK$pn>Eg1|NCnc+`ptV zrAHvzX+S<)#EXt_`2b+*Ol+n_dlki9^S3jIFpTg%w?l1Ty)?^ImBgKUn9}QgYmx-G?F;)tEyQoai`$jfYk^##)g%TpR$EfDP=%O zsZYJ4#{3!Mx7uS}ykG_N%!l0TwM4pP4`b6qI!NRWZ|pZ(as;$|JvFzyIrTvsDl z9YDt)d#>BjBr=o2|2|<8-Q>Hv`UM$#zyu)A6zGKj8+PxU)>=Z4DxYe^hIf89_LZ(P zD`{M!a?*S#)1h2B^B!X%W)GR86|op)+X4{#tL;Xc$6izmQQ?fLqAnP0&4^L>(~cB| zkmB$Z`qs(kPE-GB2Mnc)U1Aub}H&sO;VUND`ID6 z9o}O0BqFA+FPaX zLA7bKJVz^qhni0hE#$rz_sh3g5 zFnarEELl-&qr}-Gx8#f4sgE|<1ZrA`O{G|W9PkFZqfCJ~&}^7Vh)J~eeC3#*uzEZv zr)i?TL2W8>;L*Azz@TIA1pAA_>sA<3pz8oB)qCI?BF5yukeqT?U^f@X&m#NrP-4q( z^f_5B-uRdrwZZ#~qb4eU$B);K*fK>+L8nYirUebpZ5>}*R3fg`?e~q`+XHJ*_A>|; z3vhEgaMjBs@ULC@F?Kq_gw8nv1gEjRbGToZWY*`t#_aS$fifS9Ljbby{x`d`dn#$^ zoBT*Goc4s}2v@kPazN9yxgTKia)mr|jPWPPJvP6JdsJ)V?zGdL)d&_W*0I!HINMUX%i;`Bew-vJjFVZtRlmiI2FRe0!Wk{8wLo3w+!Z8yRHLW=#w%6hE~td(WxL2OIw*_;G5cR-AFVdA3h$ z{6oUEqLz*OxhSD}^DzFv4l`0D7Ne3H3Zz1{0RbynM!1R&#lo9#9nf*>r8Mj5{O}wo z1sQR^u2lpd2KR?$#FV?qg#KI#WQ;S5>N;YIKJ0L&^%8H4SG$s4(Tnf2CO&4aXi(Y0 zQCI*p;252)emv9h2i$s8bHT0iYgd;MxBWYW+#^XsU);-^uaq8EBt4b5Nk1vUG)J1I z?KI9ew-nenI#~XPzf6u_Jz`+PDqQ0!C2?=->}#H~1iqr9R%PKy32)H)r%ECK2Z*%9 zq>^mi+W#m3u;s9oSk_<@ZBH2L-ivV- z;{$G}8@tYu5Xux;t!)%Sa? z_xNZj)HD0N`6FieURtP|;s{f)!^oG$O0)0@Dc5?fKhV*d@#>P<~ zF?yq9Eb|qqPc47|V$s*{&q#e7|03)+)P+A;UM?l`1>4e0bFiqfc76j=&W&!(HIykf zUm2ZaF(M5j^7LKVHZf;XPl+cLTzweXy_8bEYaZG4_1S$XCYPiHjL55F)tkLF*Qfx4 zcM%@F@m)hOW^sd|dHvD#r&DvsH`vqK^b|88v#Ukiqfc*9D#`CRV=RXb#jq{>+*a*M^i@xj5PIS_ zxTk#V`pwBDY0D4Ig(9C2g8Gr|<253ak9ISROq7e&$<5tSi2*qKpyq-LY7;fX`2d_w z>6iMJpQT*peF!95{Q*QkD&g`yC-FcfAg``O^)Y+HTuh#JoW5Jg)~EAvN!bx2 zq>KYp%^ekXi}O)xIwND|r8?QP*v6^zE^ua1-X8mb;PomNzokCQu}hCdH$9#hJ3*G> zR)U*NDA=9zxbqh@z+H?QQho%4b!f&y*R|bi?&%b)d=43H7U)%K#se-{={iaxa?6O(YlV06| zH@F>oV1%gk6k~dH!FrmGvNufnq%R=kvTXWjr%}43TK&iS4CZ4z+Tz;>f#$u25>E6@E)zQm)J$}1&kqKsFi}z zJk1t-+oeiRGzit#B}(ttKb?`bTpq*f;VZ$?)O(41Tpi;{ z;PKo<39;(@0T?Vs$m}d@`|snZa$oTk?t|Hix{m3aA7A*M2B^|#Q3gtkzGL8upI1HU z;p}Dvf>p;Yl`AeFggdZ#($*frxL3?>zc5O+X#*)dr1{JB@#t)3Du7$9qRS-ls}*wR*FbcDMfwN;_ZeT z0+cP_jEv<)c%6#N!=x~bqPH??Pa25^Qpa#hE%$z?xdyK0>;?hkZUw->J;q*9aQGls2hdh3$u#Gl|wArkX1ByGNc(qaF)L$q~R%@{+%XQpd_{J5_ws ziIic+_f79W`@M^Ko%3GCl*h|mG==j+wkda&>ogD!H`gr0l~x3mLy9(eODjH%s3kdR zI|l2sw(qsOl6n}1Z?&{CiDMk^n0LKCW|6!=u&lIR#%1=>erE`@X7-hrNanw7Nt52| z7ZYnmc4T?=_n+eskj}jSsm9<@++BDvfMtCgTw(lNMiSTIW&4+0FV3@-)mS?5rQj(? z>lBV*9oD0y-u07V-*a&GeedcUk>$A3tOHd_k4013!dxlSm*mfAot~7nkkf_{2|31` z`O{Y>u41(Tbq59LeP2?R&ucNy`!KxFgmNr--j6 zh1H;Q0C@=Z#)@*UQH?6omfQRJ6pa|YQm27h5f**rQh+9OG;RRb{!Hr*o29GcSV`6J z4W`^P-MZncrJQAIVL{&cu=jR>^i#cg&deUo#=rm5O`*~yQ_ zdd^q2N+#beo8`u{Sa$c(w?P)hC4;S=gb_v8zg=$+E5>V8UGtKa23dZ4IOe3E>$jY* z)~!G-ikJxo#-0JiO0z8++Qap8(E-?!s&Z?IM@vhmq(1ooncVS1g7@<;7?HY@KL@nY zba4l2dgWb3WZXgB6?I7L3^TB%o?iQ_g~Cy=?5~;0n+i}bATI<#FMk^ zp?)Je?C?eJY86pq!!RzHHo!}GX8ARa0wp9ie0tjX`7QuKyr@EaxNoN1L2;nBiujH= zi>u+)5C>O16A@K@Xi0(5e)hAj9ADuLJDGM8%Ae;l{?_edv!=BN{ib}kdQi;;3bq=) z`7o8LZUcAB|-J@|WM2 zT6gaOSnEhS7rU;cExiStfXqo3p5r~X$y+P%M?%P(XQ1$7U@p`vG@txbwRilWQ`Lpf zX_aMm^!Cw!`{S79t!g=zU$ zB~$F}U;LQhc=L_}pkGUaEaIKPjM2YJFzTG+EU93J`LyL$678^kH}x32qt2@y68{}a zcssREzq^KD{2XgcuwYPm*!Dw9qCai%(yE636(_(jAmQ75&%)&*@p1CUbOZFY(NiCX z`r{&lR8i%5-x=xxyu+P^6}So2r{}D)&gE#{=yzORc#|4YpP3G@wB`p=TcbFFQRBQU z$>ddTHjZmS#n9!)cV0`Q4x8uW{1=`uqQAE9KIj6+O4=Nc3#{*gsHQmIF3Y`AD@)VS zNRN5X$t@0d%fG!A4iqudt<3-6wOcu>r|db9uA@=ul9i}zBsjjb(0ggJVX-lS1mx?{ zK9>F~(0=?=%Tps(K=c}1F(P_zH%4&RIXMb$U$>8uxg(2`0oehUpL84k6}xJ1p*Zt= zMEeBs2GoI0XYwq|ZyKc)L^f(jSf-)Oc>cI-^ibErsvYlDk<+kw_$iP30>u+eX0zhk zZLW)RQ}pNDfFxYG!$zhk5_&hvtLv?*bYzV#wHM`w?2u8oYsuFH56Mn|TBbJB%& zXCRbKN!AXAW{?alP%nlnx5c6%B+REXPFW09eys609mAQw>o$UqckLZA@gf};GRz?$I1358616;sCE z3XIj!mc0!i$uCXOKrMvW=CL}YS&U+2-sZDTaL$8$&={riY!oa{=`ojvP5v6p(rkP# zKSyJDY^-YQdd-!;D1Gl$( zQT{W$X*#C1R$z*&{a+AGKvj$q4uQOI&efXzMh2s-dBP#r&)k2UU2`*}ipANE^~5q` zZ=c!8*CY}0jSiMW^p&Fc`HEm+5|Xhln$KrwE+p`K055mAxBpJv)6u1s%Qt(@Y@zat zW4}YL0`b6`T--oy0k*^(;F|#qu|)7KRhz6mSqtdoI7qyEFJr&*T0yfyvk$kb(dTF8 z{_V%gpNHJaM^+v<^^#*36|vRL z^OO$KSIm)))-QT7sDCqi-f(Z(vpLq}>m~?!$2PYpfm#c?RKExD&Mn1DW#1zUs_Qg3 z=TAv;LLG@(RvfIH0D68u1W8!m`<_#F{?fALaDv$vbacm25LA>BOz~-Iv)>3IDhwM( zfsbSrT;6`PL6T3+EeP++)if853L+6Gwk?u_NP1|4i8>bkSo4}|W$B`k@sx$a+!9%Q z%bJ{;(}Shsdhkm4Aw;Y-I)RM0qZA&09qC_x*d$ zy2)M&Cc%+6*0k!cD{IpJoBt;T=H+FgfXa$k32rh?T2pjg#q3r=U+KZJHABs za`emKIfnoD-5acv?;ey-FS(>q>oPitHMpADA6&UdLi?3gQfrK4#ewS@*R)D*H%(`Y z8cYX<(mR>(*q1s@$5Hcvso6Ggs`f8o`Mw#FUnvq3>-?dYzL1c3wc9A@u{=6r+S>!28)PBSgsD4vROPE%+$LI&R z3DJi~u{Nqtw`r$@2>hT+OBjn|(t+Basdz#cD_@>AHp}}7cZFKj=3rNDh7(xKk9aIQ zxEwYn!8&~&&zhq~_PQM^=brWIH*tr#MP4U2%Lj=)j&IJCoeyarlcl;Ka^hdw>LJr) zZr<&7J9&!A_wn zHznahyy;HT-UcjDFq4r0{?mEr1?qkX4zOpY*>^_gXL4)B;byrx&YNU~F^l>-6f6{_ zce^n>b#;dl!nSaK{BA$NwLA3!y?waUXNR4a={+ zECrdF3eWkJ=D4ZVdTiKFq9E$dw?0o~QF9;TKONd{;&-2GJ74S89Ky1&7J*F9JyEik zm9Z)=L|KcTjh+gSagXD{f?Qm5T$1&zG8i3OuOBQUUgY!Lx8aE;dXI$^@7EQJ;+pWl zip}kB-b1z_*cPPjn)YS!VcI|LE>~IVm@W7*0t>oak33*FK&2m1vyjW4Mg6?O7;2*y z;mGUtRA%zjPjp7`th<|?=^`1svgjdt`-bP{I|O67UVao$Wom+_FHl)+BL)0urvH1QdDH~RI# zLH4j9#VS^5ax_{QU)1c?cAJyzaA3_PTzYQ%q(|m#MTMtPl zY06>1Sz3Ed;9$>Kq|^ef@XpHjPxLXCTI65z7SyS~ae$G+O>73NqZY!?3K zrt{_iq$G7x4!aVdORyx!&=dC;$k5<{(T+)qeMd%$HLTVNCnG$^F|N8S%hQ^t9y~W= ziRgxgi%o&wH{BYV30GLG-W8ko?8liNbH6+7BFxrd_Wy>j2|_Ne%2%`8l+5UcOj2eMaq6 ziCQk4VJi6btv{9lj);LKC`JXJK*1`ynAv90;FY4)==96*TM=^Lml8oL9bKCK$+`O0 z=KKO~9n2>+mgj?)_^b6X6I@E8_G}N>eET7e4oO!WoI^~ z@|Y~**Jy?-yB^v=1`}3lyzceF46&TiXfG6|Qp{Q#sf~7lLXdb7o(Y>~ge0Rqs$RIE z`MNQ2NFQyfvyWT??uwaib>uAO?|ED;ErmA9)NM$>Qtv9p8O@TjN1bJQT7x;aNP8iQ zZECgKE{Mwlr{1tUJE%LeT6tAF>?g3=m+x&Yw0^Hief|vXX&<$q3ru`jLZ35bu_eZD+(>e5N2zM)x3Y%WrmS90~*p8&Slknif)ESp}Xg7@F zELe>fy>o6tHAB$Jq>igN7-i3@_$7CksK@f6%DR$89L&`q{@`I;O>m}1jjQRb^^e9? z>h~_IjOJecoL-3bz|7c^^O0&MO$nyS{Zz#+;VK5&w}y#?8L|{QxV!#l3d+M6@{(&$ z8oM06eylC3p)6af*SSq$JD#Wgrs`+SS~^tb{FZw7_Q?5J4^ey2?;df2`gT}%u#5WO z(zLE2wN(MeoRL#9*9c+SlFEv)9iQ+?@VWyiwAyX^ZU)}s-5uh=bBu#?kGrK2Fpds)EiW@&7 zfD2BB{tGkatwUpsO6~>;K9Sy=vxWDaus3B3bpR%6t^r(orCeXup7%27;ML+NGv}cT zrFVyhIIvSikmtO5`wq8X{zdIC_DbU8j1{Dm@RuwbU1QlAq@Kn010OI3$-t7t`#hFs0wGpNC7e`w1s{K^3g^I!~40hpr8Xt9n8`)0h&7yAI^ zKB&Ha4e%8&Y8&)3I`JRO%oDyEk_XVArc;Ig9|Zj0uAboaPU<4O%d7j(p8(G}?w2Qu zzA0Rv&u)NFhOLCXg6LQXo;*6~(x2%DGa{v|!WcnXwQKtjB}fB+d43Qw})&BIRiTh#(trMn1(FaAYlukg3rdZ+uoc8le zL*mLp7i!Obi{WUW-5^N*_}keU$_JV_&=ATlnj6}~?zuD_oAOGoD*f~Qal3GHG@yL) z^st*onrZ>(?;{=0ZqUjtU!bTM2A$?!tYsnILGI}>n)q=N&-u|~Me30EU31THT513r zRLM6@^X?}s|NX3y`Nq$M&WQJBiKf^*=nU}vaYY5sT7tjcwrKTOCo%d~`qq3 zV?G-Lf>}2>=cPy0I~l~-Mq1e*CyT9%lxmW9mnJ>I%J}QO;|%=q@}kfA!Le+SeEpX| zUe5O5+l4O;@+bS_KOxErHulYWy^}KN16?$oGGA*nQ-c0dn?))DS!94ClC#w2M z^4^w=z3543wV+AVBhR|c7={efhovZKpV;>2(3ZJz#B) zVZh=;?a}$&(?}J8KA#yN>Z9ZbOk^+E<{AOWklsDb+z!)Ew52#Kco{d3F+k@;x_7b* zjqcZcwxy~6g9qe#Lq#y~rf%owfr(2e47e31ffD=TdudNdPHN=ovCc0S*qn9C%wd7*dleM2Jer zkIQo#bMDI#hQ~h_u<({`8^#rMUWTmyTyPat zcmwoI_u9VhKeeU@B+fe|1G+6loVPoVS@Xz0QnxXT6ItRJFa=gB=3b)pqmwKrY-&GR z1H!x=$InfNzRux@KUI}SyRn8li9A2#{sqr$023I{NrnnonpU)Xm4N4l(HHy-AULQ1 z?e3$^ircmK4g=fE75cpvcYJ}FFAdS<gb$mZr6jl zj3cu*pUuc*O0CDrY8{}468b#T%-hn;OTHJlzdan-MD%e!!~_Rk@nBw9{+SmfX63s( zc{c120t0**f*^)A3<)k(i(nekN1-UUpgl^2lUd?r=WF7+!Bx~C&>qINo9i>p<+#FK z7R4SSo~P4>3<{3Zo`fp1WWc~5{RIio`(bCrUgXPRj!^znSN?L*4Zs#U9()hUzb4c< zm!-~%!}q^uIH_{#${s_7@Ext;u1nSp@=Y`@KbL|#pP8;3)eSBsoZU{>2}4mq;g(O( zkFWlx764)^j^xlsgrEozRFd4I_({#S`jzj7v!>`~oAktWtyXu@1eTlIxvF*mdtmEM zduzqh&C&3l#;@VXXd*BxLVazrQf=&ME-82XZA@`SlOIW~X!~K@f zmaul(Xj7fVIoo;`n=YXbD6*2}-+2iSt9tbRLsc}3O5ss0sNc0c{G@B>kkq#Hr;S0k zV^+5K;m&LZAT!{9po#SG|5%d$gIASiP`}Pe0pW^q5b%$Iu;*D+-dIS;nWgQ{qx}q1 z+ZXw_4ZOPJ48p<{CU0$zJbc^7UOmY!9GbfeXcak69|7S?$Z=$6zozNvloj?Iy&TN- z@K)US{dF$7I{SKJyi)s7qjSp{@IZlZ#lcy2Z8ed_i^Xjg;L#G>owQb%mM;uw`ffC@ zag5w_#kB&F-#+F5{4ylP3*&kns(%ptWwq=dbplA}Px0N$SBu-t)s<*fHb@?ra7#{F zC7%i^?8|5L8*d}A+$ViKZ`^>BFaH0DQ*2IG<1*wYx!cro03pg?-f&EnsAT5K>;(k~ ztHX?boLaYhb+X;rEp;PAV8ny6#7jsnx#sTD)iQNQRM1YtZfM8@6Mhv?-<>N+UW4%f zQs;H=u#70kzXC%hXkIHV+pgiOVN7fI))lAKT$d%H(xPuFNcnnkdHc|3^bXIjZl>|g z8$#YYpwn-wo68pK1)*q8HO)h5)>s;qW+M-P)W8WiCBjg5%{D=jsBOte`V(+MgiC^; z9ZG2ZT#iSkjgzHqE;U51WzNjJ94U{s?BWy{awO6;fl|ak<=}Ls_(3cFg`c?RukeSg zvZqHpuq-7Ca5=90lGE{l`uU(Ja4D^|s4%@BSzG52;vaHc1pKc~_Zu>|>10+Esuxz- znkE0VYX$(l9@#EW3{*oyZ1+d5+H;#{?@+Z3o+Am7ppl?!&vKY z+UGD^(zHc;;7*eN;j?5H5xc~2Z4gzyF( z0CmmmRPX^0;*2%Rzf>7|>+}|A^>`UD$$9536@&#$D#MX&S7w>X^Rd7n((G`K2>wI& zPv*bDZag4!-Vq&8Q0m?CH~zx_lu6-vt9IfxbU%T$Kg;%Y9JUPX-^UzZ~R!~wUst*Q@gQe@p z==7gygYo-T-`#f}Z*1;{6dP)Mu&JM<0LS>5DG9dqkkoM%Bn14rW*M!7oa%Qn0}bS5TYYJF42f8mb}Gsz^P0 zp?|gaB6O`zzq@LGuF|vM$%oNa*Ze?N+Q41qXU|GiUlUV0BnKPBoD!c97VIL7qfb3u zBqT!&Ixgv5PdfO%*f521BfXjI7UTG6Ri8Zrwuxl$KXOPmG~04Upe=IkI{6oz=DA#L z-hy@&5;ntS!+vgEL-}g9VLk7ueYgiJx7u>4TZmb)4$6d`KE%acFyL;m9D3)kY1hzy z@Z=rz%L9d%d+UCHm{N%gXIXHo73~(#0FrrNj3b$F8 zE{-QAApxHO653k~L4RI82PZTI9*9fJ1fI|qn=iyTLYJfOctk=%!o`pA4qR{?u--Il zw9ow+cu1|T6zKH%3g#>dXA~bGxM!oPiYBEMx%-I_0tls2=0mr(9|k5JgyqNBEXMA| z4BXLqkWY7?i8;swJ*d#=3yx_L(3n>N@W$hJvL{0B?|wf8+A2MNG@u+1-+lyHgj~-q z^%ai+od8e10=lZTb5jEG4No(Iae7GtEjDhR72^?u2@y}~Y3uWhXrU&dJuvRi&B-8y z+x`*W;2E={i*@TyR_QWNRnM*Dg7O@rT>6fTf}My4I-l>GMf2rBJ8-)##ww~8H3Wo$ zcYXZ}p^m2ha?YjGDm`$TE*i_}wZz6P@4W;-4xlb<(ppzOhWCDKTTzYER!_wK%V6qcK!*v>}v2o7%M%6~vth zlw*mHg6NUm;XQ?1a})((`}9++Y=o0`3t4IwzH6+X&%Khbas zv6LID!xy=GyUtPg^BVdh*Xk#P!y*oP=AD077ipD@UH~^VTgl&aeG|JVWARr{^6MNx z--DF0U~nfZ+xYOlBe`1cKeKf2z^jh6l;PT_`rrxbdy?iBm>6t#L@@F?&qdxUCOE+e z*4?Q=4oqx~gX0G^w~Xl1V;!en%pNQm}vh+hD%Hw(c0Ex%kx$B7>*hZTbD{9t*ReqdS{;Hw-Fqn^8Uy0mtu+ zF#QB+%hAVm7S_db_mIf38U5AJjrXzQey(fjV-)ut{;jHo0+(SXHVt=o%JF(`PQOcD zBef`^Gzs}lE#z!*x>K3?PX}WLAAjhguWN) z0 zVJ@jP0HZb2K9&S9( z5@7D-GMDXNcT;ZCLeh$@Gy$J?S(hijvQ;gVxEy|}^!*QAv`jjFsKwqlRbwaL@vRZo z8iVQ{w~>z(Lt1%4wH9*qLc5@2<1RnN*SV~m&pP#IMUomY35U0Flda$th-69Im9{`V zI{g&`U+CHP7;Wcq_T>xJLa*r_a%rHz)2q#ElN_h#3^y>t+XDWao2+J z^|;)h($rPKmYs#1p|wEsPDdHrjV+=_9^Y?(X*Be|Rp(4xIB0*zox#^}{hO?U!EpQ1 zsko{UmGOVIcU@6UZQVKvO{5*9N(mB-C|!_F00jh$fPjEBK@B2ZdWS@gf+)m*1_1?> zCL%#YCkjE1R4LL!jZ}fq350$(|NS5SG48m}_vNlJc-R@)J9E$Vt#5vFuEkorosvvP ztD~8I%QKI!xOIA)7})gp3UG0)Y+w0pBqHO|xh>1-eQ5s+?{8i3eD%t^fSD9{tk2S6 z?m089+V7th0AR&TjO#{90aW_7!RbhQRk3gQ0vS$z)i->FDnwp#^37{&u zayA{3fBbZns;E3MXPYQD6MwjnjJHm2pK0BJC=Oej`<_=4+mH0!lA&M& z)Q)DkpQJ+8b+qgc6a4Hd9>=y-R$DBt^tFyqyQ}XS9G_MAHOX@Sj?t^G&Ke$t@9AWQ zt*D@8FGBs42H!@e43&QOVwK`&q;)FruTF(}tw~SD%JNrpOd-+VX6w@K==p~>VI^D)%EH?WTuvYUb{b#A$OZ;KW(t^X zM>_|`ZH;n-@se9zSf2as3{^Fi2NtXG2zQT*j4?bqOSm;Yj4$z#2QisRlj2F!vD1v( zud~;FW;~JXw>i|*Q6C-CeOWAfU6~QyDQg=so+iNYoXOm8+snFTcXBD)*l{{>luFt2 zH;mk)B>}-O3XoP}eV}DMM<541xBigx z#32&$nn!Lj0(xO&JOGHC;Nu6F2OgZJijvhoR2X2UT5UBoPYat#agkN@5jR>Lo1aai z3lJCLA-QPHpE=16j^NSDh(XK#XbV6^q1^M&C=kms7b&+_&sErh#ctG!o%~7Z%#}qB zGNE}O5_u`T=tPAg8z6A={Q7tS7Tw{bs5F@UJ&aW&+o$v*>GaU^GVm?*+J!{Uxd=Ux zuzXS*K>HMX4{WuG%caJv_ePN+cjF4ajc|LP%~Uy*e&dol6>@tD95XW(apeRMAnNo1 zZBeS(%-v8OPkXQ#k;D4{grAhlc?5S_R1CeJ@C0a03vFP(OKO5!iauVOO$|5g)Gt-o zhc~}}l`3ta`&Z6dg`KWt%|y)3t6XD0)>}tdcRk|q)}r*Co4q%-cPg94`x8mP=Dn3! zQpq`Y=nJJb1ZPLR2i-X*(ZKQWLZByHqWH+28N0+dR<4Drn1kJp#wT2vzijJAL?Z2E zmuo_nhIf|`YE_5y?XAT@zxD=#!A9lWd!s79?Tcp1N92o0<5CCJN`y~lWME6q#r{mS z840I|k*jESzH@yq4ys}@qmE(>R!Tk&4+W75?)0)`s{7ReKYzJqcXzkLk**z!Doxvh5&Vg;8?=%Kvs`U$G_^wn<#QdnLVB1yqt_wTJx$F}ACqZff1htQ8 zuYJlV%{~74jzKhVCfYv1E!0OfE9hrt9GiHB=jNX#k78R&>gtA1MKPgtZx%Q{jLY@G zICqq1?>TK0m0Wdj?U4M%xKPTj^!C>|q@v9?&4;dIAAjYFMh|?N{F|N6(^k$U&+XjE zogY0$9d^u`JUQjep2gC4cSlHBHCr_jN8wO?kNMUT^ZONdDeu`wL<47fehA^s|Mbqz zxfM0x%wi|%gVyrN`T0v7&4+_MbXrev@5b=&4a?Db)Gyl7SpD7kNlWeFP`~$p#NLF@ z4N3CXhzdh=SoSkuRVt6zUeEjp+0Iq*x~ATpu3Ba0J|L&}*1k+9=zd4?FQ`ARZc=U} zRV@1l;}l))cXQpjAX7j!MyCUc(`Ah*_9>0}GvKswNr&%J^1sF6>E;yOKcm0Ic5(}g z#s~I3DUw{};+@wt{#0DZt~ofp6EE|`+Us%*Ml(!!&!R-O%YCj^Y^R~|Hzlq5g~Q^2 zhvBx(MMm{lYkZ7fou37FWJMOHr0-X*`CouyhG|b;AeI?cYSF#_hbHu%iXKQy5^jO! z>(Pf_wvHQxoVLu-EBV>J%>5st(DujTO4JLV(&zo~CxY{7fzQb+9d}e|ah5enTDCoH z7gZ!5Bv&WAd^MYZta*^ksPsq<+X4Q0zFs z1J(f-T*-RYZh%&53XMUsukN@OV{l%?)v#QvUDSqu&?#5BibfHA|t zkMI#XrC!-ZK-Tp#lY4-lQs;q#7gkkARZ|X_FufRX{-T2`;`13IN=YBpsz4q?xkPn= z#(73L_RkTgnL2hexSUw?$d+VwvIHhKvqBTBk?eiA%M4WQ`+=o=ujuyA0E^Rlfq}O~ z`tr)h4^;0PvL{s3ob6r9Yrii18NxWPlqUCP1#;b24L&p8k`jq71xsJW)7YI(M5)jj zq8+<+D#SdOvXORctcADQz#_Sk{Eqxqn;{0E^%$GDrNxP4%}M#W2YL{1)^Y1v1S{j7 z?8f)Bje$0~duSPICH`$8)Xz60@ZK}hk!3A(_-Ya`yu&CNF#d^7Ee--GIMaQ7kNz*L@3fnyfV(0M+N%=_UA}pj^ z1H|fDR9m241qWtUwQj zWCcx};mG&!*zm)28ROsJBKDtIkwS6equ~Zc9Wq2Ra7JS5SWz=QKZL}zVve{?NrzZt z7h%YCeK>{xH9qZ{E01evP65Tug}Ae%ijw^1GQUN=KNtxr1$m)WgTJmV>l~=Pc)Xy~ zUEdd*B}bdfJaD#OAk7cP6}XO>2v&-=evfr4L)y%*Io{sx@tVnR9>A5*>z;bcSZpj- zR#t3Z6y5ZC1elBm3J_Zehm&C)B^HRo!uwTvQ2T&0t74Ro=SVL~^y);;(8EkotrnQ< zw5?NmY*8n|SQ%YbnY%41UEnGZ))+s^PGh|euHz1pNl0rt|04SG(CqNEHjIcmt0bVo z!XQW7p0<$t7E*FVZ{yy?N$m;zev7K-r*VAcVSp%E8>E)mzKQgR{h;}aW-f9W-@|(+ z`cc2@VxKMg_=pZPY}tw&sZv>p-*(K>gdBGE`unEvE0O@o0iO1$7J6NlwCBJ|VL{2_ z#aNwqqpa?^b#_l9ZzjbJ3E zb*sA*oJH#{lg;fBN-l22TZ&nCC}1U!OEWmQ0ot$Jz0G97pO+CiAK=ovWi_OmLJQs# zq9(Sa1f%NJMsG#DCDE@J=6mQeVSbZu%PSo9O>Tj5-j!EISt|jFg2t-wYS_ZsljTn? zhK3Q`fh!r}s`o1)x8{~pYf&H^^bB!YmzoZk`|b}p zdSQF4lABY^7SqkuO82G77S`Bo*=FGxetYGF5~e*}vLp&=zRbS=Snj1?&E`LIryixh z<#L)`jx!kS>3#jL;=uTNdw5lbpT%va{iqCVtu#v9C*2P?wpH&%;bdIl&Sfu0uX};s zIuBoWt%n?C*qN&}3o@zi$Yt9-sr%R(V#T>;KR$dH?A$avWJ2}Gp6U0wv^1>sa~9mF zooUeFeNky>toc>`XTfq~C&M;hRoO$WC%xQk3M{sU_%{HHxw`Mk%gh1iP;mg1b>T#UD@c#pId8u zJKEE2Q|`ue5Xdz2@PX8iw(g3AON9WnYF4G1slO1k!Y-mWq>zU^w*>8#HR)kSr}ri} zM>$8Gv_8;-s2k)899)l?V1hV|tZ7<2S=8)>cFX4g;ovsp2jeH_vYDG8nNmmsD*=h{ z4aR1ffCQ*}omJ929L_CUeXcg|y#De?0z`*&9yC@ZhzsGoux5jU)5()9DXG@j_Cvmq zg*937HfF^bFUIY}tixx&9!Mnym?h0~=L-ZvFF02w$Z4``NH9E6tzBqYpaW0dcyAI& z5_W>GKco=e-wJtScbgGcG#e7k<`M&wKCC3#ZB4Wckm=014TEvXO zmT(--=!8wKqGr8wnOXskDAP2t&7Qko_41*yPiSXN6+zpEcsW|~7n0S&+Q+`BE}Z;E zHH6`TYL$>e>N-2HS^?l?kACpXq{FhYKeVrzmzE0yPwoH2J9*(1KE2SA72pb$&(q(y^4SkIeB)d@kx zeN#uQf?y69($m39<%hypE=N-|oX+qfUq-nvMrjexDu|0wyz-%b3J1eVPrS|cNI-8T z%28Awdi1bG{bTH+(qYV^jlCRcw&C&ELwA8_!5D&md7om!2gm^S-`+%3U%v-SojL+S znLfem?};Xem@nnaduOS+WIh}`m2~&h^2-RP?1+6A6ej8{MJP$-yDc0B8v!CdY>ZH@ z+)@uRHpWMlygJuxe6}#ipKCkyE&Ij@YU5LHOG;?y%Gm)uSQ zyg2ApK$JZ?U-B+md36N`m+QC)l z)_Pqo3;4zak;NXx`C7<6;Le{6L&ItLT6;IC@;(snKv3*EPpveIO^K5nBR5;m&yrj75*&8)0#_*RQ zwl@a_%KPEDXLWcO_8u%LF=O@yc7QuMH4?r1Uu(mVA;7-@CzxadV-q&Ee3Nw78RohVn0Ze4shX&Mx7Qmbvu$lqxSy})9NhWT#WU%d3ycqxcZro)1a7)OT87(2lCu zXIZ96%u^tuxE{(4)#>zy*zGJ-Li|A!)f#!UedeK(GrzYn+~Z$y6c+2Na05`oQ6?q0})d z(|MM)lqz>nqDXSxJoKn5S?}E1*hn<~c(SHxf1gs^_O13sNJN|31>jKM8%14F+^-*g zgl7j-XV3zRW*Tshbp%`>3d>uNOjAV6CF1k}nFvrVIuOu7l3okX`=+=68Tq0^2y2Z^ z?N)sn^zt`Q2VK-2>FSs&MXcvb#%ix3)m_$(+AQrFlzL!8JH2Ui* z@*Yj{G@OHUqzx5=J2QO)74}|rMX20(s;}m!L!6E#pQ0ADq+ruJ`G*0V9_8{k0n4Jo zb?9OK08X`F7E^o@m6hiGAP^_Nso~|D>x~1!mD%%w1PM;gukMFSSp2(B^0OnUjqQ|d zn$u?B(}Yc7jssc60^JQ%m$`l!_s}S9dGy>zcV?L-A1iFOv}0PNgzFttD|ukptZGNV zn)VS|zj+~)FFeC@Yt@eL*_9Aa_A z>rv{V`!Oa13sndB=-|~S`QH76!NQ#nz3vQNE}trV-7zCX_ECzmol~F_%$pLXj zV+QpEs>|iAuCHc}usJkz09gEg4K*j7tsw{2Wk{9lJ9M!RPdgh``T zSP7O{$l%`uBf~sJAa}&+f7J^kng8Qo+`MRw)#G||fAzj$z%@2D?egxud!dcB;n|m9vbGemDVTau@zLAcfBWO$ zilJ10@!_~SscXeW*V%lNy<_(D)tuNz`D;^_>>EEDkcF5W2EVfX67%Q9i3b%ow{t>Sj-U+ZtBn&Dl0{5< z7;kKBZx%yG>EJBsu70(rHZ78T8c4YQ+kyEAfTj(TM=O%}C;nvp+MkU0sI6T1b9ufV(I#TtjAn9P$gZ!27As6V!>_oX59)=zDLc7BF$xa(0ipHXk?WAz$txg3YL%W|t6wjqPJ zin_kO_u8xfGv6}%9FrlDS|U3>d{UkX9h;lRyp}S8P6g0HImZ+jCiGTEaOSO|#OL;I z^{psriYA{{{`=RZ!aI|fZ>rj2f0v}b=VFzq+)(;gO(KueD!YPL3jDM zl+AwAAwD0f$MTi+YpI8$M@{R~hQw36l&3&8nedWw<)|&UpWj$}l-=8N*!KpP?!DxW zd9&~q(~Y{G{T?yh!`;Ec!NPnzvDpJ^VpZ3KGFGmifaJEB4x*NxYHe6agLZ*!Bn#hYPyQ&l*$Yo=F#}z z$ic@;F$GvYp}aSU6g4=n=I&}NQAKtiXA@wH8*?1KL`RXlO*B0-?%L6x(bhQ%hiqnU z;c54P+JU&e@<$JYW1V^rweh`Pzf$=hQkxR~-=Vt4Ja{Nn-8!%#Sx1eoSRcSFDlL2{ zekM&yC@r@jhToH{&_U3arZc3;H(YH{t-u4_jqseX%&hf0)X!GEz$`y0Bt!=&_L>6( zmzVi--TsFo;*fZ!5PZ*Iu#Bq$I1cB*PofjmI*w&hX&uiQ+_jY8ukyf#0mFWcj^vBURvIy(c;NYzi;JDl2t3Kw(((Fn0 zlbcHg>OFw!g;BEBL@E!f-k)0H72=)01jr9ui1N^h{dHTcdpse()gxqv3ZeU`({lQz zfHa{OJprK?- zRL%NI%<|ukh}&I`#py4BEJXkZzt=kOmtUQ7dkaCt+Ay#5xL)W{*ypY*RQp6_@^whY? z7Sl0iX>D;#rm&G$5u<YVs*FA3u_~ zHyAqiXB$dsh}BxSeI)YGd(U}4&QVzonfY4CSH&+0)j!r`>W4) z`x~=oi{0O@{oS=*xph6Qe^WDe5Ukr_jHvw0o3Ps=SRlDVgmNc9&FG|tXxfT>eLE^HqfdIxn?gQHY*R}t*`u@7}=n?Pz%Ias$z)B!q-uaWppxF73oh0Riqc1^-YL0(@ zEED^??(Vf`B63tsp5K(jeX4Ez&LB-QAr^Nq2V+-CgtE@%O&#`v*SP zVlmDxr#^m;y5R z=Z35o0RI2nN>s%b4h~Zr_5+{KpJxo-B(M`wwv)FsuyfS5(T8(%bfh!3Ftydyw$i7w zv@uLND-ddu{NquedOL<0khoZ5zJ zWdjw}*n|c>W0gbG54rUl7(q>5ZvyJm*PaESRvs-Zlb+d{J;BArkG?wNIpeTBMN5lLPfy?IcvO01b*kKG_g+?3w!XgpcuLK3hnx7{ z`eZ+S5R!fAjwGABLYcKRhn25n>pB{bd@RtVm>$J<<MvhH;>e8 zaj}o3(?~q3`0)d-xuqpAJRDND?6DrozLYK${Hlv6{l8;t^z7r@sx1~1cgFKfwMaQ_ zzJ!ndx2&<;iLh+`u(-Im%bS}sNLoP&Fi(}ogNuNmAgBHA%gw%+EN~YmXJT|lR2z^9v@rLX*LI>q>uoMRGZJoF15JI7s%yMh0$_yCL}N$M#jead3nJf zwL$rCKPWgQ_P_l1puS%s&;0{JLnrwh9UMG%9kvFOdZ^Oe1YBGiYxfr#Z09DwJ>H*5 ze=AWH0(T;v6SlHq=F)0SsL`l^{m;b$us=nfyKQW3ot_Qzn`-epc^iM0Oy-C%9?yke+1Tj(8$oV7mi@e< zqGErh!uw)x+ID}2k&xA-vp_!2%G$bjyc;~w&R7oW?CdNY8ZpPOSG1}ttE<0D)ap1K z4~dD`%vQi^rC-j2N8O&Qp#eTLGc!|ey)HagYksFN{r;buqbLWyX!JwZZ3WN_G5PGm7Y?L5$Gv-G)p8Z zKK?JBmfP>s&3^m2zkPjc-k5xExVedFXlQ_uVvcgfq9`TbQd8%*SCDX6{Q&#*f|N8I zcWj!+DTCkmgQ^pGN^ zQ={Bn9*lF=n$NSr^~KQ--vNJ7u)d!L_aR{T4o5&hV7EIFh=_zC`jZZ3QCWnTIf@qj z{#fdu%rj9jF)|*W32^_7+OR`)xj(M;b<%Hf~l-~&p^XCoT#DEUK)*r)iyLqaAv z9V}nAeD;18A0N*niw2E}it31G)V&5zC-c&mOwg|!tl=XqEvX7UGjkMJFg6K^q?{af zLqmf!iT8h@R4>Q9_>SMez+j?KF<7<6WHje19`KnjIy!I3MZz{VdZX|O318)>1mn@0 zq%}1(@Sduxsi_s0l!%FnuKe*uojYxEJTg&=cb@2@e`9+kMRlm_(0kiIPR^Z zqqDuxz$_*vM)B@lL`q6%Ljz}QY^?7owS4XXvql_j4V}T_Ab#>?v!1!%UFw4X_3`(| z!NU5~|*Mk}=lb+7bCm=?Et6fQ)z|HLlg^O<-@mef3 zi|Of6SX*1qiI|yvR4i1;a6a2=zS&BuHXh$f(8Y#%HT8Q6F;5@h>85FTc7>=vKsu_e zt?lgT;dgjA4G2I!umwdhMVHlNVr8a67uX7~{>Z;TCIjK_>L^b>Ps+#Fm(gnF)7aP; zK9}7#bKL`r!Ux<}uU;uDD}y9)-g&{y#Dt82v30!Kfkwy@0NnJnpT6z8uCDx(Q52XB zUY5zZu5Yh{JY%9{1aCA`zKSzxIg$SY4y4lx6H@0 z_3iDyz+aC~Pv5e$$E|kw@0~+=7#SHeKzedJ9~DXFb58^t(;Y^V1Zj3n`t%%jFCJ+M zv0)KaRl+p4)8|xD$#Ctnvk6@GyF9W)^0^Z5EMjZdC+laDufj?Bhk|fv;EW~ZLHZvX;)uJA(_xJZ_njGl|lh{RMUoLq<-92u1@(?Cz3qTO4 z)LW5xcz6(V*@>!ooU94eS}vFN{DlP|S*jFBX<3<>@eJBOhjc;mJU^I^`=D6J;Cg8W z7ZMtJa&qFl_6|#}+UWDqQVaa?$w`JSWN3fBE<8H=B`6txK^-%mE+t7wNPruNXC#*< za&T~vNaG_J3CW!-A?y7{uQf>aC@#5kg{OaDkU+0>6g~A>~iC zY`xhEER|jc#o10%O-1EoE6K9bbeirHGsOM+c(w9p$iLNo&2f;rtudXhetz7+Vlojx z>T$gq!5zidmnjs?z`_Dt1&N=Z|Nj17ra%GY6yBchZa@CVYwtKsm-owTewd_T;yF5C z1+YTwa&Gj4=YYqU$;8592>8PGd>uXX{tOc=nYEyx;QqJ+Q`$PGYj}D(ZeT#-85({% zt?5L5goAVMvL`g<;qJzEDSo?^Pl{H5$N4&nVacy%`2r`sH zI{R%nl~+tcB3mT<^<0YJS(RQdb}YS?l#vm&Zk&#~}lZC6Bn_Z5}?jkwjF|UcP zVrZ1&nemX}+8@&Cbou{8rT4+dDcmSyx-Tb-38% z5+(yXZml60_>z{kR7y*j6^Lg=s*RWbmaKAMrk3iMgePk zd;Rtw@E{TOVTb&)rG;1|ohApf!9e@S2*a=m{eKUH8gsf#OPD4*Uu%w9^qwqLOhMu0 z(9lq1J}S&sfuY2lkzR;MyR6SH)}`Oq1D};IRp~eeMx))RBeic*He&NhHxaN&UU|~LEycs<)N&c7D|(F~EYClhPfJV%hpjx7%=@(5yc5kgvh&ag^-}a!#jtYFCgPk?Z%qVz>y1oila;9zdD-c zZM7h|KSoqXO4{7<~dZXf<*ula{KmZVh=y`tkAxXxn z$n5yg_VTF*lte<}FitWRZ9Mn$Y~}F~_jj{mvGO|eCeNYSs&aSkW+-2Lk|6XEiv*oq zL_j=fiZgPbPtb2NQ=vFNLoiI z(aLuIdsLL4rqk(;mV2TD`P1{B;Ez>*N6A)x{*mjPmQo%zyj42__`p9hM?S%Q#| zLsE8@2?_V!fse_1FV>z~uk^uRYAz%lRR~LkZtsj%#gmVT4og8SZZ(K$iDfhTu9DN^ z-_#~A3IvPOZY$)-Gm21u`3>7~r&ecI?{G{XUt^2gfxkaep<-BlanlrMYIVEx!ep8Z z@NtOom7XY)A6R;$(1?f#_h`kI-5i+9ZkoGOh7Z4+nj{@@$|L4h?hH`wa!iozFP7_s z$prk20$uBgo9PVJ2gR|FT&-qgTD6}o4-e~-iS73{<&I@r!o!A}yM;FlZ+uopjs^44 zQ_~dQ(!C2ahtx9GKYou*Qtsx})0~A)%CC|m8 zxGle-iHT+iyG1eQz+YOtrNdE`N;mGxg-dR6kF~t={3>dOoNFS_^=;?xw0T=@ zNFy3t91b0`!<};L(J}AdpXrK=g>N>|#Lp%O+Vg1ngnUt;)Sd>!sqpRTZAjXB-+e+0 z(7(3CncQg-G-B6yB{pb4u&p?Mbo~xKqu9~9@$`)e#7!Ma9pGh)8zIUtBdL!eiQuk} zaS7&Qy<>P-vHPj(tukTz0zHM0>FikIKI^_A(F)hq)^$$FVmPj(t#jco@sDK$&vm_h zF^{9iCMhlJ_tqhETtU)_o&uv1ziVC^4CfX3Bxq_SM6!6=J(TxKFTT#Sv3XGdk12=r!tPS2Tsr zOwQbgA2S+gEcO@MWqLofCXm%~$~8(W4Em>dsER=`$z+(*Y4go=R4McNG1~3KzM#@o zsd9qy3w)BlziE(Eu$z6P6uD1Sf`_db9N(~U#(HK!H!rx#bS*80Gidyk!RIUS-yP8A z;6H`husT`JyM`PSd*wyt)s}%Bnsv3Nr*SExu1xcG3VZL1ECT?iTD&9-*=G7A5Hcug zGX<@q_3(tpWYFLW$wr6lqvh8)cO?D@5^E9^qQX+emgUmsDT zWNTCB3jvn$SwdEf4;gc}cT71Wq&3Q})|%41b2%ue0f!uBFZSY`o$U4CQfBQ3EM$Pg zliS=iwVC=7%UQV~HEMHG;C1gz6xSvqJK976l)9+n8;ykU^OhHdv_&VT==vM65p&ZG z;-zw%kPm(Nv{|p`Q>pm?ghol1NMe&*&Y))cS3?5wPBr|G7!(M0qge|^o{TJf;wnG< z^etKaH~T^BXWt;0z0L>62aa+R3>;`KUj454?KZJb9;V4%Xx=e1g8x(5N@?QaK< zn$O%#E=PBYO4QWY(iYXzmE)e!|DGL72vg)jSh0Xe*~V>s#Lyi0!G&lyRAQtU;SzRn zTCHuMC#+Ui>)eOKjIBb{8jI>k_v=^0r*BfP;36E~7VOF3{cvnv(vDoFFlgn$LDfZd z(3%e-RYBT2)q8^TyxN7O zfmB*Zt<}3#6yTJ`{YUO2PBPx7=nRZ3qwl$0?>^GLs%f8_NPMRnWw9|iS6@t~ zK?%Q~@WopD92j`~aCLk!Et5O2K8z=@(LdfB#f4$7>|jGMsGe9sX@FSG%w<<7-NIx`?-(Z2NfW{LQ!YEhBkE zXUG?e+@;Q$k@#tow(gZ%Z~b?Pa^0Vn;X$NtMH1h(UVQN&inB(|ux@|V8vSX@&IHyoo_W78A*=b8fUJ-1&%gZs|5m5NBgUS+29 zD5mYq?kH3hB1!rxS;;PC1X5M0wlp;yv@P$-tYPa2h%UxtYPcB@%iGz zro`%fmN|OU;bQWeVuyE{%Kuy&)5Z#ppZ|IT=lJv|E={^xUC%U5W^_Wml~Hh$s_mRVW}@4Vgos)4c{Uk>kqjFoE``H( z>S5Vx)v+K=Ru|dH+FhKU_o@6awDHAb!X%zqq-tS(udKtL)FihJ|1aJzfqK=ZvF;l5 zo-)#5+mG*PgdjCp4dkROH$OmX>uzSD9KI>}Q1jMFfkErmz1Pr{kDQM-73CW)sQpn6 z7>x}PoaXBD-_1=@sKN~B2CK^y^Ji|hq(GADyF8n(>1U`doCuoU+u~2jwVfPlR=?1f zTH+7`K?^+kjWjz_>pG0|6W!&1JExN%IqO~5lH2CN`>NLo` zmpu|T$jac+Zo1DH!1G75()2@I`3)C~_EPgpo%jk~3OP3(Ii8wIF%{+H%Y7R;tpylOm+Bt*|F(sMPoEPv8J&$-&9V zXg_C2D`>j-t26}s^P2r zicV1Y8xaVo8$gp%Bh%2#)W6_+#BXlVKK>pMJnpCfK=7B~F52s}&a{C;o+N;=QVY?) z%72YyjzZ;Rl9hu2DXgbCa)2cK^yP`3{^wA_^6#MU;A<_#%2fE85dUWub7+g3zAb&M zYCKRZ%=tcW&G!uq?(@8-qEfDUHdW%SQkCv(i;OV^yBl7zY7QkcxBRkpfX>^0hn0kp zkg+IK@#yx)GMGe5c)bvKNdSO_`bJXIm;h|qPOm5_8H}-$d7iUd3S8_m=swfyGm68? zw0fsU@hd7R>xkhC<3A|@#k-07{(=4a_K%k5=MvRKB1vDY%wG%h93Mm?zO=CXqR@yo z+S%Emc-Lzqzs5P1i++Dc?{@R9`6|`G-97<<+=u!JySya=R@_@?ZuB$In_@%Sy%1si zKL+gr!BDC!Iz~LE&?LZs+cQy2ilpBSVn&Y;w|M zkZX^KZJYZ8*xr5NKJ-kSEZK~=3|unHs{uN|K-98eJ3oPbcDB`>8+5WPMk7A}!z;p%EiH9{zWW?e!GW zb(8g=z>Mdl2loNzW(3O4qhRyILk{NanB8yf;98-Nt`-aRzXNfofM&4*2v3}n2U3TwNxK5C$h)9K zik-~PnQCJkIKc9)0~R<>B7upkr=+CB8ITLgEiN^De{j}j7l;%|nV-$oO;a3zHW@2{ zGr=ri=2ISSiZVfCq+kbTL_(C9ixih_)6gbFmw(*T-E(L$*7CEKf{8oQn@(O}*=Om1 zca>i32AtW=dN@BaD(X5|IN%FlnojHOE)C!w&Pt+UW4i(0JX>c;8W9lzvm~Hvm^|*C zUeRlYq@|H|_@QS3R%(t5&~%2gmHIFNBZ6Fn$#zQuP(jGgpJ!OFcb{*MdILd)C`Mce zbliZ`H2~raF^>}#Xy$LvcRGBY<1jG%h1%K}7*H}B4sERb_6B?+tU+&axd40$zh(1@ zaOzn&33vDYY*m3;9i5ij$y3jV3p`Kg1G_&4$)BmISU|0uJzOory6luI6F@;MG}@#7 zkmi4QNkl|+aPop&cqBv6Kkt?^KqQ{w^O@n@<;qc+%2Q!vvLD3@AOBeRRDe1N>R4v6 zii#f_eqUm%X*pxf>UGUJJ^{YAsY(CMC?sKnKhULZGArRL^9NPM?4SBi`x0V07G{WT z$!!Nh243GZhcphXdtU*D&u)1^6p zv)~fD1%#7IlLIXX8=#QIyZB z)7>{$W7^<;#|CJ8w~I+7Wfc`!VCuJT-y&mT8UhjoC^3NChWn(hP7G5bmKX@}@$<(G zfTWbVZ77pmSyk0wzZZMiy_T0jjRF}?%X7Kd^(EGT=ZVjsE>^h*bi(T$f%~U)-C7g? zeaC0xgLWYBYalr{dy~wZ^q}}VKHk)(9mhcF@%x0xn4dWn?;cFAdamrXRO_opQriyh z*@`8K%b6FO{z{BVgxq*SDvM-{ zaU4MBFc3O$##6^y(>2(Qu0*6%IP)!|!dCY{?pLPKzd)zcXeFe>txrm}#g_5TFVBJP#ZImjVi@!Wf%Uk*OHrEw>T$giA_$ILTKYwYBa{<(7T*L?zsbRZ?*sA$YL%F55Fq$I zfL)Y_I}j}SMuSesA_EH-{pD77aloUex&Zn;$lKc+kfAZ{?d@*!fC#Napyr3(SJi&x z;ZbK~V33(Gsj<13Q;Ye(SpcAN^4L2ZEtQ0>$7y+ta5eJe}ts7Y1oHD!RQgYr> z7zy{wPu7l(!?wkM;6_OYG!fG>U$B6MMJYB8P8Kmxqk-}n$^^iS{!F>Hc$LB6OCXsE z<;cB{`JgDr<#<>eLc}h01H{4@kU!pYJ02=XrScSXc6Wc^wY9)SZ*~V&yCyqBh~isn7-8 zsXOX#ttRvxOw8Y6h?!1Bs08hqDQ!CJn(KpBHE3K~3W#hpU9UwPENUxP&!6SoWNwKc zIM>7!Jy#0m^~-z(9s{lqXj11SL2t=H6$C;;v07ai(7!6b|3N2D2*MSfolTLMl@%BiG{#4#)hglQ!UZ(Pj=@26B_$=W9AS__3lxi90fDXk&!4r5 z2US(ov3yx_Ac|(wHo0EWf&I(`#5;@WR0t5(fw~csci0<6)!=r+1bw_KyHvwyxjqpY zw2O0G_VvGiL?H{B0;IrBQz<>a<4pn?x?j3L&e5;xZ@wiuphv#Mm<`q-;J%$c90ue^ z!Ic`X$No7vIbkSutumUT-+93-(h=bjtZmr}PQ*EtLUz#K52E!O`x0pK?4i|5xBt=Ex-Y_vS zNk=}GI|0%hs3GL6tT8b4ceyE#)nEYM&CRVk&>7$gIFlMeVEm6CKQgehPxAp0JUl6h zh}Y%3eQ;3n4!q}?%W(<>h7R^+w+THuq{g=9ZeUS4CK^!#piIx@eh7!PMr9SHzUvi$E#fr?8F!oLR%YYpk&iogI+ zw!;Po!|`M6->YxF&X5#G(XU@!H`XUS*&={|4gZFX?K0zmZ&z8ns-oie#Kg;ykZb-! zRX;QWIkO7hd=Q&XE-rFF`}y##IH07&JWzb(b5-XCsM1zeR_(*X;h^HJ92`gj@eM@f zT$(wUOArYo9oWeIJuyFY=d%JDL(Kecj=0I8c;=1{ z9qjXPjO(5Q)w_4b{fC3nm>3w{6BFkV;ZVxRt6V<-ogni{4i0RqUG=LWVAcm@0XUXr z6rMv>G<0;-60IKqN(va4Wm`Eobb|toii!%byDyLyVVK-}E*gl_MxJ;!wzet_HaV$T zPjAoRm6Vk0WtJn5WecAOA+2sEU$w@pF%3B4H;B`{ApOFSHIC*oy)Ee+eEPK1({fj= zeG_hIflJ;eVyi4eUht>x8PrpOhe&KpDDb3y69f3x(zQyPhr78mNVy;e*FhBpP&}{w z!F~^LuguICBwU@KlQ<*Rs?d1~$it@=Wem;tr~Pn%LoAtz+;Z)gTAG*G6Q5Qq}1S!c}i_2nBTyjJ)KfEJen|bO8}KCq=1DsjLlyh@J2LI)%FnFBpqHUag?+ zG+KX45Bn9KuprgqQ#d**b-LJi2d#y{z<8YE-6|9{`T0DH9zezchNkLjY)K%b^gCg! zrKlB<#)LkD)TM)l&+y~&V7>|rKFP_+*@XeH%>WwCu-Cjn;yG)RN?Mbzi@;Dr6qWR| z@5d{@0giqrJr4@7UUvuqU>XF~wt)VoVcHCEGnfI11QSJIj0x6J9<|=lg@tuFl4G=I zi$&!t6kzv+k*p80FAv!2zHfhgxFg_ovCFvFSzU#12OTGeZSJ**c2Fc3OlfUxl}P0w z0C6WLFJD9IacI8wBvHc<5dq;GM^6gli?B)R)qX*PGfSHu&%39s_mxh%IBQQU@7657 z`IL^lM-4{p_%nl`WU6F7J42#-Cb=E_bNL;AqtcNk^^yh)- z?=L;RBEq&6fbhr1N07>4-UMXHPXMU_c##Ld#Yfd@v9MmmSva!Xc z^17~VZ3)NGX*k_%#+@7=rwjO^xPeiJFCrp)6G;G%fM#$VSl7wb6{K13mKI)e;gIjA z8@+SrUIPOIL7Tkwbsfea=PQGXT3T8PLUrxnVDKw_iw_uyF`uv12L;u43gS=d5ujRP z0QBmKVihpYf+Ha*S#xxCCY2+10^muN#bTqs6i#1X-`H|Ao}gen)6>g+cs#s(HN0B$ zab7BRyxR*z_oamoowlWbheEp|8Tx~Bl^6X~2x+wZ{z3MZGX$<1KVAb|-;>0+h7e zV?f=;CM6xN(Cqf-ZCRZF(O3>U?lH$OnJ)YSp(A+Kxo{1TWt zNC0yYhyZ1$xPa#Eqh@nF7#%qq6(I#U0u$DGgU%TYg&+V-h}b?kshFn;!UQPRp$-@~ z-pMH`u$MzFhtN$ha-x;s_U51PrF{iGivn7)CH;{*b~<+CUDUHu)Qb#e}1 z!12|UA(-^xIx-a&eg=qvX=xcs%ETn$Nt5G~(E<781{{a|ADH|;0}_LrtfsqEd}Nwf zygV-HU;<>IccY3o?FBZ`pNt~^cx$6)1e^qV5Q8(D$++O`qqw5h0lxtB=GsTr18OH> zhiCc|iBJez>a1v*z5BLIPDfTEe0rv$&|3?km4~=G2fN4L5$E&|ZF=3S1a`$^6*6U6 z!LE4NV>m{w`J6pvrmt+Nbrt-8`hv}bZPb#@D(jeqVn?zz3hHal9GIK~Jtzvu-Q8do z$5ilEUb4$qnoiJf-d%UGNgA4;g1phxu3JjA`Ff+^Ze{Q*m zr4*C?>RtR1pG%?Y<9dse$@J8K7MMS%N!&D%8!9GFSDD?MxzGibJtQO<4Q|0~A;?TV zRrRulS}pgZr^x*v5OX7nHX>7!Lgzk(4jYr+mK{k;Szz!MUQx@qw(z)A0H&g`WLMZg ziV~>BV^yr|ozm#>eU9+UvV*0GmoBKmpl>~(siWd#PGI{wUk*L>0MwG`U(xiAQw;Tx z>HV!m5I$hH31QR(D@c!^8;8v+fo3rafJihVwh+KD$TZmKUmh-g1#x~(l1u#-jQ;k3 zkx^4q)4^?314=LeHYUv=nIzBvg&HQNpgSH3_)%JaD)D18KgWp!)wY%OPDd}lft`wq zT?8n2df&fDho=h7UC~Tx!na?A(091`M}R*5YE1LlBk!;M1+$MKv_`5G#$I!~JEJ(b z9}wt}Mx6BxUkZ_l^seT0@H1YtE1;pHos_OVT>GW|A+ld?|1D!9!h~>U%*3rRH^g<4Q>TM=Lm?1obInZ{JSN_=cQ0pA*zuBh56VQPwVF=2;k14syRdQrED_eT`gZD zE*Cqpkn}_Pe#NHvfo-zLSz4okmi_JP74QvGDr}KkN&3c{!dvlPS5R2$nMfIlK7jh_ zt*!~cJt@e!5p@xDxs(pn^`@;YC-|7DqHG<9tbq^)sCq^jf|s+=8Do@3mIYWjA%TH` z6ze(aAca3iN6!Ii8phUv6eJ;eQ7&|yWcdd=eLo!$`z(|Q&y_=gjad|{H3AvE^w20VHpY)jd@!tt`?Mg2zfOUDBEOf+ zznFM&lcXp~vB$Fx%G`6u5Q;{0Quezo8umE}o0=G-b4x{kZY$3(L)kDZHu&Ejo;tSk{i_fRVz0)|ha_r}w-4#NK`lEvs5N zU(VaPwPw8MHASj^^12?A=Sr2X%;UktgZ1?g@^x}^R9w|c^zi$}*YE%AF(UDi4cB3d zNB&9I^bRUr?uqAhWdkr|Tn*|g2K16I8P||B&wTZUQ~7CjIi39Eso*mMB-v`HZ7koj zf`WKf(_D>7A=#pWlgs%pAtXhRzd=2K%f28H2%M_7)_tJGy+sHd4#>-~{Aza z!^+2hv!cB&yWx(sjA9S~#Yzbcl|Yvy7&k}j;3K^3JU~Ao{c}>k&ZY0y?Pr!)_1ux> z$}sFo_V#eMf9HC9Zu;2=M3?EK!HIwZp}C`u3Af*|1uQ^j$qNx^-cK9w4cGM6e#^N@hq79vBTRshjb4~`N>3SFz|sC1t#+BP}kDW0hktg>hT1#7L>2A%NpEXmS?w(=x8jrt z{g;0#r`UMw!$S_fxmo+HO4|wY3Bs;s3wKavx`5Ett`Pt3z19+I^LyRwSz`tBbdO9$ zjn^BXLB*Z_FgI-=Y+zURjb~cEw-Ni$;VN%Jp}hDy)>xwGlQ? z?;c&KP`wdOW6JzY+r>vlCA zroDk#VwrEk&zit&?D@t<=3cgeWO*e5UR>thI>E!kqT{{>Xa%*APbTJ?YI_E|CF$Ll z=NHd&Q0TSIuFYsvVdES%UR!*zh9ohba4kDAB+$m>+(_*8IZ|Hb#L`>??f$21g`tVf`=}n{L=;1E)m(Pk7B|oEb zJho&U^B3ULWgH+18GjbPF|(_a%1eR5DMM6Pvy2h&hwPtNnUPMb1}3}DspF)QsT;!_ z4t?Al;um;yg}n;XmbC1es8VNYLrp-hpgURkg}+>IH%mP{U`0pf*ML6WyPp|eWDdCw zE;~(%Ip5NMDiyZLQ6Eg&7Z({%*C=LGUr~Up+C4Z|GIQq+lkR-5q^Yg?UwxP;4m=9y zX9C}Y$^6Q(zV?PWsyds(LcJc&$YNsQ;_j$3nfq#H*E57L=Zx$vJC(nhQt3-^BdS{S zjw)BjWL}>7$0uSg12<=S+1Xe`1S-_l$S2K}EEP|Ls@{rg8>wcz*YA(+>Kw_InRCUK zdL`wO#CHA`47u^d(fK^~ci$}IIrH~A9$9g&QLvY4QgGAALzKS>bM1MiN}P993BB&g zBA&a&^RFwJG)2qlZ6FsBm6qDtbX+3anWD7;W8FkVY8399dip0{+3DO~%S<#0ca z-S0#J&a)K>=c}~n^g{fS#@o+t3yF-0_+2xeN3gTenH@{p+xOQgw?5Khc`G`NG?mwd z$2rpDkU00%t1rGjJo0Fn8-E9T-^Y5i?u>W|nohm^sx?fGQ}f)S*1~14%`BnPW$#Yt z9gw(KObsP7Jr!}=B%O->-UXpO#I->@mGlm@f_Vm~%j&f24OO}wE!($i6$#{)6L-j6 zO@@0Vq;($_-rq`()fKNEe-j%E?$2N~HCk%pw?HRC0Fd%DM9TkQRz5xAP^5vFP+ZvL z1LfA1g5^|*twN!YLHOm( zKrE14QA%1}9=FeSWVMfL$l+j%HakZNFE&~;Qg0{dV7(IrAu|sdqK$2(d-4ps*3q)! z{Gz#%p>o6#ITH&w35suIQh#e(oVLbL1o`|_L_{H!Xg>9ufeYdI(r$OjHcd!MRpK&+ zhW?{he@N0DUM$;{2#UlYZG62R_aqVPxNdc3J;`!?#1`VSm8o=iL4)D$7O^NEvD=>! zgH?wCMZWlokbw}EFf*+*Nb*d7#6nQ(Phg^)V;tgR zjjos~ZRa8Rm%jPqWH7H4sV!N*_5JA?lWKRx_WQ2R)~*TDT8VzsRSFm|FYMadZCV)H zV(|?XcQ803JI^F`youO4GHE(<`{58$y?w%^->;ONZ2OMTalgxzpKi1^OOD{Xd?}A` zcjFm!OfC}n`ON2$C0dH*7C~Xv53+fJfBObT8d{@$oS4Sso^x0GlS7NC9);~vm8+P> zINiXxsowFQAo<}Z|!(O>L%t9AJK+}*A3uX+h?_DNS0_Iv-VHT!IC7Gmf) z80M!)$oiI53pYLMnHf@Zk zy^`2%%{u)2Q}d`%UckdYwP4@6cZLJc16NOk7s{%2RXIke$Gs}0#QkE zCp}N&-axmxEV4AZ@T|h#(qg+_(EG zwFAjwgHz$l)l`RL?`rSQaTfXRf3*)L?Og2Sb@p_ASIR&TrlkDxn%mDX{B^i_Ub@`j z(mOt`L}nyRxyk;bkvZC(EleW6h`{Ieb9GdDJs4w=k@;&offWVs+b~{BnCVfls@85i zKt1Ivb?%*>x!uu%w9j?$EVQmIzZ*HVA|joXT!(&y=T%;Jnj0K) zbY-TixgC$&Ts~e<^*HdjMN?Al@|^J#Np;j}+;s6rE@P-`xA!bp=&wp(+?I}|)@>JE z^$rbe%-bU+)IqVeN*4NSyQ=KxY^(|-1}RHa&c^WuobuR_*vq!Qov$l(f^R}Pr(tyU z)e`etJU3W+{OWeS$Hhh)pL%qY1dadwi{9X*=S11#B)D^EG@;GoR={;3JA^=sZh7#J zCs3x+WL`a8%2q7<{PBL5mq2zpD%i_Q!D2!*Z(lR=klURL3KICXH>S}@4yvQBu2`dc z)29Q?@Bp}#Z9jB%G_(zWi$&m@K@Joo-_L_^KZ3&NlEPy8q3$(L{6l{nj{PYG+h)J5 z&fd2}^|qmuz3Bv(Z7f<%PYt!{8V`3kP<&Dn#Kub0p0)zj7_D`0Ap!j23L_M{tFt@e zE|_d&rE**(6}xjBr#zU3@Z0VA0T`uou>Ci=%CN#=WZy@*Yg~RS2QTYeTe>oiXk z7L?buhL}B%k3?<0s5NcmCyb0UT%58Q!swa9uMXWmy+1k0M?-tk@b2Iaor;_` zW*aJD49i9n!rdEN8^7GHFfN#B1_u9c7C_Y@^QWt%6v>6B5t=LXHY$1l<1>$2MEw+X z21e$*tEMzvt=};uG!S?!Px8cHKS-+gIk7N@U%^cPLh02a(uT3+y(N+JL)1|K7s4*;b-2sHrwjj3YoUNV4}C*3C_qMM2hQk zvfuCOI=<`QOh{BQ5}5>bu(wY%Z=C4pS3;`rM(;Xi=z1H7>)yiWI5Wowb!G{iQHyQR zp~uaB&RT86-}7}iFRs zxv$W5b3J}Ti-eJFus6k_P+H9FzA0Op#_0`2d5YzRj&9>|YF&NbmZYR1(K`JG8?G`n zOv28t^fzzANwRu+NO79oxxv17`h~Wvix3GUx?sqKULys zrE@phKye8{i_X&)z6XUQqvdgjZ5gS9#UhP3_vNviCl*T*ZgwoIcb66Jhw7RH+_9jz z&vC)(D;rZ}b!R6+4_T__@#TTrQavL8^14?)pMvydb+aLsf~h2}1Fh7zBjHU1S#@o; zh1+sCNd$7Ww63M4Md$B#%71yt%~iN-x_<3wFowGG+=nIdmjG(Z6&30$xsZcwpfwT&&wiAyLfAb4uqk7*VsOtTr54 zG)!Z6xzOo48%8WY4Q1zWJbuGf65GOmFJquiqv_+1PNWL>wIzk0aK5cCeY+&2Il#NFuCG;j}G#$>xJJM?O^-3lk&Rv+2 zzju65XAbE*G8!%6cNnsOi%(P=F+MhOfIjl-raD(m92De|xMnaivU(ig8qK(oF(0I< zw2ZjVU*CAg1@gLLr%0Ld93JAxtm4!4r1T8-W3o#x%k?DLA9jqId&2q6I{bL0aU08( zr+?*DtWupm!Dz~jeMGuM34TrGokJC?vqYbMJoY+i-b-q05 zPjd~E?g`K9pQ+eatwn3m9L|;I@0yxTkjfIN0zH3da2R}RDreMrf82@XGzNGYj#h2N zJn)wjjE7Sxk~sx!>{w=vjrDSKb+lNbUOOXo*m*dxO_!-_A6E^Z{tkH2Jle!wb}(bD zHhu51CGpzrfR&hVVn8Z)@`dLu3%d7DkTpBHMEObJ z2Sy(|{`giC+8MHW7NSyQ2hU@ZIwx+I>&C08Fqd@j&%@(wY(^%hxxMYaT}h#7)4gdLW<1%%G+t`JJZ$yawo}cmw##?WT8o4deDkkOPggK%i;Wir zn*>~squBsG@Wl)Dz~GL)r6v4@stJ*N;kX$?@= z#&pO2hrPG_tLporg|Pzx6%=U!r8}fSKte!Ly1Tm%rAT*&lr%_-bcqtu-Q6kOdFT25 z?)?v*m(LsG!{MC0*Pd(6F=LI9A*(rZe4O3$)3|oHjth|#vb$Z^dh}ZS#noQNk_Hze ziD%5Md-GFicaR3X>~@Z;ksT3+&T!z3?Z;z%Q(RT`>%nSc8?9>G+3AXWJvNwo9#5pZ z*(CyLoP7-*nJZ|n^AE~l9vqd(_3`;#H1;xkYIsgy`0WQp^;B%L=P)(o$^XU4rupGG z8lFPIu3vx1^(lD+%rE})#V}kOkXjfmCdQ~&Ihx5HtYrVyJ3jEc#fNCQbM9&-nbdCL zjX;Gt^`T)UNi%C>hhdMw>_VtqPjlwr0vJwlc?CH+Pm&1lb)s;A>V8+ga^>l1xa-_a zjJk8W(gapgof%%Uq{QC1uMy!90(tyjL^&Np(mgI3uhED?%IbJ9fOo~CNUg2Ue#4K~ zAqWiIdUv<6E@x7I>iUvM(2}CA@|nnR!Jqniybmr%i-B=3vZ^bs4(Ejuxw$P)ziM+i z>KN!ZXLzGpy0|*32#YpeGATeW)X*+s`!Q>J-r!zl4!MEGL|{Z18r^CoDL$b1c%2n>@Lnv z>~~&TXG`LUpO74HlNXD}a-FG^wbh+A)gK_87O@0Y{y6I@+g1D`LOPiquPx?G4iRE$*eKA``Ite!Q-QQ zzv^UAsLHsT1ICnWspHT~=L=k2bKbNs5JpD{OFK4<7$onYtaW2oFz zPsW>)5ap}3AW$bl4|Nb4NS{ z5m21O^*UoFEh_GX4HJ_RlkQzZU{!d@7Mn_6E4^I!!NiP4GC6tCz<_DFpyF>eBKqD+ zk4UEMlWI4YGJ&&o$LZAl(UQceQeQ*&)67ZRuSe@bRuvX;UlRr_TOR#(*wngk*)GxA z(VD!tFzPEJvON43=%V$qE?e^TH#u@w0f9;^oVG^!yts?q*4qwio|+To?3FdPw2a}s z|0Xy*P8j&7s{0ry{2%NQs@9^Aj)p*laZ4n z>p0a}knd!DdB)_ZjeGlcSZuU+bP|EP`NaI{T;p*MZ^vPtqO;owof;nNO~@#pFumm9 z{ECK(&2-kqX1VdDI~Ytg+j*uwXV9daPNnH*b6}P06*u*a(-*~Z3n5i$=`GKtYDt0W zN_|dqVwaJtx2@-dGy`pSX4^BJhFwqTl-EXzOC0luSuX|0(_yS!k}yNPL3>fHM{6kC zQUOQ8B^coq+`+3ov|_otlX$JIZT?5I!Clbi;*L+3(-Rccdxq6K49RdPc%YX)j_x>A zf2KNxz0z1d*EEUGK5pRNRoeEb@hInuYEwN8aea7ClouOKmWy*UUdu`6#m=XO?5sQA z7_sP-a0VV`lbaicFURu?8;PpVRB7EDral_Fp+TB3~m#;fX zd|QODikg`U0HS^muXx4oLW!+yP3{UWm}HUtc6SLH-d|D4<IbBlU< zk9%`50R^qGjcHB|xAoRE41MEoDfg2HN5)8}P$1S+@5Zgt)fIZP#%}HslN``N_VHkD zEs!x?{hLs9s`m~?BffRF`05MBcY8M(1#8;lD^2$~|D_J)Qmq><3i%X6Q}-S*uVM0? zplpYQ$!eDiHMpCp|IAS-vY)M(Vc(gs^g7rME&C!^wQ>;09-dW)xZ%SU-UD5D@FSEd zFUV{-gI;_NPA3JIM&ohiOz3(jKk4c=cG5-;5a_Hc?sKm99jz0FF~f0|=Z|pTf!E*+ z#rcw3#gWt+L`+E)P)xv;v%TF@eSOZ?y*b|O!qz9SJ94^zdR{SO#7_AFbKhfp^~}rb zG57+2Ny}jOuq|W0s^9%{e31^+MI>Zd68HH4cyE3FJj%{#qxVncOd>(yALG;q&3|RhGah2`%=*b_4&2QTWYbQU=+VZBVcV|tDN?cBDy0@l302&e* zDab2MET)SLqq7(*A;9}v8zWY6uiY|rSpP4(`}qm$QNg+YXUvqGVOBhrhu_p^?w!n* zJYg{z|0>=We!F~4B9Ab-;{LwbWEAB-pZ3^9kB!zPz0%mY_2HfnA|z3wNG9|}Pr^le zD@`qTKr=m0`$$n|({Nw>F8x&~eR7JIcV=oqltz*6zqC6Sdvo0QYEz6AKgcM_9tQhU z{xRsz{E!l$>cMl>cwEbOd4t#8ga*J(H(DJI*SUGUv;FgBh2dwsMch+9A%_3vkK@Lg zF;iwAcl#1*9}E;>Vr$ej`(3|@7V|bu7p{C`@(xmx+m8q=!Rc389Z+D0;A>CJH@ouK zl9>eGoq1y(RQj(T?0?zXG_@`{5EbfSdhR2Ikjr#H$V^-M6|h}BnLo5$D|oil!F@R( zRdL{|s0pQ_N#qHb)`}Ti(?M`&DC||v%w34%H{Hct&Ikpkf_4_8$;$B+A3*adL>@tf z#l1>*6_UXz%IfMqShcgobBO<%plf2$O)d1AKKj9CzjqIrM9xnG&5ty%$?gKwu_@Bb zHZIc8%g$DO(Qo-^RZHokT3CX(ni0h`t%`K~;Hc8xj~_3N<^!K4V={d^NE(>OSZHqL z3MTvz>W|sh*7@o+C$6ETC45|)q*V4Fzb7r9H1Yu=*H&5(ly`T>J@;ONaL_z@RRU)6 zj)==)fa^kdYeou|>s58$Gi*^N!ef)Z-=i|i*;Te<=L?}hFr*~honpzoQlY4s`I6jM zy(5MZpqbdvfe0b{Tj>f5_BUptqag$>VT88xw_Q9=K0n!C)?QGmd!NT;yg;5(Y~M#B zK}*9>`m?E2nOV)%^}DNvwZDe824T)eWH563eVgz!|G+CeG8Q}80#}xI+EXK2w~D9R($V2q11YJk~w$JMD6j*q`_UmgrN z?nR_MufccJ;IOrdO&eLG;wGP8<$XOji32o&ua`R?EX`MyW)hB=phg#e;fn73Nu3#@ z$xT#fc4=Jl)Y>j3jh04wKK*yp$=`vN)*^MukKKgRa$9jn`O2wg=cm+5lWl^}La138 zCEv3<3ioXswvQKGWe4pEwbjO)^;AAYjVkp$rr=U=&%UTS&|R9%l5ZdCz|LbmnzvR9 z@RtR$#hALoASSxr&J(x(4Lh;X#w0Ps`jTwV`-X^oFM`S3)kDMrW1VES*JYjHSjisO z!ZDR8r$VC<3ai9DIuXo!M?pp0VEz#dn0T!6ygTmA2rMdgmDZF zvLvj3Do$_t?G1?AM%`+-`mXi}L(xvfysUNiFkiWyLb@eBfm-U`U8;NT=LP+I2}6fA zts(8*nc|kGrw|+kaqhJLmPwDYHZW-4TS-wQ8y}}q#imz)%h%ZG6C8u2a*3}>@SYHd z^InW*4GE%7BYtfzHF5N3ZvXz3MwM**MBx;H$0c6Z-jM=0p8_BafHQi6&aa_E=UnJ)s~?e+#Pl!<^0gs^g|JuvlS+XC0F~%FF4zJgl*s#c z{`*_t^sJ;c3PU)Ag;ygiAup)UC~9WLUDcWD<=eK7cG;NDIG{q9+a6-(=WkCP%8T~9 zJdYMpR}b!)fYoVdXJ*!y+!$`rHLfy#Sd{)sUF!SMd0}T7Xgt%?S1WnKoS(>gBHCT6Vo2fca?L*IuIF& zaeQ3>?GLm z68G#5PQ#Iz8X^+w9-AZnWP5k7JZsj5v0`sr-2A3R&S{;~6^+Yq{x|Eqke2@EDB#B% z|5ZPkESxXITngr)ef@x1m22Te+Mf_>s{yLy=RD1t0>m~M4DYqd zq_bC=$Y(kdbQAGj6q#*39nC}yzlScp%{R)rYLL6X&r#<{pIcHw<9;9mt~u_si>(DQ ziJ+sq?YPkbIo;|TcW%q$?a-<+)(SGaWk zEB;xgKfT<=vNc*V-m?qmTu&z|_Lrh4v6fdB7U%eN-n|1B(sx@kp(0kryA}%XKOm0u zHo3MRSDWLJE_eOOQ)YIjEqQ!AKUS(VKF+jwx}tpDc+YkJWTDB|=cbiO$8(4+Y!*K= zXlWLqUgP5-5<-wZ17qhWM-w$aihqyyOR;`22W^$s$h5_k1;LUcB9cCABq}a8ze?oMYcX0Z zOQ7Bf=ZY`RxBH$ww>iCV*4Q2jM5dY=RT2LD{2BO#8iDiGZw0DPr2Ki^f-ne){H3hK zZAzKI+Xd$tk|wL12o6aV`pCId6mJ$7?x3R+^Bgk0XOwZe^TzPExU8)zj-0LS#d!Iz z9(<#+`-9J+U_}RKC?|8}n!J5%&WajN_R~W}g9HDRXbb9U(W7sp-Ms0f4IOZ^p@#(; zQv8zWincZ<#pu#hFvqpXNZf5iL8Y9Iq#2_J2AeIlvE1{Vu^{Af5pX<^dZGfVeTw? z{!Y;)oU(lMkBmNr&vG)AjgAGYXt|4#l`Z>nXKqui8VeNjJM%GMiD~4@C&L(eC5l9R5$gMnB9m)!*p-^@mWuSh>;BorqXp zYHbVU%UOkZI>DB?^*%pw#_-jLsMg1*Y46XsG7*0Q*JVsuD(~H$Cww8A-IpHRYRkmr zhl=)^mnEvQSNe_n-h*9j?bR|B?yoGVG8@AHeGD!{>MF4>r0DCK=z;L=;B=*GJ2$&M zNvK9>nemXV<;Gv2 z$JBa#5ee-floww_O9Bmhm`=tFx6hQ2DNllODGCEK<7eEQu>xv|A3t^|RY)0j|6p{W z%@ALn?+=L6Yj13JX3NOPJMisU&LjsyQe|iuJGNJ+WMXDkg^Fsb68b)}(*5vzs=68L zb3seh+PF#RsqJ`ND;8{w9Pg(y(1+$dcmOpT9Fya~=Ut9CY$0;06*iEor@%Ni3=~;^$w~9bp|+DK&2sR6!>ao0g~y$I7A(QB_Z>< zd&9>amRKq%G@_z(?V9M&fVs(}U1~T3ezAtB!Gy@;6RZGtTa|#$OF7*4pm8>?qP)`BTgw zT)X!W3Vlo6)r%{OVbEV#cbw5zxjegIFhs{`YkOAT?VTMD)qt9^aw79#H5>^X4&ffd@_)YhRPTSE?gDh z(s$P6oQCUV@36-Jmrm`kTv?vTj!mz|^Ivi+v$C>qxz1MnKv$1^LkdW#?IKjfmTl9RKLk%3KWL)|e!b7_Nf zD@)IZ+$ksR>X3(AD(hM|RQ|jlvbM$9@AA)hlX39^OCzYCpreew{fmjd< z_t_;Kfsxtd<&u({$|atDZs#Z`Kt$kQD1836bMWId4#TI-13QKK-Me^vr?-WQ=*w=I z@@vqopcCAj?c#M~FR>=&WyR{h0X4+e^%NN?qm|)HJv^;of&P4M<4%%rt58Q1fUR6? zYp)MoA8shBOtr+$aBMZaYX_!4`{^n{-xI4v(I18Cg2>twN7nMPk%UC=#$k(tj=}Ti zuuyu3T-#duhQ5mX%TVLAHW;CU(zIZv!pv@%M(5B7HgXXsU#(g^T<`a;-88F@m=_U%bB&rdi$1g`0dx^%T!xHIA2CmkKn>YTE#6kRNgPgroje$<^fWVEcamrHQ9 zf58zkQtg=ik`22|Sk6E{ z&Bu2-sEZi1hG~A@xkD4rc+2-L+F!y2UyVFcI+my%9+x2IQC8MSbRX~Q>~b^h%X>st zluQvx;;|9<1i?^g#psOx)3d)Ej*BP0&+BGl7E~7R1*6nSnX8BS?#Jp1^+&jfIznb~ z@j+ZPL=t)j;;^_#lL&VHF+#F~|LkizjFMuh2t1&57Kskej%vgFm~x+%9_gfDFb9@5&)pGq+> z&Q+&qmi<2N+WNgQ@Z&W^$&(|0@=7Q^LKEt|z~{TpeZn8u=seB1?2Mw%@uD`b342ROy(ehQo&Mh}fU~m? z7q%2$eLWVA^7=($P>}3~0iBTW56HZqW7*T4E=4P@ve}XWN^MHv4TfIc%=HN=S>v+O z*ck2`rv%RE!OBWpTAW>@elPtVZb69N(E3WFcqlSl*gQCysJk&TVB3zBtW;ksjA$LX z^ArRD>?6v*ed6Og^P}F~4MHrSCGzlGKbRvV)PEzC8xWuQ+Hz~E#{?b-U`?$nIB1=KWpyXm1%C+oP7 z_3P8$ci`Fm86K;O$cxHkWL<(%V*E@d>M_r$UVN+S!G=hn`{j4HI)1p>B7i?)>32VA zlgyqZYX*ms`}meFbsC^oPG6l2>vZ3u-a2Jh)meT+ApN5vn z{^TtTzD{H>Ykyc3!UK4l(XCfK23=O>gZBZOLVR51Hh2WFh~33yVLV4Bm+Mg)%>y_d z!Py2DaF1&2bVq^Z5&Ci?R1+a*A-voZr+a>Aa$N*IVrhtg%c;y%F@JOOD!Q94?dbm6 zOiIPk_6mTv6L_Yg^;Vw&kYl=Cu){7IJlOfZ2yqHND?_tB$nEmX?CQdn1OtB-TqHOi z8}UrKW+*2bZcbRvgii%^734Ei{Gd_^wfTH@b(Lw*9||3@iTbku3k<#>c(}AcWe*bp zPDYJ47dYe^PHz5U&)Z&{`wR_T zGrpr2P}%&6&%RSw_PI7z6rzaV)9N6+R+uI=KK^wJFyZH~gxw8=*1qVs9k(UH=A16Y z@e2LMNum32lhb~_$g-YT?-vThFaSWNoI&`?1A=)GP^g6(Y7;)6Bo8(=(iclzA7IwR z(i_gefDm-rU9@ItH9b}nIUMcK+V=Al_lJ6j2aoqjNjc)dhp$&vTDdL==dTaxYP5#H zHNRa5A&9SVE-eWrkzOBZMo1*TQ|N#5iOKY#i7c`T9E{t%)^J5qY-@OcaPxLy_UnIz zoUwmk66|9f_;<$ln9uO;*RvraEG{cJxA(=6#rQ2{a!Mi%gbmh-WrMC=Jbn z6Icnw*KTE-VbGc8Rzbskr|r(m*BLJeR{$OMkB353R@vCj*vB;V(@z|Z_m&Ql-ULGo zaBCuytOLFt$bjOxDimvu8cJ9<+- zo!h<&MTKkHez;G2tC$P68;ER8P08F2o*#ELkh<`78RKaX8fXV7o^o zT|_P}R%9Yo(A3Fm3Gd)wfF^|}A>VXl2N3D3i_u7@4iv+4*N6u>`pMx$z&py}qa$tx zL&*;qf`ef`{QL*WoX{$SY|FgK zB?}WSz59jr_4&@n>V$M9apxMck^c-fsF3$S++K-oxcBamwLqBuX#8)D5Gswi`2$d# z7~GxRnv%&Ks=Rl5u=g)jwrrlW^8lFvt-2U|5-ShBjJRl3Ad;(i3;B4IJ7S{8{POe=&)As`dqlQ0c_l}Zj~p<(qa`8!Pru|i2oQS|$MeYoJOG$Ozl^*p?PdR?d4?OL zCH>!v1pHKl1%MR|NrGG!1hECld`xVD^WVk7&x1@zhlu=hjy}>l{v$^2Kw3QVKhk2t z!~QQt^8f#a|DUd5OGehcm$29u6Ieow7Xq0A@}+{g$PR#*yrQrwGuEfH8P!t_e`I?P zXuGc;3CRR$k31fXo|jNGq_8*tb)ALh>1=Hj`-^U!dYW^;H(D z^Tq+9Znq?Yc|c5NFE2Q9$RzjyE~ebWvg)sdVze??wa)^0rE#{xau{ygmWjzz<>N_V zriFwdjbuJKOEy1;>GS{o(&sO1b4uT0m-(Q1(drkO}4B8pYuAw4t?Lld{zV#6iIHiiTUgHppZVDNtvDd6Z?Sw zw%0L@5T(p=+6#krRC|>@R8&d|npX`kQ*IUvzZkSXn-_{NE7}OOuR|D>sWAQcVS=D2 z6Sn?WrBcuW@7XzsC5I_T19SkqdN{u;t0}(a1#Ap@=iK_=dXVE7{(jah?N|sGZrrzS zhlTY#EJ5?Fg*)M?_Z=)OT!SHdL|rOEy=btS!O&b0BS}(3xZLX?LV^W%kc!nHi!9Ex zi-B!G`|o`761|BXf(N95BoCXh1^zQK7lk(WRm4(?P3*;Qfj!jywyqwwyY>YNfy0&G zeja(-iL2sa35DCl>I8U-WeTUu=zeEReVfOhH<0@6h3UWtRl+tQIcPv!~{7UMB`tzx(gX zndk~sMNS~MSX%Oi&JZh4;)G7zhgPKo3$?f32V`;vWOIfhG?m__4nOWc6iUDyDvz@; zu*fNmc^-7v$2*-$LgIh|afekphqduzwqV}CGuoTO*8_9e6#3%P*!JH4Jyw0aBre7E zmFmrwt{^NSe$9(?iu?^bP7+)BizsbX7r{gw!;@1LS^`Zpib4j(+yIv>Q<>Z!(s{Ph zxrMk~4LP5Z1XXn{3k%0?pju=8_c$p?$$1HxMMQq+>VOqEzFSilqWr2ae|4%X^LLoi zX>9CAzUBT`yqrqv>Oziy!t%0>CutA=+pJOHm_(trBZYdcEyD-WTRD3sk>cIOswN*# zMpcFfcbe37WL39A?#n!=+6JY7YtIX6#UQ-g!8;sKW^vqb=oG%duL}e<9@GR4%@B0oUIU3U-TPcKaJ&rgXa(*foJRIY*7e7pMm1EAr~9t z6BOS!=F;(TVJ^G#4UF#~$h<~c%EiWy?j+L76YI2C8vfWwxuw&1!yehV__m?T^X<_W z5fzr?q%@l$>P1W=q$I_5j^tdNXPVA+dx_^Kx@Nd+!YQ#L{bz^K$qBGBLYHSbU0o%1 zj%+?hHSZImg|vlR)IA6w#6f)ymH5gY-dYC_%d4uCS@HXmT4n*k5{w7L%-s0@4mT<; z&-%n;iY<4vjt(|_(}t#x4!=jhdy0n=R$%o%t0Q!CzcR0@uP+V@q*k22K3QOS!5xq8eUdUZ7fjGR|FAWTUNKDM4F=g9rSlW3e}A7a{rO{A#jCEV^mi>*Gi%_xyb%q}_ec4T z0+IqZ>39%fv59I0T=!o8i(~Phayy?M-XOP}3K*Znk4@&W-Wm?3K0lI2xWj8>l9N%C z5KdvXv4V)b7+MMyT7!^~!N@a5VlNa}j@_9IS?#U)-^;(=mY10b!7d7O-&-_SXQJm$ zTnOb+D0uu8E;G1@KE!-NVZ$D|Sf;~|d>#I=UpHf$nNKIChjQD9FVy~Uqz4|9${7zn z_fmr=XTMR^R4TS&3gy)~c6UcB%>2hE6KgwS^DeoQG^EDknbpQBw#%P)wLmVXfx+V? zR?w2GD`GQ0|5seH(5_ZNi1>0Q?md8dL+;j)X2bqhW)}N}pC1cMBA?(ckv`E=fr_q# zDma#>y}wdg=jJlZ34;lHdQV64tJZ!*3}%Y^Uo9t?*fX?+_%~L|kgl^D|32K=q3V&s zKx>AMS}h^MuZh)k2cOvo_<<~PGqum!BH7C=F{qver?}%bD3`Jy^a`rMVdktNd4e|(42zs{jV27BaJLQMl?1g+q=7$H;NjT zy|FcBOIisRfXrnjl<(>#56@*x;W4n3$TqlN%C-VSWt^M{wm2%WMG82kt3UWE6T{ambuFvw?ZEeBr!ioqu zsHtU634{NkkdSIERA!#^eWd+P68&GpHKDo&;fSSn$63%oHu8C+l*Qw~!hBUoaccpR zJaR|4?tKI15}h(O zT~rOqVf*J>M)~3NU0hnr5EC{bVyb|ZcxUluBV`HdCXX28A}t^nX=Q5)-sx?oK;K56fnoZpof?mwU-9Yw*l^mNjmb&& zH@bJ^5gxw8E0U5DT3=i|*%}~jD7F{RS>e5mB9+UY{^+qY zs^8(K@xv>y;aX$eNz#=&hLG@^ERI3HW!mIx9xlA|U%wLEH5i48$o0=1E)2S;>?d<= z4Z*JGMi15&pLt(z%*~DZf>+<~(Q9pb(IBEQJ*}r%X{CzCXk7Z^B+t#o!EQ@!nKPEn zJgxB?zqGG|S0d2m7#kY{3!>NJq8^g>0yryy91EyjmSPGyET_5mG6*&A%Xq&3fbsUe zwIcED_gqDMtapsRC2UChtSiD z-%tZ?*jeX&i?wQ2Vo)aoN>HQ#9}xekt|J8$Z{EBaq-khi@B^4SsvZ6X#K+?x=~Z}n zlO>Zl8G(ULwuc8K5kYoK%f_FNYY9jl^}4>Yf@G5o5ar(RnUZ5OA8!IqB?=mv43Kqt zM96*8U8_y}E;u~ij(Cd^VvDU)|EuAesuDPaEuiW28H)8}%p{(kKUp3Ys;AG6v+fnC z5%aM|Uo7ege(L%AHd8^7GaV*3;GwS`E^1W214p=;p3Zm&w=@0=gcD!jKZ=q?Sw(#~ zI-P~qO6c+k{8&&X8hU|hBuMT(pk}k$@_87!IjYo&PryiEL=RVW}c&^R@dEw}r$L!lp)iRRHrU%`%SDdYeU1@NA3suT1 zJ&`to%2EyzkESun!hV=4<}SPzL^!jqRbkWr$oBAX0PP}PzLb1a?7#QXg!)X{{li%NoUX+I!Yb?a!Q8iUcWX7os=YWA`ZMXmr$$<7* zh^RIqB4Tx{lpK@{mnSS6maxx8~1dw8!kXl^!+QOOz6 zuYZZ~$;@V+-Bd&Ohikx0={45f&)F$;J&_{v^x zDpCqFv@>myLD28$sJ4%@+YoN6as*nrO2m#<{O)U*K7z>n%6wEysZzO#_m!8p>4=Tq zII5T1jWu#f93pBBEfqp|)PF<#DWOZ9DhNPl)QOy!i_8abUax_^H4iubL`$%YG0T$1 zK>rkhZ`zm)7|Z*yvcQ8#az;n%IY1jN`;t9L9m&wtcrQx9s!(LT@VCY_9-Quj1U3vT z?@c(p<3dqH#sfz)@%Z>U6O+cK%V|}=zF7jq$Z>tTk|R%LR##`qk+IU$sw;1ooz5)@ z$J!6K8`}H>1!E(>n7>6iy!Yr=iF%Ff${lD=$q>0K>8~W)rnq|gm$A-m*UGIst#3_L z9<6;5On8%##IDVq`~){3x2~=vQbJwJ*tiYE8SkT^HG`O1tfqTBa0PzE^~0uBX`*kq z_zkSK95##h#bao+fsYgjAk)T+@SZ;x2KKrVQ2zpw_LJvsy{_xI*+^l~a~LcqBl7{m z?-HOxE;k$d-Ad%)I<-GYcx>}jTa3Q#cskc;{tHEd0N?0ndEe>4`y}N$Ub4qOxOp7* z=17UfV9rJSfuOI|`Xo*^Izc637R6A*Ejq^=6}jemKEAqm_-aeXw|~{kQ$Gc+fDRwD zT|&O(j)XTjMB-fT_y>soz?+6(rVs$u@7!D9)w{pKcNqndt@5Wk&sbmIDApY+RJIDH zCAz8y50p+%dhMq;T?w7NK0kTF63>^?3wP2sJlsn+0A6`;@L?+g@NReQnMwQthqZN! z^2OeuY5(m{UeVMgyZeIX1`1ow;FPtO7n_y}RK*FTPL{B3<`>X3DIUhMS!S)NT83LM z2U*|Bx`@Jh*gueqjip!1rG3Gh%>G$0PvKceQTZ8=2|Gj4`EO5;VWa0AV1&L$PEL+g zcQxT?kiy_SdC7ygkn0AmDi$EB?VfKA%sWH?TTTWLL?cPtffEZA{s9Fzu6uwVEDlJs zlDHg&^83s@1e8!R3^wYcz8&1U$J8=7Ld%>9p?c2**cyHHQk4cH&w59Xevd z39v;P%SFBXT<<5*hV6kBYK^N<~oOfU$x-X@W&Eb0 z<>k2Xu{jP4e1NR)x0(Z6gnlj!WnlXr;5GQx9c?vFHQu0jxTaY6k$w08lboTX?6v*& zbpHsQ42I^DR&)X?H3?POFXvmNRqxt*hQ8cmEGZ#&K6gN2`t!RO?fzSH10Qp(Z`Lgr zkl4Ht3Zyj0WxHFKoWH+{L2_3)A|!npm^wTdpf zh1+>pC4!ZozV4lanVC29ngKdG1i`XEhIiV9>2zt+n(o_!?763-9r# zmi~yJ=^}6xD@05vazumK-FPG)XG_rc>F!ny!{jk)`rDFl#rlcqvi9X9=@CZ(j1fAc)_=rf>^+jLQtP>kP-5)(UxBa)HT}v+U z5~PpYLV{nD(sYiN_qEKVYzQULtA_@$IK)B^Vbt3z%whiau)Dh+R1DliMKg<36>~mP zfsAN(46SOV-I{D}>wKWNr&uM(djoZue78-7$xr}&{fXy|TXz|ZdS8N|LTGR>8p?+N zUQwh9GzdUUraF>%<2EVr8XAi*mQGzsC7dUtZH@d3-4|6-)=3A&}XSJWV2tqxB7;R3uc5h#X_K zdTBW0iutKF;}upCdQV!Ih6Ge}Kp-@lc@6RlD-VI2@D0|nrT=Mbxp{DrH7uc;%i(W; zG znxiRFBfut5CEkei*B?PEXTK^l$o3!l$ zztYepNrH=tD!_a3*i=&!UL^ff#U?U>N_`eV8u&C&1a)Ab&p=4ZFw-!JPpXdW zLy-Lxlt-1EowapzzqpC|S!Z!^(G~tiT&XUN*7F#PgoHU}%$G5b$9R{Jvp zONcmMw5uL%j(q{?^`g2XT$O?t5K?`Liz^2Ik>Y+viNSO57#Qc@6(}$l1fW$y*Dql( z168JVs4V{Px|PvHj2Gw^FrCEEI9BZ}#j+q4!^H$IlQQ10HvgVVf@;T~n_VV%b@rd~ z^w>Uq%1~C(nvv5|*}wA4-l>h#5xv6wlKprsdr`gK%xF#tYcHwVZm#|6(uw=zrLv5S zV{KwviJMEmRMLEVy<3aMIvtOT4Wy%;Fk0?tX9lNimsV``dkCd-#oR1u)<;@RC)uA~ zpL{{*yRZ^zJ+=fb5N*h+IbK%uL_mF^nAFR zJ)sYz%0svANn>S>rB2LgyH~H1qA=zBYM#@0Q+%ij(>iPaR4iNU0|8e2I3C4?*`}sf)7(dJY)LD~VUO4ApUKAf4UK&1c zpvV{@Vh@9C3QCPtggC}#mrmpy<(5(ob}VRj(U=HLPy0liq~fI4xf4F22#Q*c|D4>o zP<7;PD(HX$1E>tKv$HdRo{De?zCXwU0E=@vP?rZ0@_b$Dh?SF;mL3p%HlO?ovQth; zbCUoY44;EA48EqC0B=hL4UNU7)<|He0Em7mo=&}cHa(rOHSH#+J<9v4sW=rQa{^PL zd9vAivgzHAh52Ih$rq+XL^e9Q;$0c0`T03~Rxfw?F5kh9sZjr-NjM`y)a=+2L{-x` z%4#YM$VNWdk$(T+U=gW$@HdPY+7byd(a}PXgMo1MBB=L(>IEDOcn9)GAbhY4BIFq$ z=|ZDc`52^{G(0Zt>9C`%9}sUn`p=OZ&r4K`6_9BiZBmKzud|x^)PMVQLgdj@=2=MR z7+F@qHoj@5>#?(5Y&jIr$!yqbU}($3T{})o3^Bg)hb0l2f&vuNwU!nHp?DgP7RW6e z@@nt;3WJ%P9Dhqd)RJB2w)yvxq`KoKeX({~`XY-(=K%<{DvNOs+O zj|(#=06uqVWgHAlO_5BrFF<1E8nX5|8TmD$Yl#jCruc(tOo69Q?>~6`cum&){>?(a zoV-zmk@CDkzLI?Vl7g*qnO~mjde7bwzm&cGRP5#&F%NNF#rvcgqW3L05$`{Hg<0|T zM2f6T+x9qbC!x&jPj5S8Nb#P&0&O=}@XsJ`GQY9W@s-u|;5Esen~kT$@2cN2bcR!5 zkxFJ9Kg$*P{IAKMMNvMUrj9+%j?Qm0v`hHkM&Q4U_pcfbp2}xS9x7+#xw%c4hCBXL zba9c3jC!YQT_O`N7P?Vncwt(^sC(|fp4a}@yUF4A?PWraenYO%+4(upw$}p{B&1M$ zokjU=q@;T}9DWcGxS5%m>E+|&FlI0R^6>$Y%#_f}7t5lHdru4<*Dx@r-D0zTFm-Nj z(w&S-f_H#JGrKU=r8)9Jr6F0@^B12ZEf^rtHt`qZ*HE_gqU9@`=2tqxVUk_ zyN(_MpUW1FRD^BkGR3zftM690*-7 z@86DPB8jAX{K%GWNrLmIVF`g@&z7x=x+!(R;o&W&@{hSq$43+A9|igze~^BRiuqK@ zY5ijgo8k{bu9){5BbW!F9w^_Ac2f&-b6dNTZ+l+-aQLSJW$SKvMRogbw|wPNpM}=Y zQjcqQkTUWM4JG<@|Bk2lJ>vd5p4#1+bp7Yz6A@^Uf6(7zZ{<%mgUTx6r@rt8J7}H#|;ppMse*}u{wUEN9>I)Yx@d{wkZ$^TYL zl%~;0bS{J-uBJxLdQ&N-$hh!3$x*7WsLOsA-3p9mBL5H@&k?5mP(u1*qv+@0uq?@U zH?_gdiHgvOh^H~fwomLdW%7pdH5-x-H%9hnzhL|T7%iiy{&Mxs|NV@~&c9&+3qVX& zpSb)L_otAMTXhyM8}_IE%kyBVRXZb8)RNF3{3r1Tb8k<>N#n*Q5cs}DL$T_ zjn&>yL`(($aC|Vaqop-MeP|WOo5cC0En;?_gp(7uOr>koeKV2kF<_n`FR$A`s*IG= z0-d|%)xLCWmb;&4b%f0fUj4TK_SojyHJO=uGrWtqXy(DeMxLIcg@ z!FU=8K%@yFgf`s0FbU2g*E*4TS64>eDVdG9_(ffvFDE{V7zX~gf?WRqOmeHQ%-KC7 zL&){m3K<`XZRwX)+1LnIR(hn9f$ihtb5{}uW!30JQl-C1Q-pOaL28)ZGj+-L*4>>K z2L}gA*uLNb_xAUd%gu1EFIM;-+`nHrdt7R}BDvLYeTB+fNGvHSi4-W|K3h$%y*k@~ z`$utfbVTCSXNqc#puHnQ6)lLH{?;n>$$uMM6zic~K>>E=EI0N~Z|~dO7i|60PPaBn zbW3pf2vJb!>EY^E<%kZes@S`er|M^aR)39{aZlguCDvPB&QVi`23scF97s<@p`*L4 zm%`7t6g7iE@ja5woO5JiBRU}N1-#TKFu=&pc0niX^)r#sG&`F#ve%i{BvS*J(SfM4 z-kxW*+$@4G1@7Sz5fOo4*}{ztzyP7xny%p>qM}f!);1u;7o45F^678}GdemN>P2uu zcv(Gc7xAaD@iX#u*XIq_q*PP^5Uq%|8N-A--N%K0Oyg00uR(1Sx@5?)RSME1+b8$7*vLmDHMhgeg!#;O$ z#l@@=Ipj2T>x%|g7PaPuXeL?$JDu(M-9S}q6~Laa^uNL5l+HgrA~ORL(#b3FM6 zRtU(C>bVBzP;cMz{4Ydg+cM*+n{GT7vAJSV_*7VcRu+npOsyadd=|DMK0T8Ia+)e7 zY`A-S#XCE_9_6^qKI={Iz(3|pPNGOxRUN+1P;6-~0eS+e5CYP@jiQnS7XKfAd=FR3 zgoN-b&rEFY=0vG|FroVT>+N8Dy&y@yeL+D~Ytt$p+u{bPp38=2L zLbs)B%5kO(6x51;{2(DG_tg~o;NEzj-_P!|Rwb$VwQjztDc<~B#M|t2G7e=;g+8ot zCTS&AQf4;8-#|4&!T98Z)=QM<$;tner~3N|&*6Eem!;mYy%k=F!|XHulLhXdVf*pg za$%v{_nn9`Yf_Co1;*`F8DNVZ_41an-^;ji?KVv53yW>-DRp#o;vkX!7RnqZnkfrXNH5qd@b{OyfCyS1*%AN0B5`}*xG?PfZZ>{;`9F+j z=Vy0D*{^D1N;z7e1fn4Pe(iDdnjT9ljJki%{|`}b0hMLieGj7o3J54Dh?ImNh#=i9 z-60^|9nvU1pdj7d-69|$T>{b_(jlRAr{s5@d4K=)tu<@S8fWHy?zpaV_St)%b8Xj= zO9$fM z*vB`{v=?#?VcaldllJvL>j+&U;-HSB@g{%F1#3!#y*ztmD1r zmJYu&$9rpC8)Hf!OjVU0`W(8>HP5tqXU^7rI+m@i@w-hxMm8I3!1u3{D*3}^sqOg} z!h}P|7TB=JlVN_`!VQm&V}W zlL@mbx#4iuooZVLuDCxyo;yN-I8G+|6|-IaeDcf)BRuwpBqn*?E9Yo+(~_)=oj)C$ zWn6*T{ssxy=KVRU3o_TRG&B9vV5CH++;cC{| z%A^J9u=-DCAuSEbbz-}4SVU;kRjzC00-Wk;Qk*A;*$WI29*ZTOPt6YgdbDwm!uh~( z#_pjoxfxIbUo|TN0T_7ZA<03F(zO(X(H5hn>?OR55C%KNy(C=`|Ppa-IL!X$DQ1IunV}} zKVaqM-LJAmn?el!o%P2_+I`z=Z8KfIe%QCI?6G_Y4x|vje1mp-MEkW^YXa-))KtE_ ze7j}uBV_#JvTx}eR)OJ~t4`66jL+ONb8>zEc1ttV*H5vIn*})87*I$t)eBjPidKz} zuPmpJti5eI)}&urJY%EzzVoxzb&Mgu8=mnIet zBv#2Hcl!v-hk3ocqA?X&Eby|dC4NM)R8~G*=`k|ox*XGLE%tct=60HnX(nphbm;;z zod^PPnSMx4Ox$xCx-NC|)9*!5WKf8AY{Zh_k7Y7jSJ(Tb8d#j;19`Sg@ZV>uLbcLg zV`^z8CGwIlC;f2pd0l#!|G}c*E3PY6k0^eD784ZIbx?^<8`)%nC3qWMnT%A<(V4ws zZ4DCROCMer6i-zb?xb(ydSe*KYz*QQdk9}yK`EwMFnVa<`MnABom4n>ZCOMM`=;*dj%tK78jbqDaW&wvIc1>~@ zQx#_zU6Z3QP;PA}OwNt#7Y2s-iQ|50$0_&A@RW><2Wb`GwmZ9H%x~U|FSjF?cU&=q zS)fMt%yNJJur03`Evy9qF2SoIu~CY+s{Nvp_YDWT?LfgZ(|nv!6Z@wz!j=&>6@2_p z$6azdrn!xBYmEr5{$wdRX-v6?4;uuMWFj!|X@39t({_Dz(j>el$ibnep#zKY(f`nN z&HG_&B$9@<<4@UH$yvn}F=J4!R4Fi0#>AoP;5NEm;Ni$?y_0_kUu*s@knNQtLJ{G^c0c z+!rP`G_?!Mxh8jaORTF|;~#^S_G5_MsuRwp&aw)0+5TyNyvc}oOH(cHDO_mv-2z`7mhEODrr$hhy3~4+Aqt?v%VOWsgse09C)F@ zzgO{CmMj_gt84;v4bq6++gX4{Lj69f0#+cHWS@8gDujtN=U1zdXT9 ziZg6;8}mW4$#M>x#oeRv@?TSlTe`Yz9=kVEKgt*8(6GPul$-LrYURMim7j4XkM;1- z@bjgN=sJ8T0L2trZ1kg$tQR|zQMQ~WnCd1bNS6}?Q^~fyr3v}?kKMl>ZiL?pblu^w zaOEZj*6fIz`#U?Q3dqbH1_sM^lQ)G9UsQdwTM+36?aX8-lW|-#j93D&&+ENC4ZqKi z$T=UZ(b1XTyj2QVA~Bm9FAWj9bTVhfLepybOj<%BTbT~KtmU3E^!&5r;h7|4WwPmipd6hh{RlW(VouQ-*%{&%4b4WHU$OZ zb~Mrb{cMl@A^c=`P!uoqCPZ(}77D5-rG~b>;mzgI@u+E(n~b2EkV_4AHeXF2OCjGz z23kN^D%QL1FBO5)!Ke!odV8M=nOA4lvLuVHev3ga24f!!IYzxO$TVUeUL;w2JDr z+YKD9AyHCR@$?pBt{BfpsDN-r@>EjdCHJ;x;eDfg9I1czKuk<2Db+TbnbW7Hju)VC z_fiKeMuQm{CZ%r(-UM>QtI1|>uD(>cpR{TE+uL)0Gz&|O3PQv3_-N3lyP~eS$nXr8 z6X34RiF)QV!KLK)n<8WGj0NBlx{k|n_Ow=XUV5=`^(5}OQH`1rhckA%ur z{Ag)oc;x8nT0Z%2f6g=dz_VnM$NLARLH6dWEprV#m57;))zw3PxdinN$#q*h=YuC)TPYsTLf4@Ka#Zd6o*u$D3LeH~rl&NX- z8dc!znaOS3%#pR)G1fTA@WNk`*~(u`s9yl})NHGE@4^><^e6!#@A&KQ%LwUuS& z=5Jvd&%^sj(#f9m7!xWOD8Rv)k;BLuwIBcJF*eKRh8HATKWF-|fi#4euFq=$mdJw@ z6?og&X8ngY8}9;8VeL;QaT-Ak?#UF3hm#mKx9czvN3XreJV^#NN_LKwrvvZ{;CzW; zs1nn7UVGNFp5NX2r3^LH79~Gd{8zaoxK}PF?al;pkM#9XIvhq_Yt@HsFQahu3zU_n zmG0+o@RKHJhP3u3u)S7$%wHvMi7obC(qH!?mXs$uOvTdF_qF7m7+QHGLGXf|ed4pP z%UTZrI!wAjvTQmtUT#z>=RD7|2(M^TDE5>|_#c_D258_I&Ig(E6lATm zqg_rgtDSg^LLW+Qw$q#NosDg^tx>h$72H}&H)a?#H&%P_2L%Pac|@+zDR>=#TpDAK zUhAjpW{+oQKY2}GdU#?sI_tXe;(kg+S)qLDtF0w(nkPa`n^TF27GJGPYKI9)fc^WT zyfCPQGhqK$76f}Gb2ffP0rsCj1hNQT-0R?WM2Wu|QII{qa-WG~Sli=)5(Yk2*0&0F zf;9*jm^2j@7SF)aTVB=SF~tT!&Q05spAm~t`MV>npI!AQsKY{Mo#U?RSQ*~j(YLXc zf9(2sb!Sy~#*8|YlVZhvlGVQGJ3B*mb zN&ZNL>f@6YpJWne0;;6pCaMSvyNVy~!q`e+-6D6YJto!WZDdON_EOW*s$eUBLkB*} zYsGM-Gysv++V*I4Oii+i5;o3-zkeTB;qs6=udRJ|F{-K^eFMjAO2B}aO7f#)cTrWB z`*#>UYOnej?%nYvBprL8Ldn1PZ-wac$E{h$kEpjk>8kt57UdRY+~|vEc4N>B-H1^) zHIhZ4W_FrKQ$?NHWvLF+w+NLO?JPOdh74m2t7Eq+QbZ*v6g?k1n2j z;$*F|qv?vLS%E)i{=1~9Z73YT9zQvGwDuk)PAsT%s`~y(j?9g3k6FU5gi)Z8xm^j*Cd#8ezL@6 zr4}b!8{>n8Ytk#f)3@ws$uxD{&d#>j(6vLg4_TsR%2gptjRpN zcNa$lH~}h@0NJsk*_?t*ugnzQgtuzg8}hL9SE_0ph3VUjCRt|U7~9@0hyc%V87fS4 zPe{~5K+eQO^(nQ!$+z?}e26skMn)DRmZdn@Vg^Q{QWD%h+B21-T@EcoQ1ngB#>K)F zG@BarnB8?f`Nt?IX4|Kp<4MKc{oXrM&)<`hIJJ!nQ*}Oi-1zeP?MsRQKJVG(uFhYU z+60W*ZYQ=Rxe9hnuI9g`s#FTO?bjdJ$jOO&IJO2OXo2z-=OFJ<${MVwh=6>~HIQaE zI%ay|2J@pspyq4;sx!T{W#Q$u+jOGKcb7p>+RW_ISA42P1Q_}7#Dq1Vnsubl&UcW} zt|m#VYV2u&h{0il)I&@*=+3P56a-xO{rEfCBAzJ-P9$7!^@YUFZsGF1e1gD0^=cNb zSATFv90jl7`?TzP8JiciV`^EOUl(eIZ{3dncQ61EoqB)TZcnpfJsFkfqij}l%XCtA z6m0=u@GtL&1AtTe5*3*r9MVR^aCdrl_Za)*M_(_>-T|A{gT-Xj_qa}`HCB;PA+KsF zV6po2JXA;d&1Htu=6*5^4cx0v@c;{_-)L#1fBT*d^(&yjAt&R1MIs{kTrR=MOpSx? zQ&778Xira0eZ|;evu7BXnfaF2${-)WH4LQvBA?Q-w%;Q+Cv&Q0w*Uv&UX^Fi&JKpn z1q>8b-TZdl{d{jHBd~8$BZO3DELRSR?(iuav`l;Bn?b%s&o24$g}$t;>@z4H)t&bf zp!}eI65~>r5V0UGVP=;9CpI>?@%ripb}J2A^p|QbU}tyh4*D5aY{2i@)BB1t&WP9G zCMLA0?(a__Mke2B9QH|jC?OXx4|4>RCiQlWHRH#j<)-$V#dY~o(k(3`D%UB_izGx+ zK$~yjr`a!kJpOtS&~z08+0DtuhQU812arLSNl$Pww)+xxy;|{4i*4M5qgNC|3X%fv|kZTqPR_42aG4tAaY9eIKMJ07kxH_%P^&^%unwcjQCunUe2 z&2ZOp-*iDhObgJc6%x{iB1U`f4*GxP>HUudvb95ZXNQ#kpBKP3n=n1l`{;BJ@DVQ{ zk@vzD{*bN!T2n;y997~>W8goVEBCAIodFSm)U==a>iQ}S5N}p*CEcii07RjPhIg!q z1JQG zlvq}C_<49TAvW zhoXucu2X0Cu5T^x=J+zzOT?k&$J51jh?bO`7lJGjLDvgyL}Na7`o$$HV~h|c{3>mw9?2Zn}2I$QZK_B=cD~c+&ybI_?xJMq*6OLWFc%1qJ30^tB1F?0W@2H_uba7KGNB zm0t?bWH7Gn2p{<=d}J(S*>_(kZIh7@Ne2@=rQN8C*ukpArvXA!%*GP)n97(`%hj-s zw%)F`Yqd$I+Mhthgu4^W}$QO0InSL#|ysMd`E~f$~j4D=g?zAQ7=*FB6%%=qcD_zJVquA{dfCnst|(a*7q*`NhA6v*fP@iYNM z;?T-&C1e(DH>9c{jzSnji>Qve>gOfVEcJpyl4~?W`#V=(N)X7jsC=it75yBfSPWV| zAM|IRpP%FEzqQACY^sRwSZ)zS+xSnxmfAa$Tqf%03nNts3PhTdFV6=G z`fGn*VBq2k+C?z3!0qn-Z^`IWM&XcpI7dkB;J?PesMdY=l$}a{T*gND#(7D#q0mka z)B`q3Lm!W5R|PXNGNNN*?EjMV*kU3jE%N`}cJ3zQlUMKcED8#<7+LXG{v8YvJh zV)$GL;lcrd=xci@>3zxuz{TN`z^^|JzXG}_T#_23BIT5DNGzEBA&y5mgbyAJ4i0`y zo4+$LrT(NE^&TbS-ZP5_S9;ApZK@dU{f;&*QFG5zre_M1QzSm;AaAlxDk@(}o-F*T z+vA$_yoa&X{@6P3WRoad0Bxnc=4_a^hlxI>Ti9P3(mtC=HttKa$C|q{vC@U|oS?rk zK9!BuM>TL=dk)HuYJWe7wH8oQ6nwSL7v*7EXJL6;voHPSwq$l3_;*{sTTDoZD?{eI zHJtZ*hHG55b~g*O1=umSd?#=Q(Edx^12QM$WV?LdwXvVU!Z6*^Pdd^ zHGSwhp95EAT>O37aDprry$MA1xL`Whrq;LgX~(`_zo3Ygk(2I53thih9g1R%!hVk- zj-fb-+w96btfBh3yA2H`$NLt*Fww^f7f}kz8gC|zl3F=uel+@E)sfgSFy`holEMB` zs;PA;*j27~=M+;?q87ORkY;Gn*#q;1KI*(ebpbbdY_wuZ{KQGp{kzW|hxmel>V!9m zkst)~|9^k&8b^IQ>fdaL-B)@S#)(+X3yMfbt2HY$r9I9={_0*0397>vIW^hTIPObR zXi-tHKP#%@I?NN?^Uk7ri2nKxeHc0U{=Ul;tJ$;3s*-8PwVlSEIc`U;YPUUjK0czw zbw=eUo?BDGlc=k!q^^h0m)wg1*(&ky-qJU<6U=sr134rTj<)!G@gd4)>M?Nvk8>at z&z2*@!O;91{4VkvmE-sLY!N86w+RD!w4c(vO;{W$8a|J2+9b3_@TUyM2S$3WOO%e{Ze#>2J ziVf9Cub@YATU#50tfan_$>8nqQYZ6V-*qVj$>WD@f!YT|j#p*AKcHNTf`YYDM3-Gt#J>eU>ZXf*6!B^P z6cwpTZ4YD4l%jQcS^|*w9 zKlw^1K>QT&TN!FUc<2N4&gaGp7C*JGPfmK6j#lul{wa98b;tw`JyP#|z{G8`bR?=Z z?H{eeaKChZpr#gl)}!}~*TJ}xb}o(*pGJ07ok%=Io)#I=UWy8g-Uw!k{F3x2YfUHH z3VQQrO1;6R5d|(zW7`>jV2Z3qbK%-ZUdpcTahc$GFbGvj+}zCTsqTt3wd>RDF)>QJ zBMPc8!$roKeO)PQSGNJmzX9DP2tbscJp}7zWyo@;gxGErD@H!C@JlDq5{b*k)-A1j zx)p&JMOsSdXNxZpJSZj-p}%2>7U+Fv8`+p>+v7TBqv}^D^I1+#Kf9is=fdpZjis=H zf$kQUePhUq0lnD7-_lsb=JgCF4*EHPik&6J=bAI;8wx$@&i=$r@d8)A;%FKrT)k}`GbAYinb3{g5X zUPJ~Obs+Uh&5d;=b8q!W+5t|607Qs{fA(Vx-C-mdz|_&d)y0MXEP6d?e?con%JjmUUPkP22BE>wYNh;NXT+`MxgkS``pL17uD?gGx}7{85E&r7{9}9`9MOgB$t8-7c>swp%UP<`$k;& zdB*87w2v)mp1EA~m>|{F@ROjVgpReh3tVzP{LX4IOnr4ee|=nYnE-Av%Zkj4Ore*- z_Yw|oyqf+()s#U*UXeLoISKtpU==d@=Kw%F0SqH`^<|7;i&Y8ZZ(ks`eR9=BYr#NA z0hX+QM81UBS{_6llC(u^v1?jd4pvk~!ppkA!xIr>DiJwo{O6mGfqyvOF1UxvD=HeY zNf+|;>1L?^?`5j6LG3qPYu6Wkh#-Q9-BFd~e+#z}yytW(&v-vnk8c`Hfv9wTG=4S! zc>0xGvSbT@Vr4Cv#qt59>qH({vNrUV%|mFYfrC&kc#P0%^gN`t)<%-6uRSsWm*rnm zJy%zT^$%7Gc$@z2s}z|ua+wtw86DLqES$DK9Y&v#QrfI9M<ar5L+T@G8QeldoX!QNk1k|plwN`n>NJz`B6Tr;-g+TIC8FWw|^I9rTs>x9(g z(E>wnKj}Kpe6ni*3%l!b5et#TtiacNF`+?&IHdrG#bTn@O$I(bf6qmXs3lHyb;pZ2 zcl%`apy%af@h~4(J0arJ@KD5(=f9vvoqb@GLF3Gfevs>N^bl)t$v&Q=s7Ek2>uR46 znMj9z#mvVsK0TVh-c~{UJ*7<*8Xs$qAtHM9;fzi_JI4ShjG`CmPS+kSb8g->Lqok+ zN9ygD8+yxdY!s3`<0wDgGyn_q=cXfqkt!P_;SYT5Qc}kC*B)W^-^a$I&VQ-9&3|A; znJZKuQC1%>!Y<&U!>F<<`PH$>WkoQ^xc{|1c;QPj38ld010bIw=wh^06n~g#Ro=Tw zyGDk;+z(gWu&xUT|KN<|8t~ha5Rre-XOnMt-!UM49C$fe&>$e8BBBi%ELhe+($wh( zNz(`js@o+szB@%lll&%_UC?gQHk3t!=Bd#6wWxG=H=SN!&N!*Nn#;Pi)xP1(QoFc5 z5^{VL7Mr8MH3^`yZQii<+p zBO?Vj85{f$N8tQgCJKsWSL3Mv)Ka+m#ddu;!aGAiF)7xU=HR~xB}$A54JUEC&^FnV$w&58a{#LV?D{2{E5GfgM z#ReW7#Rm_?w$=4AtSp3cm5E*-5jmgC!sRLiux2$hrRQQ_1lMj9lP!(mj>yq8T)^=r zFfJ63js{GcaZj197-!k?ycVU5fX9@B&|C)2nZ~NJ#UH=aqxP=OM-%P^%w`-PK$)U) z&ApIdhSc^x9{Yp>gQpQjj{6aIKL~apDGk}^0ct+mnQrMR>|n4O^Tm$7I3{*C>!&^m zV&byjX#kWS1j59qiJ7ar+&d>H_gJ00tb*?kbhLCE=>$G>Hv> zMIRh^Jzi*t?(8bd3Ml*)!yfyz&m^zgrZ#~#RH{O`^#KWSy1q5%{f3y+(9|jjR5A9hu2E`QBXS}s;9SMf8x_n6Q`F2Z+bkE>ET}&O zxoj=c>ggT76306^X^OgOnYBi8a*WW zO33O9)FJb6%}O;3mA4ND5HcTF|7lf*L-w6*AB4{hTxKXb)-VbzRSC+STJ1$^J(s+d zx!pI^4X2dTe0&pC`ZuHo1QpKQcZO8e#x`&w6NowV`E9l9!Z%OlLD|RzJEY}68LBs)Ib67jllVtc7I!=wj^6b1&mFXta5a>cc zH%k6-sP8X3h|jF~f?1REbg+^1qWP)Jg!{ig$a-Fd!)|*|Gwyk@K9tjvG18jE#K>y3 zqBsW$h z-7}cVJ+j4~2V?U6_3C2xSIt2P10rv2ob&Me+wY~{qr35Gk;Et23#J#&&YLOxNl;d_ zzuVSkkO<3#_2NrLUx@-1)NuL-&$hNoSty1J@$i70Hkec@Xf;_7fuyU@`=aXYdTGbE z-NTri9DK>}oCQ4Z@K$WQ!=~g?W#7r({S^?PbJe(p9aGMl_&-Awzey|?@1*S~)(wspRE!F}`-{|u7_a>&P>wCiAmG4&sbuw$!DnG}D2e^{4b&HK;s z;H$yK^O3D$O|k2Jf2QjcePUtZznr8^)4#sh)eM^1*9>cNhZ{~Lx;1!Ed(|u+T7cUT zCHeh@z4H5f|DgnayUqblyku-rFY!71x!$?PAW0i!ogepj7!+99xo@8q^PdH}>}(65 zTUk*%aI?=whi$lI7%>eXYo$dvs%y}Bl=_me zNP^k(XWl13}o#9(8ThI0GHC>>Anso|A2BiD7dBsCt@J96l+C^Xy4uAP2(h*vd zlKKJcK9l60vUB5lBg%SVQ1$_jH7(H0q7iMefLvXGxRCJ^QYPGtN?J-t-n zfChl%;F@LxKk6KQ1_-sPjEwob1T_VS55d-QzW=$7B=x(^(wK8w7unA~-G27(NIiLF zAP*ME-*w9@vq@m!)~+sLKdC^go0?JkqZjepT~WHE@lzhveC6_;x4b;&ogbj zk1)xes|}6~iyX>vG9Q0Ms|U6syI~LAC5qMvAkb5_X`q;bgG52hJgT;*+39)!xOYIHGsBfpdOI6m1NU_T(Hj~F&IlsAn@MQ zU=mYY87mt!Hj66Z{7~+Xc7a4C%Y7vk{=A-z$loGZO^{HF)Z~L=GTH9 zjx8q6^&Hp26(r%1GV5SZPW$Y>39els zW0~_zTlTyR0+VI#W4B;pI00bPC`>6TQ5qqSQxp=ib?h~!=JYY4f*rP=;r4pqYyBq` z066EJ@NHhaSmp8Hxo#?|nLI45q&@5tlsKUO2b+{HA8-z5Wvq{g7bY-#|f!ayM(_YzGdCWX-7 zb&dqPNAT5#-q8k0I^w>WjU_z@lB;2tjZSo69kDl&usHyu2!i3SsVS_5X&VvrfnrDq z2$QFx$f6w470KAt0adIJ*wmNY&$njhqG+C=Bq(Q_cX)5`e{`psamnZT(iS>@!e`PwjdLE_Uh^>{9ON z*2VIVxCtFho?(O?q(5;2E8pU%j~t49Az9f zEl2BxrRy|3%Z?jG5W{4Ligl`;%FB)HklX~aXg>J2QqA;61SBSjVaEYycTad?B#;23 z9n$dx9Z_eFEHRj15r&SO^_kg-!e4CaYDm-BpVc9dUm+rcna-la^Zfi8=urssk-3q0 zumtLU(nfTJ)5okPCfO%*<3rUAXuJ=3VidlXEnOc58*)^|9W1xf+vKEICL0#_hxfcvXkoSsFa?WclK?u zEZEXBw7f6Z$yxKC*1yGml#(v^c9avY~K zW}_AM@VP&1wl9l|cR+Q#+*3N4@y?Dz_5O|9+uQp{(1VYenVCNjnN??IX1-NcHok2J z73e@5;@eLty1eYt7!FdWDwpqI(^+hA$6)V#Ol-KY6#{7)P}Sj^Y*F{Im)j8%r(NTO zVDSSe8|=RJbdl_Re#b^Ge0cDsy}d|v=kgff2Zs<;TO*xQ24Hf7LUd_#DGVRh$HZqp zR+9r$9L6_Z2@MU6DWJU|2@WVy&Wuc5Tt4%iGkgl;Gh{)pY70Wr4^m8xoq*H8w5q?p zl6J5WO!N%Xs|qgQ-!5Fxa3a$q+w|TcUfAJOm)EfR)_{b z5K~w!wL9XiL5mM^kCW7$+ah&B1Dn2|M;igG%=UYA8;n3@wCsFE%R*lHOu(n(D2 zzJrTGinPj`gb1NHdZ=(H%D?>pdW|pkMJuqbO95fchLZm?=z%YzKw1)MzyLeepVdV6 zClRa97alE+F7W0R1P6q*_7ijJFKpQupDUmLt0>7DTS`rs9Uwqf_?L(oJ)jq9DA1&T70k#$5eJ85!yWNc=pjpo*t$z6W6uP6biV4Yd# zeTD1}J1?n^gq@7-Q^5}Y8J9^%A^dykOfRNDpAQ(|9~YogE2NvMD0Gk5-cjiP+ecEf zM$-;IgG{p;nt@<*pxLS6mBl>7LAtBXEk=UtH!s^jw*gCtH6hG2dI=nEtxXxv0iueN}Io$i3jAuM^OO zSM~h;yBPPHX2v+-FhTjjr7%|u)|0Q}SKy#!xjwZA_E&LgdV|xJd1eNDO09wA)_1|M zXnJvo-xm`zy7I?hZDrhMY!c{Js%BM?S-|@7Ugqwg?yy{*D71%E=HCHbgr2jCkszXH z;0qegZ|9{Dw^_HWE6099y}_}W;HmWM$ysaDENE(SQ1}FW4iFD!8WV!j^s2BFFSl!D zn7mR}26l%1DDV=3tuQeU(`fA`25su>VHs9$bL>Y*#v>1#0&)fW-Mg&;S;}Uk$uiq> zi_QTF0~3=&KJ+AT*?OdKmp90}$Y8NxVF3zaKp^%mM$+DD)jz5OQ2Wb@b7vPHnlqGA z!avTZxEe03bxjcJ3S|sAX<-iElVO4;NG?n*+N|DcFrW3ketogLqW~XRrRgFvxeu7Z zzr@|4B+al6qYz(`Q;sP4-_7zs=f^4ZXoE=>09<&d@dJXJUvmDR7hq>nbWrdrqbb+1 z;g!mpH-r(o@XOAAG3{Vu*ohgqTz?KybSbWYKLlcNPt(H_!h1p>nSiCOzrWN7SUl!G zz76|OLg{KSYQ&nF36oC}cFg~xo(>-IvJ_huSZPF+RFF5`CLt~Y3@(}Fp z%DNs%6M!Wv%ll-$KA;-ICHuR?X->WU{qJzNsQYxIfI0HXqf}%*lthup38u8Ms-i@E zQ##qLEvJ3J!J#od5zm(fDH7;?KiQm2{SF+sCJ_kqSq}av;Q0lL&P8-91UfKWHk#ST zQQrRbBbW5p6N6s64d*yH70K-3gXzn+_reQQ#Z%X|^Lu)!kAA5WmAe$p*|JSQBV*ag zeh;`{K&W1LY4aG6z{hF!aoDM|J6G^h2y}H-X`d>&pMCe(5*;)OJF3C0NMn)=aZQab zP(}I}U|FIHUa~>j0;hxIyFU-1y^sj}Dm3RKK~5>5P=mEVh(bt72dD;uqX^orT)LjP zYU;xGIx~Wx$M)dC>gB>;(gY{-dF@W9JE087ZaTm*xW00Y(*QH>sEKLh{(g_!+}m4G zygy@*9mUHl;D+@A477Rot327k-_qZsba1_k)lJ#;jgqBCCyTVS6=)h>e1#+o!UCFS zW@lGzrY8^cdb578-M@c-#&sU?y|R*$bx#%_4^P9ClKIKKJB+%oFpWOit98>^l3cu) zV4~hr5a?1PCT<)zKLu_SNaBR!rfcU7#1<1Y*O7qC(OC7}xG)4;!nXcC*c?F%bCfcf zaPjfkivli<+2|42D=zBMcol+*0xFMD2dF{zT4kR>XXLZ1&R`1L^fFpof#pWIIGl%+E@Y?A3vn8-B`FBx;w$H4-F2Zxj7Y0+~Jb4YG#q0 ze~?)jLNv6Xj;$s`Xh%LULO!&s$}o!4`iawQt*(uzsP8MUtIe zz@@okvk3jX#*o*ZG7k<)Y+@c$9ILQ17RGFf4oZ z+b35gdpzmhTJB57w}U~4pu%etykNmw-SwkInjgT~vSKn+mc*9;T(aWC#NCZ5sX5O1 z-e2$D5ndV_QZsvAeF!Dvmwv-paS7Yy^Dk(t&xMHfBY0G{R%lRt*^(W|bllEFpHD(- zo3cpPDiP78rnZg7bGUo~BQdjZ-E2l&d!^5m2hB3>7Uy8bCQ zoZl0rMzX6W<0hYk-r7^XIzvJF;osV4IJk&|?g8ZD^{d(}D)2+3Bb4%Ab52S^&x+~s zG4ktG&N4jM!ew!Eq!hTSK37h?Da^#6T^$ZX6>EC-kgbgK`X{wN&@#z%YQ?q{~v zr0XwHZwlXr{|7b%h*_7K@r6K%a`2}>EedYU_NiBBM0qexhk?GuVy^xm^w&l^v3)%A zQvLb;L)?H@nb$O85= zU!5V5+*%o5v0{)2$vi%^fQBOQWz!JKE1a!T{q1Noc>2ZcF0pU}AIay|ltn@V-qzUq za6rqH=4q!NhVP>G@ZKBxnDuKrm#M->fK^47u*D10h0BXzSt>e zTJ#YY6ob5;*(}D&bjn@3SG0STKtWVj$HR=DaN>+bYM{dw{FC#US47|L z74aJ7tEW-=baBdK)C^3}a^eNvwAibw%f^1-;*cFQLH>_E=l7@hma$$OcWNs)zO%^} zB_flgUL9G+!@w(ekRa6NVr(EE+S=v#3(9ip(+!R}Z|L6guna!{> zUDimza)Q1a1qbV6RFY^GX<{vVPW8La&w$h5+ikk`0O|+O(UPKHW}cW*-OZcWK_KU$W89zd9T)tft0s;b6Rn@m( z0Kj$TB7E5T?j}t&TMf0?*~!0O7pjUqB7`!3c?(O`?rv7D;+Q%t$RK@K5OH;#JPz8w z;9-VZODqvdI_mra^VU$-$l6r-3aOxS!GjuEUl9t4NmFqvzmIWU#`)19lHXhPIx&J| zI3=&{t%-ca^2LhFmegCf6>~wbKF9e(86y-Q68MK~OnbplDn4Yr{#?C_S`}%dx`Y1d zZ!NuQW&bOIf7nd|4AL7%Xcm66V)QXC8rsY8T@TZ5Vc;#Z(8*z<5gbJ#CnC@cu6-6F zy!)I{DgtNsx4F9$j~iEU_|ij7yuu_mmc~0)KEZ|BFWzjLI?KN~&gCHOp#LuWjo-7B z>E0bwvk`5rfRmYP@*G^|k^Yy1?S=XmeX2YRLZJHH63J+9r* z6zHkls6Ezk))}88t}d>n%zWZ?bJ$%(=FaEC)Lvtjh7X>}y;3x+pHS(99rfa#<~6SL z_Hv(`^PNDMd()$Wn)EmBrO^$y^mKGTb=h|uwe=sgEf<>p5F`r-Qf0Aek9t2lm&h?y z{*GBjsoLSZiC7gS_egnLm8c~CibBO=_t;{%4*OH3f32+VJd;GugYYg?skrTfcg$j^ zT;>+0!z;w$Cn9*`!^1Z}HtTbBQLUxiyLnCEbv?hnpQ+xZ)M(%A;zSY}*Kgo;7cRJ>B)h37Ox&?Thyypb;CsEjhdVVNf=SLvapWgKs! zWbX;i^Y^(h>goO{?xB_DNJc0f3MA8?{)%!Ed}|_3-D9QoMsrq#%iYo4@7ejeU*fxK zMOGH!-)CQ+U2#ySKFdiy7$a%WN3O$J#X-Dr&;1UV^MpVe~=E@>L|K2f0VWvp2_#bSi&S zHVsG|FV-dBr;N0=i}Mmc-m*6TR$kD>NbnBxrjE&vWv`DS_jVV}jI(_YBC)mO4fQpQ z>n_?j?4Hc4Y1O!>Jas7vYr+W?6jmSg6CfeqoGA5PX!T3mG&sz_{~FV_tmD%3Y8b(I zdo`H$ooWMdN-j@`pLQg!&E@+ME;lAF0m(^$`ZEOj80`^etLH`3vs?}c;3w8as?(lrp5!@wN9`05-;oVkr7V5hz=%ny_wr#u zLR7fdx8ksFt~@2u;Cq_#rVw{8PI#|@=4==q2-{_IqS+b7i?j@ART(|Cr!q_3JxHa0 zJI(NnD)^2AnwR!ap3DwSO9Y$XV)^vWiMQFW2=? z5ds$ilmcE%1vp*-@%pq(awr5!|E7^ZRNy zQFkM3HZZI7j5>JxbdgYIcq5r?PSDsCo>7P3b~zq4AFL-wyu(K^i??jy52q{D7H&Q8 z`lw9vd+$7fq;M%ym5LSrXnEB=R-BADON{1@wM``}jix(E@mE{~7c;<%+pWIXybCKf z0vdx7!??G?8qj>yqDQ;jh4=D1#=JyaEhR6!W^~P;Q)8FcQzaxNJv9}3u9?DDRuI2J zb407`?4X;{$g%Z-eDbcC8Fvu5hN^PMLDa$7_BdT=O3A$Uh;|q=LQx}f+tLE{_uxLR z{NZ3IuZKPL?B?TgQb3;REJItbFUn;p(3gTnE)fZ<59cA2cbZ<$s+T2u1`?B zLoB6jwgn>R{8R|Av9X~geWXOM3E#uk%&`wcaHZg8)42Dzg~TL{-F>OEt|H=ziwo>W z%IBT0Um_;gnKIcQzpG;P27|zMV zo%I`7YOyGmxM%FP`NE*e{>`gM-Aae%0Fo(;W+vZkUWAA4Gwa`Lh@;@Z;cttFy^K=( z>M<`E7+4Pm?n_BLd?ARJIHS8b+7z!f?Wafa`0-=^kPtDKn+#94@2x9xPA?m&>@KiAwJt67MDlFEQFkiya~L*w z!IW+NM+A1SVG)DCWb2Lenf2wrR=vTYwB4Wt7aoB z3Kw86H2ImEUM^*+q-HaHu{Jo|za`5q_Rao1hZ!wNO|^u5a@M^gc_tcXa;crx0<5~( zP z#`gQ5+MZ1{Wz;@d^3iKdfluzDdeA(9--xv485 z^NvFBV(&1D_sNsi^o7h#d?WAV>tpXx!mkGZY>Y}dRbAYh(ysX868m~Wmpb3ywsto8 zJ{J8}zl#|D_IWn9;4SMBnpLOgfyWGo%pi}15&Kj;b+o28^~uJau+~5k{7)iwY& zhX{wbxlf$99DBWu?>%@}gWl0KbWl~#{h^S4y7OFZt(7h$O>`JRMyMNi>)=z$?9`l^ zy7<5Kfwxs+za!iG@c!WIDvU2#&%4=SMEOHMY*KCC+kSy~uIDk4h9f%y0eStV(#8 z+g%hbal)AS$$iF1TPxw>`{j+@cc>BtB0cs?^UHh$txHUYmYvXv-Q!RS=GNLq3B`6= z>2PwC1E#mO_dLkzUPl(WkrcV5=0nIhBP+b)N0!5xp!n?9`h?|qOyo?W)%z}c?#3MJ66(os(OV`zZLVLL1UEaFpD2+InAo%^mu;AZtSx0)%F6_v zz3EtGq#yUd5YoA#N71Y+=$fzlErr6z;aF99y-$hn%mGYnvaI8pCB}mQs&a@mQt!FO@g3V^oVT@yt}*)%tbSLpf+LVkpqH`Y5Dh8;HL* zb=Zmxsbyu25)ECotd7%33}b1*IW!r`xa~PClTQ1*Kb*x=M!X9KCUbD}xFVyX3chZ7 ztaE$}thhF6BgGG=`*p|bs|?2H5p9J(XC)d3yVm>j@9%xA58AmQ6yCMwxi?F~6|7D3 z8^x&b`Oe-Wcdyv8hRyTC9k&#YJs%PpOWnpZ*2=35j*nzwQB5_ug8%IJKNcO|JH4c^ zn0vcBq3I=6+kcOv)`_9?Br0$6ylcc@{B@CDurhfF3niv{&qB$pu6lp}_>Rc{oV%@D zd*XKYC|k5Jd~a(r!tFytmagG1gjwm@q*dKlTnIlJAH*JO>D9AuzIWYNkTM=J8^}`V z7bc8D_YhQ?Yz>g?ZdcQqS}G-A@`zz#3eI?cFif^Heg8UvIk;Te$YYGTHYhjq#WS}1 z!`a!6&2>G)LYKv9BFBZZjb8EfrL%$A=M7}qvA(uuG+}6=rjdUvE%55dUA-DIZrWJ0 z)c%y688g+i!bK~pQX?>u>@sQb#(J53eEY}HgzmgyNr@1C(q{^zC(@#9ytl@@2IzPzWDjC3PPysQX1nM`uy4_2)jm@E~88 z#Fs{>N*buHb)&&1%*~Odw(uyC2>c>`LjKF+s*6y$4q+0vf?+PWh21e;TxvRfvfN}Z z_?kF&cO-3ParNcev#a%ojSU=OXI|_YJy?4@HeYLZtUuVARfTSuf6X))c#p$~xc#w~ zR8Y|~e)EQZgp=5-JjpZrvFxho?TmuAjuRN&pGx#3O#H=(?g!Kz?S9UJ-+;}y$lP;6 z8drLZzWk`7cR;3P>40@(!^Zjx|NioZTe`sskJPPA`|rLll)rPT8kRg?`4Pz}l4!{N zxbSo>0;|?(Ywx^%)K*VQwf|10gLwMjI*mv?nX+wL8MW-3;b2(H<3^1yM*YVuQ$NH?A|+OMF|CWF_2uJR;Se5H)RH1|@{TeKBnsJ8@mRWm z{8IjJeOqhsrgvQJq|!|@Nj01MHmJTAv&sb3yr9tzAI5njwEWYOBrP-qVl9jwkSWjC z_@P~acj&ztocw*82=U^|=ZUQvp^cSj{Ksos@Sms*FHlVlX_Ht)Q$NjpnhGsV1-&P? z&5uibcYfr$qO{Fn%-EAJ&YM`Kb<{*Wa=v`mJ9&Z8v88GK8dnHc=uF^c%9UcJzE8 z+w&psKr0dOr1dy!%Th^KGY!Kqn9b4`IaX)$!WIx8**2XN)gi!AJp3m;xX8W-MeD;( zD~de3uVl1#<7u(d72R92L#QE%0UiU`YgA8v>0;?-b`u_yTkJ6Y*b|8MWV^=0^1A(d zd-_13X9Y22g?jTgKV89@KwA~jQdNA!A=gn-W20tHBR5<+G1)Tzy+aen#*N4Kd!9Dj z)nhcGo(Z);P>nDO1kUaUk}S3Sy(*M%OWZ`LqdCf7$|;!<0r#<48&^8Z6XAX{Ggmu! zy;}cHEB$#T%6Zbr<6x&j#X)d6YaPl3mnB(STPUhP*j#$qG$Lx_uJv`ULud z+cZ;RUpu+-b=g^RD*g8%Q5=FD}UU0*91*J{XDn{}xh;q|gWxcMJF62wK^Yw@l zAM4L7U$cDfw7ZZy#QO^z3p5poh&XPdUpwj;8Bx4!wFaG18W6xeF}Y^W92poh=R(gT z^cq|G`;{!Gd2On6>5L4lwWNd2|A=|qF+oRN5Ea(z^wWP6!MRlPVGAR2HIrblnTHm& zNPyPF!+idL?$kp!|G5ceu~`k>M6&3O0KWDx(!$jWSt7j`wyPRn`g~!mmtO0-aXTZN z){cIt<*phiI}DM6^(sdOF==7-uHbv@y_0vJjRP8&UbbYXZS;KQ23GO%5)pJ8E4+@0 z2L8KlWnGud4!7L3Bv(v*pX?28*?2EG>tS)1aW!3m=; zzLj9b;L0bd7$xT?f0KRpr=Zn?yoTbpl{7HUXQ;D+9^y)rB^y^Rg8yQpe(c=#U?a zqo8IMH;sZ379y}j^vWVwYvc$d{!&d>a`y|B*7trr?7=0dpr-YYgfO8b9q(#;4gfjg z-TJo%)vPL#9;68cbr40~(sLB~9L~lfn-ez^4`SUeD@Yq{S|JgalFD1i(^%xc4+|T6 zU3g22QFmVi0_0*W$I16J9eWf@98X}q39;#X1!20zA}L$>nK9yGyE|X_0{<+Efko|4 z9Cq{mEbDBOI9Oc)y24^2+m5gO z7y~>jH*3)@F;*J47%9yRUP^AXtmz^DNi5Hm5wfKRcs4SJu|tJ&EwPhC9|*7KlMX&$ zuzhJKM^lmr>kge=6eU^w2bGSt#^O{mdFpANYo>em(!TTt9MhnT@p~KR5!B!o0OSWrb1_lldk zerCI=r29QHIXJwk*sZM>Nu`B5Z zih=6o0@A#dY>}6FCG~IHx}S$3c@?dGu&uW))5`ge>Q%F_;s<&R(PB45fsBk;U1N0e zVn--RyXz`%SZKY;L1LSrGTms@qJCI=KZH}<#`SX(MO~1K%|>1tbQOmWn>e6niXRx0 zFhxhQOQ8G<`zv-)P;6WMbhO9j;fA2w*yabxk5%eK?HcuQQ%jo%duY~R#9+$*Drthb zU&<&+x#7&6D?k1`dtfm`P3{!^=G-`opKrHA+pd7;*i$T>?hGZm2zB;Q?~Jtsq&;z3 zq8KJ!%RIkS0}6LC2o5dW96n2&#N>;PZ7~vl4<+)w6}~qI(*{Ar@v*W1R;L8%)`4ZMHdqUy(NIyAtixO^Z&bpI8o5(}f zu%r=$+J9ocG1X=I%k(C+Vp6P+NS)G|oW9MHt4+|G-lToq(g#!^5gZ)hAkaxa>!7*J z7iUjfrbsc(gHk*wL?c(obY&#=a9p_Khp+ny)tD?F!UbKd7XzK5CvtdB)2K5qa5pIz{#FIg1Z_^w~ zZka`-8nq>^r}m($TS!4({9uJ4h)N^kI$oDLP3oA+x2t~tEPh}>6J{yZUh0w7g#c6L>bdmelNk- zA?w>C-8_T92ry5jOkw_G=j}R@UFV&dm9=#opa5sA4&8V?JFcq@Y`q)ia6`c7Qkh0-<)O(IyZM?Ueigt4420li6|NCr_^14#GHcd;Q_u z@8ggd0EgbMUvP;fu&Fb-7otP)qIr0mHtDNy@Ju&89gn5 zZb`az^(0|(=epHNx$}bV7q2;T{-BL0)czskdcEY0+%mu#@O95&r8mZqw2vJ%h0(_; zO#UN1vn@j>2>Xx66@BRQ;TL5qP#l81u3G2HeL&du_RSkT5sC4j;hDuK5(YHD7*x_c zno|sJ?#h+bs}qT(#J=$_a$$<;w?g%KA$elz)QJ#)Yej~8PVUF;A1d6a9j*PDqVPvl z=vS=RBQAF|4#YMSX$0QytJ5+=TUL=LgEjD>FpkL|}*WZ%VylUUq%@vSI-GU{AV zqk%F4v@ZZ5W2a7VBiE#hEZXg?Y$cbX4PAXjbfj{8DFUm!KcaCKLXv5Ck!)={-|v!T{Y zgCYG=Q=e@2engk}3-=avM*CA!KrViW@l(C+9 z12zp@7`fQY+Qn>NQ5?(D4|LEy$`%y1z=^fU>bT4rTfgZdl9wap)qfz1td`oC3s{yq zYjZsshCJGB9TWaB(4D0`UwstxCge<3=)53oOImJmC)NNS+k=OOrO}l8Zf`kzYt)aa z@}mdouJY%6e7bQ#hN)2(v4)Q*^wMUazEYO+y!6}r+u8D`24@m(eEORA(qp+k@!0TR z5?X=cP!ef33LqoOX@uWr`4>Y=E2cAN<;yL35&VO#t!Y}6b$z-fkda<9~1kujAj-3V` z)6p!;ivXIjjmUTr%5rIxABjgIZp_y-QcNB1+Aj9-*A>mvV&f6dJUa0nSn-bPTOgC-}AF7Vq0{PreYXVlIY-L4kD!M@d3Z#|$EQwy!l>&o+W;wq~GAjI>`S%IiOOKn!S8JhyZ0*81l!gBj zY_J^HdB5!|P84sy8uxsxYq3|OBRUwz$S5CA;;;G9s+^&Z{VOZ+u-@`4D(x9l!wd+(%Iuby*i)IYGD zjpeXxwqE~L9o}sDdQ>@&M|<|*L*GjNjbUsx3}A}=$P+Xrb`LT#$(?}%J3IMByru48 zkT|_$Sb*SuVPNWYvf%8$6h4|G${`v047Nxr+P3Thx9lF_&}T}a+&Z)8m|G0<|Be#= zb1zTZ4Btuc-3B&S&tHMnZ+Uc(#7!%BiBa@s2q<^k06rsl^1}qxk-|t}LvyBZsF#0ine!PRy zr2jA~_~H#DhhSs~sNI_lw12EM&W&y31;)V;4$K%<6GWBmi zN)VS2<5n=Su;Q|^M!L>+0fzaIpa_k4zTpEenf_&wJl@ zzk@58k_MN2xg8K}K5jh#hS%He7o*0z<9UCx`FX?Ch`1d5fs4qB-;0mgNV+(9DUb`k z-UASd1WXRWh@saX=kH&+QQi|iV2UjdUhyY|h}YKM$Y|Y=N;hk*Ax#+vut~${J-_G( zMT*tp0Cfv0pH?5fBmtR2qj`IBJ1-!1{Rws&c1{ejM(#9@W79%*lJ5&f&e-h4PcK_d zJkF99!khtl=QB5N!W)dGdH2~ucf0_9M#j%hx;2SM6r?2YZFOm*A2_75yVk0?6AL-9 zPjZcpQZ6&RByWA9Sk$U?-iBd3_)~fhSo`&AD`VDI&TSFDRKgV&OOHG>y@CmO;a@H; zI8XcV`58>T&UlW5m7UP_uvAL)>G!{)9rl`5rLf<

}~?CQy0y%}D`tq|q+AV`3S* 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

& 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ÝS&sl{Ws)~cx^X7KV>^1OnjdY+D^D36uHawiH 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ஊ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 literal 88515 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ð_k0~70HSF1?8K<9nA7q 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

qL&X37s36}7I8=93yw<0 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 Pk&2<7sqP1D*M$E7TiIGI diff --git a/doc/source/images/multi_segment_diagram.svg b/doc/source/images/multi_segment_diagram.svg index 1ca371e4d..94880032b 100644 --- a/doc/source/images/multi_segment_diagram.svg +++ b/doc/source/images/multi_segment_diagram.svg @@ -13,8 +13,11 @@ height="1052.3622047" id="svg3504" version="1.1" - inkscape:version="0.48.1 r9760" - sodipodi:docname="New document 2"> + inkscape:version="0.48.5 r10040" + sodipodi:docname="multi_segment_diagram.svg" + inkscape:export-filename="/Users/andrew/dev/neo/doc/source/images/multi_segment_diagram.png" + inkscape:export-xdpi="150" + inkscape:export-ydpi="150"> @@ -215,10 +218,10 @@ inkscape:groupmode="layer" id="layer1"> ChannelIndex RC 00 RC 1 + id="tspan10382-6">1 RC 2 + id="tspan10382-1">2 RC 3 + id="tspan10382-84">3 RC 4 + id="tspan10382-4">4 RC 5 + dy="0 -1.6593653">5 RC 6 + dy="0 -1.6593653">6 RC 7 + dy="0 -1.6593653">7 RC = RecordingChannelAnalogSignal 0 AS = AnalogSignal Segment 0 AS 0,0 - AS 0,1 - AS 0,2 - AS 0,3 - AS 0,4 - AS 0,5 - AS 0,6 - AS 0,7 - AS 1,0 - AS 1,1 - AS 1,2 - AS 1,3 - AS 1,4 - AS 1,5 - AS 1,6 - AS 1,7 - AS 2,0 - AS 2,1 - AS 2,2 - AS 2,3 - AS 2,4 + id="text3351" + y="440.08768" + x="377.86072" + style="font-size:15.43365383px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans" + xml:space="preserve">AnalogSignal 1 AS 2,5 - AnalogSignal 2 AS 2,6 - AS 2,7 + x="524.63495" + y="474.28125" + dy="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1.6593653" + id="tspan3365" /> diff --git a/doc/source/images/multi_segment_diagram_spiketrain.png b/doc/source/images/multi_segment_diagram_spiketrain.png index d2396cab537f36f7c44fb2244067960e01bc9f5d..0a9ec7508123e5a325483692d3995bf9a396fdff 100644 GIT binary patch literal 69457 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

6UEs5ATsn%;0ipD=YkpmD^o*)etsi)k@|rid5}G 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 + inkscape:version="0.48.5 r10040" + sodipodi:docname="multi_segment_diagram_spiketrain.svg" + inkscape:export-filename="/Users/andrew/dev/neo/doc/source/images/multi_segment_diagram_spiketrain.png" + inkscape:export-xdpi="150" + inkscape:export-ydpi="150"> + inkscape:window-width="1397" + inkscape:window-height="855" + inkscape:window-x="27" + inkscape:window-y="6" + inkscape:window-maximized="0" /> @@ -206,7 +209,7 @@ image/svg+xml - + @@ -234,24 +237,19 @@ RecordingChannelGroup 0 + id="tspan3170">ChannelIndex 0 RC 00RC 1 + id="tspan10382-6">1 RC 2 + id="tspan10382-1">2 RC 3 + id="tspan10382-84">3 RC 4 + id="tspan10382-4">0 RC 5 + dy="0 -1.6593653">1 RC 6 + dy="0 -1.6593653">2 RC 7 + dy="0 -1.6593653">3 RC = RecordingChannel RecordingChannelGroup 1 + id="tspan3170-5">ChannelIndex 1 `_. - -`Source code `_ is on GitHub. +Support +------- -The `bug tracker `_ is at:: +If you have problems installing the software or questions about usage, documentation or anything +else related to Neo, you can post to the `NeuralEnsemble mailing list`_. If you find a bug, +please create a ticket in our `issue tracker`_. - https://github.com/NeuralEnsemble/python-neo/issues +Contributing +------------ +Any feedback is gladly received and highly appreciated! Neo is a community project, +and all contributions are welcomed - see the :doc:`developers_guide` for more information. +`Source code `_ is on GitHub. .. _OpenElectrophy: https://github.com/OpenElectrophy/OpenElectrophy -.. _NeuroTools: http://neuralensemble.org/NeuroTools +.. _Elephant: http://neuralensemble.org/elephant .. _G-node: http://www.g-node.org/ .. _Neuroshare: http://neuroshare.org/ -.. _Helmholtz: https://www.dbunic.cnrs-gif.fr/documentation/helmholtz/ +.. _SpykeViewer: https://spyke-viewer.readthedocs.org/en/latest/ .. _NiBabel: http://nipy.sourceforge.net/nibabel/ .. _PyNN: http://neuralensemble.org/PyNN .. _quantities: http://pypi.python.org/pypi/quantities +.. _`NeuralEnsemble mailing list`: http://groups.google.com/group/neuralensemble +.. _`issue tracker`: https://github.com/NeuralEnsemble/python-neo/issues \ No newline at end of file diff --git a/doc/source/install.rst b/doc/source/install.rst index f49dad50d..8ab983c0e 100644 --- a/doc/source/install.rst +++ b/doc/source/install.rst @@ -1,6 +1,6 @@ -************************* -Download and Installation -************************* +************ +Installation +************ Neo is a pure Python package, so it should be easy to get it running on any system. @@ -18,7 +18,8 @@ For Debian/Ubuntu, you can install these using:: $ pip install quantities You may need to run these as root. For other operating systems, you can -download installers from the links above. +download installers from the links above, or use a scientific Python distribution +such as Anaconda_. Certain IO modules have additional dependencies. If these are not satisfied, Neo will still install but the IO module that uses them will fail on loading: @@ -26,7 +27,7 @@ Neo will still install but the IO module that uses them will fail on loading: * scipy >= 0.8 for NeoMatlabIO * pytables >= 2.2 for Hdf5IO -For SciPy on Debian testing/Ubuntu, you can install these using:: +For SciPy on Debian/Ubuntu, you can install these using:: $ apt-get install python-scipy @@ -119,3 +120,4 @@ WinWcpIO Yes Yes .. _`quantities`: http://pypi.python.org/pypi/quantities .. _`pip`: http://pypi.python.org/pypi/pip .. _`setuptools`: http://pypi.python.org/pypi/setuptools +.. _Anaconda: https://www.continuum.io/downloads diff --git a/doc/source/io.rst b/doc/source/io.rst index b1d429b5e..f94370fc7 100644 --- a/doc/source/io.rst +++ b/doc/source/io.rst @@ -240,9 +240,9 @@ This example changes how the log text is displayed:: For more complex logging, please see the documentation for the logging_ module. .. note:: If you wish to implement more advanced logging as describe in the documentation for the logging_ module or elsewhere on the internet, please do so before calling any :mod:`neo` functions or initializing any :mod:`neo` classes. -This is because the default handler is created when :mod:`neo` is imported, but it is not attached to the :mod:`neo` logger until a class that uses logging is initialized or a function that uses logging is called. -Further, the handler is only attached if there are no handlers already attached to the root logger or the :mod:`neo` logger, so adding your own logger will override the default one. -Additional functions and/or classes may get logging during bugfix releases, so code relying on particular modules not having logging may break at any time without warning. + This is because the default handler is created when :mod:`neo` is imported, but it is not attached to the :mod:`neo` logger until a class that uses logging is initialized or a function that uses logging is called. + Further, the handler is only attached if there are no handlers already attached to the root logger or the :mod:`neo` logger, so adding your own logger will override the default one. + Additional functions and/or classes may get logging during bugfix releases, so code relying on particular modules not having logging may break at any time without warning. .. _neo_io_API: diff --git a/doc/source/releases/0.4.0.rst b/doc/source/releases/0.4.0.rst new file mode 100644 index 000000000..b68ced236 --- /dev/null +++ b/doc/source/releases/0.4.0.rst @@ -0,0 +1,25 @@ +======================= +Neo 0.4.0 release notes +======================= + +DATE + + + + + +Updating code from 0.3 to 0.4 +============================= + +To update your code from Neo 0.3 to 0.4, run through the following checklist: + + * Change all usages of :class:`AnalogSignalArray` to :class:`AnalogSignal`. + * Change all usages of :class:`EpochArray` to :class:`Epoch`. + * Change all usages of :class:`EventArray` to :class:`Event`. + +.. note:: in each of these cases, the datastructure is still an array, it just has a shorter name. + + * If you are using :class:`RecordingChannel`\s +RecordingChannel/RCG --> ChannelIndex + + diff --git a/doc/source/usecases.rst b/doc/source/usecases.rst index 43acae8d1..627c4e043 100644 --- a/doc/source/usecases.rst +++ b/doc/source/usecases.rst @@ -15,6 +15,8 @@ Our entire dataset is contained in a :class:`Block`, which in turn contains: * 1 :class:`ChannelIndex`. .. image:: images/multi_segment_diagram.png + :width: 75% + :align: center :class:`Segment` and :class:`ChannelIndex` objects provide two different ways to access the data, corresponding respectively, in this scenario, to access @@ -98,6 +100,9 @@ Again, our data set is contained in a :class:`Block`, which contains: In total we have 3 x 7 = 21 :class:`SpikeTrains` in this :class:`Block`. .. image:: images/multi_segment_diagram_spiketrain.png + :width: 75% + :align: center + There are three ways to access the :class:`SpikeTrain` data: diff --git a/doc/source/whatisnew.rst b/doc/source/whatisnew.rst index 13b1ff22b..2083622aa 100644 --- a/doc/source/whatisnew.rst +++ b/doc/source/whatisnew.rst @@ -1,6 +1,22 @@ -************* +============= Release notes -************* +============= + + +.. toctree:: + :maxdepth: 1 + + releases/0.4.0.rst + + +.. releases/0.2.0.rst +.. releases/0.2.1.rst +.. releases/0.3.0.rst +.. releases/0.3.1.rst +.. releases/0.3.2.rst +.. releases/0.3.3.rst + + What's new in version 0.4.0? diff --git a/neo/core/irregularlysampledsignal.py b/neo/core/irregularlysampledsignal.py index 3fd73b387..31959cdf9 100644 --- a/neo/core/irregularlysampledsignal.py +++ b/neo/core/irregularlysampledsignal.py @@ -66,7 +66,7 @@ class IrregularlySampledSignal(BaseNeo, pq.Quantity): :units: (quantity units) Required if the signal is a list or NumPy array, not if it is a :class:`Quantity`. - :time_units: (quantity units) Required if :attr`times` is a list or + :time_units: (quantity units) Required if :attr:`times` is a list or NumPy array, not if it is a :class:`Quantity`. *Recommended attributes/properties*:. @@ -85,13 +85,13 @@ class IrregularlySampledSignal(BaseNeo, pq.Quantity): *Properties available on this object*: :sampling_intervals: (quantity array 1D) Interval between each adjacent pair of samples. - (:attr:`times[1:]` - :attr:`times`[:-1]) + (:attr:`times`\[1:] - :attr:`times`\[:-1]) :duration: (quantity scalar) Signal duration, read-only. - (:attr:`times`[-1] - :attr:`times`[0]) + (:attr:`times`\[-1] - :attr:`times`\[0]) :t_start: (quantity scalar) Time when signal begins, read-only. - (:attr:`times`[0]) + (:attr:`times`\[0]) :t_stop: (quantity scalar) Time when signal ends, read-only. - (:attr:`times`[-1]) + (:attr:`times`\[-1]) *Slicing*: :class:`IrregularlySampledSignal` objects can be sliced. When this From b4e7be6ce5838c6de2a4b81130eecd78f8ebdaa3 Mon Sep 17 00:00:00 2001 From: Andrew Davison Date: Wed, 22 Jun 2016 14:43:58 +0200 Subject: [PATCH 8/8] Added `__setitem__()` method to `AnalogSignal` --- neo/core/analogsignal.py | 14 ++++++++++++++ neo/core/block.py | 2 -- neo/core/channelindex.py | 1 + 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/neo/core/analogsignal.py b/neo/core/analogsignal.py index 24c285694..f8c4fe634 100644 --- a/neo/core/analogsignal.py +++ b/neo/core/analogsignal.py @@ -303,6 +303,20 @@ def __getitem__(self, i): raise IndexError("index should be an integer, tuple or slice") return obj + def __setitem__(self, i, value): + """ + Set an item or slice defined by :attr:`i` to `value`. + """ + # because AnalogSignals are always at least two-dimensional, + # we need to handle the case where `i` is an integer + if isinstance(i, int): + i = slice(i, i + 1) + elif isinstance(i, tuple): + j, k = i + if isinstance(k, int): + i = (j, slice(k, k + 1)) + return super(AnalogSignal, self).__setitem__(i, value) + # sampling_rate attribute is handled as a property so type checking can # be done @property diff --git a/neo/core/block.py b/neo/core/block.py index 23da68d2f..d5593263c 100644 --- a/neo/core/block.py +++ b/neo/core/block.py @@ -61,8 +61,6 @@ class Block(Container): :file_datetime: (datetime) The creation date and time of the original data file. :rec_datetime: (datetime) The date and time of the original recording. - :index: (int) You can use this to define an ordering of your Block. - It is not used by Neo in any way. *Properties available on this object*: :list_units: descends through hierarchy and returns a list of diff --git a/neo/core/channelindex.py b/neo/core/channelindex.py index 847c08548..816901128 100644 --- a/neo/core/channelindex.py +++ b/neo/core/channelindex.py @@ -145,3 +145,4 @@ def __init__(self, index, channel_names=None, channel_ids=None, self.channel_names = channel_names self.channel_ids = channel_ids self.index = index + self.coordinates = coordinates