From 21368b49f5e09d26952ca0d536326404d0b6aa98 Mon Sep 17 00:00:00 2001 From: Pahimar Date: Thu, 25 Sep 2014 16:23:45 -0400 Subject: [PATCH] Work on Alchemy Arrays and getting symbols to render in the TE --- .../java/com/pahimar/ee3/alchemy/Symbol.java | 24 +++++-- .../java/com/pahimar/ee3/alchemy/Symbols.java | 15 +++- .../pahimar/ee3/block/BlockAlchemyArray.java | 13 ++++ .../TileEntityRendererAlchemyArray.java | 66 +++++++----------- .../tileentity/TileEntityAlchemyArray.java | 27 +++++-- .../ee3/textures/array/transBaseCircle.png | Bin 3479 -> 3050 bytes .../ee3/textures/array/transDiamond.png | Bin 0 -> 3028 bytes .../ee3/textures/array/transHeptagon.png | Bin 3533 -> 3015 bytes .../ee3/textures/array/transHexagon.png | Bin 3371 -> 2979 bytes .../textures/array/transInvertedTriangle.png | Bin 0 -> 2998 bytes .../ee3/textures/array/transOctagon.png | Bin 3503 -> 3018 bytes .../ee3/textures/array/transPentagon.png | Bin 3447 -> 3024 bytes .../assets/ee3/textures/array/transSquare.png | Bin 3168 -> 2878 bytes .../ee3/textures/array/transTriangle.png | Bin 3300 -> 2998 bytes 14 files changed, 92 insertions(+), 53 deletions(-) create mode 100644 src/main/resources/assets/ee3/textures/array/transDiamond.png create mode 100644 src/main/resources/assets/ee3/textures/array/transInvertedTriangle.png diff --git a/src/main/java/com/pahimar/ee3/alchemy/Symbol.java b/src/main/java/com/pahimar/ee3/alchemy/Symbol.java index 3f69850c..a6d64d56 100644 --- a/src/main/java/com/pahimar/ee3/alchemy/Symbol.java +++ b/src/main/java/com/pahimar/ee3/alchemy/Symbol.java @@ -6,14 +6,19 @@ import net.minecraft.util.ResourceLocation; public class Symbol { private final ResourceLocation texture; - private final float size; + private final int size; - public Symbol(String texture, float size) + public Symbol(String texture) + { + this(texture, 1); + } + + public Symbol(String texture, int size) { this(ResourceLocationHelper.getResourceLocation(texture), size); } - public Symbol(ResourceLocation texture, float size) + public Symbol(ResourceLocation texture, int size) { this.texture = texture; this.size = size; @@ -24,8 +29,19 @@ public class Symbol return texture; } - public float getSize() + public int getSize() { return size; } + + @Override + public boolean equals(Object object) + { + if (object instanceof Symbol) + { + return this.texture.equals(((Symbol) object).getTexture()) && this.size == ((Symbol) object).size; + } + + return false; + } } diff --git a/src/main/java/com/pahimar/ee3/alchemy/Symbols.java b/src/main/java/com/pahimar/ee3/alchemy/Symbols.java index 4accc5a3..4f3617e9 100644 --- a/src/main/java/com/pahimar/ee3/alchemy/Symbols.java +++ b/src/main/java/com/pahimar/ee3/alchemy/Symbols.java @@ -3,5 +3,18 @@ package com.pahimar.ee3.alchemy; public class Symbols { private static final String SYMBOL_TEXTURE_LOCATION = "textures/array/"; - public static final Symbol CIRCLE = new Symbol(SYMBOL_TEXTURE_LOCATION + "transBaseCircle.png", 1f); + + public static final Symbol BASE_CIRCLE = new Symbol(SYMBOL_TEXTURE_LOCATION + "transBaseCircle.png"); + public static final Symbol DOT = new Symbol(SYMBOL_TEXTURE_LOCATION + "transDot.png"); + public static final Symbol LINE = new Symbol(SYMBOL_TEXTURE_LOCATION + "transLine.png"); + public static final Symbol CIRCLE = new Symbol(SYMBOL_TEXTURE_LOCATION + "transCircle.png"); + public static final Symbol TRIANGLE = new Symbol(SYMBOL_TEXTURE_LOCATION + "transTriangle.png"); + public static final Symbol INVERTED_TRIANGLE = new Symbol(SYMBOL_TEXTURE_LOCATION + "transInvertedTriangle.png"); + public static final Symbol SQUARE = new Symbol(SYMBOL_TEXTURE_LOCATION + "transSquare.png"); + public static final Symbol DIAMOND = new Symbol(SYMBOL_TEXTURE_LOCATION + "transDiamond.png"); + public static final Symbol PENTAGON = new Symbol(SYMBOL_TEXTURE_LOCATION + "transPentagon.png"); + public static final Symbol HEXAGON = new Symbol(SYMBOL_TEXTURE_LOCATION + "transHexagon.png"); + public static final Symbol HEPTGON = new Symbol(SYMBOL_TEXTURE_LOCATION + "transHeptagon.png"); + public static final Symbol OCTAGON = new Symbol(SYMBOL_TEXTURE_LOCATION + "transOctagon.png"); + } diff --git a/src/main/java/com/pahimar/ee3/block/BlockAlchemyArray.java b/src/main/java/com/pahimar/ee3/block/BlockAlchemyArray.java index efd98fb7..2c4cd143 100644 --- a/src/main/java/com/pahimar/ee3/block/BlockAlchemyArray.java +++ b/src/main/java/com/pahimar/ee3/block/BlockAlchemyArray.java @@ -6,6 +6,8 @@ import com.pahimar.ee3.tileentity.TileEntityAlchemyArray; import net.minecraft.block.ITileEntityProvider; import net.minecraft.block.material.Material; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.util.Vec3; import net.minecraft.world.World; public class BlockAlchemyArray extends BlockEE implements ITileEntityProvider @@ -46,4 +48,15 @@ public class BlockAlchemyArray extends BlockEE implements ITileEntityProvider { return new TileEntityAlchemyArray(); } + + @Override + public MovingObjectPosition collisionRayTrace(World world, int x, int y, int z, Vec3 startVec, Vec3 endVec) + { + if (world.getTileEntity(x, y, z) instanceof TileEntityAlchemyArray) + { + return super.collisionRayTrace(world, x, y, z, startVec, endVec); + } + + return super.collisionRayTrace(world, x, y, z, startVec, endVec); + } } diff --git a/src/main/java/com/pahimar/ee3/client/renderer/tileentity/TileEntityRendererAlchemyArray.java b/src/main/java/com/pahimar/ee3/client/renderer/tileentity/TileEntityRendererAlchemyArray.java index 14834e9a..a4beccf9 100644 --- a/src/main/java/com/pahimar/ee3/client/renderer/tileentity/TileEntityRendererAlchemyArray.java +++ b/src/main/java/com/pahimar/ee3/client/renderer/tileentity/TileEntityRendererAlchemyArray.java @@ -4,11 +4,10 @@ import com.pahimar.ee3.alchemy.Symbol; import com.pahimar.ee3.tileentity.TileEntityAlchemyArray; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.util.ForgeDirection; import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; @SideOnly(Side.CLIENT) public class TileEntityRendererAlchemyArray extends TileEntitySpecialRenderer @@ -19,52 +18,35 @@ public class TileEntityRendererAlchemyArray extends TileEntitySpecialRenderer if (tileEntity instanceof TileEntityAlchemyArray) { TileEntityAlchemyArray tileEntityAlchemyArray = (TileEntityAlchemyArray) tileEntity; - ForgeDirection direction = null; - - if (tileEntityAlchemyArray.getWorldObj() != null) - { - direction = tileEntityAlchemyArray.getOrientation(); - } + GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glDisable(GL11.GL_LIGHTING); GL11.glPushMatrix(); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - GL11.glTranslatef((float) x, (float) y + 1.0F, (float) z + 1.0F); - GL11.glScalef(1.0F, -1.0F, -1.0F); - GL11.glTranslatef(0.5F, 0.5F, 0.5F); - short angle = 0; - - if (direction != null) - { - if (direction == ForgeDirection.NORTH) - { - angle = 180; - } - else if (direction == ForgeDirection.SOUTH) - { - angle = 0; - } - else if (direction == ForgeDirection.WEST) - { - angle = 90; - } - else if (direction == ForgeDirection.EAST) - { - angle = -90; - } - } - - GL11.glRotatef(angle, 0.0F, 1.0F, 0.0F); - GL11.glTranslatef(-0.5F, -0.5F, -0.5F); - - for (Symbol symbol : tileEntityAlchemyArray.getAlchemySymbols()) + for (Symbol symbol : tileEntityAlchemyArray.getSymbols()) { this.bindTexture(symbol.getTexture()); + renderSymbol(symbol, x, y, z); } - - GL11.glDisable(GL12.GL_RESCALE_NORMAL); GL11.glPopMatrix(); - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_CULL_FACE); } } + + private void renderSymbol(Symbol symbol, double x, double y, double z) + { + Tessellator tessellator = Tessellator.instance; + + GL11.glPushMatrix(); + + GL11.glTranslatef(0.5f - (symbol.getSize() / 2f), 0f, 0.5f - (symbol.getSize() / 2f)); + + tessellator.startDrawingQuads(); + tessellator.addVertexWithUV(x + symbol.getSize(), y + 0.001d, z + symbol.getSize(), 0, 0); + tessellator.addVertexWithUV(x + symbol.getSize(), y + 0.001d, z, 0, 1); + tessellator.addVertexWithUV(x, y + 0.001d, z, 1, 1); + tessellator.addVertexWithUV(x, y + 0.001d, z + symbol.getSize(), 1, 0); + tessellator.draw(); + GL11.glPopMatrix(); + } } diff --git a/src/main/java/com/pahimar/ee3/tileentity/TileEntityAlchemyArray.java b/src/main/java/com/pahimar/ee3/tileentity/TileEntityAlchemyArray.java index 0960766a..898d74ae 100644 --- a/src/main/java/com/pahimar/ee3/tileentity/TileEntityAlchemyArray.java +++ b/src/main/java/com/pahimar/ee3/tileentity/TileEntityAlchemyArray.java @@ -1,24 +1,39 @@ package com.pahimar.ee3.tileentity; import com.pahimar.ee3.alchemy.Symbol; -import com.pahimar.ee3.alchemy.Symbols; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.util.AxisAlignedBB; import java.util.ArrayList; -import java.util.Arrays; import java.util.List; public class TileEntityAlchemyArray extends TileEntityEE { - private List alchemySymbols; + private List symbols; + private int largestSymbolSize; public TileEntityAlchemyArray() { super(); - alchemySymbols = new ArrayList(Arrays.asList(Symbols.CIRCLE)); + symbols = new ArrayList(); + this.largestSymbolSize = 0; } - public List getAlchemySymbols() + public List getSymbols() { - return alchemySymbols; + return symbols; + } + + public int getLargestSymbolSize() + { + return largestSymbolSize; + } + + @Override + @SideOnly(Side.CLIENT) + public AxisAlignedBB getRenderBoundingBox() + { + return AxisAlignedBB.getBoundingBox(xCoord - largestSymbolSize, yCoord, zCoord - largestSymbolSize, xCoord + largestSymbolSize, yCoord, zCoord + largestSymbolSize); } } diff --git a/src/main/resources/assets/ee3/textures/array/transBaseCircle.png b/src/main/resources/assets/ee3/textures/array/transBaseCircle.png index 84cf16874ec4ffc0c14dbae61eb6027574dec94f..6ab171d7b2d400ab700801073136e31b305d9abe 100644 GIT binary patch delta 363 zcmV-x0hIoi8|oL390dTXX>s1MHeL!324YJ`L;wH)0002_L%V;GAs2rD2XskIMF-vq z84))qe79^80003TNkl`@(2!o~fzq5PU!+vzNov4_P1C%5Z+bX0a9yT&r z&N(-MGP5lNXeB&T5F1Ill}L|g3>TmTx))f_XIpP@-u~^K&!Q0b%5VQBA5DBZmi&y> z-seMbtxA3fzSYUQ;*5Vn-UV+o@?CL9CEo>qbn>k{jzsLc`Yn8@fZbRBj29K4u=>CF z$yWdZ)D9SSw|cb#W*=~PMu{61KmalSf9?Z^ivMdIu>b-f00JNY0w93S4^izmq11uo$Vor;ziB0cmNr9uPE0h@Dl(4002ov JPDHLkV1fhCm?{7O delta 798 zcmV+(1L6GY7nd8590dX0Zb3+sjtUpCBU}o9AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;!bwCyRCwBA{Qv(y13tjSKmZH{1^@9W_|L$=zz6^U z0RR7DBsLuW6H>rP6Gt*IFfcGO;jkB}R-8HO3Cf#E1sq>lCCaf4d+JKuHXVnI4!J zmv%+fXAhzf^FPaBFmx7bJgWcz0RR7g#FtSH01ymAx5WLgTz@`<>40m|Nrcoffaxt2t>oz z{wvb}J%JFBP8mSCpXmu^*9X`kwp4v$R3s&ikp_S#BuH8F-2tMr{TxN+;w{lFHL-@x zk)i=q6drPR-XOx=AR3@}&BT}hAc!|XXyD>i2yFxLB829!sR+T^g%mY^#3!x01@~$q z=wW^^utgjI2Y}Hs0v>^MR>1Y{4WO@rm(x8f;Oq4f>FaA&n9;>czW@>h@rFCIH&t4= z1;AfHe9F_)o2v@Km6xY6(%TH{EM_OZ~Boql{+SrlJQ8FeTHTG2vKx*Pq@c;k- c|NjF335ui+l(aIA0000907*qoM6N<$g7f`Q2LJ#7 diff --git a/src/main/resources/assets/ee3/textures/array/transDiamond.png b/src/main/resources/assets/ee3/textures/array/transDiamond.png new file mode 100644 index 0000000000000000000000000000000000000000..bc4479f63bdeb271bab90630d6fed56288ae743c GIT binary patch literal 3028 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 WOicSL{ZgeJWR<6@pUXO@geCxOe}ygp delta 852 zcmV-a1FQVU7tI@x90dX0Zb3+sjtUpCBU}o9AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;_(?=TRCwBA{Qv(y13tinMeIK=1uzLlWInP2Ml_Qc zaalpo4MZ#WPe=hH0|NsC00030|6(L392f|N0}7i7Nq`Ysm@wf8Bn)5tC*%f3EN)$Nk`RJ2<|2u$M;hV+!zQM?6d<%R!=i2a*lqHD>L|mMlf7&&ZGha4AR}f-8!8VxRZ z>5wU^G}o??f1idI00030|LmAi4!|G?Lj&3UuiV{0f!5&?{-;*a^19)H5x@!n=@FCw zu)&5AfJ&ZKKq)rPh^!H@OlS+s4!NQei!Bom;8Dtm>_9?V&gmb2q$2A706L$c3GaYaeSj^+cI;D_$b#R78d)@$KzZ>P zB+HzDv=?N!AjJ@_JkDRH;}P%z00960>{>w*#2^S0$Nzsh`+@B)0uizHXlEQqB1$yf zA9y_j7l4-o;I>!1-$+cnc}$I}06_U)P6FV`h?99HoCUpa% zD8jrd&S8|&ZfY>c*&ULSBGPxiT9N|NH}?p$zOWQI4pV(;*-#a*)}bsN+a z7(6h-VELQmO+`8KUV!C44`70X^mcf)f8gGV2O$_l2T7WfrT{52=h5BZ1>gd30nmLP e00030{{sNI53vs#I6xBs0000lFzskrs_wl`mc0f%d#;k)|N78e^AuhP_g8rya(#G-E1#5`$7kM^@x8+QLz z7BrqL@Ll^}o_>5qWygM2UH*%!8!|Y$HTHaO)=fHdCB1g%?WB^VOocRcqqje9>K#q| znKFOYp-<7de*Y%bub(=jZc)+t4_>!cC5Hc(VS~61FX^Dzca87+|F2V}Rd(@&ZFOBH z(vq`%M$Y~PImcJzoG&=?W6SAu`{+&D?kU&#POg)i9csa?&go?B_f9mQdwRZ+C&+M5 LS3j3^P6(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;R!KxbRCwBA{Qv(y13tjSKmcG<@E?}~m;@s-A6Wq- znn{efOkf~n!hc*QV6_SW00960Vx)RF{Ku!@KNg4L3=(jAP7qn_Foyl#`vgzt@i+gLJzR>;JA)%0Fb8u)LAEk2xDTnNyY+b z-vp4BNybhi6hL*FtAQnrpR%E$fqIgleOmy3NR*cD+5+R{yY@HW=*sVZdZil1Ebj3$OCgyNli1S( z+$xkhlW_2=p(?lJ>S0EyhjQeq6$Y-QzH#Z6n6NosVT_>yao$uE}IBdnyB9ai0XrT1{i<=7(hfE#0CHW|NjF3 XdbEBNBetB@00000NkvXXu0mjfS6CXh diff --git a/src/main/resources/assets/ee3/textures/array/transInvertedTriangle.png b/src/main/resources/assets/ee3/textures/array/transInvertedTriangle.png new file mode 100644 index 0000000000000000000000000000000000000000..5730f65c6de748036cad67cb6fd554ea6d9b8c8b GIT binary patch literal 2998 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 delta 822 zcmV-61Ihf#7q1(T90dX0Zb3+sjtUpCBU}o9AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;+DSw~RCwBA{Qv(y13tin#{Z8-qbT^#z`(!=Wiz5H zK$b)?kqKP~8en8Xx07rWaQXrO00960Vk9*j$X9^Pp8v=S7|Ah#0iOx*pvUD%xCQ`! z00030{~{O;^V8NpZSM;HHlZ8+`69NDL z00960#8gKP03Zmn#{YjA@5rc%@k~OxpXHz=NQ@>S0_w@gY*L~ww{GM=asV31sfglH zVEo7TE>L@r@i+HiXA2Mwim+Aof`p`h&aJf0*Dg!|00960#FxPhz%U2{>!|y$?EWjI zU_%K55EPvcQTD-cj;eJ#`BPEr7=SOrkU*80AtDCoF5JMcp^&eJhj+OQZHOOOgOh@h zL5|08eK62zsBO~cUFkH;NK!pO- zi;AZqdQ~sUAtvo9R*H`xzyefj^K^=Kb8)!^VX$VQy5eJU!5v2b1=yO5j?#g)QwO5( zi=d7Fh0yx}6ckUtf)xmAnzG@46p3(J>Ip+Mr50DLm{QBKSv92=DgItO-wyBq00960 z?3!T`g&+uo^9}dEGF{+V5W8TBf14cmLWHGqePH`9&;ULTz%7@6-=|$f-Wt$5cZ$AW z3P2w|gB4hn02FvhYX$@%IL=TsW_e*$17J9A1p@&gFLIm$LIUTp%5e*S2(yhAg<44& zJtO(v))7`s;8-{ULUukGn6Kn`*v{?+8bAYR0N!h6WeLe`r#LoDX-^4tz@?qr*8xA{ z=CI#G5+h(7pyAAnq%Lq2!cCa~!ma`YtQ!^J`TGYV3TCz+3^rphf{?|K(i%MiP;g2X z1Hf#o9u-B$TL7R8PD!XC-3v5;&DRM40RR630CW1b4r%cUH~;_u07*qoM6N<$g0qQX A*#H0l diff --git a/src/main/resources/assets/ee3/textures/array/transPentagon.png b/src/main/resources/assets/ee3/textures/array/transPentagon.png index 3837492ed9683628bdc33c98f2db16acc218d67a..373215404440b6018cd03907150363d136fe477f 100644 GIT binary patch delta 337 zcmV-X0j~b{8qgPz90dTXX>s1MHeL!324YJ`L;wH)0002_L%V;GAs2rD2XskIMF-vq z84)-qYmjYB00033Nklg4;lz=z# zt{0b5$_J60vyJQJg{y0M@h$h{M!okrN%4{<^awfHgi)h-WEw`3KFWldL_?dfYLr5z zVKu2xChR1#)r2Ucu!Vm|#E;PuPSK~Msr*ivi>L5BaY;Ia^XZ$CF8(SzvL+ph2NSn6 zsUJ;M^|_qOUFx(sl&ooWNx=K{BbmeA0IM2&(?$izy!lFy3Xpe$8q~B<0kSS$gI^k` z067<~!5!{YKs5zJIV&4L1r$>-g{!IotOL|i@GnO`g5+AL1}!bzr~sK3sX;3zD&THF jR;hv2Z+8Fy00!X+I(?3`4Xu^100000NkvXXu0mjfX#(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;qDe$SRCwBA{Qv(y13tjSKmcG<@Sl(ZMqCR1V>5{f zmrfX;1&{q$6`-5K00000|Nmm7dN};Y7Y_fSZeT=Kgv*LMi?~rGdyuY+y2x5Mx-q z2LJ#7|No*(Iv7|3{!@|?sp0}gLg|8uged$^R-uH&kpH*}3}W&FBOw73zr!7uTpd#=c2@wql zsNADR;7%ss6&psZ=2;qeB^BFbRi{P!i!wrU0ssL2|LmBF4Zt7_0}JZ@E4wRy*u*BP zlnHVQ;D^Zr1MqtQbOOKu;W`4`2C#|8TNu7h>^B`skpy6TUWVAl;YSckL08Uqv8j3o zhD)!e{6UcJ1#y@gW>o40l~U4f$CNUrt6AFy@R*yCvIQhJ0OxSUj*-X$3IMC^Q9EXo zQC3g&4%i#=6q5n?00030|LmH7T@HXC41(A v6$0(B@7R)HIx7GLpaA^aZU6uP|NjF3YgL;A05}Fk00000NkvXXu0mjfe+|_m**?y}vd$@?2>?q% BIW7PI delta 484 zcmdld_CR8S3@hW^JV%eoeO%%jm1DT-6_P!Id>I(3R2di=ni&{={s+=885l|p7#Ln9 zFfdrnU|pA>)8je&u&+tbA{q~cc6pa1{une7f7abV!#XJr6_|NoPgWLf+8(8s#!sT*4oQ}Ki1#|NY#N*C?0ktmSw(O{n-6`pe4>j#h0alxJ`Rt*y) z4ts2^F%j&uY7k++pu#;#m?@;3gL@*I;iL@1#~Dg8Mtl$h-pp|1Vo=~9{Sp!kz7_Cv-Q$z$F%wfx2QVTj4Tn>%pgy{xp9&AfC2~WfeAbQpDJyxit2>a&WLQG#tzZTh7eD`PTRI!}8R-Abp;$elF{r G5}E*-*TT&J diff --git a/src/main/resources/assets/ee3/textures/array/transTriangle.png b/src/main/resources/assets/ee3/textures/array/transTriangle.png index 2dee8d99b54f8ae58fd038774c4893dc1359c0de..2cddd4ac9e122ed5a38e292a60054c7749caa5c3 100644 GIT binary patch delta 311 zcmV-70m%O38MYUY90dTXX>s1MHeL!324YJ`L;wH)0002_L%V;GAs2rD2XskIMF-vq z84))-_z5k{0002!Nkl=D=IAMtUEXk02!Yj z${GwAgz8^Cx3~dU4Xamy0VtbS4gnL4qQ2@DSfu9Lt6z3lZyVbAg&5KV#~7on`ny+w z7>w@x-nYOaH{V|Uw8MW~U9e{?rZB-&vFLeSJ>E?WW^?}4XIQ4@L#IOP0VoPubtWd5 z`8uvR+e+0Mk8GQU5L$PgVc`00000005vFUuhGx3q0H$e&zrG002ov JPDHLkV1ipHg((04 delta 617 zcmdlc{zP(u3@hW^JV%eoeO%%jm1DT-6_P!Id>I(3R2di=ni&{={s+=885l|p7#Ln9 zFfdrnU|pA>)8je&uQ-_yl0q~cc6pa1{une7f7abQRY{xE+6lUohfzs0i;wK$tA zyY{&-G62E<|4B=#EdHo3X_&aE;g^4x^2Rn5WivCdjFJSONV|#NcH!&;_4PT9?rRwT zZ(J%D#FL8oEG#6`CuDc%&2(UlaDoO3bTr3Q)io_{}km250e-6TQ75S zPjs}366c9$hnV_i`bI$p1s*2p@9~o19#cGul5#(~YgD{vWbR>a5MtorxW@S*m;F{x zP$hfRnn&rJ9^r-D`V;0gNY%SC=^k04!&voa@fDs^!gF5KOI+p6Pt?fkSfbwcf4$4b zO|D;b%o`Y;@|i(l_-2;3P=f-Gv+m{J@jKs@DjLsH^QdB2u%5I2*WUx*L=7024H&Xi zHomXgc|TI@z~#+#H<)HKaBTY{$*|6-|M9=aYjYasGtHR!