From 6e1b8b3b47e0f0308b0c0a1b4710911919424885 Mon Sep 17 00:00:00 2001 From: liyiheng Date: Mon, 4 Jun 2018 10:31:05 +0800 Subject: [PATCH 001/158] Bug fix: lsb_release --- system/system_info.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/system/system_info.go b/system/system_info.go index 63fa6770..1582ebe7 100644 --- a/system/system_info.go +++ b/system/system_info.go @@ -22,7 +22,8 @@ func NewSystemInfo() *SystemInfo { var cmd *exec.Cmd switch runtime.GOOS { case "linux": - cmd = exec.Command("uname -a", arg...) + arg = append(arg, "-a") + cmd = exec.Command("lsb_release", arg...) case "darwin": cmd = exec.Command("sw_vers", arg...) default: @@ -33,7 +34,6 @@ func NewSystemInfo() *SystemInfo { for _, row := range strings.Split(raw, "\n") { parts := strings.Split(row, ":") - if len(parts) < 2 { continue } From 9828e5ba3e4352dafaa8030141438494f128cfae Mon Sep 17 00:00:00 2001 From: liyiheng Date: Mon, 4 Jun 2018 14:27:05 +0800 Subject: [PATCH 002/158] Improvement: Power mod for Linux --- bamboohr/calendar.go | 2 - bamboohr/employee.go | 2 - jira/issues.go | 3 - jira/search_result.go | 2 - power/battery.go | 2 + power/battery_linux.go | 118 ++++++++++++++++++++++++++++++++++++++++ power/source.go | 2 + power/source_linux.go | 15 +++++ todo/item.go | 2 - wtf/position.go | 2 - wtf_tests/utils_test.go | 2 +- 11 files changed, 138 insertions(+), 14 deletions(-) create mode 100644 power/battery_linux.go create mode 100644 power/source_linux.go diff --git a/bamboohr/calendar.go b/bamboohr/calendar.go index 2b2dadea..4dcb3840 100644 --- a/bamboohr/calendar.go +++ b/bamboohr/calendar.go @@ -1,7 +1,5 @@ package bamboohr -import () - type Calendar struct { Items []Item `xml:"item"` } diff --git a/bamboohr/employee.go b/bamboohr/employee.go index 02d179d6..7cc655bd 100644 --- a/bamboohr/employee.go +++ b/bamboohr/employee.go @@ -1,7 +1,5 @@ package bamboohr -import () - /* * Note: this currently implements the minimum number of fields to fulfill the Away functionality. * Undoubtedly there are more fields than this to an employee diff --git a/jira/issues.go b/jira/issues.go index ecaceb92..a8ad546f 100644 --- a/jira/issues.go +++ b/jira/issues.go @@ -1,8 +1,5 @@ package jira -import ( -) - type Issue struct { Expand string `json:"expand"` ID string `json:"id"` diff --git a/jira/search_result.go b/jira/search_result.go index 66a3f1a8..7febef6d 100644 --- a/jira/search_result.go +++ b/jira/search_result.go @@ -1,7 +1,5 @@ package jira -import () - type SearchResult struct { StartAt int `json:"startAt"` MaxResults int `json:"maxResults"` diff --git a/power/battery.go b/power/battery.go index c837b7f8..08b7fdfe 100644 --- a/power/battery.go +++ b/power/battery.go @@ -1,3 +1,5 @@ +// +build !linux + package power import ( diff --git a/power/battery_linux.go b/power/battery_linux.go new file mode 100644 index 00000000..ef538374 --- /dev/null +++ b/power/battery_linux.go @@ -0,0 +1,118 @@ +// +build linux + +package power + +import ( + "fmt" + "os/exec" + "strconv" + "strings" + + "github.com/senorprogrammer/wtf/wtf" +) + +var batteryState string + +type Battery struct { + args []string + cmd string + result string + + Charge string + Remaining string +} + +func NewBattery() *Battery { + var battery *Battery + //sh := `upower -i $(upower -e | grep '/battery') | grep --color=never -E "state|to\ full|to\ empty|percentage"` + battery = &Battery{ + //args: []string{"-c", sh}, + //cmd: "/bin/sh", + } + return battery +} + +/* -------------------- Exported Functions -------------------- */ + +func (battery *Battery) Refresh() { + data := battery.execute() + battery.result = battery.parse(data) +} + +func (battery *Battery) String() string { + return battery.result +} + +/* -------------------- Unexported Functions -------------------- */ + +func (battery *Battery) execute() string { + cmd := exec.Command("upower", "-e") + lines := strings.Split(wtf.ExecuteCommand(cmd), "\n") + var target string + for _, l := range lines { + if strings.Contains(l, "/battery") { + target = l + break + } + } + cmd = exec.Command("upower", "-i", target) + return wtf.ExecuteCommand(cmd) +} + +func (battery *Battery) parse(data string) string { + lines := strings.Split(data, "\n") + if len(lines) < 2 { + return "unknown" + } + table := make(map[string]string) + for _, line := range lines { + parts := strings.Split(line, ":") + if len(parts) < 2 { + continue + } + table[strings.TrimSpace(parts[0])] = strings.TrimSpace(parts[1]) + } + if s := table["time to empty"]; s == "" { + table["time to empty"] = "∞" + } + str := "" + str = str + fmt.Sprintf(" %10s: %s\n", "Charge", battery.formatCharge(table["percentage"])) + str = str + fmt.Sprintf(" %10s: %s\n", "Remaining", table["time to empty"]) + str = str + fmt.Sprintf(" %10s: %s\n", "State", battery.formatState(table["state"])) + if s := table["time to full"]; s != "" { + str = str + fmt.Sprintf(" %10s: %s\n", "TimeToFull", table["time to full"]) + } + batteryState = table["state"] + return str +} + +func (battery *Battery) formatCharge(data string) string { + percent, _ := strconv.ParseFloat(strings.Replace(data, "%", "", -1), 32) + color := "" + + switch { + case percent >= 70: + color = "[green]" + case percent >= 35: + color = "[yellow]" + default: + color = "[red]" + } + + return color + data + "[white]" +} + +func (battery *Battery) formatState(data string) string { + color := "" + + switch data { + case "charging": + color = "[green]" + case "discharging": + color = "[yellow]" + default: + color = "[white]" + } + + return color + data + "[white]" +} diff --git a/power/source.go b/power/source.go index b5f0faff..e6eff36c 100644 --- a/power/source.go +++ b/power/source.go @@ -1,3 +1,5 @@ +// +build !linux + package power import ( diff --git a/power/source_linux.go b/power/source_linux.go new file mode 100644 index 00000000..0e9a0f8f --- /dev/null +++ b/power/source_linux.go @@ -0,0 +1,15 @@ +// +build linux + +package power + +// powerSource returns the name of the current power source, probably one of +// "AC Power" or "Battery Power" +func powerSource() string { + switch batteryState { + case "charging": + return "AC Power" + case "discharging": + return "Battery Power" + } + return batteryState +} diff --git a/todo/item.go b/todo/item.go index aa77f41e..bc87b897 100644 --- a/todo/item.go +++ b/todo/item.go @@ -1,7 +1,5 @@ package todo -import () - type Item struct { Checked bool Text string diff --git a/wtf/position.go b/wtf/position.go index 5fd02346..521a93b3 100644 --- a/wtf/position.go +++ b/wtf/position.go @@ -1,7 +1,5 @@ package wtf -import () - type Position struct { top int left int diff --git a/wtf_tests/utils_test.go b/wtf_tests/utils_test.go index 9a6c005c..15b0e734 100644 --- a/wtf_tests/utils_test.go +++ b/wtf_tests/utils_test.go @@ -3,8 +3,8 @@ package wtf_tests import ( "testing" - . "github.com/senorprogrammer/wtf/wtf" "github.com/go-test/deep" + . "github.com/senorprogrammer/wtf/wtf" ) /* -------------------- Exclude() -------------------- */ From fc445cf2e76b8c80ae669e281f91dd1f1a8a043f Mon Sep 17 00:00:00 2001 From: liyiheng Date: Mon, 4 Jun 2018 14:57:05 +0800 Subject: [PATCH 003/158] Improvement: Battery state on Linux --- power/source_linux.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/power/source_linux.go b/power/source_linux.go index 0e9a0f8f..a28368c8 100644 --- a/power/source_linux.go +++ b/power/source_linux.go @@ -6,7 +6,7 @@ package power // "AC Power" or "Battery Power" func powerSource() string { switch batteryState { - case "charging": + case "charging", "fully-charged": return "AC Power" case "discharging": return "Battery Power" From 9c884122cf06039dd5ad272f2894c70bc5eb238b Mon Sep 17 00:00:00 2001 From: liyiheng Date: Tue, 5 Jun 2018 13:45:40 +0800 Subject: [PATCH 004/158] Power mod: Remove commented-out code --- power/battery_linux.go | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/power/battery_linux.go b/power/battery_linux.go index ef538374..693d95b6 100644 --- a/power/battery_linux.go +++ b/power/battery_linux.go @@ -23,13 +23,7 @@ type Battery struct { } func NewBattery() *Battery { - var battery *Battery - //sh := `upower -i $(upower -e | grep '/battery') | grep --color=never -E "state|to\ full|to\ empty|percentage"` - battery = &Battery{ - //args: []string{"-c", sh}, - //cmd: "/bin/sh", - } - return battery + return &Battery{} } /* -------------------- Exported Functions -------------------- */ From 56158d2e9374e750d6886a7cbc3abd4caf7991f5 Mon Sep 17 00:00:00 2001 From: Bill Date: Tue, 5 Jun 2018 16:05:06 -0700 Subject: [PATCH 005/158] Built Graph Widget, working with basic sample --- bargraph/widget.go | 95 ++++++++++++++++++++++++ prettyweather/widget.go | 7 +- wtf.go | 2 + wtf/graph_widget.go | 160 ++++++++++++++++++++++++++++++++++++++++ 4 files changed, 262 insertions(+), 2 deletions(-) create mode 100644 bargraph/widget.go create mode 100644 wtf/graph_widget.go diff --git a/bargraph/widget.go b/bargraph/widget.go new file mode 100644 index 00000000..51194638 --- /dev/null +++ b/bargraph/widget.go @@ -0,0 +1,95 @@ +package bargraph + +import ( + "fmt" + "math/rand" + "time" + + "github.com/olebedev/config" + "github.com/senorprogrammer/wtf/wtf" +) + +// Config is a pointer to the global config object +var Config *config.Config + +var started = false +var ok = true + +// Widget define wtf widget to register widget later +type Widget struct { + wtf.GraphWidget + + // time interval for send http request + updateInterval int +} + +// NewWidget Make new instance of widget +func NewWidget() *Widget { + widget := Widget{ + GraphWidget: wtf.NewGraphWidget(" Bar Graph", "bargraph", false), + } + + widget.View.SetWrap(true) + widget.View.SetWordWrap(true) + + return &widget +} + +/* -------------------- Exported Functions -------------------- */ + +// MakeGraph - Load the dead drop stats +func MakeGraph(widget *Widget) { + + //this could come from config + const lineCount = 20 + var stats [lineCount][2]int64 + + for i := lineCount - 1; i >= 0; i-- { + + stats[i][1] = time.Now().AddDate(0, 0, i*-1).Unix() * 1000 + stats[i][0] = int64(rand.Intn(120-5) + 5) + + } + + widget.GraphWidget.BuildBars(20, "🌟", stats[:]) + +} + +// Refresh & update after interval time +func (widget *Widget) Refresh() { + + if widget.Disabled() { + return + } + + if started == false { + // this code should run once + go func() { + for { + time.Sleep(time.Duration(widget.updateInterval) * time.Second) + } + }() + + } + + started = true + + widget.UpdateRefreshedAt() + widget.View.Clear() + + if !ok { + widget.View.SetText( + fmt.Sprint("Error!"), + ) + return + } + + display(widget) + +} + +/* -------------------- Unexported Functions -------------------- */ + +func display(widget *Widget) { + MakeGraph(widget) +} diff --git a/prettyweather/widget.go b/prettyweather/widget.go index 6b838c69..5cb61446 100644 --- a/prettyweather/widget.go +++ b/prettyweather/widget.go @@ -18,6 +18,7 @@ type Widget struct { result string unit string city string + view string } func NewWidget() *Widget { @@ -42,8 +43,10 @@ func (widget *Widget) Refresh() { //this method reads the config and calls wttr.in for pretty weather func (widget *Widget) prettyWeather() { client := &http.Client{} - widget.unit, widget.city = Config.UString("wtf.mods.prettyweather.unit", "m"), Config.UString("wtf.mods.prettyweather.city", "") - req, err := http.NewRequest("GET", "https://wttr.in/"+widget.city+"?0"+"?"+widget.unit, nil) + widget.unit = Config.UString("wtf.mods.prettyweather.unit", "m") + widget.city = Config.UString("wtf.mods.prettyweather.city", "") + widget.view = Config.UString("wtf.mods.prettyweather.view", "0") + req, err := http.NewRequest("GET", "https://wttr.in/"+widget.city+"?"+widget.view+"?"+widget.unit, nil) if err != nil { widget.result = fmt.Sprintf("%s", err.Error()) return diff --git a/wtf.go b/wtf.go index 660e458c..a855089a 100644 --- a/wtf.go +++ b/wtf.go @@ -6,6 +6,7 @@ import ( "os" "time" + "github.com/BillKeenan/wtf/bargraph" "github.com/gdamore/tcell" "github.com/olebedev/config" "github.com/radovskyb/watcher" @@ -186,6 +187,7 @@ func makeWidgets(app *tview.Application, pages *tview.Pages) { clocks.NewWidget(), cmdrunner.NewWidget(), cryptolive.NewWidget(), + bargraph.NewWidget(), gcal.NewWidget(), git.NewWidget(app, pages), github.NewWidget(app, pages), diff --git a/wtf/graph_widget.go b/wtf/graph_widget.go new file mode 100644 index 00000000..84b5a4a7 --- /dev/null +++ b/wtf/graph_widget.go @@ -0,0 +1,160 @@ +package wtf + +import ( + "bytes" + "fmt" + "strings" + "time" + + "github.com/rivo/tview" +) + +type GraphWidget struct { + enabled bool + focusable bool + + Name string + RefreshedAt time.Time + RefreshInt int + View *tview.TextView + + Position + + Data [][2]int64 +} + +// NewGraphWidget initialize your fancy new graph +func NewGraphWidget(name string, configKey string, focusable bool) GraphWidget { + widget := GraphWidget{ + enabled: Config.UBool(fmt.Sprintf("wtf.mods.%s.enabled", configKey), false), + focusable: focusable, + + Name: Config.UString(fmt.Sprintf("wtf.mods.%s.title", configKey), name), + RefreshInt: Config.UInt(fmt.Sprintf("wtf.mods.%s.refreshInterval", configKey)), + } + + widget.Position = NewPosition( + Config.UInt(fmt.Sprintf("wtf.mods.%s.position.top", configKey)), + Config.UInt(fmt.Sprintf("wtf.mods.%s.position.left", configKey)), + Config.UInt(fmt.Sprintf("wtf.mods.%s.position.width", configKey)), + Config.UInt(fmt.Sprintf("wtf.mods.%s.position.height", configKey)), + ) + + widget.addView() + + return widget +} + +func (widget *GraphWidget) BorderColor() string { + if widget.Focusable() { + return Config.UString("wtf.colors.border.focusable", "red") + } + + return Config.UString("wtf.colors.border.normal", "gray") +} + +func (widget *GraphWidget) Disabled() bool { + return !widget.Enabled() +} + +func (widget *GraphWidget) Enabled() bool { + return widget.enabled +} + +func (widget *GraphWidget) Focusable() bool { + return widget.enabled && widget.focusable +} + +func (widget *GraphWidget) RefreshInterval() int { + return widget.RefreshInt +} + +func (widget *GraphWidget) TextView() *tview.TextView { + return widget.View +} + +/* -------------------- Unexported Functions -------------------- */ + +func (widget *GraphWidget) UpdateRefreshedAt() { + widget.RefreshedAt = time.Now() +} + +func (widget *GraphWidget) addView() { + view := tview.NewTextView() + + view.SetBackgroundColor(ColorFor(Config.UString("wtf.colors.background", "black"))) + view.SetBorder(true) + view.SetBorderColor(ColorFor(widget.BorderColor())) + view.SetDynamicColors(true) + view.SetTitle(widget.Name) + view.SetWrap(false) + + widget.View = view +} + +// BuildBars will build a string of * to represent your data of [time][value] +// time should be passed as a int64 +func (widget *GraphWidget) BuildBars(maxStars int, starChar string, data [][2]int64) { + + var buffer bytes.Buffer + + //counter to inintialize min value + var count int + + //store the max value from the array + var maxValue int + + //store the min value from the array + var minValue int + + //just getting min and max values + for i := range data { + + var val = int(data[i][0]) + + //initialize the min value + if count == 0 { + minValue = val + } + count++ + + //update max value + if val > maxValue { + maxValue = val + } + + //update minValue + if val < minValue { + minValue = val + } + + } + + // each number = how many stars? + var starRatio = float64(maxStars) / float64((maxValue - minValue)) + + //build the stars + for i := range data { + var val = int(data[i][0]) + + //how many stars for this one? + var starCount = int(float64((val - minValue)) * starRatio) + + if starCount == 0 { + starCount = 1 + } + //build the actual string + var stars = strings.Repeat(starChar, starCount) + + //parse the time + var t = time.Unix(int64(data[i][1]/1000), 0) + + //write the line + buffer.WriteString(fmt.Sprintf("%s -\t [red]%s[white] - (%d)\n", t.Format("Jan 02, 2006"), stars, val)) + } + + widget.View.SetText(buffer.String()) + +} + +/* -------------------- Exported Functions -------------------- */ From 1075096f2fb33fc6a19149d60da489bc1af7a0b6 Mon Sep 17 00:00:00 2001 From: Bill Keenan Date: Wed, 6 Jun 2018 11:05:47 -0700 Subject: [PATCH 006/158] removed unused sleep code --- bargraph/widget.go | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/bargraph/widget.go b/bargraph/widget.go index 51194638..aaea80d1 100644 --- a/bargraph/widget.go +++ b/bargraph/widget.go @@ -62,28 +62,9 @@ func (widget *Widget) Refresh() { return } - if started == false { - // this code should run once - go func() { - for { - time.Sleep(time.Duration(widget.updateInterval) * time.Second) - } - }() - - } - - started = true - widget.UpdateRefreshedAt() widget.View.Clear() - if !ok { - widget.View.SetText( - fmt.Sprint("Error!"), - ) - return - } - display(widget) } From 540dee04d7d0acea0efa9b5d7e71fc14f5e9343d Mon Sep 17 00:00:00 2001 From: Bill Date: Wed, 6 Jun 2018 11:31:52 -0700 Subject: [PATCH 007/158] updated with suggestions from @senorprogrammer --- bargraph/widget.go | 6 +++--- wtf.go | 2 +- wtf/{graph_widget.go => bargraph.go} | 27 ++++++++++++++------------- 3 files changed, 18 insertions(+), 17 deletions(-) rename wtf/{graph_widget.go => bargraph.go} (81%) diff --git a/bargraph/widget.go b/bargraph/widget.go index 51194638..d661a658 100644 --- a/bargraph/widget.go +++ b/bargraph/widget.go @@ -17,7 +17,7 @@ var ok = true // Widget define wtf widget to register widget later type Widget struct { - wtf.GraphWidget + wtf.BarGraph // time interval for send http request updateInterval int @@ -26,7 +26,7 @@ type Widget struct { // NewWidget Make new instance of widget func NewWidget() *Widget { widget := Widget{ - GraphWidget: wtf.NewGraphWidget(" Bar Graph", "bargraph", false), + BarGraph: wtf.NewBarGraph(" Bar Graph", "bargraph", false), } widget.View.SetWrap(true) @@ -51,7 +51,7 @@ func MakeGraph(widget *Widget) { } - widget.GraphWidget.BuildBars(20, "🌟", stats[:]) + widget.BarGraph.BuildBars(20, "🌟", stats[:]) } diff --git a/wtf.go b/wtf.go index a855089a..387c709b 100644 --- a/wtf.go +++ b/wtf.go @@ -6,12 +6,12 @@ import ( "os" "time" - "github.com/BillKeenan/wtf/bargraph" "github.com/gdamore/tcell" "github.com/olebedev/config" "github.com/radovskyb/watcher" "github.com/rivo/tview" "github.com/senorprogrammer/wtf/bamboohr" + "github.com/senorprogrammer/wtf/bargraph" "github.com/senorprogrammer/wtf/clocks" "github.com/senorprogrammer/wtf/cmdrunner" "github.com/senorprogrammer/wtf/cryptoexchanges/bittrex" diff --git a/wtf/graph_widget.go b/wtf/bargraph.go similarity index 81% rename from wtf/graph_widget.go rename to wtf/bargraph.go index 84b5a4a7..7c7da2ac 100644 --- a/wtf/graph_widget.go +++ b/wtf/bargraph.go @@ -9,7 +9,8 @@ import ( "github.com/rivo/tview" ) -type GraphWidget struct { +//BarGraph lets make graphs +type BarGraph struct { enabled bool focusable bool @@ -23,9 +24,9 @@ type GraphWidget struct { Data [][2]int64 } -// NewGraphWidget initialize your fancy new graph -func NewGraphWidget(name string, configKey string, focusable bool) GraphWidget { - widget := GraphWidget{ +// NewBarGraph initialize your fancy new graph +func NewBarGraph(name string, configKey string, focusable bool) BarGraph { + widget := BarGraph{ enabled: Config.UBool(fmt.Sprintf("wtf.mods.%s.enabled", configKey), false), focusable: focusable, @@ -45,7 +46,7 @@ func NewGraphWidget(name string, configKey string, focusable bool) GraphWidget { return widget } -func (widget *GraphWidget) BorderColor() string { +func (widget *BarGraph) BorderColor() string { if widget.Focusable() { return Config.UString("wtf.colors.border.focusable", "red") } @@ -53,33 +54,33 @@ func (widget *GraphWidget) BorderColor() string { return Config.UString("wtf.colors.border.normal", "gray") } -func (widget *GraphWidget) Disabled() bool { +func (widget *BarGraph) Disabled() bool { return !widget.Enabled() } -func (widget *GraphWidget) Enabled() bool { +func (widget *BarGraph) Enabled() bool { return widget.enabled } -func (widget *GraphWidget) Focusable() bool { +func (widget *BarGraph) Focusable() bool { return widget.enabled && widget.focusable } -func (widget *GraphWidget) RefreshInterval() int { +func (widget *BarGraph) RefreshInterval() int { return widget.RefreshInt } -func (widget *GraphWidget) TextView() *tview.TextView { +func (widget *BarGraph) TextView() *tview.TextView { return widget.View } /* -------------------- Unexported Functions -------------------- */ -func (widget *GraphWidget) UpdateRefreshedAt() { +func (widget *BarGraph) UpdateRefreshedAt() { widget.RefreshedAt = time.Now() } -func (widget *GraphWidget) addView() { +func (widget *BarGraph) addView() { view := tview.NewTextView() view.SetBackgroundColor(ColorFor(Config.UString("wtf.colors.background", "black"))) @@ -94,7 +95,7 @@ func (widget *GraphWidget) addView() { // BuildBars will build a string of * to represent your data of [time][value] // time should be passed as a int64 -func (widget *GraphWidget) BuildBars(maxStars int, starChar string, data [][2]int64) { +func (widget *BarGraph) BuildBars(maxStars int, starChar string, data [][2]int64) { var buffer bytes.Buffer From 4b12c73b11de8dc7f49e622fe069f8b75d854284 Mon Sep 17 00:00:00 2001 From: Bill Date: Wed, 6 Jun 2018 11:34:32 -0700 Subject: [PATCH 008/158] added sample code comment --- bargraph/widget.go | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/bargraph/widget.go b/bargraph/widget.go index 3b57bdcd..0e798952 100644 --- a/bargraph/widget.go +++ b/bargraph/widget.go @@ -1,7 +1,10 @@ package bargraph +/************** +This is a demo bargraph that just populates some random date/val data +*/ + import ( - "fmt" "math/rand" "time" @@ -26,7 +29,7 @@ type Widget struct { // NewWidget Make new instance of widget func NewWidget() *Widget { widget := Widget{ - BarGraph: wtf.NewBarGraph(" Bar Graph", "bargraph", false), + BarGraph: wtf.NewBarGraph(" Sample Bar Graph", "bargraph", false), } widget.View.SetWrap(true) From 34a4061f5ded4d85eba932dc5265dd10bc072896 Mon Sep 17 00:00:00 2001 From: Bill Date: Wed, 6 Jun 2018 11:50:44 -0700 Subject: [PATCH 009/158] sample bargraph config added --- _sample_configs/bargraph_config.yml | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 _sample_configs/bargraph_config.yml diff --git a/_sample_configs/bargraph_config.yml b/_sample_configs/bargraph_config.yml new file mode 100644 index 00000000..577771ee --- /dev/null +++ b/_sample_configs/bargraph_config.yml @@ -0,0 +1,27 @@ +wtf: + colors: + border: + focusable: darkslateblue + focused: orange + normal: gray + grid: + columns: [40, 40] + rows: [13, 13, 4] + refreshInterval: 1 + mods: + bargraph: + colors: + from: + name: coral + displayName: grey + to: + name: white + price: green + enabled: true + position: + top: 2 + left: 0 + height: 2 + width: 2 + refreshInterval: 30 + updateInterval: 15 \ No newline at end of file From 478ee38ec0e2651d8e84470da5dfce5869a5c8cb Mon Sep 17 00:00:00 2001 From: Sergio Rubio Date: Wed, 6 Jun 2018 21:18:43 +0200 Subject: [PATCH 010/158] Add Travis CI config Currently it only tests that wtf builds. --- .travis.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 00000000..1439159a --- /dev/null +++ b/.travis.yml @@ -0,0 +1,10 @@ +language: go +go: + - "1.10" +sudo: false +before_install: + # Make sure travis builds work for forks + - mkdir -p $TRAVIS_BUILD_DIR $GOPATH/src/github.com/senorprogrammer + - test ! -d $GOPATH/src/github.com/senorprogrammer/wtf && mv $TRAVIS_BUILD_DIR $GOPATH/src/github.com/senorprogrammer/wtf || true + - export TRAVIS_BUILD_DIR=$HOME/gopath/src/github.com/senorprogrammer/wtf + - cd $HOME/gopath/src/github.com/senorprogrammer/wtf From e33a32759a92fb8cd8936c7a939424e9138d4084 Mon Sep 17 00:00:00 2001 From: Chris Cummer Date: Thu, 7 Jun 2018 08:27:50 -0700 Subject: [PATCH 011/158] WIP --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6ed53242..b40ecaf7 100644 --- a/README.md +++ b/README.md @@ -95,3 +95,4 @@ Many thanks to all these developers.

+ From d3d74edb48543f14ebb5ddfc02c55f112aeff18a Mon Sep 17 00:00:00 2001 From: Chris Cummer Date: Thu, 7 Jun 2018 08:29:54 -0700 Subject: [PATCH 012/158] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index b40ecaf7..04e74a8e 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,5 @@ +

[![Build Status](https://travis-ci.com/senorprogrammer/wtf.svg?branch=master)](https://travis-ci.com/senorprogrammer/wtf)

+

From e99173db689488ee868d39b78e46467e53033474 Mon Sep 17 00:00:00 2001 From: Chris Cummer Date: Thu, 7 Jun 2018 08:30:44 -0700 Subject: [PATCH 013/158] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 04e74a8e..1d35f343 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -

[![Build Status](https://travis-ci.com/senorprogrammer/wtf.svg?branch=master)](https://travis-ci.com/senorprogrammer/wtf)

+

From 58f4002c4678251a8bfe13203befd81e1d03a1dd Mon Sep 17 00:00:00 2001 From: Chris Cummer Date: Thu, 7 Jun 2018 08:31:19 -0700 Subject: [PATCH 014/158] Update README.md --- README.md | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 1d35f343..97769334 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,7 @@ -

+

+ [![Join the chat at https://gitter.im/wtfutil/Lobby](https://badges.gitter.im/wtfutil/Lobby.svg)](https://gitter.im/wtfutil/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) + +

@@ -27,11 +30,6 @@ make run Or [download the latest binary](https://github.com/senorprogrammer/wtf/releases). -## Support - -Chat on Gitter: -[![Join the chat at https://gitter.im/wtfutil/Lobby](https://badges.gitter.im/wtfutil/Lobby.svg)](https://gitter.im/wtfutil/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) - ## Documentation See [https://wtfutil.com](https://wtfutil.com) for the definitive From fabee234119dae345f5b547d515b03a9cf5c1376 Mon Sep 17 00:00:00 2001 From: Chris Cummer Date: Thu, 7 Jun 2018 08:33:42 -0700 Subject: [PATCH 015/158] Update README.md --- README.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 97769334..800f6d9f 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@

- [![Join the chat at https://gitter.im/wtfutil/Lobby](https://badges.gitter.im/wtfutil/Lobby.svg)](https://gitter.im/wtfutil/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) +

@@ -30,6 +30,11 @@ make run Or [download the latest binary](https://github.com/senorprogrammer/wtf/releases). +## Support + +Chat on Gitter +[![Join the chat at https://gitter.im/wtfutil/Lobby](https://badges.gitter.im/wtfutil/Lobby.svg)](https://gitter.im/wtfutil/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) + ## Documentation See [https://wtfutil.com](https://wtfutil.com) for the definitive From 3c712fc3cd9430eb466767a2954de81f58f90981 Mon Sep 17 00:00:00 2001 From: Chris Cummer Date: Thu, 7 Jun 2018 08:43:59 -0700 Subject: [PATCH 016/158] Stronger Go version warning in the README --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index 800f6d9f..5f22520e 100644 --- a/README.md +++ b/README.md @@ -18,8 +18,7 @@ displaying infrequently-needed, but very important, daily data. ### Installation from Source -*Note:* This has only been tested to build against Go 1.9.2. It won't -work with Go versions < 1.7, and only _may_ work on other versions. +*Note:* WTF is _only_ compatible with Go versions *1.9.2* or later. It currently does not compile with `gccgo`. ```bash go get -u github.com/senorprogrammer/wtf From 515e80a0594a63342aab2b93b207685ce3406d9e Mon Sep 17 00:00:00 2001 From: Chris Cummer Date: Thu, 7 Jun 2018 08:44:42 -0700 Subject: [PATCH 017/158] Bolder warning the README --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5f22520e..705c2be5 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ displaying infrequently-needed, but very important, daily data. ### Installation from Source -*Note:* WTF is _only_ compatible with Go versions *1.9.2* or later. It currently does not compile with `gccgo`. +**Note:** WTF is _only_ compatible with Go versions **1.9.2** or later. It currently _does not_ compile with `gccgo`. ```bash go get -u github.com/senorprogrammer/wtf From fa78c5ee3284e3562972ffa771b9617c4667f3ed Mon Sep 17 00:00:00 2001 From: Chris Cummer Date: Thu, 7 Jun 2018 09:01:00 -0700 Subject: [PATCH 018/158] Add rate limit message to IPInfo documentation. --- _site/content/posts/modules/ipinfo.md | 4 +++- docs/index.xml | 6 +++--- docs/posts/index.xml | 6 +++--- docs/posts/modules/ipinfo/index.html | 4 +++- 4 files changed, 12 insertions(+), 8 deletions(-) diff --git a/_site/content/posts/modules/ipinfo.md b/_site/content/posts/modules/ipinfo.md index b6e2663a..93b8edb2 100644 --- a/_site/content/posts/modules/ipinfo.md +++ b/_site/content/posts/modules/ipinfo.md @@ -6,6 +6,8 @@ draft: false Displays your current IP address information, from ipinfo.io. +**Note:** IPInfo.io has a free-plan rate limit of 1000 requests per day. + ipinfo screenshot ## Source Code @@ -35,7 +37,7 @@ ipinfo: left: 2 height: 1 width: 1 - refreshInterval: 15 + refreshInterval: 150 ``` ### Attributes diff --git a/docs/index.xml b/docs/index.xml index 99f00e72..6a7a539d 100644 --- a/docs/index.xml +++ b/docs/index.xml @@ -70,12 +70,12 @@ position Defines where in the grid this module&rsquo;s widget will be displa https://wtfutil.com/posts/modules/ipinfo/ Displays your current IP address information, from ipinfo.io. +Note: IPInfo.io has a free-plan rate limit of 1000 requests per day. Source Code wtf/ipinfo/ Required ENV Variables None. Keyboard Commands None. -Configuration ipinfo:colors:name:redvalue:whiteenabled:trueposition:top:1left:2height:1width:1refreshInterval:15 Attributes colors.name The default colour for the row names. Values: Any X11 color name. +Configuration ipinfo:colors:name:redvalue:whiteenabled:trueposition:top:1left:2height:1width:1refreshInterval:150 Attributes colors.name The default colour for the row names. Values: Any X11 color name. colors.value The default colour for the row values. Values: Any X11 color name. -enabled Determines whether or not this module is executed and if its data displayed onscreen. Values: true, false. -position Defines where in the grid this module&rsquo;s widget will be displayed. +enabled Determines whether or not this module is executed and if its data displayed onscreen. diff --git a/docs/posts/index.xml b/docs/posts/index.xml index 8cf746a8..9bbfb945 100644 --- a/docs/posts/index.xml +++ b/docs/posts/index.xml @@ -70,12 +70,12 @@ position Defines where in the grid this module&rsquo;s widget will be displa https://wtfutil.com/posts/modules/ipinfo/ Displays your current IP address information, from ipinfo.io. +Note: IPInfo.io has a free-plan rate limit of 1000 requests per day. Source Code wtf/ipinfo/ Required ENV Variables None. Keyboard Commands None. -Configuration ipinfo:colors:name:redvalue:whiteenabled:trueposition:top:1left:2height:1width:1refreshInterval:15 Attributes colors.name The default colour for the row names. Values: Any X11 color name. +Configuration ipinfo:colors:name:redvalue:whiteenabled:trueposition:top:1left:2height:1width:1refreshInterval:150 Attributes colors.name The default colour for the row names. Values: Any X11 color name. colors.value The default colour for the row values. Values: Any X11 color name. -enabled Determines whether or not this module is executed and if its data displayed onscreen. Values: true, false. -position Defines where in the grid this module&rsquo;s widget will be displayed. +enabled Determines whether or not this module is executed and if its data displayed onscreen. diff --git a/docs/posts/modules/ipinfo/index.html b/docs/posts/modules/ipinfo/index.html index 43561ae2..f3cd4865 100644 --- a/docs/posts/modules/ipinfo/index.html +++ b/docs/posts/modules/ipinfo/index.html @@ -115,6 +115,8 @@

Displays your current IP address information, from ipinfo.io.

+

Note: IPInfo.io has a free-plan rate limit of 1000 requests per day.

+

ipinfo screenshot

Source Code

@@ -138,7 +140,7 @@ left: 2 height: 1 width: 1 - refreshInterval: 15 + refreshInterval: 150

Attributes

colors.name
From d579334506a3889f6cb5c54780ddb17a04c0e160 Mon Sep 17 00:00:00 2001 From: Hossein Mehrabi Date: Mon, 4 Jun 2018 06:19:42 +0430 Subject: [PATCH 019/158] add module to docs --- docs/posts/modules/bittrex/index.html | 243 ++++++++++++++++++++++++++ 1 file changed, 243 insertions(+) create mode 100644 docs/posts/modules/bittrex/index.html diff --git a/docs/posts/modules/bittrex/index.html b/docs/posts/modules/bittrex/index.html new file mode 100644 index 00000000..13817360 --- /dev/null +++ b/docs/posts/modules/bittrex/index.html @@ -0,0 +1,243 @@ + + + + + + + + + + + + + Module: Bittrex | WTF - A Terminal Dashboard + + + + + + + + + + + + + + + + + + + + + + + + + + +

+ +
+
+

Module: Bittrex

+ +
+ +
+ +

Get the last 24 hour summary of cryptocurrencies market.

+ +

Source Code

+
+
wtf/bittrex/
+
+

Required ENV Variables

+ +

None.

+ +

Keyboard Commands

+ +

None.

+ +

Configuration

+
+
bittrex:
+  enabled: true
+  position:
+    top: 1
+    left: 2
+    height: 1
+    width: 1
+  updateInterval: 15
+  summary: 
+   BTC:
+     displayName: Bitcoin
+     market: 
+       - ETH
+       - LTC
+   ETH:
+     displayName: Ethereum
+     market: 
+       - LTC
+  colors: 
+   base: 
+     name: red
+     displayName: grey
+   market:
+     name: red
+     field: coral
+     value: white
+
+
+
+

Attributes

+ + + +

+ enabled +
Determines whether or not this module is executed and if its data displayed onscreen. +
Values: + true, + false.

+ +

+ position +
Defines where in the grid this module’s widget will be displayed. +
+

+ +

+ updateInterval +
How often, in seconds, this module will update its data. +
Values: A positive integer +
Default Value: 10

+ +

+ colors +
Sets color of texts. +
Values: A valid color +

+ +
+ + +
+ + + + \ No newline at end of file From 94ccdc7777c5b3beb70c95594bff0d2b352c71b2 Mon Sep 17 00:00:00 2001 From: lucus Date: Mon, 4 Jun 2018 17:40:02 +0900 Subject: [PATCH 020/158] Fix issue #89 Better handle dns on macOS --- security/dns.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/security/dns.go b/security/dns.go index 7360d801..69edfcc3 100644 --- a/security/dns.go +++ b/security/dns.go @@ -42,7 +42,8 @@ func dnsLinux() []string { } func dnsMacOS() []string { - cmd := exec.Command("networksetup", "-getdnsservers", "Wi-Fi") + cmdString := `scutil --dns | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}'` + cmd := exec.Command("sh", "-c", cmdString) out := wtf.ExecuteCommand(cmd) lines := strings.Split(out, "\n") From 4feb9c0188436568ac015265543edc7b31329617 Mon Sep 17 00:00:00 2001 From: Chris Cummer Date: Mon, 4 Jun 2018 04:20:17 -0700 Subject: [PATCH 021/158] Update Configuration documentation with an explanation of the grid layout system --- _site/content/posts/configuration.md | 27 +++++++++++++++++++++++++++ docs/posts/configuration/index.html | 26 ++++++++++++++++++++++++++ 2 files changed, 53 insertions(+) diff --git a/_site/content/posts/configuration.md b/_site/content/posts/configuration.md index 183f0119..46e9e03a 100644 --- a/_site/content/posts/configuration.md +++ b/_site/content/posts/configuration.md @@ -51,3 +51,30 @@ wouldn't want to have laying about in the config files. For modules that require them, the name of the required environment variable(s) can be found in that module's "Required ENV Variables" section of the documentation. See OpsGenie for an example. + +## Grid Layout + +WTF uses the `Grid` layout system from [tview](https://github.com/rivo/tview/blob/master/grid.go) to position widgets +onscreen. It's not immediately obvious how this works, so here's an +explanation: + +Think of your terminal screen as a matrix of letter positions, say `100` chrs wide and `58` chrs tall. + +Columns breaks up the width of the screen into chunks, each chunk a specified number of characters wide. use + +`[10, 10, 10, 10, 10, 10, 10, 10, 10, 10]` + +Ten columns that are ten characters wide + +Rows break up the height of the screen into chunks, each chunk a specified number of characters tall. If we wanted to have five rows: + +`[10, 10, 10, 10, 18]` + +The co-ordinate system starts at top-left and defines how wide and tall a widget is. If we wanted to put a 2-col, 2-row widget in the bottom of the screen, we'd position it at: + +``` + top: 4 // top starts in the 4th row + left: 9 // left starts in the 9th column + height: 2 // span down rows 4 & 5 (18 characters in size, total) + width: 2 // span across cols 9 & 10 (20 characters in size, total) +``` diff --git a/docs/posts/configuration/index.html b/docs/posts/configuration/index.html index 02125fe1..8520f951 100644 --- a/docs/posts/configuration/index.html +++ b/docs/posts/configuration/index.html @@ -156,6 +156,32 @@ wouldn’t want to have laying about in the config files.

variable(s) can be found in that module’s “Required ENV Variables” section of the documentation. See OpsGenie for an example.

+

Grid Layout

+ +

WTF uses the Grid layout system from tview to position widgets +onscreen. It’s not immediately obvious how this works, so here’s an +explanation:

+ +

Think of your terminal screen as a matrix of letter positions, say 100 chrs wide and 58 chrs tall.

+ +

Columns breaks up the width of the screen into chunks, each chunk a specified number of characters wide. use

+ +

[10, 10, 10, 10, 10, 10, 10, 10, 10, 10]

+ +

Ten columns that are ten characters wide

+ +

Rows break up the height of the screen into chunks, each chunk a specified number of characters tall. If we wanted to have five rows:

+ +

[10, 10, 10, 10, 18]

+ +

The co-ordinate system starts at top-left and defines how wide and tall a widget is. If we wanted to put a 2-col, 2-row widget in the bottom of the screen, we’d position it at:

+ +
  top: 4     // top starts in the 4th row
+  left: 9    // left starts in the 9th column
+  height: 2  // span down rows 4 & 5 (18 characters in size, total)
+  width: 2   // span across cols 9 & 10 (20 characters in size, total)
+
+

Attributes

From 3eed30f31e1f607ed9d913513fbf44dd064c5758 Mon Sep 17 00:00:00 2001 From: Chris Cummer Date: Tue, 5 Jun 2018 09:00:45 -0700 Subject: [PATCH 030/158] Remove duplicate entries in makeWidgets() --- wtf.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/wtf.go b/wtf.go index 6dd4df87..a7c70b4c 100644 --- a/wtf.go +++ b/wtf.go @@ -157,9 +157,9 @@ var ( func makeWidgets(app *tview.Application, pages *tview.Pages) { // Always in alphabetical order bamboohr.Config = Config + bittrex.Config = Config clocks.Config = Config cmdrunner.Config = Config - wtf.Config = Config cryptolive.Config = Config gcal.Config = Config git.Config = Config @@ -181,6 +181,7 @@ func makeWidgets(app *tview.Application, pages *tview.Pages) { // Always in alphabetical order Widgets = []wtf.Wtfable{ bamboohr.NewWidget(), + bittrex.NewWidget(), clocks.NewWidget(), cmdrunner.NewWidget(), cryptolive.NewWidget(), From 5d6ca43c616b11ffc833ec8ed8db6143e4d1a905 Mon Sep 17 00:00:00 2001 From: Chris Cummer Date: Tue, 5 Jun 2018 09:37:50 -0700 Subject: [PATCH 031/158] Add screenshot to CryptoLive documenation --- .../modules/cryptocurrencies/cryptolive.md | 2 ++ _site/static/imgs/modules/cryptolive.png | Bin 0 -> 49596 bytes docs/imgs/modules/cryptolive.png | Bin 0 -> 49596 bytes .../cryptocurrencies/cryptolive/index.html | 2 ++ 4 files changed, 4 insertions(+) create mode 100644 _site/static/imgs/modules/cryptolive.png create mode 100644 docs/imgs/modules/cryptolive.png diff --git a/_site/content/posts/modules/cryptocurrencies/cryptolive.md b/_site/content/posts/modules/cryptocurrencies/cryptolive.md index 9a0601ff..33e3f96a 100644 --- a/_site/content/posts/modules/cryptocurrencies/cryptolive.md +++ b/_site/content/posts/modules/cryptocurrencies/cryptolive.md @@ -8,6 +8,8 @@ Added in `v0.0.5`. Compare crypto currencies using [CryptoCompare](https://cryptocompare.com). +cryptolive screenshot + ## Source Code ```bash diff --git a/_site/static/imgs/modules/cryptolive.png b/_site/static/imgs/modules/cryptolive.png new file mode 100644 index 0000000000000000000000000000000000000000..d3bd19de99c801634e97b5360d098393234c89f7 GIT binary patch literal 49596 zcmZ^}19T=)vo`wXjXkk#+qRvFZQJI=$;8RTn%K5Av2EMdo%znW|2b>@_x4)dYxmyu zR6SLDcdxFl9ib>M0S|)>0{{Tvr6fg_0RRxezwI$7h`(2YpVHs}0352Nh=`(;hzOyg zlf9XxjVS;i8Ii0Gsi888o~^A6MVbTvDht~Op`HK(6^o=HafqP5N%w^08cCp|>9mI% zh^dRA>cSEl^;gltJiZEw3Ta}%vMX*D22@r1UioaTzc?RevV3v5Uz$JwOnKbw?9j`A zf=z@9m}tjil9IAUKeK^gB|y_{DA^TUr78sz6UqSQ*)LuG^}t0%yH!b}kF#fgwD0r^ z10aBi5YAAVT@w)>RDe!YBF#8xz%=k-sQ%W8tcAeHm53AyfRwt;inW-qjf#a&(HIe7 zBs2~dP%&TzI|s;>@?g2;vSdV%>zk49Ie;bHgsa7%$eIX!MjF_wt9K?;BNwrWzZJ=B z=pK~CiWxO4jxo}tS0;M95o^^v=lU||`fN5akB~TI43eYL#Y80=#agtrH(k!_?93QgYhbU9XUA#@HmzY6X)Apr@14RRKAZF% z2DIN*8_0)fMzKSTIlAM`+vhBdvqQDR zo)_#uFc4@yOX*aO^)9@lFpfnC=h9;Va(k}qH;%v&T#@CVzm9Snw(cmW1G&77VnEK{ z!ZAJpZRKx5iGT3enIbSnVfbOp@5DC|c}Qv=&-`kpQJ^LuVfdj)LVqse*EEn~C{ZJ` zta%Qz7_tBg;f8J9qg9iL%-e>XEv4Q!Vxy#Nm(GabKQL4^RJCMxT->^H`$G1Bd~joS zB*hP*CVz=bBtXX(w*%^Kj8CG`Q;Rq3P*d*?E?Cz*))f1BHp_=IqxMmyEemE~ba;Jz zeRI`TGX}ur0|6Xdx@Uo}<5)g{v~+}$pdXI8BwS#A1Au>;mw?*lB1Q*-j}L=zf+F^S zeHtK#1DFVrWW&%DAXk3g(J~^^LJa1jRzTngf-gh31$Ax%IN?r(P&i@fgRHk9THx{f zTxa0*0{yN*;E17wg-f9DX2jvXsSIE{3hE#+3=lwz<^L2V#gY;M3&%_kqZN{lZ{KDKQD^$kTZ0H_SGGKq{sI1g%QfTe^K8425fs0Ae(e%GK|gxb23s{lRg z=id{}jAe1aX<-k(*2oN=8o=15xrXs!&uc2PH+8$}o|;B^CR* zT*#};WQk%aaKc)eH81xnsz!?Q6K@1$pR_JON0Of8iX?})IZ^*7B$_I!EZRC6F=`8p zGpZWZxw3_7OVxBGqoh(%nhGx!Qxe=CBWbRp6sN%3@LPE$r5VW?ImbF;eaCpC)?K2( zvB<2*oaFhWiX;tbmE-|wn&d~yETy*U`&j9sUrOooq*nN@WR1VPVqZgEBgBhWW`its zR)w|5Dq|Pry(=qnZOYCIcy(I^TV-FuZ(R@g(ZJDI&{ANuO#`Ki{x~MLQ-hYdeD_{} zTCiC_D|=I|E_p18pC6xpUudxsv*KBpEOnh>YGcY0JDN_NcAsIGZeNHvJv{9_#X2oI zg`C%3cw?JqCAS!`9A7M%=PaGci?IA<31Mw!SvAXB;VE%9hS|x)Z|q^55?6{h$A4I` zs6qD|U7=j`EO*hil3^9j*8f8Gf^GF-HO|!mk0xuByWXYgRA>4Gr<{M$nAY58bh+P{ z;5ffctxc)T+135D=@{YoqeH{wTfc{X&#BF^&o@ms zZ9YDDB;H8vEk$>;er9AP>ZWYaw}(AiJtm&RUf^78acgin;8Nq+aVg`0;$m>Kb9SX0 z@C9-ho`rbJyA(4P7s*e^>u2d^hE6t4cG8p6kJ4x8UbdCBi?>xdbe@Yl+_`EWFYZ6C zY^?B2ebl_^z{~}R7opx8dULxw-hR)hBiG5N^loF2Izm&SJK?=hG1zttaQfBu zv^q}b8-h@`P;1yNh6w#xjY9Q?l9IF39(}7w%fY_gb{W1DJMA9~dkogPmn}YXxAtV~ z3FSp@MW#g}G@LY5pH^SiFV+1tD(X#DPI`^5Y>tfv4_R!R){j-+b+v1ntaX>$+8&}G z$j-Lx(`t95S3>G+aj0+xad`fSjN!1S+h}!KmJoODx)s?U^iH&8q}qSBgtiy?(l}dR zuy@)Pt##QP*>^XSI7sLwYkpsm-<^EVnsOh!XuHoivtMX;bxXbcY?G)dHnyMNyj!4O zSa@@Jsw@+-9$@QyE57V@?70#Ysg%2j4gLiwgBU2XE5hKf@cA*h^Rs_KLMLt>pN+5W z1@l8g3Qw7%xT>4Kv#WrpHt*uOaBm_8KW12dIeU4|WLecyd2hc=B}qlB_=f^UCO&7P z_wOs4)s?D4tO>*^vdnf@zuT8ZSRxF1eYh5n%Y><-xl}#|4qeA?r}wh6g;(pzrBkg; zt=Ny9`{7!(qs6u}`XwB@mJJJ=jAgg7jrNaox$X=Md+@C`H=cL5wX9{Hr%ULb6!4-Ujz0yuu1`|#_M{n|f!brfw1WuJyGalv?#coaMz+}hdV0=~43E)={4+Worj$v(%TdNoA~^KPqC^l`dFeY{yS`FJzO z(CdmMK;YO}+0X)-y#cx8K*4U1DMZ$l4H@e2^DauUZ2`lT4_WF-zjpr0DSoeFf0s`BrL4EubsdRHb8~1 zjweSn{Mx5`Lq2E~J~kldAP2tFmipFmmg;Ys0PP^D=?nm%ll?nEq?Ado0RSMFrK*OD zhMX+7vAr$5p^3ebDZPiS!(V9tfY*cjZ`0P)#gNd$*2d16+k=nzKN8%3+yA;5hzb8A z;$qE5tRbgJC}QtqO2|gfO3z5l4?{>u$m?Wc#;q(W{@?JwcYMSaE-nt-3=Hn>?)2^~ z^!85X3`|^HTnvoN49v`Qe!Uuyg;?5w>1G4p?o{14Iph1B>TBpVy^|3?0=k^hDK$AnwK z$#p)Pw(GZ;fLX6_&+nu5A!&2Vg&#Q0;EKR zR6Rh>eIYY(O+P;CeV^>E?5dxB$y`C71d@g*f)|Ao6Xp_MqtF->(1@X;en~S>ODlmv z1Bt+(h|p%erye%XE^RZu?tIOkE|HZHgn2Tb_<4AE?k0Jz-m<)NULKdg1owt1b4Xy) zWCI3me)QV~rf>QA1K7*4E?YE0f`we%UZzo|zb*DnM;AYFc{z!zL*RgOF2DiadHGmT zW)$AOm5>{}5S967|FF6r%Ph3E2$|5<-faR z`d*$uy|i8b8I!3w?u2QnQJ*i#pW`QK~hhm{H%`N>6(wjJB{Ab_s`3{AlG**+&3@m6TZe1#B0j7SJ zw;u{zM4vZ4z&PXnb67SQ2;FC+ziEwbI;H5hEoWd`0@G6&ut8>{ISF!2Wt|qSjPQ(Rm4+ltvH8A6nA5e0Iab^^}L1(@XblWzE4K0F)gLhsW!X?-YKbfq!nZdVVDk>cNoX1 z0tMrZLp(}4s=-NHoSWJDxZMgQ#qHE=WPh-HmBK<-Eex7CMN>f7;5Ny{$dgd0sKX#d zZgD;QK@k}xUA6M|QEV-qYUNiPVw0(`kyahB+xqGqG^Nr9G3xV<^S4>hwmGpmUEdVZ zpoy54cr>v4?emlR*D6nq=Zim6#KJo}qLD?!SIHpheL}6@JVf*vKN1WkcaK6y1wp5h zFY(xeVa4h~h#?j}s!14>n-EZlMcRt{`tuU~0|E@8^vkefs74tVjx8U-_~zD|Vf(yP zM2u@5GrvH=SJcakxf)UVZ&tWs z^qpShVnQz5aX7cA3))yAEjH0iUaW=$3DMg_Q!b5O9H9&W;gIs8mP%3%*^WhfhLCD9 zrcjE7kq&-Y@hU6|x0!4)n6nuc`#VHs%&W$CiE)I&1ntH(+3Q4k_!#ad+|;z75KKtj z^mi*8w^`!xyT+J!^AdV?_8c_uzfXMyrGMHR^>x9IvU-XBq#5uu4kE0TQT9U8_7P|{ zBKqE#4kGC5!XYCSO+?p#H#7+*hi?sp6l-$yb$IUY4|Di&91!3_R@hJlvHLCb^J?m)#*p^AKgCIY zpyo_fcYW~j5t3B?$)o0L?+5ocr)#>Jp8EQD!7$|Z#m0WD80bFp95)kRE~UD@u$Vg= zNeM%OTKk#%kejD>Re;N}Vk=2nys@qr9Qz6OGm-Wr-LjUt zNS5J)f`V4;xb;t&3fe0{Wo!z6Uy`b}2l;UV4w#)PZdz|+@F7}G6e=|Vx67)5PyMZAtrB+ueKc_bl zNf(IeWjLRwBlqo!R+f0V_|EovqzrYse)#SVoVPO6r8ZjDunUQ zeTwJBbc!Bigu55dTH85sm&S%5WtLyNK^B$>J7EIdDD}lLA*sf`w<$Q+^2r#bHz2GH z3Vj<-`Z4h@QYFjX_*>ndcHn+eiBm(iOFr;>;%Fp`6?wNk^c}ZT6xRcNXp+A{%1Wz< zR%1x~V3)N=Y;g|u@&teOg54^GdO>?)Vdp3WKx8_A{ZltUBQMcZ7O;qc;lvv#jlVAA!EN@)}r$FR7#?PdL{J8wG z;j_d#T|c+q%>DihHAibN;GDzF?s!W2@bRI~pIf=rpsC%sufNJMIifb4?dRHAhI4E& zZH2Qo@8?p#+bYp8tfz(dvQqGI$Dv+gEq*leH9xvKR7dVwRqWaA_J(-5s0BJhgZPQ? zcG@8Dac<;#A+YrQfoIes)vw#6+3#$uEIayQCsoaYFDx@PhewTW-mLKCYsvrh%ISMS zxn+jiA=C$EWk;v2iOE69#~FcM+3Ca9^O|*I`JIQHcvsoon)z02=H*Ow*9Xq22JRcv zb)@E(Y|g)( zt{I737Zwte@PN9~5ml_~M103tWAfDj0#W;cLXgS4BP zO;mP7qIe5=gUB;I#e+pe@;9IJ?yf&WjV$w@(T`kq6x@B|2tNMIyXc-=6;#Pb4rT?p za7=6H{&;-^%sv|{oQUhZyyIv3{y{AqUUlp%#Q+L?!8WM_F}9w+qneVHT61*2!PxnB zA}xKUeB@i49{DbHc4HeV5Xq-WhS^JCcin7QU$1#*4{29_K-Mn2NRIsJcX{Q}>etn% z_dzSmXfL&P$+Nk0S~zU>dmyEMxuu2a+cznHG<MtBDeGpm-r*de zog)OP;D0wjCF$xkycMo)Aqo7k-OQmIrqmiS?ZsW=I>$Z#vd(FE>p|+}YR>3cExxjCQe?Xs57$-HOyk$>8vZdhv0C(%!5nqevqxZSL;cl=^qx8k-Z*fIC*jun!fQT)(y z`mCr7yH<1{5yr=>kgPIbIoALEgqinRI43p+TX?~b_UuLbkHgl~;a*ko*o!s)V(JHM z;%x$>->GHVkF%Yau8Bycove?196+7^tSf zfq~q*I^_uzB|1t#63S-)K@4 zYxcSFDb9)9$YRviw(LOS%FzsAg)ik;W@f1drCBd8SYJt=d9lhPl~WXjYK-MeGYDKI zY%Y)!lwzto0Kl2#)hq03_qF)sIDFSLU(MwyAhe0k%9e7&6P%;f(d33APXQRx(8bhB zDzA!{!>+6;OQV$>{q<)f6qC&hjQioGDKe^)(K=DfeTAFRXoccPfAr z-mV!ZF${^2M2Q*Op3YrB=f>52`ic>JP|R|<%M_As2`LpvNX}IWQ>b1>_jNU)$OoYS zDMu;9@~$f|OfjT3R5*-~z0y(G2&^CviK0k?=jlH~{K@5GLX&F(FTwcSMM2^^`DtvoViJ^1GN$zOulz>_il$phOu$)HN8&(*& zy+SmAOG4!xv&?wB^t^3NQ75);lBhA3y-l#)dmVQsE7-lk6f6K zDS-u8hc4q$?Zc}}gR5I_;;|AEDb;(k=glVMb@13!KQ6ZQk1Pk|OJ6HgW1{Z!FcTq;WSC%Y%yBqU=i4t4E7@+(f2w&+zU;uUG$nc zp}Y&ir>{5?M?6XFKl^%F^WSNsVHil-WtGk3hULIOCytPN!A9I3guGHp9Uc-LHWYK4 zao88tLIZ}^O0$4(OQRvg%MlFrAo;%B>)DorFpRjne35KS zw3MV;V?$BpTV-iz`Glg>&q{GfI$xjMMbL_-;u!9h2|`^DO^1w*rTcOOUod~xrd!^5bXvQj%0sS+d3Y@og$=w$bYHn)@j@>Miz8aF%A8^Qpg?u~)U`Cb% zu?AJ!=crl(`fK9jB}D1;W7XB{$N-ZPpGnRRj#2Wty4IkCKX_q)emc_BC@`2@#b zP4T{acQcmX$Q}f{3gSdK(FFQCO=d@r1U+fc4iS7V#zdIvIMF#iJXo{6Jy1U%*FhQ@ z-;Ucz1+jz?xnQV1a<+CZ*Tgt}@iOBbFbG8Hw*OI0&YL^jv3LIh9Pm7CzY}~w6i*;i z=9%kT(;&PzD_uyeEqoE|D}o^{Xy#VdLeHn{#N%Z5EJm`Yy)?!AUAqJ{sU6Xk@m?@e zT=ciuX^eZqAIB9}yR&n@X=>m+GHMO?wD6a>3N}Yr>LKr@IAs>xQ#hU5w^o$%$kUQEWbcrfmc zriKe^UFPy&C@q&UeO`i`M=Ie1*Q)Ly%(^gdr!r!(%zdF*is4LY-IA@|db=4!EwusA zR9u*9nR1WyXk(k7)!Y;rPfK=UVasgewew=x2v1!S4o@3T+fy0A&$pplxkRSiWlP@y z^L$z^O)XEWBJROUL%M<7rH*3+nonXz1vFbmmJ$)wk;GefT}GTh7~H z$4lp68vNH?e>M5eplOZ8;xuk;_yn@o8PqjBT__+8$X<(bCh&EM$2e;Ay#LTqYtvx?4B0HEKZ~n12UWt|q$c z%)Fg{wK>FauYbSEek_s_j?jy>6`M`KUIFocZo$~pvUZJV{B<@!Qy z+m`uttI+TfgXE8&U0q&!f+M1k@i<`Hmhq=QO0AT=!9noM!g@h#ZMA{jPfJ_7LB3jH zt^1X&GVQ|mtocjnVvI|lutdM#*4(>X97$9AX|})2KUBn}IsGW*^1M=|*}Rcm=`~3& z7mfTbSfp^}hv^a-_qHctneHl+g6J@0<22URF45g|Mq$R+MRV8W7cW zn{jED7I(wcWAZ5?a^fLvEzY0_DP*1*W?WCme-y+N7j*qXKZL9BIwyZWUV1Wi_XO=j z*UDm<{q7XH_{#kL@VRzVneiEvM2PXv)F;GyUUN11jC@WD`9Jkr<2V}N-@9)j)7OO;@#>Uqj9qpJDmnUl z@ZrGwW@IZzLc|==)r`GxR+}jMRVg3EBZWPFYj3#u6FuWeokY;qNJ|_dt8c=hl&*iT zyB%w*>jJBE5RQ@W+7ZyF+fHdW+-jU0IDmKd8-E4_W5Yj0vtHYFzPD}OlLeA;h?Gf` zQ>PX#xB$~`;XAypTGr;5*O~3SyUM}0d&7;{(B%>KTUuSp3+dbxq?Y&b`kUiBnPbw8 zqPjnY=F=aPLqTPr+Sh9t{^9zaBbl+#5f(Oa;bR>`lsWX^CYR8V;Vbp#G&BxUQV~uC z;nZ0I8<+3)n-k>X--4F*^Q1Vf-H62D6^f$7ko${}4Qq#UOX)%eWoQ^}l_4TwaHoNK zs<rVlh4 zU8NvyL5Z#P`258E;Zk!?U`?{fh9No~3VD#1|cJo-kGrogX5;UqgFcn8oY%T75-i@MOsi``C z4zaUhiKySYJ&`9{fFFj(J+E8)J&M_9+(z zYaar~+S-6zz1e&Y+Yf>JqnCgk!|KUaDF-q8oX4nX*#dxkUC_8GEAyfqb)UFzLsuv> z?}1GC9GZ2*sr9r#SSSpRLco^j93-M(!`-m#Fw-?@V2p|$U{_fVAt9EJ#ZHN9`;9<$%h41;NWER$ z)dHQLmzU)iA5k+$*^5t|iY|cH#M2fclLVEb#c8xI>A*EFto(}EQ9=?>Zk850gnr`R z{bQlgN~AB8^YF3CPQyl?o9xW^xcu9SaVLOf%S9ZSCcLpTLlFJSF_EPRDH99%wPO91 zjYyxT>`XEk3^8lzp_KgNERRQttyh7eGdSj*y^CKC1{3gXsr-idg#4{RCAO$RY=$NL z>G4=?xj@&<*jMTj%djF=?Sb)#H8L9S)HyA&Gwi*~j`i-Y*GRY-#$con%@b!GPs*ZV zIY#2D9Ymor*JYxDZ2{gEj1sQ`yUfk_WNj?o?#Xa(5wxsT{0A9ZBW~5j$i^|x@}`>$ zM?5|-(I-|Fc+@Cd__-^Ho#1 z2hcN>@EX?Ie7jJfr|WbGJxBN|1R}a~oiFwt9DIM02sXMa_@SBX@Dmp)2AzIwjnjK_ zKDaIZ7iMvf0>Ug1CTbzDlP0@QUEZ^-Sub-e^0gpP-(JpmIJbvFBoGSln4z09?i;Np zKnfmGj*^Qr0)tLacM{jiJvR(FE?G1wS4V4oZ+h?6n3pFO_a}Ul7WF(2L_ zvk2s3L$>S>Ob%X%gtxiRSG97_HsDJ==Y5#_k`eoiI0B}mhX*;=lIRqp+%;J4{!yX~ zhtJ*z2lbhh>KlmQ-qv*@>Ft;B+Wo_aKIU(xAqGrvIEiD1Wl**s#)>_;Jv~$gfbAYj z(|J}(1I2Av@xN82ZUe-5%vd3iU?6C507w96akA1}Zh%nWKPccmh)>a&69OC#1}+l_ z0YJ!96PNo}PU3kmro+LoI7g#@{YTmk=6)xu7X;yw!t#Fe zpE^XjK>p&7zv01qp0>rp_=hr3H2C??Kgg3{mNwge^lnuC&dy$O-b~OxKEX-#D@TZD^ym{vVBH9+T3T9M^B01$6~D>#k}PnqC+EB~)kna7jA%9J z3^(=?>{Hj|DDU{THhlvI2DIf>Ea9ZEF-U3G(;~V{o_b1&ZDqvjonF5d(6N{#n3GPC zt|ItrKjYr}L(^A}CZ~B#Ng*z0qazUYAYx30hRO)}{eYdJ`h|(}*F}jy{-jq8bg|vp zhHFPhX@XM zh9G^6OEY*DOxhJXW_%%p)faTY9yOLVV;qrov18s z5KQ2)H~{c>6XtzVQo?>yiE!MI_a?{7`9{{fx?+iViu9;;_R(>(S|=lL&b%lVCr33q z=B2pGzPloL2V@T)rAg6+{a!a;Yqgt!J7Hr9BWJH`I9o%$3!~1?+cXjp z@jntmF#citqh%{B4NH)wfG&avl?#E!SAQ4v&AM4IrD|PYxeBn{cVudmA=FJk@&kT& zzE(u>XLg7>dMBvBn-TlXs=`_5{SCiS0b4Mz6P1%5z^cNLBsx<9veNQY!IhS|9}<_D z4MdXXBp7U2yp->#H6^)RQH#ZtFT>BCstJRRW?yeKK$xVGl(3WoFT?-BP)nzEAPJYB z01F%Ubi%Quhcx0^()QuAAZ=;myb)`7BmgG$DZyY+F}DO9<_Tis)kZzwR#2=fW1QiQ zfB*IKq9JegY#5$ma%k#zY(Q%kdOV;&yG3+cjThxm3et^8_rRu6XTt_V zJ~42=^RiDYBK)Ht9m!pr`f2;1S&f9tpVcgz5qlKc(cyX}B*;(p!eaOn59fwoXzS9Y zjQ!Us_B2}qfNQY8;T1@rr&kB@YXbqL_eS!G>wF?67y_K%{9pV?s|yEI6vroG;v|HE zR6qg@QXLT4!C5UaGg5-UhBKZIUYQHmY^A42apgMt5!wf%IrXlP`W)CJTF!P%Y{)!f zsW5*GPjVymXJUVLe)8!&Ornz}s92stCx8-x7MkTiVg~u0D+n<^ynZ83<3y|IaKEk zwjuS&o95SDzTMv+jO|3D(XLsF;(C`2!D}*r%iZ2ADP7Gd2&u4qdJINJMo0u0)uMM6 z!DcfXwFH)ySmDlEHPv&m9{i9|v6hVGti&63@ftX21{s{n6yd45aoSw5!e5$M;E z(zSE?!oo4%5i#U|tu4*4WevzOx9VZ7I7kXP?1;=hq%`IZFl+ZECDo?me5WhCXuQ9# z$|&G4ctEEJnfYO{pR_??RV_@M{i=*leI6$ZMlpsN$sk@Fi$wI$2Ut&=o^CFNzeXoI zkCU>Zihk^pN97o*Fh^^52}q9up$s8_l)K*{(lnrmy9{z~09{e0)}rKl8#l}0zL~== zL~TVI{(|Zj8Ip}Q6s;OCG;0a^nP@RsCBb+`Zqn|1)})~+va0oaADiXAtSi$;;KSLs zOUuyU90?8r#V0%T%Q){ch~6R!Tv57S7ZWY+TU>P7suJ?&z#n)tTCZmd^9vHIKQkH< z{LWX;BSdx_d1hubVxP7&r(mH}apRI01Gz;9I6^y?yUiiXenCYRS}Q3rCGgr69-tSP zO)z(~=OfWa&hkgLh=|8X$Xfy5@#L0UeQ8#K>@B$Ds>vzFlkZ%TG7dz?XX1mOy2~AB zfLRy`!}D;WaOXke;}Vn_+oSU1+w|?-T=&jq;NVL-<+!BiO^G8|57~b9M92z>b4JM&KGR~86@`}96NiR5yeBYD!p;94RzeuRJxnTeOZmmW(U#5YOU3EQ3bN45A zO2R=o1-}l5JO3p8A5rux!~Ex^<&{9TH@BT(nkJ_{o^3LB6hW9v0dEL1GjgI8ONygi z2~!!C&(0k_-i~(s(sON*UX6G6M~lLrQFkhtXnbT1CaMbyI||-blx@}}#}U0EN3=cj z(VRAPbfH^WK`WY6`>U)CZmvc*O%p9QAG$XEkwbcujKZ<~J`qt;0h!dip^^$xombrpCH@H3OIlzh z<{1orE`*C7V>On6*QYlb3?@)Ik8>M-W~aQ?RNCGH5d`-K1`@xXZq@ns7M@W4)}S43 z^8zl97#EWj8F~)Bcp|$wHGQT~9dqU&uv-iX;W- z`9MND;-YlS0@jNh3RceD{W4+UC&*g-^%0pZCet>#gotghVHbtB*!=H6ui zCZ2~OkWK@0dorrvHmC|L-1MAQ6p63ig5Jy6~h7?wqo^sSX;OpKoS&V$HiqP0Lb;% z;Y1G=*C^whRa;RR?v%|+)Otr=i-88d5F1viT$VK8ox$qt&&@tJEUp$n^JImSOaRs` z=%>QBNV2wv+HT-aBQf1NTb{pvy@o0bNgTxexYuiMI6a?9f!kIVyW_I4j~3V8LYrF# zL^+`}_%`NE)u5`yA<rgy;Jnn zVwGY;`(3&Yn|bXEFi|maQNt%eKfZqX@=yBfPXa7^r5UYl$_C)8Y5Nq=J0k?_SHisX zzfnP-JP!uFq>;`u@i4`%r=vPL@jowShPYgW7r3hZalr-~Sf#P$;bba`&h7Jua`jcN z&xm6L`<3@<|zFEvRuC?M%G>7<*16g41KnN}8?uDKEwyr^4g?Ji)GKHeOO=2b@M zm&M6&rx+r1TY4Yga-%1kp8uX)NBb?`JbSYU3y&hB4eg;UwP@OIS=Qo8FsygguSJPm zDw;uSvwZZ2e z;u*3T;>=iTUV@7*PH>4RekQ6irF*+`n_=zuV>0m@={knSLAo{cR(X;z@)5$}0y%J! zT=a!A8TbR)aeE39`qxxSg9UNUs^gVo_pdgI^*FfR;ugA(uvPJRawkL75K`9aMn}ZQ z%M(TOCRMkcgnDxlrlG*XdmVflqKVKn;yZCzZ`9T}+#63G%l#P(*J1^e{XrvlPAUlZ ze2aZjIGPc`aPFQ79QA^(s0Xjtf6pQ10({h=hB)6IFFVR}MV5-7@1ZG@;pf+Aw{ zb`=T6R7rYsM2$zB3qjy}jqu>WOIQIpiP}VtlXxTg{(5y+%p3C>Yo~PTmuOCEb_DGk)uQ`cC&Ra|{jx4o`sm-EiY9 z5ltu`hSNOB3u1U0E^c^31c!uxrE`w4b6!b^}{Aajn>b64;k(sP^9 zkY$=oY#1D|lflUW8iIS#={>ml)oaW7@hw!XP$_~mcKVHB!(h_~b6-L-xK*EA#|~fA z5-U&4M&vyhLBaA%R3r(Cb>*6xj&B|Yz?k))fTRR2bd*f~mObR3899g?E9Nn6{jn)t zu8=gX8apoEzgkX$hrX?G6tp`ElvxiGk@4eP?$c(v4vnftq!8A7kUFXCC53h+8~$bH zDL^i$=s03CwLdDZL%WkOltYi*R5)!{d0FK5p9n_-hv5Sv-|{F=_DLI*-p6G}dl?Q7 zD4D}I<;WE%221_zO+3)zHbujZb7aSl9J7LdN@a~iyjN zienjQZLLNA(rL`<3RjDaeRt?kb|H`2B~64~mVzv9$+^#(eu}G!iCjH+a6Kl)NE2pM zkVJk(GFZ;0QWjeGuP{+(bB4pqq%eZA4u`4=NP~!a{exVg)jxw=0|axRLVui*F0bJX zs;7<;FR$ig2&>)gjFFUy6j77rtvg{z8-$805gJ(948O=wqaj)q4}gV!nm9_7yurTE)01)g9p4v9g=1#o|bn zSaa)LHC0&leq2ymFTIg}1`h8+9DobS26lUKU}sPebJ3%nV5N6Fp*wXquuI6c>7HAw zpmP+MFW=Chxi%v*Dc7lH&zFY{zvz8>~!A4F={(xt+%xAMd9H^E=T4g{=!mNfm%LUGnoUF6AMKN6AXTTSm1p zo2`UgNJU`v$AMs*#d6BaqKL;FyzgpoK&7S_w);XTBe}>9IAZk(d=;?-+^*!{*k6|6 zP;;-pn7kk+Guh&YBJgcA>%qo2Qdy8nd0`(v(p-$$G239poL|IR`@3+UyVoe-WT!l)hpZI9U!)sN=EwFn!nvnAv?j?1T$K$kS?R_lHW*gyXa?gGmI@Rz%MOeB|g!w>t{4n+kM#{4@?cur)}VH1n??t zFW{Q37fAR@-cS^|Z4Avtd|E|&6;7di!T0ksbtMHGwgw|nNNv%knQlT5{PsDy{FD@+ zo~6>V19GUy5S`^QMGC^v;L*rD!nP^U-@b{QM;j>`Fsl6hIt@}AR>6cElX5AX_1}Hr zYPIrqLAa27cq6!qf4#3psrrdz^~b(C+t77}-87%$8=Tk{CJCSyWj0mhimREH%HcxkuvFi))t&%x;c5Wjwo+K<(cNx=Rlp-J=IBN) zuBhME=u+f#F|*wC=MQf{Q~r0beaSA86pP>HAntiN({%z8=E)ckISVZ_1@Xy;LO2D^ zY8`KFw_o+YUYxk3*CaYh9sB-f?cqQIP{@)vau`WathKOG99soZqgosMQmCi7%7JB) zh3PohYgfFYO~E&}7OyZKxBJceEHp;s4P4ibv0$M0VnPhijc z&K5{B+L5GE%httFGi@9v!lLxqxUB+z*a*DhZ`S@LP=a6pf#)fK@S*F_lQIXJ1QRvb zrM)Z;jB-b4_eBAc@nSBGQ54Du)L)NweF>efS%ZqE0b9i{sL|fO38>G@oIMJ4iNiJ- zH?^asrQxQ?DiLbeGvL2#YsDh0!t|^ghZzlnaj+lk=;$g@LtQhFV&&`_4t6oU99Ij%F9~nA8o8mEp8S) z$`Qt@PHO(Tz6U=A20Z{e+=+DPwWF%K7ES%0M@Duwye$oMndzHZ zk_|b?P`!rwZoQ@@hNBcF`Y%S0eB#}LeD z&erFdj%b!dPFCGsqdH~c1QttfNJXSXfPkJqmU!wk+Yb*63WNw8y+vFXWf&ZoJHF69d zjv;E!=T!=X7>+IDI;b9LqU!Z^ueV#Y%P5fSJrEr$Ulta65UH{DqlHOcI0E{59tm}s zC6QTpTIc}Z4`@w_Caf26CF*V8*ctQ`7}Nk5lbDQdMl4h@itFr4uff#exy+bMYw^~1 z@wb03RSzfL?Ls?q<5_8W4$_d2k~A6%zH|coO|^LI)x~JF#lR6}Xc!j?` z;@_|Iaa~QNcxB0IDBCilNaF3CXlDe=p+z|mQ%8B2IeBQ+5B!#iu5q%3h%f02l98BW zCnrXW_M&>UG?5b}FlYn@Gbf?q&e%fkm&xrW(^}gdK-qJR=pjg$6L>z7zb|?d6JzQ$ zPVVFx@ra2vGo2N44Q^+K8R3HDo&?vpDIR2ua?&`&aJ*VCN?vbMAS|5HQMs+?O`_kt zo_Q{M`w%}N4oP`-bRK9&<2KTa;3(jy5m@<%ka>DC5;8efCWEbgfiEhKF*;Tgxj2oW z9Ae)y&*X9n>4JoO39V^D;~u^o_`)y|xcaLtO=SM*ACHuo32^cH&MK~{vQrD0zd4B-nrYx|2KRcZ`4}b5s__plDV+U4WPuvfhgWue7Rq7KRlu zA&ybLKol6X0O;~0Deyz$saW{(J(x3LI1_>DNftWWoACW>SK#M!zk)XjesbK!H8mvO z_s94D2|u`C7PR&f+;ig*8G++8JBS`OZmUK`IlsN<6X1n4Qga==cy8?kM;n*^Sw^7b2y|1zQZ+7EX5m zxml=uqYCREX@DhzTnTgUyJw_e%9S}t%%*cUL)yZ$jt@I06D9vH!}b^34+23;60d0v zBlofbOgJ|cHj1RpYp7eiwUq1@!GkW=lkXae>@l&h$H^*h1f1>=hF{Qy-GAAKl9hfX z1|Gy69_b&Su0Iyx>d5gGUY3udIUdA#Y;eTWwP#TUR&1+=C5^tAk~JbX9w+{?04W77 zSY0F>)eFPV%|^wdN^E?h5#}_Gt3C{KaRO%kI3KBsCagzszvnAis9RZwHTP9RBS4${ zx@c-i=2)A;DELkh#+}Wq+63CB6}4D)N4a`RvS!Vc+lL@?RNq*GT{6~A?0kG5%HHSm zPG;&`zHo+JTZEzWlHf|D3lX{GV0REhztn*pPwYd*+8_)NJkmeG;5;r|p5!a62Q|J4xWOlFp5H&dIo`04n}^-;27QFMMj z#+)Ckzz=zGnEL$!WQ>ee6WrIx71`(-Iod1Dc>$sO9sk@`8-5c3JfWXEF2SMxFI zOD+X|Qg7Oi3z0pM^~lY6>wHWW!R$5ZF65t?gNc_gy)`*lGev(BfnC54NuLH{OahTwj{x3RkP4p%Q#!&-`MYd4@FFY&#A4>kDW19eRp(-&aF?+)n2h4 zH(YrEuKM|JvFSh^&zUi4{snmHp`SCAN-a{j_)-!lnIyIO_H}pRjd$L`b5H(3C13Rg z9gGtem^pe8?oUL#L{8}RVwVzo+qO4jjM;?k*(@!T#(tCAlxZ1;f{PHW>D|RW$-j|P!iIoAa_O* zG6}eL0%dn;2R7WZ4U4|J6XhE_bnwmKasdP*;ku$mgCmVbMDGw)5SbU{W9a-uw#nB7 z#ml|Vlw#$bJF)!@W~nBJ7_8TjdTtKVhB(z&Temb}`6U~$;rTjrw+3O2tjtJ z_nS71`4Q=c)4aYB?_9VMYaXpYTOCDO0#er8RMj2YWC(P6&nEpe51v$x)z>#xIb)lf zf{Y3AbTp@qcYiz9-MIy?U%LyHn>*EdQ!$xt6rDk94NEao1v#l_^*8yj`|-Va?Q2_5 zx~84JkyI5F#bMOfc{2jB=qru##h}3813{nW^k={4y3&N3?tC zKXCnnuW~(Nf*d0~hEJQtC*`B~O0b$g8Oh{4lb3b% z_OBA<6S?c&GPG6^6sW*+7srurBJdGx0&FAsoE+p&B@#-62uVS28XXn+Wuu5+zrF>P ztD3R@#cGr;??Je!8{6M$M~J#LscMm>;8@gkYVR-`Ry3)Fl}#9ON)j{8Fdrm!Z`*#e z8S5XcrdZpC=FN0kr#LPpX*ffV>>Mk_%IZaBXr@7;^sy2&?B$z)ZN=utfOZ+gr#YGK zUv!W`R4pfG&0}>7tI<+Ju9qFMCFu)ni6JM@K+f%}dB~d_r$Q}>@dx$UNMTd|^ja5&H=%yC{#a{NKyP^%-UKGtQ*MoVZnO*>-36~v>&k??u z{~rT*!KsSI=5tShhz?NxKbP*ZPRlacbf@$QYT)!N_b4Q|}cNz%J&a!$B7kd_#NBEk=va(CCk-wdiJCXH!B1Up z#&EHSsLSBp+=jL93z+pQOxZU2cNit;2x`Yrzo$J&~GZ;q6 ze#r6$s#9!7Ki#iEV|Q>-Ao?IBhJUaX3s;%*$>cndi=^`(oh3wBQaC&pvp{!HoYG8d zaqnGg)j828NjdT2Gcjgp8utQN|Negw6Sy2%ld~{<%t;uJ-(a(lqL(h5pu9yhldno? ztg7aA5?Pd3#CeLizZI4Ow)O54c=X|kxa6D@(Q;rT?)}aEJZD2)15J*{DuPoiU5$*< zCD$bYmNbK+-BP(1_wxyAoQ*+#D2c*HU=uL1(zuXvS|YhbxkntiC4#U3Mbsq9$vOI$ z`A8e;B*=KN?}aL)Uo=z=O@^n27)LHTk;{HE-`|8gMj&T&ERUPuVB02Iplg=bV%G|W z7gE&g@0!BP4=Up8CxDzb!$ppb#tQ*&OTdYT2F*iR5l&tP-Uo!6&rGs3Ib}DJC9M@6AF1E!ieU z%cyu~4#FhwKE@r6y(J$hLmUW@gWX4NHv5~y^ot{CW%h7!dy78SNq3J#_6VAKqhn>* zW9_@O*t3O)MnxY!X-RC({dz9OU&0JS$@Cr|cP`gNx}~>oYzHv~`krJ20Q(Mn{zoPM z{nATEANLjE!kE0BlZ5fFP7ewTQkYp<2ao;x_T#iO=Oc}H8Emb^b64JoVGm8h*#yAC z;lnWZ+<0vMPcxg1PJ##(B0q&QP=(1+X`fWPT+|NK&*P7`UCWPtTDCFt8SEawGLhmA zBBf$!3&x(AOg)|%sWUP$_xI#PxRhv8QH%mc;U?`=Jyoo0#|UyQ4yP4)XBWUdim9ox z-SE&NEC6a^gof}+)_EByJkdj=PY9JuDzTTY9+{WulUKk;-IWf}x^7Q{GueUIbaID& zK`e4V;$9+%D$=_h7mZbkwu6lW6)sRJdD%2-7Nl_FnZM#T)dun_JnC%k2CXlmy2sAI?# z^JJigV?CA6kM1gFCcUU!RF3^i+L3#O-hdW)1_IDFa)-haI#cwqhNENUIW6kg%^|B= z9J{k15mUxfm&?pIweK~-S;%#*MeP_N3-^rj1))IXUwAN$Mpy*tZ#`3G>AFDm%H|Q9 ziRb9o2VW~n_V2@Jw+B))Do_x%kbrJV=^ocn9 zrEU>1foil=s>1sP12m1Yn8+q{6A-iViZF_z_3&ZET$jV5z%No;)jQHgCcHQ>V>k7d zZ!|#`b+acqkU5h|dvavr9wPHC%+y{XN`767D^aqlO*~}a%y1!RP8w1u5(;q1(k9{) zDC3#-^$hB=%)qJ!SS6F3 z64hxD&zzTqabKZDmJtvZ1sS0 zAqQc0Tj3c&nRQ$fj4tj3jOl&7Q4NgH;8Q9oJpvkA()d82fcO$&YbLNK$Fd;f6&OMhL-XU=mhQ6^jcFg9NZ z3Jf|CSfjs%=1d~-x1dRh!W4a(27expEM>~}qOOf-p7LEhcjslu_%u72%APaOVRq8!W=<@W!1AA0IKkvoz34C$lSR^~(M%vAaXI?zpB zV2g-od{Ucl-hs|5a*#QK`Z97oZS^7K%uA&U5Usf-op8*jMR_Ozg#ckobz#Jn6nzDl z_zBTE8b3M_lZ#`q?TI}oNi`vzU{<@l6=j?B1g_=O$DRI*JT7g@HCTqzfI>(WCtfE{;_|T(~l6&O+3#UQ&bQw^yj&*>wJv@yPk4i*k`Vgq$PCYR`zl z$g74OG}eUiNtir57F!?LjfyM_Qc}#Qd7EQhuaC8shN6?N%Ylocd;DnrKfOWK3EMK$ zz~Qavz}5$Lb7xYMrjg^wzz=e#b7@STkj&L3CFl?fG3C3Y%tGX*B_Jbr9KOsW zkvyurg&$kq7j0oXe*C*}h0>Li2pfuymE3U(LE;t1(dspMz zKl&9k7p<{O$}0M-ffNa^5+~fs=WEqRt{MKrp>WfEMa+~f`)I`AF>!1*(ZI0(FO?9U zR?5U*je;x5Lf05tI_Xvt2qw{It_J}tMLWHU+S=*!W}y)!L|vAzkz7=KJm%bzqkyw& zWI2}KqeHlz7FxoKex*WA?hx3SM9Y?=Cr9B{Ed1?8T;>a4Y)8wPh8{|&|EWv`B|;vX31{V7$WgU9q9 zvF%h@-c$#`9y)D%YkLqpXsmp3$ymt+%2@sN^y8!3(@EdWMm(Q?#n3XW{JrQM`Ep|& zHpRlNTH2tM>&DBfg5vxfP~azLJ(+QEDbE4ANkzo!C~4%pQ3f{!1|I-&I(S8g!}8?c zU&e(CCL=w@gA2cZAEO9npgpD#7o0y=nLfM?`|$M7{(;Lk+@E}TrHaPqA`fS+sOO0g$o8i-;tf+L3u4T^aCj34kJ#u`4{IfD#J~q0i#WF zowUX>vSeQiIVMh6nf0`IGB*Q;UYU>dVKH#$#UMUYTw`dgp-an-7rY23*J0HijEIh+ zA17?L!-1JU8_orf>}Ywv2`hfOAAu=J$Q6Gcjw^L`2BvYH5J`|-Fh8Asa0FDk$#m}3 zIVBV8ND_s#uViD)McFE(E_GNedUkI{=`OC|m&g~z`*mm`SLdca&oeFsvu|bs+%_w9 zk+ih3e?0`{2I?@S^i(opmNhBep9?kH^V(7olR8ABEJfXkvlPxoOB_JZn&NgPin@8(Ogbx_!!CVQ!&V+!WD^ z_THajoj6C+kBv43dPK6UZN}bL8!-0#G#Wu%C}I>wksPN87~=gK*4AP33j_t~D8(;O ziZj8kqBn$Lvd3ECN)i5v=ac~|jI~cyA^u1CNXW7w_pBV`$yv4+Xy;lfuT-Lztht@s zpPvAjPEabG;wG@l7(!^<-ij?0jm55QPp2a?f%?FkjM8AtvoptyQCI5ELfY#t@5J7} zSFk4k4>k#J+^?kg=q|*uQiL~Cm7t!{%0}#6lz=f`q0uOn3rc;xK))a|*1GrVuyvts z?ce-xC7s;4Dj%)N>2ovrk*cH#`&hfY9{b;;2`q^;X^y^O^rnpM;HAL8XX@u^j5I*h zH2A<(EpgAa=cBRuK3s9mTzK3x3Q$DuZmY+V7oNmTe|QcjUwJ#$uUQ9=-HTzFk%1N*DWQA(X+l9kB?m<&NgqcCH^%64zUQ}_G`i}x^UBP|29 z413ck6Q+{$X?XKV{O83}@ud^Tprdv_o_g|e)qZ1>F3JsrWD>wHrFB<3YUtn{WT;jP zIiRh75obR#f7I_OU7_yH!(;|+u*tf4JDG*B%0bvvA_%$3)7y` zyrT`4E*o8SgwvtKNB!Ua#}2?t9bNIfM730=j8|g}UNc4M4G;0&yq}2{iKx?WIbCBi z>9n0h(Y&3U>CP48!YNh<7;jpt;vr-M}YTh#kQw(&QHebuM@)yb%lT02Y-hj1=A#AMHkI|v@n z(TH$L92MF~sw}#@G!slsZR7w;y41Za1nRvH?uWP0hay_XWm!PDnW#@e0TymU4KgMgR=KsL?BaJsBJ&iWs{`IYz;O(LH zW1O}R96Pkmp}(23>VwzNLcpAK2Ok&9!a;qY@idn8=m~S^@#t^zX$PNk>TMEi4nE$$ z9@`{i*LPm575&dg_lXD5;{?Ip{phjiH^b$6&(WCDyB|GI^SwskKIr(t{X68`p>&b{ z^y^D+y8{_3=|B)w_oh1Hpg#1rBkfDQ=(vsVBh%?~N*gYUr25Q7k+k#9J5TL%Q6#Q7 zu8N2=gRn5WXKh0hBQ%(^k8k$I+A4%>Nl52fx4y1cR996pP(Km5=}A-ph0)$zkNOra z;Uxd@yta*r>LhQVo9+-kCIalyY>1B)E>h?tg^>+COn|_|skL=Fm!cn+ZIJ67GaF1+ zD)mqSD%I`iYHLJ073d$fNRm=X0i}{~$}FSKO(p--C9}Tf$aJZssS-WHqEbsq!ciVS zQjw8Jjyq+@AeSTwRHaA+hj3iNIfi&#hHQz12})Y6UJ^)UiN2sN&_ZrfqBz7-8m0xi ze;w(s#5W7~rurUjk7LpE7fM6yvv6(Xq=Zuy?oCovNyeE&bM2}AQ3N-WI|~ZeMeT$& zjyk&zTB2G114Rz8JvCO=mFq+NNKtJ`?mr$63B7nsjg{iPaM#gs2;C*otVL3b(NM-L zX)u#^qIVRB@Wb3ywQp<&8wK?FBfTD+BJe@<=K8+%HE5xN%g&H5Q?L`|<;}hS)S>Pc zl$MBgsju_`97XBc%Cf!_+>5BW4?1?_AJmss*Ymzs8f>}h9j%=owJ0zX=jdb1GMUWs zIaa;?{ZI)$`yYtxtF|a9iW*P;B_w^;5!)s3g=oi+x*_V%4p&dWOd@E+ee!7Ssa$^o zV#gXQ!AV>&C84S)IfISIpfB5#F|g_fiug3DwxVODThQU|FOJ|r`UI*mNOT`vf1>U_ zA86D#Fi0uT_m39=z`g^6bVTHWLUblRL@EBM42HS;#IyH!%RnE&K(KWtC=@eQQ@ z0P7yJy$>@6x#x#xst-S!0rp=mR%19Ek{-Tg~KZ&KW6&b^>nwRrCnFLIb!3Hoaj-@KWdCE z?qmc=b8E-pB&NePd0fXt+>~QNKq;44=2|1UKZ;8 zBnm}{uXKfn)BmYfxRLuy-xvxfdR3zs6gU4E z&B662x=>%IyF^5fAMxAfLTZW!4K+2WK4f*I^sFp&G}NFw;um+sHa_AB1w=8_VR4Zn zEn=vUrUVET2r4k3OAM9qAu8+p7g5^xH#GD=ceMTJLPQ^E@6aqT0xV*XU?0?CMl^Ux z5fJVLK`|aMtWPas6fr)iN&?utE^4??;7&9XBZ?mIrfNYJ9+GuFqTnk4sq~^M<&|DX zwvvEVWBdKZY#nsj7csa*?%hkbzDtcgg90C*z@P*`3-j)Un5H*w=y+Uu&Y4Jcgs^VS z>v;9;EpWMP@Oqiv-R`6hmk;@~&cyk%#?sY`lZ*3KvJ;z?^B8~gfEYwLZ9wg&ev23p{Ng5gkUyJQVQ4iDaoNn8w`x(hlN}PS zQMj_B-KgI=GcCFTrtXRHD40!OKyq%OE*gd2twSx7m_`>SQr2m)p0ch!Ix}*ZP@!{2 zGb1td24z({;r1kTU*=h9Oxqu$B2>IpOtSj-dUc&xo0YFhq>lw(&r*vf@k&O#bYS<3 zG+ePcvHEHRO=aj|MDfrovJfweB1x#+rWTaE8HrFKs0#OPWr&~{N5YYJT|ix88G6QLdD7TrHh-#kC~pGhy7#!%;AmYlkqOpTxULTBm|j(^0*+8t*^A zkU4T`AZK-~66O4c{%{CJoRSPD*UykxVQH^$L7H-2e((R)!@>jtA%csn_mOsLGO{Kn zB7H)Fq(#L3$C+)WjH~VSa-UXA{oM#;kLAKc45w4pV!kQz=OkmxgS%0=K@y1(pcCCV z@$Mlik%5h&XyRfb`S$YX@I~{Jz32>b4CDmevr;kb>Rcpd$=V`hH7V8xPUadda~kl@ z&1EX{wbT>vbCG8GGm?=x(SyVSCz_X45&)}|IDY6#dB>uSasGdc0)r9&qgj~AyD>_D z>mvvN_R&)x;i__g)nfQeh}^iE_@_G|CFKH+n7O^?j25Mb!lp> z!Gdqzh?{|4))7%aU!$ zd(YU;aP|%f34|F45N6BhfKo~+{r9zfEq$-$wLIEF+xO^zwov*gg_bsyov;Zj5JL8j zlX&kvH7whb{=e^B$yS^=aTp~j_axT1_uMnStMj|x`R0$2l#_;rx(+y_2GJ6>59IYy z?9pbp8Ju8Tg&?MJZP8fr0E2Z-wQ1%fbaNY`o7*7YrHENZF#{wNpOvVh#rQgX=wTq$ zSh{URCs~ot@b`U{-Pr$Pzp`OF)^=EI@PwOlT#$uHD^d_k8QTEE`}b5a@<~>VYA^4? z9Js1o*!!G^fkCrS%!nxQIWe#jc!jn>+ByoIrI^Th4$*FK()Wsxw~+DuxF>cqEWX!c zfP-=V98(f7jc$d_+YXW$Ghi;0B4th|qSI@nuYy4%=r$P7fT&4xnDOp*AKv&;EuSkf zm~&$;LDI^t^B~h(x)_|*s*)9@FU`P$TfBJxcddw->%=VjCnqv2}pepp$t?$Fu@9xBFH|#*|W+qwUZHZ&P zk_qSV0Y!uKw8^y9BnRHZE%e)8*oBvGEJMoy26CWSB4LIT3@d@;mC1~V%?BGVZeuFX zmv7vI*M3^X{3qnD>DQdPP-?N)k~pN#W4>m(=M7ODAkkdJP+Ot2s-eH=6gV~oA|92; zUO2~Y=94)qBUa)(c@J$^hi5@>l!WC$Mu6V7Wh>r$f3q6oAQzt$sqZGUfdiYcZv9Re z&N&xTO7qmYLtEd#&38V8)S?m`c>0%k?xjskoX+bAE?G;9S*HX37NXzs8}Yg8KaZKE zr8x6~t8nwTzs++2q==*Naf)~xD5rXQtz^xWghte4@9V~nyAQxkL0AH1fIi0OV+1c2 z$~>80!^iv|U3(}8+dvr|j~>|AMH!_wmnedu6s0g3CW1P2_>1!PBIm}rC?y8x)%k|z z<#OmXH^bVqJ>jB4QLugV7w*{Ei9L*uS580^zp)UhRl5PPF)xiHKyo`v+V)lUFh-)* zWotRxBOXa6w>ZWpv=QW$UoXS%cM|B8XR_CWu0|$h;w46A!AqJ7hR0%r7}?@emfO5V z8{6Qv4)if+iu7+{2DvQO_w+Jg8N-EDtggnk)y=fW)D$iv8`O(Vfw3ttvOu&|qit-) zu78T25qY1%WJYW(O=03HED z1ZTpZ04(zr&;I!w*cdW?$jz>3HMKj?MB?84|W0s&#Zhnx#0w@xo=Z1xI&cCS$-48UQ@XJgiz%8;wq3%1V1#~$0 zvqLBgwN@l~P(~F2u4r;#MuMjL8HFA&MK>2PPj50zq=jUvlOfrdpIAMx_(jZ%q)h*Q z2?{9Jl?O~!T%#&K`D^)dYH?g{w9WoI&&=O+BB% zb4qiP#1e_=N6_KAjxUN;Vc`keN*0%~JOhhp+xYff4cvYX(pHh2A9IHU34T#?Qc-da zWrEb0`s%%?eYst0o_2i4D&pE@B7@ra=PEQXCSU#{<`tQljAg$`qR9<8DCSXV-``#-Xf+jSZq|9 zWTSvvdzrj!T?HH!2nvGpiRGOylU5)=q*Sw~Z>l1tU{)JDHJF zfYPZ`F{xw%oYaWQ4(*tI9x)j9&n+UT^{xL$IRlmUpz`5b)bA9{HBZG_XxgEr0Pqw1 zh`LyITOpEj3CL8q)IVR3?SCV;CMGMRV%3SpH;Tuj7>h5I--%``8qKDED_bRB3J~C% z*EQgU3wPoGb7lwq9~vwa_;4g)f(( zvt9Jap%NZL_+1Y3q;`I|R=BqQu2bNs6o~wFAGN~Cd{BPo;h(xFJfy@}ZPfNAtG`rg zed8DjSxMs6*^!s0%)qM!d_~D%MMncoAzvijgf0|q{mU8LY0_)L|vf1iune)GATY9B`XC2 zxuGbFc8me&vG|_JNGqaMG1<%(<`91G*9;e*!wATsEu^}bFXBEHav^jKU#3;KwU!w~fep*i>p#kjvNf|ntsAwQ9V^ZuO_R#Bu*NqTMH6Qs^J`cFK zHRWK1o9*4(fpypILG=zQeF@USLCRec)081b(w5$3YuxsBBVM|hpvLcs%n2eODgbKa zogvHR%Fz{t%_w9)J3VzLtiNAHS8*2xfxDbCyTY#Hinwdl%I7c9XoX8_wa zY$O5Fu=3(_QJ9y5qI_md^Vag18F8^OklesG{oo$FzikIzeEb0>SQi;RZRtW9RDK<^ zh})Kww*6j}P{?SDLNfDnfCalNIGF=QtUUd+v*Zq2NHTn1hwpF1 z*uw4W?>Ys>qQEIF1C%8snqFB6^Ot`PFTSvXN&#*SdCWkTBG})DwSTw`zb3e)F{PrE z@b*?MK($!BFl6LV5&RaOdF3rEnsO!V>63B$gFCQz!!G1ZosWg3H2P!NzUeL8zm6Qs zghF&z8~_%64!7KN6K3QPRc21a;Cx=Z6@qfV~{j270Z5XhL8T*Vgo5MP!B`)H?*+Y&MvrGnQtY_jI0$o zSVZp;Q)Vn53L**!qK_f|#WK@GO>pE`g!|LJ%P&JOIt7kTfm0Fyjj~!;EKwH3+O*Hb z)8?Xh+L04(ed{+oSVqyA+KW-EOH&G#7^{`e_wvbz-u513B?I?-^D0a&+JMikT!i$Z z8Muaj;Zm{fRowC28~N1+v#S>>=Nn~=W-Adw3I$xIa55ydAJYzx`6`Sa9sWTB-YpN+ z!~XSLW=OLjbGZh#0fLy934qG}T%npsp2&V_YbSvVOvyInov&CqE_m5`8kw7;AFU4w z0CFgbB#Z)04oW_2%#;QSexjP-{_gu~;mnRkIunySs8n$h{G=`6xWpKH_iyU8p)(jk zkcrl%7|7Y0B)O8GHh-Zx2K>@m5ZfNAB>+xfE@LZF7Nvs9S!FQoWA2u!r|VU6Cjr3S ze{V$GS2@?rXk?z9uErwVsFy&0;L#e@5B7JXY)vcki=@Lw`@w=sc+WU|0sp@JJ=pg< zZEO-)ReYdT;apA39TG*3Q<>z*!Qp+eRz-i+DKMG>Api{hh(@11Nxyqs+IF|$;2u2j z*pr~$ER_>Pl!ynvaDV}FfUj-Q0HnQJcn09@7oLW#wU`OH4`H`D)sH^f^0|!;q@V{k zTyz@t-1%!PpEH>tNiFMOKN>4`;hVR7Ph~Ajb5Qoit#uOf@%r9<7=L_V4puIkj^3t2 z`2ElBV-H3uOU9QHQyl&!#J%?&CUNTUVJ11j7}~%IVh!~YIR09LmTERhn5bRX0(X{Z zqP0mzZXqSWgP%Ug?ZQ2g2myX4veJmV33;>QXus&i{^!J^ksu-wjtLUzbYuNZyD;S& z;&01`ft+N&o(30o+}o%rV90PubQVJ>1XU*uqN~hQL@?q`OF2)l3=tqz;DiHADD>Sj z%=khE;#15Ddxn^DvT0o-s^08}fj+|q-l87P96TS4Ff~isQBsF zuH9<|km{`dqEldO3NR_sv{NoAk}29Izx;9i#abwJXWh8i(bvQVi3KBVSmJ|ODRCp; zBipy81XCPZLM4I)>llI#N5r+Ex>mE+*LcS!^$3DT?~~_Dl8onQiG)J^jqXPq8+EUY z7IwtBh<2F2BPddW(RI{!Nys!R(GnFXN7NSsho3u2(k9wj9$se*dW~*d|2~Sg{~~ldJSo!U>bDV*6iL3HTE*}4P(Ectc6J6- zY=co#P>GKiCcmSx2HgzZBH#O59;S87rdNoKiU$uG>*_&gh>0x5=Oh$*{R+zjJx>}pzqG`&B7BMy!4XugMTqGxj zAc;ymL~bn{-_FFaPa=;Cb$;YKyB%s9iLfU|-V(!)K&XleOscm0+II;;N}FXB@kO{O zam)}yXxTMN4v}zNKCL#pUJ@=$xijZq66#aM!B4$?olG?o8@ z3Yu_HbLDXpIp2T^slzR+C`x3m5pfVDpo0pUsyID%C`Q_BUyUuoYDTq74Y*jeN@y(6 zCd;*w{75f41&&UEk>5sWc^tjk$$m62;6ZJr+Q%MusA1(tXLCI|n~zbQtGcsjf6DkXry}`l@OwM3HK4Mb0Y5oFe-1Zh}+n>1bT=pV|7s$`P)xtj#Sw23`*4VV zT0MgA7$Lk=(k2OTs@h|{quht#W(m0B5uz8J0w+R&QyKtIWTGcpS7c5@;-7om!iA}Y zq&aTQaa9;km*Z+EREhX;+#+?xQ}4J9g({494j*;B@s3Zgr&AzAfzY#Br-x1fodP-q zK7AC>0r1mz&-EGW6woOUqJR#7`cFZpfKGu=Ed_J{{M6ohed0O=bPDJIsQ(6Z3g{I0 z)KVY>fMNro7o7q+1#}90x+tJ?fS<1Wt{`0>(L zZ(XN=PJxq{0y+Sm#5YGDnoa?o0v|60bO8K#>8rP{Q$VM{NlXD908iqZqYq7|fKGvr zmjWRG)IC8yUNY;g>lDx_a57Rr=KxQ}yP}Utr+`j@e+mUc0H}L{{8Ol{ccN23r@%=? z0i6Rpscwfp7@Yz-1^$^7&;jtDNo~C^odP-qPAUrM0C-Z}juRh@r29N+3deF%jpw8x zj6RT)l>(nQ0LlPPq9y!+?$akT2jY-r*8LZBQID~<5UG-rrF#);Bz_guAh8x99;G|u+sC>peCdtl+{6h+m!so*824)X8am+_O z8LA`?B|j6(ODH}9|-_j z31V*k=;co<2IjJ6zT9KX*v9qOBMW%AkfY%>;TGhuY^O4;(XetgcKZg<=?^Gw@nq3i z%N+VRXZZ^kA!y{R!pA?#cQXNQkhCkBbvhQ5=AvrLTi8%m4>LhWjt>ovP+n*l$t9}q z1hygmji(5g>6bS7kUFv$!CMal9|BTm&hqmyDcy$cZ#{>74L+F791kA~deJFxvQpqf z17KW~5q(S`e&eD=I6Er^J$-HX@yqX_j!?x7+EKv3fJFA%ITXYl=U;#;CZwaXp&FMy z^E!sOkjw;=K~l@eg)7`eqql#Uc5&od`Urw2LrE~3&_z!7)}_nwrP6$KcQ)a+)h}Wb z=WR6v(f=`_bX1g?AUBBo8K+^%+-Zn2`_YyVt4Jc?msU6lQ;Q2=4tPA&`(PwW z2`6VHCl?@)70sBB!t?|LL!cHZw+n-%iPyB%9>CW9HEi34xr^r^J2jagYs8?>gOnEz6adc8&%>(X9CUQr@rMuqTG;H62!$ew#T13)=s^NtGL{$QU`j?J(m0A$tn-B5 zfLLDRW1RpObACnvzH{1io7m=x);pXYl< zaV>G=W^7#8vVD_E0}Hi%A0_R1*r&f zTtbQf=O?r<8jPH?Hb@g`Y8z}P0Jh-5D=tNDniD2P5N&i>**VBcPsN(G>);zO!_0=> zd1(Wjads4Bq+-tE6{vpV1$cQ+!w<8u=A|FkDe%vwfc)yU@}W7vfPx!>7CEy);oi8= ze4)liU`0D1U@+hx#6h=wZ^z4(HL#IWX=tg#t8&Ol&WW36FTqbrnK2rR3kxwZCV+;v z8g;DNGr|$dGz8RoS-*eaNX{^c03`BADT&;Ub#gn_r@lqL7?41K=;HVV0Gy_vsux*9 zKHCW%Q33Wt$O!PgEY#4;71hYJ1mNmv#fEwrg8?qSSxA?z$nD<|oGTw5vV}f!*rU51 z{?4glkV3}Ai%O9kZ-uL?2^(L0N1dniRlNuN6eF-N0XzY=$Rfw2bhI|3(K4tWG9WNJ z5)#S1MZxFkMORNBTQVxqVqHTE7N2`Q^3oF#92!7Jdox-(-AKvEM4}@WX*m8Mvy54fFlP!=zz#C zDVd#mKT0DaC+sJuwYa1d7w0CC?FgXX+k>?Sd(rFa;gVw^qItP^XBJMxrMbz7kBNgR zFbK~;5Sd9?_~Gd`#8D>b_H^Md8+YOm%mhDjMA3=(k3~~4BRK(9N*=2_TJeufoA9pN zj|6gavaJ*Fo040M>!;+S*ulk0BstLBfcrM=L^DA{6f&}f>?HPHI%6g-$jd@n4BPK_ zVN+!}ezUup<0H9(Lnz5B#^;OD333GfAs=2kSdM<58y$kkB&End`{BTMmP|#q%|!X! zF4!|B;k?{5L=#@hn(FbZcXpsTARrhV7YGXX=O5tUoW;mVOX9P_kLH>~XkwSq(H1Hm zLibR{Fh=nU$4Aa?&&D^fC!)^E&wddF-b0(wG_43FS;@#Mmizee6v-1>(BHCXgIgrlY4peU5i>ISvs6=#O z>7>c{`pgN4A=vm>$48)8SXhG73PmGHPQ}%Xz10N3hCvh;Ou~a_pN2Wf@rdH$7VsGg z6yTzg0^GS~Ego)ksmWb`+L`$7yvfM1TM!l6=AB<$hzpAI@a?}mhc`rs#q#ruF2!|| zvf&`d7)6d%xTp)crCgrB8>`l6+}7;865Kj}BCJN?dO2&^<`MwCb-Qt(K8PgJz!OZy z)ibAIQk)s*l8a4pIN>x?9>)1BpHP5B87Wxyk5|c&nqe~#v<8mVn631THuDpE^dR9 zVPiW}@(kEfGpMxI17VO>Bhg=U3ViYuP>k0{GK}La;K7i*tF^ZqhdMe@*4B=;{s9G= z0y1iICfpp$fu=^Rud2ZYZo%BLo#ZGh+gtH^Wi8&Vsl%Jqji_svnkl$v`Ds{~$^|>< z!~Vtwyw}){J__ryQ!?=FbIy=TNGY6-Z_F!2L97KHuN&`FR$^02H)VQ8OwBI94=-gs zj{l~m=is{1Jjwu#Xz%I7>)hTR>g^|3MB|*v)9~Q3Qq`Wz-HY;0nL`JfxFr|PMwAQM z29saZLqLF-TTy~-wj&46WQ?*E77kd+G(#c+?RrgV* zdpT|?Ztsxr`gr$^7x0(A{S8m8eH|XvJ+=O!akO`|z(bDPVzt7VHc4xm3NF3q6gb%^ z@X>LA;hCw$7ydHx-oXVSHh&Mj^BVuO;}2hV9j?l^kE~O2VM$~sUf#Y*{UNOgJFi`V zRC53u%Xi@`Z$xg~fa?~|!hCXm0sjErKDY}PKliR``0h)u#7*SlvXawrYcl0`B@<9& zr}lKvi)XjLhcCY=?HI7;OV{I^3@5UZgzo{)FUmzC?d!UFJMllSJc)Y`xlvp+6Hi>Y z2qm#roK{eRX>aYt+O6x=pImeIrI+L8DS7-fdg3$+=20`buzgJxnDxk7sgAEKI|p|x zoI=^91$j=20#Hwoq}?9jb94*p0`)>f4S|`N+g*|o{r&v}X`WPy4WHU#hO4r%P#OLZ zJ}|!bP+w6dv+7G-M9p@%$joFbZDhS5-^0Kc)+IH&dO5x!I2;z(DaMc@az(x96gb%^ z@X-MQZaZ_x#hrlY} zXXBp-4{Y6uMsDL;Ivatc93;kARDTuZKn46JIpa}Qz60;Ilo9}A;Gq0*8k^hQ8igrN z3-)z;5UuuqGP0u;%^tFYTYM?`{9D)Bj;~Xu>5QR5D1t*9ffuPcs&J0M5W2*~Xmk** ztx`4#36FZQocNF>Vtio$md<2nEnMd?$2)wNLj6gF@VJJDG5p~}4obgVr@%)?fsYOV z!;6r=bG6waXCU@);*lUl%wc4~`}r3(jfq?mia+2r!ZG!Sw3P#4mV(!ZnxVFtoDzlV zQsOCemxbmh2Q?)#ll@YbB`2gWE>HsjHqnuYLGBr4+vXDkVan0uCEpf>_gZ=7$ zkt#|T1utb-vaO_E7pr$1!p+IERA08}D42!$^BPg@@#6GJrMQqBU~5Mc?y2da zD;oil;F@d;aap1M6YbIJlZQ&2o-UD(8HZ(J0w&rbC$MvyFQs1-q486A{39?BKB6j) z_l1`mxi#k`;1yY%G{R$JN!7xAgk^(+LXVLl9NufVa_Fe47J9(A>3t*G~`vVOKyN9-+pBCZYc1{^&)gz{yI1k3leFM6&$mZL!F( z+mU3qAuZO<6--$XSA~%>tdg_@MGrH%Az3HFxg|LGAt@0KZVd-R!gM(+T3wp(VloYU zrId5)yd*nAecn$+hM3kEqoR@TNWc>t-^cgfco%nUYs2*HY!q{=y|0hvB5n^g$w6{& z4qUll5w9iO#^mA$r!T;*3+Lb~^JmhkxdCl1uVUOLWMtv)IR&Wbb>pHrr(*s zb^i`@v)-y13vlP$2?U7%4Tz)ZQ87d?u;HsKF2hYUC8?`FfaOn>sWycQ8YR@%;bZb) z^zo4zqd$>~27x5{LsL85@6SODA1Vpi$*3)FS7t3?2on$zunrn5D4o9ylje%djz@@! z5(L5T>A~hVp2k7$$F&wiBUIOg_%(9xhG?GkRimt`4$kStu*D~1(TdMvns<kD#3?Yc@z86?bf$e}%2eqxex$MX7Ih^J|aNYyT1^CniWScIkYLr#r%Af23~0C8PMGoIPL z4Zm%X*2?ky^-lcv;u$EV-|WQH6a@&beh=1H9>5pZY#{R;Yy%{pn zJSBAh)f?Llk4ZpM@o79UL^&u$qS*EBD~O@};*<%w%qkP|XY}(&M z4qOX*U{M+=AS*M8$}R)N1U)!dNe+_Q4^d)xXd<$$Y7gG*kmXEZ zqD*n!o-J5cRgGI|=a)vW2l1(`X>G#82kTUw7;Yu)l(XIY=4*Jnq8w-Cq$1H`hIhb= zy>*p%rmh)VUFUw;GXRKV1=H}SjZoq?vB z3jFw$e)WY8>Xl=(ITRPi0699@y1xJB zOQ@|ZLS`y~jrU}LM&GRsRj6-uQ8uahZ5wIUGeDUkGN#e|$f@MA&GbbUuSYW<6o;7` zN*{XBDR2@{K$w8wRD#EnB}?$~%P*s{j`Zgp zeVq(mxJH^mqxC2|taJicE5Sv2OdyBX6*BORY$uMO79hB|6;>DsmL{}?lo^rrQrK1} z+X@PZM523SrHId>#|Z~dki*fuj=T`5eK;s7|L9T2q}tJn1Yr>rG4i{ZD~YMm=rSDhk6LCEsq7D0aPF$h zP{M~tZ%Y-{JidmCFh1n?pcoI$Mz^nj*D3H(QNY4TMFW&qUq{UAPGNSp_U3#whJ{lcO5}s-ObD_)vf0YsI6ZUBFKc@EQ{r zya01Vcj2n)*Z}*M*o6rkla*uhM$Ad%afxhS0J4u38ZjX zVLPm@BFRWtEhS6j9HeeI;As?TF~ndL3mG_}C?^dAt~Tu4{Eo5$5ROsoHua)Y;AEu0 zM*@H{F%K8L{2i}Iw3wEG%;@TeMS}^Q6aeWM$5=+^VcI-Ks2?F~0Pjt|Feiv#l${5U{!v_yd>7|XcExD9e{ zTx0tn^~QP*aEQuTM@S*G8f$FhActP%UxNbw0sv@2dR8U^{XO*P&^E4#De15=igXjB z$&6kLbS-JT001*4Nkly}VD1$W8Zq3!#2d__}n+P@-Y2p#j>m)OYED*}lXli4p zf3TajcWqsL|CBp!wA1a3#^3>JWdagcKN8dg3}|YifP=>a)XsFxqNR#Gss@$;lTgY5khEXZ&+f*Rl_CodHqlvKSb)TWqZT-I3!X1>=RTRQ_~p zR5#dIk3kbvJ?&EUYLu~1fE#dWlQYI?bMp5_Og7xFm;GviXdu@ac%46VoobANUz20h zToWj(^a}k(I#t(lSpGh(4;h<@hU79f^>7%es(<}U>|lZ5YEC(UL$ z`Nff*0e5rLa9)yV8ZC>dhjP^mRko8`5od>JvICyJZe^+xZb#nRLSJ&T(ojo4{Wyw& zhIs}qMgfbVb}rmVkRlK$5G2zoXdYzXzzCQKos1Y2wJQc{b^M(XwfNEBrF|E$34}l( z;;N&6WZy=bH2S*^XO)5kAb~gm5fEsEn=%Rr^$@HgT9UE)Y5OC9Dc495APNX@MwIY) zv^IE7`lY?$=zhc3nK%apWHMI*|Cn>-_yQb*0OV*8maz?qT@oJ_Vmd{8c)ffIDG&lc zS!MEfDit$Q5@|Qs)QvBF?=D<-$$2QuN`=AiLt|YzUVHX2{NR883`=qvOzkajCOVm~ zq#M_L^B#Ql>SgeERN%g!U4_Trj6#0W0Ha9f;^%+32g{~s(d&a7IkGbSG~}(XD#x0? z{RU63uR;cMe>63=9!4aS#fHR$IOP@5)gvqF1PeK)Ano{qKf@Cr;)?&3yoZ6Q2uNY>Ys}HIZP_jg*Oz-uHu4uaVNYRrENVKut^H`(*n+)( zr){Tjn*vrnjBv9w5tCM?(L=>5o^j}Jr_JHp&Dgh^^@QV!B3KdpGA~WXgfo*6mm<-3 zXt&wqLES42D1XUKE|MMl_z<86UEvq9k-I1Xb{b6vxutehyHNRbE$X)nDj*FC_r?|` z|G#`>PN#QDJfmilqwhJ;gZ+P~L02p7Bl#N{;=>^QV)l6k`^>PAI*g>#Ie_-ZxZ;XSaK>+bf^Yoz|B%J-S`GCY2%4hph@w$&TZ;yK4!Ym>MZg*$049|>kUEFSiHLeef}Y$n0YDQ!yPUFm z34q+n&-C^Y_&w+DQWP$ZS5c{@Jwp_OuolK5F+T?He6Nh5{Da8nC?*%8hJbG@WQjt;LVLY;3D@Fmr{URZ@U9O`r-lwep$(}Ffq`lpWx?1DZc)l z@8Gj5XDRTDbErrNs@-G0kmKN*W-(y)cc);^jk(C2?SMUr92=w3_=PLf);Q~EH!Pal zbwRv=4lf!vwxi+wPBikbVIw0`@6zO-&Wq_GGCfvtiJp2F_CH3BX-6LhDNnR!#G+_b zh8mX08OJIHK1~Gtj7w6;sWD*^!NEt6uXv^oWzV(3#l$HFM%~FcouDlN8Ca%%CPRVW zQ12ibUunXg$D7dGOaY|LjO;Vhk)A8HVlZ(fxmyCdudN@|Z12De?eKIl+(m*F6E4b< zN-!))LBX;Fn$eKktaIbQU#d~@b{A721YpgK#iXmURlSrebC5kpfIbMc?x_t-lTZ>G$W^-MYShea>m7n;wd;fv|`10j&#Ae~z zo4=1cAHEn3)-+_dS1^|IQoQiqA8_{kB6!+w!TcZJgm2yZD$C&fhGNC4qd=vap z0B3?Vky|{*9Bi*}!^D6M!j;I@kT0rep}-8}hUjs@EvL81g*U%(=*TvCBq5VqJjxR3 zdV$90>#*xlaY1xr#gip)W-v8pvbM^Ztx`2V@+=%_&cLmz98bwG6XgBywhy7+h^qjrIFYm~~AWEUD2*n`c8aeYN9L z_>&XE@~y3S|CjZup20o^CCi<#X4{y4lc$U06t@g0Xr0P3-W%AlB&wPrZD4D8OIiDOM<~F&N0a{=b`kRtI>Wz&4L5>_^}{G%D~ z?w}7eWqj=fh;Xqnv%S(pv%w+J3oW#&1nBgIgRev5qJ^Fb`HZ6|*3rCY7WzaxiwMr* zu0vq+wujnFv?Df^95{zfG=eRYr;{jaqzpFb@xeoGSBiB`qLOEdoKAu|NHPI)T$Bnp zG2k9zicn1jo}#wRgkrX5V(7J~ie9|+pZnn8mcDJ9_Pdex;+c$EWSsKn_iB_-a#cC0 zmro4^PB{QHP-iqX=rQ$fatM1K!OC+VQRl)h)}`m6RORjf zw!Hru>{HLjX%i^4Uw9F#2mnUzf0)*iU36PgdEAA4JIWLQM#aY?HG2h*y$D-6-`2i| zO&hi$ZP`=?uBpIV>t5$Uy14Zo2mGWGaY11mk?7Dv4RS;kF;SEg;F!mLiUnG?E2Y0)a(qR;nhy`oR!Q(P!^=0m4zkTl3NR@AV}mE zuzL_K?+ZuBB24eGil8MCq4$smR7E#sQ;|dvPO>3=1`(02BfV99U}|SriUmn{fecw0 zW5;6IAB&MTk(?FX;6%eb9%fB-$w^Gx1P7u55MJCe8(FwQY zr?SB>^0en_R1;Al@`%F4lIFy@tFw^IEvUPNA;BmE45f3?G}lBWu`Q3Enu!ZnIpCm{ zwy(`caA&fo(EQ|0=r3-`ndcW{>I^5-5zub4V-PWN4|!gVUcJa?BTBzBRe_qp$G{ex zqMcl1s1^*|`Uh+M$UP?$dDHEj1Ks*W#_AqK6Svs%I5ksrJ19GCy?m-Dz(@C~Rzkme z3edy=SS#AQL?n^eb4Fh`Dl5xz;82AEKdE!>8BQ(@q=qUhRU#Pe)F$u9E00Jq)=(-M$Kd0^}MCcOV(10+J07)J{@YSSX{ zkj+h{fjT_cb8i_M%9wgow%Va;;h#y%rVdoU(u&3{R0>hnXJCxU+*O6hDirV& z&AQgC{`%>mz^TUp2D}JTo&>zbICz@8$z+JuHn0q)YKvwfb=!P={l;^c+rx}qZ{C5` zZP#OZL9V*1u~dw#p$CY82tipt*IFDFFJBJ)?{nG$Rka8PT(pVK7|?VOi8QEIg;Akh zy%pMLrs5QUVBVnNqBykSZy)pn2c`WN9AM#>5D2xs-9bTqhiceb7=`{yHyRIkkVKOY zNt_-t!-Pp^CQ}~C5MPv^RXtIK?SJN$Hz^)x-CK;*0xOc|B!fIE+|+`I0kAw3lpSJd zOH5KKj}q;j++Uk?N1Mc7gyzj}vwl*FqNNU+xln0wF{5}lu^o<8@My4)c9`p$u<@Qo z*l2q=Uk`<&NyT+uGP|C|J5lF0zmaMIVI*QNxFlE6ppn8&7B(hBq!(N*3*e$ z>wD?t;m7#QyV7JU`xoK9OBmd@rj?0I+>KQZLf5VZ+4Ot?hqHKah_4gJjV{#o<8(8(Y-E-eR4aVc1b!)FQXQh zkzfuR=?Ya0@~h5cq~%_8+(q~<0xt{(k-udZ@U6N8C#;0iPf#b&5=c9-JY5O zm1WLC(M0Q88u&@QIHnjS<4%@UXfILYiB!&zM6sea zXHjiyANAKy2L55o0zbL&Jc1u94EnI| zy%%xr(uK78<5y-d`{Ui;!mZ!>F1~v6O?d2;9nuUE)3R{;moHN3FXg+5(Ty|mXW`Z# z+=Cr|{Vx+o^jggi#GF8ER|kMQ2ym=9+fJ0l#pM?) z!iDpx{ad^W?{;@EM=(7Bm^@v|?)A^$_QxmV(C>@X_lBB7_}YKnr#{O|rEwxwt(e1v z=V@4c#zh#E{S`}G&TQQO)Z4I9NTqh4Jht_vzvJec@0R^A`rLjf_t*>1!Qw^pm^P9) zl|KzDE;tWA{p&Ww$H$_rM>F404W7V@a5$pW5gC@^c4)vXp|6_$-h}2e5|KTX3wmZU zE_l{~AWuZo{mV!o>fX@_;ce6` zOkjx00>|P+q?Otf0L2!@BWH<|GPDkuspzf$Q!9#2Pel4eD;(@|#d8iannu;9$QZl# z^`iV44Lqve>P8a%rLE~UO#A*!Os0|{np$HK6LjyPOm@A{whQ%}`rtU9ne!$%u<*}w ziSY(RJ6Vsw+(zSWg}rN<(RxlY^5)u+I4c?FKf@d|B(ls^>?NCD7uy@4>JQB*Sm2~R zAngp#$iT%jQmEmLf`xyBU0yW2)CB+L09tlrAa@SUZHk>({MWfEz-x588D<)TyUOWa z_aNbvG!F+#P>t&^|H2d)!MjtC1LVT>_QB;42;7gAm*0e^Uf&9rcK~*#q>N`$Bd@Cq z8(w@27o7D)Ec*HtaEL%}un%QB-%>Yq@{~yse&LPH8?mdbnV*8l&dVToh=Yw`v@v#}gqK zR6UOWWr$i<`5W}`J;aFx>4_nsT;BP4Ichfb!bhz`6cemY)X86{sax4sfm( za=%dw7@@pJo~*^z$GTyl<{X1=ynjFaoA-GXCn!KFw^}@44nACovh}i24&c2XA42tp z9(t0nPbQYJ5+DUgJGXaY$36QYQdJ|FcHI}4g!q&dSy>-CC&(v7GrKbdZbl%MvTVhb zC@tcaZ>SGdWn1y$8{5_K!pYN+mO`IWe?RKByobs`a#qwZ(xQbi>&z&bG!;3S4(7k5 z{hZH&G-oX3gxpF>l5~d5+PdL=EqRb56Nv+iGD9Gc63v{)KDQh8v^luu^7-hjEyI&* z-{69_(HQxI%K$C;X2j5Eb%=}AQ^D=5x0pMHMr2eQc=++jPi z9aR3Yp~y4|3+crnnVd*FZ;K19J2cKufP;D|1w10^vlPdWV-&w$${8Db(Y!HKkKaX0 z%s_@}4skPMkwhP0$!FJF-NQKuSPA#b7lK_-LV>X)EuyJR1`WfRrLJ>d7w5p^A{L+) zS3-wrk#h`4UFJkwGPBQ7`O~(shwgQ}m>eD>hEY}<>T@=?!fBc)z}M+T^Cs;+olt}v zH7fn(RHMLHIYDF|0)WArZ@xKLP*5PhlpvGcsCW5%^8Ts)YB0u;6iiEuIbxj7l(b-? z!#3);DabAD@G;7#hCh!zPg^i2H#^8(%wZ;n$D)Ziq1i z8J_C!I=n|*z>+q2_&CE#4S$a8pJAbb1i!=15$ulr-Nrtxhu4ud4eXQPH*zhF_!xt5 z~eJ()wq*a+l@Ul*#!APth2YWRAB;9=jx^Nk#fv}Iz# z!tlA_cj+Vc$T1I}5A~^kKML(mG1?FS)%|Buq~K+jU8X);t=1r)^`~l)IWQa@Q&9S- zw1{^&nG{H-BRMe!;O=ar$SXhvff;sN3`IQj7Vt25fyQX4YX`^;TABYhS|#=ACv(E> zQ8W=jYnpXvNX>}L^;9noA5vFpFFv=IT13j0>{i+e4xqPJ(=bL{c%)oU z1v8CkL4tfr?s4Jrlzfoqgi})-U&H_cO%&=CIpGAhI0=CK=gmWdsDV*G4^~8vp#}Au>%vJ0lBgQ7z zsksUlM~+p_NmQ8d)?MqALlF*@{TaoNH(ZbM$H?HS(w09w2jMWK$Q-1-4=%0H+R6V-EsD*K#JSV;mFiuH8|e(q@IBOSnY(5%R}IJa~*G= z;WqX6PXz_S&%;l}Wc5kv6woQ4Qy`K8r!)s>pf9kM+FDH{6q*(dyCeZ}IFYwjN5V^u zT_o^;Bp339QaH*ru{41((>N_aR?16dhmR&CA9s;$s0zu%j%0f_dJB9){mbrGwzlDI zp>Ss8f{szKvLv2Mdf5yHNYZC=ZBfx7ZgJWwkEZ{tj|<K#xZb80pvS%%Nh6;j+4RYVAqJyGSL+@VNC4It5OU0wDk# z^@~5jM*i8=6OxkA)zOY?Zu>p{^ZK*s2{FKR$yLbWr~6wEJwo!WuPLaXGUP0W02l7Avm*cVOma`1@Voz`|*hkmR7PpQi`4mHYAd?|+WF zA9;mY=u(-8sdcy&tKFeIPy7R3bTV>62vdj8AMb<4ApsK@62E}1V-nsgV*how3il-`Z=tUY`)2pQD zrhFz(lCb_X`Xc~(o4qR9iv%)=N~3LK3yqp*Ix+jRw5crQgNxoNVl3@uQlx4oJF0ly z8XF*I}*WRj>qbjY|NZed<5`~z9_mmi-#;&zxwxBQj)4pi#bhfY$lRYGcjdS3G9}u zaQh!OA}b{p4Q(!(&{$RGxMm4JC&kYFp4+8;9>=TX>Xj^Mc{dbd`qk-(rctq<9w1`a zW}O&~_#8%ZCR4lh|JoUJfOU@*sf5>)xdiVNA58R`A;)=SS|Yef%|(lW60jO8duPr#Ckug8ub{s6zY zuN8@AdK`ELaN31eVPQ!I`a9~e=IJNU;N_xX;LxovK8asG_KF66j5xFP_2=;CCtpIz zl1p*zW#=HlnS<+Y{t@o`Ht!PKM+YV>W#9vHp#9C{ z=AL65KqsSCGn<@^0Tl{X<`Mu8VA|)%`Q&rlg?w>?8(6jX~i>83e#eWhbbfY!Qsf#^$6@UA|HH-~N7q4_TF8lgdhA(+w*0~A*hupnb z{pD}s$>B3Au;mxC)VJ0H8*$?~S3r68-v39WzI6~+EiFcV$s}BRWi;;j2lEU^F|TaS zg?Qk%zrvEzOboiNL_wSvH{SUKvKVrtp*6%64!3{!2hpsGa>2HkarGFuK&*v3wzp#E zU%2IEv1V{vdQlP+3NhH{;%M}|!HCsj>`RU5(TYTbk%vKYu8qdo1VhHDw*e_k5h*}7%qoWvFq)yN%nWnI{V$r=9>m^P z)#Zo1B!7l3chVl^bRF+EW5>hdp4g^h?G-IyIDUd#2DjJZs%DO13eQ?M-u!-*YNKY8 z7w7!06iE!CY9&}oN#Y!=Om-C<7(^W-HkZFh|Kt~Y;Fw@X-t1V!5XjS5uZ7qvzQ2rK zrWc(8ABX~{GysOV6wzuhXWB3U&YM-BBD4r1bhV3fKQn;MoP`c|KIW`$ZB_-;!RkSL{D7%egL_*KHb576OXO8yt~7$}1IL#U20d_0G%|TpBiv;%jKIPu4~&dp;`~g7Hgc4#&psrnxfBU|ull6&W{~0k zrKDe)2?w{^%D9`T7fopc)3pr8Gm<)b(J64E6gZ^;P_0;*F*OMneDOidxR}wA8QX8- z#3E%@v6sn@ety@pfHM_MO-+h6k{d%SbaN96nx-Dq@ol<29r4_j5{b|&8If3eI$99V z3~#IdbQk~BA@yRXtj{Q0(HGX>RWEu3DF#Yxt6raVg@(k>t!pw&* z8`#WHR-3giP6iMiUBY=*Vg;auE|lq|ot~m;&^fHMc?n1%NUyuC3LbGsqk_a}Wy;bC z3`OSF!q`|G1V%Qj=4lF`{wZqMc{`+7$ifX!p+5V{48$>EQ$V7#9MG;4@RK6b7^El2 zgj*(H+GVN3$&TdsSfT*!O8r%*!1yR|Y6Bpbms((q-(E6(9yIhqt`8=$Fkqe;wfNdK z=i<@R&qCY!b*SJq@$?Jsbe({MX=otAoh8i5#L`vVGR81^OSK0v=?rzxF@^9h>l6PauEmM#*h0$#o8?VP>fFm=4Go=YiG)-)L^^A;7g+#c7NI*qL=on>*1B`!Y zCV+PAV@N5Qus9i9G=|`oJTHZE#8&KJ?%{ze2vD&mB+X63?5`2rDAde9Gl2nh*bXNk zoTrrNT!Jl+`RW6h^z9Pl%;Cd?Tkq~2UD)vu1)VHmqiBg9lXqze5+=vNKs%-G1}3S` z)V9g$#;e-;i%x+LPJvS#0EM^U`ttYTjptV5y|Qj5)K0+i3s!P>nuZnEd;Mwkqm0Py{0XGJztVm0a#YTc( zG(&Tx1YIf+s({D{q=c_J`nza+CCagil020GM=852|7#U0+if`gt2ruSZ5R-STOfv* z2w*Z`34Cx^Upy?SBaQLVNJ%v^r$#S!{c0cLFPThxI)X>IGCA0xPpZGZb``2MfT)i?|neh0OG z{V}o~4oqKqA&;$wFItNd9Ukb&jJ0iMM|U0ixKJIm1+j^79*d0uR%@%9u=46#arue` zG)!*5qYwWSZ*S{`jWVx62EA)(5rID!HRBTc6D3C)lQyX%<9ksXVO}7@d{1>R4*i`8 zfS&6^_E*UD@R$HbcuS}n=D;O@lfP3Nx5Umfh<#qTQ+by<1aFD3y#0=HbZ}=m?>a$7 zZA{Xvd=7J#8Xv7L(<+2sr5}OUrk5%2WHIGO!Bjnj`Yr94bV({=DBFu>kW^`}?5>04 z(h870oi2n7rrO`u4nLBrf{5DU&ur0MdTPME9|dxW6!VmqlsO_ zkUR7;edX{tIe_k+?bvgF1?qPUVcH@hf9S@EMx3P9i%x+LK!K6fe~NQ}BXhS{v-w2> zz+hV&h4Z1+t{hnfM@A+sSB-ExL1ggzd-d(;>h4E&40B$TPG{ycF6v$Tq$*Z@;Vby! zc~d2PGWNZDj{?A?)HKx9H^an)O5eTWY;=`x#QlGLksMmH0Ur zN%Gyjy-k6i^ck1HghE{85{}BRv8I9_3LJurVwV5eB$&L^^gi3II3}^%lam9z45CWJ zG|;cP;z14k2wn8LU`}IJ5nZto1~BAfIK`**r%D8glucpKg2nevL@Kq%y?ffR?mJZ) zm&QPf5{+6YJR~`X`EDW+_uo^&7~NVi(ro4I|ISmKpo```^?T)b0Eri8QSO%x8(s7I z8{F7+&u&z0(ZF1RA8SccB#E6GMb@|B`5Fa&a<$z_045Cv#lBGoKOu=;J`e>$*uZN; z0622s1GV=FUL+$o&@U^e=qz0Kg^4JdI2kLixDtg9k#`NDrFxGVon3sgSi)Rm_?^~w zO#G98ruQDh`&<4E(=M8atm%vK{1Xr0+uyneE57vuTzHx$U2LeW#@nmu1(H;VKz$`! zTY_gE{6DN*R19xN4N8)~jBow=Rb(W^lA}2`2#N`e;7#97MlbHkge@)#iStr1c|{*u z4DrliL9-NA=qbs7DVf3X0dILyU=v3Y$jtQ|ynI4bW6bti?^rPXG2305Vf($IY zK8u_+y+R}m{#&hZSsW-_MGdtIXB9y0+D_gx7d>#2X;aDjdPzRD$%kNGl8e+rZh!eO z@DWfO*&@kAk%4Mjf6*!MfhcfFa)3&6%IQXN3o6SVQBGX)r62I`a2nL@dk4S1;iptN zCc)jS0aBD%Qv^ga>9)4Dq}JDMRY}vo{EG*$a7Hnv<~p&Axklb!bpsV58i@j~X8hxk zUt%k}$m7DRkzL`+S>zUrRi`mYd6>6gEp`On7c&+DRh@THUC5QlNuCCz#4%szSEP$nye<;^`qJAQ42#vF%^m zMkTrhc5e-3Z8f%V;LzHLMJX?>w zYc+PQWMwK9F*Jmxr-+dNoqK5>@~J9;yrV7o7qj3Y?MvI3&3cS-M)9(9+sLnV7Is-1hM= zNH)gP+ksu1*W(voyBY7WUP25bMEiu_qIqs(Bf9%i&{5xnE=_!g{;nq2QZmr9{{L{n zEk->2U*EutqAW(3=E9~zq_epSf4%>wxc%2_=u(!9+PYSdxk207cd&We4kXPd2iRVN zb+5ju`snLDGD3|yG3rI!;216*6~8N|G9ZXTa&=~civ$Ajbq%5QomRa6TLKJoUj!-h z3s7sz4Ir9#_Q6j1nRt7&FtLwtZANlqLql@jk9U812n)ZNkCY-wm`-v!8jWJElkprOo!%qgHh#KkK79OS z-oD!Kb=_Xim*a&z-^k|HmU)=HORF`WC#3Wp!LhKqGQBm^dA(}Z-{iU@t^j;+w@*G^Sa=j%5>@e`3{6CPgZ79f1T^5z6ZCANcEHkqE3oOXC6?19iB^EpTxSmR%ob%fd+N zN56j|+uC}x3`^+8{%-VnKh@Xn!un|-zwFOL_Xr%sJ%evwvgGpihTnlJH;F~O!Qt+8ychz6uThsSn24#Vg%H2^jI-j9%5-U{p3 zHqFY0DyuftP0O+dT+kx7(r8$66PHu$!YiQ03ypaONTm)WfI|OabcjRSR^a0I0G78x zVR^VzxFZ5HIR$oOHVDUb!FY5<0kNGXNBRF*z#x|(&H)(*>uGLtHSB(jWJ(E`qPf%p zxxyO*$&SvB52FOrz@m%>{pbX#H5omcggiC*IfYPdr*k9-COkqtgNic5)O7;aXX|=K zHVnznwIvB6LYQ4Qv&oLIP{!OEH?Eg~keDXZ$~EL<6A=M2J7vbFJ%7j;g~hfcQjCE+ z+=iT0ypM4Pzl!vE#h+OpH+~W`*ZzEI^Wcf z2cY}sNR~9gQHv2G$DCw7yf^8axSrM*$)l`8Mh3SwV;fj)w5TSMG8jo-*L`Dz%I!15 zib9zK<28j?i!e0Pr|7GuLZA!*exFN(fDjM@bBRDkfSh#kk_Z7IAOxz8K+bi61vus0 zr0N)Hd_q77R1|@n>oNk&D=Io-4NC|J0U>Y&fxrU1a!(aPKnMtdN+Tcwtn{x}gA)Qm z;5GzAfVZKedqO}6R2qS?bAT~j1t1N?#B=3Jk6wcl0zzOe5Fn=w2B}w6IABkJjL30- zIC_-x^9fD>hgwt?0zyCt++zeB`CTG_NGO&78AS!o!qN8jHax@-I+Pywr9Mlc8kL2B z5D)_Q7Xfk_$*@_x4)dYxmyu zR6SLDcdxFl9ib>M0S|)>0{{Tvr6fg_0RRxezwI$7h`(2YpVHs}0352Nh=`(;hzOyg zlf9XxjVS;i8Ii0Gsi888o~^A6MVbTvDht~Op`HK(6^o=HafqP5N%w^08cCp|>9mI% zh^dRA>cSEl^;gltJiZEw3Ta}%vMX*D22@r1UioaTzc?RevV3v5Uz$JwOnKbw?9j`A zf=z@9m}tjil9IAUKeK^gB|y_{DA^TUr78sz6UqSQ*)LuG^}t0%yH!b}kF#fgwD0r^ z10aBi5YAAVT@w)>RDe!YBF#8xz%=k-sQ%W8tcAeHm53AyfRwt;inW-qjf#a&(HIe7 zBs2~dP%&TzI|s;>@?g2;vSdV%>zk49Ie;bHgsa7%$eIX!MjF_wt9K?;BNwrWzZJ=B z=pK~CiWxO4jxo}tS0;M95o^^v=lU||`fN5akB~TI43eYL#Y80=#agtrH(k!_?93QgYhbU9XUA#@HmzY6X)Apr@14RRKAZF% z2DIN*8_0)fMzKSTIlAM`+vhBdvqQDR zo)_#uFc4@yOX*aO^)9@lFpfnC=h9;Va(k}qH;%v&T#@CVzm9Snw(cmW1G&77VnEK{ z!ZAJpZRKx5iGT3enIbSnVfbOp@5DC|c}Qv=&-`kpQJ^LuVfdj)LVqse*EEn~C{ZJ` zta%Qz7_tBg;f8J9qg9iL%-e>XEv4Q!Vxy#Nm(GabKQL4^RJCMxT->^H`$G1Bd~joS zB*hP*CVz=bBtXX(w*%^Kj8CG`Q;Rq3P*d*?E?Cz*))f1BHp_=IqxMmyEemE~ba;Jz zeRI`TGX}ur0|6Xdx@Uo}<5)g{v~+}$pdXI8BwS#A1Au>;mw?*lB1Q*-j}L=zf+F^S zeHtK#1DFVrWW&%DAXk3g(J~^^LJa1jRzTngf-gh31$Ax%IN?r(P&i@fgRHk9THx{f zTxa0*0{yN*;E17wg-f9DX2jvXsSIE{3hE#+3=lwz<^L2V#gY;M3&%_kqZN{lZ{KDKQD^$kTZ0H_SGGKq{sI1g%QfTe^K8425fs0Ae(e%GK|gxb23s{lRg z=id{}jAe1aX<-k(*2oN=8o=15xrXs!&uc2PH+8$}o|;B^CR* zT*#};WQk%aaKc)eH81xnsz!?Q6K@1$pR_JON0Of8iX?})IZ^*7B$_I!EZRC6F=`8p zGpZWZxw3_7OVxBGqoh(%nhGx!Qxe=CBWbRp6sN%3@LPE$r5VW?ImbF;eaCpC)?K2( zvB<2*oaFhWiX;tbmE-|wn&d~yETy*U`&j9sUrOooq*nN@WR1VPVqZgEBgBhWW`its zR)w|5Dq|Pry(=qnZOYCIcy(I^TV-FuZ(R@g(ZJDI&{ANuO#`Ki{x~MLQ-hYdeD_{} zTCiC_D|=I|E_p18pC6xpUudxsv*KBpEOnh>YGcY0JDN_NcAsIGZeNHvJv{9_#X2oI zg`C%3cw?JqCAS!`9A7M%=PaGci?IA<31Mw!SvAXB;VE%9hS|x)Z|q^55?6{h$A4I` zs6qD|U7=j`EO*hil3^9j*8f8Gf^GF-HO|!mk0xuByWXYgRA>4Gr<{M$nAY58bh+P{ z;5ffctxc)T+135D=@{YoqeH{wTfc{X&#BF^&o@ms zZ9YDDB;H8vEk$>;er9AP>ZWYaw}(AiJtm&RUf^78acgin;8Nq+aVg`0;$m>Kb9SX0 z@C9-ho`rbJyA(4P7s*e^>u2d^hE6t4cG8p6kJ4x8UbdCBi?>xdbe@Yl+_`EWFYZ6C zY^?B2ebl_^z{~}R7opx8dULxw-hR)hBiG5N^loF2Izm&SJK?=hG1zttaQfBu zv^q}b8-h@`P;1yNh6w#xjY9Q?l9IF39(}7w%fY_gb{W1DJMA9~dkogPmn}YXxAtV~ z3FSp@MW#g}G@LY5pH^SiFV+1tD(X#DPI`^5Y>tfv4_R!R){j-+b+v1ntaX>$+8&}G z$j-Lx(`t95S3>G+aj0+xad`fSjN!1S+h}!KmJoODx)s?U^iH&8q}qSBgtiy?(l}dR zuy@)Pt##QP*>^XSI7sLwYkpsm-<^EVnsOh!XuHoivtMX;bxXbcY?G)dHnyMNyj!4O zSa@@Jsw@+-9$@QyE57V@?70#Ysg%2j4gLiwgBU2XE5hKf@cA*h^Rs_KLMLt>pN+5W z1@l8g3Qw7%xT>4Kv#WrpHt*uOaBm_8KW12dIeU4|WLecyd2hc=B}qlB_=f^UCO&7P z_wOs4)s?D4tO>*^vdnf@zuT8ZSRxF1eYh5n%Y><-xl}#|4qeA?r}wh6g;(pzrBkg; zt=Ny9`{7!(qs6u}`XwB@mJJJ=jAgg7jrNaox$X=Md+@C`H=cL5wX9{Hr%ULb6!4-Ujz0yuu1`|#_M{n|f!brfw1WuJyGalv?#coaMz+}hdV0=~43E)={4+Worj$v(%TdNoA~^KPqC^l`dFeY{yS`FJzO z(CdmMK;YO}+0X)-y#cx8K*4U1DMZ$l4H@e2^DauUZ2`lT4_WF-zjpr0DSoeFf0s`BrL4EubsdRHb8~1 zjweSn{Mx5`Lq2E~J~kldAP2tFmipFmmg;Ys0PP^D=?nm%ll?nEq?Ado0RSMFrK*OD zhMX+7vAr$5p^3ebDZPiS!(V9tfY*cjZ`0P)#gNd$*2d16+k=nzKN8%3+yA;5hzb8A z;$qE5tRbgJC}QtqO2|gfO3z5l4?{>u$m?Wc#;q(W{@?JwcYMSaE-nt-3=Hn>?)2^~ z^!85X3`|^HTnvoN49v`Qe!Uuyg;?5w>1G4p?o{14Iph1B>TBpVy^|3?0=k^hDK$AnwK z$#p)Pw(GZ;fLX6_&+nu5A!&2Vg&#Q0;EKR zR6Rh>eIYY(O+P;CeV^>E?5dxB$y`C71d@g*f)|Ao6Xp_MqtF->(1@X;en~S>ODlmv z1Bt+(h|p%erye%XE^RZu?tIOkE|HZHgn2Tb_<4AE?k0Jz-m<)NULKdg1owt1b4Xy) zWCI3me)QV~rf>QA1K7*4E?YE0f`we%UZzo|zb*DnM;AYFc{z!zL*RgOF2DiadHGmT zW)$AOm5>{}5S967|FF6r%Ph3E2$|5<-faR z`d*$uy|i8b8I!3w?u2QnQJ*i#pW`QK~hhm{H%`N>6(wjJB{Ab_s`3{AlG**+&3@m6TZe1#B0j7SJ zw;u{zM4vZ4z&PXnb67SQ2;FC+ziEwbI;H5hEoWd`0@G6&ut8>{ISF!2Wt|qSjPQ(Rm4+ltvH8A6nA5e0Iab^^}L1(@XblWzE4K0F)gLhsW!X?-YKbfq!nZdVVDk>cNoX1 z0tMrZLp(}4s=-NHoSWJDxZMgQ#qHE=WPh-HmBK<-Eex7CMN>f7;5Ny{$dgd0sKX#d zZgD;QK@k}xUA6M|QEV-qYUNiPVw0(`kyahB+xqGqG^Nr9G3xV<^S4>hwmGpmUEdVZ zpoy54cr>v4?emlR*D6nq=Zim6#KJo}qLD?!SIHpheL}6@JVf*vKN1WkcaK6y1wp5h zFY(xeVa4h~h#?j}s!14>n-EZlMcRt{`tuU~0|E@8^vkefs74tVjx8U-_~zD|Vf(yP zM2u@5GrvH=SJcakxf)UVZ&tWs z^qpShVnQz5aX7cA3))yAEjH0iUaW=$3DMg_Q!b5O9H9&W;gIs8mP%3%*^WhfhLCD9 zrcjE7kq&-Y@hU6|x0!4)n6nuc`#VHs%&W$CiE)I&1ntH(+3Q4k_!#ad+|;z75KKtj z^mi*8w^`!xyT+J!^AdV?_8c_uzfXMyrGMHR^>x9IvU-XBq#5uu4kE0TQT9U8_7P|{ zBKqE#4kGC5!XYCSO+?p#H#7+*hi?sp6l-$yb$IUY4|Di&91!3_R@hJlvHLCb^J?m)#*p^AKgCIY zpyo_fcYW~j5t3B?$)o0L?+5ocr)#>Jp8EQD!7$|Z#m0WD80bFp95)kRE~UD@u$Vg= zNeM%OTKk#%kejD>Re;N}Vk=2nys@qr9Qz6OGm-Wr-LjUt zNS5J)f`V4;xb;t&3fe0{Wo!z6Uy`b}2l;UV4w#)PZdz|+@F7}G6e=|Vx67)5PyMZAtrB+ueKc_bl zNf(IeWjLRwBlqo!R+f0V_|EovqzrYse)#SVoVPO6r8ZjDunUQ zeTwJBbc!Bigu55dTH85sm&S%5WtLyNK^B$>J7EIdDD}lLA*sf`w<$Q+^2r#bHz2GH z3Vj<-`Z4h@QYFjX_*>ndcHn+eiBm(iOFr;>;%Fp`6?wNk^c}ZT6xRcNXp+A{%1Wz< zR%1x~V3)N=Y;g|u@&teOg54^GdO>?)Vdp3WKx8_A{ZltUBQMcZ7O;qc;lvv#jlVAA!EN@)}r$FR7#?PdL{J8wG z;j_d#T|c+q%>DihHAibN;GDzF?s!W2@bRI~pIf=rpsC%sufNJMIifb4?dRHAhI4E& zZH2Qo@8?p#+bYp8tfz(dvQqGI$Dv+gEq*leH9xvKR7dVwRqWaA_J(-5s0BJhgZPQ? zcG@8Dac<;#A+YrQfoIes)vw#6+3#$uEIayQCsoaYFDx@PhewTW-mLKCYsvrh%ISMS zxn+jiA=C$EWk;v2iOE69#~FcM+3Ca9^O|*I`JIQHcvsoon)z02=H*Ow*9Xq22JRcv zb)@E(Y|g)( zt{I737Zwte@PN9~5ml_~M103tWAfDj0#W;cLXgS4BP zO;mP7qIe5=gUB;I#e+pe@;9IJ?yf&WjV$w@(T`kq6x@B|2tNMIyXc-=6;#Pb4rT?p za7=6H{&;-^%sv|{oQUhZyyIv3{y{AqUUlp%#Q+L?!8WM_F}9w+qneVHT61*2!PxnB zA}xKUeB@i49{DbHc4HeV5Xq-WhS^JCcin7QU$1#*4{29_K-Mn2NRIsJcX{Q}>etn% z_dzSmXfL&P$+Nk0S~zU>dmyEMxuu2a+cznHG<MtBDeGpm-r*de zog)OP;D0wjCF$xkycMo)Aqo7k-OQmIrqmiS?ZsW=I>$Z#vd(FE>p|+}YR>3cExxjCQe?Xs57$-HOyk$>8vZdhv0C(%!5nqevqxZSL;cl=^qx8k-Z*fIC*jun!fQT)(y z`mCr7yH<1{5yr=>kgPIbIoALEgqinRI43p+TX?~b_UuLbkHgl~;a*ko*o!s)V(JHM z;%x$>->GHVkF%Yau8Bycove?196+7^tSf zfq~q*I^_uzB|1t#63S-)K@4 zYxcSFDb9)9$YRviw(LOS%FzsAg)ik;W@f1drCBd8SYJt=d9lhPl~WXjYK-MeGYDKI zY%Y)!lwzto0Kl2#)hq03_qF)sIDFSLU(MwyAhe0k%9e7&6P%;f(d33APXQRx(8bhB zDzA!{!>+6;OQV$>{q<)f6qC&hjQioGDKe^)(K=DfeTAFRXoccPfAr z-mV!ZF${^2M2Q*Op3YrB=f>52`ic>JP|R|<%M_As2`LpvNX}IWQ>b1>_jNU)$OoYS zDMu;9@~$f|OfjT3R5*-~z0y(G2&^CviK0k?=jlH~{K@5GLX&F(FTwcSMM2^^`DtvoViJ^1GN$zOulz>_il$phOu$)HN8&(*& zy+SmAOG4!xv&?wB^t^3NQ75);lBhA3y-l#)dmVQsE7-lk6f6K zDS-u8hc4q$?Zc}}gR5I_;;|AEDb;(k=glVMb@13!KQ6ZQk1Pk|OJ6HgW1{Z!FcTq;WSC%Y%yBqU=i4t4E7@+(f2w&+zU;uUG$nc zp}Y&ir>{5?M?6XFKl^%F^WSNsVHil-WtGk3hULIOCytPN!A9I3guGHp9Uc-LHWYK4 zao88tLIZ}^O0$4(OQRvg%MlFrAo;%B>)DorFpRjne35KS zw3MV;V?$BpTV-iz`Glg>&q{GfI$xjMMbL_-;u!9h2|`^DO^1w*rTcOOUod~xrd!^5bXvQj%0sS+d3Y@og$=w$bYHn)@j@>Miz8aF%A8^Qpg?u~)U`Cb% zu?AJ!=crl(`fK9jB}D1;W7XB{$N-ZPpGnRRj#2Wty4IkCKX_q)emc_BC@`2@#b zP4T{acQcmX$Q}f{3gSdK(FFQCO=d@r1U+fc4iS7V#zdIvIMF#iJXo{6Jy1U%*FhQ@ z-;Ucz1+jz?xnQV1a<+CZ*Tgt}@iOBbFbG8Hw*OI0&YL^jv3LIh9Pm7CzY}~w6i*;i z=9%kT(;&PzD_uyeEqoE|D}o^{Xy#VdLeHn{#N%Z5EJm`Yy)?!AUAqJ{sU6Xk@m?@e zT=ciuX^eZqAIB9}yR&n@X=>m+GHMO?wD6a>3N}Yr>LKr@IAs>xQ#hU5w^o$%$kUQEWbcrfmc zriKe^UFPy&C@q&UeO`i`M=Ie1*Q)Ly%(^gdr!r!(%zdF*is4LY-IA@|db=4!EwusA zR9u*9nR1WyXk(k7)!Y;rPfK=UVasgewew=x2v1!S4o@3T+fy0A&$pplxkRSiWlP@y z^L$z^O)XEWBJROUL%M<7rH*3+nonXz1vFbmmJ$)wk;GefT}GTh7~H z$4lp68vNH?e>M5eplOZ8;xuk;_yn@o8PqjBT__+8$X<(bCh&EM$2e;Ay#LTqYtvx?4B0HEKZ~n12UWt|q$c z%)Fg{wK>FauYbSEek_s_j?jy>6`M`KUIFocZo$~pvUZJV{B<@!Qy z+m`uttI+TfgXE8&U0q&!f+M1k@i<`Hmhq=QO0AT=!9noM!g@h#ZMA{jPfJ_7LB3jH zt^1X&GVQ|mtocjnVvI|lutdM#*4(>X97$9AX|})2KUBn}IsGW*^1M=|*}Rcm=`~3& z7mfTbSfp^}hv^a-_qHctneHl+g6J@0<22URF45g|Mq$R+MRV8W7cW zn{jED7I(wcWAZ5?a^fLvEzY0_DP*1*W?WCme-y+N7j*qXKZL9BIwyZWUV1Wi_XO=j z*UDm<{q7XH_{#kL@VRzVneiEvM2PXv)F;GyUUN11jC@WD`9Jkr<2V}N-@9)j)7OO;@#>Uqj9qpJDmnUl z@ZrGwW@IZzLc|==)r`GxR+}jMRVg3EBZWPFYj3#u6FuWeokY;qNJ|_dt8c=hl&*iT zyB%w*>jJBE5RQ@W+7ZyF+fHdW+-jU0IDmKd8-E4_W5Yj0vtHYFzPD}OlLeA;h?Gf` zQ>PX#xB$~`;XAypTGr;5*O~3SyUM}0d&7;{(B%>KTUuSp3+dbxq?Y&b`kUiBnPbw8 zqPjnY=F=aPLqTPr+Sh9t{^9zaBbl+#5f(Oa;bR>`lsWX^CYR8V;Vbp#G&BxUQV~uC z;nZ0I8<+3)n-k>X--4F*^Q1Vf-H62D6^f$7ko${}4Qq#UOX)%eWoQ^}l_4TwaHoNK zs<rVlh4 zU8NvyL5Z#P`258E;Zk!?U`?{fh9No~3VD#1|cJo-kGrogX5;UqgFcn8oY%T75-i@MOsi``C z4zaUhiKySYJ&`9{fFFj(J+E8)J&M_9+(z zYaar~+S-6zz1e&Y+Yf>JqnCgk!|KUaDF-q8oX4nX*#dxkUC_8GEAyfqb)UFzLsuv> z?}1GC9GZ2*sr9r#SSSpRLco^j93-M(!`-m#Fw-?@V2p|$U{_fVAt9EJ#ZHN9`;9<$%h41;NWER$ z)dHQLmzU)iA5k+$*^5t|iY|cH#M2fclLVEb#c8xI>A*EFto(}EQ9=?>Zk850gnr`R z{bQlgN~AB8^YF3CPQyl?o9xW^xcu9SaVLOf%S9ZSCcLpTLlFJSF_EPRDH99%wPO91 zjYyxT>`XEk3^8lzp_KgNERRQttyh7eGdSj*y^CKC1{3gXsr-idg#4{RCAO$RY=$NL z>G4=?xj@&<*jMTj%djF=?Sb)#H8L9S)HyA&Gwi*~j`i-Y*GRY-#$con%@b!GPs*ZV zIY#2D9Ymor*JYxDZ2{gEj1sQ`yUfk_WNj?o?#Xa(5wxsT{0A9ZBW~5j$i^|x@}`>$ zM?5|-(I-|Fc+@Cd__-^Ho#1 z2hcN>@EX?Ie7jJfr|WbGJxBN|1R}a~oiFwt9DIM02sXMa_@SBX@Dmp)2AzIwjnjK_ zKDaIZ7iMvf0>Ug1CTbzDlP0@QUEZ^-Sub-e^0gpP-(JpmIJbvFBoGSln4z09?i;Np zKnfmGj*^Qr0)tLacM{jiJvR(FE?G1wS4V4oZ+h?6n3pFO_a}Ul7WF(2L_ zvk2s3L$>S>Ob%X%gtxiRSG97_HsDJ==Y5#_k`eoiI0B}mhX*;=lIRqp+%;J4{!yX~ zhtJ*z2lbhh>KlmQ-qv*@>Ft;B+Wo_aKIU(xAqGrvIEiD1Wl**s#)>_;Jv~$gfbAYj z(|J}(1I2Av@xN82ZUe-5%vd3iU?6C507w96akA1}Zh%nWKPccmh)>a&69OC#1}+l_ z0YJ!96PNo}PU3kmro+LoI7g#@{YTmk=6)xu7X;yw!t#Fe zpE^XjK>p&7zv01qp0>rp_=hr3H2C??Kgg3{mNwge^lnuC&dy$O-b~OxKEX-#D@TZD^ym{vVBH9+T3T9M^B01$6~D>#k}PnqC+EB~)kna7jA%9J z3^(=?>{Hj|DDU{THhlvI2DIf>Ea9ZEF-U3G(;~V{o_b1&ZDqvjonF5d(6N{#n3GPC zt|ItrKjYr}L(^A}CZ~B#Ng*z0qazUYAYx30hRO)}{eYdJ`h|(}*F}jy{-jq8bg|vp zhHFPhX@XM zh9G^6OEY*DOxhJXW_%%p)faTY9yOLVV;qrov18s z5KQ2)H~{c>6XtzVQo?>yiE!MI_a?{7`9{{fx?+iViu9;;_R(>(S|=lL&b%lVCr33q z=B2pGzPloL2V@T)rAg6+{a!a;Yqgt!J7Hr9BWJH`I9o%$3!~1?+cXjp z@jntmF#citqh%{B4NH)wfG&avl?#E!SAQ4v&AM4IrD|PYxeBn{cVudmA=FJk@&kT& zzE(u>XLg7>dMBvBn-TlXs=`_5{SCiS0b4Mz6P1%5z^cNLBsx<9veNQY!IhS|9}<_D z4MdXXBp7U2yp->#H6^)RQH#ZtFT>BCstJRRW?yeKK$xVGl(3WoFT?-BP)nzEAPJYB z01F%Ubi%Quhcx0^()QuAAZ=;myb)`7BmgG$DZyY+F}DO9<_Tis)kZzwR#2=fW1QiQ zfB*IKq9JegY#5$ma%k#zY(Q%kdOV;&yG3+cjThxm3et^8_rRu6XTt_V zJ~42=^RiDYBK)Ht9m!pr`f2;1S&f9tpVcgz5qlKc(cyX}B*;(p!eaOn59fwoXzS9Y zjQ!Us_B2}qfNQY8;T1@rr&kB@YXbqL_eS!G>wF?67y_K%{9pV?s|yEI6vroG;v|HE zR6qg@QXLT4!C5UaGg5-UhBKZIUYQHmY^A42apgMt5!wf%IrXlP`W)CJTF!P%Y{)!f zsW5*GPjVymXJUVLe)8!&Ornz}s92stCx8-x7MkTiVg~u0D+n<^ynZ83<3y|IaKEk zwjuS&o95SDzTMv+jO|3D(XLsF;(C`2!D}*r%iZ2ADP7Gd2&u4qdJINJMo0u0)uMM6 z!DcfXwFH)ySmDlEHPv&m9{i9|v6hVGti&63@ftX21{s{n6yd45aoSw5!e5$M;E z(zSE?!oo4%5i#U|tu4*4WevzOx9VZ7I7kXP?1;=hq%`IZFl+ZECDo?me5WhCXuQ9# z$|&G4ctEEJnfYO{pR_??RV_@M{i=*leI6$ZMlpsN$sk@Fi$wI$2Ut&=o^CFNzeXoI zkCU>Zihk^pN97o*Fh^^52}q9up$s8_l)K*{(lnrmy9{z~09{e0)}rKl8#l}0zL~== zL~TVI{(|Zj8Ip}Q6s;OCG;0a^nP@RsCBb+`Zqn|1)})~+va0oaADiXAtSi$;;KSLs zOUuyU90?8r#V0%T%Q){ch~6R!Tv57S7ZWY+TU>P7suJ?&z#n)tTCZmd^9vHIKQkH< z{LWX;BSdx_d1hubVxP7&r(mH}apRI01Gz;9I6^y?yUiiXenCYRS}Q3rCGgr69-tSP zO)z(~=OfWa&hkgLh=|8X$Xfy5@#L0UeQ8#K>@B$Ds>vzFlkZ%TG7dz?XX1mOy2~AB zfLRy`!}D;WaOXke;}Vn_+oSU1+w|?-T=&jq;NVL-<+!BiO^G8|57~b9M92z>b4JM&KGR~86@`}96NiR5yeBYD!p;94RzeuRJxnTeOZmmW(U#5YOU3EQ3bN45A zO2R=o1-}l5JO3p8A5rux!~Ex^<&{9TH@BT(nkJ_{o^3LB6hW9v0dEL1GjgI8ONygi z2~!!C&(0k_-i~(s(sON*UX6G6M~lLrQFkhtXnbT1CaMbyI||-blx@}}#}U0EN3=cj z(VRAPbfH^WK`WY6`>U)CZmvc*O%p9QAG$XEkwbcujKZ<~J`qt;0h!dip^^$xombrpCH@H3OIlzh z<{1orE`*C7V>On6*QYlb3?@)Ik8>M-W~aQ?RNCGH5d`-K1`@xXZq@ns7M@W4)}S43 z^8zl97#EWj8F~)Bcp|$wHGQT~9dqU&uv-iX;W- z`9MND;-YlS0@jNh3RceD{W4+UC&*g-^%0pZCet>#gotghVHbtB*!=H6ui zCZ2~OkWK@0dorrvHmC|L-1MAQ6p63ig5Jy6~h7?wqo^sSX;OpKoS&V$HiqP0Lb;% z;Y1G=*C^whRa;RR?v%|+)Otr=i-88d5F1viT$VK8ox$qt&&@tJEUp$n^JImSOaRs` z=%>QBNV2wv+HT-aBQf1NTb{pvy@o0bNgTxexYuiMI6a?9f!kIVyW_I4j~3V8LYrF# zL^+`}_%`NE)u5`yA<rgy;Jnn zVwGY;`(3&Yn|bXEFi|maQNt%eKfZqX@=yBfPXa7^r5UYl$_C)8Y5Nq=J0k?_SHisX zzfnP-JP!uFq>;`u@i4`%r=vPL@jowShPYgW7r3hZalr-~Sf#P$;bba`&h7Jua`jcN z&xm6L`<3@<|zFEvRuC?M%G>7<*16g41KnN}8?uDKEwyr^4g?Ji)GKHeOO=2b@M zm&M6&rx+r1TY4Yga-%1kp8uX)NBb?`JbSYU3y&hB4eg;UwP@OIS=Qo8FsygguSJPm zDw;uSvwZZ2e z;u*3T;>=iTUV@7*PH>4RekQ6irF*+`n_=zuV>0m@={knSLAo{cR(X;z@)5$}0y%J! zT=a!A8TbR)aeE39`qxxSg9UNUs^gVo_pdgI^*FfR;ugA(uvPJRawkL75K`9aMn}ZQ z%M(TOCRMkcgnDxlrlG*XdmVflqKVKn;yZCzZ`9T}+#63G%l#P(*J1^e{XrvlPAUlZ ze2aZjIGPc`aPFQ79QA^(s0Xjtf6pQ10({h=hB)6IFFVR}MV5-7@1ZG@;pf+Aw{ zb`=T6R7rYsM2$zB3qjy}jqu>WOIQIpiP}VtlXxTg{(5y+%p3C>Yo~PTmuOCEb_DGk)uQ`cC&Ra|{jx4o`sm-EiY9 z5ltu`hSNOB3u1U0E^c^31c!uxrE`w4b6!b^}{Aajn>b64;k(sP^9 zkY$=oY#1D|lflUW8iIS#={>ml)oaW7@hw!XP$_~mcKVHB!(h_~b6-L-xK*EA#|~fA z5-U&4M&vyhLBaA%R3r(Cb>*6xj&B|Yz?k))fTRR2bd*f~mObR3899g?E9Nn6{jn)t zu8=gX8apoEzgkX$hrX?G6tp`ElvxiGk@4eP?$c(v4vnftq!8A7kUFXCC53h+8~$bH zDL^i$=s03CwLdDZL%WkOltYi*R5)!{d0FK5p9n_-hv5Sv-|{F=_DLI*-p6G}dl?Q7 zD4D}I<;WE%221_zO+3)zHbujZb7aSl9J7LdN@a~iyjN zienjQZLLNA(rL`<3RjDaeRt?kb|H`2B~64~mVzv9$+^#(eu}G!iCjH+a6Kl)NE2pM zkVJk(GFZ;0QWjeGuP{+(bB4pqq%eZA4u`4=NP~!a{exVg)jxw=0|axRLVui*F0bJX zs;7<;FR$ig2&>)gjFFUy6j77rtvg{z8-$805gJ(948O=wqaj)q4}gV!nm9_7yurTE)01)g9p4v9g=1#o|bn zSaa)LHC0&leq2ymFTIg}1`h8+9DobS26lUKU}sPebJ3%nV5N6Fp*wXquuI6c>7HAw zpmP+MFW=Chxi%v*Dc7lH&zFY{zvz8>~!A4F={(xt+%xAMd9H^E=T4g{=!mNfm%LUGnoUF6AMKN6AXTTSm1p zo2`UgNJU`v$AMs*#d6BaqKL;FyzgpoK&7S_w);XTBe}>9IAZk(d=;?-+^*!{*k6|6 zP;;-pn7kk+Guh&YBJgcA>%qo2Qdy8nd0`(v(p-$$G239poL|IR`@3+UyVoe-WT!l)hpZI9U!)sN=EwFn!nvnAv?j?1T$K$kS?R_lHW*gyXa?gGmI@Rz%MOeB|g!w>t{4n+kM#{4@?cur)}VH1n??t zFW{Q37fAR@-cS^|Z4Avtd|E|&6;7di!T0ksbtMHGwgw|nNNv%knQlT5{PsDy{FD@+ zo~6>V19GUy5S`^QMGC^v;L*rD!nP^U-@b{QM;j>`Fsl6hIt@}AR>6cElX5AX_1}Hr zYPIrqLAa27cq6!qf4#3psrrdz^~b(C+t77}-87%$8=Tk{CJCSyWj0mhimREH%HcxkuvFi))t&%x;c5Wjwo+K<(cNx=Rlp-J=IBN) zuBhME=u+f#F|*wC=MQf{Q~r0beaSA86pP>HAntiN({%z8=E)ckISVZ_1@Xy;LO2D^ zY8`KFw_o+YUYxk3*CaYh9sB-f?cqQIP{@)vau`WathKOG99soZqgosMQmCi7%7JB) zh3PohYgfFYO~E&}7OyZKxBJceEHp;s4P4ibv0$M0VnPhijc z&K5{B+L5GE%httFGi@9v!lLxqxUB+z*a*DhZ`S@LP=a6pf#)fK@S*F_lQIXJ1QRvb zrM)Z;jB-b4_eBAc@nSBGQ54Du)L)NweF>efS%ZqE0b9i{sL|fO38>G@oIMJ4iNiJ- zH?^asrQxQ?DiLbeGvL2#YsDh0!t|^ghZzlnaj+lk=;$g@LtQhFV&&`_4t6oU99Ij%F9~nA8o8mEp8S) z$`Qt@PHO(Tz6U=A20Z{e+=+DPwWF%K7ES%0M@Duwye$oMndzHZ zk_|b?P`!rwZoQ@@hNBcF`Y%S0eB#}LeD z&erFdj%b!dPFCGsqdH~c1QttfNJXSXfPkJqmU!wk+Yb*63WNw8y+vFXWf&ZoJHF69d zjv;E!=T!=X7>+IDI;b9LqU!Z^ueV#Y%P5fSJrEr$Ulta65UH{DqlHOcI0E{59tm}s zC6QTpTIc}Z4`@w_Caf26CF*V8*ctQ`7}Nk5lbDQdMl4h@itFr4uff#exy+bMYw^~1 z@wb03RSzfL?Ls?q<5_8W4$_d2k~A6%zH|coO|^LI)x~JF#lR6}Xc!j?` z;@_|Iaa~QNcxB0IDBCilNaF3CXlDe=p+z|mQ%8B2IeBQ+5B!#iu5q%3h%f02l98BW zCnrXW_M&>UG?5b}FlYn@Gbf?q&e%fkm&xrW(^}gdK-qJR=pjg$6L>z7zb|?d6JzQ$ zPVVFx@ra2vGo2N44Q^+K8R3HDo&?vpDIR2ua?&`&aJ*VCN?vbMAS|5HQMs+?O`_kt zo_Q{M`w%}N4oP`-bRK9&<2KTa;3(jy5m@<%ka>DC5;8efCWEbgfiEhKF*;Tgxj2oW z9Ae)y&*X9n>4JoO39V^D;~u^o_`)y|xcaLtO=SM*ACHuo32^cH&MK~{vQrD0zd4B-nrYx|2KRcZ`4}b5s__plDV+U4WPuvfhgWue7Rq7KRlu zA&ybLKol6X0O;~0Deyz$saW{(J(x3LI1_>DNftWWoACW>SK#M!zk)XjesbK!H8mvO z_s94D2|u`C7PR&f+;ig*8G++8JBS`OZmUK`IlsN<6X1n4Qga==cy8?kM;n*^Sw^7b2y|1zQZ+7EX5m zxml=uqYCREX@DhzTnTgUyJw_e%9S}t%%*cUL)yZ$jt@I06D9vH!}b^34+23;60d0v zBlofbOgJ|cHj1RpYp7eiwUq1@!GkW=lkXae>@l&h$H^*h1f1>=hF{Qy-GAAKl9hfX z1|Gy69_b&Su0Iyx>d5gGUY3udIUdA#Y;eTWwP#TUR&1+=C5^tAk~JbX9w+{?04W77 zSY0F>)eFPV%|^wdN^E?h5#}_Gt3C{KaRO%kI3KBsCagzszvnAis9RZwHTP9RBS4${ zx@c-i=2)A;DELkh#+}Wq+63CB6}4D)N4a`RvS!Vc+lL@?RNq*GT{6~A?0kG5%HHSm zPG;&`zHo+JTZEzWlHf|D3lX{GV0REhztn*pPwYd*+8_)NJkmeG;5;r|p5!a62Q|J4xWOlFp5H&dIo`04n}^-;27QFMMj z#+)Ckzz=zGnEL$!WQ>ee6WrIx71`(-Iod1Dc>$sO9sk@`8-5c3JfWXEF2SMxFI zOD+X|Qg7Oi3z0pM^~lY6>wHWW!R$5ZF65t?gNc_gy)`*lGev(BfnC54NuLH{OahTwj{x3RkP4p%Q#!&-`MYd4@FFY&#A4>kDW19eRp(-&aF?+)n2h4 zH(YrEuKM|JvFSh^&zUi4{snmHp`SCAN-a{j_)-!lnIyIO_H}pRjd$L`b5H(3C13Rg z9gGtem^pe8?oUL#L{8}RVwVzo+qO4jjM;?k*(@!T#(tCAlxZ1;f{PHW>D|RW$-j|P!iIoAa_O* zG6}eL0%dn;2R7WZ4U4|J6XhE_bnwmKasdP*;ku$mgCmVbMDGw)5SbU{W9a-uw#nB7 z#ml|Vlw#$bJF)!@W~nBJ7_8TjdTtKVhB(z&Temb}`6U~$;rTjrw+3O2tjtJ z_nS71`4Q=c)4aYB?_9VMYaXpYTOCDO0#er8RMj2YWC(P6&nEpe51v$x)z>#xIb)lf zf{Y3AbTp@qcYiz9-MIy?U%LyHn>*EdQ!$xt6rDk94NEao1v#l_^*8yj`|-Va?Q2_5 zx~84JkyI5F#bMOfc{2jB=qru##h}3813{nW^k={4y3&N3?tC zKXCnnuW~(Nf*d0~hEJQtC*`B~O0b$g8Oh{4lb3b% z_OBA<6S?c&GPG6^6sW*+7srurBJdGx0&FAsoE+p&B@#-62uVS28XXn+Wuu5+zrF>P ztD3R@#cGr;??Je!8{6M$M~J#LscMm>;8@gkYVR-`Ry3)Fl}#9ON)j{8Fdrm!Z`*#e z8S5XcrdZpC=FN0kr#LPpX*ffV>>Mk_%IZaBXr@7;^sy2&?B$z)ZN=utfOZ+gr#YGK zUv!W`R4pfG&0}>7tI<+Ju9qFMCFu)ni6JM@K+f%}dB~d_r$Q}>@dx$UNMTd|^ja5&H=%yC{#a{NKyP^%-UKGtQ*MoVZnO*>-36~v>&k??u z{~rT*!KsSI=5tShhz?NxKbP*ZPRlacbf@$QYT)!N_b4Q|}cNz%J&a!$B7kd_#NBEk=va(CCk-wdiJCXH!B1Up z#&EHSsLSBp+=jL93z+pQOxZU2cNit;2x`Yrzo$J&~GZ;q6 ze#r6$s#9!7Ki#iEV|Q>-Ao?IBhJUaX3s;%*$>cndi=^`(oh3wBQaC&pvp{!HoYG8d zaqnGg)j828NjdT2Gcjgp8utQN|Negw6Sy2%ld~{<%t;uJ-(a(lqL(h5pu9yhldno? ztg7aA5?Pd3#CeLizZI4Ow)O54c=X|kxa6D@(Q;rT?)}aEJZD2)15J*{DuPoiU5$*< zCD$bYmNbK+-BP(1_wxyAoQ*+#D2c*HU=uL1(zuXvS|YhbxkntiC4#U3Mbsq9$vOI$ z`A8e;B*=KN?}aL)Uo=z=O@^n27)LHTk;{HE-`|8gMj&T&ERUPuVB02Iplg=bV%G|W z7gE&g@0!BP4=Up8CxDzb!$ppb#tQ*&OTdYT2F*iR5l&tP-Uo!6&rGs3Ib}DJC9M@6AF1E!ieU z%cyu~4#FhwKE@r6y(J$hLmUW@gWX4NHv5~y^ot{CW%h7!dy78SNq3J#_6VAKqhn>* zW9_@O*t3O)MnxY!X-RC({dz9OU&0JS$@Cr|cP`gNx}~>oYzHv~`krJ20Q(Mn{zoPM z{nATEANLjE!kE0BlZ5fFP7ewTQkYp<2ao;x_T#iO=Oc}H8Emb^b64JoVGm8h*#yAC z;lnWZ+<0vMPcxg1PJ##(B0q&QP=(1+X`fWPT+|NK&*P7`UCWPtTDCFt8SEawGLhmA zBBf$!3&x(AOg)|%sWUP$_xI#PxRhv8QH%mc;U?`=Jyoo0#|UyQ4yP4)XBWUdim9ox z-SE&NEC6a^gof}+)_EByJkdj=PY9JuDzTTY9+{WulUKk;-IWf}x^7Q{GueUIbaID& zK`e4V;$9+%D$=_h7mZbkwu6lW6)sRJdD%2-7Nl_FnZM#T)dun_JnC%k2CXlmy2sAI?# z^JJigV?CA6kM1gFCcUU!RF3^i+L3#O-hdW)1_IDFa)-haI#cwqhNENUIW6kg%^|B= z9J{k15mUxfm&?pIweK~-S;%#*MeP_N3-^rj1))IXUwAN$Mpy*tZ#`3G>AFDm%H|Q9 ziRb9o2VW~n_V2@Jw+B))Do_x%kbrJV=^ocn9 zrEU>1foil=s>1sP12m1Yn8+q{6A-iViZF_z_3&ZET$jV5z%No;)jQHgCcHQ>V>k7d zZ!|#`b+acqkU5h|dvavr9wPHC%+y{XN`767D^aqlO*~}a%y1!RP8w1u5(;q1(k9{) zDC3#-^$hB=%)qJ!SS6F3 z64hxD&zzTqabKZDmJtvZ1sS0 zAqQc0Tj3c&nRQ$fj4tj3jOl&7Q4NgH;8Q9oJpvkA()d82fcO$&YbLNK$Fd;f6&OMhL-XU=mhQ6^jcFg9NZ z3Jf|CSfjs%=1d~-x1dRh!W4a(27expEM>~}qOOf-p7LEhcjslu_%u72%APaOVRq8!W=<@W!1AA0IKkvoz34C$lSR^~(M%vAaXI?zpB zV2g-od{Ucl-hs|5a*#QK`Z97oZS^7K%uA&U5Usf-op8*jMR_Ozg#ckobz#Jn6nzDl z_zBTE8b3M_lZ#`q?TI}oNi`vzU{<@l6=j?B1g_=O$DRI*JT7g@HCTqzfI>(WCtfE{;_|T(~l6&O+3#UQ&bQw^yj&*>wJv@yPk4i*k`Vgq$PCYR`zl z$g74OG}eUiNtir57F!?LjfyM_Qc}#Qd7EQhuaC8shN6?N%Ylocd;DnrKfOWK3EMK$ zz~Qavz}5$Lb7xYMrjg^wzz=e#b7@STkj&L3CFl?fG3C3Y%tGX*B_Jbr9KOsW zkvyurg&$kq7j0oXe*C*}h0>Li2pfuymE3U(LE;t1(dspMz zKl&9k7p<{O$}0M-ffNa^5+~fs=WEqRt{MKrp>WfEMa+~f`)I`AF>!1*(ZI0(FO?9U zR?5U*je;x5Lf05tI_Xvt2qw{It_J}tMLWHU+S=*!W}y)!L|vAzkz7=KJm%bzqkyw& zWI2}KqeHlz7FxoKex*WA?hx3SM9Y?=Cr9B{Ed1?8T;>a4Y)8wPh8{|&|EWv`B|;vX31{V7$WgU9q9 zvF%h@-c$#`9y)D%YkLqpXsmp3$ymt+%2@sN^y8!3(@EdWMm(Q?#n3XW{JrQM`Ep|& zHpRlNTH2tM>&DBfg5vxfP~azLJ(+QEDbE4ANkzo!C~4%pQ3f{!1|I-&I(S8g!}8?c zU&e(CCL=w@gA2cZAEO9npgpD#7o0y=nLfM?`|$M7{(;Lk+@E}TrHaPqA`fS+sOO0g$o8i-;tf+L3u4T^aCj34kJ#u`4{IfD#J~q0i#WF zowUX>vSeQiIVMh6nf0`IGB*Q;UYU>dVKH#$#UMUYTw`dgp-an-7rY23*J0HijEIh+ zA17?L!-1JU8_orf>}Ywv2`hfOAAu=J$Q6Gcjw^L`2BvYH5J`|-Fh8Asa0FDk$#m}3 zIVBV8ND_s#uViD)McFE(E_GNedUkI{=`OC|m&g~z`*mm`SLdca&oeFsvu|bs+%_w9 zk+ih3e?0`{2I?@S^i(opmNhBep9?kH^V(7olR8ABEJfXkvlPxoOB_JZn&NgPin@8(Ogbx_!!CVQ!&V+!WD^ z_THajoj6C+kBv43dPK6UZN}bL8!-0#G#Wu%C}I>wksPN87~=gK*4AP33j_t~D8(;O ziZj8kqBn$Lvd3ECN)i5v=ac~|jI~cyA^u1CNXW7w_pBV`$yv4+Xy;lfuT-Lztht@s zpPvAjPEabG;wG@l7(!^<-ij?0jm55QPp2a?f%?FkjM8AtvoptyQCI5ELfY#t@5J7} zSFk4k4>k#J+^?kg=q|*uQiL~Cm7t!{%0}#6lz=f`q0uOn3rc;xK))a|*1GrVuyvts z?ce-xC7s;4Dj%)N>2ovrk*cH#`&hfY9{b;;2`q^;X^y^O^rnpM;HAL8XX@u^j5I*h zH2A<(EpgAa=cBRuK3s9mTzK3x3Q$DuZmY+V7oNmTe|QcjUwJ#$uUQ9=-HTzFk%1N*DWQA(X+l9kB?m<&NgqcCH^%64zUQ}_G`i}x^UBP|29 z413ck6Q+{$X?XKV{O83}@ud^Tprdv_o_g|e)qZ1>F3JsrWD>wHrFB<3YUtn{WT;jP zIiRh75obR#f7I_OU7_yH!(;|+u*tf4JDG*B%0bvvA_%$3)7y` zyrT`4E*o8SgwvtKNB!Ua#}2?t9bNIfM730=j8|g}UNc4M4G;0&yq}2{iKx?WIbCBi z>9n0h(Y&3U>CP48!YNh<7;jpt;vr-M}YTh#kQw(&QHebuM@)yb%lT02Y-hj1=A#AMHkI|v@n z(TH$L92MF~sw}#@G!slsZR7w;y41Za1nRvH?uWP0hay_XWm!PDnW#@e0TymU4KgMgR=KsL?BaJsBJ&iWs{`IYz;O(LH zW1O}R96Pkmp}(23>VwzNLcpAK2Ok&9!a;qY@idn8=m~S^@#t^zX$PNk>TMEi4nE$$ z9@`{i*LPm575&dg_lXD5;{?Ip{phjiH^b$6&(WCDyB|GI^SwskKIr(t{X68`p>&b{ z^y^D+y8{_3=|B)w_oh1Hpg#1rBkfDQ=(vsVBh%?~N*gYUr25Q7k+k#9J5TL%Q6#Q7 zu8N2=gRn5WXKh0hBQ%(^k8k$I+A4%>Nl52fx4y1cR996pP(Km5=}A-ph0)$zkNOra z;Uxd@yta*r>LhQVo9+-kCIalyY>1B)E>h?tg^>+COn|_|skL=Fm!cn+ZIJ67GaF1+ zD)mqSD%I`iYHLJ073d$fNRm=X0i}{~$}FSKO(p--C9}Tf$aJZssS-WHqEbsq!ciVS zQjw8Jjyq+@AeSTwRHaA+hj3iNIfi&#hHQz12})Y6UJ^)UiN2sN&_ZrfqBz7-8m0xi ze;w(s#5W7~rurUjk7LpE7fM6yvv6(Xq=Zuy?oCovNyeE&bM2}AQ3N-WI|~ZeMeT$& zjyk&zTB2G114Rz8JvCO=mFq+NNKtJ`?mr$63B7nsjg{iPaM#gs2;C*otVL3b(NM-L zX)u#^qIVRB@Wb3ywQp<&8wK?FBfTD+BJe@<=K8+%HE5xN%g&H5Q?L`|<;}hS)S>Pc zl$MBgsju_`97XBc%Cf!_+>5BW4?1?_AJmss*Ymzs8f>}h9j%=owJ0zX=jdb1GMUWs zIaa;?{ZI)$`yYtxtF|a9iW*P;B_w^;5!)s3g=oi+x*_V%4p&dWOd@E+ee!7Ssa$^o zV#gXQ!AV>&C84S)IfISIpfB5#F|g_fiug3DwxVODThQU|FOJ|r`UI*mNOT`vf1>U_ zA86D#Fi0uT_m39=z`g^6bVTHWLUblRL@EBM42HS;#IyH!%RnE&K(KWtC=@eQQ@ z0P7yJy$>@6x#x#xst-S!0rp=mR%19Ek{-Tg~KZ&KW6&b^>nwRrCnFLIb!3Hoaj-@KWdCE z?qmc=b8E-pB&NePd0fXt+>~QNKq;44=2|1UKZ;8 zBnm}{uXKfn)BmYfxRLuy-xvxfdR3zs6gU4E z&B662x=>%IyF^5fAMxAfLTZW!4K+2WK4f*I^sFp&G}NFw;um+sHa_AB1w=8_VR4Zn zEn=vUrUVET2r4k3OAM9qAu8+p7g5^xH#GD=ceMTJLPQ^E@6aqT0xV*XU?0?CMl^Ux z5fJVLK`|aMtWPas6fr)iN&?utE^4??;7&9XBZ?mIrfNYJ9+GuFqTnk4sq~^M<&|DX zwvvEVWBdKZY#nsj7csa*?%hkbzDtcgg90C*z@P*`3-j)Un5H*w=y+Uu&Y4Jcgs^VS z>v;9;EpWMP@Oqiv-R`6hmk;@~&cyk%#?sY`lZ*3KvJ;z?^B8~gfEYwLZ9wg&ev23p{Ng5gkUyJQVQ4iDaoNn8w`x(hlN}PS zQMj_B-KgI=GcCFTrtXRHD40!OKyq%OE*gd2twSx7m_`>SQr2m)p0ch!Ix}*ZP@!{2 zGb1td24z({;r1kTU*=h9Oxqu$B2>IpOtSj-dUc&xo0YFhq>lw(&r*vf@k&O#bYS<3 zG+ePcvHEHRO=aj|MDfrovJfweB1x#+rWTaE8HrFKs0#OPWr&~{N5YYJT|ix88G6QLdD7TrHh-#kC~pGhy7#!%;AmYlkqOpTxULTBm|j(^0*+8t*^A zkU4T`AZK-~66O4c{%{CJoRSPD*UykxVQH^$L7H-2e((R)!@>jtA%csn_mOsLGO{Kn zB7H)Fq(#L3$C+)WjH~VSa-UXA{oM#;kLAKc45w4pV!kQz=OkmxgS%0=K@y1(pcCCV z@$Mlik%5h&XyRfb`S$YX@I~{Jz32>b4CDmevr;kb>Rcpd$=V`hH7V8xPUadda~kl@ z&1EX{wbT>vbCG8GGm?=x(SyVSCz_X45&)}|IDY6#dB>uSasGdc0)r9&qgj~AyD>_D z>mvvN_R&)x;i__g)nfQeh}^iE_@_G|CFKH+n7O^?j25Mb!lp> z!Gdqzh?{|4))7%aU!$ zd(YU;aP|%f34|F45N6BhfKo~+{r9zfEq$-$wLIEF+xO^zwov*gg_bsyov;Zj5JL8j zlX&kvH7whb{=e^B$yS^=aTp~j_axT1_uMnStMj|x`R0$2l#_;rx(+y_2GJ6>59IYy z?9pbp8Ju8Tg&?MJZP8fr0E2Z-wQ1%fbaNY`o7*7YrHENZF#{wNpOvVh#rQgX=wTq$ zSh{URCs~ot@b`U{-Pr$Pzp`OF)^=EI@PwOlT#$uHD^d_k8QTEE`}b5a@<~>VYA^4? z9Js1o*!!G^fkCrS%!nxQIWe#jc!jn>+ByoIrI^Th4$*FK()Wsxw~+DuxF>cqEWX!c zfP-=V98(f7jc$d_+YXW$Ghi;0B4th|qSI@nuYy4%=r$P7fT&4xnDOp*AKv&;EuSkf zm~&$;LDI^t^B~h(x)_|*s*)9@FU`P$TfBJxcddw->%=VjCnqv2}pepp$t?$Fu@9xBFH|#*|W+qwUZHZ&P zk_qSV0Y!uKw8^y9BnRHZE%e)8*oBvGEJMoy26CWSB4LIT3@d@;mC1~V%?BGVZeuFX zmv7vI*M3^X{3qnD>DQdPP-?N)k~pN#W4>m(=M7ODAkkdJP+Ot2s-eH=6gV~oA|92; zUO2~Y=94)qBUa)(c@J$^hi5@>l!WC$Mu6V7Wh>r$f3q6oAQzt$sqZGUfdiYcZv9Re z&N&xTO7qmYLtEd#&38V8)S?m`c>0%k?xjskoX+bAE?G;9S*HX37NXzs8}Yg8KaZKE zr8x6~t8nwTzs++2q==*Naf)~xD5rXQtz^xWghte4@9V~nyAQxkL0AH1fIi0OV+1c2 z$~>80!^iv|U3(}8+dvr|j~>|AMH!_wmnedu6s0g3CW1P2_>1!PBIm}rC?y8x)%k|z z<#OmXH^bVqJ>jB4QLugV7w*{Ei9L*uS580^zp)UhRl5PPF)xiHKyo`v+V)lUFh-)* zWotRxBOXa6w>ZWpv=QW$UoXS%cM|B8XR_CWu0|$h;w46A!AqJ7hR0%r7}?@emfO5V z8{6Qv4)if+iu7+{2DvQO_w+Jg8N-EDtggnk)y=fW)D$iv8`O(Vfw3ttvOu&|qit-) zu78T25qY1%WJYW(O=03HED z1ZTpZ04(zr&;I!w*cdW?$jz>3HMKj?MB?84|W0s&#Zhnx#0w@xo=Z1xI&cCS$-48UQ@XJgiz%8;wq3%1V1#~$0 zvqLBgwN@l~P(~F2u4r;#MuMjL8HFA&MK>2PPj50zq=jUvlOfrdpIAMx_(jZ%q)h*Q z2?{9Jl?O~!T%#&K`D^)dYH?g{w9WoI&&=O+BB% zb4qiP#1e_=N6_KAjxUN;Vc`keN*0%~JOhhp+xYff4cvYX(pHh2A9IHU34T#?Qc-da zWrEb0`s%%?eYst0o_2i4D&pE@B7@ra=PEQXCSU#{<`tQljAg$`qR9<8DCSXV-``#-Xf+jSZq|9 zWTSvvdzrj!T?HH!2nvGpiRGOylU5)=q*Sw~Z>l1tU{)JDHJF zfYPZ`F{xw%oYaWQ4(*tI9x)j9&n+UT^{xL$IRlmUpz`5b)bA9{HBZG_XxgEr0Pqw1 zh`LyITOpEj3CL8q)IVR3?SCV;CMGMRV%3SpH;Tuj7>h5I--%``8qKDED_bRB3J~C% z*EQgU3wPoGb7lwq9~vwa_;4g)f(( zvt9Jap%NZL_+1Y3q;`I|R=BqQu2bNs6o~wFAGN~Cd{BPo;h(xFJfy@}ZPfNAtG`rg zed8DjSxMs6*^!s0%)qM!d_~D%MMncoAzvijgf0|q{mU8LY0_)L|vf1iune)GATY9B`XC2 zxuGbFc8me&vG|_JNGqaMG1<%(<`91G*9;e*!wATsEu^}bFXBEHav^jKU#3;KwU!w~fep*i>p#kjvNf|ntsAwQ9V^ZuO_R#Bu*NqTMH6Qs^J`cFK zHRWK1o9*4(fpypILG=zQeF@USLCRec)081b(w5$3YuxsBBVM|hpvLcs%n2eODgbKa zogvHR%Fz{t%_w9)J3VzLtiNAHS8*2xfxDbCyTY#Hinwdl%I7c9XoX8_wa zY$O5Fu=3(_QJ9y5qI_md^Vag18F8^OklesG{oo$FzikIzeEb0>SQi;RZRtW9RDK<^ zh})Kww*6j}P{?SDLNfDnfCalNIGF=QtUUd+v*Zq2NHTn1hwpF1 z*uw4W?>Ys>qQEIF1C%8snqFB6^Ot`PFTSvXN&#*SdCWkTBG})DwSTw`zb3e)F{PrE z@b*?MK($!BFl6LV5&RaOdF3rEnsO!V>63B$gFCQz!!G1ZosWg3H2P!NzUeL8zm6Qs zghF&z8~_%64!7KN6K3QPRc21a;Cx=Z6@qfV~{j270Z5XhL8T*Vgo5MP!B`)H?*+Y&MvrGnQtY_jI0$o zSVZp;Q)Vn53L**!qK_f|#WK@GO>pE`g!|LJ%P&JOIt7kTfm0Fyjj~!;EKwH3+O*Hb z)8?Xh+L04(ed{+oSVqyA+KW-EOH&G#7^{`e_wvbz-u513B?I?-^D0a&+JMikT!i$Z z8Muaj;Zm{fRowC28~N1+v#S>>=Nn~=W-Adw3I$xIa55ydAJYzx`6`Sa9sWTB-YpN+ z!~XSLW=OLjbGZh#0fLy934qG}T%npsp2&V_YbSvVOvyInov&CqE_m5`8kw7;AFU4w z0CFgbB#Z)04oW_2%#;QSexjP-{_gu~;mnRkIunySs8n$h{G=`6xWpKH_iyU8p)(jk zkcrl%7|7Y0B)O8GHh-Zx2K>@m5ZfNAB>+xfE@LZF7Nvs9S!FQoWA2u!r|VU6Cjr3S ze{V$GS2@?rXk?z9uErwVsFy&0;L#e@5B7JXY)vcki=@Lw`@w=sc+WU|0sp@JJ=pg< zZEO-)ReYdT;apA39TG*3Q<>z*!Qp+eRz-i+DKMG>Api{hh(@11Nxyqs+IF|$;2u2j z*pr~$ER_>Pl!ynvaDV}FfUj-Q0HnQJcn09@7oLW#wU`OH4`H`D)sH^f^0|!;q@V{k zTyz@t-1%!PpEH>tNiFMOKN>4`;hVR7Ph~Ajb5Qoit#uOf@%r9<7=L_V4puIkj^3t2 z`2ElBV-H3uOU9QHQyl&!#J%?&CUNTUVJ11j7}~%IVh!~YIR09LmTERhn5bRX0(X{Z zqP0mzZXqSWgP%Ug?ZQ2g2myX4veJmV33;>QXus&i{^!J^ksu-wjtLUzbYuNZyD;S& z;&01`ft+N&o(30o+}o%rV90PubQVJ>1XU*uqN~hQL@?q`OF2)l3=tqz;DiHADD>Sj z%=khE;#15Ddxn^DvT0o-s^08}fj+|q-l87P96TS4Ff~isQBsF zuH9<|km{`dqEldO3NR_sv{NoAk}29Izx;9i#abwJXWh8i(bvQVi3KBVSmJ|ODRCp; zBipy81XCPZLM4I)>llI#N5r+Ex>mE+*LcS!^$3DT?~~_Dl8onQiG)J^jqXPq8+EUY z7IwtBh<2F2BPddW(RI{!Nys!R(GnFXN7NSsho3u2(k9wj9$se*dW~*d|2~Sg{~~ldJSo!U>bDV*6iL3HTE*}4P(Ectc6J6- zY=co#P>GKiCcmSx2HgzZBH#O59;S87rdNoKiU$uG>*_&gh>0x5=Oh$*{R+zjJx>}pzqG`&B7BMy!4XugMTqGxj zAc;ymL~bn{-_FFaPa=;Cb$;YKyB%s9iLfU|-V(!)K&XleOscm0+II;;N}FXB@kO{O zam)}yXxTMN4v}zNKCL#pUJ@=$xijZq66#aM!B4$?olG?o8@ z3Yu_HbLDXpIp2T^slzR+C`x3m5pfVDpo0pUsyID%C`Q_BUyUuoYDTq74Y*jeN@y(6 zCd;*w{75f41&&UEk>5sWc^tjk$$m62;6ZJr+Q%MusA1(tXLCI|n~zbQtGcsjf6DkXry}`l@OwM3HK4Mb0Y5oFe-1Zh}+n>1bT=pV|7s$`P)xtj#Sw23`*4VV zT0MgA7$Lk=(k2OTs@h|{quht#W(m0B5uz8J0w+R&QyKtIWTGcpS7c5@;-7om!iA}Y zq&aTQaa9;km*Z+EREhX;+#+?xQ}4J9g({494j*;B@s3Zgr&AzAfzY#Br-x1fodP-q zK7AC>0r1mz&-EGW6woOUqJR#7`cFZpfKGu=Ed_J{{M6ohed0O=bPDJIsQ(6Z3g{I0 z)KVY>fMNro7o7q+1#}90x+tJ?fS<1Wt{`0>(L zZ(XN=PJxq{0y+Sm#5YGDnoa?o0v|60bO8K#>8rP{Q$VM{NlXD908iqZqYq7|fKGvr zmjWRG)IC8yUNY;g>lDx_a57Rr=KxQ}yP}Utr+`j@e+mUc0H}L{{8Ol{ccN23r@%=? z0i6Rpscwfp7@Yz-1^$^7&;jtDNo~C^odP-qPAUrM0C-Z}juRh@r29N+3deF%jpw8x zj6RT)l>(nQ0LlPPq9y!+?$akT2jY-r*8LZBQID~<5UG-rrF#);Bz_guAh8x99;G|u+sC>peCdtl+{6h+m!so*824)X8am+_O z8LA`?B|j6(ODH}9|-_j z31V*k=;co<2IjJ6zT9KX*v9qOBMW%AkfY%>;TGhuY^O4;(XetgcKZg<=?^Gw@nq3i z%N+VRXZZ^kA!y{R!pA?#cQXNQkhCkBbvhQ5=AvrLTi8%m4>LhWjt>ovP+n*l$t9}q z1hygmji(5g>6bS7kUFv$!CMal9|BTm&hqmyDcy$cZ#{>74L+F791kA~deJFxvQpqf z17KW~5q(S`e&eD=I6Er^J$-HX@yqX_j!?x7+EKv3fJFA%ITXYl=U;#;CZwaXp&FMy z^E!sOkjw;=K~l@eg)7`eqql#Uc5&od`Urw2LrE~3&_z!7)}_nwrP6$KcQ)a+)h}Wb z=WR6v(f=`_bX1g?AUBBo8K+^%+-Zn2`_YyVt4Jc?msU6lQ;Q2=4tPA&`(PwW z2`6VHCl?@)70sBB!t?|LL!cHZw+n-%iPyB%9>CW9HEi34xr^r^J2jagYs8?>gOnEz6adc8&%>(X9CUQr@rMuqTG;H62!$ew#T13)=s^NtGL{$QU`j?J(m0A$tn-B5 zfLLDRW1RpObACnvzH{1io7m=x);pXYl< zaV>G=W^7#8vVD_E0}Hi%A0_R1*r&f zTtbQf=O?r<8jPH?Hb@g`Y8z}P0Jh-5D=tNDniD2P5N&i>**VBcPsN(G>);zO!_0=> zd1(Wjads4Bq+-tE6{vpV1$cQ+!w<8u=A|FkDe%vwfc)yU@}W7vfPx!>7CEy);oi8= ze4)liU`0D1U@+hx#6h=wZ^z4(HL#IWX=tg#t8&Ol&WW36FTqbrnK2rR3kxwZCV+;v z8g;DNGr|$dGz8RoS-*eaNX{^c03`BADT&;Ub#gn_r@lqL7?41K=;HVV0Gy_vsux*9 zKHCW%Q33Wt$O!PgEY#4;71hYJ1mNmv#fEwrg8?qSSxA?z$nD<|oGTw5vV}f!*rU51 z{?4glkV3}Ai%O9kZ-uL?2^(L0N1dniRlNuN6eF-N0XzY=$Rfw2bhI|3(K4tWG9WNJ z5)#S1MZxFkMORNBTQVxqVqHTE7N2`Q^3oF#92!7Jdox-(-AKvEM4}@WX*m8Mvy54fFlP!=zz#C zDVd#mKT0DaC+sJuwYa1d7w0CC?FgXX+k>?Sd(rFa;gVw^qItP^XBJMxrMbz7kBNgR zFbK~;5Sd9?_~Gd`#8D>b_H^Md8+YOm%mhDjMA3=(k3~~4BRK(9N*=2_TJeufoA9pN zj|6gavaJ*Fo040M>!;+S*ulk0BstLBfcrM=L^DA{6f&}f>?HPHI%6g-$jd@n4BPK_ zVN+!}ezUup<0H9(Lnz5B#^;OD333GfAs=2kSdM<58y$kkB&End`{BTMmP|#q%|!X! zF4!|B;k?{5L=#@hn(FbZcXpsTARrhV7YGXX=O5tUoW;mVOX9P_kLH>~XkwSq(H1Hm zLibR{Fh=nU$4Aa?&&D^fC!)^E&wddF-b0(wG_43FS;@#Mmizee6v-1>(BHCXgIgrlY4peU5i>ISvs6=#O z>7>c{`pgN4A=vm>$48)8SXhG73PmGHPQ}%Xz10N3hCvh;Ou~a_pN2Wf@rdH$7VsGg z6yTzg0^GS~Ego)ksmWb`+L`$7yvfM1TM!l6=AB<$hzpAI@a?}mhc`rs#q#ruF2!|| zvf&`d7)6d%xTp)crCgrB8>`l6+}7;865Kj}BCJN?dO2&^<`MwCb-Qt(K8PgJz!OZy z)ibAIQk)s*l8a4pIN>x?9>)1BpHP5B87Wxyk5|c&nqe~#v<8mVn631THuDpE^dR9 zVPiW}@(kEfGpMxI17VO>Bhg=U3ViYuP>k0{GK}La;K7i*tF^ZqhdMe@*4B=;{s9G= z0y1iICfpp$fu=^Rud2ZYZo%BLo#ZGh+gtH^Wi8&Vsl%Jqji_svnkl$v`Ds{~$^|>< z!~Vtwyw}){J__ryQ!?=FbIy=TNGY6-Z_F!2L97KHuN&`FR$^02H)VQ8OwBI94=-gs zj{l~m=is{1Jjwu#Xz%I7>)hTR>g^|3MB|*v)9~Q3Qq`Wz-HY;0nL`JfxFr|PMwAQM z29saZLqLF-TTy~-wj&46WQ?*E77kd+G(#c+?RrgV* zdpT|?Ztsxr`gr$^7x0(A{S8m8eH|XvJ+=O!akO`|z(bDPVzt7VHc4xm3NF3q6gb%^ z@X>LA;hCw$7ydHx-oXVSHh&Mj^BVuO;}2hV9j?l^kE~O2VM$~sUf#Y*{UNOgJFi`V zRC53u%Xi@`Z$xg~fa?~|!hCXm0sjErKDY}PKliR``0h)u#7*SlvXawrYcl0`B@<9& zr}lKvi)XjLhcCY=?HI7;OV{I^3@5UZgzo{)FUmzC?d!UFJMllSJc)Y`xlvp+6Hi>Y z2qm#roK{eRX>aYt+O6x=pImeIrI+L8DS7-fdg3$+=20`buzgJxnDxk7sgAEKI|p|x zoI=^91$j=20#Hwoq}?9jb94*p0`)>f4S|`N+g*|o{r&v}X`WPy4WHU#hO4r%P#OLZ zJ}|!bP+w6dv+7G-M9p@%$joFbZDhS5-^0Kc)+IH&dO5x!I2;z(DaMc@az(x96gb%^ z@X-MQZaZ_x#hrlY} zXXBp-4{Y6uMsDL;Ivatc93;kARDTuZKn46JIpa}Qz60;Ilo9}A;Gq0*8k^hQ8igrN z3-)z;5UuuqGP0u;%^tFYTYM?`{9D)Bj;~Xu>5QR5D1t*9ffuPcs&J0M5W2*~Xmk** ztx`4#36FZQocNF>Vtio$md<2nEnMd?$2)wNLj6gF@VJJDG5p~}4obgVr@%)?fsYOV z!;6r=bG6waXCU@);*lUl%wc4~`}r3(jfq?mia+2r!ZG!Sw3P#4mV(!ZnxVFtoDzlV zQsOCemxbmh2Q?)#ll@YbB`2gWE>HsjHqnuYLGBr4+vXDkVan0uCEpf>_gZ=7$ zkt#|T1utb-vaO_E7pr$1!p+IERA08}D42!$^BPg@@#6GJrMQqBU~5Mc?y2da zD;oil;F@d;aap1M6YbIJlZQ&2o-UD(8HZ(J0w&rbC$MvyFQs1-q486A{39?BKB6j) z_l1`mxi#k`;1yY%G{R$JN!7xAgk^(+LXVLl9NufVa_Fe47J9(A>3t*G~`vVOKyN9-+pBCZYc1{^&)gz{yI1k3leFM6&$mZL!F( z+mU3qAuZO<6--$XSA~%>tdg_@MGrH%Az3HFxg|LGAt@0KZVd-R!gM(+T3wp(VloYU zrId5)yd*nAecn$+hM3kEqoR@TNWc>t-^cgfco%nUYs2*HY!q{=y|0hvB5n^g$w6{& z4qUll5w9iO#^mA$r!T;*3+Lb~^JmhkxdCl1uVUOLWMtv)IR&Wbb>pHrr(*s zb^i`@v)-y13vlP$2?U7%4Tz)ZQ87d?u;HsKF2hYUC8?`FfaOn>sWycQ8YR@%;bZb) z^zo4zqd$>~27x5{LsL85@6SODA1Vpi$*3)FS7t3?2on$zunrn5D4o9ylje%djz@@! z5(L5T>A~hVp2k7$$F&wiBUIOg_%(9xhG?GkRimt`4$kStu*D~1(TdMvns<kD#3?Yc@z86?bf$e}%2eqxex$MX7Ih^J|aNYyT1^CniWScIkYLr#r%Af23~0C8PMGoIPL z4Zm%X*2?ky^-lcv;u$EV-|WQH6a@&beh=1H9>5pZY#{R;Yy%{pn zJSBAh)f?Llk4ZpM@o79UL^&u$qS*EBD~O@};*<%w%qkP|XY}(&M z4qOX*U{M+=AS*M8$}R)N1U)!dNe+_Q4^d)xXd<$$Y7gG*kmXEZ zqD*n!o-J5cRgGI|=a)vW2l1(`X>G#82kTUw7;Yu)l(XIY=4*Jnq8w-Cq$1H`hIhb= zy>*p%rmh)VUFUw;GXRKV1=H}SjZoq?vB z3jFw$e)WY8>Xl=(ITRPi0699@y1xJB zOQ@|ZLS`y~jrU}LM&GRsRj6-uQ8uahZ5wIUGeDUkGN#e|$f@MA&GbbUuSYW<6o;7` zN*{XBDR2@{K$w8wRD#EnB}?$~%P*s{j`Zgp zeVq(mxJH^mqxC2|taJicE5Sv2OdyBX6*BORY$uMO79hB|6;>DsmL{}?lo^rrQrK1} z+X@PZM523SrHId>#|Z~dki*fuj=T`5eK;s7|L9T2q}tJn1Yr>rG4i{ZD~YMm=rSDhk6LCEsq7D0aPF$h zP{M~tZ%Y-{JidmCFh1n?pcoI$Mz^nj*D3H(QNY4TMFW&qUq{UAPGNSp_U3#whJ{lcO5}s-ObD_)vf0YsI6ZUBFKc@EQ{r zya01Vcj2n)*Z}*M*o6rkla*uhM$Ad%afxhS0J4u38ZjX zVLPm@BFRWtEhS6j9HeeI;As?TF~ndL3mG_}C?^dAt~Tu4{Eo5$5ROsoHua)Y;AEu0 zM*@H{F%K8L{2i}Iw3wEG%;@TeMS}^Q6aeWM$5=+^VcI-Ks2?F~0Pjt|Feiv#l${5U{!v_yd>7|XcExD9e{ zTx0tn^~QP*aEQuTM@S*G8f$FhActP%UxNbw0sv@2dR8U^{XO*P&^E4#De15=igXjB z$&6kLbS-JT001*4Nkly}VD1$W8Zq3!#2d__}n+P@-Y2p#j>m)OYED*}lXli4p zf3TajcWqsL|CBp!wA1a3#^3>JWdagcKN8dg3}|YifP=>a)XsFxqNR#Gss@$;lTgY5khEXZ&+f*Rl_CodHqlvKSb)TWqZT-I3!X1>=RTRQ_~p zR5#dIk3kbvJ?&EUYLu~1fE#dWlQYI?bMp5_Og7xFm;GviXdu@ac%46VoobANUz20h zToWj(^a}k(I#t(lSpGh(4;h<@hU79f^>7%es(<}U>|lZ5YEC(UL$ z`Nff*0e5rLa9)yV8ZC>dhjP^mRko8`5od>JvICyJZe^+xZb#nRLSJ&T(ojo4{Wyw& zhIs}qMgfbVb}rmVkRlK$5G2zoXdYzXzzCQKos1Y2wJQc{b^M(XwfNEBrF|E$34}l( z;;N&6WZy=bH2S*^XO)5kAb~gm5fEsEn=%Rr^$@HgT9UE)Y5OC9Dc495APNX@MwIY) zv^IE7`lY?$=zhc3nK%apWHMI*|Cn>-_yQb*0OV*8maz?qT@oJ_Vmd{8c)ffIDG&lc zS!MEfDit$Q5@|Qs)QvBF?=D<-$$2QuN`=AiLt|YzUVHX2{NR883`=qvOzkajCOVm~ zq#M_L^B#Ql>SgeERN%g!U4_Trj6#0W0Ha9f;^%+32g{~s(d&a7IkGbSG~}(XD#x0? z{RU63uR;cMe>63=9!4aS#fHR$IOP@5)gvqF1PeK)Ano{qKf@Cr;)?&3yoZ6Q2uNY>Ys}HIZP_jg*Oz-uHu4uaVNYRrENVKut^H`(*n+)( zr){Tjn*vrnjBv9w5tCM?(L=>5o^j}Jr_JHp&Dgh^^@QV!B3KdpGA~WXgfo*6mm<-3 zXt&wqLES42D1XUKE|MMl_z<86UEvq9k-I1Xb{b6vxutehyHNRbE$X)nDj*FC_r?|` z|G#`>PN#QDJfmilqwhJ;gZ+P~L02p7Bl#N{;=>^QV)l6k`^>PAI*g>#Ie_-ZxZ;XSaK>+bf^Yoz|B%J-S`GCY2%4hph@w$&TZ;yK4!Ym>MZg*$049|>kUEFSiHLeef}Y$n0YDQ!yPUFm z34q+n&-C^Y_&w+DQWP$ZS5c{@Jwp_OuolK5F+T?He6Nh5{Da8nC?*%8hJbG@WQjt;LVLY;3D@Fmr{URZ@U9O`r-lwep$(}Ffq`lpWx?1DZc)l z@8Gj5XDRTDbErrNs@-G0kmKN*W-(y)cc);^jk(C2?SMUr92=w3_=PLf);Q~EH!Pal zbwRv=4lf!vwxi+wPBikbVIw0`@6zO-&Wq_GGCfvtiJp2F_CH3BX-6LhDNnR!#G+_b zh8mX08OJIHK1~Gtj7w6;sWD*^!NEt6uXv^oWzV(3#l$HFM%~FcouDlN8Ca%%CPRVW zQ12ibUunXg$D7dGOaY|LjO;Vhk)A8HVlZ(fxmyCdudN@|Z12De?eKIl+(m*F6E4b< zN-!))LBX;Fn$eKktaIbQU#d~@b{A721YpgK#iXmURlSrebC5kpfIbMc?x_t-lTZ>G$W^-MYShea>m7n;wd;fv|`10j&#Ae~z zo4=1cAHEn3)-+_dS1^|IQoQiqA8_{kB6!+w!TcZJgm2yZD$C&fhGNC4qd=vap z0B3?Vky|{*9Bi*}!^D6M!j;I@kT0rep}-8}hUjs@EvL81g*U%(=*TvCBq5VqJjxR3 zdV$90>#*xlaY1xr#gip)W-v8pvbM^Ztx`2V@+=%_&cLmz98bwG6XgBywhy7+h^qjrIFYm~~AWEUD2*n`c8aeYN9L z_>&XE@~y3S|CjZup20o^CCi<#X4{y4lc$U06t@g0Xr0P3-W%AlB&wPrZD4D8OIiDOM<~F&N0a{=b`kRtI>Wz&4L5>_^}{G%D~ z?w}7eWqj=fh;Xqnv%S(pv%w+J3oW#&1nBgIgRev5qJ^Fb`HZ6|*3rCY7WzaxiwMr* zu0vq+wujnFv?Df^95{zfG=eRYr;{jaqzpFb@xeoGSBiB`qLOEdoKAu|NHPI)T$Bnp zG2k9zicn1jo}#wRgkrX5V(7J~ie9|+pZnn8mcDJ9_Pdex;+c$EWSsKn_iB_-a#cC0 zmro4^PB{QHP-iqX=rQ$fatM1K!OC+VQRl)h)}`m6RORjf zw!Hru>{HLjX%i^4Uw9F#2mnUzf0)*iU36PgdEAA4JIWLQM#aY?HG2h*y$D-6-`2i| zO&hi$ZP`=?uBpIV>t5$Uy14Zo2mGWGaY11mk?7Dv4RS;kF;SEg;F!mLiUnG?E2Y0)a(qR;nhy`oR!Q(P!^=0m4zkTl3NR@AV}mE zuzL_K?+ZuBB24eGil8MCq4$smR7E#sQ;|dvPO>3=1`(02BfV99U}|SriUmn{fecw0 zW5;6IAB&MTk(?FX;6%eb9%fB-$w^Gx1P7u55MJCe8(FwQY zr?SB>^0en_R1;Al@`%F4lIFy@tFw^IEvUPNA;BmE45f3?G}lBWu`Q3Enu!ZnIpCm{ zwy(`caA&fo(EQ|0=r3-`ndcW{>I^5-5zub4V-PWN4|!gVUcJa?BTBzBRe_qp$G{ex zqMcl1s1^*|`Uh+M$UP?$dDHEj1Ks*W#_AqK6Svs%I5ksrJ19GCy?m-Dz(@C~Rzkme z3edy=SS#AQL?n^eb4Fh`Dl5xz;82AEKdE!>8BQ(@q=qUhRU#Pe)F$u9E00Jq)=(-M$Kd0^}MCcOV(10+J07)J{@YSSX{ zkj+h{fjT_cb8i_M%9wgow%Va;;h#y%rVdoU(u&3{R0>hnXJCxU+*O6hDirV& z&AQgC{`%>mz^TUp2D}JTo&>zbICz@8$z+JuHn0q)YKvwfb=!P={l;^c+rx}qZ{C5` zZP#OZL9V*1u~dw#p$CY82tipt*IFDFFJBJ)?{nG$Rka8PT(pVK7|?VOi8QEIg;Akh zy%pMLrs5QUVBVnNqBykSZy)pn2c`WN9AM#>5D2xs-9bTqhiceb7=`{yHyRIkkVKOY zNt_-t!-Pp^CQ}~C5MPv^RXtIK?SJN$Hz^)x-CK;*0xOc|B!fIE+|+`I0kAw3lpSJd zOH5KKj}q;j++Uk?N1Mc7gyzj}vwl*FqNNU+xln0wF{5}lu^o<8@My4)c9`p$u<@Qo z*l2q=Uk`<&NyT+uGP|C|J5lF0zmaMIVI*QNxFlE6ppn8&7B(hBq!(N*3*e$ z>wD?t;m7#QyV7JU`xoK9OBmd@rj?0I+>KQZLf5VZ+4Ot?hqHKah_4gJjV{#o<8(8(Y-E-eR4aVc1b!)FQXQh zkzfuR=?Ya0@~h5cq~%_8+(q~<0xt{(k-udZ@U6N8C#;0iPf#b&5=c9-JY5O zm1WLC(M0Q88u&@QIHnjS<4%@UXfILYiB!&zM6sea zXHjiyANAKy2L55o0zbL&Jc1u94EnI| zy%%xr(uK78<5y-d`{Ui;!mZ!>F1~v6O?d2;9nuUE)3R{;moHN3FXg+5(Ty|mXW`Z# z+=Cr|{Vx+o^jggi#GF8ER|kMQ2ym=9+fJ0l#pM?) z!iDpx{ad^W?{;@EM=(7Bm^@v|?)A^$_QxmV(C>@X_lBB7_}YKnr#{O|rEwxwt(e1v z=V@4c#zh#E{S`}G&TQQO)Z4I9NTqh4Jht_vzvJec@0R^A`rLjf_t*>1!Qw^pm^P9) zl|KzDE;tWA{p&Ww$H$_rM>F404W7V@a5$pW5gC@^c4)vXp|6_$-h}2e5|KTX3wmZU zE_l{~AWuZo{mV!o>fX@_;ce6` zOkjx00>|P+q?Otf0L2!@BWH<|GPDkuspzf$Q!9#2Pel4eD;(@|#d8iannu;9$QZl# z^`iV44Lqve>P8a%rLE~UO#A*!Os0|{np$HK6LjyPOm@A{whQ%}`rtU9ne!$%u<*}w ziSY(RJ6Vsw+(zSWg}rN<(RxlY^5)u+I4c?FKf@d|B(ls^>?NCD7uy@4>JQB*Sm2~R zAngp#$iT%jQmEmLf`xyBU0yW2)CB+L09tlrAa@SUZHk>({MWfEz-x588D<)TyUOWa z_aNbvG!F+#P>t&^|H2d)!MjtC1LVT>_QB;42;7gAm*0e^Uf&9rcK~*#q>N`$Bd@Cq z8(w@27o7D)Ec*HtaEL%}un%QB-%>Yq@{~yse&LPH8?mdbnV*8l&dVToh=Yw`v@v#}gqK zR6UOWWr$i<`5W}`J;aFx>4_nsT;BP4Ichfb!bhz`6cemY)X86{sax4sfm( za=%dw7@@pJo~*^z$GTyl<{X1=ynjFaoA-GXCn!KFw^}@44nACovh}i24&c2XA42tp z9(t0nPbQYJ5+DUgJGXaY$36QYQdJ|FcHI}4g!q&dSy>-CC&(v7GrKbdZbl%MvTVhb zC@tcaZ>SGdWn1y$8{5_K!pYN+mO`IWe?RKByobs`a#qwZ(xQbi>&z&bG!;3S4(7k5 z{hZH&G-oX3gxpF>l5~d5+PdL=EqRb56Nv+iGD9Gc63v{)KDQh8v^luu^7-hjEyI&* z-{69_(HQxI%K$C;X2j5Eb%=}AQ^D=5x0pMHMr2eQc=++jPi z9aR3Yp~y4|3+crnnVd*FZ;K19J2cKufP;D|1w10^vlPdWV-&w$${8Db(Y!HKkKaX0 z%s_@}4skPMkwhP0$!FJF-NQKuSPA#b7lK_-LV>X)EuyJR1`WfRrLJ>d7w5p^A{L+) zS3-wrk#h`4UFJkwGPBQ7`O~(shwgQ}m>eD>hEY}<>T@=?!fBc)z}M+T^Cs;+olt}v zH7fn(RHMLHIYDF|0)WArZ@xKLP*5PhlpvGcsCW5%^8Ts)YB0u;6iiEuIbxj7l(b-? z!#3);DabAD@G;7#hCh!zPg^i2H#^8(%wZ;n$D)Ziq1i z8J_C!I=n|*z>+q2_&CE#4S$a8pJAbb1i!=15$ulr-Nrtxhu4ud4eXQPH*zhF_!xt5 z~eJ()wq*a+l@Ul*#!APth2YWRAB;9=jx^Nk#fv}Iz# z!tlA_cj+Vc$T1I}5A~^kKML(mG1?FS)%|Buq~K+jU8X);t=1r)^`~l)IWQa@Q&9S- zw1{^&nG{H-BRMe!;O=ar$SXhvff;sN3`IQj7Vt25fyQX4YX`^;TABYhS|#=ACv(E> zQ8W=jYnpXvNX>}L^;9noA5vFpFFv=IT13j0>{i+e4xqPJ(=bL{c%)oU z1v8CkL4tfr?s4Jrlzfoqgi})-U&H_cO%&=CIpGAhI0=CK=gmWdsDV*G4^~8vp#}Au>%vJ0lBgQ7z zsksUlM~+p_NmQ8d)?MqALlF*@{TaoNH(ZbM$H?HS(w09w2jMWK$Q-1-4=%0H+R6V-EsD*K#JSV;mFiuH8|e(q@IBOSnY(5%R}IJa~*G= z;WqX6PXz_S&%;l}Wc5kv6woQ4Qy`K8r!)s>pf9kM+FDH{6q*(dyCeZ}IFYwjN5V^u zT_o^;Bp339QaH*ru{41((>N_aR?16dhmR&CA9s;$s0zu%j%0f_dJB9){mbrGwzlDI zp>Ss8f{szKvLv2Mdf5yHNYZC=ZBfx7ZgJWwkEZ{tj|<K#xZb80pvS%%Nh6;j+4RYVAqJyGSL+@VNC4It5OU0wDk# z^@~5jM*i8=6OxkA)zOY?Zu>p{^ZK*s2{FKR$yLbWr~6wEJwo!WuPLaXGUP0W02l7Avm*cVOma`1@Voz`|*hkmR7PpQi`4mHYAd?|+WF zA9;mY=u(-8sdcy&tKFeIPy7R3bTV>62vdj8AMb<4ApsK@62E}1V-nsgV*how3il-`Z=tUY`)2pQD zrhFz(lCb_X`Xc~(o4qR9iv%)=N~3LK3yqp*Ix+jRw5crQgNxoNVl3@uQlx4oJF0ly z8XF*I}*WRj>qbjY|NZed<5`~z9_mmi-#;&zxwxBQj)4pi#bhfY$lRYGcjdS3G9}u zaQh!OA}b{p4Q(!(&{$RGxMm4JC&kYFp4+8;9>=TX>Xj^Mc{dbd`qk-(rctq<9w1`a zW}O&~_#8%ZCR4lh|JoUJfOU@*sf5>)xdiVNA58R`A;)=SS|Yef%|(lW60jO8duPr#Ckug8ub{s6zY zuN8@AdK`ELaN31eVPQ!I`a9~e=IJNU;N_xX;LxovK8asG_KF66j5xFP_2=;CCtpIz zl1p*zW#=HlnS<+Y{t@o`Ht!PKM+YV>W#9vHp#9C{ z=AL65KqsSCGn<@^0Tl{X<`Mu8VA|)%`Q&rlg?w>?8(6jX~i>83e#eWhbbfY!Qsf#^$6@UA|HH-~N7q4_TF8lgdhA(+w*0~A*hupnb z{pD}s$>B3Au;mxC)VJ0H8*$?~S3r68-v39WzI6~+EiFcV$s}BRWi;;j2lEU^F|TaS zg?Qk%zrvEzOboiNL_wSvH{SUKvKVrtp*6%64!3{!2hpsGa>2HkarGFuK&*v3wzp#E zU%2IEv1V{vdQlP+3NhH{;%M}|!HCsj>`RU5(TYTbk%vKYu8qdo1VhHDw*e_k5h*}7%qoWvFq)yN%nWnI{V$r=9>m^P z)#Zo1B!7l3chVl^bRF+EW5>hdp4g^h?G-IyIDUd#2DjJZs%DO13eQ?M-u!-*YNKY8 z7w7!06iE!CY9&}oN#Y!=Om-C<7(^W-HkZFh|Kt~Y;Fw@X-t1V!5XjS5uZ7qvzQ2rK zrWc(8ABX~{GysOV6wzuhXWB3U&YM-BBD4r1bhV3fKQn;MoP`c|KIW`$ZB_-;!RkSL{D7%egL_*KHb576OXO8yt~7$}1IL#U20d_0G%|TpBiv;%jKIPu4~&dp;`~g7Hgc4#&psrnxfBU|ull6&W{~0k zrKDe)2?w{^%D9`T7fopc)3pr8Gm<)b(J64E6gZ^;P_0;*F*OMneDOidxR}wA8QX8- z#3E%@v6sn@ety@pfHM_MO-+h6k{d%SbaN96nx-Dq@ol<29r4_j5{b|&8If3eI$99V z3~#IdbQk~BA@yRXtj{Q0(HGX>RWEu3DF#Yxt6raVg@(k>t!pw&* z8`#WHR-3giP6iMiUBY=*Vg;auE|lq|ot~m;&^fHMc?n1%NUyuC3LbGsqk_a}Wy;bC z3`OSF!q`|G1V%Qj=4lF`{wZqMc{`+7$ifX!p+5V{48$>EQ$V7#9MG;4@RK6b7^El2 zgj*(H+GVN3$&TdsSfT*!O8r%*!1yR|Y6Bpbms((q-(E6(9yIhqt`8=$Fkqe;wfNdK z=i<@R&qCY!b*SJq@$?Jsbe({MX=otAoh8i5#L`vVGR81^OSK0v=?rzxF@^9h>l6PauEmM#*h0$#o8?VP>fFm=4Go=YiG)-)L^^A;7g+#c7NI*qL=on>*1B`!Y zCV+PAV@N5Qus9i9G=|`oJTHZE#8&KJ?%{ze2vD&mB+X63?5`2rDAde9Gl2nh*bXNk zoTrrNT!Jl+`RW6h^z9Pl%;Cd?Tkq~2UD)vu1)VHmqiBg9lXqze5+=vNKs%-G1}3S` z)V9g$#;e-;i%x+LPJvS#0EM^U`ttYTjptV5y|Qj5)K0+i3s!P>nuZnEd;Mwkqm0Py{0XGJztVm0a#YTc( zG(&Tx1YIf+s({D{q=c_J`nza+CCagil020GM=852|7#U0+if`gt2ruSZ5R-STOfv* z2w*Z`34Cx^Upy?SBaQLVNJ%v^r$#S!{c0cLFPThxI)X>IGCA0xPpZGZb``2MfT)i?|neh0OG z{V}o~4oqKqA&;$wFItNd9Ukb&jJ0iMM|U0ixKJIm1+j^79*d0uR%@%9u=46#arue` zG)!*5qYwWSZ*S{`jWVx62EA)(5rID!HRBTc6D3C)lQyX%<9ksXVO}7@d{1>R4*i`8 zfS&6^_E*UD@R$HbcuS}n=D;O@lfP3Nx5Umfh<#qTQ+by<1aFD3y#0=HbZ}=m?>a$7 zZA{Xvd=7J#8Xv7L(<+2sr5}OUrk5%2WHIGO!Bjnj`Yr94bV({=DBFu>kW^`}?5>04 z(h870oi2n7rrO`u4nLBrf{5DU&ur0MdTPME9|dxW6!VmqlsO_ zkUR7;edX{tIe_k+?bvgF1?qPUVcH@hf9S@EMx3P9i%x+LK!K6fe~NQ}BXhS{v-w2> zz+hV&h4Z1+t{hnfM@A+sSB-ExL1ggzd-d(;>h4E&40B$TPG{ycF6v$Tq$*Z@;Vby! zc~d2PGWNZDj{?A?)HKx9H^an)O5eTWY;=`x#QlGLksMmH0Ur zN%Gyjy-k6i^ck1HghE{85{}BRv8I9_3LJurVwV5eB$&L^^gi3II3}^%lam9z45CWJ zG|;cP;z14k2wn8LU`}IJ5nZto1~BAfIK`**r%D8glucpKg2nevL@Kq%y?ffR?mJZ) zm&QPf5{+6YJR~`X`EDW+_uo^&7~NVi(ro4I|ISmKpo```^?T)b0Eri8QSO%x8(s7I z8{F7+&u&z0(ZF1RA8SccB#E6GMb@|B`5Fa&a<$z_045Cv#lBGoKOu=;J`e>$*uZN; z0622s1GV=FUL+$o&@U^e=qz0Kg^4JdI2kLixDtg9k#`NDrFxGVon3sgSi)Rm_?^~w zO#G98ruQDh`&<4E(=M8atm%vK{1Xr0+uyneE57vuTzHx$U2LeW#@nmu1(H;VKz$`! zTY_gE{6DN*R19xN4N8)~jBow=Rb(W^lA}2`2#N`e;7#97MlbHkge@)#iStr1c|{*u z4DrliL9-NA=qbs7DVf3X0dILyU=v3Y$jtQ|ynI4bW6bti?^rPXG2305Vf($IY zK8u_+y+R}m{#&hZSsW-_MGdtIXB9y0+D_gx7d>#2X;aDjdPzRD$%kNGl8e+rZh!eO z@DWfO*&@kAk%4Mjf6*!MfhcfFa)3&6%IQXN3o6SVQBGX)r62I`a2nL@dk4S1;iptN zCc)jS0aBD%Qv^ga>9)4Dq}JDMRY}vo{EG*$a7Hnv<~p&Axklb!bpsV58i@j~X8hxk zUt%k}$m7DRkzL`+S>zUrRi`mYd6>6gEp`On7c&+DRh@THUC5QlNuCCz#4%szSEP$nye<;^`qJAQ42#vF%^m zMkTrhc5e-3Z8f%V;LzHLMJX?>w zYc+PQWMwK9F*Jmxr-+dNoqK5>@~J9;yrV7o7qj3Y?MvI3&3cS-M)9(9+sLnV7Is-1hM= zNH)gP+ksu1*W(voyBY7WUP25bMEiu_qIqs(Bf9%i&{5xnE=_!g{;nq2QZmr9{{L{n zEk->2U*EutqAW(3=E9~zq_epSf4%>wxc%2_=u(!9+PYSdxk207cd&We4kXPd2iRVN zb+5ju`snLDGD3|yG3rI!;216*6~8N|G9ZXTa&=~civ$Ajbq%5QomRa6TLKJoUj!-h z3s7sz4Ir9#_Q6j1nRt7&FtLwtZANlqLql@jk9U812n)ZNkCY-wm`-v!8jWJElkprOo!%qgHh#KkK79OS z-oD!Kb=_Xim*a&z-^k|HmU)=HORF`WC#3Wp!LhKqGQBm^dA(}Z-{iU@t^j;+w@*G^Sa=j%5>@e`3{6CPgZ79f1T^5z6ZCANcEHkqE3oOXC6?19iB^EpTxSmR%ob%fd+N zN56j|+uC}x3`^+8{%-VnKh@Xn!un|-zwFOL_Xr%sJ%evwvgGpihTnlJH;F~O!Qt+8ychz6uThsSn24#Vg%H2^jI-j9%5-U{p3 zHqFY0DyuftP0O+dT+kx7(r8$66PHu$!YiQ03ypaONTm)WfI|OabcjRSR^a0I0G78x zVR^VzxFZ5HIR$oOHVDUb!FY5<0kNGXNBRF*z#x|(&H)(*>uGLtHSB(jWJ(E`qPf%p zxxyO*$&SvB52FOrz@m%>{pbX#H5omcggiC*IfYPdr*k9-COkqtgNic5)O7;aXX|=K zHVnznwIvB6LYQ4Qv&oLIP{!OEH?Eg~keDXZ$~EL<6A=M2J7vbFJ%7j;g~hfcQjCE+ z+=iT0ypM4Pzl!vE#h+OpH+~W`*ZzEI^Wcf z2cY}sNR~9gQHv2G$DCw7yf^8axSrM*$)l`8Mh3SwV;fj)w5TSMG8jo-*L`Dz%I!15 zib9zK<28j?i!e0Pr|7GuLZA!*exFN(fDjM@bBRDkfSh#kk_Z7IAOxz8K+bi61vus0 zr0N)Hd_q77R1|@n>oNk&D=Io-4NC|J0U>Y&fxrU1a!(aPKnMtdN+Tcwtn{x}gA)Qm z;5GzAfVZKedqO}6R2qS?bAT~j1t1N?#B=3Jk6wcl0zzOe5Fn=w2B}w6IABkJjL30- zIC_-x^9fD>hgwt?0zyCt++zeB`CTG_NGO&78AS!o!qN8jHax@-I+Pywr9Mlc8kL2B z5D)_Q7Xfk_$*Compare crypto currencies using CryptoCompare.

+

cryptolive screenshot

+

Source Code

wtf/cryptoexchanges/cryptolive/

Required ENV Vars

From f619a904faaa59a6b6f43c99e74f02290936dfd3 Mon Sep 17 00:00:00 2001 From: Chris Cummer Date: Tue, 5 Jun 2018 13:08:44 -0700 Subject: [PATCH 032/158] Order modules in alphabetical order --- cryptoexchanges/bittrex/bittrex.go | 49 ++++++++ cryptoexchanges/bittrex/display.go | 65 ++++++++++ cryptoexchanges/bittrex/widget.go | 187 +++++++++++++++++++++++++++++ wtf.go | 1 + 4 files changed, 302 insertions(+) create mode 100644 cryptoexchanges/bittrex/bittrex.go create mode 100644 cryptoexchanges/bittrex/display.go create mode 100644 cryptoexchanges/bittrex/widget.go diff --git a/cryptoexchanges/bittrex/bittrex.go b/cryptoexchanges/bittrex/bittrex.go new file mode 100644 index 00000000..d4f4eed4 --- /dev/null +++ b/cryptoexchanges/bittrex/bittrex.go @@ -0,0 +1,49 @@ +package bittrex + +type summaryList struct { + items []*fCurrency +} + +// fCurrency From Currency +type fCurrency struct { + name string + displayName string + to []*tCurrency +} + +// tCurrency To Currency +type tCurrency struct { + name string + summaryInfo +} + +type summaryInfo struct { + Low string + High string + Volume string + Last string + OpenSellOrders string + OpenBuyOrders string +} + +type summaryResponse struct { + Success bool `json:"success"` + Message string `json:"message"` + Result []struct { + MarketName string `json:"MarketName"` + High float64 `json:"High"` + Low float64 `json:"Low"` + Last float64 `json:"Last"` + Volume float64 `json:"Volume"` + OpenSellOrders int `json:"OpenSellOrders"` + OpenBuyOrders int `json:"OpenBuyOrders"` + } `json:"result"` +} + +func (list *summaryList) addSummaryItem(name, displayName string, toList []*tCurrency) { + list.items = append(list.items, &fCurrency{ + name: name, + displayName: displayName, + to: toList, + }) +} diff --git a/cryptoexchanges/bittrex/display.go b/cryptoexchanges/bittrex/display.go new file mode 100644 index 00000000..28c368e5 --- /dev/null +++ b/cryptoexchanges/bittrex/display.go @@ -0,0 +1,65 @@ +package bittrex + +import ( + "bytes" + "fmt" + "text/template" +) + +func (widget *Widget) display() { + if ok == false { + widget.View.SetText(fmt.Sprintf("%s", errorText)) + return + } + + str := "" + str += summaryText(&widget.summaryList, &widget.TextColors) + + widget.View.SetText(fmt.Sprintf("%s", str)) +} + +func summaryText(list *summaryList, colors *TextColors) string { + str := "" + + for _, fromCurrency := range list.items { + str += fmt.Sprintf("[%s]%s[%s](%s):\n", colors.base.displayName, fromCurrency.displayName, colors.base.name, fromCurrency.name) + + resultTemplate := template.New("bittrex") + + for _, toCurrency := range fromCurrency.to { + writer := new(bytes.Buffer) + strTemplate, _ := resultTemplate.Parse( + "\t[{{.nameColor}}]{{.mName}}\n" + + formatableText("High", "High") + + formatableText("Low", "Low") + + formatableText("Last", "Last") + + formatableText("Volume", "Volume") + + formatableText("OpenSellOrders", "OpenSellOrders") + + formatableText("OpenBuyOrders", "OpenBuyOrders"), + ) + + strTemplate.Execute(writer, map[string]string{ + "nameColor": colors.market.name, + "fieldColor": colors.market.field, + "valueColor": colors.market.value, + "mName": toCurrency.name, + "High": toCurrency.High, + "Low": toCurrency.Low, + "Last": toCurrency.Last, + "Volume": toCurrency.Volume, + "OpenSellOrders": toCurrency.OpenSellOrders, + "OpenBuyOrders": toCurrency.OpenBuyOrders, + }) + + str += writer.String() + } + + } + + return str + +} + +func formatableText(key, value string) string { + return fmt.Sprintf("\t\t[{{.fieldColor}}]%s: [{{.valueColor}}]{{.%s}}\n", key, value) +} diff --git a/cryptoexchanges/bittrex/widget.go b/cryptoexchanges/bittrex/widget.go new file mode 100644 index 00000000..9f5039dd --- /dev/null +++ b/cryptoexchanges/bittrex/widget.go @@ -0,0 +1,187 @@ +package bittrex + +import ( + "encoding/json" + "fmt" + "time" + + "net/http" + + "github.com/olebedev/config" + "github.com/senorprogrammer/wtf/wtf" +) + +// Config is a pointer to the global config object +var Config *config.Config + +type TextColors struct { + base struct { + name string + displayName string + } + market struct { + name string + field string + value string + } +} + +var ok = true +var errorText = "" +var started = false +var baseURL = "https://bittrex.com/api/v1.1/public/getmarketsummary" + +// Widget define wtf widget to register widget later +type Widget struct { + wtf.TextWidget + summaryList + updateInterval int + TextColors +} + +// NewWidget Make new instance of widget +func NewWidget() *Widget { + + widget := Widget{ + TextWidget: wtf.NewTextWidget(" $ Bittrex ", "bittrex", false), + summaryList: summaryList{}, + updateInterval: Config.UInt("wtf.mods.bittrex.updateInterval", 10), + } + + started = false + ok = true + errorText = "" + + widget.config() + widget.setSummaryList() + + return &widget +} + +func (widget *Widget) config() { + widget.TextColors.base.name = Config.UString("wtf.mods.bittrex.colors.base.name", "red") + widget.TextColors.base.displayName = Config.UString("wtf.mods.bittrex.colors.base.displayName", "grey") + widget.TextColors.market.name = Config.UString("wtf.mods.bittrex.colors.market.name", "red") + widget.TextColors.market.field = Config.UString("wtf.mods.bittrex.colors.market.field", "coral") + widget.TextColors.market.value = Config.UString("wtf.mods.bittrex.colors.market.value", "white") +} + +func (widget *Widget) setSummaryList() { + sCurrencies, _ := Config.Map("wtf.mods.bittrex.summary") + for fromCurrencyName := range sCurrencies { + displayName, _ := Config.String("wtf.mods.bittrex.summary." + fromCurrencyName + ".displayName") + toCurrencyList := makeSummaryToList(fromCurrencyName) + widget.summaryList.addSummaryItem(fromCurrencyName, displayName, toCurrencyList) + } +} + +func makeSummaryToList(currencyName string) []*tCurrency { + tCurrencyList := []*tCurrency{} + + configToList, _ := Config.List("wtf.mods.bittrex.summary." + currencyName + ".market") + for _, toCurrencyName := range configToList { + tCurrencyList = append(tCurrencyList, makeToCurrency(toCurrencyName.(string))) + } + + return tCurrencyList +} + +func makeToCurrency(name string) *tCurrency { + return &tCurrency{ + name: name, + summaryInfo: summaryInfo{ + High: "-1", + Low: "-1", + Volume: "-1", + Last: "-1", + OpenBuyOrders: "-1", + OpenSellOrders: "-1", + }, + } +} + +/* -------------------- Exported Functions -------------------- */ + +// Refresh & update after interval time +func (widget *Widget) Refresh() { + if widget.Disabled() { + return + } + + if started == false { + go func() { + for { + widget.updateSummary() + time.Sleep(time.Second * time.Duration(widget.updateInterval)) + } + }() + started = true + } + + widget.UpdateRefreshedAt() + + widget.display() + +} + +/* -------------------- Unexported Functions -------------------- */ + +func (widget *Widget) updateSummary() { + client := &http.Client{ + Timeout: time.Duration(5 * time.Second), + } + + for _, fromCurrency := range widget.summaryList.items { + for _, toCurrency := range fromCurrency.to { + request := makeRequest(fromCurrency.name, toCurrency.name) + response, err := client.Do(request) + + if err != nil { + ok = false + errorText = "Please Check Your Internet Connection!" + break + } else { + ok = true + errorText = "" + } + + if response.StatusCode != http.StatusOK { + errorText = response.Status + ok = false + break + } else { + ok = true + errorText = "" + } + + defer response.Body.Close() + jsonResponse := summaryResponse{} + decoder := json.NewDecoder(response.Body) + decoder.Decode(&jsonResponse) + + if !jsonResponse.Success { + ok = false + errorText = fmt.Sprintf("%s-%s: %s", fromCurrency.name, toCurrency.name, jsonResponse.Message) + break + } + ok = true + errorText = "" + + toCurrency.Last = fmt.Sprintf("%f", jsonResponse.Result[0].Last) + toCurrency.High = fmt.Sprintf("%f", jsonResponse.Result[0].High) + toCurrency.Low = fmt.Sprintf("%f", jsonResponse.Result[0].Low) + toCurrency.Volume = fmt.Sprintf("%f", jsonResponse.Result[0].Volume) + toCurrency.OpenBuyOrders = fmt.Sprintf("%d", jsonResponse.Result[0].OpenBuyOrders) + toCurrency.OpenSellOrders = fmt.Sprintf("%d", jsonResponse.Result[0].OpenSellOrders) + } + } + + widget.display() +} + +func makeRequest(fName, tName string) *http.Request { + url := fmt.Sprintf("%s?market=%s-%s", baseURL, fName, tName) + request, _ := http.NewRequest("GET", url, nil) + + return request +} diff --git a/wtf.go b/wtf.go index a7c70b4c..660e458c 100644 --- a/wtf.go +++ b/wtf.go @@ -13,6 +13,7 @@ import ( "github.com/senorprogrammer/wtf/bamboohr" "github.com/senorprogrammer/wtf/clocks" "github.com/senorprogrammer/wtf/cmdrunner" + "github.com/senorprogrammer/wtf/cryptoexchanges/bittrex" "github.com/senorprogrammer/wtf/cryptoexchanges/cryptolive" "github.com/senorprogrammer/wtf/gcal" "github.com/senorprogrammer/wtf/git" From 0ffeab9c8d9ec8ba25b59c3480feccd4bc6b6dec Mon Sep 17 00:00:00 2001 From: Hossein Mehrabi Date: Mon, 4 Jun 2018 06:29:58 +0430 Subject: [PATCH 033/158] avoid panics --- cryptoexchanges/bittrex/widget.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/cryptoexchanges/bittrex/widget.go b/cryptoexchanges/bittrex/widget.go index 9f5039dd..dc85f3e2 100644 --- a/cryptoexchanges/bittrex/widget.go +++ b/cryptoexchanges/bittrex/widget.go @@ -127,6 +127,11 @@ func (widget *Widget) Refresh() { /* -------------------- Unexported Functions -------------------- */ func (widget *Widget) updateSummary() { + // In case if anything bad happened! + defer func() { + recover() + }() + client := &http.Client{ Timeout: time.Duration(5 * time.Second), } From 16c6dffebabeb258a099ff193ab91bbd4c0b1712 Mon Sep 17 00:00:00 2001 From: Hossein Mehrabi Date: Mon, 4 Jun 2018 06:57:37 +0430 Subject: [PATCH 034/158] better variable names --- cryptoexchanges/bittrex/bittrex.go | 18 +++++------ cryptoexchanges/bittrex/display.go | 20 ++++++------- cryptoexchanges/bittrex/widget.go | 48 +++++++++++++++--------------- 3 files changed, 43 insertions(+), 43 deletions(-) diff --git a/cryptoexchanges/bittrex/bittrex.go b/cryptoexchanges/bittrex/bittrex.go index d4f4eed4..c06f65cb 100644 --- a/cryptoexchanges/bittrex/bittrex.go +++ b/cryptoexchanges/bittrex/bittrex.go @@ -1,18 +1,18 @@ package bittrex type summaryList struct { - items []*fCurrency + items []*bCurrency } -// fCurrency From Currency -type fCurrency struct { +// Base Currency +type bCurrency struct { name string displayName string - to []*tCurrency + markets []*mCurrency } -// tCurrency To Currency -type tCurrency struct { +// Market Currency +type mCurrency struct { name string summaryInfo } @@ -40,10 +40,10 @@ type summaryResponse struct { } `json:"result"` } -func (list *summaryList) addSummaryItem(name, displayName string, toList []*tCurrency) { - list.items = append(list.items, &fCurrency{ +func (list *summaryList) addSummaryItem(name, displayName string, marketList []*mCurrency) { + list.items = append(list.items, &bCurrency{ name: name, displayName: displayName, - to: toList, + markets: marketList, }) } diff --git a/cryptoexchanges/bittrex/display.go b/cryptoexchanges/bittrex/display.go index 28c368e5..29cc6124 100644 --- a/cryptoexchanges/bittrex/display.go +++ b/cryptoexchanges/bittrex/display.go @@ -21,12 +21,12 @@ func (widget *Widget) display() { func summaryText(list *summaryList, colors *TextColors) string { str := "" - for _, fromCurrency := range list.items { - str += fmt.Sprintf("[%s]%s[%s](%s):\n", colors.base.displayName, fromCurrency.displayName, colors.base.name, fromCurrency.name) + for _, baseCurrency := range list.items { + str += fmt.Sprintf("[%s]%s[%s](%s):\n", colors.base.displayName, baseCurrency.displayName, colors.base.name, baseCurrency.name) resultTemplate := template.New("bittrex") - for _, toCurrency := range fromCurrency.to { + for _, marketCurrency := range baseCurrency.markets { writer := new(bytes.Buffer) strTemplate, _ := resultTemplate.Parse( "\t[{{.nameColor}}]{{.mName}}\n" + @@ -42,13 +42,13 @@ func summaryText(list *summaryList, colors *TextColors) string { "nameColor": colors.market.name, "fieldColor": colors.market.field, "valueColor": colors.market.value, - "mName": toCurrency.name, - "High": toCurrency.High, - "Low": toCurrency.Low, - "Last": toCurrency.Last, - "Volume": toCurrency.Volume, - "OpenSellOrders": toCurrency.OpenSellOrders, - "OpenBuyOrders": toCurrency.OpenBuyOrders, + "mName": marketCurrency.name, + "High": marketCurrency.High, + "Low": marketCurrency.Low, + "Last": marketCurrency.Last, + "Volume": marketCurrency.Volume, + "OpenSellOrders": marketCurrency.OpenSellOrders, + "OpenBuyOrders": marketCurrency.OpenBuyOrders, }) str += writer.String() diff --git a/cryptoexchanges/bittrex/widget.go b/cryptoexchanges/bittrex/widget.go index dc85f3e2..fd5c04ed 100644 --- a/cryptoexchanges/bittrex/widget.go +++ b/cryptoexchanges/bittrex/widget.go @@ -68,26 +68,26 @@ func (widget *Widget) config() { func (widget *Widget) setSummaryList() { sCurrencies, _ := Config.Map("wtf.mods.bittrex.summary") - for fromCurrencyName := range sCurrencies { - displayName, _ := Config.String("wtf.mods.bittrex.summary." + fromCurrencyName + ".displayName") - toCurrencyList := makeSummaryToList(fromCurrencyName) - widget.summaryList.addSummaryItem(fromCurrencyName, displayName, toCurrencyList) + for baseCurrencyName := range sCurrencies { + displayName, _ := Config.String("wtf.mods.bittrex.summary." + baseCurrencyName + ".displayName") + mCurrencyList := makeSummaryMarketList(baseCurrencyName) + widget.summaryList.addSummaryItem(baseCurrencyName, displayName, mCurrencyList) } } -func makeSummaryToList(currencyName string) []*tCurrency { - tCurrencyList := []*tCurrency{} +func makeSummaryMarketList(currencyName string) []*mCurrency { + mCurrencyList := []*mCurrency{} - configToList, _ := Config.List("wtf.mods.bittrex.summary." + currencyName + ".market") - for _, toCurrencyName := range configToList { - tCurrencyList = append(tCurrencyList, makeToCurrency(toCurrencyName.(string))) + configMarketList, _ := Config.List("wtf.mods.bittrex.summary." + currencyName + ".market") + for _, mCurrencyName := range configMarketList { + mCurrencyList = append(mCurrencyList, makeMarketCurrency(mCurrencyName.(string))) } - return tCurrencyList + return mCurrencyList } -func makeToCurrency(name string) *tCurrency { - return &tCurrency{ +func makeMarketCurrency(name string) *mCurrency { + return &mCurrency{ name: name, summaryInfo: summaryInfo{ High: "-1", @@ -136,9 +136,9 @@ func (widget *Widget) updateSummary() { Timeout: time.Duration(5 * time.Second), } - for _, fromCurrency := range widget.summaryList.items { - for _, toCurrency := range fromCurrency.to { - request := makeRequest(fromCurrency.name, toCurrency.name) + for _, baseCurrency := range widget.summaryList.items { + for _, mCurrency := range baseCurrency.markets { + request := makeRequest(baseCurrency.name, mCurrency.name) response, err := client.Do(request) if err != nil { @@ -166,26 +166,26 @@ func (widget *Widget) updateSummary() { if !jsonResponse.Success { ok = false - errorText = fmt.Sprintf("%s-%s: %s", fromCurrency.name, toCurrency.name, jsonResponse.Message) + errorText = fmt.Sprintf("%s-%s: %s", baseCurrency.name, mCurrency.name, jsonResponse.Message) break } ok = true errorText = "" - toCurrency.Last = fmt.Sprintf("%f", jsonResponse.Result[0].Last) - toCurrency.High = fmt.Sprintf("%f", jsonResponse.Result[0].High) - toCurrency.Low = fmt.Sprintf("%f", jsonResponse.Result[0].Low) - toCurrency.Volume = fmt.Sprintf("%f", jsonResponse.Result[0].Volume) - toCurrency.OpenBuyOrders = fmt.Sprintf("%d", jsonResponse.Result[0].OpenBuyOrders) - toCurrency.OpenSellOrders = fmt.Sprintf("%d", jsonResponse.Result[0].OpenSellOrders) + mCurrency.Last = fmt.Sprintf("%f", jsonResponse.Result[0].Last) + mCurrency.High = fmt.Sprintf("%f", jsonResponse.Result[0].High) + mCurrency.Low = fmt.Sprintf("%f", jsonResponse.Result[0].Low) + mCurrency.Volume = fmt.Sprintf("%f", jsonResponse.Result[0].Volume) + mCurrency.OpenBuyOrders = fmt.Sprintf("%d", jsonResponse.Result[0].OpenBuyOrders) + mCurrency.OpenSellOrders = fmt.Sprintf("%d", jsonResponse.Result[0].OpenSellOrders) } } widget.display() } -func makeRequest(fName, tName string) *http.Request { - url := fmt.Sprintf("%s?market=%s-%s", baseURL, fName, tName) +func makeRequest(baseName, marketName string) *http.Request { + url := fmt.Sprintf("%s?market=%s-%s", baseURL, baseName, marketName) request, _ := http.NewRequest("GET", url, nil) return request From 8198557b25aa208e4dd10b57e0a61cc951efc79d Mon Sep 17 00:00:00 2001 From: Hossein Mehrabi Date: Mon, 4 Jun 2018 20:13:40 +0430 Subject: [PATCH 035/158] fixed cryptolive docs --- _site/content/posts/modules/cryptocurrencies/cryptolive.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_site/content/posts/modules/cryptocurrencies/cryptolive.md b/_site/content/posts/modules/cryptocurrencies/cryptolive.md index 33e3f96a..97b857e6 100644 --- a/_site/content/posts/modules/cryptocurrencies/cryptolive.md +++ b/_site/content/posts/modules/cryptocurrencies/cryptolive.md @@ -84,6 +84,6 @@ Values: `true`, `false`. `position`
Defines where in the grid this module's widget will be displayed.
-`refreshInterval`
+`updateInterval`
How often, in seconds, this module will update its data.
Values: A positive integer, `0..n`. From f381e130bb2a7dd9760f8f3505415a69f6cb0d32 Mon Sep 17 00:00:00 2001 From: Hossein Mehrabi Date: Mon, 4 Jun 2018 20:53:03 +0430 Subject: [PATCH 036/158] replaced updateInterval with refreshInterval --- _site/content/posts/modules/cryptocurrencies/cryptolive.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_site/content/posts/modules/cryptocurrencies/cryptolive.md b/_site/content/posts/modules/cryptocurrencies/cryptolive.md index 97b857e6..33e3f96a 100644 --- a/_site/content/posts/modules/cryptocurrencies/cryptolive.md +++ b/_site/content/posts/modules/cryptocurrencies/cryptolive.md @@ -84,6 +84,6 @@ Values: `true`, `false`. `position`
Defines where in the grid this module's widget will be displayed.
-`updateInterval`
+`refreshInterval`
How often, in seconds, this module will update its data.
Values: A positive integer, `0..n`. From 57e3a01b3a6a5dee00ce6c243e4be03a8107774c Mon Sep 17 00:00:00 2001 From: Hossein Mehrabi Date: Mon, 4 Jun 2018 20:59:07 +0430 Subject: [PATCH 037/158] replaced updateInterval with refreshInterval --- _site/content/posts/modules/cryptocurrencies/bittrex.md | 4 ++-- cryptoexchanges/bittrex/widget.go | 8 +++----- docs/posts/modules/bittrex/index.html | 2 +- 3 files changed, 6 insertions(+), 8 deletions(-) diff --git a/_site/content/posts/modules/cryptocurrencies/bittrex.md b/_site/content/posts/modules/cryptocurrencies/bittrex.md index 4e7316fa..99fc7272 100644 --- a/_site/content/posts/modules/cryptocurrencies/bittrex.md +++ b/_site/content/posts/modules/cryptocurrencies/bittrex.md @@ -32,7 +32,7 @@ bittrex: left: 2 height: 3 width: 1 - updateInterval: 5 + refreshInterval: 5 summary: BTC: displayName: Bitcoin @@ -80,6 +80,6 @@ Values: `true`, `false`. `position`
Defines where in the grid this module's widget will be displayed.
-`updateInterval`
+`refreshInterval`
How often, in seconds, this module will update its data.
Values: A positive integer, `0..n`. diff --git a/cryptoexchanges/bittrex/widget.go b/cryptoexchanges/bittrex/widget.go index fd5c04ed..264b2cd3 100644 --- a/cryptoexchanges/bittrex/widget.go +++ b/cryptoexchanges/bittrex/widget.go @@ -35,7 +35,6 @@ var baseURL = "https://bittrex.com/api/v1.1/public/getmarketsummary" type Widget struct { wtf.TextWidget summaryList - updateInterval int TextColors } @@ -43,9 +42,8 @@ type Widget struct { func NewWidget() *Widget { widget := Widget{ - TextWidget: wtf.NewTextWidget(" $ Bittrex ", "bittrex", false), - summaryList: summaryList{}, - updateInterval: Config.UInt("wtf.mods.bittrex.updateInterval", 10), + TextWidget: wtf.NewTextWidget(" $ Bittrex ", "bittrex", false), + summaryList: summaryList{}, } started = false @@ -112,7 +110,7 @@ func (widget *Widget) Refresh() { go func() { for { widget.updateSummary() - time.Sleep(time.Second * time.Duration(widget.updateInterval)) + time.Sleep(time.Second * time.Duration(widget.RefreshInterval())) } }() started = true diff --git a/docs/posts/modules/bittrex/index.html b/docs/posts/modules/bittrex/index.html index 13817360..8ab9753c 100644 --- a/docs/posts/modules/bittrex/index.html +++ b/docs/posts/modules/bittrex/index.html @@ -180,7 +180,7 @@ left: 2 height: 1 width: 1 - updateInterval: 15 + refreshInterval: 15 summary: BTC: displayName: Bitcoin From 71df0c59e00963ad108428e701f3e85c6342721a Mon Sep 17 00:00:00 2001 From: Chris Cummer Date: Mon, 4 Jun 2018 20:45:33 -0700 Subject: [PATCH 038/158] Clean up the formatting of the text in Bittrex module --- cryptoexchanges/bittrex/display.go | 16 +++++++++------- cryptoexchanges/bittrex/widget.go | 14 +++++++------- 2 files changed, 16 insertions(+), 14 deletions(-) diff --git a/cryptoexchanges/bittrex/display.go b/cryptoexchanges/bittrex/display.go index 29cc6124..2718e0f7 100644 --- a/cryptoexchanges/bittrex/display.go +++ b/cryptoexchanges/bittrex/display.go @@ -22,20 +22,22 @@ func summaryText(list *summaryList, colors *TextColors) string { str := "" for _, baseCurrency := range list.items { - str += fmt.Sprintf("[%s]%s[%s](%s):\n", colors.base.displayName, baseCurrency.displayName, colors.base.name, baseCurrency.name) + str += fmt.Sprintf(" [%s]%s[%s] (%s)\n\n", colors.base.displayName, baseCurrency.displayName, colors.base.name, baseCurrency.name) resultTemplate := template.New("bittrex") for _, marketCurrency := range baseCurrency.markets { writer := new(bytes.Buffer) + strTemplate, _ := resultTemplate.Parse( - "\t[{{.nameColor}}]{{.mName}}\n" + + " [{{.nameColor}}]{{.mName}}\n" + formatableText("High", "High") + formatableText("Low", "Low") + formatableText("Last", "Last") + formatableText("Volume", "Volume") + - formatableText("OpenSellOrders", "OpenSellOrders") + - formatableText("OpenBuyOrders", "OpenBuyOrders"), + "\n" + + formatableText("Open Buy", "OpenBuyOrders") + + formatableText("Open Sell", "OpenSellOrders"), ) strTemplate.Execute(writer, map[string]string{ @@ -47,11 +49,11 @@ func summaryText(list *summaryList, colors *TextColors) string { "Low": marketCurrency.Low, "Last": marketCurrency.Last, "Volume": marketCurrency.Volume, - "OpenSellOrders": marketCurrency.OpenSellOrders, "OpenBuyOrders": marketCurrency.OpenBuyOrders, + "OpenSellOrders": marketCurrency.OpenSellOrders, }) - str += writer.String() + str += writer.String() + "\n" } } @@ -61,5 +63,5 @@ func summaryText(list *summaryList, colors *TextColors) string { } func formatableText(key, value string) string { - return fmt.Sprintf("\t\t[{{.fieldColor}}]%s: [{{.valueColor}}]{{.%s}}\n", key, value) + return fmt.Sprintf("[{{.fieldColor}}]%12s: [{{.valueColor}}]{{.%s}}\n", key, value) } diff --git a/cryptoexchanges/bittrex/widget.go b/cryptoexchanges/bittrex/widget.go index 264b2cd3..3f6f4d92 100644 --- a/cryptoexchanges/bittrex/widget.go +++ b/cryptoexchanges/bittrex/widget.go @@ -42,7 +42,7 @@ type Widget struct { func NewWidget() *Widget { widget := Widget{ - TextWidget: wtf.NewTextWidget(" $ Bittrex ", "bittrex", false), + TextWidget: wtf.NewTextWidget(" Bittrex ", "bittrex", false), summaryList: summaryList{}, } @@ -88,12 +88,12 @@ func makeMarketCurrency(name string) *mCurrency { return &mCurrency{ name: name, summaryInfo: summaryInfo{ - High: "-1", - Low: "-1", - Volume: "-1", - Last: "-1", - OpenBuyOrders: "-1", - OpenSellOrders: "-1", + High: "", + Low: "", + Volume: "", + Last: "", + OpenBuyOrders: "", + OpenSellOrders: "", }, } } From 8bec2e64958b4c2a5dde1798afa89d5cf28e3fec Mon Sep 17 00:00:00 2001 From: Chris Cummer Date: Mon, 4 Jun 2018 20:50:38 -0700 Subject: [PATCH 039/158] Add Bittrex to the documentation sidebar --- .../posts/modules/cryptocurrencies/bittrex.md | 8 +- _site/static/imgs/modules/bittrex.png | Bin 0 -> 89091 bytes .../hyde-hyde/layouts/partials/sidebar.html | 1 + docs/404.html | 1 + docs/categories/index.html | 1 + docs/imgs/modules/bittrex.png | Bin 0 -> 89091 bytes docs/index.html | 1 + docs/index.xml | 20 +- .../posts/configuration/attributes/index.html | 1 + docs/posts/configuration/index.html | 1 + docs/posts/configuration/iterm2/index.html | 1 + docs/posts/glossary/index.html | 1 + docs/posts/index.html | 8 + docs/posts/index.xml | 20 +- docs/posts/installation/index.html | 1 + docs/posts/modules/bamboohr/index.html | 1 + docs/posts/modules/clocks/index.html | 1 + docs/posts/modules/cmdrunner/index.html | 1 + .../cryptocurrencies/bittrex/index.html | 201 ++++++++++++++++++ .../cryptocurrencies/cryptolive/index.html | 1 + docs/posts/modules/gcal/index.html | 1 + docs/posts/modules/git/index.html | 1 + docs/posts/modules/github/index.html | 1 + docs/posts/modules/index.html | 1 + docs/posts/modules/ipinfo/index.html | 1 + docs/posts/modules/jira/index.html | 1 + docs/posts/modules/newrelic/index.html | 1 + docs/posts/modules/opsgenie/index.html | 1 + docs/posts/modules/power/index.html | 1 + docs/posts/modules/prettyweather/index.html | 1 + docs/posts/modules/security/index.html | 1 + docs/posts/modules/textfile/index.html | 1 + docs/posts/modules/todo/index.html | 1 + docs/posts/modules/weather/index.html | 1 + docs/posts/overview/index.html | 1 + docs/sitemap.xml | 9 +- docs/tags/index.html | 1 + 37 files changed, 288 insertions(+), 7 deletions(-) create mode 100644 _site/static/imgs/modules/bittrex.png create mode 100644 docs/imgs/modules/bittrex.png create mode 100644 docs/posts/modules/cryptocurrencies/bittrex/index.html diff --git a/_site/content/posts/modules/cryptocurrencies/bittrex.md b/_site/content/posts/modules/cryptocurrencies/bittrex.md index 99fc7272..df5fc610 100644 --- a/_site/content/posts/modules/cryptocurrencies/bittrex.md +++ b/_site/content/posts/modules/cryptocurrencies/bittrex.md @@ -8,6 +8,8 @@ Added in `v0.0.5`. Get the last 24 hour summary of cryptocurrencies market using [Bittrex](https://bittrex.com). +bittrex screenshot + ## Source Code ```bash @@ -33,14 +35,14 @@ bittrex: height: 3 width: 1 refreshInterval: 5 - summary: + summary: BTC: displayName: Bitcoin market: - LTC - ETH - colors: - base: + colors: + base: name: orange displayName: red market: diff --git a/_site/static/imgs/modules/bittrex.png b/_site/static/imgs/modules/bittrex.png new file mode 100644 index 0000000000000000000000000000000000000000..669139d30ef09c45ddca1425763cdb53d96ad067 GIT binary patch literal 89091 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 TL0W4b00000NkvXXu0mjfiH=wN literal 0 HcmV?d00001 diff --git a/_site/themes/hyde-hyde/layouts/partials/sidebar.html b/_site/themes/hyde-hyde/layouts/partials/sidebar.html index dbf4b12b..5d1c6bc4 100644 --- a/_site/themes/hyde-hyde/layouts/partials/sidebar.html +++ b/_site/themes/hyde-hyde/layouts/partials/sidebar.html @@ -23,6 +23,7 @@