From bbffb3f135ecfeca09046a69bb8a4dcd52a154cb Mon Sep 17 00:00:00 2001
From: yzlin
Date: Fri, 22 Sep 2023 12:23:18 +0800
Subject: [PATCH 01/13] more intuitive naming & add a new attribute to message
---
metagpt/memory/longterm_memory.py | 16 ++++++++--------
metagpt/memory/memory.py | 4 ++--
metagpt/memory/memory_storage.py | 2 +-
metagpt/roles/role.py | 2 +-
metagpt/schema.py | 1 +
tests/metagpt/memory/test_longterm_memory.py | 12 ++++++------
6 files changed, 19 insertions(+), 18 deletions(-)
diff --git a/metagpt/memory/longterm_memory.py b/metagpt/memory/longterm_memory.py
index 1f4698704..f8abea5f3 100644
--- a/metagpt/memory/longterm_memory.py
+++ b/metagpt/memory/longterm_memory.py
@@ -42,21 +42,21 @@ class LongTermMemory(Memory):
# and ignore adding messages from recover repeatedly
self.memory_storage.add(message)
- def remember(self, observed: list[Message], k=0) -> list[Message]:
+ def find_news(self, observed: list[Message], k=0) -> list[Message]:
"""
- remember the most similar k memories from observed Messages, return all when k=0
- 1. remember the short-term memory(stm) news
- 2. integrate the stm news with ltm(long-term memory) news
+ find news (previously unseen messages) from the the most recent k memories, from all memories when k=0
+ 1. find the short-term memory(stm) news
+ 2. furthermore, filter out similar messages based on ltm(long-term memory), get the final news
"""
- stm_news = super(LongTermMemory, self).remember(observed, k=k) # shot-term memory news
+ stm_news = super(LongTermMemory, self).find_news(observed, k=k) # shot-term memory news
if not self.memory_storage.is_initialized:
- # memory_storage hasn't initialized, use default `remember` to get stm_news
+ # memory_storage hasn't initialized, use default `find_news` to get stm_news
return stm_news
ltm_news: list[Message] = []
for mem in stm_news:
- # integrate stm & ltm
- mem_searched = self.memory_storage.search(mem)
+ # filter out messages similar to those seen previously in ltm, only keep fresh news
+ mem_searched = self.memory_storage.search_dissimilar(mem)
if len(mem_searched) > 0:
ltm_news.append(mem)
return ltm_news[-k:]
diff --git a/metagpt/memory/memory.py b/metagpt/memory/memory.py
index 92f0428a7..c818fa707 100644
--- a/metagpt/memory/memory.py
+++ b/metagpt/memory/memory.py
@@ -63,8 +63,8 @@ class Memory:
"""Return the most recent k memories, return all when k=0"""
return self.storage[-k:]
- def remember(self, observed: list[Message], k=0) -> list[Message]:
- """remember the most recent k memories from observed Messages, return all when k=0"""
+ def find_news(self, observed: list[Message], k=0) -> list[Message]:
+ """find news (previously unseen messages) from the the most recent k memories, from all memories when k=0"""
already_observed = self.get(k)
news: list[Message] = []
for i in observed:
diff --git a/metagpt/memory/memory_storage.py b/metagpt/memory/memory_storage.py
index 8b639150c..302d96aa7 100644
--- a/metagpt/memory/memory_storage.py
+++ b/metagpt/memory/memory_storage.py
@@ -74,7 +74,7 @@ class MemoryStorage(FaissStore):
self.persist()
logger.info(f"Agent {self.role_id}'s memory_storage add a message")
- def search(self, message: Message, k=4) -> List[Message]:
+ def search_dissimilar(self, message: Message, k=4) -> List[Message]:
"""search for dissimilar messages"""
if not self.store:
return []
diff --git a/metagpt/roles/role.py b/metagpt/roles/role.py
index b1ae51cf5..44bb3e976 100644
--- a/metagpt/roles/role.py
+++ b/metagpt/roles/role.py
@@ -185,7 +185,7 @@ class Role:
observed = self._rc.env.memory.get_by_actions(self._rc.watch)
- self._rc.news = self._rc.memory.remember(observed) # remember recent exact or similar memories
+ self._rc.news = self._rc.memory.find_news(observed) # find news (previously unseen messages) from observed messages
for i in env_msgs:
self.recv(i)
diff --git a/metagpt/schema.py b/metagpt/schema.py
index 27f5dd10c..bdca093c2 100644
--- a/metagpt/schema.py
+++ b/metagpt/schema.py
@@ -29,6 +29,7 @@ class Message:
cause_by: Type["Action"] = field(default="")
sent_from: str = field(default="")
send_to: str = field(default="")
+ restricted_to: str = field(default="")
def __str__(self):
# prefix = '-'.join([self.role, str(self.cause_by)])
diff --git a/tests/metagpt/memory/test_longterm_memory.py b/tests/metagpt/memory/test_longterm_memory.py
index 62a3a2361..dc5540520 100644
--- a/tests/metagpt/memory/test_longterm_memory.py
+++ b/tests/metagpt/memory/test_longterm_memory.py
@@ -21,35 +21,35 @@ def test_ltm_search():
idea = 'Write a cli snake game'
message = Message(role='BOSS', content=idea, cause_by=BossRequirement)
- news = ltm.remember([message])
+ news = ltm.find_news([message])
assert len(news) == 1
ltm.add(message)
sim_idea = 'Write a game of cli snake'
sim_message = Message(role='BOSS', content=sim_idea, cause_by=BossRequirement)
- news = ltm.remember([sim_message])
+ news = ltm.find_news([sim_message])
assert len(news) == 0
ltm.add(sim_message)
new_idea = 'Write a 2048 web game'
new_message = Message(role='BOSS', content=new_idea, cause_by=BossRequirement)
- news = ltm.remember([new_message])
+ news = ltm.find_news([new_message])
assert len(news) == 1
ltm.add(new_message)
# restore from local index
ltm_new = LongTermMemory()
ltm_new.recover_memory(role_id, rc)
- news = ltm_new.remember([message])
+ news = ltm_new.find_news([message])
assert len(news) == 0
ltm_new.recover_memory(role_id, rc)
- news = ltm_new.remember([sim_message])
+ news = ltm_new.find_news([sim_message])
assert len(news) == 0
new_idea = 'Write a Battle City'
new_message = Message(role='BOSS', content=new_idea, cause_by=BossRequirement)
- news = ltm_new.remember([new_message])
+ news = ltm_new.find_news([new_message])
assert len(news) == 1
ltm_new.clear()
From 53afe146b818342ec31b373f46a0bd94dc36a67a Mon Sep 17 00:00:00 2001
From: femto
Date: Sun, 24 Sep 2023 14:18:03 +0800
Subject: [PATCH 02/13] fix ltm serialize_message
---
metagpt/utils/serialize.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/metagpt/utils/serialize.py b/metagpt/utils/serialize.py
index ffafca8cd..943def839 100644
--- a/metagpt/utils/serialize.py
+++ b/metagpt/utils/serialize.py
@@ -4,7 +4,7 @@
import copy
import pickle
-from typing import Dict, List, Tuple
+from typing import Dict, List
from metagpt.actions.action_output import ActionOutput
from metagpt.schema import Message
@@ -38,7 +38,7 @@ def actionoutout_schema_to_mapping(schema: Dict) -> Dict:
mapping[field] = (List[str], ...)
elif property["type"] == "array" and property["items"]["type"] == "array":
# here only consider the `Tuple[str, str]` situation
- mapping[field] = (List[Tuple[str, str]], ...)
+ mapping[field] = (List[List[str]], ...)
return mapping
From 04cf32e1ac13b376fe8ff64db9ad26b92c59ee9d Mon Sep 17 00:00:00 2001
From: femto
Date: Mon, 25 Sep 2023 13:36:34 +0800
Subject: [PATCH 03/13] fix ltm serialize_message
---
metagpt/utils/serialize.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/metagpt/utils/serialize.py b/metagpt/utils/serialize.py
index 943def839..124176fcb 100644
--- a/metagpt/utils/serialize.py
+++ b/metagpt/utils/serialize.py
@@ -37,7 +37,7 @@ def actionoutout_schema_to_mapping(schema: Dict) -> Dict:
elif property["type"] == "array" and property["items"]["type"] == "string":
mapping[field] = (List[str], ...)
elif property["type"] == "array" and property["items"]["type"] == "array":
- # here only consider the `Tuple[str, str]` situation
+ # here only consider the `List[List[str]]` situation
mapping[field] = (List[List[str]], ...)
return mapping
From 6091f1dd7376987d2dfca6b03130f02300c2507c Mon Sep 17 00:00:00 2001
From: femto
Date: Tue, 26 Sep 2023 12:21:46 +0800
Subject: [PATCH 04/13] fix parse
---
metagpt/actions/design_api.py | 6 ++++++
metagpt/utils/common.py | 4 ++--
2 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/metagpt/actions/design_api.py b/metagpt/actions/design_api.py
index f19fcbeaa..75df8b909 100644
--- a/metagpt/actions/design_api.py
+++ b/metagpt/actions/design_api.py
@@ -207,5 +207,11 @@ class WriteDesign(Action):
prompt = prompt_template.format(context=context, format_example=format_example)
# system_design = await self._aask(prompt)
system_design = await self._aask_v1(prompt, "system_design", OUTPUT_MAPPING, format=format)
+ # fix Python package name, we can't system_design.instruct_content.python_package_name = "xxx" since "Python package name" contain space, have to use setattr
+ setattr(
+ system_design.instruct_content,
+ "Python package name",
+ system_design.instruct_content.dict()["Python package name"].strip().strip("'").strip('"'),
+ )
await self._save(context, system_design)
return system_design
diff --git a/metagpt/utils/common.py b/metagpt/utils/common.py
index 65cc15e82..59d179808 100644
--- a/metagpt/utils/common.py
+++ b/metagpt/utils/common.py
@@ -180,7 +180,7 @@ class OutputParser:
if start_index != -1 and end_index != -1:
# Extract the structure part
- structure_text = text[start_index:end_index + 1]
+ structure_text = text[start_index : end_index + 1]
try:
# Attempt to convert the text to a Python data type using ast.literal_eval
@@ -237,7 +237,7 @@ class CodeParser:
logger.error(f"{pattern} not match following text:")
logger.error(text)
# raise Exception
- return ""
+ return text # just assume original text is code
return code
@classmethod
From 8f5deffbf43278296a75b7366fb3fb9185d3c9ce Mon Sep 17 00:00:00 2001
From: voidking
Date: Wed, 27 Sep 2023 18:59:40 +0800
Subject: [PATCH 05/13] update docker image to lastest
---
README.md | 8 ++++----
docs/README_CN.md | 10 +++++-----
docs/README_JA.md | 8 ++++----
3 files changed, 13 insertions(+), 13 deletions(-)
diff --git a/README.md b/README.md
index 91a5483e0..c573fbfbe 100644
--- a/README.md
+++ b/README.md
@@ -162,9 +162,9 @@ ### Installation by Docker
```bash
# Step 1: Download metagpt official image and prepare config.yaml
-docker pull metagpt/metagpt:v0.3.1
+docker pull metagpt/metagpt:latest
mkdir -p /opt/metagpt/{config,workspace}
-docker run --rm metagpt/metagpt:v0.3.1 cat /app/metagpt/config/config.yaml > /opt/metagpt/config/key.yaml
+docker run --rm metagpt/metagpt:latest cat /app/metagpt/config/config.yaml > /opt/metagpt/config/key.yaml
vim /opt/metagpt/config/key.yaml # Change the config
# Step 2: Run metagpt demo with container
@@ -172,7 +172,7 @@ # Step 2: Run metagpt demo with container
--privileged \
-v /opt/metagpt/config/key.yaml:/app/metagpt/config/key.yaml \
-v /opt/metagpt/workspace:/app/metagpt/workspace \
- metagpt/metagpt:v0.3.1 \
+ metagpt/metagpt:latest \
python startup.py "Write a cli snake game"
# You can also start a container and execute commands in it
@@ -180,7 +180,7 @@ # You can also start a container and execute commands in it
--privileged \
-v /opt/metagpt/config/key.yaml:/app/metagpt/config/key.yaml \
-v /opt/metagpt/workspace:/app/metagpt/workspace \
- metagpt/metagpt:v0.3.1
+ metagpt/metagpt:latest
docker exec -it metagpt /bin/bash
$ python startup.py "Write a cli snake game"
diff --git a/docs/README_CN.md b/docs/README_CN.md
index 1372bf9f4..d06dda620 100644
--- a/docs/README_CN.md
+++ b/docs/README_CN.md
@@ -87,9 +87,9 @@ ### Docker安装
```bash
# 步骤1: 下载metagpt官方镜像并准备好config.yaml
-docker pull metagpt/metagpt:v0.3
+docker pull metagpt/metagpt:latest
mkdir -p /opt/metagpt/{config,workspace}
-docker run --rm metagpt/metagpt:v0.3 cat /app/metagpt/config/config.yaml > /opt/metagpt/config/config.yaml
+docker run --rm metagpt/metagpt:latest cat /app/metagpt/config/config.yaml > /opt/metagpt/config/config.yaml
vim /opt/metagpt/config/config.yaml # 修改config
# 步骤2: 使用容器运行metagpt演示
@@ -97,7 +97,7 @@ # 步骤2: 使用容器运行metagpt演示
--privileged \
-v /opt/metagpt/config:/app/metagpt/config \
-v /opt/metagpt/workspace:/app/metagpt/workspace \
- metagpt/metagpt:v0.3 \
+ metagpt/metagpt:latest \
python startup.py "Write a cli snake game"
# 您也可以启动一个容器并在其中执行命令
@@ -105,7 +105,7 @@ # 您也可以启动一个容器并在其中执行命令
--privileged \
-v /opt/metagpt/config:/app/metagpt/config \
-v /opt/metagpt/workspace:/app/metagpt/workspace \
- metagpt/metagpt:v0.3
+ metagpt/metagpt:latest
docker exec -it metagpt /bin/bash
$ python startup.py "Write a cli snake game"
@@ -123,7 +123,7 @@ ### 自己构建镜像
```bash
# 您也可以自己构建metagpt镜像
git clone https://github.com/geekan/MetaGPT.git
-cd MetaGPT && docker build -t metagpt:v0.3 .
+cd MetaGPT && docker build -t metagpt:custom .
```
## 配置
diff --git a/docs/README_JA.md b/docs/README_JA.md
index 8d6c2fe84..6bd667a94 100644
--- a/docs/README_JA.md
+++ b/docs/README_JA.md
@@ -92,9 +92,9 @@ ### Docker によるインストール
```bash
# ステップ 1: metagpt 公式イメージをダウンロードし、config.yaml を準備する
-docker pull metagpt/metagpt:v0.3.1
+docker pull metagpt/metagpt:latest
mkdir -p /opt/metagpt/{config,workspace}
-docker run --rm metagpt/metagpt:v0.3.1 cat /app/metagpt/config/config.yaml > /opt/metagpt/config/key.yaml
+docker run --rm metagpt/metagpt:latest cat /app/metagpt/config/config.yaml > /opt/metagpt/config/key.yaml
vim /opt/metagpt/config/key.yaml # 設定を変更する
# ステップ 2: コンテナで metagpt デモを実行する
@@ -102,7 +102,7 @@ # ステップ 2: コンテナで metagpt デモを実行する
--privileged \
-v /opt/metagpt/config/key.yaml:/app/metagpt/config/key.yaml \
-v /opt/metagpt/workspace:/app/metagpt/workspace \
- metagpt/metagpt:v0.3.1 \
+ metagpt/metagpt:latest \
python startup.py "Write a cli snake game"
# コンテナを起動し、その中でコマンドを実行することもできます
@@ -110,7 +110,7 @@ # コンテナを起動し、その中でコマンドを実行することもで
--privileged \
-v /opt/metagpt/config/key.yaml:/app/metagpt/config/key.yaml \
-v /opt/metagpt/workspace:/app/metagpt/workspace \
- metagpt/metagpt:v0.3.1
+ metagpt/metagpt:latest
docker exec -it metagpt /bin/bash
$ python startup.py "Write a cli snake game"
From 3942e13c8c22c39f98debf5cd7005edd7509ba19 Mon Sep 17 00:00:00 2001
From: Sirui Hong <34952977+stellaHSR@users.noreply.github.com>
Date: Wed, 4 Oct 2023 23:58:38 +0800
Subject: [PATCH 06/13] Update README.md
update twitter url
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index c573fbfbe..c326190b0 100644
--- a/README.md
+++ b/README.md
@@ -15,7 +15,7 @@ # MetaGPT: The Multi-Agent Framework
-
+
From 8e96d51d107bd13a550063ff5de4c9a338061c93 Mon Sep 17 00:00:00 2001
From: Sirui Hong <34952977+stellaHSR@users.noreply.github.com>
Date: Wed, 4 Oct 2023 23:59:07 +0800
Subject: [PATCH 07/13] Update README_CN.md
update twitter info
---
docs/README_CN.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/README_CN.md b/docs/README_CN.md
index d06dda620..7a27a0e59 100644
--- a/docs/README_CN.md
+++ b/docs/README_CN.md
@@ -15,7 +15,7 @@ # MetaGPT: 多智能体框架
-
+
From e822093465809c5e15108f6cfe81d65da060660d Mon Sep 17 00:00:00 2001
From: Sirui Hong <34952977+stellaHSR@users.noreply.github.com>
Date: Wed, 4 Oct 2023 23:59:59 +0800
Subject: [PATCH 08/13] Update README_JA.md
update twitter info
---
docs/README_JA.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/README_JA.md b/docs/README_JA.md
index 6bd667a94..eab69d912 100644
--- a/docs/README_JA.md
+++ b/docs/README_JA.md
@@ -15,7 +15,7 @@ # MetaGPT: マルチエージェントフレームワーク
-
+
From 304a03244c66affc575acadea340f93d9ae25b66 Mon Sep 17 00:00:00 2001
From: zhanglei
Date: Sat, 7 Oct 2023 16:56:19 +0800
Subject: [PATCH 09/13] =?UTF-8?q?add=EF=BC=9A=201.moderation=20tools=202.u?=
=?UTF-8?q?nittest?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
metagpt/tools/moderation.py | 40 ++++++++++++++++++++++++
tests/metagpt/tools/test_moderation.py | 42 ++++++++++++++++++++++++++
2 files changed, 82 insertions(+)
create mode 100644 metagpt/tools/moderation.py
create mode 100644 tests/metagpt/tools/test_moderation.py
diff --git a/metagpt/tools/moderation.py b/metagpt/tools/moderation.py
new file mode 100644
index 000000000..c56a6afc4
--- /dev/null
+++ b/metagpt/tools/moderation.py
@@ -0,0 +1,40 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+"""
+@Time : 2023/9/26 14:27
+@Author : zhanglei
+@File : moderation.py
+"""
+from typing import Union
+
+from metagpt.llm import LLM
+
+
+class Moderation:
+ def __init__(self):
+ self.llm = LLM()
+
+ def moderation(self, content: Union[str, list[str]]):
+ resp = []
+ if content:
+ moderation_results = self.llm.moderation(content=content)
+ results = moderation_results.results
+ for item in results:
+ resp.append(item.flagged)
+
+ return resp
+
+ async def amoderation(self, content: Union[str, list[str]]):
+ resp = []
+ if content:
+ moderation_results = await self.llm.amoderation(content=content)
+ results = moderation_results.results
+ for item in results:
+ resp.append(item.flagged)
+
+ return resp
+
+
+if __name__ == "__main__":
+ moderation = Moderation()
+ print(moderation.moderation(content=["I will kill you", "The weather is really nice today", "I want to hit you"]))
diff --git a/tests/metagpt/tools/test_moderation.py b/tests/metagpt/tools/test_moderation.py
new file mode 100644
index 000000000..225acff75
--- /dev/null
+++ b/tests/metagpt/tools/test_moderation.py
@@ -0,0 +1,42 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+"""
+@Time : 2023/9/26 14:46
+@Author : zhanglei
+@File : test_translate.py
+"""
+
+import pytest
+
+from metagpt.tools.moderation import Moderation
+
+
+@pytest.mark.parametrize(
+ ("content",),
+ [
+ [
+ ["I will kill you", "The weather is really nice today", "I want to hit you"],
+ ]
+ ],
+)
+def test_moderation(content):
+ moderation = Moderation()
+ results = moderation.moderation(content=content)
+ assert isinstance(results, list)
+ assert len(results) == len(content)
+
+
+@pytest.mark.asyncio
+@pytest.mark.parametrize(
+ ("content",),
+ [
+ [
+ ["I will kill you", "The weather is really nice today", "I want to hit you"],
+ ]
+ ],
+)
+async def test_amoderation(content):
+ moderation = Moderation()
+ results = await moderation.amoderation(content=content)
+ assert isinstance(results, list)
+ assert len(results) == len(content)
From 9cd82bff91a5f940f9fbc612fd81431eeece835e Mon Sep 17 00:00:00 2001
From: Sirui Hong <34952977+stellaHSR@users.noreply.github.com>
Date: Thu, 12 Oct 2023 23:13:30 +0800
Subject: [PATCH 10/13] Add files via upload
add log file
---
docs/resources/MetaGPT-new-log.png | Bin 0 -> 62057 bytes
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 docs/resources/MetaGPT-new-log.png
diff --git a/docs/resources/MetaGPT-new-log.png b/docs/resources/MetaGPT-new-log.png
new file mode 100644
index 0000000000000000000000000000000000000000..23e304a9baa17834955c4c30dcc3aad1a86d636d
GIT binary patch
literal 62057
zcmeGEcRbeZ`v;D{E_-BUWQUZMy+tl0sc&2_!b^E{5@JjU}FFAs6LS~OJbR0x95XrDWC2|>ul
z;ok`gGWf)l>8uL;kJ9bj6;A{?c>(-I{NC3-qh{cT`7!d#kYk{qd|ab{N5z9wlG((-I=dE!$tF5O`hW^gMbFG*%wvA{
z3~4feIIg610`-zQm{NE2e$1t4#e!9kwCqDQIA4%f&@1sYL5!!!0Ngb}m9Q=emOQi7c
zqn303+w6ZbLy-Te27>(0oRI%{4Fvh0b3~B;1r!ANU))5H{}1qByM_d8$%u}QPW40m
z-rn9u&HnGHk5>D8dVPy)aruUScUL<%@~vuu_8JCiws!!S2*#j5Wt@(WGXfE{{Jl2U
znObwlVz(rfxUABYW_r>v;3&qDVYq4M#sdIAwX05nTf(r+%Y?*nbt`}^Mbq1qp_Dm4
zPxxLrUv|VmqP%Mm#ZQ1ao8l-s>Y~(aVZoR&ls5Ut6PJ2xA_KoR?oiB4sszy>2%!x{
zOV~HNoW;z%W+P@Ar8*4lP4BINo_Y3z)#sXilu!)*{Q2|C(o!xV7ZYyn;_K_n*50&X
zdW8r-U{2=6(UG;HrrNqEVrMoAa-Q>+)ztj0@;(k!Sx}B62)$gAh-}spv_YCCIe6Z}&nQ<0o7l!hLiL-rt
zAtFQvL}fogCEcR_jKdqfj9lRetXMTrAsCB(?pJ6V_ib&hL|C5v*uCzT*d-S8u<0ubtHs5wOe)ae%TZX#T<}dyFC2kcK76y2C+!wu<
zE`5e#3row)hzRO54&}=R^_q6WzkmOJX93cw6-MRjbq++c#8Q{Y68lJt#I0ch7jYg|
zpE~%iHsG{X>2rf6vYGHJ?%gR;Ia9#IPZSGdBQ&3V`}#HEhJ3b(L4DNOj6Xj|-uEu9
z0p{)!MR{>#D;go3<_q{XHl~-Al{Ivk2*HM-LLeLu|LPL^i667Z=qwb$0`kVbN99eJ
zC{75m?@oaohV)SGXoaGm0J+5nI?jG(nQVzESBMmZ*2R5r5PoN8$8K4U
zJBHM?%eE=9JUbHP^5O!zg)EEb2%lf##S@hC(dn|UctEl*v=6>ussrl3u5iugIch7i
zN5vVUm*9Co-&qpZ+I)&hpy&!JLLBiu`Eel<^t?mpd4oK49Lt9p8Z9g=5*W}k){H@m
zg?;bbNhJ$b8~XN*u^Q9KGVrK8s5}(*RCx{8gr`zbRz4{*Dkdg&7%QfwrS<*KAFnHH
zu-YjF)f-{@x^FWxGg5vL`IuIo2e9Badg0hle105JXYa`qq})3cm6e$qF-UFb0g?QY
z@j|m7n%^H{?aOxJy(>PuF$TbqzBS(%<5|*N)qrZIr
z{<`!j98QMnqB393h;4sjzY{k8&+RH1PTF`i_;fh{y^_uQ*|#IcJCfuHZRu1lO368)
zaFWBe2v~_~`G*e|zkT~wFHcxa-kd5v)G0Be^s5$ja~isK`y9p}eT^>3x{QG<
z`EJ(t?epj8Wtwq$1CT&%4|;=y9)l{3aw^K8UlJAkS7~v3+q93PmO2|<`SIWxPi}7R
zI73%dxeK`a&=ahLfwB3g**+0D@)I0bZhe{~1AWh50m}jCT@V=47nY`{`OyoLkHEAD
z8g;5rYO^eS&^gGte
z<8Ls9aew~&8LY?a8A_k2&`_GDh)mHaA}5eDk=gTog$qF{&ya%9avA$v^w&-V5D&i1
z4vkp+eV`n8F$TDqE@92KPlJC*tyk0ew&v#rlarG8;VddqK@8$ZDk^|k(7OOyR;iBe
z6O}c?kCk@RrbMvD=mk0!J1SO`m7$+%Fo_Cv9#B*Kj0Nsc=91HR^XyVnlO_=%VS6vA
zvZA8<$zcTFe{iUR{*sTITY-}bCALU&lZDqDb%|Xp2LccT^=;cy0}g!zXX~${hb0~y
z7HK0dMif4+c3-7Iww4EqIY
z;NXUcdYPl5Pyq3KoUNF7F*g~4KY{u++=YRGfwpB)IUCG;ileGB=$YsP3_`e$Dtxc5
zQzg5s3YYLp1U_gKqywS3S^|5r1iSco3#T^>N(pH9@asolJU*(Ehf#1x=
zImI<+3L(>OUS3c0^74S<-uviY=PAb!L5-R*y`JwfYqzUluS7H~5~PCbc%nW|ksx+{
zd)sSLArZdd^!QO5d=;VSD*0<^eO(TNO$b4mJ`nIF&CSxXvUpTS@xl~v^k8ufobq&f
zfB*D9{;~~*?@TUheIQ0^PoS44c)vprk^96;4?;lwG1do|TEKE#gWu7}hc!Zfe@QWc
z`W6JAgRW^gyGe%S(xmVObI8lj2ay=4p^vhlkN%vWKSu$-97pB%RtKKEj1rQ44`s9j
zB<#q}3k=vX!WA#u!ipE?(Z>_e$3Hw+rom@2*2Cqqpj>u>We`MB_MX}-wi$!1rksNf
zIXdi%dVg)exzhw9*i``he3y~?oy5*Lc*Fzs*US8{^U#lp2{m+cIaC{$wcw-5^npdu
zZ~E0idrII>E}*_*TwkBT&CQJmj$#Zyudo4CwEi@7TP={7<402L+!@kgFC{}ta-=pQ
z8(mOF7JL^7)fFBR*U|(smE%#~tWecQ)edWnUb>$U%E4cEAD=ih)*xOM2KTfyLF<*n
z(5H`{*_30CI*crLT$5q|hL=yG?z8%Rbu~*hrdIrn*{s4#h!c8+Ycp?15bT_0L~e3&
zG6}M4S?qZF^l4r2XsoE)c?luc3+@3NA5B<;T@!l1S#Sy1j|Zwy7C?^dza3b7_1)_Q
z7(3jcl|FdZE*pTfZLQ!45#{6^@L_lOfU)_4I_rX@Ju*aDPhXAO2FTyN2>05h@8IBY
zT`GYe8MkZ4k^YBgxV&!NN&tf=Li#=Z{S*Hg;M<|?6+D4%FKhr|c$e;b
zhY`Z7gPTU==79o5y3c#82*DpES=7tNr!+~G7;!QRadj62m*sM>S-YRIZbmnF=r#H<
z+kYY%u|ZjhXcXFk`?G5kK?s)MlD_Qk!(|Zm4mM**GYfH@Z3l$%{}RGdCh2hmd!ca{
zy{2Ac&NxK{1>9>|h(w?&cosCAq7fR&F53#IR+b?K^mZM9LzkQWT4_~PGJ>Cd5G?(V
zRUg!$$~>=dMY=A|)&bXvXeglZ@$ldS*^^1p(ISKqlolFh~qycOvA)CuKNf{R=9E
zyXgy}rg}=UbV!GczZDXb`%Xx>?ceO!JiRS($fPa
zSor}%YM^(|1F`tvYKq$+#(GqXz!n6QL5(wg-$qAM7UU7fLeNqlUtie0BNHr;z+0R`
zf?tm?dU_C{>`|8?gDrl^9s}3sSf=2_80G@8P7XcwhM3%>kB?7MC^??CI~<7qin1eH
zR#la|#*cVi%pbTA(PX;?3bDFt1(Gjq4-8&Mz3RrsAWmGaFT#orP3DgNRXnO1w7c(Z
z(7eAeQ;F#~k~;I89OW7g;zkWlmYHK-e~+x!iXmrhXK!YJ;bqfCQ+|G^lcCVP@=29@
z@BOR-F>Ai=?vJBmVo**{%gPqY6-W!>J13%ED(^ZP@VD}{=;Z9`){2s+ukXg*q96If
zu{`mjuTIC*P9uo80JCsmea^h4}y7-`hB^
z$fKGI(*AcOBODo2c!le(8HsDo*&N1!B8o|f2OTlN?V#du12PD*po7weKFF;(@8jk5
zvNe}1U3TW0)D@$TO{WS{%JW27s0ZW`{0sDQduwNA?AU3;DE-*d%%quYl3Eo^^xm?4
z?(76XuAy1hU_th6NEfcSTqM>zqV^3Su0HcfElc!KtE%Q;uIZmwIe`z&6j!pz^iPV&0~wc+MnXYJ;Xa*Q5hXx1a_7
zx|ZzBGHSK>JDQ1~rlzIPq6O
zY+U?`sj;qRa)_-jJueN2OGC}7$#!ZmQ!?P2MD&(R;dN#9C@0Ree0WuDln`f6e0XvFFO>tF@1Lg-N6c6@esxt#7{N2B%4
z!rc5N6bvAim7uQcIBU$u93jVK3Srw6oYO2sD970B!{Iz)L7&rf_yXR8_XpgCB53?!
z&_e2Q$7f)zc5T{q92WF8No*;_QFu0lV2Uy(6>)jCUVey=sBCq0)yvcKSU`p}A3j3v
zO+D4n^nn0yT&Qnj(_9AlD1gsk-rn1n@?%u*GISS>IbZH5a>$w9Ii%wk36dQODGff-
zpr)GzLW?kd{=?>0O#d5wQYvRci7(kAP-twIAGZ=tx=w8fC-mV!
zhL0Xzo{_OAPKrb`v0Y<>22D42K*WSkZ;c@{M&n8gk1$_5MfxXNI=c9YdvUSL{+btB
zQ8DXy1J?M5IcLz=!~?p?gU=|mt?q+Nxwc2=M68#GNBZ&OQA{=~wuR>aIclNSa-wL=
zG3WV)kEiEV7Wxm5D%@nQaB_w(I3P$XYAv-d+ApO&OyB06t)d(op9$}LT=7t*+fn8`
zz$5?z9w_SVw_fMaVS-RiHd|G<9e)0j=Y-=6lLm83OYp(1DAgt!pgkuP0iE@H_hMs5
zw$8{trjO37C@;s6g613s&ss}8GCC?|)y2d>+h{L>i>8=JXVo9qBkl|*p52!U|CchPeF`d&?Ge<7B{HZ_ss!*R?rlC`C{Q?;ed>v
z=_~efiIij3!IPeXBw3UOfDxuqMIBH0&w(!F4E`C|r(NK!kID{-`09o;*56zI-jfCD
z%8ja63UAI>h-+`cGR=b4DU%mG_a+w?7tt?K@8FeL0CG0>O~42uFRx4Boz9(5K(
ztBmTp-plPMCB|ws>Bhh_6j~NdrdrHkwg*cEF72JQpd2Gy332O9XgG@?xBgX3m$MZZ
zs=;3pTtZyC%)tv>KbP0irAYO`
zLK)N|NWA$1f@c@kZmTQY5b9Uyhv>VAM#xgDp$SD82C+Pc9($~Ls;~ohV`gFD{3e;`%iNRRC{~7)
zfDOHp7~J03X0`1Kc^b8Y9#QM*rMF&xk*J@N~#KL)k2F^QchB}Ek#=4v(a
zGxu+XEaAu*NZ#Bd{%@NacR>A+l-<)g1qz1(!TIRT_Ed-{gT>iFJAb}InQ#0SD%~3T
zXRh5rhvh_bZ0w7!5LG(Ju)jhx)MBe#_!2DIZc!1h&Pn_A+qVk^LJUOWEYvm<
zaB=8~CJY=&_40DxH#bc-$#%7h_ajaCs7SxLoRmk0Tdq4+{iDQVkxY_=AMp37(FuH*^bIlc=mfXKI6u0HD*zQ
zE?VayOLjz)x`+Yfn`m;WBrXhgb4B@)vHfT)D
zLN*y@HTwRQBx=z6>$(LRJzJyydQc*@!#>9d??g*W`{kOHHtv;P>gkGjP;1nA6M9B#
z?uZ9uct~z^gdTs?)7SSbuGBymEUxw!ND8mZ0eC6r+D{H#D8<^bkYHg5On~BpbRg6a
ziqcm^hxF79`TWdIvQQFE3J3_OGYB&qj=X>W9<2E&dT&aLP?k`8W*d8$a52Z}^$R&j
zHEPg$hEiK7gW)?NS_3ta^EoW!FQ7&TAyXC2O_F6&JLAQ()k$2@^vQsC2tymzKw|h{
zd1-qaGWBJ2Hl#~CXDs_ke=N4oVC2$4{)cR$VuN>1+H2+TGzEckZaFF&C$i{I`mewE92
z?)*Is#73b+F>z=ZOl)rYvDIUG@5hxJsBu7~zTb~%KsBiWPt>8CMdq#;fb`M-wyG_~p@*A`YW(Gd9bJCp^{5+q(J
zd|7n1PA$Ozx;OzDs47qn>0P?-sB(Rs1LpuS>^eZmTUH_O95pBrv}7_*u_Pd5W>7;p
zhOdkeE=MD)-IvhA2o~H|7lXgQzq-PC#yYd4^&_;<
z?QPe??sy;S4#jBPI8^lYBqVSoNS7?cFMNMxRTXo!J{9vZY+`w){t0J63_cH4g<T|PPEf*Nl-(p3~d8sLKP{oO%N
zq#8rLLfjDNEUIX!4+l!=_32;?3mb8WELa8B#9f=;lu5<^KIC7;r@=p7cl>-
z$z4iAdQU)n55E2lAp>6d!r)8`z+S?*rfE@QSq}GrAwKe9c
zP_Be$YaW{!R5$I)i{{+n%~B8~MY@;|mZKpnNmoyg5qqS{e?v@7xBog2{x7H(
zH}>}%-7`<$b}lsG$LB!@N80S!Tj*xAdO(35_4v6q!H
z1*ewEBd{cJH!mWXLXwWwqZ{=3A3^NUh*1+O{LTsfz4Byz8Ol?Ys(2F(VRV!p55r>sVw2RCgl6R?&usSDcJ$jIu!Xr>179+Nseh|9GCT=fn;)
z`jrfa{PeY}Y~$`AOxUqwWW<69aTG!Ma+Gsv(cIC-XX%Sx6r;U_L7Y)9&fd{XQ!$7m
z^JDL;pSISD8O7-c=EkXKoX
z*HylqgL^}bGis($M)Azzr;(8nlG+}$VZr(K!UcDPkbAJFqNENjv@7DftK-do{`$oT
zvO+E7?BVLiZQsgV8IjJcK=F!z&1EpHV$^FpzC=|@5dyJag5v~-xJi8JB!cBYrGNIF
zz6LGi+{$Eriq3+c)EuBbe?a*$%JG&oG~2Y);7Hh~L1(vMTEH*nm+GDU-MsilFj1>
z@~yD>sNkLU{3?c`RV!g_|ScE@Vfs!M8(|a0lt*J
z)%jd;YEp+iCH}*Ic}xGqqeIZZvIk``$bK$eHncB6RGzA#xFpiXn6-#$=?u{Ec;Njw
z^*BPH0ZtGOmb?(J-}VLuzH#3y$ivFc<<@;Q(fPwcqeIFV2e0
zDTka+w>YQw-eKr~%1Kz-KYmB6stOW8k?VXxwgD?`*mb$YS53B$p>R_j=IPAHQ7ObEHfSN+lzUcn{%d2F&`=+R(qR?i5Q#MgT}{%^DG3L=${R
zVo+KnW?M1xl&Y%h^lVP}A^Z(cyn(&FDtgqjplKX@;(<6NYG-&LA&VS8myfG8;muS`{iGK
zuLXWI=UB*93s6p|v*@6Xj|Xr*h~e$!h}P^N0BAU_Fm9806j6UiHRq{qiKg9$Uq63l
z>J%~@!ih4wy+t9Y4C;XKUo?+H56L3bJuy2Rf;vtV!?}n$u!DmMQiZ%6eQq$-G5ThR
zPy&l{YyR$^s#8Ku>p+LH%?(~^9yd2=gxd31aB^u-pq)jM1n7C+Dbg!YFbV7)oLKnpsF99r;LBkdV!;=q+Foz1*
zplYvo&l^?1e~jMT6@DNMY5I!`kkND*{41z*sW*MP#mk9ZgK?jp(NW8L-X~e8Hy}T;=5DGm8ZnTQ<#Mg@@6Xp9#J@LSP;5*!;P0D`(9{~Vot*$lenL?N)6J>A
z4O>yJe2TU3{0R7_Hx*d9@zSx7v2H+#Zs2##;>OO{-vmuoFut;Y7@gq0M=qC*Y!X-qB-cSq#(H680
z%WQ6?DRE~X^J-ngTI~8Zis){$SPi%zoAxydu1uBZE?&mqJ)E7LkDGi1pk7&7dEWb7
zS($MJy^F=0PKH9UXxWv^bXyqY4paOhXcjxmes-bH&e&%J2`)o
z2@jj^yPWqskk*-MhD!6<@Qp`XN$aUdmp73@Kl5VVSEslIzWy>OCcTab_bv!m{Fm`3
zGpgwqM_zG$ZBqRBM~xOYF)9la&F
zV|ri=VfT#*-J3XK{86w8#}YnkfEPEXci-s<>6SHX`~eJ7boxxb(I-v8fl{3cDYH97
zSSTZy7>^K@$HvBbK@-VuxHHW>FOLK1;s-`ddDTk>hacj!49yh7sVaPbjoQIXVJCE+
zO36HIN-Xq#3Tq(Q(il#~-s_7uTwPr&>}R&Z=N?Yttw_9(E_>L5{d&o}Tu0|~B}T**
zNdl%3STyqFCe@YQ@Mcth#fdocfgL`n&c6
z%=PV^xheL0&Vt0lS=IT&(00*ah=eLJYWI&diV1HuN(|m!@b&RIJR{g&|NA2EBjSVj
z+N*oS^l+(#2Ju+fcQ4ZjS>57P
z8UM=D;dvatTLZi34rU2(l@x<~j&N~i)!#zWa3op`%`?h%rn~K$T^zqGCa*~#-h8mW
zlElr-%
zxJ}bL9|f1#bD~MQ1N>4t+a%8P?H$99m;!CMt9OFx(G(-aqZ8uxhf#@7PpqDlVBO
zwi@b^5#x@dx6F%&Mu2&q-u29PL*vA?SK-hP&xPf4=;_*Ew(YCDMWvGTPlu*o`LT7#
zQ#Dk$6ys#Ubt_}Rvk|hc49$v<$PPv?lrNAlcejdjpEj(}f0Z6}(W!bm2p1hyx0w(v
zk=K?O0^^1)OMoQ%Bi}kh`4D_|vG#vO*P-L}6}8Jg_t&eYU%j(cT#UA(?w^{*+FUB=qL$Vd=}_l
zLnd)~TU#5n&lpGeBZ;4JT5=7-j@`jPb2V
zKfAH9@%774FN;fNAW%%T-tI>T7U)tYHM6A2NFFs=I%lI04R=%7vUFkH#Qr;!Q;5lN
z{IPf)ayO7e8_QmSFcHi<7O#^YjC*p~q%d0;+55Ln7BSl-VRx+R6_EB0zIYunx59q^
zwFSd_AD`Y@ro+#|Xk6Eg!r$&59`BR`m01skxO!b8x%wN+nH4|f`AAw2YSV3Z*1@Bo
zwIN8FsxAB{H;(72be9U%-$C%1`diJHnQo3z+*I);#=+!EF|ONIN|*EF;^d@ygz~wu
z(;VHmODJA?8ozD&Gyt&Lj`axLIK$`1am@GR_>s!F)wxc}7cdblR(F}XljAohcPFPi
zg--mTgW1yJmK!Bzf6~i7(bO2j^k?$3oub2{M>2H2ILVn+->lp0=;S!;UiFR_(`A`@
zI`Dj#SITR@*Xh(+zuOtYz993^O2#(4_6c5V40ijy1@J>;=rYx05EHs6oaW(XRZLG^
zo&~bB0yEVlI&%f|ijC4*A#R21vZvSyrw;NP$0R;K#&R`FJ33rU*sskWN;-R1-S4FB
z=bL^7?kXZ(PWsQP}-)|lT_NWlo
zM^_}VRnNaZG9$TIc$X=E^Y4U}y**MK;VrBqpW4azw5jsQ!9)g){>jg6j`ZkEe&<4MQ$wd*Nd6oL2ieiF3ox8-xR?5Lke``q%Mutoy}~Y
zA`DHUzCm*Ho5-+<=hOlZ{F8d>kdBu`(V45entiq-@0E_R;q3vY5JKC1gSW#U{eUS{
zwxnmg^{*&KrzR4uMC_ZMZOtLI+mrMOB_|b~ZjhOi@Y3!VXczWJbu&VbzvL&WBM-#I^9ZOA*n64!tp5A+PbF0&;>SYGl&|4-v7Hk9=oBmD~^-LIR3-?>agk7CkW)
z@+wE(F*IG}V#qbS0Q-{6fEVRKEYi}&StQwX16N+odQ^C;7-ob
zyY#8>5ywnNN+?8M9*QJW8}4DXq{E5lHOP#F(H%Y9tN(+maWzcQ9a)3CW)R;u-eK+P
zSlzdr^|rH^=jV5$uz~l@L{7~x6wf&Q?qQt2aAfxT)KhBED<@LGQ&El*M))2?bowSR
zn?PphiL>RVsxdbAbUu$5==rJjY_Vku8PO4&t`hY|AhZOcd-C&feOqpJP-Idsr_>i11$5J%+*D0x-jUv9={{cw^d?%=uw5g(~c*W&|*6~AK7EQ!%U+?NMG$yB{
zWWun}X4R&rU=9-uK+oVXTCtRmt_Pb;HQ&Xman{blky7DNp(caPnLp84OF@I~IH^XB
zb+8;VkKF_wTAqAcm6NrEPhR3_IxsYxScDFG)eb>DKR&`VEAX!BL!-y;RSL?=7wy8s
z7PFg^FP?aq^>AD&hoWSa#IKq{l+%%L$o)>V&o{$cYYWfjluSkXD}E=0J22d|#Ct%w
z)a0_0%$c=DH-$fs$dt7WorR|EZqLp(2b4SD7|53c+^Zs6!~H6JE`s&A
zG4$dH&b#J4hW8ZkyWpVpaP7CCA}kPaSE|YTgfLZW(0mlAgTm@WiWWV&*A;gfFV?6W
z!wMsY+HP-6dWT`M+HF`CBZ1={44F(T3x6cAf2a6Wz-cwkuH#KF6!LD-W^~RBy3`
zxrPU~^uIqC$JxB^Hyxi}C2
zRV<9^yHQd7`7VEy)T?|e}32Zq%!#dl>Ty;nL_
z|GpHacrmdNzLvKIOo8=mrVg4spmA9`aaSokHmi`qRI`?mZa|+VOLS(nvFfSlS*zdm3tP%^
zC-9l?PGl~UxGl>Rj;bgqNF1ddr-NE>7Blh8RSmP7Tm&Jg-8^r=l~O!GC&|l?6i8xZ
zG>47fK73syOiSD}SKFzo+_?~-ka`r4wo8(k1p;WElD{}B)O_oZ?cFl1vyIjL}rOwyn`qd-y`J4LRDnnNL#q%1W&PmnZiCo0W5;9O`&bmxgik
z>yumH38-R)XE!ms+QltVvcJKK?p3~-L>|$z_g^lyiJ_&ZO~wQqm`xW$p&FM!5i%qw
zmz9%qNyK#Xc6m_3rgZpDH(JrnzGPmO!Dl>(jWsCrW?p1ZrEU@EuY~c1*8_{k@p%v@
zywne-u!mp@`%QYiFcE*Bo49cjeSh5H>`R3a2Z>wh>+aR2W(w2pJ$73-ZAw#}%1sNxO~^5GnK=&SjN$H6PNP*K4<3%dtPD-a6qO)EZ&9X
zt30G$SDZc=eVvt1e@QW!bAlVhU|Yx9pS
z5ko8P1jBGS$3kc^av@{7Nk)biuh?Az-TnCGPNd&|=g+om-rrCRJzK|kTNm%Q-k2d>
zguJ-3ZNBK`B{epS!o`?1#xm1T3c`2ZpoDMABr`p18J6^VJ!{f$r?d@VKY?%pcntUt8zi
z#;d=*f3-+zs6ZnT&COq5oUKt)VUoVcr9eD%1|gTxb;34lTLsTx`j2E?oKhyFP#i-yxKfljEd)y}4oAph2xjlZU>}%tf2-Jl5LzV|z#a
zxkl&w$9zq%#sp~BZSC$3pKBHU9vZy$$f`b>T
zaL-&i?~|?~-r5p!M$d~NDd)G-t8`H~R!VS5*nQMMyVXHd!?uEjS5Ia|y)%YSahYOn
zK$4R4_y~`tI{r4BwxZt11WQ&(+Ub$i{7-btw={fe;WZ>?>(P~@#KI2679t$9tZ}3}
zqsVL;hqhw>g}ld4_uS93E<7#}P4f#6rA@7ir@8fa<6E%Ybjpk1lNI?&?L@usR}n6L
zu9nAdv8^62a@zS`>tJiFJv-0xTt;z~L3?r8K9AS)$KVwKh+7u`{Z
z>6c^7PWCOqa+UfvY?Z$|uj(u!n@Cq0aufhcMvLPcud_&3bzyw!-2M}u&*xf$
zrpL1KxJ;~kTTfs0(DBDF(Rf>R{_3GsFiBCKVt-E?2}~anrjrvobFG*eY3mkMJ-Ybv
z`dNKTOG~PW+fTa9EADV~la9qLTI6|uzrC7xcmI&L-jV7$54Qi-W-j7!4-k_)q4jz;
z-{F|N#E<3No9~q8W^WC=B%dFHHfSq7jNMq^XBJZ2`*QG-ARsj_IvHJNjKsQSdAzvQ
z5cR;ZV?q;0y?3td%2_K^WYMXSbB+_(B;w3e|E42<1jS`;J(4u$z{hw`m^5of^VX%R
z(Cul5*_^H+r{iWadH192qQue=Q3HF9`7`&zd!B^Y!Yv4Zq}CKl<9JJ$Ooxf>&9}oG
zUnHewEz2Wc79Ytws!LVmHB$bGX+e3hz94iVsLj=QlPuszQ^b+=dQ31VP}QgF<3C39
zA0gv6zbJZmc^Nc6T3%XNc^B|^Z{vPYWW@m8jYkgO%!>|VIV{MhSQo0D|8guVj_?a~
zmSM-hGl+YzpU%3Av1Y!SBBMhQudA@}dLLbt>2>?|ZRtF*fs@wC8s7QT-FL;mXR4Iz
zB7p!l%r0!k^(-R=(S>?1?8_QpN|$=CWiF0hmTS4|MIMDi4FAQe*@#%iHB5Ems%V!y
zhO>Yf=I6i7TYB{9%Z3gYL2HKmn`n^?<%us>9K|_vTYQzq=FH=n7HpJY9$G}B>nqXQ
zdRQ5MAX+D$_Y#p)7=k$E$L0mxVx?Im?uXv`8vih7&P_~cT&*aVYaX>kRb=!}e>(G^
zZ)`%;1vw<{3F(*uAuhMtvzLLkP|76u?h!Y#9Y^o-7L3|W(Iz!E_fN*6Sb=b#~cE?|^aV0BRRFYe@
z@Xp~{km^k_^5?p%lkf*|g7W=a{`(KT_~Er2)`r1TLtkz=)M(VK{4z+pH#D6f=O4+q
zBGRmp>{W}AeW$@b7=qAlW-(j<;oZ4eMn1X*LNr-?hq-Azo}gAXdp!{w*(4`S6p3U@?RdW>#!{U5teb(
zBCTGHJM&AjNv90CjYRLS&&j7=x&9ih5WXy?m#dnh#BUp^T4K
z*p{AkXnFT)FbM8C@mErzr^Hdpu~1ghC7h5%$lhLHXKAf5#K_L`n?AR1n<9i0LYZ^i
zvY|{!4`uw%Q`@nf5(1(3`3~`py~)Tp_MY4(Gjymy7*8BJiDz4u1s;!rD6_Bp)Mpct
zH^O@c1em9s4m6$DQ~I&WMs;rfvX5rw;u2U8>GLdJrB23b#Xp!s+7#pgFxRn}oWu(6
z{@~s-^)w%HTe&0}vS@tzl*Rc!X**)C%nToM%`QRr{y(W`z)Mo8z~TO7Zl)wwGHbDB
zT3E8TGSjAhXXWehb0wZ}I{Z#;t2Zl0->uR-ulZrUl(Co7nzk#<_XFDA4j$KlaY!_bfzq7kp`1@5Cfp@*8$)uAU;p!~G!t^b5yxkhS
zdNnIH;z&6Gy_8ng=AV^j;mWbsj*158rkF*YyzfKfuBWq^d6nz=J$hOS4ChIc@FQ1@
z=#bpOv9TJVFEMHq@{vC>bXwA_&kJNstt7X2zWGI3EW$M#*t17=5d=svZk@Km_oRvq
z>3YHR{p0O!oy|D+ry5K&@h3ZlD9s~T%}Ya^zdvX%*VgoML_O~LF*F|4J`I7F9f=f7
z2rj;%jEzX~jrJoWs=E_(^1Lv@Xql#Z%d&9pW(AC^w2i#?byecKYsYF!p0v!JeV3j#
z4%&Ov8P7>;FGcR9C)Up8SYQo@TS5#u4*!o`lyCSok#$
zfh)QowI1>F_iy)G(9up)wcyEkFjT6XHCy(gJLB|C6YiZc{BipFx)oqaP0HueCRy#5
zX-#?mm(9Cl0-zGU59WXTc-xgi;zBvP@~wM~tPNf}jN|J(m2%xik;JWlUPxI<=TPk>
zyBLGBLs6O_IMC{>P>v@BqBR#7+41nw$Fu6HpuI|@SFp2KUBM*uKp%82qzT{0A|{m|
zepCl+y^Cymo?t_vF!yVE`pid;<uhBQ0dI9taub~J;!p9xOJ5?$-|U3
zHM0DsPy@xw`tN_msZ+@7356!MBLP3^g30AI=c`95z26|c7b(b>r0*SOk0T0Ora^+l
z@0#c~#q`~h_8Bi@s-&JfUQVS)NWU7!QyO=U_j94?a6Ho1CbC
zEXR19JMNza20i-WmZxXyvwi-M3)vbY@Op&Hy|N#+B%8gTKkI(~*4Jlqo!+m_vspL(1T;ToPe71Dr&p+j@bt^Ug_)Mw8
zTV7oRrZgr+Wc*u*n{$Cf{%JP48^ip|qJNia_R11f0|85T#xBNb8+CDGIAu;WMMpyC
z%1GLfLjFvh`={p7rH^yR-QI(=JN$5|q|2fjUNtjAV6n4;o%+phG|b?DN6_O*w1w$(
zZeDYa=6%jBo&Dr2>uZOU3ZfxuKdlBqD7N{napsW^@c{cTyU-WqI-#
z_8TcGuC*sT0)t?r=)0MZ;FUI{cpMso!I2B3%^AeB?2qch(z%d78Up4VUiCC0e}j6^
z*OcXC4fMahm+Ybn`(wRN;wIslK%KjcLH5p@F`CAWk46){^=*(;jIH_K4LopG$3X_FbALFB-uynw4|4U-A
z4DY+Q4%gOQoFP-5{S<(h@PUM2@0R^cm?<7Jwmzoeb%3|={nu8WvGcTpb=jYzRzf1R
zCK~i
z)zhcNkT>kY_|=p{#V2=sqlWI^VyLZapDw--jz?&g
zyi%dV$a61JxAB|rR9B$=_R5t_HQ^>bcCq^J{?5v5Mcj4Oz6R
z&QPMhoBwrWL{y_Ikou%{^Hj{%X(A^`Go-D5!Ape#J9(%>HaYC{^1YzN**^lECRcrA
z#K36jTERnMHj}`Y!z;=rFF2{ZmVzt4V#uFe82APxyPm}nA#2+BB52??KZ*Yl`D)#%
zE5FcpM^x>E!nBthRv=6phEy+%dFXuz-0{Jfyf8N|qWjFNk{wH{kex&Xhl?h=T}@H$
z_?Z-$@#o3NzqLdiX+A2LRheE{HFAmq1I2RJmrA|hXPGZBw4mIX(Y8+4wm;u+I?%Pf
z)(z>amzTsylw!D5gf-xGK5vXk4*Z3UopHh?B8BYU7}b5h%Opg|g1jMxL#NT-m0j6c
zmzw_L0sg3VJoxc|^B%2&^>?Xf$4br+#C&Si?qB-A@%{lh;v{aPq14m-WAhWO(p87;
z_)hn1_1}l>j+pz@W7?htANzV)CgjJRqDqX35}b8fX`G;bR*$Gw**na!`6Lm{nk`DO
z*TV3Cx4|F5taq#ACV6SJveTm?0mKD#v^V(i!L8Fw{`&~BDq~2o0dwl=cQRQ;hAIQJ
zdN9N%dvH4k(Fv(}M@PE=3LE~iHuk4HVmW3JZ{{@PH{74NYRn?>3XGCye
zyZcLbh*`Bpsm(dkXo2+y-LXhlv{y0p#H?$0baUMC0BI@aIER+x7pnW4S25%Aw_G|D
zygTzH;GHi6zNHDE9&2X#!B6tG?|b^ZJL=^@ujuape8JDK-q^i1zk+OPWjd*Gx$Nym
z5M30OZ-PH{A_9X(8HXFWI60q6+KCTC%9y6Q<(uRGM)f;=hbyt;*xK3}&y)jW^^65O
zz7zVCoW;~^n@U`6xVw-e0!|{>z!0fCb@#`opSP>3s{YB~o!5;Z$R9`@&8TWLmVyE{
zep+D0+j==|Ou>JcP$}B?6JvK)R!*%yf9rLGQej)R$)ww8Z-VZQAiQ@L%shKn3ElvS
zOY@5-+pN4e(&|qkL4)DE*rIHYm_)m<-TwLas&?(;LTO;ot~2F#%HFw6`?mtc9sBb5
z>vo4f!e8USG&_)UUKA9-eSu+Hk;U8K`)KMED
z>(eRmd#)N4fjgz$HxQAQ_gX0yI^1~o@A%+{{C6_tCwZghij
zNaETiOT{`-0r$UiSQ8RCk>$c4RqQ)VcYIbT6t`tHwXVLoRE+w~+7B>>@r)Nn9OPns
zVzb|CrS6!^mb*qy*>tN98p&cZxhC_FrcF2Jli)MbfiH+}_hQCE(d9vwg(c
z^E$m7*Zm2~ach3c(MwM;$fkj15MzB*AWoq31l-hdnJ>?}V*=zsg`cOUeblS=-^fD>
zDn8tKK8iFj*4CXH?nUtV+MAFp{fNz`oCxJ+Eaks^|F!6L!_j>lBz&$)*YUU5wyUMq
z=k4(|&NmF$$xJiteC0kJFi-kHt75+zfN;csiBbG7yXw?h<>_tT
zz(9-8=@il~y3V%}Co!CnA|DJ_Wn07mHahs+U%HQ%qNGx}S^JSGT~%
z*DS4Df68Q~NfpHnNG?`#cYFggEWMksLFR@-KW=oIP1lq=yi?!9c!eF{1N}fd20jNK8_E@
z%)H_eCkG=?Guzi4j0?Mx^{KhRKPK
z>*^!Ttg5d$SgcvWrtM%B3fTjd#h#1^o0+dKg=$4&&HL`hy;+OV7s|}@dejwXt#g{@
zl@4t`>y+e8YGD1g`u`C1)&Ws9@B8r5(uhc70RmDBh@_McAYBTmq@;l4(zUeWf^>JI
zfFL3b3p{jp%OV|;()G^a^L&3Ve{;^xnYm}~x~^+dNDsO$tX5m_PcBwOVN#8G9^1$`
zU|;v>p01hl{K%i~J#@h2C5YPTvyVG>ajdFm7s@r8`o21x93s#5K8@arM>N3>Xid&d
zXQ0RxPIC4s6VN_rk+&8G!g=hKCgPe4w|<(f)+|tVEu}kmY6Jjizauy=+a3mPjK4@X
z`Gm?0s4@L(DyL4SK){7A&7=1tFQ!CG_iN?=mPo^vP(m5*du$5dOSfVlvJR!jTi_YQZ_pqr#yf^>lWnX{nx~>7MJPb
z`(lHn+)&eBur_pwPZr=e&^wOmT>W3rE+Cd=&fm>2nB@T^;`-zPm8R%S#KI%zcD@|F
zeoC;9xk1t9cRpXy1^idOB;7`0sy+JHk+&yrf
zt7;*H@eFAB_(|jr-(w;$QR+yc2=_5XoInMiX(d>^%uRSn*_M2bK31FHG8VDrs4s^U
z@Aos(f@h*c03vU9hidp$L>7`jE-&Jy)5#?$kH;Tv&&{3xIeTt6^2p5%ylFHavM
z`ZbsCk4NXEPBB_R91npdSI3t|aM@Hh?PnV+~0UpO6sQnHxPmB4Ic<<_XXm
zo@w`8ncD}geA~;d%l-B%60ULGaZgJCjsJ-NjyS)=h-J-DY3E66fgtUhEpEE)c%v5Y
z;FpV22@WwPO42;~gbn!@wB^Y;&Z3WvbxnS`TCLltVAY%r<5``ErS{wR*+h+KY$^r16?Qc+s{8Xg)hmlY4MzCrZi8u$|7!c@?0SC;v+SE_YqN&;R3ki^Xi(K(|%w4WqBILBH-f~z(LuvdRWWq<-wgFR2B^v7*7
z&D;KBw?5DZRd4-c+IJeyR_-~ER+@D!T=gk_UM?}2HXAZPaLp&+&yq1Wo-tdVk?yQp
z*G#Q$Nug@N@>zW8vq&3HC@dt`}dsrHJn8{A0
z$u5vuIiL796?+`pLd~APc&p&VzLsPjiRPOaDFLy0q
z$uP39i0JQ!YiN%>cwF>%gOSWTgmX3CkNm5a5*$&+E`zM+W@3j;2b@@X{=!CrYhK+>
zPe*wAD+^~ACtJ#SNPy8mFVQxAL0Z&arBIN5&(=MU(Inway209}U83sJ^s!aiw!ov?
z$4_SMdNhuTHsFFJ&%i^oz8q*pDwL5k$JR2Q{xQC@(oODE1^0Jd3A(ZshfDiuk8GYF
z$7>|muwC5&j)G{q+c*>C$>S2b(xG2{ID0gHDeM<*Tu=pP8W0)gSFgLRyJg+xtyFoNRGNwPK^a*F&-JWX{
zdcf2mMZj2u?xQ^ZiKx$|W%mj=QRI`%{*yvs`-VtOElr$5Yn9BZG}RXI_R`$b-Gy)L
zRs+|#Z9m?REKlm)I^qkyRIG;0^fWUv(j8eX>Ov#3J?!XRm8*T<%l^Gt*SXt9myR9|
zKpQ2GeRsZv;4G57|gnKI|sl-pq4lk{4@gLA|VAXGgwQM|=HO=lwx{
zmMSAQX4NDwULfa`q}~U@i=kiZ+?H3lApufquYfI~X&1OV#z+87Z(!%@o;qJaIwuq6p2<>trl|(<8@Nwvj)Ye?1of@In
zgM2)#98K{cv(6F}qq2jcjeMvoh^nIhP%sfy1XBQ6ohYN)^)Rq|&W1<&
z%gWfL>5KsxJ$h(KV!Jv$*W++=QiZ|-m$Qh6DF?kxCrxO$vp&kX-#9Os15X;p_}oJ0
zqpYpvWkw4_mEB*Zf4}wZ_Q_GgMbTg8CdA=plP0Sd1-i*jOy}u#bEV3ODwZHflMFFt
z3_h{(TL_?@fb8!Se1KOI_%{@>e|WsR&`G4U_8q?d&T~!mCF7=ALo{7IsZz}E!ZXqH
zuD=Aj`ps4tAyEuQK(ngK^T^gOx0~ZMa8ND)>+5P8hVCi9;cQxeVNNnXGvB11L<<$+
zZ0%WQcYN+p6AbwC1@Y~vdLqNa%L~u`tev|Ebd$wICRStGsp`$yXSYhfq{OJPr9{5m
zKLB>qdDtX-*mSaG!dZSS
zt8!sUxx=vJ)izCf4q-KsNpA-Sjl2lYh^^v3O9JAc$?%t1b_{5>U@OgEk{ZTa%!+?I
zE=I4s+Q4b#^QV-E3{MAnE|qT9maNPX)<8V!y^{Rs3qP`C1z6nhtkx{~o_D9J=o6s>
zi-|0~ZmJkdeb*28x?vivJMMCHE#JV`u>DXde=*xf8zh>cR-Kpg^$GKgp5Zd{Ev!5e
zG|)*(eKe^e5N|!xUvhBMNLyQjC>pB*1
zcfm;HH@l2Jf>grRfJ&SS>zR@oLG{IW@xw|(T6!d&e2&e;;h=LQaOdJ>elF6kuR
zcG0dP1Fm9jDMDdKDT{lj&*A1PEZSt-s*?ndc-;n05Rkbhc@cvnlefvdhB4!I&0L1z
zVQ}-e{){#M0M=nFf-B>$;aND|JOe!UbL~6=GsfLC9?hoK^#r+j&SzkZNeFLK^rUVH(T2}va?Jt^O|P!IE)ZmmF}(X>>sS37Bf>yCsp6s7ZdtkLl0{*3z}jRjV7uWB!q!4+C~N
zT9Xiip;6T=#{~kSWK`_y+AR{o%r-xV{{&=9t`P}NMOTA(w=LQ;XpT_{AOtjw3NP1Q
zh10kA10v>^^X|rTCBHbRhJ3PByWJ&uwJ$jr$PF?t9^b38IpTxoM#SWFaPE@n_uq5H^z|Pm6$p2Tb1`AKXE-BR+GG)@M*?EO-+p$p2j$Je0jEQ
zmu4cq@SV!t_qj?Jtzz7B0>)1(K>=gn2dld(IA`tU$i~>1LbX&WI<9>5qo&<=e+LbB
zJXO+p7WxHFBkEv8KiRrY7oW=)9F<#hu+K}x^+MHXrrxts>MQ?m89z!(>EI_5ldt1#
z^;Tc7y%JCaejsEC3^=HFv0Mwbsq>3>ul|R{=cy&v^!l%8#EgJ0uTbNqqOrW@nxZ-xYlr<`+NKK9w0N7#*Z;1VjCu;`s5;DHu=h(DvWN25r&})!8
zQ#6;cOm34Znc%X1GCOA}rfk3}RvK4r(=ZRYJ^a-em3cFFT1m**WoRHBH@QS>guV3=
zw^d4?5+%m2+P(K{=knqVTPX`CywwB1!u`fJ|3D3p<)v2cS=Kg-(ah=AxW@b_&-Ax@
zF8rz^WJx|t^tsu7Q{e3OAaoXe`n29XKSX=Uy9q3T9IXBAQWO5`DD2N#W9TRr1Ygv5
zGD6$DEh!~}`0eK9&43NV%KU+&s3hS!Y-gq7E*{s{dH4NuZ=%bdb5NSi;r)0JluG5M
zxr(J5#VFCi&W*RVwnXvVrCBAHSnPV*%JUlyTQrrfp`c(`!-%jvA8DmdU6;I5JNLzj4-|9b#qGw-i@iH9>uz2%2#ud+m{S^?z
z`DChmm%FpjYMuc(+$`8Z+Y)H6rC8Q=83P?Cjb6OBH4`)Lr^Z;q%u!q5Ril?#6et`u78-+8z{8+Lt2u&5%R5`gQTPT)W
zN{ZQ?hf{-KIhYYMAgiKeQ19{5h!EGFOHoxv*`1!@bl`R@)^Uv=Ydoi|xmIGY97<
z`~0k)l|RA3bT!l(Q7-|wRMqD<908qE0zKt4K;I6dP)hhTG8(zo++s7Sr^PI
zEp&H|{cn9}e?sdcx$rM-)Rv*8julRtwWXgZw-PW0KE08|@~s$vxabrv*$i^Ba?^7s
z6B7~P(CV_VTby%&CN*uBktDXxL7%7D}YIey9S=ugVb65t&@Z
z<&hgiH@7AzNHa
zwVsVWm<5^b&aow&+C8&~CrTWPMGHDTh~`(OlHqlhY=Oy9kt*PqZD~2O=%c%891En5
z7`WbSF_G=^%L7*OqXFR2dWSFC7?&2y{qLcVK}$Qxp1D(C3RJukqpnA7OS|@VpcDNC
zL>6{(8`uS`aCuRTwON<
z>Au64J$=2lHGG8)$zEX_G&_Ze*7YoN+Y!5Wv9R#GrQfOku$~|qOQeS>O+JOKo8ab6
zr2z+b_qCBf)Yn^_SVaz_v>Arq@Xvd{YIo2B@}nliSSEcEa@qq}&*@p1I^F#lVg5^p
zb**nT1HkQH8z^G19e
z&Q@K?DjXcQip+jxpqxm|{0+8zzbRs?z<3ni3};S8YQCVq_eN=Zv2n#b2}xzU2K=g@u+J++uPI1*^qy-4Dj?dJ>{
zCF_sgQWsHX$;zn@6`?E~=JQ-Qvh)lMX<*B&t^I)I(G1sQ>AI0r=$1#A?dv{%KZ>CJ`tRW7bQ$v3?NHJ9o`-S>AlMLt1yx0^JB-fNcXO_
z9>jg9LA*Ix-f4*57hyQ6Ocjp@G6!`7je&e6(%r^?SxSoo0&wn2jCw)~A9n*|8TCof
z$*7V9UFUp1MWzkzi2dXYlNaZZpo+3%W6GBMdB{6{Pd}+UqJLtM#OO`6T~(aAn9A)R
zaxnR5RCF+x#vG_ysF?(LMGx*q$H3)=s#k
z+?xW&(G90ky)AgE)6L$6I@v$5&5!Hh{M);
zUf=BWs6t~Q7g`Ww33!E~abF7;`g?9ck}B0{tj2pm@hiH6%6fpJIK$vaS!krbbnX`X
z*YBy(qe2~F<$r*>$dBLGR*AgpdtN5)bzCa-9vEh-IUYvNrFrcy7<>?dR+U>CYWsv~
z&d3lUPq=~-TRJM(#_z319R=3$!jw7sd7*?&{gXIN187yCXV#F}bl20DOobO@2SYg4
zOb{;kEKz8arfOBsO`p_2@kg#!xy0;;x5z@)&F2@`R>nhg#T4j4lH$&h4t^7uM68BA
z5#z-dGb*#@m+608_CzGy_i_drsdNO0#^*~tSf~!%VHNffAEpWphQQqQ+CKsaL^BUx
z-$ocZA2cTmSEsU5B8pjm+_bmZ{{6dIqRMZvHgSV|SSfS57F+$+*+yY6)En(dg@r%N
zS^fP2x55GY4w6^lrnq$219@L7I@!ej7wEEj#I0q4TwixN6*ivX&ZqZMYhe`*aAcC@
z&kUd=lyuK4TdqwAwj(&%nsejVH*g3%#FTE>d9GRg0KWB5L$&>vP=+~#Hc%(VV&n#2
z7zlhGRe?h2mo_!59c~e`q8q=`0|i0tm`AWfIz^nkw3O}m_qL^qHW8F>~Y~)eM
z2fgfqpkU(HK)I5zZCE`SgrV55uh03$CVpQo%3eS~6RTNvMH9Ko=#_JNiGJ#(+IJT7
zRg@keJEcY@(LGb(R+hOQFXkWI3XSJ@MogiYi!Syq`ZV%keN&c$!##IVdm)sb>n0bY
zyuXkqNCGD&CppvuaP8aF`CY+>V%{pNplo19`uc34wuP6b2xHQGbAh)bO(}oO?xt8=
z8ZVx`ySr4nXN#HRgVR{ikNiW!=mY|v!<68RCqN(!4>p$j=8K`bM3EUHQzK@&dnJ(~
z+?a*^=VwRSlRt(A29L~f%HQhoR8-Z}Jc3(b3!C>JD_AYWh{2LIaks}m(eQqu)wk?1
zl-zp-bo_4zN8-RlZb&r_odA^4^73G|Jf0P(0aV{Y^LYYc7j|{xY&YW~>}`U$M|8A40~07MAxB8jB#YU1`!@Skdc
zV=3@UbJ(9;iv8nV6TC#fMfb4-3o(D?47_!Q5vkeu>p>dS70SAp3y+dX8S?+^>1e(j
z;Sc3+N0vba33JY$9y(kH?!OYZ{%&oLO
zNlqiLw!^9AaA?xa(NU8&c%$EZa}eisq;+Bot}-_k=z)oVDY52h9{G0-4$#3_@}bqC
zcP|RSzA_b0?RWN^EHeY~P0hw<_&aC9@t`;XkW`Db$2TntEgGg
z%NDxLea8K#0{1I-*L_&f#9a6GxHFyQs}j4C3+3K||2;>DDUdd(b7q0T@jY8kwT6Kg
z`8KRS@)`H*ubaV<4>nIus#ktp4KRi7Y~xsh)1eToF;GY-U&dA@6-QyiAA*sArxcmx
z&LVfX?=!Xxl$|gbvy@U<-BIqHe{?;zNi2ENOt0#gechcI=!ixD+n4kf}wgrLOAj`lpoJ~HtfRfa5K@{9_O_q
zn=P5taVkjumzzdLkcs6Gb_`9Dd-eweiFkQ2%_~q$1yjDyO!YZDoM>7p}f^YPbg5Ci#l=|(*ui0a_fb*d{D4t#z
z4_}JZQF4fH^fR;-%Ac1`eMXV}(6JLP4sTIu0`N1W=GIKLmXV@dsK9>@6)wrnbPK~O
zp6`l@g-)oZ@r7mCeD=0)>2|HiZFzTck-M)l4n*OF^Nv6T3EPPUY4Wp9TtINv4mR>I
z`;hASPn~J@EAkMVati-*90`iB!Mc)Olk;{T>$3gpPpcepe?y6BLof?P5j
z1tB{@&6r=F+j$r3ZzmC1ULIMG9A#2a$_Fi`K6~X6&eN(kd~+f!2Y~Il
zWjb7_V{G18NRSstpqAeVD*y&~QShE>Y39g!bP-h5mOvl^M^&Sos2Z?}KpiROvB~wK
zD8SlB#NDvr1fbH|!rtYQtMwP4DB&n^fpJE95TRxxr2s9fHH2z{zBm`ue`yk;vS?sVQDjs{C4WYq
zgz{%!tjbrCs~TGfi`-DxTFKiXHSz|C91i&H{&$dZzVZN#Xg?139b6+-+$R?W;5hOR
zK-dm`-n^}FquqX}`qeWGs~5P41zf0sB&Dr~Anp@-3$#_$h3~0yDKaG?{G0pbxw|p#
ztTd9N)&WE`$pR`^*E6Ir&8M|LM22RZB&dWAV>xV6f`HTLlIGVn07UWoz1(kA>0^A@
zelGR(lCje0=j9FHq4oaz_vLbBHpUADbW&st$pQdTX1gvB&B1=IoJ4XI;$7Qor))fj
z`zo$cA1H&!t7NkePbR1b_$)ekAMa$khGQ*>B}2bh7?e0rSvGGjQ!kGfJ_i{u0xvp1adia7
zox#1{)DsD2+_A|_Q55Lc$ZoxRM%5V4(w_@ie+4}ByD#A@fv6~Bmd9I8EVga0%~z5E
zu6ru$P7fmhgN@}B;7KW+^7!x$LhgPoN^uplzX`%;Cn-hONa%~
zxaQK$fN9nD+3aD|e+=8yuVbI+o#V6Z#;cGk51Iz=twu0Z!JBA4u?o~*<7z;?QD#e(
zT@x1pB{ULw%krmSTg7LLR#*zpe(3y6jOxb1dn%!saXh#<@1#3>!p*OY|zUG)tfkA
zFBA=Y^1#4hUq*uL3>miLuF{&1O82s?H>a0TS$e?;%Si$-C0^GuX3msFvyHx259^Mp
zgSO{cOGP9ld2Jr*2UcuyDMw8G8ObsPTd_-!7`EK;lCZu26_8Z)_14+1N(9?}pu9c*31~~D%>aOkFoUwU0*BfYG
z@th{5EbHRy`$cxx-z6x+M;-t}ffdMvjuE;&i7kl^w69SMj>WW*mG$cB>CK!M`f0?p
zbarT%IAB>qB`{*;)-wXgKe(if;2{se1qAPJH#mP6OA-GBt_JjYIIRvH3B3i`
z4z!0&SOZCrONEVrC3T_l1ly62Wr%Mm9wdLWY&hM7BfyI^pVp}MzNVEGAvptv80JZT
zEpA}FH$XV>xkM@zU1SHK6ie-QeYr^3YEL05lCEJxaz)_3avEgq5M~pU+A)#M3ptCjRgLxp$QR@BbBUil*9`+|ItW#{|Xu(E|_fr|g(}
z%W3cgc-zB%pp7Z>7SVU135ug~gU%*oFNz6FkV)T-Dr0Ye2tI6j-@)Ex2Jq8>6>*=E
zKmj%e@{u^;3p<~&p-=OO=0w5A25coSjQh5qw0Hp9Ap^6Lz)299m_#NF{5U~r9+a%X
zw1u3H$2uj1TLX*%ie(PbQU*}2@u0Z|tVY@tie_LiT4nC}H#znZ6slOpx|0Mef$OJ3
zPZLsu1mU5M!X?jOJ%fN>;>VFVfQCF7t1MIA;s`(5$_k8vP#DNF618+XC6RsUHKj7+
zZbCt(;M@WIz&}iZh3-6N*AwpemJTy*MKUJ}Ze=`#lU{RW7T8~@sa!wMB~b+maM&;>
zb)|TTZf5}2x(;6AQap@+KR|x_D&n`zjoOleCBCNrNZ2k?KXM)~vNG!Z_b?1OiwweUk8R*7g5|Uhru4m|B>uY3x
zveq$m=v<4Ey_35;2l|zk&$IuQX+-r{j+YT1d2qxZjc$9vGBkI_q<3-fj~z&
z;_UDbwiZ7Q6J~tZjXU+jA5nFL2szt)GS8QT(Z^{6>|MrYclBg+Us|{anI4c_(nX42p=aOF`N6@vyAIuMyPe0TUe2%^FUc{BJPJbbQ~
z&6N<7WQ_HmBBsfHGvJM(k0-Pywt6rtjC%t8Otn+~|17bUJ}(c4Og9TL$93OpBL}DT
zz(<(S4s6aKVe5iI0Z=5E2j?kzgi#_7{};{m*RTefC~_c|$kCcPH&RMUS=XA$#?R&<
z7Vi>J&<`5TrHE4waw8pFJ0V=7($Ks&G#^$;`@Yin!0$11_mJXK&D
z)&%|*Jm(3^VoVEw!IYb5O|3F6yJxPSGlIU#QlF-Q?&-dDd>rfF7EtW-KG7e09I8pP
zPzu6i!5c`vLU(nX1H)wyHra3tzy-;(r8f8vm5&b@t|WqE<2M5Bi%Rm;AL^rsSXvxO
zv5mN@=L-J+C#qor72***?ko%gKT%@)Ll>U2JP*e&=Rw0C^RUC%`Fd4Xa<>+6jr6o_
z)rn2kuXFh8ovEdG^Is0r3|Tts_&)l}NPXoN&ugGfyVV|-rV@K}e=jhl+=W3f$jr$r
zIc{ZLqb*<;V<7Y7<5K><9T1zBCM6vPfE9z5m^M^F637Z%S3`<%
z?PY}X%*h!C{Pnsayt~KGymL>b8}W^Faxy7U+GI5p3&!U-0gQ@*@o^qC#0&LMn<=RHVKz^K4%{A~@qYxSEhiW+3Bf;4ZfBCqxM?f>(3f7-BANC=c$k?)gkH(UqdWGSM!zA{XFVBFZ@Il;saHS
zjR7A@o2Cmnq~h%E{*L4%v_`!Ozj@dpr+o5&38^BitE{qDx1E^&e?yFv33*EZCzvE&
z8bFu+zlfgD0f3x|zjj(S(>HvU(+FqI{7Pm48v_7@ia~@lC$Oy~tsf(c5Lj%4i+8j?
z?I|Y-@513G0aM@QWkY1Jb;ou?aDWW-WO{|F9&GHsSN0QZVNfbJIRsa&$YkCwNc7)4
z=08<){cAsjx6h%}Eyw<^FOTA|-%4UU_mwt)0AaTKFe(4Uv;ajul
zoS{EPDazj8yD@uvLr>q{6KPGwB-(Ym?f};1%fPsk9>j-mW@(6ZjD=(*0mM;TzbVu9
z{jDuqKWfklBvcjCVyN{&a!j6Se*@)tdOV?wl(EG
z0hA)a(E@edZb2tm#uE{hl3FZUr4k{!`gSiwHU^PN!aVx|)QW=alxU+VY^_9Iun9A%
zZ85lLVsojLTpjvpeg*h>Y^VbjSXU&*trUi6!ZInyb?ZB|nrs?pyH}L+SFrd43`wA(|>eYRRV3|{P2bAPxu7-@=
z06%s?LMH;}J-~+~deznT+jv!n0F2IU*i@Y721N1%H0lf>xq|l^V0g@h?@Je_Ji-r-
z$tv7=e>t?faBmP!`3R5?Xd1YibjT`Ho>GsJHSPkPlv;c&F61e$pw@J*EY$5GXRP>6
zOh&7yTI%u9R{pSQ?U+u^VEIqL8x`*HSY>h$cIs8*PZHt|l*}wJ&19SB$qzn&`Xq|}
zNgNS4&pK8W{8Yq-oMW($M`q=V6%(Q_-g>=}%Q9!183A#>=!tL->spEQ7ANezW_*TA
z5~pP(ll@}|P#dcKqMJuJLk+l}nrHN&Pt&$d+G1NaI{KZQM+=vqI(m0epx^21&aDh4
zmqtEpgTFrTBIERXT;I1^T1ZGx_z|`
z&+?N8ZiSOksy1l*g?%A&;p0r08nusNOsGsT5R|Z^+k8u}iroh)2hEkEl=%5hd`u`5+x;1U
ze8n>Qg#cp&ikx__O+hc3Z#YS$gElv15nng{Y-Vqf#nOe3@XjfK0Ic&b12}!&<(&q%
zU7352u{=4jmN`Q>_Udpdp#0VKP7=Udh=7gu4{bLMe514&myC1;*q$pY~=7IK2fy=i;Ro`7JrIe;+p>?$R6M!+G6<|6ZaQ3zmlX!P2^eIM;6~
z_rucPC#7HNge|JEmTRW&u$RF$*Z+JZB2O|
zYYjj@I{33kZ_!v63+Ffv6+U?K&j_W@4|ZnK^0^+%7Q3%YC$g5JOh8C`*6~}PH|6p@
zXT5$5K()v_ISx`c^U=7oYwHp;{G;BV&wsgn-P=6FXveR_7alb&CC;&Tt%0k6*JC%z
zao+RfC~rW!Bq#>AaLYoR?C}1`-Oq_P(M=geCHWJ
zOt_u`KzM&7XGdf9)#cpPSq@v=FxJX`lIoTkU=nEx;}ks4vk<=5lyaU9;N;4J8Sk!7
z<2G>7$-21^Zci&vgacQ!@xW5+#4U~(ygHYba+{A}j&ILF)%`H9=$?MS$sJX?=B0g)
zp}_3
zXkGms52c5Sck#NM#%W!i2_vf%lOy+`O-ITiJkvrLz=yIG4$*w_YY4u4rW?HdMGuZp
zf%aQW7u~dsOi#ad-p>McB7WAhvplvyoCNJ(Og40HZIyXV0Cwzg_w$F#56OGlda(@B
zUdf9_eCLd~G!sW$?!0&RNjx2plHlyW8m4RpHKTjPxk{dY{uDHkrkL7|a}2y5S0rR#?ChyHDa^
zImPi*rP$(3#gzVQm(oz}N&@9
zYKeOET~6K5!B3X(=z}r8_&^ayTL(OeG8wJV4Y5USKq_2D0`9IISP}_eQICY;k^pjX
zP#pNKdw9gzo*7S7zwzhHh*35#*`3DrJqil2`#LXHU|l9LskOF4h(6u>WmL!Slz$cm
zAfAJDDQ?aV`FQRV+RuYr-2BW*1UG+MMS9zR?RK?aFJ)!=(m8!oKG3V;o3PL%qIDNNY6)>nJN#0x@xAO=vVD{Z+orJOg&c&2<|afz`8VpeeLvn
z6fKZYEB*-}pSb|SL)Pu@s)nC7sE6H{H(K7?vvI{SQ6v}utbE;7@c7s6#(WOqkTvZd
z3E}mqm8s1jtrz&m-x+7R4=9)W0{P>f1GwB`V9>2^KUji1X9eJfGKjng)myS#(4r*S
zrvHhVRpmHkynB~seJJc@cMbv26xqIP8yhBCV0#6;<0oSh*5WcToMjH)LD9$r8GrJH
zU)P5}<&Tk4^1ii=)5Y3IRpA9kET3rWZ2g8G4+zG@1Iqrn`rE@tME$#V8z9n-aQ|}4
zp1-NIb^qW;cM}QEZ9HG%UHayG@ijo?3lTlfc;H;?vAq%SBh)6bY#3RTl70HfP~M8MmnsHk-euQW()Ql
z`h-#eulPpQ!!OsreLhX;U+=zeK7`}=i*!A1`+13$3m3LhwD+J09Iv>e{`~Z`22HsJ
zaHaoq9HR3Xwsfv}>}o10MO*3DmccvM#Ib~lvd=e|H4wJOMY48^)$fFj(LU{rBE;xY
znXtc0r6606d630JY&9Gv#J^l@NCjvs=
z?5UC$^Z7)vp5o0|mGFjlG$uXO3FVSr@yXeYxhmkMvK5(=T5X=rpi_WWptb(o*|y{}S>i#6KSP
zyImatAAzl822kPA@s*nxzp>ne)4e4nS)v5p&>c`-)=dqTfmw}6sNRpAZg71jVRln37H2#cT@-;9?aP_)wIN@B9-ii(!y
zlGQoZQucqhSjpyP!UIYe7g>gcv4OZ>I|Y>54pdq7-4Yqm;w(s~UhL%(Ps0#x6%lhr
zE06<4LhEJ3p_$O}%=^xkpMzPXXpgKYQgdLec=TIK%d<}_Ix#n8C;bFssXp$x^O1u{
zBhA5Ya)`B`(hVPq^Nwy(%4Xj?
z+&5uig|jsa#og;i0D+Q5<4y#+Oc!WL;>EF$ABl_>GZVDUSGMVy*{sLtKj&7Qzc2Rc
z_PvJUVAUSn0g12f3NW@s{AH=*HqD%^b$250u#x)&kVt0Qh~{vC{pEp|iGt%jx!&78xj5mn
z-JiVgAdL$5)MHeInSo?Q&77seq5aa|FX3yKAQVkQZKdpqu%^EZ&FfK1a}rQ}fklxp
zH90xin@Kj$pcHv#NA@pF6r)>JhvHx_Gv&C>LMf$F=QqpQiy*&?hkXM@@En
zSr}7^qIR$Z@qAt&!Ewl{0GUUzMb}Dn$*q3r+>>$!GFr_o8p1i{R-=!OpX(bMc+hr$
z4#W$nKtwyqR8^X$niPSfYd+b|9PDO#Wm}QgQz)LU>}=U*F&bXNV7q?dFXdUY@o6V4
z*D-?O5~%)mee0I4S8mzPMaRa6KqYRk)LA<&*&5$GM!bm!XP7a8rM}l^n5n3z{n!BGUMQ)$|
z-$A@8f2nVvuOI7sR_V*>H9L28d9(*gQpxo;?!kB8q=i7(7N66#{N{7_F}%}=dsn{a
zpRY6^0t}Vz7xCmJ@*PhXbdzsKw@#=6dSz+Ewa-SkfVdF^j!K|(C8*5tY1l7Pj1np%@G4?B+?Hy`jN?Y$gqb1!`7hu-{aBM6sf<3=FqsrR
zT)@ens(*J^uU7M){>&sqE0&jvEA6vm{6
zUFO~8Fqq)`SwrvaLMq>Smj2f9Xj79k7P#bx;BMzT
zQnn|UX+%rYH_hV%2BS_*WEa^#r%rBex&XIB{55g!6-&C71n*SLGmEw0t~cW++Zep_G{Cj2xz=xe-XHfutcBFhNmNVO$hJe{yb^Nir7i)d%-0MLuF{T?5dQjZT(Ng`v6b
zhkU`#uWGzI{B1k
z!#g0jN#i&gGWVC0;LPrd%lG`1`UU6Kgh9zH9bfW08ua+&70K5@K)Z~fVHcuYl{YYT
z6n(@NI82wx-kKt^L^c=4!_xZodMDc2Oi(Q>3Mhc6(ri7=)#zBoA6cAb#T`@~*v
z)^n}$AX2rL?D7fDg@W+|{hM*)0u}~c#)5=WdMjtq>ROp5&RXHmZYS_0-y>UQ?LQ>^
zHPj^9+C-YbJo~Ful$m{=VW=#70`xKX_+*L5?R%tM>RH6`wWIGnSa>&d``<&9ke(sY
z7cHhQ-TPrM{A`X))$07b4Q_&e{6?1=T!2gpa`XlU!$8@<8i*4-8s^>GmqBHdDJRlf
zvO~I|aAOyeG?WxiF5zXq4{r47p1{rXQl=m{5Ec;`+{I_;a`H~w_5*J)!UGGdM~LCK
zvbL~T$nXCI^h(c)SxUP?FeJCp$bTYRPYcuzdN
zMCgEN0<|Ti3oc~R&R8WHUXy$ANE2QGxRW;&jRXM5J>-=yBgGrFwEKHZDZgL+27l&k
z54?(!FC%Uira2hvijYKFxF4xZg#Y)FoDQsErN{@&IlzBuRV#xV8zAak!-?3OUzw=Y
z-cZ_ZG*ISu>3Yo!%9`xr!FU-X8_EM@OcMnYs
z8i?X?>+UdTMrPgxL?+M?)D4I?FVG>PK8fBEX6{>NVs#6chg1fDWvJ9(GMG3ToHO)bmpgiX68U9S!@!vrM&ey{UbA;Y(N42b!(8GlG~lhZeB@FbkiJ0>%?
zu_S6MEwLqctoe|CBO(*uUx@ZISR5dp@+5&6y@G+TQ1=x5T(TZ+`FoN8nZh?r}oZ{ySTH0|EQw8Tp)zn$P_H0
zCs3PEKYU{9i-UetbB`x;u)S$8|H_@|F3n~Q{Liqj?VxV{4&zVcZjKY@!pKCLx`n{n
z15r>rG3h>Dp0P%$XY*8d=E-v~hizWlO0KwyEJUdT*RQtbwuynV5Pi5cYKG7Mz&BnP5Qn
zezBSnn!KM81T9pSPw!!)EKodjvp3*jb(IAqm`B;;w8d)((Yd!AY7X?UD~^{Ru%tYnf46C?
ze0G)~lU6uH7cXO7vj8r)doCkXkZ$3y8V`PdQI^g~+yvDONcwp~qdcH$_ogl}(5`w8
z#UyuJm+;!Z3fB>oDG%GqD)hQ*2Dq6TO5UqCZfsaH&u0QO%&PPqcBdLzq;c*&gpZFw
zFmPZZvBb*VtI3yc+Ox_Hz9)CWdsk$+Ycyg{qNP-&<6h=$0M(OmA-^{z7HF?kpMXoC
zdCBGuB3nXu5ns*Qp^Ln)bb0Z8*#I(ne8@cBzZq!q6at5U-X99QDQxKGc#y-%bd}-*
z{r7~^HUD3GU;a*Y*Tub$nUGmRQ5g~<8B>n25<*BqQc7hWO2!i^8A_SQ4k|*TOd(Tf
zKuCtnB#BH(X1!~lp67b6_qX>Cc-+@@-)`S&@3r?{^ZKk-{W$)nc9Wf@X`V2eqXyUQ
zESb?8zOtPJ@K?~;x=K+?dv74h>BqYefPvG6Rhun^F!t@=#
zntVMyJvmF2OX(cny);O@PV$Fg9kzZzxU~T8HuX(&4aYV7!fSsVFXM1~Cq)0&yv4+a
zQU8mL0Y|lG8dL)>hO;|qDH`t!`0l;SCFsxS3aE-i0I6!t;F8~0*7S~+wDFi65kX
z2EmpqN+$N%vl-gElP_Ejy3)V$r2ANW%kGD9fr{=igLvqm_I4ps%boD0}|^GTs}*HYdI>8iaomTHGsdddPiO*eV$^Zqn1&kQ?|dNz=`
zwMw}BjB)ZiU`bB98^$ciLcN<;!xW=-nAQ#zRNdA%5i4Hxa&4^a?kmWX=v#B=?Vh_5
z=a6d0nG30e!`J#90u_d?{Is}*LDhtqwxac|zwUqg{ku>V*d$swAwC}Wo+T+kg89!~
zLRHsIcPqoVDmB(0WmVtB2^NcDH!LbZslImO^x`1Bd6$XRdOl$PZwa~i1FiFUOTV6r
zlG&?y?~&C5)f~~_`KGeUr?oa|yK`sSW%5?PPpgR)PHucZ#QL++EPi^!XOOApP-W%S
zzsUwg(|`3A&rAju-TMn+=@yymv4mR~BkXZ}Qo1zi<$Lii!S*ck}NgF}K$KvO)?4y+1a0ZP4!|)XJ-IBL#OzgT576
zyZ(3O%-T&!*C?#Ema$nRRiI2+g_YoJrS_>b-VKh
zxTLcovF%u3Nx*VkfGc2CJ)&mSiR@?7F`@$8`^k$}J*nnnN&Y{lGh*!?CVcN~9!>ZQ
zmW`d>m;2f7?8sa@l@IV5N&&NtBSV~^Aa`EzMjpXlGjQ{&z-m<6tx&niV<#6NS?%zk
zeteq3G7Eg{DC^YdW*KQfqysSG%oBu8#m^fhT)Ljs>IWd-@#j#6sq+4-ko6PXTWuno
z{81YRL>)3k8QTH%BLrOC=7WZUE;w#WJiy_*3xka89X_oxtmk5WrnY3aMyap$xoI*r
z8XE>+k{XHl5X7o;flH*?`<8_0gn!VV^M5-bOp~_#)y9*Tp$neEeepM324urG)1pJM
z-vh&Q=$;6Zg6{KaGv=2Gm*1KS3siuP0I^U$sG;^^Pu`WrG}HNj9T+luP}aDjXKe;QQEB67W3t%3#xwcZCU@KsvZD|a>|Bs
z4E2KZ^#dC&;cYGc8N^w*2+<=5yq@*@@xd1Y$$TeR^GE%tk-2Dw7zWdfKjIX8^)mA9
zH_Tk{Xdtfc`?D7Y{`IfLA~@h`RH9DDu}$Ne9leIzRMl=jZrxS^twZDb?yC>B49$NM
zQPoOQ{95f%U%gLHcH_C-E9uPmbJ1-V+?f1+vVB}KMCRMzGutq_r2$9zZmPA6v@*$m
z?EsE^r+8bpYm`puan~yUrbmrXSNT~Rrg4n@jXxbJV802%K~9Kjs;chyE#jnd2>wcBn9b?iu64NBpv3t5u3GLk|(K_f?bxA{C73UzCY{!h5q0L
zhPeFw!pXG)s8CE^8)k6`kVlU&Z82b{UbEOGFcMuk7nSdTbzf*kcyj~TE7NdsB%4#y
z$DeubMhx_5>YZQz{Fcv00pRsLi(IBLA=W92{ZzwosxLP^p;`do%XWSJtQhyPDfrDf
zS;*Y$v4!cwD#jdbT!J_b!TbfF%yTJD1yJp1v7lP^w;R3B<|M}#wlX`cDJ+2Uiv@x|
zY$qGQs9M3@j>^ZJPEBkdS=CVd!@ly{Jt?eM%iwO@qPzD^^(W>zj{8=}
z%PdJPN6kI(luvHF-ukpMVYi0TS51P=p2875}LsoB`wA
zi}Q2)^KfmqeLiv;N@&PkuPG2?7BfRujU>)k(H-RKyy48}v)IXT{?RPNx!9aE@r@@S
zs(v|GW+!a98+l&$s|Xfd*U}U+#AscrOGYiAuClZT2vZDL)|fD##crS1drx_@p1mx6
ztkBJ#%H#7mD;ttJy23CZMwOdmi;`|;k)oV7L!6*Ld?V}jYiF6`@PYfuZn7M7_Fvcp
zIdB;|%F&&5p-i*3#G@9dzcZMc^vz9t`xvaM+__!MtuK-%Cc(V6u>!8I)5S_;C`oy$
zQ7Sy$jH)N}I7rKY3eAk|v%DgOEr-cDM7ae(59_J
z2o{l(7K2^;VGB6!s;eq375{ylp#*}Ts8Fiq2#}CA9-2!unOl?k!*7@|8+``28i(vn
zA#T6o0oA$~PfWqHCQZW5!$`RP9Nx_|wT3|MKVOajE=rSOBEwUqdxPwfVs=
zz3jCFqK{kmz)SW*bwtndPIdgvn>Ua;MVTW2z*sT%aa4T!^5M?cIe0s)&G&gK(#AKT
zZpaWJQ1HP=J;M3-%Utw(_@oMI?x3EKJPWSwwA$b@HiL^D7a;jkCV*14UPHRdFhmyK
zEwI}Hxkq0)IoK}>T|i79wYvKGId+|yw0($0v4k5eJJ>%Qh@h|J1$%&RF9QuN~Io611LND@Tjb60lOLFhtRhE
z^v0i(DsIy8$NBf$`WabPD*v?JlMa@%_LE~A1VpU>_q_r^tz1aqVy;{vG+bf%pno96
z#o!}krb9*9r%ap*O*$^(a%}c0c&)NdD}Ff(#$A|{IB>-=i%&a&A@VDr4
ztcKN~VEMU}CHjfD+FPzs^RZFG%L1p)@c!eD5WKdL2MT_J%z9dTKyup}7quT~`1x{(
z6PKV1QPFANO_p=7zVCgQ!RF+CT?~8_yU&elD5WVPU+d}nd#x+PiK~F1hxmFkYzUvT
zXQ)zUSz@K?{|X%XbhCXMu;E_@vls;AmUQsTH=7}tMQ`{l{KhvBy&B@?sHhBsytiXq
z``FzXzTg#`V!mRYdP)CUx8=rq1b40W)g_3;LcXlEZ9AV0ZU!Kvp+wg4yO!1cm#(p$
zTW;Tn!|EA+jOOlceHUM27L%rgj&*t7-dqq!$O6*w=rGWK-ZgxBkk$lxFdWX?em(DK
zSCZd}#uuPyg%sVa;DogGn1V-F+72+FV`HyqV}WyTisp67upw<_E_ew4*BDui`^+o0
z$V;A>77jg?bnNXo25d4HprNsO3WdCv6lEo$hY!z(Lv&<1zpCIhC_4eL=aN$ESq+b`
zhy4I0?OGt@%g0r%PdVE$122gcU3?8G0aTP03eZA8kJ1O@ICN~KwePB_snPE`-LP3h
zZ1{8~uR*M{Xv$Z{;f=NLYH_llo*dCd_Exou?OScW068F)(MH#A#$juY7X!d_hI%O5
zowpwJ*?CE`l9zE9w=tM(T%U(Bv5fx1^U8Jtyr@uji4MA+u+Lz-Oo;aAFuH6+jb_=kMd+gGDE(pWB>T062Ax
zN*@ZQGq3X;q43pbM;xW(6-dyt72Kl?p_bL=pq1!8G?rZJ9o#S@T|Xv#NYEK9XO(l^
z<{Csn;9&KZ71p8fhr!FbL$TytEkY`>
z<54yj4=n57g$xK4nYxh6Xp1p#<@LL?hoHO6p<@j6%$Gu@p|NYz@lY;+SLBM6$&&6q
zdRSnx(WeG9J3h@k#^v0fPoN`7uyb`6G&0%?*$A3^BOa^ZzxYno^cI}buPQ4m`P}I>
zj~PiG7*_3d8Ut{CMW5k@o}$Ec7+qRN|7!&ukxk7*G*VFbBE{?RoEU+t!LSGy+d1R2#hfB!~pVK&9
zzk6hsAV01m%l)x4ZWa*hA(Upv-0u_8!bIB2Fi7%*FUCAJ9R9}J-O08(=uxenQbu)i
z2d(^vYx`P?|FGrlEgyoeK9;EfC(|G#LrbQcK3om0qN^>Ee-nzq__2F8E&5gTsa4qv
zxsleqg68vDqvpbvi`(|qxzixuuvr$|bjLi2jkUXh($&Je+@9n-*`WVK#@R#O{r=1(
z1XyQ&(*2r|?sxeS%5TwCWS=aB&P~)RwlGpYq*E3*2nle|Ur4yt2QbF>(%$*{^_-wY
zlUeGOh|`05kdU#r&wTN#jPVD3h85yg=df|XzbWNoIkYg9iN?iT->KjgyWth`Vum+NS=zWWR#~33
zM?Cfi{I6P?=6qf!cPoZ#paL{Rww~$Qfi#c&>$Fo02giGuMj}5HR65)cDSQt>yY`O9
zYrF6Kh2kwGf3`i}YxRS%fkMgF2)cP?fYej{&NN6m1Zyy$bc4ya5mN|shbOIavJi}3W{UhxPl!AGGqmh`E*Ru
zvfu5=AAf4GN)%pW?~4@f`&7)bjDvvK5)35Fyu~o6f#~1-Xqb5%rag`xL)8QStI8XF
zIqi%TLfGs-gmON}Ie~xv9zEr;XwEF+#SkRzW7p6vMSUzvLu-0)x6ZC$hyv;R$UJcK
zTfX*(a-uWlAU(Ekr|JxqChX#%#;~h@E_f~9v;zRw-G2O6lDVPhgI>=y+B01@KQCt-
z@HnVUR_wG^T3tm;51`cNvhgM&P|wIKpKxnwJphUj(fasw2cNK%A*o}FXK8`}`Mq^%
zLBkO-arv#=Nd^P@{Z%(`d$P7IUDS;+wi|4F0ld-1XW8$GOo~t8+=2WwZk?`(NkZ(otm%`hgEj{k`;19P&RVcj6-RyVg+6CY
zUY*fHzaVieT)0aWGEv;VwSIvNaKaYo_ZuJl+9h97)3XCW1)Fy{95W=dvEXhRRm)aC
zM6FtL%g1_~%V(8;1Uu&d?e(9Hf!nlU{jn5}YO#gInP_Gc--hof#S$da{&EM&oA|
z!>@er_U5RB1AtRf8f+x!tM_><+Op}o4`o#%GsUKBmj5c>w!`<>tf+60bK}h3
zn$uSSAk)V375!Mr#lB(hUrw`t>(ZuUocMvznu-sPPreGL3^aB(jBwgrHX>9gVx_3*
zVk}rGwP;cw5O2mCcyTd&$It}Ce03)E8o#^w`#U*^6L-2DR6BT3a8yXVS_Rswnf`1d
z{bA;=2KV>g$?43p#{cnV07KfgA~$(`Qq{f+_
ze>bsrYmq__*9~DRA^69TCWL{+uDXoYr
zjGd!aVtv%@LYjUG&18xG3Fe#XEKA$$qZ5aeX>1nKse`XO6L$~z{S_u~iEk_YdiH=p
z71h*la0c}l{CfWUc}`%)$sI0Xud)>Q$=hus_^(*e8(52G3nwOa@u-3OBx-+(0VitC
z8ryc@5mmGnt$<;!SLxk|BT4sL4GP%JF7ita^ZT(cmUf$%c@ow+_`~OXoHOR^(z)#l
zA5~OV8hGa9HCh-`?a#QZ{3DeiS_jc{wT#geo=8!@aT%?oUoL=CmPFcc9s22M>&MnY
z1IAl~z~?)$(QO>vEp+5V76w!zps1uk*r+G-!uPNEu=2&F39*
zbJCH&SZ9grvykey7K<(E`sZm}^>YOU=xEHXJ-0L;WF3c6l-5(*NM}8F_~yKH95@rO
z9z)(^>n=QfGU~ln`O%^J9l0f)ehH#E!`W|01vh>svd+3$tWa4&FD@16(3-2$U*&x7
z-aSTLUjCO*-PbdToXws=sJx_e{bklIe%9L&CU5HL+$;yzEz!o$@o{_q=G>QIOw|&=
zTdlL`y58!D8CI3Op&vo*rG$MV>mDmK(MR
zp(-=az%BRQPM;x)f#Nw3Qg7+t0S%%Tdi(nHJUOb3vP*fji$Y)V5Cv_Y@efxPM_2Jq
zhGZEYP*rt!wDqGLLv@v@sk4eYvI4!(`|Xf-)|vjzM$o!h-KpR`+v0Zquf&w>;^@E)
zweqsE#FBqo;sgu*tfHwi@gbJK`%1S>q&cgtN&1U9>_hrtZ)Dh);%~0`xMqo^(kCXe
zWNu|0mxG%J@dV{cxBa@ZgVY}QfJ3XBr=wGWk7OF^@;>dQ+7)jF%Rc@Qq7ZR=mN)eZ
z)NDpF=iN?*{DW)X?lhZ{rLr|I_6%)U%kw*(JD2h2a_L0mEweOY*HgF|-0%6-L*C{C
z_*f;OyHGX0*kefBb7b*$9Hm7(9H)t~YPwd_>;Yu#y|{jxrn;)>!pp*vlCF1>4C4<(
zV|l>VJl3jUq%FvwrLcu$Y-wfHtSLI#|J{`Tojy%$sv0RTUz%Ba9+^scf)CXU_Dt_3{Hz6G?+J-8(&Rc+)u!Enc}+teohNMGCvoW~^=AIV&*AA-I$6C#(~KAXASw7D{9j%=#$1(s&r&6ia_!&j`|Rkz@~FQMCm?nnT=D{Jb(y%wH2@|J~DxhG5$
z#=oQePgTNYx83{B?Sd*GIxduvbvH!&X}ituwm*Na2IhsdzcyMZ25y9w_6iF5KYv;r
zJ?9>>YQiZuPTB~a^fje@_LZ@E64qj0813cXn)f0Yr_PQ?Jy95LB4rpDEK*g33r$})
zJ^kU?vu74vQmzj}tM~e|`qL2YfNhPP4M{;TX
z6_T3AI$S(kZijtmJu4ph#&-6?hHUjOpoKhVT^qeZpZKZ5gm4Ax9(w8us}7Df^;-d9
z%PvMNCl`H7m-y-y2j%Ezc{)5*0~J$*&@ZqH_iM2oj$<4WPY5NDe6!6e1IZ5$9y+A3
zZ@bf6!kgDDUUw$S9QBzaA!mVnHc+X|-pA*F`kfJv=bV*jx&Bt3{7jYU{P2zt$W+$%
zeA;8I<73A^QT<$UTfE^bX2Z?UpFWgf1a`gR)k^>ML?Pa!2Wa8N*m@De$gMYLr{;
zU%$AlWpjUsg{%y_kK3ng_gT64Pg)C+FzpZWykx$xE7qo`{&K^eTk}2&8JyM?Vi-V)
z(7WFL&P0t8&l_NT+wShZH5>8ZRVUT{J$dCuG2CY(uWSD8Fk$%DTSOi`ra}AV6%a
zd*i}vzv!a3o5m%&NuI~XGksMv_qrp~-;>;R5jq(?fu&28V8k?UUMKX6z(WAhL<}=c
z;$W|1RJPB7=0h}(y&;>N%BCn=ei(a7AuAYnk>eT`PFm
zNmM48CM<@T5y5Ywn?&~#eN3djoa@iw)Jmjx_M~?Wn;&-gtoen;8BKxtDSkvUJ%|2$
zX3(XeCFaY+hu{196MDq*noY$*-k*N}xl<<|%5&G%Kk@Ue>gP|B3{)ij0ZGO6?uSi}
z#sdFi_jMZk5{AJYT-mJTh2^q-EjHdk=a*S&>mx#=;Ez^LL{dO4@$UBa8lL|B%@^-J
zc)Ej5{H<+Ho!89#)<<`QoLqT|gjjoac0LDM&JVT#sDIT%%0uHJO3%uaDh4!?MID@+
zM8#t!cM%h8pIzx+9TWoAxKnW3Hl`8s8=kjDbu+Jn&Lcb6PaaM1AqyH~v4?wgFMOpU
zJ7kY+OioPbve63`Dh)OZc#)v#BvO&&8J884ww{w8<=PyeU?ZNu!c3Yr&kYUx9vjDX=4bc5sFMaVVIca<4x^
z<0`vT+8PW;{MaaO%SqYZgMo^UqJ%PVb++!Db6G2t_((11Eb{KLM_vHxFIJL!`dmsP
zgGst`&4`;<-E#U*beMW_k#L2z=@d`PcUOC%3+2?Ug0PyY-WJ@MiFdks1_lgrFqSe6
znl&z{dEK4<;@(*!8t1u#A)%!zV|Avt*Rr!UhZeIhmz0WX7bPKnauS@(wL)Q6Xp&ovfIZ~EoA6fA}7o?&d;FFwj)i5)&Gx2@oAItOLB~@jx&{i
zq4V(_uPyf!h7F^RXI#qIX}x!1`C
znLhx%PLB4qiRlo8h>g1VNZVk`%pRU=U4!W3@&)-|rDuFnC(P8*VQJT2-8u~D_=0kH
z7<@QV5|a`d*kwSyHZT*aPVH{U6VRjD{_Rob+
zK2+*>l}+EY6wY${4NYSixCb>VBvGb}H}5^NtOfx%4snKvqyI3n>mJ
z9cjwlP=7&7mDqle-CWD1K!Qri?GBH*-=*DjL_eOcs=0yNXg5_z_CD#%rGa|6;2^)k
zqrnby%)30Ohl*hFK0om$ZLBT7Y|juz2YLprz8!aia_iglrDUmFPOvxZ0X%_ZHre=o$hhvuH{e%h
z`sgrgYz-jI&qtfOrqT_LQbMaJ3@r51?Wh_@g>CoR!JB7Mw6Ngm
zc*{J|P6mnGDQao=bcyTKWKR|l5NP`Ds;v|kHodjqv?w~fMUT6J5xxj^AkyZ1CqFqh
z_JsQ-hb>)ldlO}-pG=31P2QVMj!0+asN_xLrJ33#WVh6hjg6_@;75fCFj9k44jm^P
zk3_aWv6qEww#mP-dgz;ql$7#JYs6RvOU-3Vq_{n0oi)9Y%(`jH$h1Vttn{f9H5rl<
zkjk^3VDsdM!!;|8Bg2b8sG=GdC9b>|`x|Z03R#8x2iouibk>V(Kc5|#5U(##qxVrF
zt3Fhtg{Aovb8q%UakAqPf{iJx>~DjjABHK+(>-h9Wp#RY8yg!x(*fe)C6yFWbDh%?
zDg^SSdNi{CTpuS-+FBz7awS3G{*a%pklcv=02p${QRUJYG21Zj+Zy-Xr3hT}w7^
zG&^gUCzQoB!gJd9&+cf>LP9kFhM`%euqkg4^gTJZe=11v>0}tG95`_7-O#!p?5vmrvyF3Qk@k%JTAKjsW#0JD3|}2WQIcJJ|nf>&kg=T}yS?xZP?=H9$8QgtyrQ>05R#
z#8fknZ@IBPTboP=qfAdRcaOYg`oi;<8C5`|DRkNFp!wUJ?8H6K9FG@ |