* Re: [PATCH v2] net/ring: remove unnecessary NULL check
From: Ferruh Yigit @ 2016-11-02 11:38 UTC (permalink / raw)
To: Mauricio Vasquez B, bruce.richardson; +Cc: dev
In-Reply-To: <1478030140-7127-1-git-send-email-mauricio.vasquez@polito.it>
Hi Mauricio,
On 11/1/2016 7:55 PM, Mauricio Vasquez B wrote:
> Coverity detected this as an issue because internals->data will never be NULL,
> then the check is not necessary.
>
> Fixes: d082c0395bf6 ("ring: fix memory leak when detaching")
> Coverity issue: 137873
>
> Signed-off-by: Mauricio Vasquez B <mauricio.vasquez@polito.it>
> ---
> drivers/net/ring/rte_eth_ring.c | 20 +++++++++-----------
> 1 file changed, 9 insertions(+), 11 deletions(-)
>
> diff --git a/drivers/net/ring/rte_eth_ring.c b/drivers/net/ring/rte_eth_ring.c
> index 6d2a8c1..5ca00ed 100644
> --- a/drivers/net/ring/rte_eth_ring.c
> +++ b/drivers/net/ring/rte_eth_ring.c
> @@ -599,17 +599,15 @@ rte_pmd_ring_remove(const char *name)
>
> eth_dev_stop(eth_dev);
>
> - if (eth_dev->data) {
> - internals = eth_dev->data->dev_private;
> - if (internals->action == DEV_CREATE) {
> - /*
> - * it is only necessary to delete the rings in rx_queues because
> - * they are the same used in tx_queues
> - */
> - for (i = 0; i < eth_dev->data->nb_rx_queues; i++) {
> - r = eth_dev->data->rx_queues[i];
> - rte_ring_free(r->rng);
> - }
> + internals = eth_dev->data->dev_private;
> + if (internals->action == DEV_CREATE) {
> + /*
> + * it is only necessary to delete the rings in rx_queues because
> + * they are the same used in tx_queues
> + */
> + for (i = 0; i < eth_dev->data->nb_rx_queues; i++) {
> + r = eth_dev->data->rx_queues[i];
> + rte_ring_free(r->rng);
> }
>
> rte_free(eth_dev->data->rx_queues);
This patch not only removes the NULL check but also changes the logic.
after patch rx_queues, tx_queues and dev_private only freed if action is
DEV_CREATE which is wrong.
>
^ permalink raw reply
* Re: [RFC] [PATCH v2] libeventdev: event driven programming model framework for DPDK
From: Bruce Richardson @ 2016-11-02 11:35 UTC (permalink / raw)
To: Jerin Jacob; +Cc: Vangati, Narender, dev@dpdk.org, Eads, Gage
In-Reply-To: <20161102112520.GB30658@localhost.localdomain>
On Wed, Nov 02, 2016 at 04:55:22PM +0530, Jerin Jacob wrote:
> On Fri, Oct 28, 2016 at 02:36:48PM +0530, Jerin Jacob wrote:
> > On Fri, Oct 28, 2016 at 09:36:46AM +0100, Bruce Richardson wrote:
> > > On Fri, Oct 28, 2016 at 08:31:41AM +0530, Jerin Jacob wrote:
> > > > On Wed, Oct 26, 2016 at 01:54:14PM +0100, Bruce Richardson wrote:
> > > > > On Wed, Oct 26, 2016 at 05:54:17PM +0530, Jerin Jacob wrote:
> > > > > > On Wed, Oct 26, 2016 at 12:11:03PM +0000, Van Haaren, Harry wrote:
> > > > > > > > -----Original Message-----
> > > > > rte_event_queue_conf, with possible values:
> > > > > * atomic
> > > > > * ordered
> > > > > * parallel
> > > > > * mixed - allowing all 3 types. I think allowing 2 of three types might
> > > > > make things too complicated.
> > > > >
> > > > > An open question would then be how to behave when the queue type and
> > > > > requested event type conflict. We can either throw an error, or just
> > > > > ignore the event type and always treat enqueued events as being of the
> > > > > queue type. I prefer the latter, because it's faster not having to
> > > > > error-check, and it pushes the responsibility on the app to know what
> > > > > it's doing.
> > > >
> > > > How about making default as "mixed" and let application configures what
> > > > is not required?. That way application responsibility is clear.
> > > > something similar to ETH_TXQ_FLAGS_NOMULTSEGS, ETH_TXQ_FLAGS_NOREFCOUNT
> > > > with default.
> > > >
> > > I suppose it could work, but why bother doing that? If an app knows it's
> > > only going to use one traffic type, why not let it just state what it
> > > will do rather than try to specify what it won't do. If mixed is needed,
> >
> > My thought was more inline with ethdev spec, like, ref-count is default,
> > if application need exception then set ETH_TXQ_FLAGS_NOREFCOUNT. But it is OK, if
> > you need other way.
> >
> > > then it's easy enough to specify - and we can make it the zero/default
> > > value too.
> >
> > OK. Then we will make MIX as zero/default and add "allowed_event_types" in
> > event queue config.
> >
>
> Bruce,
>
> I have tried to make it as "allowed_event_types" in event queue config.
> However, rte_event_queue_default_conf_get() can also take NULL for default
> configuration. So I think, It makes sense to go with negation approach
> like ethdev to define the default to avoid confusion on the default. So
> I am thinking like below now,
>
> ➜ [master][libeventdev] $ git diff
> diff --git a/rte_eventdev.h b/rte_eventdev.h
> index cf22b0e..cac4642 100644
> --- a/rte_eventdev.h
> +++ b/rte_eventdev.h
> @@ -429,6 +429,12 @@ rte_event_dev_configure(uint8_t dev_id, struct
> rte_event_dev_config *config);
> *
> * \see rte_event_port_setup(), rte_event_port_link()
> */
> +#define RTE_EVENT_QUEUE_CFG_NOATOMIC_TYPE (1ULL << 1)
> +/**< Skip configuring atomic schedule type resources */
> +#define RTE_EVENT_QUEUE_CFG_NOORDERED_TYPE (1ULL << 2)
> +/**< Skip configuring ordered schedule type resources */
> +#define RTE_EVENT_QUEUE_CFG_NOPARALLEL_TYPE (1ULL << 3)
> +/**< Skip configuring parallel schedule type resources */
>
> /** Event queue configuration structure */
> struct rte_event_queue_conf {
>
> Thoughts?
>
I'm ok with the default as being all types, in the case where NULL is
specified for the parameter. It does make the most sense.
However, for the cases where the user does specify what they want, I
think it does make more sense, and is easier on the user for things to
be specified in a positive, rather than negative sense. For a user who
wants to just use atomic events, having to specify that as "not-reordered
and not-unordered" just isn't as clear! :-)
/Bruce
^ permalink raw reply
* Re: [RFC] [PATCH v2] libeventdev: event driven programming model framework for DPDK
From: Jerin Jacob @ 2016-11-02 11:25 UTC (permalink / raw)
To: Bruce Richardson; +Cc: Vangati, Narender, dev@dpdk.org, Eads, Gage
In-Reply-To: <20161028090648.GA32750@localhost.localdomain>
On Fri, Oct 28, 2016 at 02:36:48PM +0530, Jerin Jacob wrote:
> On Fri, Oct 28, 2016 at 09:36:46AM +0100, Bruce Richardson wrote:
> > On Fri, Oct 28, 2016 at 08:31:41AM +0530, Jerin Jacob wrote:
> > > On Wed, Oct 26, 2016 at 01:54:14PM +0100, Bruce Richardson wrote:
> > > > On Wed, Oct 26, 2016 at 05:54:17PM +0530, Jerin Jacob wrote:
> > > > > On Wed, Oct 26, 2016 at 12:11:03PM +0000, Van Haaren, Harry wrote:
> > > > > > > -----Original Message-----
> > > > rte_event_queue_conf, with possible values:
> > > > * atomic
> > > > * ordered
> > > > * parallel
> > > > * mixed - allowing all 3 types. I think allowing 2 of three types might
> > > > make things too complicated.
> > > >
> > > > An open question would then be how to behave when the queue type and
> > > > requested event type conflict. We can either throw an error, or just
> > > > ignore the event type and always treat enqueued events as being of the
> > > > queue type. I prefer the latter, because it's faster not having to
> > > > error-check, and it pushes the responsibility on the app to know what
> > > > it's doing.
> > >
> > > How about making default as "mixed" and let application configures what
> > > is not required?. That way application responsibility is clear.
> > > something similar to ETH_TXQ_FLAGS_NOMULTSEGS, ETH_TXQ_FLAGS_NOREFCOUNT
> > > with default.
> > >
> > I suppose it could work, but why bother doing that? If an app knows it's
> > only going to use one traffic type, why not let it just state what it
> > will do rather than try to specify what it won't do. If mixed is needed,
>
> My thought was more inline with ethdev spec, like, ref-count is default,
> if application need exception then set ETH_TXQ_FLAGS_NOREFCOUNT. But it is OK, if
> you need other way.
>
> > then it's easy enough to specify - and we can make it the zero/default
> > value too.
>
> OK. Then we will make MIX as zero/default and add "allowed_event_types" in
> event queue config.
>
Bruce,
I have tried to make it as "allowed_event_types" in event queue config.
However, rte_event_queue_default_conf_get() can also take NULL for default
configuration. So I think, It makes sense to go with negation approach
like ethdev to define the default to avoid confusion on the default. So
I am thinking like below now,
➜ [master][libeventdev] $ git diff
diff --git a/rte_eventdev.h b/rte_eventdev.h
index cf22b0e..cac4642 100644
--- a/rte_eventdev.h
+++ b/rte_eventdev.h
@@ -429,6 +429,12 @@ rte_event_dev_configure(uint8_t dev_id, struct
rte_event_dev_config *config);
*
* \see rte_event_port_setup(), rte_event_port_link()
*/
+#define RTE_EVENT_QUEUE_CFG_NOATOMIC_TYPE (1ULL << 1)
+/**< Skip configuring atomic schedule type resources */
+#define RTE_EVENT_QUEUE_CFG_NOORDERED_TYPE (1ULL << 2)
+/**< Skip configuring ordered schedule type resources */
+#define RTE_EVENT_QUEUE_CFG_NOPARALLEL_TYPE (1ULL << 3)
+/**< Skip configuring parallel schedule type resources */
/** Event queue configuration structure */
struct rte_event_queue_conf {
Thoughts?
> /Jerin
>
> >
> > Our software implementation for now, only supports one type per queue -
> > which we suspect should meet a lot of use-cases. We'll have to see about
> > adding in mixed types in future.
> >
> > /Bruce
^ permalink raw reply related
* Re: [RFC v2] Generic flow director/filtering/classification API
From: Adrien Mazarguil @ 2016-11-02 11:13 UTC (permalink / raw)
To: Zhang, Helin; +Cc: dev@dpdk.org
In-Reply-To: <F35DEAC7BCE34641BA9FAC6BCA4A12E717F3D3BF@SHSMSX103.ccr.corp.intel.com>
Hi Helin,
On Mon, Oct 31, 2016 at 07:19:18AM +0000, Zhang, Helin wrote:
> Hi Adrien
>
> Just a double check, do you have any update on the v1 patch set, as now it is the end of October?
> We are extremly eager to see the v1 patch set for development.
> I don't think we need full validation on the v1 patch set for API. It should be together with PMD and example application.
> If we can see the v1 API patch set earlier, we can help to validate it with our code changes. That's should be more efficient and helpful.
> Any comments on my personal understanding?
>
> Thank you very much for the hard work and kind helps!
I intend to send it shortly, likely this week. For the record, a large part
of this task was also dedicated to implement it on the client side (I've
just read Wei's RFC for a client-side application to which I will reply
separately), in order to validate it from a usability standpoint that led me
to make a few necessary adjustments to the API.
My next submission will include both the updated API with several changes
discussed on this ML and testpmd code (not a separate application) that uses
it. Just hang on a bit longer!
> > -----Original Message-----
> > From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Adrien Mazarguil
> > Sent: Friday, September 30, 2016 1:11 AM
> > To: dev@dpdk.org
> > Cc: Thomas Monjalon
> > Subject: Re: [dpdk-dev] [RFC v2] Generic flow director/filtering/classification
> > API
> >
> > On Fri, Aug 19, 2016 at 08:50:44PM +0200, Adrien Mazarguil wrote:
> > > Hi All,
> > >
> > > Thanks to many for the positive and constructive feedback I've
> > > received so far. Here is the updated specification (v0.7) at last.
> > >
> > > I've attempted to address as many comments as possible but could not
> > > process them all just yet. A new section "Future evolutions" has been
> > > added for the remaining topics.
> > >
> > > This series adds rte_flow.h to the DPDK tree. Next time I will attempt
> > > to convert the specification as a documentation commit part of the
> > > patchset and actually implement API functions.
> > [...]
> >
> > A quick update, we initially targeted 16.11 as the DPDK release this API would
> > be available for, turns out this goal was somewhat too optimistic as
> > September is ending and we are about to overshoot the deadline for
> > integration (basically everything took longer than expected, big surprise).
> >
> > So instead of rushing things now to include a botched API in 16.11 with no
> > PMD support, we simply modified the target, now set to 17.02. On the plus
> > side this should leave developers more time to refine and test the API before
> > applications and PMDs start to use it.
> >
> > I intend to send the patchset for the first non-draft version mid-October
> > worst case (ASAP in fact). I still haven't replied to several comments but did
> > take them into account, thanks for your feedback.
> >
> > --
> > Adrien Mazarguil
> > 6WIND
--
Adrien Mazarguil
6WIND
^ permalink raw reply
* Re: [PATCH v4] vhost: Add indirect descriptors support to the TX path
From: Maxime Coquelin @ 2016-11-02 10:51 UTC (permalink / raw)
To: Wang, Zhihong, Yuanhan Liu
Cc: mst@redhat.com, dev@dpdk.org, vkaplans@redhat.com
In-Reply-To: <8F6C2BD409508844A0EFC19955BE09414E7DA533@SHSMSX103.ccr.corp.intel.com>
On 10/31/2016 11:01 AM, Wang, Zhihong wrote:
>
>
>> -----Original Message-----
>> From: Maxime Coquelin [mailto:maxime.coquelin@redhat.com]
>> Sent: Friday, October 28, 2016 3:42 PM
>> To: Wang, Zhihong <zhihong.wang@intel.com>; Yuanhan Liu
>> <yuanhan.liu@linux.intel.com>
>> Cc: stephen@networkplumber.org; Pierre Pfister (ppfister)
>> <ppfister@cisco.com>; Xie, Huawei <huawei.xie@intel.com>; dev@dpdk.org;
>> vkaplans@redhat.com; mst@redhat.com
>> Subject: Re: [dpdk-dev] [PATCH v4] vhost: Add indirect descriptors support
>> to the TX path
>>
>>
>>
>> On 10/28/2016 02:49 AM, Wang, Zhihong wrote:
>>>
>>>>> -----Original Message-----
>>>>> From: Yuanhan Liu [mailto:yuanhan.liu@linux.intel.com]
>>>>> Sent: Thursday, October 27, 2016 6:46 PM
>>>>> To: Maxime Coquelin <maxime.coquelin@redhat.com>
>>>>> Cc: Wang, Zhihong <zhihong.wang@intel.com>;
>>>>> stephen@networkplumber.org; Pierre Pfister (ppfister)
>>>>> <ppfister@cisco.com>; Xie, Huawei <huawei.xie@intel.com>;
>> dev@dpdk.org;
>>>>> vkaplans@redhat.com; mst@redhat.com
>>>>> Subject: Re: [dpdk-dev] [PATCH v4] vhost: Add indirect descriptors
>> support
>>>>> to the TX path
>>>>>
>>>>> On Thu, Oct 27, 2016 at 12:35:11PM +0200, Maxime Coquelin wrote:
>>>>>>>
>>>>>>>
>>>>>>> On 10/27/2016 12:33 PM, Yuanhan Liu wrote:
>>>>>>>>> On Thu, Oct 27, 2016 at 11:10:34AM +0200, Maxime Coquelin
>> wrote:
>>>>>>>>>>> Hi Zhihong,
>>>>>>>>>>>
>>>>>>>>>>> On 10/27/2016 11:00 AM, Wang, Zhihong wrote:
>>>>>>>>>>>>> Hi Maxime,
>>>>>>>>>>>>>
>>>>>>>>>>>>> Seems indirect desc feature is causing serious performance
>>>>>>>>>>>>> degradation on Haswell platform, about 20% drop for both
>>>>>>>>>>>>> mrg=on and mrg=off (--txqflags=0xf00, non-vector version),
>>>>>>>>>>>>> both iofwd and macfwd.
>>>>>>>>>>> I tested PVP (with macswap on guest) and Txonly/Rxonly on an
>> Ivy
>>>>> Bridge
>>>>>>>>>>> platform, and didn't faced such a drop.
>>>>>>>>>
>>>>>>>>> I was actually wondering that may be the cause. I tested it with
>>>>>>>>> my IvyBridge server as well, I saw no drop.
>>>>>>>>>
>>>>>>>>> Maybe you should find a similar platform (Haswell) and have a try?
>>>>>>> Yes, that's why I asked Zhihong whether he could test Txonly in guest
>> to
>>>>>>> see if issue is reproducible like this.
>>>>>
>>>>> I have no Haswell box, otherwise I could do a quick test for you. IIRC,
>>>>> he tried to disable the indirect_desc feature, then the performance
>>>>> recovered. So, it's likely the indirect_desc is the culprit here.
>>>>>
>>>>>>> I will be easier for me to find an Haswell machine if it has not to be
>>>>>>> connected back to back to and HW/SW packet generator.
>>> In fact simple loopback test will also do, without pktgen.
>>>
>>> Start testpmd in both host and guest, and do "start" in one
>>> and "start tx_first 32" in another.
>>>
>>> Perf drop is about 24% in my test.
>>>
>>
>> Thanks, I never tried this test.
>> I managed to find an Haswell platform (Intel(R) Xeon(R) CPU E5-2699 v3
>> @ 2.30GHz), and can reproduce the problem with the loop test you
>> mention. I see a performance drop about 10% (8.94Mpps/8.08Mpps).
>> Out of curiosity, what are the numbers you get with your setup?
>
> Hi Maxime,
>
> Let's align our test case to RC2, mrg=on, loopback, on Haswell.
> My results below:
> 1. indirect=1: 5.26 Mpps
> 2. indirect=0: 6.54 Mpps
>
> It's about 24% drop.
OK, so on my side, same setup on Haswell:
1. indirect=1: 7.44 Mpps
2. indirect=0: 8.18 Mpps
Still 10% drop in my case with mrg=on.
The strange thing with both of our figures is that this is below from
what I obtain with my SandyBridge machine. The SB cpu freq is 4% higher,
but that doesn't explain the gap between the measurements.
I'm continuing the investigations on my side.
Maybe we should fix a deadline, and decide do disable indirect in
Virtio PMD if root cause not identified/fixed at some point?
Yuanhan, what do you think?
Regards,
Maxime
^ permalink raw reply
* Re: [RFC] [PATCH v2] libeventdev: event driven programming model framework for DPDK
From: Jerin Jacob @ 2016-11-02 10:47 UTC (permalink / raw)
To: Van Haaren, Harry; +Cc: Vangati, Narender, dev@dpdk.org, Eads, Gage
In-Reply-To: <E923DB57A917B54B9182A2E928D00FA6129AD56F@IRSMSX102.ger.corp.intel.com>
On Wed, Oct 26, 2016 at 12:11:03PM +0000, Van Haaren, Harry wrote:
> > -----Original Message-----
> > From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Jerin Jacob
> >
> > So far, I have received constructive feedback from Intel, NXP and Linaro folks.
> > Let me know, if anyone else interested in contributing to the definition of eventdev?
> >
> > If there are no major issues in proposed spec, then Cavium would like work on
> > implementing and up-streaming the common code(lib/librte_eventdev/) and
> > an associated HW driver.(Requested minor changes of v2 will be addressed
> > in next version).
>
Hi All,
Two queries,
1) In SW implementation, Is their any connection between "struct
rte_event_port_conf"'s dequeue_queue_depth and enqueue_queue_depth ?
i.e it should be enqueue_queue_depth >= dequeue_queue_depth. Right ?
Thought of adding the common checks in common layer.
2)Any comments on follow item(section under ----) that needs improvement.
-------------------------------------------------------------------------------
Abstract the differences in event QoS management with different
priority schemes available in different HW or SW implementations with portable
application workflow.
Based on the feedback, there three different kinds of QoS support
available in
three different HW or SW implementations.
1) Priority associated with the event queue
2) Priority associated with each event enqueue
(Same flow can have two different priority on two separate enqueue)
3) Priority associated with the flow(each flow has unique priority)
In v2, The differences abstracted based on device capability
(RTE_EVENT_DEV_CAP_QUEUE_QOS for the first scheme,
RTE_EVENT_DEV_CAP_EVENT_QOS for the second and third scheme).
This scheme would call for different application workflow for
nontrivial QoS-enabled applications.
-------------------------------------------------------------------------------
After thinking a while, I think, RTE_EVENT_DEV_CAP_EVENT_QOS is a
super-set.if so, the subset RTE_EVENT_DEV_CAP_QUEUE_QOS can be
implemented with RTE_EVENT_DEV_CAP_EVENT_QOS. i.e We may not need two
flags, Just one flag RTE_EVENT_DEV_CAP_EVENT_QOS is enough to fix
portability issue with basic QoS enabled applications.
i.e Introduce RTE_EVENT_DEV_CAP_EVENT_QOS as config option in device
configure stage if application needs fine granularity on QoS per event
enqueue.For trivial applications, configured
rte_event_queue_conf->priority can be used as rte_event_enqueue(struct
rte_event.priority)
Thoughts?
/Jerin
^ permalink raw reply
* [PATCH 3/3] net/mlx: fix support for new Rx checksum flags
From: Nelio Laranjeiro @ 2016-11-02 10:39 UTC (permalink / raw)
To: dev
In-Reply-To: <cover.1478082521.git.nelio.laranjeiro@6wind.com>
Fixes: 5842289a546c ("mbuf: add new Rx checksum flags")
Signed-off-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
---
drivers/net/mlx4/mlx4.c | 21 ++++++++-------------
drivers/net/mlx5/mlx5_rxtx.c | 25 ++++++++++---------------
2 files changed, 18 insertions(+), 28 deletions(-)
diff --git a/drivers/net/mlx4/mlx4.c b/drivers/net/mlx4/mlx4.c
index faa9acd..da61a85 100644
--- a/drivers/net/mlx4/mlx4.c
+++ b/drivers/net/mlx4/mlx4.c
@@ -2995,25 +2995,20 @@ rxq_cq_to_ol_flags(const struct rxq *rxq, uint32_t flags)
if (rxq->csum)
ol_flags |=
- TRANSPOSE(~flags,
+ TRANSPOSE(flags,
IBV_EXP_CQ_RX_IP_CSUM_OK,
- PKT_RX_IP_CKSUM_BAD) |
- TRANSPOSE(~flags,
+ PKT_RX_IP_CKSUM_GOOD) |
+ TRANSPOSE(flags,
IBV_EXP_CQ_RX_TCP_UDP_CSUM_OK,
- PKT_RX_L4_CKSUM_BAD);
- /*
- * PKT_RX_IP_CKSUM_BAD and PKT_RX_L4_CKSUM_BAD are used in place
- * of PKT_RX_EIP_CKSUM_BAD because the latter is not functional
- * (its value is 0).
- */
+ PKT_RX_L4_CKSUM_GOOD);
if ((flags & IBV_EXP_CQ_RX_TUNNEL_PACKET) && (rxq->csum_l2tun))
ol_flags |=
- TRANSPOSE(~flags,
+ TRANSPOSE(flags,
IBV_EXP_CQ_RX_OUTER_IP_CSUM_OK,
- PKT_RX_IP_CKSUM_BAD) |
- TRANSPOSE(~flags,
+ PKT_RX_IP_CKSUM_GOOD) |
+ TRANSPOSE(flags,
IBV_EXP_CQ_RX_OUTER_TCP_UDP_CSUM_OK,
- PKT_RX_L4_CKSUM_BAD);
+ PKT_RX_L4_CKSUM_GOOD);
return ol_flags;
}
diff --git a/drivers/net/mlx5/mlx5_rxtx.c b/drivers/net/mlx5/mlx5_rxtx.c
index b6e0d65..beff580 100644
--- a/drivers/net/mlx5/mlx5_rxtx.c
+++ b/drivers/net/mlx5/mlx5_rxtx.c
@@ -1239,29 +1239,24 @@ rxq_cq_to_ol_flags(struct rxq *rxq, volatile struct mlx5_cqe *cqe)
if ((l3_hdr == MLX5_CQE_L3_HDR_TYPE_IPV4) ||
(l3_hdr == MLX5_CQE_L3_HDR_TYPE_IPV6))
- ol_flags |=
- (!(cqe->hds_ip_ext & MLX5_CQE_L3_OK) *
- PKT_RX_IP_CKSUM_BAD);
+ ol_flags |= TRANSPOSE(cqe->hds_ip_ext,
+ MLX5_CQE_L3_OK,
+ PKT_RX_IP_CKSUM_GOOD);
if ((l4_hdr == MLX5_CQE_L4_HDR_TYPE_TCP) ||
(l4_hdr == MLX5_CQE_L4_HDR_TYPE_TCP_EMP_ACK) ||
(l4_hdr == MLX5_CQE_L4_HDR_TYPE_TCP_ACK) ||
(l4_hdr == MLX5_CQE_L4_HDR_TYPE_UDP))
- ol_flags |=
- (!(cqe->hds_ip_ext & MLX5_CQE_L4_OK) *
- PKT_RX_L4_CKSUM_BAD);
- /*
- * PKT_RX_IP_CKSUM_BAD and PKT_RX_L4_CKSUM_BAD are used in place
- * of PKT_RX_EIP_CKSUM_BAD because the latter is not functional
- * (its value is 0).
- */
+ ol_flags |= TRANSPOSE(cqe->hds_ip_ext,
+ MLX5_CQE_L4_OK,
+ PKT_RX_L4_CKSUM_GOOD);
if ((cqe->pkt_info & MLX5_CQE_RX_TUNNEL_PACKET) && (rxq->csum_l2tun))
ol_flags |=
- TRANSPOSE(~cqe->l4_hdr_type_etc,
+ TRANSPOSE(cqe->l4_hdr_type_etc,
MLX5_CQE_RX_OUTER_IP_CSUM_OK,
- PKT_RX_IP_CKSUM_BAD) |
- TRANSPOSE(~cqe->l4_hdr_type_etc,
+ PKT_RX_IP_CKSUM_GOOD) |
+ TRANSPOSE(cqe->l4_hdr_type_etc,
MLX5_CQE_RX_OUTER_TCP_UDP_CSUM_OK,
- PKT_RX_L4_CKSUM_BAD);
+ PKT_RX_L4_CKSUM_GOOD);
return ol_flags;
}
--
2.1.4
^ permalink raw reply related
* [PATCH 2/3] net/mlx5: define explicit fields for Rx offloads
From: Nelio Laranjeiro @ 2016-11-02 10:39 UTC (permalink / raw)
To: dev
In-Reply-To: <cover.1478082521.git.nelio.laranjeiro@6wind.com>
This commit redefines the completion queue element structure as the
original lacks the required fields.
Signed-off-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
---
drivers/net/mlx5/mlx5_prm.h | 16 ++++++++++++-
drivers/net/mlx5/mlx5_rxtx.c | 56 +++++++++++++++++++++-----------------------
2 files changed, 42 insertions(+), 30 deletions(-)
diff --git a/drivers/net/mlx5/mlx5_prm.h b/drivers/net/mlx5/mlx5_prm.h
index 500f25a..7f31a2f 100644
--- a/drivers/net/mlx5/mlx5_prm.h
+++ b/drivers/net/mlx5/mlx5_prm.h
@@ -158,7 +158,21 @@ struct mlx5_cqe {
#if (RTE_CACHE_LINE_SIZE == 128)
uint8_t padding[64];
#endif
- struct mlx5_cqe64 cqe64;
+ uint8_t pkt_info;
+ uint8_t rsvd0[11];
+ uint32_t rx_hash_res;
+ uint8_t rx_hash_type;
+ uint8_t rsvd1[11];
+ uint8_t hds_ip_ext;
+ uint8_t l4_hdr_type_etc;
+ uint16_t vlan_info;
+ uint8_t rsvd2[12];
+ uint32_t byte_cnt;
+ uint64_t timestamp;
+ uint8_t rsvd3[4];
+ uint16_t wqe_counter;
+ uint8_t rsvd4;
+ uint8_t op_own;
};
#endif /* RTE_PMD_MLX5_PRM_H_ */
diff --git a/drivers/net/mlx5/mlx5_rxtx.c b/drivers/net/mlx5/mlx5_rxtx.c
index 7ebe557..b6e0d65 100644
--- a/drivers/net/mlx5/mlx5_rxtx.c
+++ b/drivers/net/mlx5/mlx5_rxtx.c
@@ -83,10 +83,10 @@
* 0 the first time.
*/
static inline int
-check_cqe64_seen(volatile struct mlx5_cqe64 *cqe)
+check_cqe_seen(volatile struct mlx5_cqe *cqe)
{
static const uint8_t magic[] = "seen";
- volatile uint8_t (*buf)[sizeof(cqe->rsvd40)] = &cqe->rsvd40;
+ volatile uint8_t (*buf)[sizeof(cqe->rsvd3)] = &cqe->rsvd3;
int ret = 1;
unsigned int i;
@@ -101,9 +101,9 @@ check_cqe64_seen(volatile struct mlx5_cqe64 *cqe)
#endif /* NDEBUG */
static inline int
-check_cqe64(volatile struct mlx5_cqe64 *cqe,
- unsigned int cqes_n, const uint16_t ci)
- __attribute__((always_inline));
+check_cqe(volatile struct mlx5_cqe *cqe,
+ unsigned int cqes_n, const uint16_t ci)
+ __attribute__((always_inline));
/**
* Check whether CQE is valid.
@@ -119,8 +119,8 @@ check_cqe64(volatile struct mlx5_cqe64 *cqe,
* 0 on success, 1 on failure.
*/
static inline int
-check_cqe64(volatile struct mlx5_cqe64 *cqe,
- unsigned int cqes_n, const uint16_t ci)
+check_cqe(volatile struct mlx5_cqe *cqe,
+ unsigned int cqes_n, const uint16_t ci)
{
uint16_t idx = ci & cqes_n;
uint8_t op_own = cqe->op_own;
@@ -138,14 +138,14 @@ check_cqe64(volatile struct mlx5_cqe64 *cqe,
if ((syndrome == MLX5_CQE_SYNDROME_LOCAL_LENGTH_ERR) ||
(syndrome == MLX5_CQE_SYNDROME_REMOTE_ABORTED_ERR))
return 0;
- if (!check_cqe64_seen(cqe))
+ if (!check_cqe_seen(cqe))
ERROR("unexpected CQE error %u (0x%02x)"
" syndrome 0x%02x",
op_code, op_code, syndrome);
return 1;
} else if ((op_code != MLX5_CQE_RESP_SEND) &&
(op_code != MLX5_CQE_REQ)) {
- if (!check_cqe64_seen(cqe))
+ if (!check_cqe_seen(cqe))
ERROR("unexpected CQE opcode %u (0x%02x)",
op_code, op_code);
return 1;
@@ -174,25 +174,25 @@ txq_complete(struct txq *txq)
uint16_t elts_free = txq->elts_tail;
uint16_t elts_tail;
uint16_t cq_ci = txq->cq_ci;
- volatile struct mlx5_cqe64 *cqe = NULL;
+ volatile struct mlx5_cqe *cqe = NULL;
volatile struct mlx5_wqe *wqe;
do {
- volatile struct mlx5_cqe64 *tmp;
+ volatile struct mlx5_cqe *tmp;
- tmp = &(*txq->cqes)[cq_ci & cqe_cnt].cqe64;
- if (check_cqe64(tmp, cqe_n, cq_ci))
+ tmp = &(*txq->cqes)[cq_ci & cqe_cnt];
+ if (check_cqe(tmp, cqe_n, cq_ci))
break;
cqe = tmp;
#ifndef NDEBUG
if (MLX5_CQE_FORMAT(cqe->op_own) == MLX5_COMPRESSED) {
- if (!check_cqe64_seen(cqe))
+ if (!check_cqe_seen(cqe))
ERROR("unexpected compressed CQE, TX stopped");
return;
}
if ((MLX5_CQE_OPCODE(cqe->op_own) == MLX5_CQE_RESP_ERR) ||
(MLX5_CQE_OPCODE(cqe->op_own) == MLX5_CQE_REQ_ERR)) {
- if (!check_cqe64_seen(cqe))
+ if (!check_cqe_seen(cqe))
ERROR("unexpected error CQE, TX stopped");
return;
}
@@ -1090,13 +1090,12 @@ mlx5_tx_burst_mpw_inline(void *dpdk_txq, struct rte_mbuf **pkts,
* Packet type for struct rte_mbuf.
*/
static inline uint32_t
-rxq_cq_to_pkt_type(volatile struct mlx5_cqe64 *cqe)
+rxq_cq_to_pkt_type(volatile struct mlx5_cqe *cqe)
{
uint32_t pkt_type;
uint8_t flags = cqe->l4_hdr_type_etc;
- uint8_t info = cqe->rsvd0[0];
- if (info & MLX5_CQE_RX_TUNNEL_PACKET)
+ if (cqe->pkt_info & MLX5_CQE_RX_TUNNEL_PACKET)
pkt_type =
TRANSPOSE(flags,
MLX5_CQE_RX_OUTER_IPV4_PACKET,
@@ -1138,7 +1137,7 @@ rxq_cq_to_pkt_type(volatile struct mlx5_cqe64 *cqe)
* with error.
*/
static inline int
-mlx5_rx_poll_len(struct rxq *rxq, volatile struct mlx5_cqe64 *cqe,
+mlx5_rx_poll_len(struct rxq *rxq, volatile struct mlx5_cqe *cqe,
uint16_t cqe_cnt, uint32_t *rss_hash)
{
struct rxq_zip *zip = &rxq->zip;
@@ -1149,7 +1148,7 @@ mlx5_rx_poll_len(struct rxq *rxq, volatile struct mlx5_cqe64 *cqe,
if (zip->ai) {
volatile struct mlx5_mini_cqe8 (*mc)[8] =
(volatile struct mlx5_mini_cqe8 (*)[8])
- (uintptr_t)(&(*rxq->cqes)[zip->ca & cqe_cnt].cqe64);
+ (uintptr_t)(&(*rxq->cqes)[zip->ca & cqe_cnt]);
len = ntohl((*mc)[zip->ai & 7].byte_cnt);
*rss_hash = ntohl((*mc)[zip->ai & 7].rx_hash_result);
@@ -1167,7 +1166,7 @@ mlx5_rx_poll_len(struct rxq *rxq, volatile struct mlx5_cqe64 *cqe,
uint16_t end = zip->cq_ci;
while (idx != end) {
- (*rxq->cqes)[idx & cqe_cnt].cqe64.op_own =
+ (*rxq->cqes)[idx & cqe_cnt].op_own =
MLX5_CQE_INVALIDATE;
++idx;
}
@@ -1179,7 +1178,7 @@ mlx5_rx_poll_len(struct rxq *rxq, volatile struct mlx5_cqe64 *cqe,
int ret;
int8_t op_own;
- ret = check_cqe64(cqe, cqe_n, rxq->cq_ci);
+ ret = check_cqe(cqe, cqe_n, rxq->cq_ci);
if (unlikely(ret == 1))
return 0;
++rxq->cq_ci;
@@ -1188,7 +1187,7 @@ mlx5_rx_poll_len(struct rxq *rxq, volatile struct mlx5_cqe64 *cqe,
volatile struct mlx5_mini_cqe8 (*mc)[8] =
(volatile struct mlx5_mini_cqe8 (*)[8])
(uintptr_t)(&(*rxq->cqes)[rxq->cq_ci &
- cqe_cnt].cqe64);
+ cqe_cnt]);
/* Fix endianness. */
zip->cqe_cnt = ntohl(cqe->byte_cnt);
@@ -1232,12 +1231,11 @@ mlx5_rx_poll_len(struct rxq *rxq, volatile struct mlx5_cqe64 *cqe,
* Offload flags (ol_flags) for struct rte_mbuf.
*/
static inline uint32_t
-rxq_cq_to_ol_flags(struct rxq *rxq, volatile struct mlx5_cqe64 *cqe)
+rxq_cq_to_ol_flags(struct rxq *rxq, volatile struct mlx5_cqe *cqe)
{
uint32_t ol_flags = 0;
uint8_t l3_hdr = (cqe->l4_hdr_type_etc) & MLX5_CQE_L3_HDR_TYPE_MASK;
uint8_t l4_hdr = (cqe->l4_hdr_type_etc) & MLX5_CQE_L4_HDR_TYPE_MASK;
- uint8_t info = cqe->rsvd0[0];
if ((l3_hdr == MLX5_CQE_L3_HDR_TYPE_IPV4) ||
(l3_hdr == MLX5_CQE_L3_HDR_TYPE_IPV6))
@@ -1256,7 +1254,7 @@ rxq_cq_to_ol_flags(struct rxq *rxq, volatile struct mlx5_cqe64 *cqe)
* of PKT_RX_EIP_CKSUM_BAD because the latter is not functional
* (its value is 0).
*/
- if ((info & MLX5_CQE_RX_TUNNEL_PACKET) && (rxq->csum_l2tun))
+ if ((cqe->pkt_info & MLX5_CQE_RX_TUNNEL_PACKET) && (rxq->csum_l2tun))
ol_flags |=
TRANSPOSE(~cqe->l4_hdr_type_etc,
MLX5_CQE_RX_OUTER_IP_CSUM_OK,
@@ -1289,8 +1287,8 @@ mlx5_rx_burst(void *dpdk_rxq, struct rte_mbuf **pkts, uint16_t pkts_n)
const unsigned int sges_n = rxq->sges_n;
struct rte_mbuf *pkt = NULL;
struct rte_mbuf *seg = NULL;
- volatile struct mlx5_cqe64 *cqe =
- &(*rxq->cqes)[rxq->cq_ci & cqe_cnt].cqe64;
+ volatile struct mlx5_cqe *cqe =
+ &(*rxq->cqes)[rxq->cq_ci & cqe_cnt];
unsigned int i = 0;
unsigned int rq_ci = rxq->rq_ci << sges_n;
int len; /* keep its value across iterations. */
@@ -1327,7 +1325,7 @@ mlx5_rx_burst(void *dpdk_rxq, struct rte_mbuf **pkts, uint16_t pkts_n)
break;
}
if (!pkt) {
- cqe = &(*rxq->cqes)[rxq->cq_ci & cqe_cnt].cqe64;
+ cqe = &(*rxq->cqes)[rxq->cq_ci & cqe_cnt];
len = mlx5_rx_poll_len(rxq, cqe, cqe_cnt,
&rss_hash_res);
if (!len) {
--
2.1.4
^ permalink raw reply related
* [PATCH 1/3] net/mlx5: fix Rx checksum macros
From: Nelio Laranjeiro @ 2016-11-02 10:39 UTC (permalink / raw)
To: dev
In-Reply-To: <cover.1478082521.git.nelio.laranjeiro@6wind.com>
Add missing:
- MLX5_CQE_RX_IPV4_PACKET
- MLX5_CQE_RX_IPV6_PACKET
- MLX5_CQE_RX_OUTER_IPV4_PACKET
- MLX5_CQE_RX_OUTER_IPV6_PACKET
- MLX5_CQE_RX_TUNNEL_PACKET
- MLX5_CQE_RX_OUTER_IP_CSUM_OK
- MLX5_CQE_RX_OUTER_TCP_UDP_CSUM_OK
Fixes: 51a50a3d9b8f ("net/mlx5: add definitions for data path without Verbs")
Signed-off-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
---
drivers/net/mlx5/mlx5_prm.h | 21 +++++++++++++++++++++
drivers/net/mlx5/mlx5_rxtx.c | 16 ++++++++--------
2 files changed, 29 insertions(+), 8 deletions(-)
diff --git a/drivers/net/mlx5/mlx5_prm.h b/drivers/net/mlx5/mlx5_prm.h
index 90b47f0..500f25a 100644
--- a/drivers/net/mlx5/mlx5_prm.h
+++ b/drivers/net/mlx5/mlx5_prm.h
@@ -84,6 +84,27 @@
#define MLX5_OPCODE_TSO MLX5_OPCODE_LSO_MPW /* Compat with OFED 3.3. */
#endif
+/* IPv4 packet. */
+#define MLX5_CQE_RX_IPV4_PACKET (1u << 2)
+
+/* IPv6 packet. */
+#define MLX5_CQE_RX_IPV6_PACKET (1u << 3)
+
+/* Outer IPv4 packet. */
+#define MLX5_CQE_RX_OUTER_IPV4_PACKET (1u << 7)
+
+/* Outer IPv6 packet. */
+#define MLX5_CQE_RX_OUTER_IPV6_PACKET (1u << 8)
+
+/* Tunnel packet bit in the CQE. */
+#define MLX5_CQE_RX_TUNNEL_PACKET (1u << 4)
+
+/* Outer IP checksum OK. */
+#define MLX5_CQE_RX_OUTER_IP_CSUM_OK (1u << 5)
+
+/* Outer UDP header and checksum OK. */
+#define MLX5_CQE_RX_OUTER_TCP_UDP_CSUM_OK (1u << 6)
+
/* Subset of struct mlx5_wqe_eth_seg. */
struct mlx5_wqe_eth_seg_small {
uint32_t rsvd0;
diff --git a/drivers/net/mlx5/mlx5_rxtx.c b/drivers/net/mlx5/mlx5_rxtx.c
index ba8e202..7ebe557 100644
--- a/drivers/net/mlx5/mlx5_rxtx.c
+++ b/drivers/net/mlx5/mlx5_rxtx.c
@@ -1096,19 +1096,19 @@ rxq_cq_to_pkt_type(volatile struct mlx5_cqe64 *cqe)
uint8_t flags = cqe->l4_hdr_type_etc;
uint8_t info = cqe->rsvd0[0];
- if (info & IBV_EXP_CQ_RX_TUNNEL_PACKET)
+ if (info & MLX5_CQE_RX_TUNNEL_PACKET)
pkt_type =
TRANSPOSE(flags,
- IBV_EXP_CQ_RX_OUTER_IPV4_PACKET,
+ MLX5_CQE_RX_OUTER_IPV4_PACKET,
RTE_PTYPE_L3_IPV4) |
TRANSPOSE(flags,
- IBV_EXP_CQ_RX_OUTER_IPV6_PACKET,
+ MLX5_CQE_RX_OUTER_IPV6_PACKET,
RTE_PTYPE_L3_IPV6) |
TRANSPOSE(flags,
- IBV_EXP_CQ_RX_IPV4_PACKET,
+ MLX5_CQE_RX_IPV4_PACKET,
RTE_PTYPE_INNER_L3_IPV4) |
TRANSPOSE(flags,
- IBV_EXP_CQ_RX_IPV6_PACKET,
+ MLX5_CQE_RX_IPV6_PACKET,
RTE_PTYPE_INNER_L3_IPV6);
else
pkt_type =
@@ -1256,13 +1256,13 @@ rxq_cq_to_ol_flags(struct rxq *rxq, volatile struct mlx5_cqe64 *cqe)
* of PKT_RX_EIP_CKSUM_BAD because the latter is not functional
* (its value is 0).
*/
- if ((info & IBV_EXP_CQ_RX_TUNNEL_PACKET) && (rxq->csum_l2tun))
+ if ((info & MLX5_CQE_RX_TUNNEL_PACKET) && (rxq->csum_l2tun))
ol_flags |=
TRANSPOSE(~cqe->l4_hdr_type_etc,
- IBV_EXP_CQ_RX_OUTER_IP_CSUM_OK,
+ MLX5_CQE_RX_OUTER_IP_CSUM_OK,
PKT_RX_IP_CKSUM_BAD) |
TRANSPOSE(~cqe->l4_hdr_type_etc,
- IBV_EXP_CQ_RX_OUTER_TCP_UDP_CSUM_OK,
+ MLX5_CQE_RX_OUTER_TCP_UDP_CSUM_OK,
PKT_RX_L4_CKSUM_BAD);
return ol_flags;
}
--
2.1.4
^ permalink raw reply related
* [PATCH 0/3] fix Rx checksum offloads
From: Nelio Laranjeiro @ 2016-11-02 10:39 UTC (permalink / raw)
To: dev
Fill correctly the Mbuf Rx offloads.
Nelio Laranjeiro (3):
net/mlx5: fix Rx checksum macros
net/mlx5: define explicit fields for Rx offloads
net/mlx: fix support for new Rx checksum flags
drivers/net/mlx4/mlx4.c | 21 ++++------
drivers/net/mlx5/mlx5_prm.h | 37 +++++++++++++++++-
drivers/net/mlx5/mlx5_rxtx.c | 93 ++++++++++++++++++++------------------------
3 files changed, 87 insertions(+), 64 deletions(-)
--
2.1.4
^ permalink raw reply
* Re: [PATCH] pci: Don't call probe callback if driver already loaded.
From: Shreyansh Jain @ 2016-11-02 9:29 UTC (permalink / raw)
To: Ben Walker; +Cc: dev
In-Reply-To: <1477432240-20406-1-git-send-email-benjamin.walker@intel.com>
On 10/26/2016 3:20 AM, Ben Walker wrote:
> If the user asks to probe multiple times, the probe
> callback should only be called on devices that don't have
> a driver already loaded.
>
> This is useful if a driver is registered after the
> execution of a program has started and the list of devices
> needs to be re-scanned.
>
> Signed-off-by: Ben Walker <benjamin.walker@intel.com>
> ---
> lib/librte_eal/common/eal_common_pci.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/lib/librte_eal/common/eal_common_pci.c b/lib/librte_eal/common/eal_common_pci.c
> index 638cd86..971ad20 100644
> --- a/lib/librte_eal/common/eal_common_pci.c
> +++ b/lib/librte_eal/common/eal_common_pci.c
> @@ -289,6 +289,10 @@ pci_probe_all_drivers(struct rte_pci_device *dev)
> if (dev == NULL)
> return -1;
>
> + /* Check if a driver is already loaded */
> + if (dev->driver != NULL)
> + return 0;
> +
In case if it is required to change the driver assigned to a device, would it mean application relies on detach(dev)->new-driver-plugged-in->attach(dev) sequence?
To me, the above change sounds fine. Though, I am not aware if there is even a use case for changing driver assigned to a device. detach()->attach() should be able to work in those cases, I think.
> TAILQ_FOREACH(dr, &pci_driver_list, next) {
> rc = rte_eal_pci_probe_one_driver(dr, dev);
> if (rc < 0)
>
-
Shreyansh
^ permalink raw reply
* Re: PCIe Hot Insert/Remove Support
From: Shreyansh Jain @ 2016-11-02 9:23 UTC (permalink / raw)
To: Walker, Benjamin; +Cc: dev@dpdk.org
In-Reply-To: <1477332995.71904.36.camel@intel.com>
Hello Ben,
Apologies for joining this discussion late.
On 10/24/2016 11:46 PM, Walker, Benjamin wrote:
> Hi all,
>
> My name is Ben Walker and I'm the technical lead for SPDK (it's like DPDK, but
> for storage devices). SPDK relies on DPDK only for the base functionality in the
> EAL - memory management, the rings, and the PCI scanning code. A key feature for
> storage devices is support for hot insert and remove, so we're currently working
> through how best to implement this for a user space driver. While doing this
> work, we've run into a few issues with the current DPDK PCI/device/driver
> framework that I'd like to discuss with this list. I'm not entirely ramped up on
> all of the current activity in this area or what the future plans are, so please
> educate me if something is coming that will address our current issues. I'm
> working off of the latest commit on the master branch as of today.
There has been some work recently ([1], [2]) which generalized the overall DPDK EAL framework to not look at devices as PCI only. In that sense, the attach/detach routines were also generalized. But, dynamically removing device during the application initialization is still something which is grey area (from what I understand).
There are some callbacks which the application can register (eal interrupts), but it would entirely depend on drivers ability to handle interrupts generated from device.
A complete restructuring of EAL is still open discussion - which might include this point. There is a patch series floated by Jan (and subsequently managed by me) here [3]. I also initiated a discussion on this lines in DPDK User Summit in Ireland (Slide 18 of [4] might interest you).
[1] http://dpdk.org/ml/archives/dev/2016-January/031390.html
[2] http://dpdk.org/ml/archives/dev/2016-September/047099.html
[3] http://dpdk.org/ml/archives/dev/2016-October/049606.html
[4] https://dpdksummit.com/Archive/pdf/2016Userspace/Day02-Session03-ShreyanshJain-Userspace2016.pdf
>
> Today, there appears to be two lists - one of PCI devices and one of drivers. To
> update the list of PCI devices, you call rte_eal_pci_scan(), which scans the PCI
> bus. That call does not attempt to load any drivers. One scan is automatically
> performed when the eal is first initialized. To add or remove drivers from the
> driver list you call rte_eal_driver_register/unregister. To match drivers in the
> driver list to devices in the device list, you call rte_eal_pci_probe.
I agree with this general flow.
>
> There are a few problems with how the code works for us. First,
> rte_eal_pci_scan's algorithm will not correctly detect devices that are in its
> internal list but weren't found by the most recent PCI bus scan (i.e. they were
> hot removed). DPDK's scan doesn't seem to comprehend hot remove in any way.
Indeed. And this not just limited to failure to scan hot-removed, but also those devices which are either ethernet or crypto but not PCI bus compliant. Essentially, the complete DPDK scan model assumes that PCI compliant devices are available *before* scan is performed and across the scan process.
Hotplugging is limited to applications ability to attach/detach devices.
> Fortunately there is a public API to remove devices from the device list -
> rte_eal_pci_detach. That function will automatically unload any drivers
> associated with the device and then remove it from the list. There is a similar
> call for adding a device to the list - rte_eal_pci_probe_one, which will add a
> device to the device list and then automatically match it to drivers. I think if
> rte_eal_pci_scan is going to be a public interface (and it is), it needs to
> correctly comprehend the removal of PCI devices. Otherwise, make it a private
In some parallel discussions, there have been talk of scan being non-PCI centric - which would make this API hidden beneath another layer of generic scan. Either way, clean handling of a hot-plugging case is indeed desirable. See [4] above.
> API that is only called in response to rte_eal_init and only expose the public
> probe_one/detach calls for modifying the list of devices. My preference is for
> the former, not the latter.
Generic way of DPDK application is to start, rely on DPDK framework to find devices which have already been attached to the PCI drivers (bind script) and then wait for probing to finish (rte_eal_init) so as to start the I/O (creating pool, queue setup, etc). In the later method suggested by you, this model doesn't bode well. From what I make of it, applications would then be responsible for attaches thereby making them call extra APIs. In that context, I too prefer the former (handling hotplug).
>
> Second, rte_eal_pci_probe will call the driver initialization functions each
> time a probe happens, even if the driver has already been successfully loaded.
> This tends to crash a lot of the PMDs. It seems to me like rte_eal_pci_probe is
> not safe to call more than once during the lifetime of the program, which is a
> real challenge when you have multiple users of the PCI framework. For instance,
> an application may manage both storage devices using the rte_eal_pci framework
> and NICs, and the initialization routine may go something like:
>
> register NIC drivers
> rte_eal_probe()
> ...
> register SSD drivers
> rte_eal_probe()
>
> This is almost certainly how any real code is going to function because the code
> dealing with NICs is unrelated and probably unaware of the code dealing with the
> SSDs. It should be fairly trivial to simply not call the probe() callback for a
> device if the driver has already been loaded. Is this a reasonable modification
> to make?
I saw your patch on this. It sounds fine to me - indeed initialization is a singleton process and it should remain that way at least for a particular device.
>
> Thanks,
> Ben
>
I am still working on the restructuring. If you would like to collaborate on it or if you have ideas to share, it would be great to chat up on it (ML or offline).
In my opinion, DPDK EAL framework should be agnostic of device's type (PCI, nonPCI) and presence (plugged, unplugged, dynamic hotplug etc).
-
Shreyansh
^ permalink raw reply
* Re: [PATCH] ethdev: fix statistics description
From: Morten Brørup @ 2016-11-02 9:21 UTC (permalink / raw)
To: Dai, Wei, Thomas Monjalon, Mcnamara, John, Ananyev, Konstantin,
Wu, Jingjing, Zhang, Helin, Curran, Greg
Cc: dev
In-Reply-To: <49759EB36A64CF4892C1AFEC9231E8D63A2EB13C@PGSMSX106.gar.corp.intel.com>
> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Dai, Wei
> Sent: Wednesday, November 2, 2016 9:29 AM
> To: Thomas Monjalon; Mcnamara, John; Ananyev, Konstantin; Wu, Jingjing;
> Zhang, Helin; Dai, Wei; Curran, Greg
> Cc: dev@dpdk.org
> Subject: Re: [dpdk-dev] [PATCH] ethdev: fix statistics description
>
> Hi, John & Greg
>
> Would you please give any opinion for this patch ?
>
> I have looked through all PMDs and found not all statistics items can
> be supported by some NIC.
> For example, rx_nombuf, q_ipackets, q_opackets, q_ibytes and
> q_obytes are not supported by i40e.
> But when the function rte_eth_stats_get(uint8_t port_id, struct
> rte_eth_stats *stats) is called for i40e PMD, Above un-supported
> statistics item in output stats are zero, this is not real value.
> So far, there is no way to know whether an item in struct rte_eth_stats
> is supported or not only from this structure definition.
> Maybe some structure member can be added to indicate each of statistics
> item valid or not.
> But this means ABI change.
>
>
> > -----Original Message-----
> > From: Thomas Monjalon [mailto:thomas.monjalon@6wind.com]
> > Sent: Tuesday, October 4, 2016 5:35 PM
> > To: Dai, Wei <wei.dai@intel.com>; Mcnamara, John
> > <john.mcnamara@intel.com>
> > Cc: dev@dpdk.org
> > Subject: Re: [dpdk-dev] [PATCH] ethdev: fix statistics description
> >
> > 2016-08-26 18:08, Wei Dai:
> > > /**
> > > * A structure used to retrieve statistics for an Ethernet port.
> > > + * Not all statistics fields in struct rte_eth_stats are supported
> > > + * by any type of network interface card (NIC). If any statistics
> > > + * field is not supported, its value is 0 .
> > > */
> > > struct rte_eth_stats {
> >
> > I'm missing the point of this patch.
> > Why do you think it is a fix?
> >
> > John, any opinion?
>
I think the source code comment is an improvement. I would also like to see a source code comment describing the criteria for choosing which counters go in the eth_stats, and which counters are relegated to the eth_xstats.
It doesn't look like the Interfaces MIB (IF-MIB) or even the etherStats MIB drives this selection.
The ifOutQLen in the IF-MIB is deprecated; I guess it is not important for network monitoring. But fast access to the queue lengths are obviously useful for a fast path application with RED or other intelligent queue overflow handling mechanisms, so in my mind they are useful here.
-Morten
^ permalink raw reply
* Re: [PATCH] ethdev: fix statistics description
From: Mcnamara, John @ 2016-11-02 9:07 UTC (permalink / raw)
To: Dai, Wei, Thomas Monjalon, Ananyev, Konstantin, Wu, Jingjing,
Zhang, Helin, Curran, Greg, Horton, Remy, Van Haaren, Harry
Cc: dev@dpdk.org
In-Reply-To: <49759EB36A64CF4892C1AFEC9231E8D63A2EB13C@PGSMSX106.gar.corp.intel.com>
> -----Original Message-----
> From: Dai, Wei
> Sent: Wednesday, November 2, 2016 8:29 AM
> To: Thomas Monjalon <thomas.monjalon@6wind.com>; Mcnamara, John
> <john.mcnamara@intel.com>; Ananyev, Konstantin
> <konstantin.ananyev@intel.com>; Wu, Jingjing <jingjing.wu@intel.com>;
> Zhang, Helin <helin.zhang@intel.com>; Dai, Wei <wei.dai@intel.com>;
> Curran, Greg <greg.curran@intel.com>
> Cc: dev@dpdk.org
> Subject: RE: [dpdk-dev] [PATCH] ethdev: fix statistics description
>
> Hi, John & Greg
>
> Would you please give any opinion for this patch ?
>
> I have looked through all PMDs and found not all statistics items can be
> supported by some NIC.
> For example, rx_nombuf, q_ipackets, q_opackets, q_ibytes and q_obytes
> are not supported by i40e.
> But when the function rte_eth_stats_get(uint8_t port_id, struct
> rte_eth_stats *stats) is called for i40e PMD, Above un-supported
> statistics item in output stats are zero, this is not real value.
> So far, there is no way to know whether an item in struct rte_eth_stats is
> supported or not only from this structure definition.
> Maybe some structure member can be added to indicate each of statistics
> item valid or not.
> But this means ABI change.
>
> In following list, I list statistics support details of all PMDs.
> Hope it can be displayed in your screen.
Hi,
Thanks for the analysis.
Perhaps we could an API that returns a struct, or otherwise, that indicated what stats are returned by a PMD. An application that required stats could call it once to establish what stats were available. It would have to be done in some way that wouldn't break ABI every time a new stat was added.
Harry, Remy, how would this fit in with the existing stats scheme or the new metrics library.
John
^ permalink raw reply
* Re: [RFC] [PATCH v2] libeventdev: event driven programming model framework for DPDK
From: Jerin Jacob @ 2016-11-02 8:59 UTC (permalink / raw)
To: Bruce Richardson; +Cc: Vangati, Narender, dev@dpdk.org, Eads, Gage
In-Reply-To: <20161028141617.GA97736@bricha3-MOBL3.ger.corp.intel.com>
On Fri, Oct 28, 2016 at 03:16:18PM +0100, Bruce Richardson wrote:
> On Fri, Oct 28, 2016 at 02:48:57PM +0100, Van Haaren, Harry wrote:
> > > -----Original Message-----
> > > From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Jerin Jacob
> > > Sent: Tuesday, October 25, 2016 6:49 PM
> > <snip>
> > >
> > > Hi Community,
> > >
> > > So far, I have received constructive feedback from Intel, NXP and Linaro folks.
> > > Let me know, if anyone else interested in contributing to the definition of eventdev?
> > >
> > > If there are no major issues in proposed spec, then Cavium would like work on
> > > implementing and up-streaming the common code(lib/librte_eventdev/) and
> > > an associated HW driver.(Requested minor changes of v2 will be addressed
> > > in next version).
> >
> >
> > Hi All,
> >
> > I've been looking at the eventdev API from a use-case point of view, and I'm unclear on a how the API caters for two uses. I have simplified these as much as possible, think of them as a theoretical unit-test for the API :)
> >
> >
> > Fragmentation:
> > 1. Dequeue 8 packets
> > 2. Process 2 packets
> > 3. Processing 3rd, this packet needs fragmentation into two packets
> > 4. Process remaining 5 packets as normal
> >
> > What function calls does the application make to achieve this?
> > In particular, I'm referring to how can the scheduler know that the 3rd packet is the one being fragmented, and how to keep packet order valid.
> >
> >
> > Dropping packets:
> > 1. Dequeue 8 packets
> > 2. Process 2 packets
> > 3. Processing 3rd, this packet needs to be dropped
> > 4. Process remaining 5 packets as normal
> >
> > What function calls does the application make to achieve this?
> > Again, in particular how does the scheduler know that the 3rd packet is being dropped.
> >
> >
> > Regards, -Harry
>
> Hi,
>
> these questions apply particularly to reordered which has a lot more
> complications than the other types in terms of sending packets back into
> the scheduler. However, atomic types will still suffer from problems
> with things the way they are - again if we assume a burst of 8 packets,
> then to forward those packets, we need to re-enqueue them again to the
> scheduler, and also then send 8 releases to the scheduler as well, to
> release the atomic locks for those packets.
> This means that for each packet we have to send two messages to a
> scheduler core, something that is really inefficient.
>
> This number of messages is critical for any software implementation, as
> the cost of moving items core-to-core is going to be a big bottleneck
> (perhaps the biggest bottleneck) in the system. It's for this reason we
> need to use burst APIs - as with rte_rings.
I agree, That the reason why we have rte_event_*_burst()
>
> How we have solved this in our implementation, is to allow there to be
> an event operation type. The four operations we implemented are as below
> (using packet as a synonym for event here, since these would mostly
> apply to packets flowing through a system):
>
> * NEW - just a regular enqueue of a packet, without any previous context
Makes sense. I was trying derive it.Make sense for application
requesting it.
> * FORWARD - enqueue a packet, and mark the flow processing for the
> equivalent packet that was dequeued as completed, i.e.
> release any atomic locks, or reorder this packet with
> respect to any other outstanding packets from the event queue.
Default case
> * DROP - this is roughtly equivalent to the existing "release" API call,
> except that having it as an enqueue type allows us to
> release multiple items in a single call, and also to mix
> releases with new packets and forwarded packets
Yes. Maps to rte_event_release(), with index parameter, its kind doing
the job. But, Makes sense as flag to enable burst.
But it calls for removing the index parameter. Looks like index parameter
has issue in Intel implementation. If so, may be we(Cavium) can fill the
index in the dequeue as implementation specific bits like Harry
suggested and use it in enqueue.
http://dpdk.org/ml/archives/dev/2016-October/049459.html
Any thoughts from NXP?
> * PARTIAL - this indicates that the packet being enqueued should be
> treated according to the context of the current packet, but
> that that context should not be released/completed by the
> enqueue of this packet. This only really applies for
> reordered events, and is needed to do fragmentation and or
> multicast of packets with reordering.
I believe PARTIAL is something, HW implementation will have trouble.
I have outlined other way to fix without coupling fragmentation logic in
scheduler.
http://dpdk.org/ml/archives/dev/2016-November/049707.html
If it makes sense for everyone then may be can
- Introduce "event operation type" bits (NEW, DROP, FORWARD(may not required as it is default) in enqueue
- remaining bits in "struct rte_event"(128B) for "implementation" defined
- remove rte_event_release() and use event operation type(DROP) as
replacement.
/Jerin
>
>
> Therefore, I think we need to use some of the bits just freed up in the
> event structure to include an enqueue operation type. Without it, I just
> can't see how the API can ever support burst operation on packets.
>
> Regards,
> /Bruce
>
^ permalink raw reply
* Re: [PATCH] ethdev: fix statistics description
From: Dai, Wei @ 2016-11-02 8:28 UTC (permalink / raw)
To: Thomas Monjalon, Mcnamara, John, Ananyev, Konstantin,
Wu, Jingjing, Zhang, Helin, Dai, Wei, Curran, Greg
Cc: dev@dpdk.org
In-Reply-To: <2544827.v0ahXV4zxG@xps13>
Hi, John & Greg
Would you please give any opinion for this patch ?
I have looked through all PMDs and found not all statistics items can be supported by some NIC.
For example, rx_nombuf, q_ipackets, q_opackets, q_ibytes and q_obytes are not supported by i40e.
But when the function rte_eth_stats_get(uint8_t port_id, struct rte_eth_stats *stats) is called for i40e PMD,
Above un-supported statistics item in output stats are zero, this is not real value.
So far, there is no way to know whether an item in struct rte_eth_stats is supported or not only from this structure definition.
Maybe some structure member can be added to indicate each of statistics item valid or not.
But this means ABI change.
In following list, I list statistics support details of all PMDs.
Hope it can be displayed in your screen.
Thanks
/Wei
NIC ipackets opackets ibytes obytes imissed ierrors oerrors rx_nombuf q_ipackets q_opacktes q_ibytes q_obytes q_errors
af_packet y y y y n n y n y y y y y
bnx2x y y y y y y y y n n n n n
bnxt y y y y y y y n y y y y y
bonding y y y y y y y y y y y y y
cxgbe y y y y y y y n y y y y y
e1000(igb) y y y y y y y n n n n n n
e1000(igbvf) y y y y n n n n n n n n n
ena y y y y y y y y n n n n n
enic y y y y y y y y n n n n n
fm10k y y y y n n n n y y y y n
i40e y y y y y y y n n n n n n
i40evf y y y y n y y n n n n n n
ixgbe y y y y y y y n y y y y y
ixgbevf y y y y n n n n n n n n n
mlx4 y y y y n y y y y y y y y
mlx5 y y y y n y y y y y y y y
mpipe y y y y n y y y y y y y y
nfp y y y y y y y y y y y y n
null y y n n n n y n y y n n y
pcap y y y y n n y n y y y y y
qede y y y y y y y y n n n n n
ring y y n n n n y n y y n n y
szedata2 y y y y n n y n y y y y y
thunderx y y y y y y y n y y y y n
vhost y y y y n n y n y y y y n
virtio y y y y n y y y y y y y n
vmxnet3 y y y y n y y y y y y y y
xenvirt y y n n n n n n n n n n n
> -----Original Message-----
> From: Thomas Monjalon [mailto:thomas.monjalon@6wind.com]
> Sent: Tuesday, October 4, 2016 5:35 PM
> To: Dai, Wei <wei.dai@intel.com>; Mcnamara, John
> <john.mcnamara@intel.com>
> Cc: dev@dpdk.org
> Subject: Re: [dpdk-dev] [PATCH] ethdev: fix statistics description
>
> 2016-08-26 18:08, Wei Dai:
> > /**
> > * A structure used to retrieve statistics for an Ethernet port.
> > + * Not all statistics fields in struct rte_eth_stats are supported
> > + * by any type of network interface card (NIC). If any statistics
> > + * field is not supported, its value is 0 .
> > */
> > struct rte_eth_stats {
>
> I'm missing the point of this patch.
> Why do you think it is a fix?
>
> John, any opinion?
^ permalink raw reply
* Re: [RFC] [PATCH v2] libeventdev: event driven programming model framework for DPDK
From: Jerin Jacob @ 2016-11-02 8:06 UTC (permalink / raw)
To: Van Haaren, Harry; +Cc: Vangati, Narender, dev@dpdk.org, Eads, Gage
In-Reply-To: <E923DB57A917B54B9182A2E928D00FA6129AE01B@IRSMSX102.ger.corp.intel.com>
On Fri, Oct 28, 2016 at 01:48:57PM +0000, Van Haaren, Harry wrote:
> > -----Original Message-----
> > From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Jerin Jacob
> > Sent: Tuesday, October 25, 2016 6:49 PM
> <snip>
> >
> > Hi Community,
> >
> > So far, I have received constructive feedback from Intel, NXP and Linaro folks.
> > Let me know, if anyone else interested in contributing to the definition of eventdev?
> >
> > If there are no major issues in proposed spec, then Cavium would like work on
> > implementing and up-streaming the common code(lib/librte_eventdev/) and
> > an associated HW driver.(Requested minor changes of v2 will be addressed
> > in next version).
>
>
> Hi All,
>
> I've been looking at the eventdev API from a use-case point of view, and I'm unclear on a how the API caters for two uses. I have simplified these as much as possible, think of them as a theoretical unit-test for the API :)
>
>
> Fragmentation:
> 1. Dequeue 8 packets
> 2. Process 2 packets
> 3. Processing 3rd, this packet needs fragmentation into two packets
> 4. Process remaining 5 packets as normal
>
> What function calls does the application make to achieve this?
> In particular, I'm referring to how can the scheduler know that the 3rd packet is the one being fragmented, and how to keep packet order valid.
>
OK. I will try to share my views on IP fragmentation on event _HW_
models(at least on Cavium HW) then we can see, how we can converge.
First, The fragmentation specific logic should be decoupled from the event
model as it specific to packet and L3 layer(Not specific to generic event)
Now, let us consider the fragmentation handling with non-burst case and single flow.
The following text outlines the event flow
a)Setup an event device with single event queue
b)Link multiple ports to single event queue
c)Event producer enqueues p0..p7 packets to event queue with ORDERED
type.(let's assume p2 packet needs to be fragmented i.e application
needs to create p2.0 and p2.1 from p2)
d)Since it is an ORDERED type, p0 to p7 packets are distributed to multiple
ports in parallel(assigned to each lcore or lightweight thread)
e) each lcore/lightweight thread get the packet from designated event port
and process them in parallel and enqueue back to ATOMIC type to maintain
ordering
f)The one lcore dequeues the p2 packet, understands it needs to be
fragmented due to MTU size etc. So it calls rte_ipv4_fragment_packet()
and store the fragmented packet p2.0 and p2.1 in private area of p2 mbuf.
and as usual like other workers, it enqueues p2 to atomic queue for maintaining
the order.
g)On the atomic flow, when lcore dequeues packets, then it comes in order p0..p7.
The application sends p0 to p7 on the wire. When application checks the p2 mbuf
private area it understands it is fragmented and then sends p2.0 and p2.1
on the wire.
OR
skip the fragmentation step in (f) and in step (g),
while processing the p2, run over rte_ipv4_fragment_packet() and split the packet
and transmit the packets(in case application don't want to deal with mbuf private area)
Now, When it comes to BURST scheme. We are planning to create a SW
structure as a virtual event port and associate N (N=rte_event_port_dequeue_depth())
physical HW event ports to the virtual port.
That way, it just come as an extension to non burst API and on the
release call have explicit "index" and identify the physical event port
associated with the virtual port.
/Jerin
>
> Dropping packets:
> 1. Dequeue 8 packets
> 2. Process 2 packets
> 3. Processing 3rd, this packet needs to be dropped
> 4. Process remaining 5 packets as normal
>
> What function calls does the application make to achieve this?
> Again, in particular how does the scheduler know that the 3rd packet is being dropped.
rte_event_release(..,..,3)??
>
>
> Regards, -Harry
^ permalink raw reply
* [RFC]Generic flow filtering API Sample Application
From: Zhao1, Wei @ 2016-11-02 5:27 UTC (permalink / raw)
To: dev@dpdk.org
Hi All,
Now we are planning for an sample application for Generic flow
filtering API feature, and I have finished the RFC for this example app.
Now Adrien Mazarguil has send v2 version of Generic flow
filtering API, this sample application RFC is based on that.
Thank you.
Generic flow filtering API Sample Application
============================================
The application is a simple example of generic flow filtering API using the DPDK.
The application performs flow director/filtering/classification in packet processing.
Overview
--------
The application demonstrates the use of generic flow director/filtering/classification API
in the DPDK to implement packet forwarding.And this document focus on the guide line of writing rules configuration
files and prompt commands usage. It also supply the definition of the available EAL options arguments which is useful
in DPDK packet forwarding processing.
Compiling the Application
-------------------------
To compile the application:
#. Go to the sample application directory:
.. code-block:: console
export RTE_SDK=/path/to/rte_sdk
cd ${RTE_SDK}/examples/gen_filter
#. Set the target (a default target is used if not specified). For example:
.. code-block:: console
export RTE_TARGET=x86_64-native-linuxapp-gcc
See the *DPDK Getting Started Guide* for possible RTE_TARGET values.
#. Build the application:
.. code-block:: console
make
Running the Application
-----------------------
The application has a number of EAL options::
./gen_filter [EAL options] -- <APP PARAMS>
EAL options:
* -c
Codemask, set the hexadecimal bitmask of the cores to run on.
* -n
Num, set the number of memory channels to use.
APP PARAMS:
The following are the application options parameters, they must be separated
from the EAL options with a "--" separator.
* -i
Interactive, run this app in interactive mode. In this mode, the app starts with a prompt that can
be used to start and stop forwarding, then manage generic filters rule configure in the application,
reference to the following description for more details.In non-interactive mode, the application starts with the configuration specified on the
command-line and immediately enters forwarding mode.
* --portmask=0xXX
Set the hexadecimal bitmask of the ports which can be used by the generic flow director test in packet forwarding.
* --coremask=0xXX
Set the hexadecimal bitmask of the cores running the packet forwarding test. The master
lcore is reserved for command line parsing only and cannot be masked on for packet forwarding.
* --nb-ports=N
Set the number of forwarding ports, where 1 <= N <= "number of ports" on the board
or CONFIG_RTE_MAX_ETHPORTS from the configuration file. The default value is the number of ports on the board.
* --rxq=N
Set the number of RX queues per port to N, where 1 <= N <= 65535. The default value is 1.
* --txq=N
Set the number of TX queues per port to N, where 1 <= N <= 65535. The default value is 1.
###this part need to complete later after decision of which EAL commands arguments need to be support in this application###
Interactive mode
----------------
* when the gen_filter application is started in interactive mode, (-i|--interactive), it displays a prompt
that can be used to start and stop forwarding, and configure the application to set the Flow Director,
display statistics, set the Flow Director and other tasks. The application has a number of commands line options:
gen_filter>[Commands]
* There is a prompt "gen_filter> " before cursor, command can be enter after that position,
also a space bar between configuration file name and command.
These are the commands that are currently working under the command line interface:
* Control Commands
help: show the following commands which are currently available in this application and their usage
gen_filter>help
quit: quits the application.
gen_filter>quit
start: start the application, start packet forwarding
gen_filter>start
stop: stop the application, stop packet forwarding
gen_filter>stop
showcfg: print configuration infomation about EAL parameters, for example mapping of cores, rx queue, tx queues and so on.
gen_filter>showcfg
* General Commands to add/remove/query an filter rule:
App will print reminder message for user about whether this rule command is SUCESS or FAIL after user type in the commmand.
add: add filter rules from configuration file
gen_filter>add port_id filename.txt
(port_id is the port index that user want to add filter rules, it can be any uint8_t integer.
filename.txt is the rule configuration file name from which app read and paser port rules)
del: remove filter rules from configuration file
gen_filter>del port_id
(port_id is the port index that user want to remove filter rules, it can be any uint8_t integer.)
query: query filter statistics of rules from configuration file and dump results output to log file or printf
gen_filter>query port_id query_reset action_name
(port_id is the port index that user want to query statistics, it can be any uint8_t integer. query_reset is used for reset counters after query action,
it must be integer 1 if youwant to reset counters after query, else 0. action_name is abbreviation of rte_flow_action_type which user want to query)
display: display rules applying to that port
gen_filter>display port_id
(port_id is the port index that user want to add filter rules, it can be any uint8_t integer.)
The rule configuration file
---------------------------
1.There is a mapping between rte_flow_item_type and configuration item type abbreviation for the convenience of writing:
RTE_FLOW_ITEM_TYPE_END end
RTE_FLOW_ITEM_TYPE_VOID void
RTE_FLOW_ITEM_TYPE_INVERT invert
RTE_FLOW_ITEM_TYPE_ANY any
RTE_FLOW_ITEM_TYPE_PF pf
RTE_FLOW_ITEM_TYPE_VF vf
RTE_FLOW_ITEM_TYPE_PORT port
RTE_FLOW_ITEM_TYPE_RAW raw
RTE_FLOW_ITEM_TYPE_ETH eth
RTE_FLOW_ITEM_TYPE_IPV4 ipv4
RTE_FLOW_ITEM_TYPE_IPV6 ipv6
RTE_FLOW_ITEM_TYPE_ICMP icmp
RTE_FLOW_ITEM_TYPE_UDP udp
RTE_FLOW_ITEM_TYPE_TCP tcp
RTE_FLOW_ITEM_TYPE_SCTP sctp
RTE_FLOW_ITEM_TYPE_VXLAN vxlan
2.There is a mapping between rte_flow_action_type and configuration action type abbreviation for the convenience of writing:
RTE_FLOW_ACTION_TYPE_END ac_end
RTE_FLOW_ACTION_TYPE_VOID ac_void
RTE_FLOW_ACTION_TYPE_PASSTHRU ac_passthru
RTE_FLOW_ACTION_TYPE_MARK ac_mark
RTE_FLOW_ACTION_TYPE_FLAG ac_flag
RTE_FLOW_ACTION_TYPE_QUEUE ac_queue
RTE_FLOW_ACTION_TYPE_DROP ac_drop
RTE_FLOW_ACTION_TYPE_COUNT ac_count
RTE_FLOW_ACTION_TYPE_DUP ac_dup
RTE_FLOW_ACTION_TYPE_RSS ac_rss
RTE_FLOW_ACTION_TYPE_PF ac_pf
RTE_FLOW_ACTION_TYPE_VF ac_vf
3.There is a mapping between struct rte_flow_attr and abbreviation for that configuration of writing:
rte_flow_attr attr
4.Writing format of configuration file
* write in one line for each rule
* writing a "#" at the beginnning of line shows that it is a comment line, for example:
##########this is a comment line#########
* flow pattern item name and action name should be as abbreviation as above
* configuration file member has the same name as associated specification structure member, such as dst_addr/src_addr/type_of_service/time_to_live
struct members of ipv4_hdr in specification rte_flow_item_ipv4
* there should be a dash('/') between the structure member and its mask if it has a mask demand,
mask format is XX...XX (where X - is a hexadecimal or decimal digit, case insensitive), and the number of X is according to the length of structure member,
for example: rte_flow_item_ipv4 member time_to_live type is uint8_t, so its mask is also uint8_t such as time_to_live=20/0xf0, "f0" is its mask.
And the user had better to provide every byte of the mask, for example, for a uint16 mask, abbreviative 0xf0 is also ok for mask 0x00f0,
but the user must write IPv4/IPV6/Ethernet address mask explicitly and not use abbreviative style.
* All these config element members such as time_to_live in rte_flow_item_ipv4, vtc_flow in rte_flow_item_ipv6 should be write in decimal or hexadecimal format,
except for IPv6 and eth address list below.And pay attention to that all mask is using decimal or hexadecimal format. For example type_of_service=20/0xf0(or 0x14/0xf0) are both ok.
* there should be an space bar(' ') between item name or action name and its structure member
* there should be an equality sign('=') between structure member and assignment value, an space bar(' ') between two structure members
* there should be an comma(',') between item names or action names
* each IPv4 address input number should be decimal or hexadecimal in configuration file,
> IPv4 address expected format:
> src_addr (or dst_addr)=<src_ipv4_addr>'/'<mask> <space>
> src_ipv4_addr format is xxx.xxx.xxx.xxx (where x - is a decimal or hexadecimal digit)
> mask format is XX.XX.XX.XX (where X - is a decimal or hexadecimal digit, case insensitive)
> <mask> can be negligible, the default mask is 0xff.0xff.0xff.0xff or 255.255.255.255
such as IPv4 address 192.168.0.3(0xC0.0xA8.0.0x3), if there is a mask ffffff00 for that IPv4 address,there should be a dash before the mask,
for example: src_addr=192.168.0.3/0xff.0xff.0xff.0x00 or src_addr=0xC0.0xA8.0x0.0x3/0xff.0xff.0xff.0x00
* each IPv6 address input number should be hexadecimal in configuration file,
> IPv6 address expected format:
> src_addr (or dst_addr)=<src_ipv6_addr>'/'<mask> <space>
> src_ipv6_addr and mask format is XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX (where X - is hexadecimal digit, case insensitive).
> mask format is XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX (where X - is a decimal or hexadecimal digit, case insensitive), it don't support the brief style of IPv6 address.
> <mask> can be negligible, the default mask is 0xffff:0xffff:0xffff:0xffff:0xffff:0xffff:0xffff:0xffff
such as IPv6 address 2001:0000:3238:DFE1:0063:0000:0000:FEFB,if there is a prefix length or mask for that IPv6 address, there should be a dash before the prefix length,
for example: src_addr=2001:0000:3238:DFE1:0063:0000:0000:FEFB/0x0000:0xFFFF:0xFFFF:0x0000:0x0000:0x0000:0x0000
* each ethernet address input number should be hexadecimal in configuration file,
> Ethernet address expected format:
> src (or dst)=<src_eth_addr>'/'<mask> <space>
> src_eth_addr_addr and mask format is XX-XX-XX-XX-XX-XX (where X - is a hexadecimal digit, case insensitive).
> mask format is XX:XX:XX:XX:XX:XX (where X - is a decimal or hexadecimal digit, case insensitive)
> <mask> can be negligible, the default mask is 0xff:0xff:0xff:0xff:0xff:0xff
such as ethernet address a0:14:ff:36:95:b1, if there is a mask for that eth address, there should be a dash before the mask,
for example: src=a0:14:ff:36:95:b1/0xff:0xff:0x00:0x00:0x00:0xff
* item pattern or action structure containing array member need to assign each member of the array with the array name before value,
for example: rte_flow_item_raw has array member pattern[], if it has 3 elements which are 10 11 20,so the configuration expected format is pattern={10&11&20}
* item pattern or action structure containing structure array member or structure need to assign each member of the structure with the structure member
name before value, for example: rte_flow_item_eth has structure array member tag[], if it has 2 elements which are tag[0]={10, 11} tag[1]={20, 21},
so the configuration expected format is tag={{10&11}{20&21}}
* Flow rule attributes should be configured if necessary for this rule, writing key word "attr" at first, configuration file member has the same name
as struct rte_flow_attr member, for example: attr group=1 priority=0 ingress=1 egress=0
Take the following 6 rules configuration as example:
(a)Assign an IPv4 flow with specific source and destination IP address to Queue 8: rte_flow_item_type is RTE_FLOW_ITEM_TYPE_IPV4, source address 192.168.100.15, subnet mask is 0xff.0xff.0xff.0x0,
destination address 192.168.3.20, type_of_service is 20 with mask 0xf0, time_to_live 32, rte_flow_item_type is RTE_FLOW_ACTION_TYPE_QUEUE and queue index is 8, and Flow rule attributes is group in 1,
priority is 0, ingress is 1 and egress is 0(apply noly to inbound traffic but not outbound traffic). There are attribute description and 2 items in flow pattern and 1 flow action.
attr group=1 priority=0 ingress=1 egress=0, void, ipv4 src_addr=192.168.0.3/0xff.0xff.0xff.0x0 dst_addr=192.168.0.4 type_of_service=20/0xf0 time_to_live=32, ac_queue queue=8
(b)Assign an IPv6 flow with the certain packet length from and to specific IP address to the certain vf: rte_flow_item_type is RTE_FLOW_ITEM_TYPE_IPV6,
source address is 2001:0000:3238:DFE1:0063:0000:0000:FEFB, the mask is 0x0000:0xFFFF:0xFFFF:0x0000:0x0000:0x0000:0x0000, destination address is 2001:0000:3238:DFE1:0063:0000:0000:0A23,
payload_len 1024,rte_flow_action_type is RTE_FLOW_ACTION_TYPE_VF and RTE_FLOW_ACTION_TYPE_COUNT, redirect the packet to a vf and enables counters for this rule, there is 1 item in flow pattern and 2 flow action.
ipv6 src_addr=2001:0000:3238:DFE1:0063:0000:0000:FEFB/0x0000:0xFFFF:0xFFFF:0x0000:0x0000:0x0000:0x0000 dst_addr=2001:0000:3238:DFE1:0063:0000:0000:0A23 payload_len=1024 vtc_flow=255/0xff, ac_vf original=1 vf=2, ac_count
(c)A flow with RSS usage for specific MAC address Ethernet packets redirected to Queue 0 and 3: rte_flow_item_type is RTE_FLOW_ITEM_TYPE_ETH, source address is a0:14:ff:36:95:b1 and its mask is 0xff:0xff:0x00:0x00:0x00:0xff,
destination address is b0:24:ff:36:95:f2 and its mask is default 0xff:0xff:0xff:0xff:0xff:0xff, 2 tag elements is tag[0]={10, 11} tag[1]={20, 21},
rte_flow_action_type is RTE_FLOW_ACTION_TYPE_RSS, queue index is 0 and 3
eth src=a0:14:ff:36:95:b1/0xff:0xff:0x00:0x00:0x00:0xff dst=b0:24:ff:36:95:f2 tag={{10&11}{20&21}}, ac_rss queue={0&3}
(d)Add a 32 bit value to a VLAN packet to return with that mark: rte_flow_item_type is RTE_FLOW_ITEM_TYPE_VXLAN, VXLAN network identifier index is 11, flags is 0x8 and the 32 bit value is 0x1a2b3c4d
rte_flow_action_type is RTE_FLOW_ACTION_TYPE_MARK
vxlan flags=0x8 vni=11, ac_mark mark=0x1a2b3c4d
(e)Drop cerstain specific TCP packets: rte_flow_item_type is RTE_FLOW_ITEM_TYPE_TCP, src_port is 80, sent_seq is 726, tcp_flags is 2
rte_flow_action_type is RTE_FLOW_ACTION_TYPE_DROP
tcp src_port=80 sent_seq=726 tcp_flags=2, ac_drop
(f)Redirect some UDP packets into a specific queue: rte_flow_item_type is RTE_FLOW_ITEM_TYPE_UDP, src_port is 21, dst_port is 21,
rte_flow_action_type is RTE_FLOW_ACTION_TYPE_QUEUE, queue index is 1
udp src_port=21 dst_port=21, ac_queue queue=1
Explanation
-----------
The following sections provide an explanation of the main components of the app code:
main function
-------------
* open configuration file and parser the simple rules, then call a few rule management functions in order to
fully manage flows. Each created flow rule is associated with an opaque, PMD-specific handle pointer.
The application is responsible for keeping it until the rule is destroyed.
packet forward function
-----------------------
* Forwards packets "as-is" in I/O mode. This is the fastest possible forwarding operation
as it does not access packets data. This is the default mode of this example.
rule management function
------------------------
* Check whether a flow rule can be created on a given port
* Create a flow rule on a given port.
* Query an existing flow rule on a given port.
* Destroy a flow rule on a given port.
* Destroy all flow rules associated with a port.
^ permalink raw reply
* [PATCH] bnxt: use unsigned short instead of signed integer in bnxt_alloc_vnic_attributes
From: Ajit Khaparde @ 2016-11-02 3:24 UTC (permalink / raw)
To: dev
Prevent the arithmetic in bnxt_alloc_vnic_attributes from causing
any unintentional havoc because of the usage of a signed variable.
Coverity: 137874
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
---
drivers/net/bnxt/bnxt_vnic.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/bnxt/bnxt_vnic.c b/drivers/net/bnxt/bnxt_vnic.c
index 205a940..4cdca35 100644
--- a/drivers/net/bnxt/bnxt_vnic.c
+++ b/drivers/net/bnxt/bnxt_vnic.c
@@ -179,7 +179,7 @@ int bnxt_alloc_vnic_attributes(struct bnxt *bp)
HW_HASH_INDEX_SIZE * sizeof(*vnic->rss_table) +
HW_HASH_KEY_SIZE);
uint16_t max_vnics;
- int i;
+ uint16_t i;
if (BNXT_PF(bp)) {
struct bnxt_pf_info *pf = &bp->pf;
--
1.8.3.1
^ permalink raw reply related
* [PATCH 3/3] vhost: update comments
From: Yuanhan Liu @ 2016-11-02 3:15 UTC (permalink / raw)
To: dev
In-Reply-To: <1478056501-9321-1-git-send-email-yuanhan.liu@linux.intel.com>
vhost-cuse is removed, update corresponding comments that are still
referencing it.
Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
---
examples/tep_termination/main.c | 7 ++-----
examples/vhost/main.c | 4 +---
examples/vhost_xen/main.c | 3 +--
lib/librte_vhost/rte_virtio_net.h | 5 ++---
lib/librte_vhost/vhost.c | 9 ++++-----
lib/librte_vhost/vhost.h | 4 +++-
6 files changed, 13 insertions(+), 19 deletions(-)
diff --git a/examples/tep_termination/main.c b/examples/tep_termination/main.c
index 622f248..1d6d463 100644
--- a/examples/tep_termination/main.c
+++ b/examples/tep_termination/main.c
@@ -1151,8 +1151,7 @@ print_stats(void)
}
/**
- * Main function, does initialisation and calls the per-lcore functions. The CUSE
- * device is also registered here to handle the IOCTLs.
+ * Main function, does initialisation and calls the per-lcore functions.
*/
int
main(int argc, char *argv[])
@@ -1253,14 +1252,12 @@ main(int argc, char *argv[])
}
rte_vhost_feature_disable(1ULL << VIRTIO_NET_F_MRG_RXBUF);
- /* Register CUSE device to handle IOCTLs. */
ret = rte_vhost_driver_register((char *)&dev_basename, 0);
if (ret != 0)
- rte_exit(EXIT_FAILURE, "CUSE device setup failure.\n");
+ rte_exit(EXIT_FAILURE, "failed to register vhost driver.\n");
rte_vhost_driver_callback_register(&virtio_net_device_ops);
- /* Start CUSE session. */
rte_vhost_driver_session_start();
return 0;
diff --git a/examples/vhost/main.c b/examples/vhost/main.c
index 91000e8..0709859 100644
--- a/examples/vhost/main.c
+++ b/examples/vhost/main.c
@@ -1409,8 +1409,7 @@ create_mbuf_pool(uint16_t nr_port, uint32_t nr_switch_core, uint32_t mbuf_size,
}
/*
- * Main function, does initialisation and calls the per-lcore functions. The CUSE
- * device is also registered here to handle the IOCTLs.
+ * Main function, does initialisation and calls the per-lcore functions.
*/
int
main(int argc, char *argv[])
@@ -1531,7 +1530,6 @@ main(int argc, char *argv[])
rte_vhost_driver_callback_register(&virtio_net_device_ops);
- /* Start CUSE session. */
rte_vhost_driver_session_start();
return 0;
diff --git a/examples/vhost_xen/main.c b/examples/vhost_xen/main.c
index 2e40357..f4dbaa4 100644
--- a/examples/vhost_xen/main.c
+++ b/examples/vhost_xen/main.c
@@ -1407,8 +1407,7 @@ print_stats(void)
int init_virtio_net(struct virtio_net_device_ops const * const ops);
/*
- * Main function, does initialisation and calls the per-lcore functions. The CUSE
- * device is also registered here to handle the IOCTLs.
+ * Main function, does initialisation and calls the per-lcore functions.
*/
int
main(int argc, char *argv[])
diff --git a/lib/librte_vhost/rte_virtio_net.h b/lib/librte_vhost/rte_virtio_net.h
index c53ff64..926039c 100644
--- a/lib/librte_vhost/rte_virtio_net.h
+++ b/lib/librte_vhost/rte_virtio_net.h
@@ -123,9 +123,8 @@ int rte_vhost_get_numa_node(int vid);
uint32_t rte_vhost_get_queue_num(int vid);
/**
- * Get the virtio net device's ifname. For vhost-cuse, ifname is the
- * path of the char device. For vhost-user, ifname is the vhost-user
- * socket file path.
+ * Get the virtio net device's ifname, which is the vhost-user socket
+ * file path.
*
* @param vid
* virtio-net device ID
diff --git a/lib/librte_vhost/vhost.c b/lib/librte_vhost/vhost.c
index d8116ff..31825b8 100644
--- a/lib/librte_vhost/vhost.c
+++ b/lib/librte_vhost/vhost.c
@@ -227,9 +227,8 @@ reset_device(struct virtio_net *dev)
}
/*
- * Function is called from the CUSE open function. The device structure is
- * initialised and a new entry is added to the device configuration linked
- * list.
+ * Invoked when there is a new vhost-user connection established (when
+ * there is a new virtio device being attached).
*/
int
vhost_new_device(void)
@@ -261,8 +260,8 @@ vhost_new_device(void)
}
/*
- * Function is called from the CUSE release function. This function will
- * cleanup the device and remove it from device configuration linked list.
+ * Invoked when there is the vhost-user connection is broken (when
+ * the virtio device is being detached).
*/
void
vhost_destroy_device(int vid)
diff --git a/lib/librte_vhost/vhost.h b/lib/librte_vhost/vhost.h
index acec772..22564f1 100644
--- a/lib/librte_vhost/vhost.h
+++ b/lib/librte_vhost/vhost.h
@@ -284,7 +284,9 @@ void vhost_set_ifname(int, const char *if_name, unsigned int if_len);
void vhost_enable_dequeue_zero_copy(int vid);
/*
- * Backend-specific cleanup. Defined by vhost-cuse and vhost-user.
+ * Backend-specific cleanup.
+ *
+ * TODO: fix it; we have one backend now
*/
void vhost_backend_cleanup(struct virtio_net *dev);
--
1.9.0
^ permalink raw reply related
* [PATCH 2/3] doc: update the vhost sample guide
From: Yuanhan Liu @ 2016-11-02 3:15 UTC (permalink / raw)
To: dev
In-Reply-To: <1478056501-9321-1-git-send-email-yuanhan.liu@linux.intel.com>
For vhost-switch sample, the old guide takes too many words on
vhost-cuse, which is mainly due to vhost-cuse is invented before
vhost-user.
Now vhost-cuse is removed, meaning the best part of the doc is useless.
Instead of amending one piece here and there, this patch simply removes
the most part of the doc and replace it with a simple test guide.
For tep_term sample, mainly for removing the part has "vhost-cuse".
Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
---
The test is simplified a bit (from using two virtio-net devices to one),
meaning few figures doesn't apply anymore; thus, vhost_net_sample and
tx_dpdk_testpmd figure are removed.
And apparently, the vhost_net_arch figure also becomes useless. Yet
I have no time to draw one for vhost-user, I also removed the two left
figures: qemu_virtio_net and virtio_linux_vhost, which shows the arch
of typical virtio net and linux kernel vhost-net.
---
doc/guides/sample_app_ug/img/qemu_virtio_net.png | Bin 31557 -> 0 bytes
doc/guides/sample_app_ug/img/tx_dpdk_testpmd.png | Bin 76019 -> 0 bytes
doc/guides/sample_app_ug/img/vhost_net_arch.png | Bin 154920 -> 0 bytes
.../sample_app_ug/img/vhost_net_sample_app.png | Bin 23800 -> 0 bytes
.../sample_app_ug/img/virtio_linux_vhost.png | Bin 30290 -> 0 bytes
doc/guides/sample_app_ug/index.rst | 10 -
doc/guides/sample_app_ug/tep_termination.rst | 54 +-
doc/guides/sample_app_ug/vhost.rst | 869 +++------------------
8 files changed, 128 insertions(+), 805 deletions(-)
delete mode 100644 doc/guides/sample_app_ug/img/qemu_virtio_net.png
delete mode 100644 doc/guides/sample_app_ug/img/tx_dpdk_testpmd.png
delete mode 100644 doc/guides/sample_app_ug/img/vhost_net_arch.png
delete mode 100644 doc/guides/sample_app_ug/img/vhost_net_sample_app.png
delete mode 100644 doc/guides/sample_app_ug/img/virtio_linux_vhost.png
diff --git a/doc/guides/sample_app_ug/img/qemu_virtio_net.png b/doc/guides/sample_app_ug/img/qemu_virtio_net.png
deleted file mode 100644
index a852c1662fe978e1dc785f4771ff285172ae5e86..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 31557
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
diff --git a/doc/guides/sample_app_ug/img/tx_dpdk_testpmd.png b/doc/guides/sample_app_ug/img/tx_dpdk_testpmd.png
deleted file mode 100644
index 656e17b88248d2dfb2cb7fdb038507c1f9f1a103..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 76019
zcmY(r2RPQ@{y(ls5|SiDN(f0RgeY0b$_^n(vR9H>*(6Dlgdz#?gdQU+AxRRlH%YRS
zz5cI{&iQ@M|6JF(&Z&5w&*vWR_iNpEkh-eEHfk1X3JQvCXBA~NC@9voQc$etrP_?Y
zIdCa_KmKQ<lgwEyD*VTT$}A9n-eRwK!HI%`ww(Cyx=4OnRtk!}6lY~mYq>rh>AY&+
zF&o=GIXmX<-d!Ph>yU-)rPJGESPlkD4hdA=8)ykOwB^pR72L%W!5<M_9WiCdy<@Pn
zQ~Bqgy>tx5F;lUJqoyuMwLTI^)%RmOt8PuPHLz<@@J-S9%G9as)%}V=OuXk!=8Mh6
z&Y0|4T^{A&lA0rrt0kwV2Gbk7&`;M$*U5didzLL$HMh6lYBgrqS)5UB{&fsjxo6dz
z#%=VoxsLhD`G#G;%{wCgx)m{HH2c3cB1PTb*>`jwC%=?aYHC6%-|9fg(yscUV@Vok
zhi@JXzEf)Q-b~nr%3tRBsU(f(`soSH!<l*lzoy+rCrvXI^9^6>r<-QCib(3D>yU*=
zI%$t<%o*iQlbRz`lSK>7MPicl)4RS+rCl6fsFV_nRZU*bZ?v+0l)&3oR4ih>Q?7K>
zWvZZLvEbOTV;$dycglFUahX+IRn^x1JRlq-d#AJDMz&462#r78%E6ygH-)2Vwr<_}
zu=<L#_#W<vpo|Q`(Gy7;LDA8>vswiP9Cs(yDLOeFr4861cm8o)9Cu8O1}`ITRP~&P
z)bHQFCtM|8rGEbKVSSa^14F^exRdUm2B)|p&YEAnI`sSZ2h&UolD3uIp}>q~32U}T
zMN*HYN2WNYpN6@uOoth-PB%;E&g9EHe_xlV(3)ezT559t)Lse?AxHX<3fJNET;50}
z(LxT+^5k<eIvzi@wDI2fatj-qfu2$y{a1$s1%;0sDQ!&CC9_}4H~eTxu5W7#uI%TG
zRXr*qBA=;OZX%?fqGd0}_V(>tdfI^K=;%7P47{UK(w#=j18lSn_4OYzFIRpt&;H?f
zf|gC}eR=uD9XobVjI?G`hE@7hnbo(&D02tNCq7o@_K@NbiP<(c*ps%YeR`ei=wS7L
zFh4*43yp&xdWCe-v{|#3wWpGsSC$tlGvaGAPVz)lO)O2-_D{{XWL~C}a2cVH`ZcMh
zqT=xP*ZJtJyZVmq<>b$~TV?ja;+Uxr^V|2)PoMs%*k$~Kw7Nh#;rN3pI6(;S*1a;?
z{b#Xcb&*ZV<1v|heC4m&Dq~c&+|{c*At51!3%}FY#GL~N<J|A9E|;u|R+w%NC_8=Q
zhUj?lqTuxO^hkF}y!3p8bngeht%ZwY1%^d#k=@Ik-2>Cj#)ChqBFwTc6wlY#nF>dX
ze7QhNM>mBh-a)f@K5F%kvE}XS>2$-}n%siiisH2RDnbqye;R5?o>yBPlCEoPBy)a}
z&KNcxO#G>HU3|~guTP(+r-$0K=Ul5j%1px?DzD5P@z=y}jz;lQ@S*FTbZ^vo@7I`b
z*|>gb#%@)lJ=czhDP%I;&NHOh$USs=`Z_JUq+*gr@3-e?JO(AYFS)rr8TTA_XOs4N
z8W+b-?YF+BriOSK@7eK{J$6OYOoxl-_K^zzP#e#E*oFDS4x!n+!F%Sa_s5_eJVMdR
zOQjr3>x@V@&e*FcD^GN}k5Be<tTN}etMEnkRq@3C$gE`VA75P=-_6RppDAQJ)kfEu
z)~hKbQnD7`q^S3l=<D?KUdMdbk<3axL&G1TqFp`ZK|2_!H^sS+op`Fslc{%ie*Wgq
z!NDr?Y&`)cukl$gI&73<ECb2X%LnBX!|_TwIy!TGyGrnvjc!ZEi*3!nhK5Q9ryPEM
z+3hux9e*AxGvDyX)J;aYQj24@dENCsJNvTtV^wqn)SPCa*(}LU7q000?wxpBd;8fW
z4P|BJH+J1pjB?Kn1tXNXFBloUROfxxFeJnh`YJUTCB-&(2i3-wf*XeizsB}2%}*J=
za}Gi|A?qIqSDXkjUb^G&zu9HHOGQ_AS8#&508@$<ABVV_<uR6njMOx=w0|&2mooM2
z3p(%Ky-SQ321T9G?{eim%(mRci?K{?jh2y0NePGE23MFCuC6Q+U-0pxJYOWWkB`sa
z+1VYm0cW`*3jfxh`#Up(!WmTAzw}E%Iw2(`2z&hdcSgICWf75>P^F{~#A2$ie;~pb
zTV?i2C$0YSPSdSJ-qV`CbJiCN7@94P^*QGM`u$r*TN|Uu%M`*J{NeLw>Rp0{J$Nzf
zMiy39tfjW!o%%u|qM}%`sGk@hi?q8tf;RG~#gz{^*SEKabdNVPZLazHRaja&Of|V|
z$hmK7{uPPD!$^JU7|V(4zZo}d*uWbsgWZG))l61(`19kepi$wcZ{O%ulOu9+L<|LY
zUB7-k&rpz!meR(?=6hpfc=bS@;{fr-d7ZX+j0<{tJ#&-&ckkWHdiU;gie@q|BQ<`0
z$xB*#b-otkA;w1g*X`u;^0Kn3YS!Dg<*0R;t=7I}m)76DHB;?NZ#t}~rqdCgG446w
zc%sMWreSuga*9?T-t%=vhACP9=2-rq>#yelzeYz7L{;1TDosgEwOMr#kJU=kPETf|
z+W0sorvFRyQIFoO#y!6q(+Vd(Y%N?_7{(~AOwg^;2b7iO*tA<%S|*T4bRiWV7RO7}
zL}IRZd9i1=z8*bmV_{)3-c_{JAicb!GK_-<Yh~2VJEpi;YF{{&S4sR~e6F*L3!Z%A
zdrh^I70o3p*I(=K&wIr2>t^)KE^gWEgFZ7+W9Jp2$n~MGZ=dwaWY~OtRB`#tX#1qA
zBvGSe6VJbV`BE{tL2|aki72kObd5cCX159~-uG*fVaV#cr?Ish?W3)YB_blC-1Nx3
zJreSEc83dGMn9m03r5|XD5acVXf9F3OnH@XpvIv|YVn0vnJIEH;M4DMNPnH58mt<e
zBI;xWkD4X_J@4UMuMl0Mn|_$r$*K6&rzhQK?0<aPey4OV_UG5Hs*d?==yNElf954o
z+6y}Gm6|+55#xz-z2iekhZSfq9xE2Bx-#s&Okz9f_An*o;L2~(N^tk;a(A<i<l#ey
z&^&0<bEPCC&IvG;nPv)!i1@dUejISb>N*&ygq|8)v9HydNn86MQwUlN8fucpmWV3f
zPTOQX0pXJ;(`~LiiH$uFUt4XTNpGMiqtkKzt~~0IpK0bN%v0^ih`{jhaLcHR%UH)*
z3`lT-30WT_KGH@G85^^uz}CYDCO4eLgj!qQC2DE*)mrpOl$z&hX(6|7ufylL6vX0v
zh*pVpZC5<cT~t)`HYbOHYU8)z>5c2x6&f9Wt{&Lidr4ki{@1Tx&k71+N=r{`q%b-;
zIpMpp4lrP@lB$AH`{QdPss}!q2{Y4d#&6LE_^hmWp*)c{=`}PoJe9aX8&OsM=Z|pw
z>eApfYwL~QsIR`KEOJk4Oton^!c2oIjoOI~h1LHx?qv1v-+Z(IXZSlf8)JQ2#EEr)
z^*-rVgn{$=6A^DB9F5vQ%qUO1$AgOnE=Mq8H4a84+vJlQw$lb&(AV!<p6wpQqQ_of
z_n0_+kL`qv7~97oXVctvhkQfl8#kt`N@lF^uSQ<;S5|6D=0&lV>zkThUd$HRxYQSN
z*m0!g2)3u%$!SJX(F{w}VdJ0pIPCMuX_EJzn3|9E^$e?XVXKOg?3MkK-#R-(YX=jP
zlKfChiATg=sHA9pFwf4!=0A71$hXwQ#M3jjlHHvqzP1t-F6U~qnJ~)ggj-Qt4o`AJ
z5Z1@w)OKpWmJ)AieB+ZGo|gVe6QI4<f=n_VInIu!Zq2=JbbIPOLFxUzxp?L{I^(NN
zr=P3uja9YUbl{8mQNgH?pFhoQTC%nHu9YQ7#nWZC7WOVoO-*qzY{8n2RPt+T(!n@0
zg=~sdtz1|T&o{gWq-kKlihnW_uKN4;*mHF%JW8Wwr+tkj`7=7^oAyzClaKulA1f=P
zV`9oiT^dk5Ys?e%1RQ^VKd8*T1C;=c7!a}5`jM;T*MaJ&)?!ZyRJEn<)kW_kF*P2O
zA;vEX3RrX7)5!;8YEUm^&z%bqah5!OT#lC!ND%G+Y;uFEBs)rJg=u(0vf5?LFNvgZ
zo^ixQLMLr!K_~5!(~;oSdFfT2?&Yx?L9+W;mDH&@r7qS-?7YF~Q~FHXE>$P3O{&()
z=e>#0x0aT`Qj-?-l{YU%1PlbD&TH=sD7#%}@m;3PHuthf3^_8_t%$v#Qx)h{Bxdvs
zDW!RsTz`+;mECFE?EgrG8|~_hm8P0nn9k+=nRn*dyGhMyektAK$z(E~MO8t8GCe(A
zpOYq5HK5a$Xc@xM*f08ri*n?WXQV8{01b2Oy6+j0n*Ae5hyHT<&W)V?6f6;(z{?x#
zcxL>sKE6J=VLm*p`7^uM!?p=4m2|1B+QEXM=Emk`ySWyNV;Z`;3KuVS`q%OYW7!t>
z4qG`@k&PUA8BI}<TdYO&_4Owfms#V|ct88Q{GN8}u$}cEG<1*0g59=lo2Vz9OknLJ
z-`Dg8W{WeU*4@RPX)&C>d7);)@>KX=6)rPBdYQm>S^toVlg~9$ta+343?!W;sE=r+
zHEyFMH8U}%q$;IoCFltN017eFWI5^vE<W{roj0tVrfr(ZoT3$MD42YR!m*%}<DJG_
z1W-SU*yuD$3c5JfAaI#3$!Os3P=n;e`wh;{&K+-fm8cxN!|(6BLDonq2Qr^8rSp1^
zuArK%Ib7;rb}8=W&)wn@5_bCcFPWI!YHhusl*F*wXS@``I`hfM%E2N0=+&<iy57^e
zzA~JkE5Qj96J>N$EtkU_20rg3cHA>w>f5JI$>{uh(ll+poe6ckKs@_nRi}D<=up)1
z+@|@`($Y}5Sy))U4LO(hJ3NYtBA2bh9|35l25X&WMu_hn9Ua~1a~g|VQ&ST-%x2sc
z&?s8jKR^G3>Qk}O+>&J*)Nd4E0@8p&yvfP=2o!=HfL#R61KOmYuRv-(C&tFj68fOV
z96$=66I_vy6Ip3V#$TM}V)*j)E9l+iyvH#S5lguPzVtUJw_I@0)zpqO6jaz3{(f+3
zGQZaIUI4pWV99(;NpI|puHFFYB~GFuVdFl3&e?Tya1VA!XJ;o$A#--?7k~`c=|<fY
zoit+DN4knw!z#<R9xi;3hXZWE?iUvqCnjs^CP=68@^9UPQPngwG!qKme-$K`|26=}
zViSV2NDR+_383eHtE)S0Y|PPX|2QaU3t%lc56}lgSS2>0<l+c{aj_uIoH<iC*B1h0
z0UTKqzFz?=EUy{}zrZM+?_q^$-B(R~SxIoG?O;LovLL9`d&<gz>A!#Nfvfxj0&Wf^
zMa=<dXr?<~20OzLRSy8%y-HQWz~jT0!d54xEv{XwQ~i{wpKd0+8{8Db4+NF2ACa00
zf=r;nNF{JjKoC;Nig>N`sw4&mz5P+5LfD@+E7Bx^UP5*q2JJ2@D_a^|U5cNt3-c<E
zu`8~6ekK4E_9sEJlA?_II94Y)a_4Nfa*CWm=he(OT#=rd%9OC#=Qi5k=YcGdr^A!3
zQ~_m}dcft@B6m?#K@TZ4A!e>{#rvws<o+q(L$D)sYc=l$%^n}O>h7hVqC+DiT=BJ<
ze39s0SjNucu}zwXm_pjZZ(<Q*PtVnKFR6674Ie_ay<lL_-&YZGH!N&Ns608_WUJpD
zm%>gm&lDBsm^C_Loc-v`o?Ei}PNV-=lChGi%!C1uP>4~mVpSEyV?lcXRnT7;L*$;s
z!~oR`96lVOlyu8m&_R!v@vU1Wc@X_<JI&^seL*~dvikt<E!u;CMbHkM#Y0=IKd#Ya
zbanJy0j90sjcj7}x4>Wki~x|^gdDjeO3j492f#JjZc{qG44}V3hgIC1HfoTLihLmr
za2N~h+xPFXf>HgQH@XK#bGv^^bkEZQSYVw?vM1}OTe=%qQBpsZ_Kq`N>f7~H{CaTr
zQcd>@GC2}3Wt0pogP|mO4Dd_-`LrL!#N-$Y_77{@9|F8pRLG&))Jjg#U{<j-F%o3X
zD<Ku@mz?f5uNbwvvj)jpSXi{!Ke@;DL9o1&n9)W{%IM)~x6PE4^IfyWmBuRr#%N2v
z&BFu4>I4TJ1TDs>2^!|T2NVgCU5`><XYrz_D7LQdyw_YA$Dcv(l|lWUbQ0;Pm>7uM
z0j3ZeG09F7p*Ijvmb^-GcI9fMSe#UmI}a)c%6R1X@d~uY3&zH)pM2=Fv>Ru7*iSh6
z0y{~v4-P~bb2HO`f#5lNN+~&(zKo^Q_eDgYSRR)<Pvs{=Ab1lO7pBCz!0Lg7<m7;t
zFS%#NyVWjU+=Kd_sLpFqOG;;G8lHZeo9oo`e%+%-k6xvv?Wd>u*4hf9@f<u0bPQDv
zTd1^u64J*Uftk^L&9kqaJQq<V3k*Qi6%;<A8X0R!B&a4g^v*64y&Pcf-aT3hz+=Ee
z?DzGzDZ-={c+In;!E~)fSOMGcOSS{)Ofntoi4q2$4;)v#G;nxFNX4fCNBx%LA|id0
zt`r2c!Mvk%-6?&><ce8+^oYq?B!<bp*Pc15+OO4GURxVw7r2xV3_@NNPp8|}ef#$2
z`Bh7in18y_xBB`!6{eig${NPTVU3m*rkOp?;^Y%e;AB__6yb`p?%R?Zs=A8Yui4uE
z1PV;nNa>k&L%A|=4D+MURb89^fSB?2-0_#SQ;W-U%U%l$3%0Jx=NX?oc>+4rHZgzL
zYchnxEj^4{65O4Op>;wJLk*fIDw)f)(ws}e#xTikzjp0f{?H<WOh@Yrw|sgTDu)=w
zPt=^g^tnN3z5n}10S|^g7IK6G`j%}jYhoR51qXggSw@FS>eV*3kP7DAyE!AO)YEl<
z;IY2(LP<Jr==&bw<JMtM6A-m{b$MKqm+_5$I>!1>fcIPgsC1vbSkAj3nZSbk=*{Dy
zVPR8E26mGK?i!4~8dsMpcYt9FM5xr%2g=+xSLO$?7QjtuIi!>UeX6Ug1q1}{SD8JI
zkFOk`&2}18g_H%Rch%A|7~t<{t)x%$@baguV3|Po2;vJ42?z)sJ?fL1%7o&+5N
z90r5^;|CW2AF+Wg$-z}-ruYEwMZ48Q{r&yKUvAwc2pmf=kK*FE9XzT+Qc|h{Oo{sG
ze?DwIJn?CN*thofv_^3(pT!^E1$pCgiRYV|ngDPlmnO<sEjRK+oXs#Q`YgRvCasQ1
zuO8S3iD+S%<TN*NNnSzWg!_!Z;iA6`0dyQMQ8Unj(eiFpnaPlvtvIdl#UmpRpI_x1
z+mEVQted9BM(t<&>xxmaM>HUXJ<!9-NbSm9;C8`_@5;UB=vHqVul$KZj|7~dlboRF
zUhJC1!`uxGby%8nkOFycXljy2IZMy&>iaWLO~_AUV`GQhl7YIO5Ce5VfC*DQSQ~%U
z&5Z@Du6m%J*61)Jb=#%&<Wb4yxYg8#p|@u!dVC^312Y&32B;?QXQQ2p9rsX>*se(B
zuzLUg&e@`c1vkhD=+K3KKJycOU`=+>NbzkLf{H=#6KDz9+1V)0U}AvzDDR29sFmz7
zHU8b>l>?6F`68jZf?UZwr@wuQBDo>I(N33Ya`yw`<FWM!^0=42hf;cO9k!*t*xd@#
zUMu587W@HU?ls}Vft`Z~z&E@rC?M3JZQIVT0ct3XfWhI48@088-9e*9NAwFii~rxp
z8$h60ldnvVvE;rzbo<n;!`}1NOADk`@shcU!-4XN_??-t&U3&PYLb&1yXQWN&b5~;
z8vuQw%}B1y^%J-X#gyH9$pK9bU*%JJt9qah{W+neB)+QZEO;oYU%`Ibi=xrWs7rs{
zQeN?uUp+0OW4)!wNKJt0GJvE;igV@CH(ka}kZn^_L4-grLlSs_EU=?fQ%yx;qT}Ms
zZ{CcSdH!rqA$v&0+u7%-eEEj7C`UEs`y-W(96MG%H#etKd=h;K=<zj)qzUQ&?ID>C
zx;6DYx#2l4HEJNl?T;Tn=17`NyPe$Zvkt6e`n6^XW1R)#To3)UK4%d2)R!+bnR+w<
zWzTD}nW#4%%0sOSPOxbHg4W&dpp;b4R9N7xlcELP66~91v(NV{Ono8^&~<FD?=N2-
z!h$osemxSJYwVxeiMDU~#VX`V^x`^;hlCmj%4uge{*px2UPA%VkX?M}q<EdmWjf5k
zlnj2pzr6tnzreO7OPv>(RUW!3{t7~|MOw_;gXHjy5mj#+RkruV@jz_+(y3pmi!Ef}
z^2I#+?`A)Gj-ju5Hv7si!u+tj`c;Q7GTrtbeIG41Cx7`Nb#3i-R(@Z44mkjDmHHuP
z=m1YulfPI|bJ{8qf2F~=33^k;#R3q!?%zKFVob996arPi+a4+%U<lgiQgD$;Y73{-
zga6ddPY^z0v@jNC!q|D4IXO9vHQQx6N`Wj}UO48zZro=ChV<`~7_wxnHS!J3L9mJP
za`b5S|NGgzP2#b%MMj4=&G^xa9v~hS4~L%*jKL=8V@gTo+Zpfs?_an<ddT`ohJxMK
zd8qIt2E@lcNZ{2=*Fg~#jIv6L+3%a@bM_N;=2=W|RCUEzX8|g<K_?q$`5t9HsVxp$
zEvGWG=FU<%9L4WaahBWcE33exrD*MA4|7`hdkp|O_uUDZK#9kAOXBSmxg!X%bYNiM
z{|1x0(Q=nD^mvP7@BY08jX@^`=a>jy1l=e}gOfch`^}q)6hjCIz4l^4;M9+m0^NOy
zk9^TQe1s(wh2W@=(5XzlrSfJi?VUwNVO3^*L&@=vp6%>o=OhLJd=)4fp!rR!b^M$g
z^ji<9TBvM<J_F7kFT?LgZ=ga<T<V^-Vyk9BuhC|&P#81Dt6CWnVq%|G7mQcW@i)KX
z{haK0k+Zxh+)oXIRb`ftk#P^2Qhi6qQi@@=p`a$p1*4pQkY8Q^)Xe{`1IT#5rSYGS
zlhXGd@Xfn{MwfXO8Wwu0l~sf~qfEy`nq6Bn&*HfNq48Y#hPMAR`cUT@8@0P!`?moo
z|L=ebMgau_#wu3uaF(lJrZ6MzuGm;QqH<IYlt5H{OuwAP;Rv`DE$w2E@i;cWg_Bsl
zk!W0Ol>)wbySH56w7m_oG%6tzXnb~U1h#?o+X^sM>xe24A7aXgH*K{BWc%~wXl>8b
ze9r$(DaIdyGtkdn`Tqa>`2C%x5kUGbGiij7({XnR$}Uhi1Nh5R$(s-0J^g3uPhQ{@
zNih`M5mtG^bK%$;IC_+B`@rSb;?j~N3>?%nE{0M|vZ+wV%IZ(_R@4j>ew3d0Dl1!T
z=1b=0{y@w?>L*X0^p$zuF3gZwT>KT<9{e-d1%`sn$tx_!Q&SzsI!<8jQD!8kziY;~
z&Ki11{)xq7r8e^U$=n_oxKcm#S4T8pjfk2+KeRZO8hZ}12I0lAhYju@ymu~%0YB-O
zf49@NWZ=Y4!t?m~6Jk+(+oX4MwK>t0ZmCc<13lwG!2sS^HD|Qzr|?HAIrM(mgi>mr
zJ%2g(c&w_X029Pu4*n(nNNVT`AZQO1x$r?*Hx_BRuzNcGVQ<;<57TXl`U@@b-njSb
z;!`n)J9t?Fq7xJgr5CTmF;B*4fTjZ$U?t>s_(w+WBot=u2oyep;;%IVhYk@~{Kt<U
zFH2_Xlg=3yx`tydL6Q#W9xt(3e2S6{&LSWvX!|?vYi+F)@B!9OCG}@4MBp4a4bKb(
zr@oz`!`6GT%RL}`+@JnNCX_FJQsIZz?5p#-tG|sMetqKv16%`M<mV88KjB|xK<X`y
z{lTw7<rDK>k(8dVQhWUPaSy-oJT-x+39vD7TJ2!8vg2f*93ER;dneG<pww(Wt3Owb
z`BCt)*>3N62o-P-!3)?VUGL*%LBQd%V%KFA7Ak{_#HtctuBo{>IyUwS)&zPvz`Kfy
z%F@VHX*>))+@S2Mbka+`ba1&qA12Uw+W}*|%a~G?xyztn@TflB8&O5jHne#F-!+dg
z-_g%8{|i)H)#M$?4O^a(p(JKP&J&L2Vx!G=pS8ue?BBm1c8k!76KBz1C2owp$j$}{
zAUvAOmoKB#Z2@vX&j)UVtlmBf*Vu9Tw>E*icBo0-HX>bx(sQHhCS`oB0x+uk?AQP%
zNpf{*itv>rXId_M^s{!qAKp<a*YMvgz%<H^Yk#OHC=VgP7P-%Y1D@B8#GFVkH%Oy_
zZ}gzAmx>QdN;&|&CptcUaI%sEkXJKBOUz}28H)<t7GgDKj}GQ3Yy&7q09L@t(6aH1
z(6TX`7>1GdT(w|Q$G){9k(#Q-7unuqwV21m#1vRzO3_Bw1JeMo1OjVJjr_iF6AO#L
zp`mNokSJt?4Dnr4Exg9OZpgV!sGofDl_eP}+rFskUT5(O7cX9MaM+&PUW2BRl9tvG
zXTTSUVh<Y`su-U6s<ZRMnHd+RUAtf`nRt1{ZJ?xu8~*s|Q!_vUb>8wweqAw#zKzHj
zV5?(ygH&9yu?YpPWt8KDIiId0x|FZ;T)hX}7HAT3J(N9Su8tlp(=A!hPQUdjz_S)>
z3CtdU4W1<<$<7n2is_pR?Vj5PoDr$CiPT&TnK(671G)$7>+zylb|4zL^Kaen*Akrr
zTz7j&1@sN5lo*L~=gvJn;j|e>gaFh2h$^s+x10m0wF$hy*Vv@_aLj@eo;43+Oho_M
zPrDV(=#lk_MT;>9DgbINGOGRbi3%TtJqZ_pOhM}>qpYTOR7#4dY_YMiaM&OhLB9Zy
zK)e7l^=05f;b!*`vpl^(1NC<Pf<|d)qTa396PRcq*)KIU4p?|78>kJhU%w`NO-S_w
z0MJOW?<?PeIYnE*=mBIKk#+&x_AZbwIRHkgCSS&guNfiV{Rg2lqL^c6VwVB*CnhEm
zc3xIi!Zw~VN~bWeEC_uMl#(7tNB3eWV^}(DVaJDq6x~<mKF^4i;-8ud^&6oHtl+Z#
zN$b2>6tU{4!$j@*XTdm&*TBWPaN$BJ2)pss+;&l#DISI`+&nzH+1Wo1PlE{R85<A6
zi3Y3&_=9L((yb;OZH9q_VgWXlXWzRX&jMK!pSaoQ^w!UrnMa_!q5W{uQ_+W2=0h9>
ziG!^JZ4J67Y+FciFnz&~(Pf~0p)H`=J}WAQJ@73?ixF!fq<Y{3yi<I;zP_oMnJ<3i
z_wX>50Wm>BLbvKHxEQJ7XXkm$3u8llsjWRKAyHjk?%VVcA^<wZ#JmSIM+h-cMxu5k
z+lDXc?<?nSRN@<J%?>aT%1g2#=!en)o6|7+_OpZvW7gqHta<WUd{|ok@FT(d;X1;}
zKp~>1BCI?-#Ld5T3Zkzcim-%Y8^3$^4%-1z6(kMxg|^{~iybCHpCJ3SK)i!wj$u=c
zlRPWLEDOXNk_sIiV>G;+Zz$+8+E(EW{c-!P@bK-Z$;@nQgsARXWQ0*!oE_(3rqSSw
zbo~*oAX2zOyqV_WN73SS9zt#E1-oF=V_9H*6x<l^njpiHgMR?6#dx7UO7Fsj-l&qL
z1G^3z0a4e(v;cEPyy4W|XWJ_1K(zQGTcExWk{Ee-8yy{F!@0>Y?=QV&0XG+hl217Q
zqCZ?Xu^z^h`IRfs>r{XYqpCCW@)Yp}L@R+nLx^TraS(g)j#!uVP;)&!i*oiVB{y8k
zZY44SSZb8)uD4K4CK}>b9`2EFK_KQPG7p#$?0(?4`I+33P%y)y*{;j@CUl?6Ld+J{
z)?5HUL_t$Z!bb62oSB^K51aZbF;2u&;OQe6l-9U#Z7I8mv<B}GuR&pg_;9z?x~o11
zK4Txs9%>niq&lzcnKK)JS_njhi6raGk(wJiI+XD$sJ}31-*_&%pf+K9{g|3(^*`S~
zDF$G%RI)m|>bf*p2~`;HDIEP}+msVoGbm%5F+gwgFh0djZ(5%(Qlv1h&Z3;yJk5yq
z5bhb4gcyVae4xjCwQ-Z%XFr)<|3&q!@m2wvR%goD!vg*(ixsAmXT~q5FHe--NkHMM
zvmo}AXtzg%?7q@6I_cNjPHbrFw&K{(X8#u53-%0!A^Ie&;`MUpq1M1`fV$K|w%Rpu
zI_$f(NJQ-*79g}m2=|cFWcO`fSX?~ewIl|W+haP-xMF<PYATC7t5q;g-u_5mWfWA0
zoatg`*+4-y<!fG9|AIGoCV9pS{sS;^b+Y`J4nb2iMgwvihC2RK?1d5y?QDBk<xS+I
z2*C}eu@;{kS-;VLcY9kKy!ICj*K9VWR+wTtJZ~5x8VIDtsOqE|@}p`1zhh7m5dXoZ
z8ggDZlN<CsC&IAUV>kTUxj8W_D=W#r-_EqLccHtY<Gh{6GJ0LJ!PvbBNe%#Y)Cr(Q
zY{ZBvLZ(e_K%qS%Dyp!T{+m}799)bCnrpIJ{6}k%Y-p}fJ{YMpv$ACJ4U3;s(poqb
zqXPpk3awe^_&4YcK^3NGE7%W#mHqE2*BL+qf}5vvLpMzuiq)hmo3=Kg!NU{*(E8_D
zqM<`q6k)U#i9x0UkbjiDDQEYPvp9MZJZmjJKh@-d-YDO;3GY#N$K~0VE}pjltvJx$
zV6CH?*o%DucC9cy&+10<93?m3KXf|&?iy(`_^ZXs2)+BU^2<Y3A(j2l;fh;}RHu=O
zl@K+vI0mf^6pTp04G$BKg^7hPViTgMpb*d$@)W~uZLJ(L^%|ug!mCs~Poz?~GPeV)
zw1sLp?ug!wd?%P`I=Z^pfLGyP0Rdp)Bc2CilwftoSdt0~3=G~nr9+4(3bLnlZabM>
zA5Ooi=^a%25tjm{EbMoT0pQL}JUqg905uRBfB}*8(&i7idD5r!6n6v>r|Pc^J1Qy~
z&}#iMEp2N=)r;vlH~{GBAr*JvXs4uXfn2fea9XMo3{jUFpeqKT4q&Jn(e59{tHa(Z
zTnv|7T^~b`fnEmZl=TjTXmoef)1Zc-7lwi;`60;Im<fCSQcp(~@tef6&T4(3rk@Fi
zn6?tB1F#c|V?^hLzHTObRxqj|&fDg2&J4Vqw3+J1Et0W(B`>Km4`PDRU<fr7;&<&C
zx|4r{NEi4bQIUTfUg<kL*Dt+t864;3OwUip6GU%&@+1LCC|+t57HqV1#nN`WlJx0M
z#KfTTL1hM<t%^XzN8o#Nb3<ce(nZmj8etKUkC5se#Msa*p>;!!V)gn(%E-uqVggJD
z9ELiE<jl*9{4AlCX@<*Q((u}I+e6z&n{--SoSi8w(!y%vPQv{o^hmhl*sMrFeEISP
zA&sH2v5%uJRyM$P05p!se1Qx>cSrodve$r@QC)l5pZX$X*kq_&@Z93uejmiZ!hnmF
zxB)x%@slU@Znc<5tT43l(9lqr9>OP1Q~@Lb`ymX`>r#LnqpwzADCh(pf${@&#vsuA
z7z_5_TQa#0O+b?UDoXj}qyx$zj5b0rKxc(KgA66q7>m&iEk1~401ogkfB=A=@MCSW
zSu=K40F_W#?kjSEfxugig^);qtHCLR`$m^hU4WJGB=9z{R5LTT13C?CT^^Hntn_Vp
zp<j{Q_PI;qHk1M+Y5=eB_7FCpw!tNIv-kA$Z1YHLwQlkc-L`oH@u!IaGNKKK4jsb#
zg15um%5L>IGv0|T4Zxr$Qk&Pxl&(OGfu?|mZ*&WgPdv}MB`=5X0ajmPq7Np^hMigJ
zm-Z$fymna5?>T*)Gy*WA``@B-druZ|m5kfwlnjr*9&74F`p@)DN}ir4p#i`!P1n_p
zDRV|*#KnbyW-~T6B3yV3?uac!-McZ?l6fYE$Hv<F$EWc9ZI{V$?;y^a318!Xn%2mN
zJqSal-&x$wwFIgxLI`V?8lrjFkou%N`SXmB(80rmkfz0UE9<3rkEPMTjsZbhLVG2Z
zoHBE=WCt~=Ba|>yH<53Cq>Jfq2V%B3Sw@%GFhsR+J;(es*{If>WT3ftn#RN8f?Pz^
z-|(yBM%@yres3!KTPNoAUwvQSSC%n#KCIjN_7fDWq@+zH-K)>jDr`jBx2?M|dcDSc
zYTNkyg0W17=lEuyUjK9rGU-UPvVQp8Ct(Z4jsD>z&vgC!#^*@Qh)-<sli_Gvp>vmR
z&OO^9PB5X<Hj@!-*Kf?WLmlX~*VCyDZkK^@Vql-F<-rhdXtODYKGz4eGxt<-!?l62
z@=g_<n&9>|ZKZyAnkbI7iF0%CRdbrBB037%y4u?A#I~Q+)=n49OyFe=K1ns1_Fo7A
zAB!-Sy5EQ?baWuXf_<gMx0Bs#uGiq5e0qI&YHFKQS9^*^ijcH4X|%+%=Qbr`wv{%X
zDh}iKGX<fr=rD7#(b_FcOe~&70+K!KDEJRJ?L?_j6M}0(LPGY{%{7Blg_9pymzKL%
zPgdUBQ!wNNbpjLw%?wJU%Q@1G`9D{>JZCQwYI60!gSxGm2cfX`G2vP2hu#W2nWrN6
z_iWz08K}Q>c)Cm7)B%hQ@S&{tJu*l_%s@=a+=+X(54sef(6G9tHCk$?z0hhOgZS|_
z;ub0}Ha0X=kS>67NOf=mhLH24r$Sl=00Mh+bb8dKK<90VOW++a5>#Lmi_ts@)OEhd
zeJr7{xq-j{(a|d1TG6-BRM=<(astHI!y>B8uwC1X^jg`S#vzKCMp#M*4*vXU`^tk$
z>RBou`X91!N6>7z7@lWlo^L<=q{e*r?%mJz1Q@9OENpFw3MMDz@9+Ogi;oD5(QKYX
z97Sm}0K}j9LYJksjt(|(9BYwt$5`afGom2C=K!q_K%Ix94-*Xh9s>QPOSh5qz`Mb#
z`-p9GvKu`u-F5=C3>gXtuQqObSwd~al9Ce>H-ORP8**d9BqhH9X~5|#n1NJ*X@L;d
z*4BpSYNECZbdOqV)4YsClj2zE<#2_&4Y=Czo4eD&lBWnzB3v~Y5mfLpc!;&gaY68b
zNdjsOtbj)0HF(1-fWX}lo`G(`QHU79slD&*mYeKs#MH<-hf<i-S4T^hMe*neT<UMB
zs^su~+SO%*iK{Zx7+!9(7BO-kJr0J`f=xk$uHh;tlSpB3ZdZP&t@uJ_A*!vF6-W&l
zDnc26=Wrvc1{~qaf!K>V{k+@ckHjLO1%al%6*4w5;${e%$c|rD-a0_22|ps#ER#8d
z)?PTbCtI)4O;nR{Q$gp~{b7=KQ2a78!xh+XLI}KtKV)Y|T#fg9gy9D5hT4E^Au*5u
zIeYf(0sVw$i~+lP?OG5XG5zT!mC+x&(;7d+M<qIzdG=(p_j2=l$}1aYN81V89-WPn
z!{a`lLs(Rl5)0*$si}-aCJ#N8x~?wvjD#yl3c2ko+0h5>x9#?N*vJstxVgERIXH-~
zNz)~P785^(ih|+C&?$tmABa}2|Mu;a7~4<8K_Nr*IOcPijXMD2LUm~k(@6`|mQa57
z{P}IrH^_0Q<frzYLiiKx0-uhTcpGOY64Us3|K|1UoW(m;!VEOEwbKkbT3b_gW|3^j
zsj)IUu!OCx%>aGOgn>|yHnH5l9c0Ng6YlyxHd?D*UBs^ts~DUDT}09V2n^939Z|8U
zYGUQcClY?xyLaHk0G3!ayE!<T$AaJ%vC$I6elF>Bhdb)^+(s@7X?+``9K`V=GqtoU
ztVQhR@?0iPjhalh-QEnO4ARs)?RL$=B5$Z8sm8p4`cIV7fkR7tk-<8b-_1OUR+eAP
z)8fm7{64A$)e&j4?l*Vxa-OB?31E9ePy<N^EktbK8U6-Yu(G;P`F{VzY0JU6rk@cU
z?juLAK&7+H-~LBpCv$#=A=VIaaqI@U!5XPfOgRWFVj`#qz-$zUHag|A5&0jlLlIRL
zWo6`SEmC@hHeV#d%WWT$+j@UN11d5ioqUPt5;DAq6GKtGl-oYvF({?r?Jeymvksjs
z6;H^7wvEgb*uZo3Z$@c4rxIOg?QH74uPiU3jY4v{Up)W>0j(TRZC-kHaP<vTOOy)W
z^TVD)=M3}gPfL{OYHNcjp&-HFLg|&iaU<8IBmTdyqp1QcC;j(W<Zz?g)mc`#^H70C
z(30DmP^XYs{gx_qB32d28c1D0CukFwK;gl>3B-z4a_FJuY#kDVO-=p{LtG3&Xw3vC
zM(sscLYoIeLrw?4`QpWkuodvn(D{(DJ!eoTA}$_`DZ7`lb>n(`r4OLYsOK?JQLC~-
za`RU+VJsROi`Ky@pcH}y0Bi!9LsWuYgIM&pwl<|qJucXb;^L{XtNQI9_bXI&7Oa_D
zZ3%I0(aFsSf|&{D_vX*;hwu+}3^0VMkB0&<fe>i3@qMqob<5{^Bu~qFO<;ApO5RK0
z75!p>69Pb|^1O`o!M8^`3!?C3m<sXOdyq=NmoU88;gB^zHcIjC(0CD4waq;$EPMx%
zMLvc6PFonm`MvH<-@m^gtDR>|54gy$+B@kA%Lc<jL>m#5%-I2P1f!2&1)R^9$;mi(
z(3GJqA)V7ywsV#})-8MICYeB$G%dcur9aj1TVXW!25_uIQf`5sLqu;vO6In%AVG`d
z$AOcqoMY>V4!VOcsv3aSab@WyAqrQ7>>|i9be2Kla7LX1$8u!zt8Gy$sgZAydk9%8
z_31iDQA5Z-&+lvxbAeda(b0q%0__zL8T4Wn>YlC<DuKDVIRYtJl)8cLfos3JW-u1c
z|BS(xLO%b3sIIJdY}cDMv2aDCwm%{rHlLXhU1N?EDQrY|XD114qmsH)g_)JLftnxc
z(x3Sy|NGPP9>g-J^&E35`SSz_ZjC?TWPuV~s4y7%rV%)&q>(~Y#|?Cnr_|Kw2+bct
zdk<n>gb4_%0#2(=!g&9y^cRu0cJ_6xS#>Z0z!R|m5NAVkf=mdQo0Oj)4TThfJG9BL
z%KfDW%RLF7)c{NMErVNd0&FSQKUF*@?0YC+G<mEpc2}AR!Ob6UhkZpwptiH=Z~La(
zZIG9PLLj}6D4n2@@=56u=a>^AC_KQqkpaidtF`QRN_)12;dGlacZ0viEt$Z@2%tLC
z2xy()V{jj!kKR6Ik`}||n|B6|8<Bshs@a+f<5xXxj&Usj^dE<m7&lBWVZz5sRDSsI
z;eQ;m{}^J(ezmr?{+}0m=vCuk!AK>8PDa9F{m%=kGs@)*Qmq-w|BbT(8=qNkM){P!
z&wOnU>B}Xb+Iy?Uy#1d+tZ^4hkuOpS<OJOhjMlfT7uFiwYr+!dZlt9Iy8+x<bM0W?
z2EZJKe`~uVI)VU46}%8>pez69)7AtRsBQ4F(3`=r|Nj;wL=PG|I;8gg=dWKh3?Xm|
zaTTNZ@2!toU*F)H*Z$9qoOFE(E(S6XsWh;|7_K{V9IzVzfG&^)%1;uhR$^u$-Vpv3
zj<Dq$u9P>w*5ZSBijl(^C=gh0>O(tatPlLhz=YcVCMyfa*^=}Gy!xzOHe7=?jsOs{
zJF@sV_glpBf5A(Q!bF@BgJx9M)wPoHUC0Q*!_SfYPo+E;G`EZvoE|N%x+dRev^G$?
zX*Q!kqo0EX;k2VxMq2YQ&NIYc=s~%IVl?0w4N%BxBnpgKI|yV8QSR?TSc$45Y#nfS
zRAQtw@z98)L%D}20Y`i{GqcI;SSK36lGiG!@MUT$Ynv+u7R(T0mLk`m$?iGNS2?5B
z2-6@_>*O@0BRW*fnHJ*L!Uc^DM`mO=pQ;WfyL4KTQ~gG+Zhs5xNceidus8@J@`XQH
z;~;v>i5p{VkicW&oQxp7LW>7%gt9`w`Y&IAdZBv}zXekf))_2<l0R;#sSKg=Kme#%
z6hs7xi0~O2c66|o&_VZyRu(0A(bUV!D=o&!I6RIR&{V$ER7-NmHvfXDk~)d;!ZPSW
zpL=@tN-xxfS=iZCj=F5%_{-pp2%)gB@CQP^j61dWP0A>`!Cf4*AYwL=N|4|1+3;zH
z>JJDS7k?@Bp&S|>E*o&{{HqV^1;<_nB6X2JMFb47X5#Q=RP}jX-PxeAvgK3S+8A8e
zaC+%Y>9$`z2ga6$_LehYrC_wZAa&L^H&?=A%6)e>SN1$3%m{>Ya=X0{751qfKy2sh
z(-UW)#iXR1jS;;F2?`ipw9C~82gdf&Kg-RHf*1?#PuLlRdTpB<1DzC43t}#J9<&DO
zZb)!qaIhhKK~@JO12BIHV-D>Hvkk-Hl849BZg@(kaBx+TOAOQEJ$u7Dpse><a&my3
z=di&V@hNmEG7(zSvO$n3@Ir*Hid}-9gB-0HRtzvkPkil0ujT1x7-Y%ny!NnNVejDR
z9Sp81)O=VEpvXjM6&;i4{CaxN@FeK`(AQv{plt;}$OMlh{3QW_H>h`*0uU?$*&uqy
zDA$W59Ws-|!PCXjT%>aMBM*;U5+o?nwwkom&)^R@<Vds|$gDVFiQRz(iBBeiMbJtB
zGL1-t<CvVEPpGKSplZH+xjXYN-*8Mbri-2<>_1IxRoeY33v2VuuEp+=MWwIz%X*7L
z800ixa9KHw=$&P&ywJ8_e$8j^wkPZ7ouyxlMltQ;)qf^eXT<o+Cb)}HrRPP8=8J1j
zT2y;l9vy1ePrul4aIBr?#A0#n@-z3Y`}%B}O>wi7%sI!74i;XWoR6Qq89%rRHi^SB
z2}wx<UUY*w2#!Oa1(gD{#pZxkiVcleSdBSssb@NAI7UTiR!9#(k<w2m((YK|X8^xp
z7{T&^mtSXb3`7&w2=WUEC-XAy!*IbGhNH3;OymAg39p(sX<S$+AbVy@4FC12M$4U{
z@;;>|kOzW>VIy9%v?O9qV2@~$uuw4R7*4=VBEMWcfcUD6@6@~``WmdigoYv5W@i%X
zh(#G2JAfm1C{9?A_{C;p?~8%IA?V^%LR*_YHangZe3dwm2j+-B96Nq|U2{{8+EXzc
zq`}#1oQ8l)2;~&QU#ST_>{t*ad=VfUnrGecG*+}@{!_)AhT-W#pbAuIG*F0hI9(My
zsivw5MyZyhfdylaxDQ|#cnSJ?R_n-~gQ5{0_CKDymd#RmNXBuOmD^1_IJD44f#-0x
zdQEh_3t8&p$IS?P;6Uo-%lj?KPhkDQaD`w_tW|6wfYD^tSO%HnM~<8ZC_w24chX3C
zNZ$|d8Sv(xhlq#029$ujC5UEA3p2>LpWi0Dls+E#9J)Dr4Vg>^UTtV?4Z_YtQim_{
zo5e948i+v@2>cx(Kp<8kiH-xMI5LKP0>X8*Hg0F7F)yQ@fdSb2It0xT5Ww(S9Q%yN
zB<x_E%}c;>AK136c7><m1c2buY)0n+Yr?dk0;9a4!uox}0nN)~eefxqp<~1gW43{D
zAfaR!=EJ1k1*C=$VBqdWK!ryme;}W<j}nChJR5`<dwDNYNVp=`#o&(a|7HQ8j>1nz
zCsSQJ$ruL&h?fRa0{X|sKA+b3P$@~m^y$9&o=?%lRN&hz$t*=itLgz==%lD(ScEm^
z{W$A|rM@1q6+!$6OX%iwood8zAj3a-!a``W6qt9+%1?y1;lIJf{WvJSdegxO5t?Y_
z&3TW))9Wmd8bw+cr|w#E?KsfSAt{uYfOo=4L^la;v>X7aW$Zr|t&G$!4EGP9&0?+-
zdy%hzjH9W!10@uZ%S_->R2fW&)8JPka3LQ16H)q|&xdOc%OQzY(jC@mOHgXm-tpzG
zaRgl8_gulTAENR><0eqF+h1P91Re7Q%%?t|(2)6trG+gK=i0YL3atrr32-)1i|+{H
z>@eNzRm8miCUQ6ch6CTBzHu@H;nW?n&@xnwmdD}AVYMMuI`6@ru5%6{hFH}^jTB~7
zRA?NawKx)hpS8BO2FWAdh?16#DDGJ2Mjn%LU(Ba2mgI7k$OONZb!6oYZRhyu^5ydr
zE`$*&i32RCvSrpHQ=xVqK4>lgx%%l$AVGj!v8s0SHd67)FJJoGi_z@;Pyzc=otMi<
z=Aqe<JP{v3Mrtgs)W%faQe<nqWN?NF>jejrjznlP#6wK;leu&*FIyueP@2D47Kte#
zW=OFp0+X$^UXPr`56NUejlPG0DPCwK5oR+Io5YFo<HwJqtU2I9hkN*`jT!g^2j0UB
zC=sFZ`<paGYd;{mFjp*Gtjz5rp9slM7#TTeCm<%M7$D((^pBJdc&$vuXJ=;Kt}wlX
z_JvjNTz#|iX=w3$EsCi!_nAz+7YJq+7J8gv%KtI8UruLV{<ep$BW1P;&!~*u-6fEF
zQ{;kE_7eLVLKzfOD*l)nbJz<+EJ;6|IK+Ts3J|?vqi`|wLPEh2neAUY*k(FCGDNm|
zsHkj1!C0CIkbY4@oR+-}D_>akfa5b?$CK<~^bcc-exW3U9B=cG3e!)AB4<-&rt@J1
z->Z>=102{#gbF7Ta{$m63Mc{^08L;(nZ;-wxTrujx#5U}1V2Ma#^Dm-Xk|1L>=H<{
zXeMv<524_|HpkPhIdy?LX>xF(GxdD+boq8-EkV#Lv@o>mamaQ@A?llUBZA#X4FE0z
z1PL^C9GIm&n8i?K^GqWJV7gt{!u6ZFEN;mlP6FWQ0I7K^=XrA*nCuW2ZEOx9lfkjn
zL)mu#rxqb~DI>9s18GahI<Z2T2j7G4R(?X`Ln?Jl#i!xv;2$XfU?VPzOugzGn}(dx
zB$Ob3!rikZ^D!hm98YPq#OB79!~+3aoFwvx$5^((AHs1`O=DxaB}<i=MqT3rETKpQ
z;E3>tS4j0w#IMfBgYw{4fq2oHfVd$25ReL?IW$TfeZU<e15ek39bm6vYZ3p3Vu#G;
z4M>s1X?Ifd)L6kdGB=3HU`BC<6DEgsHIl3}n_&|U0<X(hMD}-j2#Vey8Xge|!U-M(
z3e3$nr!^`iY2+`8M#(-)mHIL%81zHxneSOq5s~sUld5lui@zfGw40T+e?P}O)moss
zy=W&curS@+*wUiN%LofCP{@2=IPzc^_*d!aNjP5(*oH&$ETR5zSKQp);h@3NJ`!;~
z-w=<7BV?Frh}PI}P;TI&pa!ETLX2KJxq(CXwH(WJ9FxS^a2Sd>8e+?A$HlOna|E3B
zhz{s3rti7BqL@~zH4cu5fx#oK0v!lrO>~6T*N%JC5Z4flDziA|hyyQ~F04>YJr~|S
z-Z|D)WKie|IzmYEAhG7zNLK+n?0apPqJ@HNaf}7T0xJ+58^JLcxk%Ben+ex``GTE?
zIAi7TG;Rps-^i3vL<3DW`0g+S6e#BtU%swg>43LGzlW%5L`u%dc?1Rw1_;E668@~w
z5}YT`Fr&cD?yQ&J(<&vdcG>6)jZIBb-$#EL3P$Pe-w3|aSBoczsN$mG{cd?2N&ytx
z%V8(Er9@dmO_ytX?cqV-!@<}8<)VNwaA!tK4uh1o7j`>3sq^*gy;JkHLkU;N`h;@c
zKZzqF6*CWaX91~MizGH$qS4{kI6vUik?F1oJe_|JH;tgnhy2+~)(>4H_bBz)gFBD9
zU)c=Flt^=-&Bdzn+|y0hAx_~bYqo~r;5*D_vorkdS$YCQWMk5`oS9_ouWoeb;VxVn
z0PA5#??BC2z0b<pCwSPy6ny9R&{BeF&zvf*{MTV0ZUmsfB?|?YW!y<uv*>V2^A@lO
zR2m}1Lx`W<XC5eyF*|behg(PB(j0VdAPZ76zd^mHqNSxJ!l0&2yy22cl7$yo8LB+7
zAdz64L&g4BUS7V;{`E{4!#&TI9aUTpVmOUi4?M6*_-^x3Bc=OsG3iD`KoO17zMIl7
zJ}GhKmKIqm+>k&&Ki{3o)$gJAuubW}<e;j9XigflamQ~K8`U%U#V$Cx)seMw;hN){
z){$NpRB%({X3`M<p1ALp(~rb2SCs`ZUI_Xja#P(;XXp_!4CRQSA%x4}7K0?=`{NNl
zF_Fz3g1|ZZ3}#i|zSc~jX|>idJ7Me{%9vJJ;}RHrL{5mg9InuW#FZF?Sa5m~YYKHa
z_lhE-;>2N~Xk}dU17EvCcm=TvoKwM7H7GJ6N0iuA*WTpzA0co0t&2O$7I22;TUVEt
z!9EGxF|ZcLf=LXCoiby$LPy3YXt~hQWHmJ-=)c1tIv?fEBP$ZEOq}^ISs5<DO0Pzs
zh_J)$ZDxQZ=hI3S_@Oc3v`(*P`~o8dPzSCzAP!<pHj=y|f!sp`2H}MO?cvsroHtR&
zm}ww)Aemra{UC8xf=EyTr*Ac=7|uuP3*`*{@WCv)6B=g3%=l7|x=6rd^rEB86KS9h
zD3dYSaGL_;*EEw?c^6n&?%V=j+`A#?C!wL+5aD>W!xOX%`xkvF8<#5d3T|xHFTav~
z0VEfj7y)FQo43tPth2zG672e{*4Hh%@b#ENi2HO<ns90?flSu+4T`kkADwwn#RZ6$
z+kWV`>Q1XtEH=K#4>)C?sh49&FkD{7K8SIsTu?dOXGXTi`r?U*jADuwHGau!7q#EN
zyv!qvrKOb>RxjGFFfwh(#sC|_eYcr3>0)z(W@WmBY5zN@?Gaeki+gAMkrDalTDcxX
zbnnv2^F~V;9}q|YJ2Ul^^$x>4!vVDN>stfLfL3v^4*p%J{22r%kq}W$MksX0=rsBy
zDk+M`YyO6zV?aN80{%D!*K3b=05JmMq8h(EU|2meKDxj5F#s+~3>07B<wHh!vk|yU
z16LXS3%Ne1dSUU{h?fyU0-J=3vK}Y9xHC@wpG9mCSQ4=iBqHR17{KH>R_7|w<`E@$
zm68JgSnf3k1SPosNFDB?>-#5MfcgP46N7>GL<1neC(gWpec(9lDshT9OnOC(h`zyo
zVf5c=e@NgYyjLJB=<USiAE^5{!~r6WFdK@1t?k-Lg8KR_IkQMAADy%-o}L%qegpFY
zoPducYur|IhX}ZXtUxG2x)%>bKv2vGv=uB+Bw2~*aKZ%-oZ-tF2d}}G0kMGJ5&E~T
zZWMhhuCu}%LlVSaQe2_|a785B<oflUP*t1E_#=aV9gR`s0u@3200a`!5)$aNVU=g_
z+d`FkMn>j%PSi7k6F^-DtcHtBbP|MTNF=qtiRk)Q5RF6^gsOg!<_IA}z{x|%8)^k6
z+;-yOqa`<DSGSj29IOBSy<E5WPvqiB#-6saMW|H7!D`~b9ZvmV>Y%q^4uAdPC9;2b
zKde;|5fQPQf4GQ4Ys6hqzv>b_`gX*()Mu!qHNtB44Hz@9EAj(W-Bw}j+Peu`02t;2
z(;L7<;!qaE3ScwrQ_MK-%Yl)LyhpG43+q|j0|g}p#Q@ZxA0PXw(Gr%n>r{;>qzwY-
z6T+dL_hLJQ7>EWKBSL2$ByLbbr2X@w7b)N#aVOn<3y^MP2DL+=hPaRg=fmL}%a}Dc
zHObPo6M~P&VtY5V5)~?gV=NW8q|EQI2dE{FN1A9r5P}qtNA(2cAxZ&^d9TiT6EQn1
zm;i8Nn3CRv#ggyD1BnPveko*bm-pl@!eeP^`GkRjzn?I_Fk3u(5=a7E8^Kdh>6?SG
zH$WEqa9>!0Tn`A+Zls6^@P+^o0^{#Nb+Jo`lXsF+Uyj1|08#^q=2-rvfGPu#vs}be
ziUXq-zx0C#s1^egSlK`4QS9!jD=n@V9;s*>L3v>48cvqMa&;MLDV>-QLaGV^5VG*t
zx8UUq3-9!#bqa5UR3yAv3Xx9)SHvM;7(~QXB<=0zV5fn1?7O@>!%q%r7(6?!J7K^v
zs*aAQ7TcN;kHq}~3_(3E1rTO1qL99ZP`2?($f?tTK_+QzZ!bo!7jPHjAp~kC9&3)h
z4d4lA2G)*4oV0tyWi$1DfV}2gbYy&?iln)OwvOw^MqQi$@d0pgCrG3caoi6r4JeP|
z$dq!D2DTuE(|&Y7?iwvgV0*{!C;TqB+iH5Bf!?*_xzJajx?oe{;4nspklpkI9@GvZ
z?)ly{^BWXMaH9&byYh)bQh4O&Sc-%s^ybZ8nOfj?vc3wgHDL)2j=EK2Lj|Q3X!q$=
z;8?_RAb#wlrvef!FM=iqqJTtGP~3Y2?BQzVi+IF*`fL|u7Q_1}7_v=5$?s*@di2zO
zKz>B@2?sZEtN^$b;u0Wjq|zmk7y`1bCH)cV!M?_eqFN)U0DH_fw|~-=uv-!n&-hY_
zlH~ZT(xLAGg94iQohaVd1IQFp!!4VdlcO_2LP!CtHs?Z$7UU7gwRLT6d@DG24`~}k
z9;X68o^V+YkQjacyW;CH!soym!9I_m3?lNt%F6ov`*#>bJPeO}o_yl_xPS{SeD6fQ
z5J+<7iKw!^;M4i^?@O~yyQnuoHUcLG^@fRvLl_ACqEO>jlD-A(#mq;x!qJ4q4I3T~
zalcDJ1#_gJA~qo6NQm=8;Q|JN*QCgj-9CyAgt{dd6{07=tv}J&*hr`+h$TiV2jBPR
zi)4tsjS5iy1dtnC4m%P2*WgDd_dmFXtS)*c5;piAoB$bHJo(}fuS#9ys*Y?%TG~10
zPJXM;_+H|U2_KH7TTw=CK`4a9E7PP9skE43y`2v)#G1;GoXY@MQGknQi^d^j^So=~
z9UWwR4$)fX*+XGi269Ont@}(rD{Bs!A$(jeaDMxw!GS(F)_ArS?0w?KH%PeHIDc@E
z1e25NoR9e5zHmkSfB5qXX^qHbo<Nz5U+fqJdxRKHL=l*o=?_yX<+2XU5eJEo1%&!e
zI3!%oov*(r41M1ac-(XVy!+a@n=R9-dN>yf^o%qGv<&PWh?)S<xX<UR^x_4ySXW$Q
zLDb4z@5Nlgc|)?oW8A%)I4I0egp^gbUc)FZKg7j;nR@?pI(uBA)8(~jgCzg_XWe3%
z8#iWi#w)v>*V+NHleo`q_ntjP`;Wikc!a%#21HzyhOh#W{WK~Jgdmoa!vrE<J9yc{
zgYCZ&Gk^ivq2T(13PZK2jh4i5GThiiT*SjT920C|$7GVUu3+Dn&m~*e?r8xHuj}Zz
ztCL31dY~o<F7YdWlPhv4VAGz!K_&b$aYO<~u5s=N$nbPpWANsY0mlonJ48f}1Q<6K
zywo@dpn*jMbqo$0A<)~~-$y45oJ4YxAbf<h^E3J?;)F0URb#~~2&WZy6QHD{FB5kU
zPU4Qi5cy$52hRl12IV;T$(*(p#l2Fh$(R(d8A7YV^(&`^n9blO5&0aHdsG+V8bzWT
z;&wLzxImbKy@=}?WYcv*UYibxEiNv$wzS~>ghx;V>pUxmoZ)m5Fb=gDN)O5ygfU2+
z2<yl;KSP8V2?hMZUUY)v$Nl6Jx6dNUX%0qhA{2;oOCJumN)cGL{nUj;clsxK^Bz)g
z2LT{VYi!`cBkvE-84-^C3ikq|%@7H;7TH>-_4y3I6Oo+46%jBQ;EDjP!B#@ehN_(K
z!n`@-BB*nZ{-`x%P^2i3X#Do=K7A=>9psa@8SClR;|kP590#hiBtu&Hm#_F|Umza|
zGbmW<71Cm8Bf&3TLnO5pX@6us0rUp}Y-Xg@2WP^~gfqQYy|CZ0G*KzQu3$=0W*oRV
zibL#Bmtn5pIxf?89JjuOd&JIfhTi^4Ck-&5(1`T-0^EF9ctG0w3dPY)piqLg?2FJn
zShSmkh2e6RemX&>AIcuw-HPZ0x~6|X0Ceb`gYAP;nQ#FBYJsFrz1^v$Pl+2w@dijW
z;0}`KI%x=Gnf}x_FyQ|h@t`N^bvXa|Ee9UHHjCn4jIyTtC;OQ7NKyIEC~dop7#K56
zF!xW8PiP7{X#=>zQ4C@%H&n<v3vi`<?k$#N$R#&%O(O~+a8(v=NQ7*Ht2{#G%OJDL
zu4>>8EPxZ)tn-l3v7?~!eD(npM4*Ad7FftoYA}z<@m^2RFfSd<1O2G$2MK<JdkS%L
z5!haW0E8p>asT4PdvHq#mdo?@8qUkWvdDWsuHX-Cq1?Rrjh?`VIhmmX+^I;M-9Xqo
zferi~DG<IVOhiU>b`gJvWLgl*wF8CJfxf9qNiuusakG~bKq8(4ZyHd>$?y%93;{SQ
zMjA|nCjK_4IpGWwC;_G)8w5Xx_b3aX>vznT6>&mGz_AmY4iXj@=aV%as!NkSh!P$^
zyJvkydOJVo0Eihh@yzzo|7gr`rGAB2W$NK@FgPjX76Qaey4ttDWPM=u$qUk(2)u1z
z{6EX%-tok^gn5o!zF}5SlCq2qp%A^e$|4vpS^nvUR*>u;F9HPR1escN<1HT;p$-2q
z|8)EUdNVw4Oa(F>-g~n`4lq>tgn&?+#aNK_!GnQmXWe=6!|N2F4ri$_?pQ#_@o+uB
zaTn*=A;BX_h_wyF_YuQWi3-3BSQ-yUI`|*@ZvprQGAnSjeh{!V|G#nqQtsyF^4~R-
zq?n;Z!WhJuHL_Y$k8{EQK?X1@Gt)sg$D1D-74EFM;^N|BAmR)DDf4{qjv@Bb|0*#g
z2V9c_*A<xYU3b|{3v7y|zsb`0ai%=;XZE><zVJ=UfFt1#7xK54>_p8Z?!LfjnXNo&
zba(pVU+bM!V&8)!Y5Q8agF{UOquQH%{)+mcTmir%RzyV5A-JVznf^;=!(cp2^G7tq
z8mIK(M!<}u_PZlgh@>D$-kZEU-Y2xsfwpY@1So`ypU~4FAmV-}%pOo0YB*H;(jjMR
zpWvEB%@I1}x&Uk7MY*}Tp$LOv5*|!G4q)sMR0beI5eDW(gTuB!{aojJO#vPP9tAmW
zR3zXlkbVG9p+aP-(5hE{+O7Dbu%G}F89sohtkVno?-T|@pncQ&{-R?jJ`qHa*p@Lh
z>v8ADS0G@lPat_vT1ILdf<>qdHKIq~*#ra$Fc~M$@FdW#VWT412Wbtj0jvz3E*|?5
zokEN6z=v9;t9z4P^Rdwa$*89_LY99L6GLo3yh)yUc|0<O|L(xTGQ-w@c8C&+3XO>|
z!vz8OdhuAGX5z-a%Kl!M)wt0i<mChkS;B_<@`*$+Ai>TGo~CYw;U&DkI<K#OI<E18
zB7?8P9$nYtn2$q)^%sY>uNfFIis79Ai<fXPfH)h4)}Ed|07Vu>6E^|9F#^y+?qoX)
zE=0n^5*<vET>%nXZadLi@xnkv`@#b)YI8C(aeXD!JVKO3@CZKCjz@Qb=_~skpmreg
z54#gLZxID`Us~Wa$lE#WBammzHz*DECLr#11Qxg>0B@j5BIdbMs&q}Jx%u6a47lVV
ziIq*<1PPSbK8oKXRxKPyaC|HyOc(eij(|~=SlZ%dtAVzW{l05rm->f?G48=D+_?Gz
z^^r()5!ZzgW+5KF%VSD~2t$KY5VzTi;ba<tA225*ssMB0-Izq;3Pr*Lf(4Gorsnl$
z2c(&6c6Nh1;^#JkQv>%BCw_2&7BdYZ4Y+QHxQZ!*IiUXFD<n;Uwc@;2ZW@8U!a~G0
z#>x+J;Aj7gJD)tpoZ`!R?I$X|m;OJh-UP1abzT3@Oooz>VMPf^rda06P*H{yq9Ri=
zRR|SLNT!e|$&@Lfi9*t3C>m5tR+3Um38g`l=KuStwa@GKKj-Y%*?Vp3`~7^L=N_)>
zy07~c1BNsaPiZju2^(qRndiZp7zR@qLo&$fs`;k_t!jKMqbKwSjX!<jilF98BAiPj
z1W!eaBiefq*|Yi@AR$Hgr}EM?s(sV%*;SZP4`oB;5pHXn+v}ANY{Rr#>4@h~SN|Nn
zb3wpcKs5TA&Cfs}wH&4v=QF0Y;O%cm4gIk`eLn6*BqJ&p<Q&6%7YhHIB}<nMvj|AO
z5TNJ(!Eg=&F)cr1|0ya%FG#LxF~lL_Uh8CA)oOnO2WY=nn#~h13vayPi2nu`(R82|
zjUU_sB&K_U;)NTdW1PJ6`$~3#peN8@zjdoK#M$JF-q{Hr%59%^_quNt6+Wl*TZZ_1
z;%l(U$_j_m#c*L5zqWeS%n3HaX-LaunOo|?+d+E<oz!{Lc`SGu(z+{-KXnzB>7|=)
zyvR!+V87Y&W#0r2_I33F3kpDDGleM-4maic3=eb<OfylXk@sO^u&yx*OfXkt1X_p=
zR*i)+L|n}&MAgU$3|$yT8z7>DLU)Z=iPkad5l>nmj_JOkB!tVZo<CA8LCFppRMFhY
zEBEi#01feEuypB*dB|*PQzbsm9KHA7tnGc*S#I4b06pjzhR%cvoAQX}jmb3hJyZVm
zKq~p>oc@hBSKn-Yq%;!WA?h-%sAzO28h)=fPdctsDgII`DXhC~Tj1uwq2?~5Q;Vj!
z2mM@6QwdZ%JJ^VlgO5ZTMaIOXmahwX2%=Y(1wZ4Spyhj-3gu3~6~&9G2)t39z*OPo
zgD|DBxuQjb7T@$#Iz7SUi`t<d2+%wXsx#6ocOCTE(0qu^B;3aMzgh=rnWPto^!%S}
z)HL>2EdrovMTchC_CP?9UefTeT=Uy*6R$YFBM!V3U)JUBq{gBOKp;fCC3&rHX>JmT
zhNu=_N+N5ekgPgLL9BJ-5BU{U1oNm`H{Sd=`p-!hvKs>Mf(6|{M6V$uM?J$m5OZa1
z1Jwf78kjUX^(A)S1S3Jvlzj$F<@QiWQAuzxU`+H~>fg?+itj^=LRL+^Oeig|i4;x*
zLNb6y8Iw|gV}}adGUmtdA93`;wpFpd2Je@Q{Cp?`VP1_UysN`v7`|=WFq3ejPv^yS
zow04wz(}2j)0R3(ga4-m7`91NEc6ag!U%6suM%a%$UF)pngR6Z!orla-v&RHbQn3G
z@;bTr=Um?<{zicezz75rMv6Pj!~!Z+v+)2q2U0EO2E6@PX^J=mVU`g0GA8)%BWyUy
zg_QVtGA2f0-Zb;V>{w||0t!3SN0SDg+^kwr+W;I;m@bKm8hnPlN)<$J3hV>RA@S?i
zFS`GEa4+lcuN^PPKjMm!-NZO9bI{kbBWX7aHUJ6(VsLJ*U#mySg@q*dfinkQ{P^9U
zytU&Y-DxjxtQwmV|72cAQ9MuPuOriibm0S1CX2x^p|5T8wI{Do#3Gxb90Gvc{h~wj
zK5iUCBZ@cw+(Q#XO`(`mV*$Kn+WgLPa{kW<>^sg)bU@@$Sy_25E-Fvoq?=~GWi${3
zUqT4E4I%>hE_Nw<>{=(|@_yPSUkE&yQY<rZllIX;0|#2aKlh?Q`rzoj4^Arz;)fH6
z6&~S&&w!@qPeWXb!}EfBiArwUq^jTo%=Q-dg$8ci<`#})Jbq?0lUla|i^{LHD$xbb
zJ9Y4>H4QRKp1Hl+`ZHphnlJ9y{v2BLDZ=QHa*?oK=m1hB{)S@_q~}Aaox{V8lBRm+
zuI8k|%~BUb_4F()l}WlhOGp$h!r^m|I48oVngfo%MG}a=kh|Pj2C+n7YBDKUCUZAr
zO{iC{x>t`4$BL{KDxg{?8#r$LXgx*5V&?e(o52}oY4~AtVPNi~a?XW9cS`rxH)OD|
zXGnVU1FCT>*YP#2@=bR<EHGJ*SIq6H$&T`DJgkT$AbSL)9=0I={PWMEiQ1f4feYeH
zO>`yvD(Lb9WtT6%un|0Y&YiQXSFMVN9z^(Cds;~*sl##7xfZZUxs1)V`TVSlGtw+W
z+`Z>3ohkKfeGhFc2*aJ`*4E|DQu7o&XFhGM<aJSbKpah<{v^R3E0g&lZS}d=twNMm
zmXjUgjtujhFTb`m9GizvJR9V~PpvrOIA^|6#B2t-M|@eJbY{(w|NH%I*=SM`Y*fbU
zHHx0m<1$Xn;S(V?02>9<hf^aF<X0%@DxK*f+xm=P`4yr{`LMNfTi=UvOX=-pcN=EP
z&~IE-%n}R})H^_|5OU5My5s--Og9-`I;kTdAb_G;hpD2)&}nTkX!17iK}B6ryF)yp
z6KxewvVGCMAg%vVhpdJ;!}FP+*T1b7^{T@B1CX9yEYT*^;12R)PU`H6JHpfX??Gq*
z!82zMLV<10|DNVVNxB{WIG7;)Xm~aQ@v(vfRgzN9(wgjdWcR=@<I~#~o;lLVTXNFC
z9n+t!mB`Ln&Wl*Px!rvKwd>loZ>Q{2QGHtJjMPz`4m!hr{XUS>b6=Bs&Yo8H3WRza
z58u~Pj2xb&RkNlAbKE{t_voc{R+5s+{Ql6m4C|&!&E_tX{{DFOBZIPZAHqEaC~WPH
z9hFzgR`81)SM|w0*>gwarwv0~@p;#f(p9Y6A6?b?(zFi8;?+++RX(Lpr9>qE7~Z6(
zbmoZ1Hj>-HOi8nGj?LAzd*{m}by1QzFnYz+C65ClJL;XZL<Z)Up8tP;IMB#-v7MDu
z%D3orzPH9ui;0^bX31PFuX=Jj=q$%($e}f3o*JoSy?e|LKi052UFDd5So_5sk|Am-
zx~O7qZs!Zu4HXA71S7%YzTZ>9Q`$O6of}p19{kyv3pZEPN^o{glD<#^ts1*w(!lL2
z?J`S$b6>0O=sQV<W;yujjN)x|7RNRVwJ=ciC)51;exSUh$S~wz7n)uE3PICjIr;6I
zHwTPHxAf;tMd)ZKD0!&ry`R!*k)XNb3>CF-N8rMWo*Xbx?ytXu1dAgK0E<5XRgCXy
z)wUCKW*!*A96(m4rBwTA?x<LyZSHgK9JH-izJW+YY?BbqcLFqGM(pxpTKa$T=gyeN
zdE23&ZS*q{<;UK-VxMVPzHsa=rq&#A_Gulcnd3Flw+F4BAZ7%AA&PY2)sMWj62Dt7
z4}zXu^>|MDTuyq@FrnUJtPI$cl7U<@<f|Pm7u^^r2`+~nLWa*!CvA&dczK2$Oim&s
zn!n*UYx#rRjzpryUUQO~=)*2t5GId^Njo%+mG^L0y9|gzhXM~E#v)*efe#Zc!YfR_
z5Gs_0@->dO6;ECfZ)RO3tS6cC7Rz!Y&thiu69JbnHENHcE(Lt&(}!ibvQCkKil(i;
zX_SrpY}zM+s*nSkm=p>ah>At7$Ki|3&Om__Qy@wpD{9Y*6h2Xm0C@o%bm^6@v6;q`
z8LmHZD6mCwk@F+AKt6bx3Xt41aRMt+R_}2{#~=nX#NcA9ph}F(Bf-P+!20%t9&U5c
z5FOX-;yRnO%Gb)daBQX?*P3>R=3mN9zZ`>vHmWbL;#%%xlzNm5PoGK<*!UoLg8gv}
z|NJ)COnNv%s`8%;85Bdhmq6%)paUhP7!t0;@Huqry{%Ks)ex#9bA?R??IA(aIKji9
z2xWel;S`GpddGCGEty3<%k~es9-O#!c~{a)02sL$d@_1JbVZ<7Xhe(xBMvn}BS307
zYK)s6Or1uFvZEb_d_38L&V)C<6O<q1;E1!|Zk13Y9-Xl5p~-!#;%Z?3YfGg47zcn&
zq!WPH<6Tg%1G%z-NbL*l&i$3SVXKR0@@v5@q`TnWNW4p9a-kPx8&fNObSV<|$N6`p
zHKW9!ghp3|r0so3s|!?be$+>6BqiYeh!v&0w_v>EkZ)-Y0MGC^R_p;~Vu4BCk*MaP
zl#*&#Ii8}heg?(S4mSGydmoo>{ox&`m76IhgiM`Ty}CcIG{?$+N67{fwA9pe0kS%(
z?WYeP-p9d!&IN1)02PtEFtND2*gZWbCx`VfAg5J$n{YyT`rHKxrrNb7z~eyy`AKv#
z+|wJu!6!NL04u2PuCJ>FUgXF9H_k)>!Hee-<li&ue^Lj$le!dnEy*1U=-38<QNw)$
zH3GtFhouQKZ}<d&YD}efV0Fqrj_5jz$$cA}Gh9zVTrdkUmrloztB2tzid+gc$Ve)3
zRJ978^U=vXwy#nI0;U25_(AQ&r=iwM*kgjdi?<#!BKSuB8Bn*jYQMRGnT9+Q;1|e2
z3{IeJq05Ebh{826Fe)eFgZc|_%YXiPTG3oy!LcS6cexZbHVhsNC8WhtG#L=pAPN*q
z9MTCBRr<N}JxMb0WvYZ3WNetwJc9!bjjdM^dwD>EHgH#&bj`@jOaS1+(FT+p7aAsx
z3$Tl}Si2VMQe8+&s>AiG(2Ddovp<l|svPm$25cNEy%qtku%)JZ6Fx_4TI#dJ)EM3_
z^cXvNbOH+@u*1V3O}+?_MF^v6X=<q5?purw(+fpz)j>hSVY5_+f6p`j1%k=hfRil^
z0HpOP)Og26UXh-djA<9<wYcW@u0$Ba9i<Dr1|Nh<UCe6iN>`tU^pZ|R=)(nZ4~)gT
zM;$_cLri@MCk>XvRTf4$yyZVHG#lp%_aP0xlFEV?ga)w!1Nnkq{l5WBNYV+0VeEz^
zjwf@A#t0QHPzy1Jy9K~rS0LpwAFfzmqfUtvVb@?AHB$L6d*TDNsaKujN*YR91MuTM
zca_e}JH*@4+iVn?MKA`&;@%G&IPlRScj{uX<_G~Q)%$&mK%+pRAm@v<QBCvVKzL0Y
zJX97UCwb0C<sjVPkoXZDc_yrp!S+nGpIAC0?4!oZAql`c#+N9LaO_YbNUcIL)z*%w
zFxQ<!GWGkpYvb`D?Zw@MjT1lhY!W~#%{hO6dvD{7BXWR5p-j22=oIJ&&iCFIW5!8_
zgCIhR76$bdG(4~#-IQ&VQ%e2SGxG(K#-ylR=$WRw=I?-XN!c{3=#tt5=U^s6wU}+m
z(1KvO;edEQhIf>{&q7rL9RzmC5&gD%AYTZU1584K_kwH>kdc4HuR?LVcEbi&Ao6)S
z=HC6EGM{>EeB%)|kzIeYnQJJTY@Y3?2Qo>+o~rjTh7bT#WYnR}2KA9+C|wD+5_7mA
z4ewuZGx^h;lX<5Giv=wlNCByVhj0P09Y6rYQ(3=gBJ51-P6n>ISeZckN;%7*x|k9!
zm@=qqN2*_dz6nCaObqWjijm^`r|=gLLF{u?B_>U~unr~^M!c`->#i*<NiCO7lLBuQ
z+O7dxp?q~00Ry7qz7OOD<G_$pA$TUGonHVJE$C0^dwF=KjW(MsEJ#tf-W>m($utOq
zH1Zx@u=r!hpU#$@S;G5=lY^iS5|@^}i<CTsH7JhoszX`ucyhSmJ7*;2Byw&R$Y`tY
zI9><1*|f(N<fC=}tS~OEFsOPtX!{brQfF7Y<}Xk5N!7eJ&4%oBavdHXQZbACZ%r9^
zQq09CFWh&msCU5?^Bc-KKlIj<jG_x>M6Oz_l%c%sCRiCvO~U%wB+AUKxRoj1Noply
z^mx^f^J0fcZtiP`ikKs8wSr%L{Alc@By$PDB$fU~QX_~=d~9D?PVSH;zniIbKI@zy
zgAjn^o5RUZyyYLMUVm=@rQjz*aREicpS_PjE{P8gnrF%!)8}84Sw%CpYW47JrXm5w
zv=!g|E_t|21y?39GR62l$TiuWP>KOTKM53QX#r>CmSaD}DX?0hyV&s1vH?D4y80_k
z$Jz+^3AMDaD!@cjbdVSVk9ld1r`b=RH=Cms3`*CrT!?JJd`%&ElyHQN9hMV=N>41Z
zQI>gUUfu3kQ9((F;2e4nh)jObVDZpR&t8>h$^wP^P-wlwmM7bJ1(~(NO$5R5)29P{
zU*j{ww;nvHI7`Ad>My@^yfjD39P4_Gsd7L)1x5yzD=k6>d%VTy<+Z`?YF9X%Jdm%y
zt{)9SYVvKjb+=NLJ>JQYOCI^7p(SUAhE~7Djx6BHK4A&Uht7Vu%}34@h=2hf#caLa
zalk{&%y4a~HK?R<QLM6mR5ov#MsZ^VHu#L+5SsygNC9GSoIKCb#6WkvT+zcUvl|>_
zA=HYEJw;iv&b&Bbu5O5-+Q}(16h<{T$R&GdC?}(N(9iGY<uLc~QP?f_D3vfy4u>0O
zOJ<o+$)prN`R1y7|6VwOWYMB-2ZTg#<1n%<BrpIh3#kA|e*O%TUhHr22BUi0DDB`|
zc)&o0!omV85ovH8;D{Gkc7nSH9XW=NQ%{gwjnT4_h3P~Wp<2PPr`0|Y+;aQ*g!Vvo
z#D7pp3aNzk*Epc=33HIGpmY*$TfCC#msxd0Sv&4gNtHcoz;58eiH_>j!<d-WUV3hG
z6kr3+j~RVSTF?Bc<z$!$2Ia(vlTD<UjmPj6RUuAin>Tlb>E~VID9UI7+@@zc;N%f!
zxjACOX!B-ie<Ok~UCNl>Hvpt4GlPsuFFy&E?<(sVvs8K9h~xX|`scaw?6}|%%;Xvr
z(EKi@NvJQU^wI*+dWVRWi;YGH6cr!~X$!zTx>QQ{=lYKr>;tayT<PES9$z;$R{rs$
zNAKUgdns((oEtw60ZavNrm~`$&{AG{<IVU<lki+Ggxf*1CyJq0pJ)3UzF`>x=X%|0
zzx0tZ{=%N)(}mk|CtnVF&S8iVMc+UF?AN)$wuEjhTEHiV8Ed59)W7U25&9PLBEV-m
zbh+`?5xb}>dmFC!+B%mBe~p6vg>{6x)f67%j;UJqd5r!uFf-yTftn<ZLjID5(?Ik^
zWNK9QK!_7&&O~lrLQw+jFG4N+Eu+}*P1%;zJp18cDzSt=Ldqow@OKCu$HxD9`gFg2
z_P&1~pPdMj^K<ic3ijpAB`t?e_T0RAe@jzb#n)b774rvv7_1ZRJMDnX2iAE&MO8^J
z4a}sRuZmO)H+-~4#XG(S^OxJZE!y5ITcz}Q@`>5TB_C(*TJroNXlB`p38qWpaTM&<
zdwI<bb6=JG7~iCX-><^<eq59t0F?KBvY!vyTU6caaxTt&ll&g9jefnCymRr6TY75V
zw0ynwXKgf?!x{hOv9n7HyD7D%4(|8+KBc)o2GPQZgtJiP^w4C?oSNji*c*+0Egf2Z
zj;qX0f6jWw2M?|4>@my{KEHyC=Sc{S^E}&&dj4YTqFaBnPxvhfnd6^-a#R`qr^s-r
z^KmH<OEMw0Y!(?Q?(O)vbX(ZPgx%p&KlaexKe_woRE_)-g=x&GN{6_>v))~^%{8Fx
zv&Fb}QyjjID%?5IC!n_B$M09yyOuVb{MM9~k{V_ZDmBB*rQFLY?|a0QU0X4HWz)`i
z=m9lf7zZ{}?0@z7Sw(GrWya6()6|`ocvafz>!&aB=?vSgRq)0EjtFMv0$aaMU?@jb
z47f#Xz@aTM!}(tXvrx8BlS4+09DPj7ri5NPdorUyG^Y704~SWh%Zo9|2U-(|(hm8{
zh1$o8<gW#-7_9?Cu4Oa&k@{I)lH%+yM%xbAwI4pr$as+BKT90XwJX^D>*}?m2Qp&5
znt30lH7CZ=#2vnQXWjvTRu%8{jNsBVclj_@jfFJ9Mzn~W4aC!5f8AW=C&d6TQ!IG*
zBL<0hJ$lKRYOnZsnm!!OKv8Iazhwm}b%fy>V-$EsitLKrAF$K*?45c)3$klIK8cOR
z{Ht#-Jv*ox2DzVXiA?{U+daI)aQBtj5Mg45Ha52T>A9UGaai9fdq?-)2_NOR<2WlT
z`El)-ZgI(Z&gWr2uJ24JEG$Ii-%~kjIwZz1Ei66|z0$d&MO!;wxnud_vQ5k=&sVZ}
zTiP>jt1d%o@!M%jsoAc_I#jD)iyo{Jw+JJ`^z;^;TJKn~t$@UVwC??Fz4Bf;{jvqQ
z@`b$uIG7e$pP1LW5>ptVvx(+=ma`pIFF!m>K96uqZv#n6>wvJCVn_5a{Ofy%8MKn7
zpTYUWl2S&Jn5Pqw)XM5dh~y6eJWDxOc0gRBtu^P{j~R?eUFbhENO|G}?P&Q)R9NKg
z#^N>2!(HkFT$247ll)rOCeo0KP5||80wdK7{}0)!dECC4cA*1(ZvB{0NRMI$B^_&{
z@*xg|kuN(W>(cCE=W^RNI`8<=X@sn#$OpX6vq=K97HeZMr?pw2;A825Iu|^ATwJ4?
z@VG+NaI<dK&i9PzV_{W!Z~1rif)B4JQ>-lxz?J<4iE8{$Bm&63>?Oeg_}H{!xGW$m
zBJh1Ff_XYL;Nr!L+H%7#rds=Y15K|BqKy+<mhfBnZ+jrO)!tpIWBcdI`2{<=c7F-p
z%!hq+9Ne9nm#hh0Le%}VqJ0C)OlZmAwKjmGWi7s9w15#bn448&?OZqQq-|unnnOv6
zMOBVwloo^mm&2W>q@<0JmArl+M&^6ZBQF$H10MWZI(-1OE)EDB=;x<dI)^w|`9l$b
z<pdxRj=AX?4XW}Un--i`rssEl!Ve_TTUiBHjxm~fwa+nh*QV#4loxfN#e|kI56>R+
z@b&ShSMaMKcOkc%>iB0om|>v_m#whs@s66Gt)oWdc>JKI8aF+W336~VeDeFM+gPmA
zp$Vh0O6B&WLuc&`^qf_<5)@ICEGX>Jow|?clB|~a>(_(vCI&LOUX_LPgEVnbAIA<(
zKz2xwKqTL~z^7ZfrT?)xt)ANFI5F!k;k{2aa<cNZJP0JB1W^q#y1`ma#uq8og^ywD
z<Wxp>cI5EgL6f=@h#)n{$cIwN;OswcTfj&8&giKak>Gh{WZ1ko<CS5_3+Ts1z*hn;
zA0~=nz_UqR*X+c`II9#qM(mY<!1`fJdujbx)62LXWh)3Jt2r5HmVlzb5eNa7bXRu5
z!2Vv3AB$7P{rk^|jx8QBQ+isL>Qz?{35xF}BhhZhnx~g#9=<s@-1y8!(~obh9QNtH
z(oJ8OzVKmS;2B;2t%lyOkJL@ly=%C%?)+UPZz<!g`}Td%9r42~`jm;aX_)G^Ysxz(
z)c)0RwnWESmhq=rx-_M4S#qxU+!#|YCqET$t#;A1g@sqD`QO?`XExC}+pX`0QW;}f
z|95*QUrhL1mAE@9@yW7)8Zs5_gN0<YS%r_`)GzC7(uZQuEp!T)z~bXWt~cLLRd2a{
z`$Tp1)S8+{J%sHfz#aEwi1QzXws~7H9GEz&TgKn9YWH4qH|NI}dMi%NDBE#|DzuMp
zBiztVBLmvDO|0qUZ&0<s&<S%eb2Y)Pg@@0@ZVL_Mj~`a_e+VYgw6DK^eql938Kjeq
zu9tj$J@pJ2$C}*8*a?@G{#nS(sM)q}AL*Cg=a`n5lxDpfF5gs+;1QPA)_QT-goL!T
zUNjtn<kHj}x3r-3j?bcVL&mFi6etHzNVG;&H5@~c&++1d5vF#bO3LU?1*1D;g+i3_
zKzmp&2ZxJPFG3G+XBo6sxuJ#3#G^F(bFQ5Z8Y(|{@J;4;ncKMI^)ND$A`Smy6x!^r
zL6orQNw-ez+u20shWuWs(4-t2NXvj&QV26KjE#vI(`5%pz;{i=F<Wf%-@kvn>0p_e
zu)aro4mHRAx9A7^WVhkO!;Z_RU%sH==}gI<ZTW=;f>Zt|B0`uC6GA}j?mV&x&lXV2
zxN+fVsexLM%)=JXKj6iTL8~t66!Os3FJ<=+UWnV{y(dppChE_LXIV%%yZ>NOk#Bxx
z@PSHlb=q#A{P*wQ&q8yYUIL;{_XjkI+Kji1o*w@LdTRji_qn;|yLK(D`J0f(Lt*Xj
zgOC5R{4rzsX+3|sTrw6yjH0J8-~lk8fLOqapakIT2nvPG_``?8{h4+eL(}E@Orp_t
zyvnK3^&+Ig)|22YI)J;~)Gk4L3tob3Z2XidBdtcjN20}HcpjHvv_cdaM64b!K_|g+
zw{*C`{)KEyEa9lt&4)}<S6_sWCtw8)7yl$S@m0-&RCQNNoaE`FHtgGHk~}yhC`i=Y
zdj9Ll#KOLxCYaI|yiVv7DC#)^0GSvtBQ##ffg^)noU+}f`pY6De~g&%vl&E)7h9ux
zqVwmt(M17;a>n>rz%|WCC0I7D4HlFYx@IIR+Ox8bq!cU4N+xw4-DnsP5Fq>s!Cy&8
z=(9PLCok#W(Epzn;ABss?`G|!e;L6V2i_BwlSj`(4bo&|!L}v_&PgUcz4a29v!`FT
zw6aRN3T`c&)tGZ}`KjOBjW;a(3bDgLG{ejfy}6iW7bp#5yAUoEb|AmPRU|gnENvjK
zoEt$r*oB)s-;&b2#ZIh`tor;4wOk|n5DO`8|9$sPZQ{ha1lfw(1#?}IHuBSuo{5==
z9aB}8S_ALUE+xM7f}DcmAXxA`LCY90=3oJ1MS}1Saja}dxIue@AYS}2vBr?nfI|ZG
z#c2UV#5~`wuc^1*aDGAS;QEWyi&KQO0EKxm3Pa9^*jhW{EZ2~kSq5U_D{8A#)-<0H
zDUQFq_m{@P@>MtTM+3!02JK{5CVojF#wG|&X~P%zj7`d3iB2yj<}Zu`5y%QrK7gcn
zm?z@#z~OO3|9)o*kj5=QDS%RHOZeB?1{TdbzknBE1<(~J8fvG<wm$|U?NU4I&6hSa
zV{vj)k0nYn!l@qB&0l{ZB4T`wa7bKC-mi{Nmz2w&xfBm1Ru~)Ie)_8)?>ImifyIRQ
zcC2Z?ii`|NwipUxyIXe-7TzYHhHAcEch?@AucX*8;QkOt9F#R1!ZkPW|AohQaPXL3
zgQw1F6=YN<j}E0l<}9Lq<gbgK5%-V?KVR;y(D2h!t4_awFOEJ9PvqX}5kjgD!ue?3
zjW>y0L7_X@y?a^B7RG?UAt+nWh-8>HFj+-Hm`HU-96=~h`10f+%;rePkN1@JLsQSH
z0l<FnSza#?B(e-<jqiaV#5S?hvbRU+ih~|K!&t{cJ`l&;F1GqFmILGCaB*-!eUq~o
z0KK*Z;~Q<;Cq(Q7JjvcxfPL@6DWAA4_HrY35qbzJUcG*E8CL-^&Zm$RL*8HzYWJ8s
zMuG?_02(g#g6;VHvZnxFiL@<0*EBB>ra{CU5A_;3a*0sJQjoSv@@UJezXyh568TCj
zaKo33TmUIrUBQL$F-hWhlNrP|GqlM5r{ieAA3Zu(;anRfJTbDfld97-^;`D@i*MYz
zs*MUYWKCQewJX(x*sF=W5=a=VN6`K>S|A5xleTdx7K_C`6N`(Gi;CF{uG~|r2`$`S
zu{4$!%1*>}q*_P;?mqoD$(Q(#B`5>8APc~oLi<m&626p3M=vjC<)g3}zj^<;X7j5S
zdmlY-3`0Qf;bMr$+AuWay+Ko~6CJ+%-Y2SGEf)8paAjuHS1dLzNpERPhcXrGSO`0d
z(iT!Gk2rfwOu_-_lkw}$YS#4u8NcKt;wQkt1*%l*yy&FJT_s#*NI#+r)0BTgPBpAk
zRLKiGIj}~u&QTr;=JJK|g)0~(<qZmZ60zG2ra)AijBxPiL4!6xAThETd1)sY#sEv^
zSX;gLzCBlxJZt9kdpVFa<#5p8Ki%R7vgG?Is4?ttVium(qu-vTkb&e*DZUlgm=cGm
zLNG^2ls%fidhiB#70n;x8tkBySaZ7<YbIuQ+YEUktUs<NZZbI!*4%U$kb?mX!L14<
zIm25RLtu9fy~G(Y-})#xxF>+8Q(y@WVFLzuPSnAHg_)6fY@5l{xI+r-*vMZZ|6(+A
zfQopwEj5t<&RtrZL};cY8r;!^=E!^EC-H0ngM^6}j$B|`CEPNqndXGJKmB3)f6{D-
zg&?q6&8LVH^X*jEW~q_+a0o`y`=?s7Wml`@87%>IEUYQfg;5Maz9fn`iWUeWsGzRI
zFaKfDjmmFz?}wTO_bJ;wUEuDhj|_q~Pa>6p#PDYRv-c)rfG#1p6LTxHmUM53u*e9I
zaHE}c+(fI<wzIrA(e$+p<Y;3I)ykHjE2$R#??O5KA=B#|%|hb%sk}5qyvX5jZ=sjM
zm*HCv1PjmLqh2A~zN9X%zHeD)6T<&$=R>~HD@S6zO#cBCF?bIHWp}!$X6SI}`Q_w^
z;;xw%;q0m}J`wrECWEO|s<O<j!{vG;XFsIe?EDqVRLy_)=a(l}Yus0S`fPial-r@}
z6gFGb4k(|)DGxzzV!En@WoOsf&S|U0j?Bsflim3A4(<_#cPRWJ9fyq4>Z5iN(2#sU
z=v+0oU$|o1_#KrJ4UA`c$wrlm>RdHjP4XORZ7P%=?7mckjjclL#QTeDcN*TL@M+c0
zoZFJYMBlX~r>(-l2hp=K)4{CHV|6(Q6Sb$3i>&Wkj63Br?%0z1heuzz|Gl)2X$Rzr
zBhKnh*XUNU0l-z=Jz?NZa8p=}ief|<<Xm!%#Ld~=a?NUG)4{jB_Q;a7q7E*F&)^*M
zsL|Dy`pl8~XdUskbt|do0{!dG&$m9zc>C5h=f}A{-6d%L%Fn?Dk+LaX0k&xf>U;_1
z&?kIva6PmZ^suB*GG$mg&7VR)_oPoM<$E9Y-M~KuFe0EqML<VW)y%$CpslHNt|x;#
zVCxQJ=T<9MA9K@J`~;c)%~xf*eyfqz>3&<qs5O$>jNpx2GR!k59)W95-}(eww{XNT
zx8Lms+$?|RX%w1$bhl!z^}RWjvFI;Sif{hWY<y%tJLucdTK6NyjjPtI8TVEd3JS7~
z&VueaN`94rgwml#w@!XvWzjH9nj?K<R_~(KLVh^cBz5_=&ZWDbcyzqUIb{xt<RPXN
zA|u6$<)RboVa#w023Qg*a>0*I-#!19Z}}JLVa;(%loJhNzkY(#LDxV66uY78nvOS&
zoj&}2=aJ1_UDnX!kM%k0w$N^Y|MBYn?%FtUmA!Ub7n3*;cL4mW(9gihh<EX3bMC|&
zTkpTKt^71QGVjp}>C2%j^LHZzxjcIMDuwQ&+ME5}1ZHgWkLs!7>N@i5In@una}L~H
zH003mo9Cx}`(3~KRj{*sMX{Mu>;{8ZL)#zi8e8Za^e(4g`mNg&AoVGajg>}4U)J`I
zQf}-$`}OB46tgJqB3GUJW(CwfvHf+O8}+_@n{I3_<r4I|g^U0+`{#7GmN2=XK|MNS
zMc>1^aN_X;k#eVv(w8K>Q>}8zblv!79%hBvagxJMuT*`Be#AUghog+E`eOO`p^at(
zzf1a^BH3TB@=n>vpdB<n1Pe%B(frMTBn*jgQNW}(I5-S~r-T=g>tO={P922g8l8_Y
zo`s=B6is_Wn^9z`zbvzxmMdc=LW7U|1j93qxkwo3KoFmTT-$_RVK9Qwh6(~1@gLBH
zgekFAJ&jLS=I%;Q8ahnpi{hAAdU(NRCyaBR&7Qi7+LXKV-uNE<JA3W;u0ub%NPJs4
zOy^Re26vgs7JU`(Gbcy;rKhYN6LRgts=u7KNiH!pO*uJe3bs*=U*~BSLZAy&7gpVD
z-?!l~nG5^0JOdl%Y;d9wfEG{CcJsfjw94360SDtM`yxv-*`sJ&AtOX@EANrg4pT+1
z4vJM3T(Dic!gDVOsuv+Rd?s?Wa+9-tzx23Xxshf7f;!n@M2Nv_3#-YkZrwDyjnyvA
z=|f(>ZQd{4Auwj8+c(=N|2>5+O`$E`3{YU1Oos+5u)t&E&Nyvv2M`tO2q7rJo+&cY
zI8E*EfjwCw1No27_e+7_jX28_{#0d;nuVeWBD$_F-3492dc25f2;0T2j_a4*_l;5c
zm!#1ag`5|HAkNBUgs^=^M+1*$2d*??@=qLfOy&R&TvzYB0tk=e6Aj0^)6_dq!$l`T
zKlC0gb4-W}L{Utk05I2i?1cHUuKRl5Cen@dS&$}E@jA9^-~xlxF=5lz+m8O={pV8Q
zOz<T{$@uhouP`fMDq<5@8x?Tt5@yO~dT2)CbD!*S2T=k<8WAz;*lZUKKcDPw_eWe#
zDK^(s>YP}($*qg)m(b?#q0Psq<n3SBImn1z(+BcHW*qB0kiB!+*`BdCc)DEtqx7`E
z7vQvN(mp90iBNUFLtVJxf}0bMxVo;WtHai<k}OP)I7qIh#-r(Z`r|oTh67B#wwnB>
zgI5qkxh;$rLB)Dod?i#<A`-5OYx;UN3x5(6wSp8rZ2i!LK}D2I0&qfyA=Lden!qgI
z+*K^zP=nzn4w~(|kYCPp60I><e9?<7YQC(}iBlcOePGV^5`{LHA<2k_nLz{yRa`_!
z7koT=f~4TN?RyWV%VsP2iA$bBY)G9xh^R2{JscfplrcQIOc0s;<}-f}l*gx=^o`mq
z4{^bW4uaHMrjlgna{nBER~xN2P9pLvCh5Q?GTKtKxuO1dsm=a3Z{NP4t+2hL;k$5z
zubL?W7Yx*Fx*wYF)O`?MhJXd0>1nG|yM&mz4VrQ_qJOU;hi4o#n<?+(I_Lh$(%C2v
z(G9^Ewp%;-qGt7klwvi|+uX-HUEybHLQ3z%b%*anHsYSg92H#$V-&O%%A1@($}D<l
zO%?{}G(>mqc>eBGutN@SR%#Du$&)%Su!d*7jOUg&B(GSf1|bWCO=H4*q6}ZNb0)(^
zd=vBJcLh5z-+nY&x|{og`@>UNZu!uJ%9yD`Y4W<BKM`vOA)KL8blk#51E&o}ov7}q
z+1e*o15+iAVb}fQ&To(bM*gL%9C559({l1IkOg=Jz#m43#3WtB@Z*=+%O|Wqk%KUM
zA>fk-50nB=Y5%}_@^o!8ArUo5%9uT*O$Y`uEWgq_HitG*=vQo`=#ltKqFE;|qi!fc
z=3;YkHNYRnw2a~tr|AhPpu&KVSmg8Xou&L7<8UEBqP9g+LDS)T4Q0N-v%@Nu{;_l{
zTWHiVo8$MX=AA@%_Ulidu9iKZBvVxgmG9Pl=}(N4pvUQcRSKBKr8l6&0xF?Hppq))
zZHE;N!B?-OrqkAkRNTo{vnb(^(SZtVRMD|?B0ZpUG(L@>9(^5$3A=gXIVl6aF2pMw
zw<~DM@p2@zj1#MO+wi_IGUOsbQP7=pD47uXsqla*U;U=xoua%MIM39k?wu*mXF;TB
z<1RT1KGR#TIK(>~gF~8Qo;o)QVGCLo{xX#*Ei2z$__qV{;XGwI8JB#2->9y;IY-tz
zw^~_whp&A6mol@9MJ5qnXOh8C!_fUDX2)@rjXUyenWbH|LB`Ku_t--D<GVj_q}WVn
z)4<;Pi>m$Z)O>{n1CiW&B?d1GA(tzCH-@(!H+uM=dr;d{Uo`Au&omb)?O&~!xxe#_
zIM}YJOQ_A&X3kX2D%RGHuxGU$L+ssAn^EIig!>BOjygZGB!;aYStd7e<@#JT9^Mv)
z^}s6gj(2;Tu16duwwYhM)(+G|EV2A(?c*xUR8pMs0QMNiO-WaIlzQ~Q*r7ho6nu2}
zcx!~m#GEt<zIE-|x~y5?yWlO;>?^Nc8pE_z<S!~1MW2Xx6DyPkz#xz(t6h(Ne?Iko
z8lzUlmT#zW+Nf$0&ATl)n$g80tN~5ciJkY_77q%u&=nznM?842gT6X)p7Ae(D*IKP
z^(V+JR+2#+gi?f)`cs~TAk&T-wJ&r1ylaY8OAsMepjkrSWo1=d>s(PQUo(7^V;TXg
zImM-J97jn^dm?@*Z`Mh8uzGgE6*1x}R+6TsE{d%>x&7X~d$SZhX9XKo`#{G^HT;Z~
zDN`?QngL*p1q2*!Y>CArNk1u&TkBUcdRh+Mpb|`iV>k5;KKR`16QUF`2LvLF?umMs
z0QvUg$EJJZevE!`MJh~DokavSHwSq<cSR+{UQeZn`J<GT9j7z4!Jp=M|FBteH*Z*I
zWnEawjdSmp-mT1>-6N<*&0%?!?(Ay=4TfAZZ#P8VVZp~$vkQ99DyxPW_lUOgJ9zMU
zNy-(!Bxm`fG1hN3?_QBm_{soK5QU`gLOp+<E>7y)2Rd8hx;pKsC?LHB2M&z0Y1z~^
z5uvGxdKeo9BWwTnfn5{)a4#4&=X;AL>bna&0TC)}KG#P}OD-?A*_%G!T17cG=}NaS
z=t9sO!U9O_pH+J%y7m7mXhMb+g(F&n#zO1ut0mp$h%Gd9&xC|!88p&Smu6^;q4(qo
zQT+Lrm-Y`<`h}}L7#~%|kTt0d(}1Rv5mBOj6cd^r@frKycLwP3T%D5^dzW}5Pz0vD
zc<zM49-Uv5$eXjkijTwhyW(8`E&az#{sZ%)yaLW%ZBQTS?4AmR*REFj1}vBpTw-mJ
zJVzJ4N>_cMr$wN=+w&i5ztlD`Y3eO?_s=k|<r=*d(v=^asL%%f-?WK^FTymNX|E_R
zpS#}YKRqh=#is*H9VRa(TSQR`gzL0-PVaA@|22#+2{qb%FkdpD#76ka16FyT+n!l*
z$LMwMi}ju6v<omPF^)ECiYja@Z0_1ktIB~X1ca3H*X>b|a4B)>m%PeOujp9W(~r*j
z(fW=hh4t{>%nc&Yg%)_SVEf*2!yX_ei}JTmUV*XkYXG+?+w+k5rj*Q`8J?LQ|M7#|
zy#)h*n;oB<sj{53z=I~;6qjbI=wzl}v)9lbV$gKySk0)Ll7S6k<D{bJ>6+cwQ;%jP
zZ0h|A3m>3CAa{+7?Z+NDZ))iGO2(;cqmh&D?VwRJpE!Q;wVXQmoMI=t^0_@awhv=C
zdpgB~zkMA>K(fwaiG8pUneJu}6S|y<#&P-MHeIw^aDxe2bjE16nS*n<<&yBiZ{Z04
zX$RH<T3x>UmuSHZ&B*;fi&JPW#dtCB)w8urzPlgqjH&3x4tEwSNOm8kAY*X(_?Uj~
z6wj>EEbd(OU1CJuu<7S0WhCzO9W!{zp~2V2dyZq?@SVY`x#Q)$)^~WWtt*!e$2=ei
z%97F`<L&a-|GHWKqC)`WGu&j-(RzY?@2w`86Ai2CkvT1^q^so^At_`nx?}ald`v(p
zJxBc`?b?0gTMb&ed#x&>0*CyDD~`9=6f|i;f0IPG01$$W(w)e(n<uFh%LFE<-tB$s
zC$XO*X7a_4e?RTt!DyYF;+2u>HVgUM_U%47p;`_9mj0%N#vH@)2%1v+nPU@19eNio
zxA3{uG{bdzp>H+|EihOD9Y^yw&87fA#}w6Us#pXrlGaDl$Fy&xcBH{3!c!%K;IF^0
z?42Vkzer=xX%Y&e$_bb((|5xN{@y1B&d6^W`pZvP1~Ufobx6}N?g+o2O?plQVtb_w
zS)A)dMG9&w974bCSMa(-Pa=lo{inOnZ;0heQ%Oy8Z>Z0T8{0IYpytFVHfh%6Y+tZ9
z5ffMyZ|pu(K2?3WxSh0pv*?o;U}n84Z3-AA4g<xrW^aBpcHFpX@mDS{q1sxiuZ~%W
zH1}3i=fKgQ9=VDcdXez}|HKzjS3k+~93inU#yLx39e`$OR;XC}2baN6JcWsHSD|bW
zCiy@F0+IurBFI3Ed`54xwoP=7Y?Ly{@XVWHn+ec^mz`r<nkpEp;es<?GT#nAjud(w
zl)PexK!)5P>p;sNm{DPSwJkK}B?v1&9I1C0TEa-{zkp;x=S4NUL;&+F>f#BDB1=te
z&eXv`UwT{OVosc{ibkVI!ED&~M<9Fi3iu0*fi6*&6_fr<Gc&oxIHWcTaWV+W71oUX
z+R@8eY^Dwtuy#huAF8{kRTr8orCN4mg&EM}KzN9;N49Ygk3gZQH@Fv(&P~%P(IGg9
z927K2-*scETjzmGsOK>MVAZfan>A6PgspDOt7wvkT4gCi(nf`Aol9yPrlA9%qoInP
zt9R)5>zD51ViN($1wR9Se0LSgRm7=a-hYz1{r5Woj9p=@S_wjq4+R3i>!?1_iH};n
z1*;HFob9x3qh^{oe&2nc5hQS?++5Y+-A9fb>A&DLiU18i{bV`GZsBmFkb*bM3OU^j
zBxKAYvv-Jy>5s`PUCgiFzhU}Bh^|?_!y)hpRSX`dpd_z8dp3I%PTgTTJF%ixl+2=+
z*|Oys;N5`hmGe@IZD1RbFhECnp48vmgK=@{D13S)4{x`!Vphcslq)p<$)4_U`NA?>
z{5hGE978&HW7}D%T7bm$ru{u(ddLV|s&F;n^HE+Cr)a~WgA6N-UZ*8A@G*;2_ks=K
zHGy&%G6`1<a3K0bidn`QD5njzR<RN`JA2edmF*v&47Vyd6uprK$5r^^A=Re7aqf~C
zPJd}Ecv62uzBC)!`HNz4ct#S!UB(NB7faMme|`)(@`25h>hFy!xyEdk0BC>MQgh8g
z7sX{j?@qG7MTT3NhtKbptLz{Jf`)yfE>59s1X*-__LSg(<s2R0s4G$trJX68+FSy+
zL}7+Z^JNqH0u!3CKK@drXokpCWZ%e5_|g*v<I&B7p@K;B$Z6^ksp32cq!*Tox8;Cn
zEF<Z)4Gp1#X*h<B>;NAv7}-IC+C2DiS#;;^y|cYO1Tfs@>W?aWdQW;e-C=vK4G7-c
zk#zHYXkb?97AiUV1TnqE*Z?^dJ|DF<_&4fEd|!k`*~1+KcgoM9)R10x1{BDl_~G*#
zN<<U*s_g%KnG!c@&s1KL`Sj&e|8(8(N6^;{WpSXc1n!?S&&<s13(_aZqvLc+dM%ke
zK|qfYF%v0QWe0}R@Gy0bC!KHxr(;B0SyomC*oY(_uIZG#dNRnj@Qh-<is%Jd{22O-
z=fhW)u>SZYfr!dsLZa~VVW`u|wo#Gcm*?K?y@lmS=>$l2h={6_QYbk)Jh9)?AI9hY
zOhbxrGJ{?gd8}fLZ5;LK5`Yt=6Wg{exG;!DeJ9&D?@Um~9w#9S-9KAA38v^!xWM8A
zE*wEVbNsPw%?8#ht<V$XAmYpy1)oaSv`iNOD|i8{rvX0{N}F~F?X^+;uJS$cPy8x-
zH>seH=6Va?bHt9c31hSJ0fo}lYX_s5MVCP=hX@AG`OE@sv<RF%npnQ?@X@u4M)cvt
z{Ap@lU2Dg_*zW^0spf1Jt?IG1fB*huR}rrGz3d|;Fauh!uFPDGl2{8C4(Ld&@`{Gj
z1rfzrOg9+i4^DxIE3la7VfnvEd-tv%*%mvMk9Wls0n{5SL!p&8V8Xaeu#ga18K>u-
zzaW-ui|uyXvO>^NzvOQ+%rDgVOcLPw`jqEIb&PkFpd6i?n#T4tcbn&~uRfC<(|8AH
zr_Cot%VzX5^A}1pxKExjfgUPqRg~>Xv2+)>o||lu@O<%NxnZWkMwb=`?B0a0@rbiY
zWhw&+V1#4m`nP_`vdbRUuK)cIPE}mc>6bI&&`5?MhvD0S0Wxjjtw*-M;#6b&e^L?M
zYdhAh8JX-=ulqkOfZ>xl(K)5R@q^<#)1NXZLu$nCr~3$S8S#3k+^uIwmqw5PI3-Ru
z*Um*fjBo+U77CQQ8NI~J!{?oj>n$#j!tD=$A0T4B=@>@c;V&`1vtG^I6UE?`^+UB@
zG3`#eu<19{B8qAOfIzP|7hjwidQHFdTF(-#Adj9sddxp^!+vI3R7ET!nP*<MpR=&Z
zJ@3h{Ez)7fpLh5bcxs8XjG6!X7{*rtA5jB_^#bHPn`*%`5W^<42}H{Gd3jii3L|)v
z;4h+|ij8$%;mzi-XRRjas$H^}#w5&Qet0pJ{d>r1%_-CQPB<rttt|qNYy7>Y<?nGZ
zzho%Qm{Z-pJ#><5e;zC|e%Lc*=o|f7gn<G0GG9SV9YLd97!E_Q<<7{h<KqX0$vGNr
zf0JSnuJ+N1{*!JK&QMsfH;R3l6eOZb(S+l~O`<xav!bMfpZ>?WLMg$zfdPXt3n@wW
z^U3oN=XmO|?7;cgthxEj@HI42GI1&rlRtm|{$xg=wDv};Jrc?0YBo+0+%ljZ5q7%U
zcYJ<e1D8olQQ@uFe3>zO?)!Cn@My<dp;Z|l1|N}@b}CxOpp&ws^W7#B?Y|58&%2e>
zE~aLr&b>Kj=^a@<Chw0~PCkWbG4yl4w>zkOLfS9t$#G-Zb(Fc+-`t*g>d&f7vul~P
z4?gralC_4$6`Z4gDAD|+4tJZ96IueILBvMD94y08Jb|g!UC!@`!EDb0Y?-JxD9X{(
zGl>%QI&z3x^7;dhH+f|I?PAt-^o*(#d3CwR4qV-_Z|jyV*AP!5pF<wQU!onSTOh)K
z^?9ZgL%v2??7-N72A_i<H*ny3#D9!h0U}t08&7xcDJ7NiRC!@)EpS+uWLQUXqMkz{
z4Zt*Mh{mu*M>m-~*i}_cUK2QA^xm^P&@IdI;oza#QQPt-5dom(17L_qL{CYk^^d-`
zIN)p(sJD*4Ax-l%j!>^7uCTD!6DnKP%gU>3ydA#^?)I+Xo1=G|hPhQmnFL!<%&pLM
zfCO0ns!*LUiW(<oFn8zDC@}IwV~f9^pEjPfbzSwck5j3&0jAv(p0iUP#*@kbod;jY
z<PV$|i%)u(JwKj8o0)7;<r`mS@H+lb(i8i*%4b$6-TJw+HJpJ>ZaE82U@p;lG^xBO
zxHr@Kx8>s33lpx+zO?4G9Os&!%pzWCe%VB9&~?(<$E(X;KJoYnM>}nELKUbM_X3$l
zhlnv<)a5;Llchag`M(N&+@&@{uBOhB%!@RcVs;}FgLGxg32eOTyv*XBq}{xk)z_`u
zE0zzn%;%r_k9=^u{BOA)(2M_o?IMNtoS%62$JSwcM1H1*C^B?Qd`jMfl^5>P?4$XY
zsRz$((a(S4=gVwa(Yrt<c;n*_MPH%CFz%`PLHGAiY-kp|{e!>&wINegOl=^>Y~3ts
z{={_Uw~xF`DkE?bdRofMEe<19M{A!vdixR^Gs4D<{_*)u@zO5FV1HO(PQ#Vzz$^&_
zo6OAc{f%-TK6n6FoSmCn1SQgvB%B*Lg8V3<lFnEKjf~}daTyH#g3o&l3`%xPwQcGV
z;i|=$oG{VavPC!TG}1BKll2UD01685KO%2mcjO97eE<RP_Gt2GsnUeDnRDZf*pXdU
z#uDW>NOT8X05JSvi{zZQh*n&fA3{ejSUPp}(NDh^N@7+@Se>Ad6Z7t6xEM0JC!Dc}
zB1i%#ICRJ9vT%cDJ9)s;Js(ye+s_v(EQ%4Q0U3g0Qjh|njglNI>jfznbjj$>GX4wR
zIOrX5k$*#a@M|g)-5(SLi&=X>Yog^7B9xSIaVNOdh{Py;pzW#3>Q*LP7Qi90Lkd%u
z>M1UGSNroP;53rAy)L%#Sar3psa@>%96O1+#-l?=pWCO^PcJYNlKo}(anVopUFw$-
zS>akK4XAi^(e~1y2-7XcKLtnBI?b3m_3`L`<k2o;R>`2Mu)^=0JNAi9<SLNeEw{(k
z_ha%5rJUgLSZzog<IU$c<kjBPtuHLRZs|&56SW_z$pv)_d)!2aRJ``dGL@acrZ|xj
zxIpXXe{P_(2E2*HL71t;b(=RIW#CmPornTV^N8sT@))f%dQqEh%&^_ZdrMH&IOndv
zFX-Einl-~-2h^PH`|S;+^CkxBk5k_X5k{!<@6pY_<C?R=>VKim`lQ)-q(vyX`MIo6
z;b@iiDSXzcXrave-zNTso|-Gx9C=?k_QbIShjK^1_b0}_TM-`#DLC_#^m*xtvELtD
zeZOL4#`MBkG!iqf$eld?d(eF=?VxGyduDpt_Dhp1v@g_<jMv$-Gq`Y*XD4an4(lG6
zISt;K9v@i|eMGT%jE2u+ThA{UTOa=X5Wg3KplFk{pK-27)TrE}8zjRwhi9uUwa?5i
z4KVz(Z@zQbdi~GI$;X3KT7qUKJBQgh=p+!R#@?N{m>EY4{rCxNi!IZ?>$9R`X8M_x
z>9XmbE9HCV_iVJ)2{yb#|7w#ocUgn`=VQJP?L%PmKj=PO%PyJ%p{9i45FWXxH|iX&
z$4O_=d2F0PDFMX5w~Y?@zU_ATkwgF9whsm2>Ac%xyx+bNqo*%t$HTT|6}C~B-4`+#
z196yisxh+U%Grc5nLTgRKf5zlF*5vW(dX%dtA-xGY8zU6?9FwP;O4{*4x9GrU23te
zh}!jXxl`Krtb{mi1MT12);AdJ*&j2=u2;YE#>jdz=M43zoOHWpzo}`LYv*5@*JH`u
zHBnhTmiZed$zEnD?ea;s5!?33N^haR`!a4-v&}f0h)us1Yq=;C^-CCPu;g;TzUi+&
zo>I6nysGw<`VBj?6%Q@%+Q&R`G72!Sm>Kcd79BaeZ`f)>3}irH@Co-)=`7{WgEC#s
zJlz6g%V#w7scN9?i>*=KXfLagylL#o=<u^NO&Bw~Qc2SvKwV&pgUZ16WZIAiA>S(M
zhdLVuH1A#Jo>zKF>Uuk;RRO=Y)ZILg95B1b`dHPY!;j3{dAf3Z-OWwE?e@l&?>XV&
z@FV=n(xLBGYFov}sExOK^rK<R4Zn!;@aO$sb?{IwRFHMZmX(dQJn9ridZdbTz80b_
zDb*jTYkEmksqNpL+@h`(Dagu}3zvPWVj+K|-b1e<D=S+wUhnksC6D#BJXcK`_;Gkc
zz}2f)cZ@u~Dz#$&?SI_zt)o}eggQO!-8W#!NF9av1?5H)Latr~zU~(0xBp&@%=KE@
zLC4BxT?h#j-9!IA);HGVXmWZ~r*tISp)O6^2>eI|nU~b-7A7gV#=vW+gA@l@46!pw
z1$%^qkSGFzu|6WF_{wyJqho8bvVYiai5YolOh@2g)+l+OiGSDrzW#W2J%wi%$**^d
zN&09J2IJ0wVvHoYG&F9pfR!luFqf>0|NPNv!9~#X8y*?%`L5*PBSV}M1@#Afc(~;H
zMA=*aB6Ts0W1|M;jlcB1JIloJ%vdE_omoSNsw=zc;bSor&p))bmX=;M>m(ietdkxZ
zeH2Vu2yWq85wBS1K32#KcJ3b_uaG(NibAJOZkRToj_JY=S4+g5@-6bDtWxj#y9l57
z6e9cs-;mPVe9QPZ(8Dw?JRs}}0aL}?4$>Txv~KPZFp88a00q}DXhPmNJh9wBYyZQX
zA7J1@Nk+!2(-gwO&6A!iP}aPdit~zQ)%oWJdYku+hJBc}<Y1ZlRNQ(0ouQ7o5STgf
zmO4}niSv0tnbD88)Z{mt5-G)?kC@-Vq22{#u}G*KP_mK8(WCEeX{!C7To8nAh1p&=
zl()hR65OoiOMc^^T<h9l1%dU;6I#cWlWC*uQP}Opkso}bZhpNz8xpqu<1F+1LM5&t
z#}nNSKKJQ5JTb3Bfl&VfbhOMb8Tr82YVyTN(?r^2F@~fps59fFfG*~0-G=@sK%PcL
zhqEUPHwPU%M6o!S#5?5tyO8Iu+VhL|?B2Zt@h^yzn0n!e!(<$McJ+Z?F5ZYjHmXr|
zevZs9vr{^fl9C?s;!S1hbQlt_S5>v1+b#Reu2ly`V&y<aMej_Qz@m>Hd3b^#Kj5LT
z+sr%f63OeQ97NHm<JrTyhIhl36bUhi5Soi!#mRkv<$c+#0Fr}UmjEtz7RJAbHRo&`
zIV5AQ*>2seIA~Z?)0}w=bKHg<-H|Tc{N(vp<7f+1ZI)v1+D+zWiPu2w&JWl3tikq^
znjXWs=a^pbyJ_f@Ctgw)CO!S!tDbck@=u#1Kbj8k2dw$J;opau$hn%$nGHdGi3}#n
zvupZDhkH`lxD&wPKUw|olgX@OoT^cB<vXS#HN6H$x9?3`2TKdgQ4xy6UJ^)zQLWPS
z3X_EtpK)jP{J#QhmQ+(yN1}$NgF@wV#BrqjYWWA7kKR*^+WEONI!b<Y-31nalvG!R
zHfP42>1Dt(U$fe4XhSzjOtBCXg&}A?%>o*99PSxyMVXJl4QP+fj7k6yeT#+*Ta>sn
zj7UE;NkyT~YLbkGcTBrKG=X>GnJ*pdBg!&rF*RS|@JY^3zLKqf?EOGKDoIVM=sXBI
z8>_c%e=tk=063?=-pbjtMF7*nwx6pfYBAHm8B1NzO-QKy!-4OB@BmF*RGtH_<A}L_
zU66IY`CRcHMQ_Yw304g@UD7P@!8%fV(!h=EeLZ0OW24%D=LMCkW8BCaM4lCch9@@n
za_l!GGiql<TC?@7Qb|9?r=Md`Aj;S&*17g;bJhc4Vmlp}S?}o^bnxK8Ie+VghE)0|
zScLDSJ*A{G|MF=zn=tv#oc6`O!79qixqXHwsyJ?8E|QXpYu7>Ddh$iFPmwYjU+oU+
zkNE9A-4g;9%`VXB{p2kLlEK|rjzRe`wX-77b9<0`ip46r{RtDfeKw8=yt>1$>%}O9
ziuYGKzW2Ft_3FJN1_y%<K6e5oWbLtl<=G2)Z`{1uv)4)8=xE%@twD*I#~z)9QYekl
zpBJ%%IpFFiWX$`@mJ=v30|ImWUxtZrwe)YV(s$-8rxirV6MDrpe&c?59XG$uM;%$6
z^S#ipo2~6onY~B()jNjVe7j_<rq|N$y4wCvcu@srxxK<h^m(23yfpMhW}sBv8ChB9
zdF?SAyL#(O_w?sSy>`|qblS_WpXZu0o2h}>0j^S-(M=JA|5@8cpHJOUCg*q{c>!!c
z&OJ~pL1m=9@}wU_bMjprM*Nf6sjhKutWqbp{N9&)srLK&E%Nfox`XU*;P@fc(JTzR
zNlILD^6vFzJ9u3E6_;Pq^T+3a0qrABx*Tc;S>A}U_#el`$_}<7&oau&LW}=_x&O~o
zgRueL@kItUxR+*Gioud4?_Vg-HsV!bqCs32D*5E(<p2NURM4WCSTb5=3%{&();BV_
z#&E<c29AbHmOLIQ()XVp$_aJiznvp;Z0)h}R^wzPj|Yk8tKRk^uV-$>bx8C#z$r(Z
zrisrj_hV$7_H6iPw3*!0&67xWNQL)aeU-IUEX1SxGzreo>MJY1(W_q&XXL1FSxwDk
z;BjmqyX<p>Q4$2tXAjK~aU|vq);2N_hi;q5%th68U1G;J__b8Kd=ZORKy|sSn*VGN
zsp-D*3v<rUO_ZH1M`cAW<T~S9{7e)Mj0hS=23@TjKCAW12z$R)X!;POQ%Fep0r~va
zO=8|d1I3@YGuDVh-Ii6+qH}qN{HfBeH}3sp$rAft1{UIZB;8O7L^Xn7jpm3uv$}&F
z7K~`&`3wKaX)5|O90*+<b@-!o0QzoR%kG!p(6wRPw(h8h92^=-e)=-mOD+Oypv||A
zXxKF^y#&MLk?c9Ki9|LG3{_{sb`XLx;JlcjXX%x>ntFWTa(n5rAM$fJ$`e^am?HM<
z3Zr4tz1y6EVHL=V+K>^(W9sK$c!GKii5z1p-*(q;NXJwIJs;E)*?q{LO}+8Xf})`4
z0-A9wbN~=yZ5e4H{l^9875qp{uLMM_=l}l0hxLSPj$)e{fN5Jr&#TK+)XP$q+e;`<
z<c;Y+yK&D9PM7m2W^&*`#dvQYP?SyjwDyc^@qN7Y?z65t)dJ8MD+EB#pMp^#c`&Hq
zQZy6tC~d6kv!Q$<j?5?9t*e)<#f`s5XV*)^QNohI+b$lxD7K$egUfhOjM?x5D1w-`
zWRb$c5lqj4D3Eth1BHE$TB!=dh;V=}3(&<R1`>*OxXTPYsdoF=>?5QX-)=kEbxC(J
zyVaztsDwYw@ElHI(dmUT_%slk@2~7=U2!L*c`uq%cp$bXK)-+`Gww_$DFN#NA&g=R
zfRZ+p|M@w!eU<S7|1*tcd}i_yVw%umn`yM-%;>p3yI0B&Hfm=4fmR<4DhGmp{?H^?
z)p(|ampG22r2on?ThyPmk<596Mgyket;2;Orvc$gfSij-zDJJ^x4K~A$3UEcs1eI-
zSFfgcVuUh$^u1-msSorQ!U}2uXayV>i~+5zpaHAw2g5C}8?kM<A&}Z*QZD!}B_xIp
zV8>z?yN1T8XKUADl!0`e0VQ0?G3}L=9IWYl32A1w<t-tdQeV_sMF=k()Kbt4D1`tH
zUN=<4>7(uw%PYjc_#9MHq<LNt!JdM{{Y3%Oj=g&wK`xC7r{+h_JhW#ZQG6Ndc_zMW
zhW<B52#Aa5ie!)8fhURfn%9T=^i$2QU1V28RexMsDq423Qk>y2<i7j{iHPp`)Yi{%
z!=mqIT{;#jT(O^50^V-nhC}Kyg2*Cwpa?;u^5Um$uK(mJ1r~$Y^yj}z^*OV1aGYyp
z=916_;O@rw9(_EpD{+=j!4PV8K$FCh@~h;z>sh6UparGk@F~YmUY64d<3XxKwkG%(
z@CT|&$|N3SbzDnr3y=~Uc+hoYL4s<GgVh+?@;i<f#jEBca-g4<RR0*bj9<nnt1BMo
zqRSIS_s6aeemiV4k%Za7rZ~!6o(nLhfO1fTa`aoZ$`FnWPH+ja*9H^f$xbW%ke$sZ
z*oEUYuN`0&n1j*2$lc#$D5c;unH*~Dh@&0263*kmP{g6vF!0#(0=*@f&%te6(yeu2
zIOh#%sK+a@MNU-zXqXSoTtSsf32F{lh|3!H961&k6eUo!6l4mY!5Q^LWlV*W2ReE)
z=emu2bm6UzwEHt#ssx(Eeot6DsCl+JruaTQ|2GR}QHZdSjSVL(nE8W$;`54@<_aby
z#i`jpxZ`EiT7(lg1I`noIN)Q#S0UdTo;zvJC!l5IbFCBqb(>ns{Hhpv!$J-yxv(L>
zMT2uEOe96@@=5XUnBC=R-r&QdmCG0u>4{hlT=CN4k{7X;q9|whPY_PXm$z71F*kw_
zHXRlcMFylW{|f-G;~Jqa<OI;M(cjQ2(WJubm|uvPzUWHphWTr&#^QU4nBeSRyO=Y_
z%V6?kF|gM+o4XDvgcm%}70HGZ#0Ov^gBA5ll!di_ddUs2a>xs1S^Ug7I%ss+3@!X4
zUVY|a!i3^(0>(*~M!JEqBmxS)2gt3B=^==K_wuX&RfKCCl2u@E5i45d=Mx5=<j;b8
zZd8Go23VKQKEO{wDa$x3{|03<k%<Ar@p59ynIOzQ55IJ%zRjqG;hX>c_Yh9fc&+1G
z3ed}dEpR*f3N)Jt@%E-61ySvHR@;JxgEPQ?feEGs15R8R!YBuu&XQII8V|gguS2{d
z`ob$C03e*n^g05Edp`Ax`bGb}|1LQ^N)#+BN9Lp~59XQER0A+WZ>s&JYVkL91WISn
z>AgRbM&kAG`FGYDtfHVvy3GQ7q}NA}EYdAfQQN+s0i(EUP_Dv+h4L7ffz9hI4-)(!
zRCn9lJK8q-bCM)HrN^7ih^%h3IyH+iG&&AzYt#)_JWB}3j0A~Bg^CG30C<O`Y0V@C
zE+xaTLK{tYw-?C;lou~VOw$sx;ll-?JcPxBNCX6JiJutbHfIQVlsHtyVCbk7Y0TMq
zevY-t(=TH*$$_-%8A9Jf5Z(`&3nftc2(b?OMM5Y2noVjJy>(vRDKZC=1x5~e*lb*+
zKSS4oB3L`%ZI#&XL|Vf|gppO}I8aT&pB*_u<)d~M70JeWv!K36*zlW}#sp>Ls#AO_
z#=BQt?CYm_HVJSAuw&W5vJU^%k>|aSdF7d1Og%1JN<G3yBk?e+4Aqa!CGqd61`9bP
zNE@y(BICPtj|6s?)O}G#QO6%{F|a&~^xgoKE7-YkZ3mzs{0TIiSHlexT&@uGU$)CD
z=pXl|Q+`vq-A0A9%fuVs^1j-d`&Aufa_-*k;HqrFo?yNfwZwi^dzpm!nSKo8C8m!(
z?#$8n_Vw#0NdCrvmS294iDg7A7(LC?C9qaR578lGrnVQ8L|A=3b|uH<4HpqLY{F{b
zrB-Frhrj1`GGBM$amA1o`;{bLXsugL`<<{5`%;1_J|8=Fz`!g(zs7sPZv?Tcn6TuO
z&BJtwS^2YKuLQw(KxJR~9&LbHn~N4S{7xVb_5S84Cl~^zklESzXD8vL=z|H<qYN^?
zo|wLa`49Auy5CwhRHUvSHZ46We~nd)UHHXRr~Jd=9y&KNC!Xn>eSAaq&J$gGtxdVV
ztM{eBpN1xCm!AogNL$`sssHRt?h+$stsOaX&ES$<YfBf%<`|lrmTuMwKQq@Ru^@JG
zcA5W^sCT;zR{vdOIWS|G=dd`<^K$9CS7e$lU)EIWlvh%x`6!h)i}Qf6Lm>nz=@z0y
z@=7UQtMfiH^Wm7PQFv@mniTKWz5i(?j3AOwh3W#4VbuU##P}&OthF4##m3yY*WmEo
zt6%L|EvwDwdr#dnFersbG#l5AZwR*<WPGl}&Y#&TApn#(opI;dV)C23Jo!rvoHHT^
z`%2i1{h9;>iX*0Whx?^ZWDf@-0$7p6u;@i)K3HeAF1hTbZE&zhVetGj@eCb2CKVoD
zSINdM%!33$z%v*AfKowfO=TN3``Dx8V7$wNDfyu}A2hRqTUv}B#ac={TaZR;4zaZs
zIU7{Kq(#F9_Zp@vgLsbmhI}LxU3ITFX^1s^#3?>F+mL6?oA;_ilT+jJc}Ih0-J5Hf
zgA36_q<L&hGm|Qr+~WoHHm|>Rx#U0pEE#Y5d!iGxt>Dl2gH+_uZ2jB?gO98`#$Ts#
z&i}LkF)`xNr)K)yZ#XvP)3LJua06mLy#l|dwP7-1W5`t7GPyHK_wkifmW6ij@<q<s
zVw;M$kSha~AzeqnAv9&wz2I6z6y9wc7iWBq+E)n2lFZw;ODncHuvZ7HkpxJ(V{r$9
zh_{mn;l&Kx1b}8kv0x|sJ~x*<ypyQNPXjM`|7ek-r$qE`ea!)A9MEyt<QN`M(xr^S
zkQwv^CcV$wNdi8?(1Ljago$J|WPRi#*ek*l;3Jgw?1p%LEv2rs!q@Wh5#D-M3+5ar
z;iwJZJ0AQQ(7Jh*HJgK8j2G1|+4c5aVRworTGk%%Ji$nDVSpF}iQ^HGfdy9f=#lfx
zxZ81xT|N7DwM}vk_QoTl2%ilhL8h*2ccrT+h|yV+6yX0Hi$|{!B0gBtD%P>*9JoDP
zrkhv_xQpr(Qdw-V+~wCWm{XDCc!3YG#nQ6J!oHR{Us&KyawOb~N>Gf0i3uK#D;b@C
z$Or5?=iI5!J1BVN_ZIc$*@<<tEOZs-&qOI0FEMv7q6mL>sJzDwWl5-L`s|^;$^%bk
za5a?7n$jv7d+{mxMf}Eu{%g!xd!O?N^sC5yO`{?=MGVIw>=t!(uOS+Py<Sf})#s=s
zw^ZH(m`n(0FjV>s0-F;OshT3RSKF!QR-Q{>vLZ~CJ`8F3CZ@i~;1rFlN?pMgwvoJ{
z(&E;7NRMu&wc0By>tXRk$Y#(&<y?A1IHOefgfi#Z9>6LAGf?v@>0W1GYQ-9-zLn2^
zG~aJ@8h%z6wUK;u5uXwL{9j%py2<yro_U$8LoY=UDom<cCza3LtRDL3T|}%<k9y4f
z*%cHkyQ(I(_p^7u4cD69HhlZw>91#xeylzG^`gw55i*agZrt5kSz%`~gy!tozTh<r
zN-MUNI<Ly=d7^Kl`QV&KZzi22sa{upw(#HaJ!G}BEp!Sh-b!7oU$@NoT-|5Q<_(Me
zG*UsWnFs22>hlnESab4EJYVz5YoqTH<p)+yeXK*?=9Na7R(W(VdpSWm$m8&wYgQwA
zn`Yhb`J(H>agCp?Vz%Gf(plkqu&s~t<M)0A^;z*PQC2x{V^))|Hg9TP>C~ZD)*jc-
zxp(@R+;fOuXf*VFC(};b;&yIpf7-)O_j`C|(>EhNn9(hpaf+Uat2LvtoXeNFe%oZd
zz2}047U$A@r=1din9FDRs>|Budwq4!Sm*eSdm7Q)aQWq)&<f}GJFR14Bl0fJSnX$;
zp4q=_hSR3Nq4l40_sK_?xd(6fxG%qalI=6s*&<MNZ_GY$?{bc5V`&S!97ZT#?A^7d
zPvI29q3;!(r|G)5v~;K#KKlJ%&GmO?-OHC&94%cYoj<dHGj`qnarce~9Tc_r_zKNW
zfKVFDq&B`fe@i#mXl~XXPP*M-vxlngR25GrhHc-vb-jf}=bT5Bv&h06ixhUpeb%2k
zIPcu+4jnIVYSg+uBY2Z@#yzV+tFzwhQU97d?A(MJsX6AI4z5w4&Z0=8%iHy{DCw_b
zL4Kb5K=vg-`?+#reT&@T*?`8$^EC8SQ!sZ?82?ZHzFx8IVy$uxyvP{&SN=tN{^9N6
z{RTX5=u&WbxOCZRli-)oarp4Hpa5P`vv2B*^;E4Q8B}oYs9XNBnt?--hfCuI%*dLV
zf;qfSPUId8(2Cc9QnkFFQvxg!S05Nx$XePut3^5NsT5`!nt%R3s=hlO%RT)6G*l#H
zZ_#6fkexzih-B}*_ulIugzOM93)%az3E8X2%1%~7NH)Lg*7?4^-{1M`9LMu`p8LK(
zpU-u@ulH!d1?22Ny`w_unD;p}0Wg?acRzyC99WrP9&qWJtmNrD&FKZ5F^P&jpWxTs
zSeGAsbo1WUDiM_3uSzIhLz;2Gf>|%L6nIQeO}zs;$$Jf;#hWLC9{?XP#zplng7Ul;
zsN(<_tz3q)2_P3JF)gb!^}TQPasu(GjRTPeMv6f%@M)>vff7(LWD6=#K}ln2#~N#N
zaLd7TqRa+bhRSvAf1nDyWR?RP@pIXeE%4~iAoEaDQ~Q*H)@Fm%3Hv&<_!wzlf(<hA
znSn&ua*u?V_!(gkI3mD}jxk9(I5?Qo_6fwE6?S)Y#P4)~yl&{-Gx9B;MIC}AImbCy
zdI_ezMzH;9BmntTWN-|a^GZs?Htg(hRTctqh4i6#0@@c)S_|(02Pt4E6?9~PW5uE%
zc@=R8)n>c8{?G90@6My%J(e&$4S)TR{cj+qhh(UUwfUdd^z?l;=i=kzKgbF}<N+%&
z*s357V8h%{r2?Y$3B-uddjKt|<p9K-fV3dZ)p8OP)(G4{h^3x@C_>!b`B$DmQa$wb
za3TYVG*DBn(*Z1AOg%jX%p;chk&PEPp>X|R>Y;f{5pW^AWnfakR1vQa4{Uxe<s$SK
zD35@R0hBY?;(^f$W*e7pth?yoPG!Q?h7|0N<%PEby&;bQ1RQ{H+~ih;guRvn60D#P
z`<c)@L(~zV70}R1#fpP&4^CK+PJhrMp#g^wn90E>07@h<%fTxPoVxm|ti~>Cb;2D1
zo9^2FH{amwLMDRH=KUAa5Rh~A^d4yAVEYE4TjrVo;2&^R^phFj(?OgG^bQvZ@LL{-
z{JpR|<+ux96YYHc*1z&VlLD0<Tql^FyKmGk0}1#%G#0ueu*FA=R+@HFH-AOgc?UvC
zT)c*Wm?R|dbOB@mR}^LjP)8xJg-PHgf24l$0NZ%*Rs{&`T!w`V%z%plqb>Z`(yw#6
zq5cFa54PsE56qLjSD)z70RcS<EP!Db)xY6tYRd5XK&R0&9`RrSyGv4y1SIQeAEMG;
zF7QJKw)0>6gBUhJN?JD%7JGNsU~5T*2KE#veyIrWlz{Om;+O+i=EW!jztPp}-q2~o
z&<O4sbOwSza8Xb}BAa#nPFxVP4k(uFAYmjd>oRd{yWzc+?zJc@A0H|S1+dL&DQAU9
z!cHW{+(ZK^EU5Xx?Ph*{UOyNc#-r5UydcVa{P^)Fk5#yN{$hzx8R6n`LFC|H8~3+B
z4g`!4l*M2I1P*>jyi_-T;?R~~Y+>7)EQFmQ!6yWlX35QO&kbNba6sDzy>3cNOUnoU
zF5LD*-at5h;gNu94H_8|J@1>t+?TGtmG}9fgh=Bc2=R*CFm$Kz2my5&v4e*y2`0{n
z86!kMeFXF#y!Ef^DneBTl3;A8!vH!&$TDDD(gNxLC>NpZI|ZB6S5Po#<UwVJY{@X?
zY&u?KzZ$CTyE0Z@s4uyXJOm&wi;-nGcq@E(8}^65oJ+7jfp8VFBT2P$VHS!6(L;g9
z;iO6!gz$D@okP`i_Q&o_5_);0uHhtuB?%Twns}Cb5(h9bfcou9D+J(p%m<MGOatGe
z=}%P&crUiWga64T72#@%#G;U#KO}|;xn&?13B8qa0-gYm6$pV3qz9h+_pk#YMi(I2
z<~^_G$Gj;B7Y^~(G=+5t+$TpkSzy=(?IAz_2=)&AX9REv>hk?~UO2Y2F_qd^2x`NQ
zm?R65HUOz%Q<WW_LJ!oA_^Br>eo*M%ytPp6Gx=4<2Gjxr0|OaV(?Dp3itCa68~E<!
z6F+TS{Z3_F;s0tDNdo6jb9}Wfa)BR;P%zjIw7=_~R0Vwx6z5R6#-iY7P)@g;Y(4n2
zPvzyTlM5&6iu@7ckv{jqKjXmw+#EQH5R?HDRP?|L3|DR#$>adjUPItR0jvP^dvVZN
zETU2daX3Q2fk`qDM&ZHVuhKi>8CrFo6DiDR{tE`dXaF`^IfCPkpQoNK5Rox@G+NyT
zQ6jK01MVECTXU+pHoB$;6M)2Cc+%mCfkqp^P3SN-EJE+NbDUqP7j~315t1~P6wNZ(
z0a;8U6?T3$1M<J~Ml40jW9=k2Qx=cd$r4O3tlplwY>k;4m60MC4t#o@F~D0IjWi-=
zS?6HPE|FjYRVS3$Ev#emKj8ksQHHvAz>Zzbd*N5-TDUbdJCrz3^nJpng<o_*pR$%^
zX9vML$8MWz+?!cIKm|YrkkT6Ptl~AurWFR1;<B{HX{{vPO(ez!Y6&pv0<;cxtpfm$
zk=7Ab8v}Ke9oJ4ZD+@nk^Jo9rm`-_BN1Z+NY1JwE^rVdSIuu@7P2)e-3z@J0P<zHC
z4tzG?R``!&329Q#Fg|}&`q(@f33EpRy;pwzoI(yMKRH+EE64Qws5BBZG&GQP2tCkW
zBnrvGfoTHllu%>fUhXe1oD?U%rr9RA`vo!PgYy|MB|@yAxq4rvEv+ZA-u{#j$MaXj
zZ9QoU=O^?pFsy<d;&{*Rj1TZOopVSSAxa~JIxrbP09%03X{GVc*8EP`A+It>|18+x
z^0d9N#uAk6{!%c%23cqHKRoBY_&E4)0IUM%UAR1;5#x~K!fOZWAnS^ET(>dAp2MN}
z*YXtE7IN2mdSpH^5`$g{nt6Z_<{%tn3EaaFp9}!>kfjOV0z{JtD*~86mRd{?fB{>i
z3WhvL26<LR1=q^+?~E@s5+oog3Ow@QAN}>I^!`Kk$E}s$V7sb7+|MT0M6O-NCGef(
zXwKXZOzTG!Yk>CyKM}6?&ZX(<S**JNiM3`~kn5dpCnCor5Yb`Y`ug=F6~tQ?G_7+G
zmT_$=9?*QCF@UG<JU<RJiXhqtS11thAu$tR!SLma^0SUO5U+Aaz{Q2l0lh1^EA|B#
z2U0(_QZmvXdc*<-2u~0+$dIgXC7UPrX=)a9$!Te6HoG|pw1o^j;a#8R!o!c4GmF!~
z?kTbZ()mGHypao#9t5o(lKu_JJ&2G8z-$CGf5rrUt^E-90Z{{s@L}gZKc+E(%yKwY
z;gUN#a@O#cvqCx3hQt8mSRg?jaI6X7*-FPkDIucj2>yrgZ~ztxJIUXq5r~gM$f1x!
zj@`OtU$LeDi@J3Oo?d`)pa6in&3`-%z7lLy&~0Db0@uoGGVhN6cm_n_+>3+G*`K`<
zck&W5bri5Z5h*Ze@2<Dz!fZrDYB%OFHD=Ev5Je^DV04Sa&j1o&C2n(|1cSPNQPTdy
z&j2w&Xqw<-s51t}4k7_jti3Ja-9_+hfy71zYA_jZVBsRICMe{8uYA7c{iDPmhA2Sb
z2#7AR%YF@)3hXvShmlqg)-2u*Tzu<EKnb8C23;5}gmZxW5=bn~%`_Sb@GqFHA5ZI?
zVS)lpG_=cbCE#2h8Bu|41hCYWCyB!KzjaEFch%DY<Ogg8J{B|-pcVNz6orF8?Zd-P
zlXW0<Gl9(%%2ODVr9Oq{0lM5<_@Nn0kie1rnA!t%%_5}D0D4z|0-$~Xn`)-ngV%U+
zlNbS1-$E9Se?cyQU&hgyNeUYJrjtPTh@013Uu^d5z&hPS^j}_rl>U!Oqi&w}SYs|_
zHV>G*KyMXLPm8oz7`~=O3;bS!Fyj61cP=&yDWM|a7rbc8!!ZJM=0aY!%l=ttanXS>
zP#|X(l;jzN-F8>(kqAntP60pz?bOt0e}^3_l5`A!WkBK7^vhni>}{X;_V7e~mT%P}
z(9CI3rE|+ouFZRY+v;aUSO`!!A;CZJcmjDFN|TK`9q^}w|E!+%O%cs3UFT~4e1J$o
zpbX#bjYUbr48;*_+u+Ep(zH=Ky6NqBlM5-<yUHoQSoms3^w3CpGcr!1FE#7R4PWeJ
znq~Xs7PzgGeXQyki^{an)W_uqspPr8H>gBlvWuw;whx-OUNv==7q3Chh)lhZeH$q*
z1hj^^;p5FgCkH1n43#-pc8><~^F1ejj?(1X-CM2RtA|l30R8}>eBd48csUo;N0Zw;
zt(tD${5EbbF7$7`+i^kf<cC^&+ZNmY#Rr_6_~WeTswz+`eS{*s4qE;ha0^G0Q`Q6^
zXBzf;sB6JfLv9%Mj$Alz04D)s1%w3vgW%Tn`dbG!+enWJDZ1Ai{?!?S_>BN4paHD`
zOAe8?OA-nfNpheMg#rUC#DUfYJBzK;6jX05?qDYeE1n+0cOgC<raKOlA@EY{HUy9a
zu>|BeyStPAG9804DzE{r+_(r!1_ofBD=+0P@BLT4SHyvnNrT>I0950S_aXJ?C2KGA
zaEN!F@7bPTIua}agHb?nka7=1f=DO_z=W_h=2(=2Kp*B^uw_6O_v>3Y`!*<juOvi*
zgUYXDvVAT^XyL#c5U6EK6tnx1b3Kp`E{QaZnC8$&gRjJ;%c9=kyq2M&0~1T=S|Luj
zc`gNf5YZE>@Hio(5~KzNd|8}M1Q?f4k9hy7NH+l*C=5k`d@Tc&c#!A?sOup>PJu88
zlwC-+6<9;{KyLsYCz84W#4_6Q^k*NF5yaK|?GbP|AR5)jW~UV0F?rYbS|uDGu-Dp5
z0*D85AL7?PqF%myR-_7h7Lu9-vpBe2F;bTe+?&T(9svLgKJ$6XXnK-^{?8{ia0-Jz
zI%XZVMKU5Hf*J?B9uWBtpnvzUZ@*rJ+RpLx_#h(_@r6bl^595=U4;@j4;ZIC&?W=B
zO@ERX+ANW4o={(cu)v+0BDe)cbWjf?(|@2%f~RQl8U#X$XMJI$bZ~>+!f=uo%D=x-
zHrKID8=d-{v29<KUtTHH0H(nytKZKBObIxntgH|dP#D`mav-3~V3mmsK>)YX96V^n
z;48_URUNc@lrDur$Z$|qzZ+hCgmTe=Y8du*ci=}I94`wGE(`75hhDfkv~+<V`U*!F
zKmg<o_Cj^G94ym^bc=OtfYZXYMog}t0tn#Iy|rQs3t|9lF9)H!l7`I{c1f7KW~>1v
z;f-0EM=;>KP-?<pmFQ-SJO`aN>tECb+HZ(Ij)Izl1lCRS`UA8Laz%@^Yg++`IZv5_
zm-(3-y0HOq0X$O?pHR@sO=M7M15XFeK5O3awK~L2zTJTmI9bTan0~sNjv&G1tWE$%
zgBnyndb6bEFaQcAD9@257@0IZJl$V_R){mH5B;gY?rRAYjN>1mW6>Eq8{Wi!$AlFn
zbjSoHXl>E&PW1YR=rh&hv{LAd!R+gKmJcmxGT{p%EkXL(L3-TNT#w_ePDt?D7n@F0
zx3~M43TNYsvy5gXIb%4RAtWsw>P%!`2UpuGIYfK)OG|qP-mlG?PQT_FkV5+c8(OqG
zN*W)aZz%PVs1HPBY9@RHh%Ukx1Kk8L#RJmbpYr^nLLZZxNXNccEkHbSlNmts2Iv5+
z)@X~L{5UWg6<Kiu0^>>@m}Un=JN(7`p}Bx~xEQH9{-@E?KNlYO*i;SweoIu%i{2C7
zIT}yS2{j;XK_}+`3jk^xpcun`onYed<4a!D8ZV~MmFHbpm+L>s`(7+jZqo}#_E5<7
zT7oeh621aCNU(LlS?3?q8j`u@`Rv<PX;wZnd>J_WUj2lU1E@*)`7q%{X0RX|fCq|`
zgX16f8{GhbeC*k@yMB4C*jKf9mVysI6u1YMwsxZkfPJ>BsizN68sa_)<02ImD2yHr
zbAwb838fx$f$<;g?_5znFkcN7H%#d|B>M<o0bH}45>TNax967OljAbK3&V+*Sxmr`
zfo>O27}x*|NQ3bv<Vg`sQHQSA@mV=kjCNoXd;BjHUBDbC?-M-<IYTg<-@lGIKw<)5
zy7zkm!(;0i7-z$=2l~i2LOudrU5Ew@1gB6#z#Stu9uorI2~yv}`vAcg6NapaK;1<L
zaovHB*}74@224L#3yZML0W{*QgV-`bKLQa`_LL#B$Nfl<EgQ!>M8!;IOfLLq+z8q!
z#3lo-vGDOc?tS2i!lSscu`#LZ3==5OQ%`1L1J4889Acp=1t17&p_c29V0HxRM`+4m
z$GU(x96){&!Whv8tOWFKNI*Rx1i=R0-h9%(%5EK=V~^=R$a-2-N<Sn-AO<8gZy&J?
zotm0Li<32r`~e;iB{%6A2W96x3^zb0$o#rp(0YI3i?3-hjp1HfNz<x0r01%rKxrR~
zGSDDSFfky#lAL41Wd(f$ocaw@|Fq1)eUDsE+}OWpLE3@-$kqJ2r(|)r*Z;WCL71?J
z2`fg*IOWq}h2yQ7L|=FH;mTXqKmD3`6xNWrFr4ksuKq&CqbG+hvcvCSG?l35O9s_L
z1$GPL)$_{qh2HH+z$$?P3;qPN`w_E<opN4Y-Yq2{xe@^;3Dnv9PD|+LZ|XDinW6R*
zX&r2P!JfZoX<owAW0QV_DdQ&KriXoEQ|(x?FeO)slK$#SdDb)&{vhb+<U7M0dZlf2
z5bo}0?z`9S?wuPJfB`jj>q>w;wIKrnjYA~@0yMbGpzOz(XosOXU?zx^2!R+7!w682
zz%&ktvdYNITg}9|aNYO5?65Hm#K1@#dO%pdAPOsdd|fCBX`+QL!X*c|2xiq_Tl7J#
z`A`K)p6dRN%NJW1Y0kl+Uln?rD#<X?2{cXsh2qx?%*)LIe;aTUjg`6qP$VMLuc|7a
z6<*&EGXF=v3WD5=h+(s`NJfCNiu4oKUn3_R&p%*YZchIDLYql=VPBu@CtbN)c-J<b
zpBG3|y{h0zaSctEh6k9`xTP{X&~Dts&W8xzT<$S^Oz^8g$gh&@tNQItYCOJ$cWn80
zK9HOPFe);4|JwvZ(dzT^J<?6QSl}1&su!o*`jos6WpNZWd?$af_wyEiVP6J^`mw+S
z<VAp84Pf*a{q<>XpN|_7Ou(kA8}L=2Nq$|MKYzRP&v*{tE(2&_0&3inklT3I{@goX
z@VBJ#%UQ3BVfjC@mp|Xv#A}2wF9+cM{rJxp;vU_qp+Ww~gO4sc+GFi#8_G_Al>hgg
zVZ;bJc9@4*^VW~GL0x`CY9L7qx4gF;u>%2Y3%nVgJn7ZNmA-}dQwe!1_#(e<(zdq$
z_l5pmS_4ujj<*rB>3jFe{(B?jKH{8%rCl&0fO6sgYXv5O`@sxPKNytO{@)kGpfDvA
zU{89VU-y50%(f+W2mbP$?fIVz#Z!k5VQ~KM{=(rzqAbWg;&_X9e*0l}L^L3<$H1V}
zOArOEh5X<4qtk&yE)GggXyqXGrX&Of7xK>eg`9Jnk1-+BATD5oKQizlHxO<TWoHWq
zHWInu;`4v5IhA6;2oi*Zu(F`vpZ>pB69yASsz%`Y3e$)G`{93yb)aoFcb~!IEhPE(
z$+D7&`3--5BgkF!8XQN1Y_61MB_VYGduMw&K};&4@W+$se;*L&BJ!D`FOx!*|M&KP
zZx*ywtl_{F1r{WE#Kvwk@^>Wu{+&#sZh81hx_`gY@w;4@`Iu<@e|Ms{9B^-Bt_r8g
z`mX)?hn!x!05}8%l*~}e4f>rr8EZf;mVQYHVKkW1r0&fuSMmA!vslg5)Vv^~^`Bc1
zjYXj_xhLk&4w}!{kvso%tF67R*eH2P7uSp;<-mm@hs1qt`{6{B5<fbW#nJ;qib}WY
zf4Bf(qOPIf(8p}GAiUt#d|Hk?^?XvX&vPt}il3sD$Mx^4848rdTApyDGZ)5>)+8R?
z+DE;8p7kZ{K3mk8pK^W<@`~!3;$Gh;1Bs|mDQ;0Q0Xc@r%1!Z6m)bR+oi^(|m`pa|
z<~40i|Ct|+8l;LmGnl+`G|uU((X^9zviWo0`-fgrudUtv;P5rig@o*s<t3Uu-R1IK
z0q=3r>J2xRQ`bEw&w;y>N0SE&zlFc9`aN;0KlO^plE||JF7h+N^9xRK9KGdBpmEEc
zv#vOBjlX6?=o(2q-&xK2{7=s_+ew_rH6MmvH;)%}bBZJ(TCSUQIFXkkFNIy)F1qS?
z5^{96-nlUtH*x_ppn6^I=6IO$?A4)Ei53z+iG*nSF@o1#dSs|aF&`YJQ!cLf+4E@&
zTa6T5U+Q<->2#@HklCeC`&xc-_sG?u?9Ji0F{Vjxw)2HahteO-s>yWILb_uQXeKYH
z<k{(+O*wpUZM1rOXP58t>ZvXp`lqkoY4z2b;u~70DFo-8y0G#apenW-dI`R%Ul8`$
zYia8$3YT-^m1WJsQ_a@rU8rG0uPeSEf0fTm)Rt)~z>lu5$yuz+$ix2}Evm-*lJ1Fr
zDL<RC+|@?YIChO!Hz+z?Vy03i8R@VhFe8*@C0mtlU}6sciB!wGZ>?(092~Lk{%t{c
z|0Kkdp*SXz<vCAMkV~Lre}_ZEz46E=+^D#){7Mti!bI6^lN861rUmQIMe@2t8ipA>
z0Sf`T6-j!04Q11glin9_^6=%PBb1dh4f*?u#-dF^jm0xrDCpG6nO1m%!h#&b9c$U%
z8DdSm3(l8fUA)nwLQ(IFV|(%_at$Asg<G6x$RS=_d`nkA+ur`p3bDs@mh#p{qId6;
zsD%JJF;>*@G$8|d>}SHwsz-d*+a}==<r1}qaWC`UEnvyrSzjv2??sc~NN?*6G|ZB8
zIwWZq8>+LR7iQc(&Kb=oB-Nj9=dkHA$A1Hk27vz?yY_zsn?48>_a=$m@l3wWP0wR2
zEt=3$uEQMM)(3gZKwY)s$x$m<;kl}EA^Y@l6;-0MdS*3!>l1k%0!5QohpgS@I-^e*
zu2b-^4X$XX-BIGA0%M7XnKr%8`JGDr15-aA$_^j7HJVoFma9*2*YN5YSSy$*RhL;O
zM*j%m)?uB@&b{CF_C)&Y5V^2BU+3;3R?d2c41Vz9(C7CKg^UAcQD*xGT?~n)GK9|Z
zKW&LFcDg8_LQ5HT+B?g~BYTfMBm8`<h`QqgG|ooX%pb6oMfWTOO5?b-zt$+&YOGep
z%)|G&Yv8-=e0}pJNzFqg(;{<x%xOYlyN->a_!~QUfp>-+BGhIE@0EQ|4WyG6A^qx*
znR};iet`6G-M8P|Au*^sq;22J2Ufg;$}m!6?o+93nU0>iX^+uUtFBsv{nC;*?q=Y@
zzsc@rU^1+4th@ZpIdrch96N{m=?xUWQ_Th8$Ad+)cD=5FBsZ&kZ`_^CHWfIY_PZO+
zqDh()n7_doKOK2~UjVIxE)AK)Jf9r)nfpdZdsEefdR6|@8>|Z)0=Y&Lwmz=RJL8W6
zmLs`K^Co4Bl=pMf*(($(-;?s@(-}Qr>wY0)$J+`Y9BziAM0iB31UKvOn;}x`@a=;*
z4c*4lf%*jrw!wrlDiW0#bJ_Qln-RllnD?r*jf(X3@8fj8mw9aT`u4O#lRa~9l}D<R
z620%ey6&DFe@$Eq0i1UW<f#)JjdBK>6rxk=d4?Kn3EzhjaJICf%sk$)i>SvXY3E0?
zs8@$(M=9gpRKuo_4xUGoo)js}q%d*TtF~1(I?Ogi&%A7|zu(s~Kq|JbkfT~KbI?75
z?fG7?$9h2Dvntpn#Knq4s$Ka|E31+(*u%-0Kq8@m!$(J-3o~Lc)%-gb<B+%*=VEey
z`>Nxw^601UDc8exr1WCtroWxN(Oa$xr&tLNWEJao=Kn&r(0xg|>6dweVf)gdW6+}9
zB~0Xp%6_qz*6$VftG!RcvBHQus3MQNj$V*pEtifsO}N$`)^FLOFJza+#HUviFg)3O
zh;@F-2c`e6)Ef)>!%~hiP{*O54^NM<&Kk2OBoj@RHPT+tH+wbe{Nj?0LfV7arN+>U
zO1&fNp-*F<vp(r793@R1gLMcItK<aC({ctvE~WlP(+;q97aLj>XC5h_Pz@7Sc|Yte
zaz3s!L|Qx$=S~tA&%T%GSjqTQNpZnlo^mXRrm-3AlS(+I#g%~4)@DcD6+xkPj<>jd
z?%uS_Y11;oAm+tp&T-P};^mL<T&b`WkY!WpX5c1|BiEVWxW0CUr`Mn$VBb)1oSc?O
z>5~=C!gV6-UW!1Lk+ICclUXw1^1037vorL<(5vm@lLawM*+~P#y4Ei3r0zv#o?(&L
zTja4xx_OR;d{4a?`jP_gFp#kH6^<~evWn(^)Yp17vve&M`^?87b)t%Vjh;Xwp{7ic
zo=Q!D$j-D*ql{Fqur$w$9TmJ7lpp2Vx!Mz~&XTPChRtb9GBld`cJIu6LKa<hzh;I<
z2Y;(Mn@Q5(7GM*@a1@xqjnqS8K?Ze&iL7jLiA>7to{l%3t0ZZ6fB$@XdHt%=!~3rc
zVcnSw8!J^`a`@HHlfZYQgV>qvX(DDG=jT#czbDTlJ2*PM7JhR}m|MK(sJ6{G=zhfZ
z%8ECxmxyhO$v{2rnq|H$Xa2MNiQ~giY<R{E<d)3Tc3xTX@=S&s*^YR2VodH{MspD?
zDYe}Z&F|~ejMsZ<TdvC~a&gy|j^zT|Yjp1y$M_aBQ~wQG&y?HV_HSR>^7}rGuJ#Ql
z;a#^2#Ty~qHt9`~p4`Q)HeQ`s8yU<_^ZssqmbNBp71&|__~q&7wM}_q55MxRdLxW&
zB9`%HREu_T@O5|;+EQn*8=jSQC(30RByCu~UQ&J$Hvem>O3o4E`gEy+ap-D1^Nn2>
z-LW9Ykxb>hd(9i`6{Z6344J#%2bk1<cL|3b+^mEo^!a!FyE7zXKE-9N&~S|32{tIL
zsp;BlKJ$S_3QAoMrmeU%+hS6gS5`Q}G!x%Pa7R773Ln`yJvW-h41Qn;`v2!*`HYg%
zOkv`ghWBa}7k61aEQ7_ww6h!UIj6jyqtU86Fza`QE&gDBg3>OMxGV8)q;os}R|3YH
zThxE5zw!UOHZ)5)U!7(Sr)Ez(1-<WY-$<4UfpXNeioTDrG~K(dDfNOfMGgnbL?b~5
z@;K&XW`hU5Ii=xrPu^u=1=`%B)HZce**3BJ!#I0~+9$ncS3E14nd=KNtdTeQ^S}HC
zY<~Tzx>y@4Efs@lF%y;F)mK8%z@<7@WQ74_Tk-U2+X7~MT9q8y96UvOUK!$o6o%mS
zjJz4MgoScV4p^l6BXJ2R_S6S8>8Fjf`!^;$o8LX?oZUOG(W$=i;{c!bFBl5k(@cp3
z^qF~>+D@%%sk>9<zYBHFrefG=$&H2_jkAe5+%cEDFSY~!Y%&Pp&$JD)k0=mfs{FwZ
zEbdE4(k%WL<xs=&R7`dk-xDoWwcy#!*Xc#@Mri7TQ6Q$TyKBT)$#*iX_jsQhN|!?D
z{IjIKhh5<+P$A~Sh9kQ2o#@9l89WBQyNRU?PNlacnR80f7MuclnU(?{{`}OO+-=h1
zqQV~Tee=gJKPS+_!@!ni3}e{U+zxwqk}~IBCZ|A2MX9a?pG|ABcLlo2x1WwS$$P@k
zv`D7d98SdH1RMgKJA^E};S^U?+A`sAE}?od9D_M8@T{W2>up!Yo$Um*!j!#FgLE^V
zPZb3Tn|5`DS<f5GCzPF_O~l2M-WL6rr#D4K^+t%f6m8t6294A*AITqM2Ab$_3y*XO
zQO?u|148L6)4Ep$=)Jk7g$vauHy?i7F$wpc$TIy}nJf0raHepGqxzKz6TVFno{dGs
z(v=eHrRh+*CmxsD90MHVi>9h<RW9~AYOo};7LM_MrOFkgGIVIu>ipeFdc7BpZ3msM
zc-92omk&1B$rQ}xLP*Uc@UM68l3cd?2fa2llyP(PdkT@Rd&Rc0GA*@2^mk7S`TiDH
z?aBvC$*ge68h<=19RGM5i&joFhF*5k#Is7qO5l4@3~sKJgi0~H+H1X%vb@RNuICiS
zk+Ys!?}~o(>TJx41t2Fmi94;#=O=$e7RFK%EO{4`BXXorZ?OziaxAU+&c-#9R%_S{
zR2Wh|!Fhy{p<dQtoI>?5lSm`W@GI;&b@QKIDOXcM`t;ECBFX#XWZCLvWU0fo?r&eB
z2vEPR+g;{IGhFbl6*XTjB#|>6v--!GJNUKk@N4Zn&)vFmak_8u>?(30+AYQ|!;fO<
zr*6Ib`T3PHnPqrZ4}PYnVEI|nLf!9b@fVL@)g1&;yi)9J<D`{nb<iFSC(c>)aeb_W
zBi-uIfXa64C(vj{^*Ct5m+e9+!xr%7r~J?tysY~BtzHWlaDp<a-0getd`>v@ZzH_9
z|NYv|$<;9S7deZis+C<IRp^psrQ$D49+jS2Z}bIwyb~5N5~Ziyj<va>dHbP2^!FmG
zlm@rPt`+b0Ua7_?o`-%6MPu5$E-C%xa&%dE`D5R%gsQoSy@1UiRv~Dyp}R|)tkIO<
zI!l+9C2zInl`Fgf``xm9R?m#34U6>e)hcH{E93uk)5PE{G0H64kU4eY8sibZcG5_a
zc3!C_H)a7R`nJsz0_u$y_of`|;s`t8J<I5m3aN_|8#PK?I(dFgmL#54fZU$%hkH?Z
z_qb?$Vw$aCDNn0eWcEQ{88?aDEB*%>->2TG<-cPdVz0_+m_2XoFKQ$JCznPe@ZWPr
zqk007d&VjA+$fQh3Rn)3ktF7?8crFEa*Y#b(ibVL%DeNvjIAa<2#=BT^)v~b7}3<3
z+Bh38zHXpGM;sd()HqRKFmm@wc1mU+>}mt<F)h4ys{2U`WRgoRSam@L9=k<NZ<QVv
z{@T}%RhHc{O><vs$xd!_oY6NPC|E2?=B>@@-Zu<7UAjg^RzmFNSSu<fo1HCkn_RJ`
zNtsp;9kBakZYki7y^Y9nhfF*L3r}mZ^W?#9l{o(tkyyP+$2xy?%5xv}gz~c?hc$Xt
zq7r2*UbV%e&BCE!!p!RXtue(liM3R*7V;tcGg<|>a(4!7|Kb|}oOCYybr;%?p?nJ&
zqHx5(00PMX0PqkP=8zw*G9qvN`fCA3{4<jzb#>UYlr3FLsq1*ee?B<d&!)}Jmn)tN
z{qoUpgv+C5((|W|J*8a&Bqu`IXB9+F)Q0&c<Ty16-5Wtv;#ygKU)Im+If0-96tx-?
z+>M75hlxBYS=IMNtu)1y7C#g_ytU5k;%It*^{Hfbe*YJl_?A&7XaFNS@D{=a<nF{T
zy$W7v{izvY*goTWx8^>#>YB8|GDG;sR=zlhyZ9Vv@xa-njXV2`jaTW~Q~B8M{gQ(H
z^?M^by<xURWQl98Nknanhl=sLS=GS}d0G!WZb^vAE=sw*DK5J>mdO0dYJ-vYx*CFn
zhyjKRz;eT{*6R=u9rc|Qq*@I}8}-NSddC>RZ1@JY3=a=i-Xd;sK;UE|Jd}#8U;bhy
zkxX|pis@B8F<h7a->utPLAK5_6~F77v_+IqVMK!^d}@`?R4^sB@f|k4lr7ti7l-F`
ziHl*CmA3ZeXr!kKOo}F>7bf_hvaNk7M0I+8^ImcfZm_LTK)=_(Nv6Z#YAI!i3CnxV
zP1d>9<6u2TPp;ZPrtLEpyvkXtoay<V*51_fL?*4cgTrPO59)5~VwtiZwc^v5)An8Q
zvZiDCE`#%j*)EM7_I_5E+gt+`Nrk^#eT_8RWqR_?FpQ*QF{g98h)<@qzUihM4mp=~
z>PS!Q^Fnv4$^wi*!tdW?L!p@Y;!h}Mqk!Ym4qY^ps-5X`zoEaBXwXlH(;*nEac49N
zbC{b9SUJGI^gcV9eXOE_xE6xz3J@RWK_&z<gk+eJyx8#l>EPAOU##}+^Xq5Omq@C|
zY1~zZV%7Eu`9*b>*V=md_6Bvb;ya@RCf!b`ul;3Io$ZxWo?3Lf*e0)ai=Mq7AK&;R
ztFEyv+Cw8d@;*83pXT4r1kJkr(P4Lvzkj<@{2f!H$$AS{SO=)YI%C&KCf!H>MX#@G
zDYm#$LDiX*XSSU7Q~r||eUE=6Y2NFepjG?=41!_TTCs~xKGqrCX^f6i@zrE!y-=GK
zrO51V=haq`Lo1RwdX3R*;dnnwa-{U$-K%obzNKOFpC(96GwzDYJ3X%;z*riyTH#^$
z)W09OTuSdHOgm9<P(+TiTucH>k<>P7C}}JCYL~C;DC0AeAOv)U+y=yO7L2^^$?Zf=
zBsOCMuLbn+K#lxycbt;7x0M4M=(a%L1o9q0>8BxjFi{2~`6oyZ1I~tqj%HTj8m_l2
zE`Eve$M#anL4i*g5`S_Y+1#LwbnU$F^WI;vy`b%lM#1QV57s1_wQ29)NnO5jyyrAy
zJ8hC@>S+{hGDs+<M33Y8(S7?-SaA*qg-N*8_4vBox6YFnvxP5d-+le2QTO{+3##Y_
zE%oXXj>G~7pS*xI&l^~>lLWuC{>+_~obuUGRa^42T9cyQG6S~Kc}P&1Eyf?&`&)*d
zNv)1Y+k36J`qYE{#*SE1N?rRm$%y!Xy;z6$w}UP2_Z6x-$ZiVM?w04NOBuYs+Y?jF
zKW9R~zGwxg4qZOpXJddL)XU0#Twjk|GZbLUdo9C_TKJ~HOpe|wFN+d9^}BNpUyF~q
zAeL`YzQ1p?_KFTyUaj*}QR!ZEgu$-uk=vLHFrk6oJ~s=zjz=(J2eul>QjEtQjrAT0
zXeq@!QZm6;p#OANBKE~|6pl;B{h1W~8o`e5j`4XWgBc<Tjk_O<y2{ONWik)B-ahe~
zGsEj_<;;5@VBnS1Nju`C<Y~>(ojJf1hPqd)ZDLv#W--!MkFJ+{_t0Vcp)(^fi+1uI
zr*ifdeXCb-C(=t}5x4r*E7k=?@~bO$f=W-R4JO!jYRRdR@Bjw^Ou|C;eIb!-j+!9B
ziPz#apYibE^agrqzGn6(_(W|6zSCB0pT_X#&E5K}E|~MbveFv+SI0B?E#-RT@GL&9
z+HY&zF)Ri)yc>6Z^M*K3s*iIpDHk4kcoqF~q(x_pPY#EFEFZ^@VDj`X3swZ&rUD<#
z8gTK3AjUHZU_oYQV@#rH#!q?V-hx+0@1oG}dPo@q{2nOef%*B^xXy1AslL~@<L}{N
z%2OKN4BE)yNEb}Y)J*RVR!&M|u=_)Zd1ocKzqz5dwa+p>!1m^-F=h9SH-7rz?K3CT
zdfUk@xrSI#e;CbW%+-s-^Lw}%mA`V)M(!~ny@`H)mpuF89hF8+9f@tM7skydslwsK
z1*sPIk2l>$Uj!LbQ%P+vGM2v_sqo%0sn88@_B#2Q+Obl@w(x|gF1hs~@9R0Gt4h{C
zh<j765QGycFaFUeWPfuiwBe$IS~Xp(c~nTx{#+290eDOsl|q`(_#?e1uZ#pS+4>3d
zlG&2!KI17J>=KZb--*ay{q^JO+RK4eLS|me#<acbx#a-A0oL{=eS6e^i0msx+i}Nj
zvesnTVq*u39P#$j&3#2CI}glg>Ti8U=i?0+Pd+^QSphchTOi4IIQ+eO^~W))mlNpi
zNZzXVn$~RH`VMfd0a!u^suO1E2-6K*oj_Tu@h0`%;m*y%(9o;AX;%YDOtpKwu3&Y)
z@8Jq*?7(W$Xw<E!eW+$?Thvh%gf#|%mU8)ft+zycbOuc;tQGP-F(vm3Dm;NlYlnCJ
z4z}AzsIW&XJR5(xj5zO?>`*iaYv}W;8CB_Du}b!>PL=7;eD5XK`9x)~R!ZSvOHaJ)
z>9S=SfHSpkZ#)!yb9ro0roDASBs44^x*Y~S)%=$OYrm^L)(B`V^;jn<jubPpP9Hb%
z2@R5FWlXN9*ir4;jscRE7UL(?QEFT4S`a2%YsrOvHh*@qif@LKy)q!l|CwSrrm1F`
zOPfY7&vI*2-TyP7T5%H0!4#x>C5f_ZGfYl3EKBr!E*%YpCXW;{GA0}N6utv~SNq1S
zDbqSa{LAf~nFIA#%)}}S0}-1v=fnF4;tGVohy}|dAeaJ$pL+iuXldYZ{|Bbaz=H!$
zEzlAn2v7`0KrjzQv|2z#00t0@AzKeQ!}6!<ylZp!*Ya?FwJ3*9RB3+tpp~EK`8wfA
zv3a>Fw+72=Ry%TaGzE&w-;QveBfVg&BIY506<Bq<nco(L-;9M3Z|bp^)!0sPD}Jy-
z7gO+NhxKb0cfi@4XK7@&y8MHF%l$?t`{1i2Xi{GBmFl2J3I>+3jq{$fw#c+R;-h?b
zsJV2a!xE5ISYf3yL(RfbZ^}`oJTEzSS}9nX-=!<}qbH|jP;&d_UDa_WjkKLFcaIY3
z<v*~?CMN0b;-^w}-WX_cfYMF&uG%xy>;6&m!RJz)JntDTJ*?VPa>guKt-k==J$Hp(
zIC$03rMS<u-O%B-tP=BcMLT&jbsVm9M7gh6rHtyL1J1zXZO+!johx=xMCv^hx*av;
z6<zJV=Q64%#u}0di&3Z)H5HX}^2`trm4Mm<VPA{G>8IR41_JUBaCYn_2g+IBOyXPr
zA;z?)mp7kDWx`iz<WX*B814PxGQs4b>Q%fJTHx9%P(b(ORRJ$NUWG(*SVSqwt20%4
zR`$n-fgUcyb2ifq#54FZi4Ems)1{xSaB>zizO=RdxLd&@k)S@s0f>gO23?8Pq%0w~
zgyCCb#r&_kWc6dJgCsjgfKzU#9k>MU#!7H%GU%c6$bDl+U6nPmEbCZpNspHgTz)5u
zwO88J`!)&PU6#X&znDy?@c!%gKtEoC+71>RTt{Q!@W{VgV3y0nEB}sZ-M@`rYMHR+
zK~XSdvnXd2E}+Ch#MZ$rz?qq`<x^`~R%-i<M^Nv3wC7QIFrC-Y>)w%ZrX*###IX4T
z5#i_LEXYjvPE&T40V%HYT~`)(UJ+~3=F_$2CFI%xZy6QW9razE=ITsx=10>B!#0;d
z?!**V@3dc*`Oa!0+m`orEEC%5Y)8fjv%MHD*kqg5Dr3i04fS7UXqI~;3>9+rai`u+
zVKT30|C8?u@hQ_5-h>jZjt^UQDqQVSJ!WvjzMG)NdWdVY$gZ8Gj<V5rvs_}<!Z|1>
zqTI2aEqaZUoxFT$eGsSGS0%OquW?Ou#5vHI>C9GoSNxttlT&LF%A?VriiB4tt+QM>
zZci`G81vPGYpm`It~yN0th_zCWUuIE&wOU={=$Y?Ou+vECKc#0Xu9u#JP7zaAd-a9
zJ_wR%x*ddU2{lA#7)s`zd^)M&lE&|nGT;54p4w+^jET~y3#@piGrDP{cY0}dal<u2
z(TDiB*D@eI<9q1u#zB?*^nY_k2baW}3VQf%W4ayXE6WGR66Wc~dF`Z>JNrp%^TidQ
zXBNEd*3L}3VxPbB-aq*1_P2CUQ2|{9s6s)3vU~f!Bp8-c;`kZUHK|Pz4owU5xRLw%
zJe$1ePdaNwb6U8Uxab>MwSKgBFrE67uSTz)pZ1L3&C<+GZ}Kd5&$9W}`J^5O|B$c?
zOtZc7@oYLWzek3-dWqqcK9Xv78ctje?ljrXXR%Vg_e%FjHs!}Qwbo{qn&@jDoFB<R
zb^<aSFvme$u=3-_*EL#9YK~ac?QTvfPTT3PLu)kFcGs(V!U9-Xq{_`cZVK=guRV08
z`%Wfg?h<80(plzUeZAAcUMDw=a#4psLqS0q<9Ogf@yVmLkHQvz?}mv6SWy6x&jZL<
zbVs2rDS36p;V_a!2bqx7B=}pU@S`yzL&yBDXiJO4@}MNd6qUa`yDY63Z7d(%&{0@w
zXI9gKJ;KuOP>2<2@@<@<*k*2=fuFa=)yH31Bvu7pFiO`I7RKtuPNub2WjE*+^|xu5
zMBhp5h1ehPKB<N&^}~Nq-6>Uc1>*_QDuZwBSmV;01B_SSlZvY(ij!Iwgqb9dI})~i
z=AguAQ+dI&8`t*-PmbqiWOj6!V416r-ONc4Ye7xyOB0RPJgK`AEXvn=)#D%19-P^2
z4g^frZHh(t4PKnnrzH-!+~Pwb9TQvSsqm9OVV%1yZt7heZxXK!*Lv!JPj8z~4f`G~
zm$cr-)as<ovTM$;seq4p1)~dryjQ9?nzFaNDlV2O?C4_bKT<!}?k@{H`d6Ib-8C63
ziPf{D`EfcNoYSiTzaE^e@AWP`yTLv3G3WJ4jyRerW|*E6BPr`!>xNCoyj5m#=A{BT
zvDVAOAGpK3d@Q1fZW?1`O2(pSdpUViY-SVU2{xipgd>m+dOIa7R-H2NJ0-PN40Tk*
zLJ9ht<9&zPH||qx57PwLbZfebw5s_Xwo$zOBH&S#BzsSY%FuFEr*%g_ArD9E7spdO
z0@uW=eM6ttba8J#aSKM@AQ)9$>Xx(>GbJmaUap<FqWQRid$by?*F!qjKN?iOov>aB
zeku@0A3uN>#TZ&#bg#a0V5;YFpUyE)T?JJ^HC25HRbpp|LSN#=Vp2(B5mmhBxlt(T
z*V#=ZTU~Uf3;~)iI9CRTgg!|sHHJ$zr_B7hm8{cdI{b<IM!k-auW4Aj2ZhfxlB|J3
zIo7hKQWde@eXJ4r5mQ1@R?@6XeC!3iw|NsWE3ww9OMhcm7d>q^R=a4LH-qelmY~Z2
z;R4VSwWn!i)hjU0S)kNsCH&N`@1{WpF{ODjRlO<1dSvAjV-JId012@$b$X{LeI?65
z_3b_4#M`pLLxnks8n~V6gJ=V{k++)GQjQi+k1QAh3UB=k(9r!&`%^4Cz9Pp$k(E#?
z#LkHQ`L9XE2JSC|PK;5*Q<U$D2O{2Cvl*FJO~eqzd-~l5X=1!MZQxbfbUA{EV2FfI
z@$*`~#Gt0Cq2Y8(>nGF37322S4sEsO+e4}Ej*>3duCTW6-tnYxdLzL9@s~b3BsI+0
zdst55T9L1`U+mr|-)uUgCF#tm@$?GLHpb8PxRzIZL8VN=b1`>sHtbq?z^#WWgd?JC
z>5LUk;@&@egt+wQ+v7s`9e$Es>|cK%5Mq%GP0kSBFTuj(K>a6ITM}?|`CY;&_==t8
zhj@H{(b(N|p=nW_4eFc?Q0O}y2#%z04=5(lxIW#1KBRs8fYSR1*Cp?bo%A-tyLa`!
zPKTNhhTn)1?jmX0r`PqMANV2jg68D+?0v5j!7P>wm7@#p4~4MbzOZ<hO!zM9!TFQC
zXiNy2_;U6AO1szD?Q-QZbWOq3jS`Lc3lVCb{3qWqlgUrqrydO6XpFPuD7Vb4C<qad
z7i?Kl_5HKqvh<Dbg|Xq6>feb01GlLK5(uy7slPTf4Apmt<!iPN@ZaDS_!^*I_-BYW
zJ4C$VfjJg>`$+Eqk_`B2-JL>bXWSFt9bDwCzdmBv?v6zw5qgW|8jm7j5Ey;}KNy57
zUelBYS5bMde(ACkG8M}YEy>;+|Mo4LK#X!_t;MoxV_!SR!jSYze*R1@f8EQ1fr#n(
z4~wNYBj{_nZ<<;=_{(NpC|F|JrK6F^XsjsVNeQDh6XniV&?UA0R%>?U+LaXhky<zB
z<RKxAodKbV^(Xyz!osFAhej5~V?J0afC0|SVmYOZ8}B>`C1&2<Uv1p^WovYK{!S(n
z7TB2stD2Fm`d6GxERnMqW8BkQCBA*(V${B8y9AVit_?Z=T+cQ}L5_S%e{e%!T1M9U
zFMQlv@qBvoPPvDxF2(pd4HC485?|M!t@}vDzAPM9$CXn^OkYUS_qX$1zyAC8pP&36
zL@nyU>khiQ(aI~CjTPY}>B2qfCy7exqb0F=>9^yg<BQ#dM+?0E$zp^{$B7*X%1jhK
zBpcvVdoAl}wr-}Ox(Tr)%45hlca{(S_?=J&28wZGq*Qx9t*!P1!L03UQ$GkUKt&0n
zZ6G}ZFBXxif|V*TSrN`MNTT>t2kr)<Rh+htyBDzk?EMmMI`UHwUHMp^x_@zfC8$38
zJN2tV^{!<uRD#*+H*!6nb)|;wZ<udvX(owG0lx$m5=3V817!?o`O>ka>a6iE)gadZ
zj5N;EMZSIoiOM6Df{>e0V<D3Zi@;oYIC~cL#GCtoO=i=|oY(5kgHfe&`)8LmMBXdF
z)=3_*4YF6nCakNgOP5c2T=9;MKBqGQyFnzSwZ6UmwWzWB#ZSv%7!UMy5Pw2mU0Ayz
zBpZV#MP!ae_V*h>qV!Tga0SjSFz1mpRcI$b*O33m@h&k7byQ->@l3A!(OZn1F|)2Z
z@AwbL8UDG>VllbV*hZ4YTN7hZju|Bs^=<8{7kG)o5rag~yMsy?^f=%c1o|EDM=Mli
zsVj!?EM_Em&&1IYA8h17GkWe3o30(IL#_)f+4)+rHPSvugL$lkNV8|kEK*+0cKdE3
z=U?<Ze3Jw83Pwf?x_pnv74x2IWxjqKHF(pU(__mVw`D0I|M6Pg(}&b%pb-FCCfKV1
zKN_woV*6%knSU7szo0+`E;$GRK(>bP*uXgm4CPHL5QSlWK1D!LA=5bb19l;|=XnPz
zqYGAr#q35mT;qQf3UzsBU+!W)_`+=5%FT2$P56%ln0n=#I0+i+j3It~Y;2AYa)qd;
zC)XjGV|aEps&fI}S;ezF`yB<?>|6uG*jto1pdE;`NQMgn9(y<;M#F2|+*jO9-=}!9
zbuMo85|#_<?`7ooD1A;Lg5$|G^PzF!n*1{Q`N^XMBJ8$Xbq~ej%6nqcsC_qghgG6@
z<UktNhKQu$EPY>6f=CMA@H-gx?j({lLh1`>#6cp4IPn1g9rPCm9ehn9a6e3FY?4sY
z`<L!E*jJ`&&tEy)-nf5kBlbR@i27Y?#APN`#cFoE=){95CqZzeGtA@kwn=6HULIIR
zb3m|L@fsrSM&iWk>W)gvg}{dj02Uy-BG%1taglH_kS;tMxf#&Z<ZC?Ab42sTh?O&9
zWHK~Y=!NZfSGS_07jPVuUI)S-Q%@vu(={(KKDn?1)`^21@53tHr<7!(3RU@?PvI>=
zq>iXN5#J234tkpF)LB9=jSp&X1ds(bJt*;nk0u5YsRXEDRF>C6aB<?gQ{FV&CvEAS
z=tZ+KZEtwF#a_nHVa%W>^UMk76FT#HpU|(j1$r`Y$iwyhbqU=3{&Q8S(JoFNdJd`T
zkb?`p*Yjh|r#v91fmO2uv~y*PH?o1vX(c|36~~)?p6RmMna`HlPmVmmEI1r?>w4vx
znOhHiQPMflgNjm*Eh@7~SJpF%s;YkUjBX#V9Uck*Q9B3t@zs+$PP&#VDlGmz+;Ul;
zVJCPEp?Qe^n6bvpr{0POsg;*6J@hIK!S&m^?WlQk;?6qTlGMK!B-NKc&By(AyZnBS
zZz}If<!2B%fjtuV+#+@M3R8ASVSIl6`}{D--UHbi5a2=O3tkrBIBiWXfVOfyJUU$c
z?bjtMAmZqQAuskMFXICNrMW~j(dGHj+uh9V+OI?%<1hIJ6-V-tlV3`S<iZX_#AAtx
zAl+F`_dE4}%m@x=ph*FPe8f@_`0Ai~Y+ZG>y*3q=HS}zA`AgZ`<C5y8wq%zZZB`#_
z7a}fLN@Z6paQ$|xHY&5-s9HYv7(gr@KtT&Q5fa{U5I`S`Li|<@NI?q^s*-@=Rq^4<
z8=Kkfmf3g4W&EtDKIdVxe8%vWqaqDH6=&2Tgw<iGT>OCm`wF-`!@-z|rBN08MDk9t
z+|KrL$W{#>d)FP@lr#`W&CeSkV%ZRZV?Qv}fvycUphZMnyqKsr^Tp`5`$IUN-ki?(
zc2F&dQ@qVk(8`Gahw6KStXo!!Sya=9U!UglLv(8$gWy7de_5`)T6+3S5!kAO4WHl1
zn4cU7g~7TL`a-$R2<+W^^+GNE?HbM}D0xp^qkEaCYdqzeMR0;35_b?(mX7t`6avNj
z_5n5_KL0CLLBZ+qs{Y10h-a#GT88v!&@Kwc{?q|(FStA)ym`<C0{lxsov1=q^mM^^
zQd-m8Uq$BL<Evp0jz9ZzGg)C>I=w*deZzbpVoYnG3Itp?{z0@i`RjK#af^9xWUU?M
zX!q|asu2B6F#y*C5E3-}aA@@LspRu;=*4tQ`kl%wC~q5pbzTI8Wr3}!ct>t$49XuB
zH;5{Gt?`5E)6|eQkBB(r*nx3AoDXo{(6V%(-~fI;C~Tlwg|iLBQHaMETlL8gb=crx
z!2*{al<agd`{GXYgyEukN;E?4SEXed$2EQb+0H-_;h?EMYAs7B@C`76*DSD+ff}vO
znsC?2HYEoFI!!>413nw@bLLGrJ-&W9mDddiCtG-SVC`;iJC5viZrXj=bWt=L>CPq~
z4K91D{pl$Fzs<$w>!mwC1y`R=f3dcts*im;Vs{(QdZscWyTJrRfXRr`ckcl^Y~675
zBgi`BZG+z~%qqYV;xS#!xa(F*j>Wl2Hy`Yy_WatrHRwl>J4wO$MTn8*QjlV_;HVpR
zl#^3b1Bi|xpjap!3^Ip6dc3QgV*%n3B=QnD@8Da2>;%a-0p@lG*h8b`KpY28zw9u0
zajD$s!7-zvP9%sDqfgXiA(FvET9a~+8N->4nA5-tMruETP+5VXAUdI3B9$r|O_Tb%
zIvIY-j<sF<YnRc}#USNEoXrp;&@Gy?dx%*+Km2*b{S~~9n;OA=72>z;>02atQgu?f
z-6=|?(L;FlMZ>Q!qPaK)Z3Ow(Q%dL)dy!=gS`~C-COE}FP$wci97q=))H@l`+sgGj
z%mtHRc#a>LnJuIHqfN+~XQO%->A>9W{(X&IhL6iG!xLY{*=}}xa!LFC3`H!2DH^fS
zzpo4dS$cZ2x_ql_!ym;jYDl2@Wr*aze?@2gGy`0qK-E}-KBXW0=W0E6mU0%r1QLQt
zk$vT>=8iO!o}l3UtBQVPq3a6*PKZNmH>{O+A;$oBToCzsde&KbiC(AO?taKSEE!3T
z&;4qxIYocv3YQa?{v|i}g{CR6RLRN70k^*?*D~Gv((U~ze4t7GhG13peDUvl7r!bb
za6$4IjMO3B3JkI2ZVQE9-+8CxVB8&QSeB_yMS2()^IEiQJmxNW&K(0fXuH1jabSb~
z3XZ190flu8>DYS_bV1euvaHY3o(QV&JbWTDDoRVnkQ$2L{g^r2XM+b;2VKmEg{>*K
zE@5z@=r`RuIzhDM=d)|tco~)aVQUg&6OE2VM-^hBgOgLa&O)}LSoy`W<UMSw#7iqD
zq_@cMNjbRq#L^xP)I~H-IBuWaejKS^Jz4!Q-Xa-n2*7%$MIR4t%h=i?h*09WV;|fo
zhjj>EE)BYyIeYFF4r#KSlJ`vLDfC*HmN<SN6Pr!y5r#{$k=@mavVhc}YgMr*OpOGv
z8`o03HNg@l_x5!}nUGTq9H>;mx-}J^JFB;(v+qyHT4U(+e*4X=UFU2u>;QT;rZCZ4
zcr}~$cAQBcA@By&r>YkL3orv4Po<uZMPH4pC#4zU;_pw$m1z8{%^4D`njBYT@~h<^
z3=E?9)g+6oEhbf)1xg4WHud$T4sUmy9r8`iQ6XlJ-{FOIN+&(!L*hB@75P_z4~WC?
zZjPe#P&X+HU-3;nYWCgZ-;4{U&s3FvdnbrG5)CtjA*ZrQ@{&>FR$fIxqVU1t=FZSg
z=f?LBJ`G>@R^prb?7*}UlG|*ncfbL~XjlOz8&ILcgSdI*MjGA@-g_VyR|d7FTV33j
z<VD(XP*g%QP_QAdqo={R6ONrIT&L|7je(6#C^w(t_ebtx(S<j~5rPx2;C=VoXbh8=
z(EdZ*a)9X5`0g8IFWZn_ft)<JWj||fNrJElM95%o3qrywxy{dz8V%(}WtHqbPEJR&
z_|v#;jriz)qz?pq1a;`Tuv%@ctJCe-C%7X<6HFUyNrH99*Oq>g6)@l95q!d&nwN~1
z2{{6gCbB5{&g(qG406rTiUV>9Cg4owI%}R}Knh}dLJ7#MQneZU+CzT-_T!GeFHI)O
zSCp82sPE=uL`?=x);l~^9diL+XAn-L{P{7%0=m_wxh#B4U=0hwO%Rr0TTM~a<GWx9
z&wh@@xAUOWSwiF9#>v3ItNh##UkvUU+XTgd)TL_PejLh+=hI9i6~#Qw>u+<qIG^TT
z&)r!a5RaE##w-%Q_Bcz0hJAUu-?U<-&Ue;BrN+w$D!gC=<t3xd+^M+f4W8D|99FA5
zijqGzL?=_Hnv?!j#44{Vj(b7RM9hm@pAb?A=2B?E3CALB358!rPcV<=hEb&0wlddi
zr*|RF4O}te$t&n#34p(#-Yge)wd=#rNBzjhBG)KFPBM2;D_2i_VgFg=72;5UQ4OiQ
zti)g+3FS4^^I8Kc=*r5uJw&xCF<c4$L(nY2Rsv3|Q;sz}b;KrujZZteUNyyArAn%O
zs7yx1VurQ%i;O~J0p3+BE9N6XY9@bMJSY=hNJ17PH58cOJRvd6%}U&hZk*V*cRr7{
z0)t_l-4o`$*Hk#2Ms9BpOaGz(DpjwX{;YhqQM1JI>Ri}@^BIht;0f~<nhn;C?>B8*
zcU{;y0Q(rp1QQs=6{HnZRS~su<g?AyraOL0N=iZ$fLcu*JwLGWw6O|bd6rkn=BE6M
z;ha0L(#PZza&)b<j5J`xG8+_nV0a3~-_R<lRBv~c%j)P*Ayw<Mng`R+Pdv@tX$sGA
z)`2Ary0!4JHE`<k81_<SA_Vgtc(ejq=6nWgXU{)1vzeD;{WRUeuu;#vJ#0{L<bj3X
z@ahzvaqrGsC?a8@fh{=FoE`2RbjR9MK?xDhDh*~SDZvtQ!ymb2a}skyi403qym$j;
zqN!3S7My=Lue$ANhvnykN_);(00xv$oO3~J*{bs5;2+x%I~N@@L&J-5!_Y;)Kb(<x
z`&mYQY+>u6E6Z;h-mM$7fD7~w9jo!C6bW!M{uGoOhBRKNpFuUAKOk18%?7TEeIULA
zjs8mA>8Hsu;5R_X4tyjCOzjux{70~atB#|`(t&8|OH<eAW$TQ37dCkvhJ+UeKPcq0
zn6PZCQy?=Hw8YldKSkKAo<NsTpjI;U=@U4OJ|0Os0|PrSIEm`4Sn!xRkv(s1!59Dv
zgyy6A=7qOWLSNUGu4$Ru*dTLMP?Lk$lvi-Wu@=$Y!_9$Be8yurHRSLRj6}7YeN#ba
zhd4Q@tyAR;TbMGK@;`7(@NlATc$NR-3%>cL^})TLSE{d9*Lv@8Rx{eF3I0Y5n2U;_
zL$~F)e;>BKnf`1Q9xx+8?C2+~5x=$BS-ssF_|RZ03a-RH<|QZm1W3K@Y^VAL(b4ta
zM9=LUAZ8zsSaj}soe~*?LfpybcRk_Q{<hSgV$7Lz)l=u(E#!@`A9WiC7#*}O@2F4_
zM-)H4zq3WA7)co1Kkn1chbh~RT9@VG74GO?O;Nd2m16+}5&QjL215IDm*BR*gIMqV
zxgM0f@OUE;HYB?47t#l-^GFKT1VCM@&KeA{61lm{{(5f0Naf@zGUnn~J9V4PkdPV&
z(kMV&3#mikFL#$^4s0u-WdM7ytt|&c8{E0@;OnI$Y1kUTtq+zo*u}xg3o(9CZS&*Y
zvnhj18k#!arVBP>T}<v(UhV6n7nw;hbM|;;#Wf~Hub6@+&C3U8a6nn2!G;7J0-zDz
zD`KdO2d@{XBOD#e6(#N9L9}cE8v!H^JjX(nSVHiIIP5(-(Iy(N>b&~8%U?q9FYvR#
z6aqkm{(S#o%PLNQb07@yBe*Vr_!S!t1q#)%jW19TB5Ll(!iP7(IE?b4yM3?0=aEm$
zMg&F;K5I5ur=k|0hiw<E?+c+@AFt7DrD!$J|B0AXDH#J>@R5;rr$NC^IAfX*`t2aT
ztKfcDLhnQ>G)cHZ`~N_;4FstNPp%h#wF2-0(Mm&|50(SyBJbZQg{Bj5F7qm(puKh^
zeIAnG0FDEoU`|gqC^?ZzFoAZc+IE^Q^{El5<Oubv{Cvds`^pvA?f$cDR)9TXc?VQ)
zBbL+7O7Sw;Q0gO%^{AE|5*+|8ZHV0w(5+hFIcdH*Jl}b?W#s#3Yw-Wobms9;wp|>r
z$ev^=k+rdnEqi5Oi|jR+h(=n-R%96(Ju0%)WZy}$4OvEy$zDmeNQ>8aB$dZrW)MTj
zd+zbR{`L7VbKlo>opXNYT;JdG^KLIVghMIwdK|^6;DV~k-zqd&R{(}jgJf^vv&kqp
z!O`B*h8uKKB)x_*yTfyzxdSL`qW`$tsw3!dfQ=#i9K<Uf`jkL%$^%bD|L_)=k^|1;
zHNc@E*69$}3sx~57wtMRT(3->`d3kSGEoN-p^={mY1LjHc^$wcszy1<D+Zi{)D6rG
zzlJmc4+;nM1k=H}%vVQYsuC`>L#&ZakpeV12@SOz0yzSIAB7@@WehG5zAiy`*|kch
zs&JiVeM~QrCyy-?=rrh8>lL)6`B<8|`cdRsYD_!I@)c8_I@8^8i0dvaPg$m02{>$x
z@Nx9c05=B}XSU1SVS0KR24C*NnpSq^x~zT>#;&k#Zk4Rx<!%Q2XhD{nNLqvzn7X5i
zsO)gr5pdY;N5a4r4E8IKhP_YceZ2li3@oL$nJ9?E31|y|@&LW|v3!~tmu+dC`XR+$
zbwCh3f$GahvgYD(uwsPW`OR=_%dTHJ|H6k{R*7Pvj=i^cQl+Xo4-TGKqcHyL=_v7C
z!z$B+`~w1}0IrA_^umJ(K3Dzgb1!#hPdRF74ZJa93k#(XF2wXSm3*wk8vq0l9c93Y
z1wemi@(KvamXqV@-`x1bgCH@8NzAjII;}x@HfAop55DPIhbrM^MRjXWR~H9d8fV;e
zhXpE5L`qS(hz6JTk%LlaEHVYME<PT%(A;KR2tGX_LuFBJ>zAC@adp9#j=Z7!qY5+g
zQE3%iQNeWLYP&!bG!E!@#q?X;9^C}MiLbV+!X1FTFW_6ipFyl8fT?G$=CrMeZu4Ts
z0jn5(i+iNN%nlJJ#L+AG7P}3L-*RyyKPSN`9f?zb2t9ge60XJpHO_CH;nF`pI5ZTC
z6IN1IhO5@VN+^MF+Npz;$lJOXs?r8?{ad-gCq&vW>TT@k&08Afd}a~*GOO#LC#~a%
zOiG5~ruzJGM!lUgMyTLjEF4+(-lS$~fSgva0Mif-!5ctw3EL1(>!<<6k&Nw?!049c
z=ll_}&Qd%oKnMkZ;QoZWfc^ma8<?TzgM$Un4K1uiVuIFQjpmRR`Dze3MiV$Fzy@f#
zbwYLaiH5iAW!dn#aY|Ugq`t~!)gsC?F(jZf?}cBZb$a|M!Ey7*shciyl{~?`1D~mh
zeGd9A>7}M28Ua4SY|u3a79Py2LN?hRyBE%5N@P?)Fr>F8_j%gOlqRqE`|mdnDS%7*
zul*@OP>v#Ad2q`frZIGRcTGIYo`{|t>7H7wRH~+@PzbLK-L}{#pDs=J;b(Fv>C!uz
zu9fn*f62Hk)$)Q-McAuOf77iK_Vd$KSGHkx;Ac_-#wKAQmXVO<0+V!F2b{u^k*Y_l
z2gsJ-LQxHb+2-G~6**4+T*NjY(t*?q|C`Cp0Z0I}1^}Q1xnRdk@ci*3P;tRfPTK~<
zW3fLg^k~FSrJ`1cw>W{^)ctb$=fA{>X~^#pYr0iLZ^@!9BuM;;&X-uBPnB-vepD?e
zDJo(~aJpIeA6ppjfnIqJoG*~kAUruhYr>O}c!T+ImHA{)mL%VZux#1@qiON;II`HG
zKLN*AB=AgNPjN#*+&NxYRCLC^`JWy)3<d(SNuklUf&!H<lpio1BoVpA{<--^%Gxiz
z$wyf91$JUR<Lv$LcTu8}^NB&ap*c~_D?~T9hAyM?w^)?fA$=%qZEa0{9;FKkC7_bv
z&J?^o2$cYa2Jj{DzCkIVhv^YFKCG~Sc7!`%_Hc9y%8PG-M>I9>jL|Op`#;!57C8<p
zX7^5@M?9=QLTTv4)so>n)<d?24+tlxnY05oDFTG6$;l}fN~NjTBl>jgJ&Gg2M$XF*
zOU_cN_=dT(|FZA^+tI<0_$vDY5d2^V!EQuuwWm7>7L$1kn>l=L-1wW{ZG7P<_|rfN
z593iF38#rVARPp%)`I!szo4&y6bFQleqdSxf(<gzg$j>NWF%T8qx}dE1Thd$;G!gm
zZeY#>MkXM4Lh^?I#Q>5I9gBdrW$jwC#N}UjZ|X`urY*vv^x0Pu@0B}uuX3N<7x#M^
zZ_v7-2FWdS0T7!Y$j!e6LZYg;TMg7hD3+Gi5Z9MY0>U^2UUh!sX0@&iA|-Tb_Vu`9
z9VEYYL-)WgG&EG^8pv%V!Q1ksVwyH}<VNbHI$Yf_+O<*8T;XDjy4CJs30>LZN7XF+
z&u{w2xW=j}v8lGMN&~<RnjBE{$ShbibhQln0O130m5}i+PWdRv-Q{PBd}JkXKF*)@
z<Fq43Q0BmA8OlBMUxPG;vm-j4sK`FJ_~-qi4YgG=&B6;_C<zM<NO*M6w&?JzO>Sz~
z$WkrkSH9fF|JU-L?L&n&yZ-w(eSH(8s&D%oF*n)`TqqIiX1sx+3GWEF%wmUw-SWF#
zZJ?d*SDmx`8cEfB&dhfZ77{!@&y{ezVo{tmPcBD=bl3vCa&A)Znwf_OUx?+C&HXF-
z2OYBnDW(1&g|7(4VZ?VbzX4Q$R>c5dhx+`-jUZMWgQuokTV!Joq_Fp9h$oDgxpjk8
zH&FIE!7BusMtmXF9PSwz<0ptq9}-mGe^4T4==*xwBA-Kr7kW#wj%cp+Y_E(=*X;3v
zt%(BcyUHc7$ICA|L7cx)moLw3E28BJ?J*c%9N!8>`ni}tubAGQLeX^}%rAmes}w8l
zKu-j>`5QT$p@xk>AL%{6?@LXa+DzI$W@d`>kU8{jB}ZV#4h{uNGvhOScl?07?VuX(
z_L;cd5s?n4mE_QsLe|4c4Cb@H4q(0#%Q6%=Ue&*z^)xO^B7wWDJ1pP_@1{neQi!Gt
zGjsDZRi===G!5D8WBsNk7n1-}88NtR<3X6hYVm&{$w5?OJ~n7^gLAf&AlFZLXvSfQ
z%u<ctTj=h&eXjNeR><QB0Wbs@4O0~rKiRTX`tmk@$Qzq6TIk<$9+A1Ui>o*wAUt77
z*r>4Q0;a#Xt5}3wf|}nYzMFXfyf(lVUQ$1QD>doi8yPS~h>_vsRFc%P5>_d~@7Qf`
zWOeE!C#QywC*ixKWzs`8{!2x1<=G?bXLozX2|HU<59kgken1=SLc|W0d%uEA`n(>J
z`LDZ`sE$H2)S}KiEq19vFD^1#v_j{F@ytlW*|#aiwmnCOa(RYhYN$%0{;RL9;y_2L
zSixA2<-MEHmT(>&=$@>D<01~SxmzF&+ZSDb;H>7R^vR4(<HBQ=@{JC<2Yu#UWcGvp
z2R-eD4SW*Bn{Pb`TdIXZ1JvVPZ@e0>pWFDUv$a2}LLy<%F??0daFesGdEpd6{P(d>
zV`~#m#`PQqrNr^}&NV<8Tbr7;n>M->GK;&U$MUeZAc+oa8ikF4GjuSbOmD0#24MRt
z{pFLzT@%#mj^8fNEH3>1^wMF}fK6VY-do1l9|M(YZgU6pUXSMBr1DRKm(H^nDVql#
zb2~I`h<I5$RV=@(vZI<IYdi_?)8Nqwh8YQXvWZ{f2RrZuqEu&`UmAUun>4}Eh>6Y8
zZKI+svWvBLW|zDl8i_4^f7_>F9n;G1jw4)a#j8H&vP^!+hbb1{p64NvfW`&36q&1z
z{5}_=D|?^)U9ScuHtu;?I3cSt>**nim}T<74-wPbrmL>nya(*;?1B#8VBy!jLS&6m
znC&vKV!prBxo$3#r`E%$oL-=4>Ui-0YS4?E^+6&ekakH#cIJ$Ta(Urd8X@g+9X7t>
z`-6TdJv=km0fiZ&6|}?<ejhk=Y!;w6c5r3JcT?}H1qW~JVZ80OxL{pvJ!Z4-Szm6Y
zclK+6YyG+Uw|l2d9B5y_!xNu2@mhVA64pxJK3mIjovuMzlhX&YGBrVLCmYRNPl@J<
z<!Q3cS54aBQ!=#$Wal?LbB<wm*nAWg7Je~Fmg){Yd|h79)8D%)b-;ug#Qb2v=i~s0
zWnf?n>NnDbwhMm9tzLltc3O{7K6S+};Hh3}qHM#_kR;kh8!dJJNxzOA*yM$w^|gPT
z+t{?VQC(@MxHO{EQ4NB{lk1T@%&Y_buG1$wh7=!VVzNic{@H=Gb=syrt$Cf-y@0Z4
zFP(lK=U4daX=TlFV6EdnuQW7t+rct`5{S?3>KT;>;Q5;{Li4ks`dpF&RpYy;37`0_
zt_{@Z46~V>727HtXWW;3_Xme`$vAGi;A8Pu|FausWn7<Iu$uD8an`J~w>$2F99<jl
zpcFdg1pu%2#aGI8DnVZx#J@@ZaJ4HwaZq}t(*VtUpP3~JWPMIo^*%>ioIsu6SI5-)
zPbecRD^~W~zm`|te;IZU?<YrOg-P)a>vqnjCT~PJ)~9Z{oYsW4<ATn*PNhnIX67Rm
zC-$qM{il_?tU~+q{))y*Hj2wYQ4`YiUem_cCgR?9H2H|0ZB*Iy)E;xJ%X8PUui7<S
zuZ_;8)0<}t)do%;38Tne-ESSaWZ<&%jY8kw{z*<rLiTfKL~=yDd9?kha&rq|1Mz2P
zw0c>TU6;M4q(~NP_P-z2f6<0ZJ;2uz_$awI$t!+A#kkCp>7RFP;k!9ZJb(w<$eb)E
z5iw4L!Ui$}v~!g^oRw)-BcoXoX*`^i(fgOij+S~T?T6bLm2yM0u}!rX(%3S_r=l`Z
z4Xxsj-s%lJ!zT5b|27M84j3E1EJ1cYGAI9i&SUF1<ONMpEO++2{u$3a;321ma2=+X
z4<|G|Q$aN`#f#J2iT+$)kMSc24h}D@ij7vLEAduWa`VImhPp!D2@=_al#9OBIi<z}
zQGIiB69!Vm^zEnz{}<MayhUKD!gJn=`s9$;MN10|h=dXzzrSacF@}oJ=*IG*IsBk`
z5VYRWvk#nDb20^&`*LtH0Ogo)toiaXoX5&r2rRMzw999%Dz3gAGt@)D*#HUMKmXYA
z=c9oZCJa1vkVMyRS8whFTPe`$x8%6(QuFSg;)u3S>YaeLAk%pP?o%NNf!bwZHZYp>
zW#Fxt0SAV2U~~ZllUf(w>YT%RASsT~4@dv_XvqxQ;p?{OG-xW(ZUo)wOvMSO`MFEK
zFlc$5i%hzqEXzpfo>9)6E^=arC*n`jegtwVh>Hu@aOR(HvPWunc@wQ<)WYA@H}69N
z416xz($lQNrK!y3U|P#VPi|t(T`*jBloy0HRt4r?Hp1C$-ICoUwq2^;i^G*vT|G7@
z%R$_k<mABT^JMP$T4Zao{W;$+2Uu~6%mblksTPKs5;~-l%ekX#WNPo8fc^LUgb*uE
zm-%}rTL7&Hl4=^dk|SEu_y5Bz2s;b`*clqOfu0628yVvJbkac(EL-87g4nnnvun4&
XV7}xr*2Pt72mDx?+nQCGoR9u5W*ufV
diff --git a/doc/guides/sample_app_ug/img/vhost_net_arch.png b/doc/guides/sample_app_ug/img/vhost_net_arch.png
deleted file mode 100644
index 3008feef1f2d93f0419be339fc0717f115180048..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 154920
zcmXt91yEdFvxGo!*TvnP;2Io)h2ZYN-95Owy9Rd)?oN>41X$dHyTiMDuYRg-QM+~b
z$~k9ddb<0Be^rn|M!-jafPg@jkrw|30Rg!L99?iQz&EVU*kIrvw3Dce3LNm~4QCPt
ze1^A|)^vh^KpA*HAd?wT2p}LxA!NiwRNS+UJH3*0)m`?UGObR06gp+;Wq$rL9c{KA
zNA)N9K?1`3&0t_l!%?>uavEP0ibo7}VB&lbFZ&qd9ID{hKhct^FiQ!2c>t|1orlSN
zk0Q4fDu>j2@4xel5l^$Z@~*w8oX_m6Y463js&h){XM%3Px7H%QT-|czr{e~Fvop@c
ztgFm*EacDPJlS7WA;gQkPdbM|%FJhZfhgZ`IbOs1tc3Fs$lYB^L-w`e?k##U7p#6C
z@^9o~i+U79Y+YO=r`RzN_YSEd2Z(TXXzJ8_2q|<I5XBW0v>hFA!5Y7)?X-rFfynrb
z!_1@m0}}gdFJ!vtL_i!AZ>t++F@b8JIu+aS59rcu?~r(V@36rmcb@O@wK4SOj-EC9
zm7)%q4DKX2cu+>4`*+WaUxaX@^*<)r?IeW84!!9ihTowWTOXlC@SEb3&9GNa@<yR|
z+-YPcJyqhbpzs}R$ceEEN-~B~MQQxuDI+)Phf}NM(<b`?%R-DjXfR?<9t1gW<Z$7#
z$6kq!w9zp<bTQ6A36m9oDJ4oYxHZ4s(VxK)6-p~_6ZZvKrvG$)xAc2j5e}~V90U00
z623;>W^aTMG)7`jc+?MciFvYwya5M6d=&J-Bn7#w;}IP~yKO=9{-)k1d)^LmS}q0O
zYtCkSdbG1n9B^Uz&~k}ScI->z^t~yrep{nQGm-Oj?{R>numZiB(wvIAdFM58lvFgV
zs>(MGd@x}kEeMN0lEfuZf_pANO9D#;E405tN?L?;a3fnv1r551lvxi2l8rfPz2JvP
z7HLkz6)|HjHQp9c#+{L6UPe9-S|AzlAiB}=X#2gOEU2gu63FcgLq<+&J-c4opJq5{
zW+;Q};QXP2?>K&Vvq-2r7eWg2hID->%$1}tH8^pOr(}jPpf|W~c1#>lm_t<JcF=v#
zA**wF&elPIgQ|(bWX}754+Np_nb7vx{TscEf+hBhTWi0I=gj0uBrOl4$MMUEy(^JQ
z2#zb~Cbrvh_;PM8NX#K3UMuAOd8>a;tTJyB5?>Mwl60mlMYl$g{Ky$m8Vd5fm1O&O
zUX3d+ARQwqM!R%yO&iV@raUKJXcfddrSy%PSZpPPkRZx7{#Kdn{yVX<LKM~oFBtTk
z#a;^&`VrmIgpo+EM^(K$I9Tk8P10y!P=TzE{l+Q<D_;{me5h$xRROo-&fy6LEz5~g
zX1K?7x;H(1bXM9(>_Dlr@Q?YW{@V)4#mm{-r^3+Kf+oEYr*jnhPd+`$lDf)_DN$Kb
z29#_UQV`L9Iy+F<ip*L6DB3{??OFBn?rBIfhGRw{5XVvlwy2?KKo$6KG{IBT43sj!
zQi&EA>c>#J4-Mt9VQJhUQ`**`FXF0VK-TnD-0(0q|BloqL>bwS@%i{Ijt?X@5#=<Y
zU9;oncXpTNcasbf)#?YOH=nb9Hmaf;XRqW8!wPZ5zk@KX#tyj4pd5wwSX4l12I7~b
zFG<@-uRKGHNm@ABj0;syY4+#w+S!ty^+&6P^+~VwCn1z})l&La^cb23H<hW%I5S@A
zI*^r84aoR>GJc<zQ(!@BrbFgv4C2EiNTqM47@5~BaWTN(IpD_d`BM`TcC5O&$qNMK
z4OEfLn0vK}UhTq`4XVLc)fsOj3IriBacRfc8{#v;Z695-xuaxH3aVf5+gyYEvDks=
zQ00^v`QUtT;*vlJ=6bEH;C881Ah9q)&%*F4uHYUhR<J#kTi;N6Rtv6+M|7^Gr7BuX
z0p9^$WNT6MgFzLOSU>p5V#=q&t}Y32$dOd2Y2k3kfd60vDTE#?zE;}0UPd$rapHRj
zu6{LFh2}ue#n*WDOSQO$O18NKO396Hmja+N^2gNe3n8t_fZ=alBttw_Os#f5ptn++
zdMi{^>jlJ&;k3lhCqvDR2tReYX;=`Yvf&srGEZGd2C#9$+z?~yJL-6wxZrNrE`8o%
zldJi~wUV#5?UuUHIUGqNKZ~;rk7iu582FKOh?SjPG{v+RLgDVEW-~-)HVF*QsijTG
zipVse{u0c0kQbQyp_j?(1wJV&;@`|j*##MI_)^@$n7xUEgfOuD%%eo<HPQXWDJ*0K
z1ruiZrza9TbW80D$lZe&m0gedMJdKF5cJxWRGGEs38K<bc{S=%*k}x}YC>#Sc*TRR
zrtlzojPdL|T~GMJ(0j}Bz!c#k_H%f~hY`Wo1o?<)Hv(;DQEVlY3-*WQdbd#~*8EA3
zWVlveqY%Pl*!^lVAFiH$;IA~3ke9rM=>AI&8BS0ZlNlM@82lkm8(Be~f3m~75I(N|
z_FX|mkUWG*yV?Hw;Eyy(E|^fp2x`~c+&s+Xh#AJHlrkhpdzZh#>-&lbtP@Hd3})$E
zsKN(yQW|wJF~N)-6E2$mjejA=O9yKq&l{D&dz4&*JZLrUX9o@w2BqS7BX^g#4Apx!
z>dc0D1Q{QOKbfw-W_5SEQ9PkWZwnAk;F5jlzKKuf$N(;F7aY<T7PNX)_a|%WO?axH
z{P`)i67}h>_G<p+`9WWxPkPZ~hjM4qN$&BG4H?FTru(_OGuhN-ic}s%u)X+pipGy(
ziZmCj__l>W?7PRR|2llKqp7fFQbgUqpF`{ycf{QBgTPh;^26H&YI8!SsolYDjttMN
zME`C4E}rI0s3MWE<<|@U_^N<59;KvkOzE)<LkmAbJxq8w;pa`%hm-YJo7>a1@dAlR
za&C{uJiVn~b|kpE&gi+X*Cm?WzCP)p$oVL<7kck&I&_bBfwG7ifrTfQ57!c`9C+6t
z{4IGYh;dxHj?zdJq{f8vv%>a%cLgl3uRpej+k6#B;+>mZv1ot#V5QOEiB9s6dgS4~
zjnefNc*2H2>mICS`4D>ck~W;{iEfMpYaOivts2S6@FQ+ClF$TZe_~&Z<Ppuy&yOH9
zmXmcTVJRpW5yx?2(CXlnT_YO060FDW2C**?M+$>c;l3|31FeI(FA7f6xJ-wOf*J}*
zNNW9{O6BGOms$}r@<W^r%Ox+MZnSZsmpY79NGRr4A*1H<6z5_Go?Wcs>>ecaw&zl<
zAyhiCv9oid>XTMgm6g{)`50Zz$-ElL(x{$dWrGb{hQ3v2X+r_cUI>kHQNkBJllorc
zdad<EEwwe@`Pp3en643mjv?QQecojU#apm7F$8~_P$_*Tx82@us{WqfnTKNCbrI*k
zZx1>e3RZkIqzR-TMqV{1apVG=iu_e^(j8(kG~STyyx*giRxG09PRv8_RajJNh@r(-
zwl_k^NU3RFH<N);4faaH6_a@1N5A4m5AnP;dIYHt<Jv!~4m<dTfqM-@_7_{cA0X;&
z(bs*L=ZYnf;ZV%hI@tN(deRPuaBtGWBOj*i6*Om!v+EsYgvq`U3DBPjyy$XH>dz_i
zmA7O}OJj&54Z(g$Rt?0JkZ0URw@=t&+tDkP;&NuZivB6kz>@*7i(6&0-bkna@x!-^
zS%hY+Gd1oaIHNud3r-3LJkH$V8&Qv#q0RNA0$LH@f;Qg%@Y^F3=?EuKT5i4LJO=p6
z|7c`3P+8!q?6Y(|nI8B?V1jKVJ9F!JW5-H0dg}-;Xf$eJXNY$0Ussnynb6;=MP<%!
zn6i1))!IJYJl%_4cJ=T>CQsSc_0#B2X)ErJhb0~d`Jn~=f)Ag#HzzG#Ff8Ols3Zm`
z>bB6ZqqHy*E-4%=rKfW%PFb`Hctmm1Ye_AY26hzuUMe54DCk7erZ+pq5*<QtkR2|l
zA`fK^cY4@}SHO9C`jbnW#vB<^nw~NHtC0PFB|5LG2=+*F)``TnAh+2^loA1qHVp+m
zlR#OxyVDQx;2vVdgM)HCy_Rhx^(hNAF$X+X?^rvu6z@>)0bh)xk~I)`6EL3!6&uo5
zMxOA24(v4-A|r2Tp!m&(bKKqt+4U%AI-!^fV<tmYH_SD}j?xExsY#8fY)Xdnz>y5w
zG4bmd#Xm|Ey}`B38|DqX^lRryiS4g)91NfSh4tBEf%S9tOCPz0oa^*T{pxqy$W~`g
zcRkOx9`m!x;*uDlKUFrF9*|94*^4Q%7EkilGiGj_gxK)!kJ-1f!R%l53^X<~TF}QV
zw$^qv`3GxQx3@53PE}2Z1Y-)`FFZVqnen9|qM_&b+-i1RWuIZm(w;tT`O;Fy?)u?>
z5f+a$vrO^&ToM*=h$zmh9tk3o56&U3{m|}uTBKJqYt1#9U6}6SdLpEd<7Ih+{{jUy
zXUQ2wSIz(**epE_gF}`OIKJP^T1z1nYk#l-+19>U5Xo$Eu{F38|ByjB_DnV&$zr>^
z6px;u5ljH5nQt;YbT;l4dqu3znpb6$nFJdh(QwqB8O=kHoTJSx%a7TrC9BO@%|sS`
z{(xy^yVBVbZc<_3EN1~t6Ox8#tX`Q(DYL?ceS|x7HDDvlt3=yOuwdoUuiCH9nKCcn
z>L4)aS|JJkd&}x!wSGc&P@aFbaV+KVrjX?>?=4i$BIbcmB%>uHs|=qSOoT6P^+zI&
zvJzJ?{@fndaB~#x%&if_@^v|W@9A^U>YRNOT7di|43x}}JqaNs*O_316*FagQt_dY
zVsVr;c=)NN^wV7C%%U;x9>EWz%MCcBM={1*mhH<dw(QU^ABNa%AH}Mw_CRdbz7M4Q
zw?xMG1<8zBX{>&+wUJTc`kPyk>yvt@ZylyIorwE&-iIG5KU)Tg2T|%_A2AuV)edbm
zib#fldSj`>8YqM8<_@gQT&x~m)YFel>*xoQrXeh>I@wc|qJ5!1RwXVr<`8Ga!*CT#
zeNll8wH#@9`E>FyM6YLs<69u5!Duxq*p;)$t@+yEXkw%1?zQwZV4MS*@exEds=u<`
zO-E$u5FA*&FxrQSpq;+h9)1{8@A{CnqZbojyCtOCVvcS#$saq;(q8%Eo0Slc9e|%u
z6O=`bcO4`nP&w<TPfaby6-Vj-8e!$dk(z+HJ(H%O7y$)D^g>AuId-51JT4$8=xU?f
zW|_X|B(q3%n(25gH`!$owa0GzxKG+3c@PuW)W4ncgvR!Fh~(FB*H^#LBI3;P@S!}#
z#;}8b2VyxOnT6PUh85tV_?PEl@O>x?kwn74c4sIyTOi*#)UHwV{&n*uVor4Bh2JoN
zRy=(yy&uoQpdu$HEY4K(tM)}zq`JFd;w~LcLJ0L9O+`(GUO^MrsaSu%NuQXK``q9y
zel(0lMoNy;<|s}sYW~Rrlb#?9iI`v_k)q*q7GlFQhrFVOQ2KuQKCjHoW4Si5JwLqV
zR@33eu>?b#5s&vhnj6@|OxvW8lPt28nXZ6*Y^Az0MBBDCc$~SNqxchHgwd`u2YmXn
zxM2b%M<$-6=;LrJ;l5~T6RX@kX~7?J4rz?Yx?-fk6san*lOTAgr@u`M8m_Mhm5?;&
zFC-@hPZbn9_!?De0q*(bGryCdU=3d}4$h#Ap-XbW#5}%O^^B!#!7q(Dy1}gK@oFaI
zElr|1rj%SFQN0!h7*n2zUf<+eXo~TB+@VCb%!>SNc0WT&N=n{OtUphTF%sf1YK&Ct
zwvT05alWBxT{j`=7>0G;@$8q*Tkan9v3i_YZ~=iAz}9TkvJz{$Sgl*B)fCbFJl?(2
zdFI1{h{I_9Ns9^9f&EMw507_DSy6Bz_jxoIz;jA_Q@K+m!Y>wTHF^NZU?~^zDH^#^
za~ca4VTpM;-|Sy?TlZOYU9quV@5*+X<b_qG8n1UJ4$imPP333YYV|kz@UN3*{4x>a
zWb3cZ)Ko07N02PDChluWTz$HuO(3mhMm)Bbbtfm=0=r&isa)l7&Ao22kGz>~6~Pf1
zdhdQGNPXB;KEWB18a@DB@UvS^+-|7MH?e;oSE3TJ&x}p9LDEm6F=_(o;}1_~C%gXg
zq4tvwI><&$&32$|N{|_DwQ)n&52)r)8rPnQ$PIahc2I|J9EB7qiGQfx4+=rt1ez<T
z;Nd_;=+qyPYc2zU7XhA-^0gW>o~V3WF_vLzyl{dE-yMk63hu@33ms!sobj<RttyN;
zl(YwEs#evzb}XhCC#9hfs|byA_Mdn4U#Ymk?i6R<`~2JOUosY`IjgItt=d!h*v>Sl
z_#te-=J8J12Oc<qbK>=X2F|VLDXNGU{h^*bHiL2RZ+~@9usrv%u(Gm#&L}=!stYt7
zPx-U5LU1)%WrMxK(lOQ7p6$-8suJzU^Qu<bF6NrSPunpw7>Roo>USTSD9M5#s_?l(
zJ-XKO=HE<@CrMj(T0@?g8lD73tQM8La)%R#lN3d0ThDm{RhqhF|IOu>s+4-8!EZB-
zk`0GEz8x|trgisX0g?_fNh;;BYP?){=L(~lyu&d>`!vGKlXXqwrHft~0v%}{fq{fV
zd}GZvPZk`aHddp*W58S&?d6gy9W^^_4A!QbP0GeZa;TFUP}-asv4Xdt?$@L4Np0{Y
zPM%<8Mfve^L#TWv7v$HPMLc5S??An|zP%+U7r5UDtkmnoKNDo>erCtjv4@0$g6ep_
z951C86B9#1Whwae3w58c-R*2|*(}#|cPu$7CIr@IB7^h#`Z{S?ZO|VI_8m~a|5`Sc
z+4N6=1fxdn53Q<&X7K5nm;2$*6Apaj>b8IMDU6x{<(DHAu}P?MDW=w|E%6r@4meC&
z1FicxvYmP?u)~bwJf7FIuqcFif6VQHsc5!>*@Rr}^y2oqI~~*-PoR<o5fX;U<4wYy
z`ohls*y1`lIoVy%wzJ8MQ){<YrEx(Emx$Lqz7cPJwmSVZMl0ExC8I`*?_fDH-<*7v
zwexA#y_=6<Tt^ONMjXyDIC_<JA;^PMgM;HovT<I-PZ`Ck$%l%)#JRlqeL?~!^F2{0
z?1=J-o*v0?B5mjnBky?rs7j;Y3&|nyODKpyS8nQac7DEx`<c7#FzwSF$pCM(ILV?b
zuZkh#l#H^WZ};v<Ji4Q52V(l7zmTlDpw4<R!)0>Az2>5&TDNDc#f2+8ouAb>Luy~5
z&-Ua+6lZO4iE5B+d)q&n9qoS4m@}U<uT{^ZsxUYpTWsL^UEn^9ND1{x;OdH3scpZU
z`3ZMl5Oj+a{@Fm(zyHwv)ZRV*cysh{_V&_k9JLujV7n1W@(clVI&4EAV&8j1+wK=v
zp@&h$dY2=$1j^0s=hU}8VC=PdLsEV{4qz(UPYK?g5Boh2uR4x1JwH#q32?7DWA^v=
z?>dyzYyYw}Jp*@oUl)>?jwTGw9l3}H5!iL0|EQ~Diy`FgD-pV(b3I)heUGK{QAOW`
z-SO1fl@;yk28V6Q)7JeJM%}iki;D{`#rE?aZtJC<^|zPxPdq%p8(p%rKK`q~1A&Uh
znol>5B@LxJ?`(KI(dn*knUb4sJ;l*`4a~pGV`L7*FexvUxvSuZ6({v8nie6AL(ca!
z4l1!m4&pwmn>TeZc-J5HUYH1|K;Bai#U{3AQLho&xjNi~bXbx4uNcc>wzCRPQQ4D<
zbviEPi*#AJ=m~{vrJZWEt_^QME+9g^Wbw9h`qHa8pHfrR&zQa1vbKz1I^*pKBrO;i
z4DrnoW!TXS-UaHg8-w9~%3+TVsG7c0W8>>v1l$_5=BN`h?+(eFMQM)R=cY9PwrpXe
zMER!%iN4x#iK_hdT*Bc_<L1o^3*g2V8`$isEjJzO9nR^%XJ}Z5%c^6`E;ya@8h#(g
zuKPij%M!mwsvNIVUSM#)c{(ppdmo5#U;V47xg2AtIR~Q1ew^u-{oR_|6;MuUI0Pbb
zS@v#M?98@@qP<_Qa`)%e^>=ID9%~+&^q)9Yl7$}&-xhGxTqZBZfg0q!iKxG!?sud9
zaO&1QUKlH+1&{gUh!MAsNAhxT@*e%(&)Xy{nwj(7CFPFmK6ehljXrU3s5IYOq5n$C
z=GWhCUw>iNf1F8eIqQ0IALa-5h9DET-!7ZU_IDZf!!%nj_YLCKZ2z^Yi4H7b64RH8
zCEm4r-LunZu_w!Y_-)p5(!2tkzJEW&-K80lfv_bGYsUTe>9cam5rip`Ss7h^QnnF7
zHYXLv3G_2k!zV@Dpy_JnA`gLZdFe{SqXj7MD?cF#iqOqL#Fo>xiqd&29sAyo9lK2G
ztOA79f1IW|dwzA_*vvGl73)>j!4*eAV}XSm$sN*T|9x>Vih*0v^9&b*y_-$`td37^
zxUf_!NQa<Oz(|$<G#R6=XSiw4!riq^$jtNRy*H65WoJi{s#70RQPURSq{bNf`|5W?
z=z6KFKnbf?2}@0&W!dkC{oE;e?ltj-<(>RcVxx!4T^;w$;7Z;0l&`57GwbV96tMz*
zop-*WonCi!7PHi9)jFEC6*V=nKp|-`|3e-_#6J{_t2Z(|jmDr>xv?2a@*SAT&t9)i
z?(S)?ufD+fqq%PnxwEsg{lIw|drtjrV{i8)euEnu5Qw<UMt7%c$KcL(N0h3Q=-Aj#
zTwDt&6gD2)ea$v37dJJ2*>~M<FV1dmpV-;^0Q|B(JwHFFs;(PceyR9&tr!MJ@;Du;
z(QJ(eEF;_T3Swd3toGBk$cL-__Yeip?Q)&5lt&d`n)ZEb?o%s!!ne4Wa>Br7j3xSZ
zjevY)rYQv~aYlDb5C$}XS4tb&g@`Dg#A=B;2|UxEz`-OklkjmBI9;V;c(8b10zMKK
zYq(EhvAX1NFo_+J>1F^QZgusa+)5Mk+Q|G~TS<HaE7lfkvZLy*w4n+pLO%DnLJ)?*
z$-|ZOlh_y9L@ZQ}%$(4!Zef9^58DV6OFAN|%g_JV9&vB$HgwL14e$INI)Wt63c-$Z
zCA|g&BH|W%Im3FO60@@DS-aNjt>8)xuv7}-6|S@4QHoC}Q7B66Ro`vDNk+)m`^w<(
zf((hqUoBIY><61v&WPVIJy>~=gyvp`zOk@`$XS9WWcXZamBq@Wje;a1aW1;<I&*1q
zy%XBcx-yCQU2FZ`d>5*95rg=;PgZ_i-EYS_0a-Q9l$YQ2*kHZOXZN<Pz5Vd$sIa62
z7JV}Skr~3kz~F~uVQ;g|%9u;!xt*OIi%bHm->Wy5&EEka)pO*haIAhL;IcNbx34`G
zqa|n5tS_qXtkqLgMD6VC{24JTe!SY6=yleanv+AEKxqi97n0ZWP#w?1pFcw%w@Kd8
zHa895p(OAFV4+xFNe>SV-A}r8^<VCeA08gk3BCXz(yXm317#Aelzvgqi^<MoT>HJI
zU+qmWIK2!~vP?NO+jxaj)&W`n@#*Q{-zf@uic!7C7hYzuX@V~W>ZyS(q#sBF(Dh9i
zDd>h%t-t<JOZ)m)bYK?OMoElu6n%Qb!}BJ{cW(@HiexX#$y2lLuj9o(->lEGyspQ*
zLmJ(MR(d3<dOq->N5d8zcXcltaCEFob{gyJv5@Qm3g-tcX8ow5g69>XF$r{p1XH3T
z8k;|Twtuhik4^h4J(Df@75V?-{LE|5X!i6fS=xHD*=EwZe|Ul%qL06uH8|GM8{~22
z2|t^}hC;-7ytcA4pS|7Dctx8&XOO{PB2PoDu=>T<W3Fi7zGleN_>4$TXQV%ZPJ#oA
zEEP-EoKHBB#~Aro+^(XcBGRg+Gv%jj>N${}OT70!z43QnGIW2SRTO^V=ze?Zo}v-D
zfakLDOc3<CwV##e&aTZiy4Az3EKMkj;G0Ebwweekr~iWKmv#00x8?=^ZEyXVAcaYL
zp;_-~U%<}iNE;6y-w0?H81=gfs<yv!#%evwnfRpWl2e2BDP{gr;zzUnm)?g6?4n>=
zntUB%i0p2UB^_!=fRI(!^9Zi-y{TAr7$&OJY$!G<BrtxT$3>khE*wUko@8~MQKnz3
zeK(8xQvn|lzry`(Q+l;4cbx=5DNwi-Am;9x3h~Idjbuz1%wZ5{{b{Cm(<&8rElw;o
zwqa~{Vmm%D#!GOEij4*G-_-f@_sA1sQ)_1|bnTRr8%n8`gT5>GS!}zlHY=E=&Xvm&
z{Vp29pJyNRq0k-KNMYFE`;4IPw^GkU&|=bmhNY8G^R(7l%rfV!wj`1rjT%E%G=-e`
zy?xAaKLA-I*bgv&v>qAuoDw7O6_?Kh8ISx7r$F8GJ`oYz(Zl0>p}b+vXwV!hiw;t)
z8n=9*KW#TcY8WyIJLF{mWECVyq?A%D_CR3TD$7~u4u{e-z7@W=OaA^M;3x216P<vj
z)#2&scW39Ml3d>m$wJ8Kp%jkdHFIqIu6e%Ma!7vX1GJZy7lDVJ#P?Q9$7zCd*DP|I
zeP|j;z(7b3&-|2K0o$qPvA^ed#&P!ze^`yCe>x$dp%>t*^L|vP-DGvgKN7eO``K>n
z?2btsRdoOm^4(SU4L+)FuU<Wc6*`9;8XoreS5~4?XT;0Wd5z(blUPhgF6!qe40Ogc
zQZa;vPq!zGIxXkWd*-la!VzX$09-SkEtX&PeL7*(>u9mLyxRyweJ{{#?2b_Y5<?*p
z7#WHd-dlegva^4=S#;|C+mv=7D7W0=DYeEa!!g{FwRb`7)%+Ir=TD&f{vmtt8-A{X
zgQ;NUBQXM`Tl~d&W&$H0(@2L@RPR<nDq~Ssvf_k1X3dvWtB~_LkbsCexnUNQ;&U2o
zw-1YqI_}eLG;2!mq{)^tl8Cn?Z-8ZtI+-l2!{qD{!H<ofuu@D10yOeb=#_9c-xa=p
zi=kO7y}Lf3brFtHSN#4M=KsyxNX9$SRv3Rg8k%I7>t^$BnP~sDfjC=3nk9PQo5S%<
zGbOvnEajX`U?Q3YtIz=^Wkz6Z#@US!(0va)2g`y$Eg+iNwZrEdhar58f`PoS^LL!g
zk+})ew7@PPptGkA`QA>es#o|QcK^={pgY(wB{U9%9S9$vuXjAN^kA+U$E9G{I?50z
zx;(g|=IS~QAAyO}Yt>VYx3IU5o5<vDa5-9VTme$<`{3I=X?1z?PJB-U%K2rqop&Hm
z3W8rd9I}Dba0y_l%=WWa{apx;lcvS`?-Lo01nT-e*xJq3yBEVGC4WHs_ZQnXId*Pt
z+-DwB?aS?MB*Kq>V%?uFhLu!-#~OkazVAJJ%iv3!Uutt<06w6$yxgvoEgpStSw|)0
z>7j^yj*}wsNs9G3E}WZ5THQTfYfsI6-jPUQ)*bt3wTO{eryK$SpCe9`5$j~~riXI8
z9FpJL;c<0P9wzIKmE7@D>UdT|yC{rf`~)vsh+%V{bc-#4Y^OBff;tQjA&Q1fWpyPg
zTBLF?vezS)N+Qeb`hab9Q|TMJH`7O~LK*XQSOY?d@h%6+c=3ZV#23d{8nNhv5>o1<
z?70raM3W<61w@w=L%^^w<6HkUw3<7=Hb=`;sxz1PL9N3fHUSMkGA;kzwJ&mGtJbQM
zX^^rUhKn0!TTt?&6`(0^5rOIXQO|Zuxunm3pYfw&2YxCMvpL=YqS<<W_VKrwP=7py
z6dL;LTKALNs{3}dj>91KPbJMZXFBe6?@zf;tNZRiRNV&(-$S*vwSD33FCcD;LpeS@
zg$Zj=8~htoU0vPGPHK#_{`T76aXE(azCr*zYx_R*0M;45%;+;`(P@c$I_u75@p~BG
ztp_-Pi@I1J#<`*3s(R<cZ@^^%0*f{Get-sONjCskzL%K$jCJFg4F>B~cfWetwjEN}
zGj7N5pKjETGh1b{R_b@>h=roOqk*KGI$d2|8<^X+qv~z`_108a67RV8-0yzYdND-M
z`mmSjk4Zy7l;uN9j>FP*PmU`5%(}L=X0yw)(rmLGFXcOMd%|)xVdtIb@9#S_H0*v|
zH+=thv1<r;0r$5jzpiL({&}5BP+(~s|8S0=7mxP=Ya}je?Ow<H+`Q7rYk2-d;NV^G
zUyaWu9M9i9kt^$((C`Yw&2e&|){*f!yfd5Z8GTx3thval#1ca4sYk`I<dBSwd4bns
zBT%UypxJ;vBc#Ub`AhoKy$H~o=|)@PC{tFoRm1{set+k2DRr95MER#1wanb1-sYUd
zhg>N?!pYRWA7ymd{G}#lD@!U`LjDg?X;_<9*2$2We1c|HU=_Z`wvA@JGQLL8DuN_t
z<$@>&)f8)x^lHv<&fdYFLLPZMokJ!5tL=1m)iprF(!akvs|7?B+s>PX*%{PZ2K@(w
z2{u5O^UDVEYm8P#S4gpca~N_K&o(X0TfvLAy1M#`*KUsNg7K0PTV$pje%-zG{7Pop
z8)MYtV)v_yZTkrqK<|w`&W<ir5G&rKX)_&CPr0c%^#*6C%(qlLvYT*Tc+<2id@ftm
zv9VJpbZX*PR8?;^Hkk5Vby?J11*Z1B@OC^**cAgnfkG<AewfH@qtk4y&E*+<_98Td
zb@QhWnR~V8Bd$)5`s*=66^B%%gvtenZlJnb*BHy%g&*5#oBMvdt&v+jOqj%*QR#!y
z>JnLw@1w=u{I83cU)|~2cAd$@8CBP))U@>2U&OmejG%bfC?G)C2^PO8zUZMQ>RANr
zfY2Sa#i-C?bvUFY1Fg#+vAlVTSMTF~MH82NxVd-dn#I?o<fR_k&hBr|>e4z^*!ibn
zJRU#g726=_j+}pa$}9ywH_w?_Q|&j~z8Bchj5q!f0K!KyP#Q30BP43C9Iim^9r45$
z8QE++kWxhL2(m(mYr`*wbC4|!RQ3N&zs0nb5clg2Px8ar&f9aJ`toxhP7L9=rrR2k
z`^8QjeE%fLE2o%a7^?RMl=pSY-Sn(#ta=GmE9ll`tCPxxEOW8zZc+oanH4E`L$Hw&
zm8Re1GU&VLLD3h|a{R@A`v`S!lyu)`PKH%L=SG>qY&95(<-BX7m$~yd)FJg^@DlkI
zbTl2@7laWfs<M9Nt@>4SEUrjLs{!Tpmh<$?9p|D#Ps>y692`MxA>SKDF%<=Rfs88x
zzHPP|d+Oy?1Q?aaU)|Z*3@K1b#7eYR#>)O^m(3WkqHHHkEkmFv6)OA+Sl#EDOGUw8
zpKjuSk!}gOgL`Gxb5%(6B6mrjG<)}(QaiyK43|tBtW(y>WX_A=zO2Ux9$~|$@TMJ)
zxuBRSKfPnzf@`CIrj&~d>Tne=35JCLHZsLBuyJ%Rex&l4ON5F#x&z>7$Q)1QOyR|O
zYqkx&S2xWMgYLy7asOw|vp$o4!Q9B1wV8hs#Z}t_PYmA4pKuj(VQ0Zqu+=Gtu^LVI
z*>Tr-#$b2;&y1Sgmxft*xeebgZ0oC5_75$vo0Tq{N2z7^Qlfqd{dS9%u)u}4_6p)+
zWncpd(19AfJl?GO+^q@RE*bOeADo?;&6lg{_&)5u_Z6R8_UkK00Rg0kDz(yh`O?6k
z0_t{7big5R@t;+!d8Ph!MD)<26{|*00IrBt(mZ*eDfJDzua>(5D4a71qYbtUAuQSp
zk<6L`#svXPA$^ZjRZ`r-tboLP*@Hn+{t<ex+@N*`yjcg57rkHl0vEjvsh%)0@Q_B}
z$}=%WM3<L<5uwZ|eO}Y?L;4;ZAYgiKKRzCcEZp$OW*1Hvp}-!VxFP=~f1VP?Saf}n
zHHJ=Nmc6EG>Nh1o8n2|(#?nUZ4SY4Pvu&dDy!qr$XT1`2JmAx$2OH?ykIZck)NG@w
za3Z$=TwPFIxUOxUglGA`P8>4hyrl9>9<`uli*XRO%(qGBXp6ITEy3;-G8^F#`|R?~
z%i9nb!*u7UW5OR{_5kHoZ@(!DAiRfTGvV=r1KM{?LGpG#+<II;{@!Y9;y6Yc8yi2b
zt-mOOU1sI$6gni}#7jUAVNm+CKkd!I1MNzbBs64&+FRzOKYoee^4Kn@lPD>VY-nZ`
z(H!rU1atdmA5&46A(3@UVSvVMIRvgO`tI*}!kda@jv<c(3i4^JPsv9|7UIQAD`;*+
z=os!`;-~jcrMVQU7NTPo;|M7o3>@pfV`_g2gCA;7fuH0SVQ;evSryq66I!7O<f&;{
zjn|N<%s<QkaVp_O%zQ#2=H*!rR+msX(BQ}<r4m~$HIRiOIOE4E5u!}>A*K=K6-QkF
z#Yz*Wq>C<kem`;s23#AtMBz9HQ}kCAY$vP9{8vX#EUg{VF+8(Dv|Nqm8H5uYQ<lVh
z)|C0IV-uH(c^4YuMR8O?(AI{Bny|7&6N&XwjSYWExZYFvPf^D{%A&vqg7O@o%DxVE
z-{YFvxL2tawzs!u*;6U07}?tszikRX!_H_i1-Wi>eUTZYvyUDCU9QFt?335wMD{L$
zW}M@(u&6H0@P`_yyNjjgcLE+k5!h5R7+K?G^Z($Om_s8(qTt18P^o1CO2vEczUs%o
zqWzr%PG}73EK!pk9lc;?4RJdATxhmxZIl?)v7-P1w*Yd)%|a%a-;PL0@i-m(+9rK`
ziTxTe%o@4fUjh-nX@4UTn$J2)H}D0)T!PBFI1Y|@9;whJ>c}4;hrc&i>2MFZPzVh_
zMcI$vJ4$|(J5TF_awRVhxoC2#qIr5U86Pv|qzO?dsn1o`-M@)B8mK2FyLR+GG0r`H
zR$K_NrXODJT}D*heSJFHzZlNln9Y54CeS<|c=luE^YQU{zDRuy`Y48Yf6n52KSyIy
z{xKRFFoXsU8gv>E-kVcWB1rQ<v%sJSx+(n}hHEC}8ZA4N?i4~QNLmvcgfA5<5dC`i
zG37Ff41B_1k-G6Yc)D7Nq`zfTr%`Snde+Q`6&k#ke4hL<n!-TyDg6U=QbuXG*v}2s
zfINdD6KO-SEQ2{oRf?}9HRgvO+qRHOZvM&Bs375IqVu57Va*0ESSxUNw&Fu8W);y|
zv`9fzkb)_8$WB=M_YG)`Ub<o~bV2H|7pE4_4u&gR%3*&C$RG-{y#FyY`aLA>%P4X*
zV+wP-$gM6ogK`ep^~m>Juu~LVk4r2M_|y0S==_?_;&UjAnG#}V12op}<fhHI>ZX<c
z6W<-!%Wk>6dZbqYThizhE3zDZQy6xL4h#ndWwGsG{3CQSc39XN*rb$-M%<jbU)~DO
zjmgb(u@1ng<M#h8P7Dk52_I=c`PC^$E+xq5UfOX~nj$Dc8~3$_Z;1!SR1a12QxD7F
zBvsUY<rOacz%>~8QRc$ZxNCkR87)PU4d3!R6}2HUwJn1+%iJbTl%0Mxzn5PSnu+{5
z`3{UD=H>XHB5N&v4WzrwsC>3g0MV!NKRq~@5$O^izI1}INm8bLsB;&f;IEL48D$ax
zUFWN}d(Rw&krHyNq%mKh4=mAdtiLjj^YEG*IL~`_uhakswek8yLffC9xe!!ppF&Ni
znG<~7&%wR-ZT@Rl!cxy_^eSXheWxB=`(z!P@n6L|xmI7M;j%RvxO{I}(jx3A=Y2wE
zR9-t}3~|BVwcm8VUH@8d@FLOHbB{k+(GU5{K^=fSg283y>(6PmFwh|pcZ0!ZidY#V
zt`9s5VR=IC{AIJ{Xj&83KcvtpXl5~{Af|0XfjXwHUX{S6`Ih7_!GkLPaC5UsI)cno
zVmVAHLvV4iF+;vhIO&Fvcibq-a?ZIJ-y8gGjGL6^O7SzKA8e79htb^gFS7oQq{Zwo
zf7j?O`~0ESdGuR#=dIT5*}9azzJA#ok1kpb5;Ag~=M6p%iylUL#b6X=+=?pAq};nD
za5i|<vT|kAkE!_kefJG926A1<3><RZv<1;q@Yg9#(>}y8K*+g0SsRy~5+c6r9!i+N
zV^I?+=8xpbtjSIZKov2dOpt>Y#dL`7k?*Z{J<)<mWiF}k(<4~^#N+VI)`>d4v@e5m
z|Kd-qZ&G|bx{9DYcjw%RI1+&A8A13)^Sl*XGdMDNT8qmfz&Ih52fq6WRtA(HGA5`!
za-5ErE)qT&${lQ$n;#SzPc#xNewgH~Eyh^;_HJu4jujend)-$r{H8P#H;Fv3v!mm0
zxtnR@QCpztF<uswU>+Z&|M*jX>#~|S<#r13NG7sZSK)&hDEumCpjgLq)U%^adb~#Q
z%2vQ52Yr$iGJsqzKN*q9KNxU!8+`v71n}hL{>`SUsBQ-Kq!`Dd(Z4`|V}*sh$wJ1N
ze&mz#Upp%L%0|qhB9O|wvZB=v^Dt+ohLwyePm2|e;`2Fdhs(=urS`8Fs(!?S=7v^_
zduLJF#<cwpDp>j>CPo&#rV_}F8v~dBCItn$Js5<S>`54=_;a!ME6MGG6vQnuzEx!Q
z5c@(E6oqq&NMU|x?Zr=jT`q;bR4E-rB1iHs+8}Rw+4&;=?(07EFR%B0a9pU-pGs5|
z(qzsp<-_TKP)ESY@_T)#)M&-1VItb9-MS{qM7wFIBCGny=5?lXXv(5l9|WM8IDp%y
zn!h+)xv&mFkSmz*Z5AC=N3s^J=&4|>-Jr}@JKOBZFYI_8W7vG59Z`<E$(Z=wk-83n
z<M4-#ny@9WWH8p2<rloQDW>k7!f8_=3K%X7&T6rG_ub+LU@CKMFoveZVg;9Ei@}K&
zxY5^#RxR9kp-jCn$GaABCn@jB3U19pfNa0QeE{y|#fK4;F?C)LtRd_g@gyXc|6%s`
zLeAQ>8p{S3)X|ogs6yYSSm@!=3H%McP$|zxsXB78aRNg<GK=8AEjo)iyDYWFB4k8G
z9LgOh@7|~*jb#+RG?_5CMO`<dGeEI{`0H4!nUbCNs``0+J;JSvQb@j4ca3uPp1y*|
zouE#Jr%Q!iG;m4G5;<IH&g@<QZhZ=w)-3XIMupUU0GF6CDG@Q8*c$6f`g{&a134l5
zp3oS>JIDBkRzl--z1dQxY~Dd2K2BDSV|rdmg;o-DT107QV@`EU^hsVIUZ7-I*Otr8
zvf^xGl}QO!;#V|G%cX3$A}+zQn7b)Y>jkZ(r4J~jKlAtZ@9*80dB-#eVCGSL>3=_x
z-QA3IV;rle1kV*Vk#S^kHhjBVlkW&MLxZ0#=*?}e@Y%XmMAQHGzO4d_yifSKU-&%s
z?LKz5-jZQhjX<iu%>~!#VK=n_2vbi_&%au~v+*1I%q!jNXB2!z1JvyBm~V+WKZGoW
z30{XYJ>LH&3OZ6}`bmE?Ag_dp-*=$A`nOWzt0TQ#7<^5n%ND<=oN3T0pGc$hc=tLj
zjt%=Pvr`FH32<{%V!vmHuIryHP05F!D|C&d$?$ADE{Hnre9k1I?7<mV2Pa1_WjVVk
zl$$~LtN+eusW&^wmHZYEX^F8VtSbkZ@J5_W<-(hCzs*s|u5i*~NAk#4hq0Ey$vhz_
zNs((TU3SqADn%Ts(|P)}p}0E!{u$)~OXSQ7S)pFDS7qm8HK>hDlsxuVB*3iJus_iI
z*3CEc?K$@qQ&I4WV^~UR1>aci*N!i3S*eOhM&6@Z7)+4`e*171cCpD9+Hckie^ZvE
z9y&#OUFt?x4e_U3<^FO@mGH(3d6;D>uYY;Jlh0RG@XM*&e@rJ}Lw3}RcdNp$0UD}!
ziqO`#*Qe#%#N6qXm3}~!R;nqnHW;tf^CsdvH7^vFL7QZ08vq%zDk*Y}<CnU*?|;oT
z{_c|JgirP%AwZeq_BSVW<A`$2j*=HQ8~lA)bZdi$%KXw#I8u&C7L9@A=1j->u~f|d
zQ9J0#5#QSP(7!eS%+DVYaUdFl!zzZF4(J2`()G_DrRLWiiAUH+kJ(4=Z0Z?ls$rb|
zJgR<8QB)QEYboD;1XeI8OxnPfBA*F8sf2|*tq~{cZ289s1`IW4fwJ&8_vDDH=m7At
zQc7@NR3zRIxg1o#Pd@b=5D{h#M{|SUEkN!TE3$BxZA@5xTBSG-OL5x28yFY3GkWY}
z26772+-#qN5Vw5}5GWQ>bdAIVnm>Q5X_8Okb2nxygXI?_TYFElT!nunV0rRAJe#ab
zK#idxIOq3;u};_Le=a-g(R;82KVmZ>m!@oPx`zEw4V?O<LezO<JHyz&Lp*zZy@byR
zn;>S}R^mQn#xp=c9r<@WKiBG;qCGe@M2*1Mz;sM^`MXmX&$UzbF)~kGb%PH(#(h7G
z{<Czx22Vp`tU_2zAj%$X`OrM?;$AdgYAV=pbAm55(RAV~2(v%YL&vV|sTb!#Vh*rm
zz@e_bL99Pbz6~!-WG=Tl;qvFKjBs~7bRV1^_D-OOlFB4`61{Gq3Q5^1qRJ%1?RyYx
z^UKT_nDcL)Hhdt00_^BSauL%%D9zK$>7ykBtF(UsbQ(rVjmE3;u6{*Uaq~=8ID-i3
zS4fXf#z!et9p}$iJJHm*Rh?nJHW1SwqW+2R+}8MYPaD2~VD@|I%^~YliwF}tVt@e#
zo=#SE2Ww2obYZ_{yt*ct!iI_efrff3dUT$qA(fO>DklSl&pnWo{JrBMa$9r3MHRgM
znz=Zu;E3?%eq*AU_;zQdzYX{%KKmDFhNT1*E`|;zNKghv()A7gFh5U|2&`iTMIjVQ
zNx469+U-xI>QBm_dEyF2i;18s^h}_a4FH5;?E34;oAmY)+}}m1Z-@_SiO_-`HxWv1
z5n_+lU9R}2s0e)8f2ymSD*txX#3jSckxLAUr-uhv2%HR>)I=5;j{vLT)Ch3@2)y2J
z6Y|*SRS8=+WyX+Jwwn;8>ihBn4jmy}eP=d7!A{lcvm_~W5mxX}LZ$#HsJzXga#M*E
zchK^ywP=!xlcf;F4PHRF7xwSQ5HYicUbY=02kPF)-bj(Efl>MCIMkq$@L<`&U&^}W
znBdGc^WCFf%ZiTi0ouse#HKA+tU}_#2qg(4;q7!u8u3+N9|6cBgWV1+00Rpvo1mPm
ziDVG98$tk{1i(yWMRi+5e*VX~8IDTXIW|A}!E6MMxnKCISfRbiNlE9f719f3Qbw>u
z&=@X7LNpg1<2@m8w^LE0a?{6R2Y&ws3x*0lCXViteq``2@ZQ<M-T%$AKIZU+ic}|w
z%Ax{^8nmzl73}|$qgLg#E?xY;%|nF2<&FSF|9))g5PN-sRlytRT?m0JzyEdck>FZ?
z0&fe}WxDrwfibXI#bA<rU|IB}!e+cZ<-?^kUB7xzKxeZR&eOq#La+>>W3hqCc~CBS
zH%{Mhag#8%+_k${IT!5{Z3H))0*~sH2ZDM*AUA%ZPpa81_beNba9GXIwYrIT9fQnr
zJVLlT59NR73da_3><<gSvH?85At1-w<a(Yxtq+eSGaMeC4tbD7*UEV?GO8zrvlJN(
zDPFdU+T}lo4OKG$7kiri@0wC%<WW&kwLVX-T{l&Bb>0u`z*w`@VXwX1txo~#YW?!w
zI2MXYB)o?Ck^Tw>_VDDimsiRtQ8|w{o3m37*cayV=f4Yu)&bYZ@z}%jy;1i|#%53p
zq25>Wx_?)X0D%K!OkwlMxna4*f?`~q(QLCIcy2~3N%<O-E*h4WCwAs@F6x6uRbUQd
z)kxn-8xQ%{k{WHPD1s)WR+U=)$s_v3&Au&<rc7SYL6o!gv)@gF*)V10f1`|Iyg!+3
z4Sp7QSD*p8V%PCZaFTbSN_+V1d4Ec>_a*B+crMFmmYYwgz!$e}5VQST03K*S|1UK-
zVU>^N2)28?K1?7XAvJcYk5DiJUb0MK=T8t|{upAxKCyMLFhJ#`I*&sb3{yrMqdRfX
zW>@=*>rgMmn@nX&_h*jjnV@igwpT~uzeSQIjuyHOq^V3U8zUoI4w-~fdAVhh1ua>9
zKVjkJTg(IwcyB$D_Oq;rcx4Hdm0OL{^HS+?s)cfUucuqY(~BZ<g&NGC0?L-3r#MtR
zUmHcH`lioR{(q2Z$Uw%tXC0h6elISB0`6e|Co#i;1W%sA;(HOvvk&ah>ZF(=+KzU(
zWE^h)TCTifttdfX2c%krJxPKH0E{V@N~0=#HO&a4l1+K<8r~IufF~lSmOd$)Sz80V
zpCox<psaC^+jKMcl@;*NyqyOkhLySE#}8q%rG1#5ohb?xKUj88BNl_cL)9Tjb8<jR
zM@1Lhe!0+}52jB^w^Y828Tb5~Kj>C4FH7A2hHv_-IH^&XzpEDS${-T9&HxTatAqv<
z^u7nR7**9~^It=Y`-Kr;7U+jU73k^dfdH^XaY;$2Ruzs$8+lYLw>cL9kduBO6L8s&
z{!Fd6UE_ncFuqba`CKrN4eg>)R-{C==ge8`+}SKk(|lZFz$zmD1+jJLi&Fq5%$|b9
zv|L`x*x!s@aW8uJnmYd3)xIdulBMy!k)*D49k%3xm!D|={`-c~IVB#1U3+zpp$JG+
z=rchE_39nK`09OZOtPJ<uD6+e=1pVgwX&ko?rQV!`}A*9B$Kw@M%^&+_AlR~U-uQ=
zuMCr#t?ZsjB{=vv=$1EFqeJ%Z+w3d_%t0xE7u;xq+TK=<q(edAhJ|VC7(<({xsJ?H
zG?LK!I;|w(ez;#$iL&(I0@BVqAMORQL}qR;{7!k4KN%TRv=vX=s))f!DQEx~kMI5v
zO&}zWf^(>`v$_u?1_-yQx~_QZ&wJbt&-=ntz#x7GTo-`YLnYR-Y@J|=+}7@Ozq&6p
z?6Rmg+!u@}d#Oy;CX8K5@A0W5BmpGGBvT85jvddOJHpu~`X@jRk73OeEeW;nJ#rmk
zkl;zTOsh8H6GK0D#Ho{#x+#4oD3ej}`Wuyd(lsd|-3UD~DN*3ehthjkEy(WJaFX`>
zK#u~FVzN!`mRuX>%IW(o6U=kS-8=-IBi-KJIRQ-P<@43l)%C1m1K?X}wp*V(U26yI
z$U}fbV0ddVQnS_Z<C*7TJBXN=T7GsT+C6%6rA)9}0^AI@?Rlm|I8dr~&QnMxAtG2F
z(FC(C_Z&qIPHhz!9A0I+xMD(WKCkEJd7&M;+VZSGAdiUs1Fs;WaAn;ag}3zYXlpMQ
zM13FtN926oV7%4fQvb{V4V6j>512@I*I!rs#${PL2LSU`D_}5NYP7(7ColR*UQ+=Q
z+7vK1WF#|8(RHe!lZ`j9tMJboGejtL!muGK!qI3Mo9{($<l{%?{ZvmXrW-QFB1WGy
ztdxj?o>3MEkt_`7grO)F{KoY$xeUdZD-3!@3)oD8a~S^lOCqR`rGPFQ?ZV>o#fBo1
zCiXWgnVB+tpqDrdD5sg~cT$bUSB3p`{+n*n0}%T0i1h{l57lV*>*CvEkPUY0Z_@J`
z5F3-CYlJDEf}jzjLG1#mWGR7c#8xKqp37nY?!Q1ol{2)no?Vkx3gtn9$X_4VWDd)J
zI_SpAd}v>)80L?ax2C1~7Zj$*FRJYnNZI5_ZdN(C&l|CoR8M6Tx#H^T$MVVO4|PZ=
z&7_`qk(fR3XcnU5vYZ+WRCTpTnK@{5GhckU++*i2i78-ue_-)8voiACEFI7(Xb#e)
zthv{eIvMs=^(sqXr|x&$C+42dG^e`nNX0rBtP9<qE>GN6X&>IinB}ex3`G;*5oQc$
za8_tGIZ|0IRt9Jg8<FGDGr~Px*KI4pmf(WDygO1k_J%tt(3a%#!g1Fhblzvy(me0J
zT@d#j={+BtqeAxYl%>|n6-xbK@4yrrt*UCaw30wFuXuPY1F=Nka7oxLevRG611hNv
zOV>zqZbwhP7%Z>%J)H4yjNuRPDRJ9BmjnSZr6B_33|Q0|=NQ0Pvyowp#G*Cu>~V!|
zOg~Ia1Lcdd5ZZwrH(hJE{`&In7Yl?%t@An)5>J*u#AOxe2ve<?%uiWJ8;d%&z90Lp
zoDfm^KQ90yHNU1tOZI%J^SAf1PGmmslM+445MQ|Emcu_YmlK!Dr1uNYqQ?DZN#m59
zT!WI;W7|@hy%7Vy+KLhPTTf~IQF7|T@EOot-TJ+e0T2x@RktfgTliVFQpgTjcWv!?
zIoIc-+cjK;8smO~EX(eL4a?<0VeI9G7;62?Aa2W{?%CEDL-l9t2&=ta=mLhS%?qa(
zoh!*6P#_yTAQua~d%549M+&{4z_6uIi@HxZ;D^bhhkGKouQl`fsdi4yK`~}gJ1Rjx
zRFkEMAIJb$D|ji8d;WE5;1AFlEytvATSjf}W!mil8s*Q53Wks~t$}<|1hz_j)va*+
z{<;(uap^739MNkLg>-=;1dp6lNe`19TK*iLs4KPK06>tiUTX`kKDD)M!f)dE$aXAf
z|KodujAG|xgldKR(aQRy>Y{Fc_oMo+M8F$_tN%=K+IGbJdeHrf{;rU>7`<d3oSaB>
zmMs4kt-h-~5B<)q=Xpp)>|;bRCHTbno-^Og`wweVuP7cVY+%s#bZ_7)U}*!`DJmVu
z(KhZ!do$=yIONRIFh)V|#zX;Lv^0M<shy5tm1vuX&(Kr9=x^6NREh~`GMR?#bDFzQ
znci&5ny|j`Nu((iDr6KC)#;ZyoepU28{udN(P+0@6a61eXB8Dk*LCZ>gy0a|g1b8e
z2@u@f-L-Ldf(F;d-GjSZaCd0jEkJPhQ~CaJF1TSpLsxa}z1CcFK3iyfQSB2(8Icw#
zgW>43;U6vQig3?XhbgRcwW-SCcd2hV`HBMbr;QL!V}}hfbL*2A&W$87Pbfu*xqL^5
znj_YE(4vKLyoIBs7%n8t3jRn3gIT3<3dzyH@trEz#ux35^M}IpS`Fyl?g{p}<>^7E
z^|*|FY(i4ik){y3Z!<!Y-hcJVL$0C*E+M2g00f5u3gIIq;f|V;qV$-g3)HxHdau9V
z_|Hvm(evE?+;@_3j=tCkffp_xm4YskrUnO%4%;>&pF$#;K;}|~g0JZ>#iYy)!B?fG
zq=(jnPKxAxZqEp_@Ine{?DBs75BYI4qJ&5=sXaGt=RDr$_d^?pYkV{mGyx=XlVq^$
z&gWSwcRUu=o&PG&R$ED=Bx4vJFYrz{|8PLcV@SI|e;HP!R*fZ^D>5=oQJiw_+5!a$
z877*xWCJ+tdwfr{4wb5|_jRQUb7wI5&(GI?=BAWcYHBS0BRnO9mNtZjmWmjCH;EE@
z5bI`zA*Y0cn{;}VZwK2CPnJ2jCZ|lgw-*hc>2_*Nb)L><rmwZ`TLsRQ@sFO18GPpF
z3sDp%Nv!+z`uzD~(cqcy?biN{Zen6$9x|UWVp=nZI)pYMH{oNl%H_1oKtFYCcv_LO
z0e}56P;k03+bluk3of@mqSDZdMk*{h$>0cd4LKQMrWA{FN4)-9SvxnRnt69^)$Hx%
zD_>rD)9}(iV_uI?>3VEvy9}L!N;*3|@-ErN&o|aXl@Gs<!WFa2F)MwSMnV;CjZ`-t
zz^;Qg3|8pqqFUXV>Nz(+NIR222v|IHPK=|(lKF31yky{pYB`pfQHro4YeJ%?iGyh*
z*!{p0939(i%7Csc)%Jh}V?{B;K_KWEw$6NBT+|u_7>$w!)xp?|C7T~h7K>z*W}(~^
zN@&{+%=t8<#5AKhc#|fsRT}v?I53C8L%nK6erhf#_2`{<XUV8DkZWiODJ5rqz@@+s
zp(3F|$Ae`~;Xxp!EU(g>O2DG$aoU4>e-wPRa69)-T9Rf<QfpXP@Ptabj3jmUH$ozl
z+;WUWD-s(FX}GFyH8el<w7>XEEHgRhEBLVr%g)H5c(2f(uTxNTnIAT&B-G>W5vK(h
zs3<8XVfVkOxHh`p5S{SZt5v!OCU$b8KptqIQikB!@$6dnvC}gSTVEu-oT<ko0%`<S
zE>R%K_mrtJkT(~%K|SxgOId;<@F*Vv4sEEBWS*idwR>sdNsTd*5pFSBDF&IO=m%*Y
zArqulT_)EKh;|@}BsCvMdd3b)q3tE+$|}S(#wFfSO^q_dm{m+l75$b{sL4Hac2Psz
z5&C;BREb5#9>pt<sk4?KMG>W*6T#%R_73+E+iroL&}fz1v1lU%j#g3m@%l~?v^6Td
z!#$`egKAm>NgAi9{&<v1@k~Sd0cDc&&8Nr(t*QJ|$gn6)hJ_P{IpDQTKgI_mu)qX!
z!qHmr93vX-C+0OK8`u6>ZZD$y52VX<GrZmRt49D^b^ozm@LA?c3uhS}BuXWj;yl<7
zC#y{cW~vw+BuV?@+)5CM&A4;#|9=122N;+1JuW}Nz`(YEP9R!{Y#`2uKlD8u8x!?X
z!rYvG@@j89GKx5ru3p5+<ebW0c%#827D$zha=NXLPQb{yw4#C{W1<aiNpM#f!L8Hj
zN7~NGZ|HN9c5W1Puy1oHO}Y@>Ho|xawG>#4^#{fy42fe6)p{H^2xFM1eVQsM=>EG&
zF!RBXGR<URdI4NCgsG$$YPuNiI~g|Wms2vL&mnY_N&&{jEaA!sSdw5Q8camL>N5dU
z_}u-04Gg8g{%}$Ty13xwA2cyFkQU_+KFEcvl9WobJvB_{)CBY8YXS|l#jO&k(0NeM
zgQ8|}<?Wmy3=8LY<nX<ygrHzB?IraLL`}No7w{Co$MBz!%^71p!fEH#;OcyrmcqnA
z{ee&@*flIREbXPqeibt$=O(3~UP+ER*i!>n_yL3ju`a~i5V9gbpi5*qd$EURJz4#G
ztF_FGjmq{RNdnpv4ypqCOe;ow4JwbjcPn7%VF|+M^Y?Wzaq45+mZXBw_Yau)VO?Fj
z|Ms9vZojC+*Vn(B-8m6HSh0dP+?(y^d^RgJ;kPG?a|`QYX09PWX(=Bg5d4l({L_9C
zdxhD*_X*bgDhL9+{p{6kY_0@bDhN_52mzv*_3C#eX||Kiu)R7)kj-7XL@~=~IRaZe
zD7EZV7V)49nn|m27h1~eL-(tI&wg=&@7LXix5sJ>e~$9H^8TZQ9uSTP21pz3C$|+X
zdkK*~#r9cxx@NFnHF$qb@urT*MWFQZ?Do}nMb>w4S=blDlS)U|@?+Zg?m4`85My9q
zjE|2OM&nysTmLyeHU`YEwY83egM*pZVyL12O-x+>DlZp->#54(o3mtwgQBCOv$V9#
zZEH)XiCF6PCuU~{##s*x3kwSkO-;r%K#R`8!690!DM}ZDnE*KC^1;S{pf2?yC)?uu
zn`bRM+pesvoX7PTlf19*ttAWEz}A+rv9WP}VF8FIjP?Y<cJ3yb*5j3xms{D}OMoW&
z`zd~+5M83><&~8sG&Q+hJ$}<3`n%dZC00!2h0^y!hN%^r6#Dg*8u!Z=GvF^t6a@MR
z$XK}Zg$M`asfYl+<oK<5h&EubAJN#0S7s9sm;`)+l7@S2ZM?u+{#99N=4G7_5b&S>
zM#2wi7uN4zqH6~eQ%0|5AWnG$(QD{S3SGjJ>48NxhMX9?1#2~C<R^=j#hslCgh6uF
zHk`h%)Siy3Tqs1mqH?x`jSCA5Ivv3i8C*fG`DjA8PB)UwA|;_#Ih&JHYmY*)_$?ud
z&d%)gOs&Cyo9|&;<a7MUzGatbnvP2k9*@M4^T0V5Wh(_4r}mWiCw}R;T&h84kLUr$
zjUUit=)LPz+93QdU$pAYk%0gf5(<h_{yRly=Mb9mw5EZCuO9MARZAw|V{G2@*+gjf
zK&z00gCPrn5ZLS*rPmSQDYk7LMV>>8zMWbhYPRaAjItx7B{)MB{o&gfy6oCT`uw>B
z_59_L@LwW?mv?lgpp!trXBadgEReE0D?^$yMGpNJ=&EU)T%(0hXMqnnRbpOoak?f*
zA4n0#ZyN=Y<d(HX#KfRzYirj)oObr4?oL;S0PhKu5L1rHNP?IoZCYmf-tT~*OzxT3
zI|mm`tkUXga)bE8y>JWyZjT=`@n}&YHdG=S8q~sYz|FxW!aFERX)-~A4$$FfXl|Z^
zK%^^71_#BLn|w1OwLgu6vL)2iu#9jGqs%woI%VZ$l^L+npz4+h#!{GJ8HS!?ohzDC
zwzu;z&noSIl~i`70op$bvA}q(NoT#JA~G_v{7(&O@lc6>fy5t?afeem3KkaBjg6eL
za&nFr)1)zkCnAz!;;QIjbP)sjvF7}bV={=!*p~)0bJ$?X?~A5_@HXe^Fj29{&i5sP
z{RvGl)GPtt=|W;6FwKjXT0uDXf)0YdzC(`#1}}#Ue~$Az8$(vo@dt-WxILYI6iCEg
z?Gp3%?8XYpcd<>$HLq=@4^T@xK>nFY(=*Z^rYoE4Y=FsSrKbGs2NFGo;%>h1Zud0*
zTbjhJhf54q4UPD*{aJ#}yV3~ZyfAP=L_~y^?hi0VoWtja;-;z?A2rT`f`Y%R?Xg*W
z?iaxL2M4i2zcDlVgxTT*a<8PK=bZfGILivBM0ThjE{_G*ScPI1O&C9z4Fv`ROr~YX
zRXPan<g&mSt7z=+3hwJEz%R;F33H8?%lMk>8U;zWNtMc??00c(oLgQVOwzEWkvdvN
zR~peC({taH!VQHZi6ASKhNDi87-cwb-)#a@5`>Z}M{pdrI4vNkS7{5OLJNFF*fQLD
z3gxxycx-F<*4NWW#h+6&)~3~JE#*Z}3!za+h`2>s=eK>S7bA9!8BySpri~b|Vq5-k
z_R03;g<5cD+fIx?jEKoyX=kF@jx=M!>nA8I0!=8l))J!I6tw_K4nz$W`f(SdASLE1
zN4dV9C91Sn02QB*g<fp0AV!Udv%c$W5-Lk2i}!STYRfSNa;mT<#rs3NJ6!$>q)np_
zj%h0vpaZ6IXamTpv!*Bxl@N9AWD%;tdz%X59yJSLAIR&N7OglDM6iH_?D5#r2u6k7
zq@rH@^ymlBQmZrU=JSU8<6SfHRtm5cEY<Dv^0v3htU?rZR77m$kY%u$cRJ5Kndj!%
zzumvo`|NL2JDk`y*Lhx>@6b@eVW#<Hhk8z|-PU?@&#xjHh21@RSCHp!xBdt9-wJQ)
z16hHIeUZXfh%qNaw+rF>QThGVW$dOLfrO}1|41VBa<{*r|DA>ZB$fvE(fGlEdBY*B
zsS^+JV_W_3!Ih=S@ZoiZL34KW$=8co@3ZaC?-%+NwEQO8LrhuD5OUr`hkJ!}rWhzU
z^e6-&l0X+IsbSJ1Q(<A=3wi?`FSEOYgSY3Sx7~*7dLQ8}f?O9$a`?YI931^7vHXMc
z^QvtTjN(emYxG$)&9QCyG}6R$AVyvYtykVIcV!5~@h_axc=Cj7n4l8)cU2Kq1Nq0+
z&BmBc5w#NE$pt+sh67ou#DuR5l*S3pE^L&4G(k#2KU8Bhi+o(badj1qc1lJVl;qp+
zvH||g#hNaY8qY84P(NXXwg!=;`Q=Q2YXB`I#l6|%Vy?cd7_P@Kvm%C98?%1bF_$vi
zGnA#L$HB!JKXoW$V_GnlU5N;iZh@!FqB2W34;cxEm%qD3Ll8<GE0ndi<*e?wLRf9K
zH961j{9pg+{(8&7`L!V0zRm8{-1JCBa(JJ;Lfe(LuTP}oVJGq%!1jX{D&5d8{jqA-
zo)sPr9~v4expG|8HoDPD)jI5+K{*w087!nC&b?M|0ob^=MSxB^skoSm2ndYays1kY
zH4a)vv+~OEXqwE`wQ{IlL5rE_(VF)%`86+z1%|zjvdA68j}y_#n%VN)zS}%Pu3)#;
z?^!z3+`MepZpJx)Jc6jBC@zc@wAvjG#p00OF|@RkLxTJmC74|9`_pvm;Uteoyl^x+
zbJ^iW{m3EBy2}38r_b*^rz+j4HIuE-Y`=|3Xsv3|X;q~UB&nd9KW{q)9o5n&)RD<3
zi|=ZtBvY_bD$*IfJrQ7)RWOvSy@ESJR=Xv`d6gqvo+&v>L|N;&N}mVl0m6^Pl_rlR
zuZUU_Ng}-7Vp@)aGQGh@mwpo!zp}rsCbBwtg}KuMcV1S0YgNea#Bqk?v^2bI-!spr
zCxtr8OXaGy4j#&%X-;%4A5@wYXoaMNd`<ZOMauuoqXO|Nq;mCYs$HB=l0RAvVWY=%
zD1-vzqe<nd(Gk=RwS4-X0i@Ud=;|<O?a!(#9N)%E^GMCj%{80-_@@M(3GO%V3I9c(
zi?4-dch%rh)6)-N-ya;b6>R2azs7H*Kyc~kuhyKdk?l78PbMGoR|e41;}Ad`RFBo)
z-bo4TRff_@Xp%_5*;_8wjH^4DL7lkRpv6xjQXyBILE0dMfk5||E_v0FhA2wM^vU4Q
z#?t#(XWPz2Oh=i_3`T=Jor7OjlS{XPrWVF#3p4j(q8g9xf?Z}%H;!nNyo_qJhzTvG
z9a$;+HEq#^;)K<q!fRlTwEC=Cqek0M*oX{VUL~?rRFvBs>n4|f8c9~@nO1_KPDV4M
z1m#V18!%zCh?Sn!eqB^9q94XwM(vUKVy<aYOjkLbb_e&Qr;-d8(*z;CT*8MHz$N~6
z68@oRHaz{9=KOBlR3hgu(D!QmUnO$CSYacLj_FlD{kXj<!;u|D157X(B=j=gvFo{$
zxXy4}_-+4C;1Iu(zWL+fMP|WGLH3#Y=q%JpfxADr`-S;E<R_6|YEJ95d^-LYMdAEt
z(!{ZudP`PjyUocu8Fkd)fS~rdzFW%xPB?njeU)jgztOy*&DXL?3<qF?CH#}@1t3a;
zHk3{|mR$QcK?VqL9JZVX5F0YmR`(=L@VGq#H&oy*T%rAWLOA#P7x#?Ty@W4-eyX?T
z@#^g>61w<h<SOHDPL&=7cCDDCSTDWHF^9hB2Z@6?BPZI-33U`>NS3d<E11XoqubL%
z)~mQWQMMfP=LRlXj&g9&O``S?@yqUKZqF+UUI<VX%`Gg900MnldbTl;!RolW8nfD9
zHvqb9_w^8P!oTet2woNQXwp)usj1m4*M)?J!gM{apR@7uisvbkl)`rcE?=NT-#2yU
zaXVc*%IiU`;rRNs-h9FgsBT!fxh2nM1e!WqB3a<Vc2dWfyE6gqSKNd-5dYih0h0ZC
z1RsEjVoru#TR2UG$HVr|BYv-WiT(r|E}82N^Q!i@PD$Fw)oTBBp@t1KMADYSY;U;U
zA0y#XO}3kpc_Keqx;EVVLXrQy#>$E|Fe@Jfz6nHCpc(l2`5AO;eoR&|0hRwh3Jb8_
zDX7r4`ov65%2&1QAW%_J{nOlMEhMES29M8<i#rRVlOZtX#U;3e8S>%QBmO%!Deq8P
z@Yun!R4zQvOFhTWcW3*PeCMWP$>n;FF#$aRLVkyU-DII$quy>Ei-U8aT`a{d@@rHN
zg8RHO4Mib3j?`x@QfSxP+ke42(>g7`L%}x*zt_b#EMT>+V$5!|+2}}Pe!H@G{0%Gc
zU7*6v>hn2G!hm*u_N^UTvm_V@Px_-o9sp76d|*8F4|H(=#B6pCbnNn2IFpKPqN=SF
zlv%YwEXjZ&_uKPL9}-gb&O*>nMLI(vh0oD)(QsQuwyQMQkw9V9syg;Xck5N9DRR$H
z<|6sKF~3o-_J1%ob(*wO{7J9Kal#JHZlr%-24@y@c!eVy&EkL2>=R%h)fN;a78je-
zU10$mpo*GW$S1ZmB;e}KLm*zo#U{w@TYbtJ8bif$8MCwS(7|bO5u*sGHO2#!m=R(w
z6?40mc6Mar!EpcCp4!^1G_Y2xOdMVVzx$&`Rb6d%X88bNqtkk>!*jy)8li}Rv(b~w
zMwbr}#(hXnl&-ICAJOvMvKX_Jp6<#s*yVAK9#ZKfyTryxgJ+4FY@=W2FyoVcuuvFC
z$jBJIM~^uSR1*`b3#MslXD}xOra(2Kj6g@{G@i35#FXK9gq4F+URp{DhpDEP1pF^E
z<vFbc8hMJjEGnjkTNIVH(Xt8(Y(NnF=B6P7uG0HSJXBsuNlS_f<LOU*6h9vbO~<Q}
zf=bH|aY8&5nk3P4?mNkMt>`*zGjb}}Se9z-nPuhAg9|5vj{RNy-kQ#jFb9oIeB!L!
zVM~MGgUL-k;bJIZ{-+LxmwPa40VgCUW3Q~Pww}K|r)6i$$By8O485S}FTa<Gd`lo_
zDsN|&$VaQPq1+BBRL>S?+2?#bD_M^2m!TA_I%osmGe&2yQw!&NIv;RlyyTQ+QT~ck
zo^3>GNT#puNO*lV*bk@9-th-KAoVs<pCeNk9FguwByr5cpVD>yJdxjdE;lu)!zduv
zdf(d#+?Fb+=&6YboHtan2kiXgpG;-*!<~7QK$jev;pow!k<O0r`Yva`&D2XdPw^~9
z+H$3-`=YG#j57e;bjO<3QMyZmd#;aG<nLmhEEYH`5U8NC^0Y#urmQRim~Xj2nkpoh
zDwEH$&lbN878i@Br{hmO=?mnL=S;Cyw;okkXecG^Ct%4;US*qPxVbgv+@4p2)&8E{
zkDR>f`VYxSe0qa5*6kq6^;vGhm4kEfKXjvBt@8sXEvHt7i4sD0vQykpQowqcTGZ#W
z(=UZWz&*UQgo`axt7z)ulbP0wr2Qpgfb3uA0Dy0R?BeX~ic|6~@7TBn#_P7zxz1bb
z?4em8gBFf2!j}R?8l<@b>e6b(1`gH4`A%`A{`kJ1RyH>IwWX~{mFS`aWbJO>B;<VA
z7aEZ#t<)ibIJcIS)xA46>%m|S4ldxeN4NWa0!yk}<maP<__k0O7#Ib#0eq7&j%`t%
zq3?x=&sUGMgfQmUXcyfjD4gqo+$R<`!a`DmhYg=bLmFqD`9Rl4`?d9c2DQeY$jQn7
z`rm$lMIky6A@(5#qV0wG`B0^p(a6X^9&qJ~6JAQI2o;Kw0?;e^9mfGB0O&xeF?iW>
zzzKuJR0ttZKVu2}G<Y;xmV_~!?-WK0r$mYq!)iIWxB%_N=fn1iF(YIF#Kl#JYFAeV
z$eb0lLAwWkshbNOTQc@!wSp--EJKBdl{u0wi)bPEfL7=6lveV%TkR9V4DdD9mb_Hj
z)|XSn#-9%SzFjx63n*ym%L(UcQp9k=iQ$IIM#Uyh?f<H*g83*8LQt6_;B$*Q@I(f>
z5{Dt9%;Uw<9-*@qBl@pvj(m&jP8hKI{NINn8h^<W6>#P}OxsdQE^6cBA6tQJ&1`I<
z;%gnLN=imd+4k7&E|m>bCLSJe8?iilb(ydfYV=7N;Dpf~(Wv#wW?7k=jcX-QLnTSW
z$Z$NVSp29mdj2HL7byc><#&M`cSZLE?CWT`LRHMjPk}5QTk=ENK?v)Yn*OrNZ6<2U
zXjqZZ%LLjw$6xSUPVZJ*fiHfG@5NJf-~?c&%FeLsU^3gGF7mFmn317{H~mh9F}t+%
z8{msbE4Y6}M!vNyI66Ps?H|D~L+07w-<}<Ctg(<OEOvD*S{!vQADL>hLFdVO;II%Z
z%{n}_71MfG2xrU)*ZZQF2E*>_`)bNYdV70&_BzL=T~$ANv?_QaKXp5(U~?C!UI5Q>
zNUiSYcR;q|oa21tnu5qAg7U53BC4pgH70!p;df(RJ-5`LF4NG~7VTZvm0s7=kU>#i
z7XbTM7SYq|lt93w?0IXk={B2<g92lrK*2OH5ZdSCodu_JJgn>k2!-O}l2iuyx|4mq
z`9;V-a9_5^6})MxndufZ?ER_HcCS3$6&{5EuQWam?nM44#)@tq<VD-oc&wDnEr0$8
zZau`d<)^MMmph?$xDAOF<EFycH#Zl1i3&i;AT1#Q3z2c4Ghj;w+fc@JUo@_-XxBgy
z4#be}q+Lo?HqxKOn_g+{aFapOWvO<-by1Y#rnFu^KQc`iHIQn=muS+E6-wU5CMGbO
z$c@w*d{5bxUZ+sX+j?MB&I2S>tXEu-)UkGaJFH>`V+P4mTtdP;fIZUp6Xl;#sO#aR
zJDXS8#{`?hYINuiE<N-=1POc2BU0?QD_sA3_f5m|4PUsekLTS0noXw<@bjopy`AKo
z^O;on%aAQy6R$0L+fHuCW)Qma^1k29BLT^I7ngDODA~^<w|95SdU|puB7F>t*789G
z8+dMc3J0<+x8wH-4S7;yE~sZ(b>DI66vQ3lCAcyQ+S>3-F#*Zz<`$VdO$_95Ie?Rv
zit8TDrMOhMpGo7M*_Evd=Fub`x56vY-kt>~u`N@SfN+V4EnF<aN;MrWwn%{$4KNFk
zaKWINrs5MCZ+S4Qs3cPE)15dK!wm=HHElTZWo2a{A;+??@k)z`V5G@@8hZX|SzUFd
zi{kT>oSIvZlXGA)iw`K53cI?9iq`W<V@x!HY-M&x_dQiW44>b&VE+m_e4s31M!J@t
zA?Muk+S%~vyS;I7PfAiw>KiDWt{*5qWIu^W7Md8;^$@G<Hz$40{$&x}WBJn!kSSI4
z7Jsmwc|{||0`}OkIR!xpft;eQu4JGuboYTlM-kPAk-!7nF(xG?xwyI2d)-<Wssca=
zBwEAuwlU2P547vUsqS3FaDRk5u8^>)T-EVq9mDWJ7K+3`Lno(y=!xmIwJ3yyC$*m1
z4HKaGt=mc1m)GnSN!?GdwkMRi7CyTdrjDQV*FmXc7D^5et!m&3xgh{)Dk>>$6GSaq
z#6*a(Ei+*3V*FFR0ZLcY!jE3%GsDg~TKAfkKWas274p?Z4CPqrWJk4#yCx>GQPD~y
zrVbaFiHUQ7x)&ylX;Ku}^803q1yDpgYJLjAhtB}Fb=fDI56~#^Qp31cR>y!9E}20;
z82i6x1ODDNO1+WH*bAf^nh4x)oRaUCK(2YPN84#M-aA5R=9)$f!5Mp(+bm4S<nh`5
z?W2O=yRKJA^fj1f8=JM3GYUC&dVPJM_Y=PriZ0x&yj0bYy)yMNxL3OW`|s{#UQ>e{
z-#o@}ZrgmJt!F$C!(e|dCAEC!hof{e-qo9f|L+AL;DZbSJJj;!tc=g@mre8awnhMj
zg{<3V6vUk9TsX96$2b&R=r9`*fKXa7{!h56>Tps?FBqU&AT_(KzN<_}WUA6Lg#}so
z!oMdae+H*29vO_g)t@6RZB;fe;&;z_OOMu}xpUUcv8!a_<KHwE6oqao5uk~Q`E&Y`
z!v?%R+IWA9R?@l)Kx`jv)I`(!eH!ne$DEo4Z<O=;)RLL%&|gp|AtpUCU2637tYBEN
zJu8!fp{_a&Q5TbwW0Yx6#=xQY2yo)ofZ+NYfPet>rG(+@l<e{=9}}J+w>#E>-okF$
z^UO~qJGg}uv+01z!ts##)w@`3IQhOSMey-{>hfsnjsEPZ^>g9`_d-cf_1R(B#1~vb
zJYy#xa9cVrn7J8H^-Idk8EvTyDI;V_!W}|<uxn~56$1<FA$#)_BIJFdO7Y(BTc7{A
zvySd&(^p7xD~m#oN9igWF%dr1z+klyT*|WcB6w`AZpu2x3d7~oP+_!vJ6l@f{<`7S
zzG<oq%4{%pSyff$xvgE=rw_3wGLSFE|3Yj5kQe}2m&<Nx>#Cr-Pk}p8z}2qas_=-!
z08vzFX5Tl7?8^a*W4}9*$B&OcV;z8s$L;Tuh^;N*{l@d^%T9@)n5!%2vJGUxb4aOe
zNgeNyEx+_g)pC$9Cu6P%3@E{^Y>Y?qgN5DV!YzIyTdH%?_v(*YUG;x$@p~qhS9?Tz
z)$6ir_B5V=&wP~|i`BMy77T!SynU=JY$$=wpsY)EzMD&PAi}zMHH;2AiBRgFpQnH{
z*U@7~$jXZTSqg6f9^=5+N`ooi%_nTa)6@Fz`O9X!@S;A+S=~fy%%*hhB|gYyzZW{c
zPGt=3&2t2m$j{6`;2?4EADKE`D1(AZ{+tU6xvFtWKXv`qR~4ZRuL+dYi7PrFQKlSY
zxwrR!hxdxTs{?XQ!0=|a4~y3vDDwsfVZOQ%spCMUy!WG}Tqu>D+^K5o(ohmA4NJ7K
zKKQkb)Osj{l3<ui6R;A~f<S=V%gn*y$J^Wg9)IqLUzOzrm5oU>5z5(pAq~Osww=5x
zsL(|NbqcR*wYMnp(NT^M(?-b*p5YkO@>jn<er9R#WCxb0lA@xJChQ@u&k5Q~!;!zB
z{}ZNbh+);nFlQUb1g?j|6+lP2e2C39eSiB12Wovj%P~4N18Fu`D$#Xa*}*4lkimMJ
zQ|Q<QF1CF*k3n>HJpF58Jx69n(5^U)PMZJX3{g~35i>LUMCs^NatyB87^6C0cGDj(
z$?1h&LKF<p<Hl&Qto_EQEC6H1qZx|_m$7FcGZPWRs5H}D%q}13VCoTgl!n&;0VYzl
z)(g_13R%YbW6RPm`h9=#1T)h(n+oFzxc|c|?8Ohkj%X`Zmq&?qeE8$YyQ-_DCXiw=
zcToO^-wO<^+SrVmVbZCplExtEGQkzzB*p}7n?!liL2VRb-u^D%=a%EL@?T|T6eBnY
zxxl^)wE7;OsuSjmrKr4!iJBT4c}c-OOs<*IwAC1=(#_a+E-LX;yQug%a}9+^>xFin
z=H{V*Ru*$ZWCkqn#<joa=P|dW=Z;T~f%zQGI+T5HgF4;ky3%?%+^Jq+z;RfqB<t%-
z2ozj5x3{bS*b-Ch2C(}b&y&FFuLCR;eXYQjF*;cE;jco(01V3GR*@N)T+m`7L`6qm
zj<ZiWj!ozQWJ=;9Ohg=)lA#N`n#f~A8J3IXE*j^CefPCA=(st;tIXF1x4X;v6)=Z=
zr5LRcDox!ogJuRBR3#P%2Zy4Tme4E-|9X{sMIbxjH3R*9J<iP)0*TMMLMLl`TqTgE
zN3;;UoMk61bdlRYvr7Dcm_0%}v*HdH!KpGgm-)>z0l?Ypz%c)|+fD~<?7F5;`B4<1
zR@mHQ`|F)nq?i-de&`r4h)WpOtQa*G4GsH|e(*@}htTwp9=648SGp!)v`l;BzU%Wp
z9!yCv-BufD6A}I|4Mj*km16RDp<mEcF+y;K2s8l$xh8#p>v5^+RLt*m(Jy*sg_oE@
zOECf{4Ey#$%=gilne6lU<`L|{Lf^SEihgl|m~{po`k}Fsl3LzMs;q**3Bt9*^Lv<I
zI}WY!k56V3h(wm1w_umG$1X150PfxP>gP3J)XkvX5C*u>93S^JSgKojY`fxkI}j1h
z!TUa)cqjcYMc~qw5as{Wv`SDRbL&B@q5rsww?zLMPJru{kz%kh;a%0rYpZUAio%Iz
z7%h$vfFKeD$^7P+K%L_e7%?h+_BK2<ySh50GWAUYXqW-(IJd`^npd0PQ=7vB-^c;U
z4i8@mC3H!lT4rMvirWc<Z}`CJ=x-VL$`~z~L=jj(Q%Im`Ph3$vAFL*%RNLxM2s~j*
zxK!oWYT=k2OT%}DS<QVlNVZcYJzzc;%1$pX-{PI;3=lqi__pj)YM=OgQ<PF=dN@gl
zDtE;!P>Y4Qcg4eHr#&^+UR~VWoWi{6%?#kK-mnMT<Rw~Vsn!*291D3Fa_79Xg14&Q
zj;nF;c?SS<@5qzui3)`d9XvKbKh*liQE_S|7{oO;nX3|Cu{1YF2xBpP4Ml#*@V~Zy
zoG<YUC?2F@ZXh`V_U=f4NB~G(4}kYpK}Y9{5GuNu*kUJ*qQ1(C*xK&yu1)JDm0kOz
zxZkzGJJkZ`La@-EY-(aYO@jHCgE(KCwhuKA=BUExp?L0Zyi`a~#wKAAVot3c2CzD+
zdW3S((E!007=`10A(X;da;)%uwM%ekawStX8oo=>-+6yJ-7ILnM-|GY!Os2;q_8S?
zKnCwQFVz61CD#9i$lu1k*Qy)&G@o|~8r4l5g()+7lq2I#^$k2Fw;))VwYi>EQB|2D
z+W=Yk1c5+!(YzQSKW0LO^M0uIikM|@TO$c4=a$u<zq@Fvf)~CAp-Cb1bTTI<(+L}n
zrlu)NvaAdQDYFHgvolbPK3MjM!+l2#zjbJq{48tiV8%4tw^n-|MqVU3sA6S`Mct20
z*g60!gkHesFwacG&_(*g_4M3WD|~PtmtJ;{T3e=K^b19%fB+RC5h(*i{45oG%lYf<
z_4rttmv^P6ssDm90EWN)VO+1}+FNc*pCZTU5G6M?nsefb&j^)Fd=%G;Lm31GnsH50
z{>8wC`YB3+_3;A~hcE({?b`1|@$036*vqYZ|KDY5^j5dhDkFDAk_l3Fo6;?%AP-Zp
zh5p*)3Lxhl(^oq^Ds5Ix<B!GrdZ!V6F%xpfk@m=mqH*=PoP;&8`c=9MfY5d>w)KfT
zZzKrL1yO`+oF1LZ%F9~bp1xS7Ey^-w2x+@F!x1l2?n1|nnE#v3Vq!gh^M9|juQz)2
zIzB%BRapvnD|!GzC4y)2`EpetzwM;Vp~6(O<c8qtoUYdaG_B!wcsN@?q~qb+BePF@
zyWd%#%}NVV;m#vY^W_WTDv!$_xSY2=e*MUb`BOSA5{e`8fZdOlA44R)Nl|Kgix6T6
zPK(;g0vkc<#+BUeO@A8d{i(-qa7u{(;;B!D^SwT&p}0?O&|R0SO7;<$5ZI`DZ8G-4
z!YZ)xvT@0zEIuW1&@Pw0fYcACozE5#G7)0lrOz|jVzUTxE+&=!6Ss_-*EEvGK*kT4
zLvULSDrC$aFhotgiAUAcrRSv&cJGEs^P6PVOjP$$msI9**tx%au0adL4HAuv(}boW
zAMO8wM2Yw8>;sS3yOpbSnwr*I=&z%dR<b-Mj<5zrYNcvVdz;AkW#js5K=)f!XSNC^
z&Ra=c^IY0o3qdKXq=_QLn4V9`6%mg;NftY@3+5}7aWa$Ec!F4DX=Ua1@?rL25g{Ls
z#~;Nbe4WS|2(!W3;<!sdfrR&RE9fiP@N~T)X-bvu5%$N8yg%FrX~gegA1v*xWeMeG
zKSCPkuPsb-*$jGsl_6T0w6Cv#Kwx$(uTLV}SZ?U$(Pph7{J4y+m&D=lKtl9k7o%mE
zA!FpC=d<4rwQ>zdC&M_5k3j_I=ZBW|%+*BPzqfvq0LYDTS%q#Pj|UsXIcI&A_e9C&
zoaFJxE0S&hx9ay((BI{DVp|4w_D^nq*9NYcJBF{B?RJy+y{CvwSC^w{vgCg{|0=>R
zJi`D60|jkm3FTb&+_5J97Rv;p-z*Lr3TZio3x$t%f#zww{U^{b%TOg=vSgY9KMm9w
zvr7##mBXK``do*&nWi}PffAPaC|m0g63r>Fgl^^gOBI0<YX!HY;4juswg56Zanafy
zNikd)L(&Lx)znYWN|;J$p_;bS$*ONkv|^YN6l|jKY4oJ+h8By$_)6BzDZ`VOFrqM{
zMw}){kd{}PqTx^}k&n^fWE(CCJv~ArTsEDC?63BI^?s~-IO-_bE-|uZn7}j~iGVPd
zg)@A7vBg9wfux`XIL6~23+<(S^O67Uh50QI0>OUUD>u01_j=tCfw3bsLz4JRyaV!o
z<#an=?n`;!Q?RnKrpSPoN$jc-9e^@;yGnWNr}o=md_nh@D-9RBY8QcnUSH=2tV5nW
z)BRej4ap0bh|qMu|D>`Yso+gtz5O=Aon2TS3Ct$qvg?Wfra{x*H#GlT|A6kgzXGbt
zD{0TTyK@7oBMj&s9o&i}J797AJyRgT<FG}tsOwAFeKAt>@^=1;(!Akx{beQncOwbs
z3Zt+efGl<%oA`Q}4XUDzekK^Pnml083ZW83T5Q~}vDeRnXFoawW`$w-5geaWMNNg`
z_CS;OX?2!U6iL{^$hGK}-N;(l6foE>tisTv`$^wOWxfQ(X`v7P8n<j<GTvc82q+Fi
zJKO&HNrnc?NS(E^7&V|*HUNP_IF`H?TAIy-4fjM8v%<cF>Xrh}D6JNo{v&m)28&g_
zD;6}ats>syGbgoqO^fz++V8gP7JG+@?NMgk4W0IFVbH{0KMkOBYJx0*blLGSo#n_s
zEd>{Rj1@g&l{WI}Yb@r28caUsF4{o)N*fGRd)Vgt*z<Cm8NUu!#dmxmlJ7LbdmrBx
za0I3R^}82wN^t7QHDzvPMOwoG2NC<`;;Q^7x7%NCYWeKk#x8&!)^vfG^Tu&{oeqa#
zxuhKzxX$NxQ6NENG#7fS+h)w8c|xY3FiC%O+}2e*$NuRjmZU~t0t3P>x46{)+n^<|
zQ7d7hJq?)D9Xocat#{%~jmLq3&)}cGfAj0>6QjR;z3N)s9J-jM1;*q{?e@fxI83t3
zlQ`?aCl)>n#f_N7)c?S305}(?1t3Ce)foP#ESc?h?1^slzF2>6?@OG)We@_vr=$e(
zTw6ezEw_&Bkk>{{z3n-6IdZ_gZh~it$6K!6?42rt)5K)=tdZi}RHiT<bKzq`ljeSc
zll}Z8ES$^=Ar;gat*7V%3N3`<zao%3m8jO1W>b1{s3u7G=oqiap@<Y>*#Ot0kgrZr
z`QnpR@*$cMQtM1D)lh(u-1y}i$T&eaInD@v?Aufi8j;lR!*ldB(H}=gR^k%kwU#S~
zQ!-Kt%F>65V@;RE6SfvqrgI&Qkq;l~%B`0kuh?BU)mXdp0*hpDiv8(>b8GVg0PkG<
zNH7xcG%8j@{sBsmq7~)<wY=^2#HzH~=yau#LAxV0>ZeVjo5K*$-W~3zEH^q+FB<rN
zw5_!LVKN(W<McfLqw!4}p$h;){^egg*;0w6*4a$5m?%rqb>2T{(51#3yBUS2p-owC
z5GT;ppgtPPFRP1)@QEoK9c{2VtmFVO0uX(EKod7Q?|M~TR0WJaQYtDKz-%B&K|aUb
z!FO+1sq6anXRWsP9wHL988Vy{u%P6;^h<bB@2O8M9uWM^%vv3#_B(N+A6(Q-Hdpy7
zwC}{jwj7nS_tIaK737*xCnz*;iqWOWTbd-84)F?vmx7NJf|J1w&NTs&2z(PBXr8;&
zPWuJx!7oNpk<$g-WGC%@+}Kp|PfFTgmy4QD3JI4;`lK@ubO|&(wBn&clV~u)X@NgT
z`gGsavvk~Z@+*q|oL`TzOsfU`?43)vQ!*r!CPI4Ma8~jJ`RvB$)MmO~&W+J0gIk6x
z#o}U~rrqtlsFAL)u`{VHf*{}uJqR*8Ki>}w-E{qy@&7TIfq3^rWcQ1VHU5F)dNSkM
zZG8JLIMa~;fX-oU9wB!3cVi%+(;JTvZ@Y6*|0I*FYffdERj5wU={66rd%$h_-qbeG
zX?+QbA*(?3*~yN*$}X=aqZ^Nd7m;{LoUKix<<V(|3km2ET7+F%+`un*-GtLlPyba`
zVQOxEK<&fC6h+BMY2R@v{`Pn3En=OyyZ2ep0rvWU6BsxS{P~0XBul&RymAI);soC}
z{j+(oQlgu~TEc2sy6Y1S9v;0DqAoHVrS17LoNJuj<m=;rlcD(aLw?wBsfaK9BvAzB
zjmm)Lw_HZFBL}kd6iE#0U$jLK0!m0}sHt)~X#LQ2?Hbkqgkft~<QQ71nZzu*9R!7{
zK!h|29L~8`yh3QT21S?FdK>OtLYuH~9ahJ9784qAF)FhkY6-byxxz!1gazctxWcsI
zyL7~rlc-zikuqxAGU+53s@!3$Dhj}?+=Ltx#>lX&Zi~tXnRNLYKc(<dSo>E_*blgS
zeS#s}leYFuUe|~Xk)X_PJl}o&(zzpMRtgcL6G(<nR`CLkK!oH{A!P<(BtkUcQR7-s
zuA#DWf!?<)!JS9JcPhaRp5OL92d@l&(+|(S8mtsmQpP0!pk%u86OV&soOmJ0)eb5;
zwt%Tp-k-ESG6OStq;H3d-IFSUPiP?Z>K&QxTb<OUA{21yx|cj$8dtvL;O$pHFn_r^
z?B4qFpXERLBCuQmH_Y%dUyLI9e9oupXIco@YR)^@(8VT-o=g9TFv>sXrA2D12lmXw
z!SDxlwnw1<>j1Nt<SnC9ou+z)W)HFd?dMvqqlaB+F1EC3)}mLkgWJDN8TQ7nPsk{&
zQaJpfCD{)E#sB#D#G@YKZm;oww^K&?n<TZXh?yBB2vTwB;IJe432;NY*SQIk`K)3s
z&Q6Nh+C!C+GLk!aG|UCuLKl)a)Ww9P;d#a0ULKdjwwRxA_G^=eB>r~pFCqJ<Eu9Ds
zREbPEOmHqLDy7_d%7<SPN=6JABQSytF#b;KMIvCLOWRJ%XNZx#H%m){f4V0&S+XfA
ze#@!PV&vB%Q-0hmBIlEm&N5DblcGI}nUR>FG(XDV7+V$vHAT5lNy`nfr^Sgy;wV+5
z*ladMzh4v)+GsbYpHz2e7s+5hT-Q}4Wl|5|n)s*$QA}tXj}ie*T_TXEUN!Iu00a<$
zo4n6;xg|e!1yaPPthD5<xb^nvrP15~V`y4L{|K(Nby;au)q(%p`ulgOkq9h$MZdM8
z?wG+A4yYD%uHf9ZvIxPa(Uf%_MCwLdXargkI`M|ari2Mo&2GD_cINpEwa?Eh2WM&n
zF@(&Q_nRF#hx$wU_~fKCn7aB;vE2ahdE2@BrfqfXpbl__O&QaC{OA0TAod0y=6GkX
z+IQ~j^^;};Pud+m70o{9W#kf2b!lkaGyGY^1yo2zLo|!9r4`KCZ|^i*%fJk7XKt6O
z1ec;i7#S#0hamI0baW$!PO@@XxWr#9tew!~<DrxA0=b1PqqEUu<*|UNO@X%%yS6HM
zV3?0M#xQE05bl3m{o2&Yb^{HuL`8EUY^Wm@K|`!G+o|JiB%S8$vN&Y&*#x;}LXjpY
zLCgvPzp>GZDOTMDG(_NX{29l>sZG)+OiRnkoXC)mOivM?#@rJ+?#;)Yj?84BS$xt|
zddKSwEBnj7Jswll$+FiTe&EyhOQK096L;9zbHYzgxBOLJ(AXNTN~ByiPissXg8;<W
zS=hdfC&mhhpU;qshCoGP-_-0R$XNcWmiQoz(6ERu-?r0YB#A%WdK0)%Ycf#qLe?+L
zBqJsUIC=Euzs{E&CWEsm(Hw;<M0l5Y;Y2pBvq3(qe2WMQQX1}+CUSs5f&7Rvt8Ali
z?9wZlrL+6C5|-O(k474yS9UOufC81-l>M+IxLEbOfMN_kgS2k250ebQ*=3(&w?8=Q
zV6>eCgj^oRiLA$PLXwP$SqLPVR~^K-;_-_iTGbXo1VOcJR^yNoUYD-zt7eo#^>D+l
zP6l4E{GKqV@6LAhm(59TUS-x}R#qlHf!TZ4D<ES!^gUM>nHj;Rm68UdX5u6BxVeA{
z`SkPicIBNo<y_Qsuo-Xi(Fa(+hDQ=OZf#!}&YsR8T$!@0u*6rAHl;IsDs(+#&sH5~
z3F1nQ50KLLc*3&NhJ=4-Arza`lN3q{n|&)h_?Fhsv<Olb@+ZN%`c+X;SXv5iO8{mJ
z#_?btQ?fRZiOcyie%*ZKItO~ml3eN&_V`I&3;&E?!}WVq8qDycthlZggU1UHwfKKG
zt+#7675<F=!sRru(#Y|ZlTQg6nl3Sb<}STIx%5)$uB#)GaJA{O@%`|9zjLuGMW?De
zn=_@-allZ(T8)l`_KUJmTrx5qXckj47gOmkY6yh^-R!qk;Ixq^LurP3a2!UW(+2{t
zcrqMeMGcL^IOvRvrEjG2(qPni$byod%5GIRD-&DS@WFf<+1sDkx8V0(=bU}^oL8}9
zYY;rU7V7k(dnU2K4V?S>?e_JGem;$PVxs(=2@>GOw|H&4E%aJ&M!n4JTxCrAk<jZy
zN&)n0fZAncYfA|SrIBm`4IEZM9372pv(kZfAxc*C%_btqhIvcGtdcT<+#s?X05EcX
ztG5s|83+S1jc&lfH48~<92|?+vog$%S9?;}>ZT7k?>p6~MDdX(W0$3@$xJ%JDkkJ5
zG57U=UAyaI*}%vJ`s~3%XW8Ra95|UFya`2{h?wwjW+-Rhd-IiO6$R9Fv+qANd-uZ!
zl@;*UGy5NF;NpeTVrC*Fu_h<(Kohq<lS6}7G6q)017{`=t@~FNHV~?li%cS8vYb@9
z$P~CzTs=pA1F4KhpN+BWR!K6&y7><;!c&JOq>}^2Gy7csm4d0u;1v^$^CV$JNU)?o
z&Cf4hZmc#t{9|Ig`@UxYKJd%mulLtep9%9zYr}oI0)bF$LgIh^&yC&N8UpY1QL#Cu
z%XMbDbvAhZ*Ix}v%IXrnw>shLh<}@1DdGkz_jkS1bECy*f*Ra}-<EBX6@2ef9yfr_
zI<bKUc7`$M<x%0{r2Fa9TVG07|GN9;#1*B?h`F<+iBCV(+^3`IX_gZ%gMFNzx$<9r
zov*($0-8XeGCJXq8KF5-6)mlj(Xi{H?ZI*RSI2?<l#*SO3fJi6fVMWTNeO>%56dv}
zp{K|7&1by|RtBw()T!68sToC$F=C&`*vI#-OF4a?yISy<OS>8#SU!ttt6mZBk*IGx
zJR?<ld{&m04m{NM+9zNJWt2Wj+s=(J$~8hOAzT)8bk?5VU;)$4emz!9Q+#XG0o*Tg
zc~lXZxcIqsRmm%Z;y0yGc_=gaff@FjqIw|uPbS<>g(<65+QA9QM`?+fbv$n8yuan{
z*Cc({zajLocRbB=JsGTwy%ki~xxMa>pC22J(|D=t4UWnYW^%jyC|anL#Ti<<-9bc(
zl^Dn5P>0^bx7GsSpBanQVrgO1nwWM;#LKeBG&0DgQ@dUdj;=N37OcD0Y<iOmifS1p
zb#(~`=2CKU(eB?$dT#77Q!qz}i@G}oVP%Z3&3@S(VW3AP^^=jH2Lvf4eK-54UcEZ}
zA||u^k`3bV`@;g!q#C3SLsR{4osf{hpeZu~;p^qs`304vDKvz5bdWitc7=%OxK%Z%
zU~ZNKq*uNBdCjqXah@sf*pVP{Bp3(~p#K0seu_Fek#X`26rLQj3ABi<x-kZ?3(SU$
zF^zUc(_i(6P3u)3vm1oVT;46d%v>#QAl;v&zNJqAha&*PuHNp0s#wfGU<CCxr_rs;
z1>4aCjJ@{XV7rEZb~CIX>^m)y=N_6}=e~K=46cH>_x0qTQwwJlx5-Ic_;_kxAr^La
z5qtaU3|;g<G^w;egET7mOb&^ML89U-D_t!b>FKvtq}|zmlb1bAdLd0UAsVciek75h
zC%l|=VRI<DvT|HPMQE<yVGJ5Jn(|`_MY7_o%cpn{CR?)$Q^8J^T|=FJ%JItTVvXqt
zI?;261b1sUapIWcpJ|q?NMn3$;Rv!^=Mg7$Ce1-0yb(h)kEReabAMdk;Oc_$3(1H{
zVoCGg!Bm<}9{)kCp-%GgtQhB@OXqWUUI=U+_rUXZyprlH?7PQ?$mwM(-<EA+($nL7
z1PqQ>b-1eR*EY6-Jyy!-M%=XtNXPI4#Pj0;ww^Ejrz}LA8A^am5UP-AXzY{uwhN@%
zy};?*J9SC)t#557mUdN6?X_FK^td_=rd-$dCl_&5j!)<aS<go0zO>q$?*DN9t)zOB
z5UK*0PRWB!_sf#z=jRJ~mP}tNCG9*)#9p>@9^-U0A6^MhPK&y$V}TB2Ga6xPPu|*s
zxl2nBWwGl}TYPBnpR@u5uHvM5)tUyy1uieIt94EVH>UbN3-%Jf&1g(3?Gc>$es);*
zuFld+zoxo6*|6g}G(7y9X^sx#=qbA6EH0H66SU{^6FDIPc6O>OO;WM$DP<O(4ww-+
z*c7JtzibO8lvhxvjA8ux!5uT}mzBmMOKR^BFJm0ureM{cFc6vY52JnIjOE$D85NVc
z^DqP0`MHXfymO&UQ%MuyA5#n-kO;5&N-IjYmo9LDz&yhiZZSd-2Uo~Py~nx7rY;Pc
zG&nhrLj+BeaJli}3l@NgN|IY&&d=Z64=?#%w9C!N=-EEyBqxW4$E*AQy#R6?oLtH(
zdLn=`XL$rZ9jJ9|tjSWGXNndMI@(}EjsD=5KYK4fg?><$?j_09WcVk{h&8sq0sXS9
ztn5D<3X#u6JD?NCd!Iex{wvFm{I|)L_Le23mx95;Z~88$>))lsoK-M>T7w=2?cceY
zH(U}y8$@DzY<R!DTx%jhQt}>#4nVu$69M3K(B4k`pLM{2U+k880a&%4z*Bs?F3)ez
zrQch$0O?1JNzW0O!Le}aZP~w{`Cse2-+iqW&fQddG5Wu!35aYVbsSXQ=A#6-e^2=S
zDI0aC!Poim+p_M)J*_L*gA!&5B^*4@p3mJ$TYpPVqe(?!KXsb;Lh@3e>VHbC!gM2}
zG8%>!9RG9D-xv80btIctFp$)<itz>f8fIbjh$u?qiWqwKJkZ(PuD*f3Za+}bn+q<*
z-H!mJTqRAtveu%so@QrgHCUm2#F{g`p=DD>FNL2*3#j=uj>(p4s%v?yy{hGYZR>ON
z{_-*6)32&>lfFg}aNz9_%i{zPo4{g>pvkMnrc<k&t7W9O@a1QRJm{K-V^Ic^sFF&5
z>aP`F#jWHl5b3)i!Z-Br2!4vl$B>(rPh8IHyh9GHvv+Z7uz30VwjhZ{9xQ|yE;S$P
za~+6V@?H^4UQ0`gnifYES`ib^E3Ork%|v0?K(3bMyg6B1VliwgjDCq)?pnsC&Va2b
z%?fNX*Q@Rqe}N-VcA8G3Vqz|x1)q%sUf78NRL-hv*bF73RROYO0JzGo0d*jTpa?4A
zOhuXJ6-4<-h5Zwe@3Gb(6_q6xs<|-WY^l%M2gO`v?4<jQ%(xRhpsZ*D6rkT(?tZBX
zKF9U*TpTlyl|ldabN>ly0lz6vTf5gM`iD^szZBr86d~S~)uR(WnBQmX%yaXKW46sU
zo^v?s_Fw<k9ilih$TrU^<ZDP|TUlGD>&3zYCyB)AGM!x83h>gHs6~AJ4@QQhsxaJz
z3ul(6JLsQ*4=_suL%WIvz=fEf&!!+&BpQ<Nv_jV#gMHR=t9`(zC2gWY4h%l`tWSVV
zcFPwy@TwLLU`Q4C>63F|%8!4LVk!XU_oS|_uBzso^y*9{b;Y5w0(~7#fTZh)7!pYJ
zFBDMm(}zn2<Q`Ps49@-pti@7(7e0hGj~*hPF{?=oQk1nTV#SUGK-x4B-CJ2$Ey3Ft
z(W15fYr9NljpX&iphO6~_oAM~P%oo|(j+yi0yNnuRs(^l-qY^+`_|8wi`pTr#vOF7
z3Ihey&<f4kz=H#EAYiC`1*U(DA0|Olb~LRoGy%t$#1NkEhL>a)zwg0UIOY=pejrnG
zuk>o)SNqn-!7nWbW#zi%9nHtu4<Qq;pT7+Q2j`3*FM$61%~aq@%&TgO0ZgQCdkSyh
zocI2rNl+9l42;LlNJ+SfoQN-@h)CauZ?89V4dWp5zBYOS5AqFudAI-TJpvRkls=ju
zr^$v+PChcl9>~a7)B?ld;gkc4eV(Ry>T7D3DzoK!WzU#YxpXNGyN^estSh`LE!T&B
zp~7ZrWvi>RY*X%ccqNTRAstHd8jDWu3a}<*IrDAP`2;QxBMR%$18m@Mnov}lBj+(d
z_y_i<$Sld=Y*Qdf9NgPzQI1d#9PcK0a!eK=DOJ^GjS+NQxR|e||5YfL{Bvq&k22mO
z0z+w!Y%tfFCM*!dq8y&xACZaDrv0S;rDW)ZOFB4fVzXq~+yqE03l52zvq6e@ff}_F
z2!-Ne5ssxR+y6hB&VnnBwd=Nl;O_4365QRrAvnR^-QC^Y5;O#NcXw|B1czY3-EW=u
zj_(IB2GG@2Pwl<doQo+(5!<6G!sDo<0a=x`e}JM6<1z4$qe&HeV&?)kODN`b-!geu
z=QCs>acBcSwfYW3u5L)*gN0rmI&bPx7Bu@>FFHRyEH9?_E`Ck;emv;fUT_p%2nMG5
zaU@bf3}lgo!bOo$*f82uNSx}QHfvV5U>mOaG>4wmw)*H@RJVYA4DG8mOJf=pA;m+I
zsYD_1#{~TjInKMm&u{hM%|k!RG$&RD`kEEQl)T1Sl9g|>H+}`PH{M5Q$A63Bamy}b
zDcT=zNWi*1Hyi71&r&OOE(h}E^eoh+Cc&VJDbzr(3;K)Gqj}Rm-iJck!KdAbaS2F`
zma`5({TPpc<Z0DltkLatq3_*A@K|<?ltrtQZEaz7b$BE`w~ORzb~`JGv!+f=A*z&`
z4Tlv)D$Q*XJw&vFg{!E7Jf=b?eoPi<KNqnpY-_SqSs8_wWX%>gTWE%2$LO=jv{cl8
z%M<gh-mY*0AJ9pO8c|8QH;6@X!Ps+&50gO!vq6c8h9cEt;~{AhKlEb5nO5*{mFlCQ
zhbCaJb-<}d<#0q5#Z&kr@Qg|+Mw=DIe$NA`iURM*a#1#RmGQbSb!RgZ^a<q>yvn*o
zh`Ex0AIj4RZ5(?2lU+~~q&3t;o1ins0c@}vlCAaJkT#}i{0KpO62u6CXI>$He+%8#
z2mWw<?%;^fX~}Zl@Uemdz1QLT)&#KDe+<nP8H#8GHy#fl@?Lb^Xt%h*mx9LKSNk(x
zIe}sU`T*BgxWS~~jDBA&7`u+oF1As(K79XE5#CsZ@9ad9?DA|q;=DhzeuQw$XrIlD
z^8@=_S;<Vekf6-zCV+|sl~F8{Q0Mz#+VwBOmUze?p|kV-In!z5j#X+xvptQyrt2(G
z__@66$^OD*6zoeBa)anX7qGdP33H#hCl@K7X0cX8Rn3Koxwr4~#OZ@3&N~eT1p_8a
zZws?ZYCOTWUrFTzBig%d$NLb~E6V8!$!m7pizW{qXPeTC_7_l}sGNx~wFM%FsM96k
z4qPo0Ld@dD2v@T7<fG98c9I-O(IF)&U6m@wyH1hU6lcS+q^F>COo%a$;i#46f<uR#
zOsu*1oJeQqLzHbY(&g8d+P`3%c8mI(loUSQcg-F-JuPIUCiT^WcYU5|NDIWNYP!NK
zt_9B8p_6!t6Exgc%`@x$h7oe6VWurYKf|Ipjh?mE17x{xmm#=8R&pj0#!=uAnR)_7
z1HLp+%*_mc>{mw3xvi~>aaE_17dQes&$N6@I;d4e3zYfuLq3dhkU&V7FHguPG{6Jl
z0CW~1{>x(=LKTS9uMQ3I`jU!_k-qLk3jH!tBS8tUn-xwV5}p88qq>abeC-X33gipm
z!}#$Dmp>Rg!>0K^w4Y9oA9S|j$l;j&J9P~Iw%k`;<+JpLDeAXJa9s~l(bxM=o7-Z#
z7!+N&=Nj(1)cD{C2h3tI23Bd5wV`upSu&^Opma!6eYyD01O7LcC1oqT8+*J7>SNsW
z^K%PZjHB~n@?v;0vh>yyOa!%Vl*BL3$7aQAjBu$x>Drg&pS(8s+xQDzkyl*X1?7K%
z)$DvR?w81SKX_n|qZ3l~JAH95W?eDfRX**_L5E%;ZQMWW&SxkGoSfEy`OIr(D;4Ks
zh9Edbk|q!ENLc=p^wH3a@Hy{70b3Ib9~&S;pXA^eXT6x~ak%Y+R=H&L?WU*_U#~6*
zsJE6W!ob3`??hxStgI-Yg;jSwvN{13u5_(GeZU#_4=fG<EVpUU$wbg?w!tpvSGhm)
z&trXiVFnt_2%jNK;Y#$#8nPAF#MzDYMQ}%0k^ixdrlPFa>9)wyuCW0}65wqLc=Fcs
z)YTB{H?C62FZqVWGVBwzoK}!DFY6l^!N+MyUc-Q?lFQKc;qrG<N9xV0MG-@#F{31J
z#Z449rAj#s#O%L|;Z-fS71Th6lHri!#V$dbay|7iqiMnsw0xy<G#SIa*06O4^3@0{
zuv&zBa6~;EG4cBNGQtiRP!RP@^Gy)-3Gj-a8PhPEM5NmOnT4cYiNlJ+g>i8bD8(&f
zebE7CAyLVK2QI5(NuaV)YL#+D+Gy0m*Q@4>;%R8KaaQ|v5BnK73@5buI!NoPQ|UB3
z9VQwFqgU6IiRZsZGvm>(4%9WI7wQIbMQd1aD|KRWQg)_?pTfxjHIbx0Qw#+{I0Zn1
z0Dy{hR|AOZW_|Pkj?UqqLP4HMwzE@Zke~4Eso_J%ZJRNkNxa4TtM}_N?faCF<HgaC
z^K07dwk6k}c38iY)Iw2tp2*^#<A9u&eAJ02N1rA%A-8;A-+sL(RK;(%7SKjJ{?KOu
zI{9!KLCfqPd#QnwT8>XJfIjoJ_gB1#!RY`0gc8``^5%m$RZOc(K@}Zeh<8ekN|3sK
zDJ_f-GZT!*-ZpxrSGgn4RI@{g!C_FGE_r`hMdCc6mt;z(NHA#-n}a#j31Jh(51m)W
z)b@^2(N<s?GcKZ;<{dFn%O(q_9c25yYLzm37+nO%oc~J$G?4a>@^X|z_hvhR_|MZN
z1pjknJK&22b}!;=v=}}yjQ0<^Wz55Qs^P9dfGTccv)h+l)Ac?4kgSvfNebbHa4!!H
zJCCH+4|1K68XodNf0x$={o-=U`X4<XojhOLrj-&A-#)pVA!n{yjx^ghbzV3LG%w1N
zSvj~I;c2oeEthL2f9_oJYjdsC)YK}03%}V<P9M$1s9R5owa)*J(En2qZ+;X!l%cH7
z`r?_+b&PM%nNSe7I(MoYFo?1R*lp4G<5E(F>U$qh+wmR}J^1z_QbPfwVY74!0BB?I
z7Ba*I+^=uF)|E-VnXT`JH>96#Z{v)UO)tyNqCjWb%Gylp8|bDCLL|}Kky8bbH(I-8
zkZ>~#p})6bgfUt=&*e=L!sogp2G7A&9HwE&ZUqnH#bS}m$sqdGVv`faEeGglTBaI7
zkI0wA)r0ZbZNKKM46bYh_piZ;!H{F@9S)C$i`t&Heh#)~R}vb^+3&(AJ0Q{#?qzFk
zv6ky@?hUQh^jNqEZP$C%(B5xJEXw*EIZ~lvdCctDU}OZxj0IldA6c+IWkB*~m$2ii
zXGSMf+FXh{X^bnxvwWyBaq<f5-xNk*ANv`thNDWy*cXJMY@&)5q$=4GHN1eXQlzM;
zloo9s)f`b&aEn+*RTjj}-i+A@)VK1fD>LU;7Z0MeIwsS3&?U5g@N-Q5EhI92YH0jD
z$A_AZ8m*LWq7QS5YeX$Nq)ibArc0N3)>@1?=7c@(IF_w)-;zUzNajHjmH!@MQ#uj7
z_tl~d_`UH-pH?-CgQ&a(ET_Cfs#X5|ag4KK?)_y?-ZCI%F@R8#-X{H*U0m{e%6sMc
zYkKu}#duZD*9s^yaY)-fZ8D3CO&M}-MHNMm&=;|#s+-?egMw`j>={#rQ5X|)=nT*!
zWPYolZ5ktl;&T7!J-YnCky-29zh$3Kn)y99d}+6y!L8OK>;?w;`cEN;jTUzd2v35L
za2)uDN!|zaP*#qw;kC%Khc{gxo`EaXqyyDL^jbRdFh0J?;JWiTjz4^~@*1@9d^OhB
zWCi`?L89{Sm!B{Cx4(xDMcYX$o!s${CXzZ<vrY*`?&mR+RhchOq<7ufJ1QO8TnohR
zNNE|4|4N_SxS#!@`+IS*uSHBHK`k2(@!>=B&%Qr<Z@XwoDIv4SG_&rwbV!NCBIeh%
z`+rg7%;-?LY&6hD?t~(Xj(a!8<M;v|X4i#MXwTz+g`9S@GtMZP%P(V7^}Gyz^z5NG
zg)OP~M9RA8EciQ$GJKfe8D?GJnuc9_PBO=d(+Kfk4mz%%|Kz9vX2I^%R}V|N3Z5!F
z2QC!{SutS}Yq~#G%)RGyIoSE80c}K-00F1+lxiYm$%HD?Up`KQ^2W~8o&t&u>gn4h
zsP%giVC6vFO|C<rkw9#E;RgS;E-cvmVK8ydZe+@EH4zL1jp1$XV4SJwGR04tqq2e$
zpiOHI^qNN~J4q~a9L(x-H{VGpIF!vjB35mN+=_>~o+OC8oOnF{+<*Eq^`%8Nb@p(z
z_3abbs=>Q|tbwSLbYuF=^Q?4<OWNVPYztKd52N6F-`>&hqA&P9e^FCd<t-R7f$|&D
z;*>gr#~0o|Dm_P*!LuK_jA&qi$RdcL>c|3?y$ql3ejsAoth-U~kUC`H%X_E3SB_lu
zvNR(XM@w-($71HFH@iltt%XsHZguJJ9*<2Xj*1~8OYvaK2r)i%RjgsbI5neuJvKv1
zNf7b8#6){fD!nNBS9}1Jd{sP3@9Cz>gp=KCL^9DkouKxId$CGP+fyZF(y>=Lw~I&I
z+0P_JhGb(nAzxs%(UUb>acqr4b8&G)3Lw7b6B8fjJL?WG51Oje4y8<6c&#ebdY;B#
zcU!$Zh$HX|Ot8G|<iD!dpa(`&gG_h~TJtjacto3Z_W-WTpXX^u@|1Ht5w5i@doAmv
z>Az1q2A;u|p$g=6!dpUt?}9*OQxp#dz_p4r;@&V3mzM|MaaqskIa-Hwn7HsDrn552
zMTBxXqp22&omf^)7Cs^~_f&sfMD#!WBtufqPM^z-^qC-@L0p_BwSW8QV+1cusiQy}
zjoq2ZHzfQvWMv_<`_ToF-hVat-a9FaZ7QXS;IjfpOp<ugbQotb1A|ix=SWObYGg|W
zZ%pz6h8Y%rgLW}HI0=zs$XT)qC{y&i3)BNp6-h#P=}tNkzOrUXwIv#2xDl%~5D+?V
zrqG~fA8~p2J`BD55;M`OjYF$`G<%_eQ7;ZRpcn<t0i1|e<FkRmgQJ{J;<T0p?P-qw
zhY&0sew3_j*WwX8Ou*Wlbl?8s85VBmuC^`770gluL{idX<Vz<)BU`SnJpF?#Fas_q
zd&R0X4>x@S$7=EuU5x@$al4O@NY(<fRy+2WFWQoCW&{$CF4X{G!N<%JQe3ruzk)+Y
zu*sfUi(OA)q2ME3;#qj^$D?Q4!Oh1&Vn9=3#R$~tjQ&WGRIJyE-UpH0P|AVC>&!)O
z4q${-@B<9wulxOlPUi=VIxRlrK>KumqxU9&p^-h5a`1Ic@7wrpX|dhgc=sQl(`vzY
z+3@AcmFtMsu9)=77yU*D!)K#i9CjH!SkVq;KCzfKJkzLL^k&_7x`cUfiTym}e8eBY
zP(+WD83Z2E>btQ7j}INg0h4$shKHI7GO`4Ui+z5VHPoJu&;K?1@6Yt2@0j?oI@bP!
zB;(;bZ*K>9oc|fW_ie4Sm?i*M=?waA-gNH!&w}hZ*CZ}LK9*oggKWEu-`XaIJ{i0$
zVq{VA#xE`Q`!~?<w<^Lj|2gQ-yAQtsDXsR?8d5;1@&%YmNj8I=hp3C;L)gNjZk`0w
z<*~`B8Q_kNkDV`Mw`;HiMT#sW(IURVG|V2%2a1)D+A^(;0Q+FH(>Cf#e5k1z&8(b)
z9n-+;4`<*-Uzj_<2Is1^=Z-kw#{PnWP_%>??T6D&1jGmq%eGQ&Z*uT^fP>!wV<0&5
zp$f0OH2CY6&;---_EXx|Cm9h~n29&&89q<0+0I8lX_-hsV=WEs-UR;RKdLEwCG!DC
z?&j%!{fg_bTNJx8zqlw@Oma1{;)f=_(C4}+Rp~Wd+a0sHNwQl8!<3rJ(RGYWy3Op^
z8{NoLRa)8Ex6*TsOhY^3y>V(7*^EG+SHIa~535GBxct?`ZU;_2eGaIxe})BYt^RQ{
zgr$v*nXO%bNA#@q+w5~==HhC;u?LOGX(H(^>-)b(zmvc>h_|;5D|@w~v2z0fZ>v$|
zmiI?;K%@P;?aFRO@RX@4yHv9lm?}=A_Vi|x`rXJ7iEu+;Y`)KEEegyHM>@Py6`ijT
z9BYA*^y{pN0Z^)vY&M>}%%&)RB3GImE)Ee>B^5Bz1~{qI`wiYfOLAjo`DMQlFO?AH
z!^N`1^UA-(&2w6mjnm5!(bcr?l<voDaOUKEhP}TT4ZQz0LaVHr%`Yw7h-ZyV`V{-n
zU}Oh@y6Mj7i$ZGgHb?dgWO{f%E!g8LvYgXdB5=`F2xu-dU1z(a5Lr~Q5Y0)v%>-(F
zrfK+np1qy6Ai~BkoAr7|_o;?3logeo4$mH(#ybKutNC*|z=nO>1MDRJcDS`KXP$Mt
zGrn!R3+YHGSQQ$Taes}=AOUpv56sc_-4ViUo~HP8MlIC}@XvoWP7mNt?^D<<<&VBk
z{4wok0$Y|>3*-Z;&IjqNMz>|9M|i+@V4?v#^N~QRcF7ERgr8Q8LhNUgS&24Xk^LgR
zp{W%o!RAjsy_^!+0`3Jb3_-rugcg6x6wVYJh^V*^*2sYa=5)5-RtWZ%^BwX@^%@DJ
zJ0d;TfscO!{gSDR0SLAoK5NHgd|v03ep*oU-ss~N(23m-fjnKQIowrXG45cWOgLL#
zy}KOj+KG4EAGn#>D~cyvt=qAy0uPNCHPaB%t>B5#pG=q0QoyGnM7b%14dP9%^j;x5
z0GNEb{Tr+p>H)t5ciWZgXpt9=1Y)5H=)=N`u;+R@k=p(rEa~#Y<EjYJ^Eu<=a{s-9
zzXKd>G5EHBDY5NGMe%uny*=y~X4sIn#Lo~7+$Ry@`wAZKH3?oPpSNsWUg1!Yu>SPW
z16RJykIgL_8*X^eJ_}!V;Tpb{{*@mvPR=xFbWgm*x9?Job&_}FFG^w+9K^l;M+|)D
zxO)0JSL67+w((YaZ-<elPED+S<^q7jFq_f=Ai011PYn(t-X}HmCDC~>p0%{RJc?|a
zR*%%|Duw;|C4$%Mhz{4lNB9N@DRt5u5C3dG7`DX)@FJ?xnW+U2==S%&jsE<ai+9E#
z3>7o1kP++-P04adNr$8GAB;e^d1^rFrcb;W-TC&&d4SDr|A)4#(}x;CJY9HPbv@?^
zJHQI0wHcv`pFkz$A3GoQShO1fT-*uS$MnE6Q_*ls>={Pk-}(b@qF`65c+XUL?hI`V
z(W<4FS(FLi<X6@%xcRBZr=IG6KDTN$-pABt2>2N+xrf<3BN9Ed;aq3*WQkYu^y3FE
z#~$EAEmTrrMWD^TzMk)QQnX6uBqI0~OA!w8z}VInpMZpBD!pPkcj@G7M8vZ-=P!*i
z+X|4{mME&k;AcTBm?c{nTWDz+$!VA;{fN_Ve%J;Z22+OfGDM@dx3|FC+nB|dI2EKh
zkvWz6VoV^H055Pmyka2UVi_gw$(rvk1U21_g$O;7Z|)Q6vwHV?Fin7e9M=^~!8<PD
zcjJrNH|Ifxth`@yaLh{8^zQCz41ej;uaCx5m$^<F-F;wu@bJ#dzg4Hg$v_1cm0KnS
z_X}H;RdPOX>ADYrnKi{3E_$^=Wi{bImU?@eY>j`6%Xm~iQTA1kzhz1&M7@UMK#Yn|
zM@u}MaurAn81-32z`z27J9@&I-+h;JY@aDZk>Zhl1Sx)}%Tx&4Kl*oKV&)b`LYO>m
zfk%KRx?;;|%XQxQAxu+F!{_<t!#`nexX4sLFg0yiAlP-ot5*qPNGI}RhN1!I@j8cW
z7Lf1@2oU>}E)hW_4nZh|iS#WSe_YmdT1lg4ihO{?OYw+~9;!)N>vyIa>97z=kO>RM
zBQH54J|(488a_hqh9$F5uW6%@@`;yznS6G)RiQ8zdRp~xcL&^W43R#~8>Bmjtr{uP
z)96%%jC)O8AY$7PHbwK1Z}*j~#_!swjg5_d?}fq&L{h+Kqk2x@)NEZ4cX_S#M^wvk
z>^}{M&_e(!J#=U&CE1QQu3=wzF8AEBftig>3IKh$nKEQcgf=aP5>M9PY6C@PWoKLa
z_;m6Cl(2;cNLzz!Y2dv0pW0nb<AG0Jtb22NyI-P8w>u8hF1h4{giHOo<XQurT<y!J
zJ&M6F#k=38iNGG(7zS3R?a@24-u%X&UIV=03j<UM%x^NLyN<$p2h3*;rDWPaCs}cP
zE*f`y{fi8@F<CBhmq;Y+7DedTk>k=Xi56zPZ}V0(--AY-gx=)R<xHertx2Cg0k?C)
z*v$T4#oMJ_*3+|G@3A{YHHYzV2~94TEY<no%Lu^)v3Zj_17E&Deudo+vSi36#k{O-
z*`1%ZvLrAwI&3+1G-giUGY=|p0g7bef@p@od0VI-IZ$VpuvG$(5AAueJ(vIlM+=s4
zMn`V+m202>8BSt2p%Yb&Zl69Q);dQtCu_Ar4oKhsoB{(!Yf>%!YZn^YGCoa#eqmoE
zYHALSMnxrMbUm>o<gxVYDdia_ar1dK#ddvhI0ZDimEPq>i~jVoHp^`&WXOZ>IEy2B
z&Dy}^yj>q9c4S+l==#ZTt#RexIWU9QOgu^9I$5}XMVga}oESbdo{;mjk<+&E7WK|$
zhR?SBIb6$m#AU^E89^a*OzIe}MB|8V<ToB<EN4nM;)u3jAOxa}%;SA^tII6v#qRbG
z2_(0NI;$N#041<}Gn}A7x5$4YX@gO?uK7-^2yYI?;2{)zJ}R!#Zw~=#e`RQ1*Dqm$
z(2p<w3KSYw_t&?cP=FBou2Sz4ObFRNz&rmJ=tt_g<<G;I$y}~V_sAI|bl|y%PdZTQ
z5^#FvDE*QHNc}MXyEEnscrMJ(?<Aq#EIEiS#bp)bNJ9%VJd|)?%51A;%<lvrBK5;7
ztA8ehX~%J02tptnb4r;Z>8H-@3hMSnaXKV^X!KgehQg5HL?ByO+>h}F7jh-4d`v^|
z%TwkB7C^y+;L{ppm%kTN4xVsLKK|wD9XZ{+WYDmRzU71>D><0^;cvIz6OQ}MpQ}BO
z3d|K^_n8gub14YcIEy?6X^)oS_8v(szy6Q=C=N^eqqt8;C$Gy9)R560n(-GX`C>XU
zCHxbz@M3$;6J(&B-G8!Nsng~}GMoUTkTESI+y7sZX!Vd~aDfW^HO4#?fdQ{_PE9r|
zww^PpnFb9S&cx0tnj+H>WiW|1LDpqep8mm6Ea$^MnyW4RWGEW*Pr%EWzVCE1aF#uM
zQ|PZR9*rs<Ypj%7v*oD9PP^9FRO_Q~kDEgm$5W(>c2iX6jMhN1z}dwQt4TrrEKdE@
zz4dfqw1ZvC`iXty|FQsWNsY6*5i?=?1J*cISt|A|{nMn6Xz4m$XL{epj*bMwY`#~M
zFQ7|Lg)j)z;C^k&Hs2e@1+q~A9LYiRQpI*1ui~0Wmi1pE(UWaIu`(gvD4l<-X=P`x
z4Hj`J=rp|heS2^5T#TcPz`b=@)H9T&C%vAo4UBv_UmaMRoHZNIDb4%nLiBoI+>~j?
z;Bed#+<XsSF^x`|z=%MDB1<3nO|vE$CdL~%@8CRN>C4T`-OUce$O(d<IQTL+*se)z
zN4WTUT;n7xk(9tE(#mY}qt6+#3cIb8x{pAr3L7K|XRF4UG*5ni(Uv>0W6*V<!{~h$
z&uU@k79<)%Y2QAvPlRI&oq<--!EORc$osdcL3tmF{)mw1?{aP6=arsUY`-f+!|jXS
zOK5Pl!Q`ajyUTSj$6Pj<6~0QCM5&4AtckrEPMYUb$weE75XYov?+r0<wy$k4diN{A
zTC(8+xLMnA$!Xw9fcF`#**L$w)$`2t?R6KI!_keznP_oqJrwOyulG$rKXBs?c&Wr3
zW)J>|2Z;pgFw?$S;~!nP?oXHSi^>D~cJ1B(Vn^T8^){<Tn$c<Arw7+DlML3tgUbJQ
zK9Hw26k$Pg9FzJe9&z>}@8r=7tFFd*88F;Gz<MehjU&rM6yG~5b6*l1_FlF+GjqQM
zLdym7@_MO{vg-j%0YvT^qdR=lpr8m#VR;#0ak1|%eh=%Y*9(Lebm<5QS6Yz<s23D5
zu;XTpX$sUIDRR3%cNOgNKy&|*<npt306`6<syD+jg6*vKDX>(Kr6v!X4fyN&x}F&W
zr8DQAmHn&z*%wuaivS&{Fp(<Y)>0LECP)Dp`GoEJ3x@+P9)npR)r=<YGRfTfUtS3(
zf!TEaH-nF>@k!~LB*6?nq&8jz)t`y5K(i|9DJXh!DTafRr?}X%5~mX>z$xa+n)%5V
z8ANw-M-XpOX^{W12BZ<K{$lmjDdK(M<{mlfQlmg*$Q_jr=bnqBct*tM7vN`8!_*?g
zztOw!#RLeZ7HxW<nNFY4g8AVvV;Ew5;rsgBdg%oYU4S>9GHaPX!^|eYp(LCs1BK6W
zK~z#%84FT9Of7u<)QE+)3Q25W?h|7D#W-jp?8q-cDVJLfA=dAa@?sdp4LuEU|AtTa
zJ^G>TbPV=(idCH@{c#)Cu}pPLqL+dW+N@DW_<0^R1ltTj#|QTTGc2R#9P&xOKs4j%
z-_eiW-a@v^oObYc$nXTyu=D~v+Em)Hp+_p9em(p<3wS;OqJS~nKlN$yx}B|ATOz4!
z1Atz3;JZB|yAAsH^WMV%O@LB7ee-REOG_m2M{rGsc36Tst&xjOUh${}&{Gr<d7e)^
zI{q3LhvM{jWDN6yOBG2r7G}hJV3KV6&4u`F!$9!<sMzm1HE_Cf>k6eLg?=qL=?tS?
z0-Fw!NbIt=`=%9sFo`av?U<|fZ%$=x5zuD)(GL-cqP?QUjh-jVk1Zx%=XN8IIeW9F
z)f=-4)cr|>5VQf9JD=M&nU>%OC<dA~6%R&?aOVlv$VqViW+>WuwB~-6jyoqi8y`^J
zUQFf`#7PNy+O2t!f1EBB${%K6-X;MT=oU@pY@^kDQK7=G-BnIyh0nPtxv%7PU~j`G
zzl1h?*W0;h&gbiF-}AOJhv&!!MJ*cbMh|?%kqBVT+;<>$Rb5II0uYSLqKbfzf=UjN
zAU^6U8uMo#*M)HVR#tOPe}6zzg16rmL<9`3YUMIO=e_|M3nSFet*(lFh~gS=VrWsz
zPnF=(h7DUy?u72)QNlqU@*$GX0}Y#8@zIRUO^6IuE#R#eAS+VJB(OOb%}C+a(rR7i
z8(D22+IB;km_SK2Jg)I^y}+L~V&695Oo6%2@8v5%ElvXn?uR*c4~5{!5(!zkdJVUv
z??GjQ)pZ5T1(?7D3l7s%k+{TU^_NtYo-d4;E5;84%n*HTGCB2o2PdTl%2hWe6`-n-
zGVZ|}43E#Ie<CWUP?Kc*wyIE}N`Y}+aA@jDT8%cuK()Re8;vwMt1HKa6qT-^mDd>1
z9*Tm!B+k>SS=f$2Pt{x}&9q@@JF9ze?T0}S41=CJ?cV8YB>^xI!c9=fPmbHmJZA+Y
z<<3#{Hyv$k5bX60s=zrv@yku%xcxmU^zJz0>_92t_wjMc9rRGyuX(RfXpmBvwqh%^
z$1_rS^=>4%g`POEhp3p3`S|)uM?*{hvC{VoIs;`(9kR22rH-3tXXo$s+po`$EU2HD
zU!_n_<?<B%NLGW&AcMmvAvWJwwN$s|^s<|EXnB1cWdfA9GoW!f=4ag1QjxXV!7uE>
zGra*<Tlz|jGwd6UzNm28J#O@tHHL=_5Nm5->XkfAG&nJu)SZRcLYY$C0|mo(PqYx1
zdQq0t9RR&ZT{zpR-vp{Ler0umdpu+fXs4!2)i9Su!~5@%P$8=ZiG+;m4D6>%boU1+
zP1_awb|@p)(ZUXAc$tx_(1cm!7X+b>ek;W(;$g^!M`4!Y^d?92J{1PeiW=gw2Hp)<
zee3>TZ>Nzf5SL0?f@rt^o$-xe$E6bIGyc&TDHW!?$C=L(z9#zjW^%aCXfU>9U?rcI
z4txL%b+P$YrOz%=t!uv7r4|D9YXQcj?LESl&vDO&-xsMd6~E=x3ODy+Yk{K9OM*!%
zC<Q`Z&W(uAOaGI&+L)(mme${|wYmcU5Nfr-o6z%*hk#|3-jq=dqO3;5pIw4eUhEO8
zL?&o7E`!wDp;J$D9%e2wa(!}t6T5IHrU`wP!yg=^%rAM$XmnL_F;9iMOW(X)6c<2>
zvgI9S_1ZvPz7HW@tT<d83LlD~Iv0+!COQ5S;S-MY_q5X$`p+v4tTy0zIjwZN?b)xL
z;hVa4X!B8A(sF4orE(xV$0aEFP8Pc6yij{nlPY&1>l<$A)lZ>RpmUvEMakmTA*)#N
zHlnZ6n0lviF->@wI}VM|mHAE~iUb=1dk%4|R~VnFi9Cy{*W+@m&XDYiH;rs;fLXhH
zb&Z;6rQn%{CO^;TRKupfa;L$osV&MN1R8g!5{$4Gc_Q0i>acA_)1NXOv`4%vGlF1>
ziH5A|=+ccpb}0Q$feaw)$3E*ZA-=g;Kb~cQJI;E`=5)U2#x!p4BXv;)e!yFE?@Vk>
zcS8TpJm)jyWDz!FR`m)Wzwiuh?=|+fr^;HhjbG`?%M*{+KcE~Qtm0KudOsp(ua+GH
zIPOY`KV68PZh39k^4Y#U-+EJtb4Q1!HdU+3Cr^jv`JT7`0S?ly^D-h4Fg4xR2sJ+a
zH-LMml5Ri$hBmy!+T;;hY-rr|wU5*<ix=!Ftk>ZNLC9UTcjo9TaAtIwH!9>w0ZihL
zrm@GuY9<EpaCdqyPjIh?Sp$-R0oaYDH{a}pvo67J?a`i@B}|kQP_kmiM&h}tR{&4%
z^%|qUl2Kd>`~J4;$0HAu&Sv}_6h1xlT}Nn1oHJ7g8IoYM)XlFIeR<E;Sf?=TIXAT1
z>+~BuJO%(b`3;8&PazsYxm_BAPRddS_Q|gRh)n<vwCub*lSP2hWP}sOqYF_H<h{FL
zUENPL$6)3P!5Xj{juk_mZWFH0E>r!jTy^U5B)6tipP|%7PS-Yr#bDxc4(~AEl|J_(
zFbMZsBfULmzS-o03$pA*=%x3HB8{vq4X~WX-K$YaSt6vRWDh&cYYZlHtFp)TDmGX8
zMYR7rvwRyK5%u6S>$k2Mw^KU^by6zc;@1!PKW2Mn@kH=Gx?FzZ6eVOaN{9_j(F+;3
zUlN(KyLdfDMiIi{^u0sCHT8aG8*lX^WP882D8rM;G3NM_f7_y4i?)FXOr!m$e<hfP
zu=UZg;T6$Q+(s#2=uo8el!3*rTc}fZ|CX6<$tRZD%$DHFVL};VU_;eNzx=+Xf<+-R
z@v$J_IKl~_PG{}kwG5N>aYjGg94|4fOH28QuU4(e#~u)p*!{r8babjPJ7{FZnL9N#
zbJ_FIod_V!G+7M#H-&ubg8LXAh?=e2o;9iBE8vA+R%fr<XZ;gOE5Tppwq&?d`+fa@
zsZvJiWTx{pkghohX0Fm}53v}uK9MJf8&s74_gQP?MuzkqE$}k3_aeT=*ux_Ou-c{|
zO920R@uGc;COPbB6I3C~MxBeKjwUG?OWOZ5uAQF3OD@0s3j_%}U_MRL*>tn^e!sUD
zmsKX(Jd=;>+WUTZi{@c2bAr`XZ)2Wex|doIcL=t$Wlj{nh7<5Scfm-9zr7~H2ZnUm
z1143Ns<J7<{3u!3H7;9!JIBq$!FlyqXtMZZQbit6Nmp-FlrmW4*Fd3UP$c8{m>#%O
z#&OIF=CVzh*vE#jCZ$d0r}1Yr02iQqDGC7Pbe89w!PCi+tvEVjYA_i_0QN^WqcBOq
z99R@r@zmNUWI1%$AyMdG?hgP#I~fvo<x17|@A^SA*O=g7_kXKzZ~&CkVtj$U<T|M~
z2`(4*^Rj&SU?l4NqMq_irSdX8`d53Y(c_1r^mUlpWC2>kL!8(1a|f1=qoTB<9XPfG
zjZmHinrYuy?x@G5Zw#?3G${y@NM+GOZEO50eRTuwSn*+#os8(d5+~Y@U`WvPYPqOU
zoalI6b9}Di3=>>58!t2kx>1$ZGj;$f#b>#KIhjLgDq=NGkX2p8@4b9YQ7gY_CDl>c
z;AZ@=bh@+)wcNb0A)b+&L$kGvMx4BSK}tbAq3oB12P$gs2>V#~&YQo=-3AO-$MKp(
zt}aVCND^4XOQ%XQOik!ugr*90jhxSso<%vdN8{%3Y(b%u)%CBB!LV%y8G71{cJzoN
zI1OgwpfHzsoP|y^g9{Kjb+&l$WKCBHv_j@pE6}&kG<^31z$mhKPzCf%a05uS&&|1j
zPk?r9Z7GR5qS@bppqM^W0jn#HUK^O7xvVl7zD;P29l8J)CQG{M(BQdT3^jI~6ORzH
zx?I)(ys>Jt*pzj4!rSVRd*OsE-j#y`t*!WO%-(mq56kNsTDq?>1hR5OGIpB{=_>xu
z9NM<<W?u}A&3*#@4Dy<`YlPOV!=z*(CFCku+RuFn_K9qKs}eMoKQ+pZkMWJ?cfAAj
zv=9$1B8TM=5o#Ms*m;$<09u3k$yhR@822efy7{DL5<I5;9=IrN-0b*>p~3t{^F9*x
z_>@rg_(NP4t)`|)d#cfF+=S#$OZrYSgeBW+57VO@v2iro0PCxGC>1qAcy<zyy1SnH
zp9Yz{YTEVjQmrWg2sp)&!ST9X(nX>shI;%`U)D_rig23M_`}vAyL!d#$)X7=X15@U
zD4r@3E+xZ`l0jKUf@W*e`_z|Mem*{#BqzS#>Y@E>@VMX(u<LOWgV_1}d(f9N?eo%Q
zX0o-i7Cro~;*y2%&mTyac7HM?ez3JPf9hDYj%>wzQaJFemfL4>&o$N(<{^bmUY`l8
z9@C&gK3$L3gzVS7Flv@=*e^xbBCK45T+KWEp1N<exK5oC&_yeBT5fNoR}n^w99V4(
z@Yn!)_@WhO)E*4VLjwCW!6GfnoL)*=qmG7&QE(_M%GG58vEAEMqW7rY=G2-yFkdEc
zzKFKkzz@GfMuB3$Y;d__c!rI9`Xlm&C^0C3gqm0fBq*u^9pvc?0*A5f{4d4I$}Er0
z&z0qr$NlZRH<fqMet<Y7KN;lbyLq@JjfYvYd|^kc_AIUb2dj(bx8728C&vGvJ9~R9
z9Bb*Ko#LS5I?MRvQ&XIWlFXY@&3Y0K1JFzop#H9)m>Rzyefn?N38dfOR}DrQ-SS#s
zG->{ELj=D55Gl9(nQB|>OG3!n5#)Un0c_>^RplmeiK;Ag?`$DaVQo||Q460!a?$Z0
z?^X=@xmbPR0n#TPdwg>}2in3o-U+XCRFZD>$ln*9MxSLHjgeinujLqvcHH9@jR2a=
zdFxHY!paFSM6v4b?C+&WCWb-~$63b-BwUs<w<|^fR}661f86xE*fAx26WF{4XEy$g
z<6<)CNMj?s3U~Z7Q2ue)TSi}(UWx1agpJGQ_zrz+vUBZpeqoIF9Hl=;GQA2mlx>nq
z4IgC2qKHq@-QrUV9VHFS6DOZN>OxO**)T7%SQN7X6HC0mE-HRBM_8Hj8I%|N?jHp&
zEH49d*f=Rl$s(1!F2)5y-K(&CJ>_Mvursm!Nr;i#Pz!9}0B{2OuTiqth<z<&o(3Y~
zZzx<{)xkkRdEvLr^p!+--#axt1ct);Uj5Me&daf~cWszQ8>GY0$9f_n8~W$RXFI<t
zYfM&Z4E)}23J?G0ie$ZF1q}ls&c&6<K~$lk2xP*s@E@l&SOQIhV%-Q-J??oNdB3VX
zk8KSf)>^z-3tc6NVZGo;D+mF@fB>e>*#fQ@+GWTj>%l~24ONUuWW!_mwijO6SFI1C
z=x;lmTy=1;<^`_r4DYj<A}6v+4BxdU0K3EN*zYL}D4jTVeXsfK*Yy<<Wk<s(Rm`Cg
zvT!LmF-Jq#kJr-P+k&6ci{BgdzpFA~9@A^kKmy_U@tfI?_srW{w^Y`!pWpitYdX+u
zp|i#R!80TvVGrYwljkA=9m1~bk;-vwDu%du{!dW;Z$hs(nICDJn=D^e(M*wv4e(hy
z+>k$>mwSskX(g~^;K<dCL%-UNXt#M~5gPgvAGl<&VWOE;N_O-k_xiwV8TgW9%@NK8
z*|CViC`C#tM1LP(bnM7G{pLab<VS)ni<;c(U0xuVA*xAZjP|lUj5i&Pxd#+Z(g9!z
zknls>Ogi^{bp|9-_(TMs^uzu=Cm^JKrN8xKpgewKaK4MS9z(FwFLogJ!zCcQJdv_q
zg!*8`MO<r&v{Rt!^=D{q7Ewqj?7_h~?rqgfmULc_*@ZxU(8DCFS{$ghAf(sEplWB@
zOA4RkP6ofxINWfD&6OyT$<{POla>$CKqNUUYVCl?w*NLH75s28?cndkBb)@$;qZCf
z;;pwj0!&Oa>(C5J>UBN#DdK8n`kHcw>sGLT%lo${*%7<}(d#iv)SF9*^~aIwEi>JO
zx+)FnQ-V>?tyvufT&JD(%IMb@TrL~I$G*?6N9Qlv^)_6N0gH}71(yZdL38+!$781A
zyb^>v9Zz(*)ZP>;h7TC;SB1i}LLwcRfE_K9%T`mJ31_isru{H~w)OpOi_i3ozaiLH
zx#n|b<95wUaxdZthL@!DXgw_#y$Gys1kJH1m*?v(5w1Np%&bH4>;6S~bA~qUF_p@{
z>#k3TON2@-o2}U&S1W~oOIdy4x862A0cbR(Y7CGRLFXd0`_q;j%Njrui<|KF%5tp3
z2Fx?oO&b5=<@0O{&7hqb>UWK%e-~Y~ll?Htq>bYBpn(rnmyM8t>DsIunG=<Z1_z+?
zpm=D=1MuHZK~k8fQ6?2Zp*YpJCn^*jP!=xek`?+;z*A29G^mD56$$x)w*jR_P?`bo
zS{ZwlpxRfKNDmL~yWqRD3%bFQ<vrvRHEPT(&Z|M?%HgVHmOGfldq{0rO&kc8f>1WV
zf`Z21#1R|Bn?Qazq*h)+e*k<ODXAmSmLO7Y)&*XgpWlmH(${~aSNhPrf@vY?4^nfY
zX$e)_xp(1PFlgW8a{JMb56jM|7A%7mTOIizXv1#?3e1dDdI+|5*$n<MpK*<FG&X8j
zSk~h`KMTNd=(zC7wDCFJe!8<!Y+RMxJ;}>&zK7vfl5R0{cR7HJwGI9){`pSDK7D_~
zL!>2FhSWc;qC!rw2XWC3O$MDdf%G8cX2$q<L5ga>QMY>HtaW2#Y>aL)g9YfdVP@H#
ztqwknZz%ax^8Y|SHuj@Sm;dkXYD$}MQ|%a->wWWAjR|MN8-E%Yc&@hC1BYB97i!Fu
z5~YdE6jS(FG@S2Px~-)MW&%yGw<C?~ZNkfFvedftSXTYx;%HpCe>`67Z|@$iXFsl`
z9NKoM|4TJi9Mgkq4OJS|ECC3nfJ1L60MBgdX8yPvwYD*079)E@G>I~S-H>$tC(z#3
zkjC5MiWB4k3b|WSQ80nKLeINp(ww!pQ;j?gq9n4N8zO6BoR%|QY$@fP|LP_~qqgCE
zZ9H(mAT&?qZ4A_Vso58*{k2W~i|w@J_n$lDx1fK1U61@OC7e`ao@LtKktgfIgQ3$#
zt3RgFA|%KAS7jAXqFLA0KflhmIEohxV7(Lw`}d;nUkVfMkyA+vCK#X0*7N*;tvFSo
zRVVFldBLamlqhQZd}$xRVYD0lVE1uzs;~gZlH)o6cV_D05kVQ5SOTL-59@rwYvJRQ
zW3j=dr$uoaLityOy>4!T15uXZcPf&dE#s?ZhD2ln8#}w$cdTUgZNfi^q#`4tfuyk`
zBMWX4)u6+c_4Dm#tycn|p5^I_ju2a_<LGp|jUGcxydNtC<Q{2K-L1l!Z?R(O>&Q!u
zju)sEXBBV8RRU579omAEcXrY&*?_cmjSQ)4iL5TtlVp<c{9?v?KIdASgNU^&6l)qe
zvE&I+{$WgX79u+Bsl};)SmXSD%euoM^~zS?$NQAXWqaTwQY276*R5~@CO^QJ_rEaI
z>o%;&_Hu0p`^Mq_X7AwiM5=r#ldzEAt)NBeVx@nESwtYY+8VQb2<fLIhRgYEh~-O@
zm5dV1=(Ha^+6?hg@m3*j&`Tgd)&&Qc%tHFyqu55~;&PM^wSW+-{Weul8dUaNGEbaz
z`+x$h%rRaVd9sqLeenk5cgO?i&n8R+rfIb5@M$iW#f(?hj|q%zWhbE0-Tg04Xtm&x
zjnJ@hI`iC{owvm>_Nc5I8Y))pW?g$<0=dcBKABoMjeiu-S_^Z(aQ#k<#fFXz>tpV%
zPdxT^<Q&^IK#zqX5po)~Dr<%fg;Y2pIN7pfZ-(l!I+9~Ub5S9_Bm)abM0R<J7~-k-
zKOxQbG!tjzta(6al|kAat_kLldJ;wjRKM(Bn5ZkCe7AqEaT~n46RB5zWydQ?8B$UL
zV*RP(|NSSOff2ClhWpBowQ)mxw##wTnzp|2tyVG<rApjJww#N=3s}FqO2fUyz?asc
zVG6MdN&3RW$MZ9!Oe_UyUxN!xVo)yn>m}f|xw7|<OF(%(MT}CKYN=jtd-rDDUGDY9
z)atz@_@B<E>zzWfMwUpb>&|>-TgXf`1rYZo6!Omeoqhm*F)=vKnWs}=<!@pVB3&Fz
zj|EpEIZCjzx(1SsyKUFn$(nR-JT9<g$pnY$ohi($J@*NxuRQ*1p;YlZKRaadJJ%V_
zv12)$sI793aVv;7r~p6qqn;le)V879=Y3{%Qqln~RAaQdk1Gjaqyy%@zi)h*5mev1
z<*WnoXMaJGr%q1c$Y8KKP=Lf<u;ZTRr<v;5YB_{V)gFBO325NZ+N`D)LW(d^TQ{V6
z7qikt@tPd)C)tql#BN!6+h8C-a81iB9~V0VVQ#w=D29<`T!3!2Td0)BP25Y#kk$J)
zL!|WvF0C9aIBMypN!+ViqgBboM{@m3j?d5ESQ!dMstc!7)N*2w`Fy{<u6Bp95WI`%
z#49x23OIGWM%Z=_|DhGQ?d5*aj%{9`WK8&19zTL-i3A9C_`EK|PG2gO7<vjqAXF^<
zZ+flG?ex%Jh<<*P{j$n*b2z;h$`hE>`<}VZ241k@96N9g!w(0Az{NWZEioVi8*ZTu
z|1<@2qJn**2J=a+>zR-Ht=~@b?RoY0NC@GAA0CG)csg}KjD>;l&RE_$%8^Ls9QYml
z{6`n3mcWN~H4YD~cGN%=B|w;R>h_kCI2=-pI}_ub41L>aB}tZ!rg?Mb>CW3n<N<Sa
z_;4Z#MBaEF07s7oE_Qw|ojG*<FQD(17Mtfg!=DDS>#)Kk)|>RZZ!9ENO?hb*3~FhD
z;wqqgxM<?6gI}U~Em~Z_52vDyQ6i{N$gI6$;Qa)bj4+D`1!`$6l)u&`X}aU8lN*OC
zN>@?DB}$&c-I?UmW&6%8*Q4%(Q!q)|JOQ1eF3)e<=7QTw(qdkSQJg6nJ-`Jedeq`4
z%NBWO8*LCp#jH7bOSI7Gc};Q3s#x;Ddu$7Edk}zP<<I5PVVSo<2??klHtQbe!UZ!g
zO9kakW9^dY#sz)Kv9~I@e+AY%rv>N3Y37R(_s>)e>$5@?Tf4%jb~%szZ19Q9bst1&
z6DMeHeweT7Hwmr`^ELncc~C)xlHkgcs;l*2x5w*(uD1ZyC$3v_-!!VeVok$0_2UOQ
zxK<?9k9_v9rzc$6E~+?7oLk~2)q=o}JL&vYpLG3p(X46muSd7TZ(P{&<~Xc|{e72k
zPvZF1KlJI6zQ*{Jh8!^nWC<L%P(q2JfmkxLtEWKKn)*D%7x@28lk85hAkYTh-CDlq
z3mEBf4TE^=v8wMDbEiJABOa2gFL3QsHPYN{4OlYwQes(6R*Dmyff%k)obmfBw6<x5
z1_K-us!&(1=_u`=_X3HB3*buyKGaF4g1d^LBcR6y6VlK^ZMi9G(MRoea3FxaU(`6p
zE9Eu5N1L8?e?7g4YH?>e-k!A(JpG!e8=G@EAqIZ55|@p;7&Eq0B;tYRAjiPHYyUZy
zoENveDd16MY8fX)MWmA_rqRZ)v-9JCiu7-{U3QwyC+=7<N{{QnXLg+OUR$N)jAJ)&
z$yXJ{)2$JH=rJf9M@;4<5U@%b|L@ht><d+llzcc663Vlzu>8Vg#bL7eTsah`URbSC
z1lsA3Yt6OBYyu!X^z^1%3HqGd5Lkcw@WtIv_vtL-3a7fab#OO&?*RFGQ%K+GsC0po
zSy-ww6x~RGGfqaCOCf!#*BSF3UK4uGAICzfDmzyekoP1NZ3O<Xl;{6t0bFy|+?_BF
ztFc#~Ev@pKwmzzZ{Tq^6H-tWEH<-bjB8~uI2Rt2Ykge6OtolS)*n&{7D&a{yfqFc`
z>I{XnY#v~kf-5AbkKl!4XDC6(Z*dIFI*84{KpX}dTsl15kZaMtaOq-%<wRfU_A8cc
zI0=;R#-nW&SVtTemZB8H(R3+@q8Cqj@zw-r!HkjgA!J4t79-JBg8ljhFXMj%Tz#_B
z?x`57J%2xV;xwggpoIWeU}>ho#7n@(VAtKWBUyrJM`y>;@%i7X#+iX3_E8nZo8RZ%
zczeH($_u{mcmH>;@<*AmI=LI`6@)iUzon)(Yv3e6CZm~x`G%u{3G*Wp(Tz15oY1s0
z)VEQT-B(@Xp(zl>lT`g`*0A7BN%iV&UF^@he{z~O;RUxwEK`95=6Cj}P+XT(h{EJP
zgU;1YN{arGTCt`9X>iOdFXUp2BsLe~h%ASjy5A$Fn|LB(i@h9+<)NGvLR0a8`R#e8
zgJ26lwq<gRFl$KL0`W+Bz(!l#C`oZ&xZjxCaj<Bc?45z)h;@lVGO)1)_>rHVpYs+i
zI0rDVZJHUxzUOHaFU!^j+);G~q_7tJg!EvUN&e0|06DUfX3=N{3GCPR$L0r@Y~2sp
zpdh;a{gIHB8%$q3iY$-|SII}5q0G=OuL%RO(;%$9HVD6|7(@(F?8MosI#8_B-4krE
z|L2R`JfbV6EOsFA1^%uI>zHATRXY}Us%AO<6R4<9v-4<@Y8>vW80K=-T+aX8CNN=N
z__(UH2Ck<X$dK5D-LZZGn3b9BO2c>D@&=sFjA(dD0i@3XA8!{spL-uV&y%SU=Ut6}
zoC3Jt8`3U{OF2MUd+%##9FK3&S4KL0Yb2PG>wn|>5PE3bssFOWbfTQNe!@%e&|mdG
zbT)BI(#H?Wv8>T0qCtQ{lGPnnxId*rpMKY+#vb8BgDfn!3oTVT>he5o5-~?JX15*>
zVytHSZsJ%~a{5ZyKyuIocZ@&V)}d$%X?bJ@+354Q^lRxz0To}*mIz<LTeGPdO74(!
zeS%tx@hb|E;I@%T`ck_5dB;s8XAUwTMbd6^A_sIZfKTYZMk6qI2eMuZubz%7td>;<
z3g#^XkI|U_RvQKUNsRH>*f__2hd{%Tx9#0ulsCkKb$wns@$vD?YFkku>{h$Nfo$hP
z5v-2S%d>X937<F&AcxKbs7CWYm-B^fdO{IrdOwky{8|Q9=X?YGZ|cH^4ys~9yHc_E
z#JXdE0E)LQ5H($AW#eZ7^TNv3tWhBA&C4X9#CE!P^Axa@6{pE9)nKR(xZ{Un;}ROq
zsLu6AF_;JLJVjCpM@Roe5yn5~wt^}&tfi5|7UB|SOzrH*+wC$85``v!KSJZzS6XF9
z=3!7WpuNK!Wlv4T{I}UST8j9}`K`kYo;W`rE7m(L$!s8MriS84JPNy}q;fjb7eliD
z2fag628_tff@4~8g|X5S&sDpxEweP9Do&NhLK28fUdm!OszNs%#GVLZ5AQN|YYMHn
zf~QGP`ETX~XzCw5HE1r{KT*P!7QgE-)w?U9QU(3@ga=ZP@<3=h+$5OI>A>W%%dJtz
z6F{7ee&_LU7*Ab>jHakSE@wXcml?5ir5HCgZhB5z4*4MBJECv$I(}1hXZO~-@B#l}
zx`V%llH3ZnPN8V>=NCiDmXJ&wV_ppm4zBm|FC`jf4gGa)LdxVS{q7_`^4QSqri-7u
zc%vvT?i9Br^3srES$~}jsBA>N4vL|QZdp5qeGIlf*_!qdo1Ut8%&*Q*k97rT2nV}S
zgQ4D~mW5jvZ%IPz4h)k;$KL&ADu8^jDSmz-Z7!mLcY=Mr)5cS)_}u>MpDFhf-nF4D
zZ8knG3CF;B%z_e6lsqxq3a_9(b|Wc*ZW=XP3f|<tHL$i#GlB2JKjZ#aXs8J#QhK7}
zs&AF*)k{&7hfzk<YU=8hToqH`Md(Tms}St0-wSp_8Wy(4U((<ua@<3?AjA<EfF5>U
zAD%?J+5m68Nm#gawOljkVZR~Er6O%Jn{HvL5}5#d6a%;HujCuEc6D?P@-J*9B0?ti
zFY43_1lAI6m;~ur&vs#HDHUzfJ(NWi%sA29s?|$fvcW?`A$H&E7wUaK0`E5kXHx$C
zx_I66rQGe#R5<vS-fVfMckyde4}@5K22(r?7l!tw(hP~)!Xj=Mk8RNFH9OG~Mv#s2
z(aWf=j}iwy*i2L*R2O7>s#&|7>r+wP`O9{;YT~Rrs_kKl^iaAh^XqbT%5n7{cj5ee
zRzpBd?@YN{;5+k_zf}uY5FRcyt*b4QQ>r%BZ<JTsty<SMN6yM`q;ReL;~~3#KR+Zq
zocqQV(cNOGJ!~5qUUk19{K+G~0}&lh3tc5k+m#3(zofPnU(7N1B2VJTz1U{qMjacG
z$Y3<!9&B<O`P)`m(e@!R&Z(@sFZ$RTXg}0xT5&TImT9_N55X&wh>QbV9@(ij4IOJ!
z6CGL%^^s_yMEDOh9zO3AEFi>VezxX*+xmPGU>Ee%&iDNMGS;9tN!?AI0=F6anx`?d
z-=*36w&sjxvm8=v+Z~(856>cG75R;}WB)DllFcyO!<k>(^r%VT-@0cI>&BD2@Ks^2
zqOm;PHmdM@Z-ey>e^AZ|ldR}O0}QK1nkDwpC`{$ixB0a4FzwRQ9o%#}Qn0-Ndzusk
zcya8@`$q3u@9*vx`GEb<t=Y$4F~hPin(qIPrgQ#p`)#9mw|c8>+qP}nw(YK3ZLF(p
z+gP>Qsa7LxQ`>#={o(ls^2#guB=>z?=bZPkEaxs*CWt2bb%|EbZ~t^aEj-@W3oE-A
zN9^~x@jFXzY;`sBp>chc$znhrS}kV2wK+xwDUU6!1)F~=PiPtv`C^x_eY+y`Zf37H
zB}*P9Yr5<km4-PgHKuV!hs6BExffCCI)PdEg8vZ^$m4OWqJV0xA=2#K`?~4pxVNo&
z8VDAM!QG9x5Fm%#1g6Q*!ND(JDBfy^EqR?CcGb>$k-5+7c{{Uf!_1nF{G#pWXtvWZ
zj@`ArVl-&D({u<1+^Q3W?ugH0IQk(ai-U(}2Cjf1+{lntFo@>1mRU?Ik<n>)A_QqE
zr|`%Z&+q*1iT8xBjA+U!279l-<;U?9vT1mAe9qq`RawBj(2nh!Wl>iWl0Aw7NRS4>
zL-!Q2p^YkX)Op!k_1WCcR$#VxjGiJIUEOLEgKTPe;jSq_S+P=19xlyN7HpE1)CJIf
zetZO}ZCKdY=$`o}cwQZM%qaUmJvP(P8GS=rNErkBMtMC?F<_AiOzdh;+qv*@wT%Ng
zBasNr+-`8&E><Oo_&Q=dJLuB!73o1k8X-?b`^aKu2+|1zyT7gTc2BG8%lhm4v!k2f
zX9fJDz>=+9q-f9Blx|P1XCjcY+k&~sFbzp7V8Zxq#2Cz?8M?5q-xa*{#b%mMKmMyD
zyvh|iIF2K!`!$4OeqCPI%i~a=G&KH;EC*dvs5@&ZLzs>^jkvzLDpMg%*8J{q+wb!+
z9MUvV+JIrxzYQs9-=Ygj1cX)-nyx5xIql(OHH>}>vd=aaM}l=f@=M>@bMO`SW={N(
zg<WvyX_ZGvqtYPWqqYFG0lS9&N~jzmsUxT+4TqNVoRLy<m>@<KAz>J<gpe;+GX5Ky
zS$3$@6;m{as}KtdO9iI`D^$Is@{HwyZ)I{bPY+aR3;ElYN*Xk2*-<LTAdnQ$gkbsG
zo{^;j#;z6a3(bv^wi@Cf?6M4}7B<rL1U;gqN0I1PEKeKVEYrBMkBKIg8EeI+{oFPM
zMtQZE8-=(n^c)_vc?=hpyrdcRm?Y}hWVzWnBo=)pmQ#&J>Cll4ge00n&6B24Pf;il
zUTaP|uhX99pW;0vYHD(#DOPEu(lH_=NoAE=*;15{g=UcI1@VBUoYO5l@#5sWk~Tz9
zISCD5I|E}OTn?|`*q&K-vX+CTc-K7X5~}XX@&iiA(i$dosmAeEv!ktcEv#!4j+hHv
zpa_gr(xJNZ;YFl-Phi%{why`)0$6N%Tg-pP{W!0GhrJoeG2CcpZ}d`7Z`Fi#yV^;A
z#oCCM1HGkk5(o!{c3*VG`uBMv_g~}p58fQ^NBIbDskmKkdf&Ej_y4xSgMT%b&}8)U
z+_k5fyh3B(XIisgV-kb42aoGc-ZVF%TGit>nC5g-j3&8!Gc#s0m!Dg~qhl?<I2$}y
z<e2&csKE=>x05m9$(<%D5Vyk3GPB?Wz|mf()h?$o+VUSbWp&q@(P%z~^i%q!G5Rzr
z=<M^ILA&3HUw6pmpwoJ-%aI)fs7*LNpewet+dW(?pLMw!AVnhL`2#j>uXTCizuS6y
zD*yYKI>XKL*@G|Rs<9r4fp3xutE{Ajfq5~n{hI>hWnZ-B@jIY^eIPcSUI$kPZ%6?&
zrZ=9Sp&tZ%n7@Dj&Vm1qfLwdl=BRV1B@EUZW(95;kpF$M*aHw7o!;fZ1qoQ{fNP(k
znbN43S#3@m^zCYOyXEDI9K*N=`d&3VF#hvfb%Ic-{%2~}uXcJ069gT`Zb^<drHpkd
zRY1kTH;kj4T7O&+4Ody~z)o~lJ<X{`R9EASDDD?0Dw}r!I8rtuc?xoPQ5lCN%XA2;
z*cIJm&`cMfWm#aTUmqHsgrBBUMNyetG^G=<JPsxa<1n-&+@|ZPnx2=Zd3+@eL#02b
zrh%yXbGcHkSx`_O%UQR%n8GFeeV;J{D8ZMZS>@h|8X=Lv`t##m;Px!p=j>a;Z-d5^
z%@w1`adh^8z0~}Jq0hH+RCM1&@|@m3S{hWSPv!LypEt%IF-;7eA1@#<(S+AFYss9k
z(BiW%(4g5|8VW)y@LX`*S$uZ;*I7!hj~6PR&cMKch_LS#*c_73+38EU<DI+<M-#(k
z{FKcfy~(<R_&t{~E)khsh-=hZ=w4E*4tF<x+nqE2^-P<`%K?3(t=@dHt@U5<CnQJn
z7d+iq`nrE|DI7WmItS*#SF!<5Mp9#XXPd8%;8tOsz5p_z>`kmZFKXbyxNV-F9rI%#
z$kpp?ec<mER6Ib2BJDWCPf0o7bT$ke+d||{;>;rX^KuXBPA>JFnr6KE=PnJ7Hd6Z@
zhxDFhZ4TcY(&Oag6l~hM?>)(a!&^i*JwwNTzm);Hs~AFCGdg|W-^>$*W(f1&`LuhS
zFnt>b9tbz~AWjYpOY`DclR3l|$2<waCO+fXsz>#}OtR?sc@NLS<51)hUA)|?g}3y+
z8s=gY5|rP~RWB}-5YC_snoX?@h0tgT5Sh((ec5K%FQOeS<-p%g*(z|Bh%TuzHY6UC
z5LAGBgf^<vC~Zx4n5YM3X_7cT9YG~Z!V|Pqn{bKVr#VUS#MIaV0rO%KQ3A*Uqwu9|
zr>>h&Og(Q|dw80OUcL;7^ASn#ERwc);=p=&xt=J~PKB3v60nh(x6(SqrsqyXKvb-L
zvHvu_h-Y|u8mhGoQ6KycdcOJ9H-X)E1>N^3*v>A%p<rxG96fpWFL&50duv}i?{H*<
z>%WALwqYP<eee(?2mbU08yTE+SvjxQ84mvE;CWUGvS8qnApMB^+OGVA+N$KS3G^j)
z=k?L1Ko3y$<4jq2q%UyR?e(!QIyxF&%oddu;g0iparRB?fZhu#|LT}L@hW2W6SLdP
zAO!A?Q#w=6AG-hX)%j5SbL=xdlKAZ_cfT$D=PC9lrgy-F(Z?HlzWL_TH!A)8n3ww<
zep>!^!=c3Y)z{~t#K4^Hz5wP+zm;x|f8Vm4oJt@AZb8OYPEN`3>c3ovTAj@=7h#_l
z6N3|oUn@6o^KnQO*(RF8<Ow2?a`u>oKNN!=fFHPf#U#z~sZELl?LHo}MoNnLCN?%d
zg5L&-k9I=H0}f~WpFX_%;=^7a!E`L5Hixah)9wGntWk;lO!5~5USI%J|Lza#=k4zQ
z+h|`Ge?CR7wR<xs2EVE%{X}!bsXcryKyPjSDaEd?RSkE<Hp3#+7{}dn4U@7&UPegH
zOX_GrqPJfwvs8;3-c)x_cf9&2p@es>L(eLyw<lk}(?BC*LKwBOUX)h)KrU5YkLnCx
zbQ8vP!gt_RUV9Q??^3i+;1J!6WQ^rA4=+@rsi^_iIkcXpkul<N`nACJwC!>+u=__i
zS1Fur)~<M@o+(rzO~9McdGFnzw=8c-w~C5&Z2<>R!J$wU_A=#LTG_b)W@vXDk|D~?
zzcIWzqJ9~8szIGd_JoB<nxMi1xGh)&CbtX?(<9x)jLK27liQz9%|C=?dksrR^i>_z
zK81(TBr6BXcWV*q!WONOT>XNQ=L>}xaCg=`*O)>hBO;)Ko+5+7k%OOx{!>$G^t-A2
zgra#(^)LI=Lcv1Z&3%1fSbR2@+kQOvRabSrXis9`cHYdNufcE9!NV@b!t~k<W13^O
zKTx_D%*h%pJn~pOEq<L{nqn7*Ex!PUhoSzfl>k3nLtrn;b2B)PTG#*K*XG!pW7RB~
zH1O|C09oJ)B2nND19{8;2l(y$l+tg!_%>ZLe$`Nyk?Z~+aj(7SnK4F25l_Hp+vuie
z3660A9o(akfJv{#A}l=nQJ(1jwrUGb;(LdMnTTx`1Oc%x_jd)AlS&cQvgeJ?T#lA-
zgASy(jmp2!PmHPcNUf{o=8MPCWmc#q?Z)Q!|B{-#5hwP6eXmu`<8=vDe!B+x-0C~;
zHcBI1jm!!U^uLwnN6`mQf?M)lk@EiN$g5%mfSF+#i|n@+wo=t=CAsao20A;n&i?EL
z^O}2U+MQWHVv8!sH55@{Q#ee`%!<Zrk43d<v=qP7N8~ng*#W(9+pCVB9O(DG=n4vG
zMNp$vTezO99RLe~8aruOnS_d_<+gg?C&``08}+KAj*Dm-nc|OK(JkK*jQ*s&>)W3k
zNKz2YyThYV+bAdAva-gsaQ>y2AsJUgF(dYZ`iiR^D;B=fdRVDcFIQ{&uUf{USgN75
zEu*{ohbdEAsm&d}`J)PIKu+ZM7fLUxUJC53Ur`a`<LL^Kivq7_wrU_9uDRX>d~U~s
zUg0Z9g*wA=a8hv$95D9W0@G8PoX)`v06j1dKb0Wxf@Ul+f9H6<Sm0%;Sm5KyTnF?N
z5&ZEzE-~Ko5)vLGH)qj$=88M`o%^5H20sSWv0!>^9Sv^u5DD6hzp+u1{KI2o?7|?P
zxvd2v_#kRbh7sGDmnPmzm<>!_t}e4_QwyN!0ABd>x*s8c8Dy35sSHeQz7IRB2uS1;
zg8yXjRe$_TvP1++AbVk_JnnvZF|y@V*R5HMU}hOvNJIn@`=a}GK?Q0N*`IOqa#}vh
zjW)&kDZNvUp2FY)<giflG`JBqmN}E@C6rQQ5*hZYFQ}qwFPmeD%Iq8q(!s{UwneDJ
z?vV+q2YGAkvEWE)R><I&oMwwkbDIibsihbeA-^YzcgS}IM;*oL-?kd0p{;t^H9ldb
z2sq_;DVoUPTygkte*b(g#+&NM8=3Bw{&lU;hSOof71%gwHxg??Vb6!y;;|o*R;Rcu
zd#{{ZS5Xh1`f1eY1J!wwquQuw&{psdFBK&k?wRfdpizp?^|ov<@?u70W8h)VW9#e+
z(&=K0^b{$CE2y5B_*DqHMI;2hZMn(cJq3+6yJ!USsbjc@S2UNl$gK>Q&FR0Q)!OPC
z?766-9`(d#efO&SSrz=!LtMEWrjWQ;heiG6DhlIZGzke|j$2^V`tyQl%V*Nkz#Y6}
zX}}Tx6cMh~iUkdMV))MVy}$ZAB}cBdKgz!7GcItL2i1wIrlnbq8wibo1%7bVh1KSI
zE8byjUjKC-_`mwP*8jrv{B+qtM;JUP{8ns7tmq!?z-TjS`Zda=25WD}qPmN%E8O~%
zaHDSb*T-Q$F!wTuAAJ&*c2ZL4_N0FopznN$=-l(0QGdl1+#DlxbK76q5}{VwTvUt#
zDTuDmNxG)9cyDCAi$Xn9HS(t;4;GNwm0=TV3Oc$Ec(UG_yg5vj@qm$~^D(Xxhge{+
zbTCVrtk;t*&n%=2BSEsp^Q>h|BTB_#VJ&LrYqY1p8XNu%2ZdS_#<7S+3a?bm+i2i@
zp8mG;`uT-kD}HGJKO0KU_=k*wZ3a&EG1;&LWuA;^G|r9E;I%n>OIBD1L%d00XcLVc
zth!{rrD~ETu4qXez1GP-N>_4SXg){0F1o$MkJxijRDK}GGJbM5DbxakIN4zdYx0|+
zSfWbU$P0!!qh%TDvIvbVR09@iG{rMY3JfXK1jU$+c(H;^=$1W`?y#O9lChj(dHMIK
z)2*wLHeCImX`1rG6%J-;1T~-y%U@4}I?<koMv-_YEV+PM%Hvg9#){oD8Y5%x2#6Gp
z(s`Stj*^5a`}&(uuZ(6?M*k>y&Ln$T-nL1O!eBrLDI`^yA*~Jv)~~X=`1*s#j{{^E
z#WBD+zHKYPbjMr+pvlz^5(KE*9~gXpd;Q$sc6Ip_MY<6FtFA0Ky}C*P0w^|mg0#H0
zeGuEX{OI+$950xN;z%)|51^5SuSkNQU_YaSua$#;PG@u5%XPpSXfuY-dQbd!%hmBx
z<y$RcfY9{)yFiuOGjun_>J$uY1^Z|0G1N{ER_wTJIa)HnCZk94Xo=PwCy#@`XbL@G
zWjN#lMVQ)RNfa81$<DyXdyOvlpQhy2v#tO_@XUt0xtgw{-V(6w?{u_!P5xgg^G@z%
z05;~dsje4<r&XrN)(HzZxWez`5BvIf3A_OpSWwV<Z#`3L)f#{Wl?@iE!`F}9>8a^_
z)61=12K=0Y)Y%*1HxRM8g+~;9-FlpLM&!fUZWpM|+_dkY5H?TkeKs@eeL#6jO4Wxb
z;Fz?}`dLx+m@o;&J~V5~srBWmFRpT}MXC6CA+;-Qk)0h(|IB^6dfh7Ll(|e+8I~pR
z%rl|}aL9w~t>V=dG;LNWRKx3#LyA<oCh5)%46!R;e#TdRK12Yb7CDCW<hwT$zW?gD
z%+yjez`#P@luQ|<;gymg)3-ODSWBVE$ccK14=f(^pP=c;y`yYxtBa2z(Je-`UozCF
zW7Yg@t@V$KM=f2GAYW6d6k4WnHdN90p6b+vzn+UULwnf<RhkRB(8dN25}pbp;(xBL
zSf&}@{{?Rc-kXUa7XZBi;R)nNwigU3XcjuVv{NWd!4oAI+x{6*zxiw{^ukX}X-iq+
zYHEirpP|#{ur_rWbmuL)^VGQi_5kKp+pf=ods92l+uHZ(m-toay(L~tjbGp_Rd2$C
zpTfYUrTUcUs$xi`;>+ja2Dx&r4V421|2--);73Jg_?kNSW<}un{5`V(eeD8Y`!=K9
zP}$fR9krM*bK4zVI)U)u8jPZ;+$VGj8cH{T-sh7$w32UdjB`{|W#F?myZt1yK-mkU
z{hFnC*6_KLdggmZ&tNPxzO<zG)lmTr1q7dBt}ysB-d=`%tk62~#=ie$qw&K2>39C?
zm(kHk^OEW*{;<iPYdp&b=ESd1#!qM9XODjZa1J^KU5aA{V6FCeBECKf5A7$Oi(3fW
zuP8M*0<ji;T2HUT%k`&sU%cQ&A`_dg?XbKDif0wELzDV=8McL4=kX4Mak57%!S}_U
z61Vi9x5BaYVR_aN!=n$$Rc&}IN+_x5$0#N7a{!qYoX|VB<}ANjRr=52M=@lNu0J_;
zF>5E=y{Y=ngs!sds;J#rNXuNf=hDk<2~~M`0cqd3VeCET(@fz@%Uj^LY;sqyPBGF#
zWIPS=Bgpa<*%C`8YA6p2nz*7-DB7rSwaX>q=Oyf}1dok9Zt8sU=*Ni&pXs_%`KI-9
zt(l8j<$=<IQtN=lcZG<Y%LMOVC?o#F@<{2x>c}SkB~H1Hf-bmk>MF-6BZXpaMj>it
z-rA=!_X6g3jO%<6I0_9ojR!<EvR8G9qX%3zB`w%_`{ex}`ftPj+k+2^_P9huOG^Ku
zZn(<mJ?a9-h1|l5)AH^+zkRp1;(a?~e;dz#gP(kP{jJxZN6*wxus?+6qVDV^;y2ss
zwAiT;*=xa^XPAS8HTf2heWKp1vC|)oDSo!v8V&ZDu>Rzj?6|2i{P#Hk`QH)0$o@Sp
zUa1Mxq-Y|?)NS@1#9c$?XmjcbYD2`qm%*nU{WIr6yt3&*S=&crL$qjL+XutcI5jil
zc9^c+<aP)}2K~#pHTPb<T2?($g{{#HVKBv;z&JaIfec&m%&~?FbpQu1o@&}5iGgtE
z_&4v7mHVjF7%mRZ+)^Q}4lA!*cdGl{UtGRi-_c*ljdu4uOd*Zeq;ZC0VaP%X$-jQE
z2(cpgXf!c3*xk$ZXz#2{-5D9)<9~705WDnzpUNbvY^(afZs#U4PuD}4IL<xOT`A|6
zm7VqPO=$AoaH3ZVke>NaxI9WXuk=w?eD8iOExQq5HLOgv9@)aKk*vwHZhm1CC1m)y
z#2>&SqefC!{4FYCD9J>jBr)wtaQV)VcXJNfbbR3pkG&5QgU0E@_x$Ftm)>SjH7OWW
z!7j|L+`akJa+zm*p&qMp#E;@bobt9DgYcS)r4HC63m#`0FgNn-s5J=-E0?1=tXiO0
z(<nH8YNxE{K%cmb{kk-Lmmn@zaxfiQ(ra_lNpyz?$Qj;VJV4~z55gjy1!fJwA~$`W
zl&^i>E%uyb=&$y9(pOVa&yt%m=R9)tV03}66a)WVDW0P9eV8$?`&xgRDA_40r*vVp
z2fh0NYV~1LOiChHGwi*bzd(XFFM&~Xj`j#|cf!8J>uN=`W0TC=gTYV8{V~>UMzZAK
z51Fp6|Jv>4#kpwN?u%F+FyMe(7+d=)1m)<&{=U)FE;C-e+h+*hIRX9WU@0Y8-cDdn
z3E6ETXTZ}Cak!iqvmr%zXcL3$=$u{aYF{9KciZLYq(Ekm5+)ZO7z?EjzgqNvFM#$<
zVgAP)nuSG@?*z@_iUSwe^N0`j<O0EG&f{2~sw4ExLUxMh4s_xT8o#!r3ZANt{rCc%
zCquH*%|F|-LpDnwoh_$+nxq3Tn%3u1PzWjoj)CsR08_NegOsLO<6m7$>yS-+@44WP
zW>$Sk9j-sI9c2d7_)jTEOI<)gr*^1cy%<Tpkl^gcJ6%hITS<jHX|#Ni_ZgE~Rhl<5
zs#MfUzuOj56aBNCT*DuF383|lg~zfw^Iky-$#e?RS@&Te!UL!56bd6QSj&t{{Fsr}
z<z$`mTsc3|4!Z6)_wWeUs{V4_Ezx3Fx#o~efdndu8#6wD4t{F<9B%J(<-Tohew(O&
zW7Fq$C`h&fukM?Zm!r<)y~d54x@ib&8kY}XqN104-ox2QtiHsVxZ>zyQFo@8lw%Ik
z6}^Wj;lJ0;x5Z8Du1c^lCH->mpnJ#ZL8H)tTNqspm9qcQlLNUg+XQ9IWG0g~9Z%NQ
zn&u-MX%7dm?G~e+Jxw#*LyKX9;5EZ$v4upHKY=WaN-c$>dN3m^T{xlS&E$%1PAjcc
zj~n$Xk;?L`!9+_Xh2x@yCrvcLjl~(%qX~?bPcI+|7b)+J^5o+CUaO49Fj@jdY-1(v
zu;~UJjV~c~#@Mv$Tfe-$QZ>B!tmb`x;7ll)XCEWn=MCKcAPfr&tHB{Qf6Yq&4_w3F
z_o4XT5s98FboQ5m-}`LmxBq9t+KFuryFvFW+s8fgClzw=Eln-e+g$$#1iy1v92O%M
z(fTa)#~ISa%W0Tiz4AO3;dgofN9S%?_47dDo6Izp#-_3zCR#1OlA)*%WNX&q_I6wd
zg{t0!Qn`Bh&v;jg@r6rPz)gGbtMA9&V*Z|b{+ovZwXC-^rh8FrIf@8fEB{HJ)`-3h
zW7G<<v0s_B^qSWpqJ=G_ahe5F1jnI;5evzrOjCME82edQ*HBe-(5P13o@0A3Grd-g
z$>J!j&{fFe{1hI;6myCNV*+tt!Wi+|kV$at`|E@IW$)w768iShP433i3GpjQx7V44
zi3tQqP$^uiSk#R4QLqA3N<J6pIsV1?zhAf#EPis4rrn$rkwFohe|%Zoi4FwnVKHW7
zqY%`v3{3RKNRck1(WZJmF3vG<=<_ZR98b!tNw$lpcRPSRaXXYsV#U1nP2mgmxO=6~
zD8iwAqM2f%vZ>X~rgN2r3Rq%f!`y56IxJyJgPul_Pe&=2vzp#hV8+6hNuzDWGP5Mu
zfhk!ewaG`J$+1uFhZD75F$P94&w^b=vWpe5zFhKi@@ByL*yX)7L5;91Ei5T%>EF4z
zhn?iJjh=^4V~K>8Yda8w{#bmxOpj36YNKt54`ws%#Qt%d^pR^1b@rJ;o;fFr<!jzo
zy8mHKrtUb@K~yIoP<gP~*BqCpx#p?q*(T3dySDSylC&6G?l702)aIc6C(eF4K}SRE
zc}7E&!4z{{olI-52L%0gXDhpXx|f%14Mr(H8yMr#1jQ)Jh|I4E)}+^hm^|&_Xh*=K
z=YPKv$(ZEG*JBF5#l<$o72SLMqEM*IIp_j87i`0W7x);GGuFb7ycBTXn{UDE<M&k(
z0%5N>bm|222C$skag=4h8n}GuV9=ijcKkjOWOtQTE{>nH#TbGI{hM{k6BAA9Rx%xL
zR9b!bAJim9`r>9;)z#fq131>|j;6^~6BL}}NE(7!c)1aOpTL%iJxJk)8JVa8X;X7@
zb4k-ko5QN0*(#AvX1*xwB&JmfY=}au6ZnN%UEK{zOBJY!$~S7jH%kK^sE}d09Z51^
z)0lbXlVjxuzXsypWs2`*cGNL5w8IYhtxRnLaJr{tg*|!9FnIAWliD>ZYB4ApOYeuB
zXF$#qLxN>#GH^S4%zu9NVru2N>x3a`Yn^7d&IQnP4wW;1LY$Des|Ox@mR``^b@^(i
z{r7ewZ+>OLXAWbYE0S5FfCNMSIufYajA{Bc-)E~A?W(PF^F-nQ+J(W%VZylhM8LKo
z;W#}mhAl<*(#g8Jo*LP5DRNbw$1TWt=ZM>A{CHJmWw7W``T`P=p#uV?{7A9<!F^2x
zX;>jAMziyDy&nKNnI&V@bY_rIv2yvv#j-W((T3In1|+&2YHGXfFaNr|+bZ|H8K-`#
z?*EX#89{Pqw_d%y8d5+&Mh}2T)9Lmj{B^z#9%`~zIa;}3w&}!A$chZf#02BTQ2x7C
z|NBp87@WjyVt|&Val;qIh`}gb;(|sUERDUl*sTiE!Ww@k3;*~#WlkF-nd5mc!Ppuj
zt1=g31Bzr;Rg@)vnv16Qqin&hcO(@3S}A|*!Ke4=hE({)f<m@vDF{^*Pb_LcEf!Uf
zDDHs|re0tmT2^LJ>z{G7`}YnFP0yI3xw{$(mw3<)nrBBuyJxNf0>$r<*OUeEy%tPZ
z$eB{X`9N+ySFPf$m}cza&i<aiyn!zq`{u>T^4LaqcxTWMDsik7(d4u4n1a&S#1MOe
z#Y2-Q#x8bNA;m%H{t0Kh`No2O(UpY;--ACeFV=2rE-DbW-Cy-P_B?;F2A*<k)b}L-
zc0}7QZUQWg<#^den%M{Mxs67RgHF{0E)tk;YsY4<viqO=!=Qgzb#RbQ8#oMQ#S%<N
zpq_3m9y9Iv1y9DF#YhU+rX*468Q0a(a@x=a^`Z(u4|=&&QX{*2ggV(*Gcl1zO*Vc(
zQ@u%Ap!gQxhIC0F1cg8Z0<xC)m|w^Lj#}W}VL$|@{fJOh{p3p`n%|=o;iD;e<P%H}
zm!zmxoOb};0mQOb3dF(_mme3G3n^UM#=gAHzLWYUgJXK!CSMEhP`+{j0M#5`SyVdJ
z-$S0X9JLf??cWKR4r7?tVr{@%T22dFjCw5blom1wvcfo)j~My(qBTew`SVtdbB$Oi
z=_|23Y&jWXS|nE1K)U2rh;+&7G}WHR#tbdiQ;Dw;1!*1t9x;`ISUw>$Jncah+f$Av
zjKl5wzBor>E;KqDKl*Vt&j+%Dh>0HDs=l$W_MSIzePm)TKBRPsI0_<<q;#W(s#to~
z*QNEiksLQGG=|SVV)@qR&;5%0cJ59V{{=p72Fzw}NmSRDa-M3ND51gAWn)WzscC%@
zdo5n%kPI;K@JLH7$LiQm;HQzJ?3FS21KNI*^6K|YbKGdZKHIY16B}d)(`dj8=nlUj
z8vn<OA%ErK!Uc~RUZ>uBEvEicy#xk?o267`@c(I67qV8U%2O!AqJ5PZs9s^!BF+@t
zYFDFY2_8VGCfWS{ysZzysMeW@w{LSzwkUzbRe!0*aq3vh45QRQ6BwBZcebi}2xZWJ
z-Gt+T8n#~og(b=apc{kSP2(PpPsK!Nik1qkT;(W%*x-gP8UIG7bh#>PR7$NzfYf2>
z9JGllYoO$M&3|_ut8O?#hAg!Bz?4y_xcEvrdR0la)FA-p9&ABbd8{0lCWfs8#KHw6
z&ab|7^qPz|I&muy4YGQOgWti>-gN{C&#&WCVGOt|n7XKS&!XrSC&5<ZLbAE2TGY8P
zjyen$PO<ZErIDvDEL5VQPQ^PlV%U&cD8{HQ_AQC7d|qgKop4*&S$15kF@^L<%ta^r
zO$cDFvY7hBDo%QD4pCb<W=WO&O21<JPo_Ult2E$6Yrw~4-vr3$k#C|#cFdANf6Kzm
z0+YXfUCwSpK{>z3=2wj_>o|A+Geka5I$NOC&kxRQ-M*mk6n25@zvKjhZds}9(AHBB
z-(%fTJ&l$gNd`fyqeL@KX?Ffdn>p@8%zg=iOj}?xrVUrN{P2im*N?oaPu;6z5;0qL
z@v9|4#l{Cdcejk+K&9&|a@cFY-u|EXkhENW?<T){DBGcs#zt^C>gk0U8VX}24y5JZ
zM$AFkiYq8Sq>vb;g}u^0y1c^@<9ydR@Dyr-^219W_Z}XLx7N)~x$FwegLB4B@&J46
z(lEyFhrybhaiJ8b0W>avJ+w;OyR0=FUn7VR4o(j~Ldh+^#8%!>+L#WQ>&)W@i7U}!
zE|8q2MI(G+T(bz2f5lKucw;4@>IuEI9@_B_3mi1d4_a(cnh7pP6_*++^?}J(D%U5r
z*keP_3sR}}pHPKS=QJjcxT-@t23X{p@_TqKx4d!FvI`huVJIG_jeu%M786O{fG{Y&
zTmdx^yY<aZ3N(PcL!{i7u|EO$_8J%lf8=AygvR`E0&*5HSf$1vbDL4Z1um0xCU2r$
zv5v5LpN_|TKKZw&#MZ|G7KW|A>PiPs(Z=zPnB*UJIc_`+U%rzD-$_gBHv1w9f5dV(
z-8aF1;~nMhbEAF?cqd5|^i1iTx=Iwj6OW>0Y17c?zQqyP@;0L?{yHwYNzIVpUhZ-3
z9>iLE>aBT5s-3RC-;au&qi2km1|?u?HJFiBsF(+Ad0{VIlt4X+%oiLEGY-uBd?M~I
z(9Ap@vA_vBvKF3NeUf|0&Qe2~L9h8CJ7^Up8|^suV@E6j-36!QE>mNiq5(!$t#`Wt
z3N7b8N|7dPu&~lbTo#Q1!25N*Njxsbe<M5qF1(=D%5r3V$)EnduWn)Fm)h{JGszaP
z`cRgPr7VhuY1<pEBt2g;L&?y#(b!fM$EBO0`ZGf3`}xf>T9u3%bs5T6-7Kji(s&Zg
zYy1sn36|s&CE7E;*E2dk{@n4LRvPs$9_x+<YS)<GaUz*9LkvP%f6y?NAqQY5QQV(p
z^3*Q>%py~!u9r*IeB2$!(^d9R*la&BDET2VvPy6CPs=#ANkf{+gO;+^Q-{D(b!RfA
zudnYfJ^}o(ao%L#FkNY`RIzB^DwQHSMFoq0@%#@InUrux{r2l?;SY1maJI3Iv!=;R
zIdDR$l=ok!J@$+US*ZT;6@LG-GmkBIwT<s5>x9J@)ZOx+Q|f1GVMkiW(P#;1QiBC5
z17FIyy5%1^v5y%t8ovUer*Od4V_;4cj&uT%rOUKNZegP>0u&^az8w~s71xAXNNBAU
z`qll#P0!9!rET2xKhG6nm5wi=su0U9$2|P{Ul*f}Z`IQ%%^c4*RmI@U5zIm}ly8bY
z`o6_!W<V!-R4+C@65RPwC%>qF3Fitu<A71l8Nw|-Ogpw%<j|~2Z-RQ9xVJNITB*wg
z?|wW`Jig#8vvufCvi73?)ope_4%(@)rDEGf;YgQIsKYx=4;pzZs;^!S)UMd@aY5ZP
z4s0|bQ~eQdOCHuNcMEGGL1Gikz#1<X5ah_5tt=q}LwgEQQg+Tx7<Y~c>tK-*qgtzR
z#$IStt1VuWQ1y~<0ins^-PQRM2G2mtSD>=rSbIfsvrK)S8L+R`kI-e<AcFNse7fA3
zQR1M0=uJ7lWb8f2O;t9C7}JMEUJ@UEeP~V*-6k#>6Y&&n=g@U>bMbC|N@Qr(CK6hX
z1y{iYAqXVm^om#iCJvp?S^1~jgyM8cs!B2yC29>qd=r@C0z=SZyMrc8=ZIztX_Cui
zAi%O=CxQ}3P?XHm!>}jkxgHyjK_0WfrI1R2MC{gkBx?Z_+j}qQ9oo~_Z;Qx){6-$d
zIuTDW@lq5mD=HAqR`qANPZ3oBb1iJwp{Feb2;YHVN%WWh3p`huz2|l1qmW5@7m6yK
zcxX{5$ez#)@Ku~D!3|Yu777cSpyeyoe1y&s%-$|c+^tR{1y2r7oXxB5fVsl5NOg<?
zk+_Qr70h)g;?6K?T;gGLhl_+T^XR^<njEpw%fNv~tsiIJkJbJ7%HNe$5v78cJoo>~
zdohc&8*%+EIHLmJl0p1dJ5}dPUC~!tq!pEN#%<)E^_+{h8#(tzkAb>uuOfn9ug&W<
zcy}VmSMx#@S1=y{|N3IZg<cWtVTae8N1b`QwU!r4m@(ZlyA&yMIG+s1))Z;0AX|XA
z=Xv`{RgWBZZ|beCz5rm=OZCE`r*-$%Z46S2H<f`}5Xi6uhr`t?4-w?;FSC*F{kHGB
zq7gKgO^wmmYJMrmC3tut#K~7%*DZBhtCb1{Dpxq!r$cjYvR(?oSR3n~|JB?>KzDxW
zXkde(P+4BAsf=1B#EM0+AEz?e&(s#2(~AW-BWU!dhjOc?kHL+$u)_4*nLC8i0~>7U
zdRvq>(pWrFs0Ly2KH|uxBnRk=y39G_Y2c)=8mXe!JNc$K4^4W4!F66RtVrZ?#?h$5
zQsF<Y@4w1YM0*G1-1!|GS3xHv-0P}ldW=0etblrB`d?%4JB<Q0zZ3MTaVj@y;3DZZ
zfxwzNQQsqc-}@6gfq+YBec(OmnMkPYU9)6YTq_8`Dm1T_=j@T=;OVXbRNHn&`(%fz
z7A7kyLKwd09L91?jQ;M507VdzCK59@zgQ))cv1+ajL!^ZHje@gQe#Ot4Fu^lcu@B6
zyIuh08ddU}{L=aS#`1yfy;-x}kE_-F{@b4y21oR}7R(bE*OdOgHFCAtbf;qTmD+}$
znrHdTzn{g3=c|a-;Z`e%)CG?;tG0*#F8-4Hvs)8e3qB`DAJd@G7S&?`807_fXN7x9
zh-$(0@*KU#)f)a9%4B7rYV*pZ@=y|0Q0rg!1qoWRUJr6-AOT@MdQz0dIh!qJ#GC_H
zvQpZOdl$2@pPGG9OmZQET$9A3<_jBNMwD6oy(RNgRpl*579L~FH=c6Ud+!ZZ&!;(4
zp_}AwDh4PtWbdGpATf3$Wn_x0+y1BRTfl}>+5H}>TBZ2?7kl#E7*6>MFeSLO)JONP
zl96w9lcHs%TI#8b;u%2&oVl2xU6)0DParJpMmCZV|2+iI_#F-hn%tw-6<|$vsrRq#
z)l(B^4j)$2KH*|YrGx2D+k}s1f4(!R-g#+vpmK@VZu5%$1RXDP6oRTNMj%`=8j7MT
zlkCJ@$=rT-IxmClUKOF4SbOOoS<GlXH)m8fIo9NbM&jfFGwSl+I%xRK*r7pNo>$>A
z&=sh*i=c3FILoY1k<(>(YF%No@DYKrQNK3Ph7p0^o-OfBft?GfF%R-sCnTaGVkFIk
zaFlzn$$v~7)txs*poDbM%w=+mn;Rh7jLFY?#LXaow;pUQ)AoHV(HT-Bffz_j_+my;
zVtVMah?*h5pp%n?mei_nvZsRkiM|h^<yp+q69k`{4$8sVPQYs!3ukMx^852=JS{<)
zMvh2c9!z<y(f2yZ=Cz{V(_z;rY;d&USea-JunPDJTg}GaTh5ElXF{*(CB`DIUu6+?
zhjHTE(}Xevr|gUSPQ#M0p=GlGkB)iR6k548Of@}a<KoN}ptH`jr+;oAv~QZ`YOnas
z7Dl|=AZ=iD&y)8N_=_#1{@6rJ$N>UVdY=HbiR-J*cE7W;_xoNis-rpjV&~|-Wk+`X
zYV301N|6%rIMCvy!Hlj&GL(>I<p`{AU0IOk@Qo7`hvR&jUi*8jUMfaTGqv{Zt38Wg
zJ$<4fBX+=Xj63XQ<EUzMu2(rdBlqg6mRhTq=Gbm8*&H&VUxM?dKe4q^zG|fE_tr5%
zSxGxGALd5p6*`r=8}6e&_ErEKy=g3P4hZ26S)#!3@vnci?)G>Jg{6%RF4%ww_DMX<
zt*lsBc;G^YDK_Ns_uqLF@cLCmGA(%oXOz(OPf}}gys89BwT6=4Tc__`)ROhW1l2_I
zjcHQJRK2)YuyeL`IotVD(j_w28Y)=d8J0wGUcLwTI_NfSE^L>17dOjSyIsh=yg@$w
z8S;B*Cj$l>e%2)%rg#U5vfoQoA~}OCkb?e1R=^p<7?}7^fIYBVnhvObPo)*tn||3a
z3N{7j_LP{XD@aJLi7So(Q=s521v_O}Oc>Fe_m#>E7+P9Oc;~R0>qT7}w<>D|j8xo^
z_euz<St18vL=EsJ4TQdWLRG3(d<j#*;60Dv0_T1v?j#`^>7a;a(-X>RzLm{Rfy*gK
z%K(ZdCCZCA$z<vw(h+3-@owfTduJNyO{c&=PFm(*<4EeRsdR9#1)TYKs!tIA_5~so
z?P|L-GxGK$kG64hHiw8V%n=Z)bN{=sg;_w#aw<J(bxgV3s@i1%Fvd9Zq=cmK6jwVm
zt%&C2fcIPpf5k{*{`!a$eej4iTa{Tw6&8OYMP%UT>gUD#tp)XmJ}WQiF~ad(Zq?hP
z!7$hc!h6fJLIgRpRd3sSQN%VKk?SRidN3tw1iBe2rhk}r#oWh9u<%TDtE<_mWXr>u
z*{#8;j$1w$MBICFw(^4!w;9;~PG@9>E=slq8&jkauj)59=K4nQ;ao}2;;QeM4M%Dc
zN;Ch1W<CNu54yZOvF7n}4XKZ*c^QMDpz~OROi3o`cVs#ffA7o{#Ekjm^1N-z8FM@Z
z9{=s<2)JdQoY*=Azqgjmgvg#`%I3H;%$Diu7?5yJ(!|GLTIj;Ue~GpJ?S7D(BcNZ*
z$bINeK}D^ot^}kD%hVB<%HAJCz8<MR=y^4~9QBw<!YjS-XELOaMR#Drc(v+$z3A@T
zeJ3_Kf3U|%HRlLR*mTgrVhtzEnc8g%;-d;f`5Pt~H^LLfXeF9<GbBf1;t#>w+i2rG
z93hgzDZ?(K9vS<-b-w`gr8XW~bI~J}UeFcbwfsHrkf0XM+f*|$F^-9V==6g{Zp)Tz
zjck?RpFjuuOW>Xe+UcKK_$<DlE%D>J4si<6Yc!f3uz?j_pw*k1e82dv-P!}y0#V4<
zafyI<`;)`ny}65|RL();H;&{CY<<AgHaxEDOxi0QN0`kctcw$j#R=QTvLD_r5v5;e
zzO{K>{%UHY6<m&`@qUFU)To6FoRSWbU80fEOG&n&1!);VIz;|wtVqOy1KU9#_70nD
z(VRc2iTEd8g|Da<mRwJV8S<Zp+flHec9HwDvz_~VW!F8etg`xh_nj_YUdVIqXg_y0
zovl61GnfOPCkccsW%VXkTPz8Yw;pM_>o><ib?bi~{wt7?{>-7amJ8aE-j<&v-d&o1
z7kIlO7w{aoK5Fkv2ET9)V>M*{=Re@{LAlb^oH#P8{~pD&StJSq@ms5RquU|Hh(RRt
z+qLx*pgr%1J~GkecAC4{KH_k0@%3q#y6^9u*=T%yFyV?}d#XLN@%ZKE?wHTn$q+$M
z-E{YsKR!S6#wZveEVIvpe-N6nNA~R>9TqlE&>4sIOpa+uzXUva(J089lMpwj*<r2g
zx0zQGa^NwLHn%AZ*Lp2r8VMXyE$ba)2*Q4SR{|C~*zDMH;2F4%VE$|LCf@FO%?<zq
zjI7CMk1sEWEODQ!J-q^x8KGvUxwrp-T}Ha%u8ewp$4DYc1-1v;q5XF$x#mF6hTiJz
zt))}m%Kk05>*t60+r;I))$Fd3YX-OTIw>n|l8gE2nn(W!xg+2H&euBL&&ylFSNpNP
zTX7xDb0|y<@0k&+&tso%e8%X~8Gm6JP2ojvDA5g`syzKK#l6GL?$$QU3{3$ZaS6<<
z(Uv1i6y?aX3l0`(j<Y)xK^gH#t~T4IXP(K+V=&+FeNG$S1s-;ch<sg`*$289)$be)
zq)uOO@S1#J+1aIa8{MESQSt;m!VeDMiF|FC{jITAn}MzX1pl|9u{n$Tb=4TR<YH;0
zW=prwLv!>v#`d^+o$)Q{{GGqek+k1<JZq-^vdLS);QY=pvADqyk57A;qJ8j`Q&MDR
z;pxk1bb!kT5(oz1G~0*vERL4KS8Fi>r~VO8mn*Y3nprxO#~kZgz>kW~5bpZz@cTyo
z$Bx=K|4aTZ=KXy8uCJM|l&K>$`e3No_kLj4V_yI@;PR}w!p7PcGi;d!j|Q6(Qo{O*
z5v^r6x4*C-Kw3S(XPedJx=7{JcZfygdrV5S)*QKeSnROc5CTr*OsxEc%(29UgnUOp
zx=Zb#na7dzsg`VLon<CngC5r`D2yG;uo^MiSv9sS_Y8vd2ZUET=K+8F6k3-)N|1w8
zF%MuNx4d#|miRBr`c9WbHX}C{+t<RJYE`Y=E(Y(Uw3m4`k9R4NxO$}W=GK{9RMBwV
z>24mtK_V7mS$ix-i2V$zaLe)ijnq+Ayf6AutxG7>umhFmtym6UC3RVZ*hViNjmE`i
z1->Ybft@J6r|90PM~GSp@wYSi|E9_mv!4#YgfA{-+7KnQW1iWeM}g66YwHF{x#I1c
zsb=a9+gq?w{D4SNjHtvsbF-wbe4RlYzztqE9$taHLOB9bLO@xEKdH(@CN>)s^wQL8
zfzx_iMy;{b`97iK(nzKg@J>AsFbNC{|9Nd)4=T%f-QRd3A|i05*DkCb0@AX#Zm1S^
zMY(D=2f)Q_zILCiFEB69k-|^!4#xcv^#RY53dH_MwCgoStuf<@-K#ye=*R*O6y-{@
zWL#fJ?XV(cFm3Y2#<ggIYtylPXWsq@_~uEwC1xrGh+6wSY=5Px@-@*Nol6i6@;VKa
zVGG5P<YQ)2$STw6hA2}R!&6g)mq#P4)6c@Xu(a{p!c}cXHPd)9vm1i(a$NnpvQlFj
zWE!%v?Lyi9&+R*CrS{diXKS^UB!n%E122BnsLbZ0NnIjMxPznc43+nUv-Wrevi^aN
zsJl6N2xyFPH^t%h@n|gDokrGYF>8-0*Krzo4)q`24ms#bntbdwrSpbgk5UDNBT@F0
z0n0JBvVvY5?ukbi0TD3-&b*j>PUG7j4#n;&S`pPWlQieHNjPZT;=$MLM<jsbrl|P}
z;uDI`Rr4qDKKg#kV(0=4*a#3Ai`NM_5&A4Qesz^{_CvPKx;f?+R(_p=2V=7B<2NZ>
zIkFW)D_EYag>G$w-p00vo@V>=_s0@%cc#7qbntY;1k~KB%IfLxJWKDp{+uz%;t=2z
z@UqHgS*};>SM$#s{x;gN(79jKT2V^gKxJ9>Z)CCw7E9r|=mTX3T;Ce+v*!oNV2^~p
z-1VgeKYUm2OV#?n7odMYe=CTbd<fes0NburFQN5Y1;~TLF18e2^EsLfqW+6|-8~Fg
zwXfCp?N-d{h-!j?|4<`7tNuF!GWn$iDDvqjSWj3m{G!>@|6+Zqw=RuabJ|NGHIPg;
zi=ShG1J-9M#pJaZBsbIBmTdQ(pf=E1Jb_W}R=y`q2)JbNML}ZJgxe9X{c>9T^>Koq
zo%}$WZ_t?cLM>#QSQ&H$dN<y!4{^!r@#;|rXMVB_&_>aWxkD0yb7(RncG(ELCCwCN
z1JT91f|7m&27gX)cbh+f?O^qC|7Uic<$RlF9kYdwZG-)z*Mq<nNAP{AGwb%}ib2r1
zX3bx$<dT6bk*_7ADidURNYfwTo7@J|#=#%e0*}wqogawY`x8JM8~Bt16xpLNA1p~5
zB*fbR?$0zS^4(8gKV&qGoAc32f5C<*cV6;$M55pwQzBlUOv7J>qn7+y?t7i)Z`YT>
z1S<p<lK{oD^+v<`kjjNaLnmAFmJ6wSZ^<*#O<-NuZ2U=4A$?6SqDpg_wf`yTPOM$@
zQau^_HZ8)`!iDj3vc5l6fH#DjFupFE9IPydNEss)7FLp~A19s<=Rc${3*gr^-SPOb
z6a6GnrJJX_l8>W%mWgv3$y`w)?uLNMIkCFP;q=>Hg73#B*o>X?i%kQPY1j*^Za!*0
zS5n)nv-b9)J$yxVm`&j=gX_jH6r>jO>?=}nMMzHK4B{BpP;E61OW6h`MstM8)8d>|
z>AO5!mRA07kF3jnof{V@%R0qqGNOS${<g{&jxEC3H(J}Ch*7Y3!XhX*Jv<y!k?nsm
z)WadeCJ%?|=cQorR~-WBXUm$!+7-$cg8EBJ-xnK1jJR&_a<GJXQm4-^O36R@IrTOz
zc0#2$XpyhyzC{ll<%%~`oLGt>&GUVLIvPM-|9+b$8QI85j(~8#8&Z>;tRr7tKX|;#
z6877Czf1FO^B!)blFKrWU0`AMicR{n32RzvV)Yo#H&69jNi9~jHUcZp>KGVP%FqVc
zwq_O(kZDCfh^HJ(Z$9!wBmD}4lV>o#<RePoax(jM(Rc9b391@U2gw%~hmeYZ1RnCi
zxuWuAVU=pg6CN${jdWma@V(DaU4TCM<S__DF26`)FQW{75yAAdhOL4kH$i5in9AL^
zYc&Bd4b_K2kmRdFG6q*~@Tp$d7_$7j_H>T;5JM`mUc`y;mM$QQ?sy7zlxV0zz>T$B
za5t8@ta%jM_s`?_JJQ6HoY$&-7`E5zY%(6&+_c4h?p58>1AG-ADQ`w9BI~%j2DHH_
zlo%CHV4eV%cBQ;&Mb&+cIw7OFT~y&A3y;vw-E8vwIX1Vg#`$~OO56+m*2J|)Sl=_P
z1m*Y|3yqD;4f(L`EOk>#XwiyBs~Z0!3;=VD_YA?#Rj_-r)wz=WE2)eIDO>AZE@t5D
zD~%O#y~$xgY!L~zsf9&&@;qi*QwAAxgKV~#l39u<OO;d0E~4{Jw6k!6Y{KoL@Tb>*
zZG6qpI70^q6!cngsX*S;vLWFYY3KddEqDI0MNb`j+$&hunaV$Ma~b5_4w;9ksU1Zo
zErMhHPuRpeHtyJDVpfT}aaAX2q^1r51oi?{Ie&B~nLlr&Wm3|f*=TmVI9nER3}e7H
zXyI3P;ql}n8~|Si<Avq>jVQPQoK9&RYapc|Djf1`wKG+~@Mo0EeUqvSyljd|?@3{1
zoPg5k9_TL@6I!euAttJ+jZGA%J=+T`%-weNEWX`^v3m&pE5qd9*idkB0XWSpgHM!g
zH)}~PHU991d>P!TNy3K@%xYpdsY~`8EQk8OnK$=&q}Ty5a{&DG=C!`R`?Jx{r;x~;
z>4Y4J_*9%-tNI7=T_RU=`5QK=jNqjPW!A6Bys^Oy4aEzklvNDn6-cRkJcvrTQ$i0-
zO`WD(`R`RI#{CV7<jo||5?$<&t3-zL7l9si3B?Rwd^L*k+An&)<dQRghiZtX3rMp}
zXv~l*nf>m2UBz_Q&*5c?teH}R;j2Wcl~0j?5<W6AlEo_fjITitzytFF?2FHg;99UZ
zTBkCjcW9z%g`5!pJPUm=gWhniv={HBdhfVoAsiMMWntxE%_d^03)Baavh4g&x~UYn
z(5M2AE+KuE@VDjnPPa%4cPu6}-@>>}rpN$(S&HIg-Xs;rKEL55b(1V#ulq{w#Be7I
zqN_zDzBJNGUZtJHsm)loWt8EwOkNvZEgY5bhbR&bjf5ik0>(md=SE~ca*CP|)2JZ#
z8}?2xcz;i#$OZ6^Wl%Cj-&@M2Q;^@aY{1clSs3)DV7n$!w7k5uj1u5h_$^w=U;2i)
zQ(ZiHqsSS%-5i+qd2VYzg*<MB@u>bwfwsj7x)B#1!FSr6{yWDYBh?N&Sp+u*RZ+pI
zc~ZGD^>ER%*nhajFb3%PGZx8zq||WBx+ASv?>3_D+Gqd}KSb<9AV=N3%@BEv{RI
z65HA~%AF>Oiv5A|MxR<LP#@On@jEhIl`<wU)-dJd<bh4g*?zjjE);+cP^?1dNS5iP
zTSC`f+SCK7b<f=|KewqT$t)d3(;HPSJ12D+d9rT%Fqhr~Dh(~zzLBb6L`YSNwE7{C
zN<_*k4ltu>Ty-0%+F97ENR-rLdLZ~5k^!O=u8iPs(18`c)y3}rg+Y%*gb!`PI5d;w
z;lAX!8N8mFHc{D~*d3gulw@1Ze-*>PTxm6rYMtJ37a?;2m!Fa@5CMQ+JWwx^o96Li
zyb9~9<)Tp4tihRJHlJZU2?SX|<M56Nq%<`<uX1X<7QoVDrIq0x8NlNZRF&01R6a2s
z(PZJ;xCt${jG34B0&XwsYu~@`2lsd%D^uy{u%t;fLx_G|I5VFFoP&GSjm~WT;@|_J
zG5t_3_XA5mtILa4<e<J|E6Y7fa-Bq*fO0wtjSjS9=Ztclfki(eHOz4T+-|-wrwb}0
zwsEHyBvkGh)_zv<?Hr5vH@_~tw#TQ6*QD|g;Dj-oPlhOpgf48|Kg=*xu8k7rz9#0p
zsys@xgkCJ-phQNUit)M1C}841-sqXTb%|7qvW*VsNmM%TOteVoqejXbGFMZ*m$=#K
z-CYDRIT4Z33`JRq(*ZST%b`js6Gq?)(+2(y<B+HB=Wsd3c}D%x$zJf6nGj*Y(w4T%
zQfmT8gg2ccf`%SHn;(zn^9;2Ef!6u%m+$Xem%UZmw-xhQ43i0*IvMenkb_*K5>#As
zH8obX6tPfIxa+cuu^!BS^mHjmla#1q(+7xK#3OegZbV?47EpeYC~W-v`NL8_<$nNC
zL9V_>jh0GPR?Tnt-Fwg3{l`A%-urv?Ug?$ms#KC{YdzI_zu^w&o^$rz-@W&D$L^d#
zW4A~xJ}>E7AcpStQf%Kmr|fCjJqc~7@xDNu;>9Nb#$Zm3)@3IzenqYEc>=sbjFhD<
z$v6X})6qpry2q|ZtoGxs35rLR>9pqb=`#sh%?%(2!SKy)G|4MCeCQB6#s>*es3`~v
zZ4AU}JA3x-r7Rp)lC#zq&F1zn)WbTzuaRstr0;eft!i&jY~nC4C(*1}UMaFh9jtxc
zU1C$t5lN0y&fNEf?+niuYv9&Zuo0n27NQrdbAyWIEaY{g5MtZGO)92@yFD!$3@A84
ztnt1=q(BkMYK(Ierc*~*j*^yJQ$5)g<7SAs^NZ0z2cG^J%z71IRDW&TVzq$<#7G$&
zRaFtEjd|f7R>seLox}L@6iI~n*~7~0FjZA`t>hpnrlNx6>DhQE&(~QdatHxmxa2Vk
zMLFvFo~kNkG44uJoTl>%EH^bH9~n7=q*n`%xPW)ULL3nr<qS1dRZ;2)mtwtBXFXuW
z2_xqS!92*QiuWU&%mGknjT56}TLH$S${K%1rJkMvLTVeg!^rrfWyl++@yNy@G!O%A
zY$zuUN`pfgtJNzmO<T5Y+lI7(7*j^RkEv`&30hH<BPPybjiuPe5kkOw=@^)t8`HFw
z&|uBdQ*C4$Y129_3iG&6pFY8nXO3{{)M@J7MhDq9I>@q~ajG+GoEXs%_|L!jJKX>8
zf0v`j0<ko^*p<+(z>ogJf5<z&?QQJbzG&eaZB5z6asN}a-LbRZKX5_Uoqv|A5o}%%
ztv_$NMCW~q>njznjItCJi0gNbUq?1;LA^vYw)AsXCH3D1i_eF^^72aGC<ICQ9?~H|
zIR<;F(T;T$Y)eZa9<P>!^30JVJo34RdHl<d(MID0{pwf0%JHQWj7B4zcLX)a*NeBF
znC(Cb79n{g)`0r4#~$P7fBxqgjYhPs#q6xtXR56nSlYcZ?b~eSIBOd2^lI<9b}b1q
zNrHj~rSJu1bTm!FSW0fW`4(=!<MkZ8ZE>r{^JOIhG;M2rOVzx#ef#$Dt>5~sRHMq`
zu+YWC&6#xxkw_3?^0tbiAgY!AkjkWpk=)omcgaEN>TaW$GS{#~n<(MRvZM`>wrL^S
z-wsnu#FPafRv(#@?b@7(;~lYSi6Nv$>;kFJs1PZO!fJ9;a-5^+AW2DZvn0baUu%pJ
zpFC1uc%})GRV;Ri2xV2#BxTyMU!{&ZMd5KIj%F;D<Oi^NQ#bgcNJ$)u^B!?N5e?W_
zRaHf3jN>?OCK|0yv?z*{DGzOIDWsfzz?%@~gm=ID-Q4?zZ>MP@wF|TwXhX}t{l)*A
zy$23Zm0Q^i*2L;yb1z#A5y0l8CfK;}9zt`Tqr8knyZ^0udA$eu5>cGzk+u7Kcb}a{
zYA%`g1(V4HjfzX*tQetf+76A<94fiQvOx^i;WT9ltKx8+K7EEKo_><x0*^laC=Y(-
zL5`n3PPtGam00a-ipO;~1Sy7-dUL9IqD$i?9(?jk_|nt10f%`*UCXPXaoY{Bn;GgX
zYdu(<8N?1-L|e-wD}tj5Emd1^wg~tGV-DW-#;<D-U$)ZK3FlacWyT&ja3G--2B8LK
zivwKxu9KbxssjyE%}yphaN?6fZLP7kcp}#E284nUfk4#86m;}>6-#h&LQqE~*%P(~
z<}Pi-8ntV@Zn0la={>DlWKUFZnp`z?M8-z^UzCIpDP4(>`l-hL?o>;IX|cGE20M%M
z9*HaIT#D0dn2an_JtQ2)IhvSr5Ij-6#TsM8iNhtx+zCh`5HQxP9v0TYej#e(hNky4
zcFpWFoNs^iU3y4x_h#mR!?SzWPWElzg%e@bHMH8&HZA+F+RbPpL|wtyng%f>Y5SjU
zA*!KFYuD+yC+?H71`xA|SdZI~GKf*ar4FpUh_asATwlRH-<as8KJ{YCY}j#drGm}%
z!RI>Gxo8Y?nPRm6!kPnKB3W0#mWco&$1vx|+ZfNyK_SSz<E&fe@e@yS^5hBIXy?Ti
zO-o7|9KcKh(g-?C06PHB%Ch~Pb66sq>uB|ShFKm&g|&H85(HWWFX&2y6Hibc9rI4E
zDA@HxL@0bg2yrIi$*A}en~b;O|Ln=NO@mWSJzfh!lUZk+m6x<_f?AWoQ+SH9WZDEH
z0}-K)N{nXcl~STIA<)vaEmae{cuVUXZGcH`{vDu=#+Mv4B%@9!3rltg!TO4}u_a&z
z!z4jSQH9mUvYbm-u)4BBF)k>)WkxSe`z%CN<6^E#M_G)RhCmZEm4r2U@GK!o6{Ru{
zJE%d*-V>Z6rFr~Kw3cHop+MT&{S@Bg%Mr`V%hXMaxRTsd+xx;4q$*8qnev(tfv64M
zdBh1JTKm2X*8|oVo?Lt0-PM}kQ|uFPuCOjjOJ^y3!PM6T34{>YxqE~!rnK=4NR4F-
ztA%!?vDc)g+W;im&-1Kf5r)*{U6?||S{bgcuClbW#M!0gE|K!(E@q%^#)I9A7P<VB
zJMH>x5=1egP=HF?<i!dR$I8kIOUui~n3j4mS5?&=VVD7MsqcCHB&XrzE?{B%gm=92
z?R@LEy^|GI_}G8`4IY2;asK-gf6mpfx|)SO3ry!~1PH#RrA1wDIeV&<_~JlDL{+pr
zMjHZEIYHGd?LGxPWh?`Ic5#ovO9v~S>*>yL45!2rBKT+<zF!Rp!jVV6%4Ao;WIXrv
zj^WEzLI+pEXf#4qdGyi8_{c{-%Hno|)r+#^+8bWQop;{J{A7-geDtHNoIOiOe5i}t
z7rFiR+j;e?UrmVc#~=SVPd{^n<&{;6!gKiWVeWnFz08freB~=&;fr7T5|2Ldlqr%R
zeEYlp8oT!GpotBSKmIs>_K8msT7#w=;GTQl$X&0!fg?wb@MnMV2v0xrHA6*;$o~EN
zx#pUyx%;l$Szcb|*Z<@FG)+SzFq+J<d-pEx`_{jTca9UsPw?Bn`^PLTEzyLU(P+e9
zecL@;bJZb=qTrAJ-%oM$*=IR@`ZT%u{5#(Mt=w|UEj<3%Q#|_U<9zwcUj{ja2rO>f
z#+&ZAlN)Zhfv<e&N&fH;|C{L+1w?rLn{Vd2>#t+it_A9q$glj$ui&wU@OyXd;8oXO
z#~pXvK@$R>{NyKj=;23jzM?2g_Uzfiw|(2U;l1Ojr=H@^|Lo6r_St8X@-<?J?|Se5
z$lg7BSzO$K_XQD6D3kBJ+fBiUs?_zAkKX@VeB?vF$5)@Oi6vOogz!Co=ewAnpJ!oV
zfvxSPlX{&dBKx8!(7L7#Ez3*GeDH%G<o^5br>aU`DO8C=1*_-0Gb_*cWG{E+YSQQB
zMDd+TP{yWz9naZm&GD60?zrO)GuVrwD<cF3_1>4>g<V&{27pwN(^cXmkJd|x3!XSt
zI1MXDR$v)|H%h%opw(ziqf`3liQA4@A-af><Eaw;DyrZME632dCWU&Iwu9NG%CY;5
zq<*p5k%_N`670vtRE)e3ES~e2qiidDQ?RLx=0z0g-2V%i9Ot<w+2n>KbTQK0u5RDH
zUA*T#?>25&%!rvR%rhAmc!}J5@0$s2izaWQEK3#_7ilGcgIiyB3)kOtEp3Q65yo?4
ziVC7M?A^bUxrNto!%a7I&u-`5Im#;HRk-@9eJp&-Te^i4fnB?H5xrw^&o1t~`>$~8
z%Ct+}AB{&$CKG}-6qVx}zvW)bf)?=JlHG6?)1Tiy$6M~b%RFpVoOkTqvkNH-q6n{h
z?W<Y6@jBYJN#mj%`|@$V`3={w`=&j-{?KhK-M$23O$^GSVE4|Q%r7jk`_;?byyrS3
z_D15i-P@R-pQo%!nz@$uf7jpZo^DlD%+F8QzHO1{9lOVma$s@F>+ZP`oTD67s0&1m
z?A*1;U3cF_y;^tAR%Ock!W^+F7>`R!ILq79(3DRxy&k$xCaa1W!&t4U6brodo8QdM
z*I&okrH1HtqZrx$t{bms-@bjQ6sV32+E#mBJz2XFoc1SI+bko|n#_wQQV=LmvHWRC
zjoVX8dV&Umb6j=PO?>-ze>czGaZe(tNl^3^dD)4mbowVs=yE+mm-C@Gg%FjX!VNdx
z$brMxq!6PJq_7`aL|SrB^Ghikx2s#L-v;l8HZWbOS)AL!u7zF9&(9kyRpfY8#1#c+
z&o1%Y>EkT3gfAR;Nkrj_x&%_WhD<7dUi~riUS6oFGyn{a0@f|((Hy4|qO&;fP8s2&
zL&D{cFU>-EvxBse8r^s(d&ZyV`=$(b<gC;tlR0j_`Nj>dLAm<s!yBB{f`)tc?cU)1
zz+_>L$-<<E6QQ&09K!bP^K9QfS@)Vpb8{S+TkkzPxAVd^*Ij+i7297*S(RLU^?~kq
z!+#anyLWKiVr58A{`rG!A1yK}ci?uCvX))XE|e_iouihk_Z&*_X>L+K#9kWqzj`l{
zj86uc+if9?{UQtFMXtZ@+O7kY#hhV0H|F5n0bE`O1fp9-V!?Q95PTv_>lN(U$<YnR
z5EIHVEC;?~Vf%!*ZyWVjPZM2f-E<V5efn7@lLaPo+bIg;9~X@Ss#EhqR0ayxqRd92
zDM}QB`ZVQP^raP%Of?bIAoyMT_VK#OgzFC8Oh^PF>Rus9POmT##S(3S=;|)vb($x%
zDrG7mb>i8(Zy)pXhODV#p(}9)ElV6YDwj?+NOH<7P4uNXi4-ExvRp57`t&JoxaCG}
zz4cc1?Ab*d4OR;pt(2iCdFY{sc<NJ65myt5ISx{GXKoxY+?-!3z{M4LWsAk4E$&<t
z1=1=Kdv7hrsw3w!Wb(1VJ4^OMEk>K`az%vIM7Z%{Nv{2U_~A$R`0xBTKK8LMAtjwI
z4i)_H|NIYl`#ayt+_tSdZ?->TjHy0Za7Dq~+#I9Ph`p2jUA=LXdh1SnMJ^k0T@oTh
z*K~XZwU<s?6fq>kMN%nF->Z5iw`o{6ehFoRZaT@47E4%?E-335#e#9;@hg!BfA25(
z+ykHK(&d}FwF#dP$RL5XZ2MlzsrPbb`k8T$ou~WadNLfCEz!fhwJv%&ckNSxJ0B6o
zMuTx4-&VJ>q{3jDt&~~5)uC7Q!lbucb4Ky--MG&0>)cS6O)Z4Bu*8}umK_`|45$hk
zbkMzK))SsNw)86?M%R;1MD1W`=Nwg8;JqMDQ_|4jyMx2dZXCAIvhP3qnH|Y=jRS8w
z;cHm)bj7)rsK;qq*uCeq{I@^+89wrxA7*Yc=8gB<!!Q5FM|stayBUp^km97lzZ!}D
zET}_b1+nTvIS}z0D6|D_@!C>opwLL6!Lqf**yOxgw;U0*M6@=ft5n1bI8BWtUKugi
zSDHjTnSNI__GwwM=yPa;B#KrDZ6vqA@Zu?@z>C8vNU-w2OKqyI4-qG;wa>xIuca~q
z=P8SlzxplT!s}l5Iu0Dzj~7P_(ModCasKkNf64EE;tzO6j&yZ|-C`ahMlYh{x^V;Q
z%SB!a*LQixu(w81+()uCOy7)N`Wo5Tu_kSPRCEpPpG7ZCsVIgB<(km-uIXIa$~j}y
zi{?c;=I1Aj$0H{5bL`l;$arpqbE&OfTGZMtZrcWjYiu*Yjtphba3@1|+}u<?_l3P8
zuSDsM*BA$3FR}S%IU~`!QKguys$BBzbOQyOis>aU6B&d^1yP}pf;YeUExhl2@8vbG
zxi$3!1%t>;A>aSe`+4vSpWzvfbg)?;iy2zY7q%g7iRgxZybR>|?q{p-_vJQz=M(8{
zMCsSK&0xVgwas{hn?G(Yv&n{N*BC)BJp)Z2dk4|V>Iz+8+O9B~D`?t=#~*)+rViGf
zQXOc4s@2`87Ux8|XaC*!oU<`uW)iX>$GX!dvne3{io7Ic5Vu#+HON*^JYkfhsnL9*
z<|UODn&%rk)9+Gi*!8hd*N_vWYpl?`z!`$pfUG#&vPWBoQ;);<Wp0-I2MR8XDB5{Y
zqtg?MJljBd=>xrbK0Ea58ITPI^qiAj-VoFIJ5;Uz<~dbv8^WUJ`Pe4Tb8%%IczE4J
zg<073oTFsr)akwcnCBF*4}RI;Xyj%QZDJJaj;Fb8R^Akb2}Ai~85-{48;51whY-*h
ztwkV8)3k{5lx1P%C~L24aJ=D*I#5h~Wcd7m(ZGkMOH2YJmiXps#&b_I-u)ye>nFJJ
zHGBDk-~V&|*+2gvcfaYcz&)OYY7g3u07J53Yz@j&3n7SD0|n7805x;=+|VH>BMMfk
zCraX}hM=t_s~|WUV+sTCmw%$-6?q{N5w-ZbN=vSOh>14WA_pGlz<Fm}<I<qo617F$
z6nu>oEm0e+66Ml{12>Gp=BR52`UvE*o1!cz%YtA0#b4l~AN?@nxw%9#9#S)4Ks+Z-
zoaD&yBk<;QZ<;#X<gDR*vMX{$UP_Xt?%doQBseO=RL&K>!FT}-L!z4am(7!n7+Hsk
z(6%jg{o-WG=1xkt-g+z7z3MRAw{K^%Fyg)6xr=Xj%UyivLw`VB*DNnDF<IEU^IGEq
zBMQk0EQNS-g9R6Jhb-*~2(HM>P&$;T4=)Zg8*-Pl97a)RirA%E_1tKE*nR3!%K8d6
z)x$XvJY63S0Mxh0T)^)To_XeJPK1+)I##MxP^(+BdvdTJ^pL`cl$5{#DH__-Tj?ET
zuXO-Pr9obEmxG_nTh1RRUYiiK-tTOBh|iw}u+DqB&bhuGSpx%|`;6ARzUP4-&kF&Z
zJ7&7!`{|VgT^-oJ4@td@ZOSF@Z;)oNS;=fmmVIn0L%d^}I2x^|>!70*{rU2_Wah7p
ze%5<d=X-t;kyYj<V@8uX5Gad+J$uLO*s%+*pM<s|wgPSyv`ma#DO(Ajt~*mD3W~Q9
zisWr)174+%-%7Wk+8xChjDtM6voWCty57>hA}=Eus8b#Mjtr)M4yn+w!J(#uq6#q@
z!BLuNm-On_SFpK97($UUuks!hU5!p!{2riG#y3~ULC4DWM15$L<~<iNSn{Lqxi?I*
z2fM-Iexc*A7B<_A{yskj`=ZO{>$ir<Bx_aW@V)b8CF|gG8^1S{xYahwkO*U@{TUlP
ztMwFY|9g)JuNN-p$F}dUD(iecThEF(OXj=ox~p+c^OW!Sn)BE4ae9*SAsns!@kIM3
z>OQr&6C=ZD>M2E0TEA8GbjcBG@3#xHD7Xe=bV{^@lDSAz%fJ}}AeSzz4;&*c%gd)|
zbWC89?y>10<T$O6W)2ria7(Dp8R>)sOtE@UKSP$Hm?x^qL$}&qwHkR+&t}bAP#=Si
z5@w+F?3G;pq<>fBg^4hrI)a(?DV<F#Lt0XC$>>soy6#70478|T+LEsI0qHKIX^?!B
z5;%g7sDO7xqDxDCHABEx6|u!g``7FNIyk2D&e|@;zLEBZ#`P7sBA1aU*5yTj+wZu;
zTFR+K1;u;Xx=kH#+@_2~RcJ$?C<|g@z{-0{+ghFN9e3QxbvIl^<n+b7we_zrDnI<g
z|Cq;~IKk2q#!p$&g-yLqc+)*^!pRL=dtUOE>WnDEJEEggwvq_ltuHoE!+`(*AOJ~3
zK~(RRjpOAhJ)@Y2>y2woF<7vM8VtD7>6e{#X)7oSXq(0i<4YW_-<XRyS&v}|P<Aa@
zQ&wY0op;263b9FLIuWzPRXfVO7<JYl$)gY%8YdSh!_<x8Yv=w7pdlJLeT-NrI6(`S
z`vOfHOGdk6D!Ozo^+inHixWp*-a!YO0DVb`o?8u>p|}_$g)b6eyu~qwEyFsnT4vin
zZT0wRY8IeiS+(K^K*wxW?J%jRD?L>hK70{JNCoK`h6VaoR@x0%`a(X_;E(jXpcGDM
zng$4n<ofM^sx^654XM_<VCH~p5QhAc^TwI&QvXvjr*O1qJRVn!n=#9r8r~q#bF~V&
zZ?dMAdPYWQovd0k^*oAd{dx_8b%T2xLUH-n#w7luKk|1uwY<tSgzmc;y>-EJ<4yY+
zEu01&+4rSQu+?<%lj%(z8d}6#%-Q986=P*`UTqB2?#Usxp~isIM3<+wv8Kt=ZNgXN
zWhmXeiHKwl`b3SHA_kJ?4}x{iN>r&Dtd?7_oZ9r2ODY?rRAsP9W?$;|gyBY!#dQi`
zR`0C`G_Io<Hv{Efs0bY%Kl>tmov&`ag4lXl8$0M@RhcW8Tmq$oD#U>z@sgV-fLVrF
zDfKm%bg_)2n4N9H{rA#m=*LX9ym&j;f%ekHG_&_2bO|on#Xa+VXr~0aY~C&$!R$D8
z3i*5q{5tq>I$p=m91|p*QJ6rN&9`A$&ADgEi5lXBgpl@dFG^V!jH;65How-x)obDL
znaWV<k71T<;QU#X>lgy!xbu$J(@0A#ttA+B7pO=`MvgRu3}F*M@=t63&KLzf+;3x<
zkSxj98Ph%@$tX%gI!I^AJ);d6yWH3B6?tJYoZoR^OeT84TuzE6{)J?4rn>ZQf~XpC
z;96C131nl4Sf$fX$(aR6{VJ2?>CKyxC`htKy9VbmfOAOUk=7PW$0a^U&gj?1MbNO4
zH)q>+imIShvyPqf-6njwFV9}F*bQ|a2-YXmIotGNLJV@oo%4<umDt8qDv`Vo9Vl2Q
zgvN*j%Ca0NE&FU$l~$4xTALR1lR9VW>G>GAE>y%aM%&crU9y5#^K4>NilW4OZ^Zr4
zX!JzHnhd0Is;aVk-#%l<${xA(qIKOlXXc)q^Gp9MVq{v^U3Z~;zH9`97!0~}ZqrR(
zVt%&WwWQUM%7F@BP!=U@lG9$(b!Pj)bu_1e!j1DMHoe-6A338KwiiS-#KT2v0VvLG
zK!$Pd)!DO1T+3}^;UW^!5Nf>lI2AOgjX_uTL}$1R>w;fQD#<HyF{RfNA`A>>`@c;G
z?G5E<AIz+1895ChUS3(mINxp3knCTHcqbH8NK+8cDm)1#6_e*C%#|Y)#XH4&Skbzx
zcYXHeW4358epZc|;O1dkF<Y)*JI5?}I9-WQVVkq{Ieq@#lrOf#q9nAoyB5yd#;sY=
zSdZ1FZK<lNhx|lXoz^(#n46z4t(zWUkZ8>o6xz^Ilm#L}8(aI^7uH{Ox{CLymur#Y
z18SxHp$#bpq8(r8mWT?%2n~XY^+XMA3j$SP9eiSp#5SgD!`jn{qx7TBXlm<}WP^Ri
zi8mu5I$YwzR#lp&p)88j_clXM35x1G!2Vxxj?rivPK1X)_Xv00^#;(^AmJEMH-NJ{
zcq`vr55;ybsh!Syu{ctGQ8N4+X__f@y=o--2pQNNdWJ4{lu?Jo5sopdVT!iS=o{5h
zP+^H4I)iY`>^ogeudPiL2+|+~N&+JA8z25t7UuVG?_2Ms*m088x+XS}q9~E*aatKg
zV&+CgI-+(bLebU`8ng{mWkta}$b>eOG*Kz=cpRn6NlfcWqWhE<@k{G|;)=Y)MGMf>
zwX4&hB)yT0VsG8A+F&vHs2**Fx=})7Xi4D((X&{KxXYjpb{Gln0J7u>f)d(>mE{$R
zs=|x2M&^*>W|4*#bxOV3P_Hy_9cZP)maYSgHl5^RSfQQ8o5=wzfyCl&W|5a=wP7Oj
z<seFq6*^EQgpiuFNJ_S`_e$>v8>ih{t^;eDrfXI$Y1}oYxUF+3raRbhvEPfbpB^))
z1I!p-TRMKK#9*;tvWJ-9o)`y^IHp)dFa{S*HP&`<%)*?~8B*T+<cSR+a#h063-7+V
z!JJfR+LkYV;S1b(=bba>$#r)ZQV!51XLP!}4+)4kPM<!-b0?pp*wKCA+)Ew4kPwPI
z2Xar}pe^3Iyl()juJc-2KZZ<2Vu-YDAOzza&vU4sJ2JSDjgCi(o!NLTEiG~M=usYh
z^fB<sV2Dsgh=UNs(2jFqluprrJG;)kT#=W&3>9o<FTz?VrVrq?Ns$Dxx@jp;wY-c|
zr%qGXHJZW<=HOjg*+9Wc+T8lJJY0}%8(3YPa`?buuD$kJw(ZzPEmNEqR0AQ@!~%{y
zb(F`Rc^qm`uYCuBixP0%KoWv5T=%_>PaPO8<0J`-H5uHCMnY&Ub6ZH<&ptuK2GNNo
z2st|2Oi^MJapF687!63Ot?}NQa#6(<9*=oDMCrZ{eS-!I8(3nSIe1$g*bp=dz9>*a
zf?#t(3&fz^h8|*T3d9wO7A;+&<k(#{;xb3D!#m%d2b4kzlJ3AUd~dDfo3!~7L*T1V
zJwqQSbSV~;lgTzX%(=JQF%_*n6WCZEf9?d&9y`k6#U1J1+~6wLHYo52w#no+ULt)s
z1j%c8J<o9c2dTh`6Q?+F;yLPR;MlR_EG@y8zVv0PZ7b~Ew~vK|Im9QnroqvBvn<E*
zwM(EAS5g!eXU<M}{K+Hye}DcUuJrb-qEZH<@gERnb<!)?7Togljq(+FDT;bivi67N
zJCK;1l8*A!R{QFtODt5e%9dx3o@8~ZxN^cEUU*4m!+x-t=B?`^FKNe!p3n%fcKq#k
z{cXPUJHM0LZoSnu?v&J;GlhTs{$J;(|Brvhr|SoiO1k=5N3=rm!DlaqzP0#Zzu7tO
ztmdwbIOhpbnXcBjFu(OD-!c&@DUD7KBVKpWHn12YrFVon(6%jtXH-@Ok+v=4(HMXb
zTZ*D2h7`vPD;75sA=HsFDIKkqs+gy3TS6O%s*FaXbc{%dHW!MbNX%XN3b%6N3Wz5*
zX=|2<N=#n4P*mo{#~3Jmi8vv)N{m9`OL7~zx;DtXC_EvqrtyN<BxRNqa8=A3<Q!5v
z#o?8#1AU7K&X+i8@iM_N!BHb>aBbAs<u1&E%WG9y2J<DM2q8sf`k1p_L&cL%9O2O?
z9^<N;z5&4@;s?h|>Py@7n#Z|0+MvXG6&L3TQz6uX6QeR5UQvICYZjnrc3ufC@;m?K
z0q*|~zs1p`5EFNVIM8|zKl)=o#yj414?A{0k$}8_%haeO8>H*t6bY<=uMoG$!p_4y
z^~DJf{K;ed(VsrfQXQ#ABMNayYtKHz%R?^OPQfNP{ffLCrRN_O^__(krB}M1DN*VA
z1#6m|MN#0@arp3I4j*_GtFZtSx0a>zBFnl8HdoF-?`w9}a_WkcVK>Y6Pq0{<G9gu%
zwo{_ElnG{(oY^J0D_t_%^Cl)kXlZLCcBLeCZ1Yw_-eEa;@+6=C!sq$e$3C{D=iN$C
zpp9um74RagEH5!#U7>ATCgY0HXv}C-bwPi{Hpk<~k0<n9X+yNOPEIHarEMAzVfXGm
zGv^cMX_|(*uDfKOqAVGY$FyxgNeVVM6<7LXp{)`rX_^M_1z$KqXviI13^~rFIx(RT
zg?aB{9-DKHrU_m0QDkb@oZ>W2EcvUhYpT+WknGi+b1C_?G&NOi{yOiOTV6EfOtge+
zaR_>09_;X3(tE-T?(xKl6FmIzBb=y@5OGB5TfgN~_@rP}g%C;#SFy6(@X$jKao6p;
z@I}#m=X?n6dZID%u6Mnix7__^>N=u@BdSu@4gdPze1g6E_fu7yZ-MBYjgyFD@4mh4
zecM}+uxihZA|Wl{V=mvx&|nYnxj4>OcSXUzY$cJUU<x*`#Xv#UOrF&gZgeR`RMMd(
ztuh{sDd!eA^CHCoH}GIn+|vF?n@fthITFnoeCkg=#cI96!2<`9zErbpqtIx}XFmHG
zjy-oA$Z@8ewL1Wi@<wzq)=07xx-|c8<FgGShCtH<>ZQxMA1rheCe^2&`r27mR+d@Z
zzR1GDP7duq$o~ENttVp2n$@U0@bN#g+Fuch!5~LbNIghjchehiA_;aDqQcj{_BD<k
zJ<5@j&vNYO8OC#C_U+q7Xbt{U?`LWc+b#59t!sv5ET36jVrBI#lgXI*`8gIAwj~7{
zyA0GLN1kPMb!u6~0icKdqnZa?R*^%84l$X`5n{wk$;!$qr%#@sUOjCw?4n|E+s>Ks
z7VQeZJ3~;31ZtdvQS?BOjJ8yw<5CI1dJB4Hp3i!-T{=Q`8?&dW1*!!aJ<}C~$0FH-
z?Vo|~uFs5sK!jLuVBcYGy73kcAG)gBpq}5BoxQdwEjxGY;K24ns76}n2pCGT|LVV_
zoSzcpOg=k(YElM^`x{pvNX{4VNKrD`aTu?S<qJqMcoclZ*qbuRyTneJx-e9*=ew6H
z@=_Je<z9ej(arZjZhR5(x@zk#g=Va`cV=p-@!p}XBzT8I`^F!aNH*|bZAmy4h|<%F
zCWkW$v_yXQ_x~%u_lLjRS2;Lr_0|eS0Zz~|E$Xzqb1q5WpKp_%>kC;#n!IaLX-Y?S
z;ZU{s<79501G{f}0SCV{A_7&)=#HT!G&S{!K;g%{`kL2p%~glF?Y7r&^UXKo#Ju(p
zBcW}1_R;5P+7|CTMOhL;pbY_SQykMf-uKSGflp;G&IwHjeCbPH=JStyo=5mRkDUBG
z6WzvDJ8z;5Rwg4|Qj68zZnAo0lQ$e`-7?~YBS)U*^r^GV@7d151N%9A_$qu6QwDfo
zb#;Z4C(dyC)H3t)bA(jJ69o!iLbT%as(@>*x|ZF$_Ay;u#kq=;Cr-1v+;VK`6tRKI
zjXALAdb@-U&g@~SzFkxx6lXx8epYc*plyOvhl+Jr7O+kN)u7?}u$I?Q7nfq?3R*EL
z7uYtxhy8mGqEy6TW@TDBt}DAz#J6Y=yem1h|61<8>rLEn{S9U?3;?5bjoMt(+u{GF
zV4J#y)s`4xD#2(C6?W`X+}tS|IYF*N6wMo%pt<>bcfU%=9I<M#vdZlwYD<iPDcicF
zFDDRPn`jpyx<S^oj<_N(Z&7JcXViwGmBGY7q+&+Frg>&PnVtP0_+ptLmM9m>0%F9q
zTe@34udJ(JUE=!bI^#fZ$R`LaMrGHbz3kexi@EU_QKNMWttHebj^~~`&eO-9W(E<~
z#5F3Ch?(il?ya^&3sb6+Hb0^7M=K~-U3C@re#2Y&@gMy0Ek5zqitE^YY_NXg!@tgR
z$Byy6-}}9Iu>_?UQ%tt1C{$^k;{zY~K==6CHsDeQty9;*=e@$T-@WtPeA7+beA7+b
z_n!CgYrpnu?A?EWcfaR7y&)tPCrxx%M89<p&OF3ro__XeKKr=`*|T>Ss*PE*K#0>c
z6b5&{_O-92C@RY+PQ>yeLR|-nqM+~)IZF%?=c+W<OmW_I=baR8!lys|Aj?au{K((?
z`*wQ_6zn-3Y#@qdt^V9k{X9KMzb)`4SYJwU?gF|XCT~w6gxHl4f#nhG+_{t6Z@-=I
zd;i};Dbofs8$s<#cT!JDRY9XOLn9?(b+?k6P`l@UZh5`mfB%R1*uVd6jva+I9a5a|
zz8`omlgWhn`3bQ4yvMUOXjH3Sj5RE@0aas(Dhh8gcD1ZeS^M4YkKsF4AmW#!3?K1&
zGqod>Noz+e9@IHfmeFs?nK8!B2)&fDu7dT0g5KI&k47(oZ^03nj0*PbT;QRlBgl@H
z(>pvX)v8gxq2}T`p}wjn)Kl0FS}Ee`NDi#fKV`yZNKN}e?e}u44|F*Z2c2!I;8J~E
zDiz8_>i|v)G`6<<651zPph0nAgb!niFisouWh@;*yF$vq^v>dol9);?L0cdMM3o{T
z19_-Qr$9hrv_u$k{4`pEj%I+*cTs^hmy1Zch8!j!ZSKx*IYMVJ&^#_q%!_kpQJNHs
zF~av;eqw3)N}vIsTf`+WWn^UXt$;{N)PO6k23unfU&dGxX;29W8J^5;UcOtpq(4!?
z>)6KHH7GTaR4%2~+f_8h5WAA1e%$i^vo)S0zftWDeNmulP(27S)HoL@3Xd>GaI8(n
zvQOrx(AWNw*TQhUKwqlW-Cu@Y(~kh^O`WMwO2xN)<J-9Xn%7d-!nBx6#EZ(V>kqPT
z-#$vU&RYRb?L4&~p`wTcR035@wW?AO<Af-YD60twZ&4R<-ZO5_peRmTd|XMTb(*rq
z2RRk(1m^^6X3%yeTHbrwwk0D1K2d3AvXMLpaZq-aX(Q3p)hE}>i*$r0>4V+I<P!a6
zPcmX{1#?*xYMc5JyKqG=IkWvMQ<`d2GbH>*yw$IC!@)yBDu&@2*EK8Agpg!JG$WKY
zZjE>{9q1@1RcINvwLPy`(o_qCVw=_VCu`VilhCS^JJkKJe;OT&-6rl}gLZW`xgw@3
zMXYJEd4Wn*I2I;j>Uv5$KO*i3oSiJwb<}DVDed-AMMgrD<VofQoD!tmuzoJ@^7&&q
z6|-LpBrVy0rOPrK9A$vaS;l2j6q+_q#Tvy&j~fKfFI$np4GmwO`72Gev>7-u^f)|3
z`nyxSIaa3K@n*QENgF}J|1}M6R!{j$TRVD2rQoO#gs4;0wHAj{bDXoEOX^&sskwv>
zYUS`{cV`|27n34YhWg2vuVVMfSs5I!yF5v89wEdAaSCz3jhvrV9JVk&cZ6m#ln2PN
z#lbrh#@3!B*2>PKUgvl-f2DN(Ve*e`_+fg*I#_(&#s#QjVKPB>1-|;#lSBd`#k`(+
z{HshxV;07XxB^-cGdHA2XpxPfSL<i1sWC#=-A8-dEoh)Vbs{D6wfJyqz<&+_P1)q0
zy}K4Es}k=4S5r@G3mKd|)^{dK23BTki>i#rV@9JfigI@8EaUN*#l=Oc(U>!5&T#z1
zaU%=?3h!Cmy_?Z!WSQyHDPMc;Yu&LYlL?c_gsQ3tA#m*2Y3jC3`<7Bw6$?ABW_3F4
zvhKZ0xdHaDhc?`KrJqZ$AW>P@`I)U|9Zcqde#tmxe&0u>h>@ym3g8G7)X{ajpgoJt
zu#xqrd%nHzJl%9`64_FSNz>Y4opTgL2?fke#`tX|XXhKMF%+e317&4hb(*FD=ZLB7
z!yF$+NEW3_@z9QVeYja=^7Cw+tT(86%B^#!v27`;%GhYyDFoY^NgaT4H;&6)`g&xW
zFsim$<OggB`@sF*0ujvm2Re^$hWB@CPq*gWbTo{iog!uLCYMD?+qSfApeQ!?>{Qh}
zo6s^t29dn~&P(6y)ukJ6+Lody&^C}<PBNiMgbsCi{_E>M8$z3M6G-c<Fi-786jkMm
zU;H9}`g?!Ihd=x$tU3s}OlJW;@PYU9&bPmXxy3xLbTRr)BolfB%MN#DjfWU0tCAQS
zR##Vf`pGBp-cd+Pp=S)ncGkftiiI=EvgEJa_7)blEl`a-&b6F6b&4ZLp5ZV4;=eN*
zjqr&IwXUa#2;<R+vr9`HJa~|~xe3l$2y6fT{Tw)OkUe|%^2INHk<Whavt0v;$z;NH
z*Ima|S6#()I_2omqkQ_oPp5>s$gQ{D%HF+u*|~Ek%S+2V@x&9HIDUfZbczCp4jtmA
z+Ya&QqmL#c6QL|T?Q{wxI=|#`XSjYgA$q-i?lN}<E@v5pT_n}bPN&n(q$f2|vCnSJ
zDL1A{gwBifB>FdjC=Eesf@`3JrU-;m2y;qPFQXbM=L>>b>n(B6I*@USs0hSh9!JEo
zViB=;X%nDKD;G8DI*%nKrN+}ZL1I4(^KTgq8`?I`38Ah*jEYW5A%=iRWLhq>Qk`X`
zy!=^Ux;2#)g18h<j)OX}#Pqb0Y|O)%J=WRpDs=RJ291SOjw2lu8<XSXw$MgVhVY$v
z9MiBu46!4{=nb>YTbm-rd{q`jf_+TU7G;q(;|t+<5r~0TU4K0xM(f&PDa`o7GP3i%
zZ03$<Shf(HPstpr)T=8rO@nTh*m#R2x|XS&;5k-l_a5LQpZEyTKZnW`fU%a0M`L^$
z2_7q*QYc5lV)+Fg`OJUi-~H*Ypwac-s7enGjI`re7AM^My4Uc5zyAT=_Lgs=468P|
z#CV;9goKy~qhgK_rzxjH5vf40q5Y2Uu_R3~e(umVUF*QiQG4q2Y5wzX{TBb=N8ZJr
zUAt{Axn;sF`-$(qFG0Mi=DRFu+Zsf0a)9Pte;pNTI<FXFVFU<s{GB(w8F9{F{$P0%
zKmW_Wz<>Iwe@ffb3FbEL@C?>D=Llhdlx#R@k~w`vzrJvh67eGlf#6no<D2f{p4-2h
zQ4w)8Hnx5;fIyky(dn?(^$FwFm5tlg4Gv;Z72PBi`VK6)WFp20iEmgjZpaS)L6he_
zgm%}QQxz#(9~bIMYH~sp*;VW3;BYePxv%vE`F5QeQoLh$4KL9NE6&PMG_)3ry+}8b
zGdf9LYfkEkvF~cLrRT#otvshR&+z2Y)on<d+Gfw2>Pe${u@+P7QIZfs2O(}+lA&|Q
z9d}r4PkN;~Jn!a2x_Gi1z_J;gaNe_b?>^?{7cS%qw@y^eNNxiw(<#1ij3;9xQFG4e
zD7AlVQ7;`rHJMC!?|a|FiF?n`)=C@loW<Baup~!yii93XIQ{rhc5a_AS9!|l6EAuy
z4--dB`;I5#B?mcra*xubEiFAzEmD($>{W}f>>)I(OhyHB<Dx^)tOm>_gU6beIPWZx
z5IfFjG>3+8&ioS*icCW(f=jS*y>f<s`j3CYdIU?~0V;n#L>+|5uE@odAfCn*#-Hv2
z2M_M&x@)gNM2WG*)}r=C;1<XR5HaiOLIp$(vyR>8EG?QKIOpvGLm&oAk`S@dK&RPi
zQ#56*&Ujo3cn=|+Ty@}%`k8RpdMJv^4sPs|pj>pFXBVR)!Km^=%F2B)+82HOB4nZr
zmspGp?!JKUUx4h~xsz?%wm~+kW@p1iF;H^6Otohd>iletL@d>3Q}>+bTp}8=?B39A
zav?^_s!Va!%}9<{3OC+(V`9)^;DN^OQ=7iu1S@CLarj;DJO>UOVA?bnaKx<@FV0xA
zqUYhye4g=Qjq^5!BdOTEXE*cPCX|KsZ!H~^<AS%|dk-!eaYU^yd6f~-DJl+i7UOrp
zpt%qt|K&gYHlxHqW&wAXYOYf}H-$$WeVn@6CXzv(|1ciw)Yt)gFC#N;3Rxxm$Nn!a
z<q4*+R6-Qia&(gn%ySIAguKPBObMF0<_CV@`x%YK$p}k(Q94f3v=rX23;oW%lIO-1
zW&A>=MX4>~kP>-QC^SyHwYOHstj{UF`Dd{Hu9Dj`(&vMu1XY|b2zVM1XkjGtct(_~
zsaK@8*lXeK2DDK|b)>4Q1cwCbx~446+UwefrA;RPo+qFtPeziL;GCn?T+7s}|02Q0
z(-=G0v}&tlHMYcNmC<O#bS0v-61>n9Fm*2u^mZYVQChGu2&oR#IoHKsBWqK1vL7`3
z``lmG&L3Ix`!{{#H&Tu#7;BJpujgcq7-JW!-AeJ!<9$Jljd^$&u|eSr%N`zh0p}Gl
zp62}d7($9E=kquY9z2-ZxNTAf0chtv5+g)wvhI8$9nVnUCM0j{IrbN{XIpaKbKP~<
zBL2n6bax0v@Lae1dX6v7@qzFAU(q>w#>FxG=>PI#yz`xJVOxEa(yvk`!v4q<5)U%v
zh!}!3e6Jc*JyBA|ZQ~If-VeBkoku8%v2V=L#@f795umj25|I%5CJw4G{Uijs8qw6X
zv3Dh<8=}(2NYk{0RGK!eYb)yls%qRbl{s%Q_7s|_SB%ued7r{f8O0Go8}LOzSyj|4
zMn|eK8ZvH)CgA)aq@q-1=KEf6uAIAmuc+4-E)^{$H9{&=REH}naFgycsqe{vp1$|&
z`ck-Z)92jSgN5#CW}XS>tfyp@G|5{yed;t)dYbvOmKp3crRUpmG${2FtjJ1lgsQSy
ztkNZ#IG_+H6l$zrvt*AYUCexXEn<xWI!O~RBnz+Tz5BXdO=`xJ{mM$}Y3h}B*<xE;
z4RKx!nGLVnhTxqg?Rf7k4y79{(y!;dj?s9GuZ(^yQ}<<<6=BPjYc?3ny9|AJ07;GG
z!6&M~3ys0%n6h)eqjz-9aqYF&vSZus&0l1?=eBLl0#1-|OqP&C&<jXR>bn4$-j<Z)
zB*1h!r5umUAbl}Jjd<qq#~<VIN00E!|JT2x-nNXE*2QTW=GeV=FGcAoixN>Kv_=kK
z9^UNyaL$ZstAV$^zeO?)yHFE0otvh{xdKU4m_=1u-E1&p<|lsgCs|ot=4XHQpYX{~
zeu9tx(I4}hzxn_0kAC9Ex$CYwIC$_N^>k{=IkX-B_R7i%AOHBrdH1{Doq7%nWm$IF
zzimPbY`=-AOPDG8B7Y7#bS&>txd*8Zj9-$H?zC#&!80C|n?!6h_*Z00C8JE1ROo<!
z^>4RWf7)ucY~(kH!G?S_#I97s>Q<dP=KTVD=l8LFy1>Gz37(S4narG%zv`IQHLJ_3
zjHOBn+Ee-h1e(-$G={*+bd}}RW#$*>X;&JYIOgWes!&yqKldEl_HL)DN>eOF_TzgG
z)+Mi`O$t^NeCVw{Cy}U15JjCbt{1p@d^4}#bNdzz<;9h3u%OD0#YH4GmiUw5)3pw(
zeQTW;H^1>KwxRgcIxfdzhlkmEwQk3B-dQ4v))~o3v9$Go)bk(Byh+zxe?~|$BUDvY
zOy)P+@Sz`5Yb=lwZ=9sAK23N03#n_*wVL@HUF@7ANqPVPAOJ~3K~y`P@kQHfMTo(u
zHg}9mUUU7mtZZ8$lxAd~WrTBrXN5pxzstyaE#tB3SO~h3ILsBV&f3srln(5<#z^6P
z_qSDH^<xp+);w4RC(2i!dWy5lXE}M|IL{qB%F@}>yyn)Mc=+MZvVGfx{rmRdQeR!~
zfM^C08dzOfMq_}ChNN>ss@KP!N!v_~phbG%!W3#u#zR)Hf-4dN5gOwJ(8#XcX1Mh}
z%i2&23`s!N4E|O>%~!Z&6i7jbh>+{5Wcsk-FsbK-FTM>FY$6U9m(mCN2F*ScELMwL
zx9d8-Qhbr!>}IZ+Bev#ByVUATyywJ;lRW$E5k{k;vl1s0Q=BU+D~!iunx^5zi4%n9
zYOcQi5XX-jck!M*MnWHB<kT0AbM38HvADR%csypcNCtpPDnRb3;--ah?FvE_t>D|E
z6w(qyWYrsdw>a6$oA-YMZ@ucRFL>}Sy_l!8ckf>2=c>NHZD)4r@RKv~rRR?%oV%Dc
zMtoJ_d;uC6mNl)Hu(6d=mL+p@6JlJo`c_fAbF^K?<t8CmWhP5kQi)c+_O@+7H(ydS
zluT%V&+%PPyE<LdANBdg#xi?vf;gWHQimsb$RTdDS}(FVVi4x55qlQqn4UbrO54zS
zLru<%g~|Lp#VF8(DW%Ne{FtZ>8VggfBDC>D^1>a3dIFA+IvVBt45CuFqT{^q&L(#b
zNle>SKocXGQWl=V2~R!w1S`u+96Yd>_r3Q$eDMGLAlv5Wc=Ma?rYa3e_JyOZYYQ`p
zQkC8^NwiIfnJG&FT+w^f&2&oT$4SYjtvA8Yz9>_6x8c#wTSjmUHAOilw1LA{Ut>FH
zOz}P^-J0o8Ixfx{x*}`E_lh-dBRR7@mu06q``McCZ1@fmWH%}2?FVbevj1X)=nU=H
zdte{;yy+g^ao;y{_dWM;=<p#j(~iMg1t@&t6QAJz`|s!He(vW;<R+w$D}{$P*uM)4
z^IUb+Rs77){0#r(pZ;?`^{G#B^ysk^M-j%Of}i@SpW>c-?qToVy)+%_l#AATe0+*_
z!%=ml=mAfYelrWQtVj0Um%zO4LVgKWd-biaCbm<fM+|jJ__;_ol3Zui$XdAXVw^MI
z=B^z(x#i}Y`SMeLii%oIb=z27bAs5|MCpo%^_I<@pH!`(I~b%_j>cVV_CgexhQNpZ
z<A?ZLfAen<+f_6Kyr11TH+?M4EJHQ|xh}kITU<3~kSGo1XzqfJyCtHQ%=74@kMf%z
z{R4jCgTKPk$WS!`um|4%qd&m6y!}n=-&GMBWjdWwRTZ)6sVfU#cE_`t*6g(<mL(ij
zSyI;nc-cE*h(^Ea9HVN4VunalH@xn)S9AQtaennzf0euLx|93vyN|1{zM6*~evHXv
z2i_MbxkY13QH=;85JJFvhfkE0mPe4_+7O6MLuQv7&rgVLAa`!cHf%<9pkD{EwtN9U
z8WZXo=RM#4?cYvWjm)6iV2EcZAZK1*=W)D{XLv<A5drD|Me<Bq%&{$o`|QPrh&83P
zCs-H^qE<j9a`@VVeDk(%q8vFEckI9tU~(}VKuZ+imRn!N_kI80<Q?yL$IJy=(n5bj
zh4)mW5wE%RHvYxG_}@8k;zW;ytKhwG$L)8rxVQt6V&<aP_UtSMgVTS`cc1Il^%nBy
zUTl%UJ#|Yl$FI{MW-mx`;!{-q?JxWyUwiI2Klu|sjyTVQpLvi^{mGy5JOA|oe(3#w
zm)F1cHSF2F%i^h|tjG=mHIMP}uRO|leu0CBub#ao=r)b5FVzt;gH&cVQc>&Yn=&vr
z+LSgpAYE%c=TVni`YCN_6LCcg7r-AcBCISgclD{+qjzbcoC5=H@<KD*Xk5#djPc+9
z;x9P6yu#bxecuHhZ!5%6xNW@Uop0gBSKmS%lobgH)f8|A*T3pIc8o^E+5-`Mq}7O*
zmF_8tCLU-rp-h>H5Zac)>TL*ZOQc4nMSOsklsGAfMB11T1A(ISyy+X>#3w)XCoJj?
zuDRxVcJA6srurl`bPu6Lq_8B-HfNJ~&YW4IY0QPm6pE^#IliARHAX}7hOZ5Mnql^D
z=kr9s6&AP6Yd6LI+SpnSfsm4}E^Pf=QLryuy5LTc5GG+p1DbM8dtvvgClS%kAcC{M
zZ7dro*gpD`e;Xpv3)|*d*fvi;&4%yh-yJ)4EwW?RBCosc&Y8n!s!vFD<bx~Sw|~E#
zImh^-(zKDX>|wXzjjg@OoZNWs=iKaTFCj=Kg<g}<;kwwNIH4TR5u2K(t|@(yGO=v~
z`}F4?=BckfO;L^b%x6EtLk~a9>C>nAiT~}#_@!U^B_8_hXZYdw|KQ9s&WS}Jv?1_E
z4?MuWgNHbH_4S=X&t(t8IN?@`r2F;0FvU0U3`4Y7y2WHK0EX>)5nIO{=Nv^@5E|uy
z2OeO$8u+2_`-x2)DH%1YEH5uxVhcV&=z_LwUmCLMAgpvoXJ<fk@F5&Kc8udEPi^{M
zw^js^lKqGGv+vM8OK>Y4L9N~6NEQeol^DeebqzQrqIhY$auv}rT`q_71hwZ_l$C{-
zY(jC>)rT03OX~sLM4T^hzU-cN&Rj<Wci(*%cfausG{KC)!rR*T{ong9<XY{bummYf
zK1+#IA=1>A@hi^qK)Rh_&6LulRcD^$Mjp=a^~8bu(?9*w{G)&LlT_6R!BZr~3YMWA
z&NGFF=XmMtR+q1IChu_H=u;{NpJK2l3LEWmn=zr+SFpZ6cb~93R9kk~FtGOe4j(oh
zoo1D0O_TE^_P)S5v)n>xpzG}iO<UXhB55gF%%ZBS5T9i2^*#NBzKxi9(1i{=pbV}(
zC2skQ!MkDGqRYD<Z1(02I}9D2q^PiZ_6&vhmJk$Ym;LK*y^-zn6`%Xu=lIoM|8;J;
z`4;ZG?>$^|%{6@f3y-7fY1-B}U2S(yY+<I&%c7)h8rr6%PwFs8lU(!<srS;>h|MLt
zzf46Kq#>plr7z0vlNZ8nl)Ykc&X{^tSzTFW>=$X<mg(wr^A~Bmz2yU}u2MR+WV0@H
z{)PG(m*X}XX;|gN@l$;9p(psspZs@R|C*b5>o>iPzy2NH!O#EFzu|3feH*vjd>z}$
zRjXsqjW?w146#+~MuCekr{-shXtK5wWbYjB`|E#=ojZ5py;6)yRK>WSQAj+-9)~X{
z#HK|xQY0>EO(i$tJ(`Tr5EbVOVr!JG4#A5<RMDm-Hcgl4*7HDbow%m4<j>HO(vZ7^
zOeED~O24Ph%DLBaInI!mibNu9?k_t~oPLI%G6iP4W*h^ABCD08Ya}(+IG<c3%`)pd
zTEd3!$~<xh3QH^*q`9Z$4uc*u=WRg5+vc8=YA()2U$)Z2qJSz7J@gPuXHIhW-EW}q
z##O61fg%wWXpFr6^{=OC13&w-|C$?bxt@cEQs<MhB)1&&-jYf*^qZ8V@`^SD%Ce*=
zd|!;4YBn#HBmj|VJ>|sl<B1`R)ax;Mb=^FA{^KdLRD>~vu1qH<Iu(Vdtg7cfSa(pf
zUF#HQb16f@Se;z*WHt{Guf31U2?k7QJsf%F8J>RnNq+DLzmv~Dagy<94qsS92J1f@
ztjuoad-?a-vFN&<B*}BzttpqW`H01VQ#qQd8tat=e)(5E#9w~;)7_qs^ArMb?_1u?
zcfIdBi1jqpC;LRvD*ZW~>ll_UhH?cciqh(&5mNiGG+kp@q<^^nZ`#dmHaFY$R-0|x
zn``oB*JfLrZQI^#PPTd8J?A<f=IT?^^v(~@b3ZpGwdLKq_QCC>$uYo0E`;WEZKx{X
zVe%~l!Kc-Z3ZM6$9o_UIi~nBs2>yiiY-gn_RzPlbVE=Xv@#yK>q9W3MAzOucBjr~h
zvfd%u_l(MI^9^Q|n5U|Q5m{07XUjgOTqgIJ@AJgw!P&*D84^)vI1m}J-R}U*T^;V`
zLzIuCr$`f~{C<1<X=PXW=|0v0vJ$F(o{FcGM~$#BMLSA!JiQgEOJ<E%mT{@ZTy?U@
z*KNOnK!TC`5=Nw{Bq{mj>qV>19DMr;)^lbA<JbL1ry=h5)4JF73twcS=R?YrG8#B^
z2lCSB9JM1R1T52DEGWm%3HW;0Fp2h%Jd@`g843wj3X*@r)3ja&y1`wK&;nN_^09&#
zq9*PxLBFcaH-Gk<AJ3;;y0u|uC`3z*b-VFT6yp5Q=5;kq4E+X$lFU`6{3^ePam3Va
zLE14H=a-~q{9f@i>k(Z0^K#kAR2O>n08|L5%-QbNe=UoYy`#3Gh+Dnqd&l(gaCn_^
z3Wy`bK6HJ&vDu2I=5{*I^(D9*a`NHa`iT`7n;aGJ+G%wMJQt-{x7B#)8FWA3KEHrA
z3_TnMcu$Z^xo*@x+ptf2I)A@3wN#cM`;1I*(D{ONJ?Yj-#ytG(W19PYzUx^Ns?ZV_
z?xJ<0UCgwi#Rv~Yoh4Jwas^W-)<{3xY2&$UbR}s?o3d<9RW6ffKxD^vctpJ=fqZV3
zKl?|TwC(DS*H6^nZR;9`hFXg<>Z@S>1ucMI0s=q(baTHC{~gBN>7zMi(&3y3K`+u)
zFU9AYHsWZav#3%=`&dYxWG&&0Mn&=WCr0dlVYbvrT6WC^>rf=kaa3vOwVB`IhMzLY
zxFnnjqX_Syw=6}v6A9aiXB3<01+N9)P<+8JAB}fOh<=5I<N^=V;6LI1ct1fHvMD<>
zo=7f#N(K{gw8(~{J9rhV*h(f_%cb(}3D4Ce*#((rzt#}thn=})<b2({^W4yw1YhgK
zPK2eynjt<D&$c1z*7LJIKP1S#dHy}xjC0b~nH(jD6-W{rp%lE5JO<FHj}2s8eyzB6
z*svcGAD_SR@OgG!c1m9_lOi1?CpeR&S5h|?;L0gSCz)lG??8oU?H<7lpbIOU4YJbW
z2~&?U<7$PLXv?m;Ze&vLJ6Y@J+TkMFw8YKtMQON)P|mteyUFQXO%`LnAACzTMi*O7
zv;uq_md<kMq(xemJyFV3Bm7#kv}!e(dLh7kx`L9+5c?|^V~kpISrnlA$+q)7g@$CJ
z=Um@$^=O8Cv7V~8l_Aio+r|(iaF>f_XI^&r?&7tbWO0j!gjG!NG%?q{SBy|xln?%$
z81dM3&StHeTX{TNs|h%ZSp6-c^rX6VTvoNC|32nBl3HipeAc)+&MS99lKdY%9o^;n
z=G!`;qabtt9nfJOVYqYgMAR8li%a=D&b9P{P;ygZ*-LA$?I||wj!~X*6T%V*vlv5K
zuoQ-%1Gt<PnjRNX)FJKHhMo2xkqC~sP#<M*2fJ3@HBQ#+1URoqcbqw#v+KVruX=GR
zIVwwc9<2E$t1#@Mx_jIg9a~N~QAXbklf_(4gS*B7{dN!DCJ2kPH{`?jeuHnLGQaia
zO>KSyoWXl!)tY8H5kNn}(YT*#z$=u3-#sWR5}b^J>VJbO!n1yRDM@MhL*$Dyp$X|a
ztmMsXm>&v=00wgKmoY02?o<*xj&=aMw7R+*m-$7hhi`f5%8QP!rn>l-Rfi|13a2T4
zbL56HtNG`DUK+ly-|EbeuEUepQFhjUsXf+S^XO0^QpP#dw#Bp*6eMI3$wV;OYuRI{
zA}l;HTpU`)i2jx4;L=G}FR@BG87H<2)BSF-+@_^ZrRoV|4q=$xb2Meh`pYV&4m|Sa
z1@0u^t9_%E<C?CB6p{apBVji-y^1y*zR_<d30tl5DwKq~PirsdZdKzFR2y!q-B{;(
zrsZ*PE9HTxr1L$uy7NoWDMqt@9;>io5{P^)YBmW7ehEbDqoi6T7dNH42yJ1}lB~_Y
z50=?CF~MfE<R2Z;P%v+y+nSzMfLkqSiEl4px|hQ_S8%4cnDT2l)?Alkr<^Z{QFu_J
z^d(Yoe;hv=uq<M$J}$sQxd|v@sXm(OuQ@%T2^MKm53g0Wzw8!H4Ou8$uleohr7Fd+
zCX>HxU~kV9Y7vrFuM6ep5z@WKc{0d${#9AykUOC$AHDb7g%CjD4Kqz~MzKiFM)Fw$
z>P*9piHL9vhoUpR&YhZWV!J+|x}M9LYTa)NvGbpRyshkVt(J^r-48Mg41}V;sM6^~
z(wAoW<~D4Eei{v>H4RhuZ^4w9^HE9&9JfI?0*4)Py9QY~#_3@eeoe3(_av?>^vYbB
z6m>aG>TqsDOT;LlW}T$SGGL3&_mv?O(3i3gdlI93zRc}DzUOHUK!<H8GerlZm6e5q
z2m`*~4R@H-=8F-F2-NoD+$xl30gU%)M#6F>qWDCEepHEz7rSM>d`tz5r`P>*X9ef0
zCK?ipm!kcMfwP83I^P_t+5Rd;`@O4{3IxQ5F`L{rJP)fR9YAixvuo!$8*eXd8-r+D
z7be|>p%PKaTkDnpuNFJDX(@!3L)G|DU6zK|xyXI+B+uQcofL=CHA@2zjg}$o*UU2B
za0j-<FR{h$d|)V2j+Q-O{&&+<2f8wn(gyG!S>O3Zgl3Ve>*S7%e}odcF}Zz)k1`7f
z>wpCl%@`Hz>+9VL6xQ1DP_?p$oNsC`K~uh2l&)txNxn|-*^ht0Oj>`f%Q1p1^S^J%
zmiB<kY2$~E6|n<bj@kptlY%j@lViPH8!zVFDNoIy;BH5E+7o9THTB4PW&5aTmP64^
zV^4JvMEkX>?;eU=f+q812Gcigm7RH@Q%ifm7`;!C9z`O$rTRX9P-<>~RO4*3$qd=o
z#mzT@g-YE%jeG->9Vm$yg55sfm&G;EZj{YRJz-(AI+p$_RYCd}@3VIJ*8cE3s>2aa
z1wF+j{|?WG*`xZAYy3@yFw#>{iL|s((={L1&F2C6saW184V8I?_4%dw;CSM-7f_`S
zBH~d=<IOHYbuzA?SsKqD)dxh^_p-6@?4p@GE$br*zHS3`Z_`HjBrCds493gN57q2(
zzEw?P#(MLWB78;NXuC9$xEp1$jTA>{*wI{F-_!82ZzIfC3a!g!&MgI-9UpBuhm(G)
z#agq*xd3O_g}M|%bYA36X4F>}YsizLY`Y|;g2E+o4}!KGo~gzy?CK<dCjKGoGogE=
zZrg+7$;VsSAHJcyE0f$`&IWjGOI3l*=CcaDo*JEA+yQlFV^6zkj9!F9(3Dx{dPU1v
zur8NW`}Unt`3XTYSe9!Ejc5pRx??5&L}ifkFmY1~qkc5sl1|99=P8BZm-`ZRhsyex
zbRYiwhtJ<pap^M;zFr<71Rp(je@?2CQq|D;^SeN1&@@?B94AbL68YjB35qX?CoJD{
zuvv1`F$Z6783hWl#7WC&WPv(sMV-m1$ZT>4#?%$T817jM+M_7MG175|Yv9qL_WdVc
zNv9-JXL;rvBxXK7O?<5(X^BNmX+KSb=nq#BUsTdKq$%kIf0&PZ0y}Uq0DlMEH&e2v
zX|jIizGyGJeR#;F7MX1Cb0_E*FPK%_)``o%n~a4HJhiFYjX@-muC_OjSBPo0!Z?{+
z@I2qU57^<&ICFj8@NAX;L+!&GF-6u(Det);srhE<v$$Cnb5ra~D3APA{^|UPu%`4)
zU#mSsECTBv=0ECb7@{3AM3MX_eezco;=Hon>)-XuQ^G&-Q7WT|=mZ=IrQc6V=uc<*
zK{-`bF`e%|;Uavia*Fn^kFe2%eBC=@5gM%~uny{TLE^zTw1r&2$FKKz-p_n?f5rKM
zk>!Bq7y$>#%@eEz8_?Q1ObrR8%tjv3jI;@x<%U0U1D+b1-r5`S3g4yamd?GeRW7&?
z3w|i+5}Ysp;#*RvJ|co2`3ZGs?vpTAhc&(;aZFkqk?*z9_FQP#;vZsL4z_$_q>$qI
z;vQ#((r;6ArG?dEyoW{+M9Upq^DW4_Xu6YNX=W|~ANAf(ND+6K`Ds1f!M~MBAx91z
z=LThM*04k6YsnL$q%_cj>WJ~6!8%|3LKnTZwuGgu_e(S2r_N7f4qe*_2JPOK*1dDN
z-1qo>S8owdS;hRa8Z!@mQEE4>tSJCn-L2aR;;RJ9FtB(AZJXAUc641dDhUr`_L82#
zJ}3bnEwgzJU%%wYFja8i@+v}24LP5wwLj>1@9&?k)FsnvHyT95)yyc~pRV_DUUa5U
zq%)enwX(y?D*VW@7@vR~u8rIuOAeU)^*i*U=dW|Y)IGwNcX1Kg@_6S`^g5*}AsIpX
zcBA@8%)kL&ce~wS#PL-23k1f$#<h`QH4ZXGG~17)y_3h|1^9h8^kb-nto1V~bbW0^
zqyjR~-iuB#iLak3*w0*f1L2F@qBcBh`TE?cUC;gF;^BP9oD_X&Dhf3t1ZgWAf)Zf<
zrsmotlO${_QtVlUq<HJ3G@!P~m*}5b>~R;mL`Fs3EE&fDIdm=z3CTC+9c7sjiCzA&
zs#b9&cT*l!w?X>K5(u`942Qii(`^!L$8Q%rzFjPikr(TZn!t&%JWv4J{l=kQAWc
zog{Olv!%&~F$Z~6!1)W*2pPgPzdxUVmdEr)Co_4e#^R9Q_CL1R1%1$r(TsK6=P`6Z
z+Z6pE)e^3n?2d=}Rf2YoKkc6?`z@F>iEpVSiPF;W*fKjW*9E0~68s}EN7)rR!)Osw
z&q+A>x5Rj+JjL8P)&8&-j#B%QMwY2ic`p2%``Pq~TdgpPe*z5Vvk;v*2hx`nsBA37
zCWbwolY&U^<lUy$FC?a#VmafAe~$Uf75_Fu&?+8F|LX+H7b!?e@y9q>?zvi0a1<|L
zahuYDCZD8(vY=^T>|m?jcrnX6QZ^yMl!#J1?R0(a;PDCqtYxCf_y?kD=*sN7k4Siw
z#P%8S29iHf!TQJ%I%4@5$&|U#?SJ6{m;9jQ*mTUOa`jN}1^Bv-KT3~0XB_VGXo)z^
zW*SY~ECP?_AG$f}<ff4P;d%8Y6Gaw;=9<Uk7X(8gA!7Ml^(muHjoR{MA$j~?ztbU*
z-fO(2{1O>h_BmGF|2(!LsBL>}{m_s-@-gpe9G=KFc~^JGddB{`=hFNfCi66xKIOF2
zGw7!?Ka!v!#n$+rq9r9m@J77rK=HNnM*|y{p=hC^=HwH&%G}7=L4hJ%X5v3Z9?icA
zv#))&MCK10-fNG?>X%s$uY|j3Xl&OR(hMuzkB?B<AFo&~=j4k_o(BjXo?1s<HCnR%
zg_+4LVj!;{b=3k0Jw)C4mqPl!f=(d^vkotiaocm)B?WB7ZcIdc34x*5h`E?YDi))b
z+FVzY1iYFJ9;%$n($q7~0s#{_aM1Ye57_yk^Bo-z!rutn=@plq_wXTSuMo6VWXdXK
zYo4wrye>RHx7<utIUXwDojH{^B{(-96{Tym7>Pv@JC{1S36@h09kpZ4V&fLFiz)uN
z`tQQuhVs)&MKm5pOJLup%rIC$Pck*DMJ-ig91Q~LDRrrHTxceZaKUX}DZ<^-HJwzo
zMVpn)H%!hiR;6ryh<N%mIvE*sJe2FUsckW;(*JjtqQ`zoim%#%?2I_=+aNm<Z8Z`{
z-kcXDWgjmOQ==zvR@ruLHr7bce$QUD7f#DDw<*{y<SW=wk+CZ1#*57ViUN-{zVCl`
za%kCL1^z8o!h4>cg}W}@%Nmv-bBA#9jX+FZ9=XnZ!fZ44P2|zRrG(!%ynUu5Dnfz}
z3h%n4frH9<Wlxe<6!HWpObLMW+R~F(8VuP>N&gF(bhwX)jr@8e=Ub@BzVWAyxySnl
zUO~D0+Qo9+p&4TWLiasbSH4bUxEK}#kF8^CA5HWM8T3E}T?wf!Xg_Bn<E@@cRgAPe
zHyq>Q1_B-Y5JR$jMOZjF^&|et&z};6sHV3)uW;L)gmL5wH%SQJKi5_2IM0aXNyubK
ze^vYQeAKd)D%T||DBvz0!h?4fGCcwA?>5sMy!d#(fSgB?D`}O`Zs3ABS*gjC3o)zX
z-Um;~r86)Wx@O8d)th?-6?6Sj6Q-HbZl@1J&<E4uup24gUVgE$-3rU(eahT?XRMbV
zlh$)2VDvtcZrOTu@jBVCV_{<pk@tPhPGz1R@`t{mt?Gr2b)m1i(wlu#9gty{LP&DT
ztG^rn+33?Z6AJG~KE(p_8D_~hupXpFcm2C6y<0J{6A#gpr#4RGj|=%qsE>UTUOfxf
z2^HG+Q|^&rSN>s1<9^;ozI*I{f0bDv2i{Oe+ghxF5@)Fxk6y2G<OfaKo}}6X6SF{1
zAF^OCsBHqVN`vnyuhpZjwUx*4=(a-XKg>V6pQy09;e#eUT6WTCTXt5;zGX><IVH^|
zfi^#>8eCDakdkRcul5Z2u*UW7cEGHo4JP&-BG|GdB%>&nrN)DCEBG}D>pgYXRxG`U
zO%qA%^uFOhqHz}7nz$P*gv>g}niTlMG~7hT#>TQ0)hos6pRc8o;LKS>wUZ=z<}oj_
zhY4&pxN)`cgS}wo<FHRxP8TjJTOTYN>T*NXtmo#()9!D$CblOv5nO?p+Zxbo0(K2V
zM$XRYq$My*KtR3kgPZTr6F7TH{(VpWI>h%e1c(FFtzWgRU#Qob@SP_tM?{;kAnE)e
zP*&3ZZUL&7tLdlO={jvMY=1km19N_yb>%PHTwlfbB3$r4Y<@7w^VOvLz79=QpNw>D
zdH+U9_zu!+-%`$gM%M@YDTPO#z7eq}yu-UUnAerq>zLD<TK08df1Ot+N&He^HBqmX
zD1gRkVG4MP9}-Zo+N`%GR{6f+&GBVm)j*IZx<@i!^Yjm0k@}inml#zmZ`Oo)tm^%c
zn+yY|nFg!Xja<d<;&XxQ(}sA*Wc@fqa%dy`@B6=_N;3@>5LFa6jVSq5(Bi}QJw9qA
zbK*W><{Zk%D7b!WfU})Fz}wS&5BYf1em$;w)9!o>@&#xS2gS1~pv{+!u_1x`nOnYJ
zzjRdeoN#vbXS%Hl=bX6G{~Zgx9x*IR;>Z;M^+H`u>#+Ejv7W_Lfa@e&t^h!$Jl*Wd
zE|gA&Vew0OzwjDsK*j%mE&!PK-`DX^$!W7(8&p%n417ZqK%z<tuNy-;hwWbdYM|4a
zkHOqF`ZlZIWbeuF@pnvti&D0)7eNSUE}Gz}^uDDfql58ONG&6|5M&}@>w!a1dQBLI
z)4^oH%<vw_(2YJTg3f9vhNyU+^S6N!#=H8!5rzJxbJn~{c1ahOl5>J6b;zEJ6uw$v
zeOyVWHm~?!vwJ1?fxjAgilRfFF^Xx%5;2OHbAheOTbhODu`1*37UY6x!;H0(WXQr<
zO+Q3jS29(qTs@5Cm0FG^vY%ZZ%fmOyLMk^B)feDB7fp(28d2IGQ#e#VNxPWjA>pWd
z?|AVNYh;Pf2@!KzA*ORwm=78-K0;K~(YVbo;|Awo6XI--P`a`5@X%Pwz(pexncFxg
z{0rI=gIzKC&dHo-bY(bDk5B!oFjXSZW($ta)NvC<h#JY5_ehg@ykN}mIbXH3vuwQ~
zWpLdbYRGv01Fp|xg=}*<Q5zf_Y~D}Ow%{l%4Qfc@J#P;9_p<YSS*6oy{+&m))alI|
zBk)YMsPD^<$NBSAYV*mku_Vt^x#_~#MCM8raS6MuckbM|Iull_g0TIp;KY6-2*|`S
zP^S|_M#mQvh@8a{D~@uD-rntF(~`|_Yd;jjOX0RgL5b;i52|BuR}3@6zxmSk1y>c}
zWc=deC<laxP%dT}^1z|O^OeO`3Wxis&4nd0yqS9=naWfIAqk}ztr;6VKi^m;5<^*M
zjv7JvI!knfM?TaqASP{sB-;B}yOLl^{c2&{gan^>u=O^nmaYxEN<KzK%(z6(L16JN
zT0PE*Zd#A2mgWuPzZ0p*SO|EHP-Y851NGC5;{+G34m?W~ocTtZPYFfEO~MX&P?SFg
zOw;xI%QYdn;L<c1@Wi{_RzRjuaQ9iZt8R`v{r{phmOFPH>aUmbwx)XmPTh}DtQQ-|
zC#cbRux<y)8@({3uBa|%jz7mU)PYMnxU8?V*b*C<{lENOoy)vm-q)7Nm#taOJf@I~
z=ov)3SU&qz;*3$mBbw;IKk#{~8zGZ54zRSp5u7`62Cc4cz;rJyVFP|MU^1eoFF=6U
z>!95$OxK-u7j$>7Xb1@K=XwMNZfF1r!KYG7AzK(}?<RM|2z@@D51H@szo8hygB5Fi
znX%C8Xs0*>J6?i>SvFimz5Cka8{bY(q6_ya&tY8t@pMk$KV}7Dw>Nsr^sn;y8cp%4
zJa<nt>&y_v@eDO-mJO}*sWW69#Omcznc<@DOsUk1Q_GQV-`KAdR>jg|V|R5|Dy}Xp
z&$6S@axf~|$p>bP=P?+Mg$J>9j?kn%S7a3vx!}M*Oi?n++;!)8txQ;ln9qA3>X|Ky
zM{Y6(>q)?MtL-5`KCEIwJuh^HT0|a|3F~ij3w8Ob^o6ej(h`maLxY3EM_(To08kGB
zZj<z9=@<*M*A3s$CrWYg=I!8Qv^)|W&-F2-oj{29?1v9R!RsAsDxS=Q?DB+OQ2a3-
zmYCm+RPWcxTv-a}<tfKGE$J0Cx~U^?+khQq5IE@m)doBspxgA5;2-O|ZS(El5wtTx
znZ5V#$-`sPZH3b^fbXh&`H2I54o2btC4bNwFpv397t+3#IH-X`;k<19Xm2XBQ>^Bm
z2BTkA5)@jH_LweRrR!1gi!Lm6F}2f?FnQJ>4y2`V>+)^%KaK(_i^5h8Ik>5rd<ia(
zLxm=DBEFnfjsCS3rxw88T%*wohfsFI;<srq@PL7w7>7O=APg>Z!r()wRTOK~RZQeZ
zsRbHV5NOlya&PWqe<QOl>=MnB=KgGiP~`04`)MrKMHpH>UxOXd9_Bg<*+E9at5kmi
zaYKne_`Dq>$_#7)BdU;uxnEZ)0#hQGDY|Wiu%Pfu1Sj_Q-$X2nO!)K+DN{0rHHhUg
z7ftIKnzBIQqM2{|RJ{xHbxB6pJW)<wg)IeSr?B&PWP0Qcoq{b@C!Lj%suk&6=9iV9
zI&qY8Wrz<nGKfT}WwR{XX$z(U79W*zRl*b<7&H=+j>kj<I7i|i7JhtK%6_@|od0<V
zK?Ff%wmWeDOb6$>bpWk_L~YfA<EdZJJL93_qHE@7(^JgHQzka!vaA;ELZ#N^sb-yj
zq(zFU)?g7l!NS~}a-o-d>{NNqQ{7@IC8qy>e$YfjqDOR^vmep=*Oo}?BvBx`d6(M~
z*Hm-1YcFi+E8dw{*zD?!#X(2TToy}ADh%wkJI~OSYj#1Efz|j2S#RB{JLSa=_qjJ6
zE91ALR<cLZ>-G+b^b~KD)B{!3t9n9DZr^dUnvFc>qlfw|2No`N?sdld32xSETJ=g3
zApS=lU<v^$-afvky?CIoP;c3blWqoHZL<WmbopIf*-tm%?EB_B6+%!E)Ae7`Ym=$v
zMHtWFi3DVrm)#O7KUIR@J)!|;ETS7Oc>y~aMX9ckU3GIcpv$D7py(}dKEm8-@G$9a
z(xOkRz`Qw_fHbx5`Tb(>n~l(1x>jRN57v`4ny~Oza#8tCgRNOnyH%~81o!WAIgf2b
zoxGkK4}rLZL@M*pFIUQ*%=LhFRI4u;jOFy7viWiknG4vE{?x?fZ{jzKRC*qWn-)R2
z4Yp)|VY})K8dvf*_n;>fv^}<puyU!n?pmQ&e~3^qDIs1NfpIOps+f&=*xpdNgd{*w
zN-eOHHag-`)Ey0-()=3l^i2Q>Ge&l=O<@nC0=LA@g^Dpmxt3Z52NYB%Tw{YeN<@y5
zzda%|D6Q`Si7fca^p8z#^2n9Wkumk$V0{Vd^cqS|VfDmhY~9<L_H`s)#)lR49vDqz
zOPh$FiLFDBWYF*QiVHxwu~mH-q>|)TQ&+O1wmo7ylTj1Q=6ISt9%PN~dE}`uRnFn>
zJlSjwDjQr^;ZNr{?{{f@0a;dL))RVQaWpHh#oH5`h$eOxwZ5l%6&jvR&u84vn^9CA
zty{Y^O}O(&oM%XqSL$`7Nf5dR3O)u1eql-hNp(F&boGm2>3%Ppmx9Tolm2(_UJc?|
zS8I+N{{0)Jmmpl`isX>%O>w#)wZV`z2UBFB9t-*b*-JKW7HK6EigA4SUE!=A-LT0j
z(8eUQVpvaV)NG&`kdpJkpZ=|egij8E%Z{%p5n<^>7AHq{zBlZ}Wu_2QoIbVOsz5aT
zL`J5;M}`OxQkf<Rtsd|L!2$0MHZvN=GC$yFEi$2pnZl99AR>>`s3;p&Y?!2?4W*^a
z=0&$x6Do;EM71KEviRmK3TrTRG>uqrh{UZ2S8cEPu#WgCA4(F2Z<j^Rd$0o<XEgem
z3#nJ5%X4P~ofeF0S5y=eb3Wx>B)Dm)$Fbuz=l%H6?X0EKe_C*1QE`;uH(!BB6$SSt
zlo(%igf$lGuc2YdxXoD}<(qbtELQ2n;Z~+LxF0Qw@VWk6<auL7Y0#A`3mGp&Jd2X~
z%N&!^9A^#(1#7d??A1<+liXlBa)|-NZmGRYOJnxia`r)P2;ojq`sT3R8~CHUwE;Nx
zp}QVDFHCPt8FzNDbiWPiT1#02$$W8ef2|zmRn;Yhe<}P_IG9?-s%Zi4M{-?S8~g&h
z+Ij&KagNTQ1~z3n?Pr~`^A-y7i#*)8+m=2`=tC2H_h&Id4pm-tTmqWW_|i)7ML>vE
z-^%a#N9?T8nG(;gJ49D+1Zr~arrDMR6>vM5vR{JQ!#9isxmgI<tnvmz5)-!=)52~|
z?s$}uFRgza5X$V4IovDY#1vhpc@h|Ia~J9#Op5#v_k~@SG6tezog5JFe^pLsXFnrN
z#`?KTUhQCYr2t@Dox`s9#`}Gf)0`})!x(*&{oTAeD;L)iv;^Rqo4NY4Eegm@)MQwG
zVSrQ*5hp9~e0^jB`Vt|HAM-f$KNJ1bjy%*Wv<7AirQ>?Sc@50T(%E}ka4WViw*&r(
zsQN;Xl~+c<u1AFB^a05jn4(}Bjp>)_-!zl@z5+l6!iMYqYm%?vb5$W<CcPq8B&vTX
z(h)r%iL#y|1ei2FK%Wrf2v+ax0U6}+m~_A2rf&>qzmNF#t%_)*70T97o#1bvw*SOg
zpH$0g60(Xb+I7Irtn>ZwX|!=?OC*iZ%ZJDCX;tQ?$y1mYfeT^`Abw#AxN&TE&B2hu
zDX0H0U?D5-Fc3uei%$ZYq+x7JM^Z7#BF!)Mm^vJ_qF`_RyC;Nlq?66#7x^>(ZuL$_
z$`x$f))43$EGFM=K93g<=G?VRSZ{nY?3Evy-E!vm`vK8E+t4^5U<BPIX6~%_+1(kh
z7TObMQd5Y>aCIMo9^#5M8x_SX*JWn8C!=<@as%*roKqk}kVsS=jEEM${(`eqpxNCH
zajo{9`Vx}m5eWH$JiECW2PfXx=MN2^!fZ@23hw5jO7Bd!GKTpC8?=3u`9c-$ihU8S
zQ8Vf(gk`u!n}KWym7|N!Cd-NqJC#=W@)%3x&P<z3UtI5}lL+f|I;!;C;|a$*XfE(Z
zjYP=x!>)|{J9$oVF-BxCT~Vf-@P<OJj4|~f$rLtzhT^J@MSDbCnt9XR{rzP_)p|S}
zya`1<0v;>Tfkcw2i94YJwg2w#8p~br=jRubfGX27Ch;U2Fn;uCjs1o)I<)8gso7$s
zuFN7@jJ0KCJ~&E;<I!DCU!MqEC73O~@x!H)TulzdvHi3&V{w16Ih7w{3omhR$uN2c
z%|8p$WQdzInajWtZJR?9*J5=8va=^M`+A|_hwJ5jWGcd-^(}vAXH0#`rxahVGe-uX
z9{8i5{+KG^wz#sv92j6>+8~QQC<*EUN~;RZ7DsYcGlW^IyDuK`j*f4V_XD0&kB``&
zkqJ$JPnb|>dbKkEo(zBnB%4T!I!=g0kKLa&fM23jD+gu<Rn`xX)doEfdN*l{)u5{#
z24gKjwf^?q3!>-gkY;dJ6}h|{i?dhh0wUy?TmhXlhs{zq@5U7p&{2{FO|+dClH$8x
zP}z=r7Q7U8JzX0a9)`_;U#$p@o4<yEZbi5Z2~Tgp-S|vZp;-%pt@61ma|f)<{ph7f
zq{aN)YR9B%hEeiq`yg^@b{k#BFkLTJ23!{PrwBeA8P)ZjFc$TkFxp(tdMzdr)%6&T
zwZ39r&7i;-7kyWn{Nloy3sL(u)CkLQdGmFF^J!(Va}b!%FL!v#y`lS-d>EEK@X3Xx
zO|3!GGc-TSCN$@Go-(C^m^Rc2T~DQ%eT0QNgTH@Mvc*Ot?PhoYM0${)kuHH8)BpnH
ziy_Zpm4K`)LZ2twuJOWTJ<^Db=&VFhG9wh=sR>b&OYxKVr1!%Wb!e2Kn7dFFi`hej
zJq_xzK{b|D7L|e8XrhKb6M}wCdEGmCJ#@Zc6J_UU)3O(B^)C)@sthW>xYm4h>!Dvh
zqS4ptd?(6i98YBpNM-$;%5D5*#wEJ<ZpN+>!KQc@bn8cXnLxEmJ$Bi0n?etjDqEE=
zNU{-kg<7U6?qIX~m7#eHLM@|7hL4MKYRs6HYE~NiXhx!m#mj~ZqxEt_5mOB%<uaZ#
zy(dDowgv9X(&c6K_`qcc)JzuaAWzhNBBO7rywCLqS``zqoCD49TU+(;$?bTdK0B6P
zbJ&SpbJj^!m)^!4i(DRQs^Wagn(x+stBrQMqP|yHk&%)1Fpx~beU8yI^6ojlzZN^r
zUDmvACaBvXwp0<sR9AW@x!<4rhz`;>+c_oE#gR3&5Mk74ZrkK<ltOAy7OTwaM*a<C
zto1#~tktSukE}^d6hlA(lvbJh{1@)Xz!ozFJ%WTTMSMN|fmC!`G?b=(UB$1@l_FA7
zw7~isV0`V>ZoZuzW0H-p-_R8zQTm`BI6S1<e42E7y!d!y<aRJZzu@oa=m1Z4dt3m?
zgvJwT?Bkid$@vm7wbqLa0F)x@T$aqJFK1`R$j{HO<GO5Wjy}{1aIT-$zyerGj0LhU
zFEsCDSvgKg0iThslbYItG+E76Z@&xTc)+HOF5ED>txtGA2zJ*P56!*Fa8zqq+x)TB
ze)-XnzvpK?FiQ@uah<@`yBk#x*R!_8{caQt7q4P)OpL8Z2G4)L#F4euke>atoLw|y
zVZSYw{#e4<5o@d6bhWflF`mZG`a9T*%fq{l1Okin3rZEOb5cxv@d_SLB{OuoTr@q6
zn+wGE>cQdsndx@rj~e+D_sCPePBGRDy0J>tI5#mahY0`mxdMR$H+Jhx?6Mw0@njRB
z7?vb>d)xRQWaf!%^ED+iva?e_&uQ0ML^u$1{+~XyhS&UPq7c*Rr=%F~s@8D8ZWTUV
z_~c4!55qVOX&d+D<(bO1drh|^i{*&*<>6x2TE8uX(Q7-xIb6e^j}(SoF`%A{T7f$Y
zqOju^*-CNDp-hd}z7b1ioxvZ8=vV}s2G1Cn#uRMh)uc1$Q4T%r(cfA05L8kIO<O+}
zI~i_D5UR5j$Ip-cX+J()$EPsP{3nhsEvfFzLl7>)kyMyiJ$tn~l*((4S!Xs?exP%W
zEm}U|`LD`vhv*HSKO7mJd)Pehc+eAgS)QUWsi3k&Z6_9rdi*U-Fs2d&_I;cd2GFxX
z#6^AN_+txeQ>)-lKyAO=VU3mjyhoXuVv#)~AiQ{>dx~0t4rts>&eGU{MJ@X)gLd-e
zr+;DOQ<e7_A%OcaDkcSui}FDg<V6Uf7l~sT&a38e|JgdiB3IXShb~jEpor9n%Y`X@
zLIe$D>bJ&c@)CkCW6A!j#c`|EOztRxA==hi45}2{6Z&FT`*R|TKVH3kCsF4*Pr9^$
zd4g9{Y=>XN8aT^1v!DMKr+oQgm<0w$@1gU{86&u@yI?hK`tTCHUxq+8US*lp4FIk9
z&wnTL@jPI<@8R;Sr%TFw?oZKnD4m>z6=~eynfa4XY~GQ!f_~%%2I$iZnu?L*gCL*?
zbzo`WBLbl@jDAh<8K0F#oo;$2pba%{C&~^vZ5TmVPb^E7lW@7JwsXjE<dgeU|D3Qo
zK%NlW9=XOH5Tv{Q>T|^bmx33mW;v|^25t2K57M0RWT7ITb1HRaacYNLTBF_`7Vww$
zHJ%^EXusZP6m^HE>33}JZ|CbZS>UNgsOZ-)?fGkX^$lBhVyy)}g|q%Y!<xZQcrU69
z+VfwHd}kwWS0KH;>9s0g3hAkAU{~gB*bdRrNazO(K+<F<J&6Q166bv>FwF)_eHyXo
z-<E?U{;X(Sjh54sFR~>Fsp6FDcSXD39L&tkK?*5q)XMC%aeeJvYIYDc;7AshQp)Wm
zr8Y?_F}RG^mJxFt5em_$WtKrFw_dDF<g>v4)RcV8B!DY7v?B(u*={f31Rmcj@%}vb
z;&|Ws8L#R`(5n^Vf@&}oUt7^6=t)|y=S1(r!{>BJPb?Yh)Y{QkN~)8;!A)@UJvq6?
ze3MXoNIvi^6hyFsmtkGJl-_{Rr&oYw8gN+As}+>zr-oQh6X04MB3F!h@sJgk*N3>M
zJF(p-@wf)QFu3ifYIEZs>DX*dPS*8B#N)8--^0nQVQ%64g5k2)njRHQjNC)}_fsJ^
z+LRs7*%blrbm*exZtxc(;@QVG8|?2a$|4eCmYPkjh!I!}C`msxbLxt24U<Bm3i^`B
zDeRb*1iN>h;8O(MLIJ8rMyykudD?6X3PjwA<vm*}J6C|IbaFV3GMu`rP{=5!;f-;{
zfTr|@4Nwj7;kLk3DMiM0&&CL4lKv##Tca?cMXwZ!AMt^k%2>Wh<#i&2<cHkTtZUVX
zfim3<{!d6UZLJ8N!(ngwYcwG@1eMKEoK&(r1hwXh{RlqFk$gUM$qBlxJE2sK$2_hX
z(j@5^ONNt)X7o_(N&A7=7$}w57zSwKjc4)(07)_$7#|*s;ro-hcpLvNhk(H3+r#D*
zV60%+`MS^ObT~~C91;>w@>h%1ZiBCu&iL+l{`E2DgRARxtV<@J1ZCMI;5ehuXCJ`E
z%|IY*F32f%HsL&o37+4f&o3{joOW5=Of=5B=p^ig{g;G%Ucatt9C*$kV&ENq_}>d-
zD{6&^F?%uhx(NKl7rFM-oCQXHTjQw+<JeFpq@S?!ANPjrb`N_XUtgy__!{XQ@FZ75
zy-63&D!Q(bT+cT8ia#DGA2UCme<smsjt@rR9ogPpWBFc@EL7-D*u6eieTCPzHdYdb
zDMZxc1iS*FG|Q4Zds@DgNmet%s{3DsIf%<=7(6~Qm!rW{&2TS7jX=%2d<|W)f_J%N
zv$sGZ;OXD>Bs7|TUIrOoHUAeeIHnMnmCt_WAfG?e{c@a_5U$|(mw6$FGEm0w8p^um
z3MVouI^SzBJP2!~j*OC%Tl6OQ@a#<1UPESIVRU;8HJq7Z#g@h9vYyYqw&X4$z4#$A
z0n-7Qz=U#_;%oN_eii!)cC8s>3VwU<3WTi@+$U#>L2lPmY)ZLEqj>uAtrm~hAMc7=
zh=1GFzV0FOdSo&)P0Q=+3%+>=0HW+)WeH0Pwc3o*L+6zD%B`qXI?rwJo)GcM6{Vl*
zu+}a8%m(18o>o7uu-dl|IIAuDp#M0M7HoWBnWKiUPXcAm1@8`p{5yjdKMtezGzUjb
z!B>OYdSj~UHfBe&<l_XmQr}Z%WB<0_6LEEKzD{gjA7p=UA53Kv8Te)&Y%SYdyjJ-R
zPj&5MjmT0Ai~qt5YTswlBm`kINGeHn^+vw?0Fk7JCq!RP#EIF{=ps4&FN4RUfU&^C
zU*&|!-ueZh)F~Q~W2k=Wl&EnFvnc|j!AQRq9jr1n*vRkVU4|c>#n{};H0fh0swf?3
zp_oad17C&_do+LK;xkd?S5+ma1_ZEaR~Qg`H*A+y;Te+o8f^LiXgc+1EypeGcOen<
zR@@t!4f!|F{ATSq6R@H^JYP_y^7?S;$%Sb_Yk*$okqcPKaweVP`3~oNOT}3p;ehde
zhWE?8!`s~=tJ8tZ^;YVDSl;?iAWMK52=<wgATnKTv<33px6!jKOp2xOaB+<+EG$-P
z7SBahQz}Gu+l^2Au{WO=n%upH(Bd?zR5TK-z{tG3+FbqAZ~>ASpbM%|U?pBLEkQ9b
zQ!oW}fI^rtNzf=!N=**FEvn&Q#BG^MxPm^E$20j^$;Z&5ejG}-;BB%u>%Hz^)mbmb
zuK~J2wrh%$#VYe%Xz*fNycHHncb!X8g*MS{n67-y#U+z_eh8l(5G`v;EiN;OMZz_9
z6>ALAN8Nv}r!HO3D&;_*J%&*$6x1{T!f+dTdrNP8p)REP^q!Yq`pY>i%2iET$%977
zz8&*3;IPNcl6G!i>h6*a#v$Va!Xy6ApvMnBKc(q8{DNf*imF;FDT<Y|V^G2tKIi%)
z%>mLxp}&YJ<bEH!%p%@()^TgzP*s6%#e>aeYvNGX1C;#fN&xx!iVos@7zx;3pXQzM
zURYtU)U6Xso*7lPV6ehQp+Dc6LPMT`VpJ8P@)~MpcN>Iz<_XoI$YBrVc-d>BK3Eu4
z1mmSJ7Y>eja6G&eUde=2V5pupMaY*#`AHW#y|_5#|8(<or~iV%a|ZkD>Dm0a12DUs
zEt%jtJvhRDZ;+Hf13H)4tdu_$80Oi+2uwVV{=5PoPYGnWb^q;f7yiBYmQT2)S|c{I
zC5D<Ehh9n}AjH2s`1!qut)^{@M1_=+VvH(WX@L%UaL+GgdBVEHQExZZMaXtGsNjSw
zFlTl;VsJhnZ>9Y10kKG>@Q_?uz`2k!$6s6+&N!&6<QM8_8u}%kby-c~K>||?nH80T
z`r+A$DG=kEtn;wrjEw4}+CWZIIWoUi$s6kJ?G13~ihY!h@eg`@0ACH`sVsh=1qx~E
zysH4%7D;}7Qd`8R$p1#20muTwXHA=vz)w(|pDgktkg=3`+j7JbM!<0<ZZw2|jC=!-
zL}S}7o_Th6(M0|@I5<)zV8yxyl@f<sPBR-X)tZ>>aRJ@%Z;--L1GuG!2XEHbnI*dR
zPnaJDq#7+uW=Lj*8`Z^<{kzA3jytzlvFO5h-`gtNuRO&}Zm!|SW;)VjT~{1nR~_K3
zc7@#sYyWhI#LDQ>dk(YE&W}wBn%5e8dsrXpTDw6!e}8T|I?9xkzxWSmJJ1UeXl&UQ
zU}ZFt2(s4hxGIuJ#sa%%Y)CGf-ITGHOy=jTLyG(TL-xx;9<MlcqUxaagtPV&OzFNb
zrsw8M1T$A==g}!x?s&Av*f;i>8v`vt=xE+|y(p-79M|);NnQPxkfA30er^dnV@y#|
zr<%z*OKE}g!$+tn@c_O#Dn@%SMzY>;ySu36S58eBG4d}C*Z#U69V<|S%vc?`?$L1^
zs?KyVw#&Vl`tNWLUc1`PaDK8;u+(%{0y0vd-yq7bP%u<;Pgbz-R383J;=?`c*K3(h
zCPkDu8WCbf6^0ovFp>+>F~R9f7SBS-TyUd#LMMbOp(UWvdcR=^DH6cy_s!Z5s5epu
zmL6e+`acD(Q!J8DyZiNH<_z`V1iTKpy;E>SIFWBi!iB&MMUhZc?DW#Hn|D1t?xND3
ztk|e>&zhG-#YA5>`MxcR7{JBws|L@e$rb;g(p_i%aUyC%a%+4$@+T(x<OeqLol0u4
zwPgSdHOz{|p5?@}))y~R&2MC=ec0|<lm`y2-}wYs;QDSP<s=?3b_4kS%*fgt{kxi^
zlPmiJN2R3psZ6Io&0;Y8Aa6y5^$`<V+u58=yC}2|Mmj_$)`6ryGB`2@)w_;out(f5
zYD`I2`Z`qjLL6h}j8avyy6Y`+5@Cdh`3RcB+^288Qjn36wV&u-81?u=lMss7a*_()
z_4MGBYt&@?lk+0`Tn4=M%fI$Zaw?mnERGOg4W3jL&(WxFN_XmHv3k97=>vzOrAY@>
zsu%13a{<P)_|xCt-%SiuZ=FSD8fGjgzF_TBpW0tjxSe^#J#<}o=M>PTHW0{|eGApc
z{1g|4rW0)^O?yQ`&RtT7)<BcdmqY;b?2*E6{kwhUw=N!uJWIDYT<kB;DbEdZg{p_!
z`}==xlmK38C)9Fyq{#x=h_FBJ9~=5xB8k2E{P|?rd8Y8x=h*ECJ-nTonr_lOF(lsv
zA~J(Z&T_T=)^xGP<Ib`D0ev5P&>~WiOW)P4y$Wy1g1Fmq>TrolE(VHA+~V0(Gn7jB
zS55ug>x<j#*BJgsu00hULNvXhKJcZw?~P~qYPG_SgV-M!6NJuP_n84kqvhGe`WP_Z
zWjCbPo%E)`Os^Q%1-Af;NZZ`OaYU6FPzjc6HwBBESvIYXXLIUDZ-1K@!PF~2O*~d>
z;FgVeJA|#7XQ~{_>rTl4n488=;TUU=t?7I2u4h?&d|z~6VvuXji#e-7QErHF&IUkI
zHU<qFGl{Vr9>J`Y70kl^k-HdV*|2?M&@4HX<Te#t%R>DOEDVP_%!#PUlJwV47yOxW
zJy>0rU8cJgCOWvr1>*+A{}n0@{$@{iUdd$WI|^`1Zc0lyV_v@8<8GXjd@~Z6ENMtW
zqm+Z1XCCop<TYK=$kJuJF9H(sHrubFNKf<f=<;J7&hZCLMid6%G;4w)Q~ugP<iiwl
z>xbF(Pw1#T@GR$KwiZSi2+2V;a!|{bum7C0;Rrzcx~R&0@O32$|MLi4=x^VKu&6*8
zO9wRk93N}YA<2wH3cC{raQd>GtB`%y-E+Fq2u!h(DI2MkaV*WupRt+#DP1a`wb&~Z
zt5J%tmuN&+#-=AOhi?p!f+C}0b^>SpIckW%pHdPvvwfP4-u>=k7kMnFtC<AgEB|2i
zt1AZpmQfC9Y~9X1Bxuy44-O7){ugctaAT5Pp=)G0iZ<=yZ?QCWWRhS}4#axQ)SPhY
zJVUVYvHKI;p$9CoDJmCmF`V=<&`S&WnR~+2<nkX#7+MXWHUDsG2J@*`2(_K(9m!dK
z)wv~<)l;=pG+mN`dND+pFpHPr_M*zfJdshWCj3Wp{oDEGwTrj8l`Zh*PBA!$gO9z1
z$k~-7&Dau{o7?h7jVzKazy;12!dBNW&jbi*HbX#Qax)V=n-NZXvcW{66MIst1|wBK
zHS_Id8F|_J2aUaOU-;`WqgTed{-qHap}Nu|l|$R8cyHiZ{5+1)^Xbf3yzsGk=0pLy
z3v^=5<@#q2s9b*40b8opU>gG0eem7;B~Wo`IF;WGW>lnzO)sD?0zqfNaPSnfLLk76
zTb{t0Dd(Wh-k!ZVL(elqao%7i!)H>zAvA)sQk*s{)%(3JdtcVhL%I1Ub#W2oC(_V~
zKxW(^G%x>{-9ef>M5&X&oc^Fq6I8Ut4d(o&5%-7%Mb7^)ZYxpCxhz%Wk5`{h;6y4b
zt6I$fhp5k;_mIv53Dzw&*rci&e8a;_m?;XxJyzSOF!YB)0yJZBRlZMkw^U;1eJlrj
zSCf1>9lt&K!rwk4*V?`yy<f(BAm}HUe0P8wE7Q9(Zof<3h=l89pd$OuOwN)+F=oo<
zJ}nn(8dcfi)VP9?{PUQ_BQDMu)zK8<f&`8<qcwB%@uf7T>jHBCO~oU)=5T0aU5VF@
zh2=V9e?13nzhoK-n&k#vAantgJcGk4XLp{u+LY1bx6Fo1UvG!fMvr^9BHUV)2<K;C
zaeh1DTu5j{r9dq_y2F2;vX0No<wtY#y<f(uWUN!BLe7l_FTr%Vg{3+!4=qtI!OB(h
zZ3Kqxyg&{^n*XIH?&q#<S7p&re&R$9WwxaFFUN$TqtY!-l<RM%!XpR@(Xr_Q^?sTG
zZ)_RRU@BQcgb1>S#9wWn%V(SIeT<DW#`2vF$n$$4NFo9U<5@I%%?jhjmH%ODXS}W~
zJUmjq`b4Q5Y-xx<A2tl=;QL20#x%Qr+LHgbtrIRE`f$p{?1*oS%ZA78(=Jx|Y-!3m
ze2B&p?UaJjW^FoTxkvBu?DTAA_UXQyBJ^rTdY+3MW}&##t%NcG*+!Sm^e8AEW$Z6C
zkpchHGH9EILXM3K1mdJsqcaCC9e@ilGt3@>L~n4>>CM+_+g9DfZ|G3z`Zk#il5##c
zJhGfVo!cu7$@2PdUpvw~T<30XZXEmc!f<l@lhLcw$GbPg*&<eIfvOJCW<iR)4$W~1
z4D$q~+(yE06gVz?evgzHwES|NP8*NDC(RA3FeTM&>Jpj1qfRV^B9S#(8mfUI9TMCz
zENK<1jaQdsF>tU0nk=PxSioLon2l3v*nu~ELKYpNo*Agf8d<ik5EqxXtHN)B?@eGf
zV2S_x_lMidn(au^!b>eJ;}``b?OQf$eiw3nZsOfsJo2nfy#fPE$dqeLU_CC4F|T1v
zTnWYKiHUsndHEax8JG^{q{Do!NcJB{4OpcEO;RuPVf>a}VZrP`ESbboy`?fn`m6dH
zDxZi>MBWx8342MLb0n{BA^JaXZME@Y>i{^6F{(Te2}hDWAA3GOJ}-7nUe*}fG;h7`
z8G7VUjj0H&@&e*8-orD3-@-Us>=y()@czr@ycR*&xM3wwe_;JmzZ(_}8r=2XPg?x1
z5Bb$Vx(1G;a*yLit?Awb1<^~f{B^kcE4I{KcyEM~0o00Pkg>CKf?Tnv{8V=dgQZg0
zvj#aM-#KVka7T3zzlE+lN2GMR#KJprJxT1-_bUXyMnL;LV{_e)CJ$)dK5^)~9zCoB
z33&&QPD=&vw4%#G7x+=_vAsfCVs<nIH_qXE+vZUe4;!A0ZLSvw$QyU7r~&u0<}EV_
zw-1H8->(9(Hyng{Sf9#z(lc0e9=#iZiHJS$Vf`JUx#lrVe`)XsQz^Q0&?<FIXVIVG
z!^&DPbiFzPHM`wawA(9;ozG1=5Hf3>!fvhh9QhEvy=@4@;!Oe3*}4MHGco@J*Mi{4
zG6)ts<_#kq$pfix@KeFJK?OHrI0%K;IUUEO)Smmw?J_%g9Di_N195j7YVg%(P1G>v
zSf-r*T_wPKS4%~lW-ym)*QI?X^7;*s=z70L!z_4Sw}(B%VHVVz0i!aYN|HBXm5Mc2
z!m5{HX6A>5D^)%C^6=G;#p87ZEs8)Gnh32@v|tila{(^P?1zIR#@q^bST@f5*m%zq
z-|IAzxCES9g;tbOG{5J4wf9hCjxB$*Qm@XU76-goG4Y}-;p#K?%l#SHrK-byWeOXN
zih%hN{hvN6i9;cI<FXBl00&J?Vb1k8rSR*Hyg5mK!dL}}aJn%I`AB2yz$UO)1W9c5
za%kbs9{m)+fao9BteajzxpC`oN;u=t%%`62Y(Oc6pU7fQ#~4fA9fbf(ji}a(c~D5f
z(rIhVd~%ah`f)8Y%7RN~A!%;Zu5I^B*AV0Tx(g6(yW|$EK4o3iFsDsWw8Yvg&m0Bn
zOxO7wW3ANXWY%Gy0@G}6kK6y7kBoJ_N&`ugF*8<Te>B9^+t!QLvvR25${PT@l<-eK
zMb;esdGvg$T>`l{T8?NTm(MHLq^H?bmU0bR$qv(3e_-R|xaW`j!`ku+$Kn86r3VH~
zdaZt-O~oc8EUIb>G0Vrn^u8*npOJwX&l}3EFNmSCnzxc`T~_|^XvNI^Ss2J?DD$hs
z+ToCfgKW_maF}yAoc=`UV?o>GdvNm0{N4XkFeZZIZp>zi(TAz!m8J<sse(x^s(Z@$
z-TaVk$9%4SmH)I?vFL^ktR;CZUi>)Oc7yy=m0}DJ9I-`35#ORy?Ng|nibLI@X4-f)
zKnO4!Pa$!zpg~O@5h0|mO|9RkvAUxHn#?gj$QLmaa`b71$ypl?U``~KPVA7J1AR1>
za-BzNP%$Zo?&KJcE~unIhML%(#O!TWo5olV*5WmXaRs74ftubwg0VB@-^B0b{Dr~u
zK_KzHGQkL#yZ*cWO-4`|TJ}(r=*x`c;&<z(4k%hYXWC-J=4I#q2t3sf{r98owUl88
zU@BU;@c@grIQ*he{>3?bmItur8^^kMM5R@$B4@?PluI9SJ4N|3!E@dTw$^dH5~I^?
z*XX=xgM8BcR)5KQXY^MVCN#qERaW+CM)@me;H45efrr)`$<QJtr1Uo`s_(^`eMRt`
zwfi$6+>VF9fEXXj;JjS`z&8%Wk~>1*-+kIIRK^E!UsD+NBefo|NRi1%4rr<;68D&B
zE0&w=h$N7Rwl8Dzb)4=J{oMIS`(kXiM`;-%Vz(>xjw)xbye#J#ScAe6LM7?6+M9Ru
z3o<QCCjI|7P)mUwFz+vTht)fu8QEA2XJ{*CHtHM)SU7A~{!_7*NOTbL$aI|c{benU
zfcT%K@qR$5e>ff(Jb&YzJK#ELR4qmQZ)Bsr`K<OoG<^eiTy5KSo2IdC+qP}nw(Z<u
zV^566w%gdY?KEm^eY?-M-ajz2*6cm!b)5(Q&6|&p%g@|@c?Bn|z*&;_oRMdIvDOT%
z0CBPm?PTS33%9ko?-EOeIsH3K1_2!|T!$jc4^cb2VCM4uWFc_i(q9w6eL?AIalpak
z{PqNOoEP|&V!T2C`h<NJD&U1R@0ifxRq_ju)OY+sF?~vldF>s?kJD-H%hX#y2R?Hi
zS-dCHG#b&~sVq~gM$TMJl$2dSQFjy6L4e0VXtX<$Qu7+Is6i?+z^tgWn{DA&HJPmV
zcXuzEac~VfJ9_jlNTY!{YIm0u?g5^OYo#Auvnyh}wk;y>_4|({P?Rb*89{Ub(KKsS
zMaLVU)E%WPwT_~?MKWVR4U#S{xVnDSN+BM1K_K860lMbwH=Ktx+g@{hxt(^PGc$G*
z>DQlT34Q4)<NgYlSKtwbvXNA{{Wz9&?UmIumK)S{-6~}X)Uj48aW*G*`ELk(kz@cC
z0!ZJQzEaG4u`F^Ez1L&eN!z+{?YNBJlAm>mUMQQBuHwhmV!ThNc4fOghnySc=O@lv
zfi+1wZddybGtGALrF$kf?IJt!J&jnAZJgzQ0)g#kg{_B{R(F33U?H%o7ANDbw4v}w
z^vk`6csOre2_#5lqT^9<(%+$=Ou1!>bf*}s%5m>_)$g9{4m@@oyIcz$Ly40+Q_=<p
zZq763tIaRP`4lzFy+R`hgoO8+P~1OezZD&|<iuu?_lE1(jurGgmoeMbalk}LdDnP;
z{@uQkynLrez~k!a5n`OQAb2U3(nXhE(F`&(q4F=*OFq_4^K|`ngnXZ#?s?K7TA19b
z<ESj^3xJ1$KsJx*d>E$7B1rS5+4t|DHm&!<RwAUMjwOWQS`)Q$l+Jb3@qAmY){e-R
zXcKCM7~}s`$31YX$uMG<l9D8vAvypV=3e*PLm*gAP@^=@{CW~LD@3U3j15ExhPZ@S
zxZ~*FpbEE??G4kGLTnk|ZHw7xQpG|^ynAHjua+sDRk`fN#;$({Y_?CGvk6<)q|&A1
zU+HLFwi3`tcZcD$rw;>;HY9PYTZJuR79?YPlG2X|(KuU`;A?3pgMexd0tb{z&!L#F
zYdHx2bb;}9t3$;A%?=1CgdNyEFSp;nxmrvfEY|vX6P^Dz>e@kz%9mEd#?s-guC?+E
z6$JB*WeETGrL|4O(}}!x^VP4BCiy`EF{uqnsmcCb(P3^kr_l9}kNJ(O!sQ0LXB4!!
zgp+Vhf=bFiXJ^I85k}V^WWrkl-=>SB;Kx`aoD9iR^GR6Itvq46ZWevp-o`4m>YNgv
zPKh_8)|i8_(vTK|G4&YTfZ-vd38O%Px?23g>Li?{Nv`3yAr$UsT&+ZK1P{;5R`k>;
z_(`bO^^C%>?H7qvnMu)Ht4=s4!x5{U%Ivt+(bPUCu^%;sSd_<Uzm~G{E^r0WQJH{G
z?Am(*a0VCct5e#&_oR|>OtZ!BtN6GXbj;}U3MP0D?Pf-_U&D~}BNOtI!}6or)%+8?
zb}4bSih{$I5~P@PJho{bB(*|CwQK8MT+jb7dz`QIYIeV<e;jZ7rx-qibpNT4zYKo9
z7=HGgs?&N6jyocOftLQz^`qk#n8@4}5Fx3kkxOI1myvAzEM;j}oFoGqKRE2qTYy{)
zCn+&mAp>{p<7A_rMNq<efqYqc`NQDw`g@wm)(Ogv)Qc88eNE*LYL#|ll143p)R$2&
zbaQMoyy=6l!-LB1^l{SC)Oz-6)QwB^x7YgVRl?gnUocjG0<zbrJ{BfZ393qUn1j5~
zf$tP?FBQ{2Qo+B1jZ%-Z$ehiwViOQxB)SzA&v+tPMS5=`bI*R||1wSZc@63PTH6^r
z&S{u5RGu9JV^CAgo52i-COFmRm60l{7dZJWD{}%ro_ouFxm|KVMgAlU6zE$7jzdFU
zN{A(_$$v@Vlmge0)X<PZ-*-bF3;U#_)E7P;YRkR(2A{aR3%_OzL2wTjs7f&y#~5;B
z?$ytwP5E}+74v$TEISxH{#w577Wn8E#=W8IUriz^P(=qE=q@I~bo0_>l4#XZH+I*2
zQ@jmdxOr`7OUp4_hv=~c@nifJY&^E|-AUnbzP}j?e%fq($aa52_}H8N)aW8KN7?_8
z34lwlzEy^uLMBFA#cqhys^&=}Pu7gFG6W3ctTE6@8N@>xzr)myDgYKH@bfYNz2k6{
zvg^lJ;C|4*AAe~EG*(|_bzgHx4>p*SY)JX7pty49F^U@Q)iBh1+f(O56Pg?Z-cS-A
zlw>(r^nb^Ucr)EWOP?TWCg5wKyIun?$l5`7o~E4sN%IrA_$~$kQ~>reKR=HGEpS#R
zj_rkDX&BuG^*rgFN{+39+Q%hBE&Zd?-ptTyy4E93YanW|QnL|A*=TXx&fP<rfp=aq
ztzOdMaNP1s8h){RGzjY`s#mUtLJg2oS0HJpylv63i$TWXS~$AnfwjhEKtn)Cpj0sv
zvc<=00vVLh4VmaS&24<{6#nx!8@AtTl<OUY#FZ?OOkya1Gej-Lw8e!I>D6W01hKIs
z?~Z?owxL(ysvx1K_PZHyZ+aT(goT#*fmMrC)U?z_<WQ4>F!+lU42hVX^0&Vx+2xw=
zcqaStwPfI1-jiqd$Lm`kV`oq_g8^f`GG+1POs0zWlx_=Fu~<TX<(O#NnE)$_a_F;z
z-=ysxY1%sMmTIUVG~AU%<={Uuogm;q83B(+40_{**6~;z({Zm)9=H9df;MdBp!YzV
zq;~*@*!5_FVmw#(d8gDas2C6fux3Dupw8`;6g8345W(u43=E_W7oogrz39F0Fz?VZ
ziS^+Md(#%cQg4oHf;VUlKiUl&IsU#V1h6+paJ63s>bRtf*}nPwgzMbVy#_#1C0huM
zd=B#4iDF<TASG~qK1?f}9tvu;o-c8A_O|SNP7qbO4(`8{&Qj035nzs}h7B803k9*4
zMU4?6=!IDJ>$30bDBfO8F}ofSkqQ?}c`KIA8+&=Bi$Xp$x{Z=d@j61^FA!^c{fc&-
zHe|{R3d*n+&h|6O3qGKH6!H6wA&&t2^G=#v0$3Se^u#9jGSiIin+Ux5Qn6WI+W+j`
z3innlj<>np4mo*~%k-{1fg{?lqTKnr+bgS{<YvWERBN1_5S&Q29(7vo_K7F|D*R=+
z7hGc|+GI6L5{Jh>B#vn?qWCe;-D{=Q?89EEQN7o3JC%I-hpJHvmsF-6kOx9QLY4;l
zPX}SRrjwrW;PBbfV(=M<l!En+eh;!l7kf4ReR5yBAN*x-XsxC`lCMC9O6!0|%&lq<
zePHEnwb=s@@xi###2AayWTlCiFb){zwO(Wo8aZ}cOE`2~579uNO39@e_)sq!_|pFq
zDE^nszs6;4;``uRH*f1qY2T3WF?W){2?*gy&`$V?(Zy17v+so`BW;8uQS6oq8sQx2
za|-&=(+mL=2zI636>=&yCO)<v$a?JxnBLU$yQWyGHO%_i<Rx%6rUoPP4bZ3zr-w6H
zh9t%=YYxUKT<Q<*OEyS0CnL(Kpwbv>QG(d|06)h!WQiTNWb>1b#Ml!N<X5jvm141%
z{i|J3zjIT<!zEoubEnn5EAH6kdcD+qAb=qwXR0YrfAcm2Pat}bP>Ba!`4I}%uRk2#
zZlf(S@A)JzINj$6Z%uQiSZyZpQp<MqCZ_l}M{|DG-=S5E3+8$%GLmCb1Chw-bYK9y
zjEGJ-yv=IFo?a%JMZzXkp-FTQbMSThlR#LmqmYW{XXUebbxcM>(*Zp8@RANsP8`yG
z-}U)QB;m-KiOQNfl&f;N`{)W()zh&o+)mii;#4GG5)%9AS~bfPZw^A@9~4=R!EQ;c
zRqm|4+UYPqp?IPa4djY_tSbm}_BEV}7$w9*@Dx-md+WPnF2t4vsztN5d82^`mV5}R
zC=#iTu&$Wr-l3u{YT4_R4s^vfz~Gsb))9*9@T3gLlw%Z1ccwqy7`+!O4aNa~7SO+n
zpXS&VoNj=^|DE|i24uHX2JJq;v^y&UCq(B{9SdDNAV+?UwR8BV)%J46VBiI$sRZ;T
z_26WdAUd*UPmahjmSM~cB=4$6j`o@vu>=L@phnDS;~${7cG&OePxbnne!&yqn%dGQ
zJ>PT>4ta&i-Qb=mL_FU=Gh7R6RQDdR8p&~&YogTp?LZHRODFGgYcbnp>>I!>DKuP|
zKFqa0KF>S7v-Q<M51*T_*{+w>-Ze56G@|MiEb&HCW-?gdVrmq^&Kff<&Hfhw&HjfM
znu9|QAct88dwY9bT=6i6W^rdLF(GhhVIpW~Vq#Zy6=@rS%g*EM&cML)&gph^rCCC*
z1JyH8DVq+<U%nUjRhImSiRQ&a&J%!s(Aqj<T=DORwFy(e{`S^LIQ+5m(&}-8{W=F*
z!n7iJQCX<C<8A=8Vq9$TJk}Cci4&3*wi5cjw6wQ3cHe{cz7{fuXrJF#K14w#3*4|#
z>NlePtgV-0J@0#5s&M4|9LxK+{}4aA5wAhDZ;(16myl&ESEzd<cW$L6C0++<@l4#@
z(s<zq!^78aU#`JM8Zi13i0T?5lv5Hola<-V?eZd%SpyuA>Z9kt&t9jPCFF4LFiGCq
z(3WV!;y<56v#*q4zC%9>68A&}&>HU02oo1)R5vB05`vRw!OF|Kv*$MNqNrpNRL~d8
z>{6U~FDxxJIBfC&H-+v}tnh;d?Nmm6F<V>O_J(Zoml2dAp^$_nu^#A)QqT_>8tv%K
z)Vt~=&0K@I4A(gc&ehcdZg(10_fRQp-FbULC{)#;1*UbBz&$s=aW(fO#(<B?pSwRi
zKT;$K0`Ta2mn9&ze6BJ%4aC&ly>EV}$Z1bnY^@>x3AlA72OoW7?u(>YIkS8%V<DDb
zoyGt9-Mq$DAkWgt35pmT*bW)MCIMaXXoY%Z6-9NJSTpi<gsG_#HNM{)B|+bP$0F-p
z=a=)96tL>p*c|-TNYP6FSZz)~J4B5E6FNvzSXlUnizH5jf|7Ez%OA77LFTnX?Bu<<
zu2Cg(G;$O*q2Q!C?U?rT>{Ke0!l|w<$54|-Sl?prAZ9yDKPQq+I+ttPbC1u?nuLMf
z{L{47Nd8ZfAjY11ASDG5tS@&N^bJkf4EHo0i)Jp+E*+~ZuQfe$&Bydmt*;D1-c%KJ
zk==N%mbR0m=D581=!D-lJ#(zlY}Diz27^LI1C52BUocSTH@l&v=&g;NK~%Sobb>7h
zD=FvPshN|zes|ll?SRRqyMTfrig16&!l6SH^L<>CK@vhh#cM!=t{)X;7d!fQ&to|i
zBct}y1mUe#`c~7KGGaX3SHKgmfCSa32tC<sZC7)+0lTECY;7d9{3@$69LYNCDCwdi
z1MJ_<r?T&{_H*?98abqL`ug-b)DSO_E6)q6Z0zi_?LU)61f~VI{aBX`4cC%s+Y16&
zaL0~uz?zK3OS4edL*$#f=tM}tbzqb{ZY|w2Kua60m(yGx=UibTiLZekf;4gR4fuqj
zq*RQp0RuXu2X|?bxLi8xxi!*tjB@C!tE(Ay4RgDdZn$ry^|_M+mpI*=ocK;;;ptRS
zBNmO&bZ?b3s`_Ir&C(C?`ghwsg)q`F*hF6xLux1Ss#;bx&ak3X{a(*nnV8sngXfp)
z?QaRX{9kkMaIp>;1z)DKogXAL=<Ewb5Gk0FQj)?pH!V0B#iaMx`9}cQkJ{naiG@%6
z-Ss<fm$+F&O*^FVKpg%$pkD48&)T}eS+i(W(N#4)M(s3vn7L(@R!$>BmJ5@&`&&A<
zHgQ6M`BUsh*|vydv3Fz#DX;w*u)*^TJgJS~dj>>CW!ePWrS>2~-J{h*;NxmoiJE?E
zZodCAKqI!knk7eJT7<WcMa>S=OZoZi$Q8JM=C%I2#-e{{exgw<`_2oNhQo<R{2L-E
zQm!&wGzkdFI5*lg8KS=?l|Zob*uVg==%WrN`fG&wYnZZ{1iKQVWVbt@E7$k5*sr&p
z)%<SzYwuXv+zi_Mop*$p)k<+0t3uJ1_D9jSHH`<lFUl=pkDw;67DSRZzV~{vlA;mr
zy5rr2Jt?d-qImPt+CiH5>er83E6?FWe3cRSMs;k*H%=pF&HHMX(gP<%dL7(Drn!C;
zaiiLSbUTEp=OjEw!n)X4K2n_W)aCeIuNcS6i#iSbeO9_dF!<MhXCZuxE;2k6(3A<6
z!DKKmUJP*j@!l7Xba#KhtFCcXplUdfD*xO2L>$xk#60b~-EmXiUX(TZ7tc%=3#;$i
z$enjawlj1+s~a@V&t~&+7+8Ot`FqdKGyM^w@o0ml)cdpLdMjhj$1P97*x37xfY%E>
zj}vns9d3?{Y`n$&+cjX8?R#{!Ad`anEoCh_qcnXa;@TItLGd{hP9boYkC@09Dpo)2
zyZstKK}lvzm!LgK`LX+rjh!=L9A~wIDrRP_jyGpNg1AEoulfJ90AlSy?{hS2SMhlt
zf_x7v{eF+#-TgtGg-4?;5v>n9sGQw-Q{3*-g9i}|<^kw3e4d87#=APl+Sv{cbFn|0
zrduoL#>U3Hk9oI8C-Xk|2AK}_qNhqLE63w>2E88eVnDfa6?Bqw-aA2%SOhpnhm73^
zp59|0Wqq-8T=h^V8LJM<F6r6XY|zTobs90y;I(k;1~TzE>jb<0m#<$?lau{URX-yb
z$#dD@c3(1W#>U6bO9ne7;b0CTJO+bT?FN<Q&?LYg-tYbT2UKK=j<e(eja=zK?C}KI
zax!m#W5(&R;3qe)=ij2*T1T9TmF4B(68S8^!;D+9I%i#d^7k*m2GrCOmZEPE`eN<+
zP@X#)tBpe_yw*XG)KpiAX=v`5e``1dxlLUBto9e+AO3NIn`y*?LS?*C2I0b9!K5IY
z@0QE;u0=+usiD?jGU(C-hlP)S*b7Nm^xO99Z_mr(YIh945(YcP^-c$#B6Lmmz69_g
zD$2?^=}>J<zlKiKLc#}Lo6!#3km@PPo7tQHxmVBE17mVU-#e@>c-D@ldSSsIH(VKM
zHLC%P$6>62Cb6G2jUjAZzjgt?RJ+a(;e1<?Be}5B_N(hLI1z|gBVReUprL?HyUMf#
zR}zogFTMWS8N-9|Ired>_fkYEYOwB(t~Ybx%nWW)?J`3y{O?}}2LHqH$h~xR+SJ5R
zvl*S)C5|ir9IcfSdpA|BNR85vlapiO;dsG~zfdHekeCs9Gh)xtCqcJvKIXzaQKW#D
z_8|Zi6y%x)3PtQd;FskmP<^}69{taSFc-~Ww6(!)#*$%u8GrC-6oW0ZuJrQV<VN6O
z#k9(xlY*V09-OkNg#<T{#=bV=Nq_HA!sXX-uJ02t!unAa`4Zd0+PGW}pa7RRSP5lJ
zEG}m%nHJ>!yEU0sBumH*&nODUkc%UQI2*gTcT2W3J(t%LRNpj9r9FYn6I{#@c1G05
zFv{WT0Htbhs0K~B3Vf)Q`FH6be?sJXs<i2|J^y-#>Nq`adNz9BS{Qu(TArJCO>fY{
zUeDW@{IjApr<sy#ijoDsK0hz2ub&(yA?sTQb3D3##9ylaZ8>DoVmGQFecyk0<$3^t
zz}Jq^ot-}WF)6l6KM*GO__`OjrnD<Rv8G1B1sl}kT?0ert)I3a-k>GB3w#|T_w59$
zR$E<GNeRUavq!D)x%k4825D&6zTNCaMaI^a!Al&0zXCJ{9Nph+BbA*citkcBt2K|5
z#bkz54bJ`A{}E|K0S7Pn(e`r3k@``jQuv1HLbHn0R$Z<l!Ti13`~lYLl$nT%p`jv2
z*5ITW<pFCn6clv=221<}VKJJb;5*wts#5S}R=<gjGiltSth`)UW*@S$9x<*{zc?8_
z!tLYrxrUO^`v5tWL0^I+nVGB$MVzgl3c&*9TpF*tlz{GEjT=B#vj;`!f!s|}0{(9K
zUN*zFN<<`!jSflRh2Q<%81+Z|yYq3ui~ZCW=(4-YSX^Vmaewcwrm3l_t}e}RmOObF
zQyH@;3(7Tp9)dFVeB)Rp2YVK2Fq;J%8*dztK?c|6n`W~3wk-)Q+@*D}(YVA?*^W$1
z-gS&DuG*5sG@~IPD4w4{nKg={5CML~nKbP1_l}eC!(TG)=C9x<ZcWDxN{x3vI-P+J
zOyUfcF4x=put2!>j!7t1{Y<0r(Mu3_t4Y0;1i`rkc@*3?p9&+kn%}=M>g-NbXeBK{
zt}{qf1tU!uFkxUMSFsDEIOx<-gCv7}j+~HZ74&r;Q98;K$Fcu)=yz;(xLocEq*m+w
zaD=wbSGWM%%)!Mz9c+F0PZ@8w$<sVCsAm)fLWUC;efl<Ly7D5i>wc{@bJYT!QYGU*
z`6QAIK!VOpfMeM6w=~bf$tt0xg#*B}7@b}@yW=#NH#axSZS+PVX6y*uN3F1_+t0lf
zJOH0)Dz34C)L?l+^sz6*eMF!v{dvYya^!ZF+8#XTM$hl9`<m_N<4-k_Z}n<oBFM7x
zWax=(jdd_#)8K#7BhpO+SbM8D3}#oyY-_iATK{s3X{}FHfoz|TyQ>RYN}?pZQ@GeP
z0&5%_Px61Hr)TfI-A-qfSdoICL_lWFPjls*UhqDRrG4Uu1*KP3jy+%f5Euw&UH%7i
zPIcd@95qc#Ln)mgtdF3+<i=aR*8fBjp=`{qnFEbAkb&ZrxKoq{a;3FUU@4<Xxb@{V
z*J&&`J(S?0{cgLv$HnqT4$}-3<jw7{mvF8|k8c50&ddTEY&B_$2Zuw~g}L>N02rZQ
z1h9<31K@zUmsJ$GY?@X>ng}wguPRWNQ^?OMQh4E>5+P=_m0%<DVP#3T^RZ&;8n_Cx
zJ?WkqP~a%ovfLk_=&uiN_<qw(#6%!Sqw$mh*U8ThhXA*irpB)DJnDarakO1CmdMwd
z;@9^WVfmaP=6=Tg5x0%yAxqrUDNz0gJoOLRw`m>Jp-~D2C|?a8iZ~ONxx(L#IlcMD
z0dIwba{|5`$95}1k9}cpo4KM3OKj=hy34nNR$ivQS6wL(zV-b6)2$L<8ZD^CcZu?{
zLS&;WuDH6MRUDqMj}c#>LR7p|bp9BUm;TMg{Lxd!wMT~SoEvEwxvh)naWYrjU7PmO
zA6~73R6<$)T_ZwRhZJi$YcbRSA%oV^!<O5!R(}kUfJfoLd~|W4v7zN#KFpuC1gXk)
zEG)q7??$JeQb*k*U8lX`v9;0upOKpxI6Z$wWhFH&?Y`EwG6ti;L?WqwwhPckb#{hQ
zt2M1C&YwVb8&VvNKU!dnDX7x#-b79Y-B^ZYg+N0y#^u@XjdzJ_;&gy~6EN^+1)Loo
zUTPW=Ux#caTRtC&g@Z%Ev~X~#lzGJd5^mb5rFn1X!!!l~pD1l}y7$}g1ap4uYNz22
zIcBcBxF~k+F|rLP;*_!kZ1j@<dYbjJ7OA{a_C@-2b1c_YI*=zBdZlewPS11gIhTOf
zCk7aX*H4A<Np-f#xgOTj&z_NU=%1gGe2U#AY;Grv%~|N0+&;nyE&O%MD>CF!NpcjS
z7K07N=YWF_V7yOL8H_*Pyw%h-SeOMy4-V9P0?)%$Q=b}mmRb|QbVb%}a|BwA(O3mI
zrl$0Nb9?yxx0|R;Dv^(_LR;grcxVPjI71!S%P&o$UgaVcB}M_xxIE;{+Q!QLa1fIm
z8uu!R*6qTa`SE>Nf_-$%k3EXiRIYaNzYfOpY@^W_1DfelRJQTXa(vNQe?xzN{$}@k
zI>RnJ!DR9VitR2-&s{4%NeY(&1d`?lm*^1OSLZy|Mcq)eTx+(qB8H>`*S)KblA4-S
z&yIb3znyP{J88PDtZ0YN+kv;5+5Uf5)zs94_zwS2LV*v81Vu(dn}QKlOEfm)^C~N_
z!jb-cdUziahZNdMyVFh-LeQwyR*?0l1qSSo{EXlCd@KPRiA8VloJ^gbH3crkKjdrv
zw#EDxWIVz{oB%|W>8Y;x8|vHB=c4)T8VVZT_`>TXd@y*{bkjfXJdZ^=ygv9zyiD+l
z<cNZ^93Bn~7MwW38owJBJ9k{4TS(z>ystIeV&mZ$`&9@5%lrNPJ%+XPI;N5QS=i9D
zMPwnBI04;;9otXS=q4?1jcRH%7=RMLiFNb~`9bhO&YSC(2?fOzzi6J;6|A?UbxIB{
z|4PTjiZK0fnzNSnd)Nv@r8uY@!>Kxyo5GxIly{5-6<in0gaWRd+8~AehXg7NDJr-M
zoEYkm%zV}$4u1vM)cFSG^L_&X0b~Nxk{^%kPlwHbG~#k+^YV=qLv0nmw$eYD%rsK0
z2u|F1`#?pu#((|y^AYDKEb-5>`AoU5*oX$7YnrzifnBSA$AXx^%@-oTJ&gP4Zh|gV
zn+oZzMh?d!OwA9D?JVZeW=&A=)AIWvZf#7y$jhOH!QpN9&S(ifQ^h-$_(zz^V-2O4
zv*~1cs}wTA87mWuW79B@6y0m6t3qWtkrOMUDeEWi_DVW_1%0)zNMXY1zm1`A>Y^Gs
zazTn$r9w;Sk~%n5v&z<uF`0{$md?9!r2R@An`?*0y?K<<wD%gYM~m|#KZvJ40<dtZ
zL04suT5!AlK~m(uN9!WQ!dgO^+yJwekgamKaBTkg_;v7NXE@*eBHQ-s^%=U<=HOII
z(Pz{#O(lttkP-@v)Va(=4egur-pOf%;v5cD$BDcn*-*@%HgJz^e?bvjbKh00EH3!L
zH#8BM3R|1DojzD#%E(H1hAv6jk{+`J1_lZeKCj0+4T3ap!#TSmhe{;)tog!<<EUv_
z8{fd>6DA8tSOp1e#S^Zt{PTb)?QRlXjqoTFUXueIE{>|`1=wDr+(<#c39=PIC9mA+
zjyQy^$B$N5yD}kVO{B4vk#id;ar9^mdiF*9{)bY9GK!?!_;=a#FhX7Y?o;)&dXqtw
zrf{j~0St%Fpm!*?v!$+)34+QKBv2hwYfFp<X^Ug%IREt9`uSKaDE+=U%R>vpO?D|3
z_&)`>EKhr{j!zvX$$kHRQvZ2H9B{W!c-;_fD8W%zgmDsdf9Y04r@5I9(`)ce-b62l
z$w%Ez(v_~ss@`WCF=-Zi`Zl7<H7bN+bLP_(8uFTgb)!Y)YwYE7$r|JAqJ|7JH}~lM
z=OcvciViBZ{0;zpY0Rx?O^-8laRoh1n$xMLHK2efN5Qgt%E+hFd0DH`6a}8iT#u)U
zYg*z`gtBo0|0Hz^)oUGSeSXP%`Vm;5M5Uyw+dppT@pU|vq2$-Es2<Okd1sL%wza8X
zI}Y3Qfd}_uw9!{->adoEnB2Q`PDg@&pH|gD7uMiRk8-=Etg(h_%n=xOPhU(1({ByE
zkW;T&P%j|r!ozJ!(cASUU)=7~D&@*fr%5UAV%l3pX?sEJv5(JP^n3WQ>xj!}TQ$;I
zR@&Ukf*c1`h*!E{h90w{*0Lvig%}P!cxg312#DYSvv87H+kBk=?fDOe&&<k7s`!Ej
zr@c3B>ud0L@^S#J$s-hxlc`qfjtDiN>RlFBC0Zr(IuiP5s*+4oe;Q4I_u+yVL-d4s
z<lx5yS2&PkBC?)Hn8k%^4Msd8gM?uU@fy#{!#BFJf>ycYM&v)bV3v!|n`g1Rhfpy-
zZ<|hLU!8|O7w{0cURgbP-Q3iq^ee~7K`ip2Dh!96iHpq+*(7KVEE4$ng2P`RmZ}Z&
z$V{btfB!YD&O2oKIOyN7RG$k}ld1Q8bU3v+E30P4h@7MNW!dP)>vsV4iil@6o!f~9
z^ZoSHW+l)_5QJ{t)Y?3^F&CUba;@S)Cj2NQt6b4bKi}2bSt^Xg6!_s6(<2>vDP^a!
z0)95tUl*bu4L(kU*|W2QbPs<&FYNKCfqc^VbY^A7dR>ak3jN@XK+l$FNb~?Brh*(r
zC*$KaK*W~I(U`nO(W~p&36z7qeAmtWQ&{cGvHplBOxyOCp7W+5n$fIZyON&!G*n8U
zbbdQ+qCT^%s_JJ)L7$rCQjfm1_}RJkhX3OxTD17os*?v;BzA~Pp#$nL3?md&{|roB
z7AATz^hynyhy;1|Pq@f~>@Pva?;4uR&d=zYPW|woJrDYjSkb%mfgcuA8(t+rj^cLw
z&fifGnbdzqeHXzgMO6iaoKZ@)evCvK%!9#3E-ZUnz5%_Whyqhblf2J)zdvJ%M&{<{
z`+t9)_rJX^3n-|2qH0BGf*wAaM92l&ejWTuebY_xqmy$HIL?lh&YPs)vJe}QT=O<h
z0j{*+ydSR|yu;RHIHt#^g>)zKGERhPYWC32C#`)EdE0hxXGDA3VY#Y0&AC(zw|9Rx
z>9jl24c!rnU2h&YeHr<G#9xhO2?}$dB4OOv`I_Kn5o`^tB#}2wWP(;Whw90>p+%#z
zva`itT?Omjl}$lbaFiy+z-D#CUh54n*m-GrcX#&>weHcODzLJ3R7^mrb{Clei`Yk^
zCjTe4VC+0F_Y(PO3L?|APmB}mJR=jPvM}-a-%JZN9*M)(&B)FMf~}_Z#|^#NKW`R4
zkABqv%S}fpqT#2xPUgB+iy5`L{B%oTD=a*gG9=tvxe17FVt;>MPEH|1e0>~g5Ls1K
z^$w43U}uM@Q77}76<ZB$b&#I|MzrWMaWwPm6Zgf1n))IMl9;iWGJ2v&!l*@L!OHo0
zF~xP&JbAfv>EiO$6_nxoSm4bOr=h&*nO#B5@aINrB#`e5a0Q2;6!YrFq)GEB6^6tG
zv^5!Po`Yp(PkF)nR9y#S<7F5PI>XT;NKc);)XG27cD;DW;ySYkLGyY3HL%$VKW|@r
z3PITvHs9<kxg?A^fHg1ZlC)VN$);YbDMsTssgQ00E+9cVRLgH0l9=nPsxfx@L>k2b
z0Gd<9SuQK+`$+f@PhO$Shw8H_yhYHGz|aTne4dykhKEl6ocFM5F#=4Bp8w+6p9}6G
zY|Ct64J<<AP!I-)0PGub<w`;_9P;SB2{Bx>)O4v9-OY?>_YQ5VUr2ASu}cOV@{nww
z<ZaJ4!Qz^lrMpdfZ-zth^y9tA3&pzY>{zpq3Ad$R;#N(dgq%b<zJFs-V49fiseV8e
zMG?C42#wS&qST%QObm~iK;nSiY>XzI*Owu-5htV3i@-km=w~RA#?Qdmo}ox;V*Fxe
z-aW#PKa_7b_4ETW8PAILP;AZY>TaH%jaIXJMVbczQ@48T#u&}tVKI=v+pQ-|mdC|;
z^B>q&ZRuyltd#2@%ad!x^A%-p@hqAr3$W12%V5%}#6oAyOiV33o~(<hiXif5cqC3%
zNM`5Wx}-=G(4vv!1#Z}AQ*)=Pw6$k`ru>)@5P7OG>$xp5K2hn5S|R{`xrK#=k4#$L
z3k1qVbBbi=JQ*Wb(lE<)urac&`b1=b_wwnR(`7wzOG(Mm2-Ld=yd%Mn{Yv0MdddEm
zc}z_iAyqEhnCg{%_)cWF*5GYZGa&0_JeGU+rJ^W-pQKqFT(dpetg2$6yREV^WdA)R
zCO&>2S{M)g<npq#ygaU?#D{O1vf&b1zmF!aAY%W07`l)tEC!#hHV3}|SY}cP-*y<L
zHrs+uGjUv2@e(z>M0TvjwY9O0Xp}jTzm!0p!7-6k?$Y~LD&o_URF<B5=QdYnM<%la
zcm^y|Zqn13sLeb-3XcRzvP~UKQ5<xbSrwAApHsHz>uWj<1{Ooi9IscXmTl<W9N-WZ
zJ6WGIqo`)<lReyS0VGn0fo_;3{bpUI9dyIL=9ipS&C}|wX8Ww8xD^h1+Iq3-@7rCE
z3!2!q(@yAYs!V1m?-=a6(UC)_6nGVg$yVjqGk)T1Pos>1t!7J-vDHrjBem4^a>s(W
zcVdtxM!40S3s!Y#s6NQIpJ~r(n=9idUM&kGSOL_{b2^op+Opcpw)yJ}PeVeTbTIIw
zMk#jNL!BaLVwuU0t*6y_s5U1A<6>iOuCoLNU*-+vG&M14hR}KNxaWrDIsK!~Y6Bf%
zm~}IxSZhMe`JzM1?uW5F9Pc)|TJJKDO>n?=YN{E^UEqEB6bwg7?p2qn_KXx6*IO@z
zU<%_n*!V`~%we_L>c%Jdehh}DQx>hJqxX|Y#^Dh+ficWyf&uYeXu+eSe7qj#2b+P<
z-CE5y<co{!C3EN~(sD><Gc+QD_21Oyu74Iy+r~iPndI-SG~C9PG(1(;Y{<Qp56T6<
ze+x$nzTic0T`%;!4O0xvsfUx(DPqH=H+^4gj3kBSZtqfOfwT>j90jUOnPS9w1z$Z0
z-<g2aVNNU($XxBZoW2+iQcB?=Ny&QkrbuKK@--}}B~e=1GYd@7`4ALo8Rs!JYCGLu
z5hbI6E-p#C`NTA*tYuLNK|x<j`qJengd(`Gy=Q4;Eajw+4de@?1wC{o+Ovnxww%7o
z9CJI>A@Ttpq@RI1T>L+L+m0rWRaG^ubJT;ulWzS9MUG|Za_4!Dr{t~ebAHg}i_5UA
z{#T|YmNug9lk147lKe%@PC_ASaE1#7nzxG<4xA8NIH_s!DX!haxk`axkZ^aSS!znt
zNUJ#*g#}+BZ*}8UYp_fzzqwt(R#8`W{Cw4}V@IWAXgFhWW5BTEmB-*YN^@>$O$JZ=
zsVlDuqHp9*e4ncXP!}-4TsRMaFUg6nITIDL1JfUf%=?sNNZTDrBn5o1S-u7A1LA<-
zGWs$yRN8^YkhK*TBid+NR3tNzzBq;@Gmo|EfeTJGcyrXn(b7Z*IF&GoQq%@WB%ota
zP{>^d)+C|D8)PiLrF!NKSvvg6h>S!I%@p&-F^_D#KG0jUn6^}?cD8f2?M_K@KT{xW
z8Dmyh5R&4JQ=+N1M9stIt#dT9o+!>qG18*jlb#n<QBJSJ&e?Ln8~)jO;EpsEKDjg~
z5<FH^mp74BxES|GO~_Wfi)pAvU(tD9J})RnQLlvSz6u?{&Rv3Iq<#wBo)R3IgV@-q
zQ)q(eg4LwN8eTE`a6Cw_Sfg$kxpF#v5m>ogu)sH-5~mx?ym_NjCk~s`ZObdFz+tFO
z=M%H{xXM#<VW$V^UqpIx`F&4LPa9@hB)DINR2e8wwN~YN1~GH`XA6ILzg-VoIXaeN
zN&G8{eD{64YKWfdy~<X3m8iaF^JRBEE8_oD`#Mr@`u!nyWo#v}$2{`9pfXN>@J~wU
zM0gN*19~u8Lu(O7+84QPrp--q5v=*oG`nCF4STzMO=>zD65%MbBI@!dx?Rb2`RH9F
z(37|>nFh7Ew>CF`xF4^7nm7G$U4^r^Z!E8@Awex7c>&%OQ0JvGT3WWF&x8Yv98~Z1
zhp<4vydbift5;Vd9D9~NYl-VH{-?OPc>AUsc1t7f{7uLg^kKc5o3t#;zBM-<m-!}J
z?qog1wRC{$6yow0>VHMH;=6U^rG)%1WkGF8^>@`*;wU1D86FlTs;haz3uBuO6nu5j
z9VsM>`pVi`PDeLQZ)4xz(CvL413>=&`?nCj_dAC;JY2G<SeoQISli`bgr!<u_7mt|
z+aRu(gbyD{0~Z+a0S{sCAwu4Ukay#JCKB9)Q8TNIMY)!SU@Ay`eOTakW(8I1XE%|{
znm2OW*nmS7M$%R3CR8T$R*&LPvrp2)%f(=7HMJ$n8U!GS2w7Uv-X2XGd)U$jAQ3@d
zY)T)yUiiG|h9yUD0KsVb`ud|z!>j=r>%gZ0VYAOt)ZTvM8UY@kAp`XQyO=Qgr03M@
z?cvJuE~U3eh>cAiC4xg&UU48)rJLN+Du{3CJp3og;pEuJ=SJ32ZvOSi=gNZgn?m{c
ziQf8jdaQDi+@xTheO{89_20wIYlSRC`gdJLUV_K4xk+V#yyK@HA|R!TIiUdw;C@tp
zqDNzT)IW%qk}XsF@6KWG&*2s)>qp8yp`#yG8MaQ@XhwrCBDX+hJ?P6$_1f!I{gIWF
z{ISW#WRF86?0xQ@Zj79l4WJx`KfNF>TiwJNwRf6Sh}d&4k;91VqX3SFG2l8nJK#kk
zQy0g2%=-5$`>D*_?ZwCssS-&xoatNC8|0pzo-aT=HCF4E4=v)`o-)O)INFJP;HGWu
z(H&;3IPWZ!HQZEvDCMzLvKOcVEpu_LG1~f90fi;s#lmC-3i#Ix;C^+xR%vC(ltx7w
z;Yz&L3aziJ%fqH(&9Vv?lqXCbap9%h*U?nj)|B-nD9HMFI&b>T8@6pHIQA)5mIKVZ
zn3&&IKecL^Jo2#pv=@d>4_o|vt1}Ch@z==OeDQ4)!jjufc)K2Un%<2I!P*_ur|a^j
z--T`KH>WLcOV=%L-1a*VBPVRNJfFhy(xbmy6&K)GLEYb9P}AIh4sh|`d`=tFg3+Y+
zL8*>m>Z+V8LX$Q>tx)yEhXc=Qfh?hHbvrg9Qa?LAIQnTnC;u|VaY8w?myiV7h)8qV
zdm*Wgn2gRcMd27-w>{16og3g|;u>Kj^iS#jI73vT3T+e7{j%J751-xguyD|2v&`uU
zP0w9=g8u7wAddXm`KsTGYMzi+kb7Mcut3d^FDs8WGykA3YJaHDsZCW;(pR?^B&1aD
zaFt?tq}x207#PL;|BD>a9jS;Q$pefOcU<Ys6O0lJ-?-B(%m5RWJeDR?c_tO?(DebA
zG1@Gn4j02Z_JfXf!7zi#(ZxA8b|;e@R;7+LAnXyNX?%RY49we9yxhHT48$dT_2LXN
z?}UNV(^A(??9u#hGhfmQzc8%l*59G?{%m2HUH4P2u_t^G2|r`mD_rmr8a7OK7<Q04
zccngqv)i6E3~B`IYj(q5wVKbJ?U@ZMK(K?H%F@5EfF>g4x6SI|-e<?4HhN}bKEx9h
zM(xnH3xVNYYx2>-a5R}U-qDV)(Sk%`e}3M?j|IsaZY-spV7k5K9}^c>@3)#cSNH+i
zojAUI1{>mF+GNV8C(Z-h!7UD(V?f-am7QHdad8IVnTbg2x+D2Gna>-r*9#@WN4@4t
zwzJFQg%J%VGJ5>0e@7@dMO|7Y%?V!gQIGK85jn<BsUsB}W7szWqC($Y9l)afK9+ED
z69$$cw?t-dKWA?Dpd-P!OaV20o6t8*tx~?yx2J+4E`c+5&kte=7#X!IyU@0E+mk>Y
zbiUD(Xpy83lNM3HT)C6*?-L;oa(|Z#cl1Bg1tLBpAOiww6J?sz&56E)K<M*vqv|m=
z2@K-Gp|VF0T>OGWQKk<U>%;dzSRuA$p1kBR*xLHKcC$@!BEqCaq+UbwWi%CwSt$|I
z#(#BMX7fisw0}RafmKGNLcOh@p@!!x%kp0Pv!POo|Jx1Ktl*VLs#`b4Qgit6GRBZc
zkjhC5xGWz3I&0*yfbJmVo6U!;Ccqpk<Z{#ohT3>eD5(qUYUck>3m`5o{+*tFl1~3u
zN<}8mdVJ$3J``9yRn*mm-A`4wq`7a@NnyO&F&82<#o)Tiw8d8m((3o;#AUU$$Nz%%
zj1N@BR8o?Zgyc;_utkwY$;lXEFMYX+sa(69=QQ2Y6lEgs_!?H}()0tkdBzg*qW(2P
zY`+a5YPC5DY(^i=ZfGc~s-h~JNsAS|bE4A%T2bx*zyA)$bI&?iaWmy8k^z}%6?V`C
z^)Kz!e<mrSkvg|kmDAHx06|m?Lq{>|N$^W*H{?7moX3`4Mu@n0EQ!@X@#V!-FfxD=
z#tQe!b>yUSmag@FIXB;d{116{xkdAg4J2E+8hRLA?dQ+<%pb5r`kzRC4`8ys_KQEQ
zpuxexf#dQOsns=|MdE~|A+KDn$}cGy%H}=dv1M~c%c|IL5D-$*Ru;C^#g&(rA8P6g
z8h4hWfRY30lbGzL^vWQ^dfLYxF+Xr~z6ApuZ%yZej)~mw!`&Z*KrP(6CWix8GQ4F?
zX?69aTIoY*(PftD%vwS&UwjU4-rj<$BD+0_?|INw^6NR}Fgq%xDe#n!dD*1M6J<!6
z#B8^FR7ozz*H}>ZSi&Vq<KSal{7kSAV^!t!yV`Q%9&E-M2d!a=by%6XBP9T&FN>~?
z8oUfZoyD#IZU-$IK%H!gEPYCK)@j15qZLnNm68VJP8AxDBTb<!nw$9bs+k2U9z<3Q
zDUc2txc_;l>P`FQ&`58jY%C@VDr$0L^7^R+xNl-*XxNEk+JAE!d@U&YK|z;4GG1r1
zNDYT5=lu4E2z6f-2yqP^9fgj==ao6@(9ZV!SbZ{|e|1p6aj|iUs;{3tp$y#XR$LJx
zTh1@~Ob^JqUaT&!Ir^#c&wISSJ`O-zz@%?)z=OYsH*3&VUG-`}vu7J77cz<&-h?Gf
zN)jQG-gQp1!)Lbfa|s3_VRv4?+S^yFsV|e^Hojg4CQMBs%)?GwK=(&PjzYIMtPYKV
zXaP8jEJh^m0lzrVDWX0S+N~;GFpyz#a?<YOnbAI&9rDbZKo*0spuHVhQkfPb`h2Z9
zy5&J*%;f~moy8+$G0kJfEz;w5Z!o&Ns-g*c*^Xr<yyv)!GjE!-xTvLNsf<$ESP9?Q
zfOJlIjxn{*r$OXq!?sv<M7vxn-xvu>sRUnHTYK~$_~2+r$j{#i2ank3daO`1b3jSy
zwU29HIRUdlF>->f8!8MY8UG;vBk<ykmsGoUK*W(kp$oW-O}j#YXN;8LJu4$rkI#|_
z`HH9fw=#8L4Q4holJ$90*dZM{LPQc_>MB}fM#B=hcpFCwswSa-t#55j6Jb6`QB{!k
z_?V013LOLkpdbJjn%mfrV~+V(nc99nrkU6nt<P}<)t?Y`1EZ6PTg6sTjZ^<lQhj|c
z6@0c&&C9UYcYE$;uU6-;D+Kw#v+|L_p$;5&XjuenW0>7{`Uv>kaVSnF?6pTRuAB`%
z?x;z4GO}uT*!Y(4&wgU!-U#TpSR1!7%35HFLpY&gf8cTxCTtu^?3Y9o^j#rbkKJ5e
z?YH-F4PS|&v|8+-@1re{!;$ORV6!h@&CG_<VNz_U6d{rG4&zs|(O|^0`;_{mTB5x;
z(h3V3Lx9%1`E}p)$#^@9@l;>zJgm}&h9p>qwgeyrcYbC@NWEn)PSZFkQr%r9y^jav
zCYQ@fToSk`5=UBC$k*jgYxvfO3A`VB{Fl#$Ze|TBAP_R`q<LC*IG{<!t?7D!$;{Hl
z%1bvoo+|Ykq^<qeV4$eL?+y>(Ya1{3wXVa6e@)I%d9VNb^nEvUU0l?38Ktc)NLkze
zn)iNQ+V*lvi-g4-&jbftGWXpW&kI^=II0QozmD9`N{>pE5YnEU{-uZ`Q9Utl&`KYm
z@g0;?kYnQGgA<wA+L{Ui`t9AWkjz)%a?uW4xcBOWyxXro+(GS1^S%QJ>|gBNLnb@#
z8?pC9h-VX~jvD@fMMlDyXG^uErXPO)Opl3x!CDvSV6Pkn?_!UIL>8AezqDi#8!Qlx
z@DntTcrAesF<0SjGA@bY{|8@v1d+f++igEkwQjh;R$tJ+J^$Xap{w1)%0~;jq<pXl
zV&kW`*SCH6%gWymqSd6Z*i|549s%FDekXK!zvo06Mox@^?oXc%e8zoJ!2%iDdn{`j
ze831?U&pU(a+dHcl+axNH<DVH3&OtRQ~i#sg<YszWfGj!oX^G%8Uk(+hyqVUgdaP<
ztsERF@4gGR`Lgo1T>h-A%<7@t^M=qs7Xm0F$#{f1uUQwr?Wd^{It5ZrNDnz_>X$gY
z{9_<#mSB4@zB>?+ajPzSQ1+<tdgFfLB2!#<osRX#pI0dBwl(J}tUSEdD1qs)J+lgL
zb5OmU;hLE^<Ua2#LJ=E3r@7WPrhymnagHZ}s;akygyc%IEoVI64OAg1DUhWUEz97I
z4GjMj8-CnZ-hG+_>3PYN+#t2h0=pem(f}qVrk)3U-nM&N!+pTh14is+c58uyn+51X
zJsi@(52d6Ggvuu0w;Rl1|8*9%zuk<t17Wmf<<;M)%POi0y1NPg%MyHMUaA$0U0dUs
ziFyh5VF{{F%gW3)Gcx**DryuQyI~d2V26|qE&6*C3(1QS2Q)zN5@oS3%TdET^L1UK
zK7CcLPq=H|6us}f{7eAeVqPJo2-5;CARs1$qhVT1B;l)p=cKydRmdghm>h<)vWAZ`
zl(4sW7%>8k>b)h{{0$T(<@Gm0YW|X&@40KwXs-wa2f4m~k0}M)e?&9zq>VEMa_4;<
z43B^Zt(JLXD@Bb=t;$%x+ZLZlVn$gs(uIlnpeUvZy`-L94bzdZpmzKIJIVOjWN3K5
z*$QBYLE)1$%h2#BiVy4(?H6{+#XyRUQO;!y=yghA>%fpj5fR94*!pdA4iG$+facCy
zax!C(=nR??&T9NsSulPg5A-2iXW7LpWrAo^DMUZC3LqcS^}FRy7P5Ix^jGV@C8zTf
z$xLnD)q)ej>&bm(N^lhSX1{lbXXD^dx?@8JYM{cPb`Oz%^$|_V<aau&!5I@v{2>a;
zmhVDDeqc|DOUNzKit)a}d{j=YF3m4bx@F|a0hLab=H~~kz3ABBoQ{BFJDE{lNVv1*
zViFb0rchF>qVAdmg`{q>M;1`2>oh1?+@R(Ld9k+Rf!Xiu>Sc(d`~;|a;4%v)Xf&Q$
zZB^ZN6%0EGk{c1mc+e~#%uPl?Q=#B@Iq}Bha{6y8mq4S|KvdNgR-~suJi4r^LJl0w
zBvu@E11puEa^js14fYNZ4k(KiHZ>)cpPaPPEhgmMiU&Kz!AWQL<#2Cq9_<={mIPuf
zfVWWyK>ZFuAPZGAiKpCEDyxj09SgmQ#*dhqc<()_=nGa@IJ+*p6BM9rYVv6Pf*Z>v
zom}0UfF(}5(I@QPKNlIio*ph}m5F0vx%A3TS_-xpmdw=D^zE)xu(%~Z5jbpX+8R>l
z4gGK?C+XeXCWde6w4o*W<Upk<IkkWPoReLJ9CU2l?rm8>f4#t#WI?4A{U3xR=dxIG
z3G)*q-9QyX+*W5d1>J;W>1LKt`uL!fLC^ZqEF_>R>aNcZ->iPH043CrPy#2l9;oWT
z23EjjGTX-h$W)-_I#Q7&q&AHcREoxgMybG81}ETKu~a}On&qJzCU}xXi{YRWMx5UZ
zs%!E0=X*IX`WCF_c)T2DQVLxrE+#1=X!Fahd82mU+11t6G|aE~vb37M_|1eLm`!ne
zgdkg?iQpV3cfNYCI!=iIG|QjU+~Eq<qkZpS6Xv6lSz{dw_I&<E7u&;<Soro*H@iJf
zM)#w$G3<U`k%Sy<_-al%5h8V&6&2$M?BbiUvN9v#WiSl7KV&eZL&HN)A32_L+kt%2
zb;YLw7Rjikof^wk^e3XS)ZQ;A{O8+&39yU-<?hzVfGvI{A)AS;R4aMHy`(gSVnvQZ
zR$iXo)N~(s!b$YBr3Dph9oe0~ffNhN&yNr|HF#oj;7wOiSN<x(%EcyS2xxlf4a_=Y
zCeM6Yw#$eYx83t-kwuipRxohTx<eDpB<FzFt+zsbTzO6S&(C7#31Qmc9?8MM6rmj{
zb@EbN@UOtUi-dH7nYN*=#Uc)M-tfMgm2AH%#%v6Dw{Duw5M4jlh%!!0><s`EyR&0Y
zJw7UH@QN_Lw$<8AR>;Ce8z3|o^ws0Aq-)M<ORWJ)>woKu5mhmln^pGY_AA4u&$#FH
zcMWogy(o$;mkalf+v%FZE@3jVG?V=Q&`7YqM^yVHn3@VSpHcHon?9Ut(9l%&Q1mh>
zNTb1k7EC36ZYkzV^JeDLvr)==97&5;#ReypN8mA!4>V!~Ta{2ydSCTIK2PC4CdIQm
zLugXn5*j|?P<f5(8cu^W4Mog<+I_Cd(o~xf!_ZxSPjXJsV;JTI%;*7kA--+5zMuU^
z^1q+2`SS`33S#_y5wDMy10xvyFHq_J+VtJ>7v9F0uS-B!xFK+KQ|pnq%=u@?L6lDI
zLm79O*Hti)U44ss?x=2%f#183lBNJOrTC6s?`O#{b20W_(6Cx-uV+b#m)hz~uB=th
zA_D+g1EpxUJ$knF1d-(jcdG2;05OO({pXq5H#Utyd*WYavw+XOr1nhnf8?^M0QJ(v
z;SE7{we_f<N4EausSi`2e^FEatB&hVk1$}U%7(|~Oqeu7Qc0RTOvfRlOdefHWV-l}
zMZ#*TcjWW9qXNV?2XyOe$UloNkul`<&{TF_bA#IL!yE@>CbDfPm=udNqRO;-ZojQl
z-p^n~`25{yf9k4FgAM+Vi-zLz>-OV}NYbR4cAe4J<7{8xMon*lMj1DH3=8z1=N;F6
zzW5(BV1u{BpGvbr;tm7%`4p8Z?aoZ9s2<jjMu{Cm)OCZp3~EK%rwp!k6M#Lt%%5dJ
zbU`7Gl7h#{ONZ03;)5NvIYd5z$h4f^jS7oy-)q)XIkOzGio7C2wX&GZmACB_qupkZ
zgUOE;ic$HVLX$p=6e9{rA_SYq|BB!;?T=V*bxpFirep2kP*Tt_f$T($-lACX1<rSI
zDI3aur(q>3*_L-cg7oGTZFs(q#gAOfxpxE;X8WxQ+)vn4mzA*N*(Yici`>*iStx>~
zNAmyCbe2JJv|STU2*KUm-QC@tu(-PgcZU$%-Q9yM?(pEj-QC?K!2{p$R(-#zg(_xt
z=01J8uP#sTQRU#~R#C~2h7-pNgrOB5xBBHol+ex)2*wO$!3z2L{&pW{Wu5UG09h}0
zT66zGI7awI64=m$1xvmHgDWF&LK=duuX(R*n}2EPInZunVd31-(J`?bp{SD!y{ZL;
zmL+6|L4O-UM*Q+ft<`FU3Pe>4z~GqJSfxgFOtx=jZHJ;pu}hTFMI+~fa*dKRsw@4C
zg<S8+i}NBY$~fYH>OJrvLwcCF5noPIP*D*H6d~OtbpM0#lYZgxyhiz8`2gP1QnBRg
zK;+Ii^-4_@Rn;JgnU$4@#mJci<LSuE)9-ZjbP9cum~!G&Nnh9A8B6ribe77sZvI_u
zjXW{)<^em%WqH#IcT8Nr?*)qHH736=S~jGnb_@)>N9fZxX2taF>~6=~?<3}ObN;5l
zqFuaE+_l}me8!kXE5PvI1`esz%C>&lPj~#s=g0exb$h;7vHV(f&R=t{s7)2C@whHL
zOhst|bNi*!Hx@1QTz7|^p~oL!Yh4CXDII+JE|*<*D;Z$=m!rvKeLBMj?wMi<jpZo>
zZH6=*m!|K=2ic4{qUIfz1-m~bT)a^Cu|=4q{HvRd_=&!W-5te!JwgOXY)?p^M<8Or
zY{8$_hXeh7HGN7T&0+)|FIY-`Gv71W%+1JRQWI$n*Mw5Ug3%gfKhGVkBvVpZYwD<|
z>dMcl1&XP#a;6+j7Z3r+2pKnZ-lnD|AfE=(R!?E@gn+G(m}@qh;f!j{_|HvH6nd>>
ztX|2x{W#Hy_=VDZ%RNIcRC25%#t@8+79}8-Mn0?+KHlfuiYu=Ufyl2dl=ZFgC7Qh4
zitFDlY_+dCb%RAydfF1nHOegag%Q}vyG{(J5~74-woWTg)OmI)63Yfe<t8mH{p{kN
zq9EmATT;PDT2b;l+zkN<iIt6Q^q+7*_~hgh;5Gr$L6WB8;;{W1l(OI8jE5zXH!Tus
zQ&9Q5m@+f*tgNj~oSmIlznpAa#7M0O8R1A;JzSa0umm+_*nq1lOjHyR)zwpANZa;&
zgef9T+B>lF11~R`3|vp~0K2H-TK{GNU@Y_9D)Up~&rP0tjw+Pkf70x<{=~Dnr7UDv
zdt^hwl`z}NA5lz*yi9bz4+;2qcW;JT$U^p$7skrVD~c=X6GtoPJm`DG>Pwc8L1q*q
zPqMcuz*trXKykbQpz3r%kb<Jp?R>R9;EqV7lxJ`;q`vE;x=|z!SnKkGo?vWP*P!##
zAM%mWrMY}AeuWNeY(0BO%G>OJb}IuJ7${*#Mn@wwxSeq=*64<TGVAJ88bj}!-Q^Dx
zfx(zXNT_#s80L<T4?tLR&L;K%d~L8`300&ifCL9#d_(b|>6sZ(OG`_L2H_UC7f1$w
zDqxv>NAw)r9k9T?oKszNZ9`v5JcP;@dEH>Xn9nZ-^97MiLEReT$9UEpDmQ|Y<m~LM
zg8Uf6Vij+SViu9fRj%MiPv__;TYE<bppT)t98DCJE^?=2)lRbLkOyD5X=`ysld)wW
zWGD>EV0yEW1|~y9GvOAiV~&`RI(As(+!rK^J<gu$YvB%SQNok<MMGL=+vY1sC2%;+
zvM2ZP6b~fqMleFRo}MB!xmoO?tO@1CL*U}zfL4Vvs3EP`>22pjKq{|>E_;d0(kc@1
zuv)c7fgz8!VvX!s5fb^}!umFX8lR0bo_Uw_|9l?m{a)OKp30|gBGU}V+m3Q43agbe
z@$kUfL5=tbE|;R)b9_ErO`M#ve-luw8|!Z)OT90T)8%n6aq;lv5`74UB7S}&7$Omj
zG?pQCfH4da%PlXbW$Q{~(e~Sd1|#08sEoKdyubr`+{xvs7%j*J(%k!gR$~<a@=^>#
zy0*AeN6_zlYMl_jwPmqmbU!*<g(!ts(rA)L2{F#ZxM2S%atf7_dW@^_%OT!!V}?e)
zzYW-YQNr@@U=7$5prfA<V5B4$o2+N?y1eiinlPY0%U~$ZFYNq@Nw2}i!y%!p%&gmD
zZwkQRKH~jmGli0{S?i9tu6^f7K*;QyTpf@dQ4;>=>bz2wlA3H~muH-2#7GJ_6pFDK
zi%FQIWF^nNJ{vyvb<b^Z=0!%r-G&JGJY4K;y<J2x=(Z=bAbd3R{1!`CT(LV`8G!^2
za?aa5p8-z8WC|mr!1I{l?S#W76v%N9w`}jloTh{ZBMRuAjj!=Npx?jqs%}43hidvZ
z>Fz}3pY|aR`M|vL1eKWt!?BdhkX4b}q}Q1|;(E@|x@h^FB6`aBQf6TM6m#R0qos>#
zg47`k7Msy5JU9&+Ei6RH)wE-%3C<9WQP1r`p5~*9gzxnH_k9tpJ5p)rLMtvV4w#o}
zEvM|eo||fBR#!(~y<EHi%FXsysWl!33=}q{7dz1HsAd-$n6kzHpF2A-y&`h_K(6ZU
zi(;@b3|&+iW&slj<?CyeGSgPLL}7^qS$Z)FrswxDe+`ekSf;p$f9Wh5YLB1kV#8CU
zMn45Q==m2@XcU|n4njzNo?<7;f{C~`866$-Tr=#9Cc$?x+EV!h6^negA6s^OA~>+N
z>BiciYxAvL#F$RPOd)Rmu2=PE?4%b*3&+h_Qf1ql7|hRT<B&sV?LNnLlyLkU6**MQ
z80_*RXf+LuI@c3`u%$alZ*T)QDR9T|b^>sm2m{{I%mj|FgrkWegN?1Q)ZwoNRV1V>
zr6CHazBXW>w1rGj++pYW^Qm)kuDh>sYd1Mle)4$RRstACA}%iMxfri|L&D?3*D&3l
z*P_6AfB$5o!|P94R@(_WvGGV^2+U_y^u0%a5tPSZl?2VMT{0!@28gXYg_^}?-k&|>
z3{u+}raq55irMuRh<8UGI1jkl!TE}@qZ*EEm>x3db?p4u5zP&a3n`1Mza%2&qXi>P
zAcXVF>mmSzke{B{?*oDBJLty-kFGQX$BQP1{XOD$858C-5|-Q*Tf!^h*u^^VHl$V>
z)z;m~#YKS@LQ-Az<z>iY?$rD~#Z|!jOL=*<#rxa8#+DZRN1Y#6Pi74k_L^%h_f?pN
zTxsMmuWCdyLfC-JAT4E04=4UgA|s=1;YuS@F+>x4Q%sRGf)YyFvgMBN^KiL0m-j|}
z`rU?hHDgWL?{p3bO5Me{nG?+Tw5A32ica#}DF9b?#Uno~jCiFlhWkzU{&HjN)_iQ(
z!sUFeB`@&J-{3a!?r9C*!DJ%S56~{VEEhKYOPK#EytV`PeL&B(-(1<buzR$)^2Na-
z@zz*Xh<@jv!l>2<-7TY&U0{LQoqAi35wCt9bLdk_ebV<=KQT@}BuW;Mb78^L<p`vy
zJJjj5A$7(D*LILv<Gh$*IlD3wL2M=>F)~%axuO@#gEdDt2U*e3Er`$$NhJ80lq=;I
zm!QbSS#TAwkGUzpv>4vf_T-gk`O;R77FzN&k$asuIwU&}`(adL=UsP+2HYgm*KGk$
ze0Tgh>FnJZlJFe}y;5+hG4gx;kzj$3;01G~r_zIhjb(5(x@_-$`*Qcjf7chCmKY&`
z?cMp$vXi?&TT<S}1IY$FzgCwmD}5?+iJyB^IaiYsN1py~bF@e$iPI+cKV%7i*z~)>
zb#)0q!Vd}xstw3JW^A#BEmUftLw?rDfV<6hnKV921q-y@(E@W8e}-^b%H^dJ0J%_h
zbK^u7x<+}wFR4j?%fpyooOj&$dNjANU{~R{4X|-2yZ&A9kH1z#wq34rJFTv&0{+I5
z`ufqX+{~_<+Pe<x{_gz|#c%FoWX%tQ>cO-tBYwn>qCGdJL&wB8+lNzc_)QB3^Gj+s
zx!s=pE^8JI&Igf+n;lAYQke9>fVR@@Ae@w>+8oAoeSV-OchigPmt1!Po3va~cZ-it
zY-whjoVV^rJd1oCygl~*R%6zX0om)A_4!NFOS7O+xMpIbFus|~++^DyhmzR|5$k}}
zbLH{FU25ScSYW^bT6p6sD&&4DKuz8Ks;CfyG42d)IBZ+*4j={q?Z*9~4U7c}q=Iqx
z_wKPof};TOFk&zKZEpy`9ThY*pl=~FJnvE-v5EIRZvZn&7YXUiD#h2iB05~K$gbIo
zAZlR*kN+PS;g^*l+qL$Xzz7wC`W@TLfNj!Z&B;?$rGl#U$(zqGqLStzCsdS(R1Z`s
zBlw~)y}dzUIQaNQ&84ZQnL49mmA|U1i~N*6YKi;Bf!|dB`xlIL%(a}K0%A54WqjF0
zm8|3scKx_HqSVCH61qg8it<iT`UVzt%>}X&s%G{7P|yx&g!}$%7GuaviF(K~vEq$r
zjfmKBq0T0a=LyF}+(0lg##H&-d^ahfp=UPLkY@+{-J~$SJ>wI61;R%LNn;1o+8$TA
z{bGf4!KY-}!<-|fy>?D;A!Koa_c*Fg0)k=Q$AZ4;DV3@9zE94F6FK5OXSOds@_zy^
zEF`Vzqm|oXsAqjCVHIcrhY2MZ46f4Z$_5%dqs4@jZO&}#GZb$17_@4Cj6}dfg@t+@
z?+j_xJAMWX9>?eBpQ2;00gvgZhSG{cD4;BZR8=RguUP<+0+JXlP-daBxA%x+Jz#<Z
zoSnpgeUEG{Ws0>mnr!uI1BEuNDl~PPTAAVfpU$Sm^R@1{AZX;7xixvO#e9^boR*(n
z7Z=R|+4c`0P!ekD@zoV|edeH5&M?7uFfgeC3x!W&KKcGA-!zwgfHHsKkR?r2il@#(
zMxB)xmIL<<FWmhm@5rnf`Yw_x4Euc%$j>CHbHZl7>=p=v1D$OCsm!{QeV6w2D^&@R
z7((Xe=JQKSKxjycNpo<205VC{0$l|-GY?mI=N1EBPM~r@=UC7PfVM_NIO*tUP?$<A
zA5A5lv;#t^{{MthNF7T>lNmHpgfnc05sJ2bRxx7oX;eYzyu*8-+@R9Hg_hj(%QzTp
zB7j_^`g24E#29njP0{o4E_}Z!Fd17U@bIqj*LgC-Z(-ajt!iV{PCGG%aZHM9aPT~f
zm5Koh9fI`7g(E3FEH=6riHHn|2pUA2F*Nfsimk0F)>WmMY_t1FqDAAR^W@28MSFmn
z`U7r;<aHgh@S~!i5V^IK<>X2AWp&Huk>BP~L<XBVo3+WAUtn#Ad=ZBz3Ck!6MKH+u
zUyB3K62e^%;HR*dbOw{lRgZJ#qmrjLXOwhp;2nI{)))c@aH2;=esxMwmE>!HO?*@Y
zS^HT<?O2gW5sZuPzEa48{}^FtH__3OGc?JV%(9WeWbpo%B7;9mBjp8=g8SK6FEkw$
z5?Hj>Px#XgU_xXZ6hbwJ+QNLvl4RCmNt1-fzRq0gO6I65rVXM>a_jr1#iImCQ)IV|
z_ESp&hZ>F59~D*jU7iDn$S6A~(#3kj#?w8iuu%-^Gl1XlJ&`xuJqMnb7pn_;{!iwA
zkQJz6P3gJI*_SkJ&o(z}xWoGd8XORg2U-2_zEsU%5dwp((Lv-vcHMVO7<f)^vtFw#
zFr$8baEW}{_4ATG((?I|6}~MX>}TCg@()#b@IrZMRph4>f+AaY_zlPO?TRswdO3hC
zD67XL0Th)oFmXhK?i&cFL`pK)i)iAZ^Niu(mY2tzb>s*8C}m(oF?4`NG~fxcCk=o`
zsyBR|9=8I*b90$ib#-BjP?F4_EPj)J>cYb3*}J2Vh1pI2g<;ATBGTdQ+k^eS*HE$$
z#`OPQfTu%{^#Mfph^%gx{wV&iJVcsZ)VkO=b6imjR?|U*(Sv$QKU&GmQVA-@b6<1a
z3;{eRF%&=oqL7!JO9qvX7ZiwIcHSwq`?TYx3y8e;{J<m~u_bRu_>#(KIH?MKKPT+P
z2EcDkK@QA<f`Y}`rwSA#v4Hi$4uM!$sfkaDphdM(y?n{04L(5`u94cFbKM4gZ+}SQ
z$3HuyvbOI%i&YTt)Pg|UHsizuQhU|1ehvB$?m-rpLx$q$s`y|!0RcP5mWgvID+9lk
zN?bg?@$Ftwf7hiPK&AF*usO2dd>hhawVWg<Rm$iSd8Y_Q^~#F)UP~-4S9wtpY@V~r
z&K?NkyB5?e+FO!Q0s`<UzceZ(R0f1!`-N*y>b{(BaEGGxaXsOoz$wVqn*Ao*e4A{U
zUI9@fl#u&N-mhn6(x%8+B^9`(CRzL>DK@BSIEY|W$Y4tWVW^a=v5caXoi_0WVt5V}
zurQo@7@e7SsmhiZSoI%Kbo;{CmZp@#0zP`|*3*hgJ^bhm0?#MGppZo~9Kg;w>b9gm
zgvh-)Y$^1@>+e1lB+zvu8a)GqG5&R))-T=c?;-DZU$N(M$if8u&;f^nBAwgj^ZC>f
z;ESNW&J-~uv8WLCVU_rqf>fKEhW%6LlHLCrTy%QexuenMga=8=pDxfDqi7Lp?wOO9
zn3qqci&{!UuWl@Dc5o@G;tQl~MGwC^zFrlL$ZANPb#|{6L5RUL+ipg?(kT!U=I8;G
zv*L`x_4V&HEv)l4ZiOO;Q-NuX2*K(b_1>%QbEym8DVq2OwfyW!AwNJDK;xFP7@?9d
zPkeB}MD`tGR8pUswuMiAjOZwfG*M6UHqa+T8bC}-Sy1bo(xo=*$vDSB8E#@mGji&N
z(KpJN3by?&t%+SZsrCEl?XQahQTjM-gR+x?MMoWcP<)fk(lu}b&ZCS<tF@k^;sXZw
zvoq>glVlAIrCHb-#T>2_yR~K&x)duLo1&7EuO%F`P%)S+u=M8j-m{-b6{8I;6(E-_
zjrZl0W{rZS@=<kAabl*sa_PQ_^6OYxOy*A67~Y6=z4Y_r;_*%vBqV3BD;W<qBJI-r
z9>!s$kXq~NqlsqNk)Wps({v_<O%`xTi0IlttISKdxZn@Nm4M(s!XCiZujTms(&Arx
zL)&Y8+FHo$56N)C1{M6qx<Lq0lr;p#nmaBFWhheB7v_Y-Qw&)d1=w;3CEfp`Pa33o
zJdL8EuhzzXO2S)NCxu%jPw3vyZ7hfraG|Dg4r*!C=#L{BoB4qVFC&u+%#HA-<>E_f
zZ|WxU$38Zfi>X{^)^sK2Eqp_0j1+S8eNx8$&}Xn;WHa-d3iQ4U?#N~4-5rqX$TsOn
zW{LGpzXhasBh_YPgVuen{&RJ8onGUQDCjK+jTSa{d=Gqm@l_e(>%c)!7Px`z@9(cN
z@Cyynjsgl|8sT~{M44f#I1CGZpCON7tc2Gst>FI*8dKA|s<K?CTdF)+YYe_#9mA4j
zU7cQ8vGy@ECnY}#az>HDX>l5pM)JVMZPOS<3kjy=gSG4i`f@O=6WLskX^FNPBjifN
z0^UFAZ)|WhHDTk3_e;siB_vG-zbF`<)WR8%y|+zyrhtGt_&5|XP<3*KkR9KKpkVTt
zIT<tD439@F&%!Utb7R{;$Ek9mok!QMnd{k1v1Oyv0@Hx?C&4mKCxW?!6#&*a20T|y
z$5I&?bQ*{6^~DXsz)LpKz!7Cy9NFof_h@=)%QDZ}_ODRCeMKf6CctwRCy;FPXq?+z
zw0|Omp)Ze|YfJr_XZkuvntNXp!Rr5UXL;g?z)#OY>Cht;B)CV}<8NIkkMwaxb13Ap
zMMdT5?z$L0;T4hX4?PGCEI0%(HCW!Gh0umC!y(`VX{<(mH5w7;S{^Y;h`;Y`dalD2
zMVXzS7gKg1mQQ6W)3e@fM-B+5VPdsA#qb$NoKBXmh@PQA{6L|UmoNM?{6hM*TV+}%
zW0f5nHbWLxLPi3&2*GB`;44ln0Z|d3FE?}NBieK65F}%e-a8n&e8FTlUjbu5mfbuf
zRqCKuk6&wU>EPDLf}#Y3zSewEY|zBlZE9!Ap`J;TBBz!~w#!p*hEAR>mh$e0&4dU;
z4&b~C43yIars29x%C8;Ws_hSgKSz2Ibfe&cWfOz50Hb(X=RRd~ORe!F<G``u`R3YJ
z32R%bX4502P^d7i|DK~mb>1G8zmMNHYVeLo+1SC#TfEwYz?(D=YPPPyXbLN{>pG)A
zz!Q%ZHeY^mb6O6aj8)R~VCI4wHJ@ig5WzM<DlJ%_ek9VtrvpkKeEBl-W9<0LH7Ws4
zNfHBac`Mm;z+yNmvE;inWU+e!dy-tk%<VBD8}XhgEYuFmj_;auiXZhcW^%wYJRSt9
zT(Y+RUZ}^UTCEno*9w!}$38T2L|Kyt-wTAQ{!5}-ssFiF{JaFWb0scLVzyah=WHD9
z`|w$7zofi8f_+LL=>rV^Asc1*$z6`n7fZ$?)H-Yl-Jfp+CHL{+wUHbLRk_-O_?sQd
z)aaaarsTYRd~C58d-$<zN*D@m(-w^a{6FR5pntw^;Z`91<F`L-Oyu)u+;x}ZFf%K>
zz*O%B|MC^Ie<}!)*>%Qk9C?8-$I(VpC>6mt7YAbk2jY5{2Lmqq^<l$*6JhDRE?728
zRfku?x1s=mUBW@xqw7lxC!e6bQ#_Qr?Us_IWt{ojZW7wqAcxnp*=_qThcX%>9#egd
z3U#1vSu&9dMx_s@e|XqQD)dW*sj0+)%FpSHm?H30=|w<oAJQO(s6Nc-0UXd8x(#@b
zc9s+9vbcpO|9e;;1BzI!?W~O#aOu-I%F|*em3HNRvw5qVr2JTqkFD!;JJSH<^kI1B
zoHu&rtO+r=X3Jbg(DC6j$?=GccIo3Ox5Ms2O<OjA(d2985D!NKh0-`y2qbzZYC#if
z9x0xdhnx}=FAuX3dhp{WS!R&jF$`PU`R_D?SwbL75X38~l8ex*iPd#}=~j+U=I9#z
z6QnOug$8|9k**vUt5->uC%`l3Rt%}G&5};r!3^f%hrS@ZNFJqxI9lC5+bD6);4K?B
zp3LTjA?0xd>?SP^mV1Lkt#74Q^+uZlhf`TVG^4@V!A7$ENTlF)oFkHqO%uO*>1<zA
zbNjUBCvX_7cie&a{+CZWj_6=Un&<%Nj3AXoTU}jkHR^{dRmd3?2{6o!(McC<6g+Rg
z4&@xYeq#0ww5je|rL9|0%yqm=_bQ*L;u-9t*wp%r<B=iQp$7*nZ!2*K2=*hWbGHE&
zk<m%LIah7_3vjpIZN2~70;oHgfGFQ$-GuP>8=P1bx<+Qn>*J8H1!#)`z`V%W*x&~R
zLCZ$>+S`0p!CB!umxz4EkBRv75{(>`3S}<)cT#kS2UDn5i=ZGx-Kv5@UF4gfcQ!ym
zze}L6-cBxoZ@XXhxY_A`!|Cw2pp;bwkojW(IeMh;tBZ9-u$pvip}Lr^4}WW91S%HY
zBx2i_kqeK1@k87W#&4ZZzUSz~r2$4i0=xWIb#-hV3{bYgP0@igv8cdvhmF{4nyH>U
z<)IfYI`#KijMN!xBQ6z!m>JiP#p#vxUU-AX>?!|CLmWO|NKz0MSZjFpAj<k8JU$SU
zx_PJfc@EDsrqRW{IzedymSs?OKz4PFpVw^$?J%1y%^R!)*4Ufg`M2(I<%bX#J-f0t
zmCfstE^H%*r06}?p=KSO3WNIdOq&T*iN0e@okJr*^hp5YEQG4lEVozG&sc^w*6S=q
z)5vu&cf)7e2z)@~6HT4xo7ke~CCS9HZSx)Hg-8q|ke?g&;b_`(DFeL=)u32>zlLK_
zi_p}R9UT|aeh1M7*@*bj_dk3UGZi792e52LeQxPj2$0CUK?t4Y2$$J#C=@oXc6MHJ
zVic3N5Fz2k*YVR>Y4g#)KXql=i;4jE8y4$XvMLXYXS%6$TrH4021>$+S=zeetX0d{
zOa~P#CbMOc;@TCZyI{wUG_W6VH7b{r8WyYd$3EPQ3*YCzbKV2te`JA262gm%D!sO!
zK!y3Lj;^&C^ovHj2~m{IVS@oFWZ)VMrtZwETuetQRMHxzce?+=N#*hB`EEehyD$P!
zgk(KitcT4ni)r|L%l)`+DZE1v2WO1dXnrRD`JbO(cEFogV`Jm=68DH50cXMIll<?u
z6Sp;D?o?#gQ~1C`ErW<ibgW?B<mPh_8X6;bE^_{d%KXsaa=<o;-@lDw?Ua}-BIB3I
zi{wJKIjGVGk13L(B3f;#X`OnXDTBmk8hRyuL<PiJB#IbgQG7)YWn_KvFdROPf#I$%
zt`ABktAEO6$N>=8)$HctXxmYC20DA=m8xqPy>n=}z30)cvb@Gklxe(pt(aBtv{g>+
z$qe|9>%+`EM$(B2m9ll|e+{s-^b9(!@fi)JsG+-%Vc3fQ8I<WL9$Q@%-0W}-GN<ua
z>7fUI2HV*+M!Bn5G#rpL_7*z(rvI89A0DOwPJS@*X^ah5JIRF*xQE}an27<T0WOgi
zT6|65Q&%s<ThpBiQ<~?SBzB?&fOtYC|LS|v-6dutj}D$t%x>`~%xz=D3j*zxy@SFp
zj}R->Fj^-Prm8}cVWg|>L?^MSLTK^>9<X9}<opeIU1=lpRTSbnLNERCmNX<#^?(s^
zZ+%QeM_KQ|%fBH3IzN;*e9XL%rnIdj#aWeJT1S^A&7@+14)|MEU|vTfVL-e!@BR7Y
z>i%%(SMs(V>7$RO-L+;0$wor+Rc#b=m48(>DfxTTX*AwBJ1d84IM8$ctz1nDz$wht
zEJe6T^fO)_t~pF1P)QTKUL8$0bR2OBJP7FM>Zr&8Yvz%v4E7a452OQU^K64_p!}ot
z*bAEl7&LWsbkDCkX8Y^Sqr4XA4dnoXIN;F*(kmwt#xl~<&>%VB#{Brn=m~uq_K;9Q
z*V~{eS&z`%o@RAWsb>sIKEmHRy0B0vuYc+eCVQ8J>jCfoIJh|*jQc~fJM0CCU)KUC
z;y=@=;t<vXFB&PSSm)<V&SUQdQEAD;k|t5>iIcJ%C0!qA!<SRdr}eZh*-{QmFz**q
zioECfZkC7S6@jC1_Nq!4h?G(sH6^4OrXD)#J(y^C68j5Dn_F8ge9Q4mymJ5x&6Ub5
z7_(9~Zgh9ZsQ2gfE@PfMs&yT{Ks1<IAyfAl_+JMFNn6=mc<VG9mnrQFf){%wI!F*x
z<U)8|4q1He8D`a-Y#RqB0W0CZ*fs5XS6cVp`n)-ew9g4=@Ok5Zn^OIl)-cdIdQp`U
zs7JV8Q&Ye+nsnJ6{(>!=?)VFJDw*`=Z<j@R+p|&3`-SjRmOz6s*5FtJ*KON9d;k%G
zvc=<*Gj8~3J%q-+ArbHqNMxJmsR`02D1H4R#mVf6HHUgzz3sbiE(S&Jou845URG@i
z+URGf=&Q?Sm44RM9omnPYX^Dy;YiLWvL=H*xSO+j#z3>`N3qGw&YnQi)F^1v`^-+y
z>9@_v<wb)zW=mT=uD%NM{X_m$|6gtI#Cf|FvUmVk*kHTDrX=`R4T*@ShdfT8Z!jjV
zplSDydf8f+J~mF%UH)Iuxn-GCBmbdP`(-;V?QtGqLpuWajsI9waW%V6kWs|G)#whD
zyaoDybi<-cIyt#OSmv~)a@tJRM&C<Gkix9g?g&f@zw1S5NuuiK<a}k<f${eCd5RK#
zSB-2MC?M&+hjK9Kk@(>^81_j{PJ6Ke)hhEF8&pO?6A72bFoE4P*?<J8X!>-u`*r(L
zXGm_Fi{}vkW^cenTaq?(T&)quPMtKdsjcfc+*KGFImYO`>}fybEWEZ=51MW;LPS3s
zx8DK&2XrXyzw;E|JN_0FUU$|(hix|`RNY<aaG1z2S>T*v;ydR*Q~d>vmcM+Ft)8No
zfif~aI9&lMnrL&dOxPWp-#sQi^qTnHJx+K32U>R5z3bbn!`shAjjMceQO)TU98+>y
z&;SV>yVr%W4vFgGDA+*rqgTTGrhF_z@C>6=DQ9#XcP^q3O@-#<+^W#e8rnul*WzN!
zEZmh*l<sD_((3VhXa1m{H3}XnVj#>N0(tq;?Qhu(j+P8@o-q6>&mfeaf6t~&|2^Ne
zUbeq0;z%idS!EqBq2$nBUO2@svzBWs`HK6N8CT97j4amJOXvC-M;xTA_wr3b#Q0Mz
z3Wb}G1C((%LN-1q5iL!QiAG1t6(zWO(ZO+1&MUMc1t@oqfGR=-)`hHe^0y=odu4Z1
zib(=5ASIwo%i9Nh?l!8%RlQLm#5Y<d^dy_R-kd{k@Ge!VoHbg!NmPunI8j!T0etBW
z6S4Ka?>Llfczqo>K)blOXcGprq_QF}{vCoYzF2E<nP^(7z07v|sK%sKEvpCaKkRVt
z*6Tiaugj;Sl_j4cT1|Q6FJ~F+b8|`ke^zl$7cwvWFuN|ODG|iUaCOva^F*OP)6rwh
zLeS<UrskiYf<GO!2D9yf;Z>;>Pq@*rss~wva>^QCYy)e>D3FM%V`4C;JCmOd{m44s
zEPyB0TXX0qRLNrs<HPl~&U-tDJ;yb0upj#eI8&?5nexLEp_=zhL9eVU>)=r1*3*ju
znaF}*C4uHLSP--my=c4Mn6lyXaFg1i7ZOjJF&kUE?S2KZCVaBS7>!wV4G``h6$aRS
z8R{2?9XW!l0}W|Ambcx9nZ0kKcmw=$dc})gr<93|fl?7y4_8nu*(^;lxNK~(lO{P&
zpmO0so@?>A@kYap3|pM$H){=Gdygk8)KK(%+zETS#da{7DQ`&ccEl3=_n)hqTLO+G
zPN*3Ym%1FO+i>gVxFM^+*&MoFAIo@y4H$#1QM=QrcPI+=G3qh~(-~*Q&LDY_w?VZv
zgatud4K(FvrtFQ=|Cif0&B6c7dkiNeyZm)!$`{QP0iRoNGOYRq8bA!h0cnM3jmVt@
zRR8C>yqmu@0Z~)__jAC}1&K&tI86A~X>hROY4CK_X6tw07wD(g?tl?4$~Kp$usHwl
z$yj%vf388(LFB@mi{y8F#Z$+@6BG>`V^?h~FfNGpKy;$^Uxo_C%{n5!R_FVtI6L2H
z2fr8Z(73qkLixO*aqGF`%ge(5iux_Uvrs7<im*R;A^|#1t{rSWbTV-brR54kb6Htf
z<)$+xOfRsr@YwQ0CVqM>YuoO0(ejwoR>%|j@0Y{(gT|yBW#?4V;C+CoH^nY;wnxDG
zsn;2=lh`&E&vSv}!TW0N>?(lxMBqHn1JTnHAMQ-x+zE3KHiXnSvozM){?=zHz3}Zk
z&%s854b>oEjuq7?FNL(Hm03V=@O}{P{mU0I8W!3NkeZtaLFlng-=1#EG^Yz|1QIIF
zB<~9XmEw2uNQA*+&!^vIs`?TJI&3&*C}@xgm`B{HG$6uCr}JTBD#g>18VAr@eEV<$
z^G~5Neq6I(2@BtET^jh0RIw+hQGSvS4SG7ivjEX3i_;zool#PsxR`Gboa)9$V*%NQ
z7)k^H3e)f*3G}fciX|pAcf3XcN^J=Qc!EK0P|#t=S+i5mcT<J)Xsfo#Q0Z$^>&%gc
zPefw-c`L(cOs}p{KeTJj5rzMqY(z(^Z`i>7Qio&<+bEd<&W~+~ch>LCQCZJTJG@^6
zy1eMQ*FE7YCwXE(80f7eS2poML1Dmn*fk;Sf8MX8*B4(*t1Qr#Q{#8%E%dUY40MJw
zHQQ}X&J+#(T0raQPUM2I+p3GI3Ap3061HJ9CeU7V>i5ehtXks<i4m;ecpcAcV66o{
z1kB;q_SQt2$o8-LhVr=p7U|2EBwpVaLImWvTJtjv`*v9tn?nR8-L{|XQ+nc=CBcX$
z___Lm<sOOZp?pr4c)5XxhZd6pE{q@iAD|VLK-fQ9zr)>WD91ykW}$UAa_L)SQDL($
zgr<mGx}Z-pVyG6BqY>ES_GQPKZ_HmwPf;lBrMC$^=hM>Rg8{jM;rx%Nm<QM_Cp@5Z
zjM)Pxbkd}rhEgGV%lAWNGR1*~gt2`uz)IDwYAPuH7h^9H_oKpPOVHyk5c!pn|DoL?
zV0*iiT+eA??Xh3jm%WUOu>M?GP%L#}rXp5O75<5X;WZFJ-){&izhSA`_-eBZa52K0
z(Q0#=ANQbMzRmz`+b(zj{<TgC*VruUz$JY0NtbT{zeD6PQ+q}}9r<&{s2+ce>ZDV&
z9O}Gn^Di42RnmM|m=U#{7oyg*1PQ166-(9fVPDj1P6p<C2ams98YL)b!F97?#yExS
z;^lxVduzO>$LzzJ(O9nfbeiUHIQH(&E>UZ?0`c5lmhToii&sn$E1xdGNB)dHzHo;)
z8xg=CMy_wgKwlQU-+)T`b#}Sx4*;0QBigFRRPSsEv7mh%MZ*!g$Jn0t)x$EyUX#+e
zlU?`z;fx=5S*;{=H}x*#;lW+P(;Vf$P2>grLJO9ioo^0<B$W!C=YYX=KC^3S_!|L!
z9kUdY{EceeH*JyqAb8DEfblw4CamP)k#=Ed_d_jujYPXuEuYYqwphfRZ|YURmo7MG
zD67i{9iPkAXtUF+S#d}UgT#?5VsL>xBsqCE9pr%g(O?0r^!G0FHYRj8pP4>w-j*)a
zSxi*C{)?&0Z1-YrYlwin#bZW7nqZ6Cg)t5~uhM4EU^RsTDmP33A>#GG&~Rv}>lV@A
zel`sygcJnR$3o^ZDYqF4k`XP1+f{p8e=J`As?dSW{+ns)D`$%NFb!EWxhwcm>keWk
zx!h5Q$X!Unz-59hD+HJkqB_4Fu7KVDn{q1O2U;R|g1jM%o7&Y=;d926ag+vDwj6=G
zZ0qn_WG%>|pAy^Uu-#=wJ0f8wn3~up+2h|3vh~?%GbF{1d)xAc2f<LX9#|&YrvpL`
zqv!eW*-H02iN~fFwQTB5#*|;|nL}qFcjpcpV7~d7Q$<mr%&dRTaEXNfAYeihl_8Lp
zaDqgf>JF=S?n(^`!uR89U?3l3%S2rV&XvAbJ|4II{9#Xnnq8teE6`omAb5FA#-q-^
zXE#!NI@(f=H7&B%Hj^SsRX6YrS2h?p0B3wKung&DSX|k0uO(nW`|PORYQ>dHuQRp0
zp=@?(DF{WfG89##TkAV>t7AQV_{i_&t=rTVEycAS@!rIN1zpBh+}jXl-^}me$$!Y}
z${4?a*B?7Dw<Irq1O^LwMJXhqjCFl}n%pd9I=4xbfP~768m7Phm|cZ(yV&qMmm;eH
zg1^NyU*t;I3_P%MR8o1Iv;NC7(PSU5M<`(<JE9`5dx&(;Gme2hC-8FdDQY4giJ5xd
zm|4}SQM%obUf^B#tmH97p5SH{LmT)kMSFj_GIr_b<F%Ldp1#6fR`0t)_IBZtXEu4B
z0nFq-dhK9rzs2sM_4SUsX*x7d#WZJeoeQF-fiLvHI_6`GVB5{kkoUH~?)Fb_$X+M#
z%=;zGZRyIs=X^T4y85a1&ix2Jv6&3O5t-TlWUTXfp=J;tm&V-3@JpF)c4@h|nJu$j
zVkr)oHbp*oFgHL0ymBjwK_>BI5~TaWRSl-1OLek?v+0&<2quBK&9ou;LT`EUr;PmQ
zxwy&vN_x_L>Ru#F7+EG0hnklP;+$OwQVuTpy3{1}Q^<6=?f^bpV!kbItFeTpE`0_<
zgwFRrnwHBtR)XZ;pmxGlunLoYsU?*_(VA9Do=+3#*{Q(1H1PbqywuQO5Kgh#x>HJ|
zC;+5a%rZvP=RYTn&00Q{Js02b^#vRihPvMTb#(b76~5r*lkY&(RIWuLP!7gRp`)Te
zp{3xKPGk;c9^u5s3Jg@OG+5bOk<m1vHA((az9<5@TO2f_gw00Wl`Lpg@>Bl^6h-+A
z1rC|}7Aun&od>WkfVALA&io|2fh&`Is&ZLJSyXH+k`AA4`0gh=wyLPOKBJH=x6<&!
zcxT?0Ij15gb=1ACSE^DFEkDh)e@%U#Job50I;#uRP#p5zg~QeE`rjj`QQETUm4%2!
z0Nu?5$gjU2?BDD^&-`9|Q=qM}_zKv=n>LH6{oq%}y&oT0i2p59)1=WWWO1dG$YVJz
zy5uGq^3&QvWmzvxMT+1Xvm23WH6E)4#{*jueT7_skj-2JKE74f<t2*M>$<prMCY~$
znpn@Nyw05aST0|mv@I(cT5xe$)|j5^Fi!HQGb&t3Bl&YH{WMB6JXTZCBdfsUbdc><
zTa@O1rw0l->qFzX%@0ig4Oec(UMBeEoFtxi_S61f(CdxLpT~;v#J5-=q0iW|E@mlB
z4SzUQR8x}&=uw3&Enz2fWvDz8rh2?k7qR0aDAM^&P0F^dQNF1sQxdH<=2zBby9dSC
zA)ijT>cr&e1&kY|eNn~8zGR$n$(J=BG#G=`CPOvkIR8+tz0;rWN+K@v9X$#?CRrP1
z;dI;n{|Y7$t1ra}F;E3kO#3z}IuaX-QZ19s+clY7nb1^%Zm^zDI+jq9I`W&i6~fN}
zQTfjx$X^OYm@;H*yW3bM<gaAKsC`i2!_stB<(#S4r@N}r*klTwBgLDiT_cf`WPu+%
zGB&5lv;!rjq3jq>H`v;FV?7d)scw*&DDT%c7UP-nK1UR}tHJ}oXHSlE#md{l)D~$u
zB_)gx(@XlyGZq77U~;;-VWy!-BMnqd3D!VmKqxGp*JU-G(}VA9Do@G50pH+N6gDQ=
zC^}?T;J>Ao<;F%X;R(D8>!Y>Dq)_jC{hrA4Id*5eo^Op!&50DS0E3AnQVc*15Vj2_
zrUSLo0|1P{1%?SmTrHDF)kXerXKnW6|Gfa2tfrwkw@Ksmf~)ECXFxGQ4oWbC4olu*
zD%GTR%jDmS_BJkeV~_n?sBm1s*#RkbyF3^}Kul!p>Kg4;(gv*BI6@Kn2|d;iw8|5O
zz0a~vdRlOwhDmO>x9czs%b*9pe$Kmi?%6xq>Kpp~_a^FXdK%?J3;*lji*Co*jLZcC
z5qyK&;FJfz1#RzRG4*~ed~a6U79N`bb2`f;fWFmGpKmrrjU<)TdXAt0Gp(GVp&=<&
zpt;1J7ebemgKbnQ>++_yitVWHnMzTblPSN3lEkb*MrAAfh2Y^~?_*?$NEx34=Pe71
zf286};{KN^r|ZUKHt9-%l@TH35VeyCF<kV$r4LcEg~wO%M7m{b68e1!dfC@AT|%V7
z_@ph3)m#pM%8>@b-a?C5D-r<LE?5p7FQZwmL_=%CDtR<JD?*(hvM{mX+g!C^uQ`g2
zc7wIvl}+j)f-)k5UTggL*yoM};dB3l`B7MAEgn=`uCkEkOVUY+e2vPR0_1=ELE=T}
zpJ;kV7vw#+UN%LSiZwc1+=t2<N3maf77zs$axEp77efHVz}volz^?n1K?ASbez^%M
z`|6Lz+Fyf<{PM=^@YoCt4D(7Ro?=N8pIp1PeH670jOKb!wE&9(Fs=Yhh4{UpFm2aU
zve5%7fMzyc6eqL`W9?oycIq~U;;|Cq!OgewbrJ_&6N)Xrr7Wu^;NSc7(vtLwxobuP
zi1kt^s&82A;_?Whg9e85<m#-fyE~5s?r}ufzwd)X9%b+-1~ejvuw*W30qov4?hSo?
zAU6}V=ye^j2dZ|fY8YSO{i-ovVD#U!fe9^m++y$N<x9Bw;d5+GP!hI8+ioPihz#h9
zRY!UBE=&r=*Qk|+o2I(ys@cr%O{0Pj>-}fdo?vnUTnQS{HLmhu!lC_<q^IGncRx`x
zmn^ECOLkIH1c>N_;=cp;anNYAUq`e!w|E}!Snc12w7U<+4dDNNAM%Q?mV_cjxpXNR
z)4B;{mA8AhEipOT<TdcxRV!B;{bGd^V&+DVi3b@NvX%2Y_g)X$_^g9S>Y?_2Bu$xW
zFycdegcrxNJ)<ykBG(+6UcE7g%!jErl^CqO&sO){rGJ;T5VNgm7xkDZZ753<p^5%(
zH7l)ZO;_L=iqL5OdSLSYc@W0F>p(-ubwk>34}Y{N+Ec|PPhQV=25R%J+G9VKUW0eA
z&!bCSlwWJ@Ep8+T$jzbKOb@t^#jyOOfLD<??s?Xua$f$9$}R`8*_+yYFwo)893G(g
zi<Z1b&+(uUuErR~6cQbXV+sl4J6?A9B;Xs~%p@d58jedOG`Jz`_d}X^b<`C3az820
zkN7}te3J0xvB&U@J>V@+*!ZxK%jN)k^;|?wHuWj9d;k>3<~w!v7*g_?YEffqiEo;N
z#WJNHz7VC^aHZEiMJ{8h`wiLiPu<Yt&V>gMFY*r-kpa%}1N9|Qt@o!7B+>5i-iy<*
zY@6HLX<t{Qe%F4Jg9pQl5-guFMbn1cR{P_9k_AVqFb0D_fHl&fQpcShPkG;<-V7I@
zCVcdvz5jjdKD>K>o`NBjWzWWs{*PNCek?(YEz_|+DpL#s%^4zL;&ELtWcW*rWs^=;
zM_<6wDnz@bf?TMyw5RhL(x%r$-p$~WVXt|OFRvVY^>e=mP*tb5d2`=#_>CTsQ`WR9
z&z5P4ruJ7T7vwBS;{}~^iiMeH`qlcQK2V|T4~&q%5x1WBR&jED-tJm<lz`)#{G+
zmV2$vATWj!;FHOOseiB}<EY!d1_yOqScn|pTJAwD5*4}PE75y|vnaJ_X%Sln*{u`|
zCpXdI9P41N&Ko$-rJ><*J9fn&<Lxt0*Dq~({_kzY@ktlaTwn?_q_79l%+23-C~l?h
z9Y?wzPD}#E;|@9PzSi*uq?3guHcgX9oz7)PC!4seFxMJ38U9LYYiDP=+1W-Q=%4+)
zDN+<LZ@|(rsvKPJ^y8QUQt>3Z+EJJ`jE|3%l4*3(+8h+bme6jR1ha)@P!U%j-&5;z
zD(Wb#DNV%!;9wS_Qa%g(B?o30hJg077&YgC2rAaA0K9xVi$=_9R|orWRyr_Qb%M9U
z{Q$9FrLx4<`&G8=nOx=+H;c=@NJo*jnBZbyB{lD7o3$=Jo@P^CfS(`z<R(xo#bz$o
z^@+3j%FKFnhg=$n9~J18YpItrh}(QyWg3LX8aJQ$*~XAAyp<cX*hV8jBxU=9S^56$
z&aos+r=;7>mv9bebxnuoh1Z4$z*q|k3R(fJ(;mp6p7w^Rfrrl3m-3Xoq0ETAbeei7
z4BoL7Kd3(W_ncbR5q8kipSxP_8bKxDcMN!c<MksL-_7j}T0y~^fh2)CJAP#0TO4R4
zq@T5eaQMVqVlF{Wo;Sm7Q*-T)-+x$+e94sx|Dn?~3g}Smr+@hX5dGbBf80L)ub0b!
z>3X++H*ygw8Vhp#o`x{JqjMTqD6U`JdZ!f0qkV3dR-k3NCk6gJNc68CE$x^=97r@j
zN5=yD)~XnE`*|nsju&!O-=njwoke2d;c8TI&Y55~lEg$E7wj6J{;YI<AE?qMt>R*g
zwxV#L2|&jbWm*4jwj|2y{iWvMW<nPSk557`QoGBS(ijH>j;#aCP~V&I*ew;PVZKzI
z<pf3lM=rPR(ZSX8oQj(#OILy_wL50#-z(?@BmJFqm4%J1Z>K-Z+Bz;G3$Z-@*YU}9
z8EYt@VDwGbB?2pwz2#z2q@|~XVqA}Pe`?DrzARjJOEE`F(&(!~d2(5)$WIqKc74mN
z>gru^@1vwS-RHnzBSXNezJrTQvvWpA6}$it71A(G;!FX9z*s7S`BVMDhr`ly4>G!r
z!Q{b5h2ZFtx=ZMUeOYSw1{-NdMswEAN8k@N+zP)bLXx+S=U;lmK7h>!+&ciAQQ&4j
zDS3>wrtRF^3o64pYXk`q(dluTbkb`Q4><Cm;1u^*OD)BNX4Po-GQjTWhw6ioT$t|!
z`^`T7F1rn`k@ti(Zr~=;2{yTs#7g|NJJ0Jt=w$#C!viOHDOOtVYnnKfQ+c-f#PmI<
z?Ku%$10{CkQWq>GE!}ofn$>#!l*ZzBs#eVJOMCHOt~?{3mAW;yQHtG50?2viEA~Fr
zmByoJ9J=rDhKK*(lpLJyppSRPUO$OqC~#^ZO+m#QqnONb({t9f$?7-sJM4bKcMGOj
znUH=zQ^{2R?}rOeK|H^z8cZb)6S6VJ9|MX*ffdCFnbaTbA{%2vnVwfGC~wQS(hCp-
z3ZoAFu6&5)v{ig*DI0*g<{;u%lA$=loj)mKV7R1Y6i6AnmoJhiBz@uHFUTlRb?TUK
zW=cG;61WF8_Ln#!Br%^8jLl9-eqkX1(22gJxUHd%Ehpjy47Sh7JAazS9`CxJ(G{|;
zjiHL{Hk#T>VC_!bMN?3uMXQ4$A;6<t%M0Z8ucPEux_8bNidhJ-GA0z1kj+%*4G%PM
zvTC8ugBRMT`ae5!8~&W54r1r}rN;inmAt(sN4^7;S3O6^YMR2wCWf)c=cVpJt)@Xh
zF38|=!@Ia3OwO6IA}{#OW5uKhcOtU$jCR%b0C4;H2fyNTy^eM$(<?S{$r*8&TN6}$
z4+{M&-X!(s%a?zh_f2UoE9NzOKn+#)Ku^=v8#$BrCKQl$j{!w`blwU2K6Q6RLNR$>
z@-g}KO6vLiU2t`6EJ`lTwO*_eN*kXTUyONRGrtwF2bZSUR7Qx^7w0;_{U>2*PcY5m
zOQ>NU$<bg(2JrZ4e^V^b87&OWG8`<f1@s+jZHy|l+cvhft&Cu-zHJUKIK|YCeuEjy
zRGv#_iM5rFj6W`pbaHzqK^RHiE&m6|)d9XS^jpvF789FctX-IsN%h%qiL5kB_UMp-
zj4>1ul|?pvEPV}b{rSrXKfr58CMf885B482%r48S1tmz{>KAjMzFr8Hr{Gd2)t>ty
zTP?g=Dwg7|D8XSd6boR|@}%>M1W38i+1{rnyF64AppQoCo4x)&4~k^bVie6-NtCdG
zbMXt+)pyfD$biK@Fg~O+-)UL{1rlZWr#l?dtnK6Czm2(#-wT@WtWB8(Ok(w*jByHA
z*Csv<JGXTQE4!G}nA*>xt<fZ7t~Yd=9+8Fd@P>|DnaKd5DJXbn#~6vgGm@~w-KF=p
zjg>WHhk?k~&xjJtl|&o@0)4xxX?g2z>>*dxj-r)y7F5Cc<>h@J^U?YF_Hcq}Gy<~A
znq5nRd1UFKMJj`Vn58DQ9T==O>SSP(B5HJ&$%JB60yxeNk7tUg-E2W{fV={zYOwOD
z*>ZrY=Tx4Yq<!nsLk4l>Ike{aG-eQq3OFc_W|o%H4EMOZPyPyA^&yf_0*{sqfoW+U
zX?_)qI{OWm$2jKKD0M353=6;%+m;{b1VOs}J?b(ym5ll}9(^@(@B8?nNm*iX(_{%W
z7&Qd5!*epj((&=w$=`SCzv$SQdXFih55;+PfnK}wQ7tQHux{heOg^MJ!^)HmhCDA)
ziyJf<5OCaYO8YN*Zz$IJdRsKQ&W;<X5jzB$)@7M)Xp2cOayzym%Fh)40X@Q_ne0>J
z+(0wTD-H|P3JC-&tN;5Tu(ezaMHiVWiXq1jCz*0BmQ7fNqeS5doD6qOS^kAi<k9gd
zI!gai@wG6wKQKN3m`#&#iEwvDsPnda0(%K=7x+wPiw&rd72E|QWAzF-yA1m;C)t6;
zicD&zz%Q;`!!DYLzLCM%pwDGLZPr;eGwD8-;4FjR;N|8=!B*;DFG7&@2$79tr3M%K
zY%Oq?A4cVs-<p)BIN7or-drW(osO?bWFA+Pi6lbd%t3%jRnEnQvZm=t<Ew5O27!=o
zaBnXuR$hA{5A~n}#(CWNuJ*i>WNyT=DI2dfMI;%JiM6(|Ie2vPL4<-vR;gSlkBM;t
z{#CIAyb9%Ng_R9CBT3ZgM}vo7wSNQa#ulO$YHnK_05Iv2!EV{C9x@t2nCpL`kykgm
zlS^hf^z6cCci;@D^#pT9^2a-`8SJI3F3%kKGvbS4eX9$c7u38s9GZ%Ky?uK@xq_~}
zRT+Tjm=T(aRTgK*{z8TU)@#fD5+sgPy)_DMd5fn21M6!OAPbW<m3M@J!Ne8%Q=pVp
zXFreGku68+gW*JpEzHbpXQn;K*y0<<px9>A|CB7}bmNccV!3|UXVrhmsQXc%Z0!H`
zTTj6Z-2MLXf`}6L?01U}LPCt7>G&!?R~&1UI9~6U1%*OaP~snsq&|cb(%0}AzmtqG
z5DM}@j(2Jx83cH(51e_o{?_oBV*2?dweH38d%nNC{p^>Hn_Jx+OmXl;{Lq?RlrrqT
zWHfi2upqEnXEFonz27%QJk9?FilIqjF>&Fxv3R4<NSmO-054t9&#Qb;#@PAOTBHwZ
za;H?q3=n-iP;&#pu`H(XWY$(AFh5`#Nz@}*7=}&AzEQ}E(IRPkY@WQHQzJY7c_e|n
z_IQ7B5ja|>%x<#(3W(fAO-;DJ))bH;Qz;Rfbo!RHV#Khv`UhgXBvq9E2!@DS5n2kY
z)AlrB<DMBE*}emp{`i<DCWT%jk%HFLv}pakCurSc>pubk$M}(?7th~ghDree-6_@4
zWG@ERI`dabY`<Bhk|-xhhwNITTfD}u<X>v0GblYd08>7BHc0F6>I*4DW<r1nYW`0a
z62-)9U#xa_VlZcdrm^$2s~%la3GLuQO34}a<gBZn-P3Lq^JGd91BFe1FoO7l0bYtW
z&)c6lWy^<6zkH6Zr^Uao=R?9fb`BkhZk9PCz!%HT{rmu4|11p~f|kD^0DN)yZFfXn
zDTW>fa0DI|9_bIX*taJ1hsCk*X&eAJPHfH2d$zaRskdagHic9wGix~l>Akf9g4ue&
z89M8oldm>;w#A0PST28-&B2Lk8zB6@Oa!7Si)<g~l0m<|u>X(#p|9ecl4t`GDiS`l
zJAZ3BesceJgXr3ldbc&B<Fe)Vz|O@r_;i$K`PY<?wU{=V@Q>ve3rkIGU@bnL!=I-4
z-!og*FUZ7FxuiK0H^(ZQk-GLSTpq1vjMQ>!*e35Bp4jr(r~K1oW3wL^SfEMeGwf`8
zz&BSn<bInF=bu9^cXPx1&My48^PYcJl-*!YSdt1HOa{NzEaBqfmNYc*hZ&aGj(Z|l
z0cnI^<M)}l?yJ@e`t?7#^`H3URDQrP1QQI1Dv{m7SHM6zVUW66jp(m1qh&r)ru`pN
z-x!@&7j>H^X_Cga)5f;##<p!VwynmtZ8T<M+i09Tv2oA)-TRGk^Ya-Q2Yc<k&ca-C
z)&+2~Aqp|FBhySbxrY10gOC05r-bD?I(OFi<4R}wTcJAEX+MSon2==JdcSnjCU-+d
zP8o-^Jhd8HW#EqwB`NxjNS34|T8z3@{`NF6_8{=ml0a%@T^zpuHwAXC$z9-Y(C<`W
zdaZvd{oYJ$=XB(YB7P8=sgz9&lk6#^VQ@5Q6I{O-xn=$XF--VgI3xUd^DuI#kgxm!
zM=E971_T5I@5}MKfsKG$xk?E>bbC(YlGuBf;!J^7<v-6q!&0%hZuS}kyT~SB;Pf5G
zq&cq}2;OhTL@rhq7-RL-^RSlLK1mHPODPoj&d)-|@QV0o!68UCO4WyS8hTJpMsL2c
z5j3x~@DaiqR`gmLo7!jSWVU`JPyzS0T|j4Aqs;`P@ZKLjg1JTR2e?MZFREgvA4tK3
z(fBwxfKEIl3B;cru73F5kJ5)AWB{A49YR2RQm#V%Z%K_X1MLaQb-VUh)yR8acJ}Jh
z1G^hR2zGl}qc;Z1*d<6doY6EGCH#sLN{kQZU;Rjn<A;ZNz5M}az=Wi-h*H@1<fLdv
z<jOB(<!Wev8x}V=mnVepXC$8N#Htph8eQ)8WC?nW)rP7~z`SHZmNrc9$Cfd0|5wRS
zQv1i`$1VPVnl;4OHBa%lmMnzmThng19KuOayjX6<01TYF$}1)^Urh^T@pp&xf*KXd
zRAaTAmfu#*q49HeP7M=FhCV*;CfI`p9EN(n3N$0X>Ausuh_G9GiNb+rn}%qIr+3<b
zkvh~Ww$N``j2{X>*NJi&ZmWB#(mZM^wehP_pnf^9)$~|JizK#yU(=At5SBx}?0)61
z>Des_?T-?S02@(l-2j8Pp5n~@N$(4YL2|%QP@0<&vQh`8XB`m-@6>)ifXbH8GIeof
z4`J+cb|^vwaVKB5K1%_1(dWb7#}B9kGTru=+A(J4Fb54OG4<ROW_$UJvc3<%pkRPO
z1H?OqmiW0bU0E$4VJU(TnGf2rc#-J9lj=+;b}?V6QE>4mQdc-!E2Wicl`EG8HAXT8
zu{#9^fl8@mielxmg|#gi{g4WE%g3>Gf6R?tOL3n^w^gb0>0XIzAXtoN`9r)+zBmiL
zX)~>X3{1ztRvA>$_fbae+?7d;S|2)|ICxSzuvilD6J%qhjS57V)BB`^1jWZ1Js7gT
z)>*_%+y{NHxh6*`r8l^y#1I8DW(w(YqcTwWhkIC6g@6TF$VbNKVt?Cei+KBhL@nB`
zH#YqKjV9>|@-=F*E?{2pp5T9=QFMlg>0fY-I;ESAr^JPQi|I4LA%}4qz8;0wS4S5*
z2G6bCj>7+v(7-t&e!RL&qZ>kOJ}TXbs^%!*Ubcb<tr4iEfgdCRtMfqXq}dJigMPas
zC|7wu`sg;+Xgtl00Yw-9yAs;9KfhWSBJ8mghf~W+Vy#%;bI)OqIZph*(zk#pr9LD$
zhbpaZUbIDoy&KY1^mRD9z$YMVxe#imP9LA!r|bvQ?24U<w65{sNcwrHrB!Pb?BlCy
z_7he&TURbt=}0ML>q<xR&+~^WDJj~%o7;ae_u=0N=7Y%-i=#5sAv?F)*>qLJo2XoS
zkYr+Tn~JL_ax#mp+xg0rEXU?xzZhIPj~k+Lsa$bkA)0Yja&ppE_0RzhHDaK3uwga5
zb&C0S7`XPs;gy2EyDp{~_Cc!shB+CkSbYBf#NEplPd$9(VDO_jCr5wIebquLf0m)R
zb#hc96&1uza$olP0LyN=x*9+-Y%1!i4q9!L?^7_|?(Tvo<n~7tKRLOW$d^rwYOprf
z`8-?fb%Lt@RlymmGbT@!Tzio7elClCbDMx#EvvVlgjxz|(wJQ~JE&`YWaR9G+%j1r
z45!)OCR2Uw6>J-#q?w|xY;Sr9(SQ)VB(Wlr;TyEO`#>2<D}+D+am)?@Wb8JELDur$
zXjMQ#8DZhcAU?Jb&d}O0Pf9Kap_76rc88af@dTk>G<lnUGrMH8JQwf<jCt(rV*t6z
ztmfDTmop$F)K0Ma$|q&h)mq)0{EtShEv8h0;TPf6=d|Ak%~<bWjpSEQ4-t+iyiCqS
zG!6@6FCguU&F_>}QWE(?49A$o>rv)}buxGPCqq}#;gVW(gHotem-qn(>1D=P#LkNs
z571(4WQ<fw2nl2hOhP7u&zGvR;s_LF=Q%VIm)R7~n!?x0_>P5f!|do!X04G%6S?1M
zKUcwtV>Xo`^(iP|p5+L&-ePNfyPw(q?@$|<A~StyI+4j`3ZhajnO#^g5yR6d*)0sT
z=c|u4*5>#=ou{)z_G9kft`bbJqb7b{F?a&8sL@%jB{Zstx;7kx-{$Sp9!K}sA;p97
z$9*L&k1@`;oOWmxE6Ny(LzSUSFcV22whTP^kQW*W3rCOZwJnG?aS2|a{q<GnCGaOe
zU`t($YLZ@1?TktQ4gdL&t8WBoL;h-MTJJT$p;HTL-7+Ab5rnXMt8A+v-`=r+uJsI_
zZ|!n7$KDU5FF_%9g(Nc;!;PM%j;Yt0QW8wr)#l_)ItjWMMXZjBJ|5g2@8LjLUNemo
zW}OP~^C78HD7t)j5*sM#+b$g<FNt5h1&52NW%-!g%zBa?4?^M_tkP^eK0f~Y6My)t
zWg!4%9XcfoBWd06W+5|H&G`i8lv@o?L7<~t{_8l4<a(p$2FC)#?gj9fjRl)$IH+GG
z@rJty>x-K)LQ31MaqD(}k_9|Rc+&ZOpd9hZit~U?A<*@r+qv^KRS>)F*1~4qNr4MM
zoqwP6>{`K=PDs@P(@vC|k05^a;{MOl{P^B9_~{Vi)Jxb+)*47xsJ05U4gx*&iD%)5
z$hq3+o5HH}sZ^=szg%5^e^1FmhYYYT;P{Vz5rF0Zya!_D=Fp`RIbwye6A^R-?V(jy
z_sa!lUn%0{Z!)SvB4eNeOb1hberY_EG2bm`u>@TfmW<KrG=)>mm#m^s4GeI3EjM5C
z+G2Y9&tS7Eq8l&^Wh?;_^T;Ey2(z=R0ZVMd!{S^{zkn7@oOUI1Zn-l4AEcVEqL1TP
z+|w&ieGBEvk=vZ#*pDMT`92<tDA9f2gwN6k2>E$6!=ILMDR7$nW}{h?<ToGpuMYL!
zuNmpDaE(_wTxj?<`G8Tq14eE_rrs%$cBQ_y314^jwE9zQN8~)0Vc-)IhDc;&(6pUT
zf`F%|81AWssuVP)GH^ZY7~Ln_F7=z4l~oiN2m!)FQAI$#Vg!(44i|AbZ>(-u$WU@;
z_b^*sg+@FFnms*b;~YtFH#WYcZ690z^I=19?(c~N`A}kH)$zXXJu-`J=h%)tW>jS`
z!d$~E(kLnP#?O~d8@$}%Kn9pNIK=zBKGZvp$X&i%%O9VC%wO&-WipvVIO*GotF955
zIt&f58i<?S-_@vK*Xb<ZmhwneaCM*#gHnrBDjY_CoDm;?r$mS!{*sPtVO#xn6Pb18
zVo)1q9dyxlzy5xbKR7id2k?o6F@<V2nvt1|eZ0S}v^#S++GsP|d|EsDFFCXQ{R9ot
zJVw!1x&2KS@bm5FTp!xDHxYcRc)T7E8n^61T#;$H#-%>GL`{{ut9&OQqMvzUr>JA;
zv0Y~e>JY!}#ov_ohE7A0*sqGI0Hpf4fO|YJ-mgTJ`uBHm3?7G4?J^zOimfNF%{I0q
z9?2_lJa+ZXWJO3d34Ar&T#0NP3%i;r08U7f{s9nG3l}TZFZ0!{TB+5di7s6X6Dznx
z?bxg}MF12cneE)|(|LWelGYbGwQ_{{Y1lnH|K*7T17PXlqeVVtG!<6q1EjyImS8}6
zigRjRl5kR_)R4o(F>Y^^DHhe}hUnarDm3W%I$cqMYcH`%nDGyFM7Z`>hE4gkt*Kj=
zb}6))6L9)>q(D5^-wi-YKwh6o%Q~)HH0n8K+ECzd64s`IP{3iCU9##@4Pu-y-KI5G
zLJjv96d$tVFGKx{s?=1_0DnN7F1^}iECBMp4J(iB%V?B4vKP418&(P7CIJ_+)?s}%
z_l#y7gCX+=D<n&`3>IUz6GSdx7Q;{Vn8(|m0NQ#Zx^BF^ueHy#lAOl(<yjs}%r)&V
zR=|9eLWMZGxLPfyj#tQdON`45)przmovZUbn&9uTA`LS2zn)>|wCE@}fZjp*M6)1U
ze`(Kmcf7<$E)FXkuYiy;9iySh<b|_)^F2VFbl85_gH9nx{5v;%Arzm%PaW{6_@^AL
zI!)6QQ;TAS8uh1Q1}~id#ESxtdg6C?6+5_jo`Y!g`qsBz!X~n~$jq-^rjrW<VNRt8
zh-Ac&qtEUa*Z6;Sb@A!E=eRk~({1kqlUGq2cbgz%f2^J>BmR#^qI{jmQ7g7y1<Q)O
z#%S7~^*%jJ(o}@*J6{00rBou3EN2=W|96D70rFwcR2ocO4+I%SNm}3_YA}1-@x+4+
zlw$O3Bx9sb$%z(}_u-l6gSQ$W&NY}cs_Z_Htj=tEqjF}918I>=T=YHqJh1iGiBcdj
zp+u4;y4~Y<a++R)<m4tQ^q8tVe={Y027u{@%_M!dcgGiCsUHyKBbd<R%smqLe6C8a
zANpS`K#KPd*tQuKhL}P&FLSI+f6P@sWXU2FQOAkjLs9AMrci)vJH2Ja$*EQ0pHez?
zsGHSNhq@~J!gMZc^2C=Hxl=7{o1Jl&AUyEy9yMT^^YR^cwN1?R-)Hq)(oze%mhUuk
zmU!C+cI8l2bBRv*!Mz{0{_;Hz6=GLJLHMY0$<>M9%XclRvEsCJmQtn}j)*q&BhmKW
z#LA7XqGmG-i@*1N>$p|sV@FlyHc;!cvwiJnOZ5i3r1U*+PIIil=XtcLrDfGzmgcAE
zubba74!+2c3ujV}8&Awp^cC;je8-=QgYwazrT?8I?SYk%1^0P6qySv`6sF^i{;7w>
z0Kq6>aakBRc4;cO5MpSg*N~l~CCV7beki?nsiQ$0!zyG?p!;uY3n&I+H)&rL^|mP$
zBNYINA>|@*;WDzx`{UY^F+@P?k49;^2X}~!3@uLUNgL#=L@(cA7oum<NuTNkm9blT
zUL*p}9!*1i`=-|81(<T(rP|&iu6zrdU(rtOGE}rEVkn6(9VbM`hJB>#8M|>((1<N;
zzWMX+La~D400wPtYfCPnoqcEH*}*cE$J|=J1lcg$66R_DO*_}u)VELgRPdj-UDq{O
zk)}AlSP%RB^JisYeGR;PZ6AB^W@&Q`d>s5bu1$NiATks{rf;kBYc@pEFtZyOys25o
zh84~}_@<H8*ui1OtQD%sv1_N_;qDkEBO~)0xOEZA5Yv3Awo~48cyW?sq0X}^XZg_H
z+Oso`-`1sfOrwv@)9T>UJHa%#^WNw7z^pTVf>2&?G8p^}q&Uf}WL0G>DwDK^u$TpE
zG%_VhesD-aF%$b0EU2hZVXVc*q8bKVN~Iy@QZoaLG>qz2Ovd_XGZLYbdK}^xvSh<|
z#|!i^DEQXG2M|j8hrnw5x7VuP2Y)Nn<h=Slw18+K3)XLkpDmAv^1pSLv$u~nUiHkD
z<~A39-h<yk<pm5&gCRJed~>L(mv9P}L8KTKntu@G#E(qhzUVRZ#gX8&`8<3!MUSl)
z-mM?`T}|{o;kTqTdNm4kk|Z)-095$!Tnv<FH66|NpU0;#FOV05^$9(gs-WrQyZA44
zv+h)eZO>`GBk$=)#(s~WTTJf&&blo|mM$d76g#>)_X}LRUo<Q9#)|dWC%f5S8Ope;
zs+ophOmRj~smE395`Ly`9RiLaKv5Snt-p}jL}j}KAD+r{+#pqO4eDD<o%{VR?@LAj
zD?Ah*)H|V}F!CwZ$V<O#jSX|Ka6B&hVoA5-ZHaO9tlCoMH3CjgLh*XmEnUjVIV9`9
zzIC2gG}|9IlPzRQc#4ux4xIS09+igRST&<Osr1($UZDEUrVaPVr8EsIjH%p8Ya7E%
z)ZAZoi8EoSYgfA6-sx5<A<SiFMDRUt{}?p2w2V|#IYGjIQ{z#~D-{1Omy}#daf$>A
zYuyB@iYP~S)L_HEO#1$!(4R!7_p0^6T@A_xD?-ig*NUcl0vK$?RTmeU2T;v+$$y6k
zW^@SXFGE%vM6EP171&N1CpEGd3X&eG6~aY5@*jRg?ii=Dzbztr4Jtj@qIJ7YaX?7d
zZWp@Ja2~lIWj_MK_wRlq&DK{tXh%<l0<X&|;_>}+XODI4Nhg9Zn^RL$4tFcFk}u^#
zffmAr%m+cc&s&e(Klzw>U(d19bGJu6-sfdxW$U?dhlLu$C)aet!7bvq8&U1v7Z+!<
zb;ezgBX9>@CjZf-a=G4F{B0i|4RuyT-#1QLdeWevNf68WYf}-c*Rx&r?wzHSy%|~L
zjv?H_T1-PKoS*-pZlt#$HhHn*66*C@oT_*D==X_485t-6ND0lGPu*M@$BoQk7jJ_&
zLZ`im78<<QAK4B%3C4ep*Td5xC*qP>AoSeUeqhKMZht@k&)c}+b&B5D*m(E)ULwID
zo5Ra%9D*5aktk{>%vdrl@cD-QJfj6yl9>Fs7F@*gK-dtl`6al!77?RN=1QTuHbJz=
zvcJ6i`+&mFfU<#-P6cJR3L#HLU|AYjSQ0cVjk%;X2jqg;SuwRjV~$>e71X1Kr&)vL
zWK~>+;g_g|0_za0anQn5BQDRnEYn7oC`l1($(lluYUmr9+9vj@Nj?`_dq(9y-WfQZ
z9=><^uylG|ld7sZZm%|~%omDd$~)Xa_Xo7&hz4fFS=o>i=a0)NKC}T}6e=%1OuL%8
zwzl4X<MxGGEG#SoC(7n4t@cF9^FL-&*oBdCjq0vpEs{`KEmuHqXQUprwgVu5Lgnaf
zSl}t<p(AsJj}qbdOxPc<aaj4OwLN9nfR!~sUDa-@O-NN0pUcVQ=VPwjs|DSe{K%oT
z>!ZnlO9sBP(TD_DA(cMv`utbJC<FAfj>DB}<D{<N#v{O3dS^6KsM}Wipmyrk?$fLX
z(0m-5efEg7sH?W6(|qZQZwUXC!Haam?OaKukiXe*p001`7%Owy=x|BY@ACO(O*hXn
z&->I10f+>}L%f>xKP<8)j{lk{&qCNaUwsvJh9}~A9K4fF48pLK?)-nYO8cH1t}rsY
zDOyrt!{|-}#qc$xwr*CtdXklzJTy`_5$%3U@j*J8uB@`drThEndvRDBjg6p)r*tTH
zIeBwGnDwo&;p)u|vuNK#6YoF$eJe<h)g2G5Z%}IGS9<NfwjtKb_J*DNL_W71^;JfQ
zge91}bL;jjTAI6e5om4Y8S#AxTyq6Y6DvY2lqD}35t=dmT8BqRX#(8Slh#q4&xe^C
zosLmML+kKR5G60pv<!>zC2DDF92ic`jiD74+(D$_!F}2oV{@*;19(inmQHoz!OQx7
z+1qb1+xXhW<;@HCT!TD@U2eFwF^@W3p2`3I{iDNMxe$Ymu}^)hnq-q<E3;%ygXEYC
zRv_JHm!c=+|CKfX04;hUkR0}hWw-o5eDqznh_(9OQM)&&E^J1o9_gzmR3#-)GV<~)
z;gj0~EITO1ncYo>foZW!IzfdJaZcweOerbqZH~8?SPXgxr;A7$1TolmuM;w|^>uZ<
z5yrRY+dXl5n!&^1!P?DuFJFcEYMIJ9$Y0}y2Z<=g5}4BeLb>kEgi3n7`;tXKEBxuW
z@HR3^=xQM;OY)M1*CGy07;qKIVO~JsR^LbYxMBDVe1An^gGdm!FK7xP<|^CF=y!cV
z9wP!r!?8UxPh3+ZwtMake!%t2mp)r;Ti6wCwp5z&JnZ8puik)wez*nN4Yw04@`|ct
zn3$OE_y0KDuZOUnuL_a4d~Z09h<ww`b9p6two5UwEaXn>OGd(o^b9R6)18k9+h13)
z`oxiXDk|#isq8ls2%743*VPOP<m{2h;|Q#YTl^~B_xJF0UXO7B<?w?g`$XNSmL%Fc
znR~jQ{LGHZXMgBZ^UjkEokThH{{v`V<%{q>JnefwFWGLj-?3x;XUX@??SJPdiNKhx
z5AWTK2cgG7f;etdg|&?cDSUG?6?AmbsBzo0nYnp-`sPRk8io7EnZCJ)M@VL?-SytI
zA0VLmB=RsVcMTjE$HO~IpzeiUEMVNOs$wj%d-2oW`Qco14B#lW;V`#{cTv5F4woFR
z5oE99@mILTg<%9F=C2mWr#6eR&cppl7TBr5w*t}K6Bn|7?~;Xz=U-b9%cUm%#85kv
zUh~*SAaGmjw!XsuJ&Rz<gKNH&NAFRQPk%cclZibawUucPpZE0Lx~!}UHR*#jK7D}{
zJ6glLt9SeD9`5Z=k8k=m)u+EUhdqgD-`(c}AEuh!EdX4&+PKvZvqGkTj$|%aHD);_
zuM%8evP`3P{}BQQj!&AVl)k#XKWaYh{Bg|!A68ja1;v)L{o3`J2=YGa8O%hLNwZKP
z8}S0^?ygBJb3OJN&nma%Va}qLaQH(wQX+yx4(8I1eTH7fNKZi(P>9Wv>n7e+A1pa%
zth<(P15X|MDhd5_L?iQ>BhxP`E0j7PC-JN?s>u~KRIl$zwmbbSSb%zr0Up1cNm&OX
z8gh91^i1s%SlA&VBa3_dt6cU$rT#N><p2qX{pP`@+t$B0AVz;W<oF~xBIJ&%7pmI!
zK+toHB(7vv76GvZ`|gV|gS$`v>KWPjYk1iGVy)wT1Gmxb67>_*Iq;t@8(Zk-9?y0k
zIen1iRj=4nBgiMt??wJo^G=Oym$79}dAkABNc4vz0pT2x_$A8FLas~cM>$LguWp?j
zll&Uh@+^7PaffDynU`MjdMlR07K`5<rL3-?4nI4xHSB=Pjko2+Q;tT?3_>E?_|T43
zSf%brZ!47G@A{<~!MtyOhT>};0k1p&?9w3gmbh!vV=-#*62WSx)4Oj_%K7J{5m(TE
zlB|gS;MNXqINwbeL%0ov8HWco(Fsp4mY4HS(TvjsymM*kSa1Ye@;+LraBRA-#h3ls
z8c9rF8A27_3s^wypXArOzeYumDN4OosIOZ6b(?+YDQWD#2kS+hbj(w)lGx<E&&BC>
ziQoA8Fq>3VFT~D^TRFH+U)2X+f_>-tpa0(-V`gEQzkBt;OjS=yPsf21XkBMQQ0AG^
z8j0qXL@$9^9>V=;|LOZMImOJw5_B8O>`|=PyImQmJQ%EV1C$kT$+nW*EHiVF9&6dX
zqocb*Yz!#AAaGGFJm|h(Q4j1=-`?I@-{c$ad}Ba!q=Hw`HImx@R{Bv%W%8r?DR72_
z^;v~o=vH_3$|vGgly+U}+z19%g+f02;3)#_?a<y`nny%8#zD&<(lTp_SP?wV(BRn<
zYYk+1Jf)P>!XzjJGtg|3@HbG7*>ltg2d&va_PCH6_(%f<mbTBWMA<Ede^RpW<8~M)
zokdJ5n3(E+Bp1F3<F&xNOir~D#EKTc^vu<n;fYtb4C7eb<u#*`Z!1H!%s<r7dIiu`
z1?ac|bV@trRv8Lk)3D{_@>P$#_wOYz@sXz%0ev9l`FVT+M<k?dzu*GOvM$n)!3>c9
zrHkZpFM5hq(^`?1j1i%PniEPU!^G5-)5n_!A^)d?1_S$Vc~hJBaw@B%3>6tl4kc+k
zt<_?$X~{Cj>6OgCeV^ZiU>C}%?e#kUR@Qc-Iw{o;r9CG6fH!72{Qf(~DevNe^)O#a
zw<^N0eaSysoJ{FNctw0A$C)H7-6>``$sKxY$P5hGsLTi(QT?iWSfgw+zQDY$nAA0R
z1?4YHEe&UnjH1dN^iJ3A%e{8z+l@6g71j8crH3->;yS*_0(nhD>^pM>22N;~YR=LC
zhkqfye%$A&NI}OAZMZO+QylHuAij4YBGu_ri@W+7iHfhTF52qw!uE{B|8Tsz^fZ>+
zOQeLk{mN4sFrrgS$XRr4L43nnkp(NB1NYzjn=!57qU)oL4th1B=*F>gY-gRI*6_P4
z&&cmdkjHBSubWL*n}(cgN@$~yrCUNfYRXR|*SI{pP+1oSYig=QKLUygLp*QLe_U^U
zwUoVg%&f`Il2Q;rGcHqCCy{#^D-bl6T-OjGz>~#Bd!2SYl&+Z-oLY(cOLz{Mrwtxo
zgm~5wD+W4CkJ<#WkuWadsk5@dD9j}7TZtH%*20T@IQ}VLHdhA|{EkSfy4j*$ILVbU
z<wb`270t%DDuLK+chibhxCW(Ovdi+U0``kY!VCrlzD{CKgW}5OpLi@eR2M4Vvo1IS
zr7So;;X)1)Qk6n#PbF<1^zWX<4*$k5^nC8w<c7GVh+%vwRTjg?Q@70>9TTin45L~Y
ztoOOl?&9NsnpeIEbf)KMaxw`V9Nb2mZ+1n^^UkU2X-D_GoGdydZjk18ODUq4VsM0S
ze?69yqFn|mg&4QlAJdSfd{D`w18gwKf!c@{>U1?*N_n6EKp0Zk(SX(q3yTF`Kicg;
zHn+OPsC@XZu`q6`<S9?7z4_r3@6iF-T{F;|h9u`d6P5?^hJb8H*4@GDFiyU<3oG3<
zKkY~eD*cYx5)r!NHrv=ZKX@D(0;xYuQV25DEpZk{e+c&E9HIx}qQ046Ae>VpODL41
zMt_6ifzJ?Yte$#WWF3w@X-G>%G+g^NQL*Xm<mDQTQWg<2Io}SSZ!#k%Ff}P$f5B7|
ze-FStpN<ERGF?rikoz=()J+Wy12Q@6neh>gjh$i&u&8JW*WfPKTWh(*jp1u*H1+fj
zfmwmbj#*`RDCNxa<pV=H+X}C3HPuDRu;OIg!``$$>(@)+$J3%;R&xU-&vvk&RMXM7
zglFO~Nxa|o9LV$JCoY}E!<RRMmd6KiBTop9&wx;Re{cfAW!2R6Km7A8QA8AZu#7Ju
z_bg_{2uq<lg$bg<ry9k_bUzAHDK*Mf#En;Fu0q#MQM+Vgm|dp6{wQ+2l6plm+Z~2H
zbg+1^EjYq0LY!wG<mAPWQ%5<YgpHFNa=2$VvWhPM66TD|x&U!Kn(@2;0htY5jEL-O
z0Tjwl-B*KST~flYYQHoeQ0m=tA<0k4lkDKJGoen{bG_W?&Ce9!uFe3>R~6O8V2VsX
zrj0gL)>BzUQ<{J86&3wj<Hm9P!>Qd*Lv;4`9Ar2E9nQZ3NRxP8T5QBHk`4nI3*qhW
zGCvrHlFQI+G9q+&PE=$R6;ghP2YOrl<h(`jTE+bOxZ%an<;xJR6)hYDhu5WprOaSk
zR5IDeKAU`bD;d5}bW|FC77hbAzcQ-n>n%2q?K@W7%&?uV=<~iySIX!L6w}(}JJ@E&
ztMW=*ZOFrdvpZy2+-edNT=>9d@{|${C0~YxfY5v5-{DP&zawEwD5;_t$BE#f+LATM
zw3m~HSWo-7<W<#yfPSpO!YR6ZQ6v4Akq;xbspcMU0A~To=L!-0mG2K3#OQCj`$g3h
zvft5Ehty|bRt1s2y<)+rTLO5<uZ4<?fum%Q#~5N0VW?9fY-yy3z1rj`QZSDNydO{d
z`HhPBX_@<#)K%DozE6e~6^Mj#SrfrOxu?`@hj@}^Ed~v&B7uC^;bkJ7sd}r+|2u6$
zEY+ey>GWrq-!(9qxeHDqmj!cB<W6+|;-g?{XBP{kXiPjjc(<RSLqk8d{66{kJ3TRu
zbmGz3pp1j5UHP4;|AUzU|794RzYV(Go7O+L(0`9?pmcwF3!0dix|x+&c7IjxiBw89
z+;h1(kV2fAtOp=Cp_P?7o$d+it#-RzN4)_MfV5?}*JT%$iU;WZ(c`STmC{J$kt{6E
z;S=IfWa0$Z+M%9HJTlk><N_kaTiHZ3tb(@ol(gUM9?JcE&JF6lyMuRzK5~CbkjQvT
zQU3QYRsRqWr>tJiyb&K{q#%KI{dgn87jUJejiB2XFGQ*Bxq)qLWclx|6^I>mOMpW!
zs;~~u3s(*w;*wBpCDa&WV$bKDRio4m?jR&#zfeNn=7<^0E~fmc7AoR<S4d<SZD_@~
zv(p!p#p?pnK-5ruo{jtXJ-iqZ<jN=$&~?TduiNdkyIOMIUkMFu-}%5junTl$%rv**
zT!RAS1q(0@iO-sDl1|e8cpMef&8{biWBc+B;(QJbuUk!|Rheo+F;8vnBD1j9OL`pr
zBBa-8>kVjcXSDp4-@Q8W4X<LM22r$5?ysw<X~?X_0`{pQ8>|t=5_82V;}_KN(^KkZ
zXJAI@W)ooTY%G;$;^PYe10JByKu~vi!DSO$V>_L;<Z+5iTs4F(6xbIIoT8AYZ8FAp
zUsN%%u<$^ulC6*yZ@lN_a9Oj&cq`uonXz#bBVQju=4PH5fXWTl5udZObI}aLWZp%)
z>jf@IrvrUdC?b2UygL~=gU16z_4ejnS1TsT>7jo+D?!90ATSO5LQGN4KJ0wJI~?rW
zs0QzH{`4D$Shu#)($rjuetFO#)6&U=DmMkY-BeQv5TogNr>SC^xXdi3jFRKza32c4
z`uI04+wCFKMiSef!yVpR876K@!3x&qaSIhB)N_I3g=G$Ws`1E923(|EQhtZ?#7N7-
zmxVE~ZCQ;um+rR?=gCqjCCx{f;H)-;@!?p=H8L3o0~9{I17l;-3ZsDr23_{2vaemf
z@#OIB@n#JxXZLB@*$9!ci!da?zkgy`H8Fkd(nGR_AE%*tJD~6z7kIt+BzNy8*wdTA
z&-wP97Ti3KcDxrewjBt1seo-}su?VflwgD1!JW)hN;v+PRDjr{!j?b%@HV<D3J5L1
zHsf)@^*`oPpKnro=CHR|B`GlSMIWBm)O*I%{VtY`5X%S#19c;RAl4wZ(}NErU@M(H
zzIeZ%>Bog`&Yaz2(}kwDJIDIkbEC$iW@;4h8f4Zg$wn&eKAv{OPMGCW!ij1j)nG{p
z>Ln|(83Cq)lNT78m*>L}o}jF8MZm-A#T354-~M=L)gI+RjiAC6;H3`GwJA`y;J%y&
zw4jUKQv`+uDF}kfU}taHjml18BZeDoyD#zL&~<P58-7M`fjn7Z_3Tk<BkVOdyi6J8
zf*DjCRTteqL)ZYqH*RslqWd=^=;Fa5xpIgj;mx}QGKn++Cv2E!Kc-zB&m&4G<+cj(
zp-}uX>@BZPSi=7qZ|X;j+s!Ie54QGrd-4Yg3+yLQM7gy|ZWs5SyiYqpX9ck3v}ZY9
zpxr?}3dzSr$%)SrW9fbtFx&zH7hMU2%jm99U}+JgdAyc)#9Xo12@P5EEc2`+<-dDX
zF=1i9b;Z}pgi_${N%|`d-y0W`WEBa0UwRlKU$8u28iw4*TZ*)qq?{wReU2AA=SS7v
zS)GaP{%09t8lZ8Ct9_h6Ouc*Rz-w%40$FsA`a>zUD^6NTSG|eLXOpB6kNon(df8go
z`?@iOVB+N;LCVeA<7TcbDcq*>03lP=x6Q2<@uGJ1L<30?u*f6k2)1AIi2RWb(Ycv_
z#a*v`TQK#*wykcqCNt<*wp?%aCxa!{@hw;U#n~w5<=i`ZHoPf(eqSbF_Z*AreV4mZ
zveaa+@xn^)XOCFvzvTn~54%H5+AI&nh-mHCusqsZRfh&PNK0DvF|OVho^vu_!=JWy
z_bOqHv)8t+6K=+E+u2gyr6Aw6e5YFXaw6z`awYaRd~OrQm6^ZI7OB<hy=yyoMEhCx
zulK9Q`Jd5_CJ>qRWGjEMI$2tbcV6J3DtQUbOiXN0xI}pa;;UnCGOJSFs;+yFhV=}d
z=o;-jU=GO((=z^Ao4=C#uDeJ|Si4m&B3-)rD{8JEUeF(Ebr4>OkC2>gmk{A=zteBo
zvey8}Mk0vSpvk}g{jGd4f%sEeubO&hcV^r9wjbtO7)Gfp?^wP3WVtbz&9?=pyF|wY
z;gjaTRIw@9ymj9;Ab_8(iS2)xXR8{qd*bTscD7@!o(;|5FxX_r)3H|ZG0)~n_|1>F
z6kp$wE9JH-epbCH$KC|oH5dQ?yDO3_YW;BiZx^^FFH^kdh`IPQt&ZO{&MvKcLoSly
z*4B!DUYD*7Fo^uvl68MY$d<fMrK}8PRyX3Dlt(r1o=m10;<+CH7sYV{N-AivlV@NY
zdJPGqtG<o(=}c>sppFNS7R0;MK$Dv>rn!lU$vLf4I43~nLPll`9nZI78y499We7G6
zWouID^@}9N_xUoBG8M?<ky`9{4eK>d2iuGCzW`-5_wLH!<I+-lptBGMrv9D}!<|ht
zjeBD-cMwWc_|PKx*vz-#1x29|Vk2zDp$894$1by1agtw`-+Im_GKlnhf-*a|`)4!i
z`Z^-~TJKxas6R@E+AO2b>a8HvF%>X4o84i92`vI1p~zOrwrr2BENqKPO=l=;DY1D&
zr*!iom%HXsuWp5r^<!#zU>zk1K1=>43)STZrA!$7!mWmOBp_-jP!^2&d)&wyY%9TD
zw~p{FW=NGLtG1kGTK?nk>tJxE3=S&1C5QehLOJ=cH8Vdd{8fvP(D2uh5$EbnQ}%~5
z+P05b7taTnpd4s~Y!7s?t8l7}_f)eR<WDi5eI~;{HT{M!WyZ&DW4>%X`D>Hh9J#v@
z0}Sp`q;KS`5-@x9jt%=u_PoY!WX)(Y)p$I)9Fr?7`~)4s2fw(XV`3O~->hwr17Rxy
z4Mxa0D;g-iw>1WAy26lRss?#NXnfpxZI5VRWh9)z=1oo}cQ?w>NpT0Yt=Vq$#K7Au
z7Yv!XlA^ars4lykKOYa^;dA{$Ci_|@#CW|6X8ra4;!V}!H9J&}&r;!M2rn*Dvo?B>
z;Zh~fm5SwDg>;4D{*a_4fohB}h#wJbFjk=Z`9aV9_z|~du5N=%LNP@aufwbj6#i5S
z1qW<SV|620ve3J9>U!Pcq2<{XTq6?(9f+93Cn>)zp!;A~7BVaK@ED>zax^;<ce4-D
z7yp(o$<*fn1(9Sni5g?E+}k4V@ES8Ep5rXcd>*;XjXU%E8DiRLdiE74WKsI?1TFj8
z$Z{AR@aHX`DXx*&HASmPE2bKv?&??+#S$|i(q5-E8L#M$1hF-ARF70}WAm^p{<J>d
zC(DB>{5p&y%_I5-F3!6|tGMz*r4)sLM5|HlFVp_*P>M`J{nLVx9HfZFdYKVpNPdOx
zgOLE+??UAI2&;0Ylmgmv35?+<>}$LL+JL*>g%!O3R=KeQAjq=~Q(DgFIJsM3ecW^-
zQe`8$MGllE;LG2%GBCE#5@xUg0|k*};7<G(7tg|Yvnr9^jS*Hv-sbE&{7puxVZ2p4
zUg!Q5RnPQi$bJ38%0WGoOb$v-!9*LON{H>BZ(+a?yIyrs1QOIfv`)KIu`K{K8@SFn
zTdui1)V60z%gA`ryw~g3INe3O+6wvTgvDa$4uRI|d4g(@Y+pWrHb;6$G;TZ%kYkn8
z3CB#(x}UtN)PJYuHK&jE7}jWty#N<TeBa^%JQzgXQZTZlVqI+yQn7r;C^}YVHXN)F
z`2!dj-i?%~kjh%HF9!??C@puv2SzEa!x@hwRF{dIHPV%TY0L^q_1olR`M2tE3`2iU
z2@)3C?a*aE$Mm!16v1Tau=*c42F=*(L6@`KmI7=M==BINCoS%or59G~&PglLU>Jj`
zowrjiX3$|M9AFoQ=|*M_@iZXaLy(?(5Ym=D?rkRvIfNw`K%g5&G|O=0zH6`d@7>LA
z*zA;?U1WOsAyJt9U(_IzSb?YZ1hNN+Ne1X(s-Iv$*SX^6BXtXQZ7Lo6wUPn03JqsG
ze$>#_9r6<EGLS)14J*L*l>MmxCeO}sXl`imCtPQYi7c}SBe?>1j^-zPBpv*ehe8}1
z@hq9d*B<T|82AZCJN=8>Wk1(%Y%YKIQ-m+9yf5mj*y`pE#Il<_%o?i+|BzZj*@BZX
z$=E2hb^PEee@rs%n~(GThBKMpU1Sf1FQ9YPsNXrHUE2k7Lz-;24N1J;7|@&osEx77
zuWa0DejFqDMK)uKQP~LTs^^~Z%kiqj+o{y(&U7cmGc%LREi?-j8Eh}$lz851qz|hG
z=F1xp$g$@${`Yo|V;Adicb=v&Qs3P5zq&G^YPJ&|5iC{lz3a+1+<J~=GS_m{fuply
z^MNq*Ro#h7a)#Hgxaa(<QFJb_;i0_u@wW5W#|_RH-K7Z9GYy(7e1*Y?L?*!alSxk=
z@Kz2<l3Tu)PGY!-Tqh`M5fm?<<u?z>r2_3z$LaD<^dqazM+Lc$i5CG@cM!_AX+p}N
zJ}?lUi|&3_;quv#DNZhWK|Tzufy}I}Owh)D*NE51!X0{H!XAN!@o_Tr)zp5LQ5C{K
zju}MeYyixiCzNr2P}M0Z-r^u04SFkf{XR#2jn{1VmfS0K6I7|8tZQ;^#}D{9N^EI(
z7_xGcA3oIn1L!2VS{XuFobH2gTk5is8&%(kr~(R*ssj+7S8aLq1T%ul_CRYc`2eC~
zuyF5sIL{Frh1XWz&>Y#SlTy;xh8&Tdd0n=x=Dwno5>~oUgLg0g@94e!SIgm`s~S_p
zQntVV)k61c3tP$<A+f8eUEQ*dy3n+^d$eh{zhpy*d6bYKvPo|lUQ%4zh(XwGU&6Wo
z$4xtnQW<kvl#b`@EJEA_*RDI}3<**S7!e#8h583soq&iDp3C%5e-9Dk<8aF~+lQ4O
zw$qStIwQOqiE8~TxV0pp=tlywsxtY1QvUW|S(y3tZSLim9Oq1op3^GTsAL4TGNpCH
z!pDQ-j&d1{PHFOt4MuWacigej)w!w=_JfvT^}}Ftv4bAhQs(6u0YB_&0ng(RjpErA
zSb^9sU~IErFAFXrr`$#F=vRmWAIX_-ApjLI5R^|`pEFY_qDnQ63gSEcQ+;AEp-}75
zyeZkZ6SELIQo_n4s<TE2M6=?JeHnojT76nU&0p_LB&r_>TO7`Uj}?(QkWpUV`772K
zhm|9yV$F>|f`lV`T?U4(<tdB9*$#yj(HC4))+37pVCo57oq)bT3mJ^8hIP1U9?TE0
z(~uTkNcN;a!g2M%xE5_{$LKEFDtrH&6sw7V!Hvk!cO>5|+oi|h{I;E#4&orQ#1v7C
zI3?vHKmY}LT6%fGjv_*mkw52?d{X<@*7wl*K&@!%spW8{go|Uvuf`?D0lX^{teb2K
zD-EjXOjLEKpphn&A<_iAy7khoKUjtx+3-f@6SzFZ7dFe%sQDz3b4^q<Ll@tK-GKg6
z@X~Ei3~y^pPgA1T!h3@JlZf%|LG!Mj#opjrIgJfekD#?y4}-NnXi)jbzTb$({OHU}
zZ{P-?$e=6Fkwt0Zt*4=V>C)=L;)=MxTrht2)OM^lJKAlv+UtARHXrk-3BRG;<*|Gi
zv|O`(@4no<70lXPyuTjdT(`ut-D|vkrD7tIk&tjb3anYI!L7ovJ7>$EkBn&^6|Kb!
zS|VhNq?kSXNNc}8mC76LS);G#TKR}y$^c!e;I%EaNQDtmvW|7UT#&Rfh&=Bf1!v7<
zUYRDrHkM=4mJLnStm}K(oSX~$yuJSGXpSm~?V#?GKCmhRvsw&o_UGuzB>9e)u@ld#
zaNK{vBM#0V^wpqE6q_XN4e8kWGo}j#LZfO{Qpo=4(4kV@my1J|`Qe}yi}eerC47&H
z^mzoe&8^i+yEf1X$8Ym31Z#WOD%79855wo4_6C1y#U4ThnAq>d|Gbx)zV9LQG@=~&
z-NXZLnK!Rzmp!}63ExRS&E*PV*E%PPw`J?=R)zBnrI8wXK}}q|&(^2mX8BygCaLRt
zvvvq2zRuXZeYtPjuVy=W))sJ4_4Co4`*jwhWJSFCAX*-2bNKZ~SY|6+W{h(kTS2j%
zW7lR3KIzo|M)gRp&@=IttWpHF%y5ZpTgn{hJZe}SlepzE<e-(XYx~yR{k7+1^81EK
z&$Ayef4pjB-6<st0$j;kb@v7yre2k_1ucE6M4Z;HI43$xPu7B|i+C9}`4n2z8%!Jc
zN~SS%>5P_s|KK3=9eWWoG`?_W>I0g~>-kL=>3e>7l<AOF2=aDn41cmol)vIM3*=Lo
zY)lr~H3?Wh7QS|@3mMz0=h1hFZ&Z!4l!9#CG|K*TU2Zp{h1j|4E%_`2$3@7(GP{1`
zm-}(PS^s*!=*kd?Eh|&|cg@`9BKYC56G4%@o6RIA^1sL)i0#1|p#NONBTAV;M9coY
ztlLU+vtFMrLUbvJ8Qi8m<Li-R|J{Kg;%5D`Rb?do)R<%a*^Z#<jFxa4tB>t_7%R@=
zN;hJ82B_nS;2VvN;b#l%MR4dmq784YN_)_p%8`!AkJ7GaZ(9MT!D^4tONI2A&dv3z
zHy{NDw;mYE46$DhO<PV)uiD<qu0!DPy#;e|9@Eux^dz>u9esd4Y1#j>^(RPBeE5Mx
zfI{~G`8sD<oa5E}9c*J#M~)vu;J=)N%mm4mbSB}}+60c{SW8I4u8stuc-r+;$zJVf
z9bv?Eb>Kuh$8qV}q_ubqFtNser44Yra_(x=o~=oicUrz>HgJRjytmG+0Nw0_gaoE%
zz#8B)KNgEJrcyc=6bYEiKV1171-Xsh*YzT2=q@xRDqAOOqL**2?)2ubo22Eqq7oAl
z>apUT>;CV-;PF52lLP1Oho*zz@M%fVvm2Y2mdLg^GOBAZM0CC2x0J}14g!el5<JAk
z#fJ}o2t`U*d7vR(@f3F+9p-~K5MBEOvS^*IAGmBnePz7J;Qx1Buuf={ljBdg3LzA!
zXc3v2FRBQ^q^e<$mFPoY_kk57T76z|6%rE<p{65J%5>=!KDiHT1-M&Ll+pz1s?kNp
zq!KYK%*+pvK-U3G!&-51=1~cQ2@0jp3kzN?iSka55j6z|FAz-}J~HpLAmHPzDwTbS
z#Vmp6*%*Yj$f>;yB(+@u_@rC+$kEN=!7XxI(0;RN2eZ_t7`2g)`3qt)jCB<x)0WW@
zP_#B@jUnuxDr}y6s4>-n0Jdw9=@cN}79SoY^Q!wpI95jZb-)CY=0~!&(1LNbm^WkI
zFpQS}BU$Im&b4P*mJ&L9iv~+ts9~p%h34Ss_+=SKdgR~~GyI+wp)p+6miV_3DCoe_
zNvPugQe*&<1Q-@9W+e3{d3a|rze2;>aY|8@&>CSF8yVu1Y1qj2O9eW4aC+A*Fa@C2
zg)|blmnBg}Y;?87(H~pUQF2c4-)>?CJgX=%_K>Iza|pElZn^)-&hxjjXa%%;pT)dA
z6qm9hv%k6j_$kQJ(KBSwXc41A8Xt2_F0a69bM)WtL{8U2@NFIp{##+N|5iAh6Wm#&
z%=-AAT860zS5;$MLPp5&D;r!H)6UNY`TXwTS6FMfP6lKqo_##4SJJv5<;E|<@>=M1
z;q^~~5yM*JsXY(qaeO{du<jSd+l3W{Ze7*y|6QJ$pU4D)=ZhqXku{wd(+=L}lLx)`
z^B3eNqR;2gz8JhHN<wSep8MQ)%%iF7!=2qPpErKb#x*+KsCZd$tdND%h0Za<%=req
zl@<Nk2yS_(w{>`IU;lG~X)-`oaF*|`PXa9C{uwS6B$Y9xDtv`-Ev?7hC^V;|C*nFy
z+e^;=(ghwR#uU$008BH>^Q0Zw<7JPa1?=W8;cm8tzEEB#Er>5nP@-2A>1#Q_Hl_fa
zIiw&Nw8ml>GeJTu0@};_7iVa5_k(Na34#ox>%({sy{^%@8`7P?OM53|0qc)=${joq
z*F`I&OY{^Id0*stKTys&NBHlx>q5kQ43<OZ@B?ruzXSkfxSN^hSNFY9XW9*&y*-BQ
zow&~fig4~hN>j}Or5%ER`d6+|w6JY<%5IG8aB+1XC3jf(V_+voO96@hAHu-$7cloE
zEw$?*R2jN2gzCP7qs}93SII03a93fU4-%a&*L<{y&0qDB7ZYxXK9}CJczuv0V)2JD
zg?t@dhOPxZ<v(eLmo^@IrMlnsKaErDqc!yO@@r^fb2-5YeIFWA-EU4tuwz1L85kS^
z1k)v#Yf6K?V&R6~ueT4-C;#%ct_dS=@7w|#VpiHAz;T>FaVhYVt1cYFA@pq7{`Pcw
zYlp(`+L;lfTLE1@E^th>?4{+4{C`IYk_^c-5iFTaMi)sd$eo_|_A4Mji9Sp%@b&@M
z>2*Rq{<9Jrt(%3XF^(eV2^_$83?vl3I(Ce0e{9OP`@E9BQ;nx~-@u0*AsKj$^@+Tu
z^*n-&T=ETex8neu%lcPSe~9Yp+Wz(xzH)kd$3E{vb2*)ZF#rt;P`4Y-QPO_tgY)iB
z{hbfzM-u7{uNzJzfd?=oKF{ADdDF?`>K@O<>SY`8WE2nAGh~k>dy3cYir(k*^wKr{
zKoM<)<-b-ju_-woGvhVFSAFjXO<3)^hRz8j-zzk$qdFtx`m);9R=-g5o+nlc`G<DL
zGj97Hp9q2XOC<Np_KaI3fkEeKzvQ8R)(iKr?#HqiZEKC(RnJ?wZ+`z3W2<5@h4LtW
z$|x$u;QKveedZ{aPF)Quhce`F^#aN~A-d^@@424{=2KaRZ-u2?E~k{WpLe<+52Zaj
zbH%MxV}T<%-f1k4xmJ)AtY-Rrgp;UpfS>V#S?!er%L=4}jixL>905DW2b*V6P-oOp
zwNk6=0>A!IbD8fN(D(6mil4PN1t1p}*!S9gCsBhJc<a*#5QP(dAKCVd*yywyDS3Gs
z1M64}x3@iBXaZ{^L+S#ersz)HP+ML{5WYwHAKFFyeR#DShlls6?N@JHC1!L%I8lii
z`;UY>2jv4WSN0#1M0E~cC@9mPuVJ4^6qj7X<!CJK%Fuggm~aceU)k!-T0ijRUH{uC
z>?A;^#Gkz%PO%c}OKq83=k?2<iOGwjtKE0+GwtoY+K<x_oj;y<StCh-Y{Ih;RDfB%
zGMwW!uq2hhUmqt6Fv4-8F~WVo_@8zl^t>+EqS4*&=}st71G^p#Re!|SerG2lUO0Vt
z_3?ZsB>b2A*1Fxl$ba5`jo)QXSYLk0mW&&aupn1Ux}EahB7X7so(UG-%!#DOi@i-w
z-F5W>9F3a;zVpoN{k|~y>&sUP1?c6PXkiP@-X#Bi2h(J24$OE@SV%kHU)gS(E_OQF
z1?O0@`<aV|lQ;d;;xGA@f|dW|8yYIu41&gz7V;zf{ndjM48Ciet#e2$kYSBGC*g5y
z30pyQ$BD8hsvC_Eqn#Q!ld=Oo9|>q8=^_eIj(r)}MP^`AT2Sm1Lay(8i)zJ2@WSWu
zB%+u`=Y1K}To`CZ+K#3>_XlqZ#PWNA^?N847*?YYmM5q_zDH=*KKy_NeKXv_jRq<H
zg_lNgDl+1EE!5b*x`!eAI?SyiA*oa9iV6DKX+Zn7`}uC1f*G1mI^vmCnb48<i=_`4
zq8VEG4p}?kl~<(%aPZ76MCoFk<N1`8m6b`RQa#H9xDd(xl(Zb;?z<saPurjOAZDFl
z=*ynm`BHgt57Az@N)CTixoy7;b9x;?{{qV6`<De50^Fud$~OgnbqUqQ{MXpWHj_JH
zq%T>{ig*3{*+{Zm^@hv_aB5+($;ov=@_-(U#L*E@@>;YAwz8;INB=q{a)DuOXz7^H
zQPF>G`d`5K<zUukSp=mqup#`E+8tsk*t?v1@2A7pLX7F3Jx^Z;7Jp1_xFy+t6xN0~
zfQ)j-LGX^rPBtHmar~|VkGVXe_EzaZVIh7`)jiYY%3;WABKvrP(F19!Gbm!aRB+#*
zx}dI8^q8V%!3!}9F=tV$zb+J-g{*VbI^GuI0aTJBayKhz6z!iIhE)VNR|BQ)AI}ty
z9f3?a{lWY^rnNBQ{4`v^bDpCB!6Kxf42D)wrI-%`_4krPd#Kq!&jXK(WOXiPfswa2
z6ngJ#p^v*i0!F4%9`DVMD{kj7K|-VDi6iazPv9)Cyeuq@Sv+pPm$#pA3O!ez#o{Cp
zl*o*vxZm878NxAlo!ROUa$-a&k(l?!k{{E3)*TE!;YZ~01-XRmD@x9nvjqH7_QT??
z_lY|FcNi&8`IgdVhS}Hu3!wM{Z4BIaz6U#3b_`pyR><Yw7{Ck9JXPyXjx+R3%o>j{
z4m+K8qh;}WFaXe`vB#cIpAsa#zVyaNfb>8y=T$x@<W#c)V|x4j?gyqF!%Sw&47A!8
zBH30LRaKJVJ}`%!Ec3Po;o3AfKJzbGq)T}T*>^WT8LoG$-2jj^A^$67>D1PM&k<-B
z^#0D!=sxfK9+ZsT|4_!QbCF?oCiE)Mm<4P=a-xC^pU?$z*)PeAZ9Ok@<8Kf4pX}yG
zzA*#NBk7qul8X2JYX$E6g_6Sl_bDYo(Ke+iHN;xt`MyYdX&LDS%Sf+IXG_&H#>q1r
zu8haZn0&C>4Rv)gx?u%#<tO}NiUw6eGAs7?!p)}|1l7dgjjv{3rXAYG9858qqE%UQ
z+C^TGc~y1m+v<WXkdUJ>%n(z+76wo%qi7bCh{Z+?81u|Mu_KgZ&4N9zn(Ka9Oa7mx
zu05XV?vG=Xxy~(eA4<w4+K)^kmn9MUElK!IBh1E6HFC*aEey5%@+g(N+-HlYxy-Ps
z<T}qN=D~gu6ZW`-<axgHyk5W8@BDw>uk$&V_j$k1=bYC`8o0df=yP}bv(#dD!<R%j
zKr}XKL&nVVO+CFywGL)qLz~m^sf6$6|Ger~V?r#8eX~btg~m6Ml6?mB1WjgUbxm!^
z3}^oh{WmgKG4~f0w1|gy^1rw!9LVb#CDxW#so>XkZhUP6r5i;4aYWXt;UJkXv{q5%
zc6Yw}yGW_}Q=bH!Pk^R57OAiN5wjKhMpB|rx@N1q(X4zhARHj!DF-0qBKmFDe`3_#
zX2oESzDGd}2Vy@JrK-{r-zw66ul*TOI-o-*C1S9)^tl*YhRxs<Mp)5Fs8ghFj<+51
zL&+O{I`TTqxNxO+P_rOVl82%7)ET}Wsr!fffqJh7)Z{T1p8Cow0F!8COxf_8bda^^
zBFO&$6Ocvv7mAnE$=ZDRSB0Cg87%wAaDpwMdU<Q-qIHCnV_^|3B7CGlEz?o$qI1>A
ztcovEb-iE)UsL`lspDDmn2S#I@UW!zkJ=wCYrdk_h%cErr)O=_lP^`lW7)GM4oGf<
zVcaZjIYtO}R7tp1`hxi9o(SqAnvJw^j&w$W^QGInRp^A?KVG20Y)>}4*%)gU95WW_
z$S`J(9VoZ|w+n1D06wwWzD08&o>zk!G<kDtA5?7YBdS_EJqKJ7ASglm_sj%tzoovE
zc->{ErVkFkZH+D%%XZm$Fxxlq;h}DM)HdRU5!u)<!jDsHb!f+gmxvI{|19^mnvF4w
z@E}iDisr(mV&-F3;t)dcXgi@~FY~<$rN%lg3Vgi@vE!C)8kw;P511P1&@TFuG<@wt
zt5X3S5+oR6^?@NqWUz`)r#}{)iG<6I)i(IDRvWWw@UqyO3V^+KJNy56Gap^NvZ|iy
zvF2DxeYSYXc+e!(K#wo$FMvi;XF3bbONJ^R;52DSrEvR$d=4q6_1LjcI#dSl*l03w
zdb5%rS31%W>NpVN#m2Uw(uN_K9Q=!@^-kVqYDgV%9>Y;=5r)vLVybx3CPPgT0mb!1
z(r%sQg~CSgOWig=%A!ASAo0gdEmn1KbYd=Ncf{Kwf5DqJ0l)rfz?=LVo+1wD1lD{8
zvgub!b}kl`B3o&oX!mr0??G)BO66>BifJ(^XPxhz$K10MRo2N+6wh)w><l@BK~#;-
zyo{>if6$#|*etyR0XiL^V6iH&iu`fioT2|-gk1g?A41Y(%d2Vd(3y?qAGEr@9(`v}
zxsRKzWxt6M<$S!xvdg6?<3dgp7N*8H%D6sQBAu`nTAgU6AgteiV0lTkCfMDW+d-hL
zJ8Ebyy;#t4!%H@)wI~D`?6-K88mJ!vdM2D1eXmjtzHQD?aw#dfb{+GOC_w)Jp~>mS
zHx6xj6VHj`Fp*e8*yOj9Z1;4-SyK37^erX9eu(#VzZ_RYE_b1dy7G84H^LBG#5OMR
z4#*N=+1Po%o?fxb-wCdZ!aXBd(c1NjJolkl%l3STvqxzE{Id&;`t2pOC$6a`|9`X8
z7`1wL0}3_`R^IX)$^^8E<|4x7iN=#lBGCR+D#>JU51<AFYuO>w`VgmNfY*LMndhV4
zcmhTRpJj=>lr@I9RfLTPFP6f~<Jw}5WvYp`AOuF&M}!T2pDc+;r`0ngkHXzpp9`M4
z^Krj>%t6e1{93}!j79`ag}tj&N7HK9b0MuJ)6FG6g&p)r5X;!McTv%Je*BRq?bJ~_
zI`mFIy%jL!$uZhw%jehSS+2W&=9f`!DQame=>*&8>_AHn19{7iz28aVxxL%!<kZ4f
z=xHzS^ZJ;Tg@@OA@#>TocRPM_{5Th$6bzD9yG{)m5z$U42i|0qE&?}8y{-&rRbI4F
zDu~u*-^*w2{XMcyorRFF^(megQYBov797_@{FQAfp+`xPU}60JX;LG~EM=ud>B@OP
z1gZ+iZfwPCLcZyHqxk)!mR70Rb7F77=&sYtwl}m~iRbNMaPkB?5U4%cu;3eHFBJ&<
zY3nY*DRy@Em*_TnG+o9$G(Un+HNgA-ecE?qwTd%ZUvbq9%0hI*OE`gFn;omA!s09L
zsRw~B!s@+#T;or-ADAVr0{=DMdLK{$<R3A=bfh@R@`6zJ=3RXj2RB883(sO%#>?qU
z=`f*W$uUUT?21lPTU*b<sqbPb>s0>>9at22hU>&Wq#?7+&}S#izf8!o3fLnISN9S;
zVP*Wh^ebU&bzBJfy{ph-9B!3j<UW3<XDXVe5LjmTb;I>iQHN?7V(jtL!eVYtQe(!=
zZ=X65Fl8J#W$Nd_imlwlpVrH^i5WAlDvxK-;o&E%FNBr^%1O_zd^GM8M!JQCN+Kjw
znDHPCnKRu_SokGuZeE@ZyW&yWo)a0kwBn0r%C7zilJ-dKFb|l@5&_Bu=SxoY4ye?>
E0Ncuvf&c&j
diff --git a/doc/guides/sample_app_ug/img/vhost_net_sample_app.png b/doc/guides/sample_app_ug/img/vhost_net_sample_app.png
deleted file mode 100644
index c7a181b20d84b4b738f6385636974d5a3d73270d..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 23800
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%0D+QfMKh
z(m6BR#TAI~+=BpDd*b-A6)Gv{5W&=n#f8^mECG^4*i9J?$-hsvu*-libEWgI43D%R
z+AgIXl}{?b0obT#8x6QE#s)NYI&vWDbDCAi6OfhcMoE0|t7~fSnOKdImC@V~diG7h
zK-?vl`uXGOh@h`eOPs~oEZypbOwb4sc8^HtEVAa#Ww!{<_?;lBt&3+MX1!xcwI4J+
zm1_k?XVneCM0V7BSHZfLiKy}1Rv2x2AS^sM(Gq(F#uc^kwmzdrCf-_Wxg?ssuPVLo
zvp$B{q(yzq$mP;MO16(yzCFkT;H^^}KphBF3pPuK$<NtZNDZR7N$F^BM@L7umE6Je
zwNZu0Z;*%Q8R7V<9kpFBLNiTpo>EWTT}4df<Da)06jLkIC6PGXN?gazw)IDc4fj9F
zvYSvN?j|`Y7Q)yO@QVu2WV-B0|7~@$h8M-2C$4of;dPU8SU%10y^efRk8s)X77IL!
z4Y9pEuopyU@w>MGO$+l6k?Mmy^TGNzMZ=PBk1q_4p)W2;1{z~Ji;jKzn)TDKUD2X7
zW_5Pw9mwh&HC-pa25Pat=ZA;XI3bOE-6rGs4D2xy42FkDA63A8^r~Qx^B3DI*jrHc
zr@=-1bILqyF%<&NKy~ID_kHr+pP@LupKX-5sP^PODu8@(bZmCzLz@S1WRnUPM+@~)
zTAB{-`91!I#)MLw%t`WN*f?JOXTI{>$BMRr+7AJr>fXy-3Q-h(J%TfngugU1sqTH$
z+&=mV4DJG?{8);zp66$p0rXSjk&BjVvxwtWNKjI`SGL^N*QEif7T$4{G}s-@-$pQE
zH*TBi-;MC#)Fx<jNIvhi=qzvpayE+d?;qvD1YcT{CQ|9YxE&}i370*p_hRla!>b7;
zvt8jUy`G0#6(|jsE&pQ7XNKX$y&gT)?n3o`p(?Dmn_rI1R`kB2_$_K=VwKssTk%_k
zRj{(V(#a)C=89D(IHH0@*hd2Vwcgr`uqO+~y@rUbUAr3Nx5vFHWI7L83EM;HotX+N
zxtdvdL+B1cCXLeE6>vVA&4QVOJ!qKr7J?$C@A(R3ViT--nLQtBkjCdPSsZfU*Uph=
z0;jM_QNQ09{kmPqkyb0gaZkf4gOl~{JmSOeK;FLdvb~JiuCKO~7pk0zkg858s?|lq
zq#5JI<&zG3mG<gbzB&tDn+iGFN?hy;>t0)}3<z$3`!;bu<f<pwc;rO3x}P(cterHc
zK99*_2TmXh;5KjqpQj+XwUPLh>a65PMy1R7V|-K;2WFee_H`0wWH9>{TO74;#b<}j
z)V72?Sp!`AKNY3L6}k6aXM@{kUydZzK)z}>3$!Joos5Fx-k<X`%mpta`90LsVP3^=
z&cV}u?Shd#^u-8cqNa~zuNlW;aF6E!MF3v*S_?BY99<xoroOjhDcPE>E=ejoV1e#~
zg&=W&22Bg|gBi45dlaxBnpq2&$+=m|#aeyg<l?=I!kJ$%z<lBWvBT#yUpzlt$sQw7
zzz68csKU>mKiMs&qdJJaG?o-)3=EMr&h};ykdZTu22y&H`C<#zK?%x1{&e?WxHj(w
zX;8xwM7sAbVDg#5`qkv83rJi6+5TJZ)o@%}FIK;T(DlJ%pl-0=pN-$2tD|!de9sEF
z%tp+}ExYKM3C_Ev9nO#jsK$9Z>BKL|Db~7&0mN*(DgiLHyzBI|yv$c5{rWh**))-M
zO0gL77LBwOv_%TwL1OIU`XfXEx3kp-=)B$ZZQDg&5A?!a3cQi8T$rv6_KdBtG|<c<
z!p83SMk?IxVR5kd^Xu2IgLO_;z*iSJYscp02?}wrODNqhq(%GA-Qg^x)9o=ffXpgJ
zp~N$&SFr<6WAB4lK{WbO4j<2O<a}h%HXa7^==d0uHEVol0enX(&&xy>D+l=BqY8+L
z3YzRdbfLmyXXEt)1q3KDD=X{YUc8LnfWMLJ`Anw%ZPW6>7KKsfw-=aiKaE9xB0?*e
zj8sqCdufr{H`rJ%Ns~9}Nmu0#t2z^Va3*19BS5ZAreoE%UGx2(pTd_o?||s{`98JH
zglS%I0*N~wK&@nv#8TIt_gnfr8G9F$SqE9GC0@`u3UgxhI@TFytPf!rLeN+GC~ZlY
zvO2;cuj{}kCUpYiD`u7TW$L(o*DaPAs6JHM-TN-1gj?lL*6W<;ln3BIZuE%-`%WXd
zLy+CJz_1CW57nY*;oJB2Xz#m<)Z~1`>c$J=UCCMD5iykRq;K@2W^7+*ijgyE0OkaD
z{C<~dvea%D%*67e!eRIpiLTk(h0T;-xUeN2@XUFfP|J)gS64beEh|fz8D$qr(#^Ns
z`|>8TgfDC2JTA^y+YCzA%8k$X&t9g1T!9dytd(aHP4TSoO~YZ1x`12o`U){yiQ=&7
z^a^RVEHX*ceZXL03cOC)t|ov`@|4-)r&!sps`-Wa<GIvE_?`*6#VxRn_%W}N%V<6&
z+kF+HBz)hOrSSkXGiB!G^&(_{Ien>xarTBA8!9)iri=`2{WdQr8v+>AqK2P|nVBy=
zH=Gp4i&qYA`*x?j(66lS*78SZY8V!In-YmIVp+TtNFJ#D8p@aY&@uxZilDi>pJjwV
ze8F5tN_%1X#^_cgW}&BGu0Cd|s)m00Bc0+bf-T!pj1Va6%~ZlM=-^^>q7#pxV>(Kh
zK5_f!aw(*QvY4X4aQ`QRGs2Fd)(R6YF$;M%E?Q#Pw`!N?789}tlIZry++k>hYI-PM
zv0WbOTNJ?;BV+;o$6FfIWMkqtXUK8!udhe;F820dk=-~`WZX2}>(0{Lma)#(^>we-
zl-p%L6-PKlp7t1?AwOTv7PDNl8t{BFGvH8T_7O(QD0T05KH$TGRBVdu`5~w`$gyPx
zb&q6gVt$s;Jd4QTpw{ArQz`t+l8~GQTc#5o{q@hKWJz<$gx(CzgcpNZsCJRh!=v4n
zrNX}XON3+sd7R7yz&C#0f^)3qQRZ5(l9O|ZVLw+mJGK89UC6=6X({!5rckgzqakGP
zT45Nmrt(^rCp7$crmN@2k}00+*xI5MJWnW77RCnmktg*Yde!i5>6$zHVJMrr<Ql<)
zlnw~q;ihCkt3Nti-1?XZay}Kz@o{fDprGuiHrWz-HD2*nc^#vu!V=aL$x>UYa|RkM
zn2BxRCnlF?MS?f1A2k(X-u^szh!EIe)qOHE_L}&pa=_T*3Al{5ZI^sV=+!Yys;3@!
zj<!>vZN<j=G(OLX6py6=CH6y$$2~E}!eT$yh$GbAKKK$0Nz3-WIvQuSKzaRR__S4K
zV(|9%jd>F9H$gP`pJv?hji+SE0`#vn-LLs<DYmd(Lri?sZ^$(!ir^}CT2hPik@%!Q
z@508tY7&*9sOgY0gkIGPg5(xMRx(q5?-{>GT!UWyh*WOc1z1R@ykC!cdvUOWPpO$P
zHgCC7+%9E(Lp9p!O9>HzVQS?+UP`B_?5Ou|hk^#bU%fK?Dm1_*P;9^o^Evp+9D$to
zN5hB=FL6Lz3qbCkmj`{@Zed0~iDuURtp|8v`RV|f6bn-nTbD-#DcN3LjM*n{MELk_
zU7*;}n!KY;mB4ab-!#C4L1T%H2kP&KOzZ!@Yon2rTtBKL;^WZDj2x^L86e%qQuhjt
zCgaRLcjFr#SG<<*XPxswvm-q7Sa!`=i9SGMXJkxG?h#s&n2deN<7qS^AjG;FU0kB+
z4nR~8tqj1im;zUugBVPxnRpW3t=Rf=TSugy_{^T&Al1iPSJQUCWJ!LM^V>Yw_{mIk
z!ou9Vj)u(vlX}2CybG7v7Sh7RA6lVU_>{;#8K>`LzES0%DMwbCEeIP8TOp3Xr*ekE
z5t1ST%D;Y=2#))qHTNuR#&51MtolH!?e6LKPbYUC1O0<9_D>4E+pai$XBGV>`>v{u
zl`(B#6V5eFDP|^6aF1Ff1y2ee^XyF;dnAXA-@aJ~2zV$Y#Hz+i%Ha68-Qr~D;w2sn
zm4e6UC`;15CUry^LP5(%$!?L_+L^8zPrh-J)G|QW-NO}e2P;!D@cFC~b!9ew(A$1&
z%^_%UJ=I`N9B;pt4kdeWZ|G!+ner{6J-ryGxlI-O%+JFWs(u;L;We(XT<027?h7Qb
zaSVyvzj(=-<Yaq<o3=W%TdNtrWDl$%e*S&o+j#Hv32LqDraAc|V2Q=*>TL|bbG!DF
zxbwNtummS339kl&b;p=s&}?cwuInMMj8a37*uo-En-GSfyO|ap<IYMRHe^b2V3(}+
z@|?nt+at`-9HwWQJgH$-Q4N@Sl9SgnTFqG3-t+SgGWm)k-4ofe_~p{otQX?k30Clk
z66(A`IW8%w%BcElN!(Sd(PI6Vvy*F_{sAlb6_0kSAOSb&pGY;;^7G%B!okVqE<KNA
zzT!9wCXxi7IUTLe?zng?Us0s;cIA{_rjDpoT*6(Rk20j-bpdQ#w&g@LFG$$$dAw$`
zfgKd=J#>q-Ia19Rp6b!O3n&i)>vGdj+_qUxVpf}Zs-sWK`)AK$<hl(sdTOgLWJoLq
z^Z7AHdsm%E6gYm{IJttzE#J$)=)OAdx6hJtYp=O8v$K~W5Gz-KhXv$u2$waDP~w_!
zds7oP3~@0xrza&Pjjh;UOUbtv<c($PzaldL)=`YRO=FKh_<tBY0sdwq7ZR=aSO;V(
z$3_8rDs%a_HNpl+Xh~uJ7T@B!TUr3#^*dF0Pu1<Cfe>gMEfdoKK*tcrGIMiRHDdWj
zfGjW|)xD?bgQ&B?sR%H+X#!bDfXVzTbNFA5(7(LPe-ecufBeQjFa5tBb^mP|-Zz<?
z{D1c3U&RMtvJw#yJ>*5#fy~eHC2~vkuEWk#!FO4JBL;vK@RowfLoKMr4Ld2X5l8Gh
zz`Z<-7?@fH_%$bFv^>SD3mF0Bn2+vb;moW!z<ngaAIVk}I{7LK?`<z>Ejq|4UG#sb
zesmTqazH6;+AG|zf3}e(zIQITv8FVSd!*ZYE2D9EjFI~cuD{IOipBEG)t0d$SilDk
zHSFW(8Ij>2f|ptHS#4!bs+#Cx^0>ItwHf}isp8hwv+o5Z1#A#}R>KL#kib9m`)BhW
z?vn`VAzf~g3>?O`oq;kP7&b3SPgVi0ZTc_E+a-{i{Pu$NMsNLa%B3YOIq9n?KWGm&
zn|}n}3Q48j%ILaz;@KgimHijMqp*4koonHmVIyVosa9mjAVhG}d(6rAl1hAO!;V-7
z)v@*7*1{6`BTIBw6ugDqy1PnAP9vS&Qil(MS|HctJTFazCS%F~g>`72IS@3qdu1K7
zG;ax`N40vaVZZF6#<NGzBlxAzip$dUeYmg@HIo5h&v-?ekzc+<3Rk!dy!e5gC7LL_
zR;$POf*eS0+HpxxA5JvX8H-Wo<46I?bpLcKaj1(yvpH#vIBPCsEbbCUBSaqG%h75^
zd_5ZM0nGj%zZ~zBG=${4OJf_lja%M|gT^ni40vC{mc&}-cQ&gJ42TYT*1gO;so8gl
z3W%`i8=Ve58f#YV3j`B>x4_YRS~(6+MphZB#;w`%`7yjog)tiZa{}hNm$|-CR{gq%
zdz!P|HRpVYJE_OCe<JS3jJ8?*ohrkG&k44W;wM3bL}z*gQyygsro99FQi3ql5)0*#
zRfOs*N;K+NXlOP37Z(>_eSC)Ul<4*wpjv-dWzu;FaQ$}9SRh-^Bidq!;1vf_NbN$;
z6G8p6x&^)RSgq1q-FTarjivbnMq!fm7Awi}nJ(#zFFq_2gU|tn{wvZXpf=sM(~F%U
zp$aV?Ml6|Wq&^FJ<ZEwIcu^>l*$xB)cT}s)asR3Dl2GtDt*_5*%6rf;Xsly0s-usI
znt)*cK%gzr9L`NYo&78?9x)f-7SQY(FQm>SXwx5YkZ<OCvE&}OsMXdC9b~sv#NoGX
z7OnN!s1V<2c^`OHqK0@-l{4m4aE!gp`2OGExZAx@;qNawnq}EIqIjWs+p@3#p0xl&
z=iQz>eX0QV^vIS^)oO#t<RP`Bbv0%pw=lEcsdN0+lLV1$OtKb^mGYH`inYPgY9BW8
zwsTI7=?4~ndILU0niFKc!gMUKHENf(NRC$c)7WvD=RRNy$QRthSz{S#xj|2iVJtZn
zP{RQ;CRcjSf&Xk$?*y`tdS9LDcjG?5$ZBAv*+i(*g2%)zYi5G&R+9;i?-XU6)Jh_t
zZ)EZgDgh??zk!T#E=x-*_K0V0m+8GMgVHvfLk@tJ5~pcczry2rK~>h4lO><68ZVya
zk4Z^LNGOd`0P{@Zc)hRhK0DsqP^I0q7ooYmiRgir%k!sT>}{|wSh$~uAWK3U8ykA{
zs@)_wz;e+{_bE4jado*<OjjXStkqzu%<S<7Fgrv<I)jbW!W>S{EwSEc?Y|~fHKSrV
z$e(W=AdncLn{~er=7GIvO^o>69^Y)Zw+=2)vHHYbaMxp4eyC1G+V|p@xjK?8=%1FP
zv=Q>W<{l8b<1aVtt6lse?2DY69+7u{GTO!iBssbknxae}MI9v|-@iP|%ionlBOmi*
z#>x0<3SG?J7zW5%Pw#H$VMAR{w-2}Ti;q?#<@0=w`Arp(a%z`FGxLDRc3j4%g1g3_
zqkeZ?Sf75fv<}q!UAlo6Z*n8gNw!G(o(|}?w=z$2P5oT1YyUQ#g_0P1)5>6{%$!vW
z5rtZ_o+{20@g#*sBn;j~L*tySU{g~Yl4p)3o%tfVAcc>Mm-sKngZK}q@rf5OTW4=z
z7&fmb=~Hm+Pz$%QBTiS|&J*zkM8`K=?C8nzNQzSv=XBd_)1JmKsIvm%Lky#4_wCJ9
zKuE}1X$KKoIVX^Wfdh8G-texffe*vF{qhvq`jOmrB(e|18l|&fLwIYHNBy)V$^iW}
zQwPlCPeZ7V2xL+rtpvfEo5c@bYqE2CfM|KK98z{TNNi-$;T;vGwK`&!Vqnn?+|sqs
z=gxITSVaJiM>8u6+L=DFx~<qHY@D$pIJ)hLD21$WI^gec4P=t55;!iS<;kpRWzClv
zNUK$uOG-#QV>9a4AIX+wHy-?+XNGZqzXCd{T18z<G|OGKUCUpWv)kfx!h8}^YHx;b
z=;G9CCl~*c8+`Um|6JQ`#Q_0B>hf3o&V~+g@l5%SRAA*iex{UI_ro$(mHDP{sv<c)
zF)8%?-I<q=A1+!kHmDK3le@{&nK*Y=bkm|yWm|pI=EIA|eA+E*?kUk6QPbf}gqzFL
z{6Mw5SxSHc0KPHc%yCaZRtf1I6_=CC>lG{!zqpGnzPRnl!Nt0J2JwBYg%MYN#8c}U
zB^e{Co~)v6Mx<8qnFW;6__eE%%NGG{rsk&Hquybpn7(m`hk74uYP<}^ragc0`@3Zo
z>5{GPi0OpnDF7X`7jn){^?84;P~-7y!UV@n>Eb52ZzptME)!Y4M*T6U$z*=IpfpCk
z6>nGUVSs*0gK+WA!C`H}%9Uful}OieU-xM29nykFy!ANd(b$8V=wD6M6EZ8HM<noE
zu&3!P<;j_IOz-@0ob5u0N?=u4bur+LQJr`=(>clGOYse;<DQL^zib!{e+`&s%JTOb
zOQ#7OXO`WhjM&TD$e(*bQ0ze`&fG>Pbi6XZE`h`mYI9O}^)VW)*%f8qK0FyU5%EWL
zB4r`j>~?Av(LL6qWjxmQOs7a}$igFJN{@4MbI-4?cFJGGDqjkKlT`n*FUqSyZXscz
zoY`evWqksWww;ZBX5<G`w&q{F?VqQA-z)M!<rsNUb9&s;B4RPnfSA)gkNA-Pc!P58
z{@xvtOby4-*cx~~K*mU#XdfBN51sN+!hay0Xf@~;>gVp;X8L|bIya%I@gpweO!q1A
zPY)ifj2?GZb~*9%ed-gTvG4xwKRFNYA9bd5SIJy@?jacub~%v8%iSVy0Y^GkQlo5R
zcF=;>xvY<GwRxN~2UolEQ163yz@*Mo^BDTZ_!J!tEu3!6(SzDG+1a<+0eUDy>{R7`
zASeV#L>Tp^4!ykIf8W#8pv_zd1AI1jh~Ls+Qa$Y8Y%=tT*z5A2<#8;B%6M^_A0DJ)
zGC;oG9z0p^h(DTJkzuKeGL`z3l=?ei+WP*#6H<SV;Qw~F&2sZD?x75-S7KBzu?m4;
z@~VJzyx}Ru;;0@!g4_6!V;C&`yk~)aAv-!5AKR;Kb*a=+NXSwy5mR#AZRf_tz!~!H
z+8!TU{GEtT6g__PjG5=sIVLz`dD>UZtLJPJ7CB^IO19ddE?d;~=fe%wtvtVC;$E;<
zM;|0>uUve&WR`^Zn@=EyX!hH3uT|LzuHjkuMsVks#OPh>rozwZ{3J;X>`62QZb=wi
z7~Gx;1y(K%vF;EXdFdh}-D*FXx`Q&3^Rf#zm|ZblZ^U<~Of5MqJGI)#j*AHfs5Q0A
zF~v+l3`#a4ozCTFq2H<fVqb53&&K&+ADkyvXtiX|O@Qs8(a%Yz2mWyM0xg#Ym}qi}
z|DhP34q&+RSD!t#iil7+CoCbJ7dOp+&0Bu2B7Ne2eq)-^hcZ9Pr`O<Hf%t4=DQElm
zF!qjb3=h#Ul+vRWtO!{d>Tnw#eS}pEW_Dkvd*Y%B+@A6f23HsSEe&Gd$I4-}{N4TE
zjQ7i^AJ5?Spai<d62?<=$DGh;!(E4b>~W1@4eYq8$V1a9q8e4n?e;AVd|KXv;D-2>
zj0`h_(ZL4q-ncLSg2v@!@Y<eC@$xdJ{y;F&jh*hfyN6Mv!h7t6B9G0KYM%y|i%iO5
z%0l@k<nS}+v=>~vE<&X?@mx-h4Mj<d@3D#R7)LcLqi=F9tM-yQZ<1SJlWXQz3OJ7b
zSIrOf?9V>Z95uss;l7Q|pE@t0+byVN0rEA%qWW1F>B4r6mEefel30w~n(s?dqc)XQ
z)I?22rjVFCm-Sr3iO#9&>Ql%J@gfs=eT1$A!?R{j(iusq2?mDX%l-caxTN(dD4NRD
zn)8`2+-?r1n<>8;d=7Y%vc@IRt|~vA?jzcQKt%gBNz2_dK9h8ptt6d9trwh~^amn>
zZiMr@y*W1xC5KzcA@ps;6H3uT-&jO3$IPsBIntQeQAX3Oks)n^UJ-10lPvhm(k?k(
zO@3yMNSP4>_R3)bKLNb{mR|OxZ&c_*M`fZm6qJ8Gi8dp#>?hWE3Xx#MayxbvB;s#v
zm{==6({ekUUx27BtVMu&&BH%qz`!gb6M1esdY`m8?by4@e!3L3fA1IZ8IRSfob$>0
zcGD#FX!+QMA^k*{8z|R(H{&z~Iykn+`$MsxbS;{9Z0HKy_f4s-BYJKy;o8V#sdj<p
zWLH@Md-YNs2FBWCb{f4;7=EhRZ@USf$xJl$Gve+hO_&yFGgQzF^R8WI4%c(VMGcEC
z>TZse;X*Grd)CFSVMAcmZbTp<9c(hT(5Tc{einENciDX<7BXn0cIQx)M5{1<sdTwp
zONzKXdl^jWX1`r1=rB?v_=p;&N#XvC-hS?n;EhW%Kb3fH@24dw4-`c_eMM0+kGbiv
z@yT)gyt)PPrsu6}u9r_Og$wH7&9T<|#guqF;$f|&7OkP5O?;z}X`O`YjfKsVdQU{q
z>F8a-;Y5LpqQNmw{zb(e!)bOt(U&eI-`Bjv8G#sh@4|F&l2)dXfxPW2ZtghfBg;ZZ
zA$bXj!PWo_CNr&2rJ^2Y<ScGE70su3q`l*f?^5|%n2nd7z^DW<IyBv&al^vIq)QW8
zdp(f@{`o{)U=spxP<(iKc|7LR6}j~z82YhvOAFQAZvut|!QZ*Fl+-kl2koB$|H*>g
z2e{j0>n?$n*ItP$-wZYZ2e_yoX=3*jie(fv{t^;+X#=jse-o%uuVF*}lx8@EGKWq2
ztP^bvJRt|+Q$RXnQX1X#JgO?&FURp6$`mq=ua4yf#<6HFt5H$gwXwiTUjF?jKSiI3
z{V0oDT8sB7*~D?*TUi7&(+zTH;D@N~t7Pumjb~A9D8L~GOBAt6y09cqd%I$T$CeAy
z1>GvAS!j}4K3ZRign?<ojLi~IrM{a<eqLb>eC$(}#u-7s-TPN=4h4oglzW%%_2Uc`
zbPaKx2om>iw`p7v^t&QPo{pb*C!CEEBI2HAE*Iaayn~o4&5f^3V(Q@3n*LS6%9g>g
znMWcziK?o~GN{k(htULQV+%GjoAn_PqR~4fN7Qo3IV*B|@4-*emD?-}j@;AP^3G~>
zz4UT3%_5gdi#<nDh{vLy(dRH$Q+&y%pL$n7MHxIko`5Gal>=X?c!GNe`3rIfeqXm~
zxBeqM*C5i>WC||Dq8rHtrX09Z8t(&FzK&6TM{73U!{^x;Lqr5C>X8X49^Jx^<qV8P
zNL5<RObm}=JM3(RPlN9sl`Ch{^kY#L%DjJXtnT6~rs+IQw^VSNoMs)V`;<}1ucM#f
zxU7^EpdQiGV5g~L7ayUa%?lW(x4^Xl7VI0H1b)LrWh&x=#?3Yt6+X`Q#@myLtI1e7
zBzg(EJkfbFL5hDtuP_h)0&lZm72{=Y_ELzVno^TD7YUzc7uL0e>U1(+(k%Bebm#Ll
zl<pJsC)hBM>t>sM)#=<M%54j6PRK)y)=5>osUDJ#c!_4cerdaHCBjB{jBcC@%(_o(
zE*kj<U5`&Mx?k=&N%h~*s9oIb;qi4sW=-tQdhCYPl8f>b#&Qb-Q3#4A3q|wPcuTc<
zmJzZVFtWC4P)+5BOp*n!%lP$D$A(8&HdHU<EIJ7bz%SR#b_&P?-S?2zI&+sRL|tvu
zz{`Ph`FY0S6uCQPtw;r^ukC~vpTHz#WvkyD4@A}9eLbW0%7*03r@d+1xQIl<Nz0)+
zX*?&!Fe-91=Pt@cgLaOO3lqVDw$gI7rjN(!A~H+$I=VLn#S;<brSXbX2V^1&3sWtL
zSTsJXKi}-=M!czBF{7mH8~*NCs9$lFML`1<>B3yFg;^&7R$>3UiNZ#g2F~K%@zGMQ
zE>J0w9acU``Sol^@s)N&=IPEv{&vR)j$zQ4DE5fOnOJf`ULGH+-B#xJcI7AE1MZjf
zM&6e4o#zFgnr+(t$uX_Md{=6}d*`tlN)m;~`5`!J&pvPRP@dtY#Jkx%nSw)KC3Ae+
z)#BSpnx?k?2Mt#bm;^!q=N9?%>c*}pDYt~Mx8;NqjlPS??Bv~Xb!*S*apson2gu>w
z&ZfT9yohkEFwJu0qW>^)&V3`lu+2Flje5NgEKs%z-dc$fH|H@Fi<h8`W4LkZ_WCCY
zxEX<;8~*~}Ecj;pH=Io#L7SP8eMN2G=~SJ?K!joy>QbpGD2$g|17bO>6p8Z-aIkW7
zs|ErmB31&;Om}VCn2`ZJ5C-NW;{zV=+c7!7V7~<}no76De%ABFFZZY=J=Ba)E%fjQ
z71odT!vM%DdC8FU8|y@os26YV{|ts1^B&D|88vHFG#|l4K42oR?W+G6B@8p}{q6;m
zO$J;Sn5OqB%GkhfYN2^~wE5Dn$#0UNp;-S7r*gu-Ptlg_3j-AgS_SjzenQ`$sf7#{
zfZ3=GYdqhfO_zq|RO8|M6?fnAJeq+eePoFyJp0_o_a}QmE*va`e?j*5_)cYoUhBSv
zZ#N5mN9Y_2oQjez(L!E_IUuu(%`?RE<Wr2uALM)s!;do-B34cYwENm7gyedhV&baN
zCtA55`rh2fqm-ocq1S((6<N65Kem!4r+GX5qmS~<>7p-&l+EsNK2$5`(<X(-8h2V0
z+{#$j_Vl1FfLCF-bmXt(Og=2Sy<DVymSoKnZDNCHy7{x#Ie*^eNQp4<uu?8nupk7K
zy}2Yrl|OhwYm>!u+&Ib?HfgFxWu_(|4W*&6)IHT}$=-^Dgm&hl^I(OHeEnf^32w<#
zXFkR+`;yu?k)2>5>#tf=Fr0o&pCjSN**h{)1@z3v<Tk=83R0k@tr@gMejH_A@*{iQ
z>O@i|uGySZfDj}VFBE@?UQ_UJ72jrPjvxL2VD9q&v~r$NO=ayK59o{nA~Fc$AmCUK
zfdN!{Zvp}WQj$m&Mp}q;LJ3`mFp9u{6zK>FJ@gs~D2PB%AoLb`kzhaqp#%f>pw8>P
z^S*bj`{8~&D`#czeRg)9=l}nmXYZE0XQ!=)-ft1YmLguUB!7v&+0G7*+VDQG`qT3D
zyB3pjh}de;3G<f^_kDiQ8c(E@WKQkP8@i4vYIBf?rUC*?IM;sX0HKEiDi%Ce?_m7X
z2Zc$9C~(gFA0~Y6F7=^L_(W}ni%v^8=jN)NKlFMI1bl1E&(M~=j%HZ#Y^Z9{(HvG>
zEbg4Ze9oSR&(}t$#&eZ9SXTC0^e9uO_Fmc?mOpoVD0-Jr8^Jm$1r;?7jTiI6n(zrF
z%yka7rpc`Io|i;e?CIU-&0WlF8A>HhllQ`H2=67=xxE~8V)!a>e`w1u`&aun%xRx8
zK`ZMUIwgIKyId4nmhsvT&GYeoQ2~*$;Oa0N_QSbIF7b9rDZLnMylZ83KPTp{k#0nl
z)X+8x@=yuWv~ogP%oEM*(yS*R#hS1}$%i);U-<Mf1djp^0V-+Ii|~E0<HwI`YGh~}
z8xG1&)GQ_LHnt9Jl5@wiD#0t3+Ay<+6rUDj;}lbsc;*mBISK(IeFAT#=bTt$GfsmD
z^7=Ps9c;82lS1Em5fBgEi~3EWtHf|`7e}0-pMjY1*z2>w*JUj(V3zdanR5i?*%GQc
z^!-!>u7<|?_II-Ij!V+?@V`3$*rO~U5B8@RjxCk-YcIm+;VgQ51J9HA)s7q1ADi}2
z=5imIxgp8T*J$zNB?Vi0G8*#obE}Cw!gnVsa(pXTkFAAuASslgSr*GM<M>P&iAS!^
z3R-RriqR&n>n~idXf=!tF5)(>>&o9|T2{dZ2bKDg4k~2CtAyc1d%W`;ofNl!D(XLo
zkSA$jw~`em^<uWy<V&9SR0)WS^>y`=Pl$#pWs8NYlPSG^*rojE%#mBhWZuU9O_3{3
zG5soZwN=z<GusaGPIp^N3o4o)bAGWec8@YhL3sryy~t^*n)Wue5^M=u#Ykt7CoVhP
z_xFuvMk11+u%vCLvu3Ibv(U2UOZ?+og|&PxPZfwt_AsMiUFoh;mU<Agkd-O^%*s2P
z;)W{BuJz&IAR?;f65|%hKC|Uqfv(<Q$9=x|ffQ`0;KREs=y3WE0ad?HO?vl#{!n)L
zFgH080lC-7j+EaKXV7R}<Q3!f)^v3v=aDyuxfK`j(!c&5E>IF=u!9=3Dt|!k(-xrq
zLPgue{x*ER&aV{MO`o2$zJ|8E(4s#kNf!>9(X>c5ors<`K6c5bpA?ycaPPFmH)E}=
z8SjhU*ED=Czm4d~WpyZv8G49ETW7_N;3Bqh-cQ4mdJ5*=Ru*(zf3_4_Haln59^GO@
z)Fnv=&fko-KCEBbZz+6JaG(Io!n|fXmiS`#p#c;U;bk&Cvbke0Qps01ae2dnL7(UC
zr`+tJRH<oeqaHneEEXyO0OzOkZ!ki)s<<5C?t2H`!ZrH=8XAwT8m9Z3Z_1=S05j%^
zMayU>mAKG3ou|AWCfgmrwoP_-(Hky*j_aAkSaXtuVCJNE;m9kq`eGTQ1C>;a<CaCM
z>n|wvnKvo#<UXB4d1@s)<t<S?fAyGK_QJeMNl!0%sTpZA+!U=0@l;ayIh@N;^3>xf
zlx_1{flgpV0o1@`<t*qfS9B(a+5ntj7bhpcG(5xiZ<)qx(bAIH`P`QbSBiw|gV=#&
z)7L5o_Vvh3>i7d3i`nZ`66F7_5_b*c0SEGl*qxM0nNr9sgGJBR9=1VIlwOw5CDh?c
zc%B`Zgd4y86vp#br?xYqQa4^?aavT3P+pJbi8;Cl<kIXP6bm0K`ocTUq$%99W(C#X
zU>5TD<>pOiR__aji4?0sj?GI_o29RK0<QliDr%~(9zNud%}F2-e0D$C6?cPpO9TZT
zgm+g0=dQGObih0Ry2yI^bS;k0iqkNWfA^NBI}glduxxOmagmR;n?R^`=;p!G$;H&|
zZHS3U{E(pMX{Tcuj43>A*b<U_T<RQ9^Res+G>x^vTXZLh4b)ACz!CEGIWDbBqLDs3
ztCHO0>2dO-J5UHD&vl{}1|WRoY{btc;>&#LZ2_LZPFbjzSEb{-7j_6?wOmfQa3p|~
zuQrlOrQyTC^WAx#>pm4dgcCa?;_S+Xl(x^~>EII7e&fi+xa_&{x%v6Mezv+<8y%<>
zC(7=g^&<!1O@p|+foZdf*dG46Q5Z_%Hk80zyn20_n5$Fspd%*AP!iUUzFM?I7@1ki
zifwIejY7R29lh87_N|PamfCzxI#+VvuV66v{Za>kVq|1A(i*`g?f+?p&G5le?-V{T
z?V<I1it?*ONym5R@P`Ncgx=l}I&GCU`XDw#(g0Yu4*O6_$kYp7bRHw<o?TD6yoi_>
z7<fpVfW<`b%-EP1-xZ2xHy}59azhUfQdNR+z?l^iyedr4ndRk?>`zaY@(t2tc!6!t
zf^9;5lSBYZXdE6eR++E0U3xt<gzCNV;H~rPM?4-j;pYq4vw*knL+?@~6SI056*CGa
z(_cA!7|4$WbQAPhR#p~ZRpQ30VYvdzNWhi$*?!kGNuC0_gT-;~-ElkEB%S7>>dU7E
z+YQWKVDYV}_kH8XwAd|rRx;dI!inx(o;bTz*U>F*!gPa)yXx=7rOR;vdJ3cENO2Jf
z<4xE3>Y)9W>Yyz-v1xPaW-<%tJzqFim=-nhU>4Zg>>;npcy6-ZY=mzPgnBnOYDU%Z
z54^?Hi3A(R^Liy&6gT%e522jw;owUhIi5&cqObJzK%2idXY}454(SCb(J=A+I*I3o
z4DREnfgW*_@mz!pUUl?+ff4nwLDFGSR>Lij^O1}!@udH?U0T*xV{N#iMqom0(F*<4
zsCUy=FAPSNJ%j2jii)|FWa^I!<)@46?I;-(xMujQ4UBhI&>u|RQMOIX*}JjxfjDaK
z&~bX?`otZ<MKB>{CtBqROR*cKn!WEc``A$N?n<C*5zHXtOqG>6rU%)+D9Tum@|mev
zmZBxOQSZVLO)H-GU4k-I<;Ctaq}Og>tIJPk!OWm|r94tvRpgFcZHgX2u~hT?(hAHn
zFk-A#Dzr<M;I{-cV<~07txVnZ!b<I%lZM+F>psUpK)@Jw9=gxrcCYw^JL^!rmN3%O
z#~r~(uV3=nza48BXbwNb-*<>d*OG&*WifdQK2{xzx2Mn#B5PrXFTLbLck7xv&lOp=
zA$7@lcE<2(IRz^wqAs1Vk%!vPGNbpO6WjTW9sa2D@~jTdhL8U){-DX4z(L2$xJ?uY
z%WqiJ3g+8*suo@|;tlf74kC|OrIv=iV?3s=*T8e<3x?mh7B3pL6mQL?mZ$ouVc(XT
zRnBwJ7vs2*j5fp63apy&1doWvfED&mqDJl%@o{iqH_u-4(zCTL^?Q^0{LU<L!%WU9
zO`1|}>hV80MSh5^>wr<&o)El|!oT_?pwQ@5Tf0oJZBouk6<VVIW@3wb+UZF}E7{#z
zg+prk4}`IKjABP**Wt%p>t12xO!JwVjat|YC4{~f*`)8=rWm^hA%|*{*D7RcjNyCJ
z3hI93Ft3=5BFm*WamtG?O%-Zo!7GK{TOZU^BiQ*cyMws|3Hr)%vxeJ~z`|o|v37AF
zDM{>5#k##R?S%Ux#{}BCmxP(cyAk<=RZIvXMh=jv0w?#CQbZOY^~RwCtPPCMQAHxg
zvmA@jK-pc*=8nl4M}vrI*!ZA$>27_c!~@|BfqgU495=<P#IwuJ6Sdec9!D%4l=>tH
z)2>`vC;QPfMI<4s!Ls3if3P$<a)GEXJ5AD8ly!%M+*76Dnp@ngH_<k`a3S_xt$gn!
zvyi5{s=6k{nXCe$M@mI$S^l~8trHQG0cF(-!PvdEKhve5B`u9tbTeov!=V{s`A-vS
zLK0OP-Tr)}kabjiM`f$GvDhqZRyHB-CZi*+iHq0bj)Sh|MsVdxp2{U|A^|Fa-h8dc
zf0kOzLU&yAk4}vf-7_LehK86Q8%N%zn(WMkh}<USa~jdiMAw;V<N+{QQcre=8t*$I
zo*Rukq`J{Q4;_!Tk<@1!VHh5}#Pi{GeF{$2z6ibQGtyd<IzTb0@h>o#E<}dBj<lfq
zl(%kPVGn?`q%m}qKXoGUn?9-$y?;sBC)s4kf@R!et8nwm3z7@Ec!9n6%ocpr((U+G
zX~w!J&G!DdBKFP3$#Rr25X2o2oS>eBxVV=yGq&c84XIO_!ZBP)!(ne(s%q+j4jU52
z8A=x~s&fe$HkAahw>fW5oXAeKJ9iW%OWNhX+0?H-@E^eL_j^~4h#ryotVo-R&gEyE
zPxa?H&i74v5YHT0+ONip^{J_agJzyep1}={4~eHFXt;&ZC{T&oSKI3$44Ah{_NNd>
z$Lb%gxzQ*0Ph;AnO?PfLR%UP$YK@?G(bi)Kzr+=E9NRD)HYi8itgZ9{ys!A0)bZrG
zUw8#OAYC%%7At?66y&2@%~M?hHAQ7IO{M^ZmLzAw6qLwp^`kZU$OyO6_E4)S{*6Dz
zrWDSM4(Xk8bw_A{#E%`_&E-Goc10&}hi_PS8IunfWrN69EF)$X+0QXUUHvI|h_{pe
zM&m(Y;VKVYOJV2WM^Lu>OMQM|Wwa$M#^9D}BoA74->O0nZx%exk&qh5_We1;&;$$~
zO1#Fd#&vyllzD~#jKC+F-4kV3ptOhY&g>Qa{6xF=#4G7fi)TE<zUQPc%->%7`_(_@
zo!pO!`Wp(^76Rw*{fifXY(>7Puv1aTzYqry=#JKrr+?}x$MoL`fIc9xzEX$pSKs)9
zFiMMg^1^rA@Y^hfBKE{CE-WeR2wdEP!3u%CoiBaC0`zSP9Kiy*qkYtg%W_W!BpLL|
z9=P?75r0R!?O3sYjYJ764qEHI{!F`fmHXh<^PWiWh_P`?YvxJ5Z@-uiuzVrOVcK(e
zP1EcnX#9PezI9N37EoW`kjl3!S!lsCc6X7S#*1wqN;z-%I-FI+inD^kc#e#>X$nt%
z_7PK-v7Za3Zy7~Ay)6m_6J1Ep>G3vuN)ubWOj3XMjxoz??~=J@k&;5>^#T8N>7!x-
zkE|i-GKJs^xi+C<tsdv=Fe39i5+&k7(dQk*)(qCBm98&3z!;z&tz?Cnga4b$?b!hr
zd1N(@dEnhbU$+!?18Ym`Kde^e=?qW9YZSZ|fx)oCk1mt1N^pY0k^sS6AIC=_dEXQ2
zZMa%+H>SN8Zuq*4Mlahh!g6Dn>a%NI_sp2rV*dB_On-vp;vrP{*JhGbb@fA3El8vD
z;g0$B^`qpUKrf!Dws^>AzOI8=eEKOG=lJLEG89O^WoTbGEY|r>CqMG)fd!tE7T)g?
zsY2M(DAQ^#?!A9LcMW^$7t}=n!ScannSi-(FDNQ1s>Gd~3HqPLqO2i^??{<{=)34T
z)npzX9!_}o&TORAIx#J+_|+>lewCnmi;IhhUZA|jP)kb-F>pH`kaVo9tP6{anATPe
z+8W8Sp`n3FrN+m`#sZ%Y*1(|-4h}=g%gf6`x=u>6wy!{xDSYFaye@FsWI_zTVxCGc
z{o3Wrn$6A4KpA5)(43y09(g!9F%e^!p-@;*P_TB?9?oHBWkAQ=+}x?8&Nod%L!&xy
zXAMW8ZEP3=2RJ6Aq?p%z9H(Gg3@GC@0|00Z+1~c0jDxwkx#Q8pSW8h^StwAJsb^#a
z1<t!f05wy4ySwR<hhyF1!oo)_^fcn*d&cs{DT!!6nWk?{jT{6v<0PsLXv=J;P7Q9%
zcl7Qn++W)UvQ<@O<-+Q!=!FXx5)%>%5Uaz8eH{n{LJGXQk37r6GfYw3A^Bw?w?24k
zsj7lfFMMT^A{KJQhcydFWN?xN$gST9<9CesZ~xP;;p1D-_znxd2ZR5V2L2zvl=v-Q
zdAJ`L8I8vqp1><R!e%uNRIjSR2Lg#r9G>vs%M97-hj#;y1Jczpyj7}U`{=&_z`EUw
diff --git a/doc/guides/sample_app_ug/img/virtio_linux_vhost.png b/doc/guides/sample_app_ug/img/virtio_linux_vhost.png
deleted file mode 100644
index 0614269943b9c90ea93e3e255ee9117d70c7bd5f..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 30290
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
WXa+HwGH@v@jGVNxRF#BD$o~LKi=qtx
diff --git a/doc/guides/sample_app_ug/index.rst b/doc/guides/sample_app_ug/index.rst
index 96bb317..9d0fe1f 100644
--- a/doc/guides/sample_app_ug/index.rst
+++ b/doc/guides/sample_app_ug/index.rst
@@ -120,16 +120,6 @@ Sample Applications User Guide
:numref:`figure_vmdq_dcb_example` :ref:`figure_vmdq_dcb_example`
-:numref:`figure_qemu_virtio_net` :ref:`figure_qemu_virtio_net`
-
-:numref:`figure_virtio_linux_vhost` :ref:`figure_virtio_linux_vhost`
-
-:numref:`figure_vhost_net_arch` :ref:`figure_vhost_net_arch`
-
-:numref:`figure_vhost_net_sample_app` :ref:`figure_vhost_net_sample_app`
-
-:numref:`figure_tx_dpdk_testpmd` :ref:`figure_tx_dpdk_testpmd`
-
:numref:`figure_test_pipeline_app` :ref:`figure_test_pipeline_app`
:numref:`figure_dist_perf` :ref:`figure_dist_perf`
diff --git a/doc/guides/sample_app_ug/tep_termination.rst b/doc/guides/sample_app_ug/tep_termination.rst
index c3d1e97..88e08cf 100644
--- a/doc/guides/sample_app_ug/tep_termination.rst
+++ b/doc/guides/sample_app_ug/tep_termination.rst
@@ -99,7 +99,8 @@ The sample will support the followings:
* TSO offload support for tunneling packet.
-The following figure shows the framework of the TEP termination sample application based on vhost-cuse.
+The following figure shows the framework of the TEP termination sample
+application based on DPDK vhost lib.
.. _figure_tep_termination_arch:
@@ -118,11 +119,6 @@ The example in this section have been validated with the following distributions
* Fedora* 20
-Prerequisites
--------------
-
-Refer to :ref:`vhost_app_prerequisites`.
-
Compiling the Sample Code
-------------------------
#. Compile vhost lib:
@@ -133,14 +129,6 @@ Compiling the Sample Code
CONFIG_RTE_LIBRTE_VHOST=y
- vhost user is turned on by default in the configure file config/common_linuxapp.
- To enable vhost cuse, disable vhost user.
-
- .. code-block:: console
-
- CONFIG_RTE_LIBRTE_VHOST_USER=n
-
- After vhost is enabled and the implementation is selected, build the vhost library.
#. Go to the examples directory:
@@ -167,40 +155,9 @@ Compiling the Sample Code
cd ${RTE_SDK}/examples/tep_termination
make
-#. Go to the eventfd_link directory(vhost cuse required):
-
- .. code-block:: console
-
- cd ${RTE_SDK}/lib/librte_vhost/eventfd_link
-
-#. Build the eventfd_link kernel module(vhost cuse required):
-
- .. code-block:: console
-
- make
-
Running the Sample Code
-----------------------
-#. Install the cuse kernel module(vhost cuse required):
-
- .. code-block:: console
-
- modprobe cuse
-
-#. Go to the eventfd_link directory(vhost cuse required):
-
- .. code-block:: console
-
- export RTE_SDK=/path/to/rte_sdk
- cd ${RTE_SDK}/lib/librte_vhost/eventfd_link
-
-#. Install the eventfd_link module(vhost cuse required):
-
- .. code-block:: console
-
- insmod ./eventfd_link.ko
-
#. Go to the examples directory:
.. code-block:: console
@@ -225,8 +182,7 @@ Parameters
**The same parameters with the vhost sample.**
-Refer to :ref:`vhost_app_parameters` for the meanings of 'Basename',
-'Stats', 'RX Retry', 'RX Retry Number' and 'RX Retry Delay Time'.
+Refer to :ref:`vhost_app_parameters` for detailed explanation.
**Number of Devices.**
@@ -303,12 +259,12 @@ The default value is 1.
Running the Virtual Machine (QEMU)
----------------------------------
-Refer to :ref:`vhost_app_running`.
+Refer to :ref:`vhost_app_run_vm`.
Running DPDK in the Virtual Machine
-----------------------------------
-Refer to :ref:`vhost_app_running_dpdk`.
+Refer to :ref:`vhost_app_run_dpdk_inside_guest`.
Passing Traffic to the Virtual Machine Device
---------------------------------------------
diff --git a/doc/guides/sample_app_ug/vhost.rst b/doc/guides/sample_app_ug/vhost.rst
index 921f43d..1f6d0d9 100644
--- a/doc/guides/sample_app_ug/vhost.rst
+++ b/doc/guides/sample_app_ug/vhost.rst
@@ -1,6 +1,6 @@
.. BSD LICENSE
- Copyright(c) 2010-2015 Intel Corporation. All rights reserved.
+ Copyright(c) 2010-2016 Intel Corporation. All rights reserved.
All rights reserved.
Redistribution and use in source and binary forms, with or without
@@ -33,817 +33,194 @@
Vhost Sample Application
========================
-The vhost sample application demonstrates integration of the Data Plane Development Kit (DPDK)
-with the Linux* KVM hypervisor by implementing the vhost-net offload API.
-The sample application performs simple packet switching between virtual machines based on Media Access Control
-(MAC) address or Virtual Local Area Network (VLAN) tag.
-The splitting of Ethernet traffic from an external switch is performed in hardware by the Virtual Machine Device Queues
-(VMDQ) and Data Center Bridging (DCB) features of the Intel® 82599 10 Gigabit Ethernet Controller.
+The vhost sample application demonstrates integration of the Data Plane
+Development Kit (DPDK) with the Linux* KVM hypervisor by implementing the
+vhost-net offload API. The sample application performs simple packet
+switching between virtual machines based on Media Access Control (MAC)
+address or Virtual Local Area Network (VLAN) tag. The splitting of Ethernet
+traffic from an external switch is performed in hardware by the Virtual
+Machine Device Queues (VMDQ) and Data Center Bridging (DCB) features of
+the Intel® 82599 10 Gigabit Ethernet Controller.
-Background
-----------
-
-Virtio networking (virtio-net) was developed as the Linux* KVM para-virtualized method for communicating network packets
-between host and guest.
-It was found that virtio-net performance was poor due to context switching and packet copying between host, guest, and QEMU.
-The following figure shows the system architecture for a virtio-based networking (virtio-net).
-
-.. _figure_qemu_virtio_net:
-
-.. figure:: img/qemu_virtio_net.*
-
- System Architecture for Virtio-based Networking (virtio-net).
-
-
-The Linux* Kernel vhost-net module was developed as an offload mechanism for virtio-net.
-The vhost-net module enables KVM (QEMU) to offload the servicing of virtio-net devices to the vhost-net kernel module,
-reducing the context switching and packet copies in the virtual dataplane.
-
-This is achieved by QEMU sharing the following information with the vhost-net module through the vhost-net API:
-
-* The layout of the guest memory space, to enable the vhost-net module to translate addresses.
-
-* The locations of virtual queues in QEMU virtual address space,
- to enable the vhost module to read/write directly to and from the virtqueues.
-
-* An event file descriptor (eventfd) configured in KVM to send interrupts to the virtio- net device driver in the guest.
- This enables the vhost-net module to notify (call) the guest.
-
-* An eventfd configured in KVM to be triggered on writes to the virtio-net device's
- Peripheral Component Interconnect (PCI) config space.
- This enables the vhost-net module to receive notifications (kicks) from the guest.
-
-The following figure shows the system architecture for virtio-net networking with vhost-net offload.
-
-.. _figure_virtio_linux_vhost:
-
-.. figure:: img/virtio_linux_vhost.*
-
- Virtio with Linux
-
-
-Sample Code Overview
---------------------
-
-The DPDK vhost-net sample code demonstrates KVM (QEMU) offloading the servicing of a Virtual Machine's (VM's)
-virtio-net devices to a DPDK-based application in place of the kernel's vhost-net module.
-
-The DPDK vhost-net sample code is based on vhost library. Vhost library is developed for user space Ethernet switch to
-easily integrate with vhost functionality.
-
-The vhost library implements the following features:
-
-* Management of virtio-net device creation/destruction events.
-
-* Mapping of the VM's physical memory into the DPDK vhost-net's address space.
-
-* Triggering/receiving notifications to/from VMs via eventfds.
-
-* A virtio-net back-end implementation providing a subset of virtio-net features.
-
-There are two vhost implementations in vhost library, vhost cuse and vhost user. In vhost cuse, a character device driver is implemented to
-receive and process vhost requests through ioctl messages. In vhost user, a socket server is created to received vhost requests through
-socket messages. Most of the messages share the same handler routine.
-
-.. note::
- **Any vhost cuse specific requirement in the following sections will be emphasized**.
-
-Two implementations are turned on and off statically through configure file. Only one implementation could be turned on. They don't co-exist in current implementation.
-
-The vhost sample code application is a simple packet switching application with the following feature:
-
-* Packet switching between virtio-net devices and the network interface card,
- including using VMDQs to reduce the switching that needs to be performed in software.
-
-The following figure shows the architecture of the Vhost sample application based on vhost-cuse.
-
-.. _figure_vhost_net_arch:
-
-.. figure:: img/vhost_net_arch.*
-
- Vhost-net Architectural Overview
-
-
-The following figure shows the flow of packets through the vhost-net sample application.
-
-.. _figure_vhost_net_sample_app:
-
-.. figure:: img/vhost_net_sample_app.*
-
- Packet Flow Through the vhost-net Sample Application
-
-
-Supported Distributions
------------------------
-
-The example in this section have been validated with the following distributions:
-
-* Fedora* 18
-
-* Fedora* 19
-
-* Fedora* 20
-
-.. _vhost_app_prerequisites:
-
-Prerequisites
+Testing steps
-------------
-This section lists prerequisite packages that must be installed.
-
-Installing Packages on the Host(vhost cuse required)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-The vhost cuse code uses the following packages; fuse, fuse-devel, and kernel-modules-extra.
-The vhost user code don't rely on those modules as eventfds are already installed into vhost process through
-Unix domain socket.
-
-#. Install Fuse Development Libraries and headers:
-
- .. code-block:: console
-
- yum -y install fuse fuse-devel
-
-#. Install the Cuse Kernel Module:
+This section shows the steps how to test a typical PVP case with this
+vhost-switch sample, whereas packets are received from the physical NIC
+port first and enqueued to the VM's Rx queue. Through the guest testpmd's
+default forwarding mode (io forward), those packets will be put into
+the Tx queue. The vhost-switch example, in turn, gets the packets and
+puts back to the same physical NIC port.
- .. code-block:: console
+Build
+~~~~~
- yum -y install kernel-modules-extra
+Follow the *Getting Started Guide for Linux* on generic info about
+environment setup and building DPDK from source.
-QEMU simulator
-~~~~~~~~~~~~~~
+In this example, you need build DPDK both on the host and inside guest.
+Also, you need build this example.
-For vhost user, qemu 2.2 is required.
-
-Setting up the Execution Environment
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-The vhost sample code requires that QEMU allocates a VM's memory on the hugetlbfs file system.
-As the vhost sample code requires hugepages,
-the best practice is to partition the system into separate hugepage mount points for the VMs and the vhost sample code.
-
-.. note::
-
- This is best-practice only and is not mandatory.
- For systems that only support 2 MB page sizes,
- both QEMU and vhost sample code can use the same hugetlbfs mount point without issue.
-
-**QEMU**
-
-VMs with gigabytes of memory can benefit from having QEMU allocate their memory from 1 GB huge pages.
-1 GB huge pages must be allocated at boot time by passing kernel parameters through the grub boot loader.
-
-#. Calculate the maximum memory usage of all VMs to be run on the system.
- Then, round this value up to the nearest Gigabyte the execution environment will require.
-
-#. Edit the /etc/default/grub file, and add the following to the GRUB_CMDLINE_LINUX entry:
-
- .. code-block:: console
-
- GRUB_CMDLINE_LINUX="... hugepagesz=1G hugepages=<Number of hugepages required> default_hugepagesz=1G"
-
-#. Update the grub boot loader:
-
- .. code-block:: console
-
- grub2-mkconfig -o /boot/grub2/grub.cfg
-
-#. Reboot the system.
-
-#. The hugetlbfs mount point (/dev/hugepages) should now default to allocating gigabyte pages.
-
-.. note::
-
- Making the above modification will change the system default hugepage size to 1 GB for all applications.
-
-**Vhost Sample Code**
-
-In this section, we create a second hugetlbs mount point to allocate hugepages for the DPDK vhost sample code.
-
-#. Allocate sufficient 2 MB pages for the DPDK vhost sample code:
-
- .. code-block:: console
-
- echo 256 > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages
-
-#. Mount hugetlbs at a separate mount point for 2 MB pages:
-
- .. code-block:: console
-
- mount -t hugetlbfs nodev /mnt/huge -o pagesize=2M
+.. code-block:: console
-The above steps can be automated by doing the following:
+ export RTE_SDK=/path/to/dpdk_source
+ export RTE_TARGET=x86_64-native-linuxapp-gcc
-#. Edit /etc/fstab to add an entry to automatically mount the second hugetlbfs mount point:
+ cd ${RTE_SDK}/examples/vhost
+ make
- ::
- hugetlbfs <tab> /mnt/huge <tab> hugetlbfs defaults,pagesize=1G 0 0
+Start the vswitch example
+~~~~~~~~~~~~~~~~~~~~~~~~~
-#. Edit the /etc/default/grub file, and add the following to the GRUB_CMDLINE_LINUX entry:
+.. code-block:: console
- ::
+ ./vhost-switch -c f -n 4 --socket-mem 1024 \
+ -- --socket-file /tmp/sock0 --client \
+ ...
- GRUB_CMDLINE_LINUX="... hugepagesz=2M hugepages=256 ... default_hugepagesz=1G"
+Check the `Parameters`_ section for the explanations on what do those
+parameters mean.
-#. Update the grub bootloader:
+.. _vhost_app_run_vm:
- .. code-block:: console
+Start the VM
+~~~~~~~~~~~~
- grub2-mkconfig -o /boot/grub2/grub.cfg
+.. code-block:: console
-#. Reboot the system.
+ qemu-system-x86_64 -machine accel=kvm -cpu host \
+ -m $mem -object memory-backend-file,id=mem,size=$mem,mem-path=/dev/hugepages,share=on \
+ -mem-prealloc -numa node,memdev=mem \
+ \
+ -chardev socket,id=char1,path=/tmp/sock0,server \
+ -netdev type=vhost-user,id=hostnet1,chardev=char1 \
+ -device virtio-net-pci,netdev=hostnet1,id=net1,mac=52:54:00:00:00:14 \
+ ...
.. note::
+ For basic vhost-user support, QEMU 2.2 (or above) is required. For
+ some specific features, a higher version might be need. Such as
+ QEMU 2.7 (or above) for the reconnect feature.
- Ensure that the default hugepage size after this setup is 1 GB.
+.. _vhost_app_run_dpdk_inside_guest:
-Setting up the Guest Execution Environment
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Run testpmd inside guest
+~~~~~~~~~~~~~~~~~~~~~~~~
-It is recommended for testing purposes that the DPDK testpmd sample application is used in the guest to forward packets,
-the reasons for this are discussed in `Running the Virtual Machine (QEMU)`_.
-
-The testpmd application forwards packets between pairs of Ethernet devices,
-it requires an even number of Ethernet devices (virtio or otherwise) to execute.
-It is therefore recommended to create multiples of two virtio-net devices for each Virtual Machine either through libvirt or
-at the command line as follows.
-
-.. note::
-
- Observe that in the example, "-device" and "-netdev" are repeated for two virtio-net devices.
-
-For vhost cuse:
+Make sure you have DPDK built inside the guest. Also make sure the
+corresponding virtio-net PCI device is bond to a uio driver, which
+could be done by:
.. code-block:: console
- qemu-system-x86_64 ... \
- -netdev tap,id=hostnet1,vhost=on,vhostfd=<open fd> \
- -device virtio-net-pci, netdev=hostnet1,id=net1 \
- -netdev tap,id=hostnet2,vhost=on,vhostfd=<open fd> \
- -device virtio-net-pci, netdev=hostnet2,id=net1
+ modprobe uio_pci_generic
+ $RTE_SDK/tools/dpdk-devbind.py -b=uio_pci_generic 0000:00:04.0
-For vhost user:
+Then start testpmd for packet forwarding testing.
.. code-block:: console
- qemu-system-x86_64 ... \
- -chardev socket,id=char1,path=<sock_path> \
- -netdev type=vhost-user,id=hostnet1,chardev=char1 \
- -device virtio-net-pci,netdev=hostnet1,id=net1 \
- -chardev socket,id=char2,path=<sock_path> \
- -netdev type=vhost-user,id=hostnet2,chardev=char2 \
- -device virtio-net-pci,netdev=hostnet2,id=net2
-
-sock_path is the path for the socket file created by vhost.
-
-Compiling the Sample Code
--------------------------
-#. Compile vhost lib:
-
- To enable vhost, turn on vhost library in the configure file config/common_linuxapp.
-
- .. code-block:: console
-
- CONFIG_RTE_LIBRTE_VHOST=n
-
- vhost user is turned on by default in the configure file config/common_linuxapp.
- To enable vhost cuse, disable vhost user.
-
- .. code-block:: console
-
- CONFIG_RTE_LIBRTE_VHOST_USER=y
-
- After vhost is enabled and the implementation is selected, build the vhost library.
-
-#. Go to the examples directory:
-
- .. code-block:: console
-
- export RTE_SDK=/path/to/rte_sdk
- cd ${RTE_SDK}/examples/vhost
-
-#. Set the target (a default target is used if not specified). For example:
-
- .. code-block:: console
-
- export RTE_TARGET=x86_64-native-linuxapp-gcc
-
- See the DPDK Getting Started Guide for possible RTE_TARGET values.
-
-#. Build the application:
-
- .. code-block:: console
-
- cd ${RTE_SDK}
- make config ${RTE_TARGET}
- make install ${RTE_TARGET}
- cd ${RTE_SDK}/examples/vhost
- make
+ ./x86_64-native-gcc/app/testpmd -c 0x3 -- -i
+ > start tx_first
-#. Go to the eventfd_link directory(vhost cuse required):
+Inject packets
+--------------
- .. code-block:: console
+While a virtio-net is connected to vhost-switch, a VLAN tag starts with
+1000 is assigned to it. So make sure configure your packet generator
+with the right MAC and VLAN tag, you should be able to see following
+log from the vhost-switch console. It means you get it work::
- cd ${RTE_SDK}/lib/librte_vhost/eventfd_link
+ VHOST_DATA: (0) mac 52:54:00:00:00:14 and vlan 1000 registered
-#. Build the eventfd_link kernel module(vhost cuse required):
-
- .. code-block:: console
-
- make
-
-Running the Sample Code
------------------------
-
-#. Install the cuse kernel module(vhost cuse required):
-
- .. code-block:: console
-
- modprobe cuse
-
-#. Go to the eventfd_link directory(vhost cuse required):
-
- .. code-block:: console
-
- export RTE_SDK=/path/to/rte_sdk
- cd ${RTE_SDK}/lib/librte_vhost/eventfd_link
-
-#. Install the eventfd_link module(vhost cuse required):
-
- .. code-block:: console
-
- insmod ./eventfd_link.ko
-
-#. Go to the examples directory:
-
- .. code-block:: console
-
- export RTE_SDK=/path/to/rte_sdk
- cd ${RTE_SDK}/examples/vhost/build/app
-
-#. Run the vhost-switch sample code:
-
- vhost cuse:
-
- .. code-block:: console
-
- ./vhost-switch -c f -n 4 --socket-mem 1024 --huge-dir /mnt/huge \
- -- -p 0x1 --dev-basename usvhost
-
- vhost user: a socket file named usvhost will be created under current directory. Use its path as the socket path in guest's qemu commandline.
-
- .. code-block:: console
-
- ./vhost-switch -c f -n 4 --socket-mem 1024 --huge-dir /mnt/huge \
- -- -p 0x1 --dev-basename usvhost
-
-.. note::
-
- Please note the huge-dir parameter instructs the DPDK to allocate its memory from the 2 MB page hugetlbfs.
-
-.. note::
-
- The number used with the --socket-mem parameter may need to be more than 1024.
- The number required depends on the number of mbufs allocated by vhost-switch.
.. _vhost_app_parameters:
Parameters
-~~~~~~~~~~
-
-**Basename.**
-vhost cuse uses a Linux* character device to communicate with QEMU.
-The basename is used to generate the character devices name.
-
- /dev/<basename>
-
-For compatibility with the QEMU wrapper script, a base name of "usvhost" should be used:
+----------
-.. code-block:: console
+**--socket-file path**
+Specifies the vhost-user socket file path.
- ./vhost-switch -c f -n 4 --socket-mem 1024 --huge-dir /mnt/huge \
- -- -p 0x1 --dev-basename usvhost
+**--client**
+DPDK vhost-user will act as the client mode when such option is given.
+In the client mode, QEMU will create the socket file. Otherwise, DPDK
+will create it. Put simply, it's the server to create the socket file.
-**vm2vm.**
-The vm2vm parameter disable/set mode of packet switching between guests in the host.
-Value of "0" means disabling vm2vm implies that on virtual machine packet transmission will always go to the Ethernet port;
-Value of "1" means software mode packet forwarding between guests, it needs packets copy in vHOST,
-so valid only in one-copy implementation, and invalid for zero copy implementation;
-value of "2" means hardware mode packet forwarding between guests, it allows packets go to the Ethernet port,
-hardware L2 switch will determine which guest the packet should forward to or need send to external,
-which bases on the packet destination MAC address and VLAN tag.
-.. code-block:: console
+**--vm2vm mode**
+The vm2vm parameter sets the mode of packet switching between guests in
+the host.
- ./vhost-switch -c f -n 4 --socket-mem 1024 --huge-dir /mnt/huge \
- -- --vm2vm [0,1,2]
+- 0 disables vm2vm, impling that VM's packets will always go to the NIC port.
+- 1 means a normal mac lookup packet routing.
+- 2 means hardware mode packet forwarding between guests, it allows packets
+ go to the NIC port, hardware L2 switch will determine which guest the
+ packet should forward to or need send to external, which bases on the
+ packet destination MAC address and VLAN tag.
-**Mergeable Buffers.**
-The mergeable buffers parameter controls how virtio-net descriptors are used for virtio-net headers.
-In a disabled state, one virtio-net header is used per packet buffer;
-in an enabled state one virtio-net header is used for multiple packets.
-The default value is 0 or disabled since recent kernels virtio-net drivers show performance degradation with this feature is enabled.
+**--mergeable 0|1**
+Set 0/1 to disable/enable the mergeable Rx feature. It's disabled by default.
-.. code-block:: console
-
- ./vhost-switch -c f -n 4 --socket-mem 1024 --huge-dir /mnt/huge \
- -- --mergeable [0,1]
-
-**Stats.**
+**--stats interval**
The stats parameter controls the printing of virtio-net device statistics.
-The parameter specifies an interval second to print statistics, with an interval of 0 seconds disabling statistics.
-
-.. code-block:: console
-
- ./vhost-switch -c f -n 4 --socket-mem 1024 --huge-dir /mnt/huge \
- -- --stats [0,n]
-
-**RX Retry.**
-The rx-retry option enables/disables enqueue retries when the guests RX queue is full.
-This feature resolves a packet loss that is observed at high data-rates,
-by allowing it to delay and retry in the receive path.
-This option is enabled by default.
-
-.. code-block:: console
-
- ./vhost-switch -c f -n 4 --socket-mem 1024 --huge-dir /mnt/huge \
- -- --rx-retry [0,1]
+The parameter specifies an interval (in unit of seconds) to print statistics,
+with an interval of 0 seconds disabling statistics.
-**RX Retry Number.**
-The rx-retry-num option specifies the number of retries on an RX burst,
-it takes effect only when rx retry is enabled.
-The default value is 4.
+**--rx-retry 0|1**
+The rx-retry option enables/disables enqueue retries when the guests Rx queue
+is full. This feature resolves a packet loss that is observed at high data
+rates, by allowing it to delay and retry in the receive path. This option is
+enabled by default.
-.. code-block:: console
-
- ./vhost-switch -c f -n 4 --socket-mem 1024 --huge-dir /mnt/huge \
- -- --rx-retry 1 --rx-retry-num 5
-
-**RX Retry Delay Time.**
-The rx-retry-delay option specifies the timeout (in micro seconds) between retries on an RX burst,
-it takes effect only when rx retry is enabled.
-The default value is 15.
-
-.. code-block:: console
+**--rx-retry-num num**
+The rx-retry-num option specifies the number of retries on an Rx burst, it
+takes effect only when rx retry is enabled. The default value is 4.
- ./vhost-switch -c f -n 4 --socket-mem 1024 --huge-dir /mnt/huge \
- -- --rx-retry 1 --rx-retry-delay 20
+**--rx-retry-delay msec**
+The rx-retry-delay option specifies the timeout (in micro seconds) between
+retries on an RX burst, it takes effect only when rx retry is enabled. The
+default value is 15.
-**Zero copy.**
-Zero copy mode is removed, due to it has not been working for a while. And
-due to the large and complex code, it's better to redesign it than fixing
-it to make it work again. Hence, zero copy may be added back later.
+**--dequeue-zero-copy**
+Dequeue zero copy will be enabled when this option is given.
-**VLAN strip.**
+**--vlan-strip 0|1**
VLAN strip option is removed, because different NICs have different behaviors
when disabling VLAN strip. Such feature, which heavily depends on hardware,
should be removed from this example to reduce confusion. Now, VLAN strip is
enabled and cannot be disabled.
-.. _vhost_app_running:
-
-Running the Virtual Machine (QEMU)
-----------------------------------
-
-QEMU must be executed with specific parameters to:
-
-* Ensure the guest is configured to use virtio-net network adapters.
-
- .. code-block:: console
-
- qemu-system-x86_64 ... -device virtio-net-pci,netdev=hostnet1, \
- id=net1 ...
-
-* Ensure the guest's virtio-net network adapter is configured with offloads disabled.
-
- .. code-block:: console
-
- qemu-system-x86_64 ... -device virtio-net-pci,netdev=hostnet1, \
- id=net1, csum=off,gso=off,guest_tso4=off,guest_tso6=off,guest_ecn=off
-
-* Redirect QEMU to communicate with the DPDK vhost-net sample code in place of the vhost-net kernel module(vhost cuse).
-
- .. code-block:: console
-
- qemu-system-x86_64 ... -netdev tap,id=hostnet1,vhost=on, \
- vhostfd=<open fd> ...
-
-* Enable the vhost-net sample code to map the VM's memory into its own process address space.
-
- .. code-block:: console
-
- qemu-system-x86_64 ... -mem-prealloc -mem-path /dev/hugepages ...
-
-.. note::
-
- The QEMU wrapper (qemu-wrap.py) is a Python script designed to automate the QEMU configuration described above.
- It also facilitates integration with libvirt, although the script may also be used standalone without libvirt.
-
-Redirecting QEMU to vhost-net Sample Code(vhost cuse)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-To redirect QEMU to the vhost-net sample code implementation of the vhost-net API,
-an open file descriptor must be passed to QEMU running as a child process.
-
-.. code-block:: python
-
- #!/usr/bin/python
- fd = os.open("/dev/usvhost-1", os.O_RDWR)
- subprocess.call
- ("qemu-system-x86_64 ... -netdev tap,id=vhostnet0,vhost=on,vhostfd="
- + fd +"...", shell=True)
-
-.. note::
-
- This process is automated in the `QEMU Wrapper Script`_.
-
-Mapping the Virtual Machine's Memory
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-For the DPDK vhost-net sample code to be run correctly, QEMU must allocate the VM's memory on hugetlbfs.
-This is done by specifying mem-prealloc and mem-path when executing QEMU.
-The vhost-net sample code accesses the virtio-net device's virtual rings and packet buffers
-by finding and mapping the VM's physical memory on hugetlbfs.
-In this case, the path passed to the guest should be that of the 1 GB page hugetlbfs:
-
-.. code-block:: console
-
- qemu-system-x86_64 ... -mem-prealloc -mem-path /dev/hugepages ...
-
-.. note::
-
- This process is automated in the `QEMU Wrapper Script`_.
- The following two sections only applies to vhost cuse.
- For vhost-user, please make corresponding changes to qemu-wrapper script and guest XML file.
-
-QEMU Wrapper Script
-~~~~~~~~~~~~~~~~~~~
-
-The QEMU wrapper script automatically detects and calls QEMU with the necessary parameters required
-to integrate with the vhost sample code.
-It performs the following actions:
-
-* Automatically detects the location of the hugetlbfs and inserts this into the command line parameters.
-
-* Automatically open file descriptors for each virtio-net device and inserts this into the command line parameters.
-
-* Disables offloads on each virtio-net device.
-
-* Calls Qemu passing both the command line parameters passed to the script itself and those it has auto-detected.
-
-The QEMU wrapper script will automatically configure calls to QEMU:
-
-.. code-block:: console
-
- qemu-wrap.py -machine pc-i440fx-1.4,accel=kvm,usb=off \
- -cpu SandyBridge -smp 4,sockets=4,cores=1,threads=1 \
- -netdev tap,id=hostnet1,vhost=on \
- -device virtio-net-pci,netdev=hostnet1,id=net1 \
- -hda <disk img> -m 4096
-
-which will become the following call to QEMU:
-
-.. code-block:: console
-
- qemu-system-x86_64 -machine pc-i440fx-1.4,accel=kvm,usb=off \
- -cpu SandyBridge -smp 4,sockets=4,cores=1,threads=1 \
- -netdev tap,id=hostnet1,vhost=on,vhostfd=<open fd> \
- -device virtio-net-pci,netdev=hostnet1,id=net1, \
- csum=off,gso=off,guest_tso4=off,guest_tso6=off,guest_ecn=off \
- -hda <disk img> -m 4096 -mem-path /dev/hugepages -mem-prealloc
-
-Libvirt Integration
-~~~~~~~~~~~~~~~~~~~
-
-The QEMU wrapper script (qemu-wrap.py) "wraps" libvirt calls to QEMU,
-such that QEMU is called with the correct parameters described above.
-To call the QEMU wrapper automatically from libvirt, the following configuration changes must be made:
-
-* Place the QEMU wrapper script in libvirt's binary search PATH ($PATH).
- A good location is in the directory that contains the QEMU binary.
-
-* Ensure that the script has the same owner/group and file permissions as the QEMU binary.
-
-* Update the VM xml file using virsh edit <vm name>:
-
- * Set the VM to use the launch script
-
- * Set the emulator path contained in the #<emulator><emulator/> tags For example,
- replace <emulator>/usr/bin/qemu-kvm<emulator/> with <emulator>/usr/bin/qemu-wrap.py<emulator/>
-
- * Set the VM's virtio-net device's to use vhost-net offload:
-
- .. code-block:: xml
-
- <interface type="network">
- <model type="virtio"/>
- <driver name="vhost"/>
- <interface/>
-
- * Enable libvirt to access the DPDK Vhost sample code's character device file by adding it
- to controllers cgroup for libvirtd using the following steps:
-
- .. code-block:: xml
-
- cgroup_controllers = [ ... "devices", ... ] clear_emulator_capabilities = 0
- user = "root" group = "root"
- cgroup_device_acl = [
- "/dev/null", "/dev/full", "/dev/zero",
- "/dev/random", "/dev/urandom",
- "/dev/ptmx", "/dev/kvm", "/dev/kqemu",
- "/dev/rtc", "/dev/hpet", "/dev/net/tun",
- "/dev/<devbase-name>-<index>",
- ]
-
-* Disable SELinux or set to permissive mode.
-
-
-* Mount cgroup device controller:
-
- .. code-block:: console
-
- mkdir /dev/cgroup
- mount -t cgroup none /dev/cgroup -o devices
-
-* Restart the libvirtd system process
-
- For example, on Fedora* "systemctl restart libvirtd.service"
-
-* Edit the configuration parameters section of the script:
-
- * Configure the "emul_path" variable to point to the QEMU emulator.
-
- .. code-block:: xml
-
- emul_path = "/usr/local/bin/qemu-system-x86_64"
-
- * Configure the "us_vhost_path" variable to point to the DPDK vhost-net sample code's character devices name.
- DPDK vhost-net sample code's character device will be in the format "/dev/<basename>".
-
- .. code-block:: xml
-
- us_vhost_path = "/dev/usvhost"
-
Common Issues
-~~~~~~~~~~~~~
-
-* QEMU failing to allocate memory on hugetlbfs, with an error like the following::
-
- file_ram_alloc: can't mmap RAM pages: Cannot allocate memory
-
- When running QEMU the above error indicates that it has failed to allocate memory for the Virtual Machine on
- the hugetlbfs. This is typically due to insufficient hugepages being free to support the allocation request.
- The number of free hugepages can be checked as follows:
-
- .. code-block:: console
-
- cat /sys/kernel/mm/hugepages/hugepages-<pagesize>/nr_hugepages
-
- The command above indicates how many hugepages are free to support QEMU's allocation request.
-
-* User space VHOST when the guest has 2MB sized huge pages:
-
- The guest may have 2MB or 1GB sized huge pages. The user space VHOST should work properly in both cases.
-
-* User space VHOST will not work with QEMU without the ``-mem-prealloc`` option:
-
- The current implementation works properly only when the guest memory is pre-allocated, so it is required to
- use a QEMU version (e.g. 1.6) which supports ``-mem-prealloc``. The ``-mem-prealloc`` option must be
- specified explicitly in the QEMU command line.
-
-* User space VHOST will not work with a QEMU version without shared memory mapping:
-
- As shared memory mapping is mandatory for user space VHOST to work properly with the guest, user space VHOST
- needs access to the shared memory from the guest to receive and transmit packets. It is important to make sure
- the QEMU version supports shared memory mapping.
-
-* In an Ubuntu environment, QEMU fails to start a new guest normally with user space VHOST due to not being able
- to allocate huge pages for the new guest:
-
- The solution for this issue is to add ``-boot c`` into the QEMU command line to make sure the huge pages are
- allocated properly and then the guest should start normally.
-
- Use ``cat /proc/meminfo`` to check if there is any changes in the value of ``HugePages_Total`` and ``HugePages_Free``
- after the guest startup.
-
-* Log message: ``eventfd_link: module verification failed: signature and/or required key missing - tainting kernel``:
-
- This log message may be ignored. The message occurs due to the kernel module ``eventfd_link``, which is not a standard
- Linux module but which is necessary for the user space VHOST current implementation (CUSE-based) to communicate with
- the guest.
-
-.. _vhost_app_running_dpdk:
-
-Running DPDK in the Virtual Machine
------------------------------------
-
-For the DPDK vhost-net sample code to switch packets into the VM,
-the sample code must first learn the MAC address of the VM's virtio-net device.
-The sample code detects the address from packets being transmitted from the VM, similar to a learning switch.
-
-This behavior requires no special action or configuration with the Linux* virtio-net driver in the VM
-as the Linux* Kernel will automatically transmit packets during device initialization.
-However, DPDK-based applications must be modified to automatically transmit packets during initialization
-to facilitate the DPDK vhost- net sample code's MAC learning.
-
-The DPDK testpmd application can be configured to automatically transmit packets during initialization
-and to act as an L2 forwarding switch.
-
-Testpmd MAC Forwarding
-~~~~~~~~~~~~~~~~~~~~~~
-
-At high packet rates, a minor packet loss may be observed.
-To resolve this issue, a "wait and retry" mode is implemented in the testpmd and vhost sample code.
-In the "wait and retry" mode if the virtqueue is found to be full, then testpmd waits for a period of time before retrying to enqueue packets.
-
-The "wait and retry" algorithm is implemented in DPDK testpmd as a forwarding method call "mac_retry".
-The following sequence diagram describes the algorithm in detail.
-
-.. _figure_tx_dpdk_testpmd:
-
-.. figure:: img/tx_dpdk_testpmd.*
-
- Packet Flow on TX in DPDK-testpmd
-
-
-Running Testpmd
-~~~~~~~~~~~~~~~
-
-The testpmd application is automatically built when DPDK is installed.
-Run the testpmd application as follows:
-
-.. code-block:: console
-
- cd ${RTE_SDK}/x86_64-native-linuxapp-gcc/app
- ./testpmd -c 0x3 -n 4 --socket-mem 512 \
- -- --burst=64 --i --disable-hw-vlan-filter
-
-The destination MAC address for packets transmitted on each port can be set at the command line:
-
-.. code-block:: console
-
- ./testpmd -c 0x3 -n 4 --socket-mem 512 \
- -- --burst=64 --i --disable-hw-vlan-filter \
- --eth-peer=0,aa:bb:cc:dd:ee:ff --eth-peer=1,ff:ee:dd:cc:bb:aa
-
-* Packets received on port 1 will be forwarded on port 0 to MAC address
-
- aa:bb:cc:dd:ee:ff
-
-* Packets received on port 0 will be forwarded on port 1 to MAC address
-
- ff:ee:dd:cc:bb:aa
-
-The testpmd application can then be configured to act as an L2 forwarding application:
-
-.. code-block:: console
-
- testpmd> set fwd mac_retry
-
-The testpmd can then be configured to start processing packets,
-transmitting packets first so the DPDK vhost sample code on the host can learn the MAC address:
-
-.. code-block:: console
-
- testpmd> start tx_first
+-------------
-.. note::
+* QEMU fails to allocate memory on hugetlbfs, with an error like the
+ following::
- Please note "set fwd mac_retry" is used in place of "set fwd mac_fwd" to ensure the retry feature is activated.
+ file_ram_alloc: can't mmap RAM pages: Cannot allocate memory
-Passing Traffic to the Virtual Machine Device
----------------------------------------------
+ When running QEMU the above error indicates that it has failed to allocate
+ memory for the Virtual Machine on the hugetlbfs. This is typically due to
+ insufficient hugepages being free to support the allocation request. The
+ number of free hugepages can be checked as follows:
-For a virtio-net device to receive traffic,
-the traffic's Layer 2 header must include both the virtio-net device's MAC address and VLAN tag.
-The DPDK sample code behaves in a similar manner to a learning switch in that
-it learns the MAC address of the virtio-net devices from the first transmitted packet.
-On learning the MAC address,
-the DPDK vhost sample code prints a message with the MAC address and VLAN tag virtio-net device.
-For example:
+ .. code-block:: console
-.. code-block:: console
+ cat /sys/kernel/mm/hugepages/hugepages-<pagesize>/nr_hugepages
- DATA: (0) MAC_ADDRESS cc:bb:bb:bb:bb:bb and VLAN_TAG 1000 registered
+ The command above indicates how many hugepages are free to support QEMU's
+ allocation request.
-The above message indicates that device 0 has been registered with MAC address cc:bb:bb:bb:bb:bb and VLAN tag 1000.
-Any packets received on the NIC with these values is placed on the devices receive queue.
-When a virtio-net device transmits packets, the VLAN tag is added to the packet by the DPDK vhost sample code.
+* vhost-user will not work with QEMU without the ``-mem-prealloc`` option
-Running virtio_user with vhost-switch
--------------------------------------
+ The current implementation works properly only when the guest memory is
+ pre-allocated.
-We can also use virtio_user with vhost-switch now.
-Virtio_user is a virtual device that can be run in a application (container) parallelly with vhost in the same OS,
-aka, there is no need to start a VM. We just run it with a different --file-prefix to avoid startup failure.
+* vhost-user will not work with a QEMU version without shared memory mapping:
-.. code-block:: console
+ Make sure ``share=on`` QEMU option is given.
- cd ${RTE_SDK}/x86_64-native-linuxapp-gcc/app
- ./testpmd -c 0x3 -n 4 --socket-mem 1024 --no-pci --file-prefix=virtio_user-testpmd \
- --vdev=virtio_user0,mac=00:01:02:03:04:05,path=$path_vhost \
- -- -i --txqflags=0xf01 --disable-hw-vlan
+* Failed to build DPDK in VM
-There is no difference on the vhost side.
-Pleae note that there are some limitations (see release note for more information) in the usage of virtio_user.
+ Make sure "-cpu host" QEMU option is given.
--
1.9.0
^ permalink raw reply related
* [PATCH 1/3] doc: update vhost programming guide
From: Yuanhan Liu @ 2016-11-02 3:14 UTC (permalink / raw)
To: dev
In-Reply-To: <1478056501-9321-1-git-send-email-yuanhan.liu@linux.intel.com>
vhost-cuse has been removed in this release. Update the doc, with the
vhost-cuse part being removed.
Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
---
doc/guides/prog_guide/vhost_lib.rst | 62 +++++--------------------------------
1 file changed, 7 insertions(+), 55 deletions(-)
diff --git a/doc/guides/prog_guide/vhost_lib.rst b/doc/guides/prog_guide/vhost_lib.rst
index 573a318..4f997d4 100644
--- a/doc/guides/prog_guide/vhost_lib.rst
+++ b/doc/guides/prog_guide/vhost_lib.rst
@@ -46,26 +46,8 @@ vhost library should be able to:
* Know all the necessary information about the vring:
Information such as where the available ring is stored. Vhost defines some
- messages to tell the backend all the information it needs to know how to
- manipulate the vring.
-
-Currently, there are two ways to pass these messages and as a result there are
-two Vhost implementations in DPDK: *vhost-cuse* (where the character devices
-are in user space) and *vhost-user*.
-
-Vhost-cuse creates a user space character device and hook to a function ioctl,
-so that all ioctl commands that are sent from the frontend (QEMU) will be
-captured and handled.
-
-Vhost-user creates a Unix domain socket file through which messages are
-passed.
-
-.. Note::
-
- Since DPDK v2.2, the majority of the development effort has gone into
- enhancing vhost-user, such as multiple queue, live migration, and
- reconnect. Thus, it is strongly advised to use vhost-user instead of
- vhost-cuse.
+ messages (passed through a Unix domain socket file) to tell the backend all
+ the information it needs to know how to manipulate the vring.
Vhost API Overview
@@ -75,11 +57,10 @@ The following is an overview of the Vhost API functions:
* ``rte_vhost_driver_register(path, flags)``
- This function registers a vhost driver into the system. For vhost-cuse, a
- ``/dev/path`` character device file will be created. For vhost-user server
- mode, a Unix domain socket file ``path`` will be created.
+ This function registers a vhost driver into the system. ``path`` specifies
+ the Unix domain socket file path.
- Currently supported flags are (these are valid for vhost-user only):
+ Currently supported flags are:
- ``RTE_VHOST_USER_CLIENT``
@@ -171,35 +152,8 @@ The following is an overview of the Vhost API functions:
default.
-Vhost Implementations
----------------------
-
-Vhost-cuse implementation
-~~~~~~~~~~~~~~~~~~~~~~~~~
-
-When vSwitch registers the vhost driver, it will register a cuse device driver
-into the system and creates a character device file. This cuse driver will
-receive vhost open/release/IOCTL messages from the QEMU simulator.
-
-When the open call is received, the vhost driver will create a vhost device
-for the virtio device in the guest.
-
-When the ``VHOST_SET_MEM_TABLE`` ioctl is received, vhost searches the memory
-region to find the starting user space virtual address that maps the memory of
-the guest virtual machine. Through this virtual address and the QEMU pid,
-vhost can find the file QEMU uses to map the guest memory. Vhost maps this
-file into its address space, in this way vhost can fully access the guest
-physical memory, which means vhost could access the shared virtio ring and the
-guest physical address specified in the entry of the ring.
-
-The guest virtual machine tells the vhost whether the virtio device is ready
-for processing or is de-activated through the ``VHOST_NET_SET_BACKEND``
-message. The registered callback from vSwitch will be called.
-
-When the release call is made, vhost will destroy the device.
-
-Vhost-user implementation
-~~~~~~~~~~~~~~~~~~~~~~~~~
+Vhost-user Implementations
+--------------------------
Vhost-user uses Unix domain sockets for passing messages. This means the DPDK
vhost-user implementation has two options:
@@ -246,8 +200,6 @@ For ``VHOST_SET_MEM_TABLE`` message, QEMU will send information for each
memory region and its file descriptor in the ancillary data of the message.
The file descriptor is used to map that region.
-There is no ``VHOST_NET_SET_BACKEND`` message as in vhost-cuse to signal
-whether the virtio device is ready or stopped. Instead,
``VHOST_SET_VRING_KICK`` is used as the signal to put the vhost device into
the data plane, and ``VHOST_GET_VRING_BASE`` is used as the signal to remove
the vhost device from the data plane.
--
1.9.0
^ permalink raw reply related
* [PATCH 0/3] vhost: comments and doc update due to vhost-cuse removal
From: Yuanhan Liu @ 2016-11-02 3:14 UTC (permalink / raw)
To: dev
Here is a small patchset of updating vhost programming and sample guide
and comments, due to the removal of vhost-cuse.
---
Yuanhan Liu (3):
doc: update vhost programming guide
doc: update the vhost sample guide
vhost: update comments
doc/guides/prog_guide/vhost_lib.rst | 62 +-
doc/guides/sample_app_ug/img/qemu_virtio_net.png | Bin 31557 -> 0 bytes
doc/guides/sample_app_ug/img/tx_dpdk_testpmd.png | Bin 76019 -> 0 bytes
doc/guides/sample_app_ug/img/vhost_net_arch.png | Bin 154920 -> 0 bytes
.../sample_app_ug/img/vhost_net_sample_app.png | Bin 23800 -> 0 bytes
.../sample_app_ug/img/virtio_linux_vhost.png | Bin 30290 -> 0 bytes
doc/guides/sample_app_ug/index.rst | 10 -
doc/guides/sample_app_ug/tep_termination.rst | 54 +-
doc/guides/sample_app_ug/vhost.rst | 869 +++------------------
examples/tep_termination/main.c | 7 +-
examples/vhost/main.c | 4 +-
examples/vhost_xen/main.c | 3 +-
lib/librte_vhost/rte_virtio_net.h | 5 +-
lib/librte_vhost/vhost.c | 9 +-
lib/librte_vhost/vhost.h | 4 +-
15 files changed, 148 insertions(+), 879 deletions(-)
delete mode 100644 doc/guides/sample_app_ug/img/qemu_virtio_net.png
delete mode 100644 doc/guides/sample_app_ug/img/tx_dpdk_testpmd.png
delete mode 100644 doc/guides/sample_app_ug/img/vhost_net_arch.png
delete mode 100644 doc/guides/sample_app_ug/img/vhost_net_sample_app.png
delete mode 100644 doc/guides/sample_app_ug/img/virtio_linux_vhost.png
--
1.9.0
^ permalink raw reply
* Re: [PATCH v4] vhost: Add indirect descriptors support to the TX path
From: Yuanhan Liu @ 2016-11-02 2:44 UTC (permalink / raw)
To: Thomas Monjalon; +Cc: dev, vkaplans, mst
In-Reply-To: <4456077.H7TfcTU5eI@xps13>
On Tue, Nov 01, 2016 at 10:39:35AM +0100, Thomas Monjalon wrote:
> 2016-11-01 16:15, Yuanhan Liu:
> > On Fri, Oct 28, 2016 at 09:58:51AM +0200, Maxime Coquelin wrote:
> > > Agree, what we need is to be able to disable Virtio PMD features
> > > without having to rebuild the PMD.
> >
> > I want this feature (or more precisely, ability) long times ago.
> > For example, I'd wish there is an option like "force_legacy" when
> > both legacy and modern exist.
>
> You can change the behaviour of the driver with a run-time parameter
> as a struct rte_devargs.
Thanks for the tip! Yeah, it's a workable solution, not an ideal one though.
--yliu
^ permalink raw reply
* Re: [PATCH v3 02/12] net/virtio: setup and start cq in configure callback
From: Yao, Lei A @ 2016-11-02 1:38 UTC (permalink / raw)
To: Olivier Matz, dev@dpdk.org, yuanhan.liu@linux.intel.com; +Cc: dprovan@bivio.net
In-Reply-To: <1476368171-18176-3-git-send-email-olivier.matz@6wind.com>
Hi, Olivier
During the validation work with v16.11-rc2, I find that this patch will cause VM crash if enable virtio bonding in VM. Could you have a check at your side? The following is steps at my side. Thanks a lot
1. bind PF port to igb_uio.
modprobe uio
insmod ./x86_64-native-linuxapp-gcc/kmod/igb_uio.ko
./tools/dpdk-devbind.py --bind=igb_uio 84:00.1
2. start vhost switch.
./examples/vhost/build/vhost-switch -c 0x1c0000 -n 4 --socket-mem 4096,4096 - -p 0x1 --mergeable 0 --vm2vm 0 --socket-file ./vhost-net
3. bootup one vm with four virtio net device
qemu-system-x86_64 \
-name vm0 -enable-kvm -chardev socket,path=/tmp/vm0_qga0.sock,server,nowait,id=vm0_qga0 \
-device virtio-serial -device virtserialport,chardev=vm0_qga0,name=org.qemu.guest_agent.0 \
-daemonize -monitor unix:/tmp/vm0_monitor.sock,server,nowait \
-net nic,vlan=0,macaddr=00:00:00:c7:56:64,addr=1f \
net user,vlan=0,hostfwd=tcp:10.239.129.127:6107:22 \
-chardev socket,id=char0,path=./vhost-net \
-netdev type=vhost-user,id=netdev0,chardev=char0,vhostforce \
-device virtio-net-pci,netdev=netdev0,mac=52:54:00:00:00:01 \
-chardev socket,id=char1,path=./vhost-net \
-netdev type=vhost-user,id=netdev1,chardev=char1,vhostforce \
-device virtio-net-pci,netdev=netdev1,mac=52:54:00:00:00:02 \
-chardev socket,id=char2,path=./vhost-net \
-netdev type=vhost-user,id=netdev2,chardev=char2,vhostforce \
-device virtio-net-pci,netdev=netdev2,mac=52:54:00:00:00:03 \
-chardev socket,id=char3,path=./vhost-net \
-netdev type=vhost-user,id=netdev3,chardev=char3,vhostforce \
-device virtio-net-pci,netdev=netdev3,mac=52:54:00:00:00:04 \
-cpu host -smp 8 -m 4096 \
-object memory-backend-file,id=mem,size=4096M,mem-path=/mnt/huge,share=on \
-numa node,memdev=mem -mem-prealloc -drive file=/home/osimg/ubuntu16.img -vnc :10
4. on vm:
bind virtio net device to igb_uio
modprobe uio
insmod ./x86_64-native-linuxapp-gcc/kmod/igb_uio.ko
tools/dpdk-devbind.py --bind=igb_uio 00:04.0 00:05.0 00:06.0 00:07.0
5. startup test_pmd app
./x86_64-native-linuxapp-gcc/app/testpmd -c 0x1f -n 4 - -i --txqflags=0xf00 --disable-hw-vlan-filter
6. create one bonding device (port 4)
create bonded device 0 0 (the first 0: mode, the second: the socket number)
show bonding config 4
7. bind port 0, 1, 2 to port 4
add bonding slave 0 4
add bonding slave 1 4
add bonding slave 2 4
port start 4
Result: just after port start 4(port 4 is bonded port), the vm shutdown immediately.
BRs
Lei
-----Original Message-----
From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Olivier Matz
Sent: Thursday, October 13, 2016 10:16 PM
To: dev@dpdk.org; yuanhan.liu@linux.intel.com
Cc: Ananyev, Konstantin <konstantin.ananyev@intel.com>; Chandran, Sugesh <sugesh.chandran@intel.com>; Richardson, Bruce <bruce.richardson@intel.com>; Tan, Jianfeng <jianfeng.tan@intel.com>; Zhang, Helin <helin.zhang@intel.com>; adrien.mazarguil@6wind.com; stephen@networkplumber.org; dprovan@bivio.net; Wang, Xiao W <xiao.w.wang@intel.com>; maxime.coquelin@redhat.com
Subject: [dpdk-dev] [PATCH v3 02/12] net/virtio: setup and start cq in configure callback
Move the configuration of control queue in the configure callback.
This is needed by next commit, which introduces the reinitialization of the device in the configure callback to change the feature flags.
Therefore, the control queue will have to be restarted at the same place.
As virtio_dev_cq_queue_setup() is called from a place where
config->max_virtqueue_pairs is not available, we need to store this in
the private structure. It replaces max_rx_queues and max_tx_queues which have the same value. The log showing the value of max_rx_queues and max_tx_queues is also removed since config->max_virtqueue_pairs is already displayed above.
Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
---
drivers/net/virtio/virtio_ethdev.c | 43 +++++++++++++++++++-------------------
drivers/net/virtio/virtio_ethdev.h | 4 ++--
drivers/net/virtio/virtio_pci.h | 3 +--
3 files changed, 24 insertions(+), 26 deletions(-)
diff --git a/drivers/net/virtio/virtio_ethdev.c b/drivers/net/virtio/virtio_ethdev.c
index 77ca569..f3921ac 100644
--- a/drivers/net/virtio/virtio_ethdev.c
+++ b/drivers/net/virtio/virtio_ethdev.c
@@ -552,6 +552,9 @@ virtio_dev_close(struct rte_eth_dev *dev)
if (hw->started == 1)
virtio_dev_stop(dev);
+ if (hw->cvq)
+ virtio_dev_queue_release(hw->cvq->vq);
+
/* reset the NIC */
if (dev->data->dev_flags & RTE_ETH_DEV_INTR_LSC)
vtpci_irq_config(hw, VIRTIO_MSI_NO_VECTOR); @@ -1191,16 +1194,7 @@ virtio_init_device(struct rte_eth_dev *eth_dev)
config->max_virtqueue_pairs = 1;
}
- hw->max_rx_queues =
- (VIRTIO_MAX_RX_QUEUES < config->max_virtqueue_pairs) ?
- VIRTIO_MAX_RX_QUEUES : config->max_virtqueue_pairs;
- hw->max_tx_queues =
- (VIRTIO_MAX_TX_QUEUES < config->max_virtqueue_pairs) ?
- VIRTIO_MAX_TX_QUEUES : config->max_virtqueue_pairs;
-
- virtio_dev_cq_queue_setup(eth_dev,
- config->max_virtqueue_pairs * 2,
- SOCKET_ID_ANY);
+ hw->max_queue_pairs = config->max_virtqueue_pairs;
PMD_INIT_LOG(DEBUG, "config->max_virtqueue_pairs=%d",
config->max_virtqueue_pairs);
@@ -1211,19 +1205,15 @@ virtio_init_device(struct rte_eth_dev *eth_dev)
config->mac[2], config->mac[3],
config->mac[4], config->mac[5]);
} else {
- hw->max_rx_queues = 1;
- hw->max_tx_queues = 1;
+ PMD_INIT_LOG(DEBUG, "config->max_virtqueue_pairs=1");
+ hw->max_queue_pairs = 1;
}
- PMD_INIT_LOG(DEBUG, "hw->max_rx_queues=%d hw->max_tx_queues=%d",
- hw->max_rx_queues, hw->max_tx_queues);
if (pci_dev)
PMD_INIT_LOG(DEBUG, "port %d vendorID=0x%x deviceID=0x%x",
eth_dev->data->port_id, pci_dev->id.vendor_id,
pci_dev->id.device_id);
- virtio_dev_cq_start(eth_dev);
-
return 0;
}
@@ -1285,7 +1275,6 @@ static int
eth_virtio_dev_uninit(struct rte_eth_dev *eth_dev) {
struct rte_pci_device *pci_dev;
- struct virtio_hw *hw = eth_dev->data->dev_private;
PMD_INIT_FUNC_TRACE();
@@ -1301,9 +1290,6 @@ eth_virtio_dev_uninit(struct rte_eth_dev *eth_dev)
eth_dev->tx_pkt_burst = NULL;
eth_dev->rx_pkt_burst = NULL;
- if (hw->cvq)
- virtio_dev_queue_release(hw->cvq->vq);
-
rte_free(eth_dev->data->mac_addrs);
eth_dev->data->mac_addrs = NULL;
@@ -1352,6 +1338,7 @@ virtio_dev_configure(struct rte_eth_dev *dev) {
const struct rte_eth_rxmode *rxmode = &dev->data->dev_conf.rxmode;
struct virtio_hw *hw = dev->data->dev_private;
+ int ret;
PMD_INIT_LOG(DEBUG, "configure");
@@ -1360,6 +1347,16 @@ virtio_dev_configure(struct rte_eth_dev *dev)
return -EINVAL;
}
+ /* Setup and start control queue */
+ if (vtpci_with_feature(hw, VIRTIO_NET_F_CTRL_VQ)) {
+ ret = virtio_dev_cq_queue_setup(dev,
+ hw->max_queue_pairs * 2,
+ SOCKET_ID_ANY);
+ if (ret < 0)
+ return ret;
+ virtio_dev_cq_start(dev);
+ }
+
hw->vlan_strip = rxmode->hw_vlan_strip;
if (rxmode->hw_vlan_filter
@@ -1553,8 +1550,10 @@ virtio_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
dev_info->driver_name = dev->driver->pci_drv.driver.name;
else
dev_info->driver_name = "virtio_user PMD";
- dev_info->max_rx_queues = (uint16_t)hw->max_rx_queues;
- dev_info->max_tx_queues = (uint16_t)hw->max_tx_queues;
+ dev_info->max_rx_queues =
+ RTE_MIN(hw->max_queue_pairs, VIRTIO_MAX_RX_QUEUES);
+ dev_info->max_tx_queues =
+ RTE_MIN(hw->max_queue_pairs, VIRTIO_MAX_TX_QUEUES);
dev_info->min_rx_bufsize = VIRTIO_MIN_RX_BUFSIZE;
dev_info->max_rx_pktlen = VIRTIO_MAX_RX_PKTLEN;
dev_info->max_mac_addrs = VIRTIO_MAX_MAC_ADDRS; diff --git a/drivers/net/virtio/virtio_ethdev.h b/drivers/net/virtio/virtio_ethdev.h
index 04d626b..dc18341 100644
--- a/drivers/net/virtio/virtio_ethdev.h
+++ b/drivers/net/virtio/virtio_ethdev.h
@@ -47,8 +47,8 @@
#define PAGE_SIZE 4096
#endif
-#define VIRTIO_MAX_RX_QUEUES 128
-#define VIRTIO_MAX_TX_QUEUES 128
+#define VIRTIO_MAX_RX_QUEUES 128U
+#define VIRTIO_MAX_TX_QUEUES 128U
#define VIRTIO_MAX_MAC_ADDRS 64
#define VIRTIO_MIN_RX_BUFSIZE 64
#define VIRTIO_MAX_RX_PKTLEN 9728
diff --git a/drivers/net/virtio/virtio_pci.h b/drivers/net/virtio/virtio_pci.h index b8295a7..6930cd6 100644
--- a/drivers/net/virtio/virtio_pci.h
+++ b/drivers/net/virtio/virtio_pci.h
@@ -246,8 +246,7 @@ struct virtio_hw {
struct virtnet_ctl *cvq;
struct rte_pci_ioport io;
uint64_t guest_features;
- uint32_t max_tx_queues;
- uint32_t max_rx_queues;
+ uint32_t max_queue_pairs;
uint16_t vtnet_hdr_size;
uint8_t vlan_strip;
uint8_t use_msix;
--
2.8.1
^ permalink raw reply related
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox