From 3e379fec8c66dca77d2cc5cc400a077ebec9aa4a Mon Sep 17 00:00:00 2001 From: cs45768 Date: Wed, 16 May 2018 23:41:03 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=A7=82=E5=AF=9F?= =?UTF-8?q?=E8=80=85=E6=A8=A1=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/behavioral/ObserverPattern.java | 106 ++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 design-pattern/src/main/java/behavioral/ObserverPattern.java diff --git a/design-pattern/src/main/java/behavioral/ObserverPattern.java b/design-pattern/src/main/java/behavioral/ObserverPattern.java new file mode 100644 index 0000000..4654d22 --- /dev/null +++ b/design-pattern/src/main/java/behavioral/ObserverPattern.java @@ -0,0 +1,106 @@ +package behavioral; + +import java.util.ArrayList; +import java.util.List; + +import javax.xml.bind.attachment.AttachmentMarshaller; + +/** + * Created by 张春辉 on 2018年5月16日. + *

+ * 观察者模式定义了一种一对多的依赖关系,让多个观察者对象 + * 同时监听某一个主题对象。这个主题对象在状态发生变化是, + * 会通知所有观察者对象,使他们能够自动更新自己。 + *

大白话: + *其实就是发布订阅模式,发布者发布信息,订阅者获取信息,订阅了就能收到信息,没订阅就收不到信息。 + */ +public class ObserverPattern { + /*** + * 抽象被观察者接口 + * 声明了添加、删除、通知观察者方法 + */ + interface Subject{ + public void attach(Observer observer); + public void deatch(Observer observer); + public void notifyObserver(); + } + + /*** + * 抽象观察者 + * 定义了一个update()方法,当被观察者调用notifyObservers()方法时,观察者的update()方法会被回调。 + */ + interface Observer{ + public void update(String message); + } + + + + + static class ConsumerSubject implements Subject{ + + //注意到这个List集合的泛型参数为Observer接口,设计原则:面向接口编程而不是面向实现编程 + private List list; + private String message; + + public ConsumerSubject() { + list = new ArrayList(); + } + + + @Override + public void attach(Observer observer) { + list.add(observer); + } + + @Override + public void deatch(Observer observer) { + if(observer != null) + list.remove(observer); + } + + @Override + public void notifyObserver() { + for(int i = 0; i < list.size(); i++) { + Observer oserver = list.get(i); + oserver.update(message); + } + } + + public void setInfomation(String s) { + this.message = s; + System.out.println("更新消息: " + s); + //消息更新,通知所有观察者 + notifyObserver(); + } + + } + + static class ConsumerObserver implements Observer{ + + String name; + String message; + + public ConsumerObserver(String name){ + this.name = name; + } + + @Override + public void update(String message) { + this.message = message; + read(); + } + + public void read() { + System.out.println(name + " 收到推送消息: " + message); + } + + } + + public static void main(String[] args) { + ConsumerSubject subject = new ConsumerSubject(); + subject.attach(new ConsumerObserver("小红帽")); + subject.attach(new ConsumerObserver("白雪公主")); + subject.setInfomation("开始通知"); + } + +} From 4ad2d288d1c967ba4a4eb7d317e36e75d28ca3e7 Mon Sep 17 00:00:00 2001 From: cs45768 Date: Mon, 23 Jul 2018 00:45:45 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E7=BC=96=E7=A8=8B?= =?UTF-8?q?=E6=80=9D=E6=83=B3Module,=E5=A2=9E=E5=8A=A0=E6=B3=A8=E8=A7=A3?= =?UTF-8?q?=E4=BE=8B=E5=AD=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- TIJ4-code/pom.xml | 15 ++++ .../main/java/annotations/PasswordUtils.java | 25 ++++++ .../main/java/annotations/SimulatingNull.java | 10 +++ TIJ4-code/src/main/java/annotations/Test.java | 14 ++++ .../src/main/java/annotations/UseCase.java | 16 ++++ .../main/java/annotations/UseCaseTracker.java | 32 ++++++++ .../annotations/database/Constraints.java | 17 ++++ .../java/annotations/database/DBTable.java | 16 ++++ .../java/annotations/database/Member.java | 48 ++++++++++++ .../java/annotations/database/SQLInteger.java | 16 ++++ .../java/annotations/database/SQLString.java | 17 ++++ .../annotations/database/TableCreator.java | 77 +++++++++++++++++++ .../java/annotations/database/Uniqueness.java | 15 ++++ pom.xml | 1 + 14 files changed, 319 insertions(+) create mode 100644 TIJ4-code/pom.xml create mode 100644 TIJ4-code/src/main/java/annotations/PasswordUtils.java create mode 100644 TIJ4-code/src/main/java/annotations/SimulatingNull.java create mode 100644 TIJ4-code/src/main/java/annotations/Test.java create mode 100644 TIJ4-code/src/main/java/annotations/UseCase.java create mode 100644 TIJ4-code/src/main/java/annotations/UseCaseTracker.java create mode 100644 TIJ4-code/src/main/java/annotations/database/Constraints.java create mode 100644 TIJ4-code/src/main/java/annotations/database/DBTable.java create mode 100644 TIJ4-code/src/main/java/annotations/database/Member.java create mode 100644 TIJ4-code/src/main/java/annotations/database/SQLInteger.java create mode 100644 TIJ4-code/src/main/java/annotations/database/SQLString.java create mode 100644 TIJ4-code/src/main/java/annotations/database/TableCreator.java create mode 100644 TIJ4-code/src/main/java/annotations/database/Uniqueness.java diff --git a/TIJ4-code/pom.xml b/TIJ4-code/pom.xml new file mode 100644 index 0000000..13dbf33 --- /dev/null +++ b/TIJ4-code/pom.xml @@ -0,0 +1,15 @@ + + + + java-codes + com.github.lihengming + 1.0-SNAPSHOT + + 4.0.0 + + TIJ4-code + + + \ No newline at end of file diff --git a/TIJ4-code/src/main/java/annotations/PasswordUtils.java b/TIJ4-code/src/main/java/annotations/PasswordUtils.java new file mode 100644 index 0000000..cf631ff --- /dev/null +++ b/TIJ4-code/src/main/java/annotations/PasswordUtils.java @@ -0,0 +1,25 @@ +package annotations; + +import java.util.List; + +/** + * Created by zhangchunhui on 2018/7/22. + */ +public class PasswordUtils { + + @UseCase(id = 47, description = "Passwords must contain at least one numeric") + public boolean validayePassword(String password) { + return password.matches("\\w*\\d\\w*"); + } + + @UseCase(id = 48) + public String encryptPassword(String password) { + return new StringBuilder(password).reverse().toString(); + } + + @UseCase(id = 49, description = "New passwords can't equals prebiously used ones") + public boolean checkForNewPassword(List prePasswords, String password) { + return !prePasswords.contains(password); + } + +} diff --git a/TIJ4-code/src/main/java/annotations/SimulatingNull.java b/TIJ4-code/src/main/java/annotations/SimulatingNull.java new file mode 100644 index 0000000..49948e8 --- /dev/null +++ b/TIJ4-code/src/main/java/annotations/SimulatingNull.java @@ -0,0 +1,10 @@ +package annotations; + +/** + * Created by zhangchunhui on 2018/7/22. + * 默认值限制 + */ +public @interface SimulatingNull { + public int id() default -1; + public String description() default ""; +} diff --git a/TIJ4-code/src/main/java/annotations/Test.java b/TIJ4-code/src/main/java/annotations/Test.java new file mode 100644 index 0000000..5145a0b --- /dev/null +++ b/TIJ4-code/src/main/java/annotations/Test.java @@ -0,0 +1,14 @@ +package annotations; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Created by zhangchunhui on 2018/7/22. + */ +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +public @interface Test { +} diff --git a/TIJ4-code/src/main/java/annotations/UseCase.java b/TIJ4-code/src/main/java/annotations/UseCase.java new file mode 100644 index 0000000..c6850ec --- /dev/null +++ b/TIJ4-code/src/main/java/annotations/UseCase.java @@ -0,0 +1,16 @@ +package annotations; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Created by zhangchunhui on 2018/7/22. + */ +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +public @interface UseCase { + public int id(); + public String description() default "no description"; +} diff --git a/TIJ4-code/src/main/java/annotations/UseCaseTracker.java b/TIJ4-code/src/main/java/annotations/UseCaseTracker.java new file mode 100644 index 0000000..3d76be2 --- /dev/null +++ b/TIJ4-code/src/main/java/annotations/UseCaseTracker.java @@ -0,0 +1,32 @@ +package annotations; + +import java.lang.reflect.Method; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +/** + * Created by zhangchunhui on 2018/7/22. + */ +public class UseCaseTracker { + + public static void trackUseCases(List useCases, Class cl) { + for (Method m :cl.getDeclaredMethods()){ + UseCase uc = m.getDeclaredAnnotation(UseCase.class); + if (uc!=null){ + System.out.println("Found UseCase:"+uc.id()+" "+uc.description()); + useCases.remove(new Integer(uc.id())); + } + } + for (Integer i : useCases){ + System.out.println("Warning:Missing UseCase-"+i); + } + } + + public static void main(String[] args) { + + List useCases = new ArrayList<>(); + Collections.addAll(useCases,47,48,49,50); + trackUseCases(useCases,PasswordUtils.class); + } +} diff --git a/TIJ4-code/src/main/java/annotations/database/Constraints.java b/TIJ4-code/src/main/java/annotations/database/Constraints.java new file mode 100644 index 0000000..35d9c10 --- /dev/null +++ b/TIJ4-code/src/main/java/annotations/database/Constraints.java @@ -0,0 +1,17 @@ +package annotations.database; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Created by zhangchunhui on 2018/7/22. + */ +@Target(ElementType.FIELD) +@Retention(RetentionPolicy.RUNTIME) +public @interface Constraints { + boolean primaryKey() default false; + boolean allowNull() default true; + boolean unique() default false; +} diff --git a/TIJ4-code/src/main/java/annotations/database/DBTable.java b/TIJ4-code/src/main/java/annotations/database/DBTable.java new file mode 100644 index 0000000..b7b6439 --- /dev/null +++ b/TIJ4-code/src/main/java/annotations/database/DBTable.java @@ -0,0 +1,16 @@ +package annotations.database; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Created by zhangchunhui on 2018/7/22. + */ +@Target(ElementType.TYPE) +@Retention(RetentionPolicy.RUNTIME) +public @interface DBTable { + public String name() default ""; + +} diff --git a/TIJ4-code/src/main/java/annotations/database/Member.java b/TIJ4-code/src/main/java/annotations/database/Member.java new file mode 100644 index 0000000..95859b2 --- /dev/null +++ b/TIJ4-code/src/main/java/annotations/database/Member.java @@ -0,0 +1,48 @@ +package annotations.database; + +/** + * Created by zhangchunhui on 2018/7/23. + */ +@DBTable(name = "MEMBER") +public class Member { + + @SQLString(30) + String firstName; + @SQLString(50) + String lastName; + @SQLInteger + Integer age; + @SQLString(value = 30, contraints = @Constraints(primaryKey = true)) + String handle; + static int memberCount; + + public String getFirstName() { + return firstName; + } + + public String getLastName() { + return lastName; + } + + public Integer getAge() { + return age; + } + + public String getHandle() { + return handle; + } + + public static int getMemberCount() { + return memberCount; + } + + @Override + public String toString() { + return "Member{" + + "firstName='" + firstName + '\'' + + ", lastName='" + lastName + '\'' + + ", age=" + age + + ", handle='" + handle + '\'' + + '}'; + } +} diff --git a/TIJ4-code/src/main/java/annotations/database/SQLInteger.java b/TIJ4-code/src/main/java/annotations/database/SQLInteger.java new file mode 100644 index 0000000..2ca30a7 --- /dev/null +++ b/TIJ4-code/src/main/java/annotations/database/SQLInteger.java @@ -0,0 +1,16 @@ +package annotations.database; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Created by zhangchunhui on 2018/7/22. + */ +@Target(ElementType.FIELD) +@Retention(RetentionPolicy.RUNTIME) +public @interface SQLInteger { + String name() default ""; + Constraints contraints() default @Constraints; +} diff --git a/TIJ4-code/src/main/java/annotations/database/SQLString.java b/TIJ4-code/src/main/java/annotations/database/SQLString.java new file mode 100644 index 0000000..a1a1418 --- /dev/null +++ b/TIJ4-code/src/main/java/annotations/database/SQLString.java @@ -0,0 +1,17 @@ +package annotations.database; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Created by zhangchunhui on 2018/7/22. + */ +@Target(ElementType.FIELD) +@Retention(RetentionPolicy.RUNTIME) +public @interface SQLString { + int value() default 0; + String name() default ""; + Constraints contraints() default @Constraints; +} diff --git a/TIJ4-code/src/main/java/annotations/database/TableCreator.java b/TIJ4-code/src/main/java/annotations/database/TableCreator.java new file mode 100644 index 0000000..096a27e --- /dev/null +++ b/TIJ4-code/src/main/java/annotations/database/TableCreator.java @@ -0,0 +1,77 @@ +package annotations.database; + +import java.lang.annotation.Annotation; +import java.lang.reflect.Field; +import java.util.ArrayList; +import java.util.List; + +/** + * Created by zhangchunhui on 2018/7/23. + */ +public class TableCreator { + public static void main(String[] args) throws Exception { + if (args.length < 1) { + System.out.println("arguments: annotated classes"); + System.exit(0); + } + System.out.println("----------------"); + for (String className : args) { + Class cl = Class.forName(className); + DBTable dbTable = cl.getAnnotation(DBTable.class); + if (dbTable == null) { + System.out.println("No DBTable annotations in class " + className); + continue; + } + String tableName = dbTable.name(); + if (tableName.length() < 1) { + tableName = cl.getName().toUpperCase(); + } + List columnDefs = new ArrayList<>(); + for (Field field : cl.getDeclaredFields()) { + String columnName = null; + Annotation[] anns = field.getDeclaredAnnotations(); + if (anns.length < 1) { + continue; + } + if (anns[0] instanceof SQLInteger) { + SQLInteger sInt = (SQLInteger) anns[0]; + if (sInt.name().length() < 1) { + columnName = field.getName().toUpperCase(); + } else { + columnName = sInt.name(); + } + columnDefs.add(columnName + " INT" + getConstraints(sInt.contraints())); + } + if (anns[0] instanceof SQLString) { + SQLString sqlString = (SQLString) anns[0]; + if (sqlString.name().length() < 1) { + columnName = field.getName().toUpperCase(); + } else { + columnName = sqlString.name(); + } + columnDefs.add(columnName + " VARCHAR(" + sqlString.value() + ")" + getConstraints(sqlString.contraints())); + } + StringBuilder creatCommand = new StringBuilder("CREATE TABLE " + tableName + "("); + for (String colemnDef : columnDefs) { + creatCommand.append("\n " + colemnDef + ","); + } + String tableCreate = creatCommand.substring(0, creatCommand.length() - 1) + ");"; + System.out.println("Table Creation SQL for " + tableName + " is :\n" + tableCreate); + } + } + } + + private static String getConstraints(Constraints con) { + String constrains = ""; + if (!con.allowNull()) { + constrains += " NOT NULL"; + } + if (con.primaryKey()) { + constrains += " PRIMARY KEY"; + } + if (con.unique()) { + constrains += " UNIQUE"; + } + return constrains; + } +} diff --git a/TIJ4-code/src/main/java/annotations/database/Uniqueness.java b/TIJ4-code/src/main/java/annotations/database/Uniqueness.java new file mode 100644 index 0000000..8a2844a --- /dev/null +++ b/TIJ4-code/src/main/java/annotations/database/Uniqueness.java @@ -0,0 +1,15 @@ +package annotations.database; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Created by zhangchunhui on 2018/7/22. + */ +@Target(ElementType.FIELD) +@Retention(RetentionPolicy.RUNTIME) +public @interface Uniqueness { + Constraints contraints() default @Constraints(unique = true); +} diff --git a/pom.xml b/pom.xml index 5bad714..c06465c 100644 --- a/pom.xml +++ b/pom.xml @@ -17,6 +17,7 @@ data-structure-algorithm codemarks design-pattern + TIJ4-code From 6ee71de91aef423c4ef734d4b8cd160e47b36970 Mon Sep 17 00:00:00 2001 From: cs45768 Date: Wed, 1 Aug 2018 20:29:21 +0800 Subject: [PATCH 3/4] =?UTF-8?q?TIJ4=E8=AF=BE=E7=A8=8B=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Java-Interview/.travis.yml | 9 + Java-Interview/LICENSE | 21 + Java-Interview/MD/ArrayList.md | 151 +++++ Java-Interview/MD/Cache-design.md | 45 ++ Java-Interview/MD/ClassLoad.md | 17 + Java-Interview/MD/ConcurrentHashMap.md | 96 +++ Java-Interview/MD/Consistent-Hash.md | 62 ++ Java-Interview/MD/DB-split.md | 35 ++ Java-Interview/MD/GarbageCollection.md | 72 +++ Java-Interview/MD/HashMap.md | 77 +++ Java-Interview/MD/ID-generator.md | 39 ++ Java-Interview/MD/Java-lock.md | 39 ++ Java-Interview/MD/Limiting.md | 58 ++ Java-Interview/MD/LinkedList.md | 67 ++ Java-Interview/MD/MemoryAllocation.md | 38 ++ Java-Interview/MD/MySQL-Index.md | 26 + Java-Interview/MD/OOM-analysis.md | 90 +++ Java-Interview/MD/ReentrantLock.md | 299 +++++++++ Java-Interview/MD/SQL-optimization.md | 86 +++ Java-Interview/MD/Spike.md | 30 + Java-Interview/MD/SpringAOP.md | 224 +++++++ Java-Interview/MD/Synchronize.md | 115 ++++ Java-Interview/MD/TCP-IP.md | 24 + Java-Interview/MD/Thread-common-problem.md | 30 + Java-Interview/MD/ThreadPoolExecutor.md | 49 ++ Java-Interview/MD/Threadcore.md | 142 +++++ Java-Interview/MD/collection/HashSet.md | 49 ++ Java-Interview/MD/collection/LinkedHashMap.md | 278 +++++++++ .../MD/concurrent/thread-communication.md | 588 ++++++++++++++++++ Java-Interview/MD/concurrent/volatile.md | 218 +++++++ Java-Interview/MD/newObject.md | 77 +++ .../MD/spring/spring-bean-lifecycle.md | 181 ++++++ Java-Interview/README.md | 101 +++ Java-Interview/java_pid26365.hprof | Bin 0 -> 15789096 bytes Java-Interview/pom.xml | 119 ++++ .../java/com/crossoverjie/Application.java | 24 + .../crossoverjie/actual/LRUAbstractMap.java | 349 +++++++++++ .../com/crossoverjie/actual/LRULinkedMap.java | 53 ++ .../java/com/crossoverjie/actual/LRUMap.java | 222 +++++++ .../com/crossoverjie/actual/ReadFile.java | 123 ++++ .../actual/ThreadCommunication.java | 239 +++++++ .../com/crossoverjie/actual/TwoThread.java | 119 ++++ .../actual/TwoThreadWaitNotify.java | 101 +++ .../crossoverjie/algorithm/ArrayKShift.java | 75 +++ .../crossoverjie/algorithm/BinaryNode.java | 102 +++ .../com/crossoverjie/algorithm/HappyNum.java | 67 ++ .../com/crossoverjie/algorithm/LinkLoop.java | 60 ++ .../algorithm/LinkedListMergeSort.java | 141 +++++ .../algorithm/MergeTwoSortedLists.java | 78 +++ .../crossoverjie/algorithm/ReverseNode.java | 106 ++++ .../com/crossoverjie/algorithm/TwoArray.java | 41 ++ .../crossoverjie/algorithm/TwoStackQueue.java | 61 ++ .../com/crossoverjie/algorithm/TwoSum.java | 60 ++ .../com/crossoverjie/basic/HashMapTest.java | 42 ++ .../com/crossoverjie/basic/StringTest.java | 39 ++ .../crossoverjie/classloader/ChildClass.java | 14 + .../com/crossoverjie/classloader/Main.java | 14 + .../crossoverjie/classloader/SuperClass.java | 20 + .../crossoverjie/concurrent/Singleton.java | 28 + .../crossoverjie/concurrent/StopThread.java | 36 ++ .../crossoverjie/concurrent/ThreadState.java | 67 ++ .../com/crossoverjie/concurrent/Volatile.java | 54 ++ .../crossoverjie/concurrent/VolatileInc.java | 43 ++ .../design/pattern/factorymethod/Animal.java | 26 + .../pattern/factorymethod/AnimalFactory.java | 13 + .../design/pattern/factorymethod/Cat.java | 15 + .../pattern/factorymethod/CatFactory.java | 15 + .../design/pattern/factorymethod/Fish.java | 17 + .../pattern/factorymethod/FishFactory.java | 15 + .../design/pattern/factorymethod/Main.java | 17 + .../java/com/crossoverjie/gc/MinorGC.java | 36 ++ .../crossoverjie/guava/CacheLoaderTest.java | 91 +++ .../guava/callback/CallBackListener.java | 17 + .../crossoverjie/guava/callback/Caller.java | 79 +++ .../com/crossoverjie/guava/callback/Main.java | 32 + .../crossoverjie/guava/callback/Notifier.java | 30 + .../com/crossoverjie/oom/heap/HeapOOM.java | 21 + .../crossoverjie/oom/heap/MetaSpaceOOM.java | 33 + .../crossoverjie/proxy/cglib/RealSubject.java | 19 + .../proxy/cglib/RealSubjectIntercept.java | 33 + .../proxy/jdk/CustomizeHandle.java | 50 ++ .../com/crossoverjie/proxy/jdk/ISubject.java | 16 + .../proxy/jdk/impl/ISubjectImpl.java | 23 + .../java/com/crossoverjie/red/RedPacket.java | 137 ++++ .../crossoverjie/spring/LifeCycleConfig.java | 25 + .../crossoverjie/spring/SpringLifeCycle.java | 28 + .../spring/annotation/AnnotationBean.java | 31 + .../spring/aware/SpringLifeCycleAware.java | 29 + .../processor/SpringLifeCycleProcessor.java | 50 ++ .../service/SpringLifeCycleService.java | 30 + .../crossoverjie/synchronize/Synchronize.java | 17 + .../src/main/resources/application.properties | 3 + Java-Interview/src/main/resources/logback.xml | 82 +++ .../crossoverjie/actual/AbstractMapTest.java | 36 ++ .../crossoverjie/actual/LRULinkedMapTest.java | 65 ++ .../com/crossoverjie/actual/LRUMapTest.java | 121 ++++ .../algorithm/BinaryNodeTest.java | 19 + .../crossoverjie/algorithm/HappyNumTest.java | 28 + .../crossoverjie/algorithm/LinkLoopTest.java | 62 ++ .../algorithm/MergeTwoSortedListsTest.java | 93 +++ .../algorithm/ReverseNodeTest.java | 66 ++ .../algorithm/TwoStackQueueTest.java | 36 ++ .../crossoverjie/algorithm/TwoSumTest.java | 25 + .../com/crossoverjie/proxy/JDKProxyTest.java | 44 ++ TIJ4-code/pom.xml | 2 +- .../java/annotations/ExtractInterface.java | 15 + .../InterfaceExtractorProcessor.java | 9 + .../src/main/java/annotations/Multiplier.java | 26 + .../src/main/java/annotations/annotations.md | 2 + .../java/annotations/database/Member.java | 11 + .../java/annotations/database/SQLDate.java | 16 + .../java/annotations/database/SQLDouble.java | 18 + .../annotations/database/TableCreator.java | 18 + design-pattern/src/main/java/README.md | 38 ++ .../main/java/behavioral/ObserverPattern.java | 2 +- .../main/java/behavioral/strategy/Duck.java | 32 + .../main/java/behavioral/strategy/STRATEGY.md | 245 ++++++++ .../java/behavioral/strategy/WildDuck.java | 30 + .../behavioral/strategy/fly/FlyBehavior.java | 8 + .../behavioral/strategy/fly/FlyNoWay.java | 11 + .../behavioral/strategy/fly/FlyWithWing.java | 11 + .../strategy/quack/QuackBehavior.java | 8 + .../behavioral/strategy/quack/QuackGua.java | 11 + .../strategy/quack/QuackNoVoice.java | 11 + .../behavioral/strategy/quack/QuackZhi.java | 11 + pom.xml | 1 + 126 files changed, 8089 insertions(+), 2 deletions(-) create mode 100644 Java-Interview/.travis.yml create mode 100644 Java-Interview/LICENSE create mode 100644 Java-Interview/MD/ArrayList.md create mode 100644 Java-Interview/MD/Cache-design.md create mode 100644 Java-Interview/MD/ClassLoad.md create mode 100644 Java-Interview/MD/ConcurrentHashMap.md create mode 100644 Java-Interview/MD/Consistent-Hash.md create mode 100644 Java-Interview/MD/DB-split.md create mode 100644 Java-Interview/MD/GarbageCollection.md create mode 100644 Java-Interview/MD/HashMap.md create mode 100644 Java-Interview/MD/ID-generator.md create mode 100644 Java-Interview/MD/Java-lock.md create mode 100644 Java-Interview/MD/Limiting.md create mode 100644 Java-Interview/MD/LinkedList.md create mode 100644 Java-Interview/MD/MemoryAllocation.md create mode 100644 Java-Interview/MD/MySQL-Index.md create mode 100644 Java-Interview/MD/OOM-analysis.md create mode 100644 Java-Interview/MD/ReentrantLock.md create mode 100644 Java-Interview/MD/SQL-optimization.md create mode 100644 Java-Interview/MD/Spike.md create mode 100644 Java-Interview/MD/SpringAOP.md create mode 100644 Java-Interview/MD/Synchronize.md create mode 100644 Java-Interview/MD/TCP-IP.md create mode 100644 Java-Interview/MD/Thread-common-problem.md create mode 100644 Java-Interview/MD/ThreadPoolExecutor.md create mode 100644 Java-Interview/MD/Threadcore.md create mode 100644 Java-Interview/MD/collection/HashSet.md create mode 100644 Java-Interview/MD/collection/LinkedHashMap.md create mode 100644 Java-Interview/MD/concurrent/thread-communication.md create mode 100644 Java-Interview/MD/concurrent/volatile.md create mode 100644 Java-Interview/MD/newObject.md create mode 100644 Java-Interview/MD/spring/spring-bean-lifecycle.md create mode 100644 Java-Interview/README.md create mode 100644 Java-Interview/java_pid26365.hprof create mode 100644 Java-Interview/pom.xml create mode 100644 Java-Interview/src/main/java/com/crossoverjie/Application.java create mode 100644 Java-Interview/src/main/java/com/crossoverjie/actual/LRUAbstractMap.java create mode 100644 Java-Interview/src/main/java/com/crossoverjie/actual/LRULinkedMap.java create mode 100644 Java-Interview/src/main/java/com/crossoverjie/actual/LRUMap.java create mode 100644 Java-Interview/src/main/java/com/crossoverjie/actual/ReadFile.java create mode 100644 Java-Interview/src/main/java/com/crossoverjie/actual/ThreadCommunication.java create mode 100644 Java-Interview/src/main/java/com/crossoverjie/actual/TwoThread.java create mode 100644 Java-Interview/src/main/java/com/crossoverjie/actual/TwoThreadWaitNotify.java create mode 100644 Java-Interview/src/main/java/com/crossoverjie/algorithm/ArrayKShift.java create mode 100644 Java-Interview/src/main/java/com/crossoverjie/algorithm/BinaryNode.java create mode 100644 Java-Interview/src/main/java/com/crossoverjie/algorithm/HappyNum.java create mode 100644 Java-Interview/src/main/java/com/crossoverjie/algorithm/LinkLoop.java create mode 100644 Java-Interview/src/main/java/com/crossoverjie/algorithm/LinkedListMergeSort.java create mode 100644 Java-Interview/src/main/java/com/crossoverjie/algorithm/MergeTwoSortedLists.java create mode 100644 Java-Interview/src/main/java/com/crossoverjie/algorithm/ReverseNode.java create mode 100644 Java-Interview/src/main/java/com/crossoverjie/algorithm/TwoArray.java create mode 100644 Java-Interview/src/main/java/com/crossoverjie/algorithm/TwoStackQueue.java create mode 100644 Java-Interview/src/main/java/com/crossoverjie/algorithm/TwoSum.java create mode 100644 Java-Interview/src/main/java/com/crossoverjie/basic/HashMapTest.java create mode 100644 Java-Interview/src/main/java/com/crossoverjie/basic/StringTest.java create mode 100644 Java-Interview/src/main/java/com/crossoverjie/classloader/ChildClass.java create mode 100644 Java-Interview/src/main/java/com/crossoverjie/classloader/Main.java create mode 100644 Java-Interview/src/main/java/com/crossoverjie/classloader/SuperClass.java create mode 100644 Java-Interview/src/main/java/com/crossoverjie/concurrent/Singleton.java create mode 100644 Java-Interview/src/main/java/com/crossoverjie/concurrent/StopThread.java create mode 100644 Java-Interview/src/main/java/com/crossoverjie/concurrent/ThreadState.java create mode 100644 Java-Interview/src/main/java/com/crossoverjie/concurrent/Volatile.java create mode 100644 Java-Interview/src/main/java/com/crossoverjie/concurrent/VolatileInc.java create mode 100644 Java-Interview/src/main/java/com/crossoverjie/design/pattern/factorymethod/Animal.java create mode 100644 Java-Interview/src/main/java/com/crossoverjie/design/pattern/factorymethod/AnimalFactory.java create mode 100644 Java-Interview/src/main/java/com/crossoverjie/design/pattern/factorymethod/Cat.java create mode 100644 Java-Interview/src/main/java/com/crossoverjie/design/pattern/factorymethod/CatFactory.java create mode 100644 Java-Interview/src/main/java/com/crossoverjie/design/pattern/factorymethod/Fish.java create mode 100644 Java-Interview/src/main/java/com/crossoverjie/design/pattern/factorymethod/FishFactory.java create mode 100644 Java-Interview/src/main/java/com/crossoverjie/design/pattern/factorymethod/Main.java create mode 100644 Java-Interview/src/main/java/com/crossoverjie/gc/MinorGC.java create mode 100644 Java-Interview/src/main/java/com/crossoverjie/guava/CacheLoaderTest.java create mode 100644 Java-Interview/src/main/java/com/crossoverjie/guava/callback/CallBackListener.java create mode 100644 Java-Interview/src/main/java/com/crossoverjie/guava/callback/Caller.java create mode 100644 Java-Interview/src/main/java/com/crossoverjie/guava/callback/Main.java create mode 100644 Java-Interview/src/main/java/com/crossoverjie/guava/callback/Notifier.java create mode 100644 Java-Interview/src/main/java/com/crossoverjie/oom/heap/HeapOOM.java create mode 100644 Java-Interview/src/main/java/com/crossoverjie/oom/heap/MetaSpaceOOM.java create mode 100644 Java-Interview/src/main/java/com/crossoverjie/proxy/cglib/RealSubject.java create mode 100644 Java-Interview/src/main/java/com/crossoverjie/proxy/cglib/RealSubjectIntercept.java create mode 100644 Java-Interview/src/main/java/com/crossoverjie/proxy/jdk/CustomizeHandle.java create mode 100644 Java-Interview/src/main/java/com/crossoverjie/proxy/jdk/ISubject.java create mode 100644 Java-Interview/src/main/java/com/crossoverjie/proxy/jdk/impl/ISubjectImpl.java create mode 100644 Java-Interview/src/main/java/com/crossoverjie/red/RedPacket.java create mode 100644 Java-Interview/src/main/java/com/crossoverjie/spring/LifeCycleConfig.java create mode 100644 Java-Interview/src/main/java/com/crossoverjie/spring/SpringLifeCycle.java create mode 100644 Java-Interview/src/main/java/com/crossoverjie/spring/annotation/AnnotationBean.java create mode 100644 Java-Interview/src/main/java/com/crossoverjie/spring/aware/SpringLifeCycleAware.java create mode 100644 Java-Interview/src/main/java/com/crossoverjie/spring/processor/SpringLifeCycleProcessor.java create mode 100644 Java-Interview/src/main/java/com/crossoverjie/spring/service/SpringLifeCycleService.java create mode 100644 Java-Interview/src/main/java/com/crossoverjie/synchronize/Synchronize.java create mode 100644 Java-Interview/src/main/resources/application.properties create mode 100644 Java-Interview/src/main/resources/logback.xml create mode 100644 Java-Interview/src/test/java/com/crossoverjie/actual/AbstractMapTest.java create mode 100644 Java-Interview/src/test/java/com/crossoverjie/actual/LRULinkedMapTest.java create mode 100644 Java-Interview/src/test/java/com/crossoverjie/actual/LRUMapTest.java create mode 100644 Java-Interview/src/test/java/com/crossoverjie/algorithm/BinaryNodeTest.java create mode 100644 Java-Interview/src/test/java/com/crossoverjie/algorithm/HappyNumTest.java create mode 100644 Java-Interview/src/test/java/com/crossoverjie/algorithm/LinkLoopTest.java create mode 100644 Java-Interview/src/test/java/com/crossoverjie/algorithm/MergeTwoSortedListsTest.java create mode 100644 Java-Interview/src/test/java/com/crossoverjie/algorithm/ReverseNodeTest.java create mode 100644 Java-Interview/src/test/java/com/crossoverjie/algorithm/TwoStackQueueTest.java create mode 100644 Java-Interview/src/test/java/com/crossoverjie/algorithm/TwoSumTest.java create mode 100644 Java-Interview/src/test/java/com/crossoverjie/proxy/JDKProxyTest.java create mode 100644 TIJ4-code/src/main/java/annotations/ExtractInterface.java create mode 100644 TIJ4-code/src/main/java/annotations/InterfaceExtractorProcessor.java create mode 100644 TIJ4-code/src/main/java/annotations/Multiplier.java create mode 100644 TIJ4-code/src/main/java/annotations/annotations.md create mode 100644 TIJ4-code/src/main/java/annotations/database/SQLDate.java create mode 100644 TIJ4-code/src/main/java/annotations/database/SQLDouble.java create mode 100644 design-pattern/src/main/java/README.md create mode 100644 design-pattern/src/main/java/behavioral/strategy/Duck.java create mode 100644 design-pattern/src/main/java/behavioral/strategy/STRATEGY.md create mode 100644 design-pattern/src/main/java/behavioral/strategy/WildDuck.java create mode 100644 design-pattern/src/main/java/behavioral/strategy/fly/FlyBehavior.java create mode 100644 design-pattern/src/main/java/behavioral/strategy/fly/FlyNoWay.java create mode 100644 design-pattern/src/main/java/behavioral/strategy/fly/FlyWithWing.java create mode 100644 design-pattern/src/main/java/behavioral/strategy/quack/QuackBehavior.java create mode 100644 design-pattern/src/main/java/behavioral/strategy/quack/QuackGua.java create mode 100644 design-pattern/src/main/java/behavioral/strategy/quack/QuackNoVoice.java create mode 100644 design-pattern/src/main/java/behavioral/strategy/quack/QuackZhi.java diff --git a/Java-Interview/.travis.yml b/Java-Interview/.travis.yml new file mode 100644 index 0000000..9396aad --- /dev/null +++ b/Java-Interview/.travis.yml @@ -0,0 +1,9 @@ +language: java + +install: mvn install -DskipTests=true -Dmaven.javadoc.skip=true +script: mvn -DskipTests=true clean install + + +branches: + only: + - master \ No newline at end of file diff --git a/Java-Interview/LICENSE b/Java-Interview/LICENSE new file mode 100644 index 0000000..f74ee34 --- /dev/null +++ b/Java-Interview/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2017 crossoverJie + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/Java-Interview/MD/ArrayList.md b/Java-Interview/MD/ArrayList.md new file mode 100644 index 0000000..8601cd1 --- /dev/null +++ b/Java-Interview/MD/ArrayList.md @@ -0,0 +1,151 @@ +# ArrayList/Vector 的底层分析 + +## ArrayList + +`ArrayList` 实现于 `List`、`RandomAccess` 接口。可以插入空数据,也支持随机访问。 + +`ArrayList `相当于动态数据,其中最重要的两个属性分别是: +`elementData` 数组,以及 `size` 大小。 +在调用 `add()` 方法的时候: +```java + public boolean add(E e) { + ensureCapacityInternal(size + 1); // Increments modCount!! + elementData[size++] = e; + return true; + } +``` + +- 首先进行扩容校验。 +- 将插入的值放到尾部,并将 size + 1 。 + +如果是调用 `add(index,e)` 在指定位置添加的话: +```java + public void add(int index, E element) { + rangeCheckForAdd(index); + + ensureCapacityInternal(size + 1); // Increments modCount!! + //复制,向后移动 + System.arraycopy(elementData, index, elementData, index + 1, + size - index); + elementData[index] = element; + size++; + } +``` + + +- 也是首先扩容校验。 +- 接着对数据进行复制,目的是把 index 位置空出来放本次插入的数据,并将后面的数据向后移动一个位置。 + +其实扩容最终调用的代码: +```java + private void grow(int minCapacity) { + // overflow-conscious code + int oldCapacity = elementData.length; + int newCapacity = oldCapacity + (oldCapacity >> 1); + if (newCapacity - minCapacity < 0) + newCapacity = minCapacity; + if (newCapacity - MAX_ARRAY_SIZE > 0) + newCapacity = hugeCapacity(minCapacity); + // minCapacity is usually close to size, so this is a win: + elementData = Arrays.copyOf(elementData, newCapacity); + } +``` + +也是一个数组复制的过程。 + +由此可见 `ArrayList` 的主要消耗是数组扩容以及在指定位置添加数据,在日常使用时最好是指定大小,尽量减少扩容。更要减少在指定位置插入数据的操作。 + +### 序列化 + +由于 ArrayList 是基于动态数组实现的,所以并不是所有的空间都被使用。因此使用了 `transient` 修饰,可以防止被自动序列化。 + +```java +transient Object[] elementData; +``` + +因此 ArrayList 自定义了序列化与反序列化: + +```java + private void writeObject(java.io.ObjectOutputStream s) + throws java.io.IOException{ + // Write out element count, and any hidden stuff + int expectedModCount = modCount; + s.defaultWriteObject(); + + // Write out size as capacity for behavioural compatibility with clone() + s.writeInt(size); + + // Write out all elements in the proper order. + //只序列化了被使用的数据 + for (int i=0; i

>IbKP!>3z=n`jiZchhR_>?8jxqKPaTkD`{J6R2(24+ zeM)7;DN!4guR~N|?GaY96Wk*N{gpgR4BnY7iwlrzi&ip$z8Yq{Ppk8I_vwJlDC+C@ z(OyuEte7W-vpDz+Aso9Sg=#Br-%zT-Jeh{(hC}B{Q^}U)B}Z%f#AGDVABzQYb4Alt zdpjfj{n12X@}@DIqO9v;7^*){47JB@JM+x*>iuJr(Xp}7u}PG81fQv9Gr%%E8Dw5H z9^zN+)w^W}7hWEBv@nbGrV<4Mn zZk!lKkJa&UaBxB&gd+~ytGp1N#};VaPadM37$~bt8~SEp!N(|D(cg4ZJ7iMZ zH+4(0#%dK9md(-r>jBYjHb-#pDaAF@LHDFy*KZ55vHe%;OUO<_J>UYBEcelgifX*b3Z*V^f)}Z5wy4odU2wh$}ilc`Z;c}$6TQE7yG8YYn@!Mu_c_# zJ&3viG7j_(Gtduq(m<`xBv(r_Yjo9y0R(p_c9>*SR#r+Z5BhJA^reHHjgGu%#E$3eN8ew0H~gs#m_X36sTHjV)Ybp;O`c!e=~k z-_jQttF$MNcG(C!P{O$q$b^Ne8Or}?v^fzp)B6O9Ek76eGpNrBhTy~rYmeC8-`Ui3 z3JwaYNuFgt1a^dMY2Ow<)v7(*=qU6qI(}QJEO1HXlTf2<5+VLKhtfT-m%ZFkKD;^{ zxp{JE^d^+wK};WwILR(@b>;V%A6>i0o4d~?rx$V;gS8K$+^Z*RFrGN&F>z*TaR!y| zbV#96!8oelk4NEF%%F3={s76(oyY6MsORiHkrghyq!U2fVh&NxjO;plgDhO-gT08@ z!0R?0%I(kM3za`{KcE2VCkPrV_5{PszhtUt};^I+qioC)pVYkvZ;!w4N zF)(m+F63Y6bvF7*UIF+ylIR=9F29Ry+`{-w~dWL{mvA+sjw!Z z<5P7&Vq9(e;Cgat2CDqxt_#WY`kU;Q@`Kd+VG(Ss3*Yi4%fz+Lu&e?>kJZ|~(F zMm_xcW7A~9#Urkhl|LP)hU4yk{prk^RQ8$>G)9E__E6I^{@2kITyQ#Z;u;;IaDMUj zJha48Hb;7bupEI@^(KQ$JUZXPl`-@rvkXJEq>;6&4x-Wa{8<8&{NRJUuk@ZZz;HN- z8WBKz6eyalg$T%b8GF(fn=;F9sfX-~9`7k5jO2=i zZZ&LfoB-F5GIUd={j$^m?jJBY;XNE?ca8yylTt ziXHuVc%d-wJ~DcO;a0M;CZ~Kt1}I>c%1cUda}+b6{VDZn!ZBwi8xN5Xlcn03QJ0L7 z+3ZpVW#6&UCLnAduWR|UayygS*_FXayt}Ss5p!$h#c>lp3Lz?oQgf$3Lm~j@!_!;T zCF`4x@h}R1w!x!rlwpB3ozz{6GaM!|Gq7N@6lpn|nlb;<7n&%<->&-xLjWZ;HiLB$ z1@fr;Y-%7n7?~Ktxvmp~gRn>wv0JQUBgU= z%L8@WisFg~NC4|4>;z4<`7Az?xuN9TY4Y~ZoO9CGgnx(QJ}a^CQ;e236JL=mVfR-k z0jo#N@PAMP*OPHOl3oy7NQrqPuTJSD0fA$}F|PEYi;&j9u2;F@?S=-E&xqS=SLu+| zainwvPehgtoj<;LCYie_Nm)ErcpG#2aq#nfyHBRC1K%rjZx6``n6D^liJ>XKK*DUm zlYI^ey_zRoo$4grc!~8JPnT6X8uItK zI0l*y%ou{LZSgqaO1C+IE1pkzZ)YwV2iCud?G=emK@RS0KRjkV8hx2M% z`OoaCl@2JbrPdwR>N63?uWzOi1beIQMyhWv}UH`^i9+2v0Exhm2 z%HL6Q!8W^@pC_yI8r6kPD`-8Kcg5rKfK|e`n4NjjyQzhYH(T6mL9C+`@>U;|2`%Ly zHbXG)^+Z4atS3RHiy4dYTatJtk-k%SW93iRkKcj-2HJ4>ZJZAZ<9w-Z79Q*Fm$Az{ zc%Me5RAt9ztuY{I|-o3a;!`HM}Oz#1e%^lcwE zxyD9zxJ+z&quH*jp_W9qf<-pvwvV)-Wb<@NG7oeLl7zke!5nAtCLy+>^u);84~l9n zpPM2O?otE_$))@6m#u$~iadV_eHyYsjs~(E5wveMX;iy#0{K`pGTad6lO0j|aA;>t z(?7h|8!@I+5|_8M+Lom7P``h2vCOvp0rh4~e!M?EIWjsB9f~|%UnG*LR0~$*+U4{o zW%s;2LRVjciIHUbY1`rg!xmIL7quO|fw^FRU4CjWaHIr+2V_G4HHSB;&x=j9{C|33 z%>dXUoswS2z{nsHpT<6Ju@${NU_{sd-z!&g^o1unzMP+-qaRROf-r^a z^lV7?fEua=QOpFglEp(3QfXrp>WeoCj}Cy*;>dKoZL<$`SktzRoNSc#U#YiX24Vfu zXEK0bvWv*T2E42v5@V$FBpg=a_JgRq(!mg%e{a}gK^DIs*8navvYILE+1X7YoLu?Y z+Nq`41_y7i2+ZHEqeF2PS%(~3FhyMq?WJaNX#3T&*h}1s<&9Oa)HvcGb1`clKU3K0 zmMJ6eyHms%(EH60soRp}%!VEgVVcxx1( z)-@1dVEdD)s={lDYpsB5m|&Gha(qArq!zOI(+dFTOJxDdnckyI$?QzPCNoK-f3)db zc1dm(XC$$7$}fWvW+?tvTXJT`^PFWe%b$+ZN_b%kB*j8#RNq@~Bp!PJkRJ$c5WsC` zXP}7l(waUpk8E2yQX_2_*0}dC%fv>;qho`S{%A9nE-YUBjk-ykBj-se0e=&MYWw5X zFj5F9cg%sW0^}pbf2nE41*H)KY??5xfNA|!y)C_`cuhH{h-;~hR} z_~Lf7dPiq{4zuzpFazlv3PIf76*sB+8e(coAN}ZcOwZzY-qUc1ju{u&npaI0r*nrx zvLZLfr86ZLWY3v!S%5DDE2~W9{T(EE1pxzAF7bMHd4KnT3E{rtt~RIx$u6|6G$amD z@e7;if0EHznpnx#shvZsV6Jdg`C=Qhtev$mEG;UQ0ntAf`w%hN{=nKbR6}A5ZiLy| zLm5ikI$*Ly{IX*ic=e4qcykUTM|T#>s3KxJzCr3tu~;4dQJPfr-u-zAeudo55p_EC>NjV2UCT35_nrH19ep_kXV4Y+Q{KO^ z23XP=BoslQV1qzmqSCGPX(IGAz#cg*ho|KOu12~a+i)ZZdh7BpcI_LBizL^ha^w2a z;_R-2I#1c#mBa>;DtA#<<*wa(^*0$-<$LS&HR^Oqq9ydi-Q5Sf!;`!B?tY@)XkId! zcQ3K|h+}1H`NNDCwhM&e0Hu-$BWJ|hv#s)+cFWG3syUE~ z{??C^5viLdKAr|pir$}1aFsEiH}ax#hDMS8*cZX^p~0YZgg;RDC-s3?C*D6-(A=f; z6I-xYlw*fDXmEVNW}X@_aBTG^l50(c24;7EH-G!g+2Q2v3t4#iv{3r;K^f*3+kC-e z)bcII17`ENNL#h^VTqV2v4!&?!0GKLGWYR?U8lKDn1EGE$>Us+@_;N^Z*=IzIwxKmj-CW zNFA#rr?F@~BvXX5T`h`;+v4YIR8(Tct-(27SG#}|sK}gENyhsBn+&rEHVQA84NC=x zA)ep1pLga=VwNOG=mZ4!YyY(nS!5gxGn&|C_lwcC?UPfk7Q&$j`W|8LO3$XrGRErp zhM(+<;&hl4HlJ#!56XI%hu3}enm|^ltH%flk>9v6;gyHm@-r}qzRM`B&#qpi<}Z5H z7(my9jf??g?FiBBg|~LjEFegPlb^lfZKOF7%LA=x>Ve=>dUJzf-Jd?8EbbU+%2o-KU4 zZRg2;pEC_{l%5xup4+#XoZeRQJwQ&Sx0FR#O7dk@JC>|6PC}=0bO;Rg5B(j+uk(|{ zz1#NnI$N%kvJ^)j3Y1RIL;}eoI$q(M^3$h$_6v-VH4rb1J z<}`{Coa-w^GtO79@muT?#1~K~X!A&o6>)tX5@!IeGWG3uiJ#)xm2S!hqrqFFl4dWQ z!0BS7Oy!&f@3d#pQ`L8FHUSXGFj|7~=ylwbU}@pbwv5Th*R?hF*6=1t0N{~~0L9s7fNGzc`fH4n!yNIO9%WA{X@nfScQUec(NV+Rv zw=*L(wi4KyPLeFx@kIm0^R@`4Q6PNmQVC=!E89bKItqa7XlxMYqToD@{@Az`9au_| z#YI|57Kn`9>9ml!L0sEK_#hEq_0^ayBN~K@3!B|q>R5cTcG_!nJMB1ZO){R~8=%68 z(2(gArvd9HgtpZ?L&QsfQRb4D_~6`Z1Gkml5l-jKLAHJ%&nWBbr{H1kKA>-v)vo-R zD_wvkpg->5F>d>8XRCvy1G~;}-qq_yAT-1(V>m{{YSCU<;f&gFo~ZB)UXdNK<||G$ zh>=r10`C}=l1SyV(5|d#Im#P>vqcBz7Ls!GgEcga5ZNC`3BR~Ww)4LDJ%yL%otzq3 zNGwgCVWhWdX|R`QEqB+TIH+@o{e+OEd_#zx=@51bMGS#npH6klwd<{$E>LH=yzcXl z;8voveI=tSBo=GsL!EMzuyvZcg~so%2VzXRW0p9Tq(3Rgo_m2qB}tnl$&h|&NZ$CM zyf5;V&1Haa`u(x9O_83?^>DTqd{&CGB#<-X%0MQ7<2IQ8e#*cX`B8eWGy~Czqk-EHUtM- znMKnY>R{Kkd%rtW2hZT!9UpAFHF_)l??!!>z;PXaU*}UIZKCOJq37f4K0S@W+MFCj zvQJ;QgFm$VpPd#k1&Ee~_esa8F8Zn9W%2yi^zL-n*@JIS}H+AG%tTPg!7YGGzUZz-j4^j zKTrv6RW+HSE<0im-?p-BC78+EZgeS~D`pp@m&siHtFR$6Gakhe4DtBi&UX%AV|<%V z#E9q#0s;5#(W^#fUKffbMkf#KJJ6lZp1*$gb=TRnWO=MS*qhn4dykdu&=;6@`%?*w zNg(Vc@m2~~>Wht({0%f}neT=Q>PDq|cg8f})|=p|lV)3^d_KKq9(-^uHmoO!QSHm* zcx-$qsy7MUJML;tck831gm`rHD+!O*oAyxCZ;c@pBYXVEhn&%4m+Clwtx|+N-pso# zE}_~)?lWs>yR15OCUjmo7wVSYdXu+jQw9hYIhccZ@5(DWHHidu;dHEV2=V9sX! z+_T8xxL z67rRlhLZPC`E9a3x{;#OJtIhLeTkItO-vJ_w(YEyV`tZVSGA6S(DRp zXbbwgJt3S|{MqV26x~P0q60cxL*0ofm}98(GAG3ma%F8MSft?U%LhYTM1f?h6p9Y@ zc~Pb-e^Kv`jv!@9FN^M7$!=n;Ai%7pAd<2A*?NQ`1bVknrSjq$?=jxlO>M>XUh&{c zZ`mYBkmw8i-xW?8fqiHdFrpLK0!b9^++dAwCkECdG4Oo^y*Sjws+wM@-$Ly-L~Z%) z8}}X6qA=*yTq9}p6VHOK1_~!lz_AXvJ!5S{aXTxIoig1#*lysW@JnFit^+gs_aB@- zHS1h*aXZV;U6VsHOj)fHCt{Cne?;5@-8!S|ct+Kqtr`a6QC`v6PNYs#gu^npiGGf4 z5Yi5S9qDIuHZd~rLKkqd?decv0cBENKt+gOIlO@ur3ZIkrz7bR+Fq66HMb(75g=|d z?M=Yqo4vO$xUjr&5B_4++X%)u0$4Deip|f#8?kc$mtf&LzM7f9Nw8x&BH8%W4~0i2 zhWn7RKYlD?TY?(TCXd|wMSwLPNG_tg{G>I=FW7&GzFGbfOtAFi(9VQm3Kq#`3+rcP zYnH8`9Pi4T#1`k3;s__F{Bb1^Ji}wDxeV~RuEFDC?{y_`(Zy;+@|E6D z=dvf%kplc4ot0(-O{7I)IjOIEGRG0XobUrmTfk^l95fcJ{%mL@B*ZEGj~a+WuySP4 zn%lCsiod&hICA~<-mBR`z2vha7 zl1}V^>W|~C>vHvwH5;qod7tljv#gpuC>tN_*3zCOuG&Af>r^FQp%jELHUrWU6W zHJ%%_`bB;zor=d2lY;W;OayGI_O7BG8B&=h5)mAu5&W_AzuTyF!!Wlcc7TrT?Bc`n zK*mTDKnCe^VkG6?ni(0KTx@wVta$UKd-A~cGai!~?Ca^9lyk9n&s=KPDc3q3ucht% zf7%eZr^B33D$x+Sm*p;fxE{!z5OLd(+$t}teyol;?f`B9>u zcu|qCXeTKiSMgmTPjunT>3Iq;+a(c`yt3Na+OA;?su2vAh+OfV;XxeTG1uDO75bHX zrXYR6AeMP@GQ_VS}Pv@W}J+jps4k8&lNqaj9Ryoo)t^l5~z{D8Jt+SMJsIcmhH0}@eF`S~jK zPoDE@p0P3nTMWR0qJ!P~xGe=TEStaE&6B$PuuV7)1nMz@bbZMD3utZ#Aq+xwL#IG2 zyJ4%cpqo>^u-|e8y&baUJzFlZFOnsNjB;Pe*q7HfGlc^SCwQ1EuknqHfSuqyoIa0* zIh~rZ`Y$49;dp~5#MO%%8teS?8&2XlHyzPN%HqdPa7WgO$Su5$q9{hjJ4t?{u-Bt% zTawfptYLpc8~cN4)F_2#RstE7^ujRry`d1Za*z=~qck8B@Y0`*rTkE03_g=ie~@5L zCON~3lViI~6y?F$%(3_tr z`}-+jRlcnRs#xxReCWcNG>$1dPU*5U3#iATJa=jHq4!?HTvd9#+8jJ?8}`sDAxe+&fU_N<3BJ8X zi)_?#4oPAYv`+)k^MmsGiS=YQo4gd7OU<8NJOen0M*`8Coa3e-a}XdWZwpcKE2l}F zwCQiMUZv?UOlxVaLk%A}lCDz_W393`9FfEC^tza!g>s#f6g?qt=_dd{`9*oN61=0l z@(Lt!h+N?xjIe7Ebl_812+RK~!+Z*n5gi@0>O_YkhI6rd%1X1)IS%(R9cC#RQg1be z^KWj>&MoE6P~$J^S598C-tl~|HIt9ypsj_KPh zG#!fBP5(7@3jJwk44jaf@q_S!(G))b$65+9F3OQFf?(^5;BUfssXnz=sfczq7s+Z0 zo_T7tS~-LE?da#Scxh5!Ack80*_|v&D6fkHr~zgaky7~T#{9xOon3)RQGH1CnM=tz z%M&49&-`;&qZc#iG6u(&f!k~@G#J4d6a%)jVXrL1=i8is@-2bD;TQxNq0GhV9h27b zxmD~Qpi7HzjRM-xWFh}_3PhvbEB1?55*t(vP@aTQobCm%X<{a@u!bazPcj$x3*V|PQF3Bo>5YH2iUCBCMw5l$qx5tSc9a*Cx>i||q7hgwha2?; z(0F)3J~l-f&)JaT^pzF>tj^wm)PWd0pwygYeqn>sxpk_0L}fTS{4b(18(kc5tfhk; zWRDbMNR`St49oB2k>%M{?&E})%-a*STO44eapa0m%>0x&x%1ajwOQBRJsid-EIx}n_KjVud?+D84kR5Sb7?n?l`fF`6$5fqUK6dNaQ(@PVwml5xXUYD+;w5(iTvmI0*x8 zl9^)?=W)6~UR*Zh)P}$2UNMY-Iu>G+V=#OH@0K$dQ!u#o-y;D@lFC2|ouIJ@w@IS3 z6%NLRcx1>42l8MD%VQJ5Q!@G{0i{YGL2g{Yh`4fqQRLp`Yx3BIUfMVGg#+)6BK)f< zB)%Dkhee+|a7(O!>an~Vu5-I+(DE-Hx?L6_OZl-I`1G-b9QQEM$$%wDe!OMv6q6a&4+oAzM#COdAC zLB)EW0U%@tWCN^tgonQUf$9_R_6nAns}SHZkZQKaRX7kvzET-q!vTuv$%}it_wCw! z-2saZ7$fjkdjr<|7F`I1(#5xLKpG<&$L)l5qQYtA(gwN-3uRz~NIT8s9En70j972T zSR?QmZCI2>1e75-n}J|g01FhC5ur@VfV-l7DYZ6=Yq;`}Hv3yZ&*F=1XcGi(CY ztmF>%7_pIS%q85x%u-m}Y~lsY@zNO>U2#_@q(4QLz;tumE6(x*?f|cDe^Q>*BOx$g zcovLSEs57!`jcLSzc~X@Uw)mC2ZyxJoaKBHzcx&R;4s?(ej6%_u@&D9EKouj{Zpzpb_v%b}k!1y+%;=0W zWaku$lt0vC{WhQ_j7;_ z;!O#C5L}GQE3q(5aA`5cdP#o-o=t}BwJP20d)@ByTv=JB%4?7w6*v#XOjuuP9QAGBzZQP~d&agap|5O?vB)%rbgRVsX@N*oQqHC7RjK4zw` zikp>cIa8ZT(M~{u`d*}JX)xVo+ z!JW-w;r?8a6yDZGwB7jPu$68G!Uv)d@I_gt;}(hx@vutwZc2&nz~}_xe689-2;mBM z$H`s;_o6s)KG1zi7Pa~z#svLQiCJ$t-6%PXXw?EQ|O z5wLW`>Z@Gzl&A*8g*cWTD^G<$@|_q0sDMPRuF#GnHgHN5<}DgGD_ zl6s#Z;d=s!L)K6fM6CD@4p1f$`Lj9VkieuQUnYBmW^-(DF+&EbExXZgK|e#9m%g1p zcXkFfmwH)tS#?QeEgTEzb?SBCg~W|!{1;S!wy5`O$O?dP!LcW;_OHRrhQ!f#3f572ew|y_j6??}BV$J=C_Q;{C^j6kDoiY=;@hW2CWdUW2|Ni} zf@dkMS*+S!)vEk}1)f(nx|iQj{)|X-W*8rj^edY=h0Vt!1^FpZcY4R$TW(udLLi1% z`vX@^0XwLcwe44gOqB`+4UfBLVE&MO_5~RycnTiv{9^F%=N)p-a?pBcm1!YXP4xuW z@Ay^6bt#N_vb%R-emFUY)E{(LW%N{U5Pe=r#Zg6scsUdujO3#(YAbrR^qJ0Gdv@=; zcHhCh2liRl-7NptYDjrla*=s)t*TF~C36G`2PL-ixZFwRJwd@1mJ?^H{9}qGlH+01q!T7223$ID$f4M{)*Ld^ z`Eu?4@k@gZTD`fKR?AM(Fv?mlGm5<|rg`xLc~!bhG+_cSxepuwnUWuEqj%ab0c8T= z3Liz=_C5$&>$cn^1Wn$LjAIfXgjJ$D&i%&<0moo8%ijsRbU6yT89QO_k~Gppa;bBG zA!hMN`w>bMk$ptjpa${KwKUxI+%*_86KDm;X$JbEI8v7%*NGn`U;;^kM83e12uJb9AhKXmSF=YV_#%=)^!=ZxA!F{Lxmt>suLt!k(uJouAQb zID}c$0!IqM1{m1U+wz$~@m@j0#?QWkVHWtyP_4AUmTM$*Qv59(H<><r6DV}{Cd~2dRT0J}F;0IqTkPdfURV)AN%a>af{u1h z=Q7g=slQ7G3$kyoO)bLQNa7#J|LX6C28NGy505lR&f;hs!}XF##jmftcayd(71f~9 z5NY_62VLU2asB@)58HGRc~Pt+f+)YBJk_s+bX)P#+@~$;>wJ-p<&UpXp#pVL@WMhe zg5vM3okchF>E!&AxwBf}^sJZi%&R|IJv`CU#x@moty#uo0P&B6Oh=Jfc*$C~SC3C1 zS;sT%EXz5p61#cg5dFX0d=>ttizaJQcxRZliL`&#pG46V?u@5Wi!Oo0sO@OR7lc-A zYxrE*-1n9Ay`r{DkJ+F_Rma=npi)Q*i%l7qt4Z})@H$D3$86#N4w5nkU<0@35G^B3 z&Y+~;F05R=Bh()mi3~(02gjl#{m1lIk?GZEn~n_3UuW=MIwp|JK1#f#)IcaVx@c(z z6@@``d?R4F7z^8o2kR1QvVeUUVhs;pzPbj2TUSv>BucvQ{EV|nxPVN57yGb$sIvh$ zkRz%_q7&m|ks%8jNft}{K{2Sw9v(@dXH@nqB@6MHxNaLA77l%QXy+}$ONJW3(=B;e zgtmKmlAgO@K6tH|uPr}l(L#eTe>RU^M995!z=Bvy+I+e1?9jvGQM*5V8_3CTEIPga&o;9uo3C6Sifg8vz zn?7R|s=53tVZLk&Q}uE$Uv605>iEl4Bd)!W*RV|x!FAStF<0N6oV8{S%3S@W!U)&z`?bjhKIi>@<+sD#Q}L;j)#G(uyv zJaIA+!~fi}f#O8S-{}M)Tj^U%I7A3=WAzoiJ?=Cgy%z52?$LRQu&R8o*S7cDb!xYz zGc*u!$(i+Ai43=5th2Z3lScEtAdh4}?z4;Rr9d7CR1`h@tgy+xxD-8N1 zUsfJb*Y2ODX+1Pr2J!ku?{FotQMNyRmGo^7V#F@+8s)i`r_^!^YP80p57iQUR|{iE zNL=`A9v%w}8?CLR7J1oW>WQa=-!1b?VGoj0;mTZ-3DPq`Ng9-MfV7bQxilP~L!Kor zw)FC+rp{46Gksr}r&0LEhOgv|gb!jE=Au4`5rfdnU+VP~GJzPnr>#&CgQD6V-iczq zh7jbR3laZh-TyjsGqnitINW^P$5dL~X0Nrpu~l%1lA>CtMF|dJr(p*ZcA^G zo|V_q{`D#bMRXJ&B&UwC%!8$I9q~jxAY>SR1?`bVNo5)A?EBm9wG(;FI+(AHbTnexHVR@2)RXQp8%&-{&)L+P9sJ979K+)no0*R^{bBzMAY(msQf_NQTRBaIT7sZFyl z&yi3E@`$wS_-edwC^B+`u8Qd1%1vu%9^24>7Govd6|PfR3^fq6VO$AhR5R8r{|WWoUJc&O$a>j=hyA8Qu7zIWjopxU=Q%#a`(?&&eGc z3gtcFY~n+d51nl232iuLlsLxpLDn(LPvzIgrMAzvdu2^3>lp?`VAfmQ%e*h%X5VLx zQ~jye{jb#JW2^CcON)q7uUS*#<+dPLLM@_;+0#t9F!M z%CRXRZaH={bqK;2rKiR3OT(DO^OXjdVf(QHyM{XFyd9*in@5y~ti!V#kQptLX>&kw z7#7qaij*mRdh?o4u3J*vaq^}9DxWGp8PyYTASg%Aa-XQ8Z66II?maPfp%;&D@TjjUPQ&!PwgBqjxm1D<22D=~k`Lfcl1P7wU<_noc|B^B*y71=$05T0U<3X2?106i ztejkrXZfHH&if8{XJT4aUJYFPN^J{FoMag~wDTZpU300-H{x>XtvZ z*tmhm^@BTPseZSUM@>s5O@*9Etalo0_-+WhfVC=Cb}^Z6u`&FW^+;yd6?P$rk$;_h zeXGf^AsflTR7Nv!q>6C+d{-SM)>`T3x>@)&W@on8e?Dcb+oF>c7q$F-Dy%pTCm3iJ z1$g^W_mEDB($rf8NGrXo&J9GQPdV)Z{XN2zy`#GKWGBKe;f4`Lz`^svRAymO0_X!!d)wDHso_xfym!Ed{IdPQYjZSF>Ug2E5CF5h zrxkI1N*Z9-t}KjoTG`k}I)`Q-Gkur(mvAN=vU1MA&$c5?|;ak!&&1o2e2pilLnhhTL}SfP>P5wEj@@6uaspQfOwHh z0SsRFxANuHb8zu4>dS<@)!U`(6CVU)wZ2$R#ZT6aw_<-Vis9E*;R>M;8C6NNV~{Wj z3mUDA_1(LfKg!qT8({C~#Mo#&8X1|?_Bzoqw0HG^Vo|2WFT@d>v9Ci#GfDY5gp69- zJ7{+?zTm|J!5-kx(p>?I%!((EW$ZPdEd&01Ko#$&fkZ#{o2wWIs$myXb93q2d(h6F zj?TpTEzI}Oac<_ohMq_!;~yM!Np^9rb~x%Ygh5b_$gr3TEWS;>qZ}M9hD-38*<^5C zxb1|z1d2!VeFDuWBt%<$`8vBjhK+U6Ae=zu?Z4e>PkCdLBtOrA5h-8%R2=QJV+}yP z*^>H+UA!*UWF4{_)n05#XG5Xmkw_wh(clsl)P?A}S8yb@&C1_%P?7ThkS9CabrcDC z_*3fP^$R71vHmmqRRKiK6oKnqNn7c zP(d%seiZO3+YpP_p|ou|lnEV*$bmvNE^N>Cr~U@ioi^U<^FEDCj+ffx`~@anz*yH; zn8iDlhr}37Xg;x9Y&uv*@5S`6B-Qtd0mJV!m0~8uqc<8~>{Y#>Lp*Sjg3PA;DYQx- zO3yCbxRhG5HiSuzOVt~DtV!8b*TI?T*?oIbNoQV~0o~f>s~ITW1up;cGCU;6TKP5P z_;}JKh>h}m)IJ$Un2Yi+Ejx;vU;atBp)247Qt6OUNBcr7CXZXDm|o@WNHCDEs=5mN z3wsdJuOOcoAII*GmI#JpOE`$c2QST|abO}b8IO$Hn5+Pt)$O&#X^QFU3Ym2{M&K;U zR09x^$wGSwC5l8SDvVIU403sK9yUo^Yhg*8zVOCgmR13nM?YhzR>>p0%!SHw2<&1S zuVjy-o8)6Ri+O!U7PaucfO7B_)#hm!E%xdS^{H6a2DF1vReK@Z#WWt)y?J(TLM@Wd z5di{4J3hMBhcZ&8Tqt)5)jw7}3&}g)jyB)vivzIIom&HJidN&UT6bblCnbWTdR?4c zjnOQ^p#g^u1HvPhyE8XLpFW9@dL*8h7>ZCLyS_juS$zGPZ7E=x!#LE?ZUSQ2X^J{2 zKbN4ZrUrx{Gd{WPXW{4L57OB&;mUh- z$ULrQ>`!a!_~#t&dDy?EH-HY@#j|22)Lx4j_mV)2r zQu;~qSm||{=hX4-b)UzKE#t}eU*L)n(3ZEcr=(Ss&up%sHG#}Y9kKNDsl0O)Wo7=| zTduLNXYmE(c7wb8sPeJW;4d3WBahBdK;1Y!Gtp8@c3;P5SDjrFK*72a z)T_#Z&H|-g?yDn$NTxE56g^GFt7p#9Xc3Zzl^<+;U^Lrnaquy~(lPF2rDGSrsZd$N z&I)u5U~wPal=hB>|2Z#CpUlXt^Pm63-Z@*RdqSGq+%tn{j1kzUqt z6*W<**WB%lUm*&UMdPy69O0^_A*p`C#a%f#s}y|vBXZ7n6bVFP`!j$I6H zX2=$6Z7p3fx(h#9#Q_2&bM!TUF(JY7e^48Y4Gke9ek}6zrlKyR(f=*av!zO*MipyN zqIa&(`e#C6h!EbT?NF<%4b*EFH(kswuP)E{Qh!!kWMn7A&5B))qJR3U+2!d@lm9^r z@A^+bgkw$}UsofiS@3wdJYrCEyfxD|Z!2v@>XbLy+@kroEd&%*<_3e-q?eydjU!Us zO%Vw31KQiC_Fd^rea?!IV2^i8uf#@P9kHb0#e!gh5J@+Y-U>@?y}aTF&aKoLkMOuYl1K~ z1S68;jz{)lUKp5*RS8>_dpmdbdn+bZcj>DL3J!ReOcXmazJm(A@MXy=D@%?w%68$D2%cd>76^S;D4gYtvHYX~OUyt>0%6 zv;{d@ChpiGJjXHlLt<4c}G%LEZ>XTmLcA97M3pCx&6AqnF(5#ypf;`HjU`ZpI)Ocz62;6Erw!fiDijpbo(D| zQe(hGhQcLH4%=5`KliEa#WD^&ymjSl-_qP!8o(iBWEji-z8_+^$CIL0`~uX?7}svm zI+(V^h7I{k)~>czxA$iIqpK+JP$TSVm?zXgFr1r#N$>ljpoI}1NjUv8dDhGY&CROlN}GzW!=ZfGH8m0BYDXf$jnHJDW* zNXn0`r*rPCUH!a3f|Y%BZnu`oO@fG%lma(t^R6K@L9>ppb`Fi+>&0p;ZU%CydGQ4HF{f%|W3L#3CsQ zrPBlxke&GERW0Vg`8FxI%~lzR*-&~#7@eyY5Q?{HF%lZ@ct>VhP0UeE75uIb>d(p>^A{>1+-eQOmpcVk}Of-pt? z*=rD3Vwfwngr$ppwG3xAL$knj;ufFQc{f(orueB$7MKh!sezG(F5h$&fn0uc?<`C& zFfBGKnFW_9HP=6{au?IQ{5PFGM{*$0Q$IKwYG$FK@hn+qr^67M8nVa{(g+#?j9Xl? zBNsVc{pdz3U9S`{I{D?Rh?|d04n&8d<95qn4e+V*m!|vy!ZB|$S3TuBO3WX<_ds2| ziI6k52Iv?KYQw25$o#iD*B|Bl1RORdgGxlM_|mrQ!onh-G@vtp%z?nm|KSE_m|_VH zLae`wqgOiGCbpq3EyST%xo7P-l7~pu98YEiG6@L22-BfZiA(4#2(eIWXHDNw?wG@o zu4JYtGg;<8#$#>&b-c+L>1JEY6*6${JFCRL@D^F3cg9<$g#{;$u!9c1EOX22U zm3{^XI+S7CT!U!(t61LK{yo@Ok+N6x4$}v+bJMW`*+UlZ@FETR2soEi?04GGY6w^< za;L%DkPw2?s6rWV97oB%0`_OZrw357ig1ADbMA9d*qp zF3Q(_y7i(sVd%4dVBPo@b48FiYqQ-xokSBqgxlfe<5W2mdB|VvA_@djet4&20TfE$ z&;m>xy7pOgtOOLGz26vMr`M)Y9+-`^-u-ZRXj}ZH=M7rXO+~p9S>$BBK6Ig_o`FvK zLQjwpkzLKfg{O8WN<(834s4+N`*nNv>SaMh+S@mHjfsa9e2G&rm@Dabh=}-}l^>uD zu9x&CD}VV2&hKl6$@OdUXtfP-&*Y4?%LME%{AUOf+}f%FQ|2#iu;{1rWH|@~A>d&m z`d*PS)u*lZMJA8M1_qqno#+0rg2-tB|w;}OE|;8 zy7~|l0I0nDZz0<Ptd1c0zOo4a|bNGMrm4L-=-mTQRo<&>fpE~^!5uo8Z zjW!9+Ks0-G`;-$*)~LglNM0^^i> z!ihL~$wj$bnse(T{rFcbF&^u;q!2r(^yDcHDrwXppaca2S^jJr><%~xKEyL9`tgf8 zs-P@%JK|iD3N`6Tw3kHt%u8rD#g&^kQ|YEmW2rkIpQmpZGseCI{*5-jc;fTCf~ zh{0>VNRru0H}%eAIFfr^dx95d>cpi)|vTGO2 z733dn+gPGIlnM6{@LXUC{4ic`LJpm^W6j-Gj!q{r*({ z@WABA==fw}A|4+d8+Rw$ii|D2uI>p9Bj?GpMS-~s|3P$NiI%_C>6XZ=IH4n|6JNl408A4p{uU6TeQ**kMN4sSGn z+(%oe90h)ha)J2ogDk0k8#$TkTmYDh`CVLO?;VtDINcknJL-cl1Ff>%`9q>%Xb z!*T*)6kZgvY9)>gniIp+6^d|TeWMVy`V8c&QzVlb@Q}Y?qt0SC7qfYI7Yi3yAmUIE zFAMRMY}}t4*N6Ga6I?L9&ZVb&BK!wdLC)poJs@Uy*619FEwTMflRHQzNFki%;y^`V znZi5ci0U@z2-#wl3maU0jObGGoZVuQ?p6GF9c(?Eyx7=#Ufx>Gp$W<*c>IKIC~*W@ z+5WKA5cbj{mpsLO})e92+GKaQ` zB~-X;10vv5Dmywm1T_Jl>J~u1c9r^to`0G_Cm(P3FpHB_7jQI;glUgh;DrVMTJ`j#37CEVDWG(I?nrd*<$}`AF+O**ece|QQ&(33a>wu)m zQ{{*2EV{tzWHTV3GDwFeHSvb*|CK!N|3H#th$mL~c8CipeBZ<o~?(dCFU0F2X^ylE6KW( z?4D8Dh1e8aWhg$*cp^z>Q#p-zx*VSvLE3rjC^alij7R!yBLv~SVh_q}ObbnuOYJX@ zfFCQ*<@RM;Wa9z=pt!IS*tniM!#rfNoLmKGBqx0pmS!RDYp3*EE?fuACFGn6p0Z;z+KA+VqTGG1m@LocV4(&xxQUI)Q%sn(y9j_ zUC40Gu=f2BgF)89l<1_dNby`NZ&w$KH)xCG6G}Dnvri0D^X=AS;aaZ%ICbdcalZ?h zfqk}3l%U;Ulf9j}EyJ(goPqtSLo`wBE++|&OYyll zrh1!fmcrenx`z1FNBu=uw)ogEei=(%AZ~6!YQdDtLBA|GF-BmBCG6D9-kq4jtI>7_ z29thN#M2!Qol@|UA6EZD2*t$q>~CmXgCS_hCQwuM99gS>>@||vTPu{^K|;*qG+@u# z@jeo?n*w+Fe%}>t(|L)GF1;q->_}Z@58z449{i18;P?Q~&=}B98=@OVI!~ zSmN3A3uE^AgmKdq^SSs^75yTi0BNUf994K>`vXG!bsJ6-^RD>9&On6@z#CKUW9sod zK@4S2D)yc>;vR%LEw_mdz5MIzvd&hEP9tlfhw?b7M%PNPOFZr3GuHe~5a6Pqt%)4T zhWA221Uk1HMamRvAwR8?sDu}*rFcCOwS>F%2i>1xe`tmcET(J(z^kbWF%h$uu@Xd` z3wdhVVZxBnc`gak*TcfZE$tn3vNcF2jhL)Fy+J6v@_JxR7btJjf~65*l{akq0}G0F zp8b}rXsN%0-&9_%n>Vqva|vO=?m3zYU>tk<+#XmsXV54i(_+qKgFyv z3_vsvIRRJXh(e(aOmOA?;|_6?@t0q-IS?I;ARliMWx zc|SdN2L{B7btEFy{D>9^5s| z8pz>u;Tf)FlVBLm+0*YyT2U#Hfh&nEh^Ax&XzQ;?tH+uZzo3#98eNV@@dOaBLG-=v zSr;KKjxAH1bMk)aRI|He4bBJFz>?V`y29j%InfF>ZovWu7pl{;(b8tF5&m(A7CGxBw! z0NylYW5T4yRVt%jGkmf4Y=h!uNZy2lWiR;i-T4X5JyEXo<6()Q_ZwrmC z1m~%!u0cixoISff2DkW-jGpP$;7cuKU7y(j5ohlY`Cl`pl25mw_0(X8DI#uu0_>+|r{p1^E&t^kW!L(0T){xD;aZ%cG+0k*NMhII@tug5CJM(uN6 zxLu+q)jzER`@qpKNCgc@IT2RnhtPsS7ZCoAGzy&?XboXi{^1(bFd+f4QM!R5y4f@` z5=}~}-W`&a-Pn*q;L*P0XkIbd7XfO8a3zwI^hQAmD!Xe7^N4|?z>0W}JY}xv(!0dk zDt|1nbob>&FXr7q>ErFF!G(Zh;jQUhzw#6uEytxg`!W ziK@$Of>mPG%r3$Kb^cLSb|sY<;@y>Rs+$o6c8GykQZwqh=u=Qtq|9Ge=k7Dqe1`L+ z68gJr*TRR^{I`lhsJCFmc*W(zy*y$j?^xL|yeTtyJaDjw zpu6RtwlT+@Ps)mV5P1-55^+(!JHJH>xm`B>-bas*^K@_VW1K539aaL`<98c}h%W zfHkBE)M~&gjeCIQ)Sb(s* zt-UmT4Fi(pV}+QIvrt@htVB6t{bT)m_b9s=?fa^&`Xf>d0ml+}kpw}FD(E$Ia?t2& zo`V^(zF5@OHo)BoumCt>WJ!O7zN_s!PMM{Q1SZ~RS1EiS;yD*~&k{4J}tn!sNDRHD(^rvO_!QpdKnaZa zI@L$U5vNB0P+u)TfAPy|P4KL&{p1Dc9ixg2E`BHM??g2=MEFpwz-Sr|VFL>hE)YgV z?4?uataB~{WvBze_%O$gFR%0XEYBa{XNpGyN=){Sx0&?oqNBX6|1=@^ABVPJlZNy! zmBEr2;B69-Qk6G$&hZhZU6cvJJxBO#1&7R;`~Ird`aX-Hi3wRA?Oa@#fQNH>o-+BV zZILze^i4>Ur$bX4zi2nSx$g~|t?%2b^u>+?ecOK($BdH`96~j85^3_!TuP&Xw%#N_ zMClzFe`y1jIQu4!7t8}U*Y4v1YokFN&@c|hDNcU9epeR1{Q&BF;(Owj24c_^ui4-Q z5A1(~?4GLykO;ee$mnzqtQddWe@9gZ*?RN9nS>G=5N;*(rex#Aw_u+j2lm{Av&hF3 zV)9d7dH4Y&M{{1406oI}KNMHhT28U~^90D+uv?Q^1B;rx;diwG;W@7_3(3W2+k`dV z)JCPCqTA|T5wMjf)RPyIX-a(x76j6MeAmWsZS^e3f7u)i?KYxFncVCqk|GCm6@#Sc?iYl6c=nL}qaa zvV9meAB1P>i^ayPKD53Foe7z#*CoZZ^!fPC78RY1hmMJcEk1{uZpB9R6(V5@uV1CK zJ7z%SdLi!Sa$H1m6fSQ%%L{T8DMYvj$xYTl6R@tbx9;oe-3R)j`YAzr%5P}nK5PkB zvVFa<%DYuM@PgV{K6x2FKoIyr-wg|#Jg9fIEzO@};*qO^C-wJ({CoB0x-Woux-7#3 zosXD95PgW_@It!>CN*;Q|1Fa2aS1-YcEabp%{DTXnZ$7FHynt9rOQCcOg4hJhV>@x; zC1GS)vgOFqM3U_!ZjfYYWDnLdXe2Lrp$teBg%%K$LTB~BOKD0AsD-k$2~|R&ECq%g zx-kiBDU^Y-FX{I?=iGCbnUNFvw*8*3Pl@gMZ}*;i_BEea0q2(-1ib=|X_h-$xW*YNik}WN6fet5P{X0Ucd6a`JJ77ILjXvIYFPKQa2$rs2<@}a zNm;t~&4QI3ij{T#kX{#lhH6I~;&&oG{st0Pva6I*SV|eys_tu7m(4pGzIIUWG??`G z7<7O{a?(bL%zAgN`v#jVZJ5o)Hexn5p%v1YgvIw(36)fObtBVMuT zigN#~=>Vti(4C_oo_20sTq1|FcVkGSZ#|OB)AHCo{MN<$YUcZO3Ye!ckUeDw;CWsM z!+XB5W*epi98&yj*;j~V%s9Ydg(3LZ5)Dcd#5p#(;d3#l@FSdm-XM`*Fq-5>0hU4} za+3SFC}{izk5klf4TV`$KJ+o<9(%_pihdLCfK#iDQvZw@CG2A_7r&qTp_RQBEKsJ zBHa7MtXIl*F zi~N$&CkRZ`MPNL)H>IXqt4Zvmz31OGe9 z_8HvF;|gs^9xSf)Yq75WVdr6&v&u}bm{4EcS#{{sM$P+B28{!{`Ua3Fjm(4z*Y60( zg|{!?S({)*yk1Rtm0TWPF~{hE8V7Z&2ku7d4hX6~w&$s;j;7cV>%G&y!4j;KU0-4x zxb&+ky7|z?tv*R76RMW&|AQ^WZp0`J?p7w7;k7jwg@zM`7n^#XjQaALD*6y2{$S(y z!v6E8gVRx;5Hp>9o*PP>_JyvpwC7FaCom>#GMg$#mqR zx@t7Tpr35Is-o})IW6cCXJ3d=4)8AXGV0sQxX=YNu|Z6Oklv;&0 zh7u&6twbpAi98ka5GGi32=I+pA6_;?k2Vox{U})B~e?$OfB)S1x{{ zZ5n|lc&G+~u3VC1yF3*Gq?!(dOTx`Qchdq~3%VZh>J;vX&Chb`MC5vVkk>LYmmVD) zBr&l1%6@1N-sCTPZenU=*D9xEK0QlB{jP-SiVq>(4RV9{zSo#k-0#bCqbPx+F_{P8 z!$vKQr$vc|R(yvluJwm6eTpW?VKGHr7Eoh`w31*Dv}`?lsVY-j{E)Gj{MjWDt;}Dn zH9n|LCEbegmvyX#k@Ne)gD1=4f$miqFM^e)|?XiqM>Qoy#N}&s{ z81wo9QSTQ&v4$Cw)V-yCrr7dQ2JwTvXD}+w`exOku>yz2wYHgDgioe$U8-)*(y@M| zbfLMLH8~Av|FukQ$Jm>xi!s>xg_vM#zy2;sCxzFyHEXJ*Cr3#co}b?^?EBWH$1VT| z>T_6^-^fYV$E>|({H8l&k@;E6eFWRG9|xE9gs(BSHJ8*${xGwz&L$T~XI`?>*WELW z&fc!Mh-k&RZ?5X}^rulJm5Ds3T@{sKlh0_IPRx&O!(qDCqDCEjUZoe%?zf!UaPfz% zC1|vvw3}3*imF&VA5(uh?*lPVEkME)6vzgsr14o)_FS|qRkZGWtqQWid~|rlW$(qQWugT%o8KDX&YzWIN{U*9dcNw#Y zJQO5^>UzlRmpe0ShNacrW*%mWwmOd~Ids`LBAl0gtxEY+CY4HhPFvGcl=Z?Z;oqfX zPhF@uc=Pv<+T1Ks#Hoje-T@3EfV?0>qrkSY*w;&-7wocFT;qaIZxpU5EQQ-slzna1 z6PVgCXz#X-|DN`<{RD#jcY`o zI5dun!uu8!;-4wrvtk{0>FrwaII_cXH34-lTNy(iTGt;;gh27N83akBN=^_jQ?)=}k8E{(#PT0iKL#iADob$|C;hUw6EnDE|q1Gh!8A({q{{AX| zipdB`m;;m2Ij0-_L#^vxqPwM2nG_SXrd?A=0GeC`9R%U!fkzzwP|Oe#TRyXjcoD8m z6Ev-3by!gTNvfaKp?t3#Iqx3+A44xn-SjgKseYP^JtN5uYyD#M)U0dvVU)HHL@#VR z4<0ysKD}+v)q8ZYhNLe($*ZrUyHEP#KE8L`vR9DL$ z3(6DfBHqqz_-1iv7j@ z-il<`_4EyN4s$v0%_Boyoqg7!Z0`F~%0F*a0)`wJDrUw#%)G{iu8r^dw&=L{dTi@& z-|;2Rk>b}^Jvdqir-UB%Khw*^22_b_|5nDkpMuUtVf1-0b9>f?+clc$vsCXgBNO?d z9CsG3wBd83)EXv`8)sz&v(^1WsAMK)s+3@dfl_E;J1HMLD`4LZ&F_Loa5kN!CaAU{ zAX>zmpY{(Ad8^sR-^|4!=)8Sfks3B+vlwXT`fpo67O2{4OpiRwuPuBn%BaH#>fCSP z3`RdPDRZO!UlhSa|JYEAquKx#faFQ--M(F~j|=SnQW*(Z8uG^ zhq_wdz|a&8aq$bQP?WmntPgE7FCqW+3c2U`(_SJ(AkRenMrSx((F5 zl2&mhHa%wFdq2PTl9da**vlGf|I<#WS(&uBt}|-b+|Z*L0>tI;sekaa&$?t%}TjoBtpO~X@3KO1`(_;})SbTI% z%?fU}BaMcgQ6Y!7>9MerY(Q?89O&<_c+|xfyICe5W)PThi^cm$Tkg!jIixEQB`W{C zNa8{Y8b`U7p1 z^ySb>v5rfo&FBN8pG-JV_oTi>0_Pj|ka^KBE!BiH!y;`EGEu;98LdM!Fg8Z&r5DcW z9Q3Et$Sl4<3MI@dnUJ!dxnkpl7`DoN|GDJfZ~EmHs+xvbNA@ZlDUq=V3HoH3C*IL- z$mJTF;7U4oAsw0JW$FF|M@k=vp$+yd#(r>~2Zq%pkb>qqmWsO~`)#=NQWsf-4A_Z) zn`P_ok8bHb;_2Spdw?V0mj7N5%=lh)oiw2%9=2Jwrqst}W(|2l_BQ7n#*N4J(f{P; zt@xX6R;=OWJ6C|qnim#c%e*UFOC7Ew#ptKHqHnAxq!SrFL8KUtPgwhW_G5Teck0RNXpVTkjO< zxBPatcNooj2aeIi1ie8L_evird+QJJ?h!#}1 zA_{0Z#PhBarDRvq~p|H_`t*^$+KXtu215;x#X_q{JOY z9f^m(yRe?PyDvQ=;#80aB{UUI;>9Yxpf=PNQI)@+;`JLFzMX2eVGT6&o6l9_ z9M8i;E_TCv)|`iztJ!B^8=hDnGwvRES;cJ zB}K_*;D~GEBaj^ z+&FU@c8zUtXIyLX3^PL(lDaX`-wKblbxzvAr4;`=<( z<7|PGwP^KX)w_7LK55+cZ^ein7z_HV;jBAX9mheFowErvedosedY=$u@t+X%^UJD4 zdGT%{?tWVpe&N%JVN{=?ttskzxOaixWEQ!t4J1OYpTNp6o6fHFVf>{{DZ;OWLtlm= zHGkZ0NRYDd7ht$<@y=pXj?U1ogRQXi{AuWzXA|PGkxT_dB+!agmnyhZ+?!gEk!arU zSkK12we%VI*<8w&oOJ#@0W%T_14p<(#x6^soYej+_+0W?0d{7?oIxQI21pL3=~zDcqkn3GorJxu`5B+=e4PrjenA zKgKBeJ%TAT(t(HdN|IBp*{9W~b0an1sK6;-tWBZvbD&5Z`m! z2zj63o5Q#a+Y}wL&>c;tk+`08Sq3;XaL(N8q9*%A;+;&4mVCtaEZ!Uc_Fvznix#9P z-4roMK?pnv8*V$dqH(41=EIN5z_v%CfSc(nMpoe+8J|yy9^>KE7{g}y_wX4j{(=VW z#uD`46G%Ue^~iPeFBru%Uj??D$3Tph{g2gwOBa3w7Hh$DgbS&~8{q9zG^yN)HFXm*`{D{w-LVjI>-#d~2Dc@aSQnhKdXG8( zqsj#9&fjWPI~YiXpRLrbOi2qjdc5sbj;>%XuQok52w=z zxyU83A@ua-sXs)k)^ZWAMD9$P@j$pn0F~W>sL!nhpP)&pG{7Vs%u;s6R`&g-j_9uu z$l&R!oih_d=f_f>P6@RMU|+nyc7AMb#)~8xL;6*jl!(fM$T%a;F*^g!;W9LYkaCe) zv#bjr(G@c+3BH+kR(cC~s8e!?*Z7W0Nk_vMG1~iEGd)Lw z_Wed%y*dux(q(ygPEha-lcS0DsbsBo{ zeo@=ZlbYh}E!;}}JCYQXJ*s;b>#VS|yaj_LZB>pONb%pqgk&onS`ta%HuuY;{+`G+6-*UEmkST`nLoC}cSW`bBoG;!mU9SG-f-WVd{&AjDZxx>m5zz~!Rh_DDUcO(aP5lcLM7RxrFdM$pGBnV2#PvgSNvvW9yyRxl0BvHH%q^c z#qf52<&AkgkhtlExdcr>VfD-<_Y0R;{L)GqYLPgKu}uBO?=g5vKl_C{4+m67xpy+Z zDo|CLGQh@r*V8Hm|B8CeSMeY^YsK=={VgXQE9_1(|5#X<2?9GSN_BISHq;1Cv4KN@kvCRSZ+? z7YQ~F)vjh_%KmMj0Z5@7yY~&X_#(}bit+Y-UtCB=>Fl5!7B4IeCP9pmW^6f*WDAbWK+km%U-#N9{SU{m-Zv^*6ocxly!9Unbl$zfi&0i?ga%`wCvS;KWTaPi2%D2|nL6-VyMBUr8p7 z1yw&@B>QRdwjV=F4lrz>cc{S`sB9#XLdM1XaT;Yuu|~UefkSCx6d4rbXElKvVh3vR z1Uh8%ubAEFjLd8J>&3gON^*RH#u!wkSXcp)s~}^@4P^O{P)F|B%sCY7Hn)>!P@&x^ z51uS!+YjTR_G8@GLUN^tz}8h2MyB1`xa`)}%&glSui|7}X>zA#(PI z@OXb0?}$Aw1H`vs#?1gnzYd)k)(>vx{pEie(^G*5j!GNJ1d$+?-YHm^xwT4}vLa^# zNQo3$ijMk_5(DF;2RrJ!(ZJVAuZv;$8Sq*ep?*|cU4`FG`37Y0*-km2&l+zvpAT?y z{YG1&@bCu0jAj_efN<+wEq$H0-l7ZmOM%b(QvR+214W|5|DD4tJm@w0Yt-Y}c$01+ z!uwjfYK4!OshW;(_toun6U7Dj@?E3wCM-}N1IuB=xGnwJsC$KAK)d__eP6$3Uh=^j z^yV-nl69w^<-d%vFaiS@_v>q#EQW;4Y6jlVN$MhN6+hX}@@p!xW!?~_p5B^-V20UX z@m^$R@xJJ@A_!j*ADs6ylM)P<%q>x6g8Zfj);o{{;>Tkz_kf4!Fj2usN{@(7-g zZuX}KPlm(j#7uf7fP;wC!k=f9K}%|&wENe`1qQi9*#zX!w95~_ivPWIeWZcx10n+% z(jtC8<$+vss*57HHv4}E1BBCFwOon?h~hRNcDP46(mJ1rcEm}sIjNoi8)^*H}C4WdfSdYyX{0f zIjrLORYFyjaO*loT!oC0jBnBfdB+?&yMwlyB4bKVFUykITOoX99kjc#V8ha zP7RkNCr;*#&q9?tQi~JNQSj$@AdAILTe`kxlOu-vhEUT#)Onx}Qw%%%Tq&wp$@ynT zDT81zA*|2R;%?zB-4Ozm-7OQ6a_r72R7xSKb6ONLc7y6MgC&3{@~<3)UXz$Zg26nc zf7&`2N*D5iMc4A(xm^|iRIJ$bszq4pxKa`QnpiLSR0bzX(>)H(BC8j9i(~VyV$$fT zSH_@cJNH-mz(w+a>5G6pL=G<=ok=7nFp&o-?7kH&PKm<1tI&a%hsAX5m+?Gknjt}N#edq0H#aM=TjA*z({Sb@3p`vswXZKSl@!s_%;4`4Ryz< zL^^B{A+|>8y(?#6nNbF#?o42r|2fip4Rx3TR%iXmv&HLb$imx}oZGfrpM|}QV_N*@ zwddYWnSNG8?dM&UCSz7r=D#$Im`P50(`9H;ryw@<<+lmuUmf#7!^(|Ev=8dvzK@+A zfEr{)nDHrnr2I_$Uj$e}89Us4Fw#XW_#=KDq@*rvx}vJ(9guh^xCW-XvT%v?6(*5! z$t`0gVhbW8y}5mN^y*!^c3wB;kVP3~i_a*pvmiE?KaXYsF86R`rvgbl7Wq@<-l37< zTjJgNdmo=b@mXsgtQu9D23v|)p7DKfu{Bf-&!iITanrVV3X#Rx@!6@!1PGk0O=D*O z5^%)n8jNcBRHAewl`_we(74_qWWMRCF?>Cq)ZJn`2U%A3Y8ySzx8=b4~kpjQ=Hk8jy*EbCQ<(ffB;saFc?TiSa zrrgI(3%cH!GY}21zp!ZC)e(O6rH59Xs&_dJr`-g~z^Z4`lL$bOF$Y@nV`f5!t$(@F zhmoj*oz`J0PK(k*s#}8EWwDV8@5@k@tEiByALt6fqCwUhKAC|m;uMaQt#Wa$1bKJy zzB1a<4h&jz#~3lAkz`usVvz24Tv)?nRtyN`#AF<9~O{j@AQb_S9s>>y$FS*FX}@|B=g*(tZoI*VA>Tc#MYNRMo2kI8 z6SZ5^_Zyt>ls_Ix#KNY>ta2qk_*z8I20kMAT;}F4x(QZBJ{DtW4GYu7aRal#0iHMO zYCXVjbmfLmpUmt(zJ7`l!%<~_bN0tctol+p{?gV}K@aeB=X>c)OAV$(>TD=o&aU|8 zO5MC5b9z{@9H2!)1Q7`2tr<`0>|j1IpWd?7u?Z+yxNqrE6+_AjMq~s`B!;-jt$nA6 z*QH0)D292Iltze6Dq{8$JH?{OuA~Lz)vKP+;rn@rVEjt&H$^EF%}CA~#SANXwSuX+pDI?JnW6M|__RX+B190wYKt z^@@Z%DKAJ{+`0xvAZ?h~jqA1QM&bivG}+En~LNlkOrskH+tDf{BY;cVRSI)8tgvm zbpaB3%6^Uo1EQXYNs+&YhD?~h*7cV$R^T@(>4ZrNBoOJ>%tEKilqZhf+8((&y= z#gxf^B(+6L5*SlCwNZCTUnAs}{fLiZMnvl^qMVjq*S2r( zGp@g?{aN}u3>EN%%-I$3?9Bz#0WUT#Zfvg^q2O&q#iZyA)T%?@_!8bz;dyK8q|1q* zw7kdpgiIkYxACpJsi_RE=VEcI83p-xf*tvz)v+|0wZ~@0k?Q2)#G+kh|FwdWzND1} z6*-unXHak%IKG+1YRhy_Nz#+CWT2CiynC1v?el)nhiF~nV~BV9h3c`&*~Z$DI6?5L)xw(ZDg`%_w zUmp+{H`4Z zhaPd6OnJN$9HBwQF<`zQEctZctcO^jkk#EOo~9IVF9A&cbJXOqzI`p;hr?Wced@vl zj9fG+RR9=c^FU@ib={6#b-(Vf(XV^-SC|s??XM~=F!?oF_Q5ZVg~ryWFr!mY&6jtz z1?h8$)6h4bRzb#;ts^q1os?tcS6cmJ7(GPiRSD6R3Y2pB6ppn{*hS<6Z58#SOiNeO zG@LI88#{$f?DWFZS|*{c4A07GPr%sGk96>x@>iNr1w+H*W9#+P6M0#9Mol;f+417b z^Z2=bVmE&x`{THeQzV?Niw>i_JWgcLO&=GGDCNrIV{?eW!k(VDeloFEH@3Gllyn0A z`FBu<2=F2Bm?q;DwLHxOk_!9{QaPwHz?ydY_Zhq89KZ9e9Soh!ki+a4g@35d1zn&M36Dd-( zw!M{vUJqzNtJa^yFkcur-f54)D8n`K3wB>XIRmE>DcJEC4yp8z8q)A)&v$iMr>9sh z`DavTx#0?nwa^PL-l>fbX#sWkX>;{Ly`uvi6WmW%Pp zqodjze_^Y_!vQ1Ib+OFodX^_LK97at0;cdh4H)yDG&tr`0tJ$#d>ayS`)4iT34E4c zT?KuhZE*^C5fr0z$pL&i)rc6H`t5yHT~_k-`f!z`q2_l*{C8Q@cRGq#k-67r(uo9G zD_TD~Qtxn9xo5XDJa3qhFO>Pc9(xiFQ~b?UQeb=LW~T!M$fzAZ9tHm)9oXiKDd_gBS-&YKRgx_#%-d{bO`MJBGeXNEA(VyrTLaSq8|ZnA?!4@++(uPBVp1s=CCnKxH64S`s*#Zn5KI0O& z%u*h)&QdJrF}|CHHF6Y6TL)c{aqezh0sl!u{zLUo!@tXIz0M}kv-x(fW3qs9@%|OS z1^tYXWT>wZZL0M5nXc}>zM%uhhHlX-5h6d@6@+O1gdSeY}sjmiHp)oM4-A>| z(+0#92AKU|K)EWJyc0J+>B3~ex$FuQ2WqSk{+|76EScu|68+s6TwjbqA)i7@E~T>T zHKUb2r$zxfG&KZgq2v!vU($Po5$5BWF*LKdkeKMCTH5ep;f}~8WCmxRc%8W9?b&}e zC2Ug6Bp%;7rcwCq3h8bEA2b@iw?4&^Jl0O6Lo-)R|(%%H=% z{*2H(7;oWsB0+#4NbIJO;(EIx(F%}gx1|B|>yZ}v)n*_Vb^Ft!+AUOHay{d2W-B-=^zMoL&9aj!QCxbpv+BA11q323a7ftd7p;phlQG_6E|h*S^5zk&N_Xg2;g|qDlpY;5pp?)4;%Nr!xCRmJ!lstC$33>?#n;^7%w0^)2c5Nb zfg(mq-&$+ls)#fbN-IQbH)_x4>`G`;*jWA}5o$p@gSd6woFR$sloG4INa__V2Ghk< zmuDpL|EdAi4RnGyp~)IqQrxPDh|$-Yw*ZZ?t~U{pRCNFMuBpu zloQ)`o6?iBE53H$Xy1D8j0j}zYm?UE0|$y3{bJ%+|KU7bVNM33dsCbw{f&3NwDcLaRz7?KQ+jG6D~85&Ws7{?qY09bz(Ub<-u z88-)EVS5={h`kZjoD3ji3=;o{3DqsPF;efv0u`|g;I4yL&8f;b8)5>VN}1Cn)y$a# zo4UXptF9g%I=rdXjDX~G3IjK+Wb56~^hqopSPipz$TH*g1r_MP z3wm`m9>~z}?ewHEvE6hQ!?8X{qN&|hIKuUT*Daq@ZqAT_z9CJd_jwd!aLAs;^;K zT5jNG)Q}Ua9gGUmoOE*BF2i8eRFuTUbb{^=hC6XmmE#%v#b&nG-LoLUw4ZuMe`+~p#$YCX!Z#-G}BeDEq^JPsSyLW+UE z__Nx<1!(y+ON37idyMEJT#QL%d26-iOBzFxzOz+eZtdvV7Hm}3``ZR4aj%|>*gM5*lrVs7#;0AH0C2mJi#kUc4==#T!1v#UB3^G zf=4#|s3QK>PR%IN>qf8tdKVy{qCX2NS`T&3xf)XL% z;eN#YBYo0jmp`hCS~qgR2~5~I*DSGcw~)<6^(NSDNun2Cvd?2AO3&745jz@_0UVcl9y<}6!<*EEx(+m_(S=CNJ zmwVSLgU+s0Oqt>vMw{j~9cz|0y5%HV@HfuN+ke$bPIL<9m5UOe|6rSAUgI__vmO4Z z>E!tKPX2=!l;{6sq1k=+k5dN*yE|`Guo(OI+bi&RLQ)P}TU^xc{8u7ADOm>ZJJRan z9L899BB>>VW9J=bvIH)IEc@C~Cx(wF=jIpCPzHHd$mX@r>c9=w9VL~xEe;~5Pv&*^MQn$-LY9v@kMQ0Y@d7<0vw(Tnr+Gv7jLO9%ugbL zMPY{YPEbed$7=2jLP>uBQTf4yZCWEf@WS&I_gN|$6bDbYsAJq+uZtW-gG(`sh6V$m=O1p_Vt{2|R~)K5ZQV!N6Ch}*7*a^g4|OhAm$R5Y@V+WpQUqH|?Gyei~v>0XR1 zaE)d;^Vjha<*w$^Sk)hzRklfjXk%%cfNA;GxStL`go4*3I&{!JbaS{7N>#Snf?9a- zE*@N%PN7oaDEvjR1ufDZ<{Jxt9cxP0LE^*^wdp7Sov)ABAN9+E75TTXTGw^Db1p%h zI!LYSv>!geAI`sg%_l^~9*<`R?jJ@mwMuM|#n>IM%1DCju|Zo+KOkrPr!8BIN$sob zo^tGl1o#}FL5a3XhzPsVHMNBqGM>@-MyOJOuwTGmg4IQ_IX!AQHEGb|Z85xTKOzZ- z**8{v2#Fo+t4qc*_TCqmBtZ`3J~{0-w)n5q&x@#ISAia}Ptv+K6Z*QRg0w6uE23ld z9N6}N5AnB(=d8J8)bI7{rub{R8iAGPEf%N5rl(SZ9?=&lGb}t8`>Jqt4ULVv2jQ~l z9_i~I_A)pnqb&O)^x(SP8c&-UMV6n>k_ROx82W^5b6`Blv99Sm9&&$BuH7 ziXe7mH!Y5l4WFwX={(-qbMr`F=du2-!`*`;U45NHLqR|CPX2J~SAZjq0|g9MPk{kv z)7&61CfJ&=h$1TSrpIDB$7xtLb}^z|wBEUbrfO;D_mO=R{uFKa*X?yF2%i7uDx@7^ zFAe>?McvQdU7nalMtdUA^o)49wT;BfE~{9GSE}&vO7GElAE&8z4)+f9kDwLx5dKv3 zl33KHCzipC>5K_~_1d)zvc>P0ee^Xv!vi9k2tZeW`F#pq$kU#wX|#fGAq#GXMt0P{ z_?rQ#J@AVy2QuKeZ&i3xz>3APTiRD$H#^N+dea0nS$1Jtl$`m#mtRh)@Prjxlo>%* zqBAPRU6X6AK*^w;*=@8IHvv##xrfr5$3>2=|}z{O&OZVJWA=bG9UUm z3D;B#_+zS?COW%pUB198-xrY-njq}~{vA?7KD)XORlr$4e;@&U%IXAWn-^-(J`@J#ws;62> z)*~_AEn9m@UmL4SdK9se{Y;=u8c~1bh?{sIhnD|`Xfk~`dHRfPgsDpqEjDvJ>a$g^ zuk%%0q~>yvM3F1Kv_+j0Oa+<=Mq9Q$6&-q;#eQnVXGCtXmJH;KH$DuJKPyJWNl-j7 zD(vx8V&v4Ub#5Azd}M8G5^fm!x)7J{&d}^L%0>gQdMBIFVF1pM#rx6J|H8aTXc*@D zCNZ+}FRpT_1E#doWb$KFJv5}Zh%j5aA!6G{9O)cv-abO!mi=mFc5)K(`2c(gCM0B~ zkCGI)BF3f)U1dP@I zK30XbIi&i8A)kBV#s?b6T49v=-Q|Nv4jbSq{B=_W43jJb$ zREH3GON>uZy11}wOR9Z*XW?{!6IKD$5)0q6wJsGp=bPw%*`Gw4svB0B6$gLzbE9N9 zd2Wv(Or~@?tOVeer`jM{J7y6^n@V&nP|rwUXM=<3}yl`B5o_xAc0oB>`V zNo9_%o;)@~u873MZF;&!0A4C5L6>tgwu_El*Y!ksJ+@>=G=zK%VY48NVJVH`QGu~& zDD8V|CjGdc(jfjfJ!4g@F-nQ5n+P<-0LcDZs*$Jpn6tjg@0;T0F5RPuw(JjTXPT)1 zf7jo|6z(i z7uR0>`i%&~Aa{3#YA+W~pFtggnf+R)znL5J;_|an-4z1q8^zaAe1Gb~w%#G|;XT%; z3)KK8vUKHYgqjKP#BEe}ph2-%g+V!oaKX~ct9>JfyKmNaBg{Zfqu0k9l*qi8vA#7rKifBZ zo<<+KaGz0|zg|nDdC!7Xo6Xw3SUuQ#sMoGdK%M<}QBEl?Qb+XqMRAfB4z`isvVUOk zsB39r@bBwuu-D^(w??y4)R*IYNXS{sVq-8u3Ap|Npbw=e!pU9hJrd2 z7cw!TeV$hpJerJ?Lfj`W6S*dF(uBrzOfNIQAjqxX7apDe>5B4bN-x37q(!9V(Z&;U zBnnA_I#F~V8zT80*rwwC$q$a2^)=cg%xszsi=AoY zD9gtgwR8*Og)clI%4ozik&#oTDNGxl{7$W=CRWval?j9L* zSIoheR$*$MMI~4&F^<>jw*@Z6^C=e{piKshQ*xTJKdLxB%;!P4uABXTTA30rJ$}tU z+(0Q)GffQ@O^c-Al}5JkYcKl{8+4w=dD)w7>IVLTxnHM)Z>}%60%VhNoM{l3Jgzk)JOSHy$VLl264_sj*W&x*{f1 zaCm}*tsiI`2lv4UMw*sQ=+8}+AqNx@BoQ|EP7@tq+=uXR6H~)X0b#s_0v8vnkO?^i zr@#4m*=2@G4&9l(ZClXS>1g4(T=t@LmmEMc9(~P+seQRgTZX^K`*d2;X^hhBwGkFB zy!@Iro~@t|`iYQpti@mcW%2KS5W_V&iIOEKNuntf(9jo`EiC&{M{69gGEVGY%HD&EoJYEk{rY+%(;Fz z%Fa1jGRl0u#gBrp;Y2|Y-LlBb4gZjm_>J}J-5?_FFINnXG?CTPJAy9+U1oQ9w(-^c zn#G@nhKIB6{620*6?aKrMrOZ#bYbQ^tUAgx=;u^g%P+*$xwNhAX!p=i=b>&mNDg%m zS#<*<6;Rw5i|mD-iNr3_$iUUk}!M-3oF7XUwi(61NwH7m@m za5e)*OwCS42=AO57%@IN$Tvco&^Z{5pLxOw>V zFlF^#e{ielbGa*PKrkl{E!f1K%Kb?OkrtZQU`4Xn#kn7GoCn!%`cXI>p`GUXTKo=! zf+9;hE9*Mfw;=TG^QopD_V@6+FFmg9f0i3rKH*77kEO1M0E6lU_K;k>2E}ib=a3!% zeazI`9L5L(1)y-24WBKma_7tpWGap)Q)5%AfV7Bxz2S4KCXUq^kM|)9m;*MAp)4^u z3;i*e8eZStZNi>Tr%uYIR1EUa*DjZs9126RxN;wf>oWN<5ytK7*->`k@T39Pm%7<~ zU^mFPjvlZStDI=osn&JE6lRp^ji9?BMg0|eqT3ao==4f3!wVO=D~;Y`Ov*Q9U=$yL zMLA@OkU}4>u~yy_JvciB?~6VxHq+8>Rp@!!oa5|4kN@pNh^V8b->#z6_5f1O&JOqk zb*>PKIlG2bO8v^S89p1nGP>n}ycQb1SMOpZ9exx)9SXC9S=2V-Wx%oBS_;I2P4%sQ zOB@J=n>eQsDLa8GWz4;QM|#GAY3}G9pM^(5pB0qK-VvJ^147%Fl{nrD->otyvzh0; z0|H`;26Mdi($`n^H&0D!DyXI$%sLLKU z*}SJ9OJU581KaNSHXCaX@-`P-5e&$GV>Jb>HhCe8*Nc^vpIpU!qtj_jNwl)zG;bk) zAfiahv|v3|)+b!Q6@$He_hr%|?DL9jSSH}Uv2_JU#;$e0|EriE`LURh4dGf`*0)L- z|GG;tv6zW01v=wmo9#M-NXgzv^nxx1X&-b$YSi1Ek-zeb)BA+2-v-B~Z%#4F4Qc}%sZ9|-Gw~dXEG<_soPF=CvH1AICtC0 zqtmyY>`mTwawskTqrVT#-gdHo<~BRHMi!P`UgL$?jk%oAx`mx?doT;zS^w19gL!IK z-BV{H59X<>^(k|%CsGHG9gUlG51PU;q&IA4C>1MfuC$eSCMDU|@y)$*Tx&581IT*p zp~gK{_+M6S6-iXMb8TT}n#YflrkSvz9)RpSTXf>`~J52$Vn5tona z*sTxUD9ia!sO7^~;loL^h(OzgJ81kY%Hziq+PBUr|6<lroeT4`T{Hxaz#ND=$2k| z{d5r(SzhVd3i-pt91UDy*UIs()`QF61@;Qe$NNzuyClhzRBZ2uvBTF+UBwxwfJ5|D?|Egq66`pb=x7Kc9RtUC&s~@T^}A2NKQO) zlPN_7v4{$fM&1UFZQ9_i4|{RAWLIL$cX-X5KMtNaFewcZtfyYz3SEnM<4AR2u&Zz6 z*zm|r#|DPG^{P3Gm$Z=fJ&01b;aN2FaQY02L9mJZPptAyv`_B&X8u(%DK|YiZuA7S zXPP+YpZ}|00;)G}QpgE* z7x$FM)14I2(BBPljn^dmrZ-L4N=^m`RN->@hp%d9E>k2b7^yFUrHO-E{7RI3wte0R zLV3LOW~7psU@~_jq8Sg~q#I+8e!D^}067WzTA}R1A4Vt#l!wXc6+^E-gqp`SSNgj_ z!%)ZA{5-UN810~JiINW!{1 z%_&v^XM$UV$m*8h+zl}Y`pmW+7Xy&TZWHr zjSO{1Fiw=3Ax64g`BG#HJH8@2I^w0Xn%H7@Wd9V#rBjl1 z$si!&2elg1i-`o)uP5OBNTh=ZsT|kRBiB;8b@&7JLIGhwP{j~Wbk%o?!@p2nbEoSZ zjOlicGJrtzc9Bq}gEb)^aGUxR55q&=Ry{Y(-6-`*IB~G`?2;$BNHwJ5SF0K7y+(O^ zYiwcW)a->5N$gWE;q`#Q#+^|V>rsV@{vPAk=U)P{^rV5|3IP{4Ld97)?G#0^M`Uz| zJF87j)_b!~@rCh3+BO^XUF6;LI_3BBnl3$DtQV#n$i?;36ai=H-quYexCz9m)Q_*b zgcF4DCz0_NXEua}d?rvRTMNv(I?*Kn-te`yF%(~==Bb01enL(-_h|A0AT1QSAu(a< zv!!>K(|J=Izd;up0`&9}db8tnTJMXS^)=xZ9J=duI-=;zt?x(WYHzOwRo8n?zauQV zSd3%p048+GNHLqiBI$n{A61s~s$;8^OKMMBjGxwjiK>nXhQY&z^h=u=;-vzXr%`B9 zfH*!PGqChdaV+I_W*jBqK+$3s^r!bon7Y^|M8Lb$I4HqIZ!^x}YgYYZW)GTggosPc z6Q=Y71ghPf=nt8-EOKh8jN>CC`)TY$1w2| zu_pxk>IbdMu5#^^V@POCD)hWR={dr{+4R_ohyPSQp#|#pctJ}*uKYhEeau4wa$dLw z#6ez}Dsq_T>hW^mJ8|B=i2o7-M_^DA{(8!+u&LZ9YV)&Vzy~QD0>0c{MHt3m@k973 zgxaKf8rV5e%ROydf<|MsBW}uJcP?-)ZfZG(G4S2py*;;#3?Bx(4-fR&gb`8HOP_1$ z?}{JOFYM$m6o09_rB?<|docFd)w=oRg@@FF7>G4V?b@Ii1GksoohQ?6^gh3^(|C7(JqqlSc`lvv zR(gOa$l`xd3)Bu84~qrNa{W?6ff-Q+TfO|LhI z6X1Jfmp`vKF7UwoGwn}62blmFHhikKALTx%?B<5Lc4CR)KCi1LE+prVAMMb6_3?Le zhbz9W0g3A~T0>2~)NC3gu&^}NU3(RcmBuC$9Pt+oeRhr@5O7veX>-qCu#1JR2rLXFLu%2GVb*aXLiP_&X$)Ow(}=KBKpMy`tAhZ-Fvq2}oE^ zsZi^~6rBYye$Mn!*!@s&qO-+^-DOYh|AQnJxGXM{!-A_eg~f1o2C0p6;f8fHSd4wS zFLkhY5N)nd#n*}1Z?~ZAvS)Z?cwl6(_t4?t5oFd44)z|juCna{wbzz?N>W+w<5-=x zeUzVDdaBK+R%KJBI7#tK9gpSeR3DX9ldb6cSLhFEysjuA5;wnl z%~c?fv~nG8O?ugV=&x|&J{pLJ|LMa*!5dp@rhg{;6>K_;P;l`L(AIiTEzzS-3FBIR zAL@M0gJLGp+nqAQ^|JUni|<{dnNhy3qY;@I;L)xPwK zavz5FV%SsvF}o)Ddg<3kQ^!& zoyWbaKE+y12}v2;Ds+h5NnRv;H$S%c-IR5!rX!}?MPzIyvXDYp2Xh86W&mOuZ5|@& z^GR<;FI;T&)xR2LwVizG3ORG+U4#fbt;S(;1O89d3UIDvx0t3+8>RR!YSv*=7uhne z@1|qkX?<03Ue1QEM+^`Mm_(;(Ay&4Bh5G>4e4m`E9`!%#dW`uH&Co1{^)u~-_Hr+8 z!F0IEZE3WQr6e-=s=4(Aq!uD$UW2{OOe}>b>zUPm-Dw`;$}E1dnuKH?q+Wo!GEwkK zU#U%^^%!!{nX~9cSOkm|RUavoy?RPe1D+h10@N(-NxkNBzn?10`UWeiV)xU;0sSm| zBV>paL{IX$wdaaDoSg8SU19+)pNar6RKPd71qEQa7sf%3))#dI-o=LG65t1RzHvvH z68Wq@$AGcDf@**>fr4YMOswGhoihj{S^x`6&%G@*iH1ZAbJlYqoTIQCNmu>duLqDr;*8sS;L+`Q+Aj?RqO2Q8@aK!-#Mz~k)=)1@$|&3Uwtmrnrm;F zNTkvJW}=h5U_fW$d<$ty)sP`%F}`p#Fg#UV@bIioTM)A?e?Cr8AB~DpoEK)2!Vv)( zLgCM64ks>v6OF^PM~6LlkW!S2L{-Z3v$K&?N&A41YGG!jK|u`;T)gwS4;oWq9`(13 z(qZ|zWczH~z2Y&H{>1$G*}1b&x}?jgjhC;-x{uNpy6?Sqbe+H|X00Rm(K$6`KElG+ zxfk|ry_L3EUyKdl5n#R-Q=#1f9AV|T!$v^#o|VRXtZdeMs*U$pzH09IzV#itZ&_)s z_aLzjeqVILcK28@toKwJ@7b*f{xV@6*GGMx)u_yQSY<9c-s0;G_DP#jWK?LMEj4oV zc0W7WMAFW$IHDayppg;@bk(9V7G79`X+fu%#&L$%O0(4KwSKgGr;tuDO6*Milc-uC z4^Wcx$*e~~4BntkED1FIikLx#ucijOsa;3+2x|UaD!D1Sd1Yo$T3I2(nVU0FwLeo3 zvK&v_-ALTA@OSZb^3wtpRa*|}LPQZNJ}onkp0UUV@Vv2Rjo;4@ARA_7Ncm&-D=}z8 z+LO$;6OE1NX)lHczdO#%ZeS9*_kKN^=uDaZD*V!&4f->^ewW(jhn!G$PYu6rLJqK*&(`?QW3h-VL(O1247eW zy-oi3YopcuS>c!y!z4@g7>*akO;6FI<(laGYMY!dn8@e|j z4erT3kBTlR0SC=TsV}HKK#`+`Q=^nQFh+5EeG*{Dxi3Ab4Xx*88jzLBC*`Hz4-_%p z0qITNu8eZ#{bKJ@l3+YF_xY~AT>_@RO?g=2IXZ&+1QK4z_O%+DNc#Lcs`In#2y%hv z5EI4d+PG;I2j4wl&07iAE-$B?Rt8x&)=Mgg{f3d`pNcUTWh4%x>)J&@;kk`BRQP<^ zJ>aBb8YYdGHs|y;!J+J@Gh2>yIpjmE4`-8k=PK7F66-rg0ax$z!EvFMy;K;jim&#)5(XZuQcJV&u7%+m*YFIz%KrPOBr;z z#$$d)RyL7_bw!lM5!#*b>1>`z$bvnS08 zR>6fjpI`p^wJ}aPnxA8_s8A4lyYNVwsx#+TG2yL%;_^!=-v#rkD5&8_=VVdEY=)W? zj$b^QfJmg6j=oo7zMFno*oQr>W7J@d2Z%R1Lxoc=-W$cR3F?C!B*8^^IUD{1DG-K> z;wag=i^JIVa5Kp_W^QX^`eM?7fric_;9vBI=+*3z-`{Wx8s{bCws!7yN}7iM3U}R$ z=YY!*q+S=BMEQIW*fl&fwK9>IqD)Vec{lWt5d*OJlr_wp!Vp6mhln8<+Y-~M`HPX{ zBy1Cob5Js?!q#x0Uqu3?(Jq+JS?;Iz4e-L2o*DO*WteO0GEsX>wx%Sm$xcY5w8av0 z^xp1T`>L;`^Ac1mGl^@`kAtbMgN;SRb@*SHX8*vFsF@}&lD2d{N=jv235Ib%?O8=o zbo?wsLo|*?R5K2-rPP`E`BZwZ0!+Bf;>S`#NsxI$-#iXXWd4xeD@pyO=dF42$JlK0 ziv^~$&8?QyDFZv52+$CDJ9w72au3UNZ6XqgQ#7p2hUz4vvhXCcHpXC>w?R-+=J$H? zFVvE}FAFIz_tktWgBMxn({LC9AxGNchmacRpEEyX`I<nME*@fEWUhJ`2U!AuNWZ5qSW(-ulD-cuuvK)|>2 zk`GuJ1r~)(7hWz>fYGx|0oV(-r!?Yw#9 zz_Fel^xYilz189ya1vkJ@X0ocIXE5{Xf7rmy|^lsu@hc8h<-*+b>p@bar{~y6+xAN zSIi}`#mt?xsj=x(6JzZN0nh|NS2iQL5cy9=w*(omN&)K?NugzGwca^ksfv0pn#h2G^j1kVJFea^q9t9y&>OvXS$?=u`NYCYpd3We{lOu7Y%;Z1naWZq|Xw;NtgNY_h(>UmhwHM(sn^ zJ8i`CV`4Lj#DtB05P=7l6v8UR4Sq95STlK{13TbxF0iLMI^Ey(gS+`)avu)dF(#_J zZuz=Hbz?doY!l!zr8d{`CT!w{ep*~5i$7b%1LSFpoMELOZNL&!))<=R^%Y(n^OYP? zG`&v-CoBS=1UDM(G~Q(6%Y2`jH0z!JW5cyt$61+nX0@lZ>Q7Ms;T<3nvkHrn!|f z;?T~2v~5doIEGZ9Qs>N+{Pf&YR4OqP4Ezjp_5i54*#WFXqp`p;Ue3SDK%*p7)bkZ_ zReDA3@W|25K|Ab1JSO@5Ds}nQ24~Qh9tDe>n(v#whWG1>pDWB{2?EzU-ex9?fBem^ z2it3QgMJeH6I7M?Bghsw%*b@52@Y^^Nv)gJU!WY5k?`)eb;1R*UOrAT8l;y5nnB_J zoq09HA6t4%rHMe-WE$y4z;bDUUrBi@afoGVKO`~6^ie8RViZf zhTmN?sH>#g;BEl_G;U_t|kOktdRL~({{hDg*>h0(Tckp(IQLERCn zNp?RVVSs7z8>2pgiufheF^ZhQ@)@)P6$9B*ktCYm`calr;)4sNKC*N!bRl2BdK@JW zCi{6x4nH(bu1w>~Rb+vRfkm~xJ9cc|v$CMD0N+cWN1&YZ%(@a&Q+6M!;Z;!lhMvWJ z|)bXN2wOf#?167lMM8(QH1ftqO5a|3Rx6-%JZ{FApb#pNJkRx zuI~_EM`3dX1lU1iE>X@5SsCOxi=QH2Sqah@NE1^dS}lA=`pX-E#-?joOG6WZJ?8g? zGuw?Igv32Y!k!x(C+k`Kr_lvq14RN*rVM?D{-(Pz0l`;E(V$B6J_H^HrOZ_ld9AP# z2k@dr`-2Ct^Dmia}5w0B%;ih82Q33J`DVLa89 zX=vbJqCo^rgkbB(L~tr`A}g1Hw&oLH8Yu+E!hZu!kx!!6d{GDg~L3j~gM zd~`9wv|9hXh9oSwY7qkUvrn#O@MVsy24w4WEZ;H}ZNYQKOS~?hh$qw1oKU|BVkX){ z zZ1{xYupt`fUb`F?iwWIY8D->XLY>gP=T8jjw-UU~;#VSJS3kogZt%E-LxMDqXM+cJ zhCH0^cj=4ZJpy$k?3G~n%58Det|3saJfIKeSs|ETW(5dyURjkNMaM6W{)XL4)e5u7CH8M)}EsV&d`e6^K zyU|Xx9*^4R<^SL$@ZIJ2j!J=RpOh^u%ppD2>69YA^BsZ8uL_R1D|{Q-$jHWw1*Ph-!{l*ryhEgJ_N{Rw51i!$X=j*4Wp5POAq&qmy+iH+CBS&EHIl=b zI40-q!^$lz`-141M_LseSc0&2LvnnZHrJs0AkbGoe@nFc+cyb+bd3mj165N6 z?~hnrP=X@MuU^9kC|eMjDB}CjckCBxd5NA8L)0^Y`25#V7wk6h5@18-#TkQU59p}( zu}W7WVzczRXvf~zNt-VwB)5E547uNgWqP+s`5kC6J&6(%rkzwkZIIGrJN@dYvHuVc z))yE<jKQvKSYiA*hJs}m2)k=2v@kbC}!ree;2BYKD=9w?F*h~-Lc>>ovMHA zT=F!xBXg#x*nk^85gAW;I~H^+ylu5>Al{_tR>c=ZUGvDN1{z*-fD2h#$IO0O0wB1o>B~T*(rRcz_o_ zEhZb`1NtST8k1(_ta1ygdHT%SgR7pE)sBQHm$MPTr5`02tOO}g<)x)CO0zx!*wBD6 zo8H821Bja%ErI2fcGK367-!Xdg;*;0g4HWGGqU7g9`ljKyvo%Y2$Z@0)Z3^O^zLuEaZ|N(9FmvZCka<&9UV?d(B;3DB!|8|}>+J~2;X>}J7QD~OQVxMn zqDQ0U*uqqoU$>@Al@EZ1n!u4s$&fDpIKq2a9*JrK)bLIy8(Fc64mlPv0bK z`j_~BNz>r1XdSF?He~p%C`z%$F)Nt7F64c;+Y!ZU>2a%Ecr~Ylr_T#2Z}=IC4aO#s zGtMZW7lkJkuZxlU5oFXcZeJ_xuQXDfhP*rDlns&f`CToOP;P41@gKN)yEN zVo4tA35)YNoOLeQ(38GhSXFL!$||zQt(Y;guQKX?S@BxF$7ie=Mi#iw=JUf*%VmVF1}D5vP0!t#=x44CZ4R{gJ-m-aS($1hHh11fa4CDTAo%1^b< zR-vyAU#wCai^QB{6a@@gl%VV%tUA966&UKGh0gP9We_NbNP_Grz01&frsiHEyiRYB zC6-pIu$L&~*874iAlEH53FB13IE*%|`lK9b=>tTs$5FE2cb5_8!s0*FCcVyBM%VgO zaL%51sw-O1bF*w+>e;jRrjUOvow_z`c{m+Q9S{ z%Z`K~3agp!qj5AaINBN4{RzX*u9O|vIXCyEkCCMCTxIKwu+D%t)>{3qhIZY;}&p?)nnpH^tYqq%aj4{d)CxQF8L1Uro=A zAHb-PnaB+h{MCyB0gXrx`9=nI6%-s+i}mU2geUzO!tov-V56`p+iCD=3z1}BRCQ-4 z2zM~yA^Lg#O!0AXL*WbqrpHlj27gc#A6{#Q-I`Sr&M9BGooi{uW^r6QiM{ErcYMmIi4 zR0>e&7l3rM)-PiK8u}s=attO?E<5eXa$=oj$@Z~H@ubRF;Uwud%P)7rfWCl)Iyjkt zocbwY%empGv6;nXp;z<5{Qsi4yz&~}dWT}=lSPzf7p?HR)w|jtR)Tj)0FhkRL5ZiJ zU+IPz2-pm7an*G;^eq}`E*0J}EP){32#?!JLxfB5AVp_%@;=UAYYQO3YlN_Jra;Z}uTk05i3 zff+hWjV|+=HZUl1A;GrPeF{G29syI%EmJRo!2=(c-&cV@S{tAQVssxbv^1BI!(@VR zzJBA(mT5xlV1tfkO3a*-?he7~d)E9DYJvdi_CAbVfj8bmoJP|kc(7i_H&V}g!MeZr zEYRE(LM8KJDYGfRq0}Dt>y}!)klBiLbhXK8vShJ)M+hFE2W-z;oJh_tn<2LkAn4g=y=n^VLoNnCOf=DgdzDOmp zyj%PU#i2+tJv(yUb=U0KwsY@}J=a~UP!mEcjH8^<6rpNpUK8kgjik_^;~|<$csW-N1eoV?_Iy^);(LoxY1eSk7+e1y>3|nRpA&CN_C00l z?L&qL%pQ4`gG_px=@o7wXu8bY6{b6n{V5BKM6W1q zzN{7{&&Sbb59k*REDp7dQ_@#w*v3Y0GP-?brTgaYu48U&1eh1;(cg*k49L9^!lu+b zr^3QLggM8kZ@n0qTbT0OGKoH!dy%b%V2NZ}(pd0=x8T)__ttI&!^Id3*arc8nYOy` zes5K{NW@te5V07^F+a;DbXXW>I5k8^L(dq==q#Ryz)QEV&5lPmsP%;v;3B9i*_T}IRW-@@!s$e78AAlG zeZg&YA$R!nj4oQjhPhYAjIqcs5QW{E1_J!tM|cpzF5f;HPh<6Jk?4v9RSGYUJu5PV1Q%D|_eZ?c zOTRMeAN*xC&;ODhq&72C)e>Kyuooc@c}Sk8u8B&Mzg9w=jF*PHdT|e5r4h@m@W;Uh znKgN70fBwNzX!eyu@j1aQ#sN*G;(uv=Z>A*cI??>aTp90tTHp2@nJZGJRu;PD&d97@ofEgxungO(OD zTnu&k1gn~|ht%dLMHHww*h}kI%l=;K{6z@2U~S|8yy%^bh?U|i>|{Ek^a%7!1pXYp ziTgDlv&ne=5sD}wW0vxyEtQBCQp5n-lR+lE*`O|6L`Cj{QOF4&1H}JV{MvdMn0EBH z54ElMRbMQ2Qt{O-y)*&2r?abDugJ>s_ok$U3e^>1+{(f3n@5JaI$dtW3?F^&12}qT z?+Uw-ygTn_JJQ1Y&1}?6oxHrt=cNZ5{`)-f{gYWiZW)Qe=?+AWmabos&*7e6;Xqr~2*nOb@X6y=O>@pfkyV-93wvLT60Uj%EPbhH1c zu|(bGhg$$Ly7YNVUv%sU&nC8GGT&VC6rvYgiA^c{_HZE`@X*pPuV4b*6!l#3K16Cq zK6RT^r$?^04Z*P)JhSn-HeMyANcAImh1!U6S5fZ`xGi%wb!Ij_pYDF1H!Q~F1w90n zAmk`Wm_P@#bBkRjSd%aN))s@UF`Gue7~w-K+|%Mud$L(WknDP6Tu%EVwf`!1tS=tr z7w5ON_~gzBOF!Fs9rssL(_?7TFKF1ktARz2$)eN6=bZe@135 z&a?Qw_@M)~{77o}C@|D1D+}t~T6c#KVE&ZgnUKs|tEL57CWE*2s8(qo{ zD!5@^)A_mV^WaG`1CTA0FS2jz5&gU|5BA27ao(B!3|awtZTM7$o7UqogMMj?r{e!F zezY>hPF3Ss*5^$=#uG6?xM_-3pkyK06(G3OD*Ti;cUkrTT$4#c;1f;82*r5qnG<0S zf@kPH5EOM2q8R48VuDX|BtZ3=@b~Pp*k_)Et1H$L>mdJk=%)%FVS>Qq1`iv}^F`&Z zL2k$1(>HKJKOnkM;W3!5(R~377p3_my!EoMiN)`cL4@lRqDe;N6mO zDsmUvW*4l3TI`a-qv9eLO$um089l7pxCs!(8~5a>1i?keoSn7&M#OQRJA7eU6JRAs zhnAf7v&ex0iskN21$il+=aPuXIk?2pS^Q~=!2wQB(bOI^14jPn1#$%-6r(30F5<%9 zRJmOfD%KrTMPwG1sw^hM`lFoJ{LST}u-+}rvMRg8UAM6xiQ%Y7TeA%BZa+4PlMXQy| zC}Nz4W%~QEx9S39-Gw7@TDOhG;8cixy*n<=?)7Hj9L4WepL=flXmWgx#_$j#>UEJ) zxi6}9&mi>A4NfSFM&@NFAkR&F<{FC6SdZF`41ipVMz#25=u?F3kL0<8k|jnuK;jJw`NjD6lI>9i>+@gfVU^W=mh;tqeT~79T_CQSb zd)yD*vctC_BUoHhXn;n5=u4i0C-I`kY(bxNcz-)OhDzYXM4;Lm0BmLe*epsDj(!;O z?h=XQ7^1gtRI`-lk41?t;K z>H(>}ram6OS_Lkc#3}koX)Jm=ot~OS?htOAbS>HYdHIX~8utlb#1yB@605tC* zU(;KhgII87)8lH9$n==Rlzd$W5H36gttMfWqRqQWCXO73cA3oQOj1Ag39{B>mr~F zP$+`OR?4EZltO8X*vi(z|9j54=id998QFoyd!J_l#Pi$ka+dE|uf1c2tHX6AI(a9m zUsRv$`57bN8L4sV7|l{Z1LwNjHnDjtf4uHA0wb3_x;D}CZOp^g8a*I<@%9PZ#nR!L zTmV2Dx_H8NDoxwQY3NqRHNR8l`<|^B{$yj5vB~*ZJhmK<&BSK1v3dL_wh&vGLp@h^ zmc0D27@|rGp#J4pY$dj`5IY+?8^=?z`N{ZXJUKZ#xs;ron@r%J$wY2)VG@nhQj>A? z)}2gGPi7~x@yXm|IyV&qc}~R%0?bX##io!OkCSbu5GKeW6fp%FT$);*np>V)nOa$x zMr(BxPEE&`rkAG^%hPA4&!*$?_~|%MGrD1Y#pmLaa|xW(HkY1TNY7>GvdeRebI3tknp;ZEt<0^&=g!ViS|hBe1Y+0Ii8!EO zVm2|EPVgTD59X0TiVNw)bUK0au+ab@0e!oam|seq#_R8i-IGb(lUPYi-?I#gpjBU- zpPf&q<`ekO{5|tavHAJ=*xC8yd@MP?Fh932pPG-Q=F{^ycOW|-Tbj?!qm*!IeknV@ zJfB{eKRtyDEAxqLGKReBD691NyvE_x? zh2-qQ+(K+_A+Z46gfC4mByqmN0y-<>pM`XC0i6_3xU-OpEi5i17Z+9*RzMmloD?^i zN>8Syu}#>HcqTOqd78qPrc?NnrvGG9+0Lu%B7F}UMc~C*{FBZm z(z!J4VJ4Q!B+w=ylgy-(nOtTmmsvyv_1-0j;_N~en~=&brSL!+|DRpTWlv*)L6@;q zZYr0Z&Q0f1)46yK5_uLP84Hf9^SLDc$t9OD_=R*Xl}n)xB9~ss-J82Nk;~@Lm;!%J z!(W2aHv&RX95Bd$y9TR=cdspP9=y|!PMJmUokG@)q~8Vdz@shi4hK+fCvQh# zN7WkZ4(J)60sO7STLSzu(JWDqghfJG;!l z>rx*DVW}m+pX3Qy@M@6m1Fifuz5xMI*NcN=%lc`_5i3SFOo+ppWL&1^m#FCz;*BnT zO~FkNNC(lbQjr~-xWLanX)7~7>&F*BzogHfEo5m2!F`~(*OPu-901i9g^~Jv2we&o zaGQozdXK!Ucu%XD6OYid|LtfF%ew!8jpEx6J149&pY3BXB#B(U;PGkDfx-a^1p9SB z2ZZeJMIJBu)&R&&x%Zgv2Lff?d-dl+(yO1@z}H-3 z84w~ye(vUpd#2~RI~~N(ftqN?sL2ShTMJ&bvwsl}vHHDR@Nf$Ml)-AnQQ<+JBr+pSPy>D*9k>Kr*8Xf4 zfFkMFfE(ZDw56dq3+)O#pQl#kG`uE3_`yr&s7dVbTmu4H3V$8Yl6cbOh&s=_)u}omXG8eJX)HWiD!pVjyHo0JS#Z$J;INbk5Rd$cD84sUDIk&yrGp}fj2Z| z%k|83+qZPO*57MjS}A1Og=04m!)vpS9W&ol}bo?jX-_^W)wZq4Dv-NS=} z!$adZVzrC<$Jd^{DBE8?rLJ7Tz#IT)v7tkg*;hUnHd;HFy@66Iqo(P1crB)fV5x`%vCq-@{=}owhwvQP>=8k|e;p zlHx)iO>qoXO)w;(&}E%7AFM~1^<6t%ari!Lt+8-q5l1v4(a5DwNJ4GlLpHhCw`_FE zkeA@*;>S&Rj}=!#BKOgwS*MF6RhO+lT-H|_Yvdk5*8EZF>ckTh%cnCSe`NyY|8J8g zU;%>hz+M?~Hc-O^bN#SL#_G)(G<9$>1M&HlUlfwG>VO|E#0#3A+N5|HltesBodXAe znNmjrH-ZDO@@v1-1o9fgsYJvkmO%}`dqdOcb0fV_41@jF0W8S2^wgP$E9l2J2H7TJV-o!^AVoE5W5MI>$to6ZIlANf>dxjvVzUt4qB=;e6a!uLfhX=@=Z5Fey(;0VvwJ;1FbW}$zfZ$5aI zVdEn_#cf_}4!f=MyGxqT&Qm6Y^C>(Ika}h%*iT;=rgR@Ef%JU*B-~V9{tvFwrtP1Y zjAPH@qf;5gM=W>C07^{}JL3RlcJRU#KG@`2HG4*le4D1mH!jvy^@Cfq`YZ>M4U;l4 zJr47BPRBA}7~Nr^nBs4ng%Gy4eK2av39jQ&7r(Mar?-1Tvkqqi?%J@a2XzH)6#ot= zle7hNan0ed1Usl*hYl~sYuxffAY7WCMTYlG#c0ELMqVDQy{^~DC35};^-B`*ICm+U zQBOggAt+o2BJ^0=2m02|`q~M; zT^b;^pFohH{Q@QI#uoXkA1G|76BMDk^gqjt0?;b3g{P;{>EM{lu`po!vw7}Vt&@

X0$Nq_uYU`Fl6{-VG7b?V?6Z zS(8gOGIRJ)6J+%XcTl7W|31Cr*r3(^Le$k;(58-Z$*i)2rXtWajy!G|jTJX_4%-Xf z;QaD%T+otyZOiNm%W%=!HiBzpEz^ELNi@9K(L;zwT)xXw@=`IB2ef7guL9x75W zP8#6JK%m0ibdz@peg*4Gr-E4>?TirDzcn>>2gt%3F^P-_Hh6;_JpJ$W28TidJLotN z8ZWJG5A}_ojc3z3jFK!`A+RR_(aszDfBcsK8PzcM5nigoD_flu7LMzu-n+=B8lDlC zSDlj(Rt3~aJ|#~woRIVSj-!gA?rt<5=4QeJ6h$7l{w6`lS$A9N6AFFZ0X^!KCHu zCwfOlhDUU1#s5(HVXGl`6NWJ?qi-#Ds2U(Ta+XHY9t2Pb+V` z?z-3wH(Yo1j0-P|XfFH^r+*Kio;ge5mEJQt)RXk--koo6)Y-lbfjcC_VOShucZAJLUylB#2TU$)q3yNV7QGC09+tG;;W0xoe8SiVn94G#4|T4ofrQ~fW| z^UQS(C$2B>p`>v{KLfi!c}j5aWZ`W=qYqTd(pkT{#vvYdaUe2DCv_W9jP&s(R9j5> zH76qL3SZrj{lwWI{jo4;by>22W z*YEmDmEz4&Gz504%@_nXZKTMHXyL8|#>!7ww?-q3A*t#x-?4kdxUcuYU$cG2n7<4t zsng(&D3HXCMQizckLrUt3{ikZ2Zu!56#tf*hF_?*oVTfO?RT5*IqM@Tfy3oT?=B(~ z%^R$XCD@?&?N$ht5Tanr5h!uNA&!)#su5g3SCq6YaOX~av_lB#gB?DssGofUkY;|; z7afrG`1Fn*>Pn?fhbGxs9-5_t9rVt1{$zQ1_q+$KShH;JleGDe64@eqw*YPONqMbI z49nV^9CSSDm)MFKx%O9^nQ2R>5;LfN49gny%t@)UC|kB>yfY(prX~vTpX;o9Ys@yi z$yhm0MO1SzTzRDQS#gEwJiqv(|48s?9gA)=YYSuE3Fn3}%8BA1G%L&&GJ!A;ZhtGEeSWn`YQ z6yg51Sk%uX7a5*^!{+Q#EL$^(^0zx^>xbft$8qL-H#i~@51N8k2s8Yu@}H&AI&Z{f zr))WqtVr>X(2Uijuj`7)_U`*Zt4R3h+|uH-cb>D5M&Z9RBrP>arq7DdtagS$>W9&S z7ZyFYih{X=AV$DqHv;F+VDebASCbVzl5klJPGTD@eMbbb5dbc$CE#s>0b0Io3qMlw ziY3Woa^V*g{}{g(D@FkcYS-GeYbXSCnxb8czrAC6F>)gdAvwK8=&E>VA^Zd9HJKSz7w)WQW{k7o7?C@I*TI5_|!aT3wlXkB+9kr3rsr_4hX82 zuGFC3iyb9?e(40CWQUx-p{1nFhn0Dh`?io@o}AQ2j9d4gvCufRlFfi9b%4<8H}fl- ze>s2SBPbtzK16+&&~24NS&%7!T#GpDG8I}u6Gv0|z$XKeva)^=!J~sL0uzgbQu-sy zR|9cp;?p&-L-wZl7fr~ghBEC#4m&lxaL7XTX8*kCn}sRUZA}Tb{q4MmG@5;z-*P>y1O5(y7?tLL38bMsdB(0JU@{hE^)uT&!_m?H z!QSz%-oD|H-f`4uStp5LtHM{pQYNe9VHWxibfK+jF~INK|Ja>iu!hwhdj672Yr0W& zMw?SZZMNuIzlJz04>TiU#XA4b(@4NT%Zoz&k@3N?fzkeM>XP2yr>``a@#F^3B+ix9 zpM{gw7PnY!h1FE=abax{qG1=wSl0#;G0a}ywgvt}UB1hq5whBUMH6eknT&PxTrEiC zo`!HfMS&VK8Ab@hJqRJGF<7)lS1g^cSz!bH4mym)056G8(`9*rW}4#l}J*)sO9f zJA#E0X#jM;T0*jrD!-lqKAemnM;MTFjc+EwW+9FDp-5r@^*`;Xh|`4?^2z^}G(d;~ zXvU^B^HuLL#NV5dn5qZ>y=e60%XY+0CSV6}u2#pSx_+AV9menR)bH#;fSWIWB6_CjcHu$X)Nbil(eg z3#vJ4KckO{l~+c=01nR`>Fnu$j$SbZO8<_$?|M5!lUVd-fMz1YH$vifpX#E{%+84= z)@SjOdZDDk*oh;H9R(=mAJ|1S1iUbcN?7ODgQBF>dG-eM3yk`}n)3otVr3i$|Doth zM`#S9eXVS%doodPSeLE%@q{lsjaB85JU@BV`=S1pfUdPWrveR=4h)zQl)${Gq(J`j zRJ=|9#g6<44=jIM#tf_$K_%%_0ip>s*+3HfQK$Hfz`iSj_FphBoYM#SBOsQ_Am&PA z;ndn(dxL)TxFecSr-0>a(iwi^C!*%^hSslTtmNp`vv ztq*l6EH)5VZ}W{IWMIQnW3nyD=@f`i3Of|ujOIYG>24g;ZQ-try7;9Cd&uA*R=P1Z zXd4c*pFLvzk6pZJt4I|(FR28GhZou4J*zEmR9A`3C?x3 z)tdTqhJU_NS3>O9@}sxRDoFkkR?GDPvuh#t)9UwHdyv~RwMdD!X!Ed?jfZ-Nt)VAT z;_4H^W}~sJh)$V#{6Av_sh`kn3shg6T|&48H@IBD0TIe;;OZKt-7XT`cQ9_Y0N4+}1r*Do9z zH%Ah38yVe$M~Of?zUiNcW0dc2hmMbr4UP0hdq+<8_UIF!CVa2>@`%s(B#wMEPeGgD z1C=k=J|Gnn7SKB-WkNyiyB@VMxdwyu;6)IA{zW^aE(7Px9}xO|U)Z_f#S(_g9;HrR zC78-TG?JW(qj1iGKVkIp)f4pclbr)&*4r*Cw)WQb!z0m7og=9k9Kzb*Cbl>MXG_$Q%8$l1%7*Z69bt`T?Igm7@ z#GAJ2%9i}DFqk=ZzVNM9-w+uU@@s80UT^=5aP6=Ess0ydQ46AOZi#Tp+1NBrUxC8V zMVCD)UAe`4MFpdJ#X!J0Tc*sYrl!rg6nA3NUEglmoMJc5rkF}ncT5rG7Iz!mU*5sh zvuE{dBAfDW-O4GHHRihC63=LkS8d%fJko=+x}vrfqVX_Z5ymMRW_=*IygC67MTkSR z^wbPgwT#V`u}YM?{L2ahjNjZyJ^fpN&9I%-hwTn7^CjP9N0A#@mBoLd?H8T zUeGLoFT0gTn7%6i)Y^a_JoQOpyGDHq$}HW7(;83rb7HTtr*vQ$q550Hz9fU>GB%P$ zi{06k%wigrlr*cd$wN$3hOmW-?IYIh89}Mb0#sHu=QU+EftRrIOpX5Uk2(%8p1q@7 zC}6V+-z6J)Hw=&>x&2Jd%f@53d!z;oJ!^}_2HkbP)Ina_z!SYXzA5m zOK0#W1eY-%pkw1wMoUz;D9xXPUph3gYnvav4et_#a{>`h3GS8NFyWNw9r4&aTPZ2e zTh4|4MWI!bP!xj=Ct+*!? z=i3=KDW3FS&>c%Aqi7#sCo69H(qDuZ(`o8xwi235qkR!_95N>FB?PlJSW_*gZ8Z~F zh@HV{=?SPD93GlZIGrQ8la+V^KqVEO#kN5Z_DsS_9eGRP z9b1|7X?=@8_wtM7h~i`%TG6=}4ZPWn^dvY#7M%tIK3iNT0n`!}i9&dbRkprd47Ngf zf(%IwG}4~LkttzXPw2g}hNa)g*jgeV4awEY(FtU?gJ042aB%YI}O9@sx0sq&t1Li%M8MHKG*+De>X~To5ud49V2~+=eF5blJC(yalHhz~f8= zoJBFIMPxF*^6?Jwqy>bZxB|+*wWC5`hj>U9`?KqYoWZ?v7LHHOh6UWG1a=f&7KUR5 zhcX~dK;I|%NaYO#f=&*0qBG#i0#r<3t+2n~+5Hc1HJ{|^2U3Cp@=LA^lBV#EkcV(0 z14H4da4;N5I~(k9_d3go6| zLJ3LUuIa;OJo%eV0Yd}tqk?N>V4#5r5KZj(@gF?*T7Pm+$p*eLcy&E|D{{j@W^@B54J z9_AUqHuqOk^5&Q6HXUWkpdL)fX3{sB8GmiUmtDj*-0s~IDA3Fha`~6;Ou=(EqEJg; zW9+ZTcMSH99v=o88Xln}l}P7ECw_6wpo}zqMLxmu9&;l}0VZ(aA{kNX`w_Omz@P-1 z7URRI-ZP2C=|{3R=vA01$71(iUH>Z|fy{i9J*o#W)& z)0Z9KoiD$(0}_ZN!lF4m#-7?~_dwXP{FZeS_IEa!zRRpBJiQ*Xcx!4EoERL%SMDTI z0fl0e@AtMbm_9p1p{U9=dCrK5=f?ZdYl{xo9Y1oFep>D+4d9K`P2)V2S-EDT{yo>| zdm!3qx1&~2G9^t}I8={}>^h4@ySf7b9G`|Q29cz16{TG*Y@oIuaCX#YgkjkDTni3a zrm#)~6n4iPXc@hAU7d=MSoP1Fm@Y`fq70pTm?J$GC?)uj!n+Z!Mn+zLk4=~qNmTjb z7BZWuScVoyA2NdR36Xx2@JA=0B87)C5JNZWU0^>#med5+IS35j3P&1u*99&+++n<) zLmMty#AIcu%?x^coeBbslF;E`r3o?|-FeO-oZxWisw=xJju!K@G!oG3fswLZ?-{wB z{IcRd@Az{IfQ@?i;s4^yWnqxwLf8f{M*!yOKzSXw_?Y)Us}=M;0!2j!O{Hter1H^@ z91iOog(Fv=6CX?Y=tfOHt&#p?$4AFU(Rr@7Z*;sDUA208(1T7Nlh3VwWgR|iX`&zS z5E#OGJi6l&p73Lk0mvyfUG>l&y*~o^kYq4gjxd)0o3=bwkmWA?N624pqda}gWOkrl z4cfO~B~Qzww-#DFl6cF>l~ATRM#bw z?3!~IhjTN5ZcH}|2cW~AN8)DK{us~Smc@vOFKw9|f0)+#;SrflQ-E+;I8su!zcR3u zsB{?ZKha;-w$)&g3|`V#3oBLM-o(8S(7!$5lI?_*sxRLweR2r&9*o(IqM^BEi|a+`jvD{O z1x2n64eECcV!RBQ7CAVa8(_+-Wyn7Wd)p^ioiTNw*M}iJ2j#?>Q<)0;o9{hc+eEYR zH;#HgD|K6qC{Ese-`|u183NXBlYYdsasQK)HZHh8Z9kWU=<{j4wt7#5=H8ik@*u5q z9`&xNMc1)Z6ODs6@hv#PV8y1}JB1;x^wMJq8rV8pTS-bn-Kq}6;z+4}ew%d_e>?ptKlQ#&xx&UT1O zs|E`^El=f-)CE&72>7Y~RTD9b1wZgSK-X2zwi?<4F0A(^`1(kwjGT8<7tR$y$8}hV z?wBR9DGJ}*aMKYXcLI)QXMdSs#ivoCCOM~e1!Z=HcWvXefi$T%on5!cw-v~J-!<5< zxkRn&orRB=YBDHma<0RyNno-xALw12;VzYr)TN7Ov&UUlpGeYS=@aV*wc>}D_52cD za7^JP-u`n7NxLA1ZZ_cF0Nq%AKfqHcP9kVEOU~MCr#(}o8|Ny(3#$uf(i!gGzzHoD z>xG!?_Fu6nGn14g!1t8&lyH?E=JO+=`E=s?L)HUk;PRjEYAr6}>ZB{dMz$8@T3O}) z7JKBvGKZ=iyhD79m;RPaLa=ac&7Y1e%p+UU=}PeD{)g|vC9o6nf`p6T+7zco0$U(bI)H`bTjh^VH16;bus`j&niQ-L zq%#2+k%an}iQ~OCd3HjU`^^fBc)`8)bNqK_bNN!Xky|L>dE?jU3LBVu*`|}EWR7~d z6v7GBwGLS?{xX?ySkyLcvrwml0X8A1%2(`4QVMzQ{RRjEG>SzyxMR~-aP7VhNCaQ; z!xJR$`^&cCDo2I{WNFNZFMroial1{=ana#{4rr6O-nRa?pmDf1Gx#=tI zdP~3~33Jg!EgNWT?{=fZ>wod_pm`^^G6`5pI!qJH_+@Sk$c;X_R@e)oH{8bSTI$XR zI%CvNBv7hcHx;fhu%b@bzwpuyC+4l0uHO}xcmDTP@vty7h_~OHbVH14e{8T84VM9W zgE-u8S3j{QS`@_tI^o;ZIikFVJw;y~Idb#3V< zMQ@iLjzW{bSyyIWdYj?22Rc^#vnfR67R>>cyw3o)(&xPm5mT5}@#JxMsvH0a@$}E# zFu_rhc#cpMVsI{*IQYd%TjXG0&t*0P*0_>>E9B@8z4=H=>2vr1q)Bll>|l@Ygm;Qm zTuG%@hX?u&`#q2j$P0=S-Y2*T`zYK)DXN{-Pf57B(z_0~l6aM_8Sm@qkLq>fiD+AA z-7`EhdOB^<*{ZBV$GRCNi^`u*ZWid<$RC@za{hEJ9p|PSr(JNi<@)yh+pd@wH@3Iy z?1XYEFWsQD5hLWivkdh%S)|gv8!#~?%zTWigY>!(M9WVyA{lrc6gdU74@3_$&V(|~ z?PJ4;>h%u|IcKTNr0|y39QE85oUR{|IPtl@Ey`9}Oyar$&YVQ{ z^xda;1gqc6dwmP`NPhQqlHqRoHVG~2t0{j2{HMU92bx9Zm!1+4`70==CaYJZ+PRxI z#1l*%IIN5{Gq_}z80s**kXU(Fe{L*-`^b1fxXX(pcF2Z5Hy{lIBlq{k*B3Ry>q_2$ z@@mHCHEUpw`F5kAEw{s>%Ub@uwSml+_42jbd4JIjKjqzJe$(AF+9;f1(Zg?Meb{DJ zp4uDey$0p1PauaK3GDqteZzXmaLU~i5%e`XIY>?oiUI`SsL9;9WD|V>Qh;3gtZ>P` ze_ZDw5NSxHjGQp$XlA`tVrgr?9=;=%rB~bt&lygsCvTcbNeabshY$|b2ZRtR%{!bD zP^*bq+Bz7@?!-+3NH#{9g|~^8}uVsL-6Fe?v0^zD3(MnJiNdQA&wRNhI{jG3v2B{<61qjXDV+&mQ#<6jir>OAb1}})54d1s2AnJC@&~)Viw_z!#5?c z75*9O`1NYN>m#_Y4XI zB~IlH(0E8r=BL=G4lTsyS zf_;%rpGOcDC-)dEFK0blwijSncp=j;4PJT!P!>!w9RzEG`vS5nvm5bfHnYXI? z<&b7`@O#he0Sy$Xcmn02Kcv#|r~H;K#Q`33X&l)Zv1thG5e-h;Y<|7dm&~#!J ztswcVCr#CXj77g8+w;X@rOSC|Dw(|R>I|OfQs=KQHqkTJA*MPrC?NtP2ANDSR&jX? zc>%O`uBN7whra&_9C_5mYd3OKPFQATjU-i0&25V=rL?#>XxN#B{%Uydg|_LzhlFRI zu^TKAt#LcomLp1VCY5?A8t z=W(F>Ad=J)mi$D(=YJJ&%)$%b%07z1Mi0&Tm)dHY-bk8B@nze{PEVy5L%Ah%7(r4_ zD8}t?Ty0a02CKBQh~`jKt{sMQY8uTM2^GQBVFzlGSf(TBS?$xg6(zQTvQi0?aqolA z$GMr=#i2m|FsMV4ou8Y4LRmDm84Pgs*4_6O(Bd;;KYHt=Hd(jJoeNsIjc(8p36ifK*jB$a5eBg= zH*2z}*u*<--AUwp=Q(f+e3|;L1H8}spT14BO&IR<>C@y8!oW;aQ128qRrzAxFnb^{ zDx`R{&p)}d4#yd+a#Looe`tJQ_>S@D7@DLXLwde`Lkx%VZ%?Qb&_%8SQcLn4);7^P zaXL#OKU}q*S<%d;f1RLQ9)0teY{PeT^o}5nl;I!h!KkQO-DdwLG`O(fQO47JIG>w> z-*G%KJr2gyPm80l<(r!c(};;2WKlS~a=tr4;AQ2m^}*B0u$$;tH+a+nUI65g3vK?eYjeRol^^B$l<`(a-1k^R~H#-rPzz z+h6tOO}_a`{i;CdavSL*8tV{L3YXmK4MR+9%{Q8mE3c+uB;gHaBdUF&yj;vpYl=XZ zcv&z})fwWi5U6How{`bT|yj zP`OL>p-(O{LFH6a9VI{R{XJidTfwChG3x*F?HDg|+g0uq9No62gE;=fHpMf)qI3zr z+F*n@fXZEA&+&%M7JD1<6_1k57yn|*e$no|dG}TPZVM2^_9%aJ13kVMSNuqgx&O!n zjm0_?%&%7>nZi4^M5IFT&v*PCYXHfO74n)UHxnz?Rrl%QNj7xLC!4gvHxW3`IW!5+ z)x0kxL`NJXz+Tf&v_KW%p&<0 z?Cym&3>_J_y%RxZ>B3=Jx~P5zuLDI^;+tmac-R)q!*>~QfP4At=5=3brPos9{TYt=By3F5Iha?^~nhwP81kO{Y!9v zF*uTnX(#+d1r^^+sf9t1s$;`W1NgLjmwZWwl`{|DGn>mD_RL?s+YtDhc6w_GTt-qc zu8HM^!=^YvpOnB#@re}r(1hR492UwuJ99>M?{7C`(^;H&34}hZ0bYQ!eg>~HRh|At zS$jLa8R*GH5lDcmbuHn zqH~szN6TmSoXkM%>gtZl%kckjEW3EjGj#iob!>1|N3X0KL^@csY^#dqV8<=w8YuZIH`v~#~O!97>BDHhH__Ztcc z?XTV2!DeI9G!t!C&$M(Ewfi8M8|CNQgCUutl&lE~1yaE<6^x+y=8l7Rda<1Acu`A# zvf)d6j-&fP!s^62Q%9s(^#kjY?G0bIE|M%=`Q}X5b4Pol`m6Xziti-ASLfCml);=) z5y8^Sf*4Pt83g#yhG>ZG>rLi>m=LkA%h3NT{^qYhX-$wJ1I~)pqIJ}RZAp#%>;Ql;9tlMBDog* z<6O3mL{Cafz&eiim_mG;EI_XH1w#f}cy9N*Hi#v;YVnkV^6s22KrzM)XyB|&lKmj-0q%Fxawmvv(mrs zCUVCU)6?;kUYO?h6+XZ1ufCx5fEToWBh5`0ZjkRZgNX6M%fn7^c5<={^qL_WN_eFJ5epp2%>+t5=l&i;tO`nB^1mF^1r z>rpSQEq%I~z_ee4BC*r3UpHI!unT8=1bTrOt2Iq91!tg0vvprpiHGjoW2oOZoiW8x z&(KtCX?AYWVG9Ek--uwpmU^&E@bVtphHeMB`B zUcT#AfjMI+z1T-*Vc4}$YC}8;+I8)0{;rfwSrOPpBsF}}m+?V|89B~e5$H5?RrgHT@K_abhEhSJfcsX3Nq zI5ycKdXX{JEl+NnS_kXFJir@M+23J+0B@ukyMYwUDBoFq<3zxJUr)z-{^H|WbCb?V zRA1$VMr})d|cW*TeT?b;*E=F+E<=!EBJOVEsO#y4feDJ^ejgZXlW9)AbEQSPr zxXQCjnMJDP(HnJg0iCUrv-}Z}*S#sClwwtAt+U?fb$eYjF%XE~n9@m7bSc8lwtOng z`^EDLdQs49&}!aWcodZ{`(@V}O~Gauw-CPsRzgjiV&_N`VOM_b27@Qt;KAkyHSqnJ zjEFbvk`mFS6DLB;rzS|7Ohcw-fZIr2^C60%oAf@>p4EYxM$cpbi{*QZhw$rFsM%-i zncOWmLpwo%;gE^MS)cjW2x$Aj05G^ z4w02b>=KJAezyZ*1^R^9{C1o4h29(K938{9B8B@%pD};8^AbQ>`S8Rv>`nB`v#clH znesJ};nCx0--1bdon<5+r8>HKe9TrL8As!n<43L?=xsAa%eo=vH60oI8r#i<)2aH-UA~P5826&1pgtlg?1e2#+L(!> z9~nD3^{Ui#Hy_-Tb3(|GoSV+HN2fCo|9rwwTc@Ol>l4P^cGWiF(quZeXph7+gX^T? zBJNpp$i^5C2}`^*V%zvI2N>FORfxgTJ@dluCi}u0bQE%_`1&wLAp^9!#F*yq%y5Yd z0679=HIMZ~5;;{bdP(O+hBwb^K(C0|Qd!Hm?Pi!ONg@5PrWUd&TG>UdQ6gTHR1Ok;9y&uyX)S3ZPy6 zZWvfR#9%yhfR1b;CAOI6Mj=y_^@0sVx~K)?!WN~`EkE}nz!nk#Dm=KskHc{nhqpQo zM+D3t9lnVoP4Chiag-E5(eF@@Zsr#AB%_j$DeOaNQ0b zoDCpa_(_O&i$!qI?D8xHX%%0+lh|q`cG{IakZf;&TZE3*-V{NXSHBGiXCUZCh&!iz zX*iub9LrAGyb=Qq4`-w?=Xm#Uq``4A;*cnhBDoAHe(bjBN|1FEpLMaxPM%}=3boQL zp0J1KvObfIu@}kqLcZhzj;OF<+B=2l2SR&*1PX8m4)T$A^0Inp+9LtuqHy@o5azzf zh{Y=b;uhsocmT~Z*;Uv@-_*ra<27@a;}=n5h4-MG?sULUBNwU_I5dODTS&5P@v5LP z!MfvE9Gsq*g2=}~2Z4Q*MK0YQtcy1E?3-#vpzd9QZR#mzCmImE7c!UO7e5*{2V&cd z8zXlg-2pPCv~KjS)AfOjC#dpuWL#2;?8&R)?!0#?fmA`90=j%PykE$nrGAU>RXF5t z(!x5n8xF{tDZ(D5@3tcJ54=n=3|aM9+Yp_^4vRgD{9K?X9nABYEGy4%J+CFkO32A_ z$%pU=$X!yCgRQX(-l3x~DC0g#L_%g-GS{icfa)FKMEHu|e^Ho41gT$gUd6Lg!lrkL z4zHFr7Srr&4&4+AI~R|54$9%(1tfKcZb9D&fG;S78$$>61^4mZoV#hOaVv+0oRmY| ziu3&@UUDx{A4k7d-vl7O92i8v3Z~YpRssTUW6Ul8vNg5nb*LDUz57MKLj{Z% zZR2ERDtq&pC2K8p=jZqGCX6hMGZ3M2_L?dc5qHg(uHTirTqkUV*F|P1HSE*o*ahRW zO0t*6-@EgzUBMKdGHhr8;?cu7ICKtP*59a?C4db%cV5up%M1Q+16$QCt#MlQMy7HA zljuU6NLiUC$ge_2Pf{mw?4izA?Az+|HghZJTeE;8t^}%}2N**Yy$?758+Wd$!&1Q^ z@*L=82u-?tECRKHf(4wHW8?Vp?eb&?9pIB2@ZyZJKc!47V7pYI2WyRGfA&8m96I<2 z{m}LNp|xM%B(rRf;C-9s?R3FIo5VShey;;SU5s?~U$z1nW71rLbCLt`d|lLxTT~0s zjlljq{LbB!YVH85_z`M5yb8!JeSQ;W+=cHJU{m~)jm$I$!gK*5JpSg(^FDQ0$At`n zgzQjlUS|t4X+pxzSfy|pd z?$OZ+wX}SA=h^s!q&0ZTs4p@K>4{U|GRL8RF0n{_!&CfV7UbBAKGm$ zHUaAcvaCEZA!9XB;Y)H{Qh~mz=EP)lfU;r3L~79n3_&?y*5=2CacTzVUilFXQHz!D zXShqDm32m2UITx7kB9drWvS0){G~Q4*#8jds{c-Joek9l7S&1OKayp=BHS36dG85W zaJ8tyyHEX3_4wIW33``ol@mw$yV*?Zxv_L$7_>JcVo=$*<9 z0JgZ&@(CbTbizf}J2{eVy6&^|1tDIJ>I)_W0AiZQ^%n8b@m30DZimwzCpHh|L*&eiLwC1B20fqmuMTP!I zkiiRdl;TfX{Ya}Yjfqc4Cb3B$CpVo3dLR}^<$Nx07l6H>w$PM&d-#-nBd^%~O|oJv zLmC1J4UCz7>fQ0A^@-ii-(34mGs^k{IFT(O^Oj>v%qd?uG8YGD12__+2Y=J~3q7>F zdz&*8v6XgZq~ZG7TNJpE8ge~Md}M1jDG2O14aCyq0b!y)k9d0wLUz$Gd#54LuWV5_ zoE&=A*#QCJ(!zgccPv7UvU`T3qy2-u<6XmJLp?ejq5aC3&E+{X={g03We~rIRdnp6 zl;-`Ua@XSAc3J)u=jAktwq_}dc?IW~XVWPh#Gs=Q7AXI#xAW@718Q^uK+G9(we&yp zqsK>3urt;jt$l+K8`F;e2J7J!3a^apo;g&T#q>NL{Qk#tO{A(Zt%f{1vz2)~0Xeb!Mt-CX7{#C~)=4kUX7?hIy@%)+$AkbqlF=f+dWf{u@ zP0=}ILh=pzCK+t$nVT4_Wot|fMAQ7R&Hf1bblW*VOyK8zAKN9VNnfR6J=4{l1SCTD z@_)7Mbqrm6liFX6FU0OiXKU#KyNOq?Wp?_WBbmuMJ{ii|Yw|e!3sOygHb#9W#LH=U z_1F>$Q}v#!WER(Th(2myEVLcrHYM?Cqd1*23pN|Z)3TLGwSkFGnlV2QA6+^FdF~!v-3vbaPN&}DH-oYKW4aez(ujUU{N}I?& zlJPMO+xRKv9YH5GZi6gFUa6%CUmd|2a{5vUnC*jUsTGbjwCp*RC1P0m)!oqLHpn6P zrtq%ygbCdcQXn6Re&B%ca{FeGOk9z+)ks33rLhS);)NTxN=R1UB_At4IWNgMi&Cq0?efQf|Ip$+LCFTpa89X7EVlSEoT8U@oj;AJdt(O@HsLh$i`4`OuI1K! zWnt8_K$tx|1a@dMLe4+hZ14t;+JsuX9|9k-Tz1b?to;}rqY1}94jpRKf3cqv7eMv* z^CNL`(4aRR_qC_4BiiVGY{cpmQD3XuyUdIb#~G(lK$GCJ=8KvTi0m4{$!(B@qq-xa z0?M~Vo*5cJFPSqp>V<#ir}BRoSTGar2y~?n7$z*|{~!G&V9c8_>TCrhRVFFMh#;MZ z;pIy8`5A)u6uq?aOS~X!^Leb z(LFp!hbUQn1~5ZH{Jq-}r0?ntgpeSk>FO)<$9vr=pGJP(x6|CeQEgP!YcuHk zi%;q2MU~{I*0DVh7!)2(#B;r8^tzyk(pO<#`rS7~W>#(v_je5*y8eiD#~l*M|LUz9 zL*dX(H-{2ehAzF7{`V%X8OMIouwtuU5k`)f;02pn`X*WO{AvfZCGw)C zL#X(2@s9&MxAJY7P#Py=!CR7rVvS3?mIR-crSFlk7T%QM5Cp})^~zz{wi8OJ4!!w4 zggQ$G@*iX0_mfSok~h5v0FPactWl3oL3m<{OBsE~u;IbK+&pvWM1M4VW%zn;Jfx{# z9`Z$RouJk6*f1HA?&z_nH3jo5)W^ZP+tR(kSKrBl#7+d93OWjbpQXEzw&96)YjD_7 ztcPZB2uU}GkbHrF;I)L1fGeHUmZ)^$8^|{DUud+6jtLZwCC`s;rx9)+%-I}$a4~*w z`Rni!oDP--f#$Fv)f;vXK4ko14Ga+@9*{9LZK=lZWA5^zP&!xfjqJZGJ#;*QfRN*?(Xg zWM)QBJ~+KBJ5>JM4zC8oLlq)gXv>}^P zye8yk=*{6M4{hzP4!U|Cn_zfo6rFdCZW@CEAG1k$DA_V= zg;-A9riBWtR+}PtEm|6cf=4{*Q(N+s^%ja6FaB;5n3pcZ;9zGIi{C(kory$tebHM&b}16eTXbPVp=w~5Y& zIJZr5Y(O2MXX+hBroL|@k?Vrv!$G8wP{KR5@KMmx0+ctp>rs6J4zEona<+@FXoSi$ z)}12Pm%pD^Gyl$zFa7GJlE-7_qD#~Dg|N~8-tGTezxe9Ze0T3`HbZh(A*Af>K9hv} zT^vI&U1nhSX`IWsVg>FrKPIHz@B>axxw`KMyAmd=5e9;0S9cW*tkcAFO2}V#UHJqh%w=;CW zo@W%b^EQ_99o}jM1b|op%A4{O7*danOAM&rwQ`Z1kN=a6H)^IoWb!i8Qk0v|P zc?L{!>BpL+l2QZ{^LSw4WL}lWiNBXIj0TT6#-lJw=VihO2RNd^abWF_;?T5+@WR)_ zSRw8as}D;IulS9fhu%ZR+a@Dh^<~hEV93%Y;Hb|+tZp7U@Ra!!pD!jDK(BZFjDAUY zd;cRl2IWlqzyb=Ou3Qp!APl$7wTT{<9-W+>K|#)7##vGb;lX^v<+#QAF?d(7mV5U^ zL6i?d^kgD_ni_0*YX%ic>G_^)HF9i$bT^KmqocH@JG0i6&?TbkcNA~=wCOLi*^Kka z3iG9h?Xbc|JBMJ-v?Ph_f8+#`u*=20|XtcDcturVcMV6`D7&)74d@bWx1ODe~7a+mWyl?xHn#7vXt zoUKQh9*)RFYPXbi`odWJR;!=cLVO+0<)n>xW~#r|%6l(b z9GilSb1pw3e>1gOMOqR4s2{mq$f|qSw<}2*+6JeN6!*xJD-UcVAwmhH} zp#?B0NV))Go)sta;La$g_-bl{)i2lb%L?CbL@DZXVv-H8kyV*^9ORzAPnTFDAYKj; z^{pjWG}Xz}_Fk5$RKBz>N2(wpA8{_)O-c}h@6UPB4Ji4ORxZ@Z=Ef;+UFRvvsQla8 z2a&&f8UCvmZj`0^P^&5Bx7^(hRj;B(s!4Ei2Sb=CE;_BSt?% z0ZDXKHN2Igc9n;LPqC_*AmtI5yphd!q9=6 ztyL-Vd-a0I>o&GU}uYQ5b^kjHGoC6Sm}A@dos z1Qxj7Ahdbz(fLW7SPL1yi0UG}7GlyV4s1^@C6d#fk_{Y3kt1F}R;GOk3`D|a_illV zOagzvt8)!suYMKnZiO0n53HA_D**#5M~O|yAG+=6q0y5hVQsRFWK)-4y$e6pv}l;2 zv^k2op`MXEgVH~3`UGh-FTB|H#gYnKdC^{WtEUxMY;iv9&sH9VZ6jFoiijDK6ON+B zI9l9qg_X&EyC-z8t9B5seR{nn_tBf1rXl}Ng?-)U7{JGmW|16v5cb^n-OyN1WE@#K z!?szmaQ(gy>s!r?u#+Y>s5ZYpD5Wf8A}&)pI5{7YXO2Txvhxn&y;w-<^p?Me7VP)` ztgF%p(|Yf+rlCzR)DeSEh{SJ4y(GG2iFDIzXGDgr2kd?ODheHnmFcfEPsRVC(fvkt z@(MP(t^+VT{EzvEzQdLY4Da4Hfn(N?u7dVd!!tARYUsOJ5#j8Ton&Hi5}P%T-Uo;8 zNhR=Cy@h2GjwzTJ=o}mBJ{}A?^^P7N?inBI9PHKGO|bmStw>d&BO;@{L(%@x{*%4q z!y`Q|JSFjm!h0u{Qcw=IHdO*rA1yq zto}hOLS!-YN|ck}1v2P8qRxwNCeOwss>Stpv3~Y_eM>4vsa%v!9m>Y<;dFVu4dxh$ ziH|B%@p$D6z)OTxVEUP?Y`&Hh0Mi8sBG;`5k#(x(*8>bxvrd)@I{CwuAMdeFf%Hp@ z%>5ip``xI#=@&Kv@gajRs4voFjT6iug@9>UbGt5&q1AVVC5MnKuyOMG>UFd<1DII5 zZ71;UTG{P$ov@+LXGR3-D`B%>M+%?Z#HmtFq#7&rZ}XjFNdH8?lI~H;Uqt_o{-I;~ zsNmGnedzQ_CprXc+6*3l^(HAb_3!c1Oy+x?X-=zILa)8$2L}7*R&+}#AnUgiIgvXV7qrPGWy){ z=xAs6ZR4XOovsfhj9QYaeR*V&0+>XChvbOjFTQD4ecl#L1zUsLg#ZS`{_p?A4H!A( zBZ0S4H^acgf7qtNL^AGOwU+4S@(rP${t;|s|L{=fKtIOYJ2o;L>FpdEM+$0}lS`2H z#G`N9@P)1Ch!5~A+yP6-ONDo6HV#nZEvHk!4b6U^Bn^k?RDdxtfbt7f-S7wP?jTM! zjV`W>I19@Xf}qlU|2p9ghD76g?};dp0oxQ6<3DB0e$ytCJ{u18jsu zU4%^^lD|o59R3Om0%FoWBjiwd|29EaHr%!Qi+)weq5P)xC>*ZI_+mOm>#A1)>u7f$ zZTn72iz>*9cox=^-D+Xk(!29ir)LkhG++PsR_b#{_8Ld#Vd>cMiR>=@n8N$8RPFD= zMx_lnw$KCsE8C3*r|AW9h5MqNc)i6wlwIO;ZGi4cz-w*i;$w&+jl$#lZxAkB)>PZ%xf^q1a-6k!1cN@imnp&m( z7D9{A3L$rIh?l({zhaRc&i|3Vwf&Oi2#*_x@k%vrI$~g1aC~=h053!^%wDq2T{$}-! zDlAD(X-S5BD-e-u1V(DaFWkB$|L-*+df&Y9#QPp@U9%!C_8I24l|D{kjhgCljdjZR zYg4U+2iES}B;}4|Dx7URhmJz&3{LRIflCOrJMX7p!D7#rPf`wJk%i*f+p9dJ@@ty> zy9Fqn^2lwkU+Qc#gID!?0h65!|C$sj;vg$yj5N4tCmQMPMjnz$WE<@t9kBLDdQ(sCOVD5TliR4a2^qaLxcuBAI{O9lRdFjy03dPyk#)+($t;Ha zEGz?MH!~Ple+rC>6ThY#wH4J>kcl*hHWRs#I8GZO->oe~5^1>hR~y->NxMH17%9#K zn4Fo^xr|^#kgeen)&ZV$@vY%Tg9+$IK_L5|7N$3lC*OK{0=J3PQ+ZX>5Y7livJRhl zr?Z-ouU#B8(3FG?>v=N9uvnegsSWtnyg@%Fn6EmpiR0$u=u|2({8(zyx;TZ{DzCzT z0$E{#kqYlGU83rBjRY*WeAJ6U1j1;@XiTCPn%*v-sveqv4MknD0BfkB zv|g4~JJ&oxS@!^>+`Y}xi!oR}vn|;%2>UaBX1~36+>RJ5)j!=997G=Vas7Zqdn%y} z8g2wXEreZuK|YwTKo*N8k64K)!)$KNP)wbAO0YE5Z-B>0RzJ{+>Y_tOuI;i49ZDY; z&RvI2h(6~Nq_VHZFmTW6*IO-0;@v1$H(c|l#yCPRAhL5F-$2o(RgrBhPzf7zoCOs zYPOw9MB(N$^^m$ueLTdLuLb0~;Ughj>lV?#rD~~0Fa?ANm{NLF*k4)|05(2k*I9_9 z_bAfYHPHk`J1&Z#K*K!VnS&;%A0uy08RMC}x|$0ojbb z$)5rb%)-#Mmi#k$2F2&*aX`5(hTy4MZKrEz#Q57nlL;h|dVM>Mw0unnE;GGZwCcIG z*5_Okw#l!zi3EB*j3zO3^Vr`wDne(f6Q3bM$PErLZjyg2mYu}E z8&6m|>)X!Q3?kEo-Gk4*?Abb6(bnb1k$*3O3Yp;Vm4{8>cOP|$leP4n35LrC{7CkL zK8jKh`p(l8^zj0i-PNQAM_YDESMX!i4|KFek=Z;oM{0vU(nf@CT=f<->bH!~cXwSG zwtFrh?F-pz*^A!ToYGcD{}VR(=-`0zSp&S3`kRP_jJn39utcD@+^ zJ|MaB>+2zxY#`)Te0MAKfDJVn+IWKXKl5BwR(hsu@O04wLQ;>CLpZHS^-M5b4axRD zchP1e0a`nG+hsPv2imzaU&J3=O|+isp1S+gaQg03J=1re>W$xhs%!G@Q=PH9PepV5 zcPl}~R4Dg1QYitVr$i#V%3_O`R(E=OyT*=jNDu9F$A%E~i0X_$by(Z|Pwjv^hn;1v zJ`wVsIBjHe8F`DHIg%z!|90C?$_-Br`K!@jwQKwd?3GPS<=XjdXF5SHXFLi~I_%jF zAFPG%7gr~wNXs-eT8<4s?}+i^`9O@0xvuqC@2K>r7(i`3dI#0RKG9?6x;EJ5Dxc?k zbX^k>&&BHI2?&U&=~p3N^d+8z+FO3o3WkIS68T&Df)J0q`YSsJFOcLVCi1>dg}~Tj zDL}_`640@ewUAwA_@c2zYwu`%mwn{D`fWvRi8$I)Afu z9MBI*>Ijr3S6CO(N&?db;GjW3?_N)(QQ(KZ2uSV*nMn|VlA|O=Mps`jMCHbgsT?f1 zu|u|SS@dc7NGtNO^=7ymiT;0K<7X%)Q}`ULCtKppFaOzY!>r+x4MB+qNc^fmTHnj- z?4a5^0x|Dvg=sDiSdhHENAJ{q3`oVG2?` zps?97saRPjD`Zr7GdVg5Wif^5Me&_f9&C*vLyy2P39LvwOPbd<$E2>8-tYRXNT%Wk zw-ULY82kfvh{mh+FB7SBY6#tS^#SpRl^(Wb!Y(0`$>RK{FzK+;`4@ouh+|ku`dPb2 z>zU2#tqFij((e%)s0ivrJOZK^z6q+6v1B6{xbQ9UgLq8q@)3;5c>p;ynHBK~+Q-FJ zR(Pq)mZUNRcLa#2rqU(bGeCfrapa@b=dXkD;E;k-9NH!uPznazq{2`NIhFy`c^hO9o`gcn&gQI@rLPt`uC9mR z%jz6Gu0M-WUp=wmqcD}Lviru6LQG?Ej;X$^*_U$QD;V&U&()0Pkr7mav%ETI;0}bs>)Y0Y)3GwTMM1rmI2u4 z#DzJ^?-v|Lv3(SpGIY{Agx{*4+=aEr*hnutSGeX~t^Q<;bu0vI5&%tX%*vcb=5*iz z{en4%=MS5L1`$N|qKr{8V%m`PqK_DI{L%yoH`B?$vv}Hh11hhx%7l5*Sia{`R^$9! z@n5$6xthnk%?SJwTzLN^srn~$_#(qfX-WTc{TjtWUV8;XU|EVp06_A_6ESu!LPbq3 zxg(asJlOL0F<2|k2!%I3RoNpP!HDHMoBUZSeh`dvrziLX;#Z%#eayBnS`pYC5Hbcz zhBimWhK4%3TnJNSL+Ldc^v}%-v*|iKQP%s?Ftmp=A@!<=tzv0?iXgXZ-cLQ&^&Vq? z+|gvDeJ2j3;A3=zcl9=-O&&pB0m9BU+634^LgwL-I@sZXiaNki2TAlhVh0w!pSgDl z#7iAGkdNcT91{-7(2ONt@Z=!%|J4^x9E#t$%hS|2yGDJ!O-{1Tt5@wB?h&VQ1I|-twxjz_0pN1MDu|dh{c#O=Ns4zqmub zQoT`3w!$B7c<-z8C)&HkcCWmB!^!a;9Q+kYETLqc2j(k2j$N zlQUTVgo{>*KC5Qo5S9?8w5Il=NJ1N{pIkSh)S|3G=CH!QMSKz<1Zs1v&4^iN1TLIM zbKJsjt$rqA9_Cq{cYzx^1&nz3MdGR+$;1wLH^m8(U)t&EkCKcXKhZfd-hI5c`!+8( zSDZHce`#BN9U)fe4hVxOK}4%RY3fEdBJ{)?AAN4b2B@y(nUqepaw8MTI3tJy5lm>* zlv%;TM3y|93!0~(wBI8F>`nQgZ`H8VEgVy@fel`z9OKq@kPF~z(A#(&4|MG=Mh1H~ zRYJeL2pX)`H&oi-!IVF|_4DyBFc)|fE+QC?hX8mpzt)Ci&+Cd1Ku~>oeqg+FAmUDy zFp}hVK*h^338bmTC(<;~BuefsU$p5Y38=r_B8MEG%cnafp6Hgp2|A!Ggam7uTw8qr z#0j!l%Z3JqyK%GDV)kn4_P$fDw4~tkl zGyZYEW-a<)qb+0r0Y}qhEt5^BgEJ;%oMeP~jTLU+<$>RS@wyRi7ZyWZOUZd|F@(bE zpGtNem1Vu~7hq6~aI*~PB%IleCEBy45nr_-Hs7GIWQoUXS{^xzNZKge|46`RaLa{9 zMrrh!B(jwP{u^v1!z&TLJk*UZjbR7zf`&=1&H$0SL@wGQ@6k zcsxwF0It|T*0`Y8LWz@T6@d$5`=Ia$)AznFY^(YXRE87c(v!xZuBbBHvRhO*<0ZSk zvNKFz&ideG0)p5hQ{S2vBk;H{Wv5)s!T5^)DstO!|MiDPbWMzD*11WllWUs;uuhy9 zW%T-sdY$D%GS26<4v%yXjE^BKF+9}Qe~kNP2kNT?$d{kniWnQ-@7w~n^Hvm3bu^eM zhXR-;d`uBAE(69YOK`h}!nKu0?NC{Pf%BtqkNLq^v2m)mu6K2gkMtfJ8|bv_AwXp9 zfskZ^IJ-!&Xz5*ff5f6ZVCVZ%%l_y{T_~rz683rkBA2e#^E1HfdhX(k$E+qQ(O|#j zCc8$#vff(oRl0Qx0tn7F$VD!yM$AiTz&L%MkY^Y(h1?%6d7>g|MT86q! zKKPVYU%BRNp)@Nf(r&sR6`du8OGJK?x=n5N*_bW}n zm~>RrAry&lUs}B(#5=$G>CZyZ<;z3ZLg|iS zm9acgY}-P#%d>h!N3R`kRRJF0d*cg!3tB7gCD((sS6=#`xHyZy(~7Y~O^gxbL^-rN z+>^X7rK3%OqGIc&vL&yw%>wPos}SJ(`rGyO(lPs-p08|KBr}iLEO}|;SrXWmE^iPr z`K4{2Obp{GYqQ`rzqOGt2^=B_w6qMQtQJ$v~G$6L17Ur!Kr)eO~B}ST+U3e`DxG|EQvqtZQ~BSgP{7 z6H;hvE##!^%pYXx#N1Jz4~aV6pqfYyMLo z=b}q-2T!H^z{DQ5jklD}!KxWjjW2?KoM086tK5`F?C?+`d+3PE1#VY(bq}W09y@Ne%!!y8CcI7}_c-z`q*mo*|xaq_sT?ez(YhlFC z{qtQWd3}m^0X92(C9tt1U%dt{a+}?qT92<1r^l{31aUvD{v_1<99XcFa7@M4qexy2 zWGWlIe8&#B$Ur!K!!<&eA3<@7H`<^&@YF_4%Ndh!ac}}JZcvBNwLcHVEhJ_o;7Un&wd-gBr$=0ZLt5Uu-Q78a)#|-nM~8*L zjyFSe){R9^=c`H7@>8=7Vcy!Ign7jJR&fb0-uF)vlEURDwE-j&m7Q%R#5_jnm!Xq` z&Oy;GPkw!!Jg5jnA+Q*d;&OQvb>-t8#sI!P0gCZdymbO8t8i|b5CSP7nS585H z6SC!%gr!Sj77 zmUUh-%dJ0+EOkM&1N^ep?~pFQYbMnQDW4G1VA5IN-z z$R)y(<&PYK5bi^P0Tx(5<^TC!&-46dCf&vNeSJ}A`o6cMXZrB7GJq|ffl?O~Zl>0hBSU8S1+CSGLqk>uh>5VSuN207du zy&S*4gd~SjmhoAL7DCuPve>D{QP2880t& zK6lr)0gSv5|FwxihEX8oCpBUVyO@_vOmCdijB$L9l+=^p&!d)X7sjyNO#)<*QI5ug zYMbkn&wbB@fd_H1kmjp5py-@*Hr$QjH%JU>MFv;WO;Na~vX+=hF9DnesQ^Z{sfwji zeOXP96BN4u0l1-2zw-ORD%MIj4Qt${DP-O)PaXi8=LMY|CTlfHU$O~H# zkqYIfB*FBfNY|OEPnf!fiKhJ{QN3eV{Mr*cfuiBG&)HjdE-da$p&dJz2gmiIbsmnlW5Z`>S0+PA-Y&o9L6{G? zB-gX1i^}{4A9?eBqyLKlD7k9XEjTSI_8c&%++b4VnmvK=a56^j*%S;_8|r(p&1@(n z`jBnKU_j8DT-0KvZKXLn3NIfLrFb|ly)gw7bbyXLTzW?muRVk$M7SfN$`$gfJZTjf zOz8y_sT%nS6IWkOa-2ibVK$x!`SRZ-d#I!!H3Jvbo)a&*{VgbhT;4fd|xb#w6YyGKv!~NtECNJWNR4!^Umra31%GcgWz&QRionWs!%FmS6 zA`&(Nf@q>uFo9-2s~l!c(d>8oo{Id}XTlzlgre9Dagn9{d7DK2hC?+U&+Y`-&!A)_ zJ@0lITuCP84eOM*6wyC7%DS8e3fRpmzA5hn6BItXrQu4bY{=}jF+YLFeD*_;)cT7R7APabp(1@%C3@a-+*quaUrZ2jFC z-0ci}@wzHcM5Q6RP@p;O&8Y>|tniq z-Po_f!sW5h8f@^DIkxS0^KnAn8)&3R(Io^ugw^exf<6>43&Q!v0M@a=ZWVy5^|Nt3 z>Pp)WBJ|BkA9fpp_+Yhidxrg9ZE7Uj(L7|S*xjBQoh*3O?n~@N;7nTkLlMy%p{M(i zK1^<*>{0Tx56Eg)|22UoX+xuZ)J<+ruftW~>XF`h+WM3p)dic4dTsgupLqC{{TN_` z@^Higj{Vhz&UWq!TwM)AWl@$RYyQi3~0MM=tmR z%L2PWh_p~ngoeV1gQn~@=tWGw^+yTlg@yqWOJq^w5{W=bP^R#LNk1lXT_Ffv1Pe?K z;w-&7@hotrjZu3NDxgbc-(QP`WvxnGnu6 zAldKML0D|dV?xG+i58kxqDPVCAYXF`kiesAHv3NSkH=}7V+QLwpd+%*Q zQ!PnWJ@d6mGtgq$ARJl z1#@oTamU#(RY;=$A2F`^lhJwzZcSu!R-9%v!G?{KY0-ARb~6Z@Ui~wQ9|LOTBRN9f zTl}N;w@h}=502VHH;L33sQqf*b0oxK{)U#@q-NM|w=Y~GMDazL1IyQQ^fVc~u^R_6 z*|VbB%TL=_#F=r6NSy+}W4|e%_LDD2@+DGsA_BDVw(;y@B_oG^eHPiy)<94)H)zR8x6qhQ#!+i3Y%wE(2!7I$v6dc!|6?W?(E*Yv}n zattAMbm?Vl(if{A$3){i=F@#ZRo%EWgC-{yFL@GF??MBK+CNg4ReWnQAWm%8PN%)u z8g+wKQL);wKrH~A)icOjSe}?{s#+o$wj7;$V9_Tvfj$w$SA)=qZSz(k(0i3hnSPAm zqQ&!<%AL#2m@}9@zL7pf9?mskMH)a(l7@5Wp%S`P(X>ILYr-Ghdfg%m^Xa;rC^h4) zNtT;nT5&C4{^^ zkgbCH)9Z*{p*Slw=c|fgnt-gA-?FM3YLZR|;sgyBtVL6FvC8!52Wm}3VE_G{sx(Uv z_ip@rRqWiD_tzlQH;<=y%Z<)(+kslM@Z-AL7v4;jvr~0lIJKhn>npPGycPa+(Ulfa zu>6OTVr|LEMu@82uLs~gAC~(eyadWA{+!$fhub^4fmw^=5Yc4gG&)IQ3lKTcf7^Rs z#LwUL>+25;C=cdw&NbugzXy7=1J%7Z1ctyqw{6JB~fUYv3{t4Kw|D073g zrj#U(cWA+i{n-8)Sf@zQN4+AqV4s$#q3uYFccgGzck z>LEWzQY%w)E~eOW4S%BgeRs$u6XxdDIyEApnxHTcug1aKGa)lXgnQ7pRKjG1*Cgi` zaZ=Tk7X`Y{7ecnPd5T~{b|$lPbS7gqM5k2dMp8)yb*!%EAl9T3!v!Jz;G*dM)J&wC=zecm#CQ!0--^cM)P4mN z;!F^cgsmUzpor`ca-t&@gNyu{%41hh0vD#QkUIcuAF7po%$)nB$`Q%A`!9mFB(_Ia`DTfdu^jKZtY%b1&IW)``) z@dO`7=*V6)NddJtIL@}ABUI&*oJBIJf6{~t06v3fUb=WCNZ>wv z;^+io%f7MK3j$F6Yf>RNo9+^c-8*&>H?Z~IL~>+!Y=1c4`1rYR>i*3p4r{IL1 zI6rMyZ=iA$5fghcF2lYneRds*7z@4=Hna?0+y36w47wU2@o^ETvhz)U!9V8qtcP0W zoaWm9A1OnosY7+gs|9M5 zZ9CSbN(he0*azWqm;kmFJ8t=o91{&6QZYnXM{_vR!nv(7g6bpC0bgTzwx{BUm*22H z(hH!jriI1IzLAJ-ua(Qi4?{?T=-kT`!Fc^TlGR<`UvWZ9`;+Hn zJ>f-NToyZWrHOVBy$}I$RGz#d%x-AZG&XuMAKE(d)W>=h#jr5J{q~E1uRJyfa|reV zVC3%8NDQ-wRrDdm5)M`+M>twYU!19#HAK;#SAKn~ES-z(0hcCn{8C2Vq)$aOyz1q5 z)}VQawC#<;>dWtj{gyf1JIAQBlbs4tolo#3C6W`l+Jhpr&iqs6*zD0`@F$V7fOG8T zr`=pH;X##uGpAdpemI7Rgi{T+TMmf%==O58tFOyJNlwTKu5~{>eZ&2<+kVp3xdUD- zl?~hFtxTnDkL@63kzQI1I^$?2gx#s1eMXCWw^P4jgtc89M}IYKO^?Z|;4^Lu6d(!hqX8G(4pE7Ls*+?ecD_qi-*cj!vuPx2vU>Ee`Br^>DME#?F z?XI$)w(^z~-@HDASU9TrkaOQh9oaaiJ3=nIg|qXCknf^&$`T_8H`+&(1&T?sm(ezB zE(yPF)_JuO;V*r8wQFRg>!yi;VLM!OQ6kZu3W(|OJ z=f2q)0Ez?>PhyCmJCI+~io zh0w35Uy%CWy&tPv`VCac^#n$z%(wEen9i5kG*Sf=SSFF{I`_s0Y`*97e5=(YQj+!{ zh(?DaqMHu#X-6I3-YLud{El!}94y@lNjI-Yfea(#nR-b?lJ_}8HAbiMsV)i^MCDJg zM3E~z@F=j-#iJ?zxotkLdlc^yOeA_uNFyEgITjULe)P)H{PFqpsd>s2UQAD?=X_O( zKq1A?te>KJ!TTpq+UZj9Ls~zvhO_L_IGVyYrn{NNQ~NKlWMqvw+M~naUc`T>5t2r9eekNwiIAh|O6-(7dtsJlXT1n(imLW|Sqc^UxGp-BT}(SqM)P ztdSpkPh$R^bO!jjez!zEX9`5#0o%z*X2oBB5WDr{i3vpL(+d;umcn{QwMVC5k2X7# zO3azk9XVv%Q^FDQ7@f`rH$g|VeywHt1VK!;aAIZ`-W7-3l*|eHWh*aC={u^4FzP-m zOS3+h!ZwwETWQkP)!wFB@v$+n3$k_RpxJG`{L#Yajk%egqiUHi1wlwTu>~j}lED@R zDFEpfR6bg+O1u^`Ai#ovpf+bbX#2=toX8bR# z((=-oe=@j^O3ytgpg8yk^4Kv4^hBUUWx8*!;STbixyGDH9$EK>3YdN z4+x(=f6aQ`fxILAd-tIc+wjCdZ{OI&Frc!L{yk0$L7;)?&OWXqn@LSaPeoO~{nH)lA zQ1H>*n`$`!9oeG`GlymukKwqxY3GkWjmLD?mJM$mpA-5)FJiO{XST?Ofs-Blp3+Ou zG2NsBkEYRAL6>oPat9%O$r=&lk zzyv5ggHQ*}+kL<&$dl;IA3-}myC@iH;U~#JMNWe~u&GwNat$9w>9aLN6IB-zPmU4D z3ri~IyjYoI<-M@$_E>VAm^P6n6q?6pgAlS_J{?DcfEZg*F*@?vTPN4@iWi?^qvYjo zT)L^IXF%Fl0F{uI{Q2aqGskz58^w}u1~q2Lq)ROhXQ-~lnLM)Yh4m4}SOM`Lp>X!_kt5hbo4OA5+iPw-E_iVzFKzjrwM`TbN_IornvuXr ztunX@6UzNf+_R+vps1URpd}QJ?u7FO6B;Klg#iv5BV0Bj&nLzRWxiCA33@DI?Wy8< zvBjT9VDO35wfD#!mA8qQVB*7}Ids;B-J!PbWE}1}9W26xGTfG-!(#?Z^o#B!>B+aUJmt+M!1tCVFrZPWbrDk8*YD=@uKBhF|`4?cgx=Zt;kT z5NPE?E8Vk4FWbKFz-Z5?JtN|+`p@gSAH1WCUZo-hAmVaYu5+l<_FY%+y6Q>?Jt>RK zC#^C52@d|*XJiDWrzEK3w1lGUCmD75JUNRTIJ5m=a8O*}pzfQHq1glul4yGIvH1py zVqAIwCy+ScK!JfvHrZ?YvOr0d7fU7tFUg_Q)Nyl(o0s!$6;^-H3Uey$CUl9U-U6*fX+sB`>edCU$Y+%+SScrXJo?RWMs|01>q~oh$Sdiv} z2Fjqu69#8ibK6`bR@8p=U2)oLrbcKp1XU0*6sJu1Rk3}eGO^A}$rY>539YD5MYxHJ zSy&uTWT%}4Bim7WWIl@oq+_Wp3b<5hxX~LszR=V|XF{vr?s_E7{uI~}f>|KLr>qZA^;D!l{uH-Cd)-6T^LdXz^=v04b6#zH-e;3f@Sieg zNh4D0c>G}>-pcQ(J}TKPbtkf-&`-oORpu-q{%6f*cHTUjVNAufZX4$}mR`6KYJo|*3GetYEwxd<<@5M>9(O-#gX<*jDkFnLBc1&ImN!4sAj3R{72 z_TAEle!)RK)-^&MI}zyV|+J70Q?m$aO!g)-d5DXg)F3&c0>PU96X?8S+yw8x;T>$R(qCKT4vNx|lvcPU-`XfKe2eX_I5}%^*ZUO;_E9xNt z#TTDF$s6E|hW>e2l(REn?OtTEF|J@AS3LdasuDqeE~?=O;uhZ4>c>{tbmrw(b4tu8 z5&nGKZkU`YKkAvi6nhA^PksybM%eLO?wc80R}s}b3G+F8?^fNo46ilzOjnF`IL|k zucSXT%>`($j;~1OwxA2qBhcXK;q_Y{+%liKjS>}LB!HkCZ%KM~<>%`vtFQ;8se?Y! z0WZkS>BFt>%}=5 z3f0=o#rJLf`UXrts#@}mS(I;IngiDWtHY`}g$jKK`YwGxbK*Fn4)!Y1U)9IgvPYeM z5y4q~AsV+rb5Dc0U`z%8!)y3W#hJ;FCL0yX|I!uWLf{|z$iHYrbB{GMD)#?rZVFmS}N2&!j$|!=?a@ z0lKJGR)YblHexMR_xZ~ESA*!^;OMU1mpOR+xV&m(z3C}F*Bd7=JArgJFHIu|EVW2w zX>?j}z(2ma&xQ|*2P?LJE6Ii55erM4yWC>l%OS}cBVmm9+ba}g8eKzsuxQGk{&JoB z#Z6UzxxQx4TxxIIFWhm#%C%jQI*#V?4Xb8kvgLiccC3rSy|>^Gd*z_WsBf4O0D%O( zXLNmVF%qPcRWmudX}KULm<}!%avC_tkipgEY_LG?%4R*6=*X4 zOYEDM@iLcwX{JRu{y=_W;=c6FC(enoExaj-KI-;HxmLb?y?@auWszxZTgk~8MS66q z-`PuIK^G_Ulo{`uM=@dA8%5bwp61eUw_i%J6lY!tpjPUHg?(zT?yXKDKZ05yd zd=&BtL`nlmAkbvnb;QZT!`;!8sUd!8t2_ObgdDm1*`Rt>cB4*GDv8xywXv%7c|`|~ zDj4nGYnNf8VG3uy5_=Zb+%AgyRD42GjwKh4cc!T}d;4)mG=4IU2(&_rb#W9$(;ta; zi!yK~EW;fb4`)2j;~ZD=sMQeSX7f9(6$dxT1C=(?gbq!wuaAN_MZ(i#e9~~PW?7ulUmk?-CdI@OMVH_MiAG>Ayt{ppe z?Am?BGo-4`2EhqCXgjj*g>KZ*8J$Kkp0hJV(iUFdF`L~FIVmkD5b$5X{<@o#2>*)C z%NXr<5b;?V?7oQLQ7IXTw)6+|qd;?TrBSX@mdlL8LC-0J-QsHq>qnDO@*ZkLdFvi2 zzPW=%m4r@X>BG0ed*Ox)+<~7{m7J&(hrIebtElZj`G)`$VHF8sfm|%68btCXGQ{7gg-#gkBJ@up+eVE-p1R^kUUnFbC3<>? z4)(hK$=C66 zEtqab%nytlhlMwu*AXrSA%0f(t&34t(AG)zXT)t(L&U~u%ar708nMfw^s0BSPR}8y z6}vN+A}0*}!tD;2!K5+1-a!$HKBV|L?(X8Lm!Dxn<^7>>4I-XYuDzYJb9CDEKk{$( z4Ok-h##uDD2&gOKa`WS4iNJ4VFEPj=73`!svPRK!m_-i36Oq<-DMC?7wxmkH+0AQK zBs-$?8|Yoes40TX+J-hJB|-sSgXIKM6;>yu%a={0nP>mZq`l-sW}Us-MStS1TK|5*IwD0DvVf4IA*64DbPee5Oqk zh7e|7KG1BxLNcdVE%K$^NW}T5{6zw%CiRX`>BHzS8gDh!RjP&l2br1EXrwYbjSWd7 z{%@aG&+LX4cxFh;+`i<9RY;+@5R+6jpGP9qiItzRQ7jFF1&hxzaM?B5GYu z4?)#K8kPQ~CDb04mk_M)x!)~-N9o_=$u4v>jAo(8npMUpmym-F^X>5LQIw5NE#O!P zo2yWNZV-6^+L&HOV84sPs8%};43G5sc8#!=Ji~@cgfZ+j>Z<*65>6^M z1&Bx%glxaYcqOU_@`g@&%8B-|5;<9^CVpt{iAhlRx-LaF1jM*T)7}Wg#hExfz(MK$pwL68*}-!6H~`idz#<;T});A3tOTEIu9R>nLCm zJ(@=Zbn90-Kn+xIi6cw7+QQ}~$k_4+*PnGH?MO}c;=gM+&JD!DI#}az_MEtg%Lih_ zV8kgzt4E+sor|afWolAns!#0`PAEJ-=Piy9Y_%^4G*Ep+Vj6BBw1Qn%W{b6`Z;k9& zcT~9D^Ag^z^4VPUNM04a*9RnK+EGLZoz@%t*z{spxF1Sp4jwypUDn~3xhk&j^(S#{=Gx6KJ4~Bo=a&k6V4@qTu^Yqn40BAfnI22;O`)uGc3K=9!B6bt;^mzAWga!P+Y)ws$ZQvhIkJf z?MOVcr!jQQwDqGlbn>GK$#IQO8%tp#^HBP?*9n_f59P<_#Tb~0QJb%+pe$XP_$7!A z&~*GMRzg&ju2m}@-F`)++GB@o-y2%YCUY8qGrDiQEPhoF9oc{d12pDVQ(WN6k0w#3 z&1SGoJ0b+(DJST&!;y;tqf_#`(#i`)C`a)K|r5Z4XDq6^7$S|n~p z-sf=6r#K(VtguY%gKA7YbW-B~)Qi-9lBF)*M|zuc%Iyc)rb_?DbT%`6<>kA{&z(P( zI=qlNWw*fG0by+UJ$e?!R;imIitM-B`M0xAN;If*GIS`53rZ>wdK6jb)V(IThPTLl zZsx%oOmIfF#2Jwy019_@cxcq*mbX!&uESQ5Iro576qo`27&*_+W+-WffVG=JcnOYYORGrgymVN5|lD^ z)p%tZ?vV?Pw=~bjy`}q>Zf^@n{Ac;lYLoDXEsl^?wM|_c-~LTR(U!+}lzZQn4JkIGzS}cgRM|AWjPhM(YwTm%ayxcCzJ{7*+!Oj1Kl$w)^KwX8u>Bu77 zHg`C^;DUBy*jLkVIc~H3M0>v`jlDhY4GT7qBLQ@~S$X_!>eU$xMMdQOH|V5-Mn1*b znQ8WBkzv)R#h0?MicrAK_K`EM#hWj_J;~U!J%rtWeOY|%B*R~ROLp50;sRH`m$4-1 zeaOVGduieG8}w4AFYe=)-t{~A&}coE$=Uh8*lka^nJUQ7aW*IY>>^vgdaFHgEvxs& zuWf#uaML&1_kiRdM0a66GZ_DC8*zom)2FOJB#8QgT%abIrqYp4h=8MOw~7Dd&Q$3_*Z(rrNyWAvIkFRW*Nu@Hq z&%_CFj=}|OsXiutXrv!yp55bpIM!?e;Z-r`#!#<~O?{%@ZP5~SMxY@?2#~jX zY{^@uGnZZByE@4Flz*Hcq3Nna?I8g=+a5)9)_uCpE9jMp9as;n2Po?%c7xo&pan(* zBgOSLs4wTM^u>65jwEc@lYH4_z}V#+Uv@caB3w&bGl{DTnx};@>L`F=dbu<(DFAFUhe1vLx=8`s&dj z8mj@i^OEF-z*>g55g!CmF9a**!|Z+Gl5)>la(EO?whmG~bYK5a|JY47M@d$yrZ=)a zSxGF+;+DN$AD7<%23uHI%0MZ`;LcN4p}S>D z*7duwbGhRzHB|iu1m$@w%(>mnx$a_q&b@3sw96td4L@V(RCvwSN#4|UxxI;et)coD zs=c7;kM^bso_*<$SHm$ib17xk;b0oCgmkI%vhRQ;NS3{_1+ng~v9aJXiJ!g|;uNoM z#L+B0wWF(V0!@VIc%y!I_R9`_)fqHacPDc&SxfFM!6KdHy2y@rdla@NMsVgHc#DGb z+8B@WePt-m~+7h-HD{=VM?K2BR-3gqPt%lIe-yCWsaM@takAu39Je# z*&}BXT_pna`b5Ye{0+@a3D_XK?6ZJudI>i@r$4Td>3!IsE2U%C34qxxG9iD5Ev))k zO9@GPIC!FW;b^+f=CUCmM5Wv7l#)0E#q&ss2IIH4iz=)B`Q)}9G`)A35O6_>2H!7f zmmKhhMnB?K6iSVF>Yke6pdK1Stk<^+Q))S}j;~XFw|#c2JpaZ}ZAF;UeF+MPMsi0| z_MvGGj=fd(x$>b6;6mGX$9M1EzCUTd4XPlV4EOng3Bq%Ty{qM|m#s0c@^FHSPFVmb&$``6IUtOrf#&F<4GvO94R`w>&a|#(~rr$tDD`Lnfh1;2{A3 zJT7Dvvy2@QB930=NDH>3Ykmep(S+{crC9APPcU_Hj+Z)G(IEcsO*ZRS)XW$Zf!X@` zmU`9-jkmgTQmhim-akwB40Mf-QsloMXKap)+Q2nd`hgC1VN)|)R&GCP1oy!!srjW7 zjAtX4(;4^7V7*^{&N?v0qp&(uh;$=B=6W&-gB5=(iG@?yYA-*^BddPACbMA%ZtCWe zNk-KutR?_0?4(S1w8@b4I?<=>txNQeQ?8tU?@d+lG|ukIAn9b-)g3G8f4Iew{(%u2 zp&01J<&I7iB*{^=h&XXcl2du=shpR`0S-6bG?DD;Ind>M!m0mr#VR=h!ComTx5dLN*msvLKZ4FtOX$OCH;IK`_#jd>1B&)V z`gWgiU+M5F+C>kL|JXYucCy`|Ngyvn)G0N6eDrj7F?9lVL*{TA9qmMJ*saQRZzLBD zHPW!1W13@)V={=Ws5oV4e89CU!pCWYKD+A0jO6{=8)XM`&t2(b#DJck;s~y*02ITl z^%wb2gf`l@s?VIz0USqy>dwj7_1C#~Dd7BEI=hwo#M&^#)~`Hyt#6k5d3u9KG(qbZ z%vSIgkEQZ?V^BH%dpR7vx!BNSLABdm8`xFNr;peKPY_~x9c-EXkwj}qaGz<7k+Q6$ z)19Lym@6TE1^p`}j2iUM5MZa<^K{y zmTp59f7&~SO7L$=qHP|ikbFih540J{4!6HG(bL}zi+;qnc{m}XxTz&%1txroNwSDH zu%&6;9!L2e;BDS2g9ru1Esx~v$f?laKt&Z=22qAmXacw~g`&xsJ?;scF?=Oj-QQgc zR+mh>5H;!R3&Q|c@tAV2O*E_oI-3Q%?!HL|5l`Q~DO6T@Xp6;&nA#P@U{^1!I^54A zEd3xBe(!#W40}(=nnmgCpEdv$7Cmv0030k4i_ScdM8-2eYC$E3&-ARrRRxVIy)LPv za%OyJ(zv~#^2}gq+;tm}80DoaCQlukoj&Fc%eb7UUOp7pkD&PR*iQ7!vy@+5?)uC2 z)~&Kr&z;6@P_}IEfM{@9PH>viP9Q;8B*>!dGZ$TGU*02h+n#S4G;JDC2{xb(%Mig){g*rxJ+f99^a_KeyZK|4 z!!>X82N_&-9Tmh@v2n`I7Ejl}Q2p}`e^-SxksKcB8JHO7g8lAc-z9Bb*0DtTh z3NJY;W~)63eTscA-74lciepI1Ba>~)iPB4W(5>G~qGDq1v`8H}n~(SmX*JWZR1m+) z#!fB3!N5O#hJqjo)ejJkLD4(=s$L(@q2h94PoJ}QW%VmxP=p}@|KqiQuj!;6N3?32 z|H%rH9u?Nk4u<`s#fd7sErahfy^B5GH#c?EjYULc_1Yv^jYG3(xh1mrvb@Fns9jmK zEx(ZPnJ;b#V}&LkD=(YyExgRtAJ)vw;yYdHU;VkybUvxFcl1VRjrvop*a0J&Ox-+apkfesBzFqXy+VI8~*>WNtRgWn(yJ(8eOPS$y;)CSd17 z)>%68=JM?u+L?)(8Q9|@I19BF(f)QBA0&J69{~)YbKpXFVwkGB`!cNRocFPlpD4%H z;c=lrb{^40?V$h{1wx+U+0%r7!H*4(^N8_t#XB>jy#sv{qvOdW4u+%t;}e7UGr%g8 zcE8$!dL+(4_64-NnIdx8$$-TySmt64tgqA}h@dVs(Pys29(vv*9&XbYy?z7>;~WF!2qlzc$~wW>%9ccMe2fB6+FRY*{x7jk@;iarlvl(rRv!$vEn81^uJ# zRWi8B@8=H;_g^{T-eQ+m`0{vgHz~4Lv*A*~TasdiiuL$QpzSv!6xr6|ak9Sp~GIM~K8VuKuKBGnpNxnsDmJ z^$+}P$Ne@AiPaYFT;+XYIyOpjiS~9cP(-5Vmrg!&32F6qRZPlKX@l5uaG&=GG+;Nl zhGH&gb%rS&!DIf|!uGW!#O4gAo-?2}<@*Y$=kndW7la=2h#pPmulvk7Fb&bjR2(+K zVVGJrTqUW8)X^16R4JdD!Keu5aAwago=xs~Yb16E zP&;+%)Xt0^5Veys<56-F$?~;(7xvt1-fsPHoJ&iI2cE3H=)z|rFmol#WTdcA^W*aaIc7%#&*Xls=l5bp=nh`1g}dh)@>KF(|^9nrIq$ zQ4nij=3IXUt!#h}&Tz*`TS*f=#7%J4+^keymP&GFgbP;6`>Cw>gpco zo#2M#cGt^!Se2GoxS&3vDPWVj^EXudM6$t!pPJtoQueR(ejBOmSnIzeK;7f>>V(XY zmEee6vN_H^bmhbp8gEg)JJQG*J&(kYgfdF^u2?IP7@hfQ-%&{AMRBh`>rZ^}wR-B` zKOt#3p%EexN4MO)F`FGm$NYr>)S@p;2NjBH1AMn53oHEC>=B2th?!G(7xlvxHmL82 z3mJd|sJ{H%$uw8W+USL7i`^}PuSV;{g$0*ScN`p~C>E*N)k_i=;M$HnojOKIEXG=NGS`QK`5!cT9B9Ww>KWRYHg(2Ku0ulH8kY(MjUa3C8wTd_I1fKC_jEB zR7WcDg3suckY6^vsmWtrfU9m?$~U9;7?VcvQ?9Oug|eXF*FZTsYYdhTbkf;NBBQ2* zWz?GE=bHXI6wZ1QjibyVq34$xGx1v*A_|=x4Ab|V>lRz$E`Dw0FVA&&Qm}uGMyQK< z@8&mE?_3Kv%d4VDhOde<8-xgoVsYI&3g%o$vciIQj6f5#x?P!2sEndRtc=nbKRpYl z(YPO_VkcnXoTM&pEHvEjZ2FPfV!MQS)p?BBK#mA?E>9&m!;#Q+8@1#kl%Ks;=N3^( zA0_O%;xv0er&$X8q55g=wtL~&V4CeeTqnzt;#D?qI?I;4Ec8y|oL}#-ifw%6GchPX zCxfr$_q08PC zHRa1!`i4gayT)v)Gs4~Xb!_6!ox8FpkRZ?ib-7H9B|ip2tX*-1!+FJIsXRLYe7?JP zVxWJp-wp1R4DLb6h9wO}F0Vj%L6t-(b)mS;ZANo3^n}_e@W_arN5Pidc!r|HzTuRb zQy12d+nq#P^8Vfd7a)*mUh$_9v8ZGocvQk-rFOCfw4S-K+Cb>-Z2LwNQD&C!p4p=m zlJkR$36btthq3?yI}?Me1iJ!Yb87zR;xR8jMAGHX)X0ngGVPC?67#zFXSLb+fQ*bZ zU}=G%&wP{sl^sh9bHOb;NP6+VIVm!fp5Qk^6lVv=XB^~# zmfv*l{sF8`xPQS#+!*BnV>cRwJ1-B}nx!7W$Y^0Ex1q6z(bu-CHhm1(mlL-#jok0Y z5ngc?rGNvK_r%P*4TUOo;0YKpfUzC(1NO!Ow|^rZD%WWIW>>HuLigqC5qn{uDop7Y zbicR@iS!=b2OCjeGa!C-8Kt+%B7dl(dBsXN9KmBq<0F32#P8*+k%=zcpXeG)|~-^>dlXow+RxF@pbs&T?JMZ2`$ zJ3yc+eDLg^jX|YJ zO(=!NoI;{__%x|cu9yHqN(1emW)i8KrvPnm)xIRDou#)4hR9zbQyhp9j0Hkg z8eFs?UWMWtBcvM0OVOX^i-GLX(L?G>btL=|-YKGO8;IcLZBJS2V&xaR;K|twI1d0g zPx|OQGX5NxBf6wi?l_N52(uT!Jj62Oh9;+`pSc8dhy&eJ{fS;<4y_cZxo|gX#lz9) z@aM7LqB~e?mq1tlLAk%^zK?H-4vJ!U$1<_ zYoJ>q)WlaJ53s)&{HT&TxZ)@*+-QA=orCJAPdV}LYDm|cnoI6+>mr<3`GpO=NxG0H z2T?|6Hb~)cI#AFf47N68WATeI1eFj5auA7RKjq#%IX89U@XS=F;(MKO+czEBR}vJz z35_TDTI&x;XD8v+qnEN{5w#s&Bt+HRa)7yK-;hDHziSP&(KJ*qxJ=;{qRyIchrLX^ zinb>v;yd{N?7E`n&rIwGi5aTXBpGg*NwIy^xNj43@Rc-m5@#CF&rX7^xK(BUxqgMJ zn1!F3UT{*bb0jsDP0t4wJcdmh_Zux_!J~#|c%cg&4^E#*FA11p(-T>+{M<=oqXPCu z%{lBGKKQ~%F2oM1ypQ`XaPnbxrxx(rYvTO5%Ehj8DBq^Z_Swv=wJETuog-lxXW{GU zmf0P!f%1_jQX$0h)=5pbvk$9sPOcuCJ&Hr+7Ki6kFiGuKQ8KMRSu-UAi$)MKIpii} zUFAjpNwF=8dot*0C;?r2t*}?=?&P-qNZ?#XU6%{n$Aobf20}2u2;-~mZ9T`LN=VvD z`B5nvhX(H|A)JG1MrO2CD+DfCH!Ew0gSeQidU?JEw)Q}nR|hsxS@p{DI+9hwu1%sH z%IS6ga3nCdi$7XAAP8#6cs@s-5p8$cf_)KkgY@C>%4}9n)3qOB^2*od8cio|o##+` zv3Krz=n88lUY%(V{=lA59LVBT&H*4X1@M)XU3e&vI`X?)*!=28E+ZdD<~6%mb;Y?2 zuL}b|s*})Xbp4(ajLyku5rl1*ik;6cfRmnTD|{R7ez%W5$gY+Cv&BcrD7tRgsN*Rm z+=FXN*@X$%)W_U6q3y7`%kNv`wT*1qCGykD@=B(vGL%C?cII$WYB3Nt8UuS>ZgJMh zatxO2yU(q_l`r^KA(3yv4y#XZmc=Q2q(+P5JW^5Qg|~um zI86X&_1P!3GU-(QZH<~PXEN-LLo^|0Cbb}To85^$0kf39mq+^hQYz|)$Y-nPlce%x zOhT`1zm=zU*rBr~<0*Y@9S}j?2~lFtx4#Fe<8*f24ZSxYZw;XU8^ske-c_L|rr^f* zTb+_|-Ru;rYh@N+GgZWI0GWrM|A`t>4 z_?^4-FH{3szr=WE%i|~gxj)kD)GdgL?V~wlCTNAX%|xV9<)++Jc6xT!uJ(!q_@LQ6 z%m5BwZNl~e$@|;vZ6dF7r&a_)BW(?;4SB3oUo3t(P2{4$otq^MKis# z##9Q5LBDRqVkUN7-dWeN`(mDU;WI0Ar(dg`4cQ$bk{Xk>dUrmAYnvT4E@p7`gKNOf zP|*OR8ay05)oO&_Re2XwQ`6uFy!){<;TaBd35_@hy5KgVKn{}FCTLRqy=z|i?{Dx( z9I-+Mks`Y$Q5Ulv=*Z{d@O~P4o_S_wEVX3yc1%zC2EHV+o`-Hs!REDC)w? zS3PN~UuvmS=AYV-MZ7G(I0>LgE6PCl6ytWt2BZWTB+tsnZ+milx9d(MyjJct4aQ=O zd%0fY%^?jmoi&SP6T6`^3~b0|m%e7t@Qan=_U{kO3DN6k&yQ#H3=5l-U@_(Q*0QJ3 z-vp&ygz-3@vAaNtm{SKca;m1oXI z1rA3Q^P2X+&i3rvA8Gu1Gkv7@eecN$Y!maFB6hG=Xqk}_5=BHkD51mvmQ88awQY^K zgw_4%n{kVXK{cRZ{x2RwuZ6`Wf6}#}hG#w>2Lo~B78+_{3Rxe(iZyy`?-l>H`k@%$ zl1AiL6hrI18$-j2aF5!9f@idTDv|6O=^7k$u7zDs%5~Q|3-myocqpO6=S6VfRYP&T zy=GEgiJHjinhQKN5qC5UmnR2J~nIi-V;2W4aapI-?nTUlAv z@BI+FXqw6p1{c^MROPL{FeEuQehGYH+3m`sv}TtDmO&1jB5R9?9V60tZ3ZW+!&#qp zCp`;I75`uj-`tU1gd>a-gsEmUa25ZEAFjSGq7gV-A)sd7)D#LdMW;hjALX<;F9yA1 z*TgnMhllWGbaG6vBf7cXT)Rew^f^sTq1iLZ(gEj=Rn(99$Rtf&Luo+vsc9fm z3@AK|KJ&gUshZ{=t_?16!*w%6B3uOt4F=e9UIsRQFdtFNT(}zK)`RtY(fAreg#mDxlc2n&G3#M2ERw zxASrr9~F0sCo)nJVCu<)16>vo^Wu2OZcf_!K5wC`@IUyuDSHKPw<)T8c|)vke;C8n zeNDw-ad)RkiIUYlcbX4gvu8yXmR_}iMpW#9Iu$69P)JM2YD%phmA~vzW@#-^ysRLOCE`}De zpX{So^G7RhhYxU@Ct}kCde1{txWil*rTnADDl!v$4RtSJd*B5 zstW4QkuT`03}AIa(UgxTx7{2pUEmsc8wY+MWM$iB8x%cCXAZ*$at0*6gx}iVou5ag z9{a$g1Q}zp!HBJqy8%6UrjJL2u$YI%2T$^*m^dA&&mMD%K$YV?v2FdF)#TV$;N{lO z)@IVFEE~o%eK&T|Nm0_+*@hw>ZRJCmQ?v6k=~LP5m+ZRLew*M0Dg0$X-hraJ|1{Cg zbEJ@l2!m*z+;bSf;Qpf_Y_F#V+n^w{Xz8z`Rs#)(y$c#w`BaX)0g9@29RY?th(jmr zam9|0MKernp(Pt7pexnh7rMG@jhOu(ZFs}lJFq9b{PHD;UiFI@EN1g?^5;dQ*to#& znAY;s*&*IMQjZ+qzJ4U=>^+GZRod3b0w+Q))vMrxUgx-qN?&I?) z6CVb?L9TCL3U1}m<(6xGT?cyWGLZl#4j*u!srVM<->qd*Dc7$PkArWE{~oxlPToa3 zGN}+aKMC@Xgi~-9;f?;VOPN9Scxat9Wal+>qZEg=^>b@O>CvU>VzanjKlIju7pZK0xIVGhmzbL6Kz^<$>?KEQZ7X& zH;4!)4n=F0znTx}&w)>&rqSUz(?*^wjcs_pTy@GJYELAqMY_!GstsF>(!YsE4)PVa zplw@@jR>IdbxF3J(ZHHYh8L{D%&7A%#k?*3$0UeW>NhBL(!L&JdTIU77zbbXLM9?L zDn0Mx&UPaNAJuCo32h zmZEO`nqq;6?EOIW$a~MW=+Y~^qh=Iu85U7IYxh!N$m%bUDLk_@ZAYVXgxTJU@8Z3c zXSYyHrN3)n0%e&a{T^V`g?^fFKhey-#YJkINo_hM^bzVB(cJCt?VyG3&EgnlAE%bl zRF33CZ>fD0;a;Km_HRrcn}vdL!CbZCO6v*>+Tj0C7Uj9xgodQ9W4CNR$$psVr$NyR4w?JK`b6@A$^F`h5zY-#g{6qC zj*J3vU{Q283dJNYN}3>TV(M#$Dfi4)-mc#dX(Bd+Xd=PA`{hT z#I%2UmnIN7NfMzjHDP`f!@+c;8JzStHCLBEFNI&Zlc5R1ZU^nCn~R8z%0NtgwP-L^ z$A6D4w{mMZe%CNXRfd9(-OQ_8zGXe&fry#U zD$m>9P4tCEDeBRJE>S86MEFp?XB0y~)+m_3X?B8Q*z zzK0qRA6bE{JoKQ_lGhOD0sG2fyEpLT>hE>&3BiOazdtDv zWVjmL!-F^`E%J-eSX<+&l50mB?nj zZg#4bTOTFAJ8QQDJL;25?foKc%U@rWCMCT?D$nFr!ta5eEj%1p35#Q^0 zaMkQugg(6mZYGe|CEfz^PNA%Lc~5+>>&A)R8tnV0cUOTi(rG&$mhfKorg zpsS}1dqd2yp|bm zMi}~YGn_q?yY7R=J$c7H4qX`%!n`qYe`5*xK@G}t*qG4XkalN&x$5d3Es5H;NyJa3 zu!4H}qo`Q(Cwf5b;@S3})F7Bl!0xceuH_%MJSr}0!(8B8EcHhmL+bfl(tjYZJtbW! z_onr|<6R?rCJyzF?VIT78td6-Ul|t(`0$(^9TI#k423(mQI~>;V>gU#)&)yMUgiB< zhtA?PyAuZn@riH~F0DoGDxS>+RM2Q9Es8999LUk*V<0=^mL5UsnqtnOqsHnLNzhjI zPW^?YZ%19>>*hDwG7a!%oNdk5El)#0O9iOXklP=RRR^21P1gSJMf>;-&UOx@j!sRV z9;~Mq0SK#C*%I(0PWq6!QU`B4-P0qB_pqD;RwGfLl8Y5d&RX%`0~)CdECgCz625Zp zj88{fd5N4k^OIWt@Hh?vi#7w$thnEUewyEo24LK=3CB9$#$7|8;mMY^#YLcpY`c>r zu>b=aQp3QyM@XgNDo^GvGvOhSOTYShB`4-`XO?;{hYJA%BDL5+1VKA(>C% zkMmS}DY=zngm>CcnPw+=tb&@$r;_$Jw@;)I_)uj541K9275SZ%`8?}#4;wI7F1 zdikY0X69VC0NISny@^|Aj&pgpjL-(B7W1L}%q%5G*=6x|il1FqSqpQ-65_N{IS>-c zHx2!CiqBj1f_jW%k?0HH+cL}uDZMxo^h}DxT=!3*StPY&S6hoEmVQh=Peu$L(cf7b zs%t}*+UdXu!#qh#-&4cBPp6#yFXlq=qcQ9%G!DdtTUW8is_$9%+Xn1Z$VQU29Cm7} z_H5zlU&KNUWdkPv){G>F9N;VhtjOt|oQyj=opo(ZBcXS9JF*#xKj{gkLG%RIe>*XX z8IeixuFM=&l(NfZ!_$QAYVBAPH_C1jIxo%SsB2;5unAeh_V*z->*k>0o;W3ipXafJ z1Dd^NFJs#5YyV6VT|(%{l9^Z}KBao%NU+3CnL(XIQ?Trv0#y|Mc#W!w5x>M+>$@nm zf29Umi&loIVfdiLERNYg@FF-jMMQDwx8ow{rEWOAKoOe=DlRDk%dbi5_AA@I zoRnOAH#r^0Q&DL)k7_gxhuJboc53O)coUZC4-N56Aj?4LT*oV3JrLnO9%2*u5ssKZ z5;t7If?I!_+%r7b)jz~tNNlhpya>4wz}kWMi@FF*6ip2T(?XGoG<&s>K)Jda!5K8I z;tl9NMfsqVMGqt-#RuKklL)|LXIej93kc1_e~mKJnWTa5?t#Fwvd<4&32A&2xF`UZ z46|-z2}d0KQ}{?Q-iXllgHgu(YAqxVU2YV0JI_w+=<*$_(QpHy;XY}B+Ev+_DUrXo zwuBzazIV99UP}Xs>7^|7pL-VUlk|KmCCppxad^-}^OGn^`xpmI)_zSN}gc~R< z8FJ8OOu8wPF;zE%5p08Hd6(alK#%~{yL>jyFb*GH;Jl>ZF6>viuft)_;*$Vi%KC=d zLWSjztw!y7>ucsFE0SaRH8}`es2J7=_9dm{AFhm#^cz%j4Dpev1@x7Jp0@i0Olbe& z8s356<6%@A&L8FFu{$KnU-(XqDjR~6jKnFc{tbzHoVAPJPDjh$L{C@tB+dWczRQ6_ z@^I--k6h*vrpY<4=elj_6~*QLMPM^#84Y}tm>2Ayk-y(Nq5Gx72H6?GlW$aWMy zm8b1+%0RAGFWaE2E`LBAn(`lKLP=`M!F567`2{G2<89Fl<^N8=fC+`RXzB>?h?S4v-O`P<`q4 z$x~AcBpJNnD*~o)XWsLVIUDRL*c*fhE4QwN68V4TqPP_omt*;vEsgc^;v1Lmqw3QA zsD$kwjxL%g;^iW5mN%Zo^sRg`J~}qhH!wcBuh#{aNEqJO2 z=d};*wONaNE1X?-g1!eNiK7wh20?@>r}N>mh+4YP4@;<^_|6VW#&o84L}QDfEdPB+ zNN1cA6XE6)fX?a?P(_TKjpdZYrsijlzy+iHH)^Qt*cgL=xLIDz0sNYGs4)W>HXAWG zD&3hY{n2nLhrdsF6Jk!*Q{(E6$+^ICvmeD{DHU5TmI7E;^%~>RmH&D& zTyh7L2ertEOkw5D{4;VUwD224rWj~&LSG<&Tx8D679qakT?tzI>DkQGoZA*b9V;J> z-L@SHcKh!5?%msahVcKRHUZgz;(Za;Q)@ObW<^hz@-SWKz(|IN>=oiqZ+S|MHW7v^ z_0UW&IouTtK%~)M!-2c|CI-7kU16a(5`{M=p(pAKSnTD3sutl@Q!#8xDb#*d)b1H8 z)G*`_RIB9kyV#`cUE#e94B}KSI&QXZVC^56#JFLEWjzQa{$KU=kLzR_JYm@M-PdKM9lOh&^yMU(AiiB7}b~ z@6K7}_6n77uUN$aU}OC*i$z_9?_>xB^=Pk-@Rg8mY~6*;Y7h@1@8YA$h>Qx8E?tY^ zKq1#zY{Pf(LYcnYSZ!iFb^3MD?*L&kw?+_n@Nc}l&mRbaM zI6l(bGrV`G|K{F36N3=JNcb3W46sA^?}w{S3OjXou0w;w6)A671?>jWQ2X>&5l&B7 z-PR+tL4qhu|8SvsnS1#nWDZTCrxj|{>>a9aK9@(Wj39h2^+u)3lQ!I-NxpgC*$DtJ z01?pC8nC6Qqj1#2L%ihErN5knb%;Q1(9Km{{305JgA`CSkv{ zXA%i}S6{p~FtG=+*j_J6qWp~(PRD50zeLEPvXLhWhM3Z7zlek4ePOQ@zOJsWP2ph1Y_{_Xe+ZM>Nc&o@yv#)dz#bs+%A12&8|#lv+E*|x z8+?k`|BqtsQ@iaa`_$x>m$_?V%@p3$aST}B@l)hm4>$fYvL>5Wj0h=a`vH3Uly+H`cSFYL#v zxdSTg8m8w?gcm2Qw9o>G!+U;D<4>2i;R2KL3K29f zj~LlTqSwIf3yg$j-W(JW?ekMKvx4&ygxwegP}Vb7%}GE7y$04%>3qQ=KoCF$(q$0% zhtD<>1AR*@#w1FT44sPSP!;d39zfOD_c zGw3r25@K8M<pGsSd#5uO->_*Zc`Npv;3f(ms>$apWUTCPDeb3 z@G}ZwU1Fn7@7G(x#eRU(a~KHNk3`g~!!#R!1Wog2m?8)q0+PvoXuy8rO&1r|xfwO> zELBqmj<`vLwJR@o0&hw_enT!4JK|vnYi&pbuM*1wgZqP<)GwDSJWzHRY!UVA`{P$$ z?z~NvJinR0-?%CW1uV2gVc90p)r*9mYDQ)}L|Q|K25=xQ(#}fsTJarmsPp~6Kn4)X z!R=8XL>hOM|833FhsXSoPfTs{kdPddO9}TE*76yAA8yq#atJAR#MeL`+r1szXmpY#0-HsMdWx_i=VOv zQ+W@<>}gfZb8LiTy4e{E2E zH^{ahwRbSlIlF^P1^X=VGgw1?PvaHe9}T=jn&8_VWI~BDiSD78jHQ3632TTu7g@)x z{ED`%qHhSwro2uo)(Gnk`*<3aS0UrRaZJG#`;?saEI;s+A=(3R3Gq#1|A%bvz98!8H#p)fPY8I+eN(I@Ow@Lfq|ZP&Cp??cQTO~a`_c0yQ~ z&VO{ynb_lnHzc?TySuCg?8Dc|>El{Jqiqu+xht=5ibdnwBAq%m-#jXso^o!ckbjCinM|SuR)+0O20+SI!O*}9Q ziK)HeS9_Vz=JMeLS()=E(b@kbz_O!0kM1%ifV02W0ewmCvD*qJ7SkNPl!{{oLBTdE zUh|GPxiKRtVabKQ;Am;twc@+hr{S^taxL*++TWNbCl$7Nq=r+(V&#VXG&*afsTa}w z^yvi{(q1eIlvPQ^@e|^Ma80`AXRx6*?-);O`8CMAI(-<2J&<1x-ds%CBrdCM}g2-|`F;Y>)K(e~Ihf%{Iqt494ft+ZOaI3OorDiMIiN9IHAX@ZdD zmyW>isQac8`KLD+73}UGbAXIkT9q?-#+v%)Ign;G?VI6xYjYy=?b{%_6GH`G^Vx<|CgAY$3;0YS4c($X#%Zk z%O+!T6sV+gZ;gm`9O&H5vl$YGQIA0KPs?9e^aNyI~X3$-ZTc0PYcK?P9;l zq8GlMY`W;qN7Pq*D02j*wFhSx7I9{cy#nI~g`IsU6n1d3JW~21*wkKL@#;jg4+X5R z`z>{!j_aB3_M{Fk`AT-BmTh^E0npGnoE|%)bcOwJf>~5(`7^a(ks@X?3?sN$!CaqqZGe!8Mj!ch#=pT!g=a3o z)PRj2dU0aQwBA?C0&AyA0A$HJJW_(O)muux^QSO$bG^dYu#!?ytUQ@+9?$^zigf9$)bx z5;U-vz>HHIGJqu6@UnS9T+uT8S`Ot+2=w(1kB`|;!c@hD_|(F})ahY9Gtz#G3B`PK zC9+#6B~W+YjaM_IUb4od@$ZuE;H0?Q=vuVC?H?L{sHMLEE-CJ-3t}Y)hZWe=@Igm*2IZq(NCOjw!ZY&vT z|Ch8kfsgB|?#G2J13xHb_(P!tO2#0FvsjkxII&|V8Ljp>TBaJwiDN*LrI9_cq!~1l zmlo)NRh6|B1q!of3KZH>Ky0O~9k#a6(hd}8Sqc-DhO$-cKk^IZ_dVy_bMJjKBPaa+ z`9SQl8C-!$BZ7{La;Pnt{ zE1aw#dH_*^8?3>(&KoHI@n-XHWbohf=wq{e2dTD1LV)lNr|(0Kf1J(xEKCHqu2acfaU`XS)%5}t`HOl zIYB?0Vv6^leBwSB9Bw2Z7ry~Hh{W%yyV9N>IkRu?mOW&-mP=@JQ&T7`zh|-!L(P4kBwWZ#R1R^&9a6;I~7jzRufu1MI zpbPy<48b6yje!_?Z8S`*$P%lp{o5i%oF~xp2BbA_2nCOsnH?0YL}uoL*>$-7&L(;(9VWUsPnov2FQG4?3o3|Dt?a+Pi#j(5DH^!m!qlYK6fAli2ESa_#5%1JnQzFeDu2RXyZ+`5YB?W<4dPC}rK zCzoBts;*SQO4h9-tfKIXHgzo%kez3bX_1wl*8ZH<=WLCAoCg4sJr+u$1~O@bH^TCB zuc$kvm#~~ittZ@QP5mUvQros4J`lcTJjH+LWg~*GPO~#0Fkc$T50K_RlT|zo9I8S7 z_h;em-z5oR-oPqUeY;#Op~}Md>$cDy%#&T6x(mYR##SMXjdWebhD6CrZ|PPN zXCMbuwV;*~U0k-tnwR~C<0J0&^~em$aP>2k}ES?!V^g7kj z8l}!Lul^I97jIpA5&1nxf8)lPNb!rJN8AOwqDZ+*_any~H9E^FB+j61hHf$@YrHwE z5U_H}3qbg%>t#Rqokxsr?Ld2!v9b8qX+!k<_0Co0D;lW#LPT4t1LP$AW6+%nMqK(* zDCo|bS(@3k&#DL}^z+53-kvxTb0=I+H?h5niyMq|_AAkcAvxocTlHm!dH01M=qfpO4!G=_>vNnIpee?Fz)y7L;&Tz8?)3+F3R5k4PbX*8i{c0HUm#z3Sji!94!+OJx-kCV8w@}t%WRzpWAvvIP73CLjV5*T z28*NXzUpTXB@lE5=is>yied1IkoBw(sQ? zXcfAUs)LeF>lqQ*U4CSZiix3J5>U7ZSfOH|T$y4hTj?zs@uhF0PMHc?sh(#Ul_2_* zq550Xy*=pV7>&DtuS9u@H+Bz<^iRenM*7Al0(~asdf|C!B^LJk?&-=VS^a+~trszK zj)z}t@G2VF{fO*&sLc9cSdRBk(leCE)N_7$;2ieN!Hb|eBOIVKxS2e)ue*D%rV@h}gEJH! zLXfcAZxH|ztS?=)nKmVscG(_5lRS8p$E7c$)&v`mc#x7395Hl^_oH3Wpx`;+z0vYNG|#il584 zzP*pN0?5t?)cIPxe|ve$u}_6WHklzB&|L_Um#)}ML+?ig!RbZG8$f9++SBM=$Up>Y zWs9|~LC+f?&WDcvEwk`i9GWgKD#hAgQHWU6jid#hJ$&(tmF|l9%c!80<4D4SK6%_XJ}x(>^7B83hrDKOy*s+gz5HZM0tS=ImgBLK4pamt zInj*x19?k+zRoR(yzy4OLP(WZ3qpE8_AkLl{V=$^2+t=&58l}Hs1xYekc7?Jg)S~y zK)~S}av#b96M9k1rNzEh@c>A$-AiAcLXk^!5$)KpPphZ4|cqBs!2=X@A3s_^Lab%L~OC` zSJwPxC|&1H_((k2Y%JQl#e#q)C_`wb=c((bwf*!vWz}tmvMum2>Nypr=0wD26N1m`aXIt~j1$$dD4m@5s_aeROP>`LvRh5CU)Lfb#WSHC+o>f&wTpKw0yU|)7XB0DB2oqJT6<( ztBgT|YZG-J6-0WN5r11yg52YghWuc-oE3tW&zVjBZj8h(s?LI~LuU9$3td%z8v(tK zEgbK4=Ax5?fuj#RY7|cWWZB8u9h;O`2WcJz7cdq~4aOJ zJ~3xyy%^rbE8BW8Ifn6o5INXa)v)f~w2Yu-iD1=Wk@%~RuCmgG#5aANkzGf+b@rlX zbVETRX0j(_a7H5)H<-BEAz0W3hv^dRoAaq9M9d&GsFm3vkBgBKqd*9{;X zLK3G|KQaJzH{R2C+vNCIPv1Zb!HA>Bt-1F=5lSPCN>?!MkQ?e?csQ2KWVCnqM&~-X zR=85MTSwY7vTqV57_5QP78`3A;Ww49@JriY;74PFoWDvGC9-V4^W$ z6G+rV>~GPxt@a2=P6RAG!)tlMrbng16ciLj6`ger*zQUP=;Ch6_f5q9~IF6eqq z>=49yXjr{(gg(@4t0`*+fhwS2$Jer%<&{~Bv_kB;m$t<@qDfkrz7{?qJh1xkO`p#h z*y*GLdw8C`pwC~=&#$ewwR&FQ&iE6kR?vrqwUuUT=g}ZY{P+p@$>J^{T<9SGzI6*S zeO8pw+<#Bm(bv9Q(7S{+uDvrh3+;#6us|=F){7Do$i94&qSq$4pl)`{3B;FQ{;yDg z9BlHPE20mu`v&{iaNF;1WD?ZE4m{Vck0=xoX@Pq!siBRt<>EFrMWHTbjAvO41?jb_ zUop%J6kicIL0!mumh%6DnV#N7UD!%T;h_10F+Vzl-sRJC344#>g>OJ)s7Bb}S}F{^uM-B%G@1tmC>_Q(-SEb?l_i_f zEe3fZS3z#PE+i^s$9F(bAn^s}97L66Cl^%tG_myMzgs#@3~C z<|zvg!xE3dAd4=Z0ZDjGh)?n!@?Qz4+y)6Sa^#S(9x`kEmLr}ZFg&jL7iUW0`+)%+ zAB&JDWM#?jOE6=#D>U3=(Mi}u?vpLlR(XYw6oDz}o=t`i#tXOatU})Pr)1{}CFA!Q ztxm&ILL z8(Hl~uM<-w8lGV;L{9Mx+EyYe0TT&wgsFMfB>SN{;52%c15}uIZXR^09ws5-?JA}< z;2H2k3|U$c=UDN^jlPMoF_7+w$@q!k-cd_;f`!E&NiwpDUc+mgObIiy3yB(3dc`IZ zGCg0taHzG9r=8cCkl##QvQJCo>+Xle9IpW=)Vlx{YW_-SO#v|cUxwc>Gr=4|=y$%E zFHk7{b`>2cU}r8vj|h{(i+UNv+>kXoIo8u3y+cnzL}Vecfv^W=$V1>`gdmR`&^v^D za(|J|oLO1MIB=Um0P2G+eot}}LLa+}>kOi$6dbs=HLYRdSEQj!j$=sm*ua2o<|Mjx z?!GDNex>g-vg{i*XvH9BzaT`+&BCb=ERgv4*hJs>=vbg5wD6nNuJzjnPE7XDyC^WN zD+{|Q?qIgwr3BN3;zRh%t(!*d`rK>R-MQfupe@ZNTq1-qeD7ZGkH%v|JtroIdPXqP z<;Z}(OOPV})hV%m^k>mG%5T^t+F+|(ub6{ajfu7$9YKz7Y;3?AHnz@0lYMnS6$;pW z4{S1e>?rW0Sd0|A?F2r-t&O~cfWpz@Zi~XZgTySQo_Q7HYru>9E?U-=yc17S6csmYQUV z2lyE%6kK!l`pVWVSH=ep+5h(J*Z(H_!Hn;SHETuL{#`9|A~HW{@`_WZ(%Ibw#hRZ>A8 z8R|N6co(1mEzpKCh4>5KtE$V>i$%$jcG+dDUmD%cc6mhW0CgnS5_1{`EiDK#pF+m*v|G&iqv)&krV6tuy> zS~8{r>6RcR0ATHXVeL3QxhH_gjjxtprx@T9v2Newi4^L{hw8+VDfc!Z@n*j|K|t63lllmpA`>HH13i65dwQMQRD^EfVd1UDA&a|O zVQEx@)hg348QVzQZMH0oXYS+_+9ja$W!|Yjx{$b93i(L*=9|N(C|Qg|z)rnv9Cu%> zaHxe^Y8kVx)Lb6L|BmUlT$t!TK}NOT11%Vlj45o6}{v?eKpJ( z+R@Lm#>}+b_O6-f-D*COGsJE{s38A`-6)@fqhOGlI67NGTySfNhy;^YD9e^}ZWBwp zIpvmgT{Qmdn@@rYeP*GY&GJS;)co^mSRt`^uIn1zvr$0)jh&pLoDfOx?(vHd1cfgB zz}ZNaZv4LNtfLLCy|+rV#sTBZ?uqzhPrNT0b)jk@jkQ08BX5CTr8^PfTYhDhZ0yC^ zo)zRHP+_B9H|+f#>u07jCL`ba9Yl>Qe4#d*S(Xw@+g`(*aV0{V3V0Gw_Zfq1*7f6p zqVG~(&!=oWJJCKC!H;Q4?6U&}63@SqZx2*g8)?eFS!2He$R@99^H#oxB zS{~cjbOz|bfI@&iG9f?{^7g`ZM zZreUWduLa8^kMX)mTqFV49S`z7Iv9flPute{=qy0$&1xXlP&NE3>R% zkgH9{-7`(hSToTpizhYMpIuH12Rfy1u`c=X8n{&Monde(ez%^2u&?s1H1T1n3*9dD z0)zmNB7aW^b%+xKas63J9LmQxP(b6VA;h2D{-x|GDj3jv#h@tvDBap8>ZzNQ_31X7 z;a8U**4DBLx8=cl=js9RfrI)~vl}=|`M&(;V{r334k}P8+y_dSo+UF}KQY2vy}RRq zBG^r4KlyfjdtX{i6_5BVNP-2v^bzMbl`!~+Zbm*jf?woa6+gWG;PYmD_DQo;+4W}I zZu|7md{u!VSu2G{RTy@|saZHDp>9X#Faq&+P@=5&i3*>6#|DrQs=LykUKVjxx@m(t zzVGS2;rbhPP4vZg?bYjst-higCBLafRBDJ!*2^OKi$&xN&zyx^7msuBYGJd2caNj@ zzw4>pq5YnpuEB9pc*xp9&5E3xs$L5_%R( z!)J>!m7Q*D`6?TQ6cR6WW_J!oueQU{jS}>}D*N1nioPNL7jzT-kvCHTEgDzHyRw+V zu*;k4hVUN*_v&@^pmpC+Bc!Vs!@f&A2`mXLk?B2hX8E5{Dg`BD>+cetE<~q*&+L5h zBc5j8-`t>VQW_(oPYHtL-a`~9{=$Gz5cgJL2l7G4p$(y|4;uIK3Ossqw;|^qe9aV2 zS(a$9^t@WYgrszi=CE9R;6^_3(n8pvo2rnu%7Ra#sRO0OJ$xOhet$qtIIc$0P09{R z(_w=Lj4`I*73Aaujd5|?*>((i$lKs8cu97u;^P$GV)02NW$9^Y9?eyz78I#M?6>04W~62ry=e69Gp>5xOHl3s#kJ zqSq6g_$rf%IDVT5MPDeJV|{@x*m$hIs)5hg{#0Vmf!23sg)8+~8dtCY?cu$5ye$@_ z9;^0Ik_NmvNu=c=WA4HXLK4tKrJw+bh?&OOHHD|78AX*Q=cNP8Gij8z1Bh$mdCII)ST zcaCNxQ=s^x8i6J{O4gH0oD>0~`;Y~4|6HL3Y`yVyyu18g`zaVLRMlN9pn^-4UsFdS z%B;m#6B>O!8Kqr!Ev|I&xH2zSK^zZ-BYNPB(Z&Pq=RaB05m`|ftP9^^p47t0Y1Um= zn{TUiEkcQ#KfhY{usz@{FtGYWm|$hMV=VX=2^Z%>bD=|pjWFQiJo%l-@g88L#=G$} z8-sld>_PHf3^`kf-TN)I*`=F~c6E{J76D?_$) z_a>I|){Tip8LURSr3fES+mUn0KfXaYlgrM}MiM_&$G3?gt6gZZ#i(UhuEWT5xmLQ5 z9Zd4uZit~oQ4Wa@)v&dwH!VuQQvQCewNc?H$y>&7QGJ={pO?P7!2wEZ*6QUk27EdG zE0j2Uc%_V0Z_<*W+TD-Yn4UdHGfeFBq_5GUyGe##C61X__W=OZDI$t9?suL+RGdgL|&m=jFHDJ0nQH z4gOZ@2_19;5d{Zwe?4V_p(2y@34^UqtTG9q`W%kQU`SdBKlhTf)lP?|(I6Tz|4y7D zKNd`CkS{NNEz~Dz-ss~`$r3kPAC{rs=e40L5xL9)UGWV_Us7FJT$s+Br4|XgSCJH@ z;}P`uI9AJ4 zV2Gfva&WH=ahl%-LI?Nm)BB8E`9Cy5_oPh%5k7gTz5y7LE+43#*eBd)$EINsq$SZ! zqf0ch-F%h)*kAxDR@MY7-IxGl*?oV**N6jR|M0ae@m;Q_xZJnhxIun9PCNy`QSy(j zDm13!R3f~HV8*gH<7SwUXW+xtbW>74SEP2~q>vYaN+F;5dByryx6I%--*kJM`KB8b zwj!PLzhr5n1(;;7`xcOxO@%K)az*`~9OmJ>YR2`<^biw=fyKXP3Nqap^Py%$QUi8@ z6*pw-JkSmL8Iq({d`sxT2y`)6a`n1pfX9c;TT**ZXGo&~uKt#zYd@k){Uceb* zyM^(Wx{4Kxyy8?S+)*dpFNWqn=i#r#S0H)7!d)2A>J?Rk`GKeaVq|2;ys&av7ncLH z#Mc=r(h1Qi(n7=Kr78f5AekE=AV^Vud!4<{FsWe2DGWp%D86*V*KPwlG%Dq%)6~*w zKCzryBuS{x4~i`NVa>o$q6tx>WYK>~l89#A3r>OCMn|oX_Utjdj6~z-Bk2@MR4-l! znT*6Nec4e4R=Hi>Az4mSp`r){1s=!Swmlkot4QxX%b5`k zjv`4&D1B3Lm|^ckrWpuj4ORe`_W$uJJW;0;o&{i_5RP323U(EgCu5aMH7G6k$Kq?y z*We+S9DY6*VbsDO{aT$GUaKQ?zBZNA+DdFkKh^DGcBWXqkf= zVP|N^`>8?06KkRTcAbZJz>VJ9D;#4{X@U+Sihn78YhK&RiYT9Wc4^A0702LSin~nE zfNmq2bZ4W=6Y%w!6MA^sM>wD1IR3JO_nm)f*2!II@wa@@*wP9+v*-;QTP|uD(hM(J zoVk2_rt!c$PaJ~56rwReGjyjNq=KD(Wm~y#gQX!Iqxn$1Mn0l|6#k|zp(}Lk@SO6Z zxt06U=Ui&Mk(|3xeI~Ob6c)m&w(YL~Bf*pOXL&*Ca2p0?Ozzt|G%(rgiutY=3?ZMe zJ!tNwJTG~pOVa6tbEM^WkIMV`;oLj)L~YorS^2V;8d1a|oH@zNlsQR;ub0>0y;pSC zZO;hJm;vzUtU$%Uw*0{85X14H)&{S_}*J(%^WLnWPdhkm5wWxPX zF4MFP`{jFtNBpyJXg(=%UUW{Ncf-o*Gk}K)0~l1+HKF;CF#B%U!+GoR;~_*1i7X!K znK0N_*O$+rl96hfbX7@(EB|Y(xn!ReU_Y{NSoRZQa|l)h8+%A2ko?U0Vj?k%{@(DX zivP-q&OWN4(ANsuUHZ2TbgprF#10|rr>E6;BMBxBz6R+b}tYiDuYfw160C1mq($%@gdIA@^e_N(eXlQpR1McIU& zvajM<($FfT5oy}&b(33xXsN(?joFc2@%$a}$T9TvFL zXwarKmSvApl(zhDr2~;uJ^W@7WD0xyzU^u3TklOk8YISN(#X%TZn^`)`>v}9pS9dCeRd|Z zJ9b-N{6^gsqd8}D2Ev%T8UBU8sQcI{AZZ4YXM1DQK%4eYhUQb#vw?}@;uI_WcSu^@ zpzb4_Ns#4+$a^?*Cbcp@%f5NaES_G1hZs(;Qz$#U7^W87uBcCxflL3+c|xA-5>m)N zmY9J@-Fiy6Ow!<5QZR<`7_4l+F&5Ym^ss=I_RAfd}sMZ@Md_#W{|-9MYtiQF?r~&@xSrL4#&E>2;qD^48{})HwjBx z`?D#qBx;UsEn+dq+kZ4=j@99+FWVeBi*2y>x-|Mx9__b+1Sn5N?4MNvpVbtP_Zu@> z4q*ZaH)Z>yV}NONbfjkp!;vOqJ!7cP>xmtmj1SP?J-H>y;kKJMk+F0eD!+T?y;uRl zLxgcZP*YAnDI-2P3Zx$rpwg9q8Ef|>tf_dg+OQ{VqZf(P@JRO#*pD~H)tML)m-Qq> z8s~S#5*W6uKZ?DP{e#;0iP%8@WZ&q}5I%TxEUq`m`4ze_t1x|$q`Y1*Js)<4JQVQ; z97&H9%j}?L0|MKg5MwNI0WO&=)P>KsK`mf34le(xn&`Z{^o7THiM4c_(aV12Dh6+( zD#JXkAhcN;o07=nzPas0Aclu3j_ui9ieb`mZ#a&jY1SSFA0meHj{3@?-?dg0z}%ltEuW#Ik0T_%V!1bL z4SMGF${6^ln|PFR+}2kIW|I(4meM33Qyi@A?2lgEujeoDC{(jED1kz@bHc$*ZxK0P z*pZzh2V`)-*kRu1-H#NDl;ts;5++3CW$&vvV6(6>>?Raej&w`6IJ6ZW=$mlJ0PXNWlb5P!|_|p)yi}pJaCEk$i8!E&^dosw6Uf^nV)@c;}##)MO?(B1eXAL9I zSCMSlaO3x5XMj)oqf|QPBMQBMHfT~8#B0wAocO*}*|a&R8Ei1IJ5K)w(vfxBbc;3v z?}J7+*65A4SSTNp`)C#)V>1B^XaDCmIhT{VcLC4p?)8R@;Q+V=uS>5-f5d)wk_Kou z(|hdk-o==df9llX)+U~>9qRXa>eyk}deCwn)Lr@s;But8T^%&!S(PQuPi?v9Y(;>? zIf^%h8$|gC8U%o&L`RNH4)=`RrfUmf7O$+%!A@^*_!wK}J5xKC&!8b7@~E!X$K+D3 z7NLfc_}|qhEr1LqzA%ioB+$$;JtpAJHlThDgW7UE0d?W2>j1U=(GbBK+n})TC;7`a)M2QJQp^!Xi#)hXvvO$7EavXph?)=$VMQU3_zFU?IKS zl$Rj7R_W_g(Avn*vJN;QoYL3U2Ztu&N8S81d7zl8BrYVEj}Nu4HQU3(aVr& zm1u>c$oTx%vsMG*GgEP5H+F_Uvh?!sgRlGXut!I#f@Eyrk9XPsSvPJh;YXk`0Mb|B zCS7*(;0%H0j*f8KClK^S;Y3Z8Oxz=&P!cTFQq!WNW&1 zITPFBf0$oW`Z}UImsgI&KiB?=b+n;6o!EU2d4+T73;NBb0PVNYOh-m2?b>tGo`VPM z)C6EQMBAl0;uLeJg0*C9GBGA}4*%w!pJ%&rXky^$kr$w1>RpcmN6aZttum=S-#FY&?miWL?Xk>i)V93`W&}^3K0V(8KN)?2eXx zRD?K07vTzW2Tvz1bPbc+#`XHZapS&A-)Ms>LFWLK!n*ncn$mL^FAAA-^Ikmu(QN6M zU!vYk@&!?!)XYgpVm$@yyyF(Y7yr9HVv;4p6uC*QEK@%@*BRIl=L;fIX^o60H}y*- zWcgWD%Cm*O6HJK~8>{q|Iw$R0KeZ8@SHazZ=AB+DzmR(I`i+SZbj^+)8F8{xPXE#` zY?EWsreW-|_0!4!5GCNXI^7J5MhXC~bo?~TQpYlIM5wv-o~{hujoVgt#_pOu3lyS?=!OBMRw(b_ z?7RUkX5L^zc6pyTkBIz~wlh9%5 z{>rf}3xNV8AWIeQ@8)*>WZc;gxl_LRHv^O!AO>dF6wT3T5QbF~=fBLXLMMDg7brX< z#0mILM~LyOw>`3I2vbE#ATtlGtdMoXgWOFni*)D>@Da0L1-V#>g|;m6O!YTYjPu%v zx~N?yvzOT~e5>@%IwJ~yIUA)J)bKzHP0SOa9Zk%qQQ6!%c+9WG6k^Z+lA@?KA8g

?%JDDhn&mKPfz&gVlJM8RC)t0-{=sYBy|7sF~e0U>NKzTtEJ zu6kkDaQxu@?p;T3i}%I#s^DgMB(#*ErV{78oS1GVvhu3}oZFl=O0_)3+<*XvJ|5#8 zqv{mQpj3C(Js5XMu`)c`A00d~Ierw~f%=b(jZVZ`v`iM?Xa0^2AHrq_{-%r;rY|un zF|}XMpvc=cU=dlm?U9k`#fxlmG^7FUVlr7fuVlhl$&nw`SADfi-zGkt()~5FN!4jR zSELlwlzzjHEi0H>7BHDLUzz1NH?^Zy1hwo$G@MKS#nM}n1t`5yG|tYUp%y9AhCTf5 z=GegCI(0m==jSz$rlq#0@q-Oj6hgx$@>=6T6>v<%PC~z4)(+w^e-E zP2}5v>&2(l#CX(QfR~V(@sHK%WlNtTE7#s1Cgx9mE=1@kMwi+KJl2LN}C6#@6ULm_@V+Fo!gKZUV6M9l#V3_U?YMJ@ec{V*nPm&};y~~9C z-&Iln*|~(o<&oBDnMpvNMFb$BjoZ}OFxUTYz70c2|q#@rT#Xar@UvMzFdDd!>?_BKM7uK>#DHZaxytbQP@cY z;PgR}D~0!0#(T!7GyLe_U~|*>@5c94PwTN}L426Y;K)m?}O zD*x-snHcF5!`N{2QIE0FFXI3ugCMu<3X@`>UGoFjA+RrhuHHW|*fTLSjxgSc?GHON zaD2cf0$#^!ZGWOqoWxmMWbQj69T((#<$56Wbvez||DNXi*l1ATh$JdqNy)ff0AN=P zCMtrbtw({0Xvn@bpuDx9U-?PjVL~wP4Wn3;266FBZoMcdpa0i7NC~{wO#~31MET{L zM<C)a}g(s5%O5nv@~z9k??}t`v{t%Jt!DT45IAaN^$&+?2bq8M3~-^wIF5b)3Ib`0#%DkbC5o|GGsRnxO64SZYD4|u{C%~Q}+A> zeZgJxEEM%+F(p$2?%T_!in!;KooL&Z8CDt zX{3y2(8&f`6zohJ#}wr@{~LAe3aA$-#qhC!s0HmzocC{Xi2l(X>c?%EkFyuV1}KKx z)aj>of|5Du-DKtKN{4v=*%zgK1}XC8L65%_iYdIY4mE_wa>aFZq3Hbcs@Ny>)70M; zf2uzIxC&?ait-1ioY|g9C(SrilCO=P9$l{DA<*uwUCTTN({wV6k45<>7-5t zFq%Xa{qit05ANA9 zF9a_E&T_JH2L2M=hImPGe^aL(1H-WAPN&dw`r%t-e%0mFRQrYj|BZ`iUrjh z$aoze26Q#0}QqUj)ej&$j=1 z4AY5x;U%Y6{&OOEB+nzXbCEMUTwlYm;L#H*vRR_^5pbEr5^8|BO}6gAFxDSd?>e_I zoJ3Oy(??sci@eQ!dp)yqN=;I|W->MoWG@`B@i#&) zZ!0kycvMu9OP{Ec;y_hWU4YbF7x88Msp}ZkHOme`ZHg=i;U*NSe zzXRG26(~5D=^lezF`vsC9Vx(OnQ{2$kzwest8o$wY}r8Vj>o8US8^D|+osqvX46i) zcn9T_Fd4!P58CXM4Y*@LLEb4MT0#?H9a{JKTf5~f@Ym~h! zVhA*Yom-9~yt*9HH#P#*AUAnw;4uLealRD(^uWEFPJiH@Yz-cyE;?UAvAGLfNNm=L z#9iv&_l*;A1ZCIS5XbAEz8H@U4{D==4<2#(bGW`25(p!R<`P1!Fh+?0Wn@lFvtBB zYNg$U5Nr806%1m>2lo%$fg~L#=6;{?p!9_5gHJ{<7}FrnP>RXr3bMDxi{7u;TvG!( z{qBQ;l^<{O-w~(b?oK9%2sYB4-$OU(3c`l7e-%U05p++PFE@x>A-zFd39H+uye&1l z5{$LvTnX@f(|Kgm85-Zt;MVm-rz~H$X|_zx6vvwmMf*KR?s5LS{F7q-=Xp*>?<-Yf zkN34|l*DKum`Q>*%L>}W;czOf)Uqd4gppA^;!Cz?9UZ5|p zq}~+H)~N##<^NKeC}k*fRMhDL;>jjY+KbXL59sbp|J& zp|z*RQ&Qa6Xjh5jCinL$2KY0KnDJG1A#>fMc<0NX?zU)P^SR_Tel4dFiAOiwwj{Qp zK@<5emigcv`VP@Kibw0@E2iv6y#TI+qiw%exiJY@Qt_J0ApDQ<2Vo0{bN9k}1Bk6G z6}7y$m%1!u5(dcnR>@6UeUkST6x@Yp!b_mgn@{i-JHD4SoWM?AC?3wBKJd zsV2Gz+_%_I$GvS6F=QO+uL7{UAG1DBgQ%(7rgsJRuXe>KO{8ahV$5zwD6RaV3VF4d zIQij(F}EodaQcFc+vs{?Llj;ca>2O(C&T`Tr)-442h!FgkYiiDs?PNyJT#8I)nRW! zl4HYSHFkVH>j*R`s76xDy$OswnYFS?h_mqYZjG@9wFkhI5hxj;zhCcru z3J4!AJTB}Lk1XN4KDYX%RX2%~y(fDeor}VF>At!z_rb{yUlZuAEm}tVmn$={GL{p* z0t>B$p#J)9h8WYQ5nO^+qFIhmT;BQHjh;GHZTVW8%PgjTd3()+7k}&FK+k>A>x+L@ zkFT5}g-H)U6wG`MY;$oDWX3(0()O}g_4y-Hvx%8`N=|T=yJZ-{u=5`=1}=Y|Dh(>3P z>XHat{#mGXVmxU!QrztEcbsXHMc`J1kRb;Bx-3k#hD^!*I2V!4|R zL;0>ZPu2N_eP5bBZM-MH-E9*}Zww@qia_r8U_HH*qT(!!EJ&V%Ik33gL#761WqJoH zD6@KVmUTId;c)(uu$(D3q_TRO_Gc$&mTt%}@S8j~X+EFGZ|&eZ`B|^i;jPc zT!VjLg3MA}gZuJ@hf=9@_*BZx1Q$#x&XcaLN)o9FKuga4VSC7mX8j_O4;`PG;;Ie| zf`uoV2A5(O>_XD{c!ejFz7iw%vPI6_LTk5g`kYB=u0`Qi@TJ?I1Ro?ACe8{*#c50) zg)&VO1obvCr!IXX+cFg?!7nfU*A|wmC&&z7JxpmbWW8$|77m^mR6lT_ZTqu;?okZ6 zI}b6|kozStDwiwAdSX2z`Vk_a%8?isTuzSDpfush zw=Bo;ZfUw@%@|RQOJ7XevMdnvP-5}4tGYHy!Zz6O+6aykfAz&C=y82$XYZX4GPojK zqHuH_Ay8YG=yOk#TXJYQ2r&#PF@bKE{FJIl{ePXN>Qqz8E%7-ODVq3XnSB@Bh-m0bv8qN_5vyDLY$>PtrBFs#`utfgk@ijFjyLV;50PS zr5wQK!^~GC$x+uYb5u|;l883g(&hk8fof^d8Q>$)R!{C#`8x5D%12L{AjGs z>~`8Z((`}=3W-tP+}aD(wjkA)>O6PT*bgI78NZY?WKZ@s+o=TCDWsz7LXzR5S9>=} zJXn#;QrwO&M|u(5i|C(jcXJ~@l|5SZzT7)q*u7^nu>S~%aI3+nILnh6>|3uFfPOyW zBb9T^2HN>3!C3nV?m$M0&9N01BiqL-mWmswV)Zs994#L?{)$la+<-Y4M@z5y?&Y z-|U8bF@oNz7B1r`#KS9bv50$xsV_LVsT5Qm$rRNEm>KdEj&3!3+xYToIb;XAjt2ZU*m z74VnCx;V_h50d)jn#gs6!)HLpu&6xkT;iGer-#({W)*)AqGkiEz9<02`YC)O+l(%z zEr>xHkM0`UnHZ1b&DFl61BfaP4^T^+Nz*L?PQ2kLYPd$NRw(|K;@-d;jq}$lN;6J} zkJOG&s&v;q3&&Y~O52&lg&F-(IPz*pr8@(_r3DKZ8h%uVuZ6y673sP|jInpOZ8|~j zu~r;LgSdt6Hvr^Ag85-7Ha*?0P| zsQdXhhNyYIv9|S^IB*N!hECOx@NJgG&R->>2kon`lhd;O> zZq=~Ed6|xp%&@Jzv-K2=!%Qmqzg7OoECXsfs?>pND44RNL0VkV4I1~|Q#Y|eO{A9H zWUO?RNbj}-o0|7VhBS0hO#V7+rLCt?7%ku{XwKB497~g~bq5BI|ED4*V!$E=;XnNNhE;>=xsu z*aeGg27YGh%!WTRs4vN&?!=YKNB9Fu4~_UAz*yv?Rlse)8&I{+HY0hQK;lK+s>u_X z>KE+ci}~+H90EB`DaBaQk+4Z|fGP_Bm-Yq#Og;il*iwyvcp?4XAdC$9{IZSM%mS6u z@W%xjrARQPG!oWWwQk!4f9|co*g(=BHE4ov<@D?eOragNSdAfLq^ifXo50z8i-I#K z{Ao};R4mS}MU^_zm*8{4Uo65H=jLnCi}$?f0o-SlWX=Wblc_A=hZSL)ulv42#|7=W z@K1n;W}m--`9(`;FLQyX=-9a+xACEr$2YzH#H{n8{~Z}BUNdf!WtqhsUx3h_$ipO-#Q zhNb>0j*&utb!2c7N)$s)D4itX01p%OBaFtqv%SJe9ZQr7!3PYW>ypN9_|M8L&jahh z#NUex7^Tkl=}iZDtJ|LvGL+Y#Ju(!U9fE#01KD|TP^2>>pLm9`6*!QaXi4HO#n?Iu z_MtDL!T?FN)YizRatz8LOvhkJ`)zgmBrg}AYFf$Mk=)bYhO$MJ&x z9*#6k*nqCEn&M-tbJM4mlGHV5Byk>odxe^bnSCO}a(W(qrElM(>#s?!2d8YQA4Kl~d4P5<{dn_PBqa1#d?3!SP@YO=nA-Grs6#}rZ>&JE zJ&jnS*YSIr7h0Q0`zOo?;8Khk;`TSAt?*$sW}jK@g^DFPvgd43bIb=xIS{45cX^5) zT>3?XM3JAd8W7>YDAE^EO=@<*(HLTi)GyXzltgUSj)CX#kp@42q8-*Qgvm{yNl#tY zA7wRDxNFa0gQpP-MvL^+qR^1!-T&8Kvvgik;4|JQYF&KT<3W){^GkSZ3 zQiHGV_%1o|x(NIQE}fUqU_j>Zo~-Y->nI9SRGHVi;tpM$ex+b zkc&1sLmXUEzG%o~Ah}o{GA{HNtuKP_!!e)fSxO9%S3_@*ctGwa0e#j=Zif}-Cw&Y) zJc8OcBc9FagN;>aB}R*HCcOHOAqVRq1EHvwzCwJXYk!yK+-`b8uL!rznK?I*3TJlr zCQlQYY`$*uk-1)?aKg=crNcGggrAV~xHD>i(3X4jCzF}wN}Ee<77 zRzF3+QGP~9NQSuEW4UsUI2Cur=NSHvLZMD8;+pZgi8AB#KIhi?Q*qX<7yeB=(0ZzqyxHPIv*x4hgN`Fx9m*iFz|Y<&Ob+Z7jWJNX z1gg4V(*qb?8d!k{k@jyW2WimxkR)a8sq1-jr5qwA9#Wb0TKp7B8+B!Va9PUIazCR2v){Ksz$MU*b!J$5%mfW7Fpm zv=JlF#c?dTqn!gJ;##ccft#s}*`H?Q(0nCb97KU9vM-$?O90a%_(os>MHV2(?aE@V zlwaFTlgOhqk5pF>MYP-%IW`hSxqs}$gv!4aCM;)Wo7rsx z7rLYzef~{go&h^5e%ZlTo@OAjWc9|-G6Jaqy-vh`>GNTq33$n9K0z8p^-`gXru?4u z2F+J&&Fxo^CgP1w)9;bIkG1y%n4!u1CB4oMf{0F<`^!42m}VvWPnQu9SDx)2Ka+q_ zOWcNiBIuQksj%F~`#jpBn-OI<>0@$0#jDUTgNIO3{wBNjFbveUqqQnsrt|ZT>788hCOC>Ks;CZ4dXvF`BDyIs0KbP6^n$>G{7v%&#pBV=9r4T zz>9>m3vZ5av0IFA#NxTQ#>>x*82o79ZXR73?2umqYJ+G59y-dI=4aAWe}paz(8(2w zuvQ6B4{MWk47+a?7&QFS@@>zr@5ov7zfyLc;-VK3bD{iTKZ(r%`JpxLEJ8(#p3N_q zQuu0UCt5~(pDL26(Wf}ZFfaTu?mijyxw%nuT(+^-NzPxk=|0Pq!m@M+u{;xxv}}*8 zBYRv%FMWcFSaLSFOfeQ;My&c7jba>Z>kJL|+%f5USD;McG}hi9la@k50|C5|pitqR zXj4SBX-TBwWR_jZ;CQMhT+Kex+IyhFyh^iF7bPmAF|oAOwm24>IwAxm`SkC zGm)N!@x0_`3me(+M|JeB9E;ktcJWT+K8hCWuEV-;qqPsjAm=>6s3`YNp_TS<%bwJ? z`#uwc`QGA@ z4ScUvGsK@#c&rJodpd3)EU2)m;#pg|{7-^uAM5r%(dy~0HGQTNw#wO+bc?U^zBlk7 z;evmAfMNKWmAAmJaF0((<}rm55EW?L{x1-6EM`Fz=g*(tJ&cq*c!fkjd5$W01BnM+ zxelS9oV%#K1}V^}D+=riPbECF28u!O|3Q89=>;&HIQ7yEK2bbU!4pxJnPvSucHRgN+Yj))H-SRee^e zHx9`&+F%nUuZtqEAZt7K-EhOf8xuF|cNJv<>+RwCWnpb$cB^ohzp0L-!n7IggJNvS zE|~d?v&crI7yy_CHPQmpAc?^~?2D&L;~ny?5~qyBo0wlTXHezA{91&=?i2UBbKma9SS0k%lS5n>cS}XN}Y`h z|4o~WDJ+gzJt8MiXG599K8E7mk6t&tgYWkE8`S7vAl*|54l^EPpS$U)xDZ^-MmaUd zkhc+NV5EquY9K<7Q9Mq$541sZr|fb4y<3j=wUGyQfu9U`{dV)NI^LQ#Uu2aH?zer% z{_cZb@sIa404O-frJvRNdXO+NNj-sdFJkSKULV4+1nT^6H9B*lRM~kl9*xEwLdk`~ zDs)GkPPReC0(187C%r zd>Iknc@)Bcg_20H;>cJtl}!XmXqujB_P`}BHaH{5TwK#PGnyR7YVgcDW{OY>kt9tK zCZ4S?U6{@Hyl3FSGpw40>LI7VC@m;d%w5bzXljX=wsPoJ4SF$N2W&45Qj} z!KzQ@3@Yp93@n>6nDyc6IqH_|I+2MbbLkrufenAkkZUp-m{%|_DE|KS!^bb9Q}7bj z(K|@-2l5~9LZQ;NEWUl^q4_@CHa_Ml2*wTgAKmH+4`}914n4&lk#D6@XoRki9x%g^ z6b^K==<#kP;rf#h>LDyLFUYNr*zmE7QORfkv<)Y1f-_IRCy322Q!w3E807iO$a&*m z{SVLQ8T7CAE)K_a-`DeTtUesHO$cU5n-4%`KD#;K%1h2A1FrUneBUqI{O>c=<7{-B zY3J`*zCw2)euUx;wfMx?*ys_=4Av{aMdBe}P18)){-g^-#pK;bAYq;F(8vyLALbOb zPKXTn%EhZi6y`nDpe7+6g*UD}yQVGShenT#j}AtM?4AzE9nqNoYI7_;(+KE&!lf;b zfVGLYbbPcXC4ii0uHOuE4cE5+I&%BCgHHxLBp~7-T}xJ!Dfc0Ge5e;yq6byC=cm)M zF@*pY0cvf#rJKytrRll3x+mfy+-7}6NIqA$(8e_&~j=BVc8W}EaTHwwUNw)@)N6qpC;@QpqU-A zKvS-;UZ)C8 z^Q~4c3cD}8VhUA+upG* zVfWWf8Ajc_B?~J7==R@|tOnAr$puS6c_g*!dLoS0mLjvs>C?atd%=ABR-@tk(QXPR zm6^?ZvR(+;Q~N(gL`Fa%Xwht2P_Fn$axx>*x15?u*|4toTRT1-F-h#ZR}d{vr;(5X z;}G>q)9FMwLs1VHllqMuEEu@w`94#VvQp7P#Rxkhd5A@L zIh6{}2h9{h?YC8(t!13zs)2OsUxeCq=WvG6gBOu`y9A$w{)}KJk#o3Ww#S-Hporo! znoo<^ntW~{+D5|Hh$LB{BtBl6}CrB%T;`eQ4XwI?l2wBFOyMS0!!s7<+x2+?nI#@UT_D@N>m z&(m~0wSyFB$_>#y0*u&r@jh}NAA^%+0+Vb^(zWP?dgCquP9)n(E%KEjGXL#n#0c7c zo%Z>#(@GJASwyl0b!^Z#NM=rUt)^|t#s;Dz$4762lIC|PlQ6*At6PTwS_UB)?vz%p zdE_2!B@B>%Q4IhXU0H%kY%;BMTT-1_{O_rqf#l(!P9yf0K5~=5>LHr}sb=j{Ot4C^ zg?iB#$z%2h3pmkB%D=NYj8gL66XR&wHZeE|Q1}i5=t6{b--?`aqsv4mC_X%f?{UF% z-I?)?m+D7QnBj_M#S|?5Za1?RYwrk)vw7l{%js%nlLt1$wg_Vz@XgZzTC^zEo6IY7 zwVhGFIlFj|N>8dEJ3c%fHM1-xxF4dSnM|~I_`rVK zvsfH-`OjD2TR<9k~P&4^k42p6dGr%;p8dGg5bgJ(2~%=x1jUx$<2~CZH^- zy=3WWz={{Qf@07)m&Vm3^x)~j(ycOp^FNJH6EQ^{NhZp_vDWNM=}(+mvG$6=e4z8ea0{VRH6-jH5xqGkRqjTMKsPrYj%kRe7U&F5I>i1tNTn76faYf zHN&xUbPnWp=vcsU;)Pnxb^SWyp=qxf?c9{H5ZAHBPFP<2u`rNydgb&Pm-=qJ{<@g> z1+vfIgg%V`5m>aXX%J?Y|4?Pg8*ru1ne?|8#Tdj!Zg{nxdfy&_-1n64vE9XDq9OAc zIyv~chbec-laI{$urob{7!6xZH*I;{SG`)^pqmwGP`X4SnlaU5DKbG!it3Yecx4yweO2fQr@wd`? zTGU&^&;Qofi(7Zw;{wNJj>fuZ8kB3RB8Z+?{>+pR6DNNKx^RlByX{cL9BJc1zVc%n zH=nG)af3WaXq|)~x=$1OeJ&~~&x4+H1czRhhfA@lnYcHfTwZpySBFFvzg01dak3Sw z^f+mwW~1KTZuRy~#CwhmOk(i0?m@^jf5$p>1%8^wW8xF2xq#kd{MREfE+iNS=I9k! zf7`7>Uj!)W8SbzT9xpJ=_8(V9MkjkFTqC7@{QK&|O#T9MKVPBoKFS=d6Vv9c5n-I( zTP=Rx!I)HdTbnOtTG4X=o}9d3$gmmOe6``jBUzyr_u>2W4*BqH*VNCX=Ams^t}pzm z)JuxMWMX9!O@k5^(xOY`Pt|c6D5YM`Ab^|ZeUq-MOB)B%t19PGG{O!pB)uX|(&Agg zD0o5KXD&$wwCCax+%F7lWT7{4n(aAT^*RH zI;Bs=s9lSIDIgz2P9XL2WUszk%(vpNfz6Ow$0dNrsD2MtCzqjn!VZZX1g|4g-U%2A zY7vxjC3sT6;X=rw5*5F-jy!~bmMnNvdU0Dn<{?fFjEs++(0z*Qym-$BQv`rtMfxCK^oft6SV>*^P1EzdbB!Vc*Ka z3QZ~Y)k9zzA@I4j%-LjGMgmjLOr!VaS#sOO4MU62nmmokM4y;eOwh+e21Bw^G-}ji z{Dw3RYIXxQXvq?mKA}=u`k5!6`K(Tbiugf_{cR)DBl;V(QylQ>V?$;?466p8sUH*b zq=^4BsMf<|Q7G3wvVMG0xtzYw=u1Bo^@=~#*;;zjUfF)BwzIE=z-XBTs*i$u<9oJ0 zEzI?5XO(+YXv_U%7yJ31O4 zNB=g=D(yS!dvy$h`$de*AD$i_cQ6l| z2hs-`qsqr`dlE@xmMo2}HjKoaK^usq*}v7JoOc%CF?{5u?^J|X7>6YtM*7Au+qGIb zB5yR7iIbS2P)k>9r~ll@r<;Fex1k89Tf12*9#I-Hbz*OaY-SV97cm>$M#iM*IgFGx zt51k=>nk4JAul&eaSchISg#{u89k3{+~nwY5pwH*3RL4xA_oAxV?E-!;-QfHG^ z@e%AVoUSG_M-t13fa=3y4YYqDL=U6i9!ynCg=eXSi5)x;%m#|ZJJ3-RaPc7rb5qE* zH^6Q5borb4Ebo5AloLyk>RWp@oXk3&Oq|zM1S5)%4Y$yr41Xduxv@~d(tfvK)RRM7 zM7WtpE^&{7pr1%AoZ=6|wEdx`2I<1(^P_cCU%SY^;WQrz5jkTBxs~PO9$x$C1}^mP z>+d;-EKa{@TlA#%`y=EBojuEaH_ebD)P>lu*}-3v`*Ipov?Nq3wc(Ul*8|aPUnpqP z@i#T{foD7n2eHk%R~R-cEO zhzlL>sv*f>{~jypMK>@0Rd*jDd16+|g`pwobMP0@f{$On4B4B*Zov^8;#fF|-+TLS zRL)GJLSEbK=PuirT;#OikcB8_sv&Yi7#)2l;L=$l> z`u-29g25tIGzTrW@a8w{;=3<>Dl5bbZA4T}msr->pP(v4)O4fS_58DV#Wm87&$%xB3g05%KWS?CNvWn}xk}L3cvHs0jB6 zT$>coKykBzPwb^)KFf_b5bT;qyYj8dvIU~su7Kgy>)9Jn@#ys5y*ZMwev&RG*kU^h z*U?`HY1^2{B+~CDiZfodj5t0V@M+NttaJiuke2gxm4o~djBvh|%F@_V{a(yZ6}F{) zUfIewV3gUDo+xc~oBgfjjjg(XQCEGxufEaUw^hw)drnn_ykVK|uORE0dv53ju@4Gg zi}_z;5Xm=ng_)JhS&0`~vr2eC_GEn-tta4pl8@Ha7a3Ni_fDDB8N!U?qDLXM3yC*y zczfoCuXNimL_?EEA5<+i3&h63mfnOkDG&H9$ist_Oz&LZ>dxyQg8k7yq7G*- zu7i0>`3)S;&^;~tOsLU zY!;dkOrI0m5bd)P^VZOmGb-FWwa}tDmiS=G=QhbrAYHli&Ej6nm%E`b3`5a2%>gZ9 zqT~fTTiw+yV6a+9AC3J^*@%)Q)iB?`c47+taT6w@cz$!L8#auE*Yc!MFf0b=U3#Q& zi~L$ZpFmJfMsA{|v30zUE=g-*Pa4Q6l&|R)3Sno*a`3Cg`Y8RN4wZ9qf#y+8A_2>f zo*21!pbE!268_L66P?V*PfU(Qj~pF`6KZm3!08|Y#9Xx--$F^Mjia{>r~bEE2DH<+ zY!A%;o{1=(MiEkc?CssSlEO7A&0={ipQZO&48b ztJJpelfY5#pNt=0m5&A=s(q(?L@^dKS-Opltbp;@Q~N*G7tbQdsdy))RHdI8cZP9k z!uL6!;Y<){@AMz`Eg}?iZ|+_uEYKde?9B`eZv&0sZ5@Bx&7CeeW6;WrZed3A+#|cm ztp}f0VmGseCKtMx2ZgVPT1n)qt>0B|TW@)r%{w)>UD;B;yYg2#hQf|bP|^{!DS3dl zzPf7bJ=(NUbK6r|@6l#$>ut4`pJExUnBlo!Y|c+FoSL2PB!{3(A9u1>q65Y6hiIy> z9>2(@@@H$#hVhMGa1oL?=oqWMI8d=i^%gD6KEK`?mT`UE8D1~Hv1vZXvayy4EG^P2 zImBv2fql3sFzQrs(O6bHY75hg2(jrtWV`wQ4bQw2YpN}|r-eNgw%5Q5L)q zIA({}DgQZj9)4?mg%|;)M~hk#AYN3WLH@%L0xmS`r+pee^wnH;)GS}0L!fN8 zZ}J(M`QavfT46}EFnUT%ub`@i8eAc^g5Kne zWbVb&wyCu1(ELo{4^=_~y%RB&m%_;KaKG>ON@*0EakySz$D5wnE~RiQ{%E$TBH` znzs?WIB*VU-$`8|DKEwtXRU6L-mp|oCm$EQhY(c(D|%{SdY%2}T*qeRzK})vh3OUB zzcJvs7jvR;Aq|(lus;7Zb}));e@dO=n&kd$>Ia~E5FhWh?sc7vMunV!?3-t`7 zeCd}cYytyJT7BV8{(ali*9}wwR7z5%!6{2gXunHR|494D%%*q8XVdE0?+m0=(hXit zI9fj0JXH?;4BRtcwd1L%kH_T51T|{c{RvW+Ki1|ElHm`1P_0iRc4=YX$CyxhI8;Ut z2Mtea{sp|E`A2=P*jI(CLygi$q<4O0V_`ZylsvUGy>!vHEN@}Bt-TC{VdKwgZxgrf zgk~z%wBcld`0T{GxMDyBHdP)zxleh!$V1d^w;~$R~0bp+z;Y#1|BOJYEmw0VKC}_Y})= z2B&E)PXR}Jm}XCvI;2`4Lw!H*DfhE(A6U)2mk`5sr?xr?KuxmychdgT4*+WWaJOu| z6l>Z#XRzC@_~h2(IJus}jY68c<(r9p`o54%V!4x}g|ldjZvuozInPL+moqLsEfgIX z7_fbV^{VJ2mp&P?Bp1VoHK&G)=eqQ&$n+_~$(d#AbDb56`A2b8;#i|Y%t%Sq{A z=B^xE@f{TddXa~4P-%P_+;MA;B(`h0%{Vc_WKV|=-yF8KtMSiIN?6fnN@5tU{Sifd z!GBo!P}m85l`pbBN_>eunv?uo^-i?CU|v3_YYzFP|HepjD(q)^OVA!I-6 zZz2ryKMu2O(d{wQwj0xX1=#rm2=%~tG@X6*;z>dKpRTvA)gDhFBgsp(r)mr%QW)Pp-G!r!FdtU#zp5CVfK)MLi;vEsLRdSu zI!`K?Bmv^po5$|tT(e0;{>H4?DM~~BZ9oXBZ?s4ydn^804T#7EsidZW3)^~GIA}q( z`R{HzrcaR_?mp*utnip^H^;zZ;wfYXc#VC@FXdBGJOt1Cs4#<^XsJwvG}Ht&x4&KhG_pzm%`m88=CJ% zV_3;ioTuo@EQ~3b*D2(dEJ+~%|7=A!e3y88$A?3K0;gc^M4+ZaFsHnGePQ}+A`lQ0 zoi=|q=85Po>MLnDMg=d5xZ>>A4PV z95gYaYQ7E(JPntPKaW!E(ZYuSB_xWCC3;h~d8FY1vs2jb3Nlk?o4WNG;=Df${1jQD zdp00`EZhg4^ksMxI`|@4S*|ZF0uAcGwE^NwKi`~5TIE(gsr~a=yg8c5tR$BDZ8o6n zD*x6hS>UJO`>==#Rf~k>{nQ1=sx`-umLm3ym%}Km-x85vc&;9vo}HCip8l1EG=;S< zBG+dLArefyv6~a$Nx7UJ9P1hB8&H_+JUA~FEQxutEDg+-~a>i{ZASX=> z?|abUyrfo%b9B5X(zmkY5~B|As|&pWts0}1@M$#<+~(z+ihb(?BS(g! zaoavyGO)I{hhS@w0fz`^28x(|Gt^>|Yp+!TWB>=s>YdXm%=czr6eCH?sUIfls|vI( zY6Q_c;27(jM`H2lQrrfTVuF|F(>`8Wf$@M+Bw*K&)nFkCilHxgOW4;=3}KUntr*kD z2mA$aB!yerns%m-GP!NN129P1!Ah3g_GpAXpEf$P!bO~zh3`^)M$2JoYkD0LjTU%S zdNejLGKu7B8^RYnE+5mq89G2{bk<}Fc}|jDyiEINL#(S<3h9}jcZ|uYZTfPsFuc6| z=NlQE7*&fe&Q2^*hNQ1X2#FMK^|C7rJb228cwU1l0uU4HcD%dRn>YjAE3WU8NN(|( ztdgePXlqiwi4mvt)`-)<7zZ;Ho+7^!Wl3rl(%>=H1Uor%((0Dte=O|W401c&k%_YX zcR1su{cJO!cJM~>SB7xR=io;@qQSN?%5$d9R=S{g?K<8Uo*0SVF*$^s4Ey!s6(~L} zqKcDo5-X}%U7wAWM@f`$>98)SY$3|@3XN?u!f8TG=&1XJfGHAca7cxDBO z9}5)T)mIsA@E;rITS>A>eznJF{x5NF0w#A+^p8(=HxfZ`y#rnojl4lgGC6<{4krnl ziyUJ%fe5c=mSjnm96RnNB-{g8mVg4orI~9Pz!#$a(D9BJ40r`E22_YBI*13pUL%(g zIsTvOs_w3y-Gyv?pXa|1VP?MHPgi$WS65e8S9f!qN$z%tpBpmC%x;%}f3dFp2*Qq; z!XK)u{ZZh2q(@=2(*u+hx&3)Z8@3NS{=L=kZ(t_*?j`isoK8X~N7{nRto9R?31`mL zQID)a^FPQ;IMc=k7i3E%u0<$I@%M5SY?~+h=>+3f@v?$@i0kHNaqzM8DDpOvw5k zif^8p^EYkLu_8{R!7nlkHl0iH)My6w%DL%oVA{emThZ#GUB6DY#NxU`ugZy;!eLhmD|#Uk^JAWh zb9IX86vO@IqcYqNiTfj4SkxWGGPmUO43!Ks*NtRsw6uIJz6dThbC9QHJFAE6Eonn3 zFrKy;57-=x+jK#UO~9i>b_Zt-(SU@S4WoK9g)LwF<;%Ci5|y_5M48&o^(h`7a{p76 zelvV$_G#F~R``3wS}dkY@N4+ZbSH*~MzJ%i`7IR;up8Exqy8|3qLX2|py6jmsS1toRc2gF65?T*&2f+EK-UY!SO2uc&rs^GA zH&0qeF$wDQNp|aGABvqQ{(cwwBE#puYBa)F>01sltf0c*;msv+)>Ki;Tc9ZS$9QhFEBBIZZ zI^<`vY=zGTZI(N(qJ@a9S7mJu;Yd_PVn6A?jD%e+Itwe-QQX?(wYiuA3u<(X5S3i) zS2Hk3IF?h_?7=ULiJ{!fAgZP~H>oZ8d{grLS5vy=&McP7UA8>t7k>~plYP@7E;F7{_1{R_u{I)BdU9BG zsufKMe4vU=B20KL1tu&UWZ+qp4DJu6g$WG;zn_D<7;y7aU1x2ac-%C%n}B7yd29-7 zH6dE?(UM~&x>?1aiG_G-U=ESfPu=%nkDb8sh&RWW-}$4WO6YC9L?e9#X9{3Tmp%qd z_OIQa7;Y?Dp$o^#z4#fJp!R+tBXa0u*cLyT_s*fQ@WaUgPsR#s;v6N7UP&G@Te27{ zxfdcsJ9Jg25pS_gD62|uNa!cdsg+yrK+av$$IE~a|{bKecTti-e5 z$Uu~W)f!2B!Vpd8hB{fQxT7{_(X96N#H{7>SK-U@rE^@6v`k+A7G<@+q;sowu!sX- zc^WNme5M@ZW6RIOW%|zQmQ81MZ)@9zXb1aB7bdy#_DFoTaCE>87zySSD@khyUQ!+ znjP5Ca3l51jAFaMCWx(bs^AiBXYPn${v+GwraSPAnocCZG@1ihz4Y-@S8xnKH1GIZ zy?yDNQ`=`omvF2eP7y;d!T_pv{qR_oyTO`PMhP>A&7t&a3}F?NJD*nY;8l0ibchdf z>-(>C6bptEsYhZZ-d}hLlZqH{TM`>b=PsIO`63zrw61$akg=0*+oq)k8(Rjo9;32N z)Ehi)9f3V(lcqSSGk;+lQK4>0ukKlGOT^8czd0hu9MC$WGn~W=vZ3OcZfpmecoq-R zE2`WLOq1F33rrHjSTjtr_hLL><0p%*%DLZRC=EQ59xjrCHDW_B#VIOZ7fiv(#&`Djo}sV((9`$O#h%|W6UDy)E#{F zE5%0}Sj+Ds(%gnY;S9>GUkA5+PG?p`t>zql=p1742`Uu@8$G6V$x^IC&iAn!tnRX3 zs-BHC_RS_TMQ>QP^4f}6hdIlf3T1gMys6c+CQT-38H1fa4PG{`YyUMRWv)}r%Z9X2#z;(?!OW_yJ8||y}%@9 zk3FZKDnbZLnn#L(QW^37>nM8Aj0N^B^QP(P^1Sx;SqbM!kjdoC*qpZZ6|OKakEoAr ziBKf}rZuN+Y=;fK8e1^Tg=3cF0@KF%N+k%f4U9zgoLe98U^7wPTZ&K%B#~Pxr?kyp zF>lqPrAtp;kyvFeA+ivxNsuS&k9EFx92fUt;M3dVSr-&ug;3Nnm@LmyQWMvGFa7&*Ut(OJb*=R2#4_cu7QyGf=u+KJSVQLDe zX1Fp%xu%yTSwxXP*&^P$cKkzXwBz>2=*$hb@G9&ZU0Q7hWm_rMP8BGGdfF_U z`M)MNcVl;tWh1vu{_v8r_pMnJ)Dx3Mv`zEaDv7J{)nFF|eCP`j=UU$Qv6D@urhmdC zc!uJE7~g}-l%O&#vSs2?KG#OkCs?doa5kfoNU8n|tn{#16F zkd$>VYiw#bzZ4+Q|IG{wooY)Xs&0KNmVkQQ+>_@?*{`;C^8eIw9(B02UT5SvtT`FnlXT&7zn4^N}tY5TSrim~qG)`GRr+C*&W7e7K1 zewvbZY@o?GEeV-Da8A8RIqJrVXEv2Ia^3B{$52E4`?=_{&fe}VJ*z`!jU|*CwnE3+ zva#o)@MI=jZ&}3W7t3;s1zWnMVd=WLH5|RRsv}nXDM^%Dg2x4 z9)D{`T4JtN} zk8JaMD|xue-j+1{HlihiyFUcZreAL)qW_CEsj{gVtpeDa$VBJ4=L;qD-0Q-@3Q~jJ zQi4}H$C@%1KT-{*g|6zuon~l@JkcaCysMQMXXYT*WE)TClbXSiVsFCD2Rxf7yeDEp zx0iQArL}ESEuKjVxC@#Qntpu?rVdSqkfyqrE9`!0AHPkOS{ZOjt16 zvsq+5Q(o3^Sx+#mAT3lv|1A;Ni+-vt{*4O~MubdzE=L%CyI&*cXJ{$c`TH_}V@fq;XTk33|4SWXyfG{q**1)-8U-7t_zbr=nEQJ2FuUNF) zzC+WI7F}d|o|Ro6NMY{8^qVIzQmK_o?mNxLBks3%eR%kmOn|OV<5nb0f7UG6MBUeB zdNIq(3sys!{t&c=d1AV~G{Rtr6)o(+m!k{WC*_`>v$_Mvry??+7R6R~B4CccICHVx z6eIl!YbcmJ#GX~~`DINE(j+5QKt(;a$;G|V5$owhO?!Fos(s0h zvzG6suyZI_$lw=!Z!FV(dU9gh6g=>L9F9M%>>ox z6FdL5^_^+bHy`XLMuR5$Cc-)xt3&e>DxR9-^D$Edr;&mPQ!^BkOU#8fjbGN;(d)wt zxX}tfin9;R8)KqzJ`*?UcH>!H>O2)T<@#Pz!aEr610-^ z`>_#)hy21jYqTkCIr)s76k*84$XKi;F|4}-uFN#WiL))Yn4g=WV|rkpkO^*IajO<4 z#b|2^UEs$()V_uz1)1a@#OV;)6ngnUx0AW0UrPEZ$?BJjy2DU|JIG964~c-y8$&k@ z{ZA)DpGUjIm_ow_!IuqAka3*)9|`R2VefeYGcFib&c?9$;KT;xllw3dlX3pI>jafRXN+lvqLWilOBxIY9kD<93gcO~Vmd8}@=d=SCl~=%y z!*(Z{g?4R12gAv8WM0TdOf0Hmqg{9OEQ+(S3=(--S2?p|;`y^Cp0R5DhvXYh$;XfP zPB?RteKP3XQSY^6*xJoKR)sJcGtroE_AM{O72jtKMOuiXjxsnvbqL?mIK!Fz0_sIj zeon-|hat6KZbe#+#e)}7MQ3|0%>(VglFH_8VzDhW%Ub@;CZ+;sgV^Wn(I{LXN?m%) zBpUrD&7qk-F1J~66hwN>=m~q*&{^+YSfM%G!+jnHr9RV1n_L+$bVm5W1 z4TlH5VB52ITSV7%t)<7dEbKHYZp$1TjYiom6~!U^9k`aT*AK4jM#=xP3Y$V~Fi+Bw zVjDmE5ZyRw_QfD%V!hh&#WT)Af2&u^EP1$XnC>%C-VsYuHfD^e*a6Rs*}SH09I;T{ zbb+G9qy3=Dn*LfbQ5n&h<}5V~(Ijn92D0zkqPgzbN0J<}<0U1C(S+cE=IDbY?7%cL zbxh|Yw&YNM0!}Q$KSo^~`36UnO)=s!@Xd^g$)(*Tv?V+`ZQ=%V*ngBL)A8m=yaqRN zclWqP;v%#>l_AbevV;C4s6LsD*dmBy@T6of3@A50mAJbJaW$4GFOKY`qs0ctNHIay zRuPRGTt&bW?fzb@11V~vFBUFbs3xx;F!jy9Def*!v|YrU%t`s#gX^`u2s_KXhwg%E zR_FbDZ6tG@e`HLoFs^9sSwrGzxd77#%4A?|6(X(vWL2CmoIW~g#_`T&FeAG+;uq#y zxW%=n(}f7d4V7Fvse7qZba2(Rb<*IdVP%-x6ig(+)nEomzis*1Uz7WOnhr&^5BXfD z?RyeK6lbUdzOB8~5YS=C$qZt2P2BLf%(y#zm%lTz0S0cvdGc)a6%I-TJu+B8uw;0= z%if*AC~Hn`B2S+iBF0f~X}kB3s?i442Vz$?X>Mleuu$iIoiwJheG2O6ZRyJ^L(bsD zlvx7vKrcuT@ z$)9w6n2Q?{Vsqk_*zsXDd2<*d%-$LPL=1M%>Vs9->Q)POxwk25f0-A z+|(4kX|#$ylRNZj&8+7)QuUuk1Bm8#e+^Z!{&y@?SXVyr>zTDId@kDEl$Rdi;P!E@3dj3?)K-?SjaP1H<%MI5%j->M`$vz zED<&e3v+5q+UCt#zTmVrYP23)_F}Jj+ZfUd3 z4D5}p#+l^3v$ym*PH+|Tk5{##wbLvW-offEe;D~-1~1Z!!JLWBUq#WvHd~nqXVQzX z)G}|?l3D&r7fw-JUZqJYxS(}s9rB5xR4NmVsAKkQ;O>H-K!)ySVHov;eHs0VXW-Qxl zhO*NfkOE5AVwS$B8(M!f3~ShE&emXisPEksXF!nseHylp;UFEpqRG~Q&CSAk?mMPS z%25Wej>-6i4uoUj94jq;+ z5-nNVLzDTim0?GoA$1mhV9M)TKDSz&_=9OYte{ zqYKa7*q*{Q>K(YAEpQC7D#(?qYjETa99XN}9#@`97B7gJ$VP-Y;zGzp3l=YMqosHi zIugpv#8-rFMi+Ij?b?LOoZYpSzKj<4L(NOWvmM6!WGy^Xt{0I+iKfDRl-no|I5NvYDCv}Wg zxEdDEnYW?)EWi8$M&i}zgX(QdP6^|IqbASXdujE8;#%m?7Qb+;=7=3!xP#I|77o7h zja{p;2u~l*$zfciD^hFVQ0N)|GViDvd_WqDM)oRW=&ZtCfz4PmZ@g52+o<>r#VgE7 zXwM7;8za41mtt8NI8n}3fy$J79xUS)o2nI$ss)xa->^k`SarZ)mNAs|CPQO zoK;QlB!t!5z>Lzi8ON?V*6C9=|Fd7Ib@ieq@S>mb^=scQ|sYVIyafh%Z*nrADm>R-tSlD>wLiWM>kT7S`3bks zr2Iy+!M7udI6-Xq3-+afV_;0nS1M+!3HnS!d4F0SvLNo%9M-E@I_nHw#3tq`?LbTI zWx87syJG7T8!|T+9LtlFd{c~T(zq^XsSM3y7r@M3$$=;Z5BBuqXZ>GlP z90$LW9rQN%VR{-oOzd08Pb*EBtsNjnn$!^uMwbs-K68c>*E9QK!d^o`vzqa))5>6W zWadoFJlx@O<4o}j6RJ@Y3vp3Tmg1lL_WrfAx3nLChA^8!B1t6PA`GJQcXlQ>qW=eyWfTT@UWZD1H4ZeG_4 zZyp@F%d}e-LeZnkrMI>!gGiPcHF;Y}=gg*c3z`d3FcdbS(b}ilv&1czpItGBjnXu< zV?!X_Qo5g8={9_GD#I93V~I$4GEOj_esA8eVqL*@Tc!oaV?=f)X+ z<=&hOHv2gJr2MlBO*u!mnB}znFD6cMCdVwD=Qe&R{Le7Toc7?REc|yFhpfW*-3ZG- zS-h-&^9ei3Y6;z6Hy5~%&egv(ijD%+XErLp8ua@F7_j}XWyE1^#xjICqFl!T@RD+F zLTl)jRt|A*nYt!ng*~u2g5_!6{um5zEOq^B5XlO*m}3uYJF&@MD%m&O^@^vbyL!7PPKg~m{n&|HR`*VvYTqBhxt~+h8_FkPj_BL!Lk7|} zE`_xO8o`~YrPiq zkgU$h%ke*#K*qRwnwD;sVRuA>mMC6XmuyX!7<9Xla}rusu)Gc&AH(VxqI1kTj(sO) z>a^AkI2oeRc%2rZr_LuR*r|1T>KJXG;$WRkYo}Sd+`kGJ!L7}+yak)!z0*zzn-06B zH?4J(+Ah<7@|OfcBSN8cP#{KT)l*pVisO+zWzeyk*Qe7RB}JZ$1{3f_=L{|a*EUUY zcw6oYmD_nS?b9+nbz83N(-J*(8>V+B?E+Q73ZxK_5T<~_x|X6LnK zD|f|QJC0Udy&gWysWf+R@*zW5UkPh@GuPp6`d+t9iWBC0VC9)b+pgX&b-aNXXq52W z4s5I5w3beOn4Ca>9{e=RY}A}B#c`&Q25`cibX_BeFeu2Y!n$$@E7=?2qFV1s5?g`@ z8q@&lGxv)aT^@^5?^Z5$E(>|}js%P)4lr}#Dysw^FTn{0gJIL=GZ6n{3(H1U@d}){ z85kKCa#k|~TiZ(7kP#fiZE_kW;6rT(12y zH*jQ)qML%A%x{WUBxrMGP*YipE?2sGm%4>7IF(2{-&$FO15o__edhAOZFMZvox(9B zmXVUdzpHq~(Qx(+hitU`Anga!aKUjd+}zH*XU(16SvP1ufw$BqnuaN?i0CPYG>lyl zHzK+S(&ISE1uwK!&FSKSWyg-C{@yA!E^LKGLrV;<&#(zq{I|^wPCxSgtBuxvPqtv6 zk4wphz&Zy853Si3GoB|y1jj%@P%EsX6+VCb7*D#2kK>}shHV@{y;!doe_Mqcw_^kR z${W3*z(vh9agR3r6AOIdjSiOK+#mzTV($apJx|KdEXdpUygt(Zsj$0KyZ~a8+cwd$ z=N2m2UX~u7Lv9u;!_phb?b$}Vh}1L#^Di=^9!hE%;AJ6mh)Y9MrA$aw1SRwx7~2=E z!#C1(_Id4LBq1x>;xkEV95M>XaXe`g-14>}Je|yct;UB_$aup8F5kJRwu?dbD6>OL zlNYxwpEVIHoNjBKtX{0G__+z`-=)FXwOrViZzbs9kh9E5$8DP$B8Kxnj89lN*iw?v zLR)NZ%KYo2D9HS!r(l6{P8$|om)ZB+ONtj%p(cC6t5PIL`iM*zri*dFgz|7)nQLg) zs=4zcPzKmo?^H2okb7OmX=&Hf*b!gY7saUI93~6V086^M8$1;--q8H{i!)eCUcbDX z4-aJ}YHPxC#J<k`+RGHjs2el06Q7RvqCqR7?bDyd0g5>GX^uKSaW=oXppK$U7oNdUw z5cx8D1SYp_Ol>~zgb%BO4|#wqK3y~N3X#^6VfKm*Y%BRbr+h$CgCS-jY8j6Ou=(B9 z1l%wPr&`;&Y>ST&#UO<+pL;HgQL7PSf|y;>13Vl!ZuT=b`&)JI6%DTKG^w@U;mmsz z_5-49wPA=TCkgk#fe#t(v2{a!4QTluzm~+KTVZ*GMwMWa&3=Qz=TdVQVDsJb`Pg4M zf9WFUDq{Pw={FInEHQ{TmC$09JQs^PeI<^|A^4<#9TWonMI5P}UH0mY` zp4s$`&fv-iXlu+SIU+?Z!LhYhI3m4{FIZpRy}r}mzQAv@UyY#zaJ_Z*tR|PG?O5m@ z=z9YL)r7YSSpIU~F4K{fiDe6x>Z2+#(xC@5ACDtHWEDzw!3BdAbFp}7ichJ=`C8_@ z7@Mp3mT$^z=-#>*yG`x$m?=#mU&f@Cj|1-5Kt{Q9P9q@1#Wm<)aW=C1d#a0Ytvwz1 zW+{q2xGzcf=qxzJ)tjTH(uD?}l86^8AC_~c1ZA|VNm!{F9sH5+Cz?nNo2_7X(I86w z$W0kdD&uZ)bfxScDxbC(q3uxAmIw<){&y*8T@H1%Z(uZ`5&9RCay1r*S6RluMtrVO z8sV)h%!};fw6?CJ>{yEroK`V@Eefl2k$mv#P)65AOu>3-;|xaR&=VmR+%K!9Bn@oo z9k1@g!Ew|nTZIH`jq7j*`b4`kw^y#_|(gTj2b6KMAOGytk1u|v?o#jD|VV+2A z6{ZRLoNF61;={Yxc*w6pcuTL38lv*pnn*K!Dz;?ls>JdSCj80$^9}dX*H*M<97@E7 zsM(Mr$g`N@CG}yVMKmXks$pp`R$GG+VawD0v46=NKu_62$kq;30?apwZY_1Zn1QG}|IXL_@q z#KM*ak!(3~_J$5`-+!DretqVZINsQ8PJEwwq6X~~)Z?LAPIFxBQq4(uWGl$Rlr7=* zFzl&Cg}OI2OuJ^83iKVG)D^JvRNvL*iOwp)J_6SdxS0xalDV09HBKVAAqH+L)71uA z4|5Dcab~2WcXd~nb7fr4efIM75QWo>7}Poc4@Y`Gv~ub5`T9w0QcSR1X4|%yk-!eq z-3R&29G`emrTLA4$OIgxF@6F5Cj%Wtva(b(zOV)0F}vwU2@_yp`k=jg)IyeLA2cw8zlNch$4xCi0durpo%c%|VuhZj|%)=Js?1u~KaMU$)OqXyvyL)~ITGns}< zjJP?P_O>pZb=s`CxK?P^iY0UAuR@dveqkgB>Pa3=yyI7AKdCcq~|sf1v{%V`WX z%N-6g9e6`*h_OhYGr}D{cYcN@03gz^|BAh(`A@_r%stA5P;roE{&lG{^{D2@?8$xx z=Y|m`l>K%Ygj~&fOcQ475?C@=E}(DSe8xv_vo&uP<4Meh(AMEDW4Q1J?QMgyqW1c9 z(lAxa-=OQa#+xYH&R&{nS@ueEFRlNdHMff%VX5rD!1zjW-_jNc2?DPXgJ>>z@JpOL zvB-TIp~~EgoaRA020OX+2`n%RQ1QODR$459(dahS$y9K5l1{FhF=d*qD%nx&ikosk%5Y1;pH_#4zf>Vm*s?DtSFXLq^RT6;B^x~G{O@=r#T0t{5*NJL*; z?<%;8mr}AkqpyatqB!YaFQETF^8RzTfa z^f=Z<9qb`s?WWgUW6q&0t3^4JyJ=R~nH^`lxwgc8?O+1~VnJK$&8Rp8MBwiaM#MMDD#;) zY|isp_c%z=CZ5EtfSZK1rZO5WC|85EILk;=|DxF7WUt@^GC|O4`2p;QT#i1RW^T)A zS$YxfiS--ePN&yxwWs22qDQ@gQq~}hJ=vdv4l)Vi+k-{9&DL9KxQ^c^kYshp6==5p z=P>zhxbA0h|kT0>;)Hay_Nt=;e&7%Wlb(p4XYr);SflxRTQLXMkMWXqdBPDB# zBV@g6lV76v6l?K zStisK-o17>`L?*^JZkpeRSPo)CM{hfT2}QUU9UZsL0w@j1N|GLy;v7AfzjlCps+|CRfRr*<2j(j&s=!sLfo98!UT9=$v%UV!9KDD?S#XV=TJK{o{7S;H!8VnwcFfoDNA7v z#=+cMwey!7s(%;kII~mP`{#)PE~ z;>zZvMVx1M#(V7SIJF8*+Fgc;y_HnSgAw%0T(3WNxac zonX#2*uw+(yaPM=Lk*c|eK^yXb<)HM0nU&DTZ%@nnPp>?1@*bA>8+#(&&JH&1h?`| zB?}ad`m;DRY8&EmP)lN_ea*9nrbi=Iqhh!W)+F_4$%|71rK+4i$I@y^vHLPVHjRq) ziUEp!g2pl7v<%cfEb5jor;S(ICdC+!r`sQ`YoXA~d8$d|vC+KywMBzDP`n`qhm2pK za08SCAygBNlX8DNObVVC`t>f3p32@^pWye4+kTWX{ph&qwoW|C1=uJGal`6Z|TN#3)Tq>)vTqH&4Eug66>| zdr#V24`&<-wqBMrw7;`FPB!f~x+OwB=O~V*iJr4&{hV1*;|Pdij@Z2w%f>k7FvSZp z=S`B!RB4Z*-?C##$0qo@u4FcNUjkzt%bSbYu_c~Y>?`i^ zBt!7T=>Bl3p_Tg^jx#UiP11b-CSKRYv{g#*u9tCRo~dL4Pn~dw1#TS&hPSX zqoJHNr9T1d6c&gpFoqb}G(|BZ7khXl=qvCNsn^^?Y(|#1trL!N0|XD`1G5u41JTzq zwn4EB6(C@#o?(huxH~gUfRgIBu(9^%92*C-S#W$;ZUKUKX9s2g8WvG%n>N$Qp}K<@ z7Fed3ra^-{$re7`Tbj+bs?Nf%=Tw)XPT5PVg}gXhjSoTn-i}a zZj7{9)h75s5~dq8UHa3d;8L6R;8GjbDA|AFXs*q)RAxDW$Q4+g`LPw3*a7JIJrcz3YbeEh}_L3xS9h?Vz}(Br^}`=9@n`opADUV(l3=NuurJ5t#!xh zZ`Ovj#P4+*X+J6*jz>OjXQ=V4w)n-2(JGDR5$uHZ3*qM;d?0V(l&aa7YWCpR!lIoa z3Vkyow6=!M8+bTQGR(cXnH`{wIStm#d~1g_#B3HPu(VB&iQG5(WNfE}>9T|``E}Ch znrQ|L^zQ@1KJcuV(wShCH6&T=wD7XWnlATbpev2487k1S;hAKlhZL98XTk2u;-wjQ z6tO|j1Z2^orsV^yB$|1SvV8F40cH0xqk3SETeZ+I;!E^Qwc6_@#oo7SOAzJGQf+lZ zs2PbkI7bhoJoV`RKyuciMN3a_J7v|}MYHC)ap(PpOzz)9Dl)T51h+<@!_31$+6#0b zdo5pV)e12jzf7yrm@>HE_#ig~hl8=XrBThpmk<9yuSV8Q&!@ZSo&oaHdiN}hC%hXy zDuVg``0ijY5FE#N)qG+GT5%c9z21!IeylRvP(#aS_9A7kXf-|5^=;!r>NJuQE_SoB zEgo8>^C)o0o;lsx5@RKky|cW5c8J-hJOwXYRKc}qTkS)xRp0pN;#o@;%x!C5K54NF zl7V!h=-Yo0N72pcO>kDw!mmxsLrH#9=bSNv>j?n3wn9WmD0xqp$_708yY4QuVpXrx15=pCbXW*S65~i*eDrExm zAhr;Q2$*uSH*`ELz4&eR)fbw!j&&|UF@U}T^?|h`+JXTwn2T;> zvtXVzzb4f%<^}3v_;_JAGkd40T~jS)M9=UTH)(YCFdaX$g@}R+P0xAUFw2RyfTAk? zD;cGzC!_ydmuKs-@1Qc~>ShO%Ic&j6@B55I4*VpkbTUSz#)F=M4K{I3bA^iyGd#C5 zImu#7w zezykuzk3tKS71$TS?5~S{aBIYZc4(EU%j4&FdrZ=-BhaJ40>uFEHiIAPb_%)jp!yD zJj}0bf!P=ycqoA#YYWb3TZL_qixaD6FIet|St<6cTHBn(v-Az=ynI>M7F)*KKND1C zh++4pztmsrreuBy6L7%PIo)19ptFQuwvt{yoz~U4RRYj(;;;=Z zb(WHPM$=$fDkcTxtm)N;!A0z5&?aqQPMcZ>PX_l`J&+ITvbHgxY#|2eO=+6uP)is( z3lg#kVugxQV}C||iETH}d3Z4u;|DF_xr%X@8CX)Yj!Rn#_Oj0MO=>qfFy1D4O)QJ-<39&h@!^wWV7_fb(vj867urs4Vi|2t)+a6j;7u8p7`rO+heUf}_H?e9r;flL!l39dmB`-`(MG}`gFt&(2J>)8 z4i7qzMY{UU@nuVwF1Lkcv$!u7Kcj8gQi(rW)wX2CV!rg(!j3VO?mM!E(-pBa$=9c# zHv3UkW9HIQ?w{cr&-VB^DY$# z4c+|ivb67zd$?zCf80d2v3C9J_ktWxIPyQjnRI45vg#~sDmFxo@+ew-DNU?_f5DcP zyGd?OvJ>6_3TblF10DwlzRP#Uhbsr@LZs<0wwhid#8+?VorDXCyL(*R=CLfMk0yrF zJ6is1p}RKF8I87dHXqYSJ`&yKGqn+DY{DUc(;9(hq!|J@-2x^0W>?h@NhS`+xEfsj zcudc?)G#e^lLA^obqwYzH2oq@bcV>#Epqb=yk%d63>gzVMNT?f9Nv#p`~r(BtA0P- z$JNKDbZ>#ew{RZ8o2OGK>Fo2=-Z&Ryz;lCv3zBDd_cR=WCUb*d@!s&I8`fyk3O-FV zecv(3Vb86bfaB}*f6~mR%;Iwj3pYvyG#{WO479v<8e8fGfk?=HqG_@G1sSa2FSHZu69i1{@@SbsjJ^DC8IcR6XGM zsHX601DJf;HV>E)WO1-iz{k*KpaqqK?w+zP?g2BBItv<_!O7F8EQZx{o5v+IfP7(~ zuy)v5(0u)%yJJ6-hNGc(Vq8<8k&m*d;ghpy`b$*Dmn|2IF#XozM4(7K%z)#0dTsnX49WrH3f3DQ5JQd#kio5)KS2PU)Ma~ zu(YN?E-FwsXQcfunfS4qzAk$-~;K$m!$v)3jnd-%=Z)y4=6+pVDicm1EAgq zx?{Q);|yTRhP@0Rkvlx10q6_2RG=TIw0m>fmSO6d=GXNhU;S~yx1!bV!8U)zw0Nei= z046h_C+YxAf6C}G!~{^YfVO+b1Z5x_09o`V7ywphe~{J`rZQkNag^I4dqZ3UrU_uD z1LRH(SWP|(WU*z817J_Nrhu820i+xtds9GxEODYx^MH>BwICl10OzV&Tvygv%n(4u zQ@B0=9M6EQ#4v7){%rwZrT{7oAern==`65tNM+bYSuustZ%Jsti2{(;q<-<)j0VsG zCMcXItVZ8#da$GcCkvp2PZ5|0gDl`g1BJ=o+s6RP;uCdEA#MOu&X=}87Ng%0uzHpN zd|MPoRW*g#0(b(SQq52e&SAg>D;YqHY6)sVktV3-1$!MJH@U2{Xk);IzBO~V#WjGU zG(h3P3R6HWwm%mD<}u(R&&mGJ#WaQa0@&#&^tB~5fI=#f#l?zIt!WKdC;(v;ak3>~ z)TysTVUYl&u|T1(t)#P9%z#Uh_+(c1%?+x#L;!mj09I%BwQ34W8IYdgD2zU|t^vei zR5M+2fR;xp8t?%ITUIH0bEBFqKTPQ?mNVe8I6k?WE%&E2 zV1)p7IY8f>s0N(IfbC-)V00wN;&cI|89*|*BjCeI0X*RWcLabBGN4b%ydcYF_h5r`7P7nBeNoVmP2K3{@GU~^z8t`EOtn+{$)ihw00IDAF zNJaya47g&32izYNvO@qh5BPad$g>!*W4;I67Zh@}0LmT^jyP)=aOGG9Na#X#3LxzP z_tiDvYyn7XQd>M))c~4#KZ>KsxFlQJqCE1FrF`?weiLfXxiJ*4LtMLcqx_0x02A^kiF* z#kmZ~jB$XL&)0MoTLnPX1qIR%drKOyO#n3pKw$c2#5LeN23(h508uDLG~j#zNHqx% zTE!PI;QFYekP9cp7Yaa{8x(TW(>jZb7;wW%PazgG*2My-Fo0??F{vqB!hjoN9x$n_ z0cip3^njyl8gQuqhNW;B18(ww{x2jnh3x_;a~4$1nNbbsW5CCiJRBNOxLg3LkcS2o zNP|M`KY)(t^w2rFH7M{0qkW8U^Opu#sqEgF$QE+A>Urr6s{IP)l+DxX}~oM$jx8?74qtg23#wE5(B6$HpVm{!+`u4 z27to$eH9J3P5|2!Ajsl+0X(4qbxq+01{4wuKpBd$Rt>mO0DByTbh@emH!+|XbAbLY z24(oT0Csx7btO%KBn8bqpsE>;-IS65DMulFQBa1g0BR1f{ZA>KMUDYC&v$_SVjvHB z0hAp82Y6@-1qPJHdcb1=g`xn`4$wak)f5HQ0XBLpY-z3|DBSi@F@W(R(~h10iR~T|E#lF z%F7S zq5*d^pd;o0=}QAZMF1raxF}%MJq$R@b25ENP>Xv7Ae=;Fr7z9sGJIPAdpQfLMN>=z zzQcgkaRyLx_XdFP3SgH7v_0^AQd9Vz0OA(VNa6boSd(M`iQEeTg*^hGPZ7Db6`jR> z4CwTn>|Y<%fFB58r>AgsO#^<&0GbQgEH;)k;70;Td%%a%8t`KVtQA(H7TK$UGWpH0@#gD!w0%6Kxgq715y(hKv`@I3i(?Blsq67RP%8L zSg$)#2#3Yr2_Wq$+!~bO_pe0Z4+2npxHY0{@ka*qcs}HAt7rhFggo>(KFm$`1hx1R z1A3$Qp$Y^BDk6 z7T%Q9fWHZ#>;Z2K3i)>ioU4SkBcMQq10T-a=_$-k>n#4kfUWotJ`CJf(|{)hu+9TM zA7t^A0ID8ve^gU=ngPnOpFT690nZ3v7gHcspPANxXBlvwR1=IExF@3l{}g~U76D!i z8f%{b=#!g!;DxHD@Gl0Oud4Y%ki~NX*y||Vd~m>re>32MgaZuhjq5C)7r<@@xH%F~ zc;S^OyvTqHqmIJB!$CD)5`f~v^SYW;b&`i+DU2cn0Z4F!Q7>vfjG`I=aM2zHP-A@{ zrK&lqnE@A<6hQM~R0{(xTFC&@SP4yGGy{e&!>br@af~TY8RiER4r0LYg&f0xOXw5T zBnpe`x(u&o!0@#=SSX~J0&0<4SJ4y>VL&?R0fC2e)N2GFoFqQnUD6Z|Wx%CUO#=Kl zq5+2qV5iF>`&32)Udw>XJfLuSP|a2bY@gsL;BZMz;dKn?D?32(UqKmO&w$IvdO&Nd zrtk&<>~MhWqX6m-Ft9xUyomw*N?^7Jg?zIBDxN}LP=>cK;0j;O;{9n|1}Z(I z`U*uM9Z)!&0Xr0hsX-Zz5I_c>(s9m9=`7yLfGfv%z~-n1yiEWp57=7QfVT@^uLERv z1ciJD1FTyf0+YQWpzuxsR2+qYtr?v~lmQ?0)g0)FX}~xE>~s_g@2P0OyBP2>d!h@Bm=IQ;Q+;Jf?E8S07?!}s6{jd zsz2o6+ExcBURlwAqXe+c1FkM>zjo~S2JkU7K3hhBHj%C129x$*nDCBVhc*13o-5!*IBnf=@ zc+vp|R#bEuju*fl2gqI-WHFNgpCC%2AC?ETI6(j<1*qyQPGrDNUyIyjWeqq<0BJ`d zduaeTSpdG81M{Pr!uuJJO*jezb6PbZE`Z%0urRIxvlx)u=>hElU^WBt>l`4rzOE_E z5kS=eiuVU)IE4WP&&m8VRZXEy03}CZ-~&Mxa~Y6}IzaxJl%_C`0oh@zIiCS}d`N5N zVl_=+0Rx8T!$JlW$2bZD!Lr?`Qw5N6fLu7@ED}J?0R~Pk=`t*4zyK9iMDC=ZEtUwN z>;UupAg(E#E`WUwko!nk16DHNwxk0T z?+E}O6u=%2m>Sa*&S1bNePb2x56W<+06eP;Z^~#2|IL8^8SAnbctZgAkN`ZZbH56* z_^<#xt8?S8 zs%yY%2J9N+00Rf5HDHYZQXX({!0Ju`>~(t>=jiFSkHjZBpsmmVpIb*2w;x~{5!~EBLn_l z%mbbeYOzTGsx2;y>nyq%aA&KdklhhvkrKc*54ftNDSU(hpY@E&rGskr2tbwL&uLAe zmjR!{hX_pesh}2{1+dNma$R*zVT%B&4v>8&DCD^eD9>f7GZx0hAmd`*d7qaXACNI@SRS13@AC1(5cDVo=B{1mIa+xVfscAO=Amc6(Om zCI+0mQUJc1xmZxhs~GS##p>?|W%wuqzAmhW`?3D5j4lIB(NKo3SMbT2ws=oaNSdMn z@Qn!`@cn?oH3G;uKz2t(XK^h9zB$GLiZ``t0Hs70-%L3`;ntD{Tql6N4v;%0C<9GR zK;c`vJYZTt;RXiW6?K3@5GXS0Mgi<}fZW1_F2hX>xZBqvH?^t(9~XeHMQ&OE_=Esz z_!L%eNNEa`H)>It?*XZ@24n?Lc7WXUx(4JJa8KF+ip^0CAX^n#+$-{ck+*nGLIVm6 z_;$=u$W2RYKv4j@Jz#QBh5-hAC+Y!Hg0{F>06QEYzo%7aQDVS%6|3*BXuvH3*ybn{ zX9R#-1yEOjjHYlK1HQLT0g@W=+!>1YWgE0<}-C5RId`1A270YDqH)##{e+>9x zs|Wl!D8rqvMB%eS!8ca!*p$wK25rdXk0!V*ilgHiP!_;G4>%&I=H~^F@qpHV!WRTE zY!+W+z>kxTLT+lnhc5|*VaxDk1Bg9ZQxqb)7GGfsKi=a2*+NjruNuJQdwdqze*|UN z%@lqz!&7)Fpzt*Y+&{(xZVD)TT>#rW;Kr&hRy^LoF!74+N0%fIn7s7C#h#uV(I;s0RFq0T0I= zh1{l;2K-n6oWYrq9aOW*fM3KEAjskY0qpdEDM2A0 zWWXb1Jzzsc*MdX|^6;Tz)bxmO}Q<#!)fLstLGU^us*zEw>=Ym>1!hoq!2gtRTbQZr9fagPQ zL(mq#dL;^v3SghlVoFekUo&7@(g6zFs=5rn5rC41rvgsa7%+W?qk!OCP2n*EnEV~j z>fD7D4fw54C^-s+O=S&uoB_x9=Fa778t^*-q&+4|q1Cv-n>Fi2Zb%2Rt5B^UqA-_>uz@ zf>rxbe-VIhi|mteoyA`b;AOJ-8&jB>@>#45%J6pvoG@Pj$~ucW15S)8Kv2zp2tdhX zxI+3Q15Qdh3fXWi=_vsyPF@!j@@WQ~9QPD{Ski@jh5_&Qj4G^*YQVD$h>vj;3a8gK z;GY86s{j=Zpz1*$X6fT^2TDnL>L4r4%X-2uW7tfto*!1M)42gqI#6p~7h*8JEy z57-gYS-egF_>fwJ%h^q@H-PC2_BcRxN5H5zFkoTK0dgA?I*T_7pyUAgKLr%t#DG(& z(U_C@Kb19wHyc3gK_yYS0Pq%}ka85V{ZUO}tN>~X5Yd3c8L&vTMZK;8M+m_4A^(d2 z@Ky#a_I$|R5)|@n0@#U95tv)jI*Ye6V2S5L_LiU)?+}2hW+^DcI|cBB&*HkEno$NU zRn@$;RhMC$0QPwbwVwC57tLLsQd1Oe=FfZWue3`a4bz10D-rL-=?dj+t~0rJtZ2E0!I zzAf@c24y&!0m~DPLhiYM!bAZmMwQ|^i%ASv5p@)@g;ouiEPx#zkS}RKOaOHU$iF2h z!xRRbw$cHz`IM$GRR9$S$d8F?z%&M&PAnI(&j+=bZU9ri7WIJ3lbXUY4A|}Y5c-On zjx~TO*ZW#zFAuUfP5_<{x#?-0#SG5kYo0h+Z19x=OOaqvHdIq0T&C3H$ zp1>6D8LI$67AG>GQg(pQ1=@6yPKBX;!`9;$_q2Ozg`$Vd?`( z4+wlgO{X&8!I%T&zE##`Sj2z__BcT3ENWV80MkEMae!=JT~k=XfHP(&Kve^l3P9DO zFW^Ih0cW-<3Moy2)I1D~FVz(wXzpbK*x>-hV9Bhhod9=LA|(gN_OaIY27FKeDF-M7 zQ@N%y7;r+_0kR)YY6@oxV7>zsRt8!8Hv|6LS2KG}P{tY&^WWa~VdcZYx4d@WS4hP5`6W4&V1hCHmaI=60tY*Nfbso?kRCA31 zOzGXN05wgaQveAM_(56&&NhJQtM+<8e^LY1G9bCq18xWkNri(vB=>m0^#LEc7|=1p z11=2;c@6_k^o+{hn9yZdFMz0{P*@r8VS@ooejx4u*-KNJ!bSs_e&Rj{$OUu%rcDI6 zt1_z90kY{Ji*BaSvC9K44FDwW;KNxl1xV;Je1rifD+)pULsO3c;+{g_J!tA>z-(X0 z+_ad^VlxAVo%=U!VL+S;%fmr#T0~PgR{&!iAoM>pZDqi$xC7*-1=ZZffcRbqD4br= zS)6A8lb0)bNY^#sd5xX1ve&-B&IK3Ud) ziy3fy37?!r=<;g1gaPmOfb5QvrjQnZFGJ|+X}Z(^Vvj0;Ne5-Pj42H3sA<~HfU|bu zQ}~ch>oW8)fb@t1q%`1i0jyJiqz3dGKy0rUxokS20aplxs-h6EdItm6cs^v)F-_r0 z0hAPls0LicfKJs|=~fN+=qmv}W&kf!i>sN!ni4)OCxbFv!+_yAd9473cnK*Gm=wt4HG@{k;bNsO09aMLs9UCthIROVhqGfBp)O>G!{g(tBTe>7^GM6A*W? z%_R!}0VM%0v&ZxI;Z?RVK{Ep%&B&+Z^qU$I#3GTVag7P+x61)X?Ik&(OJMd60b^G0 z=#wgnT@Jg_{CTe_TH9lnRPdXMyRc#9!y9=o8Xg;2@aM7Y5pX35_c;2J?c~V{(!C6(fC1$sdAPG)rbD5 znDj@v)8D}sU@LwI9*(Hu#731sik1CsnK*@4&o<_8s7a9fYLXNFq|U#0$B}@{<+~db z9LB&#v7iK_?#H{Vt~h-s0+tBXhyJLT^hdeV-(ePDEB;zML_O{R|LN1R_seM%YbBn= z8WXfK@T)ccygy++i+84w9?Iu6S2ZShU63I65EJkTHZ~@By-9$Zr8wcYljgHGy*;V4t@6^qw%VE?H z8WWKFlh|70&+lbOYqZ__x;XvDzt=Y=fIAcltZya&<})FmWq{8gs^^U*N{3``j`HUZ zT6F?EJGn83!-r0A0un~Z)OlZHf+GeeK#qCpQ{=uG^<-m$w{n6zYWyjcX3a;v@&+rh zWd4x?qu*9CNf7CeibH=SHuOi*K!4Q8^ha$+f7B%ON1UcVFwp!FU+9mjOMg@g`g<#P zg(q775XCQ?sAjoc;EQP+(Swd zjM0&UqX2;3PfGYa5PC>P3~`yGr8me*ICaP-QSS92TdH_z!xRhU;HeP)_qDgLnASJd;XpzSO7+2nhUV zf|Ajf6u%n%_NYyjwqH^$QGlqRI|*#QbED$xe*Lj@*ixkIm!veyl(kimIS|5>JJL~| zrWy`FPO7^jktm*n$@Vn!5p$ON1-cbcK0d=7Z9ZPORX9A|#5qh^i;NDqN})0&5R(#82Y1js3ESy4 zLva88_cqR&sJ$;nJYx3b=T_+pN%1bu>(vQsZOEAPII*1&KSzTQj~_1`vg*R^ zkK-ioN)W+TB1!b$TeDv(w!hiq??Hx7x(9y0{*1Z7WXHE6mzQ2L79mRU#ggPQKFVME zJEB%^*u(Ux)Mlc)UwL^@6kn;NX?&u$9}pQz2g~*n;qSEPA$?Ip%bnCud6;9n@p!-f zCIH2BsS)nH`O5Fkdgq7Fadhng|DZcE;b;Y2Fi{$JV*d2c-Te5Uf2kW6G8zSdm{KR8 z`93nYkMyxiCZ@uf1o z)(YmFUGg9%qu(2L$b(ip9D*h#Ijl~yEPv)fRfK!aHiKyTWkw#%-YrRzjY;Crr%Wws zu@D=gcBrK`3)D=lN{56B`Ot(UiA$LeH3pJN93^SPYx9E`4|%XZ%ajZays0Yech|X$ zxPd{4{-XE?Rpf2~q3;=bv7dh=cf<%xLtn-WAx)!Ow|AX9C>=8QBR6(*|LfCjM(TCd z+{GgYR5dG4r9e`LGO>QHVSW1V#DE@&>_Er<~eJ{P(&%ciY$Him8 z2Mf{GO}}epBeLmt(%emt*SX!B9Q)um+f=AvsrY^tieS_z z_>1D7O-kjY?`3@M?;nwo(!I#4lPmaQhJ-m1A-@8ws-+33%Zn+X@ucv^2-l_Q#f1G5 zvtOtq5SL!4OR5(vPhP0lS478PqV|hr=?f&I^y>MVfS<2gyVlf=>p8MPYywq=ye35W z=_m+OC5*15FPQI{C&hmXH=0|xfNl4@7`1KX4#+zYS%g0lSvQXI|{AmU{!Dr(ZC=?9m+`JfD?NlThC{SaznlJo-;TazYEKi(-nqVxkg+`Ng< zkEjqx(GTW#^FcNGffhH#sn8FU07#N5d*u#&&z10OfB%^C$O3%kSs1U*Z+bRO#b?$wJ)5K-@VuEfarz;W@NATR7{3qFMCgYI-!nD( z!K`h1rb0ispiR$|=m*M2)SgMx5B!-QiknT(Bs77zP7~E{TIq)+9Z|5SYX`$~`4W?U zx}soDmo=dtlHN$=o{rNGR4$4Sv|&#Tp9jKZh!WGy zEuz)|%O-zdm!rD{k|o@mdf^Uy-`~IS2FR2L9?n>i-;%;}ssD$N&3^w)kaS%CJu@~G zUwCcnH+?y4@}5FBR_-@dUXJs8UA6gFmvwhObeyAmZo9~9~s|mSc*rVOISv4wZH=r2=Tk_Et5dVAN9JunZ^e+ zc-TLKNHji((F4rkHlwu-qE#NeP~is;lVT*XyFVol%7S>VDi6{&$vVfttw?QZ4Q5`L z!1w+ABZnxFBL-G1-F@<)bjZQ8uV}gYuaAGBqG0 zZvlWK;ShE8vm}*4{wSZHHFEH0afLv!b0wWb6vDUO_{2+lk9hhEr1^9rAF0_Gil{$G_{^<~*t&(;ZpcK<*+^ zO4l}9@JuTCj_c36=x5ig_!QAb-Be4QS0WJpja1sHCY+K7?I?ah6u)N#!h9bYXUG*x z;}3IY(`#?O;pxh!z9CJK7#(@9e2tBcOf<0EtQg_(N3B(@(GRv}nyOX$0l6}7D)a-z zH9yR_D1%G2L~o?Is~P$+%1YM*Q7r~0DVeG$Ua>BsQar;gUYu{+b);N$^K#1Jho%l- zz~@rjmbqU$t#p3Ml+H-s`A^{c{{CGEp!7dBVWCl;n{T)=`f$@9@SwY99&CTf2oWJr zArxu!;c+SnA$CSE>!wFX&?ECD$_&Z>jb2g1{ehyPntMpzBRrYUnai_y&9hcNUHFj zm{jULt@31iUB1|bywT&U+(Nn0)Mkc4#(qiIFLD0Te|y9>gS&3<|6-_k$>>a@_vUOo zb@79HUYnqH0atRLB(6}Y-c*vpyeVeOV1}pzX%|Xk{+TRq{p2GLoip~;M_K6@TW^U1 zKozS9aHM?~$>=YNe;{M;O~m(+%{xhCx%z$ZKN@1wBP<=kfCU*N2|6-E7^tBqO8h1N zL`sA(0e^LA+GW+n!%$;&c65sdt?`;N%enG8vm{n7UC8S3m7C$%&1adG`52X28 zO%A9z4e%CQbqJfc^pLQ2o#YqezyFf#^T!YySm8j7*Rnj ze@M!!-&4y_+A%Sy_?Rev+5UUdd!#hJQROEszb^^qpbDpI`MvOM`>)cH>X%#wtXS8C z@gAzBC1-6mXvt}LTv*%kxU+&TMMpaz!YuUC_KzpH%~~Fh;|p3EcDFpa z$Bj&v#eG)h!b$wxuRn5Kn?e##{#dcS>9Sq?bj00WT8m`0sSH+w!1Pfu;(~e9YMH)$ z>;Y!LykXzT=uuH=)=?2=$>>OpnN<9fdt$lu&5W(x_VfW}j%4%~#Xm^+c9Loq96tF3 zKlke|YEYx`f1WFtFWG$=Y2VM5rF~zj$P>hsP#WavE{`4Quu7fU7-lX{YVnt(U$ner z`^8Ifn|X{g&;7bpy39-V%ZqhaoZTSGEExHqiKJ2dL#-~S&jTgX%pLkq5fQgn?IdD{ z?W!PyKjcAFf1j2w zzpdCWRRHMKZ|hc}*_)C_EE9qHSMi|35NJj2&1*G`}^n8#DDE#Y&2|HcBy4DCBPDj7WsD*H4mV+plUJQ$t%0Re{s2b zu{_G%9yuh6muT$k5&}fim}6Yu7lmMl3wB8NHs4LhN=VM+(Q*9`X6HWLQ;Hu zt1Y@|LC#_7LnJZ#`$st-9Z}D%|3ntk4@Y(ek+2WS@*rj(?2!ke7^WXylLxI9v5y~2tjmKVP-`MO zv1%VokOyV^ATAFqjU&*6QB$NTH^%UJAgzgH^cTfH^pBeklngnuG0&$8IA``-OZ?z% zQln`D33-sRHQFT)q(;*Qs2mO25nYeSzP*M-=8KF_N#dJD7VR%XNl86W`BoGlvhi3$jwBeC49!Mv^ z5al2Z2V@@IlTLUI%A-9#2;dD(K#k&~c?glCq!GL)7muFSgO{iX_y1qDYVV!_wfF8h z=lkyW{py>VUA1bhRco#K*RN_n`-Fb5ylFKv$2@G{N9%hL_F4bk=5mj5Wm(x%5*A)M z-zC)M-gUiAm_Bp8Uff=J_mxbFJK%e*#zIze_r-1@i?19l02jTC%mM ziM5EfH(yp$hplh$L8H8Hdd3a^^xTh~b@1KY!TFA)D0}pQ#X3;mzS?!+&9P;qE@Ziw znwYcYx5ncrBk{&s?wA-$NsJh8qm|H>05>kUqvJ?&0UnCljLb>Yq% z-NJk~$onrCade_sR+}R*_$>Jsv&H3H+uI-i{WoT=l04j1G2^{_k!gJClc=8tO+w+k<)7(n_WVzmrB>WI`-Fu)tY1F z_F6~N=`7TEwl?ku!*Rj&p@%3JpV^5p# zwVAGtYimN&eW49ZDQ9E`3Fi9%JNkCi$}4zttkhnec>uT18{pjgNWhz zX3FGGPKJwm%^3K{JbpRE-{j+|2Uq&L8ZIpRO)q=s z5B8xGl!*4O+3aP4i6%2xX5ig9wQhv zAN=hOj(CBm9f~hC-B28!&pdT+8}Yc^Dff`&LW{WA-{pIs{F9HHyY}AQG5)K%%XnKj zdli}Dt%N3)vQrzGQkI8%->QsMuh*2K=U#U~znXKeTaD%IPLC)Vv$8Eu!Cvu~O&y!R zoQO>+$r~q6Y$8*%xK!V^csO0pDZ7e;nDO_8O4KX9uvmBXh52?@ulT}TZBF;4|5w~r zDbD-6TD%{=E8W-+dxMtI)DC@ISMRYf-o#pTZ)KsT4qM;-qg;D<>y1Hn^R~52imE1V zsV{TA;LUX8k*-`4A*b!D^P(&_SR&at|!>3d7A zc-yvr%-fi(&G}sYKvrAo3mYF~^WyzZQ?%o%WWDS@Nj+>{3Uq?}oFt zTUq4GQ?|Qi_dkHteo{8}uyp2pH(aIGb`Qhxkv*-)1GaMW(Dww8uGKOz9RDV-H&o$G+>kF!@Y( z%6w*}t7op(bNzfRHMj}7;YijK^RRK8=Toi!Q~5Nu^z&1>%c$zS=UvvR_NhE^qos#0 zpYO8wA$?0$Qjg|a_Q&#er~LSA?sMzi_2CCJ^*ft~{%SV+nbSnfaauGRZM*XK2x5PE zNItgK9r3c~wiWG<*O!vp`0sm4o)gM0md@F18+4$26d*g?tkyl8bJ4Y#C+0W{-dYN6 z^S_5jzES&GNBd*5-9o>^r3r0wrf#@nn@!1VNpl^(^^FMLtRqg(c%t3JQhap!qI_&? z9`59cVmUQ2=NRSLI%+lT=S=qf&U$;ur|)%kdlLQ5TAOfQhJ2n?zf*&C`nw|ZNe3*vn64*)^Yu{gT@Yg9lp;IJX!DWt`)!QN}l97#g>IjyEeULPk)bZ zyDT=2Iy_Odi8)63ZR;aelP6XC3faD!H@7tW=Ji~uUAlQSS7Nxbe>X2~%~nVCyy#Nh z{*hdWP|BCRnpld~y?r)Q%JOi-dRCMv?aR>o@s+xVm1^_84{z3#4{x;lTpoNu>Fqa0 z$#$R9lY2`&+xss^B>EkD-12NcZtENY#6^2hV0ihhOiQ z%gV-=A2QJ;oZTioI8TSn@%GI&;U}9m;ha~lv?)xzx(1g z;T;<_;ocY2gtarH=7iCUd2$pxIhxVr#anwrkrBo4FD{E1CPbVIx=C z_eJ*Iu%0XJ?-%U5VJ%nMA5GYI!)mU?T*|EEN^RQ>i@8$UcEduh)VAF)pDSI}bGZ@` zTPm2%l{yAD%;ZWP#2Y5dlcSS%{m5+1+LVMl->IK4Q4+>Z?kDt0!igtjLK9U*cwIUf zkF7+*y}tOvZMkgZzQu_3sBHSmne1y`vdW7&Y1CJn_B>d)BG0)X%phPv|uEB%U}Sy~!dh9#+AarX0;$-0Ml?Y$|L zO+9ly9!F_$6w9fJIS$M-Z;i)Ms`=*a>;GcK)U%HCD<1x%32|yhw+G*fIr`OY0H(LNi7MB zHDPYE=2&PG&izVL6Xx24^YRw86e*YIvNY3fn*99!x~XXsrq8~hCiJ?(6{DZs=yHs; zIes?dG~@h!acr{EpRFxA?;Uj*x_7$Ejz6*hGgLt{qx{ClOxs_!yi-oJZx}+y>Ko@G6(&IGu@f? zoH&#tjle|NLswr0LaDgdRs7uCKFZLB=Uu~}U0$TiippDGN56O#wU_q}X7<1D)F(dt ztLK%SMbdj#PHmz@9Np(G#N#MUh+@6_v>ke8iRes-DSLQnIrF-ewdi*@m8~n~^3W!g zgoR^s%pIFBQ(vo#PY-6_OR2oQX_xZ;rd`_Fk_6<9TWiV_h$&U;rqKj%uNS!A)@?c7Yw@vHTOooi~sf80}Z^t!z?ZNeoRU6J{kuvT+? z?`loxPWoTjtO@g7jtgo+J?YQ;m1}FlWX*B*dQF(<5^ii0p0U{`ocGS?ZI0qI*1Lq+ zny^w6=5DVE^EKgFU5?qBaO94fW3tN;BUmb(s0n}56{+1n??_Y{Bao5zy!m(>HS(fp zS4|B0NY#u*xl%G(Jot3r)MYbmYBX`U8-c7XE-TsprRb^%2y|eW@?E9X&IJoRA z{MtgU#7$O4RN$ZFZrP@u!ZA zSaGSh-@fPX?N`(Oak9Gk-+eeca^&c4eT8oM7ittwe_uPs1=6m?&(AK6I`UDpi8&77 z^Kb80GxdTvd$v909aBtA%u!7#I!bG@n)+hx+J4AwXY<_fX>dgBfEUD8DFo zUjN64%;Qnb!ttqQa43g67sq1vr5{Jj^fMU_qYhGDa<>Nap(7LN&(~X{Ufn-j*Vcs9 z?tlib*^E~gyP`;0na{FOWmzeQGw!?J6(?IJ?Az?huGNHE`}Ft4VJ|urPTKS z%W?sFdv6jW`9Ej+Aw7R~Zi{)?Gvg6irfuaF3-$hJ;ibK9=_MQerM3RjYJX|5J%s0e zX@6VAOXk~z^WMEyeRz3G>4eBX4bJMQrMpOBmS*@es$ z^RS~EMRIClj>hijM=-ZkGiuaF6*)CAM{6!0HQ2L`n3|Zgnn6Sl$5+-7QxkJk^P+sb zQ(4|oHP;@OYF@n2uV(nuG>SGcN2kgezVlAKBs?5xZ2BxkgfE?zCs|o&+J!Br)JrpG z+t8_(#<@Jy6fYr0wOihz{Ak%hJn=cQ(6aEXh1_F^^~JfG&^i%+O)_?tRMt17Z(2Jk zqB0YnHCv0k_tyS!mX_^&IIoDdj5M5CE~X~tIJj3_7LTK}ro9C_Axp}5Z!MS%&ro=ofWBHMkT3h+FYg$XLjfpX^@)_a5mtW9sU*sgbaaX(IA$ZAPz&gg6pEcY570Y`?xc%GKsQ zZ6X$;vgu!0Y}@;^+!6`ry>~P3bo<9D77pJu*Oe+!nkh4xI~OLq(f+vsMN?Ns5N~@L z%bId7SEYNM|M`D9d{CL)T<`s&7nR&&{~)|)WxR>C81A2+ zt*OKIAd2PG#2nR>U%ee=Ao@QCl(F$o8H5>fkD6~6@=Px&d17|E%EwW56~%IDVvZKS z?BaNAtC@QFWGruYDlaxh=3`)PIKXvRh(DqwFAx<O@UwXx%d@nstmX5_oF-z7i+>omm>|%9CKa5=`~@dOK56B z`wnBQ{`s-#R$g7FEgS4Dy;%1p_&ysNaJyR_RBHRvvZbx9|2@Opvh=piEmfbma%x*7wj5<`=85y^aT67Q!SAGQ)I)M> zwc+rsrA09wpDFvyh4r@h;m@q*kY`F6*{JZg{zpU>=5kZaJB!$ba%4(1!(aQOShJ<* zD6PpM?!xroZ_U)f89dXwdVg#lrQ)Qy+$L?g5k7ox;VS5x3?~q5jy!pyEACBdDoRNiiBMoHKDXOTJ!aVn$SC@d522} zvc28*mj@>7&*M!=m-6z-G9$u?C`U$Hw;iSuIk(DlCvnDLogx+FJSf~kiUabl9 zU5@Nb^yTnuP3X5{vL^I*+th?Rt<)kDHQ|IkHKEtlaY37~yxHYgs|g!5;m&8*g!P)R z>*A8I^r*#}aHrF2j+!w2)$SLS4_`l-d7{xP?IDeYxh`d*yTQ6~QKkHR zR-EyJua(BV+|T^WwJ(3r^sk;(c0J(r{j(+E@SE4h!_6|)gp~}j{CIh^^vw&oGE-OP za^<96jne%S73DW?W_sq{=z8&rGER{?Y%ik7H=crv>*J3N+us|lYvGg<#Ny1cIVQUt-Cml=@%62HnK(8_Z~T5owc~Z0CC8wpuiF@p zl`VC=ZoRuCM$2>1UbhwrO|ImW2`k6uSm+XJZ(lc85@L+IgqiVo_4elx%_-|>x|Y`7 zzOFZZ!q=a7O`9Qe{L<$5Osp-mDVeYll^&I2ZT#dI^_(M9=2(e3+Wa+P@z@;wmS(mr zGFNicLYXkr^`*C*Rd!QwdPztzSG1~)c2}FLA$&^_q*NcM8C?(Cb-?!+}=@H+UbuC29dUa)s_o%x%29|Y`@me; zboiPYcDqlRFA2+kzER`w0~geUdYRaLN*SQ>LszeKIZD&U4`0(uU8}iQZ{$jQtPfwk zwsmEtAY5uaeDy-EbQ$B9>&v$B{H@t0lH(Y>dMzH?ft%Qqa^$TN}C*~NcU&s*H?v!%G z)WqBs9c2vKYO-YXVQFRm$MjM-lUz~Mh`G>A{3oG419qT+ExtAD{Ex*z@oYfP#lXgch zU61;szIq^Ey4fxqc;{k&FKadTu-rtkoSK-Uv9Bqoa#Y@42jO{O~0cxuu=zzAx!@L%z5c8%Eh<)>mtLMmdu4R>yza==bFH zlRKz4iZ(Gv?7eKFP0 z`pa{f9`ms0XP!r0TrZurI^M)u9Qa?prKS#BU%r1)&&#LG)E+!_Eh`)E|H-1=7vEm< zw7;*H9eT=2cWrs|o)LE)#d2z5jvl;uB_2l^kto*n;G*srJasWE8$W!}Lf54TnI_U= zNBegoY&Nj_PEAy{`>6|qdSh{<4t!UXE8kO!nh#zvTd(vN)+_yB$e-L@^4rLY?mc;} zJO1Ss+vyowx!;+)iKQR4w@IJ8EwfN9wBUZfi z49Gtf+eAHaSP!j_Sl>OOTzBWb{F(YZW%*Cm>zF)gwOtr|-+gN7_(c5DO6+%(q0RQj z)WjSeKbVj8&>xD$ZBKdXw|6A{?-%WUYU$eep?@fmkO5wf|M;Q*x13{{5XY^FlCkFl zH^$@6J5U-uN;TPmF2oL9u$kP(z0^B4yO21zKT~2J7R4x%QxkJ^b2%fft!8R@K9;vT z9r?3ed4Fr{<%AbKh!;Id`vxy;|CJDkyy^% zbi16~-rh>CeAlP{8rvhAc8Cu@vR4-#vC%CQXoI9j%#AluB8Kho1@Tyi?eJS6JYPV6C4=5{r)l>5y6jMC32R=+oN_~GSy3R&;NC+oLu4$mxR zKdT5c^QF_dr}4uxv$>K}u1s#-GO?x1!#8uK(*E%ETq#i%J6YYjWpQhn`CN(KH1QCf zyKXR`!`*vF@tm5NvzoyeO}%Y1H*9m7jC?t^(b4WTjrIT>+*>2=-+Fms??e}jD^0Cv zXQ$=Lwa2HL9D?jt49%PN#^ZLUJbv|nK4`uM%JSe_XcMtHKGnPRCzLWF&)hTC{^>Wa z=-vJFI-2q9Z@h`z(SYl-0c~T3JH*+T8lLx?$%T;mDQj8T_~HANEt#<1?Qvk_^|xoH zQee0}Mv?NJn4@0g{ek)MOfMfBDEt0_nT+A~;{k_%U}DS412%IdU&M(fK43jZGKc3q zYhCNhP{gJJK(>Cd=AG+u94QIQO}o=O?a3-iZQZxzw*I!&))(IHyU|s#R!SUwl$uD3 zV{t>-UtPW<9=AK)ug%!RLspYT+W{W#Rp7RoN?fy1L#!m$@M6lriGyh$)xnmf+j@^ezLx~(ZcwAHWp8-F`}>g{y#w-`D+xq#wdQ^9<)nmA8wOd$e7vcvJ$FpqgyXIx+xQ8@~q1#SDLLWy)7$$x3P6) zZR<)o>)R?yC4aZDb?e;Lm6@$8&DNFPmX*zoJQUHM1HZVDt&Jo3zSWYjyjhM(e3S8| zCEOxMO*l7yWg@$`lEVWF*K_l0*9e^R^moSoZZ9{q~7{H2+$-rEQDmVJ&; z?*pPtcMseC>`FGh{4w7ghkt6?;B5Z}a&EePBln&QrN5Eqy7e5wi1xw9nBSX~j@r#A z+Qb~A_1?>lPc`eurJB_}{c5IGkHqqJr|#U1v5M#2Cw=7RpS$zl-uBRbFH2pc4A#;0 z-v81&e)N>31Haj;$LFsW+lBZ;m)#ltYo|w(+dUnZx4eICpqtlRJ}v_x1Lk3&$fGC{)?4%Vas#M|9X4Y6Z0tS zM6sq6o%;21L`JCQo4>nJe&aj`rF+_z?|0N){YE~vEgt^2LfVoMCxcHk{Q8ak`i2YD zD3((bb415)O~&IW135TXmp`$VUQTp34do9U$0+pw`p6bXe`{sL-9@qP1pCA819i(E zD$r|1@FjVT)?-J3hgER^K4XXM5CYHB5 zWxe&{-pMxiC#L7&!vKA{%x3U>4C2-^2foJw&r4)*lOLI#p6b*gDWUS=yXRF`P z#7ezEUVcNC$?I}%d3~12BUDz_W2M%%{QBH!SKI4Xa;1qm%Pi(fHX&CQa-|&SSeeU} z+)-|s&6V6y^e3Ly=R#XYM8^Mhq+QJ@xv7ce?M}0ivE4xiVU~(r{rpVUUN53Q-{i`p z>Xu%vG+mpn+$hZ$U%qm!TbOBE7`MsYSzp?dV-jr}>f4@sqD<}lFE&|i`23{Jc#I~V zxHkAUAgHExdyp-CfGRb>X>bf9|mCd^jb}s^!|- zs{S+2m(12Ky=1Z-spS`!+q~%0i|4zP{_A=l8ug6ddd)ca@R{26$IjKGbKPopbUrlS z@88siHez|Z)7g2!iHL)>3)-Ea*_4xAh*1CjJdnBxM z3Hb*5v2RT_krw0hksEVcSspI>9v@}O@BZcS=^y_G*9bfK$j!Fb2OqIk7aqCVEv(mt zM|CNWn&>vo*M&!HbYu0=CU!GQ1G9NCH8Dp&KYDFEw$%*xu5S+a30Zc0%X__dDG5iv zix@fbIp$K{*<_}uO%&D6auUoz3(+um$r z%+dMZ-H6BSPI=nZ7<=MGp4Rnp_rzW~$0H$b2_H6>EBTIPjLQ=?bEPT&a(BP8ndveA zpWpTGUUr;zUB25FeQSFil@5CS$+FV+ItQwWx$9}|^-x!#9Pqy0PpfCZ^3%!)M+=@- zF3VeLcR`e_`@Chg)U&<+n#fj7o|@2f33D}}*CkxrCY-;~B^;>4h#~wdR=X66#*2XS#%qnxp9w?x+d9n((CBm-9B-g!A4p)8;sDtxKpaJ#VE;sGU1+ zp{wKUT4b(GIOmm{HDRU}dHV(ZGpa;%7u`2TzU@v;$ygD4e3Lb&#Eb31@{g=_3-jGo z=9a9!-PLfH!Lp}*i+{fvv6|DPT)iE>?`As^{XaEx--R||`qicO@#Xs#BjQQ^t0!}J zkucZgh`}of6J5ewP3YB1<2ChqHM`$zCPnG?^FuK}gO~b#eHLk%DpGb z7yD~s7U`WlbIMu&eBq-XkV78{XKkK5v+F~rzUDig`cwVG`LT)I7W1&p&Ks`oD!S#{ zKP&Bsf3u%8`hy(hQFc}KG-&bO9aK}_Nczr&dO6Qw`Ob3nDdP|;c|VY+Rc<+RBeT_$ z?9A0%sR4E7Vy@I6ICDN%^1G5*W;R!H%9Y7BCa3??YDqYF`9i<${xiihHoLSl*30c| z|5IP}vmALEw9PyCitdA)%V(74)IdL@G^e)hjMALiwlm68r6%?s*YENv`caO+@CW-3 z&(02)-R?x2Kbku()%@Wd$D^9bzu4$kGu*TA$tYJ}pxNFp4Q=DOc?MYCjqf`7vmgG* z-R3^tJrVzgXXO27?St2Z`%mZxZ?gT-E&aX?f56(vTl!j4!~M#&tZaPgU)E~E&&NsI zL|O#lpA4X!`jb4Dw>xza)pq-1H~qlW=Vu;xU{LSCh3TI>vfWA}-_iAc@DHx~_}^W3 z%Yz2>-X3{IjpX)4wWWV3~eUjA3F%dyzz`1`d?=%(21-_LhBRw6YMnl@qbeRVH?*Wc}G z$#L{^#wOC@sIQm$%kuEy6~(%0j?0NW^@;sa<*3JW(3*Uj)K+uTS_z|E-_CS;o2iM1 zxc%ry;IP-=tfsvJ3~n6`zJH}2pU>VJo8y&>_s_Kn=X|*Pz4oQQUCawj9L)GSMOoPL z9r#aPmMJmEQTt?8vE6ARGG@8<{QUFx{r5NB>w+J8Vy`=NrLJ1Hh%KOBeE9<#Z&))a0=1R`FWic0?U03FFrG0~F>AkbL(tcoZ>AjP=@@+NS zM67)KwSz7XMsB!($+ovUIQo|m-#%G-chg$_b-rxn+e`1_0~((!$GZEi#B5U=6nn4! z#61uE-lfaEEEq|5EVkR0{!{<;(pxXiO)cx%xa~>GkEP zMD=Bgqq4YBgYf6d&_=>qO=y39IuaJU9G69*xT>7AnBNa-VkNr#*>ZI2^0o1}-6`K< z$q{dl$i&y~fAa@V*>}%Dy;)aok0U*qF}B?)>um$*sCdl#c$S ztf>L^vhGakM_RkjZvT6?yYt9bM!NPa@4uT!%RXcsZGFR&(vH)hKV6--@1V{o+Ez1p z+v@SCX8PRO<5SIz$EBL7LHrCi-i7aMLV1ey#}E7RNB@58)H6Gi%J0ADw*DKm(^Jjy zY49D#rJD2Rj!!kW^sAYkUWw)HPUZ3vncLxe?rj$}%a6Zfxr?>w={>nE=3#Gm>;9Wk z^qh|lB7aBCd+#}~`sDj>?cb@kb+yf#-aU*uM|bEB-lY7} zTual^&ur9J58K_0G9qJHWvMo8`?cTw{KLW{s=OX|PeIlX(KX57(`Pw$!AK{bPR zUU9)I1O z^2Ne+3+<-CE6S6f+?$(X-q{d8Y_4C;PJZv^UbBav`M7`Fj2nTbG->)_gCX8Yy^np{ z^}qD>b3cD$zure~^xHe!+s+xf^|PfBx(|8H7Z?BVb@#a~D~mT@=kpMh;O^duohe%m zKE5CvH;}Wpwppj=#;=Osp~9_F`~&FZ-5~%Rds1*Y+-O9#+pct_C0zb9@_&kT>El|?eoYC zxrJZ9`ElR-f`4wKY)dPSiov#xwZSvF-|?kK&&KaGeYFnuqbDPX>pTBT(=+)zA*b5W zM^BtwUT&$0<4e)^m4{T08lwE}^Y9g7V}h zvcyuOs?ZH@l_HTawhX3}^&HoXJ@l>Qw!V}g@Le=A&osVTKzJ5)ct&Bze zHLDnl5(;(8#7Vt{SS;f=J$KSoR}K1q(p78SmPc)z^!0`Q%Gya+XA|aG^<|d_FO0QUf~5z~j7p0%;|fG_P?%<8hId*;V#m-fsJ{>sJDo|&=y zk*&-yF&595bLoMbW0kK5u8*Br(^kjMs7s4u^#!2^&X1j5(`Lu+UY91v?pBv3#_rlK zoxeF&o}iB}oxeWTzID2E{%SXv=l6&3{Kakv&!6vx@ch|s2+yDFhVcA}ZU}d8c0;&( zy&J;atKAUpUhIZ&_k1^myJx#0+&$S1;qHlU2&el)IKAEt;q+=9!T}Jo^KHkb=XQ00 zH$9U_rVQV7iNWu#E9Gi`=MsnIy1J{04ROBw(2bd)EDv|uWtsNa=eh7l&E*S!y7W(f zo0V-LY_>+xxf>Z0vAZkoC^?qSU9Aaw#|CXWu_>9_AK@6KO(hK49h{R_hMC#!b;5fr zw9$U(mX$Wx54?M|T{w7o8K-z6bNgKP!p8ZtSxITkaD!6fwKO0H<!#2Tat3@87Ji`%mw_eZ+l7v7DNiW1t_qCmu)X!r8T4L`ihvG2i}s z|If`&y7;PY9OEOgxqW=8{ehNTSnpC6+l52_*uAtl{n#V@Moj)govlywFFqb(p z`fqI$+EL7e+iUxl?zP$lzy;+LDFucLz8t0Qb;6}HSKFhpbmn}mc)CahDP?@jdVS?r#*yIQ!-A zdEohHeD#Z$mxQIel*YHe23xOOr){?VIq>Tf^&~p2>)~nhwX3IF5nYmwK=}I=Ri;t-nZDxaF9yUIrNKQ@6ahOZ&x7AEPBRjp_sXY(c3+th; z);{$AdhH;Pr~dP0QROHNO|jYm9lYt92js*Dy!A2Pa@rT$YxU88z&#Gxp}(F@PjhPT zCl3AfWS3A**71Yg-{IYTkA=vUMJ9Ij9^5W|X)_N(JWIUm*)?H(SMQvx`mJ%u&scWR*LvX7Up^?x33X zuIE04G#TAZi_kgF;u;SH>n0!iI)~X zi}2^1eDa@t>6R~jvK!)C7P|AG>}8Z-8}y|AHd1?J`#)AQ_>%MV;|C}9aF^8>ikzC5 zV@Q5;xX!d!r;W69;$iy#IJ2p z*4)%v@wSe(ox_biD_6F$uDAT_DkoOg_lKXyT`S@-wy<#JG)lHeOer&@0u?e%sCX{w> zspET(EppAVd%0#UM=9snb#=>VWYQ^JU93H%~3UKH9FVXMfx0 z5Qm<*8n2Y~v&D$EG{#^)bMe%232)2HpIZ9WuFMWzLp$`$$*8Tq;&JGi6WRF~z?beR zJKpgZyANHu9@XFJKh&qZhc2zh^T28ioP3|W>?+?aYZsO_x)bKdZp@UJsca{rAS)tqu=ZR^U))|KwXw?p@zFGHQV%PTXb++;s( zqFegj&HmDQe`!AZ+D_TOxP5r{TJ3e)(@`QUU&3q0a7%nN5}6LXABX~B*=HTC|iuB~S3{W(tCot|GZ zwsC#%%LT#+@NZwQ`ma>N4#aOLM9#P`+_h0R^*>m#Jdq+t;4E!+n`XL&f^}}{t|C)6 zjvAx2M@>A&3y^OZ1jBG0zNXYuFGu|j-+8jOc%?&lr#+vm74|Qr*L}lSoco4rqcO+f z;BOg=o7YPJw)bDY-_$*qIoSPN#-Y1Rv`s(MTdU8Nrrv*C8amznWt`aMuvf9k($MxM ztKZOrU+=XIJ@~b?I@sNB5+1m2qo(wOGmb-3_B{3B)8nz8D?<&}rKJ_^tAc}8bTM@B z%d@pPU#{)i)=Be?cU<2XC{t^z{U+}Ko2d`qzJqGIv0f}^dsfu_GEXcwF~@D;hZo{; z=K)=g$|%+3Q~lb`lV)-ugsmTpKDasGChUIF-Y(DPVw?HEb(3AB-#oZF>|ms)pL$1s zAf_*#kLB%7dm>})!Kc@24_wtnUO`9HY7400TRPxo(r%3j(ro4z(#tJ5MYfH}!OtvbqrUxv-}*ggJ?@J))|WB|UvPQc zM6K&{8+D=oyF?rH+55r%&k=PmEDwGMukFVuanLrk*TiE)z>goFWBS0ev-_pW;X>oQ zDAT>Ja^OfEiUaSQtC!6qxHPJY0vfj+mO5vzoQ{J?YMU=VdivHOILgn2#*xLOokPGG9{LY&UOqPwd*y znH;=%Cb#zL*J%#^PFKZ8H)>rUU9ERrA8qQ%@sZhXVWM3)@Sd7-;K*EC>cG3}bC3h? znQx09cz1b98BM>rG(8vQYVmiibPJ{588wqNC0>Lq4L@+CA5b;K4&K~!K{s1lc=JS; zx%Oi4VcMyW&t*L^4|`3IA~`iN$Ccv~$lzqnha-U+Y&h{SyPhI zrz}^i{or~obW^nDgY)gKr(e+jLDJuz_&3^+`)%7W^_y#5J==I}+C2FX9WO(<<7(O; zhCL3|l;cubHac%Nt@T!-icwl~b}bi&;{)Za?w$B8k9}yVDw7t+o5&ESMj7yS2g9{9 z%hzN2zH)G5y-aznS!@Gf^8NF@?$WZ-X72w;$l%8Vf2-+ko`3V=s9}`G)Ll36n31rz zU(HTF<9^a(r?~Q>RssV`r|)- z-d{bvU++)u8PvOj_vK#x;IBUIwO?L({-E9?gL-#xn9hCok6bi;hrqkOD>BHqeSv_l&jTl-BXU)!6WlQXT6;} zGFx*UsrT#$2X|I$b<=eP-6;5u+Q0+vnrk;5c-LlC_+9JWLiaZDxi7kL#J1nRmWw@Z zZF_wkrF*IC;7Yv$9K3F$-S@$ML$90Zn%>lf!|OFD&VAABh|P*(IW;kdF_+vLkE0x! zY*6jW>(_Fno1(j~UpY2mA-k3b?e%lVZkjnZq3P%C4L0Rc6pxUq3+r8M&0U-+F-LE9 zaCRKNW@sRtF8B(kIzK?+nvsij9IQdt=IqMUO#xoL%#E){dzCmQ@2NZ zcfioizdrqs_qgK^zTB_3)V1^WKIWe1Kjk&oe9Kb?^)~(X?%*oa4q@B8;i}2utk3G= z4gYpv558(W10ufO_VE(G;|E{0+9lkc&5eX|wnvUnl;aTz^EJmOE~`0ayM*;N;gxGO z;gd5pq08~fg_4j=|LO1UzTbncxbb7%^UzmKW}(>OD_6ROvZGAtZ<^>Rf9M^VIp&=_ zU%P4TP7^z*rk=I!UvAAO-+S8*?5*8D_nk*-!eaKQo1#N|XOB&o$%LrmD@{CRj)^v5 z>K-M^xBl&=$dQ>M>dUoeltIWhw#H(P9X(~E-O==O7HUFm{q%G8*M!=(>F3?rCS0^y zi(FPNyyFKinyU%VzqaP+KC5x?qFVTzxy^Rdlgn5{IDKe;{bcIF$M&*#wB@Nyx6rFP z{m@2Dc}lnG!nK-mVHv|Hb>U=9dGdOM@S@T)OPgbVI|-Z*P5)pyv?Ej# zw`bj1*#4wNcKp~^c?X}*+j~J7nml2?|K%5*@Mj--)00cW!Cg&v3ZGcI9jRrC+D_Pv zi+KiiR{c$XMZdoIKh~=QcJgYsFjp5&+Uyoq>O%h=v(K;8dxc#y?WO~tU#kn+_G%RNe=ei{2XxN)@Euvat?DmQfFY+Q^2ci!f4mZp$Dx{0M<({3QxkI> z?gx*>D05Lmg6us&${fmRP)UJ$EBKQAD8f(e%AWVT60zuKRND@a%#h`3E5CdXB42S_SAO^&M7!U(uKn#chF(3xSfEW-1Vn7Ut0Wly3 z#DEwO17bi7hygJm2E>3E5CdXB42S_SAO^&M7!U(uKn#chF(3xSfEW-1Vn7Ut0Wly3 z#DEwO17bi7hygJm2E>3E5CdXB42S_SAO^&M7!U(uKn#chF(3xSfEW-1Vn7Ut0Wly3 z#DEwO17bi7hygJm2E>3E5CdXB42S_SAO^&M7!U(uKn#chF(3xSfEW-1Vn7Ut0Wly3 z#DEwO17bi7hygJm2E>3E5CdXB42S_SAO^&M7!U(uKn#chF(3xSfEW-1Vn7Ut0Wly3 z#DEwO17bi7hygJm2E>3E5CdXB42S_SAO^&M7!U(uKn#chF(3xSfEW-1Vn7Ut0Wly3 z#DEwO17bi7hygJm2E>3E5CdXB42S_SAO^&M7!U(uKn#chF(3xSfEW-1Vn7Ut0Wly3 z#DEwO17bi7hygJm2E>3E5CdXB42S_SAO^&M7!U(uKn#chF(3xSfEW-1Vn7Ut0Wly3 z#DEwO17bi7hygJm2E>3E5CdXB42S_SAO^&M7!U(uKn#chF(3xSfEW-1Vn7Ut0Wly3 z#DEwO17bi7hygJm2E>3E5CdXB42S_SAO^&M7!U(uKn#chF(3xSfEW-1Vn7Ut0Wly3 z#DEwO17bi7hygJm2E>3E5CdXB42S_SAO^&M7!U(uKn#chF(3xSfEW-1Vn7Ut0Wly3 z#DEwO17bi7hygJm2E>3E5CdXB42S_SAO^&M7!U(uKn#chF(3xSfEW-1Vn7Ut0Wly3 z#DEwO17bi7hygJm2E>3E5CdXB42S_SAO^&M7!U(uKn#chF(3xSfEW-1Vn7Ut0Wly3 z#DEwO17bi7h=KpV#K2j-Uhm|a*5dzO?@lqF{GoF$+!K#?$%L3r{?O!~U3~9ch)k!) zV`j?f7xX5+_1~K>?#+DbY|QyMSC{|2GXL84tf!l6 zeRsL6*E>Duv&%epMm~0FxA%H?jrnf5-t>C+h`#3IcjRNvr}xf3Wjk}`%{rp4d&J{C z>SIakU31mv|4+=Z&%4IHvklpwGcW7S-aQ|CS6}s)|0m|yZ|*<)p8LPYzkZDV{h0XI z$_|?z$E6(qvwL~m2XnOVJ7dn{6XVqT&R%bR*X_ODJ!3iBJ&|cKpLupX#(a;{dnb+O zoM|Wj%lw_=G0T?nr}uV^*Ye+WS#K=zbaR{`*UaDPf7cxQzsJ8-ceb;4_5Z%P?El}W z|D=1)-?@5nQXGeW#glX2xu?rC+s`!h($izPSD`s+u538-<6n!%0!=>Nv=;w+G!Ejx zdB6b%I004meUmGF92R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10TRn9S8sb0002_zcxaI4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R?wEIuHN= z0002;e{F;aANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D( z10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD z4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarr zKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g z_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9} z-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06? zfe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn z2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQ zANarrKJbALeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbAL zeBc8g_`nA~@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~ z@PQ9}-~%7{zz06?fe(D(10VRn2R`tD4}9PQANarrKJbALeBc8g_`nA~@PQ9}-~%7{ zzz06?fe(D(10VRn2R`tD4}1W7UjiRjRsBCLRKg|^LBb+r1SBGDrlnv&kYP{D7D~Y& z0#mxBrER7ggnifpWeJoe>?vgl;1WPFB9tKhF(5(!(TFJHg5;;Dv7p8uF8}X2_nbHH zy?Ha)&u?8OUKqxm1b>`%}M=lmmE1rDQ;8CLLFs;YVSkrxK6%s8H^J%NOcXp*ob3 zcI`{OSw(6J1Ze*bnZ!XA_{QCk6x4?mv>;(P7PN*HbPQ8Le^^1!@Dx1J8CF0VhtY&5 z>r{bs^l{~)U_->{=zY^1C!QQ|aTg-$+wT&yApTxP&_6DL1gUxd9&8uuK4j;DDyTz} zDoA0wm;%)NeX@*$Dxd^W@c9mG7gOL$%70bRl2ha=DB#5pNHEd?3r$COs4PV=M z8PZ_Ti+UuV*yIUK`ARFcx5h6od`fIOktEorbzKwMv3*;fXf9!+r}jLwA-C&oO^~gP zy_Eb7DodCnJ}kv?b&Bu+-yGNC;xAXRB^O+G*an?Q@dBww3!i8Zn@=i7g2QogBiVD4 zCt74N;<3A;2 z5W6}@WG?9ODv=FrCCv<}FJgN{Wq zY_LGq4L}Hu^TuMASBNaR;JU*vYVcC9K|>tHrmIUlnQRz_%|}%DwaK>Hyir76I0=>i zs1=DtZQiKUUrcO%twwM@)$4?z;rv>&Uz=>J%^!)#3n$^=eRy!2+x^9y&DE(ku{qU- zT*f(Xeo~$4+!>h!2sN98www?W~>4K=f-Bm=ENqe z>fC^zT1#X6BB!mlkK;s##2>2(q*wP=QB`>XcJx*t74eT<$?6|b4cLEmK;jk`cO_lC zuGPigA_yQit4>UtRfhzs1s?ox$~@Z%JSK{6mVzs*T>6TELME*cQ&vdTD^gOT%*D&w zB(9ZM(r2|}pM#o23C^S`7o@R0(`66oe?p{o^hr~D`+WPn`6>L@45}>2`%})Xu}8<2>2QNJ&f_9gxFUSGOy zBLDQ1?jXkg!Y+x+eCdO2qTGUJS8hSMiyOq=`B}F=kL-fnyd>gqK>FP7aAL$hq4;S(q#qmTt<6rM}Q@8FYyqS+bjQ(Uprl=S;jXm$k>T_Kr1-8JP;&xv3{ zIAnH0gm#<|TL_*w1HVaNk6E!LvH93K9`SPQtpKMikIlpXx!{r`5ig0I9y=85vJ9NF zOsmXzRVIE;n$;0P@NrCyDkQ{`zBl(VOF-XnrZF>+2) zgtmw_@?b`Md2G3u$TdZpm=Q%AJ(V*NxXrCWI>lrS;yGW1ZRm1LWF71JcINeyfgq0jma%rQt9*=ZOqX8>LQFqw(ru?&1O7X#{046fPOO6%ZK zW3rwx!NZo>I@~l^JYNpi`6(2n{qhZuUpz^)%`f+~Nz*nwe!)2+SS3xHugCVsqnlR9 zRIbrk6f~7h3Y&^bIgp7x*rK@Q{J(xykCyo@NOXn7)bsy(e5(kytEufGw3*-31;BYy z>@W-wjBIT=)e&i2*2{<-A`L0z!?=dnoHwr2lb8mi1&y2Y#vdOR!3r_1p+bbV%{PvQ zLpny|`8fRCWOZ?D1_l64S}}_8sDD?yxd(WJuTnC*#b2+u}}HG~c{*tZ}t>Ah<| zD-BtYK%y%ogX3%O#orXcTETxotq27;#0`#oq!;J`jq{j*6X$7DF#`vr-uANH_Fbq3 zDu}S$aY*xSj~pd}U20&L7#KLvoPpC~#}wp*1yrN6C}`@!GA|=?P%P{~J}g>Tb<*(@ zedF@;MX35e=qF>lc&BS@X=D?-JZmGHczPZ3sfpPQwte~6 z+Qh6^NSb)@wln@$1P7!y7AmR*#(kL44+LKmV`KgTra6s|iTr67+Y{B0(^H;J(GBT# z_MM*D=DF|0r6H$hyh75DZJzr|p9r=}Lr!lMp}@G$9l$4m9v8&ss7k6Q(!gFXBhtV{ z^-}M^^esO53)Q9|dgFfj7GHeX2`(xZ0~eKx<{ff_X*PJIk+E!qpQN++g)nk1c)SsR zG%c&e9!c@rD44wh3lf-EX*F5V5M~-aF)U*AVnKXy`Qcw!dXi{ctYCUZAO3~C=b{GeFIJbn zxJs%laJt}}5S`u3SG81^vn9wed=^{GNEwccn>V@ed$+2#JY=uD@aXNuNJVyWn^d`d zG_uD5$=UFk%P=rj#Lg;6kBiBINYitJGjdQYNueNMTT)Rw?JL`e=}Rg+ZF0!fPWz2a zSC{Dd^*K>kuYw@&+k%u35GcDdx z0d?$4+C}ISh47`B2oHkTLBM$){&F)Bt~b))K~QZ>IXfCF_PuKTO=56k9;%ODRlA)C zDyof($4Iwsan*Pqrq0 zB7%x(S}_gGIdYiNd~O+d_N>q;7S|YMDzBcoj2yB6C{0bESddM(PMF`nxtiMQHC)E) zrSn%VlmZ>XwCN5J`j{WtoFAh(G@Yl@36##4xwc3%2SIeHAiA_-?|;m=TFhLUhv?q_ zn6uQGxl|Eds)%AeI%+Lx1`eeq_?zYC2&$Uui!zi~FJVUb+%UxGrsNoO#D( zsx1%C#+mD15kbXssp7d)w4q01d>#j5XTw|hyjDS;WlN%(z@~C2iVP8@#e z79Wu&EK?XE;AYH+Us`*y2Ea2n7zY+_-hlpfPr4Xh?94QKl|0^J*RbYCMV# zEl58sSBQbj>x2Ri0MTUB%;!Ks*fcn!9z@EcOl#*$`IKmq71tx(Nmgws4_DGBNN?~1Zq zMh8_X$1tbE#ub&KVMS$5Fx`f2Do6qe704YOiJxbYnK&Sc|HBBXD1|c4)=?^I@f1al zlNB9goIuArRO^3wobVMeZ60Cfbw#d^g6%FRp`io;kgvkI8m6SHQ1HNr!st4_YDax| z37LU-RjZ3HYL-~~cxAn6u1AJw{z)&k$+S(K@X9o83!1z`f?IH=JL*tFrq2mq(BtCs zJ6(KUn~TrQxcHm~7oT0{;QJ9^MlBLZC^jK3S!8OU*uXDNJxlV^GJ82AEkctf#H!&}J;#JSTD?Avr&-I8ULBhb zPe7NTs@d0)`=ZNFv=BsbHN5c*$jrokBbFIX=kuRQJlW8B52Nc$nzAB`nmvT5FEwL? zU2~?wPO%1b!(ir8m#)c(8>@N$AY4!=D#QW?P2U8gDvs;Sb&4mJZZ!!IyPdi0t>&f=n z?Sgkn^MxDJv{)77i*slkjuP8*2!RN`IH$b`wp=KH?aKELyUQs$M^9VM=@RSeOL;8Q zdGvB#PF)7p58``nMp}T$`ADZB=MoAL_@3KU1Ya%`!1uE8n_uJ#8xZSC znjscqHqpd0nIN`2V;?0$oKFZuV0->R5p20o0Nd|(wmVL}tU8D#15XCHR)~*qy^CC3IpE#Fo!KM~Ur) zgg^wg7giO)mJ0>2efw`W?&K6*m=tU;ObWIqmNNU!2Jg-RFGMr%MPKzcW~>cqtzQg|geFYDZO}7u8{NcMjc^KUBn9K0!lwsZd@0qA3NF>hi!LogLZBw>Qy`&A zsp-;6B#;oU@6jbPx`&o-Kb?yjC(Dm6OwJ<<;!>Du3M$_1?dv2@m)k)Rsau;)#28c8L^q7f(Mw?v91!5H6$)URA1I6 z*9kV0bl7kijj}+H?&S-n}P!82YfzB*6K=80mh+~egROyA>I(_egP!mNLO z@1l!tpSj@?2Yjn))hb%`_kx(tydw49*NI$z?~sAb(v6qvAa~tZ0-j%6&RWvdP7l_iKTEB)9^>i#9ZxH;^A94p7uwDcfEokZ=Yma*#}Up$gk5a0OKm z4wPOWPAsxd6{m~jM`lS2xu9#|lowhc8G6K}nINMIT4p|!xIzn&perQYG4r80+EQIA zYbJn6Xmh>Et{Nvs?rDX&@T-e4&D6V9xfZ8z@}1Na>6qpLY*XzNQ~tPkC}E?gCf`|x zG%64dgrnX{b459FT@7M#?HM2YEz(Fx&ws9a;~IfDvNd*Q0|fWC4-1^?S|oDHdF16&Iudu>&P zle?n4_KXu-q!1^%LIL1cH8|l_HHew-v;ZY&fii59Rt>;yRULMCY-j;W2p1qhQbe)T zbVZXEpoFLbq(}n_Hn&KRFo{zESEyR&h8_j*$&bs-?|X81ey2w!b!#;mYfY3viu`@A zG8#j{V@d2Few5m%0sCKX#t!24P*d*p%c;D^kYCf~%H2uzWB)1-^tdmIvvoHE(_TZ|7?vs?`;eBlfLNZ&@!2>x7Z6((XGscyd$?A}`geriIox83jRURss#3 zh9BV>d6tayYceDt0sH5*>5eZ(`qlLU>D2_E)G*Ssz7z|| zx(?~ft2@NHP+xv%`VkXhJ#pr)5u{gDpDfR<{#vT9ka}H^xi%w0zQ^O}!b3IAx9QR5MLBiUj6&+V)Y>i)!jw{N zbL!}x%UOIQu4f2E3A+%R?}@As<4HCFQia;vW0q&gz_w;tKM{V7FO46+*ylzW9ZsoHOA_h zjOl!@@q82&X#91Zs=QOI-84Lm=oS#%k|Rj+p;<_oUhlhZK$Q9JzIK+<%ytQm9C~1c z?(6Y`aD75bMSyU9t=M^etqA3TK&stCka)fx5XgO6V)yl#BFc4OU9STxugeHsdJjPk z2iTRUYxS%z_>8)uyt<;WwX2nV?QV<-aS z)fvHfbw+B(D+2gbgohQa23BKm&Bai2ce{B?JBnD_txCH^2-b#`5|`3gpeL`X<5ckt zC{l=CZm1B&Hz-y(K@BT*1hX7acq(=LL;!F@N>!$$-UtBbjW*8S+*n}0S70pM(5_0` zMJYyZ*v>|FF7)(qgz~JEi?UdcxEu6{!(&=u<#Zn%y+43%WpwkuTndd6dR2nL!ydgr zOKz-}mfTn`7Hu=U%DhTi3%BS-osr$BgDRpA0)9>oaGskKvRq-hQDK5>55qJcFwku* zbo-%t;#?Qsqz79>FWjW$bdwIQh%p{izraKMrc7ZlZfX_8Z&JkYJX0~dbDqU#d2f*l z`n7_75sK$mK#Tu0MjH9H*p(PbE3lor>9rauGK%;P3hic|O%~{poApq;IVBb2s5lC% z=`(Tb_C%b09F1!n)f^v!)OuXjJ`#J!dF$+aUgDHbJ+%Qkrs6lmFpkP`h~qyxl+Oj7 zvcNgwZS^i+FFxL!eRYfJ>$Ff7nXZsb0$$zXmWM^54!E0jz|H#boFfi)_a~zvXbtIH z@zxrkq5*L8ExNj|G170*D^<6YAysM^>AB)9bSy$?_+0Uph;5(5GS^S*Jtx zmXuf*>eEs^S1j0{zH>(IB0)TG&UkB`oHO29C#~K9G2qa1#@i~~{;gdSr{lVTxB!;7 zHVg0E+AKmKCR# z_TQ#+u-nuv;GDtXOf&GgAZhQBXjND5*_-1SByj+qdSkBt<&G{iUIS3!$7FP0V}iF;Aicd6sZzs8 zx#e~mR#X}Fz6PqKx5(WZTqw|&Qj!X)AHKaGi6j*2%Tnc*yngg?3U`el9pIEZdWBQ& zARI|zJbr*dIpt2m75jJSHOD&?79@sGxbG~J@>0>VX$~srsBus|f%P%K^5@=@cz5Xb0|4be9_-_4=yQcGc zwlgu3F7*DXJNs50|IYqes83AxU|Mzj{067+u9(1d7xuYbr+#>*B*ktYWh4ZtAyLMf z&{2DSCm|9FK(I}xBW=XEQo~3oqm4!rl!hszt=M#g3%QE(#%Y^QN7_K5eDYKqn($)Fg zZOilk8XeK@O(%Mq!&ji3C6Py}-to95d)w6e_EQV9VGD1Yx<3swvR+Rf)(nVH$QhKf zV=r_gGNT|U4e2PorwWbN095!caoyJ#>1#1`7`C;PC^d}qC|#R$y23~4+GG*O&V^jX zc}MBmdKqnN>&3cIUzX}on%9rMBb2*FkPbNZdy;a5-a|N&M98t<(}FZ~+C6$z@E(N) ziQyylp0r?hPg=BXl$&JpyIkU;jkFf%fP30iNxKLgFf@1WX7iJYwtyIQlabyKeQ*8FR~^_cExk7nuAQ$sZ5M~a zy$aX83fE~L9tS`86HbhW;58%yxxWLrXu$9~H={eg80q(A1l;>bKx!B%f!x;x9Z(u3 zkozK@RP$CHxR9$j?;yBOPi61xg=P{8^=hdSNRb}(Q3-dFU>=~7`@4lo?(dd%hp42z z0_i~d{%l+~L=cH#D!E@>>iq*ERFS?m=xtk+qTr=~q2WYV6Rnt9v>;V#80kU%Ko4|4Y51Uipr^>JfD5^b^TyEw zeKL+7=o9NgeOampbzVRE4rT5dK{{|KKiDIO@`HpUNo?To)Oq_ut#1FJq>CTa)BXqh zkx&4`hsp%Qhss1~*h`39Um^86aeIgkR1zA&5+XOOPz4=oe}_~s=n^7xhf|m16cpxw z@u|;BJv8wCqVf6`vWEtc9kAj3MSuSt(x^bW*zlEd5t{$unKHPsIJ6fiFfxMNkR}gb zO92oKK7?Z>tXtB>UR~?pyL1KTsFN0b zdh_e;`?T(NZ`?up_4Y85`?OBjU-G(SgnqqCghH!Wr97)C_Sy?ZLXa8~<2+2hP6Gzw zIYb8Gfb@=TfwiL>xl+SO8Ry|L=z!8N<2+negmJi#t2l3F^Khl~=fjm^U8p}xm2o2b z(#J5|J%Vh^hxta>u+Aa|D#$+iO$3N z=JgLAhzha)Xj;H|G%Xh3#Zh|ghMsmVWezI-astLeuo@BzeX|V^XaF|+{s`UI80p_= z5@5g4gjA_vq%8D}PUwKrFbjR7vj_`uAy;wU(esTS>CtcWh;^YJEmamO(3?IU;tmqL z9S;cx-|Q3~`X-@CiQ^rrI@5WK_z5U~vnQ?_h^2Ixf4-?_sNd`pp@Iu0tha!g$J8A> zR++CRxM1>FQY7fXu@-EH9=hZgKEV9PQh&Mh$6HDh9!q(JWDxx2(w%Qc8VNSZAb3oN zXy_#dbXfn#USyyK4tNGm$$K0eS!C$9n(`k9{}%a%K#<<$3_`mczfyV}{9B6hM(c_` z4*o5jV1KI>EpX!|_&7L!i%~K@sP7zpi-vI^D4sgLlgI_0=T>rDy{-ZAPy;$~UD;5D zeR3%GWP50zV5Ia~U;1F1kbk1jmCJq4+ErNY{f#DTOnVGD8K z>wugXsf}6})<#-7otAI6i#Gp<{5UaE8N}Jescpc^h}8B(g=q7CNs1Grv^`NZh_+g%ZIS=ePESx`q_%o5 zBignmr!DZ!r6(vcQd_f^5v{FVwD~`d^aLeFYU}heqP6upZGrCoP{4t-)?f>9;Hy8J7^$rm(#5njh&KP{d7h-iNNr7C zMzn3MPFvvXIZskzq_%c1Bd3j8*z2@B*)7`qAGqPfNNrTASW5?-w!n92o}|PmZ9EkW zYlCg;YMhpJRie%Ru^3K_)JCPk+K|M7wANz_@iPB+TR1UNTdsR@xQQ~-vaVUQ`9HA2 ziILh`AuYBId!|mW3!*@$sT#p4U3Yvjr4#HQXoy3b zDi#!?W{OV{N+ef%@HuOBQT(Y|B)UR!=6dis*VqRAr=W8=P8C2@s|Q~fS}rc6{k zL)bVKL;u_oTK!CwDxeyig3#OCdutm0=4v}5i?~oAWevzg9A55yCgL);_fZ)xMdJ-u2b}kUfp;mg9H*fh~6iByxgNn5A@RK)949v_x;l9*de$+LCot$(rg=FYC z*E0~)l??hg=t}sBOx+^zel}6 zR#5Siw`39d2ZX*?J1)*;u!Y!(=D(+DJo4zLfl4;%j>c*XWsstB z{9uf}qw86!f2e^f=pL%@U~<|*Qs`P3x&HhA>XA%C*>1{rL!z3i@fFlI^;qu^`A9Bg?qX&eG7NQP0jwjd6zSUp?k zK%y%o$JK>r*Ssu(31R1F6C#9*0CbZh9Umv)fyzm--Bk_g7B%1N z!}gZ4^K6@LG^l7pPBiQfp4B7y*^CI`C9A#~RYhA76`g8yrwRpB#3redUd@k&>-){f z2dvKyY`%0!xfJ5Wahx&vtSZDp@!xOLafU5LVv6^sY*(WC`)rboBew(L&@|=y{Yd*j zg4#?9#e!!Cu)QOGXjpd_Vh-adcSHOrRh!yfjsz*@`sp(h{xMmEss!Y2!hnPhE(yks zO^l0yU1Aqn6dq*Vy=uIUfYNXmVmiBXhkNkDh0pbQZ3_7R7h90defNV(iK*+*a`pe- z$8(?0_35zu|MLkk?)d~Xi*dorz1zL~#xz&!VE+I4w8)Vz4Y2n4bpGXD&;N5FSFv>H zc58n7B1%)iX6ex9>5wI%eQ7ivh?|$_y%oV%?2xBdPwq}jrpI=TO~H4`reRiaC`wI& zPp6Vm-z6h$^c6Dqou*lMDxJQ3CO0+9f&BvoncC*}_uM_M4blGo2gz}9E>r!3Bw{C; z@2$ookA4~e!4C-2Ku}{SgA|cbK7aoLQPEHXRnRq5;lbpzg{086Fw$H7Ad7rd9Psy? z=n6&q`xm@(D{QI$d<01a{WPGS7ZSRou^`A9BTiP*s4)TX(lqbNu9VCPt zgHi=Np@F=Nr z^mL?VQY!*xVxI!cd{J+{dXWY<35}VV?8Tg!LAUo(rI-eL!>;_L8e#sIYD5TcUZQg_ zdRZBr^F{gq0p_K25yk3KUQ(B`TW(cL9}U!-NLXchTdD0Gl%Zko914Yq(;y& z=$b99`$Tr;21r9|dt%bM9_+KwCnk8FXHuY@?wf)1crtx|EsZL11}jzcB&D9pz-Gsjp~9y+UbJ z8h2|Rhe1fw2zt#Sy;Y1}!nSX$QVe~CDke!350C0sl7ieTNfE*=kq7fIa%w6u2RX~H ztf7c9J*9djBSJfpZ3I1i!-K}M-%9u1#7cBeBRZ%Oc{H>Z1L76jVRO`e8k2?W?^F8~ zGrU!d>|f%k4Od%>kBCZC+Jxhm-aDqRa@5ndSCd}FQ(mQZm*WQzUzHL4YQ0#< z3C_ZtpMfk3r)fjF{8ic^K??j)Ce6qo!I!aDpQ>(=3^=*vo!H(TKeB<^n+ude!wIp@ z#9!@H6;zCLqr$^$5Le+hq@c!;=A3c4RV6mUX$}(Us{>L3^MwwoQjw!{*!Uwo^ZOBH zhz9?M&wr$Y_eYhUK>plnJo4zLfi&0Yj>ggm&Y+r{DQ-1NWd@5$anE2v5&2ZEEh3$h z;`pxu0zuST%8$C7+;e?LYh&ob$?7IlhA+QLL6J=4ET@0^W&PhG@Gc@RTRA9=hCWw zQbzeQ!rcxMLT3s;Nh0k731Ss16suY@(7Yq}FFL8+By+jGl@F1i0 zR{1ir*dBzOdg~z*2-0<&K{b@)r|S~|!4d4BKYF`ISgu{0-VOz>>5<3hceBVxMbDJ= z)^xn2g{amdg?I@Mg`O|p?&W7&wNPKKP`V1+2jUkF8$Ffy7#;kmGO{Eq<_zn^vS|8~3h?`K7@4Gc_e|?pU|BQ(A|Eb@_ zf9!SfA9`H;PM3>+FY)g>-2VTxxwx;z#cwye__rAsKO_3zO1b^tBwhULau@%y%f;DN z7r&Ww@z1j^ena&Atk&(nUgqNG6No>MAU(;7se^Ec1lL`CYo^&EH3GcX#mMk=*ViLn zLFTQyav@i-P}kkJ9(6ezQvG^LJkIMWB#_WTqOOr%ccoQVdUlMi)K28P0M5YH5^V1Y za-!cp&`!ifC!x#vl!Tu$L#n>-kG_#jE3~utSB+B~dZqIUP}_2pp%<7>h93G&#foo! zK7Hgcmmhpt1$Xi&``~9XV8VUyvu0mE(%?aVd40fz0)4Rb%!?O0p`W!$AN;Hh31iv^ z)ED^b0Fb6r%c;QJzdaE>K`%jcJ@7f8JOx-sNw_{xiC`b_0XND%c%xhJ^&h0b`;G1* zeZYkReem+6e`lPcH?q?>=~xSQTEI)DuEr1{7}#QqOwTOaG^lYv^7>WI7PqE^}%0|Lm{Da zJ}f<>caqT6tHJxnFI}vc*ny3*m)^`caKpXyW~N9laiKsj{p0$|uR29 z8nfd^In3{i)VnNZ59017qL0kz{zM!vw6--LKB}7i)KtXIBSpzLf959KxO*t>K;S9H zD0?O=)1q+CWFy{7?0FY16zG{bTV?(vM)gb2Wc#IOP8qA?$8nPLD*kQq*Hf6eKIbtP zNx7pybAnvO)4EY&{VMR%PAb?dJn0@~ul%|$x>tT(SEN_CP@q>8DcO0Pus0UaYzi1X>rC=vfn2AD+n?B5jg23#nB_=zuWSnd@4 zM!msr)Ej(htPyX-y`EEeO!KFNFz#Kv7jq9C5wt%s=Jtc5noli9iSb))4w^8pztvV` zRCA#K#_@RWdyK2S ztrH+YcNVQg&LZ4t>CTJkswv-D4F5(iNTK7p2EPRELz;}42kpC@sC$=cF@K@^oplkA z?p}7^@mbF0a&r-0CK)A`Zx=Yrdb`+J78eR&dD;Q9u5nntt!G(pXOTcc$CMJ5%h5*@ z8GU-uKiwLjGdo^<8YP;2J!o&l$n1-F1*JE$<3a&6uRG<^GClW6 z#6~d6+z_I?U^+@ff7c(4=c9Pm)+^~I zApddCi_xRR^c^%j>bQR=Rs>Tn6u@-m_c|vzMekGyrtee;rbm<#rgPwvf++IR{wPuW zLje^3Pz*&b6hN_W%P-M%3CH>$6vaO%ipP}_itbE}ypfw%xEs{`W0NnOj1tv9%7i^U zEB#}6k+I2z0;sM$?Z?+URR35dWAl$yGB!)X!!LyYnd_T1`R@3Ri{ZUu?hq&?b&K|Cg)BIJ z`4aXhkzU^rjr974B1m(g0MZXMU2?ipv_2z9ug?h5B{BOCBTZLr>5kVRqI`3}C=q?P zDH_ptn~EUHg#w6v^u3sTedXO2LG;}gL9`?p!F~Ukz7ZcDr+n+hC{cZ{IU3dXie262 zLIG6IxpY>gQ}mu*-F~kP2_#fkii|+0hR;#|QYRLVVovZE8cPv=>n|-uMkyBx;JNba z_dezn{iR(->0jE#x)Q~cW&**Zo^KTz<@o$-Yc!sJZ7qT)7Yg9H=8k=ic8dPmA$b0^ zL+~uoqu!kdoS8Sf;v2C>iR#~IEJcjczqJ=Zl?w$>eehpve&-bZtxHh-TbH0(k~3HS z+z;j_dEY>dyJqmsZllC@fDnklcA%>Wwp=KH?ZxeztQMns1>1pMB#;naT^Z{Y>9FTl zY~7<)X{>e6#@L-KE8MxYRlc!slo!1mr$NoKA1Y<4~!1(aV-#*eQ`ul)j{PzJQ zkPu!!U3&A_AjX4yY$NWP#y51167ToRoUSn5@0S(9n+pZ--eUSYpLUAguN1uBuS5a~ zl{8{bx-Pe7R5n-^<2tevwo3&pN^PpE_SWsg&`hJ8x#=T$ipO z%t1`=KMKy%_*U>yqWrJ=Xq5j|Uj$_?6hQfRFCMb5Q}nO2p!}~i5=f||8N!{V<*zgH z?e?R@_TPj+#0dU(x(K#hD1hzvJKN<-;=h{(+key99|@H-L(nQ%?vu`ev76w>8b*h2 zB1S0Wv77hd;5g&q9vvAaw&Mta2yDl-6~UGZ z1+ablZ#V8FMs>Qen;6%L1QI&2l-aky=RpMF@fm5u$mb7<@mIOYU#w`~LpnBBL z(}L;-eKKx0=o3_rFU4_7&+^bcPPB$g?^p~X%a5xGvaeU59r{vNY+?*1Hta@R_bJ~F z30LvHdqNGH7DkFd90h?gKRhVC@Dn;l%kgs{CnmJew)6n+klOf-L1oIt+emysncF|E)5S;1{=Kbke_MC3BvwlP=2C947`0UDo73*(r%3r5 zMQ(R$0P4N4&&B&@UEEaR;>%JlZWH~ahU8C>a<>h*{Zzumw@SHPYux_1{Vv|J$;AhD zxOkPwA138bs&wf`i=AJQaxL{P{UZ&CKae0j$qJ<>XOS_}NIP2gF|mBpO1HmJ3uS}? zNS~itg#1QrzC7%IM4n^D1~R0E0#6~jhf{s!1Dm8Qicvk9 zv_j3Cd|w^5$$Sn32bx_*&DMaCbBPW|&Tv9g)}|n_{{bo%ic#v)UZmyXL|IQV8H*io z)eAp#>6hpngEbgP#WK9qOEh1CpGynPgB}g=~A#r?90N zq_CX#r(8?%mCS=$ zU@y84hMuuG0b4YG;@2{%+O(&3@|t>VH{l0FH)=yX#8Bp!BYhM&ezWYSr?}nd|I>~c z=Po5AHtA7=dLSBT=SfdC-HkLDwTaGDH|Z0h$WJ97g_j;24Tp6Y-oSZWY$j%kN5$kN z&k1&0PJQrgLkVaki0P*RRc>0RI~vPK;|x-i#1AJ){O)U&(HIII>e3y=*uUS87WVJS zxb(YdSce1hZ=*ECx77GDv3~;@hWN^gVEUzL-~LE9p*NHD6~_KK{(a3t`ic(hAYPPk z@$7aNpX#^QCx2p(%by|Tj-Wi0Po`bG|A344>2vX3m52)kl$%^0k%{y~(wC0?iM_u4 z@Fwy<6Qw6YF5ZPi$Zt>WL;Q()7jKr50lZlX32ubt-t_^&k5M{eoq}$b`SLLze@Y8w zyh3txfBBeW`dxv|TIJ~8tW|_?mCZjVDaB99>fNGwSBYKw1)mYkEag2PiH~*y4h;mX zyaNRrNR=8!I6QWqUJAF61iC(}*6# zY)U@f?!Xs}b;?P*UOXOOGx!e|Y&_r5ub2)B_RFpTD8xK)xZD0OeZVR+E z7{se^1}P*qf>$Y-x!e{+$K29&UB%{df6LsfJjK~>N&23i>WPk&!of=iG< z%mcJHSHwS4`)DUg4I@y;Q23IIFeyZs+rFoH{WoXC{(Zcu~rdk z$oHCK@phpP{K;#FjbJw-kNRtOge5-S2dFd<=sH}t%njE<>(+y=)oj@h%@H1T%l;xB zl?w%WSj>ZUA1@P+`f(c3Boyl54|(tUye)T(^l%|>yEPr38UWAMwb((t6^(z2s|ceF z=_p4p{JPG0+im;fUbY@f(cX3|(x<`iZ8<}XTbqK!aJ=nSnF8K+s|+-e)||KHmPkc~ zyzSN%`QCP`Zm020@8 z2^L$YM1#Y^^R`=eAbm_i9JSIoCIh4e!}GRVXH`Ykr-GmbVbD}_+l&efyrn%?^K z-_Dm-e4+`Nu8_FHw?4gPy({pE79q<|w1^NMhbi@wNWH1Bz%48ZMnO;--0^|4uF0VB z8nDmz7wNvnfO#7|mE5KksZzs8PbIgZ!GOxbr;^(gJC)=@fxZ;;$U2=QZqqN;h5EA8 zP9+QWqtC_h$QGm{UXq>AD|r>!SGSnHF3yl9DzX9q;GJ26?af}@;+BUcPp?W;42Te3 zw)0^b@q^r|?9dRjhBWeTC3G|ZExw;z_cg}Y+D=b5wj(~18b&(ux2uJYh>^ctZILM- z7jhNnEuw6f5*FJoCDw)dv{Xla!T$6e0lcCphx@4z%M$x-AzJ2{Ja}L@+?h?1B z%m7-u%$awh{>cSirrE@Wu8QrxYH@o+>pfZIW zYDv?oC_Su8{b}Rmab75J8>Y@6;kfrh7dj&NzOvX1p9=;0Q_MrhSLzJEvR|wV^=GN^ebK)3 zu|8it6}0_xoLz_-(Qv)bFP^<^>V5mgU1B^dAOK=F%fD^v{&Z}kKwM|}@c|JEoeP!X z#Zg78(CzJvf}k{{QGXA?rva$&vj@7bG17NNS1@ceofz$?-#N*;^3H2_P8ONva3R;U zyxINE^)k!Zxn8Ub^<}A!`n-Phjd&i}uECL9uXlp(QoGluuhbF0ORd*Eg3?}}erh|0 zJF$zN1MQL$q1pLdKNd^hxfg5tU$W_5Vm*wPZzdQKL2U5R4-5hU9Pw5PDH!daZu8|} ze^;I3@0v!2)G$)c-?f7)$s7H<7MtU9p#r0SSDoYU+AY?F`t?KEr@kYByF*ZqobjWJ zst8pLv`^cJcdK*pr?b>=<2L2J>bKh5I_}mjaW7jtHhRXt8|1uzq2kT>IYW$Fn}W!2 zX8gO=6qxbvRs&6>H8x$0!chgHyyY*{<(2So)fx|2}eAF+mH2XsPv5HjDA|vUrq5eG z0~zQI?;-}@Qb)akQRz+gv@itq;fl{Brp&nMOlieu5|D6(#Pv;?anG(!^Ji*z)(sH~ z-9uH1lf8oPO>^xRd}dLzhx?4hpXh)Ake{W|rGbF06)<CN%Gw~2M3UM#g~UPKT2+!})~7#DJD6Pu*@6aj)gx+SLLm^!eX zdT9fB1w}u`0v57sP8;kmVmDOHg|3seOSqB0)*uk2E;0!=vqzgr8C z9z+HWP|RVN_q}~|OO(Pf>bbRvy-08tN4hnAW^v-c&FlAnR9i9N6%x00^ZEx5beboX zi(8vS{Y#qhil0)yPNQoW#UCSQECj2;T^yL}n{8;m2B1DJr8~YD>D3hiY&DG;sbQop zuDTvNB3xW`#4AEP7srKM#d#|k)oJO`>ad{hjaf9@x&)p@GIlQALb^PEcIw+C4 z{*Heyl}<{eyh4K2^>-|$H;a>ClVFu-5~0u|mo%ySuRnGvhV#=UGP|}C$B!m~7l=`tA`RddJw_UIq{MbfI0|AGde2_J< zCmntoFe0Yt8O@X=Ql*BG9@|qg&=GNLPstQnrQ||^9)uDKWL>L_*D0+?i0HvmJGMi; z=R1}ec)>Sv>dI~Q{X_Gob~+fQk~_uzo~?|*UA$LK?+K=Y-N62qCg?%7{p>bhq?G?CWa)RkKz73ED`AxW*A+MGXiomxYg{vgve&LD;5 z_?6Psb!syV;+C!}I(41e9%suFQ`@ybXzI$Nz+sk~x@IlhmGlaUAA926hklAQGVt_e=e0sA$**rB+}#h>dW95y`1?Tznp=Vv=A!y{Wr z1<&T!VLOf=2Ul<6bEHp$pW!(}j9Z(6#BdnCrn~^d*AVNH)*QogOQfPah93`6YHfQy z!`IX!FA#*)ID-^YU8ThEH6CHFE6VUS-Ep=&QPYiBpn0Vg+uE%>3S35x;c1@&;nlBL z^do^X92VZ<#6C%+jY){3R#?aeNDGFyII&M!RivRxRa9WRj0gXpzpNXefql!?oLs#?nz=94?g|MZt~vRdsUlb@ zgt%{|2;q%^rGCPa_qNLfw_9)-i94(2j~oH%{Stsd1NJ|!3lX2E@gX&g)SZ349y%i2 z+2@NbL~x-%?}>S2oi0RtUPp4M_e#y3`Fak=m_BXJpbNHEsL7REBMUsmEY z^-kSSc(0m19fcE>p0{+FaX$qJSLh<$*nXr>gWrvDh8VXt1&QIfvHiLWxUv0|m~(E7 zTOt+ZxiPYgTAj*wWBa46!64Ml8KjT|O397wpMpW$(sf1M*#4O~Tb|fIqXj}IDm)4t zW;r(oSq_9(yJFFfq#PEdbE2~UfEZTbL`7eL_l1g`uR2gq+`f<_BVqKNuR3iPC_$Ei3<+o`#S)G2JG{zy>(w>;C4V#1{)t?Qo~4@ z{(uZLM=<>X#g?VGkgGWF#N_~8mO7vnnn@_stEI;DL+DYT2jJHO3Fh8HEIQ@TPR22z zFHTIhth->>`Ei$+Y!N5`w7YS1-37PNk%5BAb~y@?df=a(e-w&A!;5(xE(J#9kt_Rm5)&QIj?32zoun(zH!$^;s zgQ}n-;;1>Os>ta+7jhNn9W@6fWfUBg6zf8x;Qzn~@Ev8`dD2Ib^DH{z>VcF7>>onM z58{IdByQ$j{wVKN{|XW2S?hObkzsIfGg4d?(etc>NuLJvwYMP58DiYp6eNZ-&pJ3; zV4ihw7Me(FZl1+0k&5!>S>qu}t!~PnXB|SLGZ18M!5O5m)aF@-G{Got>AIrxtV3Gk z5Ts_eYJt!^i${UOEH}@heF{{tOR?xe0%bTXyyb#JX@5+DG>r|A77TB>;82|y9GXM} zR7C~0%XsiV{rfJhqdq6#UoHrcCPaz_=w!t#bD>DyLhzYyx7{UUU3DZ5qrjQL{xxsRFC zee3>x=Vq7SW1M^98uXrck>pgwg=Hp+Oz_p@jGw6(qUWMf>;B3@$iIn$l(d3 zN)01*t%s+fBf_;Fo-X2Axlmvvho$S0E4oO|V#NJWL*>$HexUZ>Fr4Fqv1oIwi9@hhcejA>mkh+Dd@sC%83 zjkD#6X<020a<4oJ9A=U3b-F(DI-T4@4hzq{PAAVZCPA9U21pBr=U%5bs|qC&x{1C5 zjX_&6w|x3t9AbQo@UbIx_}y!OI0plP0Hhzn_1BYs6*`?<^4xc%t=hh4n97dbdq zJ@1GSRC5K>T@;H(Eb(RdBm=MM?$zQ%z0$fQ7eWD==T!$=+Eks0WSaF9n9 zTe0CnuHw9N&m(ok=EzpDF4UK$x?+>pk3JX2BU_O6)@jf@4(Jm7fW=YGTW>gUpLEYr z&BzX*wDpF6xEpD7sOZxIN41GiXc|Eyek`UEwDM9NTZ#!Ief@#fCFjRZ!>Y_|d|x!Y zKanSm%dk@8)@c%$N>1iUWw2aM&aKp_TyR3k7z)ONA1^>H5HN(_AiRNXUDB6Bouhu} z=qxg%hLIjG$5cW`#PM=WWswOb7Yd97D4_uBj#2JAM!7FE68?{j0^iZb9Vq=&XhJ!o z&LOBU9^2;NtfPq_4T22y^f-FRi-txw`_x~~*P(!H9SYGC%DOfPXn+Q9y@oTyxV0%r z3}-@F*PBd6zJDi}szk9V6JzgQ1gzVEgVSf?qlL_UFJ`oDNX{3}Vltn(! zn_wgasllBjcsRyp;m*-B7 zual8~e4QXwf=^;B!pC|}!=y1S6U$kcWYR}`f)he+yI?c;SVwCE0mHAa1t}QYUrhOO zuzy0W0C|FrCV0bW1;(sPbPgD{BD;s#JII7NDRmA zo}4P+c26cvq&4Suxg}CjA-8+-K)%~OxgBZ(L0k=IkV5BbO2_S92TD2J*5TdV-mD!WPr3_cy9NUE>+RxQ$a{! ztkcuK^K|g@u_JZ(-EM$HQEt#c2NA+X-*WM1zf1ALSEsFT`_ccgeliU?=tj@&o?3$h zXHcZu)$eqlTEESEd(V<)o?7n}61Tg}d+{5c=2O!`u&1U)==glMTPo)vD{zsb5tk~K zht40l)q={1oa1jZ4vkq9YXI)427xfufK;hrr00(*qMHckm})PwR>Fl`#d+tCsV?ce zRF_y6>bsKdH=he*$OYL#E^Kx!+NS~Ca#|KU6enCftBd;P;}`K>^>4fQC|+Nlj(geK zdC_N%v$7D>;CEr1A;zsuL1H*A?6itxGV&6@X-djD7sf4-iVC@~(>n59*lA=`AbbjY z1WgJtDJzvlI3}?)jmNdL!0%oHG&G2TW&V7+%Yp*OlaJeXKerqGAD=}0JaT}P=U!$LMLB~a z-OC)xM}gVh&)xTCN?XzG6%vYi?!HevD}q^}sM%Q&3O$Zqip%rvb4|-*XX2~l!G%h0 zzu+@;M+3kb(u_y-yEP7%d5FA#{5e?xb50h?Qo~3c&D=`ph;TG>i(R?qLayRGM>AKi zT+b!*Nhs8dW9?`bVo90qP0$6)h#vI090p%7b}k1kDi){%={Q3?kLZiyB;!!Qd)4nY zxryWPZE-JKyD{43%u7K~gWu(Fh8VXt1&QIfoO!JUT+X~!XdCqX9 zAMKg_)$`LIs+v^&@(-r(fz3URIP#&)jQ@S$+tVKSOw|tOwH-8Rl2aG>FO~Bsmdc}C zW<#a)WkV&3lc4L%(s7wgq|$=B2`P63CKgG2x-&S@pf_DMG)qg+3A_g8AJQ8jkA4~; z)6l6q8Y?7}k%MH)3sovGj2IOxY$_s;`~|(pr?{+$9B0LSf)0{Mr@bI0a#fEvZnnJ^ zBI{itq5H=hAEUETsyQh`aY0gqJ~APupHrU~Yf=>{$;JHZ&NQ|w@T1}xUrbeu(*l&? z>YRKhwT=pe11V_L0~G?xcJf;XCr2QyB?|2f!Zn?x7f9}W6aeM-P&Gg2Z#$>-){Y$-nY9j5AC;GcRpVP743zJ_GSfJ zt432D&W2zs2~?_^V#@bgsR=`EB_HdqhWtaDHAA}w)OdPQcQlqmn=_~YbtODk;LxUm zEn48e701~SSFvkhWIvuxy#WIkv}O_?e^?7?7ln??MPxj+rUx-IpBA75S4;lzq5^%c z;DRbGKndXjsu{7?v``OZPKYW%iZr0$0zGA8I;R4zQ1#O?Xgq3Il<+ch$Us9niFCw^ zt6aRO?zv4rdum*F5Q|24JU_STuVzYKgB;I`8bs)erMD24KhK>FehHqVaLZjIhw%OY zv^5aGbbqNs3Lsq4$vNY7Cgw?Rk5Im+U;B8y>MDA0dULV>L7l>S@X zi3Ab~^vy;Yl7{o1ISM=cD}lC5!;hf&m_V{=rQ6@Ag)%|`hwyu~NQ3;cW?vpbs;lHn)5wq-M#}0-JGhd( zTjZ7&`=}Hb3iO{?NY-^r|1H%)AL_r-WA%Bt+Z%nX&aex*k*to!uBZ!k&GJ4*GqGH{ zcv(01&l3*g_t25JSoun2Til5uTRSkC)t8Yz4SrVV3^8tP3KGL%_2rexWaMRz<(1Gx zT63(!Gf%go!v zWsZH2h>_)8=2$^A$N;RIJw=g|S#bMFbSof6j_uaLNzdrwG{StQseG_`^b zG144*6tWcEj6T+SHtx|*W8oxxRh>}~lm>S>;FCML&~Odd|6ATsi%g)kvR@!w*^dON zVWcjHpFBWi;U^HzDE0&b3%iP?FU4$FcSf!Bn;YDLBViWyq zn4yzqZol9&_*h440|CSDoi3yRm$TBo9PBsgHH9X{30`WXW4)<`E6E${O)W)Enz@i` zTHaW1YL{MYYKP{CUL5POK7=0hjdBKGda=+X>zqumgU;?@OcQ5Uy7;UP#^I;DSN#V> zG|AdSyAjz+S<#cMvq+x?3=Hon1kMoS)}|maoJrQ%Wd$Z#XO}?}Y0XWtxFu3ip-I-+ zZTXX|v+JNH5M*M(8KkfrzfziHo!th5xTWigPO{GKinHa3v%9oFXp+UFz+sk~WYIna z9L8t&DHeT5pbUqFn`A-Y9OB9`3DPt+Kw8k2fhD^awFV}acSC|q*PGnVX+VOiAcugl zMeiqhHK}!EasvK|T!8c-QY=8{2lo`hIaw%k7Uw2%Q~?Dv?c9EeV-M`LuU`5(moi-; zA;bsvT1^*CsX&Dg;>RF6Yo|3CgYBJ@6F=K)=rIf zdFPWp4Stu$8DiYp6eNb@^3Lxs;PTF=gPOGFTpqVXDk|jiE{OO9(gih869_`{oIwgp z&E;Lt45PTE>x#O(3)GCenPas{;BN`kQp3BQrB7IDPG>r|A z77WkjWpp~1sY3%)MFqBTNWkT--?m)qXvhipU0#3!3xNRmGu`6tpqRqAY8Q{+f#R;8 zf0@=M3WjMn&zylw=-H%4NQ@M+#T%CW>v`{MCz-6IVtN*Jes^J?Q*&YL$rU?nD{Z?F zY0`Lcgio$mvseVx5nf2B5JI7|;8Hlh3ttYUn*f*N34xVZf~AXV;S~)=f!YF;M&tnh z*z3@_xE8Sn^v*?<0_jDSNR=8!>HsfFK}UoGyeL(~0dgT%ao$n^f^B60ztZvW5#Jz0o%xK4V zG3nFbcYK^7#;r|3VmOZP;zF-_zBmg_q&4UGxFu3iA;)(~#H*e!se+n75XZ+Eq|lLl z={z@ZiH_Yto*TGC?>V`o6|E3xUZHIa9`1b}1ui4!_$Z$OjS_v;^CewK$YD`B3+gssi=@kY3|KmK5TA=nm`bj!WpEn9KTXpK5VA(&n;b7^jxZWAkLO2ng_H%=v<0N zfx|54QfQw7jS{`D{)$Q@P=>?8JD0j5jkGZd(ljd`nPWE>LA@$=Wt|Ak&39X4vE1Zd(>fJb!1UFwZhJB>8`8^MKNrYxFP@l! zT*?V9BQh$2+K8N6w$-6^RU2Xr1h+0kuWCT5)G$)#wyGUEBF>^#6?@v63%QE(oZBjW z+Im%&SQqNs4{g8tTp)LeAYaG@Uekg0Ye2VML)(b2rZJEBsx0;0xLLeco$Ylj@J>tI z%ht|~c7azz&I^7Q$QfeX+7v{F;{va)Dc}OH*5f(n0=XqpQ6U$2bx*zvygCD;0zq6L zXOO~j{7T6MUflzOxTWigy1=XZ<7|22>V7Q{a)CSw9A=R&@R|z2;+hK4;IQyq;5Bs6 zk4ccGu>sP8;km$TbXI;%D;l6GsGVhQNnx+7*3pp@@VmeO6&3;k$JVt38kDLF+<>lI zA#C~@{eOSP_76~8C?xMYos5DWZ#j__lEs1LM0S9#9XZFST2Z{E-l@5^_SWB@eYCXg z+FB&KLPDOm{yuxJ2&UxB;M$Z3EiDbl=sul7*VEkD+$??vdNpo`qAP4G;4o=HaS5Cw zxk~y?jU})b&UX$|^MekP(GoOA*kzU_az>!|x1Wlwh=SaCF zQc)pCy1G2ykzU^gHGv?`gEL5BIew+&NLQ0V+|qSL9qH;soGnkRPH2IUBjr)xFpG4g ztLp`e)kMNMEIdcLx*h3b60~V#fV5zEj&yaes_6BpsK9m^5B~L4I{5k6kvja2G(eF< z0Rf6R%$4{Yiodx2kF<1CFdTC49LmQr>MeoZP=^F(P^8PeG35%}kUpes)#lR78`54O zahZp-z4TQPY!;V!L$e6Y$#V)jZRwPOdBXx{7(pZc*lf1FmGAS2w73ZBv-l)r@H};Elp`QJa z_NveQafb-*h1_2&;i>_h)>?%f#5Xrd>|RVcp7*N%oMZ<0Z;iP4eks)%-fH2V%*vkB!=VuZZ7m<%9}|OY0bGmZi!S>$o<_M@nXuG+o2{9gz`Cq6qe&xO78FG z0T{$BU02lowN}L0@o9^rjY^Cg5kNp z)-F}i6O=Hro<75M(u zO8z*(bU3Ut@SBK-D#=OF2MW%B#9Z8KS&jW!*e8d!0(-M@p6K51Ot+U*OGCJIuJw~| z?}ok7+FKLY)&L56MsJkl41w#a21xMjKq5)$8UWd?by`auQeB}upK@!1z;!EWBcTH) zz}ztgNDRM?TH_3l92~a|ARjHgt@4_EZ{9=;ReFV_wb$&sE#XOmHPYJKYDDOS{J}BS zUeqlp(5qi)Xf4ERU>1btKiqD?WkmCzx0@Xvchn-*0DNxOvy9sbFsWgr^Pk((&=E2J zxjkKEVSo#{iu1bL>)atjpndYDVh57+xYxhOZaqb{}8vJt{&Jg3)rXVq#InEu0?m)UD3r(aoH^yY89h<0grlRgc8m&O@l+}ac*hU3!iZcip7 z-%`OZktD4-m&PrTiVC^3waNTd>$}m`U=Wwa8Kkfrzfy8(Ym+dDTe_~OOIw?Yv*n4k zDJ>9kY5$+ScL9^5xY9&Z5{(-1aPxG543u~_?8XKb$l28kT z)RqJ;d+yz-?~Xm&yLb2Ao}HQ9zTeKy)~-EvV;g8}FwMJo7}`7=%%cG_Q?_`t1cK&W zfDQLQ5$Dg!tjf$*3k=OnhQ3l{M4b5J#2+Uf85x;vtiT|7KE^F!abhK1%Eb@55FrVc z3wKKUfsB)%i(}QQ1GWF#uE9#7PJDs#hm8vHLrh_`?P3Dgc1n9Z%@NG>9jQD%&F7uc zd_!Jvd2XzfA;88>RsUe|cjC`D>D&A6l=i~{@>zufr?h|SK{~4X!{UeQC;m07S#&e$ zaQNZ+_qVHHzYd2#>{p?+<8Ml<-L>Wy6zm@czs$TlvI5`4*n~&FvJtS_Yzg@Ht_?HF z+{zT{x)491D)56$7{{*7iGVtU-!C%Y@satX$V+c$MrZbr9#)YRv| z&9)+9K;G3^PYS}ltx9BXD-yJXUA6t*yeXv4_IvXYwr?`og6nL*w_9z$w_CNVX~ECi z_D5+wk98a3mEW+1-cNI=B^?^)Cw&NrFLBa%-KK?hn9$5^WwX$Gd={4qNM;iTFZ8Y! zJUSSK`=tz%pvwIq2Z^yP^sXKbS?FCo3?xCVF7!-Iw4kts-cJhk3%#GD0ONDIxG@O= z*o5DBTIl_x0EJ9V?}%LJ{iHa}XrB5>kr`?hdd3PYXMuYcKN%nw1Bzg|a2I+%O(6br zaauK_fYxAadlx@#BSaf2KnST%quscBHbsG4RlvK@^9^_qiE_TZi?u3wh4?++dh?;E zoB@B?<)9IFXyoqWjB)!hUHKn=jcbVnTF52ZeNXt{*%bKRS$!zrCDf3#vqw`LgCP9_^K@JjQ znKG{n`!4f!GIR@Sb;>j~(SpLJ% zH`?{$X*7P*cT~VTW%`E5ogo3h;wEH_=S=*b_$Pnd`H~F>|KIk#AL?JkboWO3h9PPd znpJ1&f`T@`zN3D1c)irl=hW0qf&h*;Q@_3gN|~BQoBH)#(;z6-?qY@-Q@_5)O_;qx zP-o+}lTH+{j-`|kRJ9sS7(ILF4ELh`3RLAvMFunv<>we`(20 z6;1x~Z_fC?hTIrj?17(T^Li%?dVOuxvg(0&bghjEsZ#Qz(y%#nqO z+-+}imSO25%bS(hd*YhXsAi!*Ik$!@3zm95B|1*SPn0adHwkx?c82sDqe$NkSfe?V zdE=<0Pt15>l=K@(`i&8!-$>GLBnFTC6AKt&b#LA6pav!W{UzX}CUd!ry4zr24eF7{MrcVuK9*%t@Ud z2^p@%JZ>sX(~AszRr+!1^)#TH$nz*4>bNOGBq>Lc{)_2cOenYsbxYBkdbBUyBxOtP zJsO-d(2%xK*E!#neng;>3-rmG(U5P|^*7^96}OaGLj$-TWw^Ro1tincSmGod>=zHDj0DsL9ut zl1>}C)CP=TW=tcnXl#K$d0Q9?Ets~2PPMm)xk`eTG%t^9RQwjch<{5`6X78Ne_&{u zxk%k2EZAJLo*u$=lQZ?Pk0kAm((XB2f6O9;*lH2(pD4N|N2Htz0N!o}BP>qz$gBC@ zB8myhR~pQg>lL^oU4@}v?rLT8RqlH?;T~2_BhElrrimFKR;GqdX9@l-CQ?a}oGFYU z)w?yI8LmV#tY^xw%I?{Kduq7@o{iVMXFIL9w?099t-`HMDi=_NTlpm5)@Bv@QiH>z zlu2{zE-EHXFU>T}Q%;xUEr(xQ)hkwCx7p0@rdnR8Epg0djtH6aN2>A;S($Nu=dXHxZf5 zNI4(%Ornj}p@nfebs7qWq1@IHp#X2kZ!4$}))R|S#|;7ie-i-b<7yLNr#tiDi`iUG z=>7=kLDp?hg$`+O&IDKzu+}DJZ$_3U9-VRRtrcpfMctmLE$WvK-LM>SsNwA?E$a3Z zg&I(Ze7jA?a=b-CkSx>d`_t_m1R-B@MlnX`WN0gIaoQ!9)Wgz)UV`FRA!Q5FgiNXP zrTBldiIwxeLaa!4LRR*vY&&nnY2wRpy$U%uPt)2}T%~89JcMiMETcKFatB|RzJt`s z0(SD9?mgk1eI}f`Gim)hy4BCXH%=M3BZJTc{F1V4`b17gK2wxI1R7QPM8IG4%u2Os z3qy>|v!AP@Mq(wOPUBAl5)88>)e=NB{8$XS#F@90RDc?TzN_DWrtXp+A_euR-v-|} zty4)NKAk$LL7SosB9LQ)1_?^FX$wQlcrj>WC7({?Pcx03y1P-$X^aMace7g0-D0q! zQjJ01Q$idJ`JR;Z?=GsJg>Rg)e78h=I(4E-MIyqF4H_gU)ut^B)#JsWjg@>ljX%va zcIw_HZG3mp{>%HPBsGnT_IqixleyTERSllF5rl)R3jzRfFz9=8%I3W}M2PMH`8F0y za<3;JsORG6-U8FdHdowRR6D-6r~oxx>%LaRLz7?isxONq(QE*|anw*EM8i*Q@$)Mw z${@mzyB0`Ls!dxMV#Z6?GFI~GH2yTx*s1%vwDALa#eGF3;=ZB^H8hypIl1-D6QC3U zFhqbM6`It5+aKItF!M-w=KFawdViw|O>B@`dChu%G9qiMmV3YSstNcVU=_av_cMCS zXx@L^VD<*&Nx0l#n!`qf?~H)&B0R~%E&WU<32?a~Hv4qWM(yzT_bHI<9OD4ZV>#oe z?jJP%%nN(q`y4e8feH9wo2H=`{wSMo59WO+HXx&nIKc^X7-h^Jt@wfgOK_hRbo(;l zSwTS{7hV{>gXJOr0#)tY4-8 z+=QQWVCMe0cYO2pWJp zqU$Mg1TetVpiF>zyM3Udz5RiT3QcJE_>Y>=w0(f;52g&f|38+DIrh+s8lMpq0Be=* zX2^rWyw9;jZHD{ktLLSs$X*c{p zr}R9OKx&8v4{=}ap_B??KI2P7GYF8a1vvMn+wVmj%>E(n$vxDeLU>Hz0@(Qj^NXxI zzk|&_`}~dT&xeY&z(0O->*EUCuQv7&2|Ta?j9dv`W?)v4O>+6tj6Dq-S^zl%Pqn-A z4>xH64>ze6yEmAntq#CS`@9mtUX-Enx;eeVY2oxS;HQ^ zoP-meWXpOB{;a!qTlC>>WDaS=hkIF(UJBKKQKJE-2e45lNLhuz#%8pc-Qm7MAs#_u zm>!QL6ygyY++Gc6p`)Dt1B2{w&NrODa4vS{;7^u))wzh08HIz@EywflGq8i*%A#@+ zMR6Q`B(FkEeyfv5QfpE8QZTv6+_bFK_I!jSA)^@ZZ#XkNLOa7))S8o2DiT54Bc$z- zGBQlS4=XYh$*d9f_bBb}QQ9A}u5`YuSs!gyzyQ;IG^6}InyHq$-hG_#XnRD~PG;>? zA&gkU5uRqSpn4<(e1{ouSMq7znczI}>(tcsk1;B!&{<(~6DV6>4 zu~s*6=J}E+Uo#PbJbbT{xOP?Rv38`WTJ1$#C-9qyU!7wHK~oi;5aGk{Gipc>ZIS#m7YswrZBt zxO5HqH)ULhRQfj+ZJ^({%rsz{llP6RPA8}qPZYvIo?t6K(W63`o8((Q>t)n(H=>^C zkAN6dJ)Rg;A>97TYN8YWO-}^?9`G$rK_iPqR;I#r4tn`5cFOpgd{WPCdz<^kh3kLs)*2gVd9q zDg=VoVO;hQ)_wx;5*U8%)WUqQBTP z0`_#l8PG~j4A}QqJOd3284TBNXqbfzs}Q>8LKGlHtOc+fZ=4Tbs=f*oY{9Y}2Okvr znPfQhGp!2!Oe=*1TDJJ*j0ZrN-md9r+BAVXnWz4C;+ZaH>{20^)}KR9Ig}~8fgb&O zBVgEFo++siy33_tSdREq^-MaaR;x>r0(#%Gj%xKR(2QM8k;U)E5U6LHRVoN7L#Rv@ zs$R2Z&t*$mFIB~av&?cN@g57Fa z&t)SZIbJ_UCUFo=K0Yg7_>%>_919Hu?TG;Gqn>>#WClR#xboK}O;4h35gqh7cF^aB z6~^4n2Q0x9?6*y|Iz4dgVM`GQ=6~C)I{mg;g{I1&Z1+86OMWA6HH5XiInpd^7a3UO z_}mpplWi95V=Sz*wlIXnNnz}!zwJWA1pF}c;hi{UEo!XW0e0KA_xBJdSvmavwqJz~ zt=BUPJ!L;@E}F(3#+GB)0Xl1e&o{EbJ0jPjMh;5Vtwo=YXzl0O+RwAKLpBYTU`?$@ zytFO;nXT{e!-eGpHLV}~$|=oOPN@)t> zVlzV4`7^+}J>d3jFwbL&OJNyuhXBi=0t2-QeET0t5+@3jS%)~I9h z$-lQn{Jv3Z^m|(P;ngBm0Z2|l$_4`KvlMj6Hi#TLlzX_1xD%1P6_-#g^!M$xg(55t zZTS067TSr33HX`K8aerh-4z0KYnt1~5f&!^y#(k*gaE*h?QV);oe*_)wEs1^pDP6I z==WuX@a&&(I9p|^e+eqM7L{FNZd2DQ_|}Mywv`=iYf8a!S66MY4S4KVJvhP-7iFN_5wM3ft+D^z@7dV+QQ3!A*XD-kW(SB z(JCj(wWVIjM`Z41X4l+gv3?2WEbRDtLC97B11}5^ga&7Ba|Of)F&wVPi;hCP2pM*X zRp?haJ*y?&B~ z<}rIjdjrP9HLw>M5x=bl_fjDOx`)s`Dpc1_vk2240W(OLK^4+=ax+I5+sibzmyy>P z8;(#_jULrg4PH(%y}q4Zrop}3szSbYav|CyAZTna)7U)ia_sGC&YopNC8rU^pD$7539tAY<%K$&?|% zlF3o!m1G1AN48g5RY=KnGiM_*cW5PEaV^i!gbUIY0a7GLQH6Xh;zE=nAchD*>+_K5 z0#w2QUTsoi2u<^zZ@wAW~8uhGz83n$`TP>!FkHHVk} zT1E}&wG4&4EO_G8h3cOn_k(!d{*4SUZ+3 zvpuZ5PPPJOw%3~#>~&Iy9i?jDwI>bifd<(g@xiu->-c&nVLMd_E#=GH6_J^y_Ii;* z)t2&sl$c)MQm@n4ULR5+x21d#m2ij=n%f8o)RyuBjHDs}+LVQnwyF*?Ss#zq!B2<3 zk&Xz60wD^1h&1jjswSfxSuEe57(%e6u40f(G_x zL4_2eMvGzu1P$y>(&p2Gn+b157}%RMus2DYPYc@UTTS6wyhQ_htGQZ{%dt_o4r}8T z&XsClZ;`2hc6o~i_EwJN*uju6n+Q^1di}uj7ESCeni!6!DFCzgMPwgP+jwh0g}?;M zU*R6hduuox;%!GEh*Ri0+goqHVHIO zh-BADfUBDv?8$F;Mu2ru!!8vH0b|3z9l_Y!WbAD+h9^La+!5vNa)cfg>QPZ4kS)j9 zm!VqcxDf9o!Xe&CDa1P@&j-N@ypxT9=paOg3SqK534;Jfw08;-nQ3nC(A;#A@&WWm z0B}5eXOKc-EwU9j-LJ(6)9a1?-A1j#yNxOY7A%NYk9V6RATor=s1P5{6^dr79(Q~h46YV=;K3b`7saKXG9y_bss%M&cGLV={y5Z^0CK=l)f#sqHLX_0LbXRgb*es9QO!DuWRK!vvtQ>43q^?<23ZuXD3vCZSek(rUpTb zu=EiX!V;`@wBc0tfy-1qogbtW=!293xs$Ee>`%gRp)`imR(DeQAQ!IP2YG_#Rmkm@ zK2RMlJ}5>&k*g2LmD>rXqs2Cv^=5VD`$0JZszR+QDuhO__9U|PVFX(rlC2NPmO1ez zgG2yOd$=wicB(EP(!}b3rn}n$ANE85^%1B~g|suadWMD%2O|L389(%NMsManAa7V_ z{6j)Z|AR{!`;km9)xqfxtq~wuf@D?5?TkJMG8NDr{=m-o2X;nts8f#YtiWymmH2Tr2xEoddYntyCk&_6a+tLbXxJ{WrvR;MjAbJNEE~@S|in=tr#z`VmboaO`oRauHB@LgiH`VC{J=QI!8;zB{((Z~mpVG(t6YT9YH6~ToHnWr-WWTtV3Fl=y5JKcooR-u47-mOx9 z1kfOXNM2w+JKpVQ+IiDLQOMAro{&(`2?-Sn>}S+(LM8%=d`%!<0sU+?Pr0Ng6e6H{ zs8x>&`TCiwO$1vL$kqh170}OIph~zd6Pr|*iA^dLvgp?R$MnS32(T={vMQuK%gr3# zEz=XVTjD}9dwP}&P}H>g2{ApfpQXFR`FoZNG86$aLXZ&^^7Sl2Od?wWdQ56oh)K-~ zVHVwP)=YTmlW1g<+N-5k7u_yIJ_4efrFW}PU_Y8&*N-NZB0z@-O6mgp5%rUIpu@W4 zZV83jEulgI{V2^Fr1Wl?2q?0(n}@CH64%uxg00=i)^230t{>q!k6pB+ck7SPWsubx zRG~Vc6;+^0I8Z~A0yWUYLOP^wf~Ol=Bfzo*%c_ueNH=pthiqVnY$#}EPlt2?ikcSC z5gPhgx=WnDL%JYC5g;Q38Brl$ha|-AWGg_A-Ps{`_jO1&YbLz(-DzUGw^vKAc1RZ@ z9|6&=71+I7g#u=d85q$d|5pn9~blY3OiH$%GGM6flPY)vLx0Ugo>s)Xy(*rd8N(!>JV zPahFT2s2tni?ax+Jju} z5z19nyFDVf+Jju}L9TEnk{jl7!>t=3={+LY+JkKELAEgZ`7#&7`Prji`Prjig+j(* zlD$Vc0<1zXlBYwdSDPt`aDXW(1(=djA#@0yC9bkD#bv90_?Xf`hz^A?%Mz+Tr4Ug% zyW^CeYU$Nc(1jpV0b}r#L6$zK5CN8pn|rm~DdZ^tYEK&3o=sIKyX9QnZNnK%h1#<< zykdLO%=RR4*plHFMq02#Fb^9K^0jPyTAgtD2)J&oN@5iGb)M1gXOtCi2}V?3Q3lSYF{>gzGK%hj&g0SdIYX zV77Nfh49IxP(YI+-%8qqC+v7lNekGgHN1d*Xj%JYRj8&N(>U{AZGe49O~6>O4=rn- zZiVu+V+{=H34)P13|kYK#K$|s!$Ds9^Fb2FhhhHQX#Zy0E4Pg6NJJT zYa(M!WDIMAE4>Cykk$wg+E^293_Vl6{&Ojq($h5Qrp^d}F0D`#$@BC~4@7SSM2Qe3 z6#})ggO3mVp?#L4g}BMpRE~hD5T>F+s0twnu&>Ki{mNk9lmhIVQUFv%z6&E?30TMN z+Vs9;Dxibx+d+s9g}|%ab8)<5DOM>fFfGX6>70!U$@94r+-mLH6JD)-`v}>mLO3tH?AH{YdB0}WX}@L)$(xRAU^Vj6 zr~7TK^nPtjucv#z96@pvvdv!eeqMUN0@DLPdI&-abww$Ew1qc*`}Icv3=&{ah1?aT z4`L)7V*f^k*uPPQCQ2XLtVHggjL6!`tgR~K-c;G9m1V?I0_7rr@&wAO5O}C1a({9Z zV7dF#%=Y(~nSIEx!rDcRnPG#SdX*#eqM7YqQK5(qfp^#x@&MPa>YMxkE+!7hC?tjp z|GL+O$*Dv@g%2QO2aqw0#C(m}^QtX1Dn>x{EBOcXs}O9+4x(n=Mu?#Zh!H~2(6A`A z5O$3#@4-&T8-4hchr%702!}f`rEmwP>NTp4$_Hj6AUKpA*r7t8*;6UcD(S$k2pGs#Z0X$Pr6sQp&&wRNf0;)ib3Q_PmsLMoSbmHDGK^ za6n7+t5DshVbv%T(Etukh65eksz3*~h69o4gL4r;c>?9bfk^Yg#RwpB zba1~4;Vz@T>()Q0JvhRm4xvRI0!+U}RY!yBv++YBEb0(i)FGKDD6SO`iLj_cXiW~2ib!R-g*?~TYC9`+NJ0xPvn#wV2YNNu{Ojp$| zJvD;0sbpG=;-_rCB@8S4bV&s`fQ7`w|D|m#<_a;5rCL`s%b| zSN=*@1Wb`IMHLFwiW9?E1|s0fge#8*$4+x-V>sNQNrgK!IT{=*duUq(T#j(L(crk_ zduRlAhmyNPiwalM1n&D@=|f8@5n!N)4pA!_Aw~wdb+-dyb#J`p;9L5z2<8qWbB86X zy2-cDo8)~-VM41=s-riZ;EEUP}es#5nEhV)@Q5ykYem_8M9 z7yoAEu1mMW1|uMb2{Eif=;n4gQr#XsJc6;q$=KmZ1#kyw?-}0u!w!c>^wPuGOAqf* zPn+*AukN@WJ`e#_R-O(os}QyyeLG&5E@b;r z;_CNWlZkNXByX6KDHU=nE93nM9u1QboF&OwlAPgox3;n}vH5T1k`eZmq4ciAC0LR~*r-dL7ZMLhf?h z`_%J@wg`wEA#xO|R?YLyQ~HPk(*yMAAqb5vaEz#Xc_4j61YbvxuOrG@vb$WW4m{OI z-A6Wt>vv>Q^*b`DLfA!H@80?zN!tn-Vvfu*YgV(m6noh@lC~8D(M53w9M$_0T95RBBhU}B2Z7rD5OIC3N$?5IWsJBsAh-HTNTJ}MOf)JC8-6~gl>|L7@4 zhxGwi$QXJQ=?SRzQAHL|)B-Su%HYSvru*@;^id_12!i37;;11Nat)Q-nI$-u0+(Xb z8I7c~(9t9)0Q6{D*U?D@^~}=M4Y8v$ni>Sb^~BK}$YAS!{>X=Lf6d5~)jNu8DtPX3p z$d1WJfOJ!zZWZ!bmFG(q>0=`L7BCVt_fm^q zg#g`aVA-Itt|+K9k#h#h4Jn}R#(NxK_INd9+yyUj!UReO^5X_UysYw zLhb&eKmHfQ;V*L>*G?!B=-!A_pTQoNuLVF@+~hl3zSeVuxkw*J`X-vN{i|dmc>(P0STgQB+!8Sw9IQok)CGvv&lv8)x5_!1(; zAF=-ZN%%ge75OtMXaatd@MA@Mf($T23K5b)e#|iWj*{b0Kvb5*i5>x5RviU%h#FJT z1$lC7bqaj5ylOg>p}h7jOnj7s^EU`YpV)D^XJ}>WE|}0 zDruF`oaD*Ql(w7jxiNjD@+C0m`xBEjiOqNKS`L16@fmM#-35q3}1#nE@}cj!W_){ zi9%SSGB7g*fzcQcAkObI*_QhtCZk&m`6FRKHjKVe3EJtbT|3y#($?gxJ|clMpbt zQBV*?P<}r9qCiO#M@3@ug(9)pyz3@_kI8|Q=Ngei{H*#t>JO^QX<SxdU20(-*unG?cvXgl*akHlBQ{%sM72%A4v3%{&wTOP3S=I_HG z-u&Sf@kdmnS*;Kdjdo@^0I_;Upd6Bn>B0}wygqk83<0|pFv<#1mEX5BL!V}t2tQB* z3JNKr>L=+)$R6lKqi!vzMI>sQ8v-}+Hnk-YAYfpLkWzt0_^gu@VcXT-jv~CZ!{oC6 zNm%-Hpd)Y&skN$^3>3(#z(n|-lDC#kIQ0V8fh}yOCwzkG19B#uHfMFQd9;7ohRrEs z32VAJ|BUc{BQ|}%e)S9Lx2fM`{e8>oOBIpNoVOQ0VZt-N->$x;EN$KiKzdWJl{arI zNVrwQ@C4^eCH1@1&!`Vi()a08Kd-*#-@9zXd-tfHQ@`2zduhG)(){KPFW{M%#^CQ+ zv2uI%tDjfD)%sI3eTt@=HxQA}yu>Je!piMYR==ozr}~Q1s5s_rSLAEd^hQmetm%{c zZNA9`^)u?j6CQTg^xg9s&ZysH{e~g+i|Ti%-)jBcD(d&EpI1MlK0GPMd}u*@O`oLc z=9?0TpEzXYCKlD#awfLg@Pvx`{puIg&!`Vi%5gN^$!j>HexvbI9}lYEqrNRCWj@P; zuJ+N8jW?eRl5kGLN$Z=hCL#WhMGb3y^KmG||Dj^z%}1;xY}+MeKC>lZBty@X`S6$c zs>g@z8lSMf`CJ;(KPYNAr@p4YKV-x27uDBt-fz_~JSoR~?N9t34Y#YGu>N~x^^5A~ z)K6Of-C^~6)z|u(4{ieYoe>-VPQUsE^|R`0Ip$-jkT>636<_r=Uxr24e0Em+KAZ0? z#W7#imG~wbZ@%@5@S8;qt3Ge0Y}kAq8R_Oj%i93d6?^3^AeZ_fg(1u^@Q9q}Cv-Ni<&W@6X6=z3Q!%6GEI;?)5`g!%+tpAGQyi(Gz z;=H0buOw~!cE#DQINKFxdq&fntiNqY{i6CE>ZjC)C-yTupnkXdS@jdve_6|WS<_!` z*Z8FMU()oK`ZZioU(0#1V#6<%)bCPXab8T?@C%CbLZ627>bL0(cftrFWD0!4B-m9e z9#UjFOt>Y}Z2dVFsAW#ChBbYTrk|$ir)m0Wntqz5pQ`Dn7H$4ht)eZbCT#eWvid#h z+jRTI5*g@PO?=9HtPA>`V)MBj^_{HE_q74z+m9sAoiO}XebU?I&h@T zgB#>C-wMFa&-WWGo_QjK_~Q_i0nqE;zII&uJQjEy7+-C(>96LEpVo;nMT38(%cgHv zyzLnq-Ud$$cw2|@xo}CT!P>{iNY@UUK1T7)BW}dgU|&vJoEMc3HPrMmh!+0LLwfNG z8qTQSX#Jx~#!s0)9|yUktiEY;cmrW`8U#Kk>fQQnz6sWMC!`M(HojrV`kXKwTTbe| zqK!94RRp)wggGJE*8>sXVC7OeQKWUk<;2K^NJja*9 zU(4gbv(1*1K2r4??zZ_}>oLAPXat@)(CQC#OXt|UEb`l z_&V{X&1q@KyS#RK(qvH~9^V^f@h@U!S%QYwFC9L?BgvK{p|Bw;& zl}}Er=I@~a_r0=B*Bg?QE@ zatDnVob*9`>UUaPPVl-wNt-v@kk7m*2mio9D{tOL2EMzXO4obIL7!t1I6pmYX&wevtm9E*sB<#F>^DE;M+D*20CwnFAJ2C*+p4Mw?$31TAeDo30Z^OIuOX z+pXVb%WvVrWMQ+F*NLoUVTTE)bmDATSh8WAFk8+_+OQ6|EoWKWv`!!`XLXzO7G2P! zwwA5@_Kb~xB4@+8LT-7YWaBedkCrDYCd`Sp<;fl^uM=|1lY=&$3k1D$ZsCIJsYaWw z9lzyli<{N~Hoa%wrt3nblg4j(s?COV;7jktO|ny@0mTrHH3GGUNCR{Yj|QiP z#u1Mr8b>;JCBTu5hVvCE4+f%!(n15_3RDduO+!!v;7Xz86x%RtXs%S)uqm#9ICHWA z*>Kx4ru-BeN*jm`4Ze^E*S%qm;}WSR~GKvLB)V=JO0{ZOU=g9G`(Q+Ty3N z*G}{hj$6*}+1`mgTos(t2mvvTNghF5);nfsMv`Rkc4zeer@c84UX*79Gqwd}q)edC zj2)U$K3^1OJXkJm6*)SDA1E_0248B@4tc48%b5rc8o|^9Ipfd# z{xEAWq!}cWuLcxgbA<_H8b?9MBvl}4n1)EbQx!679`9g>N)1WLm@2pTSpTM+`hC{_ zX_xv^$IsQVBBGe^7|P|qXaeQY1S%>p7P5s)?u^Y%D!}gWeFlN>PC2dYT(;U2+&ngDy#&JI~~*<4{o&TG;l$1=ho%Pu(?DB6(| ze&`4@F9!k9);q`|81A&0<`p2aOBsuraWec`L&9LH$GBUD@+Q4yvB*oi4_bdnn$=6 z@&E(`Xsm`dpRG30l)yW-mS>YD+_EIEC7h0MUEQSBqz}+R^(B4GkVI@P84!3@JIxX) zS;Ae+kkJfd8I6&}wU^U76hMXn+KZ%r5(f>l2>^(u{npR6X;^EJ?Y80P;JHrnl~^;$ zC{)Ogih;ZG00r2|8hrvS*%5?Cb13P#lt&2Rb6XX7fy7IxUSN-`xs(jq+Q@*g6x2;% zDN%sEjfE<`pj@5X8v?-LVnMqC?2N^VhHl2ZX8a^)=m5B+4LCGlgxQMcHPvd)Dzg>6 zy&D;SD^$QgFT;$?FoX!<=rsJ;?39W9FE#_x@M4M5@P&Y?NIJXs8D$8FAxy+C&=AyO z&ZwxM2>S$8;7l=2NemTe9!(&l0ztY+WrkQ(y9(BryD@VJJ};`kU)snFLWk((&46IN zV}>3iNe1uiS1%nAL!c65##C}yGwjUZ15tO1kuk$^58u~7k}wvhs<)+(X*3RmX0vhdFzu>S9|>PtNke*rw> zi`-b9;17E;37+Er-is&k1<1kweVg?!=u^L}@pemr$OsN+si=E;vJ7_^lHrrHOQ2LD3Vv`53r;8tbi!h(%|A!+@mBy1d+ z5FjbY`&@@zKnf@sY5SjqNBrThCq3aYU8(|$638VA$j{dYDUb>fK$OeXBB`_Fo`_!+ zq2=pY6K;7SN2DAgL~v*37;*q{p92S+R5{6Vavko1B+{R+SbwXKYRg0#ZnM!=2%xcs;0 zw2iaEtPt`Q{Qgz;zuKnNil5u46`$y-I7}+nXTmM7@;><7qza~M1c$Al9s_P!*{>!S~+O_9lh|!>X84E{8%#u$OC7`5aI=|KOp_niUR&KJZq7XI|#4H=cN=`_WS=$ zbPf{muh54H-PJdSdWnGy?1a1+j_pGB?Pilj4QOdQLII}fZtgDaQ~~dEWgx!Zv=b%! zL|9@`0Vl$z$pWyty+}dn?xLDk5W%XW;2@$zuo1s1qFpxg)<{&&m~^|xgUfKIz{^BJ zfW4D`c&?pGk%fONMOlzUNI~9PAZToEy+w0r1o3;Bfz39?jl|X5NL*IX5~WmfhD-Mj zd07vxC2=Bt6d;+1stWeuS_BWouPWH`df9|qR<~Jyq)EehRt^?`G{X#*6@h+*Ceg~MoRrojqlKKNx58}K!l;eB=}cc0A8a7yoqEK#3Ohu zYlcm@<t492&nZ)g~Bd{1kZIulu1=wz0PJ9Bn(Gb{9W9gQ@ z5{g=a_kIO7_@)~DrR_*Z_|ksszd3CEwMpy0#eFNYJuCI_t|$-;cO*d&C8KxDLy2oU z5C^}0FTupyj|$+@=Omxi)Vg@s2324pe4nle8^@y9Tt^}{P*COn&3j5%dl#69qQ1ST0^Xh@ z6Q7qsOyWH7@^&+kOPW#8eN91uArqAr=~O; zzojFoey93<>W^4|T}u59^)-E6#fC4-s$aDJ+fo5^xyv;DZIyoq(Gt)1u;1Y_=0X7$ zMT7RBC4&Ibf%BbOGf;jsAB_K12N@Ghqpae>0TtK-el4Y=l~kKbyx0US1*TU$rw$h8lv0cU!H0d6oqBB0>oC_AUrs-me*YtiK+f0Vu0qvHto_ z>%Z5mVZlTG^}`xpU_oU>NI|Ow#fR@)RHff@j$xFbo^*QqF@2xFo(H`dvq14h{%U_nJ|z)K|J)}{j=@@r=IKi z6O{8wA))7nq&9$gx>-B8`3j)m5Mo6zXif%VMTUa0I?;qTQ5QEMw-hiHKbpc=0lyIP z%IL-2&~|62zqnTgqlSA>X}&bFvkVCJ(qxh^W&MqkSHd~TTr=HZ3*vE z5>Y$l(4^*Zjx?}GJ#k@_CAQ9Abnp+B8!sQ2s(6h^0Dd4 zHVBNy34urRMbp7rA!=Sgf)r%5zmvy$TE3N_fT$>mpS7W{9MXb6>5kVWz%ex#uZJTq zX;%fkZ6HeXzTpyf#iI~M!!-i&f58l>@vdq@a)5Pz*h+zB6=;MX#w_~Jx1>M9|FFaQ z=4du9eGUulGP}*H(b{ws+cawZhROb_l&1{5D!-pp>61FCQ2`)QBkA8`b;x&m1)0Q` z{NlG-|63*NZ%P{9!^j9CqS|7$w1EgrG&$X&Xl~hrTjmwC(N-rB5g_>C5aNxapy*U9 zs3LyBY=9stHD6RRj)>C!wUzJ*6jZ>w_yp1)l1Az?_>YBY*K@h#4D!BX@-#W)$Cvx(e52aob3LK**xCtUMQDW zvvq93?Bj=tkw?q~lWpcQDMwZ$;xH;+-Ax6$5g|eo8k{N2*sF19nF}homdv#dAn!^V z-RW~O=JHJZeLeFP4dGZmUKFVU+!c8KEf}k+}5%uezZ&EyRS5w5Yi!cZ{GU% zD1Y}PZ1`@k9)yDYU0!`X@udm_HvgT1JDLOD?WF)AiEj^x4~v5QZ3CV}gm10U=awE% zIxivDUz6{qntV59C=4I+HwM`k;(t-F>DNm-!hM6*zb>dANWZqFE%+0!SKv=`&cGjpUny4vmePE{2#XU9MhHBD2oXBG!8uET zo1JCOV&^y~=`3{?;Q#Y{#Uv580Sc@`@f*$GpkIUkw@kCZhC9LYQh)-l5nG1;Gv)ke zxgWo|^>Jp(A<<@13M5f80kj;s;>Zq#fe6PEI`afgxVUMna&~~;7pgC>ecy%f-O*GC5m5+|5rI3h}(d+ z*bIcr@Q0f($Dc`^fq{00lfo#O#vh)SuuYli%r^vXfjkH_dD;*oZ7I1o8Q)Y)t6@mA z)d;k&Yox`6?Cx^n&K=Cut<}PuW9JJ=R6+ic*K2xJ2!DpUYF}4Dml175+rr;!o#h-4C`-U}v=sh+tU{UIXQ2Wsb*=OdRO;GR=T}$IVi2e; zABifM)dsybt3vzB->}|nsxbqNv{CKZTFRveZ$d?3FVv{6M*>HjXu%$NZ4nWoHvWS9 zeCHfytr}WjWv)vihrkS-Kli`g#Y}Z%N}>vq%xg&|{#@}|sN4x#lXl7Cx6#SN=$9hQ zDwuLaJGaqsEe>U0$GlctAl0$0++ zG9Y+u*i^-8Tdkr6H}HK@8>w>Y|DEvP4^(~nQi!yf)bJ%y1>01gzBU!A=}pqlP36!P zu7pPG30lV+@{5zw$y* ztyYQIaZIlq2qdX-RrXo ziS_Hrs*9P{YbyYTelEqszh10B{H}lZtx4_7RM(d!Q3ctTuP-7(kYPXT&_ZjVwoEB2 z%|Icey7V-eRD@vmF;kw^r@kWWw%3!u-5RidJ{}W5i)v=nw%M!gA=S}p{Jg_z`Sa$l zF1hKyGE=i^>h^0%RKbk4$Imk=gg--GwGBI%`XP9EXEq+o&I6BI99cjJb9M$vI_Eo!Sr4hCEx1~FL>UJXe$j?2A)|8s+84Jn zQw5PWlM*h8R`3^1s_ieDR0u1jOQD5~12gd3UbNzwggb)Qyty%ZnAnFKAS^eVmJK8rhQxTEAawSm(`&n+k3YkADFTF}k z(Km|`u3QU;usA8dLO7C$d26||RI?g2ttQp>K(-r7Hv0_)^;0)2`(F<*QwotbleUK> zsvyV08>A&g2<<`IszzDU#|T`|Jg$`^EKW4)(Td#Ag9rfzFH2FCbFjc#ik0hJT%C^p z&vQ;ETuCLpZG$M|0C}U-L!irl*Z#~2%v46Cz`Hs~q6(7C8%QPw4pwd>uDJe`p+g3e zHKq%2xHskbpaCmRbRlmylDEmSc-a7J-GH92YaxSM9Hd@?&{=2;xhtIREJRDlJ%xZlCGxQmvRHR z$}}kMkqIwlhE%ejvuuAsg}zc9N(esRIkN_S0opk17Tj#7)KY-vx}^~%z`wcG`u)Ra z?e^OzsN=8}@3ylfY6f=Kn-Mk@!Ejd{!>g-WvE$Vs!*mFTvz#d}r202!mED`O3VrUl zyZJ`vs;Q!KW(ch%S|}1Hgy+<6{^k8sxCMMmGa`L#NTLd6l#N?56l%Z#AoGc=qcJ$J zbd@X6NxTE5DaYzjHv-(6P{>;o3Yiw`kYR2Ue7SR9Z6)>M!wZps%}E6{kIlfY9`hX zyk9az)Di?Wi~~Ve3%x>A-&GfW|8gbh);>h~Y9om%$nosf0Tlv4vb`f4M&b8MW*0R= zkK0s_+Y&Q>a^gR#9=DM&w>wLs)#EmfXt$+Q4-7fg?riT9q9%G7$o+TeMh9QDfh-RE z+}5p)c$-+32x0VCV#c$bxl1>j$`RGSJ*mYE|MH<5mb3bGqnRXH!P_~S-HxzrD|Ryf z3dSIZRO$U3W61Z-2zOaa!Z}0!#hy3iymHqnah$u08h8)o0lJXo>t&?X;fd? zlBj|t^mY>3RGl&|L(5zVYmyd{dj!4VA#BNo4O{};Ar>LJl+V5C_IsJB>}Jv)Dv2ss zArBQ5!ZN>VOVPWsrZitAfguhW+`)D59c_pZq3+SvO5r=U3os1WT~^)2#LysHCu7fX z4v5`?DPQ&hF5e}DrP!(4Y_yTVYU~=wMy3pYmfGs(&&kdVZLd44wo`3nP+DrY)ZRIw ze$U5G-THfG>QS2A0Yeg1uumKL&OQ~w7F4y7qlOB9k1{2PGP9l=F2#r#2sE1OWo1$228bWp;bCigmFTPjK<>U|MO)lxX)6ma;P>hi7LqcS7QJ3 zEr(=KTZu-JSvzRSYsw2Fp-d9WC`*K}ZFD>~&++_VnwDPCl#rX*yE?7hU5UN-KDJFW z-IZ`NX>}w~1yfq)T`3hp>+)t+w#B6l*TU}QxrE$VaAUC(Q!h; z7J}CGZy_aRapKuJT4ruuxs92mseF1!q6(7Ad$KBod%@~69XsJFAXObdd6(CTaa|UJ z_TK$6ROJ!{HzkUWE;z2mL5q9YeeX>nLWDdwkn1s35nj5otOzzcd6?dOjGo@&&hi$Q zS0pb1DC$>Q@q5cim!f+vf9&tSPaVmltD_{UV4sqGZ=WKg^+Gpi2`Ht6Rhr9=dn+o0 zM_9|Tcs~OJNUH)EbuB>E2%+|UO~@nF=~ln>pz^Xw%+y+2swAo)jqq1l6*?&TdBG*7 zJ-Hdkn>SN#NX34|j{7Sb;h#%?n~RaJ(@go^EjQUP;%3i!lX{kuM9k@ULO&O6Ec+3i zkeP3Kh4(SDQA}%W=&y@>Wp|y58Sx{rk%2UVGND%v5$WY2_qQ z1!;Nr(eixH_`H+9{|JI9DWn?r^S=N7j4gTZ52V$@7l&t|ZRIZ5zf)@OKmJ5V5TK82 zPRgCPZ1c!*1v$td;pnCG=cB7^l1h)+XikHSUp?1gG~Qykm7R=D_{l0)9zTwMomXSB z+H8Jb1Z{=SRrt3CI*)JLrA=IhIWiBMkR|u{w+88JGCRpF!57Jj<@RPXMmD*n-|&TC z+TNVWW4JGZU07`|Gd*tw#$-9JB#$m+gqA1S(Qtv#vZW@smUMV{M^$6m4p?JF(p zzk~jhA7R4|iR_AOGV>evOYBoN8KY$fYFBlTT~e_NIpi(??HT5G63}HX zkfYA>09iPYcSmGLY%REuH;??+l2ab=9Pf*_h&JBawx5UQQiHY7PL7n$f-hXk18Ms5 zwoWyEI%;BTRPEKDr`Fy!6P;y-srqt%b`pLkxN+0XJ)4aiFU&{PVLGhJ|MJ01PYqbp zda3bLPuUMzizm95p%uK>(mK)y(m12#O|iN&Wqh`h%yC!XpPlKX&wInRJ>>O*7Sv3} zfZ6cFW$bt`8*-m-uadEErt>Y-MV=_xwz>rNCv#R&IRNmE-+pw9uv6E34OX=O||@Y-^rqdT1J4v#?W4lLC$d}RVJ9A5Ztd9j-*4cVmaQH3(IFCe90Z9fSkNc3TMH`WI}YMMq-D@U z9#n2E5vZgP|FCR&xOvmNul@@&HABKz zo+R4xhIvk8IHN)bdrf(?lQsS``=)eXLBJFz6c@E(!$m}h(3sBbn-A((=)j6^lMW=s zRQ{hO-#BL)16q_jfk~oG+t#G|Y->`XJsZ$U_SGwHNnDQchwo;a5<)7sjmNmQWfg2{ z)uzKw%q?;*z)7lQX7E~%m9eL=9#`|=>Q=NC{a;=Dzi!s*ZtHh5>5wIfD#)2&+n@>s zyvZ$tE#813oRkq#;q7E^JK4jL)+lO4I10W( z3ZIi{C2D(R5!$Z$v773(=RoP~b$*&ijdG({gA3#-exeFsCW$9#6oHg;hD z+0kt+X-8(+d;k4LW)eH}S%@U6AT4AEEyObkS3iMNy)mynacWBRfdg0^41WhF#T_~+ zPW=0Ev#LQi;QdnkEbdeLm=svGD>%6wlKbR!SniDPC$V3IC-UR}gov!wzbNN-<*dji z%<0vg(eO#{vz@}K!z`XW>F8~~IB5siz#;#wHapn9)p&CG{J+yoZ#5#)H!4e_3MO@p z^Hx%Yu;8t(GVBv7?{~6H2|h676Ne%GtsKE}h!CMMt>(>VHZ62u<=zIMDW-qwJ%zWX zF#zAEk0ff^AoUqkA-q&neH}!O-UNL(%9P`SL~e1Y;@b&@d^>>%5yFR~_$IgcZm7)| zT!Es3WUu?6lQ)uYXBEi39g##8>|kjfD&%{i$J08nVDq6b_?O^{9~^qSSPPD@IH^iM z!TS**Y9Cqq!7l@a?qMHE+8rC-l-r%1nYK8e4CyeRRjs811-~<36?msh{nYyXZ@Fw5 z1MqDoU64znrnRZY@3g6q=M6&p-oJdoMjjW~&4IAjlTFFKLVzbuwBs%5J4Hl@5N=|Y z`(WjxQ)Jjw#zFM!&d>Cz&^iH&{t(H8w z$3}uensTfjbvH8alDBus8@|*a3m*Bn8xBzrqQliHxGK_%z|gy0PyBS^HOwT9=qpze zRghG^TT~&u!%|z7b!KrO+F&D{pi+_#6k%~v`Y`z!MuZ5tFVvY23fpY6`dX3Dgdeh8 z-D~~#niT&%Nl?M-r6V^|kOIl7z>fxSEoBN+C8xf?TW4|7?`4=bgLno1Q4ZG!;3p2* z-=ijcY5%=;B&hIDx^XQpRvO73xu|slk!Lx1q-xfmiS&V9X^|A{iIf%zE1h~iC6Y>` zQArXCLc-_jRMko=w6Lnq`k#Hc7Ije{^C1jeChcVvb zKLAzo)_*Sv-#BKF1ZEK7(`|C?|3YpOk%CoG-?r?`?-gx+tCh(}aFI~(ALMX->KyzR zo8Xe4Gf7YwvNGS%>6p z2XnTJWs2?>LNANfO4(ahO?#Tdi2sahMOApfwnA+eF&NIIXiuP$187m|2Gi zb3&!GvT@8H3Cxhdb?9*zn->^UsYD6lINiqMFjgzXIS#=~xK{8V5WT2TFQm|5}yB3%*}^79^tvB!*%Kj}1>r1-y>ftZ1qftZ1qftZ1qftZ1q zftZ1qftZ1qftZ1qftZ1qftZ1qftZ1qftZ1qftZ1qftZ1qftZ1qftZ1qftZ1qftZ1q zftZ1qftZ1qftZ1qftZ1qftZ1qftZ1qftZ1qftZ1qftZ1qftZ1qftZ1qftZ1qftZ1q zftZ2Ml>z$)GVCV<%ohO~KUa0)!ea(v24V(c24V(c24V(c24V(c24V(c24V(c24V(c z24V(c24V(c24V(c24V(c24V(c24V(c24V(c20j%A^hAL9+Y9mE2>4VejX`1tVg_Oc zVg_OcVg_OcVg_OcVg_OcVg_OcVg_OcVg_OcVg_OcVg_OcVg_OcVg_OcVg_OcVg_Oc zVg_OcVg_OcVg_OcVg_OcVg_OcVg_OcVg_OcVg_OcVg_OcVg_OcVg_OcVg_OcVg_Oc zVg_OcVg_OcVg_OcJ_QD*0b}x=EniE*#}@%`J?rW|_!4$Lh7(^M4`;M~-SL^X_owG`zPf2L50O(Uv3Vn(wFVIt{?{ts8#}leO0;-cxol#J% z@F^rHNUJ_V^(j;!izn8xcuF}!zY0MsD%9BETnQGZgTKw-Zk@AEt9fb!W2cg_Q_0vK zWb6cIwsQjD07{?;zD^}yr;@LI8l1ezzQwuJ7|97}$2GXR1m<%EA&cQvJhfk|cxt~2 z?JZT@AjSZQ)c_O2*n)omCg5;5;Au4H(;#EaW6xmAJ4wM#YmNZRsCK7iR4CBaT&Ru+ zr~;u1Diop@4fnL(2(S{tN-7kn*KAfXg0DH`YYvd2_#)Vx2)^c!uQ{10y=JLib0YYf zL%!w|qV;mYBKVp^zUGvo^h#5&2);7pD+8n`z6h3y;44GEGJ-Y%KNy7_BE4f-+M!Wo zA{fh%u}q-~7BuFjw3?YJW3!$fLY^kghXFiOlItVzpBupS6ce63FR$?x_@9cSMgk}_ zOujRHS-T)>!rVqTp>D33o7B!QH>pCqH#iHOdCp=?2PZhRkGUC54H&)Wwi7}M6$N|{ zCs2#L3z7PlHe3r~;AifD`rQ=lb_Hks4;d@x;^%j!hxnr+LqwLMCg2B#*5}}RCf&JZ z3YC#yh3eVjoHCbOV@}CpsFk@{=H#o~VRl}^h4EE)UI*e)?Rhk$c_~-$Q?9NlsYjsHWvwnjJk{-YVbYg3<62smPO3Y|@&*xWm6&;f za8WBbOu^x*V0#hQBovoI;QU6p5T_YTgd*22spiwn=O>ZD2sJnppoh78+}!mF^ihF63N@hk)%dpw z#=hBI-WhU6Q^A-XIC!!fV8UdDDpZJGZ(0kQRD}giDukZaVFs2h=yAdY*KZ3_5io6p zkp>V=eU0Cunk4k_1W@T77VBb zE*Q{A5y1W4FZ$ts)(-7+MuLSZ2`0j7JL`rd5}WZ8!Bz@-d>H**HvRZzc>;)_0l1^& z6mcyA&TjiG*js#c1SEioCO{4$tHJCQ9k`xtQg`Y<$!4_eQl8J~LWIOx!1U&<5t#XF z4zy^Kcin8{fvGU@);DDwPy^u5PpL?W7tio!#>kd>@y)_wDV!}#_`Og3*pB; zQ>@EYswN>5mLOHPIqJ3Ppf*Cd2;r_^AqMv)o;&#!?t3KsX`46&T?m&bB5Gcb!p2) z0B|;JYgeH_UAXveE4Waz>i1cYX7_nma1mi;t(Jr~+GLx@Cb?ui(QzvuW|M6ZHo1^C zxlj}m1p+HY+g#WjuI9pww$;K+6clfN7j{HI6$n*OA@mem;}e}0cTZ_y(S`7Lh=qM& z2_-k7u0t#wVxc6`EmXF(xO`n$aUphXtU`8oVRKdz*CEY*R;%iBR;vp6^x^z-R(k|Q zCm}j(Ax?Bobng?->W+ZuB}A_Z;ij{Gm`FREYtI^t02?M4O%hu|OR?nGgc}Lj!&&1b z(IY#|G6V~fX@J6za(2Rn^tbcb5$1R{&GGDv<_3N9odqawxu?gUopZ74EaL3Es(W_6 z3UM|D$c4C9T;ZHY^?GU{{^~FO^REyms&lDzHcj$?1}v~-&uWIL<)vl|Y!z;%W*}}O zG+YTDI%F9}cybkRE4ql?cM*y+h6F-o4OfL-2ha`9>44qhtW?NFsalOCI~+7##3j|D zHbhLo50EPXA=&}L-1Y@Pk|I~j-TwVQ9-xq1NiCwG9TrZ4?DLBD)q-dco6Q1oy=xYW z%BrASB*NmP78Px}MHNIyElle#0TBzazC2TjSe($*0EopYg;?ye)qu%j5zJ?)(*{F2 zogmo=5YDoTJ5&f;+vlMDWeYnAMy~{)o#y`}>|%>rJ~u-b7bBqisb9YeO_Kdp>|#)_ z!HCT4iHm7nmAH6^k>KZZ^XeU&LLyxkg-Fm zb}0R11{z{BAf*$Exo^N;N3}4wYidzTfND(3HJ+=wJ1??DElFsdme9h`i?mKCMhcP8 zCR59e&L%=e(6od!Ey-!Q6B?YE%t(S5=>V5<1)>hC0ha2$g)3XQ<{0A zY-#W&BpX3pmegf)nibR?sTInSI>d33&$>(nRHBy|d#hm6S%H$q1yx{(8HZE|wU^;; z3p0<@X1@61@4kXKG~&69n)%#D6~d#B%V0iN;WxuP{=S>#R2fS zP6|n5OfZq!>J5MO%-L4xTz0^7J5=aEZ>eI&tI%iUncNmUo11|FM0(CjbV-jE_N7VSiREB!6%&+6ySjO_ zG^43O5aetrIm1K7*(J^e)TIysM8=kqF#s*b#Ipz>O8~XlGrlb?MF0)4 zQX~$X%tW6vK3IFW$d2INZcfwodfi;WO&)jTD5F*=O=`s64Nn{&cFufzjOY~ zITkxA$0-}jauGmz0_9Z*L*&=o3M}i6$lA-S?5*gCM>&6v>?b=J=NRWy=d09UAOfaL zn6e6i#!Jlb!1e61N^SOzbN_=JLV#s1Z_@0`n^Xuhbaj-Isb3bM8)0lR@60eZ>kbqM zcRH72>|s&M+iQzLSez8q$)Y+DA*4f7-GS7KF7MKmfCgV)WcFe;dndHo5jFxh&TJY^3SamFLy_AX|n5kldG?!waSL<;X7Lzwc9Cfw5A z&#e8`QgM^Vx(?QtiWt+b?ZeDEtU@pk>4$603IMk3jzt$Xs)R=aK@sz~FsU#XCJ`ZO zqI39RmcriFq21Yd7q+Qn5F9)1g*gfd+&bsG&}=?*;;QJv0@Lf4xfjyzF6>buOiGua zgNk1BG0@2#hO12}0%(Yp8&V;(3^q8F-U~;)gGAuV*8&b}(y)6`J5Q;39UPHUnblQEs&KsJx$Yni}gxdEkm#0ln^`ZZ(^Wx>X1r zX1!Uftc34hT3pm$3-q%uUH*;%Zn=nSgNr!w93$P=?itE6VwvY=V7YuAR=M-dbdOax zwkphy2~ym90iYH}_lR9CIW z0;I9mn4+YO#O7A}Zl-5oUv4=R$wH0!Fps&|%Up`Crn7*m6>C+y{BQn0X>*vz zihiob{?+oyR68AtV0#Lxh$2=UQBzbrPxvybE^_yRb9J5SKd#vHpj9r%PL-qS9QVnT z%R+@EZquy*M;EvYo?KroO9+btOSu7MDK~(K3HV{vaz3cHThP*(II-u%3`N4V@@MkX zZ!qDOm5#!!MA!%&DccA*$_oRO8zC8QWB{<+s&-RIcDN;8%vA0oL|!)h*Zu$OeF=OV z#g+F+=FkF31PL(QBf=p9wno+@5m^=n9EczUCKwX2$rmQZ$N0b=Y_P|`hOsdqb49uK z(|)@FaRnt@!xco9z>rfL*sPKOQOLmrNFuJFI2__g`2PQ@_quy}YFd)*oa@$aR9#i? z{okusud1u7tE(|&nqfk4w1|Li!S#ew5Dt{#lX(@MM*=l8vo8MZ6K7!j0m>))gvtd~ zQYf_<=E7}%i-m5g%Wwq1r~;_9(!BXU9)+4?in| z?j1pQV!(85xJ$5ed~Kj&pURoFuo3Njao(7exae<1?Ky?8+B>d$S{6#o(F@j`ULnE- z%fBUK=i#rynWGKLVZb?h!J4B+!gBUQP%^!9=Wy{1{Mkvp_r(&T-RY29?Oja3feJo7 zE=D~)j)VsMc4QwK^sCb#fcMO&`KD3ejPQ8cF8lcZT`s^m1q| zOX0+PWXam(uvl$>y0$J)iPlrzd6FnmQ6(y(M6>$b43ugqU}m6Xgk~4c&Ru8r<~9q5 z2a7ll7;SE=z|L(&0*z)|nN{hx>A78!=K|0x*W9cS;rcoQ{mksxkz(7qH7*589+a;x zHCJ6~8rf&Zj#1_T5K=Ff?6N9fRwDL~d@4+v_>+@!E1F+>+cI}tLB@p$PCXaqTVa0H zK=Tsyf#!7z(7a9|!V?^SILAQ@8!;!}gSySjML-r6vM5BDx3L`!=dHN6w+YsdD@ZB8xkUP*6 zhOhFx2ha8N;yXVf6kh$!p8fr&kOpn$tHtK4#X>L`V2C#JyTdSu^B_!KwaFuazOsi} zDL5tzjL2XyUO+ex=nseeK5+h^;CMPC&V$0V>zY4|1Pa@0V}zXy@qS;qAR$-|feX|~ z3)Dz~hJOxV@+gfBk3o!=Pwh_@M7Y)hb*%+Ok^OeggL5o(Br1`Emt$~gVfcQec0&jU zGqb(%!h#4REl?vZP$QX6A?WrCYTOHI@PLhT>R!~}*chFXxj3U!($%iHgycDFmQ$PM z)MmI8%!YLqpw8I{`2>pZ5q$*zm!lP#E33F#PQAzl+#{}*>k;Xgcj3i~6E{}F>9F8x zREmyCa-|48wK?X7ga~62-y^5%Et+aJRv&6%lW4ZE$%pz73QISi?t=={!ej(gmqK+3 z5vEFKqjM#?hb`YfrU!SgZ`M zVmHXUTyqnN!D2uOsq!TtHXV}#a!Fk3WJz3z&_^5vPd^c@@PmNkRW^g$Ks>lq%Cu18 z^3Ia-M)63fQAMkw^AVzZ6tG8#a6#pQjZ*>jQNSMQJwaG95CKzGn6eOINHp8j#0h{n z*~}#Am3hf%eV{Y6BR>N)#$M=$RUfYTnMI8NeG1G&;A46BECoHIGXgjx8lIspg|!%m zD5H9iqjJV|;qDp52=qQh?-Qb`r4yXb4lH6&sY7AFKdyfH5v1XQc1A@3D?${SMXCbC zrMCY4+0uj{I10B^FMCVXbhw;EKxHGK3Zn7Sf)Krvk8|eX(#Gp3p9_2(P4HcK&U_f2 z^qzo`xOs$0hi@m!(!yAn)>x%#=sqB&vp&PO@ z9san27mVt)Ys)GTkmCwDE<|t!g7G5UX0AVGa3Ds_C+b7xI|VA=DMV-whvAQ_CXSCK zycwn0sPe-VFc$%+!-ITLh|qlBrHm1F%B!97Y9~BlwpZoTBwQ9-g+l5jCqELQ#h4ar zOo-6UX{~vqFwyGFczvKVlLB<6x)+AKoLcoCADyW_<#6{iv&x#)jXoFS*Bcx-!r>hQD_&d6p4UKzWa zm`&!qV})M&R&*jk35q!9s%sm!ibI(%;nT-gk*|-V4my(alDPc|srx^n8eaW-f zCRn_ZggvTfk1#;_Nxv_7ipNbjt8{(tk5)wHhz(!YMZYVUV7Y4+uCCB-Va1pbVN89z znX}=dlQ#GtCscWFY|pA4{vV}yrrZ-LXx489UWGhUuR&*Zi|p8T;>BmFef^X|4UL-A zr|I)(RIdR^ar8uIl~q_-h;Zk3ycvidhjy*Q)w3#+>x)rS#kLc7I2$C!!qxe2fKx^PHWw;cLCh%>)ZwQ-No9ODWD)BVq}CumX8|z?qUZbN|mLjJ#9P ziaWd4gHD+RBuT{U9!I22R+A7=*RqthTA`vdBYx`y|5ff%ILOj?#W+)P}vqFp(n;`cDrz z(lrVBSM+KGA>x;pL-BYZ9zF&ArL2W|2lCg8zUx~ZM9A-+N1|ntE|8f*I4J&AplA|dcDJ_a*?Yslh{=1e)kv%Y2L=zSug<%=2?->^^Dy?H zd?3rmFPxDsVBpDN=Uj-jk7_wh!~2irW&mgN?4#dqTw(A;+}v3%z$}G6f-rWnO891h z0_UVfkr4@dQ1a0hjUcSjoSBl>FJ@WYFGQ0xi@wgfni8wP5$8d(=(u4uYl}p9X^s6V zpKj||wzdxVh<1fBRR*S6X2!F@Wh17rR-|tPisV6KlqJkQ`yV^JwM8QctMp{1 zE{G*?d&t?&JeJzG;cu1sn}Pows6X2j+sr&-8y?3UYW~{Htl})pnHG${arRX6_z;ng z?GD)_c{A~HRT4OD_@BamYcTBqrlTEDvw5+1;y=BfDRc3n^q)&=4)VB?XTNm`6t0b_J*3XJ$#nU{0`W()=sswrvQB+I#T;aFdr|Fn{Anc zDc^7WvlT`%TmA<@;ZN@+;4hp4PoPGV*uE!KmyR8GH652VydQV(!Nn`{aKA)fI0TZG z0oyK0;nEY{RV~3KfGKtX+VP-R25y}?Fb%rFG!ws}v)S-K(>XsQVGMo!Z(1~h&@%bg z$KOa^T-w_CaUq)Ig+O1GH4>}9fy0B^Qn zJ}KqxSIw2hGskgwNTAOe%z!Gw2x}mWHBc;}oWBwy6icE)&llIR;8ExG-|j5VzSPQO?)YD>DN4<>m^weFMB z22CQ1GS-yDBx}@elQc<(f>UB0ldMJOZ)#{Q0z-t?L+cL)c>AZ#;^^2c5wJEbyur~j zYW;#{q$6BQ#TjN%oNJg!IMI$BcinhA(~{7XDYaw%CjeMcu)&Is zy@9mVWyZ32HaWW7Zk1F3zD~gW9LsRQxb`mNs7-*A?%V$xu8pk zs*2AMyIqH;Ls_m_Th2?9f)~T!i1T2j^eMRd9G0)>^@yVvj&)Ze3RoW(r|ZWfp}9&)lnvN0((cs%_TDsDcA056UeoTp0-@!sW|% z+WlhZqA+Z`T#ziwUSt0PC$=l`IH2JL&9knQ;G$+htK-lY<&h8Z7bQ`$uPT#T(W_Nv z3Zb^#i|7~Bvu?4~g^dhSdT==BLAgCr?2CGkK%#eri>(WEtBXx1nuFqpyR$ZL*4$~1 zF_BWo92Xan54A3CUYGsXlf@ht`!*EMW2O+civAb33bJ{MWG|l_ceB#Y!bp?dnQS?L zXP3Muuv5U?kbuo#0jiGUXpTp9XBDGO9m8F$o!rIR$-(6_7*HP@>sGx>qEem0_OO~+ z*x^|}jO%Nj7Y}<(QdnjR;iwjNREW%*&-Px`th7U6^!CxdS2GvG^ibivA-0iUr+7W; zWGxUt(jA7}7 zjvKzCOuh}p9LyBLAu&hK5E6)tXVg{?*15g&oPo38+B_r0YEjdTt#1~<_00k}jdKBu zJ&T!H#E2rSr?x1<`mReCkNi}MuwE_bH9uwwVOAw(MdCiZf>`&pH)k8?x<-?F#ZSLRnq+JO)x3mk0o1)&>9%) z+V92GNvA=$@rsMYl|~j_H`0wM%2vAw}yA;bFBww5ti2Bk4CSLJvo`wk`>L8_?q}m zbQ)$%W{N|c1iBQcQfB^!PIR;>^(?FioF(OD3iG+zPg6TQN^Bcu>}B%A7cP&ZLTn{D z9q962TVa=X?l`;q%gWU0F^K~)QwVkNdU-~Ob`6i8xNwL&P;p^r^`J2L`jC-qHLK}S zFCP#uy?j7~)C>&G6Q78JUBN~GPrSTx&Qse@*Me09&g)Z|DTL!HlNS^s<4vQ$$jpq> zT+{AGQk{Zaq0Q}zw17@=N;~5Z4Ke;Ob8}J_^9am}b=K^sS@ST!6{YuG^zANX;+3XK zS7r*K_U~5=2@x(TI;G9oMZD%?>Xl=isr0u-lPaOW=K<|Lt+xQ5P9lLsM{V?gK^lpj zVvHDA7`n;zzvellRo!XiUN!<2W3+t#9Bn?I9+jeaUdBvI*c%fs>qXp@*IcW~#BDAJCnFq7sf}&ubX%)T4Be)z zc?D&r5Du!$K_S8&^kNif4#o;Ia5fi3o`D!&eRhrcdnvI_fj-kD;GbzyB75Vw8kZJ6 zB-7UfjQZhXfyEpw9+hL*bT#llAHm}fm z3%zyHpZ_=n0(ADsF6z^#X|?m6wX|HsXqBTfGtkn*XnaV<*E3iQ`(}Ifljd5EMZhdL zvG~x0!%p7A^D|Y{m(E;^VHYB@1bp&6nUdI9p8`f;E5Z2o?96F}GEKSC??ot(iVfQ?6>0(zy^Ff=w zl0=;+YxQVsJ1Mfc&{#X0Pd7Wa$H#ND@a9C;wRM|MSAAT)xh$!8yilEvUVxiM(!ZwC z-lA*1S_1n$Z=cQ0=3PMN3zm=l9Ite|pVxI(?7v+7o8OaFbMY04IpAR# zbpd@nglbN1pupV}7eh1d>9Ytr(oTn%Yu8j)fF0u9iqv|GpU3Mgtw2qQ7k9zO)B?T>nu!eaFkWcJ&|ndb?P~O z{c?0inH+tvlw2ohYr&4c>}bMK?=s^3kBS{}Vp!UK`8dwaHkSy^s}Br0W}WE3aQusD z5HXbdqj5VVw~6Drj@IPbQEfQB~IU&LvPwo52*svZCd5$r&diD+FBN0CVlzg3)Z}RdhB>ZX&X8Ba?peMF{?EucT zAVW$pWwJDh)1w#>h-hWR#G((t9ep~Xw=^c>P-TY=HH(a zAnz5se!ni-`?{!<%IxuEw)YL&DJ164e4bpzk=mlPnccF@cY#S1J`877 zqT;d$`~`8Zp+*+BJy?uuXlfK^{-7ve5`-{VjB9d43?39Wgai`vS0#?r7GUY8Iev$RcL zptfUq?ia>gSnVh5xZvO4VCy=s9s*{h^j_dGG}Vans6&(!Go}(1A*LB~br~D9d^ELz zh<1hRNau2e>sW182iIHKsh0XW_{vq6q2v05WU&myuXBhi7;-}J2)e@cNhD07aE8uR zxa(aNWW*Rr9oG+PBq9tKj+W$sVc5qq_SE%X3#S!iS$sb?vMqL%pI@&d+UtkFq69^p z2mIVHqi?&u(t-?g;uGJKz&T&8XF4sw@K0CL22tTlUTwiJ6c@)&52)~^E<_N{(^o1@ z0t;xb&}|Ql8-n(CwA%3P6$$$!%u1NB;Z9=`QW#uqr=o;bQ2S2JHojv;Lc!UQwFdef zwUhW#FA~Jkrb^?8>p{&25J9*hCY5Ru9GY)8ZV21A6OFbjN?asvM_@?)hl+BPiB zv|*FrG?gSS`Aw3)?YP=}3iUmfF)!h8{k zvvGW`w!+({+gw5FK^H~ifuca02k`dtN2Bn}KCb0trJacOma#*K{Rm2cO6tXQ`4nme z&pbVibC~SFa*H|X7*G>o7l)s-TrtfU$GPRIvBZ~~Mcpqq3lY|9=}cYqd@Gl%+L*(slu;} z)falBu8Fv@Nr(=ax==30;1g|~;pP*L>UI}g!gXUlLY*G5!HsGtyxKNZ8=Q&O$d58< z`EOJwLCpi9e3=iW&4obQ-%W9^7&FcGntH*zsZ}!A zAi!xhf5fTRa&JoG+-6oc>6^T^c3uaZY15;-`wUq@zmA5(%+aQY4u}88lumwER;osn+++W#9@#xP9ELJ?+gSLWK2= zr(p7Vy0;H}XqQ`QPq#D)y|?kmE%BNZx&;M$qlQ~LB?ShbaBrN3z}`4k{f=97x2Rik z0<=9sRQUG>5Ki@g`EQw!uLY<|Xti)HrD`*~$iUTCVpo)x&Qqo#Fk7bTp5PX>_O|y$ z_5_Ab8;~iUAm7S}sB=#O=WIZFK;2uj8i@!kzvouBW`q{@G+Q*)VU-4C$O*wC*no^| z(Jk13Zq2tC%8pwDZQ|}C(gJsLhM5J>zUI~*5D1!AQW7AU74s)7X@mIsty)`HT!%&H zT8c4Gv6{VC?f~OFk+A=WPQLcH6Mj8#}Zqp-jC<6tqGo&i6;=ZZ@IgHfl=*mW?`8Bpg)k zK_nRB`|5i)NX(($4WK9Va%K>x4$!tTDH<5nrVh~2-K+pwBT)^swg>?YXjY@a{WDh$ z<6MjeGvnCmtw+CwVd$VS(@3Ln)&Fl}oe9wDIL`Om<~QeWYltAt5_dOO$2~)uN)~3X z@62k{MgXQ!t{ z_zISKQCI5UnXyC(`^*fHEyorMY_Y%=3v98#77J{#z!nQ^vA`A!Y_Y%=3v98#77J{# zz!nQ^vA`A!Y_Y%=3v98#77J{#z!nQ^vA`A!Y_Y%=3v98#77J{#z~8V1WX-|DS(L#p zUI;H6=y7s!tiwdiv=4 z)`v%g$kQiI^ws@pji11z9W3dqMMC`cQX^M3y&f2}gJ<=HgmJ$0r zBFiecf!-`IC-A>|r>B!+IrE|kSKsTV^N;j+(A5h{AMp)ZQzwsn5S z413tM5TgpA3szit<#VLi`};{y5PxDa6@UEQOHuN}?DyBG8D$^>_~p_pUwpJ|>jDfo}O z!$J_}K_Ph+l1D-Vekk}!W)G61y-%J0xL5M9)GWMe{Ko?dFd#&Ddu$er|9jo*zF4ry&h>@RM$l`V;lLz=wJ4+vE0&7qd(Q;nv$cv#->xP%Zkx0`~Z3@%JJ?JF%aX zga~bo+nd>K%=pqDUs>eVW@fj3g{*`jAKYgB!2+q4`iWW!-*5N*M!w4-K#wKDK#21| z;UDXi!avrDga#(^3ULDVk>VHbkM$bDV`>~n)jy_<^0B;t!0o!wLuOQi9tE#$kdO7N z2K_<=x8t5cCwZOeV}lXw!^*BLwQ*}KSngKIqxD%c>K#7?O?9uv1ROBXPve6B(>M}n zAS{PJSkQl(lr+yM2Y=}5dxWt|8M}li)U>$`8DI3oxA2rw&4)VRp6cu*7xCpa71tXU zck(O$ewT>Te(k3NLKN5qfiK;$Tj#Ei`kpMeD5k^Z6uc4!N1O+Zpzik5aU?Y0_YS{n z*UxzAml*9vuk>WT9k)c_e^z6voi18+zJ>ppn(Ak2Dztmwo9#}ec7twwBT4}aqKaqx zZKk)KDS+CQ{Y)(eWB7n%Tu7mhtNA@@OLBz zJ^n@-Kaa55&(&%_uLuwpstB{5+rczQ_B_To=F~y1CPlYjCWQ!g;I)c7A)Jj6J7kJhzsy9yXvg=?CFFtYvNDfRL;iWmS)Zg+CBGN?CIb)=vm)QCW*Z1lC!xBbBwUmK7;hYDrm3 zLWEYzArs5$8t2rznQ8d#(TWhi-Quxrw&#y&+x{Wnh>*O7KOWl} zFa8_;y>qc9(C7~@O0Uf~{HcDBzgrYG^^C3g)BTM62>fmK$~Q`fHri9a+ZgSaZez4x zh|salh_xx}U8`M_hu{3PY%2P6R)uASsMWvMo}4f$#G6mfFCB-o ze9LhMB8_DpQ8h+{2)k?ex6t+H5uRxZgCfoYpwA=(^qB+_ z8t}tC1Li-V;Tcka&!7#O9Piq5#$6qUB8}{NJ$^>7#|H&<($S)wR#^#Helu$ZZdSRg z7Ki0?F)PLK8^3$O9DZJoTU2w__XOO`eh6{hBjK4EPg?u(MdVYaB2B^IT2S z8a?fE$3r&!=Q(X!&t*lK_Dxe}7JO$m>_R&o8~f)-D?O*}$aCz^l~4PnD5j&d=X8{Y zDJ6Y$5^QvQ%w|6spxe|xpOB(>u!!?Od7sy@+Vk3|rtzK%A1oGQJ+JM^#jJNy&*y;F zfFB;`)ZLOzZlU#K*}+YbE1yxk2qCo9iUrT5Qt*Pfy8UaIoZVI>>XMEhik8E&Gn6;pDU%!no&~Md1 zzf}X_o|@eYeU{tzqr;IBywEJlIZE(CtCZjcwHPXi->=t;?hEM%X6=<;=oX^Jt+88& z$C{5|?NPZsLWCJEZ(czaABX@@?|PvuM0g~{c@J_2mjth=Ax7^~ZXJ2p+HqHsJka z2&NPPGo&y>LWH>ZPB-MRW;YV+V~TTLzUFxk(_U;1i$XuuCW zxc}VdMRgsAabC=e)-UFT6_3`B<%QE!IW^!6G21C0v@eC*e#E5BMNC`lizVT83DAz| z#UUZW5FlEBxl0qzdI?O`&5Q{+Q0$kqnY|Q80*j5#V795a)1fV&-}6JLzUHh}rjfRQrJl0eb0ssVqczVmpxldW~=Qm&WVEzuYYP zzuYWD=*)Qc#Bs%R)W8XFHND2a+!+R%^}{%g11rCrQ6RO}?z}+R&$pYd6|Tk&T>U%R zxe&1g-Gx47$-$rWq43LnVNrnL^U&B-Qz)>g<`krJX2NVS47W+ZO*m*i z+Z(BmYkTu__djJlUR21UKyIc_S&t73o+lJ>9`MTXQ58Chga-b$jvXK-dX+>>b1=TD zCVEv(1jfUZF&V+wB@$ol5~9Yf;XHaL@M<=KwVwvNj_^coBeCpM5 z1nY>hjtCK)lp8s7D`$F^z5Z2qj;}S<2Yf9dfUhNl$P8zB0pb^7`F}cotJ&F$L0?l_ zIcnmytiojl4*J<;HUv5Y4#*yiR}BBAKoIK=#(Us;FMK_gaL5y`~QK z+Nfx^w?FA&Ke(tLcdWjm%|It*Kl)geE(UpBo1McTuWP6NdPYP}+ZtBIKt!2ylI~*G zR`_~Rh;YYcxAE2y!Rvhy?Apt}UJ@c)nRp@L>R9`|a@;_v9_mmoJ;tO~Ump`7%*k*R z#qrd8U>j~M&M_o!rew$=ux}*7`YpancmI8(Q()gv0|J&ewOkIS1G*J}=9j3Mj$xa^ z`c`Yt(KB|$uli8RB9a^MbCm0iK2<=ixSPX3lPzh*6EyRl1kPnM?Bzo^NAI?x72#wK zD5_r|S`ilpeCuIxef|b1>mQOJH)XxA{*J9s#n3^_10JN<;Sb#c;O#8=hnzzC5A2Oj zgi-hWLs5t@-siBJ{&h^O8x7vsY>@8VXsG68L2%U4AGFW=!-x>!I(j@V#HRt~c!Y3e@xpj zKcd`Bu-r9^tN++7HvMC_5ba2tAs@|{up{56 z+$`+`+;-n?7OG;oU+YzFCRpy;LXB&o#)SxjuwbF|%f@Zy=>q4McuQj+zi8p!q@AsR z>hBgJd2)wn`euZ0zNxj!hsI$Q+b^4;Ke&$m33RG*oc?t6WMC$ zScVBxqit-=L1aGx)bXnLa;kw%#1_v-;zw*y1fOV8V{2St`Q=3M|b^QB1CAxrQ1i3_)s}j19L+OW16~25IQ2hCU=H zBaOD_`S{KxLOmdQ+BhOqVNj(FB0-ogr4d;LJV+!?jT0mYQQ*79sm3m(Z)1sR2g5X` z$V3yS%gQ)sS(O%R!cJgCN)ghR?SganJ!?&;0uVAJrWXC-sIXs>!8v`91T31?)ih=Z zQB|eplu+d`!IMJ~o}8lOz}c!G`jBp9DFhQdh<`%FgDCkBo~nl_JB0zqI5646awRm-ZZm%3>TSNFOn&QkFsK+Dagq2h6s(dn=Pmp{|nr_$b{Yra}S^=2@Cic;7&nB2Wt zy*3)i8R-4FriCwaZ4L`e4sC(y zRrn;0Pf0n29+b@*WzTOH?c3|kp3+H3x^u12|)tKJTuc6O}2AM9U<@V`d7WJh@Bl(k(>z zy0zcuuzu}}GdiZFpYWl|0z8YXvl`24Q6&)AJg8Y&#^bw`kwBtdxC+HOB|jC;7d^Ni z(@}ue=0|bw!>u#6pb&1{c3E!yP+)4;W-mp`y=y{JFw1y(FV1lfY7ZqyB5L(?T65PD z@}cvtnIHVyxK2Lrn(>&#n#>eJz1iR!l?EBB+VZAVvghGgnEeCS^79IDELyT%c48+f zW`o9fx9UgvR==8iuU&`K5|m9MERvrOJF)|i)hnr8M?HYhvmG+<(9p)*|6zf67qS@A zVtAZ$VwW88CPcId~6d<3La%W(bit$J}O^{E7Q`)+4GZdAuMcj~9dp%eAyq zWTOr&IfKC`y@)UsABqrKQK1zf3anS;>QDB%lMp2+yR`~RY&%Q}(6YOAYKn=^{C|C# zq4vV;1P%LnTLr1z* zvH@|&D;^Ou!bDA$XvwG|QAC)?OupXVv1CArs85*4K5grGrB#V44kAw5LZ>DAbjp-8 zjKo=M5WPGuNX9H-qG>{;&x>}a4Z}o@B2H&%c27HqEK|qJ`n1y2P8bP%)M@dcRPFA0 zLHbiy?d}7<%AaN#<5rU^2ThpTeOSVBi=H49^{*gNOjRZ&Gpy;_9vH_tylD>>g<;x; zyXzCS-N%q%k!o7<9!=65_Gl6!tm5XDM@PmIxbSjPdNw*t4p0-Z!|=nj6fViB7AwQZ zYB1*t-Eh#SBu}qvdvpu*G%mk=zwUTx6%I3>E6hErS5GzbOik~X^hvJ;*hB4x)fGRl zfIE3a8vkP`)FclnH0Bo7o--fn#kolk3{=3L8Jsgr#2OB7QKkeELxnw@X(a5FLhacp zM6i^p1Z5_oWuBSu$2lvDj9DefBEb?=mrc8W=IKF3s$F%6bD0bhH{*xLD-Y3CCprjN znTTj(^RFQVTa>m_NOS}VT!-PT%1~Tt%wH95AL16bx)?My%(`Jz z6$seAsu-h03?2~o&ol;6jWWSvklKpdm|_@QS26Z!^>C|-u}>Q5D8}!#voQ%)f%afA z_9=j{>R>UL=qiSx-h^Thx2hP@hwd{d0=?x``wU5n<3YkcI;h;IB1Bj=skhKe<+k*6 zGqeosI@|(UczGi30aq=-y|!rbJFcxDoahh}=n~v(hlK$h%RqhJ22~*k8Ut}()DqlO zf^;bV1Fedw0KE!uzh4HWVHw9X5)oFHA(f~IEz3Z`bq=}a7;-}JfXKtssvBin?3s7d z)=ie6Mf)kzc?3nASRo>$DST@oP)RDxk&zkuAD7uO*2DimY0`X=f*D+yFPo z^6Eyag~fEKTA+@UPzVqdaUM|BFq5WNiCvY#vJ4AYgi%3Z537y0w)^^oq_a|p<31Wx zg$nWoBD9fns%2c-TFbZ)VOg%b(KvQI7v6n4h1Z)t*tbhk{$|$?IoHCVP=Bij+Zzx1 zLHOVeQ}AdEMsUuXO+9$K$lKUSAL1kXb%TS#x1+Sl{J6k?&22wzL0C+HxObCuAe$lb z52W`oM8NQXK?x=Q0LkBf%%pdiSK&doe~+cxztx8O4NH63k4>shd)aSP%QGrOXfK>o zcf2bv?TG6Gs@_Xa8HsfS?4K3^`=>m_J)lX1Vm~Cl(7?G#&bILpI%h9K8xEvQCDsGYNJ$RJ2q<3VZ zYqmm29YDXR2i2=k>U0KbE+!dQm|wMhjjPpz8dfNEC%n(rhGItS_h5av4&Z@t0X#4+ z1;EQJZJ4X$EM2u;rb*O;QEMHj*21e@gmG+Vkuq(p9+2AVK(!S%@oh8ng`$n>TM~V} zVcdabuL@?KK7e!HZ}7l{@wX!_<|K9C2*P@@#}s=^h_Es)VgH1^RXxlxRBTNMduu}2 z@#^A7Fr&eJV)$knpXqR#e1-08mTK*)uT5)K;j%)6nT+EDJ{EBT!X&W z!Mb{Ne5F%uF!=X5vLCQdC^)n3KQpYqZ;^eHY**3fJDYq4%Jl?inYmuDZG0C59;n7jH`55lcJ zIdstn6g}x>*4zOc+$G8$+$BV)S$#@60~Z-SgVU8)6K`-=^;T-?;C@f=%roLR*Bh9F zeP5fogy%ZRdvF=&EC+{GD9hqugjI(ObPg8VlGaUF#kD1}#R6L_u*CvfEU?7_TP*N* zX#pARw2h*492IPPU*t`Kp{p87$v|jcUI4rW67!0ZVqm>VmG+zTY5KfAA+U=Gyjhn8 zS)^n3WI>Y+=l4t4X~TJA5|%~zd1WMsl<@51JRMfflc5i{?U8LoQU<9G zpm)Cu5+W9xZ)~KPtROgUvKJJjbPEbXbO6Pi0u%9$VFk`P8A7A+^IY>bRt0q(46PrF zLlS4>^`N7UBeIPQu}y?#;RGZykD_Xu^=JVafOAQN*8Vde>%qBdWp4sfIl5V+Xk{W{ ztpKu+j09u2Nr!4hAknI?i1WP}F(OJPY+uHF=y?8Tj^6P8qOvj5ven#d<@7c>HzY)- zL_3o@%18&$652X^_(15;1jrD&fGB`KonaJ{?iKCF zX$2yo1IP#sBBVx`6rxXe=72 z%PSfQT|g87jh4ovfv(7jMuyM@L;(a!M+04^ZOsrmfQ$eF<)VR(*8a#4x`3z&fqJ8X zW_4-NNazBhCIlLc2HLr#KqPblQ2>D|(Liq>RUi_&fG7Y!%bKEriU|QSgf1WoAW$+I z=u_&DhR^|I1Q4h@8mLwM$Pl`Ks0o3J(Le{N9~nXy5H%stKs3-Ni!A{{7f@01hogb6 zQiohdLKhG@b12{7Y)>`*EK`v0-^u{^+p4|bx<`Tp$mwb5NI$O=+LwRkkWX%jiC$qi)E3B-IoH12XpBhjT%1>9upR+K>KSAW|&wUHro02u)UDh2@b z)Ca=!VGB}~&;>+Im_MN0fzStPe?=RuA#?#11!y<`pr=02%-!;;5eZ#DE=_8II{vXs zfyOn`JKM>}DatN^pN2i0-K{qjtk#8(lWuSqG@q?Bt?hHFwPUW!att{jt;X$aw?vf+1X zRo28)t5{?-j#bTKgH_E)U@al>P-gCrU)2HQgm>0{VL-Wk3)bg8AqPC@^5ZTOcD$hN z#V9p_?9|+T!?wUrjs$Xhj6}d@-?^t}y+g5MYprm@PxoXHuX~7vS zG$JWD?<(TF$)vYs$CO~yBbeD+#(7LL#=VTxF;;0Shl3aLDmpJjRUdKn*OPHpmphKEQ2KtM_f;*` zq?Bt?hHFwPH7R4^l+{R(K17PNx>-^jMOxh|Dy~-Bp^I~Mjr?K~w>rVINQLz+HS=E9 zl2+#GoGh7VQ*{X8IZPD7M|yE?-Y(Tl-=;GkHQb`?ISJwN zs`{Lym!iyRNr6{>qKtF3+&LLPV?`pEk@Yj|SYM&?e#VVML5`xI(Vqxr^!gc>v!*=Z z{eH$UiM))GpYiejU`E-?nA97}=Zuj#ct{s)G8&N4j312hP-~DVbdIKfZaS2<*`s1! zBZ!JoDcU6TTKKtHlb8JA;O=i;H%m%m63Jv4b;U&TK^;7wTktY#?KTa0{OQ5s4roL} zmBb86iLx62&NKC_%n~v^8A@|Ssld1^!zz+hR3?(C(Pa9% zHko+xr#coouOA5{^xk(P@gBlt-Pn{Bve%)tcuHN$n%OM!IK$>*o=_9HUWE0h_!7JW^dT=e z{m&~?35gL*x7fa;{g%$yx6kk-4M#KGny`{?8TrVO|MvlvH0EGJna*#v#J83uEL^wG zgP#*7lNq62sbHB($xk=@`_9UgL}CQfZS1dLh|<`~-u%avDdS+GdU;EHdrrdEgHOEs zUzLfOVM%1_wZwOH3DfvT7X0c-WnyNS2}$OFTDM6(-PZG|GpFf%g>lI+6D19U4NP}b zB<#QK`EK2;*krnx#w_ujMG2F4o_zK9R6S;fnUG`-NV+SDGlX|mKHvS5_Xv||Nns|a zR}|vAMlI7_JuA2W$|seHnPDa)#u9(EBw=A}hjVquchjaLmh)R)_lQRfjvlww&mLALW=2T*TGldut@W$l-7cX_)H%#VNyC=-KM~M+UmJWnfA&tw z#LO@g33-6{%i`t#Sz3AOg^QJG44Dy3_X^X!@wTtL_exN*J!sUxj)0VrYgv1D@2lAHbf%seAa-dGpnd@Z)(>KJ89vDBS zVVCc#dek|JY1m5oM(>X6p59lO);32oeY0qpzS()eL38d^rerkJx8lMybkK|6yh@oe z4knmoCT512 zkYo-R;#WLD_|)L%%BTHOnes>sGf}->OFY^mVe9gjpL<-Hm>Fh5k~tvZHzPP>*n8x? zx9p)zB_u{LJuOXRbo`1FKX!sL4Lg{i-nz7rkh);ZgzZlc9{i!J?@=ZuT1hoCF6(qL zJwGd9h%isiwTj%4eQqp)bAEeu9(Hc!i_G@@b@P6-fE&pc+;?n1nS+{@amFzFy#x22 ztxQ=YS|-tmnL?;b$JZ5vXb*oCrEcZJCBp^GzH=F|ouv8@Lh8!Z`LflW3M+?&AzNQ4*g zYt}i7^b0dW6CBeb$sBN}XVW-C_{{iD7p*#9nes@q(p@UIKi_Mao=>0r%D>;GOiYYm z`hAyW`hC;;Dj)g0GL@p4UPLz4`~Bb^-z@%KnT97|>bFcUW^R2guTAB`u}G%WMf4O{ z_oC+9w(rx6+(peEllT}jg;1;EBCQ7Vooaryf&062_vsn%C+=x%KSDWMJfCfXFZVCQ zB6Q9>&H{ybkwJ=QG_i)PX=)esimzSNE1Eg>nZ2mwY3)}Zi#BXDZ+|&y!cR4A~$K zah-X;I4PNS=ES~vftl$GyOEA?UB66gTueWsP9ef|gG#7+WQ7n-X+q*nHoSyNfbJ4o#MC84iRUCtN*G6|2kCi^aJ|S`FLKt4KI;=U zzh{Vqp#yw9Lf_MeJjRP5nqZXqqEAmIkiqm$F-%Vpz5329y; za{dm2jX%Zr^@fkk==K zuv(SmGik%v@o?6Jsr6}PV1`4L7s`gP<6#@7)~lV@XOU5BzK(ROFnFpIgs@tb_IHX^ zj_WlHsr7xT3Jc>vKCEI0lTTKZkO&T)pY1V(9mge1m|8!q476u0a`Jg)=vKl}H{o+E z3u^M%vJjeDn@>~AHs@8BVq+{g!v8pe)UX$x?vHla(0g&~BzSC=phs?J2HEoAanWlMNu z+Jvdg)Hg0`LP9M=``#=I%=eb8Ftmz<%UXpYq)O|MWq7L=(p-*-Tuqq#O~Md%9NE-j zPV5MQgcuNfCx?&{VAsov=+ocCIgcO7lVBT@|Ef|EaR8V{#b7jcSHf-YfAxN1Sk}zV5E5@-GvG`Wf^vH!n3!LP z$e(N$ak36#rgu5gHHrC2jUZ$^E@2?~Z~heJdjF`S6igp>q-zrM2Q~6%3@NvNBjk}U zHw8Y@XQoI`|ImZ{dL9gsJ}YQ%#!DbzI2C^@ zFdg(q1??Kl+n96WMfv|knB;f052p7!n3>*#bcXprKI7ezo(`qAhT_eExSoRl$Z?Gz zWV|BbP#}G(r^G1*m>BO1#Os}sE?X~i3hBh@3eYpo@*_;MybLQ6ie1yRE7LnAOd!;Q z=}j6zi1-o15(dk~^kRTcPnn+62tvj)fq3|o`P5^ggLDZ85z~YEI!H_s=nfyl8N-o! zM3P^Ya3F$ib7xVn-i-hyUttP-q|bsL_YpTFrogwcq?E(@LHH%wUk}Ek>Otu?HKd&K zMu3oy_0N#?!Z2uO#xlSp+H9{Ekn*;fXUpF3z>nYPKh%g+Iuq0t0LOqyY z)QBTwey&b>2I|y6$NX$WzGjiG3lWA%O^gUh7mvu-EYj(DR0z6jMxzKeGLN{!8_7#H@()VbFJX^_ zc?r7_h7a;3!ij-6@~@66FY|+XGu{V&hD8Z;0ldHTDfP&C6j5i~W z@X8Sh%MuPq*o#mP(gn-Kcp8}ugSbI@;)f5=e{npV_$Q20Ugb}SKUHYzGc;AE%|K7N zrOkjd5d`J*frw#I!kmN|gn#OTayvJJ5aJ{pI81MHq)(ItzW*4Th-fq9Q_jd{!1;TH zpnb}J!NO7gz!c<@zIO`rPEuJIV1T%?pn3^H`#buPhQ$qg>&gwIp^K271;PV8!ZH$S z36sx`8^Yvsy86NRWG!L)&T)&lzb?Qqjl@OB&I6+N(G^Fg71k0a$C8$C&t@sLX~r(X zej)5p!cHXA61MN$V+cDAt0*CLsU=MQu2~R=l#o52i?C=3_tH|EuF^rcK?-xgs3P{c z5jXS;VwVz@oP_N=5&-M0{K5>m33nd0hzIG)B6At7)vnh}PB@aYkQhy{g8n06wz?~*r!Sm>sN-9k9cWO%D2cNsJBq^#ac zU8xRyWkDDkLkuMo?>MYmk$c^QyS55pTnPv25YlO2ro#u6uak8 zjv@_+vcN5M<+vh`JCWOWrD|;FYA!QWtgV3dc&i|*u4atsB9uaTZf6F+wS>uECk-N& zMTw4PH0>Z9%~%}|C@CS$QA^k!?>B^g-JAQ3TEgV(^a=W>R^?UXtR-xZSA&Gv+q2 zmN5ATTQk0S%zbt(VS6(G={;VbZf?vSguC^NXtkr6VQ>-B8YoQKD|Igt9E7`Df5ft0 zaSAi{QA?P7p~oQlU5uHmsU>XRJ!c60reJ1+9E3X+4WZw$n(3rkLWnekzUZr)kl-ME zdDJ3$rM^1hBy8Vl%o2K4XlB41h_6%(p>G~DMdu(KwN8OW<6_6FX$A-3^BIGP#mh=q zbP~4jUNVI3iHs8V31O(S+N0GFqOMJtx_VF<28E%~X6SO#-EHaH_a9QiVJBg7Tngnm zhna9?p~5PR7zw&cG<8jrAYaquL~h@s-!S->z-tmh7((7t%=H`QV`z7cUbwDFBf(+c zG1?t%$s5gF(_M$q>WqcKs%zd&_`5DaRC8U^Q-^TS5_*G_Yx>=U8$?HMkYXmt9fjE- zI_}k_I@YNvSqkram3b6Ui`c#wb;qVoPv->jTErc8Y~QPF2>s5>Jgjga?%fn7Ou7;G zP8&kMiI~SFE<_d*Rp^bbugxOCLAX=1A@qBYYYT3|eMCp^vT|*&lQ8)d0U&xmbqe#S z$su|lYe#={ZJv?U5+wDaYa*Gfsb-$ZX-q#6~deBYy$1Ku=15mT#!lC2yWkcxq zkJpbPp_Z^c(Ps$#tL~Q&cM^^mLci}Zi%=YhEeT8L4NAU5zjF}E+Xwz_%$K^HgvnR? zEuwdC_NAv1=q$mj z!VR55xUI?XHXj|ZI;I9}*OD4&GWn?+DiRJ#*ehYKMNbe?GKM&Z5`2IBst&wk8{S^D zqFZ#_K)8vx&By!Dl{{i)cbua8+TB2~OhH>1lyX zSjw1rBJP@U>+V9PvZl)Y`0zVLcF~r*A+|M6wj7(=0<4&*W1{>h-p!oX0z7!*SNv8u zvoL_PW|Q7gN=yEL5;Bwe<9#)=)7Hs2pX?DA!nX$)D4bnX)ghgq$)K&-W)6_;y0Bn z{*8snf=VqI2C0SfSg1V%00hn=j_}65SaO%$m8lPj!c^$Q`Tod!mrY3B!~}BMicj50 zRf$km?lKY#@qP6_1Pc;#pu>Nl6=%4TeN?wTFo;tJXj_>S4UB422k3Y*rvNPD)Byq- zWEJ54nX86zp2W|Z87Eu4_2{=C2p_P4wxXMQRg+#&8BOk=xjK&X{kHyL2dCCyxRn+Z zYFEcSLmICUW>@9k+-De5Hx0*Te)v_DNOgrtDu3pOAG8UnoAZ|A<}L{nHoR$ExyO-U zi0_+P*6n%Jiqdrs^cH^3_0pEyDI+{Y6Bs+0N^d}6^V?f>Qed0v}H-%G9Vm93A-iK zc6Un>35IxTmH*386;H&e1Nf%DrMRg8EaN6=K(iWv>dH5kokZo|8WUUG3LFKJ%5V75 zLZtaEU!6e14$qM0IwV@SD!;^fM&;j{j>XvMKO zT14f0hBSi`(ZZ{IRNZY-Ww)gbP>MUO?(mRGL?m4KJ3M4jQn$s0V@$#!3Hz119|?x| zzNvNlMFk+@)B*g;FHyBk0Wf9UB!IMPP+j?EBil)|{M+(ki`()(kZt)}|DcT{&WOtQ zuKA{tO))SE?g0}Ae5m}}rOIw+J<}OVu^DeXrxHs@6eel;Gv4@yO-S9I5rkF=5g3FK zW&`EaYt6dP6?ZZ`;KNL7~-i_zIUm*gNRcH@J(-2n>s+pM>ARkmT~F;0S#zY15jQ0 zFf)#cEB_81v)xhgfo$b()41VDr1>o$YFEcSLz;V1(ZZ{IRQ6p`Wp`2=#P3XCz^8kU zGNP(W5F=UyQwQjHQioZl zj8g~jH85s10M(UmEIWzH|El&uU(IMybilXuH%>haX@2EH?drH^NHaSnTDU6zZq_rM zpcezaFSqy+^;>QEJAB!qr0z~yqPv@fxFX@8at|WG5N~AVf0c++2k=dARNEu~mT{8+ zXjTJIUHLTgWV-#kds;w;dbzvD2a=Zmz%h55yl{)xc!yW{cYCeq{+gX!?=H(c{@rDf zFvI-?t<$kl>{4tHd$##d6*rVU3mePMa-?=)BUx^*%#DrnvHh@x@x0gqY-ntFq&$P3 zWdmbSC}0kh_w^jk5DsQyZJ!-grVJ9rn%WtC_PaJAH8>_5LlX8&SWxZ)5)AQ1`r{xG zrw-uz;~-U=I)FdvXv#Qs0B9hUd{107@IL2rPwOOfLPZ!l^fYEF7A)R|xc6wK7`^=O z58jh&0TDS_l{T~PBfZp|J|XTkVaLfs%FP7JUE{m=3}~?igvfmJ?>J>Gd#rT@Tg<@I zz+c7{b5yt|{n5;?`NoxJ4qsE_@{u-;H*Ug?*=Za8oVLT9?(Cw(wYh(-3kkN=GcP7c z6Mj4zq-^H%6GCv|7&4R~rUZFXtPzoLWf#uvUE;fU z?lugmuML{8{nv@u`(ka%#6)2-tG>xJgrq|do?#eLU#lR*aduLfDu^i)%W*7zRE=Ob zdG~H58}8eCM4Cxvs=N&$e|mu7KNA|!Q0l>CP(m6%Jo|Zw#sI^wXt}8#;4=#`r^*+m zN5Kxx1rib8zXx%I$x$1=m!TezTc#nx2k6`4NJRd3li^I0{_ef=HvikMd}RUu4>Fd1 z-(E}q6!U;Ty^AMuApV{{oP*x1CJCgc1~g*xpJ=X*KbWtM{~~GWew47`(-nkz0RJ~* zh#-7)*oMzCoalglhmL><;qLt=OjQtg2k`Dy*SnVri0k#y*z{8n{CCBM_w^&x1LC1q_uMI2}ZG!RX=1ZVU!Pfy!;-?T+^8{(E9x2fABb>{{K*nm; zKr{a>0~<73<9xjbCdpp?@P-GK5DC?mM4SgruOE2*dOs5Wms-;JqgXQNuf~sIq^b@A z@%u~Gc=rv>eaBO;i!H;Y1cnEQ_63qn{Cf4#3FM4$Le`Rfw+cB$~MMl96n`y4LW z*#3;)&#*o7a(Ed%>rnjOgY$Y+*8eP3wf7l|IlS*1G)J)iV?wnRnScZ4{)P@rzY#|Q z(f*fN(fFZQG1&JR|Am371~-U*tJNCro1K?dzNWK@-|Q6Qd41odmG+DfX2egw$plLJ zR9mGc_I4ezqEfXi><=7lzrL?i~;@d-R4TF@#!%e zul6WYeuqbW2d$^7S7SmwkNQqdJnB2SzXzKbA947Q@h!N(a2BOR_+LpI4v7zax4UKj zCv{5v@2*O>cLp}S z+K-G49DX#Ue)K(QTTH0uM?>mIL+VF=^L8;lQtM0J&3yP~`g?R6`d0Uut2U@F{a1}I zow@1)nTYu>^`-w(Ut08+@+BRYt$;_(modM8J{|p29-d~ec<(j-)s9##g&l(_MYW$9 z`#AjUdnmo>uXLRY6YBZd_j;ti`d*I^{axG4_*ktEdi|G~CxIc%0pEM5gfoN>_WfYS zj9aALKG=su3nKRhKbY}mQ3y+7&j-m#qQBVu2uJ&Eu`_Yk$yphD$2kX{cRIe07miOi zb0C~&u|AoEPqv#ml4?Gm&U&WORePqfnpin_clyv!$TOKxZArv=(DZtD`cMT4|4S`t z{820!yhkv83?rF&5*myL;{VfX!|ylsFYDR1MI#6;i1=&&veumBCB$F9pAe#R|5APC zRQ+{{8RcVLUa%{bBF z$7Xy9gPDnXYd&MZA9Pwn4)@%9{g1vXemvZR#410&_xfdT7s7t=I$h-9{VYm>I^{aURY%a#T;77t=4-o6^+!RPz62 z#HVybXw2X+lMb`Za|M*o95CAt(>SB~3SB$zHAl?!g8~w(%+$5>DXWCASIqQ-ULiVx zW;z~)nS(;GAe>s)0{dql0mX6@@NCd5F;BwTT=}tK6cZea@bT5fW?HEemyTrYG;{gj z&AZKMlPBvm9!*G|E;CinOO6h^Ik~?Ku@#2TpKv$jtTkZjhiG1AsG|mCLUq{@=RsrX z@bHIuBoOUyqU@&5rR>2=fIQnuJv_$p$$?@%+>CRCKkAxu#I)O5G=k8A$R%LT5udz5 z^0ML+KgtTxiGNK#u>u}9-FVT$kXM+Jie-Xb^~1ObR(S;zs!NYJ51K12rGGe$1fu<| zl%Dl2r4RarK6^CJ7(rqV6!ei%oH2}l<`Yf&o#;p6NUZXU&wS$Fz9)o9vCJb$A^PxN zlV8{ehl}AI?0T1ne8ZI1;Tw;#D4e3!9)k(h7GT2v@9syqLkkEfMNk%%*Mi&E7KQg31f@mY zs2{XMP!<7&h_JbkfFO{(nRC9mlCF*44+aFFSv0jji^gK301nG^Da~ zy821O7lCqT~oy%0KnC~ZIZf<7PAoz{?4w;m*2 z6{6xreroqFFXUYn!i@SHP@fl0S`j&Tp-2q2Hmq`>Y5+N?tr1l_6y8g1948j)|2;`< zqA%v=JoWC{X6X>sMo=Sjp2{5rtOxmdu?IrO45b=bLPx6gr#4iC$VhEf{GHYowO{!? zqGm>Y)YRvN(70R`ZOgYwJMO2L<$sr2~`x%Q4-5DOuj(=MNzxFL7~b zBdCM&4qwkfunTqYlBDf~p;QNQiM)23QC}A-Vq~bcE?#bT)de%^vp{`bD2*>Ck%gBf zRl_U`stycwqUwk4U)vws2e}0Ks$U2GN_@rQAN8V6UWpU4u1;1ge*R_%b|6EqbUb^>xdcs)zKSLM{h(SG%RzWYQj)6*bdd-M^82MCIzc%DX?Ng z>k`z=Kl#Cr1(&-ndS65h@Wuc%htMLj!0$3%EoC{zZ&>|6WH!|RZ-a-TX{`^-^?X#-`cqq2px4(V<6>FP{O z-y>%gx1oC8_PDBt8U0ny+kRBf+y3F43sn<_nvv&<>YgW}8d_VTXqkGR&YdMsudMBp zr>ApSobz8Rd0H!Z8q)hM{yl!GI*LBG&ox68yPLPt91 zs=xZZm5SR?H}95Rb;FGQ>gK%$)XjS&qlAWKF4XgohMG~eMBA0R=SHdjK5FN^@|sW1 zk*D0>>yxK7pWL#iu9^2GPwz{f77XQM9lp6^2^}Mwk8@P?hRS)rgvxmgYY{X0tDN`c zn$r8SSsKO}QT1V{A5~Yht=X%K5v;ZQAsxfC&RAceH)T(x?ST^OvHTGJsMX zAEpi9zltWWMsBk|7cgf4w+C6$AKFXny1|fIkt? zX8`|2z<>di%S|6e44}LT=%bhc%!=8#0en!vgaLd&z@!1ZU%-?ByidTi0sN7GSp#^l zfH?zrkAMXOm=UmO0PhyCYyf{KV8sC51#q3m0RBKgp8>p6z<>d~L%@gul=~3Y#SCCt zG~)*FHUSd`@Kynn2JjXEQwC6OtXh{gfZr3%tO2|k+sSn~fO|AH98c#|&ZcVxeD5Wn zUGdZJopb2lBDzb{Pe-rI8ZIKfpU%1PeUpAVI>D`|u(jR;Th8lo*861WRhxZ{ijp(E zMrD0e447YZ^l^Z2+Lf`ZB5;J3{FsQ+D1vr_%FAQcJBi+m&uoMj z@tNPQUTRj1(0aD0M%y9-)fXMDXV?Ba22_myEd!iZWuX4WTPm~e*Wi$-T58^|{&BpS zSTrvm$BDwwg+6NU-Lz9ozY0fQwB@FhNYvBENhmw@q`n#ebC>Wuu_;+-xKBE$!^379 z?2Ba^N*%`sl!JZot=dZHlbF`{#1G91XpcnDLkuOns{axu5w+BogY3sXW{X>Hpjr;f zwJkT$8t*^|D#k50P~!ooRT-!+2bI}Dl*1>o5BMZgHKfa-@r#SULOe>Gyn8jS=g{dp zud@6kUsZM{pC-G4DXZ{2a}ksp4jt=}*h^IOf(y28naZn3Xv@0HBYvll~!e-e)1{Jv<$rFZ-_OM9M4ZoLXkDU@yQ!sP*`>HGxdEZksG*53|`Q?Eom8q z7isY#T{VOfd~)V4#H%T}H+Zm`eyJ13A{%m0ZWz0l5(#aP`5C49&d1w6k7)dJFXYNH zewi3Lkp5q&=>ACA0uQv6xh>UxLt4WJ#o1S`eo?aK4kc#n+D46TiOp{UOb&F$xM z7vbkgVz7|i*l;2}<0W@5w$Lw%^XRw38FVL-=`E=8tXBQIQ8)V*)P}>wG4@zH7VPBt zK+ZQtsZGv(A=&%FQx&|tgW7ZGZ?KCGg8cBGENna`9igZU1+Z6s`m25`D?CPf7j8-^ zez=Kecg@-nF3A2WBf{N0|bSVa=%Q=D*8B*Bjr4B1r8lOCAqbOB~38f1X)E_gYAAk}N^SnBsDR+T$Db zTgFvzN`c-)F2ZaVl82#z;&Vna2OjNks;fIjITO+zN%!5uR=J@--uG< zBRgQ5Po1g~>hqDEUnQO_bcX8}PTJXmDZUa*54`@33^bD*xiB(7ba3%iM_0RcD4F6L z*$Lx`#_nC8k&(D2p@jJKmv4xz7Mef#Oiox?5aF8o9LYuo6JNKC+D-B>G*Eq3N9Pft zWQuQ;hj30_Z_`f4j+K#mt4gR(eX^0*YN7b#%w$+uzz8+_2eQbb1JB>62u2+hA$b@Y zD8B0GHLH>_zAiFK@r_D0etzOsGE%ZS66Q~Tzl7Loq4?xuC*e_S!4TglHZqv_@-k|^ zYG|PNs-u^xN=|$f&uFe5rasVyrV)QjV5HH+b6jS@@lE=Je9Y&C;*+oUX$ywg@Z4HRE>baoF)PJHYlFC1S6G}W|brAJ0e5fe(NPkjQ6*lMBpyc4e8HNUmuR3~fRml`zV}Nk-rqSE@A75FDks7^KCDf<>tQxV^Lh;Er z*uu(!AwFef5b-s}Wz?EgX`uM3qt~oT#`wC)VU91|`0T+?$w+BpipyL8s6D=E&E;c=%0kC4KTE+aWkG~%>QfmRM0{hCVkk-GVQ7H(YDVWcpk%7g zG3*h?nPcB&BV6S7=sd z!X9>NAZ_;v%lUGE?8y&8+wJ*lQl2V71C8BByA7Ui<#ommUdd5x!=^^kAJx=Wc(#KY zkQ%*prJ?gcx{Yd6jsi{+*S(0{I04$L`VY%U!ndj>Ja`QYtLkBE`aE)Yt4?aO1-Ygj z-ijwp+q7OTQQN|2TE?*u{)niB-Or=#5Y(Ik*boOVpJ@>xQXJ2GS*X85uXKn~fBRy6 ze_M8p_}g^U@TE!oac$D6p~T;s(@J!#w^AMM+5*w3+N0NCT%P#4WaH86IurfS0fhicv)>vpr-z2Rc+U@gTrOvJn(U{DK+bJ@h zh1iS<2jCnkbr3R@#X!m2I?)UZk|&xXwWf`8o`4Q-jq4)RfaUffdnfFcJprxDdNT?B zWk#oGT*sO>AH;_q!{a)ThCw8FTo)2NuFFwEf}LB{!{hMM4r)MX_}-YUw;-EI=^YWB z(rvn~dhDbeva?M!I|J72Hr=As?M~@c*|Fb)^#V2k+Y}(AULgO!{WikQKegXM?>Rh` z?!B|s+Yb4f8Xl|)tIe}JskGv6#|1;H?9Y02*xPomc>Aq2$j`Rb{0x}XZF@wi2l;X~ z1kR(!;cd%E>b7MF4e3XgHuLDQPMjg3-n>d=%Uzm=w<|pK?kl*VlR5}{5G($6Wh8Vv z$(57Phc@1$pKA(xLR+b+d4a`%s%zmD@(}%sAN#=vRiKJxi=)K0f za1<(YM_wBTS(!Upq9l28lIc8lAKo#B%G@yq%ftHtbN%aLGikktlR;@6Z$16cWB){k z##b{mV2zG%6Qwq1E^yf7JW(7TpFmp2Cm=MWcSoCfqB#5|Ua56L5hnF{p(K7OiZH(v zB?b$Ppu=zEM}1;cD+cc>5yn5a3M9f`XT&Ugsgv5Y$X7(eiXloKLXM_C9x2XZ)Y!?Z z>CQbhKTr7=HUG)N3VG=W#m`d(@Ce$F{)(u`43^RWJNJ;VI5b#2qa5<3B17oTs}V#& z2CV7t#2Z$2AX0s7kUGTFMlf5>V}s$H+Av!?wLxg8KQR z1;wb3n}m7c#03!d&Qi)lK5kW9?po-t*og1zMyQo}f7tq(X6X>EtA%-gI9b0sEbPN$ z>(qcyY{>m^Mi?qKWq1uKF%IEw{0IW!py#-g?BIO(LQ`t1c_0fPnhPBdLzNB-gO{^|=ck|(A%f|`2xyS}p_SVT?jQG`&0 zbMQZ1Q}UG${hrH3^ybSxZ+p_dBi7mq`ZHC#+Qt0|@u;97Seq1;EV^v`dy7Jmg_5!- zR}?2FeeWF~>>);&sf{2h_ueu4+YszVQoh^`q5rinqv`LH^VchN3K!AGS{Bg+okstk zODp^7^gple`rBRn(UlPWtmupD?;Z(W_u3nsALO$p@!>rw`ntq3qdsTU=Y^A8K+g6o z5QDA#-^>}J^h+w7ONahE;--_2H)N>or9Vncvqw{Z5tZkcHH`#U`3a2BpDc~kV5P1} zQN`lxj>7XPj{Z*>hCwv~=I;hJ=8TA6d(EuL0@|hEjZ6nxXoS6LJ>wC1W4fga>m}Su z;yDBG{Kh1;L-fZA`7b?w+g++1N^&&rg=M;kNo#w|E5?|ijIG+-Qv%`UZc*qKg~x-n zPYKZQRlsqJSPcyqUcbv1L}=K7+?tV&_^Hp` z_dWbnQ6oz=8|Tn6Dqgj5mLGm9O?}fTFJ2GtlcFTZLiM+IhB`zi^jwhnY(leih-xF) zD_)Sf{wiQ)q;rB)^pJQ(z59|K9}2IagH=9=t>4e7h;?wmnpB4OrW#VI#0MM{qdp6i z0bV$5QdE0OQ4O;!s5(FvYF0aEHQO((W0ipSknvTED%YAOw*N)19p?3C_)lh1O8TFZ= zJ};EQeI+yd{vXPWsux2&sXC*e4@l_X@d1c%piB4n%l|le;Et%L{qn@rMo>>bPJZi~ z5R{)N`xPNHBtEs|-tO>`__w47MRsbpIf1Neo5PIy3{amJN?{<6EpH%C47N6m zGN9%i8K~Lb$cJO}c85Yz3kCa?B(;d{pZU%1-V>UoLsT0=g8IC0^0LUqSEQVVWiHew6H+rEkr;_eUyX zL$!RB)}Fd*VMc$|^3^U>%U2~;!z>G`4h(f7`Rs<|mX13^ z7hk=|4=jZY9hibp+fY1~;W}}BJSMDSHB`t!ZK#j};%7#G6>?Al@gI~JZt<(RH`Ioz z8QO+eWi`e6W0>6csD8L5y5f9V0j< zx#zA!kA+|Wxv>Kf8lqcP{UOW?`W%g@hz%8DS6mgsjQ%Pl=tUNSlB!{r1yu)zI>ELh z9LlQc4)wGv8g9*N8tff8`8IhIL9myY+6d}oG;#y=V)I&nr2JU9RUwP$0yh@ci#H_2A z$}6W_2tmox!IGte__*~1T7UVfA)oPTq1S@Z<$Ibfp0Nw5Ka*PgS>zVFMSwq6$mhZM zMZca#PIVOk%AT%U@ zo6CnP`+Jx`#ci15LpdnE6HVrr8U4-ip+3ySI!eNuCaqJPqr|q*VNd+BvM^svTz3=Y*3)3$1X6%TeXw zva$`&oL~(&TxzIctZ-yYROLuI_8#!!DqX)w(3bgh+CHB_TlwX*t?r-~$@4z>JUaJy zKAlTS($@YWjCDjCC6#AHeVW6fdq?X3@uP0;e?j_yhx=bEebU4IFGQE~-T%V$*$?-> zgXyL+_rF8v(;)7D5xP^t{qIove2D8GBAX~%*|GfG_Ez+FYD2@QHFTwXyM__h+}*I< zlt~TgTQ6^1U)pr|9lzgnIX!TWjrhcN5=NDNKS^!=sE0fWIkCe4c8X@F0lY%ME(5qy zz>ERBQowElc$I*811NWdPwX*(-xAG|0lZqkUIX}TfJYM6CqpR#y#`Qjm_5>O0Iw5G z%K&~?z^DPdUcfd3cq49qIkFufKOI3^<0(9+bVniXAZeYH6+s3@&|kfv^*OOfq4kKk z2zD6-?dAdmOCp#x3#$7#$YOQqyiw44lh=HDXT_WHGK(XNX2CUaEx5)nL-(2mKaVKE zYA};LMnQY8m==r%U~!V)C}@33Y);RSjvx=wH;?vSoo+#ywvh^unX%sUtG@MKN`_7l zqpwBlqfRAg2V`a@F{7`by;ngARueuc4Z%?gaE31P)KYP%>$tSHnUoV3a!_#j`aTiC0L!Q zsLYhh*LU(t(0V7OXgDhQjmC-5*9Ci&R|&QrDeF>{hcXB@M77`%KJk@@U_qA)>Kl7h z`R^u`LOAMJ&Kec$2^$P zn8GPNMnQY;yb`Q#%%+shg8M|3puLX=7N=6*Ftoi-rxI*+qMqtA3+_v7_HiExW-3Q# z2e>(!Q>-Of=wlp$U3 z__g3WQY1(DAn5Y-UCwvSHvgyyd_5`xh59VmTa}bTb+>+0n^Dl(z-d%lJF%F6pv#31 z5Yz{Gr4T;K@i_&BdKavJ_9{Vp-?CWF7zOS9+O^<*0TImgBUpl<)WA_aMnP+RrxL8L zQ%ChPQx!z-9HC7kMbk`ek~I0?<20X9&>qR@qkKBsrfHU0un~gJS~@Le6tq6liMIoO z8M?h6!EWNys^T2;O-mXDZFTQe?VL~RG7IicY-O<^LuZYGEmwQA;Qmn&%o_!5_3AMi z+S$-fE1CsyS6q!?uTjwYtVDcHxKz({_QkNWZOmvvXFoLE4?$O@Z|D(0MZ?o2sOeEC zj8uSZa_kYEs$bo4O^=%eM@O}wQykMf%z|S&wV+cR(^C+v_qFx#f)+f2%aM+qr)Mz% z)3Z=;`Ra*i1!n@L=Z%8a`Zg`-9IQ+?&y-a`x~dbM+GPGo$ExG(8&Q937{=dm+7}qr_wy0OfJ}TSzVje`2K? zA?C}bHdY{j6XRNe_iPgd$zaJW81TCVc}RoBfD;ld9?iZR1pV%zRj>xZ-4d>$Rd)Ic zwodFbG&5MRemkcR|HLS#IVrv-jSBjxu2w;g8IDdv!Ijtjn6DPG+)cf{u2^fMT1@@V zuE=rY(LH7bb;Kk(tk5eX^g^ND75zh9DL`;ABtI`WO=4+2WJML;Ie!~NeQ+- zV2R}@1ncvy&uZTTBFra!|67pIL%Jy|4NdfYK3PEBy%ilob63!DGA-tapJ93q_D9xp0h3 z#4#2W>Rqt+k1D~IZ)L=C41zAplbkFlh43*6QAj|c-ZC9oDZ$nUxea%JDLm?g@V#rIk5P;dpgM@$sN zvaCY&mg#4>2ohz>vTd7{CWax%FEd{jR>;W+IpP|E3~-P%L;Xai)zf z*PTU|>h#m{=OBpLZLl_)C=L5WMN#V?>m`Q41LqWaQY);Dg0eh$^mb7UM2KN9;5uV&y@OEX z+{fCo7-%;eaL#vk>k;3DCvr~Yor)OXX<`ptb?{zZE2>=-x%?hHcu%JB*sNI*S1_#i z+qHrB12E)_Sb(By{y(T_LAB?n5kFwhn8rboy!U0hcWf^VjZ^|oA@wG-La!9cah`qz zixA8p8OQm}g8z(Z!GC&1Fw&1;4uYK`$Z6yB>aCIEoqIzM~;sf2)Ks+s9Pz>)h_EJS+kGJLt#55;0*nVU-hkz%b;0M#PD%I_t*D= zA_+L5BtMF+^*)WSD}ln1bsREH^g2t^kEFQUyu>inW(9^mDQN|q`L{l4M-toE5-V<_ z1e{24`dvI8T66jFE}6?@be02Hz*v#WmvhkY~gH-oT#)mIF1!aksae# zK~x=+%LsB-#vTz>xXq#@XE)?Plb}&hkD_v|%EBo>3#TotO+IAgYb@AzN^D$~ut&r2 zXc*?r5f3~n4+?x#6n&jpxke+GwB%HxoDQ)^$Y$qjZKP;$0GB)LF`e4*m?$U_cAyE7 zH^G4>;JDsrHx{*AV+K@DnT^vd_Grg}GzqW+^=r1hH4JYZkyP>InglC)gspQTD3j^3 zI1U!aITlN1i{pB=#c|zYk%ur0y-m9o+$I3Q<2n5-$bU6;v`tzB0svjUc}q&c_R4!B zj*mi+PKG>{qW0+W+PhC}R#M^P+XP(I|F@dyAW6xw8$7C7!~my4`xt8FbnU<>tx12) zIgJU56F$C+D2qBbN*$l+!|CqB$@k&(^x>2oj=0qe4tesjMQu6AJAvDEPMqNF!|^*D zm^*<@uomTTC8MXScK8GilG1ZR7tw(ht>2<%mUTLzKsFzX_p3Yt^R2{{<0ML_q>hY= zZ#*`9d(=m5j}i!0$2)!PI6GsBFh>MyEB(~wNM-qd8>zgNdJYGmUBI37 z7@vlp<3};g@k5ASU}8R4pG)^XPp4N`MG)DXHZi+uv!$-&Or<_2DF*1QBKtV{H#d#D zL9D0T;G)7cGsM|6K=}f8cup3a`lG_u)p6p}Pn=mLO;_{eQh&Bj#wid(Cnxx`PHM9w zB(S+Fe%bxk^kJiZ|TP5C)yK5*l8~mb}pbi_Snb2R*V3Zarg1MdIK_@X-Xg9|< z`mLsau}z_0aHr9~rS$7;DZR;t->%m|yz}U``tuZTQNx)sSOIp%tlDg8%w@T{(hx^_ zVZcfHJYw|c|2(-(c%BbJ+ceTI%(LhQ(1V;}?ohuf>E=%iF;6n-)X=;*w70Z|<|Q59 zf*JPQLw{;PKIU~%Pba@0f$Ts6`KrJ@JRA=}Wm+uB5ItsrV?82J5`k5los)SiXPT4w zJR}FE0*>CT25-+%pK5M?0<;bO&2NJsRq-8uYV!df4@XfRmlPq^ z(#)z5u~_IuDfRiCRiWE>cv(N^*G$8$?ZoGZco`w)v)rLS@}W+^v5`1)`EZFk!2ylc!oMmx-#cA@*Z)!?G|B%hpHAu-tJE>wv5Quy)wv z%C#0URUu=vJ%sbHd6tu5RYw6qCt3$&4a2Z6ssP0T`=EvXOVhl-hw5M8gQ0$=c>!mL z{9nMMGnJj|f{5cm&=k0;aSl96ax#<33S!%=5~p6~LAfv(C6zddE3MsQJ@PyFeXpWn zb$d9uHL(-@3}`nf8)3Yp>9PX)y_%{!s|jCLL?3q5ebdB0(gHuK=`x-u=C`3=(e!kW zqM>zJQ1+J&^46t5lb{LEIA{zs0vZ7IfqFFkr~+CBErJ$6bD&w!G-wJm37P>I3y? z`i%-`8MFvm0L_7BLDQfq&?IOAG!7aAjerI~eV`sqPpg2IL5rXT&>UzMG!2>pO@bys zsA z(UzMG!2>pO@bys1+)xW1TBE(K;`7v$ys9HXu>)6l6Rk<%+hY~vSyfI zlWy=*0eM_EDDU7unVoZk7mH@a0A2)ep~nDTD4@>($`6r+0Rt%C4qF&8fbu?!g)sxT zLdJ|6!1Dx57{GG{Od3G>KHtKW0X$nY(+03Zz^nm0OTe4~TrOb20Llr1g+&8+hG>=z zpnTm@tq~(gfR8#kW4$0Ss7JCeuhr;Y)p8=Hf8;b)5@DS0A7{G%Cj2XbNfN=vTpEX*X zFo3P1nKXbw0aFIh7BFo9EdjFzutmU}0X#^+f&n~Gz@h>Cs(@t!cz}Qv1Naqyr+N(F z{sQ_8U_iit0o+f(hymPJz?cEtN5HrN+*`ne0h}OU(g5xyV9EeC3z#;5egU%va8Chq z2Jp)Q77U<#j^)&%0o+|Q%LZ^a0V@V@SAa`A25=VveFo4cV88(GEMUX{?j&H$0Deip zxB-;62Q5h$z#T<1X#jT+Fl7L@7cgxA<#hUztO49sG;;=U8vzRjaGZce1Gu$-Wdk@? zz={Ff3gA+Y0rUvyGk{|R3>d&B0V4*mQNWl194%nn0FDwcVF2Yy%F?78q_>Q063vtW z+$dn$0Dd80)&PDkV9o$;5U^kXKNGNM06!J5Yyc|)Rt(@L08jH6z>fv=8Nl@d1`Oaj z0V4+RBLQOu@IwLP2JoK(CJbP&fJp=Rfq*Fk_`ZN?1NfeRSp)d4fH?#Bj(`ONxK_ZT z0eoA)vH>g$STTTW0Di+`0N)bOX8_+6Fkk@xAz;J+z9C@D0KP6@+yK5NV8Q^F1WX#h zR|QNNz*huJ8^D(Z%o@O#1k4%0zYAC}fG-MIG=MJ%ST=w~0V@V@HNb?&06s6E&j9{S zz<>e#tAG&$_?&<-1Nf|faRc}t0wxS#kAO)7_!j|F2JjgH(+2R*0%i^1p9IVqz&{FD zFo1s$uxJ2(FJRdK76hyqz^4H&^BBP23FtF`zZEcG0G|>tVgP?5V9WqMDPY_HJ|SSj z0Okcu8o41rp~-ed|e!bERAEZ9kE(F0=XweS1dBiJfjnFBl^saS|J66=66k z4ntH%xm6rS05(R;u%aRi$Mr@Xi}kO09+Lh>f$>XbusT$%N87+aEY_n@H$x=gspZ&! zW7eY`P?1p{<>d1T)<*5AwUQ;6A)`19G3uy@ji-B9pZ=PZjaB)kb}(Q=KVZ)ino%Pm zMjx}FBAz-7F-mytD34o?#26&`Np_t_*$S~d#;L4fv^?1k##pxm7%fkxAhESu0*tB+ zMTZ!VrlrQ4ynQ zVTeT5&FB^zVl*cVQOSeBw@ayE3nC#ZJzy-5VT&RmHcD)l&N+UlAKi|| zj4T@MGWxkGXk9C=o{h2WY!8H|MIh4&JHc+)v47YBnfVyqz86q%QAR^8^E^<$%tGTL zj1|0Ap!-v>bC|esW)#A|O8`1l+_(rFyQ>75vvO!WARfMu)*SnOL=n6$0L}{d9K1sO z`C$yuRb|-e##r`wuoL`|SiUDIc06b-?}FA}zzKdg0nU};#+g}gUi9fk=mf8B*blUU z6Bf?h-GHw1>qhWSF?e<-ghLTDW?B&LfL8D+XxZO}41G2e!iNMPe0NMYf+^u#C6-Ts zaPaXGWKJ)mk?BR_!isKKufmSqiLvbaMCJx?TH+aK-GD~um=1967vV>JF!-_s=q?W$ zzs~AL=mfZ7UyuiIxhfDRtCM_r#P$f z4H?L!W03hq2RL^^*uJO?=wgf&ib5uMO&r3BEE*kA2>%6Ip;Hpz$h-&dYyjsuflg0? zllJNc-Bk$ALJSd_5dr599yC_@(fD2#jfc9>`1c|jKNZWr$!U&#ZCPYs$G!&sgpMge z=3EE|Pr?xPH(@zsiNP~FwQ$IS!O;8))Nknqv@iwEk9@ijytRPFGZ{4QkReWwgY$cE zg3DpqzBd5q*|cuh_vFEO!2;)dqJDh>P$37%DeUWez>#fl@R0^^E*Hn{6Xz#FI25bE z;J4}A?o1XmYf=Ni$P3N1U+3H7UeXguzLolr(MTK*%d8}_AXG?F>p2=<7b zoBiP2Br;bE=jI}yBBBUQ7xg8=iNLYoT_p&w6!ohDnqzmtvET&_;9LRAp<@xdeHTU# zE@_9%St5L^K#3@Zcpgyj&kzpH^+W3c@$ixqgzu6eZfet<&`EJL+PWa~Z_@Z}QgiH! zA!DC`A%a~{r-vP&eq06W4@fo^Wi`ioxdiAbxDlF*hW*_<)PvyAV?z-B1)>Q4JfS)E z{b&ULTmUDXgYaXp6MPa4dcXoQ%Y2YI2R_^Pb%1kogKmTtTM)jpj7CPZa?lDsSA^C> z6*Q7r-3Ue6!CBdh#w}v!&LlX$6vt$Cf)^wJB?@SqS3=`wGI~!JI45P$cvLK3FK+w> z&IfC%8&3u>pMB!2nAu;zSalfWm(89hj1v?31}hW zvM&sPlZJ=EZ*^-d#te zoa}+{iV_-U6aig_A%c&00J<@w8nlzbSizfM$G)TuTC1aI{6Gso-ZD=tXBz;0Q-ps4 z_28X78nRQ}y3z7fSvRb|`T$)BgCSeg|C-ZKXbOf1&C6>}@Lxq{DWYhZ4;lN~PRQKa zt{c{?7}UNToZy8i$oxwIjZ+YEXo^>J?29_kxH1cwZ$l=y0tQ3zUJZr5E;1*!fioM9 z*_Xji=vWWzJRQ@GmU&5V7FlRKBtt9(Cvxjfrj-;LUZiS44^-C z=|*T#1khEY^+zvceg)ysB+)v#7f>dJMu*6JtwD1_b8>*L7MUl?;7ExE&lJuDJ%D~3 z(+&ITG&tWV>PE!zmmy9OJ3oW4 zeMufNw?NCj5(b0qJ{UaA1DVAg;LMBbhJCXPagEsdK?KlkMKo^j(T!jlgNBaGg7cRo zWX{f^@hxdw4_8C83V^P|SoUcFsGsXc<9p)sA7L{(}3;~ z=$ZtyP6Q|TAY@wR0}6KKq4g^Zjpc1<+*r~L`!0cAOleN&@NV5``CSFV55qD&OAM_$ z;HoWy2D2T|THt}qMQDVMEo)9_j*Nb3Tyuh#Lo0Y<4xHzO^S6NFtjafLq5k!VZrG_9 zg#S&;JZ_&4%l27CK + + 4.0.0 + + com.crossoverjie.interview + Java-Interview + 1.0.0-SNAPSHOT + jar + + + org.springframework.boot + spring-boot-starter-parent + 1.5.6.RELEASE + + + + + + UTF-8 + UTF-8 + + UTF-8 + 2.5.3 + 1.8 + 4.3.10.RELEASE + UTF-8 + 1.5.6.RELEASE + 1.2.3 + + + + + + + org.springframework.boot + spring-boot-configuration-processor + ${springboot.version} + true + + + + org.springframework.boot + spring-boot-devtools + ${springboot.version} + true + + + org.springframework.boot + spring-boot-starter-aop + ${springboot.version} + + + + org.springframework.boot + spring-boot-starter-test + ${springboot.version} + test + + + + junit + junit + 4.8.2 + test + + + + + cglib + cglib + 3.2.5 + + + + log4j + log4j + 1.2.17 + + + org.apache.commons + commons-lang3 + 3.4 + + + com.google.guava + guava + 19.0 + + + + com.alibaba + fastjson + 1.1.40 + + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 2.3.2 + + 1.8 + 1.8 + ${project.build.sourceEncoding} + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + \ No newline at end of file diff --git a/Java-Interview/src/main/java/com/crossoverjie/Application.java b/Java-Interview/src/main/java/com/crossoverjie/Application.java new file mode 100644 index 0000000..e0c3e3b --- /dev/null +++ b/Java-Interview/src/main/java/com/crossoverjie/Application.java @@ -0,0 +1,24 @@ +package com.crossoverjie; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +/** + * @author crossoverJie + * + */ +@SpringBootApplication +public class Application { + + private final static Logger LOGGER = LoggerFactory.getLogger(Application.class); + + + public static void main(String[] args) throws Exception { + SpringApplication.run(Application.class, args); + LOGGER.info("start ok!"); + + } + +} diff --git a/Java-Interview/src/main/java/com/crossoverjie/actual/LRUAbstractMap.java b/Java-Interview/src/main/java/com/crossoverjie/actual/LRUAbstractMap.java new file mode 100644 index 0000000..0415733 --- /dev/null +++ b/Java-Interview/src/main/java/com/crossoverjie/actual/LRUAbstractMap.java @@ -0,0 +1,349 @@ +package com.crossoverjie.actual; + +import com.google.common.util.concurrent.ThreadFactoryBuilder; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.Set; +import java.util.concurrent.*; +import java.util.concurrent.atomic.AtomicInteger; + +/** + * Function: + * + * 1.在做 key 生成 hashcode 时是用的 HashMap 的 hash 函数 + * 2.在做 put get 时,如果存在 key 相等时候为了简单没有去比较 equal 和 hashcode + * 3.限制大小, map的最大size是1024, 超过1024后,就淘汰掉最久没有访问的kv 键值对, 当淘汰时,需要调用一个callback lruCallback(K key, V value) + * 是利用每次 put 都将值写入一个内部队列,这样只需要判断队列里的第一个即可。 + * 4.具备超时功能, 当键值对1小时内没有被访问, 就被淘汰掉, 当淘汰时, 需要调用一个callback timeoutCallback(K key, V value); + * 超时同理,单独开启一个守护进程来处理,取的是队列里的第一个 因为第一个是最早放进去的。 + * + * 但是像 HashMap 里的扩容,链表在超过阈值之类的没有考虑进来。 + * + * @author crossoverJie + * Date: 02/02/2018 20:47 + * @since JDK 1.8 + */ +public class LRUAbstractMap extends java.util.AbstractMap { + + private final static Logger LOGGER = LoggerFactory.getLogger(LRUAbstractMap.class); + + /** + * 检查是否超期线程 + */ + private ExecutorService checkTimePool ; + + /** + * map 最大size + */ + private final static int MAX_SIZE = 1024 ; + + private final static ArrayBlockingQueue QUEUE = new ArrayBlockingQueue<>(MAX_SIZE) ; + + /** + * 默认大小 + */ + private final static int DEFAULT_ARRAY_SIZE =1024 ; + + + /** + * 数组长度 + */ + private int arraySize ; + + /** + * 数组 + */ + private Object[] arrays ; + + + /** + * 判断是否停止 flag + */ + private volatile boolean flag = true ; + + + /** + * 超时时间 + */ + private final static Long EXPIRE_TIME = 60 * 60 * 1000L ; + + /** + * 整个 Map 的大小 + */ + private volatile AtomicInteger size ; + + + public LRUAbstractMap() { + + + arraySize = DEFAULT_ARRAY_SIZE; + arrays = new Object[arraySize] ; + + //开启一个线程检查最先放入队列的值是否超期 + executeCheckTime(); + } + + /** + * 开启一个线程检查最先放入队列的值是否超期 设置为守护线程 + */ + private void executeCheckTime() { + ThreadFactory namedThreadFactory = new ThreadFactoryBuilder() + .setNameFormat("check-thread-%d") + .setDaemon(true) + .build(); + checkTimePool = new ThreadPoolExecutor(1, 1, 0L, TimeUnit.MILLISECONDS, + new ArrayBlockingQueue<>(1),namedThreadFactory,new ThreadPoolExecutor.AbortPolicy()); + checkTimePool.execute(new CheckTimeThread()) ; + + } + + @Override + public Set entrySet() { + return super.keySet(); + } + + @Override + public Object put(Object key, Object value) { + int hash = hash(key); + int index = hash % arraySize ; + Node currentNode = (Node) arrays[index] ; + + if (currentNode == null){ + arrays[index] = new Node(null,null, key, value); + + //写入队列 + QUEUE.offer((Node) arrays[index]) ; + + sizeUp(); + }else { + Node cNode = currentNode ; + Node nNode = cNode ; + + //存在就覆盖 + if (nNode.key == key){ + cNode.val = value ; + } + + while (nNode.next != null){ + //key 存在 就覆盖 简单判断 + if (nNode.key == key){ + nNode.val = value ; + break ; + }else { + //不存在就新增链表 + sizeUp(); + Node node = new Node(nNode,null,key,value) ; + + //写入队列 + QUEUE.offer(currentNode) ; + + cNode.next = node ; + } + + nNode = nNode.next ; + } + + } + + return null ; + } + + + @Override + public Object get(Object key) { + + int hash = hash(key) ; + int index = hash % arraySize ; + Node currentNode = (Node) arrays[index] ; + + if (currentNode == null){ + return null ; + } + if (currentNode.next == null){ + + //更新时间 + currentNode.setUpdateTime(System.currentTimeMillis()); + + //没有冲突 + return currentNode ; + + } + + Node nNode = currentNode ; + while (nNode.next != null){ + + if (nNode.key == key){ + + //更新时间 + currentNode.setUpdateTime(System.currentTimeMillis()); + + return nNode ; + } + + nNode = nNode.next ; + } + + return super.get(key); + } + + + @Override + public Object remove(Object key) { + + int hash = hash(key) ; + int index = hash % arraySize ; + Node currentNode = (Node) arrays[index] ; + + if (currentNode == null){ + return null ; + } + + if (currentNode.key == key){ + sizeDown(); + arrays[index] = null ; + + //移除队列 + QUEUE.poll(); + return currentNode ; + } + + Node nNode = currentNode ; + while (nNode.next != null){ + + if (nNode.key == key){ + sizeDown(); + //在链表中找到了 把上一个节点的 next 指向当前节点的下一个节点 + nNode.pre.next = nNode.next ; + nNode = null ; + + //移除队列 + QUEUE.poll(); + + return nNode; + } + + nNode = nNode.next ; + } + + return super.remove(key); + } + + /** + * 增加size + */ + private void sizeUp(){ + + //在put值时候认为里边已经有数据了 + flag = true ; + + if (size == null){ + size = new AtomicInteger() ; + } + int size = this.size.incrementAndGet(); + if (size >= MAX_SIZE) { + //找到队列头的数据 + Node node = QUEUE.poll() ; + if (node == null){ + throw new RuntimeException("data error") ; + } + + //移除该 key + Object key = node.key ; + remove(key) ; + lruCallback() ; + } + + } + + /** + * 数量减小 + */ + private void sizeDown(){ + + if (QUEUE.size() == 0){ + flag = false ; + } + + this.size.decrementAndGet() ; + } + + @Override + public int size() { + return size.get() ; + } + + /** + * 链表 + */ + private class Node{ + private Node next ; + private Node pre ; + private Object key ; + private Object val ; + private Long updateTime ; + + public Node(Node pre,Node next, Object key, Object val) { + this.pre = pre ; + this.next = next; + this.key = key; + this.val = val; + this.updateTime = System.currentTimeMillis() ; + } + + public void setUpdateTime(Long updateTime) { + this.updateTime = updateTime; + } + + public Long getUpdateTime() { + return updateTime; + } + + @Override + public String toString() { + return "Node{" + + "key=" + key + + ", val=" + val + + '}'; + } + } + + + /** + * copy HashMap 的 hash 实现 + * @param key + * @return + */ + public int hash(Object key) { + int h; + return (key == null) ? 0 : (h = key.hashCode()) ^ (h >>> 16); + } + + private void lruCallback(){ + LOGGER.debug("lruCallback"); + } + + + private class CheckTimeThread implements Runnable{ + + @Override + public void run() { + while (flag){ + try { + Node node = QUEUE.poll(); + if (node == null){ + continue ; + } + Long updateTime = node.getUpdateTime() ; + + if ((updateTime - System.currentTimeMillis()) >= EXPIRE_TIME){ + remove(node.key) ; + } + } catch (Exception e) { + LOGGER.error("InterruptedException"); + } + } + } + } + +} diff --git a/Java-Interview/src/main/java/com/crossoverjie/actual/LRULinkedMap.java b/Java-Interview/src/main/java/com/crossoverjie/actual/LRULinkedMap.java new file mode 100644 index 0000000..a055ada --- /dev/null +++ b/Java-Interview/src/main/java/com/crossoverjie/actual/LRULinkedMap.java @@ -0,0 +1,53 @@ +package com.crossoverjie.actual; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.LinkedHashMap; +import java.util.Map; + +/** + * Function: + * + * @author crossoverJie + * Date: 05/04/2018 12:04 + * @since JDK 1.8 + */ +public class LRULinkedMap { + + + /** + * 最大缓存大小 + */ + private int cacheSize; + + private LinkedHashMap cacheMap ; + + + public LRULinkedMap(int cacheSize) { + this.cacheSize = cacheSize; + + cacheMap = new LinkedHashMap(16,0.75F,true){ + @Override + protected boolean removeEldestEntry(Map.Entry eldest) { + if (cacheSize + 1 == cacheMap.size()){ + return true ; + }else { + return false ; + } + } + }; + } + + public void put(K key,V value){ + cacheMap.put(key,value) ; + } + + public V get(K key){ + return cacheMap.get(key) ; + } + + + public Collection> getAll() { + return new ArrayList>(cacheMap.entrySet()); + } +} diff --git a/Java-Interview/src/main/java/com/crossoverjie/actual/LRUMap.java b/Java-Interview/src/main/java/com/crossoverjie/actual/LRUMap.java new file mode 100644 index 0000000..c0a4596 --- /dev/null +++ b/Java-Interview/src/main/java/com/crossoverjie/actual/LRUMap.java @@ -0,0 +1,222 @@ +package com.crossoverjie.actual; + +import java.util.HashMap; +import java.util.Map; + +/** + * Function: + * + * @author crossoverJie + * Date: 03/04/2018 00:08 + * @since JDK 1.8 + */ +public class LRUMap { + private final Map cacheMap = new HashMap<>(); + + /** + * 最大缓存大小 + */ + private int cacheSize; + + /** + * 节点大小 + */ + private int nodeCount; + + + /** + * 头结点 + */ + private Node header; + + /** + * 尾结点 + */ + private Node tailer; + + public LRUMap(int cacheSize) { + this.cacheSize = cacheSize; + //头结点的下一个结点为空 + header = new Node<>(); + header.next = null; + + //尾结点的上一个结点为空 + tailer = new Node<>(); + tailer.tail = null; + + //双向链表 头结点的上结点指向尾结点 + header.tail = tailer; + + //尾结点的下结点指向头结点 + tailer.next = header; + + + } + + public void put(K key, V value) { + cacheMap.put(key, value); + + //双向链表中添加结点 + addNode(key, value); + } + + public V get(K key){ + + Node node = getNode(key); + + //移动到头结点 + moveToHead(node) ; + + return cacheMap.get(key); + } + + private void moveToHead(Node node){ + + //如果是最后的一个节点 + if (node.tail == null){ + node.next.tail = null ; + tailer = node.next ; + nodeCount -- ; + } + + //如果是本来就是头节点 不作处理 + if (node.next == null){ + return ; + } + + //如果处于中间节点 + if (node.tail != null && node.next != null){ + //它的上一节点指向它的下一节点 也就删除当前节点 + node.tail.next = node.next ; + nodeCount -- ; + } + + //最后在头部增加当前节点 + //注意这里需要重新 new 一个对象,不然原本的node 还有着下面的引用,会造成内存溢出。 + node = new Node<>(node.getKey(),node.getValue()) ; + addHead(node) ; + + } + + /** + * 链表查询 效率较低 + * @param key + * @return + */ + private Node getNode(K key){ + Node node = tailer ; + while (node != null){ + + if (node.getKey().equals(key)){ + return node ; + } + + node = node.next ; + } + + return null ; + } + + + /** + * 写入头结点 + * @param key + * @param value + */ + private void addNode(K key, V value) { + + Node node = new Node<>(key, value); + + //容量满了删除最后一个 + if (cacheSize == nodeCount) { + //删除尾结点 + delTail(); + } + + //写入头结点 + addHead(node); + + } + + + /** + * 添加头结点 + * + * @param node + */ + private void addHead(Node node) { + + //写入头结点 + header.next = node; + node.tail = header; + header = node; + nodeCount++; + + //如果写入的数据大于2个 就将初始化的头尾结点删除 + if (nodeCount == 2) { + tailer.next.next.tail = null; + tailer = tailer.next.next; + } + + } + + private void delTail() { + //把尾结点从缓存中删除 + cacheMap.remove(tailer.getKey()); + + //删除尾结点 + tailer.next.tail = null; + tailer = tailer.next; + + nodeCount--; + + } + + private class Node { + private K key; + private V value; + Node tail; + Node next; + + public Node(K key, V value) { + this.key = key; + this.value = value; + } + + public Node() { + } + + public K getKey() { + return key; + } + + public void setKey(K key) { + this.key = key; + } + + public V getValue() { + return value; + } + + public void setValue(V value) { + this.value = value; + } + + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder() ; + Node node = tailer ; + while (node != null){ + sb.append(node.getKey()).append(":") + .append(node.getValue()) + .append("-->") ; + + node = node.next ; + } + + + return sb.toString(); + } +} diff --git a/Java-Interview/src/main/java/com/crossoverjie/actual/ReadFile.java b/Java-Interview/src/main/java/com/crossoverjie/actual/ReadFile.java new file mode 100644 index 0000000..f09ef22 --- /dev/null +++ b/Java-Interview/src/main/java/com/crossoverjie/actual/ReadFile.java @@ -0,0 +1,123 @@ +package com.crossoverjie.actual; + +import com.google.common.io.Files; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.File; +import java.io.IOException; +import java.nio.charset.Charset; +import java.util.*; + +/** + * Function:读取文件 + * + * @author crossoverJie + * Date: 05/01/2018 14:11 + * @since JDK 1.8 + */ +public class ReadFile { + private final static Logger LOGGER = LoggerFactory.getLogger(ReadFile.class); + + private static List content ; + private static String path ="/Users/chenjie/Desktop/test.log" ; + + /** + * 查找关键字 + */ + private static final String KEYWORD = "login" ; + + + private static Map countMap ; + /** + * 去重集合 + */ + private static Set contentSet ; + public static void main(String[] args) { + contentSet = new TreeSet<>() ; + countMap = new HashMap<>(30) ; + File file = new File(path) ; + try { + //查找 + sortAndFindKeyWords(file); + + LOGGER.info(contentSet.toString()); + + } catch (IOException e) { + LOGGER.error("IOException",e); + } + } + + /** + * 查找关键字 + * @param file + * @throws IOException + */ + private static void sortAndFindKeyWords(File file) throws IOException { + content = Files.readLines(file, Charset.defaultCharset()); + LOGGER.info(String.valueOf(content)); + + for (String value : content) { + + boolean flag = value.contains(KEYWORD) ; + if (!flag){ + continue; + } + + if (countMap.containsKey(value)){ + countMap.put(value,countMap.get(value) + 1) ; + } else { + countMap.put(value,1) ; + } + } + + for (String key :countMap.keySet()){ + SortString sort = new SortString() ; + sort.setKey(key); + sort.setCount(countMap.get(key)); + + contentSet.add(sort) ; + } + + } + + private static class SortString implements Comparable{ + + private String key ; + private Integer count ; + + public String getKey() { + return key; + } + + public void setKey(String key) { + this.key = key; + } + + public Integer getCount() { + return count; + } + + public void setCount(Integer count) { + this.count = count; + } + + + @Override + public int compareTo(SortString o) { + if (this.getCount() >o.getCount()){ + return 1; + }else { + return -1 ; + } + } + + @Override + public String toString() { + return "SortString{" + + "key='" + key + '\'' + + ", count=" + count + + '}'; + } + } +} diff --git a/Java-Interview/src/main/java/com/crossoverjie/actual/ThreadCommunication.java b/Java-Interview/src/main/java/com/crossoverjie/actual/ThreadCommunication.java new file mode 100644 index 0000000..ecbda20 --- /dev/null +++ b/Java-Interview/src/main/java/com/crossoverjie/actual/ThreadCommunication.java @@ -0,0 +1,239 @@ +package com.crossoverjie.actual; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.IOException; +import java.io.PipedInputStream; +import java.io.PipedReader; +import java.io.PipedWriter; +import java.util.concurrent.*; + +/** + * Function:三种方式线程通信 + * + * @author crossoverJie + * Date: 04/01/2018 22:57 + * @since JDK 1.8 + */ +public class ThreadCommunication { + private final static Logger LOGGER = LoggerFactory.getLogger(ThreadCommunication.class); + + public static void main(String[] args) throws Exception { + //join(); + //executorService(); + //countDownLatch(); + //piped(); + cyclicBarrier(); + } + + /** + * CyclicBarrier + * + * @throws Exception + */ + private static void cyclicBarrier() throws Exception { + CyclicBarrier cyclicBarrier = new CyclicBarrier(3) ; + + new Thread(new Runnable() { + @Override + public void run() { + LOGGER.info("thread run"); + try { + cyclicBarrier.await() ; + } catch (Exception e) { + e.printStackTrace(); + } + + LOGGER.info("thread end do something"); + } + }).start(); + + new Thread(new Runnable() { + @Override + public void run() { + LOGGER.info("thread run"); + try { + cyclicBarrier.await() ; + } catch (Exception e) { + e.printStackTrace(); + } + + LOGGER.info("thread end do something"); + } + }).start(); + + new Thread(new Runnable() { + @Override + public void run() { + LOGGER.info("thread run"); + try { + Thread.sleep(5000); + cyclicBarrier.await() ; + } catch (Exception e) { + e.printStackTrace(); + } + + LOGGER.info("thread end do something"); + } + }).start(); + + LOGGER.info("main thread"); + } + + private static void countDownLatch() throws Exception { + int thread = 3; + long start = System.currentTimeMillis(); + final CountDownLatch countDown = new CountDownLatch(thread); + for (int i = 0; i < thread; i++) { + new Thread(new Runnable() { + @Override + public void run() { + LOGGER.info("thread run"); + try { + Thread.sleep(2000); + countDown.countDown(); + + LOGGER.info("thread end"); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + }).start(); + } + + countDown.await(); + long stop = System.currentTimeMillis(); + LOGGER.info("main over total time={}", stop - start); + } + + /** + * 利用线程池的 awaitTermination 方法,每隔一秒钟检查线程池是否执行完毕 + * + * @throws Exception + */ + private static void executorService() throws Exception { + BlockingQueue queue = new LinkedBlockingQueue<>(10); + ThreadPoolExecutor poolExecutor = new ThreadPoolExecutor(5, 5, 1, TimeUnit.MILLISECONDS, queue); + poolExecutor.execute(new Runnable() { + @Override + public void run() { + LOGGER.info("running"); + try { + Thread.sleep(3000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + }); + poolExecutor.execute(new Runnable() { + @Override + public void run() { + LOGGER.info("running2"); + try { + Thread.sleep(2000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + }); + + poolExecutor.shutdown(); + while (!poolExecutor.awaitTermination(1, TimeUnit.SECONDS)) { + LOGGER.info("线程还在执行。。。"); + } + LOGGER.info("main over"); + } + + + /** + * 采用 join 线程间通信 + * + * @throws InterruptedException + */ + private static void join() throws InterruptedException { + Thread t1 = new Thread(new Runnable() { + @Override + public void run() { + LOGGER.info("running"); + try { + Thread.sleep(3000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + }); + Thread t2 = new Thread(new Runnable() { + @Override + public void run() { + LOGGER.info("running2"); + try { + Thread.sleep(4000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + }); + + t1.start(); + t2.start(); + + //等待线程1终止 + t1.join(); + + //等待线程2终止 + t2.join(); + + LOGGER.info("main over"); + } + + public static void piped() throws IOException { + //面向于字符 PipedInputStream 面向于字节 + PipedWriter writer = new PipedWriter(); + PipedReader reader = new PipedReader(); + + //输入输出流建立连接 + writer.connect(reader); + + + Thread t1 = new Thread(new Runnable() { + @Override + public void run() { + LOGGER.info("running"); + try { + for (int i = 0; i < 10; i++) { + + writer.write(i+""); + Thread.sleep(10); + } + } catch (Exception e) { + + } finally { + try { + writer.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + + } + }); + Thread t2 = new Thread(new Runnable() { + @Override + public void run() { + LOGGER.info("running2"); + int msg = 0; + try { + while ((msg = reader.read()) != -1) { + LOGGER.info("msg={}", (char) msg); + } + + } catch (Exception e) { + + } + } + }); + t1.start(); + t2.start(); + } +} diff --git a/Java-Interview/src/main/java/com/crossoverjie/actual/TwoThread.java b/Java-Interview/src/main/java/com/crossoverjie/actual/TwoThread.java new file mode 100644 index 0000000..90c8392 --- /dev/null +++ b/Java-Interview/src/main/java/com/crossoverjie/actual/TwoThread.java @@ -0,0 +1,119 @@ +package com.crossoverjie.actual; + +import java.util.concurrent.locks.Lock; +import java.util.concurrent.locks.ReentrantLock; + +/** + * Function: 两个线程交替执行打印 1~100 + * + * lock 版 + * + * @author crossoverJie + * Date: 11/02/2018 10:04 + * @since JDK 1.8 + */ +public class TwoThread { + + private int start = 1; + + /** + * 保证内存可见性 + * 其实用锁了之后也可以保证可见性 这里用不用 volatile 都一样 + */ + private boolean flag = false; + + /** + * 重入锁 + */ + private final static Lock LOCK = new ReentrantLock(); + + public static void main(String[] args) { + TwoThread twoThread = new TwoThread(); + + Thread t1 = new Thread(new OuNum(twoThread)); + t1.setName("t1"); + + + Thread t2 = new Thread(new JiNum(twoThread)); + t2.setName("t2"); + + t1.start(); + t2.start(); + } + + /** + * 偶数线程 + */ + public static class OuNum implements Runnable { + + private TwoThread number; + + public OuNum(TwoThread number) { + this.number = number; + } + + @Override + public void run() { + while (number.start <= 100) { + + if (number.flag) { + try { + LOCK.lock(); + System.out.println(Thread.currentThread().getName() + "+-+" + number.start); + number.start++; + number.flag = false; + + + } finally { + LOCK.unlock(); + } + } else { + try { + //防止线程空转 + Thread.sleep(10); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + } + } + } + + /** + * 奇数线程 + */ + public static class JiNum implements Runnable { + + private TwoThread number; + + public JiNum(TwoThread number) { + this.number = number; + } + + @Override + public void run() { + while (number.start <= 100) { + + if (!number.flag) { + try { + LOCK.lock(); + System.out.println(Thread.currentThread().getName() + "+-+" + number.start); + number.start++; + number.flag = true; + + + } finally { + LOCK.unlock(); + } + } else { + try { + //防止线程空转 + Thread.sleep(10); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + } + } + } +} diff --git a/Java-Interview/src/main/java/com/crossoverjie/actual/TwoThreadWaitNotify.java b/Java-Interview/src/main/java/com/crossoverjie/actual/TwoThreadWaitNotify.java new file mode 100644 index 0000000..1c69da1 --- /dev/null +++ b/Java-Interview/src/main/java/com/crossoverjie/actual/TwoThreadWaitNotify.java @@ -0,0 +1,101 @@ +package com.crossoverjie.actual; + +/** + * Function:两个线程交替执行打印 1~100 + * 等待通知机制版 + * + * @author crossoverJie + * Date: 07/03/2018 13:19 + * @since JDK 1.8 + */ +public class TwoThreadWaitNotify { + + private int start = 1; + + private boolean flag = false; + + public static void main(String[] args) { + TwoThreadWaitNotify twoThread = new TwoThreadWaitNotify(); + + Thread t1 = new Thread(new OuNum(twoThread)); + t1.setName("t1"); + + + Thread t2 = new Thread(new JiNum(twoThread)); + t2.setName("t2"); + + t1.start(); + t2.start(); + } + + /** + * 偶数线程 + */ + public static class OuNum implements Runnable { + private TwoThreadWaitNotify number; + + public OuNum(TwoThreadWaitNotify number) { + this.number = number; + } + + @Override + public void run() { + + while (number.start <= 100) { + synchronized (TwoThreadWaitNotify.class) { + System.out.println("偶数线程抢到锁了"); + if (number.flag) { + System.out.println(Thread.currentThread().getName() + "+-+偶数" + number.start); + number.start++; + + number.flag = false; + TwoThreadWaitNotify.class.notify(); + + }else { + try { + TwoThreadWaitNotify.class.wait(); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + } + + } + } + } + + + /** + * 奇数线程 + */ + public static class JiNum implements Runnable { + private TwoThreadWaitNotify number; + + public JiNum(TwoThreadWaitNotify number) { + this.number = number; + } + + @Override + public void run() { + while (number.start <= 100) { + synchronized (TwoThreadWaitNotify.class) { + System.out.println("奇数线程抢到锁了"); + if (!number.flag) { + System.out.println(Thread.currentThread().getName() + "+-+奇数" + number.start); + number.start++; + + number.flag = true; + + TwoThreadWaitNotify.class.notify(); + }else { + try { + TwoThreadWaitNotify.class.wait(); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + } + } + } + } +} diff --git a/Java-Interview/src/main/java/com/crossoverjie/algorithm/ArrayKShift.java b/Java-Interview/src/main/java/com/crossoverjie/algorithm/ArrayKShift.java new file mode 100644 index 0000000..0b4d9dc --- /dev/null +++ b/Java-Interview/src/main/java/com/crossoverjie/algorithm/ArrayKShift.java @@ -0,0 +1,75 @@ +package com.crossoverjie.algorithm; + +import java.util.Arrays; + +/** + * 数组右移K次, 原数组 [1, 2, 3, 4, 5, 6, 7] 右移3次后结果为 [5,6,7,1,2,3,4] + * + * 基本思路:不开辟新的数组空间的情况下考虑在原属组上进行操作 + * 1 将数组倒置,这样后k个元素就跑到了数组的前面,然后反转一下即可 + * 2 同理后 len-k个元素只需要翻转就完成数组的k次移动 + * + * @author 656369960@qq.com + * @date 12/7/2018 1:38 PM + * @since 1.0 + */ +public class ArrayKShift { + + public void arrayKShift(int[] array, int k) { + + /** + * constrictions + */ + + if (array == null || 0 == array.length) { + return ; + } + + k = k % array.length; + + if (0 > k) { + return; + } + + + /** + * reverse array , e.g: [1, 2, 3 ,4] to [4,3,2,1] + */ + + for (int i = 0; i < array.length / 2; i++) { + int tmp = array[i]; + array[i] = array[array.length - 1 - i]; + array[array.length - 1 - i] = tmp; + } + + /** + * first k element reverse + */ + for (int i = 0; i < k / 2; i++) { + int tmp = array[i]; + array[i] = array[k - 1 - i]; + array[k - 1 - i] = tmp; + } + + /** + * last length - k element reverse + */ + + for (int i = k; i < k + (array.length - k ) / 2; i ++) { + int tmp = array[i]; + array[i] = array[array.length - 1 - i + k]; + array[array.length - 1 - i + k] = tmp; + } + } + + public static void main(String[] args) { + int[] array = {1, 2, 3 ,4, 5, 6, 7}; + ArrayKShift shift = new ArrayKShift(); + shift.arrayKShift(array, 6); + + Arrays.stream(array).forEach(o -> { + System.out.println(o); + }); + + } +} diff --git a/Java-Interview/src/main/java/com/crossoverjie/algorithm/BinaryNode.java b/Java-Interview/src/main/java/com/crossoverjie/algorithm/BinaryNode.java new file mode 100644 index 0000000..8164347 --- /dev/null +++ b/Java-Interview/src/main/java/com/crossoverjie/algorithm/BinaryNode.java @@ -0,0 +1,102 @@ +package com.crossoverjie.algorithm; + +import java.util.LinkedList; + +/** + * Function: + * + * @author crossoverJie + * Date: 04/01/2018 18:26 + * @since JDK 1.8 + */ +public class BinaryNode { + private Object data ; + private BinaryNode left ; + private BinaryNode right ; + + public BinaryNode() { + } + + public BinaryNode(Object data, BinaryNode left, BinaryNode right) { + this.data = data; + this.left = left; + this.right = right; + } + + public Object getData() { + return data; + } + + public void setData(Object data) { + this.data = data; + } + + public BinaryNode getLeft() { + return left; + } + + public void setLeft(BinaryNode left) { + this.left = left; + } + + public BinaryNode getRight() { + return right; + } + + public void setRight(BinaryNode right) { + this.right = right; + } + + + public BinaryNode createNode(){ + BinaryNode node = new BinaryNode("1",null,null) ; + BinaryNode left2 = new BinaryNode("2",null,null) ; + BinaryNode left3 = new BinaryNode("3",null,null) ; + BinaryNode left4 = new BinaryNode("4",null,null) ; + BinaryNode left5 = new BinaryNode("5",null,null) ; + BinaryNode left6 = new BinaryNode("6",null,null) ; + node.setLeft(left2) ; + left2.setLeft(left4); + left2.setRight(left6); + node.setRight(left3); + left3.setRight(left5) ; + return node ; + } + + @Override + public String toString() { + return "BinaryNode{" + + "data=" + data + + ", left=" + left + + ", right=" + right + + '}'; + } + + + /** + * 二叉树的层序遍历 借助于队列来实现 借助队列的先进先出的特性 + * + * 首先将根节点入队列 然后遍历队列。 + * 首先将根节点打印出来,接着判断左节点是否为空 不为空则加入队列 + * @param node + */ + public void levelIterator(BinaryNode node){ + LinkedList queue = new LinkedList<>() ; + + //先将根节点入队 + queue.offer(node) ; + BinaryNode current ; + while (!queue.isEmpty()){ + current = queue.poll(); + + System.out.print(current.data+"--->"); + + if (current.getLeft() != null){ + queue.offer(current.getLeft()) ; + } + if (current.getRight() != null){ + queue.offer(current.getRight()) ; + } + } + } +} diff --git a/Java-Interview/src/main/java/com/crossoverjie/algorithm/HappyNum.java b/Java-Interview/src/main/java/com/crossoverjie/algorithm/HappyNum.java new file mode 100644 index 0000000..2f20ef0 --- /dev/null +++ b/Java-Interview/src/main/java/com/crossoverjie/algorithm/HappyNum.java @@ -0,0 +1,67 @@ +package com.crossoverjie.algorithm; + +import java.util.HashSet; +import java.util.Set; + +/** + * Function: 判断一个数字是否为快乐数字 19 就是快乐数字 11就不是快乐数字 + * 19 + * 1*1+9*9=82 + * 8*8+2*2=68 + * 6*6+8*8=100 + * 1*1+0*0+0*0=1 + * + * 11 + * 1*1+1*1=2 + * 2*2=4 + * 4*4=16 + * 1*1+6*6=37 + * 3*3+7*7=58 + * 5*5+8*8=89 + * 8*8+9*9=145 + * 1*1+4*4+5*5=42 + * 4*4+2*2=20 + * 2*2+0*0=2 + * + * 这里结果 1*1+1*1=2 和 2*2+0*0=2 重复,所以不是快乐数字 + * @author crossoverJie + * Date: 04/01/2018 14:12 + * @since JDK 1.8 + */ +public class HappyNum { + + /** + * 判断一个数字是否为快乐数字 + * @param number + * @return + */ + public boolean isHappy(int number) { + Set set = new HashSet<>(30); + while (number != 1) { + int sum = 0; + while (number > 0) { + //计算当前值的每位数的平方 相加的和 在放入set中,如果存在相同的就认为不是 happy数字 + sum += (number % 10) * (number % 10); + number = number / 10; + } + if (set.contains(sum)) { + return false; + } else { + set.add(sum); + } + number = sum; + } + return true; + } + + + public static void main(String[] args) { + int num = 345; + int i = num % 10; + int i1 = num / 10; + int i2 = i1 / 10; + System.out.println(i); + System.out.println(i1); + System.out.println(i2); + } +} diff --git a/Java-Interview/src/main/java/com/crossoverjie/algorithm/LinkLoop.java b/Java-Interview/src/main/java/com/crossoverjie/algorithm/LinkLoop.java new file mode 100644 index 0000000..9a65aa4 --- /dev/null +++ b/Java-Interview/src/main/java/com/crossoverjie/algorithm/LinkLoop.java @@ -0,0 +1,60 @@ +package com.crossoverjie.algorithm; + +/** + * Function:是否是环链表,采用快慢指针,一个走的快些一个走的慢些 如果最终相遇了就说明是环 + * 就相当于在一个环形跑道里跑步,速度不一样的最终一定会相遇。 + * + * @author crossoverJie + * Date: 04/01/2018 11:33 + * @since JDK 1.8 + */ +public class LinkLoop { + + public static class Node{ + private Object data ; + public Node next ; + + public Node(Object data, Node next) { + this.data = data; + this.next = next; + } + + public Node(Object data) { + this.data = data ; + } + } + + /** + * 判断链表是否有环 + * @param node + * @return + */ + public boolean isLoop(Node node){ + Node slow = node ; + Node fast = node.next ; + + while (slow.next != null){ + Object dataSlow = slow.data; + Object dataFast = fast.data; + + //说明有环 + if (dataFast == dataSlow){ + return true ; + } + + //一共只有两个节点,但却不是环形链表的情况,判断NPE + if (fast.next == null){ + return false ; + } + //slow走慢点 fast走快点 + slow = slow.next ; + fast = fast.next.next ; + + //如果走的快的发现为空 说明不存在环 + if (fast == null){ + return false ; + } + } + return false ; + } +} diff --git a/Java-Interview/src/main/java/com/crossoverjie/algorithm/LinkedListMergeSort.java b/Java-Interview/src/main/java/com/crossoverjie/algorithm/LinkedListMergeSort.java new file mode 100644 index 0000000..6d183bf --- /dev/null +++ b/Java-Interview/src/main/java/com/crossoverjie/algorithm/LinkedListMergeSort.java @@ -0,0 +1,141 @@ +package com.crossoverjie.algorithm; + +/** + * 链表排序, 建议使用归并排序, + * 问题描述,给定一个Int的链表,要求在时间最优的情况下完成链表元素由大到小的排序, + * e.g: 1->5->4->3->2 + * 排序后结果 5->4->3->2->1 + * + * @author 6563699600@qq.com + * @date 6/7/2018 11:42 PM + * @since 1.0 + */ +public class LinkedListMergeSort { + + /** + * 定义链表数据结构,包含当前元素,以及当前元素的后续元素指针 + */ + final static class Node { + int e; + Node next; + + public Node() { + } + + public Node(int e, Node next) { + this.e = e; + this.next = next; + } + } + + public Node mergeSort(Node first, int length) { + + if (length == 1) { + return first; + } else { + Node middle = new Node(); + Node tmp = first; + + /** + * 后期会对这里进行优化,通过一次遍历算出长度和中间元素 + */ + for (int i = 0; i < length; i++) { + if (i == length / 2) { + break; + } + middle = tmp; + tmp = tmp.next; + } + + /** + * 这里是链表归并时要注意的细节 + * 在链表进行归并排序过程中,会涉及到将一个链表打散为两个独立的链表,所以需要在中间元素的位置将其后续指针指为null; + */ + Node right = middle.next; + middle.next = null; + + Node leftStart = mergeSort(first, length / 2); + Node rightStart; + if (length % 2 == 0) { + rightStart = mergeSort(right, length / 2); + } else { + rightStart = mergeSort(right, length / 2 + 1); + } + return mergeList(leftStart, rightStart); + } + } + + /** + * 合并链表,具体的实现细节可参考MergeTwoSortedLists + * + * @param left + * @param right + * @return + */ + public Node mergeList(Node left, Node right) { + + Node head = new Node(); + Node result = head; + + /** + * 思想就是两个链表同时遍历,将更的元素插入结果中,同时更更大的元素所属的链表的指针向下移动 + */ + while (!(null == left && null == right)) { + Node tmp; + if (left == null) { + result.next = right; + break; + } else if (right == null) { + result.next = left; + break; + } else if (left.e >= right.e) { + tmp = left; + result.next = left; + result = tmp; + left = left.next; + } else { + tmp = right; + result.next = right; + result = tmp; + right = right.next; + } + } + + return head.next; + } + + public static void main(String[] args) { + + Node head = new Node(); + + head.next = new Node(7, + new Node(2, + new Node(5, + new Node(4, + new Node(3, + new Node(6, + new Node(11, null) + ) + ) + ) + ) + ) + ); + + int length = 0; + + for (Node e = head.next; null != e; e = e.next) { + length++; + } + + + LinkedListMergeSort sort = new LinkedListMergeSort(); + head.next = sort.mergeSort(head.next, length); + + + for (Node n = head.next; n != null; n = n.next) { + System.out.println(n.e); + } + + } +} diff --git a/Java-Interview/src/main/java/com/crossoverjie/algorithm/MergeTwoSortedLists.java b/Java-Interview/src/main/java/com/crossoverjie/algorithm/MergeTwoSortedLists.java new file mode 100644 index 0000000..924de40 --- /dev/null +++ b/Java-Interview/src/main/java/com/crossoverjie/algorithm/MergeTwoSortedLists.java @@ -0,0 +1,78 @@ +package com.crossoverjie.algorithm; + +/** + * Function: 合并两个排好序的链表 + * + * 每次比较两个链表的头结点,将较小结点放到新的链表,最后将新链表指向剩余的链表 + * + * @author crossoverJie + * Date: 07/12/2017 13:58 + * @since JDK 1.8 + */ +public class MergeTwoSortedLists { + + + /** + * 1. 声明一个头结点 + * 2. 将头结点的引用赋值给一个临时结点,也可以叫做下一结点。 + * 3. 进行循环比较,每次都将指向值较小的那个结点(较小值的引用赋值给 lastNode )。 + * 4. 再去掉较小值链表的头结点,指针后移。 + * 5. lastNode 指针也向后移,由于 lastNode 是 head 的引用,这样可以保证最终 head 的值是往后更新的。 + * 6. 当其中一个链表的指针移到最后时跳出循环。 + * 7. 由于这两个链表已经是排好序的,所以剩下的链表必定是最大的值,只需要将指针指向它即可。 + * 8. 由于 head 链表的第一个结点是初始化的0,所以只需要返回 0 的下一个结点即是合并了的链表。 + * @param l1 + * @param l2 + * @return + */ + public ListNode mergeTwoLists(ListNode l1, ListNode l2) { + ListNode head = new ListNode(0) ; + ListNode lastNode = head ; + + while (l1 != null && l2 != null){ + if (l1.currentVal < l2.currentVal){ + lastNode.next = l1 ; + l1 = l1.next ; + } else { + lastNode.next = l2 ; + l2 = l2.next ; + } + lastNode =lastNode.next ; + } + + if (l1 == null){ + lastNode.next = l2 ; + } + if (l2 == null){ + lastNode.next = l1 ; + } + + return head.next ; + } + + + public static class ListNode { + /** + * 当前值 + */ + int currentVal; + + /** + * 下一个节点 + */ + ListNode next; + + ListNode(int val) { + currentVal = val; + } + + @Override + public String toString() { + return "ListNode{" + + "currentVal=" + currentVal + + ", next=" + next + + '}'; + } + } + +} diff --git a/Java-Interview/src/main/java/com/crossoverjie/algorithm/ReverseNode.java b/Java-Interview/src/main/java/com/crossoverjie/algorithm/ReverseNode.java new file mode 100644 index 0000000..a3c2a83 --- /dev/null +++ b/Java-Interview/src/main/java/com/crossoverjie/algorithm/ReverseNode.java @@ -0,0 +1,106 @@ +package com.crossoverjie.algorithm; + +import java.util.Stack; + +/** + * Function: 三种方式反向打印单向链表 + * + * @author crossoverJie + * Date: 10/02/2018 16:14 + * @since JDK 1.8 + */ +public class ReverseNode { + + + /** + * 利用栈的先进后出特性 + * @param node + */ + public void reverseNode1(Node node){ + + System.out.println("====翻转之前===="); + + Stack stack = new Stack<>() ; + while (node != null){ + + System.out.print(node.value + "===>"); + + stack.push(node) ; + node = node.next ; + } + + System.out.println(""); + + System.out.println("====翻转之后===="); + while (!stack.isEmpty()){ + System.out.print(stack.pop().value + "===>"); + } + + } + + + /** + * 利用头插法插入链表 + * @param head + */ + public void reverseNode(Node head) { + if (head == null) { + return ; + } + + //最终翻转之后的 Node + Node node ; + + Node pre = head; + Node cur = head.next; + Node next ; + while(cur != null){ + next = cur.next; + + //链表的头插法 + cur.next = pre; + pre = cur; + + cur = next; + } + head.next = null; + node = pre; + + + //遍历新链表 + while (node != null){ + System.out.println(node.value); + node = node.next ; + } + + } + + + /** + * 递归 + * @param node + */ + public void recNode(Node node){ + + if (node == null){ + return ; + } + + if (node.next != null){ + recNode(node.next) ; + } + System.out.print(node.value+"===>"); + } + + + public static class Node{ + public T value; + public Node next ; + + + public Node(T value, Node next ) { + this.next = next; + this.value = value; + } + } +} diff --git a/Java-Interview/src/main/java/com/crossoverjie/algorithm/TwoArray.java b/Java-Interview/src/main/java/com/crossoverjie/algorithm/TwoArray.java new file mode 100644 index 0000000..77dd5b2 --- /dev/null +++ b/Java-Interview/src/main/java/com/crossoverjie/algorithm/TwoArray.java @@ -0,0 +1,41 @@ +package com.crossoverjie.algorithm; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Function: 在二维数组中判断是否存在查找的数字 + * + * @author crossoverJie + * Date: 09/02/2018 22:19 + * @since JDK 1.8 + */ +public class TwoArray { + + private final static Logger LOGGER = LoggerFactory.getLogger(TwoArray.class); + + + + + public static void main(String[] args) { + int[][] matrix = new int[][]{ + {1, 2, 8, 9}, + {2, 4, 9, 12}, + {4, 7, 10, 13}, + {6, 8, 11, 15}, + {7, 9, 12, 16} + }; + + // 数组的行数 + int rows = matrix.length; + // 数组行的列数 + int cols = matrix[1].length; + + LOGGER.info(String.valueOf(rows)); + LOGGER.info(String.valueOf(cols)); + + } + + + +} diff --git a/Java-Interview/src/main/java/com/crossoverjie/algorithm/TwoStackQueue.java b/Java-Interview/src/main/java/com/crossoverjie/algorithm/TwoStackQueue.java new file mode 100644 index 0000000..989e7d6 --- /dev/null +++ b/Java-Interview/src/main/java/com/crossoverjie/algorithm/TwoStackQueue.java @@ -0,0 +1,61 @@ +package com.crossoverjie.algorithm; + +import java.util.Stack; + +/** + * Function: 两个栈实现队列 + * + * 利用两个栈来实现,第一个栈存放写队列的数据。 + * 第二个栈存放移除队列的数据,移除之前先判断第二个栈里是否有数据。 + * 如果没有就要将第一个栈里的数据依次弹出压入第二个栈,这样写入之后的顺序再弹出其实就是一个先进先出的结构了。 + * + * 这样出队列只需要移除第二个栈的头元素即可。 + * + * @author crossoverJie + * Date: 09/02/2018 23:51 + * @since JDK 1.8 + */ +public class TwoStackQueue { + + /** + * 写入的栈 + */ + private Stack input = new Stack() ; + + /** + * 移除队列所出的栈 + */ + private Stack out = new Stack() ; + + + /** + * 写入队列 + * @param t + */ + public void appendTail(T t){ + input.push(t) ; + } + + /** + * 删除队列头结点 并返回删除数据 + * @return + */ + public T deleteHead(){ + + //是空的 需要将 input 出栈写入 out + if (out.isEmpty()){ + while (!input.isEmpty()){ + out.push(input.pop()) ; + } + } + + //不为空时直接移除出栈就表示移除了头结点 + return out.pop() ; + } + + + public int getSize(){ + return input.size() + out.size() ; + } + +} diff --git a/Java-Interview/src/main/java/com/crossoverjie/algorithm/TwoSum.java b/Java-Interview/src/main/java/com/crossoverjie/algorithm/TwoSum.java new file mode 100644 index 0000000..08f08f0 --- /dev/null +++ b/Java-Interview/src/main/java/com/crossoverjie/algorithm/TwoSum.java @@ -0,0 +1,60 @@ +package com.crossoverjie.algorithm; + +import java.util.HashMap; +import java.util.Map; + +/** + * Function:{1,3,5,7} target=8 返回{2,3} + * + * @author crossoverJie + * Date: 04/01/2018 09:53 + * @since JDK 1.8 + */ +public class TwoSum { + + /** + * 时间复杂度为 O(N^2) + * @param nums + * @param target + * @return + */ + public int[] getTwo1(int[] nums,int target){ + int[] result = new int[2] ; + + for (int i= 0 ;i=0 ;j--){ + int b = nums[j] ; + + if ((a+b) == target){ + result = new int[]{i,j} ; + } + } + } + return result ; + } + + + /** + * 时间复杂度 O(N) + * 利用Map Key存放目标值和当前值的差值,value 就是当前的下标 + * 每次遍历是 查看当前遍历的值是否等于差值,如果是等于,说明两次相加就等于目标值。 + * 然后取出 map 中 value ,和本次遍历的下标,就是两个下标值相加等于目标值了。 + * + * @param nums + * @param target + * @return + */ + public int[] getTwo2(int[] nums,int target){ + int[] result = new int[2] ; + Map map = new HashMap<>(2) ; + for (int i=0 ;i map = new HashMap<>(16); + map.put("1", 1); + map.put("2", 2); + map.put("3", 3); + map.put("4", 4); + + Iterator> entryIterator = map.entrySet().iterator(); + while (entryIterator.hasNext()) { + Map.Entry next = entryIterator.next(); + System.out.println("key=" + next.getKey() + " value=" + next.getValue()); + } + System.out.println("============="); + + Iterator iterator = map.keySet().iterator(); + while (iterator.hasNext()){ + String key = iterator.next(); + System.out.println("key=" + key + " value=" + map.get(key)); + + } + + System.out.println("============="); + map.forEach((key, value) -> { + System.out.println("key=" + key + " value=" + map.get(key)); + }); + } +} diff --git a/Java-Interview/src/main/java/com/crossoverjie/basic/StringTest.java b/Java-Interview/src/main/java/com/crossoverjie/basic/StringTest.java new file mode 100644 index 0000000..29216e9 --- /dev/null +++ b/Java-Interview/src/main/java/com/crossoverjie/basic/StringTest.java @@ -0,0 +1,39 @@ +package com.crossoverjie.basic; + +import java.lang.reflect.Field; + +/** + * Function: + * + * @author crossoverJie + * Date: 08/03/2018 13:56 + * @since JDK 1.8 + */ +public class StringTest { + + public static void main(String[] args) throws NoSuchFieldException, IllegalAccessException { + String a = "123"; + //这里的 a 和 b 都是同一个对象,指向同一个字符串常量池对象。 + String b = "123" ; + String c = new String("123") ; + + System.out.println("a=b:" + (a == b)); + System.out.println("a=c:" + (a == c)); + + System.out.println("a=" + a); + + a = "456"; + System.out.println("a=" + a); + + + //用反射的方式改变字符串的值 + Field value = a.getClass().getDeclaredField("value"); + //改变 value 的访问属性 + value.setAccessible(true) ; + + char[] values = (char[]) value.get(a); + values[0] = '9' ; + + System.out.println(a); + } +} diff --git a/Java-Interview/src/main/java/com/crossoverjie/classloader/ChildClass.java b/Java-Interview/src/main/java/com/crossoverjie/classloader/ChildClass.java new file mode 100644 index 0000000..16331c3 --- /dev/null +++ b/Java-Interview/src/main/java/com/crossoverjie/classloader/ChildClass.java @@ -0,0 +1,14 @@ +package com.crossoverjie.classloader; + +/** + * Function: + * + * @author crossoverJie + * Date: 05/03/2018 23:11 + * @since JDK 1.8 + */ +public class ChildClass extends SuperClass { + static { + System.out.println("ChildClass init"); + } +} diff --git a/Java-Interview/src/main/java/com/crossoverjie/classloader/Main.java b/Java-Interview/src/main/java/com/crossoverjie/classloader/Main.java new file mode 100644 index 0000000..24f6d0c --- /dev/null +++ b/Java-Interview/src/main/java/com/crossoverjie/classloader/Main.java @@ -0,0 +1,14 @@ +package com.crossoverjie.classloader; + +/** + * Function: + * + * @author crossoverJie + * Date: 05/03/2018 23:12 + * @since JDK 1.8 + */ +public class Main { + public static void main(String[] args) { + System.out.println(ChildClass.A); + } +} diff --git a/Java-Interview/src/main/java/com/crossoverjie/classloader/SuperClass.java b/Java-Interview/src/main/java/com/crossoverjie/classloader/SuperClass.java new file mode 100644 index 0000000..d0d67a1 --- /dev/null +++ b/Java-Interview/src/main/java/com/crossoverjie/classloader/SuperClass.java @@ -0,0 +1,20 @@ +package com.crossoverjie.classloader; + +/** + * Function: + * + * @author crossoverJie + * Date: 05/03/2018 23:11 + * @since JDK 1.8 + */ +public class SuperClass { + + /** + * 如果使用了 final 修饰的常量,再使用时父类也不会初始化 + */ + public static int A = 1; + + static { + System.out.println("SuperClass init"); + } +} diff --git a/Java-Interview/src/main/java/com/crossoverjie/concurrent/Singleton.java b/Java-Interview/src/main/java/com/crossoverjie/concurrent/Singleton.java new file mode 100644 index 0000000..fec4924 --- /dev/null +++ b/Java-Interview/src/main/java/com/crossoverjie/concurrent/Singleton.java @@ -0,0 +1,28 @@ +package com.crossoverjie.concurrent; + +/** + * Function:单例模式-双重检查锁 + * + * @author crossoverJie + * Date: 09/03/2018 01:14 + * @since JDK 1.8 + */ +public class Singleton { + + private static volatile Singleton singleton; + + private Singleton() { + } + + public static Singleton getInstance() { + if (singleton == null) { + synchronized (Singleton.class) { + if (singleton == null) { + //防止指令重排 + singleton = new Singleton(); + } + } + } + return singleton; + } +} diff --git a/Java-Interview/src/main/java/com/crossoverjie/concurrent/StopThread.java b/Java-Interview/src/main/java/com/crossoverjie/concurrent/StopThread.java new file mode 100644 index 0000000..1b5b860 --- /dev/null +++ b/Java-Interview/src/main/java/com/crossoverjie/concurrent/StopThread.java @@ -0,0 +1,36 @@ +package com.crossoverjie.concurrent; + +import java.util.concurrent.TimeUnit; + +/** + * Function:响应中断 + * + * @author crossoverJie + * Date: 16/03/2018 01:41 + * @since JDK 1.8 + */ +public class StopThread implements Runnable { + @Override + public void run() { + + while ( !Thread.currentThread().isInterrupted()) { + // 线程执行具体逻辑 + System.out.println(Thread.currentThread().getName() + "运行中。。"); + } + + System.out.println(Thread.currentThread().getName() + "退出。。"); + + } + + public static void main(String[] args) throws InterruptedException { + Thread thread = new Thread(new StopThread(), "thread A"); + thread.start(); + + System.out.println("main 线程正在运行") ; + + TimeUnit.MILLISECONDS.sleep(10) ; + thread.interrupt(); + } + + +} diff --git a/Java-Interview/src/main/java/com/crossoverjie/concurrent/ThreadState.java b/Java-Interview/src/main/java/com/crossoverjie/concurrent/ThreadState.java new file mode 100644 index 0000000..ea0ec90 --- /dev/null +++ b/Java-Interview/src/main/java/com/crossoverjie/concurrent/ThreadState.java @@ -0,0 +1,67 @@ +package com.crossoverjie.concurrent; + +import com.crossoverjie.classloader.Main; + +/** + * Function: 线程状态测试 + * + * @author crossoverJie + * Date: 06/03/2018 22:56 + * @since JDK 1.8 + */ +public class ThreadState { + + public static void main(String[] args) { + new Thread(new TimeWaiting(),"TimeWaiting").start(); + new Thread(new Waiting(),"Waiting").start(); + new Thread(new Blocked(),"Blocked1").start(); + new Thread(new Blocked(),"Blocked2").start(); + } + + static class TimeWaiting implements Runnable{ + + @Override + public void run() { + while (true){ + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + } + } + + static class Waiting implements Runnable{ + + @Override + public void run() { + while (true){ + synchronized (Waiting.class){ + try { + Waiting.class.wait(); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + } + } + } + + + static class Blocked implements Runnable{ + + @Override + public void run() { + while (true){ + synchronized (Blocked.class){ + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + } + } + } +} diff --git a/Java-Interview/src/main/java/com/crossoverjie/concurrent/Volatile.java b/Java-Interview/src/main/java/com/crossoverjie/concurrent/Volatile.java new file mode 100644 index 0000000..a910c61 --- /dev/null +++ b/Java-Interview/src/main/java/com/crossoverjie/concurrent/Volatile.java @@ -0,0 +1,54 @@ +package com.crossoverjie.concurrent; + +import java.util.Scanner; + +/** + * Function: + * + * @author crossoverJie + * Date: 09/03/2018 00:09 + * @since JDK 1.8 + */ +public class Volatile implements Runnable{ + + private static volatile boolean flag = true ; + + @Override + public void run() { + while (flag){ + } + System.out.println(Thread.currentThread().getName() +"执行完毕"); + } + + public static void main(String[] args) throws InterruptedException { + Volatile aVolatile = new Volatile(); + new Thread(aVolatile,"thread A").start(); + + + System.out.println("main 线程正在运行") ; + + Scanner sc = new Scanner(System.in); + while(sc.hasNext()){ + String value = sc.next(); + if(value.equals("1")){ + + new Thread(new Runnable() { + @Override + public void run() { + aVolatile.stopThread(); + } + }).start(); + + break ; + } + } + + System.out.println("主线程退出了!"); + + } + + private void stopThread(){ + flag = false ; + } + +} diff --git a/Java-Interview/src/main/java/com/crossoverjie/concurrent/VolatileInc.java b/Java-Interview/src/main/java/com/crossoverjie/concurrent/VolatileInc.java new file mode 100644 index 0000000..2a24777 --- /dev/null +++ b/Java-Interview/src/main/java/com/crossoverjie/concurrent/VolatileInc.java @@ -0,0 +1,43 @@ +package com.crossoverjie.concurrent; + +import java.util.concurrent.atomic.AtomicInteger; + +/** + * Function: + * + * @author crossoverJie + * Date: 09/03/2018 00:34 + * @since JDK 1.8 + */ +public class VolatileInc implements Runnable{ + + private static volatile int count = 0 ; //使用 volatile 修饰基本数据内存不能保证原子性 + + //private static AtomicInteger count = new AtomicInteger() ; + + @Override + public void run() { + for (int i=0;i<10000 ;i++){ + count ++ ; + //count.incrementAndGet() ; + } + } + + public static void main(String[] args) throws InterruptedException { + VolatileInc volatileInc = new VolatileInc() ; + Thread t1 = new Thread(volatileInc,"t1") ; + Thread t2 = new Thread(volatileInc,"t2") ; + t1.start(); + //t1.join(); + + t2.start(); + //t2.join(); + for (int i=0;i<10000 ;i++){ + count ++ ; + //count.incrementAndGet(); + } + + + System.out.println("最终Count="+count); + } +} diff --git a/Java-Interview/src/main/java/com/crossoverjie/design/pattern/factorymethod/Animal.java b/Java-Interview/src/main/java/com/crossoverjie/design/pattern/factorymethod/Animal.java new file mode 100644 index 0000000..04556a4 --- /dev/null +++ b/Java-Interview/src/main/java/com/crossoverjie/design/pattern/factorymethod/Animal.java @@ -0,0 +1,26 @@ +package com.crossoverjie.design.pattern.factorymethod; + +/** + * Function: + * + * @author crossoverJie + * Date: 19/03/2018 14:29 + * @since JDK 1.8 + */ +public abstract class Animal { + + private String name ; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + /** + * 描述抽象方法 + */ + protected abstract void desc() ; +} diff --git a/Java-Interview/src/main/java/com/crossoverjie/design/pattern/factorymethod/AnimalFactory.java b/Java-Interview/src/main/java/com/crossoverjie/design/pattern/factorymethod/AnimalFactory.java new file mode 100644 index 0000000..fb7f571 --- /dev/null +++ b/Java-Interview/src/main/java/com/crossoverjie/design/pattern/factorymethod/AnimalFactory.java @@ -0,0 +1,13 @@ +package com.crossoverjie.design.pattern.factorymethod; + +/** + * Function:工厂方法模式 + * + * @author crossoverJie + * Date: 19/03/2018 14:29 + * @since JDK 1.8 + */ +public interface AnimalFactory { + + Animal createAnimal() ; +} diff --git a/Java-Interview/src/main/java/com/crossoverjie/design/pattern/factorymethod/Cat.java b/Java-Interview/src/main/java/com/crossoverjie/design/pattern/factorymethod/Cat.java new file mode 100644 index 0000000..7d0393c --- /dev/null +++ b/Java-Interview/src/main/java/com/crossoverjie/design/pattern/factorymethod/Cat.java @@ -0,0 +1,15 @@ +package com.crossoverjie.design.pattern.factorymethod; + +/** + * Function: + * + * @author crossoverJie + * Date: 19/03/2018 14:33 + * @since JDK 1.8 + */ +public class Cat extends Animal { + @Override + protected void desc() { + System.out.println("Cat name is=" + this.getName()); + } +} diff --git a/Java-Interview/src/main/java/com/crossoverjie/design/pattern/factorymethod/CatFactory.java b/Java-Interview/src/main/java/com/crossoverjie/design/pattern/factorymethod/CatFactory.java new file mode 100644 index 0000000..a8f90d6 --- /dev/null +++ b/Java-Interview/src/main/java/com/crossoverjie/design/pattern/factorymethod/CatFactory.java @@ -0,0 +1,15 @@ +package com.crossoverjie.design.pattern.factorymethod; + +/** + * Function: + * + * @author crossoverJie + * Date: 19/03/2018 15:21 + * @since JDK 1.8 + */ +public class CatFactory implements AnimalFactory { + @Override + public Animal createAnimal() { + return new Cat(); + } +} diff --git a/Java-Interview/src/main/java/com/crossoverjie/design/pattern/factorymethod/Fish.java b/Java-Interview/src/main/java/com/crossoverjie/design/pattern/factorymethod/Fish.java new file mode 100644 index 0000000..9820c1a --- /dev/null +++ b/Java-Interview/src/main/java/com/crossoverjie/design/pattern/factorymethod/Fish.java @@ -0,0 +1,17 @@ +package com.crossoverjie.design.pattern.factorymethod; + +/** + * Function: + * + * @author crossoverJie + * Date: 19/03/2018 14:32 + * @since JDK 1.8 + */ +public class Fish extends Animal { + + + @Override + protected void desc() { + System.out.println("fish name is=" + this.getName()); + } +} diff --git a/Java-Interview/src/main/java/com/crossoverjie/design/pattern/factorymethod/FishFactory.java b/Java-Interview/src/main/java/com/crossoverjie/design/pattern/factorymethod/FishFactory.java new file mode 100644 index 0000000..8e59610 --- /dev/null +++ b/Java-Interview/src/main/java/com/crossoverjie/design/pattern/factorymethod/FishFactory.java @@ -0,0 +1,15 @@ +package com.crossoverjie.design.pattern.factorymethod; + +/** + * Function: + * + * @author crossoverJie + * Date: 19/03/2018 15:21 + * @since JDK 1.8 + */ +public class FishFactory implements AnimalFactory { + @Override + public Animal createAnimal() { + return new Fish() ; + } +} diff --git a/Java-Interview/src/main/java/com/crossoverjie/design/pattern/factorymethod/Main.java b/Java-Interview/src/main/java/com/crossoverjie/design/pattern/factorymethod/Main.java new file mode 100644 index 0000000..440aaa4 --- /dev/null +++ b/Java-Interview/src/main/java/com/crossoverjie/design/pattern/factorymethod/Main.java @@ -0,0 +1,17 @@ +package com.crossoverjie.design.pattern.factorymethod; + +/** + * Function: + * + * @author crossoverJie + * Date: 19/03/2018 14:34 + * @since JDK 1.8 + */ +public class Main { + public static void main(String[] args) { + AnimalFactory factory = new CatFactory() ; + Animal animal = factory.createAnimal(); + animal.setName("猫咪"); + animal.desc(); + } +} diff --git a/Java-Interview/src/main/java/com/crossoverjie/gc/MinorGC.java b/Java-Interview/src/main/java/com/crossoverjie/gc/MinorGC.java new file mode 100644 index 0000000..a6867e8 --- /dev/null +++ b/Java-Interview/src/main/java/com/crossoverjie/gc/MinorGC.java @@ -0,0 +1,36 @@ +package com.crossoverjie.gc; + +/** + * Function: Eden区不够分配时,发生minorGC + * + * @author crossoverJie + * Date: 17/01/2018 22:57 + * @since JDK 1.8 + */ +public class MinorGC { + + /** + * 1M + */ + private static final int SIZE = 1024 * 1024 ; + + /** + * + -XX:+PrintGCDetails + -Xms20M + -Xmx20M + -Xmn10M + -XX:SurvivorRatio=8 + * @param args + */ + public static void main(String[] args) { + byte[] one ; + byte[] four ; + + one = new byte[2 * SIZE] ; + + + //再分配一个 5M 内存时,Eden区不够了, + four = new byte[5 * SIZE] ; + } +} diff --git a/Java-Interview/src/main/java/com/crossoverjie/guava/CacheLoaderTest.java b/Java-Interview/src/main/java/com/crossoverjie/guava/CacheLoaderTest.java new file mode 100644 index 0000000..9eb0893 --- /dev/null +++ b/Java-Interview/src/main/java/com/crossoverjie/guava/CacheLoaderTest.java @@ -0,0 +1,91 @@ +package com.crossoverjie.guava; + +import com.google.common.cache.*; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.concurrent.ExecutionException; +import java.util.concurrent.LinkedBlockingQueue; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicLong; + +/** + * Function: + * + * @author crossoverJie + * Date: 2018/6/12 15:33 + * @since JDK 1.8 + */ +public class CacheLoaderTest { + private final static Logger LOGGER = LoggerFactory.getLogger(CacheLoaderTest.class); + private LoadingCache loadingCache ; + private final static Integer KEY = 1000; + + + private final static LinkedBlockingQueue QUEUE = new LinkedBlockingQueue<>(1000); + + + private void init() throws InterruptedException { + loadingCache = CacheBuilder.newBuilder() + .expireAfterWrite(2, TimeUnit.SECONDS) + .removalListener(new RemovalListener() { + @Override + public void onRemoval(RemovalNotification notification) { + LOGGER.info("删除原因={},删除 key={},删除 value={}",notification.getCause(),notification.getKey(),notification.getValue()); + } + }) + .build(new CacheLoader() { + @Override + public AtomicLong load(Integer key) throws Exception { + return new AtomicLong(0); + } + }); + + + for (int i = 10; i < 15; i++) { + QUEUE.put(i); + } + } + + private void checkAlert(Integer integer) { + try { + + //loadingCache.put(integer,new AtomicLong(integer)); + + TimeUnit.SECONDS.sleep(3); + + + LOGGER.info("当前缓存值={},缓存大小={}", loadingCache.get(KEY),loadingCache.size()); + LOGGER.info("缓存的所有内容={}",loadingCache.asMap().toString()); + loadingCache.get(KEY).incrementAndGet(); + + } catch (ExecutionException e ) { + LOGGER.error("Exception", e); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + public static void main(String[] args) throws InterruptedException { + CacheLoaderTest cacheLoaderTest = new CacheLoaderTest() ; + cacheLoaderTest.init(); + + + + while (true) { + + try { + Integer integer = QUEUE.poll(200, TimeUnit.MILLISECONDS); + if (null == integer) { + break; + } + //TimeUnit.SECONDS.sleep(5); + cacheLoaderTest.checkAlert(integer); + LOGGER.info("job running times={}", integer); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + } + + +} diff --git a/Java-Interview/src/main/java/com/crossoverjie/guava/callback/CallBackListener.java b/Java-Interview/src/main/java/com/crossoverjie/guava/callback/CallBackListener.java new file mode 100644 index 0000000..cddad08 --- /dev/null +++ b/Java-Interview/src/main/java/com/crossoverjie/guava/callback/CallBackListener.java @@ -0,0 +1,17 @@ +package com.crossoverjie.guava.callback; + +/** + * Function: + * + * @author crossoverJie + * Date: 2018/7/15 13:49 + * @since JDK 1.8 + */ +public interface CallBackListener { + + /** + * 回调通知函数 + * @param msg + */ + void callBackNotify(String msg) ; +} diff --git a/Java-Interview/src/main/java/com/crossoverjie/guava/callback/Caller.java b/Java-Interview/src/main/java/com/crossoverjie/guava/callback/Caller.java new file mode 100644 index 0000000..dc9f188 --- /dev/null +++ b/Java-Interview/src/main/java/com/crossoverjie/guava/callback/Caller.java @@ -0,0 +1,79 @@ +package com.crossoverjie.guava.callback; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Function: + * + * @author crossoverJie + * Date: 2018/7/15 13:52 + * @since JDK 1.8 + */ +public class Caller { + + private final static Logger LOGGER = LoggerFactory.getLogger(Caller.class); + + private CallBackListener callBackListener ; + + private Notifier notifier ; + + private String question ; + + /** + * 使用 + */ + public void call(){ + + LOGGER.info("开始提问"); + + //新建线程,达到异步效果 + new Thread(new Runnable() { + @Override + public void run() { + try { + notifier.execute(Caller.this,question); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + }).start(); + + LOGGER.info("提问完毕,我去干其他事了"); + } + + + public Notifier getNotifier() { + return notifier; + } + + public void setNotifier(Notifier notifier) { + this.notifier = notifier; + } + + + public CallBackListener getCallBackListener() { + return callBackListener; + } + + public void setCallBackListener(CallBackListener callBackListener) { + this.callBackListener = callBackListener; + } + + public String getQuestion() { + return question; + } + + public void setQuestion(String question) { + this.question = question; + } + + @Override + public String toString() { + return "Caller{" + + "callBackListener=" + callBackListener + + ", notifier=" + notifier + + ", question='" + question + '\'' + + '}'; + } +} diff --git a/Java-Interview/src/main/java/com/crossoverjie/guava/callback/Main.java b/Java-Interview/src/main/java/com/crossoverjie/guava/callback/Main.java new file mode 100644 index 0000000..9e90025 --- /dev/null +++ b/Java-Interview/src/main/java/com/crossoverjie/guava/callback/Main.java @@ -0,0 +1,32 @@ +package com.crossoverjie.guava.callback; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Function: + * + * @author crossoverJie + * Date: 2018/7/15 14:18 + * @since JDK 1.8 + */ +public class Main { + + private final static Logger LOGGER = LoggerFactory.getLogger(Main.class); + + public static void main(String[] args) { + Notifier notifier = new Notifier() ; + + Caller caller = new Caller() ; + caller.setNotifier(notifier) ; + caller.setQuestion("你在哪儿!"); + caller.setCallBackListener(new CallBackListener() { + @Override + public void callBackNotify(String msg) { + LOGGER.info("回复=【{}】" ,msg); + } + }); + + caller.call(); + } +} diff --git a/Java-Interview/src/main/java/com/crossoverjie/guava/callback/Notifier.java b/Java-Interview/src/main/java/com/crossoverjie/guava/callback/Notifier.java new file mode 100644 index 0000000..26966af --- /dev/null +++ b/Java-Interview/src/main/java/com/crossoverjie/guava/callback/Notifier.java @@ -0,0 +1,30 @@ +package com.crossoverjie.guava.callback; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.concurrent.TimeUnit; + +/** + * Function: + * + * @author crossoverJie + * Date: 2018/7/15 13:59 + * @since JDK 1.8 + */ +public class Notifier { + + private final static Logger LOGGER = LoggerFactory.getLogger(Notifier.class); + + public void execute(Caller caller, String msg) throws InterruptedException { + LOGGER.info("收到消息=【{}】", msg); + + LOGGER.info("等待响应中。。。。。"); + TimeUnit.SECONDS.sleep(2); + + + caller.getCallBackListener().callBackNotify("我在北京!"); + + } + +} diff --git a/Java-Interview/src/main/java/com/crossoverjie/oom/heap/HeapOOM.java b/Java-Interview/src/main/java/com/crossoverjie/oom/heap/HeapOOM.java new file mode 100644 index 0000000..5bf585c --- /dev/null +++ b/Java-Interview/src/main/java/com/crossoverjie/oom/heap/HeapOOM.java @@ -0,0 +1,21 @@ +package com.crossoverjie.oom.heap; + +import java.util.ArrayList; +import java.util.List; + +/** + * Function:堆内存溢出 + * + * @author crossoverJie + * Date: 29/12/2017 18:22 + * @since JDK 1.8 + */ +public class HeapOOM { + + public static void main(String[] args) { + List list = new ArrayList<>(10) ; + while (true){ + list.add("1") ; + } + } +} diff --git a/Java-Interview/src/main/java/com/crossoverjie/oom/heap/MetaSpaceOOM.java b/Java-Interview/src/main/java/com/crossoverjie/oom/heap/MetaSpaceOOM.java new file mode 100644 index 0000000..b799d8f --- /dev/null +++ b/Java-Interview/src/main/java/com/crossoverjie/oom/heap/MetaSpaceOOM.java @@ -0,0 +1,33 @@ +package com.crossoverjie.oom.heap; + +import net.sf.cglib.proxy.Enhancer; +import net.sf.cglib.proxy.MethodInterceptor; +import net.sf.cglib.proxy.MethodProxy; + +import java.lang.reflect.Method; + +/** + * Function:方法区内存溢出 1.8之后修改为元数据区 + * + * @author crossoverJie + * Date: 29/12/2017 21:34 + * @since JDK 1.8 + */ +public class MetaSpaceOOM { + + public static void main(String[] args) { + while (true){ + Enhancer enhancer = new Enhancer() ; + enhancer.setSuperclass(HeapOOM.class); + enhancer.setUseCache(false) ; + enhancer.setCallback(new MethodInterceptor() { + @Override + public Object intercept(Object o, Method method, Object[] objects, MethodProxy methodProxy) throws Throwable { + return methodProxy.invoke(o,objects) ; + } + }); + enhancer.create() ; + + } + } +} diff --git a/Java-Interview/src/main/java/com/crossoverjie/proxy/cglib/RealSubject.java b/Java-Interview/src/main/java/com/crossoverjie/proxy/cglib/RealSubject.java new file mode 100644 index 0000000..905cc73 --- /dev/null +++ b/Java-Interview/src/main/java/com/crossoverjie/proxy/cglib/RealSubject.java @@ -0,0 +1,19 @@ +package com.crossoverjie.proxy.cglib; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Function: + * + * @author crossoverJie + * Date: 24/12/2017 19:01 + * @since JDK 1.8 + */ +public class RealSubject { + private final static Logger LOGGER = LoggerFactory.getLogger(RealSubject.class); + + public void exec(){ + LOGGER.info("real exec"); + } +} diff --git a/Java-Interview/src/main/java/com/crossoverjie/proxy/cglib/RealSubjectIntercept.java b/Java-Interview/src/main/java/com/crossoverjie/proxy/cglib/RealSubjectIntercept.java new file mode 100644 index 0000000..7ab1329 --- /dev/null +++ b/Java-Interview/src/main/java/com/crossoverjie/proxy/cglib/RealSubjectIntercept.java @@ -0,0 +1,33 @@ +package com.crossoverjie.proxy.cglib; + +import net.sf.cglib.proxy.MethodInterceptor; +import net.sf.cglib.proxy.MethodProxy; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.lang.reflect.Method; + +/** + * Function: + * + * @author crossoverJie + * Date: 24/12/2017 19:02 + * @since JDK 1.8 + */ +public class RealSubjectIntercept implements MethodInterceptor{ + + private final static Logger LOGGER = LoggerFactory.getLogger(RealSubjectIntercept.class); + + + + + @Override + public Object intercept(Object o, Method method, Object[] objects, MethodProxy methodProxy) throws Throwable { + + LOGGER.info("before"); + + Object invoke = methodProxy.invoke(o, objects); + LOGGER.info("after"); + return invoke; + } +} diff --git a/Java-Interview/src/main/java/com/crossoverjie/proxy/jdk/CustomizeHandle.java b/Java-Interview/src/main/java/com/crossoverjie/proxy/jdk/CustomizeHandle.java new file mode 100644 index 0000000..19df41f --- /dev/null +++ b/Java-Interview/src/main/java/com/crossoverjie/proxy/jdk/CustomizeHandle.java @@ -0,0 +1,50 @@ +package com.crossoverjie.proxy.jdk; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.lang.reflect.InvocationHandler; +import java.lang.reflect.Method; + +/** + * Function: + * + * @author crossoverJie + * Date: 23/12/2017 22:27 + * @since JDK 1.8 + */ +public class CustomizeHandle implements InvocationHandler { + private final static Logger LOGGER = LoggerFactory.getLogger(CustomizeHandle.class); + + private Object target; + + public CustomizeHandle(Class clazz) { + try { + this.target = clazz.newInstance(); + } catch (InstantiationException e) { + LOGGER.error("InstantiationException", e); + } catch (IllegalAccessException e) { + LOGGER.error("IllegalAccessException",e); + } + } + + @Override + public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { + + before(); + Object result = method.invoke(target, args); + after(); + + LOGGER.info("proxy class={}", proxy.getClass()); + return result; + } + + + private void before() { + LOGGER.info("handle before"); + } + + private void after() { + LOGGER.info("handle after"); + } +} diff --git a/Java-Interview/src/main/java/com/crossoverjie/proxy/jdk/ISubject.java b/Java-Interview/src/main/java/com/crossoverjie/proxy/jdk/ISubject.java new file mode 100644 index 0000000..424776f --- /dev/null +++ b/Java-Interview/src/main/java/com/crossoverjie/proxy/jdk/ISubject.java @@ -0,0 +1,16 @@ +package com.crossoverjie.proxy.jdk; + +/** + * Function: + * + * @author crossoverJie + * Date: 23/12/2017 22:37 + * @since JDK 1.8 + */ +public interface ISubject { + + /** + * 执行 + */ + void execute() ; +} diff --git a/Java-Interview/src/main/java/com/crossoverjie/proxy/jdk/impl/ISubjectImpl.java b/Java-Interview/src/main/java/com/crossoverjie/proxy/jdk/impl/ISubjectImpl.java new file mode 100644 index 0000000..8978a6a --- /dev/null +++ b/Java-Interview/src/main/java/com/crossoverjie/proxy/jdk/impl/ISubjectImpl.java @@ -0,0 +1,23 @@ +package com.crossoverjie.proxy.jdk.impl; + +import com.crossoverjie.proxy.jdk.ISubject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Function: + * + * @author crossoverJie + * Date: 23/12/2017 22:43 + * @since JDK 1.8 + */ +public class ISubjectImpl implements ISubject { + private final static Logger LOGGER = LoggerFactory.getLogger(ISubjectImpl.class); + /** + * 执行 + */ + @Override + public void execute() { + LOGGER.info("ISubjectImpl execute"); + } +} diff --git a/Java-Interview/src/main/java/com/crossoverjie/red/RedPacket.java b/Java-Interview/src/main/java/com/crossoverjie/red/RedPacket.java new file mode 100644 index 0000000..402f29f --- /dev/null +++ b/Java-Interview/src/main/java/com/crossoverjie/red/RedPacket.java @@ -0,0 +1,137 @@ +package com.crossoverjie.red; + +import java.util.LinkedList; +import java.util.List; + +/** + * Function: 模拟微信红包生成,以分为单位 + * + * @author crossoverJie + * Date: 03/01/2018 16:52 + * @since JDK 1.8 + */ +public class RedPacket { + + /** + * 生成红包最小值 1分 + */ + private static final int MIN_MONEY = 1 ; + + /** + * 生成红包最大值 200人民币 + */ + private static final int MAX_MONEY = 200 * 100 ; + + /** + * 小于最小值 + */ + private static final int LESS = -1 ; + /** + * 大于最大值 + */ + private static final int MORE = -2 ; + + /** + * 正常值 + */ + private static final int OK = 1 ; + + /** + * 最大的红包是平均值的 TIMES 倍,防止某一次分配红包较大 + */ + private static final double TIMES = 2.1F ; + + private int recursiveCount = 0 ; + + private List splitRedPacket(int money,int count){ + List moneys = new LinkedList<>() ; + + //计算出最大红包 + int max = (int) ((money / count) * TIMES) ; + max = max > MAX_MONEY ? MAX_MONEY : max ; + + for (int i = 0 ; i< count ; i++){ + //随机获取红包 + int redPacket = randomRedPacket(money, MIN_MONEY,max,count - i) ; + moneys.add(redPacket); + //总金额每次减少 + money -= redPacket ; + } + + return moneys ; + } + + private int randomRedPacket(int totalMoney, int minMoney, int maxMoney, int count) { + //只有一个红包直接返回 + if (count == 1){ + return totalMoney ; + } + + if (minMoney == maxMoney){ + return minMoney ; + } + + //如果最大金额大于了剩余金额 则用剩余金额 因为这个 money 每分配一次都会减小 + maxMoney = maxMoney > totalMoney ? totalMoney : maxMoney ; + + //在 minMoney到maxMoney 生成一个随机红包 + int redPacket = (int) (Math.random() * (maxMoney - minMoney) + minMoney) ; + + int lastMoney = totalMoney - redPacket ; + + int status = checkMoney(lastMoney,count - 1) ; + + //正常金额 + if (OK == status){ + return redPacket ; + } + + //如果生成的金额不合法 则递归重新生成 + if (LESS == status){ + recursiveCount ++ ; + System.out.println("recursiveCount==" + recursiveCount); + return randomRedPacket(totalMoney,minMoney,redPacket,count) ; + } + + if (MORE == status){ + recursiveCount ++ ; + System.out.println("recursiveCount===" + recursiveCount); + return randomRedPacket(totalMoney,redPacket,maxMoney,count) ; + } + + return redPacket ; + } + + /** + * 校验剩余的金额的平均值是否在 最小值和最大值这个范围内 + * @param lastMoney + * @param count + * @return + */ + private int checkMoney(int lastMoney, int count) { + double avg = lastMoney / count ; + if (avg < MIN_MONEY){ + return LESS ; + } + + if (avg > MAX_MONEY){ + return MORE ; + } + + return OK ; + } + + + public static void main(String[] args) { + RedPacket redPacket = new RedPacket() ; + List redPackets = redPacket.splitRedPacket(20000, 100); + System.out.println(redPackets) ; + + int sum = 0 ; + for (Integer red : redPackets) { + sum += red ; + } + System.out.println(sum); + } + +} diff --git a/Java-Interview/src/main/java/com/crossoverjie/spring/LifeCycleConfig.java b/Java-Interview/src/main/java/com/crossoverjie/spring/LifeCycleConfig.java new file mode 100644 index 0000000..fd44aa6 --- /dev/null +++ b/Java-Interview/src/main/java/com/crossoverjie/spring/LifeCycleConfig.java @@ -0,0 +1,25 @@ +package com.crossoverjie.spring; + +import com.crossoverjie.concurrent.Singleton; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; + +/** + * Function:使用 initMethod 和 destroyMethod 的方式 + * + * @author crossoverJie + * Date: 19/03/2018 22:37 + * @since JDK 1.8 + */ +@Configuration +public class LifeCycleConfig { + + + @Bean(initMethod = "start", destroyMethod = "destroy") + public SpringLifeCycle create(){ + SpringLifeCycle springLifeCycle = new SpringLifeCycle() ; + + return springLifeCycle ; + } +} diff --git a/Java-Interview/src/main/java/com/crossoverjie/spring/SpringLifeCycle.java b/Java-Interview/src/main/java/com/crossoverjie/spring/SpringLifeCycle.java new file mode 100644 index 0000000..0a016b3 --- /dev/null +++ b/Java-Interview/src/main/java/com/crossoverjie/spring/SpringLifeCycle.java @@ -0,0 +1,28 @@ +package com.crossoverjie.spring; + +import com.crossoverjie.Application; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.BeansException; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; + +/** + * Function: + * + * @author crossoverJie + * Date: 20/03/2018 18:23 + * @since JDK 1.8 + */ +public class SpringLifeCycle{ + + private final static Logger LOGGER = LoggerFactory.getLogger(SpringLifeCycle.class); + public void start(){ + LOGGER.info("SpringLifeCycle start"); + } + + + public void destroy(){ + LOGGER.info("SpringLifeCycle destroy"); + } +} diff --git a/Java-Interview/src/main/java/com/crossoverjie/spring/annotation/AnnotationBean.java b/Java-Interview/src/main/java/com/crossoverjie/spring/annotation/AnnotationBean.java new file mode 100644 index 0000000..e848581 --- /dev/null +++ b/Java-Interview/src/main/java/com/crossoverjie/spring/annotation/AnnotationBean.java @@ -0,0 +1,31 @@ +package com.crossoverjie.spring.annotation; + +import com.crossoverjie.spring.SpringLifeCycle; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Component; + +import javax.annotation.PostConstruct; +import javax.annotation.PreDestroy; + +/** + * Function:用注解的方法 + * + * @author crossoverJie + * Date: 20/03/2018 18:46 + * @since JDK 1.8 + */ +@Component +public class AnnotationBean { + private final static Logger LOGGER = LoggerFactory.getLogger(AnnotationBean.class); + + @PostConstruct + public void start(){ + LOGGER.info("AnnotationBean start"); + } + + @PreDestroy + public void destroy(){ + LOGGER.info("AnnotationBean destroy"); + } +} diff --git a/Java-Interview/src/main/java/com/crossoverjie/spring/aware/SpringLifeCycleAware.java b/Java-Interview/src/main/java/com/crossoverjie/spring/aware/SpringLifeCycleAware.java new file mode 100644 index 0000000..d3b288a --- /dev/null +++ b/Java-Interview/src/main/java/com/crossoverjie/spring/aware/SpringLifeCycleAware.java @@ -0,0 +1,29 @@ +package com.crossoverjie.spring.aware; + +import com.crossoverjie.Application; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.BeansException; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; +import org.springframework.stereotype.Component; + +/** + * Function: + * + * @author crossoverJie + * Date: 20/03/2018 21:54 + * @since JDK 1.8 + */ +@Component +public class SpringLifeCycleAware implements ApplicationContextAware { + private final static Logger LOGGER = LoggerFactory.getLogger(SpringLifeCycleAware.class); + + private ApplicationContext applicationContext ; + + @Override + public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { + this.applicationContext = applicationContext ; + LOGGER.info("SpringLifeCycleAware start"); + } +} diff --git a/Java-Interview/src/main/java/com/crossoverjie/spring/processor/SpringLifeCycleProcessor.java b/Java-Interview/src/main/java/com/crossoverjie/spring/processor/SpringLifeCycleProcessor.java new file mode 100644 index 0000000..d0d664b --- /dev/null +++ b/Java-Interview/src/main/java/com/crossoverjie/spring/processor/SpringLifeCycleProcessor.java @@ -0,0 +1,50 @@ +package com.crossoverjie.spring.processor; + +import com.crossoverjie.Application; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.BeansException; +import org.springframework.beans.factory.config.BeanPostProcessor; +import org.springframework.stereotype.Component; + +/** + * Function: + * + * @author crossoverJie + * Date: 20/03/2018 22:11 + * @since JDK 1.8 + */ +@Component +public class SpringLifeCycleProcessor implements BeanPostProcessor { + private final static Logger LOGGER = LoggerFactory.getLogger(SpringLifeCycleProcessor.class); + + /** + * 预初始化 初始化之前调用 + * @param bean + * @param beanName + * @return + * @throws BeansException + */ + @Override + public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException { + if ("annotationBean".equals(beanName)){ + LOGGER.info("SpringLifeCycleProcessor start beanName={}",beanName); + } + return bean; + } + + /** + * 后初始化 bean 初始化完成调用 + * @param bean + * @param beanName + * @return + * @throws BeansException + */ + @Override + public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { + if ("annotationBean".equals(beanName)){ + LOGGER.info("SpringLifeCycleProcessor end beanName={}",beanName); + } + return bean; + } +} diff --git a/Java-Interview/src/main/java/com/crossoverjie/spring/service/SpringLifeCycleService.java b/Java-Interview/src/main/java/com/crossoverjie/spring/service/SpringLifeCycleService.java new file mode 100644 index 0000000..302aac1 --- /dev/null +++ b/Java-Interview/src/main/java/com/crossoverjie/spring/service/SpringLifeCycleService.java @@ -0,0 +1,30 @@ +package com.crossoverjie.spring.service; + +import com.crossoverjie.spring.SpringLifeCycle; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.DisposableBean; +import org.springframework.beans.factory.InitializingBean; +import org.springframework.stereotype.Component; +import org.springframework.stereotype.Service; + +/** + * Function:实现 InitializingBean DisposableBean 接口 + * + * @author crossoverJie + * Date: 20/03/2018 18:38 + * @since JDK 1.8 + */ +@Service +public class SpringLifeCycleService implements InitializingBean,DisposableBean{ + private final static Logger LOGGER = LoggerFactory.getLogger(SpringLifeCycleService.class); + @Override + public void afterPropertiesSet() throws Exception { + LOGGER.info("SpringLifeCycleService start"); + } + + @Override + public void destroy() throws Exception { + LOGGER.info("SpringLifeCycleService destroy"); + } +} diff --git a/Java-Interview/src/main/java/com/crossoverjie/synchronize/Synchronize.java b/Java-Interview/src/main/java/com/crossoverjie/synchronize/Synchronize.java new file mode 100644 index 0000000..911712b --- /dev/null +++ b/Java-Interview/src/main/java/com/crossoverjie/synchronize/Synchronize.java @@ -0,0 +1,17 @@ +package com.crossoverjie.synchronize; + +/** + * Function:Synchronize 演示 + * + * @author crossoverJie + * Date: 02/01/2018 13:27 + * @since JDK 1.8 + */ +public class Synchronize { + + public static void main(String[] args) { + synchronized (Synchronize.class){ + System.out.println("Synchronize"); + } + } +} diff --git a/Java-Interview/src/main/resources/application.properties b/Java-Interview/src/main/resources/application.properties new file mode 100644 index 0000000..c9ef850 --- /dev/null +++ b/Java-Interview/src/main/resources/application.properties @@ -0,0 +1,3 @@ +spring.application.name=java-interview + +logging.level.root=INFO \ No newline at end of file diff --git a/Java-Interview/src/main/resources/logback.xml b/Java-Interview/src/main/resources/logback.xml new file mode 100644 index 0000000..693796b --- /dev/null +++ b/Java-Interview/src/main/resources/logback.xml @@ -0,0 +1,82 @@ + + + + + + + + %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n + + + + + + DEBUG + ACCEPT + DENY + + ${LOG_PATH}/${LOG_FILE_NAME}-debug.log + + + ${LOG_PATH}/${LOG_FILE_NAME}_debug_%d{yyyy-MM-dd}.log.%d{yyyy-MM-dd} + + + [%date{yyyy-MM-dd HH:mm:ss.SSS}] [%thread] %p %C %t, - %msg%n + UTF-8 + + + + + + INFO + ACCEPT + DENY + + ${LOG_PATH}/${LOG_FILE_NAME}-info.log + + ${LOG_PATH}/${LOG_FILE_NAME}_info_%d{yyyy-MM-dd}.log.%d{yyyy-MM-dd} + + + + [%date{yyyy-MM-dd HH:mm:ss.SSS}] [%thread] %p %C %t, - %msg%n + UTF-8 + + + + + + ERROR + ACCEPT + DENY + + ${LOG_PATH}/${LOG_FILE_NAME}-error.log + + ${LOG_PATH}/${LOG_FILE_NAME}_error_%d{yyyy-MM-dd}.%d{yyyy-MM-dd} + + + [%date{yyyy-MM-dd HH:mm:ss.SSS}] [%thread] %p %C %t, - %msg%n + UTF-8 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Java-Interview/src/test/java/com/crossoverjie/actual/AbstractMapTest.java b/Java-Interview/src/test/java/com/crossoverjie/actual/AbstractMapTest.java new file mode 100644 index 0000000..a384d5b --- /dev/null +++ b/Java-Interview/src/test/java/com/crossoverjie/actual/AbstractMapTest.java @@ -0,0 +1,36 @@ +package com.crossoverjie.actual; + +import org.junit.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class AbstractMapTest { + + private final static Logger LOGGER = LoggerFactory.getLogger(AbstractMapTest.class); + + @Test + public void test(){ + LRUAbstractMap map = new LRUAbstractMap() ; + map.put(1,1) ; + map.put(2,2) ; + + Object o = map.get(1); + LOGGER.info("getSize={}",map.size()); + + map.remove(1) ; + LOGGER.info("getSize"+map.size()); + } + + public static void main(String[] args) { + LRUAbstractMap map = new LRUAbstractMap() ; + map.put(1,1) ; + map.put(2,2) ; + + Object o = map.get(1); + LOGGER.info("getSize={}",map.size()); + + map.remove(1) ; + map.remove(2) ; + LOGGER.info("getSize"+map.size()); + } +} \ No newline at end of file diff --git a/Java-Interview/src/test/java/com/crossoverjie/actual/LRULinkedMapTest.java b/Java-Interview/src/test/java/com/crossoverjie/actual/LRULinkedMapTest.java new file mode 100644 index 0000000..600344f --- /dev/null +++ b/Java-Interview/src/test/java/com/crossoverjie/actual/LRULinkedMapTest.java @@ -0,0 +1,65 @@ +package com.crossoverjie.actual; + +import org.junit.Test; + +import java.util.Map; + +import static org.junit.Assert.*; + +public class LRULinkedMapTest { + @Test + public void put() throws Exception { + LRULinkedMap map = new LRULinkedMap(3) ; + map.put("1",1); + map.put("2",2); + map.put("3",3); + + for (Map.Entry e : map.getAll()){ + System.out.print(e.getKey() + " : " + e.getValue() + "\t"); + } + + System.out.println(""); + map.put("4",4); + for (Map.Entry e : map.getAll()){ + System.out.print(e.getKey() + " : " + e.getValue() + "\t"); + } + } + + @Test + public void put2() throws Exception { + LRULinkedMap map = new LRULinkedMap(4) ; + map.put("1",1); + map.put("2",2); + map.put("3",3); + map.put("4",4); + + for (Map.Entry e : map.getAll()){ + System.out.print(e.getKey() + " : " + e.getValue() + "\t"); + } + + System.out.println(""); + map.put("5",5); + for (Map.Entry e : map.getAll()){ + System.out.print(e.getKey() + " : " + e.getValue() + "\t"); + } + } + @Test + public void get() throws Exception { + LRULinkedMap map = new LRULinkedMap(4) ; + map.put("1",1); + map.put("2",2); + map.put("3",3); + map.put("4",4); + + for (Map.Entry e : map.getAll()){ + System.out.print(e.getKey() + " : " + e.getValue() + "\t"); + } + + System.out.println(""); + map.get("1") ; + for (Map.Entry e : map.getAll()){ + System.out.print(e.getKey() + " : " + e.getValue() + "\t"); + } + } + +} \ No newline at end of file diff --git a/Java-Interview/src/test/java/com/crossoverjie/actual/LRUMapTest.java b/Java-Interview/src/test/java/com/crossoverjie/actual/LRUMapTest.java new file mode 100644 index 0000000..eb9dcc2 --- /dev/null +++ b/Java-Interview/src/test/java/com/crossoverjie/actual/LRUMapTest.java @@ -0,0 +1,121 @@ +package com.crossoverjie.actual; + +import com.alibaba.fastjson.JSON; +import com.sun.org.apache.bcel.internal.generic.LUSHR; +import org.junit.Test; + +import static org.junit.Assert.*; + +public class LRUMapTest { + + @Test + public void put() throws Exception { + LRUMap lruMap = new LRUMap(3) ; + lruMap.put("1",1) ; + lruMap.put("2",2) ; + lruMap.put("3",3) ; + + System.out.println(lruMap.toString()); + + lruMap.put("4",4) ; + System.out.println(lruMap.toString()); + + lruMap.put("5",5) ; + System.out.println(lruMap.toString()); + } + @Test + public void put2() throws Exception { + LRUMap lruMap = new LRUMap(4) ; + lruMap.put("1",1) ; + lruMap.put("2",2) ; + lruMap.put("3",3) ; + + System.out.println(lruMap.toString()); + + lruMap.put("4",4) ; + System.out.println(lruMap.toString()); + + lruMap.put("5",5) ; + System.out.println(lruMap.toString()); + } + + @Test + public void put3() throws Exception { + LRUMap lruMap = new LRUMap(4) ; + lruMap.put("1",1) ; + lruMap.put("2",2) ; + lruMap.put("3",3) ; + lruMap.put("2",2) ; + + System.out.println(lruMap.toString()); + + lruMap.put("4",4) ; + System.out.println(lruMap.toString()); + + lruMap.put("5",5) ; + System.out.println(lruMap.toString()); + } + + @Test + public void put4() throws Exception { + LRUMap lruMap = new LRUMap(3) ; + lruMap.put("1",1) ; + lruMap.put("2",2) ; + lruMap.put("3",3) ; + + System.out.println(lruMap.toString()); + lruMap.put("2",2) ; + + System.out.println(lruMap.toString()); + + } + + @Test + public void get() throws Exception { + LRUMap lruMap = new LRUMap(3) ; + lruMap.put("1",1) ; + lruMap.put("2",2) ; + lruMap.put("3",3) ; + + System.out.println(lruMap.toString()); + System.out.println("=============="); + + Integer integer = lruMap.get("1"); + System.out.println(integer); + System.out.println("=============="); + System.out.println(lruMap.toString()); + } + + @Test + public void get2() throws Exception { + LRUMap lruMap = new LRUMap(3) ; + lruMap.put("1",1) ; + lruMap.put("2",2) ; + lruMap.put("3",3) ; + + System.out.println(lruMap.toString()); + System.out.println("=============="); + + Integer integer = lruMap.get("2"); + System.out.println(integer); + System.out.println("=============="); + System.out.println(lruMap.toString()); + } + + @Test + public void get3() throws Exception { + LRUMap lruMap = new LRUMap(3) ; + lruMap.put("1",1) ; + lruMap.put("2",2) ; + lruMap.put("3",3) ; + + System.out.println(lruMap.toString()); + System.out.println("=============="); + + Integer integer = lruMap.get("3"); + System.out.println(integer); + System.out.println("=============="); + System.out.println(lruMap.toString()); + } + +} \ No newline at end of file diff --git a/Java-Interview/src/test/java/com/crossoverjie/algorithm/BinaryNodeTest.java b/Java-Interview/src/test/java/com/crossoverjie/algorithm/BinaryNodeTest.java new file mode 100644 index 0000000..b9e8519 --- /dev/null +++ b/Java-Interview/src/test/java/com/crossoverjie/algorithm/BinaryNodeTest.java @@ -0,0 +1,19 @@ +package com.crossoverjie.algorithm; + +import org.junit.Test; + +public class BinaryNodeTest { + + @Test + public void test1(){ + BinaryNode node = new BinaryNode() ; + //创建二叉树 + node = node.createNode() ; + System.out.println(node); + + //中序遍历二叉树 + node.levelIterator(node) ; + + } + +} \ No newline at end of file diff --git a/Java-Interview/src/test/java/com/crossoverjie/algorithm/HappyNumTest.java b/Java-Interview/src/test/java/com/crossoverjie/algorithm/HappyNumTest.java new file mode 100644 index 0000000..6f5b8d3 --- /dev/null +++ b/Java-Interview/src/test/java/com/crossoverjie/algorithm/HappyNumTest.java @@ -0,0 +1,28 @@ +package com.crossoverjie.algorithm; + +import org.junit.Assert; +import org.junit.Test; + +public class HappyNumTest { + @Test + public void isHappy() throws Exception { + HappyNum happyNum = new HappyNum() ; + boolean happy = happyNum.isHappy(19); + Assert.assertEquals(happy,true); + } + + @Test + public void isHappy2() throws Exception { + HappyNum happyNum = new HappyNum() ; + boolean happy = happyNum.isHappy(11); + Assert.assertEquals(happy,false); + } + + @Test + public void isHappy3() throws Exception { + HappyNum happyNum = new HappyNum() ; + boolean happy = happyNum.isHappy(100); + System.out.println(happy); + } + +} \ No newline at end of file diff --git a/Java-Interview/src/test/java/com/crossoverjie/algorithm/LinkLoopTest.java b/Java-Interview/src/test/java/com/crossoverjie/algorithm/LinkLoopTest.java new file mode 100644 index 0000000..5fa0e84 --- /dev/null +++ b/Java-Interview/src/test/java/com/crossoverjie/algorithm/LinkLoopTest.java @@ -0,0 +1,62 @@ +package com.crossoverjie.algorithm; + +import org.junit.Assert; +import org.junit.Test; + +public class LinkLoopTest { + + /** + * 无环 + * @throws Exception + */ + @Test + public void isLoop() throws Exception { + LinkLoop.Node node3 = new LinkLoop.Node("3"); + LinkLoop.Node node2 = new LinkLoop.Node("2") ; + LinkLoop.Node node1 = new LinkLoop.Node("1") ; + + node1.next = node2 ; + node2.next = node3 ; + + LinkLoop linkLoop = new LinkLoop() ; + boolean loop = linkLoop.isLoop(node1); + Assert.assertEquals(loop,false); + } + + /** + * 有环 + * @throws Exception + */ + @Test + public void isLoop2() throws Exception { + LinkLoop.Node node3 = new LinkLoop.Node("3"); + LinkLoop.Node node2 = new LinkLoop.Node("2") ; + LinkLoop.Node node1 = new LinkLoop.Node("1") ; + + node1.next = node2 ; + node2.next = node3 ; + node3.next = node1 ; + + LinkLoop linkLoop = new LinkLoop() ; + boolean loop = linkLoop.isLoop(node1); + Assert.assertEquals(loop,true); + } + + /** + * 无环 + * @throws Exception + */ + @Test + public void isLoop3() throws Exception { + LinkLoop.Node node2 = new LinkLoop.Node("2") ; + LinkLoop.Node node1 = new LinkLoop.Node("1") ; + + node1.next = node2 ; + + + LinkLoop linkLoop = new LinkLoop() ; + boolean loop = linkLoop.isLoop(node1); + Assert.assertEquals(loop,false); + } + +} \ No newline at end of file diff --git a/Java-Interview/src/test/java/com/crossoverjie/algorithm/MergeTwoSortedListsTest.java b/Java-Interview/src/test/java/com/crossoverjie/algorithm/MergeTwoSortedListsTest.java new file mode 100644 index 0000000..72b21ba --- /dev/null +++ b/Java-Interview/src/test/java/com/crossoverjie/algorithm/MergeTwoSortedListsTest.java @@ -0,0 +1,93 @@ +package com.crossoverjie.algorithm; + +import com.crossoverjie.algorithm.MergeTwoSortedLists.ListNode; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +public class MergeTwoSortedListsTest { + MergeTwoSortedLists mergeTwoSortedLists ; + @Before + public void setUp() throws Exception { + mergeTwoSortedLists = new MergeTwoSortedLists(); + } + + @Test + public void mergeTwoLists() throws Exception { + ListNode l1 = new ListNode(1) ; + ListNode l1_2 = new ListNode(4); + l1.next = l1_2 ; + ListNode l1_3 = new ListNode(5) ; + l1_2.next = l1_3 ; + + ListNode l2 = new ListNode(1) ; + ListNode l2_2 = new ListNode(3) ; + l2.next = l2_2 ; + ListNode l2_3 = new ListNode(6) ; + l2_2.next = l2_3 ; + ListNode l2_4 = new ListNode(9) ; + l2_3.next = l2_4 ; + ListNode listNode = mergeTwoSortedLists.mergeTwoLists(l1, l2); + + + ListNode node1 = new ListNode(1) ; + ListNode node2 = new ListNode(1); + node1.next = node2; + ListNode node3 = new ListNode(3) ; + node2.next= node3 ; + ListNode node4 = new ListNode(4) ; + node3.next = node4 ; + ListNode node5 = new ListNode(5) ; + node4.next = node5 ; + ListNode node6 = new ListNode(6) ; + node5.next = node6 ; + ListNode node7 = new ListNode(9) ; + node6.next = node7 ; + Assert.assertEquals(node1.toString(),listNode.toString()); + + + } + + @Test + public void mergeTwoLists2() throws Exception { + + ListNode l2 = new ListNode(1) ; + ListNode l2_2 = new ListNode(3) ; + l2.next = l2_2 ; + ListNode l2_3 = new ListNode(6) ; + l2_2.next = l2_3 ; + ListNode l2_4 = new ListNode(9) ; + l2_3.next = l2_4 ; + ListNode listNode = mergeTwoSortedLists.mergeTwoLists(null, l2); + + System.out.println(listNode.toString()); + + + } + + @Test + public void mergeTwoLists3() throws Exception { + + ListNode l2 = new ListNode(1) ; + ListNode l2_2 = new ListNode(3) ; + l2.next = l2_2 ; + ListNode l2_3 = new ListNode(6) ; + l2_2.next = l2_3 ; + ListNode l2_4 = new ListNode(9) ; + l2_3.next = l2_4 ; + ListNode listNode = mergeTwoSortedLists.mergeTwoLists(l2, null); + + + ListNode node1 = new ListNode(1) ; + ListNode node2 = new ListNode(3); + node1.next = node2; + ListNode node3 = new ListNode(6) ; + node2.next= node3 ; + ListNode node4 = new ListNode(9) ; + node3.next = node4 ; + + Assert.assertEquals(node1.toString(),listNode.toString()); + + } + +} \ No newline at end of file diff --git a/Java-Interview/src/test/java/com/crossoverjie/algorithm/ReverseNodeTest.java b/Java-Interview/src/test/java/com/crossoverjie/algorithm/ReverseNodeTest.java new file mode 100644 index 0000000..301f1a0 --- /dev/null +++ b/Java-Interview/src/test/java/com/crossoverjie/algorithm/ReverseNodeTest.java @@ -0,0 +1,66 @@ +package com.crossoverjie.algorithm; + +import org.junit.Test; +import static com.crossoverjie.algorithm.ReverseNode.Node; + +public class ReverseNodeTest { + + @Test + public void reverseNode1() throws Exception { + ReverseNode.Node node4 = new Node<>("4",null) ; + Node node3 = new Node<>("3",node4); + Node node2 = new Node<>("2",node3); + Node node1 = new Node("1",node2) ; + + ReverseNode reverseNode = new ReverseNode() ; + reverseNode.reverseNode1(node1); + } + + @Test + public void reverseNode12() throws Exception { + + Node node1 = new Node("1",null) ; + + ReverseNode reverseNode = new ReverseNode() ; + reverseNode.reverseNode1(node1); + } + + @Test + public void reverseNode13() throws Exception { + + Node node1 = null ; + + ReverseNode reverseNode = new ReverseNode() ; + reverseNode.reverseNode1(node1); + } + + + /** + * 头插法 + * @throws Exception + */ + @Test + public void reverseHead21() throws Exception { + Node node4 = new Node<>("4",null) ; + Node node3 = new Node<>("3",node4); + Node node2 = new Node<>("2",node3); + Node node1 = new Node("1",node2) ; + + ReverseNode reverseNode = new ReverseNode() ; + reverseNode.reverseNode(node1); + + } + + + @Test + public void recNodeTest31(){ + Node node4 = new Node<>("4",null) ; + Node node3 = new Node<>("3",node4); + Node node2 = new Node<>("2",node3); + Node node1 = new Node("1",node2) ; + + ReverseNode reverseNode = new ReverseNode() ; + reverseNode.recNode(node1); + } + +} \ No newline at end of file diff --git a/Java-Interview/src/test/java/com/crossoverjie/algorithm/TwoStackQueueTest.java b/Java-Interview/src/test/java/com/crossoverjie/algorithm/TwoStackQueueTest.java new file mode 100644 index 0000000..dc0cda8 --- /dev/null +++ b/Java-Interview/src/test/java/com/crossoverjie/algorithm/TwoStackQueueTest.java @@ -0,0 +1,36 @@ +package com.crossoverjie.algorithm; + +import org.junit.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class TwoStackQueueTest { + private final static Logger LOGGER = LoggerFactory.getLogger(TwoStackQueueTest.class); + @Test + public void queue(){ + TwoStackQueue twoStackQueue = new TwoStackQueue() ; + twoStackQueue.appendTail("1") ; + twoStackQueue.appendTail("2") ; + twoStackQueue.appendTail("3") ; + twoStackQueue.appendTail("4") ; + twoStackQueue.appendTail("5") ; + + + int size = twoStackQueue.getSize(); + + for (int i = 0; i< size ; i++){ + LOGGER.info(twoStackQueue.deleteHead()); + } + + LOGGER.info("========第二次添加========="); + + twoStackQueue.appendTail("6") ; + + size = twoStackQueue.getSize(); + + for (int i = 0; i< size ; i++){ + LOGGER.info(twoStackQueue.deleteHead()); + } + } + +} \ No newline at end of file diff --git a/Java-Interview/src/test/java/com/crossoverjie/algorithm/TwoSumTest.java b/Java-Interview/src/test/java/com/crossoverjie/algorithm/TwoSumTest.java new file mode 100644 index 0000000..75c0f2a --- /dev/null +++ b/Java-Interview/src/test/java/com/crossoverjie/algorithm/TwoSumTest.java @@ -0,0 +1,25 @@ +package com.crossoverjie.algorithm; + +import com.alibaba.fastjson.JSON; +import org.junit.Test; + +public class TwoSumTest { + @Test + public void getTwo1() throws Exception { + TwoSum twoSum = new TwoSum() ; + int[] nums ={1,3,5,7}; + int[] two1 = twoSum.getTwo1(nums, 12); + System.out.println(JSON.toJSONString(two1)); + + } + + @Test + public void getTwo2(){ + TwoSum twoSum = new TwoSum() ; + int[] nums ={1,3,5,7}; + int[] two = twoSum.getTwo2(nums, 10); + System.out.println(JSON.toJSONString(two)); + + } + +} \ No newline at end of file diff --git a/Java-Interview/src/test/java/com/crossoverjie/proxy/JDKProxyTest.java b/Java-Interview/src/test/java/com/crossoverjie/proxy/JDKProxyTest.java new file mode 100644 index 0000000..56aaab4 --- /dev/null +++ b/Java-Interview/src/test/java/com/crossoverjie/proxy/JDKProxyTest.java @@ -0,0 +1,44 @@ +package com.crossoverjie.proxy; + +import com.crossoverjie.proxy.jdk.CustomizeHandle; +import com.crossoverjie.proxy.jdk.ISubject; +import com.crossoverjie.proxy.jdk.impl.ISubjectImpl; +import org.junit.Test; +import sun.misc.ProxyGenerator; + +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.lang.reflect.Proxy; + +/** + * Function: JDK 代理单测 + * + * @author crossoverJie + * Date: 23/12/2017 22:40 + * @since JDK 1.8 + */ +public class JDKProxyTest { + + @Test + public void test(){ + CustomizeHandle handle = new CustomizeHandle(ISubjectImpl.class) ; + ISubject subject = (ISubject) Proxy.newProxyInstance(JDKProxyTest.class.getClassLoader(), new Class[]{ISubject.class}, handle); + subject.execute() ; + } + + @Test + public void clazzTest(){ + byte[] proxyClassFile = ProxyGenerator.generateProxyClass( + "$Proxy1", new Class[]{ISubject.class}, 1); + try { + FileOutputStream out = new FileOutputStream("/Users/chenjie/Documents/$Proxy1.class") ; + out.write(proxyClassFile); + out.close(); + } catch (FileNotFoundException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + } +} diff --git a/TIJ4-code/pom.xml b/TIJ4-code/pom.xml index 13dbf33..027f3a7 100644 --- a/TIJ4-code/pom.xml +++ b/TIJ4-code/pom.xml @@ -8,7 +8,7 @@ 1.0-SNAPSHOT 4.0.0 - + pom TIJ4-code diff --git a/TIJ4-code/src/main/java/annotations/ExtractInterface.java b/TIJ4-code/src/main/java/annotations/ExtractInterface.java new file mode 100644 index 0000000..d53e3a0 --- /dev/null +++ b/TIJ4-code/src/main/java/annotations/ExtractInterface.java @@ -0,0 +1,15 @@ +package annotations; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Created by zhangchunhui on 2018/7/23. + */ +@Target(ElementType.TYPE) +@Retention(RetentionPolicy.SOURCE) +public @interface ExtractInterface { + public String value(); +} diff --git a/TIJ4-code/src/main/java/annotations/InterfaceExtractorProcessor.java b/TIJ4-code/src/main/java/annotations/InterfaceExtractorProcessor.java new file mode 100644 index 0000000..d92320f --- /dev/null +++ b/TIJ4-code/src/main/java/annotations/InterfaceExtractorProcessor.java @@ -0,0 +1,9 @@ +package annotations; + + + +/** + * Created by zhangchunhui on 2018/7/23. + */ +public class InterfaceExtractorProcessor { +} diff --git a/TIJ4-code/src/main/java/annotations/Multiplier.java b/TIJ4-code/src/main/java/annotations/Multiplier.java new file mode 100644 index 0000000..a13cfdc --- /dev/null +++ b/TIJ4-code/src/main/java/annotations/Multiplier.java @@ -0,0 +1,26 @@ +package annotations; + +/** + * Created by zhangchunhui on 2018/7/23. + */ +@ExtractInterface("IMultiplier") +public class Multiplier { + public int multiply(int x, int y) { + int total = 0; + for (int i = 0; i < x; i++) { + total = add(total, y); + } + return total; + } + + private int add(int x, int y) { + return x + y; + } + + public static void main(String[] args) { + Multiplier m = new Multiplier(); + System.out.println("11*16 = " + m.multiply(11, 16)); + } + + +} diff --git a/TIJ4-code/src/main/java/annotations/annotations.md b/TIJ4-code/src/main/java/annotations/annotations.md new file mode 100644 index 0000000..77e95a1 --- /dev/null +++ b/TIJ4-code/src/main/java/annotations/annotations.md @@ -0,0 +1,2 @@ +## 注解 +* 注解(也被称为元数据)为我们在代码中添加信息提供了一种形式化的方法,使我们可以在稍后某个时刻非常方便的使用这些数据。 diff --git a/TIJ4-code/src/main/java/annotations/database/Member.java b/TIJ4-code/src/main/java/annotations/database/Member.java index 95859b2..a4f3e51 100644 --- a/TIJ4-code/src/main/java/annotations/database/Member.java +++ b/TIJ4-code/src/main/java/annotations/database/Member.java @@ -1,5 +1,7 @@ package annotations.database; +import java.util.Date; + /** * Created by zhangchunhui on 2018/7/23. */ @@ -12,6 +14,11 @@ public class Member { String lastName; @SQLInteger Integer age; + + @SQLDouble(size = 10,d=6) + float weight; + @SQLDate + Date birthDay; @SQLString(value = 30, contraints = @Constraints(primaryKey = true)) String handle; static int memberCount; @@ -36,6 +43,10 @@ public static int getMemberCount() { return memberCount; } + public float getWeight() { + return weight; + } + @Override public String toString() { return "Member{" + diff --git a/TIJ4-code/src/main/java/annotations/database/SQLDate.java b/TIJ4-code/src/main/java/annotations/database/SQLDate.java new file mode 100644 index 0000000..66921ab --- /dev/null +++ b/TIJ4-code/src/main/java/annotations/database/SQLDate.java @@ -0,0 +1,16 @@ +package annotations.database; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Created by zhangchunhui on 2018/7/22. + */ +@Target(ElementType.FIELD) +@Retention(RetentionPolicy.RUNTIME) +public @interface SQLDate { + String name() default ""; + Constraints contraints() default @Constraints; +} diff --git a/TIJ4-code/src/main/java/annotations/database/SQLDouble.java b/TIJ4-code/src/main/java/annotations/database/SQLDouble.java new file mode 100644 index 0000000..e63d49e --- /dev/null +++ b/TIJ4-code/src/main/java/annotations/database/SQLDouble.java @@ -0,0 +1,18 @@ +package annotations.database; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Created by zhangchunhui on 2018/7/22. + */ +@Target(ElementType.FIELD) +@Retention(RetentionPolicy.RUNTIME) +public @interface SQLDouble { + int size() default 0; //长度 + int d() default 0;//小数精度 + String name() default ""; + Constraints contraints() default @Constraints; +} diff --git a/TIJ4-code/src/main/java/annotations/database/TableCreator.java b/TIJ4-code/src/main/java/annotations/database/TableCreator.java index 096a27e..b8ebc61 100644 --- a/TIJ4-code/src/main/java/annotations/database/TableCreator.java +++ b/TIJ4-code/src/main/java/annotations/database/TableCreator.java @@ -51,6 +51,24 @@ public static void main(String[] args) throws Exception { } columnDefs.add(columnName + " VARCHAR(" + sqlString.value() + ")" + getConstraints(sqlString.contraints())); } + if (anns[0] instanceof SQLDouble) { + SQLDouble sqlDouble = (SQLDouble) anns[0]; + if (sqlDouble.name().length() < 1) { + columnName = field.getName().toUpperCase(); + } else { + columnName = sqlDouble.name(); + } + columnDefs.add(columnName + " decimal(" + sqlDouble.size()+","+sqlDouble.d() + ")" + getConstraints(sqlDouble.contraints())); + } + if (anns[0] instanceof SQLDate) { + SQLDate sqlDate = (SQLDate) anns[0]; + if (sqlDate.name().length() < 1) { + columnName = field.getName().toUpperCase(); + } else { + columnName = sqlDate.name(); + } + columnDefs.add(columnName + " datetime "+ getConstraints(sqlDate.contraints())); + } StringBuilder creatCommand = new StringBuilder("CREATE TABLE " + tableName + "("); for (String colemnDef : columnDefs) { creatCommand.append("\n " + colemnDef + ","); diff --git a/design-pattern/src/main/java/README.md b/design-pattern/src/main/java/README.md new file mode 100644 index 0000000..40a53d7 --- /dev/null +++ b/design-pattern/src/main/java/README.md @@ -0,0 +1,38 @@ +## 一.设计模式定义(Design Patterns) +设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。 +使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 + 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。 + 项目中合理的运用设计模式可以完美的解决很多问题,每种模式在现在中都有相应的原理来与之对应,每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的核心解决方案,这也是它能被广泛应用的原因。 + +## 二.设计模式的分类 +总体来说设计模式分为三大类: +* 创建型模式(Creational),共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 +* 结构型模式(Structural),共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 +* 行为型模式(Behavioral),共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。 +* 其实还有两类:并发型模式和线程池模式。 + +## 三、设计模式的六大原则 +* 1、开闭原则(Open Close Principle) +开闭原则就是说对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。所以一句话概括就是:为了使程序的扩展性好,易于维护和升级。想要达到这样的效果,我们需要使用接口和抽象类,后面的具体设计中我们会提到这点。 +* 2、里氏代换原则(Liskov Substitution Principle) +里氏代换原则(Liskov Substitution Principle LSP)面向对象设计的基本原则之一。 里氏代换原则中说,任何基类可以出现的地方,子类一定可以出现。 LSP是继承复用的基石,只有当衍生类可以替换掉基类,软件单位的功能不受到影响时,基类才能真正被复用,而衍生类也能够在基类的基础上增加新的行为。里氏代换原则是对“开-闭”原则的补充。实现“开-闭”原则的关键步骤就是抽象化。而基类与子类的继承关系就是抽象化的具体实现,所以里氏代换原则是对实现抽象化的具体步骤的规范。—— From Baidu 百科 +* 3、依赖倒转原则(Dependence Inversion Principle) +这个是开闭原则的基础,具体内容:真对接口编程,依赖于抽象而不依赖于具体。 +* 4、接口隔离原则(Interface Segregation Principle) +这个原则的意思是:使用多个隔离的接口,比使用单个接口要好。还是一个降低类之间的耦合度的意思,从这儿我们看出,其实设计模式就是一个软件的设计思想,从大型软件架构出发,为了升级和维护方便。所以上文中多次出现:降低依赖,降低耦合。 +* 5、迪米特法则(最少知道原则)(Demeter Principle) +为什么叫最少知道原则,就是说:一个实体应当尽量少的与其他实体之间发生相互作用,使得系统功能模块相对独立。 +* 6、合成复用原则(Composite Reuse Principle) +原则是尽量使用合成/聚合的方式,而不是使用继承。 + +## 设计原则:(重要) +* 1.逻辑代码独立到单独的方法中,注重封装性--易读,易复用。 + 不要在一个方法中,写下上百行的逻辑代码。 + 把各小逻辑代码独立出来,写于其它方法中,易读其可重复调用。 +* 2.写类,写方法,写功能时,应考虑其移植性,复用性:防止一次性代码! + 是否可以拿到其它同类事物中应该?是否可以拿到其它系统中应该? +* 3.熟练运用继承的思想: + 找出应用中相同之处,且不容易发生变化的东西,把它们抽取到抽象类中,让子类去继承它们; + 继承的思想,也方便将自己的逻辑建立于别人的成果之上。 + 如ImageField extends JTextField; + 熟练运用接口的思想:找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起。 \ No newline at end of file diff --git a/design-pattern/src/main/java/behavioral/ObserverPattern.java b/design-pattern/src/main/java/behavioral/ObserverPattern.java index 4654d22..242d110 100644 --- a/design-pattern/src/main/java/behavioral/ObserverPattern.java +++ b/design-pattern/src/main/java/behavioral/ObserverPattern.java @@ -9,7 +9,7 @@ * Created by 张春辉 on 2018年5月16日. *

* 观察者模式定义了一种一对多的依赖关系,让多个观察者对象 - * 同时监听某一个主题对象。这个主题对象在状态发生变化是, + * 同时监听某一个主题对象。这个主题对象在状态发生变化时, * 会通知所有观察者对象,使他们能够自动更新自己。 *

大白话:  *其实就是发布订阅模式,发布者发布信息,订阅者获取信息,订阅了就能收到信息,没订阅就收不到信息。 diff --git a/design-pattern/src/main/java/behavioral/strategy/Duck.java b/design-pattern/src/main/java/behavioral/strategy/Duck.java new file mode 100644 index 0000000..d7065da --- /dev/null +++ b/design-pattern/src/main/java/behavioral/strategy/Duck.java @@ -0,0 +1,32 @@ +package behavioral.strategy; + +import behavioral.strategy.fly.FlyBehavior; +import behavioral.strategy.quack.QuackBehavior; + +/** + * 鸭子抽象类 + * Created by zhangchunhui on 2018/7/28. + */ +public abstract class Duck { + FlyBehavior flyBehavior; + QuackBehavior quackBehavior; + + public Duck(){} + public abstract void swim(); + + public void performFly(){ + flyBehavior.fly(); + } + + public void performQuack(){ + quackBehavior.quack(); + } + + public void setFlyBehavior(FlyBehavior flyBehavior) { + this.flyBehavior = flyBehavior; + } + + public void setQuackBehavior(QuackBehavior quackBehavior) { + this.quackBehavior = quackBehavior; + } +} diff --git a/design-pattern/src/main/java/behavioral/strategy/STRATEGY.md b/design-pattern/src/main/java/behavioral/strategy/STRATEGY.md new file mode 100644 index 0000000..e63b746 --- /dev/null +++ b/design-pattern/src/main/java/behavioral/strategy/STRATEGY.md @@ -0,0 +1,245 @@ +## 行为型设计模式-策略模式(Strategy Pattern) +#### 把很简单的东西搞得那么复杂,一次性代码,设计模式优势的实例说明:(策略模式) +说明:模拟鸭子游戏的应用程序,要求:游戏中会出现各种颜色外形的鸭子,一边游泳戏水,一边呱呱叫。 +* 第一种方法:(一次性代码) +直接编写出各种鸭子的类:MallardDuck//野鸭,RedheadDuck//红头鸭, +各类有三个方法: +quack():叫的方法 +swim():游水的方法 +display():外形的方法 + +* 第二种方法:运用继承的特性,将其中共同的部分提升出来,避免重复编程。 +即:设计一个鸭子的超类(Superclass),并让各种鸭子继承这个超类。 +```java +public abstract class Duck{ + public void quack(){ //呱呱叫 + System.out.println("呱呱叫"); + } + public void swim(){ //游泳 + System.out.println("游泳"); + } + public abstract void display(); /*因为外观不一样,让子类自己去决定了。*/ +} +``` +对于它的子类只需简单的继承就可以了,并实现自己的display()方法。 +```java +//野鸭 + public class MallardDuck extends Duck{ + public void display(){ + System.out.println("野鸭的颜色..."); + } + } +//红头鸭 + public class RedheadDuck extends Duck{ + public void display(){ + System.out.println("红头鸭的颜色..."); + } +} +``` +不幸的是,现在客户又提出了新的需求,想让鸭子飞起来。这个对于我们OO程序员,在简单不过了,在超类中在加一 +个方法就可以了。 +```java +public abstract class Duck{ + public void quack(){ //呱呱叫 + System.out.println("呱呱叫"); + } + public void swim(){ //游泳 + System.out.println(" 游泳"); + } + public abstract void display(); /*因为外观不一样,让子类自己去决定了。*/ + public void fly(){ + System.out.println("飞吧!鸭子"); + } +} +``` +对于不能飞的鸭子,在子类中只需简单的覆盖。 +```java +//残废鸭 + public class DisabledDuck extends Duck{ + public void display(){ + System.out.println("残废鸭的颜色..."); + } + public void fly(){ + //覆盖,变成什么事都不做。 + } +} +``` +其它会飞的鸭子不用覆盖。 +这样所有的继承这个超类的鸭子都会fly了。但是问题又出来了,客户又提出有的鸭子会飞,有的不能飞。 +>点评:对于上面的设计,你可能发现一些弊端,如果超类有新的特性,子类都必须变动,这是我们开发最不喜欢看到的,一个类变让另一个类也跟着变,这有点不符合OO设计了。这样很显然的耦合了一起。利用继承-->耦合度太高了. +* 第三种方法:用接口改进. +我们把容易引起变化的部分提取出来并封装之,来应付以后的变法。虽然代码量加大了,但可用性提高了,耦合度也降低了。 +我们把Duck中的fly方法和quack提取出来。 +```java +public interface Flyable{ + public void fly(); +} +public interface Quackable{ + public void quack(); +} +``` +最后Duck的设计成为: +```java +public class Duck{ + public void swim(){ //游泳 + System.out.println(" 游泳"); + } + public abstract void display(); /*因为外观不一样,让子类自 己去决定了。*/ +} +``` +而MallardDuck,RedheadDuck,DisabledDuck 就可以写成为: +```java +//野鸭 + public class MallardDuck extends Duck implements Flyable,Quackable{ + public void display(){ + System.out.println("野鸭的颜色..."); + } + public void fly(){ + //实现该方法 + } + public void quack(){ + //实现该方法 + } + } +//红头鸭 + public class RedheadDuck extends Duck implements Flyable,Quackable{ + public void display(){ + System.out.println("红头鸭的颜色..."); + } + public void fly(){ + //实现该方法 + } + public void quack(){ + //实现该方法 + } +} +//残废鸭 只实现Quackable(能叫不能飞) + public class DisabledDuck extends Duck implements Quackable{ + public void display(){ + System.out.println("残废鸭的颜色..."); + } + public void quack(){ + //实现该方法 + } +} +``` +>点评: +好处:这样已设计,我们的程序就降低了它们之间的耦合。 +不足:Flyable和 Quackable接口一开始似乎还挺不错的,解决了问题(只有会飞到鸭子才实现 Flyable),但是Java接口不具有实现代码,所以实现接口无法达到代码的复用。 +* 第四种方法: +对上面各方式的总结: +继承的好处:让共同部分,可以复用.避免重复编程. +继承的不好:耦合性高.一旦超类添加一个新方法,子类都继承,拥有此方法, + 若子类相当部分不实现此方法,则要进行大批量修改. + 继承时,子类就不可继承其它类了. +接口的好处:解决了继承耦合性高的问题. + 且可让实现类,继承或实现其它类或接口. +接口的不好:不能真正实现代码的复用.可用以下的策略模式来解决. + +#### ------------------------- Strategy Pattern(策略模式) ------------------------- +我们有一个设计原则: +找出应用中相同之处,且不容易发生变化的东西,把它们抽取到抽象类中,让子类去继承它们; +找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起。 -->important. +现在,为了要分开“变化和不变化的部分”,我们准备建立两组类(完全远离Duck类),一个是"fly"相关的,另一个 +是“quack”相关的,每一组类将实现各自的动作。 +比方说,我们可能有一个类实现“呱呱叫”,另一个类实现“吱吱叫”,还有一个类实现“安静”。 +首先写两个接口。FlyBehavior(飞行行为)和QuackBehavior(叫的行为). +```java +public interface FlyBehavior{ + public void fly(); + } + public interface QuackBehavior{ + public void quack(); + } +``` + 我们在定义一些针对FlyBehavior的具体实现。 + ```java + public class FlyWithWings implements FlyBehavior{ + public void fly(){ + //实现了所有有翅膀的鸭子飞行行为。 + } + } +public class FlyNoWay implements FlyBehavior{ + public void fly(){ + //什么都不做,不会飞 + } + } +``` +针对QuackBehavior的几种具体实现。 +```java +public class Quack implements QuackBehavior{ + public void quack(){ + //实现呱呱叫的鸭子 + } +} + +public class Squeak implements QuackBehavior{ + public void quack(){ + //实现吱吱叫的鸭子 + } +} + +public class MuteQuack implements QuackBehavior{ + public void quack(){ + //什么都不做,不会叫 + } +} +``` + +> 点评一: +这样的设计,可以让飞行和呱呱叫的动作被其他的对象复用,因为这些行为已经与鸭子类无关了。 +而我们增加一些新的行为,不会影响到既有的行为类,也不会影响“使用”到飞行行为的鸭子类。 + +最后我们看看Duck 如何设计。 +```java +public abstract class Duck{ + //--------->在抽象类中,声明各接口,定义各接口对应的方法. + FlyBehavior flyBehavior;//接口 + QuackBehavior quackBehavior;//接口 + public Duck(){} + public abstract void display(); + public void swim(){ + //实现游泳的行为 + } + public void performFly(){ + flyBehavior.fly(); // -->由于是接口,会根据继承类实现的方式,而调用相应的方法. + } + public void performQuack(){ + quackBehavior.quack(); + } + } +``` +看看MallardDuck如何实现。 +----->通过构造方法,生成'飞','叫'具体实现类的实例,从而指定'飞','叫'的具体属性 +```java + public class MallardDuck extends Duck{ + public MallardDuck(){ + flyBehavior = new FlyWithWings(); + quackBehavior = new Quack(); + } + //因为MallardDuck 继承了Duck,所有具有flyBehavior 与quackBehavior 实例变量} + public void display(){ + //实现 + } + } +``` +这样就满足了即可以飞,又可以叫,同时展现自己的颜色了。 +这样的设计我们可以看到是把flyBehavior ,quackBehavior 的实例化写在子类了。我们还可以动态的来决定。 +我们只需在Duck中加上两个方法。 + +在构造方法中对属性进行赋值与用属性的setter的区别: +构造方法中对属性进行赋值:固定,不可变; +用属性的setter,可以在实例化对象后,动态的变化,比较灵活。 +```java +public class Duck{ + FlyBehavior flyBehavior;//接口 + QuackBehavior quackBehavior;//接口 + public void setFlyBehavior(FlyBehavior flyBehavior){ + this.flyBehavior = flyBehavior; + } + public void setQuackBehavior(QuackBehavior quackBehavior { + this.quackBehavior= quackBehavior; + } + } +``` + \ No newline at end of file diff --git a/design-pattern/src/main/java/behavioral/strategy/WildDuck.java b/design-pattern/src/main/java/behavioral/strategy/WildDuck.java new file mode 100644 index 0000000..4b6e6b2 --- /dev/null +++ b/design-pattern/src/main/java/behavioral/strategy/WildDuck.java @@ -0,0 +1,30 @@ +package behavioral.strategy; + +import behavioral.strategy.fly.FlyNoWay; +import behavioral.strategy.fly.FlyWithWing; +import behavioral.strategy.quack.QuackGua; +import behavioral.strategy.quack.QuackZhi; + +/** + * 野鸭 + * Created by zhangchunhui on 2018/7/28. + */ +public class WildDuck extends Duck{ + + public WildDuck(){ + this.flyBehavior = new FlyWithWing(); + this.quackBehavior = new QuackGua(); + } + @Override + public void swim() { + System.out.println("用脚丫游泳"); + } + + public static void main(String[] args) { + WildDuck wildDuck = new WildDuck(); + wildDuck.performFly(); + wildDuck.performQuack(); + wildDuck.setQuackBehavior(new QuackZhi()); + wildDuck.performQuack(); + } +} diff --git a/design-pattern/src/main/java/behavioral/strategy/fly/FlyBehavior.java b/design-pattern/src/main/java/behavioral/strategy/fly/FlyBehavior.java new file mode 100644 index 0000000..b344879 --- /dev/null +++ b/design-pattern/src/main/java/behavioral/strategy/fly/FlyBehavior.java @@ -0,0 +1,8 @@ +package behavioral.strategy.fly; + +/** + * Created by zhangchunhui on 2018/7/28. + */ +public interface FlyBehavior { + public void fly(); +} diff --git a/design-pattern/src/main/java/behavioral/strategy/fly/FlyNoWay.java b/design-pattern/src/main/java/behavioral/strategy/fly/FlyNoWay.java new file mode 100644 index 0000000..a390eb3 --- /dev/null +++ b/design-pattern/src/main/java/behavioral/strategy/fly/FlyNoWay.java @@ -0,0 +1,11 @@ +package behavioral.strategy.fly; + +/** + * Created by zhangchunhui on 2018/7/28. + */ +public class FlyNoWay implements FlyBehavior { + @Override + public void fly() { + + } +} diff --git a/design-pattern/src/main/java/behavioral/strategy/fly/FlyWithWing.java b/design-pattern/src/main/java/behavioral/strategy/fly/FlyWithWing.java new file mode 100644 index 0000000..e8def68 --- /dev/null +++ b/design-pattern/src/main/java/behavioral/strategy/fly/FlyWithWing.java @@ -0,0 +1,11 @@ +package behavioral.strategy.fly; + +/** + * Created by zhangchunhui on 2018/7/28. + */ +public class FlyWithWing implements FlyBehavior { + @Override + public void fly() { + System.out.println("fly with wing"); + } +} diff --git a/design-pattern/src/main/java/behavioral/strategy/quack/QuackBehavior.java b/design-pattern/src/main/java/behavioral/strategy/quack/QuackBehavior.java new file mode 100644 index 0000000..e7859c7 --- /dev/null +++ b/design-pattern/src/main/java/behavioral/strategy/quack/QuackBehavior.java @@ -0,0 +1,8 @@ +package behavioral.strategy.quack; + +/** + * Created by zhangchunhui on 2018/7/28. + */ +public interface QuackBehavior { + public void quack(); +} diff --git a/design-pattern/src/main/java/behavioral/strategy/quack/QuackGua.java b/design-pattern/src/main/java/behavioral/strategy/quack/QuackGua.java new file mode 100644 index 0000000..2b4ecc6 --- /dev/null +++ b/design-pattern/src/main/java/behavioral/strategy/quack/QuackGua.java @@ -0,0 +1,11 @@ +package behavioral.strategy.quack; + +/** + * Created by zhangchunhui on 2018/7/28. + */ +public class QuackGua implements QuackBehavior { + @Override + public void quack() { + System.out.println("呱呱叫"); + } +} diff --git a/design-pattern/src/main/java/behavioral/strategy/quack/QuackNoVoice.java b/design-pattern/src/main/java/behavioral/strategy/quack/QuackNoVoice.java new file mode 100644 index 0000000..ce3db0f --- /dev/null +++ b/design-pattern/src/main/java/behavioral/strategy/quack/QuackNoVoice.java @@ -0,0 +1,11 @@ +package behavioral.strategy.quack; + +/** + * Created by zhangchunhui on 2018/7/28. + */ +public class QuackNoVoice implements QuackBehavior { + @Override + public void quack() { + + } +} diff --git a/design-pattern/src/main/java/behavioral/strategy/quack/QuackZhi.java b/design-pattern/src/main/java/behavioral/strategy/quack/QuackZhi.java new file mode 100644 index 0000000..6ec314d --- /dev/null +++ b/design-pattern/src/main/java/behavioral/strategy/quack/QuackZhi.java @@ -0,0 +1,11 @@ +package behavioral.strategy.quack; + +/** + * Created by zhangchunhui on 2018/7/28. + */ +public class QuackZhi implements QuackBehavior { + @Override + public void quack() { + System.out.println("吱吱叫"); + } +} diff --git a/pom.xml b/pom.xml index c06465c..920628c 100644 --- a/pom.xml +++ b/pom.xml @@ -18,6 +18,7 @@ codemarks design-pattern TIJ4-code + Java-Interview From 1a2a906f18d75afa3fce3f2d91549a175a9600b7 Mon Sep 17 00:00:00 2001 From: cs45768 Date: Wed, 1 Aug 2018 23:59:21 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E5=A2=9E=E5=8A=A0Maven=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- settings.xml | 263 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 263 insertions(+) create mode 100644 settings.xml diff --git a/settings.xml b/settings.xml new file mode 100644 index 0000000..7f9c3e6 --- /dev/null +++ b/settings.xml @@ -0,0 +1,263 @@ + + + + + + + + C:\Users\zhang\.m2\repository + + + + + + + + + + + + + + + + + + + + + + + + + + aliyun + aliyun Maven + * + http://maven.aliyun.com/nexus/content/groups/public/ + + + + + + + + + + + +