From 4c553d5676bc5d7b898d83fe3975733a4e41e095 Mon Sep 17 00:00:00 2001 From: Ilya Date: Fri, 24 Jul 2026 02:18:08 +0300 Subject: [PATCH] feat: add Wayland Screen Mirror plugin (#86) * feat: add wl-screen-mirror plugin * fix: naming * rename thumbnail * fix(error): treat user termination as a clean stop --- wl-screen-mirror/README.md | 36 +++ wl-screen-mirror/panel.luau | 360 ++++++++++++++++++++++++++ wl-screen-mirror/plugin.toml | 27 ++ wl-screen-mirror/service.luau | 309 ++++++++++++++++++++++ wl-screen-mirror/thumbnail.webp | Bin 0 -> 52372 bytes wl-screen-mirror/translations/en.json | 57 ++++ wl-screen-mirror/widget.luau | 64 +++++ 7 files changed, 853 insertions(+) create mode 100644 wl-screen-mirror/README.md create mode 100644 wl-screen-mirror/panel.luau create mode 100644 wl-screen-mirror/plugin.toml create mode 100644 wl-screen-mirror/service.luau create mode 100644 wl-screen-mirror/thumbnail.webp create mode 100644 wl-screen-mirror/translations/en.json create mode 100644 wl-screen-mirror/widget.luau diff --git a/wl-screen-mirror/README.md b/wl-screen-mirror/README.md new file mode 100644 index 0000000..cf34b9c --- /dev/null +++ b/wl-screen-mirror/README.md @@ -0,0 +1,36 @@ +# Wayland Screen Mirror + +This plugin allows you to easily toggle screen mirroring in Wayland via `wl-mirror`. + +## Plugin + +| Field | Value | +| --- | --- | +| ID | `elijaharch/wl-screen-mirror` | +| Entries | Bar widget: `mirror`; panel: `controls`; service: `mirror-service` | + +## Requirements + +- [`wl-mirror`](https://github.com/Ferdi265/wl-mirror) available on `PATH` + +## Usage + +1. Add the `mirror` widget to your bar +2. Open the panel and select the source and destination displays +3. Click on **Start mirroring** + +```sh +noctalia msg panel-toggle elijaharch/wl-screen-mirror:controls +``` + +The service stops mirroring automatically if either selected output disconnects. + +## Notes + +- The plugin launches + `wl-mirror --fullscreen-output DESTINATION --fullscreen SOURCE`. +- A private marker and the latest `wl-mirror` error output are written under the + plugin data directory. No user content is stored. +- The managed process is terminated when mirroring stops, the plugin reloads, + or Noctalia exits. Other `wl-mirror` processes are not affected. +- The plugin makes no network requests. diff --git a/wl-screen-mirror/panel.luau b/wl-screen-mirror/panel.luau new file mode 100644 index 0000000..fecff90 --- /dev/null +++ b/wl-screen-mirror/panel.luau @@ -0,0 +1,360 @@ +--!nonstrict + +local opened = false +local requestSerial = 0 +local outputs = {} +local destinationOutputs = {} +local sourceName = nil +local destinationName = nil +local sourceIndex = -1 +local destinationIndex = -1 +local render + +local status = noctalia.state.get("mirror_status") + or { + phase = "stopped", + running = false, + available = noctalia.commandExists("wl-mirror"), + command_available = noctalia.commandExists("wl-mirror"), + message = "", + } + +local function tr(key, values) + return noctalia.tr(key, values) +end + +local function outputLabel(output) + local description = output.description or "" + if description == "" or description == output.name then + return output.name + end + + return output.name .. " — " .. description +end + +local function findOutputIndex(items, name) + for index, output in ipairs(items) do + if output.name == name then + return index - 1 + end + end + + return -1 +end + +local function hasOutput(name) + return name ~= nil and findOutputIndex(outputs, name) >= 0 +end + +local function rebuildDestinationOutputs() + destinationOutputs = {} + + for _, output in ipairs(outputs) do + if output.name ~= sourceName then + table.insert(destinationOutputs, output) + end + end + + if findOutputIndex(destinationOutputs, destinationName) < 0 then + destinationName = destinationOutputs[1] and destinationOutputs[1].name or nil + end + + destinationIndex = findOutputIndex(destinationOutputs, destinationName) +end + +local function refreshOutputs() + local refreshed = noctalia.outputs() or {} + outputs = {} + + for _, output in ipairs(refreshed) do + if type(output.name) == "string" and output.name ~= "" then + table.insert(outputs, output) + end + end + + table.sort(outputs, function(left, right) + return left.name < right.name + end) + + if (status.phase == "running" or status.phase == "starting") and hasOutput(status.source) then + sourceName = status.source + end + + if not hasOutput(sourceName) then + sourceName = outputs[1] and outputs[1].name or nil + end + + if + (status.phase == "running" or status.phase == "starting") + and status.destination ~= sourceName + and hasOutput(status.destination) + then + destinationName = status.destination + end + + sourceIndex = findOutputIndex(outputs, sourceName) + rebuildDestinationOutputs() +end + +local function labels(items) + local result = {} + for _, output in ipairs(items) do + table.insert(result, outputLabel(output)) + end + return result +end + +local function phaseDetails() + local phase = status.phase or "stopped" + + if phase == "running" then + return tr("panel.status.running_title"), tr("panel.status.running_message"), "primary", "screen-share" + elseif phase == "starting" then + return tr("panel.status.starting_title"), tr("panel.status.starting_message"), "on_surface_variant", "loader-2" + elseif phase == "stopping" then + return tr("panel.status.stopping_title"), tr("panel.status.stopping_message"), "on_surface_variant", "loader-2" + elseif phase == "error" then + local message = status.message + if message == nil or message == "" then + message = tr("panel.status.error_message") + end + return tr("panel.status.error_title"), message, "error", "alert-circle" + end + + local message = status.message + if message == nil or message == "" then + message = tr("panel.status.ready_message") + end + return tr("panel.status.ready_title"), message, "on_surface_variant", "devices" +end + +local function section(title, control) + return ui.column({ gap = 7 }, { + ui.label({ + text = title, + fontWeight = "medium", + color = "on_surface_variant", + }), + control, + }) +end + +render = function() + local phase = status.phase or "stopped" + local running = phase == "running" + local busy = phase == "starting" or phase == "stopping" + local available = status.available ~= false + local validPair = sourceName ~= nil and destinationName ~= nil and sourceName ~= destinationName + local canToggle = not busy and (running or (available and validPair)) + local stateTitle, stateMessage, stateColor, stateGlyph = phaseDetails() + + local actionText = tr("panel.action.start") + local actionGlyph = "player-play" + local actionVariant = "primary" + + if running then + actionText = tr("panel.action.stop") + actionGlyph = "player-stop" + actionVariant = "destructive" + elseif phase == "starting" then + actionText = tr("panel.action.starting") + actionGlyph = "loader-2" + elseif phase == "stopping" then + actionText = tr("panel.action.stopping") + actionGlyph = "loader-2" + end + + local hint = nil + if not available then + local message = status.message + if status.command_available == false then + message = tr("panel.wl_mirror_missing") + elseif message == nil or message == "" then + message = tr("panel.status.error_message") + end + hint = ui.label({ + text = message, + color = "error", + maxLines = 2, + }) + elseif #outputs < 2 then + hint = ui.label({ + text = tr("panel.two_monitors_required"), + color = "error", + maxLines = 2, + }) + end + + local children = { + ui.row({ align = "center", justify = "space_between", gap = 8 }, { + ui.row({ align = "center", gap = 9, flexGrow = 1 }, { + ui.glyph({ name = "screen-share", size = 18, color = "primary" }), + ui.label({ + text = tr("title"), + fontSize = 16, + fontWeight = "bold", + color = "on_surface", + }), + }), + ui.button({ + glyph = "close", + variant = "ghost", + tooltip = tr("panel.close"), + onClick = "onCloseClicked", + }), + }), + section( + tr("panel.source_monitor"), + ui.select({ + options = labels(outputs), + selectedIndex = sourceIndex, + placeholder = tr("panel.no_monitor"), + controlSize = "md", + enabled = not busy and not running and #outputs > 0, + onChange = "onSourceChanged", + }) + ), + section( + tr("panel.destination_monitor"), + ui.select({ + options = labels(destinationOutputs), + selectedIndex = destinationIndex, + placeholder = tr("panel.choose_another"), + controlSize = "md", + enabled = not busy and not running and #destinationOutputs > 0, + onChange = "onDestinationChanged", + }) + ), + ui.row({ + align = "center", + gap = 9, + fill = "surface_variant/0.45", + radius = 9, + padding = 10, + }, { + ui.glyph({ name = stateGlyph, size = 17, color = stateColor }), + ui.column({ gap = 2, flexGrow = 1 }, { + ui.label({ text = stateTitle, fontWeight = "medium", color = stateColor }), + ui.label({ + text = stateMessage, + color = "on_surface_variant", + maxLines = 2, + }), + }), + }), + } + + if hint ~= nil then + table.insert(children, hint) + end + + table.insert( + children, + ui.button({ + text = actionText, + glyph = actionGlyph, + variant = actionVariant, + controlSize = "lg", + enabled = canToggle, + onClick = "onToggleMirroring", + }) + ) + + panel.render(ui.column({ flexGrow = 1, gap = 14 }, children)) +end + +noctalia.state.watch("mirror_status", function(value) + if type(value) ~= "table" then + return + end + + status = value + + if status.phase == "running" or status.phase == "starting" then + sourceName = status.source or sourceName + destinationName = status.destination or destinationName + end + + if opened then + refreshOutputs() + render() + end +end) + +function onOpen(_context) + opened = true + status = noctalia.state.get("mirror_status") or status + refreshOutputs() + render() +end + +function onClose() + opened = false +end + +function onSourceChanged(index, _text) + local selected = outputs[(tonumber(index) or -1) + 1] + if selected == nil then + return + end + + sourceName = selected.name + sourceIndex = tonumber(index) or -1 + rebuildDestinationOutputs() + render() +end + +function onDestinationChanged(index, _text) + local selected = destinationOutputs[(tonumber(index) or -1) + 1] + if selected == nil or selected.name == sourceName then + return + end + + destinationName = selected.name + destinationIndex = tonumber(index) or -1 + render() +end + +function onToggleMirroring() + local phase = status.phase or "stopped" + + if phase == "running" then + status.phase = "stopping" + status.message = tr("panel.status.stopping_message") + render() + + requestSerial += 1 + noctalia.state.set("mirror_request", { + action = "stop", + serial = requestSerial, + }) + return + end + + if phase == "starting" or phase == "stopping" then + return + end + + if sourceName == nil or destinationName == nil or sourceName == destinationName then + noctalia.notifyError(tr("title"), tr("panel.invalid_pair")) + return + end + + status.phase = "starting" + status.source = sourceName + status.destination = destinationName + status.message = tr("panel.status.starting_message") + render() + + requestSerial += 1 + noctalia.state.set("mirror_request", { + action = "start", + source = sourceName, + destination = destinationName, + serial = requestSerial, + }) +end + +function onCloseClicked() + panel.close() +end diff --git a/wl-screen-mirror/plugin.toml b/wl-screen-mirror/plugin.toml new file mode 100644 index 0000000..45c4bfd --- /dev/null +++ b/wl-screen-mirror/plugin.toml @@ -0,0 +1,27 @@ +id = "elijaharch/wl-screen-mirror" +name = "Wayland Screen Mirror" +version = "1.0.0" +plugin_api = 3 +author = "elijaharch" +license = "MIT" +dependencies = ["wl-mirror"] +tags = ["bar", "panel", "service", "utility", "video"] +icon = "screen-share" +description = "Mirror one Wayland output to another with wl-mirror." + +[[widget]] +id = "mirror" +entry = "widget.luau" + +[[panel]] +id = "controls" +entry = "panel.luau" +width = 420 +height = 390 +placement = "attached" +position = "auto" +open_near_click = true + +[[service]] +id = "mirror-service" +entry = "service.luau" diff --git a/wl-screen-mirror/service.luau b/wl-screen-mirror/service.luau new file mode 100644 index 0000000..e5649db --- /dev/null +++ b/wl-screen-mirror/service.luau @@ -0,0 +1,309 @@ +--!nonstrict + +local MANAGED_TITLE = "Noctalia Screen Mirror" + +local dataDir = noctalia.pluginDataDir() +local runFile = dataDir and (dataDir .. "/mirror.run") or nil +local errorFile = dataDir and (dataDir .. "/mirror.stderr") or nil +local commandAvailable = noctalia.commandExists("wl-mirror") +local streamActive = false +local stopRequested = false +local stopMessage = nil +local notifyAfterStop = false + +local status = { + phase = "stopped", + running = false, + source = nil, + destination = nil, + available = commandAvailable and runFile ~= nil and errorFile ~= nil, + command_available = commandAvailable, + message = "", +} + +local function tr(key, values) + return noctalia.tr(key, values) +end + +local function shellQuote(value) + return "'" .. string.gsub(tostring(value), "'", "'\\''") .. "'" +end + +local function publishStatus(phase, message) + status.phase = phase + status.running = phase == "running" + status.message = message or "" + status.available = commandAvailable and runFile ~= nil and errorFile ~= nil + status.command_available = commandAvailable + noctalia.state.set("mirror_status", status) +end + +local function connected(name) + if name == nil then + return false + end + + for _, output in ipairs(noctalia.outputs() or {}) do + if output.name == name then + return true + end + end + + return false +end + +local function readMirrorError(fallback) + if errorFile == nil then + return fallback + end + + local message = noctalia.string.trim(noctalia.readFile(errorFile) or "") + return message ~= "" and message or fallback +end + +local function cleanupControlFiles() + if runFile ~= nil then + noctalia.removeFile(runFile) + end + if errorFile ~= nil then + noctalia.removeFile(errorFile) + end +end + +-- runStream owns this shell process group, so Noctalia tears down both the +-- wrapper and wl-mirror when the entry unloads. The marker provides normal +-- start/stop control; the parent check also prevents an orphan after a crash. +local function mirrorCommand(source, destination) + local launch = "wl-mirror" + .. " --fullscreen-output " + .. shellQuote(destination) + .. " --fullscreen" + .. " --title " + .. shellQuote(MANAGED_TITLE) + .. " " + .. shellQuote(source) + .. ' >"$ERR" 2>&1 &' + + return table.concat({ + "RUN=" .. shellQuote(runFile), + "ERR=" .. shellQuote(errorFile), + "OWNER=$PPID", + launch, + "PID=$!", + [[trap 'kill -TERM "$PID" 2>/dev/null || true' HUP INT TERM EXIT]], + "sleep 0.15", + [[if ! kill -0 "$PID" 2>/dev/null; then wait "$PID"; CODE=$?; printf 'failed:%s\n' "$CODE"; exit 0; fi]], + [[printf 'started\n']], + [[while [ -f "$RUN" ] && kill -0 "$OWNER" 2>/dev/null && kill -0 "$PID" 2>/dev/null; do sleep 0.1; done]], + [[if [ ! -f "$RUN" ] || ! kill -0 "$OWNER" 2>/dev/null; then]], + [[kill -TERM "$PID" 2>/dev/null || true]], + [[ATTEMPT=0]], + [[while kill -0 "$PID" 2>/dev/null && [ "$ATTEMPT" -lt 20 ]; do sleep 0.05; ATTEMPT=$((ATTEMPT + 1)); done]], + [[kill -KILL "$PID" 2>/dev/null || true]], + [[wait "$PID" 2>/dev/null || true]], + [[trap - HUP INT TERM EXIT]], + [[printf 'stopped\n']], + [[else]], + [[wait "$PID"; CODE=$?]], + [[trap - HUP INT TERM EXIT]], + [[printf 'exited:%s\n' "$CODE"]], + [[fi]], + }, "\n") +end + +local function finishStopped() + local previousSource = status.source + local previousDestination = status.destination + local message = stopMessage or tr("service.mirror_stopped") + local shouldNotify = notifyAfterStop + + streamActive = false + stopRequested = false + stopMessage = nil + notifyAfterStop = false + cleanupControlFiles() + + status.source = nil + status.destination = nil + publishStatus("stopped", message) + + if shouldNotify then + noctalia.notify( + tr("title"), + tr("notification.stopped", { + source = previousSource or "?", + destination = previousDestination or "?", + }) + ) + end +end + +local function finishFailed(fallback) + local message = readMirrorError(fallback) + + streamActive = false + stopRequested = false + stopMessage = nil + notifyAfterStop = false + cleanupControlFiles() + + status.source = nil + status.destination = nil + publishStatus("error", message) + noctalia.notifyError(tr("title"), message) +end + +local function handleMirrorLine(line) + line = noctalia.string.trim(line or "") + + if line == "started" then + if not stopRequested then + publishStatus("running", tr("service.mirror_active")) + noctalia.notify( + tr("title"), + tr("notification.started", { + source = status.source or "?", + destination = status.destination or "?", + }) + ) + end + elseif line == "stopped" then + finishStopped() + elseif string.match(line, "^failed:") ~= nil then + finishFailed(tr("service.mirror_failed")) + elseif string.match(line, "^exited:") ~= nil then + local exitCode = tonumber(string.match(line, "^exited:(%d+)$")) + local userTerminated = exitCode == 0 + or exitCode == 129 -- SIGHUP + or exitCode == 130 -- SIGINT + or exitCode == 131 -- SIGQUIT + or exitCode == 137 -- SIGKILL + or exitCode == 143 -- SIGTERM + + if userTerminated then + finishStopped() + else + finishFailed(tr("service.mirror_exited")) + end + end +end + +local function stopMirror(message, notify) + if status.phase == "stopping" then + return + end + + if not streamActive then + status.source = nil + status.destination = nil + publishStatus("stopped", message or tr("service.mirror_stopped")) + return + end + + stopRequested = true + stopMessage = message or tr("service.mirror_stopped") + notifyAfterStop = notify == true + publishStatus("stopping", tr("service.stopping")) + + if runFile == nil or noctalia.removeFile(runFile) ~= true then + finishFailed(tr("service.data_unavailable")) + end +end + +local function startMirror(source, destination) + if not commandAvailable then + local message = tr("service.wl_mirror_missing") + publishStatus("error", message) + noctalia.notifyError(tr("title"), message) + return + end + + if runFile == nil or errorFile == nil then + local message = tr("service.data_unavailable") + publishStatus("error", message) + noctalia.notifyError(tr("title"), message) + return + end + + if source == nil or destination == nil or source == destination then + local message = tr("service.invalid_pair") + publishStatus("error", message) + noctalia.notifyError(tr("title"), message) + return + end + + if not connected(source) or not connected(destination) then + local message = tr("service.monitor_missing") + publishStatus("error", message) + noctalia.notifyError(tr("title"), message) + return + end + + if streamActive or status.phase == "running" or status.phase == "starting" then + return + end + + local written, writeError = noctalia.writeFile(runFile, source .. "\n" .. destination .. "\n") + if not written then + local message = writeError or tr("service.data_unavailable") + publishStatus("error", message) + noctalia.notifyError(tr("title"), message) + return + end + noctalia.writeFile(errorFile, "") + + status.source = source + status.destination = destination + stopRequested = false + stopMessage = nil + notifyAfterStop = false + publishStatus("starting", tr("service.starting")) + + streamActive = true + local accepted = noctalia.runStream(mirrorCommand(source, destination), handleMirrorLine) + if not accepted then + streamActive = false + cleanupControlFiles() + status.source = nil + status.destination = nil + local message = tr("service.launch_failed") + publishStatus("error", message) + noctalia.notifyError(tr("title"), message) + end +end + +noctalia.state.watch("mirror_request", function(request) + if type(request) ~= "table" then + return + end + + if request.action == "start" then + startMirror(request.source, request.destination) + elseif request.action == "stop" then + stopMirror(tr("service.mirror_stopped"), true) + end +end) + +function onOutputsChanged() + if + (status.phase == "running" or status.phase == "starting") + and (not connected(status.source) or not connected(status.destination)) + then + stopMirror(tr("service.disconnected"), false) + end +end + +function onExit(_signal) + if runFile ~= nil then + noctalia.removeFile(runFile) + end +end + +cleanupControlFiles() +if not commandAvailable then + publishStatus("error", tr("service.wl_mirror_missing")) +elseif runFile == nil or errorFile == nil then + publishStatus("error", tr("service.data_unavailable")) +else + publishStatus("stopped", tr("service.ready")) +end diff --git a/wl-screen-mirror/thumbnail.webp b/wl-screen-mirror/thumbnail.webp new file mode 100644 index 0000000000000000000000000000000000000000..1eaea0002d3f69982b2ccfaef5d736c43954eb1c GIT binary patch literal 52372 zcmWIYbaU%D!@v;k>J$(bV4=`(hJoS3UZ%N>S_hbAnCv*28XX$#85jhnO}ix}y!gIb zj=&4c;@Im`4kq}fvHVC|fA_v%-~Q~2^Cy1#`~T1UzBtiO^H2U?{;7Naf3E)Uf9Bs;zwrLr{qOr9 z{vZE;-TNEAKAv^|;s00u^!(ud%l>=+-~XTHeZK$J{@wrefB*li{(Jq;|2OQv?I*~; zjK5v~>UUE8o&V?Gt^WJ|U;N+u1?Qj3KeT^S?fw7y|EvF=|1&>5{hR-{`@ik){XhBt z{}<=qivRWh_TT@1gZ;KdDx&PwVJiqP#?*EhjHGez)g8j$!&+|XV-?KkozxY4n|L1?xANPNr|MLII`X&Dp z|K9$;{`dXa@pI}M|GWQl|7-s1{>S@&|39p2`7iY^{qOVN`9Jr6iN9n2w|>v>{oibV zH~zQ3^Zjf4`{M8a|NmJ1?#a?--fG5KXY~7(S3cNrL_W6Le8IxilWuk#C^_a?ZdYc? zx!82Nl-mqGvD#e8uSqVUEO(D@Ij6<7w)sKs-*=|2 z4baxNT4f<>^5JgqtoN5coOgZu>qYhML&l0GcaKgy$@kYiBCK6M;cGo_87uehMYar# znrofDzQ~Eaa{7*c&^I$1i^darJOw=bE(TAFn68A+X8by@kmXe5)u~frPftx;tF7p= z@KU0z+ah*(dtEV!w|dWZ{|%g>9cbL!x=kzMyv&+y`(`lj4tye-v`6lw^x`M$Co%|Z zE2@0l{Nm!;hs>oXg62)~^Ri70oz6T*ZDmXAgkz3U7owJQWvj96DzNkoWxBBS;g7>- zZ}+|9fAlVLrm)LBP>rRbH zU&0M5GkWH>-(oH=0zJB4}a{BIvZxmH9PIc`}E$spEgG?;ViksyzRnY-V?hV zCcN!bvR_iSvzzU8;QQ?des!!|9si8g&aBI8(b-E5p4wK~bv3ik2)C_zcJtP~DatI> zpRVj&a9E>y6ZeI@O%iSy!$<9>4VQ1M z6PT*=sYiVws1M`2QNXB%SCY}LhI@Ob!?4!EElX3 z4!c`S-&wZ5U9F&O!CN8m zTQ&IwCs?N6*YP&Ezcc20m#}E!nxc5y{km?iYn}>UFXY`nD`d)>Q@;vU8x=dwo|gG~ z&+bp2vD>Ew`8GUXzhn;U8neywJ}zbVe&Fe(DE;HEm?7U)``^{iO3!<_3(H%bu2dO5b*d^N#Gj=Wi}*)Z9Bo=3|N0Zo5O?`Um5;8Lu<6yt8Tb z_oN?Hi(YT!(pPys_ufH`151l;E3M-+-h1PQ`WEvCZ|6EL%c$`A`(E~1_!RNqZ~vIu z&EU87;f|VN%VlFI+r4hfq*y-%?gKxoykEz&dD*_@UL-cpLHf*01IK^slRq0=*w0ft zQ%mSqudlAvmz8z_ug@fXomTPk%-6?V%}yHKUtaMq`pnFEKejP&x#_=Wi)ZZG9zNOY zqs>Fn2HxWZDJOg1Ej^*~>*orF`&zFmHz&$JEA;s$)mSqvCw_*E>OtmZr}L#mKGnyV z_nEtz_-b<{u(|8%T{^QzQTx-4exW~SW=`Gm>088kd&R)8DrvK*-kr}a40laie|%@X zlOtczD;g%cnl|K zzx?BGH*2!--^3|I|v_ zw!fa)b+m1VnPqIQzQ_v&RzsK8B^~cu+13`=&z`7qP-cOzyL?PiN0VQ_)fvg=&+mRj zZ4OD*nA7wwnaQWFS0Gw{S=AZSOOv?G6J`9atjRR+UaMsJyTu{nrR*}+tub3>%`_BQ z)jD~}RGF<6cNf;Z-}>Ak@SB=^TIh;xN_C;P8MiLUd1|$A#oCJtSIf-Tx^|=KP~Z@$f(^5fJWiOq~k>1k@$|8R;eJ1nmM z-PnHR>s<>j{hwLf_2&M_eJfn*Q;8!e=|l@TP*%o=>F#3>mb&%&K9#(b>5v5UD!6=*}44C#S+Ev z_0sKP6J0yz7n_@_7wJBiSak65sY#n3s1(Mw*)DuO@ksgGfW5KDzOB5U#-J*9wA@Xw zK5hLJL64%37ygJQg5n`Q_m>sGp$Xo_z03= z@%h#B69PqUmA)>@g4{D&^R(0|J^Gi3eO)1FwMgezL8W0zU8i$K6`Nzdk(mMT()#>Fu zTU(BWyyrW$G;YU5mo>5rxJxTqb!3h2is~vRZ8>Q{s{UP`qP=~K%&#p z`CkLSRZq6dn&1=vc;>8vWpi7ml>LiTuHYt>u$#8aRcCVDj(?@MZ!h(F^5195{iRpJ>LS^h zVy>4zxxL`Cb=vIeHt+U~@}h}pb7r@0vJ4AZ{_f1ChChL#5ef&VaQ;s0^pU8#@%7O= zc@dkPomn%VTBu+b$?fW!W(M_H{!l5MA;=y`*cj~bXxJ&RwSBBQl6eo?=p zrpKSVm%Q6JK1M$a2OWkLWji+VylrUB(o=eGYwh`2 z#jJY4=A)MLg%_?Vl-)DK%%SmNMD^L}H9ZGb|NI=k|Al0K<{a1Sw-?E8$(YgeG|{G2 zAu>^F+T^8ar+1%Jty<7y?`zckdANC)higi{{OkP z(L{3A3ZBZa&+6-DXa;Q$GHc_X!durnA>hh^$0fF}RQOYKq*#9|os&DK@pn$(Z;M4A zePbg(AE=$aDKYw$+Vee+uFozMVx8NsH}OKi?T)7m zhanZe-EzZwHq_0IZn#~{u5sV;^MeUbJJvNkJHK?o)zr^2`3|}7cWypX+ZYnm+>`s0 zgTdak@$tP{YnZjavM$7H?Tg>~vU{6JQOxn-n3(ilVGb zuQA=6rJ~fd$KcHh-xo65I3_>e9<(aS^2?@oTOVtE`<^T{F?y9+gW7@jSFRL0d7gJo zk(WPIZS$pHyg;-)=ElO}%a@{#-1(h)TUXbAzWj=yq8ZnkA`jp9GdniDbJ}uSg=xEf z7JLgfHE1wjko0z4UGt~P6$xoGjX zLYtHuE(fQa+_z3mYUhPz@h3ewr*bT{?9=Mqu}9#5{<<43^%8$t zWn-)RH{rTjJhP@6yiRIRH7|af8mz6cMUIoLV4c>6&x_PKnU{R1PO|^C@G(RCvKqy< z8yjD>KiS7&RaB7r+uHZ=j;k~GE#2>EFZ6d}>aUG#+g?kGZ?IqeZ|&9<7k1W&?-AOQ z@K=1M?x)?AGu@?+Y`*Z`{A{K(Q!7_L!{fJiEf1E6S#$}-&Vg?` zqkr(jQR(tWOKTBsdWNL4C{Z#&$CAWuB!6n;^jQs3Z^@NzemW%Qy?tAI| zG)q@!iK)(etw}03q9=(K+?P0WsA9|WlP!C)w;6ugC8z6P72$ia$s>>PU{c1mP4E6J zSg@}0?fDH0KEBwkeVk*?QO*ixIhKx-`37ohgWu10d;j+|*LPXB8};4K+%Jgk(u%qp zb+=Dp&+!lKHIo^>SRacD63l4Xx#cK-^yV=8&Cgkje@V9pmZ!fmI-z#N_}8BaUn{$% zcUAv4uig?X-Cv$?Jl%D-&`XD)@A7Y_vq$XSrmlV=E`MQS)3QbH=4vM^%07um`?S;g zLWA?NRZ0fM+C_J-8x)lAH#QhM2{wwpW_TC+Cu09k8PEIQH?mYQZA{#-^k=K%s>sko zQvVv3)!o@P#h`A^(Sv8gO}D49-(>E%RPkNY`b@FaQ!leeGnCVVUX}6luUDEPzwL

+fdbT$2!x~OlM@%YDuP1{_!-3?sW=4l!%=+*I_BWrU1p`7pXTW@xL%l`Q&v3J3J zr8QTBTm)X7ae4bWMxH@;{cLju?!zu70e+h&i&Q^TU%&p=m1UEyKYdHD;o28*_@UNC zEs1*_5vv`ZdupBC{nLYG!zuO52XFE>U%I|&a#_RaQvr`6WVx*Gyz}^X{1W%q53^?7 zIac%al;lSD?cckSBEk$<0-sFGxqsQ@q4~DDyT3wf6521h98BBrNb2nk#i&lby&cRx zb2@ZSwk$t(&F(tq{@l+A2G_4#mR3xg+FY6Ozg)L2Uaov^0C%@uUHbK>tBu-P&3;MC zWxCIeb}f9par%MV9t-7JS9eU_X>+|u?MCID9^-lK!Q3wbKbV=M3$PyB_EYi44AsA@ zbj){{uYS2gL5H1BzQIPYTJ^hf{@zC#Zt0hzA~)aTlK7vqNI}K2NyyT#*j8BlZg=JX zGq(E;(j49#_-Oa?%NG0SWl_c-Vppz|*`zX4%;@)}-JJi*OCCL)YIZU`=Et0fMuFsHCgA5yjc8Aqy~{I2KUEHU#W!)-6Apxgq{OZ+7!AJQ{z zV@#z@-(?HC6z_5E&JC0EwqL2YuRmdX*IC8rNv*VIr@Cl^SL6@7tm=7R3QMju z>-%ipIPHzQPfg+lSI_Wu?;0{(YVO{eS|*;?xA3Z4IcvhX?W&@==FR&eR0E0@zo>j} z`hHpNQRUNTZp&X`_uFG|MnJJ4c~$DuZ`V8D_nLDk`)z-=NjmlVj|bO?Xzdr0U`x&q?PO+XydCi`vnVx2R{@ zfmc~h>vE>Y{{5Y}=Hwv z5nJAW+dGe$Lzc5?!t4_z;i0F*9!9;2{@zv5aHd*9`K71D_5&-}!hZ$_Fgq9dn@xT` z-^lJz4fmoCN>AoZ;^*g`$MNdz)Q1i72fZScmK3c19(FzM|L!@j%H;|( z5$ClgGZ#Eq5moj-c+tW5o()NRHh*^{u&`{qeLVWGaK&V^ zU-On*XX}`2G*|J7{q&fX|6c2&?;G7i&-pcLrdBmEw{&&9w9q`c@Y}|n4_u=j=&JGa zJZ)WD=)%8s-DdBpx1Oc-S?@Z?Z7z3>MLfOj^SaMQ3=%y5mp(WXX}so$70b0<%XRJs z$UTafJ#VT?Uc~N||Bmt(PHek1(LiJxPwoQoT)tb~nmgJ=?Tyb&-1_3xgN(<*F#x2O`l`pvKwdCak+3j7N zIvabx@^cp}ZcJFPHYU4Pd-W5!M{!FlXI+s$c(d3cAf(NpTX*vI^-=o^{=MjP5;&EA zuiuUPEpLA6o(`_1rMF8TrtTJQEB`w8>A#q*f7kI(2+v@hIXC~B{Nio?YRb2(o=?8N za4-M1If-Jw)19{1pIKV`Ev4d!-^aV5*PF#W=SrO{UF$!4w&cO7Gx{A|X5P495_!Zp zzF%^_cJqdSMH73LYyYlik6(AJdZ)wX)yiyhv=?1IC^YH6#{5pdFKd5C9Gtk$VDgrG zXCfLFJ$Rw-VOZOBDt-H=E7uP@?b@VbI(3npYQgRNjo}|o%wMXrN3!g1zUSqbq=K(c zZQN%Yxpn4Rh%b4$fVJ58S)lsFNw<PjGkc-#X*Mdh@-H)44oC-bGI> z%9(b<;`5JxrqB6%j+}n^N_4iI#Dy=`a$;B>CYR8+Y zPfhJ)7?fVcp3u=Q{+6vF`7$Ngj=%ctKhKQd!>R8>L<58l`F1PR$=0lSeZU~z?(04O z*Jn!;txvS7#rtej+i|4aT1hy4kJ{y`&GCY=S$Cgx&AffbfnRNNA^)Q1irzL?TGmGF zl{;&pqZpTTQupSJW2SluJCwyb^nUDD6>9ddj}E_{bNro{thuD1<^1xE84ByxoSFS{ z-vtMu8P#EmPMT3yo=%94{&(%`n%e?b*zIiOmF{xfd!zNa@5KKT@r;WlwCay9)z}nz zPQBz}T=g1bE5qy8Bjw$nl%E&3WRNV~c>nz!m$q&N(UK(#c@)L}GMLX5Dy_(sh}>km zZkEl?6Eo*BUv&#!nQPO_K1cHZ&J$%Oue_cfSN;C--0ib-RK&i$^$Idw()6(Qr-af6 zx4Tc9t{iIm`IKYDkzziFb(|hAZP=X47EG>io~(AvwsFJ!sJ!&WpH7y$RewA?!;1fr z!keQCS(76#UOacH)L>IpEYF;j?KhWL7)`uL`wM^4;7e!x; zxMQ`U?*CSfinzIk2}%w3eJ2JeX0AsogpH}nZK`+w0gB<2jAtT%>wsLmrqvK zW!#ZJyXwo`Vk^y~iW-NXo^_BoH{sZwXyf!AEf{cQq^4S<{@7yahi#=D-9(h$NT62m( z*YVVa3ukyb1qp8Qxl!lgsP}o>F81p&Tm{SK{g%0zH($3k>e<4dJ?|^uOkC(WqdIC@ z-|OA1G82vZeyFvb`y%$G;fHH$#v$LeqVkOEp50KKd~et9-3k#|FRt*-YiZi7Wzq1$ z`O1WFBhmOKAFDlE9FNU*lkkr;e=+yQGUr3=ovbs%iU01L z&wf7b){=kp<@TI&Lz(&?Bi~F7Ou3diea*k5ts@A@*GnUnDZ@xEU^(kSaFFI%L#`XX2 zc)otVh2NZ?pV|(cNxI)D?E6|}e_EMynqU0x@Fy?Z3qAAi{S^&y-0=LHAiqiiYuKlE zrsZZ2kMF#&@6l_)TFWOf!t#HwCK&8sj%adq)tns1dRJ0ZE2Hn-q0=G?-tW2ZJ)ISD z_lfC?Jiq17u55_37C(A#ap&|!d!u8fi2j~>@TT>#`7aZ4SX0ho=O_P}OLR--M{a&e^8B_q?*yKka6pA)_rk{Q`LDTE?={p{e&u;Zxz3G-z zxK{X1?eHa`GNmgvIJADZ`hV|H`E9EbI~&U{m;VHQ>DjvQpQ7{r4VlL2pWk~|zGm0H zkaB!m<>QX$_ut%YO5?AVHNX4H=b24f>JM4lgj~yDIXlH$4Gl931r5&5eDiP7ozqvI zB!BqSyYq)zT<5x~Rli>@3e0 z*w>t{T$beHYEk*tXG)$v$1)9 z>2fiR&0AIeTyafm|HQ2>@wscaVxUa?8i@nd+&{j&n{EGFmsy3&N2YLv_&e|VZQh(W z9!)s%dt-I3{nttCwVef)m$PqPTw*5sC@aU{-9H&Sdj*%xTI^EOHiSsFbzfiYm$aoW z%;xu}j3DQQ?@s%P&iKhQiCd1z$UtOM=)*nfu5t=dVOdW7-@aa4VHI!t=LPR8ZFe!b z9b6Yp*8jQrZ-K|Jn~yH1sb4mEa7S{13G-CWyUu+3UzuxMd1+VeeoL_QOyyj|&D`m8 zbP~NJm=Ai**ACs3ckA%=YwpXxt+~+qT>Y|d8)G5QwBM2I40uzD6-}!|E_d&}Rk9&y z!G(Y?(~sXUta!LeI>xHE#z1_E|C@e4_jlSiZ|-t9U|(u>p!RY`;(osy$?kLiyxo4h zc;S-i@?MAR_&U=z9@?;&zf*pKy}#+-?ORs9d-FjwN3PjV-g;~BcX7}4*L-h9M~ZA? zE#bfWo8eh{Q`=5K5wW={FCs3@zPI`WWBm1*mwGj-e&4^l`Ep6ija~D3HVOpR+*)!u z!ui(T(nkvW6n|LrDm-6wRAz$xGmAGH*JU4i!ku=UQF4cM!%?%N3#@Oj zWs|S`xK%evwrK)?#CM-foMJ7;w>T!s^JqQ2BKA+t=f&Gk`mzT-|Ljb8Rd?L>(YwW& zf8Rl2@YE;9I591@$H-y^2TM-z_*{8u33ZUoh;- z*Xum6~$S1JpkVJUoLA@85ap$HQF38p^D*UzKTI&hss{AIS!anZh!mNsXl_}ken=;Se__QJ4?DUq-3}eN) z4(leoy>OfLai^^R9fRr5?bf|k&wrR;Y~t@dS^MBV@zNJdZEU8nvgR#! zjPdqM`FE>6>XXzTxke_2bQz}5o6D{U%;yq6w5#6w^2<|cCG zhwh2XmZGdH=6#*2`*nNw*M*t=SxVmP_Ui0W@vbP7^lkTN4Ul6DTpbpk{n_e_b?m9> z^KLx*)R;FRNPPK+3)la?aOD?t`nb;F|JG2$f>qxPerW{9{qKmIp?}TgVA9VBDR-kw zHX4`MtmFbiB{%6PnR_TUNCr&Z?QhhyZ{bd(vx~#GO;Or@yn5ZOWe#7%4s7o^Uc9%@ z!K`7b;SCYlyZ#?LCt9R@P&K|GmN}94_YD3Y6F$tW_#oj>y}Y$`nS6)V=VLa3GqMjZ zjnOqUN@wX>Q&ig*rgYMq-!0*`^~P7WUuHNhURkoP@Ae+^C)=J)SaIj%yr^wEf`zyB zyj72=>|Z5T*K_XPD*yEoQp=C~o8%^xds@vsUihP0-C`@>3#oIx)$MBz_UXhgkruz> zwe4a-+QD-?t*z!e-#oQn{JlD%hsi0RciOv;+dLP{nx)Zu({e$f_j^XYEo{rPJ&t|S zQ8PTeVrIrh?bEjwq#j|bx_{QS`O;mLqC)ROTiBR5EPTb+xqprOd8g@myhnlLDydbv zt#?0(Is~)a-#0Nm_|b|fx`&r{|E>PUI^o?cEBP~1LcgiLu_;_PF?;!f-?`x)x4v0s zRZbHWnj0%M)#RqE;(Gq5lb_g%!?Vm8MMMW{-;>l?3 zSr^MLsonX@wyJK5>+jQd&DNah_P(<0*L=QbO#d2Z2VG14 z*E6Ns>Jt0j<(ZnkkA1x^3*TC~X8O6pxVMM27yMn&|Mb1wI&qf^wrUvx_;mk;;NFk#*K+*bTd?}Bd&AM?U3+*Q zbfugrba<^2DdXm(^8U$l>j@VZYourQhUe&B?QB$<6S>HBX3itUBUTZ;hwg-H)CGsn z-*Pv;((%BB;ux>2b6yQiO25iXw+2SsUfAw(t<=86s;SeaKQof+LqB`*q?wTxdlpXE zRfEwbk~yXx!S|emSrTvc818I(CRW)~ zpTDJ#t!csQat+zogrjZ&=3$A?D<`V$T=lx@fsy&&Lswbz9@Wk^+2hby?=*M2Mr%r| z$hGR9H3!PWqm0VkO>b03cNgDmn!M6Z;I!CZ{vP%Fy8h1D#}`@}uG{UkS#pQqX3O_- zH7$YtB3W@F~ve=5qHfFHBWdaut8g|JtDu)4!zmP)PX1zpL0K z>Ql=l=HI-i|rCSMIU}ixaAuX>D6-OVvWOk_m$ms6MD^NHig&N zi)MfPs8LW}@3Q;r=bzFlKNV+eoY(hS=l#^X=?U|vg+EL`d#&q%-qBZGdKO=sXV%3k z$v53R7ge#){IAUSM>cyK4(2j2J$oABykJ7@k&Sw`|77aEW$%pKxy~aXe%kQ^*F{Ut zn!9mde1CLzy?=nsowMEx^kzI@KYMh_;i@0X&yD%6vOC}C-*oZw|9gK}jo2G}M72t+ zq9cMH%v<+rhl$O)h9`EuUW;t{`HhcWT^Vl}EmT>MDgW>0#EapdIHT@+{JN$(?V8J< zUxxY;&o*W!<;@pj&!}XR&HR%(v1fMOu9^BKmyUn?KKrEp>N=@6;q?hsskX_YXB*78 z1g8tfuzYCvzTuy`N5i_8b5@jI|1m{<_3am|leYNmwalHAYO`+{=Y!)4>Z_Qh6-{lQ z)Y0F(czg3nx7T%gGuQ0cQOO+WHHIkCVaYgQ4lT=4g95z z?T-FiLiod!V+bG2ho7HJr};BU@doYh)!S({ z^+#IgvNiGAP5WDyFe_eIS?+nzqDr{+c7@9;<$c*Pg4dh)O>!;tuh`YykIz57bcKtz z;IeGrOs@!5og?nWQ{rd}SjPH|Jv)-ME zefZmNrPv#fdQP3rozk;jN3DIAsnvVx@0<`fZI9#Hsqq)*v39S}T7JH36>ylRq`}dPxf9D@8F`C=*^T*Eo|Cw$ZLmzF6i*+cvd1ThxQyd&= z1>WMC52dWagVy;chC1xYTsoytJW1W-?#W5#L)RT$TJde!eJ)nz=xe+4cL!;4%sFCg zx8t0YC(ZTPcss02Nvz^-+O2yVx{ceq-SqyhjqN=oG*`AhrBhk+e}7)N zc1K57ESEw|NnlH5>Dnw|714^k_bVp~{#cR{<>9ZvSmttQyVyX+9FZuo3@GrQ9>^T~{# zFS<8OWl`B%wq_xdevOCQg*txuN&6a|OV|1yX}soT-FD@C$Fs|pb(1tBg6FVzPV@G9 zfBE3Df4Z&3D}t3T=hXB+dGX(#=Rn1OOT|?8(Ar6JQdj%rXBNEl{TjDayS%izPS44( zy7Jl8mNWOA{FN)Cg5R2koLuDm{NxM4)RNEQex;qtUzyVxHXl=6lqJy>H-)M4y6v1p zWw%YI#9r2JY71S>QL#E{(K#78<_P&miN>wP0-R#cEE6~GuJJx6Fnd1}^K}>B-u0=R zzb9L4us8POb5Hc_n_p;K{Tb2bS>f%=D6JpVj%FrKjRX055A)JqvAl~XA#T+;iEqLgJd zmOtF2EVZX^g6mg#z5nH3%bwdN4B>%s~rjib%U+$br}78HY5C~`MtFqyt4z+ElY%@&$qfs z+y2`8bH=9&*NO#mWIKLqaEiS=`!7&^;|qneX6L*4p8dIz{CTR4_Z038d)kcN@-rS= z8NNFG;Jw-Q?%Q^xGnSm&Rz8tw;V}p9(7;PvUF%<;Uml(;8RHc$Uu3q6<74FGC&}k7 zuMeHd%pTSl|K`y5O|es>>{I{Gmt{|>C^cuy_ivwDbJU$V+DGH@c@Oq`(@a+G+vWDr zU|uF?evD0I{!+P0(K~mPcM6*CyZcArSHt8xDLU_?U;YaS&K5GR*T@R^ensrmVlS3u zZU=7%q&X@D*lIp;H~qIE*mU!Drac^eiP2vaH_IG)9o;4K&G`HBl^g{n!79DIi&Gp= z3dPm;O3p8wC;p-)YLWXI9H<<@CHP7#O5SuP_$D(sS_u&U`?@VZwSBRRu zUjhCo|5XgObD2UCK7HEwR!rLWtH=CRt%;3w&-q*YoL6e?dsf~5U2)5~3;z1f z$~E)z7K{JxyT>I{y6ap~PU{J&nLg9_4$qskLeYTNv3=@aRgG0!Pc%)pox*fw)4X{` z@@#Wf=&eflwC00fu;rBRR5MTDQPbSTKF{-||K;)=f(ucC6X?8+CzG{39fo^xsG)rZZ$c)!Qyh(2bYxA9{C z$MDl1Yi|4H{JqG%Hm>=%vT|*f$h8HvpH5WRCDKkjeZ#kB2K{oOxPbXdf>~iT%#qHxxORCQBd6>wD ztW+}+<7#^&hv|39ge&cJdAWbYbE;Ha5Nv_YFsmvYe6qx?`zo$D9Q*dt)R% z9$~m~Au2C6=BrH3*2}TA9Ct2q2Y>Zuk7N;e?=xrPvfY~Z{Flu<$hqO(+RD8*Ry8hF zn7?8F%IwQ?CdMrJuz9xF*G`r-e%IwST?n>+<=x_dYXh zwy8RMaDI$5nZ%;ZRVh^sDj=} z+q3Rza&P#|6_mnvuWo+JCyu1K4|Aj53-Z0(R`_O}yEh+~ZyFNePDSSq~HsUZx&b!%b ztrGJKnS8`d@^T%1PvKhj?c^iv$dwbcL#*AsO}?_n+|O8CZSMB%pM|dSY=;IBW81DaH)X-2AHR-7CF3r ze(@!P?1X#iO73$a{2g9Dz4uygb>igOxcXC$41o`9Yo>nI(a>RDA+f4a>x;)uiS)0I zYxFm7+!S>Cn9I`xz2TNwhgU5sdhWR8Btz012A20OC9_r+_DywiN;xT?{yMB)x@qa% z>+?j`)!j&op0!~9v`JOh9`LmkN%F1LH7&iv6gBsn^~psK+w)v|wbaYc=sR*=dHVNZ zf{27c>a5d8WoIz2pE&>V>!VZ6`4{ruP)vW~U701gq-a*|eB;wqJx_}KL=vy7c`VBO zefIdh#VRW$9P<;@Q#72s_6I%`dU&JS@A#H=)>b}Vf+;g1lht#dAHO^)_HgsPs3#ZoRqJMXFJd|E{vp%j!pF>;Rd3378BV=7_ul+d&0-O&>ORanT~%0=bS5-# ztApuX^9k)uF7y5`^W1uErv2rkQm!-aT?)CdXwE(xDXsiAy(4j3eJniVLq7fJKO1sC zrN{7;{N5sy%m0ru7uDo!ozQ*%ikXQ1>Wu9(S7l^RoL&Fec1Jtw(*Dfn(k4OayJywE zE?K?1-n!RLe_N;8>)?Be%ck3P#(y&YY~?2=ldaTAbqmEsOs+HEl(l`FUc4)$ zR=e7})oOM1hSFCl?|SARoq6(;4o4mD#$O#fWRxE}Ue`J@ zcRzY4b9UQH@tb~}$z4WYS4j!&sY~thiTQEupJGaNu&_hF&%+XCSKDnTOCP&S)xC-> zxEsTe%@X5eAL%Q6^h%~$i}H_Ro*0|m!V|i3);w8!c2l6YUGq`zfO6ig>ES(xXS$`^ zop{%CNj}(8wL^GPX~=1|mY376J*$o17W40|)(H_ich5bnmrvdZoaeOsN%R$2D<$Q` zz~}aB%@1)LKARyQDu2j6DE8ioCineZ?b{U0H`|^M3D30EdS|1z?_jQOzK__OQ`07W zyOXxPW%2JdGXI{OV9pF&_POtz-tC{xj+gBs-!Y~wn*7FZhfZ7$}2c#F5*Zt6`2q=CF#n| zm)flo^{eYY6@EKtzkbyxhxs>xdyd9F-Y)-Rx&NZ+yz8Y8tUY#Bus&q^mDokgzBW7T zdvaVMvZqaYXRPy~TMWYD&G$b=O?XJQuwL2V+Ki+z#@4UkOBXj!4Ew%n> z9%mw*>{z?Z)W0PBVL8i^dEwI=<5lyw@=hvD4eM99KPT_j+t-_P9nDW&TQIv-N;})* z@w+Z*o-?`!Ya}(?Z#K-(-`rd<@p59}GR_|-6AyFpuSpAiqB}eB^#*tAnKMo#D+cfy zDC%)-c3R9avC+J9N%|&bwWTKZ8>8nxIyY&xp>DO}=dW)+O^}tE@Rs#ad|YjpLxo_; zq_h5srayUuFaO_>wR(L_*32s(vbEK{e-~Ts>C0J>7BI;>O4T&$$@x9%<)Tr`b_J!J zkJa84P|D-C_d(Jz6_cgzc?B{n7)*ZZR7x=4`NynralKdH{H;<95worxI&psWwwwzR zF7H;%5Wo6SNxCLDeU0CY{;~_PW%b97URt2;;MBMF++0VWC0BHnR~7!Y;_BnrdP+d> z-233m&Xs1HZWKse^gkmmSoXD`-Db@V|I0^zb*pv!U;1Fivvo2LtuGc=dDOP*mxxcW z``11{!*jX#L2sL79(-AA&DK8TDf!cEd06FdUi9u;)jnDdZbxJpj5hjTzdg%opYi7X z0oD`M%p~%vmNl5H{Zd_e>7#6fMC0q&)w>dIq!pM1|GR&hbA|l16aR&zvU2_?$|SA3 zf1UrmU5(I{%pYeR7gkvXWyLF*-dW$^7aq&iW$|I{vHIU;H%+AuJor=d_u^CLH@_wG zTHJl3b2naU$bPRkcg0%0r@NbGi9Ig;&bHZG?Wb7elYOf${Ej*r%Fn&~w7Qqy_J6-r z9$kuX@?5m&^4%YWb&N_5ED1mQ6$*5$Q`W9+~ z#%^9DrCH={6>jDvEB432$>*Vh^B*p@h$~N1nNRj5AJfoN)=)h6{g>U^#4L7=ZtvC7 zW$t-)5}*BkJ*Zt^-nf`SbRF}z&uv2?e-E}NDRx#~bhAAuUOuh5 zXPV?f3RXoEy%_Zq>_S9VuJ4{1wuhn8V zU|JyVdRH{ z=kCsU@Oe8^=(St*l73r6KOf6*-xl`Fe(f|1vtOxoFV?u3ZM?nj=5MA&4OiFc#mm0n z$iKBgf8HN5 zztO|UK0R*}n^-7kp_lU?3-(>1T&Fottg<`5D1N#?&;MTnx=W<2-l%T5(q-=>AI5z> z{NCZ6dfoL^wG}gk`aEr({nmM!@b~$%j5{W_g-)K64^^Z}9&EBe>S)Q{|A@2Ptzqftnj^`$2&D(!uZBFyE+gd7aPZfTB*_#xj z8moKIE6vWhEbq?}<-O~#%zfXTQe8AFMfY^`XNAhsq5cPDJtmiL{35gDWCXj=K9P#Q zZ3)lwH(ZZe_3ZjYx5q`hR*7wW{$%BT+YP7oJw5KU$hA=3Z%y)1!S9Y7Ilpp0?mN8n zX{^u>j%mxL+DwhU{Z{AdGTuMmquN)R7@gm5mQb=Ia!G`p`;NXBte0*bQjDAS-)M)% z&Vol(3r~l~<<)(4dcSb#R5tl_S_+HS79E;hTv3o1c0k_w;%rBL#xzaW$h?%Kg3vje z?)lDG8Rh7qT`OXB@8{Vk{yh`EuAlH$WB%^=Wx`Bl>F=jh-a4hg(mByPYQtO4fF~Pw z-8%f5XV*oRhkqFz9{riVDsZaY-Z!BooNUuBD%@4L5UO!;-;>9IUiD8y)87kz)>^G& zH*aZDXvEvUIWji?%=>puet1h|m*4q!uR?CUyHvnwo?9+n$Sr+z{?v#$*Nu83ZiXG4 z@n&8BsXt8JJ=1gM|7tHTEmy3ab*H3S|8sfJS~|d;zsLrJQG&_ zUAw&5I5o}7)vBCTA)=qbWKZRx^vAc#X2c|+h}x9;8sw! zV$hoBk*9@k*G)Xed5vxQD%aS{@@{|GOCvs4t&Qq_Wa9SPt5WULuK%;+E{NSeJ9AO3 z=q-~2)ibsqIH$0%D_%tXl1xSWf6W`#Cib^Z#+grL%Hq6h%+Q;#X`|?#&DT{KOO0Pv z8x_vn-gd+6`0NRnK2Ck$Jpai*_2g1#jZZnTHpZV-e@&Y{@7Vk9ip%1?JO6pS+s zpP;1vglUIcABII#g;r%%cUu40kdW89BHeG{1CErh_n!zYyV@{yeKBXx7K=<@j$6{F z#eeba*;6hV@aXMR=}HL+?P$L#I(MudDk*BL)>57m({xknyr#yoMTa`W?iaf-HBNFj zdMcy-;vr{ia`)ffldHocXC3(}diGaPqxo&MMH>66Z*xDB>W=6NH;*%Byxf<)$ZO5U zl&fBwHvgHib46rG>!!n^Jb?=Ww&j?%PtFS2c9ZYx{-$mt?PE`>9kH3|wkCfT6PSMFV3+aor;{1J#|4~Ao~SLb((lc|N%E^!Bb;^eSmTU+LB-Gcq={8oW~Tc%HrZRs2zo6>-W6o0m@T zJJ}>E-29g}F7Hm9u46^ruw*-)DAelhn%OdFR7w_+~EL za3kZEfYkM(m(2YxH-vZOEuW?qv&8B|!7PpngS)@q-I}fBv5ddof1kYOrs!ukpLZW} zC@}1>I6O^qxnSOnB=`R!b>6*GFFIvk*{FI-WYLQck2G8TT)s>#ta7yYQ}oz;&Gsp8 zZ5}Z!`k~iV^?riyN9lK}jm07j5mR{gWy-JA5&if=B-{Iy+QD0!)V9?4bc!u`{~&wY zPsi3dGE-FE%T%gJtZ>jznQgFL)Z`GiTcX4H!@?12b93a6oSSt$H@sxs%Vwt6ujV~c zy~KaW)3Eo=$9ux@kr$S&`<&M=ePVrfsq^fsp=B4BKlapERQbwe5t~|g&k~OZg4T5* zC2Pvr-OTr2f3<$cSA(3!h1b_y)>tt8=i!%3E6?nj|K*-YPP~x#NkuV5mChraaaTPn zPVevVx$(5~`Q#b91k`7zNQDI~E(l6m*ZJuh%db%1)jqbX_O|ZU>@)tHZ2pD!lIx5( zm5u5rxO&RAFkW4#aA5AzLdCPJj;D%b4*y*=YmTnV+|vT5XJj_q5WI87kmDl@%c15n z!CQCpEmqndo$~wsz8L~3Vg5`4ip8l%?#XJDZ?R>)3r@tZs>nA zsT?k$hYTN=A5!o;v!rJ0(e3L53y%hJ=l^YWoRl-q!g!g;jkTdS1(L(ka*Hl)l9p6Y z_%6CB%=bdtjF|N`3p;mkb|}V|%oBRyBWQBoy>98dT|bRYW0Wt<&^{8`RB9ZXtKQCH z+gGMq6UeFl)7qCK?0NUJR|)%8`x=$Y-I{)W-LcdAX7rTXy}5gBHh*bj@5ylcsgop= z*h3a`q&yXp+E~Sgwv__i5|2jIs!GcTY z*nvCp8!oiE2sm^FZ~U>aAaeR$lh+Gxh`rx_=EKoll2J=voctoRFhy{KRMWo{gPu$4 zuW(ii)~35_G77H^u2wbBG}YYOzj09lqxix%5Dkrv(N0l?xy+E&UqTk=icR^a_kbHC;W&y@BhBw@?+`#?N;mm zKV}i1n8dYr@s88G8cx3tP8R8u6sXyzT<(>a^=HLjrx&^c3;Vcteyem@9xMBLS*|xr z)du~)wf8ITz1dg1V$<`Ry92LeYDudY?{%Ck&Ceh_eRHYTse3WCOO3gjjW~H2_8*Zw zCpf9(UQ4Nw@2qUI-*NL4qq2oLg|})fv{1jWvrtcd^M%)Df?*l)%>6OJW%8Ln;#4%( z?BQN?=DTWao!z2CTT-KDUKPk($nGsRr@8%?Riw(J``exguRL1!HL~yM#kPnQ+al#} zRr(6wQCqa!d6BWONcu_3AL`jMZ;yUmx%upEuENi;nfWk&ONy}li|$VxkqP|gnV$gB75Vq(uGRCz|h!C zeXW}(erW_2+h4zW>rA{@iR6(T50gbI9jARuOD{X~LeTA9#>y2hJ9q3!k=nN*%EP$l zT3OKr`PgYEr|o*>c;2A5Y^Chy1>LtBnv8EA{5AKer1`4)4GO^r#4{G#ip6j=8YH%z zm)82VadZ5dr$w)7U3n!`S9wFxqrPnT}3W3PusxJuwwDq5Uw^CXTB5d&E9Ui{+YaI75q`QdFL8uOOEct z;n8xM=Zwtjr=)H1InP%-J9_V@9L~wPpBC-8V4(4G)}hrok`Y-eY#X=SkM)@zzBc7_ zhLNp=R&UGqBp@x6N`_h)&Wl}YQ{|G60^%0h2rU#Fj83&{O?df~1Al9|W6A2?s1qsQWX zJ}$F2M&}$B3E4LZo7=d& zH!X^6`f~l~tK00#QMp_G^DJL5{ppiuOpiaDysi6;F;#Zv$&|2nTdyB``)r!zGQG&z zk`|9xJDZOQuXK00Hzzc`+3AeOe_kGC)t1+LIP_kn*vkg`@k|zE`{&!~<&(bMbIBEz z>2DU5Z-1VhKl^3&>6NKb^G^F3pFPStt+DO9&xDxHAGtkGc|R&;$9yud^W1*iE0+6@ z+%Jvzlcm#aI5zLB3o~h-)KNY8pNyUDn&;1o!&XKdFFSp;)AwBXN(HmxbH64p-tT$m zrmyRl;Kg21pR2CCv+>yTf2Mh9)bZ1sjTQ!;JlA_6|5Q}#PdT1tQ&$~4EF!5l@BZ6b z#~+DT=Nu6{zm~ml$E;A^kf2wOoJ%k879D%k!f%=J&EfL=oeKRCau;^m3T*G}x#ROWqI9+w}2zTAo;7H}AvKoW#aArX2|#nLf>N6+G*-oVJQ?oj7&+ z{(^NLA1^)eGHYo5F1CU@Fz&VfQ9t?8dmn0^rK@L%|0r?cy3@QYOoHvjf%_-^e4n$t z*eIv`>+h*Aq9mqt+!JzHS#nlX>q=tz`wo}a%^S{{)txD{jJS3o-SXT9!)3R**PPjP z=n!vzdhy(%IWwAD54?ZwT59j|US;B(nH!I3?lg1Vug}itmZ`wNz|b;7G?G)=EJH8y zahtbn5KFJuvZ{Q8lb7`@Tk39K`ol6$dRn%5{A~||)rSXJk_Ub?s~qDT05*E_q%^G~i1I=ZKkDXjIHh4#CpJU#AJFIJkguc}@+ zFGW0X+s7F*v$W=K(f?%o>LuUaTRUCv?-Dh1^w?1LU03SZtEE?F`%l~DZu50p?EHGS z_)e+h4Q)Czq!}3BbvzT3ZWY|)9=Gyc#L;8bweq=be5|Uc`nI3HZYLX29h#)K>44n6 zvZq}qA|KcPN&7u{-<+?HcB{QrmT=^5f8A!(#X0%rE&c1}k9T=|xz6?eZT>&KjV2TB zBxLJ|Cim=maN0=n)23~!xeo9OuCL!I|KH&I^2m(WUqx(!NltOo z@nt6$Y%^3&STbFpqx06{e`{VxwR&$2RLh*=9elo8eBqQ|Pr5x_s+Qht-(Jl6)}`Fp zP;?s0yKViP_4lf}HgY~Zx;|meW8dcH!jj!8oBXwWCmiyAVDl(8*mZk26W`K~hT03S z0u_9Nc28e>c0t?Z_!sQ{Ck|g+!o$K_#_BqwG3{W&oo8aa8q9{9eOKD+GbRS5n7`U| z^|9zR(=46)LI3SdeU5%*llE_pT%)@&X{&~4`ku$ZnN6J%`_k=Q84L68EpnaSSS71? z{l)wPi{lbjpZle^@c71k_8Vp#J=?tHV*lKi`3ti2Ud@nN#uxbd(5WTu_H5JHm&mSL zUSfDjbYL2r~Zp=o>w!-ed!9^ zyj^3<*ZTT-mt|x_Z+xF5-MjBCV`PFw=kq5MIKKEDyHLG2xM%IHZ4W=*)o5cp6uFW= zHAw8FN>*U=k6kKFEnicGF6_8G@9NealH0#caXC8kUP5#bgX|=Uql}p!G|E>8-*>Jx zHhcX*=Y`^&wW*#B^{c~9R&6TRalRZB9;aERGii3$4?T&0J|-tZyuTLwsnXcO?|9;V z2J_Ko=Xi}-qUCJ+ zeckw2#BbkYTiyO;d3M0|OLrZAaz5;}EjM!voRBKrU9Nh?Va`rf-f0J0wZ%)+=D*GQ zuVunk@x%P?(S*)bYF7@Htg4(oX<5Z%hc{YtG8nH31zg_x@B6DNK3(3odpqwpO=d9) z6uFS~B+(&`_nYl`^L?IK@mr4Z^slLy>yR2+Xmi}MbyKj!ZPuT6vO>14a5$uJHq(jq zRa3Il(e-w6%m;gCKK42<|0XkM_e2#oE(<=770#9#2NpK0k+97Zi!tUrq-5-VNGNz^ z?}L7IeUMjdZbnCLI z#H-pDd5(2apahrFj5WW@7Q{Zi`FqKmz3*nZ?RSr32~GJqz1J@J{GI5%wbR?L)L!LQ zZeCKbH8jfBz+!f@j!D7$u6HM-s}3Ct`Fif1yTqYJyXq@lKM$1Fh(x7s^DGej&D?3e z^YHDG!~9)xF9QW6%=#`?G_fpn@Y}H~%l3E3fj=u*lTBtZv`*(avPn={TGKSwYRZm| zLymmBg)4pvOB)pWJxS#L&g#VYEohaRK*@{=G7kkGh+Kc%P}HVx@bWmhH0_9?|?%A8INyJM86N)pw11gKq9A6iJA?qpPVLp?9LiXLHt~ zU6VS$*>HyUM;uKE+UoOU34=;%?$V3OhEoD6wDKRS?=7}#Bioa2J_;*1@WLry8CcDZOx$O_MYf4K_e)`?1 z8+O^`!?H)d1(VEAJD%*^>{az!uD?2jQMNT!<6{?#SH|tX-`lSRHoH2e`GyI8UjLPK z>*=3mtsYfM*%rpPb@h(S`nEmm^}1)u(TkPt*Z#hr(DZy8W5xw9lMsP#eLU9}E@5r- zaMM0@aQBb5n-X~od5@Vp@4Rv8pPbH-`H4YyRgdho<9~drS3&8-!7pb51fH$P-`MUk zdry}5H?DIN&p%MI2xS!Ldv~@orS?+3nzq~W9a*f8_OWxw>2i9e(kh3`n~<~z~-ex1r6ohuto zlpK>!&0N;DSD<~Oo#Uj(+axzBdD}PKHJN?*u6A3Kgyu0%`Kt?hUo_6=U9vHG#rkBA zgm#6HX`A-bZyKLv?yu9f~roZ!RCw1O(s~hK1_15^_Y@5H`|Kc~> z!y#pFr3B4uwo06z;$$&zMaJo7Z6{KAUaH7lf5TQ9Ml{Uv>^cC&%sj&GBnyg9hL<@UX;9(|dm9bY&939Fg7 zXZF7v)2H6J{`<}cj+TYnch#O^P!0LoVw>05VzM!a<#gmpqu2$@HqNMhT+6xX+lTZ2 zV@yhKTs+x#RdwnCeYBzBbiF4;fhk#JO- z(sQLt@B8c~M;)Kd!p`yX-yNRYrM0I6mDKJXS@&8<>8#xgLrW3aAD@5hbyUCdervMt z!VUI!IwkJxp1zgO@?6rdqB&pkndQ3QKR?)!@3#KAjN-DVea!Q6b4-@2&|hq zXY-ZFxOFGGPH&F&k6gbmwfMuz@6n6O!nQ24U$Ohe%qy=KHg=x+&H9vQt5QJS8RJVm zYG+x#>F<-ctbKd3^_N0^&Rmxh(|=FT=?Jn=dVcn`4dbK70=~=RSFGPq;lAHRM%_=} z(%r)9%K3jva=i!4*esPdO)7mB&s<;Dd*g76zwaxTs`*x z?<-l{>JCnyy1m+5^7QpTw!4>_&SlHL*zc-erhv*Ai*xCSw7WpS=3A()1EsArF2(E+Q)C$^M5MGmw!$&uAk)fK~}~j|3X`8P3yVI{X69Nn!A6QOU#gJ@OWhQLZ54f z%;E)8X8l_JX~DbVzcTT@a-Oowve=ULt&jbg|GMp7>*El+wyoNFe&T!&E`9a*!1&_N zLcJNcVr7kAIZLXw^3}`^HTkrbTkELM){SL?R+AI2SeeZTuJZVJ&?@7i*7{=e#Zx-& zl*jO$x7{i-r-Wg9XuvJGlWZ1OWs)iy7?h(^v%ou0+I zdsi0cRzx|bA37OudH!|9U&`kDqnG#PnB7%)Rrycx%gLzvb&8jBitp?=Uwtof#rYql zA@%#Sy|a2OWLaIG_RRbdTz_V3ZivP=fmv(j8{JvFu=>cxCtZKKS;e>>R_WP0#%6kz z{+;+BkTO<1sRpQzCUx_!?~XIQ_~Fj#=}xo z>Ad$GTU57gU8r!d_%ox`_3s&R%q>-)KW+^3T+aUdPkx{--GD6;&sgz1aHX z!DlVoD(~O@n)@&H^uEwJ`S)y|m*>>ma_gQ{7mMGInKW%el`n5h8G?rA zC-uG&x8gmh*LE=bftFW<`tAnC_fnk9d+fVwRvlcVJ3%C1p&Dc@3CHgAlV22VZmY0p zD9?X=K>63xC=h7Ge1hYZ>$Scnk=@WE%&RHmEgNbb<_D1JKQcD$qg?KUgUQ?!@hlT zTyxAJwS#H;jFYdv32_r|)BU`;y{_bH(AnpE#h3qjS}|>2_?fTdE}zDIJ(E*2X9#(}e*L~*^vIWcd-Gf*c745`5U74w z&HQ-2>i4OMju9dW-}1Y!8LWJ~Jf*n%brsXM3pKooM?JnxzO-6!MnvkR2P>atFVxY` z{%ezy_2TMT8{52RVz;g^_MK!=oBBj_!-rG--3rrrSYOw?S=cwrOyutOuYF|?9Rr?E zjoN#gRpa&)OY@syOwaueUr%^*;wdZFj#>Y$7)|!SJ@JP3l+3Z`%64WF>nE%4bnf)p z#a$ZEz1mo#bm7|AjnVai!moDJ)j96_%h>1KI{n;P2Hm?$bb{_j+dsYf=l;Bv#g|H7 z7y9-dTDrhnpT$`raLVbpHHsW9i(+?sPm!ABcByx#xo6$qpRt!q_UvEwXl>G&tkA4< zH5Uo#w`)GH;5qAP=Kd`0-O1GBB8EXPKE7zUvHjxInxvAHA1S#estS#JCD!j?yrX@| z!z{?Z)}K#6EPboF?9#{Uf@~y1dY?Z~ITQY+)}QgvDkk24X;)-ie^^a^w*9HZ`Mqzx z99G!7z)ZhQZgI5ObB+UL31Od`7MC|}DF`#YBY5rX8tyd#cdiS0Y2-WveYHq^YTTWfVt>6a^mA+a+_kPM*vr4haMQA#PwnUK3X=;GcRyZt__z0rX}8Zb zDkO^36&f!I*k!zLMM7Mz@ztM2k|$dvp07+fw)*Dwm^Hgv?yuPGnsnw<_t)8f<8HTU zvHx7r*yU6%b61+}#NHlWlg^_W-qFI}Ih&p5N`&8;X|VgcS=gcN>jl0=k9NBy<*x7Px4V$`FG1=MIJoK%f)_Zd4kEkox zCl@c(yxID;<$&|N1&exObx!=^6)OCyul13`D5$~too2!%r$U~DnzH{NFQ`uWqv~h6 zI{tW`YG%Z;=Cf~~`d+yB=Bz;Ut)dS8r586gObXnd`Z;brhkKcG)x;~sdW3Wjapn z?yoVme{f*uwv_cxmtNA_>nm@ddPAwd@d48(`*p`&N9|D9W?7>&Pi%wbx)cKwqkXb8gPM z6}jS~x=o+H__zN3Qe3#y$@j)tC51Cf#WsG~o4Yjn!uOIlCPH2EFL%2MZD!!i_fJlU zjL6?~e2L6d%~+OBe&)Ha7p2@h^=pA&&zhFEat6y}_DhMx8E=qdy_b2XMBsU`n94TS zYu|#-=|@HU=*kJ$!J;nw%SLRzUx?+WSB6LVKD@mp@+C`4!9vi~aN3)WumnHn8GZ6^ zlQ(8KoPQfH#Xm%KANjf~SHDly+&ANaf{&6G z=ULBM`+yPyr9TmUE6yHq=%1Fjd6f!};L|t7qMIkGOQx+Y>z)zR@z#5Xiq5y-3t4PZ z`B$S4e-heUl+AMR)4uCQNaU-)4J<7^;v%XxN2jR*K4Ws2Gd2|UaXzh$?cOLS0VN6 zT2{i|*5&D}7g$Q=k53WWrD@3Uc+cCgGLQaaGED#5jEq)VT@IJ{^YeAkkz*#z;uGAg zKD#wnX$ItN4@ozy^qNu9ak2Ae@2am$C*`g7=3~7ldunHw*D9+6o-TR)tfyCH@~)DU zinuJcL-bAfza1ZawzfyIs7PK~tt_(8J4NSWErXrw!6zM+zwDI$OXREBT*=2;!;F=Ka`dwA&2|IWum|8_CPsd1&!WaceW8S!KDj>p@1jCqLebjaq2(CP;d7r24coqCTN5 z9M7G2jem=j+TIj-vF3ujtKgcbIcI{;v9EnEqQt?}sXo*9Is3b|Xtme*i}lhaCapPl zLiFG?|J9FPRk6f+Sx?%siG6)m&iy#XwHtP+iL39OqU*Aw+JE;ewWJlQ2}Ub>SpdkgL#vUd=h4Sxh&Kb*-&Aer1fZW?epUQ)1~zsXTHAOp}fq*)2{AE zMuy|g56`x3-O$#&-tFa~#s=vliMKpf>z;r2lkv>Ka~d;+(z$n;O|sa}dU59YTr=g| zxYEz54)uI#cC&@Dwh31pjI8>*Uh~qT8;hEJ4rw!sZ_J!D>F5`cT?!SQRt#>FN*yAv zA7Z#wH7Qkf&CBlHc}kixAq7ug*qfTneJhrw&wYWxyu&szIfL(_)U=x`B+r}obfulT zvG5Jk=d3>;#4m6ByLKv1(PrZ>0*VYfdOX><0wXQ$1X&?ONU0Z@qx!f|}~f7pwAh_eGg=dNIzM+Ol>V|FXoe=uL_BUNdBt zZ&&ut{NI(dveAr5M8AH6{`as`}L2T;b-E6FZ~XdoQPt_CXFtMnjHy`_(IcO%}CWF{>kUzWWL_A@QH{ z`y8zI+Dx&~az+c;;<(f6#EC%)xoYiV`j6U7S z&6C{S$GDy{vn|iNttygPwBe@dk&CSDVjG*vB|eyHsvZygaOqrqt@7*osz1FK#JFW! z`Om^hHzfPycg|6O(@Hm0vpfNI$l2!-G?tX=idic1tMLZ>!ys|2-&iv()YB zc15aj=YJb-*=N67^!|jo8y=tNl3kzntMJgW9otjb{W@P={@l|3>zN+Y{?wv!o9->k zJ`~RQt7UoPvCNBtH*@>-i$WM{_q`Ul(sB9QjDv?1o=5!xD|Ts-{|%DVA`XFX-r!hKb13m`8xOYmUgZp?LYT- z)^R)!`dAig&>nvL>^$eKabmYE5*A6hKR6`gvvV$s+}zZup%4AORDWarIK6+xwqpth z@80p;pA{+Js9dRK~7&(QkmlbsPOEOXu*oY&^nSoF{Mk7Ln^w;Ez+%(c(U?eJDOK11=)jyqgg zIjd&vJl|~a&o|TPoGH?ewj~5iE`QP- zQypwCf5OCI9}C-krX9-JxpixvYM05?GCrDjcxhwPC&zA)m=os;Htdj#D-PII;B!&? zU}?#Wxrd)T`Ss+9+A)r6r<`VOsyq0P&+`eRakP@qzB3+b*RAegn# zlXIBe?!B1zHF=$W{JwW{6xy?c7pzKuEvuNBqO|6`1CQsGU3#*ad^s1VSlcsts&u@5 z*fg(Zeb<|HQ9q~2?EN((*KFnUJNKtG)k@B)FRW`{pPiBu-5H+OZ6pO%ZjvSGVmAKI51Fp8JD( z;Eco9&R3L`cd;68U%RJ{X@#=9P*8))y{H_Y^=mK;t+^Twbi{#{_mrb3vKlN7_dM@Y5;9$4(exvo}-wTEl;^*BL z+Vq&_3o%U@7ddtR4zYkg;Z+HYOy{WJ~ znnhh_)orn@4H+A1_i-jIRNa!3v|*kKYn+^_jiN^7uI^(WBY%V|==v;{zV-ZzWcPOO zrr2HD7U>snr)+rtW1`3c?FrY5nveRPVXL;D@#f>L^DVp{wH^{FnZ}~$i%Yk!7qPdq z<>lMk`u55Pt6MiG3$%AMzh(Gd{l#W-$*ia4S6m%z)~%PBb~G!FNyjzgzFJ;lq}-GJ z-AYdAb%n9lioW3JA* z$5o!y(E=@{>X~fYqbv<2yd6S*^r?NaHpqC-^ZWb~g|p!~^GrHC&n>Q5Rm*)y{7=E= zl^NSE6^p597mB}ROi2z@e#sEe6M46R+r4$Wzwnj`oqD{JdrsH89+6T_j7_Qk+jCW< zH*4+zBx;n;p3kD%UTY9GjltcCg^NfRIxp)4!=N zB#L8#T@L)67&NzP_W_RE`5XRzW=Y&NLAGJ$BN-;64=(pNZM_s@5T(m$c^?Xi1mZ_cTfhioBSaV_Nw_k671dGb|R`o=fD97h6J#hS=L*A7AQm0-mHtIZ>BK4_NG@(5~ z+BE*w+k$AZ0+aHG{~wjy$_en53%}BIHvNow?X_9n6%N@8F1+q`In8+0Mbz`uhn-qn zyEbgSzBErmq5AVH^GUKZ4tB^InPr`RTYHHsQhC|*qgu;&UADa8%y@j7xz7K`o9~}a zJ)Z8Iow8%uu2lBmd7=1JPSj4r+^15$!`tmtZ@-x)0RONST9qcQ(aeUqS%Ln9*rTx?|$IhGb zVQ%TW3G(?IPyG-2$d?)98a7`tseSnLmB4@H%;%1W{2OMRYR}r6%>Pl-Q6pK^yy-*Q z0`WNtr_F5SgS9*B-Y?tj{xM9$e6F^FtmwU)aZPPG3jz{*9o(Cz)$hN|VKmWx75l;G zC!K9hA7)uwTv+|-<|IA~dEQ@@{J*2y?H@ z9?IHJjz5s`>!{UH7xvrn&aIwL3%`gSS9>h}nsdf=*;}SB!{7WYe!iT|HbOElsX=|E z&zkggp>}%gM+LrY+WPJ9HU$Ox~_xl2?ri(NAuXgSH$+nm2f9lF-vEBDfpIo2S>9D;+m0jn~ zXNR1oOZ)VMmq|_#kFehD=FpVg#&gy*HYxVf=1ObnO zB~LG3y7>HZ-0S-753dNPUfU^e_^P;7=F$8lg?O2%zZ7)O-qikG#W$NRcDK;BwVJG7 zuZ3ibopOyi^Z8y(dHvCIGUkSReP(a22|Y3C?)6js=A~a#Cf=A@)%Ei4F)`_NJpL)a zPVLy+9N(f9ptfpKOU>RdMe&-5b^%Eu6#Pbf4w2mh{I5YeH^mGx@InrIUM>WS&?_Jg;E#14dcuru*dlObBmgJRxMf7JV zeindNCkmOtg+r=au2={3hBZ%?@%a(9wp+RYieUe|p=8M(SCRs6NuIM$ZLhLE`}M~2hUy;O&swa~E4(-~uFgBT_~;{r=|VD=d-VO? z&0o|!TNyr|FFg3+wC%ob)i11127i7pwd(XG-#lKe@Bcs7o_6TBf93eve9wZq&qtz{ z{XOX?@~)X^~}x>ZF6STwjB5ot>Zf@P+@ocnmzrE z)8oTGD?j~msF*iN_7+>OpVtoe`n@w;#pCmWw~A?8PuFfMTQ@Od$#=n!b1o`b%j*t{ z?@l;z$$F25(c|)}WX6!IE_)vOud<6h!D5)b->~MN@zt2_q7^qiMax^QtWH(;N3$|K zpMJ+HcK<0Cz4SwSu08$r*ES&0I(p07cpt&KulnC>n$B+hbe6qM=5&?P*64rMr>@Tb z`b+PiPOwVdgM{?&n~j&=Q{=d-`sJEy(%&sr&V?~w4_`jK`NZ0{LOX&ZUYKqu7x>8c z#RxX0836HQSgz-Ib{HeJwq)^k_gN`|1@M7Zhvs zo0m@D3pi58EYZNuVlNgl$)>wf?I_Rp135}-&Ylq}StexTcj(!}w|=Q#+I$-~EzrtW zn<`cIPFYfKUJXO$t{2meu8gf>JELQ^&T7f?w(l8@+jpK&+$t6ovcfA!Lbc)ig}!I; zkEJ(d|DPb?*}zoR!1udNvejXBZJT5I_WhCe3+yBJ@)?U}SpU9PD{I#9ZHwQ<{_goU z2imhT7j6yms(9o1(%?|v?aHe=^$-17uq{(uam#`~H=HAEfW+Hbdw=}BUvQH(rw&)>7|)Qg-e!scsh#ZR={=v01P9(HfDLk{nYCo}xRg<{$d zPJb7FRia*9d38vM#GjCJ9B1SAtmLZ+T>odv!wof>S*lOvip!6QR4wZfaFs9)H=ANm z&v@bEwwNWwzN{YCELz z_p|yFcrD9!y2pJ|fAL8C+ie#^7WYNgE$Jsqq%%JKJ;lW$cwwpBd+k-KMQRzBUgm35 zA8q|J!`sLEvRQ(H+=oWa|6TiaLi`oq^TjXBoshk!D|*AzIcIVoggI;T^7?Y#xxVBa zUxLraa|_$dCNZq7|2qA>-^us>vGd-TKWcuqY45u7Luagy_B`m>!m;B`iimsf#+2gb zoaxJcF59BA;pXj`Z;iw+{BrAG^PG^^8s?81`6q~Fe!m)BY<{${WX0`OJI-sj zpPTsamguM%nTE9GV^*BhKio$S|F^ z;C}mU=a=5iIcH|uYNVYC$#3UeM

  • eP%?x2ABPah+Lrt8!0!iNIz?wo3}FNowz2PkFtlIHlWl zQ7!x7)19XO&M@EHQGRY#is|fAi{2~ua<`>8ZmQpElKbS6N?)34KVSACkEzrDZZvc} zklQ}%iOQ|Uj#k~oNcD&r`!bjmLzO>E?&CW3;P#?EE!E$_=C{@E-nts#F}cbv$-7UN zD`HW8#`opT`ZXP4@~hTAu-W8$P0#7cpOE&~&-7z`tTR`p&b@r<_c8y#pobktR=Mrc zxqs_*gWe3C+n4uD*(y7yWRK$ahgZIYcUEWztT_Dn5LXh9-@WRK-K^Skn5=Rg>)Cd2 z-}=4nw7|pkk8>RkegAdmfkDSy1M~A;{nKQ5xNE-sGRvPJbUxy^>WVV{FA+!Bwupw! zRH{4rYwd<=6P3>?B`MB*8y_2<_%KJEKaKsQ?0?_l?G-Oi-j&*4xIXIY7{iG$W+)*Yv+e|_5XaUQ4T*1OB|FBh+TL+;5pg`>`aYKgJVZiNA{kGy&6uFhJ;(S51d`oq7Y`PXK+2li&j`bJ4} z_DGv2Z2NLsZ_UKU1MfvQZo9ay=v_m!Ec@hzf+qQ0LjTTn*W}z?Z!|ZvrMgI`ZQb{6 zlDA?X-}!%R?u;#YQ{1P0Ync43LMiCl`hbb=KJ?jaTUUHiEXkcAS}0Xwt-yu-DF;;k z-FEpE(AzwhUwqrLU(elFU*ws5_RGH23m&J>;B&g^>YHiST>kgCmj1eDvyOfA_Gp+s z??6MG=Zfp5VjCk_y5^snAkN<)xb9geb5eZ7-Niv!n;-p8x&HXgfwPXM^+L|Z?k#QJ z)vUbIw{m}hwD$SPIqDs&u768b?D+B1*!!n|@&^;~eH(Q{1NfM8^gm=jI(aruV)=Ha zTarA=Vhh_WW@WY(SN!-Pm1#BO(*BfkzQc0TXa1|^UM>q^?()1Uy0OdmV)yr$?-%z8 zecF_JRp>@_y^x0EIir&&lv5J>4|(`AYCr9m@|p42O%BHJX<-ucPwk(ol(T2ktqobc z$MiI}PDs3StMp{LbK$J}|LeNsVtrqy|2Y=;xP4FYO7ZPW^&(V@+C1>Yt$vt=}%l5b;H(fd3z3yT)(arnCat2|Ql%3rf z+FyzVZ{`QEyjSRZ|4K~$K>$Zs^ybW|#tava{9AsnVB_7g9QB47W({=$S}&6x=rJ3{ z7XL-)D57UudV znP09weREpOtTN`pDL>zE)f2)qJ67aIKAoPT`6g@Aw9VTqSY|1Tdj%wI@tY*3$9Yk8 z(T^2BJTjFgwWhngx%^XYa-YfyV|$C-`rb<|g%c*p9bW$^s`0_f`>(dVNbT6y$NbCs z`H{L9`yY1Gw)<>)EMathbqe3Zc}t(aN*8?bcjEp({w@8nC6gzAt!B9QW-o7+M8&nB zdwlnn&;3=R`SJP7MSLkHACI1jw#f~QK4!9a16%ow#f)+_KmAqSguRZ(94?!*nk>0<;Dh6n zgKE=0=xBuRe0B9eZrDvj7neOtAnGuR9A_nx?Ovf+ll z7}o-&3-PKexXR@<7Tey3XbdgU8-NV zB;B*Fn{rf~qtRok$C}2uqG?GAZ}r(&e#aJf?4Q(GD70kuYpEoO%aK*nZXK9vRUTZ} ztgD?gb9Jpo8K2sOvQNGu*Rq`VXPiA0k@2{6_mQgsUsSm#_3JJ=e`cn(r}zJ>u?$X@ z%eD5KmUiuDnP+e~X8GBMqODuAn;u8sWjxXRBCS68!j`|cE^>s=JZ%1HXV{YsU-r(_ z-D;dwIIZthX~D6F;XHF66o#?ZdG9c3Hf5goAZ%04#;>8juSWj9^Y7^~y^Ri6H-s>8 zM^v<(rJVBm+n?1Y&El@nKQe2>?TF%PtBriqr?h_U=3#u!5@c7TW3IiTXRE($weY~o9R9HvZG(&_Br9)OKI<`f34jhk+@fcOwR-rzwP};E>@3H* zcPtBC?#<7Zn$Y<8p2Cky>racXTD!Wl`sKy&ih>$_%L#7}7fnfh?yBj1Ue1XB$*Sg< zrRkq%&H8iLao3!cp-S^xEbhPc5BGiE`m*ow`i&}PFYHrS6#BXIi@b?mcR751?tJmW znETI8?W(eu&^#WxdTGi1Zic7o{ztOzvb2@{yf{B>l~%IV&!ETg>KDr2Jy^@NQ1I8s zZ;|zX&v0B+-f6nPK#$MJVY1Ed4P6n}H|~7AICewt6{E^EuIpJEI9Gj|AXBD0!9d%6 zdtSZ$o*9jKrzOq*F`k+z%D404JXv$K3*L^KXW#vPe|`GRf~Q9xTAX(@%-|@N?-zW& z`o=?#55c=`KfR^?|M1Gtd2(`p4Ne^WaLYViZPToir;>ARD-SKb&~4+f-*nQ3_!Eu2 zI~Lc-3H>}E`%^vi?#HCXeg~hLKTdX2OrEUayYTAqltnw|kZJF}ofAg<7ok^2cb2U1gH_f*DZ~mLO5{{Rzj&fLuu9yX-B(}aEAW;4ym2{CNs^Jp^(LVgg;FWe9i5Ek>t#C`-45w8ZgMu0(aTxC zNjsd*!6Lg^C(R*0=9mNqHzf@3i^swp+1>HY_<} z#kwyhaJ$pC`L~L5btatpbk!!AX_CBu!53wZipz`BXE15~K0JA~q4Xb(15y7a`hp|< zs=u6;eD^D)ljT}@XYT}&3z82*mrt)dC=&BGu4X@T>9oCz*shqA>f|u|c9S&}zv!|c z!t;+-$=cU*xfGAq-n_PBUku~-=RYG|-gy?(NS&IM+1wI(V znqJq7#8uZbeuuLgl!PAP5ZR{o=#R{uZ;h)wE}KN}JZfdCThx8=l9rU|?Vf z<&jss_J76={cn@!+pJLBeQP-b(~qVXp$T!nm}_?~RQeQN|G3AQfq{9cMb*6nANFdi zIVg6WaP{W!;e1{@r!D-W|AF}l0@G%vcgHLYt(;YPq5JpiOhyBySF80{`Zo1G(BVms zRA6AM2zq<>q%Yee(f0o9e^Nd;bd($2RXKcB>$Z2btxCrPcHy7Pekzvjd_K2^W5KRj z!78l|+#DRmSz2o}9675Qm^+G8%4R8E-BOxn`Eu{_-_z&RTbUTFDmtHbE%-NUaPgZ{ zqR#}a!en->QGXk8xW%EpvGHWKS=6r8?bVA!Td!6~z1N8gJ*D{iBYWjpCdV6U_FYe- zLOz@B^_p85wdKm``w=1K`8Tv*<=!p17gu@xvgEqo_pU9y@j=c(oT)uqXR3I#9Y1^6 z-T9uL9%q%;94RUgXe_q>z`Jdxr{XoW=C2Z^55LIh*S|JwT)0fUNN~+c|17aKg|M@k ziI$T}0w-pi{%w|FK6$nL$(p(ctI8`c2Q|$t`IRJS(0y>Vc-t1Gc*QrHY8mHbPS3i* zKK+M5x$w$AtzzuTkGR^}Jde+Gzi_8_w)P#4I=|0$v*l(z$#$x+>~^S_=rG&YLFtQz zP~y&QQ;$6TTPvOsBDyk3)M)xcmmdqib1tmOTx+v;e`(rTMTz@IcdlKjsky$SGQn9> z_nqe62A3;agaewh#NCrrRlKSTW*|)%v>k{;O_gUc7JnE%_!d z$D-btJ;yv+~ev2Uobg z-TbWX=910vDU(~WLWD#(UZwQ8t?rs(>lMd-?Qq0~?@^yFa(XQAH#fTT`;FzfZM^3% z6nDlS^Ss-C#(P_2@6rqW1^3t-4}M&}==1+=j7MWUUI|C>2c3#h4m!K0`%lNi*lkPg ztCv6i+weA=Nn)Ys-`34Hiu5Y2Z}|QH7h9h=<>#6ieO$HKw{I3Vnk@SGQSWcrGLM^5 zw%eXCACE7s`qp*k@sVdLIrG0%%j<4-eqesSi$A$%4#lpLFHJkEa3eU&*=<6= zzoLEnqo(Dq*=KVv>84_!^edNjjKR;YUT1RIvDj5lnfI^%Bh@YX7dsa=Ia@}oOmHt; zy!h!GBO4dHh3OB9ChUE8Y2MXeXTR0#ek{1&n#Z;MQQs-4ILqZHvs}(NHG8By+v)@{Gi&l@jJUXT;9Q=37i zH(vYY_Qh)s{ZM>_Cs*M%MWEl7ITO z?l4<)TQTO>^cGrOIAOYK|ABQ&W|q#6l~V6;EnKzXWYeq%*2_4gJ0mugSxxIdDlDJJ ztnFBH_0g?AmdTAgYZtL;JX&v-%D7awLSOrec>KdmiRcb-kEr}bGVWKVm3;E(6u2nyPC23Bm*BE|$G=OTdxZQ;obHgW ze{#XqW>cpr`|U;J7j50JdX@_J5(AxxQ=EsTuRQONY{;lu@oVYTnH46L39-|bTrDl~@z^qvN zZTCytb5(R79(}7_U!P$9`N35omi4zcL>UeV*A2EG{4O54B%Y#q=zhh7{8*m) zyY6pR?YU*>yKv$HdtHZn{4drwp6EQk)+dKGI5R-NNtAop>KH)VtX%0 zOH5idIj!|e;^yPBeH~ir=RQx}@hgu@>3HAw@ZT{rpzdU5|t{&*BeB zsV^~W?(Y_LOua9@P)KK5sre@P<%UN%6FyDZb#8y=-{ba74}`9?g|OB~p05;%by*%$ zY8zB~<9qe*04Ij8lirEiG`X!<9F~8uYW>dJQ+5V^{hHJNR#epIzUmj*#~au;ZM+ne z-frW3-GU)ou3s!7FW>Tf%^h~XLyV%E9aw%|{I+w;P2m%rtkZ49Bc@Jj3jEam*yuv7 zmC%iyLTldHT?}$pPf!RgP}}VOL40G_zrcUuX(uNo2)xsEn53Y4N>M_sxJ**x)@GGC zQ-WhXo+N8;b*XgbuAADXom#dedU41Gu_r0_Y<(4L{Oar;W!Oj9=`VXw_R7N8)av7> zDl{wUPSs$;SkqZ77Vpo zBL7`2oGu^Uva{OB)!=o=lF-wl`O22|zS`OwWh~5ozSt<0<9Sx=>br`X)U=?0{D?(UOUxN9n+x9}ObnvYswY*nDKo|3_EvZryYDo{3=760x}k^Gz;aWSS%UdtLgw z4EcFyK0LbYoj-489e-n@(=$P>+rAdB)n`uqIkon#)`~^f%KxmC?q=GYE2REmS6=O3 z59v$HPs*N%Jg|Pl>~iG(6vhketj9UOEXz1@Fk^yy!GnFSH(M49h^?u2^^7?i(kEIL`TaABo9gIYe3a?VuaXQS%h*4w*1SLZO5xp-6E~U`er4bGzI^Xv z@4xd+{~kHB*>L$$EtSPH)uz{M7W+y{>wG)9XIGzq*il!>*^>IUkCuES%VXX7Ri|N9P81@!sIN z!*9D*O`pB>T*xQA^D#dixA>iZSg)M^cPW)(xRc|i#*EX>o+NaAC_x9n5 zNBjLdW4I%H9?v{^@c+c9=#s5c?$t7dhfi7Ndi_%>pWo7cMkBp^yWS*^)T7~Z{We$f zf9-PI@T*y?O@Z@m)9a^KZZq<)u7C9BzsWj(E^|GN_oq~LXg#j;jJzeKE2aE0ExF>R ztLm#frfL}}J()6%OJ-aBId zKzZMqPvu6>rQGa(i|*Akd{!pd$ascRU-q;Ax=nxMIi>c9F5a?o+M_n-b6>^OMRr}v z+I!UAAdc;W&-$v9^QUh=uQTULh_Z=#rlv#upDEmhIyrxCPOzAJW$#Xx)sDOGEX$dA zuqZk>%vU!RUkwU+Q_5HNi|@>SMio>l$*Hss4Qq;40b;L#^aC7>&qXW zSVqiwqi9>^qTTSb>0lJEoV2~vmz9PUj_ngJ-L%;zufCSOM%N%FDsKD1T)q=i8TFT~ zn0;qU)!Ki-hjYA-IiSeqCNk}%@_au zPrQA#rnJoa-&v8XGItox6Q45GZ{s@CNp-=im#+Nt=4YZ~37?hn<=vBf)^SW&x@PVB z7{5i68$QkYn^OGYfMMg=KU+jf_beA{Q9Pp<_LK3z<2{8ktoQV}+4o*DzRJ>kcDr`L zX@Qlq&cq*F5ZbbvyEgogUqx;+t5IM5a~tVHTkkK*KJ{i5&n3k}c`S3ktO;4G^hUR# z|CaQdS@xL{>E3ggS#K{7=C%!;w^U>|%SKyMUDqSBkt-6*-f6s^$`UNbTz;=TQMzsR z^*+JeC32Bfn~$E@bX3cLDdu{#CQn3-LoTx+^Wok;wtmZio9t54zj7As*5cjw=HeO- zUzx8gr=NT~xh?;iOH=*PZ|g$8T;bl@{qfL(3v=$Ue|~b>`&{d}Z3&glOIO7Q)%neM zt2U|V!Nhx~nby6$%XA_=XWfmvI~RUFwN=Y?XVT-NL#iXTw#M z^^4}typwY7YgmqDsNniXPd(>&S?VJ^t2zU-bs?>MRC^km>r_bw`)( zxl*y@w$lXz-z;O-w^!aSw}1I}h4eS`?Pm?IpHps{l%m8het=VSM!#di{?b;P*)bllWYhO1teVN^) z=lj^ytupOOq1^f(^A8`2uWUG5csf~Ts&eRlGrd)>=53wfp2n0hcl)2&8IB)!3YW+q ziaB^nY}KEinIAoQ{o<@0Q3oq^0v85E6nuO!EpY4EO^UUfep{+# z@v3Llu1-CpvsdU??2_Np*1cV{=fIQQ3-&&I%@=T{FQ?|;*WITJUhskKX0NnrS?*I(?p=NCrg z3#XM|+T6Wx!Q^GK3pQAbW#3-jIFskZ?As=PbtkOo{T%pm1;r*j#{_e|mri7|j z_urfEQeYNI@9Y2Q`K(@h#YMljyQ1S3^sYRnHDTZ9i2*sPqWNpyAIq{$UF~sqkI~*= zGnyyd+O;j_+C8)>Tj49{?mUevhaocd)s2R z8s=Z|eOtcV*jvY#_u;?Or$gq;_ITX-CFi!xIHB*oGtr*2&5sZ+SwZ{zuT#+)Pf zx^GE`UR5q@6w9Ca@%PGdu`{9ersB(8RPwh}XYrresC7Df8`H#hb2Mr^H+N1tIhRo* zYMyPD*Ms}hx@-j&X+)UaICCJsNqE5;;gIn6yuA$J54$ItI+}5)aW*%X*WBR!v$soS zqRkt3p*QUUH_Hk`3&x+4gmUhdwXt%RI92<3+olQm0n#KYz7JTfMt-Zqzld-iurwwd*g> zDLQ^6%ZDR^@7NWVWVS^{2Zj3*&ahT(ziF;v6}e_tYn*cO6TSKgE6+5Pn7^+U5?f8C@nr;)Zev&C20eB-+A`q?|$ z_u8$zH93iqy|gtcuKV%iF84D{u`j>Y{x}gI6F4R8ZB}aj4$fys7wx+Jf!lmhDp&N5 z%dF*x8*hmH4U0AxNGoSJk*BvM=z(*0@~Xc{pM;mI9PGVpJ=<=BRpg2^;TC_@-K|eU zjZ+@Z=~x;3=(4%6z)UyJzsVP@(m$v@37>aOd{4%4oyA@YQ~AR8o~d?Ml$i8D{ROlv zl>E*yd$IDSjW@E_9&Zo0^`=_KrHGZ;=Ti5+fNOQ`_avJi@ksG2oY*4KKke}QZeO4O zM<3sQ8n^Y*_a`&76aD0Ca~3^iys<_n;qD59s155YOeKvuzUOMS9~X4CKb>eh!}fB| z&C}*pUZK8)bxZd~Z>eEx{ks4E1>x^bzZ~=*I8Msje)Vft$Mm%Qu~r6gi;8b8I^UPT zYjhyu+u?iPUoc4hlxodvJao&+*wVF@B{WIzxP{E^>e$4H%L`X?Sa(Ovbe=QO*Re&b z{p!}aZ`;bRE!}$c=}iG=Y0qy*%2@0EB|p@<>0SBg-lVC)G4ZR^ePq7Y8!`*rz1eu! zt7i3Y4?p3FKLceZG9Es^^2oii=f$-=HvFnZ4N8`#P8v>m&+Q-d9pg%uD_V1@%;fKd zBk@OW*LAPYTqn-3W^wkn!oX{f{%k*RjCs;ter8Se9roWNCe2>|)w1)?Hv377k57n7 zTRufOFqE%AaLUR}^Xu$%y5GNJ^$y;(S4(=^ojEbH3RG-QD!kh{e>;E0?2ty${a3id zx7^;D*m$hUZ~y7(jG=-*Urmh=h)7=OSDuxj95yZbP1e-3-fwf(8|iRgU%(psDSOs* z>8m{Uy-!ucM|9K9rQ5Njw>U*5%F(_496jp8f4~p2`={o?_cBGGXI0*AKVNmU6A0;T61K zzS1je)_1&O-;~wXHdTIz>DlRHckoO3ab2H9flm+5C`#k7aDBh?!@+O8IVaYf-X79? zi?4kDzqgzje!i#l0XqbB*BtfQxf-be>EVNwDbBU6K5hYqgP<`S)A; zH;(PI>F5innC0v@d(XSpE~#_BS|4s|Xm)&Y{&Mk6iGJrKg+=xSRlA%MkLfx%B>w!K z)4pb*QI@Oiq??r$3YH%ZoHm*DBQv}A9pi(`zYZ^uTqB|@x=h;9_Ex2%jsHjcvYR6P z7F=3AZ_T*)gKt=G_SIM)wy*oT@3b}E-)Ea&ZTRQ$-*1C{NZrb-IZt2DJsq)-qe|Lp z`o0%D;a|V)5_6hveN}SpkLcOLOyS?1mh!D%akn&dQb?IfghsQ}G2Op8X$ha6UeCQR zy7PLR!5Mb?80`# zF0~bcu_un3R||N)H@r|Rm)qfG`6+(CoyeVyeAg_W?u!s^JpMLX=Xc-Me=MgSKM`G^ z@nAmR>B*9l3){kC=4~;V#KPp;#`5b%l;oTe)kUU@-)?p7?8vOYpm0jHWT8UDwj;kz z8kjygmMG@ZKlA9W=MoJoU)ueiw)VsWruN&B-|yL6oAy}EbjE_8e(o=Mb=Nv8U3&KG z^PJ4E_#68601}W-Ytff+-Bs(zMF% z{hK>2E~3QHf5-C+yHvI*UroFt_;>R9e_Q!&UK+4Io2aO>vL<51#H4d8YU`r{_--%M z$=qpvW|qpw)eFw&+-})=_G+eIT7tx<3-2Q(Kg_to+4x#dZvS+B*(FKqyv#SmycAA; z{qbN|6Bqx(YsNh+k@D}V6^mvtas z)9!72`^A5`MW{3Dy@Cna=1(O1_C8#5r6c!AAJdfmQs*Yf&e2ev)^B`I#Qxzoi?(0t zHy>F0*xV`#pC6&FY7*anI=MNg>uSQ0ugNR>l9w4&)K$eDJ;N>jJDyi6=H8A| zWsWuT-p<~csV>~&^!LA{UZdMnEpMNz9Whc&d=6&{s#wo2;62hke|^^t*&Ho~5`W%9 zx-U(h8OYX3Wb?M9OEL4geNYrVyoT@T6+YjU7E`mP?lR{|?%de>sQqv7hqb)7LQKwI zyK3<2V!i1>U)hR-Z|2U;5VTk7>r+1?ApF|oTJ_ibzGFEl&s(mh?EL*=Zb9^`FV9~* zGR&I$t2@+<|42Yz(vE8eKlLtL%-l4?K=;7yNB{KC%{b7yR9tp5Ph9`%rxuE`n!mD5 zR{UCj$n*V#Gp|1DF4{8pmWDWg^!>XMkr&@3r0H;U&ks#=?~GYHYjx426TUJF=2=X5 zy)^x5Lso@n&jnc{SNFZwj0~^bka$t%cg}vcxZ#>rH&$HA*4Nd#SvRr3e%;^O4?gYV zSe4^%^e6bzV}@N<&)?IU!@!fx|Kda;%k5paO?kff+jplup6etn-ZF2VYT29m`1%tr z|5%n-S5Cbawkz~y;=QLOJMU-s|9AQ%W>^?-`G)7LCpxh?6I*A>#;~}@n|wR-sI+Tq z#U$HM=S!Mxi5Il~I5RA(HtUqxv!5|Sw>xoSJx~2RzWy}HcO@p%eRnVgeD|7q>Q_tb z(`=!bRpGJ1C$_~j9mo^uG%39LA?ZuMc2{u3l#QKRM76c|zhyIZ5Uutp%(veCy?aLyq>{nXa5<__WZfy<+z0zA1Ga7a)mwV)^Rp=`Gdwj@SM1-;=klUB zet%=zhcE1t^$%=&;(p*m$G=ae?Ba`r~`k=Di-1N+LgR6q{bNdhG}Kke&A~G8J=j#!ECs?l!q3`mQ`KYK=)q zs#4vh(>!&qmUEa~KJL*uyx~%pls4zJgK43$3%(WKm(tSJJH&d!!t|J~UbN?3_W8Y2 zU2Zh08H%1@my5M*NSZ8sO)4t<-LDHS0tXJg>*_bot*e>+c*AE=yDe+qU!KEx<+O3k zyq3pm?>2YFO#Ktrz4i9H6PpB^ysW00U;HvHkWoduE;7QmUPIo?{u~+>Du*P5?XZSZ-+b{V%{n=U3KWv1SncRJmleWS#t{hQuSZeA+7I(g<*anrS{f{))5 z4?eN3`2UQYZ&P|T7EIh@7rf@Lq5G|MM}A4}k+cxfPB+t@FTCfqx}NXJh4+0Q8 zBKx1^%I`6nxmxkm5?Aqb|1EE}u3J8{-RH9P1e={yhHqk#GAdRYS}x-)z6}Yr+Q$4S{w|$paJGJ_cld3Rk$5 zYLsx5;ce8B8*}S#YX5qUA*f#TAH*v93I(9q@+2^ zTv&B=5%UxNr_a+L&Pn#0{zxidRga^k?tUM~Gbi?Wbrq)T8M0mfa3qH5eWdGt(dwel zE@34HQg7X`i<-aZiq8|NoAtcw#csZ}`1Jfi|KH4R4!8O5Rj*x6x8~3G$}Ww2-r1fi zbvl3R)R$McI-GduE^ofSd5T=)c01og(N9DF`o#ABG}V{(*?4ifqwGDU4o~&9mU||L zZ`S6Wkk52{>%yg5pRsRu*mLX7TceUC#b*Rk`kBNJdhkzK;SgfArK&&h-sc~SifUyZ zl!l6*@#*;Ra_PVLD5f&WCsl{oVjQjrJbAcGRrz9dyv~~YYLl*iuh_h0i*04Y?7YC< z$u=fWpSY{rtIbx}-&xAayTq+4@AHiHPr5GdYkvBA)yjoa9(;WfI%|R!gY(AuLN}ZC z%U$sNkYfI|TjZ~3=0k4BjC>wZ30JdOKg;eLscp!$Ua@FiP?+JB3v<_3eqEKc>qy;q z_j&1;CziJEUwlKjacO$k72o$Kj`Z)75!utW*!ceviCwK>nns5u!}~WJ`g+zos_yJC^XP^TfNBZkImbNb=Ms?d}YYHJ*o8{>!uP_ zxoqBh_2p~hZ{^3!ZhL)U9{;K~HK!yuwxx#`bp3zO-m~DL;it(T1it^XynSZ&nO{;H zWs{sf=zVbf;MI39GUC}0)4TOOHW^8Uon_Z+t~7_=yZn}Aa_riAg*7{M1a7L%JMocc zbKSgqpRzperCo{Mf2#QEhocj}-Hkt*=X%H?xw>ohvheCtAwTcVDY(Dw0k2GwZPfZr zH|h?!|9m&6aaK)8r-{3fCim7~&nJJOEyNq>%p@yU(7>y4O0Ejkx+nZ90I_Rrti+2cgL{7av`_Pfic?aSts{eD!aMnv-9 zD)a3feT6^G^3wxz7nVN!;`>xyPWC*9`b{Y#jpWPcmiA9;Vvz9JGVj-oW6$0g%?gWU zebDU3bMW}2ve#{bLbd_hJLIOSTyH#lF+y3;Ew46WdhfnwnRE6>?Jg$Ic0HT!?#H)b z=YL(XNjn5ii)VC7Y1e=D>Fe36yzDlc5JSe?cHd>?Kh480s|o&URO0#BEPf$&ce(ER zn8S*%IrJ2wSIw|9+Ma*X>hq$_L7{t=2yBWGUcbWM<-O(K-Lk)8`dj~S@AEBk`IMt~ zKCj{6Iz77+f&asGzE=D*p7C`?{k-b}cRqVdiUx9VXdP=~{j9KETjuI?t6RIXf-+}I zn2C!WIymR=>s@C2dF(}9-@FaG-cHZV=wMAMaawN_Ym#xR+fvr@uY;&(Zun=Z7x$NJ zdhz)C47F9phi8Ore17)$kE>6;#cRxDy-dHZj+Y9FUuE_4%Y_eq6vIldOm!=9V`d4+N-XSs4`P3-} zHiy_tN@wblYh89UbRBD5%&H#E|M2GXU0W;TeI?)7q@Dg$nZr2UhC4MaV$iK~-d7-n+@jEZBM+Y5?`)aaPXp+Ec(I;Kf^MaRD zD9B#hQOO)9|5-Px=jxQ}zdWNKZhD!sR<5t=fMNM6zvghJ&>cCK1s?ucy!y}e#{Pg! zCw|SU(^{&!k%4Dz(EQNq3mwMq*8E!R(I$WP$K>sLzB__~6VvxwvOmA_GWcLn>BjUl zZBZMwvoaBn%#6HELR8wAYL>1r*j=(><-sohxeX^)6>xQ4oBdiUD|Fj=ORk4~^35JP zWlvp8S7>W0Gk3Kys~kz`YOW~h7HD)W%<3y_Sbsg0F)wBDPQ?!<^H2LJKiiPmVY-if z@2p#gD>d~sgDf7JiR}(N5n?^@!}$n{JBMCwTbp>gVolg@IgOGj3E2_`)ppk;TiuTQ z-SoZW?$ln^ZHAUPJ2viodra9^vEfRk@U%JF0ehRWYWEpxIm>N{k#xV-wDm~AJ(KCt zVH^DwCUF11t0*A$B+%xCsjuODzGv4=8+dH4UsO0^_u|bRn~6L31#<8mNRhDUcRRu) zaqQHD2p5L5#1vb5+eoJp1_lOpmkf^xUfxwJmLJTxcJ9vK@R(e_7^zoLx_J(VnU$ut zOi}9p*Twj!|H+QiWjbCjpOl~2UA8>gYRlosRbGZw|1EoW@75FkeyLjD=G9K01diR= z69u~GRi*uK{vYr^NOot9vwQvYQ%;(dpB5`F_5HH8b@7W_uj%1GpH*7&CkCYO&YLsk z&;71+KK_l_51WKf-cp|arb&bT>3S$RBq$z&zt|>FW26zelThCo!A=oygOT`uZZ&x6Rf?lMpReGJ~ZTxyfFE6=s;&3+~lkBh>l&y>8tX7i2Pi{-D*y7$G8 zHNmIG46(YO-S~HwWltx z%qai#^4O&4%838@Z{{ATy>qMd!A#Fft8Q68j|lGXIi{lVK>Xv;gZ={lx1?N*xO?aS zguKjiF)6-Q6M`RFXL+(G#768-Kh^u6uc& zcT%i69?lJ#^q==y>%}J_2ZIzMuOGf6xJ{H*J)t&ynd!~>aja=>=|uuYaW^X>R?U%n z=3)KiT5eD8I-fg}iq<**IoW=L*JCx$sb%)+s&exZp65;15>j``5)V$l{(1f?*|P05 zh7t_d4)gvveee87wWObI-z+}Nw9eMy(0YC=EFk91N=}WUy>Uxr5)0)oPqBVm@biJk zgInigZuJE&S#zh&mhu0bignBnB3_G{x!n!uXST{Z-`X#uzJ@XOch9?B-)?Gsx)a!Q z+hJ{AP}*1Z&H0X(IcjPwJi7aHCRp8auGr1L=9RMaZtYne)+cx#$~;&-Z&&;qgLgI; z*>e2Wd}dqCa9lDyJ^HKk^e2ijBA3vX>J7;OZy;spk zrA*o64la~ws|}f~{l)9!-Um;tru{8mxRrU$#}l`ay5LTVgoBJ2G-_XfS z<_`E`p6IB@w@|`Ye(%?Pf8C#6{Iys4o9KU*my6pv0zW^_3w>^Ixmc`#r`mW5Q&x7k z+fiqGqpdyJx?9Rhy$s{-y|wU3*<`itdWP?g@c)jJW7pp@w-FH5YZ6j&J=uLSeDmz? z8#BVHgXg|ElXy34F;l|n)D)4EDt~s`ZI~8y->WEA>9K6o+wSD85wR?)o9kXxGI`Fg zQ#h0O(Z%?zLf^C}RjPq!Qw#<3?ROnGdeZ7<`+1$M(psj6o~F*Wz1;BV)kANo1Wo-v z&N{Mt|F=lI&Xs66k<9Mi&>rQ|HQ_<#sX3o=ZZ7{QZWA?4uw@IYkNHvW1o20E^-5Bg zoAZ3-{r&vJ772F)-YNUuoVrn)WZ8Irxn9fx-(0!1@lu|*E8ji77<%}O$XEGO+uT`o zmLFKN&Z$P^`AXV;HYZ-Z<9j5b%xV-6&A90Crud38;;YZdJ~61Mlz zm%e}On_@pcPk*8(`Nii;j#X}rsKWb_Q&UduEK=Xr{xWmQ+CT433U5ee?z;WFNk+e9 z-_r0Gt6UzG{@-?{@Q)BzwnpAfe=}8)gWlHh#{`28`AdJF%Kl;gRM|XEi94M0E=bpIQF=ZXT`@ z-zOFEe9mv%3Fk_TG7oJ3T)j&zWSQNh+lQ@657!^bTsHZ}nUnvs9y$I$_O`hz@GdXo zK}F%)fd=UhBkbpHIxg|Mc9!StOOiGgJKbD2uh6TU*gac~Y3|b{Rz8svL;i>+x&AGv zFE5tLW_hlwxT)apktg|w4qv<|#&dq!n}~M~rMK$5S!c=d3)|j%9{IL5yYW-xsv{G> zE*82ayyjox5x3Na`I2$J{z(@L3tnWHbYAi84V7m1+d5A(C%&*0l4uE7yi7Ht^@$FP z{_K_JGkke3TCG`BWNQDNw>R&4e_cYC?Hbqp-#RzBYCrohxqEF`&`zoQixx!l2E_>b zOWJL6=E#uMyuIY@&ly)XFMQSib^X1acg}A+b>P{ur?Zx-TE2QPOEq$~y3g*=Bga{9 zwnX{=J#amdZ%czlRBV^o`#Y1{%NaNiEO+ad^GPUL_U!VkZwnqz;9jx6efzrhHu2Q2 zQ@A!;$eTP8db_R4*4p>h3q4+Q1I7T3*S1-~8q<2-aYxJF+a&4y>{iK?<@#A(Yghif z5M$AwAS>=rIJIB=-}#0AKdrd<#x3U62J;1aX@_UF7D_N#?eoj^+?Q+mB_hjlQBL@> z^zWs|ZzViDs~PF7P;$f7v^iUYtGsB#yq$4hCMU0&{vz_%VwA*eVo(n9qTZ8r{(=zL)ond zLN^9Q&uV$f_M>Rkf4&2A7kxHc9Qw(2?Pj$<&c}J$ZBzK&lGktl{N49WSL((i$4YJp zh_$_seECvnSuyukufuO_-)NQ;{JvXq%PDo~$>sNdjSJJSet^TD`q!_unqV?kU%H?fCVWb?%iL z93S^&T%NYA)$527=e<+$E`QWtsBeC1_kY`sT^?&X%>wlFpCm8-`6%-B{3^-K+5x&n zE4LbR?Cfs(6@INqv}}@#y8XOVw>=9tlvYo=>hoyH;hXc0b?y>Vd*XFc?EqWN1(p|9 zA1)h<9dJCe{N4=JuWwBDtIks5XrJ|8;n|U;cRB97?3an2aiX=jV?{--n9=L=8|Di> z)7E0-wq~;CSkzX?Z77sid|}J1<2LD!1X7eUtPfomXiB|%B*=D>;-%o4Ju=@~7hku? zFO<_~maAKtGv7Jd%xvZpkN1lzAJ01Mzv{}VQ>Qj|%!vARC|CWF?YA8r5>xM;?c_{3 ze|GMZv)wKSKK4Gwm zU48iO=9N=tmu-6cFZ7P_(Mv+T|G(`}{StJ#K|#=!_tmBA%hsH6ek~a%V`H?>iT#^I zRoHpYJg@p${GP>bGmfm?+NboiaL2}LIyXMw|82a}V$Fl9DU+{BZFE`_D)F`c`;BLF zZiF`}=$y;EURxR$VQ6sV=Yt7`(?$O~oYFeDd%vxO~!rtf>Ka&P>)9`WR`SRvxg{I_Zq%vLD@_ zOfTF@;@hlZW*2%dAmwXSsb6D3h{5CL29T0hFm$t)N-h)%qMHcZciQGHq)>fNN2EVzls!Jw4TXy=Z+}iwu z@1-88FWHyQogg2;*7nwfe+9F1$upU|%9FM^vo_x7JDae`%cSV7P?6cAIP=I0`<{PN z{PpV2+GQ6PvRbLU&ajQ+>{z($;oR#QvgU6Lo_1KI89!RM?StB*DRK*ScU9+~Iq+)dK=r)08_r7L&G`+gIX3@fW8%eH@ zY;$F|U;p^$&MP-Pc`nh*7x>Qn{(Ilq=(_5%o=7(~zd(M^Yw{N?M3d*SId$yuGCeUZ z@y*p^>s_R@cK&O5GtKy^#s3A5xciwimK6&g*!=iq@SFgR@)Q3&FFF47=x&*QLn`sj z)#JL4Y}y}XCM#8N7oB17CkVyKNB=@N4mp*2Tutj6~f@4TD;A-<^fF3Yc;jpb9hb0Pu?Ri}O_TBj`NzsJP4^G3t| z&K1XH=1xxEnO?em`qNMLP0hKTh5a9UT{3R%Sed}t-{?|V#31%TXHmrN?5Pv(Ia<89 z-g+Us!EjNX<;L*%_iFxk`#cz`GgqnztUnu}7dJn55BC-O<_lrl8mhEIyL0Ymt-t7h z%uYq~%Z6I}^V24XeJb8?*FwJcbHRg|PDKVX6Ar2It>X&4zIMG3f3Vvf6;+4ML%WWj z`}|RF&gmUxJ`eo9+}Aj?`nP*!W%kW&f-E_V?ha2~+~Zwu-PL`uZ)u=FTzS{a$RtrK z9l3)ltP;KRR2Uf;gdf+>ujO9zCT$&$qx;qtp3A~Vu4PQiEZ`MfyXx5GXO}A9TyShw zQnQ_^(zEXSrTogALyS#fOPqB6Y(Dkt?212PUO`LLj<8$^n(?XA#j7b~&$Z&+f2Wnby;E;pROR4`%C=cfUQcnZ4&_INPS>6D2(R)3@E~D1LNcQ~nfbseLTg?J@iJ zNW9XMN_o9B?^xdIl|S`2)k{7<8YXW4vh9z*s|8#81(kd?KLduTSc&fKrP`#Mn_JMxD%Z%k)?gV=Kb@(i*dw==O>zfBn{3q&my_%VK zbGrVq5;xt2GcL>Y9Qpczp+e;Hyy-6`PYEd6s!B2)QFgrlDwb1v*_$IT<2SOuT)ooE z`_`INMJw`^gNZ*AU9dmqk_4wyG>uH6Qi-{vz{)Mz#=U$1cIXTy;s>6a6DQp}D_;%IV>D0;t} z|3PR=a)H3c_eyqWPIOFcYmhSnP9zVuhyPh^N#uPF>7TP)=7tVf2h8xbZomH>t2n9X^{#q zlQ(6Xa=i^ScMgAP^Rb2Tx_ZZh>b0w6m6T3Dl0cu$^bW>>#9v(~ryhMVNG?nyCa9eQxxpI`QXtM|isHnMk3-6lxYxA=I=EmD@` zVVzRBWcf}}_63`{7;N2sPT4liV{(du#nze%ZT)`_JqtY?E?T`YH$LCc922ckUdFfe z*%F?I-E7_yB3`Cnn`4>ezOvxkoQ>6AZk0?9XVU+4EZWr}y6n2P_2%pQPDkIeoO5Q+ z(|z^Rg1++c>*niics+H$g56uL#k^(vU#5KYUlw>*>CMyNi?fgRJk3p67Wyow|HcX4 zE0u4%H_2}GuPXWxarB~=dKZ1tmgS3 zDf_<3jwRtYerEG`zqzq~YUqMbPOQt$Z%UdN^v%q4+n)Z8Zlfic9X~EER^MZ{anjGg zlh0xU%6KiG?|fM+(jNUxDCLf5L`ZV2#*w7c0xJ(z9}wnv^2v28Yu~QbdpGonymQ*M zcOLVnw^N>b%{}z!4ewj=90l&#lBL`~pM5kj7kaC1=#n|JQhRpt{}a=;w!bY4Uy!1A zNnu{H%AWS%`Euc@%a0w2UEV(Ffro@a+#jhVo_k+wo8QcKS}J@iDfMg8gfq)OzH$_B z;N{O==Kpolviz$4{e90A7A#&-vg8W8AS=VtWm8tv9y~lrd3WhYZVwhmT}g(lzw@Kn zLf`wGUXs3NOT}50it?Q5tz8c|*Qi~Z_3euP=b&9J0(LIWvu}PbUld)s`*^$WTzZ{?9+%tnf2m@#NL-nq0d>?2Wa8 zeeV00pBLTwq`JmIV2VRoVfBuRTzm8RS$EhAyQc&mFRS{|%<{tKP$HaAb3h1{E#@uh*+QGUmloibThp2$so zd5cHArYHORx$U@5NWwWGt7Nzag(d{zmqxH6AZFn3VBGRP`;4o1Ia# zSn%yij?J4F`E1jY-0SLKo6>&0}DEjBdVN)RuqxX{w?wuzvOCr-j#3WM51?K2v}7Yw7O=ErLB~C*1t; zN9K*!v$sAknXlhHUnCc_OLyzNdUsO=pM+h;daG9I>2>tjPUMK5TKl)B-tJJ$nZp`W zOMfjBS9Y!Z6@1I9>y>(&>9(kg`TXDNo-<|1Dz%tyFuW1sT>ZKDaa_uj&gI?Z!s?eU z%70QSV)XsOHkU2z!BUoWN&8BITV8iAIj|@C)Q(=yrw@NGlZ;4wC+fDhXJ$tuqon=g z%ei{lf5N1TZ-s{3IlY)E;EwewyVR|#v@b_*;=HwbIrrQ{J<}LZUR>^VQ8YmRDtCLs zhmN`0Z$lGT$JC!b>n2{_CU`$uWU7pkM*ZEJ8!R7G#9geI)Lj#^&6hp5rmTt8b|#-! zUcX~+=`DRdf9@EE9XyU@3J+Av!?d33nV(4Z$XCv`)D2O0IsIDk*vtMy{O*Ev*Ur{` zcg%BpC%~=!CF9oyBuM=p2dIW$rb3hIrgx$BSwKLB+)f7q@M2 za~JlJvtM%D`dO>DHM4a?-EGFo*b8r2t95nQ+GYQ%-)ecK&+z)svi1FC=Kr&b*DwFH zQ1t6o)q`3e>k9pM-O#<1$ik{gG2@H<4loy8I1wJbTJA zFsFCJir(}0_n3ADl^bqdpuzeiY@5jcjd!*M9#g$GX?F3seMWP=K3N7X=&!lrB%gDm zD>$RiP4R21>c^99AH{kf+9#P4WX{_IxynRTYp8Y}P4FAqJZx$Mrx-&V0=yq>-6 zD%oM}+6R{#HI#f|XHcD$yR~oU`M7F3f7>Nn?SA{uxXHgYpO?|p#&njt+tvk<)7#`+ zzSP{5-dbMrFt<44qu-ij!@bjdH=ll8o+VqVsvG2R!~ETwm0oJj3$) z$M4@ycV{-`7`?xyll|bkH&e#$En12D&KzAnW8=X+#sZ6GC7wzOJz{3jVfA^H*e3fo z{5r+LNlcaBzWmv||En~M?USufCn8LuXs=`5=4WfBb8pMqXVSXj`O$`@YtP=_ars_pt>VO&jFR_?_+M;_ zD=iV3xx4IofZYvwRoR=%xVN%~8KfV6>o<4CRwmc950;n3Vk&DtF570tbXBtI$;4Mv zPQHC^$s+t^rEkytzJ#TbUOticOYc&uem^ahZ+mACu>5|NE9n)I4A9F!_;7;&gSl@=VwI^a~R2xp#WJI)oF`&G!}`-ip+%*7_V6E6VXIM=T)bT}-ynyu<4l-#I<;$nBW$=x5f-vjNHS zk8@IOP6=kYM$~ajgxj57W!$TDb?Whd^_Ny?&JF%@#{Tk_PtHx(qw?;~E2?q(x;D^L zNkX_n<&JXD`}iC_E=dNdxgQJP`iu8&*=v|x^)fbA=U{>5-A67J9DXOKau`dv%HCrW zulk@im0$h5<-fFxCzIxxEf%ra(Akn;`&_;^UC&QEW67dYg@)2+MyucKm0{;QbNSn* zxfxb}Tjz-GaeTjx=hOCg-M_f6O@4j;*E7p?I%yhz-r1a&p(|E~WVH@-XKTEpknU|g2Ef8GDT zCH{A{)*5FNt`ARtbNc(Ag(`}-`(~7$(qyjKwyrB!?^qX0^VPnFW;Iv#|NC>d*5^MD zxRt%yD=T12E_;*LmA#I;>FpfT(ziU{GJu^LI;D{v-a79w10?tx~ht2aa7!1 zwZmCPFHZOzkgw5Pc|P?0dbi3i^4ixJtuApLWlz7;QgLC&8keeN+#+Yz%~D_ZdSj(^ zm^RB+F^5*Am$lQweW$WTw(GCqTfODI(&~+SA2i2{+MSDin7?~^;3~~S#h3XKFYkMJ z&QxgA?bY+6jCxN`bFH&BhbEToxf;piA9*+Kx!K-JA0llp_*uUb+c`6% zIrX*u?i)+0w&?z`>fGA%>TdvNDX&`so3D2Armb^Ac7B@t_l(h(&Awfa@|Wy1+{XN^ z=jH{yaHdOWZpvdzJftp17a?q|YoDdFAxhg){26 z+D;PwWc1I(i$l5W>a&zN$^qPRH7v~Y58p6UnzgKJhvI1k;R|V>xE7=w*YAE*`LrtP z=DvM5R#@A;pWYsGQA%pMw*O1Xa*avzpO^0EQcsLoQ}=#R#-w%o)qY0W2IlQ|&I#sx zXjx&ACV5gWO5}o**q{E(dH0*vD+<&uTO#&oIbYOQuh(10ocRqc^0?Vxd;uBxabj|V9xe)Sivfu)SfA^i|C>`vzUVT(pSLvHb zvBDYTGmnN=t zclZ|xC|N$;x~19X=N512sgG5zrz$dZ9sc~ihF4c`-$zxRjiy07CEYnPwh^D+t*N$- zbvYV#NW;`=!|SY%H@X)r*She`dGVrSoZl-f&9}*9?KTR`edW9(e%X?H%RAI#ohR)6 zr*`c1^%rL0-R(8=FRyb5a%Iu7e5AW$WdPg6&bj4bXVxrR_U~EUi>1uvdT~`o8fj;w ztfrL+Ud;Ksa=X~uCk0P@d5`r;iU&3|`R6kvp4n>|-JGP;u&znbE%n|3oy5oH>WB0< zt?;ed|?`D@$0n^2FK${*w;RVLoQNqTEf7XU3)m`17Be6{lREZTKf8I{7Wjib(NQo85$Ww>GF)KjVM5J4{p0 z>`5Z~3e#7@ZR=z{xpAIMR{Pt1`(eQ3NA&`G8m}(m*#C0>&GL)$Cae%WFZ+yD^y}(* zh3nr=YknX)PwL)_F_uZdbmQ`x(;J)w3nr0Eo0xWV#S2s| z?2?o?TG`FfTg+GN&9cS)TB6Y(e!K0Fn|7-Ql>cblTlDQ*Ny5pE>1F3;-Fh8hb^6Jy z1f3h7!}c{6B;4K9?s3~)s!sC4u_>)bO@1vgzsDTd%MuaP7}fjQ&b&Oi>ymEU8r|M#Yt77kfc5CPdn?@bcUXPf`sy~b!}|ob zXMciMKO>-3``bz8X@=WWoeDpmHeU_Ru~ zpdw~GH?RIpkdN^4|xSR8KOkljojaRkxyP>D9-qKNByP zD9kkfQ-69w`Q6L>OZPug``0mt$yt8h7jBhTwffC0^L?7L-t(uk&dhXL!Z_JGap#du zo(-@2GT!nP-3+=gVR;P053^8XtD`4ujlxBauYCT}D8zAMe_@R0nxFeE)8R-?9mDNO?=Rjy_NXdYPWDm>huPfj zOBRivEv3^`bq*^AbUJT1rrWh@sjn<&jC^e0;e##7&$-q1|M}8bH7!c8KH2z$kKJJ= zYrot3CVuw{vkFmLKl`JACYxxxkk+0`$KtwY#~ng`o2c3J)n59tVuIxH67IQslFv$W z7nn~y(Y{M=+1(=9<`$-T-prAa`uuxOGAkU^eUn<0-{n<)(O|O1iP#r~E9%s1>{m*P z?`qFn-W(r&e^0xnh$g4ke8%Tp58rQ5OZM8RlBs2Mbr8y;7&EalcQ6p)YRrxe({O zxjPodsfoDlHC;Npc7op8pd;q#Nfo^rKlo?95D>m`;)RlT(c=^U3i)#SI)5x>GLv^{ zX!^AJ+KOrO>Sj%Ow5#l@e8^168J#`ZbK)#^T4>%pV>Hj`%DRd7bAE)JVmmS6xqbU*GyQT#$-<~T4-Zc% zzP0txk~P1YKKQ0hweL777x7>j1M{v1#yJ~en3=L|*8E$m$Pr&|+~3B|xQw68lBcRM zZ~mp}T{TbGmfrdJ%