From 064ca40e5d60a6bd7113fe41fdd25a82219405a5 Mon Sep 17 00:00:00 2001 From: Mohammad-Ali Minaie Date: Sat, 8 Jul 2017 21:12:34 -0400 Subject: [PATCH] model rendering X2 but texture works --- .../nmd/primal/forgecraft/init/ModItems.java | 2 +- .../items/armor/CustomLeggings.java | 39 +++ .../forgecraft/models/AwesomeSauceModel.java | 71 ----- .../forgecraft/models/ModelPlateHelmet.java | 268 ++++++++++++++++++ .../primal/forgecraft/proxy/ClientProxy.java | 15 + .../{testleggings.json => testleggings1.json} | 0 .../assets/forgecraft/textures/Thumbs.db | Bin 0 -> 4096 bytes .../assets/forgecraft/textures/armor/hide.png | Bin 0 -> 3129 bytes .../forgecraft/textures/items/Thumbs.db | Bin 0 -> 3072 bytes kfc/src/main/resources/test.java | 251 ++++++++++++++++ .../ModelPlateHelmet.java => test.java | 16 +- 11 files changed, 582 insertions(+), 80 deletions(-) delete mode 100644 kfc/src/main/java/nmd/primal/forgecraft/models/AwesomeSauceModel.java create mode 100644 kfc/src/main/java/nmd/primal/forgecraft/models/ModelPlateHelmet.java rename kfc/src/main/resources/assets/forgecraft/models/item/{testleggings.json => testleggings1.json} (100%) create mode 100644 kfc/src/main/resources/assets/forgecraft/textures/Thumbs.db create mode 100644 kfc/src/main/resources/assets/forgecraft/textures/armor/hide.png create mode 100644 kfc/src/main/resources/assets/forgecraft/textures/items/Thumbs.db create mode 100644 kfc/src/main/resources/test.java rename kfc/src/main/resources/assets/forgecraft/ModelPlateHelmet.java => test.java (97%) diff --git a/kfc/src/main/java/nmd/primal/forgecraft/init/ModItems.java b/kfc/src/main/java/nmd/primal/forgecraft/init/ModItems.java index aa4efe0d..95863064 100644 --- a/kfc/src/main/java/nmd/primal/forgecraft/init/ModItems.java +++ b/kfc/src/main/java/nmd/primal/forgecraft/init/ModItems.java @@ -260,7 +260,7 @@ public class ModItems { /********** ARMOR **********/ - testleggings=new CustomLeggings(PrimalMaterials.ARMOR_ADAMANT, 3, EntityEquipmentSlot.CHEST, "testleggings"); + testleggings=new CustomLeggings(PrimalMaterials.ARMOR_HIDE, 3, EntityEquipmentSlot.HEAD, "testleggings"); //registerItem(312, "diamond_leggings", (new ItemArmor(ItemArmor.ArmorMaterial.DIAMOND, 3, EntityEquipmentSlot.LEGS)).setUnlocalizedName("leggingsDiamond")); } diff --git a/kfc/src/main/java/nmd/primal/forgecraft/items/armor/CustomLeggings.java b/kfc/src/main/java/nmd/primal/forgecraft/items/armor/CustomLeggings.java index 053032b1..10e212e8 100644 --- a/kfc/src/main/java/nmd/primal/forgecraft/items/armor/CustomLeggings.java +++ b/kfc/src/main/java/nmd/primal/forgecraft/items/armor/CustomLeggings.java @@ -1,13 +1,20 @@ package nmd.primal.forgecraft.items.armor; import net.minecraft.client.model.ModelBiped; +import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.EntityEquipmentSlot; +import net.minecraft.item.EnumAction; import net.minecraft.item.ItemArmor; import net.minecraft.item.ItemStack; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; import nmd.primal.forgecraft.ModInfo; +import nmd.primal.forgecraft.models.ModelPlateHelmet; +import nmd.primal.forgecraft.proxy.ClientProxy; + +import javax.annotation.Nullable; import static nmd.primal.forgecraft.ForgeCraft.proxy; @@ -23,6 +30,7 @@ public class CustomLeggings extends ItemArmor{ this.setUnlocalizedName(name); this.setCreativeTab(ModInfo.TAB_FORGECRAFT); + } public String getName() { @@ -34,6 +42,37 @@ public class CustomLeggings extends ItemArmor{ return false; } + @Nullable + @Override + @SideOnly(Side.CLIENT) + public ModelBiped getArmorModel(EntityLivingBase entityLiving, ItemStack itemStack, EntityEquipmentSlot armorSlot, ModelBiped _default) + { + //ModelBiped armorModel = ItemsRegister.armorModels.get(this); + ModelBiped armorModel = ClientProxy.armorModels.get(this); + if (armorModel != null) + { + armorModel.bipedHead.showModel = armorSlot == EntityEquipmentSlot.HEAD; + armorModel.bipedHeadwear.showModel = false; + armorModel.bipedBody.showModel = armorSlot == EntityEquipmentSlot.CHEST || armorSlot == EntityEquipmentSlot.LEGS; + armorModel.bipedRightArm.showModel = armorSlot == EntityEquipmentSlot.CHEST; + armorModel.bipedLeftArm.showModel = armorSlot == EntityEquipmentSlot.CHEST; + armorModel.bipedRightLeg.showModel = armorSlot == EntityEquipmentSlot.LEGS || armorSlot == EntityEquipmentSlot.FEET; + armorModel.bipedLeftLeg.showModel = armorSlot == EntityEquipmentSlot.LEGS || armorSlot == EntityEquipmentSlot.FEET; + + armorModel.isSneak = entityLiving.isSneaking(); + armorModel.isRiding = entityLiving.isRiding(); + armorModel.isChild = entityLiving.isChild(); + + } + return armorModel; + } + + @Nullable + @Override + public String getArmorTexture(ItemStack stack, Entity entity, EntityEquipmentSlot slot, String type) + { + return ModInfo.MOD_ID + ":textures/armor/hide.png"; + } } diff --git a/kfc/src/main/java/nmd/primal/forgecraft/models/AwesomeSauceModel.java b/kfc/src/main/java/nmd/primal/forgecraft/models/AwesomeSauceModel.java deleted file mode 100644 index 5267df5c..00000000 --- a/kfc/src/main/java/nmd/primal/forgecraft/models/AwesomeSauceModel.java +++ /dev/null @@ -1,71 +0,0 @@ -package nmd.primal.forgecraft.models; - -import net.minecraft.client.model.ModelBiped; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; - -/** - * Created by mminaie on 7/3/17. - */ - -public class AwesomeSauceModel extends ModelBiped -{ - ModelRenderer basehorn; - ModelRenderer horn1; - ModelRenderer rightshoulder; - ModelRenderer leftshoulder; - - public AwesomeSauceModel(float expand) { - - super(expand, 0, 64, 64); - - basehorn = new ModelRenderer(this, 38, 0); - basehorn.addBox(-1F, -9F, -4.5F, 2, 2, 2, expand); - basehorn.setRotationPoint(0F, 0F, 0F); - basehorn.setTextureSize(64, 32); - basehorn.mirror = true; - setRotation(basehorn, 0F, 0F, 0F); - - horn1 = new ModelRenderer(this, 33, 0); - horn1.addBox(-0.5F, -14.5F, 0.7666667F, 1, 5, 1, expand/3); - horn1.setRotationPoint(0F, 0F, 0F); - horn1.setTextureSize(64, 32); - horn1.mirror = true; - setRotation(horn1, 0.5576792F, 0F, 0F); - - rightshoulder = new ModelRenderer(this, 0, 33); - rightshoulder.addBox(-3.5F, -3F, -2.5F, 5, 5, 5, expand/1.2F); - rightshoulder.setRotationPoint(0F, 0F, 0F); - rightshoulder.setTextureSize(64, 32); - rightshoulder.mirror = true; - setRotation(rightshoulder, 0F, 0F, 0F); - - leftshoulder = new ModelRenderer(this, 0, 33); - leftshoulder.addBox(-1.5F, -3F, -2.5F, 5, 5, 5, expand/1.2F); - leftshoulder.setRotationPoint(0F, 0F, 0F); - leftshoulder.setTextureSize(64, 32); - leftshoulder.mirror = true; - setRotation(leftshoulder, 0F, 0F, 0F); - - basehorn.addChild(horn1); - this.bipedHead.addChild(basehorn); - - this.bipedRightArm.addChild(rightshoulder); - this.bipedLeftArm.addChild(leftshoulder); - - } - - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { - super.render(entity, f, f1, f2, f3, f4, f5); - setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } - - private void setRotation(ModelRenderer model, float x, float y, float z) - { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - -} \ No newline at end of file diff --git a/kfc/src/main/java/nmd/primal/forgecraft/models/ModelPlateHelmet.java b/kfc/src/main/java/nmd/primal/forgecraft/models/ModelPlateHelmet.java new file mode 100644 index 00000000..9d01d619 --- /dev/null +++ b/kfc/src/main/java/nmd/primal/forgecraft/models/ModelPlateHelmet.java @@ -0,0 +1,268 @@ +package nmd.primal.forgecraft.models; + +import net.minecraft.client.model.ModelBiped; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; + +public class ModelPlateHelmet extends ModelBiped +{ + //fields + ModelRenderer head; + ModelRenderer body; + ModelRenderer rightarm; + ModelRenderer leftarm; + ModelRenderer rightleg; + ModelRenderer leftleg; + ModelRenderer Shape1; + ModelRenderer Shape2; + ModelRenderer Shape3; + ModelRenderer Shape4; + ModelRenderer Shape5; + //ModelRenderer Shape6; + ModelRenderer Shape7; + ModelRenderer Shape8; + ModelRenderer Shape9; + ModelRenderer Shape10; + ModelRenderer Shape11; + ModelRenderer Shape12; + ModelRenderer Shape13; + ModelRenderer Shape14; + ModelRenderer Shape15; + ModelRenderer Shape16; + ModelRenderer Shape17; + ModelRenderer Shape18; + ModelRenderer Shape19; + ModelRenderer Shape20; + ModelRenderer Shape21; + + public ModelPlateHelmet(float scale) + { + //super(1.0f, 64, 64); + super(scale, 0.0f, 64, 64); + //textureWidth = 64; + //textureHeight = 64; + +/* + head = new ModelRenderer(this, 0, 0); + head.addBox(-4F, -8F, -4F, 8, 8, 8); + head.setRotationPoint(0F, 0F, 0F); + head.setTextureSize(64, 64); + head.mirror = true; + setRotation(head, 0F, 0F, 0F); + /* + body = new ModelRenderer(this, 16, 16); + body.addBox(-4F, 0F, -2F, 8, 12, 4); + body.setRotationPoint(0F, 0F, 0F); + body.setTextureSize(64, 64); + body.mirror = true; + setRotation(body, 0F, 0F, 0F); + rightarm = new ModelRenderer(this, 40, 16); + rightarm.addBox(-3F, -2F, -2F, 4, 12, 4); + rightarm.setRotationPoint(-5F, 2F, 0F); + rightarm.setTextureSize(64, 64); + rightarm.mirror = true; + setRotation(rightarm, 0F, 0F, 0F); + leftarm = new ModelRenderer(this, 40, 16); + leftarm.addBox(-1F, -2F, -2F, 4, 12, 4); + leftarm.setRotationPoint(5F, 2F, 0F); + leftarm.setTextureSize(64, 64); + leftarm.mirror = true; + setRotation(leftarm, 0F, 0F, 0F); + rightleg = new ModelRenderer(this, 0, 16); + rightleg.addBox(-2F, 0F, -2F, 4, 12, 4); + rightleg.setRotationPoint(-2F, 12F, 0F); + rightleg.setTextureSize(64, 64); + rightleg.mirror = true; + setRotation(rightleg, 0F, 0F, 0F); + leftleg = new ModelRenderer(this, 0, 16); + leftleg.addBox(-2F, 0F, -2F, 4, 12, 4); + leftleg.setRotationPoint(2F, 12F, 0F); + leftleg.setTextureSize(64, 64); + leftleg.mirror = true; + setRotation(leftleg, 0F, 0F, 0F); + */ + Shape1 = new ModelRenderer(this, 0, 37); + Shape1.addBox(-4.5F, -7F, -5F, 4, 7, 1); + Shape1.setRotationPoint(0F, 0F, 0F); + Shape1.setTextureSize(64, 64); + Shape1.mirror = true; + setRotation(Shape1, 0F, 1.570796F, 0F); + Shape2 = new ModelRenderer(this, 52, 37); + Shape2.addBox(-4.5F, -7F, -5F, 4, 2, 1); + Shape2.setRotationPoint(0F, 0F, 0F); + Shape2.setTextureSize(64, 64); + Shape2.mirror = true; + setRotation(Shape2, 0F, 0F, 0F); + Shape3 = new ModelRenderer(this, 52, 40); + Shape3.addBox(-2F, -7F, -5.5F, 4, 2, 1); + Shape3.setRotationPoint(0F, 0F, 0F); + Shape3.setTextureSize(64, 64); + Shape3.mirror = true; + setRotation(Shape3, 0F, 0F, 0F); + Shape4 = new ModelRenderer(this, 52, 52); + Shape4.addBox(0.5F, -7F, -5F, 4, 2, 1); + Shape4.setRotationPoint(0F, 0F, 0F); + Shape4.setTextureSize(64, 64); + Shape4.mirror = true; + setRotation(Shape4, 0F, 0F, 0F); + Shape5 = new ModelRenderer(this, 0, 37); + Shape5.addBox(0.5F, -7F, -5F, 4, 5, 1); + Shape5.setRotationPoint(0F, 0F, 0F); + Shape5.setTextureSize(64, 64); + Shape5.mirror = true; + setRotation(Shape5, 0F, 1.570796F, 0F); + Shape7 = new ModelRenderer(this, 5, 37); + Shape7.addBox(-2F, -7F, -5.5F, 4, 6, 1); + Shape7.setRotationPoint(0F, 0F, 0F); + Shape7.setTextureSize(64, 64); + Shape7.mirror = true; + setRotation(Shape7, 0F, 1.570796F, 0F); + Shape8 = new ModelRenderer(this, 2, 37); + Shape8.addBox(-2F, -7F, -5.5F, 4, 8, 1); + Shape8.setRotationPoint(0F, 0F, 0F); + Shape8.setTextureSize(64, 64); + Shape8.mirror = true; + setRotation(Shape8, 0F, 3.141593F, 0F); + Shape9 = new ModelRenderer(this, 5, 37); + Shape9.addBox(0.5F, -7F, -5F, 4, 7, 1); + Shape9.setRotationPoint(0F, 0F, 0F); + Shape9.setTextureSize(64, 64); + Shape9.mirror = true; + setRotation(Shape9, 0F, 3.141593F, 0F); + Shape10 = new ModelRenderer(this, 20, 37); + Shape10.addBox(-4.5F, -7F, -5F, 4, 5, 1); + Shape10.setRotationPoint(0F, 0F, 0F); + Shape10.setTextureSize(64, 64); + Shape10.mirror = true; + setRotation(Shape10, 0F, -1.570796F, 0F); + Shape11 = new ModelRenderer(this, 25, 37); + Shape11.addBox(-2F, -7F, -5.5F, 4, 6, 1); + Shape11.setRotationPoint(0F, 0F, 0F); + Shape11.setTextureSize(64, 64); + Shape11.mirror = true; + setRotation(Shape11, 0F, -1.570796F, 0F); + Shape12 = new ModelRenderer(this, 30, 37); + Shape12.addBox(0.5F, -7F, -5F, 4, 7, 1); + Shape12.setRotationPoint(0F, 0F, 0F); + Shape12.setTextureSize(64, 64); + Shape12.mirror = true; + setRotation(Shape12, 0F, -1.570796F, 0F); + Shape13 = new ModelRenderer(this, 10, 55); + Shape13.addBox(-2F, -11F, -2F, 4, 1, 4); + Shape13.setRotationPoint(0F, 0F, 0F); + Shape13.setTextureSize(64, 64); + Shape13.mirror = true; + setRotation(Shape13, 0F, 0F, 0F); + Shape14 = new ModelRenderer(this, 0, 46); + Shape14.addBox(-4.5F, -8F, -4.5F, 9, 1, 9); + Shape14.setRotationPoint(0F, 0F, 0F); + Shape14.setTextureSize(64, 64); + Shape14.mirror = true; + setRotation(Shape14, 0F, 0F, 0F); + Shape15 = new ModelRenderer(this, 0, 46); + Shape15.addBox(-3.5F, -10F, -3.5F, 7, 1, 7); + Shape15.setRotationPoint(0F, 0F, 0F); + Shape15.setTextureSize(64, 64); + Shape15.mirror = true; + setRotation(Shape15, 0F, 0F, 0F); + Shape16 = new ModelRenderer(this, 5, 50); + Shape16.addBox(-3F, -10.5F, -3F, 6, 1, 6); + Shape16.setRotationPoint(0F, 0F, 0F); + Shape16.setTextureSize(64, 64); + Shape16.mirror = true; + setRotation(Shape16, 0F, 0F, 0F); + Shape17 = new ModelRenderer(this, 50, 48); + Shape17.addBox(-1F, -8.5F, 3F, 2, 1, 5); + Shape17.setRotationPoint(0F, 0F, 0F); + Shape17.setTextureSize(64, 64); + Shape17.mirror = true; + setRotation(Shape17, 1.047198F, 3.141593F, 0F); + Shape18 = new ModelRenderer(this, 50, 48); + Shape18.addBox(-1F, -8.5F, 3F, 2, 1, 5); + Shape18.setRotationPoint(0F, 0F, 0F); + Shape18.setTextureSize(64, 64); + Shape18.mirror = true; + setRotation(Shape18, 1.047198F, 0F, 0F); + Shape19 = new ModelRenderer(this, 46, 51); + Shape19.addBox(-1F, -11.5F, -3.5F, 2, 1, 7); + Shape19.setRotationPoint(0F, 0F, 0F); + Shape19.setTextureSize(64, 64); + Shape19.mirror = true; + setRotation(Shape19, 0F, 0F, 0F); + Shape20 = new ModelRenderer(this, 40, 48); + Shape20.addBox(-1F, -5F, -5.5F, 2, 3, 1); + Shape20.setRotationPoint(0F, 0F, 0F); + Shape20.setTextureSize(64, 64); + Shape20.mirror = true; + setRotation(Shape20, 0F, 0F, 0F); + Shape21 = new ModelRenderer(this, 0, 45); + Shape21.addBox(-4F, -9F, -4F, 8, 1, 8); + Shape21.setRotationPoint(0F, 0F, 0F); + Shape21.setTextureSize(64, 64); + Shape21.mirror = true; + setRotation(Shape21, 0F, 0F, 0F); + + this.bipedHead.addChild(Shape1); + this.bipedHead.addChild(Shape2); + this.bipedHead.addChild(Shape3); + this.bipedHead.addChild(Shape4); + this.bipedHead.addChild(Shape5); + //this.bipedHead.addChild(Shape6); + this.bipedHead.addChild(Shape7); + this.bipedHead.addChild(Shape8); + this.bipedHead.addChild(Shape9); + this.bipedHead.addChild(Shape10); + this.bipedHead.addChild(Shape10); + this.bipedHead.addChild(Shape12); + this.bipedHead.addChild(Shape13); + this.bipedHead.addChild(Shape14); + this.bipedHead.addChild(Shape15); + this.bipedHead.addChild(Shape16); + this.bipedHead.addChild(Shape17); + this.bipedHead.addChild(Shape18); + this.bipedHead.addChild(Shape19); + this.bipedHead.addChild(Shape20); + this.bipedHead.addChild(Shape21); + + } + + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) + { + super.render(entity, f, f1, f2, f3, f4, f5); + setRotationAngles(f, f1, f2, f3, f4, f5, entity); + //head.render(f5); + //body.render(f5); + //rightarm.render(f5); + //leftarm.render(f5); + //rightleg.render(f5); + //leftleg.render(f5); + Shape1.render(f5); + Shape2.render(f5); + Shape3.render(f5); + Shape4.render(f5); + Shape5.render(f5); + Shape7.render(f5); + Shape8.render(f5); + Shape9.render(f5); + Shape10.render(f5); + Shape11.render(f5); + Shape12.render(f5); + Shape13.render(f5); + Shape14.render(f5); + Shape15.render(f5); + Shape16.render(f5); + Shape17.render(f5); + Shape18.render(f5); + Shape19.render(f5); + Shape20.render(f5); + Shape21.render(f5); + } + + private void setRotation(ModelRenderer model, float x, float y, float z) + { + model.rotateAngleX = x; + model.rotateAngleY = y; + model.rotateAngleZ = z; + } + +} diff --git a/kfc/src/main/java/nmd/primal/forgecraft/proxy/ClientProxy.java b/kfc/src/main/java/nmd/primal/forgecraft/proxy/ClientProxy.java index d3da32c0..b7676f36 100644 --- a/kfc/src/main/java/nmd/primal/forgecraft/proxy/ClientProxy.java +++ b/kfc/src/main/java/nmd/primal/forgecraft/proxy/ClientProxy.java @@ -1,17 +1,24 @@ package nmd.primal.forgecraft.proxy; import net.minecraft.client.model.ModelBiped; +import net.minecraft.item.Item; import net.minecraftforge.fml.client.registry.ClientRegistry; import nmd.primal.forgecraft.init.ModBlocks; import nmd.primal.forgecraft.init.ModItems; +import nmd.primal.forgecraft.models.ModelPlateHelmet; import nmd.primal.forgecraft.renders.blocks.*; import nmd.primal.forgecraft.tiles.*; +import java.util.HashMap; +import java.util.Map; + /** * Created by kitsu on 11/26/2016. */ public class ClientProxy implements CommonProxy { + public static final Map armorModels = new HashMap(); + @Override public void preInit(){ ModItems.registerCustomRenders(); @@ -25,6 +32,7 @@ public class ClientProxy implements CommonProxy { ModBlocks.registerRenders(); //this.registerModelBakeryStuff(); this.registerTileRendering(); + this.registerModels(); } //@Override @@ -39,6 +47,13 @@ public class ClientProxy implements CommonProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileCastingBlock.class, new TileCastingBlockRender()); } + public void registerModels(){ + + ModelPlateHelmet custom_armor = new ModelPlateHelmet(1.0f); + + armorModels.put(ModItems.testleggings, custom_armor); + } + @Override public void registerModelBakeryVariants(){ //ModelBakery.registerItemVariants(ModItems.stonetongs, new ResourceLocation(ModInfo.MOD_ID, "stonetongs_default"), diff --git a/kfc/src/main/resources/assets/forgecraft/models/item/testleggings.json b/kfc/src/main/resources/assets/forgecraft/models/item/testleggings1.json similarity index 100% rename from kfc/src/main/resources/assets/forgecraft/models/item/testleggings.json rename to kfc/src/main/resources/assets/forgecraft/models/item/testleggings1.json diff --git a/kfc/src/main/resources/assets/forgecraft/textures/Thumbs.db b/kfc/src/main/resources/assets/forgecraft/textures/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..07c2940e364f20dcb982b1ca3d05e7b66ed5c4ee GIT binary patch literal 4096 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 literal 0 HcmV?d00001 diff --git a/kfc/src/main/resources/assets/forgecraft/textures/items/Thumbs.db b/kfc/src/main/resources/assets/forgecraft/textures/items/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..0ad61afc5fd8e022793740134c4f326c7eecd8e5 GIT binary patch literal 3072 zcmca`Uhu)fjZzO8(10BSGsD0CoD6J8;*3Bx2!nwD0|OI~0pkDr|NlQkkbwcn90fxt z1pWfu3W`4vW`V}#5OV&gQz;CAAclM(EMZV!aAn8?(nSoFu&hiJEylnK&-3uI0f){B z^BPw;|G31+43s|rDm;L|h{2S>j3J&OmBE0)f+3B;n86arGG#~vl4%UdK=~vfG=?a~ zLTWKEF(L;67A07PHbU*kDoLUsIrfui1zzQp*bj;`P*8y41eE_-ff!WgvjZ^)5OV@C z7Z8KWhfy&6LO=o-x1hM63C#~lHRVsfTnd@+|Hl6Z3<6$mo^A|`jL?kz|2Bg&0}C@V z3o{El3ky3ZJ1aXUHzyEq^YMTHpCFjxfl?3-Item_k%f(ohl59qheu3=kB?6TMDU3~ zvgH4h8`R0cJ)e1|~s9WovIz$!vMUve7&T5@$f4}C@t|nX#SbdRNkvVZ zTw>x9l2WQ_>Kd9_CZ=ZQ7M51dF0O9w9-dyoA)#U65s^{JDXD4c8JStdC8cHM6_r)Z zEv;?s9i3g1CQq3GGAU z*RJ2VdF$b$$4{OPfBE|D`;VW$K>lK6V1{@L?lUxh2?G7a!~%*JkiQt2 z%0V6%WMNe_WD{}>WKS#c@69{;yl(w zme1fGL-^|!0}nGJF!GoM8SEK8RHWWw