From 10d252f38e297f3d6a661c903d7b179e1161aa40 Mon Sep 17 00:00:00 2001 From: hardyVeles Date: Mon, 18 Jun 2018 06:45:36 +0200 Subject: [PATCH 1/3] Multi-target / Cross-platform conversion: .NET 4.0, .NET 4.5 and .NET Standard 2.0 --- BibtexLibrary.Standard/BibtexEntry.cs | 18 ++ BibtexLibrary.Standard/BibtexFile.cs | 24 ++ BibtexLibrary.Standard/BibtexImporter.cs | 22 ++ .../BibtexLibrary.Standard.csproj | 53 ++++ BibtexLibrary.Standard/Parser/BibtexParser.cs | 281 ++++++++++++++++++ .../Parser/Nodes/BibtexFile.cs | 19 ++ BibtexLibrary.Standard/Parser/Nodes/Entry.cs | 17 ++ .../Parser/Nodes/ParseNode.cs | 13 + BibtexLibrary.Standard/Parser/Nodes/Tag.cs | 10 + .../Parser/ParseException.cs | 13 + .../Tokenizer/ExpressionDictionary.cs | 27 ++ .../Tokenizer/MatchException.cs | 22 ++ BibtexLibrary.Standard/Tokenizer/Tokenizer.cs | 121 ++++++++ .../Tokens/AbstractToken.cs | 55 ++++ BibtexLibrary.Standard/Tokens/At.cs | 15 + BibtexLibrary.Standard/Tokens/ClosingBrace.cs | 18 ++ BibtexLibrary.Standard/Tokens/Comma.cs | 19 ++ BibtexLibrary.Standard/Tokens/Comment.cs | 22 ++ BibtexLibrary.Standard/Tokens/Equals.cs | 19 ++ BibtexLibrary.Standard/Tokens/NewLine.cs | 14 + BibtexLibrary.Standard/Tokens/OpeningBrace.cs | 14 + BibtexLibrary.Standard/Tokens/Preamble.cs | 14 + BibtexLibrary.Standard/Tokens/Text.cs | 18 ++ BibtexLibrary.Standard/Tokens/ValueQuote.cs | 19 ++ BibtexLibrary.Standard/imbSCI - Copy.ico | Bin 0 -> 234688 bytes BibtexLibrary.sln | 13 +- 26 files changed, 878 insertions(+), 2 deletions(-) create mode 100644 BibtexLibrary.Standard/BibtexEntry.cs create mode 100644 BibtexLibrary.Standard/BibtexFile.cs create mode 100644 BibtexLibrary.Standard/BibtexImporter.cs create mode 100644 BibtexLibrary.Standard/BibtexLibrary.Standard.csproj create mode 100644 BibtexLibrary.Standard/Parser/BibtexParser.cs create mode 100644 BibtexLibrary.Standard/Parser/Nodes/BibtexFile.cs create mode 100644 BibtexLibrary.Standard/Parser/Nodes/Entry.cs create mode 100644 BibtexLibrary.Standard/Parser/Nodes/ParseNode.cs create mode 100644 BibtexLibrary.Standard/Parser/Nodes/Tag.cs create mode 100644 BibtexLibrary.Standard/Parser/ParseException.cs create mode 100644 BibtexLibrary.Standard/Tokenizer/ExpressionDictionary.cs create mode 100644 BibtexLibrary.Standard/Tokenizer/MatchException.cs create mode 100644 BibtexLibrary.Standard/Tokenizer/Tokenizer.cs create mode 100644 BibtexLibrary.Standard/Tokens/AbstractToken.cs create mode 100644 BibtexLibrary.Standard/Tokens/At.cs create mode 100644 BibtexLibrary.Standard/Tokens/ClosingBrace.cs create mode 100644 BibtexLibrary.Standard/Tokens/Comma.cs create mode 100644 BibtexLibrary.Standard/Tokens/Comment.cs create mode 100644 BibtexLibrary.Standard/Tokens/Equals.cs create mode 100644 BibtexLibrary.Standard/Tokens/NewLine.cs create mode 100644 BibtexLibrary.Standard/Tokens/OpeningBrace.cs create mode 100644 BibtexLibrary.Standard/Tokens/Preamble.cs create mode 100644 BibtexLibrary.Standard/Tokens/Text.cs create mode 100644 BibtexLibrary.Standard/Tokens/ValueQuote.cs create mode 100644 BibtexLibrary.Standard/imbSCI - Copy.ico diff --git a/BibtexLibrary.Standard/BibtexEntry.cs b/BibtexLibrary.Standard/BibtexEntry.cs new file mode 100644 index 0000000..7d94891 --- /dev/null +++ b/BibtexLibrary.Standard/BibtexEntry.cs @@ -0,0 +1,18 @@ +using System.Collections.Generic; + +namespace BibtexLibrary +{ + public class BibtexEntry + { + private Dictionary _tags = new Dictionary(); + public string Type { get; set; } + + public string Key { get; set; } + + public Dictionary Tags + { + get { return _tags; } + set { _tags = value; } + } + } +} diff --git a/BibtexLibrary.Standard/BibtexFile.cs b/BibtexLibrary.Standard/BibtexFile.cs new file mode 100644 index 0000000..69857cf --- /dev/null +++ b/BibtexLibrary.Standard/BibtexFile.cs @@ -0,0 +1,24 @@ +using System.Collections.Generic; + +namespace BibtexLibrary +{ + public class BibtexFile + { + private ICollection _entries = new List(); + private Dictionary _stringDefinitions = new Dictionary(); + + public Dictionary StringDefinitions + { + get { return _stringDefinitions; } + set { _stringDefinitions = value; } + } + + public ICollection Preamble { get; set; } + + public ICollection Entries + { + get { return _entries; } + set { _entries = value; } + } + } +} diff --git a/BibtexLibrary.Standard/BibtexImporter.cs b/BibtexLibrary.Standard/BibtexImporter.cs new file mode 100644 index 0000000..c37fcc0 --- /dev/null +++ b/BibtexLibrary.Standard/BibtexImporter.cs @@ -0,0 +1,22 @@ +using System; +using System.IO; +using BibtexLibrary.Parser; +using BibtexLibrary.Tokenizer; + +namespace BibtexLibrary +{ + public class BibtexImporter + { + public static BibtexFile FromString(string text) + { + BibtexParser file = new BibtexParser(new Tokenizer.Tokenizer(new ExpressionDictionary(), text)); + + return file.Parse(); + } + + public static BibtexFile FromStream(StreamReader reader) + { + throw new NotImplementedException(); + } + } +} diff --git a/BibtexLibrary.Standard/BibtexLibrary.Standard.csproj b/BibtexLibrary.Standard/BibtexLibrary.Standard.csproj new file mode 100644 index 0000000..57e8e06 --- /dev/null +++ b/BibtexLibrary.Standard/BibtexLibrary.Standard.csproj @@ -0,0 +1,53 @@ + + + + netstandard2.0;net45;net40 + imbSCI - Copy.ico + True + BibtexLibrary.Standard + 1.4.4 + BibtexLibrary .NET Standard + + http://doc.veles.rs/imbSCI.ico + http://blog.veles.rs/ + http://doc.veles.rs/LICENCE.txt + Copyright (C) 2018 + Maikel Hofman's BibtexLibrary - multi-target / cross-platform fork by Goran Grubić (imbVeles). + +Original repository: https://github.com/MaikelH/BibtexLibrary + en-US + Targets: .NET 4.0*, .NET 4.5 and .NET Core 2.0 i.e ready for use in cross-platform application development. + + Bibtex + https://github.com/gorangrubic/BibtexLibrary + GitHub + Maikel Hofman, Goran Grubić + imbVeles + 1.4.4.0 + 1.4.4.0 + BibtexLibrary.Standard + False + BibtexLibrary + + + + + NETCORE;NETSTANDARD;NETSTANDARD2_0 + + + + NET40 + + + + NET45;NETFULL + + + + bin\Debug\netstandard2.0\BibtexLibrary.Standard.xml + + + + + + diff --git a/BibtexLibrary.Standard/Parser/BibtexParser.cs b/BibtexLibrary.Standard/Parser/BibtexParser.cs new file mode 100644 index 0000000..1e2b18c --- /dev/null +++ b/BibtexLibrary.Standard/Parser/BibtexParser.cs @@ -0,0 +1,281 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using BibtexLibrary.Parser.Nodes; +using BibtexLibrary.Tokens; + +namespace BibtexLibrary.Parser +{ + public class BibtexParser + { + private readonly Tokenizer.Tokenizer _tokenizer; + + public BibtexParser(Tokenizer.Tokenizer tokenizer) + { + _tokenizer = tokenizer; + } + + public BibtexFile Parse() + { + ParseNode node = ParseInput(_tokenizer); + BibtexFile fileObject = convertParseNode(node); + + return fileObject; + } + + private BibtexFile convertParseNode(ParseNode node) + { + Nodes.BibtexFile parseFile = (Nodes.BibtexFile) node; + + BibtexFile bibtex = new BibtexFile(); + + foreach (Entry entry in parseFile.Entries) + { + if (entry.Type == "String") + { + bibtex.StringDefinitions.Add(entry.Tags.First().Key, entry.Tags.First().Value); + } + else + { + BibtexEntry bibtexEntry = new BibtexEntry { Key = entry.Key, Type = entry.Type }; + + entry.Tags.ToList().ForEach(x => bibtexEntry.Tags.Add(x.Key, x.Value)); + + bibtex.Entries.Add(bibtexEntry); + } + } + + return bibtex; + } + + private ParseNode ParseInput(Tokenizer.Tokenizer tokenizer) + { + Nodes.BibtexFile file = new Nodes.BibtexFile(); + + while (!tokenizer.EndOfInput) + { + AbstractToken token = tokenizer.NextToken(); + + if (token.GetType() == typeof (At)) + { + file.Entries.Add(Entry(tokenizer)); + } + } + + return file; + } + + private Entry Entry(Tokenizer.Tokenizer tokenizer) + { + Entry entry = new Entry(); + + entry.Type = Text(tokenizer); + OpeningBrace(tokenizer); + + if (!entry.Type.Equals("String", StringComparison.OrdinalIgnoreCase)) + { + entry.Key = Text(tokenizer); + Comma(tokenizer); + } + + entry.Tags = Tags(tokenizer); + ClosingBrace(tokenizer); + + return entry; + } + + private String Text(Tokenizer.Tokenizer tokenizer) + { + AbstractToken token = tokenizer.NextToken(); + + if (token.GetType() == typeof(Comma) || token.GetType() == typeof(Text)) + { + return token.GetValue(); + } + + throw new ParseException("Expected type Text but found: " + token.GetType() + " after " + tokenizer.GetPreviousCharacters(25)); + } + + private void OpeningBrace(Tokenizer.Tokenizer tokenizer) + { + AbstractToken token = tokenizer.NextToken(); + + if (token.GetType() == typeof(OpeningBrace)) + { + return; + } + + throw new ParseException("Expected type OpeningBrace but found: " + token.GetType() + " after " + tokenizer.GetPreviousCharacters(25)); + } + + private void ClosingBrace(Tokenizer.Tokenizer tokenizer) + { + AbstractToken token = tokenizer.NextToken(); + + if (token.GetType() == typeof(ClosingBrace)) + { + return; + } + + throw new ParseException("Expected type ClosingBrace but found: " + token.GetType() + " after " + tokenizer.GetPreviousCharacters(25)); + } + + private void Comma(Tokenizer.Tokenizer tokenizer, Boolean optional = false) + { + AbstractToken token = tokenizer.Peek(); + + if (token.GetType() == typeof(Comma)) + { + tokenizer.NextToken(); + return; + } + + if (optional) + { + return; + } + + throw new ParseException("Expected type Comma but found: " + token.GetType() + " after " + tokenizer.GetPreviousCharacters(25)); + } + + /// + /// Retrieves the tag values from the input. + /// + /// + /// + /// + private ICollection Tags(Tokenizer.Tokenizer tokenizer) + { + // This function needs some refactoring. + List tags = new List(); + + while (tokenizer.Peek().GetType() != typeof (ClosingBrace)) + { + Tag tag = new Tag {Key = Text(tokenizer)}; + Equals(tokenizer); + AbstractToken startToken = ValueStart(tokenizer); + + List tokens = new List(); + + bool keepProcessing = true; + int balance = 1; + + while (keepProcessing) + { + Type nextTokenType = tokenizer.Peek().GetType(); + + if (nextTokenType == typeof (OpeningBrace)) + { + balance++; + } + + if ( (startToken.GetType() == typeof(OpeningBrace) && nextTokenType == typeof (ClosingBrace))) + { + if (balance == 1) + { + keepProcessing = false; + ValueStop(tokenizer); + } + } + + if (nextTokenType == typeof(ClosingBrace)) + { + if (balance > 1) + { + balance--; + } + } + + // Double quotes are much more difficult to handle then the braces. The problem is that there is no distinction between + // start and stop quotes. This means we need to look forward to see what is behind the quote to see if it is a quote @ the end + // or the start of a new quote. + if (nextTokenType == typeof (ValueQuote)) + { + AbstractToken quote = tokenizer.NextToken(); + + Type nextType = tokenizer.Peek().GetType(); + if ((nextType == typeof(ClosingBrace) && balance == 1) || + nextType == typeof(Comma)) + { + // end of line found. + keepProcessing = false; + } + else + { + tokens.Add(quote); + continue; + } + } + + if (keepProcessing) + { + tokens.Add(tokenizer.NextToken()); + } + } + + tag.Value = tokens.Aggregate("", (s, token) => s + token.RawValue); + + Comma(tokenizer, true); + NewLine(tokenizer, true); + + tags.Add(tag); + } + + return tags; + } + + private void Equals(Tokenizer.Tokenizer tokenizer) + { + AbstractToken token = tokenizer.NextToken(); + + if (token.GetType() == typeof(Equals)) + { + return; + } + + throw new ParseException("Expected type Equals but found: " + token.GetType() + " after " + tokenizer.GetPreviousCharacters(25)); + } + + private AbstractToken ValueStart(Tokenizer.Tokenizer tokenizer) + { + AbstractToken token = tokenizer.NextToken(); + + if (token.GetType() == typeof(OpeningBrace) || token.GetType() == typeof(ValueQuote)) + { + return token; + } + + throw new ParseException("Expected type Openingbrace or ValueQuote but found: " + token.GetType() + " after " + tokenizer.GetPreviousCharacters(25)); + } + + private AbstractToken ValueStop(Tokenizer.Tokenizer tokenizer) + { + AbstractToken token = tokenizer.NextToken(); + + if (token.GetType() == typeof(ClosingBrace) || token.GetType() == typeof(ValueQuote)) + { + return token; + } + + throw new ParseException("Expected type ClosingBrace or ValueQuote but found: " + token.GetType() + " after " + tokenizer.GetPreviousCharacters(25)); + } + + private void NewLine(Tokenizer.Tokenizer tokenizer, Boolean optional = false) + { + AbstractToken token = tokenizer.Peek(); + + if (token.GetType() == typeof(NewLine)) + { + tokenizer.NextToken(); + return; + } + + if (optional) + { + return; + } + + throw new ParseException("Expected type Comma but found: " + token.GetType() + " after " + tokenizer.GetPreviousCharacters(25)); + } + } +} diff --git a/BibtexLibrary.Standard/Parser/Nodes/BibtexFile.cs b/BibtexLibrary.Standard/Parser/Nodes/BibtexFile.cs new file mode 100644 index 0000000..1d08657 --- /dev/null +++ b/BibtexLibrary.Standard/Parser/Nodes/BibtexFile.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace BibtexLibrary.Parser.Nodes +{ + public class BibtexFile : ParseNode + { + private ICollection _entries = new List(); + + public ICollection Entries + { + get { return _entries; } + set { _entries = value; } + } + } +} diff --git a/BibtexLibrary.Standard/Parser/Nodes/Entry.cs b/BibtexLibrary.Standard/Parser/Nodes/Entry.cs new file mode 100644 index 0000000..765ad02 --- /dev/null +++ b/BibtexLibrary.Standard/Parser/Nodes/Entry.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace BibtexLibrary.Parser.Nodes +{ + public class Entry : ParseNode + { + public String Type { get; set; } + + public String Key { get; set; } + + public ICollection Tags { get; set; } + } +} diff --git a/BibtexLibrary.Standard/Parser/Nodes/ParseNode.cs b/BibtexLibrary.Standard/Parser/Nodes/ParseNode.cs new file mode 100644 index 0000000..96b7efa --- /dev/null +++ b/BibtexLibrary.Standard/Parser/Nodes/ParseNode.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace BibtexLibrary.Parser.Nodes +{ + public abstract class ParseNode + { + + } +} diff --git a/BibtexLibrary.Standard/Parser/Nodes/Tag.cs b/BibtexLibrary.Standard/Parser/Nodes/Tag.cs new file mode 100644 index 0000000..02c63d7 --- /dev/null +++ b/BibtexLibrary.Standard/Parser/Nodes/Tag.cs @@ -0,0 +1,10 @@ +using System; + +namespace BibtexLibrary.Parser.Nodes +{ + public class Tag + { + public String Key { get; set; } + public String Value { get; set; } + } +} \ No newline at end of file diff --git a/BibtexLibrary.Standard/Parser/ParseException.cs b/BibtexLibrary.Standard/Parser/ParseException.cs new file mode 100644 index 0000000..ec64f8a --- /dev/null +++ b/BibtexLibrary.Standard/Parser/ParseException.cs @@ -0,0 +1,13 @@ +using System; + +namespace BibtexLibrary.Parser +{ + public class ParseException : Exception + { + public ParseException(string s) : base(s) + { + + + } + } +} \ No newline at end of file diff --git a/BibtexLibrary.Standard/Tokenizer/ExpressionDictionary.cs b/BibtexLibrary.Standard/Tokenizer/ExpressionDictionary.cs new file mode 100644 index 0000000..cb8396b --- /dev/null +++ b/BibtexLibrary.Standard/Tokenizer/ExpressionDictionary.cs @@ -0,0 +1,27 @@ +using System; +using System.Collections.Generic; +using BibtexLibrary.Tokens; + +namespace BibtexLibrary.Tokenizer +{ + public class ExpressionDictionary : Dictionary + { + public ExpressionDictionary() + { + Init(); + } + + private void Init() + { + Add(typeof(Comment), "^(\\s)?\\%(.*)$"); + Add(typeof(At), "^(\\s)*@"); + Add(typeof(Preamble), "(\\s)*Preamble"); + Add(typeof(OpeningBrace), "^(\\s)*{"); + Add(typeof(ClosingBrace), "^(\\s)*}"); + Add(typeof(Equals), "^\\s*="); + Add(typeof(ValueQuote), "^(\\s)*\""); + Add(typeof(Text), "^\\s*['~\\*\\[\\]\\+%|<>#\\w\\d:\\.\\s-;(\\)/\\?&\\?&\\\\]+"); + Add(typeof(Comma), "^\\s*,"); + } + } +} diff --git a/BibtexLibrary.Standard/Tokenizer/MatchException.cs b/BibtexLibrary.Standard/Tokenizer/MatchException.cs new file mode 100644 index 0000000..4fd8b2d --- /dev/null +++ b/BibtexLibrary.Standard/Tokenizer/MatchException.cs @@ -0,0 +1,22 @@ +using System; + +namespace LexicalAnalyzer +{ + public class MatchException : Exception + { + private readonly string _character; + private readonly int _position; + + public MatchException(String character, int position) + { + _character = character; + _position = position; + + } + + public override string Message + { + get { return "Could not match character: " + _character + " at position " + _position; } + } + } +} \ No newline at end of file diff --git a/BibtexLibrary.Standard/Tokenizer/Tokenizer.cs b/BibtexLibrary.Standard/Tokenizer/Tokenizer.cs new file mode 100644 index 0000000..96c48bf --- /dev/null +++ b/BibtexLibrary.Standard/Tokenizer/Tokenizer.cs @@ -0,0 +1,121 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Text.RegularExpressions; +using BibtexLibrary.Tokens; +using LexicalAnalyzer; + +namespace BibtexLibrary.Tokenizer +{ + public class Tokenizer + { + private readonly ExpressionDictionary _dictionary; + private readonly string _input; + private int _counter; + + public Tokenizer(ExpressionDictionary dictionary, string input) + { + _dictionary = dictionary; + _input = input; + } + + public AbstractToken NextToken() + { + + // Loop through all tokens and check if they match the input string + foreach (KeyValuePair pair in _dictionary) + { + Match match; + + if (pair.Key == typeof (Comment)) + { + match = Regex.Match(_input.Substring(_counter), pair.Value, RegexOptions.Multiline); + } + else + { + // TODO: See if substring does not impose a to harsh performance drop + match = Regex.Match(_input.Substring(_counter), pair.Value); + } + + if (!match.Success) + { + continue; + } + _counter += match.Value.Length; + + if (!pair.Key.IsSubclassOf(typeof (AbstractToken))) + { + continue; + } + + // Create new instance of the specified type with the found value as parameter + AbstractToken token = (AbstractToken)Activator.CreateInstance(pair.Key, new object[] { match.Value, _counter - match.Value.Length }, null); + + return token; + } + + throw new MatchException(_input[_counter].ToString(CultureInfo.InvariantCulture), _counter); + } + + public AbstractToken Peek() + { + // Loop through all tokens and check if they match the input string + foreach (KeyValuePair pair in _dictionary) + { + var test = _input.Length; + // TODO: See if substring does not impose a to harsh performance drop + Match match = Regex.Match(_input.Substring(_counter), pair.Value); + + if (match.Success) + { + if (pair.Key.IsSubclassOf(typeof(AbstractToken))) + { + // Create new instance of the specified type with the found value as parameter + AbstractToken token = (AbstractToken)Activator.CreateInstance(pair.Key, new object[] { match.Value, _counter }, null); + + return token; + } + + } + } + + throw new MatchException(_input[_counter].ToString(CultureInfo.InvariantCulture), _counter); + } + + /// + /// Return all the tokens in the inputstring. + /// + /// List of tokens + public ICollection GetAllTokens() + { + List tokens = new List(); + + while (!EndOfInput) + { + tokens.Add(NextToken()); + } + + return tokens; + } + + /// + /// Checks whether the scanner is at the end of the input. + /// + public bool EndOfInput + { + get { return (_counter >= (_input.Length)); } + } + + /// + /// Returns the previous n characters. + /// + /// + /// Previous characters in the tokenizer + public string GetPreviousCharacters(int n) + { + return _input.Substring(_counter - n, n); + } + + + } +} diff --git a/BibtexLibrary.Standard/Tokens/AbstractToken.cs b/BibtexLibrary.Standard/Tokens/AbstractToken.cs new file mode 100644 index 0000000..7cd9640 --- /dev/null +++ b/BibtexLibrary.Standard/Tokens/AbstractToken.cs @@ -0,0 +1,55 @@ +using System; + +namespace BibtexLibrary.Tokens +{ + public class AbstractToken + { + public AbstractToken(String value) + { + Value = value; + } + + public AbstractToken(String value, int position) + { + RawValue = value; + Value = value.Trim(); + _position = position; + } + + protected bool Equals(AbstractToken other) + { + return string.Equals(Value, other.Value) && _position == other._position; + } + + public override int GetHashCode() + { + unchecked + { + return ((Value != null ? Value.GetHashCode() : 0)*397) ^ _position; + } + } + + protected readonly string Value; + private readonly int _position; + + public String GetValue() + { + return Value; + } + + public int Position + { + get { return _position; } + } + + public string RawValue { get; private set; } + + public override bool Equals(object obj) + { + if (ReferenceEquals(null, obj)) return false; + if (ReferenceEquals(this, obj)) return true; + if (obj.GetType() != GetType()) return false; + return Equals((AbstractToken) obj); + } + } +} diff --git a/BibtexLibrary.Standard/Tokens/At.cs b/BibtexLibrary.Standard/Tokens/At.cs new file mode 100644 index 0000000..fcea6ae --- /dev/null +++ b/BibtexLibrary.Standard/Tokens/At.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace BibtexLibrary.Tokens +{ + public class At : AbstractToken + { + public At(String Value) :base(Value) { } + + public At(String Value, int Postion) : base(Value, Postion) { } + } +} diff --git a/BibtexLibrary.Standard/Tokens/ClosingBrace.cs b/BibtexLibrary.Standard/Tokens/ClosingBrace.cs new file mode 100644 index 0000000..ba548c9 --- /dev/null +++ b/BibtexLibrary.Standard/Tokens/ClosingBrace.cs @@ -0,0 +1,18 @@ +using System; + +namespace BibtexLibrary.Tokens +{ + public class ClosingBrace : AbstractToken + { + public ClosingBrace(String value) + : base(value) + { + } + + public ClosingBrace(String value, int postion) + : base(value, postion) + { + + } + } +} diff --git a/BibtexLibrary.Standard/Tokens/Comma.cs b/BibtexLibrary.Standard/Tokens/Comma.cs new file mode 100644 index 0000000..f11c50b --- /dev/null +++ b/BibtexLibrary.Standard/Tokens/Comma.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace BibtexLibrary.Tokens +{ + public class Comma : AbstractToken + { + public Comma(string value) : base(value) + { + } + + public Comma(string value, int position) : base(value, position) + { + } + } +} diff --git a/BibtexLibrary.Standard/Tokens/Comment.cs b/BibtexLibrary.Standard/Tokens/Comment.cs new file mode 100644 index 0000000..3242830 --- /dev/null +++ b/BibtexLibrary.Standard/Tokens/Comment.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace BibtexLibrary.Tokens +{ + class Comment : AbstractToken + { + public Comment(String value) + : base(value) + { + } + + public Comment(String value, int postion) + : base(value, postion) + { + { + } + } + } +} diff --git a/BibtexLibrary.Standard/Tokens/Equals.cs b/BibtexLibrary.Standard/Tokens/Equals.cs new file mode 100644 index 0000000..eabcec6 --- /dev/null +++ b/BibtexLibrary.Standard/Tokens/Equals.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace BibtexLibrary.Tokens +{ + public class Equals : AbstractToken + { + public Equals(string value) : base(value) + { + } + + public Equals(string value, int position) : base(value, position) + { + } + } +} diff --git a/BibtexLibrary.Standard/Tokens/NewLine.cs b/BibtexLibrary.Standard/Tokens/NewLine.cs new file mode 100644 index 0000000..02ec2d1 --- /dev/null +++ b/BibtexLibrary.Standard/Tokens/NewLine.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace BibtexLibrary.Tokens +{ + class NewLine : AbstractToken + { + public NewLine(String Value) :base(Value) { } + public NewLine(String Value, int Postion) : base(Value, Postion) { } + } +} diff --git a/BibtexLibrary.Standard/Tokens/OpeningBrace.cs b/BibtexLibrary.Standard/Tokens/OpeningBrace.cs new file mode 100644 index 0000000..135b300 --- /dev/null +++ b/BibtexLibrary.Standard/Tokens/OpeningBrace.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace BibtexLibrary.Tokens +{ + public class OpeningBrace : AbstractToken + { + public OpeningBrace(String Value) :base(Value) { } + public OpeningBrace(String Value, int Postion) : base(Value, Postion) { } + } +} diff --git a/BibtexLibrary.Standard/Tokens/Preamble.cs b/BibtexLibrary.Standard/Tokens/Preamble.cs new file mode 100644 index 0000000..0cc9932 --- /dev/null +++ b/BibtexLibrary.Standard/Tokens/Preamble.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace BibtexLibrary.Tokens +{ + public class Preamble : AbstractToken + { + public Preamble(String Value) :base(Value) { } + public Preamble(String Value, int Postion) : base(Value, Postion) { } + } +} diff --git a/BibtexLibrary.Standard/Tokens/Text.cs b/BibtexLibrary.Standard/Tokens/Text.cs new file mode 100644 index 0000000..3f4afff --- /dev/null +++ b/BibtexLibrary.Standard/Tokens/Text.cs @@ -0,0 +1,18 @@ +using System; + +namespace BibtexLibrary.Tokens +{ + public class Text : AbstractToken + { + public Text(String value) + : base(value) + { + } + + public Text(String value, int postion) + : base(value, postion) + { + + } + } +} diff --git a/BibtexLibrary.Standard/Tokens/ValueQuote.cs b/BibtexLibrary.Standard/Tokens/ValueQuote.cs new file mode 100644 index 0000000..8dc0f53 --- /dev/null +++ b/BibtexLibrary.Standard/Tokens/ValueQuote.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace BibtexLibrary.Tokens +{ + public class ValueQuote : AbstractToken + { + public ValueQuote(string value) : base(value) + { + } + + public ValueQuote(string value, int position) : base(value, position) + { + } + } +} diff --git a/BibtexLibrary.Standard/imbSCI - Copy.ico b/BibtexLibrary.Standard/imbSCI - Copy.ico new file mode 100644 index 0000000000000000000000000000000000000000..bae3c803e2e422f5135d85250897e6961474a03c GIT binary patch literal 234688 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

vo^)eRfc* zR=#xlsGeRtyFoUtBPe9>XoUJ%kdIgygnC1}&!0b^nsk^X#A*F8)BW2YL(dvcZr$#Z zSNF^0)#EDFgZ#OpEdMukUo-9u3K>ive(*kh|J`-kx@F5dzs)_z1*?1eRX%?vv_W8C zS3yUt$%BxOpMNGJ`UKZ#6S=6rBj;WwvTL=On)^(k{-Md#*bjZ&Zag`v;%RGX5sFb& zo!{5w)_5rFMa$`R)k6yG4xQ6sIyF$OCAS_wAm6C_9$(}9F5aamAhTLHVz#+co1@Lj1X7NSjyi26Gt#MG}%h7y>F09uW!hy z$9Lr5_dUt|pF&QYN>3kt1z8_*vto?!PPjIoKoZYX$Y?QSd2*d>-8AIXt(?4q?~s?; zL|(nn?|WSZ-;qt*52>VZkVZEjhv9aQ_x+Kx%8&!sG$@!Dh=b`BC6}Pgf3rt zhjJI_Fy4mIN0?jPnnsgS{S^7W{x7%(|3r@7OkRH_ygRk&q3^9)wHo%2IYQmPgpS*$ zb-T8ImVb7C!}<*ena!5zX)Rl}5&Ghr^TDaZn~7_&hg|w$KJNW3+5iOJC5KLT$uZ~$ za_sSxrcRkmPk#D}oSP-mjG6Ojz@Sm&)bkN}^~N~a`@7#^B3r*NXyvjw817%!zPIe1 zyYc<^)TK+1kQZjx(Qn*%_^u$EKbKAG|X=b%Ye1-97FLmnFg=Jfqm)V?r?iA*K z=zgvt_sFI14RXf&;N0zdatXXHypwL~3UWqYnJ~IH*|#YmuL0=ueQ(y%5N&7W4mD`^ z2^AG&3pPF0Z&clJJp3=AFqX5RkpIdrqcnliBXTD59J@4oY{ zkpBmFz9!BylU#>9Lp$6d=K&}O^69L;g?IZUdAQnsuSKO%Z0*0+WW z=@r4oQn%Y>QieYy*U%r(7I(=dvc=(|rCr|7E3Rr(RT7;MtH}V{fWiB z#ZY$o-{s@K^4!<1Sf1a|4#>A#YAo3N+h(S2GpcPiO6i>EqW&X6>`itL8|0{0cw?RtUgsgh~(gi&t!k(H=At9k2|6TFF z8PETIe~Q|u%W)=FDcFfsQ&4}m`u}gB7tlC<(<@n)4 zhdyRN$2*?0IA>L6=B(KE?S0<-*O>lc3V-Z<%H%1dE`0RSeWru6H4Y~Gu=RVrek0c4 z^>pO$VZlyx>*ftXzdaAX&=Y>6NB?ome|;A+y${C!pPxRdfS&R`rKRa;@#2M4Sh$)_ z!rs7agUn`o{MZp%vw9WwMJ=Grj2W;)e++%>5t~C`cR{c~0S_*lGXaRHNkw{I`O zUYe2AwoNx$zHBqrayBBZjj+jVq~dkV-GF^q>uE{uI;=;nC0z>E`xO4LIZdUvmoA3f ze+&LsuKFh#*s*>42d`gMLbe+%|x`X0lMQo z?13Bt+3IJqv57$$7s4L00J8L4QmdJqF_aSG7m+>osyI4sr>;Rm$lrfD_IYik&_S@r zif2==UcK1b^_joQ!@N1OGLk0cV~>LxI>(RLn=zl}%*lrQH5WFHxtN!~f-RWoBt(7t zX|abR5c_X(Y0a8V)Us7S*epI4{IQ>} zFS9)ub14GPCnhcy2=91XDBVl7LB^`AyNsh&+CY#qn34@sr?eLY~`;aAtcy-J#h zK~&#nf)H~P!K*p)(VDHf?}AMT z=WPy<%sCbDRbpR-SJRq26s}&gqp)xdg@$JdY1untE${2|)VLY5yS$?Ay(UuZ=y_Pf z+Y7teHmoTeMIK5ZC+e`jWCUcz)8ygq33(H1)eZOIIq=+vb@P3~x;a}zSE{g{*y0e@ zUlwA``(s*}zj9|y`fLyAlH3I-cbbrXP|x{v;`kv_H5p7xmK0)rI8nII)lJ6Q-VvQ8mk-D$CPZ{SjE5V^g0f^M+WWLwGsOT zzDIf-w{XECceX!u?C7DmUP)(9@1v_kJr=zeFVa*rFJx@{R?m1Ym zPZjng&d*-p5f?XZDANsA7hruB`_Xi1#gsW)5BmyRPoIc)cCS!&uO<^oti&3=TOS%d zb}{OIBDL{_42C^#oMaBxJy&D>b|pD@u7q2Jby4iw!y2@EE4Jo|cEOrw1J`%(uY#`? z#_2n^Z_?PY+F=-Hr!yJ9XzglBOJ756I<2Io%gV5iZVtI(jhP)UE!c}7eH-ifsn{1a zibUdpSflMv=gz`jU^g3UWmqq3fpr6{Wx8Sw(;4fR3all|J=S8~Z#^lnUgn7OImsf} z-Yc*Vb&+86TDV|gD)umEv%RJTD_2ofCEN25MQ<(JN*y~#Qc+PEhP=mg;e#X4O-|6v z)EKHOpGHC5N71JB%dnpO7S`<8`W^Q4`IO>(GkIV=(yiq>a!?^%w&v9k>yF-R-DMjk zOw16o z2{mmokXm%i!#d*USciL`ynGK)BR>Pc`jsEnd0@xt-8-0Mu(v5xSTpp-T8AVVYr{VZ zwuHrtas=BG?9Ewx7C#B{HTFT|3ePN+6w6D&tvR#jR@)0+Q%)|{O+CJ+#Ho4Y(PSj`37bW6W2326YwLQF#GNO%j#vxp z^cg8(V^iW>tU8H)HlO@^E~bkYj#2a&o*K4aOb*R=Vl93=(ta)2v6w9-Ep3Ldzj}1+ z=zc9*v}(Zg%cLZ$9h=$Hgf%m9KQev$A#7%ec(39}+GqvVQ><&2JGR4KE6*bidyLuz zEu?1cwX}Q3CWK>01;tM)AX}`9d3M}KBG)3?ySo%Nj~9Xskl93-y`HTDG;h`dk}1bQ z_kXb#Ydjx)_>r(SVBJ$@p~-1$u+K7vL@iEH+AQ=ZuXya4vhK@#_UIN}zj{GPF{o=F z!TkVsEjyR~G+bLmt^rrcrQ^5M!Y@U5#_UMUcDHTocFd3aFkfAM$?F_b-%`D17w8D~2r-)pOP?K+k|ql_!u`-QOKMAGc6LVEY?QJTLnk7muyr`4;A@Ol2*WZM>d_IkqB z*4;!+{CTAKi;y;3bNTRt59#f^s+CQ@=s-j`v8?;S%NLPNpsc z-X?zbB$D`i3i~bWxUfSr+?Z|72V))P&YHBRP16Z>W2WENr1yKbOF*DMvsJTi3^uIa z$g+UrIoY;(i=6u3M;^Y1?eBY123{mt=R4GW&;n}StCT$YJ$SyzBvschUjMMDcX22X12pj4^*dv*Jv^%ra-J_PR zyO3M|7r(KgI`^ue76EgFaO_8?OC{LXA9M+B}tVEa@Zr-~oH#QXI%_7{(&cZ_F| z_Df0_KOyO_()|6ipulbcY%QMc=a@TpE~QP0#Tro#Icr|S7FYpWCiVh`K7oxHcEG-% ze>v5`dc_EQw=i$cY}DOC`VnE7Y|%BS`+xjx4s^|Jm9UAietTfY8j|_G4cpN#;-XH%O5=^j*cDPi}(AcFy3MPdfV^I^`Bf191v1}&g?lWm`&|fwD7 zX+~Na`xmwU)-iJAD4Xlwe*NOi>BHDNHG;Hbr(y5<3D^=&(Wz4>A^)F* z&U_5t1nh@iGzROQ6KL_V$VM-$ns?yp|51qsF=5) zM|_SoWgSL3!gm>Cp|8D566}%b*RKx^88V2bO?!(Ph$rLwo%Qfh4tXB>i=q*9>5G3j z4_v+S`Q0A97GXWeNPKoFbi8=z;X3S>jllO@8<9pLWc5NJJxuuI?l}Q%upML6X6RzG zNa3=88aB>>4m%HWM%fQ3!Za{_~N6YdKQEFNNzP&REaTOKqB$-19_89M> zMokt#MziW-a;HpkX}E{nRM?l^3c4ip$;PerU|;uM%9yo@A~oTfnl!K`S<$1%Kzz$} zgQ7+j(u9d@9yMcs!xW5%OQ}(_RgjOc2fI}W^$eZ^`^^ffFP#A$@gQ`?JFJK#{%d81<>nOlcLc^=yCh7_wzLN2JWGo=tIkwErae< z@b>m?+x4qgucin0P1G4O_~4-#G---e-w7X8Nk;bEJ&%05FQgmaGI{?2_I&1%q8;|e;{PvH`Shl+ z=4?D`6lA(_gcmiE;ID?Kpuk{mTXO7eFxmMcDhaA9{^r z=VK&oxf=V>*I>`sC^~k`x(~M0u$vAaK1S=-@1{Yc%E%??7KvaNdhy)450A+oLwx}*$0^8rmp5dByer>_~)&k#tsPTPIqti5JRwniWCR0@O1nPi&sYA!CBeCyY za)qq#5O@c2IUD0%3T0&9nm(#{h;N%ZcVKl>bKpDGlI{`)PVVcHEeYV0hs?_L3Un(d9i``7#g_TgAoJ{NdS0i7{qKTXB=7o=rp_o9@^kdaQChdI2>ZFd z68=fdH{*Tt95$Puw{6`@CGfjv??I}g#@-w3n{dMZALo{{i0zed>jgQv2i8_QFdNQO z%o%TC4%>sh1h;;EGp;{7haLJfYmarS-=?M=$Kqe@{RML77mz!#4`bj@r0D;QxV9H4 zWr`NI?zhmFDq!2%{g2jZd-YWN8_%A_OYxMZ&ncn?Jw72RUIj7sv3U00Nr(62-`Rcs zm`} z>+tR#p+kp`K>jGe|MX>nuqR|vlJ*bd$yuCbm^otw?CNV_<1fMYwwQ~YmVsp0Vqpig zUrs@RtFhl8n}!YTQ}$-c3GrHO_>kGOXV1I%?sOjZ9?qkU8_V#Wz&Pj**J;X>1(cOl zKzS>U(cti9)PG<;1^4Q#t%>8pM@AYNF_%i#??bs8o`I|1^=B%v&J zZjkA)H`uK?zLjWpn(8^fgKzD4tf}wXaA4owv%7cgCiQ?N6cIHI`G1Y?K(Zn8451WV z7ReeFkw=>n;rj)NYayO(CI{G7uYL0oLAEx6(^tOvl60v{sE&h<`i3rme36R1*Qumv z`2o54d_oSe{d%-7MA>p+tJBlYUB|ILE`&d`GCzNf5jyFkiU-tRvyoc)X{klKNc#K> ze8*-78Ku=mn!Vrz1444_A|}#hCB1 z>D)OsPyK>++z9st^$VMgG5dRbk7eDfi#-VxtPbwa+VI%Xqgc1Q2!HtYvdIVJ*x?{` z>m5&N8Tj5Wc`h~Wd5G*fny7t0Hg1tn$C!I+=b<)j+V(ts>NLH8t#Z;l*p&nClg$4n z^^aUmJ_GlVYw&%l>wAmdJ@+B~^y6JRbNV#3Xx^e%P5)u8E=8Bd_LyA$>=fDb_<|ID zpO9jx2q~0S=(5>$;L4G=ewY-sOZ-%WoZ`Zb+`n`A0(8_`}RKL$XvKvrA zHvL|bL-%)S_tw>zZ$E~;qi1l9|37nwgoT8>oin>=)Z{g15_HSY9NxRWXwkxjA%Eom zHA?Yc`TzGU85%x7X6u3flPM<)8Q2&9!b%;CGIcl!``0dhE=c3yxTp0Sk*1k8AuT;_ zdIA?5KW$usDr9Qh#Ds{1xcE%n`2_3=sryq>UQb6odc z87Xn&Cnuz-#wAQlO779*(aEz-R7vqYnnVYL`G%$RNk~i@IBR->W>$FQ_*s+32gNt( z)l=0yqbnkqnvfQ!%9uJOIkjs>k0wIAU2)EC`!rDrUeYG_XkyLOh_IomKGUWrr~*24 zY(L)D&rj94a|gdp0i8ShwNv@~`uY3#;=j)A{W^6G=-k!6i>mr)g4CwRPv{!aw|{k7 zxa!d)F)b~ntB+55dU}WSjvb~=pXlQk6cohb@b_;IAMH~!lhfid+9#(rt%;#;LhAVG zNhxVb(~?yz#<+3QW~B9Kf}C25Ff}DCtTy80)ar^tmHA}ErTF-D@b#HGm6c2IothSr z@M|{y(06KNW=eujL_+Gc8Pmt3Jtj1*35>e?>x61N#*eS{moj7e6rr5)<9!mQBuq_6 zPD@3m{Dd4K=UsjZHdQ4wMc1S^av&7jH(*>~d{BHq`*8vO ze(gKO`T4dF^6l8EeL`HEum3pTE}bU$`!=Z#9REh0)f7E2pd*Z|0sR8{_eH_|`~rLX z_X`T@-MMq0PQIN31Nt`cL2ly5cTG!5o03r7NrR`PRi8~sVjZRHl(^)HsFC*Z2@~RG zOi63fbLjM>8E@@$yq=>z z8Rx^*^_&^fH#jom+QZXgt=HwllvOcB6I1#9-QH3^kR5-Mmzw~jlnUM>3W>gxEx z-M?vf@>9W8SzES-9{u0MIiIghXREe_bFi?cs@Si0-;g3`l>UDk9MZ98V~H`m-- zg~dNq4R;#nzw@saez5a-ra{d$>V zmOQlC-0Fg5Y4)SNCoie0ylt*6u5fdAcTcIj933NG9*YT#j_Z?p;q6o3B@gh@e$zQQVQOd3E(fdDj!U_0bl7)xf1N>>qV~NrK)b2Qhpvxb z{rtMo#)}spSzgR>_I}pq;%9zkWo1L7q7oXaP>wQ(5w}mZ2%oU{dUBUe0Rbbs^*KBw zC1Bdb#U<|P^K@6L0)lTZw>ZU?f82K77fGKjS-w*Jd{zDO)Zp~f$!qGr+iQ!+e#gt= zG~0%bo%Ea4{qlF(^lacDQAp$&-#&PDYwEm>8+#}YJzX8y+0V;a}toQP%6Ecl3+wghPiShTHX26p2=S+G3ddl*+@Om#0|nk6v*8?Dq3#&yCJGJ*1!A zg|N!ol2GUD^Y8P)hi`1#R;PYmJ;|ZNyO*7dnjE^+(597V->$89o*d`0OLtS=Jr5d- zkmRmS0l&5FC=FYXq$XXWqke6`4f z0t=PZnTfTIN_TsYfW52x19I98WotSm|!PVnKrabLE zYUtZX-g8>j{z$)GuSR&EG|xPAv}3oA+qExiIPdctUw`&XW{(Y>^WWP2aKGz>jF_tz zP9H8UEnPkL$xL&4x7q6lJb!iiVfh@}(vPy2*BRqmxA%#VuU4o$t`9%g`%=Iex7G8< z56GLIUXL95g{hmrb31OurQmP7bv-s;E1UeDfB1&(nZZ-G)~|;~f4NZGcIbp8ckaFY zOAo!gH|+KL55}JSDSAzDZ?{sPZFXm#&q{uLmHM7Ppg2FMYq?z9@$qNz<`>&_Hc##^ zSrRhR#>S>7BsqOT#L8}M{rvpepI^Uf-HH`!*R5T(7XRbu4;zK&rXRnx_I&y^MeL;+ z@6>g<8c?@>>-wL!cszN-5jt#xzZTLf^Py@ndIP3MN@sZ7?@`e7HL2MCY0Fg8hHtD2W7M2R&i{QTG9yMn0l0 zk?q3+4x=9>%6xBDYw3vn(Guzssu_9a_FPpcpX<1|b!80 zYu-;-xMhA@P#6qINJ&|{xamq3avq8Pv)MX~TY4k?ydwnHKD_l==QQ83IEZWR2c)$| z!th!u#*g#@jNl$6%VKc{9~7||9Eb1^%3{u&xRbc%lji1c4<9}hp4lHeIcY9RqND43 znVV}Q+f=q27${#e)mUi8Ut&oU#PtB=M)f)lWE!AKxb&Hz<vnE!fyQj}l4dlvy z{b@}38(hV$b^B4A$20a922l9|T=7v4}RC@3#eZOhP^>}++W0^{Z7`J2Jqx3gH`?|3>c;kx zP@G&2NDKcW3xM?hOH0($I&5B$;)rxj^peaL7g7;YD5(51DEt2X>DuZl-RJ&6iNXGU zQ7kewKR+Mpe#HF3Kd|Q`NZ-M8Q%~j4zRiHH{EoZd930ea7MQ4uqmqE=f|)i*8Zd_8 zKrNa%O?(W9KtCq6T63P-mH21$`Ex6J8n=;2Ey|N;^S{i6Qwr2V>NZxMFt?1n(r7EK z+TQF~ee-5{^W#416xS{RhQwpvzs-W^TsHxOR5jeyz&p1+Tx%Zte5XjSJ zc}`)phBTnbuYuRWnVSMF{%Fqrkp^JReTvc!PKD#plckMd)m9qa? z_ij<&0iR}2pfEUgtD(W|K=!(FFS-zz1%W6ja%0^_V z`giB%ltpYT?JFIDcnVnHrGK^Vzh8hVz>KaX*8+66px6Vo&W(jhYJkS4i@xh;l-X#- z_}<i!N)lJmpqjCoXW#U+G7%(9rzZ zJvM^c2yJcg2pN7c{5Cw9-&00Dpp;ym$|{Z4jC0??{tV#{lX>c4gvy3}`7j?6qia?@U@5C}Ey_io(ymGHIhD?V1Q=c9_sOzO**GzjEMmL@go zaVr6zp!Z`+5oFedAx?|4OD7AB_Cg?u4VOm5|7CBzv%Qc;X^f{90%FeWAGG0#8|r>z zAwzJQaT4MCBxj^tDh%*)YbT3Y_7X-^Lq6oX4c0D-J%0Ex=_$u2eZ3>+}DZvA|J zTkcJT_3aRU{~K05KJ=6qo%{rfj!ugdF4D$vHN6f7-kWD!ns;4}CfevlTF9AKhd%DC zXQwwR8x?UF5p^Z_}*@)v9uz1+bVP zU94f2R=?d7Enm=g12{2Yn$Ys7+se|-m5SX1ZY}dSHXq%JOHX$~$v6co&hgFA(IsUV z=Ut_mn3!m=gfVQZ1(S#;MH3TT_eaJzy}Z3uzF9q`hi+!rwxEo^4r`{jlD zd2rFI&)Mi<&+m5p|FO@jAwlU(%r~6EK@7U)nE;CeEk2N!mKbhi&25Br#xp}!RyJ&n zoh^A|qI4wYQ^aYKh=jQK=fRQK`g-{)|S1LW#iFkj7bO3%8Z4B8zb8Zockx?&BRTh{H#gk z9d=u`jypxdFsq}DscMH?^Ypd+CT30`!OMbwHUSN)fIT}P5KiLxTf-m)yc@24>AjnZ zj=^B4@rDxN-_fV@6S^y6l0mL6u6|vmEIhk|Nde>HUuy7S_xaj7wg^@oVyu|96Kjo( z$SNAZ=x14HP^nQ~%!W=pzVhB8c~K|4U~+0g>#nEx$bR1;lEpohu9j&CW%$BgB8U6~ zAe$q?0i+4q^DOP#)%GS97Kj%wUfA9?IVk!wv$0bIgYwJJKxOC_0cdVi zOpEc1gJN!=$l_t|c%Pix{leyxgh&5AMT8w}&z$Q`;K2oX8V~^ZHdC}P8*w~^MyY0b5;-A`xlLOH!A|lv#b1eC*am)>&`@Z$*Q*BZp zc#I|Z9{61xpw+=6Dn|D2jSqL`Tih5nzkdYNZ_Y6Yb0F*GmHw{Ht{CAzV2}ckA39+? zD{-Tbt@ml{T&{q{L+NbGqW@(=b&gcv=4FB_?<3}_BO_5Z_VjIGhxnn2EA&X3d$E9L z`g)^sv${o`x?pIi&r`pG!eK8HEX};s{yv@G*^&QryYIi<`IexnxyDC3!hOjW)!trS z6}>diM7XB~Uz0hAc=!VY0nOF3OCx6PPJW}allObLC{3TzJFcKd>G!OKYbS)8sibuP zDTdKQfLtr;R5Zq~q_{YfEi2P#UDJScUvj+4ivph>PVLOr1_*#-Qpy?lPAUpNRSoR0 z&utYB;2%(zzxn(l`ycnZnY)j738gQom5lvYS}@ooS~j@f*B&SJ{u@43Q0#GN(oM_= z4|Wau`F9UUK6zz){Oi)!uQz`FWR)8f7t=r7niEzLR)VFcrxS(psKIHiLOrgon z{ZDOQ6eIV4F+^jF2rD>fo0ws~x`8iidSH|v2ZkLe?M#1)=&IsT{h?{`ko+y~Mt)a;@0H=^-8c5(WXoa=S zY45&KL0l4-5|Ov$Ep5x_8^$ zTt^`+YeAAq@Tr(I91jMHi`CKgvdb$eeS7oVReX{N0#Ou;-5rJdo}Pup^_izcQ!0!C zz!ErPgXB@bY%$fyb$#A^ZJhY**~n)p5pHvPQ~zJ7j$LmM+{)6hXJ4_bs)376`WSiS zD9;9l)L`I>1A*%Jt-~*l4)I_Z>6@`t$E?)UAGDVIWs#!g-lE+#4&Y`dE1j!{`s-pq zx6IAlKEyeo5zu7@K@CYpq(dI_aXv0ZbI5Hsz4>}y#RitKg3MH^3m(aKiDR>j?CQ3lo$w59R> z;o$QL)kj`;A8&q6Yw-5=R+#qf=$*#3_4)!}dFA*8V;P;o!nbLqQWS6><*SY)QAhnU zVGFbkjvk0(!egPTFLGi9MV9~G0-AO=D+?yx#1S}&muHTKDk`+jVTf0%f!ztWqbY#I z+UyR<MESb zr3rjvQ~)h0aY=t~2Ni9z0n1^roS;i(khlp>LlM|fuA;nr=VI4HO~l-X=)0e0&$jdJ zRI{gEU2XWXcGy^Vj?IW>kHC`5h&EvEbt8;4Mk!Vy`woU&Nd+3p;FWQLjO2dkrJ@8) z+RE744U}Mx?!Cym4-W`*QSTv}Ua^VuQKI1ZsIT^IZ|He6oG!?W0=<;#H3wdcS(6!;=!rtsxv!(|L=YxTew|~c9CQ9 z7}H7<1eGgE6q->)6*xwJg>+5;_x^_6d!%(_o~8frQKKOm4FvUy)F`OK@al#vR#PX7 z(cc~)m21U7g9^<3C8Pz)r`VzCTIqn*E9(=b##pTm>xHXTF*zN?dl<)J zPdPtqqw}p;h-S_}lkdXgh38*#r(~3ai#CXOhTNB&DX+)+u-($-c$A-T%^_t$b!i(S z)bNec5yCxjfb+h#(EX(jv&kkuD4UC;G=>7i;lyz*X+P?k8xGjsG2v;i-5HgSI)mcS z5kAY?DveH`NoTJ+wRzcb85QZPZ|w3slOk>4qnx448@QAAWk!iOraj@$>AN2)9lGXx zKlNa+w2=tfMbckJNU*A1Aj4;TxDO03;{meGcZ+{}n+YO4NJQiRtm$gVc^q;*=Il7R z7MzUcdTb##i|W~Q@*{7HYF=^6-ZH$zV3x>UYy*dYAmC$VN9<_tZ*BsY?Y^P12~&I&2_)%0F(IvpEvcg7)pWIk16MiFfWD9%KJmmA!_`y? z=ebchUJE2S{!#x7Lm5+e$RtBG_usBlH{G&d1Y~>_3<$!KEQmM>w6v<@!1!Bf&jW6I zAx2i#*Tri0!3+xOtb2&?M`aLKJJ=#t?}-x8x%k7umCd=v6rb6q-Dieeif8XPNO*?3 zcV8M$*WRz=;gKZ8j-EjA%HW_|{tbjrwP~f&|7i;U)$SzvSKa0)coPTwvtCR+K1xvm zUi0K;H!6z4v_FAimP35%uA7~XUGaxvq7tk7piyndmsk`3JZb6Cys9X4HvY{ElY}sw zUCr>n7cV(&E++4i$Kv_OD17k8JACCpo~^PRnJw= z){vlPb3OFcozgbr5)r}!q;JM{C$8H%<@DGkQoNa21O`(;ksj+?gPz~a4?A{|b{Xgi zUvN4pX{L{QV9K=+z-WS^rw`ou_E7ZtzR=5;xwW#FnqQPpRok_AtsQs|4o^;QYbiwy z5yWl;S9t08@G|(j*J3<@JpF?H0ECY~pDya2 zNnVA}&4jnfhC@@8#WQL`j>gce?ytL!z-!+}k&`^TxYeQBC!d5-%*=~ya(U)%496vr( z4=2e#=)j9-bLKs4vfA!&Chno9L)q0}k^nS!|D`h68+mEumI;wi^(p^O110bOLwxfL zAg|ZjdKiB?6b@hw5k!)YmX?_7PWHBx!Zwd~l@fX7f`SV)+W1vwzAPB$iem4P1UN3- z6Wd=5M=NK(3T}U8knk=-%l^Fm-$fXCwa%rrUOMQ@axD-6scEaZCb=o6)&tetUdG)F z;DArV>yJcrHNG?xpnH@iv27@*^EvsoZqOc9B6=<5XtB0SL;0(|$`ve`znO9AXAS~k zA}J;orDyE`7Pyv_{#Y){_lJqZ`Xz{N5qCEYRp@q%zTzWZH9zEJ_1$*wEq2f6+jH+v zwfPPe=lE+?rz!V4SZUd{4epCs`*}ThsOx<>%HvRr{VRfQkw{V>0)cql znj|U_G4y;I2(BsLij$?kBlgoDolomldwT_f;=x=Z>rwb61MC`)x7YpRhe>o+&9DC# z$^s|+NIdMgP>hsn_9n9eZ-OMBs=x(>gxTrJQQ;Ha&n`P?mOrrY_xDd@f%jhaEWxF6 zAmOxtu}(}e0y42YYoXmU9C6YwOdc4N($djUpX0s3>fSTi6~&$BwxfBWM8 zXhjRMgIq6t)|UrBp>fKtB5*Kl>>hWFIdkF?0;!$CtwKY|psN?hrSBZRf7t&WDX$>U zEenKR+UB#M<$TFm`I!2DbdN3oe2OS8DQ4QllmUTM&>Hfm6;5)nG91AxyZ7=*MyYKd zm8U@+!K&}Adb-ILmN6uelN1Nf}(uAWoTwI*W@QRCjthtFidF6m+`1IHI zEW^eu55=Q)AbrkDm$iMcnv-C3D81FZe6Mi6n;v=81=o>%Gv#D41s3jC&ocpfdl}g5 zDZP$-uVSK*qx6ra>E7g()D}8}`}lG~8b<@#siYJ29qdXV!janf@mM0Q>P*M-Zs%B0 z9}-~{@!=$cz0qgpkD0ShL>4`Yr1#dD=*dCy{LQ%$lCAe{yYPSKsq=_Xps22pM38@H zehst5nTjE9Nmig__corru?=_rxjt~#sSN?bd|BVovn0BoC1EkmjFuI++ZgFUMrjn0 z*bxzS*co7~*%O8&>~^d*e5farv@ED z>-^^DuD$Ms?fp(qVLd;j*jsp&auu71I+K1153RM-NBXaFUypq~rULjeZf#Ndx8xGp zAf0c)p(&zIf%%?&$vn|XT#ES@dl{A^0w{{Fg*!+&&wyO`;kgz7QFEk;Bf$!WJS~ z3IRP$kxl19Gl@Xdjj5n%OMsy=NGK0=guyRIS7qrua!H94xfzsm5vSpqSsGFS$h~u| zWQMf;K={@`{q8WX`HG)C4)X|z`$2nyfj6zNU@d)4vOW0L3KnOFVx}5cq|0?F^w(7~ zGBuU??)Udg_>bMUOEly6@oBr3@1UmdKr-4|qrWYPOgALpRA8xUT$AH`9P>Nth_j&& z)s3w~$qUQn6*0&jz|Bj`FQU|$kcf&z2rc{yx(Np}N`2ekznQLW@d6zB5W+nq5}GGz zy+Qn=MJsHa7dqGEzZ~jZ#9zTr%4*q*RXB6C#7llphJe5OifO)i$VejQ;HI+MpgR>d zj5+Qy*dj|T~L&^!g zu}FFZi#15m;!b0b-M%niC^$hX%~zz|xZI0mA!wr$O%5t~ZPQGX<98+zP|!Sbg}@4Tkv zZ@r54#w747HF=B6o78YrD-yIxTFI4Wx2nr}OmXkVD>BoZZc@YW@4 zN2<%TYJML+<(G>8KXknK0)sla6qjTack8y{w5TAjye1OGsmv^FWj(%TivCjw8R%iB zLya=j#MWN*BznEV$ls=NwWD^m1W6!{EC&G4G9L9%mi*8qf90A;O(l_F%}xMFM=n=Z z*lm{dsY4Q#dIghV-G@66MC`%gxcgn*9M5}QeO2kxX(!trj2B_TcUc>60OM_1 z;VItSD8SXnoscTF?m>UFmOqu)TYHlm2cuayZDurb*bsSxCxITp-TLC|kG50Nw~2xZ zyS9yG*gFQEJ3aY}?^SD_L4q;4Y3OLm41;!ja$<~LrRUp!AellJ9-S1<=%zhS@B9Y$ z)=mw>NMT0{UgX)y_$(Fk8Rlt3bfk7f-?($fz=Q`VP~_9AK04tQ?fxDaBVHcQG#<=*_TKS9L5WY`O*Yx_Bv}ZaWp;j z)VqN8ZcL?DoRNsUDN~FHX>PZ1=87I|Qx<=1_EY0-6mMUpEMI$uqOX)j4wTO*z>uF&;oi~Xe1}<6RevU-B4J=)=T`f@Rf(*uqVF>*x5J~Z{ZhMw zTsJUreALYl^F zI=EU8=Jj#(AZ~WRd5UuXB>xDD2RYcwUN~x(Gu#PN`esA zJze62MudnuI(gD^bM#3XZ)ef`GG!q7fxf^NxLJhit)VEej0$7UQF^FM=9<_H&i#YF zK&JAFlRg9AK^Mjb~@Q$nd) zB{b)xaVW1x4WcK}+D!dfSh8*W_Zv)}sEXTvd&U?R!VU}b<{H~N(I00P1833lpD+&u zYUaOBe;?`~J_1^))>HaTl)IHbg1{S#SXw&m~NJ-)6=F$S0zV7oMf;oYOn; z8(I`A4RKundFg03Kv48asVF_S1wCtYJh?o+fBRllg@|F}rMKXX(*#9&{$7x7bBd=q zQ;{E+`wn}szrfqFZ&pY}?lm^r@eJN4G-Ro1$ zYT*B}*oyv&T;ev+OS}8>hnj7?U}KB>P}8pFE0wSVIsyGezc;0&98g3Y9g9382309G zD&&IUkt0@(xm_8Ejn%kV*9mr>slzdRjI9hsK7NTp-0H9IaPG2A{e4O8J>jM_#`$A` zzDL4a*I47%NA`Pn-Oj#%K)tNtrq>o#=hXa)d2$6!>8T9xqTKK&EY4168uUpvThhW( z3SbOHq&mlNLtA9t8ebEdDrqlr$luKnq+z159|VWKQui z&4MPPM5}>DuYKad<$-8Aiip;lkS5Dwo#TW)N6?4czs)hVvSNEAj^I;CZ()<(#?ZoK zS`f`;Y`VV{6ZUex-rk+AU9MUEt04Tt?&Fe1pg_%*R{+FK07AsPwKKWvaE*(Ti{j_{ zFQ)&xkf`&rlHbPMm?dbnAizehB3orN_kOM*T7qX29fosM0`x9a~P4DPWp!M zNnDcwmViOJ<@*eLjr~u7oH#ZP=$$jjCkNN~g>2QCbFckt&M|l&KL$z)?Xf^|etfdg zj13$#-^)*tfi&>aG|Gw`tyF}Fm~;X21>mq?#Lu5UJ8BlY9LLwkMq3{7iT=>nNEwR4 zWOtzNOligR?HTYFsNaSCo~rh}`!W1@L8;2&u&lIbxx#iFUPydrNqaHxO#8pDYvm39 znVxTyo{_%qM5PQTzXaK*v=eHAJB8l6Eoema3KdbNYpkDnr6D*!G5i((-{6?c4K{CR zl!qlQ=<-*`e^ecpF?M!5UZ*FXHm5(cYdqKJe-tA5G5)k7@Az8vS&Ls7+GrFM^uf=X z8kx6IBvLspCEvFkaK4JhJjyLIg6cB-Iv)!+eSLVlLxZM*f2@0Gs&Y<^+`$1BNflU2 zBB0^)YP^1RQ_jexbs1-DcbS36=aID;>Z6=8FuOX%L!d=19RoOiILkB~Is=C>San?E zdtATYmLvafu3`amRfw+IJ(m3yDwW~NyHq^Q+5*>Q@H2@Bpjli_u&{?pgy!Q=^QO0BB zP7B-L&%<`!5inKL9IPxNebT(~aQM15%EGkc-6i^R6k>a21$Xksl4jf`UFSmag%f-< zVi&ylgMEZ2@V#Rq@l8_hxp;Q_`FOUcMtgf(_0d)+|KvR zn(NljJZk=?DqOl2t{j(VXz{6YY3Z5kNZVfWFF9AluZed<((cmtW6^BZ_!loBjaqz8ytuGaIq zzOI6J31VL&SD)l^VOd#1Bx_3ej~79-If0a0myHsrkmFkM$~7Ke|2xdnyq~`R4ooIG z7&vgwUce{}%w3j|%wFc{PO@VO``Y`z6Qxq|+t1BQyTMd^u@g!a_sYKdTA=bP(W1Vj ze`79xSI-G`4>G~lQp&gA<|21R?`FO8H4ws~>gZkvvX?Cags+s22S0(qFF`8qHnJJz zD>K@B6v=RaW3dsyk6$E`T~!)tUUU#6pU;pE!91;Xc@Ey;T^v0&6Cmv_D^7Y#s)QTU zgfSg}!l^FPPsrMB?+i>{rZ_NKyZc-~pjyg^f zWckdA3L1>(x3?w~b!A(dC^%Mwp`;MF4bv=}XI=&7S%>brkso8nl$MhtnD|2oYKiX_5kVH6YrTd-5=E5^o`=b4G-IS z&x6|2^MhBtB&q}5|C6TKkbxa~IK8;9>E`43=#Ga}eop*?K1XE(JHstb9V5L-TwDdu z*|^0Co;gL9@Jm44jV$7N#Aw2@?p+6K7}sQV--bs`__cTL6cq@&@2^l=y z7N*ov4PIJW(g9fRoCdE1$OsF=dW~PfGbCRkV)gX6Imv2UG^m^#QV4c66r(g^98~%Z zNU>Yh_{>8`?p8~MVY`|eQfj=t(tfiAe!dTk2MLjo&WzF|^4zpY|9_R_lRvwbkt-X; zM%PtemU=%L4yMH0kG;J_pq%T-r-0$_H%pyn9E%W9?ot3`Kr4_Ul&cBgynlNHRfJ#6 zl-7h!h$#nc+5nK9BMmGyyEM;*dS&Z@Dpm(z=R{yLwd*}<@(^6O`q2*K4Y%(v(q^7$ zu@b}%ai-E5Pe2eqV@JD~;DfwfPRk@k)4t1bmf+5c*M`i{C-WBv(-kf?9Nj}Z`akE5 z(NFRW!|sY)xtOKBHdi|&YNwyVS!* zQfYd$@Hp75XJBOE?#HtOIfc?jSzMo3d^0e93o&Y3@b-AJ!SciZD1aA1lX;oSf)y5R z0lX!=cicJ}Ng~AlWxLYqJdoKxqoQ&f0SQmD1UB%eXbVaIyqo}nY(DVD6|mK;pi2RAa7*uBd1)6Vnn7gF0oy4bxMQk{0Ti3T`gEyVEI`XA9fc%I$n zDLssZG{!?P_udLG+!8`|r8TWM za|S|%@=N3LS_&#JDz=kcs?UA;K2%CMYeGIY)LpA&6OoL0IV)HHWb6NtmwrxK+DoWM z-fhSoc04T@#(^(2e)(XxdX-{){6=={n(kg&5>Kfr2f2O+zv1HM=w=i_`>mU>h9CV1 zBlo;iXth>-gL@nCFBF``0Ku=U+(RinRvY@bXV&EY^`1@hUP$m!2kf{zW~3vZs?zI3 z^d_2ozl7Of`r*5FT4~I_H)Bbj*;SeMUloC%fiRWne~&-R!HoH`%ofu(0mjzKSfl53 zFC$F%G09Cb-NbZ#p-Z}N%lF{Sx**6tKOqzm#@A{t&{?U9GI`H8;ldtlg8qCiec?C4 z=Xf>RC&-tot1<<-_dN*;TC$Q(md$*3% z!mguJeOhQ*6ew#guvD8+d6%>s?D%`qn>{|F=rQEZz~ zm~@sAI8waF|G(y_!lT@A&&@TRqM3R3XqE7%eOvxTUR_EW${;QwL0x}9 zC;R!n5L#ak&1NEPMm>(ku|g<}m&cys_j=X@ADavRdM`s@pmKWf@xdz<=||foqbVPS{kiB{E2L6|S*h|r& z@9T>)3|{8SBnv@C8;wrtA^Uy~Cf5l7=WQ@yK#6~Bi!ZOQMZP3Z=5!2+Opp;IU3(q1 zwAEq)UMtdZ|q#>&XIehqh;D5^FFmzShxfSi{z)#>A#baSFFqTYB2y$@44{#A8Q>Siq3ET2 zrFFv~M`M}kM>(M^(z}j33 zV3A0~t)#gz-NiaXULVSmk*ZW#%*4U=j&Jl`8p}DCqdWl-;CKvOaw_OXk%eVwkb8up z;9jFZZw=-i>*{dys|Y09D&&ljVRyRS?)II!hQuT%m)-UMpKFZkYDvDD{o=EP3-JY({+Sr~;oR2;wd zp3(dlGDR^_AZK`8~-bcv|*%}jJ*6Ca8+{!!zU}VAo~Fff5e}0 zkM>Vai=DsY>9{&CvtBzQYUxpr+CO5K#;o9UwCHKNQ9uZO#42(iIl4CijT4vN`zI`T zxl@nbFs|q3b7BlN^U=MhZ{yX1aOYjlzct$P#xbGG)bn)tMFVf9?G=8aYp z?lv{zYH;dOYN3wfwoA5F4~ZYxc)Pg1E5Q%hn}JyL~r;;zu*o$J%d^RY2pmp#ZHo* zvY2r&`M4L?G`y&^nE9l`dSlOEjQr6E#B2_+x9$HdgyylBMNxhINHq>f&aAFDRuxPz z-O<=OuZLxUI9Hh#JW17^bd#WP>8OQB8akbg#}b zog|e_HTH<-t@V3)(;ow1k?Puk$~}NAnQ;0^nWnwE!NRhpoKmq9 z%eNnD$5}?r;o3_y@{&M}c+tbRwwD)e;SV3~*M#o7B~`cmNtt`(wQx}PU9i8@pC7VB zGa5@`A1P=84Z2`~S}BNEEDzq-U4JER#3e<{0=5_2Ry4447QS`%E9+VH#m>M$+5Wi|nVRhYu(l6j1>=QA-x>4q z>c;A8)ELqrY7YB)^>-?4soO6mq>jBy92ueCvo0fTtbRqcDtCslMiw=aeIr@-CMpv=bNZ0Q=g0DLAMTsaaz|`1H|2(=js@NbMCktZmlQ4U zRL5emII~w;pz*1xj;B8d7mwHSfAXk$GZJy7;!e*E4QOuZ^f(@HUw5OW`WgPjA~<2s z?+j;3bVSqQw_3jBeu|20I~geQ)Ub%M{o=LsfY68pLh^k{?{rk@$a?9bn z0wGWkK?|ycgN|#~H$1WZ4O7}49-u&&Ry<$$j%M-6pUwA-(5vB( zYvh)X|6CWob-gdMRU`{<O7HAc1nwz!9~5`SA07Htb&tU6*hkc!_%c+UMe_y;=655 z5{~LPh&OgYT^iF>I&6CG4l4IIk0D};EkjI5{A7dB2`|aBdiF3#QZa_ucKq5LYEGH?Xl=6C^#r-Aw<_XPvl6)$hh zMH0_``+oYlds8a+Zldt5Yu9pufkEv@h9VI6%p73f#2KY;NA>ZYt8RX;jc$P@mcJLR zjIXUH?{CI5ucbsr9n-Rr;a&(Ri{){jmNelhkKZ&8nXJP=e99_*bV^z)3ViAhR$`eY zS)+8<8O--JIZ=egy9etn@bO1C%W>(e6oGip5_+NGj-1x<9ly@#@6IjVgcQEsnfR^B ziemJFKj6-jVFn@zt}IXBl7KIt%(=o8kf!GP1%V^6sbsqJ#3-ig^{HqrehsxWt&Y+p zmgM&yiAN>MY>7$7p@VGpT+T!sklQG!oJ#*5HwS_oaV-%=ojsDvKouM7M{#dZ77mq_ z5}UDT_G_IsJb_dEne6QBI-&ZPqd^W+G#4V$V?3#t>%P(lJ)J1p@L(U7NusptBdo*UE6X@QBYE?WYh|?dzB; zf2ju=$+fZc=jt00V_vUzHw0obYDX=W>04W8q0w>B+aXd;q^AJh{rq1@QrjIy zqY#ltNd&JXXy@;J40tZqW*}HH8k7P8UP3|X&DyTuYxK1|Q==E;k0kDy5cGRnTc%#; zv2!lI4~)LHFDnvN$5?#0|9{<)H;61tYwl5Kn5U@E0?mxPGn;uj-M5`Jh$xbdbM}(vT>#eu4RTd3Q zrQ_ZA+yABou-(1h1qNH%F^*b0CCHVPr#`nQ08}jFdDThYFYbO&TJT8eb;c^DXGV^+-F|ULg?y`>7sZ!PO z?g4D4ogp&vh+naPlO!%sv<$RSB*U6(KJ682Z_Jly@87>4d=7#*n3xDzX1FjU;$rWBlxmBs-|J!Cf|+;nSxbYDkm*RO$C(oja8fvrCDsdrM}){=dw4m2k|?swrFm8#8RY z!~R3Jx}@8I zG}0*@ihzK0$3{zoAWDvqPH7|tC<20XNr%!Uo!#tF6tu2KRg94f%av;JLZycm`yP}MxH zj07NXlIomUE~L=tzKV*7VEVIlLJEoA!=*1alhH&e13wEse-;j1jMW&k9o;D+U9lp< z8|rw6@o2p445a+d$!-~3R^e=5Z{O!3H77I>g1(T_O3;D1G9E<775!KB1#e*PwxWWY zfQPyqzM>641fPH)p2IR|Lu+(6TcTFS%8i(WDM8#uh(iKN>R$FK@Hr)%?Ey2P>LX8< zCs0jdz~5tnO90;M_b;D>bsg0Tx!#E&R=&&+J8^-;DTRTHaa8e@QUV%3#GAG^*}%Axw*NAuin38FD)67Hw$^; zcknUmz5)`7&_|%(4gC4ke39e@`k$HrI*r~w>ey!}??fVep`EM5B1~e(K)~fg{VeNk@0wJ7C@IVqv!6IRD z?T}$@QRG&+1&)RRCSc+GpW^vipGAh_S`Dat8NCwSY6CU@)O1~*6oNwjy0?9Oq>2Dm zAd#z=@i^c{`QStzSeiC;41x7T{p}R-HUGS;P3969St2Gc$Y2N8-DlO^;n1gJoi^`@ z2tDgGPBr0WsR;Ic+VDo>g!7MJiD9%5vkH*}|M1>#BF^?-8aAjslyy$=V({YEP{Qjz zAvp1^uMPR~s`0govh97l50sgDG@i$& z)XZik1iBL-J14{f?0NK#^#zv`w!HuwJdt?`8@=ld^4CkVPY=(v0?;`ea?^gc?A-^X|=;BPhKB? zwNE~|0jX2~-aH--on5>OzB;dc6SEL@N^hk?ndr+`T(iaF|M%_pwF8Nj%^Fb7=5gd3 zTb0w&&V6_LRIIGv8zE@=_ct$2ovMW3MULx5gUCt#4mR~ArQb}t6hK#B5M92D3ii=# zy!#Mu(^KEU6Gl9+B<;=oLC66h^AmoDd10BbBa1FMF=z^aaz#+g7-xIYfAF0A0C^-7 z+DU4m1Xr|!R-yukW;n~9k*)3-FK!JBahJzJV(ZnYeO10*Ec!nql>QX*MVUF(oWtG) zJ^Z}E=4|`1`_-7Oq`OVGTUKEqRb#`c6UK7NV1XBm!w+5P)n}T@)UN>09>p0u#s9?b5K_h%KSAQ}fbIfP-llx=-R{#VgSfnOj}41D zOz4p^kFk=s9Txt$+xwD2Mxp~y*{iFk|H|nUltus6b75Bqk`nPbJ~5FP)*aPD{dz8X zRpilK@WWY+6-jwcVRrK2g)V}CmTp$=i(k*T$&wSVN=^%0vyY6U-TDr7V~L25I1A08 zBN6zF(j#A?RL8P?f7dYrj0pCYY6qh#6Ph0p8QCG?^L9B~{M=I=@9u)}UntyhDd zTq&Tog7{LqRBFQi{NXs{LEG_3erzh!hcMIchKEb`-v2I`X~oSz(pX|gmq$ArA<|G} zU^A$0cQQKr5b9rKyh%&!E0txThc9#isxu`uuea(&!1@HJc_(K67Ub3-;KOi9N;LWy zH$?7TQ{*%2-ji^FaGGFK8li#;R|D$j#3TJ?w@8nT?|o;qndte3CRtuQYDRH$M`I|HOj%d8`R${e8mSQ@BA3<8 zNkWjZiQImnFqD*7%{|+_+};jIK|z)1>f}07A?mkt(?|9suWUkE1hRgMA3!!*;f(wbhLTYC@|0uQqp_@*T}UU&1P9Fk`?@L)qvKk2dV3w9YicN4Rn%wT z>;CV-$R+d)pDv$6`x_pPWWKjwx&42a6|WKkgCM3Dcxb@E^4T^GkAAjej9WEd9&Rcz z$~!Q-hlmhVpya=`w>$ajbwpR2VD}Y>>25Ei&hOGKR!40tkrI6r-@Ou>$`(LQ-OLYc zQ83};mow@4PxYF7d52uN_)!DmQkn3DcG}wF6qK2ev+Hk2%oNP>TXTKH zh^6>6i-t!KSrDB2e=5AXAp{eo4r}U0}=3SEI}iv6&40?|@-H$|`ed+Xw*CmN@(2 z8Q()s!&*+`-e_l3!lo5gk0LBnqN24DK;W_f8d%n}y|)ll-an;6AHUoM?%f^xQ;cX} zn#cb8L;euoShf$VdF}+9l1Ssds?@)1%xR0T2sBQ**FI6f1~q^ ze}knYP)X%T)u#a1+fRkv$q`;&ByEFof1i9Wn8{c==t5;Wk47hGyzFh;Tm6dfV0bU2 z{!wL85b=muw+|LduIu>yOyLaRl5n&tWvsj7opqg-b?GM@Z8#uA;^x)#vHZEI4MK0D9 zJPE@+(gMNP zm=mpL_)ZGnm5hQ;1@_N?ngdqgDZTt?n|~K4R_;KTkP$%2!hTldO+mpCxgA1sE1j!HzzB((>fmYwXunaU}Z~Y0P2l|{h$Bd*>oD0NicHe&!`?SI)t^+l+rq7T1Jb zlDqn0lf3mbY30~#8~^Rwc20)T-!I8=`w8wg^8aBz0sSZKJ6&!XzsE0lj!!{KzK5?v z9@@5AtK#yb;E2R{fuD6fBg(#x7kkh3$!2V_k-&pf`v@SL5n^CeuM*qV5csQ{K(~U6 zI+xdr=XQ>}K-T$uLKOKV8ve<9-r(Z#!?NsAPUphY(mUOacM}v%`fbMeV;7wyVtJAD zp$de6zs@q76Th9KNG-?|toyOKwiVT}C1Kz+T>PJK^a{lGATvOG;1&8$s*(6&roXn_ z-{YraV{=fhu16Kp&Ux{Fzg*Gc-L$r=T&~=c$m8wM?gaOgNC=sOm~R&%NYD*BPagR& zWHf{}Dvv0=EGWtf^WJLU;;D~QIbvJsZ>uOPgHrKZi3X0Rz0TKq=1Dz7sb~2&$0c*i zG2Bc1=h93aMfhO^QVERp94xeYp4NI5xfm5+8yYyi{>}av{tZif0$6MEI3>>RvK8`z z8kjernIFbvWp)z`bJuyZ`a;h_9~9PhRC~O%;6?~gY|(ipycX}d53oACxj(X5S?-)* zpPJ}}(c#JM$(BLBPISQBnTgW3Xs)ux2Tu5)123Q9%*LnBDW2&_VoUoJcv_tCE3 zuCgOkf#+qF2Dwp!bV(26C0X7_R545RJ|Wi5FUQ}tvhb(IE0`GWm_=~G57m1baM3bY z2?r1Eok23DNP&Oa27Af4dK7+pD>p2S%EgIKch0x(Psqsf9V{>08uEb_Q`L=rr}{CM zu%qT9wr>}Y-6;^)!Hk8aiS3&ZwY|{&gv3~>spr}69`{|O?R$j}lAwcAcXNFMgM!vp z_E87Fgq3c;Q68`@kvR7!)~_LBMxW67cvUR9V;(0dxgVWS5P$VxMaAU|6YJCALgjcK zLPA2j2w+s*2p5QFovKL))}0(5vSq-j)0_X`E`gE2&?g+`wiCT|_k=rs30{`H+Is!N zW@dl>?v1qs_0?F~6OB?l&L5fGIQbzr+;83v%dihU95JU$+DMAnRkzoKZ`%USY!DwJ zkYfZ9sW$NE)2fvO*rn~<6>tD}b8A)b-H%o`vkG*!?An`8Kd(@p1>F1PsW4stntl?Q z1+LaeU5v33STT)}S?Tl?7sS-GLkhilw?oCpS+d7m|9nxz12b4o!(q`jh}(vb_mKEW zoDX??#~U;2s66LngRZQcV4ZAz4`a#Ay;>N zOr*n9%$+(S{7YyMZk73$_g|Pjs2wqYPj$Ii(UqOyL|bdYmbjlkejsrOsUcR4o9$bR zhnr;2xnmpBG38c!2yA-m&*pXs6)WWHH}xTOMtlv!bKMkXD)3h!PctRx7#xvWi5Oa; zHHaNkMtS2;v3ceI#@z1?Fa7?v+4|hj(564O^zNM%=hHiR8u-*>+($OKTtk+uToY@UiQ`4}n>_eKbg^%1)w6qmyWcD#&9iNi`S>lPX}j+7QwWg&-J0sZhZcBBJr%*vb6vCa zf3wM9kWs;q)L9lsXXmMVc|72UsAF_U7!tE)b4F1J8}Vx>0u;X2#b@!Ap+mAHd7lc6 zeUy333u+*#F?CnQX(vfrJhW?0F7FRPq||uCBQ8 ze}y(7Np2GDJV=%BgdzH3AWOEl5A_9})W@#G55J@%Q5p5qM+HFF3vk2+{++70xle-= z)^we(L!&OvQ!xl3lAAl^SHP+T$(;)}<^J2_p~`=e%JCTeSpPYNqHN7^N67C_)N51& zJm1C5mzYKRckKKitBrUMr3ruFdWEuyk#h!6uFsVxw*T2ahO*;qg3Q6}j{v@$UtusF z{Uv{(?D&b2Rq%+|v2Zp(C5i6aKzIF*oyb%RoLyEW$@;4MzncEH)e_h2Z#hN8HF~qK zW~t_EJ)@yqaQ4pTNlE=gJ)(9kr&tB!e~kV$GW+VQ!0M9%G5N9=8s|&!+-Hll>aSDTQC|c4yab) zN3T?UJc!R0aTQ`sh0EN^<}m9H_SpX`=geQtkW|3bKn68f=V&PwsYg+nZ2#_=AD{^D zg8~E`;iD=4Z(pQ!t7heC69c_MVnX*gLm4iB!?H@H-dHku^N%MNP4MsOSy{&Xln*h4 z60`*Sxw^2FjvR({;n>p87`{Lc`*6bRP;CJZYzZEH9w@oE0xgLbsGxpMbQ= zW^1eR7F*Y-O5s(>mzm0f!FML}tG-}T5q%fkfj?r*Hc$!OClgv7A>`0nY`psQosJfl8){NRT-hAg@yqGeZ%Z|;BktzA=Fuk*jh zfLOfqb4$>Fv*KI4Adi4R z93GY^8ANGK80zzxFy-gv{xXr@{b5T7Dps!p&<{?3|Gw8tkT2>e`0~ls+oSUfmp?Ja zHwMnc9bGQ8|GA(39WELnQb%3Hubl*OkBp%1lw(5R1ppXtyZb%eN-P}APQx|a3xKOt zA=(M-&^U@>$T*%aPn!~b)VB8gbs)Z9Qnb7#({LP%a^-}NTfY4m(97s(V5DQgR@g^e zDJ9|sEpT^h#j4{0u<#ISD&3X*g!Z&+bUbCN@G+6&9thOp2b=^VeMwF#9R*TWx4FYH zSj49KWQ$-~t!R{L#3*YPC!G}}4EYO!cv*yhC-j|IS-boQ7@k!)Blj>@ggh)5 z`W;ML#$ac@srvB1b$3VIo&M8Ee8q{HUZaDcojX75;v>3HBbS&z8eceJn?PtsV9blz z=H?PpM`Zc$-0?E?MCCwmw7-R*<(VzJu@`3cGTd4at03kN@56arXu%XO(cFIg6eXiM zKBHoq?}zs$OZ{}m3ruZbRG;7hOnK>&JKg6u!v5P2-G9|_;>R6v>2QmGGe2yr9$&rF zQ7|@cwq;4nGsY_(1|hW=bWXM1HA=;5)dE^t^Dli7=&F*<=ot@6UAE`>*b6q!DM%VZ zh~pwQrYyx%ODKi_uziH5+VKF2lUGWLitSRkS!7P+40vn6s6I0Mgv~BzychJS1%TIz zV7`Pk&r|-EMr|@KzFP9N2rwy`ORgn}4-1S3AY^;Tw*9!?qL7L(A&(+G0OeWk2tXi^ zcBs4NihW22bJ#mpYUIBcy69oqm|>SM_XU~T)Zul z&3yXm84}?o$HVCPPWlI)861{4d&&mtVR=P(EOzfe?qQ&bUJ?I$21FO6nfftbL8jfGK=NEOB zA(Zx5b#Lfm>7t?ddJ-!8XPQ62TwDc;U|b4M#{F2!4{q-w$d%>aZoK)ov#aBO=D!kp zfAuE$K_4QdwAgtRiANL)@;>21D~b)Il~Mn3!&dq)zx`l6CT=1FUdpDsV$Ny=gJ8f~^0^@37;GEiGve z9Q{rVIY9JaIp_f(R;qJqKPIG!hG0jE+;E`a6py}D`5jrgpQk-KE!FPc6lj*Cq5d<* zgX1R7`SLOSe}G?@m=w;0zJ4qO3n&4!nj73>7IEthvktl^TB)Ql{K;wFBn*pw*HU#WYs8~j%kM_Wnr5D)Y36clvUQ&G!SBo@ z14&mBGhs*BFtqD8U&mAK@w?BI#)9<9xi1U;TKH&W{|OMCn9#rM(*8j|APjwb;z!CN z*=x0b=fdO6ms)0OrA38YCx$k~Dc32oz6F2wuI70WS)EiWjM_~+q5iCahy#ev%y)&z zEP9{vBdI=XGuhzPRcG{0mfokp(RE9nbB%xo%{x3oUzYtSM}hv)L@w}$3>w8#Vwooj zBVa>=O!%WE@8-|%c{SJ5(wFYklX5LJoAB$_h##n8Dk}VYSeMr(kDk<0fW%gdvg|Hc2T|$#EFd0xB`K zM2SypGdj}P>B>? zc^fF2n33Qehb6muo9CBJe+3W-JHnqOXT}ZnIUU8miUZ@ZV`pfeL9awKE zwvPvEuu7}&if-WpYMPvbZY?<2)a$Wc-<+~3afAuxG!_?1!!RoHW%tP?3_0m97B3#S zH^pg6$YzyQx0KRu`7blAkNvH_i*|7fo$5yS>JabRJhc^~aNW*PT#Z&5_do0#YopB< zBZ#Cv51H=(GV^pe)X@xkI`K}ed{)te>SMd z58Dtft$M^*4=XI}=W^axPv{RLORQ(3)1w$SEwtN@D=Xtd*(ucX!U)2>cNh=d{Qmrt zKN^;hkdZMb)@wVBUa1Q*fAy;CC@8;0F1gYHeR`mh@O{9t0i_%g^UfV=1NRyrQ#B>~ zF4IJ_AI|ft+H=~TAlUG0kwn6}qGkfv>KA8z@UvGsIb88=6AgIBx4y?|{VtTF8cLMdfb(zxJe>?h_7L8LMy6YSb|OfbXvFq8eZ$ zJpLDP5dRWr8aDpnmc241#n|ptIh&T`>2Mg+eDe~w`xOHU?o4oX-s|w;gx*2qP74Hb zCz|5r_RuF=utAL5w<`2ScWTRQ`1xUMjv`!ir^cEl&t7D~gSni9R#_Q9MKhNxwL(wb zSHeaeW%@)$V=g{x3UnH#4^LG2c3HDEZY%vgW`Yug?7sasK9s?$^_hI^)8F3ApYc2S z+2DC0TH|PR?CWmc>P{6E;aagYAQlBPgvJAnP~Dair->C{5@k3CrSiL^T5ni6hLG-t zXB??wIsNcX1pm2;#8X9@xCoA9;gp-w$++bxy}C0-+LnyI5DX5@7I2BiPb}m`=&2tZ zDKI`e`{7H^L9KR-jW5qHKwmE*=}y7sEN>En#1$GFNLO>qsu=&eKBT7IHXVI6b9dcn z)3YG%X#5(;=&*z361V8G9hC*@L{B|uxx0+`6dtWX6IMsuD=|sy%Orp@58y@P_(05Y{UC zry!rR$V1~~DG7rlj6TA2yf-kqex2s7)hW`S8?^U^=HgL&cZs^hGFQfR8Lj)9IO==e(gfFV#oIpNh+_s`+1he8n!xW2-MjRya^mldo|a(yMJsn|jH$7>^>U z;amO8c9S&F=_WaG=J6RTRXLL5sm*0?vOu=LO*D)uajnvFZ*;ADJi;vE+SH*#=XS+6O;jb_m68Br7 zS=YU%945e2&iL2*sR)`KEIDmWHmSoHKF&|p-CaASIidY>j~@9*qqGw&J`X~&!WtNG zx~1SS5VecN(m@o8U0X+|)@!}>-4VUKo&Wv*eifHcigyJnE){sW5{n(&AAhxJ&N-gM zC{y^00NMY;-xgP`b?-1p>9hY)UT3$)iH%_-8iYN^bbZw4d8eU8R4{Qi6BzR<0+mBwwKL|w_!@?71)s(aO;&MD^?8w?ro-H4JuN>jN&r+ z&%P5U?pop>H7Wl_V0c@dW=V4U%WGCMDCvYUk*cvV$Nj_QtL%{V;IXpDYHQ=&Sv}|_ zdd2j0FP}+e?+xYlK{ukJ-S&V=Nf~EyJ7waGRW=Aa>iT-Zil)XzkOB@^ zXUQMUlwY6QIF$7ru2-d|q*Q^DJbFg?_3@Q@1n~871aI(K@8wR?!W;4e(iRRNn2QP1 zfKpvgY$QFg8f&+`lm5zKH4bzVv1mT`TO}vAXZ!vWTK$k+u zJ?9Dk=U8|H4H4-hnzW4~1*uTm4^?%)ppQqH!}cF@4|p}RFdfpfVrlVFO#!iR3Dl0` zhI-2b4nMwf>@P~5JD5}vM!^)~Z9BLWt1bZ)n_Iuf2gZxcn1b%!`kh(~)DLX2!WB4b zztzz;Ay8nq`H#;HQ!<&qDLQ%*MV9?T_57m?nwV3tY4zlx=E&et19SPyQlCgLC*Z|& zoDys03Mnk1e+-#H=l$?Ci@4{X$V_*vlFih+KI($#nLsyEUU~SA0vn#$B(_ zTlQw>r;$Hw=epurm%~e1=Vs zmN3O}D*Y+N)Y_Xwdt1tJ?l`-^z}|xbn-PW1%+D?@_){f~XfT7PY=V)Q>xHaSkTOx^ zlGQ-8#8lhs7Q+6-C%^rw%^25cY1Nu_b)U?sAwOvzU))`Lk4}B5vdEO6aa^cjloPg( zUOaqglE%*&2fiAK{Jk?Aa!Pcw-A8gD{&bsi8|C3jR(yxz;EzdlksM#{_=C4XPkd<2 zMpX*0GE_)l?bTSdQK}nK+Gg=@q^>Xnjm&d6P11dP3-K?;PAD^xT=>N}P9XRmo;Yxy zF2LfHs4ehUQ>GB)#HAgwSABifS79`T3dNG%+h5T%rHdDZE71M>@aPuO{>J`;aPYJY z(Xp2bNg*LQ;}#Fk%6jXwW{2>M<+az7k0(_*f8Tz3^q8VTs7R^<4BuM)@}`?IVh0=h zr{m&UYtLInI)b>jt6gZb-{OTdZ>|z+NAk2V&+HS=ykKL3N}g2UQbg$^+jJQCo5$&& z5y!GZX{mc-fiMXzynGJV*u z$S{VjImuBe!%eyK(mR(o#mWd4!rlQw1 z_nFne^@a(Rm>_xj9g-?biDl1tZ{|g>OG6KW9BgL-ijK!yK32Hi(p!tCJUt}%EC5dk z2ioV~$YluA=uXM+Bn|uam5opa`kA|C*W{9u(mdbmB-aIFe#^h-5klI9$#E2rPl~1ak3rTXeISbD|)6kajlOn+QJs*{n*lCH#|NQa$tcW zBd(G;5I-uKF^i+g0X7io+u)Lke9X4y%MVZ5Jh_?=et zGErjl4G>4)5l?qD9spGNY6t%u9VkZ)q++=Yel!1WD|nXb);;LH}{tY+S-S;y^o=9ywadZ z_|70_UJ4GJySQhP!E!wlujip|tuXrB%6jRcmXr|kb%e;D-l;E^c!&OEJE2-P*r*5b zC+SiZ3Dh8id@Y>!iYjGX0O~268DQzni@c2ki0aivE9&sYX=O{4iiBRuIEC~zJ&ogu z2wUY0f&?CaucM%!aWlffO_D{9>gDV>NH+c@xg}~Ks`trye!5nC5qg&TZ^)! ze>F(h4V1X5qjt_7!f`}He#!m)u)=(djgf#K=J^VKI@#prm2vkk#!>o_L9WtyWQ zvq{k-B&Yxrha~tgg zB<&>>?24@EJe0n+v_b*)R!Ny2M*=OD)l*`wO2w&wyjMrF2P!x7~YuZWQJvz z&3gMo`0Pj3EhGhPA-uE1P0Vwsh^Mi*OifGY6)6jLyy8;OMf=@Vy}hca+m!BHFWJs( z&Und0_9AdBB=~AgG0XST@Y*xY!}i zK09n}ZgVxs3MLgpjiUgrvETn(^Wnc9u}ZEJKvCh^jNo@wPDXFwMBTJ)v5DoTeZe+K6=B%`=BKPwq%Wzg9hw;?Vhl#=O?&Lo3{NS=hH>#|vIHhu+uC-3r zt0iI<6yE0}@E1^NV6pGON>LociupP%>=f za@1kag<(KRu6?c7uaDpQ5r%WoQ(TDke)ZkxRw?JhrKIa}$MYoWap1E@DbU=>lz%gc zT=?q)qtCQ^=Ug}BUM3Rp$0d%{$==6mE3qXd)Ncg%1luN$R=FsZz1W|$)WiP9vigFp zio&Sz!+vn8OLRNc(}(BrFT@h=_+D`qax7l!!Wj%!OYZ|;TFX#JCIh5s(dKa& ze!ocr7t%~nx771OYHRFVV%ah7%{Kr}?QoW|j@(J4lJfBOqK-ubc`>xZDqaoPKB6rh zaCfcR^g7J!`N!%2n+f`e!LhB$T`J1gPyDXBsGtntL`r0i4W6Y0a7_zCi$%Bn!41v= z1a_@a&QTuLcea0T*y-E<#u1w;Dr;u)m3%pD?Q@wtS*6uYMTY5oWMx_GBZ8Eft5cee zCw{|pxhB>D$`!>P9SK#RI3I?=q0R(kh3+rB;qe(fv3G(c>_}3RKA5l(RQ;)o()(-j zM^lf=3|}Nw(Q$hE(xs@f_QX=y#@%R)RDNgGUVR#WtIPf|sf|T2M58{R0FcDZ%lSn44Tv2pG~iN2c{>Y8q>zY=q$*3 z1gwa4&`{xXKt*dgh!6t*7d&+E?>*C!smK8ttkb58t(~MxIz6{8(sM?N zjUZm;z9819mk?a_G?4=vrD!TO#?tE#Xwp7P2X`3$NN#qWyrx$kTVGV%B0FSeMIKF< ztc$x{VE&1eaW9r^Rf0w1czyU|qt71IJLRN*UEAxLT)ezL3Su3j8{SwLDBSjfb=WVj ztCuRfOv05%G7x`Habz=l%qtvJ@Bvlz+WeO7kq)DIj0#RJhFG5qO;M|tTRCiEI95^7 z0Gz8_s8Z1VveoIzIZtpq5sv8b2uP20zgv z3aO6pV(am;vcTG{d?sM4uHYYZ&GZdfF=`QSM6q2ZGRAPfXT`3>H2n0CPEkwChF_(X z&JwId9v4FP2+zE+nw#vAsd8B;-2wz7;h(@dO3X^Aaw;3)B0io5D|lQpYt$@i7MP| zGqFxd_+SpjGQ+lAu>OysA3RBJvkzzF{dwMj4GvoDs)jEGkV>xn9%jUkTm23f)eRm( zWU4WN9r^}EMud;mZ-{7Mipt#ObfgZ%+l-NiC3hQqc0e{F+9`9&X46 zPzZIaX{2r61;bud&6XR~p1$4C?rMG-bD>AhUB1NYoTAi4PAWcFPvp}&QHDAg$AheW*-fHcqD-CK9q3p6@3a}sV z-+RpD*MQw0XvrXb6MGr7tp9?vz)h)vRrSyftXP?%=Oqk#O_~PQF3RtDFPlB8MO7Q{ zTz+rnm&kRSXg;_8=440b4-F@)5%a9sjSqU7?t%5m1Z>Xu`i=)#(`OT!4eZvuI5ELN zgP$_>1V%Xni1cyg8&n^nn^=BPv8q41n|VPLN=577sbQC0N!2d>OBh7|?x-kae>Sq3 z3s@*QDt8O1HgD0MftX*FWvLJtYOcQwyCJs>-udLYLgWI_U;Bh%4jJC~&I@}baLkWW zb~15hipQ=ejE}TU)L5F^(f@4$6Vac4-cDpwO3?)n{LId(yRPlL_?3UqXS-jboqN*| z*s-(kQB;Z6pv10{ixQ+*sIobnJK12S3EAK7|M-!1*$0aWi|hSmz7Qr9q`TbhPtomB zt_tBwm~}!YHKu8At}derKLc6)T1(hB$}Xs&h?YIwWe!alBrGObFZd}Xf749`+z}S) zP+avW#Hwe-QmNWTP_b#EzNXrJB7&Ht^tey61-AYgs#ARlfW%0=NjW%|s%`kYeIFcl z=w>;Ev$ZdJ)ur&}^kLj8qU)DxV_N;HxO@!WY3VWjYU-;iMitX|CA=(Zo8vja@NTK& z8QZM{^TFd3)puijvX6_2Z_bZ&=8gAkF~V^Hvpg`M%$a{@B@E!Y(q%cN zw2UJsqio z#x)|ksg~rP*gl32e1TKsFoVw=CmYFf8nvA_6`V9^c#O+-1O!Yc=IlN97}}3{BtkD* zRsyn_LXQ}kimxL#;9k=-eOuXZoPM5n1R?YVVElPNd0i&sS#Vw#e^p7dc(~ ztqdmZ#qS+%&4%@SpBL6DYX0ajh4PibZbjn|tcK1IIyXig48?$!y&oq4mrZKS)I(@H zdW7uc2}~>hpa3#2-t{D(%)iQ4L4vBp##Eno1xxuH{2F0M=2CeEqF@gkCdBgx5+sCC zEK*TYQ@brR7i})QTsA|pm9KFWp=(_1Rh#sZ zf6K^|W!AnnV8HXv)TFz(>SlV6+(7YB?iW7g0>c*$#-!l+;Iu}ea6gQ660|#$kFTVg$ET9&cI!M{1ZTuNIjXpy-2H0q7>_SEZ zfvO+FsiK%HHZ=~r8RLl?8N{O?fq~fq-vXpu=Dfl~gGPz3t{&%~-Qk90(dIrH z*r`dhZC|~G=H9vDSbl9uelz35Xubhaf6V>_IW9S!lX%^#*sy^%R@^+f{;MfCe#vXB zR?qU>M=;asLX`)Tn%ov41^)QruF!lYY6sWX(%?0IJh4+9IzUHXR$0D+UNqiQPZPm9 zidi_MPXPhp{K*zXdw4n76Y~EtHZg4G^bTBlBBl0d6a~M2ZXzUQbx2PMX z55LyWV&(=cPB4^--ta)IUV3;>JO$9S1?ucsqpoz6A12Eoo5N7g-h zldx-Tw9nRrbqu@q%bOh&T%(nvYDlScM8}@c9l*#MqQBpso30$_C7=R??rAQ(%-9EF z+fW8C^S(MrRh`KOC$$t!3r37GcMvT0p7vZv;^|4}Y2pj(9uxY*4FPffUVf1~yVERm zqpPd>VBFeK7JpD?Kp*qHOWEJWlIAYOrB{+Y7n=f{Rp)5dp zpR}q!X&c_SByML1@q2_?W2N=%(kXRR>5bhGS*M_sCcLqrX!`kmf7Yqwgx{f09!c$A ztdBZzNAvVHzJ~DC;udS$Ap*wx{51?@=r^lS)^Q}4LIfW=<(^U3LdKmS#7xV@r}hrE zg@W4S%n%|pI?}FN$s6S!Ymc^***c$9zK2FdWl?^klX9j=WD2Q581wbck!JXZ#Aqk~ z^(*Wzn8{-neg;KCh)sJ{69LQKeGXzvp94hXZigow(otD{43ZL6Y}eP<-j|I|Qyt2L zZ?oDJfPnG6+MgvRG!(Y3Iu%TO_`INIcY}+CU3ZKnXoA2b6`^~3)cI%5% zzWDd>;72EO!TziB^`$Kd_Wm})2oPCudVRVzNu3`i@Q%D2cN|E8&Rsyip)XSV!L)$d z2$NIkU$uGPjK_93-p|~_qI7tpG7^Lo7tO?uxQ$?B#K}tQs1EMDk)>IEGIcU87MypS zT|ba11qV{m7pH0jouLA`_BT!H(;7c1`;9KUwWXT8)_e$4opcGdD!)ej*^N(G%GIF$HnZuN=D_}2tV9Ld7mN1Mwgw5vI|8Q z0REP>JMjK@9IxDh3-Q7>0tc)+fK~K(=TCO=I_Md-wbR`-&|s-!!xNK}oR zfANlIs25I)JPkg)-kQXGgr0T=UY1~%nEL9u(w>JsFKwgs2VaoAK)`ZArir2v&8MG5 z{YtfuPPVAPqH9c0x8T|G-bX_uC@+N~iK}zq#6c9*{bBV&W666}23ysJl=rXa%2M5T ze}n@^IT^@o>izQ-*#6#wpcP@OH$w9a8@OAIQu&J#*I9>cG%Mu_K0*&!~dukA8$Y^b!Y zS5il_SRm}k02}@kz988rj63tdv({VlqdE#q zFtCfp9CsYuJn7b$GN6ZTbinE?fOm+FiKm}cGXg_<5D0V{azzs(Ps9~BG*^Xwp zJVru)-kOZb;G+bXz}=>3H#vBTA9}@U4Ug4XiyKTihB3yLqmrR7l44s!M?rwgiHwD6W*g_ zi$PxuV6d@*=+zxMtt>OBJ%3MeP>X64#OQ0qfZ@YEC{V;iG9z5L&g<8&m*Otf)`rJW zPk?a?uMDAD2`%!tSi|q##ei^VzR$%-S-TwyPyq2Oa7Q4L^VV*&;{ZZp0EDYnt(49X zM3toDzybu$R>bO@K0v2SUS7VWvea0#!`fCmBBCT+yLUGu1*-EP*{*}Cf&>>Jz%i8+ zm-x%dD%vmk`m0&Irk7i21(=ev~VFQ?Fh<>ej8h zfP)SlJIV*GTesFuPYEz!qu^t30dN3bgEw{NjXW_doa$)va4EDkpZ>M+YndA{d)jXTL&EKlPLppdGNH0|-0c&@xE%Qxil7+{QUp zbRZ@eFk%x788Pl#tEnmy)Z8RQPQ&j>NT5Z8ZzDMfw5af|<^l?lfIy21L?H2q^uhOR zMVA~9(G5Fv|1Eny;HGHX-elKAWK2THmbzrqX3eB`yJyc{@*afxkxsySm7YAj$=&?> zU)zCjGg0?!pR@{w4D;}D3r>Nh`wd#Q-+VpN0rJxs7FsTN}!BY zbtWrvZ&=Iw^yy3Aul%0A`r?ZyP$1`k0V+-w0IZ}Asu&qKm!HnNwT~2yl=*0gx)-i4c`4-~}+}#Bt;A8!=*d{j{`H zJ5`{&I|<@N3aDy@hpLEhD|>VQzHPFo6uOHDm1^8Q_fDryojS=PT3t4Ez64zHeTfd- ze3P`NiDtq6{Zi>Zvd~Wx8~CNmz+H&v9h#3F6(CAb7iC1fE5hY9V(1kZ9?v@kk~A-n z5Gy_40t1nYi7PsgK%_{w269&h1z6}&1K@Mi695zp7%)&61aZ!>&fq!Kjeu)YTwE-X zgznu-Y1i&uLf)c_PC=?^7$jOiv~UlDj(srNeyJa*uzoMw8EV8R;gub_aOc~sc$+u# z`+btGz&Q3QjprEhGY~B|%V> z$k-^q+MQKZhT4Oc#(o+K!f8oK8sKMKlj~78`iIjQZE!Di?TBM$2HebzXAR2@LqLE z6DZIVvNQ|kz4<0BUcA_5B@FR704M+14FYzBef$_eoM#fwkr&F&hs84p(j%TR?=a|?xT1o-Jzz+CA~pcI4w)K_bqXI@ZHO<< ze1X1XuS|W9&yuztK4JuoKjjnwi4qcpDk9Iy&-WTMXC&oXNbrJi2|#om97OU5UCz7%%}qK6>P#2WjQX@6E`S zSJy!m3dyTNUOoj^*aHF-X5?n)sICGV5P+Jv zeuG9mMjbomd{y*x(47SKYm$f*;A-Ped&t)je4D$K!1*f~cNvK#V<4kQr`b%Bv2F+tKlf?`q>+hKmM=QY=B zJPtm>`PaM(m=c2l&5AsLw_$LukBzdA_UdMsG-NIIFU@*UQc@NewiiGJ45W6zWa^Z0 z3i<5m|9OB;IB~4hc$h>|W*Pw?;5!Bb=dK9RXL~C_0eBJ4sbi59>1LHTJ|9I}_f5Z7 zfUONktRlnnFSw98cj@9#Mf8hM(=*$2`rj6vvTIcl4|(bUbMCl&ztj_;4N+aEojZ5% zTJ&^;=#iULr@C(#i$@-Hl<>FstaZq_DMi@_rr#&8mB`gW7K=MmrpfM5&~4hZ35`1T z*t426Z90HKOo%)Pi!wZHMJ*tx%3R<6VP_f1;jG;j4nCTD98_A zST`Wydr%CAti>K<>9I#2u}Pu4Kmis*RaA)g6&4oKHP>ECf4}+~i4fqL!D~{U{Erm| zUG#kgeX_>{1r-)q(Zo6dDGGG5;$fV>_~MIJ5usIlfMTkwEV}A%f0Nv`liCX z?sXMoblI|R=!qFKY{tz)O;4XFqR^>xC;!lqqpsz7SHO>{)VANWU4~XvP@uW%%xVEa z6}G&bTw!U`Bee>GARvN1^^l=MI_Kx-*_HcMMR!z%&H_9KZ*1M#we;`<|1syO>*6A} zj&?Eda$}JU{mjZ&KUc~?4RAy^o_XpiM|7ZE!pwuM=)itGPN?3~tQ($Ad~$173}%8@ zs)t4-i=h#bGtfMu5?bugzpJZ2fQ2vG*lU_s7{Lo?Xc5eZWflp|#1g-N1Dk{ zd5?ZX369M(qXgx;CdzseCD^fpo_ppQS&!Tr2Q?{u0D%053ofLwg-}T^s?iYnPcM+jt@nNR)**YMj$CZ(|G@puWOpsfq=1&&q7<* zw5e0g`K1;OM?JxWGtZO`2T5UApS}EmLD#GaNn52~tEDAAB)iqFS{MX-p-+ILqMlCA zFrx(DF8j7dM+wy0bnSK5OILwg6b|zMWB-X6kI{w= z?5G=f{@G{g^G`pGRxsq}F*q-0k7?kbfwX7$?rJ&VRI4FC6@J4rPd#b(p(8o~4`on+ zRXdP~YvU)cMJn8&#mzl<7E&8AN)Zk3Z_(V0ghu2dV;=@pN*ufE2)siJ6u-jG@fFyBHRTwDB$Oyy11&$pet8} zBtifXfCvG^k8qvCAu~#mnVCuR=FOENLqrS=i`p39h0j0l{6A2izWt)~4#1jt=Z3I+ zPi>LmA;}uZe~7>wo9`FpN@tW{`}Xakgjmy~1Teb!1qF2LOeZ>iVouf!^08~WTt0Oc19*Sq622CpuD`I z)saVz9Ws2_;Ns$<$U?${h!7;Z!$bb$KD$d3Hc{LrQ_J-fBG$na2ZA*+^Pe4$TLO?JltuS;`Ye~p%Z_nobTXy`SQPTis)+vF! zuu&;5?0jC26~lMO{k=b1bIKIs@o@BO4EJ|A6o(9lw6W%ReWk8~=F&x|e68ksE|!); z<$W!hNzt|AXCq`kp~!ECNJCOMmQL@z`!0R6bgA85=3WGyz2_0N1*km$hd@aQ-E{LU z(yI;6$=Mw+bDK_&u<=GwAUmIQ1%p1nv_V#;4#2r_*OVy&639{92*A;>VI%t6KdzRA zSn+S5$S}a4aT9}$g}V&_2(@wlpSG*67_fpKm**F5f^xK~B1&M%SikW6^LA9PrYIqL zZHNM#dfEhj~z(_Nwp~*!2XlgpFeSeX!{UT#weRThXwQBQMX*&1=Tj!sH5b zC?Xc*AD#t^w``36*5*Nwc;!V7~ZS8byMO3^TwLJQt`M|#jxc~X^I(ScN6;LofVIA|rppAabZ zju?0m5G69+bhfO7fNAEtDGe|ZpKwxtdfPOkZH}9}J zuZI;=Aud{-;u0lZq;#fJ;HA{7SHJs&Gta!aV~1n>PT?XtgsB1d0Kf#B`^Fr4{<&wP z>jrp(Cw=8#ucDL3kFPf5L!QwAYY<~ED=(wTw@#vs8#ahBL5mL*4F?tY>HG%%%Gv=V zafIJVM5K9z{Nv^lq94{A?{$Xe4KLba>n=Q981huB)elA%obc-^3|hgqYsmqFKHYE7 zqJ0J}cllJ}|UBr_7hHf(@0w{Lw+6D8`mTtx|U{1De*G_=TryqZ8>w0K< zn6^}yOoqd9O(w%yWyGHjk#P>2@yVRK%cQ0jaVs`5J9g|4j~HTDxF$*%sHV^vJ2!xx z?Ccy-J$!lAESsCbHg5de!PBsP+ji>CfYsTdQ;F5JaD)a6;@3h53oQo}f+t6XdBvk;US{+fiilV3jHW-I@-hPW7 zWmK(d2cTJi)WJWS2dGiH$*CTrjxTQLK%+w&T8NM}juAirqJ*J)ZMQ+svT=QUyH1bs zK4V*$p60)2@?tuBmqBycGhP5Nz%Txg-C_U%00i8BpZ5g}66W)3=J0E0^Lu9TdtchA z(`)?q0?-1pvD+9j^$F6gC<8!(=F=kUEs|vMgYVst-Rn2`JD?^AMM(+UZ{12wn>D5O z?T;}RdrS5=T+TC*TS6{w>VbAZY6hA@)&*!H-`;w=%|IGjb z@C_6f7HKYeVo@?Y@~ET7PdMX@^INoN9-(Ad)sPM)`Mg4S5G}&u=jPAGG1RGBm+qZ@ zALZudRT~AvD1+gO4#3FVHu+ZJS^zju(SiQ#HU6PtAZBMlvJ%Htdwnz!ksTeN%D-K9 z&%VU~Ldg5FwPAW-t4?3;XMY9R_9S{>dHE^gyA4Zx z$t>9VVbv-zJ`mPXBuZ+|z)S7Kpy0y~7SiTTn?wK%A}|346kqK(!`=O|eYT!L?e^0^ zK@$dTZ|(}yZXR4p;{Y88nOT|Cqeo9$i=w7R2^1&*5Jf>Hm_3z5w{4jD_kR2BGCHP1 zN6O33k13U`C8=?c>@C_Av-mn>WM({PX#Pc|4VSY18kdk6RNf03PEf)^Apw1wjq917;Z6NNmv)1Ui#vHjMR@=9MP! zcxyVpaNcg6-evDTmq$}h&`-IkDU_3zN;w(nl%0`5S(&_NWl6-!4&-HHmjeM6YO+-pes z0?~s&66-M{F(dL!9Rl5vm;Cyxujrd^zLDra*t&KqhpcFiF;8HqlR5*PwO;#|5Bs_r|b*7Zj3$EUCK?7MTmL;?V!!j2ZO72k+aehcaocV?tWu z+Uu{A#aA&UB3g>V!Ur~m>Cswx<3qBAEJCXj@{!8Z?3w|rU$4CUvPfAAQB@7CBXFh; zuwQ-6KZO|1y(S~wwQJW-sRavLV8BRH-u|aWoiS%Z)arD^v(;v(C?BC$5bD&W>$$!A_GyAeC?P#DQF0Li8!$v_7^qai_bXP= z^Uppb#ZysH52!htBO=g)jZ#nE_lJ|nKP3Bn z!nG+zF`?_$a77Tv6)`Ax@d+TDip3K87>dp}V5#=096LO4=Z<0}?EClc6JZr;bF#Wk z;0?nA22haCWx$caAR&uE0t`RS<5IS&(|!!o?-?ANvmzv1|H%2mAO_gZy4tr)~~0RUwTOh-t-#YaexiLvr*&50t&o-BT@>V zfA*=Q6);zmvLp1<+Ys#n!(P4WcI{qz5zo;uRTdbE&H>h=ob2qw;yea^^~e`5L@>NKEOEs2r0iuM&q65QEt&H*4#s8gZ zZonDoP|*Pxf)Cz*k3L-Zff*g(-x;=49nY-mmqAh%tGz(=_#5$jdLxdypyTz1$NRnb z23+k}Uc3Vb_-hAb`KWE0L0=s(C|wUpJ5a#Vk{1Kz5JACX;7Z4$0)whqArXv2Tx);= zjENmPchHXQ+ogC51$0V8NEQC6yt<+EAo#g7Fv{sjErjW#Jvu$WR`J+8Q_!eMs!0JI z@(_VUI%8O_kKWm>+t&*~=Dl|p(CKHMDW19*eJe*S#6T7y5sq!!)~&Q<%NDua$sW?) zJ$p?(im<60kEnp3!3#7A@SE^{2{DHadXPQ&zS(A~q>cy zgAAAR*lENU>G*uV0MDRia#i4bLmcZkc3dEnt-I==YT||z^{8Wyr3nj8r~f|mkVuC+ zH*|!(@a(hHwrxACe|10r6(}qeZi-@@n9^RoFYDT^Yj(h*V*Sa5gKh!}7XpMa zeEFqWCL3W!MpRe|2IT60UMmv}gRi;*fe4yni_z@qr=GUG3)DzJ1+P0Bquy+|_Jt`v zNzl(5%!oGlF%H7{G;-8MJi6~~=%*KV8uad7ofb2yK@nCO|2`B;qP-Pk4+|y6*W$0g zrapc9QqP_}Z3Bm~=gg5yCkDS3*B^#zzf6g7*b1 zPi+&g;`jV$&~w{#I*CESsYQOO!^;Dd4-J?1*OQHMU49O=4*_X&O`%n*R!Oe3dugd$ zyHv2VF#!1XyYJ}B&p#KsX%v>B2yx%Oy(aCkfZk{@j^l*!@L5q3QC8IXT@aeuoR&J_+o6MDEigeuSgU~#>S$84#%&#{i;QUxIlG^iiOURDhmlyD$2`^ z28|l^nQ+D#*BpKHQ9iFW!-Hx!bVmprAv7$6$hqBn_uaC{y3sV!17}a1D3hzYf&q7Q z06pfo2A?qix_|mKLD0BX*x^H7)g(Y|GPQ`%dz7*E79orX{~Jak5u@0}gb{HDEmFH6 zBJki5fj}M{q4^$}J{rZ~rh5iYP@b?W%gtOlTH;inKd%3lEt_fH+&2Xzp@mN6+YLuM zgEI6mZs49c;)o-tYuBzcaL`~HI(#_w>C;ypOJVODc}vK$hAl%Luv+(|_)9a`C>r$s z9)sqwkwx($7y=O$P|*TaT)6ar!3Nq8Zyle3NL3DdKfU|(p>LNh6K;TM_uNfS{O@sk z|J`@#haY~B@d~bcccz6-MTSQ+F%xZIoc6-@#lQNzaO9nMT`}-RfY!X*~rRCDai$7->k zH=x=KM~)tI+lY}Pnkx3QSZRP*Rn=65RDvw@ejokkzUkuW!7#d01xNDWx&4kQHZ5p% zj}DjxXl7;W-FMw7;a^M^$(QpA(=o?Se`Y|Cuo~PWU7$sk09J8@i}e+rg@i_2K_S?# za;vMLaf*+IWcdUjuw4^w0Vy;MSBSk=-6ZfXAnF6pSBgpvv!%vle_K{-CE z!v}$gQC+^x4QTWRAFF~9IAkd-#@i5^GI>^P9>7Sj-J%KQOfQ*_#@XV^Y6<&6jga7=8F=g+5Xy zSU`|IfcFhT6XYT#Wn>vTpXGh2`{IpZw{#G~7K5?UM zM9U*g0Axj7BH9u8x0W)%`r?Z(#6we|T#z39SYc`^fT1zB78D$uXG|tw1L4+Zd$E`r zcCqZn4I63jkRg&r5Cc`iqXf$N>D0M1&7U_=T1@S1W*lIT{4FX0Jy=0 z`Wze+>V8tw)9drv^25dr8$Jt|2WBT_F}HW`-5b;Ctg(QgATM9b%E-|4ND`tH9>m#W zPCRkSph1J`;9NO73#ck-fh6C9NrM8hd)P}xftcSPS^5mG?#$nvCBj9>4Oiz0qB<#b z%R7Vtn|9AV3<|!K1skFv2iSPDWiJ|lAVgKy9@1jO3Jxkd;N<;xf2kcZNTfm(tu_>v zbb>~0(=-~yp6QSLz|u0%8dm}(c(JGn_~MJtB~p-|moGp{EwYLh*ail8%=tGW2Q<^yt}BY7~%eKrcTE`GStHJwO5S!SKMh@WNio#|8#OzM-Z2Bhv;-z(_hoED!(y zun*k!hRL2-m*3nbU8Bx?J$q*RrT@Pl8(nzgy?F1E35sMNwcztmC+HLEX5m@jV?hZ2 z%K8inGa^$)n5^yjeRG903D?F<9pL-X>pgJLAglf+k`M=D4uGgzw^I6e(MM8iA=Ta% zC|Jj!;4}Vx{rNa^0#pkM4r1EC_S9n#2QsOUCE1R7jdR_oQ6p;KzI|ns0N2IgG1th{ zL4H2fuUDU5nl($>Y@NRoa|d&U-!S7gBbSbkm}?cTGu1YVT6*Er;$&__{VsS zx`lW1#EcpA=_j8=5n7;ltXcCGbjOq_cD}UQPZXAGsZoGB zvEe8SQ*vCpp5|BcFyJvhz$-eSdqf=^1%{QkTAYGMZ|OnJ(icGI1X|yQ<@kk!=p!~r zLLP+k!!H6TSi5#Dea2%0kplGWhn)+mOHfFFf+K&fIYP6l7!e)74(3Cb5@1b3suwympM1P1B6Xl5YAC!c zWuP9kR6MH^8A!-r=<%G2Nb@>SuzdN7E$h~-UTBdOnW+PQL0U?Rv4;VHm%XWx#6)>H zIat)3iiSc$#0zk7zX1a;YT2@R6g@G;sUPs{7fk>bbSsRx`0KA|?wfB&Z@Sx~hVlH% zl~+m*E?N5J!#X-(brggxgZKP%&(W@(J7v)}!2nSkHUh)gi0lhl)WDXSpzhptbN5m! zw0RxyKHaeCg>B(Ny^?a+e2wF8$K$#~;ZVI!ciigo*;?iM9iO9))9~8yk%nd$A;OR% zE%Jv#A5CJ9IKyvB|0>#Mc=OAaeM5i!%jMGB4P)%gyGMI#S|t!r3$69#!Uw=(PClE* zQ?q8xsi?TvCXT`L;57&Y`~pBF#rv z^RYkPB1n@N%t7>~b($&0gtjzviJ%Y=G|s5*Kj7Ha--?o&@c=bVF@>GLJ>hi@_wd+2 zk>*GS4tuTEOq>t1>)<(B_~8e#!0HY~QYqX-S}IgQEnBvvTP9DYx;(ECl~cuy;BNSo zfzTzZD(FW(AdpKLM(v)=u3N(lfOdR=Pp)6c;w6xj&eEmy_Wb!0k`6n>v8aaf5~y_# zbLCHezMPsgX&SYLW85K1@XAXs$vH~IY2$V#b&9S?WjC-o z>`dV!tQtO_mY0pe3L9l%4<{OT`~J1Rqz>G+{OD1 zYQ#o*1RG(5=~48F+bjkzSJey9BMbyiFY-}|6>7(|L$?A9YMLdw1cQ(FKxhb>0_*t! z+-_mxjL_5CIB&27ST5_u?Nyw3d%CqgElYN*lmk+jJid;K74B5Vek?_T;%|pGB{G z#2BsVnHkJsq)YyE`Q@Gz^YGRole}X2ayv?pu%pfGkjAq~9`*~@BrPqKx|epZ->&^J zr-Oix9P-GpjbKc5>oWWj+b^CnD2x;^5@};T0fF@N^g3ft9zUg5ubw$ra`XgJl@u>3 z;JRR57Z%~*H|NZeK3z9GF^pqgK>n^DZO_pc+aE=aCb{3d`;Nb@!G%IjCQXu z5P8}S8#dU6-!2AJtbFI4@dTJYPb$W*XM!z~9e}VUzywBntdFQ$Oo<)0g(PzMC0Tkr& z7pD6wfs-?JP!fcaq(*P~%yws|=(knhi*3zJXki>v!2}P1-`oOHE zSYKhbB;s12>!Q52rXcD02nuR&a6pL5P_+bnT~N^4s#R-h)w;D!RHW5lUIJ(8pdF7h z)JiQ|wk*QX;x|LH1*(Wh9SG5vJ8cjreQ+?T1rz)e<>cm2Sy_3jFTeQwWww#K`Ff~Y z0$tT5?RCjI|J*5qUzC_gJb;W$a?Jh%@qj@BHA5IgRGz;0 z!t-PjMn!J$SgyG8uhhDA8(FAo!ln!r1|#y;FifHx$zTm$ENTZ%F7Zo#cz3vJ&UP#p z{h-%yN8N!J3!xeB*OI7Dh_QHT?mG?;%hU0wG>z_JV|&TkFl}T5t6APJT9n>->n#z0 z0xhrde&Kzo&(bZ;fYg*!HvH@9fB$=&X3d;w=gU!8r@)z_K}LEb#6LoL_Y%6pBF-N< zvDi;7EH*=U?pM|G6EgP@PD0@!iu)Gt*CmSZJsa{L`7tp6Rahqu(E*<|*))g8?}T3} z+S!htFHJ9ZQi`uZb{7KbF-3v&jqVObZg@P0|PB;T-I)} zqXZo@_?q!`dy|(hzja-(J^Rel)VE(hyC7Aw3T12Zrdw>Df8jNK(MKQ2xO4tyaAQEj z<)aTjq@KNcNhcY&Lcm!<&RY)xBSlCQm$b;^a}=d<*KS>l+jr=6=DY9AzmAUy#t41@ zFCn^-m6>U5-?j4>O;`V-5dw4;WTZ#R8%uN`Bct9)C!g}~9z9C4m6uf&wZfRMi4ift zg?Q@8C!~(Em?elju9PbnChden+C-L z)sryRT9W=sRCr(Wviw@oDT&H=Xr8GAr`0#ykpwFg;06Sm^Kr}DhF98&7uC1+nBFp3 zZHI`ceEH=U;&FBD+Raqow9Ykv6=$evfaE2Xm8uGV>=z-xzvBafVhR2I2R2YHl$-ZbdW+rDD|o0UUYrz zWDo#$M5IhmI6&%wz!P+s2Z%g;Z5g&pBtiJ}BGrpq9x zcn2Jj0RV#Xva)ceE?v(*Y5cemB_+kl6%)D$`8i zrS`{kkcC)9r=mcC1(LAHfhYzoiHH;^J`kjAkRkzb6V6$eOwEpF)NXMMAnyQCUs{nP z@DgA=peAO|p4~Kf$WRk>iP76V3<_;peoFU4t|cz%*^zaD_51R`u_WQ4qgJ2(l{l>*z4#xs4-mzxj8wStFyq5 z&H_|f_U_mJtj3KRiBzOJ6`;pU3Aid{<$jFlf*s!B?Sz~i?eO56{mLuShJ(eSOh|~}4g2VXB0n8C6d_r|W$leBg!Daxj68RWL4$0>`c6kA zLaU50#EM6#zffq{lMT?-^#W!g9oqZYu&Z$c(H;=;Xx73C19;iR7fGdknx&|Sb1XYg zXha%H0t^7y_&?k%NcS}h&>u?t)R{fsY|G;=w~l>l1<_3Q{{Q$xh|XM5K{u}t(ZW4u zQ~@%=+3eM)i%3(7EgYm4IDij~ZvYZ}Hx?fh>J}Cj%3=bE*k;X|N#!-9iqTGqV+CMQ z>W)g)5T7fb54vW*saE(dpO|x3R?w7SN&y`kYB9y_!w)_nfXS)0r_Ql( zIamM&h6+@&Q|_8dM;>*Q&FY9q41fS$KWRgVu3HzD?@O!gM@%r4Gy!v`6o7hKv-v7; zEfE?=h+Of!=tj+!M|MUDP{exKWq&lId9Dp({q@O8J%*Dm#N zF}wtfs0thdaTN}&RKdp|eI#Cpn{zwDl(5;hhp?^=gQ=(4SUURh+41%Fhx;FUy0*LK1G^!W$(WwPKNd-Wx z2=d0*_gG&GFCUWv-W-Yn!C1J`l9+@MhB5Z}{1IeGxVB1-5wFY0$dp#T1`QjER}Mut z82kbT0y)_^lC}_bL`24{GZD7lk7yq18~_$U-wlomh&F*DIbg9j29+8jQXc$fsOy0+ z>81t&s++>z3j>|2)`sk&N_-!3w(!VCjUF9YU}zEJI6*naBf!cXciu(+y!s#X!F%sf zR(7_nl9<6@=zm+oe2#SbXZ?T>D(wjq)n*aA=O-d70JKPbeY}^)kCigS_(d%NG$vGv z*5^?DtI1IUfaK9*#t3MiH*c=A$~vP2m;wT!sFu&cXxpUWw^Bq+`)jz zbb;YnJm@4i^gKwb0#6msox`AM6&vUm*idI%1%WWYUw`!#-FW?V!qX4Hg#|{{36xs} zdgB-boL}OT5H3AF# z;Xm@Iqp4l{c2YrJzd-}a&CQjNJv77IH8~L{H$s@jN3DID9m+(MV9lD<>`i_oJRP8N z)-73GNwu+2$r%s*i8jqTuGEmV{j7!LJFI@OR)OZvc`*+@^egg(borSb2 z#sUIfMTXXMnnOv^3qWWNy9D6Tut9z5-M8=QUwr=QqX+iyU(d&Arw$NV&&|#;w(Z#d zv!9=zwT1wSYxmxJFXd!rX#fP|VkJDfUHj9=oihG}dUfkm)(#LQm(yZ!wjhh7U4BnbQpFa5D1Nr@BRu~sm=mU7cXpok;U`sm) zY@j7X7w&Lf-95`ki`W<;T7ZH# zrF^(z#R@T?09~q90EWMahy1_Tdxqx>HA6h6MwaUL|AK+Q?Hj{%*QT)C$1&oyDOM<5 zaT16mHD5DSL_>-3gcHZo#PiOh-~Ik98a`sA1e3jAh)p;{F2y7lYUQG3!$btj&0vVa^1XZZN`Yb6*@jrf zw!^B{67by4{O-Hu+t&QB>b(Hi$ts(F4Ak`O+OwM`PMj$1y44a8;KV-i@WTi-Lc_>U zm6`=SCWHB7P8fSzpFX_{lo3wUEs#ufz-z}qM@aPk>Guj>zq`!_3++FyxrVxRFQo$q z_SXy#!6Cb;6!}mg|Hhm-cDF&OqFff%W&3m*QQ((~aXkrRZX}2cBo`To{1&HIZ@AkI z$tj<#MP(G!qdv`SXT$F>$#pcTwnpVV+Vt=ko=>&z1EL0eCKxar9V1`e34J9Z%+#+cF+K!M$nY#{G!5};BB5je*xV~OKQ_nDH$xBnQXDG0kCFpItb z1W=fmVig18+F=givyoRHH-0=_c+tf);fyn=v`0@#52PqE6-zrnMH2!Jbw+vIEz0EB zm1t80V6e`GX~6yBEkPhBFF%jI{Nf9$D6g>TykT@eax^5zN6q+me|G>N!Q>NAbqxRo zLxv1vqn;Agf@m*}E^vZV3{fcX(Jxx`k<4KL9!2qtcYV6wke0_nzL>4j%#Mv(9fZnx zf%%+ijrF;^&2grH?CRA&2qiaUybY^0&sp$U(_<*D+q9uqUV2%SI-OAhjM;T-*HTM% z643#px`&bm0#yYGcE>>$G!B}5`Nd~5!=dp02qi?H-@y9v`?G)l^LH7j93qN;4&}aO z>sFfi-1Azfyc~3lrrIky3(Cv&)@_a)d-5r#PH5P$L6o8)B{KBMrVXseu!y|+$}9BF z+iyih2Y{3T1papQ)$E0p)x6>w>wF+oSdRx1?!UWWf!PL!ff%X~4tZRhetEtK0vPRJ zSD`AU7c|@QYlg?SM#wL-*J+U+;k7}Fi7(YM=x9+}!*h2D|DHvR>lQH3na7^d+&u=( z=iB*w`!3%uVuQ7qU$dHx7~Z3ck=E>@In|{Qafq6!mWb;5JYHSV3g@@ZZ@|i}hxlCX zI^4h%?!ov9lHSfj>l6FB9$e~&v^2cd@lh#+*`aq2geF6po$o&r=F+%EE z&OT=%_2}7)iuf_pV479?D9ZC&odJFq2ypIN4DAJ{`kk#i;06tr4gsD6*$^b2=g*%j zKtWEA9u{#TNH-tJXs0-6%JAxrC;@6KkQ!7`0)G<6qyPz2M$v(Q0?xH-*GM|V1RCb~ zLyBb%UytQ{T^sWSY#1~_Uih~N3_N;#0gymP{T?IJO(9bn8DLI{wRyFM*7PU=elGwu z<{4Up-BALJJBW|<=+(=SR;xM?NVYA}v{R`V+d0d=S+;Kdy0wd3N{AwSH2TL5)woVkJz4b_4I}r=NB93um2uR>zF=H0dr- z5rT+Yi+kVexny650gl3`tN-sR>2Y?pny7ZLhyMEr4IDI>C&-=}h6O4MSA=g~j8=&L z^vBES{rBFJd^f7O%TN{0{~l-)q%Q2`?F)OXEk+Wy-f++nC6q}tA^?Hm00f35I$$U* z11mZJvXC?@qz^+2YTKn{Y~0xpEH5XKe%%o^i>boWeQh}Gxs#R0(kB-J9+S7fPCzrm z-fYl1W|*EXsDDweS7B79An@Iw)4gVWh@RP|Q?}nMM$$!TkVHdZTGOB~#qGDi03rea zTF>+AAKJpkQz&^2ss2_G2B~pjV2*{VMaz~nYSd`)$Q!W{Rff@Ntlceq5sQuEHy$*I zR30YohtZ{Cu_;<1e-H^lS{BsTSWx!zYoJt!s0h5#|6^n}bB8YHR^|WEMKJyT|A=l# zzyW03hR4aB;pETQ#tz2RyY8eHUwA>@t2!f83oVK_aXm)nn(drztX70F<2MEl3};l$ z{3DA`#Z%jL`WFLHjJ>qfG@F~?{s$kTBY4b_8jrXpu2$8WxZ$^=v+Ts-x|H6pim3ufzzbUxrhnu?4sL#= zPq3he85Hbe&*8S!A$q7yPz+T#(q2=Xq<#G8fV)({<$4>gS^>i;l%!h~_+*AW*$EUy z!uQ$oF5=to%Tb_bwx%Lf9Izt&spzW~ZJ|n~J#raIdz^p@ST}_5XIZ&MFYPiY#}^j< zf&OgG`e$oG#DmhH1D0qK49p+v1Zc_r3SkJ$G{W*+As@hv4Fgo1{e_p&4b*>og#|$cUA3)dbiJvS60?j zSWKTM@^LO$u)thcAu!oP%fuX~Pn;xm7u*&P$ z6|d*1nUB?DYHAiyu5{qjrHu~R2o&fHL%BQaPCy$TM=RnrrzKoN5Sk=w4_y0w1m z%{PZE`)0}0DJiL{;{YF`LDX#Xmd%HJh{9>MQwAS@{4vd*J^PS;0Zwj7QIV6C02x8% zz7Ri**9|>5c-Zjkh7KFr48~fCZy0gJAc!a?O) z1^}8PYG6hR3<6(Qy3c$Zt!IXGZ97J>hH3Ntu060wF9HtxDEBm3`%;gFrARi09yTVEhfLk6NE|*^RN9xqEqa2fN z3DWo#S&-#TdqoGl7yy5g4RL*ro2gC4P~E!p$)ZIzrv)M;0BlGXK!2c^(a?8gW-S5E zsZxnVO+*AKPK>mH0&qUZW6~z6o4~1W-+r=)E&JwMn+8?^2tFDiQd)MvWOW2Efnd^_ za!@;4;!eD8=KHvIFqUD%tUpM#b|vhj8`TgX7||2fu%x~bsd{IRA?L{N^GnSNx=BE1 zoR^>Pd0lGqhNvlO3Eo}sj?F({=hOKI5RZKI=XfUKG)7-Lg44I>6pBinO|Q>t^TDY6=+e(t5BLSa_sm zWpv`$lcbj5{rAn(0o3Z!D?;?p#xM=c^HH;OlZEb3g)fs1<7uWb-Bv-en7_DF7fD>S z>ZS19z(SqFMpc;fEQ78VFQqV8QBf`c(C{#BhLEsSDqgAryrAVBsB~1ol8D`>o5z40 zb$>=nXBYXXRl3EU5JhdMbVu3%3old(CvOZ%bO65x00In$ibEb9I8b3b zb;9YA7tGJg6LKCbI)3XnB{KBC#A2=Tn-ZOH7z>Pv;bROs-dV9A{XBPSe z{G6EYms$&TT>w7OF|cIG5^CSReFRaF*Y}d;T{(*nl`s-G7H+udW*Rhjhyea2ix-JF0VmtS+Rqgem|H6*!y6VNnH(WqsrS)|y6@8fzRi&myr z6NW@}?p*FJqF5txeDoxPYG`z*C;_6wFV37vfBf^G<=pxmp!2s-O8~BmbN}!My7+<% zqMpY&KxbOl?%idbh-xKNQ36LRp)+z|a}UI8Lv%ckaf{-@Zrw|}y*+Pk>Do1G<}=_{ z1^GHmYHoH8F(~+1aO%$j2yo(%4sb{uOS-_&b>oK+SMivrcA+|BSV?gS)va4kJXo~N;W~q*Pa%JR1pvV9+jr3BO+Si4PX$mAUuxszgxmIeN$NK9J2j}cw#|I*%04> zu;3ZL`yEX<{S1jt;Wt!R0yI8XfuDOp{xue78x&YZ0tN%;rB|h=YsDS!evu4pV zPd!O1SFV(Zg%BxOT@XQZ*f?3_oNEF9vCn{Bg&95g=73pmAOcH1ll~WxAb`PRGR%6D z{nfN40mX%o$UZ*TM|W;ERRwrnoC1-L#ZDo3k{r35xmK-@&^mVRdd8a7tKYHgCzhBHY-(mk zhM^*i)dCP?XJwg%R+WGtfQgx#pWmW;j~=6oiVE$Jho`3>Cq)p80@4j6g25D;`^Fnm zhy;V+++YySlP2P8dUn*@;!q6dkLr+gNlALLOX+56R(U(&}PFQRXkEi;RV zP;}++IH4N1ormqS+rrc}Ga!>59wWlAhytJ|{??5lsjyGAA{~KXWqJVL)xER_U2x%r z(%+B87+@ga!3*FHH6Aw3r`47Sl}vc)9XoZVH|D%9izrBx_Of9`HG9`gzks~a>~@1l z$c_^582f+rt^+=f>UhuYoqBPTY)kG%?!D1lC^o&f>?G>Heu;m=TL+7izZ{K_K&CEC7fO~NK zi6@C8u#AW;Iy8J89p`zuy$e4(O^4hW=8Y;lPbYH=LplZ+1f!-toe zd}206K5a^Y()T#P_hW*;`tmDDL=kLC*ocll;Y111ww0UNz{KeDzgO~P`Pa=i(zf4NyY_C1;Bmx{09D&z3tInq>3u6-1 zD00;t1Q5Vq08o7Y8E5^9y|5!>1D4P%cmY=3zZ0&@-;#iUsm#DQYjr^!KNJXGcz&8P z&?ukuK%RtfP(U)3)^;MWGhO*^W#T*?kQ!4 zP;s=KNX%Ktcq4iM0(uZ7uu}uZ*r)OSlTrsEwL)7_7jrEq#|2lWV92oHN51y*OPA;p zM3FP*_jx5n#m=hgYJX#k=xuaB0D00prD7ID2l%Mn{QQEB6Sm*sD1@Yvq63-u0+g9Z zm@3ME3;6PjFN)TDI68m}f7H=O3o)s!L58B?xJ*KRjGETTr<_9PoqMi4hmFBw1NI?%bq_C%(@7N(Y4YQzaryl;03n<7z>FH7 z{?5Q-Is{V~2*9v{6M$ndEl7<5AUx_l_ugBCYM|9Gjad+K)?xji90;OQ+S^QLP{U&; zT?pAg!&3)|=ANT$i%)&a|ewT2(_hszoz;GC-FA zA!>kv2Uhy%bsmg6G(iyVw>|Qf&O2Q?K_2TA5>hXiKf5we0a!uwXa4;8(rW_bx#i1O zNZJNo7(k||((!!9b;5q2UW;k*9+jdp#~jfq4hS!u_g#$kW59fN*Qk`3)@{M$0^hMk zy?luh9MUc#GTduosu>m{Jl}oyoisl?dGcfdSnf6!CBT|I>Ey}u*7WJgQ34(Vq`Ht+ zuqzH6TOL1y(N7f#Nco($X_$juyLKkFnTO4I_nn*h8ZC8|@P`YcKJPDaL_*irY}``$ zjSdKOXC?y%Btp;>Yl;o%U$w`mF{As4Y_8qJD3kY}E+RnbMTk^o!7}!GUk<#>aCG3f z+jTH?_pHh!ISGoGxo1R0125p}rq_XTmfeW@oKX`%M03v`D-QPH=st8lP(9lpXrG-B~{dAshC&-2i;j2JIC?w3YHEp=Y ztBz~2tD!@N(yLnZ3)cZv7Bgx+8d0Et(;f^69$gg=2%AVv&6+urmM&eYywOmvg=~O< zy5gwAP?IdCFsdp<9>Wy?&Rwd)s6(t z@5#p>qk|4QNcKq?qirclz`zg@fE^gXr-~8)RL-0+L!t=SpWIAFKSN3&q5Lou9WZ|l z33ueEkrjRWS55qA_N+Vj`oLZ{kuE_jEiM5d*r@TTjoSVg8)1QJV3Lq7a2z*p^w_b- z_UYX#q0F$QR6r_S0cwFyfD8BfYp;l>XP1ze=)eI79wfT#l80_9(ScBeVCq8;ilN8E zg7Ai~ODu1?@doymzA^lc=A5wO(g`P?Bm_KD3yY>G-?Nu@&yu)mHS1@A1bio>TA`T~ zmwgwfYZkF#=Qn_TkEl{R-ndPA2jO(6NB;GiYw40HzZaD{BjYO(4$Jr_bk7Tw;ZaC+ zk3vj+0}KrN{Ws^FP4mC`M!-Om?gH3|md8FC#JF@zuN(mbO*%So<>EM9w=^!O8YPQ{ z$c8cR(xoe1_1CNEw9|h{xjDIk2V&9)u2n*~wUl?IQWM1aOxS+A;JQfYov$m1giW5} zR}AF|1f@KTn<0S0(4sQH&dF}bu^7o^sTx74rUqt)8E!Nk;%46K3KLv2q|#7|3wdY= zlubVMRK9k9rQ7bflPk3}uXE=v zBgT!NuoD)Z&Far&>{F!zh$v&3A$}Vu9|~&N48kEH2%CW2-PD$%1Nz(~Rlu7Rh;is@ zh^hf$uk*RWkV=!8g$wDQH{GPh&UnZo`qCtu;lYO-Dx02ox%~bD_S_#`9v88hJa;{I zozM*+10=1dR(Ya#kQa@J2L~i>8$@i>^XAPJ4#dqj-Y5-7V4O|+Ub1>$7+}+y&B{&} zAbRr7+i%f@=buL_SFQ}k4R>^a1kYhgMTCA=5e+yGV5WmFaLk1nqen8&~Lx+?u&w*atqC z@qR*{b$twulcJ70p{Ijx5|#F@bshrZp^h5hhUmq<`|d|q{^c)ph(H^PD;B$gd5!wLTs<7M24g25j zd;EwUlI?5PDE0^EU? zkS|ALiZCF+h2Cf4Bq5H~x25QSCeoQ++30hQ(3c6jOGN=X_| z(pmUEq%zQp;2+(iba)3>N(dbtZoQbn0JI5;U6i-F0jUwW=);aUg08;yZ;b3!OYa=r zsL1Xy&=wlVnB&KI_UzS*diU|!@ex7lpfPx&Y4mhF6Ar!KjXcooViOV)S)` zFTiojyl9F4#9ThSolETm=&C3IjNY6%b41-WcN>fnn26y|kNa6LC+!=Au~5C{Y4Wn) zLPQ{yp-&kRr}TvR{#8}Zun{8;*OB+A0R?!isHm_-LhcU&2nzBGBs6LR0zLt^u(-H# z?D+8qmY0_$kO|YFsTN;P)8-f(0OW^Xdg1w`Zic3;EhpB zM5`Hm7%+fRz*?TdBiQx7u}4Je=%K&|!6X3#3shMl!ox5aCa;X~KJD~h&~GpPol2YO zW+Bm#!r)dL6-Z%t4H*(Z6Q!R31cuMi#OIH8&Z6w-qsN0QYL9VU8jG<(spsM)OXM?t zE2BKE1qZ1bIVE*{OaT~jw6dk?7`pewiFCtFHwz~LnhIu}00cn&@Q;gB>uc9ZUMrjT z?j)>9O0iZ!E*!vUX0H;LA3MRi!8t$r=pzzs-BzOn=p!;>)ToqEf)79ZP(YIqPD9>3 zwH64Z5#ckBaZNgP>_B73jo-Jlw6v$E>{m0nFq%V!1%+E4Akd+UL^5GhQ>=HNzI%)q zF`~lsPfwK+AZme2kRgg-1|89X*|TOzZ~8Eq5Fv9A=f;d3+vcJJo+cAQxBt!f>pOd9=2%iPrM5fM3-_FHWcX@4HXLg-qBNhRL)dj+w}T-s~i0#ox7-zxNMQE~N$EeJ2LIfzKDOfe^PH zgMjP0N2wxL5#*vent?O{6bq3%7X5zRTnD!cF1(0Nh0>V`o2N(-v?VE6+rZ*4h>Iw8Mr3MJc%SKjK{)*pJa2&=0}LXDlc1Z= zKwHr?w+(%|#~Gsw`dBc(h7BLqv2XvXeRSF& zYSIR{Z_Kp8MgaskU=YJ}bimOFCd!K{Z^Wq4hhqVyBonq&Wsqh10C$A;UV8C`q{-^* z_O$3BFP=ynn#@5t6rbN0Uwkf=1u$+BLg$HG?>Y3VZc*B=lS_5{7%X?Z2E+Qu)TzQZ zut5Pf>ay~3I`Zga0>PYI%_W$&%A?Qf440tw0z^T`O=}iR4ge0Y5aE^LFIc~S{?p}j;_*MDKmL9Sz5DLF za_&-=s6BTO1e^F@x|-y#@nFom{avM*l@* zKzBC;ureX?OD>%v`UU3S;S|Bv9u;WG*kYUq3>YX{_(oFz;|77LWijO~gP1yiCr^wL zc?5{kgxS}d>)5k>U&N#wwBg6`gN6Tx%P*G>j&L{(07Mz;eJkT4SzWLd@Ch1p^$Z$$ znJ9s$tF<0s2Lo$vTZ|Imn(n*b{s`C09ukfcy#L;NqHkeJll?Slf|j@ieio4gtgmj} zDrw~CF^7R%=qqxeL9c*BC`07Bnb$f%$|c)mZoDF-kZ zIJqK1opT&veIrVM4I7@#t+)Iuf#m7vJ_ittsTwdql^;T*amU4KQT0s{@Yk^rIL8~D5* zU9G`@tC|zxGx+W)fA}Nqf8aq1Kxt31Eu{!ry0pf-hg>vTHJh{n<_z0Kn%AIs1ejrH zFYQobnH8#D#L%Qr5!}@4C!DKI@`6K>-v;F6=zbKaOhAgrkfkL>-ZvzN7JPt5INC7ya5T=NV~BWIfTK$pSwor?jBLPl0nS@B`$U39T$D?YnozI%ispU0N@7K8M*~H zUJwP54mkOQ6X=G2TrZ`Brpylu`IdkEQ&K3HD*y`kZ8Wy|eb=Z6>D23?KnQp$pEE+h zg^mIP7%Rg;xMa!{nzZk}5_vH>=WPKDB!t(sSt;ZVYv8~^GB$xcwy$J=u^}MN3B|&E zoqiD@3q{dIiCVO2s_QEs2NHOL0rjpxGFx@1tdEf+N6|@>C(GU=kr7lL z@LE9`;%jTYts+W*`97R4%x*8Gb3o_L<>~ttq>B<{5k0Vlh_I==_wGBwoVRZVPH-*tj z*h4IpN=Yec&PiN1{E3<8bOnoNML10w0oNRB1x(IJ;dVM93e)aQ5@j}aYD9|N9Q#hm*Uwie{pv83%CD;bI1V|(H>fM|6-G6_%w)PFz z8D-obygwr-K}<_5%r^3!0Zd>HcIwoL*rx8w&Rk~@_Jgzm+ul6g@8t&v1n6q0p-FSP zps6Wd(XHEr;Uh*=<>~UaOw|HO3zjlBIVm-IMx@~M3RMyo5DfG4>GRJ%qbDAFOfhDyC=SL9n(!tRjtv1(f@fC6 zX+a~UE<+4?{n^I{GDkIII(mRR;~F}&#G$`cMCsPb2%X&Cr5-uTv#Djv15}TQ0gMbb zW`uL``0>a7Ed<2dZn;ItGi#Y!)L`$%K>H34u88DmdZLI5D+eKD(QMW1v~QGsY1nl%}bCF#S#Yh~s-U$hDGw}vPI z4-Z7QcDAAfCav@ELk~$Qvlm1OeA-reAp#U4ZGe3w%%Q;8y#Cs&ieq3Y5(c0kO%xy# zsXiU~FfM&Sa%kxAVcom+=($r&dD%hQ0JoBjKrVDQbR$5h!VjejfLI0(8FparKE0C2 zLfIJltOid{R%|G5zVUhzsR9Goxl0#1=%9n!L}fv`ur1CL>S_gw)G4VEwvY4;ukafd z#iUdavjpH^XEu5u^C^O%N-e-RKJ?%N^!<0=Nhs8OHx|OgiIb!hu}Rk_<9ipPul!0c zX_MP%03gFB@E70!h8t0k{%onw?C8>M3=9xGK-2&W6TKJKHL5nph#Z)70?t>d%|*lm z!sdpLoY*m<)-$O-3s`AaFc?_Sq)3$DDZnGd_n~F+|NZp1v|ykuRT8vj9%76uDk>!J zD&00Uv2ZD0uq82-Ho#bd&F=Zlp9N@#u7soY;Wt$@P5xSHo|5+AYlnyuv^g%m=t7!& z(us89&yJ%Lk3U|(&DpG~5J>V1<7gvrP zHR?wl+P6>A9!PkcE~L^zn!vZngjlfibr1A}{10kL_t}T~^zEC(5^W0`aA3Ik+^`uP zdf4G&utZcPH&65fo?PM4YpXqp4oC+;zEAENkp?{=4`K7dxFPg4b?QTkF{|T=SomFe zgP*wXzQOyT%@1$+$yFY$jw$20kH0-;b8|vN@8EHJqt>TF#}AA?fajhJynb=U8A1NL zEeQ>+?>r2e3-Opj3A9I#o)x~1&Vz>x?wpeoOh}&;Xt%a6qK|R4X=4uT{L8ts+XmAm*6%u2d7nwb&Po z%*>fHgGj6w68viGQ36B;&^dF^kReIn74u={2Qz5d(xuIPIjodHi;)653ebYhGmglh zK?B?M>eFX;oi<32GDchE9|RCMDtBhm1(sZ~6CE;i*!~DL$Kzi5@Cea*r3uXEuwWrk z{LzQAQgpR$Pb2S1K}Ia4ka{OE!1= zy@AT1pZFe+Qm7!NxSQAOb<_YYX;0*h?Uu?2UCQS>k_UkORt85Ng99Z%)P>(Ox(t}5YsJtbe+-V&h3B6y`W+(a8v+H$ zIiWcibnpYkM&0P?^%`HmYHQZUro5+Gr$J}*m@WaX zGup&Mv@INM#y$W-_lz0ut0;9ArH2_siduNy^Ws!lSwTaG58t2XSH6`xa8%l$V1uNL z*ZY&ws#b|I1knKu96}kxM~v91q%>K3fHnXCgewm)_^2$X)_vF$FJMeaU%K;R+YZ-i z(G)1{q4^3L>OjIdPj_Skx#{kuahhMRnhU|$Rpv4%C~q!9MB1USu!yET`z(F-*{6Zn zhG{%=zySvYp(u4KMCikh4Gxk$C_t_gtzcrDAEN@L37yuL5FQGH1L>W?umAaqKhZP){jXFs83jLc9{4wM&BetfK?M}n+-H397=!2!I89Q5 zu@s)YuQ&5!+Nma0c9h@)_JrSfU2zHGsZ?j%a+HAQ2%@EBfZ-O$2y=Ju-h=ksYwtE49Wa}asf!j87yq4n%Bj+M z4q-h*FkHl-_Rb}7%GE1=9lL9Xc8o}0fks`1i0^_&^zcJdRZiF#RvypcBSuPd7mO!1 zMpP;w4e`t>k8&tW7v4|tJ}_~VbHhXQ^R-Yz7z%Kf1`JT@c1ECS6`%XZJil^(fDnP7CPd(8cyB!) z?>Jr*knnCuiV{2!v>^|x&$i_o#sFp5yY0GrQVAlQhq+&UC90buRFno3WC94;L<-Dn zm{(O*RRw4Z5KbH5UQ}4P-b-n{009oDAip3fUBJ)h3?4dkQblFg07bRb)zC(l*?<9G zd#R`?hu};SnUIavo_p;TbnR=)V88|i*qjjJA2w_l9e(7I&25ZxRD+@?+57#l)(=|v zqS4Hc%OfISggMnHQG!Bx@rCDQv$KH~yaUwSn;aGM@y&xMo|NZ9*Pr{|};xJ~IJCJccZMD>Ms5@WpAD89Q9li4Dpbk0I;6{XyY9a-zR;-}w{&uabnXsZEytgsq z#>tv8a|OHB2X&h}Qt2l@^0WUW*7Py$B0(RN<|x4j2^9x{K0_M^2IkxjKJ<_zC)8BS zfQTANMJ~+tF;Qx;K*>_Z0Nz7}4WG!rSEvC&kTyW{etpvh>-8yBU69z>P^Ak>dk-Bp ze7ln3P`ZFxS#H<@NWjTLd%&oo*%u9y_JD&9ZqvF0snQ3A^^P$)_Sm0@pawQ9Lwc%UqY{b~OWE)6KqQ3CdYOqAf?k3OP2K79@FJv;5RlYlHlV8Ez`QU11(=&elT zLTCLpF#9QdH4He6e!e#9-?3$RkFEJrH6Go~pyVH`Ji3Mr`c=z4x|081y^^0}0CWd? z{Qq9#(<=;wK5kI;@cE9_0ZxO87x;VL<^e&q0*t?_C7e$<@g(YBH9$7K$p1)$885FH z52We3bggIx1dfUdp!^Vkt2XW%22@ZETBx-PXcLdAw2Lh+YThjM@73`!HL(X@=S9fL z%Oxj2hwAxycgT;@pStJM;hpjr6hy@+!aGF&i|KE^NiRJAoU8@U5-h?wjUGKF(5*0f z44?7*tMN8sH@Wq^PT8(RT&oEMDoPOM5BKr=P!xVNekn2@}d}>#gC^f^XOVO{p$BtgMtd6KG`+vsU zaW?jGX_;jS>G$ayR1b(Ox1%acUaoVgeIbLvh#Sm994p+4^Sk8Gn35cdxe=NF_#Vvv zsSiCwH8r&f8+cq3al?8HXpOw6NtIu2DMZ4SGJCiVh!Pks0eDK-A7;&*Dg8ilwy{o# zid@)%ChfPM$d%hS%%#PP7t^Poe4LV8xL%qB83=}$)BXDO%kR~@&u%f*0kJu4;H-bz zpw)mtbj$OD5MK}>-~-GVIB4)*71}#UmkLN{^wYg3+(imV?BkC<)MXygq&&~Qe6g_L zw-p9#xX-(Y?(o9h|9}HPJP}}o4HrPFi8tiCm&Ik1Gf{#`9bDlOG-)mYz5{A)|9SEW zF@&}##*g;eTgarO(>5@yGip7W*O02tdi^#A6W;%vzw>YG?N4SSe%hiqUCWPOaV`zwIUr^z$9f%z~33C6>+tC@cC!gdh%PjIyzts z#mSRTQKe|6)14L{`d_LbGcbkWg?>eNoDd-}f>P>jibH_48a1LWme;;9kIOtZIsOsC zhf%G-u`ckg8`lthA9Ip=58!waMLMG_N(E?Y1pN-(^b5^@X3m@;Yr$S8ojR3K?>>DJ z8a*L8h4RbIMJ&uz(c!1gtR#EH{M@*p;(#P=V)j);3Bcpp);b|#Z-ro6yLRo9&KXrJ z@4fR*G7uojnkV3A!7(u4q;u!aD23b$U4<>@TvGXkNE@ujT52^Q5aF97F`_sXmy~oH zGIZ$n#l=M_I~#^m0n|cTAYGII-~H~}?<8#;M(cSmHd>oQ=wwUWlua2T{+5=OilUzH zD{>d21PJXHHM-D&rO>~-+%vo5MIUe(5g4JxVe&7cZeNv zdcE4yZIRRLJbuOl*FeA#qddLFr?VHvY4Z1Rx(&^g*jV!nrxO1DlAI`&*oCcqMXcc3> zmG8xsIkuGd58a4IDH`B8cHAG@Mm{#HCA?1kqZ* z1;gIr^J!8DCT%cy$dIw^+PCkMBvPcwx|YLzXzw7At zUv9;(8{E!=RP{LV z4(KLFD`W6DLj|c=)1fHerUuL~XuIyZn?w@9myzadqS@ioC+r5F@qJAC4;Z3qZnKCc z?OPfV5R7?Z+8smK2;XA^T)e-3RaF3{%@`OxhRr&Y5<&%jtHdC1%-}s#=0|8$VMNxC zL%sf)mu{omQk1~g{d4x)Z~vt8jfkGhDrpFnNt1wxQnyUb5G_b$Cvgq>_3KyE zy+_X-LTLjRB1J{01Z?H4)vK{kRTm`i2XGSo2MqWT1QR^ZZ_)b?8~n5KjxEVpCI$K40h4 z7knRHsLJ>P#$Kjqfv-aL=)`yv1C;w$F{r?EyfNo9sKl{ivlip8=_?ItVMvp%7hyWu`x3!J&G40DceFs;SB0jNJY3#e&@FN5Y z{fePOhsyhb__wsGf)?ktCg-*EzKwn^R_S3o%?kiHGsdtQ`~h8ZXr~7NAT|eBHbgJ; z_sn1Ynm+&hb14-wDuqt0iRQB}@v8+*G^xa;@r($15UNYh1WGYB-Liq54111a9;XlJ2@|G&&r#L!74 z4t=<;S-lYFj@0c-FTO|zA96@gRpIIsj8APhwFc*Nm)&-ieF(NFVpSdB{AaxX9__K` zo@xw?!Pk*8vN!;#p7*ULNly5&UjL3><5K3!dtlYTfj|1>!`b&xvy6nK4GQw|oz_mZ zRsjMSTWr#PbE{()y$jelmkk;`WQP*=;?jx{Q42D~X^jnNHDBkykgLVwLy66Zks~EcH)!x+s;sD#hyehJqrI@8 zi=Fn|rakkFl!@UOrHw5gR9BwudlsqC=L|+dpVli$Spy<*&W9a-gj(2JNJT-y9PmS3 z=KM5W=duBkAy)s!I!DFiS1B9mVyG((pj#mY(@t^-)({Zw^1w}TGaMVt2W;k-UH&Kf z)mdjsh}ZB%oF=ry_UYf%aeB1c6VQ5QS(J|A_0gUmcaQq?JyDPjz&S2oww(I*=_|lf z00I9k@7$T%cjzEoCy6%kDJ_rtw2CKU7X}&e&Ed27E#Lt^`60jnAlgda;#X@>kLL#Q zLK#)y(0jFfJ$0oK)(D~mh(sFjBi9mqn>HLJ!2Chaj_r5Yk)C+`F)FeE0rnn9z%N?3 zkSZ!GRke*B3BZ1m!r&)8Z)~9k41O3$==~1qQQi|L6c!g(Hq_TIa8+1JoOa$HeO#x; zR+QhjDrHd6obL-F1bk3ldFL)8s;a8GgJIlSF`{hK1wdgK08$PQifG$=3nsIB0Q;=0A?=ZLl_;YC<_l2mxT=HTKR=ogbrF z>i`7!IC66cfD#)E(iQ*%00F5uDptlIrhgieE10J(6OV;2Y4$YA*-Vr za_7kpIp%58o(=Mvcn*y5-53m1M3rHBrbbmq7(pihNz9?4Lx%+^ksm5LkZvB>lCh?R zuK_{n?nb}g+|B3BcLl$(fjMB~A&6&^Ul6oGHXMRF&lhp19LI32n%f`SYj#t}8z)F9 z>p6=}9g(1`ueny#6%qEwJOCiYCR)Vnr$|@h+_5r7OZgCU_?X+1IuE<50J6u9Rrih8 z09ZShcTUh_04Q3f39XweTafCp{fs@{fXelJoD2EUDqTiq-zFBjqD+cTh^ROKaR2nv zPw2U4pOrH7xF#KXAr-^6nx>sNX=2j8fcb^_@X<#f298E1ELiDqTP=L=Rwy(6^w5 z2RkgffIRU&`%K(q?NfgUP+&HC<2~7(+B~boY?!JzFwE*&&!NXx zc|jQzHok*9MyMd-N)sQXMG&`S_!cg6IG?Fo2*v3)LnkItJ@h`C(L758&?s2Oh*gBch0zKR`RMyj0-zZJ1=(!sc3Gdf<>uu|lpv7xCB;(5Tq}_I*4!zu zdUbU(IcpQIUwd6(K4UHqA3mIJxanrvb+_H9mca?eCs*?dWPXwAL$H?7qu0nl(KmUI z=Jgl%;>}~Be+!>S`EN6^Pyz3yywF@{lTW0U5khErV%Z`hu!tWukdtH>8u_#b@`4#F zx+O}Nz%+_N`}7qnS12Q8MTpz-&1e#!XHVD(#r2-`!3WL4c&T^-Eg65xUb6sg$NTi{ zx2ula+p2}wTU#~T+}13n{JcEJP8Vo4V@cJ(fjgu5gXhK8&)}y?9oQ4Qu_;C~XMB*9 zF2JC7@7a^aPnfV(R~Oh9*pQZ_y(VwyP-MhrC8R*Tk*5O%0b(<<#(Xa>DVE&0sh`Fo z&UZX|akWR^*87q-f?VlPo;zcTRI?uwW`gI8E^lVs@g1l$hxd;0#>NWciQFiv7n;ke z{FG^e7Z?ouj=?~auc8x0Ma2>o03i^6e|^q5blpF0pgn%Hr~D?)-xzGuirBSEEW^ed zoB2l!2GEQ~#w#9^jktiPy+__&R zr3+w`cGzJD$ulGTxV1+I3>d&g{C56)`or(1h?FpDyDzx#A^|>j6-AfaV=NS~7)FmR}et7o>w0A{)(3Bv;(?My~Pk(kib?n$tsrK<^ zx8qJb(MvD95QJcJye4|9#-kJCu6RIRXdftysLqR*EQrenl*eyEi6E{g8q5qCHjK_Y z{{k8^bf_Ggh$b|tn|5ODz$70C?Q=1@~0m}2oxYd zgrGB{uz3y5DT6iD)wFQoLQ&QXK<*||Ewp(ywyuOp5gm2(F;cetn{&?*^0KNtiPNeW z%3mECROAw4S=lrVIS~dC<7<=_?eXf;wQHccV4hpLg=931R|n$Y3SJG3)LasohM6MQ zus@@^?bva61zZAQSsrUpo(GY6}Wv>0Js`_>4)M?rMm`~3z?;vH z_S|c$MxqHJV#`bW%T-s>8*GfB=7!!47hiM{-E!M)vaw^5Ih0H+Ob7$&jU5XV`ttis znnX9{#qj&s?H~jVf&bqm2z4Qqf=&*TcKy=SPhm zO&vRxQEhFF3g5F)McQC4-;EryxsE6hUC!Tk>GyHbwFgnFNP_`HK6cq{Hvt16VIgH8 zHSD_X8AinmZRUX|7DCGSyJk%_efh-~(vQG+ygWH+w2lsZ#~|qQMx{ewgqKQ6OK9g^ zb_v3}n?rXX>;c#yz#NAepHJ8Wd;h(61?bG1JC9bZSiwNJ-Xf7YL0x@P)Ip~M)LMy1 z6b5slckey|z93#zRaGU`8bX&390ve9fIzh+IUD{^D&7IW{637V->dT^$_IxGa|%(+ z#~=GQoqF17O1}g12J^>?khHZM%AUuKpCD-i0CT&?0nT^!tXZ_z-upDq=QKv0QW^hL zucZMKxOMN*BhtNl&+Qg3T=;g>N*mx-ke}~o3kb4ygQSF^84MV8!bsnK{dYF`!dG#xWiGMtT79Kn=gcsHiPovV@i_SsZ8;z#%K+bLyR= z$P%;o7^>qkc?Edj_y-LdOnv+I3rfVC&7i5Dz!9+00;U5XK-gV(+(D=P{8ak+#wa(1(C5FT|M8Jc!?i`GaT=#suH}>Z`BN4cGsj z&N}0lbm9re3)qA@CHNPHP-$9Yhf@k(iqK`4Qy`)!esUgqaGvr_&H3YZP!`*$s|{Mi zU)Wgb12bk40p(-Zap#?acHi)>aLAvn^XanhRU`%LNjM0N4G@N5VB9H)cmxfN_}?8E z;O45Ttf2gIHTov#(p-O2-zo9mD$h$)$7_25AI)mtk@ZR8_gkN%fET8o2hc|;=8lD~ zq!yd>+`xFD2g-Nfek;*|xE0|dYMbqmao&i$NxC{!+JJ%lvSrKCH#{QBn3_x1-yob) z5Qnc*N9tGAeArjKr4vs+SvFDA z$H3PcaT1?Ehk-#fgN{3hFwZ{oj2MzAa?Xqbo~!mmg-s?o-}i3k($tlnknv2O5Mmp1 z**mT3-(L(DuEm7ywxicxeKk;a_}5@y47Y^ZOLwzO*QMTIB`kqtyP0Fc^uXipv5caX>ljGgh;aIQ!#A$4SW zw!<6i#v53B-Q{scz3Qf5(ghfo?Y7%q#v>tjya}QMsiFdg*oPZH(%iXoML*%WY0ru{ z6vFx#GegqzG`TXta5e|vNCzf^l)e)()W&G#S-D004mR>2fqy))tp7)6~; z6(sP}dVatmCMw`3qzGE~jo2d)C3tro1j$s71FX+Qy!NI}eTdFE_cwuTvq`PARZRk% z*6w@!h{4dKNj4LWj^=#v1$EhVSJ|u6h5b`S3&LrHbP)oRHo!jEziPlJ2L4^^t@1YHtA`K)Rqy*NTC?`}FB%h*@DI7}gO;3m7uIhVP#9<(JZO zG%r87gVSz%?4D5avo)p)0^^`-=wYyD%$Ok;8D2CD2L56!@Z7Dp{EJ488bzbWj7czJ zl!8y-+LFc*mnKe{M9)9>To97Zjn_-=e_?}5o!D?T#8u7laH%==B^3Yzj!^uYufI-% z*_$>@c5Iv`?=Iif6ccR$G;x7|3pOA`4Q^eg3|`cA1Cb+~%W?(*zrEmmQTH+eLVmj1 zdTOpChk?ZRzym`*ynBxx)T>u-sv0k-=~SezRZ`s_ufaw*wYaiBjn_JUO>JK zd-VWZ;ak1-F8k&>q6!%0@54L*;D6(d*Xg)^{ep0_4GK1uF-g+yunhZ|XZ?yk`}9+Z zm>{}>NR^$+LHZJevR!xEJ&?E#00Ak|9X^L~H3Cg|8T}kE4v^yB9BBjDutAFCN6Y!X z4(F;PcYbzQBI$;Tq)PV9b}e-1i8T&IVk$z1HTj<>o}dE{I*9uBuTpc?O24&5U;w9d z{Dkqc4*>uqv_|Ih{qV!tv@-*OgtS38?4N>9Kv{AKWM%7Wuim|TcPcCIJZ%0q^S*W6 z+#qeBcm(-W6RX)cfIv62vC9o3C^zIyVgl3&Glf1{;t6Dm5Eyb1YC6L*krE~;FQ@V2 z#&7k#3p^eE$2ntC-Fwg7D$LL4Sg)f17@JxK1?|`X0~}oa*S|=)6l8skcN|IO)mp4- z@qXAVM>n=_zWGKrxoAVZkPG42AKD>8wLOo+N;U?^h%FDU8hn7`S}G2igEBvjiEQX+X;~*Spdx$WqWZT z3Q%2LEgrQw{{o$A0D!UQ64D^x41CMyxiqfS2_u?Jh;u;XL_h?e!zKpsoQnuvC!}sBPFTPhY8t4#JUU!}b1^Br}2@S&| z^=VlQjh%e@mY@6{V-QoVc=>232b)POF2>4)&SA)K`)bY{DLH-MzWZpOiIb!kd=+o> zIDVuO+)&deTVXWiJSWHjJG4`gOS9{nbr7(bJ@fR_!chTZAK&j-Ir&X#NbIPZ0R;fN z{rdN(zg}}KUHZF==?lItxkfb;;9Qr+UVOpV%pVXk5?TD58=-GA?Wbjg${3P9*r?lf}bNO81mK!E5ToLTHs#t~|DgdhVj2uBjScI`qvdiC1w>v?nkn~*l( zdm%d*HMKSVMgau6+>k6lfQUr2PrrWKcj(w52zgQpugkQN{l4l{fU{s<;xYfXby6;R$N%E$`P430WESF2h!KLt$@eNQ5RHfnuQ| zIR*X5^_-G!hu}*{r$p5u5${1LcL00As$|wns3YI#V8G&h7*;z7gE!rDBR%xM1Df2Z zls<7>s`r8~T#oj9yc6;FCcL1gRLa;Y%4`$m0vpyVG1#j)(z(0KmbQ4L;50 z!T7jdfdr^k=J+wn(F}3JLjb_4u3k-d-*qQF^`9qc;-r1)sH2aD7>eR;=uJN%6{6>K zDg%YQ^X_~e_pfHal0zTMIFQ@Zw-dw%cwy+Ig2GGD4pWM&6qKrlcy&vE%W5_udnfa>3jD zkX=*$I;lE9p94f3Fo!&SPFNTM0(AI0u0yO|5OT$&_XGqvI^69$p%9g9-YP0$r$vk* zv(I07*FMc@QoEV!G#eX`!X$m50Vr)m{y-|wC+QVFzHh(%mj1wA)Z1^rCE(An+=aj= zUZg`ka$M2W-<$6sMZ)`U(y4$tuay=;j~yZ<{rG=K3msVMig$+wPtzH_z0F_xb)zr9 zCC^ivyctg%BNQMpKe6FM*8*jF(4@dMHS0F6L;X!njY&o?DtZJy_03bHv}e|O6phDJ zbcyfx+srM9R3{4_f5XU7M^UWi1=9OiSibuq#K z18WNg(!38(H;JKcRfK-M_ya2m(!;K*(4k}n$S@!XR~Gmwz(ax*vZNt=QU82{*E^z& zh-Q{(vM{bCDp-VsX|81(?G}o43qDn;=G)k*F1+^HC!dJids2iTL&ZUBQwJ!oMntMl z-@b#`(W_)<7ys~l4!Q|>+H9(lQVAD!90ACLP3kV*qjj4QTAscRhHk7`^tnhaM z|3)XCft}gdb&jAKz@bw9TZo*v7D*9N7*B=2(I974oa9(n@#AXGk>{a3@4&EVqvIN} zB43qwAwmGp3?cJ~_5zIuhtROE!NA7cu)>@H0RtdoYT=~cUT^_l>#v1_f!DxT$D#%U zyc3_q2|N%7w~J8cs3M^?cpGj&%;qm$Ee$`2Pj^f{A`lU(?hv6_j69#OQQ!dMoM)m2 zT5kfp2F$k-)mJr`Qy6DTsSB5a8!2Jc1KbBqX7P?ibMnnrq1xEX~7iGAz= z=Hg^|>l^9#4Nrp~0SwfU<_b`_A4d3Z`qv!$x35-)-$V{UHiq-C z>#n==ypAQ2P}>qPzaW_yd*QyN?CCzr}Pw3w(l1Bt#rM!sn5YIw2+< zdQzjs=+>4l2&+z+o&jHfJx>6E@jh@~>)7BO+rbqv5Dfh3og#GE(ztkT*pv|^K*zS* zd2>GZyz|811e;l?!H6LkVw1+EzTFNx(Cpc>sYvHWefI3%<_-E_R2z6I*EyE0MLExq z>X=e4L^KG;`PEln3Hrxz!h=HD-hu@S6m#8Cn(as%K;)U{9FTPb0WpdDXtx1Qz0S*@NvCU_fc`iTs4L@GYj}b_TK|7z{ z-=DvD5B{xXG4Ka8@lHodV2ry}b`wQE5H2?b81O@2;DZ@6==|TDD*y@xCXgBy0-z)8 z?Nb>5f+GM=vSt$}nvrU#*W-(%+|CRFcj5atj2fP05B^ymXrvVKe3jO5HGveMb?MS2 zbj9VDGccG&r=0q8i54M>fVqqLnUJ4%6gLI`0>DG+V{bm!C)RjW400tj5_mp8^6*p% z)$h0e{;G<`GOp>u{F?$4nBSBN9<7OC3nm#6r|_{ft1~)*ilJ|{ea7VkhhSqSr%VMw zHA)FZ<~)%r;8Uo}WGXPxA~;F?1_0F^3S4@X0pvX1ie0FeA{xkZ<*qyLl!_HY@HOg` zZS5v)(|IqMzz*vBTED^u1P~H~PC*6R%eamPQw9T{Nuz*TNGo*i(ix4H#?77cC1OFn=JoSFhejorEUE8V>aB&npCZF6JORYymp79^{XCp+_2HV z_ujh!BO8B5jvgh3&ycdPeF6}`_+QaIN)!1U#<7w4b>|4(**i+t^@!35Wv<91cZ^cd zaS@z@8XXO&)wx#ut+oDb1dmGiLwy)b?84yUI3AZv*@)i2-+xn=DE)zf(_{uCXSR>f zU&|v@$-eEI6xRe}4E4M77z}`9CQY1l`edDM1$`l3 z@XNYJC0)a|SW*Lt{8i;WQPy+zHwObCI#ecg-UAZ=mn(T-><|^hN1e1Ps<{5O| zwb#&^wQI#|MhR)KY3URX2!&?Z5@k&Yu*fX z?cuUhM-y^oURzoZ=^{#w&EMenv};$I$Oz}dUKwj;6PXN#+|^NmMLgy!9XHS$$RsY5 zzSV)>!kkXV2ADIj5c?IoLCOeo1C9;EogjN|QlM>F(ir>r_S^4}#C0>Oh3FiMJs@RY zgDfPBvw2Ngk25go)u;EEXe3fV7O_yPYPPt^Wt^92p_|(*S8VGKl<|)a!9_=yvn6An zl?H(|<9v;*zWMqaVcmyOB?ftW_HehhNtLSf47pQ;ke`0)DcM|2jvcH}e#t_k!9=&=gO#$gxNVJ4Es?Qr# zZv)9a`au7V(2?R=2ng2&EvVrM;)r1E&>^r;Gt))J*g zsavkp;XuZ^D9ikfUwb062C?{xwe6lVdm1SN)h@G(#3u{)0Mof(wiH&(=b@q`W0 z&Zx{G>S0SgZzwRZ6#{JnA<_dEU3dYlShh?yOT!m{@$Jb2_P2^0Ivm|5Jw?3x!SkZ} z8X<-AGdA4+>YhWtU|`TbqJaS)J5qU=KSn+D-h1w$vww9KO`raT0LNx>rz(p?_dw73 zev}}d!iW%n!1I*m1wa7i@x?q=(o{>gZ;k0{7cnRs*qL#?fPqD7O?M}grn98B(E`{0 zK5Xf88aLdDF@(~UjsgR!A(5W~1o&zFdp}L-p&yP4_?f>C5sxt_RnAjuTdHF;Z{ps& z@1~V2Rs=mX+G=kDoHM#-B5EG4_s2PZ@!97o4Z5E$S{^FD&ITA@e382A)w}mV-jBO# zXE}%xU@f&2p~(mca&mKwC)f-K7y-2J(6L{S9zDAlFR>+KpI{6r%L)UY=*Yc<2Uk41 zPMv7Ph!IsD1c$~Q5R!># zu?v*$K_efbZ&iNC;DS$LUV~~C3nOR3{EdEdF1w|>r|*6!g(=VLu6dsIJ_QmKIH-|m zgW@ZQWNci44>JZBe*glESGZf>`htQ4^)P*Xaa&WphNfI{iS(u@(2)U*8=@XaoBXXJ zN<;YX8ZYsDw}d;c8=@6(08a!k=oY18+DC$hRsvo%sTXO4ujkICDVJU|fLS@4qJ@*qGgf$@VgT0ASD(aI_iqsK?LE z%?TVCJo<>&*cva9?3eA`LnwPWpZPfK-^6h2&lfmH zR0{oofQhOkRB7b2@hAb#4WeFfj>2{cdm{EslSZSKq5uiJ4nJe0Jq#!?$GZ3E(V=6f zvH{@wSrGy!>Z$^P^#%mGRKc;{>+)js_{2wa?b^j@kv~AKAQsvH!cigdujYK2lrF$v z4;VO5^!!^QNNmZ`0aIr9)?07UD=)t!9yUBKk&9*g^^^7yX#~?0^wUJ%vKc1`qx z2ZyppTpNH67y@uQ8nr+Rz(qZ83LmfY14TAJAz>L#V5+~qlP15JA&2Rt_}Xx3HC|g4 z_qB>&bFR2kr!p1#-H18qaNA;h?R9^yQ_^PMB9`l|^Y>ftuS!E*T&f zDYSEc{cC#svBzY78kNQbDdiNvU`sGGCJF`8YI%9*KY5>#@0$|yOnm3aeKgWlx~ z1Qt7JNMyGuPEG~*DWU}_hbDyL7~-42=mv-u6J z1_XI|xlSlG25wN45y&W0yWML3KteJqHAq0J0_tT87c58u1ej#t4+P>fTN`)4L+5LM39HcMFFQu4gR4k(_#Wgrp`Ld0O*aK4QASUk z!dwDJl~jQYi0gbpI;*Lai=(#06y+=J&fV&unktOOeW&l6A5WB-0M z5F5g^LFxi(eU~#B;L9ixl&$5~r1>1f7|dK<5vB9Xqtq^^dj2BKIXYr3tN-*|70<_c7klX-n)bISfk`do-luwRiINK+$9AbmM_AAj(H`(=*_ z_rqvQQG%G}wgJqB`+J~d`|Ejgl|2ibyi~wo{n7~1GLZMPlkcn- zAdm(nIf?oMc+4I^Y0qB0h87hSCJ@(%TGk)%TjCFxu58hWgdAbu!kXroV9;2PZ$)H6 z+k-KH0O3?9TfP7OyW-s=CoefRUhqF_&x^`Yc~#fyRAMMv@V*D-5*^n*B7~wQozDda z;f>c`rD@MTqli3)V3?x$44y+v<(@rz%IBlPBXDRn59>EgszDKc6D5eFcn%e~>NBER z$lv|hXP=2sOGG!p88~o|{Js(D0J!*yE#2yveGVz^o@U7g2~9t-vx;42pc%DMG)Us- ziyUQ402u+PYT5FDIJhdN?kI80*PpNR`~>g-3;>TkU6f&cqd&gYt#IDgU(*f$xL(u< zeeE^DprWtBl+F?A8d2AB(|5Vq`1f^jUpDqIV`j(3KHd z9$89;)*S*xO78FV`x z>iY@A&X%GAsX&9~_<BSpAc$%~61&48LJ$x==+?b^Pg6>g zRdgUjv>*W_m`$G-&YU@4O2|7L9YANrL4yZxb@~H7HH#482BOV9cikz?dyGUej5|VZ zd!UlQRx{H&=)Pspu=yU{&ZUw0YVpAXF#;&45f@otD@12=Gfa3K4M_&DAvap=A}GV( zHK$2=+V~+%Yq0rw&sQ4y8ayBb_B9(k(=-Ddf(iy0aa}cGcm&@zsI)=a1Z0+BNkdA@ z(LD*Kuk-0HcKa_|8K-lXdvwOqIQ@KCoK9U5r_+|k=+tHS>(L8!s&_%XpU4kDyWsqS z{Dhk84T%&4-mq?AjmJ0Nbfbg`u?SU%N@X0+E{llatMj(*4bbxyPXk2GE4oDJ96qmn zmjZ49Hb?~sAhMLX&<qb*`iNq{>;_q|a=C!}&`YV(CDI0XLlEl0>Ui3^Z?iEY8nDob&{`d5b6VlJ zhmYIO*457@THvQHV?gv{Vxh|bPwgG3n1a&)=kBgM?`UrE9;zB?3pbn_)GN_eJQa`N z8{RLo;So?P2!^TN8)b*Od$;bDC8ec3cn$buRT>0#y|sWKS2GfQD_sDR0-taddzJ;^ zoNKm*Kka)h{s0COA|-B!5vhc5s!}pJx8&$RScC{;``Bau7L9b|bdV~57l82miS1Rh z8bBdmcQI_17ggbIJcrjI`1A9Q5l!UrWb;H0_v?A{=>Gfe3%URXo1)Dl&>PmE!GjVz z;qgz*ZNl%X%O2DE`GfOZkx(}IG5prYAAKa($kgHX)144aUjuCNpVu26fs>k`vU=Xkph5SFxK&T!%x8VLK*=jw!c2>O#1bi zXVSCJJ{xqmG-2B&-45GMDcJ3sP1&!XqGBNd1gs}eu-6lAkPAQfkVEAhj5IQOdrV{0 z^G=;2T!u-5>jVh6w9Ij3+_EAd`Ypfah1Z#%`dS!Y)u+Vv$Jvlj(QX`|0L}%*y&l~V zi;ARY$J=kcCD$sZdwTe7D0N^AF8alU%i)cTG4276z={%NW&AUx4=7Q{sB_mY(Xz7g zL7vx4EF>dPl$*02fIzVk6Uu5;1BHrVVEHG6G_n;QN~2C_{~HIqdey45`~l?S^76J0 z{(v7sk4A)O{`~nOJB-auLZiH3pe?XZkt5_P2ojmb7IKk-ZibeZ%Xif0!<*W##1)C- zCadchM2^r_)`aM6G;X|M921%oN!ggz6u^jo7srOA6l3M5`0oha$KIR=M6f_$jOoxY zynw-jha_|j#0a3Vk(U);ATe+cAOLT3Hd}=$Z2V7M9H*;SdGyvgG*e;l#NUmc1f@Aq zD&+}YlAlKqv7xBN*1sr2ES1S}IO@24BaY3Js48TC$dE4#5c$+d(h$NlN z7O%nI<)@JhW!rMU%E${0?K)ognI$7;AiFxQ`(w?7E zZ7>U`KlOK{;5h_piTs}33W<70mDrZ3R!V+5Mt9tPn?wz4C#fyn#72!6A&uPZ`GC2A z-ZZE*GE(WSjuNCJ5~g^qQ^$@V77jDIV74vK%}{BO77*kmk`D~J$f@YoZD?spNg|<; zC~b6rsCDXu7%ZsXfyo}OnZ!aGHEL9X7}6FF8IxG&IH&vWyH|RLV^hQ8KrR-Z(Q)lv z<(WGnAP}rJN3s2^MT?4rANgABD5A9uzG^^jKYJk- zybq)#L@6#_>d_et1fH((MQZ>lgAxV+#cU8T2XRLz8C}*OvV@6_zc>cv{VVmoc2@m+ z@;0_{0D&@uw@$>03Z>dcI8LTKx{XB%nslek zE?v8%)FVK9cE^hPrUM3kw)Qi{doiX(#YO1CIE44~d_OEul#`xV7)|G`g$0R(P?($B zj(?%_#Vw@??18}o`exodCG~2lKEbeo6>f6gTSNHBzCfN9^+CDbQ%^oA z`FrEJAUbd?Z+calP}MAQqI;BCBz^O5-}0z>@Gu?QE<)Gw#*%}4Du_I6BvH=z#v5YubOQ!Rpc-j@KpMsTaGWScBT0ZNRfPPmM>dI z-+nuvMvWe$^ay(N5RHfxD^{pn6(8rqCe`?)2cKKqPa&YHpTbMPtyn_0t@7#aYLC`1 zkSLT$fYRYcdc|m8i06m;cRpSK0T>2Jzi98nFwc=z=@NCMxls~@!S^=!8rvx$`~?tu z_@Re_;}oq3KDk|ab400Vt=IOV14)~rubTLjN1Iat>tobV8G`TlUFV3TS?*mOrh?KdcLtrUW1!+Q!}x ziVlF)@1(dk##{3@@EY5?5-&Xe9DVxfCqYjNT=#rFj~}y_jDzsnIvNN8gAKhk>fROG z6*@E~KT2=bdGr_?(Ao8nQD$$)YochZ8SLU3m|AN9Qvh8=3$Ujlm4A(0TJ1>n%z-nv0VeGNjq73`R7hXuRtC)|~tE(9dwHJpa!T4KXzz_f1 zHU*jbAZQzkHBeDm(Yd6gwEOa9OBcCnVmhj<-<3)}uPIAFkdqU&I~>XvL6C?MUEj`~ z%k#p0m0QCd$P^vG_ae`-04jJX2!*IF0J27oc8iY=gvt!D_+NSXWqS3MSCj}*qsoUi z@$mkHtrp6%YCS785THgUaj~XA`*8`;IU?12@p1(|8nn2}teG<7??v0a#yF?yPUwf-dq1(gaS{?p7f$fQ7$XHQ!FmrI zfI;l+?7-*qN}Y04jMVkRQy-#zCQYK=ypAQUX+>GK_9y}N!{Nh6Byr#{2i8H^EJ6<@_?GhWJf*elur&AnA*^W>KSZ3yC*Z!$3Ww857-B;~i@b0BhH_ae~q(r6plX#hz> zvB5&5Ywg-Kfu|iN4C1@NmPg6(put1vsH2Xiy(dl-5Fr&d00pK2QVLLjG}obr9WLPY z!3Q1?fFT<+&lhyI{QI&v9p5oR6N*&7l9-hWNTA(1&3mXVF`TKK&~E`-IFzL(K#DfW z>7ojVp&Y=Ad?q^u&;mh}01bH1xDJx-mohMlNrWeol`QmD5gF6faELl#PqJ+pUi_&-&~}LG zT$hNc@ZXi5iafZE+R&g>*geM;=~_=h->Sq0=>fFzHPsBgd-nRps6GhT8sb@C0u9BSA+u#>M$NLYu!x?0=D*T8Rqac$HbXFkjY4W0k=IoA3RPyQ1d8l&PpTqF=Xj?f zA!01Ck9Mu77>Htk5T-b%Y={YDWiDV}xk5kUh!11=@4Vlrl&eb;=@IfQ|Iq z`QIi95}8)Dy>xfJts-os%g}IJvSbO}bNAgr8&KJZKr|~5e9|K8Zqf^@ZssdpRTm2?# zu5f_3O#3JaC|Dd*rC1IxWVH7D?z?ZPPoF+QW`tBL^0MdwZUl;!^R9r-hgJECScvJ1 zO>PCRl}i?Rv@`~A;L9d~DgkVgz4`ktxbPwxH-3CjI%el;gS1s3wxq;{(rr~mZg>oR zs##mJLF$Aib%Gm&rrvzxbxD;3C2IWb`xLu!u1)^~1e<2_)m}8NBM69l^ZeYWSQ*O2 z`~pa@a~koNXi*Fi1YgM`Bgz$Y32Cm&a-B3Dx&FTa$e4>*GkE;=^yvZ!&N=rtbl|}U zs}vTgv=?c`LIVm2(JNgV{QE!tk$!W|*+HKR@$LXhcuqZ2?a_ODpoq$07lH9t?Z181 zA=Cg300I6Sf>1dB-aOf=a+NZqsAKxcPQ5r0>Cy#Rn)=pY1nf(D@m}{I8umc}JQ z0Fjo$g2Dg{3?Dw6{(8+dG-~u{(EtxCET+oeV}mr@7dsT(V4Cab^oNb6*Q}}DAaBH6 z>!@yF4JADjg@Mo%JFGOJz}+I+8E*?wgP4vQV7|empsn;?49HIJ7!f7K8!Do7V`Y@C z?i!_w%Oi9eKYwJq2<=%Mp|O0O2J!?4;6+n0^k*n?m1H*}4LQ2vS0WQAf3$QFuztXO zy7ZFY(QUW<8ik&S|5RURZn6qCD%`j(V# z;@wXpUX)tgC=5UVXh7~o>Hv{YDMRFa5TNMYciy4ro|~2+weD}_-4Jou05}kR3)?G1 zJyD&7vU=g^rStS#&?QJ|Z$qy|c|T;ET~Sb2RIVEx1t|k4nuhHhV#`0mP z9q~qAS>Cz4gR8acQyx^R98?PmhIZo}Z2qPrR2UFc4X6^ahnkwTTPzr`jYM4M>cPT? zNDwB!NUJs}5h7^7!<(-S($GvSS~kKu42rxqy2c%N z;6YL&Yxjb{YcR$rnG--js`W8+4T{{vV?k3M$1=*;KOO;I-9x|1;Q| zJwm6!bCZ?lMx+L%vpu2|cGwk84x{;s$3jw5d%y;PZb^p)a zd%#IjRr}-TR`=wY&6!8|@f-*fM+x>a?nr)SwPAkC-QnV#2A47_`mp4hY9vTW|+abY! z$9)02VyDT-kZ9^1{(*qCC@6I_V$*$!Ii=LLH zEZ)y{ShyqgOq!gz_sUZ911lF*qA-47jNcmt;Q8M%pQcWmwlJ3=FmtA*I(CLY-ed~2 zNqPYt2Ggd`*a;~0e43)+q-wIuz|~ezYX>OHCvy;HC7v{3f2!3dcHfp?E&%B0296r9 z_`~JG<2`Iih=zG-f~S24-efjvk8DUca0V#n3?whAj3eN(28isp=OH|dH!l$UwAd&b zQTWA+7t>n#GnM799nQaDi~ zBclc|Xrp;7q!zpRb+mU-2Y`q@-GV`goFif-n4#VX{K9mkewEqywbUt%Lx7DOZJ;{f zd5@JBbdD@CB(7W_27q6m#pCo`{=$)%o^3C9nm7!43?t~T!o4}#J&~P)pRTLZ1#EQN ztne4+0G=nF@B?X$g|JbQDe#yJBd_(hZo6gP@y>VBzWeS==l=fpLMjF}Q#i`9d3)qr z(n@LRZ?QH82M1)mIK2m#tw33$gXcO*39~AiUf*TFt))SJ5PayjFzCjBf?NQRe=lOu zJz7m0;?;vZ2E)UGZ-Ntb&e>E5=7_IfGMh%VKWk6%# z2}+2IP{N%)ea6m|>oUL_*@@I+I|S91{M<)}ftopU=1!129t#)H2q#ebyS)%Zux?Q$ zsXwskO_?G_rZzzVg`t}E;P4=wddkU(*pC=C9?so(K_Ge`@SK4>fUuz>kSh^n{*<&i znbHB;87~{qQfoxH0-MPS-eka(_>p6dk(L;jhHUYAW-;Yly462CQmc~$yrcvu7+b1d zI0K-G1>+$W!YoVnvV!lY0~W5bfG$wbUdkINs9N3TrKSGgB94IYo_pT3J3l{NstatG zRvsF)SKc%$UV0Xh;5{Rn4(?Rag1BC%9TFSXub1>4oR>|#=eW0b-F2sI$T$wh1mgy( zXNbH!+g*kQCjQ)cHKNq7!K_| zhrMF{f(7*H&wPg7fArDP(u?*y?8%d-P7%%nl=dVeW_V&`U8C(6!PGr>-$hqneYF4_ zg-?N>2t?X+OiMP#^!zqQah`8b)TK6F=?3Y75)Vo@$VR|f2Bq)%Mqt&tUSdpfouIy@DC@b}+$U&bN8eP7A@aAMCIF%*W3f5;h7Sv64?oWj}SKy63c zX;AlXO>0YQfhI0gGH}#wi8sL$yko}9Sv#~@1a%{#A!@=&&;e#cyax1TA@#x&9$pp< zOnri92wYklH~;b_m(k5P-6YrnYz~q(1bNVuh$dIfor$RkAS|enQ699DGV3Kufhy|^ zkWGyu-TC@%18Q@Uqmm`K_#$z>92(V3(n{gJq@8*RmH=p>iei1VE^>f=MBebH*_a95a1y_U{N(w&xQ%q(e!7B-#|bf54f( ze90048CG4U&9gO6x6*+N7I1I!c1x5GSFMt4cm`M)DiP556b~uGoe>M!){L1m7x1}s z`9y>GP)G(j%1=&cDeDyXt}I|?5>LW8Ek@rUe3Ik12=X!m&WgcX0)tbY`V*<*?b*x1 zgqhHj!n+Zu0U`zFHUdogVII<#wgdHSWPw9vf^cR)74ZUIPn07L@|^+OgC~x_8@qv; zHdq1|y?|r;vdfkv^2kX|zKP4k-Px{cI~+W+md74jo)}{oYP2CbF{elbk~BTUCv@9j zoPw;BQ9?s$0FgSz4MuuHZ!c}w&?{8Lz4BTgZQ#Gl-|WA={O<<)e)k!?AII3pf5S0l z@gehMS?-|GUbjZufmjh)MLFipv9bc>VJ+~z|9s$q1V4a3!4Y^tJ2>1mozolBZ9_Wg zC4ctu^nExgiw!(q9%Ba@|2ka4TiDUxyHkl%P`6a&*t0G;?>uoB;l$Q0X2%CoC$i&~ zr=V&v10u%c0JB)5loA{{P6X%lMlM?bP%9gNqyO#S=-uyqugL(~@)__tckw*zvvSl~ zJpwA#EYJ-Kn9Y<|LJ#aqhjbcnCt_r`R#DZqRJrZAC@@bh#;`82R=UvkBke49< zW8r#q8u))}hL51pSmZtr*Z}4U+wNH$U`^HL!v+RGpc1GQ&n@G*IFSiYwUH;K=ICn% zd!y6c#0wgAYLdAy4>q(>CQ?TshC-k zsPUbF(sflV6XZ(-4*QvAA=7lEL@`=Pmf(=CNE{Le)&W@Wl8Y{))jZx#jjRp@Nne*uf^n9G?Yzlkeke{g20M^n*2ZI_`-Yox3p>N8#DW z)6)@ zaS85O^NJb$KQcLk$n!Rn41v~hS9kZEsZ*!61~m+t$qbBvBY-1wBaPkD(=GKsWuu559!;q3jcQfE=@i#nGtNLDE8rV)`#X&0;oT8k+GpCNut8w4 zp+0%_Raem)-}ELL;>lSX^;${Ew5(KB@%~~;;W}D8>Qn&qp5#ay&W|fY0Q2FbkX;+m zQZ|ww=P>;mHjXQ52KC>m4B-(N5YeJHv!X;I7#jv^{$O2fRb~@YcIse5!KRDWNHDhn zDGp`44Y8rF1(2{;8`V@DhlI1Uogr672WNR~lJ%I94v=@s$Ce1`lB@oHth} z<9tpAOIc=@epLa1Y?YLXjOCo8>92t5LYZI5hmv)mt0H- zzUCmA5F;bQ6N0chI#c|5b5bInMi_WG!6*)|XN;KIq3~)N&FaYfj z3RV0LN7=MYR_KvOmP*+o$v}CIK?uy0+;3ruQ}pmd51H(Wa|lUEYv$d&`&RATZsqS< z#c%l&p9tDb^X;6^J|?C!fO_|O-VghgYO16rMvkN2Yx^`UXAeOEbj$M!Yv50Ryh1cN zUDc3rGhG%|bS-k~fKL;UA;x~%wCSkfOG|w|8h`SMm03s7 z?LXsj4k*A@nEN|AuqI8OJl~cKqSWtH0>HqDu5@KvP54#*wr3kLy0m5YOaU$DB8I#5@!I%2DSp= zLx{Ze*G-4OpnVS6=dgVa+U$VqCkFwM6M}h=e>j6*IH_0DU1FFG2g2NniP*s%SGNp< z0I~|O(DisXTOPtV)@#B`4ktR@McItwN&JUzgnJtk?&>L=vi@BeNcsORuruphKO_zckz0UQBJ z2Ox99{^W32Pe+{toHMS)m2NVIm+uS6iIP@&51d(61{kYs5C$a1)YaLAPM7T|-+IW; zTvuV%A@HK}IOwkJQ(g`UTDC8Aq=Ei{gh>!-%K7sbNFC618lVLaOmFxcjQD^hKdP5x zCRLIGPzA@+zuFdMHsS~P*xz1Pr(;*w>E|0_I&EW2pI;l({i7yYpT=Iv%*bRp9N-a| z4FDpgL!wy>fqf53E$G$|ZE*`I#Mo?KRZ4w2)u>=z_8xYy-*E)9Y zRz?--ZBQO)^nf$57vJEiRZ2QqkOp76^kI7V;fI3r?5P?!-ziA`#rkb)&q$q$Ff$PFq>v#{QFg+>dz!;hW_M0uaU$I4ylz4AwAVU$@|2820K>XIF3GBB zN+yN!oBlBV+9l>KmYg0h;C|w&R>#Jg<_=qit}8>0#EWjb~ zOLWDc!5|=N-@$^u9FyeG&>%f<|NTj)L0JTn`J1iLZS319r7qX92`o6ica|-IIESg? zMQs=N#Zt?C)+d-4kH|XZ=oo+_u--ayn|gmRw}2A?vtc4a1kiMUKS#X(NHjn4b1f5C zY^DfU2U-UjVFwcbTZc*sdOTkod_g67%&Y?ikn*8jsT!hdLxg(hb=O^6RB3%0WeISt z(00j>sp&N675*$*-(pSLc+e zQ)hv}&>7{XS_&Iv2J$V3m;`QP^&gl7bLVX*7c@~OfIlG;YsyYbC`j=GtkKE4n2@&M=RVOZ7S(FP`2&w!o?RPY-)~gU~(nxpAT)K z9Z?okTDM4H$q?A|I~)Q>VXSPY!K0%(%Z?G^T*^R`i@+tBm*6qrCy19mzPe85_G#(n zfFbT|YZD-kplJCuI1Dh>IPYCsA}bOVCr;2kci)q=gf-h`fCY`(Fu+2QrEE6nX+@JF zEnN+MmQ18`l__D|!VXH?vmU`VcLea*D2_lxYgHuC>gKpDh--`pn73b`l=aVl76J$t zROB6kr)v1z+SWQwOuiTg)tqt9=*$G11BWqCp^k}h7)x==ts3Hvt_{&^JA@h{)|elB zJ)Isn-|e=WFImF8Ljd{pjd>t_s4S3o7D{9Sf|+{ZL#UvHJG0u-(&aS_B!OFDT_iv< z(LSIIWpQh3ThEj!Q>IlamBtu?ampe4Er&?GqRSxPVSr<7H-9^RePVz}@|gjbdPgP$ ziyduz*!W>w0V<3<`b|7G#5n>Fo!$fhn0~=;ICfP`-&t!Ufm>7{Tc8wClbM0c#I&jY z*L6op>z%8kKl;ccX^qQH!08p0s1p{9p)DzpcMl!kLXr`Yg|HpDQd7l(D_4x7?ys}B zAf-xt0u{VWCnx-a^)Y>u$7*#grf%M$+FM)25kPbSFqd<*`m8VwQn^IBBKsmHy4{P7jCMq-a&KnQrefAda4*{0vj1M=Pp$BAu0Z&$_i zWTWhWYBD>Z#w-^!-kZ7vU>F(2)|v?}uy@>k+ii5w;>C$BMEo?peCc~q)FXg&5rP|zIOFKAIhUs|_LfIH7L zno-hPs2VK(7F7hmK=L>(k!aC20OOj|ILEiFshLbkL=Es+D)+BVG~)MmTO#zYw9&Ot)d^w?vfMNqM1Fk^`uxqFHXfy=Cr1!W;K zfbp4DF*4FV4Qa(@36LSUWBA!D!M1P&`mH0diXDMrQkksN=6Yghm}E0-KJXUvMOu7C z^>kF8wfw*QH{Usk$HCU;cgf(nZr$44oHZr3xFqGAky_7pKoNNih8Fu2l1na?LRLu$ zBlCB=#*rm>F?%cfAcIM!4bg$0Pyg+2X!-JGCh!>Nm~3;0fX@}olA*FU?(tf_M@j49 z7-fToE&e)eZ{6P0GpVPmy}ct#P9){b23-aYElnv0f$r$&oYvjb-8xoUslhC5_&ZX` zh|XN3<-ZS`_3YVmCPbPjj~S?2HL{=mb!Af1&%gCTf$bUrbg()HXH@@nkk#W8NKVyJ7jUhO{8kwB10-O0chIi zq)6Eei*=g3g^Cs*%o)Ha&f6H5@Wem+*bXkntZY6F`maEC)-fv$J!C)^QG}p1l**OuE335_u(qSa)`H&Fo_DrnFu$ z=7~~6Vxq_*N}ZN`ns(EYGMX`S#y0OT@E4=Y4qyS_a?34r@kJL2fDi)NtOr-DHlKp}2~GTrkPi{q$s2z&WJOfPA-lsqmupr6_{hSJ1=oe^Eo7mJ#q zBPvSMJgr?#P7^q)Na{=3h8Q zD5HFtoq-2N0czB8e3S=-4U+H4n~pq^pKqqG9sgBY!JCM4#0--mQ8&+a=zHzKmipQu zCHw)7DCSnamv4LfJCbe@%9qFj58UhgMvc@b%C=K@Q-cFD=*!ev7P|I$l>Rap)15<+ zU^<=^K-w~n03ML<0$|XQ3T;a#3@V*iZ=kw<=%EK``Lbmq_YTEEAi?L%nM;cnEu!b` zxhKt>Ia3IRTz1XPpOE@rp~S`iqJ?kOswWe`EB=HM#w5GUly7u$Gy^I`qpH)oKmj`t z``u8w@ZO-M@SP?562P{*@!C9)7tTckyadsP$WN^C#TT4UuYLXNXwN;LpRhpsV=z$# zkTCXWJwyvA_!U}me_zMILvco_oJ|9D|L-fcK8n7FN0q7>)t zWJ>Y67$#-<=0~)P`jwZNNo#w`BJ$hf5xQlF=+PSLk){T|Ibs?(Bs;a3)Z8^#be5>d z-FtxV(4GhR-g<*DBnUQ)(%xuoOA%l!bSYEAQBbExM_mM>^2Nu%o`I4I(*Byh24`Tz zI0G1So|`l@I3!#Z#~$}dI{1)7WD|vY+A?eC#UbG1ui?*cM@Ca&k5&VUbes&hPXHEz zZE@D@*@gH9ylT-HAXT}+5PDa zT@l?hT&H#5BN-T=DI8p(tPFtRfB)bFL(6W*VXQSe5$pzR0vx=&jgw$_!}|1fYv>!Y zF$RqNSPp_ahpz6f89JB1QH`_=a`#4_J>5Ms+S=P1${Gi!(-`fC{(Atd$p6hD^|9G+ zONYR(%f%M_gWl3B|MVxi;ri>v_`@)`G#0!;WK^)Q+Z~6sGL*SOup=#J*)9PC(sP1G z#%Lg8ur5|~-H@p@tIf2f8QccZL0yr|As-JRKZAmmLy0Mosk4_Iqo%1axvP%k!T~Ay zJqs3WpL7~HO@rkln&PskA@?KB6%Nu5*BX(aPX45Gx&{XZY3|&)^!*b~q{H9vhNR{= zXYM=^#d4b`oG?%&3wTqT)|4K#8}Hq`);HDXR~09#D0AK`W26_5PXwU zAa(eb9%US1U26M_*#TWJ_GOAII%D|9+=v31Myx1ceBcz+1YlT`ax%v1+H0<%tFF9K z_TN0lVxpE09H?*R%vp(uoF9P0adVXKo27IR{N1qUc6Ig4q+%ae#=VHrC^g$*U>!Tv z)!j3*t+j2;sDI2>!;%Zbaj{VHNORn1NPKo!j`(eQQz=E|ivt7FjMGj{(DWenas9<` zU~tZeI^DUuNOjoOvMDEr3!~TSO^Ax4A7!I)&7c9r`C|s>0S3nzlJSC`0505{y$n$7 z!YI~lmcWSfm<&Q|RFpqX>XY_bRL&uAC7%>n7}LD%=2=YxooE_7UNcOCE;80C3@pS0 z*9l>uB^>4>GawV2H&5UN060a&u=n2kNG1kO7=)V^E?g*t94;$?4e(*>!8k^@3~h>T5gZRxy-g5Fv+^sY5h3?6eeO~ItL8YL9k$%K%0BNUkS|1wo}RR zut&bSQ%U&%B~G*iD?SHmH4qELsyCT8XxTjr!m zlV9Io`1h@9p?2x4m0i@F$>uN zr2fDj!cW%KIl?r3#p8{DV5HCL<%tea2CJyo$u1_ix%-_ zI+7^AVRG-X%P#V>lYYf_{*yQ8VNHq7!HZfgHFHAJ)Fzk^07I31T{m(>ZPb^a-*rms zu-jEk)+Zm;xhz440&}6JzYXcM9qidh(^0s~2s|n5f|0ZmZte0wXa>X4#JY9aEk$X0 zN}PbY5gHq)8KH{bNvM5sX*3vjR=-qNFFKN6h--enNb?#J`>=>N$GKJWGd5{}L?2teoNl}AHaT91EGGYGX)QM2 zjCf*9(0i|_;yUno2{6uQZ>&pZ=2@Shc}HN-W&~D7srb-D=;CypG|MbqHrcY2>=m)e z5TXPKFzFGKBKo(f75ebB3ca5_^!<4ucUW~y=R6=AcE=re2)94hSR7*Pvp`rEm;kH@ z22wb=b!#vYQ0&q|0bG!m{?|SiSa!Z<_>BB?zYecm|L`H~K&Ugpf1tFwH|W;em9&R~ zy%1x9pyTW_&!DACmnIz<6TJ-)<3HWnvV6$^*@3}7Gku_M1WUu2p~K1+u65Z4jed4n;M zx;`8NPmv7&VgWM zrhLu7iW@mE-ewE3Dty^vX$l|TFE8LwNA?);GuMWQHS@&EmGs+R|GL0SFi|rEv537* zA(v^-1ZKQPVNZ*cYTDTACW3CA^9@jf=74Gv+wyjwt%_$p+3u!@1wWY1Q ztGnBzo*Em^CM<06WR+348XOudWC(DAQ>RYbX3l{7*Jt#*`>wm_qQw^o00^0ZQIDC= z4Jf289s0GaJB?`FS}`R9m8qlQl~yMo;hl%b2J>ehV+#g3T{sP`{@)@4NIY?Eoo-^I z(iM$k@3LR?5splr-=-v5e-3}aF;fhIP^`;qwtcZtO^dve0f3ZUUEK-d)d{R%gM!GB zGlIynU>rmqmI8z(HiLriIAcA3h75TI91G|U?6uck^uD7%AY)(gTaP>k4(Y_bUhsmX z9t$=u9Q($h^t#}jy_~PR#bPKBjlrq8`R1FX@7c)3#tkt9$XH~w?fJRUl21Vuaz;cV z+ERBV2wTfTwBXLo0WHt$jT0y9S^J-zZ+K)J0rFZ1^~5?~%rB(75AUf+wr$7)Opg>t zph}0bb%T7klnLsoil`7*4~*7hfcw zajyfM_k3R4?V)w8LvrjMUcl{zaZwvVhmNJP1V&|;gB+($5Q_lG@`XGe2X`8s1K0{= z3Q&r@gs%}AEP}0o<1~SF4zQ0*>X{T|E5x}&DORayZ1SNdGw>mY0S-qe4_vjS+Cf?N z7v%@tQ6Ssno;s>T90av@I&zC<9e`#fWFyPBJ)9>cN*scz+wA7%7aOt!zdG$S>P2~j zjWNzSNvCVim*WC%R&R39yjF+xNOL^@FGJ6e`O`3x_5 zL?hUAzO$xA_m60aGMjy1Q^N7SKeI|don569W>slXtD;8wLvR)#(llVZB^+%r7zsN& zJCc%tFU1PAFaI?>oa$ky?-0Z!SM|q&AAl3o-qCKIpep_QM?RWnUYumHqk{D!@0Yyf zrTn>$q@2M^k#6G)TUIl;i%~1Ry3q2ci-W=U^~oonr0cG|7S3>i70sWULP9ioQh<%p z$ScF?=~hO##i`!8h~UL9c}cQ42oREA{|BGj5@dg#WiL!R27G2gbPWvJF`no{g!S_x zUWi|iOhAP`$BqE90mvGl4Yih!l)XK5(3YB>-xkR_Pv#BJ&wt$ak5rK~C#;6~kNsfD zC6@@#f#X0yWQ}Yh+Kfj7hNXaQ*PDLNG93nr8sa%Z5+)EZ5)j5zBdfu}_0C@nf0W73YCcKGK!C0S3SSoq_ur2T4y|JU9XJAX-xeP(I za3G#k9UYw=9jb|wZ3f-~bVZp(qZC5qX@>pVoc<&Q6+ft=$$$-ZQjD&4|3f*qrFxDs;xDEs#)d8;-LqBAlF#!bH8mXYS`S<(oyN^!(vlYS`^ z9S?lIB5j_wbyJb?Lxp`4_P;5F+gn_zAdlQvA1O7g-LrXR|z+zkZ_~TirbtkZ9_o8KwK1!#b z{@VmQAh-n{wY}O5UZ$pV&VWv{0ZIo9DzW{yw z>aPgoo;u~&lnH2#lbPE_I1HYtzj|{~5g(X^= zz=ZRFUqkc@@*V*8#?#x5QyTSagN-(A`#p6{8Qp^U^XDhXe*cN_o8?JZyH0~ue2!ob zj8t~_0O0EOp|rE2y{%Q|4951Tx4u<8YHiCnI6e$A>ZQN?zyG7-K5;C4?3j#Bm-F!aCwjM=d;Ai#Y_&5y1TGwT^(VHSlyD zj+({ljQZ*JCY%AxEe90V-ljb`IFylDcLGVST=0vZ|BO~Vwp`}Zh|LZF!*W1JR0I>| zYx#}h&r;rj{A;?fSA?Wj0!rqkWIT@A{goYxp4(~whCt-v!BIMB`gCLlCOV!QfoZ5hJK=fucuLCyOu_$vX}L@ansf!ucz&6-rW|`5Ws> z28m~!EzOuLfdK>kbto2&fN2$Dz}(olt_G9~P&WA5ni?A>V^BBuU4tX=(5Q*t(=vdf zg*z@RWCxt#MCk_|BUr2zt7))aK$1?=Ak8o0r$2#KS({WA#vc*EOJ4d?dd_p6BN-)S zUw>rjQu^TuC(s8!a5VkbH@`tQ-*l7Q8;m;~DQq0j8`uEN0Uj$vngDE7?P8OX37^1T z7F;Ma)3)ORb=bUAZGNr@NBLyKQSRiOQ8K{TM>e`y$dO)ml-@7grw9M}AkCUJiw-^P za5+blC8)^#L)qZAe~~ss=Lldet>?M2BC3e`;KeysLoL zG0I7=yO!At&Oc9R)PduXY!`S9_(=P9m^nYHi$+A}RS9*#*k~#i_5#^~toK3%I^=O} zL^B9qRHy=H3IK!c8f|j~9H1 zdD79**#*%;@<4@!41tf5Pcj7jq4xHUE^us*rwq_kn!|ey8)6*DEMNd#^tCNgJk9`s z?d!L{`AtF$GBP~O8yFPxRFc|t?JrZ<@WB|l2igvu=j8@`&_?32a}14$7C zePHC#9Z=JhNs&3H05#~l+0q@qx+ci_cD4BcQ^LT;$9xzqRVvMlbn7)U?+CG|P^_8j&HUEuucSEdhqHCm@so*X5l7 z%7XdU)V0Ourrk)OaZgCntN;@B$s2FHk$!aIiTtxcv11K@^8|D6kWM3}rM)OKFTt)o z_aKn~FR|zTxn_f!EaiQMd@WZa4XGWvzvoGdTvHa-1xg<;vu%iSjjj#xtTSopBTHrd z#S>HwQM%5$ii(G(Y(7-bGuRZFf^4hY4+^dQZlG}YKP7#a1(LfcH3nf28`VbWE#9(11N(#hhlLQ;Ber2 z5UrzyaGw{xP@;mf&peZk`N&7;jMINB&Lpxjm|q+F`ot0FcMzRYW3K&Zok z!mnGr%A0tjaunpswFU;-3sk^kQ#utvqLRM{Jw4AqPOH4&JLHR#IL)EDoeYTT3zoj#L8Q15n}ZY%t*|x7qd{ zM|_l)TGC7b`tHBPPQmh;sU<$u2QngmA2Pl6&QXCe+kMe!$ zNfG^cdWF6_twKk4N3>^)>GG(1=}u+$VRQo=3~(WtHXz3}fB9vX^Bj02!9w^Bm@A3w zwDZo%&!$wO>A_Jg$92&cYM)A_*c9B)yY9N1dilIx`})_@i(dRxy>-dN zJl*jGe#Zd11cY9g9f4lkVjIyjkB~_RH*t^JO=lzJjQT6eC+rYEBE&{IA^1WzYKMgj zB{Ftpf?IFBg+Bk8PYb&yh|-2E*cqjgvPRC@Gf_uqm?EfbgI8 zq%Vygf~H&e01G&Lo>euz0Cv)*M~dFXmi>ot0{D3pM-uaG%U{2ZN>M%$9SD_0@MK=uKC-a8T-910mi z8I%T)ftx#TULq5}O zQK;s!13K_A1Xxj&fC^RFK3`t=gdiJ%nroiJ2lGIh-(2zZ8f(TMBHiWG?OK<#s)_0 zz7aFY7qw<_1Xu_!f5m>{lps$G3F1m2Bv~xMW1;1o~-y!cjV}_+>hC@K+8r*f@*mEkD??6++m4GbA zz4zQBqt zs4&hs14#!9x)S)O8wX9BYh>{=z_sl2!WT&gQ$IVw$dY~i_~T{1h@J}Xq1dC~44}>R zeLbeNHx3yG4=fl46OOTy2eJd>+W2!)$dpN5kDYR^i99>e;W;%#>C03tH}U%`hNP`ytiZ3-&*PJAt61RJQ?6l@d}d^1xG)fsonS*a z-g3oL&JcKvU#I`(H)4cDfPyF72>*Q^TjaM)u1K%>s+vK_E9(j97Dew(-*(|Woh%n zW+62rUK}un*kiu4wobp?V2oOu8XpJ@qjEvN>8^0J%Giir$Q#x6Y!qXyGk`+MwI0r3 z$6=D?m8e)Qg0(!38*J+#et&4hWFaE2rsc{YIJT4q*dZ8*wJcfI>Pv}n;HnQH=RUkEV{hEz*Sv%{(}J911V3aB<;HfY-rcW*HyYG@00Pj!p4g~w&8=u!$Iigox*0s@FoBg2t#w8*(0G1A8r0g7()p5c z21Wy1ozX>eq(HnLvcGt>U*|E0&a}GG&BH4U`qVXcfTjKZ7^Wr zdf=F}vem^cKYe2?*#gwLQ9G|Ru~XxHS8}8ZO@(&5QP~U<9eViTiJm}|Qvme4S3t%y z(?-%RLjVnhHO{f(=Yzv>iZig|>LPKJ2S(WGK~`YTwunxcS)u=!647M7uKv0K?d3s9 z_zsi@e%G(*7k#m$W4rnNyl2uwd?WrctVKnUY_B-f2@kd?W+zFDMZEZe3+SN-AC!A7 zSpu(21BdJR&)+MF{LOjCbjPqxHeqB5UeKz9VZZ>RtExAc`Se~IVeKNF_T0ZZzJ%mBo?KFSXARAnfCeQTYZ zi?zh6Fpsh=5GrTsm8W;0O5T&77x|yHUxvte3n36;Dc`zI>7n1$W%pFuhKOtl_(v|W z)XffHI8i``zA$>a?kb zgTN~p!0W=spOHY;=IJACF)GzSx&~4IbDs0u4DByk^X_2732pNQRnyMqfNE>ktP#D1 z-FDxdzW4wAx3Kyls>bIeTfq~e%c9snv${sV>aEKrgovW5!f7J>4Yazy2uL38HLlSOK-Ly1Td$apGbkpIg@$!Zrw8B7G6fl(e~ zlx*I{o8Av*Rp@zb24q?D>ZEyKECin}=WyZ|8|yaWGGtfM_m9-2Z2WJ5C$voz-VC(pi zNd|pC;_(fnv?k6O&_RVl<&`YTYW|vZk)D{E`?<7Wt%`Vs#ubb70{}}x4e>>7whhq& zD&Yv6dHU&+*&|oxn*dn?lQC{BjD!(ntA|Sln__nx*kNeGL{X)!(XEQ|8@ON9VUMCk zMQYQ*4NcVCYSMC5{Cf*W*3lMJIxM3ozV5o~==$rglk9*)?IKP7_8vu(lyOf{E`WBq zqSPUnHFK5)jijj_pgM6K3Bw&(gW$Vp%53aam6HU8Mgf2SPP^>P(REK!dxzujFn|9r z|Na8-lk2o>P_NhM_SBcBtZW*EOyIYj>iI|h*7 zT_cpoU`W#fM#R7P{V%-oj$d07rA0)nj;a?M)%!p20g0d^Pq!fN2)Li&bOIRVmlm*0 zp=ki)JjAcBs+;UeA}7t~4B?L&Z+!5dKQ=X@Pfq7Ch@c*)jrmdeu*A%+&d6vN{CGoM zD1}@2cs<}Mz&(MZ#_zg|zk7Mj;Wsqj8%^{0bBB3Z0%V9lIeO_Om(cByMy{sP$jTab zWN`qR6m>;mmSjhVujRfG(X}uLf;>bQRf7d6Bf{KQ$Ll*suNG_RFdz?wrnAeKEa+!Oh zGev}C4@Ic}89QVL9H7>e3v@C!M4JE^GM*PBBcqZwhh+LYyA{0~gguzQI{hA%a~YMq zmb(tShBQ(3Z#YjrC#8LM1S*jz%_Th?ZNY=oG2ubr_oIIB4X^8xpzdreFx{=c6h*5H=Y!*x&+G zQY#NM;fa<(%T~BYsl0J)(@wwr&99S*gQ#uTDuuneU5OeQjLYMr)~H)Uh?bE#bLSc$ zoM#NHk|Ai#fC^*nl?=Sgu271~c7KF1f<^$yYg`nL$QtDeum!?9t~z;Lp};kL$pf~g z1_$5^U;Gk%_VZtm$igic{M>?U0W<|TH2+y|OvkRO(bxFEFgzD=q;eMj`&It^__Zk& zvN2E z8F<%ZC9R${3rEhAYbqPX;4VPh;ro1D10qMOsE3WZQ}o0bV7!ruza9cg-kgAOgF~>u z%Mv&g^C>5vBmf}UTr8GA3;1&??Y;Nja=$8eEO5?$9gdS53a9d=Z3a&O`emdEkyZHH z-)^N9k3A+%iaXYEpZb)P4E(MG7yvjo7^7;*YTQy=o!>SHN?`y6*DB-OJ`>vp8wN4C zeJ#xj4Xi#_sPIvONN$G5a1Z{*2!P5b^%D4H4rc z4m<}bU@wHolVg#c2xLW$+CBe({Rnj#=*?u~vO$_S1dU4urRf9qCe#*=(*6ERe;|OYi{$^^R^s3iseT zu68)T!PpxS<)%U1GI8y?>uw3K(2?KV$*TdK1~V&JT3jIFmo8nJq_E-ayz5=>rvLfL zPo>t45`uFU1aQa(3?4RQd#@Xe=@hn-C#;X@=lt&tLnaD>5@V}v1MTC_@4e4H^s$d0 zD`Vhjck|9b-ZMp=6~rpeOI8*~fRe$ebqK)GAOJ%E7I_1NvjN_Rckssdw#lYM5Ql(B z%40;c0L5SSYH9z2BZJHhz89N?!->j&u4TiI~!|bL%uXD?T3nXXvvlh&^C7CjW@_Km6Zd3 z>C0Y5?|c8zN!LNEB`mt1KllrF)G8U!njbH1em22;Szx1j=JE$Las*m2aY6A+3i#S)nJ7=kZIn?E#aoo<^Ma87_Y0_Y%!wagn(m;d{ui2iMoDQykr=Ydwa zxu6q`k_6IF05lfmj*B$QjpvFk{NDklbKm83J(Ld|RHf9s4WG)XAx5%hktOKInn9Uw z&1xYpQ(gqVt#JfCM@@EbGy%p~C4;A;Wgs>vk`h$4k?+U z_M-p&+0W?X$9_Um;BXA^eqn^fli%OPPFOcvQ#c6nuQf&h!{9hT?=IqV`PR3;lMoR( z=}ccpD3m2YRE#bRC+JhLB1fz1CPKo(9UAJDjdX-*YjFP09$Yl9ZutvlYU80 zKJkP^VNL}Rjt0gTB@q~UaX9!mkJk+VR5}E-!8E+A%{UrvlfrwU*oKW?*|Eg&-gorT zqKJq#vqYE%RZ$f=>Oi zB}srV7w`veB*rJUR7JF71bcpZq#;YpK7x#uJOK8z>HfULl6=$ zLVEVHC704Yci(OLdLdw>4fQRu1Cfo2FrY9}PsX-Q(59fx{Hh^p-{ch`#xXuo~ zwhw>wqjd5qr_$Tr{&sN$kp6c@%sB_`mL;;ywtm7m1L$_pK?l>1{^x(C_ud(^$jc5i z$`IiFQ>@5QO7&~X1i&Yt1+#9)4$fGO2dbUl@S$l&8n|BSw5DTOQASwkSG{KQs)8<* z?+py>?AdeZYv1^WMBi`@(EWid6j}o>VCSJv>!bw{MgS=0_jH=h44|0t8H~q64?RS` z{?%!MiEu51xVGstX7I81P1+SB+j@HSkWPSIxbH9L&Ai)^6gkE@0737%^UfqoKxA50 zKl8cINed~?U&y9-Jdo8mwKo=gM2ENgXCt`rIR?I=2XPR(1y)9;TcGv~&jy4tEj9W(H7HdDV|=B_rl`Sq`4 zolOL?A{Qu@*`&=GY?m7RC<=Nc)j-=}V5pVak|l#=F$D-2$_8(9Ju(7Dt5?(6XPqUH z7$yz8%wZmy{W>C1!W*=WvG@<h)!C4*_y?KCG|#P|NdHj^b7wrz;GhI4=ad;05N{*sgqB@h?&26T!GOxo~V z%V9_-pm<-hZHTUg4)g9qJ&NAiZ5Re&{6ED`z%i2)N4`oTV6?>ok`nu!0?Bu&Oe-OI z8U!kLUMl3-`0vkqKe5H;1X>A|R*Bw$%6wNy#VC7R75c75b%{`o(B2Dl3SkdCtkY<` zU|k{OhD<0xyVqZTeL`uhw;@>(@OZST4#8$RS3ZZJNq5$^I)Rt!*2xa=M1j=pgAY7F z-90@!35x$Z>RI zfzK^iFh9X;2yG|th!Apl6>oeWnHtg0*ToVky^urn4@|c7t9tC2Qc;Ha@Zx^7a2YZq zmjOBK@WbiA*StoYoW0n&+5c6ql5}D>U(;~QFtv@==$w9{m$qtACLFeDOr&Jr#T)dk zqlUx?2=7UJFE9@O^Wz`U?mzvR;1i_8G%`$k?6IemR1opw`%(Kvd+Jr}(R`@eTnpMp z4{Rs82`!JY$r8Xpx%Qf?o0TKkQF#fF*J)@ZfGtq2-Tu%qm)j5XW%u#f(O-=`1 z3u_qopMgULXBZs)j^?;#4P8xVvkR(_{#S+XR`&cZmU9LYK?B+^|2(L~!N)$1av|0x+Q=cFE&(6bmM#B115DaDGZbT=L)18n zruCNgqExUkR!LjWmilIw9l%#V@x&AK`*Y5b=u5H#pu%KN?tqSn7PUo!Bhbn`@gM5K z!<21}gK7Z5Kt8{ni8^!bcBG{3Fh97Xy5KNpxZjiWv|$MhDYykNCP~z-O=Js0_(Ea9 zOWO}&{BOMBhOAD6Eg!g+Cef%+Dk0z5W6wRM2mWIp|2Td2^Pi_re)`h_Mts2w_7)@L zKya>}Jzi(PJ)sWhvM0)l96@{ufWkxAX#RX&h5mO=MBkeo(d?=rSqTLkX)t1#9+Bez z6NmLHYNkCBvfXt{t^EF@KVYbzt1SXJdiQ(YE1VJ798gj~DjwiJkQc?Illy@C49@g- zbsA+$)OQhiV7y@TA-ycr)OJ3>IXL)`Lz1zQaV9NggC{K~0XD9ET2qaB*F6FbiAyiN zM9$GCXTq^Q{E?5+EBD`DoEz6R36SAm*{L|WH_qr_m)u2brE3`!?f~2V`LDqy zNE!Oz^yvbHd_!m2L689r<|v4LU|yWV7{p0SV){N|>Rn)W)ke-W9 ztNPk65?Nub!h0M29thGM7*b_%DtSlAZ+MLQ@8mwoxrCb$;m`t< z`36T;1S|$S1z4+p``az_rz@^VGQiu4(zxuq8kJjfhVm&_6m;C!q(==L>8(UBqDm;U z^=7{r`RoAFNEa?%EU0`zp@TwF(oc$x>@=-oawDRYiubYDrc;xa!&uts9AG440QqyR zEiIWYgJOojE32toq~X%h{QEAu?jqR+XG{@kf{y^H^?lk5DT!k(gmZJxJ$KWik35p# z9Nff{&)O1#7#C~c@qqCGFGSt`J1TU@T8yZBUnSRG*lbBj+3T3UU_Lp)tV$wsWDvrL zpr`XN?rPg9M?(`-h06W>l|uB`&bSNkP}f* z(9I8^{Y-`qM)zKsAdtBjGcyp3{{l8h7qbH@02s{5v*^rPRen-IWmD9FRLVG!A6}LK zQs%sO>}B~r1Pdk_BNgd5*sy;6Hl;LfgkRV!rTHd~5$ibECt9o58af1SlE$05OQpApJ(@@v`LDFN$Qq6b>A z{Q_&4igj~v1LPM@Ex_yG1G}_8f$RjH&yh8d{jUBF6Asa$C-{7JWc#{vt7&I*e_y|D zJ>7KEUk$-Y9A`HUkNMEG;E98Pe_{CTv&H*cQX4ed&H2t2zipt_Dr2Njo$FaBN70ldybCQBufD805}bjB>Qaj@e=y5p%4g;W?aR&081Gz(~oYY~IFHunL^W-m9O7RFm*+Vt1Gtx1IM!Qqkjm(Z zYqk1jyHVlnKvl8>%a$#Z4H%m&qPM9PMMosrfi#^ZJ>uA0V-vl)nmpRqKpf-%h542{ zd{5pPss&PK=4NC+>)7mYY^1*DZMR*9kDwQv2sLB8Ufia{nEGXd>#n^{3{&im<7Eo+ zPdTPFVD9M%hoVi)3KSNE6$1kKj+2;nB1d>)6H+CcK_hPy8G;)IO$r{@jYW^^-gn=9 zX{VibO4=Ni9XB1muT ziH!!?r62w9#AIyI5%Bs$52HzwCMU!~uD$VEdrTZ-c4VA_VGDw)StiK~&OcwMY9o99 z$IYFrjNXbl2-+H(K(H zi?;1B1elLh{s!oz+<=xr7&jOr*MWiKJUnUuNJy1+=gJ0m-*u+|)m&*KKN)>zAmk*J zJ;&n&_)igmVgn3TN2h6k2?+KXiLQWx0StI)D17DLk zPvn(sv^Cr>dhv@zi(zPZNZv2h#+68Dp%)JtJb?>(U}Rs%2K<#g&X86Xo(et&coqJ5 z#T9hcnPit1=$TRpC)j{o4L|nr0R@bJF4p_K^%&=I8rma}4vcd$zJ9%3XX5`{4c~KP zGLD8NB+fV_o-?3}b$wrcIZu>CR7jR&QkfY%lf^8Q`G?vgOU_q=vujx;W1A;UC~YiI zc_2dLL>7*Xj)P9y-s>1zmp=56SzEj(*R}zraaoXS_TOlW_}uA!tz1wz+Q`Lkgdsq^ zVKmlp*i(6mDGo>Ri(c?hO9eK_&2f{0*#X{MFT8NEI0Z)mm`CA*AjBloatS=L~2Q8Q?wGB);>lZ_%|^Uy}er>t4iA_m$wt zoCALPFwc+eDyi(M@H_D5PdVu%y5aiksf~Zed^+NYHzlPJP|?CIe2|@QN*Ef^ zCfk}g0(pyPuO(nyL)PCns_|H#2|dSa^~X3?#u?CAXQtpK=yE3}Z?V&31TrID8)9B% zGGBrSepctz5UpwSX#M5qIBns}A4BEQeF2rif`v~$o6QJOK!sA}(i4f;k?)Orikm9a z#gKaHDsEu4^U@iZ95xlnW6YZHh^2V@VdrE1HeE=D?bAR`HTK?E$NeX|fWeKp) zjf@2UB$?TOh~TDV1RA{qnNVc?8+~5R0#RqE+lHf^k!Hacn`$@&r5!ld=*Z}11%CM1 zffXxO(1q+NN_N0H379wsbHuiwVwmKNF?4uB;}AR^o1S!+;z5)PhC(N5lrf<8Ul7<7 z@DVzEBcqbKj;QSM&j6LVKKDqO(#5hGi2-Q0EO<5Y$_AAxU3<+niMD~C2Hl#EWL&HR zAgy)UlQ|Ym0~eSSovQpS_q&!b2LBv2SqAj^qHYgo5&}UePq;ah$PR;C=)ni+)1N$! zE;#=@D*~ql!4CsF7#kjdLpv0uSvc*)=CIY$%j&>Cr7YzK$l`HA2GtMybxAl4kZ{xBbU--{2 z(u-dFlBDyXYC8{>vUhk!Z(W?uNarKWV&S}$rl16(pZ%{1+aENN6z=iYWBUkMs^;*A z8l6Wz7oS1ghtlr3?gPqXTy$Q`D8GOUnR!iFvY;gH_fqx#_oxKK*G$U4*bbm_xQ9F` zV0L-wY`~TlB)lc5v*m&0{W?)tF30=in--hZ;ZOx;*Rc#Btln!oBjG2gS*d8OlgA!g zPUoL@?p7B*QZ~p91+1<-yD3})HM%`0q3o)wM__xKJoGYC(MA8 zdL~Kau%Wk?28V}ffTJL^8Gdz=qF1%0d<6bEp(X649Dcu}QwdTZ-53H~;;}~U|9jv0 zwis!=_sBQDg}S=BlPp1%|9zBi{*oarT>;4EfL-miw%&=7+OX| z=M3P1Qq|YL@l7cs4ccxAY%0JgpnL+c97l&;G`N}qmTFAC`qDl=3ONh9so=j%$1Zr3 zkk>$Cw;2{V1OkpgXfU)6a|-0gFPL;I0Ed0$!Mrn&viWC?cUmUcG-tpw=2{0i0m__# zEQ~;yHPek(TM;CQ1f$aOPg_06!mH&wX3ahS=5qp<>Ni5HD7)8p9`vATe}B0 z(KO)iM^>e)yF1fqfNSW}X_i2bktIkLK0hC;>5R5SOG}j&@_lhCmM$}J<&}S;&wb|8 zA}EA({s2esFy2Vt12b}XhoT=$iRcw=hCvbM)ozU{@-h{>!QyXkV~1dWeqTQs0-+(x zjCR{?f2SXwc!EUxASpWVH3ua%Ov7Fn(?x?ZEvp-rL9|L8#@{E9pqNAYlHROEVJC9}$)z-_5 zxNh{+oA7KNt59}6MSmxYjmTszLfL?l%)F)?m2rt9knc(;jBO^vud}7}5NeCemhel6iSo^aKCiK+0xqX9vsHOcK##+Y=tkjfzU<6@MAmn@mnA?D2=1A4 zfB(BAOW?B?(iYqkfhp2~pbz_1kSIxSo(?~&awuh5-lvB1!-sRI*-T_(3_)BUlJ>ts zen>S;Tc~k(E-nRLa0qyVb=0n#Ejz#)=8{VO)axjIj9Xf%K%mmJ%nxz9X`qg?GEd4m%_n0%a%ta%&KAZeZ(* zJtqj9{nuS{Ev?_iJ-CTug=`EPFkjQabQ+j$gGy!-FJ~%tzrvv6vnV{c`_kUgDcBA~ z|4wH3sw=OguYBo?hQX}8o%;F>MKk1%C-LBYf&cf(Nrum1z}8Cfx0BdQ`P}-L{-@7m zVyd1|`H$|1cCO-mksNnKK!!c^hs!S)W*LluBUG5hg z&>4KuZ?@z|jyfAWbFlxHxzQ0g=|L(;AqY$Hx;pu@g5(PC=Nlu!5FbXkf)j<@D1QjHM0YuP6M?1Ir1Kn3?_pCfE03+ zAuh@4TI77hC#YLpKXvf=~4rEeUKmz!TIgY0>|kb*A6| zz%U7NBrqHbVUm?HzKT!$?<27wp}}6bUt2`GwV=BtN(iCw{*!+B3wjJ7D9cCSgADO^ zbT#bv%2(1Czx0&9M zG!sCX`iKt6{3abOVU@!`8ZQvIha&lGIY1TgLTQOWc^x83>$J-tz&()9421R=6)Y2! z{oTu1`ssQ_8S%D+`#^=riOMaPYS195#*rOp=7Bx&)$D8w=Lb~`yI41B!A>E$Vmex`}p7Gk&Mjxx0>l|z}oMMA&aovv^Ed*B5_5-Mqjw?MePLHO& zqdjOuklDayw*doiJWe>Hwgm-}dj!pgb9R{6W_K=h|N8x>O%20^5$hmXp zNk2OU1ey|V0aYo~?&1<)UvaMJgag4D(}fEcCQN^(rB2iGx=A-9^DvuF_63%yt8UXk zwc05C@rpkfgJF@i+p=r`Bfb6hJ7h$TM)^FJvEi+#=4ym)UX3QQ$tiaOXp38H`W*TU z-~9U5Bn6M}MP>kw!5~k4^eTUQYDEyq{odZ%&U4~6KJXveQX_lNUNM;i2o*gpPNCWU zfHByO9g1VSjU+X$K?I?!5YfqO%;A8(?d|W7%nrU6Spu9F&if4h(kIbj!N*(6=YB|+ z$(Gba8^I_Xq7CtvKmU2A-s#5DcM1+?rvr4;qZWJ9YMlarE-&DTd!y}c$a4^cELNka zTT=sS!!6|z1inC*U;#?Y0Xfel3=+(}kpHy_&|m@FP&kcZEk9j@8Cb1F@;i#+=AD6j z08;J@=m4f5FF25b2vw$3ki{J6Qsb|hb_Pl|^QLW2Xs>`1fRe!h9cd|b#Ae_iDE8ok z|ICzAx75P`m-`F$4CmO&`;}iZP~&s}3N|t*3<$ha4g1P~YG5-)Iue zep$HVLfPP{L5p4#WqaVsFB!yR7sMn|@apd%C+hC%PC6!p>5mWC@3k%Bnktkc>p`A` zC>d>*jv#1jg9|exNc`M!ryUa zCZI^hTtt=tPAhm0F23kOap+v>K>JPsT9)7x@O43Z;v*mZ4@pf*_6<&fowL7Vr{ER~ zW~5N-U`fH=%~QWsF>V4UK%3#&G`=7%YxT=z0&>@!!3>70TNP^R0%ZtVo_CpbP4X zI%(-sNjo2T?S49GH`HN~3hg-qxq6UeEp#A86%;MVwH#8`x+iUfVHT!L$AZc^O{KKh zB~G8p0}^s$)l}Ue;N-;`?c`P3p{)gd;IdX=fLE_xP3Qgo_eqvOZ=sF@!>bdExLUy> zkN~DVRYKg%ghc)W`^gZ}6e>H?0ygw91Ui&clRExzzaS%rsD~b~(e;wFeuO9jrFEOUnaDbKP~FvyT20wb8rMlAa83odIux*8f|3f!*zCi z_uJo+NFD-3gSI2V2_IcGSeNWm#b!HR%f~^7j)bzB zLZMADKl3u+K;5`J;79X0pkrEm*M-c0*&kFf+u)preAMlqg4Rh8?;kT1c_^<^p`0_| z%5olvP?eb{l`9oAq$t*nq!Ws2h|OdN0!B`7)sl0EEKRNBR990I>bKk?7_F*-6b zFfuY66FmjKtfi-pr!RO>ho@+tfBSJK(NsfRA(jx#vn9*3S;0Z-1w%X)kN! zd}5P_+-yaq1K-xxDj9-!3?|3S-|RKUIii<1DGfBh5ZKQnVnq9)>mtB&P&y6F&4i!V z!*AY~E!(KaNr3jpEBN-Q1m{B)SPwCN7Y~_#D>jtoL<*ajggCFcjXw>xo)Dr}adLM)T>7rU+$hBzzEGQ@<7K#%Y-lH&wK@qU011yQ! zs`h2O2(oO0st8C7X(|*zg*vG&1d;(6mO{#?5$0%}-Ej(5LzgNa=EInRnqk>=DS#1G z8G84v)o0VOi1hwy&CUBv`S02d;&hAaVi34AQU<}Rly zt18>i4nZiu6&{;RM^zK;hMV9dNH^5*P`}Da4ExvGu*;wx*9V4q{ z=MZ%8jVW>wAhPZ2?;Cf9AcP&b>86|LjyrCb)QqF7Y*VJQV60n?jTDr{NXxqp15BLB zlc&)9?dB(rRH;*tk8G3FXPyR+!zSSnN9;yR{kCB3fHo|a*ayWaup9x14j^0v9S1y|A|tX8ckl|kiM>*Q4MiTAot782k!3I(mE(ZV01n+b z|95sGN9{8!ic?^Q|A_g%RIN{!m+h&<;Cq=a zpZ2&MZ_xPJ+l(PQWkrl zlUjTpN1!w1{i3pb5mR6?11{^3f(VrgfCQF;B24SRgEsUaQ$U_TFdWc{Qk8$r|oX{h`!3Px9YJ!qS>zq$5teQPX zpJzRXiY|33ypjZ%{v3$T)!$cmw-1JCN8bJSY_)_p)_DN3{tuU5W>Z+UX0{bF1tEtC zivWG}zE~5C;iC>%SddQDnG~ga8R_q?h>})I$Gxy_-8wP4C=~#t7xU{MLFU z4QujcEs>_HhfE0o#=qU`MnQ%Jzqjj{u47|*8J}!VWHuc*2~YA5OZgr=5recSqP<&; zQ-JIMG6gsnMCx6`3r@zGR&60VyEDtQByt$S;mIgzDD6;&Om1(_c1sI ziZr}5CfKk%kuZi65Xc5l$Pu6bSdhvb0c-e5I~&q>s!-aVib{zYL!WU5^5d1IB@8(O zDv;6lodNAR1Nrx=F`R)cWr)hQEH)|?sL;>4p(B7N4F05Qg=V$3$a6CP+^SRt!jXTV zjrfobLq3LpV8k+mKKbO6w0QC2G)s`n6l{+DZ*XW(GS#5~7hOqXf(e@}&6n~0;5vo| zhlc94QDg`dHR>|(E?nop21CO`!vp!WxN33`#`1QYLjaEH{J`UetXsD})89Yd3;}NT zU3c9{fBnmi;t9G96i0l0r(wuzCPVNDN3A1Xq>d~DXoOv=Coy<|o0j3q_P{+llQGa? zkrD4E`<({!=PyWPl^u)X;~wZy+Z%g8hmBohW7II#*Ia!KEnl`gC zj->6Wl;6j)!;&c-92go#mqG40k~PnR3Ts(bKy5GtqeFfDef@=YjB$1n$z)9Z{YdhZB&;4&Zt~Q|zz^(sIH_d=Br3d$*ceZ!-@_*P4FY)F?w}sM3J4IK1cS zO!3at@+oaa%(XEo?}qxF1`zInSLt^etg4$$-kk|DA1~x3jZWl-pLpVN`tzT! zG)6AZT)5?H1{p6Fs({XTISS)PMos%(X2ZzmDpi`8MHy#q#gWD63{Vma5XS=X&(V`2 zQ)l!J>Th(2F76vOnU<<8&0w>bHG39)^q6Ck@xi!PC7Yq?$81pl$^#Amz9lgbMtu@S z_kHYu?8Sco9SNwo`vkv{U8J}V2A^O`2iK!LkPJ7$^Z2u`Zcn=o(29%A>z@zYPv86Q zcf{e*79kwx%LkxBwV0D{vIFtbm%S`;3Rc5GFqR__{2ra~_!r5FJ&DeoQ4VGWawP&^WQZsW9!#A93M2I!IRjMU40ypx zdF{Hf%df{seV3OC@;ECG9LV!|x^)7kw*VJl_d?Raw!xBuTQEbA zi_+`Eg98J-V^Ro@k=`hC5Tsw5ZvZ0gywid2Tf1iUxCh@k0~mPlRsZ>_tJvY_uz-=e z7!JtJwqnA?UQ1Qri8l|jfmkYOY@MWgu%Yg}%PtxGK-u`{5V;8%y@5Eka>Y=gigh+h z@NTa5Q$PG6)Zam4ob>Sv&OuAJL1f#o(2h5mKzNgK5;y~N*^(vH+uK`YF5C*)0+&gN zE%k1<^^T4B577#?roDBvJL#mIEZNXwGiNfdlajX4{Jj^JLN=nf_P2B?qfqD+@EqHl zX9O^Ae;XljAOOz8I01yS#~ypoo8NL29r30k1r&tWanAogdG7%)OI2l!?^E4_u51l}l1hLk=s6E`a)fQ%FX2I#!6RQK;d^~0C}72JwAFhGC0 z^;Y`Mx4+H2fu=$De&<2il;S2%nnYi|^in$NsH3$Rk`YMiGW?jUw>8-$tBcGtAsrRN z9GAnCL~-c76T5R7V^^GF^4(!)%rXTv~;-) zzo>#7SOGb(i@`uI&vTl8)Z}q0qjQ(uz4u!`qmE^xSu#^in6ENUh&D@rOx{9icC!cV4koiy;AaP-f|z7EVJO$h3_pVn8#Wa3Gmy@MZd(m8QU3Awzvudp zwT(qR7K((&cDLsa*mA+93_{_=iIbSv7XgA6;3o`aDsLG$)~T-4Xr7Xx-G{x4NHI;H zK0QG!9Cnlx?H9@%FY69y(D;Hgxv;C7=FOc;e|hjh_67HAW%5M=1=#QOY13$$I**1! zEQAd4T8~(m8c`x{*TQOiZ?)X*He^K(jG92hB^0z@zOFBz5gDf#gp=>Jq(C&+&aLa~ zXEQ$l2FDzG9A{GA|A7zE%T76kffUm2g8&6aZuAcd4SY=n)!Wse!gea=fT0$Nar2HI z!CD2FfUwesQlj;vu-Bspf<@}z!|ERXM%~PsWAFTC)??Qo1KkohM`S8~^uw#^+TZ*p zK{AXSG96HWYdv+!RJ!Ey%jvMg4vQQTA!`i~f|gZ)f|X6vl9<)A->zIxB){LW5K#x4 z%nV>Mas)^$^b^5T=9)d_5hp}O=0GG!f+D(b`6Y6hV*Fh#L$08N`TGZ)cPG z>@7F{jwf%sa>Q!!6g3bgifqS0{|l?Yl@6iMqN!Q4cBQFPr$&UrR_7QRvZgzrMZ!oW zZb59iaGSF2l<|MGk)drbw5^AxK4x1FBakO`Ks?e@F2r}B;d-O4vnDTw{ii2Pggs%U z3k5$52rRIH6mwa$o~-N$!vnp$ionxK`ubVK&oA}&*DEkE+59aA62z+wPWTw@qs28S zC58&Dg;5X%Y4o5ubND*<^!Cu_F8Dm1c;bl+3J`=R4i578>Q=|OR*jQu)WLss8&>$b z`$3pY5bozcDp2qmP?hKE6CKAabOT3)B%r&eaUf-_RB~i9tYxrgtk4P(h|JNe)Z`B$3Lv=Itv_ zJ<%=$iXTlGrps?qhTFGo-7r?Gw_W*XAXHTntY0JH)~THJMt$WM>Ic*wT;KraaE1R!9fZkoz?@d z15E+~D8O-!jn(MF&wrktdHU%@=RqbYP@jX`_T^Vx$xe(YfpkTnK+<}3F|Sg9W>v#* z3cOXZ$O^bSqAM^C&4TQ}pW`>+X5!j`fR;djqRs*70f9IpAW}#n2?SDXfmBvNw9N`6 z!GO#G1C$E}V&}WqDycmf$WCSZ%)s=q3-8D+C!nVk(3CC(0@Qe)j%-^+X9A=xS>-ST zWf2-f!6^)L`s-CJ7%F{AeZtN6R`x+}IF-$~ZU$W*7Y$M9Y0>&qn7`=tU=K${>h zThBTODu!>{wspPQPm?l~JyIEhyr)5}B-V{(1?3%VJ9NRpq)8J~@5LmxWy_XaF^4QN zp_QJ*$_oS$`*$lubZmEPi{sSlUcH`g$fU%s`a0l%1LB|Cv>Upp(6$*0>AH-?6Km+N zE)3vsua{LxM3%zpUkl?&j$qXECQy*m4k>Fv9$PcR`>{g2@rLUovSs)pwIKSLkA3%x z$(fc9v8b+l`bE1{iBmc_sVCs+4S*1!fV~RT1HWrUg9coeA$2b|s35y~w5fnVleW}D z1_s#Yx=?3XTzg>{NdY`r=03KKpU*w-v-EGD{8UuGN4kGd0Ry}bEBvjYq=rla8H@sO z4o+3T<=wr4)PkP_JuF#SEXtM+pvz&LEMcg$wn-eUN7ZLxw|tV-I8gf?R?j6SF_?Cp zf8KetY}qocSXi$|q^JlK*mF>yo3-0+3<~yBC4krnX3fan+uBu~E`7@$O}W7agD z4+ba;1awzuW>tZJZh(L?RV)a|AvC-Dl|`}xvVC?SDyO2wB-r3%O14g5uhgT2Yt)T1SklCQlSh%)3h3*M*hgd4{v*b15X$1IRjb|l&?H98J(UuLGrhRj8 za47d)>(!MU_y z{rV`AmEaT@w@d~F>Tk1W&!(>^PylkQHGblk&>bsRD^P$kNS81+!lomp^RhuF|8>9- zkjZB!PgEP>$I&@>B4%!`jb`Y1j8@WT;+-jVF7RVjqKq95Zp>o{>j zY;07d%b;B*K8J)jIx>ny;ClbI`*VKa25ZA~jPG?2h~c53b*Oh1B@Jd}0$P&p_@YdV z7}4&2&~v?h!+MrB&LtB%W)$qWIevK8puO%}vt~G>0yDdo1?&c^3 zwku~e9CIkU>yk^)wIR=C$y!k2ZQoV;14)b-`UchF3TGWIK(l zE(RgeSU3Ofro_O1QTPOAj4-g7KAqbrU1H$|b=_Ch^>t6wX;VGwxE}i2fphTbNdbL) zP|({HIQV40q`rm%0wZcAU6%}o0wS-^+KhXl0SLBhA6l3OO`A47#lY_E?V~^6_9y!4 z6<0)mgNYJ|NdN;UsEGRdZtbj=G>nN`6IZMIGP5M2zFYG39O z3q<~g9it$T^LH0OBvzY>%nYPG6Iwl>nS{cO^nuL+FrZhz z>s8Oqlxi2v=;@|uRRaPd!62CwpvtL`B(ee`T`0&>PaID^AF*JLnmCTA#9RU{C#dhg zz5e=WKHQP)DdrQ7W9!!^91ZpKAJU{rlaoN99Vp0>EH1z&z%dLBZC@M29R~S;AP&x9 zl9QpnhKGkXsFixNC>Rh0(i-m1xY(%8R=cYyK!6*wcFh`|oZFQQY-)b(y0vu2?SJOg zv%Q%(_*1$AodPX*BN2?y{xu|HF&&;n_t-C#aph+&Jl3`DUQun{K?3Rro3;?9yTQDk<*BBs)yI;c4)HXFY1qNAHTz)xUC!7O=0i%A2a=^QK1P6Yd z0*q_R_}xZzJl`1#=}Hx7uiO@Li{<-NaDP)(@T7?e3J)%TLAPD8lU7gs%UH<&2B7OF zbS?yJf&@^23|`H&Bi?h*-SmaeUl0)wvp_*$+A8rkWN5ykK*8R7@6AeTUCw?XBMqYA zI*=qY_y8jDl2LFHUW;Fri(!%9*=-49=p!U$xCJI18FSM}8L5J3n<*Df={OHM{D3e& z9g+Y{KBzIkJnI}Rxj2bW9DpF5bai7Cwx98ygz92+-9?n< zhurr-xx^U&lmh?)`T+uPH9}WkMdaL%WCAZ=HVOSpz`dylGQL>08j`DU&lx1MNV8C{QYJzu>?+JT$!CQz?{gS5hV* zaEuQa5R8qEZBi$+UCOX+O=CPQh`88T>Gt;ZrY<@rG6+TltybYqb^w#y{rBC=^00Ol zgkU&RMV6O#7tapZV}sRgNU`@kj^}^_59A5cCH#pNPJCeU`#_;Yl(03islukG=dDxK zfms1KB?Ci7nL2G+%H(K67)z(RDP9CT00P@;Q&+1>T(6}|m#{{DrK|FSnS10R+Q29Z z;+oo$fqrNtJzMu`guoGjzD{H6LT#>vw05*XYepKheymAD3K`)3j+j@&tKY}QF==uF z>{099ox`!P-LPq6#TT+pmtA%#3ufVO2;2z709mK1@%0Zq8eBA_UyIg!hhL3^^t6iT z;4LguoBX~42jHl@L4EcEy#Z%%MokF;K!aEFW{mxD%z#t1y)kvI(0KrjgMQPAz#>fQ zSO8*fyY*JO=)x~j%{Z0%pdj!-0R*A|3IGlONEnR3r1{s1({y?W9MLB=B z@j@-?)f6$j5m|pHzWYglWXYh}XeLVr>Z?{8+qzkO!Oz)GU+*Xwu;N6hfeucXkT7ep z+koY3W=o{a3^-yYxS4jnoQ%>x{BT=yV!{r2mFA^@$aoDyy3y0SV;m zuf2{3t=x&NHifbU27T{;zyXn~pw;$=&i;sr-3YMT)z9l;6+EIrz$OI(MhuBE@_l#n zog%0D>*&5GgOSMW+_AbA0GL1e;ScH2M;>7zEd)-a>c`ZFj#EJEEmgtHp=5$00z5zgN=W0zjs zp2IcK6=k+-W5#_+2Y4A5 zI5Pe|E+ColLd3%}`6}j@>3)3{DymlLPq+S&CBn(*ri^D^WOZ1z4FGl*5Ll5oWO;eJ zS>*Ii{S0yl?%2KpI9tcY#x@JDWMCINnHhpcn36BXWHGdP)8=))kV;!pVT+UVNrhN# zL47Yvi(u8tl_^079~dxqKn>Uh3!di*8^NV%)8gu5CmS+h;hV_yc&(ae1&Oeai4!Ms zy_Hwxo-Tdfv0()%9KM7Wn~@3pZdVAQmq~C5Zo-?g@Ov06NvCvyPhuq}az;M_>#M7J zRf(E<&9vG)_w0Ng{9Tn7H%nl783;m?jq+ldYmVyL*F##MR@56t6$lt^&;|tthUz-- z>Fh$*IFp$JF{wEp&!mx~o6xC4cQUr!D%#knOpibI82#d!pRphi0w{tnG6VaT1ih^% zh?LUoMgkFo6l7;^9n(`dR{aCWh$&EkaeyFul>!B;L)cbJdb5haC?mjtWt6)_bY@_G zbx|gYq;&lV|DNcddIP>@xHjMd)EN{E(rJoBi=nRc}WmjlVIe$*JPYQ2zWVRF}#!x~zKZB8%Cjl;;6u)r5fIn`9 zfBaTJ%ZdJylI64by!`rptUi}zY~+ce##%0>OxoL3rpYQW&QN1@T2GZGC=k#c#2`S1 zvdtZBK^VySZK|ulgL|UTmOAGWoY)o18RPjzuwK4w8Qpou9g&>zcm&+=ystDdEOFdw ze!(1oa(NW@#-U2sPP*8N5^dVNX}y{UwtLpc5)1uY4uNyfky@deKx&&eZCYKc)w%zD zT%^J_NCzlt3WR>V^aXyudethPoU(#%lqE1a{deAehv`bt>3yu&kP6~-PzNIilk2jk zW_d^a0X0a_u7$pIS9-QpDMNBV6=8rZ@gX@AW7ruw}8vXF9t5`RHyI)k$McDg_#(dW4JwRNTi6#|t^*M-`A++|Zx{D-U5zjnGZdB{i1-P-CHA1^uag3Iz1`&{Q=(2cTvdh{%ji=5VFj zGW>E%1@3VON|zag>=agX{)MOqXVH_5fSb*pVlIL;GC+1{=Eds3hObr6{s>~aTQaCO8?69AGfi)ivY|G%LJOz_-ndE<22-r~ zHsHWLjp@^8r0y_o2-um>fp!_1zL60=h8oQscihgCS4<`pbb^{ltD>{PgFQW4*Mda0 zwGe{@`UC7;?FF?~UkE122|};1gh(QMJ{O;Bfb_ZPNl#2rCXhn*7wFX;BpbrGex7yC z*vIRtf<<(iCWC=2!Q5w_q1*m+Yvk+nr;Q zYyTBvp=<@B00fb$;GTVRaXFtrT)VGV!V%%Urc9MDCiJ;&W-2wHPc@fV6I(^`l z`^4jqYxU9&TM%sqblI|{JdY>%acVp8qp`+*sZIi)AJCx=kekgP8y%xf8#k?#tWua9 zP>p&+<^lqP7E+*K)25BftTJ0N*taPgv;hb9#Bo8O%@3g$9}sNax`o!RU6X3rh=767 z9(elcr|7w7pVdS#qf7_|yQ8~;j>v?39i#>X0m($*KlqSCqaOOUFJFa@3@(pxz?Oydb=-V3HAfYvLYgDUJOoL-(URv z=h>!5FL0&+Uk4v@NF-2%UVNO(!iE+Q5!7k^S+)cPiOre+O%7t@Zo$xs6)SjUeeG|4 z9km`oumn%lzG|qxyjx$x#KxTVG59MySp!EvX9qCB;0t3EsX~kmqz!eZK+-DpY<_zP zmc&{q5KyviNQ7bbfk&r166$;UmLBb1hcS$dM&02QTyXwpwZfv|w)ox$E~fyz4h99g z?Z%)0K!$;V+Ank>u2#p1R?V&#lS|M79V9&kEi}k#N1!&s`jj$3$^!y2E8aOkz&9q8 z0KPy$zb&Mg(ro)2`DN#mS%q643`ChnbDu#{?d|TONelpbX-aPo4XB^HNjQ;+Xo1?iw`eH?G=D3lO zVOpu?5kIzJTWD)8+us+=40QT4x9_Vt3o%?~^x!mFX9ya;I8g`^f(ptjY;SX0P5@C# z-@hF=0P;fG*b40=FX$-Oa_oh3YdF$K72{H(Trg(RqE>t05Os5R3H0PxR2mhlMwAMc zI)+Br7baC?2)JC}rs*>>BjnYg-Q&jFD#BSQI3g&a2X;6+kfG9OA6x{Lfr0+mWJzk3 zJZpoTN8rJ}z-&itm<2i1bpuj`{4E&jFIJYoON&6dEFa&V2YSl`5?6Jp~KY;545uk=?^F$iID`G$UkFwqwu=l++UXtiM%D?y0QUo)0^b>G(!*+os+#eb3{oCb-EqxJl={l&fQwEOY4HBi|L!xldV=&c2*+u9kws!i$4vER2WV4E4-LT0=S z8a_y&onwq3hbGVIOv^Rb{EW7!LHvSq37l0a_5nTw+TIX|z-hqwYzws(MA^jKLR#k8 zAtqx?#_z+xo*Bet6g(sdip!QR;5Mnn|3}Jyu^LCuH+8_Q zqE*#o2i|b{>2%1UhtkEDT*4+*=>JDK0{0V2fsiTwv5M|DkLmGJCQAF*%j__V^1-p{ zzW$@>tp=xnK>@cU4$@tB-bw%dsZSNgk39`sb2KdHZ;!{1N7yM1LKI|U)rX?b@;zU;5HyY`F- zoU0%sj*!eaBl5SC#Y2d=DKZu);?D@9?w3sMSJZ01ui8bE`+8{lKp#y}AYh=XfLytx z$%BRgD>KR#?wpjLdFv!IKsoTwClfk3f>y>&FJRdK^Wu@}0i0bjkYM9I)GPMS;V-!F9rl-wOCNdT<~s@eh6XO+a#+; zuCEEwOo8K9;12+-)=)M8NMUjzX|07VVbTUU?}0*X8mVd2oS}7XxdgY|a*HXwG$K)s zotY(YGf4ItLc{;C!w!$+drQXXXnsQ`#L7AX1z9A+3{U{(4BArhYLZcMRM&p>>Q(f> z{rB@K!FC+rLm(ej3}HZ0HYmXLe+ZfbQa}8-wg41I9Ptu*$&p8L8vfup2h$Z_`x@=L z@4n1|L9oRb1Gx)Q)HjZXbTtQDVjhe;`C4EgWI6z$!~n4OwjOP21yHbE?GNXG?LYLF zztAWD?c=m$@!}}(=eZ=}Z#d4&ue^c@wG0Z>_0XIG$?c&(*&Z?wDJR0L>()_7oVZZU zz$ME0U^mPDxHSl%Owp?p2=IY`+ryZ{db5H`_Ol{q%(emo3F4r2DRjg&Li0Ju0rz%S zXhLrfO;rE@FPjChT!7Fy36ab%IQyWK^5eL`K#TA%Jwjv>42YI|#1|3_kXaZ^5W3@_ zW?B$A#;9lE)<67_pIPaV3tP>Jc!oeI#50q!Jyy>U>&U+GwVCCQL?{*=&apT7A zL)*8n4jc^vV!7sKI^Oz0w$X?(1X0OgY;1J%hV>iPq*@PK1^Z6Q2FB@aIvD)k0b*jt z#D&s}@hA`P`lwOhOpfN|y;Kz4qQXI+# zI9{|K{`{JsF`X(H;7!#sl?od=-xV@0MHEe^{48R<%e;fxO+k!% zSHyXs?GfdnkN%&J(4&t&!gku0S?#7oEhqr-^w2{NrOUqZ6}J5buz{hI%@jbu>%WGy z=R!F{GeEQmhto2ILM1*V+GGL>X9Hxhj6gQ&uyqzI$_mI>BAV4T)qh>4 z3@~M&m!=K&(WL%f>aTWjc0f?J_>l{E689u^Eee2v)CG`jNrYKofD%tn+S&BQaaVEp zW9oHMmv%u6ExAy|CUDfSSi+oKv}}O*0mofG=-Lj0NQ1!ThqYPxclvk4Y!$oLjgE|L zbO8Zp2pZ`OaH>G9E`W5O5VR?%jSjD0w{H2ES?#tJ9V+to41_al*IB6xjR^_0+)bM{ zM)iCbnQhv*k^b_R2O~0JXwvd8?dlv)YEmB2;zp7`042qP=FDM46?puCEFz&jHrx!X zysaS-8O{AJkql8n=v8WTZ%ly1x%=u?K6e3R%t(vCJarpGnbMuls@`IEf2Wq72!_b2 zphgZcn&+Q;j&8W_Iu?>E$8E2ju*(yVt8Y^)GTmZc94~HChyZjl|%^G+s+7WI^6m)iPKs|;_gH;YXC6JK= z+36D>`xyQ4kAL9jhsy^^9#Le71W<6;;YZM=>NqixF(?2T5}-haG`Akoe-Ae~(^YnT z20C#=Y8eP*i;_Xc4R5>sG`h$VAu5s$aJR!X^frJst9u}|KrkFBtCsm42TyA5CG`!S;kzT zl?$0%2rip?ZvK4RZ4r+k0tGp9B6FkEd!UWu&*7L~CQq3Xd(pHB>aAppTa^o}{J)Cb zE7W&igCJEd$OZ&fYS(!R)ydb_ty{Zrcw{&;Kv6pd!^Da>!}!Py=v`**n({3u8RMn->t3?uVP27Rx4WdXDEXoj+E3tHOPT2ryr$k>rX+R)b24O9n!}airw$!y;0;|%6 zj)UbZmPZ5oh44A>^#}lNP_wQXS!MP$P`jL0*MZfov2>bjj+NB1p%NZ`=vCOPk|n6x zmQx;Y01XupWpbor*1`tVB97EgHuPUhhNOq>op8d5OeDk&K<2A#UiO-w^O@o%{+$Ev5!S0W0hmWg`U!#CaXeO4><=atf2gI&$(zJpf2XFv-SO`HFgJZh<73si2o24CWP299~pet@L|)x@aOg0Veb-0MMrZKo3>B zDy&a}_cbHNyMJt19S$i2W=EDdN9lbd@x~;W*aaOH31rEHdfq4&tEl3tvb)-8D zMrh%}1w4tm`UChIYP_!K3KQnktT|C=RXZv3)yGmK5F&P$tFh}{Oej1^1*w5Sk3W!c zelneHp)rp`P!ZDj%*#X?4}hR4L_(OT4D=r)nWyglS=49B)M&s7qgk-YSc?j$<{CJ) z*QQ~lZ(%h?Vu!u~L#RWR0D)nJ0t3JN`85eA#GTo3ARI=mJtyqzr7t}uV)=81L|qX` z{?-$uGk>*JAd@Mx)y0HUKSb*xR@C)~XsH1px9F+Aqm6ZTNklpieySOF4?q%R$OWcL z1=kYWz)Je$mz^A~x}!{!T}`O5i}&od`)*NY%BC0XL)a_gaT8>XYftP-nD$fL>%G-8 z@!lT6w$RoP2?9%2$KtX}E}?II;~T61Wpxr21)Hp7BWv*-)Vofj-qKGCfqUUx*y6k zZ^7yTa2Ziu-#*h0hztOi0o1>_8-UeHT}fn_B$rAzEQj8)nrlH}RI7K(A0o`)3|Iu6 z`FsEA2{TYnMj43m^#=S-ix)zTuw!yzMT-?#O#=3PS+bZOee}^nw#b;jU`4)i)v6RA zz}K#7k=fFVpg?AzotFWNsBPbl48ejdTwbf!+h+*yrZB0V!NkJNn>H@qw0U#!Oh5rL zVWM_#`s!hYoK;~_93UE)hfpEAPSrArY)DDTe1{xIDECC(>O!n9Q<~KBd-n>Zp z@dar^bkHpJam0~F^6Hb%A7ume7O?f<(NN0jI}~mD5Xqb1GaT#e#EMaOe3uro!bC7) zfMy-5X7zm+6-)<(jOI!q?E@6gXl3=w6=BTd=rUyilnV|t;!AETsnxef>*38e-%MY) z-~tZTm{1U~*)u`CX?L~n6Dk0X{)#ZE#3$0rMJTmi!Q(PlE|{#b|6^kY^zfMP;lZ&C({?dbPf0WL|NC!?mx^kiSW_` z*6mRyS~G>)j+t{DJ2Y;_`NCX0RcO;ACKsAA8oYksq?;gG6J^eacovo|TbAi^h-Z7& zZnN~Fmb^B@0)|Doi|~x>HCl`}ZQQuX*dE6g7+eM|P%;3sycs534?}fA!Pc!?mn)>P z-PWsH1$)tf20^0Jpue9L3w=NUBFFss&n9~MaZwj7TF5CGTZ;u-ev%qx2S7b8j9U{e zCC+lQ3NXhD#>!nRrjFo$x*iMB{xdq)pHH1gLrb=KhbDzbcgSaLfXt}yz^1JVz` zE4tJQS?GU{n1F;H+8_VuhfxM+M{Gdbk#7Q1tKW0aJ!!xF_TzhvU{f;fhx2XwVP2_5 zwyNKF6s8;13iJX1pul$e{QPJCO&5Ibe0FxUWv^x!#_EnHa|2Lt>MLJKpZok5G?-KGLy4ne zK*8;5jQvpogKlcE`tO(wLOIsU={IJT94L$AC;gSQOw`jwN~ka?hUDbA%*tB_VRz3M z8r|x;f%FG0fEg4D<@J)mT_LH2T7 zwpgaOwSP?LCHO=^k-<3-|HFhr|Lm|xDw_pq!#tK#Epe)G?lkH=VJjyANs9vuQ7pc)HCa{Il zW(wk0(*+663xHrjJyd~HX9!A$KQMcbJy?IBSwMflzbRt|5Rh>r!~&w*8tGV_TjS1G zC#yy$qjom7Sq_3!S}H0*80+YP{()F92`y$JY-{zZ5a$cGy*p|lJL^55qQWmmLi(k8 zl||fHf%F(Gd=UtBsbh=>F5Dwgma%ry&7GJfNDw3q*h2dGm}8ISG(C43FsDS)6ZP!c zq8)fGL4l++uQ?|pijTauDwr6EYl`s|n(WSuAfGs5z2`xyLq`MO4%815oKw zuXiX=aEhbKhJ9j;Lkr~hxBQOI`S(wQog8TuxNPK-0}5XMhBweT=bjt!OmP2@;zoDH z&7&dRr9eTC$YZZ}_)1mk^H>SlL_LwSdKJE-LP{_w4FVFzNLmTVly@YT`B)67s=ELX z{HNIrfC2#JauB--hI#V9Zo)#g00SP-DF_DWMFa!X1`Nm?3hDpk*O=knAgfk4Y@}2UJ@ilxx<$1IY#Isg88vpa z_V+l`ZbRtvyQ^#D)zG+P(4F>+a5DtzJ2)2;CThp5zzm9-(YLpbfcP1;U6d*?Im49a z!5Vt}DQacI18}m6g1fUQhu|y$r;XKh{=xUZ$1GcECcT|4R^+xHBCs5L-0{@g+sA*i zWdpPy!pX6eNm4TaD+esdj8GEh#2k?K_ES52nYtE3CRo;u@Xl@~DCd#Fv@n$5tW01s zTeeFDN{kI7Y7!dpBan)2`}1vd@kJLV!9cCXVBqMAc0TMg_b@fB8etmVmj?{;JHjQG z9dHaVOgdc+fF}DNgj|BF83CjF?!AY#3YIU|DxnRNDair_Z#wJE^zl!8GRoiqNJ0g# zr1o*00tFA(;W}D`GT51^QC_2AMnxea^=9ogq&y9SEKNmWC=D{IA(sFEy2>=zS7q|w z^a%r82AI%qv;ayP05l^aps$XY#yzoesdqFoNgR|eanJz+xrxgxNR`>fNja9qZLEy# zwV`}_;xJLUlPTih|1=n|$1-Tj1`X4BWEVjYDe_x%-35{+^Np~SekP%CmtDEU=4OJ5 z@CLGe&g(D$2M*8U>eZ{3)W*iPn1zY7^DUn9tm~W!2x_&u%<42)y=v9`?L*tMI}P%J ze+%FsJTQQZh1GbsF??`S%1B|(pFcm+yI07E>)W*HudKF+_FFEq4=otK#zjj~NbuR8QP?Ke##bToFTjStYlOicyOuAhyA{FNB z8|M#OX14=^b?i<1rM<=_gYS6N4YH*A=?`Nv3Mkk&fWqs#^>N@{02H7c@$f?r(M>nq z7+-6r>tJV!71{Pf1kZi;-A9)V)HOia0Db*)8#*wzByPw|nnHGH^yYi}He5fnW1d(s zqDks^Z&W{{9jPw!Qw+GqXj|QC+6_yFd<4z%88c@(wa5kooyQ)1lrH@I=c!SvC%^!> z9LKADzpJWKmi5dPuLb~sj9WuN>zjg!d?k@n&-JngA!%>}1Esfg>t_<@hKvY;JhDzt zKJhrWB|iWB^UTw+S_STNiDv{{nYX{=9rS?@{tJ(J{2t|lvLQ$QLZQ=V>)QFTt+qfX zFUl@&XLCy0WG5)g7%ASS<&OzV091jV{QwvM^eX_+PZL-SsLTK%ZUdA_?q{ZXfs#{PfJ-Wubf&i&fa5otS{r23>?yU;rN=hxI)Yv8irf&v+9{0_3>8S zGc`&80{?^%^rhEnfS9&!?V5R;H*bj#C_~0r6wDI17b7ATs>ueeXOoN^ZvwHY!+|)2 zz2MI(^tEo?x+tZI$qeMUS*E8xK`ina%AOuKCel@E1Irtd0Rgs&01FWow87bOK~S(< zV0jj7n`y4C1q8i;p5z15^Mf+dh&raNO_|V?$G@x9?)aKXnTT#KGk@~rDKW>vlmJk7 zw>tP;jCOUP$7i~Yoh=BIPtei-g!)(0^vwV8>Z@tR%9T+n%16gL znjNr%7~dhh?pl=9#j=qczly%caQoAUWwa%{6fhF!0W* zCWtn3=P`dJTv4(@_Wz0T_skWpXx=5}BcsDnw^jwfZ755!;7{Xjt9* zesv!fC@}DekA0M$dh*FwtH2=|a#;lDsa72C|G) zcqCf|r6g%IO{y%GZ1B4f$kp060N!Sa`EG=n%W-{g9X|je)AH0priGP~e2VxpiSMDWuIL|+mtye$mY*uf0Ch64f4{>- zy3b~IHMgK^W~yNi@04r2-0ozv-j9j z>kniQ2t~oJg7!RufbHzpu30lL>y9GE`r(3kjttq+$>_o=~e7)ODmuzakB~zqu*}SxuWe}Vg7B8K z-QCqz%iQQXqdP;oWD@o7tzN6oph=zMcz|-t2BF?kGi{d6D)+SRfKf3M4Au2UAbe*&NDyD1zvSdk&vjk1PH;&Bhdu|wD1#_&)rhnh> zyLKy}_BwA2br27nbHRA#>t>djAS-_PqKlXii#~pI6O0czJD^(q-}WKgz4`WIVA(>M>Usa-zK}z zj<@JB-6LYLdB#BSL!Ez8e^ssiduhf*)c<>FB3b~uQU5Q+X>opO-azQN^M#bwAIQ`6 z&yrepKP$X`cR^WmTsy+8%r52&O1I9*&MW%vJRn=(yZC%_v?cyZN(T1%L)P^0acG*kT_yn>pbhKSKNskfz9TOo zIcw?0d?q|wK=Agrzn#+|t)M=m|^5v^ntyN4%lkXbIKmk##O#6UWja_cm{@m*fK#)8($(;uFeYnYk zfk`S_A9S^COwE3(pVQv9d;s9O93_wilY?B#icw{m6*uVq%i@FZik7kxCZey^6rmp0S4OfLH?&-78C%aS47-x(8Xng$7lmYip)Yb z7Aext`4dk(k*QD!sd=arCbIHgcAyAhklJJt5O3D3UcG7Smd#5`y2BterGNemTAbaO z|GCe7E(Qb$w#X7huL*;8g&r@c1h-*rRI7yr5CZCySXi_@5f^r^efG&zEW{01ym&Ep z8@TO;cvvB=Sy15GCv#oYv@d?)!Y^^VF1SAc6jp}$DfOJ) zFs4DB==5GuGKDUptU>za8*3ry23+HpbAA#FRkrK`FqpqN28FE~Fg7h|I26sTD-YQ$(-@hgfft?HY zEx`>{&xLHhrskrRD_79GdGqw5)EQ@Z22cikcK*Cb^eX}c>a(+F?-7abwagB*Ar!U( z2~3Dr3po|57mo~&tTTTLDYhb@zW%;M%*XSbODe?1#>Q&W>of>KPFT5O`P}W>hguQ~ zJIN9V?`KRfXg$R0DP=IDfXKXgkSbon;2+rVw?z3rc1x%PfkYi}nGHs^*4c4~LbL$bwfp0-U#3FZsW3{K+jvZ&T2qs2@ zPY)EymbCRSPG1fh@?xaBfC*Af(ttl;#s6t6HqXJp2N(b-Xc%D*fB}Fc^xtE}7 zvZ;yhEP|m63eY2al3Ha#cquA#5TvDv7B=;Lqn!x~giL04#{mj>j7AtwL=Ptm;u4TUzW_6-)X?yy~ry_Sl%OBXMq@`Uc3pHC{z%R*6Y}BDq%Y<(|QmhTLeIP!h$qzf? za2EYZ5<1#v30!IAZQHkLfg>|m0s{!71%%G+ta&Xc))F{Ek~sqd6B?BL(4xriHN--6 zO;}Ysq-cAE@lbG5{A^)sCh6O2l7p=cv9KgB<}L`OD7KT-OOGkd_4Koe##82uk#m zAODyZEnLWf6akjOta>-v|GSD;{T2NZz#i2Wg}asGMda<;>A3PPtQ%AE)5c+f5K`7eHv zfh~UK&I7b7%8-6L7Sh}Xr8Ej!IwK~6zqux*`L1lbgobRk z)bi2P@4+9~t`>vtqFEY8UzEcmO&f3ZFN$UdyhWlPi?LrQ6s}yc;z_ARE}{+tjMmZG zSgz!9khfABtJkawQ%o!@m4XfH*UewMW=+#)K8n1Re}Sw(!q-6RiEgjG_Kt`bE{|aD zGjr*ld+v^mShW13U^b|$^yiib0*Bce8ulnA-|gy!x+dz|9)H4# z^r=t(d!)xPU^EJl)w@PLgwU3#kf(|(DIp#vjp!4e&tA0IsFjtgxN+zNl9Z$v+J{p+>SJGiY=e>eko<<-(~1!AW}v2?5>0aTc133 zVji0|Y}YA}18SwyIFJ#Oj!hDg=f>wmW7C*0ByH={#GlozYx`e`7t(Lp6%>@M9 z$`_Ldc{r7{gz?f9%U7&ysaV*COVFx(VE?`Ee)~D4E*TLHQM-BK@yB^mvUbNRrPkVB$!K@fDl z9|_B|zro6w(!1@}Ke57Ix6_KYQ@Rce z2(zth#~ynuqiU3~sz#FlJ^_y!a$)AYM;&$?P`+DRJE0U`V5%g9Cm5r<3g9L7yV2I0FIpTJP`I;8wjE zr2`OVd%TIemCK(^%flS3pLF*D^gXgb0Wt;m+;b0)gJwpi0Pla}o6e$lz56|!S-^N> z;UZ(}3{X%v6KNQw`~`Kh-LEnGF=~H!Aqz0rs|9~-rwkJ|qm{qRSp++Q-}5ABC&e#A zzcZ=DnDXAAX#*TOAR%kjC$rP~d9Aati(;!dpFiHj;0($h~pt=rU18{w8MTj{AMpGffsFh>Hkqh6ozFz8UaSQG#a zn2T4gT)BSBmd%S@LZSUz-H+WxN(T5KBMEmMq$cXI(b0{|mM)nGvJv*xsy}kP83ar$ zsI~O;_N4-hYi^|Z1CpH$VZX|Oo&$c!!5={%ec=#_88Mjw>0}R3GlwhPD6ifH6W4Ig z2OoS0+fzpBe+A0~t|&*XHpY4mnx(8C3k;E}7cgwVuF14IqZMe%+`pq&jT*HbXuevZ zFp6h5*B;^etjEXBTmln7Zmj9{%aXHFe63M1L=6qLxuF3P-~QG&X~~i$vH8&smJSl+ zLUWx^K6=F~PvyYkk_+#z>-#2hfzl3?4!mhg7TgAt{yY$iW4`OoJGf=9x3`B&FSb;0 znz|{|4OuCADnt?(Sf0!8)s0vi5@$$IkGD+XkNls1rQLVijb3{6G4#O?eTYE^?#BSz zCTp>wpQsB3-i1xi2b9z`kTN@G&n}!8AL<2AFvpl8jXI#f+9yBozyr*_W;I4LzF4>j zd=LffaBQ!9)vLJk24xLorZ6Vw%Ybf^Wt!2~&4C{&f2{fu{3rM8UVn)Flx@x5Hz-Q+ zBb+v4nUVf4IxJJ=09p7mB7^_omIkELIS^#<0b+dxYWTzBE~*rSg`^B(3zI3g}#L86Lx?LxK4-M_dX z(KvMouzftAOP4Ht4t4`(F&o-ECKh#mOMf9ifD;_6jY)Dc1jL;eVQuNsrH=s#xuOd# z54gh&Lc>@g&zLzQN;PKfhtrg>05%gBocoX!XoN|Dk09e=3Jmgt`d#4Y&f{hubKJ3f zL#@MM*7>z077AT+#|p~j5MToAjvnz2lMzU=gUhvo7J1jz1f9Xb2~mcCGZe@W z$XL#{B5k=MDMZCWIS#=PC6qtZ;@UHY4zwNK*e#fYfgptQLdtB_iWT&YZ~R{)$kL4T z>}dxDi!3|e3Pio;HLs5;6Oi3>FcHYN>zHc+)Y#1>93@vy-kn5ez~jqtXDB{!uDw% z*`5=S2Lfao1i1H976k&bJrE#|bI_XP=$&Iq&9eX)u%PO15Dd8F!h_0=YM~Kqn>TkZ z3jo;+_T!H~#$>e%(A4@;xXU^Cy&}cAYhg-v5CQMjQoJO;i8= z*N=XTUUBNFJSku$j?w~v1SFNer$E6n2NXmL6(~NE=BJ9NEFcpLksSj9`CbKWvjT#$G?ZIL>8M2THw*^IEFNbE6t!YAu~0p8=q7;8 zamg$uAAI1!)Y)17z^=1)OYsLo?3_zI?@&(34+Gbq#ddZD3E-{Oy2)4ob68&HES-7(yX>MANFEGExu= zGk&kt2}5=UEEzz6RuZTa?y={ddfNrt4gGN?%%I3SACRfgLN%sZ*!%1dWUYIuT$UeeIa8 z?OI7!a57F)5n~tgK%jIW*`cyb-~7fm==lW;w4jsiO&@0~qT9dE=ca-QfXnG;p2`14 zULo`B_v#nT78Vpe)oH5x7~Nw*(5Oc4Y3L17%OpfXKXhb003?%H9(u-I|>vm zaY2E}py8OGZ%TT+p$V?`@2>X;#sIQR@9!)ynhzJl^d3t#20F(n1 z!~dgF=}Pej&@qK>Fv}k(68NbDxnetSA_gchFtUE#+Gkw;0A7gYzItMDKwxXg^@J5N zIt|3o(DqeJ7B6~s%m@_uWdQ%*9d{d;i@47|`^0(#GL5=8aH_XY3t~07Eax(591lZB zZ4ANg>4rx5Ht1lV#~pV(Pj2ZBgM#G(+he|MYt$MU8kyH#5gQ4)SGsO$^)^EgwFIhH zUVBLLni3lvxxdG!ws|u4eO`tD00@$m|M<4I@<72P4n9J~NICzxE=@*5w=fPWKyg-g ztQUcY0fT?t+BNk5ef3HnD@~KRY3>BC1KWa#`*O@nkD)^jIfQHESdn72j8*Dgbs3pO zwR*K88Wtxu#mk+n?V&RRM8RIO@^=9Nt__{d9_+KLt1AtRIr{@t#BP5(!Em#duhU8AI+Z7N1vYFPlpfmkTmVCI5%_$Em^#n zK>@%4%Qbtx2RNR;f6G6xyfMZPz$|yv2<^yu>!{XcD8>M9QAQYtmtrm%F9S$qtmH^;-D=Y%T~tGIfP0t4dAO7W>ywl^~($yXZgPr4A}F)JcIUN zcDyv1Q2g}F(@*i-33o$e3sU+6>U{?scu;~rFkZeuTS20FO+AB47ODm5@*oJTk6CC1 ziNaP3%$6ks^93G(@OT7j!^2A!Eq-+C)@_kwX}hdIX8j`r7`S=_NHHQc>Xr@cHn?7m zAV<1q+LzDFurr8WP$Wd#+9K0kfchqvDHQm4=`qLfzDpTOjGbf%U;^b@ABRHM;sXyZ z2b>`gk)vH~Y*b}HAPcOf@ijpK0$11vI~bBq+D^UtDb{bdhk;;z`srt|O!LTymZ`<{ zU_bjYNlO}WTNwBmhpRDtvMC*4mB+1a>bhA4zU~Z1#PNUvU%3##@XWt^qgDz-3!>?a zKv%>nQ}$`sBG{@Wv8b_%bTsw-?ICbaA`J?-4CIVkTq}&%X)JQ0d;MF@$|%>&SA$|+ zQ*#F}9&GUcr+2)Q!GUzz=B#N_Pj3$^c|P&jV_X8VL_FMA%P9cS_GV}~sQIE#1^tyl znI2Ggd7!&WlX|MOU46ecsL~IqO6$9-G*bbB!R`u6Bv(Yh;}zWpAMOp*ib3uRIaD(4l*97CeKW6mqFgw#fNIOlvQji_6<;mS-et?@i#f32^O zRSS)bu~BL*mn&?v2cY}#!w*HOt}YnBv$ya5`%|;gT7RIGC{ZF7Wqr=fl@JY7i}lCU ze6!8T>}#dr+F093xGf+U85vCt4QzbbvZW8LUAHc2$=d=Lh=LgdSC0Ub;Qj|37z-3R zpR@b{X!Q3BUCE0T*>W<6=7rVSvudJ+r7pS)5O^_RBO|fTzWa8hPMDXn+q7w8ls2~{ zz5zigYgOA3(2((U!{@M4?{b)`?T!TUxNf!v@82$yXx~Z1Wkl92k8ujR&o?bq8 zOzKvf;MXd0HKf}Op-Tt58EIRT4v-q|srJwhzWZJF!LX9j;W%3n-LYb`1Xy98a_XtH z_uhN!6gAT4X#G)_7W(~_f}DV&9Ro!e1tKHMfYt4uB}izCgx>?QMF4#VslQDUT4FnU z#T1X^vwk@_< zDmEKJ2|?YfP<@}QR{hh}t4o1^3IJADg}2iKLaRE)d20WcZ)?)ehMNk&n6_0@M#9hN z?)iv9xljomGoV0^pMHAqfd}ZK3%|(sikxS_TE`fue{rgXy&R!FsPiPBZvUF{a^L!1keWZ!)U=)rxQB%eXgmh^SzRkM|M#tL4&^T0AW z<22i%2K<(#OXq)^< zZ@`X__}PLWJV$@{!|&;9U;SzX0^D{)9Los`*u4E6@6_EmMz;Wf3YOfrkI6{p`-R{U zq@~PTa{}CSP^+LGZ_DvoXhRlEkPX`bfvf_3OCTT%00C-AFzf^j_$34J{|Fc$Ge=Jn zn#A5TS!yj4JVf{3doMlz+;h6j>j8rO_urovSy}!C9qA9WDKTLCE0!;>ty#V5@sbV( zQGQ50e{ytZ00I^$Qo+*ELvErrv2EM7<%13f-{Msxi5_gM%f$iWj69DGpjp{5Ggfi+bz!&PD#~*(JPg=I!u#*gd zbbtXSzl|FAB+O@e`+9YNZvjXmz5vt;kq)kCsUBwNlWsd~ zI*E%O7S4%5iZCrIOl)k_>8=0tb~^lsBY5@61VfY#)catOywG~tn?QiT_8Ld9XxO;o z!J_&d5}*Q>Q9#?0@q;yI&R zXDyn>P8|0h87j_B2()=h`icStH;(G(rcAN-0Su8)KIk(piOiKSWAYb2zlN^*!4K57 zx->YXm@9*0eAj#4Lx&%Jc(Qb$-tgPekV`?8LIjVTl0rrfy={QXX+O+c&9}-1P|oT< zlQ>uu2(*()?qJoP^-Eb03`okcbN=5<6euuffU~xT$pE?{T-RRv8``vKQ_7SN<9yB` zha|6|n+3?p2(&5{;5fCyYi1cB?XyOs@*5XkBoDu$hA3T)W`pF`^Hj5E&UmN(847%zsq)v9uh zxu*&7ZrTAA;|{Y044_RJ3vHS;L)-+6G_il1`g=Rp0 zS6#RHK^G0EfA>LJ+7MnLB@%oAB%+LQ!wuJSX{yP@N++{5pvK(CKF)u`K1(b-MGW$;8x2__ zgfb|C$$yVCX+Rm|#148++(kfEKo=RoRJO=0wj~Yb5eqZAs0x(%HPM=6^qhnll!QcT z*dr$T&smm5LiqpSYmdORzMI7#<|bt6eDXWyy@?YiaT%KVWLd#K2MAC>Vxh|)z~XM< zg6AJn^Y9jrKfwM4MdsZ?n!F<;qdsAqQOD9Hiyv6CW=$N-i<%s@C@c7B6r_vi%sDu! zd6TJu^NnDYLLaZE(|WG+A^r+8BQ6(U1q^pX70A$CfXRuxQbDI01eQPsVpjwRNC)CR zp&z#7q#=1i^?#3JN$@k;?6=og%*rsqw7zFUN|Hp2v@r@t=aDn{;nEdD0|AQWV^wHR&dK{p@w?(#r z@ys{Ak#^Z-7u_nUj*q2%)dAgMvILz5^Ns>Y4tQV|Jzrl0`+#2EQ>H-`=tC>7t5(Q+ zR@F-d`RRC7yJ?#GK2^OS$TP94LIdhrO{|n?ei+bdsX+s`@2T^gHER~V{FGPFefQl< zpZvtXu?;m+l^7?srI9lN&5*|v_#&_FB05)rfX^!s@Ybr}c1K|VD9NO|9*n-u>=sDLt(LgT0x$IK9 z|GxW}4B9jq1iPvMkr$l@7;`0~ZV0LE`)eVW52~W|3SD%B1UyH@j1mB~C_TmH$PDMj zHrW7?QBEi{r?le|6v+z6tQEc|PvCkaWNcBS3Z9;@RR_=2|5_e_dhKS))S=<<*k{CF z95&Q^y4T)&(Ud7u6VFq^!(g01Ad5e+cI`S^vS`tLSg?Ei0XaH4R_K-#0|aBEwuQ<9 zf+lJd>(;J)a>?Q)o2_JS+j2px(m_sY1i=a`cdR^Z5V0i#UUds{Qn0Q~OA;#!ljhvO z9~Rwx0hUhoOF8NGUd1Jt!yz{+T7?}*=ln@?7v#RN9 zJ+u$(3FeJ+U)W#?D|rM$wEe+iSY4w*b$%1oYl_?T9{w+Nvssy@hBOF}=%qezEBbeS-lhG<#x9&Cge%y4^Z&~~Ys}Tzrk$vE- zfV#F=>CaU2(%I?;T|7{tf9VZa@1R7nbT?%MFXM2C_a0ploLRChO73{WI6w&l_aBOu zS13>b32DnsL5b?+UD}^v)PMq{DKQ>!uP*%J7ufBwY%G%PeFbnh`(5v%ebq|Jw!a2O zOXGUAp)pw`mD##{;Bp4q1^?_|?r;JU?t;nB28DnC?HnM`jw_H$4e+JWC_#A4+M@8v zoQZMtHv$GM{|uc%gCeQ=nl(=YSRZoeVR0LxS1O?Kh!5qI6tJ(QOP3Aj@CP`C?=(Qb zJOYJwf|y4DVj<*HS3dvTb59Hpk0g5bQzy|uhQL2rtR`m6n4yBe>?jS%#4D^`%O#qj zUVSA!S!2@fQbCkgX%sMti`BlRCh8&m_)J}w3j(KHfQjgU0}kZc>3GWp_CXNb`msH- zzqA-OAnSSMS1ylu1TG*b zN;1sL5`bKXRde0p5^RyWZ{KY}w9?gOb!=S(WG_@eQ{zRw`qlOZgAz?r+nkI5uU=DC zke|-4E`Cijuc_qF2vj}%@WXWV4}PFCJ=JQ|@>x^Y6ys+GxB+TEU+N3!ECtXe zsn6pWYG!|}+AQ62IXXzHLQj0Iftl@=shF%9R`37--x`wi+fiLU2uy1#G7Ycl(mE0N z3_v}OdF6@~3<|ay7f?Hy;``KT)9AhL|3IYOz*z}&11SJ{_gENpIHbG`vIK`ZY&p$- zkGK7ha$Pk=+qOC*y&M+kqztW0bKc)`%$8cd&(l=!&m*Kvm%?7fY)w_GVVch=0wj?5e`8+&OjD`U=>s~7c6-Gxw$YOENT6Lrpe?>?rD^@1^9Ki#D~ueVfCbk z&2;ruSFwOmR5}=E=Yg9g0I~3_H~&392q;USRt@)b)#osy5tH3@L z<3+tDmC7{11ouAF^Pz%hvI1pZ^~&UmNyg5%P1~*>X1NFIwN#DeP6ZvSfWZVZ+5;_? zamZ{u)6j~7C38>h^;x@SO~hbkKLmB(MoiY{t<``o>MyZbQq_#7hAXctv)S|&GcNm# zDxxMtYCgf3C54)24*LdwfmiU*BQPZdta|@jA&>tW3ArQ}7$Ev~g({A$7{aWhQSit^ z57AezydsfZW4m>APOp0PtLfyIy-b%53>dv(l+&0eF2lT5}s z>7b%MdVD+ijd-^I2$kZ<)Xm2P`3hP4db@e zi3w6xmH@~7#*o$5#Cpp=sejfg@vxMvazv*m?TvhX?6 zN8Nz3W`XzOzsKr&AP1i9w&fB44Ah$;cOV?4P|JmV0liHH-ySk;rY!=FHQ=#)mUZf+ zf1?iWM=F>5HOS#c!*FUVY@bg|ux7cLEVa&{@oMyPGCQg4C3Mz_ch_CGo9lUSl%9Y^s-D~CySLQ?xkB-Vt&aKebD0-N6>LV(>s!1x?uzua# z1(;KZeao+6CW%vp<;9B>`kALEmwAbEyYehme zQDYyI)V;X9)I%$(J+#X}4|~@4_4U$$gT3^@NxjtDQ>C&B{+3jRugfm^GClFc>>s2tn zSpEBfx&{k-bCy7REm$21@E9I@^ilfszn{Y{i&(|u3uCNgS`+V72ltI(sxf^op41PYtc?-eP6IhMI=XTGym|Md zE?6p+cZfqE{0xC5USJh%eB`Z?pEN|hvR^aI={-hm^TE27DlR!1`7e9k+(ylr-cK3K7`)42ja0vuwpB=r@e>NZ?55x_-AqjvEM) z83znr_%7IASwW_fG0Q=l->1(xCnADj)uz+J2r5n5U?*uQxjpg7vZOb4X(qd6nge`n z-n5Cn`1uQH^{Q3TweO_!!0lwQpalWuwA0UEB#uFk6{qGp5dEU2+a!w&@M54KKU+YQ z7G&upWy>H?ZD^^wmg|iZXUPzeSO5s7NZ<^ppCANuo(i&WG`az`f@$ZfQCGWG1^>@( zZ_;%tz@jq%nE-SoAYgxY7#;^26uhP)bjAQyuj*dGzV+#+o>HLh2|D+)=hNBmem5T% z?qRnf8)933QP0?a3~M(;9Le75c>lR7jI^^R8Cn<1%PzTuy${Nzax~VlvU=-3{S$Kv ztP)&_vl++|ge;JiwZa#kG_S}C{B4MYc>ti5=n!>6kSziPWQT;oqUC{(vH~r@KpvR> z8~Q@Esxsa^W5sc2vi7cO}I&ef~dsK718#UaSd7P#p+V-91{mL0NHZ8KRu z21(~yLPx+aV+?t+to@V(D)_!_>$aG8?8pV%EXv6zzl`4dzV}Cpa%G#!Rk!0u!+Hf- zGAl3uFVwP6cIw9f1?c2>?z!ifR5m<3#K)5b3W{b4Y>gQXV()&>KSu$j+jtzzQ^)p) zxX|ATPyok7fC9^90EgmDRV{=B?h2k|>=SaYmtA@Z*EsEXMfPZ~ zz4oRv&O9^X;ow@}_>h5E*VN?89ktJEB{C$ko^Z!Eq9Ypxm;Betph#w!5Xlb5s4Qe& zl!ZO4F2VSoiNCEE#xz>3t5L}@39;}z9D3McywH>d$_4E*1k{3Pi05O?+I6(xx##Xw zW31`W)EK37QZ5(=AQ-{qo!}85MX`G2iiZ|1Sg^U-43m2LMFfgk5DQ&RfQCsox`UZX zP2Pl`H8EqdMH+dO|1Efxi%AWtd{9ChuhnrDhXBWkRy#|6v)&1lL_C4J2Z>`EaRRn2 zk05|j8)qv2D-_JO;=w26-~}V=RpT{$yr$ftej7I z#VhD#FMl}$7GAAFWltT)wJLzD3}Z2-PK1cEEaelfhk25%84LEbqhdOP1?m8#fdkt% zYI^h;45)V;P$v3}inh~*29QPATwMnIf$;Zb1qK$V?f1e-6C4&(QnIUzvgsT^-~X*+ znxFH^iZOCQmH?Rm_5LRxe}bNQ`f1+o-~atv=(Fcvz!@!!5zf#66sXTW*$C7UcoyjjDuObAkMUbZm?L1cj8X6B&PNFKepTCn#YjFHFV& z&&i>O9UhmB$H5h#jO;;nyJ1L+7A_iIv3%JBDB(MRK;jEA`vn68K=!qyj4`(#LdJOB zytxk#Z68Xw9~R~l>@k7#wSL2Tz7BTf3nutP5Kuhi!oAy}R{C>&48X=l?Z3!8A5&dD^lI-VP3dABf$c%Zhd73Vr%BpJ89`Q8mc8bik~9wQ3yItzmt*-l1mRV?X~= z4LHTkihU}uF{w-i0myuQ_dDOxL^;!r*zBMk(IpsK5+pJh=!C$wu<8ZbZM`~ z8>2t|{`Xwcz~^84`q$Hi7hS|479g8J0lYBOXP#8g+}9NlLDmRdpZBN(*fY@QP&eZN zt0)i*|9sn@cp}BP1gJ*JmAM3JA2v$>8Er^ZZ!sMQf#)ok=NQ=j_g)ELyvyNada^@L z?lzwbDbuUlW-Q1XTl{mF-CinEpO>kYRN=G~wt7bX7GJo* zLKy_L=@X4lLDO&FW1R>PMk2&@@Ua15-ST1l^*3ci=VpR%_ zC=rn4pf5^fK){eG8$^HrlEDK5JaH$kNrB_*HF^Q@ibuv82j;=Y>MfA*DhSsWfWWPT z2|r5!{(zbt(D#4dXV2%pcueM;CMMmU_hT^Co7()QM6om2N287d<-fG{NVfF zr=MSQ4f6}QbYL?DZ9qZF3DLAkB1LzWTCrM%McijVs@v6pJlxPV^ujAOZ|Nvye$7>8 z=;WtFT{7Ccg!6fT05JYHnQWHThiItZVbb}i0s~Wwc~Itz?ClU~d)OvlsKCJE4dQ!V zL5GX+r@%GBbw{b?f-iiLTL@iN{~EPllv@DmPBqe&_`3yLP)mfS0JZ@S0w^e6e95H@ z_ADr1gDg`%_@){gICk`Izuy@T0Eu?K_}Z0M(z2yXxtu2rfIR(-GijRP5-?a18Z{Ms+JQM5Juc!HQ=lxm5v|)-J4mm~xOm{33-|2-I z9vS9bgbN7D>d2NYS#tNng$u`8x*vKc=Aaa4KD>WI5>ePXX?NRNSe%oHP^6) zDI;bDVJD0pZgF(PiHwjEr?)cp=dQvrNgsdw@$7dnrU|CH^^9~)`&%jiZ8A2wn0QB_ z)K$`gIRHluBe82W^3jie^G!GLHf-lXQBdG!Fs%C@6c$l`#<5im`yFWhr!{TvQz|-H zXB3m8)fHtMz2pId#P4z#-oW*1LtS2p2$xtXtG}JC5bZvJ&h)g6FeU?pGR~z631XW) zXw8MCv6`STwg3iBI{9S!&u@N{-v7Z5(ko6qmEQ1%)3{!5OF<|#fWWsx?GvqyvyCAW zgJ&}d-F??x%%sN800k$Wcp`oI(*K{ms{oLzy4vT>%+5+SAx0b`B!m#$tsy|L5VUw5 zD=jWTN+Ccg^vA8GSdG6FDHJCJq7WeN?yj4aWOd~I=ezRezBlj9&T2M)_tDqc?2f#- z_r80+bIy0Z^FM;e;(!9xy%5z4uT~{RWB_W2SLVqsiwR};HJ{+wXP$O6-w`F)w|8$k z^|WD*aF&>F{(ciA_3Ab8HLF)nQq=`6nVa&;iaO6&ovmP1 zwNrlRlyRf8Qb|eiibV?-&4Fs6xBFpGw7?H6_$oSCmM?|7Hl{0395yu&s-h}gAabj` zS)Dd)m<+pk%DWn>L9l)MHnBl!<1V|&S&n3|_xg7!ksHe~>`7|B*Itrkp2f8|*Neqi zkna++5i-ik5bIEv7D&?9f@=mZKySom3uiqSj^S1M1eaZL1zmi}B_bLkJU3PDw~jyH zrOKq(>_ck*g&`iouH6;6A=x;G$3$=Nc*gG^`5k>TX_9P&q%{iaAY3H!?W!UIik8=2 zC)Msug5e6jO+KixYmXAt0t$#~D;c-boG4%Jn~$JgL~%@#s@q_NBI6C^vz!7#51vcT zw-61n=_#Ir@}x{vVGMGWCy#Z1$H=Gh&1zTP{-?k|4Y=o)kZ4QYUPX;SY=g*!6gQ zJ@^3`A_9SLonhVC8KMF%&`SYpzZDFm?cIfzQoK={0zfR9g{HnO&mv<)k-6duXIfdlD~Lk<;T>X7n08l*o!DV4&_n>RaT z5}h(Ys5ET(1A}Q3&!#N zv(s?UZN476qN>tqyws$C0EY@iq*WWNTDfvOpD|b3Ac#xggPh1GhoVtdI23mOjxwmS zsV@fa^xL>JfDxtD4}){+uwjys-vF6nb77cee493I@)$D73=ewuQagPibnMVEy>nz1 zDFbZ)Y$cE+jg9R@AcS@UfD*a;8R*u%#jK8^2nN) zj-uO`CK$p<{=Hh}vcq+n-{5G0Wd}P?snB&Ww$R1^Mjvx>Gh5AD8L?c)=cs}Z^$5%6 zRB2wYCsvHtZsrMnp)x4|1%PnAlIBJf=jfx4rWaoPBOQMD;j)nxSo_9_aXx$aIn=&= z`xKXe-*{D0N-6i{n`toGIja&xQhbn!6DGLSH6scXAPsT9s8UN86&Jx%iScpoefy;K~BS(oT~48CuAyq4;M zpr7@>SFc`^T)BMN*pSh?Ku>LjR2FU?Ku}dxZK@VZ9zi5x?I_y5n7xL1U_Lr&gCH(J zmWW6{4;z=a`XE+IbYKAw(JEDTmZP)>U?@%=I#gVL*dtY3Zw&%vu(0`U-n_}BL4X0? z+o#JRsevn18;BVS>d>)+Q*!8SBb{lnMpaF@nKFPOtWh1>Y-K#6h8BTfj`JoCkKONc zyd*v+XU}8Vo58>X4?ZZ!i~w4BDnyL;e~UMM$juh0YtyQP*D)wKhOGcV0V-Ai3IJq4 zNWJH-k&Jj3rdlS~0t)=D4cB$Rz=1*nSEnXK*qmg9piZfSplE^TZ)E1_PTEe?x@oMaRjVbkdNM=?_mlDbgvr^Ps6jsW}T! zql7GRwUMvKHBFC80Cl{wyh*jrb919K<@@gleM}r8v6j8At`Y#_&XISCFse{)11PX$ z1E{}LNmaz-_&v{$hNM0LUjwcWgwxrxX3{_3ctfmb5Tg!bAk%-q00CMBu;hW0T}=I;%50F zPTp8{Eto%l3^sS)v;k4AKYPJ|euREfz?@H~IN}&cm?b~;7_KU1|1ls#Yh+Oq(2>y!#$UUn7uA^gKvgZ?$!?Gj{PHOP07?}}J!j-f891MBM5Hj6AF)Lh zh*J8D~4C_H~-U%@++;2C*ssFR>I=sd|MUhlpGQIQd zT?3hfg;Ic__G_x^`u?vu?NlrBB=6fc1790mWB~#S+wi}67YR!>)Tj@z6kP>v+f`;r zK4tWov;}JWeIyd5qM{&VY|N5e^u-kgKE)_0cj%?=_jgY#sY~CN}S+Y_Ow2Lqr)7 zoiZQ=2*jrC0Xnrt3KYrkyz|ee>#o0^-$RCZMe0J;%p;7w(#YN8S`an3H7`W{**a99 z0h5YQz!0oozn(_kak~Qwob*8!L_;T~0pT467`NPdn@}>u>qQ71-<4nb*XlY{9n_aU z=IeObE?__u%oVgUM3(jMP?rxeqYrCjdtkxi;O_}=2XfQ>qaG9z*l|U&)H18O6}2w) z)I?86KnpP-1s(t%H}m>g!za>S2Zcc{v}7fS+Wfx#_FLzEaOOazBJlUCuenB$7Lf|j z(VD0d8G1nxP_N1jN%>@3rVj8P02D9%@kIe_Fn=eUc#=qI;Jy&=&sVUL-(yumOJ`H# z6AFW7I7s@h9=szLi8o+9ShZvt%xH*NfspO`Y>fgKhMkSAm6uCa+cta_5-}KHPs`b3 z9o-p{L}1HJx1x9~?x+){r3r$#1GUK&`$P#=ty+~_zHI3j)#^Cz_?dj0mseEOdz$MF z2tZo!Hah~-aYs?nqWSaY&o*0_29+9S%9nV-fhH%J`u>#x-QA!)@EvcIB_1*%niw5< zfK5zJSS0DawO^nXq$}PvrrGcV1wp_dlOYJs4a@&~w?;|?hm;47F~S-`)TT?9E>71;5oJ;9 zBCK>8L`8uD*%)JhrvnBJlFg#jy^DKnSweOWJt87CCp4%4c%3Z*Hj#+C?{~jwKmZuXMwx&mw6PI}&-hszLhp0D9D=;OT!%@ne_ySj zk*kc3Bujg;Lne%f4FpX3)6Y1A_F^vso1fJHF(NM*&>93=w`~=MRr3`vOC7D05Q`Uy zVY97JfItWtL6oSltq76Y*~k`qg_@LyXp#y=3uI%%LCCg%+?x^>k?1dASy`zB>O-f6 z^n2Yg@-Eu8eVZVgp?$LmZSxvgm$c{^_6G0C4-v$bYt-DK`eI~Wi2jHFwl*QiDdPPA z3O1}?FF?U#|MR$zn65FZAcPT9^XCNxA)_%9(h-+maRp7CIz>q2q8v^rUh@2pu8}Hy zCn!EcQ-K02W17}hd0b2XFKzR-d|szP?<`(aGZU%}c#f0}hDVJs{h@~*Dy5tO%v3c2 z4Dy!En`u1*E<|Eb5mQvOUG%a*bO(_F2K0`ku>j18q$t}2h#SEFL>VGLUR*Ubf|$^X z<;&@aBad`N3B=DRf#vZAx8%P29}u67>IB{1m?wiKFbV)^@d5?}v-rEriSs=Pt^+C) z_<1NpM3uo|yarA@@gyOAEv_vbq6oi!HecI?wk7VNWTVVj(^${6R9C=9S=p{7J6#lu zT7f|AdnNWS>>ViU&WVVK0GS#zb>Np+zIM@er3$><0m?#mAd@x$_V|q(H_`mLb4JHv zHD!FShR9GS1m`AE&vZe900EBj@^YI20U11kcq9_eS-E2Q*kwzW-qp8H?*c?L5{cS@ zfNg*U%S*-(5rRCiu?ayO!=Tov5-T%00Iy+PLK5g;oMG^wcm}EB#v&7XZ#o#FO&c}} zu%Q6~1_b1=hzf^#0Rf@|)#`hO98scn!aK@tMOv=KD|F=Z3!H{Z!q}@WgtAwsRDH}- zi_|v2U3qy$*4@jz%{Ab0im-fs9*uhNA-e6Bn`z#>dBOk-u)uS+RF%Zt$)F%lr4HcX zAum0WfA={54Zs1r3GYxF8V#b-=FW%`=r*Lc-644iFo;MU z$S}E0f2#(AUK03fnra`)0vJ#RU|^Gf;~h-t7ct3^$pw)!DoZ#AAAB%faN&i*U}GI_ z+O$b@D4aE81{>qWVoVXf*NwuQw3*rzHR;gt^7(m4zwKh9i;kTGc)TX_zoY8)01{}6 zeALlLyX3_~#{1!(=)(8ksD~b=8*lhEm6evtw#Pg_Q9l30gWsR`Qn7-w*jQ|9^Y67hh zfm)m;>=VNHt21mwhU-Z%)w1v8xkpWPLeqv>8N&Z{`5EuOeEIU&@?}fEP+~-JGWwkD zswi*J)Hg_;ucE3#_cqX+j6^sbu}X@Im(Q6q=R27>?oxH>2zDWL0Hh0Ggft9@hU3Oct$UMG z;MXP5OdUj2>R{mh1L?+_ZkCZD{#(A{I3SPxdUaBCc?&fO>&)9F&o&5Tsrev>00w;s zc_xF1a<=TrfzF-td*PXFvai`1hm<6X?NF57713T}ux?IEp_0_#@;UWi<$Y ze}FZ3>Vj}-^z*=&;yE$ZObk0tu`Lxf!6_IVPJu{yFNJB&oY^up;gP=%8!DF|h#ok2 zFx_+Sz0R5wX+T7b_`N|gY|G!};v90S4q~e6V8)E;^wCEj(muU=)8K;+5@11t7Od?# zF)9CyKxN>WwEa)Jkx%2j{TPiVkuzw0*gosUeZAx&51MN!=>7jI&ZKIjB0AcIW$wSQ zfT(R7Nel!*Fsz!+sT5j6=iARmBbUlqJkT`@=FROa{n zq6!|9kV1MOSs_2XAVCh9Q1cIlpEJVodaMSJ34=fZHZO#^bq@ovnetnA4ImWanoE*y zl|o@qJ9Tyx73*|m$_Tc9235_xPUi?4PTpM;uX`C4gO53!s3gUq~{}5eb3-7K|4b`ETyMhyL^a`;JaQ zEJN#LSJiH0pu-Y1~&|iSLX126JF30x8B7^DRyuTm0L5;`ew@L~%Nj?2?If zgtP(rRp|0V%m;fc;&aV%+mwDt3NV5va>f~F(pA@7Bi`R38S?wDPhwpp>8u)c|5x;qJ=X{(<#4GrB36np7y|zAL zM2!XraHtT4Q}%!hWRD}fX7#EG3l}Wdu1kdizcBd|3B5{%@G{#evYpV-2PrBqpUMl{ zkkwAIK_hulnv|48sE{HP!myx@8F}cqYGl+JpKxmvP!Cy6{;|D)MHr9Ejlg!G&dyDZ!x8y z*u|1^*t!~F`?hVgX3ZM029n+l$yB*irK%u$LONW7vz%y-kT?E@=V2V5SMwUkwNkwf z@Em-`-~aYkI{4s&sYAz(QbJjEXI#f0xyhy`A{S;002&4Yf`CBQJqZ5m0D#g3fYFEX zZ)a2lghLHV2V{FBy!s=y6u>k2X=dqs);a{9Xs6!GQ0~8Y(c-dIE0%v1kzQk}x`5A} z<+~dEWg83#5ZbMlL_a4&fQ#R?bLWQHvu1r+TwLOKyx#nCASf^g1cR&c)LKbR4?arj z;ALA8_D*>rY{@U61-WgglTwcgDF*$ir=BJo|ESHWF(L!b4XkSUOG-;c)0c=*atN=g zz2#pCf!FRZ^G)gm*MWjm8*9rILZL3dz@2ka#@37&6qvv!#RoA`l-aKc zUrka!JP{yuY+e(7hq1l;-g~50zGCA?R0E{fYGg;uXfy9|nSp`riWumq3Ud0JZE3ij zXcGVIbb3@=8_X%dKn0H#dK)D8Ih}YTJv?I3dAyfi!&diBKJVl4elRaY59O!MQTpHf zh$?^@b#ntW^#L!4EazUtXDwa2M5XdP;Z(!BiKud4tdBeIx?801AcT|~%~eg6h~B7? zAo1KBOGF9cM(W_JFTWJPWANaE1YuN^52F_cf7FtMn@iL@0HEsJQZzy+&04O_Qtp|Y|v=_P@* zri@!*K*=GDP>C(exI#vb2&5@j)kPKtIfX(k7a>ucW<(0S`VD5cMm+DBV~>|&Ic$hTiUp;Jicj!zwbX0~?}oiExXjFL z3_ws_og^m;<|@Tis*|WR01u-=bNWMjPGYI$vpJ(&$j^QyrfdAe* zWK%D`k$Up`_pj*)k_GmR3@yc^wAVq*t$AH1h7d z#aa=9R*2Y;?0bQEKWIb3@;o&IYrWggZG z<7Yc#t+gZonh>q4RP%5m-wb!NhyMV3`d9E+qRcX1t-W$p@>;3V1~txU3&F1%btXL5 zhE1?1qsge1Qgy@FVzbg7itUqja&rEP>Cb*f6$YOGDV+Inn({NF%zIXZjNSz}b~Qq}pwR$<*o3Nu$K?P55FQ|_IBVvN4>oVwEUFEN zD0?0Oxf$cOVz6szUY$nTuIfH#^9Hgpk)B6{v4!XU{(J8^_0^3@Ce+umX6+g$Y%L!7 zs=9})zyZeAS*A4z)MAIB)M*i`9uW*&351Cxn;>;m8AcwLi~MZJcnvt6et+O2H+JH#?bSp`&3-ZM&Ys?2rTi*a}A@1Gy*`u z!i5Xy#$W$Rw9N(ZOQ;G25iQW10z(N>i{;?j?znR#4LslgVZ?;8qKaC4&ba%_SSqd3 ztPWBZ-~f5`9jc;6g8@VXz!9kC@u}f|9~H6aeg*-z@15w1Ag4jzW^~YOyt%Qs-xjg|IfdTaHe=cHo=ATjs^a&YEFJ+(=Toh2@qWY z!2xik09sB2pthsJM@m|gckA56FoRf;xWBe;L+S9xRaI5nRaKt=1hBbIFPfGD2ypD& zwaY7I97mL3`I04{En2jwT$lT~yvYoag0xPAyeQC^2=(cDv%$?@nuJga(c~K2qZ*YG z4MLdt^UppNUW{l>*=P|i2?$_-)`C=}fQ#f65Ov38`?w5%P31|sNrx0@(HaC$DKv$J z>JoAm>44lk5Aw9727=*{if{rVwqLZGXU1A5fq-{)keFyyTKg=`PXtAnpbQ z{25=d5q_y!>bd8rYfY&B2bc53UYBDzI`}Z+TGbF`iFc2@lU{%ARmbaakqs3XGOtPS z3A%Kl`+j@BAU(#EGG0W<_5Op`(tKXQ`OWNhSiX#MH=8-Bz@+X>38Em_#qd_z@r!@W z<8&vV11w1SCIH>2G|=Fdd{iV&UXZT#!5rRx z=bg0IUhQRTWz`Dh>TTM2of);`4m#eT2V2eabZf}$xfY_ z5kla2_%=uk8aqQM-+Y~Xj=qL;OYbXZ9WW;?@=O}dH!%9hc?$r*P#fAcjx4a|09fwV z>;d1=D`+NDnr(b51;~>=%Z5K-lFgSaSzNtj(ZY{ZsiB8VSl(!esnGxdJQQySMBJ>! z#XFYHm^N)(NlA&jV_~M=20rNnyeTyP;Xym1Dk{7@sRnxM>4Y#{k$}(L!XC_f@4hR% zL8~z;3=A&_Ay1?XbhkZSVbC>zP#99tfhtNx2=JW{2E_*H$`{u0T66Pq)6ya}2Khxd z#0i@z19Z<~!y;PSTI9+BH#AbNWy6<5&6yYKal6inccf4)X)Gvw$wR0a^K z0}$ZgHDcUg1Yr!d3g7e3K1&b$_C5g+!iq28tw7MmD5AX6BaS$NZoU0>sZT)U^gF=& zzr@$E)oy;0p=;y!7zm6-SV>{WRV!jdOTe=@kf;1X9-mVpa=xoFboI3;v&5}mLq1bp z7cr<#x;d2M5MVw)s@3T)JHxs#qXd{EkOZ&3?poQM5+X|~b$}GkGByq)7~oWEf}yAs z3a2;Rf+TfPMli4i>C>$9CvU@_3_K36oN%T-6=`D`kPa{bNt$l8l?4#kQ@sB)0-!o| z6+k5H<_y?-Ufcs$yesMLWnc*h!)k<-f&M%8Mu6>^)2C0~zJ1#Qv$G*C1N+;qigIdk zfB+>C<+8briH!yEVeahN@2*_ATJ$#e?QM_&2$*?NLYK9Fw^;yzN)c(4Y#?_ z00iED@87gx!v=?N*wE;J&QBM!5!$+Kn0oAwhX|)oPDgPGudnIY{@Z!;UB^mcu$@b!KzRQ z!18EO=si0VIPkA{NIwBeIw~hnlQ=QXT8ki?wV?@-ntXc6rI*nOC!Q#~Q>xSfh{Es1 zY#JPr1jCrpr|`;EhgJ7OlppR?5xCmyOg6^f&f;~MKtSsGwgCh@Zxrx(R!ar~CZfW8 zN0bPVSpujDfG7(^TH4`93fZYuB!&_x}Cw?4^OTh!o)ZAQk~RRwr-HpVftdT$_-pRrL^I zaIxD}NL+7@5P9m-wW}PTdPD{^cmVM6re@;_ zS{{dy3{B5Cfu|pjui+2k7^IO2t7*=x*{j#CUOhpP3FAg0$}Zcrvr*AiqXL4e>MGf5 zz(^Z_Tv%OGT|9m2ly}hYJ`(XL7iNeUxS|AV@b=kv-?Wgp7Yv}@+-dS-hSPbIL7#Q# zxtrPu4FLtXuC;5|IL&uN3*!6&>fN@GqN0a(fk4XQCQ{ws@VafLoXXgzEB^v}-5 z@TMXJQ72EXQ!+71k;w!guw<0LtTL#niHVIin+8XX1qv>_=!f*+Lk~M%qL9*sq9K3& zQohi~s%=_rOM;)t>;;^=nGwwuIkNW!q;G+gh1@aEI}FOxPd-Wa+%-~&^+b&-grsWS zYl2Oz6@Zhz{rZX2iI6r{;A9LB+(&U~NL$7REu&&cN9nRbjlMCb+UR5A%lKgpKNrB} z>$oj?AAH2;2Y8I5?9--6{5YGD>6(P(vk|YK3c)Qrm*EH1M^hOdOqhFZaUt zwH`8}0RSkAK4rTd1Oym=SLt6nMgIGL>iuVJ>nPQ!R z!RF0dXxh{%?^RY-Y&FS*u(8!j;=M7CMvsO9v2>Bf*d!N5mn~WR$-H^BiN$_h47l5y?P1{AH+1&wx^{oc*FnUC6~~g*>h;Z_;D%Lr-~A+TDg+`{qDPT z<4rfEZD4hc4hZRA-ndq-Sn1*wAe7pjcO?t_kB|_Tbx2?&TE`}-%wjKy;!gWn7|L#4 zySX(8>cMq@>YLtRHK>S@TMHpfsSc6)y5sSf*l4XLD024ekVq=zf6j;zLQ(I*2ksXh zx}GnKuVo`&JwU+?Z2S*HI9y$GTp?NL-uLF`zRrdX5f?N@677H0jfwsTix(}T8+fkI zI(xVnf8?Nbl!_F815tt=J$upvqejuKH{UFB+0aW65e5F+TQL}5i;jy>lXOO`&jGS! zTs8K}S3HZgJjpA>X$$e9A{ExGAs7qHuwlQ~DK1EA~z7?w(Zp|HCNka@xXB}PA!7hR!9 zg-)|EUXw^$;`B=y_&U599Aa(n7A#m;v3TLa4`%kuSFLJ4?Wl9-1r&23S3bnZ|LZB!SPtVRH9OX0ubFE`0Z~6;6Q2zUZ;y!pdtkT zLjY4jtiDGad6ZDl69Px5PEksRc+RVAftMwu_uLYWTon;m&DVr(fe%;N^k9_~^+CnP z5=H=MQw%-}Rym>u1#IBGXP#1u#Pdp%XquFyiSZ=;jTg=DtCMtpRgzw)mXQRIsB&#t zIg^uC2qOWWLny363t4T@@pJpV+S7H{|H{?F1Yl)RLh^3VuDV(&Sej`;9VJ+&A}CfC zX&&DS4?C0j_r?IomlF^O2E0`YO>XolJ+DDls^pKod<)X=Z42e;c>X@}zqU=SEfiBm z6VWtN0ajFrwcm^PuKbL8I#vL0!25UXjXQP})3hnye^I=nXbJC^mQEKSI>1g0v8f$>u=geN?A_UyM7FJ7GROBq<%qzu5~Y}=Oh*=HZgi1+#Ip{JZ8%G~bhaPIx3C!`fv!GC`e9@tD%&oy*gv_3!ChDCqfX{>7FL@0D?dP49RiFA5YId_dL(- zz7DYr23c$9gW&gWOd6ty@m)}!)`fq(D{9dt5xIVJX`+_$1;F^|!w>1YYp$jb{_`K_ zT0{y#r*2fG#fT9jgw{T;0oNze2PDaAf8=X`5LR?I#&v}%C!g~a`SPJ^jEn4k2&0aa zK^xx83wa&1L03Z_!$Mx?g$zCePyRbN9OC&r?uGol(ZC2DAh#wZ77re>Or#t_r%OI($Zg;=_1JWdF5gq8= zx3BQ>z%B;>IrHq{!t?feyD$)M{No?>t~f9Wg(zn%Dk^e}Fs=$U+IwZ_atPy6ZsebI z$zi*CY7m%VK&=pHerMeh%e;mtxg!L)hU!MnM`Z&FB1&c&n>!jJJ^$h#MFX3iN<~mq zAn?W(;qUV{-+?d1WLctF4p^hU2lNU647ww|0ARpgBb4Hx&Tm#liE_h3>$Xx5l0;6(ijkrCMeLMb0cM-$%F$23=pA2GrW$C1EFUK`v4rk`#WIJAUf*k zV`%a>U%M&`u*t7kvx@%p&wtXLcioj%ZkH`6z{Ek22%e07f8=WSW-mrd#HIlPOZG6R zrc|xHAVPNOBFZXFWxZ?^6}{T`VNV|i%gHy}j<5}WpKG}}1ehkwnQp_})S!TTq9B;F zeS7z&XP$eW9)9RS8b5BFFyt_BFkTjq)A)o%Tlo5}XEzlU2Nh-tfls6kMlmRO3-Y%K zOEkc;QH7ukJH}=LzwfM>GwHI+ub@jWzg$FSbU7Ogqa~CK?-boDXU&=^jH8GofbpBO z=x;orzs#{5wA-9u0H6dUN8GqMY^V_t!gtd5hFL{{>&ACODhiKn+qM(!v30) zRG*0E%3YQ#{fZn)X;^sIC$961GtZ(cuDp`k?X{OE;luY9z(JMyIiXIhMILj2!BPeT z_^!*AEu{tX=F_4@3q=GhWOzFf6&)$J$)x~^Wz>c}QE@$WY?5V`7=xr6hCT())n%7m zPGd%YK|6L7iR;JOKohD(eDj>n7x5OagRs(?(B+FZukVdXyViBw&^c=q0N`izW! zK^uESAN9Ze$i|N9SgYZ0j(ZTMc$=N7X3-q5u3fvP_Ozg$JbtMHPt+8~e#Z0}t5&X9 z{zXK3cU5Lat88bP-IU+2Ne+!-yd{WicuS^y_uU(7*Q^yKh#9*en!hu`iS0XdU_*YX z$S=Zkga-k3GWZ1{)m1H|nD+Y*97x9=cbwShy@nIH|G%;a0?)BNDFZ|nQ1@<@L536{ zurqk{+kN)S9zA=c_0g`2N8@bR0ubal5f+f*Lj3O}LWV*&yg)P#XlO!^`1~Iz1t}rgJLZSZ5Xn>+PC+e-#TqbhP-sI zefFUrUUIRxcO$B;HZ&E+Gawiomc(5lX)N2X%X^=ss8rm}kne9mxW3M50B-`?3>E4y zKkm&o^4@ereRQZ_m-j^?DIgH^o~=i-00I!5i;a{o?jfXmJE~5#Awx{BE~x^&f3IJ^ zfu?*r`OT`z%5D5U?ovZu>*#E_#{mKiOxezzwxL|8qXaq2mMs2g=8PE|(7`Db3S~ts z6dRo)qG973cKR9gD0`82+;tcI?$O8S$fJ*z(E%RNu*VA;KH^+qOuX%V3)t&?=k2#> z!GZ;~f`T+cA^&dY&N5oJcCAybAY@(n4_*0Yj|bEg#}yzjw@O@Zj~+c-f);fNxw^{w zRHs3+W*o*ouBBT^)$ zIafs({+9>(`Is$g?sLga4l7sD0z?w-WMI%oi5XR+5`o_f#uDEjYh&8fsdUF}x6*I# zy_e?AohtwdO5P4S_z=3~w%eU_0-g(yg;o6*{@nS=^v`XoGogSF`W1jciSL6*8d?Td zVWVJRVD?1+^plThJtiV5vEAs@ zsVfDb|KYbL>#~k@YEU;nI`8}osCVz);%CeWh=U+@E=WqnMo4Mt-W6J)2=`YdHLOi= z5D77DUR1|N*C}^z#CIu)dl8XPXpykdw-q3_+p2DU_%{P}8!1qL;c!R_`}piR|K9|D z_QVr7ZVPlzJRC5jd;toygX2`kWrz}Zg@~~30n}&DoV9(?!UgZ;NW&5{0m05DC^c*r zK!9Us`7Uv@8YPHvAfEE_U7Nn0Jo(KH8#a*?U&>C#Sd)%$<0tJT_1kYh8hXm9qPM!O z2z3q^P!ocUq<{YbbkYxoq(uqvTxj3_`A>fmK%y=Z!Gch@c?)gby46J}1evfyfMl`G z=kG8SuC$;9QU*!euG1!F`GgK7@iOA-N03x`FY`L0l-`%YJ3h^sJ}^N+NJR^D1p+h# zUijmm1b4(F8%FtgP!ycZgZ=wzn-(UeppLnyb+iE7g5RE~BnV>!T2mvIr&HWV7 zGgQ7IZJ^g~$cgf%_bdpqaoE=&M8vl7-JPYSYj_{D4KR?zJ>67f!e#*k*hESh(RfP` zA+oS=-rRR)&6-sli^W}00^hKT2?~sIHBy}hMW{vn-kA*Jj3?qWe8dRR94X-`)j)3g zlaD^6@4x*vD@kLg!T`h%-fY1J)teXIxeMyM$-lfvcR4II!%aL!2wivX+*w928rYgy z^qcooPG~@2c1nv{>APfAGgKMWB~p+oORQ#3{a||WrI+aRGtLyCK+hcvQGx0`@VH7L zgzWUvKxqC0dR`Qkq{AU9jZm4C-y8E-qtX&M#(ePw-Er$}^biAsZ@&Iogweq_5g~Y^ z=K;XL%M1#tRXJyKxG4$UX^qc8JZ!&YbOLbjgRscUN##aWL4Y+~&fo3+`|hJJ$BYr+ z)0A-bmi6j;thBTQ{nuqr2&LHo&dY$1OxJ8v62XF?s5*7Rcx%D2`mA9;@Q?d@_=s}^ z=oe7}lp*rpLF!t<=Wrb*P%W=fb(s2m=BLyJB`ymObHK=gj-)?oY_uwt?No=7sgzyHDSMrbgu3;K)y+ANSeZ z*>lS0&6)M4sw{8`5y8PuG(o9hvjGAeKs5X%TqTG~sA%QnufKk06C)xQD?T8egq3^of$9-lVsbU~c+8c^g`UwH00@jS0Aa!}d;2gp~by><*QwDv<%n8*$o z>@u~Po8hKTojM7y(opZpRvWa)!y92GUBqfWFX|J&K;GQ;^oeM0P!Lp>h`B+X?_+=X z1Kn`rjZSDA-g>?gF+zmpU+g(PrM&h6Pn1JfB6QDOdG8K=}F}aXYOaKvN$=7)wP!dhxa1z~AX+ z{!ShFBC5cd;B^gPki*vrV~VK9*OMkuZZtO~%%mlNjWrH(>%6)1Xx-X1V*CZ)fd7Vu zO8xj;4N!{+n`$hC@#@~aJ9W~awx0Zfv?zh%5`fEb_VD2{N}!^EV495OF+akR_Z;G? zx>~53U$Z0WX>UwkLmv_y`K(+v_UM4h2Hh%D-hI2m)QNv1x9=GI996!T$;)qb^Z&m_ z2atvYX*F!zFW7%TYS*1(L#irH_v`SD4tN}3tZOvLoBYk!|JhMgv?wgo&`zl#%J@sm z%IxO&j!hflTwDYnUII3Y zvv^ZMSkv1b3S5FolP1uopM2s-Pu2zsU=)@wTP9kuI)lj{)++;{5PwIyz@YAljTxR* zzVb}{@=bN!NWFkS$DPb~%kfDGNK#?u<}}R-3_{A_L=?!;-|zZg{hA(s;z`l@Qa2NGmt;cK|5B7y4~q zy=n~%k_sf?cVCSDTrmA@6@^2)WxQucOXlyvkF?K0$-I1V)qqRS?6^ z86ki(?iUdy;OC;x1XcZzfH8f6JDwV$%(((ah8m*#rP-z`zhZ(!>uC4E;(Bp)~m7 z^Un!RfmhPlk5E`rT1snHuXYm(;eBQx6gq+ywmYrTbDw=ua?bTNqQ-{my?z}bFs~)Y zr{M}h^L7i_>`V=ckU@geb?T>_b{hTpl~-xV$tR~$2ug9U6Q7CPe0n34OMebUX*=ra zb9sGXvqvOOp?3fPEXEVSFNj)neMGYOh1VTV2w;HshNqpQnnsnDmb%tOzEOGb4p02d zWb;-Ycq0agfPnZnk|+3B1qxuW@m&znC@R`UzkB#0p*NrbdqN5P#8t`eqJ<0DQ~5@G zH?8J~E$Y~i)F7BIJS5vG@5McL_z_2>?!`uk5IE^0kcg9#F9aTtAcFGx#ymq|@!R}1 zG_*roI(M%^YR`bA3mf<=_i97^3iGK3L_T!j1E~+Znn;LuSIZ#n`4IPPyEUrcdIk~- zSMu7gF%$~pu{ibV(?{svI5wyj$zm^9fbD~%|JRcyeX?!qmN~GEWGEBDc9xWtHp|A` zEPwzT_^yg_@`(~yvt~^H%iKA0E3xUgxCBA%B0cGYv=o6~bU{4_9uf@6e*OEWfdXun zs5bc9U;jb{Z3=?I0}g*+!}|3?`A!>Oe4!2*2!-0w*lMS5di(CXuk#%m!XdDX1x5y` zP+XrGF|gAk1bTez7Ucc-@d|Vb0Y(mGX-_=$G~IObE#f%{Dd#BGe4E@TwP#~6Hz$vt z4&~AK+yV--ml$oURNUH0B{#6WEBSXJ{@W?-+R**&3+UH-70{qIc@##zo!<)v38b~S z5y>*IQGfz4%K6`ai5n!tjKs92J8Ka3=ko@}K1W-&NGa&fXwX-fJ7*5P^v4%vV<$HF zx&#rx0P_#QE<|3$nn0PNjV4l(n2G4XTD5+1gx*C$@L$kBBq4j4q-i76J3^%HTMayh zpL33g4#=JzIh4M$Rz8208=`yiLv(juh)#=;Q&rPS*lRr+>pZ6f{ES;XN=DX1EOCR=Fx%t2vQuWY608>@4xpRjUPW=as-q% z0UBdXoG^jD{Bn$=P$+m3eBGxrSSsM}GbOKpa``*9<@bt#(6eU`SID%{HYgSK zL$%VOhaO4?9(bTr773038ZOOIq63}yMB!IWQ}zsKJ^w4uub}%#b$F(SdKip7hz4&6{UJ;@^x8pvJJIw4~XfY_kD^YE=%Uq6C^O0fM15W7^c$ zX3w6J9wngkJ_p&Hz92z+!Hl+!IqoONbZ;p^}efH_6<>VS0o73(XxmNxe z?OAP)*WD|Wk_z|p-Vx3%G4fA(b4J@^cv_)`00Pe<^8y(!sW3vR?uYvIPK2O^8 zOdJw|Os+*Y^LcW_qPD8ku!ho|P3;*M@VS6*t0@$gCAFA~s6L}?tfSIs=jk&~f&zU4 zEHu(tQvfiNPuK2MKwS~V$WL`*!#aNXrI%<&QIUvzU>r7VSWnMC`;4nn03~((_}Wj( z%b_KqFwL{VR1is(1>zBvA4s`5_ijD;1DUuac!ZY1sizHdaexq9oy+rDWvBP-Xgykw z#^evIVK89w2e1wy<^|HLt!$T<=T>WU0FBD#&5KR@{=1h|d49}^4p^3uDXwhB>aXS` zMH3_!ZJ#K?wyj&|PMR>m;S%^60m{%U!W#()WdI8@7Zjo&UUI2uvFr7SMH%A9AJLaz ze8E2#rU-V1FbMLPs4$3xQ-s2>AQW0o<&qzNz*`@U&xTBI2Xr}XNK+#ZDDXBn(h&^X zN)3F(CuPtQBLqRfKzGN}DTIVl3%mQCd+DiXo}qsI`iZc&`F*s2&=~e8pR7vK#F*`H zKgjwc+nFItIgQJ4$^3T>}RW zq~jQ1BZcGW2Q(6Yzyw-?OTZiOi6@;T8iDEZE3D%UJXssnM&0Vnww_IKVmU7MG&BMr z7&!0%Dg;3_pu)`$7?_URwxaE*WcqaTrcKjxJkbGsba82EvwCOE3J8F7fOrfpLEMNE zygF;v>`PJ9xXFvbBTzAGC<2!@&2c-XIOhyc5CuA5fm(od{ zwu%VA18vKXL)ft1kZaMc3=T%Hq1;!!pi(`rhGdjzV8~4#-JJ)n{TTj&hcjw5eGPzu z4?p;i==}KPNuEFI% zACrR*ImF=rS?c>O#vEGIdbA!*VkAMPU6!z2&3_P`Jc!q#NhVB_EY1+w#_lqA&b%5# z2NZX}Q6+?ptQ5ST%4Ywr&3Y7k z{5NBgv@B}(9zD{!9fChFckWzz^_5o~p&G9s5jw<$!zn?cy)(2tCS@eH*y$Ap`|jJ@ z6&2B*enV0RTK&-*Aux>`A{rsjrVC^06292Y<%e0N5EL?xn3@GVpJ<(X=g7N+!Xa|p z<>k9v^Bhr;0o2sLQe)Gfs%=`7lw>(SV4%kk#s_n}4?p3&s00SLc1_}dsl2N7b zBmQ|X4{&u0886LiJcqBVkWyXJovI@s1RgfuN5RK;0mMz<8;`s3&B06Aj2NJ31KuNQ2zReB@WR#%7%O!~Mh8~(Z zed?<-r_U_Y0zpA2i|W852nD=GPv}J#U!0~(pi>90zxs-3lM8@gtNb$FZ}H+q%DAKm zg-93VTERqS{C-Q)ZE0{FC|PkT4C=X&dS8=PHc9EZ)iAkx#tQ+bSj^dIwRU<-KD=RN zU4;-)?SNsZjy~oXdht&$(Ovi4E7CLGG(uFJ3zGl^N&0gQfPoYq$+P@#5Dn!k)c^qm zz}Vi%3*a^e2PZ|W7MIJ$^+LesgoqocV4RAIid?*txB^8#=kEeI{MQPMF#{^)|;t?=1ix)0( zm7n2#5jqYE5eo*tDmgS2uHfxJL9sC;i{01m6CtqO1})?>`7z!7ZVx)r8en;%1zO1F zCqMlez4q6?(&blNA)ZrFQSOR<VYj0OkoZF zfB`{!PbA9(ka4wMe;&1HKTAeWmhm9u8qWu)I`_QuL?01UC}^e7#*7XG%`?^~?wS4e z+s}#kU>)xiUYy+u2wIQEU3XaTe6uX{q@=JG4?prqSMQIY5_s>4eQDFi%`|@O*tfx- zGjs<8Ab@S$QBty7wvgQd2&!wUpPm#3J$le@?z^A<^yinQF=K-Q zeu3EtN&|x>Y+PPrWB5#UlE$K&BDxx){ytMv98<2o1)iwRLu%`&fOJNUikAE`8lpkG zo?m281b&5CfQ#`uV9+4C@ur)d6k1bp2gv8X#eI%4Q0N|*kv**1)yd3r(|Wd^bv<#v zujF;L*@%$A$$<98fd>v2p1$`U2qF>c=m6I3^yxE7XH1>?azy5xb!9<9MhBX=vS7CZ z0vu3YN_wLN@XE_d*D!K=W%cScft?VuO&bK3e;DOVFbW_To<01WG=ib<9CLH&`RAUc zWlNR_KEc{GYiR4%Efh8ci6H0NDT5#p2Dz9dF(uW*AWmJncBPITJ2py(I1|x^Bk6vU zH+mr=1V)NOK-73bEcQJ$59=2#FvW~W@g&fX;PEG)q9>nzhK@YyXu+08gvbO2I+Xxv z+;>rxP?HoS#HFfr^`7d90u&t2fFR#UBZHB2 zjiSzIb!^+N?xIZ<9nkNqNn5yHG`k8LRX$kH>yxPnN9)mgG|svsn!}(t;kge6^ZJAG ztv2$0D!DrOn>?{|kKv>)9H4*{O!vvpu{`o>4)vI7AN<+486)bFQKueb_7G9DmNYqnx zI1KWwv2AUI6ybGQ*8h{6*>bg1*5CkP zXH<-w^n)MJGtWIok39M)9eUVdV(v{~Am(31fOhe(zUGbLMFs|l98~Pio2LN>T#+6; zy~84w__;!r$>QHPG8jO5;0Xo;>upK{14zA$dgx&~?9jsm-z4m9H{QhSMgx3Au~1fu zGE*JV!dl*L@455RdbGR)YpOUY`9)^k7S{Z+#~vqA1!l^iwn#Rf3+LneZ@=3#d&czF zbEL<;APfB5M|7mFX-KO-l63yR=5R=NY<%m+za_{n>@;?_>8{&`if1p zG0F|edA;rOoXn7_<%uMCCm)6~v4^G%{0`gmeO-|wkPej))6k)(h={=>k3J?q0?IbM zYe0(|;SQe38^olz?b9)`?gus+C@1PvMRPzg08?lS+!PJbkD?acz>oX$Vt9?g&Ra2C zxGUy&!zKn|?Zc1!o=!RSQ~~BA9x%|HAP@H|ytA&|QjN+4kHD6~U#)y~=r^ z5*u1NdbtGbiA0tzUikjR2@__Nm6fHU1hoKx+9Cm&PHcKd9(5F*GHjTuZe1G&ct_7Z z{SD#|2b;OCeD|K;WJDFuAJ? zL`z&nDzx{oj&5E-9`OieNu@C9bo4WRr#U2~Sn}v8fg3$9KQHk6TM85u*^RT|tm29J zGA3*Mi`9GPsWYdML4v+^4L+c(iJw1ZaPxAFEpqVro=u^gJ(j)q-kY9$`e{1jj5DOf zu>l55L*3Mo9`k+&zo#c}%!q2~?*^c=qZJUe9*uObz;&OVuwCm3fZ(X3kD>M*IyjY0 znbHM%{lbRr+_{Uso-}dc!uj+56-C{lsY=K;ux!^ZySaK61RasxJ@Cb4r9u~-2Nsk9 z0SI^iBRufs6UU8x^2no(eDj18j<+<+-%@Q(g{*^5wE+eFUgzlp9(9}7i!Z&5=Fgo= zW^V;CP&}dNaHzvX+Q_1r(cYm{H$gwdRj$IBUdiHpdhhEH3L7=la|u$FrAdO(R_H+}>^rHv(@A5uG&w;P||W@etG zDqsL}L5_k1D^%B3^5>T-aNv!0U>%@W$8pCWPxt=jKG6`&6&dhE?wT_~AbBzoAsL%A z$T3*s#Y*wBwL@|1(NM6yA}IlTj0al&@)dx>F!m4!SZ-Tm`!Zn5PPW!*nqIvA_!FKA`~Ws z*VUyM_7U%iI|WUh%2YICTM}ij zG73?tu0iu7yyFTWfc*SbS6@Rv{^?Hz&jp^5uGnzut(!P9kO38l&qWVqiX;6hP2X1(3>)Wv>WjXvGCeAv^NNk=oxO;U3RT)YMV0+Up@8{Mp+2tW`3a8d*6QK0gOY`BB8 z6S`AQXAm%D%J)L5x3siW{4F;(>Xejv$4l!PA_{aM?+{1ufb|VYBV28#8~G@u`c@<; zSjO5MTFbLmLS%R(Br8*3)YlkepsO6hWIF;=mhqZ|=XAd&9R%p;5K?7`j+}Akne>aR zuBO2U9VCDN{+6S}o|>bgAX9X}96U$O)-OWf=QstW40gBo9~1%5-3a|60Rjjq z?E#D_Qa+0oEu?8vr_rogGev3u`EdLlH*^~x5TH{67%TjBARGU~Lh`YLl>!M~4scYx z<~!a%<|d_t^{HWtx>)JY)t>{Sd^A62Rou=PN$?|olE?VR174S7fQz7U2PXjI1x<`0 zC!b6|y!aA2>gc1z8p7{&XUW|S224<(?|;l;*dq{DX*VpD(|WWXFpATXGPUJdw$TUW}8RA{NN7};(EVFH4t z*i?hadiwX~qb~?hQ2;r1VUfnc?-2!9vt|v=nKOrG&X~?%ZlM4LSSz?Gaq1>gUZbjM zzPS1O^F$rQ1A~Y_7gd_+2Ld#p0x54DzsbjJ*cYgLHr{J7|NN62o@Yyj=)DK1LnkmG zK&}6hB)OCT%`q`sg8KmmZhZau3XM3Xp zyBiF6Lo5K)mh!;NGT>G)(0bH6y2>Xq`O`en0RVy@Fko)4I&C^)L>W39>N3M`Cr{oy zZOV5qvNIA=x4uIpM2R8F?^_ZWYB5JqNwKYRxDJ3!QNH=hFGfFc(7^}4c;u0X zOX8bE1cAgtufY!@B5Hs@9x@102dFw2cKR9g*{2`7y1;2e@9+nLJarYq+~z|l?Ay1m z$k#Wty1)++_-V=~1Fp}{05yx}@AdvEa~eR;mGD+Et_&VGZd^l)7cHb&GiT9)`SU~v zO33Qsc`z0Tf19m*&9Tr*AXshv_zj`VhZEvFIU0>pDsA93#CTU2`phq1B@VMdL zLa82V_zyYcP&(}J!)d_&`-{|7!iWwU?e1pi;L}+RMFL<06`U_ zsj{6rX|Hzebd*4d6@g&5bn&A9eD&p+i~IE1cPPAfr~PS`#KNFR0r^A-^lR`L=U;dc z8=XaLY}UGr3#PDdD07LE5Vr6k6rx-T8?zu3`sDi?dW5ogKOI&!%MP^>v3#@`>gw?a z8Go4xhw0g~IDlI8-a@@E9{ZavBgx2xS zg#rWs0LXMeH^t(QtFx+>4Fktq_Uu1rAh6b!zw^S590e5Lh}pD-@3OPPvW2%9P0}Jk z01bcV=OsNL4PFVjEJIH@g*I$hPusU|r(y;NCB-G;K0!YQ^y82{D5Qj9I22|ultTsi z1=O}(TM_B%+O?ago$l4E7j@%x2QLTXg%Z;^pE1=;Ohg2<^mBmpYD+mpnPIHP;ft8} zT&q%H>rtj(P2(*b%MM8`b7*#MeQ{`r4qi$@OLdo z>{k__$3cStd{40R!S^_T|FIv>+ulYbAWr^aeeaEe=da;69uv0(Ai&`z=xGl^&p$pJ zzyUfGm$Kn+r*;Jg1oL?$Ur!N#zz1>LX}zokc;0^NUt+EN=qEps=>tQ)S4U6GNPuqc z1VW`Q5j4S`9(O1WT8eYw^>kWdM8F&U02vt3AhRk)a5Jo?2LvX!!+fmmzSO6dW^IjT zw5$X79x4kq8qopVFS!4PoqoC_)$OM}K;%|N#W8cntl0Q3zx+J|?+Sj6Ls8;qF@8_l zuyrkM3|br@fX9L`N|(-^U1f;8`R8rfym`jx&pv&1|NRHt+`s>R4#BW4k%Azg;N=#W z8@$L>8eTIls53vU3*XXlJM)c=4s7P%vA_ll7$A(9*p&6>H6o9|?|tM(ny%hQo@+}c z6E1O|+H(GWhTjhaB#pnBa>5}1CiZf7Y~3mh{?esOh4Ejpd>L(IK%mh92L(%r4^oC@ruC_6ET2Y~48O?1-k{6*b0!eFl zm8b^6JjRT!mm#%&P;m~}ic-y^Ju0H^hRTb)3NEIu@M>{?mg+K4rAu(}Rb zB1gR^T2>>3I3*#=|Dv9#fUes|(;w9BpLO=x^v2)+PXGS*yCTJ;qXl^+MS)&oi*XTy zg5yGReQ0kHKcCB12iG}1k%|;x9W#0Nevgi_rDwfZ zExeC~!;j!|{rdH3e{ZiMc#RQ0j;Kc%dX%Ao9K4=C7xM_;4q(8ci`U}u>#|QFRjt-4 zNUQrOu-aAaCuXHf>(P8iRHO=**8h&k%BFX>){UYyQ#6}FE|21n?3qhdOt5!1@*dUCX zZau7<4&gC~1K-S~$-hy*Bgzjo?xI$BVdHX&L|00%aP?-{_%;5RB&5dm*( z0^S402I0i3uenwb^kOwNbmv`n(Y}3p(@X5x1K?=xNmOn2Z?ZeMnTP2d1^^M`JK^!d zu)L0O338eGdcy&WW+-wX@cq zL`ClEYfQDYv-TF3@f$7S&s&+4z_60sqFy>xkW+`xNUD7SyrR{7PT_ZqCggSZQ+gMO zAQe(d5UcfQ`se__{-mUvJAnIp*coSt`x@!FutB!XR9P^8{sKe?9^JKT*9I?<5KCzL zj$%96LZvh#Ep?Jmj^Rr%%+1YPxqSKP&p-R@-@SYHzPM-49w}{tAbH{}A_RVnZA?5! zT0h>lA=KwiOyE@zfGw=hAGtpqEXThM}H0yJc9wPNazp=QDRt8 zS1tJk~#gtB(^2GYFmQ;aD zd)i1Bz+kUkyGDe#!6P7b0SHTDKBt&6_s~qmMB{z8?lk1BtNFa@gz(5#%|U zq1UJis{#P*i?Av`b`MDz-y9A4BFzzGoxSf7^{jccCAN@$IWg&YCpha%N?4Aw;Txls4 zxq_#Lej`|m`9>NKhO|9p2I}5>G^*CmOdj|tJpa(IuQotp&<3eB9YjMghtwHV3`tHD z$6K=I1*N1M2>?cvzkvjMJOcxCqYSqKgC;S6+ex-I&+$YD&K`b_hz@9(;&28bBK)nU zCPtGdPcE4_e(WRsJ8iEVMMCr|K;*lnk4K9=5{h8hb??1h1VaFV($dnEpMCuCqXP!) z|E$&~s7r*v4k|bFgi@C-ULuH&da)!_bRbueh^!0-Zf(+b{T(aefI))<(o7oH*61k% z3WyMR<#s*fD?}E)`Fav9T)03Gwm@VnWQ0IZXzN8kPuMlq3F#25c|!git+IFN$CdVl8Wr$hzDt+(G!J$v;MU@VFG zP-&Rm+HarfBlMKWX2-1GR12Rsa-DD8(FAS6A_U!(h6sly(&DpzTH5`QF+t zq_cI(Ntev(dD7q@sX!ydtM=nR{eaiPftDmA))*wj)-ua_t}Bv#K*sZiQcP~$0dRsw zFyJTU7=}GUM1I_XxpU{yryqa(#Ezovi*s}H!e*)f+yOYau@=y;V2=d^ILdbIq(b(r z+DHY%gj)YXn_$s``R|PW?6b3b_3C+M*REZh=0~=tPeG=XfqstHOV@o3mM>f8qzklH z(LZFR5%j#C2R86cMjvf#Uf3)K4m`j`)@zE*I_N$9h=t~BEGta!y#2P*W8SF-FwShe zeQ(%5X?SfBWeD3VQdJKX`rlhc1ab|dEzn-WGsY){Hi@M>G;2#18^ zXTHmZc$qE1NM5=X65aiD--&b2J(tcs?|fl+@w*x&>+2Qp(Q~Z<0yYZzv+gQ=AUy^V=b75qOJ(2M-pc;9mRe!$6?3m;(Xwl(7i-BI5e-en^EvI|HOz>@D-4slfmo zsW$u_>q750S^x{zi*>q;*9dq9C-M3n9Fl86ruvN6Cx%p{@A{w$j;}RA7K}x zMRFMD__1F;G;q+Mqt88eM8}9q9hj{6+BgJeb0HIL!}CQ>eAA|l&JBti52UqyYDpKs zAR!;M!vF-huI}Bt(>}bB=sNn{y)pZ3nnCJ*wR!yB`f9z&g80`#dHY>0DFW09<7lPI z>&$dP%m-Xq9;5GS?Q6Ua#=p##Ay?=>Y*6!1qS)XXB&^^K;K%G5pbKEWkB6m!B{u$Z z&KV(yMVLG7C3=BCTJ*`Ne9@o)=M`68DFDU8500Yk+qO|&et{S*j1$(%>umI|4NJ8| zUA+Qtw>SU$*L=MIFmr9A6*3=f*i+rKaRc2w@=p5U#TSdxL>MoS8?}f^*wdwRPXGpK zU_gx_(u425`;OqHXaXwk#eFS##xmTK!T|8wj^=S*s1|>&&*#FcM_c6{J$lg5#~e#1 zo_Hc1c+f%ArArqF$RSdYG|F=kMYN#w=r^W{2noP|2pX;%fC8R$SDg6bbieKmczHA`YE9x>_XH z@J*9nykp1WPd@zMv3~pYd*X=04|B?~T#aqX6GcRI0SI%t+)&CD%RF{% z{DF-srC^d2n9i zU+uY;9A(sPPeemU3lJu)QAV=DPO-I1NVfGYQ?=nb7q6oQAx{JVIYU$sAWE>rCYN`B zc{-jqYIq1o9(kk)3u_*Q7W=8K(T~GZF+%p10veD%efIem=)T|FORH9{bW$w11^|@5 z@douv1_kX6iz)$)Yf0yz6osO{3j++G74k>Vupw=VPf%%`sV>jP+uLbY`&cEOS z>c$QLz?yD(AIeZ>IB(tpVjJ|-wk=y`=jP=_416Y{14YHfc6D{l9x*PFJ!Jw*;1TfV znV*}7l8uDg=SAvZ;k>#3{QQ$ohxO>*{mgFNx;h@7*Xa8K0wUkG!^lo7V$^OTe!K(9 z4Z~D>InZi5U6AO&0}mvpIg>}-su6cl-_WIBx5ESYyUbJ@q~-a$Wf**&S1nM&DtlQn zjNMU%{t-1PR33lCcrUNOTnU9gbL^J zi-+(;u1(1I)Sn4Xz~1Z$VuMC$8%Tsvu3IU&ky!PtVtLZL&-?N7g zr>n2MPV~&EF{1?rLt0j_MHJ%lE3c#x=blI3efKTB_wRQF$iubZnjG;Pbs`$}8NbKGB=#nvgZS@w?4a&N zo7`mG-R+~A<(hs9kESzV`FQl+RAhY=A9Y#jXb;B=>*|052GMD!pCOx~scNWj0CxZY zb=&ssH2U+;zn(K|=Iad1b0{TGoL~@PWB({FE!ks$(jEf{aN}&>vBU1wtp_Fp;g`6) z7cJbW;c;J$d0@c)`yX-M1?TOZR&|gmWuP~9v)qt>-cejE>gIL6+*TXOezlYvT53hC z_wWZ0YCP=lBhs4FG=411%IX$@0X{l}8_J>uDz~0bT2W1w!WAm9lr{|z zVVskO;n(F=I(}AZq+JrmYw(_5@;~7H`i1bxlOm|gqBXy!`P=c5lkpef&fPe1{O(mMtrs))22;#Ql>dTc%)f1`qLFRY{$%ow;#ur|c&{-^Xe!^B z3ykTdS6nX0p}LwSQ>p+U?VGPBmwq++^WQRft@5M_L@WsD?mZz@u*U%caRc+su%ooZ z?%bh6G9d?9@Cl#>RZ?8M?BfqVc(_mBzAqee%u$XZs8yIq8)(DGVIe?8PfO7159+GQ z;Ih#l*lxRPjS(V5xma#ASE%(h<)&*V?W}Hc{O%;)R|eSfuX(Db->*(u8~qwed16T; zoFBJSf5XOHt|VO%#xLV%m#QXDxZzP_JtAy5%zwOobyDWiBMmSnu2L}7qO?sx8|u|- zAJODz?%e-l?>gY5s;>8Wvz29+Wp{z4cj+L#O0$3{hy{D^|7bMEXiQ8@qA9kR#Mom6 z3xX&`dXwIJ@4fB9F1ysN^Zxfc@7_0e-o7bYK!v%#-!SadH}Bnh&v(xG&Ue<@8!0x0 z&Em_4cu>-4d5C-o_K-|9N2FI z7Hm?By;gZ^A5Y0X3pl@s)Z8V`VKecX$>QAQm<}N$VKh-4^2Y10f$T*0-Twgf?c0}+ zfy3U|@U&<_z!uBr2^^FF1Kg&$$R^ssQy%s8SAN1(m}@Nz3)tps^BiY!r}#KTQTECx zN|Yll1aGi?`}Xv}Ll3i_1I|T}OSeZivT@l!y6^vnc5Y2a`jAT)Jy9H?}}azL>fj*a(!iw4OKZ^r9jsr%T{d z&+w^}s^4L{fC0>jc~T8j4Md61NDPhu&buOt25Vlldi7fRe%#oXj~&b0Agc=WRDt(+ zZZ4BZe@^3P1qd(@en}7uLCP8{F)xp}fN`igm^fj4-&(b54y#wMuAk0%P#IS}LI9*F z7TKna8yKl8K!B?ZhHruyyzU*d0?1P@6H}^Iuf6&T*RUgxoOiw_ieu%euo+6)cA7r% z6}~t8^Y4bs$0!tEZ2FLSu_L5!x`gyGkoQD|L0`jH?pH(R^PNMLlR8`aBAl#V&YJ$h zXe0?QI87Mv+O_LY!$u8R7zm1f$Op!Y=b!z}Z-lqC)XqQSxFAB*+hc{`6-W|OiFWSX zNuPc8DgE}j-|;*M*4H6iP~bGKFwEeU{PpjDr>CBLf^{6!e8az!#W6vEsScGCTvBNc zNFX;6ubCuXyT7pjSO`R#WHd=6u?r>K^3{0C5eLtj;Mf=nMNzyC!YKj-Eh;5l$e-g zMNZ@5r2Z*9e$cnC2XX$b)bpn!UyjG&AK+hxxkq~nYT%lWUzuo2w=tM#% z7ywu}eE0}T45zGLyJm!=s=$&bhV%LpY+iK10Rk+Vqgltyy0vPP=A@$PKwQ75n7OlO zz0|l#)6T1EeqbQC zsY~BYT;Ta$Urru*{juMEOTBydp`N{Z@uuOX)>s-)pqC>mV}kjKQ1x@a`#t^f56|1j z7A4af*hC+Zt&_bjn<7H3$QR!uUei_@!Xt9CQ=75s`2o)o;pfZ5Z@Tri+o)rwj&_J# zg+T-TMrTXx^3Gdlb1c0ZBgkCv)?wu4&z(zu`r{utRIbFqlql6O@tf;PPZrk=wd7+Z zFp6~;9Gqv|kOq3}m%pT@mt4Z!3jB6mN5Z)uIJXJlwFyudAST@3#qHQxq5c;DP-tHyf?Vq9WW@&u|Yz z>60{{0fB$VEVY4PW6n5oM0kTw((o_7;NJ9#0C~QH1jRD75gWi$IM-n0fZROl$a7jx zk`vF!g{wAOc<9ZVHRA<}{C=F+>|hx5w!Jn1O^Y00^HX|fvk}F4=dHJ>b(=Ppx}<6-q~+X8V;FU#${V&gE>mtuXrO{k z{gaPBvX3oJhJKMg=6w1dsihnMNHaG%<-;_tb>x=IOn8NqZo;6c|gL%}w zdk^6y52LPKy9yAM$R$@ciO!KqFaoF_R#b{Wj|`Yn8BTa$^zuLc&cHb~Hr6j?g7eW$ zMwkEwP)7Kz_{~SnlA00#_z(~J#bb}t(Ccp?>tR2Wi0H{W~<&mC|KmM>pMyLaxQ+!HyHNE&UI&Xt$9 z6pUlyR9i$;V!e3z24NoOvf!9OmC6GEWTi)8VS)I+$8V0hDL$IgG211Md7ikxT#B8| zaOqb7lJ7Ow4rVZ*H!$)zK3~m~RjXE;6UL5xAvZU7x9ntSg8{B8$T`kr!k^>#Spou# zoD;c}P$^#A67-IU1+lSl@q2ddnm+EkZ{Mk1yVjE}S~M36BVPjqV2FGD1c~%KAB@MQ zjT?CrQS9#`X|SqNaIJji50IsS?gj`{lbX$&H_@-2_$7V($!AnKv9hi6Us1zrdINg% zy4R3s_#&V7d$q_>iUa<0crBulvNNWA#*zURaJ}&DzcI+5O5mXbZwc@#f z0u+2v?AtH^;1Hf2@!4nep!9x!}Ol#JxX5ySmYs7Gh#iTaE z(@Ig3TnmL4YCumJ$Lqw8>R_Nm(d13pbfm8mBrupO&cnim3#o0}c69BK!5j@inH{Sv z%BX=emEhMl*##gd9*&=JbAV{)e9^%GcZ(C7>Hj|XfIj>56AQFyU;uOFQp4hYsP98L z;Vki6i^(4h;B&E#p(B7Uk1EJu|bEE(*VP~&ophRaK98w zNz`F;IdrEDdn76_+O%s&$Fq-9&hc#K$lw~_{2Ed;%|5^6Ux_i=w4xSg$+tHvN#eW3 zo&e4b&x-&Z4e>XsjdlpIHU7KrKH0u?%lJ5}s^F~68!$X3I0MIXa(=F6_2&x+aPcya zWtsJA$Khhxf<>5%Vxx~+x@ghA8#ZdxO?U?4mg+OQVx}5iqhx4LZqS8=MYL}1TE8x8 zn7plIxnZc2c|bB}DBHG_E!sXQ)^$ z5WPN@L}s-^&K0@2TD5DlBHI@uhO?Kiz!QvrKk~7O(YAPl~=XU%h(FynpSLSL}Q}t`*q&oue!-d!^~0IvDxYmz*}hhO5Hs zZsliX0R`}KOh{Ry)vA~mPyXsD`sL$~S)@prI>;iZsUiGndBKQc)FZ3*zOf{S*)EE_ zA(wlv05}MbLXmH$>7UNgfx+6fYiRYVm3(f{`~8Y5ub`GKTgj-1WpwQBZZ0`h(n+~4 z237|ICCcq27>JT-A%LNG-hPXf2rFr9dIbhriVwS8{4PNC!!kv%QG&=AM;I7$<*~;f zr+e?apXXhHe9W&DR7(ZuV3-?^iPzJ*;#d6yWEO zeOw%?t3v5+(4cEr*eXV*W>oqx+|)~;v<(9TEh?t^XTWGRY0`wj50o`=9#jt!fMCcb z9~a=@Mi~)LG=Bqd$9c)i zJImlei7JtHT@-Lt*Xks>lpbngKXwF6{2z1m-Ul9}<}F%S=^q?}06+Lm`}gf-;In7< zZtkLrW7N|o(c1jcQw#t|!*0HXQ+AkxcE17_UJd4E_VFB=I%Vp*Mf2yqBK}s@(sr)` z;fR??XaAh43N9ExU`>=lI+~qj)~sH`uh)UNh*1IwpPDl9`)BLbZ!m7~;A>N3Vxs*d zd0lgT940Bw$;ZMh7F&9dU%xc zVG*-oCo5%ue4i@iRK`tt5BSWjTek3KRwF&#UZBBr`kjEl)IzoFiHnWoy6djza}S;f zi@wN-Ge;OskkqynnKs!G@5Oof@0PEt^WF2;em$AN=fd&+%_4Eb#Rp&;f>5MvoK_Q1ci@22KHV002;6@Gx(k zO}m`HP(`l56*_(LBpbn>KAqH{W`zeeI+5RDoYbfmLESfBu3~lO~LRM*QC6(wR_zfQf{#Mfn8< zKWCHr^9BSMXeXHvUx}(DB_VU5Dqaf2;*ZZdc68&oG2gsUr%s)Bx_9qt>k>Etftm!E zd_cr7UV6)8E6*&vF0#t>&IaHQz=%LIKiV<5xf2#D794^>00m!<94YRr(2IZltG(ft z8xT0Wdgo$LXg$gBe;lU;n`vrVn%^QZf{^G;7q&H5A$W^@;b5^jp~S9Z$4)eJ<_t#r zhBR91#cMz)M8+*$N*o`S=MdiyuLGM4-XCsbrwr!}iq z(Py80B0SEfOh9bku_Im5^b#g-sz{G7yl!22Ge{U(k1QeDfY9p34eM$8wCOZ|-dt{^ zg>$W|5UNtw9^$v%Caw$S%xGD@W;nnA&KIGjOo*udr^Cqm zaUV3tB;1M_w`iN6;-Ut)v1fqTi%N*Q@4c5Jg5$@Hqq%c_ptHg-SJKX(A)NtKGhHsO zDOx_Ca71`?GUhF}-_Fsw0@+B+<_>849saIXElmJ~zFbDSckf;%TjE;6xly23od;ag z`yYHrfV5QJtD<$y0hdmOt5>h1v17h@DdX^=m16Ek$?cvCs=ymKB|speNk8`y^_Rc= zrNo0+L~pS)u}JquC}<^6Xi&{4^90Vr~Uujm9)LwZ#^%6e39t>|ZJL0N?Qi|1t^!jA}G*xU; zxw$zkETr=12DvlERk>(^%+-Qnzl}ToS)O!~e2wB7)Fq2w0JTFrmQB8{ogRmWhVRBX zN5pK^$`v$g#!Q+iyj^(C5L3#`$Y9SIfDf%R6$#Nv_Ja4uifsbm?ApDH7B5^xqeqXX zk3Re#cYs8sh9e6~)EqUH6tK|H=){C~LD*Uur!u?OIIfBD1{^y{aeX0XlDvs#Kk z84txj!Rya5V|*69`R{-8@vK;}g4aEsQz7IM5fAcj+NIyTT7*lz3nj1Hwr%66Ma$N$ z?I?kp&OvGBj&trATFzas7Kw6%!1eB=!ET;F&q-mcD2GRFN+BuyjWu%l6<1KFPMx{& z4@BPdXo^Rs!Y~I1itBsWwAP+eF9Pl2Z@Kk0{=Z5YMny;aACH#zSENsX)-GMUQk%AI zIZcAJj{;9{dXOpr!5BosSPA;{vQzb&Femry-A7-2`Q_+E^XI)B7aNNSVQVNMRUnSd zJd&AVdVeOV0-USIAAg*yv@W;^0dM4DB4!*tX4b7)%dY_v=AA&4F$?DY@HgRMw!8E0 zyE>(%rI6B6Pzfo*bZ^~MBl{$dY`S%-d(7W%yZy6kH>@MYb zWdQ|D*pizxHYsT7e>-N3oni?!RKEsOMyZgxnnhMkb~{-YUWI(s2~az1As#;{K_R#s zS>$7CtCfM@tr}k8JRxd0Innc zw(`6&l7He~k*-8-aO^jU>wr#};7-h!t*_%9a}4JQl_=;a2@e%vTNQE91%DJ74pk}$ z>rb0Hg+_lpiZ-lY$L9@%KwSmV-d{9huWIh$@9OHED(!^%f<7C^$zPiQ$1!EfWEwbV zkgqbPf?A;aRY+)S-EdJy^mBeFxKg1RXg+JvKwUpVr7raT6PLDcPjCF|Up$xJfA3ws z_Nok4HJgeNpKzPlQ_-8@m=-C(90HJ7v~U6S?SDCcrXkl#u;ya=F(FOz{0o0#<<2RS zCi32P?cgDF$K7|c-Qayl0Sbr1gL#Q4*3`*UHqMzj<4?Q}4WocG0U~@GN(_sNFO2RH z7X%<+4?%d}5Q2a(jpP%sc8j>Uo}$9S6O$&4f4X+vI%B~nz=hWJ2~>DWv5CQG@87>a zw?{ow9%eL+31nNEu*Lt39MM64&^Q2b^G@1VGj%E(5pp4${Ln) zp63=L;K5P;yh-~G;F;ydd0%e=`;!k$tRgrE}6)zm3d!VXuf z>#x|=aAOcLKm`T(1yD6?Ed^U*v+;=goG|mXqYW*BXCA9^>njbp!dV1oir&y0dwJSFCl2keW zxcn69m6INT*kR!Q7>_Sy8z$Net7lef6&2$ z2W^mxa|l7QRB^6Ag8e{%f-~~Gs?VG_VFER8(ULokn)3Ud`T%IQM$(H{c* zD5M>bN>ZB-LvH|$j^@vue{#auu}|mcNd5ZtjNp^sG1IA=H=?Sz} zB1dG^&qIs9fP8iIm}u7y8N!4ffP&`DnlrdqwQ`lK@C#m#oEzkJ5mitMd8JJmpxkKg z4?p-BU2OU-(TdlB1~{|+j&tUW89q{$j8L?f zRUFuw_lw&>d3<;ca*)t$0KrWO1clpEAXxMQp+d|R@EVkn!?lBV*Bm|P#as3{QU^Gv z8`iC(h7B8WBNVQSE`!#6sAI$VfpODQEH>by@H8Wow;v@z-yR7Nz$3`uS#H>J)iBX@ zWi$aLj_LB+oRzmimr%Hq7obRa&YQE8%V~I(EH0W9A$&Z{V?}Gmi1RQ_s(!{fz84-o z$a2s8_P6xtFMh#*4jv>&1r%76{Sef31JUfYmtW@80NC+(j~}?vTt9#Sls8@_fnis1 z+=y6IlhU}+TBOa{Xb0yTT$uIbW71nuGA~C6pozenuS}<%>&~a8S-0V&;!31XH1$xg zQ^-lqXAlgVH*e113+YV#yvNA7i8L03gjSiF@Q^r1utTVZ=-9b4f3B_~=#<~qQyLyE z^`SUh5H2$`=TA>J7~1FIu@x&;((q3|d2aWv9aCd1y#Zh2A`eOo&r;^GV?RHmA0%bq zp$lw?3uFq~#Sl zgbWeBoNM~Lgu^mS7-cX1V)g{^UMv(KQshyu89an;z5NbeAWmb?61>7d{q?06>3_lt zMflS2l=c!?%wN;7XcYxV?@JIZH$JbnaR3mY1uGlxQf@4PJP_3!2svHk^Z+*O5-gcZ zJg8|mG;@3wh(t?-7cW4aPqw&>Qo?#(6&_~yo;}&HtLuxijk3{olFfgeFa}BF>tCTj z&cFWk2JPIr!!D6>^N!22apPRIZrz5Bha#GKrQwEQDhTo!+^$)M&GnR4yxe?`$@%+< z@XFp29@$87ztpsVF1`uu@5{w^AWHIt@Y?Pa_m>$KV2G6qDvwGwqY2pIPn&a!=%{pF zp+5nEp-07cJSlDsWCZR_aogZhP6&{U6v1VE`p^ge`;czB>1Hb;CMC!96hV<}nT)8{ zoB#PY{of-G3xG9?y>*>rW|FUEHqPyB@^{}NL188GwcXCAlJeZnTQT{{>-;;O7PI)1 z{=GlPp+{YGndu^}0!8N-;M$-{W%=^u^v+xVb^T0SV|1hhkm~R8Z;g&?g|^o_w{N#o zQTE>A;4&Fnq)l-Qbbf#y<+8aFT9nvI6~xf?9XsjUZ@&3>N@_5Q_bftHO>of4`t2q^b zJh?KS5KZbML&VpJYmD%(M+^VL!+iCXm+6gv|A*hFmyDKGpFjsJg#eT_YOpo{$c!9O zkznOAuF5cJmswKp0`n84i)T)s;oo%j>=|a!M{7|AT~Q7aDk$MwA%$Dur8gj}QUU*m z7!u}p4=Er8@CM@NVZJvR1fP`L866zxb4;ZkaIA?^;~wGnh6DvW>-9)id?wEE4#^XU zrINo5Kmg)24?grT-Eh-QJb&_q=cqhwi$CM#sDP@e|3P@8@4oXkm#-o%m!Oq1nsS%N znQ159-qWyj9TZ8ktldWJQYXi{W1^Jt#M;iZx!sRw~F<)L0p}qT9gp{9Yjx&I1)`xbX`Y%$@T$@f%d7qzWD}4$L@q)T~JDm>Y0|f$vpd<#8 zt6>ujjqm{hj-{GQ2zdYgeKy)RwR{|vgGH||NaXF&oJ9{)LGHOoreF}rLhIJ`s)L_+ z9H3~?!iC&{5V?DR0;S#-ZrdpI`_xY(;fQG&KID$Oira2+Tj~%jg1FSX zZ@)#){PsCN!J@K~40Vr3c}9q)AlI#)S6=yDV$QuI>+p3=0c^xDem4ypMt9zI7cE}A zn3gPFM28L?vc*^QaIN0i61yG>(Fq( zbzdu<>@DsGi1|H2lNko+hBm~JBZsMWojQTF6M_H(U0BNv7y!WF*r!jQeqi$V(ER~a=3!?_b zJbdq@iQfkV1%G?#B?c@{KJ{zPn}!1llmleIm@F}ySS>${?>%tf0O#!$8`x9? z!E&&o)p>e&%O6@R7KyU%2T$5 z^NA8E$oI~hH`gW?!aD@HuD;v}t`)C^IMrdz0D}*Lz6dB&z5Vt(NEan3jT)T|Ruu5k z&R3cRYW-e|HqtQ8_lQjsUiER!h~j&}=!Y@v*S|lv_r3T2`z^s30jSokUBgu##WI{8 ztugUc6C4#wP`Vm>A?tkC`>UCLf3lu?|Mn+6@u7KLq5fwm+VArl)e2w(;ufm0hPFx`# zhj0^XVwe>d!pD_ADx*2kcI2{%qZ^1wIZ3hMHcwLND&{EJM$lI)aIU&hIwhu+K0|g^ z7Jc#g2pTtbEFC?1lm&dCQmFPiy!OP26O_Gf9nZ7M0vvd?j-{&nQ|A+5&OnCxUc+i! zb(nm;MetdOmSMfRl2-#bAb}zTh6WID3^<7Qj6 z!;2meC_X`KOpFm56Kl%U0q-Zm&{jHp@W9g1BS-!|H8t(+o;|z!ZQv?Wz>mp=iba5q zSeW>z#jdP@0=?;sN*4eOfK_kG&+%iSlhsBQDEnTq(V_Rilu46ZK>>{Nt1rLIo8U9g z{+5ksDDfh1ap)=o^*fVgUi!2=ek@!V49Jq!sZ-b2(4`{M26B^tx>&t>^=Z?ljh2#_ z3>TsYL{-`B2)W!UrcZ7Z8_9W zec`o$O1$>HxPiR2di83$`IcMg`WtSfE3dkWBL$npIYd5p{kpaMH_QA=Aszjgon7)& zzXbS3hfQD3+#qXC8>as{(76Mq<1?cIfB?)l)f&82t5$T&ZMV@CS6;>IO-1r_FrdQM zTq2g8O&|X60~#}WG_Nmb31OZDFoVQ(=pjo6&qWIwkBoj4X&Wr$fl*Tr54ljLmpHxQ zqT=Wj6e^MKau_z8@p4tTgh&zi@dd=OBLV|}iN;gt`+|MTtz1(bi<(oannLY|h>(I9 z3g<)ZX|XbWlqowEjx~Kz0<2ZcT~rGwg0g*6>8T)kDXt)ad_6^$En7~bM}GCE{d@NO z5Emb>w>0KV*y+=!%|n?PKYK7x7=)~TK?4FW>k}L`>(;C-CXmf1U{D|~c>Ly#8@?X> z^~fg4Rg-_+woU7RCrKf9yz&1Yf1K;7A=IMEr#vn^hE}awvnLA@loD!Dh6d=~BN@4P z?R^hC$VPX{tS$9ibr4KNtw-|bL&OZWw<%+Djg z4<%#>@xf@DE;Y<$NgL>f8=HI6OPX>kVrB4PWKq)DOs>Eb$t75$r45*MFN_=j0X)Je zS^FHU3tKo`0)Pv2JgX!l4@!3eOFvJlIp#^Pa)@~D8`H-puu2#Um}3GD2t5zD4qjdh zj}r_A2^BkgUa*(!kU~{`ACz%MqyXeUF!DFal!p2SKE-8{sO-4$reW0Y^2=$! z)mO6!77XalT{~H!Z=LYG5c-7lA_osJYD zjvItpy{AL5t{f=$0}mU_XfmRFQCd)%)vp65x?6k^cI^SivL(G>nm!g$lyf>2-JoO z;Rx<`KxVNXVGoR<=_EACs*>dL6%h<{A3ypZ~-pw@Qv0 zX4P1uRhu@JLDx!JNDIBQhP~Vbu;?M9iMF1TCrxw(1z_pE_wGA%>eOla>)-#*-%+AV zqG{n|H$dPCuyMoK)-bH_xSogJxpNow=+TRcyhRlzqM|QC=rb6OjWmO$Z+*t6t@wAX z21fuM7A{=Cggz*dap<)ISp5J5s7;3U!Z8kgM%!HwPs=DuvD_iRh(9WhYnJ%lO7;Sa zW&Xh*p8q}l{pDAvXV0E?)k2i!-B1`Cw(j-dI)a4dx6w-wXKHzWY{>|*&J>T%l^bY` z9W8+DZZu1|{`2+MX#Dtbbj`KbTAdBk(fdI~<)-ysG&nPD7#qjZ>@59uoQ^+g4 zaJQ&Hs*DPBkOanaSvAf;lB|jiJB28IBl;M?Nhp+SR;^LHsSqTi1t`iC^KZ}YU9@Z0 zZaRGEAg6zd3X53msb;O(tmlt%Xb?`h9k9&R+jFcOdKgY^1iSf^{2r{o>C>jt3xD_n zf45U&8rHM2Ohc;5jN{VTFv%z2WE&rG4Z&~0HPa(gcpboPU&GR*IOIqhK+B<;n72wz zGn&P`iY-9p7EK9AJoNDU4;(m1-;Mcp`uw>+{7qbkC{28b!N8d_XUx`Z+nU2aAMvvX z18O*d+(iQjFir|DNuVM#O)N^SRk9&R%#5j%e=CeZz1#1&t&kUBoIVZ(;J>Dwef z@tQ1zSyfJ#tfoiRv~o^t01!1Wqy8@i`*Mn)@C zDH(Q(s}1XzR%yKju(4qCMt_7q{pCfv^2#f%NP*Y%n+HL5V?PEr{sxh9_pV(wnm6Tw zt!nr)`IUgqH6X`{`$^)x2W9xxqa7ax#Bq?~_-527mV*Y*0O>8vrF!-1aenp+9J^Qp z$Pt52vRfFaJ;Ff2J44FM>hyP(xiyN@Vgze!q=j^0$YDro)JUfW4I5CKHf@WD=4BddurnUhYug7rAwF4g8B0~1dnrUfqj$PkC6t3@E)jrB5XeFmRnh@ zr$8fEMiB)q0}coR$i0#PU;x(xy(>VXed)y)ZE`9(Kq)vGZ6&uPTJCWG)Zn4462E1O zY-AMc0Ed`Q`r1&X$N&PUbUC0oD~KckBx4Q%I2}2XL8un%fB6+Qx2Qy9AOOh_<%L;U z*);L{i5sU*`u^9zkK#C#;H1(U@aCMzH9=H|hQWnCE($<^k)3m#CxDY=C>D`N82RJl zzZ>&d)s(7ZuD|~JdPzx%B`XiqrY&0)*B2Y-a{?6n^)G+s?r19XjrXChJ*8?2D<10U z0-LFi&CTcj+n@ktdH39Zzwj2KY20_;S)KSCpa7(#abv&Z+Uozj^%i@zARGFpEQ;K{ zHq)I)P?P*?y|HN{Uk|T0PA3+cG? z*90B$Anl9IQEgnM?H=d!X0gFlO|I%QaMGxpHT}IB6}}usD8mz*oVM{}4nUgqkI(;} zz3p4jNzD|;SLh%1RS_t|(UsA!9k93tP-on|d$(PlX-Y0bn&}S+)NuhCqI44_ee=cr zLVybL7xhsZ{V+Oc>pWrnIF@(q)$1~DAOlcja=JhD9Y4;vI`8VMF zRFbWM(Lid_#EIP437|k-A0_Y@b0;er?FpwwHd^gHeOrhzMdL}tv+sSC(4sjsU#rN#e=47Bq6Xx>{ap4jj z$By$d`sj0p z|6(zd7Y`u7I0}+sbPSXXh2!S6(+ANpF>zvZ+40TDuYQr7T=lDg1Fx#0>sXU_II3+ArzcZx*&Hnf}KLVwxZEVhS zhOOfc@jai5*KgNA0X7vJ(`&E3!d~p-zx*YGwnEi)FF?p$mCO}M;+7#k2fz=2NpV#W zHK{9sQlJXxe0gkF6O{HWFtv_+JvIz2T&qN0P}aC=#R_4xler~q`wktsr7XIBB3G+8 z3pjp6Qt-M)O`2F>*D<&4^b+|5snop=e2O_2F1*h(h5kfO1Ff~A*mK6~kg~veL<2B* zsEBZ2jR3S%cBBUs`>U;tmZYDjsDK{o-s+MrfFfLH0k*7)qbOP_&NW(0V-BOtja&Ja zLY`VFK!OnZ+_TTnuYUbBcgSP|F2SS@3XC9qNbCp>u8Siw5G|db&p!Q>t5%@-fPG1w z(LA|6Z;^dK&IVX3Y7Jc?ZVkk1LEZg9uCu5hh6#$L=`L#(d!6348^;U4a?{PXFmW>! zcR*E@&7C{{?5MB4{N=G@M>oV-6$LhlP@Fd}Ko;}{E+!j!Q2_#MLWhrLauX!6xp}3L zE0lbK_(KN|E*|;C=T9dkCB5IL&t=ihazv*W3e~aJZQ9UFfBy%2T6t&lINaK%T{{kE zM=Rwty}G~&0$e}=79rTxnDFRNuX4A}9MD?fE!}hH9rWf~Z_}k6I&g?rr7hez1g6X8 zSS-OnHS!S)Rp}a(_)zm*tSJLlNDfW5oQ>5arVTC3tBf%&OdYwAY#<-G5bqiJ<(Ew0 zQwG>CB@xDPmT30km8lkIs5QWOE0iGMF7f)W#P@9_f0jS4-I#Aivlj?Z(5rWEE96;F z;M4Xu{KLVDyoGQmJV&(6b#heNgz)&(HO1zP{Ohe?)QkH?ARWpSNQ|}->l-UJK+LI? zD_1h`LKFv}pn3BaoK~n;uPzHqq3kwFm5FI{!&b;tph`vx>;^v?Nbop1@To>fIXTDa zurPGn1PFjcH24fiTjUF1gwj*DW=N`(5PAvy#b>vdkN+47^ALC{);3mfGeG17XkWc* z6^$7)MgW_I-1!vE%$%GD(_uvIXo&_oJX%Bw^W}}#U*+)m|NY`I3w#z@Aj_>&sS^z7 zyo_R*s^S!tn8Td~^^X>x!EhHFFjo(5IB{T-GT3fvDThp}Xqg#sen0$}Z zNICaHCCG)yYN+UddhgPu%S^G?Keuns?%8qi@zLZX5f-r$q1S7|Ruo?#O^YIcAi%(4 zIU-PBo%EV2GG!|nib)^8ee342Uwu9zU3jm5@7lGKe>tKfG>r+SN(>=RqtG=rHl+;b z*RNbv7lZ){kV74M!wpm^p%Q)i(MS9}PG%@JlYRU4(f#+`ORv28DqViXl^jZQ0|Ze4 zjEExp!0>L@7AF?M`gQBMx4a4?mX*;T$`}VU((=B$_^!=b9vTL0)vA>=W%4BE5)^6- z^wNL=`#YpA1h^Tt$1BfSY>?wspx|!9V)?HoAIsn3d?YfcdgeDzb1T?eZ@Zn^2mp!e zi1S-m?5`K0bl9g(o=mU3^0MD1t_)twAkhK0<0BbWxJ`TxJlB;nq@7JZAs|DKlElSR zT%5JZB3FxQ6L?=ZX8a!XHL=nwuFLszgHs=>SIPmh8iD1IzwU&`6HlW@jp9hp z{SQ1yefss|YsI8Z2@X_RPPG8nI~A(W!MR2l9xb3Dm^OFL9KQ$^X+W!~oKsO$Iw2=T z>O>l$ig^E*QtdJ}K>8(*f>*WR9AnQLGIS_cMPaXsk=h#09xST7aMkKH^wsB||6>zm ziGAgTek$CE43r>kM*zWvIWU2sQIKA}x=u1AD^d^_w|eD@|Bd|ei*#X(pKRB*O$lk= zC@nOt#BH$n6xwzgZoeFSAP}JcExj!)#sLEdakHZj-hG!tc6x3RpNGYYjrEDgAE)Pj z_j|hUfd^c}`<@U+5sgK3#y)-nJOq>$!2p++(XZz#mADMNB;9C7yMz!6WrP5E%FWtF zi1YA?07~7ub!W1cQ&=h-P@ue8Y?An$$oofYHPdl2dJ^nct6Fnxj;Z4F=8~_ekn-a2 zJ;?XYn>&~F4*H4>8)Q0=Q~7z!Nns#S_BUzLM9z`x^GK0U;r%91>GR~2PdyKh^c#ej{`iOIxs-3<)dQ(Z*KSn1b{%#qkcyG2 zXg--|nW6+A2~{X7SFWIiAU1B=#Gno9-dRbIFH@$;9C3V*ItIZJz`@Bo2$V7)Ei|7* zJ|Q4{=JxH|IOMJB{ymcEU1qI*bv`6P?BvN)_Gfv?*L+78vQhW_#CPq`q6Apns5p4* zzi-mt{_!$@c9El0Q;*KL<+@em1Fzk?XAg5GqND*-q{hnRt1t)#3KYv9aVN0+PiWu; z-wi{6?*o$@9ygR4Q91=a2#y6rJybX-4^lt3dD0kMD*sRUSC0)IvZP(RcC{PE7!JwQkhyvn(h?Renj2w3+r%Kb z*~Phd9ayoA#I3XV&PC!o^?m}#vo~wjoF07mVLx34#kRJOPkKhCqr8tLe8mO`VH+4@ z#aJ(vA^J)bo|>Iv`FBLPSA5SD@f{nru)MmS>bk)@#zw5F8dNhLx9}{|1Vd!&>WT=3 z>pAKg($nrGJ|AfWw0qtq%NDaW0HV|dJuco_MYiwtYI!`B&Z;U6C%RxZl5u;b0VFlz)wk^xZlk4mb2@1|?MhU+&H$a2{sSTt^pZxXHynartmpEd~Y3yYZ{r#d`vP0lWWzBQl^2z77)HfP+VZ0ucP3 zf8hms>p%aYEt@x&Fdl~V-p~xjkL!Re~)+`-5mieoHD^paaPRIZ*Zu2ze~Iq?EblA8CMmOHyqw}u&6^ZgCL@z z$fcX*Z@Lrcdy3?7rO42AC$c&l!oVHoo5_&`0EAPTK~NjD;Q$Iw!6|Y88NF4oSNj~* zqPdC$Ds{=yvrm_)8!~;e%|E4~x=?yUfUrUdzR-~YIrLbwY-tYFBcd|{C4**&6SJOt zHU9pbkhl`_I-Ji}a}ANhp7MBO&QbYho&-p@itqVc{FWkZt>ioB5z;be&ah1QFMstE z#i0sIrMDyp$46GRq{TBbGimI%V^>cY`|U4^i;7N0xil=Y(#S{6i`^bx^nd^pEaPaV zS-WN}BR(!p*k@lkB7lPMI&;Q<`^}@3D#d>}?B<)>RB z1PMyIG*Ajbz6Qn)b==TD_~5Q0 z%Gs@nNI=fzR8?B2+FG zkM5AyB8mdb28T+^U=@I~(?NW0Gc8JXE-7}ZY5~7xJehV0wBguGKsFsbWC%U_i^teJ zy@g+t&G$dNK`clt-LRCjbk`yc0t=GTAdN^$!!F&80uoC}mwc{b=P~K)BWi?F zy7kL$@p{XxWWpvsd&5j%*-cPj$(7_0 zC!s>|*r56jBUq1nywUQGF=*dfqxQwz+f|=8Z=Ww?Q&Rs;=`IjJU9kQUa0)#8W-vmM zX4pYA9!PcV4|p-OaKaw{Jyb=wcgmBsR^6~{kaF6ceDd01G#y7fu1S)dBT-RnrI#)Q zUKA5_RBgk(G^<9#g^f=hJGB!-O|TKA8;W9nKNCKPW}D+ zn1@29AV@did=+s9kvj%@ zu0ph`2LTpgSN>wuO06`iQ(*16HKR7IGe6k>G#QqP?-TwA=ZyBZ!=C~7;z3YvpYVj- z$U!9Fu?5oW$1*lpy|HK$b*=z zfwrXk^?$$0FoxcGdNxI4mWVy-I&9*dbR9W+u0&&z2U@D^`>qOxg<0+h)!TIQ-6S*&u?>A2$5qryJ-L6{*?}LaYN%KE`Q&p8FUJE>C;=@S!e!|ryXMzVj!R*BdV1G_YL`VF zOsynY8v(=0{$E;B4Tj%_CW-gKYrzD>9FGyTk=)fW=AYX?Zy?Y!w$O)&Fv z92K>cwingE-g%I{lrR@{N7oGYbA@5X!tCKQAD)dc-hWfQVw7^X(yi8stVgKe#8FU7 zc!|kmMXj@8G}2>~AWuG_@WO)9Fyh%FUp{FfVFRS3s1d>*_E zR>s$G$1!68*G>V&-B3YhI_yY-ndU%WL(V{qLwhStQaaz!kqeWE9!pn3p^y*S^P+N| z#?H&pAYd@hcWQ2dz(zZ~Qh33X{jf&4(4V+seybp4`0I{1o<54Z8U@ zfQwBX)7XULs%{gm6Kl;lCPgVm{oi72Lr}B`3r(FW`>c7%>E{J!{pI9y6-Fl?1DX8x z8&P1~68+j-#0NEn#VHUr=gXJ9CaRWf-#ie0|NiVGI}Y6VY`?Ztr04w@{iVl;Gl-eQ zZ%y-a$6y=!&0JzFW+_)2yEPYTXVKP*8nt?n$>715kFbdEM%BjJjaVPo+iY=Fh5sDj z@~To>LSu*Z^vbgSX?~F|OQi_IaJRM&U~|woEZ;UPtUX~fTAEak2Es24DCZyg4b$3b z{IV6QtSg^7GD0q9pX*y5@hy7UkozM@Aff`uuRabFKc+^r8+Af1&!UM>*1B9&%*;AT z8GmO|(MDx6V80{Pu=V?ydyRz`G{`QN5tB$L_XgL~*)5^+I zF~zVjz}IyO-iTBoMBUcg2G~uiLBYQp9{xr~8S%PQ-1`_O|NE_va};5!Y9V3PKs*jb zh1e;p!p9s&?5EsTe;WLl5#R;}*cKgoU<2hVIkMsTd{=^#Toi#E?xHJS|8$50~9{=6SLdf%?OB9)x$|ufT!A! z<~VUxlw`90hHr#}|6PqSVDg1HR$hKu0W}fHM{`N6M(@odOYl}GWf?c>17mqkj*_bC zbtdqjq<=bs-nywTNn4N);jZ??(azCeK{SYJc_UvU^^n6aEb{P~WjV-dsA>J>O~#L5 zZkOUDGM_`=oVVJ2o@dsM4FMYe?gDBpN)-TD@S-E@7Y`H3&#s4J61?mk31}#?tc_o) zmZ_AI;soxes{YLB3qKy*LM#TMNUdORS;37C6LPZK>B$c|VZgZp_yVm!qgPVAsrIgo z5j$%f%S9@Yu_p@! zedUTMvXL*!ZEUI%0b2)`XUMXxOBe<1;(MNC?ail75kg=t8jbXUHx+ekWph+L8@0qpDvG2av8S3IxXafFM)H zAl&SYcN54V-T^&M0rHFj?(i3xB}#@O1a?Pj8YG%z%2vh6*evh=a-v`kBibCe=%!-$ zlg&P%>h7mOd@p|fkN`xdk5xMl3&O-^6asddo9AAn4zO9$Fb$U@W>%;EI3TLL3RBFn zAWAAP^=}bBfl5Coy{uEMB}ui%l;-hCt`^KgW!L-{WOLtOQ6tzRr}SLaUT40FCHf*1 zlO^aiA3Gs`y*nk_;j8WIj$@1ue)TJrB?gItz{(vFR#5=#bJd{Rv#x&X(4dPsqcRQ- zBQ9o(l7ucE07P5}&G@d+zwQ|gr)T0e`9AYscZ!iP!Y{@ujv+C46tYFK+n-kIv-&xj z49frfD}0K}wW{*r3zb^>L;*4D(Mw~x<(D!98xWs}L8jjCGY8Ygb7SK_-!M7@mFYQYq)_tKQovIn*dZ?<_LoNt z6n)uKKD4l{?|=HC$J5Lt`XDPh2Kf8rm6qj@EJjFR5x||AeDPo#xI|OuRlzr#!F7ybBREG17OSkk zfA{X{QmbV(NO|UQVzxqjO84=d^b6({C*ZqsWWIgxIa@K7-?Ks&H7dpJ=Ri<3tv)#D zs6pd+QkmG!zvA~c6-lN#yTE^+`y{E5e5qas9{-YI7?)7fYDkeCd*spL39Mch4d5-{t#godU_bgPNAL5U(mjK0l(vQk237!P+1E-Senj z62I@;ecNHJ(F>(V&}3Jt5y$tfb-cfrZG&Q+3;<{u{-hwgFbV~^gaphHQE)OzC`*rj z3Yw>T`$;uF=*bfZ6ab(W`XhBPTOoW7p4{b?8fJBCprr1-|DmUV{zYND*zQA@cpor} znTB>h_*h$8*Sf}ikN~f~?-h_Cz`}yXn6+ZQ{Y4#;~ z!@NcKA4TERSKEDl1KfnJRxdzGqFNZwPj4(3rqG&YqynmajvP%tuh%QDo{(O(?ecKE zF(kC=0YPJ8V?SITOHa-%SST`JLwoOw>6x^N)mZC#k#x}d48!6!4d>(K3lZmCqXCDB ztb34qjGviDwxkx4@~gz^Xmzo@8&@Eik_r|y*9!qd)Ms1NNPV+dkqc*Jw`y2$8O@VD z#0KIE{c8R9i>lq{#2y~rfksb$xi)(Fbcifa6XrWZ!i=cEDZ$6MNGMPAoPxBnMY6@* zjCCYIqJc8HxzW#+6q9j?PJcqczupmSv3Xc31}Vs%J+yCkw>!n+e{rh2Qh`6klsaq@ zY(y7U+)FmA0&8W`D_XfN!4^jV4n6H@5qf<29AkJ<2?UpGt-LX#EpIRQDuF_3ULY-` z5*NTqyr$h@-S^w^3-5SeoT}*SH*r}Q@dne(^&5wwrp3AA5-@d-A8bPdBFhqWnMD@P zD*zuiaXk(^`dzAdAEorUmD z&)2NzJpvLCF-pLzjA}~0kGvIZ0lXaGT+&>fWWk+URzl`1Y7fN0{65P{k(9&{*Krl& zLLWbU9gc;^EklHa0`W1mQogHDUx@@H+XEFthej9kL!In zpLg@;P*p2OWUH&x7z|>}q=ie(M2hUs>gopLQSura3t%1<3M?@eVh-C4j%Q}fPFis# z19nAPcRz(4Sg6E7kdXGB(IsK;(;@4|H;LX6-5E%djY%>E^j_;2-F))xM&OCv?vH#w zmtJI*GlqM*d`FzIjNaN0MnaIaidIsy_zjzCQOo4CW?pi zwS~cfSDqTcjZ)`OpE`vF-l6oV@GegyR0}`=G1ruVTlFna4V&Yey>dg+1OnFQAD=M! z-cPyngUkT$-g)ZT&L~~7E#E*||DwaUN+dW68{k7`wQk>j_a7jr?3|YUrx~}K;w^4_$YXK=0Q}VIOiSd49v4OtX zsMV&cg_2)q|DJZq-B}yWQ1%=~%mR98x%j58G1${gAtXfCx!Jkqb?f!KZxjK|>L-lZ za_45hTk_Gg9?ew{84|$8h!M@p=oDnZa~RM6KGgR^i_U2WBa82F#W*}B>6RK&RBX)t z?2HIR16Yk~c8sijW^CdKofP3TxtG_KW8_y%=4RRQpcY}^lz2F?4;uAqEyM||Zh9cL zZ`FGD(6QEms(>eBOFI#t(00thg(VD*toF*Y4!TLm0IjP50oQveaPp7X_MC=(XfPPL@_SC4|I@;kE%88DG@e#?k%YK z>~o6FL}!{43ipn(4j5(ZA1@fp$vwPv;rEof6s{s+20rq+eSFt)y+&ZUfu-C(`&!v8 zndW}t@Z=n)Rs6fJzd6g3bs_2ngo=u|So>70Q1e6j!$s_Ttxr>D$kffo^271_pZ`KL z-Ux%t_TUTWWdJsw>B;mF(aGcMIU5PR_|*GtMu1%~xm<0kJ1< zo#(5SYgRtl!Q9mw?e*Cuvx_sTOSfT=gR$t_1bHx+2{8G(vqwpF21BCy4|X+{EfTU? zhfxY^mVYcZUyK5FRG+$9BNWlRG)J_pJJx(0&F&AsM@@w!VZc&r zr?F~G*emBH;b>_qM_Ly)#au_({m~godEjz7QYe<@lZJ3FcbVYBN{axCkI;!>x^12; za}}oVFv5yjudtwwi>-p}kDy4OUvou3b`~Hl1oD>AJq@?vq1wD9|7!xRsLgnFb|~eb z=L-PV3=qdS7<$XAM$+-tN)@2+MY4e;J=hJGfbX|CMpsxx!&4~T`WX|xqKQp)*6y{J z{rF$oH-_^`rfxkur6W%cDeBS*GmR#$a#S6?9t{~~qb&xJfOs9b4;cQ#MlUgJXkqZn z;ByS6wE{Cxn62_Tp~e|Nfphlh80Xi$QvdEH|8+06JOsEQMd!diI%68=Fq*-Sjn5)>Doa09epJFfsKJj|TwH9fG7Jflkq*3S zupPXYwdytSnVE4}e5v@nk|al}K|t*Sl`l8h7Y4#%(y|ue8 zqj61u4`ztRZ+cOZzK`OOb-;t15a8Alkqz;ro`yw zN!yMtuof&ed;Qy8Tx_L2%S}QZeeAbgT6!GtzkbHdopn#?2?Zs^M?=)iIv_hp{X)baP{6Q{NIX4l(OI&)s%SVFo2 z15H=sS1X^spKLdM&KA~BvBZ${uWwgsw3EJEcDdC*d*}IV&9TG3wXZ*iTgJJuOjg%5 zgMx%RuA@oWG?S+K7&<^F7@)TK;>+jHjxEN68{3q0wq2_0BPkUZZ6Ph3OHAtnpyvUq z63I{g6m<%Y3G)cUCTpw4rFF&cq{t~LApm1FtI(Z?7{{#~;G#*3O!ve{`UBOK|8F@< zvjxz#R44HQ_0_1`yN$wg^V`}QEII`R6$s3PB(?fn)Sb~iL>~+41?K7=#>0Ddsi~z! zu^viTsXNeK`k~ZARY4!jIi4KHc{Ap*r$qt`PXWqW1CVJpiWV#~%9?~TrNQe|(<~E|zXdEe!u31?rn|z--U%yYMe07GeJ&_}K z;Y*{M&nM-hzE zPJ&r`(Pqqqe7^dH7KXX-5{dRqLG@QUhhs)#`m(EjJ6afGqoqc*S++L5dt8#!up0R{ zdQQ5MZ5C3Fi3vyJ{F(*NucF{>5u$N>Zbs_Bvc60e2@Scu*D+_I0~4GbnFd^;bMCuc z*T8p^J(l|Y$Nqb^K)C@3tNw9N7u~m+u>oJO;rN7ZiVj2G&n#j5m*nbJsNZ5Z6xfvI zlR)fN-XY1o?|I+F+JmIM=1*RC;)suC2H|OV!%R4r&Yf$G3%%bdH5Z}c@J;E&G1 z2f;^~?>y@e&d9mQ)RV~u*3wb~GK}AN`dy{I`VSE}I}jhxS)93LgjAQtdF)=f4ji|C zN((uS7l<6da|afUlLOVhJ)(LtPA7bD*u%ododjliB>|tSnS4x~PqHAgv#&cN%0f#c zZxMmU0PS-*k`lb6)3`bGG%~rPPIBl|x$D|nTJz3@4_qz)KJe4zKcnB$vL zG4a>=oY(++Ai^@MHa~b6A)xJyzD|JkJ z4|!h7UF+@{f3In709SNv}R=x9w^=jc%!KcbukynW*z zj~_ppo8I;#_IX)I+COj0E%a!%@ZL5S7G#b^DU7sfNaCukcbD6M^I_CP(G?(-y;Np| zKp^M~Qc^;$Gr<;}_h0Fvnw@5HsNUy4g;CjRX%`=p8ZKy3X%dn??Tjjk2AGE{KcW;E zv^rVuVnzW~b$|1n5MhmiVBg zxS}u-T)wXgasU4IlFJ~1O^uCJ|EAYJf&Iq|KvL`tJphFfz<9iRFAzwX$RwXH_G)!V z7k|L+7j@Ds0F0_MFd;ns%~M;FBkJ-y&<7>Rs#X(f1;9{oFvXRqz{OXp4P)xlhR6fskX2M9!vSr?b!)l;!OuLGMj zmwrS2%^)rFV<8B;^-F9bC|T8fxo`(8z8-Xbjv*aZn>9NNiK|vZwNZ3dDRh?p>%{Od zEeJ_?I*0ZoMr_mZYm*aiK?2m_nd@m7*QlbO@gi)CeNE)Z{$RdKI$8rrpb-5Kvz>}Od2Ezjuq%Oafs4^T-_#@(3cqE9k5T5j2H5ug%_FXNXU(cF8qDPLwWclqHVef&rA`k}uV_WenatJ% z^dr!`QE~}asrM}jO4LH{xW#}kI^CJavg8skf31&M&n`lH0X-xDK>SAx@W}g)P~6kE z8S^G{<^>?!(`?$c5jv0$C@D;sibcZMl-fB~$zz>V!8ZQdiqWCpw!a`&Z71LJbehXB za+5}hD20Ro(?Nme^Y3pgJ+O_iIluIh!eGw^s>?_OKv55N__dw7z!b~As-@6P*jTQd z?Mg($#+}>4x~vxi7bvtFX*>}vl$3S+q$>lXsmNdgA%R0_oV|}0Qw`6H1UUKFu~}3O zZX~Lp5|J3rqh*(G&q%2JpD4OtP8;`nammT&hdIW~Qz!veEH?o2;=cw-YgTL{yQOJ% z8*sL^^rzP?ZMc1%SYI$$WAvNjmffI*}wEG8jeBf;!W|H4P8}q`#S_oo1DGQC+S|_dTn$Ee_7Y-(vMJ_ z?!2le2!$Y_`~LVqg3aqX61x6Tnwc82sztL+bL{7GpL<`Ak)0@CQw&pJ1V*xIJAZRK zua@BTi0c?~D5bFYdbA31GfLinsm*^H%%1-r255scd=IE)Sqojm+F zlErJx$wchjnYlpx%Y(D7n;ZbYlVjl)^?y1jmsl>G2(rN_;z<&sB7Kf_2S z+C8u50BxQ1<->wZ0Pl#5|FSA01}q7I#UwzH05AiYZjP}!wM?BRK9HY;(ZgE9+4;Px zmhn%TK#b8R*D0A>3rL}xCmD~+P49KC=`8%a?~ct5Y+30)MfRme`{{#B9?3AkSX4Q* zObs&n4CY2-vI;4SDJ}ucqTp(qKPlkPUv@~%3 zB-as8gj4Pu6PHx<;hjiv$U94gybkZJX$7T51hYbE3GFA<-4XV%iP?nfbJ@}CeDrc_{OrN!ONY=@2|t$;hs=V&$-l=hp2PpjT|av-_5 zCpP+NTyNqY84&Bgc(n$BL`liGpI5&tEjAaj`BL4%4eoHTNO@ZR4 z*xY|y;QwJ55TJFi+(mZ?5pi5h*?6?Yp3Yf6MTAZCw1k{9;Sb!Y3V${bfOYy0Qv|ex zKj>J>+D(6!XOOB7B^kye9C%&=M6u9Nz^iP|jSW9p#$n#9G5CL>VLXU{)uJ;5fiOXW zXIyCey${gHV(fkhW&8rW&%yFBRd^lUjndUGbDqKsE@%r{L_A!hSPDdSRoA7Q6~Q*{MA|syF3>L zD>++0smGK9#tkscFFwoePOI$*yc0gt&i&)3L&T<^6TYQtG06U!R)czX^zW%(03%zoZo4=M1M8RT?7(S zKH7^G36-9~iza6H&mq=R%6cMyt#hezOm-Hr31Bw;!%%M8^2CRfPCRQJqbY6w(a6k9 z<|<|ohe@5!OhOkh$}~#GNgGDpYJC^*LLiip&!Q=-3LAzlwICycz{$}F!^`?6_cHC- z#s#}s3>BdEt!`=<`fDEjPXHD8#CdUqlpVqv2333MxL3P|QD00Dea@j3aMpX@b#7~8 zgKc<~;cDbcy}B+dEj~Cpj#sB?jrmc4!pjUW)CzqF(}SFOJd^PL0F_9D5fo5Og%Rbo z%LE&dl`4!S zEV8lCmeU=XNV-lhC2_ew72fWBI8NA&U`m>FDokL^<*x}J;@tcCIP&GJ8OAkSsn>wV z=p)Y81JSCVlYL;`BMLVu_?XrZjiRK0pkV5paL3jDH>dJhXQx$D@WhG}3TlN6qrR_4 z0kHX12{`oNz>?@>rintkk+mYM;7t?fsbqV->B$3h>Vd5gKfL7N3 zKYAArNgj#M<+&TPyg(G&*CZL4iEa`b5z;T#*^T_@1maBdK~%$$8eoFeX&h@1%4&j( z80Tt}7M2Ok9vja+>VFp6Qf(&`P4=T$s^_e4f@ zvW7I6R6_|Ib}R3w51ZX6O?;doq+#_FpM2`ms})`RPRAcjPNC8mWedHtm16TEkcFlx z;Bz0D{ruTZDbCpc6<=K-5}t@<-C0@o;pcHiUM7T|4;tU5clhb}7qy7r=?tb%#1y8g z4-8L4FJd%g`KCTrmDwN@sH;Vd2IJA)R@RVMXt|mo8iXcXJJQ1{%APj zB|EI<{eQd64TW+N<8_AZmT(`mzul!olNQ2y%AMyj9(UdRxf|m-d~`12}A zm3Waea9(Vb0A5Iv#|c5gc(Y9VP(eh0B5viTlJa zS#L88+CG6hGfTjqJp_jMWb@UxumW-T=~ac|ptd(=a7@qeR09w|!~L|BZd(rsE+ZkP zVRwH=O(b2jd6gSYFwjFG0hpkGh6l^>Co2RK(U@=cp1CK?aE3t>&#|V9oDQ5L{#bPZCWG0mb_`CQzw%~1oY*+6S{41}Vc&ZKSH_De zk@o%d(j3VL!a`$-va*Kzv#}{y`PUY6J4DjIslxEQ$&hMr&&-#UpFnD-QVPiT4Rrtk zsJ4DDW+bgeg$2NqaL9`O?{T=z>xWympwF-irlWnIFbmMgZ7zp5P*R+-D5v?{w)$)2 zKm5kL-^Bnhw*^%sT=|h+m7%gINE&3p^I}t9G6C4~A5@?@crfXTkluUDcCFo4Q(dRd zI#A=g;bUHQ0mwUPczc`;Mn!U$4*4AL3XEi=rp^$owQPCoHIhg3yIxt(8x_ zw6kahu*NfukH|0(Fh|e_48E}y6Yo8~hQgR(Mx^mQR0ScuPNsO{8nB9<;HmO3WtYUu?we`u~We?Ki>mH>YM^(R0x{z{LEC`hCt-3zY3xNsGr z8stV6d&1-sYd^7C%ZVD7WO}J*<%O5Z)J4OyZw`OBGjKt;Mq(x|L9S;=aHW1_7 zpKcAf9$lTR@cbecP*WUd66&i|$Yd1c)QVGOx)g<8#pEiix2FQ^)y_p;uZKBfAj+j5 zq!65h5XfNz^cHC~5owNsvS^^kIsQ;!u9(VnVyRpVzxX>=%Z`f66ynS*TtR(3M1LIme8Ksu_sQ$ zD(aD6G!2vyshQZNf8{el^yPudh=I1SzA)>jr67p&slIL>z}9}q?2QR9jPZjZSGdhL ze#9W49-(Z;uS8k7P_8YC0oAI(m6)}tKk5T1p(X&U@{AO#k^O_gQl|G6E&t|1T22H- zb#FUF556k*7`+zPs=JfU*eA=nlL+OA=u>?nFD)G}BrMD&thg#9{P$rA6vT{;^iE7m zF|>0#_%TKP8)JIXy9PL|Vi`BWoCs|RP5vX4AfzZ7<1us{NNy|)zO`@Bhqqd729*-` zGt*XHM|ySJ?mfv7cledFBwW_h;IKDN6U8r!C@;lzg~4hYv(w+ZFv_O}YPSmf-$CS& zk7=ZiXi7_rxufr=KzWu(5s+B)=eIR01Rb}Pz@DSIDu)3K_@$wbOIQGsvg0d;z`tB} zmjD;Sfs#GX#dChY?!uwN`bcI&rZfkNaDh2>gq~O=aa!4a;jFtlNZ>3l4-@)y5cIEo zd050g(#{)bS7#d- zeEeN2OypH6mSg;7bP-=1%W){lpVy9YX2$*9k$Z1*2x8?oOR~P@|=7qsp*SxpY zrWs0c;$K{DT6$NCGj2Z#;;X?@MdBD%H z-o7PWiQd`0wV!~aIi*`1TcmH?XrHE zKlfbwzvX6Ob8!vc>_ucsS!_vIfuP^k-`2A$E`TQ}okXD1Bxf6TH zn9GLG0;r5cEat$6c*9cq)I}NNNsO*mSB29SKOuqEwzl9>QatNs%}xj`AP|h_JPB7& z$bXFhiVHCpb^YXt2$!onx}LlD)gy^W2=yDEHVg{+$+^~bzrusXATQsW+Ean&^TsFD zpQ4N724Un&h1Y?3?F*tlr97q0C$6cXgmJdtT|^Lw$N&unz;m00SRl&nF}z5z$*#bw z9Sjt8t4F5w>dVBbgI}M0i{b@R&ku=P2e?mCEK`t+QaDkj``;Q6K_IC3_2A5_E^3r6f8X^ruPQ?0k&4*0sQ{!MRmP(9}38;gsLo`YG*E5M)c8^9ENOo0%3 z6FV>r$=Mf2y}iz(IZ{&XVZ9}ZCkanuc{Wn~#AAlBZQx47xGFN6=;k6*hP~(=77~mx zJ~RUqTPP?@ z7q0w_NarAA9U398Ve0`D&@V5qO!RnsU*71t`z0Ofe)Gp^{NyUr(6#w3^}#qv`QsZY zGW=9j4I@0|?Z{M?$R8=B@%8dD?F)++N}8IQjtrK>J7glQ^WXMOJtAFLvM=or5{`oF zs&gFbZ>OPn{M{Uzm%a+yr4!L#x)b%CdMlZ7zzPMp&`|4(WHmcTunfhs5+Eqf0zf#m z00uS(;1R_3M5!tefdq2?e*63U&(GJP{|*}_-0uB+?0yp6C!FE?gOr{80JM)HTUdis z2%?YQ31XnMy+=?0P&9c2n=eJu80EA}WsF{7mg}9SAh75Py13b}2>n-crA$~!b3K~&S@k0B~$Q6rDCNx~CMlT1U&cl+D zwpnFf*C&lu{o@l!Z~y=oze?1EA?2k7d^hLECft(OZr5~vk?+=W{b%dzz5>*@W0@`s zwZw!(DVcfn1b+f>|BMPu5@P#A5oG`re#)_0p}kEldWfe1s_-nF7fds0asXT;7$VKK z-A^fWn_j_&6Gi^>D}?6WUFKCI0VA%l36)bU>#f__Zrz`?jX52FC(|?gG)}zQAUcu& z=?XJ<3G{TI`s%-@KH=~5WdVTJGavCNpdPJL%e!UBbL--7DW#PZCM;}~-`l5xoBi+( z@K}#XsMTaa0FZ5q+ZxTkBi{!Rap`}l6284GPU2?pOmiG{8fHImFAw}*0)5H<1$7E0 zZH*g5uY+<2zvG~`<2r4&3$cH&T5WyXN$=wE>)fjmuQj`KA;5V}Oi0L5P?su0HHN=Y zw+>d>gzLn>E6$QBMP~7FI^0H-UyS}RIuJ!vN+3yP)RV*Y-oIR=e6%g7tY^d7$@E=2 zNh2|G)W%nJ`Md5qKRln!Buq~58QSm~u~ma0@he6kD98!=71r!xe8$BQAmI4tLPwFP z50A?PAPH+XxAPA2d7)zeJi1c`VOGU3gzi%{I8r$E0c#fz-oF{Lhlhzi!=%l z$XP(7;@iRy5Ec^~U1^mPZGAxR;BvCx>36^VMZPEK`@u<`oba~mBP@;LFemlrT8uzK zVq~i4KxJ&C6i~sVAgXnKmkSXN>`FnLTy<)&u$Fn|{i{)R8EF0ui>pKH+2N!4r9 z7J%*3jvym9anf*G9uNoy*{f1RhB+Jwa7vQQPN_GAQ@m$C%H&$HtGl(Ct^f3F&fAy1 zUcZi~diX;}#cx5gf1;Y=03X29cz$c4mTjGfwt^5`f^aJRu?cpmIe`&5y**HYateIs zQ|cq9u)-;Pti<5bdUykpW$TrQuyFjZ;Il7lfxaiVL2m*M!u7e^aG(IiZ-};_`tp5} zp_d2|#yzr%UDR9X{|iKHP}?AS>X4lgOeB?`F+x$AM~p|`OMndkH-6c6!^ETekE12| zcE7V}Ulr}-zsoBtsWU&ztCdwRv_z|EKq+UZsQf#FEdW;rR;50yoUu;zHt{aqCzwdT z4-*A*u)_RF)Krvm;1N6LD+*6=$vOaf*4*qfL>v?BaW#$^pvnBb%KTnB;nija`VB@a zLAf%BSoB1D6`a&0MUV=c<@qBt{~bt|q(Iax>>BzMPn!TIO%5k+3yZoaV`48}M()GZ z$q5}b{mrjKswY7YM{QnZI=TCisbi&uPc_ zfA^{A>%K>q43L(Ixl-@?5Q)Ji^&hl-A@+DJb!XDvJ z&+9oEY|(*UMg=&Z6~e`)kVHqJnI1F%fKgpLn=)(x@qzAiw3;=wwS}=|WDWc$8xOl@ z#nC;+FZ@DW95~268CTm2^49aHLo-bYz|Ww77!c&;H2;`?*#CWP;KSXOdcnVUU-tL# zwIf0wikX-lEm^ZO(HRc#E*z*f=cej=y5R2h?)1A2M%k+yrlfoZ*^PyTK~eEXwy!7@ z@r$7ISa?HLHr9Cyhj?V=Ar4o}g^1)+p4hf|TW3NhcW&#LoI)$&08%wvbA_@YzT3PI zG3jVV`G7y0Q{nufqOzjbJu9h0ybyW)N65u0Kd{C%@cL;!8{OA!j}VUc!9T}?|5t

6&6!+O$TU%rD6XZ?&{+#xy>I@D(1O~sl0OCYs zNrYsjEA-aZ16&nucVe-AGP_g1AoyQJN-#0UVMXHN;0&EI2K@GxHV5FA%78sYU+aZ~ zb6fyVo|nxmEl0R1y8N4zczNcrR2CKqo6Qv{Jn(z~aCQ5<6v3x)Lb=X92`0e8k??WPiKw%s#_V9FGKf+E%;=QI7Yh?1O3tW?m zM+O%}zkB-aZDRl(ZF_rr2R|`k!3`x&g!s)r9ULhssi8&lsyRIkwG3jDX)G*#hv!99 zSm1!}M*f??u{q-?V{vj$h#wyejSGY5$}Xv|g}-a_KP2IxP6FTo7`N`1E#wxPwU^%SV#4s1iN{YD3 zbujBXs@)6X-LD{8C_i)}cm3KXExQb(=bMX$+c+s-q21!4(aj5m8nrVT;bM75jFnL zM+>gM#DNX?%j6(bvcmMj)LhZaYhvEv!w07E@n@l*np)jCNQrbD8ke&0aEMI=upm{p zVFXy505xVL8zd~68O01B#q#3!CL|U z00OCjw*Wi`E~kt1Hc)^At(zj21dGq!Ef~Ro;csr+cVhJ)#WFE z(AYpc2;i*%qktgwB51*Z;hcdQn-cB!x4Gu#L@y|ZKneh05IF)5Kr9x+0I-3UmzJXQ z^Yc^lbIqFnsR>K}wTnL?4sHt_&p09aXg z{(KUz{vWO^FF)AY+?Y%x5-S)KQXuG%4G5nVyWL?Dg+Grfs{+aZAVL5V!vXNwOJ~v| z1Y{2Y$Cxo=K){TdT;WP^5Q%Q{5LUpedEO141G^no|0QpjEVPg>UFSFxbrB;WypT;M zlk@Rd?AhGx%==h0><*{1sj<=5(;5g2w|8`$>FN%Sbar+296NTb1(Fn@b0W-Kuwh8B zSuJEdGz~FOSWxmDXu*LhAV|FkO7|(j1ific=y{}Xuu)YosG$r|D*UuNApAAOLXo)R zQ&^0lGvMatCU~R5SoG(Y78jr3?c^td_Ls%xRFEn-3Xqp>^T5P;7iaT%}=Nb2vtCUm$fJ64DoH`uRt2Q+J0`VRw=N{~W1e0jcu~zgrWbo>9F_}m_Us_!F1d$#~W;+HD zzuV(!Z}j<(H@CE$Yz+kZ0)aqJYipnr-){E%eRl9BK*+)2bdc8sxe0VKo>bJ8F1rL@ z0R%XX+qd^vOZdw|57$kl>l8DJAo@ZN2@G){{25`8Pc#Z{|LoS*<`!P*uY^LO`OQ#h zc5`!c23GxvL}C@M)+6|F8T>Q_G5&)Iz(jgYhz22moSOI}SuOy)dGL9Gumcu<9tLy4 zb(Uwvi~#{NW-pn+iMCe?oUrnz<~e?4lGoS&=c%)bC<$}(sOdb?g_reMv zYWqR(bGfYW{--l2nM{#H(^xE;+}_@fM8c6!cx!7V5)Lon8w+^XLLwetNu^R7Sooub zLLrTxvmkm9$a`*v@*CXyGAb|+dr51xi28-KTcx&?! zh@~h{(B=;RTARmaxBD;%G`rlMfXCwja5&~|XlQF_XlU^^c$@J)pU30%V5so8-EPb< zb`yj{;PqPZ>xLH1#M3~)!7NF-dlAAM1)+&kUR>Gd zb2$>CA;OAR`1o%uCX>lbDwR%RQOAq3z>>yuKbP#YVu?HdAfT4iQ zoEG*GaVGnOKdi`?g_#$t3pjB_E;U5oH_6|R^sMe>;$IehG3k%4{NW`gVK`7;Sp8$L zA`=5ybKs+48R7fIi~#{NW=F?B7ik3pB)-8eaKl3uJB)7zNWj7eo&q6_czzKZKy?dr&@+~%w7lZ$+{$5vd2_qKpn{5g`4nB%kL ux^P<>_YdOt`o@hL?8C^6S)KO(0t^5}V%^_QH+nAs0000 Date: Wed, 20 Jun 2018 07:37:10 +0200 Subject: [PATCH 2/3] Documentation and exception mute function --- .../BibtexLibrary.Documentation.shfbproj | 135 ++++++++++++++++++ .../Content/VersionHistory/VersionHistory.aml | 33 +++++ .../Content/VersionHistory/v1.0.0.0.aml | 28 ++++ .../Content/Welcome.aml | 55 +++++++ .../ContentLayout.content | 18 +++ BibtexLibrary.Documentation/icons/Help.png | Bin 0 -> 4942 bytes BibtexLibrary.Standard/BibtexEntry.cs | 24 ++++ BibtexLibrary.Standard/BibtexFile.cs | 21 +++ BibtexLibrary.Standard/BibtexImporter.cs | 22 ++- .../BibtexLibrary.Standard.csproj | 12 +- BibtexLibrary.Standard/Parser/BibtexParser.cs | 131 ++++++++++++++--- .../Tokenizer/MatchException.cs | 5 +- .../Tokens/AbstractToken.cs | 7 +- BibtexLibrary.Standard/key.snk | Bin 0 -> 596 bytes BibtexLibrary.sln | 8 +- 15 files changed, 468 insertions(+), 31 deletions(-) create mode 100644 BibtexLibrary.Documentation/BibtexLibrary.Documentation.shfbproj create mode 100644 BibtexLibrary.Documentation/Content/VersionHistory/VersionHistory.aml create mode 100644 BibtexLibrary.Documentation/Content/VersionHistory/v1.0.0.0.aml create mode 100644 BibtexLibrary.Documentation/Content/Welcome.aml create mode 100644 BibtexLibrary.Documentation/ContentLayout.content create mode 100644 BibtexLibrary.Documentation/icons/Help.png create mode 100644 BibtexLibrary.Standard/key.snk diff --git a/BibtexLibrary.Documentation/BibtexLibrary.Documentation.shfbproj b/BibtexLibrary.Documentation/BibtexLibrary.Documentation.shfbproj new file mode 100644 index 0000000..f778cb5 --- /dev/null +++ b/BibtexLibrary.Documentation/BibtexLibrary.Documentation.shfbproj @@ -0,0 +1,135 @@ + + + + + Debug + AnyCPU + 2.0 + 617b9073-b902-49a2-b28d-4d790595d7cd + 2017.9.26.0 + + BibtexLibrary.Documentation + BibtexLibrary.Documentation + BibtexLibrary.Documentation + + .NET Framework 4.5 + ..\..\doc\BibTex\ + BibtexLibrary.Documentation + en-US + + + + + + + + + + + + + Website + C# + VS2013 + True + True + False + False + OnlyWarningsAndErrors + 100 + BibtexLibrary + 1.0.0.0 + MemberName + AboveNamespaces + False + True + 2 + False + Blank + AutoDocumentCtors, AutoDocumentDispose + False + + + {@TokenFiles} + + + + + {@HelpFormatOutputPaths} + + + + + + + + {@SyntaxFilters} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnBuildSuccess + + \ No newline at end of file diff --git a/BibtexLibrary.Documentation/Content/VersionHistory/VersionHistory.aml b/BibtexLibrary.Documentation/Content/VersionHistory/VersionHistory.aml new file mode 100644 index 0000000..444028f --- /dev/null +++ b/BibtexLibrary.Documentation/Content/VersionHistory/VersionHistory.aml @@ -0,0 +1,33 @@ + + + + + The topics in this section describe the various changes made to the [TODO: Project Title] over the +life of the project. + + +

+ Version History + + Select a version below to see a description of its changes. + + + + + + + + [TODO: Add links to each specific version page] + + + + + +
+ + + + + + + diff --git a/BibtexLibrary.Documentation/Content/VersionHistory/v1.0.0.0.aml b/BibtexLibrary.Documentation/Content/VersionHistory/v1.0.0.0.aml new file mode 100644 index 0000000..8d20206 --- /dev/null +++ b/BibtexLibrary.Documentation/Content/VersionHistory/v1.0.0.0.aml @@ -0,0 +1,28 @@ + + + + + Version [TODO: Version] was released on [TODO: Date]. + + + +
+ Changes in This Release + + + + + [TODO: Add change items here] + + + + + +
+ + + + + +
+
diff --git a/BibtexLibrary.Documentation/Content/Welcome.aml b/BibtexLibrary.Documentation/Content/Welcome.aml new file mode 100644 index 0000000..1233b4d --- /dev/null +++ b/BibtexLibrary.Documentation/Content/Welcome.aml @@ -0,0 +1,55 @@ + + + + + This is a sample conceptual topic. You can use this as a starting point for adding more conceptual +content to your help project. + + +
+ Getting Started + + To get started, add a documentation source to the project (a Visual Studio solution, project, or +assembly and XML comments file). See the Getting Started topics in the Sandcastle Help +File Builder's help file for more information. The following default items are included in this project: + + + + ContentLayout.content - Use the content layout file to manage the +conceptual content in the project and define its layout in the table of contents. + + + + The .\media folder - Place images in this folder that you will reference +from conceptual content using medialLink or mediaLinkInline +elements. If you will not have any images in the file, you may remove this folder. + + + + The .\icons folder - This contains a default logo for the help file. You +may replace it or remove it and the folder if not wanted. If removed or if you change the file name, update +the Transform Args project properties page by removing or changing the filename in the +logoFile transform argument. Note that unlike images referenced from conceptual topics, +the logo file should have its BuildAction property set to Content. + + + + The .\Content folder - Use this to store your conceptual topics. You may +name the files and organize them however you like. One suggestion is to lay the files out on disk as you have +them in the content layout file as shown in this project but the choice is yours. Files can be added via the +Solution Explorer or from within the content layout file editor. Files must appear in the content layout file +in order to be compiled into the help file. + + + + See the Conceptual Content topics in the Sandcastle Help File Builder's +help file for more information. See the Sandcastle MAML Guide for details on Microsoft +Assistance Markup Language (MAML) which is used to create these topics. + +
+ + + + +
+
diff --git a/BibtexLibrary.Documentation/ContentLayout.content b/BibtexLibrary.Documentation/ContentLayout.content new file mode 100644 index 0000000..1e04cbc --- /dev/null +++ b/BibtexLibrary.Documentation/ContentLayout.content @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/BibtexLibrary.Documentation/icons/Help.png b/BibtexLibrary.Documentation/icons/Help.png new file mode 100644 index 0000000000000000000000000000000000000000..945e89fb96271c85b901f1e656e9920c788c48e6 GIT binary patch literal 4942 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 M07*qoM6N<$f`j^SBme*a literal 0 HcmV?d00001 diff --git a/BibtexLibrary.Standard/BibtexEntry.cs b/BibtexLibrary.Standard/BibtexEntry.cs index 7d94891..88ae1a7 100644 --- a/BibtexLibrary.Standard/BibtexEntry.cs +++ b/BibtexLibrary.Standard/BibtexEntry.cs @@ -2,13 +2,37 @@ namespace BibtexLibrary { + /// + /// Single entry in Bibtex file + /// public class BibtexEntry { + /// + /// The tags + /// private Dictionary _tags = new Dictionary(); + /// + /// Gets or sets the type. + /// + /// + /// The type. + /// public string Type { get; set; } + /// + /// Gets or sets the key. + /// + /// + /// The key. + /// public string Key { get; set; } + /// + /// Gets or sets the tags. + /// + /// + /// The tags. + /// public Dictionary Tags { get { return _tags; } diff --git a/BibtexLibrary.Standard/BibtexFile.cs b/BibtexLibrary.Standard/BibtexFile.cs index 69857cf..1ea2b61 100644 --- a/BibtexLibrary.Standard/BibtexFile.cs +++ b/BibtexLibrary.Standard/BibtexFile.cs @@ -2,19 +2,40 @@ namespace BibtexLibrary { + /// + /// Collection of Bibtex entries + /// public class BibtexFile { private ICollection _entries = new List(); private Dictionary _stringDefinitions = new Dictionary(); + /// + /// Gets or sets the string definitions. + /// + /// + /// The string definitions. + /// public Dictionary StringDefinitions { get { return _stringDefinitions; } set { _stringDefinitions = value; } } + /// + /// Gets or sets the preamble. + /// + /// + /// The preamble. + /// public ICollection Preamble { get; set; } + /// + /// Gets or sets the entries. + /// + /// + /// The entries. + /// public ICollection Entries { get { return _entries; } diff --git a/BibtexLibrary.Standard/BibtexImporter.cs b/BibtexLibrary.Standard/BibtexImporter.cs index c37fcc0..ba1a013 100644 --- a/BibtexLibrary.Standard/BibtexImporter.cs +++ b/BibtexLibrary.Standard/BibtexImporter.cs @@ -1,12 +1,22 @@ -using System; -using System.IO; -using BibtexLibrary.Parser; +using BibtexLibrary.Parser; using BibtexLibrary.Tokenizer; +using System; +using System.IO; namespace BibtexLibrary { + /// + /// Parser + /// public class BibtexImporter { + + + /// + /// Froms the string. + /// + /// The text. + /// public static BibtexFile FromString(string text) { BibtexParser file = new BibtexParser(new Tokenizer.Tokenizer(new ExpressionDictionary(), text)); @@ -14,6 +24,12 @@ public static BibtexFile FromString(string text) return file.Parse(); } + /// + /// Froms the stream. + /// + /// The reader. + /// + /// public static BibtexFile FromStream(StreamReader reader) { throw new NotImplementedException(); diff --git a/BibtexLibrary.Standard/BibtexLibrary.Standard.csproj b/BibtexLibrary.Standard/BibtexLibrary.Standard.csproj index 57e8e06..4e9cf0b 100644 --- a/BibtexLibrary.Standard/BibtexLibrary.Standard.csproj +++ b/BibtexLibrary.Standard/BibtexLibrary.Standard.csproj @@ -5,7 +5,7 @@ imbSCI - Copy.ico True BibtexLibrary.Standard - 1.4.4 + 1.4.6.2 BibtexLibrary .NET Standard http://doc.veles.rs/imbSCI.ico @@ -23,11 +23,13 @@ Original repository: https://github.com/MaikelH/BibtexLibrary GitHub Maikel Hofman, Goran Grubić imbVeles - 1.4.4.0 - 1.4.4.0 + 1.4.6.2 + 1.4.6.2 BibtexLibrary.Standard False BibtexLibrary + true + key.snk @@ -47,6 +49,10 @@ Original repository: https://github.com/MaikelH/BibtexLibrary bin\Debug\netstandard2.0\BibtexLibrary.Standard.xml + + bin\Release\netstandard2.0\BibtexLibrary.Standard.xml + + diff --git a/BibtexLibrary.Standard/Parser/BibtexParser.cs b/BibtexLibrary.Standard/Parser/BibtexParser.cs index 1e2b18c..7cc234d 100644 --- a/BibtexLibrary.Standard/Parser/BibtexParser.cs +++ b/BibtexLibrary.Standard/Parser/BibtexParser.cs @@ -1,8 +1,8 @@ -using System; +using BibtexLibrary.Parser.Nodes; +using BibtexLibrary.Tokens; +using System; using System.Collections.Generic; using System.Linq; -using BibtexLibrary.Parser.Nodes; -using BibtexLibrary.Tokens; namespace BibtexLibrary.Parser { @@ -10,11 +10,19 @@ public class BibtexParser { private readonly Tokenizer.Tokenizer _tokenizer; + /// + /// Initializes a new instance of the class. + /// + /// The tokenizer. public BibtexParser(Tokenizer.Tokenizer tokenizer) { _tokenizer = tokenizer; } + /// + /// Parses this instance. + /// + /// public BibtexFile Parse() { ParseNode node = ParseInput(_tokenizer); @@ -23,9 +31,14 @@ public BibtexFile Parse() return fileObject; } + /// + /// Converts the parse node. + /// + /// The node. + /// private BibtexFile convertParseNode(ParseNode node) { - Nodes.BibtexFile parseFile = (Nodes.BibtexFile) node; + Nodes.BibtexFile parseFile = (Nodes.BibtexFile)node; BibtexFile bibtex = new BibtexFile(); @@ -41,13 +54,18 @@ private BibtexFile convertParseNode(ParseNode node) entry.Tags.ToList().ForEach(x => bibtexEntry.Tags.Add(x.Key, x.Value)); - bibtex.Entries.Add(bibtexEntry); + bibtex.Entries.Add(bibtexEntry); } } return bibtex; } + /// + /// Parses the input. + /// + /// The tokenizer. + /// private ParseNode ParseInput(Tokenizer.Tokenizer tokenizer) { Nodes.BibtexFile file = new Nodes.BibtexFile(); @@ -56,15 +74,20 @@ private ParseNode ParseInput(Tokenizer.Tokenizer tokenizer) { AbstractToken token = tokenizer.NextToken(); - if (token.GetType() == typeof (At)) + if (token.GetType() == typeof(At)) { - file.Entries.Add(Entry(tokenizer)); + file.Entries.Add(Entry(tokenizer)); } } return file; } + /// + /// Entries the specified tokenizer. + /// + /// The tokenizer. + /// private Entry Entry(Tokenizer.Tokenizer tokenizer) { Entry entry = new Entry(); @@ -84,6 +107,12 @@ private Entry Entry(Tokenizer.Tokenizer tokenizer) return entry; } + /// + /// Texts the specified tokenizer. + /// + /// The tokenizer. + /// + /// Expected type Text but found: " + token.GetType() + " after " + tokenizer.GetPreviousCharacters(25) private String Text(Tokenizer.Tokenizer tokenizer) { AbstractToken token = tokenizer.NextToken(); @@ -96,6 +125,11 @@ private String Text(Tokenizer.Tokenizer tokenizer) throw new ParseException("Expected type Text but found: " + token.GetType() + " after " + tokenizer.GetPreviousCharacters(25)); } + /// + /// Openings the brace. + /// + /// The tokenizer. + /// Expected type OpeningBrace but found: " + token.GetType() + " after " + tokenizer.GetPreviousCharacters(25) private void OpeningBrace(Tokenizer.Tokenizer tokenizer) { AbstractToken token = tokenizer.NextToken(); @@ -105,9 +139,14 @@ private void OpeningBrace(Tokenizer.Tokenizer tokenizer) return; } - throw new ParseException("Expected type OpeningBrace but found: " + token.GetType() + " after " + tokenizer.GetPreviousCharacters(25)); + throw new ParseException("Expected type OpeningBrace but found: " + token.GetType() + " after " + tokenizer.GetPreviousCharacters(25)); } + /// + /// Closings the brace. + /// + /// The tokenizer. + /// Expected type ClosingBrace but found: " + token.GetType() + " after " + tokenizer.GetPreviousCharacters(25) private void ClosingBrace(Tokenizer.Tokenizer tokenizer) { AbstractToken token = tokenizer.NextToken(); @@ -120,6 +159,12 @@ private void ClosingBrace(Tokenizer.Tokenizer tokenizer) throw new ParseException("Expected type ClosingBrace but found: " + token.GetType() + " after " + tokenizer.GetPreviousCharacters(25)); } + /// + /// Commas the specified tokenizer. + /// + /// The tokenizer. + /// if set to true [optional]. + /// Expected type Comma but found: " + token.GetType() + " after " + tokenizer.GetPreviousCharacters(25) private void Comma(Tokenizer.Tokenizer tokenizer, Boolean optional = false) { AbstractToken token = tokenizer.Peek(); @@ -138,20 +183,25 @@ private void Comma(Tokenizer.Tokenizer tokenizer, Boolean optional = false) throw new ParseException("Expected type Comma but found: " + token.GetType() + " after " + tokenizer.GetPreviousCharacters(25)); } + public static Boolean MUTE_PEEK_EXCEPTIONS = true; + public static Int32 PARSER_EXCEPTIONS_LIMIT = 0; + + public List ParsingExceptions { get; set; } = new List(); + + /// - /// Retrieves the tag values from the input. + /// Retrieves the tag values from the input. /// - /// + /// The tokenizer. /// - /// private ICollection Tags(Tokenizer.Tokenizer tokenizer) { // This function needs some refactoring. List tags = new List(); - while (tokenizer.Peek().GetType() != typeof (ClosingBrace)) + while (tokenizer.Peek().GetType() != typeof(ClosingBrace)) { - Tag tag = new Tag {Key = Text(tokenizer)}; + Tag tag = new Tag { Key = Text(tokenizer) }; Equals(tokenizer); AbstractToken startToken = ValueStart(tokenizer); @@ -162,19 +212,58 @@ private ICollection Tags(Tokenizer.Tokenizer tokenizer) while (keepProcessing) { - Type nextTokenType = tokenizer.Peek().GetType(); + Type nextTokenType = null; - if (nextTokenType == typeof (OpeningBrace)) + // ------------------------------------ format failure protection + if (!MUTE_PEEK_EXCEPTIONS) + { + nextTokenType = tokenizer.Peek().GetType(); + } + else + { + try + { + nextTokenType = tokenizer.Peek().GetType(); + } + catch (Exception ex) + { + ParsingExceptions.Add(ex); + if (ParsingExceptions.Count() > PARSER_EXCEPTIONS_LIMIT) + { + throw; + } + } + } + + if (nextTokenType == null) + { + tokenizer.NextToken(); + + if (ParsingExceptions.Count() > PARSER_EXCEPTIONS_LIMIT) + { + keepProcessing = false; + + } + + continue; + + } + + // ------------------------------------ format failure protection + + + + if (nextTokenType == typeof(OpeningBrace)) { balance++; } - if ( (startToken.GetType() == typeof(OpeningBrace) && nextTokenType == typeof (ClosingBrace))) + if ((startToken.GetType() == typeof(OpeningBrace) && nextTokenType == typeof(ClosingBrace))) { if (balance == 1) { keepProcessing = false; - ValueStop(tokenizer); + ValueStop(tokenizer); } } @@ -189,7 +278,7 @@ private ICollection Tags(Tokenizer.Tokenizer tokenizer) // Double quotes are much more difficult to handle then the braces. The problem is that there is no distinction between // start and stop quotes. This means we need to look forward to see what is behind the quote to see if it is a quote @ the end // or the start of a new quote. - if (nextTokenType == typeof (ValueQuote)) + if (nextTokenType == typeof(ValueQuote)) { AbstractToken quote = tokenizer.NextToken(); @@ -214,14 +303,14 @@ private ICollection Tags(Tokenizer.Tokenizer tokenizer) } tag.Value = tokens.Aggregate("", (s, token) => s + token.RawValue); - + Comma(tokenizer, true); NewLine(tokenizer, true); tags.Add(tag); } - return tags; + return tags; } private void Equals(Tokenizer.Tokenizer tokenizer) @@ -245,7 +334,7 @@ private AbstractToken ValueStart(Tokenizer.Tokenizer tokenizer) return token; } - throw new ParseException("Expected type Openingbrace or ValueQuote but found: " + token.GetType() + " after " + tokenizer.GetPreviousCharacters(25)); + throw new ParseException("Expected type Openingbrace or ValueQuote but found: " + token.GetType() + " after " + tokenizer.GetPreviousCharacters(25)); } private AbstractToken ValueStop(Tokenizer.Tokenizer tokenizer) diff --git a/BibtexLibrary.Standard/Tokenizer/MatchException.cs b/BibtexLibrary.Standard/Tokenizer/MatchException.cs index 4fd8b2d..db42519 100644 --- a/BibtexLibrary.Standard/Tokenizer/MatchException.cs +++ b/BibtexLibrary.Standard/Tokenizer/MatchException.cs @@ -16,7 +16,10 @@ public MatchException(String character, int position) public override string Message { - get { return "Could not match character: " + _character + " at position " + _position; } + get + { + return "BibTexLibrary: Could not match character: " + _character + " at position " + _position; + } } } } \ No newline at end of file diff --git a/BibtexLibrary.Standard/Tokens/AbstractToken.cs b/BibtexLibrary.Standard/Tokens/AbstractToken.cs index 7cd9640..6967c00 100644 --- a/BibtexLibrary.Standard/Tokens/AbstractToken.cs +++ b/BibtexLibrary.Standard/Tokens/AbstractToken.cs @@ -2,6 +2,9 @@ namespace BibtexLibrary.Tokens { + /// + /// Base class for tokens + /// public class AbstractToken { public AbstractToken(String value) @@ -25,7 +28,7 @@ public override int GetHashCode() { unchecked { - return ((Value != null ? Value.GetHashCode() : 0)*397) ^ _position; + return ((Value != null ? Value.GetHashCode() : 0) * 397) ^ _position; } } @@ -49,7 +52,7 @@ public override bool Equals(object obj) if (ReferenceEquals(null, obj)) return false; if (ReferenceEquals(this, obj)) return true; if (obj.GetType() != GetType()) return false; - return Equals((AbstractToken) obj); + return Equals((AbstractToken)obj); } } } diff --git a/BibtexLibrary.Standard/key.snk b/BibtexLibrary.Standard/key.snk new file mode 100644 index 0000000000000000000000000000000000000000..3d275d8d40510bafb5c188ae5f0b761f7447e567 GIT binary patch literal 596 zcmV-a0;~N80ssI2Bme+XQ$aES1ONa500991NGEVoR88GxrUU|4Y$3})6l%Fif1K4A z0|UsN=X^5FS7&10;m5l1i_8|>4{@7vCZxR>;e2OgZ|K0!n*e5iQS#RCg&$^YxTkWv zD@at(7Y2mGQE#|1fOhgNQ3bP72P)u@EHUk#&hz6=3HVuCep~IPCNpd@yl9@Qq~EVq zFCwZ{5s>7a+=8sNCO~&tsR#jzthn0ERwQ$?T}=Kzf*dVDSyYAa@GF&Jn*D~M(EVsq zBxjd799f|`GP~*n&yVRxLC(9X&jjH8;+cAsL0QH5J0 zgsYQD`6h#b=5R`wd9rxvt`Y9!Fweg|6V$|7paz_N0@8IO+m=F5nQhy3-&k$^)5f&H2A>w@MJN#uLn>(Lb2SXJd~V98C1Kxmbvcp zHX!%3`W7mg{rG>LHd76~AZg)&c+0EwsOCS(FDbCo`l!%}JM!Jf-gT{~U<>?O=&vG; z=S!Z?AXpPQ7E>-wV6)lKG5}&(AB~lNDo)zwP>Cci_H)X2ULBtA*QlKYYc_;bWG)LlUXt{|U?} ithi&&LSZZ2-qpFD3~{^b8)W@cGJT`{4K&XSM(c~~wj#3t literal 0 HcmV?d00001 diff --git a/BibtexLibrary.sln b/BibtexLibrary.sln index d7d67f5..49f9b97 100644 --- a/BibtexLibrary.sln +++ b/BibtexLibrary.sln @@ -7,7 +7,9 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BibtexLibrary", "BibtexLibr EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BibtexLibrary.Tests", "BibtexLibrary.Tests\BibtexLibrary.Tests.csproj", "{5ACEB9AA-F461-4918-8CA9-12156446B0B2}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BibtexLibrary.Standard", "BibtexLibrary.Standard\BibtexLibrary.Standard.csproj", "{4071ADF7-1703-4BE2-A0FB-42B11DD88B5A}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BibtexLibrary.Standard", "BibtexLibrary.Standard\BibtexLibrary.Standard.csproj", "{4071ADF7-1703-4BE2-A0FB-42B11DD88B5A}" +EndProject +Project("{7CF6DF6D-3B04-46F8-A40B-537D21BCA0B4}") = "BibtexLibrary.Documentation", "BibtexLibrary.Documentation\BibtexLibrary.Documentation.shfbproj", "{617B9073-B902-49A2-B28D-4D790595D7CD}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -27,6 +29,10 @@ Global {4071ADF7-1703-4BE2-A0FB-42B11DD88B5A}.Debug|Any CPU.Build.0 = Debug|Any CPU {4071ADF7-1703-4BE2-A0FB-42B11DD88B5A}.Release|Any CPU.ActiveCfg = Release|Any CPU {4071ADF7-1703-4BE2-A0FB-42B11DD88B5A}.Release|Any CPU.Build.0 = Release|Any CPU + {617B9073-B902-49A2-B28D-4D790595D7CD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {617B9073-B902-49A2-B28D-4D790595D7CD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {617B9073-B902-49A2-B28D-4D790595D7CD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {617B9073-B902-49A2-B28D-4D790595D7CD}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE From b332ad2508728ddef4bac100034462b97c81e399 Mon Sep 17 00:00:00 2001 From: hardyVeles Date: Fri, 22 Jun 2018 17:57:58 +0200 Subject: [PATCH 3/3] Expanded debugging capability --- .../BibtexLibrary.Standard.csproj | 41 +++- .../BibtexLibrary.Standard.xml | 184 ++++++++++++++++ .../Tokenizer/MatchException.cs | 42 +++- BibtexLibrary.Standard/Tokenizer/Tokenizer.cs | 16 +- .../imbSCI.BibtexLibrary.Standard.xml | 202 ++++++++++++++++++ 5 files changed, 465 insertions(+), 20 deletions(-) create mode 100644 BibtexLibrary.Standard/BibtexLibrary.Standard.xml create mode 100644 BibtexLibrary.Standard/imbSCI.BibtexLibrary.Standard.xml diff --git a/BibtexLibrary.Standard/BibtexLibrary.Standard.csproj b/BibtexLibrary.Standard/BibtexLibrary.Standard.csproj index 4e9cf0b..b913eba 100644 --- a/BibtexLibrary.Standard/BibtexLibrary.Standard.csproj +++ b/BibtexLibrary.Standard/BibtexLibrary.Standard.csproj @@ -4,9 +4,9 @@ netstandard2.0;net45;net40 imbSCI - Copy.ico True - BibtexLibrary.Standard - 1.4.6.2 - BibtexLibrary .NET Standard + imbSCI.BibtexLibrary.Standard + 1.5.28 + BibtexLibrary .NET Standard - for imbSCI http://doc.veles.rs/imbSCI.ico http://blog.veles.rs/ @@ -18,14 +18,14 @@ Original repository: https://github.com/MaikelH/BibtexLibrary en-US Targets: .NET 4.0*, .NET 4.5 and .NET Core 2.0 i.e ready for use in cross-platform application development. - Bibtex + BibTex, Excel https://github.com/gorangrubic/BibtexLibrary GitHub Maikel Hofman, Goran Grubić imbVeles - 1.4.6.2 - 1.4.6.2 - BibtexLibrary.Standard + 1.5.1.2 + 1.5.1.2 + imbSCI.BibtexLibrary.Standard False BibtexLibrary true @@ -45,15 +45,36 @@ Original repository: https://github.com/MaikelH/BibtexLibrary NET45;NETFULL - - bin\Debug\netstandard2.0\BibtexLibrary.Standard.xml + + $(OutputPath)$(PackageId).xml - bin\Release\netstandard2.0\BibtexLibrary.Standard.xml + True + True + False + False + False + True + SettingsVersion + None + 0 + + True + True + False + False + False + True + SettingsVersion + None + + + + diff --git a/BibtexLibrary.Standard/BibtexLibrary.Standard.xml b/BibtexLibrary.Standard/BibtexLibrary.Standard.xml new file mode 100644 index 0000000..0c8e20d --- /dev/null +++ b/BibtexLibrary.Standard/BibtexLibrary.Standard.xml @@ -0,0 +1,184 @@ + + + + BibtexLibrary.Standard + + + + + Single entry in Bibtex file + + + + + The tags + + + + + Gets or sets the type. + + + The type. + + + + + Gets or sets the key. + + + The key. + + + + + Gets or sets the tags. + + + The tags. + + + + + Collection of Bibtex entries + + + + + Gets or sets the string definitions. + + + The string definitions. + + + + + Gets or sets the preamble. + + + The preamble. + + + + + Gets or sets the entries. + + + The entries. + + + + + Parser + + + + + Froms the string. + + The text. + + + + + Froms the stream. + + The reader. + + + + + + Initializes a new instance of the class. + + The tokenizer. + + + + Parses this instance. + + + + + + Converts the parse node. + + The node. + + + + + Parses the input. + + The tokenizer. + + + + + Entries the specified tokenizer. + + The tokenizer. + + + + + Texts the specified tokenizer. + + The tokenizer. + + Expected type Text but found: " + token.GetType() + " after " + tokenizer.GetPreviousCharacters(25) + + + + Openings the brace. + + The tokenizer. + Expected type OpeningBrace but found: " + token.GetType() + " after " + tokenizer.GetPreviousCharacters(25) + + + + Closings the brace. + + The tokenizer. + Expected type ClosingBrace but found: " + token.GetType() + " after " + tokenizer.GetPreviousCharacters(25) + + + + Commas the specified tokenizer. + + The tokenizer. + if set to true [optional]. + Expected type Comma but found: " + token.GetType() + " after " + tokenizer.GetPreviousCharacters(25) + + + + Retrieves the tag values from the input. + + The tokenizer. + + + + + Return all the tokens in the inputstring. + + List of tokens + + + + Checks whether the scanner is at the end of the input. + + + + + Returns the previous n characters. + + + Previous characters in the tokenizer + + + + Base class for tokens + + + + diff --git a/BibtexLibrary.Standard/Tokenizer/MatchException.cs b/BibtexLibrary.Standard/Tokenizer/MatchException.cs index db42519..caf7cd2 100644 --- a/BibtexLibrary.Standard/Tokenizer/MatchException.cs +++ b/BibtexLibrary.Standard/Tokenizer/MatchException.cs @@ -1,4 +1,5 @@ using System; +using System.Text; namespace LexicalAnalyzer { @@ -7,18 +8,55 @@ public class MatchException : Exception private readonly string _character; private readonly int _position; - public MatchException(String character, int position) + public const Int32 windowWidth = 100; + public Int32 lineNumber { get; set; } = 0; + public String line { get; set; } = ""; + public String window { get; set; } = ""; + /// + /// The whole input + /// + public String input = ""; + + /// + /// Initializes a new instance of the class. + /// + /// The input. + /// The character. + /// The position. + public MatchException(String _input, String character, int position) { _character = character; + input = _input; + Int32 windowStart = Math.Max(position - windowWidth, 0); + Int32 windowEnd = _input.IndexOf(Environment.NewLine, position); + + var inputLines = input.Split(new String[] { Environment.NewLine }, StringSplitOptions.None); + Int32 head = 0; + + while (head < position) + { + lineNumber++; + line = inputLines[lineNumber]; + head += line.Length; + } + window = input.Substring(windowStart, windowEnd); + _position = position; } + /// + /// Gets a message that describes the current exception. + /// public override string Message { get { - return "BibTexLibrary: Could not match character: " + _character + " at position " + _position; + StringBuilder sb = new StringBuilder(); + sb.AppendLine("BibTexLibrary: Could not match character: " + _character + " at position " + _position + " - ln:" + lineNumber); + sb.AppendLine("> Line: [" + line + "]"); + sb.AppendLine("> Window: [" + window + "]"); + return sb.ToString(); } } } diff --git a/BibtexLibrary.Standard/Tokenizer/Tokenizer.cs b/BibtexLibrary.Standard/Tokenizer/Tokenizer.cs index 96c48bf..2c3b607 100644 --- a/BibtexLibrary.Standard/Tokenizer/Tokenizer.cs +++ b/BibtexLibrary.Standard/Tokenizer/Tokenizer.cs @@ -1,9 +1,9 @@ -using System; +using BibtexLibrary.Tokens; +using LexicalAnalyzer; +using System; using System.Collections.Generic; using System.Globalization; using System.Text.RegularExpressions; -using BibtexLibrary.Tokens; -using LexicalAnalyzer; namespace BibtexLibrary.Tokenizer { @@ -27,7 +27,7 @@ public AbstractToken NextToken() { Match match; - if (pair.Key == typeof (Comment)) + if (pair.Key == typeof(Comment)) { match = Regex.Match(_input.Substring(_counter), pair.Value, RegexOptions.Multiline); } @@ -43,18 +43,18 @@ public AbstractToken NextToken() } _counter += match.Value.Length; - if (!pair.Key.IsSubclassOf(typeof (AbstractToken))) + if (!pair.Key.IsSubclassOf(typeof(AbstractToken))) { continue; } - + // Create new instance of the specified type with the found value as parameter AbstractToken token = (AbstractToken)Activator.CreateInstance(pair.Key, new object[] { match.Value, _counter - match.Value.Length }, null); return token; } - throw new MatchException(_input[_counter].ToString(CultureInfo.InvariantCulture), _counter); + throw new MatchException(_input, _input[_counter].ToString(CultureInfo.InvariantCulture), _counter); } public AbstractToken Peek() @@ -79,7 +79,7 @@ public AbstractToken Peek() } } - throw new MatchException(_input[_counter].ToString(CultureInfo.InvariantCulture), _counter); + throw new MatchException(_input, _input[_counter].ToString(CultureInfo.InvariantCulture), _counter); } /// diff --git a/BibtexLibrary.Standard/imbSCI.BibtexLibrary.Standard.xml b/BibtexLibrary.Standard/imbSCI.BibtexLibrary.Standard.xml new file mode 100644 index 0000000..9d30eb3 --- /dev/null +++ b/BibtexLibrary.Standard/imbSCI.BibtexLibrary.Standard.xml @@ -0,0 +1,202 @@ + + + + BibtexLibrary.Standard + + + + + Single entry in Bibtex file + + + + + The tags + + + + + Gets or sets the type. + + + The type. + + + + + Gets or sets the key. + + + The key. + + + + + Gets or sets the tags. + + + The tags. + + + + + Collection of Bibtex entries + + + + + Gets or sets the string definitions. + + + The string definitions. + + + + + Gets or sets the preamble. + + + The preamble. + + + + + Gets or sets the entries. + + + The entries. + + + + + Parser + + + + + Froms the string. + + The text. + + + + + Froms the stream. + + The reader. + + + + + + Initializes a new instance of the class. + + The tokenizer. + + + + Parses this instance. + + + + + + Converts the parse node. + + The node. + + + + + Parses the input. + + The tokenizer. + + + + + Entries the specified tokenizer. + + The tokenizer. + + + + + Texts the specified tokenizer. + + The tokenizer. + + Expected type Text but found: " + token.GetType() + " after " + tokenizer.GetPreviousCharacters(25) + + + + Openings the brace. + + The tokenizer. + Expected type OpeningBrace but found: " + token.GetType() + " after " + tokenizer.GetPreviousCharacters(25) + + + + Closings the brace. + + The tokenizer. + Expected type ClosingBrace but found: " + token.GetType() + " after " + tokenizer.GetPreviousCharacters(25) + + + + Commas the specified tokenizer. + + The tokenizer. + if set to true [optional]. + Expected type Comma but found: " + token.GetType() + " after " + tokenizer.GetPreviousCharacters(25) + + + + Retrieves the tag values from the input. + + The tokenizer. + + + + + Return all the tokens in the inputstring. + + List of tokens + + + + Checks whether the scanner is at the end of the input. + + + + + Returns the previous n characters. + + + Previous characters in the tokenizer + + + + Base class for tokens + + + + + The whole input + + + + + Initializes a new instance of the class. + + The input. + The character. + The position. + + + + Gets a message that describes the current exception. + + + +