From ec9f6e2d2bfef0941d9dd161afa4ba1164c00d11 Mon Sep 17 00:00:00 2001 From: Jetz72 Date: Tue, 30 Jul 2024 01:28:45 -0400 Subject: [PATCH] Added attraction light icons (#5663) Refactored functional variants to be merged in the card face rather than the card factory Some variant characteristics now show in deck builder columns Fixed loading progress amount "[card] has neither ManaCost nor Color" warning now actually displays when these are missing. Co-authored-by: Jetz Co-authored-by: tool4ever --- .../src/main/java/forge/card/CardFace.java | 55 +++++++++++- .../src/main/java/forge/item/IPaperCard.java | 3 + .../src/main/java/forge/item/PaperCard.java | 25 +++++- .../src/main/java/forge/item/PaperToken.java | 16 ++-- .../java/forge/game/card/CardFactory.java | 79 +++--------------- .../main/java/forge/gui/CardDetailPanel.java | 2 +- .../views/AttractionLightRenderer.java | 69 +++++++++++++++ .../itemmanager/views/ItemCellRenderer.java | 2 + .../src/main/java/forge/toolbox/FSkin.java | 12 ++- .../src/forge/card/CardFaceSymbols.java | 11 +++ .../src/forge/card/CardImageRenderer.java | 6 +- .../src/forge/card/CardRenderer.java | 32 +++---- forge-gui/res/cardsfolder/b/backup_plan.txt | 3 +- .../cardsfolder/p/paliano_the_high_city.txt | 1 + .../default/sprite_attraction_lights.png | Bin 0 -> 131331 bytes .../java/forge/gui/card/CardDetailUtil.java | 19 +++-- .../java/forge/itemmanager/ColumnDef.java | 38 +++++++-- .../java/forge/itemmanager/SColumnUtil.java | 1 + .../properties/ForgeConstants.java | 50 +++++------ .../forge/localinstance/skin/FSkinProp.java | 29 +++++++ 20 files changed, 316 insertions(+), 137 deletions(-) create mode 100644 forge-gui-desktop/src/main/java/forge/itemmanager/views/AttractionLightRenderer.java create mode 100644 forge-gui/res/skins/default/sprite_attraction_lights.png diff --git a/forge-core/src/main/java/forge/card/CardFace.java b/forge-core/src/main/java/forge/card/CardFace.java index 4543aeb1be6..fa552d2907c 100644 --- a/forge-core/src/main/java/forge/card/CardFace.java +++ b/forge-core/src/main/java/forge/card/CardFace.java @@ -28,11 +28,12 @@ final class CardFace implements ICardFace, Cloneable { private final static List emptyList = Collections.unmodifiableList(new ArrayList<>()); private final static Map emptyMap = Collections.unmodifiableMap(new TreeMap<>()); + private final static Set emptySet = Collections.unmodifiableSet(new HashSet<>()); private String name; private String altName = null; private CardType type = null; - private ManaCost manaCost = ManaCost.NO_COST; + private ManaCost manaCost = null; private ColorSet color = null; private String oracleText = null; @@ -147,7 +148,7 @@ final class CardFace implements ICardFace, Cloneable { //Functional variant methods. Used for Attractions and some Un-cards, //when cards with the same name can have different logic. - public boolean hasFunctionalVariants() { + @Override public boolean hasFunctionalVariants() { return this.functionalVariants != null; } @Override public ICardFace getFunctionalVariant(String variant) { @@ -169,6 +170,7 @@ final class CardFace implements ICardFace, Cloneable { void assignMissingFields() { // Most scripts do not specify color explicitly if ( null == oracleText ) { System.err.println(name + " has no Oracle text."); oracleText = ""; } if ( manaCost == null && color == null ) System.err.println(name + " has neither ManaCost nor Color"); + if ( manaCost == null ) manaCost = ManaCost.NO_COST; if ( color == null ) color = ColorSet.fromManaCost(manaCost); if ( keywords == null ) keywords = emptyList; @@ -178,7 +180,54 @@ final class CardFace implements ICardFace, Cloneable { if ( replacements == null ) replacements = emptyList; if ( variables == null ) variables = emptyMap; if ( null == nonAbilityText ) nonAbilityText = ""; - //Not assigning attractionLightVariants here. Too rarely used. Will test for it downstream. + if ( attractionLights == null) attractionLights = emptySet; + + if(this.functionalVariants != null) { + //Copy fields to undefined ones in functional variants + for (CardFace variant : this.functionalVariants.values()) { + if(variant.oracleText == null) variant.oracleText = this.oracleText; + if(variant.manaCost == null) variant.manaCost = this.manaCost; + if(variant.color == null) variant.color = ColorSet.fromManaCost(variant.manaCost); + + if(variant.type == null) variant.type = this.type; + + if(variant.power == null) { + variant.power = this.power; + variant.iPower = this.iPower; + } + if(variant.toughness == null) { + variant.toughness = this.toughness; + variant.iToughness = this.iToughness; + } + + if("".equals(variant.initialLoyalty)) variant.initialLoyalty = this.initialLoyalty; + if("".equals(variant.defense)) variant.defense = this.defense; + + //variant.assignMissingFields(); + if(variant.keywords == null) variant.keywords = this.keywords; + else variant.keywords.addAll(0, this.keywords); + + if(variant.abilities == null) variant.abilities = this.abilities; + else variant.abilities.addAll(0, this.abilities); + + if(variant.staticAbilities == null) variant.staticAbilities = this.staticAbilities; + else variant.staticAbilities.addAll(0, this.staticAbilities); + + if(variant.triggers == null) variant.triggers = this.triggers; + else variant.triggers.addAll(0, this.triggers); + + if(variant.replacements == null) variant.replacements = this.replacements; + else variant.replacements.addAll(0, this.replacements); + + if(variant.variables == null) variant.variables = this.variables; + else variant.variables.putAll(this.variables); + + if(variant.nonAbilityText == null) variant.nonAbilityText = this.nonAbilityText; + if(variant.draftActions == null) variant.draftActions = this.draftActions; + if(variant.attractionLights == null) variant.attractionLights = this.attractionLights; + if(variant.altName == null) variant.altName = this.altName; + } + } } diff --git a/forge-core/src/main/java/forge/item/IPaperCard.java b/forge-core/src/main/java/forge/item/IPaperCard.java index e4f32f2fd22..e3789c5f444 100644 --- a/forge-core/src/main/java/forge/item/IPaperCard.java +++ b/forge-core/src/main/java/forge/item/IPaperCard.java @@ -5,6 +5,7 @@ import com.google.common.collect.Lists; import forge.card.CardRarity; import forge.card.CardRules; import forge.card.CardType.CoreType; +import forge.card.ICardFace; import forge.card.MagicColor; import forge.util.PredicateCard; import forge.util.PredicateString; @@ -253,6 +254,8 @@ public interface IPaperCard extends InventoryItem, Serializable { String getArtist(); String getItemType(); boolean hasBackFace(); + ICardFace getMainFace(); + ICardFace getOtherFace(); String getCardImageKey(); String getCardAltImageKey(); String getCardWSpecImageKey(); diff --git a/forge-core/src/main/java/forge/item/PaperCard.java b/forge-core/src/main/java/forge/item/PaperCard.java index 0cf9021d309..8249607822a 100644 --- a/forge-core/src/main/java/forge/item/PaperCard.java +++ b/forge-core/src/main/java/forge/item/PaperCard.java @@ -178,7 +178,7 @@ public class PaperCard implements Comparable, InventoryItemFromSet, public PaperCard(final CardRules rules0, final String edition0, final CardRarity rarity0) { this(rules0, edition0, rarity0, IPaperCard.DEFAULT_ART_INDEX, false, - IPaperCard.NO_COLLECTOR_NUMBER, IPaperCard.NO_ARTIST_NAME, ""); + IPaperCard.NO_COLLECTOR_NUMBER, IPaperCard.NO_ARTIST_NAME, IPaperCard.NO_FUNCTIONAL_VARIANT); } public PaperCard(final CardRules rules0, final String edition0, final CardRarity rarity0, @@ -417,6 +417,29 @@ public class PaperCard implements Comparable, InventoryItemFromSet, || cst == CardSplitType.Modal; } + @Override + public ICardFace getMainFace() { + ICardFace face = this.rules.getMainPart(); + return this.getVariantForFace(face); + } + + @Override + public ICardFace getOtherFace() { + ICardFace face = this.rules.getOtherPart(); + return this.getVariantForFace(face); + } + + private ICardFace getVariantForFace(ICardFace face) { + if(!face.hasFunctionalVariants() || this.functionalVariant.equals(NO_FUNCTIONAL_VARIANT)) + return face; + ICardFace variant = face.getFunctionalVariant(this.functionalVariant); + if(variant == null) { + System.err.printf("Tried to apply unknown or unsupported variant - Card: \"%s\"; Variant: %s\n", face.getName(), this.functionalVariant); + return face; + } + return variant; + } + // Return true if card is one of the five basic lands that can be added for free public boolean isVeryBasicLand() { return (this.getName().equals("Swamp")) diff --git a/forge-core/src/main/java/forge/item/PaperToken.java b/forge-core/src/main/java/forge/item/PaperToken.java index 4c3c5ef6d3d..91b900591f8 100644 --- a/forge-core/src/main/java/forge/item/PaperToken.java +++ b/forge-core/src/main/java/forge/item/PaperToken.java @@ -3,14 +3,10 @@ package forge.item; import java.util.ArrayList; import java.util.Locale; +import forge.card.*; import org.apache.commons.lang3.StringUtils; import forge.ImageKeys; -import forge.card.CardEdition; -import forge.card.CardRarity; -import forge.card.CardRules; -import forge.card.CardSplitType; -import forge.card.ColorSet; import forge.util.MyRandom; public class PaperToken implements InventoryItemFromSet, IPaperCard { @@ -204,6 +200,16 @@ public class PaperToken implements InventoryItemFromSet, IPaperCard { return cst == CardSplitType.Transform; } + @Override + public ICardFace getMainFace() { + return this.getRules().getMainPart(); + } + + @Override + public ICardFace getOtherFace() { + return this.getRules().getOtherPart(); + } + @Override public boolean isToken() { return true; diff --git a/forge-game/src/main/java/forge/game/card/CardFactory.java b/forge-game/src/main/java/forge/game/card/CardFactory.java index b9584b458b7..f5d8c518271 100644 --- a/forge-game/src/main/java/forge/game/card/CardFactory.java +++ b/forge-game/src/main/java/forge/game/card/CardFactory.java @@ -357,6 +357,18 @@ public class CardFactory { } private static void readCardFace(Card c, ICardFace face) { + //If it's a functional variant card, switch to that first. + if(face.hasFunctionalVariants()) { + String variantName = c.getPaperCard().getFunctionalVariant(); + if (!IPaperCard.NO_FUNCTIONAL_VARIANT.equals(variantName)) { + ICardFace variant = face.getFunctionalVariant(variantName); + if (variant != null) + face = variant; + else + System.err.printf("Tried to apply unknown or unsupported variant - Card: \"%s\"; Variant: %s\n", face.getName(), variantName); + } + } + // Build English oracle and translated oracle mapping if (c.getId() >= 0) { CardTranslation.buildOracleMapping(face.getName(), face.getOracleText()); @@ -417,73 +429,6 @@ public class CardFactory { } CardFactoryUtil.addAbilityFactoryAbilities(c, face.getAbilities()); - - if (face.hasFunctionalVariants()) { - applyFunctionalVariant(c, face); - } - } - - private static void applyFunctionalVariant(Card c, ICardFace originalFace) { - String variantName = c.getPaperCard().getFunctionalVariant(); - if (IPaperCard.NO_FUNCTIONAL_VARIANT.equals(variantName)) - return; - ICardFace variant = originalFace.getFunctionalVariant(variantName); - if (variant == null) { - System.out.printf("Tried to apply unknown or unsupported variant - Card: \"%s\"; Variant: %s\n", originalFace.getName(), variantName); - return; - } - - if (variant.getVariables() != null) - for (Entry v : variant.getVariables()) - c.setSVar(v.getKey(), v.getValue()); - if (variant.getReplacements() != null) - for (String r : variant.getReplacements()) - c.addReplacementEffect(ReplacementHandler.parseReplacement(r, c, true, c.getCurrentState())); - if (variant.getStaticAbilities() != null) - for (String s : variant.getStaticAbilities()) - c.addStaticAbility(s); - if (variant.getTriggers() != null) - for (String t : variant.getTriggers()) - c.addTrigger(TriggerHandler.parseTrigger(t, c, true, c.getCurrentState())); - - if (variant.getKeywords() != null) - c.addIntrinsicKeywords(variant.getKeywords(), false); - - if (variant.getManaCost() != ManaCost.NO_COST) - c.setManaCost(variant.getManaCost()); - if (variant.getNonAbilityText() != null) - c.setText(variant.getNonAbilityText()); - - if (!"".equals(variant.getInitialLoyalty())) - c.getCurrentState().setBaseLoyalty(variant.getInitialLoyalty()); - if (!"".equals(variant.getDefense())) - c.getCurrentState().setBaseDefense(variant.getDefense()); - - if (variant.getOracleText() != null) - c.getCurrentState().setOracleText(variant.getOracleText()); - - if (variant.getType() != null) { - for(String type : variant.getType()) - c.addType(type); - } - - if (variant.getColor() != null) - c.setColor(variant.getColor().getColor()); - - if (variant.getIntPower() != Integer.MAX_VALUE) { - c.setBasePower(variant.getIntPower()); - c.setBasePowerString(variant.getPower()); - } - if (variant.getIntToughness() != Integer.MAX_VALUE) { - c.setBaseToughness(variant.getIntToughness()); - c.setBaseToughnessString(variant.getToughness()); - } - - if (variant.getAttractionLights() != null) - c.setAttractionLights(variant.getAttractionLights()); - - if (variant.getAbilities() != null) - CardFactoryUtil.addAbilityFactoryAbilities(c, variant.getAbilities()); } public static void copySpellAbility(SpellAbility from, SpellAbility to, final Card host, final Player p, final boolean lki, final boolean keepTextChanges) { diff --git a/forge-gui-desktop/src/main/java/forge/gui/CardDetailPanel.java b/forge-gui-desktop/src/main/java/forge/gui/CardDetailPanel.java index 93bc83b0b6b..e2afdd6454c 100644 --- a/forge-gui-desktop/src/main/java/forge/gui/CardDetailPanel.java +++ b/forge-gui-desktop/src/main/java/forge/gui/CardDetailPanel.java @@ -251,7 +251,7 @@ public class CardDetailPanel extends SkinnedPanel { updateBorder(state, mayView); } - powerToughnessLabel.setText(CardDetailUtil.formatPrimaryCharacteristic(state, mayView)); + powerToughnessLabel.setText(FSkin.encodeSymbols(CardDetailUtil.formatPrimaryCharacteristic(state, mayView), false)); idLabel.setText(mayView ? CardDetailUtil.formatCardId(state) : ""); diff --git a/forge-gui-desktop/src/main/java/forge/itemmanager/views/AttractionLightRenderer.java b/forge-gui-desktop/src/main/java/forge/itemmanager/views/AttractionLightRenderer.java new file mode 100644 index 00000000000..a9d2e052937 --- /dev/null +++ b/forge-gui-desktop/src/main/java/forge/itemmanager/views/AttractionLightRenderer.java @@ -0,0 +1,69 @@ +package forge.itemmanager.views; + +import forge.toolbox.CardFaceSymbols; +import org.apache.commons.lang3.StringUtils; + +import javax.swing.*; +import java.awt.*; +import java.util.Set; + +public class AttractionLightRenderer extends ItemCellRenderer { + private static final int elementWidth = 13; + private static final int elementGap = 2; + private static final int padding = 2; + + //Can't check for type params via instanceof, but it doesn't really matter since all we're using is .contains() + private Set lights; + + /* + * (non-Javadoc) + * + * @see + * javax.swing.table.DefaultTableCellRenderer#getTableCellRendererComponent + * (javax.swing.JTable, java.lang.Object, boolean, boolean, int, int) + */ + @Override + public final Component getTableCellRendererComponent(final JTable table, final Object value, + final boolean isSelected, final boolean hasFocus, final int row, final int column) { + + if (value instanceof Set) { + this.lights = (Set) value; + this.setToolTipText(StringUtils.join(this.lights, ", ")); + } + else { + this.lights = null; + this.setToolTipText(null); + } + + return super.getTableCellRendererComponent(table, "", isSelected, hasFocus, row, column); + } + + /* + * (non-Javadoc) + * + * @see javax.swing.JComponent#paint(java.awt.Graphics) + */ + @Override + public final void paint(final Graphics g) { + super.paint(g); + + if(this.lights == null) + return; + + final int cellWidth = this.getWidth(); + + int x = padding; + int y = padding + 1; + + final int cntGlyphs = 6; + final int offsetIfNoSpace = (cellWidth - padding - elementWidth) / (cntGlyphs - 1); + final int dx = Math.min(elementWidth + elementGap, offsetIfNoSpace); + + CardFaceSymbols.drawManaSymbol(lights.contains(1) ? "AL1ON" : "AL1OFF", g, x, y); + CardFaceSymbols.drawManaSymbol(lights.contains(2) ? "AL2ON" : "AL2OFF", g, x + (dx), y); + CardFaceSymbols.drawManaSymbol(lights.contains(3) ? "AL3ON" : "AL3OFF", g, x + (dx * 2), y); + CardFaceSymbols.drawManaSymbol(lights.contains(4) ? "AL4ON" : "AL4OFF", g, x + (dx * 3), y); + CardFaceSymbols.drawManaSymbol(lights.contains(5) ? "AL5ON" : "AL5OFF", g, x + (dx * 4), y); + CardFaceSymbols.drawManaSymbol(lights.contains(6) ? "AL6ON" : "AL6OFF", g, x + (dx * 5), y); + } +} diff --git a/forge-gui-desktop/src/main/java/forge/itemmanager/views/ItemCellRenderer.java b/forge-gui-desktop/src/main/java/forge/itemmanager/views/ItemCellRenderer.java index 93ea8eaf42c..4863a73e37b 100644 --- a/forge-gui-desktop/src/main/java/forge/itemmanager/views/ItemCellRenderer.java +++ b/forge-gui-desktop/src/main/java/forge/itemmanager/views/ItemCellRenderer.java @@ -50,6 +50,8 @@ public class ItemCellRenderer extends DefaultTableCellRenderer { return new SetCodeRenderer(); case COST: return new ManaCostRenderer(); + case ATTRACTION_LIGHTS: + return new AttractionLightRenderer(); case DECK_COLOR: return new ColorSetRenderer(); case FAVORITE: diff --git a/forge-gui-desktop/src/main/java/forge/toolbox/FSkin.java b/forge-gui-desktop/src/main/java/forge/toolbox/FSkin.java index 879a42d0eea..ec10f0b288f 100644 --- a/forge-gui-desktop/src/main/java/forge/toolbox/FSkin.java +++ b/forge-gui-desktop/src/main/java/forge/toolbox/FSkin.java @@ -1120,7 +1120,7 @@ public class FSkin { private static String preferredName; private static BufferedImage bimDefaultSprite, bimFavIcon, bimPreferredSprite, bimFoils, bimQuestDraftDeck, bimOldFoils, bimDefaultAvatars, bimPreferredAvatars, bimTrophies, bimAbilities, bimManaIcons, bimPhyrexian, bimColorlessHybrid, bimDefaultSleeve, - bimDefaultSleeve2, bimDefaultDeckbox, bimPrefferedSetLogo, bimDefaultWatermark, bimDefaultDraftRank; + bimDefaultSleeve2, bimDefaultDeckbox, bimPrefferedSetLogo, bimDefaultWatermark, bimDefaultDraftRank, bimAttractionLights; private static int x0, y0, w0, h0, newW, newH, preferredW, preferredH; private static int defaultFontSize = 12; private static boolean loaded = false; @@ -1239,7 +1239,7 @@ public class FSkin { } final Localizer localizer = Localizer.getInstance(); - FView.SINGLETON_INSTANCE.setSplashProgessBarMessage(localizer.getMessage("splash.loading.processingimagesprites") + ": ", 12); + FView.SINGLETON_INSTANCE.setSplashProgessBarMessage(localizer.getMessage("splash.loading.processingimagesprites") + ": ", 20); // Grab and test various sprite files. final String defaultDir = ForgeConstants.DEFAULT_SKINS_DIR; @@ -1263,6 +1263,7 @@ public class FSkin { final File f18 = new File(defaultDir + ForgeConstants.SPRITE_PHYREXIAN_FILE); final File f19 = new File(defaultDir + ForgeConstants.SPRITE_COLORLESS_HYBRID_FILE); final File f20 = new File(defaultDir + ForgeConstants.SPRITE_DRAFTRANKS_FILE); + final File f21 = new File(defaultDir + ForgeConstants.SPRITE_ATTRACTION_LIGHTS_FILE); try { int p = 0; @@ -1276,6 +1277,8 @@ public class FSkin { FView.SINGLETON_INSTANCE.incrementSplashProgessBar(++p); bimColorlessHybrid = ImageIO.read(f19); FView.SINGLETON_INSTANCE.incrementSplashProgessBar(++p); + bimAttractionLights = ImageIO.read(f21); + FView.SINGLETON_INSTANCE.incrementSplashProgessBar(++p); bimPreferredSprite = ImageIO.read(f2); FView.SINGLETON_INSTANCE.incrementSplashProgessBar(++p); bimFoils = ImageIO.read(f3); @@ -1363,6 +1366,9 @@ public class FSkin { case COLORLESS_HYBRID: setImage(prop, bimColorlessHybrid); break; + case ATTRACTION_LIGHTS: + setImage(prop, bimAttractionLights); + break; case DECKBOX: setImage(prop, bimDefaultDeckbox); break; @@ -1407,6 +1413,7 @@ public class FSkin { bimPhyrexian.flush(); bimColorlessHybrid.flush(); bimManaIcons.flush(); + bimAttractionLights.flush(); if (bimPreferredAvatars != null) { bimPreferredAvatars.flush(); } @@ -1428,6 +1435,7 @@ public class FSkin { bimPhyrexian = null; bimColorlessHybrid = null; bimManaIcons = null; + bimAttractionLights = null; //establish encoding symbols final File dir = new File(ForgeConstants.CACHE_SYMBOLS_DIR); diff --git a/forge-gui-mobile/src/forge/card/CardFaceSymbols.java b/forge-gui-mobile/src/forge/card/CardFaceSymbols.java index b3544da21cb..1b4d1864af2 100644 --- a/forge-gui-mobile/src/forge/card/CardFaceSymbols.java +++ b/forge-gui-mobile/src/forge/card/CardFaceSymbols.java @@ -18,6 +18,7 @@ package forge.card; import java.util.Map; +import java.util.Set; import java.util.StringTokenizer; import forge.Forge; @@ -194,6 +195,16 @@ public class CardFaceSymbols { } } + public static void drawAttractionLights(Graphics g, Set lights, float x, float y, final float imageSize, boolean vertical) { + for(int i = 1; i <= 6; i++) { + drawSymbol("AL" + i + (lights.contains(i) ? "ON" : "OFF"), g, x, y, imageSize, imageSize); + if (!vertical) + x += imageSize; + else + y += imageSize; + } + } + public static void drawOther(final Graphics g, String s, float x, final float y, final float w, final float h, boolean rotate) { if (s.length() == 0) { return; diff --git a/forge-gui-mobile/src/forge/card/CardImageRenderer.java b/forge-gui-mobile/src/forge/card/CardImageRenderer.java index 8cea56397aa..91a0d116e70 100644 --- a/forge-gui-mobile/src/forge/card/CardImageRenderer.java +++ b/forge-gui-mobile/src/forge/card/CardImageRenderer.java @@ -11,6 +11,7 @@ import forge.ImageKeys; import forge.assets.*; import forge.item.PaperCard; import forge.util.ImageUtil; +import forge.util.TextBounds; import org.apache.commons.lang3.StringUtils; import com.badlogic.gdx.graphics.Color; @@ -1173,14 +1174,15 @@ public class CardImageRenderer { return; } + TextBounds bounds = cardTextRenderer.getBounds(ptText, PT_FONT); float padding = PT_FONT.getCapHeight() / 2; - float boxWidth = Math.min(PT_FONT.getBounds(ptText).width + 2 * padding, + float boxWidth = Math.min(bounds.width + 2 * padding, w - idWidth - padding); //prevent box overlapping ID x += w - boxWidth; w = boxWidth; fillColorBackground(g, colors, x, y, w, h); g.drawRect(BORDER_THICKNESS, Color.BLACK, x, y, w, h); - g.drawText(ptText, PT_FONT, Color.BLACK, x, y, w, h, false, Align.center, true); + cardTextRenderer.drawText(g, ptText, PT_FONT, Color.BLACK, x, y, w, h, y, h, false, Align.center, true); } } diff --git a/forge-gui-mobile/src/forge/card/CardRenderer.java b/forge-gui-mobile/src/forge/card/CardRenderer.java index 1e23c2d08bd..8be14341a78 100644 --- a/forge-gui-mobile/src/forge/card/CardRenderer.java +++ b/forge-gui-mobile/src/forge/card/CardRenderer.java @@ -497,18 +497,25 @@ public class CardRenderer { //render card name and mana cost on first line float manaCostWidth = 0; ManaCost mainManaCost = cardCurrentState.getManaCost(); - if (card.isSplitCard()) { - //handle rendering both parts of split card - mainManaCost = card.getLeftSplitState().getManaCost(); - ManaCost otherManaCost = card.getAlternateState().getManaCost(); - manaCostWidth = CardFaceSymbols.getWidth(otherManaCost, MANA_SYMBOL_SIZE) + MANA_COST_PADDING; - CardFaceSymbols.drawManaCost(g, otherManaCost, x + w - manaCostWidth + MANA_COST_PADDING, y, MANA_SYMBOL_SIZE); - //draw "//" between two parts of mana cost - manaCostWidth += font.getBounds("//").width + MANA_COST_PADDING; - g.drawText("//", font, foreColor, x + w - manaCostWidth + MANA_COST_PADDING, y, w, MANA_SYMBOL_SIZE, false, Align.left, true); + if (!mainManaCost.isNoCost() || (card.isSplitCard() && !card.getLeftSplitState().getManaCost().isNoCost())) { + if (card.isSplitCard()) { + //handle rendering both parts of split card + mainManaCost = card.getLeftSplitState().getManaCost(); + ManaCost otherManaCost = card.getAlternateState().getManaCost(); + manaCostWidth = CardFaceSymbols.getWidth(otherManaCost, MANA_SYMBOL_SIZE) + MANA_COST_PADDING; + CardFaceSymbols.drawManaCost(g, otherManaCost, x + w - manaCostWidth + MANA_COST_PADDING, y, MANA_SYMBOL_SIZE); + //draw "//" between two parts of mana cost + manaCostWidth += font.getBounds("//").width + MANA_COST_PADDING; + g.drawText("//", font, foreColor, x + w - manaCostWidth + MANA_COST_PADDING, y, w, MANA_SYMBOL_SIZE, false, Align.left, true); + } + manaCostWidth += CardFaceSymbols.getWidth(mainManaCost, MANA_SYMBOL_SIZE); + CardFaceSymbols.drawManaCost(g, mainManaCost, x + w - manaCostWidth, y, MANA_SYMBOL_SIZE); + } + else if(cardCurrentState.isAttraction()) { + //For attractions, draw their lights instead of a mana cost. + float lightWidth = (6 * MANA_SYMBOL_SIZE) + MANA_COST_PADDING; + CardFaceSymbols.drawAttractionLights(g, cardCurrentState.getAttractionLights(), x + w - lightWidth, y, MANA_SYMBOL_SIZE, false); } - manaCostWidth += CardFaceSymbols.getWidth(mainManaCost, MANA_SYMBOL_SIZE); - CardFaceSymbols.drawManaCost(g, mainManaCost, x + w - manaCostWidth, y, MANA_SYMBOL_SIZE); x += cardArtWidth; String name = CardTranslation.getTranslatedName(card.getCurrentState().getName()); @@ -544,9 +551,6 @@ public class CardRenderer { type += String.format(" [%s / %s]", power, toughness); } else if (cardCurrentState.isBattle()) { type += " (" + cardCurrentState.getDefense() + ")"; - } else if (cardCurrentState.isAttraction()) { - //TODO: Probably shouldn't be non-localized text here? Not sure what to do if someone makes an attraction with no lights... - type += " (" + (cardCurrentState.getAttractionLights().isEmpty() ? "No Lights" : StringUtils.join(cardCurrentState.getAttractionLights(), ", ")) + ")"; } g.drawText(type, typeFont, foreColor, x, y, availableTypeWidth, lineHeight, false, Align.left, true); } diff --git a/forge-gui/res/cardsfolder/b/backup_plan.txt b/forge-gui/res/cardsfolder/b/backup_plan.txt index 7e05458433c..92a47275fa4 100644 --- a/forge-gui/res/cardsfolder/b/backup_plan.txt +++ b/forge-gui/res/cardsfolder/b/backup_plan.txt @@ -1,4 +1,5 @@ Name:Backup Plan +ManaCost:no cost Types:Conspiracy Text:Draw an additional hand of seven cards as the game begins. Before taking mulligans, shuffle all but one of your hands into your library. -Oracle: (Start the game with this conspiracy face up in the command zone.)\nDraw an additional hand of seven cards as the game begins. Before taking mulligans, shuffle all but one of your hands into your library. +Oracle:(Start the game with this conspiracy face up in the command zone.)\nDraw an additional hand of seven cards as the game begins. Before taking mulligans, shuffle all but one of your hands into your library. diff --git a/forge-gui/res/cardsfolder/p/paliano_the_high_city.txt b/forge-gui/res/cardsfolder/p/paliano_the_high_city.txt index feda7616009..a46bdafc72a 100644 --- a/forge-gui/res/cardsfolder/p/paliano_the_high_city.txt +++ b/forge-gui/res/cardsfolder/p/paliano_the_high_city.txt @@ -1,4 +1,5 @@ Name:Paliano, the High City +ManaCost:no cost Types:Legendary Land Draft:Reveal CARDNAME as you draft it. Draft:As you draft CARDNAME, the player to your right chooses a color, you choose another color, then the player to your left chooses a third color. diff --git a/forge-gui/res/skins/default/sprite_attraction_lights.png b/forge-gui/res/skins/default/sprite_attraction_lights.png new file mode 100644 index 0000000000000000000000000000000000000000..65d2aec8d97ad523ca0410d336a999a4fc1c4afa GIT binary patch literal 131331 zcmagFcTf{hurHj@L+>>-r6Wx#0U>me-a!FD1f)Ykkz#<*L8V9+LX##Spwx(z&=C~@ zDbfQ0>Am+C@4NSvnfKlAkL1iGGrQ;P{&vr{6K`aoMMcg|4gdhCv>$4i002ab001zX zj0FG7`(K;-_yq)e_}CW!pziwj0rq)+aK!(}=BN3{&(!<5Ux2-j6CfZUK-|^K-Pge$ z<|OXzq%ItwCtV$B+MBRNL>wL45PTBBJ+1>+oOh{n>>T1+2wJ zjE9As)~)0-B(6ifpEW<{sA_l~Dk#4CBNoYG+|4}9?0WPpQs}O!k-3rYxW+i@z%M55 zk9*Zc-+5cZc;dYkwu7bMd_j@pIVlw6V#)gcv3L9Y3CL0G>-N{3-KS+PPdWH58`>wc0fC>2 z*e!+aYv5`>3)C8<01WDHT9{Kkh5%j2zL7Tohw~MVa9CVDC2tmb8$x^oBquZYL)( z+exj*k6&9J8(WMoriavDr>V}|@|zEFn0~VkrBPGl#vFiQN`Nm@`R)oJ30ka{7Oe`JdFQ!klQE0Gtq*pNk3Oya+NAxLpDex7zwu&k73Hdb)Qb z9~UN#!`+~?UySPr{a@$$KaRV4X-We3U2VJQZS?m)A|zOR2{=IjdfdWFolK^IHzW(! zy$VMY6WeTx^;6tJ?pOZ}Aqx`t@6|z4LvQ23Yb5P9DQ7purw0xN-}zre*!u-{wE>4=>9`;+@J5p-IiZjYNg3Xe2zwNqAs{T z+TCh3^5^O9hAa-9u*Li(r5<$a3n2=X> z>IACbeI1U#EjUb&mCX~ZTwl3`WyHtB6|a_X5cndiL7rkFLtoNDcf5mSddKN0o0)mj zF`|m%@Q6yqHTvya<2N3xM<=(7{sb>jOIugcOmXgNlb+~KY_grL<0*YyHa#BR7r9uy zH2QB=x7Kr)*+}$DF2#`a=qrDKL?8KeTd&#a-y)iY@Qdx69@IsLWIl=C@Itdq%);(fhmHUIQ@h-memcy=b3NaQ{h9ehw!Z#GuHVY| z{|CQf(c_$PU$mL}jO{rcgAoaf=`3|C>(GrMlyWPoO2>Se+&9dFm)Fg?CBrB6G z^y;&j{Y&e;7M4(syo(m=;faZMgz}Gttkl51w~^{$fg4rtt=hQL8b$}8*-!9Bb6|Wt zyovWz*-5oY&+!H{jz|lU{`$`liZ+WT@hFk35~V#kA}q@jjee<&6wSn4(QpQn->h&e z$J`vmC*h83Lg{)@sbL2N?}gx9b@`E*Er(zCQg%)Q{-9mI`&@mPF7d5t_1Wp4$k-rt z6wAefxfE{`Yj_|^{ z70EAV0S#J&TrY%$G3K9M+(g%e98r847hj&PVbd;w;q-rX>9%iN?A7j^Ln$e##g39b z5be$nd$kAMT#Gqpod2x*=brz=IbXQ^hj)hlbI-N-9sP6L|M8bgaP9%mHV3Hz;w$Z9 z2;hbI^2MC*1m|hx%^47J=@1tGEk3>ku_06QpeUZD^|a(PoI6w|&-Z(iN*w={^M11b zeqZ(E{nHxVv(m?}@hBe=#iRVcUxn6D#PB4=#cYSMwI+469e^iuQAtoxV7DpkVC8g( z^oA@6ig+qK=kuyDP0T~|;&Zu2p<$*_aa0Dm+PQLc(F&WD$)OPj(7T3pFgBZ zRG~^zqoPzzry?uiO^=`@P~&0MhJ-nN1D%f%VZm7JQ&B=^k*s6BAMZ>h1(P~Z@?Y-c z%U!sHY}gzPV_YaAbIzqCN7N=qjC9moHSJz$?7poF4No#fsQ3(am@${$UDbO5|JzMu zz{%D3XAhw`V1*tu=T7ii?dwe-WaZjcuY9Z`Ow5T`N|FaWbyXdCp-L*c0)8X4YQdb! zz=?v$$K2NXh3$^tb2@98)Y`CKsYrT|9m(oRY5zeASt?#w67hb=|8kaUcYYqAvU^6S z{1+_ZZp0S(VyvV5*cF_s7@fMc4C-^_uJX>UgiigL?=J0tdaQaEn!AK4n%qUyI1EZ2 z1rlN8A*5l7wag4#)CO-17l+D0VD4Y@8yV^=d~shdFl(Z@^yIAh?VeYONDvr!0CE(2S;=rDU zud&;96>>ka+Xsoc%fsy%ts7NosMY1zlgHIw2mqbK0TUXhR?G>~T{lyUa`J%0K(zuY zq}eA;LJJ+UE!pNWgMy16xKB9U15NP@m#a0KUE`Y=X4xI^gPRzrG&}!C_y+;Xk8s+N zE_Yrcu+7%Ml8x;CcWMHH#5RolMnQd)mkt?mz2H}fuLn4`EeOm|Hl@3NffuN9E(MgG zZLMpNlSAt6Vu<6Lu5L$S_a|sFzO}%mNmZYSdkH3=u&ZASoVevlOZc*>h)akBra8gN zvN4fKoE_!A&t5(mKU82rNYAihjyuFyy(kNe(9Vd! z+CF}CZor(VHJCfQ_b@I{F(NXBUW~thXlUCHe)t2zrG%gt6g)U-?pZ|Fk0~XY|5j0b&uWz?z*2lnmFeH>2`hNT{c9Kq@4jCC~g!denK7t2z zn@mek?c2p?d+;I~&6C|d0U+RRe2Ex!rvwEiki{NAUjj6EApoCPyB+B9)-uMb3W}Jg zX(O+>h|jmnE`3elFu2%PGk5>8u&4d;IHJKKq*%@t*&EHG+H_u66~1W@Y$MR}lIM(1 zYvf(xF8=DPg{8#yycWL_7MEW{!&CkW4yjY#-t zcuJHbA7}&w&Zf`~*k9^#7%KZQ3g&<7EBe^5QA8mD?&!HMSJ>VTazMsw&qJ)=CKc0m zXqgy28|6iA9Zu2GhN}Tc$R?r)`eSyvYU`;IQz)nwP zv>K?fu@+*=m~8R%qf(-lAvF3ngCO(K%jeuxG*#x@p7WA%vpI4F?UO3RPv6%fi*R%{ zi-J4C1~#OmKMw+zRtvg;q$?`!z+SZ{Dc@jUN=m_BSZe6-!hiQ$c(_x)A0a5SA*KR> z>0d7iFw_wb)kE}T;2Xe$1B1bno@;KR(Lvhv;LO!f}B zkOLgH$=4RVPTRb_nXN`mNx5iV6GUixv@UnYxJz@-c9`q3yn%~XX`*2qK~yr_639L9 zHbDr>qriYPBbufE(|f2gkQI913_aw3{f$70M6Y!dM=#h@$KAZ|)*6K60be%1mZTm8 zj-Q)YIxnz?tSS_QY|>7VaudCgue4LXSe+TQI(RF>C*HhI@Wz7;@J7SACBlqe?UukC zJ(-|c%iRIV!95n)7+A*xf9_}rPhkCUJdFktMv1))4w-zsq8bTzIdp$y4_|y|8n`*v z^~oH{m1}6_4jr*t91v}EI4I?PBq|9Vjy6f5R=PzX$IDaF4jk6Hdm3k23gB?z~DL?f*SJ|`{=JJi?=^g5P`53}J z?pXNQ%h|KyhQCE>+BOX#6pfT8U1afl)q8hTjrvI`XIiva`+K%FZxc*{;&RqrK7q&( z*s;FiNt}$-=UUl{Nz@;gKV)GaVN>+Kl->^7C#$FfL*Z?wt0(|GfD6*Bu6iRwW|X)_)-t776-)sYsTO6dJdVVor%B?XJ< z$Z6jT*6Rpb?d1_a{Ipm*$}W!?t>emYAS0!jJ~h{%0P|y?D!~|_i7F?|ovB0w0rl04 z74O5pIcQ0q^@lhUFXJ;?PCQ|d@TaR<{Xg{%M2)wfHfP*X6P6Qh$u+y96wUXvV3mR+ zl8EiQiKZgY&tS!8DOe98vKigM;Sy7Kp@gTmjbOcRqsjUow^!q@7Z3{KN1haldsi3X zGpV(bIQ}ZBnDI|jfM}yPhh`aWsOnDfp`c8}He0hMOn-idFMXIliT5;)w{tX=i@7WS zuusUlRsUnULmjfwF9*u18}CR?qO4-EdOv9bL9Fs^H?Qpd7v(oeQQalCr{N3O=YA!c z%X%NK_b~b<5LFHA17S!!(clphZAI_J%>DU}9d9;C_v1(H;r?e}-;mm$;GH9!3Zfv|5F<1f49sqr@`mtap_+&Vn6h0rgJ1R!7 z?EsJ!`x^p1@y_q`zMcx}=%Nv8(F-(mXO(;7(Uaw~+Nr8qKua(Zq2q{`-96UNNFuyYarX`%^=uF=iL9uiO8O|lIuGmLba@Kqb=+p4@O~6F z$z-{p?|n@*bBJQObK0O3Y@%?oFM5)Q@citZ#?-)!F!N}pt$OlO5m84ppSF*s>J(gH z#nAatd`iF(qvCKQql~>k5Hg2}mne=0!r4cwkXCAPtJjQS|FhAU=Js@~pyN*;7(coSAljX`tRRPjT!cRA8!3Hy?^`wRa6n0(Vsy)Izw8 zgSOvMx!kr@N|4b%x zXEx@=MB%N|(gw!*s04jM!-g)nc<1+Q&h=8E^@kn z6(f~=n^Dk|R?tz%I3eVthN5!z8f3Hx(8w@EQp{gY*B!L`045HE3265}Uf~{7Q?(8! zP2}pn=b**Xg3rLl8^6b@i$@Pm zp(~jzFh#Y?Q0KSBb*f^YAt0^g^4_WBxVq}R zfC+WMHap1WyGWPZt(RaWAF}o<4)316o8vI?Rev3_8HHxTqADO*i&%_EI#Q0zg;&YX zw=)ug;fA3|eR=7$Vwp6tVu!C8q&WMWDCwvVH6BcIsf`AAf0jo}p#16D&Ion%x*r40 z27^y~LGq`bl#NzL(lz{;t6D#LN(yxqZ?0NUEaOr#J5~tRGL?tEcWC z?$w2*-Whj0Co_59aN;IS8e2Gp<0{r(z7f-9D##&)Rb&K5zNa6P<`leK;wC-4ZBzhi zL8V>(Frv^XB#xSDR-r<$4;rs0n8IMP1Q38YKt4OtQrJpC6>lcwDTgtxN zydD2h+@N@O*_|Gvc|h-zoTt`$EmCm@-$f$iLOs|4a!-QXs5+x@22b{G-Kipt z!>&svKII_%GBgr9_<{8Yn{%hEI?v$zoi}x>Ec#%M`{7@yl^K8i{9C?R)KE5d^cItl zX%qLhBNVm$$YqU`H}DTh80Eg*JmOX&4~jMv5KpVE4AEeX3#KuSYL?EjMx^^OqlST&>6KiM0KkeD~&j>qKz0Z z0p3AxI&av=p?&cv)dc>y27V=EKMO> z#(H``+RY7)ho^?|%t|=WZU8pUUc2%O9-t80MaP>u_5lnrzk9zKrqN= zJ$LD&OU#ZxB6LYE2>aJ%Qou-ji-ASggf0~ZLO2Lzir+)IlOX8STdd zw#fWGS2}T?|DJ_(w!WU9SXwb4iI%I^n61L1Z3khMT~SQQ63)nv4P=W`!a;TkyUm0J zmr}m+WZwDYy(lFDx;|8akS+v8E=QrN(o3x{+>tKUPVu@BQit%;j8C)FZHK!ItUG20 zbFmxWwA`t?GEPV9EAyF>`@)=aTS^*No!M#G#JL zWz*Hmm^s9_H!RPs0l}9ec4!AzV*iAcg4qO%q{n)jL@(u}QqDUH=`xvg?9q~tcu_8p zwd{49(Jb?I4)ga0NxGjZAR}SNkwz)(1sq)vYr`IS3i~I9B8d!eW?22K8CUmXoSpi` zd(ZICFL#g|Ke+qxZZFT`yH>(A!G+fx$XNK1gF1nDYi9Ncgxp?Iy``pX5v?Ip-Ssj) z=R)T?#X_PcXY4^J>DvUGhdY2Ml z1wAc^-IpzUJ%hhH{wom{Ked|UH=1lotjSp2)drVFHtbCov;1Q+t$Qzi=V8nK?i)gj?X}Wyg!- z;dR#r#OS=x?u^oXBT&MC4?&{Wh~?s1GUBx`M87X9IhjGb9i5z_4uJXT3mF`dynJPt z`5b2A115iL5}W*pqKjwkWggs12d@y=xbbPm3a@KNQjVB&#(inx*W5014nwVM|bRS(FVBI9#=B7~3ANeP6i8NmpUB|Tpkbp>9DdRHI6pK}-vm|~!2=Kk z1LcEfw4)n8vwl5!f!@AsL*vofV$r3gX^N{|*^KgGFZD@Q2=|^6^uMe8m7ne)}iU5@E}{et+LR?1x$fRmCK+S9DWZOT-HCi#Qk3c4U+D7{vI; zxa;(n(~4{N_k_ZUaHZj}*6+6Wz)5O~g`}7x3}l;*<-73)2yM&ijG{{7An>Ndx^2LQ zk|jAKr}MwiJYXO?`)HCx=wgR+PLPX zZbiyg$NgIi6yJJyhtBI)v|O8|zou6~4^U zbI*vTk`q+iZB~}^o}&mfdlW@NHEkmFZSR=*ciTQb)OPwf({k{0tPUXmlNRA`( zddf);&u109Sx*SPmMRBWvqaje@6z>~_rAX)qhV_+{9m&G0s_5z%QcFM|Ld$z8rDqS zP*N8;d^J)Vdzxcsaeeu~hppmpMfH}zGHd72oS}YikPxT9hhrq)$OZ5RyUp$25h3kGo(>;VPkTW^0tdvLm3#sJ6i9#`GOChe39|xhzL_%n$f@7t- zHNb=rhpW3Z@DHp5ba>aRuCA@8r-wbDf#TJMz^97(NVH+t)LQRQM>{t=*V%Dh(3Pnn zG%^3;o8@A4%`b02?-(Hm{47QcvL-@|coQb`Q%=XXUL z<%wvpj`GMuvjONs8mZqbvhCn-8}Qd$Y7f}wJ7aJ|$W*UNwM9mDDb}OP(k2sQjf4{| z1x}N=%mi(^&d7x#Y%i_`DyzG8t`=fHd0uE91Ya}CBTn;_)N9UFd6}VFmx@C=7awL` zNRc$|M0psV(vJeLW>lE7K0kmL=o--uw2tP$=i!umm9yPJ&$3r???8Yo*#=_5=o+Bg60vhbrLb~xmDC@E^Q zXn9QM!et}R*kihtc-S5=rAmKP6)2ZiUC~0l!FAh6L=l#9WsW!+O1#0@!W4zmf5S2WISgc<#E89J zB_K3&>rUmu$a|7X8`o`y(z`=%BLgpg6b5ab{HJ7hGN}H9EIdc8u`-H;dke=E&B3z8 zH(gYfbTx@!iel!&0A7P%dl(+uZO&2JPUvL_wLk5|#gRCQnU??!GbW>}2Ew04HrPbR z0u~URKVuF#2%BF8_xV#%c@=nawG@&pyzyT(QU20lve4F--%+GxIOyJ<{~BuLPrHIj z&A-09y7{ymLD7!$u)X=$toAsln?8EBIAD5&c<6+vmM9YA{XBCmJ;~^}%rlNly zW$1iLFoi3kc`<0B{yiV^C51unouOtXj1lqWjyjD)=MSp4avp!;=FhKau<}ia?}+P` z-)oT<5}d*MiS`o>DNuSR!br>cs0RV`8L^TNiOUYn04$B#?RTCjBz{mO_=`8}KpdCP zLwX;zQ!e;j&Kb;GLJ}X$M}x)NdgM!}Xl#_>!@d$ib`LaYCDpsoEIq}$V0nmR&;p)a zu?F-htpLh{3aU6DS4R>*D{W-(IH*s7ie$4}LT~7^;70j!5uVW~0&H3aFK1c(n_rf9 z594s*RHz6B8;ic=LX)zHTwdMiUhZ2f*o zxlX~5$YCUI4zBaf>IPDdV9QPU?2(>Ys;HkH(yeV`aQoEUI1>JQ^8=RC>PQeuiS5@4 zRf(h`G*CMe7NphN1X;4ZuGrW9LN>mq*bOO7Mx60rR?~ z3@y=Me1u{fI4Sn0xVf?=1Wr?c}2j*q!7?UbAYMH{ITpVBjz z&<+_CM5$YyWV_2nY3Gbgfxm!B2LY zO`$X9La?f=LrQu1A!;{}$VY}%tA?%@vqtYst(N`pX1w4nXpxvuTk1B`L+w zodx+D=1DEx%JjqGYtbfr7mCiWnK^qvw;{tUWj)grz=A<#a5clV-S(|Wye@5cH9V6E z1s52*HjQf8uNZbVR9+68GveMQS zjdWGPgpG4VHckno0h9~0-ye%Ul8);AEl7>S?0uOQ{7;EbZ2o!kljFgV6tk5M%}ntw zf4LeFYac*7Lf)!uWp8PevHQ%&oG!R?5BGy1t@sm--JSQ52HyFQry|}D&m!iXrI_$J z0bASI3L6J^4O%ARbt^8=L`40I@NNP<+?Brit}Nd|h2MSEFQplQi~aDKgQd6lGq0p1 zSuk|R)7%`DLE%3eeuaKhvvW!4xF2?;fBKrH)q8M7wxsvF#GeF)fx_Z$YhfXf7Eg7Q z;pcP^QZ%{(2r=kPS37g9K*i}|trb3o>zaqSiqLs#04!tSQnKVfMhJPqk5bxTE#O98 zOw*%R?6ERtgQ?E95#-gj8CDXeM?*hHQ(#hTE2=i6jU<0%S>xM7&H)Nu+c&OPt2bA; zz~4FZAYm4$yw#Gc>PM!%w?aCUw!ZfUwu!=Js096yu!s1wy%R|bOI!u|9BH5obWELy ze80((z|`WhQgTRo&uFG!*FDxINZes-9#$}X;13*t(+{5ZdFplH10Oxjl8U2!Gy4Py zYZ;pu_9lvH!lgI!y#>{#jj;7ZiPMujbvz>904gD>KBYwyvdm62TY9IQ7D(>&04#50OpRYMzze0#Px(+8*LV7qE%ooW zbeuF-lr4=&+jvG)#P#!JjOyZ^hU7YPb( zLssljg$GrqD5&M)LDFpez|SW~86ow2R&3m^(JW6wrF!*!f@Zm4? z*d&xn<~LGKoPK|NKOXdZJ~)=t4&6;xnoyxVEc^3xu#_QADR_ z4@QC`Ym=Ab2Tc?@F(5fQ>+1{Hdjiye|>G*=S!vWJafB%vRsyPvRL(3Zq2RD1FXvas9`WTy4niYJy3i#rv zCV~&|;~@mF4;7N=j&~w_*ry^lE$m3$@8(x8tfgV=!=%QX@9rlghtvyI#U;sZvG*pn zS{v&>y7|?XTquYVd8S>VGhoU#s4u2}lvFNhECcj&&4+j?);Q{Q9c7f?RrwGO;VGsG z_UOLk2^P}cJIpBdk#{qBKk&4AoM!NkB%;Gum@_l4)D_Lx{cfQ1g&6-L*{J`S%wXAa zGqtAfA~wWuVHH>Q_mTrYkf?9oG!yi@7L0e*WJL_ebRGaEth04$ zEJc8ROGS*mC0Dr1!iT*kJUabBv|95UOQQ_=?`kOc1)<}_S)3%YS%IBhN(+H*ZadPW zL!^Vd^=1sg7=KZQ?`HBKXK-^m2;(`$0sQ*hbm5vb55r*i<4GQV`0}3!8fiRwxAj>H z6UYZZ5nivRwpRgDBm1Lj>#n+{Y@@E(06Hxi`D4Si^NdM8_EnxkT%9jB)Gf7a^!5UhC91OYCSCo+rs1Uqx zF}9-P-kO3$eQ&fw#t*20!cFLqI3F{%aP}@pjIWh(SP+PD^kv#_xcz&Ps(T(dK9pT) zarqn5uWbF%^ybCO<*p*t)xkPB3)U$yxHMVrOcZzXQ{z~;z>`wPnKU0Whw{s`7>E&l z;&+p;X&D>Y3Lg(nxV9VWyIYf#6Z#T!^A5c0$3yDbc?_->!_FF%gO}Yy_Zyy7dkrZm zgsk(0UiO6o0_Luld zR?|4`o&KUYMhJP#F;$n4m=ng;(KW)? z-1^>;&0vR0C+dYk6Vd7%lvoZj4 z_go=scQnjZv#Mi#30QNoy1TCe2G1%TxpUJky0tFyUef7I9)g=Q5V!wWX#BB=^ai0! zqbYe3Go8r)`bBxa`fkcLP~r+{j&_RiIneI-$urMEy(*@iOE7;YvrM3*g7VLsO0km& zwAHg}_YI@Oas7$T7rBPN{XHM{0tr%6@qLr@FQo7Plbzf=nnOp9hsX_J;4bg4gps?+ z(#aDnA%!;=2uxZ<`=Jc59P`C0dR-+9X7ZeUg38+Q>ytvoG#-kRpVRo3_sw!tn*4&@ zgp^8FE}}R(nuxmn-KTHCaK$#7zp6x78l&gnv@V8;xW*bKg_WI@5I+k%L}y_g%R^Q4 zo%l>OImUE!WvUF{;v*IkTs%;W`~9u<)@erRa`6u5#JyrwV_^|O^rQFLr3-_D5B&iv zZbJ!~>gQsdgUKpi{OH}LD5`76(yn2`h_L&-eAsTzc(FngKE->d2^2}}O;^(6*qEB%8#0hz-34K#IH9V(* zmNpB;+Ly@{>N7a+BzECaqKZ17;|}ccZr$Q+KQYyOyc*rIyA+QLymD{z9*pO=B17zq zw?fLn?AU8>0xEorVj!$5#ygyRm(raq1V@I6jhTuJRQfJJcjS4<<&2Zzj|Ij z6SAa>x|bGsk8%!-4`B+W8#aQ+*;>YsV0<>vklsn`-KH7_U=-{1~z` zN{;bGWk8vM&+$|15qO3vI@opVlLGbt(*YxS;xe_n z;-xr78V?~yB0nPR$d=lx1DDqju<3_aIIr6x_V5^#hsSJsT7sW>H7cn6{m>?Lf((6 zW~J%G%W-@+VjD8IiLe@uH_SBk36&@I;cA=&U{A-lrgovT;#IK|)|7|tm*1VY-_@Dn zYXz!Sq4?ImwRkgg>U$k*4yijTfahmyClLpXHZh%$}X<|tt4c@ zLQOb12ZR~J*QO*IKpqsXO|D3r2@7ekL`De-WTnFDo!bQ4VNv)mt`@@Qi6&$CS1GP% zA$-JbM+390_sBpHF{OK0MjP$qgx_#~RzZB*ivXRKhQm*|WrD*Yz=)|^Y2`j=A~f!g zqz18pF0}e8`UA#FfpwCyYF`Gr_swG5c&{=5@&-NrZ>q|$dLdubRcdt0zjUZArUocQ zxg|nF-N&>nsy%Z0zA$3r1-O0|^;%L?~ zR6J7up)_l6M`RsIcoSfWN6GItY+{udrv2EB*YS?EehSPgu2|8$8nS@WMkV5EN5!9j zUR^Cbt3ex#a3}tT@q+q>#E9Xavg)6cr@5Oxt0ttuJt){SG*o_rGk-b$EBK7b5*NaK zY3;!}TR&uXpk01cSJQ$H+h%X`wfnw(TL$uG;d@Q=re3GdzP>xn9GV5(A!G1ODjAnz zX3$>(NG#;&`a-t!K_lH(FlA(v>HhC`y4nhZndKHl%N3CNa8p?6{)RbcKgcv%1FR?a zuGk7VD}MBPV?@@f^dz}7!nGc@zg^RrnDq19xGw2$iPOoyq56xwR*GCH+)dCuKT&?7 z8u$E|-_f^J`Xm!oa+tZ;`2dN!7EE#(5{pY_Y$balPTBn8%te9Me=hQ}PCB&e$tXDz=gn;EDQS*TsXq~27lj4IRs zm(5lT2u>3u7rmsJ)2q_5DN7Z=A!^WG`!iln!}FHd*LG0kJ!b*utB;df2P3r?E@&y_ zM&px2e2nVLWYAvzsX9tcmA};WZgsK3{kH{taJE zgNL3HP+7y6dwWCSgVnQ?u;V)BD^CCy$uHk7hqG^WRJw9WMojtXq4F%G| znF0&J7hPxmG;6`UHcCKeM36{&X=6gU(%?6AVm!dR!02>_Flq5n!+HEyGjmA2Nto7W z`>xW7u+yUa%cIvXp49R%23?*Sx14LWQP6Oq1IAajyr>qY^rwen)EBToRH}=SGCC$% zh#;#73RjDE#22`H?pAm3R}jtV6h5P;=4zD6vUcC~6p-&OFaNA4Lx46QSVHSH=y$P0 zKobUB-uKlpVnFW(M-;`0zTnO%t{N%;q=2wI=bhog*Z?`{&_{xjmlwe9-VyfNl z$9AW$H6F~ZYXp=#Q@FynhvjmW=oJp2yv|p7_CGv+ChsdYoGN4hT1{5kB1+;T^kWS^ zjrURs(kh?5bCW>gq&Z6FJ3qx#=>8JKJ{QsH^IwBo{XMzIR4iqm^PAWp^nlk)D=+Wp z_H*u^6?g=%9`kOtY^r5dS7qiiYcGoFx4Qz(E0Pl_rU?ov2_c~&0PnSZ_DJu0uTp$U z@l_+|=Co7${tUha*3x&?pm;fh;dhDgN{h|nolRau{x;1OI`Ms6SzoCqum9<|ehQq4Qd*iz0YPi{Ygi87BC^1P^o0j&_cDv8W*-_b z{R%LKSkyOt?Dno03t8)phtRAd)ye@_)*n(ZT?TkCRcF(?C4h)(f)T!kb_@Bsq?~ez zQiQ_K1p5G6otpL@4y=8o4Y2f? zbR(E&9jFSi)|24SF`iA+u<5h%BdaZOst}HI|9#B(FUmbh1^zfYM9~u@aVo#MKlmf` z)0e+f&bW}UbE(43UrxxZA>ae8YpSS4`WkTN|W%d*b1_FJ-Oo~3ZtK}^@Ig$y>9a-rlQ(1PsEK& ztjnmEq8K5Uqf&}TD)>?Nl8iAeOWQUo4!J~(!U{0^n5Rm}QAmPHrTSrTHxs=R!D4;N z&>>2izb}#_?RY0Mqg4D;)ll|Z-=mRHFT-2n`tAN-nav*=V5~YsTHDh>X_IZmcVb1JW;G(a&Q|6~utkR11CR=<@1Tbmw!unV zaGk*}bTOk0+aF9x1!r^IDAhMP0`FeSMRVaO-2$7w-P-x;C`_tW;=*+q{%)Hb#}@_{ zYcBTlug{v=j{KGPdO2A3-|y{7wH&A4P}{X1G(OHhiJ+PunotH%74R~$4-(c30KeD* zCer9?Wuhwx<;&e*;;ki4<U3^%f7w)!X8adj@!WQzi- zHFVUegU?3T{D_8LkdR=?f0yl^rPc`sd$pXMofauyuSS%i$ilg2!`60VSw7z%ufS{Y zr_zPg(7e`feTqlg1^5!D0e)6X^aG0xkq>-Qa3#t>$5MSB{b)dBqcC{gE7{| zBKaz0$>L&8=Acin<00buPYm}#a;b;G_jrXZ4KeSm@Wm$g;0&d}jl0N7M9M$dZJj=! zEi=gNd=l`Bnyxmf)a7wVec11kf4g3)=U{Et`4x4a00y}V(f7IUOK&(^i9)TsXaf%F zyjqsUc5dq0Up_8;9dt84$sU=1W>|wMQ$C`pgYHbr+7gYqodYR$h0)I+S;zobbj+M; zm1fX)%%hJOG4Q(v`9)^IZ93sL6OZew%F_!B9tUU(SI7`8ULKBWuN2M}-)nOQ-w_a2 zvIG@`Jg3ZuLNAEEdWWqA;F{)-1d}PwxKl7$bc>HCwz--1Zk5|oDRSwxCohS0QR_M>6&Xuo zME&(K3l7Z=#(63T8=6xtd@%D@awkvTFuGOkehX0<%;0@(;ZNydk~ffKZk9cO9DE^$ zVq(o_?NYbP<-Fy{O^o-Vc_Cf=LIV#TmZdup!88k>iHHL|oC>?JBy+ZrzM$ma*+APn zrcZw1Mb)(bG(p$=%)*>Gm$82s8Dr2?aTK%R_j|(loqM0MmzX3}K4#kc=I_UR!3!Zg z(EMgIz8f{_u-6tmBNtyg$SB3WvZd7$hKQ?+@uh#(;UrOXVVjuXKyH|mFNu72Dhqw( zCa2x6xoR<{Vv`-ZQHsQmeiITBiX#69O3O^{Xlc>S|{HKqzv_MkeB>0Iu%EqmXjfXo&&o z7-<74q|qreh^|W(Fox}P@#|ZGp|EiThel5R-BC|rX8ND9crm_X8}HHM0HU`C;y^3O zJX3(FjPF6J#}u|X%$&aV-5g9~toWggDW3YaP4a~ecv;xv4ykAm%rM61XR*VWfhro? zsiRgUSdV}mV26%zX6_P0m-PnlSMbp1ms@AduHa2FHYGzzchNZfezTve-Tz@rj~X!W zejbJ_x#6NsUi@wD!PZL*2XZ>2*}?)6E9G`O)xi{&wn!B4Ke1y@IQ}$}K^+RE_RXnW zP{3j+KlYOHK>q*}p)Rg_r4a7W;+NmNSf^w3SbkP8HSwa{@NrR=^9m;Ou)00zkSg;{ ze?D9B#&;`ZR|BQI7$q8`15{XU@7#_6HQ`E(-7RJIDnc|G!1>9Ixb=OXaX5!vJT1tW zQDM#FJ$QMZGUuiqMt;>KI72sF%S$6vyA9E{eKbLhpU9!~Dc$6f0u|Cis>A7VhUb84 z-S=?dlpOYl)Gh%-7|O()h)&JUrWP(a@R{=>s77?M|3Cca|F;K2e+q5A68oc@5c>&Z zn)`w=OOgu+X4ju`L9Z>4)NED(nr19~kXr>>N!k12Wxr?^1VIyPsP$w8N!Q||rxu5X zQ`yV*d&Y~B$h_>E`kze+smE{mS%9|Pw}*D|fNl@|l{SAGj_0nY0IKsBs!r}>H|Nz~ z2z533p&%7t!^W@*nN%SIfq~S+KsiPuGr=RhQ(Azp5=%p|Y~IYPw`NfZ!DF$k5=*&9 zZb+7@;yn$a=DigvD$+gfUnz+md?RsBava*ZU+BP2EK&vbqlWoA6EFxzqTrWwHSB^}ViQFJ$lUANCUY(T1Ufr^SWtNNhVNj@ zIY-)S*H%Oo=7~947~wjBNmZ^VOU9StWhZ}13h1C6M1(neO%MecF~8huN~WO6Xi268 z7^k7hNK5ha#6*PHGaW=oNglTrj4e`vVv`cJLs*fDlW{cvWZ`_F!F}{Wg@g6#3D{We z_e4KuL(Fc*O`aiHSow2Vc6Dis4D(&podLv(t3M^7b%{($;j)KHs>7N^KUbelzeULE zm;b7AwBiiu14I9^eHcW>JoNNPjI3IY^=UQox_ znz+CG{~h(ma(tR}R6*Y)Mcg87wAwvy{G?S0HD={$_$2MXgVxzz&=`odIyU>?3=vSu zD$_n571j+xv%U^a(r)!bfd?68im7Av~&x^SIZIL-nP+qqGB5`?F3vj zoxi+N`L78FY-76^%TF(J_}xx>y(IXH|K#Ep+xMnh<`fVJ>OoD$v1L$zB1`g{xF}Hg z_C^B_N!`!8VS)1HznKV;uaTS|8b7EgI|<|CfsJBFHC?nJLXvlO`bYE(Tkj9OfBZ^U zR{YEgmo4Z*rZyB{|xyrJX_T@GXo{Q zFM4dq!n7)-Yy!IoL^!|@pRnwWD{bR2G4L~VWB2+3z+IJ%0IBBCJ@u5bvzH&xAvBu3 zJQVOTqPG*2L?FZY4mOrwdapd6R*@?f`Zw|{_mU3gGuji_J3LvDQBY`-^EI^;f2Vv@ zmE8Se)LXV9_18{*=wTn`eHbb)ANJ{jvQ*WA6^xpR zuM)4ZG#7dmY}y{y9?us1CU=(Jl1=kud+6^zszYpU2I^81n5FC>Om<|A<#|V3U{pYu zQguX6C=+>1bG6 zEl==UO`zpoOyo&X$=zg1mZzneS(ln@_@{T@K|%^`3L(y|p9>9!3g^hGVXlMy=h{4S$?^~4Gr>yg%P9(vUGLmk@_Zb0 z|86TJK(QFM@8?t%b%eF2>?uHx|Lj%*KzqSbm4`*U_qrEUa&r9bJLh7TDd(h%oJ;)c z#G;q?lFt)&e(0*%>E2U)D!s&Jy&J#I_hGO=W_B35|CV-;qY4YJlfo%gTBf2FT{ z&Ab5iu=;)_J6scB*Vg~LZ?8thQCO7)Go(KK7xIt%0UtB+vkgDaqmyGZ(y4j5A%9?i1;|0x=P{O&ohjQ?x7zP$Lei*9-o+=?o+kVJ@%K~pq zT8N+|66B6;EI}ZXUe1E{Cbn<8s%&=Yzqm-Gs-8gKZ1|Z{>bg}`ObN!U>Ip)Q0AaF-vL(ZCbe=&P2M7zhI4>Ww z5-;Mu1#FNX;p#kqV@UU(XU&a-58vI5OfHsHRHr7SKAQG6!+T9G2fi53v;84I{fqj% zLT18MDR_H}X?Z;X3cSy&~_yxgY}_8}3!i_k5cwi|!q z7LHWXHeEMN+qyF~XUj^68C~XtniHtX!#i_JLiJpa&_cjS-7O$f&1jaCf>g|W+b=-= ztmF_TJJS?Q0hU9V?%|oNn*5!DIk>2Z8Cq#gnQ5nob7V8yYov)R_VmjE8>-PNn9WSf z^pY$Jz|*{#Md;HQF>CNNa%ed*9mp#Gu~QvNp`0Sb46m!u;PZ$8)yvyQ7arcFtTzXU z6RDgI`%Zt{kX;$i7Qr}_Ihq_euDf{h8xAibS%oEx#a7po@ux)#JVNjcG9*7aDZ(6J zNJ2fXk|vpG38Vm{amJPpc6;iZbGm#zJOMtySPZknsiEL59vum9=nbDP@VxBzx zU`69aU}(s6i1kW3{m>q+^(>f_NptBJz zJaw+4SeLm0?OSQ}xlJAq0ZjqP>*v;71ILMWz%Qq3*^>oMf$ecqHY&E=&L|3i3HUhH zwCQlpd1x(f`2NYa~} zm6?D9sfC*95e+^rCLjuXx1b(X4FtvlKG{ToRScTPwpvw|IU!`+ug^8>-edv${Oe7> zu-R6|17EuF#|?IBI=&n5!HT-jV4Sugj`P;a!2Nm;E8E1ImhdQNuu%JzHQNpD zez2I_11-$q0Jw(MSxts!r6kSo|JGcnfD;{LEJi)bMk5pEqH_9l%3Hi%)<6{-ajPJG zG^@+Ay>1~yGLWEu{OkG(eUfx&fbPSO1lb6~h5CIdy?ym$5ei;rITdOn4Ox-_>L|%1 z6la)*B})dAWw&>71y3qpqu+nt*6U(U+2@284`4vxL2VEU7SSt8W>Q3TU}IlyMhFcZ zeHR!2t3Q=FEGPXfz^KlS@n<7XoaF3~hC@lYR6)KNsDyr_RD{HSFa!pnA*MW6CCjkO z+7Q$u>2KOHxxwk@*aW2UK1_8TSMuHGrwSj8H!X%57mzZzxHo%)8oq^ z7GZ4PyUYc3reHDAaKXir?hU8{QlDq7yh z9Q!GJ;b>Dhd)L$QMLv{{X#iDFgU_}FP9rsdI&@0u;yBNy5N|z^eny7ec`{3OW_N^B z^?|wZGmCgh(~;RdgzPye>K&}sSNq=8e?>ojgNc>rr3jfv6nuJSk-5tsg}P}eJM!(w zdg*m`wkM@Z&@#FND87fwgm!169rl`Vve@}J9n9+jfv3$GO?|uLEhL(|+mo74@($59 z;ttrY#{0g%8Spiyb3quJJvb3PcafGjJLVd=X1MFFXwI8c2FU4)w*CH@XU9Ag^GwH_ z@lO|onWa-K*jmCAp;;~~=q1*#SzoABY6Si1396Sp1u>LAzH1aiYDC`bsWY|F`=d~; zITxHg2Aj-SC4ag>g@vuo_;;`RFu%hB|iP#f~G<1g+mEQi)tS2fB0g#2NMC4)czKEs$RZ&4- zMk&$2e1(q9_l+UhSN-cc`T3Ikc$fa8~Ne&loe<_ zx9@k}vyk+oy#Dqj=Kq;E-F< znTF62R=kp&F{H$S{2?N_ZZt`>->jIF8c90Y|sRCBjN=+$M010d2RS7 z%#mN*G)urLK*95=I;_*hOT_Cmj7+cvi_t3BMHk{ufeVX2t$gTWbih*3Sx!?;Yv_Ct zyL-wiFnl@h@qgNyF@*oADBZ}&>Hgwo^IQwVD0!)vISXdaFGKG|7a{f2`3dHVaJ;>4di~p5mE>^>02s8hF(j{T1aR4-Jz)7VM{-_%`Y(XKgXe zkDE$R8<`k-19rX`2{|=QP9*Ea!Q|fB-XT>S8ZWS#Th{_|V@E4*-f1if?dPJ?)6=3) zd-{$Ex@~5bekwsYzqrD7k%7L0k$@Idap=mgu-*5GAQvE904fd!BCsFTY{Z_(GLD91 z+vDWYE2FP|{NIOmMTpNi)w#heOJl3yQR<9PlPpV0tF~sloX$7SZpxG>Y;Y1U{TmMhTRy2PPU&h*T!_zRyR{LU@W=rp>@55D!9mVslA2IG664c z58lXaEc4Hu@qq}-0LLjGV7`ikTy-6^O_if{M1@Loan|XjrO|ooA=*nqgV&S6UWT@H zpHI})0%1kkoI>vTYhZ1FT4t_M#Cr4`8lpE?Az>Jy2RP~xu+-AQt9v27Ju2*o7S>lW@X%=y+I-!sAFHiBzsej`~{1GE4&L2I}zZ2Rd zOS#CzkichDhqpM1Gd1e8iKzu)xy~l8FDhk%!i!IZ4ADZ^I7Ug0HHLA*@E%@D=}*3N z=uq0vt~9jz52f1YXA`fMCgbl6AkLZcr2n^SbsCD4#_rvuaq+uWZphBRb6lMq{yCOu z6}3+NVq^$5GO8#spVT~#Q3Uqh=G4f@%`bgq{~>TB#bJRkx85EBo+};tMmxqrYE^`h zpfo5XM!6Akt;_h|@;N4dm)pN{=@F>gKUg`K2eZD+MM+UPn?m5gY zN7W!LJRMDqiqb26@*aJUY-DkRhxeN}y6W+~t%a#HOf-8>%9Z^j>=-Ho8-`06`_96; z6#E(>wIZO)%$-sU^bEOcBrr3e21#P=x+CFC-sYo8MWEO9d`Hml^GE%yXEwG~2_c56 z*nD|ZCrf%++_Fv8OoN3V@siLud-}w=qpAp>vXi9AUs}uB(M=UXoT{^7N=Zz9(~1KP zOHCb1YXMsLb3}G)7eAI=dY#rgTK=WbAK>XfkAL)AQT)_*HE1dp_CBwox>WPQngBEs z3*gsEP_C$=#Ze8WdLhX*jYwFHlK1+I$p|gecI6@&AQ16r%Bd~=_?}Fl-01^}oZEZM zwfYa2Y-HZ_mZc&`rqf7yB^aP0#TQvYF5Z6S?Qkf?Y%oZKAviRELXG!UZWpWC;f(pX zCL)hLj{DbWS-eUL>3x4POT0Hh9DcEu$^oV0NrH7u#+B_X2%AJL$h-oPy$!c1Q8mrb%QDhO+RD>f&$;BnvH}tZ1_{02bD1}9JIbKkP zC8s+kcxMmuo5*)AElSKrb_6wF;Sb>r6yw*FZRk2yM~8T1n8eJiPeb#9#?r#ddHG(wA?Xt^m{y*O)1Z*JwseeVCYRCRiac%yakE@|T%9;yS77EqSB zG!zbM{hU!nHZM@k`n4D%Zu@iafl4GeH`wJ59Aw5(3)N`%cq-#Ph9~IF zk3_)M+f`2HD#}aD040(}A_X%=PFrgOZ!YLMeKtuh6A`EC`*n(aEXQeRV@yOuVE|f4 zADkUQvOUy3*Yei8g-tLFu=Kf#!=Se&Nv`iY>InnE;qgnP_F4J*))BK+uWMEO=Wn}n zVcW9bbWS%ls2Y&(vX)iq~6*h34VE&r_z;o0gU+MGBMB&!*MqsgYokw3&`(BYy|=2}rYUrds6&Un6)-mQ zu>Bc#pyk;K5s}ZyNWUS%lrF(~kZ#XhXB-U&2PWYK25}SV6qVOOSc!XD0Aoc;_}0gI zH`x?=4#~=>ozS;yrD2;JqVOU{nKwflB%Y6fIRD$=I}#YPuZl?p|hcyi-RH!^)IX4 zI@k{q(I)I&5C6vMs)yScf8A;q2C}UhUU%QUU}p>Zvw&aGALqB?fXOk6%oPnERad9X zJPi;8hZ1QCGSczbwIXri9ZgZ{d;pvL=XxhPTuHPeg{wF?00}r;w8bRu5orkt01iBm z21jZQ9RP=jD1`_Ql;Dg3a2%LMW?`SR-v`jqFhKMS#HU z+>uR3zQ|ffO1dBVB3!OST9VL(N+SU%3Ven*Ejo_c?sptm^>H}b;u8}wTzIJd!_DGA4mSlO4OqW}68|1SO92fkTgsuV!brIuseRUXjJ>sHh6ThWZW9h+UKd)Y<5 zGPyk0D@(%R3k+*P1$OUT=BN*N(C9qT1t+2_EAN5(cC#*iq+~nj8*kyTPfy2Oueln_tkbMf+LF zOL?pjgy2Ug?127mc&@a(t%aP=4;F2CyWi~Tkc=ah(m@8uWyp&zDvBVQ(;rNsXnZRNsB+czYTaoxAKKm0RE8e zOOr07TNmj;gBX^NgMkCYMMJ|0mOum|^?efS(#iU~8Hp{baq;q>B|jby!?nQy+P5GM zznh(f#TRYKV)I_^eW5QX>#Es-c26I(EeaY~@Mx=Isgp=8G%0L!bl&Muu_M`QgAAf| z5^&(;{mD{I73R=48Mzc|3)GSzQe zliM~I2hrTn<1Vh1+B=|Z{R3K!cXWYywvfONGu2RjxF7&+*aVEQM#Y7TQV$X2RI3#Z z)^^5QEbvHQ(j}qgxhe-?xEMyPq;v9V4>3nUaOLPA%oYT$xpk$A!$o!SK8mQiNI1^k z!z|g$fr4`$&T@g*L*I|#z()mitD*7#+?7WDM$;{DyNXi^c=G28wWAl5V+}fWIM5U_ zib+v6;NnE72cfcXkc6}BOQ8{=0dWVd1}R9dw&6pwe8Fb(wg0n@o?4G#>i&L&`&>;q zu$|luxlXpWirs;1lA^+H7O}2X$^G{TPymEb*s}x69d0xFp*p;UvY64z1Q&f%3aPd? zQ8Fy?PKp|%BKRvlJ{+HuUc8(q70Z3VHxU-{tk%!wAv+t)8~s3D-YvM{>%IT41rRXb z^B#u-br@2`w?KX(hamuPHVVIX00JCZw_L0`9cU63|D7=dx&UFWf%H*fZUq4tm|KWa zJp^BH(hCKDo*P9E$lenFZ!^YIus(5SqWH^pZz>FOXu@W4q zkd{m8KdHf#B7VPqT~$qa^URxWydj$*0iGB0I={+QAi27=d=Ps~`tsz+eLbN3LfM3XrSGe@rShUJ-7;G8Lr$YL=l+dAmR|YpjVW`d`UmJMDmKj`6Y_ zU2Xb=s61IEUH(sr2{Yla90jE#<2|M#ZyA-6FiQ;!L-sgRZoMafW4(!V+@Kv}bZrHj z`W=nl@?uP5PLo!u8RhzcEjm#420FyS7UOPGFq> zSA1B3&|h2$5_nof4IFG*M7^lg4y!@RC6uILBER3Vlrp{JAoqU_G$ZKh#=;*8!|E?o z){hM=k-H9kz!0up3rPW0(Gw$2LUz5^4;T&f#L9UN?pBXrjXeV+9uV7@wc6%9N?@2N z)gz5;ecAAJCM$uFfg#SS=>|;$^A{^RaIPy@qCI#`4U!mqZVw`^%?wf=7bb~6e zh_GwKJ6YBD;LuJ^i~}R=y1`>okJN4?cPNE4o|F~hy!I=ZhMWfDKeIh_cg<;34BzJ} z@(WGOXTu1GU%)89b~DqPAvpAECeoW&>t)1iTn^+ z1gschRu7|gkK6cD})XafSOea~+Ev-n(;su3w;IoAKZ6S?_f zE`tmZsR_g!lc?CFb_jn6>(NT^D0m|P+s9YLSJ(|?W@-=M zhrf=(@p}mqueV$+;pUoSXqh9G*X@6~6=55l_9!M1(GzVX9FEC~Ixcjl&UVq0X6*Hr7-=1nBsaO>`e45^5Z+Mi zS`u~5MDi8w;c3KuZKnf*QfA-H#XIV6nCDm!iW`wLT-~qJJ6|N)$f+`E@PcJjf7Iu- zH$k;=7P>y5cK6Eo{wfx|v1QzBn(ggAe$uLBm^zRZ+P5`F0?Rm$4?s&c2eyf*B-ye@Y*mj_?a?epR5g* zZ(#&!DGH#km1_(jDfcXJ5~OFMUBoHzZ7_D^I6&B!i{Qu`z2Ao+ zfu(?2WSj)>TC@qV$Yb3(Pl37@?WEoW-&pxEEk%GyAH$y%PE0&M-DsckV=k>2e4#A4 z(6Nkw8HdPp+?X5tr*S0R0{<7j{Gs0+kJ%Y72^BL%+Ta4s?rVNWy4Cm_Cr{tM(kp+{Sh>_CLP+67_5$JLZ>K5L`$*9wb%*Y zLZ?RTS1C*RSFfXk?13xjVVaC*LeF1d)k&Hwh|qAEdEER z#3^7@$6IQVbk$OYUiP8f97o8TJ`Rl?11Thk7P#XkNs_rQ4fmxUUYhlHt;<_<$ocFb z-Mh+V6ix*<*%u;?BdS2v`EPEUS+zxVeRdxqp3MmQA_p;g%X_;=Q1+_p$YnX-AqGqEd6`(`eI@9xXi^xbe&BiG)08VcUY zc9S?kH-&NLP>_fbKLN9sQ$$u&a|I%@#P0r1>BdD7i#F{4voJQOmZuEHX~4jsqbCUA z1ok`n3%oBw+T9c6#PVuFFRQ?|p*Gr`vFR)96#Nz#@X7#vYV3?mb9`q40um>vh@L_Z z!_zhyYaU$|mYOe8sR0_CL#s}EWM1~9&Yaj6+5O}`%ayF_A zmFFYq@VdYj1YqkW_mwY5KOs}!TNAr0B9G_V$ZN#!{9}kx*>>iD74bZI2^h~T);@Cc3hXSzdH|V1lUG-d%f3K%w z!1U9vQwl2SyOy+3)ShVSuKVsX&`D=NT>JX72<21Hz^~)!^8o~^H}vPTUYG7*s%KxM zIT2FlRj~vih>Rs`Jp4R?B{I|%$x1MV+GTp9hiZP5=ui8nw^6dS=lIbQpQZ!~(YTt| zivi{gdXQUYZY2e^fG={x3C^4{oG^H_eSvo_d= zY&cmxB-SUy>}X7vx=EJxV|t-hz;lwea$$dhBi)({hn*Y=UVdB0K=g$g`J05z~$!5i1U9+e`~zzDBKM z5IS>h+bhG$#hcj-s19OC`8~vsxhCKtk$@zIE|{3r&e!HVV7fV!!U15IwaQqS@fTb3 zTSJ*#Z*!fT3s$#iiv3-M;ir|*GSKB`-PHN}^v2zjrz?~8rYOya(%9>NaP0>#b9&@8 z`oT>~9f?RKLT25IQA@lL<}R(?NXhFMZ3yN*JIE~}1NLx<>Fmk$#Z0(U?*1AYKyRN< zD7DvH_&ZIH=6KQdBfo`6wk9AV1dX(|*ayk6jC7*qLZ!2MW>3Tl6P|}xVx@taI^JM% z&G7zxRlf-Q?!P7*vx#YfZ3{F*-|rlC>^CB;2JBXFZ3jcjk_7+vy?!!0wq(R$^iJ$vF4QECg24n9F*-bI(P49TQFS(>C>R z?0PAFaKG`qd9vtkW&vXeK{}OlHtZe$hQ9OmzdcuU_U?Sz{5IJm!o$nk9a)96KR_K9 z;mj;m^)X&n2h4nvKL0pru!Q1!thDL>8W{XjAwsp0AUm-fUe$%aDC&p$m~?}ZbFpkb zDFVf4l{~{jyxe$hcW1yYeo0Mwmjk8$zmb1LK`Gy2c5oF+CTC`fwO!CUTJ9j0kbI1d zCNP4=C~4I6&tMR?o|(g)x-WOfU5vv;lEav^gMEPKf^-o+bbkWX@9X&V{oEPCe+lu4 zu;}O1n}1Awrp7H4{Oeu}OM5N3^;koNfE3~7G51~%fkwzlj?Ee>_{n7ui^mY?vo z$=8G9gD<$-h{?EGWMeZ?+eAwswb}SB&%Gr zcV93m$D%{rG>!X2E5j^3v?Fc!B>#_3u*c2h9wCTRV8}ifzO|U$opW3#33D3&Xc@Z+ z7TG$usQi3sPQGRu)f(in!f@Qg)k#MGQtq7_970@Yw^2Kh(#b_aeoyVOH-!= zK=C6eesXCCBjZ)lF<{%&eA{6?e6O3g{&9IF1DE{%bslsc`HG1B();`J-|2eSL5C>t zdUlfMyTYd>^-;bHX< zR02bs%e}9?CD-3B{b(;bU?_th0uQim3jI*rS^_*;hkn#058o$T2yA5I#=iasH zgpHjYjW40h*`v8V-II)$u?WqZ+;^{p9rqh@V0#G2_ipi11phYg^7^+k<-hSi>LM3q zN&CG=7UD8$3dnSD#)50vvu~I}9HVZC8CjoG?J13+ZoH*+-W4I+h}pPErlkmi{?{of z8tY_zMs}6jX|>+VTYNU@%mTXhvUze%IZfsLY=g?*5UOWTef++_{7ozM!yiz^-lX>n zSrYnnK17K{Yfc-}MZk8Z&^{& z@0~s0$#v=f-$3e|akL(AvJ-)E(--e86nN*folL)=O(>-3u<_Y!WLW?7*`%_3db<}` z;?EVX?93q*jA!h)RfFDzy7UB}2V!b5CTQET?Njxuo;Y&XV-kAJcFjU)D?&h1xknly z71Vzi9DanW?~WB|%FQ4HgaJX`lr4{o<81Fr0uIshB>9AOKqh2&Np~%X9G_SVcg8;T zrW2&_^%2zG{PCNRKjreToTaWr?h=0>-k^HoPTWQJhqKtEm8obGyaMpbhvtveOWkMs1lv|rJ9q>G#6~nGTPuQn zte=<3DH^k((?bv>=P?OD+tXFmeGfW^w6D+E&4HNPxaGp@q04p=?0R&&OtOowYHr`a z`C9mCUI$^I@4Phd&$9u?$-(&_Cyqd(){hn5Y&LV7K>~#iPh3uNHzT74+8$04=-Y^v z@=xS{I56 zWw77pEfWcw;oeZ`6`+KbjCv}Ri*6KvU{y3OWEZ#{%Pd@0t640jjH8&B)C8svTdaTW z2zwH{A|ij8O@PQg@M-;VD$iX?l|`x$-V%Z_VwUV$2^o1(?>Fy@R=lXfncv z-Rm#*UhDV318(cX>FVx@n=PYQ`3<6v8y|pFn3 zC>s@4mOFizD!lx$>2$M;Um!mf(VNFbu|ue7=E}CWj}>=M=F<&`6`IIEJ$Tq@I5TY=gN|U%yej8s0>SM4q<#1~--q_wX4f~4zC&K1G zR|joYWVlfi8lo~zQS8~4kSs`90r_r!;gLp@fX8OG?U6$eG$SPF&xeYUF8GRj^ff;VhzZ~Qq)#~-Ee}CcIa=&&Uob`cVyHS^vj6>!GBx3 z|J*U#P^P%vLdjz^5xQbco@2gyTs1#GsYFvKFSR5naM(-!qn>r4q$v&RtRRzRfKK*3 zH!|?bkhB@p7xR^Mn_TA}AnI@IXQ%)*#Ytn*_0{@blsW)zRiRd%N3Ej$+DTLM* zL(VeM39Fc~b*nP-cu%*#ipPzwTrXt5y&C?;-mqG~7wqw7*=8p{=#R`zalHO1&so}( zVbkPRd>NrRxad?9O#UtI2SFL^-7A@O&7mUqdhDHr22wL+<~(;}fn_!wDgL6==~QhU zCC36jQ+uwIu4B#RX9b4?5y+n}12+oP+Q{(b@~SsTKl4E= z-uh2Gb(Uv>T7ZdK1Iz^0*_?_J>5=XsEY;cG+CzgrVly`{|Hb%C&Ky&)$J{tEE_buU zeh9oBouvT76aNMYB)T1kD#&k38){QzK|=U>@m0{e{O{gE+HXoEloYx;&w32BS06z{ zZ4VGxv$oIKl`&a(G`X`WMp^r@d2ch0pAThzd*&SG-l4Ek68sfapYsVHEjGq+8bh7Nl5{(G~Srby{@ZkT}66U;j8 zvH~D&9xlz~OPxImYQc1{KipjUw(3NN;xc_wQO%-?xG>bF4>z5ilY#c4)NC4_|@_}l#PO2y87urvp;$`Z*pJ3rs zGecR_g8H_iz#W(m13Y=OQ=nHZl4Y@~b~A}%O^jpzcy!1u<;$M`oOTjiMY*EMil`&wl(^E)X!HuAF-^C1GZmkR zUNa5SdQ3lV{xI#W!F~nx&xg}?!8Eq*AI`nUH}g`h1ebj{B!A2sq*{$K0B64mq}vUd zXSsb!0fqO6RTHLNO-C;WGVkE-6NI^PLS~AUDQ1N11*!r*0>&0}GBgytDG~Gwb7$;b z#?(ImX=E|Wn)z+&zzDh$sv&yTCiuF2VA;*GssC$(4r9hfbFtVZo^(t{!cN}OIk`d> z6R(G@i9tuMH`Ble2d9y(MN?c=SF$b&?W559f1_$;c+GE`gLJCQz`Nqs=<=+}2)Co) z#jy&a{uXs-$%Ny5(lE1&)-;PzrB_7v)Sehv)+O@%_br^;m-6St5SyR66z#>Rvlh|n zZL2SPMs>_~a@T)t2DV(;zQ_5B38E^cJ?1o=H7z z!gMVb`Mo%lq8Kd*;t=pXvwT~k-18a z@qu%NkFb3T`SdENf}nsvQ_)^$MLWHBZfz$s_9j=3_@_yH1$7+DhK0RA!q9su$|6-d z6tw2@K(_KtprzhZq)YdP2S-k0xy9BX91I&;kFG7--~V3T|7$t%-GqHI=#fiOn??c1 z1V;i#LX$oiE)WP6zZ4yUsiR~`;6N$4dcU15ry)AWiuQ+sA6?O7W#JKZ68Ynh)pG*-w5;k`VD=pGmzvTk}g0AdaYY~!RwdRqRZupF-^Jx9DKxbtNGRAkg!2@8i$W5523U&Y}{!gk{Hn z1TFt`2}&g$Dtl7S_)<1D@rJ6yOYP1}lPK#dH_LY#vX1E}aj6+p6A4SrC;7d~4uIFnBxM?1~J-MzZM)XmxGWR^(@gt`)!?DjNS#0aeB2T!vM(ZPT5AyT_Es>Ic3 zYnjuY{|@Pgo3*6BHTtS#vvmdQSI8i<8wkhnNs_SQyCsac)s(kmNFJC8kmq$tZ0bMK z?Wxr!%`$nT{AY6iQ~%BBc0}RiaRh~vS2H)ZewKvN&8eI~xng@OMqZQ;y7ZcDKxpM6 zXO(aqlOyVgVurWXpZ0PIs_+bUdE3{;H$-)@J?diK=_Xf#psxu~r>LWi*s0st_t~Ww z5e5rP%_2Xd=!U$l=5=?zP<5|g4^Zzr>z&L(9w+j7cO93ZEb+n;@s*w6(-FqRfg|P3 z_+TyAa~s`vul2U8w-$B$2B}WC_LrLfeA=?-2Cs<$Z!|Fl81g7}C3EA;$;2 zj4?d>lT@1_Jh9V*!+*Y{d+Q+}CKetUpObm#%Kq-8`|%8^x1w^1IvtdY{ zc%v?w>*B0uK>sFNPE`6doph9JVs8n{7+}*{qKT)Wpt0XUN{a*6adk0J`=)FjzJKMl&hrJ1@r!r0KRSGl>Bqe(|(B}+XWCFE&scBD*cj1Yd^nR{)!Yep

uBSQtK1hMwLR?f60l;ch+4wBxo$NqMfNOB@0@NZFrZzX#Mql3STGqhM2-2wG`rJoq zJ0U?b@TmKOw8TI1DrKFX({ncdf>~E~MBD?1*Wv1f+?fo($tZhvXTW`hsJAVlo^ z;{|pbu3qtyL?fkG!5|(QyObc&O#4Yb>xSgufK)n|b{`#S8_~1rZu@U^&!x{ zp(&N3BZlch9Cb?5z++=M;z`-w<3TZ2(tZk70S7U!CJo8?-LIA8neK* zv@?$_S2c<1f}`Lv8;$DqXFo3^#WgY{gPv9g&BIUA;!n$RsP@jGNIm? zQ2Q6dSPes@R)W-dxtsRz*|VV7mhgjBs=SXjX6w#6wf|Mai1Ixb$C`L6}?q?mdHhjJGTs(BPyrlfqQ5iIh@M?q83Jq=A3)iXf&HsogV zI&NNI74Wlz3i7^^zLAEZ)E>C%gnQBFBna_(%|hZ$BxcYdv=zV0pp4s_ZZ+Ni;ZrK& zi)y;xL|>4=)cBm{7t)_(EpY0T#Azn*0m)c`qd%T9p%`_ZC>ndFwb0A!%F&j@Q_6ZO zOJ0Y*O*~evUiM8^uH}5D_`?)5F28PgS%9a5UX%42i9Z*t3FHA0pFa$j6pjdlr~C{AZl!;RpU2e$mwIqAw{bOkpMmj$2lM<6_yK7UJSQwY%;1^L&OK5Sg}u z>+mxGRY|C{fF;6-a_0Pw(__rW!isdSUWk4nkxj?)L)3?O6XLSG`aQ5YeJ1+gd?JZE ztPmFE4QqCBRRg1u$k+&U3+DQdS+Ht(J4hEH8zB*wT*4y(@+HF-|B}P z==ZvQY47(j6iC@2%TDJ(p78Pd>%=jj8eb5jw+O~jSl6J>EKJxR@cZ9Jag7X(TxpJW zNgSja6_BsV0RmSGqrNJm1ZSMAMCYZ-G~HBFAY;dr`#xpwbJSOgc5)-2tYxJV3v^Kb z`X4|X`-EQh_2d^KB~4U+VI(ZZLhG|Cfa`iH3f*%Tg~H`xESnG_+FeP;!;?D}&LO2c z>nwHb%dDZRPDxW~c0t>emMZN3m*^_ghMkx;odD0+N*`BDw$sMl)@wGKqC~J&H}S_A zie;t1Nr}P3H_K`+J#HY@u&4GB(unhHG<$$MbPiDCP{z5HARte!#vYa{l>-i7B|+D^ z&iNG%0ZE_Z0p5nqwVJD;*Bq@zs3fY8hw7w;f@ghwzG_5~VbbKc zg;BmX|MA>&pTJ?D(o$HEayPRoIGvYCEL8e7`Ap8jjspI6T&dsf z6U$%ar?6^F3meFDyO}>G@*x>FWfauJ>EmHs7UE{H7m2=2j82pc9s3!F%gJ>>GH(mT z^bbpWaCaj7Ahk|ykf1U+8mPlg8VIMDbidV5M2)Yqk&tfY)ptj^9eDmYLpPWD;@dF6 zSBk77y=0miJnI4Sp(%`OBj5NG&R!^!$zp`|Bt0Mn*p7s-_#c&>Futb(GQs94S&!sv7N|J z#AzyQ2DljiVB_kY65*j40itB(Jny0THNewzGp>gSbqdq8mNI7JFQO;w_cP zSRm=!V>$}ko1F$v?@Pf;hukWUmbo@{&~`#jA7bvnZ0Npb@MuMs(2dhwZ0|=nC}X=- z5WIF3KeJb5vt>rU$@%NuxV~O>*zATn%>kLM8)l;UWLcdEsfqY@Y7@naU|9>_xs3y8 zArlQ(we`F{6Jk2)AgIG42p6nbg}dKk+Ywlm$MWX*Qv}oCfx#CY?Tr!0~H zwI1$Ud2lSmBfiog8thmw8UB^w%k;6LfWoxbTx83(DdMecBv79LaEXp>m`@?JgCdZtCXJF(ak|y|ngi4MeWI{OWB4 zqkmW!yxlBh*HYOlXR}oiv(&LnPmV>n(wT{KAMV=*@01li4~w~+4~*oFB!n@W9`o`9+UN*qvn$6O!rK_3F z=7NU3H&rGikTsQ}fkc^J8#okJWb{#Pd0aB3h-E0%rdTn3x+i+e=eGnc#;yi?5?nso>x@;Hk^q_gb&4v08&h>m!Pa{I4U@e zt3$=sRr6C6kqqas)VH{s)=h5Cm^SGkbI%_yrfUPs27O9bcFrH}p=yM+{7q1PhQGH65cnrCuJ5382d7t~-m(8NiLS7HD zGW2*IpS#fbem4Lprgc-Tns&vcOj^q^OM&@r0?K5wlz5or{IY2XtHIBpewy8AokSGK z%|&^wC$fc?evz%cW7D3$dCfmI_BS z881>vgH>L{-tV4i`(MKc>5N;+S7es~P}tWa^$rX67aCZ>fAv5v#O>&8?Q)8#bmf_| z4>e6Ae~?8*!lswTKq}sfZY%MuP^LsP^uojiYa}~Wa&@oX=J*5}(r{XL$(6U@=B)F& zJmM-y`|xOFSi3@|8W+!dSj(JlY)Nll){Fsd8D-1Ln>s_jEf8sE9IZTT^l@}RP6{EoUn zn`5Zj+1s4l@?wNUOe?M^IETA;NADDeZC*m%L4Rv^>Y)J4Q=%ll-4t9#F9=3SCcBa` zedRe&Lb(`Ixl!gta)8l;T}RU{>tP4beXuba!(jJ=%k6U1o>Skw^VCT=g`Zu(!PCNd zYNG8}8Go=Cw8}kqwb{gC4EBD);FHX08>7K(r;%TMIdZ{ph{HZyOM`$4cw!yv54&X zcQo*NT=+5Ns!5?<_hL<37)hV$IAkvz=|*`Ixq}lh?V}TB>?%e6uMmOpyqh1fs=AbVzf;ofs@m zqMywLdEC9HQD24%4o+ph>I+a&LdNt(4e>+^bHjg};AuOHnEG*b*4kK~H=b9CgT=hD zSZ*ajmd;FH&=VtZb~#X$h7xgelx-rv8gMdQIZh;0QVP01j;c4n$*+Ln=t5uS#W!p9 zP~^-@eNGFq*Ys@F}h&Mz7fA*_fA$A?l4G3)To^}-*CC1h|@ zKkg_jmm>81O)FHdIxho5a#bE2NJXwXm|C&qkSuMMyusZNDgxp$P~FpCSfOj}4k^5; z?r;Q2&JCWZtdQ6I~qgii=fq@1{cDAY(xa1=J| zjm>J{2W+N$Skvrar{fq5&`cYnA*wik_%u?@QfT+xcJyW?7EQQ+ExMTVjWM%(a)dp9 z_si>^6US*F{W5Z<0U^F`u;IX8*^uS*;w8BBKtS?9FskLxct=?mcif|o6K4*@$y+C)j;fBpg+PK)vwfjVxgYG)Yg z(+M=2W65ZRYxqCC9tgNtQwF$yk3Ao}4X=|V9;^-T)!n-#Wx3&aR|M9MXVAf@mFkPb zXVswxv<8!~GbOja>dX{w=PO7)No4alX>37&X%(x=5w9o>{5iG3qnmKf5%?ezsSCet zS2|@z+4y!e)YTK0Ui6q>__8^7_iJ>n-B9jQUSeKq!W(yiE=h()b<>Mk(#ldSQn^~K zdw7y9;1M zeg~3i36FIt3>+`ARV8S!xeL+(s~Hol)r(IV1)&MMrUhovmk{yAl?oD_-B5f3Ddua| z6ThWMqY}>^$c_+Q=&fjD6oSG3GON#aFNf@NP5H5ajh@e2RPh_VZg)Cag$TmtBXNR! zl00s|XLn;O0-mw6s$uaRsEcy-7wx3!)#|K{9gd=mATp2+s#ED9E7ZBlNLF9PNT?dh zsUM8{gPT5CDYvhsBwu`dq(B+eZarv=L0) z4mLg6@#3=iqBu9bI2nG1q0@zaVJ`~b6`Ab=ZwT-+hl;u=-e+dzRNa9NF zu~T9PS3mKMvy~#)Mu}kRpNt1$i$wUy%Y7}vcp5Wpb{idIr=rAVcmAcDpmuL zMnnQ`r>sFWr>W|vj{mC56G1EKB(cgBB~}paXI@4?)la-;H5u;du3JQ@Vp@05ax9X$ z=BklE6WOImE)mD>YEgD*U19Y&{gCv)1eDKacrmJdwGfoIx+v`tLNDZ`*8cSC81@@8 z{WB?H923#T@hd7#swCf}u6R~ADxz){+&+V=k+QlT{YZ;Dpx5GND@dKd*&nX-PjmzWSC;2zKUBCVH}SqFPD=kmg``wI|utrLHEKF!+cLmsTyy(EE7K^tBF)a z5?6i0Q?2IIhEOatjS|~EyS4OxmKc}bNEWKx!H3Lho-eGd%liCOKdZBs zE=$-(>abpX<#xf5noP8IiIKDVVAmWDv zOIKus2RaWfMisIz&^Kv)J`o`A-X+}Y;&MDSrd5A$Iw0i;u?*|vIgSVw31s0xCrb>6 z6Uktfn)0*p!e-1;bfrF&RhPo9MRY1NoK2M0@T))AzIaw9CM^$2fSf$)sihuW@;3aC z9DYtQ(>_81-^T|j&9Bl>#A7e6K!=85?RG{dX0dx}5j;P$?;A9oUJP5{)VvdWR74C2 zSw{-44BAqj(`q}HsluU=4C-4)uC|W?;bN~IiD}}ftOMt-fuW$dx3r`85z(3OTuiYa zQA>|0OKXIiZo)tdu$t*$@2g-pR~ckKADCi@{!)tp#~#PR=d^Y`{g6%&kJ8kdQUyM? zu^t?ux0{7qUJo-EKr{GVg2QwIl4?Cs;Ckcin(IE)nVJCLjRNMY8e|xXYvY%}xN2Vb zuYIfo@PnC5Z1?~L^m{%|44!HjgNT21G*tpGJuguqgu8b;pX3QNAWQASV#$|;+R}BV zL!4u@boyNBA&9^>5%M`qMsOL=;YfmeLy!Bvugb?@FE?IHr7wttnrA*M0)Z)VV4=h~ zlC#<}unt>6b4Xd$AE55D)QGo_ODk)?&StXN)FWfMTOwM)N|=nju#Dbl60D_&0s-Q% z78w{-eZ+T;dmfIlMtL2P%cD{_{ebFiJ&=kQL2m};mB29jag`j8^pASN~$@GVQtgjU1yvB)j3GnJK0o;V!LL4|Lj@* z-Mwx+)Zmcru78sd<`=}2OS^!#q{;L<8cb3cR#$X3mcS^^ZE-aKMQcgFb#qYfzKkmT z!azVv#VBekjxU|-FYgkWV03$dXfTr?iWrP!AOR!;);K#zzY6?M^Jp7!_pX>6t)p7A^A$RY>h{|AI!k{2BtQUfK`SMUOq-(QZ-D)5Ekt zGCH(rZ%?$l1rElp+`LUt1=>xlm#xmf=0_=}!XWkN4OMOhx4HE)lT#x&lYp@eL3HU~^A1gtd$^&L`M^J~Wm-gPkYpg+ch;rr}q$pje7jtuLo>=DV0~w{mTr3PGYTg z1oqM6yp#lBRNF_cL}xG? zju50@c{BlL^J#u;pjqQ#^x>5)-Z)v#iI>yuVn~}vGfvssCA2W?W?-Arw_eCboxo`K zN6dy=c2?jxK#NFR{b#Ytle^xDlLMXN~KSO@4#_lC6nNjX?>?}Buob>Xf#-?5dU9wd1kY$ z5QZ2nYoi}5TD=^0(S!aBEf?O*MPjKcTD2rk1CN zC(_}?e?hI%p-H)Vm2tsCVj zMkUOI8<>9amjrD05cNmiP=GzLZ?&t=c^}LOJZGo>O_Srx{O|NXVB3w{_8&P+5j41+iDXOAHKTJ>wiiCP^h(=d|FV9LeOU!eV+g zi+EIVuiN_@_wAF!ed%XWEsZp^IXKfexbaEAX~D()i@S40ckBgKema_`qnX^i;17nf z#Z-~si8!8mM<1j;^x&xsz5y;@PuNCZPYX6NkxGX5hg1{_Swp7*NnBrx%voE0V5PZy zk*puFjO?NO^wC#~xbR{dnFM*VkWTL6{vah%dptHm)yJrPrbN9@&}!mOhTSWB-D zcO7i*K{GwyB_w9NI$xMU~k`YIgp*22Yk^kj1W|8{-X`U$=L1ce4TahUJ)CV52@?|tZQZnXM!-o z7b(viY+QFla&@^3IkqiBg#^mo^z;}x{ugMpT&{;Dp)ZVV7KE;U4=-P45yM-urw6*| za6?0$-mB*Q!3suS_*=1LOxX0qL5u*&Rg78&W~otb6j_q(^bc=Hnzr}^EKqd?#LUk}5 zc(rJ-X{wxXtKB@KUrifl$7lrEHnmO@Ppq9XyZIkI!E+5^Sf<$(%yg!SZol+~m>-Rz zSyO=}m$YovnVf7SW*g?Xb`?7qaTpOTh+5EannV1dten3F22;$cg`vj6RKg{tn16CK zT^ ziPJNB5AO!jd7N-efV8wfl!U{p-~4WK5d9T0OGC>r9zm=c!TdSOGZx@$+)r`=F5SRA z4&@|z_ou6C0`7$?_P;ttbPQ&yAW~5#y;_tgr?I;8b))hSJBE`i&wjHRn)Oi;_yK}{ zP)Z!!8)wiNRu+DC4iRN6VCZlVV*bycu$H_c$BofLAY=0Gc^XD2LKgwE#~lP7pF7a& zH!0jOJZFuVqN+1}qY5bo*uPhU5Zy{fYp!f1^7tTd+X!Wi^-97)PkzXobK&Q+vx9mp zASUlv>jfG6Aq`QH4%TCihc$lIquqZO-FLFTA7FFR6fIh)xYzLV8wLGsyP|&c zk^jyFU!b)y%3@?B;2pP_a!{;N@yemb#^~z8juvL$8fa)1JE#)OdfamtN`Ayupk6ct z%w0NiI4zd1E);lL)krU}!{^Ga_iz*k>B|~9r~5$}|9!~>#-+(6z@o;8!Ieu$Ar{d_ ziz8bldjxOviOtRU@zM2vV_P7RT@s%LA9D>A%G$vPUfd*awbT#lic@dccDckfUAm z3#f9&-Xzu=fika$quDDC;H)Yy9;}?9A5cK<)g<(Rdja55Pt=d&c_EBOkQ@}=rW?_R zM8&Qc6Pm57Fy~SD2_g8nRI4N;3B#+UTI&hC`tVs?(H=KNe_0R?$RmH-O$l=m@d!lI z#10NaM|7pG2eqV5Q-DyG(zgJYM-w~21rgmOsC8#a3Mln4ukaG)aE_wVdCFqe-r^{_ zhwTa{wqo;5q!}`xB*{HaNb%r{lFex;S0=49 zK-}lz}fGHU>&mL0`A_AlRq{)VdnJdng?YmFbf`w{^nmBLi0yFDHhnodzI71|P1K_JvT?Sm4Sk%-rX-B#smxZCP<%h6i1gtm z3}l`xyJRtj(@?*|M0&f+2w*c#|KBq_{^!wkdnGltvfS`qW=7oXv?LYDh#Ph4C0KbA zpNzL2`{}~d&f!BM2h799z7En68_7qhb@(+wT8bHW;RgU(mNWmPb7Ic@tm#O3ja+P@ zmudOmT&~I6_Ra{p!9R>)8HZ*`gyVck^|9&Q7ILs%m*vt*Q_&co^EhA~p4yuY(m zsmsrapE{+A@;&2~0~YwI6|LQG0kgF+T!JKyd0F1%P05&+V)~&Q%u9r=eP!E3i#Vv$ ztttyBLXqUTuUUlBgbnsEES0nZKueDEg?}a&>P7D0t0%2p%$~ZEmJI1KY-*+Mq$_^D zqvCV1{tP8oC)&I-8W!GTCS_avW#~{>P}h_yIcWlO-=B4Bm-`1DWnTb|&cmRW1WUcLa^ban8R4P8!lP__~0>#uln(>lrhu)xD8Z z@{rOwNrHi*=O9--i33K#yFph^gb(syfb-yQv!`KWe=bh1=9)oFz_)0Y$18~MN5sv+ zVNEHv+wXB)NYE@#TfeBMHX|ZF|?&1o!zpb+)qz7z7#^EG$_R zJ|ah7y5+~o4YnVFBa{)suoh9TVWO}hI0-BY8r61oQOCj&{&RoHMknuSa3o5= zRq}EktPlO|J)ee;5^mV)Jz-b7h{1>F-&mpB6#NH-rk3G_6e<&Y6Db@(O zQ~-F(g-w{%?1g7^T{#b%yiRX|v*FxkKXdwc@d2ECAgAm_TEjRCcXM4 zM)2URoS_PK*HtU@TbV}bNZL)tjbmo;;F>$=1!n%cBH((C%3i&@K_+F@Dn^!v7bAW) zw!GLC>MsKbI!8q_?|4jeN-l=Bg+6b*mME(GKeG?TwFFAdJRzGA)KZwb%zke>VRsc}V%z5vB5wGS!IBh9S6%d;ykr^f^qef6u} zOnmei29ag{9bqg_>`R06`I>x0T;HXQrSp@H)iiJhQZ=BVi#T^W~CVh-0Y*+%^9kf}G9zKr>d20*t z;MpKhiPof2>D%nZ4(mJx;L6zr1IfNm_n+Bs!hiF;1cASp zSiGRuT0RLv(j$F;lq<}7nfU!1Ky4G$OqKv{pz%7Y{%LGrYJ zpz~*&L%0%>(?&DX4yk7q*6?2Gg0Pz|#W9ZDHR%5;o%9Lbl$SrlUVExru=K)?^_HTJ zX-M|TGI(^Iz9_H%yY_PU;omnCmsv`8(f*$IX_EXYT5sBq8NnZabKeqpYZfd7=OquJ z_Ad%CfJ`oAEm+}?^QpRQd&8TC(MR`_-<=6^`7R5XT8;y>%qBT6oM=$eb$s{=0A~)H+~%oct$O30k8Q$7rMTP z-ux2UObUjw#unBg^5$Rf?l;u- znY5xdMM#J-AmERh;a9a$RR4O8ujZ%FeonE;Q?c zG)KTW@0~4pf#gwH;UH_4e&6f)^CgqLRu2! zm1*K6om1i5@2M%N*Z!RX4V|ieF7M{p84iR@;L$+As%CEaO1A0{vCpJ_(lm&&}7xb z*gHtE{7EzIq)&xvfdhp=Y5-kF@^TmNq*?Q{`6vy(fVc?+%#ixXBMJ)+N z049JpbwS;64OvF-@Z8yEDy|-o6{<|r_N>8JK~2XF=fe0iHtq9bW0sFn0IVo0oW%0U zNk6%3F$F*jthQdP(va0>o-jsS>9MgQrTYCa&-YtdSasWxWcIN&pj%mJyK|=VUeYz@ z)})SS=SBPB^OfMxBTy41;6UtaN>o(jNRz^Gk4QYqZFunRopVLk4o7Tb0FKy7HHeig zfAm_IrTFnhbr_*I_9^8~wxZc@!JnVh<&}6p=#OmB1)4oIbRvRNXS?~(H8RVq;UlTZ zjBzZL^etWehKl^IjP(a)3$SDo*4W~}+ueR~laPNGhB#@Z9h_Fv3hn3o)U$W}bW_Qg zqNnVO@g>=GBKiKoBsl*Jsq|Yl?{k*f26Ndyy_0L8ZlI^XjdkWfX9s|6QzrbS>*8C~ zgZu|TeDYb={#AxIpfWJqZHr{zelx``I}9rBCdvJ;Z26OlOEA)lN^Ocy^r3U8E_;G- zIw7sz-{tbF-@xegbQ`AzM$6;i>U6c1Jk=!yF6A+2=irSr)zw>KxJ-*o3GG8C{R5Q}u#r}^ufemFZJF-y>h%<1g& z$L)xw51f0IXBZ6{^Ocg~*BskJUCFV6p7UA#4Z&wHTd> zB4cX-O9KvQPTzZZsb&RweQA1PP5a7>hr)_{Ady%#OKfvgiSEQm0}8tPUa=0vn+T%v z+7lUVs#;Z0GbRs3kOhPd(p^g<^vF9=jpqFr6Jdd>Xs7%@pdtWFIen{D@?@U3ROO9- zbWe!5z7)72kPMDSe3WJiyTI-=Ie)Sh%ajBB4n03FmBh#kbc9ejclG>KTzoMQe%QK7 zf%qqhhTQ^Yz624>_Q&ASpuhqvvAXa9?e`0-Y%djwzZJBVq5(%#glaaxC&FmTcq^DC zS)$1px-a#mid|+%S^p4UdOg$bc7`VPq~ZR5M$85rkpL<-;;iM3I9!JG^dA2Ggikam zGF8t{H$oUgWl;kT;Sd+B^l-hKsA4E8<760{x%cw5!0j?Y82@eh#DrV3!h{2B$H$%S zga(pk4S)+Wxr;Q6gER3rOO8cyOt-(GCrdGwz8xJCP3>t*7W_zTmazXyJc-<9@z$p!GZ5K$K`L~9&s$^l+#(Dw#PsSZPfP%qo5y5t|w1U7VHtUWNM!y z#N`mS!*SOPabFF)AR4TiPiCOeFTM-+u@hAr0KbX;>waucKdXgrgg(FG{%Eg#wALN1 zphXeSZD$yL-Z0%ya9jM{`kwPCOj|WffPh|24>pdRj|VMeM(eS@`~C3>!&9u zgU^V3N_TW;!WHHB8>&ZR*J2U?l$dXT4DQkTp|HgB4%Lb8U;JpNqwfp{!lk!Bs>@W* z9!C-H$)Iyh>;F!Of?>vQC;dlH_`5;~f2D}<110l}2x$N^S<+mP)!WEkaAb$L04y9D z&C&@Cq8c1An+TQgi9uX*u4#@OyZwWl8H?3asMo#&>~SI`VZ_UIoR1~-p~Uf1FOg)@6|H9w?+^POS~_j54Ko`8D8 z7c75D%}8g6n@)(rj9sVMM6dpAz8~_$umE|!`4*Ud0niL!E@68tdr+7XqO>ZmsQY2a z3`My8)(dm&FV3jD>JF;~el{_|iqE59xg%0!b+<$Ad#f)!I0NcKQMY$8Y>b#Etqh6bg|Sod zIazZy*5gJ(_`8E0u5aR>7u#v77wofhY)W3I1fh-YX0-DXi-@To4xQXZEAnS_DXtiB zp8Kl*A-F2No!x5Mzi=KJG4eh#Au9&0Xe)GobQgC7ww9t=K4%UbwGjWszXwac!riSU zKATD=s3iIA0MV>8owZ=dj%2HQ^m_60isOeO=-0u?t?A0lt=h^=ozpaC>s4S&9x1^L z`c&~1_U;SgH@uJM38hRycNE}1U?(PxO?q2Nee|t217bZB2WF2>M!5Iydc2eZw^ak3 z$Gm!Y9noFEYjbU3!)brjLB>zm4I(@KD8ResJU3iH)Cg>Yne7s$1hH#r{nJk@IeabeI4ZNsLg^$w?HhN<~n;JsaF@g;n= zOu;^!zwWTkNd_X*6PxZe_piw~5JH?`X+Xk{*1vHoe1l}j855AC5@<*ut7MqwQGKHk zK{(vLAa)Z`Gj;ULFOk>>hl<^xJj_@FDe?q7`4m@DEtr-E?YqF4A;R5}f}hy8paFR$?cob=113#@ni|JfqEM%nImeJv_*oO^N)#y zhqC8Ss@nY@qt=1}-=-;r)=;)75YQvn+ZMNfssTee+tqd1?!Ff)on{ZYBxc9_mgP9E z#;G6IZAwss;2h+LVN1$>MM>bk#{RFqfNax*i>6%(`KboSF|(VDMy`R;TdT|MI|H-! ziuV9#Y;NJ>y^DEwj0pIj2EIj4tULh)mAgI=EjoV{^8@)agm2&}oo=CZ?+y(F!vWi0 zR(y}4Gy7{ZpBNS`giy2#TveXa2)4c-@@8*UdnY5XTc;!yo+%Ld+?(k#wG`h1-WZk#Wb20e1$rON3uz12z>T6#R-Y3^ zt;q*?9-Hrz@Rn%iZMZrJ-zjve+>K7u*{ zvB-!4sgbXx%T(qV?s7X8Q)C040A=#RLiLz(Jf3-Od|9v}NQ7_m{u^Qcc6-0LSZaBj zUF>tbF&VP|6|7EU^CrhQ=F&P1Z$Xo{dqLw#k8IUK0efg%7Bc|AJ5;xSq)UuKQutQ* zVfCc(HLouf13fJW*RPvb9$;jddX#YvJC233(vHV)DH^*M9DovMy1SWep!4f1`U0O@ z5DqO7CZ5(Z zMBBQiL*UvX@Jk7p^fXPZ4C#?8SS=>5te1zRQdLdK^_T!J@#t^zCvV@P_XAX$*W%VT zun~VDBDR*%*u@0=SG93<D=)oZ7KNPJ;x+XP?EDFAO@Tv-aDN~qun{Y9VSdq|SLS#8H?McplN)YN+ z`!@2;>?24b^GCZ_?3a^pZlRDNCG(HkOH0k~61WEO9TWYN&~ zDR)3#S_0BJ)$0H$;3vpgeFuPl4xgX;FNGg(Cgg9?N1P54K;KQy{i2pnyHyXvU1u;= zw-9(&{{OfD#rhFW1Sj}^@MX4vm<)D9`8VN6VER`d z^Xp_d)xOz;uDYzSbPAx+B9HV`19E=EMtp}`L1gVaJbkbd#~0~Qj0EM2d{QNb|G>u^ zm30yH`|cn8eUcq5Sr)-akOSk4yrclH|q4A;)l<+e3bGUl5Qw|;??c?Qh<;$mV#$=U6| z`m!7(RNc{@ysH0%#vALemr6T-D0DX2oz>>M@B6zq*5ixvr_Up)2YsP8QkOCIDa)x( z)z>VkLAYL5@aJ?K6f0@|Nwv5j9^T9=kUBiZS!_H%#_92rDFg58fuyd^OcXJX>NFsE zK)erOg@X>D~Q8MJTwYT2NVm z!ln9ae@!C1y6l$cir>N!svqFBTmV3PilGUK&4M_GfCrtUh%g4ZAU%Y8#ae*q;e9e$ zrR(O?)@1C4geAq@c-s#o*(#cc&#()ZycO=(FaVs^zk#q&a$M6f_0Z z3lmGrJ+TDoFNPC6_(XEg4q~-Di|eJ#FUV z-bX?){v3Z15=!q*$2GcnxKL*|+JbQ1U2MIsZS?pz=pv7JZDY3R>D6cHss@nMu!}4= zAv(y;<~%-i-v!J*04MT<&`}z18lh0YVnQxF)pVBiIDN7+PHbNgob z8#7vkOk$8kg5_Z1>93>QF=~4vUyHqu!9SKr@WDY46P=xfL>_S*UJN2}P8$aPoDa#S zp8Q7K?5+F1nW6I+g7DO=_<|m~E?C z6e%$Y3Col1SdNAxftIHC%uuAVm&6AEpBJ10Z`dl+tt#Gd0U4eQ>ZAbJ`DBYXBPTfTt%?S^)nc>0hG1>OnirX|(@rL!G|E!lq@4Nn4&E&f@=}=_;ez>Vj=4?rtTx2bbcMqQNyOEycBXaCesm z_dsz8El{jLad)Q_Dee^aVlUr&>;1@D$&Y(-&$;K$?3uG?k4hs0Cp&%p!4hd?NLP$^ zzXwL}WY({kqNpAlQ*?ihZNNAFWtuSVA&pj+hg3KI4H6#N2t9dX(KgwLfI)p;Wl_a$ zPV?~w&WV031Mka}qdv86=N&WtOqcp#HQp@x5P=#?9422`9z!A^Tp-CuN54m7VsiG` zttaBW=uhdB%`ArXz?u_F>}o`)w!*icP?Z*J5*Y41l-w-v-dsGn9k~Hr`jb8hu1Rlr zIs;lp2D8DC`qs#iK)L*4nj- zi|BD?3+V;=r)Dh?Q`DF*G|37!$gPP6xOA)jVIAR9uEbr#hL%iMk5A0j$!D`X1S;fnu4Fd#S&{2mk9JoAtCz7uvG1X~Z;w&IygfOub;lv$wyi8E(=6HL6&f-dpG3CXWJ^2Gqs4)# z>gR8YqQ$*?4OzPceM*K#XiC7nE=o!JC$Me9iY&Lc@q2#0;tWS&u2bx`7NW;>#K+@R zRs<+7g|p5+AL6~}F_R>uTh0;HYxD0r7!0u0^tTh$YTIH5mp4_E(<>75LNGYDuq<@O(ucGLd)=!(dRSjlC9oR00RNl+?( z48@y0eMbI2HvYIXSeY-|Rbp!V=hV)DT$Kx?Zb~N|%S6W+G3h`;|lN=7Cw+;I`^;&I*Ev#goYOG2Z@X{W2U~ZHLprqKQD!l=A?vY`xxV3B# z8s-}-0A_qAs79a@1m9DLz0bRAe9hmsR)=Yei&CqxNQCJhPRrieM9Y(F^wY_$J;UXA zBaU+Gk4k=TpaLz80+AyVopLw@1{PUG@N`1j(jgU(3aLr+rU8rV=U=F|x6BipA-e== zrwCv?_tIKkK(u4H+gQ3(Ei5?9y3j3X4)Gs6W>*i#886#OVo`#eA2ol;fedmu56Ea#HzW8Oz*yrlj;{ZHr*a>|~1aWS> zZ0tt&sdR`NiK0i#qVkDURzzlEqyq%`5S~Z>_6Uzg;$?RtQVJqs$8N}Nf^i`DBm(&A zd}uMh8Iov}hKGo3hQ(WirXJ<1a+>KawL&tCbY*Hmk*U5ayj>5*c?RRm@BPCKX*cPe zS3(=m!;7DKHu=_OwEFZ>%7MfTYoQ8GRGho9|BQ6U>E6)$93Xd8Qiw}Qup8wDvxa*b zoax<5GG8bbQ@CD@bQ{kl* z;BmL8=(pWmLZo1kDhj4JXj+-nB(nhQh=!GkQTTngBQR={Q0s_MN6&@}d5C7wQdq&P zPF_LUEPJo*=IpZE>FwP`n(z7e$<*DDbE%aGT%HIHf{7)(FTjgUtYp~$_pvUiRSLQ> zohwnIGE?V1mCl}GiQPJMgT`$S?S?y1hQs%f0*R^ zIWp}~Xi{vMDzVEQ#eV^(%(F*4Y}O3r3r>jc&cEc$L1h{9c-ySkO@l36(zP&DG&FXt z$S8%mT6z!s8?s6!liin6G&b#@vKc2Jfey&yN?vJtCdW@Z??lHpdEde z>29UuBCgV8^0qvk>`sY_L$njmGRc_?KwtxHB6}&qPuq#|?eUKy-(T4ejRr86`BE`V z>(2PEnJrF#*r=@C88K<&Q{=L;lm8LZ?qRX3T}f zFx{T-U_HyeS%d4Mf;=4-QTEo@awmtMN`ph%kY`WDaUBe3-4rAGq$GvrB1K&KR{Z-3 zePOgAHa83)Nrqi<3Izg~22FmiEJBk+u4liH;OiIl-PU3nRH)1pp<6mArt-CXHNi#u zfKD&w_|r_E^Jt}5*rw&=N;BXncSOxs+R^bWyv@VCsyiFMdi?%21w`N1t6+Sw`aa)5 zele;Z{f}m-omc}@Sd^WKs}%X1uC(yX!@jFl{Ap6I-eCTN$9EK4Ym7=jN1( zS3NUUOlP&5+-{vRZvy7xR8{8`p+Ig(aD@bbl2ylHeapIVcz)#*45 zwa#GXAJ}rd;wn_Ks8=XaLSmueDU66?k)07vjyYGD(y$Jc#Z}6-R*0qBes*@jLy^CH%#@}!ybUY-~;2O5ShT z-!*~i%OmawDVzVWTnSZip^rNu^Bfa&eGfc$oRCoE#=eIyxF-o`*i!v zypSoeC;}jn{SrnjJ4sybh_6mqUIVs54Rz2H*+^;z$QfaCn0s-M9{tWRrf@8hz{{H}p72N3Sp5iq(Y0hZjk&d!>qYCr5@YkNcoH_gSXJmDae`T-JEt>EGUm)}tW0 zD7}qDjufKSlUNVd$N1Jxj<;Dhs3=QN6|sat))!be=e^=ZQ$FA9{v`Ad2qK0{48enp zxFkUJ?U>EQYmA4rH7YOjQCeMA!j)8<q~w}HIR>=u3!VjZWXDh&enR0 zZ$!)vc1_kkBZJZrgDND6c-aNBWTh^8%Mv+@NWQjoy4-eZ)%fj-8aB97GqS%?Ppns^ z=5&-Lc2y^jn4fcDX5LKNt@4n0H4$G4FgDKEf`ygfz%T|W5N*>Envx{!*FpC~h0h{M zn*H9aeew%0h)>pu>xPwHnjwJTv=_`-|E`LrVzBwx;fCS=G_EvW?K5FZ4F6e8e#c?- z@+>0Wfw)#lR!nwRXE!c?zQw3Do4U<&G7xU>GM-8lA^H@Q(G*b@ zKBH`4ax6Ox-BEtL2C-{i-^pn}lz}Ohad@aCs&okYkJNI0-sQLxQZDrWC2Ak*xUk2m zum3(!5YT&b8gp@l*?N6DeCE7IrzGiXQ%7PL(6I+J{xUC{B=40Io5}{5tu^R9^5UKG5iM!-wKJv;x&Lqu zvW{&Us0FZu@hK^KBN)KT)WsPz@dCjTa;%VhL{oZkOm+J|gW_{4z|j$Huk>mFo`t7R z`weE5fl2zr5ccQr%~UydOX(cwkii`SfpEphb3&oTVkbK2O7Kk}WLmKF6^||sRnhBE z>F#4*MKjxt_9&a8M^CB{V$yW>LM#Pqs~#|x`=Vf~OqVQ?P)Si%aeu>SN$dmPLE?(Z!KXkZ+&R1%Uvy0a+ z$Ddc)GIYsfagr!H>sZId3_j}a9b4w=nF6_WiAa_|fWd&T z#CZ~*^P@#J79zNRuML*T22Z@%3dA9piJ^-(^m|mpX(BOp0O`5P)W+;jT(QdIWl=_A zefF;yIGqjh-lzDQ`{&KRi&2k7(}iS5SEqsxNof10JAcFP(~6^Enj5b&8|)f zer9wtmJj}f%e9zDJFT83NFdH6chHxR9A0UcsZQ){Nc4;DZi9q>rO^&ci}pK!RjT|#)M9^=a}J)-oXV1++n)KOGKotP%COeMaZ;<$ zlhJcwhT^fLq{v^kIm~+2#2Z|}4>IAv;p%96^?(CPJSUowKG3krPeuus5q~=|92lv^ z6n1oV$Jx$9b;OLhWOnksj&+U6c4SH%jX4K)`d`OHm(b z^aBrx;jeJ2i6A%+XK9f9$W2}9eU1p0GMK$ke1#M=P;h(%A0!4UQB7WhHL$eNunCLFNqQ+l&9jqvO0Dgc5wtbORJb7FE$h5R&GjT~)hJq)~(q z#e$UD=J9x6x@J1=St2nv$7H}*VqT9*jpF2i#cUGY)?gGuP`I$rkC##wfZcJ$-OEZ! znFD$n_Zad3;zD$l_9n9ma739ze7D&wXi_+lCJYpJs4p0nHe|)x#f%I#!iLT9UdjF^ zworTorxB<3dGb9&s+H)Fha%*3AcK-Ojz#7<%veEDEiA?*t)Gwt%I~?A6{!k_z&tsF zo`LHD*F3q-rlo#~{hd#q>vhxw&h(Z|K*stOa+VT4D6yx4PsgEuP?+`cbvh_#yB9AK(WDGG!B9wR9`Co73@x8Vr#_D#g+CF z%<4|l@8DQf6L&q!UMP!wc*S~CH2NJi*sMuN`hZPeXT1U*qurZ0*}G0d5?EC{E>TN7 z>QHe^zN{%jvnUA!e=sDfQvD8)kaC;= zKPag(%wycp4Ba=Yg_n(1AZ zLR0KW$OWYPXx2w@L9-WK0t0#@Dz2p%7rn39)%_pG4=3NKTmf?gTG#J8`eux#RHoHJ z5)A8zi@$!MLQz5iF2Z$*3Sbv zbB%IgKtlc|8PK6&@obv>#`I#jaxyhKfhA5(VhS+gqjba=Z?Mfg)sw$ySpPbsV3+_i z&F3YA3Q-w7GbF*RfxQ32p#(u{OrEh)kft6%l&)g;kUtc*Nh}bXZ=uTrxqB)<>?QsE z{V^`T{+#iXULTSbxxP>)LpV_NH5M~iS6bH$GydNN>c4JX#q!#AnOwI2yHQ0)Vdnkq zU{pN>8y_I4dmWs}3np^UvxEKWME!-HQQfV0;%nRYW|eM)?5pK&yajg@unwTzo1?2J zXhmqo@=bGGXFSo;nnmZMR$%IP+IqHV{a&p^F7-sGbI3{ppr70pBtF}y8oWS(aU)GR z(i{(dHHMqs?^?y6D`cZ_2XHsXV`lH6zs(>?{*>mZfi7N&W#E`}=R|vuw$I-slUD#){|Rz!vGKxp0M=uGb>? zk*xcQa(8mGHgPhts~wPZTbMBi&?0nc9-D&iVG=oqXmOQk$g4j#Ugk?FUt~=tj4!W_ zxkdy9;a;R$y}h?S$e%sys4`u!Bf{YC!|WMe0IjR?jxsPVd5Sn1XQt; zg9Qjz4Z=9mB}W&+zgyQcMOcbl0$&W!+pIG4X?Z-_lE@1jky~(;mCb(@Ivt!;p!aIaSI^xA7U`=h=SHliDef$Mj6t?&);n+%YA(|FBpT z5pkfhX;>FV$QZT*bt9r;Bf0pzq_`4;N8_ymdV)bn-{bm#1h#z)Y+z|T0F4$kF*3xl zXWi^=r0vGeN2iH<-T0W8RrRyO)a3+0A6;vq|K|b>5ac^vP(aE<;{2iU5)7sL$pWRQ z+NAs(rgjC<>XFqF!5?T?j(`66+I1*Woq5^R;p4#G{@DFJ*+h%zq{H0EnA}i}K(>iQ zws%Mb^NLR}b>WoQ9UujIZzuh4Du#00Y;&%%izAAWEh192TT9_R6AJRAr6B<~BDH|b zO`udM4*%j~#(x}X^eJmv+@*JGx2FEsAs+6+V~WG-1Flt@VcQe5g*~|P*OZot1!=l% zJ=ByqDxdQ$g0qC7c3R%UIlh-g(tcW-2(Dkg&E5)`1vIXonn-D6`&mfHVDf9)@)0bm z=-|RoMthPl)Pb7E{fV@r3ku$L5=!HLzc{~?-7jnY^;_?-Xezv26C-PsPdi8wJX38r zGFTD&6G*kGyp5&y4J5O;8U)B_aD2IGunkt}r^etY%I^*Dp;lKi>wX)WNoUJG{Uftj zV!$J#{e+@^^h=C8Xn$@&M|pz#q0Y~K2*sI|Vn7nawufHcP*q6o9hC#Dwkk z6v-V5~DZqp~#2`Mr9wLxv_mG;)J>{w5$toX~sq)^jCv z2yJnRJ21-i?F9BN`7U&6MR&d2FbPTqfYs6yL_v#b=PSCQb917mzy3D+7~x{lE!Equ z43c%|4n0OMQ8);dq(a-7@a0fg<9K}Hl;oole5V#89bw$i((JrP2_IJ*2uArLOiO>?yef+?Db$Pxob*H!0= zqp1p#Q`Td^dcFJ2JqYZv7?D=n8Bi@5G;Z-->R%zs#=bJFKTAJ&8r{foMC()UAuhE? zjs^ZR=NK)Pxr3Y>F!^rQ{ci1qK+6vV)3&JbjFRkd@LL^>C|&X@Ra%UtQYZjtfTC9& zKipR|k^a&g(82^0Aov&wJrpTy%V7Lkx=%+R*>cHj$K0n5O=Hio=GsD|CVf{g%kF@{ z$E|L8!DZrt{UYCIJU-S4gur5|^3vaq7E`I3?qs^aI2acF;F1x_>A`{;Ci@2mVOFjt zOtgz@xHauF2{Q_J7z5h7m+SOX<0%SyPoh8t2x zP2%iXLQl6*#=votDV{Tm5qQ2(#JlN58%!MnK z9V22^ukT2PDA&Bu_;C-J*I`&&4my{f!=^ZDYuDy+e*c3(&TTg59W7mM z4pfVvR>K)_?sJG0(#nv@NDCjvrkY;y%@eaFm0)CFr9Vgz8S}j=LbdU2^*4FdEcd5? z*MWyGb1ai#efcIiwT_D{&-d6%20fQ5=iDdxDEE_5z4-xUaY4XUDd(5XOXtA7Sd3w; zx&Fd7+JlDglzD%zr3s=E@>9~@-6$c~u;M=HP0tZ3(Vfcb^f;CkO4ursgzu(fPX;r-gyI?Th zo*&JdD}s(&_3nK!&ss2pa4TQh#TJ{bNoQohmIrB4LnQh`&4iL2xo ztX)QuE?)fw?ZWavEj)~aqE&+wUyxj%jv+)M1QF}kcOYu!vAZ)FaA@N!yBJ@VFGobP zV@NmRlP7ueo_m)QW7O<}&kHNr$QqA|^i zW}5GQwj3Ry{c4zmd=9r~)ew_>#Vc58BO@^_6x^7~i6hXoUeU;~*^0H zp3XkL6Q~I1QGRuYsN4{QT+f#2GT5u?QI`O)8XdLqclCNzn%kFoXI=gjt&gL;__5+i zXBp@z9o`2X{{ja*= z18|z$PNU~X4h%M+-u|&ij=rg_-}ZSfN4W?-$9ge7lt&+6fk>|U*>pdES(Gv||C9bR zUP6m_yTTNPW|BsKMJT>{#o7a+Y4`?|G2VeP&l{+?^;DeHUn;KO|J3aEk)n^}TEd#p z;(lRO{Z6W{8&{G*zenXNryd^yfpDx-ZBre@!Imq$WM0v|LbnnWPV=z@SkX}z5%a_3 z>r(YR$!~Q~^}( zUKt%V96x??SLe(|4xmRn9vV=T8MhHW`w9rzX@vqOKO*yX>aG5k&2oVAlS(4CH#`eAvH`Nd^vvH*t|VXY z7e_ZM9lU2fkDw+n%?w@-t_iOUO&R9wc~QoO^%|wlS8#l_-u%te-+xd@0_^Ua#_#); zy#tk*m$N8kjrRv)!4~&(P%v=4T(^%nO>&awYA}UUy|qUAocZ8S0)gXUcZBFy6gR49 zl}^%H4pdBmwi<8`3j&N{I zQT&l&nQX*|PUeb;TY`9`83(AU7zJCxf z^g2>X+KppoOmj)?Av3FJ>@k(VE9Jz}nqgff!A5P=NaV-YnKkoGIJ6_@%{oYOUa%9J z7XfG14i0gw3Jp)Cikyx9+G{nuItEF$5N;fhQ^p)*s6Q4hZa{HTX!x5$&_tynfCB!v zrX;9rWy;_hs63*LIwNQcQgEN%?#=A!ziy@u=QAm29)FEH*;p=gvI&~N%Rlrg;dBzF z256ccZhh3oFN-MpM~QG?(;)f1;>U6>gj}mUao1O(P6qf9UNuZ*%%=-^P2 z-{H*x3EF+E_!x0SEO;1849e-vR5ZC%J>Ti2f?qp7?xl{W*nNpu$S_V=IZDvH%ib}( zW}>Rtz;(r^Uy913swyJ-o!V6jCU%y64VOnJ9%)L*OgrJ+{iI6eeeUhvk}CGV@yX~X zio!4H=VPy@3$%pcyjPtK^Brh$8R01kA~p=^-zsv@7}*Ci@`1d}bGmCQeo9H}!u|US zj@?a`Jp4jlx5f=2F`o5VWubMDr4~nLm5nq#NN?A-(nAWznyxiS*9G8%uZ*?Spd3hl5I zd0>yD-?1%%xyJJsjS2PVjmKmP`eSI~d-Tm&a$7#MWgF(}EiG z?S#OE^4UoTorj`tk|l+Mvh2gADCbY%44{J@ReTq#slnzcBxa;Jal#=v!GA||heVgvxv%}WYvih?$f0NMvq+;;ihqJ5ekEi8qE~!wP zV}rkoL6hAi8;8xH<<~(b{FyFfexsB2<95tUj}9j&9XOtj5bHOq(9h_t2&cR{@_zX! z`6c_@hhp_1yP|RftE-zbBIV#N*qRNxwe<;7e#VGwf$J;OI<44rdWM+rRj9m+pTS!; zt#?N!WB0yTr(qt4ixNDM!#1ULgn4M zdqqv$P_0ENpJ%NMy1qk}T#n`(otH-NDG`xwoBYkTEh1zg`x~IBA9M2b}$4Jk+Z zZ^RpA{B;oJfGpCA(E<-_<`_|@e^}O~7g}-w7sIRa$h=3C=#OuKxXJyqk5^Hc^uc35 zQgb>7nE`VsH?p_L7Y(#jXuK;GHfq!l(SJop6SQsv9?6CU26O5f=vE5`w}sy-${h}l z?ZeA|0l2>%E%!O zHh0gfOo(H5?$o}oMJ|=P!+i8R@Ww9UCO|=dyY2;6XldKt;gmNPsS_j885TpE*F&!v zhnB)+Yp#^tQ{@c<$x45Weh54bqIbz!gw>l~{T9)qf;_$nAlaSnb# zVwl>BI#l8aSCr}p#dUF6@+le2iN?A~t=1qEUZ?mZI`@P$M(@>^x;XHI$_4GO4VPVZ z+k8w&86VVK0%Y*5&X`5s#Nw%VE5xOzngH|3#F zM?^pxvK#Z0wXYTv_j-Xv45K;&;fQrA#mJY-IE0vR%|KxRI~0|4#o9d_4)VNDBObt1 zz1cr((ao+DPE8hLlHcnCG-QKj@(z02Xr8ck$a>PN3@-&8^8Dsfkx1!3Mms>lB+F1r zok-T{jaY$as-l~R zTGlkZMy5@;(t6~p&?@Ux$GzmQNSObl?FtI{@=EhJE*6q?V__(2m(Ww(t5yGLm>tBi z!Xmz_4-$u>*;)vc{f(fR7WxQXh%yo1cj*;|jt!WEU5-xgEWFN1ZaR4OdmWt=l-dX5 zdm#Dxk`T2#nyl7}W*87$8_+Om`LX_+7C!s6Tby}lq|EPZloS810mH9r0}!7<+?l5p>Nfoi-(Q#A@(K7?|&ObDIOPg^KQj`8y`#e zI`}XMER5eHfWvEzKNTym)OPGlwDH+{AlM%KP8orQluEtQs0`->myaibZT8U92k$rZ z%ZrPVKTiTaZatY?(}6;%RLN~3fSZ}1e%o*jrEr7++{`>Xs{B=k^NZ%wP*s!u;$*qF=K=#0v6ST@+0P zO#Jj&D+a<2fE)uiI6IL72R?l)oR|Yu@1qaC7|>Y_3dr8v^9U3;FAk&cN6nHt>$jq-HpTrH*PLu!&bbtp1GU8{jB%~GQ?2rZoO)M(s znTN=j8~Yt~GH~e+vQap26L7HeX|aVzqHNCnqG)&GI7$VNPn7CGA)b$nIFDrfmx{zr zsG-c!nB&LU7@DUi59P*mHk?o@w0ZxB*Pl!TL{B=zuYMcDeI1-ts@N%) z6Tv_5Oa6^f9PI-)40U-c-$$j>z+5BI@T7uxb)h0h4|_vBWu~tpJ9L5bEB6$ogVYtJ zwTk5kMXny9crP!r)yFR{#>l?N%&Uu<{gHek8)|%r#Ze}j>0SI0NEY*pI)xq(dhzqe z2C{DW{p>0QE`bIzA`xpT1|UnRa5T0Jw_|6>U9rQ~D&(hh2weW@P!WrwF$l_+IDUMX zGI``~`GL2l;ru9H%tZ2lFF~Q(NGjLrV;N6_P=;V_hJ$ql4nDG#`b67pOsryLrm2l) z6S65t?#J<9i&v!1q`IVgFP32$96N~iJ=6l70f{AovL6KG$|7&WL zgS{=7oT)C7UOPo2a=%5UG;hEMXYpBkj_fnmCN4O}Cxe46!j@{s96G-%7>gm_E(iSq z{c_o4sKOR(M4O@_G6(jbtqIAQ)oN8CQ5r$r9Yj+;J#?*N%V{J@(^7 z&5<99OVK(}-Y&H_7w_sv?GvsHNHkOoZ$vwy`sTll+&lOCM%G-V$iS{7&Lcpr&8kXT zXFJi2C2x`;6ju4NOEqxi*URpgMM>DW*vDwfVn|{yU-(qO7}i`Wo^2{ZtWu5IL;BbK7Vmq?%jq~2A6X0R7tdsd%D+4E8 zKFMXdu@*p_4jcqmf0j-w`qrItHEAXK?3wzC*GVS!mCEiYk@qv@v7~ZE%6zqCP#06{ zPM#>}_*rqnr8t@~Rv226n#@?9oQR}fsBV#msSR6gwQy|k8_E9Si@JOA0|rnhB@Qd{ zvCKUqepDm1q)HRrJE!nS32ziC*H>e`y(8Xm|S2S$)IYRd|L&mw7T#4|ZhLCG z9fUl`s_m@uZ`;d=yJMLw+<9d}`%C?+%o&zcB8p>A#hb?grHh%dH5UIlr|>L6=vswR z5LvI#M?&T#{(2(tG4rR^-p3X54+IWT6;c-I+es4mV0J*14;p+kg7TxF@Z4GDnnS=( ziWazLmbbP2WvgGyzp3lG`^4Z1h=#`y)o_-KFeFhxkOhJy#xQLdLLi(|vkS2!Z{8d7 zB4D@_Yw3KCAvyZIkp*jiKdYVA-mgN4ut7ouc@LGCX87bK#^5O9KjN(6PPgsPv1ikN6e3G0O+j$j!HmBi)C zYyactZaN8*OY!Vop8g2>HbPwIR#YVf=XukwKCbU)k3n(cWBL?V;>hEm{`UK4j8R_a z6_Xsn_XHOa@pYR!lJtwZlTcglDPT$Akp!YS8o>{ zux3&AGvmlY?DfNgNl_L2&;`QBh>3cL2E3PI7`=VumVuJ2*F_)3Y#+Ap`MN?IH@Y_w z)H33~BX%dqSIr_ro3}U}aKjhZ8qt5Jt2K&?U^SpDMamk5LP%UASvCM4+vsU&LuN?x z2)!iki9M*Sc|W17m*(h25)sLBZ?w6SQdLb*bw|97KJ>*%a>5W|^sf#VlW3wW1HsIZ zC27jpeG#{#${wc3?@i|GYA!RiKcPL-OD>zW`kOoCH*48_KQ_93=1t9(&N+9}P=j;- zBy8sVl);aqptlns=O13TODwWglV1SYJ_7^-O?laI zT)LIk(TfxGJ@^Q9nspMjTTq!BvakFMNM0JFDn$vSDm)~yc;mv&7;Kxqk^l^$K8h0v zT4&XJGqKj`a_M;jTaP`*EaCOZ9`f$3NFzQFTY|7ya)XFG)H!LbTnLt|YkCg{_c&TK zqi!;0789uYmfbNE`Fr7*RbQfmA~R2j9KZZr%_USZNj}lgm5|B)?k@6f#TR?jy|BDP zbVh~SX9|P6$)EgdmrK0+6(xMbY<#Dr>GJW%TJlXRU?2A2HsR8LHp?D}taTib@k%a6 z^f~;7cbgLkj#99|E8SD?9kj)kxz}Ln1s0xzzfICSV;EX2Vw7+ zc;OmQe0yuR<4|lfCO^`>y|?U5o!-8I|NeSdlyNSJeu}JjVfB#=)P5nZKdYmp-Jeu| zM+#GGw<@oUAJNWGZlDJB6AvpL{GzR?$lw~+8*ScfNqO9+nOEf8PocEkLQxpYOB{}BRRkWWAsk1OS8$=ja3Xphp~fXxgx+r?%6QlL zEPGyXZ`yuxoSX#M0j*$N996rXut8p69NW{Vw0}6AO(11F5c@d7Y7=8uk*mBmbupEu zzw&SVrpWExiYU7h>6VGbUGfx1CH?0kKLYMQg|5BS@R(&&!I+McR9!&;#Kf|R`S0{@ zoZ2glc9(gN_jA-*SN$!RyX}oSj*7JUR~&NjF{AebQV@7OioO6yc4jP7>{f0Iq~Y}+ zx>PA%A~Bf4h=xO}7#GRaYd`wQkvaaM7vB ziije3WN)v#sjK0!X76xRcLHRq|Glx+!l zTons_E%(o1$hm3JNkmX{>Qxj12s$K&lN4V`b+Z+*-cNj5ub_^C#M{(h_l#E-3hMJD|F~Y)M2hIhrPXO#@EBm zZoA_X_H0NyuXuax)s8cQLm$jeJvlqOh1d|D%c=C7p}d`gVxX)mNTY}T&V!pjWpgr{ zbvLb(WS;!QjOp-ZkIyh9sD)|{L6jKK`XM>8yvC?cv$&n!R%}uvs*k0}u5Ii69R28= z>=2g&=_VRqZZMQ$9g0=c(LvJ|Brw_c|6Bmirr1KaUx0_1GWxd?v^+nq!k*W<=Y(YF zS4BT7e0Yo|LDkUESVLpzg_1i@&O(oiXbY5xjEiTXXnD(^a^KO7JSWXatyNd?V*`_p zK5BFQUh#B>Rc=K%NfJHmHxn2V@l`bfUSy0f`4?F|p^R8MV}8J@(J@;d$@ChbZ#vN)eFo@CPf*L7{Llg|GrBB=Z6 zX%D*R`WCqQNh#Th?v8E#PlWw?rJe_?|WI(=)ggK%jfN5wbZVJ;TQu*?*|ISeiC5Qnz>{RcWJcv($tDQP%O%ozu)EZ zmKu*BG744XVK8DSWT%vk9EFA4NkIvd_@!KNET|uon4GqFR;oLLM1UiwCy|<}54j=D zk9SHwT2Jb3o^a!qk4vxNBm1i1b`Iq`?jI_w@L|%jZ<2-DnCyT7zn}b;pCbb` zdlC#Y!;3z!{LUB_3&YZs)f?bsg|CrDuTgG!ip!`{ksl<84XkzLQvI&O{}!ju_}cBA zRh7Ky>6+%>ptTbL_oh~aLkymkld+g=x;5ZOP1*L~Q6RaYQY5WV>8z^=DpfFZ*-rtY zuAJ221lJE!bT4*YAI~yQo-?$ANVqIac~yf_5?H6Oj*%v+9?qp& z$cCCRITUOLmjs%?S$u&gwY~zQgv)VT6VK!^L3jM|8AjN}$yOZ%n+IdcPp2vT&s$>* z7w5Xy{RAdhcKl^uK6S)%^yXJrHtrbmIEoCkfB$5@negT^h*|A@RB%{gQ1rH%Cam^f z(wqm`yB2DU6g#o3ViP@Oao8|TDVb~IcGZaf0M`bQ=t_eXe&F-;LG}5^*EO$6G)M0H zX-Dkk2UZ)Mel8m4#Mw2IT9aHi@2S4UmvMF3c}t({h&C$Azz)~$vF)QF)3IOMvFJX$61H&ln%!^FSxc1(T zTMdjC4Lo%XH;7M|m@00U0Q%^MuaWf4V(v{eJUrIQnqtm>JX>oNRhBKeF&j6NrJV#Y zLB!JdU<&FH*?!k$c%U4)jU;$Gs_r$p;rpcn&qPfWc1?xVqE~@i8-r`M!WU#5>js)) z2pn-SxDP^1Q&G97EWIu>w2j91^)ySSui*KgFq`kNO#ASq*XCMKAc^1eBcA|q(n0Cg z{F-({xnbZa>zYFn<#;l=3oG@&AlS{k@6z0aw0zpzwl4l5p^#Yh)C`U)r|2 zZLiTBX&Yl>hpSRtzP^c|b5uOMaIe;Z{-~O&01=0A1sEy^Io!9UNBUZOf)MkqpK7m> z6%`7J6%sM@xtX;eZ!16aNt(6aYf@!Yq1*Cmh#!Y0s&_U)Uyu4ZV|-}9QfBG&!wgp6 zC*`ni0=N43AZfR)&=o&~Yo|subQZ5zaGZ5JJ0|1{T=FG*A=Lo7y~rBh^R>_cr!U>@ z`VOx33guEpF2L%Fx$+0i7;Z*WvBujwHaBCJx7%@H+BeX%VoYe7G;g@?c=RszL4(@P zMrCz7g>_oEW(Ll8&J84EI+-KF0;O>jo87IqxjK^Rpw%B5$+AttiFdq+qaaoM={AY} z(I%2V=#E=E3TcU&x^*gGVZSlUE%K!WB1Xf|=gaWwq&z3Y`pya-y%C2td(@I))cXYW zWi~OpKarvn+^v%rWPz@?_TIO9Kc++j8@IlQQ-gWM((XTZ=beI~o{_+5;qq9EbR=&- z*&`-3L^^>UJx+OX`IK2^98TN$Jh9>jQt>p}ZCe$;SwS4|&j^Ke;qebtnGWs{bFJzA~)MCTKUfTX6|mEEIn@txHjf*O=hrv*V5E?!SYIlaz5@5piJFPCq8lZPm-~ z_VMOh&-IcqHp<7eNvC$E5&_jiS`dDBtD*ESt-+e)FrE`9cwCyZvEnL#4X61ZX+@c^ zI5C@}&XA}oIjO(?M@v2);ip0QsvZbpl^ZZ!|5v{&p^))f;Nw8)W{%_%O^kZ0FQyV* z@bldT%hf-FScw?u#<|b0r&$SGuNjWodRr>j_vrI}uWIglhELQav9}$+Ycg^VslI#zQ_zHWp+gi)pvn0`LplEbMODf;M*X7 z(kOc2&l5|7hRgei{Be20R}%FWTO7d4CR+;LsRte&wCh29(b2?it&Uy|GkYh`U+hq3 zz0}Km4=Ez!C9ICH1`a*E<{)_6@3OId*4+=#qxCntNb$OFs%I)JfaR{PK17|52v^sI zib@%2uN8QHr|d{=I!WsXHWfXYelK`h{|tWg5H|;usaCP`+o>!P!f2UYK5@jcP}_EQ zS)?1My__wnKJ_b0bnMTl=)Je>D18^yd<@yUZO2$xy{ENY`@3#b=(ief_>ic)-hAjlakcrw>Eu!D+@=G{U5U$S z4eX*A9|Wg-#N99owNyP0aLT|3d?yvUKokC=+3C^KNXgWHW+8TGZ`+KFIT0zsf&QJB zJ5GYUQWv`(-hG&v4yPD}zq-KM2B0S?6d5u##l`#6XVqR?=Gr(~$|gtrhrp8~qdeu` zTNqYrg}^xushBumg%qnFp&e~>s87m$qc{1iH=J|b#o|p92iM9k@dA#tWAFB~K4-Pq z^=yXB0Ski%9Pi6%Eyw1mSKQ}5s(Pm)NPj7jJl+;4<6C0TK1V~ICuPaJrXXvB3$4_z z-zhyu;p^w0`gL8+qIz}|+08t<))bj<{Y~2LPB1{h>7O3q{qMjXXBPpE$%NlaL6P=z zrR$(jyJaK6>k*Cp@-PWx(Cm9+blKE@(t@En5;A%f{WizVIqZPS&%=LZ6b$Id5LJLQ4x9ro$^8e7v z)DBo<1FXzBgmt`(j46xU{#6?=^trXEq~5|=z0Sbf5IKG1dO6?}>)5!dgi-gbQhO19 zO$=fpo%+0eg4Z=BCDG+UfBY_ie$^tFh)Bmz+@z|wR?@WXmGytD%!Re@PIzxN#w~EwA2=2RYBn~cf}2jT z+ug2wy^r^v$3ZT_d4L~dvupWVEu))Ky|KWI0&|+?iH`<0qVjw!$+dPj*A9Sc{IMxLCSIy z5BK!OsQSHDeFTygNt$ccRdVZsVDD&m9fluL%T!c`4OwhZ5+nlrk-3VJzl=3TLrR8G z<*hY%;tn6~Yit?~)6g73rNE#bO^tf`$S*Ux-Jj$)Z8&el@PM-u!>(8VrbSzwk8mt= zHx8*ZkK#fLz?I)6s8}uQvq9xq`noc{MXpEinlxrWgNGoQ>eI{B&QTg)k(0Z5J+5YF zBd@vpjt+)2cUwGzhn@irS&%iPlZI6QPt zGC*_p&c(p!s9BH8?UIWfb{y)hJt&|*xE&i6`E#6s3qKx_m?z0d3f(!6Wgxom|vNQZ_pLA3vX zfES?VKJ%@egWp`evhP7`hZ@eWU9W>_NAFv-m8g4OHZMn+8Y-GaSIVTp9F%C)#B7uh z_zy-jL87s`IhiU2d!ljhTyzmO14K&RoNPu%dv4O##~FzCzDG3-in!Jr*t`{`HSpsj zC5NrUWphlKJdtzm;MqbhXU-8r(+WK3C;CVlYrI6Ph5JCjmR#(0+Gcf`pCv)s7Nb7V zSwGi~!qSq}3LwT&*(u~03CKYhrW9B8zd&W-^lwD~VHV}=Cr6^H&sQQOl8V1vXw`n1 z{2>WelSU__ML($MsnGFN8s0Boze$9AFX#iDng}T;y0*ObdzWF_t za{(jEvVRD;`YetQrjlP2NUxktmHno3up}y{(#ck><>^qCVsO}DNm*bFa16pNclo4P zu8*2y@iPN#f0qG{%)Jl3JO*n@#@KquH}LA!k|+ zv3~E|`fT?tXNupFh&*K!`(yTm?T#f8MYQzJF6HmcU8~$5m!iI2Kj-*U$Wx-JK04lK z%zg10O@)pf`kJjhm$Oe8q)2*Mp=#72tFdR7kT`mN<@{P;pr1U(f?shYO`O({OX1R7 z@Kx*hLX^8T;JAcpMMaZj^lNCP@EuhY`RxBp!VG1_>A7vM88c*fVp`B?kWWf#*K!XL zCoy-tDYHbljMF8ifWuu-rt31qAk(N~CEGc=bk#}7-hFI&{dmLf%~&n)}tSbfEFu^5goM{DZ=ux9^Iy8)|~E-8_7xx%LW z*vZG4!jIj3MY$3%BNBvv=tf!{KwKKgxbLXV31!PmzaDDD2^r;5@cFso-7u1&wqpw& z+BVhuI_aM;s0zhD?`i)k9ZLjnX)4>*oV=gWy1+-DQ%Zm$uII2P+7+h7q=|@Y{afc%zh21kA1N1 z76GmPK&LuE_e>CzlB1iNw$Zk6Gk{9@mi+?;wYshh_!{H00hUgs1GOMcl? zP4hhmL#D9CKgP_?a$^tbBt_pd@Pg0xsE=O%FrRN#F30Y^ECqqDw-6F8pZ(@IX1~id zg8qK%@g}w_ObCAe7LS3o_^brXVzj!o-p*Rw2}fiZ!!E#yj0RXd<9~INm;sd#X)ddn zbe3rU+KpOWoY4ord=>U9h2Gzx!x7GyrnnQ0Q?FK?lTPbyPC z%f?Z%u8(dHl?Qq|?m$;>pKeaw#YE3jUv19tWPc4sH9y0I1S-eK4~;hCrziH(D+erp zpb)2xV5%eqMM$f3Hbo`c=lG6bsTfpIaH#g1JNgzywRAEZW6U9~vvh)SzpmM(c=fTW zNnE;(jw|T}_0>o|hP+_z8w2mTKLM9tk`7h&m}(^H96Ubi&8iq|&kn~4@R;HBVKxe@ zj(8C3tHaC(BhA{mg{i*`62z-6#OQ`WQJGYmG=PLV9|?A+91chF_f2k1;m4w`X&l6J z%11!T0*6lHyxx9ywF5g9yD%2{aTD=0fg{kX$y-+=BqhtgGD2)vtJeCM{Uy2{f>`{jCI$BUld_lfGR9_~+5v8%3+y+NdFBchp( zvIj*ekeH1Jy&oe$yc4_uPXCq1JV%j(VQ{=h1%I4Yf4M1SjLife!9;@JimL~NuN1F} za~rm4ZVs~4lMsrmu{1v4A9!d#u8P@!Z(KoaT36jS1B|6@)H+OAaimIrPPF)~EZX!- zRoBTSO;%Bpd#O~dE9{ZICsewdpiNO|O)GuyVM>-KAxau6P(LTanK&*MBz$Y+=MFzc z!KlT#xdTd@8sGFo?DrFsxR2Wn5MAkt<&(FE4E3y*aOUJdT@6dcfeA^W>A zYg>emjvLi&;F~jf@WUDw_@*xTKZXE&-|MR&_KoN=tZ?GDjz1eGd#!;LK1)INA_$oq zJ?=0Bs$rs>C<-NB`kZf=79bVrB$s~l0J~ne`{AjN&3nvnJY9`FACx>k4V{b3=kcue8mgL@63H`UBWY@ei^P)w z7-t6=EduFn!jq2~6`mUZh0%4>`*G&aEyeTx!;104MO;t2#>d44YP+mUQ9$5eqgThA zkHYqIX?-0^`HU&{cu6yG!}cv>bin80K9$*bv$bOning}SJVXP<`S zFT?vcfZKIm4M~Er=m72$ASbpOW;X7wlNo`r)W5tKxZOW4qm*!{Fs?eBAnf{aga)Ku z&rYBH;S+7_*O`~bvdHjmJYB*)w7iD{FT>XeFJdB!4hQ8h2V*T1agTu3tT~2;Nt=PO zZ^{J+%d-eQwQZf2XHxw7yt5FYtBbcjpK>5Y@ibOW4HIYS=gWAR%=o`s zu?|;mQC?yg>WfAdw`Z0qwnqr@Ey-bl&%lR74QcV|W6eDmoaSZB6P}XXrUj(= zhDYCb9JW!?^Rp0_JFkU(&2_JLBI}=NNqZ+Y4Rkh<|m({#du>%G~VwQinM9v z!ogVY)k%E~-oT93jn>B{1H$n9{+vGkuQXmBntaIEYf^lwozTUZbtxE*2+TDwgCYHQ z2IjVzN9rW@gXAy|ZJ9lF)b!yTcAvEIqO; zvLLNqg644cx>DgN8}ZF9H8gIAN3R*bwXjzN-@DV7+yJps#4;qGt7WaItGP^rfAHfA z9hRdH4*J1Xi5P`p4V?HnJB=FN%?H|y55gd5Xg1Layy|KO5G+&{8RLZUK;M+`%ko$g zPdnxWs}*2psXLljV}7o?e54=azU`jMvVUD+fp3aOnT8DP4ap8kwa=WUw$*#;hi=B@ zQtQc#Gi7z4iqjLlC{wkGaqdm@QjyeJ!M-j{g^J+(WIrG@Eca!OB5XF#z(791WO?i1(;n9?fpd>^!}uP8A7a$| zBSp$%(q#ROy5oU(#zv{dSAOzvb5^d69yUYd$g0im6wREu80OY;^tkeWrwTXBpap;Y z(^DII8f)P-#>Q?e940q0#W!pL4yOE6r$0fS37;j*1*n3ev&>5KbNk~^Dn0+GVldxK znXSA%o9^r|sNfOyd19!^Hs5y_S!X#nz2We22UAFqz2(-}k(WUzBhlSF7m=w_w@vPXSJ4?+Y5d_{y__f`T{M7UIi&s6 zZ_H-J-|%63RWb=@rAIR07WHq`=JZ453>2vSMA+lX2hq zg%{O-aB2C#v0}c|8Q0Z2d!A*Y=O#>ll{UzTm7owZs9F;a5UDMx5Gg98(f9Y+{KfKY=;4GBL z%A=+_&3)b{ED}ZwmxoeT=0R3_g9NJncQQef_mB;Lwh# z$NZjwIfRKwT0KdDKSjloHJXG+Y=&HSoUSMvCA#3|vA))DRh>dHF}v6&OG;GOM$b{b z*QyYf^LAvYkOVlOX>2i$l6@St$}|jik^t^@rLwF)d6Oa|b#MLF5q8{BU%g$0lO4XN zyoUY!a|V9zX&(I#+)kSgD}c}YEBTbkWicrND*=jxgtX-nzwykWI@E|1pLTsyoc*O% z0NWmR2HQCJVlu=iV**)b9mcf7!#%p4npwkAeCE-a0z6|wMH=LjswmT}9$=)tvAOsx zYc`f$E-~Jqll2$PW@8}Ed-!#5c)AiE&YqghmnHa%j*W;1*K|AtGXUpzFfSip<;X_u zc-_4VM17!KIPH8`0B(6jidd2|BCSxEW|s5~Y^{gNEZt9uBoKJvqW9xVeR0X5NR(rdf_i6o zUG2Ma!`164`?+p1yp25OwE6qN7UKVx3!uu@Gdum6$kDgWHF$r2%Kbc_&}Y?8TP7%4 z;$SbvPQb|I5}Ai(YjAvA(8-JioJJRRa|yy)$M*dl1a$YQsKH;0yM%b?N2$+@IBM4v z>8p2#gE#<-L5Go=Y)Hiz7tE2TM9Q4KbkX}v zavMyZnCKWEx>y=lN`>N1N}I-@jaZ;Ow$Wtz{1G#`BnGx^?ZN4P3K&0XkZNh$f~EaV z_uFj|g>Gg|PK>59Lr2OhyPy3YWWrnjh{m{)LhWV|DFj!^^PvrB;@H;c4XVVS!VjXm z)ypJsw;C>&X+|o4;>cWd_04Df&vU=P+x@;$kCA&QJ{328xRn z8M#Njmzl?3mW!n)<6KC>-QE_WKq^t3`++gST^KXQAvj1?{p8aa^6y<%0twwKOA+;f zA=+IH8)7}Bpiw^6-ac1Z3hNoukH^)y6ep*<@2VObze|l>oi6;(kU!Nf=Y9KFYGFU! z=s`svq=2gGmXW`v**4u%Sv=5(f*NIF1F1_kyJ_iB?b~nl+D@Wv!!hR=!i>KNP;fX{U5SkRWOKRZ%*e#?_sWMoBYsEzOjEDYj7iL#;r69A4Ko<)`Qc4z$yIPE>w21@gM_xec5fsv+JkSXG4RVg z1mf`(L#Ur(+yncoqErCA#hQ7>=L_h1UhI5d;hi=Sv6E*}3|0>T67Nq`4tMmq?W-vm z&tWmvSh&b~65BdRrYfeYw(+|Ia35|VCAhk9&{iOhBb+tQxOtxZF5EfwzHTc|wQqWk zkTAUKPqqJOz<0LSV|das7622rXYDtREJNKiQ<*e<>k2@y@}m}WMcf3$U36fRtRcaw zzUeQd1`d;`>1c)eLa}$&4vZ;iL!GRY8`0MxQ0Or(^)H=e&F7!57o=y|vED~VqQb?7 zt&jEW9Ujz%FP^dTx-wsPh^p+EDMW6X0Gldej#wg_{(wbmG@bxFe>A5U6V4_r&r`5! z8)I?N^%+WijxJ$Y@i0ZGQ~#|WFB3BFbRyJu*`(ov#kb5Cf8kJ9m-WNFt8)+AWqwpe z^0@9suHGFWLOOQ!ED9z5E5nUC-sT(HTTHEi@RV|pDag7i%T4e;p}eRV!tpjYbQ`%l zk)V5FGMf*0}Ae8l#k!)>H8%mEhke5iTYBirLSfrIxF3zGv6VO9&vqJjeu& zfV*Mb9Mu{9E>j$6#(CBP0Z_!1jh8on*AC>s3?duN?ia;DrM@xny}W}!>Rc$a>go}i zbP4+JrIaSSnaQ(bdgWvg2F|bJJ9M4AN3Z2hfuw5`OR6~U!i?PYtoMkM#lcfZ|ME!n z(dR$WrqKnJeA(C^TK@kdzHjljVV0JFEE0OHr*6E)_x#9=5dTi^k9B#LMu*~5>Efzi zhu!JeAyAzUsq`#$Uo=lG*6Q{6q~*lbBZps68(gx~KZi$UcN0gb5CafshOIZIgUWUb-PwduBpJT5Yo|}kuSlM*pY0zZ_cy-Gf{`iFVv>wXBvXyY9!^xrWHx=~rAXKhj6{m#ES?qwuN%n>U%-~Wg z&|KfiKup<#4%`Crb#=L#x6=PMN&=QMb69_3*GYW$)xzb&S-0Ca)!#=GrocS~3Hqh0xJGw?^#h z0PnGD0{oFk&*Ua0v-G0%r}qP4Rmip--4(I6C6=a)Xx!51O-XxKy}Ze z2IdcPr3{<#$hxMga;pNHt-wUDPFIw_;SZzXJRIGPpncM0$;M#>k_`vojK;BSh z7jpx>lNxZ^4ZpQcc4<#Lzqev?2PZ(VeVodQICE8ysskSIkIyUc zLwKC_k+&5i0GEg(Ry`-?5?*0&ObsLIQXJOCDjI zF!x`-f>gZ_o@63{xKTgfoB%45G9% z(;^=L#aRagu4$aP$zpNNNy6HMYnlbDMM*tm`iekOua0Y$bve~8g0yV>wKWi$MS%T` z&i@~mLB;}l4O8@=CYZ5XcCEwp+sexm{-6R)^JXR$0%UGFvIHym%-@c*#FPHz`8PsjbtO7aIMa8b+I*mBc!XB?Y!(fFH0mW z@>(FnG_ZlnycRv<*sH0bbL#%gw*D{}j|EjsfST||YpPLBJJOZWsrKiK+yADBc?TD7 z&2pDoq2{-i{}q7Ll=FO@2hre#HiNg%mT|53xO@5A35l9?{JHRPnQ2E&d)(@~U1C)k zj=F3)vY@NLKeG5zIWdI9RJYMsa*bx~PT~uuGUX7UaE*g&SdVm3?&W@wC|VZE+Rcm` z#OY4l!pyAJ``O1~nST$6KUXG>KLRig2yRF1#8gqb z4^qI~pwjxO*3N|(C!d5eh~U1Uqv?Ymgwt6rWrbLxxR!#02}W@If@-(_0N5a!*=d1R z0Z2$m&$juGiYhx!%kS=({YXFNI%*nX5xl&#H7Gn?dw2_R+%#^vniVK@+AT(WRn21J zE$RYCa8;l+4+(QCsvskq08pJcs!QX=wpx$gmA>gU0%gUo*rQtUl*HTFs%l`wm5!n@ z>hG^p_JEJwGtjZHu=b98zs|(|m%*St21yb0MBQ9U9gLL5`NX;DAW=hT(Zy^5?ZxjZ z-Aq$Fm_XQ~k`hF9>Kwrx^gv0|R#L3`;mMc^UlZzjuRRE#WB-*&9QONH1V~dIzpARr z-)B|(IcC2q=D<|saBu!x$9DC7L@SGb76|ZpiHf#_N^~w)+X?v&#?GPJo*sPwhWB*) zg7f!&?DnFB!PKPNirlu4x+1Yv$+I10q*!(bsVMTSyzE_6_B=yOc~J~HRwS1DL28)h zvqBG~&0* zcpHV_*p&C-x&HtxE02Rw{HB{$WMk0D0gShU{S>q|c9`+|U(107#jL7NnFSCiC=$yi z0~ZZ_MkUI8KSSCG%3D(LI<&Y@3pOXr5;d7pWmodx;L2-uSWaNTyQzYvqz)fu(AFy90s{Rv+CBL#p0JSd`z z{GGQ>@3ik)Xf)rIV8roa#9b=NbB?Wxv;3?I;rNJUJs?<{jxiFSL?KQ&Q(gpAZIyUe zNx?jp)}LF7%nRr&J!wVjcqta^p1&*j^IRk9J7z~H<_B9%kQdN@QJ7j(L4wg2o6V)>7x zFw3r-l$(}~?JRGkAX`*SdU{t5Kxo!?J=Cp@%UXk`+p%q~L67_t3^@TkBxo@`N6`id zZ7Djum@bM=wX3OCKwp-iTLV{@?XSXU1;t+g_F>T~9OMv3C)`v40dAhfz`8fRaVOc< zYIy5+-W>k6a`)UcRos;0#6LfamN)asCw990QqEbY~3%U1QkRt*}Sl zFnD0sF*~*%9s&&y`jqq~?czGQIZ6tMj{Gw(D^#YEJ&`W$Z*l@EFLX?xI-MR-04Y`b zvyZNI0e`_)i?fZt2W`Y*uC*8ctwFTGpM8{yp`75Cip=+p)z6=XE1ih~>T|b3RhqGP zFrCsQ5x4GmFyM-iY(acqIRn;gkX;o(fZ9rw=Vzeu>m%-U^JF{OO1X0QLsSPfwhDjG z{!07ZH}xL^C`)5FddF^+0I%NVa}<=6V=rre@Y+tBDeV{C-gAobiiFeL2jH2!uFRM> ze~Ys3OV>L3kW59PVp)uh^Vt#(&)d6`frhyP;VF<88Ph?=BT z&4jNnJt}%~yGDH5Br`6ZDt?$l77BjslGiBEjd?2$@lE-5j2Od9JEvC?nJUwT|1pe+2iCqW`nN!$wR(1N*3cPgJ!8WYOjsLu)}vcB*tJe=F1^S z4Hs-lwuh(kPgRi_Wlvp|$im!`>Q4ix*^g4}$3ooA`R?hGOb2b5c_zx>0-E8>JZ^`Uuryo{Zt)fb<+JNoNrdowO z@i-EY?;53tLHp0SzaQuH3!+-%_Q&rMv@R=)1oQseEa#i;5oUgTE3y`E0L^!We}WSz z641kYS?b#!ttmsgQMpOvkJt$;JyzFX6gj`^VHSOw=x|k=u*809XUH{mzx5Iet`t5a z{gs}+-?Hj5)3tx{#-4IDA|G0b`VK1^d65pZ7Hlm)24?%_nZUCBRtcuoi8N7xRv+rfcGe-Rv$L$5*-^^v~D_*DR(F@McqIUk(bO(d%u-ukL{~ef3 zmLj=VhwOK$vsV?B*85ereNs|J5l5YA=zGvsTI8X={_fl#uonaC_J>i6=&*z?6N(-p z$v4(H!G}1y_^$dYT^cLCpa{Y0B2aynHLlAztecqqujnh$k^XBY4Obb1tv^IJ<9jys^W_Xd z_F8tRbP8|m8GZql77?icg0gqR)kS;r>BNWQ(q+|0Wsa8`E1u7i$4+YNsBrVGh#}%DZot z-cw(_chNe~@Wig>er2Q_wXEipS2-AyRFW@;q5#cjoO%hu;^x&*{_4=jMR3KqgT|G1 zaN;__4r+Bq5Ap=V8e8!hP6s(8QG;LDG>cuS&_Hn?=kCpAIggo)I6706F=Gtdt`*|NRzJoWPf`?;U41!jlj>k44{=CCQv9|e4)4F@3IF>ok zV3!+(qbf6foW<)wbzealM~V815vTU{MqM00g_wY40O<$<2xJ(dZj*JhhUzO2=lzHc zbL#r(LeP~qZ>=*bEdph~^7}(j)s;Xnh@tRvSEoL^=9up$Fmk^z<+up(B!QbQE89BC z=w_%gaQLKz#!FiU@ct7p(JrW%q0n*0PR|%ptf(PL;SW`zcl45JDSjn>8>)o?jq?Zt ztbRYnHf!sf5+wCc(+AryG$o7^l#;CaXf4 z*)IazzAja}5}+iUHWh{TC;}g>%d|K)s220&OJp zIc5Y{ahBfq@~SuZ%svW8VV~+BSJg0|x8FIV1~~OIR^gG7{vEPtfGvGQf@1mnvqe|> zjz{UQJ14E7KbkUZRI!A#P_p82Lbz*J8GJ6eS(&jA>E`MI&qHLvmjPs;ohbqCt%XjO zFE=(OCpVs!R$fjHwIUEt1f*pK&c4t*7zn@2YdKzgcr_pjrONp7s~=7{ae0tDQnF05 z@Ns`|rj7f&u7sO_c_4scg^zDRUZvyCn#Z`|S|rhgz9o!bI=}N9RRXZ91^!%>GkjV9 z8Nq=BxSMlOj=BmC?m8#pfGeX9eK0(|W9We^b6({z0Gql~5T((LG*hHW;A;9%z`$=+ z?>tlNdEnPCviU{M9)hdY_Q(2g&Wz0l$J}TfH5n+$vT0aWymQItf8hp8By#+q0+VK8UYbY6Tp+no7Cmh;AQ-YRJ0tDX!>M9yTluj3 z^^moQzc2Nu$EwIgYUVv?!{q`}mxX#lPzYR7lh8g&(!QI`#fa1Qz&>P&f`1wIM(HTE zix|#WIi(;VvQ-1gS{)Ue&{yKb!Kxi7w9HX@2@YHA8Cxv2%y8}JR;cPnIb?1^zuLN$ zTNeg=LBvptv`T?mm*&OlDQ+_r7pjt5fG5-eY4SJ8y=rRx9(t-O14A{NVdYP&5tA-w zM_M;%`9>YwWw~7M6@WU2Rj-|ID_Y#JsP?lyBdPnFo-2DC-ICCyVGbh(IJ}iZI&5TC zMqEWqb4C~@AEEtw;pvh0Ot~&Lbq|aYCaQhPC^*n4`~9Jh>3NYpjgVzGI~BuiifA}w zw?-F6hDnEW!BV=7AA`=NL5e5x^w~f4xxXr=dmili0T*pI#&mAbjaKT|^DStT%z)R3 zQ0vFx?^}EhdO-w-nB5={hX84!UjXGr zsMSfR$6UgeePhk(U&@?ybK^xw#w@Y{s?Qnr`a!Rr{w9{n2Xc>52IrKC`umF+WahoB zQ3Y%%!_>%MS3Ki^KUKpo_uu%B$_WHw`m9mixg#OC;U?V@Mp~%!a;N=)%^YR!^Oc+; zW(#q`#Mea@G(og~->zd|uTT2g)Az z;LmsGuomAE&nzjkmoBpexJ-mDqQJAa=XrUXzOouq^y@!tXc3CPb<{S22yWW!R!{G-TAmcEyK{M_`Iw zC7?Ste*s#S%|Hs8H%StJES*Y?QIL|A?lTO+}tzxAsNv!MWuU_(=@}_7O;b zssdA*JAdpG+Jy4J-v|AV6!?5l7X^>f$YchZ(Sy_#)Dtg-@z&{C2>U1ry5FmI_T3kK zCmbhXFGCjy_g0qja93fxl(v6+UL#(Yg?t*|kx0BoLQ||e%C=;SZiLS@t7u!y$hI=P zbx%;6Kh9BC_}RU!B7d9|Ce<)cTCsIYImAl^77Q5pA1+h#aaz3so6}8U)#C<2DG;#K`f{xQ0rK6^^s=98Yn{)8?Aho&_@<+B6&l zOzJ8@7Xq(N41f6`k{pplW9l*ajs~92I`!uruZ~2hW#pui>K>NX#U)c&|8DGQ*SXWR zFBEVVBz9qXx8V19{wD?(6@c=P-{P=*;cW5TJ7NlllT+m7o`}x{%tPLDc5Wr+#OzN}1Shww|oI1@hwKSN8a zzZgG__D211U3aWqbX)zQz4~A@LN|ukQ3K;UBCHA%_OP4y5zBeilgQ2fnrR-M^sGrv zSrU`91NkKi2}^IV4LOuHPep^46nOs(lb@Y=>?SZGZxz&>Vr*MC%S4~anPl$duaBIq z*Q!9>GFg)tW3c_>_*=t)Af|~T3d?8Jv*8=NKH?^#ZE0R5CCV971SG(rIAn&rS6zLj zkW9^ehs}#ytj%*3AFj)#|LL-`#Uj|v8&zP{ov{bpAII2{Y3F z|K$SkmyAC_w1OO9s)&n?_JQ;34$$%k z4EUiZ5MYz2t$ir6lHW|RP5?XmCb{j%Ro-;d55AfR3*`NJ(TXF`5Ku zq4)9eqemIc6e4kCxHDp0zpGgl^~ zU%}!!j`sh_;LkBf%-^)GaxHs_x$q4fbQoHwwRktRH9kj(Jwb1{94x4zXpv;QUaPkW zl4m-|l#PZk=(tf7%=8PnhTU%-0Gqrg%ZlsdPkx)7Le@x|G=*Ol=idalMy_Dws-VY1 zM4JB-JZwxJOgR#Oma!UJ9CDK)HZqbOGu!hy4dIRzP^oJpQ_lag>G!fM(6K4h?mQZ( zYxUI6{3_ymz51-M$6vL0SI^!8-7Xm2i<3gg^1op%9#+P(Bs$wK#L1V0SWB4?25^lg zN;3@=r)8wDiH)KUCQ26Y6{4|PBJ%WIs*Il*DF2qfx5Q zNHs$DV`64U%ZDmV30G#HBM|z#sOMvB|M+)7T_3szI?Ds|ir+-hCwzcEFp`1OtftP- z3|Z!T?|Q_Zi~WLVo_^5iJ%+V*Lub7oGL{;iMe?T?#qLJF*$zUim%W+$8|;x3Pzw38 zoK=$Ud)1GpRAfJYHvc`PDtq{rn;*?;`{!p@)K3v5FmbsMS2-(jn+_$`j?78!L5azT zx*cja)ylbsI5Ltqooz?>W!1$_oHu_iMU;@yIgmnH6{|0lekdyuCuU;S>nbVNIqIC( z&|{givv5{%@rR#u)oDQCNiml2nKYmCYZ;Fa6LNh)OYbSn*eOYhJ4oht$Ioly^5_A)&UOM-qq3F_4*2p+V{0(%^ zJypD$>^~-rp@79MrJQ=z*^(zA;Tg1)JKZU7Nph84md$V5(xs-L)Me;Z~WE|lWBdWa^(Peub z^lme2EmQY7=s@#Lx%qMEWia51l!c0gLOZPPxfnu=v5zF{%EpEPHp6%DSP;yNp}1v4 z{oacyis`SC0e{c~c6CA>Ypbfqgg=i(ipJ5Asa)~pt+!hYjK}7=7%Gg;6Zp6|H)65L3ZdIf+Y8 z_5s=oyx())f5Ypxb^|=c`d`xMO8%;)+LUZLV?QCPE7(@6cI{e2xmZr$K()i$lHP1n z_kiW$kJ`v~?V3mRH+!$%We7IcW1cvb*g1G#E;)dc z1s>opk2;lKdS7FBoo&!`qRdf58#kH$e%;EZL~0B**<<30K}bb&riN|zLY4LbTfzxQ znEBb{-55nvXCnxMLkMV?5iCUEsFKwm@U>p6zkd+^w~n%8+q2A?2xvmzlyne6uzTyK zTRj%xN|GI$t{VQC69GzWCTClDJ)(&~D7`+Wbgai4hXAOzT?jRN+I|geXnS4`diidX zyJYwJa%k9g`Iz|G9v;hotfo8s#IHN=GDbPUvV^_B6L-T^QJ?l#YDZ&7LO;pld(t-c zqB~F>amOXt341wV);Pl-d63(mFoJezQsP`CC$)&ne`CEQn<8w4=3;E@JwBoyK||>$PhA8GU!k6Q7i#>B(K8M~tJ1NvxRw@p zbf@HP#KGHYB-A~UL@%ovwzQ%<{D=7;AFJl#Q7R7+pjNLfa1+Q$TohCIb{rw$7@k{; z7z@X5xn@8^+qT=gI`aPQlz_C#RN*;% zbqvk;Kg7LfIGkPEC_H-ay^S6v2ol}s43g+Xmk`ksT`+p@hD3=(?<5EzdhaBR-g_{5 z8@+v3?&o;-_wM~X@BX`g;8?T9T<4tY>}{PiB#6iN(M4LCc_XQ*{8@jC=%3Yx%GPzs zeBnLs`-+Hj8w91VkQPYBo-{A3h^zop1uRQUAqi-8H`}(&a*UvP++_=N+p-#~uOhj! zr%ST;@jm80OCp=cDiOr{o%g43f80h3-}l+K7LQw)Jm1!n{}8m5V~?<;EuxSEGEHgl z9n7}NMku(=4kQs$OL&(C9zc4_dCv%2>JN?>pMvRg-Q+$nHxpdA3}c-yCz@NtM^1rQcDn z{z|LAZgiXS`(t*Xz>Yn@lgj56Tf_mKf+b4?kFGFmxC);9}oN#h+9HqlTiuHJdL5M+2q28T(TN_yuz(~9=NzJ9eP#A zuc^F6NH(meFx72^XBZlO)57%~6j2nTqIC54qaJs0X~uEzE;qvJ71YQnkEB?a*MWk2 zE>CkGOnj9Sr{jtJ7{hp|9EbY)QPS1m>Z%TLGIU<2Sl!<+JvQ_pfnWcZ5yd&h#e?Qu z-Zeo{gO^J!6w?7O-%X$a6?|@tVwNG3BhM)soo|1d8M>Oaly3#Ol7^Y+b%lBGX_4xu zgTzVZNH?0LRIepp6)-MWge7r%2MRvQTXNyif2gK~!Fj^EreB_Hc$pF`9&oV=c8`21 zFl)CUOuG4+$x>E|OH^;7EhsHd-2Kg-`3zt_54rqvy0r)M;a@6d<1a_c30KgaLt4@D zw@)OPHC?e?(xSBltWImNSC1kyJV6A0=m}O_O6WhXGZw?Xe3iph+9t|iDYnhC{;neT ziRNPCT9$3vF@%2T>b*HSk}y#-h*P^?o2ciVz3r}yOjvW#q~jQdX{JYYCeSZ#j zO?gJzQE%GRGSG@^K>`{O6^{~0-gJl-4`e25Q@-@5E;>_xnXJ<<&k2-#x)P>Eo{eY6 zDhgMSE`MPS)~8H%jxsK%6vQFUdwKfhRkEqBoqNjcMF&cLT-NUX$WQhn?}AJA)Cuvn z{PNtjTgZF6>lV3qr!LjkH~rlMvp~@Gx|x=N8Rr==R}}q^9{QT$Z6R$3Ymjq3rQY|# zV@ce|r-h`T+F*KtG>ek>ZS^{LbFe@;g>^dj(uWpLv=#}5Ws^{#QlkLB>4(?$J1$hx|Pb=u=gFGNc>XI--VJ(PTRo+Krr*43|P$;31CUoy%O;;W9DQRt_0G~j=t zFyS>C?_?*}H=We7t)27Q8tJ4(1p?(CC-e+I(E%na#_Q)>;91qB3f2*}gGRpl07lxkR9<9W< zZLxfO@q@b~K>^-XC9J8h;W3lr#gQ>A8p|g3&*KC&WX6oApr91_I#es^6ZuM6Gp+tg zdIA0J8O#o~M^Y8R>|Xqg6KG6~Ktp8nc+W>Ji*I<`1`Pj&POq`wje;_w;iC=fq#ECf z@VRwpd$((|gU86K?be6aU4f?Bqm?CHx%9WG!{kW?Uo)myCrJaZerGGu(fG_NOO+Pa zV6_0V9v-f?LH2IWc+p&QQz&R{7<2lbNbZTY{M_st%zXS!ED|Ho6Yb(UWcL$b9bItU zZ+=-i8aiL_Eq6LgJrAIky?u12`Rg~aie~Q*^n(R|jA!f-YJusfND2{CMOd3W)>C@{ zdx?VS&-DDIqs$syIG^iwNqFg_+@DDFedA~&DG_BjNoI~zmS{lA~30eWhGl&@K z$qVvU7PIX!Z*CG4WH(}4e3FU$$+Ua!zVmbMA}!$B!E4G#MjUbXFwW1%;_3&y>AnTt zr0{3*wkN!ted6t_-Jz+R0+9F@kOY&S3t8LNOHIxKh%d#%($phN+M?G?UsrtT6JH#L z-Z?`A1x!(>#WPlX8reY>Miv>Cibw*MA^D&tGm$NlRE-jx9v)W~gI*qko`Mv;QM!hq zS4Z_+@)NT^nE`K+#`!H$(ms~5?)LYTye_c~cc6G>u|1KKCjXQ3z!+-DWIM+npGsGN znC#&LIpS~Ox@ascyk4~S6eH0?dI6)?ZGZkQ6L zlY&yM@mWH8!AlYQ-{S?&rV$?F17ExrhNJ?+!#PunSM<#2dVz*E+MCX4E`iP?u`G?SaieM61pD#5k}am>B)wjY zC>&zZ`Z=rq^SF~}aSbnPtaJ;Su~%O~o8%shj|SOa;CtI0c9$q(oCbY7dUxPO;=fNL z6ZFv2ROHYN)~mbZh0+W-v^u!%8*Dm4W?OYmB|64g0<@c}HffO_Qx&&jf}}}Bh2@d< zwP|VOK#6+a>tVa7Pm)a}y8z)Bx!Vepz1kvRQVbnjHtpj}Z0(MInJ8Wj33TmU5}?Jw z(5O3@9@ZxmIYuWL|NWvv_b(Vg#(_Xa)R(EIhyE|oqUmFA_N6`pub7mkgs23%NCvs0 zuVh=wDW=1z_0Yq-(VShUC=DHP@VQ)qY;>O!6=jQO2L+knuaNujN>t{lKawD!U|}VG zQ1dPLquB~ty6|5a{NJAw7bkMmBQ{TH)s#{A0xi{8w+8!|?*xC0PeEdfBDF&tB(k0! z7>N6aEtG)v6;?J8%RDWc0d?Rb(>9N4oo$Ce=Wmf8_fmHH32+}>t;sku9o?>x8g;J=+`YerO;u&4bLNj`>QOXXJu$Fbtl^z%j<|sjj|O*4RyvA zozamxxLiN=_;-L#>VqV?6&B7?@c`0jd+}`I6?+R!*mtz7?>yr^U6)Twan}vWriL?t zYDPRKQc|uRs2;ZaLtncM!Hr+bT=ri?HJ5wu`-hjE{FmT_^A5H%Q%^%9T8_Ji?>m`q zzc6>Vh3CEKs^i;MtyK|(T{qjV)0r5sCje&OPPQIVPZ&?c;{^14C?i^A^9tp|KY{eI zAJ>yxv#*-wUlG;%nO128)3>1!Lk{`dB=EnN5wFv>Q4zU+>mH5K?5v@|xdQ_|tY*E| z+R)#X=(UTU{H_au{O^!xK*>Rcb4&s;UM$eVi0`W#g{434Oh^KXK4kGtzHKp;0bgQ} zTYz|o?Ns$#2$vP?!pvRB1|-6r(0-~h*DIkx;}gUl)4q5$JO$7GAubJmmjD!qj38|> zoV*s|5Jni*b~kDPJ)${Hj<#cSh!4J9x@xg4w4*J@Fr7B6z$%7ZD zyBPktZEq2Zzpiwb!Y zs#(oRT)V$}Cj+yGlT-sQ)QSb@0Rk;gw z3J?xUo7gKN4zb8UDiQpe3a&J=zQSzsr(%i{ETK>GdFzr{(iN-ou|?AJUTVMFpeyD* zn!d9#L^cTz?@XffEZU9;eFyrVhwR?eM6^7C$a-G=`m%I3u}1#+=} zaOuw|1;h0@ZxTnGs8@Np96dSvJ-l4lBQCoB{8#4#{KuGv*7_vBbSlq3vu^r)Z|91o zf9cJ}0}CdtqcOp&UCkqi5Pr**#Nr+`^)TxV@3o#YaDRy>lDD;tKp_>kfGtzgT=#Nn z{+lZwKmQ6r(b-ykH=TP1)5Z1OkY@lW>*i5Fpjh)d)21n7a>=e!z!gQ-)#m*H{1z0B zleP$8iHt7f_>VSUh9vgeg&^P8lnuLWIIMNk(BBf=k)yw`J{9ORay^PU)qQ#|QWbSN zhQr+Du0yPBcqXVdDQ7~k{!CRs|7Wl;_U9#>pR0S+fZUi-y_zKw z!GLvZlX;6huofZz2B;|q&fU+H+T-=Zi2jftpQK&sDPF)WUpGbB_g_(P#v~}Hw=eRj zKUTUfI&IF4)K%q-dxFWVN~?gY!ZJM&!79EZ&Yg4jJ$Z?XNW+;*EI5^NELvCN;p*mv zx5?#ZV{}&MNmb^>EmJGhim!K6hvAX$J6Vl=St4B`IF!K_c&?s4bp)~I8ghikw8n~} zr{}Y+=d)a1iciX{jC1(&+cg0Xa&TE$+MP**QD%>YYXnt3s4rAO^^e}`254CGJxi7u z&K1VgmC#FGYF+hkp|^mV*Qzf%B<&zade4^I+IjRkC1+LFj*HoCoL}Ej#{Yh933Ve- zVPHpU;T_g!;a90D2L)nv3TP)`H5O&1E{8lhY-5|1d1&s`Uw$Fjb?s~$9JEyHD%w;S z6y{R(yIuU_u9H#rvQ}b{zQ130#roXk#T5O>bH3aA-3-rk2Ahm~*C(vDLMmM&$69}7kC7rkG*=(GD(Tw-&8$orgY_L-={%5&)ih)X8Z&*~nn)Hu*TH^D|Ws;d`+tERM#*y7Q9c#-IKdK%}`7pr5n^U*N^^}>4|zhmPG zHT~8mhi`@t0^FvGK>3buytR|S-m{Y0A^}3u+k{Gjv;*-3)(v4$B`V{d^hG`q)Hmy9 zopD`6EF*wI+gBkqT-Zp7m%fQ6TUC+V71=ps7j!qi3@ueWj zzD|Pa+iiCmE?08+XF(*L3v4MChMg{B=J1)fV7U}ig9+K0 z#$K{yH<|O#Gd@cd(G8{y_56yZ?!p%{qQWH^&lZDHb=Y3zapQ+3Xi;)LQ7_$y1HRRb zXGY-2FNUbkh4xO>m^$n~^mgD-Hz-4nMp#mZuze{Z7T)Qmv&~E)8f}v~77j^9&xqBn z9Wy&DNjG{lZ)nzl&oMJ1Fjr*h3CZY7Z>DV;ji5w28*nw+=zMK5E}kXRcQiqNt}Vlc zgOS#cqyv!zHjVwx7I8hcB`VHZgLjo@WH$bL2ByVYX5zxracg-cal!WC;Ps?jl&$|$ zh`}$%5N7np@^tp4rEQ$3SaB@$(Y_ClMKmWGl@T{We#~}1_SGYanMBY&s#YqO1pIFn;Dgj;lTshYbr=AJ%>cd@`A~Bw*En=0qbtf4%z4ksm zcf4LNIBBG=ot|-K5e%_dIJLT2ZmhL*e=WXuYNoJ!b4ASe?Om`Y9vdxwRlTAG5ll|Q zDP>?PF=MN!BZIm)*YQP1%#6gQo9WTlaEk zecH>EWl$|jFB(2&{W-q6TV3PUx5j@!ITn&Da_L8ePXk=o#-&B1xkJE#1h*GLk*{=$ z`_svMfeeYlZ6q#e#eW6F4zhs}i$Rmgo$E;ty@W)j;U(Ze=_&w>6Wx`f?bY$+Ssy3!UIa0~S=JA6E!MNBH&i5_~ zw!m+}Nj>v~jTR;mnHaedNJd@u;G-ZSP4B}*9dL<%?$vWZJ zL2ivydiwQf$@GyPLzLx)6Z2EcON9qW3mFxI^dn`86gKx>Xt?R`06;o33nhq>Yxz+J;?#%OyA?^!o(8Pp@*N)U;glEfUr>*VVfnvhP@Y~z=ko&Wv zFRc=ilD;_KmMS=8ln)XQ_1YR=@-#i?KP={5&Z@#(M%^vP%B732Yxumw?+E*`qOhps z^;&(i5_2t7Msqm$<0x*I5w;T|(>jdivDWfAk>$4Sn|854FcmKFX}vo=P5SR_ZNG*P z;{JMu9p}G7>A<3qMNE4F(gkU>N@0$jYyLS;+&U{ET#yvuObbVM!96Fi!Rt!Hehb_h z4@!+*X%S*vN;Wzq%7$VojQIRHZK!nh<}x(!edVkdPyAe+X-pj$R2L zk!1vpk+86&K(A8b?%sExVU>t{#8UX396XE4E;$f~u)HwZ3V)i2++l9thb+)xErDQq zER@YqDglxdk>Aj#&)I{cyOOrWP6^y9zLWn~Edb3xYz*x;G&ylOF2%7^J8dK9#DJ-- zvCh_bg3x%q%mtcb319DfJ zYpK&rwv}kiF4mGZhEt!&P34ZJBX(1gJumQLN1iDp z+PQtyr!qeKvZz#JP^VphAA3>s-R3PQf(!a~&qg_nrlR@o_eC32CS>v_v57TWTWr9C zL)oQ9j}sE5kB)HCQT!>(>i2fIJUS`WQ@+B^S57WX;-~b_csAfr94WNeM4e=<6u6}?jeSqC=!E|Di-4#9zh}!4_|VFh4JOUhq3!GV={ewl6mJ>zA$nw6^%92MPS)& zJ`_u>-|I<5Ju$)DXD!{WFbk{)81lLw_4tw4ZK}s3CQ?d0bUGI@Rqn}v2+jxp5k+?^ zO)7S6)XD)_ebf~n-2`UuYnxmfIfB=vNO5dS^2AuVesER0rVlB_5{fqmi064{XkkhN1EB~GHHTmNdg0&p`q45ipKGUS zeE`?|9Jkz`fAi$Ycy`B{3JZ(S9!a>0s7Mt>$9ecO*+B9DrnKOhK+31*=I}i46vGyBIMBTHbH&oN! zP~!eNGsqh=iFu>RSvv2i$L+Yc&y#I^!_qKPb=S{|vaK$)G$yj-rELogz%MH71t!yH zCX*fnmv?*3NiD&r77h*c^!2553X{lzwt`;2THo#4FApB{v=Y3GVaNJdb%?9bHi01Y zRD5hYQKQA%q&1(ZWe|La^M&v_mtB!ZW<@HmG?e~R(DpgIxKMDQlNLdp+UE0IsIsz= z7hscIP1=vwOlCJM#zd==n1WvvpS%U>>{xMZ$8gS%%RAYZ#*K9bGn2N0^RIO zrXPC1&F!P3DV&4hIzP`!9qpCw zx}#`&)r-#sg7DHJwYA5vV0xs8yxc+pR51$x>~k8Vw!9oX`m+EcFE|iPN2vqk@wU-? zN!zyF4eT8qPkr|Xm(2g6n`h$QqG*J~sFnM>3kKSlArYH0w|8ZViXqpa8?iutsF;E~Qadvn%83OTpgHfxA3bN4aXK}mAB?dV| zhG2m1h?g}$X+)3Jbi%;vxG=p@L>{9&T%8`4#E#TfQ-r%>LU`?v+VR=Yex5Esg{puK zu(i^L)TyYF2O{p)Qwp5?cYLPw4D`LLbVXiHi-p=``BQ2_js!Ekj}MT0d;ODzjMkI8 z64PG&gUHOjwB9NgcbH^6D3bNrF?!T` zH8B_}L$5$B;l0ZJ)6rYQr|CkPn0Y?prC@8jVeMQ<_tR9Xg)1U)o7*t)^P9L&3ld^G zbICdbo0;CbNE)ZhzRCTMy@en~v_lL~_Ysc{48hKTU?&d-&jf-KNl|^+sL0T4sAx8n z0~1n(2C34_!C3|IhoL-jB0lU7(3truk44DdUDnuCNQg;YCb)b`J6Z!ejl{n@(Gc%0 zg;+s}a~rQ|8#Ea^r>Bea=1RXhwWUj(2-%p^P`mT@RIPule0yonXIw?-=s6jDs;$aX z`EIB1QAScn_q&}E+=>R%V0{iXj?o*_y;+-Dn25Q1Ht|Q9mS1@ip&Q=)X^bq zJaT`xs-QxctL_G%IyyP%gNGL06CPz^_a|HiS$;#_Zs}zPR~Nn^NXP<4mJ_MW5=%Jt zm5``tbmhpacgT15gb%oS(EvNR#@T0Hi;~9PVMqJL3wYrMFw$Hkud))4>BmNPOODX6 z59aR7?daBl|MlQpmhY|;MvhuDXdm=l3O>O$f?$U!?JB~NWR)b4TxgdJDiTa~4ZN7- z7R^J71ENAmzVIaic|O20JsH@UTRLfhmz!7G|9%^RBf}$=pEP|rnxgADe`X8zhB6`3h&|VwSN&z zcpd%#e7A!U;qQALzyvt3-zD%N*vsdjJ8XWP=g~N@BrAZ`6yUCe5MDKa)pDSmc#r`h zR51q-t0-iI@NUSZYj6g>kblbgyRKI*b&%8ia+^WY(Q8a9^_#3`r?j$5az|xl9N++Y z9t=GWxY>i?1b7TW}5l4TiCk*kH`2W4cUBEYrbU(3uRD|a7tMx1GO8M$)> zS|~UaJy)lJC841rmE_>U0AJ!FwXp#vMS~20U`lM+P&zrdrS1nVsV)WEyv%fxh_fF# zIsJa89u+%vH>D1n-%J8t*(h4+)=;c(#8g%$mNfgkN6DOCurHk7@9*!oERNlY$Ebr$ zK=UNa&inSN_#jvkCQL~u5X>0_PNd9+ssZc|NFj10nHt*Pt)z4v;;yY~v^wH8Do~RK zb(7`9=h>$MKFV|3KPE*h4C@Qu?cbDdC}=!lLLM;9wK~06Is-z3kn3?PKNAaIM??Jy zrLVt0)0oR}P=lL}nocnyj}#R-9S9D~hIV12xG^DYfXHD57zqu6FApCravm-`8Aq?f z|IE!aGc9-hZH8(yv$oQ1eY+;^X$qfH`ch54%lpkHSjE&Am(BPzK@kawu`xHxi|LWh zmXK@D>$Ba(6(5(A$1RwNNYyKlH1_fVNTtd^TPOB^m%E-q*NI&zXf{Odjdfp6Y z?wB>bRsP*kUQpw<;W<%V`@6K<$@Xw^Qp{j{a?*QehoMPde}W36wQ|~ECQxf>E=x;T ze7Cg)0zG>cdkx%;S=ig7QUrzij^*`jh&njbm$7ypzsBqB@ZuF@3EBw1q`bSb}D+~aUk3#S)F83yyAsS1O zU8clq>^2$DmmD>r^rh_t@(?hYB{NJZ(ho_-dX@tXosIw}a??h}JjV*008OGBhVa## z4zV_aeqwmxwF!X6F3X5{DE|NV{;z*VYm+lAeS&U?`I0VhJ!fjaX_8xpHxO()g1iNt zDeO=tCip7CaRI@}_E&C_0%B7E5Tyf@*sH>w1TTpLu|OMWpBP|EpVnZ6iVXYbN=O%J zls|9pDGSGcc${`xn_T)2J&-L1f;gK>?r~rPB2N@m4ALUnn{EW@g->RnlVY-LCC1`2QUqT-H!hh5rY?qR|r%@RKln&d(+;A^K(l z`ew!WGe9Fvm{JU7E>_@OF*<_OxSJrG9>gL@j2B>gB^am%!T@21Cfw@iUxg(s=tSp5 zlS1G0^uoWHNjXRtNvWz5Xa94Q|Lb`Eo^3Y)h6{0(r;|m-(mG_2b6i9xQY1l~p^euT z{SP4;N-ffi+%+O_o|Uo^A}CoOvzlNT`0vD#3?}TFd3msSG?eYIVTtR47Z}6&ojCBr z0jygAB#*a?(WM*cYpiNLxLx4Ucx?7a;ooURd#h8m7Oerwb|e84j9%Kc>9nkf1t_-36&di8bPRZWeQ#zNa9sW3wVYA^spP z);|Y&TUUFtoF2`W<)l1J|KZ`@z{3fDGBdvOR6A8+{lmc7RltpSf_O`&{>bl{+~U_? z+^uHyRsJkX9&Ft>|C^fsZ@OQSuq!M6iR&cn{C8X%YDg#FB@KH&dAfT@=Q#RNgB@E~j;Wa4uq z8JZmYt&S)-*^I?;vpq2e>rboNax!=4ttYL%+~T9Ky3=pnM34S73UhcO*r9-a#Ru-A zgy|Ljp9>yu_`nAGjEk3ZT*Cga!hqPHMuCqXDa8G@Iec5>2}wxW#h%~-hFQBDDFuZU zF6JA)!Nvu!-ixV@_4heIL?Q0^?^!pi$8UaT#tf9+;LLI!ehcOF;=Oy?ut#4l4E}A-idQAgUg8vnf5H^6108JJF9%270HsQNkRY7%TT;X4Y;vT6k zXQ9>oXl@>ZEKE17OT6`Qq4@dE4~%nu(2hds{S^B`>SRro!fz4gHfa(0_s3(?Jo4;p zrheKTL@IlV=`wh{emdk&pOF4PiStB?BvTg0lQ&x>_KYoR3cgfw4nKcB7L^PJycEKJ zc`4gusC3D+vgZ;5^WJ8Fmy%p}QI)!u8&jd=;qm-T^nnmJm2dsM*DXnTlMZH8E$iwN z6t@sSq395GLI_)l9GqMcuF8wZ>jEeg|L+zzM4gxPd^9LAhLSaa@TI=!z`@>L`_i4O z?A;jxhzMPG7MP6Zd#q4TK(&y@t5t*%#Ir<51fB9p1rXADJqv90xrOT zumRrC7C_KIa0hTk$O&LcV1S^5|8A*ks9~;(W=ZOsNtj=Iv;N`YShlrVf3-wzqGZnuNj&a%h>e%K{(EzUTIMr}sV+p(maLxbqMJ-&yOdQZQ zRe-`l^#K|O!Twj}zyY0u`}f7@=OX~cFdmxmht^@V`Em^|G`lhQpM1?)3Azr5E9qC` ziV^T?T2wc6nW(8dVs`8Zk4sg=g+BVISgNId=ca(6^1FoZprG>c0{U#zP3A1xgR6%Wk6H_E8QUIxH|4{Jo=%;53bA|uHm*rCf zN&Rn>ZRdh!_x%%J!KPd1mX{Oj>n9(2NrRNQ7xWZlcNK6|d0r7=_DXS%dU3{ioO&xnYAG4LeA5H( z?^h!vfwvuaZd^Gy+I5-$4L6IZNzc5JlI}!dw70~(tM43WCJx+6_H@uP*70(Jo`~vN`;-fu_3~m zdC-|cTXYv3V%39c+B+GRMXTCx07?3vt=;!50MPaK{}P~8)<(?E27mrc&mB!rO8=zB zWs-daw^dAOq#!C*r}slwv=Q+SUzILNSQ=vd&^>i9?4@Aj$cPXjA)(>q^N875$)+_k z<~AwEt3X92foSHatp*Y*7`|QQe{eScW!K4YN6XEhVPLqKIp0&G(@gVl0RqpnwVq(< z_Uwh=lj*FpD+SyqVq$qMEdrEiq85jV!@^0EQCeNoUS)&Xc$P9)N1RbDhjGUqXei;| z6&_?Yr{9L7bE70BC8JwfT4G<@*}m<#mc6iRTHg~>beRFGZrFLY-S$vDwAYy7k5u{} z0c+vDkeiPWVQ0Yla|<%wOFBV)gfH*h-#LlAsg&&z=yhg&8s;RK?lpU)b| z(slBEPfH8p9?kMc(jxL~|8G|GdVDZ(*PisBMtRkniqPVL>e!$=bKf0@tWJ!83w`4q zJXS#m1Dw*Y4hmb@lOrmq^FY=Zu!KRV7m){0=3Q=== zDo`j6ASZH4?U9y~#2+&)?V2VLuM-Px$XYH=`>JIYKE3H~%D7PNYA|PKMt z2xpC{Zkkj+zqUb)jfKduB;-3{pAyAgOmnq{irsWd>6&wqqhX@?x}SasKd>>y&4B_I z1qb9`UI__|k^rVO8UpSP1}CDjp@7(~FI+}<(NV9wM)Y}d9IiYY1Oj61{8=#BOuy}s zq^Tn>Y2m>*3!mQ2KryfRFLgPKASgphbE9JT2v@&w{y)M&@KCDR0cNmf?rZu!^#> zviOIuMV>t=id_i`cx4!al2^h8Mz3wtrgd;%#fk4&8*-_QVe!Ah<;p3FQ;D`TJ$%FS ztIE*AgneQ5O2Ia9N4H3Wm6ov3-S>;h>|wG=D}1n`L9}4qij~8^&R*>nCydnoxBw3@ zAOEH8{-X4+y8DaMzxwVkQUQerZ1)vGu_z)NU#L%YWE35gmzMhLKG@OJe7-8%a$|RM zwg?8S^hPcJ5zNl;=?Fzn=uur%tS&!HwesPXvi8hMyVBg830VM0uoNyCrF zCg8k-<@8MKb)~u`FbylZh#UU_7nk$4o~C-Q5pGaz)0*E!SF1l3SW{VjM=3R^5eA=H za$iqoJJs^0156L?Rbiwy@87sq9U&|UAApuq08riN0Ju?u*-*en`1_XQHEns!Rj{94 zL-T3xeML*o(e|^+0|^gu=IiCT%9Da|>^4APD>*pCs1Z86p1m|jz=C&{ug|8L|*7$=*dystN`!@ zm=JZ`zuSp8@MADg!@vud`EfA3$MmD3|MhKArWbA2UFtay>rHYus-27TKG{$>*hNIr z_foS9>oC=SGs1VHFS$z?ZHU*WWN%a zw(JE@jFbA_*=7iXW&PO-o{Rz$sC-Xa1Hy?I9%(kbW!yJyuDde}wwtC#CW@N*WYyiF za6yo0JjiIF!vV!q78ou2FAvVT@A<7>jj@AJ+z(KyU&@;`O#@(8uL*lKKWR0n)$y)XIVROCwf{=?zW@9Xh(F6P+C2wQ|B#-3yOWDb5SknpGtC$7 zvJ&&1T4aUsI; zz#)Vq*eU+QQgujrz=lO*{$vgcHvVze^di48m!5ESvci|XwP`0lf3U$+;8&I`$yGP4 zHyYFe(Lf8E+eO;QQFLEPws350tz^K3_%k^YU2Vq*S$~bidLR7}eEnUebOO=sI^;1nzx~186XvuK-ttXCou4gEHQ1#RJ(0}nhxo>21MLR4 zn|r>o&t%?2IJdBRiV`_~PIhfAOpgp2!wut*ybc!()8&b z4FaSd2-WuhfEOSVz>WJ$Ie;IR3;mZP2SL}m0IvhJCcfKCceg)lTX#YZ$n4DN^4L2s ziadd_Rwh{h1=?)B1c5SNFKO1UJ#Xl1YCPT$RRCsu9R#+<{0~d~nLJaRRnv;rqjyU;H>s^BteRoH z8AH*XEv!ukW>Z{Dl}fll<>gp{uLIZ7CpjYdqX2^@iZ#3?UO&^zF7N11A6CE82>a+8 zHA`r2SuS#2MdjTYdX6|Jn?8XBcpDNXBP+KR`T zzX7aT)4}wpfn*F2j6#PcStGTL0RIvQT@xU+Q*xj~9|q;p>kf0D%APOG`Cq1e{w(Pv z`S9#Cv&U!g$e2;GPHe?BIXU^0l&1!F2QQy6=)37I%qHrMyn7B?w_GuWa`QLawA?`+ z%2kW$jTj@5=VN&jlQHH2%tji5#l|UPwRY4{ZOU|U7j*wt*;i&SzDYB9&R^m@5veU~ z{8B_&d)=gOCIX>j%(V;wuLEf#S45t)99$hp8{r_e`{m)sK;A$CsSVDCp7l+nQ9gfO zcF?%l645H@)ZPKy@204TQMbik(b10KLoV>b#3Uv@o>-NqbL6#Bb)~4lohlDdfx%s4 z6nmjSl}Q;D+0>`6f1o-NY5HY7GS&cE&Tw5r*q@tt(K?uiPIgc;XuU?s<;?PaHB(b?UC9+K+2IGD6Ii9k^gLQLq?fZ*d8zX z?}#~FD>b;r#>FrDiJ4{T#iyiDySv+FaBf>7Y08gCwJ1}qjZwn0o$IcO+LUz*0(A@J zhd#f>sAmBWXmRXZehl9KhcQMgvR{TjffH_hiUka3SV8Zmqfs6|v14Mv& z9U$XE^v@RT&+4z1t4`+o`AtXvd#)i(n}Vn)m!{3ViuR{-VqB)>fL^Yt5doo+v>c!j zS5d-)*{z=SmcwJ2HNtF53|uYlf^3tMw$(CKQ6dH7k&aMk)91>7ne8w3l|P2Yw16ItYSOH1@0wDCrhwoOlq52Z_d{4Vpt;@a4E zr%^T{H$SnCM-WW8I$smBeLf>j8HNqvWdkZR6yVW7s_Hu;j}1sw@u7+%0my*346yZN z=I!T(;?mL$j9UMbv!|np7$C>nfufHCIYbO^`(9DCr_<9*@#|^ExYt)(pHix`?~PEY z(|ORC8QT^jxAI~1B`NBqN=(dqHI@?QlM$z%zUX>|f$}l!?MsCmCclNAUhagPuSqRk z>A<8|wbu;R7aHI9NB@E=$;-o|31NB(08AlZDh^a}9{>{`gcq=9_m}#G#PO@l@(kzN zbp`I8_cIzfF_!*aSEND&uQI{c(>oc)_8&m#6BGIXxoH}vX5AsB>drH>3iSi<(g_aw zHXqA?!Z0AbmH@s0hMiyzt*Vp#mbW2}qjb!ji<0+IZUgVCywrFDEy*oriZ92!aaxxAx^4 z9tA*R`KWNpj5y0la9^08pWoKD7%DBnraZ#_yGQkb%G|q?NCp^Xie(p6J?f>Ptz9P* zVd*Q0Z{+>BQL!47R%+-VplX1Y{J5%gC!Q8oLYm*FIHc)`e;bHJ_BrLD`qbf z1&QtLZN&662&A?ys6)#xr4p;*#CMKD=tVtapNP-64B-^!e4!+bvC)V*iPDbR*q{c| zJUt6{%W}*zXF;`{2U!~RLpqi@UmLF6etOEB0}uc;1wimK7l1$ku1*P*L?gAMfJ7%g zgjaiDf}IP)#SN`#Z{TaWL-X-^h3SW(==-~F&6nrpdoG(VfS^iqGm*}K)|HK=M6Q(f z`0Ei#4R_@zpdosq*J_5GKkDI4kd-e>J?TLRZwklNWs;8aU#E|E_1y1b^z8S=a7ED! zhe;p2)g9qk-V7P$K^1oa8Py>ZZkC2L6dQA_>|UAf7)Gz~R)b(J3X&TlNx z--^Z8XXbu=YMK7f5B5g_OHW_<#Z+(|Q2(&{G|*w=mzkD# zC&OZ;Xd!AQ5dqYDrIT~l~WZy`>a+Dtii4DF|wTjEvA-+cPzCtYM>9`ML8Fpx** zMF;8xe!i0m4-aR2`0<}t*lzq~VK5jY4-l0A-k>|s&fXX#{s>4GkY?SkicJ{+#VR^x zM=cghQ9#v)^!`nFI5uG8854h|9tl;8?t9-^`A6#+SL|N(4|(^iViCv-rz|GA649YD z3F9(IX=$lqC$x8C1bP=ME9-2rolI$);y-Wc_TmSSVQ`VwL27R!*gFn@@M#{~tMh#b zEu*^tu1)w~qnV1X@%^5Lc&X(B1p6Fb}myIf>S1=aVkS+liNTV|h2^dx(zYi!SFZdQ5^YqJytaQy5KGBH33YoOZ@WOss#2&!)66H1>_|G^8NGC z!tfy_=Q`uBfcsT0L1D)G^3I#f6NSAR<=_a3Q^Dhxz0?IshnK!Uw5NBz-tE{dS@0;n zGAU5>A+DSp{JxZzC3NyW>t`&kM+y%bu4;+p-OZ)=`(49dt`Xtbhh-Ih#1^+bB)Vmm z%31@D(7fD?rBcj}_Y*G_OFuz$^rFovj{)0+Nc#2D-)6(b$tD%ZIk;bdc-_YRe_VZaRMg)WEeZnCCC$(& z0)ikhbPU~HN_RI13P{H=q_nhjHwMyOQc}_l(gK3-&iD7;KhLF$mbW+CN!oIr}|6J8JlY7c{`yjgQBpDYe#T7gR{ExY% zC7QIf*!dOyYg=2kk`-}8at16NeXR&A8;l z;eyni!@3a_O)vV2>~o3&>*Ne-O~r$iw3}9 z+7sGI1eYmd<_+Z)#o9AGh>KJCeI4F4uY!1U`1D_Nz`x&u$v;BaqSbrIP>fw%xM_kR zMZsldJNx_6KFy>ukv^h@A>J^Xhkz3Yv>mD|8sLZd`2nx~2ryz&US5qJDPzDG0#wPz zWo2s{1I{2RA!1}?j87AP{u~Hstge6mJof!;ipwnjo{jaL6OO@={=K%{YP=%i>e zv$yBiUMPkEl`}fhqAx!0t9V?o4MSa_cg?Xi+3>#Zs)(jOxhmFB#YPXjhD|{aL&|{Ga+>wrnyPMnwpxL`*K&* zLbxC$oy4GN{8&d;@R_zoLqGq=aEPMqIi+2czEY|Aa!0G6{|oQEon=vx-|e?Y-{V|v z`jYop=uNLCC0AM42Ep<>{zjpudg*Sr=Z1b=tXzI8q$9^lYF-5N;Ac-tq-nn#VuYe7JNRqa)n>sK4-#8Ot z9%iFXj;7h`*C-3k$KTG+J-?JElKQuOO8)t%nyt!J#98It+~L`S_s7~FhQM|bvyi;k zzH*OM6*ztIsj^b3$X*ID_*Jq!_3V+T;`f~$Har^P5MaaK{);WC7`41Cc7AyY))gr* z;;0J#@B#z+I1lCqfSXxgd^R~P?bvnGgJ%HiA_@fk>ZqRTa*hSO1j-@(`KNEYVCyAj ztrHQH28!bQ@d80hkM}F)?;*?p$|WEWgw$eh&}>G}w;BiRSdv3vyQZ>dD8`RbwoQEP z)}wVCH1Dl$k`}&(P9Rpn#!^9i*yqhae;zR-w_scCR6 zUVx^ornX*`=KZU*Bu7$BO>OyjFg7j@d2grh<^1;Kp4Jd>u_^Cp;Ardgd|zh`4zy>Vo#r$gL5iOeze>K;#fjx^eWTVC$% zFaEuMYf!2uMsXKt^SiwLI8x;8<-t5Ay3Wvps93pu3@tK7chgeYPk~~zIYBoD)I#nr zR&;8^g5uA;&wJVUPBh=Gzhx^c%TP}gd3zIxbF2Afy;wdNE?k$iD-AcNE9yot!cMx0 z)$-bJwMUzCalr1XCVt0>2Z1J^{h~uQA^O|#mBmysnd_h5hz^Vz#@)liF1|5n#Kc5x z$8<1~n0&$mR;Cbb7Ck^vEaz+ww6uECl@nC{>$+6r$EVc9W43cwz!o3eFzaG(-(6>= zRO_~mZX9?qn}a#pgU_Su~1<>A81$-QCIV&K;3+}L0e zaPo%)TpdZ%5!C3U&hEAV=Ae zr(tDbsR1(!+~BTe4eYMK_4gw z44bcp+5c|oiNi&{*4Go4l}Ww->4=;-{QX$k={wTt2hBGSm^Y8tjs}{jXvxX>)YxlVwmX!N_}Tp) zFuZO(PtsP)%B#Nh#!#=G%s8gzabIl7v%7WL?{(e`n3ioS& z;pS}osRACMGkJ06u!9M(8|4Hz6SJ)UrKg1N?b&C&z4vR`$;U;`6XYQ1=^<$$fO@`s zfqN#avW<1(hhA3p)?DzJdD zBAYz*1rJO*u(-mLVUL_$T#y?J*un*p> zH#0D{6gawWDRbxet|@@KV>m0(Xn|b4Ih3|qH^kKg&~FS2ia{)-$lvl+`PY{F@MbRo z0e-!by2(F($dUeup6r!*Au3I|cw0gdDT;lGj7J=DAc65d{0VOOenS};cz0c;IzuS+ zUPL=qEUi~)CT)7G{JBXxq)?f<^2;q*vxUF#CilH;J3j6!GlxFS2naA*nS)3p==$qp zrMqsWVU$j}Zt=yVUH8@+$9c^Pqvn}QvV9N|1zeUBr`{pSePIA#!pHc3P-3q2dQ3L->-F;PURV7;cJbGXvwS$NP>a7NAo;B$+!^lV2TQ(g* zfE$>p6zRJRx_#3%*Y1;B$qT@kU2;1tI{#z&(@ke!j@%BqyYT?_5X%OY>e(33ZI%tr zOnvb*V-CbR{)K?oc|sH>C@9UlgFqLJ#zl22m4v_8L5L!6Q#h#4bUm1>ZI~gJdJS3( z)*QBmmR3^HPpe$>Gqx0o#edSDM!fZAC(G(*Dvp({z=~TtdIbt^?hoec>55__n^~qYYk=w_54}rb?eJ7{-f&$cM&qkUCQ5w$NcgE=#Hs^qbQXrL=fMFw#)C*78 zdiRB1A;pP^B-ZwmVZJeQ&ljH`)Gj)|M9ve=S6?bVg~Xq*vA`2eOfFEkW>z{@M~;m@ zvQ;IIj(dzj!;@I!d$U;Izw6U_z^I5TBUd_tP&foa}n%Z-e$h8=!5uM)5*>E1o~~BrHl(%B0lkq zo9E|QqkiHs*2v{ef)(f*E(2Of0xvC{yYoQ+qlD;SGC-`z6=i3m74X^A*mw1jt#i{` zk4AN5OYaf`Dc-rV@}`-1sSF-|J5u5a8K^L*|IYZ~+YA3FAr3nko{MC4k1{hinNr|+ zKABV!IROK^{;N~k@2*zER=;5SJ5$7U7x&GP>`t))n_(rOy`CKj9Nk`Iv(Lh$IwrQb zm_r~vW=D%c?2ibBK@L*9*!hNoEjrPg#{4<3pDZt%V%R4OpR@5RE-^~%bGrfRe$Po6~&U>N`42%~j3(oPoVe#QpT zRO~pPRHcS~2-*+%`IFMva{~Rx?5tIuHP}$0ik@MQQS^3PNVyG6m!=yF`BUO>adCgu zeibM82~tsMRESrXRVGvrHMFDV+?RZ6DFl|VYL*}%S{B}eK!Lurv?Mz{3*(v?t3Fc#(~ zdjgPyKOf4?$>@GX`&U}g3-Jz{HzDra0TdU=YDi`G1tf7jeJ`JJk@Wb)*m` zZTllmPTc-C@SydCA5F0LXRe1H8uV5x#Z2O;=1Hd;%Ys5^_&#hLmL`g?7f{7 zL_qb|a)w;r-6ys-c|1mTiXREKj!v!DzQFla$y>&$P4`uR34|t}snKiUKzbl}QtOIm znQ>&V(%ly-G5(#mx11Ro8F3=yO&;Ebyrf0B`)HtriTzY@X(FE(xypP+ z-_Z&;y3p@vU;&r|LKSJIz~_YVqMMtxmV&vtqT1RAAb>Xw?d}T2F)NXZs2BXmgPpLm z!ch+KE6zqm$N+fl*nFd_qXQxslRjTy7N#lcx8Y%&;*t_AtX>;p5y%5cOhDE56d0=y zhw?Fjg;lZ$RrGekrUzJv%3V8i!%{fI7Zh8Zu)l;eAT-TyFKGZJpcY{A`Qp9SGfJ#% zsVlZ+?w|fB`xh^r4(mBcxePNjOO!=RRL%R8jLb(pT8-67^lV9p8K0=Dp}tTuFN`ys z!oq&0XriSR7lz$FX~;^hJq6Ki(ViG9FB_~O(0r&_##2JFzgyV(ktIq1H-X5t-Go4@ z8|Rm!|K(#)U6|L(?8g#G(&9KK;{W{_@BC`<2yrI#= zzV+XvFxQHQFk^S?0Ny>XGyUslMO;vM=zh+YXwvR&v)Fu;FN-}fF>&M?hm{7pz_kBL z3T4&w!z)mVWP^QYuloJfz2~dN*i@iSYHddeGjK*sc+dU}*HdF8o0=;Ae_nte_}26j zb90dZ9~E7I{aUsYTw8jMFSc&T^Ona@oFs0OAV^n-!l!|ZpS-&ZUo^p9r^CMJ%KbI~ zK+d9pkVl|YPW3Nh$id#euF0t+1gop7%Woi|2sV*i4tsZrx*dW&ioLQrCP$3MTCas| z#RIl-6`_FSXYsV$_y09BpB)BIe6)5Ncvdu?2fkJSv%WkQPdM>`IXO9v5>Q=btmK7JFP`OkbV~TgDZz<_fQLN@c&oN`zQjU57s_ELjPtewzn` zC;*YKgIy-HZ+%oT$(eNs2Q4H%#R>yFb!))J3$a}MfXn3GUpOZp|9ey|t=ij@$c;)hQ#{m<_)v=AsqegDU_89 z7lZG;yswyLMxk}yJO+Ou?9m}!`=e15oh+k z(qxsduC;91aPvoN0v}4Mg|`CZfdS$w^X~l&bO~KI9UWoMPd}nOPi#5 z0<;~h?W}r%t=3V}vOQzE*VZh*^bK|;;5a)7NhKvdVG*q_t699Af_*QEjjO)5Dk&k~ z@krkLZxqls_a-(h>%`VR5T@byTPBpjgp1Y?$wUiHpOf9lAb_%uA${iAqT3^z=TEZF zy>d3}B4Fxnb-KJQ1- zYmo-kZ0`%wcnr}x1qTQ0)MrNa>04Je)wHFr$6J4;mu;1#(}?nZgw6L2Y!yP(R)O*0 z|9e8h+sJx+QC|6J#%#?K+p(NLz{OKkuS`#G?))Bf8s zZJfwhOMe{ptIR5y;g=;Clw+H7#jT4xlOeJ|(3K{Nyr3@=HRjS=tjqP=JGT2FW1Mwu z3aTUG^Wu)C2!nD*@Rm>?Y(I3nx$eg}mj@NQw5)sqprgy9h(sqp!ba8iLixHw0o*Q! zO-&szjy~Q&$O-wsfI?$IrGZVymxaUL?_t=~6&fd+kq}u^FPjH7p2-bwdJNbfyC3Y( zpI>E12~}5BjsBnwM+lT1>RYybicBm@DEQGWWS;G@-_YNn@z{gZorfH__H~Bq;54G| zzbq$5_&43kO2erwM>6Wa`?S@i6Q)%>mKA2YsTmajSm9L(5$yx{a)UJ)ET<~_eB?b8`@ZE*Oi{R5i}oB`Es`@>4Z zScb{OjM&p4NKRCxQBI6VbzWX)Lp?$R<`i);`_sb{aJTs8fr4_}1>#Q$X+J)Ui;Hs` zTK;lzoxJxE#i7|n+^NLI!+(PgcrEv5t3yFo%+1-(H1Ub$xWh6P2Chs@!IQan&dq&b z+yqFBY{Lz}*?um-9{Ha1I9WXxl!k&L5C3GvUe7Q8bU9dnwcgM3eCK&=y!CxM3^N!Q z^n~>b)=I{q(Ky|e&%X-&`x}#~`B|{}a|`Sr`h(({&pi$0eeFl>Cej(%P%+y^3#9{5J&o!MVKkTaGxm*L4DIYkyii z7_(X0@H~(vrdGgeoQWw7H#9a1YsOC@Qw9tjaPMM_QIf#eQ^0=s`M=;#`P1gpY8)T0 z`)Ut#@hQ+CurTnb8+7E5N<^bT|I4r~#Py&9#<;nuYtLTeNmme|<4TiIr?EvzEX+1O zG7FMTss9OKpGaf=ig=)!=5wVFlqfI~mXF>uPobL&v5Jb1_eQesNl8ft>?@-ttb71H z5xyna0NX44^s=8FByQCE^|hZxH@VE+0rLnTaPQGlz^^mh?RLsX4@9G3yZ*_Xj8%1s zBbrlTke-5b=+EZkcZZ1G?NKWMV@|9AMh`k?gAFM_C8;S8e0@t9fqxVuR9#j!_#)&Z zscte6p@{WxeRLj4AvIHgjOp*0D_;9H!pfN{S{T{$@rBP(Ah#M84uM7v-zZyc&f9%(e*$iys(2bqg`&2t$U3Noh1 zc+E_$hgQR=`6Dn%EUCH}A%@DYGveBDRt#y=scD+~E^MS)NlAikf8`au5(pd;xt|dG zYrn_A#TC-k)zTV#`KJyGS$HYbw>ve8w$|2$74U)^S)HjkJU&j~eXI%<3?+CtGNK|> zrg4vqwr#KhzBTelB~Zet!tU?6Gj6u9^c%3vPb`xbq&_AfpK||$=*yxX@pl0}z1eyO z22V&O6`jxs0{a?cI8$ty*jX9Gc}8gSYsHo01Qw+t-yg1C9WSMrKie3@DOZC>Cj3*TYI0gQTlJ-0JRC0;XXS(Z8lSZ2hcJwYl8wFF{CKc<`pnWs{#0T?sC-zMwn*%dKxA@nr^kJ0ZCsn#2^n=tD*D6sELU-E3cq{CM@T1 z2JQ|bMe{0>!fienV!+N1$D?h^#btdj;ozWj`e^8b)QLQP_XvIp#Co?brLi>C^ISe( zLsaHZ-f>NMEIo!YM*i;&x>owj2)hG^E)K%)XX|bUJ9)|Ft2E_GSKL;};l;sWAc)L9 z&EX15UInGpx)|sE5NT;?AcNJLsOssFWn^G|wS$O88_@?2p&%w%TZ2^avVIlZzfFuDGng%P zDi4<#i^*#L=-{SO#_Z)o3;+CxUYYh2k*59eh;$!iZu6El@cmIUUCEgKF@!}C-Pp8> zz0%Pc@=D$j`MVKi!S1rMsY&)Q@+}n$u+hC2oZjsi+WZdqH)?jEM*za64qjF^*Xq%H zNUJz9GNS+GO{sL_ATBak^=!@6ZiMo+7;{y;dW*Msl$_(& z=j9+MCyfnRY|0zkVr_9K#@&x}^|_)u-))Ccs3co=W~tkiE4oq(CsqjfC0n>sN2I44 zNDtaOI`S;hu${_>Kqtq>$F2Un5i_v@-ig;^Il)=NIU5KxKa!!zMC>%~r(-*;CDqkr z-tAjj2|fuhqU$4#eCN`WUw)8a2^8?xxtZ16KtqEtOO>^(EbCKgX>gZ@-HnCWiw%U# z7v$nIlNVC8`76ZJVanax=VIpWj@9{E-AlB5I=Ze-GdU$C4+!_bN9HO>?f3lgdjlvD zs$1m*_WmB_G%P=0Id4a;W_WBD;5jv>2` zyL%Xc0PgIJ=i%XjQkB=zLXPxA0}mL`RZP(^i6kKk8%Z$J>X$6PvpDcz2NgN1uH;%; zQ{=Q?AEgZym1e24p~3sG;e9c?c6nC`)Am4L5fyN?sCj8ZhPsya;ymAs?$=QA`A`&*! z^en1*v_N10D+wkfmtQ4gXy@!~m@Bmun*c-cD~woOB~+mhKXDb#2HdI7=%ZC8qDK5v z+t0;ReF`@s;-ZtnLee@Z#7j%hiP1^fHV6~`L5iLdkc|Ka32Bf3igRZ);Ulpg+XL$yGKcz!n=yudPocTWV2BG7=x>NF1hENRHU;o)rF`2_36$ zerAS)Vn#}11=7+NGw+mGeyBk<$)7%bs;{sA!z8}PTv9L1udkf}j@DnWu_}lsEuH3t zu?pA?*WbT_NXQ(7mTwQ0Rzt*U?hz^b?Wn1lYstBg9H> zxb4SO; z8im~rz;xi?<@7`ma|2<9(ln^;c_>U5lQBz?1*UU>8;0VdSj-~Wkz69m`1LYb+! z&#}@Fg#_3DFaW#V|9#~9xfK3bPh0yvjYt#FDXmc*QvLp$+OIu5ahjcb#y(k-qqqAU zhl~{O)@+L+7iBb@glkq(>LUg!4&6)Jmco3+KTO4@6}SH zQ4%zWMgR*X=!}@Trb=R?W|mPjK2+*e-oPbYyF#U2)n@R4|eAXuqmjtO(lhgk2YSkx10&M?+4*o)Iv?eg%B`|RD zsuwHi!K+Nx^}R zt?x}cxVDSVHJ0O(#`ufyVgI+o>Y3Nu-CP{FmE-?m)e#m}96^0uz>rXja10?(cc!f+ z(`7dVN6+keKeJnMOSjF9U&dOpYb(-zj+DcmtCtoKuMXI znfY~b^UJ%P7*CiMAMAO>#d2UIH%|@{HZMi#EExyk71$RUi!4oMgP+-dBEPxYFk8UeL(U!qU%F;b{CL5Q&Ss8iZddMn8{3ou1PMB$HHD4 zdyAUq5luH4KFdIRj2>DxR5)1n(l^h=XG2)%trHWD?2zmW0rSe`$eEcJ*on$`B7Vt? zVETZ|60&iC9ZV?gPy!NFjkQoPGeZiT=alzqNZSiY7-~8?9Bo^zL!m^kp5(yDxJ?xW zg+hDGJ99))g?^90yy@ZHde_?;JmkYWf3yd9fsqPa)G~7?GLDk~TPt6@=-)o;S?aS? zXu53#yN{L@BXEyIiUy$LP@Vk*#OuMlNBGLQ3da1o{Bwf7I!=Ava=JY--Xh`Ne>EeAfzErs$jt3mC^g;@c4LW-Fd!O0D0cAg)8eBobQ9^%_4#ptmsU9x-QxnSt zMp7&-EHbhM{mOrqy~Hx61HK|f4V-EB1I)wk-J?shn2w-K9!9~?!3W_H5nfAvb%vE7 zo~SM3{3*xtV`8NhEvv3pGinar+_W-o_oe}+3Y^hwk=!c-_q_y|yZbaF2(R7$ls!E? zKi1aLqw;gS=w}qNzG5SL==Scn=*6TG_qHbwmk{#Blm7k{nA~3%^ZF+i|Lz0BRbBwP zA*8j{PkN9Squ0OiC%?|q)&zHX0{4a{1C~}J)(ynKW3-3l6cj4gXE1@+A2X z1+-nl%ZvZ=cqOeVT}3Fq3wZu=0*?HQI|SdWvn8hTt7OMtdqBZ!p@72o_{y9pd2Pl5=sX zrnjoBs#*iigz)5)z}Sn(M+6=-g7K(*Ve2dRMkSx*11%I&Vsjz(cfa zQf8y(wJgwrlePv-)a3_KU3yiuFD`04nUskNS(K$b10tQdYxlczO?)UyuR|n>qP;A^%$k;ZYqY?0{>YJMO zehCbint3K*k^l=^o#>Bj8ldn#m~)=f7Y;-7Oa2PEI6sK}GeUxcPKXsofD=xDgI?Q2 z`flYbu)yJeefwl+NUWmbPrbfHaOTSh4KT-k{>*UHljYmca1Q8p%gS5IkHhPJAfczn zy0v`)Kk0R&1}m)AV;c|E-ij0KCj10sc#ni^Te|c#HOtzR|Mcl4N=Nd_Rpi-iM@h*6 zFSsM?Y5S2OcZI@YtLj!fzMrKg0B*Gn8;ZO2swKpzsO_g8hY0;-Ak1n81{9#aVti&M z95`ula7_db;){nidzHAeyYKIArxF9xApHeWzisX86sDA2R8-=CEpS94?iBa*69JTn zor6OP;C{tvd<>~Pf(}z!VA=($K~2NP;2(Vt5M}>fW4GL0E==-9Ax;uttw)Fn3u40t z6`4#D0HIV%P`UK}9=JYRY~u%YZcZ#`Pun52>V%g31miC@rHiBkqmBH+7^%cU`)Ssm z%+O;JZeDht?Gf6?Yq`KwZ5n5A1Cl;5`B_SVAj|dYOX8%>(BNQ=&#|*~pK(9ehQ@}& zDH{bPurAyl!Y0PmUG&pUtMN-zvnTnzEwEW@e&;gH2lYt3+J;XsW-1JxtxmC@EE$mKoTtJSt*1{79~a zo1wfn&1!AX`3Acr`px%UX3DCn6q>2EmSc?5d`$-zw$a`q|K_ zB8Za|+xr;8a{!~Di(TM#q<0*vS1qsu^(cG693;5P18nsMFJZNaF9eY!te_6^5~rw*8CtZofnmj zuH_^ln_pmZHr;N<{{Cchjy<0$DtHPjdU|BLP!s(7n_y+Zg7Af+=bDvYp07%rp%exa zZ4yrR)4=0wGi6B_&SYW;uYETB-_eDQH;$a44N1d6BC|X)C~C#pKf2aytvr5x3$$YA;qj1=uWWaLQn>IZfHPCxfZ!8q?inG zHZSR2#Mf@^LpykJLc_zYD>K!$6eS_)k>L4QM8~TEyaAinFIVm2Qr-Cw=)-=-0`_Om zWF5-gP^U2-I)ISLUjbdGhrj!K{@Hw-Y+U5T0-Sg?ky`&pm{xW{JEEJjAr#?s$HYEej}{jtyZo*E8*Dyx$9 zYjwYjT=^O@*I)mJl_H(|`^w}^hcZ+CcqH_nrV(N+fpLJb>FMrq%9G74BP}C1QJe`L zMY!6V0OJrS?_(t;C6Gj?{IJna?OFcZj(eB?92H4bSVBRT9&X(e7az||%_L5RWGS`~ zf_1{^ywX4i31_e9RfrixUCNh%&zF-x+u^ zd3{@&|Ggzg$}s$${7dT-umbca|I9^hAviK$vadY3y4CCCaa1NTycc2dW@Stx42$}^ z2#cm4c+h>hKzbBiQx^KnMH9)m;DjfA;`Ot9C>Y-bz(LYan{cxl2R(6n`v%;qbS3bF z8;BDyTjv@S*0aTND=I6^f=sW-$HPH#2iSw}8#qV^@{I=vuyT(wM^f`LHUX}Y5%aS| zcNCxk7$#~0>8mL--V>o3S0(3bzmxt*BoP|SU>ntFU@S3H+z!uE)(lYn_PoMg0 zPDx4Y#3Nl^Y-qe_Jx0t7Pyh)YhX%VgfgYYe5C|WZR~oWL;sN9~!Yn=boamG-0|5S= zTHGno2AG0E6#eFJXf6-2=+cKC#_8CWD5HXM2M33YVxEPW%AihS>y+2|-VYO$2-p=0 zIpBd--VZXxcC?-K3qeu|yXEGhn91vvB=wta&@Xv=jz{ z=!+SS_5@gM0<5=-2glwaZhz+R>Xs1G@(Lq^`jjoz_{!GIOk-*T2k0Qc)Gz>IGDsl6 z%l*R*4UPhq=1<_Pw-yEi^l>qIE`4T zsJfCCtPqTV$?+tCNj=@MP>aaqdM4}Tynq+eQ`R!Pe!?Jt_3XvXPBuK1ftN#p1Z%=c zrsacN6FBpS)-6q%Tzg_&19H}*s~J6`>(ohx{Tm|S$>FM)@)(TD_Mm9NR+f^Wh z=-}q`@X636Q)gShps%M5zvtgUqnY)P>=-HvNF(z*7U#T8`oR!wl)+kMTwL(Mn)6H{ zJkC8*MmBOELcxDTNoSc}#P_YIu6OB!qR-2pz8?k{pS}}nOsQIFIS}*Tb|50vHFlKl zOLb}qa$>ViUpdAYG8C{x+2B*h#7|8@|C|J?^vgjVqY^2=Gz-e-EE#Iv-iPJ3bIte<0Z(zUSum0+H#saKLjB)%S2X8E|J|w|5 zG>UnIUlVd4icf)5Xno@PjO>NV=<7zqRrgjVXf~$j;l6?*YWqXG(~rx z1iqa~d=hpyqv^ZAt7Yko{Z7L_mS1iA3vjy5prbjW)vXH>AY=6pm=a$e0|ndqsj^B# zTMaHsxPYA)WMXD!uF>ZVUy2&pnxl8`FZg@HMu2IXgLp}TwYoL3`eL?U5DJ0s(cIV? z8VYn-*B7S1U4u[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 literal 0 HcmV?d00001 diff --git a/forge-gui/src/main/java/forge/gui/card/CardDetailUtil.java b/forge-gui/src/main/java/forge/gui/card/CardDetailUtil.java index e20ff03bd72..68bb4f7a236 100644 --- a/forge-gui/src/main/java/forge/gui/card/CardDetailUtil.java +++ b/forge-gui/src/main/java/forge/gui/card/CardDetailUtil.java @@ -217,19 +217,22 @@ public class CardDetailUtil { } if (card.isAttraction()) { - ptText.append(Localizer.getInstance().getMessage("lblLights")).append(": ("); - Set lights = card.getAttractionLights(); - //TODO: It'd be really nice if the actual lights were drawn as symbols here. Need to look into that... - if (lights == null || lights.isEmpty()) - ptText.append(Localizer.getInstance().getMessage("lblNone")); - else - ptText.append(StringUtils.join(lights, ", ")); - ptText.append(")"); + ptText.append(Localizer.getInstance().getMessage("lblLights")).append(": "); + ptText.append(formatAttractionLights(card.getAttractionLights())); } return ptText.toString(); } + public static String formatAttractionLights(Set lights) { + return (lights.contains(1) ? "{AL1ON} " : "{AL1OFF} ") + + (lights.contains(2) ? "{AL2ON} " : "{AL2OFF} ") + + (lights.contains(3) ? "{AL3ON} " : "{AL3OFF} ") + + (lights.contains(4) ? "{AL4ON} " : "{AL4OFF} ") + + (lights.contains(5) ? "{AL5ON} " : "{AL5OFF} ") + + (lights.contains(6) ? "{AL6ON}" : "{AL6OFF}"); + } + public static String formatCardId(final CardStateView card) { final String id = card.getDisplayId(); return id.isEmpty() ? id : "[" + id + "]"; diff --git a/forge-gui/src/main/java/forge/itemmanager/ColumnDef.java b/forge-gui/src/main/java/forge/itemmanager/ColumnDef.java index 53b0f8ecb0a..e36dce45757 100644 --- a/forge-gui/src/main/java/forge/itemmanager/ColumnDef.java +++ b/forge-gui/src/main/java/forge/itemmanager/ColumnDef.java @@ -198,6 +198,10 @@ public enum ColumnDef { return toCMC(from.getKey()); } }), + ATTRACTION_LIGHTS("lblLights", "lblLights", 94, true, SortState.NONE, + from -> toAttractionLightSort(from.getKey()), + from -> toAttractionLights(from.getKey()) + ), /** * The rarity column. */ @@ -615,10 +619,11 @@ public enum ColumnDef { private static Integer toPower(final InventoryItem i) { int result = Integer.MAX_VALUE; if (i instanceof PaperCard) { - result = ((IPaperCard) i).getRules().getIntPower(); + ICardFace face = ((IPaperCard) i).getMainFace(); + result = face.getIntPower(); if (result == Integer.MAX_VALUE) { - if (((IPaperCard) i).getRules().getType().isPlaneswalker()) { - String loy = ((IPaperCard) i).getRules().getInitialLoyalty(); + if (face.getType().isPlaneswalker()) { + String loy = face.getInitialLoyalty(); result = StringUtils.isNumeric(loy) ? Integer.parseInt(loy) : 0; } } @@ -627,7 +632,7 @@ public enum ColumnDef { } private static Integer toToughness(final InventoryItem i) { - return i instanceof PaperCard ? ((IPaperCard) i).getRules().getIntToughness() : Integer.MAX_VALUE; + return i instanceof PaperCard ? ((IPaperCard) i).getMainFace().getIntToughness() : Integer.MAX_VALUE; } private static Integer toCMC(final InventoryItem i) { @@ -703,7 +708,7 @@ public enum ColumnDef { * @return Part of a sortable numeric string. */ private static String toArtifactsWithColorlessCostsLast(final InventoryItem i) { - forge.card.mana.ManaCost manaCost = ((IPaperCard) i).getRules().getManaCost(); + ManaCost manaCost = ((IPaperCard) i).getRules().getManaCost(); return !(((IPaperCard) i).getRules().getType().isArtifact() && (toColor(i).isColorless() || //If it isn't colorless, see if it can be paid with only white, only blue, only black. @@ -766,7 +771,7 @@ public enum ColumnDef { * @return Part of a sortable numeric string. */ private static String toGoldFirst(final InventoryItem i) { - forge.card.mana.ManaCost manaCost = ((IPaperCard) i).getRules().getManaCost(); + ManaCost manaCost = ((IPaperCard) i).getRules().getManaCost(); return !(manaCost.canBePaidWithAvailable(MagicColor.WHITE) | manaCost.canBePaidWithAvailable(MagicColor.BLUE) | manaCost.canBePaidWithAvailable(MagicColor.BLACK) | manaCost.canBePaidWithAvailable(MagicColor.RED) | @@ -784,9 +789,8 @@ public enum ColumnDef { //Split card sorting is probably as complex as sorting gets. //This method serves as an entry point only, separating the two card parts for convenience. private static String toSplitCardSort(final InventoryItem i) { - CardRules rules = ((IPaperCard) i).getRules(); - forge.card.ICardFace mainPart = rules.getMainPart(); - forge.card.ICardFace otherPart = rules.getOtherPart(); + ICardFace mainPart = ((IPaperCard) i).getMainFace(); + ICardFace otherPart = ((IPaperCard) i).getOtherFace(); return toSplitSort(mainPart, otherPart); } @@ -924,4 +928,20 @@ public enum ColumnDef { ) ); } + + private static Set toAttractionLights(final InventoryItem i) { + return i instanceof PaperCard ? ((PaperCard) i).getMainFace().getAttractionLights() : null; + } + + private static String toAttractionLightSort(final InventoryItem i) { + if(!(i instanceof PaperCard)) + return ""; + Set lights = ((PaperCard) i).getRules().getAttractionLights(); + return (lights.contains(1) ? "0" : "1") + + (lights.contains(2) ? "0" : "1") + + (lights.contains(3) ? "0" : "1") + + (lights.contains(4) ? "0" : "1") + + (lights.contains(5) ? "0" : "1") + + (lights.contains(6) ? "0" : "1"); + } } diff --git a/forge-gui/src/main/java/forge/itemmanager/SColumnUtil.java b/forge-gui/src/main/java/forge/itemmanager/SColumnUtil.java index 7a8bf4efbc4..ff0328f4e28 100644 --- a/forge-gui/src/main/java/forge/itemmanager/SColumnUtil.java +++ b/forge-gui/src/main/java/forge/itemmanager/SColumnUtil.java @@ -148,6 +148,7 @@ public final class SColumnUtil { List colDefs = new ArrayList<>(); colDefs.add(ColumnDef.FAVORITE); colDefs.add(ColumnDef.NAME); + colDefs.add(ColumnDef.ATTRACTION_LIGHTS); colDefs.add(ColumnDef.RARITY); colDefs.add(ColumnDef.SET); colDefs.add(ColumnDef.COLLECTOR_ORDER); diff --git a/forge-gui/src/main/java/forge/localinstance/properties/ForgeConstants.java b/forge-gui/src/main/java/forge/localinstance/properties/ForgeConstants.java index c97f562a861..9016e25f5f4 100644 --- a/forge-gui/src/main/java/forge/localinstance/properties/ForgeConstants.java +++ b/forge-gui/src/main/java/forge/localinstance/properties/ForgeConstants.java @@ -113,30 +113,32 @@ public final class ForgeConstants { public static final String COMMON_FONTS_DIR = RES_DIR + "fonts" + PATH_SEPARATOR; public static final String DEFAULT_SKINS_DIR = BASE_SKINS_DIR + "default" + PATH_SEPARATOR; //don't associate these skin files with a directory since skin directory will be determined later - public static final String SPRITE_ICONS_FILE = "sprite_icons.png"; - public static final String SPRITE_FOILS_FILE = "sprite_foils.png"; - public static final String SPRITE_OLD_FOILS_FILE = "sprite_old_foils.png"; - public static final String SPRITE_TROPHIES_FILE = "sprite_trophies.png"; - public static final String SPRITE_ABILITY_FILE = "sprite_ability.png"; - public static final String SPRITE_BORDER_FILE = "sprite_border.png"; - public static final String SPRITE_ADV_BUTTONS_FILE = "sprite_adv_buttons.png"; - public static final String SPRITE_BUTTONS_FILE = "sprite_buttons.png"; - public static final String SPRITE_DECKBOX_FILE = "sprite_deckbox.png"; - public static final String SPRITE_START_FILE = "sprite_start.png"; - public static final String SPRITE_MANAICONS_FILE = "sprite_manaicons.png"; - public static final String SPRITE_PHYREXIAN_FILE = "sprite_phyrexian.png"; - public static final String SPRITE_COLORLESS_HYBRID_FILE = "sprite_hybrid_colorless.png"; - public static final String SPRITE_CURSOR_FILE = "sprite_cursor.png"; - public static final String SPRITE_AVATARS_FILE = "sprite_avatars.png"; - public static final String SPRITE_CRACKS_FILE = "sprite_cracks.png"; - public static final String SPRITE_SLEEVES_FILE = "sprite_sleeves.png"; - public static final String SPRITE_SLEEVES2_FILE = "sprite_sleeves2.png"; - public static final String SPRITE_FAVICONS_FILE = "sprite_favicons.png"; - public static final String SPRITE_PLANAR_CONQUEST_FILE = "sprite_planar_conquest.png"; - public static final String SPRITE_ADVENTURE_FILE = "sprite_adventure.png"; - public static final String SPRITE_SETLOGO_FILE = "sprite_setlogo.png"; - public static final String SPRITE_WATERMARK_FILE = "sprite_watermark.png"; - public static final String SPRITE_DRAFTRANKS_FILE = "sprite_draftranks.png"; + public static final String SPRITE_ICONS_FILE = "sprite_icons.png"; + public static final String SPRITE_FOILS_FILE = "sprite_foils.png"; + public static final String SPRITE_OLD_FOILS_FILE = "sprite_old_foils.png"; + public static final String SPRITE_TROPHIES_FILE = "sprite_trophies.png"; + public static final String SPRITE_ABILITY_FILE = "sprite_ability.png"; + public static final String SPRITE_BORDER_FILE = "sprite_border.png"; + public static final String SPRITE_ADV_BUTTONS_FILE = "sprite_adv_buttons.png"; + public static final String SPRITE_BUTTONS_FILE = "sprite_buttons.png"; + public static final String SPRITE_DECKBOX_FILE = "sprite_deckbox.png"; + public static final String SPRITE_START_FILE = "sprite_start.png"; + public static final String SPRITE_MANAICONS_FILE = "sprite_manaicons.png"; + public static final String SPRITE_PHYREXIAN_FILE = "sprite_phyrexian.png"; + public static final String SPRITE_COLORLESS_HYBRID_FILE = "sprite_hybrid_colorless.png"; + public static final String SPRITE_ATTRACTION_LIGHTS_FILE = "sprite_attraction_lights.png"; + public static final String SPRITE_CURSOR_FILE = "sprite_cursor.png"; + public static final String SPRITE_AVATARS_FILE = "sprite_avatars.png"; + public static final String SPRITE_CRACKS_FILE = "sprite_cracks.png"; + public static final String SPRITE_SLEEVES_FILE = "sprite_sleeves.png"; + public static final String SPRITE_SLEEVES2_FILE = "sprite_sleeves2.png"; + public static final String SPRITE_FAVICONS_FILE = "sprite_favicons.png"; + public static final String SPRITE_PLANAR_CONQUEST_FILE = "sprite_planar_conquest.png"; + public static final String SPRITE_ADVENTURE_FILE = "sprite_adventure.png"; + public static final String SPRITE_SETLOGO_FILE = "sprite_setlogo.png"; + public static final String SPRITE_WATERMARK_FILE = "sprite_watermark.png"; + public static final String SPRITE_DRAFTRANKS_FILE = "sprite_draftranks.png"; + public static final String FONT_FILE = "font1.ttf"; public static final String SPLASH_BG_FILE = "bg_splash.png"; public static final String MATCH_BG_FILE = "bg_match.jpg"; diff --git a/forge-gui/src/main/java/forge/localinstance/skin/FSkinProp.java b/forge-gui/src/main/java/forge/localinstance/skin/FSkinProp.java index 1d6ad60e62e..f07f1d21d44 100644 --- a/forge-gui/src/main/java/forge/localinstance/skin/FSkinProp.java +++ b/forge-gui/src/main/java/forge/localinstance/skin/FSkinProp.java @@ -177,6 +177,20 @@ public enum FSkinProp { IMG_CMC_MID_HIGH (new int[] {2, 166, 160, 160}, PropType.MANAICONS), IMG_CMC_HIGH (new int[] {2, 248, 160, 160}, PropType.MANAICONS), + //attraction lights + IMG_ATTR_1_ON (new int[] {0, 0, 200, 200}, PropType.ATTRACTION_LIGHTS), + IMG_ATTR_2_ON (new int[] {210, 0, 200, 200}, PropType.ATTRACTION_LIGHTS), + IMG_ATTR_3_ON (new int[] {420, 0, 200, 200}, PropType.ATTRACTION_LIGHTS), + IMG_ATTR_4_ON (new int[] {630, 0, 200, 200}, PropType.ATTRACTION_LIGHTS), + IMG_ATTR_5_ON (new int[] {840, 0, 200, 200}, PropType.ATTRACTION_LIGHTS), + IMG_ATTR_6_ON (new int[] {1050, 0, 200, 200}, PropType.ATTRACTION_LIGHTS), + IMG_ATTR_1_OFF (new int[] {0, 210, 200, 200}, PropType.ATTRACTION_LIGHTS), + IMG_ATTR_2_OFF (new int[] {210, 210, 200, 200}, PropType.ATTRACTION_LIGHTS), + IMG_ATTR_3_OFF (new int[] {420, 210, 200, 200}, PropType.ATTRACTION_LIGHTS), + IMG_ATTR_4_OFF (new int[] {630, 210, 200, 200}, PropType.ATTRACTION_LIGHTS), + IMG_ATTR_5_OFF (new int[] {840, 210, 200, 200}, PropType.ATTRACTION_LIGHTS), + IMG_ATTR_6_OFF (new int[] {1050, 210, 200, 200}, PropType.ATTRACTION_LIGHTS), + //PAWPRINT IMG_PAWPRINT (new int[] {2, 902, 80, 80}, PropType.MANAICONS), @@ -660,6 +674,20 @@ public enum FSkinProp { MANA_IMG.put("Q", FSkinProp.IMG_UNTAP); MANA_IMG.put("T", FSkinProp.IMG_TAP); MANA_IMG.put("P", FSkinProp.IMG_PAWPRINT); + + //Attraction lights. Not really mana icons but they're loaded into the card symbols in all the same places. + MANA_IMG.put("AL1ON", FSkinProp.IMG_ATTR_1_ON); + MANA_IMG.put("AL2ON", FSkinProp.IMG_ATTR_2_ON); + MANA_IMG.put("AL3ON", FSkinProp.IMG_ATTR_3_ON); + MANA_IMG.put("AL4ON", FSkinProp.IMG_ATTR_4_ON); + MANA_IMG.put("AL5ON", FSkinProp.IMG_ATTR_5_ON); + MANA_IMG.put("AL6ON", FSkinProp.IMG_ATTR_6_ON); + MANA_IMG.put("AL1OFF", FSkinProp.IMG_ATTR_1_OFF); + MANA_IMG.put("AL2OFF", FSkinProp.IMG_ATTR_2_OFF); + MANA_IMG.put("AL3OFF", FSkinProp.IMG_ATTR_3_OFF); + MANA_IMG.put("AL4OFF", FSkinProp.IMG_ATTR_4_OFF); + MANA_IMG.put("AL5OFF", FSkinProp.IMG_ATTR_5_OFF); + MANA_IMG.put("AL6OFF", FSkinProp.IMG_ATTR_6_OFF); } public enum PropType { @@ -678,6 +706,7 @@ public enum FSkinProp { MANAICONS(ForgeConstants.SPRITE_MANAICONS_FILE), PHYREXIAN(ForgeConstants.SPRITE_PHYREXIAN_FILE), COLORLESS_HYBRID(ForgeConstants.SPRITE_COLORLESS_HYBRID_FILE), + ATTRACTION_LIGHTS(ForgeConstants.SPRITE_ATTRACTION_LIGHTS_FILE), PLANAR_CONQUEST(ForgeConstants.SPRITE_PLANAR_CONQUEST_FILE), ADVENTURE(ForgeConstants.SPRITE_ADVENTURE_FILE), DECKBOX(ForgeConstants.SPRITE_DECKBOX_FILE),