From dec0c7df51867c7ed84a63467d3a89989c8b3ede Mon Sep 17 00:00:00 2001 From: paulevsGitch Date: Fri, 12 Feb 2021 12:26:05 +0300 Subject: [PATCH] Aeternium anvil --- .../ru/betterend/blocks/AeterniumAnvil.java | 77 ++++++++++++++++++ .../ru/betterend/blocks/BlockProperties.java | 1 + .../java/ru/betterend/patterns/Patterns.java | 1 + .../ru/betterend/recipe/AnvilRecipes.java | 13 +-- .../ru/betterend/recipe/SmithingRecipes.java | 6 ++ .../java/ru/betterend/registry/EndBlocks.java | 2 + .../assets/betterend/lang/en_us.json | 3 +- .../assets/betterend/lang/ru_ru.json | 3 +- .../patterns/blockstate/anvil_long.json | 48 +++++++++++ .../textures/block/aeternium_anvil_back.png | Bin 0 -> 421 bytes .../textures/block/aeternium_anvil_bottom.png | Bin 0 -> 360 bytes .../textures/block/aeternium_anvil_front.png | Bin 0 -> 464 bytes .../textures/block/aeternium_anvil_panel.png | Bin 0 -> 371 bytes .../textures/block/aeternium_anvil_top_0.png | Bin 0 -> 420 bytes .../textures/block/aeternium_anvil_top_1.png | Bin 0 -> 485 bytes .../textures/block/aeternium_anvil_top_2.png | Bin 0 -> 537 bytes .../textures/block/aeternium_block.png | Bin 299 -> 277 bytes 17 files changed, 146 insertions(+), 8 deletions(-) create mode 100644 src/main/java/ru/betterend/blocks/AeterniumAnvil.java create mode 100644 src/main/resources/assets/betterend/patterns/blockstate/anvil_long.json create mode 100644 src/main/resources/assets/betterend/textures/block/aeternium_anvil_back.png create mode 100644 src/main/resources/assets/betterend/textures/block/aeternium_anvil_bottom.png create mode 100644 src/main/resources/assets/betterend/textures/block/aeternium_anvil_front.png create mode 100644 src/main/resources/assets/betterend/textures/block/aeternium_anvil_panel.png create mode 100644 src/main/resources/assets/betterend/textures/block/aeternium_anvil_top_0.png create mode 100644 src/main/resources/assets/betterend/textures/block/aeternium_anvil_top_1.png create mode 100644 src/main/resources/assets/betterend/textures/block/aeternium_anvil_top_2.png diff --git a/src/main/java/ru/betterend/blocks/AeterniumAnvil.java b/src/main/java/ru/betterend/blocks/AeterniumAnvil.java new file mode 100644 index 00000000..c0268a3b --- /dev/null +++ b/src/main/java/ru/betterend/blocks/AeterniumAnvil.java @@ -0,0 +1,77 @@ +package ru.betterend.blocks; + +import java.io.Reader; +import java.util.Collections; +import java.util.List; +import java.util.Map; + +import com.google.common.collect.Maps; + +import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; +import net.minecraft.block.AnvilBlock; +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.block.Blocks; +import net.minecraft.item.ItemStack; +import net.minecraft.loot.context.LootContext; +import net.minecraft.state.StateManager; +import net.minecraft.state.property.IntProperty; +import net.minecraft.util.Identifier; +import net.minecraft.util.registry.Registry; +import ru.betterend.item.material.EndToolMaterial; +import ru.betterend.patterns.BlockPatterned; +import ru.betterend.patterns.Patterns; +import ru.betterend.registry.EndBlocks; + +public class AeterniumAnvil extends AnvilBlock implements BlockPatterned { + public static final IntProperty DESTRUCTION = BlockProperties.DESTRUCTION_LONG; + private final int level; + + public AeterniumAnvil() { + super(FabricBlockSettings.copyOf(Blocks.ANVIL).materialColor(EndBlocks.AETERNIUM_BLOCK.getDefaultMaterialColor())); + this.level = EndToolMaterial.AETERNIUM.getMiningLevel(); + } + + @Override + protected void appendProperties(StateManager.Builder builder) { + super.appendProperties(builder); + builder.add(DESTRUCTION); + } + + public int getCraftingLevel() { + return level; + } + + @Override + public List getDroppedStacks(BlockState state, LootContext.Builder builder) { + return Collections.singletonList(new ItemStack(this)); + } + + @Override + public String getStatesPattern(Reader data) { + Identifier blockId = Registry.BLOCK.getId(this); + return Patterns.createJson(data, blockId.getPath(), blockId.getPath()); + } + + @Override + public String getModelPattern(String block) { + Identifier blockId = Registry.BLOCK.getId(this); + Map map = Maps.newHashMap(); + map.put("%anvil%", blockId.getPath()); + map.put("%top%", getTop(blockId, block)); + return Patterns.createJson(Patterns.BLOCK_ANVIL, map); + } + + private String getTop(Identifier blockId, String block) { + if (block.contains("item")) { + return blockId.getPath() + "_top_0"; + } + char last = block.charAt(block.length() - 1); + return blockId.getPath() + "_top_" + last; + } + + @Override + public Identifier statePatternId() { + return Patterns.STATE_ANVIL_LONG; + } +} diff --git a/src/main/java/ru/betterend/blocks/BlockProperties.java b/src/main/java/ru/betterend/blocks/BlockProperties.java index b79bf939..4fbf6cbd 100644 --- a/src/main/java/ru/betterend/blocks/BlockProperties.java +++ b/src/main/java/ru/betterend/blocks/BlockProperties.java @@ -16,6 +16,7 @@ public class BlockProperties { public static final BooleanProperty NATURAL = BooleanProperty.of("natural"); public static final BooleanProperty ACTIVE = BooleanProperty.of("active"); + public static final IntProperty DESTRUCTION_LONG = IntProperty.of("destruction", 0, 8); public static final IntProperty DESTRUCTION = IntProperty.of("destruction", 0, 2); public static final IntProperty ROTATION = IntProperty.of("rotation", 0, 3); public static final IntProperty FULLNESS = IntProperty.of("fullness", 0, 3); diff --git a/src/main/java/ru/betterend/patterns/Patterns.java b/src/main/java/ru/betterend/patterns/Patterns.java index 6c4cfbcb..9bcf7a28 100644 --- a/src/main/java/ru/betterend/patterns/Patterns.java +++ b/src/main/java/ru/betterend/patterns/Patterns.java @@ -41,6 +41,7 @@ public class Patterns { public final static Identifier STATE_COMPOSTER = BetterEnd.makeID("patterns/blockstate/composter.json"); public final static Identifier STATE_BARS = BetterEnd.makeID("patterns/blockstate/bars.json"); public final static Identifier STATE_ANVIL = BetterEnd.makeID("patterns/blockstate/anvil.json"); + public final static Identifier STATE_ANVIL_LONG = BetterEnd.makeID("patterns/blockstate/anvil_long.json"); public final static Identifier STATE_CHAIN = BetterEnd.makeID("patterns/blockstate/chain.json"); public final static Identifier STATE_CHANDELIER = BetterEnd.makeID("patterns/blockstate/chandelier.json"); public final static Identifier STATE_FURNACE = BetterEnd.makeID("patterns/blockstate/furnace.json"); diff --git a/src/main/java/ru/betterend/recipe/AnvilRecipes.java b/src/main/java/ru/betterend/recipe/AnvilRecipes.java index 1eb4da43..9509c3c9 100644 --- a/src/main/java/ru/betterend/recipe/AnvilRecipes.java +++ b/src/main/java/ru/betterend/recipe/AnvilRecipes.java @@ -1,6 +1,7 @@ package ru.betterend.recipe; import net.minecraft.item.Items; +import ru.betterend.item.material.EndToolMaterial; import ru.betterend.recipe.builders.AnvilRecipe; import ru.betterend.registry.EndItems; @@ -22,42 +23,42 @@ public class AnvilRecipes { AnvilRecipe.Builder.create("aeternium_axe_head") .setInput(EndItems.AETERNIUM_INGOT) .setOutput(EndItems.AETERNIUM_AXE_HEAD) - .setAnvilLevel(3) + .setAnvilLevel(EndToolMaterial.AETERNIUM.getDurability()) .setToolLevel(4) .setDamage(6) .build(); AnvilRecipe.Builder.create("aeternium_pickaxe_head") .setInput(EndItems.AETERNIUM_INGOT) .setOutput(EndItems.AETERNIUM_PICKAXE_HEAD) - .setAnvilLevel(3) + .setAnvilLevel(EndToolMaterial.AETERNIUM.getDurability()) .setToolLevel(4) .setDamage(6) .build(); AnvilRecipe.Builder.create("aeternium_shovel_head") .setInput(EndItems.AETERNIUM_INGOT) .setOutput(EndItems.AETERNIUM_SHOVEL_HEAD) - .setAnvilLevel(3) + .setAnvilLevel(EndToolMaterial.AETERNIUM.getDurability()) .setToolLevel(4) .setDamage(6) .build(); AnvilRecipe.Builder.create("aeternium_hoe_head") .setInput(EndItems.AETERNIUM_INGOT) .setOutput(EndItems.AETERNIUM_HOE_HEAD) - .setAnvilLevel(3) + .setAnvilLevel(EndToolMaterial.AETERNIUM.getDurability()) .setToolLevel(4) .setDamage(6) .build(); AnvilRecipe.Builder.create("aeternium_hammer_head") .setInput(EndItems.AETERNIUM_INGOT) .setOutput(EndItems.AETERNIUM_HAMMER_HEAD) - .setAnvilLevel(3) + .setAnvilLevel(EndToolMaterial.AETERNIUM.getDurability()) .setToolLevel(4) .setDamage(6) .build(); AnvilRecipe.Builder.create("aeternium_sword_blade") .setInput(EndItems.AETERNIUM_INGOT) .setOutput(EndItems.AETERNIUM_SWORD_BLADE) - .setAnvilLevel(3) + .setAnvilLevel(EndToolMaterial.AETERNIUM.getDurability()) .setToolLevel(4) .setDamage(6) .build(); diff --git a/src/main/java/ru/betterend/recipe/SmithingRecipes.java b/src/main/java/ru/betterend/recipe/SmithingRecipes.java index b1d951a2..eeac8bc4 100644 --- a/src/main/java/ru/betterend/recipe/SmithingRecipes.java +++ b/src/main/java/ru/betterend/recipe/SmithingRecipes.java @@ -77,5 +77,11 @@ public class SmithingRecipes { .setBase(EndBlocks.THALLASIUM.anvil) .setAddition(EndBlocks.TERMINITE.block) .build(); + + SmithingTableRecipe.create("terminite_anvil_updrade") + .setResult(EndBlocks.AETERNIUM_ANVIL) + .setBase(EndBlocks.TERMINITE.anvil) + .setAddition(EndBlocks.AETERNIUM_BLOCK) + .build(); } } diff --git a/src/main/java/ru/betterend/registry/EndBlocks.java b/src/main/java/ru/betterend/registry/EndBlocks.java index 58dbc930..fcec5f5b 100644 --- a/src/main/java/ru/betterend/registry/EndBlocks.java +++ b/src/main/java/ru/betterend/registry/EndBlocks.java @@ -7,6 +7,7 @@ import net.minecraft.item.BlockItem; import net.minecraft.util.Identifier; import net.minecraft.util.registry.Registry; import ru.betterend.BetterEnd; +import ru.betterend.blocks.AeterniumAnvil; import ru.betterend.blocks.AeterniumBlock; import ru.betterend.blocks.AmberBlock; import ru.betterend.blocks.AncientEmeraldIceBlock; @@ -322,6 +323,7 @@ public class EndBlocks { public static final Block END_STONE_SMELTER = registerBlock("end_stone_smelter", new EndStoneSmelter()); public static final Block ETERNAL_PEDESTAL = registerBlock("eternal_pedestal", new EternalPedestal()); public static final Block INFUSION_PEDESTAL = registerBlock("infusion_pedestal", new InfusionPedestal()); + public static final Block AETERNIUM_ANVIL = registerBlock("aeternium_anvil", new AeterniumAnvil()); // Technical public static final Block END_PORTAL_BLOCK = registerBlockNI("end_portal_block", new EndPortalBlock()); diff --git a/src/main/resources/assets/betterend/lang/en_us.json b/src/main/resources/assets/betterend/lang/en_us.json index 1d96ca76..8c95e3c0 100644 --- a/src/main/resources/assets/betterend/lang/en_us.json +++ b/src/main/resources/assets/betterend/lang/en_us.json @@ -675,5 +675,6 @@ "item.betterend.thallasium_pickaxe_head": "Thallasium Pickaxe Head", "item.betterend.thallasium_shovel_head": "Thallasium Shovel Head", "item.betterend.thallasium_sword_blade": "Thallasium Sword Blade", - "item.betterend.thallasium_sword_handle": "Thallasium Sword Handle" + "item.betterend.thallasium_sword_handle": "Thallasium Sword Handle", + "block.betterend.aeternium_anvil": "Aeternium Anvil" } diff --git a/src/main/resources/assets/betterend/lang/ru_ru.json b/src/main/resources/assets/betterend/lang/ru_ru.json index b28cc4db..8645338b 100644 --- a/src/main/resources/assets/betterend/lang/ru_ru.json +++ b/src/main/resources/assets/betterend/lang/ru_ru.json @@ -695,5 +695,6 @@ "item.betterend.thallasium_pickaxe_head": "Навершие талласиевой кирки", "item.betterend.thallasium_shovel_head": "Навершие талласиевой лопаты", "item.betterend.thallasium_sword_blade": "Лезвие талласиевого меча", - "item.betterend.thallasium_sword_handle": "Рукоятка талласиевого меча" + "item.betterend.thallasium_sword_handle": "Рукоятка талласиевого меча", + "block.betterend.aeternium_anvil": "Этериевая наковальня" } \ No newline at end of file diff --git a/src/main/resources/assets/betterend/patterns/blockstate/anvil_long.json b/src/main/resources/assets/betterend/patterns/blockstate/anvil_long.json new file mode 100644 index 00000000..485d07d2 --- /dev/null +++ b/src/main/resources/assets/betterend/patterns/blockstate/anvil_long.json @@ -0,0 +1,48 @@ +{ + "variants": { + "destruction=0,facing=east": { "model": "betterend:pattern/%block%/%block%_0", "y": 270 }, + "destruction=0,facing=north": { "model": "betterend:pattern/%block%/%block%_0", "y": 180 }, + "destruction=0,facing=south": { "model": "betterend:pattern/%block%/%block%_0" }, + "destruction=0,facing=west": { "model": "betterend:pattern/%block%/%block%_0", "y": 90 }, + + "destruction=1,facing=east": { "model": "betterend:pattern/%block%/%block%_0", "y": 270 }, + "destruction=1,facing=north": { "model": "betterend:pattern/%block%/%block%_0", "y": 180 }, + "destruction=1,facing=south": { "model": "betterend:pattern/%block%/%block%_0" }, + "destruction=1,facing=west": { "model": "betterend:pattern/%block%/%block%_0", "y": 90 }, + + "destruction=2,facing=east": { "model": "betterend:pattern/%block%/%block%_0", "y": 270 }, + "destruction=2,facing=north": { "model": "betterend:pattern/%block%/%block%_0", "y": 180 }, + "destruction=2,facing=south": { "model": "betterend:pattern/%block%/%block%_0" }, + "destruction=2,facing=west": { "model": "betterend:pattern/%block%/%block%_0", "y": 90 }, + + "destruction=3,facing=east": { "model": "betterend:pattern/%block%/%block%_1", "y": 270 }, + "destruction=3,facing=north": { "model": "betterend:pattern/%block%/%block%_1", "y": 180 }, + "destruction=3,facing=south": { "model": "betterend:pattern/%block%/%block%_1" }, + "destruction=3,facing=west": { "model": "betterend:pattern/%block%/%block%_1", "y": 90 }, + + "destruction=4,facing=east": { "model": "betterend:pattern/%block%/%block%_1", "y": 270 }, + "destruction=4,facing=north": { "model": "betterend:pattern/%block%/%block%_1", "y": 180 }, + "destruction=4,facing=south": { "model": "betterend:pattern/%block%/%block%_1" }, + "destruction=4,facing=west": { "model": "betterend:pattern/%block%/%block%_1", "y": 90 }, + + "destruction=5,facing=east": { "model": "betterend:pattern/%block%/%block%_1", "y": 270 }, + "destruction=5,facing=north": { "model": "betterend:pattern/%block%/%block%_1", "y": 180 }, + "destruction=5,facing=south": { "model": "betterend:pattern/%block%/%block%_1" }, + "destruction=5,facing=west": { "model": "betterend:pattern/%block%/%block%_1", "y": 90 }, + + "destruction=6,facing=east": { "model": "betterend:pattern/%block%/%block%_2", "y": 270 }, + "destruction=6,facing=north": { "model": "betterend:pattern/%block%/%block%_2", "y": 180 }, + "destruction=6,facing=south": { "model": "betterend:pattern/%block%/%block%_2" }, + "destruction=6,facing=west": { "model": "betterend:pattern/%block%/%block%_2", "y": 90 }, + + "destruction=7,facing=east": { "model": "betterend:pattern/%block%/%block%_2", "y": 270 }, + "destruction=7,facing=north": { "model": "betterend:pattern/%block%/%block%_2", "y": 180 }, + "destruction=7,facing=south": { "model": "betterend:pattern/%block%/%block%_2" }, + "destruction=7,facing=west": { "model": "betterend:pattern/%block%/%block%_2", "y": 90 }, + + "destruction=8,facing=east": { "model": "betterend:pattern/%block%/%block%_2", "y": 270 }, + "destruction=8,facing=north": { "model": "betterend:pattern/%block%/%block%_2", "y": 180 }, + "destruction=8,facing=south": { "model": "betterend:pattern/%block%/%block%_2" }, + "destruction=8,facing=west": { "model": "betterend:pattern/%block%/%block%_2", "y": 90 } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/betterend/textures/block/aeternium_anvil_back.png b/src/main/resources/assets/betterend/textures/block/aeternium_anvil_back.png new file mode 100644 index 0000000000000000000000000000000000000000..d1a6ad61c5e1f1df924693c43754d2fd400ddda8 GIT binary patch literal 421 zcmV;W0b2fvP)L&UMJkT=L-c#N zxOD1QsM0UsB3K8ZT?(2ab|{6kkhIHnXcO|9{sGVS?mO>r-o5u|%pf8dcQ>N<`b@Sq zSp>b;XVP^Tw>w%;OUx5)&(1l?=NAgJoDNUbs!~hLlMKt`rCukMO*0w{0Z3)jJbyH~ zFBD>;F@XT1!H|Y{n9dJ;gJYU6vls%5-o%b=}?h|mM#W@(9OZOa1tM&FVr`1a?uA6 zI`j=(3hff8sba(=kOY!uiG$7UjfrH`Gu`{$?+@pk3x8coc{skkE>zDa@Aq0os^=5W z7YaZ}25&B}nAmo!!OC@*%@3H&H-t$RrKkf_a63Q6pW9dIW=JL)Nf_6{Y6fy8Q6NN*!3O|S zy-U7ze{Vt44U#Z!OzXODHLPYJ53H=GB5f2yLkme59|SM^P zE7xIkVKD`=kyTq6d~ZRX!Qm^PkBf3WGNB0r*sUFfe^Fm%19uEXYb7ZF00000WbcEP)1unNfU?>t6j^ixhP9=lBD< z6gs&$wn#@6x(K=mbt%>qF+&vEKx!1?a7|2Fv3}Ei-`zcT?|a`#>2fKMZ3lm8foTz6 zC)*Bw&mtw;4o5q?Y!(Vr0d1>8-dK;um1>m~fTF8hHX3A2bF|dQ?Yp?|0|2!7S={#l z&A>yg*8w;#76AkxjM`J114)hYX5gV(FYqk#aK{kIx`G)_*JOTk(3kek-E(648B?RLqUCbf%m zJ{~)XJu?$`8-=E468Ud3{saIl=2mh0Z-CGo%J>%`JWO^_%sY5gH zP;_;|Ko~PIT`mQu8(UljpKK4lcc7@;{vzO85o`m!RW4nn57|0000bq literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/betterend/textures/block/aeternium_anvil_panel.png b/src/main/resources/assets/betterend/textures/block/aeternium_anvil_panel.png new file mode 100644 index 0000000000000000000000000000000000000000..4dbd58f4075fea57ca5ee4fcb41aca1ecfba78a5 GIT binary patch literal 371 zcmV-(0gV2MP)7vlZ&B0ZtY`Tab_>24zPD0Ti zASg)ZLY6?gWH3@lAT1LH4 zA@S?G2C!EquTRflYNLA#gdbLp?k!+yb8lU7cX6)54vHe{_c$4i7*7tlwJZRR%^|kq zDDimmhV3{!JUuE--JrmiXsLSUxd5!ArRuc}y`rxL03?wliKH@jjIIhvB8eE7^%2S_ z#Lz8;beg2i0p+0eDhA+r86beRp_6@jzmKq9#mcw~jR8OLlFQ8+8&DfzKTEfUj}51n zdH`ZzlFr>~fbc_Ro{J0ubgJtt%rXc_B3XHZ?N>e;=EZu-f+h|iox2+U0^hAbgh3fp RjF|uc002ovPDHLkV1h{;n%V#W literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/betterend/textures/block/aeternium_anvil_top_0.png b/src/main/resources/assets/betterend/textures/block/aeternium_anvil_top_0.png new file mode 100644 index 0000000000000000000000000000000000000000..287f800af5dc183a340e477b7d79c6741e0ecd5f GIT binary patch literal 420 zcmV;V0bBlwP)zq#g8IX}2>uZg z9zAxo!@LaFEHuzy4rWtW2X$<7rtj(d-tT>%=Xsx(PaqJ7PY<3r8sp}3#DzE-;|@%I zd%CdBC87n7*EdvDH5NcKb?S{qC>H{7^EoQ2%4@4dp;Q7OC8wELj(?8EK^&8GlmXx^ zlc3|xv8@S1!-!QC4l6Bxkw&{HEj0LvLbH*$uD;0jN$F zNOG2YVL87$F!vh)!2X$rjN98pfaBsB=U3&BnwjP7H^Q2!tX!-VN!xhB0ODwjX6pXE z{?P-V+1F`%4kJv%q$13`@Xe#10Wd9zQ)in z{ANcvU6MphOl))lh0+Nxh=9xUY7?;BLev8xc*)$|deH*0sBAO^zw;jf+lo><)ojiH O0000RVJIw@=H!|9{$I+EP9>f?1~NH~>_IBxzOUH1rvH z{&E1@viP{Q#k=k`nw;TwIE?nhb>n4#QG6S9U|SYurNXW-om*oc|Ko%{+N2kg@C70 zb)9d2Tl6{|B=?Fx5BK=S+Sp_!#6%omHTQ-iL?Ga>T#WRQ=g(yzOfKZ@&2aXBxNgi{ bn*7d>hrE^n1p=7b00000NkvXXu0mjfk%HjK literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/betterend/textures/block/aeternium_anvil_top_2.png b/src/main/resources/assets/betterend/textures/block/aeternium_anvil_top_2.png new file mode 100644 index 0000000000000000000000000000000000000000..b490b9abe94c37d302d79d73f67f1af4069f8868 GIT binary patch literal 537 zcmV+!0_OdRP)~sTNmH$Js#ipeIMSF7>L_1 zUj$LNjjyE`7g4v3f7s-F|3K>3CWjmH$-6u&KIik!4o8g!Q?s)y=W+m4%4O`s<~7lY z!Nk{6bcEnzr2>F(U1EyNuagtrZ)`A~&5pR57%u3BfpA^Y=`^QnkN6Z^U|SZdrV&%* zZ~=gVX;O0>0P<3VgsQR?bm@8BaDnAq4%@O=SzYD9kDsLCNjgIO`^+gh@I&Q|l1^RXirg^o>nRkqEU8b|y@D*=F2uK!sGE&=Kt=Xf3EMo?Qzs-P`J3o z*Yh*%$ZvM5)e(r3!vZlyCZVdlzLy1jTJ;96ibVi=UYFX3&1?PAU=m+@5)4C%&SXZw b4ZiaqXmt00000NkvXXu0mjfc*6uT literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/betterend/textures/block/aeternium_block.png b/src/main/resources/assets/betterend/textures/block/aeternium_block.png index 413d165944d50d9a4f581910f4fdb55103d69eda..9ead52cd46f2bb48daf9819b15ec3c74e63dca2b 100644 GIT binary patch delta 260 zcmZ3@G?i(BWIZzj1A~Sxe=v|@EDmyaVpw-h<|UA$72p%%3Z&W9l>}@pc%ALpqk`C@ zLiOA0e50cyb21`xa#E{GQmd+RJDR61UF!F(3}g~tNswPK!+&HD?sZ!PC{yq0;us<^ z)wGY1?|=da^K%6Uoqzv#XV;dRwHL`888<6urY zEb=^Ys!&bqg11>aXGrErrU@3)-aJ0AKRNt?{nXosUQSz^#U*iDF<|Dq+lQEFKt!M-P>t<}=rUlz4A)YvS2jJ+qFgIjOb4JM#l7(8A5T-G@yGywqY^=iZb delta 283 zcmV+$0p$Lb0;>X$8Gi-<001BJ|6u?C0P;yhK~#9!g_11}!axv(aVQebfI(t01cAmh zK|nPLqBv9q1_2k~2t8-X+wzsy-E9!Boy^XB^Rqjdo(}D7w{7*$tLW9mnY~=J6B*~a zZr@GwSJ&5LU zC`Wd-10YmpULOg7_BQ}@x+Hs`L&UzaBQW1s`v9^#$R**YGm0c5c)QH1B;QSE--ZBv zyeivw097SkVlsj!a|e4mcCCE} hGF