From b255ca0eda59e101808528a18daa9d979de87afd Mon Sep 17 00:00:00 2001 From: AlexanderTUO <1599961496@qq.com> Date: Wed, 18 Dec 2019 21:54:49 +0800 Subject: [PATCH 1/4] Unsafe-008 --- week_02/08/Unsafe-008.md | 308 ++++++++++++++++++++++++++++++++++++ week_02/08/Unsafe-008.xmind | Bin 0 -> 46288 bytes 2 files changed, 308 insertions(+) create mode 100644 week_02/08/Unsafe-008.md create mode 100644 week_02/08/Unsafe-008.xmind diff --git a/week_02/08/Unsafe-008.md b/week_02/08/Unsafe-008.md new file mode 100644 index 0000000..3febcfd --- /dev/null +++ b/week_02/08/Unsafe-008.md @@ -0,0 +1,308 @@ +# 读源码--Unsafe(确实不懂,将彤哥的文章里的demo跑了一遍) + +## 获取unsafe的实例 + +### 源码获取实例 + +因为安全问题,getUnsafe方法只允许虚拟机内部调用,否则会抛出Unsafe异常 + +```java + @CallerSensitive + public static Unsafe getUnsafe() { + Class var0 = Reflection.getCallerClass(); + if (!VM.isSystemDomainLoader(var0.getClassLoader())) { + throw new SecurityException("Unsafe"); + } else { + return theUnsafe; + } + } +``` + +### 我们来获得实例 + +反射大法好 + +```java + public static void main(String[] args) throws NoSuchFieldException, IllegalAccessException, InstantiationException { + // 源码中theUnsafe字段的类型就是Unsafe + Field field = Unsafe.class.getDeclaredField("theUnsafe"); + field.setAccessible(true); + Unsafe unsafe = (Unsafe) field.get(null); + } +``` + +## 通过Unsafe实例化类 + +又增加了一种实例化类的方法,尽管应该不常用 + +```java +@Data +public class User { + private int age; + public User() { + this.age = 10; + } + + public int getAge() { + return this.age; + } +} + + User user = new User(); + System.out.println(user.age); + + //通过Unsafe的实例来实例化User类 + User user1 = (User) unsafe.allocateInstance(User.class); + System.out.println(user1.age); + +``` + +## 修改私有字段的值 + +通常情况下私有字段的值是不允许外部更改的,但Unsafe可以(反射大法也行) + +```java + User user2 = new User(); + Field age = user2.getClass().getDeclaredField("age"); + // objectFieldOffset获取字段的偏移值 + unsafe.putInt(user2,unsafe.objectFieldOffset(age),20); + System.out.println(user2.getAge()); +``` + +put系列方法 + +```java + /** + * 给字段赋值 + * @param var1 对象 + * @param var2 字段的偏移值 + * @param var4 新值 + */ + public native void putInt1(Object var1, long var2, int var4); +``` + + + +## 抛出checked异常 + +使用unsafe抛出异常时可以不用在方法签名上定义(有什么用?) + +```java + public static void readFileUnsafe() { + unsafe.throwException(new IOException()); + } +``` + +## 使用堆外内存 + +如果程序在运行过程中,内存不足,会频繁进行GC。此时可以考虑堆外内存,此内存不受jvm控制,使用完毕须释放 + +```java +public class OffHeapArray { + private static final int INT = 4; + private long size; + private long address; + + private static Unsafe unsafe; + // 静态块获取Unsafe实例 + static { + try { + Field field = Unsafe.class.getDeclaredField("theUnsafe"); + field.setAccessible(true); + unsafe = (Unsafe) field.get(null); + } catch (NoSuchFieldException e) { + e.printStackTrace(); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } + } + + // 构造方法,分配内存 + public OffHeapArray(long size) { + this.size = size; + address = unsafe.allocateMemory(size*INT); + } + + public int get(long i) { + return unsafe.getInt(address+i*INT); + } + + public void set(long i, int value) { + unsafe.putInt(address + i * INT, value); + } + + public long size() { + return size; + } + + public void freeMemory() { + unsafe.freeMemory(address); + } + + public static void main(String[] args) { + OffHeapArray offHeapArray = new OffHeapArray(4); + offHeapArray.set(0, 1); + offHeapArray.set(1, 2); + offHeapArray.set(2, 3); + offHeapArray.set(3, 4); + offHeapArray.set(2,5); + + int sum = 0; + for (int i = 0; i < offHeapArray.size(); i++) { + sum += offHeapArray.get(i); + } + System.out.println(sum); //12:1+2+4+5 + offHeapArray.freeMemory(); // 释放内存 + } + +} +``` + +## CompareAndSwap操作 + +暂时没接触也没用过,但感觉很厉害的样子。留个印象,运用与无锁算法,与java的悲观锁性比,它可利用CAS处理器提供极大的加速。 + +```java +public class Counter { + private volatile int count = 0; + private static long offset; + private static Unsafe unsafe; + + { + try { + Field field = Unsafe.class.getDeclaredField("theUnsafe"); + field.setAccessible(true); + unsafe = (Unsafe) field.get(null); + // 获取count字段的偏移地址,以便修改它 + offset = unsafe.objectFieldOffset(Counter.class.getDeclaredField("count")); + } catch (NoSuchFieldException e) { + e.printStackTrace(); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } + } + + /** + * 对比并替换字段的值 + * @param obj 实例 + * @param offset 字段的偏移地址 + * @param expect 期望值 + * @param update 更新值 + * @return 若期望值与字段当前值相等,则更新;否则不更新 + */ + public native boolean compareAndSwapInt(Object obj, long offset,int expect, int update); + + public void increment() { + int before = count; + // compareAndSwapInt中before的 + // before被赋于count的值后,若其他线程未对count做出修改,则此时before值与count当前值相同,则更新;否则befere重新赋值,直至更新成功 + while (!unsafe.compareAndSwapInt(this, offset, before, before + 1)) { + before = count; + } + } + + public int getCount() { + return count; + } + + public static void main(String[] args) throws InterruptedException { + Counter counter = new Counter(); + ExecutorService threadPool = Executors.newFixedThreadPool(100); // 线程池 + + // 100个线程各自增10000次 + IntStream.range(0,100) + .forEach(i->threadPool.submit(()->IntStream.range(0,10000) + .forEach(j->counter.increment()))); + + threadPool.shutdown(); + Thread.sleep(2000); + + System.out.println(counter.getCount()); //1000,000 + + } +} +``` + +## park/unpark + +当一个线程在等待某个操作时,JVM调用Unsafe的park方法来阻塞此线程。 + +当阻塞中的线程需要再次执行时,JVM调用Unsafe的unpark方法来唤醒此线程。 + +## 面试积累一波 + +实例化6大法 + +```java +public class InstantialTest { + private static Unsafe unsafe; + { + try { + Field field = Unsafe.class.getDeclaredField("theUnsafe"); + field.setAccessible(true); + unsafe = (Unsafe) field.get(null); + } catch (NoSuchFieldException e) { + e.printStackTrace(); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } + } + + + static class User implements Cloneable, Serializable { + private int age; + + public User() { + this.age = 10; + } + + @Override + protected Object clone() throws CloneNotSupportedException { + return super.clone(); + } + } + + private static User unSerializable(User user) throws IOException, ClassNotFoundException { + ObjectOutputStream outputStream = new ObjectOutputStream(new FileOutputStream("E://Project//JavaStudy//week_02//08//object.txt")); + outputStream.writeObject(user); + outputStream.close(); + + ObjectInputStream inputStream = new ObjectInputStream(new FileInputStream("E://Project//JavaStudy//week_02//08//object.txt")); + User user1 = (User) inputStream.readObject(); + inputStream.close(); + + return user1; + } + + public static void main(String[] args) throws IllegalAccessException, InstantiationException, NoSuchMethodException, InvocationTargetException, CloneNotSupportedException, IOException, ClassNotFoundException { + // new + User user = new User(); + + // Class + User user1 = User.class.newInstance(); + + // 反射 + User user2 = User.class.getConstructor().newInstance(); + + // clone + User user3 = (User) user.clone(); + + // 反序列化 + User user4 = unSerializable(user); + + // unsafe + User user5 = (User) unsafe.allocateInstance(User.class); + + System.out.println(user.age); + System.out.println(user1.age); + System.out.println(user2.age); + System.out.println(user3.age); + System.out.println(user4.age); + System.out.println(user5.age); + } +``` + + + + + diff --git a/week_02/08/Unsafe-008.xmind b/week_02/08/Unsafe-008.xmind new file mode 100644 index 0000000000000000000000000000000000000000..966b8747e647177909a04bfa8db5185106cebdfe GIT binary patch literal 46288 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 XoFvre&;|g2{yfaU004#Bf8G5*M9I{P literal 0 HcmV?d00001 From b4af3dff37b9c35578ac6de4bb8ace06c7f73ddb Mon Sep 17 00:00:00 2001 From: AlexanderTUO <1599961496@qq.com> Date: Sat, 21 Dec 2019 17:29:47 +0800 Subject: [PATCH 2/4] AtomicInteger-008 --- week_02/08/AtomicInteger-008.md | 121 +++++++++++++++++++++++++++++ week_02/08/AtomicInteger-008.xmind | Bin 0 -> 70468 bytes 2 files changed, 121 insertions(+) create mode 100644 week_02/08/AtomicInteger-008.md create mode 100644 week_02/08/AtomicInteger-008.xmind diff --git a/week_02/08/AtomicInteger-008.md b/week_02/08/AtomicInteger-008.md new file mode 100644 index 0000000..4662e07 --- /dev/null +++ b/week_02/08/AtomicInteger-008.md @@ -0,0 +1,121 @@ +# 读源码--AtomicInteger + +## 属性 + +unsafe属性:为了保证线程安全,AtomicIngeger的增减方法的底层都用到了Unsafe类的cas方法 + +```java +private static final Unsafe unsafe = Unsafe.getUnsafe(); +``` + +valueOffset属性:字段的偏移地址,在cas中用来得到当前字段的值 + +```java +private static final long valueOffset; +``` + +value属性:此处用volatile修饰,volatile,被称为“轻量级的synchronized”,但只能修饰变量。 + +```java +private volatile int value; +``` + +## 方法 + +AtomicInteger的实现方法模式基本一致,用一个方法说明,getAndSet方法 + +```java +public final int getAndSet(int newValue) { + return unsafe.getAndSetInt(this, valueOffset, newValue); +} +// get在前,返回值则为修改前的值;若get在后,则返回值为修改后的值 +public final int getAndSetInt(Object var1, long var2, int var4) { + int var5; + // 此处用到cas算法,保证线程安全 + do { + var5 = this.getIntVolatile(var1, var2); + } while(!this.compareAndSwapInt(var1, var2, var5, var4)); + + return var5; +} +``` + +## CAS + +### CAS概念 + +比较并交换,unsafe中有该方法,广泛应用与文字操作。CAS是乐观锁技术,当多个线程尝试更新同一个变量时,只有一个能更新成功,而其他线程都失败。失败的线程不会被挂起,而是被告知失败,重新尝试。 + +### CAS 缺点 + +1.循环时间长开销大 + +2.只能保证一个共享变量的原子操作 + +3.ABA问题。解决办法,版本控制。Java中提供了AtomicStampedReference通过控制变量值的版本来保证CAS的正确性。 + +## volatile + +### 特性 + +1.保证了不同线程对变量操作的内存可见性(可见性); + +2.禁止指令重排序(有序性) + +3.无法保证复合操作的原子性。要想保证原子性,只能借助于synchronized,Lock及原子操作了,如Atomic系列类 + +https://juejin.im/post/5a2b53b7f265da432a7b821c volatile面试强文 + +### 并发编程三大特性 + +1.原子性:Java中对基本数据类型的读取和赋值操作 + +2.可见性:Java利用volatile来提供可见性。变量被volatile修饰是,对它的修改会立即刷新到贮存;当其他线程需要读取该变量是,会从主存中共读取新值。 + +3.有序性:JMM允许编译器和处理器对指令重排序。对单线程没有影响,对多线程有影响/ + +```java +int a = 0; +bool flag = false; + +public void write() { + a = 2; //1 + flag = true; //2 +} + +public void multiply() { + if (flag) { //3 + int ret = a * a;//4 + } + +} +// 若线程1先执行write方法中flag=true;线程2执行multiply,线程1再执行a=2; +``` + +### 应用场景 + +1.状态量标记:标记为volatile可以保证修改对线程立即可见。比synchronized,Lock有一定的效率提升。 + +2.单例模式的实现 + +```java +class Singleton{ + // 可避免初始化操作的指令重排序 + private volatile static Singleton instance = null; + + private Singleton() { + + } + + public static Singleton getInstance() { + if(instance==null) { + synchronized (Singleton.class) { + if(instance==null) + instance = new Singleton(); + } + } + return instance; + } +} +``` + diff --git a/week_02/08/AtomicInteger-008.xmind b/week_02/08/AtomicInteger-008.xmind new file mode 100644 index 0000000000000000000000000000000000000000..31e4a9908227aa77bce5090216e7ac6c9aa120e4 GIT binary patch literal 70468 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 literal 0 HcmV?d00001 From 93a832425e80a6af10eefac43a43a1b41116c01d Mon Sep 17 00:00:00 2001 From: AlexanderTUO <1599961496@qq.com> Date: Sun, 22 Dec 2019 00:03:47 +0800 Subject: [PATCH 3/4] AtomicInteger-008 --- week_02/08/AtomicStampedReference-008.md | 263 ++++++++++++++++++++ week_02/08/AtomicStampedReference-008.xmind | Bin 0 -> 36329 bytes 2 files changed, 263 insertions(+) create mode 100644 week_02/08/AtomicStampedReference-008.md create mode 100644 week_02/08/AtomicStampedReference-008.xmind diff --git a/week_02/08/AtomicStampedReference-008.md b/week_02/08/AtomicStampedReference-008.md new file mode 100644 index 0000000..3614acb --- /dev/null +++ b/week_02/08/AtomicStampedReference-008.md @@ -0,0 +1,263 @@ +# 读源码--AtomicStampedReference + +## ABA问题 + +在CAS过程中,会出现ABA问题 + +```java +public class ABATest { + public static void main(String[] args) { + AtomicInteger atomicInteger = new AtomicInteger(1); + new Thread(() -> { + int value = atomicInteger.get(); + System.out.println("Thread 1 read value:"+value); + + LockSupport.parkNanos(100000000L); + if (atomicInteger.compareAndSet(value, 3)) { + System.out.println("Thread 1 update from " + value + " to 3"); + } else { + System.out.println("Thread 1 update fail !"); + } + }).start(); + + new Thread(() -> { + int value = atomicInteger.get(); + System.out.println("Thread 2 read value:" + value); + + if (atomicInteger.compareAndSet(value, 2)) { + System.out.println("Thread 2 update from "+value+" to 2"); + } + + value = atomicInteger.get(); + System.out.println("Thread 2 read value:"+value); + if (atomicInteger.compareAndSet(value, 1)) { + System.out.println("Thread 2 update from "+value+" to 3"); + } + }).start(); + } +} +``` + +结果 + +```java +Thread 1 read value:1 +Thread 2 read value:1 +Thread 2 update from 1 to 2 +Thread 2 read value:2 +Thread 2 update from 2 to 3 +Thread 1 update from 1 to 3 +``` + + + +## ABA危害 + +例子,一个无锁的栈结构 + +```java +public class ABATest1 { + static class Stack{ + private AtomicReference top = new AtomicReference(); + + static class Node { + int value; + Node next; + public Node(int value) { + this.value = value; + } + } + + // 出栈 + public Node pop() { + for (; ; ) { + // 获取栈顶节点 + Node t = top.get(); + if (t == null) { + return null; + } + + Node next = t.next; + // top指向栈顶的next + if (top.compareAndSet(t, next)) { + t.next = null; // next清空防止外面直接操作栈 + return t; + } + } + } + + public void push(Node node) { + for (; ; ) { + // 获取栈顶节点 + Node t = top.get(); + + node.next = t; + // 更新top指向node节点 + if (top.compareAndSet(t, node)) { + return; + } + + } + } + } + + public static void testStack() { + // 初始化栈top->1->2->3 + Stack stack = new Stack(); + stack.push(new Stack.Node(3)); + stack.push(new Stack.Node(2)); + stack.push(new Stack.Node(1)); + + new Thread(() ->{ + // 线程1出栈一个元素 + stack.pop(); + }).start(); + + new Thread(() ->{ + // 线程2出栈两个元素 + Stack.Node A = stack.pop(); + Stack.Node B = stack.pop(); + // 线程2入栈A元素 + stack.push(A); + }).start(); + + } + + public static void main(String[] args) { + testStack(); + } +} +``` + +初始化栈top->1->2->3 + +1).线程1出栈,在top.compareAndSet(t, next)暂停,未弹出节点1 + +2).线程2,出栈,弹出节点1,栈结构变为top->2->3 + +3).线程2,出栈,弹出节点2,栈结构变为top->3 + +4).线程2,入栈,添加节点1,栈结构变为top->1->3 + +5).线程1,弹出节点1,结果top->2 + +竟然不是top->3? + +因为线程1在第一步保持的next时节点2,所以它执行成功后top节点就指向节点2了 + +## ABA解决方法 + +1.版本号 + +2.不重复使用节点的引用。如上述节点1 + +3.直接操作元素而不是节点。 + +## AtomicStampedReference源码 + +### 内部类 + +```java + private static class Pair { + final T reference; //值 + final int stamp; //版本号 + private Pair(T reference, int stamp) { + this.reference = reference; + this.stamp = stamp; + } + static Pair of(T reference, int stamp) { + return new Pair(reference, stamp); + } + } +``` + +### 属性 + +```java +private volatile Pair pair; +``` + +### 构造器 + +```java + /** + * Creates a new {@code AtomicStampedReference} with the given + * initial values. + * + * @param initialRef the initial reference 初始引用 + * @param initialStamp the initial stamp 初始版本号 + */ + public AtomicStampedReference(V initialRef, int initialStamp) { + pair = Pair.of(initialRef, initialStamp); + } +``` + +### 改造ABA问题例子 + +```java +public class ABATest2 { + public static void main(String[] args) { + AtomicStampedReference atomicStampedReference = new AtomicStampedReference<>(1,1); + new Thread(() -> { + int[] stampHolder = new int[1]; + int value = atomicStampedReference.get(stampHolder); + int stamp = stampHolder[0]; + System.out.println("Thread 1 read value:"+value); + System.out.println("Thread 1 read stamp:"+stamp); + + LockSupport.parkNanos(100000000L); + + value = atomicStampedReference.get(stampHolder); + stamp = stampHolder[0]; + System.out.println("After parking,Thread 1 read value:"+value); + System.out.println("Thread 1 read stamp:"+stamp); // 版本号变为3了 + if (atomicStampedReference.compareAndSet(value,3,stamp,stamp+1)) { + System.out.println("Thread 1 update from " + value + " to 3"); + } else { + System.out.println("Thread 1 update fail !"); + } + }).start(); + + new Thread(() -> { + int[] stampHolder = new int[1]; + int value = atomicStampedReference.get(stampHolder); + int stamp = stampHolder[0]; + System.out.println("Thread 2 read value:" + value); + System.out.println("Thread 2 read stamp:"+stamp); + + if (atomicStampedReference.compareAndSet(value,2,stamp,stamp+1)) { + System.out.println("Thread 2 update from "+value+" to 2"); + } + + value = atomicStampedReference.get(stampHolder); + stamp = stampHolder[0]; + System.out.println("Thread 2 read value:"+value); + System.out.println("Thread 2 read stamp:"+stamp); + if (atomicStampedReference.compareAndSet(value,3,stamp,stamp+1)) { + System.out.println("Thread 2 update from "+value+" to 3"); + } + }).start(); + } +} +``` + +结果: + +```java +Thread 1 read value:1 +Thread 1 read stamp:1 +Thread 2 read value:1 +Thread 2 read stamp:1 +Thread 2 update from 1 to 2 +Thread 2 read value:2 +Thread 2 read stamp:2 +Thread 2 update from 2 to 3 +After parking,Thread 1 read value:3 +Thread 1 read stamp:3 +Thread 1 update from 3 to 3 +``` + + + + + diff --git a/week_02/08/AtomicStampedReference-008.xmind b/week_02/08/AtomicStampedReference-008.xmind new file mode 100644 index 0000000000000000000000000000000000000000..546f7251ef8d3f5564076e55ad4e55680a092981 GIT binary patch literal 36329 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 literal 0 HcmV?d00001 From 9128728ed15742b8ee951791ac6cee5c16ce4aa6 Mon Sep 17 00:00:00 2001 From: tuoyangkun <1599961496@qq.com> Date: Sun, 22 Dec 2019 16:22:52 +0800 Subject: [PATCH 4/4] LongAdder-008 --- week_02/08/LongAdder-008.md | 272 ++++++++++++++++++ week_02/08/LongAdder-008.xmind | Bin 0 -> 43581 bytes ...r\345\216\237\347\220\206\345\233\276.jpg" | Bin 0 -> 40553 bytes 3 files changed, 272 insertions(+) create mode 100644 week_02/08/LongAdder-008.md create mode 100644 week_02/08/LongAdder-008.xmind create mode 100644 "week_02/08/LongAdder\345\216\237\347\220\206\345\233\276.jpg" diff --git a/week_02/08/LongAdder-008.md b/week_02/08/LongAdder-008.md new file mode 100644 index 0000000..3572ad2 --- /dev/null +++ b/week_02/08/LongAdder-008.md @@ -0,0 +1,272 @@ +# LongAdder + +## 原理 + +在最初无竞争时,只更新base的值;有竞争时,通过分段的思想,让不同的线程更新不同的段,最后sum得到各个线程更新的结果。原理图如下: + +![LongAdder原理图](E:\BBBMyProject\JavaStudy\week_02\08\LongAdder原理图.jpg) + +## 内部类Cell + +LongAdder继承于Striped64,Striped的内部类Cell + +```java + @sun.misc.Contended static final class Cell { + volatile long value; + Cell(long x) { value = x; } + final boolean cas(long cmp, long val) { + // 用到Unsafe类的CAS方法 + return UNSAFE.compareAndSwapLong(this, valueOffset, cmp, val); + } + + // Unsafe mechanics + private static final sun.misc.Unsafe UNSAFE; + private static final long valueOffset; + static { + try { + UNSAFE = sun.misc.Unsafe.getUnsafe(); + Class ak = Cell.class; + valueOffset = UNSAFE.objectFieldOffset + (ak.getDeclaredField("value")); + } catch (Exception e) { + throw new Error(e); + } + } + } +``` + +## 主要属性 + +```java + + // 存储多个线程的Cell + transient volatile Cell[] cells; + // 基础值 + transient volatile long base; + // 锁,当扩容或创建新Cell时用到,0:无锁;1:有锁 + transient volatile int cellsBusy; +``` + +## 主要方法 + +add方法 + +```java + public void add(long x) { + // as保存cells + // b保存base值,v保存当前线程hash到Cell的值 + // m保存cells的长度-1 + // a当前线程hash到Cell + Cell[] as; long b, v; int m; Cell a; + // 但Cells为空时,首先执行casBase方法,若成功,则结束 + // 条件1:当cells不为空,说明cells已经创建,出现过竞争 + // 条件2:casBase执行失败,说明其他线程抢先修改过base,正在出现竞争 + if ((as = cells) != null || !casBase(b = base, b + x)) { + // true竞争不激烈 + // false竞争激烈,可能需要扩容 + boolean uncontended = true; + // 条件1:cells为空,说明正出现竞争,从上面条件2过来 + // 条件2:不可能出现 + // 条件3:当前线程对应的Cell为空,说明当前线程没有更新过Cell,需初始化一个Cell + // 条件4:cas失败,说明竞争激烈,多个线程hash到同一个Cell,应扩容 + if (as == null || (m = as.length - 1) < 0 || + (a = as[getProbe() & m]) == null || + !(uncontended = a.cas(v = a.value, v + x))) + longAccumulate(x, null, uncontended); + } + } +``` + +longAccumulate方法 + +```java + final void longAccumulate(long x, LongBinaryOperator fn, + boolean wasUncontended) { + int h; + if ((h = getProbe()) == 0) { + ThreadLocalRandom.current(); // force initialization + h = getProbe(); + wasUncontended = true; + } + boolean collide = false; // True if last slot nonempty + for (;;) { + Cell[] as; Cell a; int n; long v; + if ((as = cells) != null && (n = as.length) > 0) { + // 当前线程hash的Cell为空,创建一个新的Cell + if ((a = as[(n - 1) & h]) == null) { + if (cellsBusy == 0) { // Try to attach new Cell + Cell r = new Cell(x); // Optimistically create + if (cellsBusy == 0 && casCellsBusy()) { //casCellsBusy()加锁 + boolean created = false; + try { // Recheck under lock + Cell[] rs; int m, j; + // 这里一定要重新获取cells,因为as并不在锁定范围内 + if ((rs = cells) != null && + (m = rs.length) > 0 && + rs[j = (m - 1) & h] == null) { + rs[j] = r; + created = true; + } + } finally { + cellsBusy = 0; //释放锁 + } + if (created) + break; + continue; // Slot is now non-empty + } + } + collide = false; + } + else if (!wasUncontended) // CAS already known to fail + wasUncontended = true; // Continue after rehash + else if (a.cas(v = a.value, ((fn == null) ? v + x : + fn.applyAsLong(v, x)))) + break; + else if (n >= NCPU || cells != as) + collide = false; // At max size or stale + else if (!collide) + collide = true; + else if (cellsBusy == 0 && casCellsBusy()) { + try { + if (cells == as) { // Expand table unless stale + Cell[] rs = new Cell[n << 1]; + for (int i = 0; i < n; ++i) + rs[i] = as[i]; + cells = rs; + } + } finally { + cellsBusy = 0; + } + collide = false; + continue; // Retry with expanded table + } + h = advanceProbe(h); + } + else if (cellsBusy == 0 && cells == as && casCellsBusy()) { + boolean init = false; + try { // Initialize table + if (cells == as) { + Cell[] rs = new Cell[2]; + rs[h & 1] = new Cell(x); + cells = rs; + init = true; + } + } finally { + cellsBusy = 0; + } + if (init) + break; + } + else if (casBase(v = base, ((fn == null) ? v + x : + fn.applyAsLong(v, x)))) + break; // Fall back on using base + } + } +``` + +sum方法:将cells中的值累加起来 + +```java + public long sum() { + Cell[] as = cells; Cell a; + long sum = base; + if (as != null) { + for (int i = 0; i < as.length; ++i) { + if ((a = as[i]) != null) + sum += a.value; + } + } + return sum; + } +``` + +## LongAdder与AtomicLong比较 + +```java +public class LongAdderTest { + public static void main(String[] args) throws InterruptedException { + testAtomicLongAndLongAdder(1,10000000); + testAtomicLongAndLongAdder(10,10000000); + testAtomicLongAndLongAdder(20,10000000); + testAtomicLongAndLongAdder(40,10000000); + testAtomicLongAndLongAdder(80,10000000); + } + + public static void testAtomicLongAndLongAdder(final int threadCount,final int times) throws InterruptedException { + System.out.println("threadCount:"+threadCount+",times:"+times); + Long start = System.currentTimeMillis(); + testAtomicLong(threadCount,times); + System.out.println("AtomicLong elapse:"+(System.currentTimeMillis()-start)); + + Long start2 = System.currentTimeMillis(); + testLongAdder(threadCount,times); + System.out.println("LongAdder elapse:"+(System.currentTimeMillis()-start2)); + System.out.println("------------"); + } + + public static void testLongAdder(final int threadCount,final int times) throws InterruptedException { + LongAdder longAdder = new LongAdder(); + List list = new ArrayList<>(); + for (int i = 0; i < threadCount; i++) { + list.add(new Thread(()->{ + for (int j = 0; j < times; j++) { + longAdder.add(1); + } + })); + } + + for (Thread thread : list) { + thread.start(); + } + for (Thread thread : list) { + thread.join(); + } + } + + public static void testAtomicLong(final int threadCount,final int times) throws InterruptedException { + AtomicLong atomicLong = new AtomicLong(); + List list = new ArrayList<>(); + for (int i = 0; i < threadCount; i++) { + list.add(new Thread(()->{ + for (int j = 0; j < times; j++) { + atomicLong.incrementAndGet(); + } + })); + } + + for (Thread thread : list) { + thread.start(); + } + for (Thread thread : list) { + thread.join(); + } + } +} +``` + +结果: + +```java +threadCount:1,times:10000000 +AtomicLong elapse:93 +LongAdder elapse:85 +------------ +threadCount:10,times:10000000 +AtomicLong elapse:1854 +LongAdder elapse:195 +------------ +threadCount:20,times:10000000 +AtomicLong elapse:3776 +LongAdder elapse:390 +------------ +threadCount:40,times:10000000 +AtomicLong elapse:7602 +LongAdder elapse:615 +------------ +threadCount:80,times:10000000 +AtomicLong elapse:13096 +LongAdder elapse:1227 +``` + +结论:线程数少的时候,二者差异小;随着线程数的增加,二者的差异越来越大。 + diff --git a/week_02/08/LongAdder-008.xmind b/week_02/08/LongAdder-008.xmind new file mode 100644 index 0000000000000000000000000000000000000000..9c50a73eb23cba6f654e884cb8988e1f0c331fe5 GIT binary patch literal 43581 zcmV)JK)b(CO9KQ7000000J1oiPXGV_000000000001E&B090soZDMX=X>4;ZP)h>@ z3IG5A2mrD;mQRNjjK-Ln007vo000;O002~Ib!}p9VQFl0FLY>iZDMX=X>2ZVZfESf zWmjBX(>01EKnN~Pa0n8#aS86ySnwc?1$PM0xVwkonqUEf1&4+Z+zAle8+RIl+uK~% z{haf>=Leim_Za)r9<^nyRaI-ws=1=nRpqf?ki9@cLc&&5kkLRwLIolrAzx!WN8E{= zLS{umqCrxWk<@~K4|32yYV|Di=KZCTLZJ_$$CEm4i=va2mDFNeHMWmDCu|Ll){<54 z4sOeje8%=IG8p55|@tq~XQLWRf zw5)c04K#iN8sz`$a&|@GAOfnkOYtV4DFptnO9DS1vL^TcvHtxGIT~QZMi@u`f8R%# zQvKKTzo!2+{jceNP5*29U(^4Z{@3*XFVof@P&th*FWghMDFKV@rm1s51#niBM6Yg& z^6FVfMyyo!2utVqUnvR@@Vj%~!T&~i`MxOpF=?E}fLO<^Ajk8?q2nCgL zJn8{yebsmD>Fgy6DD)Elxu)bh7~vCazp<;_&&tH?gt##UnS)}XbRx|{=!!yrI|X+M z#@YVo_kzeII&9&vJ(S^tt+;fg88S`>)gUwqH4`@tWXpq57vH{vr2h+ZR_jAw#(nJD z*~;yfL!noHj*JhaGn@V2z?4D_@kZ`~asmB6UuJsXpbjcKf}ncL>vYO2gXH4w=0qgS zrz@}vqYfAQm$~0t+U}WFt-R~7Fg+q4A}kMTjbqV?a@4mGGkwDQo@Q!NKi0e}60Q)F z;I&!o>X0Q;&Ga^OiuLmCVer!Sr$3F;%jUL?Q>bvMRt!CMu-M*u+|4o((Bs{fN`1J5 zy*@2?KG(=@Ybff|f4=(~<8O>(s84IduOHG(L&QMtT*F6+OAkHIJ+|eQrdDM_8R(yL zc<(w$hrE(}?n~I7^bsG4-2AhxBQAkRq1K8u+I3tfa#T;<{oIOVo?1|ppj~fi)C}U= zB;Z|CTt#2g*T@9b3N&H`80G>NNqCt5Ghl2qdt%^3Jx1U!cCz&|hui8K2()LMm-ciw zwT+}rY<>jhj_(v-AKV9qo1v0{ZKV+N_`^C7xR!*3`B|Dqs1@(Bs$@HiJnTOc&4&LQ z$|y#~kg!zEZ?C+syU)bT(;BMV^U=^8PWQ!{?ql6=-gUbbs(IYf_j6Aa!krnM?HgpB z+m4|Q-LY%4X8-5EB&G;Cx4CNi&gi5zetdK03o^!~5MWiQF6i6A!h2Ja3fho;x|Emw1GL1%x) zF@q1R`h*qpi4Z~N_~Ktj%~V|-?04qHEek$NYZo4YN_;!JY4SuGe6C zk)dpXuGDI-k^NJ6YTJuOn;$K>5AgvCmI zJW>y+!oXEE{b@#Rv60mT1Vk1pP#YMs`+g9*;No0@0NSoF=Eg)5m`c-hn$l4y>_ z*!0x=a0Pe!Op4Gegq0Yru#oBJV)w*IHwJ0vXlFqb+ng~Y;&XzsvRL(dc!PiDC1^iC zquZuS%rg!YMOW)w8o_>ty-&;80pQ?x)GkWq8yy*vA1cOPGyRm##KUYyy|KAzKDS31 zsiyGm^743T8Md)GziH>uIn#%gGcQw6nQ`?83&2xtzT(0g_fl4?;3fs-6Rb$1`iJJf zfz3q2S?{R}t>qz6d>;=~eobehRiblcyNxWp$q5RUkqNJg@QIrEl{)IrMf|pRJrw?Q3iSKZ4{9~#oS5nx z$#fozmtS8?+wtyXzHR;sdQU3uCdPj#5-Wd15j)<9&8w`9)-#M7&^b0FVD9{LG@bK; z1mfeBDpBJw_D2R!0EZNNNs-HJW3~raR_iQvrtxGuhSXz0# znqX#YYs<73UECBN%}y%T1jua;AQcf6rD$g(0^-OI;wb(T57~ho*jy@!=^0VjR)nlQ zWNwOgTir2R$Vtvzlc)V#Ph*wsT_!dk8`>O?(>nb*T@_2XcWfsZ(K8{L0r=sjJ~q~8 z3D?jW#Txs_>=T1n$7_pgOXaMywwuDcmIos|q8+O#VAm?^+XBT8AsRE4hK=O4;`hXw zd1O(Qhvwh+%F8$ghX>!`uJx(rbsb<{el@kO)|L*qUT3kN^Fyl=^Ng7EF2Y5$M zqh%7nJy!EUI@FhYwMF8||0+S{ny3Vpd@{)M*u{7MHZ8NU4JIohc68*(B6Ol5#~+`k z+HqFp7kBd9o$ERZ|K##4Jfby=3<&%w;kV>-LIn1|M1Q%vLM&i3scH0D^+uIM3j3Zy$zn5njk-^7`L%9b*G?jZ|FcQ4mm!Aijj*_Yn z9e|XXwNGdNn48c4bfHptEXKDWLH^xqIjdLXfEh!n+X|_1AEZ_Z`1V;aNo~nE`y8A9 zNHEkiq{aNMOCaN3%Lt0*gPSAOO7aflq^gCJ4^A_Da|NIfBukhvZo*o_{!R#VYrmol zxU21A7S${nqi3#)hP+knW?-Qmr~ir!6dk8(ANTznTC_}sN;Mp*H0Q#4sBEDT|D?)}49q&r z(iq1t=O>%(T{t|Np`H2Z3eo|^12?DPHBF?GZAPW)T%cZSs`S5$A{!e3lXnOBb=cUF z+b1_l6ibVhuMiuKW+OS%%Fvj;1@|?$wHT_HRoe#jxoW>hLxjZey(7bN-p`l0xkr)l z7-6lg<=VB7iy(54ZwpYMV#PxuDs3O#qifLJ=VZFuXI!MkwDh44-NFr}zwB4}6`d6c z5VlJyysOCoR?dPLGm49$@Q4|PR#iQ1C@=?ruI+;dO2B9U@VH!%2m zsUHtyTy0wj)cxDRw!_GeTm5(SrnoNcC|g zQ*eH-noCngpF`SPjwBa)?5*s#EnH_mk70h?uIdMKT6_bhX#B+sr=yb)q50HWXWA#} zdp;>{t5VetEqJj`804~)V)REB^Zdr@OpHP}1xXW5hk2ndZdOF(ibs1oy~q%r4Ztr+ zUe*tsl`ff@e^|*0ak;G?((a${p2MoX?NE&M*^xuLx~8EML5u5@`V*S0!C}@(zLIZn zYuU8kJCyXvLotjk+Pe9;AqZ#0?+e6bk;+`{Uqm!2X`(RsrrUV1d$gN=n=?}9k1fg+ z2e`#O^4B-=+gGQAgZkL(=o*JDqUfq+GKY!@E8*=+2I~n^!YAX6L-5f;u03R(`GF=G zk^4ar;^hyEj!k9gxjrXyoA+~`SG;2Ht5LE%iCblEJ?tt7es3b{XNLNZT$$hp@1w2$ zaI84lvie!Z$ys9zm86w?xca!J#CBs|a1;9YkQCy)kT~>5xaf+O(1MYwtPyueR`~|5l7;2`EYel|6rV8 zjgi)nkh&Gy;F983W6TUp%A2urXZ*R^vOt~8n}xYZW*vw5@-6PuoA#ZRa>`=p zJ!Nk!#kVql8<_0P^a~DaFJ(HdJ74H$UAZGav%l&+zXXw2w4mvgt&v}5a(`m2-2IRn zDF?L{D-}jMC!Lc${&s#zIjcRQHhl>%bsK-fODg)7zc1VCCwX_$2KfLq;MOi{&-|v= z^P895a+Yw!Wmia}F}Bn3r!cgG`*I1m8Bl0h{$J?u9nH~c>Sc{0^K8y%*muT>N`0Ap z{cez|Dpm2%#{%#Cx*{7~=)5T1iw(*1)f&h!g(uS<+Rd8p=`#jP`peB}TEFNpc@K^Y z>bS1qpe$x%CF0vPjxkjd;o=guZ=2&toQhQW}-bb z3onaLP5c}ljvcJMqOo-uL;auwMrRhpBP1>s8+ml!)cL;DV$3i<6w-e2o63`8Zq-6b z5!8oO6%ZHFH)_)Td+7IDMk$8vn5!i816H53a1wl(ud*_b4sO$FKFT$?dCd*YJuT}8zv9kk6*Fo= z$>Y!q`X+aNa&zWMUY1BH<}X*#9GbTzV3yw{!bt>dxRX26|93AC#mk3`cd<-Sk(aAL zp#lNS9*5%ZIBYOM1PM_X#G3H0+O;h{kbrXuc9k+UMZrvwj^VbVKb|<||G4PXbc3K%G_%AYz z?tSWYH~mJU(vAZR5(LDIV&4N7D@5e8L^D_;|5=dHB{(SbclJ9#EBbWm`$gLGah~I2^ z=Ff0pDI)OVXVrXs7--sbUbC@4zGTb78$6sc%zyExADSr_#vIWTWRT*S8e7cV{%tSCtud&PSfd~U)DlU0JN`X1;oa1`2n?P$UX+$xH~ zz}mJ?j?+t;0t3eQ-#ek#sCw6OW~Z& zuzKy|6fVhHmoAl-shwF`^8^2o5C_oDPzkE1G@EzYjRAdt1Itjdx6ZAJNbJA8w6yDN zhtw6mY)I`hd#OB>#~t=&s`uujLzKG#?rNI2KzTJ6oU>~D$NrEv(ilY%EI1GRcLg2hzF_^M>Sx-bksyPy%l4u>lKK~kA=(JldsX)1j zpXki)Rv`j6WBC+|8_1iJCM2xVllGaCUqHTDmC)-l0a_+Ao6ay66UhjtQw*SUmZ4C> ze+K8jZ?@De4ZS}V0ro~{4T^nou?UDP+3%04WtoxB)ZvwIjR?otDegom`rHs2dAR5) zLSaI$}cX`4|34qM#UT=-tD0sks$ zKV%v-&Ff{7QfTi6lO;G?$!?X|H2H&z!#1_FTRU*|;a6UGA_E8}>+>c}b0$tLqH)8^ zB^2UPw=L`HWEtC9+dapZDgrFF_!=jxvOto=?*snapT+%rJn75x<9Hp(O4Y!s7v#x! z{6a(;uC9zf>(wbqY|6KL^q|(a3eyTwtFc{2b=M+i9oS_%!7*5$8!db0jnYqg8wVFY zWu+xZ1Q=^;v}!Ad@)?Zp+0|vIF}2q9382T*&?eJ<(CJzadrHgdvS_|bMtE!6C}ROb z+q&b`+Wg93T4#=O41g;ZB{w62@NoVhM8|jbhSQmfvRnh@oTD~ehsK{^;g<-WHWJjPENR>M1SLt{=OH=&v~(GUeZDb)@T%`xG0X z`{MgxD847+ytsQfqk3}YZ*P#PJpqd|!>FiaExL8AMk_$r=F+`aQ@ZYlGm$r7d%0e6 zmZU(>XW|P31WxI(Ffu50)4lU;8xq}?6%qP0%(0n5{nHaeL?rqVLrLnU&a=Jm zJK$Jn`I!xjFa7V9l(zT#(dZ<`Z77A9iw-g1_o!FW+55sDGoOAoloGCPKHy8=l8$=e z9}f!~-&uNGhedpLNfjZs8};I{D*1SK87_LYleL+C-YFXH<}#dfHc7)(D*6iP^x@Q?rQF5RV98S}!gahW+`)%O2A=-#T$Z08=i z+3kZJER(Jfwez0(@oVQqxX~0Pg2}Aq0R44+K$6JJZ=w_Ck(WO8S8iy^d*U^8}&c6x0;M+JuxHw5NQSiXT+u$ z!PkCzglk#CD#SdtC_YTPY0sKea@5Mf#wKHG`mPk+%j=3-{EQVUaPH55R{y)A@XtpE zIs}hO@}@<#BGCBksoWidAdGLX{m+YM2@GWl72SCUguU+9^HT7}Gch8;IR>k}3yGx^rpQERxlvQCH|GyGFxtPYY;4rI0TI14Thkq&j>{I$zLjGzg-YF6lcP$%hGL$c|Iq?8DIjaU8;0gRv8eBK5>+4@9$Z$zsm)0`vlSF_%FB63L!k)4=OTg)xti~m4(zo$Bf(} z-Lzmnp)T3ZXAGf;A5z4~Yt15uwuz36>i2rOyK_ZmMmxs;=#Ke&Z#Fgx@#zB_4%Sy1 zLSzru?*B>DS(wm216VmBOSU}08g2<=Z#rjH8ninLA!{VAj3`9F(K@m^*-NxRLLm3A zG;fbz2ZyamNmc=yfTa-Fzh&kZ7{iDAaWrFQ3Bm?k$ODpX4%#Fy9QqeZAZtf1|LYas z@qyd}QEe@&=M}Aq=T2hrM@*ytrqE>k6L<9Xmd=@h@2)s*y^h0DzQyNzVXz*d={OxC z!hFb@Dh)C^LA4IFKQYJ=82Vov1q%|QCEm?J0}|C>FWP9BTRs2-JrgTs1K z1Z5;Mlr@B>*40_;8s#h5l0WZG+zi8QWPvU7sO& zl<$@MhhLe9Bg;nvgl6nv2ha2x50MzfxllrG-Q~>^Pv_sSaNYb5w9&Gv=usR;RHwf(TzTkUrY5HB^cV)tPym`C5+C@RTv3QqjI+K_ql}EpB-;3 zmQL>G*;Pe#$^IdMqpBTAFj+!M0MKIX-Uc_{Xz0y>DC9)~^e-1wMD!({G>+JV2b>H+ zQ(kS{a=k`39gdV#>absMBSHWV(~McM%!fqp$45s0;L5{Hv)(3Q{MF-i=Rf}z2+I=# zr(m-7WXrRZ1!lu}THr8#w>JdNN+`9LTV@Vl@4)~E4aZ83^!Zj+uwmmA^R{BaKkW`& zGzw<0|NHh=lUu$CBr4=)2sZl$cVKKtU~S0@1cEXe%GBLKeR=%#T9B(m&cwTUaYC}n zSyj6kU@4dWTE<33MtGF?Wt>zAAa&!-Z8+{q=v0;&yazWROO_2*YDTR#bR_ObAKZf$Mk$~Gu2oxQnp6E#^jO~Dq2TPw|_-`G%z^S*Jp4+ z$G}6LaK0N#X*ITfAJ;l`m<$li4OD^2`f{X2G_U89;-Yztqpn|Vnk0DBCnjn~Cg5(G z%Kum&wR7=w*WT_>&JP@4Pt6}etbnQnVg)Ql0YA-`6Skg(@oA=T)?%7F{hI66ip}}U z%oY~6xw*Msn)b8f;k65&4zvyz`yK8hZTs?czUBpyJ3N zf8^_${Uk8uQ>Q}`YJHq=@Eaw>fVX#h;o?icWTb{vzusRxVdh;o$O38q$-|UY=83XF*J#{lG0srtyuxJyPm8y8eR zY^G;W{oXe7=gf=+%-_ebI=CYzn3ZdDLK3yQO95W_+EjL8RuiIuc0d3uZsWyqmJJks z_VQBqkcLKx9iE}>#u(F>MV@=SjG4^uSWf9I1bWI6&UjBDs+rvW=pbt8e?_P-5Yush zd71C8ki%UuIxx`XbCzZ{^FT;aH8e1y8?4YdO4liUa?w4GU~Itx;VQx0CE&^VBoDeg*sRh>f+y>HKi>mD&L3`y|)58HCYa?;JusFq5HWtIMq}YBDER5_t{Z9%(4;mx@Dl!A$cXr06@&_(;4){^a zM*8}79KTok)KQwNtMPWzewdUN4rPwqa&8_TYZ-r9eOzP3{pywMti5^AF%E(9T#KcM zuSaev!+Msp0hq0OfF+F5_dQnS*IwRFHP>3YPB5G<7f|tPd%3>}_oGwE@>geIl*TLRVgrLDpo)>X1aF=8y9E+})se?~+b~pUTYT5Cv`S3bY@g zafcK#lV?a zW(XZBg6lTEFSHLv3HmAG2rsWGq^|EfG z5%IpP$KWR*e)V4H%6?6WLWHCW%3USqiGFwQt2G)EnPy%>;B55BQD&CG>vezmv$4QN z>rJr;7s~s&W{BmDNS*z>!jkxUh-?#lkBap2w+haHXA&2#rTpuXZwDfj=2QrxB`$<* z)9m&82O9V3DJ}JP#WORZR`P;e{!!Un#j^3XR|JP-RavM&V@}Rr2)6=!zzbC zRM^qc3n7JxE4H+Q14G}xhpxlMb^1AD-1}jz*hO&__&`_@{Nl7@$j!ea+P!t{Xe<06 z+pvo^Jw8*}Jv?r1&m~dFjw)&S-CB`MFvD1XdpA*xMJgZpV2fP2oF$$Ft3W9yA12_8 zi#ant<(=hnOo4~>+`T$f3)?DQ3I*pi-o|cJ#M}B`2>KtvWg(A<4!(%M4b1rcWqh7S z`z~GGtG6G_KFK`pb`qDJrfn1`L;jNRVw8rs@NBcH4eS`8uTInYoeVSvz*<+P%k99B z4NF7uZ{!;%rZ$^lajzoM?`yo#!P)0=Eo1Xvks6fi-uA@Q@2m7v+Npzd|eZMq|S?v^^c=-sj9FE|;W_e^UdRM+Fw0BH)H$J4aW)ncilE#taI zq5&Yx+sthSAwEjYm21^=_L0d+BQKZmmpis6FfAen_h`W37r!a^6+uy)ENQy8!G~Nr zws~F*{*9*e(Ka^t*D$XNVRxN42B~6;ww7=n{kry8-0y#Gk`1$=!6>2VSEZa>m_~$I zMZDZyy(}%LtRCV$pq?wZBf&QvlyhIGi&_>*x-7D0#eT;xMAj=y3)JfJE;JwTm5`50 ziygMtuGAA@(#)m66c7O1!N*kDz%@OIO;z2W5&-l-IlE716ZJ-#hT{e7^SlY_!SVzb z>tjW$TIHxkZ6!aYx+$~`>FitjSP#&E6k|LA(5(Nf1^IZJG|zX#pXA4* z2Kt@+@N|)neSABAS}-3BTd}D9+bA#SF5mJE{K@aWechge#i!R?nXZmafNjSbc!ZqIAdIcOZO29Q*XYy*R zXwjtn{NO)zRNz||ZG0c(vY$VB{AV=@F=%tSiretK{#)N^1T?MPFf?Py^|zpkN9_6Y z{zjZ;I~LZ{^xtK~q9YTGZq-Z%j16jR&DkpV7T#_4f3Vz6#RCcnd65cV^Q6qsshsKu zhoDq{obpiiv!y2s3;Q;sIWYmBmlrSZ;uw01SL>_)Xe9X$CEmA3Fq&)!S!-O(Sw)(~ z6+k0jLhpjG+2KJ@<3D?ZKSt>FH7q`r3(^%l)6Cr+^BW(TP(z@jj7L|dpNNR4b7)9< zv%k=IP$Tf(H)bp^DUny`mF!-UV)}biQ@9XwZ`8wS?INr8P~D&fu@OUbS~S7N{gh%L ztmy5on>~RuXHfWqe^ZecAygW9-Q>qX{8I}RqkpAkL0@LQf*U%L!T`>W3TbOlht7iH zFNIJM3vH$MY+eEdhaT_MY6Q6%+4@q>EyXNrE8Rb(Q5rnr)dcb^K8{OiMA9GHmxaS9 zd@^)qi085}crpL>xsSioxpydle1X*1 zxWUbqo|+aT8sq8&)p3D$OaTrbiNx{)Yp^M*7?Gb4y~;isERzvm=TYV95tqR@K$X0Z}zdKU?wId22yO@8- z`^hsB(tvQhKO86y!TVq3A%4F2KK+$ZV@F4EjL4N9O9q-wN<-}3JN0w?DhaS2Mnh=R z|0}>5mCBc0db_j0N#u6ui{YH=^&1C~@8%`*joM5;mQn`;FR2@RI@g6EU*tsvT92!u z1bT~!VMT`scJ1O|H&H9259Ip)puD|721IN& z`_2ht3Ni#W(7KNoNs10vNeG5(s>aG8B48&|qOtlW67yw8r*t0$e}aNI06N!2Udf@n znAgCAF05gH*3vJf4i&T){_z?e;V&*oG9HpB-t;u^jhww_x`J%d32r4%lxI{v-wJ{% zb91{E(bY%kn2nL1^;N{#>znYR?fVCR(|7p%^dze@O(+yCCaum0Z@TjM5J60j_&do! zXb#$6<$UQjlgP;H;$W9eZ%c`Vr=*-GaeSg4dV6g$o9Q1G@{DYz^sVyXYPf7d9)mXaUulaFuH&pLNca@G`q=YQC{qggb|K!8 zm@m3Lag;w-^zJ%aKM9GLev5yl^%Yq>xrI-vIx>$GK-Q?7|EC@lhE|p#afw)p)62dD zd5SzvgAvX3lP4-EV`8H98q(BaG8ZMt^dq`hk4^&K*|w(ql-X?ftg$c!k%OpAvGLZ9 z4H%+oRXL3^pW>+ptBu{mrih1j*(Vn!rWAab z!L}PeTs7!dNm0`HUP@OtGWlCD(DWf$0O{31m@gg3!eWG)ub3VT*%|VWZ5pcpFNFXH zcIbJS7YbE4I}~8*3W;Ts>O)u?6(-Tk2Ot4~u5Y(75L;)RwL<_NCO06s=A zp-T^k5Q_*^vtLKj;g@nA)NkyN}bQ9_A-?JPant1vq7OaBF+PqG4*OLl#0roJwh4)B@%@;U}$^S;Wl z6#d}zIVSE&*V%mwt?*AILS1`x31?(1rh-fFSH^e(>&al@HV%DosD%v zZ;`;29NO*b6p3hM(GqgV&Wr_kR<+U2ylr@W6IkW8JGSKVqh=?U&Q^+(wg$*J$|yJV zoY41#*#rHZy|tJ(*+>=qcunQ*ZuTn5o$Vj`Hrx6`93rZ{H#J6qY~5dH3!W!*oHTHe zPPZ^eM+b)a;4nJ{P3zC#_9puYoBR0Ei7i4)7Ta0(Q9!u~gJf#^x=_ka`Odq#)ReS@ z1O%A=I`p}*_rl&gd@2`!FHfh(eRhg(Bv9S``2(AmX!p#*ffk0?ZhlTb2u5nw!Bv% zY+0$zMj(8~Abj>r*iP6-dlf#?|@>CY$I-f`Zlt$*kwJN+*RD+pF8N z1y|=CE`MWRY98k(j!Bf?xUcPQg?B01%=$CpOY6&Ztqh?uXUv8B#xKkZ^zn_5uh&-8 z=mqStIoix98v%9>OGE#(cYhdOYQQybsprdb`#Pd_3hE}LbL&UY@nX&G&m{^{tCqOU zD6g8mFfQOydVzV~0p~T45T@N5o$;m`hnK<7wm+N*H?XeV6=;fsQFZ85(2whEBzFux{us$BTuD6sA2 z)#3!G!^G|t5XLoI8sLF^llS>(t4D2oBp4XnDPo&F=fqNj(W1ID|3QZO}Yrku(3nr2hGdz~ztyU>C#cIP+BzG`j{ z^zfFGlTjn8a>Ql(WVv?IF13GITb+Y*4E9{b2z# z3*I+TzVtXbch(gLi6sh+#YDC>e4%AYe7G3ZR_rIm`^4aj$-e#CWJ$j>qG$X2E#dClw-%) zFlj}bqHa)a;#h;1?QEHxu3FZfu*ur}Ta;7EWPhLvsw^t-pUI zUyCzt&Yb)NW#>|&O*3wod)QY}dhQ*kmS@S({me%S$l1!kzA+HhS4N3va`wz3nN3X( zZBr!Th%Ye^_TjxpdmI>gTi}!&KDckbc#0Ksa{Fuj%Ix+*1J*Oa^q@bm`ZJ*?#oJn7 zq^E`+On)$BC}gJj%e=*VD>Tk!&Kh1wn#RL_kr=tk$qsZFE@c~wVHBxT2WGVL!HS?7 z16y0=Uen#0uh%T6|C%0hG=iYM?qRsTO9&1hHoR|(8#G%d1+5cpomPf8Cu3}E0ANm3 zZ*}davk4iH-O!F47Es8?7|a5GT;tJdyhe@-6e+}wj$#8SxLWe_XTObM{YqYHh;vPE z+}XInhZ)4}c`-h4FNXpdjzw{y%6?a}6pIJ&p z_UGFZ56I!&k=9AsfPsPZMnCa}UZ&53UNySVDZdgDYDy=zkD>*_BCzV?YJi+8uX-C}t(KZiGQ zm&X|`7t$W>&OiToBp#plDEd*O%#ZSIp6$0I3*Xg3n|iLvGE<*12J_|k`?BEoB_}sU z>Gs0O-|X4S=V!B|DYb=q&4$Tzc(_qDX}HEiRj3os_Qav5-l6bU7tK-NJWJtx&3C24q5% zdTl61_?Pi_3PU5C%=32@G(q}Ot84KN)d$@+6h9NeAj@GJ9Y$ogwGZ)vzpJ?&JW|^q zXKEOp^T%{s8JLZvDovm2*J;liLpbu@?kOjb6%+P951qWFbM+3A-z;4%s!^zQ>` zwylt)`nE4N=JX#d%-7$)NY8}M2sO@wOzcZMuC8}5vsFu+OWRrld8#;2GzQ;ywzkNI zmSrb@{YsY&8teA-!ClW=uV24HiB8*__oHZ(Bgls^gQv4H`Fb;A?d`t?mL}b1CzrLM z%(a7~dyP!+TOg>U zwXP4rPU&cqJ7rf`755b-RuDYnZ<{~g^bN6{r|I2r)t|dw(T{|VloNe0!?QE2lS3Ha zmCZHdQ)%|2;{p)}2g4Zce8ct|D&IBfI=fe4jg0Yf>iNb+)ddjdsPj|=hD-9tG#JaN zB3eH9jHZxpi_yC{n)*Ll0Fi}y)U8AD*zVzZ?HBE~JFY|s>STbSRSpqyg|X#kh~Yk! z5TC@MJx5AE`5z3qdq>g}9@-Yxj@Mp58O7sC1ZjSj5qq&iCnJ6o$!@0R2m&`uZLmnWZ1XNL8nDEjj-@?A3>njk?Wepj=vItMcI7t~uH58HQ_)JI46OrL2Sh$k_g zy2gLF2ECGg^WfroMto=Q0nL#<&agc9N!F+lX6~Vd&S4^kyNQ?nrxnZ6VJR*adN=qg zuSw9s0UAmh=N2?y1S!^$=N%O2R;7zxnm9 zs>hCLQF(ki^z+!3=OMT5{2Sl;OW;F@5iK6;!nAw|-quI;7I+%R7~QIV^8x!E#S>gp z0yr#Jd)}|)E6Sjz#Jt9xcsiznyX?CR)aLPmWvR+GVh!~6?<^9+IisZ@U086tLvHbLZTRC^`ad6-eJ*2 z0iJo@xnw;}zsMN@3@{91Z%ugf{1dAg8GmY47JBn#>&mpb&jA+^3CS0OThhA~qnR=; zwO$6;uI^STlxUrC3Q8~EGdW3li<8Gc%WCJft#Yp=7M;+j%beN^v*>MlNBXDHym>+2 z{A^rc2wy`03HY!w(gc+!XFNy)Ro-wk)w=T>2<8R15phm6Vo+qD4bpJds|i3`yqJER zG8;C%dpeYq@T8L);JbG3(NPX~l>fW8h$3J(MQKH#0lz=qp9;C!A6p5NGo>vHt=v$e zr!Qhgb~Ae9uqM?9h;uA`quT2MO_bQNx;rP>1TfpAoh+;@sH>}gqjFYZRr~j3Nh7!g zK)E2py2fd>d@Pup7|g5|&z8i?v8JKnOaqlPVj%TxYpaIzkkB(4cPu2!6*y7`Fp#BI zEJtNk?nZ%g^i3Ye1@Hd$F)q4v5jQzlQ`dSi&fm2(#Qd7|sni6c;gjq)P)f+?MY5dl zuO9}fk$evM9y?Pk-yP_Rc&(gUPYb^M zCHbI4@9-bt{!lSC*Ig!9VXVLNNi#3sw*}dHFl8Xv>lsCrhjDtGS}C+SD`N79uS}rG z-x7OY1d(fRa@uGZN^Ui}U%q2VU-q`)_5NrJhBd}v-j1I4ZCCP-)UeZH)(n)6T98)I z2I;G=Zi+2&I!t11Oe_2xv-iv3jL|x8(b!Ga>ijnlw?08Fqnzp}PLy0f!1O#sDG~tZ9lly++SuAG z-*0OZnQA!{a@IhAI${od*$M7iSI*s$XG(@`aM%)tow_eh6eM0oD{LA|1B}(ICL;Jc z9Bg^=JknD>Gh5M&Lvi^N?Y*TccYPhH+)tQw4n{cnVZ!!VuL?cGHw>v7fTeU7! zfvz2cY2CTm=r*1;hznk0fSrr)CIlqQ`+l%UV5;x>=*F|P9tSw)io`ukliu&kG$zrc zP4!qK06$&RYVGLA79!p;CZA#+Z?89&`DF;o z_6fk}2`&`xRL z1UOw3Yu^uLC_D^WsN&X&5l%5)oOfetprT?`fA6IV+^uOY@fd&%6N}*pqqXSxv@BVtPtg z-1e0TnCiFBLPJM*ZIoc56!O2il@!^Ir77acn~yzM`weB0&;F5+Ia@wW7MtjYEU`o^ zb$lR!l*Iw{W}#|zEZp0h?Etn)-L_SU;S68uOnCubj0iX` zZXf&1{iSo|()T&Gyo(r5g(E(PhG@VfcW(+inErAr%XoUV&w@NDI}_aLyB_N81}hQ) zM%zfW-$h(6r-7aXOXWZQIH^&@_2OeI#o8>EltPkj8GzQ8LCH;<^UF_?w#v#%CFi!A zhlJU>GtQPeyE0d^*yM8yB%#rXv6%&0t7~h_+lt_j->lz}JMa8z;L3FTxhfJKl0iI= z?BDnoj_ei)9n>@%1GoDTQaDWDxq_%f$D{fzsvHRVb3s@*DYe|I|0J$70g8Z$tt2l-B zuN9G`ih9 z_7lYzTyqQcI)+_5zZyi4_P1a8O?im?{aFqGGeFG0!pw+%c*xWt$2$EhQ+4uuhmtDV zkGXVk$eHC{LpGw+SN&D_-2rWt zo%oQ?BexR;HRR zr;+#YR0qmG&1`UjO3g~<)*_Ajekd_`mKx)>k@2hJ#*mLOnw>R&(w?W_YR|oet^@8$!JH)&&vd=K^g=j_Hl?guiHH!Qe|J3Vzi zgZAiFwO~Edw&t5r0H7MKwiIN#?`OW#<#d_%|6$`T1ETuA?_of?dniG=84v+!kPhjN zp(Lc6p+UM;P*S=ZL2}5UB&EB%hi-U=&-ed(_q@ON+;euUz1BJVp428=3vcgRwwgBY zL}w|Lm?jiKzlT^wo%WOZ;QhqM;WO6fq1&%il!E;lgb#r?{voB|h1!(qw`;05Zbw|& z4oV_IgwqTKi3OjkiD|x~onbinl__#4(L}^&b)Ez|>5>dG0J{m+Wgv=Y9b94P$25ZI zj*gBu>WTtc3L4&0aQL%Y(DoNL|7ZDH%d&*gO1O@qN4-ACh0qT^&qa~bJRzTE%13>+;IV<=Y7`v(@CxLn z)VYG|EAU2Q&+baguTo5Alvg0|qn-VVFE$+OwZF*sCf9%3(t$i22R zfhg|oOTYfE%(>KlpSszbF*@X#gwcGw(}`PA^YDo(-h_p`aMwQZjO5$eR*AHH&^Izx zQU*GScflHdaZIwC?CBdAMnfZyy1Ng|_R%QukW3Rr*rx~fFTd?Rv#v_0s){T({VHYq zUq`GDy;{ZkR)19O02Fr9D)q13%eQ9)K84Lrtx|Ud1yGZ&u&LU8UAx_VVdMSw6I;~s zxFGP^e!ggg>l>Pv!YTmouauXOCY}0r-PQ6 zod(@pWA`6Y9hS_>q7xca0>i`=gW}TGzmWW-`a=?OlS2hXg}&29WIii>^S_xUR(9Pn z(^cs)SUzD9rPaT&1e+AQVTVL7dnd5_8qN3mAJ;r`p4!l_E@dMh&QH0Xmis7a1D4UR zPGuhh1D_A)Xdrz}=<+Ovu2%dSzkh#AN)1aIvS+Z~A`ToL(m46so;JDf<6XK^vzP8Q zo&VW|3+~xJk#PN*T)N7Ew@UX`y5Hub*jnJ{s|MKhB^N=a4#|~s>@&JN&nwPQB@iF( z#&|Tj{2%@aCKST%^Sme>&QHp?yMBT5uh_~DZ)e&xwEN0G(^s98eYmG05VMK_^VC=9 ztG)4w5RlL^4Z>t4N>FwXo4flK?@+xt%Nntb=H1eglbMx3_-1|v-=u0i>xbT{WVV-! zw>v)}HHp|Gs@;I;Kc%;1W!FV^W*@8fF&Gt{t{S|G_0Jt84Xh(sJIu$QDA z6*P@lVNOxy^iUN&WC}vn^UK$mFI9{(EdN= z1?yL{?4Y_DBoUE+Wo9fs5qurrumIJkhqn}2ugs&)^M1{*@6a>jdzCz(NfErJ6HAKd z))ip@p`V_s!|^c+vc0k9IQspJny@-LXmg#x`V+adilUAR#z|ZxHHKwb<#fjknpcBk z{7l19B^S|quK)fA41HPU2l;3O`Npv`zLv@Bv%Tg}uDCXjY@vVuX6ZNZa}T?jkiMVO zMZ_tx?nPII2?7oEd*xHiJXJF1-cIv>?Al$Ajs|SF2v1_^&{{rGQ^V^>*`<%rT~H(pBU7ByfhHMYuO^w#9&Qy9qhq)+Hv8cuVpLJ-m_3Z@{|6B zAU%01mnR`EjeJ*j0)6$s=5LQHfixn!s%0Rw4g`Hz3{#3stOD>lZ?7{(-qifzyEyNO z{P|y_QT_73!GAv$uwtk|-f#W>$I?nzjD2c8^g)E@3@F?#;cemhOLdxr4P%8+oo+pU ztQ|?F4ezdjFr$)5%0eMK8Y5%0pN;e#V4NT;^Yr98*_nrVrkwE`;!`6}A;$J$zH`ZX z!MZbiK|kb!)(Z&Nejm)sW&iGpk*!lO4La+sL$3_Mu_n}V9O^MT$K#%=!9+DPhvg%) zBw(Jalv?n;xBAHZH8as}v*fSZ%FY(a>KRN8(qL!uF-z>_s6}lMT@5n%8)e6xJy}9K z3gAHM`k_9O?6glhH62)fEdwt z&)&ALt`^^jw7cF zCAlfkP)K+39@zC5^fTk&tS}3ikjs+7)pi|dwQ4hfLZw=gh9`ER5UZ024>c^r^qv^9 zCv_U9$!kxKpMw8z37sjBgf%d^9f~%}Q0CrB3J&JzN-4mcf__E)RqXCIRCkR)Q!WtjE<$5(EEO zCOT(M6Y04M;kn`IuIS?y{`AButCChWGy5j=;A&|8T{{s23)WL7**bO0@^YN@C#K`u z<~!vZH+qJ{*tq|$F^LN@UbnQjQ@z0333eK(PpK=q!x$3Hh+!-`FI&MU!ph(O8kypG z`2}a|=axN&($U{Rp^Y;poL`RA?;`)(njBj3MiB3zu1M>AkNJ{rvl1O#r{hBXI1@s? zT~j?h;W=Pdj7fW>3Fjp;aSZPH8M^#cKv zL=2{JG?r7i15NBj5{pIN&Y_^#P#B@rRvsA|lL>OY{4|75)?`X9)tB*!(+2gwZMH*F zAQu-G8S!zr`o|@L)xQq_$I^MFH?(E=G&BRy_)q@55oq2%r5b~+P^lUqA5IC1H@MjP ze!e9;Ll8b79V{?Lcg@}h_49u}C20~=8$xVq(P7S=)hu3h6&ukyl8!2Tf)rA4rS*ol z9X$d_YOZTb8z8nPf^kRk%V`Idc9)zazRZxn(nj~??=FcQWNO3T20t{d=>NMvg-*@v z)LbZa7eU~LCwV1xI;H-7O3-Fqx3$pr12J0q_Sa({xv-77!It;=K+g|I4A~|~#K1da zVFMK;zSJOSkJ88Ro~CaS4lgY&lsc(y48dpcs81S=)P3o*6-9&>FY6Hkg^rS!T(~^@ z_nxr$Eqny+@U)kW&sm9}^&V6`ND{K`EBK@H)dLyy7)h$|4EK|Te1Us^|D`2N)Gb~f zN#!H_(URnd-ft2=2(rN?ZzrkX;n9H#AB?|ay?{ZD@+F1CwYRAhvj4A%2<}wvm%;W^ z-J}VfZIPx}K|19IF*7Sq_}>U{cs?%@?b|sx0VaTJM|fgT8g?Cvn`*n$fBt!^2OAss z9I5*H;PY118u#0k#{0mA)n#G1j-}!H@7IP6C%yT5P93A80Nz58gu;)xROW`3Uf(^} z=t!TRm;+3n0P$49IpKEGbr_W`J_zB)UL;@kk$-;vprgb8^x%sVVDKCJ9*;^kKoXH6 zJYszx@sa!Cu5-@kb38g>@!%g58N)O85wT=DB%qtV^|Z^S~us zXH>~>>u|u=xk&SJij1z64F20c)YYAAZFbolH;`G>Cl<8e)RZ$_HF7P^**Vl8#_bHY zTz6}I04G|+5i=(eNHl&_i@w+DCFuEvfmP7tGi+1wo z?rFc-x$n3YytgIb%tbp^j?ra4A6hilBqdyXlJ%Y>LZJ#0Jo_qQsEuazB;iz5^h+6< zk-DNEF$sy;@ZB)ja+->vDBnQ(4c%G&+KjMP`TRiodXJ7dBon>>Hn`8UP%Psmk%Z{f zjMrtvq5{kpKOHUws_Ei&{b;HKa1~lC=I`O3girf;oW$xf#Y_F_2*Si`b=aX6xw!#P zC5Wyw3JaqF+n@Mu&2w|xF0Qo{M#M+s6)^g*m4O#fwwZ< z(#ay#e5`^fK;_h^qn4{uUlCE!e+3r8TP1V9{Tn2|%D3|ti6u}Q3;)n#HhUV10aEsU zyEp89CzGx-Ob~cQg-a!5@L@8x>E5$n+)&hQPp3FQ(IpP&8Vh$Ob0>mxCoQMW5%z*aXZPbAJOn<87 zWe~~R`ueD3s9b`@VJ#8uGSOekG+sLjp?W*xFKfY4aeRa)ZKdr$^`NPVx=;U?bvdqSHY@EEpN9e`|6M1iq zyKxxlN_4ti8W;l(b{=ty_**B@;cb=Z*Dk?DhL>B!`ZdTT%?w<5_}08J&TM)3?L9m6 zoJGYS9#5?Zok?Fh`hFAEg&=2y!X4tq(S7%E0XBKAnWVQDC_^K1KPv@3s<^JPJ(7*V zTdp?%Ep!h8+d2E{W|nnQd^`_g$u)b+s(ChabdG<(?%In$T6W|4E)2_=g5+^sP{l>3 zG_-f-H<#eEvHKqgd?Y}cR?%0+!Xy#pON_o8??HU(ej&332W9reJQVp|+^}*y`3ve) zECume6HQ84)TY?{5OFApP7=`?0iXLn)H>3Gz*ZdLMxqFPs+qk4E6=e%%BD*mkV~jN zmb4#T4n9f|5E{*Jcvm1zd5Lod`+Whf$%;0+cNKqwYDbP={qohetZeoO;lAuC;?&vx z{x65zsjaBgOkqN7O#qjk(tD6wP99QnVS0e<|@Jj)|-(qb)b9MPDRuwibz9qq9J8KsL;FoZo`A`=*_9$+e|WX z@`!jU%@3E4b5+^K=|6wK7C@fKd@}!c*Q55xC^?!DSOo7Z0ZycqgVtq6%j6amvI)_5 zwITgdSAZ42geDU%wXE25J31kdpA`q!$wXeaR9OvLuK$A0e&^Fj;WE=y@RPKOhJtKrp4;?*ggl8<*c;IXbx>VL=Brr%@`u=fLFw11g;>z}cZemixuQ-UJ` zp$P!7)FtoEm331pB0=(^d6)WbO(xK_<-KlbyJtoEidAV+9u4S1cbae}W|@M()?N2% z{6uE_8J3m$EvoV0^o)O9P&zyPqP=J$`PO5$xeCv%(K3mm2=mAx#?Zv5aUVaB| zY@vkwHqeKjCV6Qq4*&uIqeS}bR9^2KV(n%&Vk-Ej>(pN<2Oi1fWlpH!NsZJ-z`8)m z3x;<)SWS8^;jO^%2W%MC0c3$0IvEWK7+!8Y*~JzLUy7K3*WIg1|WZAg!Ogo0;g; z0xpg@nvAO7Uo1%ZJwIpq5&Qdk@Onqt7-9g|Z_m!LU^~-Cu2MQRRGtbEyDr`?5AU07 zg8tz8q63N2n{(`N0CoiPoBnx3=RD^UV?cGVnnWBDHqh3dZ#or;lvvFItl#{A=J(Ju zqajm%$iPoFnH5<<=`7uGW7BDWl!38?H(0}r}&6J{fe0XCEVg-|)w)w!suzc5XM{&C|Z z2`^2JN7&ij;4}0q;v-w#0;D1opq_9oc1Lx<@5p*xq!&8upVV*Xa>~?|5k2Fno;XuLM8**=aTDTV9v$|&3DD*xRDPS$|$BbR#Gav z8y3{%NZipxD;bh24woNA{qAa?@8M}jXLIwX2(s)D+WzvNyhB7HQ7ZFGeoK|_HPGJf zZoiuM!GuDJw&De#f>w4qZmx$LEWhW8sxvJfj>G3nin#5Ml!KO4SeTg3`W)4;CDr*> zQ)!qX_YTfn{15+PQAp$G44AQ30%q9q0Do2aecaNws7?>I}g z58|INfK*@}Xxb6hOvC>}5ZAoVU8*bQ7|q$GEoX4$=f#??msm`S8~t`sQ!arn%Vll6{q}sLCU*P`bwgf;pdYAfh|A6C75|}$!?DKb7FzsDRi^}7-_55<^E)I z#r_@iDb_fn1K&w%MBNvB>WZl2&Q4L-pV!!N?)%n-_19Y1Nth6PEt7MO<$Nd{OdT+d zcakl?p)tGUV9R}~CgSRvh$offdQwogw7(_bemwK2vQ3ox@Tv2xVKY1&;If>wcfLvZ zkMXtnhc>c!rk|A4cm~b)Rl6pJ2J-rk3#dbx?edwGl(rXDK!-nX$L#2T4v@-umqn7h zRo0xu#o1D4W)YsI<36kRdGxalm}mO$e7e^Dayta}d#~zsipV8r$d~vU-0;j%xIL5Z zMl8VUCh0Z3*g!ut7KvaDl0nY;Q;3Z1$(wXq`Wm-`8SMpnXW7V zyEvRCpD0pJYQ;7mP2Dj`4L=8P{Z+b%_z_k0gU`%lMXTLfu0&3T`B2vrJob8>IfHaK zi}l)IOtgDD*W3)XM!oO}l9#_pteo-ol{xwTxRJ*W=U#;3l7z;%5n}=M9hN{6zjgok zGl2!Trmp&Oz#3eWDSBe$f_MedTKvkW)=`N(Nd_+tgudHRaCs|+yyEoAGs^r&)FT0Oij>Z4%M zs6XEG;WB&4Wk@kPiTJ|<<#u4TUVzDpcIZDmG5zSQ>GI^289e{yL8F+H1V1oKZyY&d z4Ox(D(j-4)1&c2E^Oza91l#gpF=VYr=onJw4M&rqjeZRlQvsxULeRh~5+z!3fny%* z)*Y@*0C9>#qM~M(k_>;zWLAdpbZ_Dv(_MQGjnIvwGKIKGc>RPm(6npwvuithuQnJzP-hn-yiFqvwm zV41PI#I=D^7~m8;SHN~XDb+QL$|X|h&u5Q_hnC~sRJs%h?*ZRrg|XjoQi^XmsdiR*}Gh4%=`n88#Rwd_v=;&7>G7z@DXs2sxrpRwR;l2WWn9_3O9oK!nGVAg?87f>Bz;aR6I$r;?xA za_x0c#v9OhsAmo0Hc=i;Ct6kj>#KNpO}C+L5m@r{JykZR|2J9Z?svZd z?8#IR)Sr~J9}@H!L2`&>+Y^*F?k1dAS0$&zeL%C^+aK@Br#+GTydzB`6f0oWYH0f_ zG;Ef=So_?Hk<{hM9J_EN03a6+cz#ow!SQ8qGio%~q{^{@bAo+2i$>=$Izh~&5XZ4# zN|OWg&A^y3Y75<{!{MLvhNBSn4E)`-;Qi%H^fMSjM$nBi%dl=D{_+2xtn=i-K%j^}V?D~Y`~)3$hyEf~DkgU^_0Q3huK_49Ab z0Vw4RrWG(cvE9mhi8YU ze*KlY4fPLiSi=#2)P1VHacD-THplyUy3xDZd5`+{z#VT)`1Ck;wAvABb(`ZqR2<`Y>5z*LOws^sm)MuL{>{^cjJY-yyMwE&VMUjTHd+h?*CU!&$TV zo2vWLgzFh`u>F~wD9e{H%$8jE}J7A1#-=qGTb z??dyGYWcGTmP(c=Fovl0!>hYXwoB2m)}rz0vKhyYnvJ4Q#U%BQJ|4-f!RsfMugx8Y zw%a{T4^~?0nARWqBc0zlO_Nh2sZbk_CcBG7tV6o z$q^4;UyIPb|NiYF%8qrKo6N+%W99UbNyCY2&%sqj8S+nKZL9LQ0(N(Uwz>wYb5i$_ zC0#axiPj$pe%X;-!5JH*(;1!+$E6Zw_66nQW_IOR06wWIpUZwLCeYIct(2X=PPw@e zy|Ei5Ah!x%njlfdJ_rG}t%RNgF2D;HkqI)$$_pMVo-_G=Z!oo#I}Fwe%>UFsmR%-) z;Bw$qS_mYZ{-=%{`|F%=beDJFD*;8#@beonOIbq1m`1h#M=jD4Ep;g;Sd*1 zF-vgGY}3cj`hS64p`ypebB0BB|VNNJ{wS!GOZ7xoh(=Byk5$%*LQJ94zFPfth5(lmhv&r46`*Nd48)yg+AajP9w|B+ol1BdjCC$r)T;3ouXdocH%v=-iO^ z67=T;tfsLD&=?*AnH{!svu>tPcq~#6_nTdBM2$gL*Nz<@;=m{yOcgBY~+qD z9{xIQoYJJh9bsMAbOqW zh|EleGIOo}8V&f?%C~-y!&jQ~IV5d&qCgOo+Cnv8loq#u+aL8f;Bf~X8al;v?rIYx z)(`&!FP-I#qxTvevT(wtY)4ij-ZyuiTy1$TKHKE$RAU*`!*DqAdfprs6yTb=`km=K z%~Ka7gE)wx#|ufi)Dm;7d^_7O^Qs%h+vFU?j3lyXIjTH1KB6x_Jlx$KPHy!|<3lJq z`2d`7b;Z1GkZJfZOd)H!*}BB-y^MKt2c{EwkHA_&-bk1ni4bTKIn|$34b249@-bp* zG{KEFK>2m5D5&X$7jq7rv1F?t8sY#8K1Z8i5)T)!?pI)(xu|+>VUdAjM>095MiRKsMJTL|S|3*=Ck$T4n3Y^4U zq(e2}Y~Q(3vUS1qVG=m>*36`R+3qQljo*HVu!=k)PXEIXOP!wxP$f%+b1`DIDEM3z zDWa$HgTml*bwsqb+%cWb&8jvte3$v!18}^zMB47K9CHzC-`Fff4+PRI5eiW@TAMl317T;O}%b9=5^`2NS;N2VOOW`=z@MXHXbV%GWHn}|v}XssYLoD^|u zgn|oPp2_~ONUlq@Y2CTm_aMxLXOcN0$jt!*y z#IPg}jTj6_PK52WzQsH;oQ~LS74&~%YkP3Pf@3co7J%q%CE!xM=`6)H^6hqDJu38g zFPb_0ax7p8xK>}ci9K6`FXDobk4h!~zsxcXf6jnXG#x$Q9L$9!aicCdtxBP}R$ zK-RCm*~g4R=Ul4j>wfXtR@hRF%Pfg64o=7ePpcOiNpWp7adr?RN^kjmXi~Yo(sEa> zWxCynl9?Ip&&tJERUP~8*KxLMsRWNa*ArQm&YzdcaknAwkSe)GQkr3Chd0+L*g*di z`(W>^%HC$qdwc@Y$OdNd=s$*6<~{pIJ(*3i*((nB-AQn95w@Ip?Ceo-vqKaPh-vfT zSnPru&8K7d;TKOH$+bx}%-1@(N3Lhb;+S^fS=>j!+L~NXD11`FNH!dsgPG9ji1791 zQB=?M)$c+6bt&~Aq;M?kN2_0J%nPfj+n7LrdF5Kq+@Q1AcG@Av>FHTVgvoRKcATx5 z=_tReYwK|i_DQrVB$)NYk6xF^cdvvNf3Rfq&iMzGIe)esrMrzjO-rt7f782g>X;po zIDRiJh;_zVkD5!Sbqsu-LKW-#*c>(o!Q4)9ob@CJ`ACQaAnC}O9{R2s%GXkM*`N6W z593?IjcZ)wM@Cp{O0iHEqvW62>Tk%(iBMS7Fp$z!OuGAgpUOgo^^Zy6^Ud9{91Tvq zSuMLv5&it$HVnmVG*~kd8}EaP3Uy{y4KYs*#+hVy{@rIHYFX1ixz7Q;-M#ee!hlOU zsjq22F_@V<`W7_r|D}6Ub)QWwV9SE{N_=Ur!b^5LVH)a^Ag7OTfO!3gs?C?O&hvu$GLs#IL2XcIEE3#7I{X2mHup0NMuM?ph4rRtsM>AAbG|vHNSkP|3J_3+nBVwlnrn>XyV2t$YmRSat*@A;q=-^u1F?Zu zH=y%Wgm6GO;E5^)UQ?k;N2P79J=J#s+MCD^zu=)Y_?K^Ef((>YR*PyT5E6_1PT-k( zZO0BwE0TyrTwEQ5PM7SIPcKN1RZ~L#-bYlOQiIK?aRAd4Yz9`JV;|h7VCjH$!OU07 zx+bs*ieq7PNJ>Rt-+bEK8YF?@8mqp`x7875?w&Ec8i|yk_qFR@DZBe{L3WyrfTB!< ze_s^|BAQEgr8mC6KGis8vqGw_EOIPuj4&!GJ<}HisTR+5S_CyaeK-!eRu1o_$I79Hc}s<65`1BVETUxL^;}!qsOsZKU@xH zT0!k_LY_^f)EGJ+?I9lT0Qn^Y`Tl|4_(9#*DqwXq)lhF<$S%L1EQnUtQTH0yPIWA^ z{R%+zV$hm78jKpxr@wBxYEv^xjxg>kelYFTumEpAyl+Atuvg%_&8`&l2***%ug(m`w8hAAG4{F^LblTZ(q8O!B>bc zEdEL&s3-!Pf88z^lnJ}uv<o#}*)w{o{c?_OK4esL%J}*H@xpCU!;*bi&OwkNl3tL0cpA&RNGqsM} zuE%Lq^qrH|lUEx3J_z&iZH7(_oda;Q8Y8V&Zm`Ky=g3@~1Y&7K5xBS*pJ~1p57I2) zttLA0ukR5&j-8B<{sY6uEbpao0~aPVag*v% zl5P8^uumw%bR97BkTpiJQ&dpqJs;|oeaQXEv6ijW&eqn(#ulaXrO#Us%`*Z-`9_WD zm~ZQslk>hG$M*kfvcOHxeBH(yP~f$&yTbz61d|9djgx9f6$$e`>YGO_8JpDeF}A~a zF;-t=D^-ekgy#j_NNl31kvak$Wrx{dOy4VdT{xzv$-=N)AU>m3M`k#H%I7`u!e5 zD>11t-?sGh;nD{c8gnMu64;3R4PnE-^QS7f$qayjlhTaNFeTi!|U?!9l<-^i$MijM;JG5oiEt8u4z=JM@VZ#&AD z8_`YzPTB9g?4rbs(>B6VO(?V~HNqvClij}OhyruOmUoG%LUpEIZN2TItLwHdJqh_L zIOINPqb-Vn^Y93RM)7WQ&F`L-f*U($hH=`CD`75fAqg$)eoITM8~Yj;MGM1$gC~H; zU+l%?!$z!tNXBl>TDMIGuUl(RE)6%=Z-sszpF{zl1qJ0vR$6W^6-zQm9LKA48X*TX z0P}L^>w)$HGJdA;gi{34tp48KL1ivKz$9k}Y`tTRaleCAIjt6(PYUVu*e;L2XlZ4) z;r1q#OgZJ0(I|sY7O(HEHJE?|AS!6ysITYDm(k*mvr*`0`|n)K3QW+7XXXEY)s>Eg-wZ`r9sm~5+$Fl%$WrdiA^w?fS?)I>j%_v;=$y_u)G;O@;3VHRf+$_{D zesNJG|3LXmEBICjg-_|Wnd=esq*30+=#)+ODK$alXyr#0$?h-Bi_6^evu}oK-~~QK z@}5DRN}`#?=A!ok^vN6N>}QTYJRK5XYT%Y;)1{`EpDfEvgZA51lA#T#v>>>8Ksq)z zN_|b;6xJ~n`=Q&4WZm3A43~*?c1`o_8rBMm z*4UQyV6Q=e$B6GrOf>I3c&;taASAp0ev56ly;T$|V~ubG6S(O}XTROlYw-qJ`QH$| zqhN;Ibem%DEj-n)IZdaWj~Az9Wen0?*$}XYM?G8aoIgukEY#_n^3`FMhHv$$P>wH( zL?97!=SehFn`*guLFa4ZiA;z3`*K+%5ZU4NSMLqvll6}INMBjC=zcLa$7=)ruS!o` zCapOBE%hDw%xKWzVG>q>@zePSr<&(}eQe4}5>5)a^%be28npG@aBiVfLk^L1|x{N6GR zJrFXFf+TI?Y++RfcWu;p#|QCZ#)kd(kq9@-|nI!JIC|*X-86k-p>(tEff;4hX zWnEb)!ckHd+HE6tK_*Wudd`Bv@c!mF{XCWp~Qd;kg zc@^W2=A_@p&cH_@igWq`5iboz3LlTQR~~fHCp~n>^gij`ZwDAZ{sxS!Hxg3|BfF&3^D9r8pNd>SNaS7g za_k&UMb}B-Q6CZXu3wPIGWq72n_IR^b5O+YKPoxn*Vt^Ibl+^4GKC$q{pesa)&lXnfdb;CbX z4nf!4heU5wxDqTualgKZ_l@?93ocPjC*q}gd_epsBB9qSR51oZZt{u;-lK{!Q#V@)EU}FZl)VYmZ=f-6A2@m0(KIt#X+nG&B$e%vbRK@cPQX11hJ9TKQI-i9 zfG=^nY)2QxJS-20OH+l;TLqUm94!BYSnzSSes38`L%$4hq`_fI9gfOKYchLLFIzOD z3FHjohcVPaVM;Rtcssc}1)jqc_+>s(TfWTVZYHU2pvrDW^YwC|dXZK2+%_a~D>BP} zgI5c$*k_@dkHDyV)2n7T=q9LY$eREQKT;3~XKTQ#W>&Mog~7-AH&(m8CFNvH8Sc=C z<4eU~J=Hvquw3NgTENC9vV+CKZ=TMJUO*^73XCV+NjqPP>&X}H) zuR{R-n;gsFYhgh-8IEBHY?#MJtHB1%W=U#N3Ayrn_>ZHT>y$4*}2-Jn>EptQN0%9s@YUJ0$MI@05E{@K3K{54$h{wy(`0+{Qb^hCs`Dh?j7 zNCYdA;t!@Y;9_>n^fgkLGESU(5@$=0!}T{QIxts$>Cv#eJ&S4@E%-^h+J4FeY(0?Y z%4+&}p5zabe(!ydn8j0VO}QB8#q14IxQB>b?;_aG-DW-f12QeeFvj7CCQXfs>DQ=p zVZZSS>^>V_zu8Vcntkn02p7c1VnE$0Mzi^Q@qWB}QQ;-pQ4&P^ecu&}gG%VzU6J?I zwK>{f*~=bZduWZ6Dab4Sn2DoY#>6z=3cQLjV3&$!Urzf;My*7EQyR1JG z`r{bc0HQ{uImsR7_SjjBoEnh^j+e`b|NSV6Bk1F9AO4w$dikdmkkoL!zuNBq1zJ?wA6 zCm_vl4MPWJ`Cl`~XEnuoC(8Yu>Xt5^|9v3dG!y^+Lz%8rTt{h7smGQ9;qv2yt{}GR z#f{eK<=eXXg3LacYYfw3ALaFQOm_rYyw>aw6ty6vX_Dd{6Oxzy{2OuH$2vzP*fDYT z|E7DoI{-`h}(AoR-C>MvWTBL(+C23lIX=w!?DQ=K~;;I zlL~n*Y%YR3-}f1}nW98pzl1#C_*hA0#;p~|vraBxUC&g7$e`g;cJ;c!OFs#EWRsnj z%=9L{8c7{VnLMH|sVUe61~VT8Ht@mUL3z14QwnE)_0a|uU42!@xUOh=4MH|FRFTh8IbWLL~~Bgq?N6WIaxo15g3HZ8{v$Nc@ay6EkSn({Z0h zOF#a>WS2thBY1hkC8MF0Fmv)7RLKLV8f&YCcXIq(MVRl61qc5$By*cxD9!;4Kr(HQ zyqu1N%l5Kmvz}emW=XxE4pqu7LZh}bpgF&O+o-oaY+gcKEgDP#0+G!Xa|N22`F?~_ zsCQJNylllB-l0?-M!0pu2v_%l`_lP47JTuv`2|ko5Ha=iB`zA{9gS#C4mU>If24nD zC<=nYN#pK256wX9A$!Xk*#zA4pD;-r(nyt|zM)rhs99B4M30M0+?C!$L-*G~^E6?X z@c2?DMu)*V5{D_x9EqQWP3dTXc?c-6aJ!6kVxBp7t&hl1(wt=nu_D<4x6JoSj5N8l zm-w`oj85%i3c)d*G9C_nn3^4nNKeO(;6fRqA+sPJ0nS1A7#Hv&=q~Y2rDK3P^WS^H zQ<v37Iy>${Uk1tCUt|gO5{I#_;-&g{kG@20gDxGuzI5B!ytb zz+FTIM`)Q79I}~zIFC>xs>jyV^Yk}ge;P*a&W+g#h+Mj6U_Iy@cav|INsO~ zMR&sK&JUoD=X|qWXEeg%Ool9AjRQLQmnJ1aRoHWzP0XDYl$c1g?fyAN!1GuN6uj}^ zHR1P#BMOQ5AHWp6CM=1FnZ))cz)h%vJ|X}{l7oQ4#>8FbX4r(O?N2$`-{OV)X-!1{GddO2}cJKQv7F8Z}xqJx95kxW{H?mH3*n$*~%~NP;ZE{ zI~h zz#ekM?|Y{4IWwgYG0EuP=+GLHJ<@2n9R}7ASr~!2;ND4r8^BCOBnAnWp1Va!SWr+r ztL&Aaa{9R>tJ)k=m4{7O0v?s5hNp_C%OtrW=V7X_gpDtNVRS_iNsCq#f<+uVfPiuT2LykYN&I zKxXf7%ijl}x{#AIz>UnJR*3*rYLXTSM!MpBqx0;2zanMSHrbY*sw#(=P72QP;C*mj z=cvr*?U;3!s&OT*Mugjx(gs;47#niCXvER=l2f%a{NvA1cu{?xfz(cp6TlklgL?JeRGg!z1DTxp60Y|Thq2} zPTMx7ZQHi({>XDzw#E({G!e(- z6V*_BmIHLPBw~&UaWszcS*^*h8uXD)Ulm1fZm@bd$a%8Qq_wiG!y@cJrv!fi&!^BSVvo!unw z$qI(uYsN`w%-E*<=x45y)an$mDELg(HDqH}W4OhvuemNd(kE*Qn<_69=ssw~vfbz? zgYX9$mz1Y8%EyjKc)%NwN-qN5q_)CGI+a~0wMG>a9>4e z(I6`Be68QO&M>`up0L!9cRYepXi%B~Jbo)V+K(ubTJcHSSzSjldwJ{uO=&Oow zgmLQrmPpHnw*gcPiPqjTtAW~#a&>K|C0j{*y}yaOf2Tl~ybkb#wZx?L?a0|fIbsx2 zvKvpNZOP4UXitQ<1AL-(TQ20>I4jHc@MvIO{br+1c~WDWqPVL-k2=$?g_+qFRXVy7;!@Z;kIJP=RYwi194FQaX6clf}cM_>q5)IpR$U|+d$0LWNYt7tP zPYsjq>L2qYw5K!uG6 zsyIC>!d?GjdJA|np?Xq=2~{nANO%*s`a}w`?gjdGqYDYwWaUr;VtstSrq_Dq^zp`u zV@Ng_948GL@Imbeu^y#z3Cv(Q=WL=|d4*^Qi>AEoC=(T!kAuKn-tS%(pLv-r%7%*c zU&l4&Sf)y3g>*yly6Fnw=nFac#IA_Ruy7~v@RqvOoV0_2_NxU8=ttA6k)+QIq@<{& zDJP8k+$E<(5m(kX*#Z{VFbAn6z5qgZNO58Ix+(pzQpBNWXN$?M$Ydn4gh@a0D<>v^ zddY0RX(c{v%*+=f6Tmg+h~nJe z<~t+7vYU$ z41^B~7Bl>ZSS``$V47E#+cMz?2|q`hr>0Z|10RdlJntf?z1N()&Le;%X9lpmFki2D z5zOJ^F>0p_?)*4J1e;lfeGtGAgrR&B;rm%Jx~22=IziIC31|9%*&I=Jv1Sc@H!CEi zizwwp5~k5>nd!U-_S3U)G?Cy;wsY3?z|UF?8FEpbQuEunxQ|CtcKUE^v(6nZUaK~n zlj%~|_wAgY+z*-~rF3Hw!?`xj7SG&E&UZ14*|KoVlS5MXijiu}2pg#dm>cdY2kCyC zdP3qc-%WL-jf@EkvK9oa7}826*SNxQrsVhniYEh2%5rF~YX$Fd-&H%0T?j(1CENi` z$oqn_wiPS<;UY};qvizSEz*hN1FW#3oj+judV|}wxG#UW(}+>V{Msx$b!Ya8%hZ1% zH09erk!+V&z?hy!MM`_x*7>B${If06S!ua>t)qjuRiG44r)8>nd70u|)x$xd~P21ge7g*COXcnmyyzEl#ZS|7<_Hrf*{eh&7#x?NseNu5Z6O+npq2UkDy z+2YLSr3^aJK^dhe{0cA{S5sYpvctqsb*t z1UEjK(7Q|ELZx{Eh5Fr`Sw8Gnb)B641ztbN`%6RJwBA1HKu3#O@8@k z#`_gKhgA3D-o8k|Vov)wUn83!Ldq062B)B52<35@t32?x9eaW+ceS{T#{0%8*JdPr zfVX6do+qJ8`c2W-=*Ew~DvQWHk?kEJx)H4c6Fd%ine+1QzS_*luIV6kgnMmr#shNc z$jdTCD@e!3DYJ$e1dc=(yJtU=er2dGH?%PIBmf%q<5JV~EwZ7rh8HhzldpI?6FR5o z0z!KZ6PuZ^R<~9F>ZplMPGBA%Lu2R5<vdw2$p4oO&eQX;HwI z26=yzTey&mMLnwJ8o@OAjwpdPWI{Dwl@Tfw$w^6ZY553&9ejfqb%_te-8s$EChk#_ zXiyN8<6$F?l+Xp08hx>s&?b*^&FaKHnWl(k{ej_Eh<;=v{XsI~{}B~ll46I<2xpMo z7K6V-gKlY>K&l2N{`hDLf-hoR6??%DZ&N*dT1pQYqIQbt)4Q?heLcsrG(o zNRLYfcsn%)FVN*TLB@a?%{@-Dy}0Pwa(M_WpG$`Y1N@KHkJm0VVx7J`Hs!8jv$Kq~ zL(aMrG?bt>}F+pq($%u z)~giM$)s_@xH1rzt(mltp}f+$hc*AT$$grW>zgB0)zUr6Ew*RJ=P_b9JBieFpN%fm zd$rmo_~IcXwDZ@_l2ZQDxjmR$pMX8v5G$C|6kp&&(2JzEB$@2DzObQbzS65bD&!1k zHBokZn*?VVXl0#7#v19voZXaWf*C2;l!Y$wH*9RmiCUlL5b}?A3mLL0mt>RKDtPxN z1Q%rS5X|V4)@L0olWyGwXD(Yw-5|FwPJZjEO|jTPR|s$RJcQqF7gN92Z3xip0ZnJwNvQoL9(}L`ZXRh6Rvxnq(k4{jbZ|};DK94wfNh2^U|ATAn3$Lk`Ukf_r(wuBSF-*5GJmrVgKBHlE>O~?n<5Nn1)xE zrqCztXtwu-pCu;d(->%sOP&Z^SRg7mNuh_lX)#RV=I@83h!P{Xa)fq)P6_L0h(KrA zOC)ga*wXskkVO-t0)K1|X-60e%lql*t~m|zP8#r~Ia~O+=TFgb(CVbw3(B}#^#@7; zXBU`ffUStF2nu1;lA&k0dqG9Sub;ff9)}U7ypKjzbe^bzzM@X#2U;%SPmi+4H!0%C z>I+BHDzY{oEVooh0!r}fNF5=Td?!lx*bB2PaU-_>&?uysNk^~LZy`Cay?{~X-)G#Kc-&p}Yp*_|M*Vh#Va?rO&2&GFd9AM_UC!TqF@mG-ZySwg$M}J=#3X@WI?aph zCK1Vr^LtY{Do;I{!{h8|;!D|N5kAv2isEDwFXk-~vG*34PU=MSk9{GH5JHrJ*s+-S z{ZvxS7S^Qw>GeSHx@3N?l1Ak~#0DpALB00C-ALeJ8~r6X+M1nQzvX2Z+Zd9a^q9@R z8#!%tWZuZaKdhm4`vSAs^jz4g8G+)1^wUs|*eBqr!JJvbfSh|sryMcipRMAx56{~7 z*$5M}CPqu&v!~d9nGEcSOq|_lRqg$}mZiWby}+~#qC@g!PO>63ny)-`OOp4aZQ%Y9 z47(o6?)~waRF-DdG8FzcA;oBPq{<9n{SAu?XhoaA6O0n^WjyA3HQ6E5PN~53wL!p` z&!p;SE5JWl89F>KI~v$XuT*UoPw~uIeQEnNdur66fh0+YErm+G-)1(az&ZlApd&+= ze+@;>xZw|KxJEz97c;q3Vy5Ekl)2ML&#?-r~!QuqqMXdlp529Ub4IP*Q>P@n>4# zhidSzJc*9IIEq-l=*_kowH^`BnMwaE(RuW!My&x4L8ZAKwAw z2^-Nx((|5!7)J**?-(c!X@gt&hcS{+@iOn@V6hWmp6HQ+j}XBP2m(vLhzUzBb%18? zHpvZP+m4WsKbTb@1}Lt{D>Zf2BATZ*7lm1W<`rOqypwqi#6=EX3AwqpNlv4aJFQ>r zRNxy6%{-~D|F~l*Btzwriz&>bEELB&9SaT79k$QyhG{sn?fmV-Z4vc_df1!)*WlWwEv^Xdag z3}{@qf`eH<{SzsbBi%b0V=5(Dh#!ki#4=D}+`z`x$5vqehLi+5V>_I!oxQ$}wE4B8 z@;R>|8EWttCD%%NQDo@l3jND=$VaTWfvW(HPu{}am`B8Fp13NH^E-(h$bG{rNkJ-+ zHZ`0r<+y}LE0TW6KnKI)$!xI?SRVYRv@k-dV$7Ld2^<&Aylq7@nU{RHsc7zT1*Tt7 z-u5;@$96!TW|{inl(@N5JJfm)51k>fKxJjLNAVS>*E$hl=YHSH+*+u_+aM6=%3bwD z*414bJyk9x!7K(Gun;v?M*4V}@~zpG`Ea|aoT#i`rK1Mr7d19TVbHN}vc*}@JgC7< zziwmUtSDr6?}nA{%I6}kGfm!|3H2@Gc4_Jq;*6o1N}c8wjpvN}v7+~ULrq8O@ccdS zjQf2534YU(2)l2&1G=UdNglCoik1)efs-J^EAok5(?swEDH6P}*LI@}UU-QDd~i5i zf7(G-Bm`GwS0+UKs`)w>7LJVw6u5V{_w2!xPgZU^ADWrXURR(b6^nIGM>`vKtlyQC zdp+`bL*njgwWpMp^NyBVE!=#3tG=wj$7JTqQq63hLpJ{yYUfUkuy127f`FKE7C5Pb4eap%BEh2Q-H)9phO@*{S~$%9x||4j%o ztWzu`jGyL)`fB_9&#s4`a!3L!NiK<<6!FQh#G-Yac6DJh&^&89jOj!*)Mo=qlFGL{ z>P({qiE)SJ&!M+=pXM~0=NZv41)4~$1`QP#>R0`HkSa_(%4J6g!KaTdE9$>a6xK2H5|cNh@^PPw?YNTe5CHGi-dmYnLT`7P(xskDyz8+YGl*O_nF zMJ%PoLvj&IZcJ)q6ra7E^Hnzp7F$=#vHKC>yf!SxyAFi~4ANQ=GXI5q()qUlV82a4 zkWqYUg`bFs%TbWNXRY&R2Rj-+%c;7nUD0E2b6_j3rkNU`?Ibmp(1Qbc^iw@|E5KI> zO+_=wXgEB%o8BIqF$tul@p~Vu_eOgbDiZ5Vnzc~E#V=W{NQnGgc@Zpu=Cp@KW=ZL36A4nj!{V6IXpf0}K z@~N3xlPfT|fB#UMcSvSK5-@5_H3D2F8xhqu#jczWjivQK&u3xj)6T7)5GVbm!Pyg8bPg+<4NyU6Dv(l`Sp;?hF5i zOQ_({Z`lLVT4GHj$TI5~;-AFhmz9%0mkPm?0PEIz8hY8Cu0n4J@R808F^`nTSvF=I z%|U=Nw8ts#k9#`P;Wd4FQ)XG9e%yh-PYQuRWrUfIfYD2_C{ zS*M=RevD$(jI}Y0YXcUgZM1`5UDO234+ykSo`Q2=`pAY1tNxgVbC z(}Gt(!cYe?86;JF7t~QwK1%wDJ3f$woqD@#ova@+v{$oARWc>C7cLHBG47` zut|@dmJG>|hmE6iJ>w$crxU^rP>1?`|0^Cv_UfJ0DCsY0h6%@QV+**ioG?@b8Ef~H z*AqtJr@94&=&g9qK99bI`aQ8&d;Y{$H~_esl$++USA?M_7uSO*dMko7=5Hv*`*uhm zcpm82KyAd6Ep}WBW)%wjJn5sqiUZ z%#;(viO(=(Q{z!M$EwZMPq#b21(rj=^T_emdlwEI}+`w*X8HyqDO_~N#EqnQR#(`~JmZpuzdRyr`osSLjL;que`TIc9JB@8sOqD03uXL)SBBF zQk%DeL~oSp;3UhhD? z@;7|RbKVd+0pTTIKg+P-CJ?_OY6F*iM}S*%E)kOiu4F+`;eXJEeF!1=iGImr5wHP; zxGtuA*{k!>|2XZq{qlRp5B;yk7c5_?$+O|N%v%nJ#Uf$?p5t<*QwL_sMbr;qK9$sV z#XSGfxi4UODNryNARr(ppn8sEIUzuC!FPxlAdv40|6Q$(oeYc&oDAqJ9BpkXs=7vyOf_@sBAVx>S$|rKt7Dz0Y^_WR|QJ#BimeY9N z&FY6A1IcKD8CzbR52N%6*g4id4|Z>lNf+3@R$JXGZ5&IZkWCA(dT8cs_k$J7UVLZT zJP|IQ#(dTyVR1sh8z2x}xN7~tM%=bVdfrVeQ@i-T96Q84#~Pv1$Q24%cY0`ni8*H& zTY~Lzf0kv4Z@pUHZrCPBZP|XfUttywt1XhN)!0;jbid5(75ufV_5}aFmxy3o1`3~9 zmMSbD4ebgS8Z3{5B`iv`lv&>xchDe)&CP$g%hBd)eRkC}cG@ixJOYIk1ma%ZOAVdK zISB@vVP?I)`fk|O0FV%!!U{~HFhI7#qXa?y10~WGo#o8+oxblZrDe%yv-8VnwB*DO z?VMVq$zgygcv3(}Dv}X63=P~IPAywZhWg1jRlD7@Hj9~#wjq(Bm~)4)pFkNZPyt&K zQWbKFr8&THI!9N-`}2NobSZ`$u^J!qHuHpIJKgMrc4tV+YtCPO8h(!KFHc}_ULy*= zrPzl8Oc9?I4Fa60=m1G^et9eu^z|Q?b=UBvF*kmtse2<*-URTP- zW4U@ORPi=7BrB!1UVi9@TmeLUDY=q(#Gy?M^+(jio zQy1@xK(F}4r(i&I6V4sG{^5-~Z&c2tAHbyJysCJn+H=<|V~AeknXEY0g_VV*Hb@$~ z)^;V7jV0x1t?#TCG>2?k?H#$>^>qz0$AYVdjNju#}S0e^8Xga{6v~Onw5M>0y~jYP^}c62g_= z$k+)9m0XQz?nv~K`x9|Kmq$630WRf*2w^I;2#u?v<*L#P7+;B?%~Q%fnUD(VgJ%;t z7vav(S+8egvs8p+5hlj$B9IM5Bt}FsSaZBJdB$XgUX>$?334!qQY9V2l{@5Pr|bpK zKlp~%OcsWh59U>MY)YakD<;d3Dt9c8B4~Npzda!FiFq*VI~|dG!zGPBUSak@8eg(( z%~U;EPI2FwU_FrrweMMBouHUD$8~W1U(IPJR7U2a{r_$h4A6QcUBlPtPOIc`?So*UhPt!ZDkDktq8Kx0UK!VvAo&dAiY}(RJ9go^|UH zb@k<`hdG$GiLNsp2aPIGf4C(Ka2KXZzWDf-k4&O&2~Do6Vt2y(6^E7t$UAoChiGG! z8wY56;vr_{s9S!*wkk_m#>C5(5hLX#jd5R4>grPJ!mFI?YnGt?szUrQpvRK7PEJ7% zOE~$MXedz;oSE`OcUPzB^_+(s^>hD;g$4~Tcr6;x=uo9%C^l*2KRMp!e;K!I{E9BBV^RM(njYuJLr70Z z@>ggT-fyEP*$Fz(28t!aWK?68=elIXWqFzNjs9M8i2rA2iOcj(?#x7%=h0g?cRDxT zm)TIALez6+yA=^>Nf9cMv@87BMA&>uju(%nG$9=WbL|BaQ=FmAX~F0X7NloE`#6{Z zh#%w-xuW0nkO|IMWSyH6%?U1d1J?LZbcc?yE0HnuPLwgz+}zyBiT3KlWMrke=3&Db zVBG8c6#c<)j>5Jt-d$&h`8dP9slUO4%d zyrgh1`H&iZ_+?q%@B@L`=5%?yZ7jMKTmGunnrHLsn_8TXOMUnQN&~h?YuFi5L7>G{ ztgAX=Q>W@kQaJ(#iSyeRXf)BPxekAiQy@4)oy5-+*$R2UJ}Qy`!|1+*Qk@?(>jEgcxXgO^k_W^G(`lt) z#HH=|gaaoWj#O&^t;En=9i=*LiM5TZ$lPL~7LsUBu#K-x07UD#fnqzC@b&yD7Nj)v z*8?04)EMEC7+d4J?ile7*?lJH2+7$QFDDBf!NU+8ff03)VV<^=!=U1nq4BtqvIM=d zBNY~ypzKM-(MfN?;)hlgzHZ}Uv*uP+^CQ3<54Xw2cZMhX?ZoZne*5ik_H5{^q{@>% zgI}u$^V{&&gez+sJ_gt~Kqp)`{xwvk#cYHN@;fp}6JvBqK zq*7bR$a<7~;kD8f`Nv$-onU^@apz}Eb2>F-6h0m+BD)--Dt3)7pzY~d=teW*NeeN% zFwrI zv2wjd>S&BL+GSJe^0A8fz~+){Y{SCZ%SWOO@PR*ez`DXr&0))B@;=X)T&b)8pWaHGP`NzZL_7sPI~x2fr~Hrs6P7qYf7`f9(Jff zkU9tX*IMchsC`>}`F414`F8B-u)m?70AYPi6g*0d=HzS-gB03-!Zv0ow8Q$UD72$O z4o?+Y(;_b)aehJABHav!=mp$eR!8+6R9|m{DaV{rD|mCleBlP^`G@2II+_S5peqll zv{S~Ht0~+==B0_k{Gd9YFMSAHm2>z~xXZuL>WN_d3bF!wlLEJf6}qzjd^uuF*RH7> z{#5bL)Srn&=F}$nQp;=FAXCHOR(U z+t7a;g~j9MfMrX(c37BG5v+??k<`vIC_#;m5^N_13seJ$FdUFrF&Mq>|Qlz+E6# z3iv}i=H1(^rF&_G=gM}ZU~1WP=f1oG!;L+B5rSRX@QCA#zO>VZ^mL9JJy4?`v>HOK z&%5;UI@7W6Fm;JzaYg5n{KzeZo%L|R;_>#O;CZIHzNOKXAnhIPVX&ys@!5H|plkXg zvnIs$>tSE9C#WN<=;Cps>v7i5)BFuX$T-BvG>tx~f^*lXp_{H&Elu$jSRn!wc@cp0 z%K!HGy78Fh35C?<$q=(TeaNkK2c7dk4#Z+&b}`C-s>dp7vOSAZf(Dou&AwWsuxkHm zC+KtL!>vVWW<0M?&2HeH-gk2_$1(O(BKq7f<;ixh0R?%4V?Gj~Yk4U`mATfIt6sbX z@7%A3pC0EEm;QwOZ&K7CfQ}LRCPS6)`Y&Z=U}J7#?D%i3RG}(4J|VFnGf7Q3CQYka zU#==SHBAld@K7IqclYOA6Sru6K7Jr^AYPaxFE(;^y|8m&BGd2#1yiYpfF74bOAGc} zm;r;J0{xGY1NxVe``63=HvdDy|1RH*{I8;H=4@?fV_>3pU{7b%Kt#gGX7g){uBAn zg~xx8JbC{?elJ7*3H;~a{0FE|`u(^6cc|p0z`vI^KtK@Rj~Or!5a8PY2FKVny6djq<#G9O3xuX1BQFDjfPes*058zv8b}fZ4+{$i3j+@a2Zw+F zkBEeYjP&do5`3oRK16D1K59WOl-8#@;l7bz{jFdv5y3nv!` zxDyBj1O%jKNO;J|cpT(Jk~c zKtMvnK*7QRm3U7ze^r4%5Rg#NkEAhkXfAxX-;LrAek#x zgJLIBgJO#il3S`XT0Uw{T}vIG3CgACLQG~5tAQ*>2s5Y1z!*}*3r+2T4b_0r(3-=8 zd`>o`h|dH)&o|Fn^meo9r0a4j|IE+&+cbCg?T^hs=*hd$cI|A05D2d7Ob(r=PD3Ig zYY580o#x`rWdC^%P-g-b)ymXBK|ZG(#{EFId?o&gl5yGTVNIHGRq4d%$^jk$iH9j?S8kU~6RJUAl8q1wh^jNQbIo88LbAa% z=8$@@z-Y2->7XZa1nRa6(p@LtDPB+Sd)#h5G}W6ec=rfd^f~g^oxX^A=jv~u*|-O8 zOjM7i)vSRo2OFW)&J6GC>88?j@C92Dj)|z=ZD1ZGO^(f?C_yK-SJG|*;u@`iy<0(9 zA`*;OZH*VqWzeIC4{(}>{*tfl^#V^&F`l?AmiP_*u6KUD+n}a|Z8XHVG&xo-0lLPl zd@*SI+igLkosA0c0>*6unnBT{=i-{#m5rjUiT>(Gb>epK=2~Q%{cRjCGzN=GPh6g2 zSGqh-9%~mdk{8KI{GF-V(C7H%c63{cIYfD!RAw?K{NXc~AL4*Gp`Q?FQy!Lzn5rt3 zV)2q3NeLMLpt{&zcqS;4tQ<-LJl68v5)dFj(cw3%E_Uk?*Vt{QNRE}D$IwF?nBujM zS;dxy0@s?5l>_oD>Jlt68%ej`aX2z9HGY%5kkBxo4~i5(9-$$o6%MXpdX9yn1J7WP z83E`}nnF>6Fw?cuKxGE3Sa3bk|LBS7ITHcIIB3F7XSUtPCofa&Bi~PDMnWE@_q1Zu z`wr~)1SF)AibDxWqA`sX;hB(#;8BFwNGnQ{L2$;cZF{}c06&$e9+Lo~1e+NvLM=o^ zAxLNMP^i#qC+mc}qkS`@;o#dli-z6BZGR2G;X%)G7OwaT3#@#Ow8+Eo$iv3p(wCNo zjzd7HC`y3mQ!ZVCBtCTZRZs#@O7A!XXfIxDURp6VO%jAHzjr07i+?uxCMq}J*PFTA zyMn-RBWK0wj|OVEG|IjSSlJ*5YND;f{J)MA6Oh?j{!In2{vaKTBNjga#lpncp2Yai zY2{trAyD91jM~MR11<<@8wPlb^2j0?9<>INMLX<6H;e+fM)%r+ySWF{--)nS>zR{4 zo;`=3K%UoMl0P}Se;ooEY{Rdqr4GqO!PPHX;Uth`FMm4m1-|FCP(op~Pgs5O@IRg> z&P%BkVv-@pAUj!L;U+M9?(gpR&6U(LUv|YBclbm4!TUiXW0nWf+(2BrX=PvTsHA41 zN06{l`SH~?(miMXT>u0Mo$yrww*_*GeKcvF;5B$3fa!e+^*j$}q0Fp3ps zs^-M?(8V(3*i(CyELtRNQ-_#xA5gur|HV%b2=AMf@Ue|DI|$Q_y;v($1EC#n28yrX z4X+J=Asjjb^VF4y$;e=kgo2<61%o38zEndhkBXzNGB+0pBrl`3V1aBUwgjBC>}kLY zz<$1nF(lVhguq>QxX@IlF_oZMK(OG45IT6~+9}ln+zp^7l1cWT<)xb8>dEAwBbq^o zsU#s;QFa6?pvQ9lr0$^mbI2wh^5^NVC)OO-?cHP`4*LQ7>S9a?&I3Q+P8uj56W&PR zWC;4~&DULw$=Cgc)#f=C4FG+%F_j1U>zX+6}z8W^36K<3hZ6HE~lsYCV!5D1MycC;HCAnM$f{ z=*(46qQ>M2qWCPyv7R8g1S&If9#csSu`*(wrt)Q)k-4JMUrURm?_RhF#vlSWJph5o zk-0Q%KqA41BF3&OGEgt7rtNv}T|5ffn3UN-Hj*leVr-C7n#sS>beAwv=+_-`0^48x zu{#dgRTsMq$r(g9r+|?b0MyVJqM(nctr+TZs3Spd*0P6S4QM(%CL3-XTr~ z&ftri+l^$|@osTJRvSQM_54aD4dOyz`9Lo3{HVp*|?RU4Ct-axS=`IExT~3)m zl5T!%zG^qvIWcw}`JyBzpv{-WS&<_*<%*_VP|)=h{sZQa(Ba~jom2d4YyJ%;V#={K zp)T${;e#1!Ke(aqz6DLwuSZW{9r_vGeR_2E5K}i0bBn#DI&_ve?8;v56~#vJTrN-+VXFK-(Vt_cTB4hjOp4 zMk}=yxO^0ioKR{LunCDRV+13jp`(j#qTWZ_j3e0Aw`4W00r~!nMFW34jAd zE!D{Qq0DR$3CXPzZ>R2%Ao-soao=SYuyBYx6-s@eHADH<55Jp4hO;QFGdOIo{@6~_ zsZYbFF`vL6;O-Kz;vCmL-IU^KGvCLW3UCXRWjtK{Me#SeZ`y@T zuCDj;j7gV|{4V^hi{WsahEBsw2hYCx1JAYPu;tJ}2th{X;;*6SVncXA;h4%JY06Y8 zGvb(*X5}uK3xYy9g*n|h=EajVjpyki?-Wf6J(@l65CdWr|B*D>8jUd3zUO=6VlNcF ze-Byfq!qOOnAM$cNdj~!jf58Q)amkae8;BNy20&yepe2TiXzDPY`>w@4)Y{fp`g?05MC&rC_GgLzjnZ0fi^60(9qz!a+ie zgPBUjsEsr{0or=K8}j&Xs%AN#y|5nw9?YKt1g0;*Eg@mxwoeGkBxhz#*fMa2_=L~{ zP?=z&2J|0`#&6@u&IKh_YoiR>i;8+Lsjmb=C3T=-*r)?w>CeHk^xJTgtT>-bLy1wS zaNm0-a-6~8dxgh)Nyc}ICmEC0gNU3yVm33xVJfNU0HFbd3}0hYP7#4jrOxI%j5>4t z6biw|NJE)iiEBUjXM?(;k=?|4V?SN8;ph z6p5PI)$_k2`4ynM0}-p3>}U1V-1 zXoM(#vkj`+KEL<;Dl%?_U?McCVdyjj(l!<#qA1{raY3ml>!6Pq@R7z)&0C+xLtb}&N8*x2MQy}?d29irCI4EdH zNFYJ|ZEg@ykkDx8SY+ZDnCvj*T-?}foMIG|98^+3MhXu!f`Ea98C-dH+eXPtio1)2 zNNZ)LKA?h+A7h-7orP<)v;D9hV4SR7kOK%(vNP`RV_du~goN@C$u8$*#*PVT8V==s zUy@|dWcxWRTi!Iix$5f8JSRch#z>@Nxnx-ppLb=kSddHZ4{F$ zUKO}Bt9XmqP)*=1Jf!$zCok!XXz}~}_<^^RsnCY$Hfg49r3>@37}Z?_3H=-xPvwmK zsgTt$yj3sNQD>sd#8O10eu>c+V=7f&szWnY;|Zkv2og_4Y((yNK?lna5TMA(SuQcY zkdu@Bu9q;}rJ|yS{CwC#QG(2AyD;uUm~~m@XQBKvRO@2o4hNp?{(PBcnU54VtNmX8 zJ1(G`Yb;mHNJqv?PK>Sd2`cd_3w^lxg287F38)ju2Sd{CQqQVOMZ}je*V?1rRLij> zX?ba}&2lepz4EthY(fq*-q2_&~|df*R*87~k(K zM}_Ery3UngJ<{U+3rzVilkThC&$4o?0JlRmj&{&%0vVk_#`p zCHg|aedy2qwBfU`q7ITVGZ5l(pemg_=V{EFn#`#q43Vc6Hbi9Z8R z5fq&6Qg~Q3AjR1~#l^Lv#@v1wh=lkF9dPg-ZR34+}+tx<}m1 zIuY-uWdFTZlf%8PUS{edtRr-2J)*_0kAj+s{-bu+uR&(&qGi0KGyje+Pcgg`@P~bB z%zF+*Xg1VCMnB`%a7ci0j!YBCPf7l0pr)nfG+_~0Jy=E z1aN^(z#r6Du+IxuBPJd}X~<~`JTZAn<)fv2nD$DG(vb-EBp!L~uJ@4++Smt3s}g3e zVEu90f)N6)x4vI$9;sO$0hvllzJ3&wsR>rcGS5hm%s^*eYMgtjw0q%2N9=*R!7*cj zw0rd%Pi(M=W0q&KXgc5x??)@8Pyfo>7hVYbX)0k?*?{$=^VL7r?4;)}J(%?VStESj zYXOP^bd~5TDa}&)S**iY4~Y>9IX)j8lHBop4dqtbCzU1_kG>+$p|gb^Vq&tzZh5Sg~g}A2Ob+0YI;~VAwT%ZB{~|ITev*OT;%CclefhnC$y9X9p5h{$$zZT zbRBCC>~ov==Yokl@6H9I!c$?uDt{Yu&ARgr&~L|+7&sk$N;-0VDEPeY@j(yCJIZz4 zJ4S_g7H@#pN^m{T;CcrmfX^EyVVS>#0a6z|@ z+O5wQdATr4Wzw;DmVyDmpn8=FSXoZ?7Fksy7t;+S{z_DCudjRzh>jgtpjZ?uJ-+;@X?SWZxLoCr z^~H2?ePc|Rbtybj#_YxZ-1h1Er4ktbqAHunN}@?;)O%djvs~FsD`QeO%vDM$s}>ZXLvksYx`-j_0}wE7<>T`cLE>cAe|C5pg zap4T)Uu%*QlmhI`cQi=}vTqlLhbl$5*{W1cBl4A2UF&bOun_U=AKE)G`>TfPMYu!1 z)}bbt1h_-(WRnv0+%CZlRSMYVv?HP9oah^tbgUtzp5}2Q$yY_s~P zPjPOCU8_L3~0`b~17j|aXH zY?!8PPFD1Y46OD0GqbGGakZy8R?jnVtk!y{uK#(I##_D zXk_dVAX?u72Q4IUPQQRW%*g_cHOUWunj z!`rYh=cJ^ohkGU09=*|-35_yGveHKqs*hmv{U<4eQq=NT5+&y`!Bt1(=x zA<|qra+TI1+Yxp$@F>+zWfHHbl>xC7bX#dJPFCi?mD)L3zZ$Ya6WK>;ie4YREagCf z04-5nFP}<}91+@GK=6d9TccVVtE(Qqi*faG($}7KHSdRg)#y1|@$MHd>Cn#YdN5(qj_ZSyXu|Nt z%7@neTC23zMPsEC+`kN0g1jYv*L-bXfCZW!L%BZKgHQZab0}p{757W(nl`hx^|hQd zp0yQ>R0uGz{iacd%++yLF9{-$GIAYA(!72#7bDDe56swRwytv6u9)+PPSC*rPqbAu{v@$_k+H#?t(h87`=ot;m~V$W_Du*wYFvL{ zZ>~rU^B6KvOtl)}212Bmb^-c6q(}|LzWL&m4G5Bnj*M5fF5XrLVY&Yub^_1Y8{0m#!+pN(#_1$2)Aw?BBoMq z9d-d{U(z4M2hv5j-pbi>`P>+u>7R&#%`=W+>O~1&qy(oT+{*#>^|v2QzrN{p%1xa0 z0AKa*7)A|s!o5kIcV_nRQulPXR?NrciJ>N#i}fo%yCwUOxE&6=)7VSQ;m4!1UZs@7 z>!rMvYVDRI+?|PB>jgzjY>A~#Qgr$F$O^KElr zL|VF!V)MJ2AB3H3%Sch1J@Kofy1y(RJcnOlKtMzjZxzw<%Er>X5 zs&mRn{L;L>&I>!S*SgJJyuYXZ=1WEd;Uni z9j`hduDGQH4EaBKLlz~MVjNQRSjxIaXY31Cg>!ntLB@9#-dJz8GXPN-g+(2QRTDd% zEtx~|oTNN571!@Kgj9^ke?lubFXt5|q&hbUDk=J@8zXf(p}+^YZusvc7l?dsx=Vj* zQq}-m#)_H<1z^xWVg95oPbooEX&XD^6~=!jGywMxDmnSYI5jcwlxaO>3QFkTvY$$k zZw$D+thB`?RkTgB>XRB?@Uz>ec`8W1-AxG{+$1sU#Ok-0h6et(#|`|LP*PF>v&$1@ ze%Je=`?0>5|0aE4;^}Yv>YEza}b_LI49WMZ~`U%;tAK;OgZ_cHt)W?x*CU zy6;MMM)z+GTmkOtNY?tgbbC;1RXS@i*Xp&a_PbXG&)+b7#I}!Z8PwbQq)j1ixa+{d z&@~YHjfQkVJ+@*{Z~MQS^*8QbhWzD7a6qRwmHAJB@2kk~z?Wh8`VsUe>;aVOpH&9F z&C01!RhCz>ntOJ?(DacP`v^E~D<`ytrM1#U zF%ZUx*(&BkpC%X)ifaoye#uMms9RDxUA0@39QC46*o~ za!QDS6IY-pb^!@$u>qdQUTcpf4L*a1H3feAzSiD=h2~R6b7-Z(_>`WZc=B*aNrAzs z1LI3YvO}Y}JTU+pcrky{I&Uk0ietYm#B3U)I?)QL6?;y`kc=&dSPr8BSp#YsgAE6= zp{$?M_QpF^LKOWk0V%|PHB*2BybS$M-uD}fS*qFg4o z!-KcIwRQ6)w~ZEo-QnEkk#00`PK?o?{RJ79=CJ~+=k%Gmu&_*T< z)!EOPc~>Kq_+h0(qk=TG_bAc&7PUX2wSukKa1dg89(-~nF_ev=ynZ6tC02<03Lr>~ zZhcbcs~Saa+kHo{Jok1N7Z?{YI`H!w5U|7f@327VbCOYTaEYfhpka!so4UG%rb1J)NvLU<^}3g)m6&`sce$YYvyBQX3i$|{4X@Jp zh_WCV&7%{M%goXI%8WZQ@KAM?aDz&Z@W9U1o#j}f!D`W>!fIh@bWXTPo|rGQ)s!H6 z3)QZGCb^u@cRfzhaK+61j6|-nNK^Bi_*D0`L!E>&hmELlZbeubwN!=0nV6OS;!He_ zj0aD&r|xFUa$aU9rrSpfC%s+eaf6t4`xIVgH=4aS1M5IlnyG+bDOcmGpfX0*<6IQ( z4n0G0?)@G@GtSB%%t8^ZLNe1WRzI{J#0`;ux#|8I`$Anf68{Bpq(o;c2=hbu_luH8 z5ce+g)|3hXxU*Na5zNGHYTS&P!P2^Ks z?Kj_bRdFXI?*|9Gv026LZEh78dWXrz#G>R%mC|U#n@ReWM3`)5)rf^$GTK>Gaw@P} z+&>y8aN6h>|G8NsUXkv&_eIbzEYWQtKP6TXQL!nXA~mCJh_C$qxBJHS+V;@*(|znY z&;zzn$^|EyK{quY{1!fS+c|Hx@P5(D`~F(_$5Q3liKf@}@^qMKGe;h{7hwt$EPOVm z6J>`}=3FSjR_oNvh3}rA?sWn<{j3k)qDY47mdyf#)m|P9m#x>NV$IP%g6wLPMltkF zMT4mmNHu|qlc-XOtDQ#>+V5-0f3AO#KbuaPHJn8FV6i|y3v9dnN|(oZE;O~*lvg!n zM>Nj(O0->i<`FaubV+oS-t-7M5?Fen?d&EXw87&!DVbxbIeo59rF$E^>M(Ab>Fw7r zb5eA#GFz(cUG2_PH2nxtpo*it3|@6gz-a4!rfXQb+wsF^;hR+vDa9&^l{Knk){xiDyWJK4RpcB_;knW=7bV}4;l;*@-rVR%tn{`@1AMGtLYtaPd2 zm@)<_9FnF=;pVO%6`)vX%N%Te(qC7~Fy9;ZoO-D)2}V(W9cyH|{IICA|MG!bL-Fk@ zlS-OCzr(1D2PgUmo3+_U_gAH7sj^^g&ROWepKCW`M@)`sU>s{8gS_dvK!W_p%ut=w zo8NOE?i*uxKn*M1=1qRXRyT>0C&YP6g1mKJ&N`=?zr`rF+5Eh1d6j2P<77i7lr8`F zmifGJC=<~}0YS00CcZyZw1OejP_#pkwg`GqmFdgelo(6R+#i( zR~H`T((b7R@RMCx)p9+8bY0_0T80ZfKLd6DkK5kbf#lqWDR7HOa>_-Xy<$Ora2`wA zVn7XXxn&Qa7QfgXFSuiS1ljD#{IU*Uwf|+F0$7kd!?5=pO#|?vi!7>)7=IiCS zaK-3loGN@f*UW!UDP=2W+#43mDjW+tz$y3{R6K4NkP6`jY1#*Hpft4ESHqn;P$5cWLR~HHI3dZ)wK4rDQT76wHs~@gYn$UBneG1rZs|!KVpw*U&Gus~rt|K=>+Qt!Evue?QSSe76HvALaJjvs zP75qJX=z7C&4csd+yQf$C@+Pm{Wl;nLplc$Gq({E4J zy6pXqRFjv<$XloFtW&qypxbTM|p zavUZv^BFG_j*|}4dcAJDNs}8OK2wGiljcY3y1gDB?)4O(a@PEhML(_GSkrR?L5`hZ z&iA-2k0ACD03$2#`Hbt8b%mL0wVwH7+Pc0q(LB}ba#mQ}@zZ`wIM?E{nel4q`n3^n zg@D?2zo@I@I3#a{-Pdl$7YRq;b`hrV$$P@&egSmx1o}mj!dS8&TVIw!oqZyj8Ysb#HkFJ*_LgM?6b<>}JryME%fwEbTXy9D#a1l>(Vv;-mR2Z_i?ya4n=+2s zr-h255?))TXr)-n-@-rSRl{9O_i5r>yK8gtxy*ezus=*`2jZJ>)Y$v>VIQpCpV*7t z6VCc>Ww(goTSOvAst9UA{CwfElHaoc$Ghl$dzUB$wjrVQ+J`q|0sLbnR0N+K>Je<1 zz3=~Xxc}#xV*V_Xw3mbEKrT}SFGC=>uIuwQs_wydeNbA^Jy;G@;F&0b!7SZ#@_9w<*Ci*MsN_@>VJ$I{_Ib@1vFq(o`e$lMMmEWBzX>&AH zi5DF--&O`S*-^{&&6{!-&u?^RoE9W&S1Dnr$elpki!PTU(QB;|=;Y$84|cC0CDBjP zQ3u1x0gQ{sH-6p5v#30J#7ifQWoQ=$WLhCagOT5j&DdzsNcR2s|3(R#&*?LuU zajJ>=v`G3YRc9}Cwe9y@b_EMJ38YI6W%o;5!FoeUCpxn~?FmHhaJYgmnVfANK@>yZ zk}k>BY36Oej6@v_YCdNv@^iERs9UQ;D(sp+RxESPQV@e>&;Hb|@NUPk9ZVu>;lfg~ z=&Ep@dgZSLcWZ|*kI(qtF9qp4G{pq+yuxP<`K-u($gEfYf-Js;Lk)kj9=VpqS+7yb zRR466FA+j2J1MBsu{jnaO6A;dYTcw#8K^Zauiozo(|@vKIThnW#@A8L7%fqPV(CPW zVprgW+Dv$%Vmn_{qmnu1eWqEO@+r8lHZ5q8ZR_;JLhF^sgE)^W&O@X06bFPkr{9p( zP5k5ue%=x%Z=IF16z{5D{}K)mY^|JiCN>*#x*-s=laBxn!wAppYKn;TzIRN%{W+~u zH%~#Oj1AxAz(ocspB2aEz^q!{8|lRuC@NiT7tB=KI{6`S!Of;TbN9%VT02ah2x6V` z9Mu;77KGOM<-B~(YkzeIZ6zol4b-#>S2h3kfFtSFDQ%tC?{m^wc~p8T`DJ6)-N^60 zDz|>+&f^bbmAb)aP@l!1n`pkl`s5?DT27zplG4<`6@^by-lur5{MI{{^?-C8Ynw0U zR8WMPi)W*JNzO`=8XDI)xY|R&n}v_@#pkGJE_8CAmzeI=qb^ zf2HqM$feRqtj$c~7%s<^4&;A>wuxlv7C+y66;?TEpKpAt=?H z&gax!sw==;S-{*b&4cz5De|nwr2pxraNs7>`%ENJjb7j;wx5cyq~I#D;jx-Duz~Lv zD0ArUs%T&shBm&4BarH|wTz%?HOovVWS8UAr;6aIOx{xe?%w#KRtb%%n@e4!iHi>L z6{{w*;~M&8mYHki)l$SgW)v@g&VhKgFJ!a8Kymmc@2=rHasi=|rb^;w9GJ2zBg1T{ zbe5?;g?hPbIimnyxS0(dSLdBznE}p!<9GQ*|97IQfge&cF5hJ3R+;tk+FmQK{mwCN zYC8QEHoEPcfaJqjs>s|U%FaSwp+qPzPn!3vP+d8CNTOonl?2L737p@|%WfO-&1SMM zdT8FS;q{jyh)*PNt||CHRx(ne|L}sYzucb`MQ+kl%edjM6Pk#1<`EKFS8(V~_6Qq>OKUQth;?ixw=5b`b2mC8vxp;h zeI|9E8FRyod8|jf(5zZxQ>4MgD|qQPD^gJ!sQ6SzK7qiIC(l47E0o1uzFa(hO7w=g z8^v+2&v(d<=xmCk)wT;@dmNKIdbvTfWO3A{oZYw&1M=*R4UuLGk04L;HT#2K8UA9) z;;ECcujV&ezG0(G2otKal84!JII*OLZ~WNn+?aaHg+OdKq~cJ4FfF4^Ch*&de7_!k zeDxF#jNa~kpkHj6cGmn8N;z0Y0TzrJMXS81Ue-kSolf`@yidUsM;8OyrapAuu>xJkE|BwFzmN|j|Dm#8L->F4tiR}&2BajFl>iV9DKp&K4c@$9 z%oy8q>!bma3h`^+rKjAk%R%_zS8={PK3r8UEg%NBAuY`% z_()P^DMGtS6CTwlMYh_)7pEEhKTa_s!x-W`WEd!zqeZ-q1i^Ks;VY*N&y)x4Tyd(< z?Oe6Nr>Co@6IwL%6USvdsVy3M_%DZ1p>DPbx=eBl-?)eZhYjDayTlZM)q-yZi;p}X za5ccLoJ({;Oh5V?HZ9g#lnlW{jTA*C&ZhEb^{!PH77%PtbK+CBy-76AE5Ml}q7Ps+ z-|M4uBU*afS$AQ=35?HQC0OP}YC|LY7V8PB5pC6aitrkqSe0=MR z%kzRxc)e@k+oH%|t4iS_#Sx0rz^rJd*$TPf9S~=HZR0PN{UyDMXHAG1rRZTtRg%Jv z3w1<3r}69krkotqWN$`(dy0}m0qQD04m4ODabe9cE?{)HmoLrzz}N^hjzH2@32pg5 zc*Ae5Aoaa&RuHUI;G4pGS*q`J${sS|EG>WWi{I^j-yS=82>9X=OCA5@vE!Y_|4csq zata_PDTj_!dc_SmG3)=9sQlBGK?g)EdBl<~j`VZbTISBCYARUoPvV8lQk%dW{nMhg zbma_@wyQpVjY~_^x2(b{HJX2Y`*fZ$thR2S_Enu&IpsWCT=%dBEe-}EqJbSoB2)w*X6>=@bNpj4o49v#E_@8Ryvlg39+56X5g98^UR4YW^ zCL;%Q7c=fX=cpUq^r_S6EwmGj%1r$czVhdy z>K2z)<1NqUrLwMM*&B0S#-&6+R$~-Rz`oJ3of42NOCcCzwd;-1D%UE9nL<3&;3k;j z3H*7xLBBbdb!D`8h;c~Jr}D;Fp=@sfPGPjL1Ma{B>gw8wM>=-BDYBzHWtFdq3!dfQ$B1z;7JUg#Z%nWp zrMh%-yT+WJ$JCH~ou;qY#3R}1RqmMZ(jt&Z#9!^&Tp`9jvq5>*T3X63Tm3jsYXip+ z8_=Pta;;My)oL76e_7esp`)}CT&Rgp*&+$n231IOV&V_R=t_x*?BYfTKa?L9Y5wUF zskl_|XcS`6sj#UOTw#H@dX`{^NO=GGXl4mxm zHxZ<2sw#qsluOkabm^28sga7)IYL{I(mBG^8Pw@As7jxYN;0NKEFjllM9$J#GLF)v zQ)5)5MgZ4PcF+sR)zrwZFd`R#ZZKjhDIsy8(W1jpk0mfV39-1c6C%uhSxYGRaJwwJ z2rmeD2bXE^X6!;QRgg$&e6ZOZb8K_JIel(R>1lviiJ?l(WeA^dT&)Nb{;rurv;Pp& zCfq4UfJqbL^E{%XrpH?4f(}6wffqmfys9vAbxp_x6DpQpSzn&E+87i)h5}W(JVUCt zMTt;q#3=<#=G*v&OmBbmRnTyn0`h|b}+=dVwC%AI)yhAyc?DKHt| z-6vDcYDTS}iuxX6I7NeJmr9LLO{FZh8m6{Hjp?C4vkUaf(N19pdpe|tljoIv3jHA; zBU1ZPES*dt71AQU*ioE^uz}Kt%BfHOU8-#~@V_Iv9s{G6l9%|f1YMArE?si%{QDdj zY8fP5^B&hn99+Gn@@vM5 z$r%xQdMDjLlurO32~PGc*9sM$%>KDZeW1nt=uO%Q?UGEMDX$gflK-{+TdGv5yckR>d*o%6elIF#=!9i?UQ7dX zNo9SR(>lcj3acUV!J(tI(J~GUmpzop-t-rALUN{eFw5!BJajnJJp3vT8%sBE;AVw2 z?eaWE!ISAg27JS#_YT0KqZ8qK+k=u8Y&H^@(Cs8GA5FXQEo%se6_wKnr9P(lQ7Dzv zCGTo{z3od@KKvCQ>Ca}y(CxjfVaCw!q1R0uhhSYp+j?0;+w3uJsizPEaA&f5^15RJ z5PgV-5CSmb0qKP*q`@nUTUI{Sp1dqGW5{fvxo+t4sd1P(&`W#omSva^#@_M;lc2)| zb~a&nLlDB&r}xI8`L7(ZdRbf)w?@r-H2rb6tnrA3VAw<3@Tf0%&diLVoN%Zw6!U=x zd{y!UfHLy1x?ZSSKv**nro%+Y166B-S6bXG8Ov%a6rK-R*Kb*1{kiml`TZ6LN14mz8>aoJD~&bvv7=A1m!)^T?fg zKMR+YVmo!W*d1oe{mIfj%-KAA%BCd&wC_y~2S6tnON)6PVoRs)MtR;THWI7H_m4fH zPU65tsT!aE4_EO}fG#)iVR2}8b-Ogsblc9RW;d}M=3y~X1O}teq5#K6ACBm%oW%nk zoF>d58-JA2v#fN3t}IrjcDf+NSQ8&JVe1d_3YSK&tK(8bClF2CVTO6idfI(0PvU!L zx08gCXPx3;jUj=!B3m?wqoofH9j3BiyU^7HOr+)|Pfds8JlsA2pjCC>kE#kI7qoi7 z!AV&Cv+^rQ9qIvOoiG-0NceV0T{4CKHZ3pYA)+SI<*R3vLY=z_kD!9ARV2L&C8MvO zptKXw$EHN<-_U*XfA_1u{!YsGJIj3Wt&S=vCJCbV1l@ktSTxEsgFnzp^c%OuL;jr? zW&r<|V7l)Xb;=J>l)iRHPTU_Ub`Jx02rkH0pM}C{grXCFkRoC96)aAZNN0*=L}S!1 zMq>=1djQcct`T|^Qk$R&1JHo7P_kGUi&zSzj$NNNK?9TynOz_JyD(%RT*?+kj-pd| zvFXqv-n04q!b!EX4Os7jYOec=i?0d%S8bzL-C2?9XL}Pb)}oTM(m`PACi0ESsSaso z(xIPI{icI*ScQ>00Q33{Z*_d=gvcmzYwQ&2%)2vng%nNh187&Pvvu@s%rwYxF$mGf zT9ve<%gK_q#GxqgE>!V|jo-w>+#f{G4n5Y@lNTn_xh}C6WKxqpTN)SakyG=aZOKFP zVMx@^u}OxahY_JwplwAYZ@qLQf^SEGPUea-BSQQ@`%X;iEfpUbc`t$mADNhxNfb0V z*w~{HK*KANNrtJ7K__dNH7(|3^Ix(mLY403sparfS0ke`o-u!FW}mbfj4DaveSo)< zre4&Lm#~9rd(D5&CJ`4r4(t1HWj&geLg7{FCFwOhpSN#`j}=c!X5RHMcySD@C!Pu5W}WrxD9H}fEQn%z{| z`o_aT8Co;Xqg&nZs;yfhiM2J`-s|uqxH;5vQaO?2K(c$WD@8k+wD9?R&1G5)%uXtm zftVFkq)9t^f00z6S{`Uk3xs@t0VLDSp`{uo*YjG*J%XA(QQ5x|N?S?m1^&FPRG(hl z^+P|{1x*vykP0W9aez^H=>oN$Il?(yLl)&ouh^yOt9NZ&9zmAagkWT-D$UxQ4dXjh zQ4Qa@eSh}`RrSacDW7;qi%H$YM})L6=jiUd4;7`b=~JcRw4_sP_CM2n6K{oNmEQz) zQuu9XT7V*=BB#bZ^c`i#)sN+7asu~OXnJ|woEsaB54NOIFCRgXNmUZz_p_^YjZ#EK z5rKXp-N>&vBboS=e9_B~+pJ~A?D7)G&(KTEE_oG*G72Icc-Hpr-VVDk+NTnU^t188 zwVO+H-;vG87Z${CMC-rbM$}B1Y)4kXzbB-Ezl(C?(OqR3x>nd=k&9{(>SK z<=~`)QGTCc*6f^4sle31zyzPL*4d9;*7CfNhLZKJJ@Y}(BVaejAuGq7xwA)oa<_6h zE7Uk~>-txw^atGTa|XnePCp}wIhT}+fJGl+Nepl9a%r56=JEBEDp-R!`8Mu9I$f_+ zENPQgg8joyUR*G-335wbur5D5yD$iXY@g|()3!j7TETNz z6EgW5#{%(&V+EYc+LWv71zfxda7ZsZoj2)+!)c{sld$^o3}Lc>8ljpK;nk;vr6y$X zi8pvOo3NEt-ZQcQ(A~wVJNQi~KJC(8uBR6nt zLk@uvG2blb$7Kt7JdnaoUi=~j zTX4qntb5z(6skr@FM!q(ss)IO4m^S|Lj{pnQbkX{%S#&il8-XT8>E&?rf`W_;#0dR z>^jQG8zgLHjBG@_k=Ibz4TXP>UIFuFLDlu6{HQxW!EuA1(yyot<6PHAkPN+i%QJ#Q zC6gLY&Z>@z^HS01z37k+v+3opuH1&g)rrd#FfllqTC_sxp_f?{Z`M32S zLH1Yc@R~M?IOxyJ{KKW*vzHR@Qfx{-zoR8}7oq;_bpUVhbvl5M3Oyz(B+J23*9-Fl z)%KUI=#Vworu9^r%m=F`#g!;mhd8$lQK+U|TM_8qRIeBb%tQ~ijL5nX+;9HnEU@Ws zsaW78aG~ifSfEp$g<>I7pv{HhLMaRYRqzIA~H-F$yxqUAnVm~&Dw693fXZN{ln&M;Vi-UK< za1|6mLn=aXOetn@E+INeRgEIXxg*~1OyR!6K^M3bjNpxrt}AFFeqdkLA(4stS$Icj z=u4GCwUJ6Aw?v3pzY#;&OX-E7JW7*29LxSf4-8aD2_eQD?QuYy`NjI)KYZ3t-&OmA zh>S`cmJTXh|J8#J&{LA`mp?@BkIz)qFX=cf)7F17zX(F$Y7ma;Y!HsPGV@1R4(>O7 zc{LvfHyuOb$`p$y>v>Q7@zC42WFsib``^oO(`HFEtSXZuIpds9Aq;f~n zIv}q>eIpwvCIaS^O{=n$vd*}$zMaW2&D&`?%{a@M%r*#J-jg`REu;wQLqUf&t zFl*vVz=CJkJNdy(He9@0%CgZzcS)nkTrUn|*EUt=vo|V|rmU+b1i(GD0wqCTWn-Ok z)h%b$O>CU^z42IuA3=LwUxvQ;KV!+(1RYWA7r=Bl?gQ*yQDZ1gWMDf%&^UCmE7|Pq zASD*VWKZ{1bkBNgV3fY^=npb>=`X!)O0YIh>HXT_kPyJ=51GI~@y@-8GwG35W6;U&i@}(Zvofj+x?FN5~If$4N@E3j7F5vqq|kQkrq@? zV!+7JjWD{q4Z2%I5Kvk`L`nsW&;Q2H^E|)r|FwI&x4W*`xlX*#IoBonTB2Ng?7c9o z_zvA*EwYo<0+RBcujQ6lJJJ7SLqn>NNOW;}2|shvq1doC?bN%-n1y3Y9IQG7E`7Khzqn3tyW>s+rz3Kam->V9ekP*XPO zG0NZOe(N;{ocName#m3^@mWcyvOk;J>Xz{uz-6cWz^AzOsEwId+C^LL%jCfmnSXb=#B|p)h zD-JH)4cRK?DkjBC==RxnH4q6$88(PheoXtghx$l*MzG66yKlxznyD-xN-Fc5@UE{t zY+bg0-aa+j)_@_haN^&5O zGxQGnH-1HRgbw=Yyi$57-<3f!DGUDuo9=jMFXqmxHt%14(t8}M5-^wpY~`I_us@*V zk+7o&V3hS1`S)M7cv~@KsZsWM3AL6L2TiSerEpTz@K{^qm(iz)uhzPbZu|yGZ@>l! zZ9fbNeVch`Ha+w7kVB3@?`RN>~_4{d50@KmB@iFQ&HP5U6UW6+&0e;vlT??p%Du#)Z<;nB!j$Nh;1eA=@3D6XWqW z?E7!Ie$#*W>z>r8j`zmRhL61V8D-6uKAudf_C zEi+CGWjd0wD56K^`#UPXm2F57rATk3`sjarfc}%>`pM1U9)i7{M6&(RZu5+^Q1b>{ ziu^ZIyNsy4RyqD=QXW^VG=OLXmpG_X<=dy7#yr-N{J?Nr#*Z>eZ>`o#87gz#4+8R| zd2bSBsn#Ot2~b@~;ZmN-m<#z24-0-^KNqei9l4%@(?0zeqrcD7EV!)LPxeE)fqgw~ zVHRDM`c=nvhk@v#OQ`vypNMk~i`zs>YgHaLFYb%RpX9HickUVFBKTMDMcgS~R%|A1 zmGN7Iu1)4^Fs5(hy=5PaUC{Imv;aMu2T^i_6A)h8nlKJn_!5(i_3Hgrpk5ho{=vKP z+!s)0G=bx#U>ZVFRge~eAwKvQ7INo(^qu6LADWOd2u8Jpi;z@>4-SR{2r4rY!-4$E zKFF zU2Wr90U*1U3I{(De&-Fp6?Jr|Z>P9a*dNp|udq)*W9dWh%S5Ou-%Gf`q1g>4P zC|uBN*J|Plx~ZD{^VX^Q*KJ)uy3=qIPf-&lAyk+*L(WEN{L--wsTv$HNLAPVmAJS&8J$vfGfZvuS-a8K=3w%Zjz19 zr%XwS>OHWGMbVC-I+o(@=NoT^y zU?fwMM;t|rl*75K#mnZ{enj!;K#$U>@$KNBoKL^7JM!J`RIY0g>Fy%(mQz~#>F_0H z(S97zLHh2VSqB9ly&^y7#0qlxvAUFe?JxMb^>yT9@@ul&UqKfESmf(3fb9Df zdSSNwPH+NR$JL}mrs8~MenZOsa(pcLle#fEIzsN&yO&{)!_VK(zveQokSk!a|FL>s zWb+f!N@knO^SQiEtn01MNS(I4&g`^EkysPvQQ||POGiebyvTRA-u58Vp0-^i&1z;I z6fz~N)l{y04`QRctVjNfx&qddjH)C);KgCPiFn`GFH4*cvMYy=W^pORK8ApIR%1rf zUXDJ&$c|2f^<4Z(^v8~$e58su1aX4lbeBf}TF_`1*6qKoA+oKc`WyzlxnA_#tO7ba zE<|ZPEg@0%A?K;!*y|@Tqe z{2<1OQgZLp+nJi@=1TRUHdkHW{0~089m+_F>UMnpYH(|`60SoM*)Gf7tnlBBDNh1s zhBUj0ME;q15-z$kyG+2*-vD(_ak?f1!?}OkA(5Gyuf5mD`gG!c@qx>p5a5hB(cy2K zwG3DRaMug~AH22>0n-;S4mA>`Yf10Fjb-MD0L-}S3ZjM|Hvb@1yXHQi-+!Qua1(uc{j1&MXYq4ly}0-rBPt$6&HEj>*9JT=4ghp0z@!&IoB=0GfDnn@ zC56gM@K?h$?o}i~W8fpY^rQRlPQ;jx#)*Zi#sn+a2dk>`?U7x(QMWlQ6!`23Vc{tR zP%Z%0L&T^6-T7?ZJQX;W`465(&R0PI*E zpo}j5yV_X{hj+EVL$lyS6UjuM%cQRWiz>MM3cvu%2|5^kBuP;D{Q80G+G3Gyb3gWe zo`+s3{bmnKey#Dbyz{+tuX!b1aj#GrD>w@9l)yl4S*T`A8 z_PITB0*C7p9lz!OuiE_=R{HuzROCOSLl^Kzi?0W%&VRAHk+?>*>hXk^-uk*b?@LIU z_9xKJMjV9~#*$Y23AL8dDqiPnw+_5!QKgF$KgoR8O~7mM3OlZVH=OTV@S`9I=n75=XQJbKrZiitf?p_2dt zp0l?1^Y^I&OQ4;?YvDfctq zi>CN9BxR+Sk260VzJ5MGin}%eKEHZ%s)9!+MM5n~HV%Il+;xY%01pq>NoaBxA8=W* zUBmgfa=L#x861!njx>HCF?i6O_B)NLUv7Z=u16hb2lvZEp=QE6nJVRkEUJbi2<__t zi0CT7NA(|Gj+Xw+{ay;g0?SL)O6LvIEYzZH#HPw9Z4qN&sakM|E-V+dovHcEId89DlY9^Z$0CmFv(|{?aYNmRRUAtdX0aIa&r4jhWlTGqJE8Iby zSroOH<>=Cxxi(I9D_J?pLGb+Oli#tNvno@1!Pw~i~M8Li{ zNwtgLs$K!i&2T2ifVVaSpBZ%2ZV=xYtuXR>+D{BFT4{UgLRr#!2`yaByP(n=9qULD z*dO?Ii`XFH3p?AyT}#SoodP=g|3-iS@gr18|H=>3&7@po_ZerYOoyNW-WHa_8Dibz zvBR--V852LKKN6@MjUb9dx^H4n&94zU;uM^Me4(|17J?y;m14|EbW9}nmQ$(q-{Uv z4%2!fagXpjZBGkt3+>_9;oz5O8BfW+L{Evw5)YyQrw4H`un!h*aSjIj9!VpB7er<` zZ8>ps2KL?YBgOIG_jkwdP6-l^f!kJqBi~&jS(+#Ro^e6{#l_YBN|N5jzm8iVyrt;T zbxg~gNpLyz{hrqwpk=kXcHCj0zT`O`)x&v4d^lE@#A_0IU)(gCh(ysA&ygRvHl1U z4L%umKuGd)5tx_|Z#o-$2P8Yp$PtdGqR!elP7y&sX0YCRJQ6E5NO50-b+!n^M*(AW zpzs~!qlrPxjfic0!uAhvM8br6hry#1jDod%97XhY{XzzVu(WtG%YDLAht{+H7hB`9 zRl157>x^3uM8Y*dEpdpZcxHKrq?#GUvz^*g55)e1eC;79)BRWYgoK+Q*+@-dW)j#$ zg6sfX>_B&+0 z(aERLR(#V-VH`_%mMr8ygZKV{;?@kTO9OFQ3^mkOOwoh3Oj67fLpQ%F&QFqYRVZqU z@>rI)PjE-S_l_tYhm}mSz8Qu#&&c{uKu>pD_v)#F)!V!5axFb^Y1$n36By5CSkGpJ z{3ocyb}C)rnXb<57owT5UPWTD99vNoXES1FGl;Wk$bfUHfqHI^2G@JhTqeiV$YH2m z0?2;`+BhKOKMlIyKp{3F;Bn){cxh(pjC^=F6n_MEHjY?#QklH#6PlKBd5zO_>dtNVo4x|t0i1~r=BFGSDK>q{VIGOBT<*@)Z zR`Au*Ax?f5XRj-irh+j3_bgDib=W*5c==QH_*eRnaz#IFjurww|7n=m0MIBZmIg)1 z@$L!l{XsBqK~tkYxsZwm=$R(;46Z1<{_3ENtn+|=-RjAknz;EvMSm?=ktRjj40MwM z!8qJ(tg84%i|3BBFgW3q(f&^#o>(y<>wn4}C$`Xh79m`JrB$lw6pbNfHAqGn>I47I z-#SllaXZRx2@%VRzBuJf|D3GYKTXIm`|>u|soU*F{c!}6qqDp=D%2(T(6 z9wA~&U(t|?S*}cx-;V^R*uOi=((xqr-uX~hs zeL|WxpWhVd%?v9*T4xi?{=%#+TIC9&uw(A(iP{87N{&84#sAc5T4F+|u@6?5T`$(} zoUSSKthbLa6^Q`Oo>Bt+OdPkFgjdpSwU5OY$(G&9zX6b9|9|^=98ohvb?k(_Ak9B{ zkghPHc!Qd6>zV9-o;)L4^HuR|2zEixIQJmEMMunsRBS+l&(B5lz7FB}$BWCvb~r$vlC$+A8ezHoem|A=fKg_!>| z4{Dp^87URZ28H-hE)!q#@gSH(7w^r45b*!{PY^?Pa|hh>WA~`!Y766TBoQR@ZB4V{ z^;2;4fx!Kp2XO3GUujKwX0t>3zysF45mviVkk~k(L9c+%bngAn6k?+scKSjFkwxR) z96&%J7Y&dH{r^h<#|JX4f!uF9<>P1J*y6tb<$r@$?j(x-0L@l5=RY2lz5zBTX**sQ z1nYug1)jN?L#viqO>J5|?F(qMs|qhmpgL{jQW4d!c1B{Cx+29bfBaO`4QFm)akb+P z&Iz3;$#ErX!ic@|lqboitPGcui0050$EfG@(E^JNVD-$ zx-_qRTp-+ET<4~xty)#8U_Fy$6T|oZ#m^+JwT>%<^MncBTU>K162n6^fuG1b9tCT- z#%g;iE{z$~wh#6M-83U_jS7AxcKVt}?PdI?uy>TAsE$G;k98ONWzsT6*|h_yFr!ax z9&yOY)WMZt^+WW~V(B${1s!LLPE1g6WKtqvEbd~7Q7_+U4F=im7Ns<^Bly?utDmDB zwZ7iXFnOyyA0=rXus$Av+L?RmiiwDqoJhW2*P0MG_1U7+dH0m^*wFUYXfP8Ywu4y3sWN z@0DP^Q4V9#2V?DEw4MyjNUNlQ0Ca}nhKp2WqfTJHqfBSCm{Atu{Y}EsIqRec{$wbj z#R-UIKT_t#5JaJCT7u~^9LJY&*ECf@x*7!K)0Kf9acaNOff*ST^Ex9*2Q$nzCe7k8 z?m`k6`a?b)=#_4hnR|jREd)+E%M*Fe?;$gIO*K)7r^rbGqvBDkRhu>G!jVYxE3%o96noMsEKYzo!H{}HH z_14Z3*dFa!RWCiL`sR4V+(E<3JJlrKW|8|gjzy`~&(~0sUSEkI(QwXvaL-EQ6VW&4 z#CP%ZCf|fSymXJsU57fEe-VBhee?CziuWt&LeJlp>RfPp5U=9YG!9#{V55gSJLMdy zs$KguSoYj-@MWgsm#cWp!lHMJOn0)x!Gl2AJa-WpL#>BKX|Ih9UsX_kQ z>DTg*HR#h^-Qni3*NZphT%EgSm~=1Ws$ zMvsGL2&Ri94B2dQ@l+43*Yb(P##QfG#daEOavRi6b4kJ-g;h;VZHfb21P)WGoA6ET zohuD&Ap+*~I1#CwL1d?(s0$7FEx1ONtF=}@Z{8?Q7x{u1V^Ib!isUnZaT?xu7G*t) zmQ*h_;`7?pZ=5^k#DIUo%H)X(j~roGctF>I)QUmNZzt{OvOS~Qd4j4{nRB7LEkOQ* z-GRGQmMzbq-WQ>wMnA)9QS?{ zjiYlk57RVsf?HKk^PH}+mZrdOEemr_HEg^<7rClHB3+b~89xaR zVQjIX?ezoPko2+W6iaL?64l=fvErn2tw+Xln(WmN8sQq_pk{P>v07@_I9K!Qa~V10 zs<2u?F5ng%zqtD{r6;Aq+Coz46nMd1HM85IAVnFhz=@p)tDtRb1?r zVcBrp0lYDH^^GZWz@uVU`4MW+vj+Z^54m(Ox`!z?3aR^?LSU`Vc$krGopxSQTuwaB zq)%d>uai_uGL>H}dazbkeOmWH^1E4OtwC4X8b@D3IoSBFTi&U1O}wxl^P?0}H=9N1 zT{_lf8qx>8pg_pu(V?L%J1Svf*yaUVO}qR~prYqod#E8T-29p4WFbMGO(wx-o6&)) z!rd_x#?A&kjnnMJ)QF4VL=Q9!;gczBnjR4WQF~yE4hVBKN028Xc$>7;87*>{KR&EA zMyBP?qfs{e?$}$zWcAr&fp;CA@yc*gSe;=h?+7u>bzKdVYJq?gf?JRypZAzca=;pz zQNR;ezm5?VplgvoaKv%MJ*rU=d^4OxFO%l5xz!L`p>#M3bm&Mki)_qVjT3)7*kH%E zWHp!$>W+#!!bW9rf@9f|mb@s(khO`VhHIn{iACxQHhv6M$)bsY9DI^p*?Eo^_f#ERhi6T zZYm1NW5NZg4?8~Kc0h=H9cxNQ1gV=GiV(Zm&UP|>FqW2#0DcIi2?aO_uni9z%`J@= zWG|RF>_`}|PXc0ST|v@;UU`{3Jd5wh(%H>+{JjDc8YJjCq?S|kkl}^|Z%$J@$KlI7 zCPlGB;$JK}iERII4@h$GCC zA)cC=n)}qza+$3tSpt0gQdN{DO<|b+yMnWzT^WPjBSi)~&{S8-Q@=k$iSe6FyENPD zJ><-{yV`OyjP;teRC0&D!@pXkak-VHEA?9j4wgU+JaHmA_BnIqsnu~yt@$zKJ6&F+ z%|SL~8DAq!gTJxf?qWF7J#MCsF%sCaJW=vY8+sS1Y>fXI?y98(8dyoT!p3w_HuZNLyum5iKwScM86I!x%p2(%m~odMve+WP|~P z5w`eXhHM&qyQRBYm^(#FknOla;yX#oq<2sqTojgGK|(#G%8kt!S(@n$Es-um-cdEw z#u8g5eTRi5T|$pt900{qOqpJgkVxK(9rIG>LdxEES_2LkJZ@HVy^`2S$J8 z&1Dd42UE0~-3Y*Q$0V;5929Nq1A6`Cq-F+>&}a^kE4V`^*f()n)F2=xZqay124#N+pwRjeWA%{`!vA!UBgkXzO5Uuah6P*Qx z5`Q-4mdBjTJuFM9rjCKm#j62p=^6F{3k9TIT2p4m*%|ls$o9CM%o&kXU*?%AcO2J^ zWb*jW3;Uv!DO0Ty1Dwl-?e*IDH4D+S^ncm zjzMr2L*92Dac`*vO^jYzK|a#F^fcVA_Ez~}uamStH#+gfxa2*!Qh|($Z6y}=elz0x z-F_fJy!I#ZhVKi{oVn2u*K;5>%zj`Vo0OqhVOB~>T#q$;_t*y-uSR4X^jUzEM+f;T zea$sm=ycS5$oXNI?xczPq1oHKoVtg|O@}E-f7zt|P5ViSi57z+%OIn-OVb58gmU)j zy&1xj2?B?s2cy&Vqc)yh=6(|`R!1hLOGPzJ)@I&LsDh!v$+2B;`$+|Ee;M(%9EvU# zo&qha;&g$UVkrg{gEuCdsJD<3Q+u;YUA@ZaN+*$b3vSRDp!n!X`#QH&+jUcUuS%7N zfNP5*f_T1j#^6^f+Ra=hhYP($uX;%nhrhAF5zwLSU1@ z?xt>jkS8{OJ7!h9==m|FjX|X}&J=qPs9I-kxEL6ioo2e=r4E#uQDC7}eZZ5p;6_#H zlw%WJ8OU5i)gb5&L+$zHFdFHuGQrNV*>4>Jm|1+g40u6^W?Dd9-V@hsctQiq2YUe#dGRX)~*B51Xu23GTK{@E>rGfma=n2OA#?Br#t(o+DZsJ zp(!JET*FB1*R6mh&!{WZ(U^a2 zr-R1Of>&YO1983$ceA93a5c@FI%6`*O%|>})ioE5<}4an3B2=_Wp3_pFAnB6-=4m5 znT_Z7t@@Ca%d##a%w48tF$;X9YQ%`)RD69}6q~|3XJ{%a zhVZ>bPjzw$Gv_mjiVn%;5W5p|2dhQ6sAVwNFj?%!(*^Q%M(QKe;SwWu0#4+g_wx-FP*5)a$6s^UFUe$rfP9x)BoH|ouuFVb63 z9*yygQiKLeO~g6U`&1A)l$tze4-9UK=u3OsN9;9RY0ZmJ&CpUXtrPTi@*K79{KGdr zpPypeobibJV(Vh-(&2wEyU~n4_%MU_M()oy=O9kGpK{8etH-~E7&9MgEToM&HnPE0p;q%v8^X4n?&v1_s%KHM7SjoMeZi zXPNZm{UWPewl)lQ4iAdr(%Pd(T|;TqjCNAg^^2X8i<{0_X$IOOT=I&JrlVex=u#cJ z&^wf<3ob%ZGXjHvNCbc{v?P~J zsf180x(F%#(JIYdtH(bl^2kgIEotV?=~C8q2A8gwjN2pi=2-UixS*NIP3NJ{OAbTX zUG{#mYb;$Ujm&*lN^Uv7Bjy0Bg~j-mG=A2bG!bA@mZ)ReQ$E+YGke9INss)aZ1Rif zRpfI7-xZlCzUex{DV-EE`6cxn$sD<>P%=(hDN@sPRDl9+OUSc3>9kf_o)l|{T+}5~ zOR>+n|AIhtRY78D>`8^2>zH*P%U+c3i5Guc|dFA9%p4=J`esP*+a6tBza_u_aTf6RH#R$cG20Qza z`#~zCTFgB2x`=|N0+h9C!GR%E(<6*TJ3)?SRie~YOTKH_Gpf)-ka0GKI0?5*`r6$8 z{y%s|p+B0fuey?Wzxi{&s&~qBV*M=mP8pqrs|(vYxb@ud@EOrNF4LMPQQRilUmh|n zy1S;=*BjZZ-P;{rWW%*%Gee6^{{enxMFgqeY_q(IkOd*-u z>)68IJ#+#3(e`o<*0L%SMMJtq+3~>+tQ1S{52~{jXz@)n3T~?RJbQuU`(rgum! zjk={EIbqZ+lIAyr3&_2B+eO*Kq0zqmMxa7QOgYncByAv1!s{L(I&|MnW&12UdS1dk z(phd2%9_Cp3RX_oK|98DPQ>v^3=AwUB5KB`yyEtj_3a5wb37%9=EGGK9qt!#=!mlw zyBR#UOs(ybiI3AXg&av_vPZO08K!nhhU4#!0~}dZ!k-4_5^hp(Y(nbw#tpbdB~zr| z$8d!Q+S`1R{T&)i53&L)b1denUu0$2teZL@5aOyx`JtaPqG8?RGs$)!U=|M$|x-<(4v`nMQN#{9=Fq2tE+k!DF>9G)S zX>B^rmh4@Hcv%iv_ZEQ?Ps_&M5RT{~H1ui8+7V>Uv~In8r&{7z@7Z@qSK7a3io zk6$`FwZ;}$4K%!fO{4(AFCdNiwIzO!$OD2(;O5fY(X~^td$HPA;`fxjQi{ykq>%mt{!9N1o=a;poNA-d+oSzAW?83Edp^n&|a)RL!;)=RJL z4ifp9M7CMq`Urq+_HCeC`^`k4isokFN=q{EuuoVH&ob;wljE1{y6CqUzyfgtbzN&l z5zQi?znWy&1bx0?Z_YB=r^XDz3IuF82c{4tASC#MYO-BWgp{J0D{eJWE>`v9Ndn-x zgr)j~haoH<2AI59rro>XiuiFGX3*B;qZO~445NHV7!8=12b6~Kx_zsb3Os_elre^E zb0nS7!PpGK8VQ$zOj5(f3=FAlKh1~5DAIrw#_vSG(e`iu(;-AFG0xVkSTvbO&Bd-> ziEe);Fj3-oRcdb4ypOqW1@$DLCQFNu4b?4DPjX&>j!2wCDB>TpmC%;sn-LKPf#LHO za7(D@(O^+Jxj{7cBjgOV}3E5CngeG}roJGe^GFkdh)Sli`}|3TB=P}yes4f5y}&a5I- zwXmTw>1;;gWD5-T0=!zgVi ztw$s(Ind_MH`CpvCt%ep+=HNj%gFz{!kowM;;J0Llc;Nkcb`VO^lA$CJO41~7*JVh9_CgN3UBU76Zgd3CEnY{yUiWtR z!8MoO0L)r2PcfxIdNwRicVhF42v}Ai1ux7a2RLc?inQ zO?|D3vTMU6f$-S5EQ7WdvlU>%c{nh&Yg>A!)f*L&wqNE882KvHRSNz2F_Oq}>XJi5 z0i-iDWa`_mX*(hYWxrl=6o18tNQ9*l!>4IVTPDtt0OvDMWQ6ED-q8|jG`C2HAZa)` zFsm?TKXx2}o)KpR9kW1rt>SDZ*QjdqXYpI9@Q2(FpOI1D&zPoPNUEvK+~lr?lvf{m zP*vIp#CY`AELq8>l;;{m{e#E;vf)=Qz$h}_JGNMUc#qz#_XW54^_==*Q~6bNO`QJF z{<6o3JQb@n1-+c5J!@0!n-qu zN@+u!eIjyqR9VFbHSp;P8Y2xYDjIp-#yUJ6+i~Bs3f{Xt!3A;ttkLeRfp4EMo0^@g zSy+TI%&$=euUYwM`<6p5jk~_xb{T)ns=vRGa1{uwuS@D{I+4UWfkRgJbRGYL=Q8m7 zIrVn|E)6o1H?j>zky9W)Xxrp{gS(_?qfTRnRV+G)_nfgxkqp9Egi7B#Qz@CwTw=8kLCLo0jh1Au zZACFsFABbXe-cxmwgJi>GJU-pg^V>VbB4{4wF)hht5JcAa4oVb0%pj0NC6G1Zv@vF z(F{e!Dp#UQVFvX+=!h0sWi4E@tje<(-RH{E1+8=f3a&x~-R{)}^G*F#GS)(=-K{6A zyE$TF+Z#jWEg0pNT1V_lurRd@)FS|B+KKNc-9kYUw z9LU600pI zy)J7>lkMESsLvj156E-KyxPcEW=<~N&s3B!av(>xKL5(n-(M5Zw>nALxEPrHm7@Fz zgqrCoIgZ2LY5IA^$;VJM7?BPb)w+e`jZrp}@jsjU`-0V0qW*$0;{pR!Qf+Mf9`4#A z8`!c8LlM3;^$%VPHf&=7Wx86ygkOg_l3p>P4B-7sL~3Tn~6|Lm`e;Lkz{ilW{Fvk79OhFX5G5 zL($Skj9zbSBo3AqE4EjE&H&>9TylAj>rx;7Fzw9$Fcj1BsXaNEhIrlk)hfa$Rs6NnP)IDc?Pek%sriu zuKQqt95>n{o6>YgnQ)6}FF7*cazf``$istiS=G*K%sKJK>$<(5*tRbP>czinVV zxn4XfTCg9y-7Vey$9Iz8WF^tvS@;sda@V@gGKen4#{l^dbV^1BZ{`FRCukS_5|cwV z&{`jZ`Ex_*FvzL+fS%Mq*Qm~IAZL{PA^Wc;W$6n2*!iTbo=1>#rtPUq_?~1_ifjOU zqUhLUinhpWX+d{S`ik@s#csm!i}Fb0Mu6^s2;pBCw#D?QwWkP+=8!Ccw&G}Xe0qT# z{FHuQ7MQ`${ebAW<^A}fHIDYDZ6SUZ0VDvWZv)sbiil5ri zcOVt5?JXPy^Jv^}%vg2^ zi~$r{wqb^}#sd6D6ox+Wm@QUOa;iZ|h34PHMihfYl+i*OUTMT%Sunl+9+qq?mZM84 zUGg5q<><*EKo2Os{}R0t1?Y%?mQ%9F5RKsBErS1phu5e(gw6VO!$AK|@&zbDNHIAA zQWQ$k#~|oG8gLt5cb$p*t$gX2$az~1^X>v?&mW^UxI1bgqe{@oth7$cDzy#najDp5 zHR+BFR0jt_mUAqM`?Q(pQLVR!VmT;?*rk3^ex_Yv* z9Wcd3>mwS(3UYo$*+$6ILO49RWGUZn{UU`r#!o5PQDb8ju>RBqaNAq|~X1 z$kO+&EUAeeoyW-&XF&sBQ_n*gihq+t z?%iU3t${Bv=LW2ZWgcn_L1r~G$A(3MM=x4^WFS*GMg{kDfx$#wx~JcHbMxlm>Id&9 zENISTnng}>-?Cz3BzPJeXAN?q)?Ut=>?)sA$LHC4-B3T@kw*FI4zkhswMwVTeio_& z5wE?Zg`sFsqq044PV+MiF#3 z?h;6}zV=}C?|gApO#(Ag8~0Ntf2|h~hEClc&9v8o7?RIIs(F1lWwRNd zZFp-3)d_|!9lNFQ`J=pSOXmv-WOAS2&;*6jFNwqlbfS}l{XJrPvD(Hcp25!EHpqj2W6cdk#d~jZG#C|-hQBO^bNz#t&rlz8hQ8Y#dD+iC z2xT>aqXP8u<>L99%7V@5B`@%oCdpBiCFlrOWOJT`sf`BGu+(vWd?@5yreh3!CT2vz zAd6c~(~oe7&x6NCZ5k!rbagct+hh|v`8ZwnpmvTtSFJ4egBr+7wfb%2VZpkIEvScc zddzs;BYU1~#lnH^teOk{Gp|w zmL2~_IDrabVfx%M=6e}5JsLsBU%H&BGOC60kctlWYy864Os9nPDN8s>dZag+d4==V zdm!@(X=u1uhEfn)W=)uR($9ElGC-(%k@pmkEbIeiV&dpS6Hbht=gy$i!PJnzNd?+lExhmDC%npSs^%34iIZcllcxBG}%o`a^ zfKxS`f8VcPwm%4)&Zx3(FZE{e%HU8F)y#G&uz97L0_P^hJ-L8dIvOxeRF2b{SYvj( zq*v(d)Z|7Jdn5b`_v80pkni1%>AwF2|XQDFtoo#{^^iPLMj;xvpq|Jkv_|U`T)=pI84kN)+Ot zr6%~z*`h?MzJ|ynY_%z=6T*s$)>&1i#wwqjAhY!WlF(EK`@W7Ox&woe%5DkJ8^L>J z%4edlEXvIiRc^Fc2C^kEMMa-kV`14+`Y>bU-3gTG)KZ(WH{OdEhK>f|Z@cH%q8eD> zZZy?xP(4*(UMXFOBCUfXirKl$Hir?X+G&@as;2U%fZI?=ow$r3wKlQU%u9IZTr))k zSDkxMt(t4KODWGi?hkv^z8h;MUz4eTD=(<7tsAU7R$RTQ;v>;h+6VGWgcv@+#M_r@TR>r{y0-UVVuit+B2^3qT0ai{UwdS9JTPVdk68Y z!F^GeaV#QQFkK+fjI)}CtgBe6a$}bVx9R4W8il4*GY?WRtYZ7x+G55P_dyO+se{CH zzNT(#_>~zNYQKIGS0~7+V)ZUR#_}J$emGT&^RL+G+gj|#`uzy7I!&|#Of{CypGTrh zL#ub-&Uu-koR~mvE^TIa{9314mlSl3Y-Lgo=FvGbN5xp!PtFPGp95fmHAFHe{r zPLoYU_u2AR9=wy58bDdiTAZgQ%2NpMTxqC+{c%{g7f23xv2?Cyztgx_wrjq044B!F z;v>-VWv97)^VfB25p#G3k?Nsja1GR^AO7|ilbZIi%KJw%sE6%tzt1RWq zIy~2vK%3##p2a`9>`4Q>1(GFn@?Pxnk1Gda~;rMUX8L zhG38>F^#0|VTpnCh~`9`!0KV8RMY|@$=Xd*wcLtph~fQ!dI?k0gn9#tnH*mZj&NM$ z(;CzEIb~%Wkk?1Iu<3G@!6`ec9rttHs^5&;Ed-WnKgnB!q3%B9W-)nmK&w(_mbR{~ zFLm&?#}qSde;!n8U=po*WIY{q{9D{rWg@!)$q$Rl^F1NU4m8pchrNxpqQndc@?y6Z ztV%G{2$*eRok;~SADwEZz3SvvtWHl;m#qDmkjAr&gPWrNLI*-<+v0a`Y8p#EsU&e4 zPhGMY8}Y>XvACyuJ0st+zTtYy2Hh4mYVk9Y3lGQhGr&ri(nqq(ogb%X9SSRR1r89D zLpd!j!ntA2qB^8-!t}!k(h_7&A`+L>LRH!9ci4NMhC^ep}*cgGF zb+h7hMKo{2AV!>^?olKkSr-x@AWkh;u9mcAa-;$iITE^$O`TP<9kn7W)>Spw$HqZN zP31}X8skhQIbC@J&_!9w;8spo>G+tt7EU`+?_-eFdzrS= z1$jEEBv84Un&fCY9JYbFcj?YnB5?RB`^$qzs%_%SSz%i4Y|ORtCbVh;xX(DN=yy?V zkW)u(b;(>wcnOQ1V=EIG)uH3yd#YA4_u0U3VJ1-?oy>&v{h~Z|$vWT?HZpe!HVImv za+R)GU3v#OlgTW=ms2IonAep0U0YpSBgXaKl3LBR+i|R8{l!3waO~KN83AFs7hu5H z$36H5FY}@57ne(8m4TC(oJ+14M|7o`(9&6Cu|*_{eEj?ipyxrt`QqY~^J8ZJ6I1YFO0@O6fd=oNJ})h2$&N|Z<1E7iqg`Iqf$m`K8LxJg zgrQT8ysdg9?o|bTAe(^Tfdm_ap$wT*d0|F?H{ou>Y}a(OO7WJUUi2O1%DQMZurmqbKH zQwbS)X1?1R=wKHT7s$Dg8;!iXsq^?w?=v9n#?Dnsp#3T9qoCVK0^iP|pJ1=lMi z%|Ie*NPDFj2vGo{MEpLItOkqp|A?n8y0=t7dDDmoDpl#=H3{WwTTQ&Wa!Z;pY2YGE zo2;stIsw;~^l=9wW;M>$w-*ok?HdLLFK;YdvD-Ut-_A|qJwD@By6K>7QpOPK+^so2 z?rSZ%@RQwT>8H}CCES=X>ztWwkw!BYp>qd~idJn`joC@oC4%3c%UlU3m~#c`TezWO zRKGpHIzH9Io?M%@Np`Mo#RRNx-oLq^(6DXxb1+&NxPvoL*lYD_lL;#k$MrI zt3&w=Eg#cfIi**1gsv3j3f$v!<42B1$+xOj2?#cbGahNDNS`9l$KBHP5EiZOCX^^x zwM?+8`tj)gW`~tK`mQ--k9gL2(Qm0IWAtoFF+NV9#AmE4;9iWNhUbvosIdaW3klC- z^V0#P9rTxpoB!#!zaz2pNOT8tRqH$KRv$-3Gh12FssoD)REedn)m52+y6 z-_H$$=5_fD3hza+Ti@F_Idr$1FjVeUO*KQ?X_GDe3JopQh>A!jZ`Pih<0lR$jop`Jr@J3~Y!GKBwMRaYJjW!wMd;~Dw6cH&Y9%CQbhmdW?(pZ~8Dc%-ac-ls&Arw)QCP|W>qWA9oJ-%woilSYgngpYkzg@ zn(~ta?r6@aa*E2IUj@V|3c3nl1+JV@`d4JiVxI|*Wu-$r3wv8_RoW5k9rVD3_~|iR zN*5UwZe153`1@1DWU}3lnXQGV&0Ci&yWii*?OP9x?m?GZ?ONL!TGQ>9&*`jen`+1; zy8rPW+4Lffqf;ZM+eJQ_wRy?AVfBuhCx6?>Y5Ia)+r-zvyt3N5FDNSqZnjho#ffih zEu8}lXcvJrQ{r+l_`LYNrsoep>ZDMFfB|%p}X%l zN_x#%@9in*hGys}o<6*xQ_pY<-|qO)2(3y2*;|HwyrUM)|MAJ`)djmB6WLA<#}FO$RT~0qor`4}MvmJd zp-C4dRMRv+nLvT$bEI5uxTKEfAV$QkTb=e@9QAFlUvH=fwEjjhmN}Qkd?$h^I1;jQSJf5F&P?~|;v4DBf@?Y$YDE=Z zePe~v=>#u+bbttl*$tdf4}%#hikNup-Ha6M8$1_Bp^(VR&uOznxK6uY>c+T|k_#)+ z2oeCgb{J_I&L!IfEITc0nR)qw%M`JYa4tLZY%wQ6m5^Xzn9lX$5}5ojFoTm|)>af{ z5g_8Yi5%=6bH;jSvh`LCsrsE*xM79{{)7{ro5AlIJG=q$L-Voved1-X1xM#DJ}S?U zs*UFosh%+oFJcRXeU*^naQsN%n8#{+oT3}4wKIo;g&|tRUuZeHp$6f!#}&_1oJg#R z6Vmf2Mw|63gu8oKCTIn4#F>%v(LArts)1SD3N5=|-P{HNMLDb*5~rdAaUE`G6L!@! zsO=%rL$aBJcB4~F?v%=rtZzx2bfeQ*DC}($FIJf~U+adW-V5U!iYmn096H&>VKt0F zZ+%NtB2T%1I&!v?Y??B7TRAJ-%eTtm3Pprsm| z(x&J~KF<`^>{s>^wSW47;tyZ5qtarq3$@}bdcxx(0~-VdNhQ@k)6rlPK(jh1AnT=T zDU_rmft8Sl9C}1WFKc4^^GSZaAtWO8xhBeM88oM(vkZ)rIqq+;cSrrr%}XMjm^1_5 z`LNi&KRR0NvcdIKqK$1%zc$yo#V-3__1LSgFdUmr`SKkx_s1YvFiOEB_FfYjZZOX}! zyVS=wmBj+HL7RwxXvW|rQ4PukNS+;4`UgK&4I|RP-_J_q5+Y9*^;|Qp*K7J4c6no8 zjc7~v*a9D$FkX?7ER6dcdBBu^B=8erpbq13ojYX>&gasvUy@qO-fv=;<9^=kz)^;j zwUjFmJ81Xo^|5LH9jH?mJPfhbt1=7gc%AUhf+6+lmykhdi;6@?a>0A0@;ft?5n+L_ zJpXnjjY)8CaFWUR|IHO2BeAR$tZ9smVsAK=lL{_h2E9^0T+fM7WB<@f7y3MU^mtcKN@@>WoSckJNK6m=H9H_4rtk2Za4jKF3?Bntegxl@?bVk zH6(T?Ys2}P4Da-DEj7;mSljX4jECLE_Iz`)U;faRs;hPdH)Sw(C;JMoj&F$?0UkbG zapLHv98V$amk>6U(ZU0~71Mo#E7ab9XxmEUv6M`!prRICACF1EK|XM{x$LeH@%F&t zwy8lfXRf=;NMba1*>P|aG8fuqpwa+ix3(L(2*&EpgAXvtG0nEdh{1uf8PEwE4Ro=6baW6m{=!G1Wdi|d1Lz6}V|1L|{8Q}d*>|S>@N0_=QxrdA!L!&X%_vJH zEj8HZM&H0pRsb7=`jM+otMDs>m3@b@fLMsp$Ur%M_Rx+*P(tuGG@Fn`hqidsBPZ|s zbj?29Qs4O{#9nqCRpSM1r3Oz==BEay&g|s)pWEIY-AWBnIp}{+peeuh_o>sO-8~^5 zs^Z7?iJF~SujN*}n2SlD?%!8m171piw_UXT_iw?-sQ{jr?U*CGT=!)6!117dFfxo5 zQC!l{2Ix}&B%0s8eZl@W=TSgEI6vWCR@AXETuobCb1aGL#0LBl+S3H&6eQ`wm=_tx zGtoKX4Ea-IrW;TIr5$1g&gWwE6o*;BDj_pY4GncfIK0;&Ai(;Zl#b?ZKp}JYm9V z9IDIx@`O&^AT0f+Jjm`H(_No9Fq1ix~bKeHE~ zQr;96l|-^Uk^_`_7&}u!vna`tg}gCogXj8XD&ciw2u)7rI9TWndZq6ifp~#Fd;hY& zb<_)%6k!UY9#=wd50Ft@_OF7O?5h0|T4)WQf}6u%wHV&Lx{sLO=-C`@#zbUJDldmL zjzWY44REJ;&SAZZTgq=0ppz~hwSttp95z$_QQjS#&-j_KlUU_vU@ezWW4(*-&pj%y z7JaoIU>#nZsy2B~zrcM1zUnhmJXCHxoReSilX3A5=Kl=^6zf!%O&-fuk4ORoma0)lpAo~8A=F!W*|he zLZ5$o=xUk7hi%KJm=l~^bh~TYW_U;Uj0{CzuuM^pC}0vi2?FB_U%dG4*5dJm_7#p7 z-zeuO@1iuYAW#eWiHH zcYcG4-#QPk?@7L==~mNa*G%2RsxfcRcytVJU!|M-bHe%P5^aL4e*dbKc@?TYFkMGp zVF{`W;b!QTYA`^P7%eJ&(wO(p7VJtgat?UxR?Eiw5tSL%H zae`UCXAUKUj5EiYqVo~c(hVLC!4f~f_!yJl)cvRJdz2z#)I7+vaxfM7zs>vWh}{7q zG>G;QG4mnm3+DPd9M8=;3m9DR+|`XPrAmvc1kLE%^8v!|ZNC-;eIClMyPs<7zrwe# zm3#TQa4DO9tw!`_Cj!Y`-8vGksC2TTYDy3|?pN}A%-uac)K^WNT(iVX_3k5SG2gUI z6}R>dlj(FoT0^(BstCKS{d~>G4u*Kks!uo+3<`VB;g$U3InF5<*E4 zNR4-l#?BY}v@oQc(OuF{oMoq$WWB?X;m{n4qr1nE>OE4<6wF&pK+#m16rO%@Trck1 zG|zomx}IM9X&hq9IHRs-M1$rFYdD|6;nv`e){MQdJ>+Jjh?B8;i_WSeqX_W~DxQ7o zndsp}q)3roh%*Fz25FrkQr+nAryy};hs}v$CyFOVQ}2I~e$?a7zPwarhZB^PDNEMA z$sThlBOvSdE-S^6EZNW0|PvoA5$bluknrkU;!`u5Fz7%OKC z>4`Kk9=%A?PUdi*IJXd7 zY}}o_#2r3|*A7Y@EAlWCzh|VxYm7gOpq|FZe?R5@N7{8uSC33hvz*0dOOq$;H)*bV zBd&dlo{`9}u$r?G!e^Jf<9%Qql&wZp@oBK?rza{*!^P7Hh{X#bDuuemk$?#7Nr>U# zZ!Dk>;3S_rw*+X#407+l_x%Bxd5O8J9L&cS(0GR)3`dLAEludd>Q=c1FciiQg!;CpGV>Usu z%rz}_OwSw{MK+IJivE}T+18(>$EV6zxqc*q%}{`Is}?O98+nbbN$l2|#!a7f_tI+A zie*@9-5A!Qol`$j`mqvOy)BX(q?jeBsEjb~cc_9`I8@3da-FaCK{dbJ7NPmA13RC@ zNLvD87A^g_?zL^!k()uhUJhkGY4GDhMRv>s?7iU1Zx3#v4f2+{4Cm9o1YZrVnKdy; zzIVW9MsYZ)9AL%80|wqE?Pn)m29yc~BUvuBO5eqw-VRPqv;o{6i)UWRm|+F_slR6a E1FPJbQvd(} literal 0 HcmV?d00001