From 3bfb57b662817411fd47f8c529c1fb184cbba7c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=9A=93=E6=9C=88=E5=BD=92=E5=B0=98?= Date: Sat, 9 Nov 2024 17:00:30 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96=E4=BB=93=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 52 ++++ requirements.txt | Bin 0 -> 1178 bytes 国内党媒/CrawlZhongguogaigebao.py | 186 ++++++++++++ 国内党媒/CrawlZhongguojiaoyubao.py | 282 ++++++++++++++++++ 国内党媒/CrawlZhongguojingjidaobao.py | 185 ++++++++++++ ...部委的机关报纸和专业报纸名录信息20241104.xlsx | Bin 0 -> 346198 bytes 地方政策/报刊/CrawlAnhui.py | 145 +++++++++ 地方政策/报刊/CrawlGuizhou.py | 140 +++++++++ 地方政策/报刊/CrawlHainan.py | 162 ++++++++++ 地方政策/报刊/CrawlHenan.py | 133 +++++++++ 地方政策/报刊/CrawlNingxia.py | 140 +++++++++ 地方政策/报刊/CrawlSiChuan.py | 137 +++++++++ 地方政策/报刊/CrawlXinminwanbao.py | 167 +++++++++++ 地方政策/政策/上海/CrawlShanghaiZhengce.py | 72 +++++ 地方政策/政策/新疆/crawl/Crawlxjzfgz.py | 153 ++++++++++ 地方政策/政策/新疆/export/Exportxjzfgz.py | 185 ++++++++++++ 地方政策/政策/深圳/CrawlShenZhen.py | 62 ++++ 17 files changed, 2201 insertions(+) create mode 100644 .gitignore create mode 100644 requirements.txt create mode 100644 国内党媒/CrawlZhongguogaigebao.py create mode 100644 国内党媒/CrawlZhongguojiaoyubao.py create mode 100644 国内党媒/CrawlZhongguojingjidaobao.py create mode 100644 国内党媒/v1.0各部委的机关报纸和专业报纸名录信息20241104.xlsx create mode 100644 地方政策/报刊/CrawlAnhui.py create mode 100644 地方政策/报刊/CrawlGuizhou.py create mode 100644 地方政策/报刊/CrawlHainan.py create mode 100644 地方政策/报刊/CrawlHenan.py create mode 100644 地方政策/报刊/CrawlNingxia.py create mode 100644 地方政策/报刊/CrawlSiChuan.py create mode 100644 地方政策/报刊/CrawlXinminwanbao.py create mode 100644 地方政策/政策/上海/CrawlShanghaiZhengce.py create mode 100644 地方政策/政策/新疆/crawl/Crawlxjzfgz.py create mode 100644 地方政策/政策/新疆/export/Exportxjzfgz.py create mode 100644 地方政策/政策/深圳/CrawlShenZhen.py diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5ba76c0 --- /dev/null +++ b/.gitignore @@ -0,0 +1,52 @@ +# Byte-compiled / optimized / DLL files +__pycache__/ +*.pyc +*.pyo +*.pyd + +config.json +# Virtual environment +venv/ +env/ +.venv/ +.venv3/ +.Python +*.sqlite3 + +# IDE-specific files +.idea/ +.vscode/ + +# Compiled source +*.com +*.class +*.dll +*.exe +*.o +*.so + +# Logs and databases +*.log +*.sql +*.sqlite + +# Output files +dist/ +build/ +*.egg-info/ +*.egg + +# OS-specific files +.DS_Store +Thumbs.db + +# Miscellaneous +*.bak +*.swp +*.tmp +*.tmp.* +*.~* + + +# Jupyter Notebook +.ipynb_checkpoints/ diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000000000000000000000000000000000000..48a29f801c33ab061f419772fb2df930ca50af3f GIT binary patch literal 1178 zcmZ8g?QViV5ZvEQ`Y0L&?8lG3L*Jl5OA84Cm9wG`-*#q)Lu|-lWOrv~XZL=8a%=2t zm9_SQC$*(L;;il7?rdv?<#x1y_y>M#>ydY~&N9!=JTt*N8T0!wvcfkW;p~8O7*Q&( zOb|^bwq&f|SqZ)aSPEn>psdBeJ-*dYaB-BVlB_FdeMepoO=r}UsAxupCA36k!W)29 zqmv5n!n4+{F(MT<7`1k;l}Ml9SI6Xy*{Sm~R^VwIEjS+iyY^k8V(s7cje4ZH1VaGN z&O4MA<jsa11pFw?y|7`set zGeuiO*d-kvMr_v7jg7N*(9u9ojyVuPvx$8$%E@qsTaUBy>e8#vqlUKA7-dX{TiBs8 z2loknSC|NWi8`~JytB_kv0Dymrvsd*Hl6OUN6lltJqzz7085)MH`&t@jvV`+-(r%Q zQ{0hx-o^D^cV6@5_I!b(fNNpqT=Y9B0?U2|2v+TYBB69?s19AEwTF^vv7K ztykw%s6C~-@kSG&uy33=L85Ed0^I8mr+aV67@&q5!5VrhO>y6(Jm9`^BLa>P str: + """ + :param soup: BeautifulSoup对象 + :return: 文章内容 + """ + content = "" + for p in soup.select("#ozoom p"): + para = p.text.strip() + if para: + content += para + content += '\n' + return content + + +async def getData(start_date: datetime, end_date: datetime): + """ + :param start_date: 开始日期 + :param end_date: 结束日期 + :return: None + """ + crawl_num = 0 + # 创建一个列表保存月份 + months = [] + # 从开始日期到结束日期,每个月份都添加到列表中 + current_date = start_date + while current_date <= end_date: + months.append(current_date) + # 增加一个月 + if current_date.month == 12: + current_date = current_date.replace(year=current_date.year + 1, month=1) + else: + current_date = current_date.replace(month=current_date.month + 1) + # 遍历月份列表 + for month in months: + # 构造URL + url = f'http://www.cfgw.net.cn/epaper/{month.strftime("%Y%m")}/period.xml' + """http://www.cfgw.net.cn/epaper/201709/period.xml""" + print(url) + async with AsyncClient(headers=headers, timeout=60) as client: + # 发送GET请求 + response = await client.get(url) + response.encoding = response.charset_encoding + print(f"一级连接状态:{response.status_code}") + if response.status_code == 200: + # 解析XML + soup = BeautifulSoup(response.text, 'xml') + for period in soup.find_all("period"): + try: + period_id = period.get("id") + url1 = f"http://www.cfgw.net.cn/epaper/{month.strftime('%Y%m')}/{period_id}/node_01.htm" + """http://www.cfgw.net.cn/epaper/201709/05/node_01.htm""" + print(url1) + response2 = await client.get(url1) + response2.encoding = response2.charset_encoding + print(f"二级连接状态:{response2.status_code}") + if response2.status_code == 200: + soup2 = BeautifulSoup(response2.text, 'lxml') + for item in soup2.select(".posRelative>a"): + url2 = f"http://www.cfgw.net.cn/epaper/{month.strftime('%Y%m')}/{period_id}/" + item.get( + "href") + """http://www.cfgw.net.cn/epaper/201709/05/node_01/node_01.htm""" + banmianming = item.text.split(":")[-1] + banmianhao = item.text.split(":")[0] + print(url2) + response3 = await client.get(url2) + response3.encoding = response3.charset_encoding + print(f"三级连接状态:{response3.status_code}") + if response3.status_code == 200: + soup3 = BeautifulSoup(response3.text, 'lxml') + for item2 in soup3.select("#articlelist > .clearfix > a"): + url3 = f"http://www.cfgw.net.cn/epaper/" + item2.get("href")[6:] + if await collection.find_one({"detail_url": url3}, {"_id": False}): + continue + title = item2.text.strip() + print(url3) + response4 = await client.get(url3) + response4.encoding = response4.charset_encoding + print(f"四级连接状态:{response4.status_code}") + if response4.status_code == 200: + soup4 = BeautifulSoup(response4.text, 'lxml') + try: + title = soup4.select("#Title")[0].text.strip() + except: + title = title + try: + subtitle = soup4.select("#SubTitle")[0].text.strip() + except: + subtitle = "" + try: + preTitle = soup4.select("#PreTitle")[0].text.strip() + except: + preTitle = "" + try: + author = soup4.find("author").text.strip() + except: + author = "" + try: + keyword = soup4.find("keyword").text.strip() + except: + keyword = "" + content = await getContent(soup4) + await collection.insert_one({ + "title": title, + "subtitle": subtitle, + "preTitle": preTitle, + "author": author, + "banmianming": banmianming, + "banmianhao": banmianhao, + 'keywordlist': keyword, + 'detail_url': url3, + 'release_time': month + timedelta(days=int(period_id)-1), + 'insert_timestamp': datetime.today(), + 'content': content + }) + crawl_num += 1 + print( + f"中国改革报---{month.strftime('%Y-%m')}-{period_id}---{banmianming}---{banmianhao}---{title}---采集完成!") + await asyncio.sleep(random.randint(5, 15)) + print( + f"中国改革报---{month.strftime('%Y-%m')}-{period_id}---{banmianming}---{banmianhao}----采集完成!") + await asyncio.sleep(random.randint(5, 15)) + print( + f"中国改革报---{month.strftime('%Y-%m')}-{period_id}-----采集完成!") + await asyncio.sleep(random.randint(5, 15)) + except Exception as e: + await collection.insert_one( + {'banmianhao': 'empty', + 'banmianming': 'empty', + 'preTitle': 'empty', + 'title': 'empty', + 'subtitle': 'empty', + 'author': 'empty', + 'keywordlist': 'empty', + 'detail_url': url, + 'release_time': month + timedelta(days=int(period_id)), + 'insert_timestamp': datetime.today(), + 'content': 'empty'} + ) + print(e) + print(f"中国改革报采集完毕,共采集{crawl_num}条数据!") + + +asyncio.run(main()) diff --git a/国内党媒/CrawlZhongguojiaoyubao.py b/国内党媒/CrawlZhongguojiaoyubao.py new file mode 100644 index 0000000..a25500d --- /dev/null +++ b/国内党媒/CrawlZhongguojiaoyubao.py @@ -0,0 +1,282 @@ +# _*_ coding : UTF-8 _*_ +# @Time : 2024/11/08 21:42 +# @UpdateTime : 2024/11/08 21:42 +# @Author : haochen zhong +# @File : CrawlZhongguojiaoyubao.py +# @Software : PyCharm +# @Comment : 本程序采集中国教育报数据 + +import asyncio +import random +from datetime import datetime, timedelta + +from bs4 import BeautifulSoup +from httpx import AsyncClient +from motor.motor_asyncio import AsyncIOMotorClient + +start_date = datetime.strptime('2022-01', '%Y-%m') +"""中国教育报2022年1月份开始有数据""" +end_date = datetime.today() +"""截止到今天""" +headers = { + 'User-Agent': 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36 Edg/107.0.1418.42'} + +# 链接数据库 +client = AsyncIOMotorClient('mongodb://localhost:27017') +db = client['buweijiguanbao'] +collection = db['zhongguojiaoyubao'] + + +async def main(): + collection_names = await db.list_collection_names() + # 判断数据表是否存在 + if "zhongguojiaoyubao" not in collection_names: + # 如果不存在,则从2017年9月开始爬取 + print("中国教育报数据表不存在,开始采集!") + await getData(start_date, end_date) + else: + # 如果存在,则从数据库中获取最后一条记录的日期 + last_record = await collection.find_one({}, sort=[('release_time', -1)]) + last_date_str = last_record['release_time'] + print("数据库截止时间:", last_date_str) + await getData(last_date_str, end_date) + + +async def getContent(soup: BeautifulSoup) -> str: + """ + :param soup: BeautifulSoup对象 + :return: 文章内容 + """ + content = "" + for p in soup.select(".content_tt p"): + para = p.text.strip() + if para: + content += para + content += '\n' + return content + + +async def getData(start_date: datetime, end_date: datetime): + """ + :param start_date: 开始日期 + :param end_date: 结束日期 + :return: None + """ + crawl_num = 0 + # 创建一个列表保存月份 + months = [] + # 从开始日期到结束日期,每个月份都添加到列表中 + current_date = start_date + while current_date <= end_date: + months.append(current_date) + # 增加一个月 + if current_date.month == 12: + current_date = current_date.replace(year=current_date.year + 1, month=1) + else: + current_date = current_date.replace(month=current_date.month + 1) + # 遍历月份列表 + for month in months: + # 构造URL + url = f'http://paper.jyb.cn/zgjyb/html/{month.strftime("%Y-%m")}/period.xml' + """http://paper.jyb.cn/zgjyb/html/2023-01/period.xml""" + print(url) + async with AsyncClient(headers=headers, timeout=60) as client: + response = await client.get(url) + response.encoding = response.charset_encoding + print(f"一级连接状态:{response.status_code}") + if response.status_code == 200: + soup = BeautifulSoup(response.text, 'xml') + for period in soup.select("period"): + period_name = datetime.strptime(period.find("period_name").text.strip(), "%Y-%m-%d") + front_page = period.find("front_page").text.strip() + try: + url1 = f"http://paper.jyb.cn/zgjyb/html/{period_name.strftime('%Y-%m/%d')}/{front_page}" + print(url1) + response2 = await client.get(url1) + response2.encoding = response2.charset_encoding + print(f"二级连接状态:{response2.status_code}") + if response2.status_code == 200: + soup2 = BeautifulSoup(response2.text, 'lxml') + for item in soup2.select(".right_title-name a"): + banmianming = item.text.split(":")[-1] + banmianhao = item.text.split(":")[0] + url2 = f"http://paper.jyb.cn/zgjyb/html/{period_name.strftime('%Y-%m/%d')}/" + item.get( + "href").replace("./","").strip() + print(url2) + response3 = await client.get(url2) + response3.encoding = response3.charset_encoding + print(f"三级连接状态:{response3.status_code}") + if response3.status_code == 200: + soup3 = BeautifulSoup(response3.text, 'lxml') + for item2 in soup3.select("#titleList1 a"): + url3 = f"http://paper.jyb.cn/zgjyb/html/{period_name.strftime('%Y-%m/%d')}/" + item2.get( + "href") + if await collection.find_one({"detail_url": url3}, {"_id": False}): + continue + title = item2.text.strip() + print(url3) + response4 = await client.get(url3) + response4.encoding = response4.charset_encoding + print(f"四级连接状态:{response4.status_code}") + if response4.status_code == 200: + soup4 = BeautifulSoup(response4.text, 'lxml') + try: + title = soup4.select_one(".title1").text.strip() + except: + title = title + try: + subTitle = soup4.select(".title2")[0].text.strip() + except: + subTitle = "" + try: + author = soup4.select_one(".title3").text.strip() + except: + author = "" + try: + perTitle = soup4.select(".title2")[-1].text.strip() + except: + perTitle = "" + try: + keywordlist = soup4.find("founder-keyword").text.strip() + except: + keywordlist = "" + content = await getContent(soup4) + await collection.insert_one({ + "title": title, + "subtitle": subTitle, + "preTitle": perTitle, + "author": author, + "banmianming": banmianming, + "banmianhao": banmianhao, + 'keywordlist': keywordlist, + 'detail_url': url3, + 'release_time': period_name, + 'insert_timestamp': datetime.today(), + 'content': content + }) + crawl_num += 1 + print( + f"中国教育报---{period_name.strftime('%Y-%m-%d')}----{banmianming}---{banmianhao}---{title}---采集完成!") + await asyncio.sleep(random.randint(5, 15)) + print( + f"中国教育报---{period_name.strftime('%Y-%m-%d')}----{banmianming}---{banmianhao}-----采集完成!") + await asyncio.sleep(random.randint(5, 15)) + print(f"中国教育报---{period_name.strftime('%Y-%m-%d')}-----采集完成!") + await asyncio.sleep(random.randint(5, 15)) + except Exception as e: + print(e) + await collection.insert_one( + {'banmianhao': 'empty', + 'banmianming': 'empty', + 'preTitle': 'empty', + 'title': 'empty', + 'subtitle': 'empty', + 'author': 'empty', + 'keywordlist': 'empty', + 'detail_url': url, + 'release_time': period_name, + 'insert_timestamp': datetime.today(), + 'content': 'empty'} + ) + + else: + url = f"http://paper.jyb.cn/zgjyb/html/{month.strftime('%Y-%m')}/navi.xml" + response = await client.get(url) + response.encoding = response.charset_encoding + print(f"一级连接状态:{response.status_code}") + if response.status_code == 200: + soup = BeautifulSoup(response.text, 'xml') + for period in soup.select("calendar"): + period_name = datetime.strptime(period.find("date").text.strip(), "%Y-%m-%d") + front_page = period.find("url").text.strip()[6:] + try: + url1 = f"http://paper.jyb.cn/zgjyb/html/{period_name.strftime('%Y-%m/%d')}/{front_page}" + print(url1) + response2 = await client.get(url1) + response2.encoding = response2.charset_encoding + print(f"二级连接状态:{response2.status_code}") + if response2.status_code == 200: + soup2 = BeautifulSoup(response2.text, 'lxml') + for item in soup2.select(".right_title-name a"): + banmianming = item.text.split(":")[-1] + banmianhao = item.text.split(":")[0] + url2 = f"http://paper.jyb.cn/zgjyb/html/{period_name.strftime('%Y-%m/%d')}/" + item.get( + "href").replace("./","").strip() + print(url2) + response3 = await client.get(url2) + response3.encoding = response3.charset_encoding + print(f"三级连接状态:{response3.status_code}") + if response3.status_code == 200: + soup3 = BeautifulSoup(response3.text, 'lxml') + for item2 in soup3.select("#titleList1 a"): + url3 = f"http://paper.jyb.cn/zgjyb/html/{period_name.strftime('%Y-%m/%d')}/" + item2.get( + "href") + if await collection.find_one({"detail_url": url3}, {"_id": False}): + continue + title = item2.text.strip() + print(url3) + response4 = await client.get(url3) + response4.encoding = response4.charset_encoding + print(f"四级连接状态:{response4.status_code}") + if response4.status_code == 200: + soup4 = BeautifulSoup(response4.text, 'lxml') + try: + title = soup4.select(".article-title")[0].text.strip() + except: + title = title + try: + subTitle = soup4.select(".article-subtitle")[0].text.strip() + except: + subTitle = "" + try: + author = soup4.select(".article-author")[0].text.strip() + except: + author = "" + try: + perTitle = soup4.select(".article-pretitle")[0].text.strip() + except: + perTitle = "" + try: + keywordlist = soup4.find("founder-keyword").text.strip() + except: + keywordlist = "" + content = await getContent(soup4) + await collection.insert_one({ + "title": title, + "subtitle": subTitle, + "preTitle": perTitle, + "author": author, + "banmianming": banmianming, + "banmianhao": banmianhao, + 'keywordlist': keywordlist, + 'detail_url': url3, + 'release_time': period_name, + 'insert_timestamp': datetime.today(), + 'content': content + }) + crawl_num += 1 + print( + f"中国教育报---{period_name.strftime('%Y-%m-%d')}----{banmianming}---{banmianhao}---{title}---采集完成!") + await asyncio.sleep(random.randint(5, 15)) + print( + f"中国教育报---{period_name.strftime('%Y-%m-%d')}----{banmianming}---{banmianhao}-----采集完成!") + await asyncio.sleep(random.randint(5, 15)) + print(f"中国教育报---{period_name.strftime('%Y-%m-%d')}-----采集完成!") + await asyncio.sleep(random.randint(5, 15)) + except Exception as e: + await collection.insert_one( + {'banmianhao': 'empty', + 'banmianming': 'empty', + 'preTitle': 'empty', + 'title': 'empty', + 'subtitle': 'empty', + 'author': 'empty', + 'keywordlist': 'empty', + 'detail_url': url, + 'release_time':period_name , + 'insert_timestamp': datetime.today(), + 'content': 'empty'} + ) + print(f"中国教育报采集完毕,共采集{crawl_num}条数据!") + +asyncio.run(main()) diff --git a/国内党媒/CrawlZhongguojingjidaobao.py b/国内党媒/CrawlZhongguojingjidaobao.py new file mode 100644 index 0000000..39c9f2e --- /dev/null +++ b/国内党媒/CrawlZhongguojingjidaobao.py @@ -0,0 +1,185 @@ +# _*_ coding : UTF-8 _*_ +# @Time : 2024/11/08 00:07 +# @UpdateTime : 2024/11/08 00:07 +# @Author : haochen zhong +# @File : CrawlZhongguojingjidaobao.py +# @Software : PyCharm +# @Comment : 本程序采集中国经济导报数据 +import asyncio +import random +from datetime import datetime, timedelta + +from bs4 import BeautifulSoup +from httpx import AsyncClient +from motor.motor_asyncio import AsyncIOMotorClient + +start_date = datetime.strptime('2012-09', '%Y-%m') +"""中国经济导报2012年9月份开始有数据""" +end_date = datetime.today() +"""截止到今天""" +headers = { + 'User-Agent': 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36 Edg/107.0.1418.42'} + +# 链接数据库 +client = AsyncIOMotorClient('mongodb://localhost:27017') +db = client['buweijiguanbao'] +collection = db['zhongguojingjidaobao'] + + +async def main(): + collection_names = await db.list_collection_names() + # 判断数据表是否存在 + if "zhongguojingjidaobao" not in collection_names: + # 如果不存在,则从2017年9月开始爬取 + print("中国经济导报数据表不存在,开始采集!") + await getData(start_date, end_date) + else: + # 如果存在,则从数据库中获取最后一条记录的日期 + last_record = await collection.find_one({}, sort=[('release_time', -1)]) + last_date_str = last_record['release_time'] + print("数据库截止时间:", last_date_str) + await getData(last_date_str, end_date) + + +async def getContent(soup: BeautifulSoup) -> str: + """ + :param soup: BeautifulSoup对象 + :return: 文章内容 + """ + content = "" + for p in soup.select("#pgcontent"): + para = p.text.strip() + if para: + content += para + content += '\n' + return content + + +async def getData(start_date: datetime, end_date: datetime): + """ + :param start_date: 开始日期 + :param end_date: 结束日期 + :return: None + """ + crawl_num = 0 + # 创建一个列表保存月份 + months = [] + # 从开始日期到结束日期,每个月份都添加到列表中 + current_date = start_date + while current_date <= end_date: + months.append(current_date) + # 增加一个月 + if current_date.month == 12: + current_date = current_date.replace(year=current_date.year + 1, month=1) + else: + current_date = current_date.replace(month=current_date.month + 1) + # 遍历月份列表 + for month in months: + # 构造URL + url = f'http://www.ceh.com.cn/epaper/uniflows/html/{month.strftime("%Y/%m")}/date.txt' + """http://www.ceh.com.cn/epaper/uniflows/html/2012/09/date.txt""" + print(url) + async with AsyncClient(headers=headers, timeout=60) as client: + # 发送GET请求 + response = await client.get(url) + response.encoding = "gb2312" + print(f"一级连接状态:{response.status_code}") + if response.status_code == 200: + # 解析XML + soup = response.text.split("|") + for period in soup: + period_id, element = period.split(",") + if len(element) < 5: + continue + try: + url1 = f"http://www.ceh.com.cn/epaper/uniflows/html/{month.strftime('%Y/%m')}/{period_id}/boardurl.htm" + """http://www.ceh.com.cn/epaper/uniflows/html/2012/09/01/boardurl.htm""" + print(url1) + response2 = await client.get(url1) + response2.encoding = "gb2312" + print(f"二级连接状态:{response2.status_code}") + if response2.status_code == 200: + soup2 = BeautifulSoup(response2.text, 'lxml') + for item in soup2.select(".board_link td>a"): + url2 = f"http://www.ceh.com.cn/epaper/uniflows/html/{month.strftime('%Y/%m')}/{period_id}/" + item.get( + "href") + """http://www.ceh.com.cn/epaper/uniflows/html/2024/11/07/01/default.htm""" + banmianming = item.text.split(":")[-1].strip() + banmianhao = item.text.split(":")[0].replace(" ", "").replace(" ", "").strip() + print(url2) + response3 = await client.get(url2) + response3.encoding = "gb2312" + print(f"三级连接状态:{response3.status_code}") + if response3.status_code == 200: + soup3 = BeautifulSoup(response3.text, 'lxml') + for item2 in soup3.select("#mp_32"): + url3 = f"http://www.ceh.com.cn/epaper/uniflows/html/{month.strftime('%Y/%m')}/{period_id}/" + \ + item.get("href").split("/")[0] + "/" + item2.get("href") + if await collection.find_one({"detail_url": url3}, {"_id": False}): + continue + title = item2.text.strip() + print(url3) + response4 = await client.get(url3) + response4.encoding = "gb2312" + print(f"四级连接状态:{response4.status_code}") + if response4.status_code == 200: + soup4 = BeautifulSoup(response4.text, 'lxml') + try: + title = soup4.select(".content_title")[0].text.strip() + except: + title = title + try: + subtitle = soup4.select(".subtitle")[0].text.strip() + except: + subtitle = "" + try: + preTitle = soup4.select(".yinti_title")[0].text.strip() + except: + preTitle = "" + try: + author = soup4.select(".others")[0].text.strip() + except: + author = "" + content = await getContent(soup4) + await collection.insert_one({ + "title": title, + "subtitle": subtitle, + "preTitle": preTitle, + "author": author, + "banmianming": banmianming, + "banmianhao": banmianhao, + 'keywordlist': 'empty', + 'detail_url': url3, + 'release_time': month + timedelta(days=int(period_id) - 1), + 'insert_timestamp': datetime.today(), + 'content': content + }) + crawl_num += 1 + print( + f"中国经济导报---{month.strftime('%Y-%m')}-{period_id}---{banmianming}---{banmianhao}---{title}---采集完成!") + await asyncio.sleep(random.randint(5, 15)) + print( + f"中国经济导报---{month.strftime('%Y-%m')}-{period_id}---{banmianming}---{banmianhao}----采集完成!") + await asyncio.sleep(random.randint(5, 15)) + print( + f"中国经济导报---{month.strftime('%Y-%m')}-{period_id}-----采集完成!") + await asyncio.sleep(random.randint(5, 15)) + except Exception as e: + await collection.insert_one( + {'banmianhao': 'empty', + 'banmianming': 'empty', + 'preTitle': 'empty', + 'title': 'empty', + 'subtitle': 'empty', + 'author': 'empty', + 'keywordlist': 'empty', + 'detail_url': url, + 'release_time': month + timedelta(days=int(period_id)), + 'insert_timestamp': datetime.today(), + 'content': 'empty'} + ) + print(e) + print(f"中国经济导报采集完毕,共采集{crawl_num}条数据!") + + +asyncio.run(main()) diff --git a/国内党媒/v1.0各部委的机关报纸和专业报纸名录信息20241104.xlsx b/国内党媒/v1.0各部委的机关报纸和专业报纸名录信息20241104.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..6e76f91652c6e66bb19864112356b69038e82957 GIT binary patch literal 346198 zcmeFY1D9+;6D`=bb=$V>+qP}nwr$(CZQHhQ+cu}a@4Z=TX5RY;Z*r~7%366&Ri0Bj zV#nDLB_|0Cf&u^r00961KmdSCre_xh2mnw63IKo%00E>aXlvtSY~!S>o; zZG~R|0z{q%0Q7tO|KI)(z5`WC<2D2I2;HjZyh1%HLrtL-6%c=&I9kN!;OXz;)QDS- zFj{(V)~G8GA`!G2)^c8UxM!tqtk+rBv4Jp6q3_aMg~3{!Hr6T-dJAi3BFEyAmMiSh zpz488Y`;D_cg&6enPOVh!ZOBsCBltis|U8+>$;fi^Oc8s^AmKE6_x$H&Ruei*2 z;e=u4Z@l}2rZFdYQoFiT7+F<}ZY~_-D-b3=Mv@}b%Ca=OMHlQ7!zuVX9ab2fVtD)( z)PUtS4|&i{Us%J4g=`awGN`I`*=>9fu$w z>B=wGNucE8C%y&W99>9^wcSgGji7`X2rTN`?ejUYxy>DYK1T4o&s-IWgu+GC;#wV& z`fl$GPD$#JB4S_lZwS$4`Dyt%T~xxI+@(8~va+o#UvhkxNM!L&s2*XKRuvNxxfnYH z?Qgoj#)!1~j=^gU;Ie??Rdq;RD_h=q;%uhxYD&o&EN>Wx)a61t>X@T}>3WUVm=(d( z8>X_N8HahDL5>3_p}Ve;Ro{b9W-s!W7mZBTm;xa)(ktVv=qO3vldnb-^W9{&`w$!C zVCC5Dct9jx+0HMQ{jWw+pZf7<=+{8jepwFw_s+Ok(Ye|>SQ^;cTKofVs%uj(E8Ayoi~4v2-6WjFJ?uUZC+vOTk#CY!#qtIx}Q z^=FHSCmqT=@`pxzZr?t3Ufi~`DJ7dJP)QEl{cc;rnKMMWP2R})ZepGv;T9ys@6(F7 zO93+$k**$dcrRw!&~xp1RsitnfRn`3Uqj?YAg9IJr=c?hjmCsUh^dFi$f5bgwMdgD zs9C5NouZ@auxSvy?$BX)up7ccxHF8HQ=t*~6$$-)((4MW<{C~J>@W}y#PdbDsQ~t) zilt^O<%*2sdwD0?@l7elYU&D=fqZB`>mdV|vq18r3mMTMb?)=Gz|0K!Jp_4KVWU%hLgjBAPCbj+bA9CmElT@^+c!+Pp&1MoZgFUthB+u>&oLCf4 zYQ;;kB;r#N6yOX<&9U=Xso$b%SoxCEP`)4~2`rrJjtB}{sZRv+0jrAkR z>_|RI2SXLi?0WHV`zUP3QD#7l?*zrKfyr&MkK=Fe&f1$d&x2&JE_8MWJ8&{$b|ATO zu05=`;C0nJpKCk;%@J$x>>1<71F=DI@Uhx#gLL96!u1w&>)eD7w!GS$SbkWT>!C?R zz1v2kW+syDnwKh&Q%1ee@NuX*k1rR!={2v7Fct{nMk2-(RP+%H z^;Qs=rU3!m)mb%D!JT~HC%o#+TJl`r5S#+xWMNeP&I9(S=QJG9kSBqsM_pc6;P!!$pZclFB9K5lkgaaGKy9ZVrhy?0uBveZL_v{}F3&G2ub|;F9Fg03 z62_==P}q-O$w@Fm3rh%v9@`f}m@Q`Lof$10=Wr%|o#bTGq2GIu;$?L}Q)?@J28GGd zPrKmeGgxkbJKp>Q2BbJQtUJK`=@J3eYrpU_#C_MNiM0ESWq;v2%n^2_ByI)EU#}1+ z{LnE`JYR|g$D@MuPUV|_P68hj6uq1G)RT`lCWqsr%l~`GO!qaP%s~MF1hNAFp#Ngw zfBHyAGh<^XN4o#MF#N|^W+iUMWYQyq+)zE?Q15~}im`T*8!cbEEGK)&Ke=6{5vcX2 zZOn)-_jrzy5>p9F6bkP#r2TxD-qLsOmWNpNsg-XAkjhIzHVLFQXrn!z#Foy}kgVLb z97fyZ=XusW`h0(HTUAa^tN_H|=Qo2^XJ0ssRF(1DW1YciXq7j~Z~d!QXWYctGe#&6 zDYo|-L`kK&f^2UO$*+`va$7Q}&U5}d#5ag@Y-_o`?q4#*!ah80u^kTSs4*n znV*;Vt<+p<-3tx#G&QK&n}sZfu164f05F3%iGADKf8sCSBFZBX&n;}{oX1h}?5j)^ zE-QH#_#YXYJl_vM%U0h2Dw+9s92(tO@Q>2DeO*|J{QZj&@5Rko{M6<_?h&=No2;%a z-T>6K1~Y79TuP@v5bW@T@72MWgHD9j1}A6!Me2zL=9vU1fp9g=(&ZZ;5{^?(5)-T> zbodE#lwCN1i{~C+L|;Jv4`c*%_%Q0oZ^Ou9P}mX00kU0a8#Ng@18#D%#mM4@+v@NC z(&{fNetxnvuWYb5V7!w1;OEpnj7!CUvbufZ@c-oXdW4dmZg+oG6W0`BM6{^#LNy(W zky0cGN?bpj#Ky+fzFl2hJ-w~!{&0VKtha9up6uH4@}~BB>6I zfmdjEXw`BZ|tuJBlag2Rp2d_JP!U(OUFo4MWE`}f*V*BCsI7Z9rB zr@$)0;aOp#l8y+;9Okl9)oR+A7STVV7$5-I1K0$`k&e+2nOe;IYO6nMMZLPs=dz`q zF^mw16MY;45?|nqcMAT8+W4TU4)bVpnr4eb z#%Tu^&4^T587t||lVVH}2h8mhph=UQmC8gCS|{6p;fzxLP_U=W_@KcgIhed-j)*C( zilpeTW8%e(YZdLO%c%7G;RLlW(TmLPZ* z6hG+cpiyLjpS0`Y*R*w(=|`b8TOJ(MQLpz8Q7t>|BHcr~ z7y<9^8Ne>LpK^of-j=H)C;I9Qfp1zxad=z4&|sHx?lo_pdPf|0Z_QLCimDB6qtvtt zWi6DQ2XK>qeW`@nSOlTQ-?xP(qrJ2b}fhwsz?r_LDUND@HSnbibxHcl~T)5m(L;<&nyx>-nyr%^T7n> z_E218EeBYGZGdYN($!XVanhWPL~JJkca0)Ie=*j#R@FXQ%I$SRI^`$)6xY_7mEpI* zYkGYGt%$)%C8C$kEwy|$JH(C@J2tq2y%nbS3?uE>S+Bjnz}~3SVC6G#ARU!ty?mOl z!EP()Q?(HT2DY$0q*T&2osu+CuZ6Z&QJ?pe^=T)(QGQqcy8o`c!4|7*APefMvNM`= zX`h^Lit3l&Cf?JFy_qcE#7#5UD1Xo>VfU?Q7eP$YIeQ*M1HN^3eA+azZM5X9y>&26 z5~Q1^*C9X6cq;$-M`Awv=gKEmz_bz_30Zfw{ZKbY^L^s!Q7706B%e3Z6kW>KVD+LS zIcuU(td=fkTL*Qwfy(al-QmvD$QNzZ_|;07+e7(;pdpvLpz5s!{qSI!GxJf*!dYr-KSjsMm`{IqeQU-G@|T%5#1t z>ZN!-ZEQA+%_E_<-C2$y6*j>&Ywl%ctEmaou+%Sz)2EQwdkIOVMSP)gOmNw-h+92o z45AG{?;WM0j2v|NWI3O2SZ)JxWS+>yPL!a!vZ$4{BJAQfp*pK#Xz2IopjxCYdnlL5 zTak>SiC`0+g%2tptB}{L-qC7q*|F0X9^KkQGlAJbpS?*E8(K zYKAfRCC+d!N1|}AJ9-}StDAq{O@R&vk0Y!fpbfz66*0f$6M`0lU&sF~lgl8=91^+V zR;jW13YH1Jirl3NR*rn8XH_i9Rgvqyjzp0@yg-AWAdUHa^xyAyL&c_Q?Ql&)2k##q zdQxR8t&3L|7mfhCv(o`(fOM0yuTzOpg4m>|`hvS*hKgT-t`M6CN#0|j#jU=ru)DJ+ zIl^V790zr(n!7CXX;22f(+<0I+LdEgsqwSbL|Rua<4azIdWrD@zU*xk1Ed;htviRP zs(>;HRu)AaWkG1Y{Pu)ej!y9=wt0#^u^t5)t+-eJx3(Y6`E4}gYr7)z*D-MoJ)wl= z5VNn`=N6kzL5#Gz4R_mfC>%`39I|7DcBI0 zonrbAv?*fY$`-~F-+B2`Ak<=1jrRs)CYaqyHXf=lOb1>Y|7~8?3V$$UL^Kr7_H0hN z$v{EX-(B!9^k&oR+5n{`0A<{$bM|IAW3?pfy?=s3W`Pm7D4PEB0tv`*MeohAVgEj2 zrxGr3=@W6^z;+59&~d6I+KfrF{r=z}7lz5ZqxSGciB?V^GVBb~A|n*NAH{^p|5d)G zgi+_t?LVY%meW&9I!NS@8!98-6>AO{V)CwP|s-q~b5@z=-RZm}Xb ziGOReWpjC*->WUlKH#b9+*nx9ntOayUq`lkiv#x%}}^1?h^zp@@oBH7lBx-6KmL8_CH#5T})CM`!ziS0x~`p0o63*^V8bfHM-zRO7f z!!kF)f6;9x#Fg+Ch-TD_YD}&ZZznYwxvHBm=f?14J3gMdJa1Kpae}k|3mT?r^(r~! zWXG*%2rs31*~rs1YlHhkj!QIQu;uV4t@EUX_j8YW1BoD}4*1EiCs@OVe8{R&?U0CE zI2Z_ng2p*Q8FOY@92upBhLT-W`A(^bus}%fmzp5xZL1YF^ zRNZn2D)p)ne|T^!FJMw|=G^8+-lb<@EDC-;LMUl1x#!1BxR1WK4m87iCmb-y_|B^c|d%Kddd-#8kZ!}Iz1_5x46vI&WK zehU~*?@Iem@PsllFA(k9Ev-u@nm;T|9ynNU)1ZS)0NBmkzYKP@zXZCLERT_O@9j-G z@IohT3bek-iy;bTkJhkh5UCQFcA|wD9{%`lX~&Im)m{~mv#uE@Zwr z3^qfRJOVUhA01lM$M6GP)5A3oVX(H-D2aZCbfBF-3yx4F6=rNstf*@N6p3F8jWqzl zVvwzKH5;z5MaT8dKRig^zbyC@KyfhoWL_(8%*4Tuu!74AJbX^X!8Sh1Nh=mQ>=8xr z_;Do7Q8RlI@=+D~U04p?bItXPkTE_S|ARG?D~thW-S~q)tROv^DO?ce193MLMR*34 z)aq8-BnIIP&YtgX#7>uN4dP{7zz%juxipC^?2}QJx}G~WodfreQ$U>p#+;Af0ufSf z+0AIu_K$1QcFlZg-kHnbkI?icWPMCI^eD3z@-=VSmNs*2tsXk{1=FhMKOefS>mQvq zw&g2rDWTg46#?fD%7qb?-({MUg%?8*4ejfQzjj3Ga|r6 z3F+wGDjn7=!%(y(LGsI#!uY?`%pC1(NkB!kIuC)tZdfhJEU_OdLB*f2I>|g!OE##4Ht_R{GsOiY2N9y}Q?lRt$IVAN(nFW>$h7ORVL75b4y=bXBE}f3 z^Xh9*m|fsBZK}@)5!WH6HLgLPzi!c|@m<@rZV5SqnVRCo765-pCm1E$P6=^K;8Y6| zEBJ*#WUwU)Qm8t6C%`bNVCAxAjru!R6GX>jT2JZ5iiXILr15h3=jL-TQ{@Hyh%5-y(+U2w(HE{pLNK2((o`XkF zhAub=nG#HxplDAiwjs@<;ykt7`#+~VVPJP$5ByV-srzwT`RiVhlCvnpl*EG9Yzt`}6EP>tT|nddDq;6IAOa6X0=8H6wnC?T?sjuoVDqK&C`XspnJbx#zCMhe z^5bk<5)ZE6l(5rZ{>ZYGe*V7dYAQ@vxWq<1BBHG$m_pU6l^)o=cb^kP=)|RZ!B!2jGQLXVVw>f2RhHZQ{)gfdBv){W2Qt{~$F-CwD7j$N%U# zLu%7Dn<5B3e@?j&x+Xv4$t45I@EfG@`7}W4pdUL3Qx^yiYwEN(lp=N#1m*Mi;tXem zWu~v@ zX0*RDnQEElnuYK&^TOmW&n>e~;YoFU7-WVx2TGx%g26=RhL-;bP>Y7dzd~ad9{SNR z1nUZn7!vO#&qf=KGe99xpooT8XLu8d1f8!#7OvSkibcIHE;k%Bx`l(J$A^VAb4son z_&%D+V2CzC2%J+ud)= zG++-lwOYx(;mDq2VCN!>=kj2LMnwoctVckp@`B_ofEJb}{VmM-ghZcll^z*)yuuc) zGdLSDx@-)ymj-a&<7gI;k7~rh^ZojFfag1|O%Ng8G^1kOo;NnrIt-#k_Xie|2w1TK zV?sA$=8}>edI%Y!5=OhVH8-b%!;8n!d6sF}RP$#zv^Dj{x6|X{{(M%oRpWR!U|(f0 z%?SiMKY%uf-! z%|o|dU#V^a#4_-rBZJ$D`!($+k#;dFV`ir#$(?UA>JETYQGT{#uffWkF~*J@KZre@ z?yyx)@|DX_fbS_M3OL|6sz7X|K%jsU5(hRTwK5WvIk(_h`=w1O-qNgDS6^OE!y0@H zbYJCz>42xxTH0pj3-xnW)|GFGQ$Xv0K@nEvG9IEmDOJC@id88p2h@0d#h{@kO--H-- zMr65TY9%6lwb23IG)t*U2rOfC=q%9sC`ux zqvN7~HodN!1966-*yPUuB*?O;i=6-f(wjbOU~+cdfATzE6fEOd;&(Uu`@A{!M8wQy z*)?+hDb25=;K_u~tTbCNt}Y~!lwk6@8h_S|eZYtB5@7&nn_B@F4XjbKOpH|#c&Fa& z9k|HrI=U1$Sg8YEtj?$`H>MOpec|r}d}C_qX?8}a8oirJWvDbe*9ujb+hI^Ob1Sh2 zd&rLpGLH;DSF0N?7PGwNmR9O^dAhz$MoRF_st_Xu*=$@p z`%mub>U4kK&dT!sVT@ZuP4_=n#3JZJEIMi`Bn2g)BU-|4;s>h&VHc_t%d+-ydb)q3 z!j4mhvCqBn5SU4q6K(T&`&66hQPCyzEBIvh*GKJXMkTBH-X4FnbMx9?&-UlQaq`f< zbPAbyY&&?2DH$EznQNLZyrEJh%(WvZu(8uqsPiZ!4zNVd!O9HerCHVbCB%N!Z{RiM zOTkWC9w+L?183>V#fw6I)43Z?oZ0%z10P$DeK#4F?is-v65XxB#cl#D)U^0AT|FK>45U&P?CI*htaI!Q965 ze|SAjO~*wwB%j@iFZgmPW4sn9ZR_=%{vtn^Myus5i`4B6Z~O5C1FE$ILki-%L}Ywo ze+0&MScI{@AQJjWL3D_If+C9_s1zgKY27uRld(SrREBXO`2q&(3ml~%k7wWS7teR! z^;RV(0SRnM+L12}D2tngW(l;F8k9Sp*Egmy!k(Tmic3Zeg_aUsu38KpAF`i!@T0JU zm;R8)HYP@~jIH1}03*qx3-8sLIu? zq6?zT$j8xl-G7NPIJpb5YI+ABbJ%Ul$YL_ds_wg3e(u?=bJ%kv2PvhL-${3w$}Er7 zF>q$yIB8xhhs| z=8EO3%Tp;Vq7a`g7@LaN`fG8XIeyt4G7pLw(c@ zYs9rs>rv14I(8HnD|B3?I%@cG>hI{X_I8CuiSm))TKNoU?uNNR@D60rfZkQr**$N{ zXd%c7gyuQVNNszdN}?osHmnBMX1<=8e(HL04+)Sl(&wfyPYy4ubo zvwU`W8Yb!V0!BHo>H_pug1cU_sdnZHYHYIkLzZ=+x$+gcE!!ziwNrt+Ro0_^sZm$n zJaJ89X))c?ICsVLJb`+#0kv_rJo$WW(;B-RA#C}R%;Jo-B=|giFuwUQG-naXwd}dt z(Hy?ob3I1{!PJ_^WK}PqpN;&P+O<8wZ9B6Y>!_)i2Nbgkv;n&@o!bM;ww$i2aD^Sx)_ zN@inNtgus7c>_ET9q|MPK&>uaUXn(DI7@FVKOI%51`RknMS_6B&YKj<4snzBC;I?@ z6%uO6bj)Cv|cJ~KS;LF3g@-S8Y*VEc|4)fqA_7^_!Nfdn9r;j z9O5U*QG}RJU-WT*ZtG&!bF0^-10K#V%YCPawhS#t%EvMeO!;78z?jhFI>gFgw%Wk!<<3oA(?3FBD$s;H_h_T&5$ z@!^{d^?;bZ?>#njJgsKC>PvFJ@82_6e$as!C9K$XKJPt7WYNTg1n+9xCM^lays~p` z-m}VZ_kbnYF4u-LO< zARx&l&W}^5J{vZuj7+$r1RRv~e=(=cV{Z;pN(NYKdoO)TR>@p}lxtwp- zkyx&>&(0rI{a-;7N;y1JFVC>>MXj9^kv~O25A9UgG-Jd<<9G#%6_HHfm^>tw-yb5X zj#0;>3W+vHb1x5O`eOA@pFZ}W;-@QM=!OuPs!x^!0Y3nOb4+hN6=`*l>NT8?J|24!(7)KL- z4;f>}-ck1meFwd=g22s@oATizySY4i092RK>KPE%y0B%}Of1OT&!CLf;W?h^4S@At zw5OxP@&^4Gffyci?4)1=gpuUZ)A8>MJb#$pNCrdrYXs^?16?jaDqb&-s|-UfZV@?O zt^c>&#NI|A0l;=joSiX~d?kpb z`(io(B#}wnPZ?4SbQum0%F<7$sfZu8jvDyq7B)OlG#Pp<131jF_2r_9wVb;NnX?w| z@+OCGN5`9eS>VVkPXU6p`8I9kn-z0$I(UPU5RJ6nE5fXs-)4t$yR}r8lh^tUHm5jy z;+v3Cjv0d(SCDad?Q8OTcqg~-8wq4%UaQ4fp3I|n zUK*`+TPvJb(QN)!6WHPg?%1NT837CHN?-Ps+xl|RpQcf->c;Q94i?bEGVc=u{0keL zTZk_1No zs9&RKpO6Gf@Vo~NDs6DE%31g^a3kd*AoMu$=53z*v;b$(JF4kpwhnyjt(5j!Jo73rL7imm2Bx z9ZMi#!&{Qf&EpZ^L$KM~yO#=Bw1uN`LhBu?!ZygRqAl>mEJMSK^KbV#T`UKKPLg&lq$ zg^enZPmC)hk;~R_$In4bDi~;BB_|fLH&Zthlq^P!k^n+d9wf|48e&X40L37`_Zo%( zDO^-X?%*Z$uh1?QKSG`-!Dv8Ucw`WB%zC(8tTat`qg-c8)S3oQeK2}MN@m^>qd5K5 z9N=OTfWnm-pX7=pNU`Gb8qgVBYHf4BN>imDD8RmlM&~Jadu>t{5#t$gc^RZ`mzQYR z{I)IZ(yA(7QBV@!G(TVP^xj`w(`jwu^bOe4=G)P}o0Cm(UAyU6g{MRh&V{XL5&m+J zcgLn|svilIv81vf)KgC0Tu*+LU_~D&UQx!(Lp#qcIOkniNKsJuC)Pnb5@AzTn-Vk^qN7fHmVYAU@_Xfm&vX z6wTKdII(~-Hg2J68_4aw0-xcJ@L{Z+JzNmK$bEhCcpaJOlOCW0X`I*l) zD}8$U+1!CE-%1ujc*;%lh^P4kuef9441(}^Gp)9Iiw{LFMtltUZ_$t2=;lcZ%OBmb zfV$y-$JEn9NEv8FDjBB>KI>u2+UIa5F~TP1{8pbU95q7=!(GWt;v}4)&oaU-%!rvj zoN;H5hVL4>G45P>o=3-Oy6jcxRJ=ua<}>M+AHyzX^rwba0U>tVkp z=Fs4iu`DYwaaYe&`YQp`wx#k0EKC(8d>7iHw2@A{tyNxJ_z z`EOe2P<7j8lNF^0ug(?0i7t|mLLSNBPmC2j=mv{gE4Uu<1{!HNW;r`WgbuuCNVnu} z$(rS5TtWdyxPQ@^ALv7{RAlJM57(#H^La^4R-jx*()1Rr$(XZH;$(r9i{ndbE}PCJ zXUBnbKh=6z`vX&u zrxI7M+$W~eYH}=Mgx5A@KXmt>0?j9`>%3Us;FgTk=+3$v=T$~zgvMdEwTuEp7Hq6rN^zoLFYKVM*u^!`!IlWLk#Wnd%-cPCt1a z&OfocP1z}FY_h_N%@~wsNU;%jz#E16JxrCcw?cUF=~b?vA$;+pVY#MIL0%V%Jkdj2 zE!3@oi=@NL7RILkR(8({@98S!$-!YNC{GiaOV+jp3ZYMt{%UJ#8-z(jAPoR74^a$T zSl+Cl1;fb!0iQgAJQ#PJpHOe9=`HS1Ub)igB`~hp5N(hA)lf4G5C5gxv=9Qt*kOd$ zwv(w=Vyr*Hbqkw8LDcVi1)a>^kL(jqpPN0HIl}N6VIe2TUW@@!Ru4P3F3J!oUh`FU z@TeXE{)R8BM<^`x2R!Tm*LxRjA2E`l=@-?=X!L4$g4}w5!{Y#V7XrUv74B>fotssT_N&-ek;r6FM6hWH~G|w*7$WKCYQHuzcHR?2Lc^ay&B z6R|_2XGa2tLlT;$_3ULF@vslbr@?H2hthM7J026tVwtDyvwPj#U4W2WxZxU!{SANP z&O19CG2hu%oF!}cOJ(zIMf?4mQvSb%s^1#R|26`E)u_A&flDBO|MdTvY_>KwGS{aw zx7If`W}vmRF%6fK5ru`q{LeYC;$lJy004krznu``x3Cuwy1%ONcLC5*K~w;sW(NE0 z_YH_CzcfDpKz%Iqr~a=x1^{U%rtSy;05|lX4wy^@hxNOYVsRmUB{!YRY*0OIVaywF z2@2;wMPl(l!`sgGXu3w~TgAiGa4hH7zYW*CNc`a1Cs8Za(RjyprpP>_Wvt=y+S69H zH)krF>D~KB_PDI>?ej-<(H=RDQ7u(~5uF&3llCDte&^gcCo4;)Q`Z)7c6|JX3Fd}Q znhz`>WEL3;^!((faR?16_}p0F_G~CzSylCXOVPGJo+z{ul3l8T2@vw;j7&lchp0n> zD39|fZz8oPjv#R%Q1Rp>n0p}(H@W&=aA}NOrt5lKZfsCCS=sdg>?j6!xFA?+re=H| zYdA{pjttmLHAO`tbW+rmbW(;Ba9LhjVPO5~Vin5qF=S^o+Ye@}EL1o4&mS)Hd5nAa z?g)36Q0=B#qybt?qwt3<0_9OFsgCl!N7TPh@zmseP9{t&nadW^=Ju-L2)G15{9vW5 z8j6{+9q%!Z7&_{5Hi!W!=A%{*ZIHxdWWM*~WbN(kf}${ZT>4(*MtsW3DFp>UqrIO2!Z~TK7Fd*2uPtOrCEB(ku78zT0+jP?$AV&0io6h~( zF!dVT_+Nmn9KgN*Qgz(0;&5$)&0NHs1bLlM*^sm2)Ri&nO{@yqEZW!mujD&rOw${zpXldxR zo5uSVE`}0vqbI7OH=ud#jQ4dQBY~9wJD~npEvbGRJnwUhuoevsDyuzzS%p^34sIN_ z2^TA%TR3UsO9MuZ9=YEF2oNA6Y_BG}w+IabAd7eIKa-)9Pv-d@Dwzk!_>BWgS3c#y ze&PLrIE3+n^hXdVq0G2VF`sWkjGPn-TE&M?ho-6qbt67N&?dC?Q(*ooG;Jv1hf7Oc zgPa~eT}zZe2+Wy7xR(j;&Mj07vJRARxSl-O>8n!^n8C2vSUg^zuGtd|PA9S1oL$?E zCjFf*cbitvxBKGa;^8NQUYKCOe%zED4|NB`Qna;M2A(L zV?((?y&a!)-FS+bVkij=pi`ItNH;SVPF$LRLiRZSw{Sl$KEy9X60SLyII!K{k8UY$xE(4kVzVI?BFx!VQeDQ4$+6$yR{ z1|mP#oi`;VC2*L`W&=TxiKNn$?(yQ}<2BY^mH2HuY_N6dCG5WB{;qg5Pq*r)tzPtzA#m)U{=310)$>CA3E5 zp~KNh_K__V`xT##xKn>x86{%b^6-sb4TnM9_u<+f@(6^g+PXBH#1OBn3*s}~Gm+Pt z%#j7FYHDyREmQNmWPHU@*wR1ckjb;_3+~6^4|cvZQdGtz zO1ChSVfz4JLV@!{AQ3i6wy&w@5vS!T<*&*L_=)hXbxu+X_lHSr=AkI~%iYjz@lPG! z(QHz~*B|#`L6eaC9PoXS1)^fDKc25FSE}?eL*a1V?uJt*t3a z@c|N{c-{fmukwh~Vj=fYZ=zT2GQWN2J)&!7?(E%Rw$VGnO}r9)%gylxEd&ETl^L7@ z2kB5O7W&=5(yzuz-i?_uS;t5=R}jOy2lC`5_+|73fI^SN;8-@U&uu(DKBhC7KA+AP zHZ(Xqoi9_V)?l+(DCz4Hu+FGTijvtS0lfkiuW;{#o_(=S`T966rY+Z z_#rg5RA8A=OgER1o*upugT;1zlIuG{u1<}%1>|tL*?JR4ASebcq$}x6h5%#G0@O6X zXP)}^V9p#aUa!~n#^%{6H#c{ZxuKD1yi`S9eLP>VEu(I1%&Bz`{P*|oedQ!DOd^-)H81Es7-5PY#^5nkgN~yWdqN{%*Ef6uAT>!r<~39S?;i* z;4d_-HPanX?-NS}-VYi%$Om$vjD+{HnfdgNf|8BgY|m+VqvItPz~vS@$5}*UW%?b+ z+qF(Dxaa1f*^R6NQUp1XMgObMRD_UTotbj6)So;whsEU{joeBT%~Yd3B< zy}c)WlP_|=5lBOa_G)~PZ+|q0zTaAx(KA&7wJ#SR=&uX1K0lRO_3ysG7l4oQHQC zZ{}zZ>Hi8wmA2&QPoFSwk;DX>_ewh|#59CYK#)3`5h~j=!qY=zF0>bKGW&2`w^o|W z513}T58_2}JC0H^ZF=5Dz+h!Q_6lEmKi?yhl8RJy+`|cY-q!~IIG=GFy`qckHkm(! z;(bqs;`P|Rv~4@!ky?)^>m2Th?~(RH+|?z+#mY7t@DI(smauCL7w4da_LUcNJ4*aWI#)5zBB;B)J@1S_K*{lHVZn4=>%bG7U z3|%3}J&9t%%yQYlSk-byZh0=4tnIiRcsN`8SGCjN4$iOUpy1(dzjIc~(pNT{(|bD2 z_Wk`7`=!xhW&eH#J8QG2XZRw?>gRXljU*(B)8L#HlFYEk)tf{_i<(I-pYM!^lMY^6#pGlh55mI6kQ`6}zhHA-^2lLM$f-f0} zzdxUienR|gdRorQ$(yd18BDIYr%HKjU8_2tEcAN_ki;_eCpn%WdITIC@ld+I(NCQ| zuddgf@S$8(TOdd^ps*GuEt;@sqiyfkv!+dZFwo1ED=#z)XAB795!2MPERM2C&eExRzuSQ z?i)>KiI)g`H<~Ddq|_7y1Ov*PFIEti38rp(K0?ImD<%Zk!;~NiL*elx(uCgo{Jl}~ zf~Pat?i1x4#^MeHA^(y#Lx{O3t~^e{Qd&n7Rykd0OtFOTf_eb z8TzP6Nuk#0O(&Q%Q*?t`+uPUa!`c~45tKDFx@>oI_yfVRfCOYThbHOPQmRsiK^fU( zOo}HTsnb!Y6c;~HmwDWsD)@Qx>8RJ6%z?G<6G8S&7$G6=gnXpJ>o8{IL);ZWz5SXe zMvIB#!w0OkJKRU2%q3H(4Gj2vXR_2gU9R-DgtnQ(>_(z6gt?@YL)X3E9|K;J$k@rE z{tkmsRt}U*Z~Xo{Gv>{b@q{{#%7w1|pgwJsX9|y*!FQ4ewHiB{&+AhkU5XxN5`&Y5 zk#UW~Zci4%biM!-2Kr+aD&*v@zV;K)T3?S(C+HX9Wf)B+U>f&U?PXk4##hx4AXHo=c ziO!bDA7#V{_FgQCG%D@4`v}g|#D|E%(IhE_hKky3HZD**t0)&Y3IPBK%Yg4g2>1vi zKL<{f$5izXp4SW90RcjhhLRE=?@Tc#0fwA{!haZ655R;ztRBe5DWtFu(u4^NC7i)* zft!RM`Vv((mR9Us(vSMDB)xR!*q`u1O?+i6?6q;e{$d+AmI8o+rAz%&CwKzO=Ooh* zyL{W-ozEg}Dp}IL3Fxf309>?7BiYhsNa>_iATEgem{)vv6g)et0Ipb@IWzeqahg zUk|>hG{{AK4raK?e<+Mb31OgLfEsFKNkKm5agLhlE)m?z6590I>+OXCV^zl%bj(qk|wu6*$zMw``3P@-)~jEIcqYQQ{w{;U!Kb>j3Tq&Z5CCc**2934OJ4LT*q(BtVCkiCoa-iB-$z^B`Vb(&=R6^ z$!?R5J%Wg$lPl{mXOL|M!^Q3UK#p*utf??pXlxt|i@3hGd_sNPEIt*Gc6lv~$bAfk zCKhz}%OkSK$M78(_{eq}MRfSf`{Bk)cFvJDxCHmXc6Q_hs<~|@imJ?BJ^MX|Mzs_b zcG51>D%}pr%2~#!(GIykd?#hc0tBjKb|GHEz8^48Qi#^du88F(nWNGG*fcs_ZB15Pz4 zG}Ht8rRLSMW5H?_vIXKo6RiuBb54ob@HkgI+lR>nQ5RBwR$Z507aW(~v;)+RJ885? zhj7||qOI&JWy8*Mx*Lbz7NobzS_`}QeM02rIYd#C;cq{qBKR$R=`y`rJa%5?Hmv~lBx$}40_l3xg*rZX#+;>x#8rjj zyxjMC%gA^bd{lZh6F^W*fW5~9$c%tG$6+HJKrC2fcE>I;=?PTH;9+s?VbR%f)w2P0 zf%Obuw2OEi@RY15s}^Uaic4flp3moEfDBR1 zVg3RZ?6S&g^!U+2t-axUJ6L44VNERJDL7z=Dkuk}RoBk&A%Mp)0Xzt~}fdfa5 z9Er!kb>J~D|4d-TiWT@GG$a>#<*Dk0KDtAG%Nx4$eMPNFcYH1e80Aio~2 zMqgRs6Xyp$85~@;L#;gmpcD{m^(O$^LWW<)XM}u4g=iTFD)G@?Fc2yf7iWrdJ>qnxhx(O2`Dwy= z52)*S6?V*1N{a`9vRgEeRd!{a%4L2Cxj3=q{5nH`wU`;t3f@z$sc5B8RJAE_(hGwSJ3BM$vO% zw%5oNw+BVbRB>6*Wij@}SVTw4`^0H-ckCf?A^Ib;vRE;y31BdU$P;Y~p86!`?EA}< z%r8{xH*2LHiQDZ4_n&|M`O1|m9S(=)W4%4wv1??;0Ws1vf(vPy*z|{Ki)Gm)&MCS@M zAM^TOh0W)4`Yq)LE`7uu@_R!;7iu|UajLk`93PRU+G1j2x_9rsfB*izefu({MT-{Q zfB*gPK0G{p^ytxJ$BsSu1WfZNt>TOTR#k84qTw>d8Ufk(73~VMj5Xe+K@dpfbDKZ$eF4Wim=Nh?p5OEd_z9)(~Z9Qc_Z~vkC7L zH*Va>psT8?_Uze%R^S$x0Gcp&?%ZQnXpT;xhS27a%dW;$v(-H+GfOS&;!>6*=Wfj^ z3NNZYkX^c^()GpE6lluCg9Zq71cNMs ztcZlZlo&ngB404*HhgY%IaP&XR*L#P4!>bn#;I1*ew|R(%*@Q3oSY*^j^yX(BMSW2 ztXZ@A_wS#co}QML_UWge^79ub@E;|g&u6h%h7KJHPR5NJhcxtjzW(}aAcR;_Q&Y!} zAAj-*fFFVl)-EipSlY47W3|Py9Y4aljJ2)G>rsz*eGvAksY&r#NsG=dq`uAsWQT3_cw z6jP>5na^@|?p%0}4q#-Dt;p(5Ko72@q==4LKr#*p*UdD@(d$6HL}Jye*S;*E$YI?` zCPQbv$3mW=uz)0NqzY?J66F z{T9r?X$%f(FlWvjfW*+52}dVSo_xv)Knw+DGc3A?wQjeQ0FVT8;1EO^j%p&4p9~1n zIn>gbb<6ntUIH@8kY-OKD$|F>SL^h;`LG{N#egzadj0w5pL26_mo8npZr!@&%a?E7 zy!qh4gH%2?0Y@-&L$4YC4OjRs>p4By=Z9a+iakm{JDk;6PmG4)C%X5-ExX-XRb^3F@vBRE0EUtpFcd&5Om9=a zsozNd`Uz~>ye<&%E?c&YJ({Xd22P$l5lk~NW)T?~o|KfZeECxLsQ%=slh&?ZQ?H%h zPXGJ_U?KZ@SNIgcXhj~320SJoHx~%13;oIf1if(H@Vi)|A_`M$u{Sj*vrLz-EQD(9 zH(cR^e#Zpp@6}gdY0%*Gh7B8F(a$`y;f*(5-|d>K3X1YuwQ9lOZoBOkj9_VL?k%_8 zj>EsQ+hv%@4?cKr$;uTD^wH&b=bg6*FevjMUwoUu< zI(IIyRJU!>w0ZMpx8HHoEw|lp*6F8Re#IphTyViP*Id`ESrZ1`sL@#|S(y*sbLVM7 z%$>Ku>2Y^Dr~Na}KK0mRk9z|Cx8D6QJF6fiHQwQNU3KjZ`y!$cU~)>l*Xy%8EPD?` zgxuBdzW2d1PrvZS>;I@X9!vH-|Kkc-7~v?Y7&tZrwU; z*w3Rzji3?Gv~c14pMM^Vrw80b3TEW5?&RhVE)6u|@~^w@8rs3lbEs?AEAG7W?t0_V z^v^3Xy89o$!Uvr=0l!*>_*tl%chIsl_J`DoBEQ3P^vY5#ty{Nd)20oW`L%1+jfDKn z&CMP`r(J~PMCl?saPf5Zt1bfjHvj2ugg8F z{2Qi64tU+ZdwxBBfC>Uta6;4Iil9>8ImWEORlk0HKno!!UJSrco-q-z5y>&txpP^R z6yqg`(j>s87|W3+qXAAkurQ@99nej88pL1vso}O4Fnh$7dw3TP!=07 zg6S~_YS9`csYs-aBL|Z}jvN?4cZiy<5jA2tZUS(K=|YTv%2WUeD%0z5x*cdOKRE>H z3GkCLL<9_ip|B`{-{gP|Mh|Q_MBsoo0K}9hv0%YG#toa91{wm8KnUZ5uVgZMCP`h! zzyN3;ZGrbdbn)VajF`dDK4l;*A^YPdpmmN$F`4QMdn6%n92lD5+FyKG3oI^B=it<4rxda7eZ_G z(+>=WMJb@7LBx)|IyM1n0xw2MiS+bTIz}Lj1Kt2@_Kc6gty!}Q1tN!b2Mrnk7m15d zFY01j&{{N@!W82WnN$HG;o%1W#RBEc`vj8v)1A@rD%`}XaDz?&XDBBBe1 z2iH&)IEZ=B>W3no{34&O`RjzuRp&wf3#sl_@6bs}J5x>d4jo6}!o+sn4bS_#NVTJJ z2mLbwP&G}s8tR;(`8>%9W&YEoHZ#Hsop9)+q&B##|Nb)Jd(2|BTm1sRN@#<&vdHqc z2%vU@+d(&fvHWcw$rcyN!gB1j)qHSJLkIcR+0YN<6vW&~uXM^#DbjKyJoO+4dFncx zI&oRMk>^(ras)yaDb*|k6bfRNRWSx){ypUu3YD`rpC@q<1yxoD15N|9C>fk&Q`z|B zpt_78?VfoOl9v<6flD2<@gTx&8fbpl#FW>UkD69jPbO*Ma%>TVkN-+%utW(vcl zud&vr+RjX>-C(e~yS7Mri$3h@RaXF7%c4Tb>MZEDO23=N;gPw4CUwz(h%mn-;{1F3 z;`ERZh7eieT$x_t3i;GUX2ayd(M=`IQ}k6n>#BR6vx!zzsT7@MQF(|Zwk}Y2I7c_S z!!D?ZCEzZ6^z91KE?{0<^@%pdv?Vo#PS{Xi{#65pwA^HRNzXDuhArfi#YNfTVku7F z+xj|b_t_MND9BdBkdq340Wb`f_N>EjWQqeOv2^vD7D7iAcn(lcn!)OL;@BnDx>Va4 z{NxAylTz0)JRvWMVDQl8&-g^kEOC`wyk0KfA`A1g#M$ZMO5d27-k{eX^f~CY*ku#v z=8LlnZhb-SiIpiCGCo~Kq$h}OdEx?(&m!H@ifX8Sf_ONm;t3Nr{2oIsYO;z_u6@v^ zo-93muec_pE{B?W#%8Jl;;Rh#f`O1z{qV>tk6aVxUcWg@TnYDO?};Bzy0d1cit>2DQwfe&HnxSKK=Ali>2cA*I$44 z-FM%5>n&V#QgZxfpLPEg0jTR6UeE3e?+A zRn#;CD5YjQz@o=3^NLIEdrz9T4-|+q*dIRcuArOcqCZ(&T6D)N*e-Q>HQSrfn9yr)cD zdQfyqzx^@U_^(IAb*UeIBOO&vV2)9d>I%A@cHGXK$KI?|18XWD|2Q8#Ua}@uoX3n( z#GOnh<;q87et9*aSO|?bwG?Kk?UVul`!1Jj%$PBseDVom7&K^*!)4!hU~iSR^1cV| zjf;zW?X}m?4D7cbT&j&{fKaaxX9&q5hA!`sJi#KYSGddF}6~)hm{pV_|?93@uz)!A#a+v zK1*Cy1R-xG>%vn@syU9R#jE0Gpl|daXMvaJ0~amR|J3#Sn1s7Fa7FAc*J}Hq7@03 zsR5>a5OyIph%Vls)2|*j=3kKVu?_FwPytiwH|DVD>=f;y#HHEd>LVZhAU)oqZkTu> zvr0ln$cC7)FCjk|H>RzF-Bm&y5gp~S4aMTz?3X@sOT(wQrg*O!H<=h@kOkFA;&NGT zE0BIi$Rl%#H=sHzHWi6ZR?#}pf0SIj5|KxDzD$?2>{9hA**|!qE$G_vB z@&e*qn`rKuu_)xl*3>v0#TOOJ5%U<13kZ|Wk?DmQt?xr%a{20_`(ME{=YQG9>kfLJ z{~qy_KK+5!2$}b^_?<*jZj5puFW{ASYwG0~B6T4@o>d|1ImrbjO=95LE4M@r$2G6W}#{3dOQleVhLyWcDyKVR;O zmEyE`afv(>FJ~<#jshRZ!!9}&JpH~s;BYD9Rl^VjfHjA|u#)D|($Y`@w1K^f{f=&E z3EMBH*^YaTyOwG@Gs)CElYqDx3;E;4HR@dxL#O)#9=keLy9FIVBd}>7GcWA^HIl$j z`bC2Z(Y9EeRU}TY6b($nbsE}G(Dn(I0!&Rw(C@c~#rh5<+y&PVo;E@7oy{DzKOrFjm|H9s>GuVK>WLXyUM=^>_}}fH+2ya5cf48tTz6Ohkutm3 zNt1Mj@V)9TE)QvEz!eObUfOifM+sAU@a`97bfP3ORvW{t5kN#l1WpweA3l7T1l%;8 za58D!LsC)_tUq$(2x>ueggnT>Mq!$;JVZg{AT4C`TLf^7;0wfpf>?8H`x}keBX-=O zIkaON(^G{NAC-47tB_`z%*pEyIDG-88zkB_P-Vq1e4u);&4a=9+YMZ9Fle|~Ot=iU z!|U*c)R{vzo702!AlyVO9xpP1?*Wg;&mqjbL;_(Cp}bOo`UOr#gq)$2qVmKF$Cjvs93!+U zDR<27`1i)loV_pR+v!X3tEDbiZXgt44{XmXiYloNFQ`~?D0$(5xUXg`TX8rwEU!4D zs_L-a7ggmdk}}4*CpLuP1)C}AzEPO93rjj>NEwY$R45$Ikdn+ z-)^@$95%*Kdz5_AD=*XnOM$fT(nt%9p$efY+Q3Hsu?re?sg~pQNOw=CEHM}m17(uz$zg5H zih~6nb70(sh4~EKYOUJ4cXw`Xc4}%eixdjbg60wVI+35B%f$4`kn&6w-W@(1qvuaA z6r<~M^KBpD;Rhol!zoEE%4jyR*Cpwc1jO(vD#~b$oS4{X9|$o#iOC5iB}D}Vc{-m& zSy@R!LVQk67E341V)hK178nxqqHzYpj7m%4pn4*Yk(k%wLRfsbi7~+mV^zRDNN0n; z@$vEGBN+G#>Jbk}=MX<(I)|`Pw7@C>Fa7%jP?xrC+p=ZLCRW?=@rPl`iWSS?>H76+ zH*MMggVNJeBg{9EFgMnOuzu~@)lpHAOomxO`}Xaj5vHWMwr0&LN>YWHFI+f3Ha420 zq_sFHUtCOVmo7mVN9Gje(ToF zE|0Ts|31rBEFC#|#HdjtXk_x_iIic<3a=^8sOWv!vL!UTV8J|u*R$vMbLPyNF=HBg zT4r8MVcxtsw9kNnAnapdrL8>L1kbNbbLnf!qu76z8V1#odn3I*Me47i}0OuzG_q)XQPtSwwiHN{BOYeDDK zrC&c9QZMrlQr$LB)qZ72!Vo*|KA_e#5Zds^>69i&1(+(#&?}^0ARTP{ zS)@m4uuceioh~bjKo%3=h_tEJ$F6LU3GPTk+DNiQV@;sjfnR}uaurkw1SzTS3BaWI zgCW14LqS6&)CH&G22e}HT7K0gEi>z5ruYxiKkoznJp^Z!1FS5qu#`kahky9dyR&D{ z#$H!emD%hTtTS$N+O#RSBK*f|uf4it$s+7NRv;J*u;}?|Kp#vtZW9NCWyho9Ftn$o z)}%=ju<{h>)35i&%^TD!rqtEa`eXQ0=|3-kqk+5z*GULm2UtHl?GBf<|G<7zr%mkD ztIx7!%LWYWi~lE|SYY+)mAiIt8$M#N)mri0_v*eHYT>TI`|=fw>~=?adBxm$GyDP1 z-o3j&>)1dapU^!+qY73*Y52bH*QHtNcIPmN0dLzjtrUzED-nb5>Z`8Vz3%|Q);Z^N^7s*s_oWw}VX=PJS&fpClC8FiOE0&PuAPDx3)vfK5+khf>guU~!X_3}!~{deBdyhZD)F1dJrL{x_k?HOLP)~#_uI1si& zQQ_ORZ@llm`y(QwE38(hwVb&2z6T#9omM1{$_34`UCDSzx=AY+WOGL_jT;l zs(t$o_uluHJz-(RnMv8%S_C#OHl1Q~{>W2g2g z`^b^QMvffbq)B7;qeqWKc{4N9&uZLUiOB2k+Vyhu02SW6X#+~#xN)P+n>VrKVQqQa zZMPVHqi>&{XEr{I#StbOa}Tk`)oR|NMGIC*7`n!d&)T$U(=*RMhluy?+08=K?zCYp z@UHjVd6(PkViir9p+kqT-oECVtFV5ol3Z?Qetve_c5N#vN}qh}@eUn2+oMe1^q+CUz(a+%>i)X=hib_*!8I{S-E`fYQ{~sq(WGTo zFY`CjsoKHU;F*rY^Pc0RczIkQP8tr=io9Se%99Y`P_u_I9qDz z_DSFy(K+3Y^0MZcIMTH(LzF~cG4zbvd~8acUaYASfEjKwgKGUzQ=S$mpwE%$91`S^ zPo~a6Q`wVA<2s>9AFU;Feq94X>O8)bZuhJ&zR2CW)9&{qABmREsz7Ca$;!D0dcC*i z{lBbx8Q8LTk)x z;llZdfli~MB58zv`}gll#WibIv3v;+Kge|G=r@=klt~6>PaG$m6&pYPd)h01-~0A^ zi{AObF@99#ib-wZ(e`r#_2MAm&dP8F{+D7Czv%R zz<^-H(xr`O~ap;=m>U)aZ* zj`qL&@^hAKaGciY9aSS@E-cKaDavTtbMHkAM-Oc=+w*?;rRSHK5W z!gO*z`Q)R>$Z+!c$*kUb>kT*syU_{2h-|({R(hj!=%(eB^BS3e)YAzIMrW{r)2 z5yRVWzlk4400^C3 z_H;vMfYI=|yg{#e^RZeqxq~183&RqH<-1#5t5x3wVLimih&I*9^nk>+8eT))->S@? zZdNDQ!y2XpM;J7GXOys;sWJ_%9D@c8ShQ#X2x8Fi9ge*A+N+EkJOWz=#tb2vB8N8N zI0V*oM+8V(v~ZBg18q?M(MKQ9K2U{ms0%s3oYpWD;1Pf$Dy#>>MiO9x2#N(WK!&Xd z2K*v9dZBmrAcKlv1xwhY$ERo;t)a3E5)Ghz8sR6!Xn|oc7tqta`zJ^Xd6R!i0lNNCNO8SoS)B#)Vj48P0`^<{mh3aR0%5>o%+%Fz6?LP`M^%0xOw6 zBLk-}t5y;m#XvC=fCeMz3yX>RgKIPtdCZ?bm(kCfHG`kb9Ml6e_^ZW$HZUq;P0TCW z0E6HZ9l^5N_VF1UWzHlBa}fqDAPLGdf4YF(h?ZVJ18t%`@b`xwzQf{i2$#U%wZDbk zadENe5aYqPlLL{1&oBd13$?H+v`@TCJ4}tC(i+9|tjW;{O$?8gPbmOO=sqY1k4Wh7 zfHZJp57joL(%@gk5;YeHDGZUOSL*8W{L~F<2Ei=G&CD^%6hq8R44A_v(qIaX;|UQw zTmVXV2o5o54xu{inI7tlg++KU6eLm@j_CI35tt)IaEDy!7lzUZb#a>@m+k;5?NFV3 z#DKz~H2lQ!08d7R@HhmV0b+7;B4rpA6Jg@I7tI8SsnHkyfS7^-fA`%t7E3w6qSMbm z?=g7rKr|1PV!#X%i$sI!4PfVrf^LvS)|*w65Y;bN?r58Oeg zIK<=u2&g27qo_7e;t+@ciHr{;NSk`-w2!mGD`G}^_wI>Y;Xc!5(3D4=>4o?Ka{;Dc z6AT5#j9xb?pE)4y@ z!2RD!@C*Cn@nB(UH}zhU-$zFsA@sYsuMHm&J$v(0X7vmF7f=oN8SC-+ry^DU=y@Bc z-qHF5?{xd-_Uq;Akw!gi{3p2&NvB`B++OvH#s4}1=nYn~uXpIAWZv`3A9X6r-0Byo zN5^yjcW-bH-%BvU`sP=;UuV-FoC^di7O&3|O{-t%;SU(eVShuqXjJkw+zR{=QCMo`_}Ymw5y!p-Ii5tV3o9p7~Q&97cy=%J7w zRt8v~%c^RN`I)nt0>^I*Ro%+VKoFB#y(ZD29JzwYCxzrcNUmp6ZW(zj%bPl!^{KK11tJ#t%QxVS+&)IIY`THc_HjFB1H z((O}E!qhmne;M~_fuNIMn$_P)9tp1P#-uu%`EV?uY|!IWFTfQd_TqDSnvbSkEiaXZ`=n#;`35?554WAh6UCeD{?Iw#wL>H%ip;+CG2PWQ{c z<2`;?!0oaGU2#vpFGb62(ZRQ9je6V_CaBNa(Qyq=PUJoVu-R;^8c29NEJu{O;#ko` zJ!B$%AP*YrE+be0=*LlOS%2KKs3slT)EEFEnrX4*iI(colqIVSwGvT}aY;u2{Z+g_ zx|I$dm1aJU;!@A6wk{T@dDL@7opK(2U%FlD2{#nFrfqX0Admqse6~8|-XkSn49x2K zw2VlRc8?@jpn#sr@f&kyw(gA7jJH0|7ai^D8E(~Mx@aN`i|fj_W?1GX1BQCO)fqAj zTZHH$?T(<=Z+M*YlL3XI4M1V2(c*S#cbnEsy=}LaCns{B0aR2}Bqb%i_~MJtKmR;| zQTOiMKk3ok>af%O*zsf5tzQ+wM+Q9cM`EAMqolR}~K)GmKBCd3fnkEm$$($m2 zBq#L!Xq!0OKXhUV?R$W&c}_b(2ul!a*g|d=l&VLI(=mE#f%%Qo0@2Y}w%$g0Mnqwg zpK2E}Ip~v>(r*O3GAz@#GeYi;3aCesZjp)E4rSC;RIHw8qK10Kt-^b`$3@iO2}ma$ zl~kmPvqL_++?y0}?E^We%N4Jeo8Oa-dj2EnROenGvrjfgpx)kE^XuqFFJOPpoH_gU z?R)#}w-XZ+*RNlH>E)MBpE+&WilssIrkOdco_qA@(XCszk3ar+;J}|Ae&m5+!w3Be z_mLQZ4G6&|(x);GcAGpDi`}=1Mow{-HYrS);R5r>ZcnL~5_kf3?C_Cz*>6h3HTM*W zbKIgqBoK4B18(Qx%N{-=F7d%|Wy!F+N}%-S_6Hrns-)QR?cjWIDb3nNt3q*Y#)I#x zC$rRTcuJA=rr7Fo$TF)ND5;l>`)zKUT(dn&y>nWWi)QQYcv?EF44%fd$kgCH(&u(> zYJ0cuyP+~I#oA{=q_{3$v`rLuc|;Q@CTsgX^9iyh@ejTp^myq|J&LXCtL^06XM?%0 z{->XQijR-S_>`8G_U!!weE0f1-~I6I?%li54|L-5&p&_TjW;kvD8b+%KmH2$)dQl- zHbjc6^1d3Zpz8CczS*NfoMo6s+$&n5=CBD(&sLAsHA}et6^D5u8dGPPw5US8Q$a}u zD-57yREFDQ1h?(=VYpECP{@l6yoP$r2(##N2YXG*6PF@d%G0Jp+#cGrPde=u6)7kc z(OghFuYdP#Po?5fBH}={dc@Ra-z~096b%#ZeL`OMd_df>^`bjvYKF&WSL{=2ralLY zmy!u-aiX0R&8ox&CE^M>VRodrxlFXL6piGgpH_%=X`l5}qf)QwP~Fx@Pi-gXKJtO% zd-m*cI2=zt`6P_a%*urI_uhYx$LFrLRXzIXqqAnsBEP7p=)ngcWXZO0(cCFh$NviV z6)d;y_lPs$xXdcrcG-Py(FktBpcJrNS{nJ#i%5c>z&{&9>GY~+o&83}v+o`}=kAh3WI9dN0a``$rX+^x~;u4+mm3Fp1 zi1_Vx^`>$405|SVsgJr`QDHCWJJvdFeu}uPsP*0c@$==fZC=qaPFyATMg~20_wYHg z+6MP^uzA#X*XKTb*Bfb|4Sz`^39r}d^LvS~O?@R>=gUGgq?q(n3-7iYq(py=ovK0`elM{gcau{byQ^2Zt1 zJ&tV9Xb5B#ii^C4RVF5vgZ&+`g)(T7p^O(kMm*Kxv|`aYqwC{xU37*x7w1`}EPi{d zXtxJ37i7Ubq-A*VT9Ap!(-L!gwE)@r5N z>J0_PoiFL<%6;OjlE>fj`JFN~yG%4FdA2){bfXGsMeAGKAP3EmWwz`uzHo`wrohfG zIQOsWlN)xth?i(mzca?1H-D8YoYnbi>8fzql!Z{Jp1VT!8dr43b9T|dCC-!i1##lC zLYR0cCWLdr;HYY9gKNZtDngwxuR?T?DVe^2OuPKqY;jT0{j994xpU{vn>TOQu3dOt0!ktx_WEi}R#pZYxnjk#n3$OA>guISmo8hj z4DJ^d73|otEjBj#SGZ4K%7{DddFCVi>Qe~5J z5?tb}Dsg6xxKNItDn*AZ(J{Z{-N_gIB^Z4~7MGQZCRwN5h1IvIMH%a1^>PhaX~c<3 zouXlm5W#_?4>Y`{RCEnw=a?^iR$!-LgOfZIN$o^(5henyYBM4wzt1gZV#9J zr{GkI#MQDiH(s1eQ~q6%(vOmv7X0W|8F0(>d$UEO1kql7EW+@IiJOW<%S>@&_Tz6$ zPgRDvI$qow4EW$a{noWSh95YWB_t%o#l>OhL3Bz=ir??wuwi{_YBEv${{4Hasw^cX zMaY001b}i-GCMna`}XY=;3zV1I_U_4b9cDsdIgYGr!^tXY*<6$sVKe5Bv&lLKbZpxm%ky43@}x#Ao- zcj=Y~|5hwIl!zuNcRi~FU)hu~ENizGk#Fc1gkvPwC{ohC=b$bZOn2SK>06qfhzt5k3)1$tx zhKIb4{o?A7&+QmH$t6zntJSrNwNOnralr>a20Y+HdtFoPCShCjbE6n>47$tZ!v5f9 z2`eirE7Q}{(F0s7nQ3WhY(eCNz+fk5x?h@F^j2MzOffCEB4PSRt=ysIZxkgqe|*HgsH_ zNGPZ@BS}_SHtF_NBIpu#>C4|`i}Q8F2^cFxi-LZmLk@>Jdxp8DA5={7P{p4zI=L7& zZ8#{i^DD%qa`x_I(M7qLhIN$lYBM~(pe%W*2fo26n!&+h^R-y%0Qr%(Wm29z6z^NGrbKj9 zzPiYQxu@~ap13e^UFG?Y<*QevsBd?rh;u#HK1&OLF(6u{-~58K+5CpOfsg?>VLXn~ z<|E|I6fJg%bLD~+@Y+}H@Gf5q?-Im~6`k&`7NSISR@_&?iQ;}ppQcUD!(F+)8Y(Si z@#0FB@Ok1Ii)dQkAORdnG)hG=1+rsDK8!r8QpGGbJiag--;zr4I0_ycXX+ikU4 z0Wy2A%uj#_(t){o?ZvNxO%Qg9w0_@%QHMa)QPwLm4T?#o)+-#jr>_9f>0r&PUUyQL z`Gg3>7is4{Y!}Vt)a5cQ8yf%p3_oFLjgx0Y7+Ly8s;c+cWN|^FxW@U&>t!(dU?h$QwURl->cob_TmJD+R?&h^GoSj9 zzz;Z^3<0>fD+O>;cDuc#qy$rrHt1Js;0z4IU{9QbNaEw;j~qF|(Ta)+%ss)9b_}FX z{<4{qa9?ly(ib~Q%K@DerH)Qg=TYjg-@uS~0x{y^YSApJ4@Ty=u+Fkp0!Yhf2}b$}-30HuO=HsXEt4zZ}HDEJQcK{sMJbm$Ob!LM=%?8D{g=xF=_YN6k%K?nr*5f2U- z;G-Fb46j)WNhnH0{$b!;*=@R|19`=VEu$4q5!KE#rKE;A4&GHxoO@0;G z5Cy1{)+#z8K)|^Lh&a6gwRfu%C(6>1S*1>L5KXAA)q2K!#Se3-2_j5V)&`EUfW%4G zOj6CqFx-3h?j`1#HfgA7zz1f3RpW7U5?Z%kRiKx9!z!IhfwBZOCarrRn0l!NH zEpQA0`1~$n7%!2vPhFj3zSP^w| zJ$R&5JSxuBOFSRM9C_)zMyz`9=6F;Zp(;8qzit6dYO+TY<}7LmuZvLNJAor{{e}%2 zunu|kqw2{u3d|4m_~7NF(rXNdVrre$qQy`yE!RglvRxGa;R^~ zskcut=o;3WTmABybP=}^oU?ZOzN~^N+xC7vd&y55_w-t}F|4rk$N6h5K3U@O{V;3! zyHl5bICaUEJbR*FemG|S&ujMYs_;w;PoK2s@W{2hd(2q%k6|<47&`TX;Zw^3>fMw- z%v`b{F+Z%z^TFtOJ!Y(1l~fX2W_2pdfyC9R|9T_&;{-g2;&<%Wv3m7tEDz|$tYc~j zevrqC6)WKHhaY~(!fN2afd>yBBop{!?uQH+!XB3}cI;SWGkWys-_3nZSQTY))L95@ zZ;i43RdNMG17|LZNXwbJZd=b8%SLPokMadKB+-2=0S!Fb?DaJBY^jV*T|BmZdK~fC4%PD@2fkxkm|* z3c(L*L9O-c*K_EfHO zh6BiY45P~H@G{3x0NY}BJJmaxfvNNX1q%cTlYGkP zD-T1z|9Tl45_WNNXPu6B9Fh_;3tMpFVx?v{-y}g2lo7`SWMb zo{in_*RLPI@87>a0{CaSZ!*;6sZxPDbX=L^siuHgQH4RK?34*M+o@ZR9(j;)93l*9q( zpVa;5x&Qwy!F_^70vN)Wyu7?GzW9OwCN?$}n~olk&x#kDgKQ!rBZ>N9I>2AFXb~o8 z*REaR;o)C?`Q?%&OYj-LgZuP~4bXR~<9L1M6PlVxlj%A7;Ra)joKCy0 zOIo+Uo&xMCpqtX2veyO3fpov{!EDC?*qI(kw_2^F*<+5_aJE=^JOMRfHzo-9qZUA3 zs|cE*e=?xo!F@fw9Xqy_mzN$muy59^8Jjk3Sh8dhIXO95Bw!8cu&@JLw{BjvXaS?t zk3qfn-a9}4Jb3Zqg=J+Wv{TCn_PciN=-02$nl-E9;}1tiAJR=NSTK*iC`LQ%nLiwy zG-(2v3m4Acw{H*q4jnpV=FI6F&C1Hqe5CQ>;zDxt<7x*F?q|Ph)e0I64?jp#lxNIi z$Bv#qe{MxZ*`PrK^wW^*)~y*eY6QI?7)DZ3QnY8!E_$ImT24txN=;3sdSqlcGGP1+ z8|;7k?YFRU#E20DIm9psobVsiWA4BC<{JWkFiydo-StRg!D2yr)d)btq1t@G9{DhcJ+mUgJ~uZTMnpt}F+;1hDlRS-cIYQ> zXi9UR2ANxWdMX8Ihn7juazX;DNA;ixve60Jtg5n51)^Wl6t>%~9HmnT-qEt&(|f7; zU8cQzcPAtrDXS>O6|)ZuKbVn`R#1?KkfC>lD zpf2~Rh+4pc6)ToynxD8zN=kr7M~=iHgTli6)vH$mbBzyj7}fUeTj6q2a^m6m*zG&F z#V5p-SClaxY9VQ=!&Vxnd|FzHengaE&^U16Xl!gWBcufmkq`Wl)6wY%0Pn0>v)+2^ zE!av_^XQ|G!cfwyR;`*aVFIQGomjVS9p-4>ym=`pDQE+37NgX?dv}ZyYXuwzC4UF^ z>(Q1io6tw}n#ttn=c4ax*RIw&4$`&qE?c$)C14H|Lv!I86J`!b0x0Q3a&jVaqBXdW zL4z=29D?a^Tnmg^Q>RXbr$7Ag9X1X7Gho1v7^n#o#=#UU42@4TKNLtw_@0<}1d{@^ z_wC=iY{k-VzWaLq!g;A_$qbCXXm*?VCPqDg(W6JA6O>1aNMii>vDhex(Z<9?F$;8& zjt~ijnYf>b*}R?wc)=i69yo*j?CflG5KjR1(Et+IeIxx_5d#!s(izJ7+>g(&b0rE%WF?SGI%701w>S_(LG%BIYLk;Z1j$3hAB@~FTSxZPqN~tsue=-mdQ6k5 z5bMHnRnUKZDC*lYAcLK49wYtIGMt%Za~rLy426RPx9&aV!~;E1r_TI!n4uYhCSPph zf6C$f%T-6!ZfBJ(Q=$JuXa?WVqNnmGnBIF@nV6{dPYluOZ&OzxgA3#(rgg z^hBQiIZ-yG;(Am~^0GnIkm~xYp-TSqRCi^H!ACwfSbUMckT`v!nCOw{@`YW!*o-WR(M-VB~w0IZD|nCSK$ zKqQ|RSS!Es<3l_!3~S|0=klxebQ({z&aS!J#&8oF;z{R-D_Jq!jd#*DNvVtAzfO}#bra zF69g4sX2zKkHX3IcP%@llI3c%`EuC8_lV@MChn@xtq@qvOU0YC6y=Nl^xJ)Um0Bzg zMZF|qgoe{U-d%^>j{oFO8vrV}XmeGJ08#p4`KegfXMX5gg`ry@g37vNhHE#`A5UT3 z7tDFsr3u-kU)C;uDW4dZmF1b1{294K9AZ@DGk*u^dO3U3|oZtXAZ;k@rUGtK@ z=iTIY00%ofAjW^)>kDuL4aQR^GgN@&xlS{1BVPFr!1i*G#{azi0b~L%^gT9atJg56 z`JWI>Du}bb?MT zm$iO*js)-<1D$|vrrkoP_{bG(`PthL;?kCqp2q3jnhuA<&4q_=Dns^Kfp5o}eOK3u zw*0Uhj)s8_x6RbR^3Mk)xSZW1a%95exr4&+@G|g(FfE!UhsDmivg5-nhwi7`jt!)= zrM**UC+sS9{@m#~U4*y>{Nu<)vtQrkR}9T1v?ti;HO<7hbe5 zUHiM^4y`+(7rft?4ZEGMHa9XdPGDhS1wXk+Soy&l**y-EqoxGEs@UH830?|V*u6nme#}9X+QqBq6)mz&2@8#!|ANN%*@PGKd}vv z%GC7kBfw@leqraX(Kw49rk1QWnfaadQOf%5(XQRS3ry0^L(O2Nx^fBI*6~ogiu&<< zd9Kj>Z27s>LO$#LVx@<>g08l;V$DDOEp!LyU^{$+wP}q5m00N_8oure0yKoA1l{fL ze0I|(dP+*iPh8~v$V_@1HVY$8tgK<(ucxw;zN?$4mvodL($scp-AG~RjG*3%I~hiazth3z%J23m*H4 zrFV+WQ1;DiSQ5ftmqE;p!>JtKGrOg{#pj7Ehqk>(?@P;^^>Y16m#GUrpMmfp%bbUo z(mZXMNQd?ZtcT=bSX=IdPln4k@F{lu@72S;=YC<2c8nz@Mq3D0J{vV%1=@{=MBZ+9 z7V`gUbietoo&#=Vzo(5B$u8br{!>XB`k17x(wPR_0`Md#eXV=WgD!DhWV* za#*ZD^j{~k9C762ZdCR&_Omx83Sn1eyKMgg4Vzx<)*pAbTdUEk_qjWaY1wec_i8lx zdzily{6_4vTGUDNbjy_Hb1VG>JO8`F!Qyqpl9LboYOO{*OPXCG1w-riBpyC`-Y+Em zpT=oTP01FM)1B{;vOAwH%w43K{JTT=wO^la4#3Bq3EU~qJjW+n7`5By_8u(F%=jPo(P<#i*?VG8dH~wS zZ+ZMI?6~tdzE2#3r)YKsVE4Xs-4rYu|F>Y1EkeT~0G%e;*rHw~0;PZ#zpRREX= zF_ppa@bTyFo(b?q2TxBczS-$0rgPOO7Y$kFu8=%l@7(MSvyH^yFTH{1Qs?;)U^3J; z1yG;U_&ozuP3w*JX7HY?+iySC`z_yp*BvSL`xyZMR{$({9TgvxcfAz789hwoO~JPt zzp>MP`HJt*_TZi-+oeaqq#DiQ3Yc?QV5TMXg5{~@QxX%&tWjmH`rXl$IPKTdMXPKh zkQy7<;Naj=ne=65!srl)r<_lZ0N6M(!83Xw`Ylza2#ezvKz;>0_P<2YsiMhCJ3C!J zUYqX@>yuT-_XY+AIBgbM)^QM=G!+#7CDW?jH-?s%(*h5RNSTq(QV6H>No;Ofm1#Db zAQwH=VRS2zg!(KR=HeSjQW;e#JCCP^Zor=i<1n&z{k}k5vVi(uO^OMYA zPv?Fkhu@2E+DFi$bgD--6?Vcczo8A+lPZ-mLS*toLe1Ws@3{O`0`&21@ag;yNUjfO0S)?;#v4 zT0EdwF+3zutJ7=(s03ALFzP2@Jq>PWhd}jt+>MUn zfCO^!1IF819%m{GmLyj;%wl3u{>;L^!-lEDBKZ1 zhXMpC5h#{qK&CqCM|ylVZtpE(0;CZFozMb=2%?+0COPa@tNj5bYWYkdBzuh@ymWS3 zh9x^A&sdw}Q- z7Yy303iYW9`=XvR zaFLR6MCJ90jcT-vj20E)F?7jdHLva}e*NZ-?Y1jullHCAw!mV<3QJ^P2opCyB=ckh z#42f8Q4XtXhJn0P9wG<^m%^Jz+*S(aJ^)kg2+)&2$(r6*EH{*yTWcu+qSOoLWhJ$m zmUjo?;0t}257y@sHrv*R($K(#-)qSBA57 zLcYOmj0V8+iWef<9vyZm6lB4_EJ7U~2P-;D%Bb%s1SVcg_6W`Te&H}p?kp7G3+_T7 z9@&J<=C^oTHhJWR&*a^&xpnD#cv9A~8Lxc9b}BVehGf4+X2;D&t~^9Jo+y$LPxo|@ zWZYrq73r!8MP6iPK>OFVVu^miPIdM_DTcY#6h#Z+Fd9677h%?fR+1?BLVJ&ZRepudDnE78 zc?^$Um9`BrHh&c<-l#L{YE(5NXC{0-(ERu-ksJKxh_3OAd4iJNOoN6Y+a%uz{dWLT z6`kn$MhCS8A>k29gYjyf|0cM?jv6f#eL3VnIyKw2Wp&$MrUFVBWF>M_I3)ztq|{WA zrDM3zSPNkuNUch&K0Uwl{y*LCc5RC&$`km^s5}K8NN)%XQ5b=_F4^T{p|G+nVU2q|Bp1iw) z_={B1edl%#?x3!quXpWqH3y3RP2i*EoL^R=wDx`Y&E@m6-W9EP(MAnIpwXrI87 z_W`6{Y!IodWw;o7G@&feUZ9+#G6M!2Bzc*s)HS52Q z4UfqNoB@y-f#eo2lIc)&{ZnlGKl`kHWWz4G_fZ&w)9ei95`M!TxOu&$*;B z4q6l?7xqs{gCmPIFY%3FeyqgX#NNxx>@?47YCm05dlCN;g9zc_z+cc}OwaBFER&{I z_n#Q~{tS|jd-2kLX#^Td#0Ej$E|^@8MA!JgmJ52fDlSFGqogKA6Lj?X{D89%4oBx^l>#RJ z#ATZFAS04nV{FVoLA)WQKtA#UoPX+Zk^FqcJQ>A`qrRcx`w=CMk~-B=N@2qJymdhk z6D69Z^B3&vQCQPCfDhy~=IqbKa=XRGX?CY=GzbcKn_L8h4`>7)JW760+cgH?E{-wW zv-vs;;o0cSsN~kH`35Re0>MOx`yUp(AIk9e#zG))>}FG58eX||;D>BKkw{r&*vQ4e zpnpWtg1~P_=aOpf2X8EWhRW@a`P^g^^z$2W;LuIwMO>@85R)lqh2m6v^EFE}!ii4e ze=)O04&$=5U>F2fJI6pD7a%qY9fy1bwiGFCyL`1$7FaQbPJj@~Jp(IuvN^ zUqY4H{V*cC07B1Lt-ayKJa=JPG@z5#y0BwH=ymx_+#FJ#au9*j#TX$X)P>(Oeee4X zsPB_Akd`G)X(GUc7r+z|a#L5>`4%7tKLDm&z#i>Iw>|c6BM2u~F{!4hVA!4js6W4` z>QauI|A8xkJD-S3YSzJuTdc}~lYsLqL%h#z;(RpY+s47LQ%PCU z{#ij2kH6Cf!Tx5Vfhu-PS_BD1ykMt@4-dG3P?P-7cJu|ZUdhAZvv^8i+xJ@Ic-FJL zb%P5+0kJyg#xc3@c5~$lN>NRlXAm#fT{R+SKKzh#?btd0%$sWNlK4SHCY0>lLM8QA z&6?gRoSer+89@DasO~K9Nw9Oo>l`861H5Ji3ZAz7(;!g(LxS=_7(vJN;!5;N!kOv@ zuZQ3t?-LBDp6N zxQL!eg;<9|B=**hE$t})#BELJn|zA#Mw}D9aB`Sr_YnEvfr^F4Mo2HH*lye}yp$*N zFsv&3Wq%Lu`;dT{Gy_or^(Fe{P$-E1QEHv{?nUWOzX&Bbz%FJeHc!2#HuCI1zMI#6 zee0~BxiO`UyBbo_}$&z;>wyAhX1 zKGVl}dA7gYs>PPQ^<&tNlrug`j@}1bNLEO)OCl~3!@Vw$5BW)B1PUX*bg{@Qmi)PN z$WMwi6-njXWmuWCb;cR^I2{@$gsO@D~CeN5Eja zfMB=P>@UIC&m>zGSzi*Ca2U)t4Bni}G6yKi$SlTFQBljV2zWXHVum~V;_)E4o7lQ~ zsF-{ma9!C)GyLHk72gk$SMbx52c=%jTily-B|XWL)L}sWMa9u_m1;caZ)ll zm6UPJP=xuU6@|n=$v}QR zYwy%WXQa*f2FNiXwCO8I&zNjVohaiO33MO2L9Zjl>35kdR}0V@TkTg;zjD^jz@)>g zj`GKTh8%0|2}0&rt2Tf~9lo>z{?DmQPSb@lRKO*i%j4EicGos;SlFJ#ovYB05gurH z+Qhu?#I@+5#fbDo-<5qx|KNKX<#!~J^Oip`l_p$!pUF)2y{%dR*8G={{Ky2~sKjqD zhY`ff^7EQh=^y4-kI|UlOCqN{3-!yb)XAn4Ff<9!4`^6UoK7rW zYEL}u4wu(Se<0#2)T*Z@tNU|prc%|*rmVxdK)yK-3?{j zAi8GME#I8IRMq^M{kv3MRB7O=eYvc_AN%#}sZtu>4@wB^4%w5BDbG{Bis&^4-S6N2 zf=xYAj%!e}-+`Dscu*WuKpLpx^4--z)V#={CFQO7+ipvDqB^Gi!>P}M32JabFDx~w z%W&DG_M$D_Jc2v8K%T1(f7YKgk1y7}&M-FdG`iVY<8M*!>fxawh0<-XsJBm1OrEvA zwCr#tYwCoKI>pn9MO0FXkoXPixXl!#7HUtSkiP^TF#nWs93g(eU>^|z4PJwu0#4!$ zt+sD24m{B^KhlSkx^4~hp_CBsh##{HquR4F8CUl-xoZAsBlM`Y6FQ%LcGf5+M>Yb> z!q-oUA~YvF_Fvva4=I^bDa7|FB?ojfZ~D3cO7pedontf^NeHbUNNv_O*~h61m-ZRi zCl9L^pl+ZVFT|yhk8Qs0iQS83j!lNQ&a9GgHPH(bCM5-4wp7*3GnoyDA!*IrDi00c2 z+TqQ6eRFs6O>U)7(8HtRNsgpPoYf|urpi2uaA|PxQ?NKBa}C2!PM1$t%ThbZ_k#Y# zM$AE|2J1G5ns(04C+v@T2N6>fPgw1)f!%X0-PF3wZ&u;T3vQqH+KLWpChhbR<~uhi zjy0f^vtB|G^P@<$NMhz0UYYl_juF3)>DE?#bLRU`mbNODrr1K?{He5-nM z5EC@15G=uCTdM31*t*7t8-Sw2zpcOqs|b?$2KPZ)t0}%yj@)CeoVRSVgE2WK-oZD^ zEvgq!&qRZjHW*GnU*pZzEb%@0g9#0r08KLmIg6A~!C|K8()vVN-3_dt+%%HqrUdjg24E+FZ_36ZUGtFH$YYYa`(aO9N*^~N2 zKps_L-Yn{AOk(s+>|7pS-vev)0o8l1iMWEciM{``lVdMyo z%S>i$wdTnpBC2cG70j2ANoKZ8t0@+HX`IvBTscCG*z^{~`Q%vnVQ_m=RpPYN6K|Lh z4oa)m5|euU&H7g>o3I|r*7m8HlX^jG^iZI41Xqg|%$cD9x-_qOoJzA|{*E&X;cz7XSH0&E*lPG7_=SRn^Ab{!stP8Ha0iYDU zmr=~!TFT1x?iV^f{pqZxk+PB63Rqa!o$pU+z~q^koOtZa3zP-0qQPS`As{1LN&$UD z5XH)zPZP2cK_grQ+)e1T~^Xyxn7pt=CWY?Ye%LmHKUOI;pEl+^y z0ZJm2K{7@9jlfsNx(g1y6(VGn7VGx0>&P)V@0FLu=!(bkFhi5z$B#CyVf)=6tb6Rs zc)d=m#P`#+hK9KavR}?=q~yq@kv8Ck@)~JjuxXQ)%%YnCJps$1>N)d_@Z-gQQE$0R zx@0Vl#&9d??EU#g^^Q@oH6t~|3t1CdP?}`&omzzE;p$${ z)?2;3*K}2;+U1dQ=v2`TLSsr4yHiP-`j}Xt3a`nW1dOF|ZAyQMyjQ5|^Rf1Y!i%2u zb~Xr%RkIRV&JbR&m}{v`B@qvVXR&F2+y2SysTG@zRnm>%+eN_2tge?qY471DDEEj5 ziC<5vZY}Iao9N8DW0ws}eh>#t{T@*{5x{x}2U)cRE}#xTkHn@YgGM}FQU%XilR z{zu(f2$mxXm{(;Gzf<0pMUeN?2NH>1P4jBCt1F6;YZ^-}-8A=S>E9cE=Nr(cB~ik8 zc`(yQ<--0O4sp59cWTF$pCxn_z3D4C<9W&*IhU$2>W`t9V&L&H1|xqV z>~Yn%X-%~V3))?(w!6BCu_pz+5jd4h!xhM8wc-73lLc{K*g|rACWUPVE(;X(7Ne{d?#*0fuCF7v#np>X)O8dCds&P= z?pUh-Wna+j$ziP4l7%s&;WgW&7PX-ej{iGhCM~WDWd#@1KFse4`&k(Wn(b?R^?^7m zqi*q3&C~}xgNp7(Z@;Qztw*;!BR5LWT#t!-ePxS~Zad@ssk=ZFS9qHLjiG?sj z`I&i6EwkyXOYT?YA@H>VIXDGL`~!+QT*RJUhgR? zL2DW4BK@yJXl5A|)@kytn0U)-VKl=naCfoVZUS7j4%Qb}c1239(wQ|L5c8l2G7x!m-5v{!Zdc+ zx*2VkS*NM2qQZJ4o>c4|2&(1?`10(00%dnYv%I$7?bQq$1zl-OfND{IED>=?Q5xTg@NWAa%*@GrPi_#?E$uG0@1J;45>f!wizsAR87*cNm@68A4 zedY4E{g$${7if&F>PK+wEyZU8n-Tf}#Db;nXmo54`**icE0EVds}w5*24yCNr7gzL z&O+_ZV+N0lq#Cx;ExMCgY>}0Et!Irzd{$8jg9Yv<)AaI?PXGiyCl0-Z?YsY&1LWRn ztxUtQ1~e_+s^6cwp>{VuPvH>q$Eh3P=5#kTNvG&gE%)^vsu*aVf-wEdRP<@#%a9jS zQ_JVMC^1jHCk(&`<8R74@C=9QGLU3Z$?{~JLf?JT_3Arzv-)(ey!-flGZ-p+^ECoq z^LuzO7@(IUsi_7gLm;>o4h<6$J6}%b&m;8_+c5YY?VYV{3Mh{WTLaD?V0X!ejpvROmS<<`c^!dc`)V zY;LX7h1g^a76G@gJ8I7fR6?%rJ2Qx^^id>}bk7)B~#U`QQKcn>yWh&jbLdmi>*CFd5jL|F<<$aTCZxEoECa^^N!Av%IosV6uDdGuLqw{I)yp0FoKi z)+~Gqa`%;wz1xH`)8~%8p;)Yak=9`mBSt8Co#XMa;f@AjqQ=K)5I-49bN7db?tr-T zF4!CIhneyZA#NoT7uz0EkKmHXaZ^x3tzcKpi?@7ll}cVZG5Dy+Mxws=#@f!tu_3E0d2Ngtol;-)k)|cV;l%Nyt-6o1-~Pg!RB+Fho0u}v9w0b= z(gm<+jX}Ud>P-pd(_qlJw3*4tq_=WWtg1z&4(R0PLCPJxbuD-;O~1y8Q``3A067yz z`YdFKA6Otl7ATi0zU9MtB_-|mIR?^&($Q87N0TWM=H|Wn(u^(2*QeN?g`zw*(V(gg z_WmV8eETR*%LCk1?!`KuE&OCmVlH)58HLRr&lIU62L?T|w7KndF!Ow4wDkAFuW^~g z&-Y$IYaSuZJr^@4Ph+A#=B#O7s;-2cs`*f4!%vWZ>f`?dq|$ow38co7ay5Oaww1@n zIOqG_bc-hlwI*6NW^XAhjo0wX#jt=yZj)C_i;Ce)`3LPNKieLGwEx<|fYRr{xTq*u zDJhV9Xe0s{;C64UqopNf;pXNB1Q=ppllc{TF^T2Obpm# zH@DJ_6#!BlvpN7#(B1tTQNX`&|GF134S+9*k4_Z8KT~Rs^ufA@OlZ#ZOM^kO zhC%$69)9y#Kw`aJT`%+X_Nbw^g5fpYGi6urz5ox#-ACjQ<7L5sh%;l;5ZeK{3W!K)n6KF_o2k&0#$&vJkWJ z>ikYD5HpirwrzgwvSsPimqpcbak%7cuuAA%ez{YO6MZ+piOLtKDtw1U7lzh)rduo| zPYQ|DofwQq`b5!-Nq5q6jYTCS6pTe^TW4~Xp)bGB`#30nV1#4xP zrMaqU0c-p>%J1}eM|>A`cu;7b-pWyDlC)Lyj`PeuU5~~{Lo&yFr}AyA)*dersl}$R zg3B$Yq|tIm$4xPLiLtb5m8yoBkYD#l&7#4l_LeQCkjbA_%!+wEc^Ee306HhH3@ebc zbhkFER1%)ow^-1Rxuce>(vSP(6PfDsv;MynzRgielKv#v_`v7-cr#4A2cZ-sokYc` z-4GmpF!_D!e5rN|fZ7~Q=f%B9Dsl|~-L&G#qE&D+NkD;<{bpwy&{zn>CIQP4)y*z2 zKwkI5li(c<(TQmGRaO~vc>zU>FE1~ssHha-RaWi*9HH-g&N8sbRa(x?SSqCT>RmHPx#@?2T~Lv-AuwZFYU-CAmwhr$ z?kUIVUo%+^g?bVMGT3SA5#z}EZ&edzj}u#&Z)q(z8Lny6O!4!YBMmCtrl|0jWNu&= z_aaVyjw1}^0(e;Yk_bIKpe{|k2NPy9ouDKXs<+7Bd%!Q`fgX##<5QAxQr(kr!z(P! zG{hWSNBk-Y8J-;}R>kU~L3L;EVuo>8s-d4=_oEn^ZQ?eQc3Ozg>xH6`t$&U$h|PqZ zX3mT*Dw&2rpeehHmbql|^NfN-g$R_;zP6!-D1K+Q5+ubz&*U*s0ogR*Q3j~o>DL1T zVr+fi&6Pse*Y(!H;DV6qSn?qkU=2~Ru!agVzOjChWSQ*Gu&n_|iwC>_A3O?W4UN#; z8O|x;R-aS5jUJhYLzif|`z+pzO&ckvExs$uT;EjETEm)+6o&SIbhud#13gqON173t z5yk9$g}8J#g>@y$f9R*Nq;hUM{Ix5KIR>TX;YbmMHdEsM_5AM@KJOcJv!NE1Vy0oO z$^y@!KA$d{OQqUnC6T-;i;JQ3Yy&BS9zAppKD35SGcZj4yQ12oV3=zJ&KXD5i;J@= znm0CGXak&sgBE*QkLEAU`YT^k+kjFI2J`W0tbXocK>3Ce+za zx|Is?5Tq+kuCB6Kp$`0Y>L{kv8V`_DRtu+VAHH0xj8He-=7R z$VixK(3W=G*#@h*xB&%S1yuZ)N763J_79gn?Tg*c}Rbu zYT?ZGcSzNWb;Cq8)%g1VUt;a^x1R8ilaFgbt3&zBERx0>)W!S#nB99;-vyFfh9X6r zXrmN<9g@v1rgw^M$Q9b3z?Gvfw&(19*KwA~)7S5T8GY_-l7PsGkrhvBz}|$_rZ1U1 z-D{H1!5 zBxpMq`1g$@u{YpSPA>aW-4bfeGIEM`_b@VSv;H2Bo*Z2iDXoduT%*8y|9&9Wqw%>u z{C9bwc+;_5b`oQzWdv48Av&IdD($J*d`QObpNYy`XT3WgT$~T*GQB1RfhX}mt0LYC zj2uD-U+PLm9Ou6$%EqN@;?dOAhaun{x*FVO&FtIMog8Ko5{KqbjYOg)jD<PDVnlotOP5^H(rA-+gWB4)oyIw=;Sw%*j=rpDN^!(~>%BalvX7(emv9n8WDo+~_mS(8uVCB|(>$ z&bh;;=!_0oy+qP>iiq*2$g?5`zkiA)`>Gld^T0ex_uR;gCUHLxIG!564ciqB0CGPI3**3nzd)GW`F)_oGr?g%glQ7pJESuC~@Lo z2peg6>sEM-Cco=`earsuy7WISMYgEB&Nj6P4PfN4%tFqsV$F%LuOzm(RWMLp47dom zDTzK)zLb&7GvMLRF+TnCP<_Bk>3-6k3{_|tIZnV3J zT?g|V3jt9xSifF=0b?Mh^&gY1pVXZ?v7k2^mp#|#c9f9UJzwfM9+2sKJ|5S&Q0^^L z+EC|<1h)YEHc(GHTLKA>^7e>qUF2NB zp;F5}K#N)R5TaX(_SRv!9$rC+4sqoh#e#=S3>|J+VwqUosv{)fzur?qX^$>E`Wg^v z9;I($;9%zHWQaMt>o`uj2NNM0hRr~_8h0Hj2L-F2?B4_tmaH|V^i!zdzPjW>P;J#S zxIza5oul}WnqsEm$IA9Oufe4CjbmynzijsOYBD8lcPvPiPPPV<0yCC;pkIPj%dFo{+EKXl)H_UAV_<$zPHk7^v|@-CVHPuA8A(N8A)jcG+tjxfRHxK7sdu7#iMm z%@&2=bXr+iD65ARGjZvErVa;@QS*bIu-^st^y4&CTQuUSU=%|Amd6bwIbSLGA9HaC z*%j9vTGpIk1}-7QUy&d`s=cj&nki)!|2=%iMn94;2!UV{0UjPaL*dQ=iADxwEfxX+ zAE0+>j$}sCe?%-ti4L#eGB3#QTk}5PMESt{R>4l1g83tjUnX3IcB(1Dg=|p0kAFu1 zva|?=&$vjS9yK!%WI-A&Pc>B&XY_<9Z`j)JC9_UOpF%}Rt(5tKMc0=fpS{EY_Y@wt zJHGw5{5#{`o@%W(k7%|k)083!T;?Bw5aHfeX>m&SI{jhfXNqyBV253U6(LC9AyFg5 z*{H}WT<#+FD_eCq1Y?Yk(DtJx723FB@6u`pe6Gbgm+ZTa*(ugWa~bOy8^mXV0dLm` zyn;N2SR7Ht5VhW#&6JApJz>n&N_@c|*#-+_SZ|e6h~8lK7Nxl+jXY-B%@d5Izg1wP z)Oqws(-xIlIBAwDB&;?sq2?=!U#lFsI}0h}%M}*J>D=bS!04jTMKm-_s6;`^ojtDa z#Z16j!4ID18hn17kmd~&&>`L!It&*HZi6PI-$kHPn~ZB0qa6TT1w5`_t3an!GH5>f zP0!n92acac3A^P~Hjf(}%ivsN0Rk{(PXZh#ZN5$*)ne%X!5JPG6EiqbB-r$?*02XK zv^SPLpH|j7g3)VK^)lAQFE`s@N5zuk;K?w#Hq6r~l}`pG>$}y+*&e5LQPjg(C1i?{(G#$w6&*mTu+a9UudIbq7JV;# z2xtc>PELZI>7HYU6z&JZb*#91t+G8<{-INTuPy4w5m&J5L*SPkH>Y3};smME3gebW z6b~B$k~iO}X0ka`mB}g1Phy$`TG>9R^H3fy`gKSkzg#&ri=r9tw+K@}QeAOpv25C- zoAAm*3@;98nM__BUtMS+QAp=GIgVEGz4#YA`?Lxjew;*+1%cAJ27iJYHF%j#Y@tB; z=f{})vX$CN(Qe*2-;G0LY)o)&kVubl*)<`0F2D_&LH<`iv$C>cW|CMxOoEedS`A8r zPx;+pbHWRx5pm2-nhzWnu86ux6zMUG1qxf(4I`q+766a|LrYU?W@e;ruX2F*+%qB? z0p!Q)46)=_ExL#Z(TMa$d#hQJ&7g&LMXohX`Rgm*L>`;F zTp!Ux=z~8^*?DOW>zej&KVK6uxd(l}g~bRYulU>C=f}KxVCzy}MH6&dJS|Tem;C(7 zheKxL|Gctbib%ViZ#$zBGwae0|E6cf`KdGF>7zpi$!);=D-uahXTcw-Z$~MsJCy5dA z>-evN(KC02Wh_od-{y(DvQ4GZ<*)?ZiAnH^NqFSpliXD&H!bRR`6Vm|Dio2MhK zXl~TV_9Gn2Ur+Jft0ksR@r2meVYoxKK|c|=YXW@0@cVH@eC|PM(C7CEn!1LO>y)E8 z>_JTxL6b>INdr$;_whpmWqwW|f-8EmgvA`8;QcDG^py8xqm`}-ft%g#f&FMMj%N24 z?ts&;(;It1`&mY_zwfH|U`UCMRY8Whn@}AZ$hnb~o)Djqr>lmFm8Np=;1H(}IZD5g zn%>4w%gak*Dq9(ckurppdhjBOkIr_dPxP-tV#L%<=SiHH&ZX^XkovG~eJz&aTv~Cw zyvd}lMN(|o{Kzs@UE?Ka_J{WD$x2wmt%)aq|&EluX5ah)PuT4dr51-2P>htO7j^T~kL<1AIfJ zzSajFIZ9q`y&x;&(nT|>4$Ad{qs0G6I?JFqx^9i)?(QDk-QC@T1h)Xe8Qk4TfZ*=# z7Tnz>1PdC1ThM`l+wXU)sNxUSGjyMG_I~zSO;_(Id<(~j4OI9%s+t&BK;cq6=+#FO za|GE6C|@diVz9^V0^JZ5dXg{<^Pb0xO+o?!exGaeFrVAdp!YXO(_N_>A>gGLGzkEP zw1v0q+OC1XdC5n?XkaKd^9j-BKPa+2nHmtV83!Omiu5+uP(Ucu(Nap2cED;dE^b3Z z{{HNZd$AcAgBctK-LdwUuKL5McADh0ImEGZg*Gy7OY&14s-eWoY6jmuuAlhN+8}?b zU9Nfe>f@g-PutEJ^H*NP82T=ug&FsZ{{PYvy1rHul%{c;?M@x(ROHRbv8WigReAra zmVoXbzMx;;yAcMGSa(m-(3oS2b*@Z@4+yK??P%eBJx@v%(Oe7Z<5%7L!U!3@z}9?HZO7yFi(#6f-VoR3Zli1uojW*ahA)~HUT$N7wF8=((=Cr4_F#u z{UDw+M@XFqxPo8+D2(;|`ucAkVCa0<8qZqbHsbQVwLTY~`ZtUzu>kKF3nZHwL&mJI z&RU2Jnk?b*-ME23?)$L@gVPI$Gkg$G1miwh1vY_MKGs`{#R)N#j|bsGaCfYVq?qY* zGZD`nyrG+KkSpQ7iK$r}FvSKJvR994po!L?IxJ#rNGo+wQT7k|Spg&>+4nn@>B0ie zlX+>0K2sedBW1vQ=H+!%B!gX5H90eS24Y}f@DpY4Sq5xnCB@gW-^qmC>E;~jrY00O z+Z@L)w?)V?1i#}G6RTsi3F48G2JQ~@u^IEP_QknfZmk2`b%XXVN!CY}k8?E{+q!Pq@7fNmMFttn@+l>)5p zAFsB4h|$ofD#+exo0?V|7pldV*&`j`@tBXz%*hq^|SmJfg? z#z-~S!nL(}3g(qjCTBt&-t9;L4eEMmvH=93vgzDQFk(9aR3h13UA$l zV*nI6E*40fEKdxnH4~TtSKHu{MizHuO654PGgC+)3Pox9y-ikYz$@;sf;51r6}fI-svRXJ^tv)KKNyY(K$fB`c+|3OXs8e-nh{+q zd57g$BpGxH*~2Zu0GjTdTv!z}6))n4qBshM*|~hNe}J3^lb9Q+l1p(`RX1L$xq?pZ z#4ayWL`X1L8Nf!^jKo+lvW@PNq9yb6ql(zgu_^|~g%xpg%Ey%MhWLtPGl;%Yfs^C7 zQ6X8RQP7=2a8|@TJ!NQZl^7~qylK`mE7D|XcA{ueH^c0>kW(cO@~{%v%z$$gc@k2M zYng>)AqIKGG^B)pS6CJ6;=&k!gHXvB6_YhytP|1(T`ld{34boIP{EE0HAKBnNrrS0 z;?5h#hrm3d^-wB=a%o6Zh%h4O3AQUTi&xXg@1@U+>Zj+xvuAK2}}E1K`$HWbbv)(1S_dY8zR3T`GsN#U`ZV# z>wmS>EfPk?3ooI2G8C~<{AdT2MmI|>#=%+rx7hJpAqv}Bk#D5QWCr5RrWvC+yW@Vfk0rb$P6CJ0l)$%sR{HzCN9I^aesdwNZR=V1lYn{ zS9nx4XjSpg6g;*w1EH{Ps0QBEg%ZH>bFx^17{3+-0q>zGLODv80JBz}03oK<895!0 zB#sI10oahCu``31dnjc&`ahGU%M#d-^R{b6nNkbrfI;(c(%h$+tmUT5Uq;u_qg}gyzG1;PPWd3$;wf<1Mu-&>W0|ww+#0AE4ZoTX|Ex0(&s!d< zAxDF)j1KA=z~P}|{qRQ8EhlFrlMbg#1Q2uD0jDCD(XD-`kuHN4A;eF^Vq=_P_d_Oj z`@cj1(-Q0iE`JOQXN4p(ajP+2)hj^nRH2@ShUgk-U=vjABbXKZdT<2{g-WdwCp47^crd54|>JXIj%J_FB|;He&%{vFmE`=85a18@fJ!qOJ0iL$*Rrp{No za;s|2JO64dxWVbNK}T5Tt9pXtNhm{%m%ZN25%Yp4O=cOOusQ|iMx4`W(vhrmR!AjS0KiMnt+WTK# zf4ovs6mAB+q<@$ufc0CE3~u0J5rOpzH76g1wp2x6Ek;d18l;w49WDS4NsO1mR;b>FHYbCDlrdXWaLIB8beMDuu$RV^#eoh06Wzi zV6j9<0-J*zF@JuK0ii#uE5MD`P1a-=+(FtSTWVSNe%k`)aE|P!yvXbfX-nW==H3p zS`j^chC)#usQRTU*p~J>uC9Ej`ZqCf%IyMe@$3 zA$AQOo?(M$V`3D%%ZL5GF=EkQOV(=kDeIbyKz!i3)$gZAo03qq;fpgfssmHvOiak( zvr$5b#|Cb=^T)6tmq%6Pru)2|Y|!DqX3mH}U()tjF5 zeX(wJ;bvGw9vJ$v&31FBHvYmqETRnh7ff2F)?lNR_ezX?!b8KIq-Bj>H3W*w%f$p$ zQLrRoL(12*XQ5Q9ojjy{#u{bTX)((*VpOwnQ#0$tWwAWLpZ?&FM(Fh`M_2}*B0ZJ!#thvd;*&Y%7ZL@0$aB%httvG{qe#FWF&S^bph?%p5 zf>2vy;+W|9^Gq#m@jC+e!mYonDNiEels$EYjq7yG|K4@{{a9D_)kNhU1M>0P^SLTI zvh~TP+J8k+C;s$zNe1huBhn12+dTDdaf=}uZEtL}rT7ic{w_B%ZWfcIlq%yI z(v#D2s_l&5%eCxdi(UT1S9(`CJZ7GV>D2&U1d6wtir>I7luX2n_o+nq`1N*r9uRM8MYXo# z5jce0MiS=3b^|2P|Hz?JyEhA{Vo{RJmo)6`!lIV%EWyDR5HKI`ki^5skBFuWxBx5w z^`9`nb~Bms_%i{1ey2dNr^9LU_8=Lei58Q>W2a8ZW%+9``~{E->Nf!DAtOqourfs%1*18eR5T9gRTgW>O1QYTu3hfsICkXpfC7sph@3ugCgTd>)Kmjh2 zQ0}V4+X_IB0YET+egP^E`zGC8-17NMQ2-QoPx>U@ZU%LXbNNm^o#(a!-xuPaJU*&eu2F!Jq?HWB3!he3 zp(rmfNgw_J*5y9P!x=p45jrtVA=>`A}017rCfPbS`qhF|w{cSHK2s~r& zaWuc}Z@zO>m$OQGqbK`lynnxQOv&g)v&!<%rR?2oAvv$UtSd`l-j-22>5XwUy-IN@M-Puv+i(35tG%^6Py0M8=sn*x+4+y*YA2|r^CF^$$Q=` zE=B3MtyTPYahD4Or#R$$Nt$deYQrb3&jD#@!sHZ?2i^sH(z_ zlZz=kdUeeZitz{t9wY1s3&XXEBr)|T5gpOMcVYLyJLfDNqvthON6V~SD4 zg))V=-12j{hS&n#zSiST@Qwu{PJE`gR#h|RYMIrg+Yr!O^3Dtf3Qk7qvSZs_CQ^rS zPsra4Nu(nh0SuljhNiYQ%(Tc5GMkke>-|QX7+b~WUWFU1 z)d}r&9={dyo@@?(9sd`DiW|6%V3SVSMU zcowEP`k#KKYJAygAysqt5%Y6->})~3y}&?g`CA;%{&e0#ffjx(HWk1g7NTr;QW(5^ z1VSa4qYwyM0gmdlG&D;~DJ8|jNpvHoUhDty5Y~XXn99n^h=_=4W{`&<+n1fb`xKQf zK-lpLC{+?3zwyB9p;*N!e zFGiE4@9T{MA0_zyOr{RN4)NJ93DVFc{7mEHx*A$aFQ#CALxSu?1VzAcxGr3yst?lt zj0fb#m&+A)?{9$(y$`2=)far2nryIlf3h4;MMMuAAO93ZQ}n!CiZt}UZ2+eOQ&*|K zB3C_--~Ly9f6{a6`?@v(xS`uN`r2>*cd?G&LDPTDf{t#w_`eth%MT+Yk`%00Y7GM| zXFiwT0MnMV74L`P+TEj+ofK2&+2g&x2vz&zH-<-F*K`sa#<1Xc2K7WeUZa zr=B;T(;rYp&W8zKk~{*rSpBH(;{KD(dmGzBFp8qv^GBoqqXuIFvd_bM#b$>~auUEu zgc3Y()qf6nxC(x%R@?juEE^n*Gc0T@Gt={34_!3{KKo5QJzKzw1zbkJXxtyk^gbke zfNbQsC`b6V@K3}**m9)OR?T>9Yz&OnF|74`(P0KUUMQ+;Tyc3~>UZ6H^}qa4V>SL@ zm$!<90FZrW0d|Rowe^&