From 02e008ab252d549a1bdaf131aac004cc48d38760 Mon Sep 17 00:00:00 2001 From: Gabe Shaughnessy Date: Wed, 28 Sep 2016 11:31:38 -0500 Subject: [PATCH] Initial commit --- README.md | 14 + app/app.py | 66 ++ app/requirements.txt | 28 + app/static/css/style.css | 4 + app/stationDB.py | 198 ++++++ app/stationPlots.py | 26 + app/stationServer.py | 133 ++++ app/templates/homeConditions.html | 153 ++++ app/templates/index.html | 132 ++++ esp8266/ESP_httplib.cpp | 239 +++++++ esp8266/ESP_httplib.h | 79 +++ esp8266/ESP_station.cpp | 1076 +++++++++++++++++++++++++++++ esp8266/platformio.ini | 29 + esp8266/weatherCalcs.cpp | 81 +++ esp8266/weatherCalcs.h | 5 + screenshots/FlaskWXServer.png | Bin 0 -> 104455 bytes screenshots/WXDevice_ESP8266.png | Bin 0 -> 116696 bytes 17 files changed, 2263 insertions(+) create mode 100644 README.md create mode 100644 app/app.py create mode 100644 app/requirements.txt create mode 100644 app/static/css/style.css create mode 100644 app/stationDB.py create mode 100644 app/stationPlots.py create mode 100644 app/stationServer.py create mode 100644 app/templates/homeConditions.html create mode 100644 app/templates/index.html create mode 100644 esp8266/ESP_httplib.cpp create mode 100644 esp8266/ESP_httplib.h create mode 100644 esp8266/ESP_station.cpp create mode 100644 esp8266/platformio.ini create mode 100644 esp8266/weatherCalcs.cpp create mode 100644 esp8266/weatherCalcs.h create mode 100644 screenshots/FlaskWXServer.png create mode 100644 screenshots/WXDevice_ESP8266.png diff --git a/README.md b/README.md new file mode 100644 index 0000000..804eb40 --- /dev/null +++ b/README.md @@ -0,0 +1,14 @@ +Flask and SocketIO frontend to weather station. It can accept multiple stations simultaneously. + +To setup: +pip -r requirements + +To run: +Run station receiver that pushes socketIO packets to flask webserver: +$python stationServer.py + +Run flask webserver that listens for SocketIO packets: +$python app.py + +Webpage will be located at and will update when packet is received from stations +http://localhost:5000/ diff --git a/app/app.py b/app/app.py new file mode 100644 index 0000000..2af0c1c --- /dev/null +++ b/app/app.py @@ -0,0 +1,66 @@ +#!/usr/bin/env python + +# Set this variable to "threading", "eventlet" or "gevent" to test the +# different async modes, or leave it set to None for the application to choose +# the best option based on available packages. +async_mode = None + +if async_mode is None: + try: + import eventlet + async_mode = 'eventlet' + except ImportError: + pass + + if async_mode is None: + try: + from gevent import monkey + async_mode = 'gevent' + except ImportError: + pass + + if async_mode is None: + async_mode = 'threading' + + print('async_mode is ' + async_mode) + +# monkey patching is necessary because this application uses a background +# thread +if async_mode == 'eventlet': + import eventlet + eventlet.monkey_patch() +elif async_mode == 'gevent': + from gevent import monkey + monkey.patch_all() + +import json +import time +from threading import Thread +from flask import Flask, render_template +from flask_socketio import SocketIO + +from numpy import exp, cos, linspace +import os, re + +app = Flask(__name__, static_url_path='/static') +app.config['SECRET_KEY'] = 'secret!' +socketio = SocketIO(app, async_mode=async_mode) +thread = None + + +@socketio.on('dataPacket', namespace='/') +def handle_message(message): + if app.debug: + print('Obtained packet from station: ') + print message + # print message['data'] + socketio.emit('dataPacket', + {'data': 'Server generated event', 'packet': message}, + namespace='/web') + +@app.route('/') +def index(): + return render_template('index.html') + +if __name__ == '__main__': + socketio.run(app, host='0.0.0.0', port=5000, debug=False) diff --git a/app/requirements.txt b/app/requirements.txt new file mode 100644 index 0000000..b5ee766 --- /dev/null +++ b/app/requirements.txt @@ -0,0 +1,28 @@ +Flask==0.11.1 +Flask-SocketIO==2.7.1 +Jinja2==2.8 +MarkupSafe==0.23 +PyYAML==3.12 +Werkzeug==0.11.11 +argparse==1.2.1 +backports-abc==0.4 +bokeh==0.10.0 +certifi==2016.9.26 +click==6.6 +gevent==1.1.2 +greenlet==0.4.10 +itsdangerous==0.24 +numpy==1.11.1 +pandas==0.18.1 +python-dateutil==2.5.3 +python-engineio==1.0.3 +python-socketio==1.6.0 +pytz==2016.6.1 +pyzmq==15.4.0 +requests==2.11.1 +singledispatch==3.4.0.3 +six==1.10.0 +socketIO-client==0.7.0 +tornado==4.4.1 +websocket-client==0.37.0 +wsgiref==0.1.2 diff --git a/app/static/css/style.css b/app/static/css/style.css new file mode 100644 index 0000000..7f04ec9 --- /dev/null +++ b/app/static/css/style.css @@ -0,0 +1,4 @@ +{ + font-size: 320px; + line-height: 2; +} diff --git a/app/stationDB.py b/app/stationDB.py new file mode 100644 index 0000000..626f7a1 --- /dev/null +++ b/app/stationDB.py @@ -0,0 +1,198 @@ +import sqlite3 +import pandas as pd +import stationDB as st +from jinja2 import Template + +from bokeh.plotting import * +from bokeh.resources import INLINE +# from bokeh.util.browser import view + +from bokeh.models import HoverTool +from bokeh.embed import components +import time +import datetime +import os.path + + + +class DB: + def __init__(self,fileName, table): + self.fileName=fileName + self.table=table + self.columnNames=[] + if not os.path.isfile(self.fileName): + self.createTable() + self.getColumnNames() + + def createTable(self): + con=sqlite3.connect(self.fileName) + c=con.cursor() + c.execute("CREATE TABLE %s (timestamp real, timeString text)" % self.table) + + con.close() + + def addColumn(self, name): + con=sqlite3.connect(self.fileName) + c=con.cursor() + type="real" + c.execute("ALTER TABLE %s ADD COLUMN %s %s" % (self.table, name, type)) + con.close() + + def getColumnNames(self): + con=sqlite3.connect(self.fileName) + command="SELECT * from %s" % self.table + self.df=pd.read_sql_query(command, con) + self.columnNames=self.df.columns + con.close() + + def addData(self, packet): + con=sqlite3.connect(self.fileName) + c=con.cursor() + + # create column if not present + for key in packet.keys(): + if key not in self.columnNames: + self.addColumn(key) + self.getColumnNames() + + + columns=', '.join(packet.keys()) + placeholders = ', '.join('?' * len(packet)) + sql = 'INSERT INTO master ({}) VALUES ({})'.format(columns, placeholders) + c.execute(sql, packet.values()) + + # # command="create table if not exists %s (date real, dateString text, name text, value real)" % name + # c.execute(command) + # timeString=datetime.datetime.fromtimestamp(time).strftime('%Y/%m/%d %H:%M:%S') + # dataTuple=(time, timeString, name, data,) + # command="INSERT INTO %s VALUES (?, ?, ?, ?)" % name + # c.execute(command, dataTuple) + con.commit() + con.close() + + def loadDB(self,name): + con=sqlite3.connect(self.fileName) + command="SELECT * from %s" % name + self.df=pd.read_sql_query(command, con) + con.close() + +class DBview: + def __init__(self,db,df,UTCOffset): + # self.timeRange=timeRange + self.db = db + self.df = df + self.UTCOffset = UTCOffset + + + def qp(self,attrList, name, timeRange): + now=datetime.datetime.now() + epoch=datetime.datetime.utcfromtimestamp(0) + tstart=now-datetime.timedelta(days=timeRange) + tcut=(tstart-epoch).total_seconds() + dataFrame=self.df[self.df.timestamp>tcut] + dataFrame['t']=dataFrame.timestamp*1000 + # y1=getattr(self.df,attr1) + # y2=getattr(self.df,attr2) + output_file(name+'.html') + timeString=[datetime.datetime.fromtimestamp(dt).strftime('%Y/%m/%d %H:%M:%S') for dt in dataFrame.timestamp] + source=ColumnDataSource(data=dataFrame.to_dict('list')) + TOOLS="resize,hover,crosshair,pan,wheel_zoom,box_zoom,reset,tap,previewsave,box_select,poly_select,lasso_select" + p=figure(x_axis_type="datetime",tools=TOOLS) + for key in attrList: + print key + p.scatter('t',key, source=source) + p.select(dict(type=HoverTool)).tooltips=[ + ("Time", "@timeString"), + ("Value", "@y1"), + ("Value", "@y2"), + ] + show(p) + + def qph(self,attrList, name, timeRange): + now=datetime.datetime.now() + epoch=datetime.datetime.utcfromtimestamp(0) + tstart=now-datetime.timedelta(days=0,hours=timeRange) + tcut=(tstart-epoch).total_seconds() + dataFrame=self.df[self.df.timestamp>tcut] + dataFrame['t']=dataFrame.timestamp*1000 + # y1=getattr(self.df,attr1) + # y2=getattr(self.df,attr2) + output_file(name+'.html') + timeString=[datetime.datetime.fromtimestamp(dt).strftime('%Y/%m/%d %H:%M:%S') for dt in dataFrame.timestamp] + source=ColumnDataSource(data=dataFrame.to_dict('list')) + TOOLS="resize,hover,crosshair,pan,wheel_zoom,box_zoom,reset,tap,previewsave,box_select,poly_select,lasso_select" + p=figure(x_axis_type="datetime",tools=TOOLS) + for key in attrList: + print key + p.scatter('t',key, source=source) + p.select(dict(type=HoverTool)).tooltips=[ + ("Time", "@timeString"), + ("Value", "@y1"), + ("Value", "@y2"), + ] + show(p) + + return source + + + def qphLive(self,attrList, name, timeRange): + # attrList=['stationLoadVolt'] + now=datetime.datetime.now() + epoch=datetime.datetime.utcfromtimestamp(0) + tstart=now-datetime.timedelta(days=0,hours=timeRange-self.UTCOffset) + tcut=(tstart-epoch).total_seconds() + dataFrame=self.df[self.df.timestamp>tcut] + dataFrame['t']=dataFrame.timestamp*1000 - self.UTCOffset*3600*1000 + output_server(name,url='http://10.0.1.2:5006') + colors=["red","blue","green","orange","purple","black","gray","magenta","cyan","brown","gold","darkkhaki","darksalmon"] + timeString=[datetime.datetime.fromtimestamp(dt).strftime('%Y/%m/%d %H:%M:%S') for dt in dataFrame.timestamp] + source=ColumnDataSource(data=dataFrame.to_dict('list')) + TOOLS="resize,hover,crosshair,pan,wheel_zoom,box_zoom,reset,tap,previewsave,box_select,poly_select,lasso_select" + keyList=attrList.keys() + p={} + ds={} + for mainKey in keyList: + if mainKey == keyList[0]: + p[mainKey]=figure(x_axis_type="datetime",tools=TOOLS, width=600, height=400, title=mainKey) + else: + p[mainKey]=figure(x_axis_type="datetime",tools=TOOLS, width=600, height=400, title=mainKey, x_range=p[keyList[0]].x_range) + ikey=0 + hover={} + for key in attrList[mainKey]: + print key + # keySource=ColumnDataSource({'x': source.data['t'], 'y': series.values, 'series_name': name_for_display, 'Date': toy_df.index.format()}) + p[mainKey].scatter('t',key, source=source, name=key,fill_color=colors[ikey],line_color=colors[ikey], legend=key) + + hover = p[mainKey].select(dict(type=HoverTool)) + # hover[ikey].renderers=[source.data[key]] + # hover[ikey].tooltips=tooltips+[("Series",key),("Time","@timeString"), ("Value", "@"+key)] + hover.tooltips=[("Series",key),("Time","@timeString"), ("Value", "@"+key)] + # hover.mode = "mouse" + ikey+=1 + p[mainKey].legend.orientation="top_left" + renderer = p[mainKey].select(dict(name=key)) + ds[mainKey]=renderer[0].data_source + + + # allP = vplot(*p.values()) + # allP = gridplot([p.values()]) + group=lambda flat, size: [flat[i:i+size] for i in range(0,len(flat), size)] + allP = gridplot(group(p.values(),1)) + show(allP) + + + while True: + print 'updating...' + self.db=st.DB('data.sdb','master') + self.db.loadDB('master') + self.df = self.db.df + now=datetime.datetime.now() + tstart=now-datetime.timedelta(days=0,hours=timeRange-self.UTCOffset) + tcut=(tstart-epoch).total_seconds() + dataFrame=self.df[self.df.timestamp>tcut] + dataFrame['t']=dataFrame.timestamp*1000 - self.UTCOffset*3600*1000 + for mainKey in keyList: + ds[mainKey].data = dataFrame.to_dict('list') + # print ds.data['stationIRTemp'] + cursession().store_objects(ds[mainKey]) + time.sleep(30) diff --git a/app/stationPlots.py b/app/stationPlots.py new file mode 100644 index 0000000..1d9fd81 --- /dev/null +++ b/app/stationPlots.py @@ -0,0 +1,26 @@ +import stationDB as st +import numpy as np +import sqlite3 +import pandas as pd +from bokeh.plotting import * +from bokeh.models import HoverTool + +import time +import datetime +import pytz + +db=st.DB('data.sdb','master') +db.loadDB('master') +UTCOffset = -5 +dbv=st.DBview(db, db.df, UTCOffset) + +attrList={} +attrList['Station Temperature']=['WeatherStationTemperature','WeatherStationHTUTemp','WeatherStationDewpoint'] +attrList['Station IR']=['WeatherStationIRTemp','WeatherStationMLXTemp'] +attrList['Brightness']=['WeatherStationBrightness'] +attrList['Voltage']=['WeatherStationLoad'] +attrList['Current']=['WeatherStationCurrent'] +attrList['UV']=['WeatherStationUVIndex'] + +viewHistory=24 +dbv.qphLive(attrList, 'DayView', viewHistory) diff --git a/app/stationServer.py b/app/stationServer.py new file mode 100644 index 0000000..1d6f9db --- /dev/null +++ b/app/stationServer.py @@ -0,0 +1,133 @@ +from datetime import datetime as dt +import sys +import os +from socketIO_client import SocketIO, LoggingNamespace +from subprocess import check_output +import socket +import time +import json +import stationDB +import datetime +from crypt import * +import numpy as np + + +class Station: + def __init__(self): + self.name='Rpi' + self.udpPort=8123 + self.BUF_SIZE=1024 + self.packets={} + self.packetMean={} + self.nMeasurements={} + self.lastUpdate={} + self.avgFreq=30 + self.lastRelease=datetime.datetime.now() + # self.secret_key = '1234567890123456' + + + + + def initSocket(self, host, port ): + try: + self.socketIO = SocketIO(host, port) + self.socketConnected=True + except: + print "Unable to open socket: ", sys.exc_info()[0] + self.socketConnected=False + raise + + def startUDPListen(self,ip,port): + self.sock = socket.socket(socket.AF_INET, # Internet + socket.SOCK_DGRAM) # UDP + self.sock.bind((ip, port)) + + def startUDPSend(self): + self.sock = socket.socket(socket.AF_INET, # Internet + socket.SOCK_DGRAM) # UDP + + + def sendPacket(self, message, ip, port): + self.sock.sendto(message, (ip, port)) + + def recvPacket(self, verbose): + data, addr = self.sock.recvfrom(self.BUF_SIZE) # buffer size is 1024 bytes + # decoded = decodePacket(self.secret_key,data) + try: + packet=json.loads(data) + except ValueError, e: + print 'bad json data' + print data + return {} + + if verbose: + print "Message from ", addr, " :", packet + return packet + + def checkForPacketRelease(self): + releasePacket=False + now=datetime.datetime.now() + releaseTime=0 + if (now-self.lastRelease).seconds > self.avgFreq: + self.packetMean['timestamp']=time.time() + + releasePacket=True + releaseTime=float(now.strftime("%s")) + self.lastRelease=now + timeString=now.strftime('%Y/%m/%d %H:%M:%S') + self.packetMean['timeString']=timeString + self.nMeasurements['timeString']=1 + # reset packet list + for key in self.packets.keys(): + self.packets[key]=[] + + + return (releasePacket,releaseTime) + + + def updateMeasurement(self, key, value): + + if key not in self.lastUpdate.keys(): + self.lastUpdate[key]=datetime.datetime.now() + + self.lastUpdate[key]=datetime.datetime.now() + if key not in self.packets.keys(): + self.packets[key]=value + self.packets[key]=np.append(self.packets[key],value) + self.packetMean[key] = np.mean(self.packets[key]) + self.nMeasurements[key] = len(self.packets[key]) + + +# +db=stationDB.DB('data.sdb','master') +s=Station() +s.udpPort=9990 +s.startUDPListen('0.0.0.0',s.udpPort) + +sio=SocketIO('localhost', 5000) +verbose=False +readPackets=True +while readPackets: + rawPacket=s.recvPacket(verbose) + print rawPacket + try: + sio.emit('dataPacket', rawPacket) + print 'sent packet' + except: + print 'socket not connected' + + # rawPacket['name'] + + for dataName in rawPacket['data'].keys(): + key = rawPacket['name'].replace(' ','') + dataName.replace(' ','') + value = rawPacket['data'][dataName]['value'] + releasePacket=s.updateMeasurement(key,value) + releasePacket,releaseTime=s.checkForPacketRelease() + if releasePacket: + for (key,value) in s.packetMean.items(): + print 'Updating db: ',key,' = ',value + db.addData(s.packetMean) + s.packetMean={} + + +s.sock.close() diff --git a/app/templates/homeConditions.html b/app/templates/homeConditions.html new file mode 100644 index 0000000..f93a281 --- /dev/null +++ b/app/templates/homeConditions.html @@ -0,0 +1,153 @@ + + + + Home Conditions + + + + + + + + + + + + + + + +
+
+ + + + + + + + + + + + + + + + + + + +
+
+
+ + diff --git a/app/templates/index.html b/app/templates/index.html new file mode 100644 index 0000000..438e6c0 --- /dev/null +++ b/app/templates/index.html @@ -0,0 +1,132 @@ + + + + Home Conditions + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
+
+ + diff --git a/esp8266/ESP_httplib.cpp b/esp8266/ESP_httplib.cpp new file mode 100644 index 0000000..540300f --- /dev/null +++ b/esp8266/ESP_httplib.cpp @@ -0,0 +1,239 @@ +#if ARDUINO >= 100 + #include "Arduino.h" +#else + #include "WProgram.h" +#endif + +#ifdef __AVR_ATtiny85__ + #include "TinyWireM.h" + #define Wire TinyWireM +#else + #include +#endif + +#include "ESP_httplib.h" +#include "ESP8266WiFi.h" + +/**************************************************************************/ +// Instantiates new ESP class +/**************************************************************************/ +ESP_HTTP::ESP_HTTP(){ +} + +/**************************************************************************/ +// Instantiates new ESP class +/**************************************************************************/ +boolean ESP_HTTP::begin(void){ + header="" + stationName +""; + // refresh HTML page + header +=""; + header +=""; + + css=""; + css+=""; + css+=""; + css+=""; + css+=""; + css+=""; + css+=""; + body="
"; + endHTML="
"; + return true; +} + +String ESP_HTTP::getStatus(Data data){ + + // Apply color coding status using data limits + String dataclass; + if (data.value > data.ul2){ + if (data.invertLimits){ + dataclass = "info"; + } else { + dataclass = "danger"; + } + } else if (data.value > data.ul1){ + if (data.invertLimits){ + dataclass = "success"; + } else { + dataclass = "warning"; + } + } else if (data.value < data.ll2){ + if (data.invertLimits){ + dataclass = "danger"; + } else { + dataclass = "info"; + } + } else if (data.value < data.ll1){ + if (data.invertLimits){ + dataclass = "warning"; + } else { + dataclass = "success"; + } + } else { + dataclass = "success"; + } + + return dataclass; +} + +boolean ESP_HTTP::updatePage(DataSet dataset, String packet){ + + + content = "
"; + content += "
"; + content += "

" + stationName + "

"; + content += "

"; + + dataContent=""; + for (int i=0; i < dataset.nData; i++){ + if (dataset.data[i].name == "uptime"){ + uptime = dataset.data[i].value; + continue; + } + String dataclass=getStatus(dataset.data[i]); + + if (i==0) { + dataContent += "" + " "; + } else { + dataContent += "" + " "; + } + + } + dataContent += "
MeasurementValue
" + dataset.data[i].name + "" + String(dataset.data[i].value) + " " + dataset.data[i].unit + "
" + dataset.data[i].name + "" + String(dataset.data[i].value) + " " + dataset.data[i].unit + "
"; + + dataContent += "
\ + \ + \ +
"; + + dataContent += "
"; + + dataContent += "
"; + dataContent += ""; + dataContent += "
"; + dataContent += "
"; + + dataContent += "
"; + dataContent += ""; + dataContent += "
"; + dataContent += "
"; + + dataContent += "
"; + dataContent += ""; + dataContent += "
"; + dataContent += "
"; + + dataContent += ""; + dataContent += "

"; + + + buttons = "

JSON Data

"+ packet +"

"; + + + buttons += "
\ + \ + \ +
"; + + buttons += "
"; + buttons += "
"; + + buttons += ""; + +footer="
Hello from " + stationName + "
Station sensor: Version " + String(version) + "
Uptime: " + String(uptime) + " seconds
"; + + + return true; +} + + +String ESP_HTTP::page(void){ + String htmlpage = header + css + body + content + dataContent + buttons + jsonButton + endHTML + footer; + return htmlpage; +} + + + +/**************************************************************************/ +// Instantiates new ESP class +/**************************************************************************/ +ESP_httplib::ESP_httplib(){ +} + +/**************************************************************************/ +// Instantiates new ESP class +/**************************************************************************/ +boolean ESP_httplib::begin(const char* ssid, const char* password) { + + pinMode(RESET_PIN, OUTPUT); + digitalWrite(RESET_PIN, HIGH); + pinMode(NOTIFY_PIN, OUTPUT); + digitalWrite(NOTIFY_PIN, HIGH); + + http.begin(); + // // Connect to WiFi + WiFi.mode(WIFI_STA); + WiFi.begin(ssid, password); + Serial.begin(115200); + + while (WiFi.status() != WL_CONNECTED) { + delay(500); + Serial.print("."); + } + Serial.println(""); + Serial.println("WiFi connected"); + + // Print the IP address + stationIP=WiFi.localIP().toString(); + Serial.println(stationIP); + + // tStart = millis(); + + + return true; +} + +// float uptime(void){ +// return 0.001 * ( millis() - tStart); +// } + +void ESP_httplib::triggerActivityLED(void){ + digitalWrite(NOTIFY_PIN, LOW); // turn the LED off by making the voltage LOW + delay(10); + digitalWrite(NOTIFY_PIN, HIGH); // turn the LED off by making the voltage LOW + +} + +void ESP_httplib::triggerReset(){ + digitalWrite(RESET_PIN, LOW); // turn the LED off by making the voltage LOW +} + + + +void ESP_httplib::formPacket(DataSet dataset){ + + String dataPacket = ""; + for (int i=0; i < dataset.nData; i++){ + dataPacket += "\"" + dataset.data[i].name + "\": { \"value\": " + String(dataset.data[i].value,3) + ", \"class\": \"" + http.getStatus(dataset.data[i]) + "\", \"unit\": \"" + dataset.data[i].unit + "\"}"; + if (i != dataset.nData - 1){ + dataPacket += ", "; + } + } + + String name = "\"name\": \"" + http.stationName + "\""; + String address = "\"ip\": \"" + stationIP + "\""; + + String rssiPacket = "\"rssi\": " + String(WiFi.RSSI()); + String network = "\"network\": { " + address + ", " + rssiPacket + "}"; + + packet = "{ " + name + ", " + network + ", \"data\" : {" + dataPacket + "} }"; +} diff --git a/esp8266/ESP_httplib.h b/esp8266/ESP_httplib.h new file mode 100644 index 0000000..bd07d2b --- /dev/null +++ b/esp8266/ESP_httplib.h @@ -0,0 +1,79 @@ +#if ARDUINO >= 100 + #include "Arduino.h" +#else + #include "WProgram.h" +#endif + +#ifdef __AVR_ATtiny85__ + #include "TinyWireM.h" + #define Wire TinyWireM +#else + #include +#endif + +#include "ESP8266WiFi.h" + +#define NOTIFY_PIN 16 +#define RESET_PIN 5 + +typedef struct { + String name; + float value; + String unit; + float ul1, ul2, ll1, ll2; + boolean invertLimits; +} Data; + +typedef struct{ + String udpIP; + int udpPort; + float udpFRQ; +} Settings; + +typedef struct { + int maxData=20; + int nData; + Data data[20]; + + +} DataSet; + + + +class ESP_HTTP { + public: + ESP_HTTP(); + boolean begin(void); + boolean updatePage(DataSet dataset, String packet); + Settings settings; + String header; + String stationName; + String css; + String body; + String content; + String dataContent; + String buttons, jsonButton; + String endHTML; + String footer; + String version; + String getStatus(Data data); + String page(void); + float uptime; +}; + +class ESP_httplib { + public: + ESP_httplib(); + ESP_HTTP http; + boolean begin(const char* ssid, const char* password); + void triggerActivityLED(void); + void triggerReset(void); + String stationIP; + String packet; + void formPacket(DataSet dataset); + void sendUDPPacket(void); +private: + unsigned long int tStart; + + +}; diff --git a/esp8266/ESP_station.cpp b/esp8266/ESP_station.cpp new file mode 100644 index 0000000..b487505 --- /dev/null +++ b/esp8266/ESP_station.cpp @@ -0,0 +1,1076 @@ +// Import required libraries +#include "ESP_Base64.h" +#include "ESP8266WiFi.h" +#include +#include +#include +#include +#include "weatherCalcs.h" +#include +#include "ESP_httplib.h" +#include +#include + +#include "FS.h" + +ESP8266HTTPUpdateServer httpUpdater; + + +#define QUOTE(name) #name +#define STR(macro) QUOTE(macro) + +ESP_httplib esp = ESP_httplib(); + +#define VERSION "1.0" +// #define BUILD "" + + +//////////////////////////////////////////////////////////////////////////////////////////////// +//////////// DEVICE SPECIFIC HEADERS AND DECLARATIONS ////////////////////////////////////////// + +#ifdef MCP + #include "Adafruit_MCP9808.h" + Adafruit_MCP9808 mcp = Adafruit_MCP9808(); +#endif +#ifdef HTU + #include "Adafruit_HTU21DF.h" + Adafruit_HTU21DF htu = Adafruit_HTU21DF(); +#endif + +#ifdef MPL + #include + Adafruit_MPL3115A2 mpl = Adafruit_MPL3115A2(); +#endif + +#ifdef INA + #include + Adafruit_INA219 ina219(0x44); +#endif + +#ifdef MLX + #include + Adafruit_MLX90614 mlx = Adafruit_MLX90614(); +#endif + + + +#ifdef SI + #include "Adafruit_SI1145.h" + Adafruit_SI1145 si = Adafruit_SI1145(); +#endif + +#ifdef TMP + #include "Adafruit_TMP007.h" + Adafruit_TMP007 tmp(0x43); // SCL to AD0 +#endif + +#ifdef TSL + #include "Adafruit_TSL2591.h" + Adafruit_TSL2591 tsl = Adafruit_TSL2591(2591); + void configureSensor(tsl2591Gain_t gainSetting, tsl2591IntegrationTime_t timeSetting); + float advancedLightSensorRead(void); +#endif + +#ifdef SSD + #include + #define OLED_RESET 15 + // #include + // Adafruit_SSD1306 display(OLED_RESET); + #include // Modification of Adafruit_SSD1306 for ESP8266 compatibility + ESP_SSD1306 display(OLED_RESET); // FOR I2C + +#endif + + +// #include "Adafruit_LSM9DS0.h" + +#ifdef BMP + #include "Adafruit_BMP183.h" + #define BMP183_CLK 12 // CLOCK + #define BMP183_SDO 13 // AKA MISO + #define BMP183_SDI 14 // AKA MOSI + #define BMP183_CS 15 // CHIP SELECT + Adafruit_BMP183 bmp = Adafruit_BMP183(BMP183_CLK, BMP183_SDO, BMP183_SDI, BMP183_CS); +#endif +#ifdef LED + #ifndef SSD + #include "Adafruit_LEDBackpack.h" + #endif + #include "Adafruit_GFX.h" + void write4Digit(Adafruit_AlphaNum4 alpha, float num); + Adafruit_AlphaNum4 alpha4 = Adafruit_AlphaNum4(); +#endif +// Adafruit_LSM9DS0 lsm = Adafruit_LSM9DS0(); +//////////////////////////////////////////////////////////////////////////////////////////////// + +float tLast = millis(); + +unsigned long int tBegin = millis(); +float uptime = 0.0; + +// WiFi parameters +const char* ssid = "WIFIAP"; +const char* password = "PASSWORD"; + + +ESP8266WebServer server(80); +boolean ledOn=true; + +WiFiUDP Udp; +int udpPort = 9990; // udp port +String udpIP = "XX.XX.XX.XX"; // app server ip address +float udpFRQ = 5.; // update frequency + +int rssi; +String dpTemp="mcp"; + +boolean hasMCP=false, + hasHTU=false, + hasBMP=false, + hasTMP=false, + hasMPL=false, + hasALPHNUM=false, + hasSI=false, + hasTSL=false, + hasMLX=false, + hasINA=false; + +static boolean hasLSM=false; + +float f,hum,htuT,dp,hi; +float bp, bmpT; +float mplbp,mplT,mplAlt; +float Vshunt, Vbus, Ima, Vload; +float uvI; +float objT,dieT; +float brightness; + +Settings settings; + +DataSet dataset; +void readSensors(void){ + + #ifdef MCP + f=mcp.readTempC() * 1.8 + 32.0; + #endif + + #ifdef HTU + hum=htu.readHumidity(); + htuT=htu.readTemperature() * 1.8 + 32.0; + #endif + + #ifdef TMP + objT=tmp.readObjTempC() * 1.8 + 32.0; + dieT=tmp.readDieTempC() * 1.8 + 32.0; + #endif + + #ifdef BMP + bmpT=bmp.getTemperature() * 1.8 + 32.0; + bp=bmp.getPressure() * 0.0002953; + float alt = 290.; + bp = meanSeaLevelPressure(bp, bmpT, alt); + + #endif + + + #ifdef INA + Vshunt = ina219.getShuntVoltage_mV(); + Vbus = ina219.getBusVoltage_V(); + Ima = ina219.getCurrent_mA(); + Vload = Vbus + (Vshunt / 1000.); + hasINA=true; + #endif + + #ifdef MPL + mplbp = mpl.getPressure() * 0.0002953; + mplT = mpl.getTemperature() * 1.8 + 32.; + mplAlt = mpl.getAltitude(); + float alt = 292.0; + mplbp = meanSeaLevelPressure(mplbp, mplT, alt); + #endif + + #ifdef SI + uvI = si.readUV(); + uvI /= 100.0; + #endif + + #ifdef TSL + brightness = advancedLightSensorRead(); + #endif + + #ifdef MLX + dieT=mlx.readAmbientTempF(); + objT=mlx.readObjectTempF(); + + #endif + + if (dpTemp=="mcp"){ + dp=dewPoint(f,hum); + hi=heatIndex(f,hum); + } else if (dpTemp=="htu"){ + dp=dewPoint(htuT,hum); + hi=heatIndex(htuT,hum); + } + rssi = WiFi.RSSI(); + uptime = 0.001 * (millis() - tBegin); + dataset.nData=0; + // #ifdef MCP + if (hasMCP){ + dataset.data[dataset.nData].value=f; + dataset.data[dataset.nData].name="Temperature"; + dataset.data[dataset.nData].unit="°F"; + dataset.data[dataset.nData].ul2 = 80.; + dataset.data[dataset.nData].ul1 = 75.; + dataset.data[dataset.nData].ll1 = 70.; + dataset.data[dataset.nData].ll2 = 65.; + dataset.data[dataset.nData].invertLimits = false; + dataset.nData++; + } + // #endif + // #ifdef HTU + if (hasHTU){ + dataset.data[dataset.nData].value=htuT; + dataset.data[dataset.nData].name="HTU Temp"; + dataset.data[dataset.nData].unit="°F"; + dataset.data[dataset.nData].ul2 = 80.; + dataset.data[dataset.nData].ul1 = 75.; + dataset.data[dataset.nData].ll1 = 70.; + dataset.data[dataset.nData].ll2 = 65.; + dataset.data[dataset.nData].invertLimits = false; + dataset.nData++; + + dataset.data[dataset.nData].value=hum; + dataset.data[dataset.nData].name="Humidity"; + dataset.data[dataset.nData].unit="%"; + dataset.data[dataset.nData].ul2 = 80.; + dataset.data[dataset.nData].ul1 = 60.; + dataset.data[dataset.nData].ll1 = 40.; + dataset.data[dataset.nData].ll2 = 20.; + dataset.data[dataset.nData].invertLimits = false; + dataset.nData++; + + dataset.data[dataset.nData].value=dp; + dataset.data[dataset.nData].name="Dewpoint"; + dataset.data[dataset.nData].unit="°F"; + dataset.data[dataset.nData].ul2 = 65.; + dataset.data[dataset.nData].ul1 = 60.; + dataset.data[dataset.nData].ll1 = 45.; + dataset.data[dataset.nData].ll2 = 30.; + dataset.data[dataset.nData].invertLimits = false; + dataset.nData++; + + dataset.data[dataset.nData].value=hi; + dataset.data[dataset.nData].name="Heat Index"; + dataset.data[dataset.nData].unit="°F"; + dataset.data[dataset.nData].ul2 = 90.; + dataset.data[dataset.nData].ul1 = 80.; + dataset.data[dataset.nData].ll1 = 75.; + dataset.data[dataset.nData].ll2 = -100.; + dataset.data[dataset.nData].invertLimits = false; + dataset.nData++; + + } + // #endif + // #ifdef BMP + if (hasBMP){ + dataset.data[dataset.nData].value=bp; + dataset.data[dataset.nData].name="Pressure"; + dataset.data[dataset.nData].unit="in-Hg"; + dataset.data[dataset.nData].ul2 = 30.25; + dataset.data[dataset.nData].ul1 = 30.; + dataset.data[dataset.nData].ll1 = 29.75; + dataset.data[dataset.nData].ll2 = 29.5; + dataset.data[dataset.nData].invertLimits = true; + dataset.nData++; + + dataset.data[dataset.nData].value=bmpT; + dataset.data[dataset.nData].name="Pressure Temp"; + dataset.data[dataset.nData].unit="°F"; + dataset.data[dataset.nData].ul2 = 80.; + dataset.data[dataset.nData].ul1 = 75.; + dataset.data[dataset.nData].ll1 = 70.; + dataset.data[dataset.nData].ll2 = 65.; + dataset.data[dataset.nData].invertLimits = false; + dataset.nData++; + } + if (hasMPL){ + dataset.data[dataset.nData].value=mplbp; + dataset.data[dataset.nData].name="Pressure"; + dataset.data[dataset.nData].unit="in-Hg"; + dataset.data[dataset.nData].ul2 = 30.25; + dataset.data[dataset.nData].ul1 = 30.; + dataset.data[dataset.nData].ll1 = 29.75; + dataset.data[dataset.nData].ll2 = 29.5; + dataset.data[dataset.nData].invertLimits = true; + dataset.nData++; + + dataset.data[dataset.nData].value=mplT; + dataset.data[dataset.nData].name="Pressure Temp"; + dataset.data[dataset.nData].unit="°F"; + dataset.data[dataset.nData].ul2 = 80.; + dataset.data[dataset.nData].ul1 = 75.; + dataset.data[dataset.nData].ll1 = 70.; + dataset.data[dataset.nData].ll2 = 65.; + dataset.data[dataset.nData].invertLimits = false; + dataset.nData++; + } + if (hasINA){ + dataset.data[dataset.nData].value=Vload; + dataset.data[dataset.nData].name="Load"; + dataset.data[dataset.nData].unit="V"; + dataset.data[dataset.nData].ul2 = 5.5; + dataset.data[dataset.nData].ul1 = 5.0; + dataset.data[dataset.nData].ll1 = 3.4; + dataset.data[dataset.nData].ll2 = 3.2; + dataset.data[dataset.nData].invertLimits = false; + dataset.nData++; + + + dataset.data[dataset.nData].value=Ima; + dataset.data[dataset.nData].name="Current"; + dataset.data[dataset.nData].unit="mA"; + dataset.data[dataset.nData].ul2 = 200; + dataset.data[dataset.nData].ul1 = 100; + dataset.data[dataset.nData].ll1 = 50; + dataset.data[dataset.nData].ll2 = 30; + dataset.data[dataset.nData].invertLimits = false; + dataset.nData++; + + } + + + // #endif + // #ifdef SI + if (hasSI){ + dataset.data[dataset.nData].value=uvI; + dataset.data[dataset.nData].name="UV Index"; + dataset.data[dataset.nData].unit=""; + dataset.data[dataset.nData].ul2 = 8.0; + dataset.data[dataset.nData].ul1 = 6.5; + dataset.data[dataset.nData].ll1 = 5.0; + dataset.data[dataset.nData].ll2 = 3.0; + dataset.data[dataset.nData].invertLimits = false; + dataset.nData++; + + } + // #endif + // #ifdef TMP + if (hasTMP){ + dataset.data[dataset.nData].value=objT; + dataset.data[dataset.nData].name="IR Temp"; + dataset.data[dataset.nData].unit="°F"; + dataset.data[dataset.nData].ul2 = 80.; + dataset.data[dataset.nData].ul1 = 75.; + dataset.data[dataset.nData].ll1 = 70.; + dataset.data[dataset.nData].ll2 = 65.; + dataset.data[dataset.nData].invertLimits = false; + dataset.nData++; + + dataset.data[dataset.nData].value=dieT; + dataset.data[dataset.nData].name="TMP Temp"; + dataset.data[dataset.nData].unit="°F"; + dataset.data[dataset.nData].ul2 = 80.; + dataset.data[dataset.nData].ul1 = 75.; + dataset.data[dataset.nData].ll1 = 70.; + dataset.data[dataset.nData].ll2 = 65.; + dataset.data[dataset.nData].invertLimits = false; + dataset.nData++; + + dataset.data[dataset.nData].value=dieT - objT; + dataset.data[dataset.nData].name="IR dT"; + dataset.data[dataset.nData].unit="°F"; + dataset.data[dataset.nData].ul2 = 25.; + dataset.data[dataset.nData].ul1 = 20.; + dataset.data[dataset.nData].ll1 = 15.; + dataset.data[dataset.nData].ll2 = 10.; + dataset.data[dataset.nData].invertLimits = true; + dataset.nData++; + + } + + if (hasMLX){ + dataset.data[dataset.nData].value=objT; + dataset.data[dataset.nData].name="IR Temp"; + dataset.data[dataset.nData].unit="°F"; + dataset.data[dataset.nData].ul2 = 80.; + dataset.data[dataset.nData].ul1 = 75.; + dataset.data[dataset.nData].ll1 = 70.; + dataset.data[dataset.nData].ll2 = 65.; + dataset.data[dataset.nData].invertLimits = false; + dataset.nData++; + + dataset.data[dataset.nData].value=dieT; + dataset.data[dataset.nData].name="MLX Temp"; + dataset.data[dataset.nData].unit="°F"; + dataset.data[dataset.nData].ul2 = 80.; + dataset.data[dataset.nData].ul1 = 75.; + dataset.data[dataset.nData].ll1 = 70.; + dataset.data[dataset.nData].ll2 = 65.; + dataset.data[dataset.nData].invertLimits = false; + dataset.nData++; + + dataset.data[dataset.nData].value=dieT - objT; + dataset.data[dataset.nData].name="IR dT"; + dataset.data[dataset.nData].unit="°F"; + dataset.data[dataset.nData].ul2 = 25.; + dataset.data[dataset.nData].ul1 = 20.; + dataset.data[dataset.nData].ll1 = 15.; + dataset.data[dataset.nData].ll2 = 10.; + dataset.data[dataset.nData].invertLimits = true; + dataset.nData++; + + } +// #endif + // #ifdef TSL + if (hasTSL){ + dataset.data[dataset.nData].value=brightness; + dataset.data[dataset.nData].name="Brightness"; + dataset.data[dataset.nData].unit="lux"; + dataset.data[dataset.nData].ul2 = 100000.; + dataset.data[dataset.nData].ul1 = 10000.; + dataset.data[dataset.nData].ll1 = 1000.; + dataset.data[dataset.nData].ll2 = 100.; + dataset.data[dataset.nData].invertLimits = false; + dataset.nData++; + + } + // #endif + + dataset.data[dataset.nData].value=uptime; + dataset.data[dataset.nData].name="uptime"; + dataset.data[dataset.nData].unit="s"; + dataset.data[dataset.nData].ul2 = 80.; + dataset.data[dataset.nData].ul1 = 75.; + dataset.data[dataset.nData].ll1 = 70.; + dataset.data[dataset.nData].ll2 = 65.; + dataset.data[dataset.nData].invertLimits = false; + dataset.nData++; + + dataset.data[dataset.nData].value=rssi; + dataset.data[dataset.nData].name="RSSI"; + dataset.data[dataset.nData].unit="dBm"; + dataset.data[dataset.nData].ul2 = -20.; + dataset.data[dataset.nData].ul1 = -40.; + dataset.data[dataset.nData].ll1 = -60.; + dataset.data[dataset.nData].ll2 = -70.; + dataset.data[dataset.nData].invertLimits = true; + dataset.nData++; + + + + +} + + + +void udpSendPacket(void); + + + +//////////////////////////////////////////////////////////////////////// +// Webserver handling +//////////////////////////////////////////////////////////////////////// +void handle_root() { + Settings settings; + settings.udpFRQ=udpFRQ; + settings.udpIP=udpIP; + settings.udpPort=udpPort; + esp.http.settings = settings; + + + esp.http.updatePage(dataset, esp.packet); + server.send(200, "text/html", esp.http.page()); +} + +void handle_post(){ + esp.formPacket(dataset); + // server.send(200, "application/json", esp.packet); // send to someones browser when asked + server.send(200, "text/html", ""); // send to someones browser when asked + Serial.println("Sent packet for temp"); + + for (uint8_t i=0; i"); // send to someones browser when asked + Serial.println("Reset requested"); + esp.triggerReset(); +} + +void handle_ledOff(){ + ledOn=false; + server.send(200, "text/html", ""); +} +void handle_ledOn(){ + ledOn=true; + server.send(200, "text/html", ""); +} + + +void handle_spiffs(){ + SPIFFS.begin(); + + File f = SPIFFS.open("/test.html", "r"); + if (!f) { + Serial.println("file open failed"); + } else{ + + // Serial.println(f.readString()); + server.send(200, "text/html", f.readString()); + } +} + + +//////////////////////////////////////////////////////////////////////// +// Setup +//////////////////////////////////////////////////////////////////////// +void setup(void) +{ + Wire.begin(); + Wire.pins(4, 0); + // Start Serial + Serial.begin(115200); + + esp.begin(ssid, password); + // esp.http.begin(); + esp.http.stationName = STR(NAME);//"Development Server"; + esp.http.version = VERSION; + esp.http.begin(); + esp.http.updatePage(dataset, esp.packet); + +#ifdef SSD + display.begin(SSD1306_SWITCHCAPVCC, 0x3D); // initialize with the I2C addr 0x3D (for the 128x64) + display.setTextSize(0); + display.setTextColor(WHITE); + int line = 0; +// delay(2000); + + +#endif + + + server.on("/", handle_root); + + server.on("/data", handle_data); + + server.on("/post", handle_post); + + server.on("/reset", handle_reset); + + server.on("/ledOff", handle_ledOff); + server.on("/ledOn", handle_ledOn); + + server.on("/spiffs", handle_spiffs); + + httpUpdater.setup(&server); + server.begin(); + Serial.println("HTTP server started"); + + // MDNS.addService("http", "tcp", 80); + // if (!MDNS.begin("snazzy")) { + // Serial.println("Error setting up MDNS responder!"); + // while(1) { + // delay(1000); + // } + // } + // Serial.println("mDNS responder started"); + + +#ifdef MCP + if (mcp.begin()) { + Serial.println("Found MCP sensor"); + hasMCP=true; + } +#endif + +#ifdef HTU + if (htu.begin()) { + Serial.println("Found HTU sensor"); + hasHTU=true; + } +#endif + +#ifdef BMP + if (bmp.begin()) { + Serial.println("Found BMP sensor"); + hasBMP=true; + } +#endif + +#ifdef TMP + if (tmp.begin()) { + Serial.println("Found TMP sensor"); + hasTMP=true; + } +#endif + +#ifdef MLX + Serial.println("MLX sensor requested"); + mlx.begin(); + hasMLX=true; +#endif + +#ifdef SI + Serial.println("SI requested"); + if (si.begin()) { + Serial.println("Found SI sensor"); + hasSI=true; + } + hasSI=true; +#endif + +#ifdef TSL + if (tsl.begin()) { + Serial.println("Found TSL sensor"); + configureSensor(TSL2591_GAIN_LOW, TSL2591_INTEGRATIONTIME_100MS); + hasTSL=true; + } +#endif + +#ifdef INA + Serial.println("INA sensor requested"); + ina219.begin(); + hasINA=true; +#endif + +#ifdef MPL + if (mpl.begin()) { + Serial.println("Found MPL sensor"); + hasMPL=true; + } +#endif + +#ifdef LED + alpha4.begin(0x70); // pass in the address +#endif + + Serial.println("Finished uploading sensors"); + // + + // Hostname defaults to esp8266-[ChipID] + ArduinoOTA.setHostname("snazz-face"); + + ArduinoOTA.setPassword((const char *)"insecure"); + + ArduinoOTA.onStart([]() { + Serial.println("Start"); + }); + ArduinoOTA.onEnd([]() { + Serial.println("\nEnd"); + }); + ArduinoOTA.onProgress([](unsigned int progress, unsigned int total) { + Serial.printf("Progress: %u%%\r", (progress / (total / 100))); + }); + ArduinoOTA.onError([](ota_error_t error) { + Serial.printf("Error[%u]: ", error); + if (error == OTA_AUTH_ERROR) Serial.println("Auth Failed"); + else if (error == OTA_BEGIN_ERROR) Serial.println("Begin Failed"); + else if (error == OTA_CONNECT_ERROR) Serial.println("Connect Failed"); + else if (error == OTA_RECEIVE_ERROR) Serial.println("Receive Failed"); + else if (error == OTA_END_ERROR) Serial.println("End Failed"); + }); + ArduinoOTA.begin(); + Serial.println("Ready"); + Serial.print("IP address: "); + Serial.println(WiFi.localIP()); + + // String str = ""; + // Dir dir = SPIFFS.openDir("/"); + // while (dir.next()) { + // str += dir.fileName(); + // str += " / "; + // str += dir.fileSize(); + // str += "\r\n"; + // } + // Serial.print(str); +} + + +void udpSendPacket(void){ + if (millis() - tLast > int(1000*udpFRQ)){ + Udp.beginPacket(udpIP.c_str(),udpPort); + esp.formPacket(dataset); + Udp.print(esp.packet); + // Serial.println(esp.packet); + tLast=millis(); + Udp.endPacket(); + if (ledOn) { + esp.triggerActivityLED(); + } +#ifdef SSD + display.clearDisplay(); + display.setCursor(0,0); + display.print(esp.http.stationName); + display.setCursor(0,8); + display.print("Version: "); + display.print(VERSION); + display.setCursor(0,16); + display.print("RSSI: "); + display.print(rssi); + display.setCursor(0,24); + display.print("IP: "); + display.print(esp.stationIP); + + for (int i=0; i < dataset.nData; i++){ + display.setCursor(0,32+8*i); + display.print(dataset.data[i].name + " = "); + display.print(dataset.data[i].value); + // display.print(dataset.data[i].unit); + + } + + display.display(); + // display.setTextSize(1); + // display.setTextColor(WHITE); + // display.setCursor(0,0); + // display.println("Hello, world!"); + // display.setTextColor(BLACK, WHITE); // 'inverted' text + // display.println(3.141592); + // display.setTextSize(2); + // display.setTextColor(WHITE); + // display.print("0x"); display.println(0xDEADBEEF, HEX); + // display.display(); + // delay(2000); +#endif + + } +} + + + +float toggleTime=millis(); +float lastTime = toggleTime; +int count=0, toggle=0; +void loop() +{ + ArduinoOTA.handle(); + server.handleClient(); + readSensors(); + udpSendPacket(); + + +#ifdef LED + count++; + if(millis() - toggleTime > 2*1000){ + toggleTime=millis(); + toggle++; + } + if(millis() - lastTime > 250){ + lastTime = millis(); + if(toggle % 2 == 0){ + alpha4.setBrightness(15); + write4Digit(alpha4,dataset.data[0].value); + } else{ + alpha4.setBrightness(3); + write4Digit(alpha4,dataset.data[3].value); + } + } +#endif + +} + +#ifdef LED + + static const uint16_t alphafonttable[] PROGMEM = { + + 0b0000000000000001, + 0b0000000000000010, + 0b0000000000000100, + 0b0000000000001000, + 0b0000000000010000, + 0b0000000000100000, + 0b0000000001000000, + 0b0000000010000000, + 0b0000000100000000, + 0b0000001000000000, + 0b0000010000000000, + 0b0000100000000000, + 0b0001000000000000, + 0b0010000000000000, + 0b0100000000000000, + 0b1000000000000000, + 0b0000000000000000, + 0b0000000000000000, + 0b0000000000000000, + 0b0000000000000000, + 0b0000000000000000, + 0b0000000000000000, + 0b0000000000000000, + 0b0000000000000000, + 0b0001001011001001, + 0b0001010111000000, + 0b0001001011111001, + 0b0000000011100011, + 0b0000010100110000, + 0b0001001011001000, + 0b0011101000000000, + 0b0001011100000000, + 0b0000000000000000, // + 0b0000000000000110, // ! + 0b0000001000100000, // " + 0b0001001011001110, // # + 0b0001001011101101, // $ + 0b0000110000100100, // % + 0b0010001101011101, // & + 0b0000010000000000, // ' + 0b0010010000000000, // ( + 0b0000100100000000, // ) + 0b0011111111000000, // * + 0b0001001011000000, // + + 0b0000100000000000, // , + 0b0000000011000000, // - + 0b0000000000000000, // . + 0b0000110000000000, // / + 0b0000110000111111, // 0 + 0b0000000000000110, // 1 + 0b0000000011011011, // 2 + 0b0000000010001111, // 3 + 0b0000000011100110, // 4 + 0b0010000001101001, // 5 + 0b0000000011111101, // 6 + 0b0000000000000111, // 7 + 0b0000000011111111, // 8 + 0b0000000011101111, // 9 + 0b0001001000000000, // : + 0b0000101000000000, // ; + 0b0010010000000000, // < + 0b0000000011001000, // = + 0b0000100100000000, // > + 0b0001000010000011, // ? + 0b0000001010111011, // @ + 0b0000000011110111, // A + 0b0001001010001111, // B + 0b0000000000111001, // C + 0b0001001000001111, // D + 0b0000000011111001, // E + 0b0000000001110001, // F + 0b0000000010111101, // G + 0b0000000011110110, // H + 0b0001001000000000, // I + 0b0000000000011110, // J + 0b0010010001110000, // K + 0b0000000000111000, // L + 0b0000010100110110, // M + 0b0010000100110110, // N + 0b0000000000111111, // O + 0b0000000011110011, // P + 0b0010000000111111, // Q + 0b0010000011110011, // R + 0b0000000011101101, // S + 0b0001001000000001, // T + 0b0000000000111110, // U + 0b0000110000110000, // V + 0b0010100000110110, // W + 0b0010110100000000, // X + 0b0001010100000000, // Y + 0b0000110000001001, // Z + 0b0000000000111001, // [ + 0b0010000100000000, // + 0b0000000000001111, // ] + 0b0000110000000011, // ^ + 0b0000000000001000, // _ + 0b0000000100000000, // ` + 0b0001000001011000, // a + 0b0010000001111000, // b + 0b0000000011011000, // c + 0b0000100010001110, // d + 0b0000100001011000, // e + 0b0000000001110001, // f + 0b0000010010001110, // g + 0b0001000001110000, // h + 0b0001000000000000, // i + 0b0000000000001110, // j + 0b0011011000000000, // k + 0b0000000000110000, // l + 0b0001000011010100, // m + 0b0001000001010000, // n + 0b0000000011011100, // o + 0b0000000101110000, // p + 0b0000010010000110, // q + 0b0000000001010000, // r + 0b0010000010001000, // s + 0b0000000001111000, // t + 0b0000000000011100, // u + 0b0010000000000100, // v + 0b0010100000010100, // w + 0b0010100011000000, // x + 0b0010000000001100, // y + 0b0000100001001000, // z + 0b0000100101001001, // { + 0b0001001000000000, // | + 0b0010010010001001, // } + 0b0000010100100000, // ~ + 0b0011111111111111, + + }; + void write4Digit(Adafruit_AlphaNum4 alpha, float num){ + int digit,indx; + int lognumIndx = int(log10(num)); + + + + for (indx=3; indx>=0; indx--){ + int digit = int(num * pow(10.0,-lognumIndx+indx)) % 10; + char buff[1]; + itoa(digit,buff,10); + // Serial.print(indx); + // Serial.print( buff[0]); + // Serial.println(); + alpha.writeDigitAscii(indx,buff[0]); + if (indx == lognumIndx) { + alpha.writeDigitRaw(indx,0x4000+pgm_read_word(alphafonttable+buff[0])); + } + } + // Serial.println(); + alpha4.clear(); + alpha.writeDisplay(); + + + } +#endif + + +#ifdef TSL +void configureSensor(tsl2591Gain_t gainSetting, tsl2591IntegrationTime_t timeSetting) +{ + // You can change the gain on the fly, to adapt to brighter/dimmer light situations + tsl.setGain(gainSetting); + //tsl.setGain(TSL2591_GAIN_LOW); // 1x gain (bright light) + //tsl.setGain(TSL2591_GAIN_MED); // 25x gain + //tsl.setGain(TSL2591_GAIN_HIGH); // 428x gain + + // Changing the integration time gives you a longer time over which to sense light + // longer timelines are slower, but are good in very low light situtations! + tsl.setTiming(timeSetting); + //tsl.setTiming(TSL2591_INTEGRATIONTIME_100MS); // shortest integration time (bright light) + //tsl.setTiming(TSL2591_INTEGRATIONTIME_200MS); + //tsl.setTiming(TSL2591_INTEGRATIONTIME_300MS); + //tsl.setTiming(TSL2591_INTEGRATIONTIME_400MS); + //tsl.setTiming(TSL2591_INTEGRATIONTIME_500MS); + //tsl.setTiming(TSL2591_INTEGRATIONTIME_600MS); // longest integration time (dim light) + + /* Display the gain and integration time for reference sake */ + // XBee.println("------------------------------------"); + // XBee.print ("Gain: "); + tsl2591Gain_t gain = tsl.getGain(); + // switch(gain) + // { + // case TSL2591_GAIN_LOW: + // XBee.println("1x (Low)"); + // break; + // case TSL2591_GAIN_MED: + // XBee.println("25x (Medium)"); + // break; + // case TSL2591_GAIN_HIGH: + // XBee.println("428x (High)"); + // break; + // case TSL2591_GAIN_MAX: + // XBee.println("9876x (Max)"); + // break; + // } + // XBee.print ("Timing: "); + // XBee.print((tsl.getTiming() + 1) * 100, DEC); + // XBee.println(" ms"); + // XBee.println("------------------------------------"); + // XBee.println(""); +} + +float advancedLightSensorRead(void) +{ + // More advanced data read example. Read 32 bits with top 16 bits IR, bottom 16 bits full spectrum + // That way you can do whatever math and comparisons you want! + uint32_t lum = tsl.getFullLuminosity(); + uint16_t ir, full; + float lux; + lum = tsl.getFullLuminosity(); // first reading will be incorrect of Gain or Time was changed + ir = lum >> 16; + full = lum & 0xFFFF; + lux = tsl.calculateLux(full, ir); +// XBee.println(); +// XBee.print(F("Lux ")); +// XBee.println(lux); + + if (full < 100){ + switch (tsl.getGain()) + { + case TSL2591_GAIN_LOW : + configureSensor(TSL2591_GAIN_MED, TSL2591_INTEGRATIONTIME_200MS); + // XBee.print(F("Gain raised to MED")); + break; + case TSL2591_GAIN_MED : + configureSensor(TSL2591_GAIN_HIGH, TSL2591_INTEGRATIONTIME_200MS); + // XBee.print(F("Gain raised to HIGH")); + break; + /* case TSL2591_GAIN_HIGH : + configureSensor(TSL2591_GAIN_MAX, TSL2591_INTEGRATIONTIME_200MS); + XBee.print("Gain raised to MAX"); + break; + case TSL2591_GAIN_MAX : + XBee.print("Gain already at MAX"); + break; + */ + default: + configureSensor(TSL2591_GAIN_MED, TSL2591_INTEGRATIONTIME_200MS); + break; + } + + } + + if (full > 30000){ + switch (tsl.getGain()) + { + case TSL2591_GAIN_LOW : + // XBee.print(F("Gain already at LOW")); + break; + case TSL2591_GAIN_MED : + configureSensor(TSL2591_GAIN_LOW, TSL2591_INTEGRATIONTIME_200MS); + // XBee.print(F("Gain lowered to LOW")); + break; + /* case TSL2591_GAIN_HIGH : + configureSensor(TSL2591_GAIN_MED, TSL2591_INTEGRATIONTIME_200MS); + XBee.print("Gain lowered to MED"); + break; + case TSL2591_GAIN_MAX : + configureSensor(TSL2591_GAIN_HIGH, TSL2591_INTEGRATIONTIME_200MS); + XBee.print("Gain lowered to MED"); + break; + */ + default: + configureSensor(TSL2591_GAIN_MED, TSL2591_INTEGRATIONTIME_200MS); + break; + } + + } + return lux; + +} +#endif diff --git a/esp8266/platformio.ini b/esp8266/platformio.ini new file mode 100644 index 0000000..a24bbc8 --- /dev/null +++ b/esp8266/platformio.ini @@ -0,0 +1,29 @@ +# +# Project Configuration File +# +# A detailed documentation with the EXAMPLES is located here: +# http://docs.platformio.org/en/latest/projectconf.html +# + +# A sign `#` at the beginning of the line indicates a comment +# Comment lines are ignored. + +# Simple and base environment +# [env:mybaseenv] +# platform = %INSTALLED_PLATFORM_NAME_HERE% +# framework = +# board = +# +# Automatic targets - enable auto-uploading +# targets = upload + +[env:dev] +platform = espressif +framework = arduino +board = nodemcu +; upload_port = IPADDRESS +; upload_flags = --auth=PASSWORD +targets = upload +upload_speed = 921600 +build_flags = -DNAME="Weather Station" -DMCP -DHTU -DINA -DSI -DMLX -DTSL +src_filter = "+" diff --git a/esp8266/weatherCalcs.cpp b/esp8266/weatherCalcs.cpp new file mode 100644 index 0000000..296ea41 --- /dev/null +++ b/esp8266/weatherCalcs.cpp @@ -0,0 +1,81 @@ +#include "weatherCalcs.h" +//#include + +float heatIndex(float T, float R){ + float c1,c2,c3,c4,c5,c6,c7,c8,c9; + + + float HI = 0.5 * (T + 61.0 + ((T-68.0)*1.2) + (R*0.094)); + + if (HI > 80.0){ + c1 = -42.379; + c2=2.04901523; + c3=10.144333127; + c4=-0.22475541; + c5=-6.83783e-3; + c6=-5.481717e-2; + c7=1.22874e-3; + c8=8.5282e-4; + c9=-1.99e-6; + float T2 = T*T; + float R2 = R*R; + HI = c1 + c2 * T + c3*R + c4 * T * R + c5 * T2 + + c6 * R2 + c7 * T2 * R + c8 * T * R2 + c9 * T2 * R2; + } + + + return HI; +} + + +float dewPoint(float farenheight, float humidity) +{ + // (1) Saturation Vapor Pressure = ESGG(T) + float celsius = (farenheight - 32.0)/1.8; + float RATIO = 373.15 / (273.15 + celsius); + float RHS = -7.90298 * (RATIO - 1); + RHS += 5.02808 * log10(RATIO); + RHS += -1.3816e-7 * (pow(10, (11.344 * (1 - 1/RATIO ))) - 1) ; + RHS += 8.1328e-3 * (pow(10, (-3.49149 * (RATIO - 1))) - 1) ; + RHS += log10(1013.246); + + // factor -3 is to adjust units - Vapor Pressure SVP * humidity + float VP = pow(10, RHS - 3) * humidity; + + // (2) DEWPOINT = F(Vapor Pressure) + float T = log(VP/0.61078); // temp var + return (241.88 * T) / (17.558 - T) * 1.8 + 32.0; +} + +float meanSeaLevelPressure(float P, float T, float h){ + float TK = (T - 32.)* 5./9. + 273.15; + float r1 = 1. - 0.0065 * h / ( TK + 0.0065 * h); + float r2 = P * pow(r1,-5.257); // P inHG to hPa + + return r2; +} + + + +const int Ndirections=8; +float voltFracByDir[Ndirections]={ + 0.77, 0.46, 0.09, 0.18, 0.29, 0.62, 0.92, 0.87}; +float windDirArray[Ndirections]={ + 0, 45, 90, 135, 180, 225, 270, 315}; + + + +float windDirByVoltageFraction( float inputVoltageFraction) +{ + float Vdiffmin=1.0; + float windDir; + for (int i=0; i Vdiff){ + Vdiffmin = Vdiff; + windDir = windDirArray[i]; + } + } + return windDir; + +} diff --git a/esp8266/weatherCalcs.h b/esp8266/weatherCalcs.h new file mode 100644 index 0000000..bfce9aa --- /dev/null +++ b/esp8266/weatherCalcs.h @@ -0,0 +1,5 @@ +#include + +float heatIndex(float T, float R); +float dewPoint(float farenheight, float humidity); +float meanSeaLevelPressure(float P, float T, float h); diff --git a/screenshots/FlaskWXServer.png b/screenshots/FlaskWXServer.png new file mode 100644 index 0000000000000000000000000000000000000000..ad32f1ebd40f5594a2bb10854dcb779d622fc493 GIT binary patch literal 104455 zcmeFYcQ~9~*FKC8L6oS`g&@&;uMxfXPDHPxjWz}$A_yWOdhd+hM-9XM<<5O;^E|#K_zi@ex~ru#X%a{WXTPw9a!&6lnsI2N53)vmbq2xbj^Cd+T}w%N@J| z5Ov##luK{*b4rxN`CqH6ub<+gJj)u3t&@W;40Dt%>|mgv3Iw6j2T`hj#GbCK6Tp0q z^ti1DgI+tRR)rC^y}cQ^yVK7>97WNipcsCgnP-k5c(ulwyH5B_jE4fH0l#mAjEwp= zQvFNfvoCRU;j96bcYxN@$dWI9Fip*)xkap|l?zOLvUXcWrO|Xn*`zzrnvaZ@IR#x_YO% z`r7~c?!@hSne^4C%Lz=*-ONWH`RZ<_Xm^wNF~gFmT?^~;rfBg_FViMC@jh~UU39*G zAwDhnGh|v2*~$GKPbBau?dADgyB!fyl8W30L?9VwXCFYYJiQSF&UyUvw!%C!tB+Rg zQHA$aXXU%-Z-GKAGs8atlr0Yetv>Bb4+q44z&w9Sh!7M+y9Jn!p`LXIdbmpT_Vnm4 zue8(dxsFPR8J*MF2#s9m845H4&zhyZ&ZDS^<{0LYMdtmRS5%MQ+fXHshf^RT--54eB!{p0j%VBRHmFa^GYSY6Xf~JLda$=$|nnq;TyX zJa~f*2@-cjr3peolX~XUa0(pC)p1VbNPeh{oZTO)akaYUpTZY3Y_ zOgENE!8TWt2QTRz+baS3rq7+dh8u*(l-QviS?@KJURcKAusn+Y*e|D>&5?bjsa+^L z$wU!lBORH=KdNUZCPI<+jzhLS3y@VXro3}#Wx&J1W5^@JqhF;_#aBgNMOu|&HDNVi z)wIF4fwob+p|>HiakSC6fxFSN@pVIaqv@&9Cjz+#mN8fzR9$gz=D0f(Z4-fPqyv$< z-{;;usFbf@oKc?P{>l1N0E0U8MJP?EsO)1|JXs=H$u6P@ppuf3w34%ue!pEmRsTs` zNF3*jHtjKOMXe-_ON~6Ocx|Azsx~-_sem*SmUWh?mdTNQkei-+`&vegK_N#zq(Cw2 zWx;M%QqF8{UO{|TZ8mP!P`+~(bpcpDET1TsH}fP*xuB$gGS@gaY~o}LK1Q??GbT8S zKf%eJ`Skr$m8Zc^tDbUjsc=EK#<}}>MR;gz*le4>Hw1;Oqq{K)(Q}YZzXQFWw^(~K zZgFfa(lt5EH&oL#*bN!_Igr}tAM5+gH!L)zD~K_XF=LZuz(WtcuJ-ACUy`#NE|7Cri!PA#}MrrtraaDt)42R<~&R{{AxHQ^{{cL zk*^W05xddF4ZLEr0b6BqPjJO|EB{q-^7Q1#ugPPTUq6qrk3@duADL}{hr?F2w@%hs zHz-$(SGU*dSJc-4n}IA+9GPqcbQ)}2EES9|p6@*OdG)J!Mf91?Gomc?EWIq-j<^n^ zjwcIVk128|CT1IC8syEy32B+gis>|~`KtxLdL>V< zm#w=N|6Fa{gh%zbc!TU^z)Sri|02zzjB)Jo*SimQeaS`0wUhXg%#!#GH4THE8h?JG z%1g~MDPG`j)b-`|HNRxJ?7=?8CdFnZen@;q98b(ZGEcJ1dc^AcQuoEsOWqg8thTH% zMRdBJx>~wdI(51vx;eU{I&H;@g%~BZg)Q1-TIad|4fDyBsdmRn2R1u*M?ZU*9f#eK z-D>S#jhW+#J*97%FbBv2Vnfh4jdF{R)oX(rAl#V550knzXx9o7aJ zCK{zy`q;dDL+;=^g>8^zkXGsE!fr)v0bYD)ZRxD-ast!q7U=Vuj9wa^DC;^%X(wS#GoJ6R^ zA(-DE$3NkQ?;87h>C*8c<0z0elSG5~*Gmn~3N}~%UZFw}JJuPNhL=7WJFlCcz9L;C z87ERAqo5KY?k4vVa$+%I6Jzjy_KJVa>4#FTp_L^uG4REn5#IxQ4-ZZ`p)H@m5`&?c zdCjOTczgij2*X@#`C#9AvqoD z`C~`nM00R#CFgu1cLIA{AX=CjuDY!t`K8roVaLbup{|@&_X1We(G>F&<_GF(sb55O z{q}70)wj~vb|Kji+S&I%MGLIe5>l5&js}u?bq7oPWi~^%#QUfF0UVj^3NH-AEZy>( zJ~weyyRJjFXOHMFv-jSrxTzey3is`+)w&&T9;dZNwXWWTZj!Oiu&U`g-N%=jzP)~} zzK4#j?%^alOstH*c)yGY!dfgp)dOpDc6E9xUf_S=&){gOw{E6wH}R_4`DD~L?_}F} z#@OB1qLjPzaDHK)#$>e3wbV4b<&6H|EsW9i<<@xEfLQ`9FcJ9Jlf}Ev{7Hk>nCx== zEH1FeyW9k~0qQ!mIj0k2KO$9b1egZ)!BxRx;7!4&fQ_Xe3o31mfvl@An?Rqtg8AEe zGE6bdEzC4b+Ye43m_7`B=#hIY|4<$%2Z*x&gorAMK3~vm^+1%ZEgpcd&!Gpb3x~-X zsXOU9$<1d{o6?7ISCd2brMvU^2-@hu#KDEM+SD|^jbA%QsmO&6%Z#4Gbb<_sL=+e* z8n{7zY`Eo-ye-Q)V?NnJ?Ca|$?Y7#@dZT}CHs6wN{+unqp9rzlqjhE6UoSggGO)ee z*9r##E^fbL*5fPFc1j)u^k1kT8`mO#C9s;;wk;XEnHd^InJk(QnAsWv<~}b!ovB&! zKVsjQKhWFq{&qMt-#?!tswO(nPsdV=G%r7wc#=nlXs*N@}=Eq$%Nzhlk#0**# zM^zLJD2mh_3d-ZDL-C_Piqx9RpxEK)&(BYv=wY2peWV-f)tv;LQq3wK>nE~fKhL9! zCkOJW;_jm_N`z2Z3YEp~V&L$W@Ebn_arWqQ(6|t#6D&EkGTlnNTrZQf%&eTgJPdpAXaIya zOEh0FThfZl&S!on->qD+e%HEM;6yIcVSuOPE&OeY);vp-#~C|b0##G0Un&^*FgF@YfO|>umEx`7tJsHRuwx{W79&d>TS^K2_67t=NGtO83W?8pr52q?I84zpo zuMZC54a4Cb(IYiwJK#)W0h`w8p_b&9t`&VN;f4UqBg;nY?IgULj_fDqd{uDNOSDop zF*43BA`3XDOb&J$7KMSx3iidMs7=vCPs`rK!i{7)M@2%pX`Pcz`hW` zf8pnObdb`QS5%LmV7oNboN>u@;&wGLx!uQUX%5nN&?A~2oOXksQ0k_bEnl>;18V)5 zU6h^6_f2M_ZnCZ|Z4a+Ta=}A4H-WpHK^H-(vWrsYbWN|8!pOUawfr-)bH3%f6^N@% zOSk<{h~c$VvU0ICw92uZ-u$@2wz;<+&{y3l-#PMaQ|p?#i3fo3 z9>~eCFvN}FuLHk&=W`C`4~4P&vCWt6l@2&ZIN|IM&yWdih;E5&3fV%f8fZL}f$BoU z>rYn6S4l$D&m=`w3GljVAY)Ft=)@;5rTU zZEBE$mFgEYn7W%1LXr^7_l$khK*?|X=;Bi%(GzAFH4H1lDzU0G_4zG>jpR+kjd?Pk zG%QvX@f33%{RKlFgR2UsO8-*A;_RZWqSzAtvJ;5pf`)5Zsax)@^~pKuoL;Oz8qV;( z1=$2=yqOEUVNBR<(|3CNfOeWoe6S^WdK2mCV(>*y+U{;_p78;7$XA&R`HGxuOS$z{ z@9_h@<)(nUu^-czA76Icw}uh&Vps3QoNlSm7)w+J?(qcfB%OQQk^M-B#lb2cH{WL0 zYqdAs^A)YS{JZ*kk-+EEo@x@Z8ZSZa=KwnwV2%%8zp4t3|Bi25}( zEP6}&omB-u50!5PZvuzz3JMiZQD%W(ZYO3KBb-@W98@Xjof#LO-f-lw4QCXk`bLoS z<@eKcYYzElIDQQa(T^NS%6LJ*>7%pr(KYyy=A`MMj)`HgIw5N#V=Wz6KL2a(t)_1v zhKH;@fmAY1S0sW;V?72CK?F}ZpudDS`rzW0aE4w1BNA@RgJd_T3W|_aUGNW4E*vX z6aCR7xfx>VU!DLv?sDNT2UOD78lApR3<@Wv-Yfuo9WNa*mWO|)$&zXk^Tt)gAAiG2 zP}b|!E!MHugHI<;i@{J4$cSSl5;%sSJ3@|(6q=x<(h<9kqZ&o@?OuE zz!LMRMw=N+m?LnpY~<*}fNG4f#LbWSFif?_-|%X2&tp_#IHJI9A&mn8>T9iA@4Is0 z50;BQ@Aigq^Hx?@#=PBrOWPwB9zY>Xd&G9_I}=%vu!=KQPH0YRJ{YK7J9$=T>l=4U zcjxu7 z<{#*F3vf+yQCG2oW^GZ5-=h-Hl~NO#YtFZ7VTv)AG+7puWz2%!MB zF|)2`-LJz{{0Ohw|Qm2 zOak#RG5(9F7sx`ZqG9b5E&cI|vA7BMao9xo7;p?euFkzeu17xM`ZyP;9A%#@oQN?r z-s|w=>K%KGX(%|BAx1mxgj)YuJ?Xi8I-wcEl5?v-0033*o#A)1XOtFxtA?>!<91u5 z#>9Xxk7DBz7QRv>aC|#T(2dRcV*I5oPov1^^-GOe!>(6T216Q)3Y{twas#UK=FEEM zxn`jO1>a3OWpfUh479y?-8^t{Se0o@p2O)=)aLD*a4~J<*_kD`sS;eK$qssD2x-*P zcg@l+7||kQY61Dn3MllWbT4>)Sl)~C3H`J|mwC?Z!1qB?K-@)mNi2&uoL89DdRt+1 zte{6_qTKpXs*neEI{8<`5#O_I-*n^K>m-@bNZB82Y2&HxV-bDDxfDfnn^$ul>8d6} z<;KJHvbBz;*{#>m>LyksORM~@i1qUL(CuyVyVGZD9|sbTsB1x0L~rqb{E=p_h?TySs|Hy zj#z{T`bx`ruIo*IMf=m3oX%Qqa-NpAY8Ikadx`r7JH+vWhul1qQ~sWf%T^_6<2O~k8<@It z-A~uEe!PR|p47Qi+NSIU;>8<065q!lmzB$weJp1GEC1;mMl`esDIrTljIXj^0p45E zn=s7hXmVf7+;)l`^$uJfMy;O9aVfz+G zU!gyc4fmySxk6cXu?vJBf*jWvvzz)P7Ffc+8|;U?&0CF5W#w3Wr7sBjP)4@!tC?}B zO`JX%&{eHNGMmi9aF{R{pu1--QAI zUVJ&vdy{ZG`242p-Ld4=x-`1N16wJE9n|yhjup6LQXQZ1Ht@QnLp3n@FiJaiEF!oB z4JaTO0uRDg#$5qEPyErOqq*d)=$T@La>urz_Iu3E zgj*fX_;y*tM`KXaNDEK9NZT~)TdqsqlRW#p`0V}siR>ojL#4ZS&yr$498sx}2zC+w z`1IE0&6usBjrdT0dtG~aXI5WjhvCR(yK491fXv3`YTEk1x*&rtay@u9cXoun`GvbC zpXT6eD&||cZ0+O3xR9E{$Inl6>XgegB#gc*YHBMQkQW5&%9dD6?(#M8<<*?lm;$qb zCkPJs2*po|BTD0>A1Saz+!RjZFNWa;#xt*Hzs*O@0YtDx8b!7nKQ%pDsKsaWH9?s4 zDEks&l}cpXSlz5YcoSF9;O}DWTOWbvl^-IEtFE75t6a+IA*{{qT ztoNRT-8wR=+WTecfL;3uTr6Yo9cJt>R;zkcA$84 zJ-c1Yi8N~gcizG_O)tarGrC%7%&3=Fu1U|qHu?eO8wt0X0q#|IY_tTS94NhHNF+QM zB@+i_W?*@FxpaPcxrCX7as*|E`Sy0{cEm{LfmGK5Cq=2`tz;|c4zonfGywhpZh?Y= znqjYF;Ax<$B4P<}=CH5=ytU@=ady40Sfikb`H0+KI$L{M(D^t!xp;{9h|~Xhhsgc) zAI+TfbbsFB=_pQbpsGP918}#dyZT|6y(*j+pr{_5o4{k*pJuynU~^|S}L z(EZV`#ajT-Q=Fdu4?} zoeW;vJ6pSW+}n`g<`xhX`%~c`qW_ruP1W!>RW5$s-&KDT{YzDh^A8t(bLlU<{%pMm zOafbs^KbAauo?9g%1}_GP!wNF>-eDlT*UI9?7F!-@~&!p@H{pAJ@V1{%SXX4vV&J} zm-HNKYt5#vv`Yd@O6y@TJ!9iZJ>%M1L}3J}4l%)J87UXxO>A2sB6mPlUtlZfdCHLV zmm8+%Dbw{apAQ4tmXi(#J#6X^n0ZfdQ#{8u8L{6wPC#p;X+%k1<2}dKTk+ZA2Et(> zUXMtt-i=R~ok^|R#aI?@yhViRVU^0{iA+8~MJJF#`Sa_Y93z3I7NO2h1xDCi@L-N+ zIN$dUgWDRJ345Wrf%LkLF`6EYzOF^ui@R(Md$qlHC}@x9?yJ|2=tg_dJ17l(U*P?_ z;m_8;zN8ok9|dg0^6!PVouyAQ)m~hdAQhd1jTTeSib?e2$<_@RRjb8T;rK&U$2t_h zjmD4kBbP-O9l#P9ncl6Rp3z_dk8B=kt2%~XiBH}3hoM7DrihYAi}ov0DF;tdl4ih z^N8!X@L3%EhNiWx0h1gHa_;W_AO>aMT3x;UFXyLeU*$>s7tp#H2%emN;=KjkY}DtM z<3g65qRfNtM;P@#j_?WAYl9dce47)A=Msr*3Y0ZLx=$MGf~Gs2XVweWwN zP$q)YUIw_LBkXQQEj_3w!%N7QU86~K!mReBc+Y{Vn6WAf@ZzwdD z(QGy}Ki^djF}UnCMX9B>O}($_3{RsNAgM_ZXMdL?9-Z|ivRv}L61Wiaw@HsuX#XUJ z?c#BF?&oUwSwsQVoDzNhn>1<2#(($he!d}d|IM=si;dWqwiP)E6uHIE{E5yB8RoM3 zYPjy<*IxZIY}XF(-;c`V2^amxrqnv&Js|52F(UEZ=Vack0#o7T--*V|&OZMY>1%NO zEG^pKVl_z0lJE~hm+D?{&Q>R8_4a$Uxz&wYY3BnK(3D)so}(LNE?+qPKDM?Dy!Sr+ z4N8!dIL>{1q`#x22Q8Z~V6F1M_xg37*%B;Rgt zd?s6LeJiCZ_+%g&W>sFdZ(!(~N98PVLpK8I}o$r{SnSZ}&J3+ZTZB3{@gjq1vXf|fmC0q$9PfF*s-^HLFQBvsR6G2I(z zdN!}csI)G z;Xt5JstcZvuU4UPZ!JsPac|pBEilV;WbXZWCu?8ZUu`l5Kclzn@w)mx5}5sc|K{pu zR2w*)%gc9?*JgK%B>~#gv(uVNk>a{D*8zmmTmHR7QPGoI+xuvJbu?ZixOpDjD#hGd zq`#f}aZ$7d?>*>@aF|{?H0WAQ&lV_A*x z!aC2!eOe_k@ASRvbG+b)u)EwtOQQjY@b_`gplf?CDg0M`_kIm6$J3DNfiG1-B10r< zw%>{Xnx%Wj^Ii~0Gc`0uU{l=K*32!5RN^SqB%f=zLu_+v>xBSE*;Q3ZlwU2Nyk>{3 zF~SrZA7Ao20x0UN3<3%nC#1A%E|oD}-FV!Mon_O9)*hCN9zb<40%?it6=We?%>Y%j(MHEWy)3g+O0SlPFCB?1h1lPR`$^%#BXHb`= znzCRMYR+L@X)m|NRC=THF~s@p>$Iw~9iIWUJy`c3EB9)6i19Z#;O?SBwDt!!P1o+1 zjD?a_8Iggj{#5XrmZjTuSX;Qjj$VrB<< z@3Me99X3GsT;r9)hMg*$Jg-5FwS9GQ0iNZ9ln$K0hvfPuUAe4=`N2!llxTqQ0bYud z-m^{Wjpie%jfR0&Lyr-S$0BLGg^^-I@ukj@HoKc60vGP3^8j?;*h3`BKnZC9h zFQ2jI&W|JKCZ93owRK0ak1b_qL07A8Q9m%L>z>@64AjByt1ZiiMz(adj?OJ%ytRHX zo?5%u!jHWQ*84`e>ZFKKVZ|hD-U$H`GV`U%g>7k3)4=5@cgTfO*%KoEhA4z@Y(d&` zK)z&PP4@~DN21{lTxhi&O8y@HF*(3ovQDqlkNPmkoD>OG5Q;f86fvw;SkH3uG z_uCy4902QmYTUw0%lMKP6}HazoPXB&Fe6M>OPAKb1^TfTK@-?mMj@#IlTSOwvzvvQ zAP#ji^#jhMLB-CEr<;2L!O%tzKzkr0fZ(;cUHcbz*59*4Y7n{6Dw6ZyD`MVq>!V9v z`b(SrY%_7CKqzxhqkQ0xp6+7R>7_kV;A6ZVFcRelY) z=?stslmeSPfD!hQ$OT0G@v%!Nxec?fx1>)VlyPIXL_e^+OJ2RG`{2jE!C0?Hxft)$ zehNmb8zCyiz4g2J8mK`Ny!J9_L>*{ZCY)M_Pf8pN56r`ql)mWJE*>s;#Sd!0{1mT%>} z7hGez6A?K^J#lvXgMx^8{WcAo+)IBh=~PgZW$>oZ^l8W^gA-rZv|YjUSf?WxC}1s= z;*H$?P&&W4F>m(dehm&^mTK#l9y484+P%`I!=^$1Z$BJ*k^wbuy7YwSPDiaJ&;11$ zpVwSKeF+_fAxq5AC3cZ+UE5fxv`Do?7#Jeo`(Wis-mH1 z@Xb4roTKGiVtzmw&q09BHiD{T%;=4pk)`P|-?lgYPD@%WQ&6=6HO*bTU;SZb@Gnx4 za`WJ5h`$Ve3v}TzyvgJ12k)cd5(2In`aj8*s;2m z3jX=zd_b3)Q(cB^%fO8Lp0^pfRr~^4%aO)6nJSt&edzycK-D+LQex^o?VY6Qg6*f_ zkC!GmLxz!=FI;L|0zD%{gz(nuq841Z`pf0cTHvqvxTvpkuqQ z?QUn!@^r~O4q_wcYi;1zGGgvpEX{4Akx9LvHRV!pXkk_|B`z<=zgB2VPA3nYcX#PfI4hRas{;1sOpmG|YPpWk^bYqi|o8ab{++D7tN zeCwPaG~#C;vLo~eICm)J`yQmXrQBA_Zd@(D4cyBmJrZWA3C1g1G^(k6eN<|k%!!b_ zy3N#X=`?i*I&nHuDLJ*-Uo8SS_}4X6-gKG(Fx<4R&h^LYySC!BOSa4S%$o^`$&+%@ zn4H^w9Rg?k4IQn6Wt_7iI$9Rt$`3%^u7~(-H=1dCcr=Ne08QsX?gS%d(uRS(xfT^( zd}!R~nYqcH;`ARyj)vf-kfrhzop=P z`pS?r_@ckbMkkt)IFFRt&!OXTo$nZGzUR|D;9zZY+2Bv|GivDi!etrFr0SM2FyGjL9zEz(|BYS!jcq==-gLAq(<=)^IChGR+ZImCz#=Ig zi8bvcl*HpS%$xM-orJZ%_rb~mCM795*FKeFuo)~ut*ORFJzd0GRl_NujAu^Hh>=S> z0kW$sd*u>O4(9Wz8E%GiQlx-&M7;oGf`J)jj7SgFOwR7pYG_%wl{#qC*&LD(*raf2 zVS_%^eoGOsCxyE^FKfx!BJ0eM4+livmSQHLlb-@$~eAJsN2OASyxs%XAp{mX_DAxcVV3Rc2Oa z7)!0Tq^b8vsk_8Qx{)C*-5$hT{Je&|z)oP|yRpHEvFZL~UAszDjYP(o%h=dQ1zxRQ zlb?^g+b|*L*U13EopI>`{kbrXRM&_;%LIv=w{1qx>)gum^)42tua<;W7DXBRfHRg& zYn|uu014!p>YLu`%M{}buqa|TIK*KLS_(Q{JlY(nSw@e6CPS$LHrXdIzm)7eV4v)s z>}&+J2qZqyV_$R(wsu@^6+`UXgSQy z{U+DWV)B>2)l*Q>gUPrUVuFz|&a7Y!U!TLn`y&zHyg*Z198#ZEV7Mu$4vWSB9(!>> zV!DRaPfSXdWT}VEOZa@jV-VVX4&)P%=%yy<9S|wA#Naq@MeHB$WIgDgsZ$P>OhE&U?8dZ^5!hX9GFzDCbSZheJxs8P4a3Oq`|J#U!yuqfW1B z{lS#-#X0$QhJnI!>(a(g#T*DvF7_B4Nu1c)UETE%pGNApen7&&{*wGET3y!pzslB) z+We}clWU_E=Ict0DoZs+76qkSn(Fv01gewl%-&yS|18TuK-<~4oC9Q2YQ0U$2nAzV zEyG|mE~OSNOmJJG)~V%$l$U{1b4m7Km*W2UF^WD7KS_A{!4S(Kp7=@oA#ieGzTR+R z+9-)X=$foK`s6GG0&&vz0?c0!CVqbFVv%Kjn-1D^NiD(*Y%%&e__h8aVz>GfgikN)&^JREgp+5FJ*xh$n`Cf;imexaO`;Ll&fVFSu!TgRk?%8F!#_0*PFO$z|1SK+_`q&@~W=h=fJboh5Fa+ zqd{J#B{o99xbEdGt0y#siND-;HXhdEFKI3BSe=j=3AoIH(j=Bhf}716ZCI8C%@3!t z%WaCz8SCN0ZfU@7JEF%`BK4Q?)zgnLj$5~5XvA}`Q>jJPJYypH!1L&9gUAlcbzgh~ z#y&I2&eJUZ__M6TQXCb6^7d2xl5)SFgB=?%w-aBjp8+yLz|%K%mtywo;()Z%Wj51< zzRpz|tnEGqW8tl+xo09uq2j~S)%9tH*0jGC2IHnD2fo&^0dkC;7taHcl{5=2W#drY z^V^GS=w+(^Hs|8x?LhvpNA!HXf*OP zr`pI4rhK?J;vuP-HBmHh7^p-v2$i?(9vTle0R-^BR1i0_w5g86Y3}{BRP~B?%dre( zl%9il=>U)`znG&3PHK286|tAp760JwrDmJqKLo1Ytr3eK7tHhj8mHu2Nzt!?qkHu& ziRi+jr*!M1F2~JAJNEE(0m7nZO&Q7YB5yy}I7gm$JO#QqVqmJEwBN`sf*MAR=9MUH z(D-bDGkKEN>ylR)SnkAfkH=+3Ov(>#K)ncSqqGp3r6zO)YnAR75zqai%D%g)J3ODO zD3a?>!;3kOPwFc8hEs(4(Q)y1;*B#Vu_y9lW5=L3g4@0EG+b}{jhBgP)tBeuW>Rd; z=1}WF@rRN`nc}|2aZoSkau@2sw_|sv)-b^cPqHowEZ~YlI;bu8`3Mo0c!QDp?b+hE zrdA8bbry$1N_odl)o~MM8-|X}k5I|+i`*I|+Om89MWrDq^OZii<CfmqoyVNjnG^Tg@1BS8qvgKRkUV4UU?wx88T*-C9SP74U_%^*ko11IB*RqBF#BY0 z!Tz&LL$$`;tzA-8j!3bxBRq0W&3P%MjRB=Eu#qIIbJh+V_zvyQbAuqdnG%VTk zJMm_BB4<}VF1^un#|=9oSIvCVz(%7m%d^76#s|P<@U&g`Cz6Pt-rqPVEnEF;%BS@0 zx0GG*%cWmuC(+ay1FpSuXj-c>${OtB0&Z4WECm~}o2owin(Ar$l$RcW2|h{}1BhOx z6*qva!gn#r940@)f%3OKSDwH+wKV_A4~h1oyExm9^}CPQv&G&8>DhRW?F!EmgOqH6 zYN}KFWSe%dD!$sCCH<|U116YNhu!66en2|LSJoxS6+`P4#)KK`HaqX(yA#i|k-#DW z4^q3nZm3}j{3l=D@!Tx zG<#VY*dIJ^W#6K%RPwZfHgOvYh(c~SECsec5zHfp`7rzRgj_l8qArSf1=0BL^dyVg zhSyOIYNogpI2>>2Xh-K52?T~j*DU0qZl`D29L!SB@=~ypg%i*(RTXahhG~= zg7eyy*jtGVcrZ~gE>W{Kkq32{ludS>mSG7v)CQMxK;P{7GS#FNj7VN&VAD$ZIF98ESgig5+;k+7nM5)zE!V*JEVWI_@&%^F;1mXE)6pqb&p zPc@d>wbg8xQd9*kch&?hIvn4p&&U;d$|S9CF85EvenHf~)lR5O2$ zY}HvC4t&BE3!IH{9y8VE*roYAGuXnVT?h#$=W(1R29lQ>-vOGD6#8czHz)PwMeQxU zHJ8Cw_m#`}1;-1h`SxBK*>WyI7%*}NKHkScqxs$D;ebz1V!j&WI5D!{TR548@92#7p9u0!d zb@%`1B4a$1FuK<>9A~2+BdVu3zc+}}tgs~7Sat4rFwf~|mM(*3-VBKmUC4^Wj2Xp0 z;KRX68A@tY4ZPcDJ?QExbyczl58aLd?(#V0Z?v}0TBP*7d)Y>;C+u+?B8GG3Pe-P0k~4F{J5mSP!L0%3QgF-Fc}6YAjN(F_|Miz!_(dfL#iH`IxqX1Yb)RVN$g-cA zd6L9(am`4|2rcja$lNiW^Jqz6y8W47qj|zzLGNNzB=!ma-Be(40alIPT-e|Q(u`}# zTTRq-+swO~`OyJS2Ik?N?BP#5?PUwSGKraE?-w9zSzg}S8v~H3=YTV`7fi2SvK**O zdw{3k@rjdfZ8);z;6b$+EHFC|!YY@Ml>#YF9H~;ZdH-g4_(0usKh=5ZaKH2%)CC1h zNFbWqBA{tM&*jMpK>s>E{qt<(O^DRYu5G%uz{gBH@;c{vIr(TGS{$9Q)7IxnJ<-Yh z5`#H;tWKt=`c)n{&i13D zHXEyXeFH(m5a{&q^6}M5EF}lcTuWnb_~)cG%P6Y*C(lh{GBQ@)^+Lj-?Ar9ulA$Z6 z*;yM&6}Kf>he%aodft=7dr1xK#>A#r8>fVgv2iZRtGDH$Mzby{5xPivl0|y1O*&*N z4Q8__x<2!yR>^KZeQ$&9k$#vL)5V+q=986Y-sI~;HLQ+Nc~B=k@g~oG2W8QXWcd;@ z;*A8>5B#-1i~#-aH85bMfUPt{#FGcuJ5xZtE1b`sy`WxI?Suw*G|fmzu^cBZjK?A+ zCTl9L5!Dnm^1TG;`I_cCU(YYzHP>c1!AMm`YfGzy2RnAC*Hk5E+KhK?%G8{k zn!Qn-?~~nr+OWU(UDX`pG-Pe5GEe4G{(MJDFB~M!YTky^tgmV|KWnD9Xk5dsJu@d) zxT5jx>_ADoZZ|})4FPG=g*3d^+q|+rpB$dMTNH>-1eQW>X$_Y5uIk$IrqVC-@#~co zJnKsV%RG+;tD)!Ss)H;|-D>i1@!2UhEou_o>~&0UdywC^%5Xj~G!J=Wzu4CPq$F1$ zU7`)1X*=e*yi*NXPdd0=GyJ%yJ!dH&(}2vII=`<#9|$<5t=Q+7Zk@C@_drGn9jUY1 zN7AIiuq1D4IrhHghq>H^;4uR=)lV+#ya!x16J?v$RcFN=$#oYougv_@VA@r&tHennkMya z<%zPVGXOA^wTCb$9$|mlwC7PaJ3AM*$l@4|W>%MIy#LAD48FBqw#h0 z4Sl1c3#>nIoJMvoLj;iMF%CIhwZARLNj171{ul^C+~3^K!5f}zW|}>iGb@s64@0lI z-9GQ)O+-HYT37XDno)8&VFH?q;0zH3x73H+Q4gGzip*%;R<< z7D$l1?qW zG_$$sYH^%)!5zm_B`l03Nxr8sNV}d2ks7I^@o9UN7R3P+;02S_NVrXSAe)YyNLx8npEVaUf=zJ8qx z8mfJ>bf=g3g3EwdCE%>ab^i}S$6Vf;!|ywFVR(>XmT=)a`7Ii~t2ZZwikgl24)?@@ zQ9NBr{(RnhK0@jL%tw%?qu*)3ziSCNHlCP%_2TtC$@&+9xpw>{8Eco~zq6HMX_a zT2bp__Y4NnmA@Da|D+=@{6Sz~aQFlz?K(;8JMlh;Zb?Hw5M{RftnB_DNhkke6?~8D zIvIMINTo3U8SNg3xxZKi1~>0;|8qKuita@AW+Qe#mzhCk*@4#ILxlXQwvBmT7gXJ^ zwPKK@bRyopGq5#(Hc9ojQf4bgFs-ju{O3ejaJ@F-5_t`7D``uvW;Sl0R%=~mZW2>P z-2QRcmT!dL?;H~}g};MyX7B~)x8#9(4+J)feFWz~xB0K3qL($a_b9Obi^uU#6fFN> z2|Wqi7r)%!b$swvp1FF6s}K}dH7=Ks@pJ`=u~Gg9DZj{iUC{v@IEu_|Y7{Ed$7k*1C|MvbfA)ODg){vt0KV_&Oj7K!Ha7CBjlEc3` zmr}qY5W_Co%H{c|ET{zyJ?1Ckx!^yYqsv8qL=&pxp+){rS-Tl(u>6_dm;bVd{bi0o z>%PZV#ll68e+$un8Gcia@|^)B-uGYD%wN7ddU@aDv#C^_hyR?W3jLs!*p~E-55L#g z|LXF69Lo2c&kkxVA^()kuuA>vHB)z&`RBC0QVLqp{NHK&E&Bd<+Wvc#y!+qP_TTfx z|E{+GYz%*0{r@{j(q&6HYX4->(X_}i>FQ#6$)Op3Zew9#fsNzc`{YU1qZ1+*Gr{fB z+!@ABZD?p{D681Qa_;Lc4od^SP@N-+wy(?!wW4iAOP_K6v0-I~V^1po>eWpw4@N7% z`uN=LI!>9-W{?25KPuo<~!NE$dWuxBjQJdBzX=!-_2{FmH5?@6({KfO@ zyQ08moeha~jo06q#P3EO=QIzLPO=|fVlb`p|6^O`lSEAkmgm^qOl;TO<7+wI;H$;y z;I`g~_v2<#@owW{{%G=w&c5-9aeNeYadUKdDbW zSi$I{lW2=3k41Fa(^HH`WlgO(0YfZ19>%U~nHU52C$zy$-lw#V+SnOFJJ{k}Zjk}J z^G#doyGb@sBGRmeoi*(EnCOoX*FoO3!s}IchD3;VZEv~1TJx)aAk7*cHU4>+$U^!FU?@py?`EuByO6X+v+(tFM9KeajmMee)ZX!{+x75-)q#O~s!Q$R$y=U@Ps@b$tEOpqCX0=ck8DAp7`QI0+-3PSq z7%@uNx^}@t^=i~b*dfuW_E*}q?-(+?8kRt7?6{Xb`+F3h6$@G)49aeX$jfe3o?&1x z73L5}wRxthQO+p$g=0m06wu}Vo_?LGvcKG@xy*L0RB}ezuQ_!rk^j?o)_0H3>b+KT zh;Ii~Y`>Cu9o_9g(_F> z3s%$RfcolFp8#pm+DB~P7?c)4!2gH6_l#9VaWz$gvq>J>92qL}rrqVkC zp$7yN6a++i3%!J1Lk}R*dkYY%bP@)A5ym;2$4{~hngj0x*mWv*F& zb1wZp+kzVe8P)Ym_tsh?C=?r{hf`YLLcx`~;W z21@u;5Ot9`oh-6T3Rd|q=J%>7n}}^gYye%|kX7Ed&J)?Sk~=^xg9;M2N?n803|ds9 z`Fc7mdp4%4m+i2rS9Ku+lh=|_-`LIx5(@e<`$PG#bB8w`e>yrd-)KI>(5N#sC!tqz zIoQxDsjhk(iAU_U=%4GP-d8GBxmj&bgtqu-P3ueL(_X`} zpH9x1!r1eQ$9m%?;*RP|p)S#&v-M?!_JE|4i?!#dl%H8tQ)AnB^S3k4A((1Zz+zzi zbnQqps6Sj)hHvspXo%_CQ0Hb#$C`OiZ+*4b9M$PEDWfhw2hY2pgnt?q0@^{XZ#in- zl;>R|qvbD`U3^&zOx7K1jRtf*35^Hte!eP(?GC)L(R2u~3d(l8FTz1xlyBbn9C-GI zYl1?A2iy{HyrE2UxFC(_FkI001yhUYIxCBy)tbk%kvE96Z=ofYm72$el)TPSRc@OD zcc{D;Hx6kTCxF^oed$FjaoJX3Jc0Z2t77WpxX(JT3`zTAML73uu9|>HnhjFl_k3Oyl!Xz7?#MNoYmsLr_pWWuV+S$f ztvtV}hASlFtnqgeVNIx9v$QidpbyV<%U+{WY02_~s(JOGDuXcws3MSKUTKh7yn46q z#0ctB7W*}8Y$&OK|Egzk`PH#k2ZxZ6wM{2w2cw%d4U~aW3Z!~YIsq!`XiH}}# zb?^JT(Md+<9kTSF;;5U+OET}PX^Z1GJxiI5jwWbU<>it!O?`}xR$&|m99~P7b(3wg zMo)mFIc*g1nK(i=*}vvxpOCZWi-0e_x5QN~)EIL?m)x%#AJLYvb4!gCZ@Ja16aTgu z-o(K-8FW#$16h?0?xF{}sooW=x7CWjT6LaAd0-gN@*}okoi)nnd9eOQ{mc-1t<=|X zO>LJyOLJX(U-0X8_v2+cUr74xgu@Mdx4xPItusAwXTlAhuCM+8A3mfo&VDu6Oz0Dl zq*v=TB7HcF49F~cA9@(Zj$GGvo-E7Ly%`X@>YLR}H{iQtzLs^bidBbG@+s^})Y*H- z!S|;-GdnO}r}V2{W!d#Ro8GH&l>*B@y9C>LnW`-&^#%e0D;WH6m(aVnOW8HwcY45z zr&%+)e)p&;t^_AS^d9i;1aUbTJ1~@pX;&IjSdY$J4Q6)`%T?*N-c+ zlC}Pe-8*4vRp$kp=J{Cq8`hIIrAcP#tc{EpD`=XW4KNMKDXWznz+|&j-w32LEZ7bF z!$tIX_Y?i8H_Xjxp+eUf;u`>QF)d{&+D4WMW~|=(r!kcrD19ZQAK9| zCLr8{GJ+Lg`nzG&KR9aAsex7XAr8no+Ey;869e^{@XH@`WcqR+1fLW(tJ%?)Cs%W- zl2WeLY3rfY>nsx1%A|{>@=w(H-3jX4+fIMNj?}I2mSRsawa#>GlYh}2>j)6(7*0 zxO%m|oqd80BW^pZoX*kl0RJ#sYE_E^#85Wf_Bw51MO4#c*QE_5Ams=lgqzeX4zu-(pU^ zH?E*-Bxm1hENu6Ue*LkpT_cv}n|Byp^T~YxaxcL!#kxDG0rAcKGAmQA-CSc}(N{%O zkSSdAr)|gOw{c&>wO)519Yx>3`ECq{SY@$lA`MeUv z776o(4yI5jEd9+N?l3@dHdV<1@^?^0? zHvNyF&79S|yLpi>YYK(@95T0i*BW(G3P9>KhpfwHFDeeR695>eTEz6Gi^F+Xgwjy= zx1ueNT)($-Y#Vk5cO(HRAGv{NrxurE`-SM))hLzY z$G)G}oa>Y(k9Zl+UefTXPUi4TwAAWoJ5|9n%}TYM@@8{2w~5jdS+>m@^?pXC!9AzI zQl@9?4_WMHiPLIcS+7PJ@OmbHEK%-66ico4S;pm*$M^B+YM;K-X6>d(D%)xm%%EeZ z;TJM1Dl}MZd?IbmlAo3hr3k0_8rTlK>E-BhhO&;{C$gc!9kvxs@MU#ZCHh$Aka%*B zr!N?968DWn)+oG|BNyZTM`E+L)JGVwuFCm549eW%GoXW(@9-i=K*G%v}~lDL?L%6 zOJbF>PGA$-7kBT^s9tzpZX<`H^-Dv;`so;_ z$~0+r4vJS@z@;cGHRVI2p$*4Fv`3m~Q_Izx48;#%>Ma3cPKV`6%_VG0B>_8LMnI82 zSQf1)9?`w{hr^X&NOFZy;;Cb#B!27~p>*(y$D_^U_49&j0Z+`F+}&f-)ARig#M!WQ zZU=8X<^h<^61IGBrH!T2$->M$*z6YYp!X*I^?u31(14>uZiM!tfI2b1b_+=w>ke0p zOJ?W7ae=caH~W*1kU+E#PEGY`P&ErbwDitP_iB1@K4YCug|!n~Lf@CKeC_G`ZjmW$ z6BNi0h4c|>#q;b!4s!9j%M~RPk{pv?c6)`!E^``o7xd1i1pC!}uPuWyI8-O#<3+Tj z(}fHMWz%c5iGB21`r?W(0%%A2JGvfnk2|F$vHw&6Od1?_4yy&#)m|rKM@bRblrD~> z0LuJJHs&P@>A;Vbw-{j~%c5bQTyj0P;p}3I;!R~br9e`2>_TkyZh_$GPE&Kk@)r35 z3u+-U=cn&R1Xaz+Oq_LCoFP~&EAHw|#=O$)rC!tZfaqFHmjInWB>jo=pKlNO2WF%U zsW6YtL*l{f$W{FpwgbJZrzorni>K}~V2>_N$| zcHZ}@F$dDfj-lGg$N0QO2I?x+#@nJ3{JH*rl&;6lpy76n)y}IlUJIXGCJmcUkF*we z6e(W#h+>>4I%z(;-u*9H#ek(ZHW6tcwhk znUi<{?dR#uDj=Hp=+2~$UIkSFX{%6<>AqpS87|}7GTm?Ch)c??@pcYYv5n}Z=Pko* z6fhinV^%|RF+C}|b;!JUsmC%DjbK){9gO^fs4Vavj4M?KHJan+>AX2qVD}q{mc@hg zCpH07!lx7M_|f^+O&wk9weiyJAP1HcbH`r$7mw4*iz97;d^_U!54u~EPo%x<#pjS+ z5?jOTzH2osPc4S*>#ght57`8kUvbC075#0GU$(9-MzbVjWAM8UxUCLMwI}8-#$sH3 zB`GC3Pt--SOg#NezoRCimqjW^INe`k2wJ7#SEY6*>Fuf=7BTI67;lcmkpwZvfT=6) z(V7x^(vinCW-f$3k?&IAEIv%yo!8dohWNW?GBj+n4;ZHF?J)$@H|$5+?is6Zc!fuv z(hD|PJLQZHa5%&pzG^yrXVaB*-&?NN=q#B5=#V*jz%kyR0+(&^4@{jv<}0Iv$oP9)>v-1!{I0G zi57F=8ud>JE+CTtwUAre^I$+xy!}LJ12D*C0+69bn^?%BSd#01&{X@ufc>Cg6yi8q zNns3VvSx97SF|MPxMfR*m{#Oo<_>zen&cMH5>P`~JZBn+5k8vJz87Z;Qch1#DzorW z04%mNXbRM@bCw*7|-QemuwRG5&`)89GuimW;z z6}C~sE_eaW@jfAgNy|e0Pu)WJW+odUgLw##rMZ9xA>G8(8^T_8BC{G z%L|U?e~<0AoXYvuOXmP9}lBw7?5-Ez;j<8D<391Sx0I1+1G%Sm$E_c(l<4 ziWvQnuue0B9`fJUa-HliH82u6PV_sifQmpve^<)8;1<~uPJ<-EGl%j5S~G!GNTv7m z0(OvnPPnwT)yy^jl%ju~hCG4RT>k9>IdF%D=q_6sO&VbBm>jcx+sU9X;+iCjB8uMx zyq%R3%xqNtrl{6?ThP~0UA_lA=b&e=07=V@oGicleq0C+Mu+Pm-lZApf79pGZmGJ4 z(Q@lEShdP^SckjRygJBKD!sX+5jrncg=g0~3XpDR+GqZK4g$tOF@H+fmywpWXex$C zIRIl(XYE8@%qk~8xyAa#3V?3&XLa$(&3YF3n~;={WXXgzX`5h$l#&C$455TRzmZ2# zcQ8-X7Xfe|x^>?J>qM2<8mpYXZ3qtBDKv%(DhjSb%r^_~()XGBp651LF00I88`b;w zyiMJQ=4fD2vNP7|lbq%gj|z17R55(|8*AYWiD#o88*BMB6=(E5AOCS_2|vdT79Xh@ z8-sNl4`zv-e3V>j+;+(H%RHf#wc7YL5H9n*xSwb0OwFTDtypu)a9onsQ|pO!pY}bE!FL*l9OK^CkrvDA*FG$G(J!@ zKfxF5LbJf1G`A`D#fA$E^0uHU) zd4H1^w$?w_Gt`YdVOWd%o|Zt9OCluxaJXE%=^0&2poiRNsCk9)oSM3B^@+Js6gmG9 zo5@eso$ie*XzH&yxmEg){kH~uQJrHG9Aa85YWd{Ux$#bo_Wj)=z^6OnWMUXCGBtZ} zY{2E%Z+D!OXzY5$l#%>>g^V%&g@d%CZFHZ;T6?Gvv;0?!yw;D5aBUvA?Kxh-KyxZn zDW7+5nk?GBw=+{v2bho^p+}$Be$hrI+EUO<=d=%AXQ}?8KjZvc4vpiP9=v%*S5dFXE!GD3xEN<>w6LiF<(OeNZrdy)a8!xt(> zCZXN#TPt+U^b{4|(fh-sAgHsBaj-i&5WsgBqhn@J!-w+NSsQIO zbxq8z%dzCq`Lo5q)5V`yba-e0m|9%IeWdsate8+cb=!Z@@PoJ)lI`>-x3$MtbCZ=_ z1g5{j7!A+z@B)Q}3u7WDqw*p>TBMpzo#s4dOdB@$rYl)fyT zH^&5rT*jjT9YJMgqt}Wgt!m6_1+q&*qS6Xx0??It(!l%>`m_EoiN12QP1@^_es3jV z+?hPTWkF3?s!#7!t%-C!X7aS7xn!*DtF&y?b-A(zz~{+8P#gJxjs*~l7EfwQ~?`??z1 zpQeqEAt^7qpatf$Cnb3%e403C-PXq4wUo}>PcIi9?6@RAcq`)9g~rxl z&XW-qF)OZyZ3)kwz7Lx{ft{(6aMyiq$%8SA^F}{Kx%E$FC7;e29XISdb*3{+ zez|oSFz|6%u)sy1zqcz!*<@5^Zhuj}VS9Qa_XhJri&?C=bxY2S(CtaG_0&9b>Al2n zG5yywN5McC3kX>(X-?zN;^>gAUF_p+JpydzY80fc_lj8ojDMbCOiZ#GB*y~9w% zu+{~C3MrX*>+|9d!!~CA+JP^cPg6LbZ+3;Re0r>5J#Qk69%bi@qO#jui=(EuY~J`<;O%ny&|SgZxT@Ym1XtJJBuwAkUwf;r zHh6i>AlKM$Zg8}_#@}=)q51(nVy|t0>=pdd*y3FPHqbU%W!%((88QJ2dilj^n#pA zr<)Yo6#U+)zI9YjDv4A;(Q-j{X6C5IA~g1^)bX35tLob&b*TI3rR+I?0EeMuf2@GR zjKI*iG~Yz?kn{!nlF_P2sAC`&hB=BaaqEL1#rs^gB?CoG;dUvCZ#IpqTY()9B=LvR z)vKSVeecic;jZ}-DHvk)ki6;v8JDZ@r6=OW(JwR+d~bpWsYeLi5G9zSmcEr}eDirT zQ%C_%Sx@U){iK~Ld`G)SLdYd4C$~&GUmcd8qN%Q_#HYPA8^mnWu%;5Ic%I3o4_#22 z$OTJ^!{G9~{^ds0D9z`$YE%x1BU6=(anT@uU~au@t<LF0 zVnsKVNq^0~clA}8GGCPKOruXNb&2INEUWnx{qh^hXwBOyo7bBSD=2n9zZe1K8JKfP z^_PJ&-0^7G|>>|6@9{1kc&Cd$XdiU+>noIo!F+c|aiJZIsBeI4D0gK_ zF2ubVwpEIR4(?qB^yXX&b1a;I>(c7bPa%e9X7si5ZfncND*G^&!3N=j9bzYuD&aa2 z6M+MF-)?1|9gA2Q=pw}R6)KLJ%OTfNcxLt~E?tSNmN8Fz>X-PCIp>>dUv+(5bCaAn zMit_oZn<8FnHkdEHohV?ExLWEXs9)2#%&r`HDpiu>k?#KuOFT-YM!w-;EqV+>@#D9 z8KCC)3ev(4 zhn-%IgiqNHlC-Z|5|F-ZW(Ql?nfC%hnRgl-*RT`0;9xWJO&#+(aMj$WPaUxNDbbm9 z>U4ju0n6w!S872BnbFAy9osdWhxDzau5wH&)k)&Gp`IUMPE#4TRk!A9(|cGc~=!;d-F-e!-O)D zo_6bAS(zY@2G$cI1xg)wxj+6==348Gp;bK#B&vz|Z{B8lCo_D5ZVaSAUDZ;s6BtnW zy|4;^zs-O_+l$)#d}GSTBTq4nAAODt-N5Qc#y3`LbRe=daWQ1W*`p;pn+Yx6dSWg? z=L@SbM9nsDJdPw=Ms;R(wi|Ae^{Qz4STN26WH_Jq4A3wdm(?&*Icyc*P=e4dq2r9v zlhQ83sk~-cuW!JXyR^%k@VFur(6@64s=PQA4D?O=8rSi`j}musQP=oVy0hYQsIeFh zZVW)DMptI(YF9t^L7Zs#A3fx+q%$RULBhm~=V&s;85>ofGmi;kQ}0%$oI}Y$B5KlS zJ<~Mt3=S&jUepw*RcLU=hBtj#xX1)N^UUNL%G42&R z5Cg7`_Vm8|gih}=LBng7tmbelqeo$)`E<(kLwITLV{YT6!=)zGn6dBGtLe8l+l0^X zc#OC6(dzeK%L=d4IR{z54<6^aB!9Db6Z`dE{)SB7(l;$~hrUzR4h~kHX&BpMr^V|L z^ojPD7?6zjDZz()Hk*Sxrmsd~ugi;$yq5{9#4Tk#B%kDc-qX|5tD?GJqNt{*=jaxg z=G$q>q5#)bGDv)*-DTTWqHkyE_60~*#UvNp36fk079Zr%M#rQF>fYxzprBrh?&I-! zqg^H7GBO7RNf}yn+S}sKX@&z6Pd({P1?$RO{tW&2p&DrQ3Ytsr!-1aofvPml&nymi z84IrJGFa?Jyom@?tv$;18tATl-#m3D{h9J+rB0o5%#LaANavi|4s)Xht)y6azpt>N z6f>6X7=C}vVQ3va9pF?nBc(&WrKzeK;a0nPC7Ap2gfMK!KwIzr)L?c&gs{zcv??)$?S0OG6+5xlo~zP~M!Yc(*+O{#9kS&MED=;Ix9nd`@Z zMErtyT_5R3GTx7oumBZ zy{_9Sw-O(Xv|r)Q*sONw@%$=0Gq)6Z`2NIQfJwA%sV|qK@a;6d^ahPjXHCO)KlFTC ztjSXXkEK%J90>kV0a14=KH#jtySs-LAOBbGAXIZP@oLog>+4$Buf&0g51%AH7}kk` zHM`bAD|f9WYYMw-xjcW+shXnepl(QMt`CbjSDR09DIQ4P)IXlDOBfv#_V~z~o4Cf9 z4INxFbJX}~*0RG2+=B`e`TVe*jlC-d{AnZD{W*8s5hh6r%`Edr-zq8f2vN&Ld_SSQ z2`-E23zlL)I#mtH@b$r^yE&BZvO~gS?7a&6^(})#(j@fKMF}slRTOpmp8KO|8-8N( z*RLe_hc`AIR)n+SoqW999R#{U3W?!U746^h-QF{lAJx>dJ!@y%@e6_+_Fw^h!YxJO z4DP5iamgxZNd$^P)X2&wziLFS7ZexE4qO^o%z8M+GY>qR!`wom%0!42)lxpR~c zy9(!8ZNUdx`-keqo>1J=mVSNWLhKuGLcSyrINt+R7oR`3d3CHDNT#yq7wZgEkgi(} zJ#FJ>l0s);ZnV_8PeZ zNk?%rsPU|s05JV|v~yVPA9yJEpnk@1=O|stKZRj;w#g-g>(@%tpmwI=0|RjT*OS+M z-%+nx7H{fT9;UBLk6VqUDH>VCt!z0Au_e_fl9Fftn#iuI>xAjoD5Vutm3=wWUjTpp&DMhfM`>hSLt1)!GuhrL7^mIR&lc?JMtS zXh#SBVbqn{7;qGt^l0HRsf|_3Nbey9{Pp8RZqI9|R z>UN#cBuLaq@ihRxs|mI?5$g+n&Y)ZC6@bt%3w1Mo+nA50dR2zyYyo7~yT8C9)+zNk51yCc{v#8+s#5TEdERn=raFjAa`-Tb-=SAfM<2<;R6_Q43u)a!oc&Fg51Rq zR3fb`=XZ}jUnggzwo0HskENliamnOM66;ud2)ApC__6sM4%wc%+cgb7kqOFywRS>T zJQ{!K?v^_5scJZ_4ubN_`ZvnHZToTmY3Vh}oAj#6U%z{1&I z#0-j?_L>#)*?b{0;nFS2QK|GhgvJ7T1vcqz66a(hhBoTmI;<%9sunfBFYX=5W!F~o zpOdFB_b_I0Of^lfZJd8le^zy)yoLTcT|J4^IK9_d&%)(i{i2|TZK#Vwwd#}eh0wr) z#u6J?EH4*qdaxlx^0Yg$O>V(6eaWh2wRTNhBby&+v8mHw1w_jFF_szcB%LrOFR-S5|LK6Op?=(_}fmEfeTB{W@jxooTOE7tej6sO2;6QpcHYZ4ys?n*diuGPJ!8s zr8lJ&rNq6qDxh43LT&p@!0q!6j>8;V4SO$riW?1!p%~i@n7vixjSpsy0qMf2pr`Mh zMjg#F`NZ%FN7Xf|_|biJjT<&3u+q(3D(P{S@Ih@$eAVI9P-S(IlwNivm&j|{QsaX! zm1=4ERW>%$!U=^7hv_!;Suz$w8)el!lZa?6Ph}4Tr>`rRl7Nt|@hLPl&8esw zi+i&4RMLA=M7Qe}ECXbrV04Oj3Jf^y2vhwtTb!ZJ7_ABROj!74lRqDjFZbS&CQtpF zl;6l9WIE^}c4&AgK)P??a?ew6txu+uW7xP{%60743~Hp69!(>Z)xwLV-#MSbtW>Mh zN{DHkknZ?Qg9_qv1ElUp?Ykd{36v@A33<56SO#*}?FdDfB;^+uljBcMIdnayzC{r% zZ-Fa_!?rHs{ma8D zp5gb>DbAN(i>pIQ;%<33qsrMCfAudHpOAcD=xmbm(LDxLi zZm`j`pjuU#+yK>>(G&1Y+Rr-I-qGL0(Ko*Hlt_VR+Z%5;=h8+aSgThG-d-xOfH*kH zA|{0sPAFLj#?lS3iK!1282l3VLZy|uM3&d(Z8b=J!qr@(;XJ@~V+R;L|17SO!S{8E ziyNx^3MrlFo}hlT8KJ2Jo=zdiNiw1&!G2qOCnXKNu{qwyUd-(}-Y^+s-3adIAdfGO zrW7Hmx?_$iTtCcS7pit%^4r-$av?N~kX*I&lqX(Nt|!p#Ek&R6j91P3!Zkxxk4Oh4 z&!#vz>~|kO1$-EUE^?98yvy!8S8duIUZ(feI8k2y%MWg9P4=3+!XWm_N^t6lHf`lv zP6FsOVL#2?*s@_D+yj)CCkP$~)ve{^JX8Ba>MM~&H2xq#A2%~&$TpqC2!{51F?d4u z(+KXLv-3cd*MD7_VxkAxovO~F<8;|sjmX+Dkg>MK?4^dR+fi7@iWm?8E>gnn39wP>TolS~V>P`o>=;4bvF+f0=)qXYg%?nCaPwbT}cj%y_tGSR=%uN(H^PXmFbhl3FwEOAQJACbdsdV zHPS9v=<$)f_#;S-XwXNXp+YOgi*dGIyd5IlBa3yY6h9K%ip@y#QvhSpL^!952Lv5f=DUp;8eb zIHB;=Z~uZlx^w-yoV)_#T~c2L`nwnA|08b)F~biwmReGQ{*OmUE;&%U0=0%ArZ6xiT&kBA#u`*!v5#ercf7 z@BZ?!l4UbOcZye#d=G3Irx!{6OJa^ahw&=)jdV_Tb}> z4o(YyMtKzP=#st0Uc)`XIELqei zOwEr&t|~NGVQ#^-ybZoIadRFHuTkkvL&l|kbaFg6d5BxkU+0{LQc|6ng?n-Bl*`B1 zbGr&Spq7pN_wN{+l~C#VE4X;v@CHl;5zM5&qmFb5L|qcz<7xKGrElUWULYEj8Ao(2 zLO6Sc>$(@`%r$VG&W7zyA*lijrn zO@EBrqu~*A3!hP?uj2oev7k$RS7fHEODU49tkcJ*ve z4b5K{+SzlWigPP1RaJ`bTYKJ%knU#`*{9qnNnJ;OKMF*w!tj;m`fr5+pSSe$Y9S{F zTE|ZYwszl-Xc)L$0*4E*->Ko?2{4zRTWR}MK}LE7Eh2r!XLDW<`T*1M%h(&0q!;^{ z#0e#I(3S=2N0~g)q>B18N06~4H}Iq5_&5Cdvy`pU-GTRm!(T6L(jpl9iJdQHfRH^P-Q&SYO0iU~0PQ#G75%3wo z{}>Yb(;ebtS*=%U4DRen(zA}u%NZJXhh{qPOvL**cEh)1)bqr+hs>Az(tq{V)C7VS zNg1ZKJ+_S6F+WoC;3d!pSLfj`oE93i0F)B@@xn!Q)r#PCP!ZO~bnK`1M9+OOIrh7r zrkWLF(gJO3a`2?aju84g5{N%K{v|ZWNI%FIiXI9|#>A9dS5J!P=^JxS;IB9|;HC@w zCLQQf0rR>qLK1OP-`XfcJc>BjDF3@NPoZvATD!5f>>G13x}7-baJN+*(f5N*g>bDr z>j-^DQo55E1yz)X>c;v|6^nB`L(^-})lLQM+6#EYDh00Mtq)T=3~03Av|+Tud0Kbm zHc&l>of@w7AZ6Gt0qbYGbSFzo(#QlbIIWO^O>_}^hl}+UNvMb)yu*1n(oYGJ>z^EC0ZTL;f&(X7DST3oblra zB-}<>j7_yaS{m~et&m~5Gs9WDral%KliF#J?K#J`9J}5x7<^6#hMqZpA%<7p+7@w0 zOrtxhUu%Ug0@&qax&z33$3of$B&Lbvqq7D2g02)e_E zrr+`bXN~|A`UT#`5d&2Mdg0Jr3tGzcCkrz`#O?rmgM zp<0nU!$iv6&q}3c*0)upv=5~5iEA^-h!A@})$t@|9@v2KdCo`=sQ|ja!}oi z0Nj_2a1H&`&M;B={J??*XHe!&B(;sC8o$RpF{!xAtA(&4Pq;(4eI+Ru(~71qETX|? zezo`d6+-DcXmV-0&*_ozr-$DcCbE$Sj#E|2#)U%gul#Ir$a5QfMyRuyZItfy$&BM5 zEmf~)OtcM@*gQhJ+3YdLfZPC}n%)PDQ<@;_6U&l-=6EqLvA^d1ALA=EgQ$zgd*xjt zzC?Zp*QjucH$DK!&wPC!;F+m0tMO;upXCbN`jSrA=8VHcOF==3!cm5kR672bnyN?d ztgvT&aeZ-gqTSyWCwc+fej}q6LB;>_{X`xI<$dSK#o)3^=|SL6KO~wHu@H{AkG+6( z2lTfnfyMYPflk(P+F_d}og=e+31b9Ox1mZ;KJ#d$Ke_5~wb)(Y35QaIpfP&MShV4^ z;UmqPb=(X62pUfcLY|YVA81kwl6dr0y++Rx|3W?X`0_Kf(3Mg`-~W(qE6(NdFGrcZ z^VWVOGfyc540gLive4@EEa>6)-P8?7r+KDgPVsSf`DGJqOmp{w9yo|&cGK?DS1;{G{v|xDg9^s~RQ=Nn zsz&?sChdHwu$SR(_o)vI^;k2_?;VKSHJJ{^!g&1}N{O)A zHV^&&#_xCm5oGhBndbUJ0?N~d`oAQt%*NiV$iKuPldI*G@1x(U9o-$CSSOZ7QRmI| z?d$4ojgC{B!#+XY4N%s2hfGPx2g1e<@amW^Eo$sHZYX`Bu?@<%OBUPmH)V_mOR%}- zfE%#i$Id96;RUr}DJ!4rWEP~yq;G#~w690uW-K_k84CK{uw`yvuL|7M#aGL%QYD;V z!WnWoWuF28Z$lae(hj6)UQ1@AQXjb$9h}X0U=cS>{U$?7PxM1VPj*VY2}TYOIimE7 zi@zvGdHocmz_#C(xlQ14nO%|(oUEJjCEye=``gj4F)ovR%Pu-4V=ip0yJJf|BYh{v z6mR(N=CbBayE#PUw~(>l((Y}oMLVw&i!qCuJh$eCh2MAl^w!^PQPIJT0~lGrutzCO4kC`ua&LzK}59T}Orn_k`=Xo|`ncq?C0i}E=_|Xb;3ODc9 zCSu>(0-(1C^3AW|ACZwOvM(Z1X59)RBEulYO<2V$hQ#vpn&N+LyolMAtoCbmwkm~a zzQT$55IPEAaDI&Z%;j6Dz*U~H$cEX=*L-fhqofCA_9w=WGa^Rk8zRyRc&>FPPy8Z= z=rn`8oQ+Pv`_dYzdEgPe$&$L!OJwt+dIRIkzab36tiv0F6M4zcQw$nL7+lMH&c#i@ zBcM}ANeIL9(7qV|UqVE$rfBe2fBF44^v9Q+P^rXB#(5F#I>VmJe|N*CbX+E{nbCrhtGI8G4l5ii}Z}0P^a|xHfh{1 zlJGx_9Q;>xkSpCa`wPHsS8@qqz5kysFv`Np=0Cjv{-x9ZUo7@#SB@U&DFqMSV1Us1 zQnNr-w%LA9OmMHD<9<X;KK!Pj;g)+m+)p2Dy2@39=8DDAMlSH$cV}RjM#7 zxF{sh!=WJ@4@GrSnydX2&Zj*z zoJ3e@YsS}$>V-6gRnz8vfyZKoP57Goq2Z$;rLr3#g=8 zN^_g^_!qPL52AE~SAl_5flK|jd_#u`^(ew>v`0oe^o_^YqfljbZ1P1-l}0J{b0iLr zN4prIWlfz=J>)cACjl>8QHzZ z_Qqi=l=^1FZo24Ms5Z})MCxv3yhX%-7K^g--SU;(+$LtXGzqHcn?i)PN%5AfWt_dq zUf5@6Ehoh)^todu ziVwGkv-SJ6wo7GmZ_;L|(C%r}En76txfYhvCs^0})=1VGgx5}P^4pje&{oRU%#gQE;ZBRNLyX{$J(tt6*83V?VPKte3Ka(0>WN= z6xvLqw?f3EmWEq*f_+v!aXr)LOd(`l*v=9{Qtba??>*z;+`hN*6C#BODM$zsqPOVL zi6|k6GRiPSM4Qoj8zKo3qC`#f&S3PJ(FM_?n^8tfbYl>`4bM2|d(O%C|I4fA-SheX zUK#Gs-1fcp+Us8XTGzUEbGN}Sk^3re=GKMCaoni*1KVd_HWlDK40yNN0CKYQm?k0K z7F4ai_~A}=>wqaJKBlBWaDaCIb|z!3YbCEsy5?=kCnH@sY!ETqj-@hsvHTKQ3j;xf zvzWNDUu>{A8i&@X6>;9D*0@cVh4X->`wp_NH1$R3>*>CUx8ogrJD}*+)9Kt5pcNV# zrtg=g*Rwj5`D0V4I@ctV?8e}*9ssr|zJ?j*igCkq&LVav??CHNy*^J{VdJkgli+!} z!yONmTC2wCX=!kNj+Ndil8eTApYoP;7nTc(?LTm#N5u3|_`Zw8hrRoWED;A56{$#* zbDFasOu`lbXy`MM104*NW0>5Z`+gAJ6B7o>r`W^;x;Lzb?o6Rac4MSl5 z&XEX)Ww(>Vwu+!rUoB)7(2LEiH^%J*OxNn@>aY-+vM^BT@Izd%5McDNI>=gwyKvdu zG#3N){*|5`NFYD2w2==FP6dj3|8Vbo`xxdILwmADiXQDM$2I0dgoL+m&mW1|7x1FB zWP7#!?JK6LJc^JGlZ6~x9$Wa-<2P3rXb`F-nrta}_}0Q$vkKj?FOUuHQhiWc<{R2#jxjPHFH3|*5lEYCgqAZVoT;P_dc^r;B`1B4> z`;fc8|L3C3J19{mwhmtBV4n}p+{+z{`Xz;UI6=}xBTfEZ$LlSnxzi7RXxqxcdN{s+ z>ex`veR`>86e-e0E+@!(z3azw@xNV^;)La3!Fo+)?l?KJIu-u$? zCsDr)bQ(%Pd>IpnVrdR%{kpk{!Sy84qSsCG%G;jqNI1s(yRUr1^sG)=m~+AE+x12p zv}jz|EnPxwHQ)yrrM0|pQ#L8VT>h9Yq*c=y)<-QuqFLG~0lYCt%CS(T;PbNSKIMnV zSS%oKmCtwk=+ID9>9Or|;LK%PCQs}#d~BiERb|@|qWQ?H{e~6p1;egbWl8F!b|C|M zTA?`mQ9><*XXmkV!qnq6mpJGKaueu@*el(>ydqcR7{d1Jrt6PD#cP*}XFh6VGcp(# zy5Jth8l~hJ%Z;-3Mc~D3cORrkR!5pvIH=MY^I&-xF)eO%nh!dKE~B151qF$%kAkNU zZC{aDNqZPb58@x&6zo*(`~j@>3|oO@i7XB;bB`GnZWnndM|NjH_+@qTa)XxeG~GMI z(29%p9$A5~;yY!gc5A14#4=ReGC}eP!)M(?MJv&K1^K0$q$!cWBc=nFs~Y8EYby=m zx*;|afmyqxUx*a6OTcrE&>Wd{Ucl#{CpSQT(@(=~;Px-eb2YRuOFvkkS%QiUyNupCR`J^Iu;|iu>?QOF_Ssx> z8x-}SYzFOln%CmLE6DqFCx`72!=6XQbNSa+_N#!q{g#W*Jmsz&NyxZJW_u+C*yP>t zdeYf%tr(`qDEC+#B%^K+u7T=~CC$M|jc7h^KM>HSXb%RLifc|+o$y+YM&kkR4=p~r?Wi$v0>Q=21kxq2aj5e@vgs23d!10 z_SUJ46MSCEhw@SRx)dG79?mSRIC7=@L4s05jfl1k(%CH<{plM03Th8+3RuHzu>tUQlc+`$@&O5kKOpW*PboG}yDCv!~#g82n7diCYp`EjYAcb>Pf zA|yp@vwsZfj8{;p56ZcQim?2=pW^=AQnK4<)^>1OuHe~x<@biDC}Fgc&87_l`Nx^J z5WmiY)bT#=iHf1V_W0n38m@&W*<6R{k-U8*j9*|RE6B9g!u|knKOARawc>o#H)f41 zCXpFicT0(RelB0$;NIeorP(ep)XJ$~!R$z)2gO&og3sg>dgQ7?iJ2CwdP$`^)UVyL zJzuIy802^8LK`gh)tW3CYuHOt7uvl0k(-<|di9{7U5xf%k>n>j{;Uvj_Z?YXM(8C7 zriGc#P&HpE$*$pEKx2mLyJF)T|`OYz<8PRXX8-|p% z2Lh}4CHd@6g$M}&wx=$a(sVLeiZ~)vYLk*pA74zPFP}z_S@(^+ZVEr_J;HQ%Bt&92 zmj{RYA5bE%*|dtS7S%Rg$Fl`O-Y()iST4F1P*491H1QEW0 zy%lF;rM)v9zNumE;^1S36)FP999knLat1~iUt1hTdeV4ly=*uUeKHLy*tdcEdkro6 z&F5F^%N>_~x?Hgr*#`V4y$HNZ=XDA(@GGEa;?x`(UOJ{c?Hm$Z_pWT@Hh6gM6T!Z} zr6#{gmnQ9{M#a4=y$?z!W#(rQUxrVzlmo8=^=!`NV)O<|8!7IT%zIO7XUSWIjJIKG z{=y|Gh`8j-p4115p1n&PqVc$5%Q!J3ggQck0WWI$KJdHUfszvV-BOm6CUfRP9Bg|t z{t>=FK_T2BoOTGk?8m_e;h850Z;K)Wc0#Z|onB;2&k( zs2mK=5T*5+|K{-cFIcFKBm;VZr)2cBPF-nl0Bz2^l(bHFNG^fft`Kehd^#RnF)xj;AN&Ix_0NcMkNxKh#G1Ih{ZfMY(I#jx{zmkFYyu^ z)rY~_-Mepvb(&+{SJ)00A4^HJx09t-Vlq9&;uv)VhMwWTSjvfgK1muHJf3l7S(;fBb<+ipu@sjNMwYVbP%_E)ZfL zn^)5IQlfP0+YsAynWuN}RVp30YjAJ3zn3hn+Qvq@?pXW2YTB^DeV*I3F$Qg&W76+8 z-*b@j*0;qNlTzhUx!zxV&T zT>>{)jRqOE`edTVV#I%q;(txD)5N8(Z1*o%8b{b{oYB%4W5aWGe#I{Ssy)eLz>9iM(Ub&!%Wrt-VKj!4V_Xt$J0!&`7MU_1X-(kXX=m=hh%VqGn0K_`*BK7SzGdt#P1u;Lp zC$rG>E8j9ATpnlE(4OvAd-q*~rq;BOStq0V-Z0p;S8h9LkXVeVI_C8E;3rp3Iex|T zNy>Jtb@{ zy74AN{QlwEV(?d4snWmE7LV4jF{q@fIBTdy6X|$_MySlldgRU z8GfqwdF!HgILOOzBy}{`J$Z&i$BP1$(^isRDP~11+xNFQMPS^@0 zI8xSdC;Nm6**;RyVR`PZ*$gMXqUI>GP^8Q;v1BnH3xFlVOO`S=J<)@p;|@UHb&5Md zFHK+03ZIq0p@sruzBXR*YbTo)iS&(HHzfHC)9MWy`MFjrKM4F1QqR|Z z5u{?0kPqKsUameyLG^o-*lPTCU2E>olBE2MoL=c{tJtn!aKyxBKMWH>gEe+zd@7Ia zQzRB;p}uO#sbw478Bf0>*IS?QQI#M@LfMS-IqLf zI+R)v5-6P;!IAovpeVcPgX}fPZJ3$agEoWpfxL;lq>A;0%rALOL~2X2Dhb~XntR+r z#{0rlrjjfBxWr&Ihm!U#t+0q9>4orTz%;_?#Be*i+T{7j3DF*%@y^89kKg+|nMViI z+|Y#uT_h^H>qCUar>mt(RX>PFv)5J7L53qP?lh7?^p=N(@yaruE%Ph47B5FW#eDiX zvK$!dUjv4L`h}QbJ*UEWZ}nkdc?HgY^-2&wrE< z`Sbfp5*>(ki`aGWck&aMPCI&Pwxt4F`JQpjo-Ifz1c#2+gw^9I=1#Sz+oh$rjP%wzk8>5=;mn97YuqO!T){k)BRl98V{T& z+ikVbrwPK*EMk({KR@1<^!6&!xAWJyOz1;@DuTFaf1gGaJJsb{-7l>1sC8Mvh6q=R zzB{Wgd~xRMFB)`@6Kn5>`7DL1OOko{k+#^GW&*smcnVm?7OEieu1H51L>r(GS8m1I zZwtMX47N0&^DLYz_kLf_8?{cM>P@kY*`)$lHr}>xq+j!+!H5|?w=Qm=A*PJzVhpnw zK|>01xb)f?W#gb+cY&&2EoMu9g~l;{t%imAA$SUAEq1KHELJ5VHBSo?W!Kf_T3i{= z7T@_Q8(2imWg8tlRpGZ2y&}s-<1RK ztv6)JB*L0HW3tV&;ugB^Yqrelib6J=j`WMDwnA^lSO#nqnrK0{UF+BFF^+OYm?4jL z@0HQ&8kes|v`*kb9Ate^j=rwI%RPzdctKp$xx)_jb90FI9^YZ1{Z9Co0s4C6|T6LjSvK6 ztQEhq+?*89hF)krevBw)77hBH44>d{Zrc2!T%TZlxnWF9^>_O!Th_IPr!`JZADiU8Z3A9o; zs6NC4T%q;vL$~a`TmYVdtliDCIx$k98;1uMKOw&M489TnHY87>DdBq4esVMPWVFhp zxKvd%q#@VZrJUwF*U+G)_c-1qwNFf+qCIV{Bn)N9kf|f$R44A_AwZQpR9`UuW7xLt za6iDuu6cc}fI0K4x%$pt%HpzmOe1V$RgS|OJUx=;=X%S1$zslel1F)s;5Q# zi%&`P-yw+@oR-2#h+RG|Bj^I&yvN~eyZIJJ7N<3~y`UdL@V=6Pn@J5Xjuy;T+LJ11 zbf^oQXRUcy-3z;PUhJI2-vRkAh=9aIOj>Bon&QJ%5mjPu%RZYL)tV=!sTQYyw6ZTI?g z8`}V{%EG|Taw+i7+r;gz>p2`;w=M@G9?(y<@NjWelCV`Df{^ud?xQRz(e@59FfjGc zYD|dYP-(2Fe&eGyb;wS!@>JKV?lh0PVf~f_+d(uXTdE{9P&sZJZ9jHeo^(zEs1s|! zvFC%gl`x}%;@QJ(aOdVRE30y&uNJ9;kh}v_Q^r5~T86UA-CGOnZ3YsGuMBsNm(>f2 zKT{n+QS)^-Dw6FiLOfi8=~qUUcQQqfzC~t#dhfF&R;b&4leYM#&V!5P6mqr3n!XBP#8)IOsk{K<&V}=uSO9ef=!r+yW>;EZha9|71 zC7D+Mn|o4k7FRN9oB-SWc1;bb|8k@VQvl*nuh6XESk;4QeBNqryfNXNx+W}d#t21h zx=vw?Mkce}jLWOR75a2nhmME>)YQ=)>inGgr+r*JB zD7om<5GkRQ77mjIM|%^Y0X(S8BX_uZ3lVD-Z4DYrp}795rJp^YZghy$XI-T_J{hu@ zH!*(85kA1?+P1I0i?Lmt8rhlIMbTJ|&_&w&n}xM~!@$L*7mUpe2n}o9{(Z6`T<&u| z_)@veytY_~1?a;eRWI^$gr;s|us!fQgS%Bz7WHD}4j7&0_I|B#{<;|xn&x!CF_avA zYg0-FK}6Ao`zqWQ4=@sR9Fg&>&!%}p+Tc-dWr^J}r>l0Pk}9 z-gnV^hd11e&+^?{Ti5AmWG*4TX64suHwwmla3)U6D5&fC>h6RkY+nOAE+o4M7Wl{e zcK9KFXYif8NGCQwQK&@LbvbA=D56ekM`z$%Z^9I{(%Z&Dm6645l$H{~9#N~Z|! zDe>K^Q=C59ILGA@b)By+7Pk_uVpD!WiLC%8VW6a`!uIDhfAK#L)T@v%vrZut(O%i< zQ<+PatgU6xwpK(qRAc~CH-+$HLS4bGgr}^$hPw7Ls&oeq=eJFsLNy!I>@?Y=yovnJ zE52V8?v5RM1&IlH{~S4eDNdE0+ibl9x8$qw@XBSmzP0^g4I6lSNtzpU4VE^s`KitD zPF~&86DY2yv9Rh(4#k3Ov9T7@^^Q^?PkBHVhnn3e_8wbgmx0oXuej_&VPvBCa_>CV z1M}T`M&&pDc21`kf416bkvXM5)X=p^@aj;A$4pKiUaZCqOcZG=74Lq(aM9Rhd&Z58 z-RKn$Z`*5Su{%9+SVAm@Hnz(?UwYJT>?$#CKWrj<6#G095gF#loadX)e8ZqxCWsGb zVm8y!gw?6b2+JUQj=7oN<|7hx|2~)Nqv%YXEK$fY0l0eJo4#Uah-MF~D<)GwWP~oh z)YN&D-u}#gj9uf_o<_<7!&MZ>an0qm3KRN_po(26p|GQ)`**^H=S1OtEe zKbSUygy}Mr#M!re%$g;Ua)W(W2ta)AyZ=wZOAOr{fuw}`=|U_$JtHjAg<03a9KIvY z@>gSyW}qk1UuE6SzHdO+sQBGdtIzfw-@!oZ7=J4nSpw;hG`Q&JQsrlOy*9qnIxx=w zxo%%E>>WIMtSC1SyMM`h65>7`EXUng^-b*di%8U+Ggjyho=R>5FXY*KYV&r7-6fcA zv0A;-&KF4=@yT{NWcl!uIk4*Gd&gRsaKi*`Y1eeEX6ieNZGte|KYjwx?Y=(Eqzm{e zZ;3piXK&+@Hs9k&ZCs10-8cmQm+DOuU;p8vi_^%a?r?FrL-4NfXf8k@6|aH4=Ox0M?j%s!=vp8Bj%lf)6W`EtnAu4pB~ zTE!*L<@MSw?xy+wIKVxESLn1e4i=NbyF`^2KP2nN&rzS~5I-(v=)1Yc=HR)x#leNY8wc4SE z1{c&xW(^oGNcmqb!W?KSWWM{8R8#%WtmLZ3T}f%h&w?CWvcoy`?hL+uUliQ-?^1?8 zLD(W82-Lm2cKlU1?dmVe%S64S=gq6E*6O`~h8>Pq@>#Xdu;8o58*i08i^b6U*2a?O z3~gBcUV=mvO~oV~5kt5p@Q&n{ROnv{=vk}ol;^j6!C$`epOEG>Or+;Aih{|1#liox z$@BT&@BKe+7y127g^y{KLPahmsR(BMQ#9^3VTIAEQn_qla!)J>&VGL%7R%Mh|T@Prv@l zJN7?tu)Nb5J+ycB5&VC8bzu4#J@jTspxQs!@xM1{I-`d^jHE#P#;IRFBGN;j-MPU1 z-}KNwbsnD<7p%?hJ6a*FeV_E@?kST$QN8q*A8_xL0C)PAu-Ex|O5f)Z=1MoOQHIvN zI7gvS+J7$t^)_k>%RXkeZh2UDDkY3F*Iu z&-T^fx2AtVG`-q4!f#D~);J$aUHeqi zg^tc-qFc+=`H0bUOl_aG^xUxMN9fi8EBDEuk2*>TzQ?~BU0l{y0#YG7QdGe|TiWrR zLhuX!xfpx|o;fHGP=zTQ8jGFq_pG{r39e7N#`qCq-#0El6!5yyDnoprMo+TGEaO!< z0IVPF&8{ctCyLVe!pCyw6@f@}UYGpHnA)z*!aF@0#G>`VXvh}E}rqs-2 zrq?Y0{ok2zv5Bz~qVB)K;W{(){ zTiWQPfT8{saM0?L>prOntneR-x z$puC1jqzxs=e7&&agsju9`#-*q~jjfSfa!M_)Wpp$E%$V(Gkd`(5H)s6HHkpWnsHI zi)}5bxqCcn=wXsYhZdkXe%sd9brh&k9UH$kppDc_<#Ta}nu1;FglPTHEt>ez1fyr{ z`8Eb*Cr<24$F=;D4;Lds9fyn5`O)ctN-kIhnbkr-Ye6Gy0l~~U9g#D2q0toe<)e!n z+}2hXMxtijY(8gd7X~|9nABBIegU49eK-mI#R9(Mq$M*#mWa(IQwJ*2OS_P$^lr^OUycFp?SsI! zU%UP=N$JbZFa8lN-Mfe*yG}aIr|b>;|fkb_Sp_MpAHQV^jc|QW(4XB zR?=kh?~VAGHlfS_ZQDb!mXQI3c>$i|kuU_f(4bb@z~%&RraRrtE1{85V0!W~F|A6= zm|hG0tpqCPb7Su7XJEHoN~6imdIkEb4M9fe;Oc0PwmOVHwNal7TRkeyPMp<;FU~iQ zuRc}`4JfE^s8)rgAiGl%^G;OEVEr?X4wxDgaGu7*N(MdO{uG@1ovh$HHjg}7+m23D zmsxUQe5+i)s}wKDuS;gfoKeOzIa&E}hU{ni3cg1-F%BH1Zmr-RnVNiy2B?emP1~h* z2kqyoi6mN+IXxQJEK?4vG(ivRb!+bDEJO~EQmkv^7{s|Y7k+4VzhEZpre_$qmqj?$ z3)Can3`74V3ct37i~CDyjcIfW7LE< zDd2{zM*H+O8^s-?jb*r8VUc%~yAlJZXPOCvQs?L7q$rm8m#fcOqs8ac8S|4}8?(+y z#TV8z8R-}H$B&?Y^da*wMk}7Hwq2t;?~q0O+G>p!animS9%SsePwW1~+7Ullf?Q@f zIc#HpozwBqq}I7wQ4zoF{d_(RfC9f6JYp`CO*{N3V|0p)kab6zSgPwa&T)~!CnhS^ z;_~Vlf^^0IT#gUuO7$OwfA>!G21q;2O>$0~@#}Rv@(;JsunmN7U3sY0N!o50mefQa zu+>xcZ;BPDNO z$U@;$M}%CV`@khMVaX3}WOf_G>ivU^9P6d(56Uq5`9(W>#nL;#vnG*lGM}&Z1vGQW zIskSgn2;>w14x*0;tciR(1sz6-oZL6+v$lLtA^8U3~m_Dg~oDWYW&rac+r4g zl!}&~%tRrjUD_JnnNnMS7|thStsNG8@Vo&*tHVn@2g<-q^Xj#x>IcakJyExYhbpIJ z`7ww}9b-;AP7hnSr;p!G$ob0?_*`x>PBzcmjq7`#Ry~6wr+V*U;Zne0k`gl*K1&St z{P-$aYPBXJ9QC;SUF?Zz1IMWf!w9Izf6w3GGl3o3dh(OrrU|xUePW=_d=fM78KhZm zDY4b7ZLV9?tpIg>qc6Q{NogWwoHfB9TD>u6bI^Nt29iJkX1Mp+tUOPM-eXM4>c(u6 zogo2r=Z|+c&p9@_4$H~uug_47aO;%~T5IIi zu8WZa zKRFt&X{kAnG$}Tkt^<;Bb*e$UpERh~tD>J?Zi4zAyw~q!G z%X}C8*r51x;h%m=&>ZiW4S0VnH+VreKHykpX3N_4Sl}yZjsW(G?;%5}zATmj9pGln z;%mhSUNRIIXJDZwtZA++czblP00wO9?Yyp9D*JWalIE4nn~6=c$skl}De1=U_M_%; zM~pN*^*VXuk&h4s0lPkIj@2Lyh?dUO*BhdHxi{?N(i1U+Cm*9*@r7IG&gOK2Oh-u9 zO-;d~&iz?Vb8T|E%41{o<6YXGpIxP2J_?iBo3`zDmO0pGz{m9i;x3puH*C7Z&=g}~ z;eAtf<}rq08CRfYQ%ZZr*;#r57=L4q2^ZUhHK&0qAO{T%e;~SnNA!W{8I>E-xrI_P z?!OtZxo-%4By|&9J`=m{e-O`~z+;#Zw_aKB_4U(1V$Uw*nFvqNZXK@mN|}&JmyL`Q z$Okfm6fdyc?TbhlyM6>|Oai|KuMJQ4S@PLaJscywt_3!mr=d}@AFtguddY1x*2TxK zpE$q#EiDQfqE;YR=$yqjoq4LiGu~)Bln9{r-Gb8#eewR|g#sc+E+UnV%8>u^zv+?e zAW4X{*PKb$#d=eC#W|gpUCDV+xE8FcK$|smGj86^!iilguMoF%1=3mJ8-f5P@;YJ+ z;nT>L8l`VTf~_8btJ3D-xyvUBqL)I&HOduCQu-#J4qP1Hb(6}G@c1}=Jg8CNV;iTB zwk~jLyG%b-_n3#ZMdSyw0W6?G&m1ItA=w$}qSavPSRY-yD(;_?(FfOttbKM#*)*a| zae}?}J>@%EQf-$&!mXmr|McmDh%8BvL#1+4TuAKfj= z%G)yO=ncfjgqu#CelLNo9-0+2rYKX;o~T)Dt%%xseY<Uj2A`8$KXdbf0X z>fA-cJ*Ys0>7p@z>T9yDhr9fisUE0Y(|SGOc4O*}MpIF=44oj~My|{x(wRl`xQsmF zG&rKcU%N8wt*erK{XL)La(Ibi`3<41EBapBWFEBx?%={0VbAf@fX?Nfe(M#s@f)3b zYn2d@#b(H`JP+1Er58;e6$ynLSoYJA_3Gnh5ya&)W9(Q z&7Jx@cBeh>oGVLIV!1E1x@WbCIYQKk6*cIppe};uh(eAM64{;N$KQ&LjHoS7_WikS zsP0IF!O?@SW@~bNnWuNHsqLN)zKu2*rtg_<`+0PXbJ3{Le6!jE;V>N*{Dk7M-Z;uv z*elF^Da$qONGFw2kG~_T6QlV)!C*(g+wA?t)f%(7zxKj^?bjR(Upd?-75{LyO3Jj{_IP`BykwU_|fywZ6b=wJ=79j)LmzXg5cKj)ytVy!Sr)7I7`)T!wLA;~ zEfM5W3vHQ-O^f_tsOAqg-Bb*sKauKj#nRrve9xSA21&<<#e?F6aOOQo@iGbBucmG@ z(5@O&vUZqVQ>4g?ULs>{#%h-h#Ve0eKk`5d3i3>0P4WCg zgG$ChOg70Gq{A!n7kXF7Zp#6df-G`o^Ngsi)7wnlW@}w2*UJw5|IppSK(>Df-*6w~ z5)?KPSD02bJNZM6Mg1Sg4`c<*^pi#2(Pq%i+*w;+Z{O84W?H{~O^fDm@g~Ah<;}ND z29e`qVZdRt_|AgG-q>KL1^0iIqBpcXhq>Oho=Y!?uv{WY4{N)hc z+~jbd!^2=hTm~q#vMp&JHN|mC*yD;46;2cz9KCjjT-Lwnb*F_rW35s7!N(=m>0RD~ zGkV~iYb0@&Q#La;UzAF09FEkfzAs4PNYVG(C3z?vu<$HL6b9Mw6Bj3-=noUo;%AZU-6<9)i;_;!1iZpC-k+PZnU7Uk!5{ zu%ot2zY3u)8O`)xi1aBQITv3gB6KRD^k^i%@Afo0DyA`4RZV{zZrdb&QhF-Ldo{{+ zFRYu!cGchHU9UnGKkkAUx6Y8|RWoA13S?EeOFdjrP+H#WS103iv)ClF{79Ao$6^V3 zH`(bxlkFQjtV1`w<|fLfvPx;T%l|FKU(}{@@CP)AH7?1=GREqSR-R=WP>^f%4&zaK zTa>IWJT}nq%WvY)`|J= z4U*E?y^#pAJI+K-jb%g)SxaUz`W|oQGG^87%g+yd@KfN!GU#;Gg}8552BvIk>P&s! zEASs6nL0oIBq;Ja&`;fkRk@qS(I^2a|{~8!pf@1okh1W?htAE_F0TjY^HH^{qO&Yg_^#Bjey5nVO zKs**xbQXMGtHxe?kimt^7*2FesBQ8iUD+HCCKn(~t=ifj0G(AR+~`H!yxNB-OQf}Z z7UAv)@liTyHCx-H&djUX#ypQ$bPmsFb_gsQ8`vzwQ)Zqe)=*ik3R&n2x75T0uHhEa z5dL}NVVmcmCvM00LweKX)ccCP2bO!_uebVita!zb7zaY}Crh%D^Vi$IYtXx5G`5HnbeyH^_5_NFEGCF%TegJQk4x)*Fz4>j^mT`GXkWwpL{X|L(yIZL(Z zxH*tRn3`Njyn_axQ8sW|rb}I8us@9H*{LuO&81u}VYw+5u1f7d8UY)ZDkA`8d)IOq zpme5I(i20u$yJzTg4?Av+;!x!t`Q;+wQGor6)S=`@51wHjyWz^OrL~z704E!1U=z? zIL{$zy$jdzFtz(8NbmKEw zPczE}k2(^T{_EOCPNnRVJ{2z*G2r=t)o$)9V}`oj5d-_5N$1x*Q(1=65^#7!x)z5} ztFtDBzlqD*fe|=u`M+|8r5t&nW~e5^g4<>6>CMY+@r(8K@(u3B7JNR^jOUV753YMN zSJkPjGh4^vXO)kzW~R@b3yO6IZ>SMk?8)^cK*;Q2JBDLPriY=!4P4WwDNMd`^}e5l znCf6MDN?K@#D&cjU^I0EKl+3)PI-XIYOuF%*^qrRjL+jg{TK*|DQB+HKPfj%iNTUs z)O7~_tp%WRkHSx8hl@Pg2@|uR1?Ja)fFrEbe3=>xl|s7@y--Vjax;lt-&ZIPI4PxxiF16AKQe zonqW(YK$i+IuY|TwgMMDiW=d^e}7R``}NzOyOxKWWUH1WYne}ICrcv$2!XwasU{`& z2I)E&nU^?pYU^fmE*x1=Ylx37U<|7xjccGc{N7DhBug5D>S}3<4G$a0J$68x28l`m z;IuLaY_jV#9XroIr@dUh`+zW&yaxy)ZMF3?UH9!eEnP?MrXmyL{+yqy;jikS-Zk-| zp58>)=zX6$|Jo;Mt>u|*rKF1Sx%$&)7MieHEfms!z2VN#kekmw}hQGTe zzwz$$-w5*Wr$8pMOH4beEx%&o|NPI_D#uiR5A+v%U)ts*_R*-&|JQL%e?K|3^pAkQ zAL5@I5fhic+Guv3xzN`P@4Cts2Yav!d4jKH&fK zl>6CdMJ+%+(9*F;@8uUg%3G;9HF1vl0}SyzH+8zHb`ZP*O(XzTdA zl_LW}g4N44U1Xz@qkYLxri-IpAdeE41nKr0p5Ea(qBM)S%x>FNLJLZZsONgNGWY)= zJKm+9u@n_EzLt7I|Iqif^g1_RYA*VP3R#S(jom=4P8~!!9T-=r-&MOVD1(q!ipk^V zV{1@$9O5d%;Cb{ADF3ufp;&SETp=QN9k`7*%?OPi-`$z;&JuloOidw4hOTl(03YGQ zY6wxX4yoi@y0xITr~hni&Yiz*l)hLvM+L)Zk|lGL@gF6vPT0OB_+({2q3mtX_0eDy zHc^Sx80f9JF7tgtx~d{p&N&k^8Wa$Qc%-Jrkbj$WP)~Ox-CaY$8`zE5L>N?dTo z(=I%zvn>HP^A$|jDUbQ;?i}e}0ILRrdXB~q&%fPSy-KkgewCmD%F%LEC<7}TO$^~ z`>Cq+4JKC$i}+}LZm6-fULUmQGaxV(T7TE}nInf-4s*3<$I2!?@D5%ph7E^9=q+14 zKC_%FNns=3+3I^bWQfvIM*(=`P-(rNCRGAa$dz*(JGDtb_s*7s=-YS{GR@w9g#Ono zW2T?tzTO6B*LSe?PbAvIIx2g6yXkOUg47;qR*1ursDK7SlU3Tp*s4jvFmOTZg_2@R1l@j0H zG+K%~tumQ1JoDH43>KbxL1}H;g-REu$ntl)H$ZpBMEY!E(BNR zpwp`L((X){E!t>_z)OnNrj4qNd=p804s~x-b^;{`{v%g&^yk3?Tm%cy;*XJCEOHei zpsu*-05wXb;O|dveoBc*3QA$j**wdTi6DKYoheKoqPi6nCYL)v%Vk?`0kN`bf919| zp-mr^mh(}mdS!d%&D3Xaow-iF!B;kQTt)LzIDi$Y0}7)D8Q5ZQZ+rKdwn%L-{lioa z!>vjMxN8VRN3&=jkkq|nSCL}!2!1$e(PuMJdOCQMfmEt*nI5IJ(Sf#p=Q6}S|Di!# z*1M1_LQV9=U?;uR^a$CWgn|*{$na57H`6~fPGVlC5-k6NEOKtBg{Kg(i1dVs4lmbv z&x+bS&ajGI8`y*v_tmbF7!*WDQw;Z2cXp(uw~A{mRgS`sZRE%qMp*7Z6OxqT3g$lG zz^s6;gJc$ymoh<%nXb)15dK>QYN>JX z$EXy|L==ug{n6ocg^K%Vl`e1H?9hnml!HPdxjmMbuoF54s`=o4e`+yCN`*`bFus7| z|H|c{(Od3d-B(0BV|K4IGBOn5LVi>!)L-jXsMBuKpDl}-8vaZ&uD6)1_ZmD}+Uvgu z@W*x!{m2WlDc?17ungxMG((9lmuG1X45_rzo=;kFYfNFTdD=t|XgsX*a8F!b7B?bQ z*?sY9Lld__Je}z8yfg6eHPyNqZO(L>ovEc8#;0rU1$_b-_t_!Q4yKm^(`IvR7Y2Jf zY;?j~eJ_Zw4jPzF!uyeMF`Hf09vN;kEkogKVU2o=H!>G*r8dJqc4~kp>i|1Q2UF%n zhh|2`7FKN!rk%5$z}3&M>PypKya~5_IeT$ZsId{inyq36ECD=;se$Vh-l+0?AqrQZ z7~b|E?;3dqmtq3tn3+9P3bKe8Xc6zJ#K`SNzp;U2r<TZD=00UF(tv(j2(-vTh!cz2W9a5{ip@z9AbgOOV8OtOGb#18meIWMxB!SUr1hS<*^&&&F`5oR$jmDqBvd2%ZF zsj)$U(9YYB-t`c(2Is>D`s}`}hL+Y}F`to#HedM0B<5FIJb93~wyIQ9Qn}U-0w{>u z`+*Q>(;a5#SpQ0=+{5-a+B7tAhllZ`k0X34XvBgC6$=Xh4wEI=UR$o+vGqvzPdE+Q z>|f64yZiC{RnSI<_9d~E8ak=Ojp-d=9ghM>2C(*1Zp$!Kk%O&R>Ed#1`$1G`R^dmrv*clkC_bA7H(m;P5gPLHXMDV*xrCc-r z{O3x1de?|cjMD?jXr02<+4lJ;EL?bG{%y2Qk(7Xdeg$Jz(kdf8D-7M(n)>>(jHivo z4^^8|oKzw7ge#vIN9L*iafC151^VZKryJAB5q$YOWO~@2h>^4j3D&rj^~y(TI>D}H za}|H+tzTSPa+kP&rhR+W>>Ns{z0bhMs+}u)cF1>qvk1d3jKjj`t!v$T4d-|s%-28~YCtIvCK!#Zu8>ER|i0oN`NYf~Qs z7-bU6Uf_gB){CtXo`QV!8q<;u>3)e;Z>habM~*I+-M(0MJyj1NF1|!O#dmxPkuaga z`?iQ^%D@)0nQBTl9|y&DkGD86PElwyZHkUvxOmbw-XOWDs8%yY>Y^v;1!G9dve-%g z=fu>wBBxTo^w6#PGK3mkWNAi`?v|Uvmd+$n2m|%{`t^YR+PVWWuR3ySbSlhk7t`ys z`E1hVHM%eNIf0filQ9BFh=u(yWaX|dAL8|j%M=P@C2$O#AaQb?A(ekGHR7VXpGn*W zukEV!my8tD7=MvIi@-$LG&eBpU~RwFxHoD*CdDh+GN{_9O9MrfQR*(!s{^l9U?>tF ztGXGvknG>U^m&@ok<%zh;%B__?rvp3Y;Hb+ZkcIvFu&+~mi?#o(b!mFwbP>@?VpZ} z0Z9A*!`^#FHMz8X-&+I}5F4UW1l=_0QbMmPAicNHR63DP=tWROx^(Hi1wv>c5Sk5; zUIGCE0hFFlq<46OyK(Kkul26=e0bKqo^^jqB+i^O=gcuPzd4ToF`7T7Jca>)yCx^u z5OATew#=ONoW{%@1X1T7#-Gr!A`!$k#sRmNxge*Ofw@v z1)I(IYgskik=g`718WkX6)(Pgn*`HSbo`EXJ2fNtOt;XR5|vd@MSJ%`m$gyf)%|@& z=8`>*i$hqteoLt|B~A52T?zfptKJ4Iqz=l$(~ zV@AfAHgotOV|}%F=Yvm2#BbE>>TVV>@YOkcoTsdHbjzlYNi@yb(D-x2$cxp0%2ob2 z-ZRhk7b+1UkceIBe{)EFO48 z&~tOMrI6nJuFmb>?agJzbHm@Xb?yFKGU+w$GI1Wfw7o1BMEH62ntTQkLs+^}@;`=* z(=M4xvoIgN>%Br~ommm}pO*H|#rNISQ?~V7ScB}(o!FmN?k*pJH?qw6XY2i=;FmHF zFA~_+TdWMrnK}IXxD5P4kjRdIe-Qky6z|?C+j2jj@Gpb-y7no&Te)R-CV1nICuM$p z3hzcJb^b*|`-#day!+n<{^L~;-r!}!ANNPD_n|<*&F6--aVn4Lgb@p&+~@XYae^m} z0j1;kAu2j#FYh>Q$>$VS_K~GwDi9D}@UbK8v5x629j{Iw-Xy?j7hIul!ML(d2Zpd>7DCF( z8Yos(b?Y2-bb8p-Y^Sr{D8%c`pdy(2fozEJhy(G%x=C~>!i>FlpmWBkQ4p9QP(?ngcTsqufyd6fb@Q5r*qSwKmCZ{Pe#|W!F5PJBJgJWX zR@K1v34!>eA;-lZkZo6}sb)_lsK~fAe)H)j7d>}U^FDy!)vb_MWaiR<`$otlJQauF zR-HfZ;}WYzo0=0}rZCSlHeSO2BGSdj;D)Z%IvC8*mflQwy=Y~*J@%A|UTC?bVVU=aBQ4Ox{?-roZ_TJeZ1;Bc=&YV> z3ijh`-+q4Xac^^-^OG@G_Ck#>BSCqLkT&*%FLRUZ3`hJ1Yr`bwlQ zZ#xG?aPV^5KwpWKjw>#9*!Zgj2KeWW-Bot%EP}ZaDY)O|ZPKjbsndBydb9lwR2j;l zcccn{9ck>9y$#y#`+%ne;Z2*B2${jA23S(0M2#|T!E~RFRYrw@H;Ri}87b*!GxoEh z#1DvBjJ|vwMORuk6~r$q=Yn(+ji#Px3(kuNXg8NC?cMCwyWgj3)paIjW$M9o0##$0 zKj&t@#Q?>AL#ST^kSY!GUN%_W&ncL2$sKT?WLj+wD07)KR&82VS1M^zh|Is%y|+J4 z4LpGG7o-(*=@dUZdY+Gt>iV@Q4T1;CKfL`RZvYD9LeRZZ@3J zk)@^XuRAD}jy;CxZ{AfGK>-Omr)l&AOT%hm^ z{efC`T2D0Z>iPe5?TIhv-y5+e&_$v8L zI7Ni>s{J|U`iNdP23_%rytJl{o+ojflH!=_?Y05&iRr8!C4TCW21u@a2EUYtCAUD< zE5)>8{@InfkVNZSCE%5Z)GB)o`-dBsLD_;&RvPpY0P;GA`I&ZK`XuC(l8S77-t6~^ z3wcjZjn^_;UedAKze~x0RK}yr;ysRE`R={^prCqpi2}keVKD93BzjY1J?ZPo7h&r0vAnQ4X;eA;`2_wsiUA`Jh_k){ z&2(EUkwW%$5>s!bm^_2GY`D3x0sE3%)1%;Zq{T^)COnkKBcc7Sx(jgF{U4uD-sU|N!1AYg zvGc|-$>t_3(4ZT&Hs4#*%^#f~a9DI?RNnZP1yv~e5a2$0cV&$)__ zmI~gc6^aPf3d^30H)94SOV-RL`zj+Q?H2U8YO6MZB$M8{j_BzAMGA$^A*ri!cfDQt zY*jM0)O`#mT9PHaPj`+Q3_=*5u&9U&AhfVFGp* z@*@~T4H>af4S0xYS`f25a;qT4JPOS_J`X-z@b6%JaQC=8=fK4$1@HFC9ifZvku`dI=?Y6SDc?(4Os2H7iGhI};N%xwISV?-_J`7iqm;5%OF>vh3Sw}S+-zMNXEzyZ z0xVi;)}3_OVYIxJ)Z3ndp~W@o=5zC>B4(03C}#wzy|>1Ym>vmLkDgvj?ZQ-1Aob1{ z{i)MK@Q?oMHq|`FGzzLw;A<52LpA#)g1ccG3D)Pbov>>5zT0#+wTj=8I@txq0a_Q^ zEVV^^0_Xe=1UkCa5NknpIu%Q@v!zFth;w-piQm!~)M&nP>C3TxkNaA|?`wPcZ-vtCmI#xK|**#61gin zoo5v=i;kjXe4r&aZKl707iQo5l*#>4z(`cI0;P(3+0GHhFv{(Plc5w{lP6KQ*?to3 z2rgwj864v`cI4KJT~+g1Z4#)l8Zj*|A1X9)Z(sy3Q+7o5*lXF$4~(q8jMSc|-=urq zwlmUo{-lTNi6$-uKCmm=k#=%tcEw+lNj+TBcjVyHoemL?;`OD&{>|0Z#XYFMWd!o! z-jR!r*1;QAHNO^44ngRDtH#>$xNSmbL^fe()!ZJsqa?Z3?1FY@elt)Xl4|TKPr4nfb!8&?BN0 z(?l^-Y>@MVf|pZb@5QWP68s0Q*_Ey@lD>)%a+S;UPS{(cFw$P<2mHc~B8Iz@>=X&0 zk0%5N)_W&!LI8-TvFnl*9~3>?GVQstCON;S6hpKf``?|jRifRul_TZBZO@)>~YQ$TYu#EUbSdvv2DrjtO^cSjp@&l&+il`{MTodLhh!x*BIEik3%eA~8pzM#Rz zJs*L0ocZ~FcdWZVKH9!t{Aoq-O_w%0Sk!KB(bW#KE1m#Pvp2W)w7mr{IbS5)j~8kv+w-68%tHX3nQu1Murud~<@XFWpJ0X%sLWHhpFThI$uzS-6& zRCLHD+EF(x@6#_EJAP#KBtP1tV#$w&;)Zdf4of`{P6!(zQ@|E$mo+>Y?JvCK9yRKn z+0Z*N%(A+3oNrtf(4_-9rg6z1osy3%*_;7!>i(!htq&mJqL0El?zVV)D zb&?1}PTpU$a9?Vc1dNcviEvREx2oR$OYE%zAsaOA4N+M(p`!%v> znAvfRGSp;`vooWhWDgKLu|u^~!@u{_gV3Ky)bJ)b#N~2C zk50*t?cFue>w3!>(h$h37NxT{oSGp1aODVA?UFF3qEh9gv2&pe4zy?^07y|HKFZ z#~6vg`jep6S; z=rM%KgpuInU!jev}p7WiNbg2P0$T}aP3oKmY11tX2r12#B1=efj@b7f68^bn$Pbv-8AmV?hmYS_q=>zk{m8=L^1n_dpgb(+1NfZZ7#5f`-gW%8&r zB3YE&O!ALDU>&FJV;!42ryno@G*tYUk1%2yejAH=UZ|&^*<@D}*b=98DdeoX*=K_f zG|%5I{z7Ey9w%5nr${n!TzGg=Q$~}Dta&N+0mpU9z@jA1;kAVv#x`#L;!+^!BXQOCzV4E1tA&?BdLbJZ7DHORx@Q(uNP+3>P2{A{08QV3 z4%kiti=`-5V@r}OiQUT*CxItjl59e6Ols#W8*QM#;n%$biOdIz6`4}j9dPwaZQhd2 z(d|T*`DhlgotxchKnuU!jM#uN`B?+AI+;G(D!VF3>ZW@gN-Fd}+GI5K!^SKAVk-cR zT~2shbP;?y=C41>$~t)k@tbW<5O*w!y^vObS{=>PGeZstd@oFVGfzEIqZs!&yp(Q? ziyFg;Kge_r=`nE%_Z51m;e%Xndr`i`Pe)~&_0x6I-V9T|AirG@k+=n#O@&X!MtQ^3H4atJ+1rAPcOkt%We&P$j_ty^dj*zkoF22J zwk|O)>bs1TWg@b#)T2Gj$2L_2DVxun=0(PdC-C5nZ#C(IKZoPg`Kw=j4v6>A_7zb! z=ufS2wt^r!#T6;nKg52Q*hkFNbHRi@SAbN#qEMV0Qs<+zvv@j+vGFY z=;bN+n)ef>zppmE;XSE+OdLHyMaTIsZe*FHN+&KO5P?yUHg}%ZoI{ZtS*H~nJEWE{}zqs^|#@}^vBCx|d z#_BGAh1dPrim3YpT&FO&VqyM|#{Uxdijz?2ly~e|d79trc6v-k=wn!4|0V0)|08~ufnP2%1b-$c zc~~iZ8cz0)p-RU5&dmmYUF-84$B^FsY{%^~GMYsQg)XNAha7u*NP$&$>rFUm>>!)8 zT-hUS5~Wj8c$qU$qe{OCUH+>cNZmVZVBamkj?C+59YM^UuB=Goo~FLh5V9OG@|kpA z@s)DM%oY5e!sBD49!dIhEJOZm0q!%$p5!kTk z>9o6Q%DLNRB_M+D)8NOB#n02hHI1ErMcW55nN7VTi6)u_+!UcLb2I_hTUnC8y?UiL zwN&%hO{(0`dF@Dxxo(cedD_Mp{XGBATK4M1I*mET=ME+U-s)83C@H>jxxrDQ3%ai@ zYG?}B(~gg^f+ll3!uhxb1bY~k6p+KfA+GHCca7xCt7ggea`4{!R_q3vyqVZdW=qTB z)i1^*9{NQ&T4F0-v;`d(thgt(!{V1Dl&yaP#RZP5dRSUErF)eOYwf zC*DPg&V?Yoad*XQ9Q!0e3>sd;VRtqix%2hB{8XBoz5ywtNRitM$NJ6r!i#o(ebDx+ ze_EGQ#BcJW=p*bK3Rd|crW!Oax!+y}cg_~psoY>Sk<5D%caUDZ(OdU$bSt3W9-pBH z!fRlC+j|8IX4R3taCPaE-4=-FG>v7Ki2ih}-Xd@6I(Y7bJkN=!u=pl#op{!Z5&h2!XPXT z4x_vAI6PCzgChmx^bGr2LVCPnM;A?jwmMSP9D&VWO{z&hkGvICEm-7>P%pbTyil@H z`1SIb)_wJ!+~6zj>m?Px=8;wP5OhV-21plYj&rxH7U!2Ba<8^gU$*tW&#l`I^?Q*`gg5(yInbsgby3XR zm&<8Tj+X<-K_OHrwfHty+j!w`F=C3_@F5Pg%yH7`45%CVtCUa4cBb#Fj~2Z za|YVkGihAZQJs2Dj*$=#M5`HkN^k#zFG25Tb%2~h2W5jzI#?XH&8?5uk(hcs3;a=3 z)@l47xvnk9=_{u+zj(ib0~W~KDk+DCN}em1@XH&-<@HdA<%hPqViHNvi$0Erk5{?I za#1~^omzXFpVoO7qvj>{(eUP2yTk?M=A)RD7m7oLCuQoF#nh}9*K8b`kO2$ZkpV*) z!mOZm{pNzh(r=jZJ!|irRS6S-3xZ)}U*F-9Slz~{H<`_?AD%PqG_Z614#u+3`+M~r z%L&QQp|MSTKJVh@wRs>x1@_f}6-cKEjtMQhJ%|F`T)bl@14u@ zUa!jf5o+&C0m>6gKRi-6Mh9;S*ctVWmn*T@n;F-LeuH{9jTYw3*y8XrsR2R9>q8`K zH`Ew-W?NQ8gJNpN-HQgL=2~3U*S;7??XFy1v-{}>ML21U7jtj{%j}QC0W2(vR08uQ z+sPMZBQCogkG6dQUIzAaIBb!5pv>SLiq8GwhjSTsq zSyUjeD-?y@G+#m2onI~*Uk_R_PAM4cNofq=D}>v%%0zzU)hQqc56P(|)fu#j`3$F$ z6J$zO{kKAG80=k5GK?eXj%=~-bRc6pFKXE6p?1|%eWHa7bYmHPYDe~;8RJF$+}%>G zFN!0V(r)GiW4U}VU^XBTHev(3n(`L(l zC*>`J@N~g^ImU~-n;n?RFF^<2x`A2_AKz<)yDO-nO!Na}bH|J>lWc9bp5Q$%_SL`WvjmsMoE5z+pN#0mk@G{P2(?3=TM+hwh)lCi+qfL5} zY3-o(SWGiWx&6h_jCN8is9-hNv|LwR9Cam(-pjfTEvaqggSmefF z;i~hgt&sFUgqO7vLa_hbuwM2Fd~}<3?LPPXwMNX{*~`s3lXQ(50{qta4T3Jv{B~8j zS|^=%zk>)QqE;PqKhh(zFWA~w%=;PRi-2b?AUBkc4u3x=ENVOtaExbsFjn_juJxyA(!sv~k-qfjD=8tQ)F6xeY%2NAx zGe}CHIoj5K_PKN3fOXN0UPynZ z{<=zr=NzNXnG7KEk|J%~lNYyh)m)J$wV(sXEgSRX_)4QIJY%=j2TQH((^%*2?G=xk z@yY3G7p&Q)EHv2;uo_mp?(f&hD8n<%a9iWby(R7*RT&2R#?_qFrH{r#kHT{CKPdiO zhzU`{hFPxDsaFETv8ww=5JpaWoNkKHG1WfKlkN}$JoGfuTO3}M$ht|#Jl&o?wz-#G z1A3)d`=wpi$v3wFl~Zg@J-(( zce=76G1k}H3o+C?Mb2~MQQ&1OtEur{S?bL1+>+Sa!z`ItBPdaBxV)0tfQ|5dk1JUA z?<~LhIDRGD#rfid=ZuiJ`-O7vP(kyCN6)9Fb*}N0J4ZAXMUTB4{ro0CNq@Kj;@H@z zpwzAL@vYQ)Z3Y?&gK13;KJV^0s#Rk!&67=B37_zAQwN){wUrY=ulX%4;Q=k)q8IEB zk#r~f7J@bczTOScB7w4gv|gQjp}6%cf(KR>Dx2VU$J{ck--r_<$vjLn8@o~FsHOZs zJM%r@o)l-!HKr3IvvS?@fkE4eCFZ0&8o<5PX>(>cwEM4pApt{i1wNva2m?BxVfv=9 z>bzsxv=o+r4>VVp&?eo6hdpJC3y{Vm-50l(SfJa3wWv*aQs(NWDzNg{n|o1$t>K}x z*|D4tr%^@a(9^vd?0X4V89s5bY*=ct$;xZ?R}<~gnGnW`l!a z&*7@;M{E77wx9G@25mqU0{1;~_Nlvv3*{;GT()_R8fUzQNIG?{kLMzixQ4Sp{`qS{ z7q_zx6=NG|s?1$DSvsLzgClpribDR_S7wsgk~UPTN&Irs$K#BH#*GHTr2!E0AqQ#0 zdk1QPV#`Z6BybJ2`GdfFv&Q=;OV|sZ^h0$gYm+y(5_GvnE4gpgd5lL!)_u%QdUthd zPU}%SmEB#k(01t-MIK|9zz_MvD%X|nld&*w-Xszsn|fH`91}kN&VFkGj#-x$sE^gP zr*RUjY@Tj2vg%3mniueP_m~i!kGNTY@K-IcJ06e2+zM?_ODWO5&Vbs8G`Yoh>LdHd zdH1ti)|S3==Bj#}X!3~Fv4{958!eV+aj1(UK*~cEpKv3X@YBEvGSBHoCH061x;&Xi z+t22z&j52tB|Vp7v6we)NohH@+G^+=XFay5WpCFcMTX>>Ot83;F5_)0ByyCKgPli? z8suJrW_~tqmA+(qK3;;|NKvXJ(l*Z|MptmX!%~bFp$1hpnq>U4(WE3+cH?qNqRu^T zsbyuWa(j>+x@RD=U`QLUZzZD&woOTnGoSln`>{{X+u!Hli+&ribKM(iEkwg`vw);+P4km)$v5T=nx@ItCH1F^%=2}FCZ=g$#Vs;S59$04^UPfz; zy<;E2qjEd9WYW+fDOGaS$Q{p&SCyT$Lcu-b6ODc2toEPZATJ%Vr#rSGEj-TNbG(IM z4AP|z3pIlrs6X&frp()X5o8MrB~4?i#Um}CBKm84QHUuRQc7rUTy~T^6sZjQo9}$Um&9!X+j8< zfiJgVbD1t78HPFq1y39JwQ{&)9}={{zcH}nNfZLMHUOvyZ%MnANN;Bxbpds>dNEl) z>@I3~Ils|J6_jH@snY&nqq~VXBxR))*ED1Us$#8bsB6PURjci*n7MGvQf3_L){Cd> z9z}ghFsZpNE@B8P>qI@r^Ej{qC>1oi$hn+GCcgEbEm%2e{%5Zv8{ zv>sY6NK;sJ<)2*#x^_2fC?i7esoNp>T^suO)4$uEpyT@7%}Gj{(7xIsTVnuKrQ6~< zO*i!OCSE^I_v(uO3R)g&R@xXFruVuNSA=;_%@LhQD`_D+%-?mkUmsj^Qhm>#i|w6% zHC9r)`&Fhu5(=Lxvz6q2E_J%?`0$MR>gt{BrPm@p(T9<9trr6Qgr#hnQ}ycl$EK#VP^o6$U~Auv%Qb=n2qzZwkfH|lXU;ANdJPHM;9RRvp-FcLZXcJ zU9&N}D-FGRb>kQZ;5xmh?tdt>$}p1k*+ZkJM!C-He}2afeT>9U7`8%kA4mND4`*Nm z;s3ppz%h9Wo!-LyjZ$o0I2WsM^zHsNrhokDZl3}XbM*ejjP8F)=yxRhaz-;iMCr>< zw0ov9LKT}azqIE{1zA`9y)r`3bpT=54l+hv=lhp3{g`Fei~dJ7uPk2s-5**2|3jMU zd1cZ4b4ay2$C)GU9|ZTR$QOcesMltPoa3GEKZ+UtGUR`J5|JQ|^*v8t$3*y<+dfsB zxJx0~zbFzrrF>ZDly(9>ahHhjn)&+qp~gR7cfl~a9Sw37v*=4>wjXs% zFW+%Q*PZV1o>L7jIx3-;VtZVp-xQ?bJPH=FD@xPKYk93oP9NU zf0AP*vVT_;vADvk9$q@W$M?R_NN=2heawqy_2*)Nq_*MV(qHTG7B5C6K3H$%G?y<> ziDKg?q0`-!P2O|!04s4Mx3GFicQLPu7Y1z;{5Cqa!;?_ZvE zJYn-0jC!5)*Hk}xoYfnvaL2Df%x)nm4<~%145n{xQ>jMlcwJ$+z(Cz2+gs;alP>Ir zWFD$YZO}u~ap53P1nb?TNMCFSb0jS4Dv}PaIp35pMMJ@n>q*0)sUPM5b~%h;gHo_R z;?rzu{LZmMf~TYseMWZRqvwP{r}?dblqJt+NMoR=d@MIFrr1SS2T~x$j1bl54(4m* zT3KZQxJbU+S-mn{Sj|=5qedQ#OHuu9lj!ff2BxK<)3{sfDBPGqjQYh5zB0O*2HEb8 zY9cRjH_uk2SJY-TD_LdmNUQXf@*+4>4*6^zheR(L_A-cn+c2!@PcyT+t}qZpg23T& z->~1nlpY94K)&-hzo$9&PDuF@BaWv(niNg4@y*#&TfemkhwtD>HkP*M7UmqeQCwyo zoU5q_|4uEeKCs%66!yo)n_#aOE)ZcYEsmkj+6;^Y*sd$ux&jOx7d{7x1&3tjIM0QF zO>$>IjV@SioeD*7hoM&~TSFj#^Td_S=25(pmG}`^$v|`-rU{+lZlBdstLd zs%@+SAF%Q0nPj~;4EM)P1QXjnW{@j(^7LpO!;+G000Y-gXebZxrAY4C znGC%zyr6vHJ+WTmTohNoIOCD(bU}LFUU-kbUw50gGuVKwI~7XBno$^{=cq0J5aLTU z52-z5ECA@FsAUl1FYj!bEE{{>!hYNK5j?$1KT^Fr-uDz3y6@I442xur3i8>~T4C}o zsgd2dU;^7{y{y;K=eh;|*MQ!*+h+SzhDTKuK;T0M!ux0h{wD4%DR%= zD{9#{6?7gn-l<^V!^U}_3-Iym!*P!lmB{ZyFn=7*Rxh-zaW&E~f!N~a~0Ws$4 zlrj6}X=PNH;OzZKzR46vzfEPyy84Gch^Bl?<(0vR!5CIAom!aZ12c7kr@j(GJzZOl z8jf9FY|`~Qvm2We^NC z2Y-9+iz<1;J!F}Fxld{PrEg+~MBU2q?$Fvt()+{Y+AdIk#EiTuBRE2b)^Kf_yBW=h zb{y2ME39bqT7m2%n8T}T2GT@vX1B=-?@rN=@SRyaBwL)@MO!HaNiro;41E2x6?t;|S z>XX~gRz3WV@yLx}YgJ*`?UpOFS=HCbB%=go6lt<5DAWu==p_YDC`8G*nWmAHmzeH_!nuQvCjcsN#tZVv|aNzWZF>u zp`!N@EiCBWF-mJW;YjYLBpQs1H)^anSaF0>ub;`CEhBw>VPhu7k~+0oj@KSKK#(wZ z>v(@j^}%##)7D3dbzTXl_4^vnS)x86H*-pss4n3hq+Tgxz))es3quPZFb9$hb1NdE z$pv+>$@1I=5dE750D~PYpLWM%%F5MtJ($T*%w=l#@O+I>cj8i_7K{z)P6mMgX{>2X zadG}f|7$`X&Yf6u`JVSNP`={1yyAX_8gXD4+fSQ7u?tcG<;28UTv?+U&sXPY%EPNk zn25IX*%f2Wfp$`P^Qi9mVw$f=(FX=7QaRG|+0($%XWF(v%UL8dY7gSkv^_xVtyMXSdaWY1Cc9BN=o)8|sIyL|-FxrAiCO-umJ z=Yplp$OthC^B+D($81w?XJUpg@if}C*pU=u96=(li|p3o@>cYie&~*efpI(8dXn6A zsWD+}@ySHBTp1CfKt)pi)wC492|EvH zNsz2>7I)%O@>}14y|Knc1$Qcpx-TuB|{U2bP_H)eXy)G@X*9#)X%+rKV`@5AnHndvTMYsgN01)SMPJ; ztoWrIZh7qhBmLJ;t5`FC2uQvd9?049igq7uYJ5u=#WGop6txWw%Ut*42g9pEnVbIhLgwe>v>sCeYn{y$w9B%_6g1VXWYw0*du*`MOrWo)ycF>E7O-t2o?KF9A0X z*w78z2OitgOlk{%?V}YcUxGfx)7X1OzY2aEK6&y>F2zcUd%5nm^PVSVl&Y?4k&-lhAVod?1C!l9YaUr#B;f9@FzmlzO zb=uJK?mp$6`ZB6CH7rZa!634FSjz_^Kg;X!gGzR=b|?5(jvJ!LicB1m}kqW@^#^Jc|edX?{A2f`Hlrr4$G zIZYZCfzMRkC7GjMP%sc2*?&+ur8+YmlB=3;mA{&d-e1JU zDMiNPmPz_ebLqEj`S0HoXk{y~g|N?lnk<&L$M0Uj;!@``IzZZ(`n!lee!9DUa+lH@x{;?1gzzD?cduG?kp z-fVdHbDFDk9& zFEK;1r48$=NL#Fc)m8iGfq9FL*+_Q|3ix{md#iPw1w`gJ6buKudsJ@Y^@e>*ee|$p z#`VUIHT^?FaVZWC5mWH#%GGK#{0Z-zXS|Sr_Bq!L(u2(Ao(Q6rv)B3Gm_EE54e710 zP(QsSX`*r}w0kk|V6TfMG^};GW5;8%gKZ);f9dtTf;6+>Ejr!tvZ3Cy&3}Fp%>r&*JJR z2%mD!C*sRak#Ze;56g{vu)6Ug_mSM$JA_}(8NGA>9p3vpa5|;Agy{P9|E4ARPU5@c zpUCmgE99SAlCcVs1OF*<@cW7O<;=B!|04HEVAKCa?vpusm+nmYf7VG5K$!Wja-Uvb zCjUT~Jb+(ezuLQZz_WvsP zx&F49Ft7eB|Bp`uxlaPU|1WZ%u?mNjf3M{K?-hAoVVB)~hgSRTYT<9s7-BH>jy2k} zZUOp;UTWwsJN;)RAt5rcjxU)!W(Yr13;6D-up%h?FJ8!MR0jUD7t|=)qeA$i>Aegt z{u@bt^GiFEHT{L0f3*1=F+ID?`q!9{;H*Eo;Y`<9UwlW%%;J2P{GYw`A%^fK|F^oo zb=v>+&YW5jvuZ06cHIP;JDE=y{7&viy6QqzQW00Nr?h|&YzH>Te%=c}`t9!u@ zu?aRN?JVjlyi&`rWC6oMojPnDDy83J8(rXf{VSpdlX-KkPgF8q8?><9Spe~rW{qA* z#&}aH{EmQCE|Iam`FbO<8KQZvB!z)3>A5!5%yLWFwgJi68NI+1h&F3F+3pVM4wVsE zBRX399H3}yrL6IDXSt{q^JQriXhN_~= zMT_kwG>ZlXG=^uFww@V}2k; zjw&^)YmtWEE6<_eD@kyQchwtl#ZiUA)twxJ9RYhggJ4LA~wI_ho&cUm8 z2&_X*qKNZ*{(*J|@T1RMf6b~8icQ1yqM>~AUmOnDnk9Sp{jdY2F8B*x(7H7I)_rHs zH>8(C)6Nl>*y$jl^4$Kea%0PyzIrL7QBEaGpZQ4u25ns;dMJvW1=~0YyAy5fzO5sK zAOD2Xh`bunZk!xtuj!XBdbHNc0oE#rjq5I!@k>_{(jDEZkGp;YWMZ`Q{_9f5L&&6N zSw}3Zs~px?l|e)%nTqrYbpppY5LTO=+(Cb>F!4G5b)lm3=$xNB!kPzq>F4h9NbRo9 z@QdpTRh!}AFx1zPmqZ`^>Zi7t@82+mj&1noj8{NXDuh_^M&5CA8}4P zHZ~a<t&E=RA~Sb)Hc&F3R+s9ZQKz&-dJ*Vfc|`i)~Z4HGG;b!Rno$5g+VSMAZ#^+>=VpIO;g-fi+~r9UJ;G?VgcK*;q z^9iN*h$)ZmuCR}#*0tnEbH%zXJ$7j1Q;=(9F_Hp?jw|#S_2f6)g@(L zO@HqqSH;xe4Ua53Is8tR#sFBz^B;9cVQ`Sc-a_DIw)4=f3wGzlmS10RTfA81U|vvg zS&fhFe9Qhp;>nQT>O7|qUJDEE85ZQ=QwzkIU}yxfcol{cmgdKna?Z#fT^BYZLzyh^ zB`*6J?cm6~Sj}K&nGy;uV~qVf69KYRb0DL)yHRjiHN&rK2iO`<@|O?LCL zs1AOzbcY?A9DW6B+mW}<1ufmj%?`BJRf(FE*Y9VALBU#G?8p zAbtU~g%4r_n@?~;9OKnQmz_qLI>wQspu*g%r z%J?&EDAv4C;ro?>_I;s62XX{)S8%8y5`XAu+u#E`u5g78XsHbpZ}^vfP#9ix2IbrM zVxf~_z1BQheNM0(p9rv%19SskoGZ%<6?LJ zTJEJJQGGkEAE1wGoo<1PK^n%#WkT^+2G*vVOBvY)7x%AZqA^H0py2VZCSp>C6wQL# z&fNIT8=<)jQAAbOWU`vcckxFZG(xPgo@CSuP=ZA8a#W~)VrnA+4u{el6j|+L-q26B zlaex8vi!DR4xxY~2&}qrD3sP|-qV`(M&N|x1DJvuEY2+PLU`%`_uC%{k2v<%e_?bBxjWM#- z97S@(nF5P^dZcn6eJ`m~z5x~J5|;1Kq&06Mo!DPU@^$d9+X9AHvco9WCVc64pV_Rywi4ucH((?TWIIi;i z9UP09mBAVDk<`2;zNlR9;!?FZHtWTanD85`m+`RG@!VW12?#sD5&x}mwMK93sH*eV zufu+flljp#%eu~UW?(P(Ag#8{f{KE0VEaS}*yETMuw1JSSnI`?UP6g+#ODeWPzqoN zC;B}Ykg9XY+72F1waMExPug}((UnOI!(S+P2Mo>X`?!kxmGS{;!dzz3%hfD7tG zR=?nJ?+T9EE{ZSg9}a`(DSA^@jQGMB1!ZiRu49m)fT5-meY@NPt5!u016_zrPvm|{ zx(NBg(Uvr7!zv5kquqDu-5s?(-aAP&dl2uF)nVK>lY$+m7o{Ay6Ukq+TX=yFA$?sbvt@Yf{ z5TJb?-?Xd)QYp)`$Zt7NrPH?!vaTerY0B=`?m^$*@Yl}L?qJs`9LGiat{}dz{ROJ~ zR)6yUBjeuAgF2cA^Th69DSvIFednjHePg`lmY&<*wpaqV$f5zL|=2kr@hmV z%gqgnpm_8>e!~jKVao~eT#bg#3a4~R~E|D*0^hF+J!y>w(t3L>Wx#lmggspWGXy|Hclc^rQH6$ zoVqd?;E4HEKhQ|KfFbu|1ta9y`Uxr@RZ#SFM__*u6m8?WdtK6_MOek9&GCx(wHgjP z+sc3<1l*z$G`3UjXml_qXIeL?fgEc{%Ztxap!8AFwcT&p`>q1%Bn-o(S|e(!rz1-k z;mudny%5WKGrsflb{|Vc8utPh$zz=Bc!WZkKBSge3_!` zQRYA^&aqp2v}=}X10oxtAnY}6DIw*mIpZ?2{AA>_&d!5vST=fG|8AaZ5AxwCdi-ey z!+4$5RPR} z;hUS3^C@}{*S4oHRyHph5o`iL zL0;R(Gmt71vHh#q>N-WE!gj9mq-0{v0ePP>Dpu2MUce>3(Ck!IgdkONy9kR47mCN# zLnz;0(Yltj7%i+YDYXMk7kC!qTcA9~+bgcG$kG4EaiZA7ib6rXNj^^8J`_Qi8ZrSl zo!GAQz4OwJzjH*-Ej)ec$a^btKY(+!A2RSnjD>weFg@u7oHtShTwkIpTutHTE?Ad= zm|naLbtQgu^cJLO=a7`MDERHZbX?#?+n^`l&?fHq^VoP(C5I z6P%n*Ym3FIQ&Ut}PI@80m(@t;WsCbCC_GRCQ!(~oi&%yNupD7=w_jvLFN@uY#prFX zvshs_H-s-qUH9%lqM-o5wWh02u~vDa&O}r5YWxT!1$R*~nVw#Mj?b=|*E0$8(ZDZ5 zr@m&D3S3B{K=V*1ur)0|-&_k4(k1N_>o?+1`6VZ+Pn@F%_QH_&l6ho@fT0-mLGVf9 zj*kL=cp{E@7mQYT2PR^!A2Fna0KU1%Ywr+aGqJR4KsJ$^%`cp947CDKDZFR~j`*JT zw7I(f6(kYMl+vzOG0G?Qi+VXJe{XHxsL7a^48_v(;mOtBhg?(60J%Ttc?8X6)!Jbz zX*JV2AwZylZr-f;kj3Z=rTlL;&%V;}@-HP_)T)V-38zWFXs*2K&E0bKEco)P%xgUJ zYXB>&HlE=RfZ?x=m~~dNpOk#X?d}kJbf#6Ir^<+f``8Cw^+J&(rsY&B`~D|`I=SH8 zM;v3@>%P?zL$P3VPp|VS%b-Fv<*~~G(JsG@o?!HQR=t&hUeI_BmckQhB!5O_n~&*# zx7Y6XY^2NC9%6wl915-3#X0DLmnO+qw);Ps#sC0rn#xFp{ZcBzJTL8oKBcoa`a&jOD=D`W@%RA40rNo9 zAWZB%m6J5hU)&LtZSP;V#f{ZnokVLU2mu$8Ety^yP$bFmjqdD=BwX$S;tT<)Zd669 z#faGXPnd76b#wqNKWQ~Xq(kRZa;{Rb# z3$I)%hkk=8EikkAzUgr_Lj{wvt|M*QOR=1lK;gx8SEe3==q5=AFUbjib0 zA2cfrji92?oi5d`>>wt?&&k8jG@2PXxV$Ahp@^{6cSe99q`W7wXB&|eSM>j)&0Ei!32x@1orxF-of6Czxn56e#_!iCzL6SC+NdaATu3JU5nVL-uPPz)QOG+ zsNGGZAGa^i@JzL(_y`QxYGC?`S6Ju>rCa|#L>=3;w|7=jGkW{@rn24 z!*(o!C&DI7!QKmX1kTnJyBX7sPrYlJFOOe1&ApKE3}Vizx*tLdM0#wG*9a$wu0+kf+! zUq>_V$+3d}Z>QHU{02JjvSVqz1y$T%1ozi-`&nE&i2g+B!i8T~`m1@wKU-jBx+3Gn zmwz?bxu%=N)`Vuu59h*ft|@|#W%gsi41bsM>!{%tm-zPb`%~fzf0y#t(Xuuc+xPOZ zpOf4FIv3%Nt%=l8+Jy_huJm``6Yo7E_m%%huJh-&UVX#XL~!=>@`b-^{@0Nw85Z7` z5y<_fnduF%n_ag~nJ)ZY%3nu)WmtZnYNvJ9WB%jbskg8-`Coc;n|DBVl&ii|p@$WAX1w5F(Ahq6x{aVV&x2=c?t2gIDUH)psWX9s7 z4x(hTC>kP@y8_$AH%b0=2Xr$xunpbwgz#Cwzi;n}Dpr|IPlW$F*58BG?azOh6F(o! z?9bNmr#~Cb{#)EX-^>5wjoC16p@NkOSLLa9P-dosOw_kz(ygf&G?@#ENn^$tBKbAy z`d4IS#FP`B0t&|RTjrlqE*Gl4RtcLh_d)r!!7UVC?oe|xOG>sdj&A%kxNiP1zWkNr zBJT*MdkJ!IBQiuq&+!AS=J74t?at|&57V|dJ%~+6sWuL7TzpGv`-tkXi@WiC-RoB+ z?b6VbnpH)%sO_ni37tB$032Qb4*opWtHtmD>dPOrP-Ly%fS2Fe{!@@$6S(r4=6uq+ znHy(7-sh%*R{A&m-5<^5EZ`$;{q66%u!9aW-~x&yv|g5W-BXn)u3)A7^RaF`JPKrJ zP%N+3ahhpy$#4jFOlA$gytb#aM%#^K30k}K(?g-bg7jMcOQ{gqFrWf!t2ZH3!2m0D z(Q220Bu4qOj*#bq`QYivZ0*^NYJ()>C~8&Z*tAuELhTsvCtV+x$!nnrV&$knu6t}N z+|Aonw~?$3ueQR7d|#cJQp0LJFTDML>#YeU;iL>zFOTq&K1(n40*~FXF2FfS3b{4F;X1#j9@0o7A$z%9mr>N02qGG}-KF zN(Q*Fxl^v-#JysqM5A{lq|6LXA4z0SaJ!TWY<)Y1eN_FJmiYalF$ob7XibpS-JV zJPDLkKh%x;Q4s){E>+);C369G>YkgTk~#X8+Ch85drBwDpH7nZnE=5$>am)PhW#mr zP1mDiQev!qb2P`AC5K{Jdx}P8O&msece2}IRr=*7vA{0X{0O_OUQ1n-Ks*hP-LUqZ zSUsq0VZ62dSt@x>?fHZ&MLExVH zJ6?}ryF>K#L6B~FhsVM{Rmki7z+#yr@}#xuV8eWdRz=M(0Ko+Clbx7{f^tnSK5#=k z_fBJnKPHUUB=Db%orqe|ejMuN$oZcW==@h)I?4y~Zno$1FC8W|ocLMoH&0dFj;R$f z_-INR;2NE}DMY0VeQ;{Q>qk-5%#-%A zJlRa z-(8<7j8bU6JRt1A!e{m!sws~%N2BLUX9e>lt2%@u7PmI^;0TL$Ue#<++t}6k*#3mP z>c5A)4^_K7Z!Dr#CYID!_Hv!_axyAS4FwF&?MC-0T~3Y{-u^I%)|{9QC^A}#)|s@Y zQ;lDlb6s3b1k2YN=s1-bY+VJMY!h-|P5`p&#f%O=*93$?;>DFR0Wn3Eva*?b=<&Ff z6wl~+ett>!qpZ{ZwOeOfJH^cl5IeBAN)h|8)t_%%EF$nWr{b% z0`&xi>Q3+cjZ*!^#mHY7Y)j)Fq7KQ`7b0TwJ)XNe zd2x|bgP^@TFV+xuaB*0@rdKU$uGKEur!{p=iqh|&+Cu%$d8u66y>xMjA@U92Fw-;K zr+K)3iD4+S8;*{?Vx16Dj?Qz|1G+SieXyUW$>|Cq>mcSV~f~S^g+(;0-DcsDTi#lVr9}3dgt6icjUu9 zUs=1JR!~z^r#gqwA;jI?ijxw2po0*X$IpoBc5zI69qa2|FeH&{z*Xl}H0%{$NxHI~ zk*+}+doRUFgD3b5N{)F#djj8A%QX+*h}T%x&wCRb?ILd-M@cojf}Z8oZ;?{{>OASw zBu8Vj={}@V;hsNcLYEH9{tR$|=D!l-Tj@1At zMdZj8pJ>)pa*RBhuIdrhwxZf;`w-9{Rw5?^@1*)UNd%H_#;fO<>O$IYDfCB$`B_Dp zm=3Ax{fJ5BZ_li3kIuR0RLc9!g1~7~(Bn*#>Y)Y~q(7wAP_R$5G82@8rn<#hO+HxI z@Kol42gOiSSA+FAZ7ZbhMpSd`-73DakT0*k&fVMoLZjrClz?>Ua^;|*{X?kQ>X9<- zp-`H$6Ek1(!o>L8g7)+2b?0L&3PW6Vy8XymF{9cm+=`aOk;O+5Y%IJ;C_Ee@?(CRk ze@i=213yEn`;PGQqE-7^sz_bm5!zkV_J=8tww;d;k%Qfy-QXdW8uaAr4xKxYvI>dR zpUdw$@ql7$C`nF+aArX=+ireQT2_JOa9!0d*Wtk)08b++P8@g9AmMcgbX?$gM*y+F_pH(^YsKLPJs7H#@b?vdjV}ZDrD{5KWZXg#e zCHrQ^nuV~i8z0sb3=70Kw5h8D&24f=S765jtpEpD;G_{O5H}yW7AMQ}p|@BL9&;); zuG9G<&5PJ68$gKl&{L_d@VJrSv*}pyw-qv@98jll*XI`Vo=h9L$}N|lx4)~?U|6(` zQ_t921L43rsnn{vouEYRDp{`wErf=tO*C9qNOCMC8=GvaM0M*kdYB@Thu4?^K1K;T z7;>iOtQ@TLa|o;0Tc0N}Q=TX{YfII8eg|3 zgp%CuxV+j_(k8vliOVEH=`cAZb=(Dnx^rRUoE5p8hI1_D0T-JLp*-848^LLWnd6!$ z_MZyb!)j>*kN_Au_o_NEw?va}z4ny{9o&{R8uke6{*tzv6cq@cxMdmX7B`OSO5KN4 zK2yR55C{qcbtTB~TY)JyI7zhf$N7#_I-w_hN6@fwqQ*SD=5Jg>$4m)pSAJ?ZGfXIP zht#Ry83%(IL2~7db(i#NT)e29wzFC7M}j;J2}J5cA5?f6^qhwXhh^d@rK6KCMBjcw zoy`rhha6$v0!}0=bmsQHiH{BCii&SPqsdMgcNm6n^jaw#dw27I3?hMEAcJJjAc~r{ zZ1~${&5zae2)RYZYn6}m_{vR@14weO(x5bt_#2uo8fR` zy(vqD^f=Ctdp1QPxhoxATQ4d{?g`ARAi6w&pJGk9@Ok3$V8nw@n-scqn z7O$%&9&2>Dj`CTHIfuP31W4W!hgL|Y%ch*G*`E#8@bW$uvOE;{xO(N^2L3B%tXnn> z9sqg%YJc(_LSn4(|E@j2l>c0B{*yAC6}Y{uoTJM0n`?Efr#M)~ZbBzf?VU%lY({y@!$1ucZpm)h0=2a3S!}hx_{kqf*yz{Tiw3c}{3i6kyAUk&X_^-=rTR^C zr=Nw|V4iS)YH;C#7(nLPQ+4%R;@@0f{;cI0uSQM&N5NwyV2_WdbO#0QY>s1Mm#s_^M=3V3!2#&S;uzZ zq2~A8=N)TE34>N2e>YN|Y8;F~PUa5O-ZSeF(b;;`KNJ|tYEbdwd!v+9TS5Syl*PL| zsP#sRh^ziEd;Ea|7q?5$Tq&>Zp1YSp`4gp|FWFW4o3M4cRLx>$ET;n**C z6UtXw$S*Uul$tk9EmklNBeCuCtJlm_sxj=)`#D40y$r;60>H}J6x(z|JiJ0>1{*-; ztmz#5B+6@XL;%24-@V*<8LI5Y=-{OCjuY@yq1TL~f{;djL3ys^jTC4ykH@D0)p4AS z;wq0`%Gi0$O2`J^mc`hX?zllwi_yDT{iz4?!Y?ij)|@J$R1+x94O&m6KW{`ysl1K2 z=)Oj~;3|2)NQnWB)&VGI1xM*9B=Kob1iYx#ohV4qigyL@$!MoW#OzVLm)bJ7$K=l#iUP z@u<&%nKNE^OP2Z*y=JrGkOqHZ{-9`l#lnJfU}9ChIVp0%zg{EFJ2~I$II&bTD``ipl2}Ue zh5VqBl9;SOowQRw7+F`-@NvhUZ^_x71uQoU?ZA==X<{m7ctIr{b;O2>IJVPap`591Br*C3O1t!|8m^;Q|t; z3W3o~UPdctB>?EL6E+SMcWF!w(`Rjvg4?As+Xakh5ThdetGp9>)G(W$KX!$P11-4I znT;%^hVGR=u(Sor7~-N7L>3OiWmvJPjj(a7)5JlnJ9wE1pFC%f#IeNP3%dGmY8feb zFv|xpFNc7-`dTf37jmBRv2MMHA2?+K%3k1D7jsV#^|n#=;D_3ANnr)3q@vsbZ*H{qo81#}rrzFil;QR4Alfc02IUbjcpqI}s>imRV>wS~wlg&_1G z#DMg|)A+QdXuV>PHhJi;c{nM;Vp2>IM99R*tf~iTvp%mW$0t5(I=NXPMpb|U3{S}+ z2kMa{u5PNk&sVSiG&p?dZ`w0Ig1CKwtw(W5-IfBgZR1nP%Vi)uIjDuzu@PTC$Gntu zcAa`L$&lvj;>z>dRFs}pPcvfz=IGC=5%zoNG&Idxs-LY19U$yTuL#mnW@u$s*JgA*B=jFQDLWH-?s zGGsCdP*w4?9@8%XOeCX{xm(fVz{w+Aovs(VD3tGXwQ3u&j|J@l-5%5qA1GwV+}FitwgmT5%V3X z1=GaVwxN|sKJw*s7g|)aJ^^;~yvU9j4%(>C4i8_nv;9!IDjyH1d>-kmoLL_;gao#V z#;i<$wVQOVs`G}O;uWP^4giDzrS~QKoft=0U$2stc58>?8Q7I%!z^=^$YRKZaZcQhVe*WrYV+^_Hi0&ATwc&6`}L_k=l}F zjE5olGQ7F_Lp?MdrcDdrvwog^s(VQv#RoVirl6a#43IWS6TQ)o)o7!JmAd`MG}P$p zS;chn)AX!b!k4|PE7d+|Ofd~?H6GoJtW?DtiUY=rVoV=A&Uld>D_GC#@}Z}^_fAaN z=8f9AhpG*tK{5&>Mm3l8m4))}GhM;D$$vB)Un@&tTp+{c@iLX}b~VH;)A+2d3(05{ ztcbB2X^9gMWJPr3?tndhVmOO{IG|_vU4aKtt3+{@c0o$hLLPaJQ6hM74J0J8a)ryv z%9<|(*e{v=43-}RjHO!fu!XrN)|3J^;OjH;gO2T4>FtZCoXUzp$7d~5Eqz^=ijr>f zjW0j1Rvgcn2HMnd1+RQRO}2FanJT5<&0S}yp3~S~mKP}lDaQ9aQE}*c-=d|N^-fN( zf)P(WXZ9GnhJOpvI%=|hThLkFd|ojP!tL=#rre)X?B}#=yB^!jv!)eyLQVZ)N4EU! z37k9fD^*<|mIb#c2e2_OxqrCW`3C5L$XSQjb0g=yy7E(*G#$afPI@M`ai^Vf9=B}a zAX4CCyTU82zIn#s+-ymi%HvPSG?F>;9z|-%4>K!#Vxg?(&x9Y!+967YR=ep4xG4$< zYd3Vlep1j~r;G6`SZYf1Lnrkq?C^+qe@$hPE}V)Z1snFnH_qZkw7p#-@eNA{U6#m+ zbwNM^(E#bToVJeb=D_}kNgZx|8?^s^GT|fSwMPuGRrxI9=zr3%rfrEI>avm1ED))~? zFDJDR9fKhnVvI|r4%^?>J119@*xZorkO_couYh^~Gkw!5vVtai)FRHqre0IQwWsy9 zLKh=Zc^jf9gO=tz2=?|k)6N>m6N6b^*ID)l-HVwY`}*zxRmtk@xi0jw zSDMtoGUrk%M!=URby{R;qH%njo>2A+_3No4nb6j8;vHLf4?8?Bg0EX|lkB*ipu%&6 zo#~CEHFwpACq2O+55exvraA*$`3YYYIG(>!QJ>V%@g(#O<5UEA5*O--rseJdhuZL}lryJxap z{jH^C5!WY=R_)iannO(XX>Er-eOK){L`r)>PjU+tA|uJDvm$nNw46KQAza%L-bw-} zmeF$&>HPCAD~5hgfn;ssc4sFVJ-K!`_AYbU^@k0xNz{spgugL7XPigz3Ps;(*)fN?K9JEdIg!M60 zB!;8p!)mBilb0m@i`gHIC`Gro}s+t(AL`PxkbBZrNx;(Skm$DRRUj08)IU z7?qT|c`=U3F$ID3T!co-u9j8|Qh5P7@_qBYXGDc<#5t)v9X^gWe&p>D%9Y{cUe`3& zF%=&>r%4JFpRnH{Y@RbIlGkddgshuYK7s>!Q7Vr2$M=#=vq5?_!KlNE&S`Y4= zJJTe;D#81~;qI_ZO}$9kzh0?sO^njWIpC$aQ8+A16~Sj`T>+0l63*`rR7iE6BS%*=9@y3p_q3q1k~fsm%88?H$^-dagZNDm6q>_eWfz^4GIc>SR~gbgOW- z_L~I+*EMG#hG<0RR$f!ErWl`N1nz^liYqgx;4~2vrVlIcgI@HEpm3#DlqfV!m<6e+ zv!=H`aNw44YRV)oyyBC8`Nqx;I=*sQ%Hm-OHUg)kbc5Ps8N0^sW4<_wVydXd!3v9b zTyBO^!qku~?&YD7!^LlE9qbne-h54%y|iXM={J#@$)~`58`G@rp!C$n?|@v;oLC`k z)PuQyX;4ka!@f0GuE(x^eg50y}CY5y~M*bFdmF+KwYuoe0(7^{8Vr($^nCt#&TsIO~{@n;_ znC+2!_c=j|D1f9QpYxG%CkSN&3a$H5N}!Fu9028TeZiu;OfoQRPxXMB4Sor=K3rc= zqhYA6la3dgI#<%XRAsoWa`jmM*t0W=f@QSW6-=?{ExNtSEket&_qRt=)#&9?A=@?M zK|wj6aW4$o7A64eb)-%@TQYiI_1{fycUSEiK2Ce~YUZF8x(~F%SMoE6BVGLE0#tWavuLc2|A4WQn4Hi? z5|g2vtyq0CJCmoRwQ!n&*plaJ^?JPAiQZ31+E4l;u6Rw@Zv(;aOj8s;`1Y`sZzrXp_fgUR zrOk?|*4ZNEFBtdd5#3k%lUx7!;Ta;#B&8FUm20~4FB*q6&#}Mxtz+|lfAfE`-8R9K zQ6U6d?u@eOH-7V!0@$zX^=&R&Y}E70#W!31ja7aPodIETpL3kwu(5eRZ35M%eO~&+ zrkf&rZiD_0QtXeq%y}Az%8SXl>2$ZcO#gQo>SyqNK8fq^Q~rmgbo*4h;%?USqnC z3|G=rL7S=i1}>7+ffIu&L24)KA2VVv>WeMRwzYA7=6inT?J;(%xPD{J=TVSJ)CfxD zxk~Dl)BCN-GtVPjvXci;%SJNE8_Wtm{w(R=T!P-eXofyvzRPxkHS#)v2XQOuVEi<_? z)><<(>{H`PYP>iI0-&4>Kj*mR-MSS%&vHz_I^xUPg17zw>=S)tqwzyPaBCu)-yS^ zQpqS|{iINPcL@id{RP!cO*~O=sQ1ALvV%*skb-!C^tMXz%XbmNTUOmSQd_GBNLxM6 zy~d8xbg1v2oXP}-4?hUk6Y*i zwN7pi*CEWU^b8bK@|6yXc7US|ry#>HO=stErGAQov+j}=ogWRC+Gm)(pM7UKmG~5VmsfuW z&}|^7a3Ux6p!Ubd?MiQj@9nWI#ELfw-g+ZO;E-+I^}z{N3qVo^)82#1@IA;-a7!(M zTFn9el`e_D=nFi*ny+ZU@;D(lf@ni+dHSyU1nSG!6FKp#j75VPR0SjXwYLrme-sOz zpz}SmcnhQO(!eeB2$z9HdB<(WNU1XGBOPVxK{lx->l+9`DuN}hwvh}9-=Qb`!dmCX z+_pyn1;J8$^g+oVTDj-eVCYV_(fq~(W(4VBztj-I!ehW>L*+-DSTxkNgt5D3xNgcA zcd+V?skSPj~^y+KmT6=o6wv)C$C1l1@ z{E}Fe{wHuW$UwqLvc6KgLCt5Weg#OSk(=3&Z}}i+3YM*YjL3QSK(pnL#Ky}!=bg2M zt~4e!HA4q$f;nw2kmrmrjuK9syp1bJO;25m%*ogggj9JX;(c+AP_Bs(IgsJy)6d91 z?S03ag;@6aua;t zdM{LaTmSU+F><`uvSr?yW6U}GeiFM5uu6ju`$c0>S5XlbOGPFXP_}OI1 z$60Kjs*Z=Fcq$Gx4mfL6DUZZwli&Z*WD2*IE3@-SISezNF(ofQ9dbGO1TON+X6^6^ zb)oLBQ%F;V0DE#ew@hB5t!wR1K;yTgHCkPLrxpb%MV_cW$)JHe0u*6l3v0~H^9rhj z4;WYtt2FY-Q&o;O@w__5cf1Zs%eU-$21P-xIKC24Y!& zV-ph(!|U=vbelwR25YxIMjzv-K}hJ=srEEhe@CbubW-o7JKG{Xd-JE|{pbAj@e+H%0Y1 zR)8Je{r%}IxkYKFI*t63h&jP8`@KW`50z{->Sa9kF24DrVZL7bcK=ZYW6SGsb}=PV zhSX=9vs`in*E@@bkQg!UFKP;qJTiNgjW{LNjpo*OBjd`@$;sEHe+JhRkVb z9mlxkMhE6Ee!AP}_cC8h-tp^1jw)GcZt+(f5!tIbGBS82G!cmw1YFWBUjlRJRDWIk z-kHW3>GCYpg(-CAd{RzX}kI81gbiV=3FJ2#C zhs&wCB16@+C9e|HZgyz$91;W{A@-Rc&uQ1NZB6t|g|4gpkV;d8GdW;1;Xi7iR>5W_ zTPCMwA|Q6l?Zw;!F~5SoP%&y`EsyuZqI08A)eqcKa%}!7m*X$OHC{IQCn@cbs-3H2 zT%9)2S=KE)q%p@JVmaWMT=t;`^i^$H2kZVtwE-moBc$E zA>YgXT(+xzWd;hz(-{9D#{O28lFHi6yRlz(Qh>_J>DL`j3t-R*!78YNIXwPaL=+q2 z4M?OLHI*l%Z!?1qd;jedj04 zlWAK8S2H9f_nhaVq^69=`=naKQ-Pof8OvVx>u`9KR3PL&U@a<)9SbWk<=LJ=_6BM; zlD+2nMg#BZh3O3<-6?DkLbLn^=jP*&H8^7gkv&bkQzG|C1m~V$ZuapV-JAK)UGQ_4 zxvjuognF=MBLz9mFI%z)=W%Gqs8Qh!nT#oZ<|+)7`bu`YTaAv_Twuz!HqdsZa+BHb zASF*061iT%^x#X6sw%LkE|_e*Gq`&}Ny9HdL5n6dKbzauiAiP%e-X^pxLv5>1wq0pZ|&Omv; zoISFH;q!p*sX_hdWYKYLX?CH==R7!%TS>5frAQ$keq3G=Ot=KPlhCzX(tkS_zSv0X zTV&3=`szj4m}*uA)v2o3G%=hjQk&ViJ-)*Dc`5ne%z8;9d5@A(dPGZMpXdgSppjv# z+(^#io>avltnnZTMzTWTapAn*+?{D0a)n;d)}*|i$Qku}eO(^7-D~Z4a*4IxHO`wC zx&ra5F>F*$#|u++5Ykt&`E38>0bb1IDDpd^EK~qj#ZLKY!yL#u=TKM5=Qkc3!{hay zVS=^;tJiq}7Q$BD7EoDLnxxD(xUj{+)6_-k*Ut@)z=yphgjRSj&xiaMz%n0Dvb7@T zS>okak>bsJRHO)>hC{NkCy%IR0b29l`1i)!vxiRGJS`v`9zd}TPmUCws8Mj?TrN5! zyl96*$xLYiviY63-2|T%V4!Bz_(^2aZfUS5(U#0+iM>Z)8$jb`kbMw(h16j>KOk)i z)EBprpU3z)>jYjG@;Etf-m3q|d&oTsm9i1SfWGivJY#ipM(6w@@FO>l#}1dS=%bx!LnCkxpv88-(rFGUa@SdAjPquH)}7ghf0P{esR6pu~@`YXiLU=&N2H}#j7N-h=*oPoZ~;s!WON0 zhImS~bAIPsNr>fFZsnIM{-cIx|LUFbtN-5IKOWz!EPsC8icpuk@DR<&9MgVXb(M7` z0DVD3e3}~6T7A($#lj*Wudqt>qM@}@xjqxLwm{k_4$PSkm@--bL98bZL)FXVd7T(p zM5|7yeS;(FGQo3~TvPLddz}bdOMZfIaaB6eo9a1GsjY;VCAO&ga;+s#i~GaVkXL@+ z@IqO*l=I#+%wQU=VErE@CiO!ZdQ>vr41E2*??33epn1O6v=xXCf2D7}%Ck_Kgsz45 z_OBmHm8U-fRy|${Y@FQC0(pV?QA->{uxiG_a4zZ*MvU#PHCyFTZn^1dhj8$2IVx~` zT#fQkb11p>9E@$=#%fr~%`L4=bwc#xm$||k=Z%R3(PN2d%H9KM*E8{MOO3dEqa;^; zR{BmkUAFW>C)RlUVe9bdmdnOCIAXX?Euy<9A-f&lBKfvx5T$GWfwIYLOGBT+CBq;_ z4&C&xJlccq4its7e>Zu6JYMpe-(I3{Z;lzM#||;7HYDhvP9r`cUZ1tVVieDXL5??)ig21>+OcRQ9tt1wEn z-nfu4$$1Vl~@q^B zFczpk56CQ&d6%)5&cOHiA_nU<*;lk*Yl8Li{47DJ*trEd%rkF;T1M0zCONrmHyBLr zOMu7>&`F2eXf>D3SAl%gMBzHb8fRf}=>?lqW?NC!B(B6-{o_9~FC; zRB7&GtOW^PUUVPI^uy-ly-L-8Eok=2SJ3h$V}8h6dS@36JTo^5Qe;T#r2*z-Z{cn(to+ zad?7jm3J5^1H!seoLpgF( z02Mf&4v{Z)Jz}67C;yf>T{dpUG3EQXWv2~UTq(Yd{+9TN<+>%el@bw1h#Zl8!2qVC z$2%#+14{Y-Ovl`auua$^ zG7tb`QpfZCd?9SFBTB7!b!_&pp65*BGheSKAJiY>yA|$mj_K-WrPU#fT1l5f{e6@Z zgv1`1+SLaMTTHc!LVgG@k-5~@ZK+0|m@Vxbj?l;PdHAr_JEt#>0r+Vg;K5D$hko@x zKAnIXg9|*akdzQfxUnZ1HNjm`O+=^JCrGi>zIucy0ynzD*{9vq=lE*Uknw)o1`Nfj zP&uU}_QQqS=|M_MPti5HhoYB_Cn2G6z5TQBwn-YkayK;x^~P7q)5ndy<@9JNSjMZE zr)DZB0Ud6`cm^0-GrFtrg&koF+{#ar_D4L;-Xxh{i2arun?ap2zdA#w`*#bm{wA&? z+15Rp!APRYWu{i4ii$e5?(8lgkLXdg?75+ENh-g|qO z3df=|eec!mlDMJt+EWbOTzh;gzf5#WFEcUu%Jf~Wn9OhoPP?RoGugoigxO~w(Y2^xo05X)?<_}SqQDIqz zllf#R+~*?JWgo3PM;;xQhGSL#=S(v(+=XjrGiy!> z^za|{{tgakg1F~M<^@-YR_q|&Dq)%W;~iC>O1{rj*r<+WsP#UHPDf86jPp0b-SNJP zG^XIfgWGPo`;pr*yxB+dYKSO{?c~>h;S}bQK&6w6fN#oWxcF=?WoSW|>q0lo3r1s< zW`cunt{eFvU%8oNaz!9_J!3Y$hgkfIKs~!ol5%Fx ztI5WQIp4+SxWZH5Vz$sJnf4w~UTvnV1C7eWX5IPQz7QaP-4wF)$?0P1?Da!LgvRk$ zl#EW5cLf=T(jFyp1qqj|iHc6|Fa*7*A6fkRkx}avH}Ye}5$jL^yF$49PM&wO0xN5` zn(z=Vi?UaD-$rT(>EYoN;ql5F>*L15=?c|3!G6+y^`$aJ-$Y-_9oMcTWf0Z$A>pKD zzA16}2}bT1xbIaDVOv%FadJrkp`(>W?^UxKkKa-5yXC)5TaaHScDCkuXn)xlIR<^c z206}4tkEMX)X!qcWr=DTa*o&ygYy8+XoqK=j9p3yu@;#bL(B)${S}r!OEBYXV z6agfM>I>~^@ji~0ACmbt+2N2#v2mY0RCqG17d$CdZuRX}_R$m^j7dW9=J(})bgH}M z1|vm{1d|ixW;9s51gJ|%q+^wSQZ9=he=RbK?+*_7$C`Zx=bEXAFy$9Uivi?bqv2Fc+H0EE zj2(()<+?e$i^EI`&$Ys_Rzj5u-Nff%ViA}v8Y0=KlCzU}f+Ux!Xw5C+J}JOPc}AJS zPqxj`qk7V*0|G#pX~b~>JVdgaZ)wt*Dq?j6s{*RjjvO35Ze3%sW#gsq_hJDbDt|(} zX{wFK>2Vr0zJx@Sb%K{U2j8l5W%s0(T?W{fgA~u%MS7+ z8`i$9Ya><$dGAyuEe@$JhJ>>#t`)Gs;=kciItMgV(GZfLD3fV!oF)isRJ@9%c zk;kv1ub;m+?i--Zz5An(aI(HiFCg#vq1Sj3{c2gMs?ZgoiV~msQ4^s*HX^V~=bx2% z%=)Us$^Nm<?#&eZc+Q~QjBs+mCRi0_G|mm(&P+zLeT);^rp%d=-@6UdbfwLC+zobbv%}a~9J3?D~wVHpEMFFe4lcIAtG3#ti-Xyt< zL*5&!s&?)r{~b zS37zn6^*&kgKyX?Id*&-$66npNq`?J?JB%Gc5 z*7Ec>r+#2L5GCze7vLP!|JB1yZe!2=_vU^*nV+rs|M8RCpsMat_B*8#NH+Pm*bU3^ zII(Kcc>bG1=akdGW}H$i`+};b=Kbhx>&k7}s G-uw^VCk7P& literal 0 HcmV?d00001 diff --git a/screenshots/WXDevice_ESP8266.png b/screenshots/WXDevice_ESP8266.png new file mode 100644 index 0000000000000000000000000000000000000000..956e2335fc47a53e29d1e5d8212b37f034b1fb22 GIT binary patch literal 116696 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 k) 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