From e4b6bf82a23a04a7d7cf3aec2d1c0643d87eb571 Mon Sep 17 00:00:00 2001 From: Nehon Date: Sun, 5 Nov 2017 23:52:22 +0100 Subject: [PATCH] Better PBR env map generation --- .../jme3/environment/EnvironmentCamera.java | 6 +- .../jme3/environment/LightProbeFactory.java | 56 +- .../PrefilteredEnvMapFaceGenerator.java | 227 +- .../jme3/environment/util/CubeMapWrapper.java | 34 +- .../jme3/environment/util/EnvMapUtils.java | 22 +- .../texture/image/ByteAlignedImageCodec.java | 2 +- .../java/com/jme3/util/MipMapGenerator.java | 22 +- .../main/java/jme3test/light/pbr/RefEnv.java | 21 +- .../main/resources/Scenes/PBR/ref/scene.bin | Bin 0 -> 507936 bytes .../main/resources/Scenes/PBR/ref/scene.gltf | 2466 +++++++++++++++++ 10 files changed, 2718 insertions(+), 138 deletions(-) create mode 100644 jme3-testdata/src/main/resources/Scenes/PBR/ref/scene.bin create mode 100644 jme3-testdata/src/main/resources/Scenes/PBR/ref/scene.gltf diff --git a/jme3-core/src/main/java/com/jme3/environment/EnvironmentCamera.java b/jme3-core/src/main/java/com/jme3/environment/EnvironmentCamera.java index 1fba5d51d..aff4dd0b9 100644 --- a/jme3-core/src/main/java/com/jme3/environment/EnvironmentCamera.java +++ b/jme3-core/src/main/java/com/jme3/environment/EnvironmentCamera.java @@ -48,6 +48,7 @@ import com.jme3.texture.Texture2D; import com.jme3.texture.TextureCubeMap; import com.jme3.texture.image.ColorSpace; import com.jme3.util.BufferUtils; +import com.jme3.util.MipMapGenerator; import java.nio.ByteBuffer; import java.util.ArrayList; @@ -72,6 +73,8 @@ public class EnvironmentCamera extends BaseAppState { protected Image.Format imageFormat = Image.Format.RGB16F; + public TextureCubeMap debugEnv; + //Axis for cameras static { //PositiveX axis(left, up, direction) @@ -188,10 +191,11 @@ public class EnvironmentCamera extends BaseAppState { buffers[i] = BufferUtils.createByteBuffer(size * size * imageFormat.getBitsPerPixel() / 8); renderManager.getRenderer().readFrameBufferWithFormat(framebuffers[i], buffers[i], imageFormat); images[i] = new Image(imageFormat, size, size, buffers[i], ColorSpace.Linear); + MipMapGenerator.generateMipMaps(images[i]); } final TextureCubeMap map = EnvMapUtils.makeCubeMap(images[0], images[1], images[2], images[3], images[4], images[5], imageFormat); - + debugEnv = map; job.callback.done(map); map.getImage().dispose(); jobs.remove(0); diff --git a/jme3-core/src/main/java/com/jme3/environment/LightProbeFactory.java b/jme3-core/src/main/java/com/jme3/environment/LightProbeFactory.java index b41bbd479..b76629a83 100644 --- a/jme3-core/src/main/java/com/jme3/environment/LightProbeFactory.java +++ b/jme3-core/src/main/java/com/jme3/environment/LightProbeFactory.java @@ -31,13 +31,14 @@ */ package com.jme3.environment; +import com.jme3.app.Application; import com.jme3.environment.generation.*; -import com.jme3.light.LightProbe; import com.jme3.environment.util.EnvMapUtils; -import com.jme3.app.Application; +import com.jme3.light.LightProbe; import com.jme3.scene.Node; import com.jme3.scene.Spatial; import com.jme3.texture.TextureCubeMap; + import java.util.concurrent.ScheduledThreadPoolExecutor; /** @@ -106,10 +107,11 @@ public class LightProbeFactory { * @param envCam the EnvironmentCamera * @param scene the Scene + * @param genType Fast or HighQuality. Fast may be ok for many types of environment, but you may need high quality when an environment map has very high lighting values. * @param listener the listener of the genration progress. * @return the created LightProbe */ - public static LightProbe makeProbe(final EnvironmentCamera envCam, Spatial scene, final JobProgressListener listener) { + public static LightProbe makeProbe(final EnvironmentCamera envCam, Spatial scene, final EnvMapUtils.GenerationType genType, final JobProgressListener listener) { final LightProbe probe = new LightProbe(); probe.setPosition(envCam.getPosition()); probe.setPrefilteredMap(EnvMapUtils.createPrefilteredEnvMap(envCam.getSize(), envCam.getImageFormat())); @@ -117,33 +119,37 @@ public class LightProbeFactory { @Override public void done(TextureCubeMap map) { - generatePbrMaps(map, probe, envCam.getApplication(), listener); + generatePbrMaps(map, probe, envCam.getApplication(), genType, listener); } }); return probe; } - - /** - * Updates a LightProbe with the giver EnvironmentCamera in the given scene. - * + + public static LightProbe makeProbe(final EnvironmentCamera envCam, Spatial scene, final JobProgressListener listener) { + return makeProbe(envCam, scene, EnvMapUtils.GenerationType.Fast, listener); + } + + /** + * Updates a LightProbe with the given EnvironmentCamera in the given scene. + *

* Note that this is an assynchronous process that will run on multiple threads. * The process is thread safe. * The created lightProbe will only be marked as ready when the rendering process is done. - * - * The JobProgressListener will be notified of the progress of the generation. - * Note that you can also use a {@link JobProgressAdapter}. - * + *

+ * The JobProgressListener will be notified of the progress of the generation. + * Note that you can also use a {@link JobProgressAdapter}. + * + * @param probe the Light probe to update + * @param envCam the EnvironmentCamera + * @param scene the Scene + * @param genType Fast or HighQuality. Fast may be ok for many types of environment, but you may need high quality when an environment map has very high lighting values. + * @param listener the listener of the genration progress. + * @return the created LightProbe * @see LightProbe * @see EnvironmentCamera * @see JobProgressListener - * - * @param probe the Light probe to update - * @param envCam the EnvironmentCamera - * @param scene the Scene - * @param listener the listener of the genration progress. - * @return the created LightProbe */ - public static LightProbe updateProbe(final LightProbe probe, final EnvironmentCamera envCam, Spatial scene, final JobProgressListener listener) { + public static LightProbe updateProbe(final LightProbe probe, final EnvironmentCamera envCam, Spatial scene, final EnvMapUtils.GenerationType genType, final JobProgressListener listener) { envCam.setPosition(probe.getPosition()); @@ -159,23 +165,27 @@ public class LightProbeFactory { @Override public void done(TextureCubeMap map) { - generatePbrMaps(map, probe, envCam.getApplication(), listener); + generatePbrMaps(map, probe, envCam.getApplication(), genType, listener); } }); return probe; } + public static LightProbe updateProbe(final LightProbe probe, final EnvironmentCamera envCam, Spatial scene, final JobProgressListener listener) { + return updateProbe(probe, envCam, scene, EnvMapUtils.GenerationType.Fast, listener); + } + /** * Internally called to generate the maps. * This method will spawn 7 thread (one for the Irradiance spherical harmonics generator, and one for each face of the prefiltered env map). * Those threads will be executed in a ScheduledThreadPoolExecutor that will be shutdown when the genration is done. - * + * * @param envMap the raw env map rendered by the env camera * @param probe the LigthProbe to generate maps for * @param app the Application * @param listener a progress listener. (can be null if no progress reporting is needed) */ - private static void generatePbrMaps(TextureCubeMap envMap, final LightProbe probe, Application app, final JobProgressListener listener) { + private static void generatePbrMaps(TextureCubeMap envMap, final LightProbe probe, Application app, EnvMapUtils.GenerationType genType, final JobProgressListener listener) { IrradianceSphericalHarmonicsGenerator irrShGenerator; PrefilteredEnvMapFaceGenerator[] pemGenerators = new PrefilteredEnvMapFaceGenerator[6]; @@ -189,7 +199,7 @@ public class LightProbeFactory { for (int i = 0; i < pemGenerators.length; i++) { pemGenerators[i] = new PrefilteredEnvMapFaceGenerator(app, i, new JobListener(listener, jobState, probe, i)); - pemGenerators[i].setGenerationParam(EnvMapUtils.duplicateCubeMap(envMap), size, EnvMapUtils.FixSeamsMethod.None, probe.getPrefilteredEnvMap()); + pemGenerators[i].setGenerationParam(EnvMapUtils.duplicateCubeMap(envMap), size, EnvMapUtils.FixSeamsMethod.None, genType, probe.getPrefilteredEnvMap()); jobState.executor.execute(pemGenerators[i]); } } diff --git a/jme3-core/src/main/java/com/jme3/environment/generation/PrefilteredEnvMapFaceGenerator.java b/jme3-core/src/main/java/com/jme3/environment/generation/PrefilteredEnvMapFaceGenerator.java index 8233b11e5..8fe9cc8aa 100644 --- a/jme3-core/src/main/java/com/jme3/environment/generation/PrefilteredEnvMapFaceGenerator.java +++ b/jme3-core/src/main/java/com/jme3/environment/generation/PrefilteredEnvMapFaceGenerator.java @@ -31,27 +31,19 @@ */ package com.jme3.environment.generation; +import com.jme3.app.Application; import com.jme3.environment.util.CubeMapWrapper; import com.jme3.environment.util.EnvMapUtils; -import com.jme3.app.Application; import com.jme3.math.*; - -import static com.jme3.math.FastMath.abs; -import static com.jme3.math.FastMath.clamp; -import static com.jme3.math.FastMath.pow; -import static com.jme3.math.FastMath.sqrt; - import com.jme3.texture.TextureCubeMap; -import static com.jme3.environment.util.EnvMapUtils.getHammersleyPoint; -import static com.jme3.environment.util.EnvMapUtils.getRoughnessFromMip; -import static com.jme3.environment.util.EnvMapUtils.getSampleFromMip; -import static com.jme3.environment.util.EnvMapUtils.getVectorFromCubemapFaceTexCoord; - import java.util.concurrent.Callable; -import java.util.logging.Level; import java.util.logging.Logger; +import static com.jme3.environment.util.EnvMapUtils.*; +import static com.jme3.math.FastMath.abs; +import static com.jme3.math.FastMath.sqrt; + /** * Generates one face of the prefiltered environnement map for PBR. This job can * be lauched from a separate thread. @@ -69,6 +61,7 @@ public class PrefilteredEnvMapFaceGenerator extends RunnableWithProgress { private int targetMapSize; private EnvMapUtils.FixSeamsMethod fixSeamsMethod; + private EnvMapUtils.GenerationType genType; private TextureCubeMap sourceMap; private TextureCubeMap store; private final Application app; @@ -107,11 +100,12 @@ public class PrefilteredEnvMapFaceGenerator extends RunnableWithProgress { * {@link EnvMapUtils.FixSeamsMethod} * @param store The cube map to store the result in. */ - public void setGenerationParam(TextureCubeMap sourceMap, int targetMapSize, EnvMapUtils.FixSeamsMethod fixSeamsMethod, TextureCubeMap store) { + public void setGenerationParam(TextureCubeMap sourceMap, int targetMapSize, EnvMapUtils.FixSeamsMethod fixSeamsMethod, EnvMapUtils.GenerationType genType, TextureCubeMap store) { this.sourceMap = sourceMap; this.targetMapSize = targetMapSize; this.fixSeamsMethod = fixSeamsMethod; this.store = store; + this.genType = genType; init(); } @@ -162,68 +156,105 @@ public class PrefilteredEnvMapFaceGenerator extends RunnableWithProgress { * @return The irradiance cube map for the given coefficients */ private TextureCubeMap generatePrefilteredEnvMap(TextureCubeMap sourceEnvMap, int targetMapSize, EnvMapUtils.FixSeamsMethod fixSeamsMethod, TextureCubeMap store) { - TextureCubeMap pem = store; + try { + TextureCubeMap pem = store; - int nbMipMap = (int) (Math.log(targetMapSize) / Math.log(2) - 1); + int nbMipMap = store.getImage().getMipMapSizes().length; - setEnd(nbMipMap); + setEnd(nbMipMap); + if (!sourceEnvMap.getImage().hasMipmaps() || sourceEnvMap.getImage().getMipMapSizes().length < nbMipMap) { + throw new IllegalArgumentException("The input cube map must have at least " + nbMipMap + "mip maps"); + } - CubeMapWrapper sourceWrapper = new CubeMapWrapper(sourceEnvMap); - CubeMapWrapper targetWrapper = new CubeMapWrapper(pem); + CubeMapWrapper sourceWrapper = new CubeMapWrapper(sourceEnvMap); + CubeMapWrapper targetWrapper = new CubeMapWrapper(pem); - Vector3f texelVect = new Vector3f(); - Vector3f color = new Vector3f(); - ColorRGBA outColor = new ColorRGBA(); - for (int mipLevel = 0; mipLevel < nbMipMap; mipLevel++) { - float roughness = getRoughnessFromMip(mipLevel, nbMipMap); - int nbSamples = getSampleFromMip(mipLevel, nbMipMap); - int targetMipMapSize = (int) pow(2, nbMipMap + 1 - mipLevel); + Vector3f texelVect = new Vector3f(); + Vector3f color = new Vector3f(); + ColorRGBA outColor = new ColorRGBA(); + int targetMipMapSize = targetMapSize; + for (int mipLevel = 0; mipLevel < nbMipMap; mipLevel++) { + float roughness = getRoughnessFromMip(mipLevel, nbMipMap); + int nbSamples = getSampleFromMip(mipLevel, nbMipMap); - for (int y = 0; y < targetMipMapSize; y++) { - for (int x = 0; x < targetMipMapSize; x++) { - color.set(0, 0, 0); - getVectorFromCubemapFaceTexCoord(x, y, targetMipMapSize, face, texelVect, fixSeamsMethod); - prefilterEnvMapTexel(sourceWrapper, roughness, texelVect, nbSamples, color); + for (int y = 0; y < targetMipMapSize; y++) { + for (int x = 0; x < targetMipMapSize; x++) { + color.set(0, 0, 0); + getVectorFromCubemapFaceTexCoord(x, y, targetMipMapSize, face, texelVect, fixSeamsMethod); + prefilterEnvMapTexel(sourceWrapper, roughness, texelVect, nbSamples, mipLevel, color); - outColor.set(Math.max(color.x, 0.0001f), Math.max(color.y, 0.0001f), Math.max(color.z, 0.0001f), 1); - log.log(Level.FINE, "coords {0},{1}", new Object[]{x, y}); - targetWrapper.setPixel(x, y, face, mipLevel, outColor); + outColor.set(Math.max(color.x, 0.0001f), Math.max(color.y, 0.0001f), Math.max(color.z, 0.0001f), 1); + targetWrapper.setPixel(x, y, face, mipLevel, outColor); + } } + targetMipMapSize /= 2; + progress(); } - progress(); - } - return pem; + return pem; + } catch (Exception e) { + e.printStackTrace(); + throw e; + } } - private Vector3f prefilterEnvMapTexel(CubeMapWrapper envMapReader, float roughness, Vector3f N, int numSamples, Vector3f store) { + private Vector3f prefilterEnvMapTexel(CubeMapWrapper envMapReader, float roughness, Vector3f N, int numSamples, int mipLevel, Vector3f store) { Vector3f prefilteredColor = store; float totalWeight = 0.0f; + int nbRotations = 1; + if (genType == GenerationType.HighQuality) { + nbRotations = numSamples == 1 ? 1 : 18; + } + + float rad = 2f * FastMath.PI / (float) nbRotations; + // offset rotation to avoid sampling pattern + float gi = (float) (FastMath.abs(N.z + N.x) * 256.0); + float offset = rad * (FastMath.cos((gi * 0.5f) % (2f * FastMath.PI)) * 0.5f + 0.5f); + // a = roughness² and a2 = a² float a2 = roughness * roughness; a2 *= a2; + + //Computing tangent frame + Vector3f upVector = Vector3f.UNIT_X; + if (abs(N.z) < 0.999) { + upVector = Vector3f.UNIT_Y; + } + Vector3f tangentX = tmp1.set(upVector).crossLocal(N).normalizeLocal(); + Vector3f tangentY = tmp2.set(N).crossLocal(tangentX); + + // https://placeholderart.wordpress.com/2015/07/28/implementation-notes-runtime-environment-map-filtering-for-image-based-lighting/ + // in local space view == normal == 0,0,1 + Vector3f V = new Vector3f(0, 0, 1); + + Vector3f lWorld = new Vector3f(); for (int i = 0; i < numSamples; i++) { Xi = getHammersleyPoint(i, numSamples, Xi); - H = importanceSampleGGX(Xi, a2, N, H); - + H = importanceSampleGGX(Xi, a2, H); H.normalizeLocal(); - tmp.set(H); - float NoH = N.dot(tmp); - - Vector3f L = tmp.multLocal(NoH * 2).subtractLocal(N); - float NoL = clamp(N.dot(L), 0.0f, 1.0f); - if (NoL > 0) { - envMapReader.getPixel(L, c); - prefilteredColor.setX(prefilteredColor.x + c.r * NoL); - prefilteredColor.setY(prefilteredColor.y + c.g * NoL); - prefilteredColor.setZ(prefilteredColor.z + c.b * NoL); - - totalWeight += NoL; + float VoH = H.z; + Vector3f L = H.multLocal(VoH * 2f).subtractLocal(V); + float NoL = L.z; + + float computedMipLevel = mipLevel; + if (mipLevel != 0) { + computedMipLevel = computeMipLevel(roughness, numSamples, this.targetMapSize, VoH); + } + + toWorld(L, N, tangentX, tangentY, lWorld); + totalWeight += samplePixel(envMapReader, lWorld, NoL, computedMipLevel, prefilteredColor); + + for (int j = 1; j < nbRotations; j++) { + rotateDirection(offset + j * rad, L, lWorld); + L.set(lWorld); + toWorld(L, N, tangentX, tangentY, lWorld); + totalWeight += samplePixel(envMapReader, lWorld, NoL, computedMipLevel, prefilteredColor); } + } if (totalWeight > 0) { prefilteredColor.divideLocal(totalWeight); @@ -232,7 +263,78 @@ public class PrefilteredEnvMapFaceGenerator extends RunnableWithProgress { return prefilteredColor; } - public Vector3f importanceSampleGGX(Vector4f xi, float a2, Vector3f normal, Vector3f store) { + private float samplePixel(CubeMapWrapper envMapReader, Vector3f lWorld, float NoL, float computedMipLevel, Vector3f store) { + + if (NoL <= 0) { + return 0; + } + envMapReader.getPixel(lWorld, computedMipLevel, c); + store.setX(store.x + c.r * NoL); + store.setY(store.y + c.g * NoL); + store.setZ(store.z + c.b * NoL); + + return NoL; + } + + private void toWorld(Vector3f L, Vector3f N, Vector3f tangentX, Vector3f tangentY, Vector3f store) { + store.set(tangentX).multLocal(L.x); + tmp.set(tangentY).multLocal(L.y); + store.addLocal(tmp); + tmp.set(N).multLocal(L.z); + store.addLocal(tmp); + } + + private float computeMipLevel(float roughness, int numSamples, float size, float voH) { + // H[2] is NoH in local space + // adds 1.e-5 to avoid ggx / 0.0 + float NoH = voH + 1E-5f; + + // Probability Distribution Function + float Pdf = ggx(NoH, roughness) * NoH / (4.0f * voH); + + // Solid angle represented by this sample + float omegaS = 1.0f / (numSamples * Pdf); + + // Solid angle covered by 1 pixel with 6 faces that are EnvMapSize X EnvMapSize + float omegaP = 4.0f * FastMath.PI / (6.0f * size * size); + + // Original paper suggest biasing the mip to improve the results + float mipBias = 1.0f; // I tested that the result is better with bias 1 + double maxLod = Math.log(size) / Math.log(2f); + double log2 = Math.log(omegaS / omegaP) / Math.log(2); + return Math.min(Math.max(0.5f * (float) log2 + mipBias, 0.0f), (float) maxLod); + } + + + private float ggx(float NoH, float alpha) { + // use GGX / Trowbridge-Reitz, same as Disney and Unreal 4 + // cf http://blog.selfshadow.com/publications/s2013-shading-course/karis/s2013_pbs_epic_notes_v2.pdf p3 + float tmp = alpha / (NoH * NoH * (alpha * alpha - 1.0f) + 1.0f); + return tmp * tmp * (1f / FastMath.PI); + } + + private Vector3f rotateDirection(float angle, Vector3f l, Vector3f store) { + float s, c, t; + + s = FastMath.sin(angle); + c = FastMath.cos(angle); + t = 1.f - c; + + store.x = l.x * c + l.y * s; + store.y = -l.x * s + l.y * c; + store.z = l.z * (t + c); + return store; + } + + /** + * Computes GGX half vector in local space + * + * @param xi + * @param a2 + * @param store + * @return + */ + public Vector3f importanceSampleGGX(Vector4f xi, float a2, Vector3f store) { if (store == null) { store = new Vector3f(); } @@ -243,22 +345,9 @@ public class PrefilteredEnvMapFaceGenerator extends RunnableWithProgress { float sinThetaCosPhi = sinTheta * xi.z;//xi.z is cos(phi) float sinThetaSinPhi = sinTheta * xi.w;//xi.w is sin(phi) - Vector3f upVector = Vector3f.UNIT_X; - - if (abs(normal.z) < 0.999) { - upVector = Vector3f.UNIT_Y; - } - - Vector3f tangentX = tmp1.set(upVector).crossLocal(normal).normalizeLocal(); - Vector3f tangentY = tmp2.set(normal).crossLocal(tangentX); - - // Tangent to world space - tangentX.multLocal(sinThetaCosPhi); - tangentY.multLocal(sinThetaSinPhi); - tmp3.set(normal).multLocal(cosTheta); - - // Tangent to world space - store.set(tangentX).addLocal(tangentY).addLocal(tmp3); + store.x = sinThetaCosPhi; + store.y = sinThetaSinPhi; + store.z = cosTheta; return store; } diff --git a/jme3-core/src/main/java/com/jme3/environment/util/CubeMapWrapper.java b/jme3-core/src/main/java/com/jme3/environment/util/CubeMapWrapper.java index cdf66a6d1..7226f9610 100644 --- a/jme3-core/src/main/java/com/jme3/environment/util/CubeMapWrapper.java +++ b/jme3-core/src/main/java/com/jme3/environment/util/CubeMapWrapper.java @@ -31,17 +31,15 @@ */ package com.jme3.environment.util; -import com.jme3.environment.util.EnvMapUtils; -import com.jme3.math.ColorRGBA; -import static com.jme3.math.FastMath.pow; -import com.jme3.math.Vector2f; -import com.jme3.math.Vector3f; +import com.jme3.math.*; import com.jme3.texture.Image; import com.jme3.texture.TextureCubeMap; import com.jme3.texture.image.DefaultImageRaster; import com.jme3.texture.image.MipMapImageRaster; import com.jme3.util.BufferUtils; +import static com.jme3.math.FastMath.pow; + /** * Wraps a Cube map and allows to read from or write pixels into it. * @@ -57,6 +55,8 @@ public class CubeMapWrapper { private final Vector2f uvs = new Vector2f(); private final Image image; + private final ColorRGBA tmpColor = new ColorRGBA(); + /** * Creates a CubeMapWrapper for the given cube map * Note that the cube map must be initialized, and the mipmaps sizes should @@ -105,7 +105,7 @@ public class CubeMapWrapper { * @param store the color in which to store the pixel color read. * @return the color of the pixel read. */ - public ColorRGBA getPixel(Vector3f vector, int mipLevel, ColorRGBA store) { + public ColorRGBA getPixel(Vector3f vector, float mipLevel, ColorRGBA store) { if (mipMapRaster == null) { throw new IllegalArgumentException("This cube map has no mip maps"); } @@ -113,10 +113,26 @@ public class CubeMapWrapper { store = new ColorRGBA(); } - int face = EnvMapUtils.getCubemapFaceTexCoordFromVector(vector, sizes[mipLevel], uvs, EnvMapUtils.FixSeamsMethod.Stretch); + int lowerMipLevel = (int) mipLevel; + int higherMipLevel = (int) FastMath.ceil(mipLevel); + float ratio = mipLevel - lowerMipLevel; + + int face = EnvMapUtils.getCubemapFaceTexCoordFromVector(vector, sizes[lowerMipLevel], uvs, EnvMapUtils.FixSeamsMethod.Stretch); mipMapRaster.setSlice(face); - mipMapRaster.setMipLevel(mipLevel); - return mipMapRaster.getPixel((int) uvs.x, (int) uvs.y, store); + mipMapRaster.setMipLevel(lowerMipLevel); + mipMapRaster.getPixel((int) uvs.x, (int) uvs.y, store); + + face = EnvMapUtils.getCubemapFaceTexCoordFromVector(vector, sizes[higherMipLevel], uvs, EnvMapUtils.FixSeamsMethod.Stretch); + mipMapRaster.setSlice(face); + mipMapRaster.setMipLevel(higherMipLevel); + mipMapRaster.getPixel((int) uvs.x, (int) uvs.y, tmpColor); + + store.r = FastMath.interpolateLinear(ratio, store.r, tmpColor.r); + store.g = FastMath.interpolateLinear(ratio, store.g, tmpColor.g); + store.b = FastMath.interpolateLinear(ratio, store.b, tmpColor.b); + store.a = FastMath.interpolateLinear(ratio, store.a, tmpColor.a); + + return store; } /** diff --git a/jme3-core/src/main/java/com/jme3/environment/util/EnvMapUtils.java b/jme3-core/src/main/java/com/jme3/environment/util/EnvMapUtils.java index 4598ec0d6..91b65655e 100644 --- a/jme3-core/src/main/java/com/jme3/environment/util/EnvMapUtils.java +++ b/jme3-core/src/main/java/com/jme3/environment/util/EnvMapUtils.java @@ -37,18 +37,15 @@ import com.jme3.math.*; import com.jme3.scene.Geometry; import com.jme3.scene.Node; import com.jme3.scene.shape.Quad; -import com.jme3.texture.Image; -import com.jme3.texture.Texture; -import com.jme3.texture.Texture2D; -import com.jme3.texture.TextureCubeMap; +import com.jme3.texture.*; import com.jme3.texture.image.ColorSpace; import com.jme3.ui.Picture; import com.jme3.util.BufferUtils; +import com.jme3.util.TempVars; + import java.nio.ByteBuffer; -import java.util.ArrayList; -import static com.jme3.math.FastMath.*; -import com.jme3.util.TempVars; +import static com.jme3.math.FastMath.*; /** * @@ -88,6 +85,11 @@ public class EnvMapUtils { None } + public static enum GenerationType { + Fast, + HighQuality + } + /** * Creates a cube map from 6 images * @@ -117,6 +119,8 @@ public class EnvMapUtils { cubeImage.addData(backImg.getData(0)); cubeImage.addData(frontImg.getData(0)); + cubeImage.setMipMapSizes(rightImg.getMipMapSizes()); + TextureCubeMap cubeMap = new TextureCubeMap(cubeImage); cubeMap.setAnisotropicFilter(0); cubeMap.setMagFilter(Texture.MagFilter.Bilinear); @@ -148,6 +152,8 @@ public class EnvMapUtils { cubeImage.addData(d.duplicate()); } + cubeImage.setMipMapSizes(srcImg.getMipMapSizes()); + TextureCubeMap cubeMap = new TextureCubeMap(cubeImage); cubeMap.setAnisotropicFilter(sourceMap.getAnisotropicFilter()); cubeMap.setMagFilter(sourceMap.getMagFilter()); @@ -730,7 +736,7 @@ public class EnvMapUtils { pem.setMagFilter(Texture.MagFilter.Bilinear); pem.setMinFilter(Texture.MinFilter.Trilinear); pem.getImage().setColorSpace(ColorSpace.Linear); - int nbMipMap = (int) (Math.log(size) / Math.log(2) - 1); + int nbMipMap = Math.min(6, (int) (Math.log(size) / Math.log(2))); CubeMapWrapper targetWrapper = new CubeMapWrapper(pem); targetWrapper.initMipMaps(nbMipMap); return pem; diff --git a/jme3-core/src/main/java/com/jme3/texture/image/ByteAlignedImageCodec.java b/jme3-core/src/main/java/com/jme3/texture/image/ByteAlignedImageCodec.java index ac1989d5c..d00ab7e22 100644 --- a/jme3-core/src/main/java/com/jme3/texture/image/ByteAlignedImageCodec.java +++ b/jme3-core/src/main/java/com/jme3/texture/image/ByteAlignedImageCodec.java @@ -110,7 +110,7 @@ class ByteAlignedImageCodec extends ImageCodec { } public void readComponents(ByteBuffer buf, int x, int y, int width, int offset, int[] components, byte[] tmp) { - readPixelRaw(buf, (x + y * width + offset) * bpp + offset, bpp, tmp); + readPixelRaw(buf, (x + y * width ) * bpp + offset, bpp, tmp); components[0] = readComponent(tmp, ap, az); components[1] = readComponent(tmp, rp, rz); components[2] = readComponent(tmp, gp, gz); diff --git a/jme3-core/src/main/java/com/jme3/util/MipMapGenerator.java b/jme3-core/src/main/java/com/jme3/util/MipMapGenerator.java index 3ac6a7ecd..7ea5b23f7 100644 --- a/jme3-core/src/main/java/com/jme3/util/MipMapGenerator.java +++ b/jme3-core/src/main/java/com/jme3/util/MipMapGenerator.java @@ -34,8 +34,8 @@ package com.jme3.util; import com.jme3.math.ColorRGBA; import com.jme3.math.FastMath; import com.jme3.texture.Image; -import com.jme3.texture.Image.Format; import com.jme3.texture.image.ImageRaster; + import java.nio.ByteBuffer; import java.util.ArrayList; @@ -58,8 +58,8 @@ public class MipMapGenerator { float xRatio = ((float)(input.getWidth() - 1)) / output.getWidth(); float yRatio = ((float)(input.getHeight() - 1)) / output.getHeight(); - - ColorRGBA outputColor = new ColorRGBA(); + + ColorRGBA outputColor = new ColorRGBA(0, 0, 0, 0); ColorRGBA bottomLeft = new ColorRGBA(); ColorRGBA bottomRight = new ColorRGBA(); ColorRGBA topLeft = new ColorRGBA(); @@ -72,29 +72,21 @@ public class MipMapGenerator { int x2 = (int)x2f; int y2 = (int)y2f; - - float xDiff = x2f - x2; - float yDiff = y2f - y2; - + input.getPixel(x2, y2, bottomLeft); input.getPixel(x2 + 1, y2, bottomRight); input.getPixel(x2, y2 + 1, topLeft); input.getPixel(x2 + 1, y2 + 1, topRight); - - bottomLeft.multLocal( (1f - xDiff) * (1f - yDiff) ); - bottomRight.multLocal( (xDiff) * (1f - yDiff) ); - topLeft.multLocal( (1f - xDiff) * (yDiff) ); - topRight.multLocal( (xDiff) * (yDiff) ); - + outputColor.set(bottomLeft).addLocal(bottomRight) .addLocal(topLeft).addLocal(topRight); - + outputColor.multLocal(1f / 4f); output.setPixel(x, y, outputColor); } } return outputImage; } - + public static Image resizeToPowerOf2(Image original){ int potWidth = FastMath.nearestPowerOfTwo(original.getWidth()); int potHeight = FastMath.nearestPowerOfTwo(original.getHeight()); diff --git a/jme3-examples/src/main/java/jme3test/light/pbr/RefEnv.java b/jme3-examples/src/main/java/jme3test/light/pbr/RefEnv.java index 17f3efa55..a88e12bb0 100644 --- a/jme3-examples/src/main/java/jme3test/light/pbr/RefEnv.java +++ b/jme3-examples/src/main/java/jme3test/light/pbr/RefEnv.java @@ -11,12 +11,8 @@ import com.jme3.input.controls.ActionListener; import com.jme3.input.controls.KeyTrigger; import com.jme3.light.LightProbe; import com.jme3.material.Material; -import com.jme3.math.ColorRGBA; -import com.jme3.math.Quaternion; -import com.jme3.math.Vector3f; -import com.jme3.scene.Geometry; -import com.jme3.scene.Node; -import com.jme3.scene.Spatial; +import com.jme3.math.*; +import com.jme3.scene.*; import com.jme3.ui.Picture; import com.jme3.util.SkyFactory; @@ -39,11 +35,13 @@ public class RefEnv extends SimpleApplication { @Override public void simpleInitApp() { - cam.setLocation(new Vector3f(-17.713732f, 1.8661976f, 17.156784f)); - cam.setRotation(new Quaternion(0.021403445f, 0.9428821f, -0.06178002f, 0.32664734f)); + cam.setLocation(new Vector3f(-17.95047f, 4.917353f, -17.970531f)); + cam.setRotation(new Quaternion(0.11724457f, 0.29356146f, -0.03630452f, 0.94802815f)); +// cam.setLocation(new Vector3f(14.790441f, 7.164179f, 19.720007f)); +// cam.setRotation(new Quaternion(-0.038261678f, 0.9578362f, -0.15233073f, -0.24058504f)); flyCam.setDragToRotate(true); flyCam.setMoveSpeed(5); - Spatial sc = assetManager.loadModel("Models/gltf/ref/scene.gltf"); + Spatial sc = assetManager.loadModel("Scenes/PBR/ref/scene.gltf"); rootNode.attachChild(sc); Spatial sky = SkyFactory.createSky(assetManager, "Textures/Sky/Path.hdr", SkyFactory.EnvMapType.EquirectMap); rootNode.attachChild(sky); @@ -68,7 +66,7 @@ public class RefEnv extends SimpleApplication { public void onAction(String name, boolean isPressed, float tpf) { if (name.equals("tex") && isPressed) { if (tex == null) { - return; + tex = EnvMapUtils.getCubeMapCrossDebugViewWithMipMaps(stateManager.getState(EnvironmentCamera.class).debugEnv, assetManager); } if (tex.getParent() == null) { guiNode.attachChild(tex); @@ -120,13 +118,12 @@ public class RefEnv extends SimpleApplication { frame++; if (frame == 2) { - final LightProbe probe = LightProbeFactory.makeProbe(stateManager.getState(EnvironmentCamera.class), rootNode, new JobProgressAdapter() { + final LightProbe probe = LightProbeFactory.makeProbe(stateManager.getState(EnvironmentCamera.class), rootNode, EnvMapUtils.GenerationType.Fast, new JobProgressAdapter() { @Override public void done(LightProbe result) { System.err.println("Done rendering env maps"); tex = EnvMapUtils.getCubeMapCrossDebugViewWithMipMaps(result.getPrefilteredEnvMap(), assetManager); - // guiNode.attachChild(tex); rootNode.getChild(0).setCullHint(Spatial.CullHint.Dynamic); } }); diff --git a/jme3-testdata/src/main/resources/Scenes/PBR/ref/scene.bin b/jme3-testdata/src/main/resources/Scenes/PBR/ref/scene.bin new file mode 100644 index 0000000000000000000000000000000000000000..fb6b6831cf0c44983aef752c7022b9365219a6dd GIT binary patch literal 507936 zcmXuocl_^j`Nwfm8b%o@qZ}b2iX<{RB-vC*=8;qgB_ktFGD1amSqGKMNV4aV(Xg{; zM|*GWe*GSIUY~ROJ#WwF>-BwH@9X8de&_qgY5v(}n{9!#V0w9)H@$S6-7lZqyIXdg z-LI6~yIXmj-EWZGyIX&p-EW%QyW4D>-S3**yW3@)-S3&)yE|~4-5;LZyPKYz-Jh1+ zPfw>LXZL3(_wLRdXZM#U_wFtmXZP17_wKG4XZQCd_wMc)XZMdJ_wF7XXZOEP?%n-% zoZbI5xp()>IJ=)~_UG>1y?A8)vgBu&1^CFzRy2;u7 zw&UL2Hp$uj&g0(QPRZH*0ps4?e#zPWq2u1&A<5bO$>ZMLiOJdh8ROpF>B-ssrQ_b+ zCCSYA`aNE6ts77@5zL^u}Ri?(f*k5)LEt`O-q;JjwhO$=};oriDl5 z{u>ubYA`ZiG%c1eYGnSZ^y-Ae$b9i+HaLvT&B|rG=UpAR54kPpBlKDALGJkzC zKRZ}{WWGW&KQ$Pcub9k64MyfulG)%eGB+cAyx|Qa^EW2n^Rr3jZ%V%B4J(bzS4qC7 z1|#z~rzuGdM&_#~y>S?sza`nvl!TG_YRP_Z7@4o0><5RD`CF6y;4m^@BiRoQBl9(r z{opV%Un`jn4kL3jvP&FB<|`+Cylw4~`P-5{-Zph)zE09d4MyhcCVkXkWd8P~4-O;q z^^!N?FfxBf@+KTc=IbZ>#9?Iq&SY=Slgu|v_GZ@`jLbJm_NE3S^No|eslmv6lVmnH zjLgl*Y;YKvPffn(4V#b5w@AL{4V#Y4-<5n%4MyhgPQIrGBlGtpy>S?sZ<(eh97g6_ zCHui)WWIH>pQ#BW^Y^B86AmNuZIb=qFfxB%vL75q=G!Lw!C_>+U9w9YM&_F(Gs9tI zZg%>3+x8>#9g;rYw&Tcrr=*V>jLfGcebiuNzH`zCH*IA8{^U(KjLdgQ-lPU2^A99@ zbDm`W!DMfCz3a&QL&@IMU}XN`WN&IPGT$xP8xAA$-ILkiFfunIv%z6xZbtfe+a4qH zk0gD(ZO@VUUP&J{7@6;#^ihM6`A3sJIE>6cmb?jvk@-H!n{XJJe>~Y64kPn@lfB_E zGT$#vOE`?o_fPhQ!^r%AWN*_FM&_SLc8tTw{J>;pIE>8A&iB0Gppp5($@jeBkdgT( zlkcg)$o$acdulK;KP>5u!^nJk(i?}7`KOZoI8QSFbg~~iJ$z(-M6w?>7?~fL>_-ho z=0_#_!C_>6bg~~DM&_SMW`o1X+>FcyhmpA%`JOi%GcrFm`JOi%H!}Zh@;x;enSU<% zo*InIKcDo*VPt-M(i?}7`3cE>a2T0?A=wWOBl8oJ{opV%KPlM{4kPoE)AWSH$o!OK zZ#az1PfcdyJjvXQ%*IYn8=0Gt?|H-NBl9mN-}8nqjm*zTdaJ?6{LG|}8jQ@(N_sm_ zGCwEj?G0y-%x5I~QG=2BxygRi%ov%Um+S|Jk@@+_e$-%O{^evpIE>7{lI#bEk@;7X z+2AlTHzTvbVPtMb`pifdjLg55^zpW@kIcW3^ihM6`GrXzH5i#+l=Q)2WPWk-CLBiQ zmn3h(VPyWzWN$c(%r8y$hQrAGTgi@b7@1#|>=TEP`L~n3IZrabBF#v4efh}TjLb$2 zM&@SZd){#6$o#6Lw>MlpGQTG2qXr}MYm@IePcpwg>Fo{Ijm&RIdaJ?6{KjNIYA`at zDcKJWBlDTbesCC>-<<3RH*;kEon${ajLdII_M-+P^IMbI;4m^bBeTI_WNtdvl&-{=;N%c75N-{QhJ%YA`Z4BePM1k+~V^?F|o%%pXkpc*8>@ z^M{k~`Pn4%N0aY)!y_Z}$CBP^FfxBU>8%DM^Cy!1;4m_OGT9FfBlD+{{opV%|536Z z97g7|lKtQ?GJiVR4{p}T{Kv^`a2T1Jk=dxh$lQ$d@wT6g%zv8n@wT6h%zvI{B{dkC z|03z51|#!dCVgfljLd(Pya|Vq`LB~V;V?4)O|oMgM&`dw_KCyD{CCOToF|$8A=#T< z|9)it$7FA6Ff#vBG8;7*nVXT>;4m^bBYnK#&m;4{B;WJ1N#=h`zUK{p9hv_<`JNh# z%>R+}R)dlGKa<`#jLiR)><5RD`M;C>;4m`(PqH5zM&|!b_JhO7{Qr{u;4m`(U$P$@ zM&`54{@iSE7<1xgWS2OM%%92h@wVAJ%lvssA8(suWd8i54-O;q7bJbuU}QdL(g%l; z`3sXb;V?3PQSv4nM&|w<+&*y_nZG32oAV^|xs$!wwSPO8`8>(q)L>*jZ?ZQWM&>U~ zW`o1X+>FcyhmpA%`JOk-H!`0;`JOlU_j{Qyn0!wSM&>V1zK6ree4(T_4kPndB)xGM znZGjG4-O;qg_Hf@Ffv~x*$)mQ^F@>W;4m^@EZGkZBlA}!`@vyk{_13xIE>8wZy08V z!^qt1e9s#eADK@{zUK`~jLct?d`}HV=1V5uQ-hKDQb}(dM&?T=y>S?szc$&A^Ca`v zCHt|{Wk%-9Ci_u?k@<4Te$-%OzI?JD97g7^Pxgbu$b5xlHaLvT&B$zU7@3=qKHj$C z$ovgSA8&i($b6-wj~a~3S5Eqs04HZtEl>7xcC^DUA- zYA`Z?SJDTEk@>rmH{mcce^2rz97g6_CVRtSWWH6hHylRhTPJ(NVPyW^WXCv+%(qGQ ziNnbJeaUQ`Cz+d(+1T~ABXcwIJ#W}Fqqp z{QXI9Z`gTczDu$nH5i$HAlZ)^jLdgU_JhO7{DaAUa2T0?DA^AVBl8a@`@vykzFRUI z97g75WHvaA%*{w2Z`*xjzDLr>+deWf-!ti>1|##ml0IrMGT%GtgTu)Dqsg0a7@2=8 zc@qvJ^L>)N;V?4)c(OMfM&|n_JH}yTzF)FW97g8*Cwp_AWd4a{HgFcyhmpA%>Emsm8JQoG z^zpW1N9M;RebiuN{@J9D8jQ?8m-NA5Wd8Z&O*o9qk5Ar&!^r%EWN$c(%)gNA7>AMh ziOD{37@41x?9F+S`6+8MrNZ1BXcv-+Z#?BnV+8Y@rEys%)gX; z&(9{ApP78m8_pP+pOy4hgOT~!NpCe6nV*yF2ZxdQjATDJjLgqX_JhO7{Jdm8IE>8C zPxgbu$o$L6esCC>e4kL3jG8-I5=4Rx3-tg6t`31@Myy0sj^RFl0Q-hKDH6MPIigI$o!IIZ#az1znSdEd6N0JlKt4}r6cpplKrT`$o$*M ze$-%Oet9w*97g75WHvaA%+1L6yy2>m`PIqyyy1$G`8CP+)L>+OZSp-e7@1#}^u}Ri zetps#hmrXW$$oGcnctY~2ZxdQP04<67@5yZ_JhO7{N`joIE>7{lk5kFk@+pjE^!!{ zUzyAdhmpD2>Ems;j?8aM`gq&zBlGVjebiuN{=KA+8jQ@ppY*|DWd4KXO*o9q??~Q+ z!^r&3WN*%s%-(aMDK&M&^$seQ+3=KbpJ=hmrYX$(wK(nLnQF4Tq8W z6Up9i7@0qr>a2T2YDA^khBlB6wj&T^7Kb_1BhmpD2`JOktpnr3c`SX+S zd4oT)KQBtYhr`JHCCT@27@5zV^u}RiK5x<+hmrZqlKnVOGG8d!kDbmxGG92^j~a~3 z7fJS`1|##ulKtQ?GJkcl9~?&J*|W33Va$n}k=fw-zh^V|$Ga9t3#OMR|E(__XZOn| z_wJS*XZI^5_wH66XZIT<_wLpoXZM>X_wF_uXZO1%_wIHXXZL$1_wEiHXZMFE_wJ@A zXZNQi_tVoU$=Utc$-TQX$Jzbm$-TSF#@YRK$-TR4#@YRS$-TRK#@YQN$-TP=$Jzbw zlY4jmz1i8lf0K3Z?wN6RKUWKJ@9xDT^Oq$*!z{o@UM9!;`O?W5v*NgSw?=Yyzuvfa zw{CKFzwNkpw@q?(zw@|vw^MR-m~dBpQG&e zgugd)j?7<}{GRX!Bl8z0zbDjSWIk8&djf}%`8-K)97g8;j`{t8!^nKT7f zOXlZ1$^7-n{On-)k@*VA{M2A%zG5;PH5i#sNoIq?$lQ$d@rE~y%-@)N&(9{AzbW~i zH>@-=UnTjT8jQ@}oTel-7@4n{^u}Ri{+47vQxZnzt0nuvVPw8~vL75q=5I~*gTu&t zjbuMKjLg?e_JhO7e63_QIE>8A$S!dhnXjDm@wT-`=5I^-c-z#G`8r7-H5i$%oAgnG zk@?$`J~)ib*Gt}n!^r#{$(wK(nXjMh6Ni!cJCnURPcq*y*_&N&Ff!jL*_#@S%r{Q< zrUoPPO_JH*FfunIv%z6xJ~jECH*7vK-y->*H*7jGe^>H7H5i${JNcd(jLhGY^u}Ri zzGa%4a2T0ymFx$Hk@?oiex@dj%-@^VO*o9qw@LPc!^r%7$$oGcnQxoy2ZxdQcF8Vr z7@2RD%nXN-x!LLCZQGB`cS!np+m0jiosvFkFfyN(^ihM6`OZln+_aJT`;#}}Ff!jI zd6OE9%s-Iq&3Tgf2a~%m#;% zxf$u>ZF`K&Ka%wEwmnDYdnJ9;U}U~`(nk$O<{wS^;4m`(Sn?(uM&|n@Z^B_@{_$jQ zIE>8qP46s zPSX<(BlA;|z2Pu2KQ)<+^CWXKG8;QRZDejnzUK|6kIcWAe9s%cG%`OU>8%DM^D~n^ zYA`ZCE9vb#$^4w8w>O+UGM|y`M-4{i=O+76Gh<|aUa}t?M&{=y`%#0D`InRZ;4m`( zO0pjuM&@5lW`o1X+>FcyhmpA%=`$l;Ff#vI(#PArJ~IDC(nk$O<`*V?)L>+OQPKy8 zk@>~Rn{XJJUy{5DhmrX=lfB_EGQTw08xAA$ZzVg%VPt+;vQHdF=HE{C<~+&#iZmnH z_2naTGcp@B7@3=q?|H+OBlD}0-rjKa$o!h5j~a~3uT8$^Jjwj}q_;O*H!{B=>8%DM z^Ba@>sKLnmrer@jjLc^y`@vykesi)P+{}^rcar_!FfzX-*^e5G%x_I*gTu(&jLZgy zk+~VoOx||e$o%%CkGFkyWd6OR&&-68`S+7PYA`bYLDC0@k@+3Tn{XJJ-AMhJ;^?C7@6Oj?9F+S`45x5+4X%R^ZS$8sKLnGjLb$2M&@Ruw>La6 zGJi1X;|&ju%pXp^=Vz15A5FgJ4Ude>A4__x!N~maq_-N3%%4d1gTu)D$z(q`jLe@( z_JhO7{71=ta2T1-O7?@p$o%PKKe$;V^B*U(!C_=>MrNZ1BXcv-$J>4~GXH7P$J>53 zGXHs+mDFHl{)?oK8jQ?;ne>^JFf#vD@+KTc=D$wfgu}@EH_4817@7Yz*(VMo^WP&`JOlY zb!7hc6+k@Uu4Wd6!zKRArc7f$wr!^nJ*WIs5J%ok1egTu&tv1C6ujLct^><5RD`Kyy% z;xIDzzhRge4kL53^F41^d}KZ)`JOi{F*1Km@;x;enJ<}qPYp)qOC`N=7@04f^u}Ri z{@P?e&Xdevm+Z$*ml>Hao9ssoM&`>U`%#0D`SQtra2T1tKG_crBl8uK+2AlTHzTvb zVPtMb`gq%lBl9;TeZ1|BBlDG#K58&BUpeWc1|#z~C4F!hnXi((35SvSo0B);Ffv~? z*&7Zc^S2~>!(n8;TCz7BM&_$0d&6O5{?=s2IE>8KNcM@t$b8LYHqMjG&B*t>VXcw* z+R694;cX-Hsmb@$U}U~d(pwEi=IbVXa2T1tJ?ZT{$^0G3e(ZF;k@@<`e$-%O{?24S zYA`b2AlVNNBl8WD{opV%-zeD+4kPo8liA=fGB+c$!C_=>M*4W$CL{ArlRnmbm%(qDTsKLnmT}dAtM&|EM-h{)*{5{E=a2T0ynd}XRk@;51-f$S1Z=LK7hmrYv zlO5wQGT$cICk`X?_a(D&o@8!DW@Fdej?B%-_q<`dk@@z?_q<_;k@=2EZ#5X1@09dW zgOT~Pq_^`V^Y-(fn+~wFf!jY*$)mQ^A9Hb!C_?np=3WejLbir z><5RD`EJQ==iU`F_bhaTuBJpX|+flKCf++1T{~ zBXct{8#Nf2o00E%!+|67gOc9faPY|dkfe_qjLbioe9w83`C&k@?}tesCC>e>&L@4kPm;lKtQ?GCwle4-O;qqmupLFfus0KW@LU$(#PA59ho1O^ihM6`Dc?pYA`bYT+#=Jk@@G7H{mccKR$UA4kPmulD*+D zGXFxdV;n~2Cno#EVPt+%vNz{R=BFfkv+I*b=BFmJQG=1W8JUe5jLgkQZ*MqlWPW8A$ZT*JnVXUCdBayn<`*R2^M%?myXOY zOZKA%BlB-3`%#0D`Q^!Ma2T1Jk=fudGB+dN^M(i?}7`SnR}97g6hB>TZ(WPW3^9~?&JHzoVQVPrlt*$)mQ^P7|X;4m`(PO={y zM&`F9yToB+eq}N<97g75r;oSYIx@d4>Ems;kIcWD^ihM6`S+4OYA`bYe$oerk@*jj zH{mcczax1Q4kPnBlf5}lGQT_7n_b^EGQTI;n;MMF?@jim1|#$PlD*+DGXG&R8yrUF zW@I)vjLgkQA8)&VWd17p zg8t1(=Fd;Q=MDbI{=6vp9u6b(mn7fAVPrmc(i?}7`MgPQ97g6ZOZMYD$$X(?KXy9* z$b8{sKWZ>CUnJR&8jQ>rOZJ1q$o$pGesCC>XV18b{Q=|N-G0g0{h{OD-66@@{mJ9r-HFNB z{Tbul-Ra5M{iWmH-6hG{{T1Wh-IdANz2Bkc;Lh(4XZH_|dw2dGJG-Ah;oZ%f`%|3l zdC#Wje2%i;6aL=JIWm7?@_WJ`jLcu0{GL#Qk@;N7?+F}6=JO=IaTuBVJLdNX4kPpV zlHU`~lgwX{{Jni;T6kpcztQgrH5i#Mn*5%?sFC@rlHU_JjLa8LW`o1X+^oz7hmpA% z`59))$b5<9XPDQF%$H2&rv@YQrIPun!N`2+WPUh|%wL<#4~LQYGRgdK7@5B=nKce0 z^JSB{;xIB_E}5V6B=grN^Rt8HN9HRe^HYP7`HIPG)L>*jC7BHlBXcv-#~a=-GJj+8 zJwKad{-)%6-muche3j&TYA`Z?bDEOWU}U~((i?}7`CF3xOi37-ua@iwhmrZ}$$oGc znZGsJ4-O;qHIn_{Ffv~=*$)mQ^R<%M;4m^bBfG?5WWI9J$J^E(nZGUR<84z%=IbPV z)L>-3Zqi2$M&@r%`rt4!UoUwR4kPn-ByYlDWWIi~PaH<(?@adQJjr~+WN&u8!N`20 zWN&IPGT%7an;MMFH%VrL!^qr>%m#;%`PAfl-mv+|e2e6J-mvM&{9VcS)L>-(?&N!F zFfxBn(i?}7`Ic#F!eL~-Rk9x(M&?^5`zw1mUReE(!`IE>5>NcJ`@VPyV^WXCv+%nwXvhQr9* z?0nA~4jP#soP5t44jGw$GWnhwjLZ*BzNZEw^TU$fIE>7vC%thPnSUzTkMkt+Pbd4a z)5AyRM$$r#eWPVh#9~?&JM<@HiVPyW9WHvaA%+1Jba2T1Jk?(oKF(dP1 zlka)MaU=83Cf`$ok@@G6@2SDa{PRg~97g8HC%thPnV*pC2ZxdQ7n1$pFfu_-ho z=3h?sgTu)DE6ILv7@2=HnGFsjb2Bm<97g75q|c0W!N~k;Ngr?f`pEnnNgp*BnO~Un zQG=2BMM)nVM&=hMZ^B_@eo68s97g8fO!kJu$o$e|Z#az1zm@D5hmrYZ$v$xynSVRk zoAV^|E7FW)*O!mX&B$!jU}SDazUK{Bj?Ax0dV9mwBlByLK58&Bzc%@v^Ca`@liuEN z-N^igq_-N3%x_HgqXr}Mo09$DFfyN+><5RD`OV3Ga5G2d-%0j^!^r%WWIt*!GQTyM z4Gtr7Gcp?-M&@QTGkM!>BlFvnKHm1-k@@$MJ~Iik2gFtGJiPvo}W!Je>C}?H#{;je=O;(1|##wliq4DGJhi34-O;q zCzJi)FfxBC*$)mQ^B*Pq!C_=RE7=bYBlD+|{orPe%zvEB28WTk8JUe5jLgkQA8-4~ z$o!{CA8-5F$o%JNR#JnJ`7e?_YA`bYWzuI>!pQtr$(wK(ng2R@6AmNu-y}Q6VPyW> zWS=;U%zu~c&3TgfACkS<_3uaKe@ynK1|#!7C9_e3k+~U}4Gtr7Gt$Q!{yZ}OOY%KG zn`HjCOUh4-O;q|0VmuVPrnr?9a^xhcPE^Ms|tA$o!d1A8(tzv&^5D^zpViM&{2? z`rt4!e?ihm4Myg3CVg-inZGc36AmNu7bS1PVPx*#!R-@=k@-uKy*W=ZpF7!`UHi9l zna`8#O$|oo^Co-4VPyW&WHvaA%+1Jba2T1Jk?(oKd?WMulka(hf4`Ucg30&PU}XOC z}<1jLRMbaCGk@+i={opV%UpUzh4kPnLlKtQ?GG8>=4-O;q#ghHtFfxBt zvL75q=C4k6iNna;|At{^IE>8A&iA}w@satIH?I8QQvU9ulLU1nsyY_cCU7@04Z>_-ho=F2Dh!C_?n`eZ*ijLcU^ zW`o1X+>FcyhmpA%>EmrHj?CYX^zpVgj?7m|`l!LkeC4E%8jQ@}l=Q)2WWGxBCLBiQ zZ%*EX!^nKqWN$c(%-@pi4Tq8WYRTSk7@4o0>6UPG*C{$lQ#~28WTk8R_F~n~cmi zP5OA-W+U^>lRj!NGT$QUqXr}McO`vr7@5C2c@qvJ^Y&v zz13i3zEjdi4MyhElHSgf%-^5%_J*BD=DQ^OQG=2B2a^4$!N`2qWIs5J%s-gy2ZxdQ zhm!r^Ff#vevL75q=DQ`c!C_=>MrMP<$lQ$d@wVMZ=6fW4yzL_+^F5P3YA`b2E9s*K zBlEqJJ~)ibKbpJ=hmrZmk~iTnGT$fJ8xAA$k0*P>VPw8tOW@Fa}jLgl*Y}8<6ZbrW64F`_Q4@!D_!@(o-Ly|sfFf#vS@;&EC=7%M{z2VT2 z`Shf>8jQ?8mF!0iM&^en`@vyk{^?{tIE>7XNcMxn$o$A;KRArck4pA~!^r&TWHvaA z%+1Jba2T1Jkv`t`nUVQ1Ngr=Jc4U5B(nk$O=ATXasKLnmb4ec@M&_SS-h{)*{P^Te zIE>6sNcM)q$ovb*j&T^7pP1|uhmrY7$=;kNnV*vE&8|-#nV*`>Mh!;hW@I*MFfunI zy}jYIk@@LKA8+{L$oxym_xx;<`I*W0yy1+I`B_PCH5i$no%B|Nk@-2vesCC>&q(%z z!^r&HWIs5J%+E{qgTu)D{A52kjLg5B><5RD`B#$J;4m^bBeTI_WNt>j=M7&SnO~56 z&l|orGXHw=JvA7ae@OnT!mGQTM4jl;_-ho=9ee4!C_=>MrMP<$lQ#4&l|29nO~iJ&l|27nO~E9 zPYp)q*CyXngOT}lNpBoR=GP~^aTuB3kn9JCk@=0uesCC>-<0eJhmrZrWIs5J%x_Ni zgTu)DJIQ`<7@6Oa>=K8O`IX7ca2T1Joj%@n>&X1Jq>s1VJ~IDq(nk$O=HE;DsKLnm z`$-=hM&>_A-h{)*{Ep;JIE>8iO!nqH$^7nQZ+3mx$o!sUZ)z|yzc<;N8jQ^EOZJAt z$oz-NY;YKvn~~YzFfunIeZ1}dk@*8jA8&hbWd2anM-4{i4<~)pU}XMC(g%l;`J>63 za2T0Cmb?jvk@@4v-f$S1KauPWhmrY{$=+}nnLm~64Tq8WkCMINFfyN&>==iU`P0eF za2T1Jo$qady9aa_?^0ady8_a_?^Cady8!a_?^aady9Ha_?@lady9Ja_?@J zady9Fa_{cIadv-ra_??>a&~`Oaz8ztlAPV2o!q-SbDZ5@p4_{;Y@FR+m)yI%W}MyM zm)yI%XPn(XlH9v{aGc%$KDl@2-8aOMXu{PcnZ+^7r-3X!3gkqekYhN`6n^Ffv~}nGFsj zbF(rV97g75wIjLgkQ zA8&ZW$o!4T_xx;<`J0mOdBaL0^Hq}Xslmwn&1p(fgOT~FNpBoR=5I;%GbLeUzFM*$ z97g7=C;P!+Wd7D4U?_e7)pNIE>8Sk-Q0qk@@<`K5-bCzcbmJ^Ca^P zlfBvX1|##0lD(^*F7@2RK>}P7i$o#!&-Gsx)e4AuHIE>8S zm+S|Jk@>dCesCC>ZPzdv~s4kPnjk~gWr$ovDz-kc|ye=ymbUGF+F|4_0wH5i$HIN6&TjLdgS z_J+gAeD`EFIE>8A$ZT*JnVXS5-nPfc{3A&pZ`*TZzE{#m4MygBCw(;V?2kAlcirgpv6tk{#nP zGCwex84e?Jv-3S~IA~;kaPmEGIAmo0$>e)#FfuAD!$6hmrYblG)%eGB+c$!C_=> zM!x3_$BfL6O}^(1$BoQCn|x0VM&_SOzNZEw^Uo)}aTu8&pY+CIWPU=j9~?&JUr6?Y z!^r%^WIs5J%uh=8gTu)Dm&1T zBz@FiWPV}NM-4{i7bSgg7@1$3ya|Vq`6bDla2T0?GuaysBlAm>z2Pu2|5mbN97g7s zCHur-Wd7}BZ_bmFo_ykIb)0`l!Lk{MzJu z&XdfqPkMX9btCf|lHO`CGQTm|j~a~3Z%X!q!^nJQvL75q<~Jw%!Oa|*e<#@w4kPnh zlKrT`$o$r1HaLvT&B$zU7@3>V%;asijm&RP`gq%SN9Ny4`pirinSVd&qXr}MA0&Nn z7@6OZya|Vq`JKs|a2T22mFx|Nk@?-pj&T^7-;?YUhmrZc$=;kNng1}^n_b^GGQU5W zjT(&1&B$!jU}SDadV9kIBl8E7KHl)q$o%2tdww>_{L$ol-tfrC{IR6B8jQ>zPkO7t z$oz?9KRArcpG@|H!^r%pWIs5J%zu>Z2ZxdQtYkkpjLe@-_Jf->GXHTh8yrUFW@I*M zFfunIeZ1`_BlDjoeZ1{wBlDl9SxF5>=D$e#sKLnmmr0*l2_y4gC2zuEWd7^qO*o9q zf0OJOhmrYjlYQbaGXGt&H|I&_e@OOb*S{Z`|1sH{8jQ^Ul*~pAM&@Q@HaLvT%}5__ z`18p8FUj}(Y?ArklJ9xLUq|MDPrj!HBlCYGz13i3{?DX04kPn_CHui)Wd84DKRArc z|C8(ohmrYzll|Z@GXKA1KRArc|Cj6shmrYgvp+W*9LAiu8QCQcBlBl6eY|b<&N6>q z(#PB87@0pm>4U?_`~^uLH5i%Cne@S7Wd6eBO*o9qUzEHFhmpB|2e(fgM&>U`_U1gv zeC}j#cJ1HJWj;@`H#HcU&ztNGhmrY9liA=fGB+c$!C_=>M!x3_^Nq~sPrm03{{3F& z3nt%FgOT~mlked$GG8d^jl;5}N%n)o$b8XcKRArc z7fbeo!^r$q$$oGcnZG*OB@QEV{~Lyx;V?2cJKyt$#Yg5-lJ9xL5+n21B;Qkmk@=Fz z_taoyzEsj1hmrZxNpBoR=C4im<2=dyb;*A0beWO)vdMnbU}U~rvL7`VnJ=I02ZxdQ z>y!Q9Ffv~unGFsjb2Bm<97g75q>s0)I5K}j(#PB0I5J-;>7xcC^Oci6YA`Z?Q_=^A zk@+ggn{XJJzd3mm4kPnblfB_EGJi|5HylRht0jBGVPw8~vNs$?=5I}QjKj!$jbxuV zjLg?eX5&1`+>CtB8`c_`ubq6)8{RfDpPGD64MyhcB)!#OWWH|F2ZxdQ+mqhTlg!_d z?8i>m8=0@4>_-ho=I>1QqXr}M4U+xfFf!jT*$)mQ^No`I;4m`ZIGGI&BXct{8yrUF zW~7g|Z89?7H0k4Qn~lsjPx`3A$b5^Wj~a~3-<9;iVPyX9Lv!^r%@$$oGcneUd&28WTk8JP_ZBXcv-$J=%vneUPG@wShQ%=b+C zsKLm5ucVI}jLi2=`rt4!|7h|i97g6JOWuUT$b6qk2)Cz*dDnT=f^FfunIvr&VQxf%JMHyk)JKPc(#4F`|R4@vr{!N~lR$@iQm znID$)_J%`8=F^kjYA`bYRI(p67?~fQ><5RD`KOcp;4m^jBH0fPBl9DZ{opV%KPuS| z4kPoUliA=fGB+c$!C_=>M*4W$XGZ47Bz?T?*pc~hNgp*BnSVCvqXr}M&n10u7@2=Q zc@qvJ^W&2@;V?2kA=w)aBl9mLJH}yTeqypu97g6RC3|z8WPVDrH@iN0WPWNg8#Nf2 zn~~Y5!N}Z<^!A3+M&_p{eZ1j|Bl9mM-}AFc=4U3~^M*4<=4U0n)nH_PcG6o7M&{=v z`@vykJ|o!=4kPn(ll|Z@GCwcb4-O;q^OODHFf#vgvL75q=3hx>gTu(&jLZgyk+~W9 zo;Q4TWPU;NJ#YBh$o%Wc_taoy{*B~&YA`atFzJoM$o!(DHx487i<4dAFfzX+*&7Zc z^KT~mah_!Utz zJ#V;TWPVNZJvA7aUz>bS4MyhICB1PNnO~pu#$jZBL$V(nM&>sr`@vykep9j^97g6d zll|Z@GQT<54-O;q?&!(n7@cKUeRtt0c>l0M#c`^fyeNgp*B znSU?oqXr}M?^zpX)N9GSCeZ1|#k@-VOA2k@6Kb-VYgOT|o zNgo_W=8qkIWZN_M-+P^F@;VsKLm5v1C6ujLcu1><5RDdG_pVa2Rvq zW@I+F{_ok${qe2^(t_#b$$#rh$Jzbz$-TQ}$JzZ#$-TRk$JzY`$-TSv$Jza+$-TSH z#@YR@$-TQ>#@YRz$-TP+$Jzbi$-TSj$=UsB$^Gl=ooFnrWCch{A!N~l@$?pj@7@5zN{GPyJ zWIj*Q8;6m(zhi!X;4m_uFZn&;JjwhO$=};oriDl5{u}+CP=k^AqRHUn-fO8jQ@BPUeTh$o#d* z{BRhVFO$pFfunIeZ1ifBl9;V-}AFc=5I>A=M5{3%vVXirv@YQH>W8{4MygxCcSYOnZG63 z&y<9b`D)32a2T1dp6myQk@;Jb{opV%UnAKM4kPn5ll|Z@GG8m14Gtr7GqOt@M&>Ig zeY|b$k@?$_KHfHUWWG+)M-4{i>n45FU}XOGqz?`w^YxN9;V?3PNAe~dM&|1$`@~^n z{?24?&XdeHO!j8i8;s01O7^A(BlC@uy{W;-e3N80IE>8A$ZT*JnNLl==M9^W%(qCs z=M9^V%-@xKPYp)q?@qp_1|#$LB)xGMnQxh79N#3LeBl8a=dvl&-{=sB#cD?J!{6op!)L>-( z;bd=WFf!jQ*&7Zc^WBr#;4m^bBeTI_WNt?Kc-tN$^N%Ebylu~s`CdsMH5i%io%B(I zk@-iHJ~)ibKbE`+hmrX{$(wK(nSVUl8xAA$eUrW6Ff!jSO-ne8%=b_BhQrAGfMjpe z5=Q2qNOp|F$o#-$W;l$@&Cd6{;h>TE!O8c$;gFH}CzJ1~!N~m3#$jZBe9{|-k@*S9 zesCC>e<9fq4kPmull|Z@GCwKV4-O;qlhgEs!^r%UWN$c(%uh{b<2=dSjLgPPPaBz= zk?(oK=_B(mCg1ahFOAI4NP4Tm$o$Ntj~a~3&q{hbPclCz>Fo_?kIZKz`%#0D`MJq{ z)XW%}pO@?hhmraD$$r#eWd7x3KRArczmn_+hmrYLliA=fGB+c$!C_=>M*7T17mUom zmh|zquaC^Xk@Qi6k@fiy*W=Zzaq^@c76HC+>Fdd4Myf>7xcC^J|muIZrabKI!cZ*Nx0?NP4Tm$o$4+KWZ>CzbV-d4kPoK$$oGcnctl32RCzM z{+(n$IE>71N%o@#BlBC6+2AlTHzTvbVPtMbGn2R7HZs3G>EmtR9hrYG=`%B7Wd8l6 zj~a~3e~|RSVPt+s@+KTc=65DFo^HaH{mcc|4p)E97g89P4Nl*YA`bYQ!*Ph7@3=q z+2AlTHzR$#;m;%Uza-!Dvq|QEOTOm~e;t|sJ^7v*jLiR$^j3qB`9G81IE>8ymFx$H zk@>%q{opV%|4*_X97g8UV`TpPqz?`w^A{w2)L>*jXVM3Uk@*XgH{mcce^K%#97g8;9o#-~ z7@5B$*_-nu^SP6~*|mQ=m-#%&-qc`ZK5w!&97g6ZO=g3`$lQ#~28WTk8Tpi3BNgr=}mbm%vVnO zsKLnmO-UadM&_#|Z^B_@{^sOOIE>6!P4nw9~?&J zZ%=wVPcnZ;vL8ELZ)CoHvL7`VnZGmHj~a~3H%Rt_!^nKYWIs5J%r{E*gTu&t<775C zjLgl*Y;YKvn~^@=w#mqR)1;5LZ8kFBJn5qbBl9hiK58&Be^=56hmrZalQ-coGJj9< zCLBiQTPAzMVPw8lvNs$?=36Iw!(n9p-eku(jLf%5_KCyD{C&x6oF|!^k=fYwwj*;h z@;z_ZZe+fF@;z_ZVPw8z(pwEi<~t>Q)L>*jE$Qt%$^89EZ*SOnWWGzXA2k@6e<0b9 z8jQ?$P4e<;}x4kPmqC;P!+WWHN68yrUFW@I)vjLgkQA8*@zWWGnz z$J;(KGT$@lqXr}My^=m^Ff!je>4U?_{G-X6a2T0?EO`?SBlCTdz2Pu2|9G-D97g8* zCOgJqWWHarPaH<(`zL#Io@D-sWHxqvz{uQ;%tj4H=4Rx3-f-Z^{Gg<_Hyk`NKP2g+ z1|#!NCf{?OWPVuE+ZzrYnNLr8tHH?pQ^|hRU}S!HvL75q=ATaXgTu)Dh-5!FjLeTr z_JhO7{HSC7XPG*C{$lQ#~28WTk8R_F~pBb4Sll1YnV@Kx4C4JOjWd7Ntj~a~3 zKbQ2uVPyXK==iU`H9IsaTuAOl<5RD`HW;gIE>8CP47^s{%aZ-5!N~mE$$r#eWPW)v8yrUFW@I)vjLgl* z_q^e%k@?lh_q^eXk@+>r_taoyer@tSH5i#+m-NPAWPW|p8;6nk4at6R7@6Og><5RD z`Ax}wa2T1-O!kAr$o%GHKRArczmx0-hmrX$$u4minO~XA42O}q+3DkLw~owjOZs@* z?IZK=CVkXkWd6ORj~a~3zn}EMVPyV;7< zll`c{$ov(_e$-%OzId`997g7^O!kAr$UJ*?HaLtqaWgU-T>pDEbAP<+CF!MU;pD&d zh2z`#a>==~WyiPkm6CI3E01sI8ztw?HXPs1H&4!;Z85%`@1C4H+iiS1-zPbDcIfza zer$5?YdO9=tc79QE?(Bl`?fmBC+}Vxe+xcC|xwAXQxAVu7b7zl^Z|6@Y z=gyuO-_D;-&Yk)9X5Y^Jo2+wZ&x~*9^S2P^&gLDNzbN?`<|TaOWpccqFO_^_RvhQf z)=0jcZ!pfCt(SZ|-(j3P+b;QbzUw%5woCHu{NQo!?7-yP`BCHC*%8UN^E1Y|v(u7q z=jV@eXXhl}&Tkm!&aO+oo!>Ifo!y#zJNG-(9Gv<6;oJEW|L%>60O zHpjE+IiIua_k_PU&mWo3o&28g2P5-&liw3+FfyM%`8|Qd$b5mMHx46nf5-g(z+q(m z;^g;)?@8t_Oa9)zJS{ph_uuIEgc^*@7fXImVARNbiRAYL4kPndC9}a{WNubwgTu(& zjQk8UWn}*9OjPv&O_%ZneeVPyWs z8KO!kAr$b7A2HaLvT&B!is7@4n}^zpW}N9OA!eY|bz$b8+T zj~a~3*Gu}S!N`35qz?`w^9_Vz9*S)ob1i6HyW95 zlI%?lM&_F)dsBmv`DV#%a2T1Jk=fudGM}2<=M7tq%(qJJ^M=hw=36KCslmwn9m#!a zFfxB<(i?}7`Mc88gu}>un`A#YjLf%9_A@nMWd827UczByzFo2(97g8bC;P!+WWGbP z9~?&JJ0`otVPw8VGBX@T=4Pjlx9v1Ce^1iK+jbtA?~?RUgOT~Pq>mbm%y&)t;HHht z-htg7@2=K zc@qvJ^8=E-;V?4)NU}E^M&<{mX$gms`9aCva2S~%oa}8{!pQuPWXCv+%nwawhQr9* z?A+%KhmFh+Pww-EBSz*&Cikhq$o#0}J~bGbAD#5ZVPrl%>5aq4{Fr1vz9*R6Z`%#0D`H9JXa2T1NlF^kIX-j+@}U3^G_!CslmwnQ%P?eM&_p^y>S?se>&L@4kPnZll|Z@GCwWZ4-O;q z)06$+FfuPb_V`P45vL75q=9eY=QG=2B z<;i|<7@1#@><5RD`IX6Ra2T1Jk=fudGB+cAW~9%I%s-p-@wTf*=2s_u)L>-(xulO8 zjLfe|`rt4!zczUj4kPpHk~iTnGQU3A8xAA$853JTf;Uvr&VQxf!|78*Uw$-=3hv9d&6BL z^ShJYYA`atC)tl0jLh#%_JhO7d}gvA97g8%CHuk69GQPH*$)mQ^Dia)QG=2Bmy_Ax zFfunIv%z6xZbmbcw|!+~{?(+9w|#A7et*(uX2Qt)fuxTbjLg5D^ub|d{$TPZ97g63 zC2zuEWd3lnHylRhk0d+BVPyVjvQHdF=8q+N^F7J@8_C}6`tgzZH6^CHui)Wd2mLAKa{w`A?GB;4m^bBePM1k+~V^<8413 zng1;5<8415ng1fqN@_4N|7Frg4Myg_O8U%77@7Y%c@qvJ^WP+I!eM0o+hoT$jLd(R z>=TEP`R|jx`JQC{hh%Sd{q)HEkICNDU}XNMWHxFrGB+c$!C_=>M*4WepGW3@N$&Hr zN#=h`?(>Gfj?Dj_+@}U3^M540)nH`)&!jgFBlCYH`@vyk{_kWzIE>8ylk5kFk@8ym+S|Jk@;-1KQ|j3#+rO!kJu$oz%LY;YKvn~~YzFfunI_j$vMN9GG9_j!YVznA$-ll#5}P4FP7{FhmrZ>$$oGcnJ;&h7@04h><5RD`3lKw za2T1Jk=fudGB+cAylusi`5Tfx-uA|k`ASJ2H5i$%ob*wHk@=gFJ~)ibS4rN4!^nKq zPE z$bH_h*2sMAy z4Myf~Pxhk*BlC@t{opV%-#FP14kPnTlKtQ?GT$_r4Gtr7Gcp?-M&@RukGE|$GT%Ju z<851v%(qPXsKLm5tE7(_jLf%A`rt4!e@F5r97g8vOx}dU$oyT&-f$S1ZG4k4Lgp^cS`Q_hWCujcTRe% z!N`1mbm%%>&2eNQrfZ_?Wvb{(1Tmh49jM&|EJ_M-+P^WBsE;4m_Of3hDOM&^4Y z`@vykzGt!@97g6JNM?h>$lQ#~28WTk8R_F~dyUNZPWpJ;2S?`nBz@FiWd5O~j~a~3 z_f7iXFf!jSc@qvJ^Zk=I;V?4)aI!ZXM&<`3d&6O5{*h$IIE>5>O!kSx$o!yWZ@wp) zACk<*t`8oWn~~Y5!N}Z<+~*C4j?52BdV9m+Bl9DYK58&BKQg(`_ayV9liuEN)X02# z(pwEi=Eo%aQG=2BvB`dL7?~fJ><5RD`SHnqa2T1Nkn9JCk@<pOnl7hmpA% znGFsjb2HM%+fE*te>CaiZ66z%e>~}<1|#!NBz@FiWd6yd4-O;qPbF`{VPt+v@+KTc z=ATaXhQrAG)MUpvjLc6<_KCyD{PbjRz9*TVne5H3&ls7XmCQyBM&@Q@Hfk_3HzU2h z;p~z5IY}RHICo@zUUHwGO)|eAxz8KUADLg6^j3qB`9(=@H5i#+oa_gOk@<{dKRArc zFG==;!^r&7WIs5J%r8s!gTu)D@?<|ajLfe{W`o1X+>FcyhmpA%xz8J}9GQP6xz8Iu zJ2Jm2xlav7=2s{8slmwnb4hO;M&{Qfy>S?sUz_X_hmrYp$=+}nnO~pm$M+=j&nNq_ z(;G(SHzxa0gOT}7$$r#eWPWop8yrUFW@I)vjLgl*eco`}$o%%?K5w{XWPV3-pBjwJ z?@aDfgOT}NNpBoR=3hv9<1jM6JJ}BoBlCNb{opV%zc<+r4kPoK$$oGcnctV}2ZxdQ z7nA+qFf#vAvP&FB=C>v@!(n7@cKUeRmq+GbN&0x(S4ZYwOZuq6$o&4Kj~a~3A4vM( zFf#vo@+KTc<_{)s!eM0oP_j4QlguAU_GZ@)kIWxU_NE3S^T(3Cslmwn@nml}jLg50 z%m#;%xfz)a4kL3j(#PArIWqrN(#PAL7@2=N>7xcC^Y0{m)L>-(WYPzRk@S?szbM&{?@8v1 zB>S<`g+}I!Ci_u?k@+i<{iwmneDP#IIE>6+nd}FLk$Lv)Y;YKJ;$~zvxc>KS=Kgrs zOVUfz!pVQ@3&*$f<&tw}%Z_j7D<$X7RvzEZH%iW(Z8*N2Z=Rex+hTk>-#s~Zw%ho2 zzE5)Q?9lP;{Mh8&+4SVw`Ps?&^mJzO?fjzT+}Q==+xgAOxw9L`xAVJ_b7yyqZ|9FE z=guA--_D;*&Ye9mzMVgvoICUH&Ay%cH(BS-o*CcH=Wij-oy|Kke^K%?%uD#l%j9@J zUn=>=tT@h{t&w~?-(Z|OTQB)`zQZ_owq5e=eAjXAY?tKQ`N8Ad*@4No^P|SOvm=sk z=Vy#_XQw6K&d(p`&dy1`o!>Cdon4oFJHKU|JG(XccJ6nmIXLtC!?*J%#N=mi)bad0KR2?!VFR2{jm*FP8kCz^IY=63Oog97g7^N@jz@ z$lR>V28WTk8TlDz%EVbH!m~{`zEoz9*S4pUlq=mK&L`kjzgFM&>Ifvr&VQ`IKZfIE>8A zNFQ%_!^r%N$$fq{$^1>pecrIr$b6OLJ~bGbubQSLH5i${Iq8kV$b7YAKT{G$=5I;% zgTu)Dt;v3H7@4o0><5RD`5MW7a2T1dnd}FLk@;H5Y;YKvn~`1OFfv~`>Emr{kIdIe z`gq&ak@>nwA2k@6ub1>ugOU0ANgo_W<{Kn$!eM0ow&YDXjLbJo_KCyD{O!r!d`~jp zIN6(BZ!|LBB-xu9jLbJp_NE3S^Uadk;4m^bBeTI_WIi>y&l|QJnQxWc=M9^W%(qVN zQ-hKDJCgg}P7i$o$=Dy@bQae7j^nIE>7< zPxgbu$b5%nKRArccT9GP!^nJ#WM(*w%*{?8Z`)~P{+^_dx9vPK-zDjz1|#!nNgp*B zneUqP!A%>Pzc+ak4kPp3k~gWr$ozfD-h59oe}A$!yWV|dzDKe*H5i%ine0ssM&=(# z_J+gAe6M6SIE>8A$ZT*JnVXS5-nRG1{DVm!Z`)^N{-LCg8jQ^MP5P+8$b7$~4-O;q z{gXH0Ff#ve@+KTc<_9Eu!(n9pkz{W;jLZ*A(-ICN^MjJT;V?2kIN95@gpv6n$&PUt znID?W42O}q*}2af4jY*tp4{gRM~uvmOzu;Ik@-={eQGc=KRW4+!^nJk(i?}7`7z0U zd`~hzF4>Qr9y>BWKG}~NjLc6+_M-+P^AnT(;4m^jDcKJWBlDA!+2AlTHzTvbVPtMb z?(>F^j?6!n+~*A+ADMq5xlav7=ATUNQ-hKDr;^?{jLc6-dgCxM|8%k+97g7+Ci}r* zWPVz*9~?&JrziWtVPt+rnx1eNnV*^L4Tq8WS;=gCPckFs-x`Nc_ZZ@6e=J|o$W8jQ>@N%o^=#>o8AWIs5J z%r8s!qXr}M%ai@!FfzX)*$)mQ^DC3t;4m^bBeTI_WNt?K%t)UZnSVCv<84=s%&$)R zsKLnmb4edH7@1#_^ub|der@t597g8XC2zuEWPW|JHylRhHza$*VPyXKWXCv+%x_Hg ziNnbJretrvCz;=pW+c15d1P)zW}^lpb2D<5RD`OIWLIE>8iOZJ1CIWqrZvL75q=3h$o zqXr}MFDJ9XVPtMbW`o1X+>B->Z~Mx~{HsYHZ~NNF{QjiR%!HBo14$n>7@2=P>4U?_ z{K4c+IE>66O5TLS$o%1CZ#az1A4ztM!^r&6WS=;U%pXhk=6jO)HC_2VP+Zzi)* zgORxznT;BZ%*{w|Z}`^8{E4KGH+*|!{+;ALKbvI!-Q+%RcyeU^y`;AqjLg5E^j3qB z`45u);4m`(VX_|_M&>_C_JhO7{Kv_Da2T1-O7?@p$o#2fKe$;V^PeQM!C_=>MrNZ1 zBXcv-$J>57GXGi9$J>5BGXF)ImDFHl{>!9~8jQ?;mGqgFFf#vj@+KTc=D$hagu}@E zx5LvP&FB=FepMc-!oK%Y2Tc zkGIV^GM_8ygTu)Dc}X8N7@0pm>4U?_eD35;IE>8aN#2CR$lSk!+b0eq^ZAm!`JQC{ zf@E)Y?cdI2zCf}!H5i#MnCuOQk@*Xg+2AlTHzTvbVPtMb?(>EhkIWZJ?(+u!elPQv zCikhq$b8}CJ{(5oizK~q7@5B;>5aq4{N>4ha2S~{n(POMk@+i<{opV%Uo6=V4kPo$ zll|Z@GG8Lu4-O;qS0=l}VPx+A!!R=(M&@ScK5ux{$b3q2pEtaEWd54uJ~bGbFPYq@ z1|##=CcSYOnJ<;}#$jZ>bh01clgwY2?8i=*8JRDe>_-ho=C4ooqXr}M<&yp2Ffw00 z*$)mQ^A(cW;4m^bBeTI_WNt?Kc-x92^EV`YyzPx6^Ocf5YA`ZiIq9PYBl9;UeQ+3= zuadk8hmrZJ$(wK(nZG&N8xAA$)sns8FfxBjvNs$?=5I~*hQr8w^<>95jLg?a_KCyD ze9dGwz9*TRk^8)1t&#cK$$j3i&d7Xfa-SNE%-2nNtHH>8y`&EgBlGo>-o7W9zb)C1 zoo+BP-!R#a8jQ@}p6o{rM&=tO`@vykzHzc297g7wB>TZ(WWH%K8yrUFW@I)vjLgkQ zA8*@iWWIUQ$J@3TnQxi&QG=2BR!JW<7@2RK^ub|d{*L5LIE>8SnY;;yk@>rlz2Pu2 z-zM1`4kPnzlfB_EGJkinV;n~2+a>$NVPw92G8^BM%+1Jb?0Schxf!|78+II-@08r< z4euG5@0|2jgOT|zNgp*BnNLf4`<`U}-lVrT>^d^vE!mG6jLhGc>_-ho=DR2R!C_?n z{$xKmjLi2)_JhO7e9vS*IE>6ckjw^$k+~U}4Gtr7Gt$S~_8OV*o%Hdx501?DN&2Y4 z$oxY|A2k@6@0;|&VPw8v@+KTc=KCja!eM0o;bd<(jLZ*6_J+gA{3FSZaTu8&nCugW zk@-Q%-h59oKO~urT^~F$HzTuAgORxzxz8I89ho1N^!A3sN9IQ)ebiuNeq?f=?@8uI zC%wJlsFC^fq_-N3%#TU-qXr}MW0U>hFfu=TEP`RU2td`~hzGufM6pD{8&E18WNjLgl* zY}8<6Zbo{0!`UPAbCN#ZaPG+byyQMVn`C}La-TPxKQg~C>8%DM^NW(+YA`atIN1*l zBl8)_esCC>Uy|$xhmrZE$$oGcnO~Od2ZxdQ<;i|<7@1#@%m#;%xfz)a4kL3ja-TO` zIWqrDa-TPRc4U54a-SNE%&$)FQ-hKD=aSwyjLfe|dgCxMzc$$=4kPpHlD*+DGQU3A zkMBw5pHKE11|##ElKrT`$o%GHHaLvT&B$zU7@3=q`@G?{k@@Y(eco`( z$o!7vJ~bGb-lJxPmua3;Wmh@4Bk@@{e zA2k@6KaljnVPyXG`e_u=8q+NQ-hKD zs0Kb7cOlq>r~fF*5&l(nk$O=HE&BsKLnm$)pbs zBlGVjZ^B_@{=MW)IE>7{pX?2Xk@*jjz2Pu2|6#H>97g6pO7@1s$o$92-f$S1&q{WT z!^r%pWM(*w%+1by-tfHs%}M5SCHHxQKe9jbB=_MkGM_KG4~LQY3zFVAjLa8IdgCxM ze^Ig@-;>N2N%mu>3ysVdP4=S(BlA}z`%#0D`Qpiba2T1tGT9FfBlGOp+2And#LdWT zaQ*Mu%>D7Mm!y}bg_Hl*7mjb|%O&T|mL1>DS4z&EtvtS+ZFLbm+xbPwxw8w#xAU8mb7wb>Z|8R< z=g#gJ-_9RT&Ye9vzMVgroI87Bd^>+SId|sYn|(X?Z?evvJu|+Y&)-6vJDYc8{-We( zn3wR8m&x&dzEtv!S#g{@TO;{)zQH(mwqEk>e1~!FY`f&!`L5&K*)GYq^Ml8^vjdZF z=SPimXGbL8&d(U<&Q43dou5C>ot=|>JHKI^JG(CVc7Dq^cXn&??cDEBb8zPOhi~Uk zjB{uH9{YB_P{KP~F!!f8+Z@lP=X}nx-xL1cJbz?9ck+9}AB@cBO@2?P!N`366+mCOc*k-1r!4Gtr7Gx9Ucl#%(Xlb>N;GcsQ?nV%Yr%wL<#PYp)qOC|HeVPw8^ zGCv$f=F24W!(n9px@6WkjLer!=8D6}{PoHFd`~i8KAE2#EH^S=A(@{VjLcU|W}^lp z^C`(}a2T1Jkv`t=hLQOjll%N^lKGpG`@CVLk@+ggeQGc=Uo}lhYA`Z?bJ81!k@;%L zex@Xh%-@pi2ZxdQTa*3ZFfv~~*$)mQ^EHzF;4m^@GuaOgBlESA+2AlTHzT{mVPw8? z(#PA@9+|I`^zpW-BlC5WK58&BUoYvS1|#$JlRh|%%r{8hgu}@EZONN(7@2RF>=TEP z`P-Ad`JQCHak4kN-e_dLNwPOJ7@2RH>`e_u=9?w6!C_=>MrMP<$b4#YpEqndGT$n> z&l@%$nQxukrv@YQcO>_z!N~lbNpBoR=I=^V6AmNuZIb=qFf!jZ+0WF3k@>sRdI^V- z`F6>Ea2T0ypX>*Rk@*hEesCC>@0jcohmrXf$;@yVnVX$H-nP@o{5?q@Z`*lfzDv?a z4MyhEl0IrMGT$}ngPS%oe{b?897g85C2vxLk@@?Qz4@MG{{CcdcD?(^e2-*rYA`b2 zGufLOjLbif>_-ho<|iim!C_>6QnDW$M&>6cv%z6x zZboK+~*A+9hrYDxz8IuJ~IDAa-SNE%s-jjrv@YQPbIx^7@41v^u}Ri{^?{t zIE>6sP4#d`7Y#H5i#+lI%y# zjFI`J$$oGcnO~OdM-4{imnZwdVPt+qvL75q=2s@O!C_=>MrMP<$lQ$dnUOv-GXHGS z$J?$NnO~jsQG=2B=aN2ZFfzX;>4U?_{MzJAIE>7%OWuUT$o%?bZ#az1Z%For!^r&e z$&PUtnctY~6Ni!cP08MTPcpwH%}92A^T^zc%tj4H=4RwRZ@6`2ep}Mp8*U$&-;wlD zgOT~2$$h>jnSUYa?G1O0%%m#;%xf#t&-u9J|`B#%Z-uAVT`Ta?snF%BF2a-N& zFf#vo(g%l;`Gd)ua2T0Cl)MRtk@>^P-f$S1Ka%VihmrZC$v$xynLn27&G#hpZzOxO z>&Hjt-%Mts1|xGbG8;7*nVXT`-teuF`4dSWZ}|4e{5#2gem2ScyUBgt@Z`w+dr5CK z7@2=R>8%DM^B*Mp!C_?n!(=}=jLd(O><5RD`Hz$R;4m_umFx$Hk@-`}esHr!=08bh zgTu(&jLb$2M&@RukGK7FWd5_HkGK7NWd4gZE2+WA{Fg}|H5i%yD(N#TVPyX6&xz8K^Ix_!za-SNE%>R+}R)dlGKa<`#jLiR)><5RD z`M;C>;4m`(PqH5zM&|!b_JhO7{Qr{u;4m`(U$P$@M&`54{@iSE7<1xgWS2OM%%92h z@wVCfmiZh>A8(s;WIk8Y2ZxdQ^O8PlFfxCB(g%l;`P|8ya2T1-le`Isk-2{dw@(~K z=JO?c^F7J@1+~*B19+@wc z+~*Dc{a)rTP3}{Jk@>>OeK?HF7fE{KFfxBx(i?}7`OB02;4m^@G}#XhBlA}z`@vyk zzF4v!97g7gC;P!+WWGeQ9~?&JuS|A{!^qtKhhb(ojLgl>ecte@k@=M5K5uyS$ow_Q zeQGc=UoyE*4Myg#O?u-nGG8j`jl;-%>102?Cz-!4*^iwrGcsQ`*^e5G%wM1EM-4{i z%O(54VPw91vL75q<|`z#!C_=>MrMP<$lQ$d@wOF5=5I*)c-tFC<|`$A)L>-3a?(c) zM&@ry`rt4!UnO}H4kPnblQ-coGJkWjHylRht0jBGVPyW6WN$c(%-@>q4Tq8W>dB6A z7@4n;>=TEP`I^aWd`~hrBlmg3S|jtdll#13oss#}MjLbJm_JhO7eB)$4IE>6UN%n)o$b8deHaLvT z&B$zU7@3=qKHj$3$b9ppkGE|xGT$=kqXr}Mt&%=!Ff!jd>4U?_{2j@ga2T1tGkFsZ zBlCA9d&6O5zD=?>97g8bCVRtSWd81C$2g44w@dbk!^nL5WH!DhnVXT>*!2!0b2D*^e5G z%y&=rgTu)D{mFiC7@6;p><5RD`JTysa2T0?AejvgBXct{8yrUFW~7g|?KLvrJL%(X z9~_zQlk`!8k@<&`K58&B-#6)l!^nKUJKyFPeiZboLK1|xGba-TOGIx;^j>Fo`NkIauq`l!Lk z{K(`!-;>ObPI`O8Q6ux|NpCe6nIDtvM-4{i$0qy1VPt+>vL75q=Eo=d!C_>6Lb4wm zM&>6b`@vykeo`_U97g75WHvaA%*{w2Z##Kp{?Vk5w|#76{_&)b8jQ?8k@Qi6k@+W+ zJ~)ibKb5=*hmrXy$(wK(nSVOj8xAA$QG@0hOgh;{opV%za-fY4kPnRll|Z@GQTX@4-O;q%ai@!FfzX)nGFsjb2Bm< z97g75a%BFQW#97g8X zC40kRWPW|JAK#PAKcDQ!PHz~Q-k@?NZY;YKvn~~YzFfunI_j$u@ zBlFvn`@G?nk@+3TeQGc=zcaZ{4Myg7CB1PNnSUYajl;6^Ci}r*WPV?=9~?&JUrhFc!^r$g$u4minctes42O}q+3DkLUmlr%CF$dBUmcl$ zE$O2MBlG){K58&Be<10D!^r&W$(wK(nLn7k35SvSL&@HJPcnZb*_&NIJTiYY*_#@S z%pXhkrUoPP$CJI`Ff#u}G8-I5=4NCzIE>8ANFQ(e=E(e8Ngr=}Vr2g9q>mbm%)gWL zQG=2BlSv;OM&{p5-h{)*{Cmlpa2T0?KiL}&Bl905d&6O5{=;N%IE>7Hl;4m_OWwIX}M&{YG zv%z7^iJOtx;QHUQnfv2iFG(*=3n%}rFC5>_mrKr_EjzxQuaulSTX}pt-zYhEw&D18 zzIk%)Y>V;jeD~zs*>2<8`98_HvqQ(X^J9~9XVa5!=VvG9)6<#BxATjVb7vQfZ|65B z=gw{%-_Gw!&Yj&czMVgwoI87Td^>+KId}HN_;&tua_-E(H~V((-(;OTduDt)pTC7T zcQ)_H{6)#nFfZXFFO%c_e5vFcv*I{+wnp;pe1mcBY`x^$`3~dU*>=gd^IgZevt5#J z=Le5-X9p(V&W{@B&W=dFou4tzot>6^J3oJ%J3A-&c7DS+cXnO!?fjN;?(Ej&+qvJN z=HSfl58uw880XIXJ@)NS?s`#a|M2M#0i7bm|bd`~ieS@QSxDI@b&CqKiyW@Nr(GCwsKnZGufpBjwJ zmrCY`!^nK;WPUh|%$G^#hr`JHb;+!87@04d%oT@``RkMU`JQCHd@?^fSZ-v#LNY%! z7@4n_%tj4H=2Mc{;4m^bBYnK#4I}e6CinT-B=a{V_j$ugBlA^~`_y1$zG|A1)L>-( z=A<_cBlFdg{Y*(1nZG634-O;qw+X0jg~M&@fJv%z6x zZbo*A!^nK)q>s0)Ju+V>>EmrvN9OA$ebiuNzFyKt4MyhcCw*`jnQxH135SvS+mbio zFf!jT*(VMo^S38^^F7IY<797kz0t^glVopdFf!jX*_#@S%r{GBgTu(&jLZgyk@?i* zK5y7^WWH5$pEqniGT%D6PYp)q??~=bgOT|=lioOt%-@x!CLBiQ+a&wJVPw8-vY)95 zBlCBs^%4#v^X-!T;4m`ZKG_crBl8`S{opV%-!a)G4kPm|l9}N!GB-PYyltnE`FoN+ z-nR3|e3zt;8jQ@RC4JOjWWH79OWvdgBlGtqd-FZX{Qb$^?0WZ+ z`5wvM)L>-3XR0i z{OF`N4kPpFNpBoR=Eo%a@jc1>xMV+edhE#j_+&q7FfuFcyhmpA%xz8IuIx_!Qa-TPRd}RKK5aq4{L{&Pa2T1Nn(POMk@;!KesCC>pPuXohmrXiX?nt8WPWC{HylRhXC<@oJ;~gR z%*Ia79+{hw`@G?tk@>mFeco{1$o%}Iw;GJhFG%{R!N~l=q_^)$<`*Zuz2Tyf`HW;g zYA`atB-xLe86)#cll|Z@GQTX@j~a~3FHiP^!^r%KWIs5J%&$ylgTu(&jLZgyk+~V^ zGb4RwWd7NtkGEYlGQT?MqXr}M&n11-U}Szx(g%l;`L)TLa2T0im%Iswk@@w>-f$S1 z-;nGLhmrZ`lO5wQGQTm|Ck`X?o07fxo@9PYnvv}K=8?G>nT;BZ%+1Js-f-*4{I;aG zH{3olza#0R1|#!3lly#6GXFx-+Z*m0nctoCR)dlGJ;{F5U}S!8vL75q<};K1;4m`3 zFWC=n=E(eu$$oGcnSUwSj~a~3znshlhmpA%nGFsjb2FNmyzMI^^RFg-yzOfv^ZS!N zGZRMU40PznRQN4Myf>WHxFrGB+c=z2RFU^Cyx%-tg^_`FE20{A`l>ca!_P z;mMKt_mbXfFf#vs(pwEi=08aGgTu)Dhsl0$7@7Yl*$)mQ^B*Vs!C_=RE7=bYBlD+{ z{orPe%zu*128WTk8JUe5jLgkQA8-5V$oywXA8-5l$ov;+R#JnJ`7e_`YA`bYRnlix z!pQvB$(wK(ng1qv6AmNu-zGc8VPyWhWS=;U%zvNk&G#hpKO}pz>!(NNe@ynK1|#!7 zC9_e3k+~U}4Gtr7Gt$Q!{yZ}OOLCu|O)~#ma-TQ+b!7hc<5RD`Tr&R!C_?nzhpl+jLc`7{khrTFy_R~ z$S!dhnLm^1<88C|E%P~&KHfIx$b7D(4-O;q=OumAU}XOMqz?`w^SP5Z;V?3vCwUVN zBXj=_Zl5@e%;!t?=6jO)3zEIrwSPO8`2xw_)L>-3V6rzHM&>U}W`o1X+>FcyhmpA% zxz8J3JThM>xz8K?`@PIxn%t)bBlCrm`*0YUFOu}eVPyWYq&E&D^Oq<4!C_>+XtEz1 zM&_?b_JhO7e6eIdIE>5}Pxgbu$b5-pKRArcUzzL@hmpDe55vrG7@3=$`@G>*Bl9WA zectfuk@;(q`_y1$zGQNr8jQ?eoAkzEWWH3=8;6nk(#d{&Pcna9vL8ELW@Nr>vL7`V znZG{Sj~a~3mrM48!^nL3WIs5J%vVTegTu(&jLZgyk+~V^<83RB%-@jo@wPXP%vVbK zsKLm5<)n`qjLhGZ^ub|dzDn{Y97g7=CU3%FWd7!4Z#az1S4;MW!^r$C$=+}nnZGsJ z8xAA$)sr3LFfv~w*(VMo^EH#%_?~2LM(*>5wMOP^C--^7IwSL`$$e@tGG908tp+3W z^^!g~jLg?hdi$Pa{<5RD`Nqk9a2T0ylI#bE zk@=>{Y;YKvn~~YzFfunIeY|b6k@@CHA8*@YWWHt6M-4{iTP1zeU}U~^(g%l;`8$#~ z;V?3PXYwW-M&|EI_J+gAe4Au%IE>7Oj&T^7ZBz@FiWIiqF?R%2>dz0SYuebiuNzHib8hmrYy$(wK(neU&x35SvShm*bGFfu3+>Fdd4Myf>8A$ZT*JnVXS5-gffH{G&-9Z~NHD{NqUc2o zq_-N3%r8oMtHH?p;$%NKjLc^w`@vykeo3+)97g7sCi}r*WPVw)9~?&JmnZwdVPt+q zG8-I5=4NCzIE>8A$bH^$<;eUq$$j4N*^&8G$$e@tGQT>xPYp)qpG$h5aq4 z{MuxfIE>7%OZJAt$o%?bKfWiKe?Hldo!&4qzcJa58jQ?uO7^1$BlDY++2AlTHzTvb zVPtMb?(>G*M&`FC_j$uDBlA0w`_y1$erIx@8jQ^EN_yikGXFx-8;6nk-N}A%7@6Ob z><5RD`Mt@0a2T1-O!kAr$o#%!KRArcznJU?hmrZ0l3n63GQTyM84e?Jv(v}hzC1Gj zO47&MzB)4hTGB@iM&|b?ebiuN{y@?PhmrZ$lQ-coGJi066AmNuhmyVdo@D+=vNyYa zcx3))vNtstnLn27O$|ook0*P>VPyV|WHvaA%+1Jba2T1Jkv`t`&5`-Hl0M${#K`>H zNgp*BnSUqgqXr}MCzC!njLg5Aya|Vq`S+4H;V?4)ezG?lM&>_A_J+gA{D;Zja2T2Y zDA^khBl908d&6O5J}cQV4kPoYl9}N!GB-Q-dBgMiHz%3TmE7kI{>c8!liY{H$b7!! zJ{(5oFGzahFfv~->5aq4{6)!rd`~i8B-xLhE;KS_-ho=8Gr$!C_?n z%49z{jLfrVXM@9-6E`EX!S%mqGxx{4UXos#7EbWNv)#tG^L>(YXNQh&=f@`J&ZZ~d&d*NHr>8TMZ|4^! z=guw|-_CDN&Yj&jzMbEdoIAT?d^>+UId}Hx_;&tea_;Pj@$LNSnjG`3B?M*?P&h^Bu;yv+a^^ z=ev$`XS*cd&JP~v&JIkzogX#MogI;UJ3nKbJ3B4;c7FaicXm$l?fiyu?(Dkc+xacy z+}W+kw{yQk&B2-9AHJPGG0vU&d+gi!LJ99|!Q7wXY;!!Dp7S}&eoy#&^Zb$d+{y0= ze=stiH~BrG1|#$Nliw3KjLa8EdgCxM_jk_?~3`vgGgW%hRGGbN`Kg zPpHAje6i&B1V)X_mq>n3;4m_ORWchKM&@Q^HaLvT&B)I%Q%2^mPJV`Y&B%PoWPWNe zGJkC{KQ$PcFO|#>hmrZx$^38_nJ<&f4~LQY>ylaHFfv~@nJW$>^VcWy^F7IY`DA`} zu-wReg=BteFfv~;nT;BZ%%>!?!C_=>M*4We8%E}DOz!iuN#<`#?(>F~M&_#|_o>0i zeAP51slmwn%}H+@M&_#}`GoJhmrZpNgr=pdt|;&(#PATj?C9h`l!Lke7&TP8jQ@>Px|06GT$J1 z6AmNuww97dZUr~CduB^U}U~&vNtstnQxZN28WTk z8JP_ZBlD@recrI;$b75hK5y83WWIHBpBjwJ-;vy>1|#!#CcSYOnZGMdO*o9qw@LPc z!^nKwWIt0AM&|EM>m?jU=G!Iv!C_>+eX<`MM&>&t`@vykzGJdW97g6_Bs0TdWNvo) zc-u}R^YMrMP<$lQ$d@wUB3<{wP@ zc-uZB^A9C`)L>-3Z_-B%M&|n^eQ+3=@1ML0hmrY*lQ-coGCv^M8xAA$k0g7;VPt+_ znwD@FnIDww4Tq8W!O7mHC5+4uNp_6G$o$Y`W;l$@&CY$^aM;NF@Z>&kIAUaeWOAPx zjLeTp?o)%2`O!&l97g8TlioOt%#TU-<9m|%amjw{^w^R4@yUMFU}SzmvL7`VnV*>K z2ZxdQNy&b27@41(%m#;%xfz)a4kL3ja-TPRbY%XqxVPt+v(i?}7`KOcp;4m^jHQ5giBlFXe{opV%KRwwG4kPn3()5JG$o$M?Z#az1 z&q`+Fdy=^snT?&EJu){V_j$uPBlB~U`@G@2k@@*aZ#5X1Uy$@sgOT}#NpIhi%r8!Q zd&5N|^BKv0)L>+ONwOa`Ge+i@Ci}r*WPVw)A2k@6U!Lp-hmrXe$$oGcnO~XA28WTk z8JP_ZBXcv-XGZ$W$o#WOA8)&AWPWwhM-4{ipG*3v!N~lYqz?`w^J|kg;V?44E_o9U zBlGK%z2Pu2zaiNh4kPo=Cp*SrWPW3^PaH<(Hzj-XJ<0r*G$Yyd%_DO&G8;7*nVXUO zyy4c7`E5yWZ@7JAen-+r4Myg7CinTCWd4Puw>R81GQT_Ntp+3Wdy@UA!N~mHWIs5J z%x5P1!C_>6U$P(E%#ryQll|Z@GXGMtA2k@6e>s^A4kL3jG8-I5=4LcAdD~Y;=3h0hl8jQ@%$ZXVLWNt=!d&9Rz=1(Mjyy4p;^Y0}0 z`Pn4%?TP?-(tEA7Ygpv8LlQ-coGXG8TCLBiQzfE?G!^r%1$v$xyng2f7o9{{He@OOb*H4ek z|CsDe4MygFN@k-5BXct{8yrUFW~7fd{CQ;lm*hS_n`HjC&X1?$$e@tGXF=? zTMb6$|4e%0Ff#vFvL75q=KoIigTu)DKgoV@7@7Y!*$)mQ^Z!fsgTu)Df60Du7@5yD z`*X9wVa$n}kzL|2GJhu1$J=J_Tjp~leY|bXk@;Ln9~?&J&rABK!N~miNgo_W=5r@+ z!eL}SPx2-lM&|w<+&*y_na`K(&G#hp7bJVLYyWmG^97Q`!^r$)NpBoR<}Xk7 zgTu&t(PTe3jLct=><5RD`C`d_a2S~{p6myQk@*tIesCC>zcSe+4kL5_ABLIXFfung z_j$vsM&?tJ`@G@RBlFiJ_o>0ie97cKH5i${HtCJS$b6}!Hx487rIY>mo@D;IWIuMg z%*cG%WIt*!GJk!tA2k@6FPH2Ghmra6$$oGcnXiz{28WTk8JP_ZBXcv-$J4U?_e3j%)IE>6!P2PmV$o$R8-f$S1ua@i$hmrYP zlD*+DGJk8bHylRht0z0gVPw8WvQHdF=4&Ri@jc1hjNIo9YmLm;PVV!Dbw=h>ll#m_|~7@4o1^!7c;{B6m8>~w>X`G(1U)L>-(_GCY5Ff!jL*$)mQ^No}J z;4m`ZB-sxRBlAs@+2AlTHzTvbVPtMb`gq%BBlFFZKHj#)$b8GBj~a~3w@Uh`!N`2; zqz?`w^LHd~!eM0o&g4xvjLhGa>rm9pf-E-!9oF4kPpJ zliB#5WNt=gW7j*3%+1Js-mv4ye5d3-Z+OqheCMRM8jQ?$N&2Y4$b4GT+xH~%_a?o) zVb_uQZpnVsU}XNjWIt*!GT%Mf4-O;q_b27xcC^COe{d`~hzI_d2VM~%#<5RD`ANxaa2T1Jk=fudGB+cAyzS(X`A3sJ-uAJP z`Nxw!YA`bYMAAnMM&_SP`rt4!|5WlO97g7+ByYlDWd7-7Z#az1Pfd1=!^r%!WS=;U z%ui4D=6jO)naSSl`iznJS;=hFU}SDaW}^lpb2HN08_ph?pOf_QhI2>e=Oy>~*(CD| zlKZ^j{E_*ENpCe6nO~IjR)dlG#mRnf7@5yV_JhO7{E}opIE>6MP4etb_d|9r9^JH26Keq*v9H5i%Slss zv%z6xZboK+~*Cqjm&RP?(>FQM&@@U_o>0i{LbV)H5i%SmGs78Wd4PuHx487 zyOaIkFfzX<*$)mQ^Lvy1;4m_und}FLk@e=*q)4kPm~CA-97WPWQhGaN?d zW~Yz0eR*X5m86fieRX91wWN<4jLh#(`l!Lk{DGto4kPogCvU=GWd30CCLBiQ4<&o^ zJ<0r$WN&u;@W}kpWN&IPGJh=Dn;MMFA5Zp%`+u73JO1~%{NuR2Lb5{WAjuwy5RRD! zsqA@>gecjPPWCDhQKVBs_TH+K_LQ=VPJ3%=_v`n#>-9Oep10@o{rWzx*Y$E;xAXnu zgpv7oliA=fGB+c$!C_=>M*4W$_eSOqCw;u_k&*eMNgp*BnLn2FQG=2B<4GSJM&?f> zZ^B_@{$%nd97g8fPxgkx$ovP%-f$S1Kb7nahmrZy$=+}nng1}^8xAA$S;>xZ7@7Yl znHdfvbF*`wH_Y9?ImvvkXZMV6 z=MN?4&K?}!&L2#-{|**8jQ?el>DB+sFC?{$?pjqM&>V0 zW`o1X+^oz7hmpA%`59))$b5z5XP6a7<|`%hQ-hKDOOpAi!N`2&WPUh|%wL+!4~LQY zD#`qC7@5B;nKce0^Hr0%;xIB_Et#M1N#<)L^Rt81N9JoL^HYP7`C7?r)L>*jC7BHl zBXcv-#~aojnXi-F=Vz15U!L6O4eO4~*H7+KgOT|w(v+kIBl8WC-Z+fRH%#_3C1GU# z%49z{jLbJm_JhO7eB)$4IE>6UN%n)o$oy5wesCC>Z<@>ohmpA%*(DAm^YxNG-nQAu zeDkD_w@n?HZ;|v-gOT}`Ngp*BnQxW!!C_>+b@C=0M&{cjZ^B_@zHPEk97g7^PWI+| zlKE?rz1j74BlFiLdsBmv`RkIsslmwn^~r2-7@3=q+2AlTpPJm~4R08k@0i@@4cm{* z-0i{G{YQH5i${H|dST$b5Rz8;6nk z`;z_mo@9PXvL8D=d1QWSvL7`VnV**IM-4{irziWtVPt+rvL75q=4U3e!C_=>MrMP< z$lQ$F=M86#%+F5l^M-Rq=I18&slmwn{mFf5Ff#u@(i?}7`FTli97g6JO!kAr$o%|d zKRArcFG%)-!^r$Y$$oGcnO~TuCmcrR7bSbcVPyW{WH!DhnVXT>*y+V1b2D^jA5VIF!{sCM8OeUsU}XM@WIt+VjLbio z><5RD`4!22)L>-(sboJmjLff0_JhO7{HkO&IE>8A$ZT*JnVXS5Gt$)~^G_#zyzQEi z`L#(OH5i#+m-JDCk@@vW9~?&JHzaSuVPt+|@+KTc<~JpK!(n88bFw!aM&`F9JH}yT zervK%97g81C42Kd$^4EqBiZ%sBXct{8#Nf2o00px;m(oyT}f|mxO-%NPtr#XM&|b> z_xYY=et**28}1vKe-(#bh=(jLgl*Y;YKvo6*eVZC@Ihe>v&nZC@Fge>LedGht-@wWN<4jLg5D z^ub|d{*B~KIE>7{nY;;yk@>fhz2Pu2|8}xt97g63Ci}!;Wd5CGZ@wp)e>d5iT|YE3 z|6Vd1H5i$jk=dxh$lQ$d_J)T?=8q(Oyy4N2`D4j_em2SciR3|1jAP4kPnf$$oGcng1x+4{p}T{Kv^`a2T1J zk=dxh$lQ$d@wT6g%zv8n@wT6h%zvI{B{dkC|03z51|#!dCVgfljLd(Pya|Vq`LB~V z;V?4)O|oMgM&`dw_KCyD{CCOTd`~j}eX=*Zer9C;hh%SRFf#vRG8;7*nVXT>;4m^b zBYnK#Pb2d`C-?c;B=f%}_j$u#M&^G@?o)%2`QMY?YA`bYN75UIk@-K9{opV%|5vgf z97g8|6j5n97g8P#+N2O!j8i{_R}m3nhC~gOT~d$=+}nnLj_74Gtr7Gcp?-M&@SZK5uxz$b8Y{K5y{v z_cC8Rxlav7=1U~^;V?2^GU<)O$oz##ZyZMEOC|fkVPw8^vL75q=F24e!C_?nqGUff zjLer!_JhO7e7R&lIE>7fPj-pJ$lU*jVP-gt%+1by-tgj)`IO{7Z&+buzG8Bp8jQ?W zO72sGk@-uK-Z+fRS5A84FfxB>vLD}*%wLx5$4*xnnXj7cM-4{it0ntUgOT~_$$oGc znXi%T2ZxdQn#pW%7@3=q+2AlTHzR$#ZLN{{+DRX8TW4gxZqi2$M&|1!ebiuN{_>;` z4kPpRlQ-coGJi$#CLBiQ8zg(fVPw8xvNs$?=C4flhQr8wqhxP5jLbJqc8tTwe3N9K zIE>6+mCVNXBy%%zpEqneGT$t@&l@%$nNLmbQ-hKD7D;b47@2RG^ub|dzE#rO_ayUe zlKt4})+6(6ll`c{$o$pGe$-%OzFo2(97g7^N%n)o$o#d*esCC>zb=^#4kL3jG8-I5 z=4Paix4nL3zJ1ci+jbb4zaiO z!(n8;bFw!aM&`RDd&6O5zH72$97g85CHur-WWIYc8{d=6&B$!*dXJI08M)6J_8gh- zmE7kIdymZbNqVcn$b8?Vj~a~3rzO38Pcq*>>Fo{sjm!^7_M-+P^S31XQG=2BfysVw z7@5B{*$)mQ^MjK8;4m_OTe2S^zpVsM&^emeZ1}MBlE+O zK58&BKRoH91|#!#BzObOJ-x&$BxX+$ZXVLWNt?8^M>O`<|ib*z2V&>^AnRkYA`Z?Pja8{ zN#^fOdV9l3BlGD=Z#5X1zc1O38jQ?OPWFSt$o!OKKRArcPfhlN!^r%!WIs5J%ui4D zgTu)DjAS-AjLgl*Y;YKvn~^@=cIL?ZtfY^(ojo!?C+VXGBlB~UK58&Be}B>khmrXQ zk~iTnGCwbQ6AmNu4<>uVVPt-OvSS=Z<`*RU#9?Iqp=58qCz)TA?9Hw(9GQPOnT;BZ z%+1Jb)L>+8MtXb0#Ut}el0M$>k&*dFll%N^lKExHeco{C$oykTZ#5X1U!L?FcyhmpA% zxz8J}8kt|6+~*CS9+_X0+@}U3^J|m))L>+OUD6wek@@vWZyZMEHzd2nVPt+|vNs$? z<~Jq#@jc1>mSjJ6dh^Kq)?`0wFfzX_*^e5G%x_O-gTu(&jLZgyk+~VU&l~O5aq4{Qjgj4kPo=B>TZ(Wd7M?KRArcKbPzWhmrZr zWIs5J%s-#(2ZxdQ1Id1H7@2<|*(DAm^E;E7;V?2cJAJ(EizD+dC4Ic@%OmrzBz@Fi zWd7Bpj~a~3zn1jDVPyXG7{pX?2Xk@*jjz2Pu2e=6A<4kPoYlfB_EGXG(+HylRh zvyvU-Ff#v9GBX@T=4R(UZ<& zZyZMEizNH;J;{8@WIuMg=*WEOWIt*!GG8Xyj~a~3mreGA!^nL3WIs5J%(LfagTt5; zHzTvb^}pvb_s6>yON*x^lKc6>YEJ~?-` z!}xZ7U~=y4fbs48u;kp?@#EY1$;r91>B+bAi<9%|>7wM@`Q^#Ev&+V}^V^eiXSa@T z=l3P&&h8oC&L2w7ojo|doj;zOJ9}h&JAWoQcjn)leLMGWvd*17JHDMiuZ1{wHvhqEX#rVjp-lg7ET6O(V}7mjmh7bM@#FCFL3E=j(f-#pHp-I#nkzhj&`yEFNA?sup;IP?3% zxARBFxif!{eLG(?;him<`%|24j_1<8w9rODGhmrXUlHU`)Cz-!6`Fp!mT6$#eztQgrH5i${DEU2sQ6ux^ zlHU_JjLcu0%m#;%xmlSF4kL3j@-xhok@*VA&oC>F%vVb0rv@YQmn8F3gOT~l$^38_ znZGod9}Xk)Rg(GPFfxBxGHV=0=Bp-i#bIQ=S~5T1lg!sh=4S`1kIdIh=BEZD^R<%M zsKLm5N-`T9M&@Ruk2kD6GG8aT&(9{AzdX6m8`d3}ubS?s zZ<5RD`Nqk9a2T0ylI#bEk@>5V{opV%-!z#G4kL3jvP&FB z=IbSWylu0Q`Q}L*P&1jLf%5-h{)*eA{H7 zIE>6+o$Sr`B=grKd$a59M&_?g_NE3S^VcPNQ-hKD>yz2wFfunIv%z6xJ~g?|8{RN7 z-!Zw*8@3;rzcIN_4Myf~O72sGk@=gG-Z+fRcS=(e4kPoOll|Z@GT$ZH&(wsG`L1cp zgu}>uw`4y!jLdgW_JhO7e2-*5IE>8qOm>OG$b5%nW;l$@%}yV0+iPULchbk(_8FP) zoAgnGk@>Wwj~a~3_e=WVrj5+^Pu_&X$ozohO=>VQe@n7A-;>PWn(WQ44;+~vlEdM&|EM?(>EdN9ONI?o)%2`ANxrYA`Z?Z_*ow zk@@tbHx487_a*!BJ<0r(WIuL#^2q$uWIt*!GCwWZj~a~3PfzxP!^r%MWIs5J%+E|_ zgTu(&jLZgyk+~VU&l}DfnV+59=MCqK%+F2kQ-hKD`;+_BU}XM*q&E&D^YfD4IE>6c znCu6Kk@@+_esCC>Uy$qvhmrY*lKtQ?GQTiQPdJRsFG}`?!^r%@$!vU2GB+c$vD1r3 z=4RwRZ@6S+{*mN9Z}{lQ{L-Yi8jQ>@OZuq6$oykTZ{L&5Kc4jVhRa9hGm`zN!N~j* z$$r$#7@2=E*$)mQ^DC15sKLnmQ^|gC7@1$0><5RD`Blkma2T1Jk=fudGB+cAW~8e} z=ATabc-u82^J|knYA`atF6pBNBlGK%J~)ibZ%E#R!^r%`71OZMh_lKCBJMzZVMN9JZ^Hfk_3HzW6X!<{4ZyOQ4CaQDdk zo}`Z&jLh#%?(;p#{Qji3H{3Te|4h<5RD`4^J?sKLnmi^*(o7@3=q+2AlTH=~)!+rBh1|8mmD+rBa~|7y}_X2Qt) zYe^q97@2=P>4U?_{2R%ea2T0?GkFsZBlB-1d&6O5{_SMPIE>66O!kSx$oxCW-h59o z|8BB3yMAb7{=H;2YA`Z4BePM1k+~V^?F|o)%pXbmc*CP3^T(3={A`l>6Ulwv@c795 z$)vX$jLg5E^j3qB`45u);4m_OD%lSXBlD+|{opV%|6#Hp97g7|lKtQ?GXGJsAKa{w z`Hz#?;4m^bBePM1k+~V^<840~ng2BD<8411ng2Y^N@_4N|3%VA4Myg_O!~}97@7Yn zc@qvJ^Is=#!eM0on`Fm0jLd(V>=TEP`R|gw`JQC{`($r+{mjVx56RxtU}XNsWHxFr zGB+c$!C_=>M*4WepGM|?PVV!wN#=h|?(>GfjLiR*+@}U3^S>v()nH`)kEAyaBlCYI z`@vyk{;y;|IE>8yo$LpPk@8yo9qXNk@;-1|8F)pj5%>LvP&FB z=FevOc-!oK%Y2TckGIV^GM_8ygTu&t?xc?zjLhdr`rt4!pEr3E4kPpVk~iTnGWYM` z_KCyDe1T+dz9*S4nC#82{oA?B7fSY~1|#!@lfB_EGJk$D8yrUFW@I)vjLgl*ecteb zk@=#@ecs^T?`6Jta-SNE%$G>+!(n8;WYQalk@*Xg-Z+fRmrC}7!^nK;WIs5J%$G^_ zgTu)DMah0}7@04d><5RD`EtpAa2S~{pX?Hck-7g5!_06PnVX&ayy3+o^C`)F-mt>R ze8uEGH5i$%l-#EVBlDLey>S?sublM8VPyW&WIw(qnZGRAkDabEGG8^>j~a~3S4;Mz z1|##;ll|Z@GG8Ov4-O;qHIv!kFfunIv%z6xZbtfe+gc;@wUa*Hw$8|W-K38ijLg?d z`l!Lk{N+g>97g8rCvU=GWd4feO*o9qH%Rt|!^nKYWN$c(%wL)84Tq8WM#==iU`6kIeaTuAuDw&P%N#4U?_ ze5<6l?@8v{B>S<`tw-kDCi_u?k@>5W{iwmne7j^nIE>6+lk5kFk@;(r{opV%e_b*g z97g75WHvaA%*{w2Z+rd7eEX!2x9u=8e?!to4MyfWCVkXkWd6pa4-O;qHzjYvVPyX1 z79OZJJw$b9!?HohmBn~~Yr^&TU0 zGjg9d>^U;uE4j}b_8ytz!A2k@6PfL3Ho@Bm%(%T#M8<`)F>_-ho=5I;% zqXr}M1C#yWFfxB@vL75q<_9JF!C_?nwq!pzjLZ*CW`o1X+>FcyhmpA%>EmsOjLZ*B z`gq&hN9KnmebiuNet6PH4MyhgNc!L~GJj|CCLBiQM-(p5#8?lg!_n^!A36M&{F#-fA#1e_yg6H5i$noa_gOk@+dfesCC>pPK9khmrYd z$$oGcnV+8Q2ZxdQ8OdyL7@3=q+2AlTHzR$#?aYz+SxFynJ9}h)PSQsWM&{=xebiuN z{{Ey74kPmqByYlDWPV=qCLBiQA58X!!^r&nWXCv+%r8jxiNnbJL&@HJPcpwK*_&No zI5PimG8;7*nVXT>sKLnGjP&+~i$~^{Bz?T$BO~*VCinT-B=gIX`@G@Ok@?4x-fA#1 zzdY%!1|##2C;P!+WIiL=4-O;qPbB-nVPyWvWIs5J%&$oHgTu)DQ^|gC7@1$0%m#;% zxfz)a4kL3ja-TO`H8Q_Cxz8IuJu<&0xlav7=GP|oslmwnx}-M_BlGK%-Z+fRZ%B5D z!^r%`WN$c(%x_Be<9m|%Ey;fD^yZQIt;v4WU}Sz ze=gY%4kPoK$$oGcnSVan4-O;q2a^5ZFf#u_vP&FB=65DD!(n7@cKUeR7f0q_O8R)) zmq+GbN&2Y4$o#8GA2k@6e=X^Q!^r&W$(wK(nSUdB6AmNuZzg;5J<0sr$=>YxTO;!a zlf9|I$oxCW-qc`Z{!p?v97g8fO=g3`$lQ#~28WTk8R_F~-y4}fob>UwM@Ht4CVkXk zWd2yvM-4{ik0*U_7@0qjya|Vq`IE_;a2T0?KiL}&Bl905d&6O5{#3Fz97g6(Cws$T zWd6fsZ#az1XC*tvVPyWJWM(*w%+1by-Y|Fn<|OmElKZ^DAK9PzlKXHNnJwnK>?vHmZmKIM-B>%0?AK%VbPtKjKI=-E+o18maZ+tu7E;)C$ z?f7=SeRA$>hw<(Fz~tQ70pr{GVad6(X3 zUJG&VZ2pn?BFWD%i}8_H$?<-^a`KH?Yn(gVB>8r}^*DF7W%BKOk8$p7x8&RTe&gKP zzR9=qW5>C(qmysvCyjGwCnn#{FC6F2E=azeUpmg6U6On|zj>THyD|B8e#ba>c4zYK z-0x6xaOU@iZ|9GUb7%e@`*yx)!aG|y_oq199M7fy`J83HC;YvcXJkHa@_WJ`jLhdx zeov^u$ozT9?+F}6<_jggaTuBVJLdNX4kPmyB)=zoPcnaD^7nSBwDic_f1}?MYA`Z? zQSy5NqekY-CBG+d7@5B~nGFsjbF(rV97g75wIjLgkQA8%NDWWG*vpPx-Ke|d7BH>^7{Uq87|4Myg#NK=v; zjLbJkdgCxM-!R$Fl!TG_E0g`;Ff!jL*$)mQ^No}J;4m`ZB-sxRBlA}!`@vykzG*TW z97g75WS2OM%-2i$c-v+p^Uae!-Zph)zD3eU4Myf$CVkXkWWH6>2ZxdQ*2$Z27@2RA zya|Vq`L@YEaTuAuI@z1=N#?If_GZ`Hjm%%0>`e_u=C4ckrUoPP*C(^VVPtMbW`o1X zd}?x^H@snFzGHHqH*7yLe`9i=8jQ@}l-#EVBl9;Wy>S?s@06w{97g6lC;P!+WWGzX zpQ#BW^Ig-H35SvSZpnUd7@6;$><5RD`5wuBa2T2Ind}mWk@*hE%y1Z)o1H%1w%5pf z@1&2n?K3jpH|e7WBlBrVA2k@6@0aw!O&gi-pS%f&k@*41o77-r{+48Kz9*T#HQAe8 zA2>2UDA}7DjLhGb>`e_u<_9Nx!(n88NHQB7M&@Q@HaLvT%}5__J9K3J_N0%u9X2vQ zJn5qbBlCA8ebiuN{?4Qi4kPm;k~iTnGJjX{CLBiQM<#p2VPt+(vNs$?=0~S#35SvS zG0EO=7?~fN>}^`Y$o#lu$2g44k56WX!^qt1+~*A^jLhGi+~*A^j?CYa+@}U3^OKVM z)L>-(-lR7UBlGD=ZyZME?@RXMdy@Gn$$sqg~~!4VRD1 zXC(VkgOT|slKrTeF*5&TvL75q=2s;9QG=2Br;`2PFfzX~*$)mQ^Q)5C;4m^bBeTI_ zWNt?K%t%*{%s-v<@wRJ5=GP{D)L>+OUD8JlM&{QieQ+3=-;lfshmrY>$(wK(nctM` z4Tq8W&B@+y7@6Oa>==iU`K`%5aTuB3mh8>+8MrNZ1BXcv-+Z!GpnLm>B@rFl7=8q-!`Pn4% zCzAWT;qj6AlSywi7@2=R>8%DM^B*Mp!C_?nRI(o&M&?f^`@vyk{=;NHIE>6^CHui) zWd5UMKe$;V^B*U(!C_=>MrNZ1BXcv-$J>4~GXH7P$J>53GXHs+mDFHl{)?oK8jQ?; zne>^JFf#vD@+KTc=D$wfgu}@EH_4817@7Yz*(VMo^WPA8(s;WIk8Y2ZxdQ+({ob7@5zL^ub|dK5z0S97g8z zC2zuEWbWU=?GuNQ`2xw_d`~i8Fxi`3`?qtMFO=*}4Mye*Cws$TWd8hQHaLvT&B$zU z7@3=q`@G==BlAU*`@F%w-^+aQS?sFO}>EhmrZx z$$oGcnJ<&<2ZxdQi<14|Ffv~@*$)mQ^W~EL;4m^@KG`J>BXj>BhMD0oGB-Q-dBclG z=2MdUykUir`HIPXYA`ZiDY;J#M&>U`dgCxMUpeWG!^r%l$$orKGJjdJA3I%TWWH*$ zA2k@6ua@jb4MygxC;P!+WWGkS9~?&JYbLY7VPtMbW`o1X+>G?`wzWp)YbSlYZJm+% zx=9~37@4n^^ihM6`OA|&IE>8KPu_&X$ov(_n{XJJZ;yPYp)qTO_^J zU}U~!(g%l;`Bq79-;>O@N%mu>TaV1QP4=S(BlA}$`%#0D`F6>Ea2T1tCfN@TBlFiL z`@vyk{<>r~IE>8A$ZT*JnVXS5-uC*D`SwX4Z`)yH{)VKF8jQ?$O!}z7$o!2-9~?&J zZ%W>T!^r&2$(wK(neUYB4Tq8W&dJ_z7@6;q>pe#1X5>C^*mGpQS8|^>>^(ByC+V#QBlCTeK58&BpO*CYJ;{9kq_;QhH!?pU z*^e5G%-@piM-4{i2PXT$VPyW+WIs5J%nwTTgTu)DZOMLc7?~fO%m#;%xfz)a4kL3j z(#P8l8JQoN^zpX0kIWBC`l!Lk{P3iY8jQ@}k@Ue~Wd6?NO*o9qk4WBx!^r$y$=+}n znID<#4Tq8WQOS;R7?~fP>=TEP`7z1fd`~hzE}4y8A3HKPBePM1k+~VU&l`>(nV*pK z_J((l%uh`EsKLnmJ;{B(Cz-!D>Fo_Cjm)Pfz13i3{=Q^CYA`ZCIoS^mBlA;|{opV% zKQ-A84kPo^lKtQ?GCw`p4-O;qGm_chFfunIv%z6xZbtfe+nFQtvywjEcJ|2poTQH$ zjLgqX`l!Lk{QXHE97g6JNZy3Q$o#zIO*o9qKbY(dhmraD$&PUtnO~6X6Ni!chmyVd zo@9PevNyZFaAf}BWHxFrGB+c$QG=1W8R_i}7mv&@N&0xhM@Hr!P44rvN#>U&_j$vm zBlC|Xz13i3etFVc4Myf4Pxgbu$b3e!9~?&JpGfwD!^r%T$$oGcnO~9Y2ZxdQr;`2P zFfzX~nGFsjb2Bm<97g75YGi(Oa-TPRdSrf0a-SNE%&$%EQ-hKDbxCg=M&{Qi zy>S?s-;nGQhmrY>$=+}nnctM`$M+=jTax|Q>CGeaTa*2$!N~l!WIt*!GQT~U4Gtr7 zGcp?-M&@SZK5w{dWPW#YpEukwGQTIePYp)q_a^tL!N~l+q&E&D^ZS$DIE>6clk5kF zk@;tn{opV%|6H;k97g6dll|Z@GXH$C9~?&J4lJrr7k@;7XK58&B|60-qhmrZ$lQ-coGXF;MCLBiQ-%R%Ady@IL zlfBvXw?^g7{o6H7>k+~U}4Gtr7Gt$S~zBe*|IO*eU zkBrP8P5P+8$o#RSj~a~3A5Z$=FfxB4c@qvJ^Cy!x;V?4)ezG?lM&>_A_J+gA{HbJb zIE>7nPWFbw$oz-N-f$S1&q{WT!^r$c$;@yVnVX&aykYMC%}M5SCHHxQKe9jbCHLVl zGG8FM4~LQYf=O>2M&=7Ay>S?sFOuxX_ayTrll|D~q9gOAll`c{$b6Y(KWZ>CUpCnf z4kPpBll|Z@GS8ly4Gv>Y+>Fcy*Z-c&+#l~+EG?dvNd8-&Kfax>o}4>db$mNtH#v8< z-uQODU2^Vh+wtvu`{dl&4&&STfyueE1ID-W!;*7n$B%F4Cnx95rYGOdFHX*h+<>VW));M>zN%HM{>v8UE%jDbn9^>5E zZppXv{l>YoeUoqJ$BuJnM7@5zX{GL#Qk@@qI-xD~D%oj>}<1jM!cg*h(97g6ZNPbWFo@D;Q-(qU84kMvcsuOMXw_FfxB}G8-I5=4NF!IE>8A$j>lSM&>IdKf|mzGG8f~ zpBjwJUy{sE4MyfGC-cK$Wd71*emIQGS4rlF!^r$)$*gf0nXj766^D`eYRUY3PcmO4 znV%i3J~Cf3nV%Yr%-2e0qXr}MDamYb7@3=qKHjkQ$b6mTK0lje{_^BLZ&-I^zJ79_ z8jQ?ek)|Xy7@2R7^u}RizG1STDG4L+NwOatM&_?d z_JhO7eA8q$IE>8A$S!dhnXi}h@wUxI=9?#dylv{pe2b)y8jQ@hO!}z7$b74$4-O;q zt&=z5Ff!jJc@qvJ^KFxT;xICQb+R|#lgwX}?9HyX8=1d0*_#@S%wL!6O$|oouTN%! z!^qr>%m#;%`PAe-Z+OGVe8=QIZ`gih{>J1!H5i${DY;J#M&@r$dgCxM-ziN^IE>79 zPWFSt$b6S%KT{J%=DVgX6AmNu-ID#_Ff!jg*$)mQ^F5ON;4m`ZGub5$Bl8`Snc*-p zH#>d2ZLg8}-bo*C+h=6HZ_-B%M&{F!K58&B-!JKdn>I4vKY0@lBl822H>ttM{4L4e zd`~ieYqB@HK5%4yP_j2Q7@5B<*_#@S%nwfXhQrAGkYqMEjLgl*Y;YKvn~^@=cIe3b z?MWYRJ8Wcrc+y7=M&|EG`l!Lk{GCZ397g6xByYlDWd5$?O*o9qk4*N4!^r%oWN$c( z%#Tjf5)LEtW0Jk$Ffu)k@<1Sj&T^7AD_$&hmpD2xz8I;7@5C2xz8I;9GSl- zxlav7<|ifhslmwny-9BzM&{F#-Z+fR-C zKRwwG4kPn3lKtQ?GCwn!4Gtr7Gcp?-M&@SZK5sZ{WPWyXpEsN{GCw!DPYp)q?@#Vi zgOT|MlHNFs%+E`D<1jM+V6q<^M&{=y`@vykenGMy97g6JO7?@p$o#@IJ>f7izbM%o z4kPmqC$sTA$=r<0#!fFDnVXUOyy23O`A3rbyy2rG^GlQ7YA`atEa{^LBlC|Xy?swI z|9H~d8!jK2&q(&81|#!NB>Pb_V`ToxWIs5J%&$oHqXr}MPbK@oVPt+~vL75q=2s=N z!C_=>MrMP<$lQ$dnUSs@nSVOz<89ZB%&$%QsKLnmx}=X9jLff3`rt4!zae=O4kPm$ zlQ-coGQTO=8xAA$o0GlaFfzX-*)a|y^IMaB;xID5E!mszN#=K?8Og41ADNqx*{H$D z+>G4k4R?;r?@D@m!`&nEdy+nCFfzY4xzG0`^ZS$D-f-W@{4+^!H5i$HHrbCFjLbim z><5RD`OIWLIE>6cpX>)Wb7cNNvL75q=3hwmqXr}MFDA3WVPtMbW`o1X+>B->Z~M~7 z{L4unZ~Mx~{HsZynF%BFuO)rdU}XOFqz?`w^KT??!eM0o&E!oujLg54>LaIGJhoL;|-6F z%pXhc^Rr3jPbBww!{a0KCzIZ4Ff#vs(pwEi=08aGgTu)DsboJmjLe@-_JhO7{D;YY za2T1-O7?@p$oxmiesHr!=08qmgTu(&jLb$2M&@RukGK6~Wd75nkGK77Wd8FsE2+WA z{1-_dH5i%yGU+obVPyWR=xz8K^GBW>La-SNE z%>SPBR)dlGKa$=!jLiR;><5RD`M;9=;4m`(cd{QGM&|!X_JhO7{Qr{u;4m`(Z?Yd8 zM&`54{=eDaFy_R~$S!dhnLnH9<88C|E%P~&KHfIx$b7D(4-O;qxsyI>FfyMf>4U?_ zeBR_uIE>8aOWuUT$lSk!+b0eq^97Q<`JQCHV6r#6_HXAhUntp|8jQ>rPWFbw$o%=q zY;YKvn~~YzFfunI_j$t$M&^qq_j!YVznA&q$$e@tGG8LO4~LQYl1XnIM&>U}dgCxM zUn+e6mX%M&|xM3^T)F zWNvou^M)6X%%>#xdBX}L^A(f()L>-3QgWXfjLct>^u}RizH-tVhmrY9ll}OfWd5>b zKX$sx$b8jgKWZ>CUoF{>8jQ?WPxgbu$b5}tKRArc*Gy)E!^qr>%m#;%xf$u>ZEKCp z*G~F)+d3ojb(217Ffv~+>7xcC^Oq-ma2T1dpS%f&k@+iVHylRh8zpvSS=Z=9?t@#9?Iqs$@34Cz+d(`@CV(k@;rHecrJ7$b4#Y zpBjwJw@7-c!N`2eqz?`w^R1HJz9*S)lkCS%w;q{qo9ssoM&_?h_M-+P^X-!T;4m_O zO|l;xM&_?g_JhO7{B_A}a2T1Jk=fudGB+cAyzTWP^X-#9-nPTY{0&JTH5i%inDkMD zk@*{wJ~)ib-;}%whmrZ4lQ-coGT$lL8xAA$os+%cFf!jI*&7Zc^Iel2<1jMcE!igy zBlF#p+4!DhZboKf*L#f2&B%S;u;<8pujD>&*n4EYPtscrM&|n_ebiuNJ}v3(dy@J7 zNpEl1Z)AQzvL7`VnZG63j~a~34@~xh!^r%t$$oGcnIDww2ZxdQ+mij@Ffur~9GBQ6j>Ems0ADJJP^ihM6`Qb?)H5i${Bk6;~$o!qjn{XJJACbHX zhmrZalD*+DGCwle8xAA$qmmutFfuSQG=2Bdy@NnPcnaR(%TzO8ktW|daJ?6{C&xO)L>+OaG?`wlhcOXC-~S z?d*~HIY}Qi7@41&^ihM6`TLVTIE>6ckh}?pk@FAN9G?(daJ?6{PLu?8jQ?8p6myQk@<{dKRArcKauPQhmrXwll|Z@GQT3( z4-O;qPbK@oVPt+~G8-I5=4NCzIE>8A$bH^$)yVwnyq9$jLff3dgCxMzaiNr4kPm$lfB_EGQTO=kMBw5w6^Ci}r*Wd8YNKRArcA4v9t!^r##$u4minctbr z42O}q+3DkLUmTf#De2>FUmlr%CF!FEBlE8&ebiuN{a2T0Co$L*Vk@*jkz2Pu2pOx$whmrY@l9}N!GB-Q-dBfcOo0H7vO78Op ze`J5=OYXyAWWGRh9}Xk)1(V)5jLa8KdgCxMUnJR&?@8uMCi}6|MMvgKC;L%@k@+&o ze$-%OzHG7|97g8LC;P!+WS%`Y8yv=*xEYxZuKzukxj){uSXw+Sk^Hwle|$S%Jvn!_ z>iBlPZgTEyz47gQyX4&2w&UCR_Q|=k9mcow1Cw)S2aIp$hb8CEjvwF7PfpIAO;5g^ zU!0szPZuTM&M!~Son1D*o!_3EJG*s!JHIbEcXrSCcK%Ru?(D(w?fmiN+}R`J+xaue zxikOX?Ay72lXdRw+41fCc`d}bv-wBnizGk8EXGG(CCB^u%E>oot#R&bljPg^*5lmS zmdUsCJ;u4S-I8zT`;BvF`zGJcj~(aEj!wRvpES;$otS((zi^y8yCC^?e(5-Oc1iN> z{N{1)?8fBV`5oij*`3L^bH78)!I|G5zMVfZ&Yk&t?A!UG3GZy-+@IoXb3B*+=W~|* zp78f(o{{;y$?pk&FfyM%`8}ZqBlG7azb9}QnJ<*|#$jac@0i~oIE>6+ko=zTJ<0rq z$=}FfunIeY|1qk@-5weSS8{{N>4g z-mvb-eEsA;H5i${B27tZFf!jD>5aq4e8XfvQxZnzuT1uX!^nK2WIs5J%r{Q<5RD`KHNia2T1JkzL|2GG8z0<87Ob%r{T^c-z#G`4&kZH5i$1neSS-eCz-z{*_&N&H!^>1vNtstnZGXC zn;MMFU!TkdhmpA%nGFsj^Qp;w-tdNz`Hsnb-mv}1{Ef+dYA`Z?Q*xggjLhGh^u}Ri zzEhf-a2T2Ioa_gOk@+skex@dj%y&&&CLBiQyCwU+XR=Ei zM&>&tGs9tIZg%>3+g>B{y^}uPw$I3X-=vQkjLfGcebiuNzF*P@H*I9TfAS_AM&<`3 zZ&HJi`CF2``JQC{)?{yXec;Iapk!}qFfxBzvNtstnID|&4Tq8WA<1lT7@3=q+2AlT zHzR$#?a-0=+mk-tcG$@L@T89#jLhGW^ihM6`8$(7IE>7XNZy3Q$oyT&n{XJJADQe8 zhmrYF$=+}nnID~|B^*ZP$0U2hVPt-6vbSjoBlF{u9pf-EKR%fm4kL53bDuYyFfxC4 za-TPxI5K}va-SNE%uh=0Q-hKDdz0QcjLfGey>S?szc1O3?@8vTB>S<`lSk&KCi_u? zk@;!Ke$-%OetNPW97g76B>TZ(WPWBc8yrUFW@I)vjLgl*eco`^$o%Z&K5sZ@WPWaP zpBjwJ-=Ey41|#ziB)xGMnV*;R#$jas!DK%;jLgqZ_JhO7{DNdZIE>6clo7W$$oGcnO~9YM-4{ipGx+F!^r%~ zWIs5J%&$sjgTu(&jLZgyk+~V^Gb3F+GXHea$J?$MnO~dqQG=2Bbx9vJ7@1$6^ub|d zenavm97g6hCU3%FWPVe!HylRhHz#|;VPt+wvSS=Z=C>yM#9?H9Te3Iblg#f(Gm>53 zJ~B5Wvr&VQxf!|78}1yL-<9=JzMPz2Ux*`Dc>eYA`bY zY_cCU7@2=A*$)mQ^O?zha2T0?KG_d$=E(ekWIs5J%)gNAM-4{iUrc6$!^qr>%m#;% zxf#t&-u9)D`InPE-u9J|`B#%ZGZRMUUrYL^!N~mUNgo_W=HE!(gu}@Eo5`DS7@2=7 z*&7Zc^KU0R#$jasV6smfM&{p1_U3z%`FE4O+4Vys^Y10IQG=1W8JUe5jLgkQZ*O>b zWd2Cf#~U6UnLn1?=Vz15pGfZWhQ~+dPbR(9U}XONq_-N3%zu#V2ZxdQQ^|gC7@0qv z><5RD`45x*;4m_umFx$Hk@=63{orPe%zvEB28WTk8JUe5jLgkQA8-4~$o!{CA8-5F z$o%JNR#JnJ`7e?_YA`bYWzuI>!pQtr$(wK(ng2R@6AmNu-y}Q6VPyW>WS=;U%zu~c z&G#hp-zR&s>t{yhe@OPG1|#!7CbLn4k+~U}4Gtr7Gt$Q!{xmZGb8?@bO)~#$a-TQ+ zWn})h<5RD`Tr&R z!C_?n-(){HjLc`7{eQE;Va$n}kzL|2GJiJH$J=J_Tjp~leY|bXk@;Ln9~?&Jb0>Y& zU}Qc|(g%l;`Mk-Sa2T1-m%Iswk-2{dw@(~K<_jcy^F7IY!DMfC?cdI2zEH9^H5i#M zoa_yUk@@qJ+2AlTHzTvbVPtMb?(>EhjLa8J?(+u!elPRIll#5aq4eC4D!4kPoI zCj0R{$^2!>e(ZFWk@>30e$-%OzFM*$H5i$%p6myQk@*_QesCC>ubIpShmpA%nGFsj zb2HM%+twPHubuSqwsl74>n45FU}U~t(nk$O<}XkB;4m^@KY0@lBlA}zZ^B_@zCp4# z97g6FCVRtSWd6!zZ#az1H%j(~!^nK&WXCv+%r{B)iNnbJRmp68Pck_-ho z=G!Iv!C_?nnq)sXjLct~><5RD`RkI|;4m^bBeTI_WNt?Kc-!ko=G!NIylsb(`5Tfx zYA`b2G3lcQBl9;VeQ+3=zbSbW4kPn7CvU=GWWH0fHylRhJ12X?VPw8bvNs$?=DQ|4 z#$jZ>Te43aM&`RGv++I2+>Fe|uJ;(3o00pxVb78IUdeslu=mJ(pQN`MjLi2<`l!Lk zd|J}m_ayWEliuF2-^l!cWIt*!GJi|5A2k@6ADHY1hmrYPll|Z@GCwHU4-O;qw8ANFQ%IWMqD5(#PB0J~BTn>7xcC^TU%qYA`Z?N74s}k@-85 zH{mccKO%V(4kPn-C40kRWPW6_HylRhM6sOZJ1q$o%wVKRArc&q!v2!^qr>%m#;%xf$u> zZD)?m&r14u+u0-YbCN!4Ffu7xcC^YM-dy@G@$=>Yx!jbuhli8@j$lQ#~Mh!;hW~8?_Ts$(rBe5=(0$$e@t zGQT#tPYp)q*CoAi7@1$6^u}RienYZL97g6hCVRtSWPVe!AK#PAZ%OuJr#FwxZ%y{2 z1|##^lKrT`$o%$XHaLvT&B$zU7@3=q`@G?KalL_|7o)C z_}}O9kK;yGLKz|As3aq^Y&u3#nPpQB5+yQ1X2&Q>r9^}{M#fhUE(k@za^O&4kL53)5qJsJu<&N>Ems8 zjLh#$`l!Lk{H~;r8jQ@plk~x1Wd7acO*o9qzn8oThmraBlf5}lGXG(+H@p79$o%eP zZ)z|yzbDz78jQ^EP4==iU`BTZva2T1Jo$qYDq%%7Kh&l~)a{h2rU9u6b(=O^F8VPyV- zq&E&D^97UMIE>6+nC!=SlKG31{n+WkBl9Jb{iwmn{3XeL)L>-3bg~~DM&`>T`@vyk zo;^Do9LAiu8JP{P|2>-)r2v+cP=4 zKXTl=J3KkNKYrZ1J2pAHKXcr>J0m%}KX2T-J1052zi!;SyCylizj@rdyCpfh_dC=a z-1+_C?Eb-V@6O+2XZH&yyt@T+e~Pos@oaj|=Pdg@;qT4dBlCHZ-xK~|WIkW=dqNFH z=JO}NCvX^0WWIRv_jZZ2W z^TT0e{>o&2IE>6!Nalyb$oy5wtZ^8bub9jghmrY8$^4urnXi(}&kj}|nZG)jpBjwJ zS50Q41|#z+$!u^KnVXS5-mu!peD&meem2Q`t>k;&u*S&zHOcqXU}XN0o9qXNk@ub=D(hmrXP$$oGcnQxfv2ZxdQM#*e&7@3=q zUE(k@Uo+|BZ5xlwUzhapwy7iYO_DxpFf!jX>7xcC^UabzIE>6UPu_&X$o%!mn{XJJ zZ;|X1hmrXklD#=kGJj*TH@n_)Wd5dPZ)z|ye{-@oH5i$1mCOc*k+~U}4Gtsosmb@e zVcU`UcFFg=Ve66k_R06uU}XN5F4esCC>@0RQbhmra2$u4minQxQK42O}q+3DkLdyLHAmh|zq zw~x&CO!}z7$b4GTM-4{idnJ8v(?;fdCvU=GWWG=GCN&tDza!b3^Ca_kCVR8%eMjc| zC3{nYk@^0~-qc`Z{;p(iIE>8Soy-P@k+~U}4Gtr7Gt$S~4j7rgC+XvD2ae1SO8Th5 z$o#!YA2k@6ADr~TVPt+t@+KTc=7%P4!eL~7Sh6=9M&|EJ_J+gA{O~j_;V?2kBH0@b zBl9DZy-iCPnZG~TF%Bd1qmr57Ffung-}8o}N9M;Q-}8oJN9M;R-&2E;`SHp3)L>-( zfuuJMBlGD=ZyZMECnWoEo@9PfvL8D=ab$jSvL7`VnSU_Zj~a~3Ka}hThmrXy$$oGc znV*`>28WTk8JP_ZBXcwIJ#YB%$owP8_q^e>k@-iH@2SDa{A0=Y)L>-(@uW8nBlFXf z-Z+fRKauPQhmrXwll|Z@GCw2P4-O;qPbK@oVPt-0nx1eNnV*&H4Tq8Wr<2(@Pck+OQL-O3Ge+hYC;P!+WPVAqA2k@6Uz+R(hmrZ`lKtQ?GXH!s8yrUFW@I)vjLgkQ zpBd@0k@**rKHhfu$oz_=j~a~3uT1)=!N~loqz?`w^Q)6L;V?44CV3MMBlByMz2Pu2 zzb@Gu4kPpHlO5wQGQT0&Ck`X?8_-ho=HE_cgTu(&jLZgyk+~VoOx||;$o!6^kGI`9GQTV7 zGc#di{+*DWd2~%#~Xe$GJh!fo}W!JeCZ>1|##wlHO`CGJibT4-O;qCzAc(FfxBK*$)mQ^B*Vs!C_=RE7=bYBlD+{ z{orPe%zu*128WTk8JUe5jLgkQA8-5V$oywXA8-5l$ov;+R#JnJ`7e_`YA`bYRnlix z!pQvB$(wK(ng1qv6AmNu-zGc8VPyWhWS=;U%zvNk&3TgfACkS<_0uEsKPG!qgOT~4 zlG&)i$lQ#~28WTk8R_E&X1?$@kP?Wd4t&w;GJh|C#j0 zVPyWVWIs5J%>SM22ZxdQf0F&+Ff#vdvL75q=Kq)M2ZxdQ|C0USFfyNQ_UC4U!|&jeY|bXk@@qIJ~)ib=Suph!N`2>qz?`w^Ldgt;V?3vH+d5d zBXj=_Zl5@e%%7j^&3Tgf3zEIrwSPO8`2xw_)L>-3V6rzHM&=78v%z6xZboK ze9s$RG%{Z}`JOlU_j{QyntV?UM&^qp-@{>K{^F!J4kPo$lioOt%$G>^gTu&t$z(q` zjLct>><5RD`BKS#a2S~{o$LpPk@-uL{opV%Unbcl4kL5_ABLIXFfung-}8oLN9I$K z?|H*=BlDLf-&2E;`OA~Wy>S?szcSg6^Ca_ECHt|{6-MSOCi_u? zk@-r=e$-%OzH+i397g7=B>TZ(Wd7=8HaLvT&B$zU7@3=qKHj$K$b7Y=kGHKpGG8O< zqXr}MHIqJSFfv~&>4U?_{58p&a2T1tHhB{cBlESBz2Pu2Unkic4kPn*lfB_EGG8y* z8xAA$^^+arFf!jD*(VMo^9_^PI8QP+Bj59ejYj4hC*Sji*Nx1lCf`$ok@+S`Z#5X1 zZ<_SMVPw8p(%X5G`RkMY*y-jY^DUD7sKLnm4at7gU}U~!vL75q=5I{)gTu)DP04<6 z7@5C0nGFsjb2Bm<97g75q>s04H8S5i>EmtNjLf%9`l!Lke7mHN8jQ@hPx|06GJi|* zCLBiQZ%y8W!^nJxWN$c(%y&%ohQr8wr(|z9jLdgVc8tTwe3xXOIE>79O=jaf$=r<0 z#;$i8nVXUCdBg4_^F5O9dBfXA=5J4WtHH>8&!mqUjLfGcy`3kS@16AahP_7S`y~5O zgOT|=lKrT`$b8>qKRArc-7xcC^Y6Z`%#0D`H9JXa2T1Nle=yk(4kPmqCHui)WPVCA8yrUFW@I)vjLgkQA8$K#Wd7l#kGFkfWPV!GM-4{i zA5HqG!N~k$Ngo_W<{wYqgu}@E^yE!AjLbig>sc*AE#=I18g^Rr3j=O^FuhVw?| zpG|tJ!N~lAq_-N3%r8v#gTu&tMzS9qM&=hK`@vykesQuN97g7sB>TZ(WPWL~9~?&J zpG#(g!^qr>%m#;%xf%JMH++6%ep&K8Z}`H<{PN^`YA`atBKe*gjLff0dgCxMzbfgC z!^r&VWS2OM%&$rIhQrAG+GIb@lgzJA_G72ljm&RI_M-+P^Ba@>sKLnmreroajLgl* zY;YKvo00E%!xu;9UrN5`4L6U>Z%w|Z1|#z?C*M&bp_7@5yZ_JhO7{2R%Ba2T0?GuaOgBlB-1yToB+eoHbl97g75r;oRN zdt`ol(#PBG7@6Oh^ihM6`CUmLH5i$HC+UO3$o#v>n{XJJe=m6x4kPpLCwp_AWd6fs zZ+88Ik@?-p-qc`ZeowMDH5i%So9qpTk@YD!N~mKqz?`w^GA|5;V?3PG~Y64kPm?lD*+D zGJi7J8xAA$A18amVPrll*)a|y^QV%T;V?2cJKyt$x%xLJnLjW2o;Ua-`!jFyJsd{n z&riOG!^r#vNpBoR<_jjhaTuAuFxijuB=Z+1`?1r7N9Ic=`%#0D`Ad@hsKLm5>101R zjLerw_JhO7JbQLFIE*=QGcp@o|9dubf4pmvv}jr^`EOlloZYXS+`C(GoZYXH+`C(I zoZWAk+`HRioZWAo+`HRmoZau6+`HRnoZTOo+`Bt!oZX+8+`F5eoZX+D+)qzuC1>{+ zB=_#lA7}SBCHL-b7-#plCHL-b9cTCVCim{{9%uItC-?3i9B21WC-?6Bd$Y59|0e6+ z-819te*PBX-ram7^A{#R!z{u_ULnW(`SQsbv+B5aw?T4tzxlX#w`p>AzuUNXw@Y$% zzt^~Tw`X#8f8@A#cX)DkfBd+2cWiQYf9AM%cSdq{f8MxvcTRG4f8DrucTIA3fAhF^ zcS~}1?{}y7@5B)`90x0$$atT@9h$4$&tDLM!zT2 zU}U~j@_PcKM&>U~eox>qGG8{C4Gtr7voaeTM&@SZXP7A?^W~DCVO};ee|a)LH5i${ zBAK5WjLer$=7+<`{FTZ4a2T1dkjxK5VS>rG=Uon|04kPoGlKDALGG8T`pB=0` zGJkb4KQ$PcubRw84MyfulG)%eGB+cAykWJG`Rd8{{A`l>TFLjkVU3abYm)D&!N~lz zX-ZOqk@?z5ZyZME>m>V`k}xt~H`xykBlGo={opV%Uq9Io4kPmolKtQ?GT$)S4-O;q zjgr~mFfunIyToB+zGl+L+cqAVzb@(HZBs|)n4kPp3lU?F4GT$bd84e?Jv(v}h z_86JJE$QQJZy%ZOneWwj~a~3_e%QUrj5+^PTqvW$b6sVO=>VQe@C)6=Sk-8 zO!j8i`;N@_OZKJ)BlG=}y{W;-{9Vc3a2T1tJDCj*BXct{8yrUFW~7g|9WXL~PtwQR z4jh>ul=M-9k@i5uWIt*!GXG$*A2k@6e<;}x z4kPnZlKtQ?GCwt$4Gtr7Gcp?-M&@SZd*1Njk@-iG?|H*%BlC|Y-&2E;`Nxv)slmwn z<4JEEM&_p{y>S?seCzckqo4kPo=CHui)Wd8YNHaLvT z&B$zU7@3=qJ~Pr~Bl9mLeZ1}Rk@*!#A2k@6Uzzk#gOT}FNgo_W=2s_g!eL~7P4Xrj zM&{Qhd&6O5eqFLR97g8XCp*SrWPU@kPaH<(Hzs>?o@9P=nvv}KrjfZBnT;BZ%+1L6 zyy2FS`4^Mk-teW7`K?JGH5i$HIr*ORB=fH%y}jYKk@;7X-fA#1|5~yiH5i$HJ=qTq zBlDTbesCC>eH5i$HH|c}J$ozZBn{XJJe?NH>4kPm)BzwbQWd6fs$2g44 z?@soK!^r%eWN*%s%ik2m~iWd2a{ zJwKad{z&pYZ+LiQ{%F!$4MygVCB4;PWd3-v9~?&JPbB-nVPyVfvL75q=08sMgTu&t zR-(tEA7Ygpv8LlQ-coGXG8TCLBiQzfE?G!^r%1$v$xyng2f7oAV^|KO}pz>!(NN ze@ynK1|#!7C9_e3k+~U}4Gtr7Gt$Q!{yZ}OOY%KGn`HjCOUh4-O;q|0VmuVPrnr z?9a^xhcPE^Ms|tA$o!d1A8(tzv&`p6`gq%%BlG7aeQ+3=&z1C1gOT~%Ngo_W=JO

FcyhmpA%`JOktXk@-{@;z_x@AooaH2IzyjLa8HzK6re{KZLc97g7gC%thPnJ7@5B$*$)mQ^QDsg;4m^@I@u2nBlDLg`@vykzD%-997g8;KMXU&VPtN0 zzUK|gj?AYd-}8p$M&>U|zNZEw^Oq;zQ-hKDE0W$gjLer$dgCxMe`T^C=Sk+TO7>%? zD~!xnO!lJ&BlDG#{iwmneC1?6IE>6!N%n)o$o$pGY;YKvn~~YzFfunIeY|bek@;## zA8%WIWWGkyM-4{iYbJfvU}U~l(g%l;`D>Cl;V?3PZSp1@M&@fLd&6O5zD}|?97g8r zCVRtSWWHXqHylRh>nA(LVPw8RvQHdF<{Kunah_yuM!x3_8;#62PQK?2uN#?9O}?iF zBlAs?-fA#1-!$oi!^nKIq_^`V^VcW)vD3{*=36BDQG=2B88ANFQ(8YGl53(#PAj8JTaJ^ihM6`F2SkH5i$1 zpY*|DWd4@qO*o9q-==iU`7X&maTuBJ zn#{&|lDQd~ja~0HGB+dN^M>6==6fXH^M<#L%-^2$R)dlGo=G1y7@1E?dOJ@t-#h8; z4SS8u_eu7n1|#!#B>Pc=k@>#KesCC>zcbkn4kPpZlKtQ?GT%Sh4-O;qcO|pIVPtMb zW`o1X+>G?`ws()r4@mlW+j~al2PS>gU}Sz!(nk$O=I>4V;4m^jIC&EeBlAO&H{mcc zKQ!4J4kPo!lD*+DGJjvPV;n~2hbQ~QVPt+pvNz{R=I>8tW7kKH%+1Jb)L>+8M!x3_ zM~%#nPI`O8F(dP1lRj!NGCwZ)p7SL04B*aL7@2<}*&7Zc^G_x_#$jZBMzT*F zM&_SN_U1gv{H$bec75i^{L{&7)L>+8MrNZ1BXcv-+Z)avnV*yN@rKWg%+F1}=Vz15 z&riPR4d;!_Kb!PcgOT|KNpCe6nO~Uf2ZxdQjATDJjLa`e_JhO7{NiLkIE>6MN%n)o z$o$e|KRArcKbOn~hmpA%nGFsjb2IWiZ}|Mk{IcYG-tdKy`Q^#?)L>+OMe;p07@1$0 z^u}RiepS*NhmrZ!$u4minO~Fa4Tq8WwaI>*Cz)TL?8i>88=2pb>_-ho<~Jt$QG=2B zP04I<7@3=q+2AlTHzVKkhA)oHzm$B>8*Uz%-<5RD`8SgN;4m`(X0jg~M&{p2c8SBt{FY>9 zIE>8AP9Jak_Q?G9q>s1VF*3h1>7xcC^ShEhYA`bYPSOX5k@<5RDdG_pVa2RvqW@I+F{`YL={&?3SY0I?nFzP43;@JX4P@;ZiD3Pe)DnfZqwxK zez$S&ZkOcjey?%wZqMZG{>X9f?(pR7{`hh4?%3q){>*Xj?u_K@{=9MT?wsW8{Up1MH8jQ@RB(uR`WNt?Kc*ANV^VO5@`Pn4%wUY07!x|&= z*CgLlgOT}b)0CtJBlESB-Z+fR*Gcv>C1GT~Zn7U7M&|1!`@vykzJ9VF97g6FB>TZ( zWWHgt9~?&J8zr;BVPtMbc8SBte9fefw{1K!e_hhY+oq1pH%a=a!N`2mq>mbm%r{H= z;4m`ZJb4oiBlFiMZ^B_@zD2T697g7ENcQGD$^4DU-t2nIk@=gFy{W;-{LRVU)L>-3 zRWchKM&@Q@HaLvTrzYR?hHXdY+a=%ghOI~D+b7>sgOT}LlJBX($o#EIZyZMEJEW-z zhmrY?$$oGcneUYBXKKR8eCM=j!eL~-OR^svM&`RF`@vykzFV>%97g85C%eR9WWG%@ zGaN?dW~Yz0?J+WcThhnd-aazlGwGuSBlBrVA2k@6@0IkyO&gi-oxBN$k@-H!o77-r z{*GjC&XdgFne5H3_Z^w z*&7Zc^TX4$gu}@Eh-7a#jLeTr_BJhHWd8nS$2g44k4k2S!^qt1e9s$>9+@ALe9s$> z9ho1Od`}HV=Eo=BQ-hKD2a?`6jLfGey>S?spOEawd6M}_$$sqg#F6>Q$$r#eWd6Zq zKWZ>C|4_0Y97g7+B>TZ(WPWNg8yrUFW@I)vjLgl*_q^f5BlC|W-}8pkM&=()zNZEw z^N%IpQ-hKD$CKVTjLc6@dgCxM|3tDM97g7!O!kAr$o!0CKRArcKb7nUhmrZ2X?nt8 zWPVn%HylRhpH61uJjvXQ%*Ia79+{hw?|H*HBlFKB-}8oZN9N}xz13i3etyzN4Mygl zO?o>|GQTkC?F|=<%x5I~QG=2BMah2D%ov$poa_gOk@+Rbe$-%Oerd8F97g7!OZJ1q z$o%ukY;YKvn~~YzFfunIeP*P~M&@5g`gq&rBl9bgK58&BzcT5g1|##Ul0G<$%&$(~ zgu}@En&eG5jLff1_J+gA{JLasIE>7%Pj-yM$oz(6pE!)nZ%p>)Jjwj#G$YydO(SzN zG8;7*nVXUCdBZIu^Did7z2QqE^IMZXYA`bYa`HXrN#h<{opV%|3_{E_5)-th3q{L!Sh8jQ>zOM0up$o%nSKRArcpGfwD!^r%}WIs5J z%zvEh2ZxdQtYkkpjLe@(_Jf->GXF_38yrUFW@I*MFfunIeZ1|bBlDjneZ1}GBlBOR zSxF5>=D$q(sKLnmS4p2)2_y4gCvU=GWd57vO*o9qf1B(Whmra3l6~SZGXH(DH|I&_ ze@OOb*H4ek|CsDe4MygFN@k-5BXct{8yrUFW~7fd{CQ;lm*jhXHp%>N$@jeBuOsun zC*Mu-sDX5} zPkQ4pGG8Lu4-O;qC6oQ&FfxBhvL75q=1V2}!C_>+bg~~DM&>U~_JhO7e3@jIIE>8w ze;8(l!^qt1e9s$}9hpx_zUK|gjm%$`d`}HV<}Xjarv@YQS0uf07@04h^u}Ri{>o%O z&XdevmF&k(R~VVEnCwRlM&>Ie`%#0D`O3+Da2T1dlI#bEk@>5W+2AlTHzTvbVPtMb z`gq%_BlFdgKHj$a$b5~Yj~a~3*G&4T!N`2Aqz?`w^VcMA!eM0o+T=|*jLg?g_J+gA ze4S)(IE>8KP412hmrYaNpI&#=C4ooW2c*s%(qDPqXr}MHzfN}gOT}` z$$oGcnZGgF4-O;qHzoVQVPyX1WHvaA%+1Jba2T1Jkv`tG)yRD7q>s04Gcw;c>7xcC z^X-y8YA`b2KIwzQ$owtIn{XJJzcqOi4kPm&lD*+DGT$-T8xAA$oszxbFf!jc*)a|y z^IejC;xIDbHJOd`By%$|8@t|ZWNt>j=MB4$%=bvX=M8TgnZG^htp+3WJ(E6aFfyN( z^md+PzIW2w8}=HR@009D4MyhgNcN)!BlCTe{opV%e`m5E97g8*CHui)WWIm09~?&J z?@DHa!^qr>%m#;%xf$u>ZSNkLACUC%w)c$84@~-~!N~leq>mbm%-@^z!C_>6aPlS` zM&^ekZ^B_@erU2c97g7cC40kRWd6Qn$2g444^Q@q!^r%IWN*%s%-^5P#;%VXnVXT> zsKLnGjC{`_-ho z<|iim!C_>6QnDW$M&>6c`@vyk{=sBFIE>6clCZ%1|##2C4F!hnSVTa6AmNu(~~#hFf#u{vNs$?=ATS< zjKj$MjAWlUjLbik?9F+S`B}-{?E1`+`KOcFsKLnGjLb$2M&@Ruw>O+UGCwEj;|-q~ znV*|{&(9{ApPzis8_pYUl@1|#zelHO`CGQTj{4-O;q8OeTd7@1#`><5RD`Nhe8 za2T0ilI#bEk@=;`esCC>e=eB~4kL3jG8-I5=4Rx3-thU6`DMxXyx|KY^UIU(slmwn zisXB0FfzX~>5aq4{Hmlk4kPoclU?F4GQTF-8xAA$Ym@yrPcpwg*^ixGH!{B=*^e5G z%x_HgqXr}Mo08e!FfunIv%z6xZbrW64PP9Ye<}H%H{3ijzcu-u8jQ@poP19WM&`FA zy>S?se=K8O`7O!Ja2T1Joj%_7?UDKINgr>!V`P43(nk$O=65B1)L>-(oum&ABlGVjZ^B_@ z{=MW)IE>7{pX|+flKBslz1j5-M&@@XdsBmv`8~+OZ?ZQWM&|b=v%z6xZboK< z!^qr>^zpX)N9GSCeZ1|#k@=63K58&Be<7nNcM)q$o$D_-ho<}XS1qXr}MrIY>OFfv~z*$)mQ^X%E#;4tRI&B$zU{qNb#{qe3v(xPdxa&~`qaz8ztm7LvQkledFf1KUll-#?!VVvFHmfX9$b)4Pbo7}s*dz{@roZP#6 zaGc#go!qe1W7l4kL4a$Nc`lVPyWI5~)L>-(ie!FjFfw00nI8@#^H(PG!(n8;LNY%bM&_?dW{tzhe8pt0 zIE>6!O6KQ0$$XV$es-|($o$pG{M2A%zG^ZXH5i#sNoIq?$lQ$d@rKn#=Bp>)^Rr3j zYbD?FhBZd!uSveA1|##=rYT7cM&@fLy>S?suaoR&O2Wu|-DE#FjLg?d_JhO7eEnoU zIE>6UNcMxn$b7?OKRArcH%exM!^qr>>=K8O`I<=|Z`*ie{<@@(w@n?HZ<6#;gOT~B zNgp*BnQxZ#!C_>+dGaP4M&_?i-h{)*e2ZkCIE>8SknGKQlKC5xz1j7aBl9;UdsBmv z`J0oyslmv6t7JAfjLgl*Y;YKvPffn(4cm^)w@bd~4O@@Qw@<#O1|##gB;Qkmk@;Jb z-Z+fRcSutc4kPm&ll|Z@GT$lL&(wsG`Oaz6gu}>umt;RUjLdgU_JhO7e79sjIE>79 zPj-pJ$b6e*W;l$@%}yV0+hb(@wxo}@y?tc9XVOOvM&{F!K58&B-z({Zn>I4vJ9!fh zBlCTdH>ttM{2j^OoF|#TGufM6?>jQzFWH+KjLi2>_NE3S^LHhC!(n9p?qoJNjLgl* zY;YKvn~^@=cEHH|JxL#LJ8)!vP|`;YM&|EL`l!Lk{NSVy4kPnJk~iTnGCwqV6AmNu z!;-z>FfxB%vNs$?=7*}^`Y$o&1uj&T^7AC=4uhmpD2`JOi% zJu*Kg`JOi%J2F2m`JNh#%#TmLrv@YQ46sN%n)o$o$k~HaLvT&B$zU7@3=q?|H+AN9G?%zUK|6 zjm$rqd`}HV<{wMGrv@YQk0-rx7@41*^u}Ri{)uEiIE>6cnd}FLk@*?PesCC>e=6Az z4kPn3)AWSH$o#BiZ#az1Kb_3Rd6KyqnT?&EJu){V-}8oZM&_SMzUK|+j?B+XdaJ?6 z{QRVk8jQ?8oAh>`WPV}N+Z!$zna@b}qXr}Mi<14QnK3fIIN1*lBlAm={iwmn{L*AU zIE>6cm+S|Jk@@G7+2AlTHzTvbVPtMb`pig|jm*E0^zpXKN9I=~ebiuNer3`}4Myfy zC4F!hnO~i}35SvSHOZTB7@1$2>w&)L>-(<>Y(Llgz)8^!A3^M&@5l zdaJ?6{A-(^<+OdjLc^y`@vyk{*7cmxS1pKZzlV}VPyWTWIt*!GXHim8yrUF zW@I)vjLgkwX7aY%N9K1VeZ1|?k@;OopP30G^Y0{m)L>-(-J}l=BlGViZ^B_@{{7@l zIE>7Hkn9bIk@*jk9pf-EzdP9{4kPn>lD#=kGQTg`n_b^KGQU5WjT(&1&B$!jU}SDa zdV9kIBl8E7KHl)7k@-W(_xx;<`6J2qyy4-I`J+j1H5i#cmh@JGk@@4vesCC>KauPQ zhmrY{$$oGcng2N14-O;qS;>BI7@0qn><2e%Wd4(6HaLvT&B$!jU}SDa`gq$uAd&6|1sH{8jQ^Ul*~pAM&@Q@HaLvT%}5__`18p8FUj}(Y?Ark zlJ9xLUq|MDPrj!HBlCYGz13i3{?DX04kPn_CHui)Wd84DKRArc|C8(ohmrYzll|Z@ zGXKA1KRArc|Cj6shmrYgvp+W*9LAiu8QCQcBlBl6eY|b<&N81P>Ems4j?ABz^ub|d zK3CF54Myg3Cw*`jna`8F35SvSyvdtz7@7NbaQnnzWd8hQZ_bm101RjLct}><5RD z`7+5aaTuBV|1iu9hmpD2`JOi{J2Ib=e9s$}8=1c>`JNh#%wL{-PYp)quSk01Ffw00 z>5aq4{FTXmoF|#TD%p>nt}rrRG1-qAjLcU`_M-+P^OckR;4m^@CD{)SBlA}$v%z6x zZboK^zpV;N9L;~eY|b;k@*@)A2k@6ubK2wgOT}KNgo_W=C4WKgu}@EwaJ@s z7@4n~>44kPo;lHSgf%wM1E$4)mNnQxKoM-4{i zZ%Fo|1|#z=ll|Z@GJj*T9~?&JZ%X!q!^r&2$!u^KnVXT>;4m^bBYnJWtC9KENgr?9 zW@Nr?(nk$O=G!HG)L>-3ebNVqk@;JaH{mcce{1q497g6lBzwbQWWHmvHylRhJ0*L= zVPw8@vSS=Z=DQ^O#9?HN#(+$lQ#4&l`3hneUN&&l}!0GJkv0TMb6$ zdnSFFqqpeD9>UH|#Ys-zV9R8jQ@}k?cneM&|n_`@vyk{?24SIE>8qOZJ1q z$bA1~KRArc-<8Y;hmpA%nGFsjb2HM%+ul7gKOpJjZSNVGADHw}gOT|`Ngp*BnZGyb zgTu)D;N(p>jLZ*7-h{)*{Lo}?IE>5>OZJAt$ozfDj&T^7AD-+JhmrXa$=;kNnZG}o zja?r(GB+c$QG=1W8TpBlFXeK58&B|7g-j4Myf4OZwn2GXHq;CLBiQrzda1VPyV^ zWN$c(%s-jz7>AMh8Oc6z7@2=6*_-nu^Rtq@+4Y$t^G_$UQG=1W8JUe5jLgkQZ*Mqz zWPVQ4#~VH~GCw!@o}W!JKR@}NH=H*z|7_A*4Mye{B)!#OWPV|?9~?&JGm`z_FfzX= z*$)mQ^NW-H;4m`3B-sxRBlAm>{opV%|6DQ~97g75WHvaA%+1L6yy5dB^UIR&dBYb* z=9eemQ-hKD70LJ1U}Sz}(i?}7`Bh1897g6>C%eR9WPVMuHylRh*CzXMo@9P~vL8FW zZe)H#vL7`VnctY~M-4{iHzl*dVPtMbW`o1X+>CtB8@@O)|5EZjZ@776erxhQH5i$H zIr*L%jLdIKdgCxM|4PyuhmrYLll|Z@GXGk#9~?&JUr+Xf!^nJQvL75q=HE#6gTu)D zo5_A~7@2=7*(DAm^IMXc;V?2cJAJ(E+avSalRn;d$H@H7q>mbm%FcyhmpA%>EmtpkIWxP`gq%eBl906ebiuN{!r3K4Mye=KrAh~yU{y4k8DYo~i=H@SCr z_c*(MIJtNC;5fT~I=Oe}-R8Y;YKvo0Zw% zFfunIKf_EJnJ<_84D+&)`OA~}slmwn70LY6U}V00GCv$f=C4fVhr`Hxg=Bs>jLct^ z%o>N0`HIP0aTuAel+4e0lKCph{On-mk@>5W`KiIkeAQ$&YA`aNlFSB&k+~V^;|;5g z%vVpo=Vz15*Gj(U4Qq_dUz2=K4Myg#O;eH@jLg?gdgCxMUnkkml!TG_y2*ZU7@4n^ z><5RD`TEIza2T0ykn9JCk@<$nesCC>Z^E|7@3=q+2AlTpPGEn8@3&pZS?s?~tY@97g6lCi}r*WWH0fpQ#BW^PSVC35SvSF3Emy7@6;y><5RD z`EJR6a2T2Ip6n8bk@+^s%y1Z)o1H%1w#Uf)ZAl+*d;7?I&!mqUjLfGcebiuNzE{!* zH*I9Tck(72M&|n@Z&HJi`8$%mIZrZwXR`e_u=I=`OhQrAG z-N|fl7@3=q+2AlTHzR$#?SPT_dy+ohcHqeTprnr)jLhGg^ihM6`N2sa97g7cByYlD zWPWJ!CLBiQhb4Q%VPyWkWN$c(%nwh~5)LEtBa*%0Ffu)k@@?R9pf-EKPs6S z4kL53^F41kdSre~@;z@jc4U5B@;x;enIE5gPYp)qA4q!RFfyN>^u}RienPSz=Sk)# zCHt|{6G!GJC;L%@k@*Lc{iwmn{6oopa2T1NlI#bEk@=~~Y;YKvn~~YzFfunI-}8nK zkIX-ke9s$B8<~GJ`JNh#%s-ZVPYp)qA5VJYFfu5aq4{1eH3a2T0?GT9FfBl9zo z{opV%|5UOc97g76rs)ZXk@;E4-f$S1e>$0s^CWXKG8;QRdt`1#zUK|+jLbiie9s%s z9hsk(^j3qB`T0p7H5i$HHtFp=$^62kw>MlcGM|y`M-4{i7bW{qGh<|aak3vAM&_3! z`%#0D`K8Hza2T0?F4+$bBlFKEv%z6xZboK^qG+^8<~G0>EmsekIb(~`l!Lk z{K}+{8jQ@ZO8Ve1GQT=`6AmNuYmztNFfzY3*&7Zc^Xrnm;V?44KG`u2Bl8=Qec~`O zzcJaH^Ca_|(~M--H;v5A$ZXVLWNt>j=MA@v%)glQ_J%Kw%x_KlsKLnm%gOhgCz*dG z>Fo`-jm*EA^j3qB`PY*DsKLnm>&bp_7@5yZ_JhO7{2R%Ba5G2d-%R#{!^r$w$$r#e zWd7}BHaLvT&B$zU7@3>V%;asikIe5#`gq%&BlEkGJ~I|0mfG z4kPpbCi}r*Wd482esCC>|1a4O4kPo~W`AxrIE*=QGqOt@M&{3C`gq&yon<~p(#PB8 z9GO2a>4U?_e6FOA8jQ^6PWs?5GM^`T6AmNud6PHcFf#Y=;P#2b$o%=q-kc|yzaZJ0 zUHi9lnJ8A$oIVAMI-Ztlka(hf4`UcqRIEv zU}U~n@;w|z<}Xfq<1jK`Jn42ZxdQ(#d{s z7@5B`*$)mQ^JS7<;xIDz|6!OJ4kL53^F41^c4R&!`JOi{H!^=&@;x;enZG>wo*InI zUy=02VPw91(i?}7`74wCI8QQvRk9yDU14OtVzM7K7@4n>>_-ho<|`-r!C_>+O0pju zM&_?hW`o1X+>FcyhmpA%>Emsyj?7m}`gq&wBl9(qK58&BUo+{W1|##el0G<$%wLnd z35SvSYm+zOFfv~|*&7Zc^L3KF;V?2^H`yBwBlGo=z2Pu2Uq9I~4kPmol6~SZGT$(n zjq@aPGx9xe*l1+Faq>NHc-_c+YVtib7@2R9^j3qB`KC!997g7wCB2;|nZG{SkDYEl zGT$QEj~a~3-;nG_4Myf$Ci}r*Wd6ovKRArc-<0eJhmrZ4liA=fGB+c$!C_=>M*4W$ zRwMJRlRnmbm%(qMWsKLm5`=k#JBlEW;Z^B_@{?_D8IE>79NcM)q$b83S zZ#az1cS`n#!^nK+WXCv+%y&uliNnZz*JL)%lg!P?Z0vfsk+~W9o;U11GT$Tlo;SR0 zWd8P~w;GJh_e}bz!N`1C(%X5G`QAxyZ`f;OzE83rH5i${BiWA{jLi2<_JhO7{GG{u za2T2Im+S|Jk@^0~esCC>zblyy4kL3jG8-I5=4Paix4nC0en8U4+uk!WKQQT|1|#!> zl0IrMGJkK<2ZxdQ!O5F&7?~fEya|Vq`Ju_)a2S~%mh26Ok@@?Q9pf-EKRnqd4kPm; zlD#=kGJk(E8@oPoWNt=gqXr{$Gx9xeIBH~mbkf@!jv1LBoAgnGk@<1S_nar0e<11Y z4abknrzgGDU}SzmvL7`VnV*>K2ZxdQNy&b27@41(><5RD`3IBz;4m`(P_iE!M&_p^ zv%z6xZboK^zpV+N9G?+`gq$%M&_p_ebiuN{?Vk58jQ?8mh{14Wd8BwO*o9q zPfy;2!^r#-$=+}nnSV0bF%Bd1Gm?GcFf#vCvNz{R=4T~)v+FZQ=ATYxqXr{$Gcp@B z7@3=q-rjKb$o!n7k2ic~WPWb)JwKadetz;jZ#Zvc{@J9r8jQ>@NP4Tm$o#@&KRArc zXC(W6NwOatM&_3$`@vyk{<&l}IE>8A$ZT*JnVXUCdBf*N z=9eYk^M)^s%r8&Arv@YQE0XW2!N~l|q&E&D^Q)5HIE>7%PIigI$o!gQZ#az1uTA#j zJjwj}WIuL#-N^igWIt*!GQTnXKYMrLzwKAe3;ahJQ%EzCN=c?)ilXPfnvJEXBvXk* zWmX#GS0O`4noLQNDH)n1&wc-zm6B)_isNuNbf$7l=QyAD`mXgn+xZ)==k=`DTKE2b z_HeJgueJAm?a#F@{UZ+yn|^+TZ{T3qG#~K|91NT0Bjstsi`u4tJEA;octP9rizCXD z2Zl}mPDFX~z_96;MAQuj!=`^XqHZ`CHhn&#f8b!)^f97;;9%JFDWZSiVA%BK5&Z)P z!=_&v(LZo7Z2Dyp{R0QXre7Y>mvAs_`h^ibgM(qye5W35dqvyyD`!LVsQQjfO%aohBpBI?n$H@8i{ zC88dAVA%9qBkGX{hE2aMq8>OHHvRU9Ho?KL=|72R6C4bien&*V!NIWUKaJ=&I2bnl zXA%7d2g9cSJfh#=VA%9KBl-;vhE2aKqL1NV*z{jS_zVt)P4k`dwBh}7&xuW6F`_(e z@Q>}^2S$_!2g9a6IHEi_7&iSO5p~1Cu<5Hr)C~v2ravsAe|#RBzD7j<=+mpVOE-)7OdUA9-Nd^hZVX4;&1ezHUVSz`?NTsPYXQ3_sC)#5ZvHUpDQZc6~(TYLTl) zeAf@{&(d!ikuL2f{aN~@5$V!y)}N(+PDHx2JN0MjcaBJxc9;Gv{c9uArQNSTOMh@g zy0nM&XX%fLNSAh5#AoSGjYz*N^5lrm(w`oYF72oLv-Iajq)Yp){w)0^5$V!i+@Gbt zF(O^s8~U^Kw?(8&dvkx5{_co$Y3?`sEZsd>>C)cYpQT?Z9U@)Y2enOqSj698K7wxh z#?kQp{&5kXVLrLjrF~Y!XX$t7bZNJX_$>Y2oi6QO5uc^sx6`G4Rm5lM5AAem-x2Xy z`lC8s+9M-AOMgC&DS@mczBbh@&&2{Xv^s7eTrClZ3znGW2Z&_#h3bDlr*UkI4O@BZ{obV5ZO@B~CoR9~GODF!HeJ zkB*2Fa4>B8VILppFA*Z z`r{(}2M5EZZxrD_I2bm4;|Tx3!LaF%kMK1d44b}5gkRxc*z_kv_|NCD=}(OCpFX&0 z+w>++y$B4OzGX!Jz`?NTTSfE_91NTO%!vMhgJIL3 z712L%Fl_qP5&Z)P!=}$g_y!J!P4khygo9zzH;br8+YW8hTSPtDcAK{8+eXwQ4-A{W zT|_L(Iz+;Hhss4Ho?KL={rUACmal${_Kc;^LcFgb0hjqUw=;9 z^yfwNn>;XV`tu|DO&%CF{RI)efrDYwe8e|!Fl_oZ5#?#a7q(5`HKIIixO3a|-6G19 z2Zl|5QABz2z_95rj;I?BhE3l+a+?So44b}3ME}6Su<3h7^v`V~Fl_ouBDagc!LaFj zMf49G44eMai2i|tVbk}H=pQ&3HvMH0eF+D{rtcErGdLJF&3Ee2wl8m+{)&itwCyX~ zroSqp9(iEc^nD`gkq3rN-#4NjxcjtCe|1Eg;9%JF{UX{V4-A|Bnuvb$d2IUr5&fpG zzqW1q>mvG19vC+LfQWvR2Zl|5eMG;(!LaFXi0};@44dX7zJY^b(|n{JZF^wb^n)Vm z(Y6P-O@CuVJ@UY?>2HdtM;;h9{ml{ez`?NTZ;5CV91NTO)`&L2!LaFXi|98v7&iUw z5&Z@S!=}F@a-Rqs44ZyPM8Cnou<3_J^xJ(RFl_oeBl;K)hD|>#!e?+WY?|+srwtEp zn|?$@dD`&Ew(0MRC{G?3HvOoG^5lVG)88FYHyjL`zAU0{I2bnl=!pLDd2ITz5&ff2 zAJaDdJrVsQ4-A|B-iZE@2Zl|5Uqt`F!LaGaMf49G44eM`2;acLuxUQx8#ov?%}2`9 zh978~{=taywBd)^rXL?so;)yY`iCRRlLv-P|42mLa4>B8M5z#;L zz_96`i|8MDp3ye_%!vMhgJILpis&DCVA%A}NAwRI44eLii2i|tVbjl!@C_Uco8}|F zfrDYwe59UdM1HYt`j;Z=(Y9Z1oBoxEdgOs&)4v)~k32AJ`Z*Exz`?NTUyEoH91NR& zZbX~lVA%ApNAw#U44eLqh<<~EVbi}E(Z_HwZ2Gq%`V$U@O+PQ9-+UgMenI3J5qdB2 zFl_oA5p~N0!>0cup8z`?L-KH?jBVAwPtsYl!XQ`_`kMbx8h|G91YuOsh@$OFTs|0bdyd0^P| ze~GB)T@e^I{kIWqf`ehxe;3gvI2bnlUnBY$4u(zteMEo4!LaFni0C(;$EN>VM8E0l zcehRd_lSOz2Zl}mj|kt$1H-2Ih;QIv*fbxhM;rcU+w}j6D9_)mQ_sM5A{k{?PXxkOqrmq-L z4;&1ee!qx%W`0%#rt45Tk4esBw z>8nMQCl3spzIsG?a4>B88WDBF!LaFTM$`=l!=|ql(LZo7Z2H;}{R0QXrmqvxKX5Q? z`XeLy2M&f!e^f;Oz`?NTkB;acI2bm4-H5(~gJIM5F!&4(hE4OG^0eV&+NQ4;QJyw@ zY}@qpBg&HphE3lfqC9zE*z^q}>V|`1(;pX6HyjL`zEMQ~_&hfK@e%!_PjB2deUpg( zkq3rNe?mn6$OFTsZyM1*a4>B86C?Tu4u(yCQiN~dVAwPt@eLddo8}|+Xxk^ZO@B&6 zJ=*rEZPS-V)FTfJo4#2@J@UY?=}(KO2M&f!-#nsCa4>B877=ZNgJIL39?@@bFl_oW zBKi#uhE3lxqTk?P*z~O;`V9_-O@C%YAH%`0>CcMjPdFGhed`F{_&hevN6OQNb8XXy zi1M^yYn#4JM0xVSu<6@I)GZGTo4#E{J#a8=`t}iZ`#d&%$B6#Xr*~+ZzEed1$OFTs zKRcp-B8b0hi(4u(yCUPS-E!LaGikMIo~44dX7zJY^b(|n{JZTo_@ z={rZ%qiuI-oBqOxdgOs&(|3)iM;;h9eYc2u;9%JF7e%xQ4u(yCaYUQoVA%BCBl-;v zhE3liqTk?P*z`Rk`V9_-O@B#5AH%`0>3c==Cmal${?Z8F_&hevM|`8N@7*@dN6OQN zFKe6r@`&=Z;VasvzcQk3d0^P|S4Gq#4-A{WPek25k4=AdMBUnO-?r)dMf8t6Fl_p3 zBKk)j7&iU25&Z)P!=~>a(LZo7Z2IdW`Ueh%O+O%_f8b!)^w&rD1`dWz^AX>`!LVsQ zQjfNML)-KNBkIw%2enNB8J0kiM4u(xXB%0L2dD`%>w&{mQ)U6GVXq$dyL_PAru<7rLD9`7y>Fa4>B8dm{P=4u(yCZ$$sV!LaG?i|8LX7&iU52;acLuxUQx z8#ov?%}46dw(oD7{(*>kwCxAmrhh1+9(iEc^y4Gykq3rN|8PV-a4>B8M5&Z@S!=`^MqL1NV*z^-4`V$U@P5*dAzxg~i{p5&#)7MXGn|?}!Z{&et z(|p7?^1!fZK2o`!LVsQQl2(EyKVXxBg)f;Uuv8F<%sg+fnn3X5>cK!Fl_o)BkG2OVbjlv zs2dK3P5)X%U&6t#>E}lD8ypOq{`H9d@p)|eHzWE-pZ-SM^lwGB8g%Li3gJIKrrygy4Mcec%BkIw%SG7&QI-(wVVA%BUMbsk?44ZyUL_KgY zZ2GkkZGwYg)4w0lCO8;2{kn*L^LcFg4`VA5NCJzjo{=e040w@tq#q8@o**z{W?>X8SAO}{Oo z9yk~_{q~49!NIWUKZ$4)91NR&M?}BD!LaE+jp#Qx7&iT95&Z@S!>0c{qTk?P*z`Li z`V9_-O}{ImkKth0^j}2y3=W1(^PTdv;r(*YiA`TIqC9QzkL}+FMwAB!!=^ttqC7Yl zHvJ(Hb;H51>8nK44F|)fKP;kud>)&=MnwPU)2p^kUpu0IC$f2pQV3JM7p#)^=IjKj!2hwm;NmMYa`O7-LF4Oe{e*)w1@R)>5qv>mv&jiXX#Ik zNWU!dC#@@pQXPsB3;@W`m^-6MWjo6bAOip z?uc}0?l=1^-91_9(%##jrC%u>B3;@CwM~Cm#NS{(f^Pf9(eVEMaS@+kKDpDSeOAP0 z>38UKX}62`EdAb{F6~|spQYco)1`e?#AoRb?R0715%F32qdHyMBO^Xbe^RGQdt$_A z=|9!!(w-LaS^95uy0qs;e3t%#PM7w=h|ki+P=1gme)uf?&7CgIb?meBt483ZT_xJT zn3ue7S!enRvBe43&HJ}ae?UZ>@DGMfe^5l6kOziMUnwF^z`?NTD@W7~2g9aaW8w!K z44eM&h&bW%*z`3cuG?!xuH826JBkzXz_96$jEEC3^04WTj))U*Fl_o`B76e}!>0L) zZ{T3qG#~jJ%=Ox)KQ`iTFxPLJzCncl-#su<4JF@HHF^o4!eeU*TZb^e064&*!n}PmJ)NKDcSy^e095PaYUH{mBu&kq3rN zUoXNpa4>9|kJO_LpVBt{sS)M*+t~D{MUOE24sFw0L_OMeo3`oOM${t@44b}PL_PAru<6@J)B^{@rtc8Z zCO8;2eaDD4!NIWUJ4N&-91NTO?1+Bzd2IS~Bl=BWe@@%<=SB3JJTPqf^CS9A9vC+L z1rff1gJIKr#5Zs-Z2C44ep>3c@>&ut{(*yG)Ax?( zA2=8`{bdn-2?xWb?-JoNI2bm~ck0o$FK?Uviimo&?JL`+zbc|0d0^P|eIn|S2Zl}G zH=-W6`?O7ebwr!sVA%BiBHAPm44eL%h<@{VZ2JBY{id(Kwr%?BBKl1p7&iTYh<=j? zhE0EcM8Cnou<37z@C_Uco8}|FfrDYwe54+2dtlr2gCgqDwgF^1!g^Z;Gf# z9vC+L%@Os$!LaFXiD(lX44eMeh&I8&u<37$=r=eRHvR1p{RRiaroSU{p9mZbn|??{ zzrn$<>4!%2+kGN1Z2CJR`WOy|O+PHcXK*lVn(vgS4G(Xdendoh+VIG>>FDD*5&a_%44eMmi2jiW zhE0E8ME}6Su<6G|^bZ^ioBsX?-@w7JX+Gi`I2bm~N6OQNA84EY!HDv-;fLC$A0JVk zJTPqfha<|92Zl}mNJQOmFl_oqBkG2OVbf2D=pQ&3HvMA}{R0QXrk@zmKX5Q?`o|;s z2M&f!KPhrq1P+ExKRKe`;9%JFQzCrh^Vl>W@r^!xYTGm)DNh@o);9eU5#?#aPqt0} zR7BnKz_96`j;Kc-7&iSg5q0}KHvO{^b!)@Z+oqop(LeIQu<4(R=pT8W(Kh|ei2i|t zVbjlw=pT7t*!0gw^bZ^ioBoA}{(*yG)6b6Z4IB)c<|Dp=gJIKrq@HI)ez9%(mm=!X zwqI_W{*{P&)&ALF5?`ef|8lX+Gi`d0^NyA1O~8Uf4GM zqKLY+;kVnSUmQ`7JTPqfcOuI3d2IT3BkIi)5`t=e0 z1_#5Y{~)4|;b7SG8zTA>4u(ztVMM?AJU0DD5&fpG-`F<&#}U4f2Zl}a5#PuI!>0L2 z-P-V`w&^!V)T0e=X`6m)M0x%;HvRU9^0eV?ZPR}eQMWuWZ2BD$b;|?8rvEgef8b!) z^q)oa4;&1e{_}|bfrDYw?~LdlI2bnlu897DgJIKu5z#+z?`oU=%Lw1V!LVsQ;v0Ej z*fbxhN8A2W+w@;W)T3?xxo!HdBkzjH1H-2OCZZmBVA%A3iKypY5g0c8w-IfEgJIKu z7ttm-7&iT1Bl;K)hE4x{M1R7;u<3t@=r^CorvF<+zv=6Dw@v@|h<=j?hE4yE2;ay9 z!>0L&Z{T3qG#{x)8~$h8^#6(|&)>$T|1qLGZFo=H^#6`1PaYUH{ZA2f%LBuv|2d*= zI2bnlFA@C%2g9cSHKKpuVA%A(Mf49G44eKx5&Z)P!>0dlME}6Su<3t~=pQ&3Hhsza zocRV0hM#CY(wA^BZ2G-X>e06M$!9kGz7h3k+ZEcTuNYAe91NR&zleI|fnn3{A5jk+ z44eLdh&I8&u;~wsXcHU^n|2>uf5O4A=?{+RH=oC*KO~~x^tF5EZ2HO({U#3#o4!g! zzrn$<=?{(Y4IB)c<|Dp=gJIKrq&#i-@V4ozMwF)w?%%WNt3{M24-A{WdPI3}Fl_o7 z5p~1Cu<2_?)C~v2rmq#zKX5Q?`q~lw0|&#VuM^Qfa4>B8BP03;4u(yCR7C&4!LaF% zj_4ma7&d*~h`xk_Vbk_7_zVt)P4k`dwBcjgrmq)Ko;G}J+w}D#%996%P2V7*Jb7T) z^bI5GhJ#_#9~V(K91NSjQAGdvJU0FD5&ff2Z`?M0lZgJ22Zl|5LPY<_1H-0o8qq&+ zFl_o0Bl-sphE0D`gm2(r*fbyU4IB)c<|FlJ+b6e8e@a9>+V-h!)0alnBM%IlzF9;) z^1!g^Pm8Dr4u(zNJfcl-Fl_o35p9BlVbh-;(Qj}tZ2B`I`V9_-P2V!2-{4@_^sOTL z4GxA)e`Z7j>ZYJT}co%F~8(ZPSN{^0Z-Vo4!p%dGf%p>Dxxs zEe{NvzFkB;a4>B8_7QdaJT`sDi2l*1cW9fwQ$+vB1H-02JEDK&fnn316VX3#Fl_pB zBl-sphE0E7ME}6Su<6f_@C_Uco8}|FfrDYwe54+2`+~OVJ4e)`ZFgy#{=$fQNGNNvI zVA%9mMbsk?44b}BMBP4*O@DPn-P&;9w(0vt^p89+Z2D^=`bQoZHvP2`{R0QXrtcro zKX5Q?`s*V42M&f!KOmxi;9%JF*GKpU4u(zh5#PYUuxUP0kG6e7+w=n?>e03bwM{=b zq8@o**z`9>)FTfJoBpPVdf;H#^fyPe2@Zx$e@jH0;9%JFw?_0E91NTOwupX%gJIL( z9?{2eFl_oeBKi{!hD|>tqThTToBqxS-{|XywoUU9-^c^Qruj&D+VHTp>4!(utqqT8 zn|@?OJ@UY?>F- zFl_pJBKijohE0EOME}6Su<7rM=pQ&3HvPB=-@w7JX+Gi`I2bm~N9xhG?{Ay_frxsv z?FZYYe<-3Jd0^P|<0I;k2Zl}ma6~V|`1)6a>h8xDp||5`*}!ojfV=SK7! z91NTO^@#rQd2ISOBl<_5{zlvMZ$6b**4F|)fe>b9TI2bm4KB9l%VA%9A zqJQ9E*z_r)f8b!)^yLx#0|&#VUmDRra4>B8WfA=Y2g9ac9?_R@Fl_pT5k7;1Vbgr4 z9&LL?+w?0V>e04WwN1Y|q8@o**!1s3)FTfJn|@71J#a8=`n3^lf`ehxzaP;iI2bnl zx`=-Bd2IR*BKl2VzrJny4H5k&4-A|B!-#&92Zl|*F{0n#VA%8@Mfe5|hE4Mk-@w7J zX+Bbqw*7J2^qV5;(Y80YO}{0g9(iEc^jjn9kq3rNzb&F3I2bnl_J}sY!LaE+iD(lX z44ZyOM8Cnou<1XI=r=eRHvMN2{RRiarvE&m-{4@_^gAQ^4GxA)zbm4T;b7SGUqtu} z4u(zho$|Ed{c_KVOKME~g1tF}#FJEDK&fnn3viRd4BVA%9WMf49G44b}gME}6Su<5As4IB(V z(R{==aQR<0J^ya`j=OJfxz$xRpKtPhx7f%lZg=Iw<9_hcvhRDH8y(*B^1EKZz$VXW z!JiiV=}G_kXXk$GQCGTvx&LDyv_13PFF(BH3Aa4l;Ge#(YSZ>M|x&C|}^_NJGY zE&cvid&KsfSAO>4neV>+;d!@xNZHb*UFGVJIKBR_KJuKuv889_Qf=?Qmo0Vqd>Ihj zl6P>@tDLU)xYT=G+E(~(bJ_j9j?4Etrk+dMKilGm!ndDKi$71_{K79i-0l8X;H&NG zkN?5Lm!G?F`TX^N`^>|){^A|@{IsN>mh^4OdwTR0UvRkXWA0tP{XhSB^@GoR%ddRS z7ru+O^4t17mh^4GAD42rrTnA5H6D~X-_`f_eSNo-U*Em$(}F*0v+uxnzPIm~wj6)` z1D~F>zd!H;{mcLQsrB8Tb%WO&ZvEJ6lus7>v|zR+?`bLXu+()@2I0>%RevaRwd?PV z+0;dhbA3YiOkWVbb$t+iF#ZYO&Naj*OL}1&e_YC`vb+4_Qt!rpe9E7Ted=*kV@f~# z?RQ;C8;<DQxFGEoD|8c3r2X4K;p!H)XX|#xiD&QNH!vVENWq?(}WJAD42rrTim*biHfa zPW-DLWr{bhfBvM!3xC%Zb*W!n>gHQxTOaW)Kj_KJS=sc zmiDB+3+<^fmgZiT@=yHB=1=WlOVd_1f3?pp<6GZHy6@cI`!c>wQl;l_6+2;I7kqqD zzE{p#{&8tT#WH#M!S`p={aucH+dfp@vA^$mWwuYwFaA{a`182e;xh@_X!6nLQ?}Oy9@%Q|6LB zW3~LSlsRLye9~i8y)#zJ4}Be#9~Qf=&0K5chmHfs7C`9YhFF@0_v@(Qlmmgg3iB0w0dwp0wF^-Kj zepu4C1%F)1sX3v`cg1$^@Y!D-<2O?R=oF_ z?ONcI#jf=F-aS8bUg=Y&woP69c3k{^OWSqMuVSN|*`CJTeZRdL(XxF?l$;Fs=A>CSW@YaV@rnS?QY3)7rR$u5FelRYK z34U1Y>fgp}e3~Ir>sWc%{Hfh+fA@XZ{%%~cmATk8HX5@n<&>|woP6I4b)9mLp~~Th z{@%0puJq)oIYHj|W?S$T&*D$zjX#y)_X7X;ZBjlnS1rEn7+=1XKEAE`m%QWKYH#~? ze%I8Ty7>06_?A7sJp?o3LEaf-Rc4P>80#Ek_`v5qR;$d#o^e}cF8H;~8MnEn&&FH6 zPx++BZTaEMFBg6@maq7sueI_+kALNC9TTd|zTT@G@u7cfYj?$I{k33f94^1dYwe{> z-#y=<#$Css`tBVQ$|oHM$`6Ze9WHK^AC|o3pDwf3n8`C^&{&#rI(EgG#!QT@@4@F0 zZJQWd-`%wn*^IG{u?OQyf9rqWeMzrtt??D76N}29OZhV|)OYWBN}08mh##wbsRi^7M0Lm#p|u`$;_|Df%TZ++R} zeP4Xb!{2`D1GW#2t=_+T%Bv3F{@w?kp8cMmJonYFdfDL{V@to{4Ii<+;m7WDc-BAP z{_x7XK4g366Yf;_hrH&_hktq1!%t88zU!U4>K}jZ;rg$Bc;OSmtL^uH>1QAQvHh={ z#@F9`hFkKk=~YhGdtB;0E^RA(x4G>8UdQEond>fT|7?pN3g3P{E&e?H<-Nb`@Ynad z;`Y1Ozx#HD8~o7WE8lzL?e^zxzCHF%&pJHkT6f&u@#rg`mh{t-zAbrA&-&r z_ufu#dD-Db|9s8ED<1x$!xzS%*ZB0y4|jY22W-!e5C8VDKXdMJ*FGF>6~8?)G3dK{ z{4eR-fhWjD;n=u#G=1fSQGvD$n zU+^uz@)6(iE8p=gzw#;HF7|1`Y)jtLQfBpG*L7OjP~+ElHHM8}<27S=Gp;-RWV{=@ z8S^J&*4Q;}jag&PxHV>tMdQ|(HAanFW7gR9-Iw%j!5^1$wx#^zQt#Tflb9iPC{w&~ z{U_!e#TfA-ab^>r#Dc`AO$>9*CypJ(IoEk&-6lr5wi72$VyBoWelGTD!E8(3(^BSP zsq3_~=diTrB<^Z&V)aS9VT;LP3|l-GpV(rrxWyK4#W}VZD@L-#)rq4%FX`KYKQ860 zD_!DN$JN{Ju_*41gPi+`~ zo;Q#57&!Xw?Puv*kC~&f+T-eIe2RsMiO0mlimw@~$7QUZU&d;c*<)4uj8*s?Jc3eG)s~sng;%&#$;}T=5 z%q4wdth^Ir<((L-{E4y0#P*5#r)6F^WnQTHA#((K<_?&d7v!C}ru^CS(TP8MJ}RI0 zoON2}FZRq|@H2nGuVv2sRle;xw0zrh>ydAJ{w+T&=`|-LE|+h69<1@ub9#;8p7)Q& zYR~&8W4PA_Rpx@3wE@hm4Qkx>+T)ZMe(W{L$++#c%4u1{oQ&IE&#-4b12gLxd1pPN z%tNoEPGUl@Gf&I9^dvqk>9f9)K5H;}PrXh%i3z=~JBkUt-aCm2y*@mO3B8^yKP>4r zKO~mH&-zd~H76vlDZj4y#Lbf!YuqQcRynN1)??!Bw%GNz##i3N*<)gLVG_qriQ$!= zID1N*uk^&(Q{sH(&3tgOZdYd8mEM?2@4S`XWmem|E`B>^ej0xsGjH)T-;Qm58w}r` zPrM%Ais|Fq^NH!>+hhBRZ_g*Tj&F~Nxz&~>oo@%vw^I(^PWi{B-Yw(vd}3>j;f&j3 z)(2Ilc$_ssjnxISW&De|Gj5MrAI!KFb7$Nh6HjN{9usG0+>UMB4#v2hyvFU6X)QB# zxxS`7hs1{<^5-Y6F>e^2X5tl0_WbG!-R*cQ{Yi&1iK%AX8a6a*L;($0?-#u|) z(#3(nTYFDA)`nBQwfD5a+Hl%n?LF<>5@U}fv3E;M7F#Q>CRSSqSG-LOw^p7QE6z@g z6+lwcrD-JE` z)?Fvpq!{bEcioDs;(_Z{ycGjn+r92Oy5@V`CC*lvVne4}D-PcJaLTmyo-(byr(SFC zieJ4}teDkn#j&jw2eXNJ#)udzF0#c{agiQlJHKoAZGP9(T)X(zZ=CTh%!~(lt&>mg9k_4M-Xb=U&}o7b#dt5jJ1yGb+~amzZvU(2S4<`0<~QbCU&^t5784F)LSOHGgI652 z4zs=$Yv(ukf|-~AGciFq6BD-nJzn=a`uBLP1+5!9Cd}_~F@bFzJ{arp$y@Qef8!s- z&c1h1F?G4W;j?=k+k%-GJNGxl*}1<_>*lPPC&teG4Keo6Ywx2)bm&Qv*)k!XU|{d&z`>y{Mqx@+&eOV&Ap?s zD+b4>FxK8;w7fMx_>E+aSn8@6?;eMK7hnDEvX1RFfO~Y-w3A-3Ipftmy;%>;eL3T- z#%iwz=DwUY%-ol=hS~VG*Dcbmy{#YMD^7PgTdy~iZ|z;b8(mXN+bX{LeXGn~U%97R zu{LqReblYjTJFKlTFZUfS!=nMJ8M7pfoDxv_lJ9Z$gcS69!IaetqPDP`No==AgmaSz^J zjJ>|OXD+X_{B7q;pY5#-k7)K{aE)qj!oJh&#n>;JJsSIs%f8HE*_W}8SiZFfvh2(3 zeCf0GrE$#9#_-to6HAQm?5`b&anAR|c-0rZ4_JGN%YLFg#oFtcYseUv*6H>WOYHqE zPy+w(_pPRu9L`PQ|-rrWni<6nQ- zmz7t)*+W&HdBZ-dGR!&lXqDsI$#ry8&SKYIdSlkSr=@&+k|}@ZOP_JZiZ6gSz_;Qa zJ^|k@_Rg0+<4%`<;+K;#-tqZpUJy?bM^45t&IMize};pR*i#(H!pqCI^0r<4m&VWY zKL3B2I2$`(I`O90lP593T$<~@{MqZ$^7)dEvthkj{k7!9*{~MUUp1d3E~MXzV^;h# zF%Q=ahXXIjXFBm~=SyGo`OcTly0N)ZHO6wC?tJOY=~=^CD_1-;pAgrqnAh>swNxS= zE_VIBF*O%;-YT!lEUsGC&2`O+0mLB zfS7?Ns!VGN>kws%_2RlRmvrls!S8(OoiDxh7^&x2jHe72YvcOu!Irl0pX;}Z^s_mp z_AM{V=bbN|-`K8W*KGer+g!W-+imAdpFR7$^QCvb^v;*w`O?-=!|^UVd!l&YJ74+Aig+5_x;D|=o$Upibq{^L{J!o?o`VU0n4 z?LA!kv-bIBf42PF`?H7a3)X(3eM0{2{n@SeWOu&w&X>+Q`s}$Aac<{J7oTV6OE=$4 zY;N8co`%>`+_R23$Ha4d60zunSJ3fl_-5O}HxtvO*PPJ!oiE*-$(|F-w_-W&4&U}1 zTE6Xhc6gH8!jm-TO0PK~{Q+OxpDqVqv^YliMfgPcLpxu(p3B?$(igeV!-v`V(q}xV zoiBZnlf3h#FV0`$a>ZEj701r+nuVLa^QCvb^v;*w`O*^;ir>3%p63~g`8_@yX}`zE z-ucoO?;X`Wj=pzPzeC*LSUAr+U%Jm;*!j|D=Pfl~WwX!K9F?6feUUd__YiRh?5Q@N zr)+zGcvt?0LyI?yOR(^wof$UiwSS1~nR1Hz*?FB~v-71da@aQe)O^d2_Nl|gz}uKT zZT(SWm2SKK-k9OV?R@F*0P+8DMvOb-jc@stf177g=b7S}7{A7=F$_QZ-Aj7$441v{ z;WHPs(Q>fUS?j5w^7SP1()a7@l+S!(sFn zVK--^@cE3hG3i_WR_RH@Z=Q12@^`*;xR-p^9RA{2@qhev< z(T?A97W7#h$vB-DZw&Uht$ARb6Jo2c<^}agexUZ}^M&)G=lsCoqL)^GpDXC|w&0ITIdkTr@{7mX_3r0O zr_YR^wQuo!^(BAulm0Syn@`LU#+7+sVppHBS#ty~@jUl|vn)0mR|_ZE`p)xyRnEd& z-ucpJyld-Tb3={Qg`2&fFTI~Hz4N8}8CBOu{|5BDaNXk&XBNBS)BJv1@H=1n;_vZV zgPO<1>ArViekXH(W9(YzHfEklIheco+;0ixbZkGEyF0dT)-WCa59S(c0)1ufUeZ0s zDi3_k5AFk)YnJls8Jf&1>Rr#2UhSF7s{G|_=b68%%$~ordESpuW%m5FnGbvZ;)nXa zzPq+BnEia|v-6y59p!$D{>nPGo@bu5)_%V9e!lc_cFlgibk4EC=UvVS8rvB`!>OM0 zIp>TZdy{iU&~UTs?4{-WrENKXX>8{&l`Q9o&iPBuNSgDPoO9>gq&iEf&r@>7UCDCx zX~oqg-T6x;%h{)M{?e51{H4R3zqD|qcfRz+v%>cCrE}I<&bX`bwVy9tXL|4FOP`(P zzMn6B7GwAGrO%#G+WFFF?>d^QG%OFZ=n@S^xC`5A?uzVC&U**;^QCk4X`j>Utm!$Yx7G&B+0^^_(uwQ)`O+88rk=CA z_w%Lq^QGthM&09BV(fmt^u=?e*E5{=^QF(;MYx|YeRiL}elvs$Quk==>);6Z9pT^d z`LcYBT(MQeyXvsFU{9fWGG)Wyr}Tc%oU>hc zY4&k;zVwB6s^S*Ro>%s2>b9?168Wy!Nm0Z1mU8mp*$hws(Tt>z(&ja2bIr*bpy#71N36}~Dqnn+ z*SKBmnZMv?{`&vRocSwdKd9aV-@L~x4VVx41KSGyJgF z^ZZwRk0tLs|E0|ReChOsF{VHGl5b-U7g|59hM$Gv{WmsI_c|Aka>7E0ymT(Vn)&tc?z4oXwdp+PDqj#O0cMs8A(`%T`T(hKGdl!e< zdS)qS)-cMid93SQ+g58J_coQ;&!egL*w3ley-;fN=?UAgeyM)#Zjz2Bc+_JY6g8E(nDrk~)u-s4j5@L}pb zl`wg?t~OWR{e0;=9lVov-krLiFMZ*CwOif`USnkEOFygLr|da^e&@1xF?)x-cQNB^ zc&F^4-wEy=_VaFK@1XUrWbXt&Ebms{`O-UIdh-t8eh+xPC%E4OzRi2#z593G1#fPd zcf@=5uXhsTMtT=<=7V`J{I2^+e=ZpBOc{)`kn7zZ&O`1q z=lAoapZ(f;COqrs&3k4%6YhN|i_Nd~4lTZQe!utD^m|hF^QALZ%>x;)HCD|J?xC0? z%n9zTm>2f*rT6otcfNG-cZRQ3`!CJisy!e)#&8j8k0yIb#kI9BV{Zos*IrL^%xVwO z{$X>WYyZ$5pZ%%ko7Fzxf*HP9?IA8@+Vh&ahVwT2iRP2pPaNBRVu}4Pb&=jrbVgF` zdEt5y`)GKZeV&r@mrCq;X)6&|m-NCm-uX*YPLC^I0_B(5znt$zE^5?=&4%hYqKe@PqxP!)R zcv$un@d|gobT<3=!8H^2;qcifF5BLHUkCVnTl==oRc;^RGav2K+OOr?h4Wl713yVQ z3rD)Hqg+=zU;6AU_ws`{YX4q87}xgf`BR*1ZrH?x6QB2U6XjcR4}U@*E%rP&QDrXW zoYa+TNjVi?yRPCCEPOMuYxrgpck#_8z4~|fX5wF@%Ivs$a!q!e^j(~DTj$&@G4|w| zUD7AU$~!T({IHZiG4^PjcFaE+V=2nGoiRK1X~E3AATRzMpO!y+KB{thF01l;&Z;sO zyZA47F#2o3uVv2sRo{K#Ki8b#y5I--wS^yg&XrzsLh~x|DD+eLVc|KS#Ixp+?tJOn zKBUH5KTlV_HU9XRZUiG+u}cqUE+$k;rcai%oz4JaYBE|xAUd<^Q9A)YyJ|aXU>w=bK*%{T;{Kx zFP-bhb>sRG|6E(HG1sbV%QfcuTGGum-YHejsmTWqs~kA%1lP1{TbVSjo-!vED04}- zRvf(b;go6ZJ!M*ZPrcR>oe=5WCfc)dPN%_oNwfMGv*R*e?k8i8~CGYsQ+S|UJ=Ro=G;QO^di_^Q<<6D>+ z5Av>OLD%yo)~3pFEn1g|;nscDdHQRytutMpRpx?U%dBU%tZ97r9=GL_9-rlhGryd@ zOJPZ`@0;&me(+pNms9I#ZIjQKvaaG!@^^w)x^ak%^*ueDdosdb|DqH)*p zr@s5bg|^N-StIhpV()zEi}#L>#shyE4}OR6r&wgJJ)~tcCqVv;VW^#oZwohYvtmZ)d%x~>+bBj zto2^`)|`+ybz#kYt$W^MJC{8~*O+rlb7txAQnrPcve{>ZxyPM9bo=OVdltMsNqiOf zQ*%_d@LLMgyy8RiRW_Uod7FE@^QC)_1D|w1U;6IesXAvz@8?VZ{9m23pSYYgU3-bM zS8Fe^_i$@3G4BMo&s%3~9c1L<_yW&BM)y1-vih7C=T@XTijje?&tbFi3xp;AD1{V+%0i{J#heL zEob6@awZO_YvO=2jSn5K&L?(FysEXpl8##~M>YRd0t zPv#s^&!kkDOZuGQzn?F?pD&F^z4N8-d5_bq?Xzw_&AL5n^3xqJuETe}^cmOav~Z11 zIH*~ZAMsFgPVbx{$u5p6uBv$3JSBOH--_qz`LE_R;kXtD78lm@U*ao{tQebhne|yc zE0J}txLnUrh|@TBVysxcJU1cER*Y?q*-?ybj#%M7& zwfD4hbAB_)`%|{%oM-WN&UrqH-yOs2eCWI<#d9U~tjW%ouC@1xe|yd?|L%P0-0yyA z-JiY0x&Hn9+U6OHey;84{QiF4ZO%YGW}STWtVTZ{w|R!c^B#%$r-dWE^QB*U#$k@Ec0XVGBF}l}OXqzp`}xurINOI_4{X*03nzKj2GZ+UmgX(bdH|n! z)&qFXvmV&22l6cVdC!F3D)aawbD#aYbKl+l(Iwrp{}5-X@1NVloO6{6V}HXQpS`~9X_YOnH22Ky_09cr>3z<#ebqVVx$a}zudr{` z+?5OW)wAVT{n&pmTRF?;%knX@pD(Qs_^^FnzT*E*FJ7oVitpwONqyuTn?ugxtNp3$ zrP>#)J&qm=RgQi)R_w_xHV(qzhr3l}+CNtyLdwUo-w`i zr89Q<$CzFAzMbt@W6YQ}cI~SgZ?i{l+|Ay-{9*-vHmA4t(8ZtT9#q-QNvOJ9FUmBw z^^v_=*Mxpb-{2K&VxsuC*tPH4nBfK&uR!~|%sCIa_zz2aDjp6OLb+*foh#a7p?DhF zAzhm5mhD<6Z1L9jW&6(ky@#_=>G@m5P8iq)e_YC0%Req{FgHvaiYKZZ?d|V!6kGcH zDsSgY=gd=m)nm1M(qr|=mpxYb_=NXs&z?UQySM`x&(#mcwf%l&imA;Ft8(xR_dG(nV50~_;fiB>Sr>AO?dRL!KlAPIqWNXMH{VV=-wvK{cfNGy z?dEQkKk*p(-&o~;{b7u*eY>PvV+`Kf8wae$m3biZN{y@LjMZGzT(T;!IcC-G#se{K z%|FEalC@27DD@|e-#nTjh0`#Z~Kit4?+E!_u}I zuRZoJX)a>TiN0&keFxvM=fs^a9iC|VYj~$M#$3l@8s8?S)pcl${f9VoF@5;4=fxWN zT(_{wkze@>|M}n=cg-u47&{pgiFp^&htpeY#ih*RxOSO4Upn)UK5GB$eCe}sTR!P= zTRi6;w>8%-={1((JNSC%!2D(uBmGX4PkioU-$! z&tk0K;rgi8UFH8?Yn5+ZBZ=MRTm90UXZJR&{WkNses^EPnsc#d4GFXJrT6ot?aLhc zoEiHvhdzJCzRaQbS?Y}5Wnbp7?8}_%bo(-cw=Xm0Y&X301&6EU9GhE)Ylj<)>xLJH zx4WM&UGD_*rp21npc0MlWKjUo7`OjN8Fm-OJvt+}8 zsq;*m12Y`y@#oH$-ucpXk8S5mpK%1jlROtbI{sumL$mNC@!E?&-*b9#IGx#_dH;x~ z(er-sIm6koHYndNm{}XZ%-TRXTdzHEM4fSWaQp=R z&U&VJr^^}96-V*mmgo5P^QH6qEzdcgJm=`QT-()uc@}c#OP}$PjPq^bFdMgZhVODV z|I&htKfmTbk?K1;TqOTvZ6NAG79cfR!5dp(91 zefr0oYq9gCAD&o!Vc*hwwCX;6-letWomUmd^S&)>=6XkhXDXXdUe8fBpS+&0TzJvr z+qxgSr0;y`tb5D_eU`g-813gv=Xu3DWL)*LFbB^k_OmcMU;5%1*E?T2zsda`_q=kS zk5RwN+pcF;{BG}O70>%U?|E?Vdh(lJ?DFi3-~7w_N9rAdo|Q?Qy71mWd)n@AThqG# z-S@zU|Li{b&X>-<5C7QvwFkte?Ez(fVR+y*pYSE0+GoS3WW%?g?J0~u>x`xB{S+p9 zOb7c){Ezd7CueVBNw>d0>Bar*yx#jceCFbc`fR_?exSV%`>Ob!+G_7_{T@qt@j@HF z^QHImrH5~6f3rB5#+$KY9L}DyJ+#?JHhzs)W4L*q2iL=rj<+(rWoLyApBZOkc+R*M zH5QFqW7ZfoZu^>>z3)l4_dR%f-&4+TP{YyK`O*nNJ6}3`#dtZ!RdjLqj4S*7_K?Nt zCEYn@#wy-d#n^BvjultW#%*zddhAu1JywegH1mTpm-HE{@H1AGIb&6s!|gA=Szkvx zUwS`Z`efW%SKuxfx4qUl8DmR&#pC8x7WW4S$QZ*3N_?y_-1B~w)9ZvPzt;v;=7O2E z0nDros!Z`Vaon1s>dG}!oZeomXydG5if7a78TPDa>U)?^I`6D!YMs*Ss45dT2T#)c z((9-ye@UP9Rh7Bq#oZe|bIlugX0Bz|J3b%ZhC^~reBfK3X}(?3#gD-s`KQaN=UoyD z$`8r1pD%sp+u=V~tX+ItK5pOceCf2^Gkj+2tl>G=`Nw@-?|kWnN2Q<5G5h(_=JX!Jem~B*t>2G5ZtHhwk6V77aeLs~9=H5D z<92>C8n^SCvF7af+&bJiuYTz9uN?PYY8|6Y>nv*seI)MA?_7PX&(nYV`O-UI+C7gs zce>(h#;bdJ6<^)sF#g0>Yh~j~e9idVj8*Z~+SC{mD~v(oYDu^D9(={=E@v}tyL@A| zemADx8pCt{P@HiFg)*(bcE0p}zI5*w)R^dVyzMD?UwrL5G{0!WFWS$Ses`ULyq_=q z+JkfX`YhJ{eCeFMgtv#+hvSdWC&uFVce=gr;`8<1cRe$J%jX#ad_J5gXFj>!Tx$!L z8?RssXQRqo&T~H6yUQM4oypdm-Z_VDb5?$zaaU)UF8p3+M?2%LxP5qii+ySi@P58@ z_D=1g^5M>xzGm@GJ&%&-QjVTU>9KlT#_G{|r+t3AGo`o1KJ|Ep+0U2GnWs4u@3@>z z?d<9~zq;NBzMOqp=bt_|zJ2K9FWDleZ;Nji`;@a$2eT#Lq4S=cwLfRH_MGKxSZBr_ z`pnomv%k-hU2VKM?@*|-WEcEergLS7=Zu$E{5;PnExhP@C%kvVi-$}4&X>-4qs`ek z=N!`JY#eaTnzL~Z¼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