From 87446dda78c2c5307018b1890f641f712c85c4f7 Mon Sep 17 00:00:00 2001 From: Paul Matthews Date: Fri, 21 Aug 2020 13:26:22 +0200 Subject: [PATCH 1/6] Update Scripting.md Added Documentation for Balance, Open Orders, Order Book and Users Trades. Changed Ticker Documentation to have the same formatting. --- Scripting.md | 270 ++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 257 insertions(+), 13 deletions(-) diff --git a/Scripting.md b/Scripting.md index 7ec16c8..a4d6b57 100644 --- a/Scripting.md +++ b/Scripting.md @@ -107,19 +107,6 @@ var interval = setInterval(function() {}, milliseconds) // Stop the callback (use in stop() method) clearInterval(interval) -// Callback on a price change. Here you have access to: -// ticker.open -// ticker.last -// ticker.bid -// ticker.ask -// ticker.high -// ticker.low -// ticker.vwap -// ticker.volume -// ticker.quoteVolume -// ticker.timestamp -// ticker.bidSize -// ticker.askSize // Although note that many exchanges do not provide all this information. // The tickerSpec type is the same as used above, e.g. { base: "BTC", counter: "USD", exchange: "bitfinex" } events.setTick(function(tickerSpec, ticker) {}, tickerSpec) @@ -147,7 +134,264 @@ var orderId = trading.limitOrder({ price: 6000, amount: 0.1 }) + +``` + +### Ticker + +You can access the current price information (last trade) for a given trading pair. + +``` +balance.setTick(response, tradingPair); +``` + +#### Fields Available +The ticker exposes the following fields; + +``` +currencyPair // Trading pair update is for +open // Opening price of current interval +last // Last sale price +bid // Current Bid price +ask // Current Ask price +high // High price of current interval +low // Low Price of current interval +avg // Average price during current interval +volume // Current volume in last 24hrs on this trading pair +quoteVolume // Volume traded in current interval +timestamp // Date/time stamp of this update +bidSize // Size of the current best Bid price +askSize // Size of the current best Ask price +``` + +#### Complete Example +The following example gets the ticker of the currently selected exchange / trading pair. + +``` +var subscription +var count = 0 + +function start() { + subscription = events.setTick( + function(event) { + var t = event.ticker(); + notifications.info("Price is " + t.currencyPair + " - Bid: " + t.bid + " Ask: " + t.ask); + if (count++ >= 5) { + control.done() + } + }, + parameters.selectedCoin + ) + return RUNNING +} + +function stop() { + events.clear(subscription) +} +``` + +#### Example Output: +Price is ETH/EUR - Bid: 347.55000000 Ask: 348.11000000 +Price is ETH/EUR - Bid: 347.55000000 Ask: 348.11000000 +Price is ETH/EUR - Bid: 347.55000000 Ask: 348.11000000 +Price is ETH/EUR - Bid: 347.55000000 Ask: 348.12000000 +Price is ETH/EUR - Bid: 347.55000000 Ask: 348.12000000 + + +### Account Balance + +You can access the balance information for a given trading pair. + +``` +balance.setBalance(response, tradingPair); +``` + +Note that the *response* is called twice, once for the base and once for the quote. Assuming you had ETH/EUR selected, in the example below, it would call the function once for ETH and once for EUR. + + +#### Fields Available +The balance exposes the following fields; + +``` +currency // Currency type for this balance (i.e. ETH) +total // Total Balance +available // Available Balance +frozen // Frozen Balance +borrowed // Borrowed Balance +loaned // Loaned Balance +withdrawing // Withdrawing Balance +depositing // Depositing Balance +``` + +#### Complete Example +The following example gets the balance of the currently selected exchange / trading pair and displays the currency and available balance. + +``` +var count = 0; + +function start() { + var subscription = events.setBalance( + function(event) { + notifications.info(++count + " Balance: " + event.balance().currency + " - " + event.balance().available); + + }, + parameters.selectedCoin + ); + + return RUNNING +} + +function stop() { + events.clear(subscription); // Stop the subscription +} +``` + +#### Example Output: +> Balance: ETH - 1000 +> Balance: EUR - 1000 + +### Open Orders + +You can access the open orders information for a given trading pair. + +``` +events.setOpenOrders(response, tradingPair); +``` + +#### Fields Available +The open orders exposes the following fields; +[order=LimitOrder [limitPrice=360, Order [type=ASK, originalAmount=10, cumulativeAmount=0, averagePrice=0, fee=0, instrument=ETH/EUR, id=1, timestamp=Thu Aug 20 16:08:14 CEST 2020, status=NEW, flags=[], userReference=175420665]] + +#### Complete Example +The following example gets the balance of the currently selected exchange / trading pair and displays the currency and available balance. + +``` +var count = 0; + +function start() { + var subscription = events.setOpenOrders( + function(event) { + notifications.info("*** OPEN ORDERS: " + event.openOrders()); + + if (count++ >= 1) { + control.done() + } + }, + parameters.selectedCoin + ); + + return RUNNING +} + +function stop() { + events.clear(subscription); // Stop the subscription +} +``` + +#### Example Output: +> Open orders: +> [order=LimitOrder [limitPrice=360, Order [type=ASK, originalAmount=10, cumulativeAmount=0, averagePrice=0, fee=0, instrument=ETH/EUR, id=1, timestamp=Thu Aug 20 16:08:14 CEST 2020, status=NEW, flags=[], userReference=175420665]]] +> [order=LimitOrder [limitPrice=370, Order [type=ASK, originalAmount=10, cumulativeAmount=0, averagePrice=0, fee=0, instrument=ETH/EUR, id=2, timestamp=Thu Aug 20 16:08:19 CEST 2020, status=NEW, flags=[], userReference=154148732]]] + +### Order Book + +You can access the order book information for a given trading pair. + +``` +events.setOrderBook(response, tradingPair); +``` + +#### Fields Available +The order book exposes the following fields within bids and asks; + +``` +bids // Current list of bids +asks // Current list of asks +``` + +More details +> limitPrice=347.77000000, Order [type=BID, originalAmount=0.32508000, cumulativeAmount=null, averagePrice=null, fee=null, instrument=ETH/EUR, id=, timestamp=Thu Aug 20 15:12:35 CEST 2020, status=null, flags=[], userReference=192475211]], LimitOrder [limitPrice=347.75000000, Order [type=BID, originalAmount=0.16254000, cumulativeAmount=null, averagePrice=null, fee=null, instrument=ETH/EUR, id=, timestamp=Thu Aug 20 15:12:37 CEST 2020, status=null, flags=[], userReference=113477373] + +#### Complete Example +The following example gets the order book of the currently selected exchange / trading pair. + +``` +var count = 0; + +function start() { + var subscription = events.setOrderBook( + function(event) { + notifications.info("*** OrderBook BIDS: " + event.orderBook().bids); + notifications.info("*** OrderBook ASKS: " + event.orderBook().asks); + + if (count++ >= 1) { + control.done() + } + }, + parameters.selectedCoin + ); + + return RUNNING +} + +``` + +#### Example Output: +[LimitOrder [limitPrice=347.77000000, Order [type=BID, originalAmount=0.32508000, cumulativeAmount=null, averagePrice=null, fee=null, instrument=ETH/EUR, id=, timestamp=Thu Aug 20 15:12:35 CEST 2020, status=null, flags=[], userReference=192475211]], LimitOrder [limitPrice=347.75000000, Order [type=BID, originalAmount=0.16254000, cumulativeAmount=null, averagePrice=null, fee=null, instrument=ETH/EUR, id=, timestamp=Thu Aug 20 15:12:37 CEST 2020, status=null, flags=[], userReference=113477373]], LimitOrder [limitPrice=347.56000000, Order [type=BID, originalAmount=1.07717000, cumulativeAmount=null, averagePrice=null, fee=null, instrument=ETH/EUR, id=, timestamp=Thu Aug 20 15:12:26 CEST 2020, status=null, flags=[], userReference=155455028]], LimitOrder [limitPrice=347.38000000, Order [type=BID, originalAmount=2.69161000, cumulativeAmount=null, averagePrice=null, fee=null, instrument=ETH/EUR, id=null, timestamp=null, status=null, flags=[], userReference=115320557]] ... + +### User Trades + +You can access the user trades information for a given trading pair. + +``` +events.setUserTrades(response, tradingPair); +``` + +#### Fields Available +User Trades exposes the following fields; + +``` +type // type of trade (BID / ASK) +originalAmount // Amount to be traded +currencyPair // trading pair (i.e ETH/EUR) +price // price bid / asked +timestamp // time/date of transaction (i.e. Fri Aug 21 12:48:59 CEST 2020) +id // Identifier +orderId // Unique identifier for the trade i.e. '12345678' +feeAmount // Transaction Fee amount +feeCurrency // Curreny 'feeAmount' is in (i.e. 'ETH') +orderUserReference // User defined identifier for the transaction (i.e. 'null') +``` + +#### Complete Example +The following example gets the User trades of the currently selected exchange / trading pair. + ``` +var count = 0; + +function start() { + var subscription = events.setUserTrades( + function(event) { + notifications.info("*** USER TRADES: " + event.trade()); + + if (count++ >= 1) { + control.done() + } + }, + parameters.selectedCoin + ); + + return RUNNING +} +``` + +#### Example Output: +UserTrade[type=BID, originalAmount=1, currencyPair=ETH/EUR, price=346.10000000, timestamp=Fri Aug 21 12:48:59 CEST 2020, id=1, orderId='1', feeAmount=0, feeCurrency='ETH', orderUserReference='null']' + + + + + ### Parameters From 447ff1512e178d9deed7fc8ffc417db476775652 Mon Sep 17 00:00:00 2001 From: AwooOOoo Date: Sun, 23 Aug 2020 12:04:01 +0200 Subject: [PATCH 2/6] -Added Crossover Trader Example --- Example-Script-Crossover-Trader.md | 280 +++++++++++++++++++++++++++++ _Sidebar.md | 1 + 2 files changed, 281 insertions(+) create mode 100644 Example-Script-Crossover-Trader.md diff --git a/Example-Script-Crossover-Trader.md b/Example-Script-Crossover-Trader.md new file mode 100644 index 0000000..dbaa812 --- /dev/null +++ b/Example-Script-Crossover-Trader.md @@ -0,0 +1,280 @@ +# Crossover Trader (V1.2) + +This is meant as a full example that uses many of the script engine's features. This implementation will be updated as new features are added to the script engine. + +Crossover Trader is a simple automatic trader that buys or sells the selected trading pair when two moving averages of different lengths cross eachother. Crossover Trader is a simple buy/sell automatic trader based either Simple Moving Averages [SMA](https://www.investopedia.com/terms/s/sma.asp) or Exponential Moving Averages [EMA](https://www.investopedia.com/terms/e/ema.asp). You specify the lengths of the fast and slow averages and the interval at which to sample the price. + +For instance +interval: 5 +fast average: 12 +slow average: 26 + +In the example above the current price will be sampled every 5 minutes an each of these samples will be fed to the slow and fast moving averages. Since the fast moving average has a smaller length it is more responsive to changes in the market and this moves 'faster'. If the fast average crosses above the slow average a 'BUY' order is issued since the market is trending upwards. If the fast average crosses below the slow averages a 'SELL' order is issued since the market is trending downwards. The orders are currently set as limit orders at the current price so they should (partially) imitate market orders. + +The algorithm will continue trading until cancelled. + +### Features + +### Input Parameters +The following are the input parameters for the script. If you are going to use this script please create these variables. + +| Name | Description | Default | Required | +|--------|--------------|----------|-----------| +| intervalSize | Interval (in minutes) to to take each sample | 5 | Yes | +| fastAverageLength | Length of fast average. Needs to be smaller than slow average.| 12 | Yes | +| slowAverageLength | Length of slow average. Needs to be larger than fast average | 26 | Yes | +| algorithm | Algorithm for Moving Average (SMA or EMA) | EMA | Yes | + +The _intervalSize_ defines an interval at which a ticker is created internally to tracker the price at the defined interval. The _fastAverageLength_ and _slowAverageLength_ define the number of ticks from the ticker defined by the _intervalSize_. Since there is no current access to history data in the script it you need to wait for the moving averages to fill up before they can be used. This time is the _intervalSize_ * _[fast|slow]AverageLength_ so since the defaults are 5, 12 & 26, this means you need to wait 5 minutes * 12 samples for the fast average and 5 minutes * 26 samples for the slow average so be careful what you set these to as it will take a while to be ready. + +Here is an example with really short lengths which will have the system ready quickly for testing, but obviously won't be much use for trading. +![image](https://user-images.githubusercontent.com/17175274/90343481-f1db4880-e010-11ea-960f-0c9c428d2748.png) + +Here is what you can expect from the Server Notifications. The trades themselves are highlighted and updates to the SMA values are provided at each interval. +![image](https://user-images.githubusercontent.com/17175274/90343512-3666e400-e011-11ea-9c7c-601a62a38c7c.png) + +### Code + +``` +var lastPrice; // The last price data received +var subscriptionTicker; // Subscription for Trade updates +var subscriptionBalance; // Subscription for Balance updates +var interval; // Interval Object +var lastEMA = {}; // The last EMA calculated + +var quotes = []; // Contains arrays of historical data to calculate the Averages +var balances = {}; // Contains balance updates +var pendingOrders; // Whether we have pending orders +var debug = false; // Notifies with extra information if true +var version = 1.2; // Version of this trader + +/* +Initiates a trade + +Improvement: Track Trade execution +*/ +function trade(side) { + var selected = parameters.selectedCoin; + + var params = { + market: parameters.selectedCoin, + price: lastPrice + }; + + if (side === "BUY") { + params.direction = BUY, // BUY is not quoted so I can't use a variable + params.amount = balances[selected.counter] / lastPrice + } else { + params.direction = SELL, // SELL is not quoted so I can't use a variable + params.amount = balances[selected.base]; + } + + notifications.info("Trade: " + side + "ing " + params.amount + " for " + lastPrice); + + // Place the order on the exchange + trading.limitOrder(params); +} + +/* +Calculates a simple moving average (SMA) + +Improvement: When #985 is addressed we won't have to manually create a SMA function +*/ +function simpleMovingAverage(averageLength) { + var sma = 0; + + + if (quotes.length < averageLength) { + if (parameters.algorithm === "SMA") { // Hide text if called from EMA + notifications.info("Filling the SMA(" + averageLength + "): " + quotes.length + "/" + averageLength); + } + sma = undefined; + } else { + // Work from the end as this may be the fast average and doesn't need all the samples + for(c = quotes.length - averageLength; c < quotes.length; c++) { sma += quotes[c]; } + sma /= averageLength; + + if (parameters.algorithm === "SMA") { // Hide text if called from EMA + notifications.info("SMA(" + averageLength + ") = " + parseFloat(sma).toFixed(2)); + } + } + + return sma; +} + +/* +Calculates an exponential moving average (EMA) + +Improvement: When #985 is addressed we won't have to manually create an EMA function +*/ +function exponentialMovingAverage(averageLength) { + var ema = undefined; // Default, buffer still filling + + notifications.info("Lengths: " + quotes.length + " " + lastEMA[averageLength]); + + if (quotes.length <= averageLength && lastEMA[averageLength] == undefined) { + // Initialize the EMA with an SMA + notifications.info("Initializing EMA!!!"); + + if (quotes.length == averageLength) { // Wait until buffer is full + ema = simpleMovingAverage(averageLength) / averageLength; + lastEMA[averageLength] = ema; + notifications.info("EMA initially set to: " + ema); + } + + notifications.info("Filling the EMA(" + averageLength + "): " + quotes.length + "/" + averageLength) + } else if (quotes.length == averageLength) { // Array is full + // Calculate EMA + notifications.info("Running EMA!!! " + lastPrice + " " + lastEMA[averageLength]); + + var multiplier = (2 / (averageLength + 1)); + ema = (lastPrice - lastEMA[averageLength]) * multiplier + lastEMA; + lastEMA[averageLength] = ema; + + notifications.info("EMA(" + averageLength + ") = " + parseFloat(ema).toFixed(2)); + } + + return ema; +} + +/* +Update the moving averages and check if conditions to trade have been met + +Improvement: When we can load history, we won't have to wait before we can trade +*/ +function updateAveragesAndCheckConditions() { + + // Update the historic quote data + if (quotes.length < parameters.slowAverageLength) { // Since it is bigger than the fast + quotes.push(lastPrice); // Buffer is not yet full, push more + } else { + quotes.shift(); // Buffer full, make some room + quotes.push(lastPrice); + } + + // Update the moving averages for the selected algorithm + var fast, slow; + if (parameters.algorithm === "EMA") { + fast = exponentialMovingAverage(parameters.fastAverageLength); + slow = exponentialMovingAverage(parameters.slowAverageLength); + } else { + fast = simpleMovingAverage(parameters.fastAverageLength); + slow = simpleMovingAverage(parameters.slowAverageLength); + } + + // Determine the trade state (do we own more of the base currency of the quote currency + var selected = parameters.selectedCoin; + var baseValue = balances[selected.base] * lastPrice; + var quoteValue = balances[selected.counter]; + + // Provided we have valid balances and aren't currently waiting on a trade to complete + if (baseValue !== undefined && quoteValue !== undefined && pendingOrders.length === 0) { + + // Determine if we are in the trade already + var inTrade = false; + if (baseValue > quoteValue) inTrade = true; + /*if (debug === true)*/ notifications.info("inTrade:" + inTrade + " - base value: " + baseValue + " quote value: " + quoteValue); + + // Don't allow trades until the averages can be fully computed (i.e. are defined) + if (slow !== undefined && fast !== undefined) { + if (fast > slow && inTrade === false) trade("BUY"); + else if (fast < slow && inTrade === true) trade("SELL"); + } + } +} + +/* +Executes when the script is started +*/ +function start() { + notifications.info("Crossover Trader starting... v" + parseFloat(version).toFixed(2)); + + // Initialize the lastEMA hash if we are using EMA + if (parameters.algorithm === "EMA") { + var slowLength = parameters.slowAverageLength; + var fastLength = parameters.fastAverageLength; + if (!(slowLength in lastEMA)) lastEMA[slowLength] = undefined; + if (!(fastLength in lastEMA)) lastEMA[fastLength] = undefined; + } + + // Check our lengths are the right way around or the trades will be backwards + if (fastLength >= slowLength) { + notifications.alert("The fast average needs to be smaller than the slow average. Aborting!!!"); + return FAILURE_PERMANENT + } + + // Setup a time to trigger at the requested interval + interval = setInterval( + function(event) { + updateAveragesAndCheckConditions(); + }, + Math.round(1000 * 60 * parameters.intervalSize) + ) + + // Subscribe to the ticker / trades of the selected trade pair + subscriptionTicker = events.setTick( + function(event) { + lastPrice = event.ticker().getLast(); + }, + parameters.selectedCoin + ) + + // Subscribe to the balances of the selected trade pair + var subscriptionBalance = events.setBalance( + function(event) { + var b = event.balance(); + + balances[b.currency] = b.available; + if (debug === true) notifications.info("Balance Update:" + b.currency + " = " + b.available); + + }, + parameters.selectedCoin + ); + + var subscriptionOpenOrders = events.setOpenOrders( + function(event) { + pendingOrders = event.openOrders().getOpenOrders(); + }, + parameters.selectedCoin + ); + + return RUNNING +} + +/* +Executes when the script is stopped +*/ +function stop() { + notifications.info("Stopping"); + events.clear(subscriptionTicker); // Stop the subscription to the ticker + events.clear(subscriptionBalance); // Stop the subscription to the balance(s) + events.clear(subscriptionOpenOrders); // Stop the subscription to the order order(s) + clearInterval(interval); // Clear the interval +} +``` + +### Potential Future Improvements + +- Add the ability to pre-load history so you don't need to wait for averages to be filled +- Add the ability to call SMA, EMA (and other) algorithms directly from a financial package like in the chart window instead of +having to reimplement them. +- Offer Market orders so fullfillment is guarenteed +- Loss Protection - Limit amount of initial capital that can be lost, otherwise exit algorithm +- Investment Limitation - Limit amount of counter/quote currency that can be used for trading +- Make Algorithm type dropdown selectable instead of being typed in + +### Known Issues + +- Cancelling the job still leaves subscriptions running (engine problem or script problem?) + +### Version History + +| Version | Changes | +|----------|----------| +| 1.0 | EMA Support - Added support for Exponential Moving Average | +| | InTrade Detection - Checks the balances of both currencies of the selected trading pair to determine which side of the trade you are on | +| 1.1 | Balance Support - Looks at your balance of each currency in the selected trading pair to see what funds are available | +| 1.2 | SMA Support (Fixed amount traded, requires manual initial inTrade status as Parameter) | + +### Disclaimer +> Trading cryptocurrencies (or any other financial market) involves substantial risk, and there is always the potential for loss. Your trading results may vary. No representation is being made that this algorithm will guarantee profits, or not result in losses from trading. \ No newline at end of file diff --git a/_Sidebar.md b/_Sidebar.md index 54663ae..141e80b 100644 --- a/_Sidebar.md +++ b/_Sidebar.md @@ -17,6 +17,7 @@ 1. [User Guide](User-Guide) 1. [Scripting](Scripting) 1. [Script examples](Script-Library) + 1. [Simple Crossover Trader](Example-Script-Crossover-Trader) 1. [Supporting the project](Supporting-The-Project) 1. [Contributing](Contributing) 1. [Developer Guide](Developer-guide) From a77275af4321c387fb9d00bebb14ebdaf46e0de8 Mon Sep 17 00:00:00 2001 From: Paul Matthews Date: Sun, 23 Aug 2020 12:17:43 +0200 Subject: [PATCH 3/6] Added Crossover Trader Menu image Added Menu Image --- images/CrossoverTraderMenu.png | Bin 0 -> 30356 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 images/CrossoverTraderMenu.png diff --git a/images/CrossoverTraderMenu.png b/images/CrossoverTraderMenu.png new file mode 100644 index 0000000000000000000000000000000000000000..feed3f67ce45b5a5cab550c2cb14823356e53122 GIT binary patch literal 30356 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 literal 0 HcmV?d00001 From fb0223d39e6d5273f8d40361497a00b51d1b6fc5 Mon Sep 17 00:00:00 2001 From: Paul Matthews Date: Sun, 23 Aug 2020 12:33:18 +0200 Subject: [PATCH 4/6] -Added Buy Sell Image An image to show what a Crossover buy/sell looks like --- images/CrossoverTrader-BuySell.png | Bin 0 -> 108499 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 images/CrossoverTrader-BuySell.png diff --git a/images/CrossoverTrader-BuySell.png b/images/CrossoverTrader-BuySell.png new file mode 100644 index 0000000000000000000000000000000000000000..bcc6630698afe754c722a94fdeb42075407d0966 GIT binary patch literal 108499 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 }ySa312c0Xg z2*a2uc$btk=lz8OzR#@aC!q8hB{%<+qW2f|k&J1t6%z`ZxRmRz$dPz#8|t zk6x{FsptLr+Ef&Xvlaq}rjT(N$g*8i5^zND(Ug}v6TzuKfLq~*s0^YQENi0~rcS27F)Alhzb z7)pi^kaD_5AWQQrI3+q`DOdlTlu@QYa-c;`8KNwp zi4(Js@D%V>Xh2Q)-{A;NYSCe-SHd+`b=EW8koa_5YuDo>T&Gpa{ycOM zssDNc9*{}k!@<<=Z=fD125WS)(eG$##?NV4*3#4CCUZ)DPLUf3Qk)R$@V%TjFBKOT<5RZ?;p#yeHSXrx=e5SWj~dL3GhHhoMn@=y$eEkNIH zI|4|+9_VIb7fz#5D?COanxB*T>`3(!xn6dD2`8p-k^_TM{>M-FR$~dh;OWyS2^Lp?z|=v_Y+YP#r?(Km3ns2&S{^4P-Fou1#xLsTTWei@SB52yD%kGGB)uChb6&L8CVp*?aK}5ROHh z0kh%vVdApq(0Nw$Ifst&$}h&azdUA+gN!aMqO3%p{Drar_LKJGA5tRlLW0=`hfHg` zQk_IqUCGtLwwyBRt%9t`ES2A1c0K$Sgm-dxOOtrYoCMWK(~$(40o4g?gZgy%`&L(3 z^m(B<0@Z724munrATm692H3ZT2&HJ*qp`~}^rp3AzelpfDg6UG();-~gy!Eqm>R`> z0h(D*zKf`N8#=7cj**sZ_r#mH+=qK@>8MtP*kp4E5msIJ*B{`*kjuH#l_Yuc)iB>? znMJA7joi4rkrRsTRf&X#g6`%#xitopXp%s#G0M4P9gTu0a5uNHdt(QD^H&8WyS)sz zc?^l3Y}+i8N*f6`gdTG)R$;=(1+UaGRnMg@FU{FzG8>L|Bi?qCks7Bu;TWsz+h#|G zRayUs=>@EjEOB=G8q#08K2*6g{S5%JskSujYh^TcxcW(VEl4n6){VJo zKvTI?0tu81qg6tXVwEE2RB?Zu(uaWxPkY6Vb~uYvGBP>g>!84{^3I@#37t*_)p}p+>$M(?IRIWXoAHU>71o&Yo2n9QJk%IB^ftl^q zs=?H0+LxgeU2%_Nacinwqy^zGiE~_>#IW3cf>)}qCFIv@E~)i@5Da-{x1aYVxo?F= z&uWB{wtjVAc#P_b7$`kf=sv6yaMBO7=RYpwP&7>-cvU|@W#&hlkBeG6hnE1%3bSG zZ3wo$*pzcJ4w;xx^ry3ocZi=`G{N-eA!xW%Cs) zYnJQ7R^{6jCmlE|&+FJ+#^D;ZVQH4=k3Uak!{7)o0{Lb+|57OIUDGSxU+v2??nb~%YRo1 zFvErjq!qK0vN9gu>4E8!jfg$ zh>Ob~!~=GAd!^|ndm)WB>2hJy86A|!#2%$-XvnrK5wb4z);;+KEC-jJCP-irT?ZV% zzsC^oJ#JF4f7Mm>t;RAz*_hCm+-4l00PQrI-9Ae^plZvF*$)#$&|HZ0ArE~0xE6E4 zQD8QC+ndrv%~CKgt@zBzFSdfET*RNg{B1*=w@O0*TWL`)IbxQ930BQIei=*B1DvP_ zWoZ-N7s1`e?)G6QIZ9J$%M+iF!;Nu}Pt8=u$iC2^NVx%l=M@lN{dXOdxHO4TCj?sPPVs7=YuS{R%ldHtX+ptV?*qBSK9>lR^+GH#ZnH!I z%E(zzvFzUIFD)Y*f2yU!1znRTbhrAH_-wS+u`y(#?zZ%E^`vO+KB5FC!ym2SeR?F&_Y_= z+q0+#m7&xm%{`k7hBTskvr_vA?~~@VYeSEC{_-golnuR~2Krz6719xf+OPzQ=j9S# z&>CL<&s7M7%r6sa-U$E-m-0inx5m>3p>`Y-0LsoSWkNo_(*^JjFD|xl?~W+d5vK{@ z1peHNny1T5F2(bl^rr6i604S-*c8V0w{u(ePz^UD#5pp8*Xakdb<-k{EAarm211zT zeF;B%qlo3U55-$gqke$xU>_YfUVwO>^)(fyf*Ii*A|#%)lI8xSmX@n@M4x4K2NORz z9o@R6dM44&(pC&RTqJeJ_mbK~Ynq?dkc36rHxHGG@41YE$5m9|`G_ec#64Fhwqk9# z8y@o7YX-AY#>`pa4`CDiA+m)ZA1U|yHHRTJ(UA}qu08zPF#JgY1lk2P%#G$=k0{r<%@^93) zh+9LfVr_Zeg8F=X)R|}3Fqxh?;A1jUT{e87Qx z=SVvyxib-Gbih9T20>C$iq1!CF^f!^47o#_E~%KhXm!p#(>y2CWNNH#E$W(O&X2K* zJa0RE0gja8Wfu`P85uYljV|XU!&mWMAhBLHKNw;&4E@3i+}5FS3%0x}a&Pa1Wc=+3D0Z5Vok;)Eevu5X`oXTZc5n4H?X49%@yAfg)zVRoV7gSe zWlJZ&1o>*(-}m_3vZUW;65V>SZ#C5}@s&m@mmKadAk0(sIo@E+$l#MYAx=d9tMmBe zoM_H75vpmR~?gKgu_>SmfR$er>&=yP5;pmebgn5R3z3{srbq8TH z7Yzc;y|!C@sD_5z%`9YuAB=#2M-H5NFdAw0f7OJ8uUfAg){Qb9SMQjr|97vRmuo!A z`wAEI0ddo|FWAUy45beX^t{MRbVG~{00;mB8a~ff&2{u?oA~QXGlMg@e&c60&iKvY z|7T?)aYkG^a|Dcdx=rO=SJ)tPl2829Y=~!{r{vSy_m81uQv3x_ zd8JgPbfV7F(oUCgW9q6n+Z>b|+}xJBe7fRncP*rso!IroOc{SL8z^tA;$o8-SJ#gL zVM2n8lLUdU3tQ-U$6jr2Zjv}iJ@dV8#Iav*F{H<=qA(Se5srk{a_T%_`v6ns21|@Q z_cI58M0o{0^tWa!{izd2b(Vyc548(K7^Ng#28U;Z0#=DO_&0_fV*^icPBlQi?}8T! zqW>KQ}sslBnka!Uv7I*t<>#udGi2r)GC#yWc8jgVcsc zN(6367z4CH5g&STug2qxHPrUc`YunIQn`xft-;x(+`=w9aOWu&7ctoJuX0xlEf$`*L)rhH&u-zua{os&1F#Nq3kVEeXJqBX#08NKBdP$Ske=oPFxixI|szKWaO zZd6^rMvDAq=IP=7R2c#;AY)uL#LA;XAm!jTZG2(gScJ3@qn>*nH_k}LDPJfFU|&NJxDwON5Fo_|4&MG_(qLjRm;JX31}Gk^VD z^?He-(s6rdN6|~n-%9!=J0}OFpVi!)Dw+>OQue)~LMBhK`+8lI%R&~y?>^7;5n>y6 z?4@e;@YnsD(^J)a5AhObdO08bVB@(|NjYp2=^^;%k3|!{iz+1sVL2iwA zqj<-7`ZM?SdJUEyNDb3HJKLGcK^)qpV&~uj@)SR%qJa8w_L7_>vTLLv~2z+ zY%v+TFy~6Di#S`+8kE!@i2u#K&B(eL>@Nz-B#wLN*ZIL=;zd%r6>yn19WmbP1?>^X z%yeL*D)gG!Ut5VO^NzJWf%F7p)=V57cUs46c9sFtvG(LzV$3=TGIoPpNoVss`Vsa? zldIOA%R9yhskSS+y?Et{v@Qc)@$2vywe_vsX%5XXPq1nRd$2oQBP(KH^PBob?JRig7Ujd*iKSb&hI&WTY;gvEzw1oUx>l5*t~3 zHFwY2uxhu}Fl$GU&NNyYkZJj2r;1k&M9AIT_-~g~tR#1rds@7Xhuk=1KQcUi+`rUm zrHDZqhTXq35?27}l6rap|H&!JsUFUqv7TXqkag3@*@4`^*jf(KQ=(bqj${kf7=k6# zEr>Kn6Fb)%H|ZoG4d|^M#-$4d>6wS~2W19%?w#H^&-rAi(n?c9k(!#+1yxi%%-B6n zUv!nz(JhJUb}V3h^OuMBduGsG`R4PN$f;pul0NR*&nCEFc&8O%=J2+>$seiYW$1tm z7HyNo#s>=2Gdhox3;Z=4gSGMDy5?i78T8(oqv}E9HeS95Lo+h#I(BNVZZDd|XBv3u z%6BAnrHCb0A7V%bd|F%$KE?pwd;g=7E?DR~7uVhv(nI>m*=%0zy4R*KroegrO1U<| z_Sd((m&k8UgaMHSM%Y0eO>j)h8xh+AlNqn?qJ1xsO;V`;s*3ggPgM+nMKTKh)x?e$ zS0lhIk(G6|Kf8_t2dSm?DPl6kJ_$MDjAJ=)S*HsYC5)gpu3yCigm)Cku#_dki(g@r zJ!Q@jxcfb!9 zDpr?z8Mxxn`qm|-v7Gw6pc_X8H**8IW&)QpB)kOCY$XfWsqqdR!buLG6!*Th>iGu+ z49hBny&sfJC^sHmesi7zUrPb~4#{b8>Gg-Y0AAzIDeL;5{#U#!ZqjDX{`MdW&;45P znG`=Qn|GpT@P#2myycwrWZNxi@MiAZBe`rMIAM1CEATUb;>sV*gT5mtLML(!AU6Qg zwF3`GYa{uZze4mFX|?SLKf~ck1P?9Vcc28)l^qN~iOTjP7<1auMfU)1$3`9(=53`H z1xSV5>--BWSnbOq<28>4t5lC#+wS6{j2px=>fL;+^hAh;Rq0CfHozLe+$&hY-hPrNY?2D7ZZtS_D;D|2{tLYX5OA{u~ zUvtIlJorJ%Qu4$=>ojKv%%w_No{J{_;voy%@czabG^k~}Y8fHJB~L^o)0-3fL+rZ^ zrLd3jFA+O+>07nI$P-AWb%etu{^rbk9ytY%_np38@AOT2G1Or+IoCR!#ru5~*E%;l zI}bn0^AcRPrimr+P&yYD`GMCTBk50)#s< zaaTKP?megLzlm(2K8tTkSIAw|7sG5^F3M-8`2hles8;&}$5H8-8x}cph5JK7oe;M4 zD8lRSXKriS3T?1r6-q1zUADI$Jm|hpyo}Q;HYK8BYieqAOQ{zPtvjR$cC&aoF!g9` zS-dyyN(vRAVEt=bU(f&UDCUiQMhfTJTlT}su`SU3pp5HQDBH3&>@zRDASwi5*m=tE(>6L_RqG$l>n zQoyb8&e17vypra7=u9rBf@y#vxB7s`qyRrB>PCAc4<%8X zDZ~UyqtG8pvE1YIF!}n?q{oZ`l*q>Im> z=#TT#zKYjS-Jf%$0S(>1&aDt4sMj{9`cU4#H@!2u{;b!=)S>4Qy2K#RegEUl6j%Qc zD1fho0UfIUsHG{<*N98A3y)5QCN#NiwH%!B)4r$?45PeVsFVG9nW!+jeZ$Zhm~y)T zw77p~4{@j_1C;c$;=MD)yO;zv=!(C%nCY}*sS?mG=4&OPJ{5YETigRBT;xD26mnAK zQ!heq}O=6IbpG-<-QiA zAN{s{QNew}k?e6`T?9Yt%-+CHKITrr;r99pfv5Rkw^zqigO0@tOx3qfV2pj!}5N=OcWQAOI7WzMZ*w3es!j^dLs2C?pi9T4_7W|fD%OT@>?j=t0 zMY_5><^)iD1CW4bk8V#V`BL2apCNZcF6^M2e6!xTgIL6Q#tYv{u1G?yDxIDu;k4s< z;y~p=Eo5XD?Oh<#^^RdtO??SJp42nG6go8Kf(JtJ@qEq&Hwk#Ml9>|(qI30suD zj7BU!C%4mp+6UWJ`<5@i2%Mpl#e&}A`h2>?xFT!fnS?Oa(uGHk;oC@8d&ZT+YqZux zp;d5x_`G-UR(k3)k3(dVL8B?P3zy8e@F8Fg{~zc4H=_4hmHSh!$sbzKC+yww-g>>C z+2m^KTofEGryDGw%x~Qq`U3BaVj3#_dBz2$tnd`_|buXaSsZwa0rk(Pa*Ybkw<6g%Q~X2t9uRm!bjZ|82+hEg)t*0ic5YuFOy zQuLo%z8BSIEYeQyp|JM;udNIBJ>S1~4_qfBE}{z9JrEWn|A~>6frz(`UsaN0)RPM| zCjcs%7o>B!UwkHmwM;7LBym#b1Cl*W>9SiH0|Zoh>Eb#Ql>{4_66V7+JXW*Zfbf?w z7hitFRg7OxHA{>2__4~>4poLW7LO0wY>6jxaOU!8er{9?=t(5p7gQDPP#NgS5}b*x zkjJ&C8`p_hzriH_Bd($(H+WT&U(d;)p=k9mViTOoNrpT+Wfi}3QEQ}y(e~=Vd43~4 ziMsW60W#eVv8w0QIB54E!W#v17ZR3OR(?!wQ6-s&{_2H@lgbOE<}$W4)u^4QtKLkc zWT<-$mX(a~Nm2;sZR4F4L64)Z_XH5+bGx_%Z~RTS-;mU6ZxG@No$!KMW;PyKstz=O zmkF2)=Bu2EK{%$zDw3p0%I9H&WQF~<=bIGHq8bYt%RR9j%W0zLJCd-2JBZofOh#l% z&l`s$9~(}tbsDt`C0Wf=~y48Vgf7=-`0R#L_CKn-K5O`gqYi z9qJ}q{Z08Nk5!F-Pi`O@K&!=%FP>VrD1*1Te1v|O`!2vG_<|GkjV4H?HO*dN%*nq) z$bM7mhG;|3cw)jFcBl*1B3}7rszS+)g#K4#GZ-w=3-3y%T zGpYce1Bm zjVs8=$vjD`g}gp%+7uYv9!PQBDl1>QA8wGF+o1!k&D|}MMi>n}p5mj<#E()4a((S{ zqo>1fEw2Em^T>?7?VDKTUr1nZh?;w&K=@-9F}2Fg_F-0L z>1M`~UN!a2kV&S?D|+*ozMc}9XgReRnEc|oI5_vq8M)C^UI4k4%;Guba4PZP` zA(xaSFrMqj;mTUOuZ22C2kf9!F=TqfOpD{aexs3oYl(KUaf<%~b+hRgq#8`#2VW6n zR7whf2C#*VQYMn_F0tgt8jFeEXifnnVhU-3c{b9^ zJA{r#nl)_f5K~ASNzC}B(P?C_DDLz27qxKzvOd7Z&eZ!f313EdJ5a{ezVtS2I2%1(oXFkR?8h)5 zzU22pg$KnUV>|(QW(z^S?F}asfj9=aGXz+#{RU)uN|jk&&#+m3ieduE#x^ghiJ8;3 zI-Fn0D`v|qPtWG48bCs*gm4~Dky;TcUmK*w5FBUx^aQ=qdj=E|9MEA0#&MuE0}N99 z*=zw7;2%D30yQy&c3ZwQy!4)m%Ka$=WdJ~kM?)X^jib(Fc&=Qwk#8a-lCE&9hqFB&Fo&nLXlz70P^lW#g>y<|vTFD-(&oI$7@`9bQqvpt1 zgl~5ZbGBF%<`y4TNC2R@->qsaVM&Q-v_5W-eBoG~*?!XaFNL9M`MMVh*v8XV{i$*R z)kmJto)23qr`O48SDXNHa+8M6O>yaQn}?PFD7nfe86v8JO~$aZyk{l5ppmRW;SPTZ zx>%K)|5)tW-@zhFZlr0N)VN#q%$vaCtfvO-I}-`>vm3g*R8$kuW({VThRLq8E? z^GHZrMO|J0#&7lgMR2)-oY!05?Dq{1#*nOw8oEJ_u?7TRjbZjS`&yi3)B7*2R-Ntp zbu8`_$nJIZRK4fnTFB=tB8(TYfp7C4nW^j!QVR{ydVdR^S)I&KWIFC7h?zdifSJe# zs>Zh6uYWZ0`57x9FXG#^vQC! z|M@ZDFIotPbAU6!|EtV;_b?i(f2r8}{=kw)W4+z}Q}p(Az{;v0Hxxo? z+t%M?R3227_eu}I=V{UCU5GuZ09lr{C&hcS4b%#O}yA&%BzpNkTi4c0{N^bTTxdd#57&B3g=EKfxoZ7FgT z5(Ve?o&@kjzo6&GoudLI6mwh~+$1&Xh0^4wbz45G$xE%yA*jeSiwWu9eWt_@4M1ne zu82Y54E1ikw?Ky>O%ylj^F22D8rs(jkr8ZT*{HO!=2!r%Vdz+CIJkX^Hc$Fd- zq>{=A4Ku(A{mDI(uIK&(GjfacPO z5=g0|E&X#wqtb~k+Yh&=8$vv_d zlQbGI1URiaW{~Hig=|Q|855J-foe0hJnwU^XA;d1|M^zjVyg35>t6|$qtbCRKNq7d zT=wQWcb9@mluM`7wUn}^)0=yW#R2WAVh`C zLSuPKg&eo=48!F9uM)#1jzkU4vl_A4)k);M?o`EH4fP1eOM6?z8dH?qyEqgB%$ZQt{xr zMIu%MZfnB_&0RtM*nevkY?_}ihoMllSx>=oi%H3Hd!o$eU=xVFUd|W003AjW4eO5X zw)EP~dzEAZ>g9bW_i_2#_{2W{Ize>M!Mg9sCTP`!rCRRfS^)XNvF$Wim5+68<+Q_4 znDc`8Uc0E=@smL-xQcI#Jty{xGc&FllZ6)W(H^f4J>|UnCGR-^H{ksQaf?~?@n&)g zruWn>&|^1SunIsgXrkEkj59H?0e$=T##FSs+nU4p#5StUuWDLalw>sACQBQZN`w|= zQqu#bj~~uJux9DS5;h(Up#8H&_c(GY^SfR@;VddDf|06e47~FHp4AX6#>K^T^wsOa z0gCygH@i%?rQe^YptxA&x+tE(&3$*86Pnp(=LddVmYw|xH9kI`KdG>d6i-ZU@b0P} z=Fa8hesR4jO`CSgt=dowF}U%A>APY7y1T2dl0Itz;V{h$WelZMz*h=jv9e6b?J=GS zPLs@T#TF(d-L%8v*cI{<9q=A>;$&_}p-|--$3Y%R0HBs}uZ&#V%^;JY1i62kn>YB}MH{=4!;V9Xh9+kp98(oFP2Cu84vjNKv` zg!skp3ZC1_3n)my4i%Kl!)$By-gM*AQKROnw2p6c27d4uRZZx6^@zWQI^Xp*D(SYB zy?c+Ls-U&!9<~?UtJyXHysw|2`Z>gh#1*2)|Fl&L<+E*gRm>Gy!h$0aNb7t`!${Rh zml^T0JNSJZ+(8!6(4wticU&9+j2bnbQA|wmYpuxg=voG}Vy4Rax%DO+?1U$W>>OOv z!-sM;f;Ju#of3Uy$R{;h2QAxgwZIP{Xk*jb!%h2}=35t_GH_y_&vL~%C@v24u$kyv zx%947K@?S2h-RNw->}h0pCBQt7wdXmf-x{P!i;osuCJ-6?bh z!qU$jc$PCaNxItKeznvPYHOU197_ATR~tarP!%=08mg76w5)HPxoU@a8{@Sgq0GXY zuZr2ZygxGAqmB8c-EB7j1s|iYOD=3_P$NQf1)Q^2Bm;T&5iA6u- zy!|k=9775NLfQ|q-lF-|*$K(y&LeS5ptu*SzYqnD2tVIQuhE; zW0L9Y?8~#G!Map9dFiN9Mt2m1=PQub@Sn_Aik;-^d57VU30O|R$McF+yQ2Eca|SJs zqXE761w8=6RUKtZ>AvwWXs^cUd2l`;YdBw+zHgBgL1}-24vIk6c9TmiP{v;0?C=!Z zSP-aYeO}|RL5J9Z6uCfq$A{>mMcnd}5C<6lEo$GZtONvWB8M79b=2Y?1`A>u%Y-5^5Od)nn~eXQ z+iTkQ&d~nwp(qg>zO`=a&VIdevZbYU94z$JX9twi%GD-uqEMo~it1EEdse9q(1@)9 z9$kumDhon^UM`%{f-cbHR-10=*}XQpD=GaL^9M4m`q@$F)lyNJ@tejnUm36*WdfSl^)qD2SC2*x z$IsA=30^o$6!v0f=K8Qvi#k{=Sv|R=4c`AAyg@341Rl&HL-ep{7}1CV6A^5@?5ORB zy@f%2042{gw>4NwqY`eFJEkdn)l0U8sRa59wD{Uo&JE2!(&C)S zw0^?MM+ns_Q8F9cTh6usN=paj>0VA~|E!HUvw!8$EQ$GdbZGyTxA`L#PD|b&@(Jw6tka;=*w!_(126^Z`g59;y)^KcW6K+W1cHq7+^V4rl_E%#zxhJpFi7G z63f27$$#8Nx6Y#b_2!BvLji#Bw{`(}_f30y#{!QcEq+BWm+;MNr0RE*UI;Fr6a|z( z+6u!hO?pfTc0Nny@b_jIOUqA*Lr9=aK?blw2C{WIx>x(!tYwId=h5%qBnNp6+>2bpsa!5i2q`*DTwgAjD6mp1vG|ideAn!%-DwQ^|7^Iso zB^yed?{Lz}w_`n)XMn#_`BYP-+P)iuxt%`>@^`Q6_r#!;1Wz0^#}&``e&tq@ z!3T8P{=rS{tJlC?OK_gN%y00PxLm2ySzYOMI1X~HZ5sK+BQ9bNke%oNQJ(mHzXs4edBGYDw(2G zyq$hYc|P|d{i{zls{jKJ-3ab*v|UH*jo5=Z4Zh--qX*3nlMPLcg$Ca~fnVmub9)5c z$&J{#K!U`(c4~ek1OA)I5=KXmRo9{1GT+h+2>J1buE`zi=G`3AWoXA9V@%Y1?r6e2 zYkYbP60P++-={GvdDkc!{+grwP-VJwwMx8Vii_vbc55iv$^C4$f&OLhTJq8 zp3bbl{aM}yq?xpjzO$4pQ9J&-_`OKL-HiJ=S*rC;wfFb)%Hv;Ak?ZSgwohX!`pkYq zOBH$-woBvuwMvrHzff~m$%M-YVR2|$w^F2l&dBS;PM@nL{-N$!g_rLdHp;OF_Fw=; zo~DSaBp2<9|14iU3^A|HQipJ)*+k|_YoAnl`~ccd2Clf1Bpr!M<}NSoZv~x3Dv?Ze z%Yt8ehi|F$FZtwX^e;IAc_ty$?y%}qZMC2J4Mdxb8u_u(rDA+oNSkyeZrtmOJ=xTOfhRy2tI9#ggQQ^ z(M7ut)DwI~59hL2p+WEMZQv?1svT)ltKfTb?G-xo%||G-hG-A}EmicQ+$|RN!%zRF zV1sw#$8g^~{3L?4a@7N<0^0xre( zYA|0fd7^?j`(4E(5(GCy^sTFr0vSq%=y&@D+83diU9?wpY=$8J!-6e_*$~Z?c;h_G zf|uy310kE?JOpY!ftR>n4;Fm^`KP<5UH&`SYv1?2VTQk7-n&N#L|M#tC~B=Vap?qy zUyrliMe~KHp_w;$@`rHks<)V$k%A(`Lr^aUx3d+uF-wV8Hb*V>p|`mP`kb%8(OwUD z0-pj?^<4930X~$73@|H?@=P9>9(K=!U5DIA%FVNU8%3g7o7gM7MKf5KJ@4o+tmd_@!%QSzc*Pl;oadR`|n}>{jT?bcl`-8KW24vXjEe} z*Xrasv26CWd9tSUK+blt2ER|bu+8%~$)?>?(Lo3XfT2vQ{2vRjyIZXu76W4}5(0w=_(s%SgrM-3a!@as9Y9T$R@Y)yoe7#Jgr_mOBOBxM?#t9Y< zS;->e?GhJ$el&u$oyvvpWlGI z50d%G+1UV^EXd7`2eV`8H75ST$rl4|fPVhjK?w7ct&j9S>3n#%%K!@0V>-ocYpz23 zE&*_R;SKP`w*Q;J<5Vmqittx z>ONPCi;}SUBK!S&Qh%1Epp$ssSs8;{f9ojUpg)VPZVsXlb#IZ5y=PM(lnuz+i=vv( zUx2a}>veG>egwbAy}>otih05+ATacxH^y<2le51kxq7?{h+!11?ArfiO~`jkAf)=Q z@AAdw>Jjh#o^_uv{&{AUvMW73l`C{zUImLZG&+xw6q`(|{~b%f|Do$GprU%C?qL)W z1p!e6X%Uc+Qo51u8oHH|M!E;21f)y4Ye)%ch7hHZ7&?U^rG~DV{~hD^zTdmn$6Brh ztdV=~bI%iJpMCZYfj82t1eE~>gc^H*0bvnS2za{&;$F{lQ2TS8O5=K5RJ0ppllsNY z*(JRwB}J16wpU)fZk6l6PJsB~VE1^r7w{d`T zD>0CmJh^+b<9BpmWG5`&pBfC4riFCpssXDn2BVwtVznN33QLApr9OAcKyNZn+0wH^ z7TqN4u*@6wT70>woZK?sYwq0u4Va`^?{4 z@d|&UnTo^qWftW^A0`olnaIsQ*X2V`QjI4h5B~fp4}{@huz5Vcn34Dsor7~1_h##t zx&mm2zIZve0SKFY2x$&6>Dn{s5CN*f=Kbu5jR>sGxiLKLitP7az(LQpg!}&@PRt4r zx%Yn)BF51ZywULx(z`0nl5AY(G21m~(1ooLzX*?nHrHs^X@^|TWm4ZOeg^%0tN!AS zUAbrI8KU>!453GtU&AT>4HyRc##f)*|46F&2-3J^J<20tm|bSuxY$2v`53}KCJ?R9 zt*g4g(RU5eY`H9-TMczv;bwPlY#3~zX>4HCO6g!7X#jDn3`aMRqFsT0jFy}{)3}_v zu$coUQl2%obYCMqi^RXlM1&8trJIRh{tl-9o-T|Nkm*00($UmpMHM&c-6p+UW_pIu!Yht2taW)|Y>@0q1_9eY~5FgxE19Oo91#t_j4Z%!4EPcvBZ7kRB3A^vcd|_w4&giOt&Vez{@#d^eEvh3t7HJy*S!E7Uh(+#U5Iaeg&d+ z`3!B6(uyPLR8aMxDKvUt{WdHn3F$;X;z6!rm?N@P#CDLt>i2Z@8(CBC;(|wH5!Aa% z?b!DKYE2x^AU3$~$XQqcgtMN@>{jQT z-@ER7>pid)X?%^*he#~P9Bc>^s2LM7zE62J)mw_B>>pl`Mo*ly8(9cUg_ zeVq(6%I&450XN+F@zBM@B&Lx6dD{o4GY)b#v*J}tejhjARc$LOlKyz7v)@K+mZcI| zgVv7p-t;@bv-IUAc14$a6m898Y7}TLJDoA5o2<cEza-tz`WGSQwW=5e?IG4TaQ6)Zc@QXm%UIMkyvVMcs0r@F;=5BP0m({FU=1~`+eLRlNk|Z> zald5oq}iUR1YM_a0tQZmX7Ce0Ds7fAq<<$V=Cd||>PAw{Q2joT8qQeaqe>uuG{X>p_bu!ORzaEi55Jw^4^9j&@ zJ=!d6OsS?#T=~v)8LINQct0oZSYTOgS+YBaW_oM4yv)el%oi|f6gNi< zX9y0DHSgxuIXUrXfiroKXbn4z>O?2WzY(1MmPnCENB;V{o{uh7P0f3-Kew2N|5BS4IYhb$!38t;TH_qNmrWm7+Es}e2u&CTklGr11QP@d% zwZslt7=v|;5lw(EIbnOvtiFyDqIgjdr2FtOVtg;Rbwk)y-Sb+e3y=knURnh0C%DIJ zL@CA&TKkLw%rZBc6%-uYFMD~&y(4rM8GPrpX_)*BOdrk4!-V>c;F4`;!sM1Tdg z(evXym5-x&`+*|5k)N0rA+I(a+vLrMk_$X(&3&uFh(EO~wqqb}ih|PDBdjdKaoCjv zOE)Ma`($RxHTP}>e|9(leS`wA62oqMz2`vsr=PD@W!NDiC)Kx*VjXgxg^nRX5A7); zx;6G%e(WazvL;_#BYeIs=TV17_b_A(DPOpBaU&8RerFo7H2D#BGjGQ_!?!qyAnqO> z(4=YTzLQfzNp#YQTbshaH`|!+Yif$Aa_(RQfw%HPOWoNFv}HmQZ)4Nrlr=Xi9A5*~ z5#%ak)x?B3WN#;NSc?M74cQ_Y@XmH-HQ)A%y#*+nVCX#gpBz0LeV|CF&AoT|_dF&W zyB8Ky1A~fsN2x!tv7y^w<5FUZY4v@;_dPX@{#Hd!o6)iIX5F$U1G9y4(67C{WWt0@ z1j30bsOvS=Ds+1oi~r;XbE*y(L=-_q^%1;GE@X0bINi4_1HJ^8AeVOYg`-zyuWQNW zrsOzgA#YV+KMxVL4B~2i(QQev(1gC)*BIqsJBeXbG`26`4^|6TZxp2-WN?MR=VUw4vpub zf2upczVKE%62R)@{fiR1P|}sF*}h1!M<^vj@M-ZN@djaAg%1rG#_s)F+ok?qEziOuf+jx){{bXf)--W>&z>eFX)o%}Z zEmU5So7lqh)U&O!MLaA9(7|I@;rDfN(o?5wtW5x&Y<PDHpT!SjvVW10BMLS1#g1G>Ke-Nq{PCLqo~JUH|nAcZq7Kx3!th4_j(xb2$^~%sj4`zS;2638x&V z?V2W2Sr}Oe^)7I)o1L!z2lfg4JvQa94`^;+ZI;YO%0R~(!dBa{*B*_Ke ziqZUzu>XH!KLLmukuw9LM(W?Z>5S&o8&RyH4J zNEYg&pSFDawmP6;J0^W@Fg-45>FxMtOl$j)6cAuWTgVO#f_LhGRo#~KQMa~$z{Zu~ z!-qsNh5NePXG92}CTAqbZDCJ*3H4*VETe z+tRKy>IPLv03x)cnO;ZT*4wL3hCi^$?ir}LyC-jD3|CnWrE6ZV(q%Zw1Ehka-hOSq z^^p>FQ6a@5dq?8#)L*nbj{r|W{yp{O2-i&)*@DlpqjbL)c65Difj_g0#HQF`iHZ7Z zxt}rRlo=go{Nn!r6{1L?@S6%HVCwNPiO_uHb(IK~g|{F~3gjblfk1_e1Q&J6h>hI_ zGvPi)p_AYmrVU1p0!GXZVmh3%n)DO?iEZ5Y1G_J!IMrAS%biZW722edAkz5^Xi7f*t=0TV z@PFP`JMgwVFqQHCC>3HzS#1&oVA-Z|Lx;b!=9KF+#-*t=zY#2Iw7aUWmdvr8#OY5;Imum?lQMpfj^2I7VhYXDT5~$HG4jm7M*E>r4G=B3 z2VsAXcQJacl15~IWS?y=9i6^rwb7gZxO4!%-|xb&x#y)@I;E!Dqv-rRbU2ZJFct5@ z_;~b{_9|7PAz*Zz&}FPewZ1t!Q}Si|twvks`2;-#Ob|oQYt13S_7`Zx?bp<%rG;v{ zuJt?~?#q2aD)t(%)}}zaC^uOBLyi2O21=Me?tr4Zc`^eoF_LY%mnwJv=%=QRCC>g^)&di8Beu6ij3@++~>CcaDkT=8n zFHLG7uA}gKVv2XUW&zQkSXdYuiy$e{IQ*?rcJ4sJkHCfRzvk&y!(WVbnkp5O=yKA= zM-^(cq9}zvo%OkUaKx*z!IuO71DcrZRq;hFAHcRZsG%(a4cMm$lc7{*z{=xilmY~G zJxS)_^~PWq+n-+y&*C4fg7t(P5Mri9cL(DBhajtF133|fMesjtRh5Ex<^HD%V-=UX zmxG3erH#Fnb|iJzUv4NN9~|%9Kw#eNkPnBKtXlBQ<)+%Ka`2uXr`wi=6`!2IP3J_a zD|PE0t^k!gn%~R5e=uM=fYEd7zhSuLq>sP2eps>)w(#@k2efIWm7P-Lmc-bDF4*j3 zKPGWc5fFhuy~hG%2H&3skbq!UgL?plmSw?-fZ$_EKg3-nbA6NIvAO#EA!q%)5~Rv- zEuz-p=@6#>xdia2CAo|326dVM4#ggCmDn4R2b=_>3wcY0IZyurvqVXNt{M+7=swwLUpvP2qtlw@D;at_9J5S~HngZ(AtRv7 z)%Uv62OrNl4(B(z_lc=x?+(E|0<0}>E!Opt=dyy-&hliH52*ufk&R zjtJXJ2$mq_Yd0b?@;;uOO)CIq5V3deZobyO7lZd#>+%W1e@}!(2MEMm(YMdk*#Jsu zYM;7FKt&#@4@MJ*kM}@;85RNHp|t$U4EptqCG2U`O%M+KeU^SkjXDm8Y+P2uDGD<7FYdSuG|?t{U_5FN=Wr0 zF=iToIc7qPoUM0^=U){QNp8<-_IR)VYh!cH{1sb*O4hcT(ldUOiL!Nz#^)NG&)5Nm zs%6oTCB)6r`O~avkqv;H-S~YK7D9k}(mqG?55U9ed_!?_MTf)Og5{Gna2(2+*%jPf z`bM(0#E#WrjNw_#huMMiJyBK>fE1(Qh!Tt2$<7f#l5eeLLdtu(6agXC`j~b#$Z~I9 zOGC2J*W4XyZ7ihOZ})OnU5O3n_a&<&_dnmlSo?4O$Dq)&%pU(AGMBy7;0sR-d0ia4 zXgnn9bemLBMWuJcLI-$TlOdr%`C2;9T5&9v5H^${IJvk;9VYoR^-9SIaqhzum{M4{ z=Cs}}#2>s*dl|iNBIhAQMYVd)BcuXH70OAcrb;6hvlS8kuSIbJLfsBc3eR9Ss92m1 zyiu&=9`}Vk-eZ?2#_PW^nWA_cOFfiEk4n;Q6X>Vpc&?>`l!gtY;%Q0Aq%f$im1_+O zUxnKsTD*S+*&yCqOQ!(Ese+%mdkQV3f*uy}xVFb1S#as75C%rZ4?#QiMs`R*;q$6= znr}Ek@@WS!A)PnzU^xp;J$FoKh^}v2+}fn|Z#Ggkd6RJI**;*i(nP(oIgotEKjpVo z5_QnB(Ypom8Xeo$%vlN9;U>W!Edb%(|GlzzR^JM3Z{TVhEj9cs#SIhdcw=|+1eP`CIKqN}VxSp$8!^gHW_N2&F0 zPI99s`*pna?g41-;}jpa;fY8I!uMI6q%OJuGXV$9W&SEr1%l(}v*bSv?H-1+vYY>F z369A^2ge$IfQdq9*~U`R+ZmNjV?%F204B}KbG^GjS0e!&f8_# zCxf^!V2k>5i=Ov@31vb<^AFcT+($n`%YToApho|EQ-4aVO7xe#w$ihLP}~IuYaYi4 zc5scgg(fdA;4}!ElkhGu^j6}g73ozX{(S!nOiE+B_=B?`|1L<$?+-as_0I1*{SW<% zS^wCVO5DXUUJQXGfi(J@%ZtKB{ou{LpoG23)M}cC zptMARJUXl$*;cz2#rr|<=nwV_eAwti4cUB$ z6O0|VC%5e(KnO7BrZRs1P9jT4o_B|xr($(ebSv0p7Mxa9?4Bf)4BPkg>=Q*rKI-?l zsF1MK5S?x9AX%f|xKTd5cyjOXi1y-@=WGW^=z3Cr0wQu~UB;XolU{i|Dh{}pk4!3; zBExoUJW_$w{&?%Yis$T^ZtE@jLu;QMC@-S@V4uM&1GY2^0I_D=6O~Jw@neLr`mZZO zaM;-u{dDiuo+~9}u}(Xxy1+1!`d;LLOG*}16gM8X&~@6ppa$wQEraJpKf!##1@v-P z#p8mSpryiVePIb0lY|7=S%zjgWcVsOzbvGt?oiy%J;L^$gXb_##L6>vrMFsYvtDYYt6IR>pja##8JFqzvf<%xVR6Jnpfsj@hh+9j?Tx!RnL7N&~B_-y4x2tM!-{QAKZcjzy_sD3|IP zHp#$yXIPnj@-jOGW#0_zG=;8zVKv=_)<7bQPIpCfE{YuVhe3_JzZ#%>c%#-D-sV{~ z&8Za!(d;J&3DgOfMzPLr53V+D z5jXF;ILD|mHBcIhh&cej+3;cdS>|S& zuVD#LD@yS^-Zm+FANYto4{n$q;+JycLT%{?Ne&5Lw>l~@(RE6jXbg9AzhCdbcu)sV z?|HJHdl4V*YoE_)dXdPtqYu(yA5v>$NGH>($u=Eu6?E|yUK`=`X6+k|dw!gfRWy3` z$yuu9zGZSh?mM?NE0U*^){9A>=*iW!{f+KtaIYtyagNn~2c6+L_gR;H8nXu6MG%jT z9mb9D+N>;hM6E_jW1YZ-Wg*V3h-^BC+#&D80bJc#IrjT62wEjT0!PFy6ZFk(Nsoo! zlX%_s>~nv!276n-N6|(AsA(^V_dol27j`&bx^K88)O`LWUx<;3*X-ph1xLQw+w5N( zdCw{>nt4ar%m}r*rrSRq=9@5;(hL(_dTk%iZvGyYg(=BnG`1~X5#q<_N&e$4$EJeug3W4fnSa*q^20nN z$Qy%DhxNK~3oDJWoF88XAe^Qv9(WlO;RIVKgBo^JjsnEQj@i7mhry5Pjq}x$Y*UY} z@Iv9wz8-DAA7;>xa(?lRBtmj^K(b#%TAs8b-CoSh@dMPcd+Dfd%ymgWnO;-HE@y`p-V+H`B$y2`0CzIKKz} zfXx}4IXxT*6;P1NXto{|QkOqH3^lJ6OFvU#5Ub74C+ZwFpdDaL##mXJrB=TlUs;4( zg;zT0mU}U1^O6t6{jam5Me{d`5}=;y!2#%(7B4u-4OHpMF~w+!#Yy-71VNmo=pBYW zwaB(6CWs{fTiIRFg?U+WM}m<`tS=Na8YhFZQ?Wf~Za-n4^wPwu*PV@xm2Niblii%RLa z4cYPl2Twdap$1pL`OCpB{w#2l>0&mXp=33}=_j3LlA{y(Icd`h@x?>)v1b=&Yo8B| zhBFI>4gRM*ar92HWK>3UC?kH@JQRPd2m-fLUohJdU_KoEA(lm!kXb4WS*$k}N#x}n z3(e4XD0s;ouD^Jtki3y7<#|n{nPz31Fe;#5Z>!}irhQkn;^apzQ0C|v>v&Z%8;`CI zoAk2$D)}eLum*@}0%HGFK4=Nc1m7o9oq!)MQxdZyYDWn7ddU;E?nyK?#cQnPo4d@D zNj9djIxEZ;eA530_=Yh)yryww6mGR=og|;)V5mG|Sz1ar_ltbJssb~|u+`{5}>Is{H+`L_v@0^% z4RsCu>IoYkEjqrwG+wqcrR^@`9#>eM347=wUA9cvxM1x&T0Y;rx5Tt~1@!P3=>IK7 zq!UIsjG)~=Fcj|oOTA(U&|5dL`r3uD{Gcg$qb9f_B5fUc2;mpi{&#A{s1ie)zW~}D z*tg{`hIF|qyySw)uD@0Shsgb!2Ttcxr1IHmtb|U3xN#5bRbv(kG*Ix{q^vRQNY69v zD0T7DuHt(`6t@;!7*vW-@S>w=-}T>|Mh?(dplq;q>QS}C5~z;Bl5Be~sZ#kEhT0{} zjPeC*90Mkwp4O6;2PQcQ&Gca}v#}qYxPa_5j<+Et+I|)BH$NJaCOzH+w<$K)kzivA zDZz96*AdusW&%>Vp>AGi>73Y6c`oK{Ob##_n_`ZYlvPQNzavL_5OsF`d^{_0wAP`P8{_Sp@aw;8^%5JtPu_yqeH9*uwhxy9IZPdQyU(G`7 zHBcBVvYAvLxj>gK_zT7u&{|$z>lsHS;Wf00ldex!X`_V(#=gKc&XEkFBh(FjefZl> zXRfYJXB)`NJ&>=vJFiL>co_=@J$kC?uf}7mQ+dHEP@vX0BT--yMP1|~8|*;HAjE8- zw>8Iqj^QzBSgWPXwthG~7H1g<2-E7=u23iVPK%%KJ0xfWgKm$Y{j)InrvU-q*h7Iu zOijJgftE1_n%W=LhhVKk;+e}6Q9F|!9H65{ZO{E=0i0ha)}B4;wo}dR*fv4}I@0fk z1of@o8|%>Kr3 zoDJ?d`yOxA`Awaeh#2v8Go0p&L3Ep`Wb#r?=KK@3NaIKcjWKU?vqYOZia;r8! z%<+Y{WjT+1c25Yz+B2uoDcH#1{VTbnWyY$*b$XnSren_-HdhV%a0S|I0e4AE|L*%& zon-behwI9*3;v{~7-l!n$95z8lb*>V8D(eO>l1qWHBQ4nGcq;UqZ{CY-1_sDO^E;U zEHg(4saopG)sC}7R1z16v(#9(*Pw|*l_bbbkxXJd?Tm!3%FAnl1Cv6)ZNqb4+mgx8 z>5J3Z{ICK{>?Cxa=nBvF;c`?SD8*_L(?wY6MBn_M`>}ZtYU*SHk)54>P4G7U zIgzujsWFYq?SRMdI^K=NP9G7EOvK$AhOTx)Q#^1UwrW z-(v~+d7Q2!)ou`2&rDH1V3Jp)6E&PB^?P8YvOml5jUi*JDf`m| z9)Y(econeOY_n8;fjAg0ZW~lNQ0mJn&x^QT+eR3Eb?M}SGBO+}^>ZF?R2jX`LoCYs zPpwYc|9qU{gSC>B`w?hk0D9*(pWo?zl=C#Uf+p;iOK?HE*=;?} z-fv#sVsycE3ZeYm?Hv+wo2dY*Xzbt`>9g;1+W9 z905P#*9Q(M7**{rDNuUFRh0t<)PC~xHsE$uir`f)eHP#S za#pR%mO0_ix*;Z~3kYH}@O^2`=$zHsxRNnfmD$J;X5fFzBo~#=-so1I?!opr+cq0i zqA7y*} z%B+zL(CF^L`mS$yP3@ar#58WW<*SfdwxErwl#!mC&#LJKOe3#%Pz4u(%>`|y;SQ&u z+=C+O#?YdcnCYj`wfk`v7xc)9GQ&z#Vo}Wt-^6E4MON=eA8`VrEUREktYG?Rd@t^)2w%LZ6HrhiCC!mP9D3yH?q0HRe$RVtKo_Q>ti106 zW7d1dZcIv^2jbz^-1`2l_-h-85)A80gk)7uUd`$1C4k;$#WQ9kuI33_{*pRAIw}^) zCO|M68XlFjyYowTf_aD8?H(Mx06AFmG;YEX4b5e=|)9)^u{8^yelb+yw41^Mi z7(XNVq8+jmZ(tE<`rX>bT$A0PA=^uYx$(|RnSj=+5cy_9_I?b~B&GI|r$Bq*Pwmm(G;~?e_?f_dKC8Xku!-oZ94F)OkX1UBY30}mzR`34$|dO&*2>m?TlIC%#>f09E>I z?oj1iL`jb?u+uZ@$h8%IuEWaTT20cMv6z_bNpg1Q?EcVQY){M2tvm}mJkZKKF(`1b zsE~qtr;RX{w;$y``jQ2BYrt>kwi6ToUzj%%P)z>qIq09>6Mt5jGWzZPe{d8L8bDJV z4bk#F7(T2WO|je>*(L~DX8arOEY?ryl55vzEc(9Q($p2SoP??@kBgh;sHz`WMO7I> z1GY6I;u(|?PbP2F84U3xc+bAJB z{Jc)9kLg{-`AVh+-X9@9nSe7bYX8=JSH0F)$=w9`R)Ak&j(ZNL)hO6Y$pEy;emc0| zxs!?FW6%RKD2z_T%LCsjVTUR|p`NPm2!! zfWQ9MEcq>wfBXC~dQ8*^0=T)xONmqQ-!vx=ee01Nc^*i<(SnOY_Of0E5UOFvW!I0mBAI|x?*vZxz z3wR}@E!vel17r495Zs9HRl#Xmhi;cHO$vP(VFsl|^p`DuD{r)`v36j+B(dMK6DXdM znJ`*8X{&e#qq5If<9Tpgd@^Zi-OzeCtp)Qt+2pYYJ2t$kqdwJiB#-h4XGVKJhj+4S zzJe`GPH@#+iz^7%@0v7PJE;LBxHkYN45LT>1|{kZuMo*!+EoHRI{dgswQf9jsf(u9 zB=~cr@*n+N4Bwxu$ho;61uEi%DI3N6ERSun{Yn^ESClI<^9#A^!+KHgbcR}N=Y+7= zkL~(>4uL>W9JSF!ei=X3uiPLI<>SiI()~Gv0Z*{yLlAS_i7k(md;oDUl#q z-s{99Ki3GQf1)wz3jq(0I2XNUwkpSs&6GX;j7Dsjv*@2kn!%kyRt&KDt!4-=0LRodXEo~b`G$6Snk zf8Kv&q-lK*D6X=@cHtckB4?tW9AhUd?E5B@NNUJ}ovhrXcmL++<~Kbl5A}RSVD881zUr6ECN5cUe45!oco`Cz7`!|}#UMV9FP8Q#u5k}WH6;GVu zUL&$w_#~&PAHFz$W1=YP7XQxEC*$b_J)lYBj0xW-AqEP(%8xp3e<@8}z$$2YA3eK% zXJ)T}8C^0qmM(kFSTgwnS#aCqU2Z33z7m!>68q_dF)9ss%fxA_#GcSRd#VQr>( zab2)T1zf{Pr{6fJkYIf|IhPPxf>mitzpTiJuhRDU^o3OA6eqKAABk_5JG?j7IYxvM zkR_O)7GhB|k=9NPp1TYdUG6aHE{BL-5qcg?r!L0goweVYC$I<$bvI{$F7(6k*uRAh?~>o#wY;R`XI`&db|=rrpbp(xD!FE#E&x3T>F zQeDLX*tX{M^o302<>df3G{&W9q0NYDRd!8Mc9=17TMOw+V(#SYB=$aFR+#Aam4Q2O z_Gx=5DT>li`B+pz79Mo(SCZiCt;+=CHAsA^&6!8)ICQg>#AC_umF8?~e_ZDzWgu7@ z>#Tn-(Y9?#!0V{UcwJZb>L&g5_2Cg=raj9#S2LaA^#hv4v)8~(9lL}Noz|){`5H5r zyBJlXIN5t;OT7tTEYOq46(RFQ12%#U$__4fJ@;rK96abdb^?o^GdnozF>LjRDvPty zOfgwaT;Imvnq0na&KGvb=XnXG$Jl``5=8EJN`dtw-wG9lq}&_S*m{jSW|=~HtK^tZ zLyhx%0;XW^GDT(-$Q_gQho<&TXju>C6?qa-yy6UwI%+i0ei{t?THa%G=QuLom8Z>T zo(s#R+!5MLNvgBnXJB1z?q`fGuT;;K5N=9paowU&SzJ^gjRl|Xq1KP<_BElK8_p2a zxLT8;d>Zdy#z``*O1~`mo&Il&2AM>dsMdNv)ni{fLm{PuZDXV%3|h&i^!}66Q*ps8 zlowQJUFef0QJ!PK{N=YkR#pN z`T)$u^X!EPf1DlB6b_ElxkfaRq_L4QuuRk&y`fh3F%N3vI1ju*tupWG@~9)D-&5d# z7LvAGkp#87+5os2Ru|@B@Pmr{`}g*$kCwFqp+ylB3XhJfo1)t^k0(V?l|q_nK^G`v zfc|EGPhRJ{;`}4FQ;!t3UI6E3#nQn!+^Y$37LS5sxBt&zlnGbGI5}5a%igQzY zg>HRsJ7Ud5So`?q&0Psv)8X3`?j}b8`L}qiLE>IqPeU&h)wWg6#P4VyrFMOpz*wb{ zm8=vDMh*<&0b|T7e5C5P_1<=8*ULBReY5+%%T}1B<{l(|Pj(x;=PUGy>8Pb_)zk~K zt;_Egs7yedJj_xtYCNHNb02Da8a|mFFezfRGvay*zr5-CLfCb?pOLEZlOpDc_!JDR z0K4dVJ}Rlqbc|Ywhftrb*a?}(qXLKSW^2f7W?nfpr(3*EyOzw{vFv@=#Uk`}$wwi@}akI_U_STvf5sub(Stqzp+ zYH?FcpXU3iBCl9a564R*z8A^*szS_WIT#8x_U6cqCv=;bO0c66E#H=xWz(HB-QF;` zQSpIJB2ibs2Bu7wcmoyV*ic4!`h29O_jP*+#jlF<{br47jf84LqG4AfenwH*Hlr;Djk-Ec-^h*&ny)cKy$=2$}ET4g#p7t62Dn=XO<5GZa+-M|Jj z0c8L+-yc!m1bkLMY{^s_u2@x=1Nhutk^hHn&BjgtmCK}lcbh#Ut;&n`A;(3femxYnp!FVXck)Ubj~BfJez!2eactMq_m83An5UA_A}0c zcFs$_jth6koaY~*t*!uM_;CR%yTf3{DuAFj)hWL5>c%_nvF0ZZ$t_g^gm4y7%&7lG zt-;-pera17;SOFggL*!WJaX7ti)1$(kzN)=ERcLH=gFdUtwk@{lNdh;k{FmeCQ zIH!L?De`EFfSA>*JAaZevAcQzrXZt)M=xPF^@RT|1y}!O3=V^=Ky0mDxdu~<=BYd* zg;wh@JCjK)N5LqCuvbD+PRyz`yl3tK4M^y7h7*j+mz7Cv5GLt)BfL453JX=9=0SGR zYXoEPirYOwJ4xFj!(z+@u0iiKZ)-Y4sWr_V%L@@!r#+;JZzY7*`AuW~E>omApp>!;l5Wnrb=n)vpWDuJYg5 z77MB$n451iGbWr8G#5}I_c9xEFVqBKxxC`K>C%l~ld%?&F_3A&J8vyj@l+HttX%H>$2f>LwFC!A6qyVN<4 z8S=1qE4cd0cj`;NLz~~y0P)buT)%xm>_`e^g)zZ~utyNzvOIH(%S3a$xrtj>kX|VO zV=}p|5Z_CF#u<7MDL1HS&y)PRc}E$_N+h_L%s2!k$*n876<09*JVp|^ zdi#b=3_$z3jZqTLr+HsD=FeJNa2E|^eZ%2O!U3-R`>Q>vngV(AXYKcp+a(6(1^}EVO7OmG~=hUD`RZmk;H1hRo3SxIYaJ!k+FK zb~@X8TLHRuN1}G-J!2>)GZ;?#N_X>0_nHHCzr8Z}Dku9Bo+F)W!Ie2rx+CpjF>#_i zW#llB^C4^>6}2zA0Nt6YvZRcQEcCy_)p1X;MUBD6UZT<&FpSK!9(gC^KYjeXnN$!@g{H+t*0K{Y>!Y{Bjq_ ze|P`21Q`!QLcR99^ammRx?I1N2zO2fmZq4=__VI(x1X~`PWJO@E+Hhe2=y=;fuh*= z0-cKnduJQ?;IwQ(AB-t7?+WQh5dS~0qW{FxcVXWI1YU9+&rquRl5&*NhqVV$8@(p-)HZLW(dVMp)wMW+7Tm>8YFw*YR5P< zq6U1<*W*z+a@9_GGvaRFR`lY};uM4E$&?uhl0+(F4GpxM0tUtuJtQvm#|ANJ_fA&k zZgx-?p)ws=kq+DOl+yBp1~HuEVHJiX>Eo!%;_gHBQ(-s3U&_V*qrk$7pWKd-ozos} z(hOyL{NJ+>um$YAPE3)Z;KpkfTSi@xN2R)5kI2+BTKb*a3>nX7<$Q!5(}YGz^nEt_ z7+=K_p84zUERm)vCag|qecAX*Q2tL(A$hDZEinLbSfov<)as>1TGMfPRQ6-Zy%|-9DMyh-S$31@cErbaIj6q-r6^&pN z$#|`P-qwrUi9~aLidlTnIPDi|QOe+~RxR9tenXG$Rzf#!;G+KQ_5GFax%KWD{KJ$& z6aaXdO{wDj&QfsIv*D=izmkdB%MTv6kAaG{_#KAWLF47y4?TD37*5iR3;3{a^Bp*} zim7qh)dYi`U9~l_Z4mhlfAmPJ`g<$(_{#=fu%^8ce2ssqSxHrMeYW{whmUBin$O<3 z=b~GSAfWXo@ET1_Q?;?Z1tvRFh1BA=U4REfKcfS1-Cs6vNKb3sO$Or<)uUDM5=Gss zQ}AHQWfqdRZ)Q=CMui??;(kiM0ph|(KS?N*wP z>lZXR?V{(vnEJ?GZku>c@Ey52oJYiceXH%LkK}w5{&)IZ-$Osb;e<16Qw1s1lxd?Q zazV50NyO&&=L2HS(l5tMd!pd#B|L3R8CtYT0|UyXpM9BPW%p%YrmV(#fj}VZdlRfq z%XD~$dwyTzMVJ%}N`*7R4_BoHcSKG6cP0?!!s^23=J8LJAT>s@h zo1ZZKmtrv0<%PCqUy+M(`q91FHM!EFK$)#_LXE=^b44=}x2Rino#*c8&{K7hduaeAyWv z>=O{eEBf#-W_nte?Bw|PV0G%#8FTq;;6f998)z}>ei73H{0IV+X`WN2YHs9*%)!gmlS5*xRXYKCCi=K_?I-ug zZ_W}HV|`iACVpJ|z?hXIvrG#{r5@WH4)@FaDEWqK)mkeOsEiPBu(vUasFqh$AXd{H z!lN^=38IFV|xmDnQ$!RiyS9?8YU+o5Mw9X`WH@_|pKGM9L+0`?_#KaVGS{tw; z+xo6m`iN|32r?Y6U15;(+DL2ZX_OEQdNrybG(9`1AYnLY=jj<7lFSbM96woi^YEOlq^4f_#*nai9~fu$98!NlsN2TSgf3#IFPH51};Z9v6 zu1=aa(VxXf>JyzDMr+yx7m-LlTrDo-@WY(^ra?mI@sq|yG`yj7 z-=o8*^j!ANj?#}DoLg7cC%?+ny?ND|n3i;Q^KC;pcb1-nEJ$Q)oarFYDQL2*QWW`# zAvCm`lr~ZEU^S6IG(TsT2&{VI2;QCJ&un41%*jeo%i?cTf@cVBl{o=UxVAi{Z1*z+ z=qEVb!&MegOPFM9hg-igTxt6hlG(=gd66~Ao^j;u z6=lVH&}b^*T$9^T*fv5eA1W^}0TW|cZiFhgtFC5x{bidA2{#waW zici@{Jk?Axp2e-`z*==BdM%C*?v2OL@0~9#S35X;dYQfD60eywPHhdTCjOLT6F@I{ zTA;VddGNge!3uMLKZ{D3=-Q5-GF=FFbyC{e-7iH%+lE|`r)p(@z+X#;*bjONg_G66 z#=dMj=MvinYFEN1+6r64(cZ-qaeKq%ZBQOjtQL7{{Va&ly~@$1<4xU}3Depzs3^Iv zO2H#Tg`Sv4Q4MUL9=}t0Qs$yRZa1=yCjcsrrL0>KoQlVtlX7LPQds7|bJ)-`A=M1@ zKad{r*}HSK`9b9@|0R=OZxP{f=1<`p6C%dF;;G41U`JLC8^uqUBC z_+&@E_alAsLdABiKp8@wao!ya@am1&dAF}&9~|A!wiA>iBv#U@*&Z+V$yY*=piG}b zRy9gsJKdUWYP;T9{7HC%sZ05*i(pcdgoVAii~W%%H)DU?p1J*?jC;MdAau{L>$`h? z5S&y;JC}vHd*+7&mr$=nXU(RbgF)ag3EkO zuC7o|#F&a`!SXMO=E9q=Uw)z8zXsKLZ0H+ zowHx_`CiSpm6It`dasd^i8zuEv_5a{olLXMhGvDtBY??NmgcsdH9j)9>^K_+f5eHaqM$ywak`u)l%*)j{I!g*+|2;mMA@`?$m3%|(n zYU)~)T+C{sSb6I+XWvb3s=*uc3XOmPEsPbqQS~tbzmZix1<-94;kWf zADq2#7!#kb*rJ`b-}N)n3}5i7+ufH6w!X}^{?Ng^%g$3A5@Wx(6@W+M%87Rrr{Hp! z)gBVlA`(V3X|{AxMm^0n|5*MsVz_~3RdDxYUILHi|JC&sP*HB(`?eyTgQQ5eD4j}o zcS?76i_#qfNK1D~w-VCL&@c?0Lo+o0*L$zu=l%WH_pUW8g_(KZbIv|{KYQ z#8|Efy)1DKVpiLVNY%_3oD-|Q=e%e(G94lJQdGL7BY81iwUIIT-K5LW!YHv1a`g(@ zyolujtlxx_!_(RIycM`-lX5R2a>?@9O!M2T^{XeKPw;~m9R3qKeQgS><=7LE;Du3) zv8i5;#*U}fpHa!WF8W-TtvjbMjx=nAdN_=PdR9;g1#hDR=S{uHFa0xy!GzP>`8AO~F1bF>%(;XLE#Nh{dxD)SBMLrY^1F)z43Pxmd_#ZR%``eS*?` zbr~RIvD=b&pfZLb>6#yEuPN0^b9_O~EIP=$fR(6g_od(YWWL{|^17bqS_;&)-ve0QiutI{3^rBY z`4Xjf(~eFew6|NA$BS*#!}Y$hFiFa~+VWW0QoJwM_pcO&^>*pQw&hr~T_q4E)>M4N zjG(pQxy1PlD>25`?K^Rs&<4|ZZW{;qE$EE!v>zSi!O6g{q8 z@dTBReLt00jG04-zLz0b6u48p&@psXUY^Fa#haYAsW+4?HXU0om!^W^55@@cW;YgQ6}OM8 z%6M^m)bwJTs;5qy9k?JQG#CQg=k_Y)rP)Ht=a(nrJG{L*{f>UCQ>4Dq9S{|j4{D~= zsKXfo!*SY-QV8E+o!K3q%?5gJYcH$tz|WtH@D3sfIn3PlTQ4hdd_=VQxxCaT9%yMR z3P3w+Izr(=uXOkH8qSI2if(TgY)9sgTXe&fs6{|mO5@w!u+Qja2jag#$3G(T@#dG) z`p@+hXo0c%)6THYNKoZvRK3jVHt_%S&wOn*LS(N7J z-d%cAM|oq*iX+cpJ`^LirY;O^y|=;9)O?zGP5{eB9bE?d+^}%7Y9!8>GzlR3I+az#et!A0|#?lmt(0qJiT!9y2XuY@l9Y={O z&s@!YFOEEUdkJ?2UYsJ^&IiYX0`2zCb#yEW&!3_ius{;xOq;IL=_EPkQ2Yb`i7o-& z9n=~yx#nz5Sq;OPc+=^hH9r8e)|Qb4{M+y}RQ8>FM2x6&J-&sXH6s87ROFGZK!S`F zd`|(qTlJkhH(3o5bAJ5pV)0@6Jhl@q^?LDR)tH*^MJg&k=!kGLKGic#i`t9rHXf-l zP=(IQ-y!(5FT!vpJA+s|YLa=5}!L@vK zbqT+^4 zLq#wX8=dJ@xcKw*6%9u5^BLoEot#e{JUpJzc((|p-txyRF20v_btTQ^o9mUJh{c(! zI z-L)Z^21WReLuvFozZdQdEkXxnkhxhWFFG7SbsQAW&nd-8Bp5@x9tMreN zpQ@^|S2(Py7?EMham#YXOFJ^3)>@}z<+tSfC;Cm-3WdGrdBiMQss6QVEy<>_g(k(r?D$W=e*N#xgir2-tQXUDU3Q$s49XhlrSU%MJ%qL&&G=w|SmK zhlYgl2dhtSzc%%{ag3|3ZSAx+d6Qa0(Q2K~YfwbVd3#kY#X{W}hfVrN^5k3vuy zUK{466ZiNYF`HdL_yvZo2t zr#4Tj>U~0J>?4748nbNEmxk+>Q=+uQr0FEJ6vfAQU>;Y?8FjD&iL*);K=BuhLplt} zij_IeQB>VG-WJzTzNy(KyDp6@Fh@w?FMQ|d{%U`DD?*N=$r3M_L_#*p(y-~$7^6s2GI~C{9qVCG+Y-j`pFPO)D^~l@^%r_E zu>x$4IH!R`uTdXndtUV|9at+YJ<-llTryWNQ$MqSK)51JvzF1Qf!U8<(={N?fi0(M zSM~M!_T=0YhJzuBN^87CU|&2PBQD=#zKA;g_OmTyo?3mPP%*;<33Jz7f8#A_P^kX+ z5?gJY@Qqmq2`LNDEKLkDb=sjmadFcE$#yB;bJ16#GlSOflcCNg8o*+a0YFFrG>)W+ z)#utc$7~YI?NrMZA6}k7PaG*@-imKC_d*UklhNv#IpOlIU`TSHA-=+R_?JMm!S88^ zGm*}p&$Tm*_)y81!TlE2PR68qguv0QQ6e918K1@9;68ou<;2B z^~fBzjH(&0FkC)+ZyO1=zql2TJGG6h>caA_$R44~B{uHX3-Ziyn`8%`uH<_}R?6+6 z=*(eYbOP`FpQ}g*hmJ4z=A52wzO`D4`6fF!^@Kq1xn~=hkzqA`$by7d@`n9kP2BCM z?9V}T8Lr$pkui_rzPSj=2IWF<*abvUKO$C7E3;%RVLNU(jF2{0FnzsHb;}cM2I>va zN*E+wbi@|7L8BGgFXLTaehii>z?-LpYjdP)2s}b1t9$-0heqmyT*_{^97bX^Dmhk& zL;aO|YfM4I&8AC|6R3-*?R({rkJh>?=X#I1Bu#?q45vLzD^%1FN0&XckS5HX!JXl3c7b~uSsss=T4H0QpfffZklPf9fy;uT)Ic)N&2ktaL>e#^j!%s9w@zC!m1J|5iQs~|gU>5C zlJ;K6-k_(*?>@Z2c^kh}&~RVdL@RV9l~Xvx>(t4+8E6`FGA0e0ehZo<*?bImqa<^>|LspBVIa~O{oOkjcMlyofA1HdsT$N z6#c4T!||{^*sai0U+%}hM|Q@lvSY}D)>YX-#3n@!!|x($`d%qItb{^8fD|A4%Et6U z^jn$%Nn;NST6(tsvNav7KG?jNwQH)~x_`ZXs`a#ZnygmDK9Xn^$Vg@K$Asn6n1~UI z@jcQEfIwwJnw`>D<}T-zz9r)V)0zIN|23z*5`}Tnsk_HQt`=Umbf@r`gxo8Axn=}G zZ+)ntlCs~G-?fvqF!?ExNIPA#8JhrRg2Jex$9X2j zkO$aal*RdPrCsmyx+wrVmhbVOiU>#({a(iEdL1Vu1_ok&r{LpKHND*HG7wZ8=6+5l zj9b~HQv9k>G1u$~?d7)8gfxG`AWLH)t;s%qKDTRzqSsBi^6jB-zH)1QJCcedjt!bb zrCgh&y$`}y{$esiVc@eVCs{wH`Ny4rStc7$FSGwQXwnmry83F-Al?_7nfR47zm}sbuXO8AK?(BXeh%>FS8*^V0NYu@ z1=gBa8CfW?u_iEua*XeYr)JJ3=I*U@KPvPq^^UD_-44>J0O;J9ku<3h_l)WfzW}f9 zIPp98>>SrHzh`LHwy?&eWqF(IMfyKu$6(5YEOsY&r>E{T=DOt4Aq|@sxp+%aZObk+@Q%6Pc=Lt&Gb(Vmc;N@m~UZ4 z!?NZdujZ~I^0XR>`#}!zNcyyL!P(QLfbf@TL>?W$aDp~jbu zIrtEgJ4XL+l5#nH5V+_15gV&l)?ffO1?~ z(S6QtBKHKv2G@9{)?0P}AWh_Z?a9OsFXkQy(VR8hr5ZRz*$W2JF6SnE;pwoQcXLFx zUpwl-8PvjDX2tW;mf+}}`{DG!^7jiV&U zI7GOeh@7Ah{fy5IE4%Vp5Mka0+H|>bERmCY>-}$*0rJzZM;GPV^hDV`vnD;aTM#0I2evi^#88vpGer>$O50>3mL)vytMPbrj(%R4LosUg&juKlfbDS0kfuP|to>Xjq}d z9`|_ZMW{E-l}mIVUxYDSiqXDCvrv_0dvcGJBuxI+SdOO~kv*HQgaiO;m!}$gw5&Mx zoQ<<+8^W(dduQ>)_@21jCx5Y_F651))BiEsS4wLT)iVeJkqt=|_;GmMbJGtx@7{-$ z++&Q8GiZ%VVVfUjQ3SrsdE?99iSfw0k9?fsqokM+!?U{aLe6dkW{dzwWOp_&@w~W= z8_t$a!3I$cT(94;j7b2F)(1kn$7RlnQGPc-jNrFA`P%g_-9lXdD6g?(*r;!e90W~~ z&f_%AE%#ZYKXsp6vjjC%S4*=nhIOnJU%4cOCN`=#5{j$lwS5KqoMv!BE+j(X#89H9 zcP#A+xMH0|eEDx~iE_EU!;~7FlMGNuHol0Z=i|rJhZ=_&c_@!9fTPU|#piEh+6T!l ze#$J9Bs2DNzkc_Z$w>1U1)&NTCPWQi*o?llUJb+!WBpj#7XBQDsu z7;UTJ4}$Hrf(DL&p?$Dv91EJOcIk2H8LM$Yc7!21LLv1KcDX5vTGY8PxNDYuaEYRx z`?&?MMmwq8f-_p>pjy1Tsl4+@u&t{RO~>eKF<=Frl1>1V?fo^wFb@ldjs70*{bIfj z*jdy(kz#c)7?tca>Oo<{{d+FYEdDUFbAD1E0Ef7P&#XUkSLA##GSX$}Xza~eX~tdZ zaeo~&Z&jNZOTfR!J+Xi7c{ii4D+>zdXnr%wiie8uptAa!vW-rbKSPkA-Zcova*3w9 zf;iM8SPHW7&Fbx(6bpBtawD4jz|i|h{UF+HmYOm+L@_{F*_c(8R*h4eFkG*P>IwsA zPP;SQUu3@RSs{f1(e;PBq3Gg;JFQ)~ZFO;ml`mF8Ar_L-wOl8mcYYlYA77B~1QcO- z*BVN8*H|96lCo#OEulckzC2Atj+uWR`S|l>RCsbjOylXrIUSo-N^Au~jG5%d7q_>i&EHjuu*mLEw2Ba5)_$O0yY6;=<+A1VZB7Ucke*fD^yLLUp_~c1>9J zr1!04>_tj>BEq+B??ur_Dsxi~+F!cDzdMpRZPav%27FuhTfg!f5j( zzNe_;SzihxSgp$%=`;1%v23gH(aj<#4d}&0_ik-M9nat0(6JTaRxx%_ zMt>KiB06nGrX6({ufyNb%z#_MK(9o-0_w%?SMkhFd{NfG4lqibFt5@h@n*55FTH|e zv+!H7wXmPp93Ybof`mvL!u7%y5k>SCxz-Q%U@eOVLkwLi;Aoj@yPAY)}zP!Y;gx;#tu{l31^L2)krwRqtdK z{v|Ij+lWket0R?Lwh=wFOsGH$JU z_IdKI<2M(?5z;*YzB#U=5zL|%3f^b%MAIs8oysgX0+q>M3L|b&kfgruEmVxthw)nQ zSsUIRa+02+VeFk@&LYR;QMKX7#(f)RTW8k^e!7v^@kNZNZS|XlQv^ZbBk%9eROqV3 zLel!02KfC5b2okTmZsjMSXC&jT4t`KVe@-e-xh!}pn)D+e969NncFsL@0LaQTyp$@ z^pHh%y=mb0h&M@go|%WX8Vcgp(C7dwv#RYHmKRZ@1YZbAD?NBgPIKYgGKjguQe0q5#(Y%AEiB~epWZJyTz+E>#>}O!m@q%QsN)k%*?uHo0EAy zATDB^D4znyX^OOd=f6SQ(SaE^DB$%Q!wD($lXW8b@WMt!C+tzO2Wx4Hx4<$`9Iqf= z;*T?|0gL#Z@3(K1m)>I7n}sPwQm-f4qLDxg#Eebe z0NvPSNjYB&ZtZSv?(b-6XoQGgG+&15M6E|jQp*zU@9z^5^KtU>3e(~|?=^}|PkTpXXOotD!M|(!I#TpyA3*QNfP?`mmt6p#q1HbWXY>MJ@1cyC;ky%^Ies~oW+nR+% zgQ-S6Aj+%v_P6r9rx_J9aAL<;p)7f0%%6649l}2{uv<+qSKqqGPa@GLsTCI&$J@}% za2siVK0=mmG-W$4Z>X5<8TZXZLob8Q-CY8Q?c!a0^BNYCvoT8&%I4u^eDp@_o>>1j z&;s4K=7INMtYu^FxJJ4(#V77zmwACx;Z?m#;GFCB#Wo@S5DN(=>&2TC{TODf;s6Gm z&ei2*Ub(Weki_pi15^#5g|te27UvHisWpssZ~W}N90CJD^I_1|wut7cR~E`GQ;?xJ zzW^NDMTIzYNc$9W6En;}v}F1%oRoJa$8+sAO{7v2-lIu(|Ca(JgN?o?(Wks{jb9I| z)T&>IoIR@H%ogJ9oooQ=ikx%P#F4rPl&%PZc7O~ ztJmDS6|`AU0k%XF-IZ?j^}mypS>sgs%NOd@0SuHZ%fE(nx!AN z$bHOBw!@q%U8K^zKF`gjX3SPy_(L~+e%hdCR>+7&7y8YyRp@IABt0ZiNHb$^^6Q={j49K#dPQ9QfKi&Q=*M1<=a zA-ojrG?3os@~i9?{2@WQo-(e`1JJ+poQSGVxi!vyl*s`s4}Cg}c9=?Q*kJScb%vKT zVlQMX;tem0NXIdpwBsT2Xu0?e%d9199)IeA1$5e=-Z_ijfqk5j?jI$Wvr2+&3}`tT zH_$?l!KN!^|H1WIJwvfV$!{$Oh8Ug-UT#xb!)BKPPWG}I$9^<@JKOxlx0~-YIDuk| zVRN-H=+>7r4gam>UbYG@B2*oZz5Q3F+JUiJ9=1e}Z6F|DR`2i&5vXM!auE>`AjKqS zfvaA0%}brw_|<<;`{z!pU}0-*sto6cv25r)oR8QE()t9CY+;z6Y}l*tT9u$y@_7r zI2Q`LHSo@Tc^2V{H&GegUubG&@ZlZt5zxXqFSB*%rOyfzPI8(G=`qm0Td`OwHV2wRg+>&<0Qxd!AuO0|&c>O1xaWuh`eNi>}-i%V6jN zm%-Hgi!I&cevRCar={?mlkQEVX;y#ha^6=P;po-|At%{Dmf!#NQd7 zulZ?j3Bop2sqbm^Z|^M&rwd4hv|I{$?^f!gWsG^}UzQj;)-$W9EbFf0KcOaT3}jPG z(8#FJx0{%6O3|Ogd5ftOlcu#(a9fl))FmCe!h?HP40!jM>i$6RgY4Sn9nAG9H0wwU zDFCYBqP=u^J>{L2YKp}IIEk8p*7gsEc}*w=GL^ssE|uJKoWH_Qt##}hJplCA!a4oo z&3q8i+EK}+Fqh@uj@BJ4x}9CiV+*n7yXc{QgT)eQ`}C~=W~iBe|IFZt;FEH>CjMK` zt!K-?ZsL&c`0C{BVuuI9qiJ)Jk(O3`1q+s>(7gK`#Mig{t>GV>HNqX6qHS6)cP~bC2*Ni zc?`blE%^9!hgiDLEx`gIT3D9iH(&2|k*(M|ZO)Qg?GmwVK0(BsC^f<8Y@?=4v5hw#nI&6+BgW#+oxu zH;r#XMH(~*%2Ln$AU`YuY@=qX8!f72ROwEp3zcI7Bc8M1sh)=nG+#CC9+sxI zLY>s@lpp>5{w|GHHVp&SsH*>i+Fl?tqmerY}aC<5w;{6X^htx`BrpxvRtK0*Idv6V>Bi zmO8cy+JaFJd%a#0DDWgGYZ2<}5=x|lyM6XTCac&d=l2L*%{EGiuTs~W%oYrS)imd5 zTDziyw5(aO(v`+N@Psmg@|7g)U4sxGojD|3MA8QqdPM_XL)}+;K^+XmZ!5SrUs>!t zEkhl2J%S0I2Snf3m^fqn`CT*Jb;9s)^8;(iII+v-@xz65Co9Py1|y-JDw@e0eD|f` z?x8ImR?&T@ni=3h1d+G%mj~yQx#>O~#4OK=)Y-ATfs4KX)3fhQpB|SuX4?UCe2Dvo z5vtGjUrY=|W=U{dzJWyS8yZ23A-criHq3810{dyJpfFtzWh$&!}k2ItKu)%g@gtH|zHTq$R z2R+`e=rK<;JNN8E7p6q^WooK(&GKtdDxY*p(!@g)FewhiN5fd+rPU9o+cO`^>Tysy zSTT6n$#-X!JEqO}3I52*t=ap|D5b|#Ur@kl_~pg^>=$QOL7$+~OMdSL!mem2+ve74 zb5uF1^XoUo5sMz%@c00KyhKQzo`y=f7xlHQnmUh*zz=eV7+BDJ~+Xv!4zYMK-;K ziOI*DM6~aJ%}kDJtqkm_=3u!Dl&!OSdfZvfklavS9+mi!iXO7v+4;!Zp1RlQQ(z(Z zvYACdV4w4>FSPNaP}FlCSmfE6e2rvM>K6u_=g7#&^EB2*M*fm{LE}|%0R7zKEL$w9 zRw_F?J4xEa$0w4%U5SdSa~}mPxjl6+wwHo$wexVrI@XOZ(EfORP=yvRLa|b)TT^Zos^)l_c4B+K4wgTffYl)# z3m|82HWnYNo{JsXXwM)2Rlnzqh%P?pn0KrxHCz7!lK)>t zWYI_Sp9tcv%L71)Z~+P&mrgsSuu4@-a(kuHN6^`NdX7!u`2~@OAoB7^h8lc$pZ<<^ z_>}|9(vrO3FWlNriBY4_Oj%;-jrB`42V?4yMezoFnW-j-b9-v3rMceA?_MvmfZGo* zD@=<EBqkI|9BFzL8DOmu{z>~DNn_N)h(SrhmO37MZdoBJ);=BO zmwp9809jcM2%BmJs$~{}Cv6zqh9#>8dG=H|+xAv{>I}RX_D*<`xnSd?R0=zm6YRl8 z<0spRO^6SjFj8mO>WOH~@DUBH40Rv7)YQ5JtfJ7&eo{G{yq{GQVG!b-4KwKJD0LMf zu6Vd8Q=8s3vH?T7xW%`qP#8m&V%>G5Cd6&`+K8am3op7#=zFRoUWUzrRn5){?F~YP zfdnsCXBLnGKW#tM4Y)%JH5aykB)v&tf5lC% zHAy_l!YrhZyu(ZO2#@v(Yi+HXF>a7TkIXfFIreO^v&Uo9; zYy7kHBfafD@;hwe_twWqIOBzesQWtrt?)4HH@}wM8QBC0o)|}9u>e0a5lDESIp~q* zzlFi);uzaxCfaagpTZHJLcX|##_p>-ay<8)dZw|Rx}q2EUelfwqe?1;qai+XQ?21r zC;L+K?TPhTJUfD?WWbEoivlkbr$4^LnBVG>WFd8t`XZ(0r*80-kFrL*Wyek43w3ep zY&SJG37hH1uGwFX>R{}(3iDk{Dw^pCB2|7b5~|OO8Oup@Vf%L{A)l_u`!UQHEg&u}b6P*Yqe!(uAmn4hp?MN(a@kA=S&QfG;JtcW4Oh zw&KLhX6SV|1fnu(G5Y$+)2CaDYiqc(DztSr3v_s4*w|S+9?uzZQRn97tmiUI%GQ?; zITw<9lsEW>E7Q$C z)-ufgIc8YaZFK4LMLcbvO6_%&07x;RS8+pEMSPtRGHX98y6;im#yO zn%*U!KND%}1W!sHG+Nk|Ki7*>J$^Jm;iPIO(1U{>&jbk7U+?6>{)OzBzYvU=Pyk{Aleh3=*+p3Yu~A}k!A zX4~{xL#{d_)gyePAoi0Z@R`7;y3(3UMIXoU6wZ@clC;%G= zdfy-t)xL;Ks8dUjQLY*P6wx2cdmK!d^WF18G)WT){Ilxue6gZy-NceEThxZ`T^d{Z z4DZ{J3tq(KzB2FeW)r0NbU|x{v4bN;E0`w{p&LKD5R1_D&QI?0v}F{uX4-FoM-V_s zN+giDTRpo_V|gA9GB0Py2&Atxsr^J#;W8i3VZAgOlH2esX)HZM83Yu9Wd~#N{`$8E z8w$gMz=RyMpn^JvUCYI-X_J?om$lS1`d7n6iTVWgd+ctlz83Q{n__`i&tG@DT0C!a zN;g0`v17jxq=9c+)w0jCi9UcscG}Zu&C&xY3l3T=y4b#kV&nz~nP~?m7b?<96g~K& z)h|7`t&2;W5K2V7D<4~?&PsQgo-fwlV*?L^Rdn>OsnUEiPK%D8ol~j5rUbbTl$+o} zy>?U;axIdaGT7L;`(PPQ>#rBDQfGqDX|-R%5?>M|_Z~b>6|C&Rd>pco>HEr@c5T@b zk1LVRzUqJa#lN;_14N~-+S0+{)3^H9!-e2}9Jb>AQV%uE!IvP=Uz@b63-@@!@a&m} z^$0_rLFyWu)tC`?&CZa6ZAZ0$fUc`RNJF*=XBVT31tpR)o22Saoi7dC)1{QU*$>(_ zj5<-8D4E-m!dv-%ughxKZnqM4ss4};hn!@s0PAlC$_Mmi(Ex1hxYUZ1?PBOE5fPub zhMluhwbD=%!(8Tk#+N0c7+sGok)bSB4n**Ae7Sax*9K2pH<#}%5oKNSN>6JcUXy1d zXAoM1g02_LeW;(gP51@==0+;G^*9Z>(R{hhK{GEN=ViA>-Uo17xjKY8z|hOdVj>$> z4+NYqQWH5PK=Z@z@aD*}%Mq5km?zKLYRF2eqv^1ssJ0iQ(%|+oA<}RMdZrzc_Dhk$ zmi&W#Z-UxETIwutd>Mr)8Btcr+7#zEf%*toki2BAgvQWMt}s4YNiyO!{8~zbk)z=6 zBriGQXGVY8{|wqOL_d=ccMH!Z`MZeXO5JsOy*XA!;V*8$hLXMP1S^ok8&R$^RC4oX z*UW9^uQQ4tYVaYu*%T94Z$6vd0n3%^ZP>LGp$l9GAHQpKSQ8q8NpBp848PT zD>6gqzUPL0a=w>u(FCCRWu&*8Vqnti4s2_zsSu?)sAfUUUKfb`A$W|9-Wo86{;$@s8KlDOjPRobFYE zNm4U(pRI8gzSuJwC_PX3K|4!DN$Si=pM<}bsjxH<*bjyb;ZTEv6{Ndi2UW$ne)*JE z_+YT{B()7es`qX7-~H?=YR-|L`64q%Qxk;RP1GA-ts}1<~A38>w(Pp&naT0DM)f^>a*}> z$@(0Um1RQO)+8?NmjS;<-j6cwWEjGUmLD6cH0kjswd;&#P2neO02OHU^^}{d*xMSc z$lH#TgxBRjgqB#IzArVJnpfzlTlW_^>;w=RFd#G$_NPpJ7fzp!x^Hw&FI-FsOO9)I!&02cOt3PJFKfMWZ9u94+GZ;}cm8Sn$&8x|@PLcy}d zF;pfd`H<;WusDSqMUwQC!^zcNz%jwnBemb1wlj+i@7y$ z(ANETY2p-FKXbhJ%YWWW$3J75R-OKFZ<3q{Z9KZ|L#$xtyAF#QjTV%T-aYn21j%_t zah-ATk^$6?4Mb7jMV*~piYs6K(R`s4{eKa#{xwL`fNTkP>1!;7H20ktDu)JKwpwO; z=BU$OMCY^9zL~l{-EGx-2Sv(s+b?4#O7Cgi_XJtd?|!(q^IlBy=EtYVgZmFgGZlPu zrfYS4D{#U@*q#uAgNrkmtRDR@lEyEpJ5GoEeLIyF;0u>>BQX*iaX-)(wDjfLJf41K z(d|&Eb^p5*F&UFH{XMrr^3GhFfW7~-7*>Wvw7a4Ue;?=sEK(ExzoV*uEc~y?olzY; zMjUKAMlQ4JKyP7{Q7E2Z9G`2)SpqMp`u0su4eg(GwhCU^Gb&VPD5_k@FRx>cmsUU{ z<({9K6018{1=8)nnG{%u{sfly{v6tiUTO5H2U5AS=Xp+=5v(k4c}fAcxUis(hBQ?i zucEDmg=EBULL)0)R5#=cxPNV8S~j@L;FP?$xR|%sdI`8oXWYWV0&8lzYGPm+wElgE zVCMI@*6!_?y-5gdLQ#xGP3WJ7;7@Vmx zJK|PW3|XtKQ>bkhufqcoaOj4_$Am;{C0ojyhc~RLDJdJhAt6X4`U%FPc6N5r)Y%G$ zo(u^1!ivOoV^8ZC1R~N=TZ7br&xG+cxGRE3*>B`ii(Mr-5x!CL6$rO_1kI4{{;3>aX$rKm*3YGr>&%p=02m@5IP~>}0<~O06~{1694;0T zV()T@r)^on%=%jN?zB8iCnl8-Xpn8&d`KmC)U)+A-~DJahMaZc6t6*TsSfHBM12SM z^p)$#r96D<_z`b>l&r`J=)#Z8%f(bI+Il)U?0$6Qxj%YvvC;N3j&ET(!pB5axs7sO z=}EQD>?;G$X@`j^38M`Pft(tg1Lp09xC)Y z0T3T$+%M!IwoM$vw-p*gZm>EoSAM*jKLvUAu76~2%40Q3FuaF^rT5?f16APe+A)1K zF#58B+eP}M+#Nozk)E37F5cnFT=+8<_QBz?tkxznCt zdonE1$nw)7zkLGLyg>2o``BTd;ggkFlP2IB8K~#G#^DyLRsJhK0cZlku&!5fqS;v@dtuDmwI2-HJUY@Y zR-y#fF+War4Ei+eShlyBXKN)wqpb<`+}^YKYsa=}9o=4$9;`|+hx%ZhG$(3>{P4bpp6@dur_bI1tWgYDy@$T}9o&-xx@l}rUt0KW$r=s! zF!eT|n;cEu9o}VT`Y5e?aL;RT!P0GIVyphq@w)SJjIP0K?$8~PrK)Dw(ER%v{+Z6rPR=?tNn5LsRui8HE4SF#o>c| z$=NVDUC%V?;|t!Xd(}mek!U1buByswKIifiD^zOy*U^Dqz!Fjz4D!9I=jwtKZ%5pU z30$%OZ>GD&ByrGX_gI1+lO-~Rkw%V?3e@9$sa2}^e(BMrrlS)Vww0_Mhu(Tky-@!M zOTEWK(oOIWBYXwaLH*YK@4~9uM=3b`!-ccF;z-P2CC*I^*0<|JG|EW|gV=3KWjH#v z;`f>p5)$1UEF`O^zgf?LBS{4&XJ%q#bFKQbv|Bt*VI4t^j*cQBqz^{go#I&GyIwPV zEMp2woI_ita>iBGI5roYZ{Joi*i+i+P!r{kdsC(i_GNBI=-b$&2Ob|Ah;IVT3e;rN zITrzvSg+BWYI2>c)wnBcY;Z`3#B8ENS@Q&RN-f^1yDYGX6&nOuT$JrlXH_j!rd3wX zRm6;N+FXg&_qyD2_Q-lj-oZ*SAAEGSH{4K=Kbb_o`)n5b**=y(p&cU=(^1Q{61x+R z90|V@O}zA|jY$&T+GRwFlvICpN<3xy)2{(rE?Q1FBk~y}`_MMIAf%Rf0k_v84UQY| zh!l>g$)hSoEh-t)Ex?J~%8{8IZ({#W(nYEhNy0Zv20$IrS24v?Wuv3-si>*9)a9!J z1y2e^BP4iE17ZZChnWZDhNYF357jf}Y1I0bkxQ))hf&$Y%E6|2b?r6Rv-wj3X|e0; z8wEye<1Uh&D)}lAKx38P!e7k^l%t{mui@mW2ZV%#{gNFWLcK;ulcie6V+&1)3d8TM zV+DBX{25WAKpKlP#*HBKK zrv|<++dHSNeE+-OL+i01QXf{HtAoo3!ev|V_}g#o2{6t`%HF?|@;vPN>>>0~sRfq`Mff&G#}`0Ypwa0r(|2#IXDJ%D^B&%HcIGyVYmXFPvGY*UK2 ze1TTak|YcBo^Dm+AF2%ehTr$5v;X*%W@`N-Rn&IZ|NM2=9Abg{U)%6+7BDBaHOcQ? z_qFCvFX&&;_y0i3|7Pe@aU&^EI=)tlQ}l6c#hkvkz5Fd3737^FrKj)y+it?ley8v; zp7L<9`2w>t%J0Yf$aq2tY5BBYw(vheTWXBBD`8+W#=0u%+hPN0G=B?~YReK;dfwhr zsteKI_xrdIQf?6QuaQC^7Je`CwDzSY5k-wty@KCv6U$DF9T+Q^w~k1hJAZ%j19C%R p(d3{VsbZ)0y9ff`5HbLPS=$Oz^{}{|79E)#m^J literal 0 HcmV?d00001 From fa6aea286bc9859426d79a40985f27f9c769fe18 Mon Sep 17 00:00:00 2001 From: Paul Matthews Date: Sun, 23 Aug 2020 12:38:55 +0200 Subject: [PATCH 5/6] - Cleaned-up documentation & added Images - Cleanup --- Example-Script-Crossover-Trader.md | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/Example-Script-Crossover-Trader.md b/Example-Script-Crossover-Trader.md index dbaa812..d00ae66 100644 --- a/Example-Script-Crossover-Trader.md +++ b/Example-Script-Crossover-Trader.md @@ -2,14 +2,23 @@ This is meant as a full example that uses many of the script engine's features. This implementation will be updated as new features are added to the script engine. -Crossover Trader is a simple automatic trader that buys or sells the selected trading pair when two moving averages of different lengths cross eachother. Crossover Trader is a simple buy/sell automatic trader based either Simple Moving Averages [SMA](https://www.investopedia.com/terms/s/sma.asp) or Exponential Moving Averages [EMA](https://www.investopedia.com/terms/e/ema.asp). You specify the lengths of the fast and slow averages and the interval at which to sample the price. +Crossover Trader is a simple automatic trader that buys or sells the selected trading pair when two moving averages of different lengths cross eachother. Crossover Trader is a simple buy/sell automatic trader based either Simple Moving Averages [SMA](https://www.investopedia.com/terms/s/sma.asp) or Exponential Moving Averages [EMA](https://www.investopedia.com/terms/e/ema.asp). + +In the chart below the SMA(12) and SMA(26) are plotted, and the crossover points indicate where the Crossover Trader would place trades. +![image](https://github.com/AwooOOoo/orko-wiki/blob/master/images/CrossoverTrader-BuySell.png) + +You specify the lengths of the fast (i.e SMA(12)) and slow averages (SMA(26)) and the interval at which to sample the price. For instance -interval: 5 -fast average: 12 -slow average: 26 -In the example above the current price will be sampled every 5 minutes an each of these samples will be fed to the slow and fast moving averages. Since the fast moving average has a smaller length it is more responsive to changes in the market and this moves 'faster'. If the fast average crosses above the slow average a 'BUY' order is issued since the market is trending upwards. If the fast average crosses below the slow averages a 'SELL' order is issued since the market is trending downwards. The orders are currently set as limit orders at the current price so they should (partially) imitate market orders. +| Parameter | Value | +|------------|-------| +|interval | 5 | +|algorithm | SMA | +|fast average| 12 | +|slow average| 26 | + +In the example above the current price will be sampled every 5 minutes an each of these samples will be fed to the slow and fast simple moving averages (SMA). Since the fast moving average has a smaller length it is more responsive to changes in the market and this moves 'faster'. If the fast average crosses above the slow average a 'BUY' order is issued since the market is trending upwards. If the fast average crosses below the slow averages a 'SELL' order is issued since the market is trending downwards. The orders are currently set as limit orders at the current price so they should (partially) imitate market orders. The algorithm will continue trading until cancelled. @@ -27,10 +36,12 @@ The following are the input parameters for the script. If you are going to use The _intervalSize_ defines an interval at which a ticker is created internally to tracker the price at the defined interval. The _fastAverageLength_ and _slowAverageLength_ define the number of ticks from the ticker defined by the _intervalSize_. Since there is no current access to history data in the script it you need to wait for the moving averages to fill up before they can be used. This time is the _intervalSize_ * _[fast|slow]AverageLength_ so since the defaults are 5, 12 & 26, this means you need to wait 5 minutes * 12 samples for the fast average and 5 minutes * 26 samples for the slow average so be careful what you set these to as it will take a while to be ready. -Here is an example with really short lengths which will have the system ready quickly for testing, but obviously won't be much use for trading. -![image](https://user-images.githubusercontent.com/17175274/90343481-f1db4880-e010-11ea-960f-0c9c428d2748.png) +Here is Crossover Trader configuration with the default values. + +![image](https://github.com/AwooOOoo/orko-wiki/blob/master/images/CrossoverTraderMenu.png) Here is what you can expect from the Server Notifications. The trades themselves are highlighted and updates to the SMA values are provided at each interval. + ![image](https://user-images.githubusercontent.com/17175274/90343512-3666e400-e011-11ea-9c7c-601a62a38c7c.png) ### Code @@ -277,4 +288,4 @@ having to reimplement them. | 1.2 | SMA Support (Fixed amount traded, requires manual initial inTrade status as Parameter) | ### Disclaimer -> Trading cryptocurrencies (or any other financial market) involves substantial risk, and there is always the potential for loss. Your trading results may vary. No representation is being made that this algorithm will guarantee profits, or not result in losses from trading. \ No newline at end of file +> Trading cryptocurrencies (or any other financial market) involves substantial risk, and there is always the potential for loss. Your trading results may vary. No representation is being made that this algorithm will guarantee profits, or not result in losses from trading. From 0c93b7140e009a637295a152550295bb292e316d Mon Sep 17 00:00:00 2001 From: Paul Matthews Date: Sun, 23 Aug 2020 15:53:45 +0200 Subject: [PATCH 6/6] Updates & Corrections - Added Features used from the script engine - Small fix to EMA and cleaned notifications output --- Example-Script-Crossover-Trader.md | 32 ++++++++++++++++-------------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/Example-Script-Crossover-Trader.md b/Example-Script-Crossover-Trader.md index d00ae66..4e40873 100644 --- a/Example-Script-Crossover-Trader.md +++ b/Example-Script-Crossover-Trader.md @@ -4,7 +4,7 @@ This is meant as a full example that uses many of the script engine's features. Crossover Trader is a simple automatic trader that buys or sells the selected trading pair when two moving averages of different lengths cross eachother. Crossover Trader is a simple buy/sell automatic trader based either Simple Moving Averages [SMA](https://www.investopedia.com/terms/s/sma.asp) or Exponential Moving Averages [EMA](https://www.investopedia.com/terms/e/ema.asp). -In the chart below the SMA(12) and SMA(26) are plotted, and the crossover points indicate where the Crossover Trader would place trades. +In the chart below the SMA(12) and SMA(26) are plotted (technically its SMMA in the image, but its just for illustration purpose), and the crossover points indicate where the Crossover Trader would place trades. ![image](https://github.com/AwooOOoo/orko-wiki/blob/master/images/CrossoverTrader-BuySell.png) You specify the lengths of the fast (i.e SMA(12)) and slow averages (SMA(26)) and the interval at which to sample the price. @@ -22,7 +22,14 @@ In the example above the current price will be sampled every 5 minutes an each o The algorithm will continue trading until cancelled. -### Features +### Engine Features Used + +Here are the features of the script engine that are used and for what + +- setInterval - Used to create its own periodic ticker (set from initial configuration) from the last trade (setTick) data +- setTick - Used to get a stream of trades for the selected trading pair +- setBalance - Used to know what balances are available for the base and quote side of the selected trading pair +- setOpenOrders - Used to determine is we have an order pending on the exchange ### Input Parameters The following are the input parameters for the script. If you are going to use this script please create these variables. @@ -45,7 +52,6 @@ Here is what you can expect from the Server Notifications. The trades themselves ![image](https://user-images.githubusercontent.com/17175274/90343512-3666e400-e011-11ea-9c7c-601a62a38c7c.png) ### Code - ``` var lastPrice; // The last price data received var subscriptionTicker; // Subscription for Trade updates @@ -121,25 +127,21 @@ Improvement: When #985 is addressed we won't have to manually create an EMA func function exponentialMovingAverage(averageLength) { var ema = undefined; // Default, buffer still filling - notifications.info("Lengths: " + quotes.length + " " + lastEMA[averageLength]); - if (quotes.length <= averageLength && lastEMA[averageLength] == undefined) { // Initialize the EMA with an SMA - notifications.info("Initializing EMA!!!"); + notifications.info("Filling the EMA(" + averageLength + "): " + quotes.length + "/" + averageLength) if (quotes.length == averageLength) { // Wait until buffer is full - ema = simpleMovingAverage(averageLength) / averageLength; + ema = simpleMovingAverage(averageLength); lastEMA[averageLength] = ema; - notifications.info("EMA initially set to: " + ema); - } + notifications.info("EMA(" + averageLength + ") initially set to: " + ema); + } - notifications.info("Filling the EMA(" + averageLength + "): " + quotes.length + "/" + averageLength) - } else if (quotes.length == averageLength) { // Array is full + } else if (quotes.length >= averageLength) { // Array is full // Calculate EMA - notifications.info("Running EMA!!! " + lastPrice + " " + lastEMA[averageLength]); var multiplier = (2 / (averageLength + 1)); - ema = (lastPrice - lastEMA[averageLength]) * multiplier + lastEMA; + ema = (lastPrice - lastEMA[averageLength]) * multiplier + lastEMA[averageLength]; lastEMA[averageLength] = ema; notifications.info("EMA(" + averageLength + ") = " + parseFloat(ema).toFixed(2)); @@ -148,6 +150,7 @@ function exponentialMovingAverage(averageLength) { return ema; } + /* Update the moving averages and check if conditions to trade have been met @@ -184,7 +187,7 @@ function updateAveragesAndCheckConditions() { // Determine if we are in the trade already var inTrade = false; if (baseValue > quoteValue) inTrade = true; - /*if (debug === true)*/ notifications.info("inTrade:" + inTrade + " - base value: " + baseValue + " quote value: " + quoteValue); + if (debug === true) notifications.info("inTrade:" + inTrade + " - base value: " + baseValue + " quote value: " + quoteValue); // Don't allow trades until the averages can be fully computed (i.e. are defined) if (slow !== undefined && fast !== undefined) { @@ -256,7 +259,6 @@ function start() { Executes when the script is stopped */ function stop() { - notifications.info("Stopping"); events.clear(subscriptionTicker); // Stop the subscription to the ticker events.clear(subscriptionBalance); // Stop the subscription to the balance(s) events.clear(subscriptionOpenOrders); // Stop the subscription to the order order(s)